@co0ontty/wand 2.11.0 → 2.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3,9 +3,9 @@ import { Buffer } from "node:buffer";
|
|
|
3
3
|
function decode(value) {
|
|
4
4
|
return Buffer.from(value, "base64").toString("utf8");
|
|
5
5
|
}
|
|
6
|
-
export const EMBEDDED_WEB_ASSET_VERSION = "
|
|
6
|
+
export const EMBEDDED_WEB_ASSET_VERSION = "ea255c5ab1d4";
|
|
7
7
|
export const EMBEDDED_WEB_ASSETS = {
|
|
8
|
-
scriptsJs: decode("InVzZSBzdHJpY3QiOygoKT0+e3ZhciBSdT0id2FuZC1sZWdhY3ktcHdhLWNsZWFudXAtdjEiLG1kPVsid2FuZC1zdGF0aWMtIiwid2FuZC1ydW50aW1lLSJdO2Z1bmN0aW9uICRyKGUpe2lmKCFlKXJldHVybiExO3RyeXtjb25zdCB0PW5ldyBVUkwoZS5zY3JpcHRVUkwsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQub3JpZ2luPT09bG9jYXRpb24ub3JpZ2luJiZ0LnBhdGhuYW1lPT09Ii9zdy5qcyJ9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIGdkKGUpe3JldHVybiAkcihlLmluc3RhbGxpbmcpfHwkcihlLndhaXRpbmcpfHwkcihlLmFjdGl2ZSl9ZnVuY3Rpb24gaGQoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFJ1KT09PSJkb25lIn1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24geWQoKXt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oUnUsImRvbmUiKX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIGJkKCl7aWYoISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IpKXJldHVybiEwO3RyeXtjb25zdCB0PShhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkpLmZpbHRlcihnZCk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHQubWFwKG49Pm4udW5yZWdpc3RlcigpKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIEVkKCl7aWYoISgiY2FjaGVzImluIHdpbmRvdykpcmV0dXJuITA7dHJ5e2NvbnN0IHQ9KGF3YWl0IGNhY2hlcy5rZXlzKCkpLmZpbHRlcihuPT5tZC5zb21lKGk9Pm4uc3RhcnRzV2l0aChpKSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChuPT5jYWNoZXMuZGVsZXRlKG4pKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIEZkKCl7aWYoaGQoKSlyZXR1cm47Y29uc3QgZT0ic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJiRyKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpLFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFtiZCgpLEVkKCldKTshdHx8IW58fCh5ZCgpLGUmJmxvY2F0aW9uLnJlbG9hZCgpKX1GZCgpO3ZhciBXZz0iJHtlc2NhcGVIdG1sKGNvbmZpZ1BhdGgpfSIsaWE9IndhbmQtY2hhdC1leHBhbmQtc3RhdGUtdjEiLFhyPVtmdW5jdGlvbigpe31dOyhmdW5jdGlvbigpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1scy1zY2hlbWEiKSxuPXQ9PW51bGw/MDpwYXJzZUludCh0LDEwKTtuPj0wfHwobj0wKTtmb3IodmFyIGk9bjtpPFhyLmxlbmd0aDtpKyspdHJ5e1hyW2ldKCl9Y2F0Y2h7fW48WHIubGVuZ3RoJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1scy1zY2hlbWEiLFN0cmluZyhYci5sZW5ndGgpKX1jYXRjaHt9fSkoKTtmdW5jdGlvbiBhYShlLHQpe3RyeXt2YXIgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTtyZXR1cm4gbj09PSJ0cnVlIj8hMDpuPT09ImZhbHNlIj8hMTp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiBTZShlLHQpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLFN0cmluZyghIXQpKX1jYXRjaHt9fXZhciByPXtzZWxlY3RlZElkOihmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PWUuc2VhcmNoUGFyYW1zLmdldCgic2Vzc2lvbiIpO2lmKHQpcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iLHQpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZSgic2Vzc2lvbiIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKSx0fWNhdGNoe310cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLHBvbGxUaW1lcjpudWxsLGNvbmZpZzpudWxsLHNlc3Npb25zOltdLHN1Z2dlc3Rpb25UaW1lcjpudWxsLHRlcm1pbmFsOm51bGwsdGVybWluYWxGaXRJblByb2dyZXNzOiExLHRlcm1pbmFsU2Vzc2lvbklkOm51bGwsdGVybWluYWxPdXRwdXQ6IiIsdGVybWluYWxPdXRwdXRNYXJrZXI6MCx0ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uczp7fSxzeW5jT3V0cHV0QnVmZmVyOm51bGwsc3luY091dHB1dERlYWRsaW5lOjAsc3luY0ZyYW1pbmdSZXNpZHVlOiExLGxhc3RDaHVua0F0OjAsdGVybWluYWxIZWFsdGhUaW1lcjpudWxsLGxhc3RUZXJtaW5hbFJlc3luY0F0OjAsdGVybWluYWxBdXRvRm9sbG93OiEwLHRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCx0ZXJtaW5hbFNjcm9sbElkbGVUaW1lcjpudWxsLHRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkOjEyLHNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbTohMSx0ZXJtaW5hbFZpZXdwb3J0RWw6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcjpudWxsLHRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFRvdWNoU3RhcnRZOjAsdGVybWluYWxDb21wb3Npbmc6ITEscmVzaXplT2JzZXJ2ZXI6bnVsbCxyZXNpemVIYW5kbGVyOm51bGwscmVzaXplVGltZXI6bnVsbCxpbnB1dFF1ZXVlOlByb21pc2UucmVzb2x2ZSgpLHBlbmRpbmdNZXNzYWdlczpbXSxtZXNzYWdlUXVldWU6W10sY3Jvc3NTZXNzaW9uUXVldWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWU/SlNPTi5wYXJzZShlKTpbXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OltdfWNhdGNoe3JldHVybltdfX0pKCksc3RydWN0dXJlZElucHV0UXVldWU6W10scXVldWVCYXJFeHBhbmRlZDohMSxxdWV1ZUJhckhvdmVySW5kZXg6bnVsbCxxdWV1ZUJhckRyYWc6bnVsbCxxdWV1ZUJhclByb21vdGluZzohMSxkcmFmdHM6e30saXNTeW5jaW5nSW5wdXRCb3g6ITEsbG9naW5QZW5kaW5nOiExLGxvZ2luQ2hlY2tlZDohMSxib290c3RyYXBwaW5nOiEwLHNlc3Npb25zRHJhd2VyT3BlbjphYSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxzaWRlYmFyUGlubmVkOmFhKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCksc2lkZWJhckNvbGxhcHNlZDphYSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpLG1vZGFsT3BlbjohMSxwcmVzZXRWYWx1ZToiIixjd2RWYWx1ZToiIixtb2RlVmFsdWU6Im1hbmFnZWQiLGNoYXRNb2RlOiJtYW5hZ2VkIixjaGF0TW9kZWxzOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIil8fCIiO3JldHVybntjbGF1ZGU6bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtY2hhdC1tb2RlbC1jbGF1ZGUiKXx8ZSxjb2RleDpsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsLWNvZGV4Iil8fCIifX1jYXRjaHtyZXR1cm57Y2xhdWRlOiIiLGNvZGV4OiIifX19KSgpLGNoYXRNb2RlbDooZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiKXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fSkoKSxjaGF0VGhpbmtpbmc6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIpfHwib2ZmIjtyZXR1cm4gZT09PSJvZmYifHxlPT09InN0YW5kYXJkInx8ZT09PSJkZWVwInx8ZT09PSJtYXgifHwvXmNvZGV4OlthLXowLTldW2EtejAtOV8tXXswLDMxfSQvLnRlc3QoZSk/ZToib2ZmIn1jYXRjaHtyZXR1cm4ib2ZmIn19KSgpLGF2YWlsYWJsZU1vZGVsczpbXSxhdmFpbGFibGVDb2RleE1vZGVsczpbXSxtb2RlbHNSZWZyZXNoaW5nOiExLHNlc3Npb25DcmVhdGVLaW5kOiJzdHJ1Y3R1cmVkIixzZXNzaW9uQ3JlYXRlV29ya3RyZWU6ITEsc2Vzc2lvblRvb2w6ImNsYXVkZSIsYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZDpudWxsLHdvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdDpudWxsLHdvcmt0cmVlTWVyZ2VMb2FkaW5nOiExLHdvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nOiExLHdvcmt0cmVlTWVyZ2VFcnJvcjoiIixwcmVmZXJyZWRDb21tYW5kOiJjbGF1ZGUiLHN0cnVjdHVyZWRSdW5uZXI6ImNsYXVkZS1jbGktcHJpbnQiLGxhc3RSZXNpemU6e2NvbHM6MCxyb3dzOjB9LGlzT25saW5lOm5hdmlnYXRvci5vbkxpbmUsd3M6bnVsbCx3c0Nvbm5lY3RlZDohMSxsYXN0V3NNZXNzYWdlQXQ6MCx3c0hlYXJ0YmVhdENoZWNrVGltZXI6bnVsbCxfdXBkYXRlQnViYmxlU2hvd246ITEsbm90aWZpY2F0aW9uSGlzdG9yeTp7fSxkZWxheWVkTm90aWZpY2F0aW9uVGltZXI6bnVsbCxub3RpZlNvdW5kOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1ub3RpZi1zb3VuZCIpO3JldHVybiBlPT09bnVsbD8hMDplPT09InRydWUifWNhdGNoe3JldHVybiEwfX0pKCksbm90aWZWb2x1bWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLW5vdGlmLXZvbHVtZSIpO3JldHVybiBlPT09bnVsbD84MDpNYXRoLm1heCgwLE1hdGgubWluKDEwMCxwYXJzZUludChlLDEwKXx8ODApKX1jYXRjaHtyZXR1cm4gODB9fSkoKSxub3RpZkJ1YmJsZTooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtbm90aWYtYnViYmxlIik7cmV0dXJuIGU9PT1udWxsPyEwOmU9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITB9fSkoKSx0b29sQ29udGVudENhY2hlOnt9LGxhc3RTZXFCeVNlc3Npb246e30sY3VycmVudFZpZXc6InRlcm1pbmFsIix0ZXJtaW5hbFNjYWxlOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC10ZXJtaW5hbC1zY2FsZSIpO3JldHVybiBlP3BhcnNlRmxvYXQoZSk6MX1jYXRjaHtyZXR1cm4gMX19KSgpLHRlcm1pbmFsQmFzZUZvbnRTaXplOjEzLGtleWJvYXJkUG9wdXBPcGVuOiExLGZpbGVQYW5lbE9wZW46KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1maWxlLXBhbmVsLW9wZW4iKT09PSJ0cnVlIn1jYXRjaHtyZXR1cm4hMX19KSgpLHRvcGJhck1vcmVPcGVuOiExLGdpdFN0YXR1czpudWxsLGdpdFN0YXR1c1Nlc3Npb25JZDpudWxsLGdpdFN0YXR1c0xvYWRpbmc6ITEsZ2l0U3RhdHVzSW5mbGlnaHQ6bnVsbCxnaXRTdGF0dXNMYXN0RmV0Y2hBdDowLHF1aWNrQ29tbWl0T3BlbjohMSxxdWlja0NvbW1pdFN1Ym1pdHRpbmc6ITEscXVpY2tDb21taXRHZW5lcmF0aW5nOiExLHF1aWNrQ29tbWl0RXJyb3I6IiIscXVpY2tDb21taXRGb3JtOntjdXN0b21NZXNzYWdlOiIiLHRhZzoiIix0YWdFZGl0ZWQ6ITF9LHF1aWNrQ29tbWl0UHVzaGluZzohMSxxdWlja0NvbW1pdFB1c2hFcnJvcjoiIixxdWlja0NvbW1pdFJlc3VsdDpudWxsLHF1aWNrQ29tbWl0RHJhZ0FjdGlvbjoiY29tbWl0IixxdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudDohMSxjaGF0U3RpY2tUb0JvdHRvbTohMCxjaGF0QXV0b0ZvbGRFbmFibGVkOiExLGNoYXRBdXRvRm9sZFNuYXBzaG90Om51bGwsY2hhdFVucmVhZENvdW50OjAsY2hhdFVucmVhZFN0YXJ0SW5kZXg6LTEsY2hhdFNjcm9sbFRocmVzaG9sZDoxNjAsY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsOiExLGNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbDowLGNoYXRTY3JvbGxFbGVtZW50Om51bGwsY2hhdFNjcm9sbEhhbmRsZXI6bnVsbCxjaGF0U2Nyb2xsV2hlZWxIYW5kbGVyOm51bGwsY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyOm51bGwsY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXI6bnVsbCxjaGF0VG91Y2hTdGFydFk6MCxjaGF0SW5pdGlhbFJlbmRlckRvbmU6ITEsbGFzdEZvcmVncm91bmRTeW5jQXQ6MCxmb3JlZ3JvdW5kU3luY1RpbWVyOm51bGwsd3NSZWNvbm5lY3RBdHRlbXB0czowLHdzUmVjb25uZWN0VGltZXI6bnVsbCxjdXJyZW50TWVzc2FnZXM6W10sbGFzdFJlbmRlcmVkSGFzaDowLGxhc3RSZW5kZXJlZE1zZ0NvdW50OjAsbGFzdFJlbmRlcmVkRW1wdHk6bnVsbCxyZW5kZXJQZW5kaW5nOiExLGNoYXRQYWdlU2l6ZToyMCxjaGF0UmVuZGVyZWRDb3VudDoyMCxjdXJyZW50VGFzazpudWxsLHRlcm1pbmFsSW50ZXJhY3RpdmU6ITEsbWluaUtleWJvYXJkVmlzaWJsZTohMSxtb2RpZmllcnM6e2N0cmw6ITEsYWx0OiExLHNoaWZ0OiExfSxqb3lzdGlja1BvczooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtYmFsbC1wb3MiKTtpZighZSlyZXR1cm4gbnVsbDt2YXIgdD1KU09OLnBhcnNlKGUpO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/dDpudWxsfWNhdGNoe3JldHVybiBudWxsfX0pKCksam95c3RpY2tQaW5uZWRPcGVuOiExLGpveXN0aWNrUm9vdEVsOm51bGwsam95c3RpY2tQYW5lbEVsOm51bGwsam95c3RpY2tCYWNrZHJvcEVsOm51bGwsam95c3RpY2tCYWxsRWw6bnVsbCxqb3lzdGlja1BvaW50ZXJJZDpudWxsLGpveXN0aWNrR2VzdHVyZTpudWxsLGpveXN0aWNrUHJlc3NTdGFydDpudWxsLGpveXN0aWNrTG9uZ1ByZXNzVGltZXI6bnVsbCxqb3lzdGlja01vdmVIYW5kbGVyOm51bGwsam95c3RpY2tVcEhhbmRsZXI6bnVsbCxqb3lzdGlja1Jlc2l6ZUhhbmRsZXI6bnVsbCxmaWxlU2VhcmNoUXVlcnk6IiIsZmlsZUV4cGxvcmVyTG9hZGluZzohMSxhbGxGaWxlczpbXSxmaWxlRXhwbG9yZXJDd2Q6IiIsZmlsZUV4cGxvcmVyVHJ1bmNhdGVkOiExLGZpbGVFeHBsb3JlclRvdGFsOjAsY2xhdWRlSGlzdG9yeTpbXSxjbGF1ZGVIaXN0b3J5TG9hZGVkOiExLGNsYXVkZUhpc3RvcnlFeHBhbmRlZDohMSxjbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzOnt9LGFyY2hpdmVkRXhwYW5kZWQ6ITEsc2Vzc2lvbnNNYW5hZ2VNb2RlOiExLHNlbGVjdGVkU2Vzc2lvbklkczp7fSxzZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM6e30sY29kZXhIaXN0b3J5OltdLGNvZGV4SGlzdG9yeUxvYWRlZDohMSxjb2RleEhpc3RvcnlFeHBhbmRlZERpcnM6e30sc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHM6e30sYXNrVXNlclNlbGVjdGlvbnM6e30scXVldWVFcG9jaDowLHBlbmRpbmdBdHRhY2htZW50czpbXSx3b3JraW5nRGlyOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIpO3JldHVybiBlfHwiIn1jYXRjaHtyZXR1cm4iIn19KSgpfSx1YT0iXHU0RTJEXHU2NTg3Iixacj17XHU0RTJEXHU2NTg3Onsic3ViYWdlbnQudGFnIjoiXHU1QjUwXHU0RUUzXHU3NDA2Iiwic3ViYWdlbnQuaGFuZG9mZiI6IntwYXJlbnR9IFx1OEJBOSB7c3VifSBcdTVFMkVcdTVGRDkiLCJzdWJhZ2VudC5oYW5kb2ZmLndpdGhfZGVzYyI6IntwYXJlbnR9IFx1OEJBOSB7c3VifSBcdTVFMkVcdTVGRDlcdUZGMUEiLCJzdWJhZ2VudC5jb250aW51ZWQiOiJcdTdFRTdcdTdFRURcdThGOTNcdTUxRkEiLCJzdWJhZ2VudC50YXNrLmRvbmUiOiJcdTRFRkJcdTUyQTFcdTVCOENcdTYyMTAiLCJzdWJhZ2VudC50YXNrLmZhaWxlZCI6Ilx1NEVGQlx1NTJBMVx1NTkzMVx1OEQyNSIsInN1YmFnZW50LnJ1bm5pbmciOiJcdThGRDBcdTg4NENcdTRFMkQiLCJzdWJhZ2VudC5ub19vdXRwdXQiOiJcdUZGMDhcdTY1RTBcdThGOTNcdTUxRkFcdUZGMDkiLCJzdWJhZ2VudC5oZWxwZXJfZmFsbGJhY2tfcHJlZml4IjoiXHU1MzRGXHU0RjVDXHU3MzJCXHhCNyIsInN1YmFnZW50LnRpdGxlX2FyaWEiOiJcdTcwQjlcdTUxRkJcdTVDNTVcdTVGMDAgLyBcdTY1MzZcdThENzdcdTVCNTBcdTRFRTNcdTc0MDZcdThGOTNcdTUxRkEiLCJzdWJhZ2VudC50YWdfdGl0bGUiOiJcdTVCNTBcdTRFRTNcdTc0MDYgLyBzdWJhZ2VudCIsInVpLmV4cGFuZCI6Ilx1NUM1NVx1NUYwMCIsInVpLmNvbGxhcHNlIjoiXHU2NTM2XHU4RDc3IiwidWkuZXhwYW5kX3BhbmVsX2FyaWEiOiJcdTVDNTVcdTVGMDBcdTVCNTBcdTRFRTNcdTc0MDZcdThGOTNcdTUxRkEiLCJ1aS5jb2xsYXBzZV9wYW5lbF9hcmlhIjoiXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIiwiaGlzdG9yeS5leHBhbmQiOiJcdTVDNTVcdTVGMDBcdTUzODZcdTUzRjJcdTVCRjlcdThCREQiLCJoaXN0b3J5LmNvbGxhcHNlIjoiXHU2NTM2XHU4RDc3XHU1Mzg2XHU1M0YyXHU1QkY5XHU4QkREIiwiaGlzdG9yeS5yb3VuZHMiOiJ7bn0gXHU4RjZFXHU1QkY5XHU4QkREIiwiaGlzdG9yeS50b29scyI6IntufSBcdTZCMjFcdTVERTVcdTUxNzdcdThDMDNcdTc1MjgiLCJoaXN0b3J5LmFnZW50cyI6IntufSBcdTRFMkFcdTVCNTBcdTRFRTNcdTc0MDYiLCJoaXN0b3J5LmVycm9ycyI6IntufSBcdTRFMkFcdTU5MzFcdThEMjUiLCJzdG9wLmNvbmZpcm0udGl0bGUiOiJcdTUwNUNcdTZCNjJcdTRFRkJcdTUyQTEiLCJzdG9wLmNvbmZpcm0ubWVzc2FnZSI6Ilx1Nzg2RVx1NUI5QVx1ODk4MVx1NTA1Q1x1NkI2Mlx1NUY1M1x1NTI0RFx1NkI2M1x1NTcyOFx1OEZEMFx1ODg0Q1x1NzY4NFx1NEVGQlx1NTJBMVx1NTQxN1x1RkYxRiIsInN0b3AuY29uZmlybS5vayI6Ilx1NTA1Q1x1NkI2MiIsInN0b3AuY29uZmlybS5jYW5jZWwiOiJcdTUzRDZcdTZEODgifSxFbmdsaXNoOnsic3ViYWdlbnQudGFnIjoiU3ViYWdlbnQiLCJzdWJhZ2VudC5oYW5kb2ZmIjoie3BhcmVudH0gYXNrZWQge3N1Yn0gZm9yIGhlbHAiLCJzdWJhZ2VudC5oYW5kb2ZmLndpdGhfZGVzYyI6IntwYXJlbnR9IGFza2VkIHtzdWJ9IGZvciBoZWxwIHdpdGg6ICIsInN1YmFnZW50LmNvbnRpbnVlZCI6ImNvbnRpbnVlZCIsInN1YmFnZW50LnRhc2suZG9uZSI6IlRhc2sgY29tcGxldGUiLCJzdWJhZ2VudC50YXNrLmZhaWxlZCI6IlRhc2sgZmFpbGVkIiwic3ViYWdlbnQucnVubmluZyI6IlJ1bm5pbmciLCJzdWJhZ2VudC5ub19vdXRwdXQiOiIobm8gb3V0cHV0KSIsInN1YmFnZW50LmhlbHBlcl9mYWxsYmFja19wcmVmaXgiOiJIZWxwZXJceEI3Iiwic3ViYWdlbnQudGl0bGVfYXJpYSI6IkNsaWNrIHRvIGV4cGFuZCAvIGNvbGxhcHNlIHN1YmFnZW50IG91dHB1dCIsInN1YmFnZW50LnRhZ190aXRsZSI6IlN1YmFnZW50IiwidWkuZXhwYW5kIjoiRXhwYW5kIiwidWkuY29sbGFwc2UiOiJDb2xsYXBzZSIsInVpLmV4cGFuZF9wYW5lbF9hcmlhIjoiRXhwYW5kIHN1YmFnZW50IG91dHB1dCIsInVpLmNvbGxhcHNlX3BhbmVsX2FyaWEiOiJDb2xsYXBzZSBzdWJhZ2VudCBvdXRwdXQiLCJoaXN0b3J5LmV4cGFuZCI6IlNob3cgZWFybGllciBjb252ZXJzYXRpb24iLCJoaXN0b3J5LmNvbGxhcHNlIjoiSGlkZSBlYXJsaWVyIGNvbnZlcnNhdGlvbiIsImhpc3Rvcnkucm91bmRzIjoie259IHJvdW5kcyIsImhpc3RvcnkudG9vbHMiOiJ7bn0gdG9vbCBjYWxscyIsImhpc3RvcnkuYWdlbnRzIjoie259IHN1YmFnZW50cyIsImhpc3RvcnkuZXJyb3JzIjoie259IGZhaWxlZCIsInN0b3AuY29uZmlybS50aXRsZSI6IlN0b3AgdGFzayIsInN0b3AuY29uZmlybS5tZXNzYWdlIjoiU3RvcCB0aGUgdGFzayB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmc/Iiwic3RvcC5jb25maXJtLm9rIjoiU3RvcCIsInN0b3AuY29uZmlybS5jYW5jZWwiOiJDYW5jZWwifX07ZnVuY3Rpb24gV3UoKXt2YXIgZT1yLmNvbmZpZyYmdHlwZW9mIHIuY29uZmlnLmxhbmd1YWdlPT0ic3RyaW5nIj9yLmNvbmZpZy5sYW5ndWFnZS50cmltKCk6IiI7aWYoIWUpcmV0dXJuIHVhO2lmKFpyW2VdKXJldHVybiBlO3ZhciB0PWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD09PSJlbmdsaXNoInx8dD09PSJlbiJ8fHQuaW5kZXhPZigiZW5nbGlzaCIpPT09MHx8dC5pbmRleE9mKCJcdTgyRjEiKT09PTA/IkVuZ2xpc2giOnQ9PT0iXHU0RTJEXHU2NTg3Inx8dD09PSJ6aCJ8fHQuaW5kZXhPZigiemgiKT09PTB8fHQuaW5kZXhPZigiXHU0RTJEIik9PT0wfHx0LmluZGV4T2YoImNoaW5lc2UiKT09PTA/Ilx1NEUyRFx1NjU4NyI6IkVuZ2xpc2gifWZ1bmN0aW9uIEVlKGUsdCl7dmFyIG49V3UoKSxpPVpyW25dfHxaclt1YV0sYT1pJiZlIGluIGk/aVtlXTpudWxsO2lmKGE9PW51bGwpe3ZhciB1PVpyW3VhXTthPXUmJmUgaW4gdT91W2VdOmV9aWYodCYmdHlwZW9mIGE9PSJzdHJpbmciKWZvcih2YXIgbyBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pJiYoYT1hLnNwbGl0KCJ7IitvKyJ9Iikuam9pbih0W29dKSk7cmV0dXJuIGF9dmFyIHdkPXtzaGllbGQ6JzxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz4nLHNoaWVsZENoZWNrOic8cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ii8+PHBvbHlsaW5lIHBvaW50cz0iOSAxMiAxMSAxNCAxNSAxMCIvPicsbG9jazonPHJlY3QgeD0iNSIgeT0iMTAiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMSIgcng9IjIiLz48cGF0aCBkPSJNOCAxMFY3YTQgNCAwIDAgMSA4IDB2MyIvPjxwYXRoIGQ9Ik0xMiAxNHYzIi8+JyxjZXJ0aWZpY2F0ZTonPHBhdGggZD0iTTYgM2gxMnYxNEg2eiIvPjxwYXRoIGQ9Ik05IDdoNiIvPjxwYXRoIGQ9Ik05IDExaDQiLz48cGF0aCBkPSJtMTAgMTctMSA0IDMtMSAzIDEtMS00Ii8+JyxjcHU6JzxyZWN0IHg9IjciIHk9IjciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiLz48cGF0aCBkPSJNOSAxdjMiLz48cGF0aCBkPSJNMTUgMXYzIi8+PHBhdGggZD0iTTkgMjB2MyIvPjxwYXRoIGQ9Ik0xNSAyMHYzIi8+PHBhdGggZD0iTTIwIDloMyIvPjxwYXRoIGQ9Ik0yMCAxNWgzIi8+PHBhdGggZD0iTTEgOWgzIi8+PHBhdGggZD0iTTEgMTVoMyIvPjxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjQiIGhlaWdodD0iNCIgcng9IjEiLz4nLGJyYWluOic8cGF0aCBkPSJNOS41IDQuNWEzIDMgMCAwIDAtNC43IDMuMSAzLjMgMy4zIDAgMCAwIC4zIDYuMUEzIDMgMCAwIDAgOCAxOWgxLjVWNC41eiIvPjxwYXRoIGQ9Ik0xNC41IDQuNWEzIDMgMCAwIDEgNC43IDMuMSAzLjMgMy4zIDAgMCAxLS4zIDYuMUEzIDMgMCAwIDEgMTYgMTloLTEuNVY0LjV6Ii8+PHBhdGggZD0iTTkuNSA4SDcuOCIvPjxwYXRoIGQ9Ik0xNC41IDhoMS43Ii8+PHBhdGggZD0iTTkuNSAxM0g3LjYiLz48cGF0aCBkPSJNMTQuNSAxM2gxLjkiLz4nLGtleWJvYXJkOic8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSIxMCIgeDI9IjYiIHkyPSIxMCIvPjxsaW5lIHgxPSIxMCIgeTE9IjEwIiB4Mj0iMTAiIHkyPSIxMCIvPjxsaW5lIHgxPSIxNCIgeTE9IjEwIiB4Mj0iMTQiIHkyPSIxMCIvPjxsaW5lIHgxPSIxOCIgeTE9IjEwIiB4Mj0iMTgiIHkyPSIxMCIvPjxsaW5lIHgxPSI2IiB5MT0iMTQiIHgyPSI2IiB5Mj0iMTQiLz48bGluZSB4MT0iMTgiIHkxPSIxNCIgeDI9IjE4IiB5Mj0iMTQiLz48bGluZSB4MT0iOSIgeTE9IjE0IiB4Mj0iMTUiIHkyPSIxNCIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgNyA5IDEyIDQgMTciLz48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjIwIiB5Mj0iMTciLz4nLGNoYXQ6JzxwYXRoIGQ9Ik0yMSAxMmE4IDggMCAwIDEtMTIuOSA2LjNMMyAyMGwxLjctNS4xQTggOCAwIDEgMSAyMSAxMnoiLz4nLGZvbGRlcjonPHBhdGggZD0iTTMgN2EyIDIgMCAwIDEgMi0yaDRsMiAyaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIvPicsdHJhc2g6Jzxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDEzYTIgMiAwIDAgMS0yIDJIOGEyIDIgMCAwIDEtMi0yTDUgNiIvPjxwYXRoIGQ9Ik0xMCAxMXY2Ii8+PHBhdGggZD0iTTE0IDExdjYiLz48cGF0aCBkPSJNOSA2VjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MiIvPicsY2hldnJvbkRvd246Jzxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+JyxiZWxsOic8cGF0aCBkPSJNMTggMTZ2LTVhNiA2IDAgMSAwLTEyIDB2NWwtMiAyaDE2eiIvPjxwYXRoIGQ9Ik0xMCAyMWEyIDIgMCAwIDAgNCAwIi8+JyxtdXNpYzonPHBhdGggZD0iTTkgMThWNWwxMi0ydjEzIi8+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxNiIgcj0iMyIvPicsdmlicmF0ZTonPHJlY3QgeD0iOSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iMTYiIHJ4PSIxIi8+PHBhdGggZD0iTTUgOHY4Ii8+PHBhdGggZD0iTTMgMTB2NCIvPjxwYXRoIGQ9Ik0xOSA4djgiLz48cGF0aCBkPSJNMjEgMTB2NCIvPicsZ2xvYmU6JzxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48bGluZSB4MT0iMyIgeTE9IjEyIiB4Mj0iMjEiIHkyPSIxMiIvPjxwYXRoIGQ9Ik0xMiAzYTE0IDE0IDAgMCAxIDAgMTgiLz48cGF0aCBkPSJNMTIgM2ExNCAxNCAwIDAgMCAwIDE4Ii8+JyxzbWFydHBob25lOic8cmVjdCB4PSI2IiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHJ4PSIyLjUiLz48bGluZSB4MT0iMTEiIHkxPSIxOCIgeDI9IjEzIiB5Mj0iMTgiLz4nLGRlc2t0b3A6JzxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9IjIiLz48bGluZSB4MT0iOCIgeTE9IjIwIiB4Mj0iMTYiIHkyPSIyMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIiIHkyPSIyMCIvPicsbGluazonPHBhdGggZD0iTTEwIDE0YTQuNSA0LjUgMCAwIDAgNi4zNiAwbDMtM2E0LjUgNC41IDAgMSAwLTYuMzYtNi4zNmwtMS40MiAxLjQxIi8+PHBhdGggZD0iTTE0IDEwYTQuNSA0LjUgMCAwIDAtNi4zNiAwbC0zIDNhNC41IDQuNSAwIDEgMCA2LjM2IDYuMzZsMS40Mi0xLjQxIi8+JyxwYWxldHRlOic8Y2lyY2xlIGN4PSIxMy41IiBjeT0iNi41IiByPSIxIi8+PGNpcmNsZSBjeD0iMTcuNSIgY3k9IjEwLjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI4LjUiIGN5PSI3LjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIxIi8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDAgMTggMS41IDEuNSAwIDAgMCAxLjEtMi41IDEuNSAxLjUgMCAwIDEgMS4xLTIuNWgyLjNBNC41IDQuNSAwIDAgMCAyMSAxMS41QzIxIDYuOCAxNi45NyAzIDEyIDN6Ii8+JyxwbGF5Oic8cG9seWdvbiBwb2ludHM9IjYgNCAyMCAxMiA2IDIwIDYgNCIvPicsd3JlbmNoOic8cGF0aCBkPSJNMTQuNyA2LjNhNCA0IDAgMSAxIDQgNGwtOSA5LTMuNSAxIDEtMy41IDcuNS03LjV6Ii8+JyxwYXc6JzxjaXJjbGUgY3g9IjcuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSI2LjgiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTYuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxMy4zIiByPSIxLjgiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PHBhdGggZD0iTTcuMiAxNi4zYy41LTIuOSAyLjMtNC44IDQuOC00LjhzNC4zIDEuOSA0LjggNC44Yy4zIDEuOC0uOSAzLjItMi42IDIuNi0uOC0uMy0xLjQtLjYtMi4yLS42cy0xLjQuMy0yLjIuNmMtMS43LjYtMi45LS44LTIuNi0yLjZ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMiAyLjEyIDAgMCAxIDMgM0w3IDE5bC00IDEgMS00eiIvPicsc2lnbmFsOic8cGF0aCBkPSJNMiAxMmExNSAxNSAwIDAgMSAyMCAwIi8+PHBhdGggZD0iTTUgMTZhMTAgMTAgMCAwIDEgMTQgMCIvPjxwYXRoIGQ9Ik05IDIwYTQgNCAwIDAgMSA2IDAiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjIwIiByPSIwLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPicsZmlsZTonPHBhdGggZD0iTTE0IDNINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5eiIvPjxwb2x5bGluZSBwb2ludHM9IjE0IDMgMTQgOSAyMCA5Ii8+JyxzaWdtYTonPHBvbHlsaW5lIHBvaW50cz0iMTggNCA2IDQgMTMgMTIgNiAyMCAxOCAyMCIvPicseDonPHBhdGggZD0iTTE4IDYgNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz4nLHBsdXM6JzxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz4nLG1pYzonPHJlY3QgeD0iOSIgeT0iMyIgd2lkdGg9IjYiIGhlaWdodD0iMTEiIHJ4PSIzIi8+PHBhdGggZD0iTTUgMTFhNyA3IDAgMCAwIDE0IDAiLz48bGluZSB4MT0iMTIiIHkxPSIxOCIgeDI9IjEyIiB5Mj0iMjEiLz48bGluZSB4MT0iOSIgeTE9IjIxIiB4Mj0iMTUiIHkyPSIyMSIvPicscGFwZXJjbGlwOic8cGF0aCBkPSJNMjEuNDQgMTEuMDUgMTIuMjUgMjAuMjRhNiA2IDAgMCAxLTguNDktOC40OWw4Ljg0LTguODRhNCA0IDAgMSAxIDUuNjYgNS42Nkw5LjQxIDE3LjQxYTIgMiAwIDEgMS0yLjgzLTIuODNsOC44NC04LjgzIi8+J307ZnVuY3Rpb24gVihlLHQpe3ZhciBuPXdkW2VdO2lmKCFuKXJldHVybiIiO3Q9dHx8e307dmFyIGk9dC5zaXplfHwxNCxhPXQuc3Ryb2tlV2lkdGh8fDEuOCx1PXQuY2xzPycgY2xhc3M9IicrdC5jbHMrJyInOiIiLG89dC5maWxsfHwibm9uZSI7cmV0dXJuIjxzdmciK3UrJyB3aWR0aD0iJytpKyciIGhlaWdodD0iJytpKyciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iJytvKyciIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IicrYSsnIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK24rIjwvc3ZnPiJ9ZnVuY3Rpb24gcm4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighZSlyZXR1cm4gci5jaGF0U2Nyb2xsRWxlbWVudD1udWxsLG51bGw7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO3JldHVybiB0PyhyLmNoYXRTY3JvbGxFbGVtZW50PXQsdCk6KHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxudWxsKX1mdW5jdGlvbiBvYShlKXt2YXIgdD1lfHxybigpO3JldHVybiB0P01hdGguYWJzKHQuc2Nyb2xsVG9wKTxyLmNoYXRTY3JvbGxUaHJlc2hvbGQ6ITB9ZnVuY3Rpb24gemcoZSl7ci5jaGF0U3RpY2tUb0JvdHRvbT0hIWUsci5jaGF0U3RpY2tUb0JvdHRvbSYmQ24oe3JlbW92ZURpdmlkZXI6ITB9KSxHZSgpfWZ1bmN0aW9uIENuKGUpe2U9ZXx8e307dmFyIHQ9ci5jaGF0VW5yZWFkQ291bnQ+MHx8ci5jaGF0VW5yZWFkU3RhcnRJbmRleD49MDtpZihyLmNoYXRVbnJlYWRDb3VudD0wLHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9LTEsZS5yZW1vdmVEaXZpZGVyIT09ITEpe3ZhciBuPXJuKCk7aWYobil7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2kmJmkucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpfX10JiZHZSgpfWZ1bmN0aW9uIHNhKGUpe2lmKGV8fChlPXJuKCkpLCEhZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2lmKHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg8MHx8ci5jaGF0VW5yZWFkQ291bnQ8PTApe3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpO3JldHVybn1mb3IodmFyIG49ci5jaGF0VW5yZWFkU3RhcnRJbmRleCxpPWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZSIpLGE9bnVsbCx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBvPWlbdV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKG8hPT1udWxsKXt2YXIgcz1wYXJzZUludChvLDEwKTtpZighaXNOYU4ocykmJnM8bil7YT1pW3VdO2JyZWFrfX19dmFyIGw9ci5jaGF0VW5yZWFkQ291bnQrIiBcdTY3NjFcdTY1QjBcdTZEODhcdTYwNkYiO3R8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LXVucmVhZC1kaXZpZGVyIix0LnNldEF0dHJpYnV0ZSgicm9sZSIsInNlcGFyYXRvciIpLHQuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGFiZWwiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+JyksdC5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlci1sYWJlbCIpLnRleHRDb250ZW50PWwsYT8odC5uZXh0U2libGluZyE9PWF8fHQucGFyZW50Tm9kZSE9PWUpJiZlLmluc2VydEJlZm9yZSh0LGEpOih0LnBhcmVudE5vZGUhPT1lfHx0Lm5leHRTaWJsaW5nIT09bnVsbCkmJmUuYXBwZW5kQ2hpbGQodCl9fWZ1bmN0aW9uIEdlKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtdW5yZWFkLWJ1YmJsZSIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PXIuc2VsZWN0ZWRJZH0pLG49IW9hKCksaT0hIXQmJnIuY3VycmVudFZpZXc9PT0iY2hhdCImJm47ZS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIixpKSxlLmNsYXNzTGlzdC50b2dnbGUoImhhcy11bnJlYWQiLHIuY2hhdFVucmVhZENvdW50PjApO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudCIpO2EmJihyLmNoYXRVbnJlYWRDb3VudD4wPyhhLnRleHRDb250ZW50PXIuY2hhdFVucmVhZENvdW50Pjk5PyI5OSsiOlN0cmluZyhyLmNoYXRVbnJlYWRDb3VudCksYS5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpOihhLnRleHRDb250ZW50PSIiLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKSk7dmFyIHU9ci5jaGF0VW5yZWFkQ291bnQ+MD9yLmNoYXRVbnJlYWRDb3VudCsiIFx1Njc2MVx1NjVCMFx1NkQ4OFx1NjA2Rlx1RkYwQ1x1NzBCOVx1NTFGQlx1NjdFNVx1NzcwQiI6Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiI7ZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHUpLGUuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdSk7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7byYmby5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtanVtcC1idG4iLGkpfX1mdW5jdGlvbiBlaSgpe2xhKCl9ZnVuY3Rpb24gbGEoZSl7dmFyIHQ9ZXx8cm4oKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXBpbi1zcGFjZXIiKTtuJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX19ZnVuY3Rpb24genUoZSl7dmFyIHQ9cm4oKTtpZighKCF0fHwhdC5pc0Nvbm5lY3RlZCkpe2VpKCksbGEodCksci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITA7dmFyIG49ZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksR2UoKX07aWYoZSYmdHlwZW9mIHQuc2Nyb2xsVG89PSJmdW5jdGlvbiIpe3Quc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOiJzbW9vdGgifSksc2V0VGltZW91dChuLDI2MCk7cmV0dXJufXQuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfX1mdW5jdGlvbiBWdSgpe3ZhciBlPXJuKCk7ZWkoKSxlJiZsYShlKSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksZSYmZS5pc0Nvbm5lY3RlZCYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPURhdGUubm93KCkrMTgwLGUuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksR2UoKX1mdW5jdGlvbiBscigpe3ZhciBlPXJuKCk7aWYoIWV8fCFlLmlzQ29ubmVjdGVkKXJldHVybjtpZihyLmNoYXRTY3JvbGxFbGVtZW50PT09ZSYmci5jaGF0U2Nyb2xsSGFuZGxlcil7R2UoKTtyZXR1cm59ci5jaGF0U2Nyb2xsRWxlbWVudCYmKHIuY2hhdFNjcm9sbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyKSxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyKSksci5jaGF0U2Nyb2xsRWxlbWVudD1lO2Z1bmN0aW9uIHQoKXtlaSgpLHIuY2hhdFN0aWNrVG9Cb3R0b209ITEsZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSYmVmUoITApLEdlKCl9ci5jaGF0U2Nyb2xsSGFuZGxlcj1mdW5jdGlvbigpe2lmKGUuaXNDb25uZWN0ZWQpe2lmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsfHxEYXRlLm5vdygpPHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsKXtHZSgpO3JldHVybn12YXIgbj1vYShlKTtpZihuKWVpKCksci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxDbih7cmVtb3ZlRGl2aWRlcjohMH0pO2Vsc2V7dCgpO3JldHVybn1HZSgpfX0sci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyPWZ1bmN0aW9uKG4pe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsfHxuLmRlbHRhWTwwJiZ0KCl9LHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyPWZ1bmN0aW9uKG4peyFuLnRvdWNoZXN8fG4udG91Y2hlcy5sZW5ndGg9PT0wfHwoci5jaGF0VG91Y2hTdGFydFk9bi50b3VjaGVzWzBdLmNsaWVudFkpfSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyPWZ1bmN0aW9uKG4pe2lmKCFyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbCYmISghbi50b3VjaGVzfHxuLnRvdWNoZXMubGVuZ3RoPT09MCkpe3ZhciBpPW4udG91Y2hlc1swXS5jbGllbnRZLXIuY2hhdFRvdWNoU3RhcnRZO2k+NCYmdCgpfX0sZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIuY2hhdFNjcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXIse3Bhc3NpdmU6ITB9KSxHZSgpfWZ1bmN0aW9uIFV1KCl7aWYoci5jaGF0UmVuZGVyZWRDb3VudDxyLmN1cnJlbnRNZXNzYWdlcy5sZW5ndGgpe3IuY2hhdFJlbmRlcmVkQ291bnQrPXIuY2hhdFBhZ2VTaXplLFZlKCEwKTtyZXR1cm59dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7ZSYmdHlwZW9mIGUubWVzc2FnZU9mZnNldD09Im51bWJlciImJmUubWVzc2FnZU9mZnNldD4wJiZPbSgpfXZhciBkcj1udWxsO2Z1bmN0aW9uIENkKCl7ZHImJihkci5kaXNjb25uZWN0KCksZHI9bnVsbCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtbG9hZC1tb3JlLXNlbnRpbmVsIik7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1sb2FkLW1vcmUtYnRuIik7dCYmKHQub25jbGljaz1mdW5jdGlvbigpe1V1KCl9KTt2YXIgbj0hISh3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcyksaT13aW5kb3cuaW5uZXJXaWR0aDw9NzY4O258fGl8fHdpbmRvdy5fX3dhbmRJbWVOYXRpdmV8fHdpbmRvdy5fX3dhbmRJb3NOYXRpdmV8fHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcj4idSJ8fChkcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSl7Zm9yKHZhciB1PTA7dTxhLmxlbmd0aDt1KyspaWYoYVt1XS5pc0ludGVyc2VjdGluZyl7VXUoKTticmVha319LHtyb290OnJuKCkscm9vdE1hcmdpbjoiMjAwcHgifSksZHIub2JzZXJ2ZShlKSl9fWZ1bmN0aW9uIGhlKCl7dHJ5e3Iuc2VsZWN0ZWRJZD9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1zZWxlY3RlZC1zZXNzaW9uIixyLnNlbGVjdGVkSWQpOmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKX1jYXRjaHt9fWZ1bmN0aW9uIGRhKGUpe3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpP2UucXVldWVkTWVzc2FnZXM6ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZX1mdW5jdGlvbiBCZCgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiBkYShlKX1mdW5jdGlvbiB0aShlKXt2YXIgdD1kYShlKTtyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPUFycmF5LmlzQXJyYXkodCk/dC5zbGljZSgpOltdfWZ1bmN0aW9uIEt1KGUsdCl7cmV0dXJuISEoZSYmQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpJiZlLmNvbnRlbnQuc29tZShmdW5jdGlvbihuKXtyZXR1cm4gbiYmdHlwZW9mIG49PSJvYmplY3QiJiZuW3RdfSkpfWZ1bmN0aW9uIERkKGUpe3JldHVybiEhKGUmJmUucm9sZT09PSJ1c2VyIiYmS3UoZSwiX19xdWV1ZWQiKSl9ZnVuY3Rpb24ga2QoZSl7cmV0dXJuISEoZSYmZS5yb2xlPT09ImFzc2lzdGFudCImJkt1KGUsIl9fcHJvY2Vzc2luZyIpKX1mdW5jdGlvbiBjcihlKXtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm5bXTtmb3IodmFyIHQ9ITEsbj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoRGQoYSl8fGtkKGEpKXt0PSEwO2NvbnRpbnVlfW4ucHVzaChhKX1yZXR1cm4gdD9uOmV9ZnVuY3Rpb24gQWQoZSx0KXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcykpcmV0dXJuIGU7dmFyIG49ZS5zZXNzaW9uS2luZHx8dCYmdC5zZXNzaW9uS2luZDtpZihuIT09InN0cnVjdHVyZWQiKXJldHVybiBlO3ZhciBpPWNyKGUubWVzc2FnZXMpO3JldHVybiBpPT09ZS5tZXNzYWdlcz9lOk9iamVjdC5hc3NpZ24oe30sZSx7bWVzc2FnZXM6aX0pfWZ1bmN0aW9uIEp1KCl7dHJ5e3ZhciBlPUJkKCk7aWYoIXIuc2VsZWN0ZWRJZHx8ZS5sZW5ndGg9PT0wKXJldHVybjtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIixKU09OLnN0cmluZ2lmeSh7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZCxpdGVtczplfSkpfWNhdGNoe319ZnVuY3Rpb24gWXUoZSl7dHJ5e3ZhciB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXN0cnVjdHVyZWQtcXVldWUiKTtpZighdClyZXR1cm47dmFyIG49SlNPTi5wYXJzZSh0KTsoIWV8fCFufHxuLnNlc3Npb25JZD09PWUpJiZsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIil9Y2F0Y2h7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpfX1mdW5jdGlvbiBHdSgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUmJkFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcykpe3RpKGUpLEp1KCk7cmV0dXJufXRyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIik7aWYoIXQpcmV0dXJuO3ZhciBuPUpTT04ucGFyc2UodCk7aWYoIW58fG4uc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkfHwhQXJyYXkuaXNBcnJheShuLml0ZW1zKSlyZXR1cm47ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1uLml0ZW1zLnNsaWNlKDAsMTApfWNhdGNoe3Iuc3RydWN0dXJlZElucHV0UXVldWU9W119fWZ1bmN0aW9uIEp0KCl7dHJ5e2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIpO3JldHVybn1sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1jcm9zcy1zZXNzaW9uLXF1ZXVlIixKU09OLnN0cmluZ2lmeShyLmNyb3NzU2Vzc2lvblF1ZXVlKSl9Y2F0Y2h7fX1mdW5jdGlvbiBhbigpe3JldHVybiByLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdEN3ZHx8Ii90bXAifWZ1bmN0aW9uIFF1KCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGlhKTtpZighZSlyZXR1cm57fTt2YXIgdD1KU09OLnBhcnNlKGUpO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/dDp7fX1jYXRjaHtyZXR1cm57fX19ZnVuY3Rpb24geGQoZSl7dHJ5e2lmKCFlfHxPYmplY3Qua2V5cyhlKS5sZW5ndGg9PT0wKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShpYSk7cmV0dXJufWxvY2FsU3RvcmFnZS5zZXRJdGVtKGlhLEpTT04uc3RyaW5naWZ5KGUpKX1jYXRjaHt9fWZ1bmN0aW9uIFNkKCl7dmFyIGU9ci5zZWxlY3RlZElkO2lmKCFlKXJldHVybnt9O3ZhciB0PVF1KCksbj10W2VdO3JldHVybiBuJiZ0eXBlb2Ygbj09Im9iamVjdCI/bjp7fX1mdW5jdGlvbiBidChlKXtpZighZXx8IXIuc2VsZWN0ZWRJZClyZXR1cm4gbnVsbDt2YXIgdD1TZCgpO3JldHVybiB0eXBlb2YgdFtlXT09ImJvb2xlYW4iP3RbZV06bnVsbH1mdW5jdGlvbiAkdShlLHQpe2lmKCEoIWV8fCFyLnNlbGVjdGVkSWQpKXt2YXIgbj1RdSgpLGk9ci5zZWxlY3RlZElkLGE9bltpXTsoIWF8fHR5cGVvZiBhIT0ib2JqZWN0IikmJihhPXt9KSxhW2VdPSEhdCxuW2ldPWEseGQobil9fWZ1bmN0aW9uIFh1KGUsdCl7cmV0dXJuIGU/ZS51dWlkPyJtc2c6IitlLnV1aWQ6ZS5pZD8ibXNnOiIrZS5pZDplLm1lc3NhZ2VJZD8ibXNnOiIrZS5tZXNzYWdlSWQ6ZS50dXJuSWQ/Im1zZzoiK2UudHVybklkOiJtc2c6IisodHlwZW9mIHQ9PSJudW1iZXIiP3Q6MCk6Im1zZzp1bmtub3duLSIrKHR5cGVvZiB0PT0ibnVtYmVyIj90OjApfWZ1bmN0aW9uIFR0KGUsdCl7Zm9yKHZhciBuPVtdLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTthPT1udWxsfHxhPT09IiJ8fG4ucHVzaChTdHJpbmcoYSkpfXJldHVybiBlKyI6IituLmpvaW4oIjoiKX1mdW5jdGlvbiBjYShlKXtyZXR1cm4hZXx8IWUuZGF0YXNldD8iIjplLmRhdGFzZXQuZXhwYW5kS2V5fHwiIn1mdW5jdGlvbiBJZChlLHQpe2lmKCFlKXJldHVybiExO3N3aXRjaCh0KXtjYXNlInRvb2wtY2FyZCI6Y2FzZSJkaWZmIjpyZXR1cm4hZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO2Nhc2UidGhpbmtpbmciOnJldHVybiBlLmNsYXNzTGlzdC5jb250YWlucygiZXhwYW5kZWQiKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtjYXNlImlubGluZS10b29sIjpyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoImlubGluZS10b29sLW9wZW4iKTtjYXNlInRlcm1pbmFsIjp7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGVybS1ib2R5Iik7cmV0dXJuIG4/bi5zdHlsZS5kaXNwbGF5IT09Im5vbmUiOmUuZGF0YXNldC5leHBhbmRlZD09PSJ0cnVlIn1jYXNlInRvb2wtZ3JvdXAiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2Nhc2Uic3ViYWdlbnQtcmVwbHkiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2Nhc2Uic3ViYWdlbnQtcGFuZWwiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIFp1KGUsdCxuKXtpZihlKXN3aXRjaCh0KXtjYXNlInRvb2wtY2FyZCI6Y2FzZSJkaWZmIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLCFuKTticmVha31jYXNlInRoaW5raW5nIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLCFuKSxlLmNsYXNzTGlzdC50b2dnbGUoImV4cGFuZGVkIiwhIW4pO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3Iik7aWYoaSl7dmFyIGE9ZS5kYXRhc2V0LnRoaW5raW5nfHwiIix1PWEuc2xpY2UoMCw1NykrKGEubGVuZ3RoPjYwPyJcdTIwMjYiOiIiKTtpLnRleHRDb250ZW50PW4/YTp1fXZhciBvPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1hY3Rpb24iKTtvJiYoby50ZXh0Q29udGVudD1uPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKTticmVha31jYXNlImlubGluZS10b29sIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJpbmxpbmUtdG9vbC1vcGVuIiwhIW4pO3ZhciBzPWUucXVlcnlTZWxlY3RvcigiLmlubGluZS10b29sLWV4cGFuZGVkIik7cyYmKHMuc3R5bGUuZGlzcGxheT1uPyJibG9jayI6Im5vbmUiKTticmVha31jYXNlInRlcm1pbmFsIjp7dmFyIGw9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS1ib2R5Iik7bCYmKGwuc3R5bGUuZGlzcGxheT1uPyJibG9jayI6Im5vbmUiKSxlLmRhdGFzZXQuZXhwYW5kZWQ9bj8idHJ1ZSI6ImZhbHNlIjt2YXIgZD1lLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLXRvZ2dsZS1pY29uIik7ZCYmKGQudGV4dENvbnRlbnQ9bj8iXHUyNUJDIjoiXHUyNUI2Iik7YnJlYWt9Y2FzZSJ0b29sLWdyb3VwIjp7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLG4/InRydWUiOiJmYWxzZSIpO3ZhciBmPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtYm9keSIpO2YmJihmLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIik7dmFyIGM9ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1jaGV2cm9uIik7YyYmKGMuc3R5bGUudHJhbnNmb3JtPW4/InJvdGF0ZSgxODBkZWcpIjoiIik7YnJlYWt9Y2FzZSJzdWJhZ2VudC1yZXBseSI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTt2YXIgdj1lLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1yZXBseS10b2dnbGUtbGFiZWwiKTt2JiYodi50ZXh0Q29udGVudD1uPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKTt2YXIgaD1lLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1yZXBseS10b2dnbGUiKTtoJiYoaC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLG4/InRydWUiOiJmYWxzZSIpLGguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixuPyJcdTY1MzZcdThENzdcdTVCNTBcdTRFRTNcdTc0MDZcdTU2REVcdTU5MEQiOiJcdTVDNTVcdTVGMDBcdTVCNTBcdTRFRTNcdTc0MDZcdTU2REVcdTU5MERcdTUxNjhcdTY1ODciKSk7YnJlYWt9Y2FzZSJzdWJhZ2VudC1wYW5lbCI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTtmb3IodmFyIGc9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuc3ViYWdlbnQtcGFuZWwtdG9nZ2xlIiksbT0wO208Zy5sZW5ndGg7bSsrKXt2YXIgeT1nW21dO3kuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKSx5LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj8iXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIik7dmFyIEM9eS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWxhYmVsIik7QyYmKEMudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIil9dmFyIEU9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcGFuZWwtYm9keSIpO0UmJihuP0Uuc2Nyb2xsVG9wPTA6RS5zY3JvbGxUb3A9RS5zY3JvbGxIZWlnaHQpO2JyZWFrfX19ZnVuY3Rpb24gTm4oZSx0KXt2YXIgbj1jYShlKTtuJiYkdShuLElkKGUsdCkpfWZ1bmN0aW9uIGZhKGUpeyFlfHwhci5zZWxlY3RlZElkfHxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWV4cGFuZC1rZXldIikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj1jYSh0KSxpPXQuZGF0YXNldC5leHBhbmRLaW5kfHwiIixhPWJ0KG4pO2E9PT1udWxsfHwhaXx8WnUodCxpLGEpfSl9ZnVuY3Rpb24gUmUoKXtyZXR1cm4gd2luZG93LmlubmVyV2lkdGg8PTc2OH1mdW5jdGlvbiBlbygpe3JldHVybiEhci5zZXNzaW9uc0RyYXdlck9wZW4mJihSZSgpfHwhci5zaWRlYmFyUGlubmVkKX1mdW5jdGlvbiBwYShlKXtyLmZpbGVQYW5lbE9wZW49ZTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtZmlsZS1wYW5lbC1vcGVuIixTdHJpbmcoci5maWxlUGFuZWxPcGVuKSl9Y2F0Y2h7fXIuZmlsZVBhbmVsT3BlbiYmUmUoKSYmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpKSx1bigpLHIuZmlsZVBhbmVsT3BlbiYmTHQoKX1mdW5jdGlvbiBuaSgpe3BhKCFyLmZpbGVQYW5lbE9wZW4pfWZ1bmN0aW9uIFRkKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2lkZS1wYW5lbCIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tY29udGVudCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtdG9nZ2xlLWJ0biIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtYmFja2Ryb3AiKTtlJiZlLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLHIuZmlsZVBhbmVsT3BlbiksdCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJmaWxlLXBhbmVsLW9wZW4iLHIuZmlsZVBhbmVsT3BlbiksaSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLmZpbGVQYW5lbE9wZW4pLG4mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLmZpbGVQYW5lbE9wZW4pfWZ1bmN0aW9uIHVuKCl7UnIoKSxUZCgpfWZ1bmN0aW9uIExkKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKHQpe3ZhciBuPWUmJmUuY3dkP2UuY3dkOmFuKCk7dC50YWdOYW1lPT09IklOUFVUIj9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmKHQudmFsdWU9bixfZyh0KSk6dC50ZXh0Q29udGVudD1uLHQudGl0bGU9bjt2YXIgaT10LmNsb3Nlc3QoIi5maWxlLWV4cGxvcmVyLWhlYWRlciIpO2kmJmFyKGkpfX1mdW5jdGlvbiB0bygpe3IuZmlsZVBhbmVsT3BlbiYmcGEoITEpfWZ1bmN0aW9uIG5vKGUpe3ZhciB0PXIudGVybWluYWxTY2FsZStlO2lmKHQ9TWF0aC5tYXgoLjUsTWF0aC5taW4oMix0KSksdD1NYXRoLnJvdW5kKHQqNCkvNCx0IT09ci50ZXJtaW5hbFNjYWxlKXtyLnRlcm1pbmFsU2NhbGU9dDt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtdGVybWluYWwtc2NhbGUiLFN0cmluZyh0KSl9Y2F0Y2h7fXJvKCksTWQoKX19ZnVuY3Rpb24gcm8oKXtpZighKCFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbC5lbGVtZW50KSl7dmFyIGU9ci50ZXJtaW5hbEJhc2VGb250U2l6ZSpyLnRlcm1pbmFsU2NhbGUsdD1NYXRoLm1heCgxLE1hdGgucm91bmQoZSkpLG49TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUqMS41KSk7ci50ZXJtaW5hbC5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCItLXRlcm0tZm9udC1zaXplIix0KyJweCIpLHIudGVybWluYWwuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10ZXJtLXJvdy1oZWlnaHQiLG4rInB4IiksdHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpfSl9fWZ1bmN0aW9uIE1kKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLWxhYmVsLXRvcCIpO2UmJihlLnRleHRDb250ZW50PU1hdGgucm91bmQoci50ZXJtaW5hbFNjYWxlKjEwMCkrIiUiKX12YXIgcWQ9eyJjaGV2cm9uLWxlZnQiOic8cGF0aCBkPSJNMTUgMThsLTYtNiA2LTYiLz4nLCJhcnJvdy11cCI6JzxwYXRoIGQ9Ik0xMiAxOVY1Ii8+PHBhdGggZD0iTTUgMTJsNy03IDcgNyIvPicscmVmcmVzaDonPHBhdGggZD0iTTIxIDEyYTkgOSAwIDEgMS0zLTYuNyIvPjxwYXRoIGQ9Ik0yMSA0djVoLTUiLz4nLGV5ZTonPHBhdGggZD0iTTEgMTJzNC03IDExLTcgMTEgNyAxMSA3LTQgNy0xMSA3UzEgMTIgMSAxMnoiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIi8+JywiZXllLW9mZiI6JzxwYXRoIGQ9Ik0xNy45NCAxNy45NEExMC45NCAxMC45NCAwIDAgMSAxMiAxOWMtNyAwLTExLTctMTEtN2ExOS44NiAxOS44NiAwIDAgMSA0LjIyLTUuMTgiLz48cGF0aCBkPSJNMSAxbDIyIDIyIi8+PHBhdGggZD0iTTkuOSA0LjI0QTEwLjk0IDEwLjk0IDAgMCAxIDEyIDRjNyAwIDExIDcgMTEgN2ExOS44MyAxOS44MyAwIDAgMS0zLjM2IDQuMjciLz48cGF0aCBkPSJNMTQuMTIgMTQuMTJhMyAzIDAgMSAxLTQuMjQtNC4yNCIvPicseDonPHBhdGggZD0iTTE4IDZMNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz4nLHNlYXJjaDonPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iNyIvPjxwYXRoIGQ9Ik0yMSAyMWwtNC4zLTQuMyIvPicsY29weTonPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiByeD0iMiIvPjxwYXRoIGQ9Ik01IDE1VjVhMiAyIDAgMCAxIDItMmgxMCIvPicsY2xpcGJvYXJkOic8cmVjdCB4PSI4IiB5PSIzIiB3aWR0aD0iOCIgaGVpZ2h0PSI0IiByeD0iMSIvPjxwYXRoIGQ9Ik0xNiA1aDJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiIvPicsZG93bmxvYWQ6JzxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+PHBhdGggZD0iTTcgMTBsNSA1IDUtNSIvPjxwYXRoIGQ9Ik0xMiAxNVYzIi8+JyxlZGl0Oic8cGF0aCBkPSJNMTIgMjBoOSIvPjxwYXRoIGQ9Ik0xNi41IDMuNWEyLjEyMSAyLjEyMSAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNHoiLz4nLHNhdmU6JzxwYXRoIGQ9Ik0xOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDExbDUgNXYxMWEyIDIgMCAwIDEtMiAyeiIvPjxwYXRoIGQ9Ik0xNyAyMXYtOEg3djgiLz48cGF0aCBkPSJNNyAzdjVoOCIvPicsInJvdGF0ZS1jY3ciOic8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgMy02LjciLz48cGF0aCBkPSJNMyA0djVoNSIvPicsIndyYXAtdGV4dCI6JzxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNMyAxMmgxNWEzIDMgMCAxIDEgMCA2aC00Ii8+PHBhdGggZD0iTTE2IDE2bC0yIDIgMiAyIi8+PHBhdGggZD0iTTMgMThoNiIvPicsdHlwZTonPHBhdGggZD0iTTQgN1Y0aDE2djMiLz48cGF0aCBkPSJNOSAyMGg2Ii8+PHBhdGggZD0iTTEyIDR2MTYiLz4nLG1pbnVzOic8cGF0aCBkPSJNNSAxMmgxNCIvPicscGx1czonPHBhdGggZD0iTTEyIDV2MTQiLz48cGF0aCBkPSJNNSAxMmgxNCIvPicsInNlbmQtdG8taW5wdXQiOic8cGF0aCBkPSJNMjIgMkwxMSAxMyIvPjxwYXRoIGQ9Ik0yMiAybC03IDIwLTQtOS05LTR6Ii8+Jyx0ZXJtaW5hbDonPHBvbHlsaW5lIHBvaW50cz0iNCAxNyAxMCAxMSA0IDUiLz48bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjIwIiB5Mj0iMTkiLz4nLCJmb2xkZXItb3BlbiI6JzxwYXRoIGQ9Ik02IDE0bDEuNDUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NSA2YTIgMiAwIDAgMS0xLjk0IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOTNhMiAyIDAgMCAxIDEuNjYuOWwuODIgMS4yYTIgMiAwIDAgMCAxLjY2LjlIMThhMiAyIDAgMCAxIDIgMnYyIi8+JyxpbmZvOic8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIiIHkyPSIxMiIvPjxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMi4wMSIgeTI9IjgiLz4nfTtmdW5jdGlvbiBNZShlLHQpe3Q9dHx8e307dmFyIG49cWRbZV18fCIiLGk9dC5zaXplfHwxNixhPXQuY2xhc3NOYW1lPyIgIit0LmNsYXNzTmFtZToiIjtyZXR1cm4nPHN2ZyBjbGFzcz0id2FuZC1pY29uIHdhbmQtaWNvbi0nK2UrYSsnIiB3aWR0aD0iJytpKyciIGhlaWdodD0iJytpKyciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytuKyI8L3N2Zz4ifWZ1bmN0aW9uIFBkKGUpe3ZhciB0PWV8fGFuKCk7cmV0dXJuIHQ/JzxkaXYgY2xhc3M9ImZpbGUtdHJlZSIgaWQ9ImZpbGUtdHJlZSIgZGF0YS1jd2Q9IicrcCh0KSsnIj48ZGl2IGNsYXNzPSJ0cmVlLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2Pic6JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1NjcyQVx1OTE0RFx1N0Y2RVx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1MzAwMjwvZGl2Pid9dmFyIE9kPXtwbmc6Ilx1ezFGNUJDfVx1RkUwRiIsanBnOiJcdXsxRjVCQ31cdUZFMEYiLGpwZWc6Ilx1ezFGNUJDfVx1RkUwRiIsZ2lmOiJcdXsxRjVCQ31cdUZFMEYiLHdlYnA6Ilx1ezFGNUJDfVx1RkUwRiIsc3ZnOiJcdXsxRjVCQ31cdUZFMEYiLGF2aWY6Ilx1ezFGNUJDfVx1RkUwRiIsYm1wOiJcdXsxRjVCQ31cdUZFMEYiLGljbzoiXHV7MUY1QkN9XHVGRTBGIixoZWljOiJcdXsxRjVCQ31cdUZFMEYiLGhlaWY6Ilx1ezFGNUJDfVx1RkUwRiIscGRmOiJcdXsxRjRENX0iLGRvYzoiXHV7MUY0RDh9Iixkb2N4OiJcdXsxRjREOH0iLG9kdDoiXHV7MUY0RDh9Iix4bHM6Ilx1ezFGNENBfSIseGxzeDoiXHV7MUY0Q0F9Iixjc3Y6Ilx1ezFGNENBfSIsdHN2OiJcdXsxRjRDQX0iLHBwdDoiXHV7MUY0RDl9IixwcHR4OiJcdXsxRjREOX0iLG1wNDoiXHV7MUYzQUN9Iix3ZWJtOiJcdXsxRjNBQ30iLG1vdjoiXHV7MUYzQUN9Iixta3Y6Ilx1ezFGM0FDfSIsbTR2OiJcdXsxRjNBQ30iLG9ndjoiXHV7MUYzQUN9IixtcDM6Ilx1ezFGM0I1fSIsd2F2OiJcdXsxRjNCNX0iLG9nZzoiXHV7MUYzQjV9IixtNGE6Ilx1ezFGM0I1fSIsZmxhYzoiXHV7MUYzQjV9IixhYWM6Ilx1ezFGM0I1fSIsb3B1czoiXHV7MUYzQjV9Iix6aXA6Ilx1ezFGNEU2fSIsdGFyOiJcdXsxRjRFNn0iLGd6OiJcdXsxRjRFNn0iLHRnejoiXHV7MUY0RTZ9IixiejI6Ilx1ezFGNEU2fSIsIjd6IjoiXHV7MUY0RTZ9IixyYXI6Ilx1ezFGNEU2fSIseHo6Ilx1ezFGNEU2fSIsbWQ6Ilx1ezFGNEREfSIsbWFya2Rvd246Ilx1ezFGNEREfSIsbWR4OiJcdXsxRjRERH0iLHJzdDoiXHV7MUY0RER9Iix0eHQ6Ilx1ezFGNEREfSIsbG9nOiJcdXsxRjRERH0iLGh0bWw6Ilx1ezFGMzEwfSIsaHRtOiJcdXsxRjMxMH0iLHhtbDoiXHV7MUYzMTB9Iixjc3M6Ilx1ezFGM0E4fSIsc2NzczoiXHV7MUYzQTh9IixsZXNzOiJcdXsxRjNBOH0iLGpzb246Ilx1MjY5OVx1RkUwRiIsanNvbmM6Ilx1MjY5OVx1RkUwRiIseWFtbDoiXHUyNjk5XHVGRTBGIix5bWw6Ilx1MjY5OVx1RkUwRiIsdG9tbDoiXHUyNjk5XHVGRTBGIixpbmk6Ilx1MjY5OVx1RkUwRiIsY2ZnOiJcdTI2OTlcdUZFMEYiLGNvbmY6Ilx1MjY5OVx1RkUwRiIsZW52OiJcdTI2OTlcdUZFMEYiLGVkaXRvcmNvbmZpZzoiXHUyNjk5XHVGRTBGIix0czoiXHV7MUY0REN9Iix0c3g6Ilx1ezFGNERDfSIsanM6Ilx1ezFGNERDfSIsanN4OiJcdXsxRjREQ30iLG1qczoiXHV7MUY0REN9IixjanM6Ilx1ezFGNERDfSIscHk6Ilx1ezFGNERDfSIscmI6Ilx1ezFGNERDfSIsZ286Ilx1ezFGNERDfSIscnM6Ilx1ezFGNERDfSIsamF2YToiXHV7MUY0REN9IixjOiJcdXsxRjREQ30iLGNwcDoiXHV7MUY0REN9IixoOiJcdXsxRjREQ30iLGhwcDoiXHV7MUY0REN9IixjczoiXHV7MUY0REN9Iixzd2lmdDoiXHV7MUY0REN9IixrdDoiXHV7MUY0REN9IixzY2FsYToiXHV7MUY0REN9IixwaHA6Ilx1ezFGNERDfSIsc2g6Ilx1ezFGNERDfSIsYmFzaDoiXHV7MUY0REN9Iix6c2g6Ilx1ezFGNERDfSIsZmlzaDoiXHV7MUY0REN9IixsdWE6Ilx1ezFGNERDfSIsc3FsOiJcdXsxRjREQ30iLGdyYXBocWw6Ilx1ezFGNERDfSIscHJvdG86Ilx1ezFGNERDfSIsdnVlOiJcdXsxRjREQ30iLHN2ZWx0ZToiXHV7MUY0REN9IixkaWZmOiJcdXsxRjREQ30iLHBhdGNoOiJcdXsxRjREQ30iLHR0ZjoiXHV7MUY1MjR9IixvdGY6Ilx1ezFGNTI0fSIsd29mZjoiXHV7MUY1MjR9Iix3b2ZmMjoiXHV7MUY1MjR9Iixlb3Q6Ilx1ezFGNTI0fSJ9O2Z1bmN0aW9uIGlvKGUpe2lmKCFlKXJldHVybiJcdXsxRjRDNH0iO2lmKGUudHlwZT09PSJkaXIiKXJldHVybiJcdXsxRjRDMX0iO3ZhciB0PShlLm5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpO2lmKHQ9PT0iZG9ja2VyZmlsZSIpcmV0dXJuIlx1ezFGNDMzfSI7aWYodD09PSJtYWtlZmlsZSIpcmV0dXJuIlx1ezFGNkUwfVx1RkUwRiI7aWYodD09PSJsaWNlbnNlIilyZXR1cm4iXHV7MUY0REN9IjtpZih0PT09InJlYWRtZSIpcmV0dXJuIlx1ezFGNEREfSI7dmFyIG49dC5sYXN0SW5kZXhPZigiLiIpO2lmKG48MHx8bj09PXQubGVuZ3RoLTEpcmV0dXJuIlx1ezFGNEM0fSI7dmFyIGk9dC5zbGljZShuKzEpO3JldHVybiBPZFtpXXx8Ilx1ezFGNEM0fSJ9ZnVuY3Rpb24gam4oZSl7aWYodHlwZW9mIGUhPSJudW1iZXIifHwhaXNGaW5pdGUoZSl8fGU8MClyZXR1cm4iIjtpZihlPDEwMjQpcmV0dXJuIGUrIiBCIjt2YXIgdD1lLzEwMjQ7aWYodDwxMDI0KXJldHVybih0Pj0xMD9NYXRoLnJvdW5kKHQpOnQudG9GaXhlZCgxKSkrIiBLQiI7dmFyIG49dC8xMDI0O2lmKG48MTAyNClyZXR1cm4obj49MTA/TWF0aC5yb3VuZChuKTpuLnRvRml4ZWQoMSkpKyIgTUIiO3ZhciBpPW4vMTAyNDtyZXR1cm4oaT49MTA/TWF0aC5yb3VuZChpKTppLnRvRml4ZWQoMSkpKyIgR0IifWZ1bmN0aW9uIEhkKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUucGFyc2UoZSk7cmV0dXJuIGlzTmFOKHQpPyIiOm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKCl9ZnVuY3Rpb24gYW8oKXtpZihyLmZpbGVFeHBsb3JlckN3ZClyZXR1cm4gci5maWxlRXhwbG9yZXJDd2Q7aWYoci5zZWxlY3RlZElkKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZlLmN3ZClyZXR1cm4gZS5jd2R9cmV0dXJuIGFuKCl9ZnVuY3Rpb24gTHQoZSl7ZT1lfHx7fTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3JlciIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItY3dkIik7aWYodCl7dmFyIGk9ZS5jd2R8fGFvKCk7aWYoIWkpe3QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTZDQTFcdTY3MDlcdTUzRUZcdTY2M0VcdTc5M0FcdTc2ODRcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L2Rpdj4nO3JldHVybn1yLmZpbGVFeHBsb3JlckN3ZD1pLHIuZmlsZUV4cGxvcmVyTG9hZGluZz0hMCxyLmFsbEZpbGVzPVtdLHIuZmlsZUV4cGxvcmVyVHJ1bmNhdGVkPSExLHIuZmlsZUV4cGxvcmVyVG90YWw9MCx0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciI+PGRpdiBjbGFzcz0idHJlZS1sb2FkaW5nIiBzdHlsZT0icGFkZGluZzoxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTowLjgxMjVyZW07Ij5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj4nLG4mJihuLnRhZ05hbWU9PT0iSU5QVVQiP2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1uJiYobi52YWx1ZT1pKTpuLnRleHRDb250ZW50PWksbi50aXRsZT1pKTt2YXIgYT0iL2FwaS9kaXJlY3Rvcnk/cT0iK2VuY29kZVVSSUNvbXBvbmVudChpKSsiJmdpdFN0YXR1cz10cnVlIjtmZXRjaChhLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtpZighdS5vayl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGRpcmVjdG9yeS4iKTtyZXR1cm4gdS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHUpe3IuZmlsZUV4cGxvcmVyTG9hZGluZz0hMTt2YXIgbyxzLGw7aWYoQXJyYXkuaXNBcnJheSh1KT8obz11LHM9ITEsbD11Lmxlbmd0aCk6KG89dSYmdS5pdGVtc3x8W10scz0hISh1JiZ1LnRydW5jYXRlZCksbD11JiZ1LnRvdGFsfHxvLmxlbmd0aCksIW98fG8ubGVuZ3RoPT09MCl7dC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1N0E3QVx1NzZFRVx1NUY1NVx1NjIxNlx1NjVFMFx1NkNENVx1OEJCRlx1OTVFRVx1MzAwMjwvZGl2Pic7cmV0dXJufXIuYWxsRmlsZXM9byxyLmZpbGVFeHBsb3JlclRydW5jYXRlZD1zLHIuZmlsZUV4cGxvcmVyVG90YWw9bCx1bygpfSkuY2F0Y2goZnVuY3Rpb24oKXtyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITEsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1NjhDMFx1NjdFNVx1OERFRlx1NUY4NFx1NjIxNlx1Njc0M1x1OTY1MFx1MzAwMjwvZGl2Pid9KX19ZnVuY3Rpb24gdW8oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3JlciIpO2lmKGUpe3ZhciB0PXIuZmlsZUV4cGxvcmVyQ3dkfHwiIjtpZih0KXt2YXIgbj1yLmZpbGVTZWFyY2hRdWVyeSxpPXIuYWxsRmlsZXN8fFtdLGE9aTtpZihuKXt2YXIgdT1uLnRvTG93ZXJDYXNlKCk7YT1pLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gbC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih1KSE9PS0xfSl9aWYoYS5sZW5ndGg9PT0wKXtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciBlbXB0eSI+Jysobj8iXHU2Q0ExXHU2NzA5XHU2MjdFXHU1MjMwXHU1MzM5XHU5MTREXHU3Njg0XHU2NTg3XHU0RUY2IjoiXHU3QTdBXHU3NkVFXHU1RjU1IikrIjwvZGl2PiI7cmV0dXJufXZhciBvPSIiO2lmKCFuJiZyLmZpbGVFeHBsb3JlclRydW5jYXRlZCl7dmFyIHM9aS5sZW5ndGg7bz0nPGRpdiBjbGFzcz0idHJlZS10cnVuY2F0ZWQiIHRpdGxlPSJcdTU0MEVcdTdBRUZcdTYzMDlcdTVCNTdcdTZCQ0RcdTVFOEZcdTY3MDBcdTU5MUFcdThGRDRcdTU2REUgJytzKycgXHU5ODc5Ij5cdTY2M0VcdTc5M0FcdTUyNEQgJytzKyIgXHU5ODc5IC8gXHU1MTcxICIrci5maWxlRXhwbG9yZXJUb3RhbCsiIFx1OTg3OTwvZGl2PiJ9ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtdHJlZSIgaWQ9ImZpbGUtdHJlZSIgZGF0YS1jd2Q9IicrcCh0KSsnIj4nK2EubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBvbyhsKX0pLmpvaW4oIiIpKyI8L2Rpdj4iK28sc28oKX19fWZ1bmN0aW9uIG9vKGUsdCl7dD10fHwwO3ZhciBuPXAoZS5uYW1lKSxpPWUudHlwZT09PSJkaXIiLGE9aW8oZSksdT1pPyJcdTI1QjgiOiIiLG89aT8iIjoiIGVtcHR5IixzPWUuZ2l0U3RhdHVzLGw9X2QocyksZD0iIjtyZXR1cm4haSYmdHlwZW9mIGUuc2l6ZT09Im51bWJlciImJihkPSc8c3BhbiBjbGFzcz0idHJlZS1tZXRhIiB0aXRsZT0iXHU1OTI3XHU1QzBGXHVGRjFBJytwKGpuKGUuc2l6ZSkpKyhlLm10aW1lP2AKXHU0RkVFXHU2NTM5XHU2NUY2XHU5NUY0XHVGRjFBYCtwKEhkKGUubXRpbWUpKToiIikrJyI+JytwKGpuKGUuc2l6ZSkpKyI8L3NwYW4+IiksJzxkaXYgY2xhc3M9InRyZWUtaXRlbSIgZGF0YS1wYXRoPSInK3AoZS5wYXRoKSsnIiBkYXRhLXR5cGU9IicrcChlLnR5cGUpKyciIGRhdGEtbmFtZT0iJytwKGUubmFtZSkrJyIgdGFiaW5kZXg9IjAiPjxzcGFuIGNsYXNzPSJ0cmVlLXRvZ2dsZScrbysnIj4nK3UrJzwvc3Bhbj48c3BhbiBjbGFzcz0idHJlZS1pY29uIj4nK2ErJzwvc3Bhbj48c3BhbiBjbGFzcz0idHJlZS1uYW1lIj4nK24rIjwvc3Bhbj4iK2QrKGw/JzxzcGFuIGNsYXNzPSJnaXQtc3RhdHVzLWJhZGdlICcrbC5jbGFzcysnIiB0aXRsZT0iJytsLnRpdGxlKyciPicrbC50ZXh0KyI8L3NwYW4+IjoiIikrIjwvZGl2PiJ9ZnVuY3Rpb24gX2QoZSl7cmV0dXJuIGU/ZS5zdGFnZWQ9PT0iYWRkZWQiP3t0ZXh0OiJBIixjbGFzczoiZ2l0LWFkZGVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU2NUIwXHU1ODlFXHVGRjA5In06ZS5zdGFnZWQ9PT0ibW9kaWZpZWQiP3t0ZXh0OiJNIixjbGFzczoiZ2l0LW1vZGlmaWVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU0RkVFXHU2NTM5XHVGRjA5In06ZS5zdGFnZWQ9PT0iZGVsZXRlZCI/e3RleHQ6IkQiLGNsYXNzOiJnaXQtZGVsZXRlZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NTIyMFx1OTY2NFx1RkYwOSJ9OmUuc3RhZ2VkPT09InJlbmFtZWQiP3t0ZXh0OiJSIixjbGFzczoiZ2l0LXJlbmFtZWQiLHRpdGxlOiJcdTVERjJcdTY2ODJcdTVCNThcdUZGMDhcdTkxQ0RcdTU0N0RcdTU0MERcdUZGMDkifTplLnVuc3RhZ2VkPT09Im1vZGlmaWVkIj97dGV4dDoiTSIsY2xhc3M6ImdpdC11bnN0YWdlZCIsdGl0bGU6Ilx1NjcyQVx1NjY4Mlx1NUI1OFx1RkYwOFx1NEZFRVx1NjUzOVx1RkYwOSJ9OmUudW5zdGFnZWQ9PT0iZGVsZXRlZCI/e3RleHQ6IkQiLGNsYXNzOiJnaXQtdW5zdGFnZWQtZGVsZXRlZCIsdGl0bGU6Ilx1NjcyQVx1NjY4Mlx1NUI1OFx1RkYwOFx1NTIyMFx1OTY2NFx1RkYwOSJ9OmUudW50cmFja2VkP3t0ZXh0OiI/IixjbGFzczoiZ2l0LXVudHJhY2tlZCIsdGl0bGU6Ilx1NjcyQVx1OERERlx1OEUyQSJ9Om51bGw6bnVsbH1mdW5jdGlvbiBzbygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXRyZWUiKTtpZihlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW1bZGF0YS10eXBlPSdkaXInXSIpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7TmQoaSl9KX0pLGUucXVlcnlTZWxlY3RvckFsbCgiLnRyZWUtaXRlbVtkYXRhLXR5cGU9J2ZpbGUnXSIpLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGE9ZnVuY3Rpb24oKXtpaShpLmRhdGFzZXQucGF0aCl9O2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGEpLGkuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGEpfSk7dmFyIHQ9bnVsbCxuPSExO2UucXVlcnlTZWxlY3RvckFsbCgiLnRyZWUtaXRlbSIpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGxvKGEuY2xpZW50WCxhLmNsaWVudFksaSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGEpe249ITEsdD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bj0hMDt2YXIgdT1hLnRvdWNoZXMmJmEudG91Y2hlc1swXTtsbyh1P3UuY2xpZW50WDowLHU/dS5jbGllbnRZOjAsaSl9LDUwMCl9LHtwYXNzaXZlOiEwfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZnVuY3Rpb24oKXt0JiYoY2xlYXJUaW1lb3V0KHQpLHQ9bnVsbCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsZnVuY3Rpb24oKXt0JiYoY2xlYXJUaW1lb3V0KHQpLHQ9bnVsbCl9KX0pfX1mdW5jdGlvbiBOZChlKXt2YXIgdD1lLmRhdGFzZXQucGF0aCxuPWUucXVlcnlTZWxlY3RvcigiLnRyZWUtdG9nZ2xlIiksaT1lLm5leHRFbGVtZW50U2libGluZztpZihpJiZpLmNsYXNzTGlzdC5jb250YWlucygidHJlZS1jaGlsZHJlbiIpKXt2YXIgYT1pLmNsYXNzTGlzdC5jb250YWlucygib3BlbiIpO2kuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIpLG4mJm4uY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsIWEpO3ZhciB1PWUucXVlcnlTZWxlY3RvcigiLnRyZWUtaWNvbiIpO3UmJih1LnRleHRDb250ZW50PWE/Ilx1ezFGNEMxfSI6Ilx1ezFGNEMyfSIpO3JldHVybn1uJiZuLmNsYXNzTGlzdC5hZGQoIm9wZW4iKTt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLWljb24iKTtvJiYoby50ZXh0Q29udGVudD0iXHV7MUY0QzJ9Iik7dmFyIHM9Ii9hcGkvZGlyZWN0b3J5P3E9IitlbmNvZGVVUklDb21wb25lbnQodCkrIiZnaXRTdGF0dXM9dHJ1ZSI7ZmV0Y2gocyx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwuanNvbigpfSkudGhlbihmdW5jdGlvbihsKXt2YXIgZDtBcnJheS5pc0FycmF5KGwpP2Q9bDpkPWwmJmwuaXRlbXN8fFtdO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NOYW1lPSJ0cmVlLWNoaWxkcmVuIG9wZW4iLCFkfHxkLmxlbmd0aD09PTA/Zi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InRyZWUtaXRlbSIgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpkZWZhdWx0OyI+PHNwYW4gY2xhc3M9InRyZWUtdG9nZ2xlIGVtcHR5Ij5cdTI1Qjg8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtbmFtZSI+XHVGRjA4XHU3QTdBXHU3NkVFXHU1RjU1XHVGRjA5PC9zcGFuPjwvZGl2Pic6Zi5pbm5lckhUTUw9ZC5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIG9vKGMpfSkuam9pbigiIiksZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShmLGUubmV4dFNpYmxpbmcpLHNvKCl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIGpkKCl7dmFyIGU9YW8oKTtpZihlKXt2YXIgdD1lLnJlcGxhY2UoL1wvKyQvLCIiKS5yZXBsYWNlKC9cL1teXC9dKyQvLCIiKTt0fHwodD0iLyIpLHQhPT1lJiZMdCh7Y3dkOnR9KX19ZnVuY3Rpb24gdmEoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKCF0KXJldHVybiExO3ZhciBuPXQudmFsdWV8fCIiLGk9biYmIW4uZW5kc1dpdGgoIiAiKSYmIW4uZW5kc1dpdGgoYApgKT8iICI6IiI7dC52YWx1ZT1uK2krZSx0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSk7dHJ5e3QuZm9jdXMoKSx0LnNldFNlbGVjdGlvblJhbmdlKHQudmFsdWUubGVuZ3RoLHQudmFsdWUubGVuZ3RoKX1jYXRjaHt9cmV0dXJuITB9ZnVuY3Rpb24gcmkoZSl7aWYobmF2aWdhdG9yLmNsaXBib2FyZCYmbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpcmV0dXJuIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHQoKX0pO3JldHVybiBQcm9taXNlLnJlc29sdmUodCgpKTtmdW5jdGlvbiB0KCl7dHJ5e3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7bi52YWx1ZT1lLG4uc3R5bGUucG9zaXRpb249ImZpeGVkIixuLnN0eWxlLmxlZnQ9Ii05OTk5cHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksbi5zZWxlY3QoKTt2YXIgaT1kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpO3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG4pLGl9Y2F0Y2h7cmV0dXJuITF9fX1mdW5jdGlvbiBFdChlKXtpZih0eXBlb2Ygd2luZG93LnNob3dUb2FzdD09ImZ1bmN0aW9uIil7d2luZG93LnNob3dUb2FzdChlKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc05hbWU9IndhbmQtbWluaS10b2FzdCIsdC50ZXh0Q29udGVudD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksc2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmFkZCgic2hvdyIpfSwxMCksc2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnJlbW92ZSgpfSwyMjApfSwxNjAwKX1mdW5jdGlvbiBSbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWNvbnRleHQtbWVudSIpO2UmJmUucmVtb3ZlKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLFJuLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLFJuLCEwKX1mdW5jdGlvbiBsbyhlLHQsbil7Um4oKTt2YXIgaT1uLmRhdGFzZXQucGF0aHx8IiIsYT1uLmRhdGFzZXQudHlwZXx8ImZpbGUiLHU9ci5maWxlRXhwbG9yZXJDd2R8fCIiLG89aTt1JiZpLmluZGV4T2YodSk9PT0wJiYobz1pLnNsaWNlKHUubGVuZ3RoKS5yZXBsYWNlKC9eXC8rLywiIil8fCIuIik7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5pZD0iZmlsZS1jb250ZXh0LW1lbnUiLHMuY2xhc3NOYW1lPSJmaWxlLWNvbnRleHQtbWVudSI7dmFyIGw9W107YT09PSJmaWxlIj9sLnB1c2goe2xhYmVsOiJcdTYyNTNcdTVGMDBcdTk4ODRcdTg5QzgiLGljb246Ilx1ezFGNDQxfSIscnVuOmZ1bmN0aW9uKCl7aWkoaSl9fSk6bC5wdXNoKHtsYWJlbDoiXHU4RkRCXHU1MTY1XHU2QjY0XHU3NkVFXHU1RjU1IixpY29uOiJcdXsxRjRDMn0iLHJ1bjpmdW5jdGlvbigpe0x0KHtjd2Q6aX0pfX0pLGwucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NUI4Q1x1NjU3NFx1OERFRlx1NUY4NCIsaWNvbjoiXHV7MUY0Q0J9IixydW46ZnVuY3Rpb24oKXtyaShpKS50aGVuKGZ1bmN0aW9uKCl7RXQoIlx1NURGMlx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIpfSl9fSksbyYmbyE9PWkmJmwucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NzZGOFx1NUJGOVx1OERFRlx1NUY4NCIsaWNvbjoiXHV7MUY0Q0J9IixydW46ZnVuY3Rpb24oKXtyaShvKS50aGVuKGZ1bmN0aW9uKCl7RXQoIlx1NURGMlx1NTkwRFx1NTIzNlx1NzZGOFx1NUJGOVx1OERFRlx1NUY4NCIpfSl9fSksbC5wdXNoKHtsYWJlbDoiXHU3Qzk4XHU4RDM0XHU4REVGXHU1Rjg0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2IixpY29uOiJcdTI3MEZcdUZFMEYiLHJ1bjpmdW5jdGlvbigpe3ZhKGkpJiZFdCgiXHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9fSksYT09PSJmaWxlIiYmbC5wdXNoKHtsYWJlbDoiXHU0RTBCXHU4RjdEXHU2NTg3XHU0RUY2IixpY29uOiJcdTJCMDciLHJ1bjpmdW5jdGlvbigpe3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtnLmhyZWY9Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGkpLGcucmVsPSJub29wZW5lciIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChnKSxnLmNsaWNrKCksZy5yZW1vdmUoKX19KSxzLmlubmVySFRNTD1sLm1hcChmdW5jdGlvbihnLG0pe3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtY29udGV4dC1tZW51LWl0ZW0iIGRhdGEtaWR4PSInK20rJyI+PHNwYW4gY2xhc3M9ImN0eC1pY29uIj4nK2cuaWNvbisnPC9zcGFuPjxzcGFuIGNsYXNzPSJjdHgtbGFiZWwiPicrcChnLmxhYmVsKSsiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpO3ZhciBkPXdpbmRvdy5pbm5lcldpZHRoLGY9d2luZG93LmlubmVySGVpZ2h0LGM9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PU1hdGgubWluKGUsZC1jLndpZHRoLTgpLGg9TWF0aC5taW4odCxmLWMuaGVpZ2h0LTgpO3Muc3R5bGUubGVmdD1NYXRoLm1heCg4LHYpKyJweCIscy5zdHlsZS50b3A9TWF0aC5tYXgoOCxoKSsicHgiLHMucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtY29udGV4dC1tZW51LWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2cuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG0pe20uc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHk9cGFyc2VJbnQoZy5kYXRhc2V0LmlkeCwxMCk7Um4oKSxsW3ldJiZsW3ldLnJ1bigpfSl9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFJuLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLFJuLCEwKX0sMCl9dmFyIF89bnVsbDtmdW5jdGlvbiBpaShlKXt2YXIgdD1fJiZfLm92ZXJsYXk7aWYodCl7Xy5wYXRoPWUsXy5lZGl0aW5nPSExLF8uZGlydHk9ITE7dmFyIG89dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRpdGxlIik7byYmKG8uaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWljb24iPlx1ezFGNEM0fTwvc3Bhbj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbmFtZS1ibG9jayI+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtcm93Ij48c3BhbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWZpbGVuYW1lIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L3NwYW4+PC9kaXY+JytndCgiIiwiZmlsZS1wcmV2aWV3LXBhdGgiKSsiPC9kaXY+Iik7dmFyIHM9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXIiKTtzJiYocy5pbm5lckhUTUw9IiIpO3ZhciBsPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1wYXRoIik7SHUobCwiIik7dmFyIGQ9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtkJiYoZC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTIwMjY8L2Rpdj4nKX1lbHNle3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1vdmVybGF5Iix0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW1vZGFsIiB0YWJpbmRleD0iLTEiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1oZWFkZXIiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy10aXRsZSI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1pY29uIj5cdXsxRjRDNH08L3NwYW4+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2siPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLXJvdyI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1maWxlbmFtZSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9zcGFuPjwvZGl2PicrZ3QoIiIsImZpbGUtcHJldmlldy1wYXRoIikrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy10b29sYmFyIj48L2Rpdj48YnV0dG9uIGNsYXNzPSJmaWxlLXByZXZpZXctY2xvc2UiIHRpdGxlPSJcdTUxNzNcdTk1RUQgKEVzYykiIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+JytNZSgieCIse3NpemU6MTh9KSsnPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWJvZHkiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTIwMjY8L2Rpdj48L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWNsb3NlIiksaT1mdW5jdGlvbigpe2lmKF8mJl8uZGlydHkmJnR5cGVvZiBvbj09ImZ1bmN0aW9uIil7b24oe3R5cGU6Indhcm5pbmciLHRpdGxlOiJcdTY1M0VcdTVGMDNcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTRGRUVcdTY1MzlcdUZGMUYiLG1lc3NhZ2U6Ilx1NUY1M1x1NTI0RFx1NjU4N1x1NEVGNlx1NjcwOVx1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NjUzOVx1NTJBOFx1RkYwQ1x1NTE3M1x1OTVFRFx1NTQwRVx1NEYxQVx1NEUyMlx1NTkzMVx1MzAwMiIsYnV0dG9uczpbe2xhYmVsOiJcdTdFRTdcdTdFRURcdTdGMTZcdThGOTEiLHZhbHVlOiExLGtpbmQ6Imdob3N0In0se2xhYmVsOiJcdTY1M0VcdTVGMDNcdTRGRUVcdTY1MzkiLHZhbHVlOiEwLGtpbmQ6ImRhbmdlciIsYXV0b2ZvY3VzOiEwfV0sY2FuY2VsVmFsdWU6ITF9KS50aGVuKGZ1bmN0aW9uKGMpe2MmJmEoKX0pO3JldHVybn1hKCl9LGE9ZnVuY3Rpb24oKXt0LnJlbW92ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUpLF89bnVsbH07bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaSksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYyl7Yy50YXJnZXQ9PT10JiZpKCl9KTt2YXIgdT1mdW5jdGlvbihjKXtpZigoYy5rZXk9PT0icyJ8fGMua2V5PT09IlMiKSYmKGMuY3RybEtleXx8Yy5tZXRhS2V5KSYmXyYmXy5lZGl0aW5nKXtjLnByZXZlbnREZWZhdWx0KCksZ28oKTtyZXR1cm59aWYoYy5rZXk9PT0iRXNjYXBlIil7aWYoXyYmXy5lZGl0aW5nKXtjLnByZXZlbnREZWZhdWx0KCksbW8oKTtyZXR1cm59aSgpO3JldHVybn1fJiYoYy50YXJnZXQmJihjLnRhcmdldC50YWdOYW1lPT09IklOUFVUInx8Yy50YXJnZXQudGFnTmFtZT09PSJURVhUQVJFQSIpfHxfLmVkaXRpbmd8fChjLmtleT09PSJBcnJvd0xlZnQiPyhjLnByZXZlbnREZWZhdWx0KCksY28oLTEpKTpjLmtleT09PSJBcnJvd1JpZ2h0IiYmKGMucHJldmVudERlZmF1bHQoKSxjbygxKSkpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdSksXz17b3ZlcmxheTp0LGNsb3NlOmkscGF0aDplLGRhdGE6bnVsbCxlZGl0aW5nOiExLGRpcnR5OiExfX12YXIgZj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctcGF0aCIpO0h1KGYsZSksZmV0Y2goIi9hcGkvZmlsZS1wcmV2aWV3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGMpe3JldHVybiBjLmpzb24oKS50aGVuKGZ1bmN0aW9uKHYpe3JldHVybntvazpjLm9rLHN0YXR1czpjLnN0YXR1cyxkYXRhOnZ9fSl9KS50aGVuKGZ1bmN0aW9uKGMpe3ZhciB2PXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7aWYoIWMub2t8fGMuZGF0YSYmYy5kYXRhLmVycm9yKXt2YXIgaD1jLmRhdGEmJmMuZGF0YS5lcnJvcnx8Ilx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSI7Yy5zdGF0dXM9PT00MTMmJmMuZGF0YSYmYy5kYXRhLnNpemUmJihoKz0iXHVGRjA4XHU2NTg3XHU0RUY2XHU1OTI3XHU1QzBGXHVGRjFBIitqbihjLmRhdGEuc2l6ZSkrIlx1RkYwOSIpLHYuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj4nK3AoaCkrIjwvc3Bhbj48L2Rpdj4iLGMuc3RhdHVzPT09NDEzJiZtYSh0LHtraW5kOiJiaW5hcnkiLHBhdGg6ZSxuYW1lOmUuc3BsaXQoIi8iKS5wb3AoKXx8ZSxleHQ6IiIsc2l6ZTpjLmRhdGEmJmMuZGF0YS5zaXplfHwwfSk7cmV0dXJufV8uZGF0YT1jLmRhdGEsZm8odCxjLmRhdGEpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYz10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2MuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTU5MzFcdThEMjU8L3NwYW4+PC9kaXY+J30pfWZ1bmN0aW9uIGNvKGUpe2lmKF8pe3ZhciB0PShyLmFsbEZpbGVzfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGU9PT0iZmlsZSJ9KTtpZih0Lmxlbmd0aCl7Zm9yKHZhciBuPV8ucGF0aCxpPS0xLGE9MDthPHQubGVuZ3RoO2ErKylpZih0W2FdLnBhdGg9PT1uKXtpPWE7YnJlYWt9aWYoIShpPDApKXt2YXIgdT0oaStlK3QubGVuZ3RoKSV0Lmxlbmd0aCxvPXRbdV0ucGF0aDtvJiZvIT09biYmaWkobyl9fX19ZnVuY3Rpb24gZm8oZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctZmlsZW5hbWUiKTtuJiYobi50ZXh0Q29udGVudD10Lm5hbWUpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1pY29uIik7aSYmKGkudGV4dENvbnRlbnQ9aW8oe25hbWU6dC5uYW1lLHR5cGU6ImZpbGUifSkpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpLHU9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWxhbmciKTt1JiZ1LnJlbW92ZSgpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtvLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LWxhbmciO3ZhciBzPXtpbWFnZToiXHU1NkZFXHU3MjQ3IixwZGY6IlBERiIsdmlkZW86Ilx1ODlDNlx1OTg5MSIsYXVkaW86Ilx1OTdGM1x1OTg5MSIsYmluYXJ5OiJcdTRFOENcdThGREJcdTUyMzYifTt0LmtpbmQ9PT0idGV4dCI/by50ZXh0Q29udGVudD10Lmxhbmd8fCh0LmV4dHx8IiIpLnJlcGxhY2UoIi4iLCIiKXx8InRleHQiOm8udGV4dENvbnRlbnQ9c1t0LmtpbmRdfHwodC5leHR8fCIiKS5yZXBsYWNlKCIuIiwiIil8fHQua2luZCxhJiZhLmFwcGVuZENoaWxkKG8pLG1hKGUsdCk7dmFyIGw9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtsLmlubmVySFRNTD0iIixsLmNsYXNzTGlzdC5yZW1vdmUoImtpbmQtdGV4dCIsImtpbmQtaW1hZ2UiLCJraW5kLXBkZiIsImtpbmQtdmlkZW8iLCJraW5kLWF1ZGlvIiwia2luZC1iaW5hcnkiKSxsLmNsYXNzTGlzdC5hZGQoImtpbmQtIisodC5raW5kfHwidGV4dCIpKSx0LmtpbmQ9PT0iaW1hZ2UiP1dkKGwsdCk6dC5raW5kPT09InBkZiI/emQobCx0KTp0LmtpbmQ9PT0idmlkZW8iP1ZkKGwsdCk6dC5raW5kPT09ImF1ZGlvIj9VZChsLHQpOnQua2luZD09PSJiaW5hcnkiP0tkKGwsdCk6dC5sYW5nPT09Im1hcmtkb3duInx8L1wuKG1kfG1hcmtkb3dufG1keCkkL2kudGVzdCh0Lm5hbWV8fCIiKT9sLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+JytRZCh0LmNvbnRlbnR8fCIiKSsiPC9kaXY+IjpSZChsLHQpfWZ1bmN0aW9uIFJkKGUsdCl7dmFyIG49eW8odC5jb250ZW50fHwiIix0LmxhbmcpLGk9bi5zcGxpdChgCmApLGE9aS5tYXAoZnVuY3Rpb24odSxvKXtyZXR1cm4gbysxfSk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy13cmFwcGVyIj48ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctbGluZXMiPicrYS5qb2luKGAKYCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy1jb250ZW50Ij48cHJlPicraS5qb2luKGAKYCkrIjwvcHJlPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gV2QoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImltYWdlLXByZXZpZXctd3JhcHBlciI+PGltZyBjbGFzcz0iaW1hZ2UtcHJldmlldy1pbWciIHNyYz0iJytuKyciIGFsdD0iJytwKHQubmFtZSkrJyIgLz48L2Rpdj4nO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLXByZXZpZXctaW1nIik7aWYoaSl7dmFyIGE9ITE7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthPSFhLGkuY2xhc3NMaXN0LnRvZ2dsZSgiem9vbWVkIixhKX0pfX1mdW5jdGlvbiB6ZChlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGlmcmFtZSBjbGFzcz0icGRmLXByZXZpZXctZnJhbWUiIHNyYz0iJytuKyciIHRpdGxlPSInK3AodC5uYW1lKSsnIj48L2lmcmFtZT4nfWZ1bmN0aW9uIFZkKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIiPjx2aWRlbyBjbGFzcz0ibWVkaWEtcHJldmlldy12aWRlbyIgY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHNyYz0iJytuKyciPlx1NjBBOFx1NzY4NFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUwRFx1NjUyRlx1NjMwMSB2aWRlbyBcdTY4MDdcdTdCN0VcdTMwMDI8L3ZpZGVvPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbWV0YSI+JytwKGpuKHQuc2l6ZSkpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIFVkKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIgYXVkaW8iPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctaWNvbiI+XHV7MUYzQjV9PC9kaXY+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1uYW1lIj4nK3AodC5uYW1lKSsnPC9kaXY+PGF1ZGlvIGNsYXNzPSJtZWRpYS1wcmV2aWV3LWF1ZGlvIiBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3JjPSInK24rJyI+XHU2MEE4XHU3Njg0XHU2RDRGXHU4OUM4XHU1NjY4XHU0RTBEXHU2NTJGXHU2MzAxIGF1ZGlvIFx1NjgwN1x1N0I3RVx1MzAwMjwvYXVkaW8+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1tZXRhIj4nK3Aoam4odC5zaXplKSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gS2QoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9kb3dubG9hZD0xJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctY2FyZCI+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctaWNvbiI+XHV7MUY0RTZ9PC9kaXY+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctbmFtZSI+JytwKHQubmFtZSkrJzwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LW1ldGEiPjxzcGFuPicrcCgodC5leHR8fCIiKS5yZXBsYWNlKC9eXC4vLCIiKXx8Ilx1NjcyQVx1NzdFNVx1NjgzQ1x1NUYwRiIpKyI8L3NwYW4+PHNwYW4+XHhCNzwvc3Bhbj48c3Bhbj4iK3Aoam4odC5zaXplKSkrIjwvc3Bhbj48L2Rpdj4iK2d0KHQucGF0aCwiYmluYXJ5LXByZXZpZXctcGF0aCIpKyc8ZGl2IGNsYXNzPSJiaW5hcnktcHJldmlldy1hY3Rpb25zIj48YSBjbGFzcz0iYmluYXJ5LXByZXZpZXctYnRuIiBocmVmPSInK24rJyIgZG93bmxvYWQ9IicrcCh0Lm5hbWUpKyciPlx1NEUwQlx1OEY3RFx1NjU4N1x1NEVGNjwvYT48YnV0dG9uIGNsYXNzPSJiaW5hcnktcHJldmlldy1idG4iIHR5cGU9ImJ1dHRvbiIgZGF0YS1hY3Rpb249InZpZXctY2F0Ij5cdTU3MjhcdTdFQzhcdTdBRUZcdTRFMkRcdTY3RTVcdTc3MEI8L2J1dHRvbj48L2Rpdj48L2Rpdj4nLGp0KGUpO3ZhciBpPWUucXVlcnlTZWxlY3RvcignW2RhdGEtYWN0aW9uPSJ2aWV3LWNhdCJdJyk7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YSgnY2F0IC0tICInK3QucGF0aCsnIicpJiZFdCgiXHU1NDdEXHU0RUU0XHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9KX1mdW5jdGlvbiBtYShlLHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7aWYobil7aWYobi5pbm5lckhUTUw9IiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksXyYmXy5lZGl0aW5nKXtuLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKSxmcihlLHQpO3JldHVybn12YXIgaT1bXTt0LmtpbmQ9PT0idGV4dCImJmkucHVzaCh7bGFiZWw6Ilx1N0YxNlx1OEY5MVx1NjU4N1x1NEVGNiAoRSkiLGljb246TWUoImVkaXQiKSxwcmltYXJ5OiEwLGFjdGlvbjpmdW5jdGlvbigpe0pkKCl9fSksaS5wdXNoKHtsYWJlbDoiXHU1OTBEXHU1MjM2XHU4REVGXHU1Rjg0IixpY29uOk1lKCJjbGlwYm9hcmQiKSxhY3Rpb246ZnVuY3Rpb24oKXtyaSh0LnBhdGgpLnRoZW4oZnVuY3Rpb24oKXtFdCgiXHU1REYyXHU1OTBEXHU1MjM2XHU4REVGXHU1Rjg0Iil9KX19KSxpLnB1c2goe2xhYmVsOiJcdTdDOThcdThEMzRcdTUyMzBcdThGOTNcdTUxNjVcdTY4NDYiLGljb246TWUoInNlbmQtdG8taW5wdXQiKSxhY3Rpb246ZnVuY3Rpb24oKXt2YSh0LnBhdGgpJiZFdCgiXHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9fSksaS5wdXNoKHtsYWJlbDoiXHU0RTBCXHU4RjdEIixpY29uOk1lKCJkb3dubG9hZCIpLGFjdGlvbjpmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTthLmhyZWY9Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCksYS5kb3dubG9hZD10Lm5hbWV8fCIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksYS5jbGljaygpLGEucmVtb3ZlKCl9fSksdC5raW5kPT09InRleHQiJiYoaS5wdXNoKHtsYWJlbDoiXHU1OTBEXHU1MjM2XHU1MTY4XHU5MEU4XHU1MTg1XHU1QkI5IixpY29uOk1lKCJjb3B5IiksYWN0aW9uOmZ1bmN0aW9uKCl7cmkodC5jb250ZW50fHwiIikudGhlbihmdW5jdGlvbigpe0V0KCJcdTVERjJcdTU5MERcdTUyMzZcdTUxODVcdTVCQjkiKX0pfX0pLGkucHVzaCh7bGFiZWw6Ilx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjM2Mlx1ODg0QyIsaWNvbjpNZSgid3JhcC10ZXh0IiksdG9nZ2xlQ2xhc3M6InRvb2xiYXItYWN0aXZlIixnZXRJbml0aWFsOmZ1bmN0aW9uKCl7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIik7cmV0dXJuIGEmJmEuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3cmFwIil9LGFjdGlvbjpmdW5jdGlvbihhKXt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctY29udGVudCBwcmUiKTt1JiYodS5jbGFzc0xpc3QudG9nZ2xlKCJ3cmFwIiksYS5jbGFzc0xpc3QudG9nZ2xlKCJ0b29sYmFyLWFjdGl2ZSIsdS5jbGFzc0xpc3QuY29udGFpbnMoIndyYXAiKSkpfX0pLGkucHVzaCh7a2luZDoiZ3JvdXAiLGNsYXNzTmFtZToidG9vbGJhci1ncm91cC1mb250c2l6ZSIsY2hpbGRyZW46W3tsYWJlbDoiXHU3RjI5XHU1QzBGXHU1QjU3XHU1M0Y3IixpY29uOk1lKCJtaW51cyIpLGFjdGlvbjpmdW5jdGlvbigpe2hvKGUsLTEpfX0se2tpbmQ6ImxhYmVsIixpY29uOk1lKCJ0eXBlIiksbGFiZWw6Ilx1NUI1N1x1NTNGNyJ9LHtsYWJlbDoiXHU2NTNFXHU1OTI3XHU1QjU3XHU1M0Y3IixpY29uOk1lKCJwbHVzIiksYWN0aW9uOmZ1bmN0aW9uKCl7aG8oZSwxKX19XX0pKSxwbyhuLGksZSl9fWZ1bmN0aW9uIHBvKGUsdCxuKXt0LmZvckVhY2goZnVuY3Rpb24oaSl7aWYoaS5raW5kPT09Imdyb3VwIil7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9ImZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwIisoaS5jbGFzc05hbWU/IiAiK2kuY2xhc3NOYW1lOiIiKSxpLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odSl7aWYodS5raW5kPT09ImxhYmVsIil7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO28uY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1ncm91cGxhYmVsIixvLnRpdGxlPXUubGFiZWx8fCIiLG8uaW5uZXJIVE1MPXUuaWNvbnx8IiIsYS5hcHBlbmRDaGlsZChvKTtyZXR1cm59YS5hcHBlbmRDaGlsZCh2byh1KSl9KSxlLmFwcGVuZENoaWxkKGEpO3JldHVybn1lLmFwcGVuZENoaWxkKHZvKGkpKX0pfWZ1bmN0aW9uIHZvKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3JldHVybiB0LnR5cGU9ImJ1dHRvbiIsdC5jbGFzc05hbWU9ImZpbGUtcHJldmlldy10b29sYmFyLWJ0biIsZS5wcmltYXJ5JiZ0LmNsYXNzTGlzdC5hZGQoInByaW1hcnkiKSxlLmRhbmdlciYmdC5jbGFzc0xpc3QuYWRkKCJkYW5nZXIiKSx0LnRpdGxlPWUubGFiZWwsdC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUubGFiZWwpLHQuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0idG9vbGJhci1pY29uIj4nKyhlLmljb258fCIiKSsiPC9zcGFuPiIrKGUudGV4dD8nPHNwYW4gY2xhc3M9InRvb2xiYXItdGV4dCI+JytwKGUudGV4dCkrIjwvc3Bhbj4iOiIiKSxlLmdldEluaXRpYWwmJmUuZ2V0SW5pdGlhbCgpJiZ0LmNsYXNzTGlzdC5hZGQoInRvb2xiYXItYWN0aXZlIiksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obil7bi5zdG9wUHJvcGFnYXRpb24oKSx0eXBlb2YgZS5hY3Rpb249PSJmdW5jdGlvbiImJmUuYWN0aW9uKHQpfSksdH1mdW5jdGlvbiBmcihlLHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7aWYobil7bi5pbm5lckhUTUw9IiI7dmFyIGk9XyYmXy5zYXZpbmcsYT1be2xhYmVsOiJcdTRGRERcdTVCNTggKEN0cmwrUykiLGljb246TWUoInNhdmUiKSx0ZXh0OiJcdTRGRERcdTVCNTgiLHByaW1hcnk6ITAsYWN0aW9uOmZ1bmN0aW9uKCl7Z28oKX19LHtsYWJlbDoiXHU2NEE0XHU5NTAwXHU2NTM5XHU1MkE4IixpY29uOk1lKCJyb3RhdGUtY2N3IiksYWN0aW9uOmZ1bmN0aW9uKCl7WWQoKX19LHtsYWJlbDoiXHU5MDAwXHU1MUZBXHU3RjE2XHU4RjkxIChFc2MpIixpY29uOk1lKCJ4IiksYWN0aW9uOmZ1bmN0aW9uKCl7bW8oKX19XTtwbyhuLGEsZSksaSYmbi5xdWVyeVNlbGVjdG9yQWxsKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIikuZm9yRWFjaChmdW5jdGlvbih1KXt1LmRpc2FibGVkPSEwfSl9fWZ1bmN0aW9uIEpkKCl7aWYoISghX3x8IV8uZGF0YSkpe3ZhciBlPV8uZGF0YTtpZihlLmtpbmQ9PT0idGV4dCIpe18uZWRpdGluZz0hMCxfLmRpcnR5PSExLF8ub3JpZ2luYWxDb250ZW50PWUuY29udGVudHx8IiI7dmFyIHQ9Xy5vdmVybGF5LG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtpZihuKXtuLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKSxuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iY29kZS1lZGl0b3Itd3JhcHBlciI+PHRleHRhcmVhIGNsYXNzPSJjb2RlLWVkaXRvci10ZXh0YXJlYSIgc3BlbGxjaGVjaz0iZmFsc2UiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiB3cmFwPSJvZmYiPjwvdGV4dGFyZWE+PC9kaXY+Jzt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO2kmJihpLnZhbHVlPWUuY29udGVudHx8IiIsaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXt2YXIgYT1pLnZhbHVlIT09KF8ub3JpZ2luYWxDb250ZW50fHwiIik7YSE9PV8uZGlydHkmJihfLmRpcnR5PWEscHIoKSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGEpe2lmKGEua2V5PT09IlRhYiIpe2EucHJldmVudERlZmF1bHQoKTt2YXIgdT1pLnNlbGVjdGlvblN0YXJ0LG89aS5zZWxlY3Rpb25FbmQscz0iICAiO2kudmFsdWU9aS52YWx1ZS5zbGljZSgwLHUpK3MraS52YWx1ZS5zbGljZShvKSxpLnNlbGVjdGlvblN0YXJ0PWkuc2VsZWN0aW9uRW5kPXUrcy5sZW5ndGgsaS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiKSl9fSksc2V0VGltZW91dChmdW5jdGlvbigpe2kuZm9jdXMoKSxpLnNldFNlbGVjdGlvblJhbmdlKDAsMCksaS5zY3JvbGxUb3A9MH0sMzApKSxtYSh0LGUpLHByKCl9fX19ZnVuY3Rpb24gbW8oKXtpZighKCFffHwhXy5lZGl0aW5nKSl7dmFyIGU9ZnVuY3Rpb24oKXtfLmVkaXRpbmc9ITEsXy5kaXJ0eT0hMTt2YXIgdD1fLm92ZXJsYXksbj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO24mJm4uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLGZvKHQsXy5kYXRhKSxwcigpfTtpZihfLmRpcnR5JiZ0eXBlb2Ygb249PSJmdW5jdGlvbiIpe29uKHt0eXBlOiJ3YXJuaW5nIix0aXRsZToiXHU2NTNFXHU1RjAzXHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5XHVGRjFGIixtZXNzYWdlOiJcdTVGNTNcdTUyNERcdTY1ODdcdTRFRjZcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTY1MzlcdTUyQThcdUZGMENcdTkwMDBcdTUxRkFcdTdGMTZcdThGOTFcdTU0MEVcdTRGMUFcdTRFMjJcdTU5MzFcdTMwMDIiLGJ1dHRvbnM6W3tsYWJlbDoiXHU3RUU3XHU3RUVEXHU3RjE2XHU4RjkxIix2YWx1ZTohMSxraW5kOiJnaG9zdCJ9LHtsYWJlbDoiXHU2NTNFXHU1RjAzXHU0RkVFXHU2NTM5Iix2YWx1ZTohMCxraW5kOiJkYW5nZXIiLGF1dG9mb2N1czohMH1dLGNhbmNlbFZhbHVlOiExfSkudGhlbihmdW5jdGlvbih0KXt0JiZlKCl9KTtyZXR1cm59ZSgpfX1mdW5jdGlvbiBZZCgpe2lmKCEoIV98fCFfLmVkaXRpbmcpKXt2YXIgZT1fLm92ZXJsYXksdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO3QmJih0LnZhbHVlPV8ub3JpZ2luYWxDb250ZW50fHwiIixfLmRpcnR5PSExLHByKCksdC5mb2N1cygpKX19ZnVuY3Rpb24gZ28oKXtpZighKCFffHwhXy5lZGl0aW5nKSYmIV8uc2F2aW5nKXt2YXIgZT1fLm92ZXJsYXksdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO2lmKHQpe3ZhciBuPXQudmFsdWU7aWYobj09PShfLm9yaWdpbmFsQ29udGVudHx8IiIpKXtFdCgiXHU2Q0ExXHU2NzA5XHU2NTM5XHU1MkE4Iik7cmV0dXJufV8uc2F2aW5nPSEwLGZyKGUsXy5kYXRhKSxmZXRjaCgiL2FwaS9maWxlLXdyaXRlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7cGF0aDpfLnBhdGgsY29udGVudDpufSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybntvazppLm9rLHN0YXR1czppLnN0YXR1cyxkYXRhOmF9fSl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKF8uc2F2aW5nPSExLCFpLm9rfHxpLmRhdGEmJmkuZGF0YS5lcnJvcil7dmFyIGE9aS5kYXRhJiZpLmRhdGEuZXJyb3J8fCJcdTRGRERcdTVCNThcdTU5MzFcdThEMjUgKCIraS5zdGF0dXMrIikiO0V0KGEpLGZyKGUsXy5kYXRhKTtyZXR1cm59aWYoXy5kYXRhLmNvbnRlbnQ9bixfLmRhdGEuc2l6ZT1pLmRhdGEmJmkuZGF0YS5zaXplfHxuLmxlbmd0aCxfLm9yaWdpbmFsQ29udGVudD1uLF8uZGlydHk9ITEsRXQoIlx1NURGMlx1NEZERFx1NUI1OCIpLHByKCksZnIoZSxfLmRhdGEpLHR5cGVvZiBMdD09ImZ1bmN0aW9uIil0cnl7THQoKX1jYXRjaHt9fSkuY2F0Y2goZnVuY3Rpb24oaSl7Xy5zYXZpbmc9ITEsRXQoIlx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNVx1RkYxQSIrKGkmJmkubWVzc2FnZT9pLm1lc3NhZ2U6Ilx1N0Y1MVx1N0VEQ1x1OTUxOVx1OEJFRiIpKSxmcihlLF8uZGF0YSl9KX19fWZ1bmN0aW9uIHByKCl7aWYoXyl7dmFyIGU9Xy5vdmVybGF5O2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1uYW1lLXJvdyIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1kaXJ0eSIpO2lmKF8uZGlydHkpe2lmKCFuKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aS5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1kaXJ0eSIsaS50aXRsZT0iXHU2NzA5XHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5IixpLnRleHRDb250ZW50PSJcdTI1Q0YgXHU2NzJBXHU0RkREXHU1QjU4Iix0LmFwcGVuZENoaWxkKGkpfX1lbHNlIG4mJm4ucmVtb3ZlKCl9fX19ZnVuY3Rpb24gaG8oZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctY29udGVudCBwcmUiKSxpPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1saW5lcyIpO2lmKG4pe3ZhciBhPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShuKS5mb250U2l6ZSl8fDEzLHU9TWF0aC5tYXgoMTAsTWF0aC5taW4oMjIsYSt0KSk7bi5zdHlsZS5mb250U2l6ZT11KyJweCIsaSYmKGkuc3R5bGUuZm9udFNpemU9dSsicHgiKX19ZnVuY3Rpb24geW8oZSx0KXt2YXIgbj1lLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKSxpPUdkKCk7aWYoIWkpcmV0dXJuIG47dmFyIGE9W107Zm9yKHZhciB1IGluIGkpe3ZhciBvPWlbdV07byYmby5wYXR0ZXJuJiZhLnB1c2goe3BhdHRlcm46by5wYXR0ZXJuLGNsczpvLmNscyxwcmlvcml0eTpvLnByaW9yaXR5fHw1fSl9YS5zb3J0KGZ1bmN0aW9uKGQsZil7cmV0dXJuIGYucHJpb3JpdHktZC5wcmlvcml0eX0pO3ZhciBzPWEubWFwKGZ1bmN0aW9uKGQpe3JldHVybiIoIitkLnBhdHRlcm4uc291cmNlKyIpIn0pLGw9bmV3IFJlZ0V4cChzLmpvaW4oInwiKSwiZ20iKTtyZXR1cm4gbi5yZXBsYWNlKGwsZnVuY3Rpb24oZCl7Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspe3ZhciBjPWFbZl0sdj1uZXcgUmVnRXhwKCJeIitjLnBhdHRlcm4uc291cmNlKyIkIiwiZ20iKTtpZih2LnRlc3QoZCkpcmV0dXJuJzxzcGFuIGNsYXNzPSInK2MuY2xzKyciPicrZCsiPC9zcGFuPiJ9cmV0dXJuIGR9KX1mdW5jdGlvbiBHZCgpe3JldHVybntjb21tZW50OntwYXR0ZXJuOi9cL1wvLip8I1teXG5dKi95LGNsczoic3ludGF4LWNvbW1lbnQiLHByaW9yaXR5OjF9LHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXC4pKiJ8Jyg/OlteJ1xcXXxcXC4pKid8YCg/OlteYFxcXXxcXC4pKmAveSxjbHM6InN5bnRheC1zdHJpbmciLHByaW9yaXR5OjJ9LGtleXdvcmQ6e3BhdHRlcm46L1xiKD86YXN5bmN8YXdhaXR8YnJlYWt8Y2FzZXxjYXRjaHxjbGFzc3xjb25zdHxjb250aW51ZXxkZWJ1Z2dlcnxkZWNsYXJlfGRlZmF1bHR8ZGVsZXRlfGRvfGVsc2V8ZW51bXxleHBvcnR8ZXh0ZW5kc3xmaW5hbGx5fGZvcnxmcm9tfGZ1bmN0aW9ufGdldHxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbnxpbnN0YW5jZW9mfGludGVyZmFjZXxsZXR8bW9kdWxlfG5hbWVzcGFjZXxuZXd8bnVsbHxvZnxvdmVycmlkZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmVhZG9ubHl8cmV0dXJufHNldHxzdGF0aWN8c3VwZXJ8c3dpdGNofHRoaXN8dGhyb3d8dHJ5fHR5cGV8dHlwZW9mfHVuZGVmaW5lZHx2YXJ8dm9pZHx3aGlsZXx5aWVsZHxhYnN0cmFjdHxhc3xiYXNlfGJvb2x8Ynl0ZXxjaGFyfGRlY2ltYWx8ZG91YmxlfGV2ZW50fGV4cGxpY2l0fGV4dGVybnxmYWxzZXxmaXhlZHxmbG9hdHxmb3JlYWNofGdvdG98aW1wbGljaXR8aW58aW50fGludGVybmFsfGlzfGxvY2t8bG9uZ3xvYmplY3R8b3BlcmF0b3J8b3V0fHBhcmFtc3xwYXJ0aWFsfHJlYWRvbmx5fHJlZnxzYnl0ZXxzZWFsZWR8c2hvcnR8c2l6ZW9mfHN0YWNrYWxsb2N8c3RyaW5nfHN0cnVjdHxzd2l0Y2h8dGhyb3d8dHJ1ZXx0cnl8dWludHx1bG9uZ3x1bmNoZWNrZWR8dW5zYWZlfHVzaG9ydHx1c2luZ3x2aXJ0dWFsfHZvbGF0aWxlfHdoZXJlfHdoaWxlfHdpdGh8eWllbGR8ZGVmfGVsaWZ8ZWxzZXxleGNlcHR8ZXhlY3xmaW5hbGx5fGZvcnxmcm9tfGdsb2JhbHxpZnxpbXBvcnR8bGFtYmRhfG5vbmxvY2FsfG5vdHxvcnxwYXNzfHByaW50fHJhaXNlfHJldHVybnx0cnl8d2hpbGV8d2l0aHx5aWVsZHxUcnVlfEZhbHNlfE5vbmV8YW5kfGlufGlzfGxhbWJkYXxub3R8b3J8Zm58cHVifHVzZXxtb2R8aW1wbHx0cmFpdHxzdHJ1Y3R8ZW51bXxtYXRjaHxsb29wfHdoaWxlfGZvcnxpZnxlbHNlfHJldHVybnxzZWxmfHN1cGVyfGNyYXRlfHdoZXJlfGFzeW5jfGF3YWl0fG1vdmV8cmVmfG11dHxzdGF0aWN8Y29uc3R8dW5zYWZlfGV4dGVybnx1c2V8YXN8aW1wbHxzdHJ1Y3R8ZW51bXx0eXBlfGZufGxldHxsb29wfGlmfGVsc2V8bWF0Y2h8cmV0dXJufHNlbGZ8U2VsZnxtb2R8cHVifGNyYXRlfG1hY3JvfGRlcml2ZXx3aGVyZXxhc3luY3xhd2FpdHxkeW58c2VsZnxwYWNrYWdlfGZ1bmN8Z298cmV0dXJufGRlZmVyfGdvfGlmfGVsc2V8c3dpdGNofGNhc2V8ZGVmYXVsdHxmb3J8cmFuZ2V8c2VsZWN0fGJyZWFrfGNvbnRpbnVlfGZhbGx0aHJvdWdofGNvbnN0fHN0cnVjdHxlbnVtfHR5cGV8aW50ZXJmYWNlfG1hcHxjaGFufHZhcnxuaWx8dHJ1ZXxmYWxzZXxpb3RhfGxlbnxjYXB8YXBwZW5kfG1ha2V8bmV3fHBhbmljfHJlY292ZXJ8c2VsZWN0fGVsc2V8aWZ8ZWxpZnxlbmR8Zm9yfGZ1bmN0aW9ufGlmfGlufGxvY2FsfG5pbHxub3R8b3J8cmVwZWF0fHJldHVybnx0aGVufHRydWV8dW50aWx8d2hpbGV8ZW5kfGFuZHxiZWdpbnxkb3xlbmR8ZmFsc2V8Zm9yfGZ1bmN0aW9ufGlmfGlufGxvY2FsfG5pbHxub3R8b3J8cmVwZWF0fHJldHVybnx0aGVufHRydWV8dW50aWx8d2hpbGUpXGIveSxjbHM6InN5bnRheC1rZXl3b3JkIixwcmlvcml0eTozfSxudW1iZXI6e3BhdHRlcm46L1xiKD86MHhbXGRhLWZBLUZdK3wwYlswMV0rfDBvWzAtN10rfFxkK1wuP1xkKig/OmVbKy1dP1xkKyk/KVxiL3ksY2xzOiJzeW50YXgtbnVtYmVyIixwcmlvcml0eToyfSxmdW5jdGlvbjp7cGF0dGVybjovXGJbQS1aXVthLXpBLVowLTldKlthLXpdXHcqKD89XHMqXCgpL3ksY2xzOiJzeW50YXgtZnVuY3Rpb24iLHByaW9yaXR5OjR9LHR5cGU6e3BhdHRlcm46L1xiKD86c3RyaW5nfG51bWJlcnxib29sZWFufHZvaWR8YW55fHVua25vd258bmV2ZXJ8b2JqZWN0fHN5bWJvbHxiaWdpbnR8QXJyYXl8T2JqZWN0fFN0cmluZ3xOdW1iZXJ8Qm9vbGVhbnxNYXB8U2V0fFdlYWtNYXB8V2Vha1NldHxQcm9taXNlfEVycm9yfFR5cGV8SW50ZXJmYWNlfEVudW18Q2xhc3N8U3RydWN0fEltcGx8VHJhaXR8Zm58Zm5jfGZ1bmN8ZnVuY3Rpb258ZGVmfHByb2N8ZnVufHB1YnxzdGF0aWN8Y29uc3R8bGV0fHZhcnxpbnR8ZmxvYXR8ZG91YmxlfGJvb2x8Y2hhcnxieXRlfHN0cmluZ3x1OHx1MTZ8dTMyfHU2NHxpOHxpMTZ8aTMyfGk2NHxmMzJ8ZjY0fHVzaXplfGlzaXplfHN0cnxWZWN8SGFzaE1hcHxPcHRpb258UmVzdWx0fEJveHxSY3xBcmN8Q2VsbHxSZWZDZWxsKVxiL3ksY2xzOiJzeW50YXgtdHlwZSIscHJpb3JpdHk6NH0sb3BlcmF0b3I6e3BhdHRlcm46L1srXC0qLyU9PD4hJnxefj86XSt8XC5cLlwuPy95LGNsczoic3ludGF4LW9wZXJhdG9yIixwcmlvcml0eTo1fSxwdW5jdHVhdGlvbjp7cGF0dGVybjovW3t9W1xdKCk7LFwuXS95LGNsczoic3ludGF4LXB1bmN0dWF0aW9uIixwcmlvcml0eTo2fX19ZnVuY3Rpb24gUWQoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9cChlKTt0PXQucmVwbGFjZSgvYGBgKFx3KilcbihbXHNcU10qPylgYGAvZyxmdW5jdGlvbihpLGEsdSl7dmFyIG89eW8odS50cmltKCksYSkscz1vLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpO3JldHVybic8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS0nK2ErJyI+JytzKyI8L2NvZGU+PC9wcmU+In0pLHQ9dC5yZXBsYWNlKC9gKFteYF0rKWAvZyxmdW5jdGlvbihpLGEpe3JldHVybiI8Y29kZT4iK2EucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IikrIjwvY29kZT4ifSksdD10LnJlcGxhY2UoL14jIyMjIyNccysoLiopJC9nbSwiPGg2PiQxPC9oNj4iKSx0PXQucmVwbGFjZSgvXiMjIyMjXHMrKC4qKSQvZ20sIjxoNT4kMTwvaDU+IiksdD10LnJlcGxhY2UoL14jIyMjXHMrKC4qKSQvZ20sIjxoND4kMTwvaDQ+IiksdD10LnJlcGxhY2UoL14jIyNccysoLiopJC9nbSwiPGgzPiQxPC9oMz4iKSx0PXQucmVwbGFjZSgvXiMjXHMrKC4qKSQvZ20sIjxoMj4kMTwvaDI+IiksdD10LnJlcGxhY2UoL14jXHMrKC4qKSQvZ20sIjxoMT4kMTwvaDE+IiksdD10LnJlcGxhY2UoL1wqXCpcKiguKz8pXCpcKlwqL2csIjxzdHJvbmc+PGVtPiQxPC9lbT48L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvXCpcKiguKz8pXCpcKi9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL1wqKC4rPylcKi9nLCI8ZW0+JDE8L2VtPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfX18oXFMoPzpbXlxuXSo/XFMpPylfX18oPyFcdykvZywiJDE8c3Ryb25nPjxlbT4kMjwvZW0+PC9zdHJvbmc+IiksdD10LnJlcGxhY2UoLyhefFteXHddKV9fKFxTKD86W15cbl0qP1xTKT8pX18oPyFcdykvZywiJDE8c3Ryb25nPiQyPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoLyhefFteXHddKV8oXFMoPzpbXlxuX10qP1xTKT8pXyg/IVx3KS9nLCIkMTxlbT4kMjwvZW0+IiksdD10LnJlcGxhY2UoL35+KC4rPyl+fi9nLCI8ZGVsPiQxPC9kZWw+IiksdD10LnJlcGxhY2UoL1xbKFteXF1dKylcXVwoKFteKV0rKVwpL2csJzxhIGhyZWY9IiQyIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+JDE8L2E+JyksdD10LnJlcGxhY2UoLyFcWyhbXlxdXSopXF1cKChbXildKylcKS9nLCc8aW1nIHNyYz0iJDIiIGFsdD0iJDEiPicpLHQ9dC5yZXBsYWNlKC9eJmd0O1xzKyguKikkL2dtLCI8YmxvY2txdW90ZT4kMTwvYmxvY2txdW90ZT4iKSx0PXQucmVwbGFjZSgvXi0tLSskL2dtLCI8aHI+IiksdD10LnJlcGxhY2UoL15cKlwqXCorJC9nbSwiPGhyPiIpLHQ9dC5yZXBsYWNlKC9eW1wtXCpdXHMrKC4qKSQvZ20sIjxsaT4kMTwvbGk+IiksdD10LnJlcGxhY2UoLyg8bGk+Lio8XC9saT5cbj8pKy9nLCI8dWw+JCY8L3VsPiIpLHQ9dC5yZXBsYWNlKC9eXGQrXC5ccysoLiopJC9nbSwiPGxpPiQxPC9saT4iKSx0PWJsKHQpO3ZhciBuPXQuc3BsaXQoL1xuezIsfS8pO3JldHVybiB0PW4ubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpPWkudHJpbSgpLGk/L148KGhbMS02XXx1bHxvbHxsaXxibG9ja3F1b3RlfHByZXx0YWJsZXxocnxkaXYpLy50ZXN0KGkpP2k6IjxwPiIraS5yZXBsYWNlKC9cbi9nLCI8YnI+IikrIjwvcD4iOiIifSkuam9pbihgCmApLHR9ZnVuY3Rpb24gYm8oKXtpZighci5zZWxlY3RlZElkfHwhci5naXRTdGF0dXN8fCFyLmdpdFN0YXR1cy5pc0dpdHx8ci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQpcmV0dXJuIiI7dmFyIGU9ci5naXRTdGF0dXMuYnJhbmNofHwiPyIsdD1yLmdpdFN0YXR1cy5tb2RpZmllZENvdW50fHwwLG49ZSsodD8iICBceEI3ICAiK3QrIiBcdTRFMkFcdTY1ODdcdTRFRjZcdTVGODVcdTYzRDBcdTRFQTQiOiIgIFx4QjcgIFx1NURFNVx1NEY1Q1x1NTMzQVx1NUU3Mlx1NTFDMCIpO3JldHVybic8YnV0dG9uIGlkPSJ0b3BiYXItZ2l0LWJhZGdlIiBjbGFzcz0idG9wYmFyLWdpdC1iYWRnZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJytwKG4pKyciIGFyaWEtbGFiZWw9Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNCI+PHN2ZyBjbGFzcz0idG9wYmFyLWdpdC1pY29uIiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjYiIHI9IjIiLz48Y2lyY2xlIGN4PSI2IiBjeT0iMTgiIHI9IjIiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjkiIHI9IjIiLz48cGF0aCBkPSJNNiA4djgiLz48cGF0aCBkPSJNMTggMTF2MWEzIDMgMCAwIDEtMyAzSDkiLz48L3N2Zz48c3BhbiBjbGFzcz0idG9wYmFyLWdpdC1icmFuY2giPicrcChlKSsiPC9zcGFuPiIrKHQ+MD8nPHNwYW4gY2xhc3M9InRvcGJhci1naXQtY291bnQiPlx4QjcnK3QrIjwvc3Bhbj4iOic8c3BhbiBjbGFzcz0idG9wYmFyLWdpdC1jbGVhbiIgYXJpYS1oaWRkZW49InRydWUiPlx1MjcxMzwvc3Bhbj4nKSsiPC9idXR0b24+In1mdW5jdGlvbiBnYSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZ2l0LXNsb3QiKTtpZihlKXtlLmlubmVySFRNTD1ibygpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZ2l0LWJhZGdlIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obil7bi5wcmV2ZW50RGVmYXVsdCgpLEVvKCl9KX19ZnVuY3Rpb24gJGQoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ci50b3BiYXJNb3JlT3BlbixuPSEhZS5jbGF1ZGVTZXNzaW9uSWQsaT0hIWUuY3dkLGE9ZS53b3JrdHJlZUVuYWJsZWQmJmUud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZlLndvcmt0cmVlLnBhdGgsdT1lLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2VkIiYmZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExLG89ZS5zdGF0dXM9PT0icnVubmluZyJ8fGUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnaW5nIixzPWEmJmUud29ya3RyZWVNZXJnZVN0YXR1cyE9PSJtZXJnZWQiLGw9dSxkPW58fGl8fCEwLGY9c3x8bHx8ITAsYz0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiIvPjxwYXRoIGQ9Ik01IDE1SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWEyIDIgMCAwIDEgMiAydjEiLz48L3N2Zz4nLHY9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3LjUgMTlhNC41IDQuNSAwIDEgMC0xLjUtOC43NEE2IDYgMCAxIDAgNiAxNGgxMS41eiIvPjwvc3ZnPicsaD0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz48L3N2Zz4nLGc9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGxpbmUgeDE9IjQiIHkxPSI5IiB4Mj0iMjAiIHkyPSI5Ii8+PGxpbmUgeDE9IjQiIHkxPSIxNSIgeDI9IjIwIiB5Mj0iMTUiLz48bGluZSB4MT0iMTAiIHkxPSIzIiB4Mj0iOCIgeTI9IjIxIi8+PGxpbmUgeDE9IjE2IiB5MT0iMyIgeDI9IjE0IiB5Mj0iMjEiLz48L3N2Zz4nLG09Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTcgN2gxMCIvPjxwYXRoIGQ9Ik03IDEyaDEwIi8+PHBhdGggZD0iTTcgMTdoMTAiLz48cGF0aCBkPSJNNSA3bC0yIDIgMiAyIi8+PHBhdGggZD0iTTE5IDE1bDIgMi0yIDIiLz48L3N2Zz4nLHk9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+JyxDPSIiO2lmKG4pe3ZhciBFPWUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTU5MERcdTUyMzYgQ29kZXggdGhyZWFkIElEIjoiXHU1OTBEXHU1MjM2IENsYXVkZSBcdTRGMUFcdThCREQgSUQiO0MrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0iY29weS1jbGF1ZGUtc2Vzc2lvbi1pZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+Jyt2KyI8c3Bhbj4iK0UrIjwvc3Bhbj48L2J1dHRvbj4ifWkmJihDKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktY3dkIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK2grIjxzcGFuPlx1NTkwRFx1NTIzNlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj4iKSxDKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktc2Vzc2lvbi1pZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JytnKyI8c3Bhbj5cdTU5MERcdTUyMzZcdTRGMUFcdThCREQgSUQ8L3NwYW4+PC9idXR0b24+Ijt2YXIgQj0iIjtzP0IrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtbWVyZ2UiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iJysobz8iIGRpc2FibGVkIjoiIikrIj4iK20rIjxzcGFuPlx1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRlx1MjAyNjwvc3Bhbj48L2J1dHRvbj4iOmwmJihCKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249Indvcmt0cmVlLWNsZWFudXAiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrbSsiPHNwYW4+XHU5MUNEXHU4QkQ1IHdvcmt0cmVlIFx1NkUwNVx1NzQwNjwvc3Bhbj48L2J1dHRvbj4iKSxCKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSB0b3BiYXItbW9yZS1pdGVtLWRhbmdlciIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZXNzaW9uIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK3krIjxzcGFuPlx1NTIyMFx1OTY2NFx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERDwvc3Bhbj48L2J1dHRvbj4iO3ZhciBEPWQmJmY/JzxkaXYgY2xhc3M9InRvcGJhci1tb3JlLWRpdmlkZXIiIHJvbGU9InNlcGFyYXRvciI+PC9kaXY+JzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0idG9wYmFyLW1vcmUtd3JhcCI+PGJ1dHRvbiBpZD0idG9wYmFyLW1vcmUtYnV0dG9uIiBjbGFzcz0idG9wYmFyLWJ0biBzcXVhcmUnKyh0PyIgYWN0aXZlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTY0Q0RcdTRGNUMiIGFyaWEtaGFzcG9wdXA9Im1lbnUiIGFyaWEtZXhwYW5kZWQ9IicrKHQ/InRydWUiOiJmYWxzZSIpKyciIHRpdGxlPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTY0Q0RcdTRGNUMiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTkiIHI9IjEiLz48L3N2Zz48L2J1dHRvbj48ZGl2IGlkPSJ0b3BiYXItbW9yZS1tZW51IiBjbGFzcz0idG9wYmFyLW1vcmUtbWVudScrKHQ/IiI6IiBoaWRkZW4iKSsnIiByb2xlPSJtZW51IiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCREQiPicrQytEK0IrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gQm4oZSx0KXtpZighZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO3ZhciBuPXQmJnQuZm9yY2UsaT1EYXRlLm5vdygpO2lmKCFuJiZyLmdpdFN0YXR1c1Nlc3Npb25JZD09PWUmJnIuZ2l0U3RhdHVzJiZpLXIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ8MWUzKXJldHVybiBQcm9taXNlLnJlc29sdmUoci5naXRTdGF0dXMpO2lmKHIuZ2l0U3RhdHVzSW5mbGlnaHQmJnIuZ2l0U3RhdHVzSW5mbGlnaHQuc2Vzc2lvbklkPT09ZSlyZXR1cm4gci5naXRTdGF0dXNJbmZsaWdodC5wcm9taXNlO3IuZ2l0U3RhdHVzTG9hZGluZz0hMDt2YXIgYT1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL2dpdC1zdGF0dXMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5vaz91Lmpzb24oKTp7aXNHaXQ6ITF9fSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gci5naXRTdGF0dXM9dXx8e2lzR2l0OiExfSxyLmdpdFN0YXR1c1Nlc3Npb25JZD1lLHIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ9RGF0ZS5ub3coKSxnYSgpLHV9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiByLmdpdFN0YXR1cz17aXNHaXQ6ITF9LHIuZ2l0U3RhdHVzU2Vzc2lvbklkPWUsci5naXRTdGF0dXNMYXN0RmV0Y2hBdD1EYXRlLm5vdygpLGdhKCksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLmdpdFN0YXR1c0xvYWRpbmc9ITEsci5naXRTdGF0dXNJbmZsaWdodCYmci5naXRTdGF0dXNJbmZsaWdodC5zZXNzaW9uSWQ9PT1lJiYoci5naXRTdGF0dXNJbmZsaWdodD1udWxsKX0pO3JldHVybiByLmdpdFN0YXR1c0luZmxpZ2h0PXtzZXNzaW9uSWQ6ZSxwcm9taXNlOmF9LGF9dmFyIERuPW51bGwsa249bnVsbCxWZz1udWxsO2Z1bmN0aW9uIFhkKGUpe3JldHVybiBlPT09ImNvbW1pdC10YWcifHxlPT09ImNvbW1pdC10YWctcHVzaCJ8fGU9PT0iY29tbWl0LXB1c2giP2U6ImNvbW1pdCJ9ZnVuY3Rpb24gWmQoZSl7cmV0dXJuIGU9WGQoZSksZT09PSJjb21taXQtdGFnLXB1c2giP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgVGFnICsgUHVzaCIsdmVyYjoiXHU2M0QwXHU0RUE0XHUzMDAxXHU2MjUzIFRhZyBcdTVFNzZcdTYzQThcdTkwMDEiLHdpdGhUYWc6ITAscHVzaDohMCx0b25lOiJhbGwifTplPT09ImNvbW1pdC10YWciP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgVGFnIix2ZXJiOiJcdTYzRDBcdTRFQTRcdTVFNzZcdTYyNTMgVGFnIix3aXRoVGFnOiEwLHB1c2g6ITEsdG9uZToidGFnIn06ZT09PSJjb21taXQtcHVzaCI/e2FjdGlvbjplLGxhYmVsOiJDb21taXQgKyBQdXNoIix2ZXJiOiJcdTYzRDBcdTRFQTRcdTVFNzZcdTYzQThcdTkwMDEiLHdpdGhUYWc6ITEscHVzaDohMCx0b25lOiJwdXNoIn06e2FjdGlvbjoiY29tbWl0IixsYWJlbDoiQ29tbWl0Iix2ZXJiOiJcdTRFQzVcdTYzRDBcdTRFQTQiLHdpdGhUYWc6ITEscHVzaDohMSx0b25lOiJjb21taXQifX1mdW5jdGlvbiBFbygpe2lmKHIuc2VsZWN0ZWRJZCl7ci5xdWlja0NvbW1pdE9wZW49ITAsci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRFcnJvcj0iIixyLnF1aWNrQ29tbWl0Rm9ybT17Y3VzdG9tTWVzc2FnZToiIix0YWc6IiIsdGFnRWRpdGVkOiExfSxyLnF1aWNrQ29tbWl0UHVzaGluZz0hMSxyLnF1aWNrQ29tbWl0UHVzaEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0Iix0cigpLGhuKCksbnIoKSxNdCgpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtlJiYoZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LFFpKGUpKSxEbiYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRG4pLERuPWZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJnIucXVpY2tDb21taXRPcGVuJiYhci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcmJiFyLnF1aWNrQ29tbWl0UHVzaGluZyYmV24oKX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRG4pLEJuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KS50aGVuKGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdE9wZW4mJk10KCl9KX19ZnVuY3Rpb24gV24oKXtyLnF1aWNrQ29tbWl0T3Blbj0hMSxyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMSxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdFJlc3VsdD1udWxsLHIucXVpY2tDb21taXREcmFnQWN0aW9uPSJjb21taXQiO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLERuJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRG4pLERuPW51bGwpLGtuJiYoa24oKSxrbj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpfWZ1bmN0aW9uIE10KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2lmKGUpe2tuJiYoa24oKSxrbj1udWxsKTt2YXIgdD1DbygpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5pbm5lckhUTUw9dDt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIiNxdWljay1jb21taXQtbW9kYWwiKTtpJiYoZS5pbm5lckhUTUw9aS5pbm5lckhUTUwsRm8oKSl9fWZ1bmN0aW9uIEZvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1jbG9zZS1idG4iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixXbik7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1jYW5jZWwtYnRuIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsV24pO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtYWktYnRuIik7biYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscmMpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO2kmJihpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9aS52YWx1ZX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24obyl7KG8ubWV0YUtleXx8by5jdHJsS2V5KSYmby5rZXk9PT0iRW50ZXIiJiYoby5wcmV2ZW50RGVmYXVsdCgpLHpuKCJjb21taXQiKSl9KSk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC10YWciKTthJiYoYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0Rm9ybS50YWc9YS52YWx1ZSxyLnF1aWNrQ29tbWl0Rm9ybS50YWdFZGl0ZWQ9ITB9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKG8pe28ua2V5PT09IkVudGVyIiYmKG8ucHJldmVudERlZmF1bHQoKSx6bigiY29tbWl0LXRhZyIpKX0pKTt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXB1c2gtYWZ0ZXItYnRuIik7dSYmdS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgbz1yLnF1aWNrQ29tbWl0UmVzdWx0fHx7fTtpYyh7cHVzaENvbW1pdHM6ITAscHVzaFRhZ3M6ISFvLnRhZ05hbWUsY2xvc2VPblN1Y2Nlc3M6ITB9KX0pLG5jKCl9ZnVuY3Rpb24gZWMoZSl7dmFyIHQ9ISEoZSYmZS50YWcpLG49ISEoZSYmZS5wdXNoKTtyZXR1cm4gdCYmbj8iY29tbWl0LXRhZy1wdXNoIjp0PyJjb21taXQtdGFnIjpuPyJjb21taXQtcHVzaCI6ImNvbW1pdCJ9dmFyIHRjPTU4LGFpPTEwO2Z1bmN0aW9uIHdvKGUpe3JldHVybiBlPT09InRhZyI/e2FjdGlvbjoiY29tbWl0LXRhZyIsc3ViOiExfTplPT09InB1c2giP3thY3Rpb246ImNvbW1pdC1wdXNoIixzdWI6ITF9OmU9PT0ic3ViIj97YWN0aW9uOiJjb21taXQiLHN1YjohMH06e2FjdGlvbjoiY29tbWl0IixzdWI6ITF9fWZ1bmN0aW9uIG5jKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stZmllbGQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLXN0YWdlIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1sYXVuY2giKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWNsdXN0ZXIiKTtpZighZXx8IXR8fCFufHwhaSlyZXR1cm47dmFyIGE9WyJjb21taXQiLCJ0YWciLCJwdXNoIl0sdT17fTtpZihhLmZvckVhY2goZnVuY3Rpb24oayl7dVtrXT1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNoaXA9IicraysnIl0nKX0pLCF1LmNvbW1pdHx8IXUudGFnfHwhdS5wdXNoKXJldHVybjt1LnN1Yj1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNoaXA9InN1YiJdJyk7dmFyIG89ISF1LnN1YixzPW8/YS5jb25jYXQoWyJzdWIiXSk6YTtmdW5jdGlvbiBsKGspe3JldHVybiB1W2tdP3Vba10ub2Zmc2V0V2lkdGg6OTB9ZnVuY3Rpb24gZCgpe3JldHVybiB1LmNvbW1pdD91LmNvbW1pdC5vZmZzZXRIZWlnaHQ6Mzh9ZnVuY3Rpb24gZigpe3JldHVybiB3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihtYXgtd2lkdGg6IDcyMHB4KSIpLm1hdGNoZXN9ZnVuY3Rpb24gYygpe3ZhciBrPWUuY2xpZW50V2lkdGgsVD1lLmNsaWVudEhlaWdodCxNPWQoKSxZPWwoImNvbW1pdCIpLHo9bCgidGFnIiksUT1sKCJwdXNoIik7aWYoZigpJiZvKXt2YXIgbGU9TWF0aC5tYXgoOCxUKi4yLU0vMiksZWU9TWF0aC5taW4oVC1NLTgsVCouNy1NLzIpLFo9ZnVuY3Rpb24oaWUpe3JldHVybiBNYXRoLm1heCg4LGsqLjI3LWllLzIpfSxxPWZ1bmN0aW9uKGllKXtyZXR1cm4gTWF0aC5taW4oay1pZS04LGsqLjczLWllLzIpfTtyZXR1cm57Y29tbWl0Ont4OlooWSkseTpsZX0sdGFnOnt4OnEoeikseTpsZX0scHVzaDp7eDpaKFEpLHk6ZWV9LHN1Yjp7eDpxKGwoInN1YiIpKSx5OmVlfX19dmFyIE89ZigpLE49Tz9NYXRoLm1heCg4LFQqLjE4LU0vMik6TWF0aC5tYXgoOCxUKi4xMiksRz1PP01hdGgubWluKFQtTS04LFQqLjcyLU0vMik6TWF0aC5taW4oVC1NLTgsVCouODgtTSksSj1PPy4yNDouMjgsbmU9Tz8uNzY6LjcyLGRlPXtjb21taXQ6e3g6TWF0aC5tYXgoOCwoay1ZKS8yKSx5Ok59LHRhZzp7eDpNYXRoLm1heCg4LGsqSi16LzIpLHk6R30scHVzaDp7eDpNYXRoLm1pbihrLVEtOCxrKm5lLVEvMikseTpHfX07aWYobyl7dmFyIHJlPWwoInN1YiIpO2RlLnN1Yj17eDpNYXRoLm1pbihrLXJlLTgsayouOTQtcmUvMikseTpNYXRoLm1heCg4LE1hdGgubWluKFQtTS04LChULU0pLzIpKX19cmV0dXJuIGRlfXZhciB2PXt9O2Z1bmN0aW9uIGgoayxULE0pe3Vba10mJih1W2tdLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIrVC50b0ZpeGVkKDEpKyJweCwiK00udG9GaXhlZCgxKSsicHgpIil9ZnVuY3Rpb24gZyhrKXt2PWMoKSxzLmZvckVhY2goZnVuY3Rpb24oVCl7dVtUXS5jbGFzc0xpc3QudG9nZ2xlKCJxYy1jaGlwLS1hbmltIiwhIWspLGgoVCx2W1RdLngsdltUXS55KX0pfWcoITEpO3ZhciBtPW51bGw7ZnVuY3Rpb24geShrLFQsTSl7dmFyIFk9ZCgpLHo9MjQsUT1zLmZpbHRlcihmdW5jdGlvbihOKXtyZXR1cm4gay5pbmRleE9mKE4pPj0wfSksbGU9US5yZWR1Y2UoZnVuY3Rpb24oTixHKXtyZXR1cm4gTWF0aC5tYXgoTixsKEcpKX0sMCksZWU9bGUrTWF0aC5tYXgoMCxRLmxlbmd0aC0xKSp6LFo9ZS5jbGllbnRIZWlnaHQscT1ULWVlLzIsTz1NYXRoLm1heCgyLE1hdGgubWluKFotWS0yLE0tWS8yKSk7cmV0dXJuIFEuZm9yRWFjaChmdW5jdGlvbihOKXtoKE4scSxPKSxxKz16fSkse3g6VC1lZS8yLTcseTpPLTcsdzplZSsxNCxoOlkrMTR9fWZ1bmN0aW9uIEMoayl7aS5jbGFzc0xpc3QuYWRkKCJpcy1hY3RpdmUiKSxpLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIray54LnRvRml4ZWQoMSkrInB4LCIray55LnRvRml4ZWQoMSkrInB4KSIsaS5zdHlsZS53aWR0aD1rLncudG9GaXhlZCgxKSsicHgiLGkuc3R5bGUuaGVpZ2h0PWsuaC50b0ZpeGVkKDEpKyJweCJ9ZnVuY3Rpb24gRSgpe2kuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWN0aXZlIil9ZnVuY3Rpb24gQihrKXtyZXR1cm4gZWMoe2NvbW1pdDohMCx0YWc6ay5pbmRleE9mKCJ0YWciKT49MCxwdXNoOmsuaW5kZXhPZigicHVzaCIpPj0wfSl9ZnVuY3Rpb24gRChrKXtyZXR1cm4gay5pbmRleE9mKCJzdWIiKT49MH1mdW5jdGlvbiBGKGspe3ZhciBUPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWxhdW5jaC1sYWJlbCIpO1QmJihULnRleHRDb250ZW50PWspfWZ1bmN0aW9uIEkoayxUKXt2YXIgTT1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBrPj1NLmxlZnQmJms8PU0ucmlnaHQmJlQ+PU0udG9wJiZUPD1NLmJvdHRvbX1mdW5jdGlvbiBMKGspe3JldHVybiBmdW5jdGlvbihUKXtpZighKHVba10uZGlzYWJsZWR8fHVpKCkpKXttPXthbmNob3I6ayxwb2ludGVySWQ6VC5wb2ludGVySWQsc3RhcnRYOlQuY2xpZW50WCxzdGFydFk6VC5jbGllbnRZLG1vdmVkOiExLG1lbWJlcnM6W2tdfSxzLmZvckVhY2goZnVuY3Rpb24oTSl7dVtNXS5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIil9KSx1W2tdLmNsYXNzTGlzdC5hZGQoImlzLWdyYWJiaW5nIik7dHJ5e3Vba10uc2V0UG9pbnRlckNhcHR1cmUoVC5wb2ludGVySWQpfWNhdGNoe310LmNsYXNzTGlzdC5hZGQoImlzLWRyYWdnaW5nIiksVC5wcmV2ZW50RGVmYXVsdCgpfX19ZnVuY3Rpb24gSChrKXtpZighKCFtfHxtLnBvaW50ZXJJZCE9PWsucG9pbnRlcklkKSl7KE1hdGguYWJzKGsuY2xpZW50WC1tLnN0YXJ0WCk+M3x8TWF0aC5hYnMoay5jbGllbnRZLW0uc3RhcnRZKT4zKSYmKG0ubW92ZWQ9ITApO3ZhciBUPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTT1rLmNsaWVudFgtVC5sZWZ0LFk9ay5jbGllbnRZLVQudG9wO2lmKGEuZm9yRWFjaChmdW5jdGlvbihPKXtpZighKG0ubWVtYmVycy5pbmRleE9mKE8pPj0wKSl7dmFyIE49dltPXS54K2woTykvMixHPXZbT10ueStkKCkvMixKPU0tTixuZT1ZLUc7TWF0aC5zcXJ0KEoqSituZSpuZSk8dGMmJihtLm1lbWJlcnMucHVzaChPKSx1W09dLmNsYXNzTGlzdC5yZW1vdmUoInFjLWNoaXAtLWFuaW0iKSx1W09dLmNsYXNzTGlzdC5hZGQoImlzLWF0dGFjaGVkIikpfX0pLG8mJm0ubWVtYmVycy5pbmRleE9mKCJzdWIiKTwwKXt2YXIgej12LnN1Yi54LWFpLFE9di5zdWIueS1haSxsZT12LnN1Yi54K2woInN1YiIpK2FpLGVlPXYuc3ViLnkrZCgpK2FpO00+PXomJk08PWxlJiZZPj1RJiZZPD1lZSYmKG0ubWVtYmVycy5wdXNoKCJzdWIiKSx1LnN1Yi5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIiksdS5zdWIuY2xhc3NMaXN0LmFkZCgiaXMtYXR0YWNoZWQiKSl9dmFyIFo9eShtLm1lbWJlcnMsTSxZKSxxPUkoay5jbGllbnRYLGsuY2xpZW50WSk7dC5zZXRBdHRyaWJ1dGUoImRhdGEtaG90IixxPyIxIjoiMCIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIsQihtLm1lbWJlcnMpKSxtLm1lbWJlcnMubGVuZ3RoPjE/QyhaKTpFKCksRihxPyJcdTY3N0VcdTYyNEJcdTYyNjdcdTg4NEMiOiJcdTYzRDBcdTRFQTQiKX19ZnVuY3Rpb24gVShrLFQpe2lmKCEoIW18fG0ucG9pbnRlcklkIT09ay5wb2ludGVySWQpKXt2YXIgTT1tO209bnVsbCx0LmNsYXNzTGlzdC5yZW1vdmUoImlzLWRyYWdnaW5nIiksdC5zZXRBdHRyaWJ1dGUoImRhdGEtaG90IiwiMCIpLEYoIlx1NjNEMFx1NEVBNCIpLEUoKSxzLmZvckVhY2goZnVuY3Rpb24oeil7dVt6XS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1ncmFiYmluZyIsImlzLWF0dGFjaGVkIil9KTt0cnl7dVtNLmFuY2hvcl0ucmVsZWFzZVBvaW50ZXJDYXB0dXJlKE0ucG9pbnRlcklkKX1jYXRjaHt9aWYoIVQmJiFNLm1vdmVkKXt2YXIgWT13byhNLmFuY2hvcik7em4oWS5hY3Rpb24sWS5zdWIpO3JldHVybn1pZighVCYmSShrLmNsaWVudFgsay5jbGllbnRZKSl7em4oQihNLm1lbWJlcnMpLEQoTS5tZW1iZXJzKSk7cmV0dXJufXQuc2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIsImNvbW1pdCIpLGcoITApfX12YXIgeD1mdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiYhbSYmZyghMSl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHgpLHMuZm9yRWFjaChmdW5jdGlvbihrKXt2YXIgVD11W2tdO1QuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLEwoaykpLFQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLEgpLFQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixmdW5jdGlvbihNKXtVKE0sITEpfSksVC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixmdW5jdGlvbihNKXtVKE0sITApfSksVC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihNKXtpZighKFQuZGlzYWJsZWR8fHVpKCkpJiYoTS5rZXk9PT0iRW50ZXIifHxNLmtleT09PSIgInx8TS5rZXk9PT0iU3BhY2ViYXIiKSl7TS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBZPXdvKGspO3puKFkuYWN0aW9uLFkuc3ViKX19KX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7bi5kaXNhYmxlZHx8dWkoKXx8bXx8em4oImNvbW1pdCIpfSksa249ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix4KSxtPW51bGx9fWZ1bmN0aW9uIHJjKCl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0R2VuZXJhdGluZykpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO2UmJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWUudmFsdWUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7dCYmKHIucXVpY2tDb21taXRGb3JtLnRhZz10LnZhbHVlKSxyLnF1aWNrQ29tbWl0R2VuZXJhdGluZz0hMCxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsTXQoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZ2VuZXJhdGUtY29tbWl0LW1lc3NhZ2UiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHt9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJue29rOm4ub2ssZGF0YTppfX0pfSkudGhlbihmdW5jdGlvbihuKXtpZighbi5vayl0aHJvdyBuZXcgRXJyb3Iobi5kYXRhJiZuLmRhdGEuZXJyb3J8fCJBSSBcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgaT1uLmRhdGF8fHt9LGE9dHlwZW9mIGkubWVzc2FnZT09InN0cmluZyI/aS5tZXNzYWdlOiIiLHU9dHlwZW9mIGkuc3VnZ2VzdGVkVGFnPT0ic3RyaW5nIj9pLnN1Z2dlc3RlZFRhZy50cmltKCk6IiIsbz0oci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZXx8IiIpLnRyaW0oKTshbyYmYSYmKHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9YSksdSYmKHIucXVpY2tDb21taXRGb3JtLnRhZ0VkaXRlZHx8KHIucXVpY2tDb21taXRGb3JtLnRhZz11KSxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0LXRhZyIpfSkuY2F0Y2goZnVuY3Rpb24obil7ci5xdWlja0NvbW1pdEVycm9yPW4mJm4ubWVzc2FnZXx8IkFJIFx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdEdlbmVyYXRpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJk10KCl9KX19ZnVuY3Rpb24gem4oZSx0KXtpZighKCFyLnNlbGVjdGVkSWR8fHIucXVpY2tDb21taXRTdWJtaXR0aW5nKSl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tZXNzYWdlIik7biYmKHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9bi52YWx1ZSk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC10YWciKTtpJiYoci5xdWlja0NvbW1pdEZvcm0udGFnPWkudmFsdWUpO3ZhciBhPXIucXVpY2tDb21taXRGb3JtfHx7fSx1PVpkKGV8fHIucXVpY2tDb21taXREcmFnQWN0aW9ufHwiY29tbWl0Iiksbz11LndpdGhUYWcscz1vPyhhLnRhZ3x8IiIpLnRyaW0oKToiIixsPShhLmN1c3RvbU1lc3NhZ2V8fCIiKS50cmltKCksZD0hbCxmPXticmFuY2g6KHIuZ2l0U3RhdHVzfHx7fSkuYnJhbmNofHwiIixjb21taXRIYXNoOihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQmJihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc2hvcnRIYXNoPyhyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc2hvcnRIYXNoOihyLmdpdFN0YXR1c3x8e30pLmhlYWQ/KHIuZ2l0U3RhdHVzfHx7fSkuaGVhZC5zdWJzdHJpbmcoMCw3KToiIixjb21taXRTdWJqZWN0OihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQmJihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc3ViamVjdD8oci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnN1YmplY3Q6IiIsdGFnOihyLmdpdFN0YXR1c3x8e30pLmxhdGVzdFRhZ3x8IiJ9LGM9e2F1dG9NZXNzYWdlOmQsY3VzdG9tTWVzc2FnZTpkPyIiOmwsdGFnOnMsYXV0b1RhZzohIShvJiYhcykscHVzaDohIXUucHVzaCxzdWJtb2R1bGU6ISF0fTtyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMCxyLnF1aWNrQ29tbWl0U3VibW9kdWxlSW50ZW50PSEhdCxyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc9ZHx8Yy5hdXRvVGFnLHIucXVpY2tDb21taXRFcnJvcj0iIixyLnF1aWNrQ29tbWl0UHVzaEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj11LmFjdGlvbixNdCgpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9xdWljay1jb21taXQiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KGMpfSkudGhlbihmdW5jdGlvbih2KXtyZXR1cm4gdi5qc29uKCkudGhlbihmdW5jdGlvbihoKXtyZXR1cm57b2s6di5vayxkYXRhOmh9fSl9KS50aGVuKGZ1bmN0aW9uKHYpe2lmKCF2Lm9rKXRocm93IG5ldyBFcnJvcih2LmRhdGEmJnYuZGF0YS5lcnJvcnx8Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNFx1NTkzMVx1OEQyNVx1MzAwMiIpO3ZhciBoPXYuZGF0YXx8e30sZz1oLmNvbW1pdCYmaC5jb21taXQuaGFzaD9oLmNvbW1pdC5oYXNoLnN1YnN0cmluZygwLDcpOiIiLG09aC50YWcmJmgudGFnLm5hbWU/aC50YWcubmFtZToiIix5PUFycmF5LmlzQXJyYXkoaC5zdWJtb2R1bGVDb21taXRzKT9oLnN1Ym1vZHVsZUNvbW1pdHM6W10sQz15Lmxlbmd0aD4wPyJcdTVERjJcdTUxNDhcdTYzRDBcdTRFQTQgIit5Lmxlbmd0aCsiIFx1NEUyQSBzdWJtb2R1bGVcdUZGMDgiK3kubWFwKGZ1bmN0aW9uKEIpe3JldHVybiBCLnBhdGh9KS5qb2luKCJcdTMwMDEiKSsiXHVGRjA5XHVGRjBDIjoiIixFPUMrIlx1NURGMlx1NjNEMFx1NEVBNCIrKGc/IiAiK2c6IiIpKyhtPyJcdUZGMENcdTVERjJcdTYyNTMgVGFnICIrbToiIik7ci5xdWlja0NvbW1pdFJlc3VsdD17YWN0aW9uOnUuYWN0aW9uLGluY2x1ZGVTdWJtb2R1bGU6ISF0LHB1c2hlZDohIWgucHVzaGVkLHB1c2hFcnJvcjpoLnB1c2hFcnJvcnx8IiIsY29tbWl0SGFzaDpnLGNvbW1pdE1lc3NhZ2U6aC5jb21taXQmJmguY29tbWl0Lm1lc3NhZ2U/aC5jb21taXQubWVzc2FnZTpsLHRhZ05hbWU6bSxvbGRUYWc6Zi50YWcsb2xkQ29tbWl0SGFzaDpmLmNvbW1pdEhhc2gsb2xkQ29tbWl0U3ViamVjdDpmLmNvbW1pdFN1YmplY3Qsc3VibW9kdWxlQ291bnQ6eS5sZW5ndGh9LHUucHVzaCYmIWgucHVzaEVycm9yPyh0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQShFKyJcdUZGMENcdTVERjJcdTYzQThcdTkwMDFcdTMwMDIiLCJzdWNjZXNzIiksV24oKSk6KHR5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKEUrKGgucHVzaEVycm9yPyJcdUZGMUJwdXNoIFx1NTkzMVx1OEQyNVx1RkYxQSIraC5wdXNoRXJyb3I6Ilx1MzAwMiIpLGgucHVzaEVycm9yPyJlcnJvciI6InN1Y2Nlc3MiKSxyLnNlbGVjdGVkSWQmJkJuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KS50aGVuKGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdE9wZW4mJk10KCl9KSl9KS5jYXRjaChmdW5jdGlvbih2KXtyLnF1aWNrQ29tbWl0RXJyb3I9diYmdi5tZXNzYWdlfHwiXHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0XHU1OTMxXHU4RDI1XHUzMDAyIn0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMSxyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJk10KCl9KX19ZnVuY3Rpb24gaWMoZSl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0UHVzaGluZykpe3ZhciB0PSEhKGUmJmUucHVzaENvbW1pdHMpLG49ISEoZSYmZS5wdXNoVGFncyksaT0hIShlJiZlLmNsb3NlT25TdWNjZXNzKTtpZighKCF0JiYhbikpe3ZhciBhPXIucXVpY2tDb21taXRSZXN1bHR8fHt9LHU9ISFhLmluY2x1ZGVTdWJtb2R1bGU7ci5xdWlja0NvbW1pdFB1c2hpbmc9ITAsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixNdCgpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9naXQvcHVzaCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3B1c2hDb21taXRzOnQscHVzaFRhZ3M6bixzdWJtb2R1bGU6dSx0YWc6YS50YWdOYW1lfHwiIn0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCkudGhlbihmdW5jdGlvbihzKXtyZXR1cm57b2s6by5vayxkYXRhOnN9fSl9KS50aGVuKGZ1bmN0aW9uKG8pe3ZhciBzPW8uZGF0YXx8e307aWYoIW8ub2spdGhyb3cgbmV3IEVycm9yKHMmJnMuZXJyb3J8fCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiKTtpZihzLmVycm9yKXtyLnF1aWNrQ29tbWl0UHVzaEVycm9yPXMuZXJyb3IsdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NjNBOFx1OTAwMVx1NTkzMVx1OEQyNVx1RkYxQSIrcy5lcnJvciwiZXJyb3IiKTtyZXR1cm59dmFyIGw9W107cy5wdXNoZWRDb21taXRzJiZsLnB1c2goImNvbW1pdHMiKSxzLnB1c2hlZFRhZ3MmJmwucHVzaCgidGFncyIpO3ZhciBkPWwubGVuZ3RoP2wuam9pbigiIFx1NTQ4QyAiKToiXHVGRjA4XHU2NUUwXHU1MTg1XHU1QkI5XHVGRjA5Ijt0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQSgiXHU1REYyXHU2M0E4XHU5MDAxICIrZCwic3VjY2VzcyIpLHIucXVpY2tDb21taXRSZXN1bHQmJihyLnF1aWNrQ29tbWl0UmVzdWx0LnB1c2hlZD0hMCksaT8oV24oKSxyLnNlbGVjdGVkSWQmJkJuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KSk6ci5zZWxlY3RlZElkJiZCbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZNdCgpfSl9KS5jYXRjaChmdW5jdGlvbihvKXtyLnF1aWNrQ29tbWl0UHVzaEVycm9yPW8mJm8ubWVzc2FnZXx8Ilx1NjNBOFx1OTAwMVx1NTkzMVx1OEQyNVx1MzAwMiIsdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoci5xdWlja0NvbW1pdFB1c2hFcnJvciwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0UHVzaGluZz0hMSxyLnF1aWNrQ29tbWl0T3BlbiYmTXQoKX0pfX19ZnVuY3Rpb24gYWMoZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYodD09PSI/PyIpcmV0dXJue2xldHRlcjoiVSIsY2xzOiJ1bnRyYWNrZWQiLHRpdGxlOiJcdTY3MkFcdThEREZcdThFMkEifTtpZih0PT09IiEhIilyZXR1cm57bGV0dGVyOiJJIixjbHM6Imlnbm9yZWQiLHRpdGxlOiJcdTVERjJcdTVGRkRcdTc1NjUifTtmb3IodmFyIG49IiIsaT0wO2k8ZS5sZW5ndGg7aSsrKWlmKGVbaV0mJmVbaV0hPT0iLiImJmVbaV0hPT0iICIpe249ZVtpXTticmVha31uPShufHx0WzBdfHwiPyIpLnRvVXBwZXJDYXNlKCk7dmFyIGE9e0E6e2NsczoiYWRkIix0aXRsZToiXHU2NUIwXHU1ODlFIn0sTTp7Y2xzOiJtb2QiLHRpdGxlOiJcdTRGRUVcdTY1MzkifSxEOntjbHM6ImRlbCIsdGl0bGU6Ilx1NTIyMFx1OTY2NCJ9LFI6e2NsczoicmVuIix0aXRsZToiXHU5MUNEXHU1NDdEXHU1NDBEIn0sQzp7Y2xzOiJyZW4iLHRpdGxlOiJcdTU5MERcdTUyMzYifSxUOntjbHM6Im1vZCIsdGl0bGU6Ilx1N0M3Qlx1NTc4Qlx1NTNEOFx1NjZGNCJ9LFU6e2NsczoiZGVsIix0aXRsZToiXHU1MUIyXHU3QTgxIn19LHU9YVtuXXx8e2Nsczoib3RoZXIiLHRpdGxlOiJcdTVERjJcdTY2RjRcdTY1MzkifTtyZXR1cm57bGV0dGVyOm4sY2xzOnUuY2xzLHRpdGxlOnUudGl0bGV9fWZ1bmN0aW9uIFVnKGUpe3ZhciB0PWUubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPWFjKG4uc3RhdHVzfHwiIiksYT1uLnBhdGh8fCIiLHU9YS5sYXN0SW5kZXhPZigiLyIpLG89dT49MD9hLnNsaWNlKDAsdSsxKToiIixzPXU+PTA/YS5zbGljZSh1KzEpOmEsbD0iIjtpZihuLmlzU3VibW9kdWxlKXt2YXIgZD1uLnN1Ym1vZHVsZVN0YXRlfHx7fSxmPVtdO2QuY29tbWl0Q2hhbmdlZCYmZi5wdXNoKCJcdTY1QjBcdTYzMDdcdTk0ODgiKSxkLmhhc1RyYWNrZWRDaGFuZ2VzJiZmLnB1c2goImRpcnR5IiksZC5oYXNVbnRyYWNrZWQmJmYucHVzaCgiXHU2NzJBXHU4RERGXHU4RTJBIik7dmFyIGM9Zi5sZW5ndGg/InN1Ym1vZHVsZSBceEI3ICIrZi5qb2luKCIgLyAiKToic3VibW9kdWxlIjtsPSc8c3BhbiBjbGFzcz0icWMtc3VibW9kdWxlLWJhZGdlIj4nK3AoYykrIjwvc3Bhbj4ifXJldHVybic8ZGl2IGNsYXNzPSJxYy1maWxlLXJvdyIgdGl0bGU9IicrcChhKSsnIj48c3BhbiBjbGFzcz0icWMtZmlsZS1iYWRnZSBxYy1iYWRnZS0nK2kuY2xzKyciIHRpdGxlPSInK3AoaS50aXRsZSkrJyI+JytwKGkubGV0dGVyKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJxYy1maWxlLXBhdGgiPicrKG8/JzxzcGFuIGNsYXNzPSJxYy1maWxlLWRpciI+JytwKG8pKyI8L3NwYW4+IjoiIikrJzxzcGFuIGNsYXNzPSJxYy1maWxlLW5hbWUiPicrcChzKSsiPC9zcGFuPjwvc3Bhbj4iK2wrIjwvZGl2PiJ9KS5qb2luKCIiKTtyZXR1cm4gdHx8JzxkaXYgY2xhc3M9InFjLWVtcHR5Ij5cdTZDQTFcdTY3MDlcdTUzRUZcdTYzRDBcdTRFQTRcdTc2ODRcdTY1MzlcdTUyQThcdTMwMDI8L2Rpdj4nfWZ1bmN0aW9uIHVpKCl7cmV0dXJuIHIucXVpY2tDb21taXRTdWJtaXR0aW5nfHxyLnF1aWNrQ29tbWl0UHVzaGluZ31mdW5jdGlvbiBvaShlLHQsbixpKXtyZXR1cm4nPGRpdiBjbGFzcz0icWMtcGFpcicrKGk/IiAiK2k6IiIpKyciPjxkaXYgY2xhc3M9InFjLXBhaXItbGFiZWwiPicrcChlKSsnPC9kaXY+PGRpdiBjbGFzcz0icWMtcGFpci1mbG93Ij48ZGl2IGNsYXNzPSJxYy1wYWlyLXZhbHVlIHFjLXBhaXItdmFsdWUtLWZyb20iPicrdCsnPC9kaXY+PGRpdiBjbGFzcz0icWMtcGFpci1hcnJvdyIgYXJpYS1oaWRkZW49InRydWUiPlx1MjE5MjwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItdmFsdWUgcWMtcGFpci12YWx1ZS0tdG8iPicrbisiPC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiB1Yygpe3ZhciBlPXIuZ2l0U3RhdHVzfHx7fTtpZihlLmhhc1N1Ym1vZHVsZT09PSEwKXJldHVybiEwO2Zvcih2YXIgdD1lLmZpbGVzfHxbXSxuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSYmdFtuXS5pc1N1Ym1vZHVsZT09PSEwKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIG9jKGUpe3ZhciB0PSFlfHx1aSgpLG49dWMoKTtpZihyLnF1aWNrQ29tbWl0U3VibWl0dGluZyl7dmFyIGk9ci5xdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudD8iXHVGRjA4XHU1NDJCIHN1Ym1vZHVsZVx1RkYwOSI6IiIsYT0oci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPyJBSSBcdTc1MUZcdTYyMTAgKyBcdTYzRDBcdTRFQTRcdTRFMkRcdTIwMjYiOiJcdTYyNjdcdTg4NENcdTRFMkRcdTIwMjYiKStpO3JldHVybic8ZGl2IGNsYXNzPSJxYy1kb2NrLXdyYXAiPjxkaXYgY2xhc3M9InFjLWRvY2stYnVzeSIgcm9sZT0ic3RhdHVzIj48c3BhbiBjbGFzcz0icWMtZG9jay1idXN5LWRvdCI+PC9zcGFuPicrcChhKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiB1KHMsbCxkKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxYy1jaGlwIHFjLWNoaXAtLScrcysnIiBkYXRhLWNoaXA9IicrcysnIicrKGQ/JyB0aXRsZT0iJytwKGQpKyciJzoiIikrKHQ/IiBkaXNhYmxlZCI6IiIpKyc+PHNwYW4gY2xhc3M9InFjLWNoaXAtZG90IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJxYy1jaGlwLWxhYmVsIj4nK2wrIjwvc3Bhbj48L2J1dHRvbj4ifXZhciBvPXQ/ZT8iIjoiXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwXHVGRjBDXHU2NUUwXHU1M0VGXHU2M0QwXHU0RUE0IjoiXHU2MkQ2XHU1MkE4XHU3OEMxXHU1NDM4XHU3RUM0XHU1NDA4IFx4QjcgXHU0RTIyXHU4RkRCXHU2M0QwXHU0RUE0XHU1MzNBXHU2MjY3XHU4ODRDIFx4QjcgXHU1MzU1XHU1MUZCXHU3NkY0XHU2M0E1XHU2MjY3XHU4ODRDXHU4QkU1XHU5ODc5Iisobj8iIFx4QjcgU3ViIFx1NzQwM1x1NTNFRlx1OTAwOVx1RkYwQ1x1N0VCM1x1NTE2NVx1NTQwRVx1OTAxMlx1NUY1Mlx1NTkwNFx1NzQwNiBzdWJtb2R1bGUiOiIiKTtyZXR1cm4nPGRpdiBjbGFzcz0icWMtZG9jay13cmFwIHFjLWRvY2std3JhcC0tbWFnbmV0aWMiJysodD8nIGRhdGEtZGlzYWJsZWQ9IjEiJzoiIikrJz48ZGl2IGlkPSJxYy1kb2NrLXN0YWdlIiBjbGFzcz0icWMtZG9jay1zdGFnZSIgZGF0YS1hY3Rpb249ImNvbW1pdCIgZGF0YS1ob3Q9IjAiPjxkaXYgaWQ9InFjLWRvY2stZmllbGQiIGNsYXNzPSJxYy1kb2NrLWZpZWxkIj48ZGl2IGlkPSJxYy1kb2NrLWNsdXN0ZXIiIGNsYXNzPSJxYy1kb2NrLWNsdXN0ZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4nK3UoImNvbW1pdCIsIkNvbW1pdCIpK3UoInRhZyIsIlRhZyIpK3UoInB1c2giLCJQdXNoIikrKG4/dSgic3ViIiwiU3ViIiwiXHU2M0QwXHU0RUE0XHU3MjM2XHU0RUQzXHU1RTkzXHU1RTc2XHU5MDEyXHU1RjUyXHU4RkRCXHU1MTY1IHN1Ym1vZHVsZVx1RkYwOGNvbW1pdCAvIHRhZyAvIFx1NTIwNlx1NTIyQlx1NjNBOFx1OTAwMVx1RkYwOSIpOiIiKSsnPC9kaXY+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJxYy1kb2NrLWxhdW5jaCIgY2xhc3M9InFjLWRvY2stbGF1bmNoIicrKHQ/IiBkaXNhYmxlZCI6IiIpKycgYXJpYS1sYWJlbD0iXHU2MjY3XHU4ODRDXHU2M0QwXHU0RUE0Ij48c3BhbiBjbGFzcz0icWMtZG9jay1sYXVuY2gtYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIyIiBoZWlnaHQ9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTUgMTJoMTJNMTMgNmw2IDYtNiA2Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGlkPSJxYy1kb2NrLWxhdW5jaC1sYWJlbCIgY2xhc3M9InFjLWRvY2stbGF1bmNoLWxhYmVsIj5cdTYzRDBcdTRFQTQ8L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0icWMtZG9jay1oaW50Ij4nK3AobykrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gc2MoKXt2YXIgZT1yLnF1aWNrQ29tbWl0UmVzdWx0O2lmKCFlKXJldHVybiIiO3ZhciB0PWUub2xkQ29tbWl0SGFzaD8iPGNvZGU+IitwKGUub2xkQ29tbWl0SGFzaCkrIjwvY29kZT4iKyhlLm9sZENvbW1pdFN1YmplY3Q/IjxzcGFuPiIrcChlLm9sZENvbW1pdFN1YmplY3QpKyI8L3NwYW4+IjoiIik6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwPC9zcGFuPicsbj1lLmNvbW1pdEhhc2g/Ijxjb2RlPiIrcChlLmNvbW1pdEhhc2gpKyI8L2NvZGU+PHNwYW4+IitwKGUuY29tbWl0TWVzc2FnZXx8IiIpKyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTA8L3NwYW4+JyxpPWUub2xkVGFnPyI8Y29kZT4iK3AoZS5vbGRUYWcpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgdGFnPC9zcGFuPicsYT1lLnRhZ05hbWU/Ijxjb2RlPiIrcChlLnRhZ05hbWUpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY3MkFcdTYyNTMgdGFnPC9zcGFuPicsdT1lLnB1c2hlZD8nPHNwYW4gY2xhc3M9InFjLXJlc3VsdC1wdXNoZWQiPlx1NURGMlx1NjNBOFx1OTAwMTwvc3Bhbj4nOic8YnV0dG9uIGlkPSJxdWljay1jb21taXQtcHVzaC1hZnRlci1idG4iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLXNtIiB0eXBlPSJidXR0b24iJysoci5xdWlja0NvbW1pdFB1c2hpbmc/IiBkaXNhYmxlZCI6IiIpKyI+Iisoci5xdWlja0NvbW1pdFB1c2hpbmc/Ilx1NjNBOFx1OTAwMVx1NEUyRC4uLiI6IlB1c2ggJiBDbG9zZSIpKyI8L2J1dHRvbj4iO3JldHVybic8c2VjdGlvbiBjbGFzcz0icWMtcmVzdWx0LXBhbmVsIj4nK29pKCJDb21taXQiLHQsbiwiIikrb2koIlRhZyIsaSxhLCJxYy1wYWlyLS10YWciKSsoZS5wdXNoRXJyb3J8fHIucXVpY2tDb21taXRQdXNoRXJyb3I/JzxwIGNsYXNzPSJlcnJvci1tZXNzYWdlIj4nK3AoZS5wdXNoRXJyb3J8fHIucXVpY2tDb21taXRQdXNoRXJyb3IpKyI8L3A+IjoiIikrJzxkaXYgY2xhc3M9InFjLXJlc3VsdC1hY3Rpb25zIj48YnV0dG9uIGlkPSJxdWljay1jb21taXQtY2FuY2VsLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTE3M1x1OTVFRDwvYnV0dG9uPicrdSsiPC9kaXY+PC9zZWN0aW9uPiJ9ZnVuY3Rpb24gQ28oKXt2YXIgZT1yLmdpdFN0YXR1c3x8e30sdD1yLnF1aWNrQ29tbWl0Rm9ybXx8e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0sbj0oZS5tb2RpZmllZENvdW50fHwwKT4wLGk9ci5xdWlja0NvbW1pdEdlbmVyYXRpbmcsYT1lLmxhc3RDb21taXR8fHt9LHU9YS5zaG9ydEhhc2g/Ijxjb2RlPiIrcChhLnNob3J0SGFzaCkrIjwvY29kZT48c3Bhbj4iK3AoYS5zdWJqZWN0fHwiIikrIjwvc3Bhbj4iOmUuaGVhZD8iPGNvZGU+IitwKGUuaGVhZC5zdWJzdHJpbmcoMCw3KSkrIjwvY29kZT4iOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMCBjb21taXQ8L3NwYW4+JyxvPWUubGF0ZXN0VGFnPyI8Y29kZT4iK3AoZS5sYXRlc3RUYWcpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgdGFnPC9zcGFuPicscz0nPGlucHV0IHR5cGU9InRleHQiIGlkPSJxdWljay1jb21taXQtdGFnIiBjbGFzcz0iZmllbGQtaW5wdXQgcWMtdGFnLWZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU3NTU5XHU3QTdBXHU1MjE5IEFJIFx1NzUxRlx1NjIxMCIgdmFsdWU9IicrcCh0LnRhZ3x8IiIpKyciJysoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc/IiBkaXNhYmxlZCI6IiIpKyI+IixsPSc8dGV4dGFyZWEgaWQ9InF1aWNrLWNvbW1pdC1tZXNzYWdlIiBjbGFzcz0iZmllbGQtaW5wdXQgcWMtbWVzc2FnZS1pbnB1dCIgcm93cz0iMyIgcGxhY2Vob2xkZXI9Ik5ldyBjb21taXQgbWVzc2FnZSIgJysoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc/ImRpc2FibGVkIjoiIikrIj4iK3AodC5jdXN0b21NZXNzYWdlfHwiIikrIjwvdGV4dGFyZWE+IixkPVtdO2QucHVzaChlLmJyYW5jaHx8IihubyBicmFuY2gpIiksZC5wdXNoKG4/KGUubW9kaWZpZWRDb3VudHx8MCkrIiBcdTRFMkFcdTY1MzlcdTUyQTgiOiJcdTVERTVcdTRGNUNcdTUzM0FcdTVFNzJcdTUxQzAiKSx0eXBlb2YgZS5haGVhZD09Im51bWJlciImJmUuYWhlYWQ+MCYmZC5wdXNoKCJcdTIxOTEiK2UuYWhlYWQpLHR5cGVvZiBlLmJlaGluZD09Im51bWJlciImJmUuYmVoaW5kPjAmJmQucHVzaCgiXHUyMTkzIitlLmJlaGluZCk7dmFyIGY9ci5xdWlja0NvbW1pdFJlc3VsdD8iIjonPHNlY3Rpb24gY2xhc3M9InFjLXJlbGVhc2UtcGFuZWwiPjxkaXYgY2xhc3M9InFjLW1lc3NhZ2UtaGVhZGVyIj48c3BhbiBjbGFzcz0icWMtc2VjdGlvbi10aXRsZSI+TmV3PC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icXVpY2stY29tbWl0LWFpLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHFjLWFpLWJ0biInKyhpPyIgZGlzYWJsZWQiOiIiKSsnIHRpdGxlPSJBSSBcdTc1MUZcdTYyMTAgY29tbWl0IG1lc3NhZ2UgXHU0RTBFIHRhZyI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDEuNWwxLjQgMy42TDEzIDYuNSA5LjQgNy45IDggMTEuNSA2LjYgNy45IDMgNi41bDMuNi0xLjRMOCAxLjV6TTEyLjUgMTAuNWwuNyAxLjggMS44LjctMS44LjctLjcgMS44LS43LTEuOC0xLjgtLjcgMS44LS43LjctMS44eiIgZmlsbD0iY3VycmVudENvbG9yIi8+PC9zdmc+PHNwYW4+JysoaT8iXHU3NTFGXHU2MjEwXHU0RTJELi4uIjoiQUkiKSsiPC9zcGFuPjwvYnV0dG9uPjwvZGl2PiIrb2koIkNvbW1pdCIsdSxsLCJxYy1wYWlyLS1jb21taXQiKStvaSgiVGFnIixvLHMsInFjLXBhaXItLXRhZyIpKyhyLnF1aWNrQ29tbWl0RXJyb3I/JzxwIGNsYXNzPSJlcnJvci1tZXNzYWdlIj4nK3Aoci5xdWlja0NvbW1pdEVycm9yKSsiPC9wPiI6IiIpK29jKG4pKyc8ZGl2IGNsYXNzPSJxYy1tb2RhbC1hY3Rpb25zIj48YnV0dG9uIGlkPSJxdWljay1jb21taXQtY2FuY2VsLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTNENlx1NkQ4ODwvYnV0dG9uPjwvZGl2Pjwvc2VjdGlvbj4nLGM9c2MoKTtyZXR1cm4nPHNlY3Rpb24gaWQ9InF1aWNrLWNvbW1pdC1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wJysoci5xdWlja0NvbW1pdE9wZW4/IiI6IiBoaWRkZW4iKSsnIj48ZGl2IGNsYXNzPSJtb2RhbCBxdWljay1jb21taXQtbW9kYWwiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1jb21taXQtdGl0bGUiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgaWQ9InF1aWNrLWNvbW1pdC10aXRsZSIgY2xhc3M9Im1vZGFsLXRpdGxlIj5cdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTQ8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSI+JytwKGQuam9pbigiIFx4QjcgIikpKyc8L3A+PC9kaXY+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNsb3NlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPicrZitjKyI8L2Rpdj48L2Rpdj48L3NlY3Rpb24+In1mdW5jdGlvbiBsYygpe3JldHVybic8c2VjdGlvbiBpZD0id29ya3RyZWUtbWVyZ2UtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIHdvcmt0cmVlLW1lcmdlLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU1NDA4XHU1RTc2IFdvcmt0cmVlPC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPlx1NjhDMFx1NjdFNVx1NUY1M1x1NTI0RFx1NEVGQlx1NTJBMVx1NTIwNlx1NjUyRlx1NUU3Nlx1NUZFQlx1NjM3N1x1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRlx1MzAwMjwvcD48L2Rpdj48YnV0dG9uIGlkPSJjbG9zZS13b3JrdHJlZS1tZXJnZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij48ZGl2IGlkPSJ3b3JrdHJlZS1tZXJnZS1jb250ZW50IiBjbGFzcz0id29ya3RyZWUtbWVyZ2UtY29udGVudCI+PC9kaXY+PHAgaWQ9Indvcmt0cmVlLW1lcmdlLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1hY3Rpb25zIj48YnV0dG9uIGlkPSJ3b3JrdHJlZS1tZXJnZS1jYW5jZWwtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiPlx1NTNENlx1NkQ4ODwvYnV0dG9uPjxidXR0b24gaWQ9Indvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij5cdTc4NkVcdThCQTRcdTU0MDhcdTVFNzZcdTVFNzZcdTZFMDVcdTc0MDY8L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBkYygpe3JldHVybic8c2VjdGlvbiBpZD0ic2V0dGluZ3MtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIHNldHRpbmdzLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIgc2V0dGluZ3MtbW9kYWwtaGVhZGVyIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RhbC10aXRsZS1ncm91cCI+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU4QkJFXHU3RjZFPC9oMj48cCBjbGFzcz0ic2V0dGluZ3MtbW9kYWwtc3VidGl0bGUiPlx1OEMwM1x1NjU3NFx1NUU5NFx1NzUyOFx1OTE0RFx1N0Y2RVx1MzAwMVx1OTAxQVx1NzdFNVx1MzAwMVx1NUI4OVx1NTE2OFx1NTQ4Q1x1NjYzRVx1NzkzQVx1NTA0Rlx1NTk3RDwvcD48L2Rpdj48YnV0dG9uIGlkPSJjbG9zZS1zZXR0aW5ncy1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IHNldHRpbmdzLW1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9InNldHRpbmdzLWxheW91dCI+PGFzaWRlIGNsYXNzPSJzZXR0aW5ncy1zaWRlYmFyIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zaWRlYmFyLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci10aXRsZSI+XHU1MDRGXHU1OTdEXHU4QkJFXHU3RjZFPC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci1oaW50Ij5cdTVERTZcdTRGQTdcdTUyMDdcdTYzNjJcdTUyMDZcdTUzM0FcdUZGMENcdTUzRjNcdTRGQTdcdTY3RTVcdTc3MEJcdThCRTZcdTdFQzZcdThCRjRcdTY2MEVcdTRFMEVcdTkwMDlcdTk4NzlcdTMwMDI8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10YWJzIiByb2xlPSJ0YWJsaXN0IiBhcmlhLWxhYmVsPSJcdThCQkVcdTdGNkVcdTUyMDZcdTdFQzQiIGFyaWEtb3JpZW50YXRpb249InZlcnRpY2FsIj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIgYWN0aXZlIiBkYXRhLXRhYj0iYWJvdXQiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWFib3V0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NTE3M1x1NEU4RTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NzI0OFx1NjcyQ1x1MzAwMVx1NjZGNFx1NjVCMFx1NEUwRVx1OEZERVx1NjNBNVx1NjVCOVx1NUYwRjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJnZW5lcmFsIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItZ2VuZXJhbCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTU3RkFcdTY3MkNcdTkxNERcdTdGNkU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTZBMjFcdTU3OEJcdTMwMDFcdTZBMjFcdTVGMEZcdTRFMEVcdThGRDBcdTg4NENcdTczQUZcdTU4ODM8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0ibm90aWZpY2F0aW9ucyIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLW5vdGlmaWNhdGlvbnMiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU5MDFBXHU3N0U1PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU2M0QwXHU3OTNBXHU5N0YzXHU0RTBFXHU2RDRGXHU4OUM4XHU1NjY4XHU5MDFBXHU3N0U1PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9InNlY3VyaXR5IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItc2VjdXJpdHkiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1Qjg5XHU1MTY4PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU1QkM2XHU3ODAxXHU0RTBFXHU4QkMxXHU0RTY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9InByZXNldHMiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1wcmVzZXRzIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NjdFNVx1NzcwQlx1NURGMlx1NjcwOVx1OTg4NFx1OEJCRTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJkaXNwbGF5IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItZGlzcGxheSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTY2M0VcdTc5M0E8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTg4NENcdTRFM0E8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9hc2lkZT48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCBhY3RpdmUiIGlkPSJzZXR0aW5ncy10YWItYWJvdXQiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NTE3M1x1NEU4RSBXYW5kPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU2N0U1XHU3NzBCXHU3MjQ4XHU2NzJDXHU0RkUxXHU2MDZGXHUzMDAxXHU2NkY0XHU2NUIwXHU3MkI2XHU2MDAxXHU1NDhDIEFuZHJvaWQgQXBwIFx1OEZERVx1NjNBNVx1NjVCOVx1NUYwRlx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1pbmZvIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1MzA1XHU1NDBEPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLXBrZy1uYW1lIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTVGNTNcdTUyNERcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtdmVyc2lvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+Tm9kZS5qcyBcdTg5ODFcdTZDNDI8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3Mtbm9kZS1yZXEiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NEVEM1x1NUU5M1x1NTczMFx1NTc0MDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1yZXBvLXVybCI+PGEgaHJlZj0iIyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPi08L2E+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIiBpZD0id2ViLXVwZGF0ZS1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigiZ2xvYmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5XZWIgXHU3QUVGPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NkQ0Rlx1ODlDOFx1NTY2OFx1OEJCRlx1OTVFRVx1NzY4NFx1NjcwRFx1NTJBMVx1NzI0OFx1NjcyQzwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU2NzAwXHU2NUIwXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNoZWNrLXVwZGF0ZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iPlx1NjhDMFx1NjdFNVx1NjZGNFx1NjVCMDwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iZG8tdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIj5cdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDg8L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImRvLXJlc3RhcnQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbSBoaWRkZW4iPlx1OTFDRFx1NTQyRlx1NzUxRlx1NjU0ODwvYnV0dG9uPjwvZGl2PjxwIGlkPSJ1cGRhdGUtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPkJldGEgXHU5MDFBXHU5MDUzPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU2NkY0XHU2NUIwXHU1MjMwIG5wbSBiZXRhIFx1NzI0OFx1NjcyQ1x1RkYwOHRhZyArIGNvbW1pdCBcdTVDM0VcdTY4MDdcdUZGMDlcdUZGMENcdTVDMURcdTlDOUNcdTY1QjBcdTUyOUZcdTgwRkRcdUZGMENcdTUzRUZcdTgwRkRcdTRFMERcdTdBMzNcdTVCOUFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImJldGEtY2hhbm5lbC10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NjhDMFx1NkQ0Qlx1NTIzMFx1NjVCMFx1NzI0OFx1NjcyQ1x1NUMwNlx1ODFFQVx1NTJBOFx1NEUwQlx1OEY3RFx1NUI4OVx1ODhDNVx1NUU3Nlx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiBoaWRkZW4iIGlkPSJhbmRyb2lkLWFway1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigic21hcnRwaG9uZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPkFuZHJvaWQgQXBwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NTM5Rlx1NzUxRlx1NUJBMlx1NjIzN1x1N0FFRlx1NzI0OFx1NjcyQ1x1NEUwRSBBUEsgXHU0RTBCXHU4RjdEPC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXBrLWN1cnJlbnQtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTVGNTNcdTUyNERcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtYW5kcm9pZC1hcGstY3VycmVudCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWFway1naXRodWItcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1N0VCRlx1NEUwQVx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWdpdGh1YiI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1naXRodWItYXBrLWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU0RTBCXHU4RjdEPC9idXR0b24+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hcGstbG9jYWwtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcyQ1x1NTczMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWxvY2FsIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWxvY2FsLWFway1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXV0by11cGRhdGUtcm93IiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIiBpZD0iYW5kcm9pZC1hdXRvLXVwZGF0ZS1oaW50Ij5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDggQVBLIFx1NjVGNlx1ODFFQVx1NTJBOFx1NjJDOVx1OEQ3N1x1NEUwQlx1OEY3RFx1RkYwQ1x1NUI4OVx1ODhDNVx1NEVDRFx1OTcwMFx1NTcyOFx1N0NGQlx1N0VERlx1NEUyRFx1Nzg2RVx1OEJBNFx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48cCBpZD0iYW5kcm9pZC1hcGstbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24gaGlkZGVuIiBpZD0ibWFjb3MtZG1nLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJkZXNrdG9wIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+bWFjT1MgQXBwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NTM5Rlx1NzUxRlx1NUJBMlx1NjIzN1x1N0FFRlx1NzI0OFx1NjcyQ1x1NEUwRSBETUcgXHU0RTBCXHU4RjdEPC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1jdXJyZW50LXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1jdXJyZW50Ij4tPC9zcGFuPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1naXRodWItcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1N0VCRlx1NEUwQVx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1naXRodWIiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtZ2l0aHViLWRtZy1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1sb2NhbC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgc2V0dGluZ3MtYWJvdXQtcm93LWFjdGlvbiBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU2NzJDXHU1NzMwXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSBzZXR0aW5ncy12YWx1ZS1mbGV4IiBpZD0ic2V0dGluZ3MtbWFjb3MtZG1nLWxvY2FsIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWxvY2FsLWRtZy1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWF1dG8tdXBkYXRlLXJvdyIgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3cgaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyIgaWQ9Im1hY29zLWF1dG8tdXBkYXRlLWhpbnQiPlx1NjhDMFx1NkQ0Qlx1NTIzMFx1NjVCMFx1NzI0OCBETUcgXHU1QzA2XHU4MUVBXHU1MkE4XHU0RTBCXHU4RjdEXHU1RTc2XHU2MzAyXHU4RjdEXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhdXRvLXVwZGF0ZS1kbWctdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxwIGlkPSJtYWNvcy1kbWctbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24iIGlkPSJhbmRyb2lkLWNvbm5lY3Qtc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoImxpbmsiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5BcHAgXHU4RkRFXHU2M0E1XHU3ODAxPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1N0M5OFx1OEQzNFx1NTIzMCBBbmRyb2lkIEFwcCBcdTUzNzNcdTUzRUZcdTgxRUFcdTUyQThcdThGREVcdTYzQTVcdUZGMENcdTY1RTBcdTk3MDBcdTVCQzZcdTc4MDFcdUZGMUJcdTY1MzlcdTVCQzZcdTc4MDFcdTU0MEVcdTU5MzFcdTY1NDhcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC11cmwtYm94Ij48Y29kZSBpZD0iYW5kcm9pZC1jb25uZWN0LWNvZGUiIGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXVybC10ZXh0Ij4tPC9jb2RlPjxidXR0b24gaWQ9ImNvcHktY29ubmVjdC1jb2RlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1OTBEXHU1MjM2XHU4RkRFXHU2M0E1XHU3ODAxIj5cdTU5MERcdTUyMzY8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWJveCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci13cmFwIiBpZD0iYW5kcm9pZC1jb25uZWN0LXFyLXdyYXAiIHRpdGxlPSJcdTcwQjlcdTUxRkJcdTY1M0VcdTU5MjciPjxjYW52YXMgaWQ9ImFuZHJvaWQtY29ubmVjdC1xciIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIxODAiPjwvY2FudmFzPjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItZW1wdHkiIGlkPSJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiPlx1NzUxRlx1NjIxMFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWhpbnQiPlx1NzUyOCBXYW5kIEFwcCBcdTYyNkJcdTRFMDBcdTYyNkJcdUZGMENcdTUzNzNcdTUzRUZcdTRFMDBcdTk1MkVcdTU4NkJcdTUxNjVcdTY3MERcdTUyQTFcdTU2NjhcdTU3MzBcdTU3NDBcdTRFMEVcdThGREVcdTYzQTVcdTc4MDFcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItbm90aWZpY2F0aW9ucyIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU5MDFBXHU3N0U1PC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU4QkJFXHU3RjZFXHU2M0QwXHU3OTNBXHU5N0YzXHUzMDAxXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1NDhDXHU2RDRGXHU4OUM4XHU1NjY4XHU5MDFBXHU3N0U1XHU3Njg0XHU4ODRDXHU0RTNBXHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigiYmVsbCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1OTAxQVx1NzdFNVx1NTA0Rlx1NTk3RDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTYzRDBcdTc5M0FcdTk3RjNcdTRFMEVcdTVFOTRcdTc1MjhcdTUxODVcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTE8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1ub3RpZi1zb3VuZCI+XHU2NEFEXHU2NTNFXHU2M0QwXHU3OTNBXHU5N0YzPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1OTFDRFx1ODk4MVx1OTAxQVx1NzdFNVx1RkYwOFx1NzI0OFx1NjcyQ1x1NjZGNFx1NjVCMFx1MzAwMVx1Njc0M1x1OTY1MFx1N0I0OVx1NUY4NVx1N0I0OVx1RkYwOVx1NjVGNlx1NjRBRFx1NjUzRVx1NjdENFx1NTQ4Q1x1NjNEMFx1NzkzQVx1OTdGM1x1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctbm90aWYtc291bmQiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcmFuZ2Utcm93IiBpZD0ibm90aWYtdm9sdW1lLWZpZWxkIj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXJhbmdlLWxhYmVsIiBmb3I9ImNmZy1ub3RpZi12b2x1bWUiPlx1OTdGM1x1OTFDRjwvbGFiZWw+PGlucHV0IGlkPSJjZmctbm90aWYtdm9sdW1lIiB0eXBlPSJyYW5nZSIgbWluPSIwIiBtYXg9IjEwMCIgc3RlcD0iNSIgY2xhc3M9InNldHRpbmdzLXJhbmdlIiAvPjxzcGFuIGlkPSJjZmctbm90aWYtdm9sdW1lLXZhbCIgY2xhc3M9InNldHRpbmdzLXJhbmdlLXZhbHVlIj44MCU8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1ub3RpZi1idWJibGUiPlx1NUU5NFx1NzUyOFx1NTE4NVx1OTAxQVx1NzdFNVx1NkMxNFx1NkNFMTwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTU3MjhcdTk4NzVcdTk3NjJcdTk4NzZcdTkwRThcdTVGMzlcdTUxRkFcdTZENkVcdTUyQThcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLWJ1YmJsZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJuYXRpdmUtc291bmQtc2VjdGlvbiIgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoIm11c2ljIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+XHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU5NEMzXHU1OEYwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1OTAwOVx1NjJFOSBBbmRyb2lkIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NEY3Rlx1NzUyOFx1NzY4NFx1OTRDM1x1NThGMDwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24iPjxzZWxlY3QgaWQ9Im5hdGl2ZS1zb3VuZC1zZWxlY3QiIGNsYXNzPSJmaWVsZC1pbnB1dCBmaWVsZC1zZWxlY3QiPjwvc2VsZWN0PjxidXR0b24gaWQ9Im5hdGl2ZS1zb3VuZC1wcmV2aWV3IiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGJ0bi13aXRoLWljb24iIHR5cGU9ImJ1dHRvbiI+JytWKCJwbGF5Iix7c2l6ZToxMSxzdHJva2VXaWR0aDoxLjgsZmlsbDoiY3VycmVudENvbG9yIn0pKyc8c3Bhbj5cdThCRDVcdTU0MkM8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmF0aXZlLWhhcHRpYy1zZWN0aW9uIiBjbGFzcz0ic2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24gaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigidmlicmF0ZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1ODlFNlx1NjExRlx1NTNDRFx1OTk4ODwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTYzMDlcdTk0QUVcdTY0Q0RcdTRGNUNcdTU0OENcdTRFRkJcdTUyQTFcdTVCOENcdTYyMTBcdTY1RjZcdTYzRDBcdTRGOUJcdTYzMkZcdTUyQThcdTUzQ0RcdTk5ODg8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1oYXB0aWMtZW5hYmxlZCI+XHU1NDJGXHU3NTI4XHU4OUU2XHU2MTFGXHU1M0NEXHU5OTg4PC9sYWJlbD48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaGFwdGljLWVuYWJsZWQiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJnbG9iZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNTwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTY3NjVcdTgxRUFcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTRFMkRcdTVGQzNcdTc2ODRcdTVGMzlcdTdBOTc8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjM4OFx1Njc0M1x1NzJCNlx1NjAwMTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJub3RpZmljYXRpb24tcGVybWlzc2lvbi1zdGF0dXMiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLWFjdGlvbnMiPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi1yZXF1ZXN0LWJ0biIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NjM4OFx1Njc0M1x1OTAxQVx1NzdFNTwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi1yZXNldC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU5MUNEXHU2NUIwXHU2Mzg4XHU2NzQzPC9idXR0b24+PGJ1dHRvbiBpZD0ibm90aWZpY2F0aW9uLXRlc3QtYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTNEMVx1OTAwMVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNTwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPjEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1nZW5lcmFsIiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTU3RkFcdTY3MkNcdTkxNERcdTdGNkU8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTkxNERcdTdGNkVcdTY3MERcdTUyQTFcdThGREVcdTYzQTVcdTMwMDFcdTlFRDhcdThCQTRcdTZBMjFcdTU3OEJcdTMwMDFcdTYyNjdcdTg4NENcdTY1QjlcdTVGMEZcdTU0OENcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQtcm93Ij48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctaG9zdCI+XHU3NkQxXHU1NDJDXHU1NzMwXHU1NzQwIChob3N0KTwvbGFiZWw+PGlucHV0IGlkPSJjZmctaG9zdCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iMTI3LjAuMC4xIiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1wb3J0Ij5cdTdBRUZcdTUzRTMgKHBvcnQpPC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1wb3J0IiB0eXBlPSJudW1iZXIiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ijg0NDMiIG1pbj0iMSIgbWF4PSI2NTUzNSIgLz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLWh0dHBzIj5cdTU0MkZcdTc1MjggSFRUUFM8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU0RjdGXHU3NTI4XHU4MUVBXHU3QjdFXHU1NDBEXHU4QkMxXHU0RTY2XHU1MkEwXHU1QkM2XHU2RDRGXHU4OUM4XHU1NjY4XHU1MjMwXHU2NzBEXHU1MkExXHU3Njg0XHU4RkRFXHU2M0E1XHVGRjBDaG9zdCBcdTRFM0FcdTk3NUUgMTI3LjAuMC4xIFx1NjVGNlx1NUVGQVx1OEJBRVx1NUYwMFx1NTQyRlx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaHR0cHMiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQtcm93Ij48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctbW9kZSI+XHU5RUQ4XHU4QkE0XHU2MjY3XHU4ODRDXHU2QTIxXHU1RjBGPC9sYWJlbD48c2VsZWN0IGlkPSJjZmctbW9kZSIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSJkZWZhdWx0Ij5kZWZhdWx0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXNzaXN0Ij5hc3Npc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZ2VudCI+YWdlbnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZ2VudC1tYXgiPmFnZW50LW1heDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImF1dG8tZWRpdCI+YXV0by1lZGl0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZnVsbC1hY2Nlc3MiPmZ1bGwtYWNjZXNzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibmF0aXZlIj5uYXRpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJtYW5hZ2VkIj5tYW5hZ2VkPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWxhbmd1YWdlIj5cdTU2REVcdTU5MERcdThCRURcdThBMDA8L2xhYmVsPjxzZWxlY3QgaWQ9ImNmZy1sYW5ndWFnZSIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSIiPlx1ODFFQVx1NTJBOFx1RkYwOFx1NEUwRFx1NjMwN1x1NUI5QVx1RkYwOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1NEUyRFx1NjU4NyI+XHU0RTJEXHU2NTg3PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRW5nbGlzaCI+RW5nbGlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1NjVFNVx1NjcyQ1x1OEE5RSI+XHU2NUU1XHU2NzJDXHU4QTlFPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iXHVENTVDXHVBRDZEXHVDNUI0Ij5cdUQ1NUNcdUFENkRcdUM1QjQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJFc3BhXHhGMW9sIj5Fc3BhXHhGMW9sPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRnJhblx4RTdhaXMiPkZyYW5ceEU3YWlzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRGV1dHNjaCI+RGV1dHNjaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOSI+XHUwNDIwXHUwNDQzXHUwNDQxXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDM5PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PC9kaXY+PHAgY2xhc3M9ImZpZWxkLWhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOi00cHg7Ij5cdThCQkVcdTdGNkVcdTU2REVcdTU5MERcdThCRURcdThBMDBcdTU0MEVcdUZGMENDbGF1ZGUgXHU1QzA2XHU1QzNEXHU5MUNGXHU0RjdGXHU3NTI4XHU2MzA3XHU1QjlBXHU4QkVEXHU4QTAwXHU1NkRFXHU1OTBEXHUzMDAyPC9wPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciI+XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREIFJ1bm5lcjwvbGFiZWw+PHNlbGVjdCBpZD0iY2ZnLXN0cnVjdHVyZWQtcnVubmVyIiBjbGFzcz0iZmllbGQtaW5wdXQiPjxvcHRpb24gdmFsdWU9InNkayI+U0RLXHVGRjA4QGFudGhyb3BpYy1haS9jbGF1ZGUtYWdlbnQtc2RrXHVGRjBDXHU5RUQ4XHU4QkE0XHVGRjA5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2xpIj5DTElcdUZGMDhzcGF3biBjbGF1ZGUgLXBcdUZGMDk8L29wdGlvbj48L3NlbGVjdD48cCBjbGFzcz0iZmllbGQtaGludCIgc3R5bGU9Im1hcmdpbi10b3A6NHB4OyI+U0RLIFx1NkEyMVx1NUYwRlx1NEY3Rlx1NzUyOFx1NUI5OFx1NjVCOSBBZ2VudCBTREsgXHU2NkZGXHU0RUUzIENMSSBzdWJwcm9jZXNzXHVGRjBDXHU2M0E1XHU1M0UzXHU2NkY0XHU2NTc0XHU2RDAxXHVGRjBDXHU1MjlGXHU4MEZEXHU3QjQ5XHU0RUY3XHUzMDAyXHU0RkREXHU1QjU4XHU1NDBFXHU1QkY5XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU3QUNCXHU1MzczXHU3NTFGXHU2NTQ4XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctaW5oZXJpdC1lbnYiPlx1N0VFN1x1NjI3Rlx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRjwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTU0MkZcdTUyQTggUFRZIC8gXHU3RUQzXHU2Nzg0XHU1MzE2XHU1QjUwXHU4RkRCXHU3QTBCXHU2NUY2XHVGRjBDXHU2MjhBXHU1RjUzXHU1MjREXHU2NzBEXHU1MkExXHU4RkRCXHU3QTBCXHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGXHU0RjIwXHU3RUQ5IGNsYXVkZSAvIGNvZGV4XHUzMDAyXHU1MTczXHU5NUVEXHU1NDBFXHU1QjUwXHU4RkRCXHU3QTBCXHU0RUM1XHU4M0I3XHU1Rjk3XHU2NzAwXHU1QzBGXHU1M0VGXHU3NTI4XHU3M0FGXHU1ODgzXHVGRjA4UEFUSC9IT01FL1NIRUxML0xBTkcvVEVSTSBcdTdCNDlcdUZGMDlcdUZGMENcdTUzRUZcdTc1MjhcdTRFOEVcdTk2OTRcdTc5QkIgQVBJIGtleSBcdTdCNDlcdTY1NEZcdTYxMUZcdTUxRURcdTYzNkVcdTMwMDI8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWFzaWRlIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNmZy12aWV3LWVudi1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTVCOUVcdTk2NDVcdTRGMUFcdTZDRThcdTUxNjVcdTUyMzBcdTVCNTBcdThGREJcdTdBMEJcdTc2ODRcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0YiPlx1NjdFNVx1NzcwQjwvYnV0dG9uPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1pbmhlcml0LWVudiIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48c2VjdGlvbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZCIgYXJpYS1sYWJlbGxlZGJ5PSJzZXR0aW5ncy1tb2RlbC1jYXJkLXRpdGxlIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1jYXJkLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkaW5nIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytWKCJjcHUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PGRpdj48aDQgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtdGl0bGUiIGlkPSJzZXR0aW5ncy1tb2RlbC1jYXJkLXRpdGxlIj5cdTlFRDhcdThCQTRcdTZBMjFcdTU3OEI8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1jYXJkLWRlc2MiPlx1NEVDRVx1NURGMlx1NjhDMFx1NkQ0Qlx1NTIxN1x1ODg2OFx1NEUyRFx1OTAwOVx1NjJFOVx1RkYwQ1x1NjIxNlx1NzZGNFx1NjNBNVx1OEY5M1x1NTE2NVx1ODFFQVx1NUI5QVx1NEU0OVx1NkEyMVx1NTc4Qlx1NTQwRFx1NzlGMCAvIElEXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2ZnLWRlZmF1bHQtbW9kZWwtcmVmcmVzaCIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBzZXR0aW5ncy1tb2RlbC1yZWZyZXNoIiB0aXRsZT0iXHU5MUNEXHU2NUIwXHU2OEMwXHU2RDRCIENsYXVkZSBcdTRFMEUgQ29kZXggXHU2QTIxXHU1NzhCIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMjAgMTFhOC4xIDguMSAwIDAgMC0xNS41LTJNNCA0djVoNSIvPjxwYXRoIGQ9Ik00IDEzYTguMSA4LjEgMCAwIDAgMTUuNSAyTTIwIDIwdi01aC01Ii8+PC9zdmc+PHNwYW4+XHU1MjM3XHU2NUIwXHU1MjE3XHU4ODY4PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWdyaWQiPjxkaXYgY2xhc3M9ImZpZWxkIHNldHRpbmdzLW1vZGVsLWZpZWxkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1sYWJlbC1yb3ciPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWRlZmF1bHQtbW9kZWwiPkNsYXVkZTwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXByb3ZpZGVyIj5DbGF1ZGUgQ29kZTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveCIgZGF0YS1wcm92aWRlcj0iY2xhdWRlIj48ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveC1jb250cm9sIj48aW5wdXQgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsIiBjbGFzcz0iZmllbGQtaW5wdXQgbW9kZWwtY29tYm9ib3gtaW5wdXQiIHR5cGU9InRleHQiIHJvbGU9ImNvbWJvYm94IiBhcmlhLWF1dG9jb21wbGV0ZT0ibGlzdCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImNmZy1kZWZhdWx0LW1vZGVsLWxpc3Rib3giIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ibm9uZSIgYXV0b2NvcnJlY3Q9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIHBsYWNlaG9sZGVyPSJcdThEREZcdTk2OEYgQ2xhdWRlIENvZGUgXHU5RUQ4XHU4QkE0IiAvPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtdG9nZ2xlIiBhcmlhLWxhYmVsPSJcdTVDNTVcdTVGMDAgQ2xhdWRlIFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcgMTAgNSA1IDUtNSIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLWxpc3Rib3giIGNsYXNzPSJtb2RlbC1jb21ib2JveC1tZW51IGhpZGRlbiIgcm9sZT0ibGlzdGJveCIgYXJpYS1sYWJlbD0iQ2xhdWRlIFx1NkEyMVx1NTc4QiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbWV0YSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXN0YXR1cyIgZGF0YS1tb2RlbC1zdGF0dXM9ImNsYXVkZSI+XHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQ8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWhlbHAiPlx1NEYxQVx1NTM5Rlx1NjgzN1x1NEYyMFx1N0VEOSA8Y29kZT4tLW1vZGVsPC9jb2RlPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCBzZXR0aW5ncy1tb2RlbC1maWVsZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93Ij48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIj5Db2RleDwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXByb3ZpZGVyIj5Db2RleCBDTEk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3giIGRhdGEtcHJvdmlkZXI9ImNvZGV4Ij48ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveC1jb250cm9sIj48aW5wdXQgaWQ9ImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIiBjbGFzcz0iZmllbGQtaW5wdXQgbW9kZWwtY29tYm9ib3gtaW5wdXQiIHR5cGU9InRleHQiIHJvbGU9ImNvbWJvYm94IiBhcmlhLWF1dG9jb21wbGV0ZT0ibGlzdCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsLWxpc3Rib3giIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ibm9uZSIgYXV0b2NvcnJlY3Q9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIHBsYWNlaG9sZGVyPSJcdThEREZcdTk2OEYgQ29kZXggXHU5RUQ4XHU4QkE0IiAvPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtdG9nZ2xlIiBhcmlhLWxhYmVsPSJcdTVDNTVcdTVGMDAgQ29kZXggXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4Ij48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJtNyAxMCA1IDUgNS01Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iY2ZnLWRlZmF1bHQtY29kZXgtbW9kZWwtbGlzdGJveCIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LW1lbnUgaGlkZGVuIiByb2xlPSJsaXN0Ym94IiBhcmlhLWxhYmVsPSJDb2RleCBcdTZBMjFcdTU3OEIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1zdGF0dXMiIGRhdGEtbW9kZWwtc3RhdHVzPSJjb2RleCI+XHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQ8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWhlbHAiPlx1NzU1OVx1N0E3QVx1NTIxOVx1NEUwRFx1NEYyMFx1NkEyMVx1NTc4Qlx1NTNDMlx1NjU3MDwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCBzZXR0aW5ncy1tb2RlbC12ZXJzaW9uIiBpZD0iY2ZnLWRlZmF1bHQtbW9kZWwtdmVyc2lvbiI+XHU2QTIxXHU1NzhCXHU1NDBEXHU3OUYwXHU0RUM1XHU1NzI4XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU2NUY2XHU0RjVDXHU0RTNBXHU5RUQ4XHU4QkE0XHU1MDNDXHVGRjFCXHU4RkQwXHU4ODRDXHU0RTJEXHU3Njg0XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHU0RUNEXHU1M0VGXHU1MzU1XHU3MkVDXHU1MjA3XHU2MzYyXHUzMDAyPC9wPjwvc2VjdGlvbj48c2VjdGlvbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZCIgYXJpYS1sYWJlbGxlZGJ5PSJzZXR0aW5ncy1jb21taXQtbW9kZWwtY2FyZC10aXRsZSI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGluZyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrVigiZWRpdCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48ZGl2PjxoNCBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC10aXRsZSIgaWQ9InNldHRpbmdzLWNvbW1pdC1tb2RlbC1jYXJkLXRpdGxlIj5Db21taXQgXHU3NTFGXHU2MjEwPC9oND48cCBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1kZXNjIj5cdTYzMDdcdTVCOUFcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTRcdTc1MUZcdTYyMTAgbWVzc2FnZSBcdTRFMEUgdGFnIFx1NjVGNlx1NEY3Rlx1NzUyOFx1NzY4NCBDTEkgXHU1NDhDXHU2QTIxXHU1NzhCXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2ZnLWNvbW1pdC1tb2RlbC1yZWZyZXNoIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIHNldHRpbmdzLW1vZGVsLXJlZnJlc2giIHRpdGxlPSJcdTkxQ0RcdTY1QjBcdTY4QzBcdTZENEJcdTYyNDBcdTkwMDkgQ0xJIFx1NzY4NFx1NkEyMVx1NTc4QiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIwIDExYTguMSA4LjEgMCAwIDAtMTUuNS0yTTQgNHY1aDUiLz48cGF0aCBkPSJNNCAxM2E4LjEgOC4xIDAgMCAwIDE1LjUgMk0yMCAyMHYtNWgtNSIvPjwvc3ZnPjxzcGFuPlx1NTIzN1x1NjVCMFx1NTIxN1x1ODg2ODwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1ncmlkIj48ZGl2IGNsYXNzPSJmaWVsZCBzZXR0aW5ncy1tb2RlbC1maWVsZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93Ij48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1jb21taXQtY2xpIj5DTEk8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1wcm92aWRlciI+XHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0PC9zcGFuPjwvZGl2PjxzZWxlY3QgaWQ9ImNmZy1jb21taXQtY2xpIiBjbGFzcz0iZmllbGQtaW5wdXQiPjxvcHRpb24gdmFsdWU9ImNsYXVkZSI+Q2xhdWRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29kZXgiPkNvZGV4PC9vcHRpb24+PC9zZWxlY3Q+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbWV0YSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXN0YXR1cyI+XHU3NTFGXHU2MjEwIGNvbW1pdCBtZXNzYWdlIFx1NEUwRSB0YWc8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQgc2V0dGluZ3MtbW9kZWwtZmllbGQiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWxhYmVsLXJvdyI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctY29tbWl0LW1vZGVsIj5cdTZBMjFcdTU3OEI8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1wcm92aWRlciIgaWQ9ImNmZy1jb21taXQtbW9kZWwtcHJvdmlkZXIiPkNsYXVkZSBDb2RlPC9zcGFuPjwvZGl2PjxkaXYgaWQ9ImNmZy1jb21taXQtbW9kZWwtY29tYm9ib3giIGNsYXNzPSJtb2RlbC1jb21ib2JveCIgZGF0YS1wcm92aWRlcj0iY2xhdWRlIj48ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveC1jb250cm9sIj48aW5wdXQgaWQ9ImNmZy1jb21taXQtbW9kZWwiIGNsYXNzPSJmaWVsZC1pbnB1dCBtb2RlbC1jb21ib2JveC1pbnB1dCIgdHlwZT0idGV4dCIgcm9sZT0iY29tYm9ib3giIGFyaWEtYXV0b2NvbXBsZXRlPSJsaXN0IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0iY2ZnLWNvbW1pdC1tb2RlbC1saXN0Ym94IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im5vbmUiIGF1dG9jb3JyZWN0PSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0iXHU4RERGXHU5NjhGIENsYXVkZSBDb2RlIFx1OUVEOFx1OEJBNCIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU1QzU1XHU1RjAwIGNvbW1pdCBcdTZBMjFcdTU3OEJcdTUyMTdcdTg4NjgiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03IDEwIDUgNSA1LTUiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJjZmctY29tbWl0LW1vZGVsLWxpc3Rib3giIGNsYXNzPSJtb2RlbC1jb21ib2JveC1tZW51IGhpZGRlbiIgcm9sZT0ibGlzdGJveCIgYXJpYS1sYWJlbD0iQ29tbWl0IFx1NkEyMVx1NTc4QiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbWV0YSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXN0YXR1cyIgZGF0YS1tb2RlbC1zdGF0dXM+XHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQ8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWhlbHAiPlx1NTIxN1x1ODg2OFx1Njc2NVx1ODFFQVx1ODFFQVx1NTJBOFx1NjhDMFx1NkQ0Qjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWN3ZCI+XHU5RUQ4XHU4QkE0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1jd2QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ii9ob21lL3VzZXIiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLXNoZWxsIj5TaGVsbDwvbGFiZWw+PGlucHV0IGlkPSJjZmctc2hlbGwiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ii9iaW4vYmFzaCIgLz48L2Rpdj4nKyh0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmdldEFwcEljb249PSJmdW5jdGlvbiI/JzxkaXYgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLWJsb2NrIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigicGFsZXR0ZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1NUU5NFx1NzUyOFx1NTZGRVx1NjgwNzwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTkwMDlcdTYyRTkgQXBwIFx1NTQyRlx1NTJBOFx1NTY2OFx1NTZGRVx1NjgwN1x1RkYwQ1x1OEZENFx1NTZERVx1Njg0Q1x1OTc2Mlx1NTQwRVx1NzUxRlx1NjU0ODwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhcHAtaWNvbi1waWNrZXIiIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1waWNrZXIiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiBkYXRhLWljb249InNob3J0aGFpciI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLXByZXZpZXciPicrUGkudXNlcisnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1sYWJlbCI+XHU4RDVCXHU1MzVBXHU4NjRFXHU1OTlFPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiBkYXRhLWljb249ImdhcmZpZWxkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tcHJldmlldyI+JytQaS5hc3Npc3RhbnQrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tbGFiZWwiPlx1NTJFNFx1NTJCM1x1NTIxRFx1NEU4Qzwvc3Bhbj48L2J1dHRvbj48L2Rpdj48cCBpZD0iYXBwLWljb24tbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+JzoiIikrJzxkaXYgY2xhc3M9InNldHRpbmdzLWFjdGlvbnMgc2V0dGluZ3MtYWN0aW9ucy1zdGlja3kiPjxidXR0b24gaWQ9InNhdmUtY29uZmlnLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NEZERFx1NUI1OFx1OTE0RFx1N0Y2RTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJjb25maWctbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIHNldHRpbmdzLXN0YXR1cy1tZXNzYWdlIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItc2VjdXJpdHkiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NUI4OVx1NTE2ODwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1N0JBMVx1NzQwNlx1NzY3Qlx1NUY1NVx1NUJDNlx1NzgwMVx1NEUwRSBTU0wgXHU4QkMxXHU0RTY2XHVGRjBDXHU2NTRGXHU2MTFGXHU1M0Q4XHU2NkY0XHU4QkY3XHU3ODZFXHU4QkE0XHU1NDBFXHU1MThEXHU0RkREXHU1QjU4XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQiPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrVigibG9jayIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQtdGV4dCI+PGgzIGNsYXNzPSJzZXR0aW5ncy1jYXJkLXRpdGxlIj5cdTRGRUVcdTY1MzlcdTVCQzZcdTc4MDE8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWRlc2MiPlx1ODFGM1x1NUMxMSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1RkYxQlx1NEZERFx1NUI1OFx1NTQwRVx1NEUwQlx1NkIyMVx1NzY3Qlx1NUY1NVx1NzUxRlx1NjU0OFx1MzAwMjwvcD48L2Rpdj48L2Rpdj48Zm9ybSBpZD0iY2hhbmdlLXBhc3N3b3JkLWZvcm0iIGF1dG9jb21wbGV0ZT0ib24iIG9uc3VibWl0PSJyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiIHZhbHVlPSJ3YW5kIiB0YWJpbmRleD0iLTEiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTk5OXB4O3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lIiByZWFkb25seSAvPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9Im5ldy1wYXNzd29yZCI+XHU2NUIwXHU1QkM2XHU3ODAxPC9sYWJlbD48aW5wdXQgaWQ9Im5ldy1wYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NjVCMFx1NUJDNlx1NzgwMVx1RkYwOFx1ODFGM1x1NUMxMSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1RkYwOSIgYXV0b2NvbXBsZXRlPSJuZXctcGFzc3dvcmQiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY29uZmlybS1wYXNzd29yZCI+XHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxPC9sYWJlbD48aW5wdXQgaWQ9ImNvbmZpcm0tcGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdTUxOERcdTZCMjFcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDEiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiAvPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0ic2F2ZS1wYXNzd29yZC1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIHR5cGU9InN1Ym1pdCI+XHU0RkREXHU1QjU4XHU1QkM2XHU3ODAxPC9idXR0b24+PC9kaXY+PHAgaWQ9InNldHRpbmdzLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48cCBpZD0ic2V0dGluZ3Mtc3VjY2VzcyIgY2xhc3M9ImhpbnQgc2V0dGluZ3Mtc3VjY2Vzcy1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZm9ybT48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK1YoImNlcnRpZmljYXRlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZC10ZXh0Ij48aDMgY2xhc3M9InNldHRpbmdzLWNhcmQtdGl0bGUiPlNTTCBcdThCQzFcdTRFNjY8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWRlc2MiIGlkPSJjZXJ0LXN0YXR1cyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNlcnQta2V5LWZpbGUiPlx1NzlDMVx1OTRBNVx1NjU4N1x1NEVGNiAoLmtleSk8L2xhYmVsPjxkaXYgY2xhc3M9ImZpbGUtcGlja2VyIj48aW5wdXQgaWQ9ImNlcnQta2V5LWZpbGUiIHR5cGU9ImZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci1pbnB1dCIgYWNjZXB0PSIua2V5LC5wZW0iIC8+PGxhYmVsIGZvcj0iY2VydC1rZXktZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLXRyaWdnZXIiPjxzdmcgY2xhc3M9ImZpbGUtcGlja2VyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIxLjQ0IDExLjA1bC05LjE5IDkuMTlhNiA2IDAgMCAxLTguNDktOC40OWw5LjE5LTkuMTlhNCA0IDAgMCAxIDUuNjYgNS42NmwtOS4yIDkuMTlhMiAyIDAgMCAxLTIuODMtMi44M2w4LjQ5LTguNDgiPjwvcGF0aD48L3N2Zz48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbGFiZWwiPlx1OTAwOVx1NjJFOVx1NzlDMVx1OTRBNTwvc3Bhbj48L2xhYmVsPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1uYW1lIiBkYXRhLWRlZmF1bHQ9Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiI+XHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNlcnQtY2VydC1maWxlIj5cdThCQzFcdTRFNjZcdTY1ODdcdTRFRjYgKC5jcnQvLnBlbSk8L2xhYmVsPjxkaXYgY2xhc3M9ImZpbGUtcGlja2VyIj48aW5wdXQgaWQ9ImNlcnQtY2VydC1maWxlIiB0eXBlPSJmaWxlIiBjbGFzcz0iZmlsZS1waWNrZXItaW5wdXQiIGFjY2VwdD0iLmNydCwucGVtLC5jZXJ0IiAvPjxsYWJlbCBmb3I9ImNlcnQtY2VydC1maWxlIiBjbGFzcz0iZmlsZS1waWNrZXItdHJpZ2dlciI+PHN2ZyBjbGFzcz0iZmlsZS1waWNrZXItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiPjwvcG9seWxpbmU+PC9zdmc+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLWxhYmVsIj5cdTkwMDlcdTYyRTlcdThCQzFcdTRFNjY8L3NwYW4+PC9sYWJlbD48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbmFtZSIgZGF0YS1kZWZhdWx0PSJcdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjYiPlx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWFjdGlvbnMiPjxidXR0b24gaWQ9InVwbG9hZC1jZXJ0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSI+XHU0RTBBXHU0RjIwXHU4QkMxXHU0RTY2PC9idXR0b24+PC9kaXY+PHAgaWQ9ImNlcnQtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItcHJlc2V0cyIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU1RjUzXHU1MjREXHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFXHU0RUNFIGNvbmZpZy5qc29uIFx1OEJGQlx1NTNENlx1RkYwQ1x1NTNFRlx1NTcyOFx1OEZEOVx1OTFDQ1x1NUZFQlx1OTAxRlx1NjdFNVx1NzcwQlx1NURGMlx1NjcwOVx1OTE0RFx1N0Y2RVx1MzAwMjwvcD48L2Rpdj48ZGl2IGlkPSJwcmVzZXRzLWxpc3QiIGNsYXNzPSJwcmVzZXRzLWxpc3QiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLWRpc3BsYXkiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NjYzRVx1NzkzQTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NjNBN1x1NTIzNlx1ODA0QVx1NTkyOVx1ODlDNlx1NTZGRVx1OTFDQ1x1NEUwRFx1NTQwQ1x1NTM2MVx1NzI0N1x1N0M3Qlx1NTc4Qlx1NzY4NFx1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXRpdGxlIj5cdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTcyQjZcdTYwMDE8L2Rpdj48cCBjbGFzcz0iaGludCBzZXR0aW5ncy1pbmxpbmUtaGludCI+XHU4QkJFXHU3RjZFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU4OUM2XHU1NkZFXHU0RTJEXHU1NDA0XHU3QzdCXHU1MzYxXHU3MjQ3XHU3Njg0XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwL1x1NjI5OFx1NTNFMFx1NzJCNlx1NjAwMVx1MzAwMlx1NjI0Qlx1NTJBOFx1NjRDRFx1NEY1Q1x1NzY4NFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMVx1NEYxOFx1NTE0OFx1NEU4RVx1NkI2NFx1OUVEOFx1OEJBNFx1OEJCRVx1N0Y2RVx1MzAwMjwvcD48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1saXN0Ij48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLWVkaXQiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTdGMTZcdThGOTFcdTUzNjFcdTcyNDcgKEVkaXQvV3JpdGUpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtZWRpdCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU2NTg3XHU0RUY2XHU3RjE2XHU4RjkxXHU1NDhDXHU1MTk5XHU1MTY1XHU2NENEXHU0RjVDXHU3Njg0IGRpZmYgXHU4OUM2XHU1NkZFPC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLWlubGluZSI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NTE4NVx1ODA1NFx1NURFNVx1NTE3NyAoUmVhZC9HbG9iL0dyZXApPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtaW5saW5lIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdTY1ODdcdTRFRjZcdThCRkJcdTUzRDZcdTMwMDFcdTY0MUNcdTdEMjJcdTdCNDlcdTVERTVcdTUxNzdcdTc2ODRcdTdFRDNcdTY3OUM8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdGVybWluYWwiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTdFQzhcdTdBRUZcdThGOTNcdTUxRkEgKEJhc2gpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdGVybWluYWwiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1NTQ3RFx1NEVFNFx1ODg0Q1x1NjI2N1x1ODg0Q1x1N0VEM1x1Njc5QzwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC10aGlua2luZyI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NjAxRFx1ODAwM1x1OEZDN1x1N0EwQiAoVGhpbmtpbmcpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdGhpbmtpbmciIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPkNsYXVkZSBcdTc2ODRcdTYwMURcdTgwMDNcdThGQzdcdTdBMEJcdTU3NTc8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdG9vbGdyb3VwIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU1REU1XHU1MTc3XHU3RUM0PC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdG9vbGdyb3VwIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdThGREVcdTdFRURcdTU0MENcdTdDN0JcdTVERTVcdTUxNzdcdThDMDNcdTc1MjhcdTc2ODRcdTYyOThcdTUzRTBcdTdFQzQ8L2Rpdj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFjdGlvbnMgc2V0dGluZ3MtYWN0aW9ucy1zdGlja3kiPjxidXR0b24gaWQ9InNhdmUtZGlzcGxheS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdTRGRERcdTVCNThcdTY2M0VcdTc5M0FcdThCQkVcdTdGNkU8L2J1dHRvbj48L2Rpdj48cCBpZD0iZGlzcGxheS1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4gc2V0dGluZ3Mtc3RhdHVzLW1lc3NhZ2UiPjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBLZyhlKXt2YXIgdD0kZSgpO3JldHVybiBlLnNlbGVjdGVkSWQ/IiI6JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdCIgaWQ9ImZvbGRlci1waWNrZXItY29udGFpbmVyIj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3Qtcm93Ij48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0LWljb24iPicrVigiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZm9sZGVyLXBpY2tlci1pbnB1dCIgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dCIgdmFsdWU9IicrcCh0KSsnIiBwbGFjZWhvbGRlcj0iXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1IiBhdXRvY29tcGxldGU9Im9mZiIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImZvbGRlci1waWNrZXItdG9nZ2xlIiBjbGFzcz0iZm9sZGVyLXBpY2tlci10b2dnbGUiIHRpdGxlPSJcdTkwMDlcdTYyRTlcdTc2RUVcdTVGNTUiIGFyaWEtbGFiZWw9Ilx1OTAwOVx1NjJFOVx1NzZFRVx1NUY1NSI+JytWKCJjaGV2cm9uRG93biIse3NpemU6MTEsc3Ryb2tlV2lkdGg6Mn0pKyc8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiBjbGFzcz0iZm9sZGVyLXBpY2tlci1kcm9wZG93biBoaWRkZW4iPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stcm93Ij48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biIgZGF0YS1wYXRoPSIvdG1wIj5cdTRFMzRcdTY1RjY8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biIgZGF0YS1wYXRoPSIvIj5cdTY4MzlcdTc2RUVcdTVGNTU8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iIGNsYXNzPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iPjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gSmcoZSl7dmFyIHQ9JGUoKSxuPXQ7aWYoZS5zZWxlY3RlZElkKXt2YXIgaT1lLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLnNlbGVjdGVkSWR9KTtuPWkmJmkuY3dkP2kuY3dkOnR9cmV0dXJuJzxkaXYgY2xhc3M9IndvcmtpbmctZGlyLWluZGljYXRvciIgaWQ9IndvcmtpbmctZGlyLWluZGljYXRvciIgdGl0bGU9IicrcChuKSsnIiBkYXRhLXBhdGg9IicrcChuKSsnIj48c3BhbiBjbGFzcz0id29ya2luZy1kaXItaW5kaWNhdG9yLWljb24iPicrVigiZm9sZGVyIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjd9KSsiPC9zcGFuPiIrZ3Qobiwid29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiLCcgaWQ9IndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoIicpKyI8L2Rpdj4ifWZ1bmN0aW9uIEJvKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUubm93KCksbj1uZXcgRGF0ZShlKS5nZXRUaW1lKCksaT1NYXRoLm1heCgwLHQtbiksYT1NYXRoLmZsb29yKGkvMWUzKTtpZihhPDYwKXJldHVybiJcdTUyMUFcdTUyMUEiO3ZhciB1PU1hdGguZmxvb3IoYS82MCk7aWYodTw2MClyZXR1cm4gdSsiXHU1MjA2XHU5NDlGXHU1MjREIjt2YXIgbz1NYXRoLmZsb29yKHUvNjApO2lmKG88MjQpcmV0dXJuIG8rIlx1NUMwRlx1NjVGNlx1NTI0RCI7dmFyIHM9TWF0aC5mbG9vcihvLzI0KTtyZXR1cm4gczwzMD9zKyJcdTU5MjlcdTUyNEQiOk1hdGguZmxvb3Iocy8zMCkrIlx1NEUyQVx1NjcwOFx1NTI0RCJ9ZnVuY3Rpb24gRG8oZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9RGF0ZS5ub3coKSxuPW5ldyBEYXRlKGUpLmdldFRpbWUoKSxpPU1hdGgubWF4KDAsdC1uKSxhPU1hdGguZmxvb3IoaS8xZTMpLHU9TWF0aC5mbG9vcihhLzYwKSxvPU1hdGguZmxvb3IodS82MCk7cmV0dXJuIG8+MD9vKyJoIisodSU2MD4wP3UlNjArIm0iOiIiKTp1PjA/dSsibSI6YSsicyJ9ZnVuY3Rpb24gdnIoZSl7aWYoIWUpcmV0dXJuIiI7aWYoZS5wZXJtaXNzaW9uQmxvY2tlZClyZXR1cm4iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjtpZih1ZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KXJldHVybiJcdTYwMURcdTgwMDNcdTRFMkQiO3ZhciB0PXtpZGxlOiJcdTdBN0FcdTk1RjIiLHN0b3BwZWQ6Ilx1NURGMlx1NTA1Q1x1NkI2MiIscnVubmluZzoiXHU4RkQwXHU4ODRDXHU0RTJEIixleGl0ZWQ6Ilx1NURGMlx1OTAwMFx1NTFGQSIsZmFpbGVkOiJcdTVERjJcdTU5MzFcdThEMjUifTtyZXR1cm4gdFtlLnN0YXR1c118fGUuc3RhdHVzfWZ1bmN0aW9uIGtvKGUpe3JldHVybiBlP2UucGVybWlzc2lvbkJsb2NrZWQ/InBlcm1pc3Npb24tYmxvY2tlZCI6dWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodD8icnVubmluZyI6ZS5zdGF0dXN8fCIiOiIifWZ1bmN0aW9uIGNjKGUpe3JldHVybiBlP2UucGVybWlzc2lvbkJsb2NrZWQ/Ilx1N0I0OVx1NUY4NVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyI6ZS5zdGF0dXMhPT0icnVubmluZyI/IiI6ZS5pZD09PXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50VGFzayYmci5jdXJyZW50VGFzay50aXRsZT9yLmN1cnJlbnRUYXNrLnRpdGxlOmUuY3VycmVudFRhc2tUaXRsZT9lLmN1cnJlbnRUYXNrVGl0bGU6IiI6IiJ9ZnVuY3Rpb24gZmMoZSl7dmFyIHQ9ZSYmZS5tZXNzYWdlcztpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dO2lmKCEoIWl8fGkucm9sZSE9PSJ1c2VyIikpe3ZhciBhPWkuY29udGVudDtpZih0eXBlb2YgYT09InN0cmluZyIpe3ZhciB1PWEudHJpbSgpO2lmKHUpcmV0dXJuIHU7Y29udGludWV9aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXTtpZighKCFzfHxzLnR5cGUhPT0idGV4dCJ8fCFzLnRleHQpJiYhcy5fX3F1ZXVlZCl7dmFyIGw9U3RyaW5nKHMudGV4dCkudHJpbSgpO2lmKGwpcmV0dXJuIGx9fX19cmV0dXJuIiJ9ZnVuY3Rpb24gcGMoZSl7dmFyIHQ9ZSYmZS5tZXNzYWdlcztpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dO2lmKGkucm9sZT09PSJhc3Npc3RhbnQiKXtmb3IodmFyIGE9aS5jb250ZW50fHxbXSx1PTA7dTxhLmxlbmd0aDt1KyspaWYoYVt1XS50eXBlPT09InRleHQiJiZhW3VdLnRleHQmJmFbdV0udGV4dC50cmltKCkpe3ZhciBvPWFbdV0udGV4dC50cmltKCk7bz1vLnJlcGxhY2UoL14jK1xzKy9nbSwiIikucmVwbGFjZSgvXCpcKi9nLCIiKS5yZXBsYWNlKC9gL2csIiIpO3ZhciBzPW8uc3BsaXQoYApgKVswXS50cmltKCk7cmV0dXJuIHMuc2xpY2UoMCwxMDApfX19cmV0dXJuIiJ9ZnVuY3Rpb24gdmMoZSx0KXt2YXIgbj1lLmlkPT09ci5zZWxlY3RlZElkPyIgYWN0aXZlIjoiIixpPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZyLnNlbGVjdGVkU2Vzc2lvbklkc1tlLmlkXT8iIHNlbGVjdGVkIjoiIixhPXZyKGUpLHU9a28oZSksbz0iIixzPU9vKCJzZXNzaW9ucyIsZS5pZCwiXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREICIrZS5jb21tYW5kKTtpZigoZS5wcm92aWRlcj09PSJjbGF1ZGUifHxlLnByb3ZpZGVyPT09ImNvZGV4IikmJmUuY2xhdWRlU2Vzc2lvbklkJiZlLnN0YXR1cyE9PSJydW5uaW5nIiYmIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiYhdWUoZSkpe3ZhciBsPWUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTYwNjJcdTU5MEQgQ29kZXggXHU0RjFBXHU4QkREIjoiXHU2MDYyXHU1OTBEIENsYXVkZSBcdTRGMUFcdThCREQiO289JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biIgZGF0YS1hY3Rpb249InJlc3VtZSIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSInK2wrJyIgdGl0bGU9IicrbCsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xIDR2Nmg2Ii8+PHBhdGggZD0iTTMuNTEgMTVhOSA5IDAgMTA1LjY0LTExLjM2TDMgMTAiLz48L3N2Zz48L2J1dHRvbj4nfXZhciBkPSFyLnNlc3Npb25zTWFuYWdlTW9kZSYmZS53b3JrdHJlZUVuYWJsZWQmJmUud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZlLndvcmt0cmVlLnBhdGgsZj1lLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2VkIiYmZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExLGM9ZS5zdGF0dXM9PT0icnVubmluZyJ8fGUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnaW5nIix2PWY/Ilx1OTFDRFx1OEJENVx1NkUwNVx1NzQwNiB3b3JrdHJlZSI6Ilx1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRiIsaD1kJiZlLndvcmt0cmVlTWVyZ2VTdGF0dXMhPT0ibWVyZ2VkIj8nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIG1lcmdlLWJ0biIgZGF0YS1hY3Rpb249Indvcmt0cmVlLW1lcmdlIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IicrcCh2KSsnIiB0aXRsZT0iJytwKHYpKyciJysoYz8iIGRpc2FibGVkIjoiIikrJz48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik03IDdoMTAiLz48cGF0aCBkPSJNNyAxMmgxMCIvPjxwYXRoIGQ9Ik03IDE3aDEwIi8+PHBhdGggZD0iTTUgN2wtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0xOSAxNWwyIDItMiAyIi8+PC9zdmc+PC9idXR0b24+JzpmPyc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gbWVyZ2UtYnRuIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtY2xlYW51cCIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiIHRpdGxlPSJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JzoiIixnPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gZGVsZXRlLWJ0biIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZXNzaW9uIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCIgdGl0bGU9Ilx1NTIyMFx1OTY2NFx1NkI2NFx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48L2J1dHRvbj4nLG09JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWFjdGlvbnMiPicrbytoK2crIjwvc3Bhbj4iLHk9ZS50aXRsZXx8ZS5zdW1tYXJ5Pyc8ZGl2IGNsYXNzPSJzZXNzaW9uLXRpdGxlIj4nK3AoZS50aXRsZXx8ZS5zdW1tYXJ5KSsiPC9kaXY+IjonPGRpdiBjbGFzcz0ic2Vzc2lvbi1jb21tYW5kIj4nK3AoZS5yZXN1bWVkRnJvbVNlc3Npb25JZD9lLmNvbW1hbmQucmVwbGFjZSgvXHMrLS1yZXN1bWVccytcUysvLCIiKS5yZXBsYWNlKC9ccytyZXN1bWVccytbMC05YS1mLV0rLywiIik6ZS5jb21tYW5kKSsiPC9kaXY+IixDPWNjKGUpLEU9IiI7ZS5zdGF0dXM9PT0icnVubmluZyImJkMmJihFPSc8ZGl2IGNsYXNzPSJzZXNzaW9uLWFjdGl2aXR5Ij4nK3AoQykrIjwvZGl2PiIpO3ZhciBCPWUuZGVzY3JpcHRpb24/JzxkaXYgY2xhc3M9InNlc3Npb24tZGVzY3JpcHRpb24iPicrcChlLmRlc2NyaXB0aW9uKSsiPC9kaXY+IjoiIixEPSIiO2Uuc3RhdHVzPT09InJ1bm5pbmciP0Q9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSJcdTVERjJcdThGRDBcdTg4NEMgJytwKERvKGUuc3RhcnRlZEF0KSkrJyI+JytwKERvKGUuc3RhcnRlZEF0KSkrIjwvc3Bhbj4iOmUuZW5kZWRBdD9EPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi10aW1lIiB0aXRsZT0iJytwKG5ldyBEYXRlKGUuZW5kZWRBdCkudG9Mb2NhbGVTdHJpbmcoKSkrJyI+JytwKEJvKGUuZW5kZWRBdCkpKyI8L3NwYW4+IjplLnN0YXJ0ZWRBdCYmKEQ9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSInK3AobmV3IERhdGUoZS5zdGFydGVkQXQpLnRvTG9jYWxlU3RyaW5nKCkpKyciPicrcChCbyhlLnN0YXJ0ZWRBdCkpKyI8L3NwYW4+Iik7dmFyIEY9QW8oZSksST1lLmF1dG9SZWNvdmVyZWQ/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXJlY292ZXJ5LWhpbnQiPlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRDwvc3Bhbj4nOiIiLEw9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxkaXYgY2xhc3M9InNlc3Npb24tc3dpcGUtYmciIGFyaWEtaGlkZGVuPSJ0cnVlIj48YnV0dG9uIGNsYXNzPSJzZXNzaW9uLXN3aXBlLWRlbGV0ZSIgZGF0YS1hY3Rpb249InN3aXBlLWRlbGV0ZS1zZXNzaW9uIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjxzcGFuPlx1NTIyMFx1OTY2NDwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0nK24raSsnIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj4nK0wrJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tcm93Ij4nK3MrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFpbiI+PGRpdiBjbGFzcz0ic2Vzc2lvbi10aXRsZS1yb3ciPicreStEKyI8L2Rpdj4iK0IrRSsnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tZXRhIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMgJyt1KyciPicrcChhKSsiPC9zcGFuPiIrRitJKyI8L2Rpdj48L2Rpdj4iK20rIjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gbWMoZSl7aWYoIWV8fCFlLndvcmt0cmVlTWVyZ2VTdGF0dXMpcmV0dXJuIiI7dmFyIHQ9e3JlYWR5OiJcdTUzRUZcdTU0MDhcdTVFNzYiLGNoZWNraW5nOiJcdTY4QzBcdTY3RTVcdTRFMkQiLG1lcmdpbmc6Ilx1NTQwOFx1NUU3Nlx1NEUyRCIsbWVyZ2VkOmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMT8iXHU1REYyXHU1NDA4XHU1RTc2XHU1Rjg1XHU2RTA1XHU3NDA2IjoiXHU1REYyXHU1NDA4XHU1RTc2IixmYWlsZWQ6Ilx1NTQwOFx1NUU3Nlx1NTkzMVx1OEQyNSJ9O3JldHVybiB0W2Uud29ya3RyZWVNZXJnZVN0YXR1c118fCIifWZ1bmN0aW9uIGdjKGUpe3ZhciB0PW1jKGUpO3JldHVybiB0Pyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHdvcmt0cmVlLW1lcmdlICcrcChlLndvcmt0cmVlTWVyZ2VTdGF0dXN8fCIiKSsnIj4nK3AodCkrIjwvc3Bhbj4iOiIifWZ1bmN0aW9uIEFvKGUpe2lmKCFlfHwhZS53b3JrdHJlZUVuYWJsZWQpcmV0dXJuIiI7dmFyIHQ9W107ZS53b3JrdHJlZSYmZS53b3JrdHJlZS5icmFuY2gmJnQucHVzaCgiV29ya3RyZWU6ICIrZS53b3JrdHJlZS5icmFuY2gpLGUud29ya3RyZWUmJmUud29ya3RyZWUucGF0aCYmdC5wdXNoKCJQYXRoOiAiK2Uud29ya3RyZWUucGF0aCk7dmFyIG49dC5sZW5ndGg+MD8nIHRpdGxlPSInK3AodC5qb2luKGAKYCkpKyciJzoiIjtyZXR1cm4nPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSB3b3JrdHJlZSInK24rIj5Xb3JrdHJlZTwvc3Bhbj4iK2djKGUpfWZ1bmN0aW9uIFlnKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXVlKGUpPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHN0cnVjdHVyZWQiPlN0cnVjdHVyZWQ8L3NwYW4+JzonPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSBwdHkiPlBUWTwvc3Bhbj4nO3JldHVybiB0K0FvKGUpfWZ1bmN0aW9uIGhjKGUpe3ZhciB0PVt7aWQ6Im1hbmFnZWQiLGxhYmVsOiJcdTYyNThcdTdCQTEiLGRlc2M6Ilx1NTE2OFx1ODFFQVx1NTJBOFx1NUI4Q1x1NjIxMFx1NEVGQlx1NTJBMSJ9LHtpZDoiZnVsbC1hY2Nlc3MiLGxhYmVsOiJcdTUxNjhcdTY3NDNcdTk2NTAiLGRlc2M6Ilx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1Njc0M1x1OTY1MCJ9LHtpZDoiYXV0by1lZGl0IixsYWJlbDoiXHU4MUVBXHU1MkE4XHU3RjE2XHU4RjkxIixkZXNjOiJcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTRGRUVcdTY1MzkifSx7aWQ6ImRlZmF1bHQiLGxhYmVsOiJcdTY4MDdcdTUxQzYiLGRlc2M6Ilx1OTAxMFx1NkI2NVx1Nzg2RVx1OEJBNFx1NjRDRFx1NEY1QyJ9LHtpZDoibmF0aXZlIixsYWJlbDoiXHU1MzlGXHU3NTFGIixkZXNjOiJcdTUzOUZcdTc1MUZcdTdFRDNcdTY3ODRcdTUzMTZcdThGOTNcdTUxRkEifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQnK2krJyIgZGF0YS1tb2RlPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiB5YyhlKXt2YXIgdD1be2lkOiJjbGF1ZGUiLGxhYmVsOiJDbGF1ZGUiLGRlc2M6Ilx1NUI4Q1x1NjU3NCBDbGF1ZGUgXHU0RjFBXHU4QkREXHU4MEZEXHU1MjlCIn0se2lkOiJjb2RleCIsbGFiZWw6IkNvZGV4IixkZXNjOiJcdTdFRDNcdTY3ODRcdTUzMTYgSlNPTkwgXHU2MjE2IFBUWSBcdTRGMUFcdThCREQifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQgcHJvdmlkZXItY2FyZCcraSsnIiBkYXRhLXByb3ZpZGVyPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBiYyhlKXt2YXIgdD1be2lkOiJzdHJ1Y3R1cmVkIixsYWJlbDoiXHU3RUQzXHU2Nzg0XHU1MzE2IixkZXNjOiJcdTY2N0FcdTgwRkRcdTVCRjlcdThCRERcdTZBMjFcdTVGMEYifSx7aWQ6InB0eSIsbGFiZWw6IlBUWSIsZGVzYzoiXHU0RUE0XHU0RTkyXHU1RjBGXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREIn1dO3JldHVybiB0Lm1hcChmdW5jdGlvbihuKXt2YXIgaT1uLmlkPT09ZT8iIGFjdGl2ZSI6IiIsYT0iIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQgc2Vzc2lvbi1raW5kLWNhcmQnK2krYSsnIiBkYXRhLXNlc3Npb24ta2luZD0iJytuLmlkKyciPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtbGFiZWwiPicrbi5sYWJlbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtZGVzYyI+JytuLmRlc2MrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gR2coZSl7cmV0dXJuJzxsYWJlbCBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIiBmb3I9InNlc3Npb24td29ya3RyZWUtdG9nZ2xlIiB0aXRsZT0iXHU0RTNBXHU4QkU1XHU0RjFBXHU4QkREXHU1MjFCXHU1RUZBXHU3MkVDXHU3QUNCXHU3Njg0IGdpdCB3b3JrdHJlZSBcdTUyMDZcdTY1MkYiPjxzdmcgY2xhc3M9InNlc3Npb24taW5saW5lLXRvZ2dsZS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjYiIHI9IjIuMiIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMi4yIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOCIgcj0iMi4yIi8+PHBhdGggZD0iTTYgOC4ydjMuNGEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4LjIiLz48cGF0aCBkPSJNMTIgMTMuNnYyLjIiLz48L3N2Zz48c3BhbiBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWxhYmVsIj5Xb3JrdHJlZSBcdTZBMjFcdTVGMEY8L3NwYW4+PGlucHV0IGlkPSJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIicrKGU/IiBjaGVja2VkIjoiIikrJyAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvbGFiZWw+J31mdW5jdGlvbiB4byhlKXt2YXIgdD1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIjtyZXR1cm4gZT09PSJzdHJ1Y3R1cmVkIj90PT09ImNvZGV4Ij8iQ29kZXggSlNPTkwgXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU3NTRDXHU5NzYyXHVGRjBDXHU2NTJGXHU2MzAxXHU1OTFBXHU4RjZFXHU1QkY5XHU4QkREXHU1NDhDXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU1QzU1XHU3OTNBXHUzMDAyIjoiXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU3NTRDXHU5NzYyXHVGRjBDXHU2NTJGXHU2MzAxXHU1OTFBXHU4RjZFXHU1QkY5XHU4QkREXHUzMDAxXHU2RDQxXHU1RjBGXHU4RjkzXHU1MUZBXHU1NDhDXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU1QzU1XHU3OTNBXHUzMDAyIjp0PT09ImNvZGV4Ij8iQ29kZXggUFRZIFx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERFx1RkYxQnRlcm1pbmFsIFx1NjYyRlx1NTM5Rlx1NTlDQlx1OEY5M1x1NTFGQVx1RkYwQ2NoYXQgXHU2NjJGXHU4OUUzXHU2NzkwXHU1NDBFXHU3Njg0XHU5NjA1XHU4QkZCXHU4OUM2XHU1NkZFXHUzMDAyIjoiXHU1MzlGXHU1OUNCIFBUWSBcdTdFQzhcdTdBRUZcdTRGMUFcdThCRERcdUZGMENcdTY1MkZcdTYzMDFcdTYzMDFcdTdFRURcdTRFQTRcdTRFOTJcdTMwMDFcdTdFQzhcdTdBRUZcdTg5QzZcdTU2RkVcdTU0OENcdTY3NDNcdTk2NTBcdTZENDFcdTMwMDIifWZ1bmN0aW9uIEVjKCl7dmFyIGU9cnQoKSx0PW10KGUsci5tb2RlVmFsdWV8fHIuY2hhdE1vZGV8fCJkZWZhdWx0Iiksbj1yLnNlc3Npb25DcmVhdGVLaW5kfHwic3RydWN0dXJlZCIsaT1yLnNlc3Npb25DcmVhdGVXb3JrdHJlZT09PSEwO3JldHVybic8c2VjdGlvbiBpZD0ic2Vzc2lvbi1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiI+PGRpdiBjbGFzcz0ibW9kYWwgc2Vzc2lvbi1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NjVCMFx1NUJGOVx1OEJERDwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5cdTU0MkZcdTUyQTggQ2xhdWRlIFx1NjIxNiBDb2RleCBcdTRGMUFcdThCRERcdUZGMENcdTkwMDlcdTYyRTkgcHJvdmlkZXJcdTMwMDFcdTRGMUFcdThCRERcdTdDN0JcdTU3OEJcdTMwMDFcdTZBMjFcdTVGMEZcdTU0OENcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2UtbW9kYWwtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiPlByb3ZpZGVyPC9sYWJlbD48ZGl2IGlkPSJwcm92aWRlci1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicreWMoZSkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTRGMUFcdThCRERcdTdDN0JcdTU3OEI8L2xhYmVsPjxkaXYgaWQ9InNlc3Npb24ta2luZC1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicrYmMobikrJzwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLWhpbnQgc2Vzc2lvbi1raW5kLWhpbnQtcm93Ij48c3BhbiBpZD0ic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIj4nK3AoeG8obikpKyc8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY3dkIj5cdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L2xhYmVsPjxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLXdyYXAiPjxpbnB1dCBpZD0iY3dkIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIGF1dG9jb21wbGV0ZT0ib2ZmIiBwbGFjZWhvbGRlcj0iJytwKCRlKCkpKyciIC8+PGRpdiBpZD0iY3dkLXN1Z2dlc3Rpb25zIiBjbGFzcz0ic3VnZ2VzdGlvbnMgaGlkZGVuIj48L2Rpdj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCI+XHU1MjFCXHU1RUZBXHU1MjREXHU1MTQ4XHU3ODZFXHU4QkE0XHU3NkVFXHU1RjU1XHVGRjFCXHU3NTU5XHU3QTdBXHU1MjE5XHU0RjdGXHU3NTI4XHU0RTBBXHU2NUI5XHU3NkVFXHU1RjU1XHVGRjBDXHU2NTJGXHU2MzAxXHU4REVGXHU1Rjg0XHU4MUVBXHU1MkE4XHU4ODY1XHU1MTY4XHUzMDAyPC9wPjxkaXYgaWQ9InJlY2VudC1wYXRocy1idWJibGVzIiBjbGFzcz0icmVjZW50LXBhdGhzLWJ1YmJsZXMiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTZBMjFcdTVGMEY8L2xhYmVsPjxkaXYgaWQ9Im1vZGUtY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK2hjKHQpKyc8L2Rpdj48cCBpZD0ibW9kZS1kZXNjcmlwdGlvbiIgY2xhc3M9ImZpZWxkLWhpbnQiPicrcChDbChlLHQpKSsnPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+PGJ1dHRvbiBpZD0icnVuLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERDwvYnV0dG9uPjxwIGlkPSJtb2RhbC1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gU28oKXt2YXIgZT1bXTtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPXQuc3RhcnRlZEF0P25ldyBEYXRlKHQuc3RhcnRlZEF0KS5nZXRUaW1lKCk6MDtlLnB1c2goe2tpbmQ6InNlc3Npb24iLHJlZjp0LHQ6aXNGaW5pdGUobik/bjowfSl9KSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJm1yKCkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LnRpbWVzdGFtcD9uZXcgRGF0ZSh0LnRpbWVzdGFtcCkuZ2V0VGltZSgpOk51bWJlcih0Lm10aW1lTXMpfHwwO2lzRmluaXRlKG4pfHwobj1OdW1iZXIodC5tdGltZU1zKXx8MCksZS5wdXNoKHtraW5kOiJoaXN0b3J5IixyZWY6dCx0Om59KX0pLHIuY29kZXhIaXN0b3J5TG9hZGVkJiZ5YSgpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dC50aW1lc3RhbXA/bmV3IERhdGUodC50aW1lc3RhbXApLmdldFRpbWUoKTpOdW1iZXIodC5tdGltZU1zKXx8MDtlLnB1c2goe2tpbmQ6ImNvZGV4IixyZWY6dCx0OmlzRmluaXRlKG4pP246MH0pfSksZS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4udC10LnR9KSxlfWZ1bmN0aW9uIEZjKCl7dmFyIGU9W107ZS5wdXNoKElvKCkpO3ZhciB0PVNvKCk7cmV0dXJuIHQubGVuZ3RoPT09MD9JbygpKyc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdThGRDhcdTZDQTFcdTY3MDlcdTRGMUFcdThCRERcdThCQjBcdTVGNTU8L3N0cm9uZz48YnI+XHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyPC9kaXY+JzooZS5wdXNoKEJjKHQpKSxlLmpvaW4oIiIpKX1mdW5jdGlvbiB3Yygpe3JldHVybiEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZH1mdW5jdGlvbiBDYygpe3ZhciBlPVNvKCksdD1lLm1hcChmdW5jdGlvbihpLGEpe3ZhciB1PWErMTtpZihpLmtpbmQ9PT0ic2Vzc2lvbiIpe3ZhciBvPWkucmVmLHM9by5pZD09PXIuc2VsZWN0ZWRJZD8iIGFjdGl2ZSI6IiIsbD1vLnRpdGxlfHxvLmRlc2NyaXB0aW9ufHxvLnN1bW1hcnl8fG8uY29tbWFuZHx8Ilx1NEYxQVx1OEJERCAiK3U7cmV0dXJuJzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUnK3MrJyIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1zZXNzaW9uLWlkPSInK3Aoby5pZCkrJyIgdGl0bGU9IicrcChsKSsnIj4nK3UrIjwvYnV0dG9uPiJ9dmFyIGQ9aS5yZWYsZj1kLmZpcnN0VXNlck1lc3NhZ2V8fCIoXHU3QTdBXHU0RjFBXHU4QkREKSIsYz1mKyIgXHhCNyAiK0hvKGQudGltZXN0YW1wKTtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0ic2lkZWJhci1jb2xsYXBzZWQtdGlsZSIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1oaXN0b3J5LWlkPSInK3AoZC5jbGF1ZGVTZXNzaW9uSWQpKyciIGRhdGEtcHJvdmlkZXI9IicrcChpLmtpbmQ9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIpKyciIGRhdGEtY3dkPSInK3AoZC5jd2R8fCIiKSsnIiB0aXRsZT0iJytwKGMpKyciPicrdSsiPC9idXR0b24+In0pLmpvaW4oIiIpLG49JzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUgYWRkIiB0eXBlPSJidXR0b24iIGRhdGEtY29sbGFwc2VkLW5ldy1zZXNzaW9uPSIxIiB0aXRsZT0iXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREIiBhcmlhLWxhYmVsPSJcdTY1QjBcdTVFRkFcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz48bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGVzIj4nK3QrbisiPC9kaXY+In1mdW5jdGlvbiBoYSgpe3JldHVybiB3YygpP0NjKCk6RmMoKX1mdW5jdGlvbiBJbygpe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYmFyIj48c3BhbiBjbGFzcz0ic2lkZWJhci1pbnRybyI+XHU1MTY4XHU5MEU4XHU0RjFBXHU4QkREPC9zcGFuPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXhzIHNlc3Npb24tbWFuYWdlLXRvZ2dsZSIgZGF0YS1hY3Rpb249InRvZ2dsZS1tYW5hZ2UtbW9kZSIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDExbDMgM0wyMiA0Ii8+PHBhdGggZD0iTTIxIDEydjdhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDExIi8+PC9zdmc+PHNwYW4+XHU3QkExXHU3NDA2PC9zcGFuPjwvYnV0dG9uPjwvZGl2Pic7dmFyIGU9VG8oKS5sZW5ndGgsdD1MbygpLmxlbmd0aCxuPU1vKCkubGVuZ3RoLGk9ZSt0K24sYT1pPjAsdT1rYygpLG89dT4wJiZpPj11LHM9bz8iXHU1M0Q2XHU2RDg4XHU1MTY4XHU5MDA5IjoiXHU1MTY4XHU5MDA5IixsPW8/ImNsZWFyLXNlbGVjdGlvbiI6InNlbGVjdC1hbGwtdmlzaWJsZSIsZD11PT09MD8iIGRpc2FibGVkIjoiIixmPSc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1leGl0IiBkYXRhLWFjdGlvbj0idG9nZ2xlLW1hbmFnZS1tb2RlIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1OTAwMFx1NTFGQVx1N0JBMVx1NzQwNlx1NkEyMVx1NUYwRiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1N0JBMVx1NzQwNlx1NkEyMVx1NUYwRiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPicsYz1hPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtY291bnQiPicraSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVsIj5cdTVERjJcdTkwMDlcdTYyRTk8L3NwYW4+JzonPHNwYW4gY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnktbGFiZWwgbXV0ZWQiPlx1OTAwOVx1NjJFOVx1ODk4MVx1N0JBMVx1NzQwNlx1NzY4NFx1OTg3OVx1NzZFRTwvc3Bhbj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1iYXIgYWN0aXZlIj4nK2YrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnkiPicrYysnPC9kaXY+PGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4teHMiIGRhdGEtYWN0aW9uPSInK2wrJyIgdHlwZT0iYnV0dG9uIicrZCsiPiIrcysnPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgYnRuLXhzIiBkYXRhLWFjdGlvbj0iZGVsZXRlLXNlbGVjdGVkIiB0eXBlPSJidXR0b24iJysoYT8iIjoiIGRpc2FibGVkIikrIj5cdTUyMjBcdTk2NjQiKyhhPyIgIitpOiIiKSsiPC9idXR0b24+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBCYyhlKXt2YXIgdD0nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAiPic7cmV0dXJuIHQrPWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmtpbmQ9PT0ic2Vzc2lvbiI/dmMobi5yZWYsInNlc3Npb25zIik6SWMobi5yZWYsbi5raW5kKX0pLmpvaW4oIiIpLHQrPSI8L3NlY3Rpb24+Iix0fWZ1bmN0aW9uIG1yKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc0NvbnZlcnNhdGlvbiYmIXQubWFuYWdlZEJ5V2FuZCYmIWUuaGFzKHQuY2xhdWRlU2Vzc2lvbklkKX0pfWZ1bmN0aW9uIFRvKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRTZXNzaW9uSWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkU2Vzc2lvbklkc1tlXX0pfWZ1bmN0aW9uIExvKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkc1tlXX0pfWZ1bmN0aW9uIE1vKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHMpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hIXIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHNbZV19KX1mdW5jdGlvbiBzaSgpe3Iuc2VsZWN0ZWRTZXNzaW9uSWRzPXt9LHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzPXt9LHIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHM9e319ZnVuY3Rpb24gRGMoZSl7ci5zZXNzaW9uc01hbmFnZU1vZGU9dHlwZW9mIGU9PSJib29sZWFuIj9lOiFyLnNlc3Npb25zTWFuYWdlTW9kZSxyLnNlc3Npb25zTWFuYWdlTW9kZSYmKCFyLmNsYXVkZUhpc3RvcnlMb2FkZWR8fCFyLmNvZGV4SGlzdG9yeUxvYWRlZCkmJmxpKCkudGhlbihwZSksci5zZXNzaW9uc01hbmFnZU1vZGV8fChzaSgpLE1yKCkpLHBlKCl9ZnVuY3Rpb24gcW8oKXtyZXR1cm4gci5zZXNzaW9ucy5zbGljZSgpfWZ1bmN0aW9uIGtjKCl7cmV0dXJuIHFvKCkubGVuZ3RoK21yKCkubGVuZ3RoK3lhKCkubGVuZ3RofWZ1bmN0aW9uIFBvKCl7aWYoIXIuY2xhdWRlSGlzdG9yeUxvYWRlZHx8IXIuY29kZXhIaXN0b3J5TG9hZGVkKXtsaSgpLnRoZW4oUG8pO3JldHVybn12YXIgZT17fTtxbygpLmZvckVhY2goZnVuY3Rpb24oaSl7ZVtpLmlkXT0hMH0pO3ZhciB0PXt9O21yKCkuZm9yRWFjaChmdW5jdGlvbihpKXt0W2kuY2xhdWRlU2Vzc2lvbklkXT0hMH0pO3ZhciBuPXt9O3lhKCkuZm9yRWFjaChmdW5jdGlvbihpKXtuW2kuY2xhdWRlU2Vzc2lvbklkXT0hMH0pLHIuc2VsZWN0ZWRTZXNzaW9uSWRzPWUsci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM9dCxyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzPW4scGUoKX1mdW5jdGlvbiBBYygpe3NpKCkscGUoKX1mdW5jdGlvbiBncihlLHQpe2lmKCEoIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlfHwhdCkpe3ZhciBuPWU9PT0iaGlzdG9yeSI/ci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM6ZT09PSJjb2RleCI/ci5zZWxlY3RlZENvZGV4SGlzdG9yeUlkczpyLnNlbGVjdGVkU2Vzc2lvbklkcztuW3RdP2RlbGV0ZSBuW3RdOm5bdF09ITAscGUoKX19ZnVuY3Rpb24gT28oZSx0LG4pe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4iIjt2YXIgaT1lPT09Imhpc3RvcnkiPyEhci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbdF06ZT09PSJjb2RleCI/ISFyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzW3RdOiEhci5zZWxlY3RlZFNlc3Npb25JZHNbdF07cmV0dXJuJzxsYWJlbCBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtY2hlY2siPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGF0YS1hY3Rpb249InRvZ2dsZS1zZWxlY3Rpb24iIGRhdGEta2luZD0iJytwKGUpKyciIGRhdGEtaWQ9IicrcCh0KSsnIicrKGk/IiBjaGVja2VkIjoiIikrJyBhcmlhLWxhYmVsPSInK3AobikrJyI+PHNwYW4+PC9zcGFuPjwvbGFiZWw+J31mdW5jdGlvbiBBbihlLHQpe3JldHVybiBNYShlLE9iamVjdC5hc3NpZ24oe3R5cGU6ImRhbmdlciIsZGFuZ2VyOiEwLG9rTGFiZWw6Ilx1NTIyMFx1OTY2NCJ9LHR8fHt9KSl9ZnVuY3Rpb24geGMoKXt2YXIgZT1UbygpLHQ9TG8oKSxuPU1vKCksaT1lLmxlbmd0aCt0Lmxlbmd0aCtuLmxlbmd0aDtpJiZBbigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5ICIraSsiIFx1OTg3OVx1NTQxN1x1RkYxRlx1NkI2NFx1NjRDRFx1NEY1Q1x1NjVFMFx1NkNENVx1NjRBNFx1OTUwMFx1MzAwMiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDkgIitpKyIgXHU5ODc5In0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYSl7dmFyIHU9W107ZS5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL3Nlc3Npb25zL2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZHM6ZX0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KSksdC5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6dH0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KSksbi5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkvYmF0Y2gtZGVsZXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7Y2xhdWRlU2Vzc2lvbklkczpufSl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmpzb24oKX0pKSxQcm9taXNlLmFsbCh1KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuaW5kZXhPZihyLnNlbGVjdGVkSWQpIT09LTEmJihyLnNlbGVjdGVkSWQ9bnVsbCxoZSgpKSxyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gdC5pbmRleE9mKG8uY2xhdWRlU2Vzc2lvbklkKT09PS0xfSksci5jb2RleEhpc3Rvcnk9ci5jb2RleEhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBuLmluZGV4T2Yoby5jbGF1ZGVTZXNzaW9uSWQpPT09LTF9KSxzaSgpLE90KCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtIZShvLCJcdTY1RTBcdTZDRDVcdTYyNzlcdTkxQ0ZcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTk4NzlcdTc2RUVcdTMwMDIiKX0pfX0pfWZ1bmN0aW9uIFNjKCl7dmFyIGU9RGF0ZS5ub3coKS04NjRlNSx0PW1yKCkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiFuLnRpbWVzdGFtcHx8bmV3IERhdGUobi50aW1lc3RhbXApLmdldFRpbWUoKTw9ZX0pO2lmKHQubGVuZ3RoKXJldHVybiBBbigiXHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU1RjUzXHU1MjREXHU2NjNFXHU3OTNBXHU3Njg0ICIrdC5sZW5ndGgrIiBcdTY3NjEgQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTZFMDVcdTdBN0EgQ2xhdWRlIFx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU2RTA1XHU3QTdBIn0pLnRoZW4oZnVuY3Rpb24obil7aWYobil7dmFyIGk9dC5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhdWRlU2Vzc2lvbklkfSk7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6aX0pfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEmJmEuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGEuZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiBpLmluZGV4T2YodS5jbGF1ZGVTZXNzaW9uSWQpPT09LTF9KSxzaSgpLHBlKCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtIZShhLCJcdTY1RTBcdTZDRDVcdTZFMDVcdTdBN0FcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfX0pfWZ1bmN0aW9uIEljKGUsdCl7dmFyIG49dD09PSJjb2RleCIsaT1uPyJyZXN1bWUtY29kZXgtaGlzdG9yeSI6InJlc3VtZS1oaXN0b3J5IixhPW4/ImRlbGV0ZS1jb2RleC1oaXN0b3J5IjoiZGVsZXRlLWhpc3RvcnkiLHU9bj9yLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzOnIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzLG89ZS5jbGF1ZGVTZXNzaW9uSWQuc2xpY2UoMCw4KSxzPWUuZmlyc3RVc2VyTWVzc2FnZXx8IihcdTdBN0FcdTRGMUFcdThCREQpIixsPUhvKGUudGltZXN0YW1wKSxkPU9vKHQsZS5jbGF1ZGVTZXNzaW9uSWQsIlx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCAiK3MpLGY9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBkZWxldGUtYnRuIiBkYXRhLWFjdGlvbj0iJythKyciIGRhdGEtY2xhdWRlLXNlc3Npb24taWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiIHRpdGxlPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JyxjPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4iIGRhdGEtYWN0aW9uPSInK2krJyIgZGF0YS1jbGF1ZGUtc2Vzc2lvbi1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiBkYXRhLWN3ZD0iJytwKGUuY3dkKSsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERCIgdGl0bGU9IicrKG4/Ilx1NjA2Mlx1NTkwRFx1NkI2NCBDb2RleCBcdTRGMUFcdThCREQiOiJcdTYwNjJcdTU5MERcdTZCNjQgQ2xhdWRlIFx1NEYxQVx1OEJERCIpKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEgNHY2aDYiLz48cGF0aCBkPSJNMy41MSAxNWE5IDkgMCAxMDUuNjQtMTEuMzZMMyAxMCIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbScrKHIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZ1W2UuY2xhdWRlU2Vzc2lvbklkXT8iIHNlbGVjdGVkIjoiIikrJyIgZGF0YS1jbGF1ZGUtaGlzdG9yeS1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiBkYXRhLXByb3ZpZGVyPSInKyhuPyJjb2RleCI6ImNsYXVkZSIpKyciIGRhdGEtY3dkPSInK3AoZS5jd2QpKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tcm93Ij4nK2QrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFpbiI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1jb21tYW5kIGNsYXVkZS1oaXN0b3J5LXByZXZpZXciPicrcChzKSsnPC9kaXY+PGRpdiBjbGFzcz0ic2Vzc2lvbi1tZXRhIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1pZCIgdGl0bGU9IicrcChlLmNsYXVkZVNlc3Npb25JZCkrJyI+JytwKG8pKyI8L3NwYW4+PHNwYW4+IitwKGwpKyc8L3NwYW4+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9InNlc3Npb24tYWN0aW9ucyI+JytjK2YrIjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEhvKGUpe2lmKCFlKXJldHVybiIiO3RyeXt2YXIgdD1uZXcgRGF0ZShlKSxuPW5ldyBEYXRlLGk9bi10LGE9TWF0aC5mbG9vcihpLzZlNCk7aWYoYTwxKXJldHVybiJcdTUyMUFcdTUyMUEiO2lmKGE8NjApcmV0dXJuIGErIiBcdTUyMDZcdTk0OUZcdTUyNEQiO3ZhciB1PU1hdGguZmxvb3IoYS82MCk7aWYodTwyNClyZXR1cm4gdSsiIFx1NUMwRlx1NjVGNlx1NTI0RCI7dmFyIG89TWF0aC5mbG9vcih1LzI0KTtyZXR1cm4gbzwzMD9vKyIgXHU1OTI5XHU1MjREIjp0LnRvTG9jYWxlRGF0ZVN0cmluZygpfWNhdGNoe3JldHVybiIifX1mdW5jdGlvbiBfbygpe3JldHVybiBmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOltdfSkudGhlbihmdW5jdGlvbihlKXtyLmNsYXVkZUhpc3Rvcnk9ZXx8W10sci5jbGF1ZGVIaXN0b3J5TG9hZGVkPSEwLHBlKCl9KS5jYXRjaChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZD0hMCxyLmNsYXVkZUhpc3Rvcnk9W10scGUoKX0pfXZhciBocj1udWxsO2Z1bmN0aW9uIGxpKCl7dmFyIGU9VGMoKTshci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiYhaHImJihocj1fbygpLnRoZW4oZnVuY3Rpb24oKXtocj1udWxsfSxmdW5jdGlvbigpe2hyPW51bGx9KSk7dmFyIHQ9aHJ8fFByb21pc2UucmVzb2x2ZSgpO3JldHVybiBQcm9taXNlLmFsbChbdCxlXSkudGhlbihmdW5jdGlvbigpe30pfWZ1bmN0aW9uIE5vKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTpbXX0pLnRoZW4oZnVuY3Rpb24oZSl7ci5jb2RleEhpc3Rvcnk9ZXx8W10sci5jb2RleEhpc3RvcnlMb2FkZWQ9ITAscGUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5jb2RleEhpc3RvcnlMb2FkZWQ9ITAsci5jb2RleEhpc3Rvcnk9W10scGUoKX0pfXZhciBWbj1udWxsO2Z1bmN0aW9uIFRjKCl7cmV0dXJuIHIuY29kZXhIaXN0b3J5TG9hZGVkP1Byb21pc2UucmVzb2x2ZSgpOlZufHwoVm49Tm8oKS50aGVuKGZ1bmN0aW9uKCl7Vm49bnVsbH0sZnVuY3Rpb24oKXtWbj1udWxsfSksVm4pfWZ1bmN0aW9uIHlhKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGFzQ29udmVyc2F0aW9uJiYhdC5tYW5hZ2VkQnlXYW5kJiYhZS5oYXModC5jbGF1ZGVTZXNzaW9uSWQpfSl9ZnVuY3Rpb24gam8oKXtLbygpLCFkaSgpJiYoci5wb2xsVGltZXI9c2V0SW50ZXJ2YWwoT3QsMTYwMCkpfXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNlc3Npb24tdGltZSIpO2UubGVuZ3RoPjAmJkJ1KCl9LDNlNCk7ZnVuY3Rpb24gYmEoKXtyLndzUmVjb25uZWN0VGltZXImJihjbGVhclRpbWVvdXQoci53c1JlY29ubmVjdFRpbWVyKSxyLndzUmVjb25uZWN0VGltZXI9bnVsbCl9dmFyIExjPTFlNCxNYz00ZTQ7ZnVuY3Rpb24gcWMoKXtSbygpLHIud3NIZWFydGJlYXRDaGVja1RpbWVyPXNldEludGVydmFsKFdvLExjKX1mdW5jdGlvbiBSbygpe3Iud3NIZWFydGJlYXRDaGVja1RpbWVyJiYoY2xlYXJJbnRlcnZhbChyLndzSGVhcnRiZWF0Q2hlY2tUaW1lciksci53c0hlYXJ0YmVhdENoZWNrVGltZXI9bnVsbCl9ZnVuY3Rpb24gV28oKXtpZighKCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTikmJnIubGFzdFdzTWVzc2FnZUF0KXt2YXIgZT1EYXRlLm5vdygpLXIubGFzdFdzTWVzc2FnZUF0O2U+TWMmJkVhKCJoZWFydGJlYXQtc3RhbGUtIitNYXRoLnJvdW5kKGUvMWUzKSsicyIpfX1mdW5jdGlvbiBFYShlKXtpZihiYSgpLHIud3Mpe3ZhciB0PXIud3M7dHJ5e3Qub25jbG9zZT1udWxsfWNhdGNoe310cnl7dC5vbmVycm9yPW51bGx9Y2F0Y2h7fXRyeXt0Lm9ubWVzc2FnZT1udWxsfWNhdGNoe310cnl7dC5jbG9zZSgpfWNhdGNoe31yLndzPW51bGx9ci53c0Nvbm5lY3RlZD0hMSxyLndzUmVjb25uZWN0QXR0ZW1wdHM9MCxkaShlKX1mdW5jdGlvbiB6bygpe2lmKCFyLndzUmVjb25uZWN0VGltZXImJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBlPXIud3NSZWNvbm5lY3RBdHRlbXB0c3x8MCx0PVs1MDAsMWUzLDJlMyw0ZTMsOGUzXSxuPXRbZTx0Lmxlbmd0aD9lOnQubGVuZ3RoLTFdO3Iud3NSZWNvbm5lY3RBdHRlbXB0cz1lKzEsci53c1JlY29ubmVjdFRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLndzUmVjb25uZWN0VGltZXI9bnVsbCxyLmNvbmZpZyYmIXIud3MmJiFkb2N1bWVudC5oaWRkZW4mJmRpKCJiYWNrb2ZmIil9LG4pfX1mdW5jdGlvbiBkaShlKXtpZighd2luZG93LldlYlNvY2tldClyZXR1cm4hMTtpZihyLndzKXt0cnl7ci53cy5jbG9zZSgpfWNhdGNoe31yLndzPW51bGx9dmFyIHQ9d2luZG93LmxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IndzczoiOiJ3czoiLG49dCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0KyIvd3MiO3RyeXt2YXIgaT1uZXcgV2ViU29ja2V0KG4pO3JldHVybiBpLm9ub3Blbj1mdW5jdGlvbigpe3Iud3M9aSxyLndzQ29ubmVjdGVkPSEwLHIubGFzdFdzTWVzc2FnZUF0PURhdGUubm93KCksci53c1JlY29ubmVjdEF0dGVtcHRzPTAsYmEoKSxyLmxhc3RTZXFCeVNlc3Npb249e30scWMoKSxQbihyLnNlbGVjdGVkSWQpLGF2KCksQ3IoIndzLXJlY29ubmVjdCIpfSxpLm9ubWVzc2FnZT1mdW5jdGlvbihhKXtyLmxhc3RXc01lc3NhZ2VBdD1EYXRlLm5vdygpO3RyeXt2YXIgdT1KU09OLnBhcnNlKGEuZGF0YSk7aWYodSYmdS50eXBlPT09InBpbmciKXtpZihyLndzJiZyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTil0cnl7ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJwb25nIix0OnUudH0pKX1jYXRjaHt9cmV0dXJufWlmKHUmJnUudHlwZT09PSJyZXN5bmNfcmVxdWlyZWQiJiZ1LnNlc3Npb25JZCl7aWYoci53cyYmci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU4pdHJ5e3Iud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToicmVzeW5jIixzZXNzaW9uSWQ6dS5zZXNzaW9uSWR9KSl9Y2F0Y2h7fXIubGFzdFNlcUJ5U2Vzc2lvbnx8KHIubGFzdFNlcUJ5U2Vzc2lvbj17fSksci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT0wO3JldHVybn1pZih1JiYodS50eXBlPT09ImluaXQifHx1LnR5cGU9PT0ib3V0cHV0IikmJnUuc2Vzc2lvbklkJiZ0eXBlb2YgdS5zZXE9PSJudW1iZXIiKXtyLmxhc3RTZXFCeVNlc3Npb258fChyLmxhc3RTZXFCeVNlc3Npb249e30pO3ZhciBvPXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF18fDA7aWYodS50eXBlPT09ImluaXQiKXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09dS5zZXE7ZWxzZSBpZih1LnNlcT09PW8rMSlyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPXUuc2VxO2Vsc2UgaWYodS5zZXE+bysxJiZvPjApe2lmKHIud3MmJnIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOKXRyeXtyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InJlc3luYyIsc2Vzc2lvbklkOnUuc2Vzc2lvbklkfSkpfWNhdGNoe31yLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPTA7cmV0dXJufWVsc2V7aWYodS5zZXE8bylyZXR1cm47ci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT11LnNlcX19UGModSl9Y2F0Y2h7fX0saS5vbmNsb3NlPWZ1bmN0aW9uKCl7ci53cz1udWxsLHIud3NDb25uZWN0ZWQ9ITEsUm8oKSx6bygpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtpLmNsb3NlKCl9LCEwfWNhdGNoe3JldHVybiB6bygpLCExfX1mdW5jdGlvbiBQYyhlKXtzd2l0Y2goZS50eXBlKXtjYXNlIm91dHB1dCI6aWYoZS5kYXRhJiZlLnNlc3Npb25JZCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwiaXNSZXNwb25kaW5nIikmJihyLl9sYXN0SXNSZXNwb25kaW5nfHwoci5fbGFzdElzUmVzcG9uZGluZz17fSksci5fbGFzdElzUmVzcG9uZGluZ1tlLnNlc3Npb25JZF09ISFlLmRhdGEuaXNSZXNwb25kaW5nKSxlLmRhdGEmJmUuc2Vzc2lvbklkKXt2YXIgdD0hIWUuZGF0YS5pbmNyZW1lbnRhbCxuPXtpZDplLnNlc3Npb25JZH0saT0hMTtpZighdCYmZS5kYXRhLm91dHB1dCE9PXZvaWQgMCYmKG4ub3V0cHV0PWUuZGF0YS5vdXRwdXQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInBlcm1pc3Npb25CbG9ja2VkIikmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJxdWV1ZWRNZXNzYWdlcyIpJiYobi5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXN8fFtdLHIucXVldWVFcG9jaCsrKSxlLmRhdGEuc3RydWN0dXJlZFN0YXRlJiYobi5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSksZS5kYXRhLnNlc3Npb25LaW5kJiYobi5zZXNzaW9uS2luZD1lLmRhdGEuc2Vzc2lvbktpbmQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInRpdGxlIikmJihuLnRpdGxlPWUuZGF0YS50aXRsZSxpPSEwKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJkZXNjcmlwdGlvbiIpJiYobi5kZXNjcmlwdGlvbj1lLmRhdGEuZGVzY3JpcHRpb24saT0hMCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3VtbWFyeSIpJiYobi5zdW1tYXJ5PWUuZGF0YS5zdW1tYXJ5KSxlLmRhdGEubWVzc2FnZXMpbi5tZXNzYWdlcz1lLmRhdGEubWVzc2FnZXMsdHlwZW9mIGUuZGF0YS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIiYmKG4ubWVzc2FnZU9mZnNldD1lLmRhdGEubWVzc2FnZU9mZnNldCksdHlwZW9mIGUuZGF0YS5tZXNzYWdlVG90YWw9PSJudW1iZXIiJiYobi5tZXNzYWdlVG90YWw9ZS5kYXRhLm1lc3NhZ2VUb3RhbCk7ZWxzZSBpZih0JiZlLmRhdGEubGFzdE1lc3NhZ2Upe3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSk7aWYoYSl7dmFyIHU9QXJyYXkuaXNBcnJheShhLm1lc3NhZ2VzKT9hLm1lc3NhZ2VzLnNsaWNlKCk6W10sbz1lLmRhdGEubWVzc2FnZUNvdW50fHwwLHM9dHlwZW9mIGEubWVzc2FnZU9mZnNldD09Im51bWJlciI/YS5tZXNzYWdlT2Zmc2V0OjAsbD11Lmxlbmd0aD4wP3VbdS5sZW5ndGgtMV06bnVsbCxkPWUuZGF0YS5sYXN0TWVzc2FnZTtsJiZkLnJvbGUmJmwucm9sZT09PWQucm9sZT91W3UubGVuZ3RoLTFdPVNwKGwsZCk6cyt1Lmxlbmd0aDxvJiZ1LnB1c2goZCksbi5tZXNzYWdlcz11LG8+MCYmKG4ubWVzc2FnZVRvdGFsPW8pfX12YXIgZj10JiZlLmRhdGEuY2h1bmsmJiFlLmRhdGEubGFzdE1lc3NhZ2UmJiFuLm1lc3NhZ2VzJiZuLm91dHB1dD09PXZvaWQgMCYmIWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUmJiFlLmRhdGEuc2Vzc2lvbktpbmQ7aWYoZil7aWYoZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkIT09dm9pZCAwKXt2YXIgYz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pO2MmJiEhYy5wZXJtaXNzaW9uQmxvY2tlZCE9ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQmJihYKG4pLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZZdCgpKX19ZWxzZSBpZigobi5vdXRwdXQhPT12b2lkIDB8fG4ubWVzc2FnZXN8fHR8fGUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCE9PXZvaWQgMHx8bi50aXRsZXx8bi5kZXNjcmlwdGlvbikmJihYKG4pLGkmJkJ1KCksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgdj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPXplKHYsWGUodix2Lm91dHB1dCwhMSkpLFl0KCksdi5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5kYXRhLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiP3lyKCk6RmEoKX19ZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJnIudGVybWluYWwmJmUuZGF0YSYmKGUuZGF0YS5jaHVuayYmTnAoZS5zZXNzaW9uSWQpPyhyLmxhc3RDaHVua0F0PURhdGUubm93KCksci50ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uc1tlLnNlc3Npb25JZF09ITAsSm4oci50ZXJtaW5hbCxlLmRhdGEuY2h1bmspLHIudGVybWluYWxTZXNzaW9uSWQ9ZS5zZXNzaW9uSWQsZS5kYXRhLm91dHB1dD8oci50ZXJtaW5hbE91dHB1dD1scyhmdShlLmRhdGEub3V0cHV0KSksci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKTpyLnRlcm1pbmFsT3V0cHV0PWxzKChyLnRlcm1pbmFsT3V0cHV0fHwiIikrZnUoZS5kYXRhLmNodW5rKSkscHQoIm91dHB1dCIpLG90KCkpOiFlLmRhdGEuaW5jcmVtZW50YWwmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsIm91dHB1dCIpJiZnaShlLnNlc3Npb25JZCxlLmRhdGEub3V0cHV0fHwiIix7bW9kZToiYXBwZW5kIn0pKTticmVhaztjYXNlInN0YXJ0ZWQiOm1uKCk7YnJlYWs7Y2FzZSJlbmRlZCI6e3ZhciBoPWUuZGF0YSYmZS5kYXRhLnN0YXR1cz9lLmRhdGEuc3RhdHVzOiJleGl0ZWQiLGc9ZS5kYXRhJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpPyEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkOiExLG09e2lkOmUuc2Vzc2lvbklkLHN0YXR1czpoLHBlcm1pc3Npb25CbG9ja2VkOmd9O2UuZGF0YSYmZS5kYXRhLm1lc3NhZ2VzJiYobS5tZXNzYWdlcz1lLmRhdGEubWVzc2FnZXMsdHlwZW9mIGUuZGF0YS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIiYmKG0ubWVzc2FnZU9mZnNldD1lLmRhdGEubWVzc2FnZU9mZnNldCksdHlwZW9mIGUuZGF0YS5tZXNzYWdlVG90YWw9PSJudW1iZXIiJiYobS5tZXNzYWdlVG90YWw9ZS5kYXRhLm1lc3NhZ2VUb3RhbCkpLGUuZGF0YSYmZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSYmKG0uc3RydWN0dXJlZFN0YXRlPWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpLGUuZGF0YSYmZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzJiYobS5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXMpLFgobSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihMbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIiksRmEoITApKTt2YXIgeT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pLEM9ZS5kYXRhJiZlLmRhdGEuZXhpdENvZGUsRT1DIT1udWxsJiZDIT09MCxCPXkmJnkuc3VtbWFyeXx8IiIsRD15P3BjKHkpOiIiLEY9RT8iXHU0RUZCXHU1MkExXHU1RjAyXHU1RTM4XHU3RUQzXHU2NzVGIjoiXHU0RUZCXHU1MkExXHU1REYyXHU1QjhDXHU2MjEwIixJPSIiO0I/KEk9QixEJiYhRSYmKEkrPWAKYCtEKSk6ST15JiZ5LmNvbW1hbmR8fGUuc2Vzc2lvbklkLEduKEU/ImVycm9yIjoic3VjY2VzcyIpLFFmKGUuc2Vzc2lvbklkLEYsSSksZ3MoZS5zZXNzaW9uSWQpLE9hKCksKGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkfHxkb2N1bWVudC5oaWRkZW4pJiZxYSh7dGl0bGU6Rixib2R5OkksdHlwZTpFPyJ3YXJuaW5nIjoic3VjY2VzcyIsaWNvbjpFPyIhIjoiXHUyNzEzIixkdXJhdGlvbjo2ZTMsYWN0aW9uTGFiZWw6Ilx1NjdFNVx1NzcwQiIsYWN0aW9uOmZ1bmN0aW9uKCl7SHQoZS5zZXNzaW9uSWQpfX0pLHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdO3ZhciBMPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSksSD1lLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZD9yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1yLnNlbGVjdGVkSWR9KTpudWxsLFU9ISEoTCYmTC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8SCYmSC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIik7VSYmZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQ/KFRzKCksWXUoZS5zZXNzaW9uSWQpKTpVfHwoci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1bXSxZdShyLnNlbGVjdGVkSWQpLGRuKCkpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoVXx8TW4oITEpLHIuY3VycmVudFRhc2s9bnVsbCxZdCgpKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmanIoKSxtbigpLnRoZW4oZnVuY3Rpb24oKXt3aSgpfSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihVfHxnbihlLnNlc3Npb25JZCkpO2JyZWFrfWNhc2UiaW5pdCI6aWYoZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJmUuZGF0YSl7ci5jaGF0UmVuZGVyVGltZXImJihjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLHIuY2hhdFJlbmRlclRpbWVyPW51bGwpLFgoZS5kYXRhKTt2YXIgeD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pO3IuY3VycmVudE1lc3NhZ2VzPXplKHh8fGUuZGF0YSxYZSh4fHxlLmRhdGEsZS5kYXRhLm91dHB1dCwhMSkpLHlyKCEwKSxZdCgpLFZvKCk7dmFyIGs9ZS5kYXRhLm91dHB1dHx8IiIsVD1yLnRlcm1pbmFsU2Vzc2lvbklkPT09ZS5zZXNzaW9uSWQsTT1yLnRlcm1pbmFsT3V0cHV0fHwiIixZPVQmJk0ubGVuZ3RoPjAmJmsubGVuZ3RoPj1NLmxlbmd0aCYmay5zdGFydHNXaXRoKE0pO05jKGssZS5zZXNzaW9uSWQsWT8iYXBwZW5kIjoicmVwbGFjZSIpLENyKCJpbml0Iil9YnJlYWs7Y2FzZSJ1c2FnZSI6YnJlYWs7Y2FzZSJ0YXNrIjplLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKHIuY3VycmVudFRhc2s9ZS5kYXRhfHxudWxsLFl0KCkpLFlmKGUuc2Vzc2lvbklkLGUuZGF0YXx8bnVsbCksSGEoZS5zZXNzaW9uSWQpLEJ1KCk7YnJlYWs7Y2FzZSJzdGF0dXMiOmlmKGUuc2Vzc2lvbklkJiZlLmRhdGEpe3ZhciB6PXtpZDplLnNlc3Npb25JZH07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3RhdHVzIikmJih6LnN0YXR1cz1lLmRhdGEuc3RhdHVzKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJleGl0Q29kZSIpJiYoei5leGl0Q29kZT1lLmRhdGEuZXhpdENvZGUpLGUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpei5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZTtlbHNlIGlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInN0YXR1cyIpKXt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWQ9PT1lLnNlc3Npb25JZH0pO2EmJmEuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJih6LnN0cnVjdHVyZWRTdGF0ZT1PYmplY3QuYXNzaWduKHt9LGEuc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ZS5kYXRhLnN0YXR1cz09PSJydW5uaW5nIn0pKX1pZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJxdWV1ZWRNZXNzYWdlcyIpJiYoei5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXN8fFtdLHIucXVldWVFcG9jaCsrKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpJiYoei5wZXJtaXNzaW9uQmxvY2tlZD0hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCksZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0KXt6LnBlbmRpbmdFc2NhbGF0aW9uPXtzY29wZTplLmRhdGEucGVybWlzc2lvblJlcXVlc3Quc2NvcGUsdGFyZ2V0OmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC50YXJnZXQscmVhc29uOmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC5wcm9tcHR9O3ZhciBRPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSksbGU9USYmKFEuc3VtbWFyeXx8US5jb21tYW5kKXx8ZS5zZXNzaW9uSWQsZWU9ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnByb21wdHx8Ilx1OTcwMFx1ODk4MVx1Njc0M1x1OTY1MFx1NUJBMVx1NjI3OSIsWj1lLmRhdGEucGVybWlzc2lvblJlcXVlc3QudGFyZ2V0LHE9bGU7Wj9xKz1gCmArZWUrIiBceEI3ICIrWjpxKz1gCmArZWUsR24oIm1lZGl1bSIpLEdmKGUuc2Vzc2lvbklkLHEpLGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZxYSh7dGl0bGU6Ilx1OTcwMFx1ODk4MVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyIsYm9keTpxLHR5cGU6Indhcm5pbmciLGljb246IiEiLGR1cmF0aW9uOjAsYWN0aW9uTGFiZWw6Ilx1NTNCQlx1NTkwNFx1NzQwNiIsYWN0aW9uOmZ1bmN0aW9uKCl7SHQoZS5zZXNzaW9uSWQpfX0pfWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZD09PSExJiYoei5wZW5kaW5nRXNjYWxhdGlvbj1udWxsKSxlLmRhdGEuYXBwcm92YWxTdGF0cyYmKHouYXBwcm92YWxTdGF0cz1lLmRhdGEuYXBwcm92YWxTdGF0cyksWCh6KSxIYShlLnNlc3Npb25JZCksT2EoKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFl0KCksZS5kYXRhLmFwcHJvdmFsU3RhdHMmJlZvKCksei5zdHJ1Y3R1cmVkU3RhdGUmJih6LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodHx8KExuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxUcygpKSxGYSgpKSl9YnJlYWs7Y2FzZSJub3RpZmljYXRpb24iOmUuZGF0YSYmKGUuZGF0YS5raW5kPT09InVwZGF0ZSI/dnMoZS5kYXRhLmN1cnJlbnR8fCItIixlLmRhdGEubGF0ZXN0fHwiLSIpOmUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXN0YXJ0Ij9ucChlLmRhdGEuY3VycmVudHx8Ii0iLGUuZGF0YS5sYXRlc3R8fCItIik6KGUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXJlc3RhcnQifHxlLmRhdGEua2luZD09PSJyZXN0YXJ0IikmJmxuKCkpO2JyZWFrfX1mdW5jdGlvbiBZdCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjdXJyZW50LXRhc2siKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJtaXNzaW9uLWFjdGlvbnMiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiKTtpZihlKXt2YXIgaT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odil7cmV0dXJuIHYuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpJiZpLnByb3ZpZGVyPT09ImNvZGV4IiYmKHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKSk7dmFyIGE9aSYmaS5wZW5kaW5nRXNjYWxhdGlvbj9pLnBlbmRpbmdFc2NhbGF0aW9uOm51bGwsdT1pJiZpLnByb3ZpZGVyIT09ImNvZGV4Ij9hfHxpLnBlcm1pc3Npb25CbG9ja2VkOiExO2lmKHUpe3ZhciBvPWkmJmkuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztpZihuKWlmKG8pbi50ZXh0Q29udGVudD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU0RTJELi4uIjtlbHNlIGlmKGEpe3ZhciBzPWEucmVhc29ufHwiXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIixsPWEudGFyZ2V0PyIgXHhCNyAiK2EudGFyZ2V0OiIiO24udGV4dENvbnRlbnQ9cytsfWVsc2Ugbi50ZXh0Q29udGVudD0iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjtpZih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2QmJmQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhIW8pLGYmJmYuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhIW8pfWUudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpO3JldHVybn1lLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGM9ci5jdXJyZW50VGFzaztjJiZjLnRpdGxlPyhlLnRleHRDb250ZW50PWMudGl0bGUsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk6KGUudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSl9fWZ1bmN0aW9uIFZvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmFsLXN0YXRzIik7aWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LmFwcHJvdmFsU3RhdHM7aWYoIW58fG4udG90YWw9PT0wKXtlLmNsYXNzTmFtZT0iYXBwcm92YWwtc3RhdHMgaGlkZGVuIixlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5jbGFzc05hbWU9ImFwcHJvdmFsLXN0YXRzIixlLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWRpdmlkZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIGlkPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgdGl0bGU9Ilx1NjcyQ1x1NkIyMVx1NEYxQVx1OEJERFx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMSI+PHN2ZyBjbGFzcz0iYXBwcm92YWwtc3RhdHMtaWNvbiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy10b3RhbCI+JytuLnRvdGFsKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCIgaWQ9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMTwvc3Bhbj4nKyhuLmNvbW1hbmQ+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1YoInRlcm1pbmFsIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQ3RFx1NEVFNFx1NjI2N1x1ODg0Qzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24uY29tbWFuZCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsobi5maWxlPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJlZGl0Iix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NjU4N1x1NEVGNlx1NTE5OVx1NTE2NTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24uZmlsZSsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsobi50b29sPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJ3cmVuY2giLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1MTc2XHU0RUQ2XHU1REU1XHU1MTc3PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrbi50b29sKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93IGFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1YoInNpZ21hIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQwOFx1OEJBMTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24udG90YWwrIjwvc3Bhbj48L3NwYW4+PC9zcGFuPiI7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIuYXBwcm92YWwtc3RhdHMtYmFkZ2UiKTtpJiYoaS5jbGFzc0xpc3QucmVtb3ZlKCJhcHByb3ZhbC1zdGF0cy1wdWxzZSIpLGkub2Zmc2V0V2lkdGgsaS5jbGFzc0xpc3QuYWRkKCJhcHByb3ZhbC1zdGF0cy1wdWxzZSIpKX19ZnVuY3Rpb24gT2MoKXtpZihHbigibGlnaHQiKSwhIXIuc2VsZWN0ZWRJZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITApLHQmJih0LmRpc2FibGVkPSEwKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvYXBwcm92ZS1wZXJtaXNzaW9uIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe0Eobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59WChuKSxZdCgpfSkuY2F0Y2goZnVuY3Rpb24obil7QShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYyNzlcdTUxQzZcdTYzODhcdTY3NDNcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe2UmJihlLmRpc2FibGVkPSExKSx0JiYodC5kaXNhYmxlZD0hMSl9KX19ZnVuY3Rpb24gSGMoKXtpZihHbigibGlnaHQiKSwhIXIuc2VsZWN0ZWRJZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITApLHQmJih0LmRpc2FibGVkPSEwKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZGVueS1wZXJtaXNzaW9uIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe0Eobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59WChuKSxZdCgpfSkuY2F0Y2goZnVuY3Rpb24obil7QShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYyRDJcdTdFRERcdTYzODhcdTY3NDNcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe2UmJihlLmRpc2FibGVkPSExKSx0JiYodC5kaXNhYmxlZD0hMSl9KX19ZnVuY3Rpb24gX2MoKXtpZihyLnNlbGVjdGVkSWQpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUmJmUucHJvdmlkZXI9PT0iY29kZXgiKXtBKCJDb2RleCBcdTRGMUFcdThCRERcdTU2RkFcdTVCOUFcdTRFRTUgZnVsbC1hY2Nlc3MgUFRZIFx1NTQyRlx1NTJBOFx1RkYwQ1x1NEUwRFx1NjUyRlx1NjMwMVx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1MzAwMiIsImluZm8iKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tYXBwcm92ZS10b2dnbGUiKTt0JiYodC5zdHlsZS5vcGFjaXR5PSIwLjUiKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvdG9nZ2xlLWF1dG8tYXBwcm92ZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtBKG4uZXJyb3IsImVycm9yIik7cmV0dXJufVgobiksVW8oKTt2YXIgaT1uLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7QShpPyJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTVGMDBcdTU0MkYiOiJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQiLCJpbmZvIil9KS5jYXRjaChmdW5jdGlvbihuKXtBKG4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1MzAwMiIsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dCYmKHQuc3R5bGUub3BhY2l0eT0iIil9KX19ZnVuY3Rpb24gVW8oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by1hcHByb3ZlLXRvZ2dsZSIpLHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoUGwodCkpe2UmJmUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpO3JldHVybn1pZihlKXt2YXIgbj0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIsaT10JiZ0LmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7aT8oZS5jbGFzc05hbWU9bisiIGFjdGl2ZSIsZS50aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiLGUuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCJ0cnVlIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTU0MkZcdTc1MjhcdUZGMENcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiKSxlLmlubmVySFRNTD1WKCJzaGllbGRDaGVjayIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43LGNsczoiY29tcG9zZXItcGlsbC1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItcGlsbC1sYWJlbCI+XHU4MUVBXHU1MkE4PC9zcGFuPicpOihlLmNsYXNzTmFtZT1uLGUudGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1RjAwXHU1NDJGIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRFx1RkYwQ1x1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiIpLGUuaW5uZXJIVE1MPVYoInNoaWVsZCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43LGNsczoiY29tcG9zZXItcGlsbC1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItcGlsbC1sYWJlbCI+XHU2MjRCXHU1MkE4PC9zcGFuPicpfX1mdW5jdGlvbiBOYyhlLHQsbil7cmV0dXJuIHIudGVybWluYWw/Z2kodHx8ci5zZWxlY3RlZElkLGUse21vZGU6bnx8ImFwcGVuZCJ9KTohMX1mdW5jdGlvbiBLbygpe3IucG9sbFRpbWVyJiYoY2xlYXJJbnRlcnZhbChyLnBvbGxUaW1lciksci5wb2xsVGltZXI9bnVsbCl9ZnVuY3Rpb24gUWcoZSl7ci5jdXJyZW50Vmlldz1lfHwidGVybWluYWwiLHIuY3VycmVudFZpZXchPT0idGVybWluYWwiJiYoTW4oITEpLE5zKCkpLEtpKCksSmEoKTt2YXIgdD1EdCgpO3QmJihyLmN1cnJlbnRNZXNzYWdlcz16ZSh0LFhlKHQsdC5vdXRwdXQsITApKSksb3QoKSxyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmKHF0KCEwKSxyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pKX1mdW5jdGlvbiB5cihlKXtyLnJlbmRlclBlbmRpbmcmJiFlfHwoci5yZW5kZXJQZW5kaW5nPSEwLGU/KFRpKCEwKSxyLnJlbmRlclBlbmRpbmc9ITEpOnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe1RpKCExKSxyLnJlbmRlclBlbmRpbmc9ITF9KSl9ci5jaGF0UmVuZGVyVGltZXI9bnVsbDtmdW5jdGlvbiBGYShlKXtpZighKHIuY2hhdFJlbmRlclRpbWVyJiYhZSkpe2lmKHIuY2hhdFJlbmRlclRpbWVyJiZjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLGUpe3IuY2hhdFJlbmRlclRpbWVyPW51bGwseXIoKTtyZXR1cm59dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnN0YXR1cz09PSJydW5uaW5nIiYmdC5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIixpPW4/b3M6c3M7ci5jaGF0UmVuZGVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2hhdFJlbmRlclRpbWVyPW51bGw7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7YSYmKHIuY3VycmVudE1lc3NhZ2VzPXplKGEsWGUoYSxhLm91dHB1dCwhMCkpKSx5cigpfSxpKX19dmFyIHdhPTAsY2k9MCxKbz0wLGJyPTA7ZnVuY3Rpb24gQ2EoKXtyZXR1cm4gd2luZG93Ll9fd2FuZElvc05hdGl2ZT09PSEwfWZ1bmN0aW9uIFlvKGUpe0pvPU1hdGgubWF4KEpvLERhdGUubm93KCkrKGV8fDE4MDApKX1mdW5jdGlvbiBHbyhlLHQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2ZpKG4pJiZuIT09dHx8WW8oZSl9LDMwKX1mdW5jdGlvbiBqYyhlKXtyZXR1cm4gTWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUmJmUuaGVpZ2h0fHwwLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8MCxkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodHx8MCl9ZnVuY3Rpb24gUmMoZSl7dmFyIHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG49TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZSYmZS53aWR0aHx8MCx0JiZ0LmNsaWVudFdpZHRofHwwKSxpPWpjKGUpO3JldHVybiF3YXx8TWF0aC5hYnMobi13YSk+OD8od2E9bixjaT1pKTppPmNpJiYoY2k9aSksTWF0aC5tYXgoMSxNYXRoLnJvdW5kKGNpfHxpfHwxKSl9ZnVuY3Rpb24gV2MoZSx0LG4saSl7cmV0dXJuIGV8fCFDYSgpPyExOnQ+MHx8aT5uKzF9ZnVuY3Rpb24gVW4oZSl7dmFyIHQ9d2luZG93LnZpc3VhbFZpZXdwb3J0O2lmKHQpe3ZhciBuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtpZihuLmNsYXNzTGlzdC50b2dnbGUoImlzLWtleWJvYXJkLW9wZW4iLCEhZSksd2luZG93Ll9fd2FuZEltZU5hdGl2ZSl7bi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtdG9wIiwiMHB4Iiksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtaGVpZ2h0IixNYXRoLnJvdW5kKHQuaGVpZ2h0KSsicHgiKTtyZXR1cm59dmFyIGk9UmModCksYT1NYXRoLm1heCgwLE1hdGgucm91bmQodC5vZmZzZXRUb3B8fDApKSx1PU1hdGgubWF4KDEsTWF0aC5yb3VuZCh0LmhlaWdodCkpOyghZSYmQ2EoKXx8V2MoZSxhLHUsaSkpJiYoYT0wLHU9TWF0aC5tYXgodSxpKSksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtdG9wIixhKyJweCIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LWhlaWdodCIsdSsicHgiKSwoZXx8KHdpbmRvdy5zY3JvbGxZfHwwKT4wKSYmWmEoKX19ZnVuY3Rpb24gZmkoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS50YWdOYW1lO2lmKHQ9PT0iVEVYVEFSRUEifHx0PT09IlNFTEVDVCIpcmV0dXJuITA7aWYodD09PSJJTlBVVCIpe3ZhciBuPShlLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwidGV4dCIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIS9eKGJ1dHRvbnxjaGVja2JveHxjb2xvcnxmaWxlfGhpZGRlbnxpbWFnZXxyYWRpb3xyYW5nZXxyZXNldHxzdWJtaXQpJC9pLnRlc3Qobil9cmV0dXJuISFlLmlzQ29udGVudEVkaXRhYmxlfWZ1bmN0aW9uIHpjKCl7aWYoISgidmlzdWFsVmlld3BvcnQiaW4gd2luZG93KXx8d2luZG93Ll9fd2FuZFZpZXdwb3J0SGFuZGxlcnNCb3VuZClyZXR1cm47d2luZG93Ll9fd2FuZFZpZXdwb3J0SGFuZGxlcnNCb3VuZD0hMDt2YXIgZT13aW5kb3cudmlzdWFsVmlld3BvcnQsdD1lLmhlaWdodCxuPSExLGk9TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZS53aWR0aHx8MCksYT1NYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZS5oZWlnaHR8fDApLHU9W107ZnVuY3Rpb24gbygpe3JldHVybiBNYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZS5oZWlnaHR8fDApfWZ1bmN0aW9uIHMoKXt2YXIgZz1NYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aHx8MCxlLndpZHRofHwwKSxtPW8oKTtpZihNYXRoLmFicyhnLWkpPjgpe2k9ZyxhPW07cmV0dXJufW0+YSYmKGE9bSl9ZnVuY3Rpb24gbChnLG0pe3ZhciB5PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsQz15PT09Z3x8ZmkoeSksRT1hLWUuaGVpZ2h0LEI9YS0od2luZG93LmlubmVySGVpZ2h0fHxlLmhlaWdodHx8MCksRD1EYXRlLm5vdygpPGJyO3JldHVybiBEPyEhKEMmJihFPjEyMHx8Qj4xMjApKTohIShtPjgwfHxDJiYoRT4xMjB8fEI+MTIwKXx8biYmKEU+ODB8fG0+MzIpKX1mdW5jdGlvbiBkKCl7dS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2NsZWFyVGltZW91dChnKX0pLHU9WzYwLDE4MCwzNjAsNjIwLDkwMF0ubWFwKGZ1bmN0aW9uKGcpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VW4obil9LGcpfSl9ZnVuY3Rpb24gZigpe1swLDUwLDEyMCwyMjAsMzYwLDU2MF0uZm9yRWFjaChmdW5jdGlvbihnKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YygpO3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09bSYmSWkobSl9LGcpfSl9ZnVuY3Rpb24gYygpe2lmKGUpe3ZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxtPXdpbmRvdy5pbm5lckhlaWdodC1lLmhlaWdodC1lLm9mZnNldFRvcDtzKCk7dmFyIHk9bChnLG0pLEM9TWF0aC5hYnMoZS5oZWlnaHQtdCk+ODtpZihVbih5KSx5JiYoIW58fEMpJiZDdihlLGcpJiZJaShnKSwhbiYmeSl7dmFyIEU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fHhhKCk7UWUoImtleWJvYXJkLW9wZW4iLHtmb3JjZVJlcGxheTohMH0pLHdpbmRvdy5fX3dhbmRJbWVOYXRpdmV8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtVbighMCl9LDIyMCksZCgpLEUmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZwdCgiZm9yY2UiKX0sMjIwKX1pZihuJiYheSl7dmFyIEI9ISF3aW5kb3cuX193YW5kSW1lTmF0aXZlO0J8fChZbygyMjAwKSxicj1EYXRlLm5vdygpKzEyMDAsVW4oITEpLFphKCkpLGQoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Qnx8KFVuKCExKSxaYSgpKSxRZSgia2V5Ym9hcmQtY2xvc2UiLHtmb3JjZVJlcGxheTohMH0pLHB0KCJrZXlib2FyZCIpfSwyMDApfUMmJm49PT15JiZRZSgidmlld3BvcnQiKSxuPXksdD1lLmhlaWdodH19dmFyIHY9bnVsbDtmdW5jdGlvbiBoKCl7diE9PW51bGwmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHYpLHY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dj1udWxsLGMoKX0pfWUuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixoKSxlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0idmlzaWJsZSImJihoKCksc2V0VGltZW91dChoLDI0MCksc2V0VGltZW91dChoLDcyMCkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbihnKXtnJiZnLnBlcnNpc3RlZCYmKGgoKSxzZXRUaW1lb3V0KGgsMjQwKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsZnVuY3Rpb24oZyl7IWd8fCFnLnRhcmdldHx8ZmkoZy50YXJnZXQpJiYoR28oMTYwMCxnLnRhcmdldCksQ2EoKSYmKGJyPU1hdGgubWF4KGJyLERhdGUubm93KCkrMTIwMCkpLHNldFRpbWVvdXQoaCw4MCksc2V0VGltZW91dChoLDQyMCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsZnVuY3Rpb24oZyl7IWd8fCFnLnRhcmdldHx8IWZpKGcudGFyZ2V0KXx8ZigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtaW9zLWltZS1zdGF0ZSIsZnVuY3Rpb24oZyl7dmFyIG09ZyYmZy5kZXRhaWwmJmcuZGV0YWlsLnN0YXRlO209PT0iaGlkZGVuIiYmKGJyPURhdGUubm93KCkrOTAwKSxmKCksZCgpfSksYygpfWZ1bmN0aW9uIFZjKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1yZXNpemUtaGFuZGxlIix0LmlubmVySFRNTD0iJiM4OTQyOyIsZS5hcHBlbmRDaGlsZCh0KTt2YXIgbj0hMSxpPTAsYT0wO3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbih1KXtuPSEwLGk9dS5jbGllbnRZLGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9Im5zLXJlc2l6ZSIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSJub25lIix1LnByZXZlbnREZWZhdWx0KCl9KSxyLnJlc2l6ZU1vdXNlTW92ZT1mdW5jdGlvbih1KXtpZihuKXt2YXIgbz11LmNsaWVudFktaSxzPU1hdGgubWF4KDIwMCxNYXRoLm1pbihhK28sd2luZG93LmlubmVySGVpZ2h0LTIwMCkpO2Uuc3R5bGUuaGVpZ2h0PXMrInB4IixlLnN0eWxlLmZsZXg9Im5vbmUiLHF0KCl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHIucmVzaXplTW91c2VNb3ZlKSxyLnJlc2l6ZU1vdXNlVXA9ZnVuY3Rpb24oKXtuJiYobj0hMSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9IiIscXQoKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHIucmVzaXplTW91c2VVcCksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbih1KXtuPSEwLGk9dS50b3VjaGVzWzBdLmNsaWVudFksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCx1LnByZXZlbnREZWZhdWx0KCl9LHtwYXNzaXZlOiExfSksci5yZXNpemVUb3VjaE1vdmU9ZnVuY3Rpb24odSl7aWYobil7dmFyIG89dS50b3VjaGVzWzBdLmNsaWVudFktaSxzPU1hdGgubWF4KDIwMCxNYXRoLm1pbihhK28sd2luZG93LmlubmVySGVpZ2h0LTIwMCkpO2Uuc3R5bGUuaGVpZ2h0PXMrInB4IixlLnN0eWxlLmZsZXg9Im5vbmUiLHF0KCksdS5wcmV2ZW50RGVmYXVsdCgpfX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnJlc2l6ZVRvdWNoTW92ZSx7cGFzc2l2ZTohMX0pLHIucmVzaXplVG91Y2hFbmQ9ZnVuY3Rpb24oKXtuJiYobj0hMSxxdCgpKX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHIucmVzaXplVG91Y2hFbmQpfX1mdW5jdGlvbiBRbygpe3JldHVybiEhRHQoKX1mdW5jdGlvbiBCYShlKXt2YXIgdD1NYXRoLm1heChjbix3aW5kb3cuaW5uZXJXaWR0aC1CaS1jbiksbj1NYXRoLm1heChjbix3aW5kb3cuaW5uZXJIZWlnaHQtQmktY24pO3JldHVybntyaWdodDpNYXRoLm1pbihNYXRoLm1heChjbixlLnJpZ2h0KSx0KSxib3R0b206TWF0aC5taW4oTWF0aC5tYXgoY24sZS5ib3R0b20pLG4pfX1mdW5jdGlvbiAkbygpe2lmKHIuam95c3RpY2tCYWxsRWwpe3ZhciBlPUJhKHIuam95c3RpY2tQb3N8fHtyaWdodDoxOCxib3R0b206OTZ9KTtyLmpveXN0aWNrQmFsbEVsLnN0eWxlLnJpZ2h0PWUucmlnaHQrInB4IixyLmpveXN0aWNrQmFsbEVsLnN0eWxlLmJvdHRvbT1lLmJvdHRvbSsicHgifX1mdW5jdGlvbiBVYyhlLHQpe3ZhciBuPUJhKHtyaWdodDplLGJvdHRvbTp0fSk7ci5qb3lzdGlja1Bvcz1uO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1iYWxsLXBvcyIsSlNPTi5zdHJpbmdpZnkobikpfWNhdGNoe319ZnVuY3Rpb24gS2MoKXtmdW5jdGlvbiBlKHUsbyxzKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3anAta2V5Jysocz8iICIrczoiIikrJyIgZGF0YS1rZXk9IicrdSsnIj4nK28rIjwvYnV0dG9uPiJ9dmFyIHQ9JzxkaXYgY2xhc3M9IndqcC1kcGFkIj48ZGl2IGNsYXNzPSJ3anAtZHBhZC1yb3ciPicrZSgidXAiLCJcdTIxOTEiLCJ3anAtZGlyIikrJzwvZGl2PjxkaXYgY2xhc3M9IndqcC1kcGFkLXJvdyI+JytlKCJsZWZ0IiwiXHUyMTkwIiwid2pwLWRpciIpK2UoImRvd24iLCJcdTIxOTMiLCJ3anAtZGlyIikrZSgicmlnaHQiLCJcdTIxOTIiLCJ3anAtZGlyIikrIjwvZGl2PjwvZGl2PiIsbj0iIixpO2ZvcihpPTA7aTxVYS5sZW5ndGg7aSsrKW4rPWUoVWFbaV0ua2V5LFVhW2ldLmxhYmVsLCIiKTt2YXIgYT0nPGRpdiBjbGFzcz0id2pwLWhlYWRlciI+PHNwYW4gY2xhc3M9IndqcC10aXRsZSI+JytWKCJwYXciLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuNixjbHM6IndqcC10aXRsZS1pY29uIn0pKyc8c3Bhbj5cdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0Y8L3NwYW4+PC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0id2pwLWNsb3NlIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0YiPicrVigieCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6Mn0pKyI8L2J1dHRvbj48L2Rpdj4iK3QrJzxkaXYgY2xhc3M9IndqcC1ncmlkIHdqcC1mbmtleXMiPicrbisiPC9kaXY+IjtyZXR1cm4gYX1mdW5jdGlvbiBKYygpe2lmKCFyLmpveXN0aWNrUm9vdEVsKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1yb290IixbInBvaW50ZXJkb3duIiwicG9pbnRlcnVwIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIiwiY2xpY2siXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2UuYWRkRXZlbnRMaXN0ZW5lcihhLFhvLCEwKX0pO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLWJhY2tkcm9wIixlLmFwcGVuZENoaWxkKHQpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLXBhbmVsIixuLmlubmVySFRNTD1LYygpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRmKSxlLmFwcGVuZENoaWxkKG4pO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLWJhbGwiLGkuc2V0QXR0cmlidXRlKCJyb2xlIiwiYnV0dG9uIiksaS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJXYW5kIFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3RiIpLGkuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NzBCOVx1NTFGQlx1NjI1M1x1NUYwMFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3Rlx1RkYwQ1x1NjJENlx1NTJBOFx1NTNFRlx1NzlGQlx1NTJBOFx1NEY0RFx1N0Y2RSIpLGkuaW5uZXJIVE1MPVYoInBhdyIse3NpemU6MjUsc3Ryb2tlV2lkdGg6MS42LGNsczoid2FuZC1qb3lzdGljay1sb2dvIn0pLGUuYXBwZW5kQ2hpbGQoaSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxyLmpveXN0aWNrUm9vdEVsPWUsci5qb3lzdGlja0JhY2tkcm9wRWw9dCxyLmpveXN0aWNrUGFuZWxFbD1uLHIuam95c3RpY2tCYWxsRWw9aSwkbygpLGkuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLFljKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGZ1bmN0aW9uKGEpe3Iuam95c3RpY2tQaW5uZWRPcGVuJiZyLmpveXN0aWNrR2VzdHVyZT09bnVsbCYmKGEucHJldmVudERlZmF1bHQoKSxFcigpKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpfSksci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXI9ZnVuY3Rpb24oKXskbygpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksbnMoKX19ZnVuY3Rpb24gWG8oKXtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLW5hdGl2ZS1pbnB1dCIpKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKGUmJnR5cGVvZiBlLmJsdXI9PSJmdW5jdGlvbiIpdHJ5e2UuYmx1cigpfWNhdGNoe31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZih0JiZ0eXBlb2YgdC5ibHVyPT0iZnVuY3Rpb24iKXRyeXt0LmJsdXIoKX1jYXRjaHt9fSwwKX19ZnVuY3Rpb24gWWMoZSl7aWYoUW8oKSYmISgoZS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGUucG9pbnRlclR5cGU9PT0icGVuIikmJmUuYnV0dG9uIT09MCkmJnIuam95c3RpY2tQb2ludGVySWQ9PT1udWxsKXtYbygpLGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB0PWUucG9pbnRlclR5cGU9PT0ibW91c2UifHxlLnBvaW50ZXJUeXBlPT09InBlbiI7ci5qb3lzdGlja1BvaW50ZXJJZD1lLnBvaW50ZXJJZCxyLmpveXN0aWNrUHJlc3NTdGFydD17eDplLmNsaWVudFgseTplLmNsaWVudFksdDpEYXRlLm5vdygpfSxyLmpveXN0aWNrR2VzdHVyZT0icGVuZGluZyI7dHJ5e3Iuam95c3RpY2tCYWxsRWwuc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe310fHwoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmpveXN0aWNrR2VzdHVyZT09PSJwZW5kaW5nIiYmWm8oKX0sV3ApKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9R2Msci5qb3lzdGlja1VwSGFuZGxlcj1RYyxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIuam95c3RpY2tVcEhhbmRsZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIuam95c3RpY2tVcEhhbmRsZXIpfX1mdW5jdGlvbiBabygpe3Iuam95c3RpY2tHZXN0dXJlPSJtb3ZlIixyLmpveXN0aWNrUGlubmVkT3BlbiYmRXIoKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpfWZ1bmN0aW9uIGVzKGUsdCl7aWYoci5qb3lzdGlja0JhbGxFbCl7dmFyIG49QmEoe3JpZ2h0OndpbmRvdy5pbm5lcldpZHRoLWUtQmkvMixib3R0b206d2luZG93LmlubmVySGVpZ2h0LXQtQmkvMn0pO3Iuam95c3RpY2tCYWxsRWwuc3R5bGUucmlnaHQ9bi5yaWdodCsicHgiLHIuam95c3RpY2tCYWxsRWwuc3R5bGUuYm90dG9tPW4uYm90dG9tKyJweCJ9fWZ1bmN0aW9uIEdjKGUpe2lmKCEoZS5wb2ludGVySWQhPT1yLmpveXN0aWNrUG9pbnRlcklkfHwhci5qb3lzdGlja0JhbGxFbCkpe2lmKGUucHJldmVudERlZmF1bHQoKSxyLmpveXN0aWNrR2VzdHVyZT09PSJtb3ZlIil7ZXMoZS5jbGllbnRYLGUuY2xpZW50WSk7cmV0dXJufWlmKHIuam95c3RpY2tHZXN0dXJlPT09InBlbmRpbmciKXt2YXIgdD1lLmNsaWVudFgtci5qb3lzdGlja1ByZXNzU3RhcnQueCxuPWUuY2xpZW50WS1yLmpveXN0aWNrUHJlc3NTdGFydC55O01hdGguc3FydCh0KnQrbipuKTw9enB8fChlLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8ZS5wb2ludGVyVHlwZT09PSJwZW4iPyhabygpLGVzKGUuY2xpZW50WCxlLmNsaWVudFkpKTooci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tHZXN0dXJlPSJjYW5jZWxsZWQiKSl9fX1mdW5jdGlvbiBRYyhlKXtpZihlLnBvaW50ZXJJZD09PXIuam95c3RpY2tQb2ludGVySWQpe3Iuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKTt2YXIgdD1yLmpveXN0aWNrR2VzdHVyZTtpZih0PT09InBlbmRpbmciKXt2YXIgbj1lLmNsaWVudFgtci5qb3lzdGlja1ByZXNzU3RhcnQueCxpPWUuY2xpZW50WS1yLmpveXN0aWNrUHJlc3NTdGFydC55O01hdGguc3FydChuKm4raSppKTw9VnAmJlpjKCl9ZWxzZSBpZih0PT09Im1vdmUiKXt2YXIgYT1yLmpveXN0aWNrQmFsbEVsP3Iuam95c3RpY2tCYWxsRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6bnVsbDthJiZVYyh3aW5kb3cuaW5uZXJXaWR0aC1hLnJpZ2h0LHdpbmRvdy5pbm5lckhlaWdodC1hLmJvdHRvbSl9dHMoKX19ZnVuY3Rpb24gdHMoKXtpZihyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja1BvaW50ZXJJZCE9PW51bGwpdHJ5e3Iuam95c3RpY2tCYWxsRWwucmVsZWFzZVBvaW50ZXJDYXB0dXJlKHIuam95c3RpY2tQb2ludGVySWQpfWNhdGNoe31yLmpveXN0aWNrTW92ZUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9bnVsbCksci5qb3lzdGlja1VwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsci5qb3lzdGlja1VwSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsci5qb3lzdGlja1VwSGFuZGxlciksci5qb3lzdGlja1VwSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJiFyLmpveXN0aWNrUGlubmVkT3BlbiYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksci5qb3lzdGlja1BvaW50ZXJJZD1udWxsLHIuam95c3RpY2tHZXN0dXJlPW51bGwsci5qb3lzdGlja1ByZXNzU3RhcnQ9bnVsbH1mdW5jdGlvbiAkYyhlKXtpZihlPT09ImN0cmwifHxlPT09ImFsdCJ8fGU9PT0ic2hpZnQiKXtyLm1vZGlmaWVyc1tlXT0hci5tb2RpZmllcnNbZV0sRnIoKTtyZXR1cm59dmFyIHQ9RHQoKTtpZih0JiZ1ZSh0KSl7KGU9PT0iY3RybF9jInx8ZT09PSJlc2NhcGUiKSYmWGModCxlKSxraSgpLEZyKCk7cmV0dXJufXZhciBuPWpzKGUse2N0cmw6ci5tb2RpZmllcnMuY3RybCxhbHQ6ci5tb2RpZmllcnMuYWx0LHNoaWZ0OnIubW9kaWZpZXJzLnNoaWZ0fSk7biYmX3MobixlKSxraSgpLEZyKCksZXYoKX1mdW5jdGlvbiBYYyhlLHQpeyFlfHwhZS5pZHx8ZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9tZXNzYWdlcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OiIiLGludGVycnVwdDohMCxwcmVzZXJ2ZVF1ZXVlOiEwfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGkpe3Rocm93IG5ldyBFcnJvcihpJiZpLmVycm9yfHwiXHU0RTJEXHU2NUFEXHU1OTMxXHU4RDI1IChrZXk9Iit0KyIpIil9KX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5pZCYmKFgobiksbi5pZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciBpPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz16ZShpLFhlKGksbi5vdXRwdXQsITEpKSx5cighMCksdHlwZW9mIG50PT0iZnVuY3Rpb24iJiZudCgpfX0pLmNhdGNoKGZ1bmN0aW9uKG4pe24mJm4ubWVzc2FnZSYmY29uc29sZS5kZWJ1ZygiW3dhbmRdIGpveXN0aWNrIGludGVycnVwdCBuby1vcDoiLG4ubWVzc2FnZSl9KX1mdW5jdGlvbiBaYygpe3Iuam95c3RpY2tQaW5uZWRPcGVuP0VyKCk6ZWYoKX1mdW5jdGlvbiBlZigpe2lmKCEoIXIuam95c3RpY2tQYW5lbEVsfHwhci5qb3lzdGlja0JhbGxFbCkpe3Iuam95c3RpY2tQaW5uZWRPcGVuPSEwO3ZhciBlPXIuam95c3RpY2tCYWxsRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ci5qb3lzdGlja1BhbmVsRWwuc3R5bGUucmlnaHQ9TWF0aC5tYXgoY24sd2luZG93LmlubmVyV2lkdGgtZS5yaWdodCkrInB4IixyLmpveXN0aWNrUGFuZWxFbC5zdHlsZS5ib3R0b209TWF0aC5tYXgoY24sd2luZG93LmlubmVySGVpZ2h0LWUudG9wKzEwKSsicHgiLHIuam95c3RpY2tQYW5lbEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHIuam95c3RpY2tCYWxsRWwuY2xhc3NMaXN0LmFkZCgicGFuZWwtb3BlbiIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxGcigpfX1mdW5jdGlvbiBFcigpe3Iuam95c3RpY2tQaW5uZWRPcGVuPSExLHIuam95c3RpY2tQYW5lbEVsJiZyLmpveXN0aWNrUGFuZWxFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5yZW1vdmUoInBhbmVsLW9wZW4iKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0dlc3R1cmU9PW51bGwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpfWZ1bmN0aW9uIEZyKCl7ci5qb3lzdGlja1BhbmVsRWwmJlsiY3RybCIsImFsdCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ci5qb3lzdGlja1BhbmVsRWwucXVlcnlTZWxlY3RvcignLndqcC1tb2RbZGF0YS1rZXk9IicrZSsnIl0nKTt0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFyLm1vZGlmaWVyc1tlXSl9KX1mdW5jdGlvbiB0ZihlKXt2YXIgdD1lLnRhcmdldCYmZS50YXJnZXQuY2xvc2VzdD9lLnRhcmdldC5jbG9zZXN0KCIud2pwLWNsb3NlIik6bnVsbDtpZih0KXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxFcigpO3JldHVybn12YXIgbj1lLnRhcmdldCYmZS50YXJnZXQuY2xvc2VzdD9lLnRhcmdldC5jbG9zZXN0KCIud2pwLWtleSIpOm51bGw7aWYobil7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEta2V5Iik7aSYmJGMoaSl9fWZ1bmN0aW9uIG5zKCl7dmFyIGU9ci5qb3lzdGlja1Jvb3RFbDtpZihlKXt2YXIgdD1RbygpO2UuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsdCksdHx8KChyLmpveXN0aWNrUG9pbnRlcklkIT09bnVsbHx8ci5qb3lzdGlja0dlc3R1cmUpJiZ0cygpLHIuam95c3RpY2tQaW5uZWRPcGVuJiZFcigpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSl9fWZ1bmN0aW9uIG5mKCl7ci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tNb3ZlSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixyLmpveXN0aWNrTW92ZUhhbmRsZXIpLHIuam95c3RpY2tNb3ZlSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrVXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixyLmpveXN0aWNrVXBIYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLmpveXN0aWNrVXBIYW5kbGVyKSxyLmpveXN0aWNrVXBIYW5kbGVyPW51bGwpLHIuam95c3RpY2tSZXNpemVIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHIuam95c3RpY2tSZXNpemVIYW5kbGVyPW51bGwpLHIuam95c3RpY2tSb290RWwmJnIuam95c3RpY2tSb290RWwucGFyZW50Tm9kZSYmci5qb3lzdGlja1Jvb3RFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIuam95c3RpY2tSb290RWwpLHIuam95c3RpY2tSb290RWw9bnVsbCxyLmpveXN0aWNrUGFuZWxFbD1udWxsLHIuam95c3RpY2tCYWNrZHJvcEVsPW51bGwsci5qb3lzdGlja0JhbGxFbD1udWxsLHIuam95c3RpY2tQb2ludGVySWQ9bnVsbCxyLmpveXN0aWNrR2VzdHVyZT1udWxsLHIuam95c3RpY2tQcmVzc1N0YXJ0PW51bGwsci5qb3lzdGlja1Bpbm5lZE9wZW49ITF9ZnVuY3Rpb24gcmYoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoZSl7dmFyIHQ9IVJlKCk7ci5yZXNpemVIYW5kbGVyPWZ1bmN0aW9uKCl7cXQoITApO3ZhciBuPSFSZSgpO3QhPT1uJiYodD1uLCFuJiZyLnNpZGViYXJQaW5uZWQmJnIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyhyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxScigpKTpuJiZyLnNpZGViYXJQaW5uZWQmJiFyLnNlc3Npb25zRHJhd2VyT3BlbiYmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLFJyKCkpKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5yZXNpemVIYW5kbGVyKSx3aW5kb3cudmlzdWFsVmlld3BvcnQmJihyLnZpc3VhbFZpZXdwb3J0SGFuZGxlcj1mdW5jdGlvbigpe3F0KCEwKX0sd2luZG93LnZpc3VhbFZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci52aXN1YWxWaWV3cG9ydEhhbmRsZXIpKSxyLnZpc2liaWxpdHlIYW5kbGVyPWZ1bmN0aW9uKCl7ZG9jdW1lbnQuaGlkZGVufHxRZSgidmlzaWJpbGl0eSIse2ZvcmNlUmVwbGF5OiEwfSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHIudmlzaWJpbGl0eUhhbmRsZXIpLHIub3JpZW50YXRpb25IYW5kbGVyPWZ1bmN0aW9uKCl7UWUoIm9yaWVudGF0aW9uIix7Zm9yY2VSZXBsYXk6ITB9KX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLm9yaWVudGF0aW9uSGFuZGxlcikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cXQoITApfSl9fWZ1bmN0aW9uIGFmKCl7ci50ZXJtaW5hbEhlYWx0aFRpbWVyfHwoci50ZXJtaW5hbEhlYWx0aFRpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoISghci50ZXJtaW5hbHx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fGRvY3VtZW50LmhpZGRlbikpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih1KXtyZXR1cm4gdS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCEoIWV8fGUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpKXtRZSgiaGVhbHRoIik7dmFyIHQ9RGF0ZS5ub3coKSxuPXIubGFzdENodW5rQXQ+MCYmdC1yLmxhc3RDaHVua0F0PjMwMCxpPXQtci5sYXN0VGVybWluYWxSZXN5bmNBdD4zZTQsYT1yLmxhc3RDaHVua0F0PnIubGFzdFRlcm1pbmFsUmVzeW5jQXQ7aSYmYSYmKG58fGUuc3RhdHVzIT09InJ1bm5pbmciKSYmci50ZXJtaW5hbE91dHB1dCYmeG4oKX19fSw1ZTMpKX1mdW5jdGlvbiB1Zigpe3IudGVybWluYWxIZWFsdGhUaW1lciYmKGNsZWFySW50ZXJ2YWwoci50ZXJtaW5hbEhlYWx0aFRpbWVyKSxyLnRlcm1pbmFsSGVhbHRoVGltZXI9bnVsbCl9ZnVuY3Rpb24gd3IoKXt1ZigpLHIucmVzaXplVGltZXImJihjbGVhclRpbWVvdXQoci5yZXNpemVUaW1lciksci5yZXNpemVUaW1lcj1udWxsKSxyLnJlc2l6ZU9ic2VydmVyJiYoci5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksci5yZXNpemVPYnNlcnZlcj1udWxsKSxyLnJlc2l6ZUhhbmRsZXImJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLnJlc2l6ZUhhbmRsZXIpLHIucmVzaXplSGFuZGxlcj1udWxsKSxyLnZpc3VhbFZpZXdwb3J0SGFuZGxlciYmd2luZG93LnZpc3VhbFZpZXdwb3J0JiYod2luZG93LnZpc3VhbFZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci52aXN1YWxWaWV3cG9ydEhhbmRsZXIpLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyPW51bGwpLHIudmlzaWJpbGl0eUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixyLnZpc2liaWxpdHlIYW5kbGVyKSxyLnZpc2liaWxpdHlIYW5kbGVyPW51bGwpLHIub3JpZW50YXRpb25IYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLm9yaWVudGF0aW9uSGFuZGxlciksci5vcmllbnRhdGlvbkhhbmRsZXI9bnVsbCksW1sibW91c2Vtb3ZlIiwicmVzaXplTW91c2VNb3ZlIl0sWyJtb3VzZXVwIiwicmVzaXplTW91c2VVcCJdLFsidG91Y2htb3ZlIiwicmVzaXplVG91Y2hNb3ZlIl0sWyJ0b3VjaGVuZCIsInJlc2l6ZVRvdWNoRW5kIl1dLmZvckVhY2goZnVuY3Rpb24oYSl7clthWzFdXSYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYVswXSxyW2FbMV1dKSxyW2FbMV1dPW51bGwpfSksS24oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoci50ZXJtaW5hbFZpZXdwb3J0RWwmJihyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXIpLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXIpLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcikpLGUmJihyLnRlcm1pbmFsV2hlZWxIYW5kbGVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLnRlcm1pbmFsV2hlZWxIYW5kbGVyKSxyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyKSksci50ZXJtaW5hbFZpZXdwb3J0RWw9bnVsbCxyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI9bnVsbCxyLnRlcm1pbmFsV2hlZWxIYW5kbGVyPW51bGwsci50ZXJtaW5hbENsaWNrSGFuZGxlcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXImJihjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWwmJnIudGVybWluYWxTY3JvbGxiYXJFbC5wYXJlbnROb2RlJiZyLnRlcm1pbmFsU2Nyb2xsYmFyRWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyLnRlcm1pbmFsU2Nyb2xsYmFyRWwpLHIudGVybWluYWxTY3JvbGxiYXJFbD1udWxsLHIudGVybWluYWxTY3JvbGxiYXJUaHVtYkVsPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSExLHIudGVybWluYWwmJihyLnRlcm1pbmFsLmRlc3Ryb3koKSxyLnRlcm1pbmFsPW51bGwpLGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnRlcm1pbmFsLXNjcm9sbC13cmFwIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kucGFyZW50Tm9kZT09PWUmJmUucmVtb3ZlQ2hpbGQoaSl9VGEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wLHIuc3luY0ZyYW1pbmdSZXNpZHVlPSExLHIudGVybWluYWxTZXNzaW9uSWQ9bnVsbCxyLnRlcm1pbmFsT3V0cHV0PSIiLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCxyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT0hMSxvdCgpLHIuc29mdFJlc3luY1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuc29mdFJlc3luY1RpbWVyKSxyLnNvZnRSZXN5bmNUaW1lcj1udWxsKSxyLl9yZXN5bmNDaHVua1RhaWxUaW1lciYmKGNsZWFyVGltZW91dChyLl9yZXN5bmNDaHVua1RhaWxUaW1lciksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtMYXN0QXQ9MCxyLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PTAsci5fcmVzeW5jU3RhdHNDb3VudD0wLHIuX3Jlc3luY0xhc3RXYXJuQXQ9MCxyLl9yZXN5bmNJblByb2dyZXNzPSExLHIubGFzdFJlc2l6ZT17Y29sczowLHJvd3M6MH0sbmYoKX1mdW5jdGlvbiBwaShlLHQpe2lmKHIuc2VsZWN0ZWRJZCl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoISghbnx8bi5zdGF0dXMhPT0icnVubmluZyIpJiYhdWUobikpe2U+MjU2JiYoZT0yNTYpLHQ+MTYwJiYodD0xNjApO3ZhciBpPXtjb2xzOmUscm93czp0fTsoci5sYXN0UmVzaXplLmNvbHMhPT1pLmNvbHN8fHIubGFzdFJlc2l6ZS5yb3dzIT09aS5yb3dzKSYmKHIubGFzdFJlc2l6ZT1pLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrci5zZWxlY3RlZElkKyIvcmVzaXplIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkpfX19ZnVuY3Rpb24gUWUoZSx0KXtpZighci50ZXJtaW5hbClyZXR1cm4hMTt2YXIgbj10fHx7fSxpPW4uZm9yY2VSZXBsYXk9PT0hMCxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighYXx8YS5vZmZzZXRXaWR0aD09PTB8fGEub2Zmc2V0SGVpZ2h0PT09MClyZXR1cm4gQ3IoZXx8ImZpdC1yZXRyeSIse2ZvcmNlUmVwbGF5Oml9KSwhMTt2YXIgdT1yLnRlcm1pbmFsQXV0b0ZvbGxvd3x8eGEoKSxvPXIudGVybWluYWwuY29scyxzPXIudGVybWluYWwucm93cztyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoci50ZXJtaW5hbCl7dHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpLHBpKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpO3ZhciBsPXIudGVybWluYWwuY29scyE9PW98fHIudGVybWluYWwucm93cyE9PXM7IWwmJmkmJnIudGVybWluYWxPdXRwdXQmJnhuKHtza2lwRml0OiEwfSksdSYmcHQoImZvcmNlIil9fSl9KSwhMH1mdW5jdGlvbiBDcihlLHQpe2lmKCFyLnRlcm1pbmFsKXJldHVybjt2YXIgbj10fHx7fSxpPW4uZm9yY2VSZXBsYXkhPT0hMSxhPTAsdT04O2Z1bmN0aW9uIG8oKXtpZihyLnRlcm1pbmFsKXt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYocyYmcy5vZmZzZXRIZWlnaHQscyYmcy5vZmZzZXRXaWR0aD4wJiZzLm9mZnNldEhlaWdodD4wKXtRZShlLHtmb3JjZVJlcGxheTppfSk7cmV0dXJufSsrYT49dXx8KGE8PTQ/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKG8pOnNldFRpbWVvdXQobywzMikpfX1vKCl9ZnVuY3Rpb24gcXQoZSl7ci5yZXNpemVUaW1lciYmKGNsZWFyVGltZW91dChyLnJlc2l6ZVRpbWVyKSxyLnJlc2l6ZVRpbWVyPW51bGwpO3ZhciB0PWU/MDoxMDA7ci5yZXNpemVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5yZXNpemVUaW1lcj1udWxsLHJlcXVlc3RBbmltYXRpb25GcmFtZShvZil9LHQpfWZ1bmN0aW9uIG9mKCl7aWYoci50ZXJtaW5hbCl7dmFyIGU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fHhhKCk7ZSYmcHQoImZvcmNlIikscGkoci50ZXJtaW5hbC5jb2xzLHIudGVybWluYWwucm93cyl9fWZ1bmN0aW9uIEd0KGUpe3Iud29ya2luZ0Rpcj1lO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIsZSl9Y2F0Y2h7fXNmKGUpfWZ1bmN0aW9uIERhKGUpe2ZldGNoKCIvYXBpL3JlY2VudC1wYXRocyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7ZSh0fHxbXSl9KS5jYXRjaChmdW5jdGlvbigpe2UoW10pfSl9ZnVuY3Rpb24gc2YoZSl7cmV0dXJuIGZldGNoKCIvYXBpL3JlY2VudC1wYXRocyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3BhdGg6ZX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBrYShlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1lfSk7dCYmdC5zdGF0dXMhPT0icnVubmluZyImJiF1ZSh0KT9VcyhlKTpIdChlKSxfdCgpfWZ1bmN0aW9uIGxmKGUpe3ZhciB0PWUudGFyZ2V0O2lmKCEoIXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpKSl7dmFyIG49dC5jbG9zZXN0KCIuc2lkZWJhci1jb2xsYXBzZWQtdGlsZSIpO2lmKG4mJm4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7aWYobi5kYXRhc2V0LmNvbGxhcHNlZE5ld1Nlc3Npb24pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLGt1KCk7cmV0dXJufWlmKG4uZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLGthKG4uZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpO3JldHVybn1pZihuLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgaT1uLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkLGE9bi5kYXRhc2V0LmN3ZHx8IiIsdT1uLmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiP0FpOnhpO3UoaSxhKS50aGVuKGZ1bmN0aW9uKGcpe2cmJmcuaWQmJihyLnNlbGVjdGVkSWQ9Zy5pZCxoZSgpLHIuZHJhZnRzW2cuaWRdPSIiLG1uKCkudGhlbihmdW5jdGlvbigpe0h0KGcuaWQpfSkpfSk7cmV0dXJufX12YXIgbz10LmNsb3Nlc3QoIiNjbGF1ZGUtaGlzdG9yeS10b2dnbGUiKTtpZihvKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZD0hci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQmJiFyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJmxpKCkscGUoKTtyZXR1cm59dmFyIHM9dC5jbG9zZXN0KCJbZGF0YS1hY3Rpb25dIik7aWYocyYmcyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXtpZihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1tYW5hZ2UtbW9kZSIpRGMoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0ic2VsZWN0LWFsbC12aXNpYmxlIilQbygpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJjbGVhci1zZWxlY3Rpb24iKUFjKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1zZWxlY3RlZCIpeGMoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLXNlbGVjdGlvbiIpZ3Iocy5kYXRhc2V0LmtpbmQscy5kYXRhc2V0LmlkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0ic3dpcGUtZGVsZXRlLXNlc3Npb24iJiZzLmRhdGFzZXQuc2Vzc2lvbklkKVFhKHMuZGF0YXNldC5zZXNzaW9uSWQpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtc2Vzc2lvbiImJnMuZGF0YXNldC5zZXNzaW9uSWQpKGZ1bmN0aW9uKGcpe0FuKCJcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdThGRDlcdTRFMkFcdTRGMUFcdThCRERcdTU0MTdcdUZGMUZcdTZCNjRcdTY0Q0RcdTRGNUNcdTY1RTBcdTZDRDVcdTY0QTRcdTk1MDBcdTMwMDIiLHt0aXRsZToiXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIn0pLnRoZW4oZnVuY3Rpb24obSl7bSYmUWEoZyl9KX0pKHMuZGF0YXNldC5zZXNzaW9uSWQpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpKGZ1bmN0aW9uKGcsbSl7QW4oIlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1OEZEOVx1Njc2MSBDbGF1ZGUgXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKHkpe3kmJlJzKGcsbSl9KX0pKHMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQscy5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIikpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtaGlzdG9yeS1kaXJlY3RvcnkiJiZzLmRhdGFzZXQuY3dkKXt2YXIgbD1zLmRhdGFzZXQuY3dkO3IuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1tsXT0hci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzW2xdLHBlKCl9ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1oaXN0b3J5LWRpcmVjdG9yeSImJnMuZGF0YXNldC5jd2QpKGZ1bmN0aW9uKGcsbSl7dmFyIHk9c3YoZyksQz1tcigpLmZpbHRlcihmdW5jdGlvbihFKXtyZXR1cm4gRS5jd2Q9PT1nfSkubGVuZ3RoO0FuKCJcdTc4NkVcdThCQTRcdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTVcdTRFMEJcdTc2ODQgIitDKyIgXHU2NzYxIENsYXVkZSBcdTUzODZcdTUzRjJcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU2RTA1XHU3QTdBXHU3NkVFXHU1RjU1XHU1Mzg2XHU1M0YyIixva0xhYmVsOiJcdTZFMDVcdTdBN0EifSkudGhlbihmdW5jdGlvbihFKXtFJiYoV3MoeSwhMCksb3YoZyxtLHkpKX0pfSkocy5kYXRhc2V0LmN3ZCxzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iY2xlYXItYWxsLWhpc3RvcnkiKVNjKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1hcmNoaXZlZC1ncm91cCIpci5hcmNoaXZlZEV4cGFuZGVkPSFyLmFyY2hpdmVkRXhwYW5kZWQscGUoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lIiYmcy5kYXRhc2V0LnNlc3Npb25JZCljdihzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lLWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKXZ2KHMpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJyZXN1bWUtY29kZXgtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpZnYocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1jb2RleC1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZClwdihzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLWNvZGV4LWhpc3RvcnktZGlyZWN0b3J5IiYmcy5kYXRhc2V0LmN3ZCl7dmFyIGQ9cy5kYXRhc2V0LmN3ZDtyLmNvZGV4SGlzdG9yeUV4cGFuZGVkRGlyc1tkXT0hci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbZF0scGUoKX1lbHNlIHMuZGF0YXNldC5hY3Rpb249PT0id29ya3RyZWUtbWVyZ2UiJiZzLmRhdGFzZXQuc2Vzc2lvbklkP0tsKHMuZGF0YXNldC5zZXNzaW9uSWQpOnMuZGF0YXNldC5hY3Rpb249PT0id29ya3RyZWUtY2xlYW51cCImJnMuZGF0YXNldC5zZXNzaW9uSWQmJkpsKHMuZGF0YXNldC5zZXNzaW9uSWQpO3JldHVybn12YXIgZj10LmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpZihmKXtpZihyLnNlc3Npb25zTWFuYWdlTW9kZSl7Zi5kYXRhc2V0LnNlc3Npb25JZD9ncigic2Vzc2lvbnMiLGYuZGF0YXNldC5zZXNzaW9uSWQpOmYuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQmJmdyKGYuZGF0YXNldC5wcm92aWRlcj09PSJjb2RleCI/ImNvZGV4IjoiaGlzdG9yeSIsZi5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCk7cmV0dXJufWlmKGYuY2xhc3NMaXN0LmNvbnRhaW5zKCJzd2lwZWQiKSl7TXIoKTtyZXR1cm59aWYoenMpcmV0dXJuO2lmKGYuZGF0YXNldC5zZXNzaW9uSWQpa2EoZi5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZihmLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKXt2YXIgYz1mLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkLHY9Zi5kYXRhc2V0LmN3ZCxoPWYuZGF0YXNldC5wcm92aWRlcj09PSJjb2RleCI/QWk6eGk7aChjLHYpLnRoZW4oZnVuY3Rpb24oZyl7ZyYmZy5pZCYmKHIuc2VsZWN0ZWRJZD1nLmlkLGhlKCksci5kcmFmdHNbZy5pZF09IiIsbW4oKS50aGVuKGZ1bmN0aW9uKCl7SHQoZy5pZCksX3QoKX0pKX0pfX19fWZ1bmN0aW9uIGRmKGUpe2lmKCEoZS5rZXkhPT0iRW50ZXIiJiZlLmtleSE9PSIgIikpe3ZhciB0PWUudGFyZ2V0LmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpZih0KXtpZihlLnByZXZlbnREZWZhdWx0KCksci5zZXNzaW9uc01hbmFnZU1vZGUpe3QuZGF0YXNldC5zZXNzaW9uSWQ/Z3IoInNlc3Npb25zIix0LmRhdGFzZXQuc2Vzc2lvbklkKTp0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkJiZncih0LmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiPyJjb2RleCI6Imhpc3RvcnkiLHQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpO3JldHVybn1pZih0LmRhdGFzZXQuc2Vzc2lvbklkKWthKHQuZGF0YXNldC5zZXNzaW9uSWQpO2Vsc2UgaWYodC5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCl7dmFyIG49dC5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCxpPXQuZGF0YXNldC5jd2QsYT10LmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiP0FpOnhpO2EobixpKS50aGVuKGZ1bmN0aW9uKHUpe3UmJnUuaWQmJihyLnNlbGVjdGVkSWQ9dS5pZCxoZSgpLHIuZHJhZnRzW3UuaWRdPSIiLG1uKCkudGhlbihmdW5jdGlvbigpe0h0KHUuaWQpLF90KCl9KSl9KX19fX1mdW5jdGlvbiBBYShlLHQpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKG4pe3ZhciBpPW5bZV07aWYoIWkpe0EoIlx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NkNBMVx1NjcwOVx1NTNFRlx1NTkwRFx1NTIzNlx1NzY4NFx1NTE4NVx1NUJCOVx1MzAwMiIsImVycm9yIik7cmV0dXJufVVyKFN0cmluZyhpKSxudWxsLGZ1bmN0aW9uKCl7QSh0fHwiXHU1REYyXHU1OTBEXHU1MjM2IiwiaW5mbyIpfSl9fWZ1bmN0aW9uIEZ0KCl7cmV0dXJuIXIudGVybWluYWx8fCFyLnRlcm1pbmFsLmVsZW1lbnQ/bnVsbDooci50ZXJtaW5hbFZpZXdwb3J0RWw9ci50ZXJtaW5hbC5lbGVtZW50LHIudGVybWluYWxWaWV3cG9ydEVsKX1mdW5jdGlvbiBLbigpe3IudGVybWluYWxTY3JvbGxJZGxlVGltZXImJihjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbElkbGVUaW1lciksci50ZXJtaW5hbFNjcm9sbElkbGVUaW1lcj1udWxsKX1mdW5jdGlvbiBvdCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIpLHQ9ISFyLnNlbGVjdGVkSWQmJnIuY3VycmVudFZpZXc9PT0idGVybWluYWwiJiYhci50ZXJtaW5hbEF1dG9Gb2xsb3cmJiFycygpO3Iuc2hvd1Rlcm1pbmFsSnVtcFRvQm90dG9tPXQsZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIix0KTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtanVtcC1idG4iLHQpfWZ1bmN0aW9uIHhhKCl7dmFyIGU9RnQoKTtpZighZSlyZXR1cm4hMDt2YXIgdD1lLnNjcm9sbEhlaWdodC1lLmNsaWVudEhlaWdodC1lLnNjcm9sbFRvcDtyZXR1cm4gdDw9ci50ZXJtaW5hbFNjcm9sbFRocmVzaG9sZH1mdW5jdGlvbiBycygpe3ZhciBlPUZ0KCk7aWYoIWUpcmV0dXJuITA7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtZS5zY3JvbGxUb3A7cmV0dXJuIHQ8PTJ9ZnVuY3Rpb24gaXMoZSl7aWYoci50ZXJtaW5hbCl7dmFyIHQ9RnQoKTtpZih0KXt2YXIgbj1lPzUwMDoxMjA7ci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPU1hdGgubWF4KHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCxEYXRlLm5vdygpK24pLGU/dC5zY3JvbGxUbyh7dG9wOnQuc2Nyb2xsSGVpZ2h0LGJlaGF2aW9yOiJzbW9vdGgifSk6dC5zY3JvbGxUb3A9dC5zY3JvbGxIZWlnaHR9fX1mdW5jdGlvbiBTYSgpe3IudGVybWluYWxBdXRvRm9sbG93PSExLEtuKCksci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPTAsci50ZXJtaW5hbCYmIl9zaG91bGRTY3JvbGxUb0JvdHRvbSJpbiByLnRlcm1pbmFsJiYoci50ZXJtaW5hbC5fc2hvdWxkU2Nyb2xsVG9Cb3R0b209ITEpLG90KCl9ZnVuY3Rpb24gcHQoZSl7aWYoci50ZXJtaW5hbCl7dmFyIHQ9ZT09PSJmb3JjZSI7aWYodCl7ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsS24oKSxpcyghMSksb3QoKTtyZXR1cm59aWYoIXIudGVybWluYWxBdXRvRm9sbG93KXtvdCgpO3JldHVybn1pcyghMSksb3QoKX19ZnVuY3Rpb24gY2YoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbGJhciI7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbGJhci10cmFjayI7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbGJhci10aHVtYiIsbi5hcHBlbmRDaGlsZChpKSx0LmFwcGVuZENoaWxkKG4pLGUuYXBwZW5kQ2hpbGQodCksci50ZXJtaW5hbFNjcm9sbGJhckVsPXQsci50ZXJtaW5hbFNjcm9sbGJhclRodW1iRWw9aSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSExO2Z1bmN0aW9uIGEoKXtyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXIpLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCksdC5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIil9ZnVuY3Rpb24gdSgpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXImJmNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nfHx0LmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0sMTUwMCkpfWZ1bmN0aW9uIG8oKXtyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMTt2YXIgbT1GdCgpO2lmKG0pe3ZhciB5PW0uc2Nyb2xsSGVpZ2h0LEM9bS5jbGllbnRIZWlnaHQ7aWYoeTw9Qyl7dC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIik7cmV0dXJufXZhciBFPW4uY2xpZW50SGVpZ2h0LEI9TWF0aC5tYXgoMjgsQy95KkUpLEQ9eS1DLEY9bS5zY3JvbGxUb3AvRCxJPUYqKEUtQik7aS5zdHlsZS5oZWlnaHQ9QisicHgiLGkuc3R5bGUudG9wPUkrInB4In19ZnVuY3Rpb24gcygpe3IudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nfHwoci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKG8pKX12YXIgbD1GdCgpO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixmdW5jdGlvbigpe2EoKSxzKCksdSgpfSx7cGFzc2l2ZTohMH0pLG4uYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbihtKXtpZihtLnRhcmdldCE9PWkpe20ucHJldmVudERlZmF1bHQoKTt2YXIgeT1GdCgpO2lmKHkpe3ZhciBDPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksRT0obS5jbGllbnRZLUMudG9wKS9DLmhlaWdodCxCPXkuc2Nyb2xsSGVpZ2h0LXkuY2xpZW50SGVpZ2h0O3kuc2Nyb2xsVG9wPUUqQn19fSk7dmFyIGQ9MCxmPTA7aS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKG0pe20ucHJldmVudERlZmF1bHQoKSxtLnN0b3BQcm9wYWdhdGlvbigpLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMCxpLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksZD1tLmNsaWVudFk7dmFyIHk9RnQoKTtmPXk/eS5zY3JvbGxUb3A6MCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHYpfSk7ZnVuY3Rpb24gYyhtKXttLnByZXZlbnREZWZhdWx0KCk7dmFyIHk9RnQoKTtpZih5KXt2YXIgQz1uLmNsaWVudEhlaWdodCxFPXkuc2Nyb2xsSGVpZ2h0LEI9eS5jbGllbnRIZWlnaHQsRD1FLUI7aWYoIShEPD0wKSl7dmFyIEY9TWF0aC5tYXgoMjgsQi9FKkMpLEk9Qy1GO2lmKCEoSTw9MCkpe3ZhciBMPW0uY2xpZW50WS1kLEg9TC9JKkQ7eS5zY3JvbGxUb3A9ZitIfX19fWZ1bmN0aW9uIHYoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITEsaS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsYyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdiksdSgpfWkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24obSl7aWYobS50b3VjaGVzLmxlbmd0aD09PTEpe20uc3RvcFByb3BhZ2F0aW9uKCksci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSEwLGkuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSxkPW0udG91Y2hlc1swXS5jbGllbnRZO3ZhciB5PUZ0KCk7Zj15P3kuc2Nyb2xsVG9wOjAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixoLHtwYXNzaXZlOiExfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGcpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixnKX19LHtwYXNzaXZlOiExfSk7ZnVuY3Rpb24gaChtKXtpZihtLnRvdWNoZXMubGVuZ3RoPT09MSl7bS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PUZ0KCk7aWYoeSl7dmFyIEM9bi5jbGllbnRIZWlnaHQsRT15LnNjcm9sbEhlaWdodCxCPXkuY2xpZW50SGVpZ2h0LEQ9RS1CO2lmKCEoRDw9MCkpe3ZhciBGPU1hdGgubWF4KDI4LEIvRSpDKSxJPUMtRjtpZighKEk8PTApKXt2YXIgTD1tLnRvdWNoZXNbMF0uY2xpZW50WS1kLEg9TC9JKkQ7eS5zY3JvbGxUb3A9ZitIfX19fX1mdW5jdGlvbiBnKCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixnKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsZyksdSgpfXQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsZnVuY3Rpb24oKXthKCl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nfHx1KCl9KSxzKCl9ZnVuY3Rpb24gZmYoZSl7cmV0dXJuIGU8NDM1Mj8hMTplPj00MzUyJiZlPD00NDQ3fHxlPj05MDAxJiZlPD05MDAyfHxlPj0xMTkwNCYmZTw9MTIzNTB8fGU+PTEyMzUzJiZlPD0xMzMxMXx8ZT49MTMzMTImJmU8PTE5OTAzfHxlPj0xOTk2OCYmZTw9NDA5NTl8fGU+PTQwOTYwJiZlPD00MjE5MXx8ZT49NDQwMzImJmU8PTU1MjAzfHxlPj02Mzc0NCYmZTw9NjQyNTV8fGU+PTY1MDcyJiZlPD02NTEwM3x8ZT49NjUyODAmJmU8PTY1Mzc2fHxlPj02NTUwNCYmZTw9NjU1MTB8fGU+PTEyNjk3NiYmZTw9MTI5NTM1fHxlPj0xMzEwNzImJmU8PTE5NjYwNXx8ZT49MTk2NjA4JiZlPD0yNjIxNDF9dmFyIGFzPSJcdTIwNjAiO2Z1bmN0aW9uIHVzKCl7cmV0dXJue21vZGU6Im5vcm1hbCJ9fWZ1bmN0aW9uIHBmKGUpe3JldHVybiEvW15ceDAwLVx4N2ZdLy50ZXN0KGUpJiZlLmluZGV4T2YoIlx4MUIiKT09PS0xfWZ1bmN0aW9uIHZmKGUsdCl7aWYoIWUpcmV0dXJuIiI7dmFyIG49U3RyaW5nKGUpO2lmKHQubW9kZT09PSJub3JtYWwiJiZwZihuKSlyZXR1cm4gbjtmb3IodmFyIGk9IiIsYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgdT1uLmNoYXJDb2RlQXQoYSksbz11LHM9MTtpZih1Pj01NTI5NiYmdTw9NTYzMTkmJmErMTxuLmxlbmd0aCl7dmFyIGw9bi5jaGFyQ29kZUF0KGErMSk7bD49NTYzMjAmJmw8PTU3MzQzJiYobz0odS01NTI5NikqMTAyNCsobC01NjMyMCkrNjU1MzYscz0yKX12YXIgZD1zPT09Mj9uLnN1YnN0cihhLDIpOm4uY2hhckF0KGEpO3N3aXRjaCh0Lm1vZGUpe2Nhc2Uibm9ybWFsIjpvPT09Mjc/KHQubW9kZT0iZXNjIixpKz1kKTpvPT09MTU1Pyh0Lm1vZGU9ImNzaSIsaSs9ZCk6bz09PTE1N3x8bz09PTE0NHx8bz09PTE1OHx8bz09PTE1OT8odC5tb2RlPSJzdHJpbmciLGkrPWQpOihpKz1kLGZmKG8pJiYoaSs9YXMpKTticmVhaztjYXNlImVzYyI6aSs9ZCxvPT09OTE/dC5tb2RlPSJjc2kiOm89PT05M3x8bz09PTgwfHxvPT09ODh8fG89PT05NHx8bz09PTk1P3QubW9kZT0ic3RyaW5nIjp0Lm1vZGU9Im5vcm1hbCI7YnJlYWs7Y2FzZSJjc2kiOmkrPWQsbz49NjQmJm88PTEyNiYmKHQubW9kZT0ibm9ybWFsIik7YnJlYWs7Y2FzZSJzdHJpbmciOmkrPWQsbz09PTd8fG89PT0xNTY/dC5tb2RlPSJub3JtYWwiOm89PT0yNyYmKHQubW9kZT0ic3RyaW5nLWVzYyIpO2JyZWFrO2Nhc2Uic3RyaW5nLWVzYyI6aSs9ZCxvPT09OTI/dC5tb2RlPSJub3JtYWwiOnQubW9kZT0ic3RyaW5nIjticmVha31hKz1zLTF9cmV0dXJuIGl9dmFyIHZpPSJceDFCWz8yMDI2aCIsSWE9Ilx4MUJbPzIwMjZsIixtZj0yMDAsZ2Y9MjU2KjEwMjQ7ZnVuY3Rpb24gaGYoZSl7aWYoIWV8fHIuc3luY091dHB1dEJ1ZmZlcj09PW51bGwmJmUuaW5kZXhPZih2aSk9PT0tMSlyZXR1cm4gZTtmb3IodmFyIHQ9IiIsbj0wO248ZS5sZW5ndGg7KWlmKHIuc3luY091dHB1dEJ1ZmZlciE9PW51bGwpe3ZhciBpPWUuaW5kZXhPZihJYSxuKTtpZihpPT09LTEpcmV0dXJuIHIuc3luY091dHB1dEJ1ZmZlcis9ZS5zbGljZShuKSwoci5zeW5jT3V0cHV0QnVmZmVyLmxlbmd0aD5nZnx8RGF0ZS5ub3coKT5yLnN5bmNPdXRwdXREZWFkbGluZSkmJih0Kz1yLnN5bmNPdXRwdXRCdWZmZXIsci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jRnJhbWluZ1Jlc2lkdWU9ITApLHQ7ci5zeW5jT3V0cHV0QnVmZmVyKz1lLnNsaWNlKG4saStJYS5sZW5ndGgpLHQrPXIuc3luY091dHB1dEJ1ZmZlcixyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxuPWkrSWEubGVuZ3RofWVsc2V7dmFyIGE9ZS5pbmRleE9mKHZpLG4pO2lmKGE9PT0tMSlyZXR1cm4gdCs9ZS5zbGljZShuKSx0O3QrPWUuc2xpY2UobixhKSxyLnN5bmNPdXRwdXRCdWZmZXI9dmksci5zeW5jT3V0cHV0RGVhZGxpbmU9RGF0ZS5ub3coKSttZixuPWErdmkubGVuZ3RofXJldHVybiB0fWZ1bmN0aW9uICRnKCl7aWYoci5zeW5jT3V0cHV0QnVmZmVyIT09bnVsbCl7dmFyIGU9ci5zeW5jT3V0cHV0QnVmZmVyO3JldHVybiByLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxlfXJldHVybiIifWZ1bmN0aW9uIEpuKGUsdCl7aWYoISghZXx8dD09bnVsbCkpe3Iud2lkZVBhcnNlclN0YXRlfHwoci53aWRlUGFyc2VyU3RhdGU9dXMoKSk7dmFyIG49dmYodCxyLndpZGVQYXJzZXJTdGF0ZSksaT1oZihuKSxhPXIudGVybWluYWxBdXRvRm9sbG93IT09ITE7Il9zaG91bGRTY3JvbGxUb0JvdHRvbSJpbiBlJiYoZS5fc2hvdWxkU2Nyb2xsVG9Cb3R0b209YSksaSYmZS53cml0ZShpKSwiX3Nob3VsZFNjcm9sbFRvQm90dG9tImluIGUmJihlLl9zaG91bGRTY3JvbGxUb0JvdHRvbT1hKSxhJiYoci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPU1hdGgubWF4KHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCxEYXRlLm5vdygpKzEyMCkpLEFmKHQpfX1mdW5jdGlvbiBUYSgpe3Iud2lkZVBhcnNlclN0YXRlPXVzKCl9ZnVuY3Rpb24geWYoKXt0eXBlb2YgZG9jdW1lbnQ+InUifHxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjb3B5IixmdW5jdGlvbihlKXt2YXIgdD13aW5kb3cuZ2V0U2VsZWN0aW9uJiZ3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoISghdHx8dC5pc0NvbGxhcHNlZCkpe3ZhciBuPXQuYW5jaG9yTm9kZSxpPW4mJm4ubm9kZVR5cGU9PT0zP24ucGFyZW50Tm9kZTpuLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCEoIWF8fCFpfHwhYS5jb250YWlucyhpKSkpe3ZhciB1PXQudG9TdHJpbmcoKSxvPXUuc3BsaXQoYApgKS5tYXAoZnVuY3Rpb24ocyl7cmV0dXJuIHMuc3BsaXQoYXMpLmpvaW4oIiIpLnJlcGxhY2UoL1sgXHRdKyQvLCIiKX0pLmpvaW4oYApgKTtvIT09dSYmZS5jbGlwYm9hcmREYXRhJiYoZS5jbGlwYm9hcmREYXRhLnNldERhdGEoInRleHQvcGxhaW4iLG8pLGUucHJldmVudERlZmF1bHQoKSl9fX0pfXlmKCk7dmFyIG9zPTE1MCxzcz0zMCxiZj0xNjAqMTAyNCxFZj0xOTIqMTAyNDtmdW5jdGlvbiBscyhlKXtpZighZXx8ZS5sZW5ndGg8PUVmKXJldHVybiBlO3ZhciB0PWUubGVuZ3RoLG49ZnVuY3Rpb24oRil7aWYoISh0eXBlb2Ygcj4idSJ8fCFyKSl7dmFyIEk9ci50ZXJtaW5hbE91dHB1dE1hcmtlcnwwO2lmKCEoSTw9MCkpe3ZhciBMPXQtRjtyLnRlcm1pbmFsT3V0cHV0TWFya2VyPUk+TD9JLUw6MH19fSxpPWUubGVuZ3RoLWJmO2lmKGk+MCYmaTxlLmxlbmd0aCl7dmFyIGE9ZS5jaGFyQ29kZUF0KGkpO2E+PTU2MzIwJiZhPD01NzM0MyYmaSsrfWZvcih2YXIgdT00MDk2LG89TWF0aC5taW4oaSt1LGUubGVuZ3RoKSxzPWk7czxvO3MrKylpZihlLmNoYXJDb2RlQXQocyk9PT0xMCl7dmFyIGw9ZS5zbGljZShzKzEpO3JldHVybiBuKGwubGVuZ3RoKSxsfWZvcih2YXIgZD1NYXRoLm1heCgwLGktMjU2KSxmPS0xLGM9aS0xO2M+PWQ7Yy0tKXt2YXIgdj1lLmNoYXJDb2RlQXQoYyk7aWYodj09PTI3KXtmPWM7YnJlYWt9aWYodj09PTd8fHY+PTY0JiZ2PD0xMjYpYnJlYWt9aWYoZiE9PS0xKXtmb3IodmFyIGg9ITEsZz1mKzE7ZzxpO2crKyl7dmFyIG09ZS5jaGFyQ29kZUF0KGcpO2lmKG09PT03KXtoPSEwO2JyZWFrfWlmKG0+PTY0JiZtPD0xMjYpe2g9ITA7YnJlYWt9fWlmKCFoKWZvcih2YXIgeT1NYXRoLm1pbihpKzI1NixlLmxlbmd0aCksQz1pO0M8eTtDKyspe3ZhciBFPWUuY2hhckNvZGVBdChDKTtpZihFPT09N3x8RT49NjQmJkU8PTEyNil7dmFyIEI9ZS5zbGljZShDKzEpO3JldHVybiBuKEIubGVuZ3RoKSxCfX19dmFyIEQ9ZS5zbGljZShpKTtyZXR1cm4gbihELmxlbmd0aCksRH1mdW5jdGlvbiBtaSgpe2lmKHIudGVybWluYWwpe2lmKHR5cGVvZiByLnRlcm1pbmFsLnJlc2V0PT0iZnVuY3Rpb24iKXtyLnRlcm1pbmFsLnJlc2V0KCksVGEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wO3JldHVybn10eXBlb2Ygci50ZXJtaW5hbC53cml0ZT09ImZ1bmN0aW9uIiYmci50ZXJtaW5hbC53cml0ZSgiXHgxQmMiKSxUYSgpLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY091dHB1dERlYWRsaW5lPTB9fXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ9MCxyLl9yZXN5bmNTdGF0c0NvdW50PTAsci5fcmVzeW5jTGFzdFdhcm5BdD0wO3ZhciBGZj01ZTMsd2Y9MTIsQ2Y9M2U0O3IuX3Jlc3luY0luUHJvZ3Jlc3M9ITE7ZnVuY3Rpb24geG4oZSl7aWYoIXIudGVybWluYWx8fCFyLnRlcm1pbmFsT3V0cHV0KXJldHVybiExO3ZhciB0PWV8fHt9LG49ci50ZXJtaW5hbE91dHB1dE1hcmtlcnwwO248MCYmKG49MCksbj5yLnRlcm1pbmFsT3V0cHV0Lmxlbmd0aCYmKG49ci50ZXJtaW5hbE91dHB1dC5sZW5ndGgpO3ZhciBpPW4+MD9yLnRlcm1pbmFsT3V0cHV0LnNsaWNlKG4pOnIudGVybWluYWxPdXRwdXQsYT1pLmxlbmd0aCx1PXR5cGVvZiBwZXJmb3JtYW5jZTwidSImJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZS5ub3coKTpEYXRlLm5vdygpO3IuX3Jlc3luY0luUHJvZ3Jlc3M9ITA7dHJ5e21pKCksSm4oci50ZXJtaW5hbCxpKX1maW5hbGx5e3IuX3Jlc3luY0luUHJvZ3Jlc3M9ITF9ci5sYXN0VGVybWluYWxSZXN5bmNBdD1EYXRlLm5vdygpLHB0KCJvdXRwdXQiKSx0LnNraXBGaXR8fFFlKCJyZWZyZXNoIik7dmFyIG89RGF0ZS5ub3coKTtpZihvLXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ+RmYpci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD1vLHIuX3Jlc3luY1N0YXRzQ291bnQ9MTtlbHNlIGlmKHIuX3Jlc3luY1N0YXRzQ291bnQrKyxyLl9yZXN5bmNTdGF0c0NvdW50PndmJiZvLXIuX3Jlc3luY0xhc3RXYXJuQXQ+Q2Ype3IuX3Jlc3luY0xhc3RXYXJuQXQ9bzt2YXIgcz10eXBlb2YgcGVyZm9ybWFuY2U8InUiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2Uubm93KCk6RGF0ZS5ub3coKTtjb25zb2xlLndhcm4oIlt3YW5kXSBzb2Z0UmVzeW5jVGVybWluYWwgaGlnaCBmcmVxdWVuY3kiLCJjb3VudD0iK3IuX3Jlc3luY1N0YXRzQ291bnQrIi8iK01hdGgucm91bmQoKG8tci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydCkvMTAwKS8xMCsicyIsImJ1Zkxlbj0iK2EsImxhc3RSZXBsYXlNcz0iK01hdGgucm91bmQocy11KSl9cmV0dXJuITB9ZnVuY3Rpb24gQmYoZSl7ci5zb2Z0UmVzeW5jVGltZXImJmNsZWFyVGltZW91dChyLnNvZnRSZXN5bmNUaW1lciksci5zb2Z0UmVzeW5jVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3Iuc29mdFJlc3luY1RpbWVyPW51bGwseG4oKX0sdHlwZW9mIGU9PSJudW1iZXIiP2U6MTUwKX12YXIgRGY9L1x4MWJcW1xkKig/OjtcZCopP1tBQkNEZkhKS10vLGRzPTE1MDAsa2Y9ODAwO3IuX3Jlc3luY0NodW5rTGFzdEF0PTAsci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbDtmdW5jdGlvbiBBZihlKXtpZighci5fcmVzeW5jSW5Qcm9ncmVzcyYmci5zeW5jRnJhbWluZ1Jlc2lkdWUmJihyLnN5bmNGcmFtaW5nUmVzaWR1ZT0hMSwhKCFlfHx0eXBlb2YgZSE9InN0cmluZyIpJiZlLmluZGV4T2YoIlx4MUJbIikhPT0tMSYmRGYudGVzdChlKSkpe3ZhciB0PURhdGUubm93KCksbj10LXIuX3Jlc3luY0NodW5rTGFzdEF0O2lmKG4+PWRzKXtyLl9yZXN5bmNDaHVua1RhaWxUaW1lciYmKGNsZWFyVGltZW91dChyLl9yZXN5bmNDaHVua1RhaWxUaW1lciksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtMYXN0QXQ9dCx4bigpO3JldHVybn1pZighci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpe3ZhciBpPU1hdGgubWF4KGtmLGRzLW4pO3IuX3Jlc3luY0NodW5rVGFpbFRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1udWxsLHIuX3Jlc3luY0NodW5rTGFzdEF0PURhdGUubm93KCkseG4oKX0saSl9fX1mdW5jdGlvbiBnaShlLHQsbil7aWYoIXIudGVybWluYWwpcmV0dXJuITE7dmFyIGk9ZnUodHx8IiIpLGE9ZXx8bnVsbCx1PW58fHt9LG89dS5tb2RlfHwiYXBwZW5kIixzPXUuc2Nyb2xsIT09ITEsbD1yLnRlcm1pbmFsU2Vzc2lvbklkIT09YSxkPXIudGVybWluYWxPdXRwdXR8fCIiLGY9ISEoYSYmci50ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uc1thXSksYz0hMTtpZihpPT09ZCYmIWwpcmV0dXJuIHMmJnB0KCJvdXRwdXQiKSxvdCgpLCExO2lmKGwmJihtaSgpLGQ9IiIsci50ZXJtaW5hbE91dHB1dD0iIixyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAsci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsS24oKSxvdCgpKSxvPT09InJlcGxhY2UiKWkhPT1kJiYobWkoKSxpJiZKbihyLnRlcm1pbmFsLGkpLGM9ITApO2Vsc2V7aWYoaS5sZW5ndGg8ZC5sZW5ndGgmJiFsKXJldHVybiExO2lmKGYmJiFsJiZvIT09InJlcGxhY2UiJiZkJiYhaS5zdGFydHNXaXRoKGQpKXJldHVybiExO2lmKGkuc3RhcnRzV2l0aChkKSl7dmFyIHY9aS5zbGljZShkLmxlbmd0aCk7diYmKEpuKHIudGVybWluYWwsdiksYz0hMCl9ZWxzZXtpZihkJiZkLnN0YXJ0c1dpdGgoaSkpcmV0dXJuITE7bWkoKSxpJiZKbihyLnRlcm1pbmFsLGkpLGM9ITB9fXJldHVybiByLnRlcm1pbmFsU2Vzc2lvbklkPWEsci50ZXJtaW5hbE91dHB1dD1pLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCxzJiYoY3x8bHx8bz09PSJyZXBsYWNlIik/cHQobHx8bz09PSJyZXBsYWNlIj8iZm9yY2UiOiJvdXRwdXQiKTpvdCgpLGwmJnBpKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpLGN8fGx9ZnVuY3Rpb24gWW4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoISghZXx8ci50ZXJtaW5hbHx8ci50ZXJtaW5hbEluaXRpYWxpemluZykpe2lmKHR5cGVvZiBXVGVybUxpYj4idSJ8fCFXVGVybUxpYi5XVGVybSl7ci50ZXJtaW5hbEluaXRSZXRyaWVzfHwoci50ZXJtaW5hbEluaXRSZXRyaWVzPTApLHIudGVybWluYWxJbml0UmV0cmllczwxMCYmKHIudGVybWluYWxJbml0UmV0cmllcysrLHNldFRpbWVvdXQoWW4sMjAwKSk7cmV0dXJufXIudGVybWluYWxJbml0UmV0cmllcz0wLHIudGVybWluYWxJbml0aWFsaXppbmc9ITAsci5zZWxlY3RlZElkJiYoZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxlLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpKTtmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCIudGVybWluYWwtc2Nyb2xsLXdyYXAiKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl07aS5wYXJlbnROb2RlPT09ZSYmZS5yZW1vdmVDaGlsZChpKX12YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0idGVybWluYWwtc2Nyb2xsLXdyYXAiLGUuYXBwZW5kQ2hpbGQoYSk7dmFyIHU9bmV3IFdUZXJtTGliLldUZXJtKGEse2NvbHM6MTIwLHJvd3M6MzYsYXV0b1Jlc2l6ZTohMCxjdXJzb3JCbGluazohMSxvbkRhdGE6ZnVuY3Rpb24oKXt9LG9uUmVzaXplOmZ1bmN0aW9uKHMsbCl7cGkocyxsKSxyLnRlcm1pbmFsJiZyLnRlcm1pbmFsT3V0cHV0JiZ4bih7c2tpcEZpdDohMH0pfX0pLG89ZG9jdW1lbnQuZm9udHMmJnR5cGVvZiBkb2N1bWVudC5mb250cy5yZWFkeT09Im9iamVjdCI/UHJvbWlzZS5yYWNlKFtkb2N1bWVudC5mb250cy5yZWFkeSxuZXcgUHJvbWlzZShmdW5jdGlvbihzKXtzZXRUaW1lb3V0KHMsODAwKX0pXSk6UHJvbWlzZS5yZXNvbHZlKCk7by50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHUuaW5pdCgpfSkudGhlbihmdW5jdGlvbigpe2lmKHIudGVybWluYWw9dSxyLnRlcm1pbmFsSW5pdGlhbGl6aW5nPSExLHJvKCksYS5pc0Nvbm5lY3RlZCYmKGEub2Zmc2V0SGVpZ2h0LHR5cGVvZiB1LnJlbWVhc3VyZT09ImZ1bmN0aW9uIikpdHJ5e3UucmVtZWFzdXJlKCl9Y2F0Y2h7fXIudGVybWluYWxBdXRvRm9sbG93PSEwLEtuKCk7dmFyIHM9RnQoKTtpZihzJiYoci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcj1mdW5jdGlvbigpe2lmKERhdGUubm93KCk8ci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsKXtvdCgpO3JldHVybn1pZihycygpKXtyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxLbigpLG90KCk7cmV0dXJufVNhKCl9LHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyPWZ1bmN0aW9uKGQpe2QudG91Y2hlcyYmZC50b3VjaGVzLmxlbmd0aD09PTEmJihyLnRlcm1pbmFsVG91Y2hTdGFydFk9ZC50b3VjaGVzWzBdLmNsaWVudFkpfSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI9ZnVuY3Rpb24oZCl7IWQudG91Y2hlc3x8ZC50b3VjaGVzLmxlbmd0aCE9PTF8fHR5cGVvZiByLnRlcm1pbmFsVG91Y2hTdGFydFk9PSJudW1iZXIiJiZkLnRvdWNoZXNbMF0uY2xpZW50WS1yLnRlcm1pbmFsVG91Y2hTdGFydFk+NCYmU2EoKX0scy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyLHtwYXNzaXZlOiEwfSkscy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlcix7cGFzc2l2ZTohMH0pKSxyLnRlcm1pbmFsV2hlZWxIYW5kbGVyPWZ1bmN0aW9uKGQpe2QuZGVsdGFZPDAmJlNhKCksZC5zdG9wUHJvcGFnYXRpb24oKX0sZS5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsci50ZXJtaW5hbFdoZWVsSGFuZGxlcix7cGFzc2l2ZTohMH0pLGNmKGUpLHIuc2VsZWN0ZWRJZCl7dmFyIGw9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09ci5zZWxlY3RlZElkfSk7bCYmZ2kobC5pZCxsLm91dHB1dHx8IiIse21vZGU6ImFwcGVuZCIsc2Nyb2xsOiExfSl9ZWxzZSBKbih1LGBcdTcwQjlcdTUxRkJcdTRFMEFcdTY1QjlcdTMwMENcdTY1QjBcdTVCRjlcdThCRERcdTMwMERcdTVGMDBcdTU5Q0JcdTRGNjBcdTc2ODRcdTdCMkNcdTRFMDBcdTZCMjFcdTVCRjlcdThCRERcdTMwMDJccgpgKTtyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyPWZ1bmN0aW9uKGQpe0RpKCl8fFB0KGQpfSxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyKSxvdCgpLFZjKCksSmMoKSxyZigpLGFmKCksUWUoIm1vdW50Iix7Zm9yY2VSZXBsYXk6ITB9KSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikmJlsxMjAsMzUwLDcwMF0uZm9yRWFjaChmdW5jdGlvbihkKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmUWUoImVtYmVkLXNldHRsZSIpfSxkKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7ci50ZXJtaW5hbEluaXRpYWxpemluZz0hMSxjb25zb2xlLmVycm9yKCJbd2FuZF0gd3Rlcm0gaW5pdCBmYWlsZWQ6IixzKX0pfX1mdW5jdGlvbiB4ZihlLHQpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8IWUpKXt2YXIgbj1yLnNlbGVjdGVkSWQrIjoiK2U7aWYoci50b29sQ29udGVudENhY2hlW25dKXt0KG51bGwsci50b29sQ29udGVudENhY2hlW25dKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL3Rvb2wtY29udGVudC8iK2VuY29kZVVSSUNvbXBvbmVudChlKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpLmVycm9yP3QoaS5lcnJvcixudWxsKTooci50b29sQ29udGVudENhY2hlW25dPWksdChudWxsLGkpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dCgiXHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1IixudWxsKX0pfX1mdW5jdGlvbiBTbihlKXtyZXR1cm4hIShyLmNvbmZpZyYmci5jb25maWcuY2FyZERlZmF1bHRzJiZyLmNvbmZpZy5jYXJkRGVmYXVsdHNbZV0pfWZ1bmN0aW9uIExhKGUsdCxuLGkpe2lmKCEoIWV8fGUuZGF0YXNldC50cnVuY2F0ZWQhPT0idHJ1ZSJ8fGUuZGF0YXNldC5sb2FkZWQ9PT0idHJ1ZSIpKXt2YXIgYT1lLmRhdGFzZXQudG9vbFVzZUlkO2EmJih0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InRvb2wtY29udGVudC1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj4nKSxlLmRhdGFzZXQubG9hZGVkPSJsb2FkaW5nIix4ZihhLGZ1bmN0aW9uKHUsbyl7aWYodSl7dCYmKHQuaW5uZXJIVE1MPWl8fCc8ZGl2IGNsYXNzPSJ0b29sLWNvbnRlbnQtZXJyb3IiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNVx1RkYwQ1x1NzBCOVx1NTFGQlx1OTFDRFx1OEJENTwvZGl2PicpLGUuZGF0YXNldC5sb2FkZWQ9IiI7cmV0dXJufWUuZGF0YXNldC50cnVuY2F0ZWQ9ImZhbHNlIixlLmRhdGFzZXQubG9hZGVkPSJ0cnVlIjt2YXIgcz10eXBlb2Ygby5jb250ZW50PT0ic3RyaW5nIj9vLmNvbnRlbnQ6SlNPTi5zdHJpbmdpZnkoby5jb250ZW50KTtuKHMsbyl9KSl9fXdpbmRvdy5fX3RjVG9nZ2xlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dC5jbG9zZXN0KCIudG9vbC11c2UtY2FyZCIpfHx0LmNsb3Nlc3QoIi5pbmxpbmUtZGlmZiIpO2lmKG4pe3ZhciBpPW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtuLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNlZCIpO3ZhciBhPWk7dC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGE/InRydWUiOiJmYWxzZSIpO3ZhciB1PW4ucXVlcnlTZWxlY3RvcigiLnRvb2wtdXNlLWJvZHksIC5kaWZmLWJvZHkiKTt1JiZ1LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLGE/ImZhbHNlIjoidHJ1ZSIpO3ZhciBvPW4uZGF0YXNldC5leHBhbmRLaW5kfHwidG9vbC1jYXJkIjtpZihObihuLG8pLGkpe3ZhciBzPW4ucXVlcnlTZWxlY3RvcigiLnRvb2wtdXNlLXJlc3VsdCIpO0xhKG4scyxmdW5jdGlvbihsKXtzJiYocy5pbm5lckhUTUw9JzxwcmUgY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1jb250ZW50Ij4nK3AobCkrIjwvcHJlPiIpfSxgPGRpdiBjbGFzcz0idG9vbC1jb250ZW50LWVycm9yIiBvbmNsaWNrPSJfX3RjVG9nZ2xlKG51bGwsIHRoaXMuY2xvc2VzdCgnLnRvb2wtdXNlLWNhcmQsLmlubGluZS1kaWZmJykucXVlcnlTZWxlY3RvcignLnRvb2wtdXNlLWhlYWRlciwuZGlmZi1oZWFkZXInKSkiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNVx1RkYwQ1x1NzBCOVx1NTFGQlx1OTFDRFx1OEJENTwvZGl2PmApfX1lJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpfSx3aW5kb3cuX190aGlua2luZ1RvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD1lLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7aWYodCl7ZS5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZWQiKSxlLmNsYXNzTGlzdC5hZGQoImV4cGFuZGVkIiksZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLXByZXZpZXciKS50ZXh0Q29udGVudD1lLmRhdGFzZXQudGhpbmtpbmd8fCIiO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1hY3Rpb24iKTtuJiYobi50ZXh0Q29udGVudD0iXHU2NTM2XHU4RDc3Iil9ZWxzZXtlLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZGVkIiksZS5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKTt2YXIgaT0oZS5kYXRhc2V0LnRoaW5raW5nfHwiIikuc2xpY2UoMCw1NykrKChlLmRhdGFzZXQudGhpbmtpbmd8fCIiKS5sZW5ndGg+NjA/Ilx1MjAyNiI6IiIpO2UucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3IikudGV4dENvbnRlbnQ9aTt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7biYmKG4udGV4dENvbnRlbnQ9Ilx1NUM1NVx1NUYwMCIpfU5uKGUsInRoaW5raW5nIil9LHdpbmRvdy5fX3N1YmFnZW50UmVwbHlUb2dnbGU9ZnVuY3Rpb24oZSx0KXtlJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpO3ZhciBuPXQmJnQuY2xvc2VzdD90LmNsb3Nlc3QoIi5zdWJhZ2VudC1yZXBseSIpOm51bGw7aWYobil7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtadShuLCJzdWJhZ2VudC1yZXBseSIsIWkpLE5uKG4sInN1YmFnZW50LXJlcGx5Iil9fSx3aW5kb3cuX19zdWJhZ2VudFBhbmVsVG9nZ2xlPWZ1bmN0aW9uKGUsdCl7ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKTt2YXIgbj10JiZ0LmNsb3Nlc3Q/dC5jbG9zZXN0KCIuc3ViYWdlbnQtcGFuZWwiKTpudWxsO24mJm4uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIiwidHJ1ZSIpfTtmdW5jdGlvbiBTZihlKXtpZihlKWZvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdWJhZ2VudC1wYW5lbFtkYXRhLWZvbGxvdy10YWlsPSJ0cnVlIl0nKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0ucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtpJiYoaS5zY3JvbGxUb3A9aS5zY3JvbGxIZWlnaHQpfX13aW5kb3cuX19vcGVuRmlsZVByZXZpZXc9ZnVuY3Rpb24oZSl7ZSYmaWkoZSl9LHdpbmRvdy5fX2lubGluZVRvb2xUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc0xpc3QudG9nZ2xlKCJpbmxpbmUtdG9vbC1vcGVuIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO24mJihuLnN0eWxlLmRpc3BsYXk9dD8iYmxvY2siOiJub25lIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIuaW5saW5lLXRvb2wtc3RhdHVzIik7aSYmKGUuZGF0YXNldC5zdGF0dXM9PT0iZXJyb3IiP2kudGV4dENvbnRlbnQ9Ilx1MjcxNyI6ZS5kYXRhc2V0LnN0YXR1cz09PSJkb25lIiYmKGkudGV4dENvbnRlbnQ9Ilx1MjcxMyIpKSx0JiZMYShlLG4sZnVuY3Rpb24oYSl7ZS5kYXRhc2V0LnJlc3VsdD1hLG4mJihuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0Ij4nK2hsKGEsIiIpKyI8L2Rpdj4iKX0pLE5uKGUsImlubGluZS10b29sIil9LHdpbmRvdy5fX3Rlcm1pbmFsRXhwYW5kPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xvc2VzdCgiLmlubGluZS10ZXJtaW5hbCIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2lmKG4pe3ZhciBpPW4uc3R5bGUuZGlzcGxheT09PSJub25lIjtuLnN0eWxlLmRpc3BsYXk9aT8iYmxvY2siOiJub25lIix0LmRhdGFzZXQuZXhwYW5kZWQ9aT8idHJ1ZSI6ImZhbHNlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsaT8idHJ1ZSI6ImZhbHNlIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIixpPyJmYWxzZSI6InRydWUiKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLXRvZ2dsZS1pY29uIik7aWYoYSYmKGEudGV4dENvbnRlbnQ9aT8iXHUyNUJDIjoiXHUyNUI2IiksTm4odCwidGVybWluYWwiKSxpKXt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLW91dHB1dCIpO0xhKHQsdSxmdW5jdGlvbihvKXtpZih1KXtmb3IodmFyIHM9by5zcGxpdChgCmApLGw9IiIsZD0wO2Q8cy5sZW5ndGg7ZCsrKSFzW2RdJiZkPT09cy5sZW5ndGgtMXx8KGwrPSc8ZGl2IGNsYXNzPSJ0ZXJtLWxpbmUiPicrcChzW2RdKSsiPC9kaXY+Iik7dS5pbm5lckhUTUw9bH19KX19fX07ZnVuY3Rpb24gWGcoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXN0cmVhbWluZyIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXN0cmVhbWluZy10ZXh0Iik7aWYobil7dmFyIGk9ZS5zcGxpdChgCmApLGE9aS5zbGljZSgtMyk7bi50ZXh0Q29udGVudD1hLmpvaW4oYApgKSxuLnNjcm9sbFRvcD1uLnNjcm9sbEhlaWdodH19fXdpbmRvdy5fX2Fza1NlbGVjdD1mdW5jdGlvbihlLHQsbixpKXt2YXIgYT1yLmFza1VzZXJTZWxlY3Rpb25zW2VdO2lmKGF8fChhPXtzdWJtaXR0ZWQ6ITF9LHIuYXNrVXNlclNlbGVjdGlvbnNbZV09YSksIWEuc3VibWl0dGVkKXt2YXIgdT1hW3RdfHxbXTtpZihpKXt2YXIgbz11LmluZGV4T2Yobik7bz09PS0xP3UucHVzaChuKTp1LnNwbGljZShvLDEpfWVsc2UgdT11WzBdPT09bj9bXTpbbl07YVt0XT11LHdpbmRvdy5fX2Fza1JlbmRlcihlKX19LHdpbmRvdy5fX2Fza1JlbmRlcj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sLXVzZS1pZD0iJytlKyciXScpO2lmKHQpe3ZhciBuPXIuYXNrVXNlclNlbGVjdGlvbnNbZV18fHt9O3QucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLW9wdGlvbiIpLmZvckVhY2goZnVuY3Rpb24obyl7dmFyIHM9cGFyc2VJbnQoby5kYXRhc2V0LnF1ZXN0aW9uSW5kZXgsMTApLGw9cGFyc2VJbnQoby5kYXRhc2V0Lm9wdGlvbkluZGV4LDEwKSxkPShuW3NdfHxbXSkuaW5kZXhPZihsKSE9PS0xO28uY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiLGQpfSk7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIuYXNrLXVzZXItc3VibWl0Iik7aWYoaSl7dmFyIGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIuYXNrLXVzZXItcXVlc3Rpb24tZ3JvdXAiKSx1PSEwO2EuZm9yRWFjaChmdW5jdGlvbihvLHMpeyghbltzXXx8bltzXS5sZW5ndGg9PT0wKSYmKHU9ITEpfSksaS5kaXNhYmxlZD0hdXx8ISFuLnN1Ym1pdHRlZCxuLnN1Ym1pdHRlZCYmKGkudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjNEMFx1NEVBNC4uLiIsaS5jbGFzc0xpc3QuYWRkKCJhc2stdXNlci1zdWJtaXR0ZWQiKSl9fX0sd2luZG93Ll9fYXNrU3VibWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXIuYXNrVXNlclNlbGVjdGlvbnNbZV07aWYoISghdHx8dC5zdWJtaXR0ZWR8fCFyLnNlbGVjdGVkSWQpKXt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sLXVzZS1pZD0iJytlKyciXScpO2lmKG4pe3ZhciBpPW4ucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiksYT1bXSx1PSEwO2lmKGkuZm9yRWFjaChmdW5jdGlvbihzLGwpe3ZhciBkPXRbbF18fFtdO2lmKGQubGVuZ3RoPT09MCl7dT0hMTtyZXR1cm59dmFyIGY9W107ZC5mb3JFYWNoKGZ1bmN0aW9uKGMpe3ZhciB2PXMucXVlcnlTZWxlY3RvcignW2RhdGEtb3B0aW9uLWluZGV4PSInK2MrJyJdJyk7diYmZi5wdXNoKHYuZGF0YXNldC5vcHRpb25MYWJlbCl9KSxhLnB1c2goZi5qb2luKCIsICIpKX0pLCEhdSl7dC5zdWJtaXR0ZWQ9ITAsd2luZG93Ll9fYXNrUmVuZGVyKGUpO3ZhciBvPWEuam9pbihgCmApO2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrci5zZWxlY3RlZElkKyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDpvK2AKYCx2aWV3OnIuY3VycmVudFZpZXd9KX0pLmNhdGNoKGZ1bmN0aW9uKHMpe2NvbnNvbGUuZXJyb3IoIlt3YW5kXSBFcnJvciBzZW5kaW5nIGFuc3dlcjoiLHMpLHQuc3VibWl0dGVkPSExLHdpbmRvdy5fX2Fza1JlbmRlcihlKX0pfX19fTtmdW5jdGlvbiBJZigpe2lmKCFyLl9fZ2xvYmFsTGlzdGVuZXJzQm91bmQpe3IuX19nbG9iYWxMaXN0ZW5lcnNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1vdmVyZmxvdy1tZW51Iik7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQ7aWYoISghbnx8dHlwZW9mIG4uY2xvc2VzdCE9ImZ1bmN0aW9uIikpe3ZhciBpPW4uY2xvc2VzdCgiI2NoZWNrLXVwZGF0ZS1idXR0b24sICNkby11cGRhdGUtYnV0dG9uLCAjZG8tcmVzdGFydC1idXR0b24iKTshaXx8aS5kaXNhYmxlZHx8KHQucHJldmVudERlZmF1bHQoKSxpLmlkPT09ImNoZWNrLXVwZGF0ZS1idXR0b24iP1FsKCk6aS5pZD09PSJkby11cGRhdGUtYnV0dG9uIj9sZygpOmRnKCkpfX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItb3ZlcmZsb3ctbWVudSIpO3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfSk7dmFyIGU9ZnVuY3Rpb24oKXtyLnRvcGJhck1vcmVPcGVuPSExO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1tZW51Iiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtYnV0dG9uIik7dCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiYobi5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIikpfTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7aWYoci50b3BiYXJNb3JlT3Blbil7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLW1lbnUiKSxpPW4mJm4ucGFyZW50RWxlbWVudDtpJiYhaS5jb250YWlucyh0LnRhcmdldCkmJmUoKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZyLnRvcGJhck1vcmVPcGVuJiZlKCl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7aWYoci5wbHVzUG9wb3Zlck9wZW4pe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21wb3Nlci1wbHVzLXBvcG92ZXIiKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2gtYnRuIik7biYmbi5jb250YWlucyh0LnRhcmdldCl8fGkmJmkuY29udGFpbnModC50YXJnZXQpfHxKaSgpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJnIucGx1c1BvcG92ZXJPcGVuJiZKaSgpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0O2lmKCEoIW58fHR5cGVvZiBuLmNsb3Nlc3QhPSJmdW5jdGlvbiIpKXt2YXIgaT1uLmNsb3Nlc3QoIiNhdXRvLWFwcHJvdmUtdG9nZ2xlIik7aSYmKHQucHJldmVudERlZmF1bHQoKSxfYygpKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7aWYoIXQudGFyZ2V0LmNsb3Nlc3QoIi5mb2xkZXItcGlja2VyLWNvbnRhaW5lciIpKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1kcm9wZG93biIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0O2lmKCEoIW58fCFuLm1hdGNoZXMoJ2lucHV0W3R5cGU9InJhbmdlIl1bZGF0YS1tb2RlLWNvbnRyb2w9InRoaW5raW5nIl0nKSkpe3ZhciBpPVtdO3RyeXtpPUpTT04ucGFyc2Uobi5kYXRhc2V0LnRoaW5raW5nTGFiZWxzfHwiW10iKX1jYXRjaHt9dmFyIGE9TWF0aC5tYXgoMCxNYXRoLm1pbihpLmxlbmd0aC0xLE1hdGgucm91bmQoTnVtYmVyKG4udmFsdWUpfHwwKSkpLHU9aVthXXx8ImF1dG8iLG89bi5jbG9zZXN0KCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciXScpLHM9byYmby5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctc2xpZGVyLXZhbHVlIik7cyYmKHMudGV4dENvbnRlbnQ9dSksbi5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWV0ZXh0Iix1KTt2YXIgbD1uLmNsb3Nlc3QoIi50aGlua2luZy1zbGlkZXItcmFpbCIpLGQ9TnVtYmVyKG4ubWF4KXx8MDtsJiZsLnN0eWxlLnNldFByb3BlcnR5KCItLXRoaW5raW5nLXByb2dyZXNzIiwoZD9hL2QqMTAwOjApKyIlIil9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldDtpZighKCFufHxuLm5vZGVUeXBlIT09MSkmJiEodHlwZW9mIG4ubWF0Y2hlcyE9ImZ1bmN0aW9uInx8IW4ubWF0Y2hlcygiW2RhdGEtbW9kZS1jb250cm9sXSIpKSl7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEtbW9kZS1jb250cm9sIiksYT1uLnZhbHVlLHU9aT09PSJ0aGlua2luZyImJm4ubWF0Y2hlcygnaW5wdXRbdHlwZT0icmFuZ2UiXScpO2lmKHUpdHJ5e3ZhciBvPUpTT04ucGFyc2Uobi5kYXRhc2V0LnRoaW5raW5nVmFsdWVzfHwiW10iKTthPW9bTWF0aC5yb3VuZChOdW1iZXIobi52YWx1ZSl8fDApXXx8Im9mZiJ9Y2F0Y2h7YT0ib2ZmIn1pPT09Im1vZGUiP0xtKGEpOmk9PT0ibW9kZWwiP1RtKGEpOmk9PT0idGhpbmtpbmciJiZBbShhKSwhdSYmbi5jbG9zZXN0JiZuLmNsb3Nlc3QoIiNjb21wb3Nlci1wbHVzLXBvcG92ZXIiKSYmSmkoKX19KX19ZnVuY3Rpb24gVGYoKXtJZigpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKTtpZihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixwdSk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWZvcm0iKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLHB1KCl9KTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tc3dpdGNoLXNlcnZlci1idXR0b24iKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixFbCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLXBhc3N3b3JkLWJ1dHRvbiIpO2EmJmkmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9aS50eXBlPT09InRleHQiO2kudHlwZT1iPyJwYXNzd29yZCI6InRleHQiLGEudGV4dENvbnRlbnQ9Yj8iXHU2NjNFXHU3OTNBIjoiXHU5NjkwXHU4NUNGIixhLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsYj8iXHU2NjNFXHU3OTNBXHU1QkM2XHU3ODAxIjoiXHU5NjkwXHU4NUNGXHU1QkM2XHU3ODAxIiksYS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsYj8iZmFsc2UiOiJ0cnVlIiksaS5mb2N1cygpfSksaSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7Yi5rZXk9PT0iRW50ZXIiJiZwdSgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtpLmRhdGFzZXQuZXJyb3I9ImZhbHNlIixpLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwiZmFsc2UiKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZXJyb3IiKTtiJiZ5aShiKX0pLGkuZm9jdXMoKSk7cmV0dXJufXZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iik7dSYmKHUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7Yi5rZXk9PT0iRW50ZXIiJiYhYi5zaGlmdEtleSYmKGIucHJldmVudERlZmF1bHQoKSxEcygpKX0pLHUuZm9jdXMoKSk7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtc2VuZC1idG4iKTtvJiZvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0RzKCl9KTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLWNsYXVkZSIpO3MmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dGQoKX0pO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtY29kZXgiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2Vzc2lvblRvb2w9ImNvZGV4IixyLnByZWZlcnJlZENvbW1hbmQ9ImNvZGV4IixyLm1vZGVWYWx1ZT0iZnVsbC1hY2Nlc3MiLHRkKCl9KTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLXN0cnVjdHVyZWQiKTtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe1ZsKCkudGhlbihmdW5jdGlvbigpe1B0KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKGIpe0EoYiYmYi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfSksYmcoKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpO2YmJihmLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsZiksZi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixkZiksZi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLFZtKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixVbSksbHYoZikpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLFh0LCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixYdCk7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb3ZpZGVyLWNhcmRzIik7YyYmYy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQuY2xvc2VzdCgiLnByb3ZpZGVyLWNhcmQiKTtpZighKCFTfHxTLmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKSkpe3ZhciBXPVMuZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7VyYmKHIuc2Vzc2lvblRvb2w9VyxyLnByZWZlcnJlZENvbW1hbmQ9VyxlcigpLEdpKHtkZWZhdWx0UHJvdmlkZXI6VyxkZWZhdWx0TW9kZTpyLm1vZGVWYWx1ZX0pKX19KTt2YXIgdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWNhcmRzIik7diYmdi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQuY2xvc2VzdCgiLnNlc3Npb24ta2luZC1jYXJkIik7aWYoISghU3x8Uy5jbGFzc0xpc3QuY29udGFpbnMoImRpc2FibGVkIikpKXt2YXIgVz1TLmdldEF0dHJpYnV0ZSgiZGF0YS1zZXNzaW9uLWtpbmQiKTtXJiYoci5zZXNzaW9uQ3JlYXRlS2luZD1XLGVyKCksR2koe2RlZmF1bHRTZXNzaW9uS2luZDpXfSkpfX0pO3ZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWNhcmRzIik7aCYmaC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQuY2xvc2VzdCgiLm1vZGUtY2FyZCIpO2lmKFMpe3ZhciBXPVMuZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKTtXJiYoci5tb2RlVmFsdWU9VyxlcigpLEdpKHtkZWZhdWx0TW9kZTpyLm1vZGVWYWx1ZX0pKX19KTt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi13b3JrdHJlZS10b2dnbGUiKTtnJiZnLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLnNlc3Npb25DcmVhdGVXb3JrdHJlZT1nLmNoZWNrZWR9KTt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7bSYmKG0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5jd2RWYWx1ZT1tLnZhbHVlfSksbS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5jd2RWYWx1ZT1tLnZhbHVlfSksbS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIscmQpLG0uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHJkKSxtLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGZ1bmN0aW9uKCl7c2V0VGltZW91dChpciwxMjApfSkpO3ZhciB5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIik7eSYmeS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsX20pO3ZhciBDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKTtDJiZDLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixXcik7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLWRyYXdlci1idXR0b24iKTtFJiZFLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixXcik7dmFyIEI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItY29sbGFwc2UtYnRuIik7QiYmQi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsS20pO3ZhciBEPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTtEJiZELmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixKbSk7dmFyIEY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItbW9yZS1idG4iKSxJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW92ZXJmbG93LW1lbnUiKTtGJiZJJiZGLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBTPSFJLmNsYXNzTGlzdC5jb250YWlucygib3BlbiIpO0kuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsUyksUyYmR20oSSl9KTt2YXIgTD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1ob21lLWJ0biIpO0wmJkwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZWxlY3RlZElkPW51bGwsaGUoKSx3dCgpLF90KCksUXQoKX0pO3ZhciBIPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXJlZnJlc2gtYnRuIik7SCYmSC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KTt2YXIgVT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nb3V0LWJ1dHRvbiIpO1UmJlUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEZsKTt2YXIgeD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3dpdGNoLXNlcnZlci1idXR0b24iKTt4JiZ4LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixFbCk7dmFyIGs9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhY2stdG8tbmF0aXZlLWJ1dHRvbiIpO2smJmsuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEVtKTt2YXIgVD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYnV0dG9uIik7VCYmVC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsWm0pO3ZhciBNPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1zZXR0aW5ncy1idXR0b24iKTtNJiZNLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixucik7dmFyIFk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1vZGFsIik7WSYmWS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0ic2V0dGluZ3MtbW9kYWwiJiZucigpfSk7dmFyIHo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtcGFzc3dvcmQtYnV0dG9uIik7eiYmei5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZWcpO2Zvcih2YXIgUT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbGU9MDtsZTxRLmxlbmd0aDtsZSsrKVFbbGVdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgUz1iLmN1cnJlbnRUYXJnZXR8fHRoaXMsVz1TJiZTLmdldEF0dHJpYnV0ZT9TLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTpudWxsO1cmJnh1KFcpfSk7dmFyIGVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWNvbmZpZy1idXR0b24iKTtlZSYmZWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHVnKSxJbSgpO3ZhciBaPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbC1yZWZyZXNoIik7WiYmWi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsSGwpO3ZhciBxPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsLXJlZnJlc2giKTtxJiZxLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixIbCk7dmFyIE89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jb21taXQtY2xpIik7TyYmTy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7VmkoITApfSk7dmFyIE49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy12aWV3LWVudi1idG4iKTtOJiZOLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixTbSk7dmFyIEc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtZGlzcGxheS1idXR0b24iKTtHJiZHLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixvZyk7dmFyIEo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcC1pY29uLXBpY2tlciIpO2lmKEopZm9yKHZhciBuZT1KLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iKSxkZT0wO2RlPG5lLmxlbmd0aDtkZSsrKW5lW2RlXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj10aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIik7aWYoISghYnx8dHlwZW9mIFdhbmROYXRpdmU+InUifHx0eXBlb2YgV2FuZE5hdGl2ZS5zZXRBcHBJY29uIT0iZnVuY3Rpb24iKSl0cnl7V2FuZE5hdGl2ZS5zZXRBcHBJY29uKGIpLCRsKGIpO3ZhciBTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtaWNvbi1tZXNzYWdlIik7UyYmKFMudGV4dENvbnRlbnQ9Ilx1NTZGRVx1NjgwN1x1NURGMlx1NTIwN1x1NjM2Mlx1RkYwQ1x1OEZENFx1NTZERVx1Njg0Q1x1OTc2Mlx1NTQwRVx1NzUxRlx1NjU0OCIsUy5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLFMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksc2V0VGltZW91dChmdW5jdGlvbigpe1MuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9LDNlMykpfWNhdGNoe319KTt2YXIgcmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwbG9hZC1jZXJ0LWJ1dHRvbiIpO3JlJiZyZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsc2cpO2Zvcih2YXIgaWU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtcGlja2VyLWlucHV0IikscWU9MDtxZTxpZS5sZW5ndGg7cWUrKykoZnVuY3Rpb24oYil7Yi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIFM9Yi5jbG9zZXN0KCIuZmlsZS1waWNrZXIiKTtpZihTKXt2YXIgVz1TLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXBpY2tlci1uYW1lIik7VyYmKGIuZmlsZXMmJmIuZmlsZXNbMF0/KFcudGV4dENvbnRlbnQ9Yi5maWxlc1swXS5uYW1lLFMuY2xhc3NMaXN0LmFkZCgiZmlsZS1waWNrZXItaGFzLWZpbGUiKSk6KFcudGV4dENvbnRlbnQ9Vy5nZXRBdHRyaWJ1dGUoImRhdGEtZGVmYXVsdCIpfHwiXHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2IixTLmNsYXNzTGlzdC5yZW1vdmUoImZpbGUtcGlja2VyLWhhcy1maWxlIikpKX19KX0pKGllW3FlXSk7dmFyIGdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIik7Z2UmJmdlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtTdSgid2ViIixnZS5jaGVja2VkKX0pO3ZhciBjZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpO2NlJiZjZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7U3UoImFwayIsY2UuY2hlY2tlZCl9KTt2YXIgUj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO1ImJlIuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe1N1KCJkbWciLFIuY2hlY2tlZCl9KTt2YXIgaHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTtodCYmaHQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3BnKGh0LmNoZWNrZWQ/ImJldGEiOiJzdGFibGUiKX0pO3ZhciBfZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29weS1jb25uZWN0LWNvZGUtYnV0dG9uIik7X2UmJl9lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtY29kZSIpO2ImJlVyKGIudGV4dENvbnRlbnQsX2UpfSk7dmFyICQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1zb3VuZCIpOyQmJigkLmNoZWNrZWQ9ci5ub3RpZlNvdW5kLCQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3Iubm90aWZTb3VuZD0kLmNoZWNrZWQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXNvdW5kIixTdHJpbmcoci5ub3RpZlNvdW5kKSl9Y2F0Y2h7fXIubm90aWZTb3VuZCYmRmkoKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7YiYmKGIuc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKX0pKTt2YXIgZmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUiKSxDZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKSxCZT1mdW5jdGlvbihiKXtpZihiKXt2YXIgUz1OdW1iZXIoYi5taW58fDApLFc9TnVtYmVyKGIubWF4fHwxMDApLGJlPU51bWJlcihiLnZhbHVlfHwwKSx5dD1XPlM/TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsKGJlLVMpLyhXLVMpKjEwMCkpOjA7Yi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1yYW5nZS1maWxsIix5dCsiJSIpfX07aWYoZmUpe2ZlLnZhbHVlPVN0cmluZyhyLm5vdGlmVm9sdW1lKSxDZSYmKENlLnRleHRDb250ZW50PXIubm90aWZWb2x1bWUrIiUiKSxCZShmZSk7dmFyIHZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZi12b2x1bWUtZmllbGQiKTt2ZSYmKHZlLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIik7dmFyIEZlPW51bGw7ZmUuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5ub3RpZlZvbHVtZT1wYXJzZUludChmZS52YWx1ZSwxMCksQ2UmJihDZS50ZXh0Q29udGVudD1yLm5vdGlmVm9sdW1lKyIlIiksQmUoZmUpO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiLFN0cmluZyhyLm5vdGlmVm9sdW1lKSl9Y2F0Y2h7fWlmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uVm9sdW1lKHIubm90aWZWb2x1bWUpfWNhdGNoe319KSxmZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7RmkoKX0pfXZhciBldD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO2V0JiYoZXQuY2hlY2tlZD1yLm5vdGlmQnViYmxlLGV0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLm5vdGlmQnViYmxlPWV0LmNoZWNrZWQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLWJ1YmJsZSIsU3RyaW5nKHIubm90aWZCdWJibGUpKX1jYXRjaHt9fSkpO3ZhciBkdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlcXVlc3QtYnRuIik7ZHQmJmR0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKFdlKXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbigpe2JuKCksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe319ZWxzZSB0eXBlb2YgTm90aWZpY2F0aW9uPCJ1IiYmTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbigpe2JuKCl9KX0pO3ZhciBpdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlc2V0LWJ0biIpO2l0JiZpdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdmcpO3ZhciBOZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtYnRuIik7TmUmJk5lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixabCk7dmFyIFJ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iKTtpZihSdCYmUnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG1nKSxibigpLFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRBdmFpbGFibGVTb3VuZHM9PSJmdW5jdGlvbiIpe3ZhciBZZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlY3Rpb24iKSxEZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpLFBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtc291bmQtcHJldmlldyIpO2lmKFllJiZEZSl7WWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dHJ5e3ZhciB0ZT1KU09OLnBhcnNlKFdhbmROYXRpdmUuZ2V0QXZhaWxhYmxlU291bmRzKCkpLHdlPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uU291bmQoKTtEZS5pbm5lckhUTUw9IiI7Zm9yKHZhciB3PTA7dzx0ZS5sZW5ndGg7dysrKXt2YXIgYXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7YXQudmFsdWU9dGVbd10uaWQsYXQudGV4dENvbnRlbnQ9dGVbd10ubmFtZSx0ZVt3XS5pZD09PXdlJiYoYXQuc2VsZWN0ZWQ9ITApLERlLmFwcGVuZENoaWxkKGF0KX1EZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uU291bmQoRGUudmFsdWUpfWNhdGNoe319KSxQZSYmUGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUucHJldmlld1NvdW5kKERlLnZhbHVlKX1jYXRjaHt9fSl9Y2F0Y2h7fX19aWYoV2UmJnR5cGVvZiBXYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZD09ImZ1bmN0aW9uIil7dmFyIGt0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtaGFwdGljLXNlY3Rpb24iKSx1dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7aWYoa3QmJnV0KXtrdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt0cnl7dXQuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpfWNhdGNoe311dC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuc2V0SGFwdGljRW5hYmxlZCh1dC5jaGVja2VkKX1jYXRjaHt9dXQuY2hlY2tlZCYmR24oIm1lZGl1bSIpfSl9fXZhciBadD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW5ldy1zZXNzaW9uLWJ1dHRvbiIpO1p0JiZadC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsa3UpO3ZhciBBdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhd2VyLW5ldy1zZXNzaW9uLWJ1dHRvbiIpO0F0JiZBdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsa3UpO3ZhciBXdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtbW9kYWwtYnV0dG9uIik7V3QmJld0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixobik7dmFyIHp0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS13b3JrdHJlZS1tZXJnZS1idXR0b24iKTt6dCYmenQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRyKTt2YXIgVGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNhbmNlbC1idXR0b24iKTtUZSYmVGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRyKTt2YXIgVWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIik7VWUmJlVlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixYbSk7dmFyIEtlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJydW4tYnV0dG9uIik7S2UmJktlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixnZyk7dmFyIHh0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIik7eHQmJnh0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixPYyk7dmFyIFZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7VnQmJlZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixIYyk7dmFyIFV0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kLWlucHV0LWJ1dHRvbiIpO1V0JiZVdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtfdCgpLHZwKCl9KTt2YXIgRW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7RW4mJkVuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixHYSk7dmFyIGN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7Y3QmJmN0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJzZXNzaW9uLW1vZGFsIiYmaG4oKSxiLnRhcmdldC5pZD09PSJ3b3JrdHJlZS1tZXJnZS1tb2RhbCImJnRyKCl9KTt2YXIga2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2tlJiYoWXMoa2UpLGtlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEJnKSxrZS5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsTGcpLGtlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IudGVybWluYWxDb21wb3Npbmd8fGlkKGtlKXx8KHd2KGtlKSxaZShrZS52YWx1ZSwhMCksJGkoa2UpKX0pLGtlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbEludGVyYWN0aXZlJiYoci50ZXJtaW5hbENvbXBvc2luZz0hMCl9KSxrZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsQ29tcG9zaW5nJiYoci50ZXJtaW5hbENvbXBvc2luZz0hMSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJmlkKGtlKSl9KSxrZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXtfdCgpLG12KHt0YXJnZXQ6a2V9KX0pLGtlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGd2KSk7dmFyIEplPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2gtYnRuIiksQWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtdXBsb2FkLWlucHV0IiksT249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIpLGZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbHVzLWF0dGFjaC1pdGVtIik7SmUmJk9uJiZKZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKSxqbSgpfSksZnQmJkFlJiZmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtKaSgpLEFlLmNsaWNrKCl9KSxBZSYmQWUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBiPUFlLmZpbGVzO2lmKGIpZm9yKHZhciBTPTA7UzxiLmxlbmd0aDtTKyspSXUoYltTXSk7QWUudmFsdWU9IiJ9KTt2YXIgZW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLWJ0biIpO2VuJiZlbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtqYSgpfSk7dmFyIHRuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1jYW5jZWwtYnRuIik7dG4mJnRuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2phKCExKX0pO3ZhciBTdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO1N0JiYoU3QuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGFwKSxTdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdXApLFN0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsRXMpLFN0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLEVzKSk7dmFyIG9lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQtb3B0aW1pemUtYnRuIik7b2UmJm9lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3FnKCl9KTt2YXIgTGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7TGUmJihMZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksTGUuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxMZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLExlLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksTGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksTGUuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7dmFyIFM9Yi5kYXRhVHJhbnNmZXImJmIuZGF0YVRyYW5zZmVyLmZpbGVzO2lmKFMpZm9yKHZhciBXPTA7VzxTLmxlbmd0aDtXKyspSXUoU1tXXSl9KSk7dmFyIGplPVsidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCJdO2plLmZvckVhY2goZnVuY3Rpb24oYil7dmFyIFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYik7UyYmUy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsWnApfSk7dmFyIHR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iKTt0dCYmdHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG5pKTt2YXIgaj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1zaWRlLXBhbmVsLWNsb3NlIik7aiYmai5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdG8pO3ZhciBQPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7UCYmUC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdG8pO3ZhciBLPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZmlsZS1idXR0b24iKTtLJiZLLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuaSk7dmFyIGFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItY3dkIik7YWUmJihhZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLmZpbGVQYW5lbE9wZW58fG5pKCl9KSxhZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXsoYi5rZXk9PT0iRW50ZXIifHxiLmtleT09PSIgIikmJihiLnByZXZlbnREZWZhdWx0KCksci5maWxlUGFuZWxPcGVufHxuaSgpKX0pKTt2YXIgc2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLWJ1dHRvbiIpLHllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1tZW51Iik7c2UmJnllJiYoc2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCksci50b3BiYXJNb3JlT3Blbj0hci50b3BiYXJNb3JlT3Blbix5ZS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFyLnRvcGJhck1vcmVPcGVuKSxzZS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHIudG9wYmFyTW9yZU9wZW4pLHNlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsci50b3BiYXJNb3JlT3Blbj8idHJ1ZSI6ImZhbHNlIil9KSx5ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQmJmIudGFyZ2V0LmNsb3Nlc3Q/Yi50YXJnZXQuY2xvc2VzdCgiLnRvcGJhci1tb3JlLWl0ZW0iKTpudWxsO2lmKFMpe3ZhciBXPVMuZ2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIpO3N3aXRjaChyLnRvcGJhck1vcmVPcGVuPSExLHllLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHNlLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLHNlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIiksVyl7Y2FzZSJjb3B5LWNsYXVkZS1zZXNzaW9uLWlkIjpBYSgiY2xhdWRlU2Vzc2lvbklkIixEdCgpJiZEdCgpLnByb3ZpZGVyPT09ImNvZGV4Ij8iQ29kZXggdGhyZWFkIElEIFx1NURGMlx1NTkwRFx1NTIzNiI6IkNsYXVkZSBcdTRGMUFcdThCREQgSUQgXHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJjb3B5LWN3ZCI6QWEoImN3ZCIsIlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1NURGMlx1NTkwRFx1NTIzNiIpO2JyZWFrO2Nhc2UiY29weS1zZXNzaW9uLWlkIjpBYSgiaWQiLCJcdTRGMUFcdThCREQgSUQgXHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJ3b3JrdHJlZS1tZXJnZSI6ci5zZWxlY3RlZElkJiZLbChyLnNlbGVjdGVkSWQpO2JyZWFrO2Nhc2Uid29ya3RyZWUtY2xlYW51cCI6ci5zZWxlY3RlZElkJiZKbChyLnNlbGVjdGVkSWQpO2JyZWFrO2Nhc2UiZGVsZXRlLXNlc3Npb24iOnIuc2VsZWN0ZWRJZCYmKGZ1bmN0aW9uKGJlKXtBbigiXHU3ODZFXHU1QjlBXHU4OTgxXHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGXHU2QjY0XHU2NENEXHU0RjVDXHU2NUUwXHU2Q0Q1XHU2NEE0XHU5NTAwXHUzMDAyIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKHl0KXt5dCYmUWEoYmUpfSl9KShyLnNlbGVjdGVkSWQpO2JyZWFrfX19KSk7dmFyIHVyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS1kb3duLXRvcCIpLG9yPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS11cC10b3AiKTt1ciYmdXIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7bm8oLS4yNSl9KSxvciYmb3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7bm8oLjI1KX0pO3ZhciBaaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZS1yZWZyZXNoLWJ0biIpO1ppJiZaaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7aWYoYiYmYi5zaGlmdEtleSl7bG9jYXRpb24ucmVsb2FkKCk7cmV0dXJufXhuKCksd3Qoe3ByZXNlcnZlU3RpY2tTdGF0ZTohMH0pLGV1KCEwKX0pO3ZhciBIbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtanVtcC1ib3R0b20iKTtIbiYmSG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7cHQoImZvcmNlIil9KTt2YXIgX249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtdW5yZWFkLWJ1YmJsZSIpO19uJiZfbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt6dSghMCl9KTt2YXIgZWE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItcmVmcmVzaCIpO2VhJiZlYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtMdCgpfSk7dmFyIFlyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLXVwIik7WXImJllyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixqZCk7dmFyIE9lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKE9lJiZPZS50YWdOYW1lPT09IklOUFVUIil7dmFyIHNyPU9lLnZhbHVlLGFkPWZ1bmN0aW9uKGIpe3ZhciBTPShifHwiIikudHJpbSgpO3JldHVybiBTPyhTPVMucmVwbGFjZSgvXC97Mix9L2csIi8iKSxTLmxlbmd0aD4xJiYoUz1TLnJlcGxhY2UoL1wvKyQvLCIiKSksUyk6IiJ9O09lLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3NyPU9lLnZhbHVlLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0cnl7T2Uuc2VsZWN0KCl9Y2F0Y2h7fX0sMCl9KSxPZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtpZihiLmtleT09PSJFbnRlciIpe2IucHJldmVudERlZmF1bHQoKTt2YXIgUz1hZChPZS52YWx1ZSk7aWYoIVMpcmV0dXJuO3NyPVMsT2UudmFsdWU9UyxMdCh7Y3dkOlN9KSxPZS5ibHVyKCl9ZWxzZSBiLmtleT09PSJFc2NhcGUiJiYoYi5wcmV2ZW50RGVmYXVsdCgpLE9lLnZhbHVlPXNyLE9lLmJsdXIoKSl9KSxPZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixmdW5jdGlvbigpe3ZhciBiPWFkKE9lLnZhbHVlKTtpZighYil7T2UudmFsdWU9c3I7cmV0dXJufWlmKGI9PT1zcil7T2UudmFsdWU9YjtyZXR1cm59c3I9YixPZS52YWx1ZT1iLEx0KHtjd2Q6Yn0pfSl9dmFyIHRhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNlYXJjaC1pbnB1dCIpLEdyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNlYXJjaC1jbGVhciIpO3RhJiZ0YS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oYil7ci5maWxlU2VhcmNoUXVlcnk9Yi50YXJnZXQudmFsdWUudHJpbSgpLEdyJiZHci5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIixyLmZpbGVTZWFyY2hRdWVyeS5sZW5ndGg+MCksdW8oKX0pLEdyJiZHci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLmZpbGVTZWFyY2hRdWVyeT0iIix0YSYmKHRhLnZhbHVlPSIiKSxHci5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9KTt2YXIgbWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKSx4ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1kcm9wZG93biIpLF91PW51bGwsS3Q9LTEsRm49W107ZnVuY3Rpb24gdWQoYil7bWUmJm1lLmNsYXNzTGlzdC5hZGQoImludmFsaWQiKTt2YXIgUz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIik7UyYmKFMudGV4dENvbnRlbnQ9YixTLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKSl9ZnVuY3Rpb24gb2QoKXttZSYmbWUuY2xhc3NMaXN0LnJlbW92ZSgiaW52YWxpZCIpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iKTtiJiYoYi50ZXh0Q29udGVudD0iIixiLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSl9ZnVuY3Rpb24gTmcoYil7aWYoIWIubGVuZ3RoKXJldHVybiIiO3ZhciBTPSc8ZGl2IGNsYXNzPSJmb2xkZXItcmVjZW50LXNlY3Rpb24iPjxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtdGl0bGUiPlx1NjcwMFx1OEZEMVx1NEY3Rlx1NzUyODwvZGl2Pic7cmV0dXJuIGIuZm9yRWFjaChmdW5jdGlvbihXKXt2YXIgYmU9Vy5wYXRofHxXO1MrPSc8ZGl2IGNsYXNzPSJmb2xkZXItcmVjZW50LWl0ZW0iIGRhdGEtcGF0aD0iJytwKGJlKSsnIj4nK2d0KGJlLCJmb2xkZXItcmVjZW50LWl0ZW0tcGF0aCIpKyI8L2Rpdj4ifSksUys9IjwvZGl2PiIsU31mdW5jdGlvbiBqZygpe3hlJiZEYShmdW5jdGlvbihiKXt2YXIgUz1OZyhiKTtTPyh4ZS5pbm5lckhUTUw9Uyx4ZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxqdCh4ZSkseGUucXVlcnlTZWxlY3RvckFsbCgiLmZvbGRlci1yZWNlbnQtaXRlbSIpLmZvckVhY2goZnVuY3Rpb24oVyl7Vy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYmU9dGhpcy5kYXRhc2V0LnBhdGg7bWUmJihtZS52YWx1ZT1iZSxHdChiZSksbm4oYmUpKX0pfSkpOlFyKCl9KX12YXIgc2Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmtpbmctZGlyLWluZGljYXRvciIpO3NkJiZzZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ9bnVsbCxoZSgpLHIuZHJhZnRzPXt9LFF0KCksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWlucHV0Iik7YiYmYi5mb2N1cygpfSw1MCl9KTt2YXIgTnU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdG9nZ2xlIikseGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItZHJvcGRvd24iKTtOdSYmeGUmJk51LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3hlLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIpLE51LmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iKX0pO3ZhciBuYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuZm9sZGVyLXBpY2tlci1jb21wYWN0Iik7aWYobmEmJihuYS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLG5hLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLG5hLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7dmFyIFM9Yi5kYXRhVHJhbnNmZXImJmIuZGF0YVRyYW5zZmVyLml0ZW1zO2lmKFMpZm9yKHZhciBXPTA7VzxTLmxlbmd0aDtXKyspe3ZhciBiZT1TW1ddO2lmKGJlLmtpbmQ9PT0iZmlsZSImJmJlLndlYmtpdEdldEFzRW50cnkpe3ZhciB5dD1iZS53ZWJraXRHZXRBc0VudHJ5KCk7aWYoeXQmJnl0LmlzRGlyZWN0b3J5JiZtZSl7dmFyIEl0PXl0LmZ1bGxQYXRoO21lLnZhbHVlPUl0LEd0KEl0KSxubihJdCk7YnJlYWt9fX19KSkseGUmJnhlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgUz1iLnRhcmdldC5jbG9zZXN0KCIuZm9sZGVyLXBpY2tlci1xdWljay1idG4iKTtpZihTJiZtZSl7dmFyIFc9Uy5kYXRhc2V0LnBhdGg7bWUudmFsdWU9VyxHdChXKSxubihXKSx4ZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgYmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdG9nZ2xlIik7YmUmJmJlLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKX19KSxtZSl7dmFyIFJnPSRlKCk7bm4oUmcpLG1lLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3ZhciBiPXRoaXMudmFsdWUudHJpbSgpO2I/bm4oYik6amcoKX0pLG1lLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbihiKXt2YXIgUz1iLnRhcmdldC52YWx1ZS50cmltKCk7S3Q9LTEsX3UmJmNsZWFyVGltZW91dChfdSksX3U9c2V0VGltZW91dChmdW5jdGlvbigpe1M/bm4oUyk6UXIoKX0sMTUwKX0pLG1lLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpe2lmKGIua2V5PT09IkVzY2FwZSIpUXIoKSx0aGlzLmJsdXIoKTtlbHNlIGlmKGIua2V5PT09IkFycm93RG93biIpYi5wcmV2ZW50RGVmYXVsdCgpLEZuLmxlbmd0aD4wJiYoS3Q9TWF0aC5taW4oS3QrMSxGbi5sZW5ndGgtMSksbGQoKSk7ZWxzZSBpZihiLmtleT09PSJBcnJvd1VwIiliLnByZXZlbnREZWZhdWx0KCksS3Q+MCYmKEt0LS0sbGQoKSk7ZWxzZSBpZihiLmtleT09PSJFbnRlciImJkt0Pj0wKXtiLnByZXZlbnREZWZhdWx0KCk7dmFyIFM9Rm5bS3RdO2lmKFMpe3ZhciBXPVMuZGF0YXNldC5wYXRoO2lmKFc9PT0iLi4iKXt2YXIgYmU9bWUudmFsdWUudHJpbSgpLHl0PWJlLnN1YnN0cmluZygwLGJlLmxhc3RJbmRleE9mKCIvIikpO3l0JiYobWUudmFsdWU9eXR8fCIvIixHdChtZS52YWx1ZSksbm4oeXR8fCIvIikpfWVsc2UgbWUudmFsdWU9VyxHdChXKSxRcigpfX19KX1mdW5jdGlvbiBsZCgpe0ZuLmZvckVhY2goZnVuY3Rpb24oYixTKXtiLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsUz09PUt0KX0pfWZ1bmN0aW9uIENoKGIpe31mdW5jdGlvbiBubihiKXt4ZSYmKHhlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkQuLi48L2Rpdj4nLHhlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEt0PS0xLEZuPVtdLGZldGNoKCIvYXBpL2ZvbGRlcnM/cT0iK2VuY29kZVVSSUNvbXBvbmVudChiKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oUyl7cmV0dXJuIFMuanNvbigpLnRoZW4oZnVuY3Rpb24oVyl7cmV0dXJue29rOlMub2ssc3RhdHVzOlMuc3RhdHVzLGRhdGE6V319KX0pLnRoZW4oZnVuY3Rpb24oUyl7dmFyIFc9Uy5kYXRhO2lmKCFTLm9rfHxXLmVycm9yKXt1ZChXLmVycm9yfHwiXHU4REVGXHU1Rjg0XHU2NUUwXHU2NTQ4IikseGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWVycm9yIj4nK3AoVy5lcnJvcnx8Ilx1OERFRlx1NUY4NFx1NjVFMFx1NjU0OCIpKyI8L2Rpdj4iO3JldHVybn1vZCgpLFcuY3VycmVudFBhdGg7dmFyIGJlPVcuaXRlbXN8fFtdLHl0PVcuY3VycmVudFBhdGh8fGI7aWYoYmUubGVuZ3RoPT09MCl7eGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWxvYWRpbmciPlx1N0E3QVx1NzZFRVx1NUY1NTwvZGl2Pic7cmV0dXJufXhlLmlubmVySFRNTD1iZS5tYXAoZnVuY3Rpb24oSXQpe3ZhciByYT1JdC50eXBlPT09InBhcmVudCI/Ilx1MjFBOVx1RkUwRiI6Ilx1ezFGNEMxfSIsanU9SXQudHlwZT09PSJwYXJlbnQiPyIuLiAoXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3KSI6SXQubmFtZTtyZXR1cm4nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pdGVtIiBkYXRhLXBhdGg9IicrcChJdC5wYXRoKSsnIiBkYXRhLXR5cGU9IicrSXQudHlwZSsnIj48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pdGVtLWljb24iPicrcmErIjwvc3Bhbj48c3Bhbj4iK3AoanUpKyI8L3NwYW4+PC9kaXY+In0pLmpvaW4oIiIpLEZuPUFycmF5LmZyb20oeGUucXVlcnlTZWxlY3RvckFsbCgiLmZvbGRlci1waWNrZXItaXRlbSIpKSxGbi5mb3JFYWNoKGZ1bmN0aW9uKEl0KXtJdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgcmE9dGhpcy5kYXRhc2V0LnBhdGgsanU9dGhpcy5kYXRhc2V0LnR5cGU7aWYobWUpaWYoanU9PT0icGFyZW50Iil7dmFyIHBkPW1lLnZhbHVlLnRyaW0oKSx2ZD1wZC5zdWJzdHJpbmcoMCxwZC5sYXN0SW5kZXhPZigiLyIpKTttZS52YWx1ZT12ZHx8Ii8iLEd0KG1lLnZhbHVlKSxubih2ZHx8Ii8iKX1lbHNlIG1lLnZhbHVlPXJhLEd0KHJhKSxvZCgpLFFyKCl9KX0pfSkuY2F0Y2goZnVuY3Rpb24oUyl7dWQoIlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSIpLHhlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1lcnJvciI+XHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1PC9kaXY+J30pKX1mdW5jdGlvbiBRcigpe3hlJiZ4ZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxLdD0tMSxGbj1bXX12YXIgd249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItbW9kYWwiKSxkZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtZm9sZGVyLXBpY2tlciIpO2Z1bmN0aW9uIEJoKCl7aWYod24pe3duLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG1lJiYobWUudmFsdWU9JGUoKSk7dmFyIGI9JGUoKTtubihiKX19ZGQmJnduJiZkZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3bi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pLHduJiZ3bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQ9PT13biYmd24uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KTt2YXIgY2Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1naXQtYmFkZ2UiKTtjZCYmY2QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxFbygpfSk7dmFyIGZkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtmZCYmZmQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2IudGFyZ2V0LmlkPT09InF1aWNrLWNvbW1pdC1tb2RhbCImJiFyLnF1aWNrQ29tbWl0U3VibWl0dGluZyYmV24oKX0pLEZvKCksWW4oKSxCdigpLHpjKCkseHAoKSxudCgpfWZ1bmN0aW9uIHd0KGUpe3ZhciB0PWV8fHt9O3IubGFzdFJlbmRlcmVkSGFzaD0wLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MCxyLmxhc3RSZW5kZXJlZEVtcHR5PW51bGwsci5yZW5kZXJQZW5kaW5nPSExLHIuY2hhdFJlbmRlcmVkQ291bnQ9ci5jaGF0UGFnZVNpemUsci5hc2tVc2VyU2VsZWN0aW9ucz17fSxyLmNoYXRTY3JvbGxFbGVtZW50JiYoci5jaGF0U2Nyb2xsSGFuZGxlciYmci5jaGF0U2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIuY2hhdFNjcm9sbEhhbmRsZXIpLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciYmci5jaGF0U2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyKSxyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlciYmci5jaGF0U2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlciYmci5jaGF0U2Nyb2xsRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXIpKSxyLmNoYXRTY3JvbGxFbGVtZW50PW51bGwsci5jaGF0U2Nyb2xsSGFuZGxlcj1udWxsLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlcj1udWxsLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcj1udWxsLHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExLHQucHJlc2VydmVTdGlja1N0YXRlfHwoci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxyLmNoYXRVbnJlYWRDb3VudD0wLHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9LTEsci5jaGF0SW5pdGlhbFJlbmRlckRvbmU9ITEpfWZ1bmN0aW9uICRlKCl7cmV0dXJuIHIud29ya2luZ0Rpcnx8YW4oKX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixmdW5jdGlvbigpe3IuaXNPbmxpbmU9ITAsaGkoKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvZmZsaW5lIixmdW5jdGlvbigpe3IuaXNPbmxpbmU9ITEsaGkoKX0pO2Z1bmN0aW9uIGhpKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm9mZmxpbmUtYmFubmVyIik7aWYoIXIuaXNPbmxpbmUmJiFlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmlkPSJvZmZsaW5lLWJhbm5lciIsdC5jbGFzc05hbWU9Im9mZmxpbmUtYmFubmVyIix0LnRleHRDb250ZW50PSJZb3UgYXJlIG9mZmxpbmUgLSBzb21lIGZlYXR1cmVzIG1heSBiZSBsaW1pdGVkIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpfWVsc2Ugci5pc09ubGluZSYmZSYmZS5yZW1vdmUoKX1mdW5jdGlvbiBMZigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtlJiYoZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZyI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLWNhcmQiPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctdGV4dCI+XHU2QjYzXHU1NzI4XHU4RkRFXHU2M0E1IFdhbmRcdTIwMjY8L2Rpdj48L2Rpdj48L2Rpdj4nKX1mdW5jdGlvbiBCcihlLHQpe2lmKHIuY29uZmlnJiYhZG9jdW1lbnQuaGlkZGVuKXt2YXIgbj10JiZ0LmltbWVkaWF0ZT09PSEwLGk9RGF0ZS5ub3coKTshbiYmaS1yLmxhc3RGb3JlZ3JvdW5kU3luY0F0PDE1MDB8fChyLmxhc3RGb3JlZ3JvdW5kU3luY0F0PWksci5mb3JlZ3JvdW5kU3luY1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuZm9yZWdyb3VuZFN5bmNUaW1lciksci5mb3JlZ3JvdW5kU3luY1RpbWVyPW51bGwpLE1mKGUsbikpfX1mdW5jdGlvbiBNZihlLHQpe3JldHVybiFyLmNvbmZpZ3x8ZG9jdW1lbnQuaGlkZGVuP1Byb21pc2UucmVzb2x2ZSgpOihXbygpLHQ/RWEoInJlc3VtZS1mb3JjZSIpOighci53c3x8ci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU4mJnIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5DT05ORUNUSU5HKSYmZGkoKSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJl9vKCksci5jb2RleEhpc3RvcnlMb2FkZWQmJk5vKCksbW4oe3NraXBTZWxlY3RlZE91dHB1dFJlbG9hZDohMH0pLmNhdGNoKGZ1bmN0aW9uKG4pe2NvbnNvbGUuZXJyb3IoIlt3YW5kXSBmb3JlZ3JvdW5kIHN5bmMgZmFpbGVkOiIsZSxuKX0pKX1mdW5jdGlvbiBxZigpe3dpbmRvdy5fX3dhbmRGb3JlZ3JvdW5kU3luY0JvdW5kfHwod2luZG93Ll9fd2FuZEZvcmVncm91bmRTeW5jQm91bmQ9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtkb2N1bWVudC5oaWRkZW4/YmEoKTooQnIoInZpc2liaWxpdHkiKSxDcigidmlzaWJpbGl0eSIpKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXtCcigiZm9jdXMiKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oKXtCcigicGFnZXNob3ciKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXN1bWUiLGZ1bmN0aW9uKCl7QnIoInJlc3VtZSIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtYW5kcm9pZC1yZXN1bWUiLGZ1bmN0aW9uKCl7QnIoImFuZHJvaWQtcmVzdW1lIix7aW1tZWRpYXRlOiEwfSksQ3IoImFuZHJvaWQtcmVzdW1lIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1pbWUtc3RhdGUiLGZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuZGV0YWlsJiZlLmRldGFpbC5zdGF0ZTtpZih0PT09InNob3duInx8dD09PSJoaWRkZW4iKXRyeXtRZSgibmF0aXZlLWltZS0iK3Qse2ZvcmNlUmVwbGF5OiEwfSkscHQoIm5hdGl2ZS1pbWUiKX1jYXRjaHt9fSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtYW5kcm9pZC1uZXR3b3JrIixmdW5jdGlvbihlKXt2YXIgdD1lJiZlLmRldGFpbCYmZS5kZXRhaWwuc3RhdGU7aWYodD09PSJsb3N0Iil7ci5pc09ubGluZT0hMTt0cnl7aGkoKX1jYXRjaHt9cmV0dXJufWlmKHQ9PT0iYXZhaWxhYmxlInx8dD09PSJjaGFuZ2VkInx8dD09PSJ2YWxpZGF0ZWQiKXtyLmlzT25saW5lPSEwO3RyeXtoaSgpfWNhdGNoe31FYSgiYW5kcm9pZC1uZXR3b3JrLSIrdCl9fSkpfWZ1bmN0aW9uIFBmKCl7ZmV0Y2goIi9hcGkvc2Vzc2lvbi1jaGVjayIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOnthdXRoZWQ6ITF9fSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4hZXx8IWUuYXV0aGVkPyhyLmxvZ2luQ2hlY2tlZD0hMCxRdCgpLG51bGwpOmZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm9rP3QuanNvbigpOihyLmxvZ2luQ2hlY2tlZD0hMCxRdCgpLG51bGwpfSl9KS50aGVuKGZ1bmN0aW9uKGUpe2UmJihyLmNvbmZpZz1lLHIubG9naW5DaGVja2VkPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3RyeXtRdCh7c2tpcFNoZWxsQ2hyb21lOiEwfSl9Y2F0Y2h7fXFmKCksam8oKSxPdCgpLE9sKCksVWYoKSxlLnVwZGF0ZUF2YWlsYWJsZSYmZS5sYXRlc3RWZXJzaW9uJiZ2cyhlLmN1cnJlbnRWZXJzaW9ufHwiLSIsZS5sYXRlc3RWZXJzaW9uKSxJbiYmY2coKSxzbiYmZmcoKSxyLmNsYXVkZUhpc3RvcnlMb2FkZWR8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmNsYXVkZUhpc3RvcnlMb2FkZWR8fGxpKCl9LDYwMCl9KSl9KS5jYXRjaChmdW5jdGlvbigpe2lmKHIubG9naW5DaGVja2VkPSEwLCFuYXZpZ2F0b3Iub25MaW5lKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwIik7ZSYmKGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJib290LWxvYWRpbmciPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy1jYXJkIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctdGV4dCIgc3R5bGU9ImZvbnQtc2l6ZToxLjNlbTttYXJnaW4tYm90dG9tOjEycHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo4cHgiPicrVigic2lnbmFsIix7c2l6ZToyMCxzdHJva2VXaWR0aDoxLjh9KSsnPHNwYW4+XHU2NUUwXHU2Q0Q1XHU4RkRFXHU2M0E1XHU1MjMwXHU2NzBEXHU1MkExXHU1NjY4PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0IiBzdHlsZT0ib3BhY2l0eTowLjc7Zm9udC1zaXplOjAuOTVlbSI+XHU4QkY3XHU2OEMwXHU2N0U1XHU3RjUxXHU3RURDXHU4RkRFXHU2M0E1XHU2MjE2XHU3ODZFXHU4QkE0IFdhbmQgXHU2NzBEXHU1MkExXHU2QjYzXHU1NzI4XHU4RkQwXHU4ODRDXHUzMDAyPC9kaXY+PGJ1dHRvbiBvbmNsaWNrPSJsb2NhdGlvbi5yZWxvYWQoKSIgc3R5bGU9Im1hcmdpbi10b3A6MThweDtwYWRkaW5nOjhweCAyNHB4O2JvcmRlci1yYWRpdXM6OHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxNTAsMTE4LDg1LDAuMyk7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuOCk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjAuOTVlbSI+XHU5MUNEXHU4QkQ1PC9idXR0b24+PC9kaXY+PC9kaXY+Jyksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsZnVuY3Rpb24oKXtsb2NhdGlvbi5yZWxvYWQoKX0se29uY2U6ITB9KTtyZXR1cm59UXQoKX0pfWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXtpZighUmUoKSYmIXIuc2lkZWJhclBpbm5lZCYmIXIuc2lkZWJhckNvbGxhcHNlZCYmci5zZXNzaW9uc0RyYXdlck9wZW4pe3ZhciB0PWUudGFyZ2V0OyF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KXx8dC5jbG9zZXN0KCIjc2Vzc2lvbnMtZHJhd2VyIil8fHQuY2xvc2VzdCgiI3Nlc3Npb25zLXRvZ2dsZS1idXR0b24iKXx8dC5jbG9zZXN0KCIuZmxvYXRpbmctc2lkZWJhci10b2dnbGUiKXx8dC5jbG9zZXN0KCIuc2lkZWJhci10aWxlLWJ1YmJsZSIpfHx0LmNsb3Nlc3QoIi5tb2RhbC1iYWNrZHJvcCwgLm1vZGFsLW92ZXJsYXksIC5tb2RhbC1jb250YWluZXIsIFtyb2xlPSdkaWFsb2cnXSwgW3JvbGU9J21lbnUnXSwgLnRvcGJhci1tb3JlLW1lbnUsIC5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdywgLmZvbGRlci1waWNrZXItZHJvcGRvd24sIC5wYXRoLXN1Z2dlc3Rpb25zLCAucGVybWlzc2lvbi1wcm9tcHQtb3ZlcmxheSwgLnJlc3RhcnQtb3ZlcmxheSIpfHxObSgpfX0sITApLExmKCksUGYoKTtmdW5jdGlvbiBRdChlKXt2YXIgdD1lJiZlLnNraXBTaGVsbENocm9tZSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKSxpPXIuY29uZmlnIT09bnVsbCxhPXIubW9kYWxPcGVuLHU9IWl8fCEhZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKHUmJndyKCksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm5vLXRyYW5zaXRpb24iKSxyLnNpZGViYXJQaW5uZWQmJiFyLnNpZGViYXJDb2xsYXBzZWQmJiFSZSgpJiYoci5zZXNzaW9uc0RyYXdlck9wZW49ITAsU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMCkpLG4uaW5uZXJIVE1MPWk/X2YoKTpIZigpLHd0KCksVGYoKSxScigpLEhpKCksWG4oRHQoKSksS2koKSx0fHxqcigpLGkmJnIuZmlsZVBhbmVsT3BlbiYmTHQoKSxkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgibm8tdHJhbnNpdGlvbiIpfSksYSYmci5tb2RhbE9wZW4pe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYobyl7by5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7cyYmKHMudmFsdWU9ci5jd2RWYWx1ZSksZXIoKX19aWYoaSYmci5zZWxlY3RlZElkJiZyLmdpdFN0YXR1c1Nlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZCYmQm4oci5zZWxlY3RlZElkKSxpKXt2YXIgbD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtxdShsKX1hcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWN3ZCIpKSxhcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtcGF0aCIpKSxhcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiKSksanQoKX1mdW5jdGlvbiBPZigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9ZSYmZS5hcHByb3ZhbFN0YXRzO3JldHVybiF0fHx0LnRvdGFsPT09MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzIGhpZGRlbiIgaWQ9ImFwcHJvdmFsLXN0YXRzIj48L3NwYW4+JzonPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzIiBpZD0iYXBwcm92YWwtc3RhdHMiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1kaXZpZGVyIj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiBpZD0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIHRpdGxlPSJcdTY3MkNcdTZCMjFcdTRGMUFcdThCRERcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTEiPjxzdmcgY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWljb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtdG90YWwiPicrdC50b3RhbCsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAiIGlkPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwLXRpdGxlIj5cdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTE8L3NwYW4+JysodC5jb21tYW5kPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJ0ZXJtaW5hbCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0N0RcdTRFRTRcdTYyNjdcdTg4NEM8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LmNvbW1hbmQrIjwvc3Bhbj48L3NwYW4+IjoiIikrKHQuZmlsZT4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigiZWRpdCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTY1ODdcdTRFRjZcdTUxOTlcdTUxNjU8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LmZpbGUrIjwvc3Bhbj48L3NwYW4+IjoiIikrKHQudG9vbD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigid3JlbmNoIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTE3Nlx1NEVENlx1NURFNVx1NTE3Nzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QudG9vbCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsnPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyBhcHByb3ZhbC1zdGF0cy1yb3ctdG90YWwiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJzaWdtYSIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0MDhcdThCQTE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LnRvdGFsKyI8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+In1mdW5jdGlvbiBIZigpe3JldHVybiByLmxvZ2luQ2hlY2tlZD8nPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj48ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28iPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJsb2dpbi1sb2dvLXRleHQiPldhbmQ8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibG9naW4tc3VidGl0bGUiPlx1NTcyOFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUyRFx1OEZEMFx1ODg0Q1x1NjcyQ1x1NjczQVx1N0VDOFx1N0FFRjwvZGl2PjwvZGl2Pjxmb3JtIGlkPSJsb2dpbi1mb3JtIiBjbGFzcz0ibG9naW4tYm9keSIgYXV0b2NvbXBsZXRlPSJvbiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiB2YWx1ZT0id2FuZCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZSIgcmVhZG9ubHkgLz48cCBjbGFzcz0ibG9naW4taGludCI+XHU4RjkzXHU1MTY1IFdhbmQgXHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxXHU0RUU1XHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwXHUzMDAyPC9wPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9InBhc3N3b3JkIj5cdTVCQzZcdTc4MDE8L2xhYmVsPjxkaXYgY2xhc3M9InBhc3N3b3JkLWZpZWxkIj48aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkLWlucHV0IHBhc3N3b3JkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxIiBhdXRvY29tcGxldGU9ImN1cnJlbnQtcGFzc3dvcmQiIGRhdGEtZXJyb3I9ImZhbHNlIiBhcmlhLWRlc2NyaWJlZGJ5PSJwYXNzd29yZC1oaW50IGxvZ2luLWVycm9yIiBhcmlhLWludmFsaWQ9ImZhbHNlIiAvPjxidXR0b24gaWQ9InRvZ2dsZS1wYXNzd29yZC1idXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU2NjNFXHU3OTNBXHU1QkM2XHU3ODAxIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj5cdTY2M0VcdTc5M0E8L2J1dHRvbj48L2Rpdj48cCBpZD0icGFzc3dvcmQtaGludCIgY2xhc3M9ImhpbnQiPlx1NEY3Rlx1NzUyOFx1NEY2MFx1NTcyOCBXYW5kIFx1NEUyRFx1OEJCRVx1N0Y2RVx1NzY4NFx1OEJCRlx1OTVFRVx1NUJDNlx1NzgwMVx1MzAwMjwvcD48cCBpZD0ibG9naW4tZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiIgcm9sZT0iYWxlcnQiPjwvcD48L2Rpdj48ZGl2IGlkPSJsb2dpbi1jZXJ0LWhpbnQiIGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQgaGlkZGVuIiByb2xlPSJhbGVydCI+PGRpdiBjbGFzcz0ibG9naW4tY2VydC1oaW50LXRpdGxlIj5cdThCQzFcdTRFNjZcdTRFMERcdTUzRDdcdTRGRTFcdTRFRkJcdUZGMENcdTc2N0JcdTVGNTVcdTYwMDFcdTY1RTBcdTZDRDVcdTRGRERcdTVCNTg8L2Rpdj48cCBjbGFzcz0ibG9naW4tY2VydC1oaW50LWJvZHkiPlx1NUJDNlx1NzgwMVx1NjYyRlx1NUJGOVx1NzY4NFx1RkYwQ1x1NEY0Nlx1NUY1M1x1NTI0RCBIVFRQUyBcdThCQzFcdTRFNjZcdTRFMERcdTUzRDdcdTZENEZcdTg5QzhcdTU2NjhcdTRGRTFcdTRFRkJcdUZGMENcdTZENEZcdTg5QzhcdTU2NjhcdTU2RTBcdTZCNjRcdTYyRDJcdTdFRERcdTRGRERcdTVCNThcdTc2N0JcdTVGNTUgQ29va2llXHVGRjBDXHU2MjQwXHU0RUU1XHU4RkRCXHU0RTBEXHU0RTg2XHU2M0E3XHU1MjM2XHU1M0YwXHUzMDAyPGJyLz5cdTg5RTNcdTUxQjNcdTUyOUVcdTZDRDVcdUZGMDhcdTRFRkJcdTkwMDlcdTUxNzZcdTRFMDBcdUZGMDlcdUZGMUFcdTY1MzlcdTc1MjggSFRUUCBcdThCQkZcdTk1RUVcdTY3MkNcdTY3MERcdTUyQTFcdUZGMUJcdTYyMTZcdTYyOEFcdTY3MkNcdTY3MERcdTUyQTFcdThCQzFcdTRFNjZcdThCQkVcdTRFM0FcdTMwMENcdTUzRDdcdTRGRTFcdTRFRkJcdTMwMERcdUZGMDhcdTYzQThcdTgzNTAgbWtjZXJ0XHVGRjA5XHVGRjFCXHU2MjE2XHU1NzI4XHU2NzJDXHU2NzNBXHU1QzA2XHU4QkU1XHU4MUVBXHU3QjdFXHU4QkMxXHU0RTY2XHU4QkJFXHU0RTNBXHU1QjhDXHU1MTY4XHU0RkUxXHU0RUZCXHU1NDBFXHU5MUNEXHU4QkQ1XHUzMDAyPC9wPjxhIGlkPSJsb2dpbi1jZXJ0LWh0dHAtbGluayIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWJsb2NrIiBocmVmPSIjIiByZWw9Im5vb3BlbmVyIj5cdTY1MzlcdTc1MjggSFRUUCBcdThCQkZcdTk1RUU8L2E+PC9kaXY+PGJ1dHRvbiBpZD0ibG9naW4tYnV0dG9uIiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdThGREJcdTUxNjVcdTYzQTdcdTUyMzZcdTUzRjA8L2J1dHRvbj4nKyh2dSgpPyc8YnV0dG9uIGlkPSJsb2dpbi1zd2l0Y2gtc2VydmVyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWJsb2NrIGxvZ2luLXN3aXRjaC1zZXJ2ZXIiIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIyIiB5PSIxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSI3IiB4Mj0iNi4wMSIgeTI9IjciLz48bGluZSB4MT0iNiIgeTE9IjE3IiB4Mj0iNi4wMSIgeTI9IjE3Ii8+PC9zdmc+PHNwYW4+XHU1MjA3XHU2MzYyXHU2NzBEXHU1MkExXHU1NjY4PC9zcGFuPjwvYnV0dG9uPic6IiIpKyI8L2Zvcm0+PC9kaXY+PC9kaXY+IjonPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIGxvZ2luLWNhcmQtbG9hZGluZyI+PGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvLWljb24iPlc8L2Rpdj48c3BhbiBjbGFzcz0ibG9naW4tbG9nby10ZXh0Ij5XYW5kPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImxvZ2luLXN1YnRpdGxlIj5cdTZCNjNcdTU3MjhcdTYwNjJcdTU5MERcdTc2N0JcdTVGNTVcdTcyQjZcdTYwMDE8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsb2dpbi1ib2R5Ij48ZGl2IGNsYXNzPSJsb2dpbi1zdGF0dXMiPjxzcGFuIGNsYXNzPSJsb2dpbi1zcGlubmVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjxkaXY+PHAgY2xhc3M9ImxvZ2luLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNVx1NjcyQ1x1NTczMFx1NzY3Qlx1NUY1NVx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1N0EwRFx1NTAxOVx1MzAwMjwvcD48cCBjbGFzcz0ibG9naW4tbXV0ZWQiPlx1NTk4Mlx1Njc5Q1x1NEY2MFx1NTIxQVx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1RkYwQ1x1OEZEOVx1NjYyRlx1NkI2M1x1NUUzOFx1NzNCMFx1OEM2MVx1MzAwMjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nfWZ1bmN0aW9uIF9mKCl7dmFyIGU9IjxcL3NjcmlwdD4iLHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGcpe3JldHVybiBnLmlkPT09ci5zZWxlY3RlZElkfSksbj10PyRuKHQuY29tbWFuZCk6Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCIsaT10P3QubW9kZSsiIHwgIit0LnN0YXR1czoiXHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCIixhPXIuc2VsZWN0ZWRJZCYmci5kcmFmdHNbci5zZWxlY3RlZElkXXx8IiIsdT1yLnNlc3Npb25zRHJhd2VyT3Blbj8iIG9wZW4iOiIiLG89ZW8oKT8iIG9wZW4iOiIiLHM9Rm0oKSxsPW10KHMsci5jaGF0TW9kZSksZD1SZSgpLGY9ISFyLnNpZGViYXJQaW5uZWQmJiEhci5zaWRlYmFyQ29sbGFwc2VkLGM9Znx8IWQmJighIXIuc2lkZWJhclBpbm5lZHx8ISFyLnNlc3Npb25zRHJhd2VyT3Blbiksdj1mPyIgc2lkZWJhci1jb2xsYXBzZWQiOiIiLGg9Zj8iIGNvbGxhcHNlZCI6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImFwcC1jb250YWluZXIiPjxkaXYgaWQ9InNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIgY2xhc3M9ImRyYXdlci1iYWNrZHJvcCcrbysnIj48L2Rpdj48ZGl2IGNsYXNzPSJtYWluLWxheW91dCcrKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgc2lkZWJhci1vcGVuIjoiIikrKGM/IiBzaWRlYmFyLXBpbm5lZCI6IiIpK3YrJyI+PGFzaWRlIGlkPSJzZXNzaW9ucy1kcmF3ZXIiIGNsYXNzPSJzaWRlYmFyJyt1KyhjPyIgcGlubmVkIjoiIikraCsnIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItbWFpbiI+PGRpdiBjbGFzcz0idG9wYmFyLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJzaWRlYmFyLXRpdGxlIj5cdTRGMUFcdThCREQ8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tY291bnQiIGlkPSJzZXNzaW9uLWNvdW50Ij4nK1N0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1hY3Rpb25zIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1tb3JlIj48YnV0dG9uIGlkPSJzaWRlYmFyLW1vcmUtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjZGNFx1NTkxQVx1NjRDRFx1NEY1QyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEuNSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEuNSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTkiIHI9IjEuNSIvPjwvc3ZnPjwvYnV0dG9uPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLW92ZXJmbG93IiBpZD0ic2lkZWJhci1vdmVyZmxvdy1tZW51Ij48YnV0dG9uIGNsYXNzPSJvdmVyZmxvdy1pdGVtIiBpZD0ic2lkZWJhci1ob21lLWJ0biIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDlsOS03IDkgN3YxMWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiLz48cG9seWxpbmUgcG9pbnRzPSI5IDIyIDkgMTIgMTUgMTIgMTUgMjIiLz48L3N2Zz48c3Bhbj5cdTU2REVcdTUyMzBcdTk5OTZcdTk4NzU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ib3ZlcmZsb3ctaXRlbSIgaWQ9InNpZGViYXItcmVmcmVzaC1idG4iIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSIyMyA0IDIzIDEwIDE3IDEwIi8+PHBhdGggZD0iTTIwLjQ5IDE1YTkgOSAwIDEgMS0yLjEyLTkuMzZMMjMgMTAiLz48L3N2Zz48c3Bhbj5cdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjI8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PGJ1dHRvbiBpZD0ic2lkZWJhci1waW4tYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1waW4tdG9nZ2xlJysoci5zaWRlYmFyUGlubmVkPyIgcGlubmVkIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJysoci5zaWRlYmFyUGlubmVkPyJcdTVERjJcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0JcdUZGMDhcdTcwQjlcdTUxRkJcdTg5RTNcdTk2NjRcdTk1MDFcdTVCOUFcdUZGMDkiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSsnIiBhcmlhLWxhYmVsPSInKyhyLnNpZGViYXJQaW5uZWQ/Ilx1ODlFM1x1OTY2NFx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3QiI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpKyciIGFyaWEtcHJlc3NlZD0iJysoci5zaWRlYmFyUGlubmVkPyJ0cnVlIjoiZmFsc2UiKSsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyIiB5Mj0iMjIiLz48cGF0aCBkPSJNNSAxN2gxNHYtMS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY2aDFhMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDRoMXY0Ljc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNHoiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIGlkPSJzaWRlYmFyLWNvbGxhcHNlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItY29sbGFwc2UtdG9nZ2xlJysoZj8iIGNvbGxhcHNlZCI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicrKGY/Ilx1NUM1NVx1NUYwMFx1NEUzQVx1NTE2OFx1NUMzQVx1NUJGOCI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpKyciIGFyaWEtbGFiZWw9IicrKGY/Ilx1NUM1NVx1NUYwMFx1NEUzQVx1NTE2OFx1NUMzQVx1NUJGOCI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpKyciPicrKGY/Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iMTAgNiAxNiAxMiAxMCAxOCIvPjxsaW5lIHgxPSIyMCIgeTE9IjUiIHgyPSIyMCIgeTI9IjE5Ii8+PC9zdmc+JzonPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxNCA2IDggMTIgMTQgMTgiLz48bGluZSB4MT0iNCIgeTE9IjUiIHgyPSI0IiB5Mj0iMTkiLz48L3N2Zz4nKSsnPC9idXR0b24+PGJ1dHRvbiBpZD0iY2xvc2UtZHJhd2VyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gc2lkZWJhci1jbG9zZSBkcmF3ZXItY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRFx1ODNEQ1x1NTM1NSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItYm9keSI+PGRpdiBpZD0ic2Vzc2lvbnMtcGFuZWwiPjxkaXYgY2xhc3M9InNlc3Npb25zLWxpc3QiIGlkPSJzZXNzaW9ucy1saXN0Ij4nK2hhKCkrJzwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItZm9vdGVyIj48YnV0dG9uIGlkPSJkcmF3ZXItbmV3LXNlc3Npb24tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+PHNwYW4+Kzwvc3Bhbj4gXHU2NUIwXHU0RjFBXHU4QkREPC9idXR0b24+PGRpdiBjbGFzcz0ic2lkZWJhci1mb290ZXItYWN0aW9ucyI+PGJ1dHRvbiBpZD0iZmlsZS1wYW5lbC10b2dnbGUtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20nKyhyLmZpbGVQYW5lbE9wZW4/IiBhY3RpdmUiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTY1ODdcdTRFRjYiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+PHNwYW4+XHU2NTg3XHU0RUY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9InNldHRpbmdzLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdThCQkVcdTdGNkUiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPjxwYXRoIGQ9Ik0xOS40IDE1YTEuNjUgMS42NSAwIDAgMCAuMzMgMS44MmwuMDYuMDZhMiAyIDAgMCAxLTIuODMgMi44M2wtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtNCAwdi0uMDlBMS42NSAxLjY1IDAgMCAwIDkgMTkuNGExLjY1IDEuNjUgMCAwIDAtMS44Mi4zM2wtLjA2LjA2YTIgMiAwIDAgMS0yLjgzLTIuODNsLjA2LS4wNkExLjY1IDEuNjUgMCAwIDAgNC42OCAxNWExLjY1IDEuNjUgMCAwIDAtMS41MS0xSDNhMiAyIDAgMCAxIDAtNGguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAwIDEgMi44My0yLjgzbC4wNi4wNkExLjY1IDEuNjUgMCAwIDAgOSA0LjY4YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgNCAwdi4wOWExLjY1IDEuNjUgMCAwIDAgMSAxLjUxIDEuNjUgMS42NSAwIDAgMCAxLjgyLS4zM2wuMDYtLjA2YTIgMiAwIDAgMSAyLjgzIDIuODNsLS4wNi4wNkExLjY1IDEuNjUgMCAwIDAgMTkuNCA5YTEuNjUgMS42NSAwIDAgMCAxLjUxIDFIMjFhMiAyIDAgMCAxIDAgNGgtLjA5YTEuNjUgMS42NSAwIDAgMC0xLjUxIDF6Ii8+PC9zdmc+PHNwYW4+XHU4QkJFXHU3RjZFPC9zcGFuPjwvYnV0dG9uPicrKGJtKCk/JzxidXR0b24gaWQ9ImJhY2stdG8tbmF0aXZlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItYmFjay10by1uYXRpdmUiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEZENFx1NTZERSBBcHAgXHU1MzlGXHU3NTFGXHU3NTRDXHU5NzYyIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjEwIiB5PSIzIiB3aWR0aD0iMTEiIGhlaWdodD0iMTgiIHJ4PSIyIi8+PGxpbmUgeDE9IjE0IiB5MT0iMTciIHgyPSIxNyIgeTI9IjE3Ii8+PHBvbHlsaW5lIHBvaW50cz0iNyA4IDMgMTIgNyAxNiIvPjwvc3ZnPjxzcGFuPlx1OEZENFx1NTZERUFwcDwvc3Bhbj48L2J1dHRvbj4nOiIiKSsodnUoKT8nPGJ1dHRvbiBpZD0ic3dpdGNoLXNlcnZlci1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLXN3aXRjaC1zZXJ2ZXIiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIwN1x1NjM2Mlx1NjcwRFx1NTJBMVx1NTY2OCI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIyIiB5PSIxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSI3IiB4Mj0iNi4wMSIgeTI9IjciLz48bGluZSB4MT0iNiIgeTE9IjE3IiB4Mj0iNi4wMSIgeTI9IjE3Ii8+PC9zdmc+PHNwYW4+XHU1MjA3XHU2MzYyPC9zcGFuPjwvYnV0dG9uPic6IiIpKyc8YnV0dG9uIGlkPSJsb2dvdXQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1sb2dvdXQiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1NzY3Qlx1NUY1NSI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQiLz48cG9seWxpbmUgcG9pbnRzPSIxNiAxNyAyMSAxMiAxNiA3Ii8+PGxpbmUgeDE9IjIxIiB5MT0iMTIiIHgyPSI5IiB5Mj0iMTIiLz48L3N2Zz48c3Bhbj5cdTkwMDBcdTUxRkE8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9hc2lkZT48bWFpbiBjbGFzcz0ibWFpbi1jb250ZW50Ij48ZGl2IGNsYXNzPSJtYWluLWhlYWRlci1yb3ciPjxkaXYgY2xhc3M9InRvcGJhci1sZWZ0Ij48YnV0dG9uIGlkPSJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIiBjbGFzcz0iZmxvYXRpbmctc2lkZWJhci10b2dnbGUnKyhyLnNlc3Npb25zRHJhd2VyT3Blbj8iIGFjdGl2ZSI6IiIpKyciIGFyaWEtbGFiZWw9Ilx1NTIwN1x1NjM2Mlx1NEYxQVx1OEJERFx1NEZBN1x1NjgwRiIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0iaGFtYnVyZ2VyLWljb24iPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvc3Bhbj48L2J1dHRvbj48c3BhbiBjbGFzcz0idG9wYmFyLWJyYW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Vzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ0b3BiYXItY2VudGVyIj4nKyh0Pyc8c3BhbiBjbGFzcz0idG9wYmFyLXNlc3Npb24tdGl0bGUiIHRpdGxlPSInK3AodC5kZXNjcmlwdGlvbnx8dC5jb21tYW5kfHwiIikrJyI+JytwKHQudGl0bGV8fCRuKHQuY29tbWFuZCkpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLXBpbGwgJytrbyh0KSsnIiB0aXRsZT0iJytwKHZyKHQpKSsnIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLXRleHQiPicrcCh2cih0KSkrJzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImN1cnJlbnQtdGFzayBoaWRkZW4iIGlkPSJjdXJyZW50LXRhc2siPjwvc3Bhbj4nKyh0LmN3ZD9ndCh0LmN3ZCwidG9wYmFyLWN3ZCIsJyBpZD0idG9wYmFyLWN3ZCIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCInKToiIik6JzxzcGFuIGNsYXNzPSJ0b3BiYXItdGFnbGluZSI+V2FuZCBcdTYzQTdcdTUyMzZcdTUzRjA8L3NwYW4+PHNwYW4gY2xhc3M9ImN1cnJlbnQtdGFzayBoaWRkZW4iIGlkPSJjdXJyZW50LXRhc2siPjwvc3Bhbj4nKSsnPC9kaXY+PGRpdiBjbGFzcz0idG9wYmFyLXJpZ2h0Ij48YnV0dG9uIGlkPSJ0b3BiYXItZmlsZS1idXR0b24iIGNsYXNzPSJ0b3BiYXItYnRuIHNxdWFyZScrKHIuZmlsZVBhbmVsT3Blbj8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2NTg3XHU0RUY2IiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU2NTg3XHU0RUY2XHVGRjA4XHU1M0VGXHU0RkVFXHU2NTM5XHU4REVGXHU1Rjg0XHVGRjA5Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPjwvc3ZnPjwvYnV0dG9uPjxzcGFuIGlkPSJ0b3BiYXItZ2l0LXNsb3QiIGNsYXNzPSJ0b3BiYXItZ2l0LXNsb3QiPicrYm8oKSsiPC9zcGFuPiIrKHQ/JGQodCk6IiIpKyc8L2Rpdj48L2Rpdj48ZGl2IGlkPSJmaWxlLXBhbmVsLWJhY2tkcm9wIiBjbGFzcz0iZmlsZS1wYW5lbC1iYWNrZHJvcCcrKHIuZmlsZVBhbmVsT3Blbj8iIG9wZW4iOiIiKSsnIj48L2Rpdj48ZGl2IGlkPSJmaWxlLXNpZGUtcGFuZWwiIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwnKyhyLmZpbGVQYW5lbE9wZW4/IiBvcGVuIjoiIikrJyI+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWhlYWRlciI+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLXRpdGxlLWdyb3VwIj48c3BhbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb24iPicrTWUoImZvbGRlci1vcGVuIix7c2l6ZToxNn0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC10aXRsZSI+XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1oZWFkZXItYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb25idG4iIGlkPSJmaWxlLWV4cGxvcmVyLXJlZnJlc2giIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIzN1x1NjVCMCIgYXJpYS1sYWJlbD0iXHU1MjM3XHU2NUIwXHU2NTg3XHU0RUY2XHU1MjE3XHU4ODY4Ij4nK01lKCJyZWZyZXNoIix7c2l6ZToxNX0pKyc8L2J1dHRvbj48YnV0dG9uIGlkPSJmaWxlLXNpZGUtcGFuZWwtY2xvc2UiIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbmJ0biBjbG9zZSIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTY1ODdcdTRFRjZcdTk3NjJcdTY3N0YiIHRpdGxlPSJcdTUxNzNcdTk1RUQiPicrTWUoIngiLHtzaXplOjE2fSkrJzwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyLWhlYWRlciI+PGJ1dHRvbiBjbGFzcz0iZmlsZS1leHBsb3Jlci11cCIgaWQ9ImZpbGUtZXhwbG9yZXItdXAiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEZENFx1NTZERVx1NEUwQVx1N0VBN1x1NzZFRVx1NUY1NSIgYXJpYS1sYWJlbD0iXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3XHU3NkVFXHU1RjU1Ij4nK01lKCJhcnJvdy11cCIse3NpemU6MTV9KSsnPC9idXR0b24+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmaWxlLWV4cGxvcmVyLXBhdGgiIGlkPSJmaWxlLWV4cGxvcmVyLWN3ZCIgdmFsdWU9IicrcCh0JiZ0LmN3ZD90LmN3ZDphbigpKSsnIiB0aXRsZT0iJytwKHQmJnQuY3dkP3QuY3dkOmFuKCkpKyciIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdThERUZcdTVGODRcdTVFNzZcdTU2REVcdThGNjYuLi4iIHNwZWxsY2hlY2s9ImZhbHNlIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU4REVGXHU1Rjg0XHVGRjBDXHU1M0VGXHU3NkY0XHU2M0E1XHU0RkVFXHU2NTM5XHU1NDBFXHU1NkRFXHU4RjY2IiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2VhcmNoLWJveCI+PHNwYW4gY2xhc3M9ImZpbGUtc2VhcmNoLWljb24iPicrTWUoInNlYXJjaCIse3NpemU6MTR9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZmlsZS1zZWFyY2gtaW5wdXQiIGNsYXNzPSJmaWxlLXNlYXJjaC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NjQxQ1x1N0QyMlx1NUY1M1x1NTI0RFx1NzZFRVx1NUY1NVx1MjAyNiIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiAvPjxidXR0b24gY2xhc3M9ImZpbGUtc2VhcmNoLWNsZWFyIiBpZD0iZmlsZS1zZWFyY2gtY2xlYXIiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2RTA1XHU5NjY0XHU2NDFDXHU3RDIyIiB0aXRsZT0iXHU2RTA1XHU5NjY0Ij4nK01lKCJ4Iix7c2l6ZToxM30pKyc8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIiBpZD0iZmlsZS1leHBsb3JlciI+JytQZCh0JiZ0LmN3ZD90LmN3ZDphbigpKSsnPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0ib3V0cHV0IiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyJysoci5zZWxlY3RlZElkPyIiOiIgaGlkZGVuIikrJyBhY3RpdmUiPjxkaXYgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXkiIGFyaWEtbGFiZWw9Ilx1N0VDOFx1N0FFRlx1N0YyOVx1NjUzRVx1NjNBN1x1NEVGNiI+PGJ1dHRvbiBpZD0idGVybWluYWwtc2NhbGUtZG93bi10b3AiIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biB0ZXJtaW5hbC1zY2FsZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1N0YyOVx1NUMwRiI+XHUyMjEyPC9idXR0b24+PHNwYW4gY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktbGFiZWwgdGVybWluYWwtc2NhbGUtbGFiZWwiIGlkPSJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiPicrTWF0aC5yb3VuZChyLnRlcm1pbmFsU2NhbGUqMTAwKSsnJTwvc3Bhbj48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1zY2FsZS11cC10b3AiIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biB0ZXJtaW5hbC1zY2FsZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjUzRVx1NTkyNyI+KzwvYnV0dG9uPjxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWRpdmlkZXIiPjwvc3Bhbj48YnV0dG9uIGlkPSJwYWdlLXJlZnJlc2gtYnRuIiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2MiI+XHUyMUJCPC9idXR0b24+PC9kaXY+PGJ1dHRvbiBpZD0idGVybWluYWwtanVtcC1ib3R0b20iIGNsYXNzPSJ0ZXJtaW5hbC1qdW1wLWJvdHRvbScrKHIuc2hvd1Rlcm1pbmFsSnVtcFRvQm90dG9tPyIgdmlzaWJsZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTZERVx1NTIzMFx1NUU5NVx1OTBFOCIgYXJpYS1sYWJlbD0iXHU1NkRFXHU1MjMwXHU1RTk1XHU5MEU4Ij48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAzLjV2OU0zLjUgOGw0LjUgNC41TDEyLjUgOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImNoYXQtb3V0cHV0IiBjbGFzcz0iY2hhdC1jb250YWluZXIgaGlkZGVuIj48ZGl2IGlkPSJjaGF0LWZvbGQtYmFyIiBjbGFzcz0iY2hhdC1mb2xkLWJhciBoaWRkZW4iIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj48YnV0dG9uIGlkPSJjaGF0LXVucmVhZC1idWJibGUiIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiIgYXJpYS1sYWJlbD0iXHU1NkRFXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtYnViYmxlLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDMuNXY5TTMuNSA4bDQuNSA0LjVMMTIuNSA4Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUtY291bnQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iYmxhbmstY2hhdCIgY2xhc3M9ImJsYW5rLWNoYXQnKyhyLnNlbGVjdGVkSWQ/IiBoaWRkZW4iOiIiKSsnIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWlubmVyIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWxvZ28iPlc8L2Rpdj48aDIgY2xhc3M9ImJsYW5rLWNoYXQtdGl0bGUiPldhbmQ8L2gyPjxwIGNsYXNzPSJibGFuay1jaGF0LXN1YnRpdGxlIj5cdTY1MkZcdTYzMDFcdTdFQzhcdTdBRUYgUFRZIFx1NEYxQVx1OEJERFx1NEUwRVx1N0VEM1x1Njc4NFx1NTMxNiBjaGF0IFx1NEYxQVx1OEJERFx1RkYwQ1x1NEUyNFx1NzlDRFx1NkEyMVx1NUYwRlx1NTNFRlx1NUU3Nlx1NUI1OFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJibGFuay1jaGF0LXRvb2xzIj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLWNsYXVkZSIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIj4nK1YoInRlcm1pbmFsIix7c2l6ZToxNixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPlx1NjVCMFx1NUVGQVx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtY29kZXgiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiB0b29sLWljb24tdGV4dCI+XHUyMzE4PC9zcGFuPlx1NjVCMFx1NUVGQSBDb2RleCBcdTRGMUFcdThCREQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLXN0cnVjdHVyZWQiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiI+JytWKCJjaGF0Iix7c2l6ZToxNixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPlx1NjVCMFx1NUVGQVx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERDwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLXdyYXAiPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkIiBpZD0iYmxhbmstY2hhdC1jd2QiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIHRpdGxlPSJcdTcwQjlcdTUxRkJcdTUyMDdcdTYzNjJcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUiPjxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pY29uIj4nK1YoImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44fSkrIjwvc3Bhbj4iK2d0KCRlKCksImJsYW5rLWNoYXQtY3dkLXBhdGgiLCcgaWQ9ImJsYW5rLWNoYXQtY3dkLXBhdGgiJykrJzxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1hcnJvdyIgaWQ9ImJsYW5rLWNoYXQtY3dkLWFycm93Ij4nK1YoImNoZXZyb25Eb3duIix7c2l6ZToxMSxzdHJva2VXaWR0aDoyfSkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1kcm9wZG93biBoaWRkZW4iIGlkPSJibGFuay1jaGF0LWN3ZC1kcm9wZG93biI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaW5wdXQtcGFuZWwnKyhyLnNlbGVjdGVkSWQ/IiI6IiBoaWRkZW4iKSsnIj48ZGl2IGNsYXNzPSJjb21wb3Nlci10b3Atcm93Ij48ZGl2IGlkPSJ0b2RvLXByb2dyZXNzIiBjbGFzcz0idG9kby1wcm9ncmVzcyBoaWRkZW4iPjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtaGVhZGVyIiBpZD0idG9kby1wcm9ncmVzcy10b2dnbGUiPjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtZmlsbCIgaWQ9InRvZG8tcHJvZ3Jlc3MtZmlsbCIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSItLXByb2dyZXNzOjAiPjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtbGVmdCI+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtcmluZyIgaWQ9InRvZG8tcHJvZ3Jlc3MtcmluZyIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSItLXByb2dyZXNzOjAiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMzYgMzYiPjxjaXJjbGUgY2xhc3M9InRvZG8tcmluZy10cmFjayIgY3g9IjE4IiBjeT0iMTgiIHI9IjE1LjUiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNCIvPjxjaXJjbGUgY2xhc3M9InRvZG8tcmluZy1maWxsIiBjeD0iMTgiIGN5PSIxOCIgcj0iMTUuNSIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtY291bnRlciIgaWQ9InRvZG8tcHJvZ3Jlc3MtY291bnRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtdGFzay13cmFwIj48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy10YXNrIiBpZD0idG9kby1wcm9ncmVzcy10YXNrIj48L3NwYW4+PC9kaXY+PHN2ZyBjbGFzcz0idG9kby1wcm9ncmVzcy1jaGV2cm9uIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSI2IDE1IDEyIDkgMTggMTUiLz48L3N2Zz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0b2RvLXByb2dyZXNzLWJvZHkgaGlkZGVuIiBpZD0idG9kby1wcm9ncmVzcy1ib2R5Ij48dWwgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtbGlzdCIgaWQ9InRvZG8tcHJvZ3Jlc3MtbGlzdCI+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJxdWV1ZS1iYXItaG9zdCIgY2xhc3M9InF1ZXVlLWJhci1ob3N0IiBoaWRkZW4+PC9kaXY+PGRpdiBjbGFzcz0iaW5wdXQtY29tcG9zZXInKyhhPyIgaGFzLXRleHQiOiIiKSsnIj48ZGl2IGNsYXNzPSJjb21wb3Nlci1zdGF0dXMtcm93IiBpZD0iY29tcG9zZXItc3RhdHVzLXJvdyI+Jyt4bSh0KSsnPHNwYW4gY2xhc3M9InBlcm1pc3Npb24tYWN0aW9ucyBoaWRkZW4iIGlkPSJwZXJtaXNzaW9uLWFjdGlvbnMiPjxzcGFuIGNsYXNzPSJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiIGlkPSJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiPlx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0Mzwvc3Bhbj48YnV0dG9uIGlkPSJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiBjbGFzcz0iYnRuIGJ0bi1wZXJtaXNzaW9uIGJ0bi1wZXJtaXNzaW9uLWFwcHJvdmUiIHR5cGU9ImJ1dHRvbiI+XHU2Mjc5XHU1MUM2PC9idXR0b24+PGJ1dHRvbiBpZD0iZGVueS1wZXJtaXNzaW9uLWJ0biIgY2xhc3M9ImJ0biBidG4tcGVybWlzc2lvbiBidG4tcGVybWlzc2lvbi1kZW55IiB0eXBlPSJidXR0b24iPlx1NjJEMlx1N0VERDwvYnV0dG9uPjwvc3Bhbj4nK09mKCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLW1haW4tcm93Ij48ZGl2IGNsYXNzPSJjb21wb3Nlci1hY3Rpb25zLWxlZnQiPjxidXR0b24gaWQ9ImF0dGFjaC1idG4iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtYWN0aW9uIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY2RjRcdTU5MUEiIGFyaWEtbGFiZWw9Ilx1NjZGNFx1NTkxQSIgYXJpYS1oYXNwb3B1cD0ibWVudSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPicrVigicGx1cyIse3NpemU6MTgsc3Ryb2tlV2lkdGg6Mi4yfSkrJzwvYnV0dG9uPjxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZS11cGxvYWQtaW5wdXQiIG11bHRpcGxlIHRhYmluZGV4PSItMSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtvdmVyZmxvdzpoaWRkZW47Y2xpcDpyZWN0KDAsMCwwLDApO3BvaW50ZXItZXZlbnRzOm5vbmUiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWlubGluZS1jb25maWciPicrTGwodCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWlucHV0LXdyYXAiPjx0ZXh0YXJlYSBpZD0iaW5wdXQtYm94IiBjbGFzcz0iaW5wdXQtdGV4dGFyZWEiIHBsYWNlaG9sZGVyPSInK3dsKHQsci50ZXJtaW5hbEludGVyYWN0aXZlKSsnIiByb3dzPSIxIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIGVudGVya2V5aGludD0ic2VuZCI+JytwKGEpKyc8L3RleHRhcmVhPjxidXR0b24gaWQ9InByb21wdC1vcHRpbWl6ZS1idG4iIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdUZGMDhBSVx1RkYwOSIgYXJpYS1sYWJlbD0iXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2Ij48c3ZnIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMiAzbDEuNiA0LjRMMTggOWwtNC40IDEuNkwxMiAxNWwtMS42LTQuNEw2IDlsNC40LTEuNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4yNSIvPjxwYXRoIGQ9Ik0xMiAzbDEuNiA0LjRMMTggOWwtNC40IDEuNkwxMiAxNWwtMS42LTQuNEw2IDlsNC40LTEuNnoiLz48cGF0aCBkPSJNMTkgMTRsLjcgMS45TDIxLjYgMTdsLTEuOS43TDE5IDE5LjZsLS43LTEuOUwxNi40IDE3bDEuOS0uN3oiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4zNSIvPjxwYXRoIGQ9Ik01IDRsLjUgMS40TDcgNmwtMS41LjZMNSA4bC0uNS0xLjRMMyA2bDEuNS0uNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4zNSIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtc3Bpbm5lciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2J1dHRvbj48ZGl2IGNsYXNzPSJ2b2ljZS1pbnB1dC1tb2RlIGhpZGRlbiIgaWQ9InZvaWNlLWlucHV0LW1vZGUiPjxidXR0b24gaWQ9InZvaWNlLXJlY29yZC1idG4iIGNsYXNzPSJ2b2ljZS1yZWNvcmQtYnRuIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ2b2ljZS1yZWNvcmQtcHVsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PHNwYW4gY2xhc3M9InZvaWNlLXJlY29yZC1sYWJlbCI+XHU2MzA5XHU0RjRGIFx1OEJGNFx1OEJERDwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJ2b2ljZS1jYW5jZWwtYnRuIiBjbGFzcz0idm9pY2UtY2FuY2VsLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU4QkVEXHU5N0YzXHU2QTIxXHU1RjBGIiBhcmlhLWxhYmVsPSJcdTkwMDBcdTUxRkFcdThCRURcdTk3RjNcdTZBMjFcdTVGMEYiPicrVigieCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6Mn0pKyc8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1hY3Rpb25zLXJpZ2h0Ij48YnV0dG9uIGlkPSJzdG9wLWJ1dHRvbiIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1zdG9wIGhpZGRlbiIgdGl0bGU9Ilx1NTA1Q1x1NkI2MiI+PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj48cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIi8+PC9zdmc+PC9idXR0b24+PGJ1dHRvbiBpZD0ic2VuZC1pbnB1dC1idXR0b24iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtc2VuZCIgdGl0bGU9Ilx1NTNEMVx1OTAwMSI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSIyMiIgeTE9IjIiIHgyPSIxMSIgeTI9IjEzIi8+PHBvbHlnb24gcG9pbnRzPSIyMiAyIDE1IDIyIDExIDEzIDIgOSAyMiAyIi8+PC9zdmc+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYXR0YWNobWVudC1wcmV2aWV3IiBjbGFzcz0iYXR0YWNobWVudC1wcmV2aWV3IGhpZGRlbiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItcGx1cy1wb3BvdmVyIGhpZGRlbiIgaWQ9ImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIgcm9sZT0ibWVudSIgYXJpYS1sYWJlbD0iXHU2NkY0XHU1OTFBXHU2NENEXHU0RjVDIj48YnV0dG9uIGNsYXNzPSJwbHVzLXBvcG92ZXItaXRlbSIgaWQ9InBsdXMtYXR0YWNoLWl0ZW0iIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrVigicGFwZXJjbGlwIix7c2l6ZToxNCxzdHJva2VXaWR0aDoxLjgsY2xzOiJwbHVzLXBvcG92ZXItaWNvbiJ9KSsnPHNwYW4gY2xhc3M9InBsdXMtcG9wb3Zlci1sYWJlbCI+XHU0RTBBXHU0RjIwXHU5NjQ0XHU0RUY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InBsdXMtcG9wb3Zlci1pdGVtJysoci50ZXJtaW5hbEludGVyYWN0aXZlPyIgaXMtb24iOiIiKSsnIiBpZD0idGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbWNoZWNrYm94IiBhcmlhLWNoZWNrZWQ9IicrKHIudGVybWluYWxJbnRlcmFjdGl2ZT8idHJ1ZSI6ImZhbHNlIikrJyI+JytWKCJrZXlib2FyZCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6MS44LGNsczoicGx1cy1wb3BvdmVyLWljb24ifSkrJzxzcGFuIGNsYXNzPSJwbHVzLXBvcG92ZXItbGFiZWwiPlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mjwvc3Bhbj48c3BhbiBjbGFzcz0icGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZSI+Jysoci50ZXJtaW5hbEludGVyYWN0aXZlPyJcdTVGMDAiOiJcdTUxNzMiKSsnPC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9InBsdXMtcG9wb3Zlci1zZXAiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj48ZGl2IGNsYXNzPSJwbHVzLXBvcG92ZXItdHJpby13cmFwIj4nK0xsKHQpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSBoaWRkZW4iIGlkPSJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIgYXJpYS1saXZlPSJwb2xpdGUiPjxkaXYgY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtdGV4dCIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtdGV4dCI+PC9kaXY+PGRpdiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC1oaW50IiBpZD0idm9pY2UtdHJhbnNjcmlwdC1oaW50Ij48c3BhbiBjbGFzcz0idm9pY2Utd2F2ZSIgYXJpYS1oaWRkZW49InRydWUiPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48L3NwYW4+PHNwYW4gY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIiBpZD0idm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiPlx1NkI2M1x1NTcyOFx1ODA0Nlx1NTQyQ1x1MjAyNlx1NEUwQVx1NkVEMVx1NTNENlx1NkQ4ODwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idm9pY2UtYnViYmxlLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvZGl2PjxwIGlkPSJhY3Rpb24tZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZGl2PjxzZWN0aW9uIGlkPSJmb2xkZXItcGlja2VyLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBmb2xkZXItcGlja2VyLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1OTAwOVx1NjJFOVx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvaDI+PGJ1dHRvbiBpZD0iY2xvc2UtZm9sZGVyLXBpY2tlciIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stcm93Ij48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biBidG4td2l0aC1pY29uIiBkYXRhLXBhdGg9Ii90bXAiPicrVigidHJhc2giLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyc8c3Bhbj5cdTRFMzRcdTY1RjZcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4gYnRuLXdpdGgtaWNvbiIgZGF0YS1wYXRoPSIvIj4nK1YoImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzxzcGFuPlx1NjgzOVx1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItYnJlYWRjcnVtYiIgY2xhc3M9ImZvbGRlci1icmVhZGNydW1iIj48L2Rpdj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyIj48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pY29uIj4nK1YoImZvbGRlciIse3NpemU6MTUsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvbGRlci1waWNrZXItaW5wdXQiIGNsYXNzPSJmb2xkZXItcGlja2VyLWlucHV0IiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2MjE2XHU5MDA5XHU2MkU5XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1Li4uIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIC8+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci1kcm9wZG93biIgY2xhc3M9ImZvbGRlci1waWNrZXItZHJvcGRvd24gaGlkZGVuIj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iIGNsYXNzPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj48L21haW4+PC9kaXY+PC9kaXY+JytFYygpK2xjKCkrZGMoKStDbygpfWZ1bmN0aW9uIEhlKGUsdCl7aWYoZSl7ZS50ZXh0Q29udGVudD10LGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7Zm9yKHZhciBuPWUucHJldmlvdXNFbGVtZW50U2libGluZztuOyl7aWYobi50YWdOYW1lPT09IklOUFVUIil7bi5zZXRBdHRyaWJ1dGUoImRhdGEtZXJyb3IiLCJ0cnVlIik7YnJlYWt9bj1uLnByZXZpb3VzRWxlbWVudFNpYmxpbmd9fX1mdW5jdGlvbiB5aShlKXtpZihlKXtlLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7Zm9yKHZhciB0PWUucHJldmlvdXNFbGVtZW50U2libGluZzt0Oyl7aWYodC50YWdOYW1lPT09IklOUFVUIil7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXJyb3IiLCJmYWxzZSIpO2JyZWFrfXQ9dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nfX19ZnVuY3Rpb24gQShlLHQpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0b2FzdC1tZXNzYWdlIisodD09PSJlcnJvciI/IiB0b2FzdC1lcnJvciI6IiIpLHQhPT0iZXJyb3IiJiYobi5zdHlsZS5iYWNrZ3JvdW5kPSJ2YXIoLS1hY2NlbnQpIixuLnN0eWxlLmNvbG9yPSJ3aGl0ZSIpLG4udGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnJlbW92ZSgpfSx0PT09ImVycm9yIj80ZTM6MjIwMCl9dmFyIERyPVtdLE5mPTA7ZnVuY3Rpb24gamYoZSl7c3dpdGNoKGUpe2Nhc2Uid2FybmluZyI6cmV0dXJuJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEwLjMgMi45IDEuOCAxN2EyIDIgMCAwIDAgMS43IDNoMTdhMiAyIDAgMCAwIDEuNy0zTDEzLjcgMi45YTIgMiAwIDAgMC0zLjQgMFoiLz48cGF0aCBkPSJNMTIgOXY0Ii8+PHBhdGggZD0iTTEyIDE3aC4wMSIvPjwvc3ZnPic7Y2FzZSJkYW5nZXIiOnJldHVybic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRoOHYyIi8+PHBhdGggZD0ibTE5IDYtMSAxNEg2TDUgNiIvPjxwYXRoIGQ9Ik0xMCAxMXY1Ii8+PHBhdGggZD0iTTE0IDExdjUiLz48L3N2Zz4nO2Nhc2Uic3VjY2VzcyI6cmV0dXJuJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiLz48L3N2Zz4nO2Nhc2UicXVlc3Rpb24iOnJldHVybic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48cGF0aCBkPSJNOS43IDlhMi41IDIuNSAwIDEgMSA0LjUgMS41Yy0uOS44LTIuMiAxLjItMi4yIDIuNSIvPjxwYXRoIGQ9Ik0xMiAxN2guMDEiLz48L3N2Zz4nO2RlZmF1bHQ6cmV0dXJuJzxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iOSIvPjxwYXRoIGQ9Ik0xMiAxMXY1Ii8+PHBhdGggZD0iTTEyIDhoLjAxIi8+PC9zdmc+J319ZnVuY3Rpb24gb24oZSl7ZT1lfHx7fTt2YXIgdD1lLmRpc21pc3NhYmxlIT09ITEsbj1lLnR5cGV8fCJpbmZvIixpPWpmKG4pLGE9ISFlLmlucHV0O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih1KXt2YXIgbz0id2FuZC1kaWFsb2ctIisgKytOZixzPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtsLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctYmFja2Ryb3AiLGwuc2V0QXR0cmlidXRlKCJyb2xlIiwicHJlc2VudGF0aW9uIik7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc05hbWU9IndhbmQtZGlhbG9nIixkLnNldEF0dHJpYnV0ZSgicm9sZSIsYT8iZGlhbG9nIjoiYWxlcnRkaWFsb2ciKSxkLnNldEF0dHJpYnV0ZSgiYXJpYS1tb2RhbCIsInRydWUiKTt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctaGVhZGVyIjt2YXIgYz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtjLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctaWNvbiAiK24sYy5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLGUuaWNvbj9jLnRleHRDb250ZW50PVN0cmluZyhlLmljb24pOmMuaW5uZXJIVE1MPWksZi5hcHBlbmRDaGlsZChjKTt2YXIgdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpZih2LmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctdGV4dHdyYXAiLGUudGl0bGUpe3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2guY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy10aXRsZSIsaC5pZD1vKyItdGl0bGUiLGgudGV4dENvbnRlbnQ9ZS50aXRsZSx2LmFwcGVuZENoaWxkKGgpLGQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLGguaWQpfWlmKGUubWVzc2FnZSl7dmFyIGc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zy5jbGFzc05hbWU9IndhbmQtZGlhbG9nLW1lc3NhZ2UiLGcuaWQ9bysiLW1lc3NhZ2UiLGcudGV4dENvbnRlbnQ9ZS5tZXNzYWdlLHYuYXBwZW5kQ2hpbGQoZyksZC5zZXRBdHRyaWJ1dGUoImFyaWEtZGVzY3JpYmVkYnkiLGcuaWQpfWUudGl0bGV8fGQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixuPT09ImRhbmdlciI/Ilx1Nzg2RVx1OEJBNFx1NjRDRFx1NEY1QyI6Ilx1NjNEMFx1NzkzQSIpLGYuYXBwZW5kQ2hpbGQodiksZC5hcHBlbmRDaGlsZChmKTt2YXIgbT1udWxsO2lmKGEpe3ZhciB5PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3kuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1ib2R5IixtPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksbS50eXBlPSJ0ZXh0IixtLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctaW5wdXQiLG0uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixlLmlucHV0TGFiZWx8fGUudGl0bGV8fCJcdThGOTNcdTUxNjVcdTUxODVcdTVCQjkiKSxtLmF1dG9jb21wbGV0ZT0ib2ZmIixtLnNwZWxsY2hlY2s9ITEsZS5pbnB1dFBsYWNlaG9sZGVyJiYobS5wbGFjZWhvbGRlcj1lLmlucHV0UGxhY2Vob2xkZXIpLGUuaW5wdXRWYWx1ZSE9bnVsbCYmKG0udmFsdWU9U3RyaW5nKGUuaW5wdXRWYWx1ZSkpLHkuYXBwZW5kQ2hpbGQobSksZC5hcHBlbmRDaGlsZCh5KX12YXIgQz1lLmJ1dHRvbnMmJmUuYnV0dG9ucy5sZW5ndGg/ZS5idXR0b25zOlt7bGFiZWw6Ilx1NTk3RCIsdmFsdWU6ITAsa2luZDoicHJpbWFyeSIsYXV0b2ZvY3VzOiEwfV0sRT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtFLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctZm9vdGVyIjt2YXIgQj1udWxsLEQ9bnVsbDtmdW5jdGlvbiBGKEwpe2lmKCFsLmNsYXNzTGlzdC5jb250YWlucygiY2xvc2luZyIpKXtsLmNsYXNzTGlzdC5hZGQoImNsb3NpbmciKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixJLCEwKTt2YXIgSD1Eci5pbmRleE9mKEYpO0g+PTAmJkRyLnNwbGljZShILDEpO3ZhciBVPSExO3RyeXtVPSEhKHdpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzKX1jYXRjaHt9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKGwucGFyZW50Tm9kZSYmbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGwpLHMmJmRvY3VtZW50LmNvbnRhaW5zKHMpJiZ0eXBlb2Ygcy5mb2N1cz09ImZ1bmN0aW9uIil0cnl7cy5mb2N1cygpfWNhdGNoe311KEwpfSxVfHxkb2N1bWVudC5oaWRkZW4/MDoxNDApfX1DLmZvckVhY2goZnVuY3Rpb24oTCl7dmFyIEg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIiksVT1MLmtpbmR8fCJzZWNvbmRhcnkiO0guY2xhc3NOYW1lPSJidG4gYnRuLSIrVSxILnR5cGU9ImJ1dHRvbiIsSC50ZXh0Q29udGVudD1MLmxhYmVsLEguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7YSYmTC5raW5kPT09InByaW1hcnkiP0YobT9tLnZhbHVlOiIiKTpGKEwudmFsdWUpfSksQnx8KEI9SCksTC5hdXRvZm9jdXMmJihEPUgpLEUuYXBwZW5kQ2hpbGQoSCl9KSxkLmFwcGVuZENoaWxkKEUpLGwuYXBwZW5kQ2hpbGQoZCksbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oTCl7TC50YXJnZXQ9PT1sJiZ0JiZGKGUuY2FuY2VsVmFsdWUhPT12b2lkIDA/ZS5jYW5jZWxWYWx1ZTphP251bGw6ITEpfSk7ZnVuY3Rpb24gSShMKXtpZihEcltEci5sZW5ndGgtMV09PT1GKXtpZihMLmtleT09PSJFc2NhcGUiJiZ0KXtMLnByZXZlbnREZWZhdWx0KCksTC5zdG9wUHJvcGFnYXRpb24oKSxGKGUuY2FuY2VsVmFsdWUhPT12b2lkIDA/ZS5jYW5jZWxWYWx1ZTphP251bGw6ITEpO3JldHVybn1pZihMLmtleT09PSJFbnRlciIpe2Zvcih2YXIgSD1udWxsLFU9MDtVPEMubGVuZ3RoO1UrKylpZihDW1VdLmtpbmQ9PT0icHJpbWFyeSIpe0g9Q1tVXTticmVha31IfHwoSD1DW0MubGVuZ3RoLTFdKSxIJiYoTC5wcmV2ZW50RGVmYXVsdCgpLEwuc3RvcFByb3BhZ2F0aW9uKCksYSYmSC5raW5kPT09InByaW1hcnkiP0YobT9tLnZhbHVlOiIiKTpGKEgudmFsdWUpKTtyZXR1cm59aWYoTC5rZXk9PT0iVGFiIil7dmFyIHg9ZC5xdWVyeVNlbGVjdG9yQWxsKCdidXR0b246bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknKTtpZigheC5sZW5ndGgpcmV0dXJuO3ZhciBrPXhbMF0sVD14W3gubGVuZ3RoLTFdO0wuc2hpZnRLZXkmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1rPyhMLnByZXZlbnREZWZhdWx0KCksVC5mb2N1cygpKTohTC5zaGlmdEtleSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PVQmJihMLnByZXZlbnREZWZhdWx0KCksay5mb2N1cygpKX19fWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEksITApLERyLnB1c2goRiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtpZihhJiZtKXttLmZvY3VzKCk7dHJ5e20uc2VsZWN0KCl9Y2F0Y2h7fX1lbHNlIEQ/RC5mb2N1cygpOkImJkIuZm9jdXMoKX0pfSl9ZnVuY3Rpb24gY3MoZSx0KXtyZXR1cm4gdD10fHx7fSxvbih7dGl0bGU6dC50aXRsZXx8Ilx1NjNEMFx1NzkzQSIsbWVzc2FnZTp0eXBlb2YgZT09InN0cmluZyI/ZTpTdHJpbmcoZT8/IiIpLHR5cGU6dC50eXBlfHwiaW5mbyIsYnV0dG9uczpbe2xhYmVsOnQub2tMYWJlbHx8Ilx1NTk3RCIsdmFsdWU6dm9pZCAwLGtpbmQ6InByaW1hcnkiLGF1dG9mb2N1czohMH1dfSl9ZnVuY3Rpb24gTWEoZSx0KXt0PXR8fHt9O3ZhciBuPSEhdC5kYW5nZXJ8fHQudHlwZT09PSJkYW5nZXIiO3JldHVybiBvbih7dGl0bGU6dC50aXRsZXx8KG4/Ilx1Nzg2RVx1OEJBNFx1NjRDRFx1NEY1QyI6Ilx1OEJGN1x1Nzg2RVx1OEJBNCIpLG1lc3NhZ2U6dHlwZW9mIGU9PSJzdHJpbmciP2U6U3RyaW5nKGU/PyIiKSx0eXBlOnQudHlwZXx8KG4/ImRhbmdlciI6InF1ZXN0aW9uIiksY2FuY2VsVmFsdWU6ITEsYnV0dG9uczpbe2xhYmVsOnQuY2FuY2VsTGFiZWx8fCJcdTUzRDZcdTZEODgiLHZhbHVlOiExLGtpbmQ6InNlY29uZGFyeSJ9LHtsYWJlbDp0Lm9rTGFiZWx8fChuPyJcdTUyMjBcdTk2NjQiOiJcdTc4NkVcdTVCOUEiKSx2YWx1ZTohMCxraW5kOm4/ImRhbmdlciI6InByaW1hcnkiLGF1dG9mb2N1czohbn1dfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT09PSEwfSl9ZnVuY3Rpb24gUmYoZSx0LG4pe3JldHVybiBuPW58fHt9LG9uKHt0aXRsZTpuLnRpdGxlfHwiXHU4QkY3XHU4RjkzXHU1MTY1IixtZXNzYWdlOnR5cGVvZiBlPT0ic3RyaW5nIj9lOlN0cmluZyhlPz8iIiksdHlwZTpuLnR5cGV8fCJxdWVzdGlvbiIsaW5wdXQ6ITAsaW5wdXRWYWx1ZTp0PT1udWxsPyIiOlN0cmluZyh0KSxpbnB1dFBsYWNlaG9sZGVyOm4ucGxhY2Vob2xkZXJ8fCIiLGNhbmNlbFZhbHVlOm51bGwsYnV0dG9uczpbe2xhYmVsOm4uY2FuY2VsTGFiZWx8fCJcdTUzRDZcdTZEODgiLHZhbHVlOm51bGwsa2luZDoic2Vjb25kYXJ5In0se2xhYmVsOm4ub2tMYWJlbHx8Ilx1Nzg2RVx1NUI5QSIsdmFsdWU6dm9pZCAwLGtpbmQ6InByaW1hcnkifV19KX13aW5kb3cud2FuZEFsZXJ0PWNzLHdpbmRvdy53YW5kQ29uZmlybT1NYSx3aW5kb3cud2FuZFByb21wdD1SZix3aW5kb3cub3BlbldhbmREaWFsb2c9b247dmFyICR0PVtdLGZzPTAsV2Y9Nix6Zj0xNjtmdW5jdGlvbiBxYShlKXtpZigoZS5hY3Rpb25MYWJlbHx8ZS5wbGF5U291bmQpJiZocygpLCFyLm5vdGlmQnViYmxlKXJldHVybntkaXNtaXNzOmZ1bmN0aW9uKCl7fX07dmFyIHQ9KytmcyxuPWUudHlwZXx8ImluZm8iLGk9ZS5pY29ufHwobj09PSJ3YXJuaW5nIj8iISI6bj09PSJzdWNjZXNzIj8iXHUyNzEzIjoiaSIpLGE9ZS5kdXJhdGlvbiE9PXZvaWQgMD9lLmR1cmF0aW9uOjhlMyx1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3UuY2xhc3NOYW1lPSJub3RpZmljYXRpb24tYnViYmxlIix1LnNldEF0dHJpYnV0ZSgiZGF0YS1uaWQiLFN0cmluZyh0KSk7dmFyIG89JzxkaXYgY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtaGVhZGVyIj48c3BhbiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1pY29uICcrbisnIj4nK2krJzwvc3Bhbj48c3BhbiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS10aXRsZSI+JytwKGUudGl0bGUpKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1jbG9zZSIgdGl0bGU9Ilx1NTE3M1x1OTVFRCI+XHhENzwvYnV0dG9uPjwvZGl2Picscz1lLmJvZHk/JzxkaXYgY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtYm9keSI+JytwKGUuYm9keSkucmVwbGFjZSgvXG4vZywiPGJyPiIpKyI8L2Rpdj4iOiIiLGw9ZS5hY3Rpb25MYWJlbD8nPGRpdiBjbGFzcz0ibm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJwcmltYXJ5Ij4nK3AoZS5hY3Rpb25MYWJlbCkrIjwvYnV0dG9uPjwvZGl2PiI6IiI7dS5pbm5lckhUTUw9bytzK2wsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1KTt2YXIgZD17aWQ6dCxlbDp1fTskdC5wdXNoKGQpLFBhKCk7dmFyIGY9dS5xdWVyeVNlbGVjdG9yKCIubm90aWZpY2F0aW9uLWJ1YmJsZS1jbG9zZSIpO2lmKGYmJihmLm9uY2xpY2s9ZnVuY3Rpb24oKXtrcih0KX0pLGUuYWN0aW9uTGFiZWwmJmUuYWN0aW9uKXt2YXIgYz11LnF1ZXJ5U2VsZWN0b3IoIi5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uIik7YyYmKGMub25jbGljaz1mdW5jdGlvbigpe2UuYWN0aW9uKCksa3IodCl9KX12YXIgdj1udWxsO3JldHVybiBhPjAmJih2PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtrcih0KX0sYSkpLHtkaXNtaXNzOmZ1bmN0aW9uKCl7a3IodCl9fX1mdW5jdGlvbiBrcihlKXtmb3IodmFyIHQ9LTEsbj0wO248JHQubGVuZ3RoO24rKylpZigkdFtuXS5pZD09PWUpe3Q9bjticmVha31pZih0IT09LTEpe3ZhciBpPSR0W3RdO2kuZWwuY2xhc3NMaXN0LmFkZCgic2xpZGUtb3V0IiksJHQuc3BsaWNlKHQsMSksUGEoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5lbC5wYXJlbnROb2RlJiZpLmVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaS5lbCl9LDMwMCl9fWZ1bmN0aW9uIFBhKCl7Zm9yKHZhciBlPXpmLHQ9MDt0PCR0Lmxlbmd0aDt0KyspJHRbdF0uZWwuc3R5bGUudG9wPWUrInB4IixlKz0kdFt0XS5lbC5vZmZzZXRIZWlnaHQrV2Z9dHJ5e2JzPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dhbmRQbGF0Zm9ybVwvbWFjT1MvKSxfYT13aW5kb3cud2Via2l0JiZ3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycyYmd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMud2FuZE5hdGl2ZXx8bnVsbCxicyYmX2EmJnR5cGVvZiB3aW5kb3cuV2FuZE5hdGl2ZT4idSImJih3aW5kb3cuV2FuZE5hdGl2ZT17ZG93bmxvYWRVcGRhdGU6ZnVuY3Rpb24oZSx0LG4pe3RyeXtfYS5wb3N0TWVzc2FnZSh7dHlwZToiZG93bmxvYWRVcGRhdGUiLHVybDpTdHJpbmcoZXx8IiIpLGZpbGVOYW1lOlN0cmluZyh0fHwid2FuZC11cGRhdGUuZG1nIiksc291cmNlOlN0cmluZyhufHwibG9jYWwiKX0pfWNhdGNoe319fSl9Y2F0Y2h7fXZhciBXZT10eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb249PSJmdW5jdGlvbiIsQXI9bmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgvV2FuZEFwcFwvKFteXHNdKykvKSxwcz0vV2FuZFBsYXRmb3JtXC9tYWNPUy8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxWZj0hIUFyJiYhcHMsSW49QXImJlZmP0FyWzFdOm51bGwsc249QXImJnBzP0FyWzFdOm51bGw7ZnVuY3Rpb24gR24oZSl7aWYoISghV2V8fHR5cGVvZiBXYW5kTmF0aXZlLnZpYnJhdGUhPSJmdW5jdGlvbiIpKXRyeXtXYW5kTmF0aXZlLnZpYnJhdGUoZXx8ImxpZ2h0Iil9Y2F0Y2h7fX1mdW5jdGlvbiBPYSgpe2lmKFdlKXt2YXIgZT1yLnNlc3Npb25zLnNvbWUoZnVuY3Rpb24odCl7cmV0dXJuIXQuYXJjaGl2ZWQmJih0LnN0YXR1cz09PSJydW5uaW5nInx8dC5zdGF0dXM9PT0idGhpbmtpbmcifHx0LnN0YXR1cz09PSJpbml0aWFsaXppbmciKX0pO2lmKHR5cGVvZiBXYW5kTmF0aXZlLnNldEtlZXBTY3JlZW5Pbj09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zZXRLZWVwU2NyZWVuT24oZSl9Y2F0Y2h7fWlmKGUpe2lmKHR5cGVvZiBXYW5kTmF0aXZlLnN0YXJ0S2VlcEFsaXZlPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnN0YXJ0S2VlcEFsaXZlKCl9Y2F0Y2h7fX1lbHNlIGlmKHR5cGVvZiBXYW5kTmF0aXZlLnN0b3BLZWVwQWxpdmU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc3RvcEtlZXBBbGl2ZSgpfWNhdGNoe319fWZ1bmN0aW9uIGJpKCl7aWYoV2UmJnR5cGVvZiBXYW5kTmF0aXZlLmdldFBlcm1pc3Npb249PSJmdW5jdGlvbiIpdHJ5e3JldHVybiBXYW5kTmF0aXZlLmdldFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJuIG51bGx9ZnVuY3Rpb24gVWYoKXtpZihXZSl7dmFyIGU9YmkoKTtpZihlPT09ImRlZmF1bHQifHxlPT09ImRlbmllZCIpdHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJufXR5cGVvZiBOb3RpZmljYXRpb248InUiJiZOb3RpZmljYXRpb24ucGVybWlzc2lvbj09PSJkZWZhdWx0IiYmTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCl9ZnVuY3Rpb24gS2YoZSl7dmFyIHQ9ZXx8e307cmV0dXJuISh0Lm9ubHlXaGVuSGlkZGVuJiYhZG9jdW1lbnQuaGlkZGVufHx0LnNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQmJnQuc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmIWRvY3VtZW50LmhpZGRlbil9ZnVuY3Rpb24gSmYoZSx0KXtpZighZXx8IXR8fHQ8PTApcmV0dXJuITE7dmFyIG49ci5ub3RpZmljYXRpb25IaXN0b3J5W2VdfHwwLGk9RGF0ZS5ub3coKTtyZXR1cm4gaS1uPHQ/ITA6KHIubm90aWZpY2F0aW9uSGlzdG9yeVtlXT1pLCExKX1mdW5jdGlvbiBFaShlLHQsbil7dmFyIGk9bnx8e30sYT1pLnRhZ3x8IiI7aWYoS2YoaSkmJiFKZihhLGkubWluSW50ZXJ2YWxNc3x8MCkpe2lmKFdlKXt2YXIgdT1iaSgpO2lmKHUhPT0iZ3JhbnRlZCIpcmV0dXJuO3RyeXt2YXIgbz1hO2kua2luZCYmKG89aS5raW5kKyhhPyI6IithOiIiKSksV2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uKGV8fCJXYW5kIix0fHwiIixvfHwiIil9Y2F0Y2h7fXJldHVybn1pZighKHR5cGVvZiBOb3RpZmljYXRpb24+InUifHxOb3RpZmljYXRpb24ucGVybWlzc2lvbiE9PSJncmFudGVkIikmJmRvY3VtZW50LmhpZGRlbil0cnl7dmFyIHM9bmV3IE5vdGlmaWNhdGlvbihlLHtib2R5OnR8fCIiLGljb246aS5pY29ufHwiL2Zhdmljb24uaWNvIix0YWc6YXx8dm9pZCAwfSk7cy5vbmNsaWNrPWZ1bmN0aW9uKCl7d2luZG93LmZvY3VzKCkscy5jbG9zZSgpLGkub25DbGljayYmaS5vbkNsaWNrKCl9LHNldFRpbWVvdXQoZnVuY3Rpb24oKXtzLmNsb3NlKCl9LDFlNCl9Y2F0Y2h7fX19ZnVuY3Rpb24gWWYoZSx0KXtpZighKCF0fHwhdC50aXRsZSkpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PWV9KTtpZihuKXt2YXIgaT1uLnN1bW1hcnl8fG4uY29tbWFuZHx8ZTtFaSgiXHU0RUZCXHU1MkExXHU4RkRCXHU4ODRDXHU0RTJEIixpK2AKYCt0LnRpdGxlLHtraW5kOiJ0YXNrIix0YWc6IndhbmQtdGFzay0iK2UrIi0iK3QudGl0bGUsbWluSW50ZXJ2YWxNczo5ZTQsb25seVdoZW5IaWRkZW46ITAsc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZDplLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZIdChlKX19KX19fWZ1bmN0aW9uIHZzKGUsdCl7ZXAoZXx8Ii0iLHR8fCItIiksRWkoIldhbmQgXHU1M0QxXHU3M0IwXHU2NUIwXHU3MjQ4XHU2NzJDIiwiXHU1RjUzXHU1MjREICIrKGV8fCItIikrIiBcdTIxOTIgXHU2NzAwXHU2NUIwICIrKHR8fCItIikse2tpbmQ6InVwZGF0ZSIsdGFnOiJ3YW5kLXVwZGF0ZSIsbWluSW50ZXJ2YWxNczozZTV9KX1mdW5jdGlvbiBHZihlLHQpe0VpKCJcdTk3MDBcdTg5ODFcdTRGNjBcdTc2ODRcdTYzODhcdTY3NDMiLHQse2tpbmQ6InBlcm1pc3Npb24iLHRhZzoid2FuZC1wZXJtLSIrZSxtaW5JbnRlcnZhbE1zOjZlNCxvbmx5V2hlbkhpZGRlbjohMCxza2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkOmUsb25DbGljazpmdW5jdGlvbigpe2UhPT1yLnNlbGVjdGVkSWQmJkh0KGUpfX0pfWZ1bmN0aW9uIFFmKGUsdCxuKXtFaSh0LG4se2tpbmQ6InRhc2stZW5kZWQiLHRhZzoid2FuZC1lbmRlZC0iK2UsbWluSW50ZXJ2YWxNczoxZTQsb25DbGljazpmdW5jdGlvbigpe2UhPT1yLnNlbGVjdGVkSWQmJkh0KGUpfX0pfXZhciBUbj17fSwkZj0zMDtmdW5jdGlvbiBtcyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1TdHJpbmcoZSkucmVwbGFjZSgvXiMrXHMrL2dtLCIiKS5yZXBsYWNlKC9cKlwqL2csIiIpLnJlcGxhY2UoL2AvZywiIikudHJpbSgpLG49dC5zcGxpdChgCmApWzBdLnRyaW0oKTtyZXR1cm4gbi5sZW5ndGg+MTAwJiYobj1uLnNsaWNlKDAsMTAwKSsiXHUyMDI2Iiksbn1mdW5jdGlvbiBIYShlKXshV2V8fHR5cGVvZiBXYW5kTmF0aXZlLnVwZGF0ZVNlc3Npb25Qcm9ncmVzcyE9ImZ1bmN0aW9uInx8ZSYmKFRuW2VdJiZjbGVhclRpbWVvdXQoVG5bZV0pLFRuW2VdPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtkZWxldGUgVG5bZV0sWGYoZSl9LCRmKSl9ZnVuY3Rpb24gWGYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEYpe3JldHVybiBGLmlkPT09ZX0pO2lmKHQpe3ZhciBuPXQuc3VtbWFyeXx8dC5jb21tYW5kfHxlLGk9dC5zdGF0dXN8fCJydW5uaW5nIjtpZihpPT09ImlkbGUifHxpPT09ImFyY2hpdmVkInx8aT09PSJleGl0ZWQiKXtncyhlKTtyZXR1cm59Zm9yKHZhciBhPW51bGwsdT0iIixvPSIiLHM9W10sbD10Lm1lc3NhZ2VzfHxbXSxkPWwubGVuZ3RoLTE7ZD49MDtkLS0pe3ZhciBmPWxbZF07aWYoISghZi5jb250ZW50fHwhQXJyYXkuaXNBcnJheShmLmNvbnRlbnQpKSl7aWYoIW8mJmYucm9sZT09PSJhc3Npc3RhbnQiKWZvcih2YXIgYz1mLmNvbnRlbnQubGVuZ3RoLTE7Yz49MDtjLS0pe3ZhciB2PWYuY29udGVudFtjXTtpZih2JiZ2LnR5cGU9PT0idGV4dCImJnYudGV4dCYmdi50ZXh0LnRyaW0oKSl7bz1tcyh2LnRleHQpO2JyZWFrfX1pZihmLnJvbGU9PT0idXNlciIpe3ZhciBoPWYuY29udGVudC5zb21lKGZ1bmN0aW9uKEYpe3JldHVybiBGJiZGLl9fcXVldWVkfSk7aWYoIWgpZm9yKHZhciBnPTA7ZzxmLmNvbnRlbnQubGVuZ3RoO2crKyl7dmFyIG09Zi5jb250ZW50W2ddO2lmKG0mJm0udHlwZT09PSJ0ZXh0IiYmbS50ZXh0JiZtLnRleHQudHJpbSgpKXt2YXIgeT1tcyhtLnRleHQpO3V8fCh1PXkpLHMubGVuZ3RoPDQmJnMucHVzaCh5KTticmVha319fWlmKCFhKWZvcih2YXIgQz1mLmNvbnRlbnQubGVuZ3RoLTE7Qz49MDtDLS0pe3ZhciBFPWYuY29udGVudFtDXTtpZihFJiZFLnR5cGU9PT0idG9vbF91c2UiJiZFLm5hbWU9PT0iVG9kb1dyaXRlIiYmRS5pbnB1dCYmRS5pbnB1dC50b2Rvcyl7YT1FLmlucHV0LnRvZG9zO2JyZWFrfX1pZihhJiZzLmxlbmd0aD49NCYmbylicmVha319cy5yZXZlcnNlKCk7dmFyIEI9IiI7ZT09PXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50VGFzayYmci5jdXJyZW50VGFzay50aXRsZSYmKEI9ci5jdXJyZW50VGFzay50aXRsZSk7dmFyIEQ9e3Nlc3Npb25MYWJlbDpuLHN0YXR1czppLGN1cnJlbnRUYXNrOkIsbGF0ZXN0VXNlclRleHQ6dSxsYXRlc3RBc3Npc3RhbnRUZXh0Om8sdG9kb3M6YXx8W10scmVjZW50VXNlclRleHRzOnN9O3RyeXtXYW5kTmF0aXZlLnVwZGF0ZVNlc3Npb25Qcm9ncmVzcyhlLEpTT04uc3RyaW5naWZ5KEQpKX1jYXRjaHt9fX1mdW5jdGlvbiBncyhlKXtpZighKCFXZXx8dHlwZW9mIFdhbmROYXRpdmUuY2xlYXJTZXNzaW9uUHJvZ3Jlc3MhPSJmdW5jdGlvbiIpKXtUbltlXSYmKGNsZWFyVGltZW91dChUbltlXSksZGVsZXRlIFRuW2VdKTt0cnl7V2FuZE5hdGl2ZS5jbGVhclNlc3Npb25Qcm9ncmVzcyhlKX1jYXRjaHt9fX13aW5kb3cuaGFuZGxlTmF0aXZlQmFjaz1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2lmKGUmJiFlLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpcmV0dXJuIG5yKCksITA7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZih0JiYhdC5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiBobigpLCEwO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1tb2RhbCIpO3JldHVybiBuJiYhbi5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpPyh0cigpLCEwKTpyLmZpbGVQYW5lbE9wZW4mJlJlKCk/KHBhKCExKSwhMCk6ci5zZXNzaW9uc0RyYXdlck9wZW4mJlJlKCk/KFdyKCksITApOlJlKCkmJnIuc2VsZWN0ZWRJZD8oci5zZWxlY3RlZElkPW51bGwsaGUoKSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSxRdCgpLCEwKTohMX07ZnVuY3Rpb24gaHMoKXtyLm5vdGlmU291bmQmJkZpKCl9ZnVuY3Rpb24gWmYoKXtyZXR1cm4gRmkoKX1mdW5jdGlvbiBGaSgpe3RyeXtsZXQgYT1mdW5jdGlvbih1LG8scyl7dmFyIGw9bi5jcmVhdGVPc2NpbGxhdG9yKCksZD1uLmNyZWF0ZUdhaW4oKTtsLnR5cGU9InNpbmUiLGwuZnJlcXVlbmN5LnZhbHVlPXUsZC5nYWluLnNldFZhbHVlQXRUaW1lKDAsbi5jdXJyZW50VGltZStvKSxkLmdhaW4ubGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoLjUqaSxuLmN1cnJlbnRUaW1lK28rLjA0KSxkLmdhaW4uZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSguMDAxLG4uY3VycmVudFRpbWUrbytzKSxsLmNvbm5lY3QoZCksZC5jb25uZWN0KG4uZGVzdGluYXRpb24pLGwuc3RhcnQobi5jdXJyZW50VGltZStvKSxsLnN0b3Aobi5jdXJyZW50VGltZStvK3MpfTt2YXIgZT1hLHQ9d2luZG93LkF1ZGlvQ29udGV4dHx8d2luZG93LndlYmtpdEF1ZGlvQ29udGV4dDtpZighdClyZXR1cm4hMTt2YXIgbj1uZXcgdDtuLnN0YXRlPT09InN1c3BlbmRlZCImJm4ucmVzdW1lKCk7dmFyIGk9KHIubm90aWZWb2x1bWV8fDApLzEwMDtyZXR1cm4gYSg1MjMsMCwuMjUpLGEoNjU5LC4xMiwuMyksc2V0VGltZW91dChmdW5jdGlvbigpe24uY2xvc2UoKX0sNjAwKSwhMH1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gZXAoZSx0KXtpZihyLl91cGRhdGVCdWJibGVTaG93bilyZXR1cm47ci5fdXBkYXRlQnViYmxlU2hvd249ITAsaHMoKTt2YXIgbj0rK2ZzLGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5jbGFzc05hbWU9Im5vdGlmaWNhdGlvbi1idWJibGUgdXBkYXRlLWNhcmQiLGkuc2V0QXR0cmlidXRlKCJkYXRhLW5pZCIsU3RyaW5nKG4pKSxpLmlubmVySFRNTD0nPGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtc2hpbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1oZWFkZXIiPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDE5VjUiLz48cGF0aCBkPSJNNSAxMmw3LTcgNyA3Ii8+PC9zdmc+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtaGVhZGluZyI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtdGl0bGUiPlx1NTNEMVx1NzNCMFx1NjVCMFx1NzI0OFx1NjcyQzwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXN1YnRpdGxlIiBpZD0idXBkYXRlLWNhcmQtc3VidGl0bGUiPlx1NzBCOVx1NTFGQlx1NEUwQlx1NjVCOVx1NjMwOVx1OTRBRVx1NEUwMFx1OTUyRVx1NjZGNFx1NjVCMDwvZGl2PjwvZGl2PjxidXR0b24gY2xhc3M9InVwZGF0ZS1jYXJkLWNsb3NlIiB0aXRsZT0iXHU3QTBEXHU1NDBFXHU2M0QwXHU5MTkyIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTggNkw2IDE4Ii8+PHBhdGggZD0iTTYgNmwxMiAxMiIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXZlcnNpb24iPjxzcGFuIGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uLWNoaXAgdXBkYXRlLWNhcmQtdmVyc2lvbi1jdXJyZW50Ij52JytwKFN0cmluZyhlKS5yZXBsYWNlKC9edi8sIiIpKSsnPC9zcGFuPjxzdmcgY2xhc3M9InVwZGF0ZS1jYXJkLXZlcnNpb24tYXJyb3ciIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik01IDEyaDE0Ii8+PHBhdGggZD0iTTEzIDVsNyA3LTcgNyIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uLWNoaXAgdXBkYXRlLWNhcmQtdmVyc2lvbi1sYXRlc3QiPnYnK3AoU3RyaW5nKHQpLnJlcGxhY2UoL152LywiIikpKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MiIGlkPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcyIgYXJpYS1oaWRkZW49InRydWUiPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXByb2dyZXNzLXRyYWNrIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcy1maWxsIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1zdGF0dXMgaGlkZGVuIiBpZD0idXBkYXRlLWNhcmQtc3RhdHVzIj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJ1cGRhdGUtY2FyZC1hY3Rpb24gdXBkYXRlLWNhcmQtYWN0aW9uLXByaW1hcnkiIGlkPSJ1cGRhdGUtYnViYmxlLWFjdGlvbiIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9uLWxhYmVsIj5cdTdBQ0JcdTUzNzNcdTY2RjRcdTY1QjA8L3NwYW4+PC9idXR0b24+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO3ZhciBhPXtpZDpuLGVsOml9OyR0LnB1c2goYSksUGEoKTt2YXIgdT1pLnF1ZXJ5U2VsZWN0b3IoIi51cGRhdGUtY2FyZC1jbG9zZSIpO3UmJih1Lm9uY2xpY2s9ZnVuY3Rpb24oKXtrcihuKSxyLl91cGRhdGVCdWJibGVTaG93bj0hMX0pO3ZhciBvPWkucXVlcnlTZWxlY3RvcigiI3VwZGF0ZS1idWJibGUtYWN0aW9uIikscz1pLnF1ZXJ5U2VsZWN0b3IoIi51cGRhdGUtY2FyZC1hY3Rpb24tbGFiZWwiKSxsPWkucXVlcnlTZWxlY3RvcigiI3VwZGF0ZS1jYXJkLXN1YnRpdGxlIiksZD1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1zdGF0dXMiKSxmPWkucXVlcnlTZWxlY3RvcigiI3VwZGF0ZS1jYXJkLXByb2dyZXNzIik7ZnVuY3Rpb24gYyhnLG0pe2lmKGQpe2lmKGQudGV4dENvbnRlbnQ9Z3x8IiIsZC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iLCJlcnJvciIsInN1Y2Nlc3MiKSwhZyl7ZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59bSYmZC5jbGFzc0xpc3QuYWRkKG0pfX1mdW5jdGlvbiB2KGcpe2wmJihsLnRleHRDb250ZW50PWd8fCIiKX1mdW5jdGlvbiBoKGcpe2YmJmYuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIiwhIWcpfW8mJihvLm9uY2xpY2s9ZnVuY3Rpb24oKXtvLmRpc2FibGVkPSEwLGkuY2xhc3NMaXN0LmFkZCgiaXMtYnVzeSIpLHMmJihzLnRleHRDb250ZW50PSJcdTY2RjRcdTY1QjBcdTRFMkRcdTIwMjYiKSx2KCJcdTZCNjNcdTU3MjhcdTRFMEJcdThGN0RcdTVFNzZcdTVCODlcdTg4QzVcdTY1QjBcdTcyNDhcdTY3MkNcdTIwMjYiKSxoKCEwKSxjKCIiKSxmZXRjaCgiL2FwaS91cGRhdGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZyl7cmV0dXJuIGcuanNvbigpfSkudGhlbihmdW5jdGlvbihnKXtpZihnLmVycm9yKXtoKCExKSxpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWJ1c3kiKSx2KCJcdTY2RjRcdTY1QjBcdTY3MkFcdTVCOENcdTYyMTAiKSxjKGcuZXJyb3IsImVycm9yIiksby5kaXNhYmxlZD0hMSxzJiYocy50ZXh0Q29udGVudD0iXHU5MUNEXHU4QkQ1Iik7cmV0dXJufWlmKGkuY2xhc3NMaXN0LmFkZCgiaXMtc3VjY2VzcyIpLHYoKGcubWVzc2FnZXx8Ilx1NjZGNFx1NjVCMFx1NUI4Q1x1NjIxMCIpKyJcdUZGMENcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTIwMjYiKSxjKCIiKSxzJiYocy50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHUyMDI2IiksZy5kZXRhY2hlZFVwZGF0ZSl7bG4oKTtyZXR1cm59aWYoZy5yZXN0YXJ0UmVxdWlyZWQ9PT0hMSl7aCghMSksaS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1idXN5Iiksby5kaXNhYmxlZD0hMSxzJiYocy50ZXh0Q29udGVudD0iXHU1REYyXHU1QjhDXHU2MjEwIik7cmV0dXJufXRwKG8scyxsLGQsZil9KS5jYXRjaChmdW5jdGlvbigpe2goITEpLGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYnVzeSIpLHYoIlx1NjZGNFx1NjVCMFx1NjcyQVx1NUI4Q1x1NjIxMCIpLGMoIlx1OEJGN1x1NjhDMFx1NjdFNVx1N0Y1MVx1N0VEQ1x1OEZERVx1NjNBNVx1NTQwRVx1OTFDRFx1OEJENSIsImVycm9yIiksby5kaXNhYmxlZD0hMSxzJiYocy50ZXh0Q29udGVudD0iXHU5MUNEXHU4QkQ1Iil9KX0pfWZ1bmN0aW9uIHRwKGUsdCxuLGksYSl7ZmV0Y2goIi9hcGkvcmVzdGFydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKCl7bG4oKX0pLmNhdGNoKGZ1bmN0aW9uKCl7bG4oKX0pfWZ1bmN0aW9uIHlzKGUsdCl7ZSYmKGUuZGlzYWJsZWQ9ITAsZS50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHUyMDI2IiksdCYmKHQudGV4dENvbnRlbnQ9Ilx1NjcwRFx1NTJBMVx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIsdC5zdHlsZS5jb2xvcj0idmFyKC0tdGV4dC1zZWNvbmRhcnkpIiksZmV0Y2goIi9hcGkvcmVzdGFydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKCl7bG4oKX0pLmNhdGNoKGZ1bmN0aW9uKCl7bG4oKX0pfWZ1bmN0aW9uIGxuKCl7aWYoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN0YXJ0LW92ZXJsYXkiKSl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5pZD0icmVzdGFydC1vdmVybGF5IixlLmNsYXNzTmFtZT0icmVzdGFydC1vdmVybGF5IixlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0icmVzdGFydC1vdmVybGF5LWNvbnRlbnQiPjxkaXYgY2xhc3M9InJlc3RhcnQtc3Bpbm5lciI+PC9kaXY+PGRpdiBjbGFzcz0icmVzdGFydC10aXRsZSI+XHU2NzBEXHU1MkExXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGPC9kaXY+PGRpdiBjbGFzcz0icmVzdGFydC1zdWJ0aXRsZSI+XHU3QTBEXHU1NDBFXHU1QzA2XHU4MUVBXHU1MkE4XHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHUyMDI2PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpO3ZhciB0PTAsbj0xODAsaT1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKHQrKyxmZXRjaCgiL2FwaS9jb25maWciLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXt1Lm9rJiYoY2xlYXJJbnRlcnZhbChpKSxsb2NhdGlvbi5yZWxvYWQoKSl9KS5jYXRjaChmdW5jdGlvbigpe30pLHQ+PW4pe2NsZWFySW50ZXJ2YWwoaSk7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIucmVzdGFydC1zdWJ0aXRsZSIpO2EmJihhLmlubmVySFRNTD0nXHU5MUNEXHU1NDJGXHU4RDg1XHU2NUY2XHVGRjBDXHU4QkY3IDxhIGhyZWY9ImphdmFzY3JpcHQ6bG9jYXRpb24ucmVsb2FkKCkiIHN0eWxlPSJjb2xvcjp2YXIoLS1hY2NlbnQpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUiPlx1NjI0Qlx1NTJBOFx1NTIzN1x1NjVCMDwvYT4gXHU5ODc1XHU5NzYyXHUzMDAyJyl9fSwyZTMpfX1mdW5jdGlvbiBucChlLHQpe2lmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdGFydC1vdmVybGF5Iikpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uaWQ9InJlc3RhcnQtb3ZlcmxheSIsbi5jbGFzc05hbWU9InJlc3RhcnQtb3ZlcmxheSIsbi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InJlc3RhcnQtb3ZlcmxheS1jb250ZW50Ij48ZGl2IGNsYXNzPSJyZXN0YXJ0LXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMFx1NEUyRDwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtc3VidGl0bGUiPicrcChlKSsiIFx1MjE5MiAiK3AodCkrIjxicj5cdTZCNjNcdTU3MjhcdTRFMEJcdThGN0RcdTVFNzZcdTVCODlcdTg4QzVcdTY1QjBcdTcyNDhcdTY3MkNcdUZGMENcdTdBMERcdTU0MEVcdTVDMDZcdTgxRUFcdTUyQThcdTkxQ0RcdTU0MkZcdTIwMjY8L2Rpdj48L2Rpdj4iLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobil9fXZhciBicyxfYSxJZT17cmVjb3JkaW5nOiExLGNhbmNlbGluZzohMSx0cmFuc2NyaXB0OiIiLHN0YXJ0WTowfSxycD02MDtmdW5jdGlvbiBpcChlKXtJZS50cmFuc2NyaXB0PWV8fCIiO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LXRleHQiKTt0JiYodC50ZXh0Q29udGVudD1JZS50cmFuc2NyaXB0KTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtuJiZuLmNsYXNzTGlzdC50b2dnbGUoImhhcy10ZXh0IiwhIUllLnRyYW5zY3JpcHQpfWZ1bmN0aW9uIGFwKGUpe2lmKGUpe2UucHJldmVudERlZmF1bHQoKSxJZS5zdGFydFk9dHlwZW9mIGUuY2xpZW50WT09Im51bWJlciI/ZS5jbGllbnRZOjA7dHJ5e2UucG9pbnRlcklkIT09dm9pZCAwJiZlLnRhcmdldCYmZS50YXJnZXQuc2V0UG9pbnRlckNhcHR1cmUmJmUudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKX1jYXRjaHt9fUllLnJlY29yZGluZz0hMCxJZS5jYW5jZWxpbmc9ITEsSWUudHJhbnNjcmlwdD0iIjt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO2lmKHQpe3QuY2xhc3NMaXN0LmFkZCgiaXMtcmVjb3JkaW5nIik7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIudm9pY2UtcmVjb3JkLWxhYmVsIik7biYmKG4udGV4dENvbnRlbnQ9Ilx1Njc3RVx1NUYwMCBcdTUzRDFcdTkwMDEiKX12YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtpJiZpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIsImlzLWNhbmNlbGluZyIsImhhcy10ZXh0IiksaXAoIiIpO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyIpO2EmJihhLnRleHRDb250ZW50PSJcdTdGNTFcdTk4NzVcdTdBRUZcdTY2ODJcdTRFMERcdTY1MkZcdTYzMDFcdThCRURcdTk3RjNcdThGOTNcdTUxNjVcdUZGMENcdThCRjdcdTRGN0ZcdTc1MjggQXBwIil9ZnVuY3Rpb24gdXAoZSl7aWYoISghSWUucmVjb3JkaW5nfHwhZSkpe3ZhciB0PUllLnN0YXJ0WS0odHlwZW9mIGUuY2xpZW50WT09Im51bWJlciI/ZS5jbGllbnRZOkllLnN0YXJ0WSksbj10PnJwO2lmKG4hPT1JZS5jYW5jZWxpbmcpe0llLmNhbmNlbGluZz1uO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO2kmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtY2FuY2VsaW5nIixuKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpLHU9YSYmYS5xdWVyeVNlbGVjdG9yKCIudm9pY2UtcmVjb3JkLWxhYmVsIik7dSYmKHUudGV4dENvbnRlbnQ9bj8iXHU2NzdFXHU1RjAwIFx1NTNENlx1NkQ4OCI6Ilx1Njc3RVx1NUYwMCBcdTUzRDFcdTkwMDEiKTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiKTtvJiYoby50ZXh0Q29udGVudD1uPyJcdTY3N0VcdTVGMDBcdTYyNEJcdTYzMDcgXHU1M0Q2XHU2RDg4IjoiXHU2QjYzXHU1NzI4XHU4MDQ2XHU1NDJDXHUyMDI2XHU0RTBBXHU2RUQxXHU1M0Q2XHU2RDg4Iil9fX1mdW5jdGlvbiBFcyhlKXtpZihJZS5yZWNvcmRpbmcpe2UmJmUucHJldmVudERlZmF1bHQoKSxJZS5yZWNvcmRpbmc9ITE7dmFyIHQ9IUllLmNhbmNlbGluZyYmISFJZS50cmFuc2NyaXB0LnRyaW0oKSxuPUllLnRyYW5zY3JpcHQ7TmEoKSx0JiYob3AobiksamEoITEpKX19ZnVuY3Rpb24gTmEoKXtJZS5jYW5jZWxpbmc9ITE7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKTtpZihlKXtlLmNsYXNzTGlzdC5yZW1vdmUoImlzLXJlY29yZGluZyIpO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLnZvaWNlLXJlY29yZC1sYWJlbCIpO3QmJih0LnRleHRDb250ZW50PSJcdTYzMDlcdTRGNEYgXHU4QkY0XHU4QkREIil9dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX1mdW5jdGlvbiBvcChlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKTtpZih0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYobil7dmFyIGk9bi52YWx1ZXx8IiIsYT1pP2kucmVwbGFjZSgvXHMrJC8sIiIpKyIgIit0OnQ7bi52YWx1ZT1hLFplKGEsITApLEN0KG4pO3RyeXtuLnNldFNlbGVjdGlvblJhbmdlKGEubGVuZ3RoLGEubGVuZ3RoKX1jYXRjaHt9fX19ZnVuY3Rpb24gamEoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYodCl7dmFyIG49dHlwZW9mIGU9PSJib29sZWFuIj9lOiF0LmNsYXNzTGlzdC5jb250YWlucygidm9pY2UtbW9kZSIpO2lmKHQuY2xhc3NMaXN0LnRvZ2dsZSgidm9pY2UtbW9kZSIsbiksIW4pe0llLnJlY29yZGluZz0hMSxOYSgpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZihpJiYhci50ZXJtaW5hbEludGVyYWN0aXZlKXRyeXtpLmZvY3VzKHtwcmV2ZW50U2Nyb2xsOiEwfSl9Y2F0Y2h7fX19fWZ1bmN0aW9uIEN0KGUpe2lmKGUpe3ZhciB0PTM2LG49MTIwLGk9cXIoKTtpZighZS52YWx1ZXx8ZS52YWx1ZS50cmltKCk9PT0iIil7ZS5zdHlsZS5oZWlnaHQ9dCsicHgiLGUuc3R5bGUubWluSGVpZ2h0PXQrInB4IixlLnN0eWxlLm92ZXJmbG93WT1pPyJhdXRvIjoiaGlkZGVuIixlLnNjcm9sbFRvcD0wLCRpKGUpO3JldHVybn12YXIgYT1lLnN0eWxlLm92ZXJmbG93WTtlLnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIixlLnN0eWxlLmhlaWdodD10KyJweCI7dmFyIHU9ZS5zY3JvbGxIZWlnaHQsbz1NYXRoLm1heCh0LE1hdGgubWluKHUsbikpLHM9dT5uO2Uuc3R5bGUuaGVpZ2h0PW8rInB4IixlLnN0eWxlLm1pbkhlaWdodD10KyJweCIsZS5zdHlsZS5vdmVyZmxvd1k9c3x8aT8iYXV0byI6ImhpZGRlbiIscz9JaShlKTplLnNjcm9sbFRvcD0wLCRpKGUpfX1mdW5jdGlvbiBzcCgpe2lmKCFyLnNlbGVjdGVkSWQpcmV0dXJuITE7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIHVlKGUpPyEhKGUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCk6ISFlJiZlLnN0YXR1cz09PSJydW5uaW5nIn12YXIgeHI9ITE7ZnVuY3Rpb24gRnMoZSl7cmV0dXJuIWV8fGUuYXJjaGl2ZWQ/ITE6dWUoZSk/ISEoZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KTplLnN0YXR1cz09PSJydW5uaW5nIn1mdW5jdGlvbiBSYSgpe3JldHVybiByLnNlc3Npb25zLnNvbWUoRnMpfWZ1bmN0aW9uIGxwKCl7dmFyIGU9ci5zZXNzaW9ucy5maWx0ZXIoRnMpO2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtpZihyLnNlbGVjdGVkSWQpe3ZhciB0PWUuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKHQpcmV0dXJuIHR9cmV0dXJuIGUuc29ydChmdW5jdGlvbihuLGkpe3JldHVybihEYXRlLnBhcnNlKGkuc3RhcnRlZEF0KXx8MCktKERhdGUucGFyc2Uobi5zdGFydGVkQXQpfHwwKX0pLGVbMF19ZnVuY3Rpb24gd3MoZSl7aWYoIWUpcmV0dXJuIiI7Zm9yKHZhciB0PUFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcyk/ZS5xdWV1ZWRNZXNzYWdlczpbXSxuPXQubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBpPXR5cGVvZiB0W25dPT0ic3RyaW5nIj90W25dLnRyaW0oKToiIjtpZihpKXJldHVybiBpfWZvcih2YXIgYT1BcnJheS5pc0FycmF5KGUubWVzc2FnZXMpP2UubWVzc2FnZXM6W10sdT1hLmxlbmd0aC0xO3U+PTA7dS0tKXt2YXIgbz1hW3VdO2lmKCEoIW98fG8ucm9sZSE9PSJ1c2VyInx8IUFycmF5LmlzQXJyYXkoby5jb250ZW50KSkpe3ZhciBzPW8uY29udGVudC5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGYmJmYudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIGYudGV4dD09InN0cmluZyJ9KS5tYXAoZnVuY3Rpb24oZil7cmV0dXJuIGYudGV4dH0pO2lmKHMubGVuZ3RoKXJldHVybiBzLmpvaW4oYApgKS50cmltKCk7Zm9yKHZhciBsPTA7bDxvLmNvbnRlbnQubGVuZ3RoO2wrKyl7dmFyIGQ9by5jb250ZW50W2xdO2lmKGQmJmQudHlwZT09PSJ0b29sX3Jlc3VsdCImJnR5cGVvZiBkLmNvbnRlbnQ9PSJzdHJpbmciKXJldHVybiBkLmNvbnRlbnQudHJpbSgpfXJldHVybiIifX1yZXR1cm4iIn1mdW5jdGlvbiBkcChlLHQpe3ZhciBuPXR5cGVvZiB0PT0ic3RyaW5nIj90LnRyaW0oKToiIjtpZihuJiZ3cyhlKT09PW4pcmV0dXJuIEEoIlx1NEUwRVx1NEUwQVx1NEUwMFx1Njc2MVx1NkQ4OFx1NjA2Rlx1NzZGOFx1NTQwQ1x1RkYwQ1x1NURGMlx1NUZGRFx1NzU2NVx1RkYwQ1x1NEUwRFx1NEYxQVx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1MzAwMiIsIndhcm5pbmciKSxQcm9taXNlLnJlc29sdmUoKTt2YXIgaT10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKTpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCksYT1BcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpP2UucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXSx1PWEuc2xpY2UoKTt1LnB1c2godCksWCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczp1fSksZS5pZD09PXIuc2VsZWN0ZWRJZCYmbnQoKTt2YXIgbz1lLnRpdGxlfHwkbihlLmNvbW1hbmQpfHwiXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIjtyZXR1cm4gQSgiXHU1REYyXHU1MkEwXHU1MTY1XHUzMDBDIitvKyJcdTMwMERcdTc2ODRcdTYzOTJcdTk2MUZcdUZGMENcdTU2REVcdTU5MERcdTdFRDNcdTY3NUZcdTU0MEVcdTgxRUFcdTUyQThcdTUzRDFcdTkwMDFcdUZGMDhcdTU0MkJcdTRFMEFcdTRFMEJcdTY1ODdcdUZGMDlcdTMwMDIiLCJpbmZvIiksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9tZXNzYWdlcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OnQsaWRlbXBvdGVuY3lLZXk6aX0pfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5vaz9zLmpzb24oKTpzLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKGwpe3Rocm93IG5ldyBFcnJvcihsJiZsLmVycm9yfHwiXHU2NUUwXHU2Q0Q1XHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHUzMDAyIil9KX0pLnRoZW4oZnVuY3Rpb24ocyl7cyYmcy5pZCYmKFgocykscy5pZD09PXIuc2VsZWN0ZWRJZCYmbnQoKSl9KS5jYXRjaChmdW5jdGlvbihzKXtYKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOmF9KSxlLmlkPT09ci5zZWxlY3RlZElkJiZudCgpLEEocyYmcy5tZXNzYWdlfHwiXHU2MzkyXHU5NjFGXHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIENzKGUpe3ZhciB0PWxwKCk7aWYodCYmdWUodCkpe2RwKHQsZSk7cmV0dXJufWlmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPj0xMCl7QSgiXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHU1REYyXHU2RUUxXHVGRjA4XHU2NzAwXHU1OTFBIDEwIFx1Njc2MVx1RkYwOVx1RkYwQ1x1OEJGN1x1N0I0OVx1NUY4NVx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NUI4Q1x1NjIxMFx1MzAwMiIsIndhcm5pbmciKTtyZXR1cm59dmFyIG49ImNzcS0iK0RhdGUubm93KCkrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsOCk7ci5jcm9zc1Nlc3Npb25RdWV1ZS5wdXNoKHtpZDpuLHRleHQ6ZSxjd2Q6JGUoKSxtb2RlOnIuY2hhdE1vZGV8fCJtYW5hZ2VkIix0b29sOnJ0KCkscXVldWVkQXQ6RGF0ZS5ub3coKX0pLEp0KCksQnQoKSxBKCJcdTVERjJcdTYzOTJcdTk2MUZcdUZGMENcdTVDMDZcdTU3MjhcdTdBN0FcdTk1RjJcdTU0MEVcdTgxRUFcdTUyQThcdTVGMDBcdTU5Q0JcdTY1QjBcdTRGMUFcdThCRERcdTMwMDIiLCJpbmZvIil9ZnVuY3Rpb24gY3AoZSl7eHJ8fCh4cj0hMCxmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6ZS50b29sLGN3ZDplLmN3ZCxtb2RlOmUubW9kZSxpbml0aWFsSW5wdXQ6ZS50ZXh0fSkpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB4cj0hMSx0LmVycm9yPyhBKHQuZXJyb3IsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS51bnNoaWZ0KGUpLEp0KCksQnQoKSxudWxsKTpmbih0KX0pLmNhdGNoKGZ1bmN0aW9uKHQpe3hyPSExLEEodCYmdC5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU2MzkyXHU5NjFGXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnVuc2hpZnQoZSksSnQoKSxCdCgpfSkpfWZ1bmN0aW9uIGZwKGUpe3ZhciB0PXIuY3Jvc3NTZXNzaW9uUXVldWUuZmluZEluZGV4KGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZX0pO2lmKCEodDwwKSl7dmFyIG49ci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwxKVswXTtKdCgpLEJ0KCksZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGx0KHtjb21tYW5kOm4udG9vbCxjd2Q6bi5jd2QsbW9kZTpuLm1vZGUsaW5pdGlhbElucHV0Om4udGV4dH0pKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5lcnJvcj8oQShpLmVycm9yLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMCxuKSxKdCgpLEJ0KCksbnVsbCk6Zm4oaSl9KS5jYXRjaChmdW5jdGlvbihpKXtBKGkmJmkubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NjM5Mlx1OTYxRlx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwwLG4pLEp0KCksQnQoKX0pfX1mdW5jdGlvbiBwcChlKXt2YXIgdD1yLmNyb3NzU2Vzc2lvblF1ZXVlLmZpbmRJbmRleChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PWV9KTt0PDB8fChyLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDEpLEp0KCksQnQoKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTAmJkEoIlx1NjM5Mlx1OTYxRlx1NURGMlx1NkUwNVx1N0E3QVx1MzAwMiIsImluZm8iKSl9ZnVuY3Rpb24gd2koKXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aCE9PTAmJiFSYSgpJiYheHIpe3ZhciBlPXIuY3Jvc3NTZXNzaW9uUXVldWUuc2hpZnQoKTtCdCgpLGNwKGUpfX1mdW5jdGlvbiBCcyhlKXt2YXIgdD1NYXRoLmZsb29yKChEYXRlLm5vdygpLWUpLzFlMyk7aWYodDw2MClyZXR1cm4gdCsicyI7dmFyIG49TWF0aC5mbG9vcih0LzYwKTtyZXR1cm4gbjw2MD9uKyJtIjpNYXRoLmZsb29yKG4vNjApKyJoIn1mdW5jdGlvbiBCdCgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jcm9zcy1zZXNzaW9uLXF1ZXVlIiksdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIiKSxpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKTtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTApe2UmJmUucmVtb3ZlKCksSnQoKTtyZXR1cm59dmFyIHU9dCYmIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSxvPXU/dDphLHM9dT9ufHxpOm51bGw7aWYobyl7ZSYmZS5wYXJlbnROb2RlIT09byYmKGUucmVtb3ZlKCksZT1udWxsKSxlP3UmJnMmJmUubmV4dFNpYmxpbmchPT1zJiZvLmluc2VydEJlZm9yZShlLHMpOihlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGUuY2xhc3NOYW1lPSJjcm9zcy1zZXNzaW9uLXF1ZXVlIixzP28uaW5zZXJ0QmVmb3JlKGUscyk6by5hcHBlbmRDaGlsZChlKSk7dmFyIGw9ci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGgsZD1yLmNyb3NzU2Vzc2lvblF1ZXVlLm1hcChmdW5jdGlvbihjLHYpe3ZhciBoPWMudGV4dC5sZW5ndGg+NjA/Yy50ZXh0LnNsaWNlKDAsNjApKyJcdTIwMjYiOmMudGV4dCxnPUJzKGMucXVldWVkQXQpO3JldHVybic8ZGl2IGNsYXNzPSJxdWV1ZS1pdGVtIiBkYXRhLXF1ZXVlLWlkPSInK3AoYy5pZCkrJyI+PHNwYW4gY2xhc3M9InF1ZXVlLWl0ZW0tZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InF1ZXVlLWl0ZW0tdGV4dCIgdGl0bGU9IicrcChjLnRleHQpKyciPicrcChoKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJxdWV1ZS1pdGVtLWFnZSI+JytnKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0icXVldWUtaXRlbS1zZW5kLW5vdyIgZGF0YS1xdWV1ZS1pZD0iJytwKGMuaWQpKyciIHRpdGxlPSJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDEiIHR5cGU9ImJ1dHRvbiI+XHU1M0QxXHU5MDAxPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0icXVldWUtaXRlbS1jYW5jZWwiIGRhdGEtcXVldWUtaWQ9IicrcChjLmlkKSsnIiB0aXRsZT0iXHU1M0Q2XHU2RDg4IiB0eXBlPSJidXR0b24iPlx4RDc8L2J1dHRvbj48L2Rpdj4nfSkuam9pbigiIiksZj1sPjE/JzxkaXYgY2xhc3M9InF1ZXVlLWhlYWRlciI+PHNwYW4gY2xhc3M9InF1ZXVlLWhlYWRlci1sYWJlbCI+XHU2MzkyXHU5NjFGICcrbCsnIFx1Njc2MTwvc3Bhbj48YnV0dG9uIGNsYXNzPSJxdWV1ZS1oZWFkZXItY2xlYXIiIGlkPSJxdWV1ZS1jbGVhci1hbGwiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NkUwNVx1N0E3QVx1NjM5Mlx1OTYxRiI+XHU2RTA1XHU3QTdBPC9idXR0b24+PC9kaXY+JzoiIjtlLmlubmVySFRNTD1mK2R9fXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnF1ZXVlLWl0ZW0tYWdlIik7ci5jcm9zc1Nlc3Npb25RdWV1ZS5mb3JFYWNoKGZ1bmN0aW9uKHQsbil7ZVtuXSYmKGVbbl0udGV4dENvbnRlbnQ9QnModC5xdWV1ZWRBdCkpfSksd2koKX19LDVlMyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0O2lmKHQuY2xvc2VzdCgiI3F1ZXVlLWNsZWFyLWFsbCIpKXtlLnByZXZlbnREZWZhdWx0KCksci5jcm9zc1Nlc3Npb25RdWV1ZT1bXSxKdCgpLEJ0KCksQSgiXHU2MzkyXHU5NjFGXHU1REYyXHU2RTA1XHU3QTdBXHUzMDAyIiwiaW5mbyIpO3JldHVybn12YXIgbj10LmNsb3Nlc3QoIi5xdWV1ZS1pdGVtLXNlbmQtbm93Iik7aWYobil7ZS5wcmV2ZW50RGVmYXVsdCgpLGZwKG4uZGF0YXNldC5xdWV1ZUlkKTtyZXR1cm59dmFyIGk9dC5jbG9zZXN0KCIucXVldWUtaXRlbS1jYW5jZWwiKTtpZihpKXtlLnByZXZlbnREZWZhdWx0KCkscHAoaS5kYXRhc2V0LnF1ZXVlSWQpO3JldHVybn19KTtmdW5jdGlvbiBEcygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0IiksdD1lP2UudmFsdWUudHJpbSgpOiIiO2lmKHQpe2lmKFJhKCkpe2UudmFsdWU9IiIsQ3ModCk7cmV0dXJufXZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLnZhbHVlPSIiLGUucGxhY2Vob2xkZXI9Ilx1NkI2M1x1NTcyOFx1NTQyRlx1NTJBOFx1MjAyNiIsZS5kaXNhYmxlZD0hMDt2YXIgaT1yLmNoYXRNb2RlfHwibWFuYWdlZCIsYT0kZSgpLHU9cnQoKTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6dSxwcm92aWRlcjp1LGN3ZDphLG1vZGU6aSxpbml0aWFsSW5wdXQ6dH0pKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtpZihvLmVycm9yKXtBKG8uZXJyb3IsImVycm9yIiksZS5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIixlLmRpc2FibGVkPSExO3JldHVybn1yLnNlbGVjdGVkSWQ9by5pZCxoZSgpLHIuZHJhZnRzW28uaWRdPSIiLHd0KCksWChvKSxwZSgpLFNyKG8uaWQpLFBuKG8uaWQpLGduKG8uaWQpLnRoZW4oZnVuY3Rpb24oKXtlLnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLGUuZGlzYWJsZWQ9ITEsUHQoITApfSl9KS5jYXRjaChmdW5jdGlvbihvKXtBKG8mJm8ubWVzc2FnZXx8KHU9PT0iY29kZXgiPyJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ29kZXggXHU0RjFBXHU4QkREXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENsYXVkZSBcdTRGMUFcdThCRERcdTMwMDIiKSwiZXJyb3IiKSxlLnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLGUuZGlzYWJsZWQ9ITF9KX19ZnVuY3Rpb24gdnAoZSl7ZT1lfHx7fTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1pbnB1dCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGk9dCYmdC52YWx1ZS50cmltKCk/dC52YWx1ZS50cmltKCk6bj9uLnZhbHVlLnRyaW0oKToiIjtpZihyLnNlbGVjdGVkSWQpe2kmJmtzKGUpO3JldHVybn1pZihpJiZSYSgpKXtuJiYobi52YWx1ZT0iIiksdCYmKHQudmFsdWU9IiIpLCRpKG4pLENzKGkpO3JldHVybn12YXIgYT1yLmNoYXRNb2RlfHwibWFuYWdlZCIsdT0kZSgpLG89cnQoKTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6byxwcm92aWRlcjpvLGN3ZDp1LG1vZGU6YSxpbml0aWFsSW5wdXQ6aXx8dm9pZCAwfSkpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmVycm9yPyhBKHMuZXJyb3IsImVycm9yIiksbnVsbCk6KHIuc2VsZWN0ZWRJZD1zLmlkLGhlKCksci5kcmFmdHNbcy5pZF09IiIsd3QoKSxuJiYobi52YWx1ZT0iIiksdCYmKHQudmFsdWU9IiIpLFgocykscGUoKSxTcihzLmlkKSxQbihzLmlkKSxnbihzLmlkKSl9KS5jYXRjaChmdW5jdGlvbihzKXtBKHMmJnMubWVzc2FnZXx8KG89PT0iY29kZXgiPyJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ29kZXggXHU0RjFBXHU4QkREXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENsYXVkZSBcdTRGMUFcdThCRERcdTMwMDIiKSwiZXJyb3IiKX0pfWZ1bmN0aW9uIFNyKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih2KXtyZXR1cm4gdi5pZD09PWV9KSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0IiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKSx1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXRpdGxlIikscz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtaW5mbyIpLGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3VtbWFyeS12YWx1ZSIpLGQ9dWUodCk7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxpJiZpLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsZCksYSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxkP3IuY3VycmVudFZpZXc9ImNoYXQiOnIuY3VycmVudFZpZXc9InRlcm1pbmFsIjt2YXIgZj10PyRuKHQuY29tbWFuZCk6IldhbmQiLGM9dD92cih0KToiXHU1RjAwXHU1OUNCXHU1QkY5XHU4QkREIjtvJiYoby50ZXh0Q29udGVudD1mKSxzJiYocy50ZXh0Q29udGVudD1jKSxsJiYobC50ZXh0Q29udGVudD1mKSxkfHxyLnRlcm1pbmFsfHxZbigpLEtpKCksUHQoITApLGR8fFFlKCJ2aWV3LXN3aXRjaCIse2ZvcmNlUmVwbGF5OiEwfSl9ZnVuY3Rpb24ga3MoZSl7ZT1lfHx7fTt2YXIgdD0hIWUuaW50ZXJydXB0LG49ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpO2lmKHIudGVybWluYWxJbnRlcmFjdGl2ZSYmIW4pcmV0dXJuIEEoIlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mlx1NkEyMVx1NUYwRlx1NUYwMFx1NTQyRlx1NjVGNlx1RkYwQ1x1OEJGN1x1NzZGNFx1NjNBNVx1NTcyOFx1N0VDOFx1N0FFRlx1NEUyRFx1OEY5M1x1NTE2NVx1MzAwMiIsImluZm8iKSxQcm9taXNlLnJlc29sdmUoKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksYT1pP2kudmFsdWU6IiIsdT1EdCgpLG89ci5wZW5kaW5nQXR0YWNobWVudHMubGVuZ3RoPjA7aWYoYXx8byl7dmFyIHM9byYmci5zZWxlY3RlZElkP0lnKHIuc2VsZWN0ZWRJZCkuY2F0Y2goZnVuY3Rpb24obCl7QSgiXHU5NjQ0XHU0RUY2XHU0RTBBXHU0RjIwXHU1OTMxXHU4RDI1OiAiKyhsJiZsLm1lc3NhZ2V8fGwpLCJlcnJvciIpO3ZhciBkPWwgaW5zdGFuY2VvZiBFcnJvcj9sOm5ldyBFcnJvcihTdHJpbmcobCkpO3Rocm93IGQuX193YW5kVG9hc3RlZD0hMCxkfSk6UHJvbWlzZS5yZXNvbHZlKFtdKTtyZXR1cm4gcy50aGVuKGZ1bmN0aW9uKGwpe3ZhciBkPVRnKGwpLGY9ZCsoYXx8KGwubGVuZ3RoPyJcdThCRjdcdTY3RTVcdTc3MEJcdTk2NDRcdTRFRjZcdTMwMDIiOiIiKSk7bC5sZW5ndGgmJlNnKCk7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MiKTtpZihjJiZjLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHVlKHUpKXJldHVybiBtcChmLGksdSx7aW50ZXJydXB0OnR9KTt2YXIgdj1McCh1LGYpLGg9IXIud3NDb25uZWN0ZWQ7cmV0dXJuIGg/KE9wKHYpLGkmJihpLnZhbHVlPSIiLEN0KGkpKSxaZSgiIiksUHJvbWlzZS5yZXNvbHZlKCkpOlRwKHUpLnRoZW4oZnVuY3Rpb24oZyl7aWYoIWcpcmV0dXJuIG51bGw7dmFyIG09ci5jdXJyZW50VmlldztpZihnJiZnLnByb3ZpZGVyPT09ImNvZGV4IiYmci5zZWxlY3RlZElkIT09Zy5pZCl0aHJvdyBuZXcgRXJyb3IoIkNvZGV4IHNlc3Npb24gY2hhbmdlZCBiZWZvcmUgaW5wdXQgc2VuZC4iKTtyZXR1cm4gVnUoKSxNcCh2LCJlbnRlcl90ZXh0IiwzMCxtKS50aGVuKGZ1bmN0aW9uKCl7aSYmaS52YWx1ZT09PWEmJihpLnZhbHVlPSIiLEN0KGkpKSxaZSgiIil9KX0pLmNhdGNoKGZ1bmN0aW9uKGcpe3Rocm93IEEoTHMoZyksImVycm9yIiksZyYmKGcuX193YW5kVG9hc3RlZD0hMCksZ30pfSkuY2F0Y2goZnVuY3Rpb24obCl7dGhyb3cgbCYmbC5fX3dhbmRUb2FzdGVkfHxBKExzKGwpLCJlcnJvciIpLGx9KX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9dmFyIEFzPXt9LHhzPTM1MDtmdW5jdGlvbiBtcChlLHQsbixpKXtpPWl8fHt9O3ZhciBhPSEhaS5pbnRlcnJ1cHQ7aWYoIXIuc2VsZWN0ZWRJZHx8IWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO2lmKCFuKXJldHVybiBBKCJcdTRGMUFcdThCRERcdTRFMERcdTVCNThcdTU3MjhcdUZGMENcdThCRjdcdTkxQ0RcdTY1QjBcdTkwMDlcdTYyRTlcdTYyMTZcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLFByb21pc2UucmVzb2x2ZSgpO3ZhciB1PSEhKG4uc3RydWN0dXJlZFN0YXRlJiZuLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmbi5zdGF0dXM9PT0icnVubmluZyIpO2lmKHUmJiFhJiZ3cyhuKT09PWUudHJpbSgpKXJldHVybiB0JiYodC52YWx1ZT0iIixDdCh0KSksWmUoIiIpLEEoIlx1NEUwRVx1NEUwQVx1NEUwMFx1Njc2MVx1NkQ4OFx1NjA2Rlx1NzZGOFx1NTQwQ1x1RkYwQ1x1NURGMlx1NUZGRFx1NzU2NVx1RkYwQ1x1NEUwRFx1NEYxQVx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1MzAwMiIsIndhcm5pbmciKSxMbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIiksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIG89RGF0ZS5ub3coKSxzPUFzW24uaWRdfHwwO2lmKG8tczx4cylyZXR1cm4gY29uc29sZS5sb2coIlt3YW5kXSBwb3N0U3RydWN0dXJlZElucHV0OiBkdXBsaWNhdGUgc3VibWl0ICh3aXRoaW4gIit4cysibXMpIGlnbm9yZWQgZm9yIHNlc3Npb24iLG4uaWQpLFByb21pc2UucmVzb2x2ZSgpO0FzW24uaWRdPW87dmFyIGw9dSYmYSxkPXUmJiFhLGY9Y3IoQXJyYXkuaXNBcnJheShuLm1lc3NhZ2VzKT9uLm1lc3NhZ2VzLnNsaWNlKCk6W10pLGM7aWYoZCl7dmFyIHY9QXJyYXkuaXNBcnJheShuLnF1ZXVlZE1lc3NhZ2VzKT9uLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107di5wdXNoKGUpLGM9e2lkOm4uaWQscXVldWVkTWVzc2FnZXM6dn0sWChjKTt2YXIgaD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oRSl7cmV0dXJuIEUuaWQ9PT1uLmlkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9emUoaCxYZShoLGgub3V0cHV0LCExKSksTG4oIlx1NURGMlx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1MjAyNiIpLFZlKCEwKSxkbigpLEEodi5sZW5ndGg+MT8iXHU1REYyXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHVGRjA4XHU1MTcxICIrdi5sZW5ndGgrIiBcdTY3NjFcdTdCNDlcdTVGODVcdUZGMDkiOiJcdTVERjJcdTUyQTBcdTUxNjVcdTYzOTJcdTk2MUZcdUZGMENcdTdCNDlcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdTVCOENcdTYyMTBcdTRGMUFcdTgxRUFcdTUyQThcdTUzRDFcdTkwMDFcdTMwMDIiLCJpbmZvIil9ZWxzZXt2YXIgZz17cm9sZToidXNlciIsY29udGVudDpbe3R5cGU6InRleHQiLHRleHQ6ZX1dfTtmLnB1c2goZyk7dmFyIG09T2JqZWN0LmFzc2lnbih7fSxuLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OiEwfSk7WCh7aWQ6bi5pZCxzdGF0dXM6InJ1bm5pbmciLG1lc3NhZ2VzOmYsc3RydWN0dXJlZFN0YXRlOm19KSxyLmN1cnJlbnRNZXNzYWdlcz16ZShPYmplY3QuYXNzaWduKHt9LG4se3N0YXR1czoicnVubmluZyIsbWVzc2FnZXM6ZixzdHJ1Y3R1cmVkU3RhdGU6bX0pLGYpLExuKGw/Ilx1NURGMlx1NEUyRFx1NjVBRFx1RkYwQ1x1NkI2M1x1NTcyOFx1NTkwNFx1NzQwNlx1NjVCMFx1NkQ4OFx1NjA2Rlx1MjAyNiI6Ilx1NjAxRFx1ODAwM1x1NEUyRFx1MjAyNiIpLFZ1KCksVmUoITApLGwmJkEoIlx1NURGMlx1NEUyRFx1NjVBRFx1NEUwQVx1NEUwMFx1Njc2MVx1NTZERVx1NTkwRFx1RkYwQ1x1NkI2M1x1NTcyOFx1NTkwNFx1NzQwNlx1NjVCMFx1NkQ4OFx1NjA2Rlx1MjAyNiIsImluZm8iKX10JiYodC52YWx1ZT0iIixDdCh0KSksWmUoIiIpO3ZhciB5PXIucXVldWVFcG9jaCxDPXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOkRhdGUubm93KCkudG9TdHJpbmcoMzYpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDEwKTtyZXR1cm4gZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK24uaWQrIi9tZXNzYWdlcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OmUsaW50ZXJydXB0Omx8fHZvaWQgMCxpZGVtcG90ZW5jeUtleTpDfSl9KS50aGVuKGZ1bmN0aW9uKEUpe3JldHVybiBFLm9rP0UuanNvbigpOkUuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24oQil7dmFyIEQ9bmV3IEVycm9yKEImJkIuZXJyb3J8fCJcdTY1RTBcdTZDRDVcdTUzRDFcdTkwMDFcdTdFRDNcdTY3ODRcdTUzMTZcdTZEODhcdTYwNkZcdTMwMDIiKTt0aHJvdyBELmVycm9yQ29kZT1CJiZCLmVycm9yQ29kZSxELmh0dHBTdGF0dXM9RS5zdGF0dXMsRH0pfSkudGhlbihmdW5jdGlvbihFKXtpZihFJiZFLmVycm9yKXRocm93IG5ldyBFcnJvcihFLmVycm9yKTtpZihFJiZFLmlkJiYoci5xdWV1ZUVwb2NoPnkmJkUucXVldWVkTWVzc2FnZXMmJmRlbGV0ZSBFLnF1ZXVlZE1lc3NhZ2VzLFgoRSksRS5pZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciBCPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihEKXtyZXR1cm4gRC5pZD09PUUuaWR9KXx8RTtyLmN1cnJlbnRNZXNzYWdlcz16ZShCLFhlKEIsRS5vdXRwdXQsITEpKSxWZSghMCksZG4oKX19KS5jYXRjaChmdW5jdGlvbihFKXtpZihFJiZFLmVycm9yQ29kZT09PSJkdXBsaWNhdGVfaWRlbXBvdGVuY3lfa2V5Iil7QShFLm1lc3NhZ2V8fCJcdTY4QzBcdTZENEJcdTUyMzBcdTkxQ0RcdTU5MERcdTUzRDFcdTkwMDFcdUZGMENcdTVERjJcdTYyRTZcdTYyMkFcdTMwMDIiLCJ3YXJuaW5nIiksTG4oIkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpO3JldHVybn1pZihkKXt2YXIgQj1BcnJheS5pc0FycmF5KG4ucXVldWVkTWVzc2FnZXMpP24ucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZihYKHtpZDpuLmlkLHF1ZXVlZE1lc3NhZ2VzOkJ9KSxuLmlkPT09ci5zZWxlY3RlZElkKXt2YXIgRD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oSCl7cmV0dXJuIEguaWQ9PT1uLmlkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9emUoRCxYZShELEQub3V0cHV0LCExKSksVmUoITApLGRuKCl9fWVsc2V7dmFyIEY9Zi5zbGljZSgwLC0xKTtYKHtpZDpuLmlkLHN0YXR1czpuLnN0YXR1cyxtZXNzYWdlczpGLHN0cnVjdHVyZWRTdGF0ZTpPYmplY3QuYXNzaWduKHt9LG4uc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ITF9KX0pLG4uaWQ9PT1yLnNlbGVjdGVkSWQmJihyLmN1cnJlbnRNZXNzYWdlcz16ZShPYmplY3QuYXNzaWduKHt9LG4se21lc3NhZ2VzOkYsc3RydWN0dXJlZFN0YXRlOk9iamVjdC5hc3NpZ24oe30sbi5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDohMX0pfSksRiksVmUoITApKX12YXIgST1FJiZFLm1lc3NhZ2V8fCIiLEw9ST09PSJGYWlsZWQgdG8gZmV0Y2gifHxJPT09Ik5ldHdvcmtFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2UuInx8ST09PSJMb2FkIGZhaWxlZCJ8fC9hYm9ydGVkfGFib3J0ZXJyb3J8bmV0d29ya2Vycm9yfGZhaWxlZCB0byBmZXRjaC9pLnRlc3QoSSk7THx8QShFJiZFLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTUzRDFcdTkwMDFcdTdFRDNcdTY3ODRcdTUzMTZcdTZEODhcdTYwNkZcdTMwMDIiLCJlcnJvciIpLExuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKX0pfWZ1bmN0aW9uIExuKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1oaW50Iik7dCYmKHQudGV4dENvbnRlbnQ9ZSl9ZnVuY3Rpb24gZG4oKXtudCgpfXZhciBncD0xMCxTcz0yNjtmdW5jdGlvbiBocChlKXtpZih0eXBlb2YgZSE9InN0cmluZyIpcmV0dXJuIiI7dmFyIHQ9ZS5yZXBsYWNlKC9ccysvZywiICIpLnRyaW0oKTtyZXR1cm4gdC5sZW5ndGg8PVNzP3Q6dC5zbGljZSgwLFNzKSsiXHUyMDI2In1mdW5jdGlvbiB5cCgpe3JldHVybiEhci5xdWV1ZUJhckV4cGFuZGVkfWZ1bmN0aW9uIGJwKGUpe2lmKCEhci5xdWV1ZUJhckV4cGFuZGVkIT0hIWUpe3IucXVldWVCYXJFeHBhbmRlZD0hIWU7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnF1ZXVlLWJhciIpO3QmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiZXhwYW5kZWQiLCEhZSl9fWZ1bmN0aW9uIEVwKGUsdCxuKXt2YXIgaT1lLmxlbmd0aCxhPSJxdWV1ZS1iYXIiO24mJihhKz0iIHF1ZXVlLWJhci1jYXBhY2l0eSIpLHQmJihhKz0iIHF1ZXVlLWJhci1pbmZsaWdodCIpO2Zvcih2YXIgdT10PyJcdTRFMkRcdTY1QURcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdUZGMENcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjEiOiJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjEiLG89IiIscz0wO3M8aTtzKyspe3ZhciBsPWVbc109PW51bGw/IiI6U3RyaW5nKGVbc10pLGQ9aHAobCksZj1sKyJcdUZGMDhcdTYzMDlcdTRGNEZcdTUzRUZcdTYyRDZcdTUyQThcdThDMDNcdTVFOEZcdUZGMDkiO28rPSc8bGkgY2xhc3M9InF1ZXVlLWJhci1pdGVtIiBkYXRhLWluZGV4PSInK3MrJyIgZGF0YS1hY3Rpb249ImRyYWciIHRpdGxlPSInK3AoZikrJyI+PHNwYW4gY2xhc3M9InF1ZXVlLWJhci1pdGVtLWluZGV4IiBhcmlhLWhpZGRlbj0idHJ1ZSI+JysocysxKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS10ZXh0Ij4nK3AoZCkrJzwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InF1ZXVlLWJhci1pdGVtLXByb21vdGUiIGRhdGEtYWN0aW9uPSJwcm9tb3RlLWl0ZW0iIHRpdGxlPSInK3AodSkrJyIgYXJpYS1sYWJlbD0iXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU3QjJDICcrKHMrMSkrJyBcdTY3NjEiPjxzdmcgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9ImN1cnJlbnRDb2xvciIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMyAyIEw0IDE0IEwxMSAxNCBMMTAgMjIgTDIwIDkgTDEzIDkgWiIvPjwvc3ZnPjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXVldWUtYmFyLWl0ZW0tZGVsZXRlIiBkYXRhLWFjdGlvbj0iZGVsZXRlIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTdCMkMgJysocysxKSsnIFx1Njc2MVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2RiIgdGl0bGU9Ilx1NTIyMFx1OTY2NCI+PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjYiIHkxPSIxOCIgeDI9IjE4IiB5Mj0iNiIvPjwvc3ZnPjwvYnV0dG9uPjwvbGk+J312YXIgYz0iIjtyZXR1cm4gaT49MiYmKGM9JzxkaXYgY2xhc3M9InF1ZXVlLWJhci1oZWFkIj48c3BhbiBjbGFzcz0icXVldWUtYmFyLWhlYWQtY291bnQiPicraSsnIFx1Njc2MVx1NjM5Mlx1OTYxRjwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InF1ZXVlLWJhci1jbGVhci1hbGwiIGRhdGEtYWN0aW9uPSJjbGVhci1hbGwiIHRpdGxlPSJcdTZFMDVcdTdBN0FcdTUxNjhcdTkwRThcdTYzOTJcdTk2MUYiIGFyaWEtbGFiZWw9Ilx1NkUwNVx1N0E3QVx1NTE2OFx1OTBFOCAnK2krJyBcdTY3NjFcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkYiPlx1NkUwNVx1N0E3QTwvYnV0dG9uPjwvZGl2PicpLCc8ZGl2IGNsYXNzPSInK2ErJyIgZGF0YS1xdWV1ZS1iYXI9IjEiIHRpdGxlPSJcdTYzOTJcdTk2MUYgJytpKycgXHU2NzYxXHVGRjA4XHU2MzA5XHU0RjRGXHU2QzE0XHU2Q0UxXHU1M0VGXHU4QzAzXHU1RThGXHVGRjA5Ij4nK2MrJzxvbCBjbGFzcz0icXVldWUtYmFyLWxpc3QiIGRhdGEtcXVldWUtbGlzdD0iMSI+JytvKyI8L29sPjwvZGl2PiJ9ZnVuY3Rpb24gbnQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVldWUtYmFyLWhvc3QiKTtpZihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQmJnQuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIsaT1uP2RhKHQpOltdO2lmKGk9QXJyYXkuaXNBcnJheShpKT9pOltdLCFufHxpLmxlbmd0aD09PTApe2UuaGlkZGVuPSEwLGUuaW5uZXJIVE1MPSIiLHIucXVldWVCYXJFeHBhbmRlZD0hMTtyZXR1cm59aWYoIXIucXVldWVCYXJEcmFnKXtlLmhpZGRlbj0hMTt2YXIgYT0hISh0LnN0cnVjdHVyZWRTdGF0ZSYmdC5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJnQuc3RhdHVzPT09InJ1bm5pbmciKSx1PWkubGVuZ3RoPj1ncDtlLmlubmVySFRNTD1FcChpLGEsdSl9fX1mdW5jdGlvbiBDaShlLHQpe1goe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6dH0pO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWUuaWR9KXx8ZTtyLmN1cnJlbnRNZXNzYWdlcz16ZShuLFhlKG4sbi5vdXRwdXQsITEpKSxWZSghMCksbnQoKX1mdW5jdGlvbiBGcChlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZih0KXt2YXIgbj1BcnJheS5pc0FycmF5KHQucXVldWVkTWVzc2FnZXMpP3QucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZighKGU8MHx8ZT49bi5sZW5ndGgpKXt2YXIgaT1uLnNsaWNlKCksYT1uLnNsaWNlKDAsZSkuY29uY2F0KG4uc2xpY2UoZSsxKSk7WCh7aWQ6dC5pZCxxdWV1ZWRNZXNzYWdlczphfSk7dmFyIHU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09dC5pZH0pfHx0O3IuY3VycmVudE1lc3NhZ2VzPXplKHUsWGUodSx1Lm91dHB1dCwhMSkpLFZlKCEwKSxudCgpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIit0LmlkKyIvcXVldWVkLyIrZSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKCFvLm9rKXJldHVybiBvLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihzKXt0aHJvdyBuZXcgRXJyb3IocyYmcy5lcnJvcnx8Ilx1NTIyMFx1OTY2NFx1NTkzMVx1OEQyNSIpfSl9KS5jYXRjaChmdW5jdGlvbihvKXtDaSh0LGkpLEEobyYmby5tZXNzYWdlfHwiXHU1MjIwXHU5NjY0XHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX19ZnVuY3Rpb24gd3AoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlKXt2YXIgdD1BcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpP2UucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZih0Lmxlbmd0aCE9PTApe3IucXVldWVCYXJFeHBhbmRlZD0hMSxYKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOltdfSk7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZS5pZH0pfHxlO3IuY3VycmVudE1lc3NhZ2VzPXplKG4sWGUobixuLm91dHB1dCwhMSkpLFZlKCEwKSxudCgpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitlLmlkKyIvcXVldWVkIix7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKCFpLm9rKXJldHVybiBpLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihhKXt0aHJvdyBuZXcgRXJyb3IoYSYmYS5lcnJvcnx8Ilx1NkUwNVx1N0E3QVx1NTkzMVx1OEQyNSIpfSk7QSgiXHU1REYyXHU2RTA1XHU3QTdBICIrdC5sZW5ndGgrIiBcdTY3NjFcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTMwMDIiLCJpbmZvIil9KS5jYXRjaChmdW5jdGlvbihpKXtDaShlLHQpLEEoaSYmaS5tZXNzYWdlfHwiXHU2RTA1XHU3QTdBXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX19ZnVuY3Rpb24gQ3AoZSl7aWYoIXIucXVldWVCYXJQcm9tb3Rpbmcpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKHQpe3ZhciBuPUFycmF5LmlzQXJyYXkodC5xdWV1ZWRNZXNzYWdlcyk/dC5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKCEoZTwwfHxlPj1uLmxlbmd0aCkpe3ZhciBpPW5bZV0sYT1uLnNsaWNlKDAsZSkuY29uY2F0KG4uc2xpY2UoZSsxKSksdT1uLnNsaWNlKCksbz0hISh0LnN0cnVjdHVyZWRTdGF0ZSYmdC5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJnQuc3RhdHVzPT09InJ1bm5pbmciKTtyLnF1ZXVlQmFyUHJvbW90aW5nPSEwLGEubGVuZ3RoPT09MCYmKHIucXVldWVCYXJFeHBhbmRlZD0hMSksWCh7aWQ6dC5pZCxxdWV1ZWRNZXNzYWdlczphfSk7dmFyIHM9dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEP2NyeXB0by5yYW5kb21VVUlEKCk6RGF0ZS5ub3coKS50b1N0cmluZygzNikrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsMTApO0Eobz8iXHU1REYyXHU4QkY3XHU2QzQyXHU0RTJEXHU2NUFEXHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHVGRjBDXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxXHUzMDAyIjoiXHU1REYyXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxXHU2RDg4XHU2MDZGXHUzMDAyIiwiaW5mbyIpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIit0LmlkKyIvcXVldWVkLyIrZSsiL3Byb21vdGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtleHBlY3RlZFRleHQ6aSxpZGVtcG90ZW5jeUtleTpzfSl9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLm9rP2wuanNvbigpOmwuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGQpe3Rocm93IG5ldyBFcnJvcihkJiZkLmVycm9yfHwiXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1Iil9KX0pLnRoZW4oZnVuY3Rpb24obCl7aWYobCYmbC5pZCYmKFgobCksbC5pZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciBkPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihmKXtyZXR1cm4gZi5pZD09PWwuaWR9KXx8bDtyLmN1cnJlbnRNZXNzYWdlcz16ZShkLFhlKGQsbC5vdXRwdXQsITEpKSxWZSghMCksbnQoKX1yLnF1ZXVlQmFyUHJvbW90aW5nPSExfSkuY2F0Y2goZnVuY3Rpb24obCl7ci5xdWV1ZUJhclByb21vdGluZz0hMSxDaSh0LHUpLEEobCYmbC5tZXNzYWdlfHwiXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX19fWZ1bmN0aW9uIEJwKGUsdCl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGMpe3JldHVybiBjLmlkPT09ci5zZWxlY3RlZElkfSk7aWYobil7dmFyIGk9QXJyYXkuaXNBcnJheShuLnF1ZXVlZE1lc3NhZ2VzKT9uLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoIShpLmxlbmd0aDw9MSkmJnQpe3ZhciBhPXQucGFyZW50RWxlbWVudDtpZihhKXt2YXIgdT1OdW1iZXIodC5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSksbz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhLmNoaWxkcmVuKSxzPW8ubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBjLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpfSksbD0zO3MubGVuZ3RoPj0yJiYobD1NYXRoLm1heCgwLHNbMV0udG9wLXNbMF0udG9wLXNbMF0uaGVpZ2h0KSksZS5wcmV2ZW50RGVmYXVsdCgpO3RyeXt0LnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKX1jYXRjaHt9aWYobmF2aWdhdG9yJiZuYXZpZ2F0b3IudmlicmF0ZSl0cnl7bmF2aWdhdG9yLnZpYnJhdGUoOCl9Y2F0Y2h7fXIucXVldWVCYXJEcmFnPXtwb2ludGVySWQ6ZS5wb2ludGVySWQsaGFuZGxlRWw6dCxpdGVtRWw6dCxsaXN0RWw6YSxzaWJsaW5nczpvLHJlY3RzOnMsb3JpZ0luZGV4OnUsdGFyZ2V0SW5kZXg6dSxzdGFydFk6ZS5jbGllbnRZLGdhcDpsLHF1ZXVlU25hcHNob3Q6aX0sdC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLG8uZm9yRWFjaChmdW5jdGlvbihjKXtjIT09dCYmYy5jbGFzc0xpc3QuYWRkKCJxdWV1ZS1iYXItaXRlbS1zbGlkaW5nIil9KTt2YXIgZD1mdW5jdGlvbihjKXtrcChjKX0sZj1mdW5jdGlvbihjKXtBcChjKX07ci5xdWV1ZUJhckRyYWcubW92ZUhhbmRsZXI9ZCxyLnF1ZXVlQmFyRHJhZy51cEhhbmRsZXI9Zix0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixkKSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsZiksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixmKX19fX1mdW5jdGlvbiBEcChlLHQsbixpKXtmb3IodmFyIGE9bi5sZW5ndGgsdT1bXSxvPTA7bzxhO28rKyl1LnB1c2gobyk7dS5zcGxpY2UoZSwxKSx1LnNwbGljZSh0LDAsZSk7Zm9yKHZhciBzPW5bMF0udG9wLGw9blswXS50b3AsZD0xO2Q8YTtkKyspbltkXS50b3A8bCYmKGw9bltkXS50b3ApO2Zvcih2YXIgZj17fSxjPWwsdj0wO3Y8YTt2Kyspe3ZhciBoPXVbdl07ZltoXT1jLGMrPW5baF0uaGVpZ2h0K2l9cmV0dXJuIGZ9ZnVuY3Rpb24ga3AoZSl7dmFyIHQ9ci5xdWV1ZUJhckRyYWc7aWYoISghdHx8ZS5wb2ludGVySWQhPT10LnBvaW50ZXJJZCkpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbj1lLmNsaWVudFktdC5zdGFydFk7dC5pdGVtRWwuc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGVZKCIrbisicHgpIjtmb3IodmFyIGk9dC5yZWN0c1t0Lm9yaWdJbmRleF0udG9wK3QucmVjdHNbdC5vcmlnSW5kZXhdLmhlaWdodC8yK24sYT10Lm9yaWdJbmRleCx1PTA7dTx0LnJlY3RzLmxlbmd0aDt1KyspaWYodSE9PXQub3JpZ0luZGV4KXt2YXIgbz10LnJlY3RzW3VdLnRvcCt0LnJlY3RzW3VdLmhlaWdodC8yO3U8dC5vcmlnSW5kZXgmJmk8bz9hPU1hdGgubWluKGEsdSk6dT50Lm9yaWdJbmRleCYmaT5vJiYoYT1NYXRoLm1heChhLHUpKX1pZihhIT09dC50YXJnZXRJbmRleCl7dC50YXJnZXRJbmRleD1hO3ZhciBzPURwKHQub3JpZ0luZGV4LGEsdC5yZWN0cyx0LmdhcCk7dC5zaWJsaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGwsZCl7aWYoZCE9PXQub3JpZ0luZGV4KXt2YXIgZj1zW2RdLXQucmVjdHNbZF0udG9wO2wuc3R5bGUudHJhbnNmb3JtPWY/InRyYW5zbGF0ZVkoIitmKyJweCkiOiIifX0pfX19ZnVuY3Rpb24gQXAoZSl7dmFyIHQ9ci5xdWV1ZUJhckRyYWc7aWYoISghdHx8ZSYmZS5wb2ludGVySWQhPT10LnBvaW50ZXJJZCkpe3RyeXt0LmhhbmRsZUVsLnJlbGVhc2VQb2ludGVyQ2FwdHVyZSh0LnBvaW50ZXJJZCl9Y2F0Y2h7fXQuaGFuZGxlRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHQubW92ZUhhbmRsZXIpLHQuaGFuZGxlRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIix0LnVwSGFuZGxlciksdC5oYW5kbGVFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIix0LnVwSGFuZGxlcik7dmFyIG49dC5vcmlnSW5kZXgsaT10LnRhcmdldEluZGV4LGE9dC5xdWV1ZVNuYXBzaG90O2lmKHQuc2libGluZ3MuZm9yRWFjaChmdW5jdGlvbihkKXtkLnN0eWxlLnRyYW5zZm9ybT0iIixkLmNsYXNzTGlzdC5yZW1vdmUoInF1ZXVlLWJhci1pdGVtLXNsaWRpbmciKX0pLHQuaXRlbUVsLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksci5xdWV1ZUJhckRyYWc9bnVsbCxuPT09aSl7bnQoKTtyZXR1cm59Zm9yKHZhciB1PVtdLG89MDtvPGEubGVuZ3RoO28rKyl1LnB1c2gobyk7dS5zcGxpY2UobiwxKSx1LnNwbGljZShpLDAsbik7dmFyIHM9dS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGFbZF19KSxsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCFsKXtudCgpO3JldHVybn1YKHtpZDpsLmlkLHF1ZXVlZE1lc3NhZ2VzOnN9KSxudCgpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitsLmlkKyIvcXVldWVkIix7bWV0aG9kOiJQQVRDSCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe29yZGVyOnV9KX0pLnRoZW4oZnVuY3Rpb24oZCl7aWYoIWQub2spcmV0dXJuIGQuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGYpe3Rocm93IG5ldyBFcnJvcihmJiZmLmVycm9yfHwiXHU2MzkyXHU1RThGXHU1OTMxXHU4RDI1Iil9KX0pLmNhdGNoKGZ1bmN0aW9uKGQpe0NpKGwsYSksQShkJiZkLm1lc3NhZ2V8fCJcdThDMDNcdTY1NzRcdTYzOTJcdTk2MUZcdTk4N0FcdTVFOEZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fWZ1bmN0aW9uIHhwKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1ZXVlLWJhci1ob3N0Iik7IWV8fGUuX19xdWV1ZURlbGVnYXRlZHx8KGUuX19xdWV1ZURlbGVnYXRlZD0hMCxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldCxpPW4mJm4uY2xvc2VzdD9uLmNsb3Nlc3QoIltkYXRhLWFjdGlvbl0iKTpudWxsO2lmKGkmJmUuY29udGFpbnMoaSkpe3ZhciBhPWkuZ2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIpO2lmKGE9PT0iZHJhZyIpcmV0dXJuO2lmKHQucHJldmVudERlZmF1bHQoKSx0LnN0b3BQcm9wYWdhdGlvbigpLGE9PT0icHJvbW90ZS1pdGVtIil7dmFyIHU9aS5jbG9zZXN0KCIucXVldWUtYmFyLWl0ZW0iKTt1JiZDcChOdW1iZXIodS5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSkpfWVsc2UgaWYoYT09PSJkZWxldGUiKXt2YXIgbz1pLmNsb3Nlc3QoIi5xdWV1ZS1iYXItaXRlbSIpO28mJkZwKE51bWJlcihvLmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpKSl9ZWxzZSBhPT09ImNsZWFyLWFsbCImJndwKCk7cmV0dXJufX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGZ1bmN0aW9uKHQpe2lmKCEodC5idXR0b24hPT12b2lkIDAmJnQuYnV0dG9uIT09MCkpe3ZhciBuPXQudGFyZ2V0O2lmKCEobiYmbi5jbG9zZXN0JiZuLmNsb3Nlc3QoJ1tkYXRhLWFjdGlvbj0iZGVsZXRlIl0sIFtkYXRhLWFjdGlvbj0icHJvbW90ZS1pdGVtIl0sIFtkYXRhLWFjdGlvbj0iY2xlYXItYWxsIl0sIFtkYXRhLWFjdGlvbj0iZXhwYW5kIl0nKSkpe3ZhciBpPW4mJm4uY2xvc2VzdD9uLmNsb3Nlc3QoIi5xdWV1ZS1iYXItaXRlbSIpOm51bGw7aSYmQnAodCxpKX19fSksZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZ5cCgpJiYodC5zdG9wUHJvcGFnYXRpb24oKSxicCghMSkpfSkpfWZ1bmN0aW9uIElzKGUpe2lmKCFlfHwhQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKXJldHVybiAwO2Zvcih2YXIgdD0wLG49MDtuPGUuY29udGVudC5sZW5ndGg7bisrKXt2YXIgaT1lLmNvbnRlbnRbbl07aWYoaSl7aWYodHlwZW9mIGkudGV4dD09InN0cmluZyImJih0Kz1pLnRleHQubGVuZ3RoKSx0eXBlb2YgaS50aGlua2luZz09InN0cmluZyImJih0Kz1pLnRoaW5raW5nLmxlbmd0aCksdHlwZW9mIGkuY29udGVudD09InN0cmluZyIpdCs9aS5jb250ZW50Lmxlbmd0aDtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaS5jb250ZW50KSlmb3IodmFyIGE9MDthPGkuY29udGVudC5sZW5ndGg7YSsrKXt2YXIgdT1pLmNvbnRlbnRbYV07dSYmdHlwZW9mIHUudGV4dD09InN0cmluZyImJih0Kz11LnRleHQubGVuZ3RoKX1pZihpLmlucHV0KXRyeXt0Kz1KU09OLnN0cmluZ2lmeShpLmlucHV0KS5sZW5ndGh9Y2F0Y2h7fX19cmV0dXJuIHR9ZnVuY3Rpb24gU3AoZSx0KXtpZighZSlyZXR1cm4gdDtpZighdClyZXR1cm4gZTt2YXIgbj1JcyhlKSxpPUlzKHQpO3JldHVybiBpPj1uP3Q6T2JqZWN0LmFzc2lnbih7fSxlLHt1c2FnZTp0LnVzYWdlfHxlLnVzYWdlfSl9ZnVuY3Rpb24gemUoZSx0KXt2YXIgbj1BcnJheS5pc0FycmF5KHQpP2NyKHQpOltdLGk9QXJyYXkuaXNBcnJheShuKT9uLnNsaWNlKCk6W107aWYoIWV8fGUuc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIpcmV0dXJuIGk7aWYoZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KXt2YXIgYT1pW2kubGVuZ3RoLTFdOyghYXx8YS5yb2xlIT09ImFzc2lzdGFudCIpJiZpLnB1c2goe3JvbGU6ImFzc2lzdGFudCIsY29udGVudDpbe3R5cGU6InRleHQiLHRleHQ6IiIsX19wcm9jZXNzaW5nOiEwfV19KX1yZXR1cm4gaX1mdW5jdGlvbiBUcygpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3RpKGUpLGRuKCl9ZnVuY3Rpb24gTHMoZSl7dmFyIHQ9RHQoKSxuPXQmJnQucHJvdmlkZXI9PT0iY29kZXgiO3JldHVybiBlJiYoZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfUlVOTklORyJ8fGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9fUFRZIik/bj8iQ29kZXggXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGXHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENvZGV4IFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1NTcyOFx1NEY2MFx1NEUwQlx1NkIyMVx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1NjVGNlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1MzAwMiI6Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1Rlx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU1NzI4XHU0RjYwXHU0RTBCXHU2QjIxXHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHU2NUY2XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHUzMDAyIjplJiZlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9GT1VORCI/Ilx1NEYxQVx1OEJERFx1NEUwRFx1NUI1OFx1NTcyOFx1RkYwQ1x1OEJGN1x1OTFDRFx1NjVCMFx1OTAwOVx1NjJFOVx1NjIxNlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiI6ZSYmZS5tZXNzYWdlfHwobj8iQ29kZXggXHU0RjFBXHU4QkREXHU2NjgyXHU0RTBEXHU1M0VGXHU3NTI4XHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENvZGV4IFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1ODFFQVx1NTJBOFx1NUMxRFx1OEJENVx1NjA2Mlx1NTkwRFx1MzAwMiI6Ilx1NEYxQVx1OEJERFx1NjY4Mlx1NEUwRFx1NTNFRlx1NzUyOFx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU4MUVBXHU1MkE4XHU1QzFEXHU4QkQ1XHU2MDYyXHU1OTBEXHUzMDAyIil9ZnVuY3Rpb24gTXMoZSl7dmFyIHQ9bmV3IEVycm9yKGUmJmUuZXJyb3J8fCJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUZcdTMwMDIiKTtyZXR1cm4gZSYmdHlwZW9mIGU9PSJvYmplY3QiJiYodC5lcnJvckNvZGU9ZS5lcnJvckNvZGV8fG51bGwsdC5zZXNzaW9uSWQ9ZS5zZXNzaW9uSWR8fHIuc2VsZWN0ZWRJZHx8bnVsbCx0LnNlc3Npb25TdGF0dXM9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsInNlc3Npb25TdGF0dXMiKT9lLnNlc3Npb25TdGF0dXM6bnVsbCksdH1mdW5jdGlvbiBxcyhlKXtyZXR1cm4gZSYmKGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX1JVTk5JTkcifHxlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PX1BUWSJ8fGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX0ZPVU5EIil9ZnVuY3Rpb24gSXAoZSx0KXtlJiZYKHtpZDplLHN0YXR1czp0fHwiZXhpdGVkIn0pfWZ1bmN0aW9uIFpnKGUpe2lmKCFlfHwhQXJyYXkuaXNBcnJheShlLm1lc3NhZ2VzKXx8ZS5tZXNzYWdlcy5sZW5ndGg8MilyZXR1cm4hMTt2YXIgdD1lLm1lc3NhZ2VzLnNvbWUoZnVuY3Rpb24oaSl7cmV0dXJuIGkmJmkucm9sZT09PSJ1c2VyIiYmQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpJiZpLmNvbnRlbnQuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS50eXBlPT09InRleHQiJiZ0eXBlb2YgYS50ZXh0PT0ic3RyaW5nIiYmYS50ZXh0LnRyaW0oKS5sZW5ndGg+MH0pfSksbj1lLm1lc3NhZ2VzLnNvbWUoZnVuY3Rpb24oaSl7cmV0dXJuIGkmJmkucm9sZT09PSJhc3Npc3RhbnQiJiZBcnJheS5pc0FycmF5KGkuY29udGVudCkmJmkuY29udGVudC5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnR5cGU9PT0idGV4dCImJnR5cGVvZiBhLnRleHQ9PSJzdHJpbmciJiZhLnRleHQudHJpbSgpLmxlbmd0aD4wfSl9KTtyZXR1cm4gdCYmbn1mdW5jdGlvbiBXYShlKXtyZXR1cm4hIShlJiYhdWUoZSkmJihlLnByb3ZpZGVyPT09ImNsYXVkZSJ8fGUucHJvdmlkZXI9PT0iY29kZXgiKSYmZS5zdGF0dXMhPT0icnVubmluZyImJmUuY2xhdWRlU2Vzc2lvbklkKX1mdW5jdGlvbiBUcChlLHQpe2lmKCFlKXJldHVybiBBKCJcdTRGMUFcdThCRERcdTRFMERcdTVCNThcdTU3MjhcdUZGMENcdThCRjdcdTkxQ0RcdTY1QjBcdTkwMDlcdTYyRTlcdTYyMTZcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLFByb21pc2UucmVzb2x2ZShudWxsKTtpZihlLnN0YXR1cz09PSJydW5uaW5nIilyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGUpO2lmKCFXYShlKSl7dmFyIG49ZSYmZS5wcm92aWRlcj09PSJjb2RleCI/IkNvZGV4IjoiQ2xhdWRlIjtyZXR1cm4gQSgiXHU4QkU1XHU0RjFBXHU4QkREXHU2Q0ExXHU2NzA5XHU1M0VGXHU2MDYyXHU1OTBEXHU3Njg0ICIrbisiIFx1NTM4Nlx1NTNGMlx1NEUwQVx1NEUwQlx1NjU4N1x1RkYwQ1x1OEJGN1x1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksUHJvbWlzZS5yZXNvbHZlKG51bGwpfXJldHVybiBWcyhlLmlkLHQpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk/KFgoaSkscGUoKSxQbihpLmlkKSxnbihpLmlkKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFB0KCEwKSxpfSkpOm51bGx9KX1mdW5jdGlvbiBMcChlLHQpe3JldHVyblt0LCJcciJdfWZ1bmN0aW9uIE1wKGUsdCxuLGkpe3ZhciBhPUFycmF5LmlzQXJyYXkoZSk/ZS5maWx0ZXIoZnVuY3Rpb24obyl7cmV0dXJuISFvfSk6W107aWYoYS5sZW5ndGg9PT0wKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgdT10eXBlb2Ygbj09Im51bWJlciI/bjowO3JldHVybiBhLnJlZHVjZShmdW5jdGlvbihvLHMsbCl7cmV0dXJuIG8udGhlbihmdW5jdGlvbigpe3JldHVybiBsPjAmJnU+MD9uZXcgUHJvbWlzZShmdW5jdGlvbihkKXtzZXRUaW1lb3V0KGQsdSl9KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHZ0KHMsbD09PWEubGVuZ3RoLTE/dDp2b2lkIDAsaSl9KTp2dChzLGw9PT1hLmxlbmd0aC0xP3Q6dm9pZCAwLGkpfSl9LFByb21pc2UucmVzb2x2ZSgpKX12YXIgcXA9NWUzLFBwPTEwMDtmdW5jdGlvbiB6YShlKXtlJiYoci5wZW5kaW5nTWVzc2FnZXMubGVuZ3RoPj1QcCYmci5wZW5kaW5nTWVzc2FnZXMuc2hpZnQoKSxyLnBlbmRpbmdNZXNzYWdlcy5wdXNoKHtpbnB1dDplLGF0OkRhdGUubm93KCl9KSl9ZnVuY3Rpb24gT3AoZSl7dmFyIHQ9QXJyYXkuaXNBcnJheShlKT9lLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hIW59KTpbXTt0LmZvckVhY2goZnVuY3Rpb24obil7emEobil9KX1mdW5jdGlvbiBIcChlKXtpZighKHR5cGVvZiBlIT0ic3RyaW5nInx8IWUpKXt2YXIgdD1lLnJlcGxhY2UoL1x4MWJcWzIwMH4vZywiIikucmVwbGFjZSgvXHgxYlxbMjAxfi9nLCIiKTsvKD86XnxcbilccypcL2NsZWFyXHMqKD86XHJ8XG58JCkvLnRlc3QodCkmJnR5cGVvZiByPCJ1IiYmciYmKHIudGVybWluYWxPdXRwdXRNYXJrZXI9KHIudGVybWluYWxPdXRwdXQmJnIudGVybWluYWxPdXRwdXQubGVuZ3RoKXwwKX19ZnVuY3Rpb24gdnQoZSx0LG4pe3JldHVybiFlfHwhci5zZWxlY3RlZElkP1Byb21pc2UucmVzb2x2ZSgpOihIcChlKSxyLm1lc3NhZ2VRdWV1ZS5wdXNoKGUpLHIuaW5wdXRRdWV1ZT1yLmlucHV0UXVldWUudGhlbihmdW5jdGlvbigpe3JldHVybiBfcChlLHQsbikuZmluYWxseShmdW5jdGlvbigpe3ZhciBpPXIubWVzc2FnZVF1ZXVlLmluZGV4T2YoZSk7aT4tMSYmci5tZXNzYWdlUXVldWUuc3BsaWNlKGksMSl9KX0pLHIuaW5wdXRRdWV1ZSl9ZnVuY3Rpb24gX3AoZSx0LG4pe2lmKCFyLnNlbGVjdGVkSWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBpPXIuc2VsZWN0ZWRJZCxhPW58fHIuY3VycmVudFZpZXc7cmV0dXJuIHNwKCk/ci53c0Nvbm5lY3RlZD9mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2krIi9pbnB1dCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OmUsdmlldzphLHNob3J0Y3V0S2V5OnR8fHZvaWQgMH0pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5vaz91Lmpzb24oKTp1Lmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKG8pe3ZhciBzPU1zKG8pO3Rocm93IHMuaHR0cFN0YXR1cz11LnN0YXR1cyxjb25zb2xlLmVycm9yKCJbd2FuZF0gcG9zdElucHV0OiByZXF1ZXN0IGZhaWxlZCIse3N0YXR1czp1LnN0YXR1cyxlcnJvckNvZGU6cy5lcnJvckNvZGUsbWVzc2FnZTpzLm1lc3NhZ2Usc2Vzc2lvbklkOml9KSxxcyhzKSYmSXAoaSxzLnNlc3Npb25TdGF0dXN8fCJleGl0ZWQiKSxzfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1JiZ1LmlkJiYoWCh1KSx1LmlkPT09ci5zZWxlY3RlZElkJiYodS5tZXNzYWdlcyYmdS5tZXNzYWdlcy5sZW5ndGg+MCYmKHIuY3VycmVudE1lc3NhZ2VzPXUubWVzc2FnZXMpLFZlKCEwKSkpLHV9KTooemEoZSksY29uc29sZS5sb2coIlt3YW5kXSBwb3N0SW5wdXQ6IFdlYlNvY2tldCBkaXNjb25uZWN0ZWQsIHF1ZXVlZCBtZXNzYWdlIix7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZCxpbnB1dExlbmd0aDplLmxlbmd0aH0pLFByb21pc2UucmVzb2x2ZSgpKTpyLndzQ29ubmVjdGVkPyhjb25zb2xlLndhcm4oIlt3YW5kXSBwb3N0SW5wdXQ6IHNlc3Npb24gbm90IHJ1bm5pbmcsIHNraXBwaW5nIHNlbmQiLHtzZXNzaW9uSWQ6ci5zZWxlY3RlZElkfSksQSgiXHU0RjFBXHU4QkREXHU2NzJBXHU4RkQwXHU4ODRDXHVGRjBDXHU2QjYzXHU1NzI4XHU3QjQ5XHU1Rjg1XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHU1NDBFXHU5MUNEXHU4QkQ1XHUzMDAyIiwiaW5mbyIpLFByb21pc2UucmVzb2x2ZSgpKTooemEoZSksY29uc29sZS5sb2coIlt3YW5kXSBwb3N0SW5wdXQ6IHNlc3Npb24gbm90IHJ1bm5pbmcsIHF1ZXVlZCBmb3IgcmVjb25uZWN0Iix7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZCxpbnB1dExlbmd0aDplLmxlbmd0aH0pLFByb21pc2UucmVzb2x2ZSgpKX1mdW5jdGlvbiBlaChlKXtyZXR1cm4gdnQoZSl9ZnVuY3Rpb24gRHQoKXtyZXR1cm4gci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09ci5zZWxlY3RlZElkfSl8fG51bGx9ZnVuY3Rpb24gdGgoZSl7cmV0dXJuIGUmJmUucHJvdmlkZXI9PT0iY29kZXgiP2AKYDoiXHIifWZ1bmN0aW9uIFZhKCl7cmV0dXJuISFyLnNlbGVjdGVkSWQmJnIuY3VycmVudFZpZXc9PT0idGVybWluYWwifWZ1bmN0aW9uIE5wKGUpe3JldHVybiEoIXIudGVybWluYWx8fCFlfHxlIT09ci5zZWxlY3RlZElkfHxyLnRlcm1pbmFsU2Vzc2lvbklkJiZyLnRlcm1pbmFsU2Vzc2lvbklkIT09ZSl9ZnVuY3Rpb24gUHMoZSl7aWYoIXIudGVybWluYWxJbnRlcmFjdGl2ZXx8IVZhKCl8fGUuZGVmYXVsdFByZXZlbnRlZHx8ZS5pc0NvbXBvc2luZylyZXR1cm4hMTt2YXIgdD1lLnRhcmdldDtyZXR1cm4gdD8hKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSYmdC5jbG9zZXN0JiZ0LmNsb3Nlc3QoIiNpbnB1dC1ib3giKXx8dC5jbG9zZXN0JiZ0LmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkIil8fEtwKHQpKTohMH12YXIganA9e0VzYzoiZXNjYXBlIixBcnJvd1VwOiJ1cCIsQXJyb3dEb3duOiJkb3duIixBcnJvd0xlZnQ6ImxlZnQiLEFycm93UmlnaHQ6InJpZ2h0IixFbnRlcjoiZW50ZXIiLFRhYjoidGFiIixCYWNrc3BhY2U6ImJhY2tzcGFjZSIsSG9tZToiaG9tZSIsRW5kOiJlbmQiLFBhZ2VVcDoicGFnZXVwIixQYWdlRG93bjoicGFnZWRvd24iLERlbGV0ZToiZGVsZXRlIixJbnNlcnQ6Imluc2VydCIsIiAiOiJzcGFjZSJ9LFJwPXtzcGFjZToiICIsdGFiOiIJIixzaGlmdF90YWI6Ilx4MUJbWiIsYmFja3NwYWNlOiJceDdGIixob21lOiJceDFCW0giLGVuZDoiXHgxQltGIixwYWdldXA6Ilx4MUJbNX4iLHBhZ2Vkb3duOiJceDFCWzZ+IixkZWxldGU6Ilx4MUJbM34iLGluc2VydDoiXHgxQlsyfiJ9LE9zPXsiICI6MCwiWyI6MjcsIlxcIjoyOCwiXSI6MjksIl4iOjMwLF86MzF9LFdwPTQwMCx6cD0xMCxWcD04LEJpPTU0LGNuPTgsVWE9W3trZXk6ImVudGVyIixsYWJlbDoiRW50ZXIifSx7a2V5OiJjdHJsX2MiLGxhYmVsOiJDdHJsK0MifSx7a2V5OiJlc2NhcGUiLGxhYmVsOiJFc2MifSx7a2V5OiJzaGlmdF90YWIiLGxhYmVsOiJTaGlmdCtUYWIifV0sVXA9bmV3IFNldChbIm1pbmkta2V5Ym9hcmQtZmFiIiwibWluaS1rZXlib2FyZC10b2dnbGUiLCJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUiXSk7ZnVuY3Rpb24gS3AoZSl7cmV0dXJuISEoZSYmVXAuaGFzKGUuaWQpKX12YXIgSnA9bmV3IFNldChbImN0cmwiLCJhbHQiLCJzaGlmdCJdKTtmdW5jdGlvbiBIcyhlKXtyZXR1cm4gSnAuaGFzKGUpfWZ1bmN0aW9uIFlwKGUpe3JldHVybiBScFtlXXx8IiJ9ZnVuY3Rpb24gR3AoZSl7dmFyIHQ9ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0Pj0iYSImJnQ8PSJ6Ij9TdHJpbmcuZnJvbUNoYXJDb2RlKHQuY2hhckNvZGVBdCgwKS05Nik6T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKE9zLHQpP1N0cmluZy5mcm9tQ2hhckNvZGUoT3NbdF0pOiIifWZ1bmN0aW9uIFFwKGUpe3JldHVybiBqcFtlLmtleV18fGUua2V5fWZ1bmN0aW9uICRwKGUsdCl7cmV0dXJue2N0cmw6ZS5jdHJsS2V5LGFsdDplLmFsdEtleSxzaGlmdDplLnNoaWZ0S2V5JiYodC5sZW5ndGg9PT0xfHx0PT09InRhYiIpLG1ldGE6ZS5tZXRhS2V5fX1mdW5jdGlvbiBfcyhlLHQpe2UmJnZ0KGUsdCkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBYcCgpeyRzKCl9ZnVuY3Rpb24gS2EoZSl7ci5rZXlib2FyZFBvcHVwT3Blbj0hMSxlIT09ITEmJmtpKCksdHYoKX1mdW5jdGlvbiBacCgpe1ZhKCkmJk1uKCFyLnRlcm1pbmFsSW50ZXJhY3RpdmUpfWZ1bmN0aW9uIE1uKGUpe3ZhciB0PSEhZSYmVmEoKTtyLnRlcm1pbmFsSW50ZXJhY3RpdmUhPT10JiYoci50ZXJtaW5hbEludGVyYWN0aXZlPXQsdD8obnYoKSxLYSghMSksWHAoKSxBKCJcdTdFQzhcdTdBRUZcdTRFQTRcdTRFOTJcdTZBMjFcdTVGMEZcdTVERjJcdTVGMDBcdTU0MkYiLCJpbmZvIikpOihydigpLGtpKCkpLElyKCkpfWZ1bmN0aW9uIEphKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSksdD0hZXx8ZS5zdGF0dXMhPT0icnVubmluZyJ8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwiO2lmKHQmJnIudGVybWluYWxJbnRlcmFjdGl2ZSl7TW4oITEpO3JldHVybn0oIWV8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwiKSYmci5rZXlib2FyZFBvcHVwT3BlbiYmKHIua2V5Ym9hcmRQb3B1cE9wZW49ITEpLElyKCl9ZnVuY3Rpb24gSXIoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oeSl7cmV0dXJuIHkuaWQ9PT1yLnNlbGVjdGVkSWR9KSx0PXVlKGUpLG49ZSYmZS5wcm92aWRlcj09PSJjb2RleCIsaT10PyEhKGUmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCk6ISFlJiZlLnN0YXR1cz09PSJydW5uaW5nIixhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSx1PVsidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCJdO3UuZm9yRWFjaChmdW5jdGlvbih5KXt2YXIgQz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh5KTtpZihDKXtDLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci50ZXJtaW5hbEludGVyYWN0aXZlKSxDLmNsYXNzTGlzdC50b2dnbGUoImlzLW9uIixyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLEMuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIix0fHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsInx8IWUpLEMuc2V0QXR0cmlidXRlKCJhcmlhLWNoZWNrZWQiLHIudGVybWluYWxJbnRlcmFjdGl2ZT8idHJ1ZSI6ImZhbHNlIik7dmFyIEU9Qy5xdWVyeVNlbGVjdG9yKCIucGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZSIpO0UmJihFLnRleHRDb250ZW50PXIudGVybWluYWxJbnRlcmFjdGl2ZT8iXHU1RjAwIjoiXHU1MTczIil9fSk7dmFyIG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWhpbnQiKTtvJiYoby5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLHQ/ITA6ci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCIpLCF0JiZlJiYoby50ZXh0Q29udGVudD1uPyJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBjaGF0IFx1NEUzQVx1ODlFM1x1Njc5MFx1ODlDNlx1NTZGRVx1RkYwQ3Rlcm1pbmFsIFx1NEUzQVx1NTM5Rlx1NTlDQlx1OEY5M1x1NTFGQSI6IkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpKTt2YXIgcz0hdCYmIWkmJldhKGUpO2EmJihhLnBsYWNlaG9sZGVyPXdsKGUsci50ZXJtaW5hbEludGVyYWN0aXZlKSxhLmRpc2FibGVkPSF0JiYhIWUmJiFpJiYhcyxhLnNldEF0dHJpYnV0ZSgiYXJpYS1kaXNhYmxlZCIsYS5kaXNhYmxlZD8idHJ1ZSI6ImZhbHNlIiksYS5yZWFkT25seT0hMSxhLmNsYXNzTGlzdC50b2dnbGUoImlzLXRlcm1pbmFsLXBhc3N0aHJvdWdoIiwhIXIudGVybWluYWxJbnRlcmFjdGl2ZSYmIWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSkpO3ZhciBsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2wmJnIudGVybWluYWxJbnRlcmFjdGl2ZSYmbC5jbGFzc0xpc3QuY29udGFpbnMoInZvaWNlLW1vZGUiKSYmKGwuY2xhc3NMaXN0LnJlbW92ZSgidm9pY2UtbW9kZSIpLEllLnJlY29yZGluZz0hMSxOYSgpKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VuZC1pbnB1dC1idXR0b24iKSxmPXQmJmk7ZCYmKGQuZGlzYWJsZWQ9IXQmJiEhZSYmIWkmJiFzLGQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdD9mPyJcdTYzOTJcdTk2MUZcdTUzRDFcdTkwMDFcdUZGMDhcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdTdFRDNcdTY3NUZcdTU0MEVcdTU5MDRcdTc0MDZcdUZGMDkiOiJcdTUzRDFcdTkwMDEiOm4/aT8iXHU1M0QxXHU5MDAxXHU3RUQ5IENvZGV4IjoiQ29kZXggXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGIjohZXx8aXx8cz8iXHU1M0QxXHU5MDAxIjoiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGIiksZC5jbGFzc0xpc3QudG9nZ2xlKCJxdWV1ZS1tb2RlIixmKSk7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7aWYoYyl7dmFyIHY9TXUoZSk7Yy5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCF2LmFjdGl2ZSl9dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7aWYoaCl7dmFyIGc9TXUoZSk7aC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFnLmFjdGl2ZSl9dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO20mJm0uY2xhc3NMaXN0LnRvZ2dsZSgiaW50ZXJhY3RpdmUiLCF0JiZyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLG5zKCl9ZnVuY3Rpb24gRGkoKXt2YXIgZT13aW5kb3cuZ2V0U2VsZWN0aW9uJiZ3aW5kb3cuZ2V0U2VsZWN0aW9uKCk7aWYoIWV8fGUuaXNDb2xsYXBzZWQpcmV0dXJuITE7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCF0KXJldHVybiExO3ZhciBuPWUuYW5jaG9yTm9kZTtyZXR1cm4gbiYmbi5ub2RlVHlwZT09PTMmJihuPW4ucGFyZW50Tm9kZSksISEobiYmdC5jb250YWlucyhuKSl9ZnVuY3Rpb24gWWEoZSl7aWYoUHMoZSkmJiFlLm1ldGFLZXkpe3ZhciB0PVFwKGUpO2lmKHQpe3ZhciBuPSRwKGUsdCk7aWYoIUhzKHQpJiYhKG4uY3RybCYmdC5sZW5ndGg9PT0xJiZ0LnRvTG93ZXJDYXNlKCk9PT0iYyImJkRpKCkpKXt2YXIgaT1qcyh0LG4pO2kmJihlLnByZXZlbnREZWZhdWx0KCksX3MoaSx0KSl9fX19ZnVuY3Rpb24gZXYoKXtyLnRlcm1pbmFsJiZCZig1MDApfWZ1bmN0aW9uIHR2KCl7RnIoKX1mdW5jdGlvbiBuaChlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSwhKHIuY3VycmVudFZpZXchPT0idGVybWluYWwifHwhci5zZWxlY3RlZElkKSYmKHIua2V5Ym9hcmRQb3B1cE9wZW49IXIua2V5Ym9hcmRQb3B1cE9wZW4sSXIoKSl9ZnVuY3Rpb24gTnMoKXtyLmtleWJvYXJkUG9wdXBPcGVuPSExLElyKCl9ZnVuY3Rpb24gbnYoKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixZYSwhMCl9ZnVuY3Rpb24gcnYoKXtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixZYSwhMCl9ZnVuY3Rpb24ganMoZSx0KXt2YXIgbj10fHx7Y3RybDohMSxhbHQ6ITEsc2hpZnQ6ITF9O2lmKEhzKGUpKXJldHVybiIiO2lmKGU9PT0idGFiIiYmbi5zaGlmdClyZXR1cm4iXHgxQltaIjt2YXIgaT1ZcChlKTtpZihpKXJldHVybiBpO2lmKGUuaW5kZXhPZigiY3RybF8iKT09PTApcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoZS5jaGFyQ29kZUF0KGUubGVuZ3RoLTEpLTk2KTt2YXIgYT1UcihlKTtpZihhKXJldHVybiBhO2lmKCFlKXJldHVybiIiO3ZhciB1PWUubGVuZ3RoPT09MT9lOiIiO3JldHVybiB1PyhuLnNoaWZ0JiYodT11LnRvVXBwZXJDYXNlKCkpLG4uY3RybD9HcCh1KTpuLmFsdD8iXHgxQiIrdTp1KToiIn1mdW5jdGlvbiBraSgpe3IubW9kaWZpZXJzLmN0cmw9ITEsci5tb2RpZmllcnMuYWx0PSExLHIubW9kaWZpZXJzLnNoaWZ0PSExLGl2KCl9ZnVuY3Rpb24gaXYoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWluaS1rZXlib2FyZCIpO2UmJlsiY3RybCIsImFsdCIsInNoaWZ0Il0uZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWtleT0iJyt0KyciXScpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIiwhIXIubW9kaWZpZXJzW3RdKX0pfWZ1bmN0aW9uIFRyKGUpe3N3aXRjaChlKXtjYXNlInllcyI6cmV0dXJuInlcciI7Y2FzZSJubyI6cmV0dXJuIm5cciI7Y2FzZSJ1cCI6cmV0dXJuIlx4MUJbQSI7Y2FzZSJkb3duIjpyZXR1cm4iXHgxQltCIjtjYXNlImxlZnQiOnJldHVybiJceDFCW0QiO2Nhc2UicmlnaHQiOnJldHVybiJceDFCW0MiO2Nhc2UiZW50ZXIiOnJldHVybiJcciI7Y2FzZSJjdHJsX2MiOnJldHVybiIDIjtjYXNlImN0cmxfZCI6cmV0dXJuIgQiO2Nhc2UiY3RybF9sIjpyZXR1cm4iXGYiO2Nhc2UiY3RybF91IjpyZXR1cm4iFSI7Y2FzZSJjdHJsX2siOnJldHVybiJcdiI7Y2FzZSJjdHJsX3ciOnJldHVybiIXIjtjYXNlImN0cmxfeiI6cmV0dXJuIhoiO2Nhc2UiZXNjYXBlIjpyZXR1cm4iXHgxQiI7ZGVmYXVsdDpyZXR1cm4iIn19ZnVuY3Rpb24gYXYoKXtpZihyLnBlbmRpbmdNZXNzYWdlcy5sZW5ndGghPT0wKXt2YXIgZT1EdCgpO2lmKHVlKGUpKXtyLnBlbmRpbmdNZXNzYWdlcz1bXTtyZXR1cm59dmFyIHQ9RGF0ZS5ub3coKSxuPVtdLGk9MDtyLnBlbmRpbmdNZXNzYWdlcy5mb3JFYWNoKGZ1bmN0aW9uKHUpe2lmKHR5cGVvZiB1PT0ic3RyaW5nIil7bi5wdXNoKHUpO3JldHVybn1pZighKCF1fHx0eXBlb2YgdS5pbnB1dCE9InN0cmluZyIpKXtpZih0LSh1LmF0fHwwKT5xcCl7aSsrO3JldHVybn1uLnB1c2godS5pbnB1dCl9fSksci5wZW5kaW5nTWVzc2FnZXM9W10saT4wJiZjb25zb2xlLmxvZygiW3dhbmRdIGZsdXNoUGVuZGluZ01lc3NhZ2VzOiBkcm9wcGVkICIraSsiIHN0YWxlIGlucHV0KHMpIik7dmFyIGE9UHJvbWlzZS5yZXNvbHZlKCk7bi5mb3JFYWNoKGZ1bmN0aW9uKHUpe2E9YS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHV2KHUpLmNhdGNoKGZ1bmN0aW9uKCl7fSl9KX0pfX1mdW5jdGlvbiB1dihlKXtpZighZXx8IXIuc2VsZWN0ZWRJZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHQ9ci5zZWxlY3RlZElkO3JldHVybiBmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3QrIi9pbnB1dCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OmUsdmlldzpyLmN1cnJlbnRWaWV3fSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24oaSl7dmFyIGE9TXMoaSk7aWYoYS5odHRwU3RhdHVzPW4uc3RhdHVzLHFzKGEpKXJldHVybiBjb25zb2xlLmxvZygiW3dhbmRdIHNlbmRJbnB1dERpcmVjdDogc2Vzc2lvbiB1bmF2YWlsYWJsZSwgZHJvcHBpbmciLHtzZXNzaW9uSWQ6dCxlcnJvckNvZGU6YS5lcnJvckNvZGV9KSxudWxsO3Rocm93IGF9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4mJm4uaWQmJihYKG4pLG4uaWQ9PT1yLnNlbGVjdGVkSWQmJihuLm1lc3NhZ2VzJiZuLm1lc3NhZ2VzLmxlbmd0aD4wJiYoci5jdXJyZW50TWVzc2FnZXM9bi5tZXNzYWdlcyksVmUoITApKSksbn0pfWZ1bmN0aW9uIEdhKCl7aWYoci5zZWxlY3RlZElkKXt2YXIgZT1yLnNlbGVjdGVkSWQ7TWEoRWUoInN0b3AuY29uZmlybS5tZXNzYWdlIikse3RpdGxlOkVlKCJzdG9wLmNvbmZpcm0udGl0bGUiKSxkYW5nZXI6ITAsb2tMYWJlbDpFZSgic3RvcC5jb25maXJtLm9rIiksY2FuY2VsTGFiZWw6RWUoInN0b3AuY29uZmlybS5jYW5jZWwiKX0pLnRoZW4oZnVuY3Rpb24odCl7dCYmci5zZWxlY3RlZElkPT09ZSYmZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlKyIvc3RvcCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oT3QpfSl9fWZ1bmN0aW9uIFFhKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zZXNzaW9uLWl0ZW1bZGF0YS1zZXNzaW9uLWlkPSInK2UrJyJdJyk7dCYmdC5jbGFzc0xpc3QuYWRkKCJkZWxldGluZyIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2Use21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO3JldHVybiByLnNlbGVjdGVkSWQ9PT1lJiYoci5zZWxlY3RlZElkPW51bGwsaGUoKSksT3QoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJkZWxldGluZyIpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtIZShuLCJcdTY1RTBcdTZDRDVcdTUyMjBcdTk2NjRcdTRGMUFcdThCRERcdTMwMDIiKX0pfSwyNTApfWZ1bmN0aW9uIFJzKGUsdCl7dCYmdC5jbGFzc0xpc3QuYWRkKCJkZWxldGluZyIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeS8iK2VuY29kZVVSSUNvbXBvbmVudChlKSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil0aHJvdyBuZXcgRXJyb3Iobi5lcnJvcik7ci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkuY2xhdWRlU2Vzc2lvbklkIT09ZX0pLGRlbGV0ZSByLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkc1tlXSxwZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImRlbGV0aW5nIik7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO0hlKG4sIlx1NjVFMFx1NkNENVx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERFx1MzAwMiIpfSl9LDI1MCl9ZnVuY3Rpb24gcmgoZSx0KXtScyhlLHQpfWZ1bmN0aW9uIG92KGUsdCxuKXtlJiZmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeT9jd2Q9IitlbmNvZGVVUklDb21wb25lbnQoZSkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkmJmkuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGkuZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLmN3ZCE9PWV9KSxwZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtXcyhuLCExKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7SGUoaSwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3NDA2XHU4QkU1XHU3NkVFXHU1RjU1XHU3Njg0XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHUzMDAyIil9KX1mdW5jdGlvbiBXcyhlLHQpe2UuZm9yRWFjaChmdW5jdGlvbihuKXtuLmNsYXNzTGlzdC50b2dnbGUoImRlbGV0aW5nIix0KX0pfWZ1bmN0aW9uIHN2KGUpe3JldHVybiBBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2xhdWRlLWhpc3RvcnktaXRlbVtkYXRhLWN3ZD0iJyt3aW5kb3cuQ1NTLmVzY2FwZShTdHJpbmcoZSkpKyciXScpKX12YXIgenM9bnVsbCxMcj1udWxsO2Z1bmN0aW9uIE1yKCl7aWYoTHIpe0xyLmNsYXNzTGlzdC5yZW1vdmUoInN3aXBlZCIpO3ZhciBlPUxyLnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLWl0ZW0tY29udGVudCIpO2UmJihlLnN0eWxlLnRyYW5zZm9ybT0iIiksTHI9bnVsbH19ZnVuY3Rpb24gbHYoZSl7enM9bnVsbCxMcj1udWxsfWZ1bmN0aW9uIGR2KGUsdCxuKXtlPT09ImNsYXVkZSImJihyLnByZWZlcnJlZENvbW1hbmQ9ZSxyLmNoYXRNb2RlPW10KGUsci5jaGF0TW9kZSkpO3ZhciBpPWU9PT0iY2xhdWRlInx8ZT09PSJjb2RleCI/T3IoZSk6IiI7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDplLGN3ZDp0fHwiIixtb2RlOnIuY2hhdE1vZGV8fHIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsbW9kZWw6aXx8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuZXJyb3I/KG4mJkhlKG4sYS5lcnJvciksbnVsbCk6KHIuc2VsZWN0ZWRJZD1hLmlkLGhlKCksci5kcmFmdHNbYS5pZF09IiIsYSl9KX12YXIgJGE9ITE7ZnVuY3Rpb24gVnMoZSx0KXtyZXR1cm4hZXx8JGE/UHJvbWlzZS5yZXNvbHZlKG51bGwpOigkYT0hMCxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0In0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8odD9IZSh0LG4uZXJyb3IpOkEobi5lcnJvciwiZXJyb3IiKSxudWxsKTooci5zZWxlY3RlZElkPW4uaWQsaGUoKSxyLmRyYWZ0c1tuLmlkXT0iIixuKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERFx1MzAwMiI7cmV0dXJuIHQ/SGUodCxpKTpBKGksImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXskYT0hMX0pKX1mdW5jdGlvbiBpaChlLHQpe3JldHVybiBlP2ZldGNoKCIvYXBpL2NsYXVkZS1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0In0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8odD9IZSh0LG4uZXJyb3IpOkEobi5lcnJvciwiZXJyb3IiKSxudWxsKTooci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkuY2xhdWRlU2Vzc2lvbklkIT09ZX0pLHIuc2VsZWN0ZWRJZD1uLmlkLGhlKCksci5kcmFmdHNbbi5pZF09IiIsbil9KS5jYXRjaChmdW5jdGlvbihuKXt2YXIgaT1uJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYzMDkgQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCBcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiO3JldHVybiB0P0hlKHQsaSk6QShpLCJlcnJvciIpLG51bGx9KTpQcm9taXNlLnJlc29sdmUobnVsbCl9ZnVuY3Rpb24gZm4oZSl7cmV0dXJuIWV8fCFlLmlkP1Byb21pc2UucmVzb2x2ZSgpOihyLnNlbGVjdGVkSWQ9ZS5pZCxoZSgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLHdyKCksd3QoKSxTcihlLmlkKSxYKGUpLHBlKCksUG4oZS5pZCksZ24oZS5pZCkudGhlbihmdW5jdGlvbigpe1B0KCEwKX0pKX1mdW5jdGlvbiBVcyhlKXtyZXR1cm4gVnMoZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdD8odC5jbGF1ZGVTZXNzaW9uSWQmJih0LnByb3ZpZGVyPT09ImNvZGV4Ij9yLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG4uY2xhdWRlU2Vzc2lvbklkIT09dC5jbGF1ZGVTZXNzaW9uSWR9KTpyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5jbGF1ZGVTZXNzaW9uSWQhPT10LmNsYXVkZVNlc3Npb25JZH0pKSxmbih0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSk6bnVsbH0pfWZ1bmN0aW9uIGFoKGUsdCxuKXtyZXR1cm4gZHYoZSx0LG4pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk/Zm4oaSkudGhlbihmdW5jdGlvbigpe3JldHVybiBpfSk6bnVsbH0pfWZ1bmN0aW9uIHVoKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iik7aWYodCl7dC5wbGFjZWhvbGRlcj0iXHU2QjYzXHU1NzI4XHU2MDFEXHU4MDAzXHUyMDI2Iix0LmRpc2FibGVkPSEwO3ZhciBuPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixpPSRlKCksYT1ydCgpLHU9T3IoYSk7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGx0KHtjb21tYW5kOmEsY3dkOmksbW9kZTpuLGluaXRpYWxJbnB1dDplLG1vZGVsOnV8fHZvaWQgMCx0aGlua2luZ0VmZm9ydDpyLmNoYXRUaGlua2luZ3x8dm9pZCAwfSkpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmVycm9yPyhBKG8uZXJyb3IsImVycm9yIiksdC5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIix0LmRpc2FibGVkPSExLG51bGwpOmZuKG8pfSkuY2F0Y2goZnVuY3Rpb24obyl7QShvJiZvLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLHQucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsdC5kaXNhYmxlZD0hMX0pLmZpbmFsbHkoZnVuY3Rpb24oKXt0LnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLHQuZGlzYWJsZWQ9ITF9KX19ZnVuY3Rpb24gb2goZSx0LG4pe3ZhciBpPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixhPSRlKCksdT1ydCgpLG89T3IodSk7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGx0KHtjb21tYW5kOnUsY3dkOmEsbW9kZTppLGluaXRpYWxJbnB1dDplfHx2b2lkIDAsbW9kZWw6b3x8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuZXJyb3I/KEEocy5lcnJvciwiZXJyb3IiKSxudWxsKToodCYmKHQudmFsdWU9IiIpLG4mJihuLnZhbHVlPSIiKSxmbihzKSl9KS5jYXRjaChmdW5jdGlvbihzKXtBKHMmJnMubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIil9KX1mdW5jdGlvbiBjdihlKXtlLmRpc2FibGVkPSEwLFVzKGUuZGF0YXNldC5zZXNzaW9uSWQpLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSl9ZnVuY3Rpb24gZnYoZSl7dmFyIHQ9ZS5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZCxuPWUuZGF0YXNldC5jd2Q7dCYmKGUuZGlzYWJsZWQ9ITAsQWkodCxuKS50aGVuKGZ1bmN0aW9uKGkpe2kmJmkuaWQmJihyLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhdWRlU2Vzc2lvbklkIT09dH0pLHIuc2VsZWN0ZWRJZD1pLmlkLGhlKCksci5kcmFmdHNbaS5pZF09IiIsZm4oaSkudGhlbihmdW5jdGlvbigpe190KCl9KSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ZS5kaXNhYmxlZD0hMX0pKX1mdW5jdGlvbiBBaShlLHQpe3JldHVybiBmZXRjaCgiL2FwaS9jb2RleC1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsY3dkOnR9KSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uZXJyb3I/KEEobi5lcnJvciwiZXJyb3IiKSxudWxsKTpufSkuY2F0Y2goZnVuY3Rpb24obil7cmV0dXJuIEEobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxudWxsfSl9ZnVuY3Rpb24gcHYoZSl7dmFyIHQ9ZS5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZDt0JiZBbigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU4RkQ5XHU2NzYxIENvZGV4IFx1NEYxQVx1OEJERFx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQifSkudGhlbihmdW5jdGlvbihuKXtpZihuKXt2YXIgaT1lLmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpJiYoaS5zdHlsZS5vcGFjaXR5PSIwLjUiKSxmZXRjaCgiL2FwaS9jb2RleC1oaXN0b3J5LyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXthJiZhLm9rPyhyLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuY2xhdWRlU2Vzc2lvbklkIT09dH0pLHBlKCkpOmkmJihpLnN0eWxlLm9wYWNpdHk9IjEiKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aSYmKGkuc3R5bGUub3BhY2l0eT0iMSIpfSl9fSl9ZnVuY3Rpb24gdnYoZSl7dmFyIHQ9ZS5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZCxuPWUuZGF0YXNldC5jd2Q7dCYmKGUuZGlzYWJsZWQ9ITAseGkodCxuKS50aGVuKGZ1bmN0aW9uKGkpe2kmJmkuaWQmJihyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsaGUoKSxyLmRyYWZ0c1tpLmlkXT0iIixmbihpKS50aGVuKGZ1bmN0aW9uKCl7X3QoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIHhpKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsY3dkOnR9KSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uZXJyb3I/KEEobi5lcnJvciwiZXJyb3IiKSxudWxsKTpufSkuY2F0Y2goZnVuY3Rpb24obil7cmV0dXJuIEEobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxudWxsfSl9ZnVuY3Rpb24gcXIoKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8bmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjB9ZnVuY3Rpb24gUHQoZSl7aWYoIXIudGVybWluYWxJbnRlcmFjdGl2ZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpOyF0fHwhci5zZWxlY3RlZElkfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmKGUmJnFyKCl8fFhhKHQpKX19ZnVuY3Rpb24gc2goKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO2UmJihlLnNjcm9sbFRvcD0wKX1mdW5jdGlvbiBLcygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0ta2V5Ym9hcmQtb2Zmc2V0Iil9ZnVuY3Rpb24gSnMoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlJiZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWtleWJvYXJkLW9mZnNldCIpfWZ1bmN0aW9uIFNpKGUpe2lmKGUpe3ZhciB0PWUuc2VsZWN0aW9uU3RhcnQsbj1lLnNlbGVjdGlvbkVuZDtJaShlKSx0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBuPT0ibnVtYmVyIiYmZS5zZXRTZWxlY3Rpb25SYW5nZSh0LG4pfX1mdW5jdGlvbiBZcyhlKXshZXx8ZS5kYXRhc2V0LnRvdWNoU2Nyb2xsQm91bmQ9PT0idHJ1ZSJ8fChlLmRhdGFzZXQudG91Y2hTY3JvbGxCb3VuZD0idHJ1ZSIsZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbigpe2Uuc2Nyb2xsSGVpZ2h0PD1lLmNsaWVudEhlaWdodCsxfHwoZS5zY3JvbGxUb3A8PTA/ZS5zY3JvbGxUb3A9MTplLnNjcm9sbFRvcCtlLmNsaWVudEhlaWdodD49ZS5zY3JvbGxIZWlnaHQmJihlLnNjcm9sbFRvcD1NYXRoLm1heCgxLGUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LTEpKSl9LHtwYXNzaXZlOiEwfSkpfWZ1bmN0aW9uIEdzKGUpe2UmJihDdChlKSxTaShlKSl9ZnVuY3Rpb24gbXYoZSl7dmFyIHQ9ZSYmZS50YXJnZXQ/ZS50YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO3QmJihLcygpLEdzKHQpKX1mdW5jdGlvbiBndihlKXt2YXIgdD1lJiZlLnRhcmdldD9lLnRhcmdldDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7SnMoKSxHbygyMjAwLHQpO3ZhciBuPVs4MCwyMDAsMzgwLDYyMCw5MDBdO24uZm9yRWFjaChmdW5jdGlvbihpLGEpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtVbighMSksYT09PTEmJnFyKCkmJihRZSgia2V5Ym9hcmQtYmx1ciIse2ZvcmNlUmVwbGF5OiEwfSkscHQoImtleWJvYXJkIikpfSxpKX0pfWZ1bmN0aW9uIGh2KGUpe2UmJihlLnNldFNlbGVjdGlvblJhbmdlKGUudmFsdWUubGVuZ3RoLGUudmFsdWUubGVuZ3RoKSxTaShlKSl9ZnVuY3Rpb24gWGEoZSl7ZSYmKGUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxodihlKSl9ZnVuY3Rpb24geXYoZSl7WXMoZSksR3MoZSl9ZnVuY3Rpb24gYnYoZSl7WGEoZSl9ZnVuY3Rpb24gbGgoZSl7S3MoKSxTaShlKX1mdW5jdGlvbiBFdigpe0pzKCl9ZnVuY3Rpb24gRnYoZSl7U2koZSl9ZnVuY3Rpb24gZGgoZSl7YnYoZSl9ZnVuY3Rpb24gd3YoZSl7eXYoZSl9ZnVuY3Rpb24gY2goKXtFdigpfWZ1bmN0aW9uIGZoKGUpe0Z2KGUpfWZ1bmN0aW9uIEN2KGUsdCl7aWYoIWV8fCF0fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dClyZXR1cm4hMTt2YXIgbj13aW5kb3cuaW5uZXJIZWlnaHQtZS5oZWlnaHQtZS5vZmZzZXRUb3A7aWYobjw9NTApcmV0dXJuITE7dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaS5ib3R0b20+ZS5oZWlnaHQtMTJ9ZnVuY3Rpb24gSWkoZSl7aWYoZSl7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQ+ZS5jbGllbnRIZWlnaHQrMTtpZighdCl7ZS5zY3JvbGxUb3A9MDtyZXR1cm59ZS5zY3JvbGxUb3A9ZS5zY3JvbGxIZWlnaHR9fWZ1bmN0aW9uIFFzKCl7aWYoci50ZXJtaW5hbEludGVyYWN0aXZlKXskcygpO3JldHVybn1pZighcXIoKSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpOyFlfHwhci5zZWxlY3RlZElkfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZXx8WGEoZSl9fWZ1bmN0aW9uICRzKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2UmJihlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksZS5mb2N1cygpLHIudGVybWluYWwmJnIudGVybWluYWwuZm9jdXMmJnIudGVybWluYWwuZm9jdXMoKSl9ZnVuY3Rpb24gQnYoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7aWYoInZpcnR1YWxLZXlib2FyZCJpbiBuYXZpZ2F0b3Ipe3ZhciBuPW5hdmlnYXRvci52aXJ0dWFsS2V5Ym9hcmQ7bi5hZGRFdmVudExpc3RlbmVyKCJnZW9tZXRyeWNoYW5nZSIsZnVuY3Rpb24oKXtlJiZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIpfSl9dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7UXMoKX0pLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciB1PWEudGFyZ2V0O3UudGFnTmFtZSE9PSJBIiYmdS50YWdOYW1lIT09IkJVVFRPTiImJiF1LmNsb3Nlc3QoImJ1dHRvbiIpJiYhdS5jbG9zZXN0KCJbZGF0YS10b29sLXRvZ2dsZV0iKSYmUXMoKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXtpZihxcigpKXt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYoISghdXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXUpKXt2YXIgbz1hLnRhcmdldDshb3x8dHlwZW9mIG8uY2xvc2VzdCE9ImZ1bmN0aW9uInx8by5jbG9zZXN0KCIuaW5wdXQtcGFuZWwiKXx8by5jbG9zZXN0KCIjbWluaS1rZXlib2FyZCIpfHxvLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkLWZhYiIpfHxvLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkLXRvZ2dsZSIpfHxvLmNsb3Nlc3QoIiN0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUiKXx8by5jbG9zZXN0KCIud2FuZC1qb3lzdGljay1yb290Iil8fHUuYmx1cigpfX19LCEwKX1mdW5jdGlvbiBaYSgpe3RyeXt3aW5kb3cuc2Nyb2xsVG8oMCwwKX1jYXRjaHt9ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCYmKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wPTApLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9MCksZG9jdW1lbnQuYm9keSYmKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPTApfWZ1bmN0aW9uIFZlKGUpe3IucmVuZGVyUGVuZGluZyYmIWV8fChyLnJlbmRlclBlbmRpbmc9ITAsZT8oVGkoITApLHIucmVuZGVyUGVuZGluZz0hMSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7VGkoITEpLHIucmVuZGVyUGVuZGluZz0hMX0pKX1yLmNoYXRSZW5kZXJUaW1lcj1udWxsO2Z1bmN0aW9uIGV1KGUpe2lmKCEoci5jaGF0UmVuZGVyVGltZXImJiFlKSl7aWYoci5jaGF0UmVuZGVyVGltZXImJmNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksZSl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbCxWZSgpO3JldHVybn10cnl7d2luZG93Ll9fc2NoZWR1bGVDaGF0UmVuZGVyPWZ1bmN0aW9uKCl7ZXUoITApfX1jYXRjaHt9dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnN0YXR1cz09PSJydW5uaW5nIiYmdC5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIixpPW4/b3M6c3M7ci5jaGF0UmVuZGVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2hhdFJlbmRlclRpbWVyPW51bGw7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7YSYmKHIuY3VycmVudE1lc3NhZ2VzPXplKGEsWGUoYSxhLm91dHB1dCwhMCkpKSxWZSgpfSxpKX19ZnVuY3Rpb24gRHYoZSx0KXtpZighZXx8IXR8fHQubGVuZ3RoPT09MClyZXR1cm5bXTtmdW5jdGlvbiBuKEMpe3JldHVybiBDLnJlcGxhY2UoL1x4MUIoPzpbQC1aXFwtX118XFtbMC0/XSpbIC0vXSpbQC1+XSkvZywiIil9Zm9yKHZhciBpPW4oZSksYT1bXSx1PVtdLG89MDtvPHQubGVuZ3RoO28rKylpZih0W29dLnJvbGU9PT0idXNlciIpe3ZhciBzPSIiLGw9dFtvXS5jb250ZW50O2lmKHR5cGVvZiBsPT0ic3RyaW5nIilzPWw7ZWxzZSBpZihBcnJheS5pc0FycmF5KGwpKXtmb3IodmFyIGQ9MDtkPGwubGVuZ3RoO2QrKylpZihsW2RdLnR5cGU9PT0idGV4dCIpe3M9bFtkXS50ZXh0O2JyZWFrfX1zJiZ1LnB1c2goe3RleHQ6cyxpbmRleDpvfSl9Zm9yKHZhciBmPTAsbz0wO288dS5sZW5ndGg7bysrKXt2YXIgYz11W29dLHY9aS5pbmRleE9mKCJcdTI3NkYgIitjLnRleHQsZik7aWYodj09PS0xJiYodj1pLmluZGV4T2YoYApcdTI3NkYgYCtjLnRleHQsZiksdiE9PS0xJiYodis9MSkpLHY+Zil7Zm9yKHZhciBoPWkuc3Vic3RyaW5nKGYsdiksZz1oLnNwbGl0KGAKYCksbT1bXSxkPTA7ZDxnLmxlbmd0aDtkKyspe3ZhciB5PWdbZF0udHJpbSgpOyF5fHx5LnN0YXJ0c1dpdGgoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpfHx5PT09Ilx1Mjc2RiJ8fHk9PT0iPyJ8fHk9PT0iInx8eS5pbmNsdWRlcygiQ2xhdWRlIENvZGUgdiIpfHx5LmluY2x1ZGVzKCJPcHVzIikmJnkuaW5jbHVkZXMoIndpdGgiKXx8eS5pbmNsdWRlcygiU29ubmV0IikmJnkuaW5jbHVkZXMoIndpdGgiKXx8eS5pbmNsdWRlcygiQVBJIFVzYWdlIil8fHkuaW5jbHVkZXMoIkJpbGxpbmciKXx8eS5pbmNsdWRlcygiZm9yIHNob3J0Y3V0cyIpfHx5LmluY2x1ZGVzKCIvZWZmb3J0Iil8fHkubWF0Y2goL15b4pa44paQ4pad4paY4paX4paW4paI4paM4paN4paO4paP4paU4paB4paC4paD4paE4paF4paG4paH4paI4paIXS8pfHx5Lm1hdGNoKC9eW+KWuOKWkOKWneKWmOKWl+KWluKWiOKWjOKWjeKWjuKWj+KWlOKWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWiF17Myx9Lyl8fHkubGVuZ3RoPjMmJm0ucHVzaCh5KX1tLmxlbmd0aD4wJiZhLnB1c2goe2JlZm9yZU1lc3NhZ2U6Yy5pbmRleCxjb250ZW50Om0uam9pbihgCmApfSl9Zj12K2MudGV4dC5sZW5ndGgrMn1yZXR1cm4gYX1mdW5jdGlvbiB0dShlKXtpZighZSlyZXR1cm4gbnVsbDt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LW1lc3NhZ2VzIixlLmFwcGVuZENoaWxkKHQpLHQpfWZ1bmN0aW9uIFhzKGUsdCl7dmFyIG49dHUoZSk7cmV0dXJuIG4/KG4uaW5uZXJIVE1MPXQsanQobiksbHIoKSxHZSgpLG4pOm51bGx9ZnVuY3Rpb24gVGkoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7aWYoIXQpcmV0dXJuO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbigkKXtyZXR1cm4gJC5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCFuKXtyLmxhc3RSZW5kZXJlZEVtcHR5IT09Im5vbmUiJiYoWHModCwnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREPC9zdHJvbmc+PGJyPlx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQlx1NEY2MFx1NzY4NFx1N0IyQ1x1NEUwMFx1NkIyMVx1NUJGOVx1OEJERFx1MzAwMjwvZGl2PicpLHIubGFzdFJlbmRlcmVkRW1wdHk9Im5vbmUiLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MCk7cmV0dXJufXZhciBpPXIuY3VycmVudE1lc3NhZ2VzLGE9ZW0oaSk7aWYoaXU9dG0oaSksaS5sZW5ndGg9PT0wKXtpZihyLmxhc3RSZW5kZXJlZEVtcHR5IT09ImVtcHR5Iil7dmFyIHU9IiI7dWUobikmJih1PSc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS10cmlvLXdyYXAiPjxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLXRyaW8taGludCI+XHU5RUQ4XHU4QkE0XHU0RjFBXHU2MzA5XHU0RUU1XHU0RTBCXHU4QkJFXHU3RjZFXHU1M0QxXHU5MDAxXHVGRjBDXHU1M0VGXHU3MEI5XHU1MUZCXHU4QzAzXHU2NTc0XHVGRjFBPC9kaXY+JytBbChuLHtraW5kOiJkcm9wZG93biJ9KSsiPC9kaXY+IiksWHModCwnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU1QkY5XHU4QkREXHU1REYyXHU1RjAwXHU1OUNCPC9zdHJvbmc+PGJyPlx1NTcyOFx1NEUwQlx1NjVCOVx1OEY5M1x1NTE2NVx1Njg0Nlx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1RkYwQ0NsYXVkZSBcdTRGMUFcdTgxRUFcdTUyQThcdTU2REVcdTU5MERcdTMwMDI8L2Rpdj4nK3UpLHIubGFzdFJlbmRlcmVkRW1wdHk9ImVtcHR5IixyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PTB9UHUobnVsbCxuKSxydShbXSk7cmV0dXJufXZhciBvPWkubGVuZ3RoO28+ci5jaGF0UmVuZGVyZWRDb3VudCYmKHIuY2hhdFJlbmRlcmVkQ291bnQ9byk7dmFyIHM9TWF0aC5tYXgoMCxvLXIuY2hhdFJlbmRlcmVkQ291bnQpLGw9cz4wP2kuc2xpY2Uocyk6aSxkPXR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZuLm1lc3NhZ2VPZmZzZXQ+MCxmPXM+MHx8ZCxjPWwubGVuZ3RoLHY9bi5vdXRwdXQ/bi5vdXRwdXQubGVuZ3RoOjA7aWYobi5tZXNzYWdlcyYmbi5tZXNzYWdlcy5sZW5ndGg+MCl7Zm9yKHZhciBoPTAsZz0wLG09MDttPG4ubWVzc2FnZXMubGVuZ3RoO20rKyl7dmFyIHk9bi5tZXNzYWdlc1ttXS5jb250ZW50O2lmKHkpaWYoQXJyYXkuaXNBcnJheSh5KSl7aCs9eS5sZW5ndGg7Zm9yKHZhciBDPTA7Qzx5Lmxlbmd0aDtDKyspe3ZhciBFPXlbQ107RS50ZXh0JiYoZys9RS50ZXh0Lmxlbmd0aCksRS50aGlua2luZyYmKGcrPUUudGhpbmtpbmcubGVuZ3RoKSxFLmNvbnRlbnQmJihnKz1FLmNvbnRlbnQubGVuZ3RoKSxFLmlkJiYoZys9RS5pZC5sZW5ndGgpLEUudG9vbF91c2VfaWQmJihnKz1FLnRvb2xfdXNlX2lkLmxlbmd0aCksRS5kZXNjcmlwdGlvbiYmKGcrPUUuZGVzY3JpcHRpb24ubGVuZ3RoKSxFLmlucHV0JiYoZys9SlNPTi5zdHJpbmdpZnkoRS5pbnB1dCkubGVuZ3RoKX1pZihuLm1lc3NhZ2VzW21dLnVzYWdlKXt2YXIgQj1uLm1lc3NhZ2VzW21dLnVzYWdlO2crPShCLmlucHV0VG9rZW5zfHwwKSsoQi5vdXRwdXRUb2tlbnN8fDApKyhCLmNhY2hlUmVhZElucHV0VG9rZW5zfHwwKSsoQi5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnN8fDApKyhCLnJlYXNvbmluZ091dHB1dFRva2Vuc3x8MCkrTWF0aC5yb3VuZCgoQi50b3RhbENvc3RVc2R8fDApKjFlNikrKEIuZXN0aW1hdGVkPT09ITA/MTowKX19ZWxzZSBoKz0xLGc9U3RyaW5nKHkpLmxlbmd0aH12PWMqMWU1K2gqMWUzK2d9dmFyIEQ9ZXx8YyE9PXIubGFzdFJlbmRlcmVkTXNnQ291bnQ7aWYoIUQmJmM9PT1yLmxhc3RSZW5kZXJlZE1zZ0NvdW50JiZ2PT09ci5sYXN0UmVuZGVyZWRIYXNoKXt2YXIgRj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7RiYmUHUoRixuKSxydShpKTtyZXR1cm59dmFyIEk9ci5sYXN0UmVuZGVyZWRIYXNoLEw9ci5sYXN0UmVuZGVyZWRNc2dDb3VudDtpZihyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PWMsci5sYXN0UmVuZGVyZWRIYXNoPXYsRj10dSh0KSwhRilyZXR1cm47dmFyIEg9b2EoRiksVT0hci5jaGF0SW5pdGlhbFJlbmRlckRvbmUseD1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKS5sZW5ndGgsaz1EfHx4PT09MHx8YyE9PXg7ZnVuY3Rpb24gVCgpe2Zvcih2YXIgJD1EdihuLm91dHB1dCxsKSxmZT0iIixDZT1sLnNsaWNlKCkucmV2ZXJzZSgpLEJlPWwubGVuZ3RoLHZlPTA7dmU8Q2UubGVuZ3RoO3ZlKyspe2Zvcih2YXIgRmU9Q2VbdmVdLGV0PUJlLTEtdmUsZHQ9ZXQrcyxpdD1udWxsLE5lPTA7TmU8JC5sZW5ndGg7TmUrKylpZigkW05lXS5iZWZvcmVNZXNzYWdlPT09ZXQpe2l0PSRbTmVdO2JyZWFrfWl0JiYoZmUrPSc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2Ugc3lzdGVtLWluZm8iPjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWNhcmQiPjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWhlYWRlciI+XHUyMTM5XHVGRTBGIFx1N0NGQlx1N0VERlx1NEZFMVx1NjA2RjwvZGl2PjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWNvbnRlbnQiPicrcChpdC5jb250ZW50KSsiPC9kaXY+PC9kaXY+PC9kaXY+IiksZmUrPXV1KEZlLE1bZHRdfHxudWxsLGR0LGEpfWlmKGYpe3ZhciBSdD1zPjA/Ilx1NTJBMFx1OEY3RFx1NjZGNFx1NjVFOVx1NzY4NCAiK01hdGgubWluKHIuY2hhdFBhZ2VTaXplLHMpKyIgXHU2NzYxXHU2RDg4XHU2MDZGIjoiXHU1MkEwXHU4RjdEXHU2NkY0XHU2NUU5XHU3Njg0XHU2RDg4XHU2MDZGIjtmZSs9JzxkaXYgY2xhc3M9ImNoYXQtbG9hZC1tb3JlIiBpZD0iY2hhdC1sb2FkLW1vcmUtc2VudGluZWwiPjxidXR0b24gY2xhc3M9ImNoYXQtbG9hZC1tb3JlLWJ0biIgdHlwZT0iYnV0dG9uIj4nK1J0KyI8L2J1dHRvbj48L2Rpdj4ifXZhciBZZT0tMSxEZT0wO2lmKHg+MCYmIUgpZm9yKHZhciBQZT1GLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCx0ZT1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSx3ZT0wO3dlPHRlLmxlbmd0aDt3ZSsrKXt2YXIgdz10ZVt3ZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYody5ib3R0b20+PVBlKXt2YXIgYXQ9dGVbd2VdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTthdCE9bnVsbCYmKFllPXBhcnNlSW50KGF0LDEwKSxEZT13LnRvcC1QZSk7YnJlYWt9fWlmKEYuaW5uZXJIVE1MPWZlLChmdW5jdGlvbigpe2Zvcih2YXIgV3Q9Ri5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIiksenQ9V3QubGVuZ3RoLFRlPTA7VGU8enQ7VGUrKylXdFtUZV0uc2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIsU3RyaW5nKHMrenQtMS1UZSkpfSkoKSxqdChGKSxMPT09MCYmIXIuY2hhdEluaXRpYWxSZW5kZXJEb25lKUYuc2Nyb2xsVG9wPTAsci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxDbih7cmVtb3ZlRGl2aWRlcjohMH0pLHIuY2hhdEluaXRpYWxSZW5kZXJEb25lPSEwO2Vsc2UgaWYoTD09PTAmJnIuY2hhdFN0aWNrVG9Cb3R0b20pRi5zY3JvbGxUb3A9MDtlbHNlIGlmKEgpRi5zY3JvbGxUb3A9MDtlbHNlIGlmKFllPj0wKXt2YXIga3Q9Ri5xdWVyeVNlbGVjdG9yKCcuY2hhdC1tZXNzYWdlW2RhdGEtbXNnLWluZGV4PSInK1llKyciXScpO2lmKGt0KXt2YXIgdXQ9Ri5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsWnQ9a3QuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksQXQ9WnQudG9wLXV0LURlO01hdGguYWJzKEF0KT4uNSYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLEYuc2Nyb2xsVG9wKz1BdCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKX19WnMoRiksbHIoKSxmYShGKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtzYShGKSxHZSgpLENkKCl9KX12YXIgTT17fTtpZigoZnVuY3Rpb24oKXtmb3IodmFyICQ9e2lucHV0VG9rZW5zOjAsb3V0cHV0VG9rZW5zOjAsY2FjaGVSZWFkSW5wdXRUb2tlbnM6MCxjYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnM6MCxyZWFzb25pbmdPdXRwdXRUb2tlbnM6MCx0b3RhbENvc3RVc2Q6MCxlc3RpbWF0ZWQ6ITF9LGZlPSExLENlPS0xLEJlPTA7QmU8aS5sZW5ndGg7QmUrKyl7dmFyIHZlPWlbQmVdO2lmKHZlLnJvbGU9PT0idXNlciIpQ2U+PTAmJmZlJiYoTVtDZV09JCksJD17aW5wdXRUb2tlbnM6MCxvdXRwdXRUb2tlbnM6MCxjYWNoZVJlYWRJbnB1dFRva2VuczowLGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczowLHJlYXNvbmluZ091dHB1dFRva2VuczowLHRvdGFsQ29zdFVzZDowLGVzdGltYXRlZDohMX0sZmU9ITEsQ2U9LTE7ZWxzZSBpZih2ZS5yb2xlPT09ImFzc2lzdGFudCImJnZlLnVzYWdlKXt2YXIgRmU9dmUudXNhZ2U7ZmU9ITAsJC5pbnB1dFRva2Vucys9RmUuaW5wdXRUb2tlbnN8fDAsJC5vdXRwdXRUb2tlbnMrPUZlLm91dHB1dFRva2Vuc3x8MCwkLmNhY2hlUmVhZElucHV0VG9rZW5zKz1GZS5jYWNoZVJlYWRJbnB1dFRva2Vuc3x8MCwkLmNhY2hlQ3JlYXRpb25JbnB1dFRva2Vucys9RmUuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zfHwwLCQucmVhc29uaW5nT3V0cHV0VG9rZW5zKz1GZS5yZWFzb25pbmdPdXRwdXRUb2tlbnN8fDAsJC50b3RhbENvc3RVc2QrPUZlLnRvdGFsQ29zdFVzZHx8MCwkLmVzdGltYXRlZD0kLmVzdGltYXRlZHx8RmUuZXN0aW1hdGVkPT09ITAsQ2U9QmV9ZWxzZSB2ZS5yb2xlPT09ImFzc2lzdGFudCImJihDZT1CZSl9Q2U+PTAmJmZlJiYoTVtDZV09JCl9KSgpLGspVCgpO2Vsc2UgaWYoYz54KXt2YXIgWT1sLnNsaWNlKHgpO1kucmV2ZXJzZSgpO2Zvcih2YXIgej1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksUT1bXSxsZT1bXSxlZT1zK3gsWj0wO1o8WS5sZW5ndGg7WisrKXt2YXIgcT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxPPXMreCsoWS5sZW5ndGgtMS1aKTtxLmlubmVySFRNTD11dShZW1pdLE1bT118fG51bGwsTyxhKTt2YXIgTj1xLmZpcnN0RWxlbWVudENoaWxkO04mJihOLmNsYXNzTGlzdC5hZGQoImFuaW1hdGUtaW4iKSxOLnNldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiLFN0cmluZyhPKSksUS5wdXNoKE4pLGxlLnB1c2goTyksei5hcHBlbmRDaGlsZChOKSl9Ri5pbnNlcnRCZWZvcmUoeixGLmZpcnN0Q2hpbGQpLGxyKCksWnMoRiksZmEoRiksSD9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtGLmlzQ29ubmVjdGVkJiZNYXRoLmFicyhGLnNjcm9sbFRvcCk+MSYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLEYuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksQ24oe3JlbW92ZURpdmlkZXI6ITB9KSxHZSgpfSk6KHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg8MCYmKHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9ZWUpLHIuY2hhdFVucmVhZENvdW50Kz1RLmxlbmd0aCxzYShGKSxHZSgpKX1lbHNlIGlmKGM9PT14JiZ2IT09SSl7Zm9yKHZhciBHPUFycmF5LmZyb20oRi5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIikpLEo9bC5zbGljZSgpLnJldmVyc2UoKSxuZT0hMSxkZT1NYXRoLm1pbig0LEoubGVuZ3RoLEcubGVuZ3RoKSxyZT0wO3JlPGRlO3JlKyspe3ZhciBpZT1HW3JlXSxxZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxnZT1zK0oubGVuZ3RoLTEtcmU7cWUuaW5uZXJIVE1MPXV1KEpbcmVdLE1bZ2VdfHxudWxsLGdlLGEpO3ZhciBjZT1xZS5maXJzdEVsZW1lbnRDaGlsZDtpZihjZSl7aWYoaWUuaW5uZXJIVE1MIT09Y2UuaW5uZXJIVE1MfHxpZS5jbGFzc05hbWUhPT1jZS5jbGFzc05hbWUpRi5yZXBsYWNlQ2hpbGQoY2UsaWUpLHh2KGNlKSxuZT0hMDtlbHNlIGlmKHJlPjApYnJlYWt9fWlmKCFuZSYmSi5sZW5ndGg+ZGUmJlQoKSxuZSl7bHIoKSxmYShGKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtIJiZGLmlzQ29ubmVjdGVkJiZNYXRoLmFicyhGLnNjcm9sbFRvcCk+MSYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLEYuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksc2EoRiksR2UoKX0pO3ZhciBSPUYucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZSIpLGh0PUYucXVlcnlTZWxlY3RvckFsbCgiLnRvb2wtdXNlLWNhcmQsIC5pbmxpbmUtZGlmZltkYXRhLWV4cGFuZC1rZXldIiksX2U9bnVsbDtodC5mb3JFYWNoKGZ1bmN0aW9uKCQpe3ZhciBmZT1jYSgkKTtidChmZSk9PT1udWxsJiYoJC5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyIikmJiEkLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXItYW5zd2VyZWQiKXx8KFImJlIuY29udGFpbnMoJCk/X2U/JC5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKTpfZT0kOiQuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIikpKX0pfX1lbHNlIGM8eCYmVCgpO1NmKEYpLFp2KEYsbiksSnYodCxGLGksVSksUHUoRixuKSxydShpKX12YXIgbnU9ITE7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe3ZhciB0PWUudGFyZ2V0O2lmKCEoIXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpKSl7dmFyIG49dC5jbG9zZXN0KCIjdG9kby1wcm9ncmVzcy10b2dnbGUiKTtpZihuKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxudT0hbnU7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWJvZHkiKTtpJiZhJiYobnU/KGkuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKSxhLmNsYXNzTGlzdC5hZGQoImV4cGFuZGVkIikpOihpLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZGVkIiksYS5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmRlZCIpKSksTGkoKX19fSk7ZnVuY3Rpb24gTGkoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hhdC1vdXRwdXQgLmNoYXQtbWVzc2FnZXMiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWJvZHkiKTtpZighKCFlfHwhdCkpe3ZhciBuPWUsaT0hdC5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpLGE9dC5jbGFzc0xpc3QuY29udGFpbnMoImV4cGFuZGVkIiksdT10Lm9mZnNldEhlaWdodDtpJiZhJiZ1PjA/bi5zdHlsZS5wYWRkaW5nQm90dG9tPXUrOCsicHgiOm4uc3R5bGUucGFkZGluZ0JvdHRvbT0iIn19ZnVuY3Rpb24ga3YoZSl7aWYodHlwZW9mIGU9PSJzdHJpbmciKXJldHVybiBlO2lmKEFycmF5LmlzQXJyYXkoZSkpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07dHlwZW9mIGk9PSJzdHJpbmciP3QucHVzaChpKTppJiZ0eXBlb2YgaS50ZXh0PT0ic3RyaW5nIiYmdC5wdXNoKGkudGV4dCl9cmV0dXJuIHQuam9pbigiIil9cmV0dXJuIiJ9ZnVuY3Rpb24gQXYoZSx0KXtmb3IodmFyIG49e30saT10O2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldO2lmKCEoIWF8fCFBcnJheS5pc0FycmF5KGEuY29udGVudCkpKWZvcih2YXIgdT0wO3U8YS5jb250ZW50Lmxlbmd0aDt1Kyspe3ZhciBvPWEuY29udGVudFt1XTtvJiZvLnR5cGU9PT0idG9vbF9yZXN1bHQiJiZvLnRvb2xfdXNlX2lkJiYobltvLnRvb2xfdXNlX2lkXT1rdihvLmNvbnRlbnQpKX19Zm9yKHZhciBzPXt9LGw9MCxkPTAsZj0hMSxjPXQ7YzxlLmxlbmd0aDtjKyspe3ZhciB2PWVbY107aWYoISghdnx8IUFycmF5LmlzQXJyYXkodi5jb250ZW50KSkpZm9yKHZhciBoPTA7aDx2LmNvbnRlbnQubGVuZ3RoO2grKyl7dmFyIGc9di5jb250ZW50W2hdO2lmKCEoIWd8fGcudHlwZSE9PSJ0b29sX3VzZSIpKXt2YXIgbT1nLmlucHV0fHx7fTtpZihnLm5hbWU9PT0iVGFza0NyZWF0ZSIpe2Y9ITAsZCsrO3ZhciB5PW5bZy5pZF18fCIiLEM9eS5tYXRjaCgvIyhcZCspLyksRT1DP0NbMV06U3RyaW5nKGQpO3NbRV09e2lkOkUsY29udGVudDptLnN1YmplY3R8fCIiLGFjdGl2ZUZvcm06bS5hY3RpdmVGb3JtfHwiIixzdGF0dXM6InBlbmRpbmciLG9yZGVyOmwrK319ZWxzZSBpZihnLm5hbWU9PT0iVGFza1VwZGF0ZSIpe2Y9ITA7dmFyIEI9U3RyaW5nKG0udGFza0lkKSxEPXNbQl07RHx8KEQ9e2lkOkIsY29udGVudDoiIixhY3RpdmVGb3JtOiIiLHN0YXR1czoicGVuZGluZyIsb3JkZXI6bCsrfSxzW0JdPUQpLG0uc3RhdHVzJiYoRC5zdGF0dXM9bS5zdGF0dXMpLG0uc3ViamVjdCYmKEQuY29udGVudD1tLnN1YmplY3QpLG0uYWN0aXZlRm9ybSYmKEQuYWN0aXZlRm9ybT1tLmFjdGl2ZUZvcm0pfX19fWlmKCFmKXJldHVybiBudWxsO3ZhciBGPVtdO2Zvcih2YXIgSSBpbiBzKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLEkpJiZzW0ldLnN0YXR1cyE9PSJkZWxldGVkIiYmRi5wdXNoKHNbSV0pO3JldHVybiBGLnNvcnQoZnVuY3Rpb24oTCxIKXtyZXR1cm4gTC5vcmRlci1ILm9yZGVyfSksRi5sZW5ndGg/RjpudWxsfWZ1bmN0aW9uIHJ1KGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGgtMTtuPj0wO24tLSlpZihlW25dJiZlW25dLnJvbGU9PT0idXNlciIpe3Q9bisxO2JyZWFrfWZvcih2YXIgaT1udWxsLGE9ZS5sZW5ndGgtMTthPj10O2EtLSl7dmFyIHU9ZVthXTtpZighKCF1LmNvbnRlbnR8fCFBcnJheS5pc0FycmF5KHUuY29udGVudCkpKXtmb3IodmFyIG89dS5jb250ZW50Lmxlbmd0aC0xO28+PTA7by0tKXt2YXIgcz11LmNvbnRlbnRbb107aWYocy50eXBlPT09InRvb2xfdXNlIiYmcy5uYW1lPT09IlRvZG9Xcml0ZSImJnMuaW5wdXQmJnMuaW5wdXQudG9kb3Mpe2k9cy5pbnB1dC50b2RvczticmVha319aWYoaSlicmVha319aXx8KGk9QXYoZSx0KSk7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MiKSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWJvZHkiKTtpZihsKXtpZighaXx8aS5sZW5ndGg9PT0wKXtsLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGQmJmQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksTGkoKTtyZXR1cm59Zm9yKHZhciBmPTAsYz0wLHY9IiIsaD0wO2g8aS5sZW5ndGg7aCsrKWlbaF0uc3RhdHVzPT09ImNvbXBsZXRlZCImJmYrKyxpW2hdLnN0YXR1cz09PSJpbl9wcm9ncmVzcyImJihjKyssdnx8KHY9aVtoXS5hY3RpdmVGb3JtfHxpW2hdLmNvbnRlbnR8fCIiKSk7dmFyIGc9Zj09PWkubGVuZ3RoLG09ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHope3JldHVybiB6LmlkPT09ci5zZWxlY3RlZElkfSkseT0hIW0mJm0uc3RhdHVzPT09InJ1bm5pbmciO2lmKCF5fHxnKXtsLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGQmJmQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksTGkoKTtyZXR1cm59bC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxsLmNsYXNzTGlzdC5yZW1vdmUoImFsbC1kb25lIiksZCYmZC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgQz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1jb3VudGVyIik7QyYmKEMudGV4dENvbnRlbnQ9ZisiLyIraS5sZW5ndGgpO3ZhciBFPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLXRhc2siKTtpZihFKXtpZighdil7Zm9yKHZhciBCPTA7QjxpLmxlbmd0aDtCKyspaWYoaVtCXS5zdGF0dXM9PT0icGVuZGluZyImJihpW0JdLmFjdGl2ZUZvcm18fGlbQl0uY29udGVudCkpe3Y9aVtCXS5hY3RpdmVGb3JtfHxpW0JdLmNvbnRlbnQ7YnJlYWt9fUUudGV4dENvbnRlbnQ9dnx8Ilx1NTFDNlx1NTkwN1x1NEUyRFx1MjAyNiJ9dmFyIEQ9aS5sZW5ndGg+MD9mL2kubGVuZ3RoOjAsRj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1yaW5nIik7RiYmRi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1wcm9ncmVzcyIsRC50b0ZpeGVkKDMpKTt2YXIgST1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1maWxsIik7SSYmSS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1wcm9ncmVzcyIsRC50b0ZpeGVkKDMpKTt2YXIgTD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcy1saXN0Iik7aWYoTCl7Zm9yKHZhciBIPSIiLFU9MDtVPGkubGVuZ3RoO1UrKyl7dmFyIHg9aVtVXSxrPXguc3RhdHVzfHwicGVuZGluZyIsVD1rPT09ImluX3Byb2dyZXNzIj8iYWN0aXZlIjprPT09ImNvbXBsZXRlZCI/ImRvbmUiOiIiLE09az09PSJpbl9wcm9ncmVzcyI/ImFjdGl2ZSI6az09PSJjb21wbGV0ZWQiPyJkb25lIjoicGVuZGluZyIsWT1rPT09ImNvbXBsZXRlZCI/Ilx1MjcxMyI6az09PSJpbl9wcm9ncmVzcyI/Ilx1MjAzQSI6Ilx1MjVDQiI7SCs9JzxsaSBjbGFzcz0idG9kby1wcm9ncmVzcy1pdGVtICcrVCsnIj48c3BhbiBjbGFzcz0idG9kby1pdGVtLWljb24gJytNKyciPicrWSsiPC9zcGFuPjxzcGFuPiIrcCh4LmNvbnRlbnR8fCIiKSsiPC9zcGFuPjwvbGk+In1MLmlubmVySFRNTD1IfXIuc2VsZWN0ZWRJZCYmSGEoci5zZWxlY3RlZElkKSxMaSgpfX1mdW5jdGlvbiB4dihlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb2RlLWNvcHkiKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIG49dC5jbG9zZXN0KCIuY29kZS1ibG9jayIpLGk9bj9uLnF1ZXJ5U2VsZWN0b3IoImNvZGUiKTpudWxsO2kmJlVyKGkudGV4dENvbnRlbnR8fCIiLG51bGwsZnVuY3Rpb24oKXt0LnRleHRDb250ZW50PSJDb3BpZWQhIix0LmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnRleHRDb250ZW50PSJDb3B5Iix0LmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfSl9KX0pfWZ1bmN0aW9uIFpzKGUpe2UucXVlcnlTZWxlY3RvckFsbCgiLmNvZGUtY29weSIpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dC5jbG9uZU5vZGUoITApO3QucGFyZW50Tm9kZS5yZXBsYWNlQ2hpbGQobix0KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBpPW4uY2xvc2VzdCgiLmNvZGUtYmxvY2siKSxhPWk/aS5xdWVyeVNlbGVjdG9yKCJjb2RlIik6bnVsbDthJiZVcihhLnRleHRDb250ZW50fHwiIixudWxsLGZ1bmN0aW9uKCl7bi50ZXh0Q29udGVudD0iQ29waWVkISIsbi5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi50ZXh0Q29udGVudD0iQ29weSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKX0sMmUzKX0pfSl9KSxTdihlKX12YXIgcGg9e3RpbWVyOm51bGwsYWN0aXZlQnRuOm51bGx9O2Z1bmN0aW9uIFN2KGUpe3ZhciB0PXdpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXM7dCYmZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlIikuZm9yRWFjaChmdW5jdGlvbihuKXtpZighbi5xdWVyeVNlbGVjdG9yKCIubXNnLWNvcHktYnRuIikpe3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZS1idWJibGUiKTtpZihpKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJidXR0b24iKTthLmNsYXNzTmFtZT0ibXNnLWNvcHktYnRuIixhLnRleHRDb250ZW50PSJcdTU5MERcdTUyMzYiLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHUpe3Uuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIG89aS5pbm5lclRleHR8fGkudGV4dENvbnRlbnR8fCIiO1VyKG8udHJpbSgpLG51bGwsZnVuY3Rpb24oKXthLnRleHRDb250ZW50PSJcdTVERjJcdTU5MERcdTUyMzYiLGEuY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dChmdW5jdGlvbigpe2EudGV4dENvbnRlbnQ9Ilx1NTkwRFx1NTIzNiIsYS5jbGFzc0xpc3QucmVtb3ZlKCJjb3BpZWQiKSxhLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0sMTUwMCl9KX0pLG4uYXBwZW5kQ2hpbGQoYSl9fX0pfShmdW5jdGlvbigpe3ZhciB0PXdpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXM7aWYodCl7dmFyIG49bnVsbCxpPTA7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24oYSl7dmFyIHU9YS50YXJnZXQuY2xvc2VzdCgiLmNoYXQtbWVzc2FnZSIpO2lmKHUpe3ZhciBvPXUucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZS1idWJibGUiKTtvJiYoaT1hLnRvdWNoZXNbMF0uY2xpZW50WSxuPXNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgcz11LnF1ZXJ5U2VsZWN0b3IoIi5tc2ctY29weS1idG4iKTtzJiYoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1zZy1jb3B5LWJ0bi52aXNpYmxlIikuZm9yRWFjaChmdW5jdGlvbihsKXtsLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0pLHMuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpKX0sNTAwKSl9fSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsZnVuY3Rpb24oYSl7biYmTWF0aC5hYnMoYS50b3VjaGVzWzBdLmNsaWVudFktaSk+MTAmJihjbGVhclRpbWVvdXQobiksbj1udWxsKX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZnVuY3Rpb24oKXtuJiYoY2xlYXJUaW1lb3V0KG4pLG49bnVsbCl9LHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2EudGFyZ2V0LmNsb3Nlc3QoIi5tc2ctY29weS1idG4iKXx8ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1zZy1jb3B5LWJ0bi52aXNpYmxlIikuZm9yRWFjaChmdW5jdGlvbih1KXt1LmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0pfSl9fSkoKTtmdW5jdGlvbiBJdihlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1TdHJpbmcoZSkudHJpbSgpO3JldHVybiB0PyEhKHQuaW5kZXhPZigiXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwIik9PT0wfHx0PT09Ilx1Mjc2RiJ8fHQ9PT0iXHUyMDNBInx8L15b4pWt4pWw4pSC4pSM4pSU4pSQ4pSY4pSc4pSk4pSs4pS04pS84pSA4pWQXXsyLH0kLy50ZXN0KHQpfHwvXlviloHiloLiloPiloTiloXilobilofilojilpTilpXilo/ilpBdKyQvLnRlc3QodCl8fHQuaW5kZXhPZigiZXNjIHRvIGludGVycnVwdCIpIT09LTF8fHQuaW5kZXhPZigiQ2xhdWRlIENvZGUgdiIpIT09LTF8fC9eU29ubmV0XGIvLnRlc3QodCl8fHQuaW5kZXhPZigiRmFpbGVkIHRvIGluc3RhbGwgQW50aHJvcGljIikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgQ29kZSBoYXMgc3dpdGNoZWQiKSE9PS0xfHx0LmluZGV4T2YoIj8gZm9yIHNob3J0Y3V0cyIpIT09LTF8fHQuaW5kZXhPZigiQ2xhdWRlIGlzIHdhaXRpbmciKSE9PS0xfHx0LmluZGV4T2YoIlt3YW5kXSIpIT09LTF8fHQuaW5kZXhPZigiMDsiKT09PTB8fHQuaW5kZXhPZigiOTsiKT09PTB8fHQuaW5kZXhPZigiY3RybCtnIikhPT0tMXx8dC5pbmRleE9mKCIvZWZmb3J0IikhPT0tMXx8L15Vc2luZyAuKiBmb3IgLiogc2Vzc2lvbi8udGVzdCh0KXx8dC5pbmRleE9mKCJQcmVzcyAiKT09PTAmJnQuaW5kZXhPZigiIGZvciIpIT09LTF8fHQuaW5kZXhPZigidHlwZSAiKT09PTAmJnQuaW5kZXhPZigiIHRvICIpIT09LTF8fHQuaW5kZXhPZigiYXV0byBtb2RlIGlzIHVuYXZhaWxhYmxlIikhPT0tMXx8L01DUCBzZXJ2ZXIuKmZhaWxlZC9pLnRlc3QodCl8fHQuaW5kZXhPZigiR2VybWluYXRpbmciKSE9PS0xfHx0LmluZGV4T2YoIkRvb2RsaW5nIikhPT0tMXx8dC5pbmRleE9mKCJCcmV3aW5nIikhPT0tMXx8dC5pbmRleE9mKCJQZXJtaXNzaW9ucyIpIT09LTEmJnQuaW5kZXhPZigibW9kZSIpIT09LTF8fHQuaW5kZXhPZigiXHUyNUNGIik9PT0wJiZ0LmluZGV4T2YoIlx4QjciKSE9PS0xfHx0LmluZGV4T2YoIls+Iik9PT0wfHx0LmluZGV4T2YoIls8Iik9PT0wfHx0LmluZGV4T2YoIkNhcHR1cmVkIENsYXVkZSBzZXNzaW9uIElEIikhPT0tMXx8L14+X1xzKk9wZW5BSSBDb2RleFxiLy50ZXN0KHQpfHwvXk9wZW5BSSBDb2RleFxiL2kudGVzdCh0KXx8L14obW9kZWx8ZGlyZWN0b3J5KTpccysvaS50ZXN0KHQpfHwvXih0aXB8Y29udGV4dCk6XHMrL2kudGVzdCh0KXx8L153b3JrKHRyZWV8c3BhY2UpOlxzKy9pLnRlc3QodCl8fC9eKGFwcHJvdmFscz98c2FuZGJveHxwcm92aWRlcnxzZXNzaW9uIGlkKTpccysvaS50ZXN0KHQpfHwvXih0aGlua2luZ3x3b3JraW5nKShcLlwuXC584oCmKT8kL2kudGVzdCh0KXx8L15b4oCi4pemwrddXHMrV29ya2luZ1xiL2kudGVzdCh0KXx8L15b4oCi4pemwrddXHMrKFJ1bm5pbmd8UGxhbm5pbmd8QXBwbHlpbmd8UmVhZGluZ3xTZWFyY2hpbmcpXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccysoSW5zcGVjdGluZ3xSZXZpZXdpbmd8U3VtbWFyaXppbmd8RWRpdGluZ3xVcGRhdGluZ3xXcml0aW5nKVxiL2kudGVzdCh0KXx8L15b4oCi4pemwrddXHMrQ29tcGxldGVkXGIvaS50ZXN0KHQpfHwvXihjdHJsfGVudGVyfHRhYnxzaGlmdHxlc2N8YWx0KVwrL2kudGVzdCh0KXx8L1xiKG9wZW58Y2xvc2V8dG9nZ2xlKSAoY2hhdHx0ZXJtaW5hbClcYi9pLnRlc3QodCl8fC9cYihhcHByb3ZlfGRlbnkpXGIuKlxiKHBlcm1pc3Npb258YXBwcm92YWwpXGIvaS50ZXN0KHQpfHwvXih1c2V8cHJlc3MpIC4qICh0b3xmb3IpIC4qL2kudGVzdCh0KXx8L14oPzp0b2tlbnxjb250ZXh0IHdpbmRvd3xyZW1haW5pbmcgY29udGV4dHxjb252ZXJzYXRpb24pOlxzKy9pLnRlc3QodCl8fC9eKD86Y3dkfHBhdGgpOlxzK1wvL2kudGVzdCh0KXx8L15bPD7ilILilIbilY5dLipbPD7ilILilIbilY5dJC8udGVzdCh0KSYmdC5sZW5ndGg8OCk6ITF9ZnVuY3Rpb24gVHYoZSl7cmV0dXJuIFN0cmluZyhlfHwiIikucmVwbGFjZSgvXHgxYlxdW15ceDA3XSooXHgwN3xceDFiXFwpL2csIiIpLnJlcGxhY2UoL1x4MWJcWyhcZCspQy9nLGZ1bmN0aW9uKHQsbil7cmV0dXJuIiAiLnJlcGVhdChOdW1iZXIobil8fDEpfSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbQUJdL2csYApgKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltzdV0vZywiIikucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbSGZKS3JdL2csYApgKS5yZXBsYWNlKC9ceDFiTS9nLGAKYCkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbU1RdL2csYApgKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKlthLXpBLVpdL2csIiIpLnJlcGxhY2UoL1x4MWJbPjw9ZVBYXl9dL2csIiIpLnJlcGxhY2UoL1tcdTAwYTBcdTIwMGItXHUyMDBkXHVmZWZmXS9nLCIgIikucmVwbGFjZSgvW1x4MDAtXHgwOFx4MGJceDBjXHgwZS1ceDFmXS9nLCIiKS5yZXBsYWNlKC9cclxuPy9nLGAKYCkucmVwbGFjZSgvWyBcdF0rXG4vZyxgCmApLnJlcGxhY2UoL1xuezMsfS9nLGAKCmApfWZ1bmN0aW9uIEx2KGUsdCl7dmFyIG49W107aWYoIWUpcmV0dXJuIG47dmFyIGk9U3RyaW5nKGV8fCIiKSxhPWAKYCx1PSJcciIsbz0iXHgxQiI7aWYoL15jb2RleFxiLy50ZXN0KFN0cmluZyh0fHwiIikudHJpbSgpKSl7bGV0IEplPWZ1bmN0aW9uKGope3JldHVybiBTdHJpbmcoanx8IiIpLnJlcGxhY2UoL1x4MWJcXVteXHgwN10qKFx4MDd8XHgxYlxcKS9nLCIiKS5yZXBsYWNlKC9ceDFiXFsoXGQrKUMvZyxmdW5jdGlvbihQLEspe3JldHVybiIgIi5yZXBlYXQoTnVtYmVyKEspfHwxKX0pLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0FCXS9nLGEpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW3N1XS9nLCIiKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltIZkpLcl0vZyxhKS5yZXBsYWNlKC9ceDFiTS9nLGEpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW1NUXS9nLGEpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW2EtekEtWl0vZywiIikucmVwbGFjZSgvXHgxYls+PD1lUFheX10vZywiIikucmVwbGFjZSgvW1x1MDBhMFx1MjAwYi1cdTIwMGRcdWZlZmZdL2csIiAiKS5yZXBsYWNlKC9bXHgwMC1ceDA4XHgwYlx4MGNceDBlLVx4MWZdL2csIiIpLnJlcGxhY2UoL1sgXHRdK1xuL2csYSl9LEFlPWZ1bmN0aW9uKGope3JldHVybiBTdHJpbmcoanx8IiIpLnJlcGxhY2UoL1xzKy9nLCIgIikucmVwbGFjZSgvW01dKyQvZywiIikudHJpbSgpfSxPbj1mdW5jdGlvbihqKXtyZXR1cm4gU3RyaW5nKGp8fCIiKS5yZXBsYWNlKC9e4oC6XHMqLywiIikucmVwbGFjZSgvXj5ccyovLCIiKS50cmltKCl9LGZ0PWZ1bmN0aW9uKGope3ZhciBQPVN0cmluZyhqfHwiIikudHJpbSgpO3JldHVybiEhKCFQfHxJdihQKXx8RS50ZXN0KFApfHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdLy50ZXN0KFApfHwvXlxbPlswLTk7P10qdSQvaS50ZXN0KFApfHwvXk0rJC9pLnRlc3QoUCl8fC9eKD86T3BlbkFJIENvZGV4fENvZGV4KVxiL2kudGVzdChQKXx8L14oPzp0b2tlbnM/fGNvbnRleHQgd2luZG93fHJlbWFpbmluZyBjb250ZXh0fGFwcHJvdmFscz98c2FuZGJveHxwcm92aWRlcnxzZXNzaW9uIGlkKTpccyovaS50ZXN0KFApfHwvXig/OnRoaW5raW5nfHdvcmtpbmcpXHMqKD86XC5cLlwufOKApik/JC9pLnRlc3QoUCl8fC9eW+KAouKXpsK3XVxzKyg/OnRoaW5raW5nfHdvcmtpbmd8cnVubmluZ3xwbGFubmluZ3xhcHBseWluZ3xyZWFkaW5nfHNlYXJjaGluZ3xpbnNwZWN0aW5nfHJldmlld2luZ3xzdW1tYXJpemluZ3xlZGl0aW5nfHVwZGF0aW5nfHdyaXRpbmd8Y29tcGxldGVkKVxiL2kudGVzdChQKXx8L14oPzptb2RlbHxkaXJlY3Rvcnl8dGlwfGNvbnRleHR8Y3dkfHBhdGgpOlxzKy9pLnRlc3QoUCkpfSxlbj1mdW5jdGlvbihqKXt2YXIgUD1TdHJpbmcoanx8IiIpLnRyaW0oKTtpZighL17igLooPzpcc3wkKS8udGVzdChQKXx8RS50ZXN0KFApKXJldHVybiBudWxsO3ZhciBLPUFlKE9uKFApKTtyZXR1cm4hS3x8ZnQoSyk/bnVsbDpLfSx0bj1mdW5jdGlvbihqKXt2YXIgUD1TdHJpbmcoanx8IiIpLnRyaW0oKTtpZighL15b4oCi4pemwrfij7pdLy50ZXN0KFApKXJldHVybiBudWxsO3ZhciBLPVAucmVwbGFjZSgvXlvigKLil6bCt11ccyovLCIiKS5yZXBsYWNlKC9e4o+6XHMrLywiIikucmVwbGFjZSgvXuKUglxzKi8sIiIpLnRyaW0oKTtyZXR1cm4hS3x8L15b4oCi4pemwrfij7pdJC8udGVzdChLKXx8KEs9Sy5yZXBsYWNlKC9ccypcKFxkK1tzbWhdP1xzKuKAolxzKmVzYyB0byBpbnRlcnJ1cHRcKVtcc1xTXSokL2ksIiIpLnJlcGxhY2UoLyg/OlthLXpdezEsNn0pP+KAultcc1xTXSokLywiIikucmVwbGFjZSgvXHN7Mix9Z3B0LVxkW1xzXFNdKiQvaSwiIikucmVwbGFjZSgvXGIoPzpPcGVuQUkgQ29kZXh8bW9kZWw6fGRpcmVjdG9yeTp8VGlwOilcYltcc1xTXSokL2ksIiIpLEs9QWUoSyksIUt8fEsubGVuZ3RoPDJ8fEIudGVzdChLKXx8ZnQoSykpP251bGw6S30sU3Q9ZnVuY3Rpb24oail7dmFyIFA9QWUoaik7cmV0dXJuIVB8fGZ0KFApfHwvXlvigKLil6bCt+KPuuKAul0vLnRlc3QoUCl8fC9eW1xbXF08PjAtOTs/XSt1PyQvaS50ZXN0KFApfHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdLy50ZXN0KFApfHxQLmxlbmd0aD41MDA/bnVsbDpQfSxvZT1mdW5jdGlvbihqLFApe2lmKGouaW5kZXhPZihQKSE9PTApcmV0dXJuITE7dmFyIEs9ai5zbGljZShQLmxlbmd0aCk7cmV0dXJuL15bYS16XXsxLDR9JC9pLnRlc3QoSyl9LExlPWZ1bmN0aW9uKGope2Zvcih2YXIgUD1bXSxLPTA7SzxqLmxlbmd0aDtLKyspe3ZhciBhZT1BZShqW0tdKTtpZighKCFhZXx8YWUubGVuZ3RoPDJ8fGZ0KGFlKSkpe3ZhciBzZT1QW1AubGVuZ3RoLTFdO2lmKCFzZSl7UC5wdXNoKGFlKTtjb250aW51ZX1pZihhZSE9PXNlKXtpZihhZS5pbmRleE9mKHNlKT09PTApe1BbUC5sZW5ndGgtMV09YWU7Y29udGludWV9aWYoc2UuaW5kZXhPZihhZSk9PT0wKXtvZShzZSxhZSkmJihQW1AubGVuZ3RoLTFdPWFlKTtjb250aW51ZX1QLnB1c2goYWUpfX19cmV0dXJuIFAuam9pbihhKS50cmltKCl9LGplPWZ1bmN0aW9uKGope2Zvcih2YXIgUD0wO1A8ai5sZW5ndGg7UCsrKXt2YXIgSz1TdHJpbmcoaltQXXx8IiIpLnRyaW0oKTtpZihLKXt2YXIgYWU9ZW4oSyk7aWYoYWUpcmV0dXJuIGFlO2lmKEs9PT0iXHUyMDNBIilmb3IodmFyIHNlPVArMTtzZTxqLmxlbmd0aDtzZSsrKXt2YXIgeWU9QWUoaltzZV0pO2lmKCEoIXllfHxFLnRlc3QoeWUpfHxmdCh5ZSkpKXJldHVybiB5ZX19fXJldHVybiBudWxsfSx0dD1mdW5jdGlvbihqKXtmb3IodmFyIFA9W10sSz0hMSxhZT0wO2FlPGoubGVuZ3RoO2FlKyspe3ZhciBzZT1TdHJpbmcoalthZV18fCIiKS50cmltKCk7aWYoIXNlKXtpZihLKWJyZWFrO2NvbnRpbnVlfXZhciB5ZT10bihzZSk7aWYoeWUpe1AucHVzaCh5ZSksSz0hMDtjb250aW51ZX1pZihLKXtpZihzZT09PSJcdTIwM0EifHwvXuKAuig/OlxzfCQpLy50ZXN0KHNlKXx8RS50ZXN0KHNlKXx8ZnQoc2UpKWJyZWFrO1AucHVzaChBZShzZSkpfX1yZXR1cm4gUH07Zm9yKHZhciBzPUplLGw9QWUsZD1PbixmPWZ0LGM9ZW4sdj10bixoPVN0LGc9b2UsbT1MZSx5PWplLEM9dHQsRT0vXGJncHQtXGQrKD86XC5cZCspPyg/OlxzK1thLXowLTkuLV0rKT9ccyvCt1xzK1xkKyVccytsZWZ0XHMrwrdccysoPzpcL3x+XC8pLisvaSxCPS9eKD86dGhpbmtpbmd8d29ya2luZ3xydW5uaW5nfHBsYW5uaW5nfGFwcGx5aW5nfHJlYWRpbmd8c2VhcmNoaW5nfGluc3BlY3Rpbmd8cmV2aWV3aW5nfHN1bW1hcml6aW5nfGVkaXRpbmd8dXBkYXRpbmd8d3JpdGluZ3xjb21wbGV0ZWQpXGIvaSxEPVtdLEY9MCxJPWkucmVwbGFjZSgvXHJcbj8vZyxhKS5zcGxpdChhKSxMPTA7TDxJLmxlbmd0aDtMKyspZm9yKHZhciBIPUplKElbTF0pLFU9SC5zcGxpdChhKSx4PTA7eDxVLmxlbmd0aDt4Kyspe3ZhciBrPVN0cmluZyhVW3hdfHwiIikudHJpbSgpO2lmKGspe3ZhciBUPWVuKGspO2lmKFQpe0QucHVzaCh7a2luZDoidXNlciIsb3JkZXI6RisrLHRleHQ6VH0pO2NvbnRpbnVlfXZhciBNPXRuKGspO2lmKE0pe0QucHVzaCh7a2luZDoiYXNzaXN0YW50IixvcmRlcjpGKyssdGV4dDpNfSk7Y29udGludWV9dmFyIFk9U3Qoayk7WSYmRC5wdXNoKHtraW5kOiJlY2hvIixvcmRlcjpGKyssdGV4dDpZfSl9fWZvcih2YXIgej1ELmZpbHRlcihmdW5jdGlvbihqLFAsSyl7dmFyIGFlPUtbUC0xXTtyZXR1cm4hYWV8fGFlLmtpbmQhPT1qLmtpbmR8fGFlLnRleHQhPT1qLnRleHR9KSxRPXouZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiBqLmtpbmQ9PT0idXNlciJ9KSxsZT16LmZpbHRlcihmdW5jdGlvbihqKXtyZXR1cm4gai5raW5kPT09ImFzc2lzdGFudCJ9KSxlZT16LmZpbHRlcihmdW5jdGlvbihqKXtyZXR1cm4gai5raW5kPT09ImVjaG8ifSksWj1UdihpKSxxPVouc3BsaXQoYSkubWFwKGZ1bmN0aW9uKGope3JldHVybiBTdHJpbmcoanx8IiIpLnRyaW1FbmQoKX0pLE89amUocSksTj1RLmxlbmd0aD9RW1EubGVuZ3RoLTFdOm51bGwsRz1lZS5tYXAoZnVuY3Rpb24oail7cmV0dXJuIGoudGV4dH0pLmZpbHRlcihmdW5jdGlvbihqKXtyZXR1cm4gai5sZW5ndGg+PTN9KSxKPW51bGwsbmU9Ry5sZW5ndGgtMTtuZT49MDtuZS0tKWlmKEdbbmVdIT09Tyl7Sj1HW25lXTticmVha30hSiYmRy5sZW5ndGgmJihKPUdbRy5sZW5ndGgtMV0pO2Zvcih2YXIgZGU9Tj9OLnRleHQ6SixyZT1sZS5maWx0ZXIoZnVuY3Rpb24oail7cmV0dXJuIU58fGoub3JkZXI+Ti5vcmRlcn0pLm1hcChmdW5jdGlvbihqKXtyZXR1cm4gai50ZXh0fSksaWU9W10scWU9Wi5tYXRjaCgvXlsgXHRdKlvigKLil6bCt+KPul1bIFx0XSooLispJC9nbSl8fFtdLGdlPTA7Z2U8cWUubGVuZ3RoO2dlKyspe3ZhciBjZT1BZShxZVtnZV0ucmVwbGFjZSgvXlsgXHRdKlvigKLil6bCt+KPul1bIFx0XSovLCIiKSk7Y2UmJihCLnRlc3QoY2UpfHxFLnRlc3QoY2UpfHwvXGIoPzpPcGVuQUkgQ29kZXh8bW9kZWw6fGRpcmVjdG9yeTp8VGlwOnxlc2MgdG8gaW50ZXJydXB0KVxiL2kudGVzdChjZSl8fGllLnB1c2goY2UpKX12YXIgUj1MZShyZSl8fExlKHR0KHEpKXx8KGllLmxlbmd0aD9pZVtpZS5sZW5ndGgtMV06bnVsbCk7cmV0dXJuIGRlJiZuLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6ZGV9KSxSJiZuLnB1c2goe3JvbGU6ImFzc2lzdGFudCIsY29udGVudDpSfSksIW4ubGVuZ3RoJiZOP24ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpOLnRleHR9KTohbi5sZW5ndGgmJkomJm4ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpKfSksbn1mb3IodmFyIGh0PSJcMCIsX2U9IlxiIiwkPSJcdiIsZmU9IlxmIixDZT0iDiIsQmU9Ih8iLHZlPSJceEEwIixGZT0iXHgwNyIsZXQ9bmV3IFJlZ0V4cChvKyJcXFtbMC05Oz9dKlthLXpBLVpdfCIrbysiXFxdW14iK0ZlKyJdKigiK0ZlKyJ8IitvKyJcXFxcXFxcXCl8IitvKyJbPjw9ZVBfWF5dfFsiK2h0KyItIitfZSskK2ZlK0NlKyItIitCZSsiXXwiK3ZlKyJ8Iit1LCJnIiksZHQ9aS5yZXBsYWNlKGV0LGZ1bmN0aW9uKEplKXtyZXR1cm4gSmU9PT12ZT8iICI6SmU9PT11P2E6IiJ9KS5zcGxpdCh1KS5qb2luKGEpLGl0PWR0LnNwbGl0KGEpLm1hcChmdW5jdGlvbihKZSl7cmV0dXJuIEplLnRyaW0oKX0pLmZpbHRlcihCb29sZWFuKSxOZT1bL3RoaW5raW5nIHdpdGggaGlnaCBlZmZvcnQvaSwvdGhpbmtpbmcgd2l0aCBtZWRpdW0gZWZmb3J0L2ksL3RoaW5raW5nIHdpdGggbG93IGVmZm9ydC9pLG5ldyBSZWdFeHAoInRob3VnaHQgZm9yIFswLTldK3MiLCJpIiksbmV3IFJlZ0V4cCgiU2F1dGVlZCBmb3IgWzAtOV0rbSIsImkiKSwvR2VybWluYXRpbmcvaSwvRG9vZGxpbmcvaSwvQnJld2luZy9pXSxSdD1udWxsLFllPS0xLERlPVtdLFBlPVtdLHRlPVtdLHdlPTA7d2U8aXQubGVuZ3RoO3dlKyspe3ZhciB3PWl0W3dlXSxhdD13LnJlcGxhY2UoL17ina9ccyovLCIiKTtpZihhdC5pbmRleE9mKCdUcnkiJyk9PT0wfHxhdC5pbmRleE9mKCdUcnkgIicpPT09MCl7RGUucHVzaChhdCk7Y29udGludWV9Zm9yKHZhciBrdD0hMSx1dD0wO3V0PE5lLmxlbmd0aDt1dCsrKWlmKE5lW3V0XS50ZXN0KHcpKXtrdD0hMCx0ZS5wdXNoKHcpO2JyZWFrfWlmKCFrdCYmdyYmdy5pbmRleE9mKCJcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAiKSE9PTAmJnchPT0iXHUyNzZGIiYmdy5pbmRleE9mKCJlc2MgdG8gaW50ZXJydXB0Iik9PT0tMSYmdy5pbmRleE9mKCJDbGF1ZGUgQ29kZSB2Iik9PT0tMSYmdy5pbmRleE9mKCJTb25uZXQiKT09PS0xJiZ3LmluZGV4T2YoIn4vIikhPT0wJiZ3LmluZGV4T2YoIlx1MjVDRiBoaWdoIik9PT0tMSYmdy5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCBBbnRocm9waWMgbWFya2V0cGxhY2UiKT09PS0xJiZ3LmluZGV4T2YoIkNsYXVkZSBDb2RlIGhhcyBzd2l0Y2hlZCBmcm9tIG5wbSB0byBuYXRpdmUgaW5zdGFsbGVyIik9PT0tMSYmdy5pbmRleE9mKCJGbHV0dGVyaW5nIik9PT0tMSYmdy5pbmRleE9mKCI/IGZvciBzaG9ydGN1dHMiKT09PS0xJiZ3LmluZGV4T2YoIjA7IikhPT0wJiZ3LmluZGV4T2YoIjk7IikhPT0wJiZ3LmluZGV4T2YoIkNsYXVkZSBpcyB3YWl0aW5nIik9PT0tMSYmISh3LmluZGV4T2YoIlx1MjcyMiIpIT09LTF8fHcuaW5kZXhPZigiXHUyNzMzIikhPT0tMXx8dy5pbmRleE9mKCJcdTI3MzYiKSE9PS0xfHx3LmluZGV4T2YoIlx1MjczQiIpIT09LTF8fHcuaW5kZXhPZigiXHUyNzNEIikhPT0tMSkmJiEody5pbmRleE9mKCJcdTI1OTAiKT09PTB8fHcuaW5kZXhPZigiXHUyNTlEIik9PT0wfHx3LmluZGV4T2YoIlx1MjU5OCIpPT09MCkmJiEoKHc9PT0ibHUifHx3PT09InVlInx8dz09PSJ0ciJ8fHc9PT0idGkifHx3PT09ImcifHx3PT09Im4ifHx3PT09ImlcdTIwMjYifHx3PT09Ilx1MjAyNiJ8fHc9PT0idXRzInx8dz09PSJsdCJ8fHc9PT0icmcifHx3PT09Ilx4QjciKSYmdy5sZW5ndGg8NCkmJiEody5pbmRleE9mKCJcdTI3M0RGIik9PT0wfHx3LmluZGV4T2YoIlx1MjczQkYiKT09PTApJiZ3LmluZGV4T2YoIm5wbSBXQVJOIik9PT0tMSYmdy5pbmRleE9mKCJucG0gbm90aWNlIik9PT0tMSYmISh3LmluZGV4T2YoImFkZGVkICIpIT09LTEmJncuaW5kZXhPZigiIHBhY2thZ2VzIikhPT0tMSkmJncuaW5kZXhPZigiYXVkaXRlZCAiKT09PS0xJiYhKHcuaW5kZXhPZigiZm91bmQgIikhPT0tMSYmdy5pbmRleE9mKCIgdnVsbmVyYWJpbGl0aWVzIikhPT0tMSkmJiEody5pbmRleE9mKCJVc2luZyAiKSE9PS0xJiZ3LmluZGV4T2YoIiBmb3IgIikhPT0tMSYmdy5pbmRleE9mKCJzZXNzaW9uIikhPT0tMSkmJncuaW5kZXhPZigiWW91IGNhbiB1c2UiKT09PS0xJiYhKHcuaW5kZXhPZigiUHJlc3MgIikhPT0tMSYmdy5pbmRleE9mKCIgZm9yIikhPT0tMSkmJiEody5pbmRleE9mKCJ0eXBlICIpPT09MCYmdy5pbmRleE9mKCIgdG8gIikhPT0tMSkmJncuaW5kZXhPZigiW3dhbmRdIikhPT0wJiZ3LmluZGV4T2YoIkNhcHR1cmVkIENsYXVkZSBzZXNzaW9uIElEIik9PT0tMSYmdy5pbmRleE9mKCJcdTIzRjUiKT09PS0xJiZ3LmluZGV4T2YoImFjY2VwdGVkaXQiKT09PS0xJiZ3LmluZGV4T2YoInNoaWZ0K3RhYiIpPT09LTEmJncuaW5kZXhPZigidGFidG9jeWNsZSIpPT09LTEmJncuaW5kZXhPZigiY3RybCtnIik9PT0tMSYmdy5pbmRleE9mKCIvZWZmb3J0Iik9PT0tMSYmISh3LmluZGV4T2YoIk9wdXMiKSE9PS0xJiZ3LmluZGV4T2YoIm1vZGVsIikhPT0tMSkmJncuaW5kZXhPZigiSGFpa3UiKT09PS0xJiZ3LmluZGV4T2YoInRvIGN5Y2xlIik9PT0tMSYmISh3LmluZGV4T2YoImhpZ2ggXHhCNyIpIT09LTF8fHcuaW5kZXhPZigiaGlnaFx4QjciKSE9PS0xKSYmISh3LmluZGV4T2YoIm1lZGl1bSBceEI3IikhPT0tMXx8dy5pbmRleE9mKCJtZWRpdW1ceEI3IikhPT0tMSkmJiEody5pbmRleE9mKCJsb3cgXHhCNyIpIT09LTF8fHcuaW5kZXhPZigibG93XHhCNyIpIT09LTEpKXtpZih3LmluZGV4T2YoIlx1MjVDRiIpPT09MCl7aWYodz13LnNsaWNlKDEpLnRyaW0oKSwhdyljb250aW51ZTtQZS5wdXNoKHcpO2NvbnRpbnVlfXcubGVuZ3RoPDMmJiEvXlthLXpBLVpdezN9JC8udGVzdCh3KXx8UGUucHVzaCh3KX19aWYodGUubGVuZ3RoPjApe3ZhciBadD10ZVt0ZS5sZW5ndGgtMV0sQXQ9WnQubWF0Y2gobmV3IFJlZ0V4cCgiZm9yIChbMC05XStbbXNdK3wgWzAtOV0rbSBbMC05XStzKSIsImkiKSksV3Q9QXQ/Ilx1NkRGMVx1NUVBNlx1NjAxRFx1ODAwMyAiK0F0WzBdLnJlcGxhY2UoL2ZvciAvaSwiIik6Ilx1NkRGMVx1NUVBNlx1NjAxRFx1ODAwM1x1NEUyRC4uLiI7bi5wdXNoKHtyb2xlOiJ0aGlua2luZyIsY29udGVudDpXdCx0eXBlOiJkZWVwLXRob3VnaHQifSl9aWYoRGUubGVuZ3RoPjApe3ZhciB6dD1EZVtEZS5sZW5ndGgtMV0ucmVwbGFjZSgvXlRyeVxzKi8sIiIpLnRyaW0oKTtuLnB1c2goe3JvbGU6InByb21wdCIsY29udGVudDp6dCx0eXBlOiJzdWdnZXN0aW9uIn0pfWlmKCFQZS5sZW5ndGgpcmV0dXJuIG47Zm9yKHZhciBUZT1bXSxVZT1udWxsLEtlPVtdLHdlPTA7d2U8UGUubGVuZ3RoO3dlKyspaWYodz1QZVt3ZV0sdy5pbmRleE9mKCJcdTI3NkYiKT09PTApe3ZhciB4dD13LnJlcGxhY2UoL17ina9ccyovLCIiKS50cmltKCk7aWYoeHQuaW5kZXhPZignVHJ5IicpPT09MHx8eHQuaW5kZXhPZignVHJ5ICInKT09PTApY29udGludWU7VWUhPT1udWxsJiZLZS5sZW5ndGg+MCYmKFRlLnB1c2goe3VzZXI6VWUsYXNzaXN0YW50TGluZXM6S2V9KSxLZT1bXSkseHQ/VWU9eHQ6KFVlIT09bnVsbCYmS2UubGVuZ3RoPjAmJihUZS5wdXNoKHt1c2VyOlVlLGFzc2lzdGFudExpbmVzOktlfSksS2U9W10pLFVlPW51bGwpfWVsc2UgVWUhPT1udWxsJiYody5pbmRleE9mKCJcdTIzRkEiKSE9PS0xJiYody5pbmRleE9mKCJIaSEiKSE9PS0xfHx3LmluZGV4T2YoIkhlbGxvIikhPT0tMXx8dy5pbmRleE9mKCJXaGF0IikhPT0tMXx8dy5pbmRleE9mKCJ3b3JraW5nIikhPT0tMSk/S2UucHVzaCh3KTp3LmluZGV4T2YoIlx1MjNGQSIpPT09MD9LZS5wdXNoKHcuc2xpY2UoMSkudHJpbSgpfHx3KTp3Lmxlbmd0aD49OCYmdy5pbmRleE9mKCJcdTI3MjIiKT09PS0xJiZ3LmluZGV4T2YoIlx1MjczMyIpPT09LTEmJncuaW5kZXhPZigiXHUyNzM2Iik9PT0tMSYmdy5pbmRleE9mKCJcdTI3M0IiKT09PS0xJiZ3LmluZGV4T2YoIlx1MjczRCIpPT09LTEmJncuaW5kZXhPZigiXHUyNTkwIikhPT0wJiZ3LmluZGV4T2YoIlx1MjU5RCIpIT09MCYmdy5pbmRleE9mKCJcdTI1OTgiKSE9PTAmJncuaW5kZXhPZigiZXNjdG9pbnRlcnJ1cHQiKT09PS0xJiZ3LmluZGV4T2YoIj9mb3IiKSE9PTAmJncuaW5kZXhPZigiPyBmb3IiKSE9PTAmJktlLnB1c2godykpO2lmKFVlIT09bnVsbCYmS2UubGVuZ3RoPjAmJlRlLnB1c2goe3VzZXI6VWUsYXNzaXN0YW50TGluZXM6S2V9KSxUZS5sZW5ndGg9PT0wKXtmb3IodmFyIFZ0PSIiLFV0PS0xLHdlPTA7d2U8UGUubGVuZ3RoO3dlKyspaWYodz1QZVt3ZV0sISh3LmluZGV4T2YoJ1RyeSInKT09PTB8fHcuaW5kZXhPZignVHJ5ICInKT09PTApJiZ3LmluZGV4T2YoIkZhaWxlZCB0byBpbnN0YWxsIik9PT0tMSYmdy5pbmRleE9mKCJjdHJsK2ciKT09PS0xJiZ3LmluZGV4T2YoIlx1MjVDRiAiKSE9PTAmJiEody5sZW5ndGg8Mnx8dy5sZW5ndGg+MTAwKSYmL15bYS16QS1aXS8udGVzdCh3KSl7VnQ9dy50cmltKCksVXQ9d2U7YnJlYWt9aWYoVnQmJlV0Pj0wKXt2YXIgRW49UGUuc2xpY2UoVXQrMSkuZmlsdGVyKGZ1bmN0aW9uKEplKXtyZXR1cm4gSmUubGVuZ3RoPj04fSk7RW4ubGVuZ3RoPjAmJlRlLnB1c2goe3VzZXI6VnQsYXNzaXN0YW50TGluZXM6RW59KX19Zm9yKHZhciBjdD0wO2N0PFRlLmxlbmd0aDtjdCsrKWlmKG4ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpUZVtjdF0udXNlcn0pLFRlW2N0XS5hc3Npc3RhbnRMaW5lcy5sZW5ndGg+MCl7dmFyIGtlPW1tKFRlW2N0XS5hc3Npc3RhbnRMaW5lcy5qb2luKGEpKTtuLnB1c2goe3JvbGU6ImFzc2lzdGFudCIsY29udGVudDprZX0pfXJldHVybiBufXZhciBlbD0idHJhbnNwYXJlbnQiO2Z1bmN0aW9uIE1pKGUsdCl7Zm9yKHZhciBuPXR8fDMsaT1lWzBdLmxlbmd0aCpuLGE9ZS5sZW5ndGgqbix1PSIiLG89MDtvPGUubGVuZ3RoO28rKylmb3IodmFyIHM9MDtzPGVbb10ubGVuZ3RoO3MrKyllW29dW3NdIT09ZWwmJih1Kz0nPHJlY3QgeD0iJytzKm4rJyIgeT0iJytvKm4rJyIgd2lkdGg9IicrbisnIiBoZWlnaHQ9IicrbisnIiBmaWxsPSInK2Vbb11bc10rJyIvPicpO3JldHVybic8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwICcraSsiICIrYSsnIiBjbGFzcz0icGl4ZWwtYXZhdGFyLXN2ZyI+Jyt1KyI8L3N2Zz4ifWZ1bmN0aW9uIHFpKGUpe3ZhciB0PWVsLG49ZS5iYXNlLGk9ZS5kYXJrLGE9ZS5saWdodHx8ZS5iYXNlLHU9ZS5hY2NlbnR8fCIjRkZGRkZGIixvPWUuZXllfHwiIzJEMkQyRCIscz1lLm1vdXRofHwiI0YyOEI5QSIsbD1lLm5vc2V8fGUuZGFyaztyZXR1cm5bW3QsaSx0LHQsdCx0LHQsdCxpLHRdLFtpLG4saSx0LHQsdCx0LGksbixpXSxbaSxuLG4sbixuLG4sbixuLG4saV0sW24sbix1LG8sbixuLHUsbyxuLG5dLFtuLG4sdSx1LG4sbix1LHUsbixuXSxbbixuLG4sbixzLHMsbixuLG4sbl0sW24sbCxuLGEsbixuLGEsbixsLG5dLFt0LG4sbixuLG4sbixuLG4sbix0XSxbdCx0LG4saSxuLG4saSxuLHQsdF0sW3QsdCx0LG4sdCx0LG4sdCx0LHRdXX12YXIgTXY9e2Jhc2U6IiNGMDkyM0EiLGRhcms6IiNDNDZBMUEiLGxpZ2h0OiIjRjA5MjNBIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzJEMkQyRCIsbW91dGg6IiNGMjhCOUEiLG5vc2U6IiNFODdENUEifSxxdj17YmFzZToiIzlFQUFCOCIsZGFyazoiIzZCN0I4RCIsbGlnaHQ6IiNDNUNFRDgiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjN0VDODhCIixtb3V0aDoiI0YyOEI5QSJ9LHRsPVt7YmFzZToiIzVBOEZFMCIsZGFyazoiIzJFNUJCMyIsbGlnaHQ6IiM5Q0MwRjIiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjRkZENjZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzVBOEZFMCJ9LHtiYXNlOiIjQTA2RkUwIixkYXJrOiIjNkI0NUE4IixsaWdodDoiI0M4QTRGMiIsYWNjZW50OiIjRkZGRkZGIixleWU6IiNGRkUzNkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjQTA2RkUwIn0se2Jhc2U6IiM3QkI3NkIiLGRhcms6IiM0RjhBNDAiLGxpZ2h0OiIjQTlENDlDIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzJEMkQyRCIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM3QkI3NkIifSx7YmFzZToiI0Q4NkE4OCIsZGFyazoiIzlDM0E1NyIsbGlnaHQ6IiNFOEE0QjUiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0ZGRkZGRiIscHJpbWFyeToiI0Q4NkE4OCJ9LHtiYXNlOiIjNUJCN0IwIixkYXJrOiIjMkU3ODczIixsaWdodDoiIzlDRDZEMiIsYWNjZW50OiIjRkZGRkZGIixleWU6IiNGRkQ2NkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjNUJCN0IwIn0se2Jhc2U6IiM0QTRBNjAiLGRhcms6IiMxRjFGMkUiLGxpZ2h0OiIjNkU2RTg0IixhY2NlbnQ6IiNGNUY1RjUiLGV5ZToiI0ZGRDY2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM0QTRBNjAifSx7YmFzZToiI0Q4QTg1QSIsZGFyazoiIzlDNzAyOCIsbGlnaHQ6IiNFQkM3OEEiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiI0Q4QTg1QSJ9XTtmdW5jdGlvbiBQdihlLHQpe2Zvcih2YXIgbj1TdHJpbmcoZXx8IiIpLGk9MCxhPTA7YTxuLmxlbmd0aDthKyspaT0oaTw8NSktaStuLmNoYXJDb2RlQXQoYSl8MDtyZXR1cm4gTWF0aC5hYnMoaSkldH12YXIgbmw9eyJnZW5lcmFsLXB1cnBvc2UiOiJcdTRFMDdcdTgwRkRcdTczMkIiLEV4cGxvcmU6Ilx1NEZBNlx1NjNBMlx1NzMyQiIsImNvZGUtZXhwbG9yZXIiOiJcdTRGQTZcdTYzQTJcdTczMkIiLCJjb2RlLXJldmlld2VyIjoiXHU1QkExXHU2N0U1XHU3MzJCIiwiY29kZS1hcmNoaXRlY3QiOiJcdTY3QjZcdTY3ODRcdTczMkIiLCJjb2RlLXNpbXBsaWZpZXIiOiJcdTdCODBcdTUzMTZcdTczMkIiLCJjb2RlLWd1aWRlIjoiXHU1NDExXHU1QkZDXHU3MzJCIixQbGFuOiJcdTdCNTZcdTUyMTJcdTczMkIiLCJmZWF0dXJlLWRldiI6Ilx1NUYwMFx1NTNEMVx1NzMyQiIsInByLXRlc3QtYW5hbHl6ZXIiOiJcdTZENEJcdThCRDVcdTczMkIiLCJzaWxlbnQtZmFpbHVyZS1odW50ZXIiOiJcdTYyQTRcdTUzNkJcdTczMkIiLCJ0eXBlLWRlc2lnbi1hbmFseXplciI6Ilx1N0M3Qlx1NTc4Qlx1NzMyQiIsImNvbW1lbnQtYW5hbHl6ZXIiOiJcdTZDRThcdTkxQ0FcdTczMkIifSxpdT1udWxsO2Z1bmN0aW9uIHJsKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PWUuYWdlbnRUeXBlfHwiIjtyZXR1cm4gdCYmbmxbdF0/bmxbdF06dHx8KFd1KCk9PT0iRW5nbGlzaCI/IlN1YnRhc2siOiJcdTVCNTBcdTRFRkJcdTUyQTEiKX1mdW5jdGlvbiBPdihlKXt2YXIgdD1TdHJpbmcoZXx8IiIpLnRyaW0oKTtyZXR1cm4gdD90LmluZGV4T2YoIlx1NzMyQlx1NzMyQiIpPT09MD90OiJcdTczMkJcdTczMkIgIit0OiJcdTczMkJcdTczMkJcdTVCNTAgQWdlbnQifWZ1bmN0aW9uIGlsKGUpe3ZhciB0PXJsKGUpO2lmKCF0KXJldHVybiB0O3ZhciBuPWl1JiZlJiZlLnRhc2tJZD9pdS5nZXQoZS50YXNrSWQpOm51bGw7cmV0dXJuIE92KG4/dCtuOnQpfWZ1bmN0aW9uIGFsKGUpe3ZhciB0PWUmJihlLmFnZW50VHlwZXx8ZS50YXNrSWQpfHwic3ViYWdlbnQiO3JldHVybiB0bFtQdih0LHRsLmxlbmd0aCldfWZ1bmN0aW9uIHZoKGUpe3ZhciB0PWFsKGUpLG49aWwoZSksaT1NaShxaSh0KSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1hdmF0YXIgYXNzaXN0YW50IHN1YmFnZW50IiBzdHlsZT0iLS1hZ2VudC1jb2xvcjonK3QucHJpbWFyeSsnIj48ZGl2IGNsYXNzPSJwaXhlbC1hdmF0YXIiPicraSsnPC9kaXY+PHNwYW4gY2xhc3M9ImF2YXRhci1uYW1lIj4nK3AobikrIjwvc3Bhbj48L2Rpdj4ifWZ1bmN0aW9uIEh2KGUsdCl7aWYoIWV8fGUudHlwZSE9PSJ0b29sX3Jlc3VsdCIpcmV0dXJuIiI7dmFyIG49cG4oZS5jb250ZW50KSxpPWUuaXNfZXJyb3I9PT0hMCxhPXR5cGVvZiBuPT0ic3RyaW5nIj9uOm49PW51bGw/IiI6U3RyaW5nKG4pO2lmKCFpJiYhYS50cmltKCkpcmV0dXJuJzxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5IHBlbmRpbmciPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXIgcGVuZGluZyI+JytwKEVlKCJzdWJhZ2VudC5ydW5uaW5nIikpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InR5cGluZy1pbmRpY2F0b3IiPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvc3Bhbj48L2Rpdj4nO3ZhciB1PWEudHJpbSgpP2E6RWUoInN1YmFnZW50Lm5vX291dHB1dCIpLG89YS50cmltKCk/Y3UodSk6cCh1KSxzPUVlKGk/InN1YmFnZW50LnRhc2suZmFpbGVkIjoic3ViYWdlbnQudGFzay5kb25lIiksbD1pPyJcdTI3MTciOiJcdTI3MTMiO3JldHVybic8ZGl2IGNsYXNzPSJzdWJhZ2VudC1yZXBseSBmaW5hbCcrKGk/IiBlcnJvciI6IiIpKyciPjxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlciAnKyhpPyJlcnJvciI6ImRvbmUiKSsnIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK2wrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyLWxhYmVsIj4nK3AocykrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1yZXBseS1jb250ZW50Ij4nK28rIjwvZGl2PjwvZGl2PiJ9dmFyIFBpPXthc3Npc3RhbnQ6TWkocWkoTXYpKSx1c2VyOk1pKHFpKHF2KSl9LHVsPXt1c2VyOntuYW1lOiJcdThENUJcdTUzNUFcdTg2NEVcdTU5OUUiLGF2YXRhclN2ZzpQaS51c2VyfSxhc3Npc3RhbnQ6e25hbWU6Ilx1NTJFNFx1NTJCM1x1NTIxRFx1NEU4QyIsYXZhdGFyU3ZnOlBpLmFzc2lzdGFudH19O2Z1bmN0aW9uIGF1KGUpe3ZhciB0PXIuY29uZmlnJiZyLmNvbmZpZy5zdHJ1Y3R1cmVkQ2hhdFBlcnNvbmEsbj10JiZ0W2VdP3RbZV06bnVsbCxpPXVsW2VdfHx1bC5hc3Npc3RhbnQ7cmV0dXJue25hbWU6biYmdHlwZW9mIG4ubmFtZT09InN0cmluZyImJm4ubmFtZS50cmltKCk/bi5uYW1lLnRyaW0oKTppLm5hbWUsYXZhdGFyOm4mJnR5cGVvZiBuLmF2YXRhcj09InN0cmluZyImJm4uYXZhdGFyLnRyaW0oKT9uLmF2YXRhci50cmltKCk6bnVsbCxhdmF0YXJTdmc6aS5hdmF0YXJTdmd9fWZ1bmN0aW9uIG9sKGUpe3JldHVybic8ZGl2IGNsYXNzPSJwaXhlbC1hdmF0YXIiPicrZSsiPC9kaXY+In1mdW5jdGlvbiBtaChlLHQpe2lmKCEoIWV8fCFlLnBhcmVudE5vZGUpKXt2YXIgbj1hdSh0PT09InVzZXIiPyJ1c2VyIjoiYXNzaXN0YW50Iik7ZS5vdXRlckhUTUw9b2wobi5hdmF0YXJTdmcpfX1mdW5jdGlvbiBRbihlLHQpe3Q9dHx8e307dmFyIG49ZT09PSJ1c2VyIj8idXNlciI6ImFzc2lzdGFudCIsaT1hdShuKSxhPWkuYXZhdGFyPyc8aW1nIGNsYXNzPSJwaXhlbC1hdmF0YXItaW1hZ2UiIHNyYz0iJytwKGkuYXZhdGFyKSsnIiBhbHQ9IicrcChpLm5hbWUpKyciIG9uZXJyb3I9ImhhbmRsZUNoYXRBdmF0YXJJbWFnZUVycm9yKHRoaXMsICcrSlNPTi5zdHJpbmdpZnkobikrJykiIC8+JzpvbChpLmF2YXRhclN2ZyksdT10LmxlZnRTbG90P3QubGVmdFNsb3Q6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1hdmF0YXIgJytlKyciPicrYSsnPHNwYW4gY2xhc3M9ImF2YXRhci1uYW1lIj4nK3AoaS5uYW1lKSsiPC9zcGFuPiIrdSsiPC9kaXY+In1mdW5jdGlvbiBfdigpe3ZhciBlPUR0KCk7cmV0dXJuIWV8fCF1ZShlKT8iIjpBbChlLHtraW5kOiJjb21wYWN0In0pfWZ1bmN0aW9uIHV1KGUsdCxuLGkpe2lmKGUucm9sZT09PSJ0aGlua2luZyIpe3ZhciBhPXR5cGVvZiBlLmNvbnRlbnQ9PSJzdHJpbmciP2UuY29udGVudDoiIjtpZighYS50cmltKCkpcmV0dXJuIiI7dmFyIHU9VHQoInRoaW5raW5nIixbWHUoZSxuKSwicHR5Il0pLG89YnQodSkscz1vPT09bnVsbD9TbigidGhpbmtpbmciKTpvO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgdGhpbmtpbmciPjxkaXYgY2xhc3M9InRoaW5raW5nLWlubGluZSB0aGlua2luZy1wdHkgJysocz8iZXhwYW5kZWQiOiJjb2xsYXBzZWQiKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0aGlua2luZyIgZGF0YS1leHBhbmQta2V5PSInK3AodSkrJyIgZGF0YS10aGlua2luZz0iJytwKGEpKyciIG9uY2xpY2s9Il9fdGhpbmtpbmdUb2dnbGUodGhpcykiPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtaWNvbiI+XHUyOUJGPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtcHJldmlldyI+JytwKGEpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1hY3Rpb24iPicrKHM/Ilx1NjUzNlx1OEQ3NyI6Ilx1NUM1NVx1NUYwMCIpKyI8L3NwYW4+PC9kaXY+PC9kaXY+In1pZihlLnJvbGU9PT0icHJvbXB0IilyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlIHByb21wdCI+PGRpdiBjbGFzcz0icHJvbXB0LWNhcmQiPjxkaXYgY2xhc3M9InByb21wdC1pY29uIj5cdTIxOTI8L2Rpdj48ZGl2IGNsYXNzPSJwcm9tcHQtY29udGVudCI+XHU4QkQ1XHU4QkQ1XHVGRjFBPHNwYW4gY2xhc3M9InByb21wdC10ZXh0Ij4nK3AoZS5jb250ZW50KSsiPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PiI7aWYoQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKXJldHVybiBpbShlLHQsbixpKTt2YXIgbD1RbihlLnJvbGUpLGQ9ZS5yb2xlPT09ImFzc2lzdGFudCI/Y3UoZS5jb250ZW50KTplLnJvbGU9PT0idXNlciI/dmwoZS5jb250ZW50KTpwKGUuY29udGVudCk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2Uucm9sZSsnIj4nK2wrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1idWJibGUiPicrZCsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBOdihlKXt2YXIgdD17fTtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdDtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpZihpJiZpLnR5cGU9PT0idG9vbF9yZXN1bHQiKXt2YXIgYT1pLnRvb2xfdXNlX2lkO2lmKCFhKWNvbnRpbnVlO3RbYV18fCh0W2FdPVtdKSx0W2FdLnB1c2goaSl9fXJldHVybiB0fWZ1bmN0aW9uIHNsKGUsdCl7dmFyIG49ZSYmdD9lW3RdOm51bGw7aWYoIW58fCFuLmxlbmd0aClyZXR1cm4gbnVsbDtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoLTE7aSsrKWlmKGtsKG5baV0sbltpKzFdKSlyZXR1cm4gbltpKzFdO3JldHVybiBuW24ubGVuZ3RoLTFdfWZ1bmN0aW9uIGp2KGUsdCl7dmFyIG49ZSYmdD9lW3RdOm51bGw7aWYoIW58fG4ubGVuZ3RoPDIpcmV0dXJuITE7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aC0xO2krKylpZihrbChuW2ldLG5baSsxXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gUnYoZSl7cmV0dXJuJzxkaXYgY2xhc3M9InN0cnVjdHVyZWQtdG9vbC1oaW50Ij5cdTVERjJcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTRFMDBcdTZCMjEgJytwKGR1KGUpKSsiIFx1NTNDMlx1NjU3MFx1OTVFRVx1OTg5ODwvZGl2PiJ9dmFyIFd2PXtSZWFkOjEsR2xvYjoxLEdyZXA6MSxXZWJGZXRjaDoxLFdlYlNlYXJjaDoxLFRvZG9SZWFkOjF9O2Z1bmN0aW9uIGxsKGUpe2lmKCFlfHxlLnR5cGUhPT0idG9vbF91c2UifHwhV3ZbZS5uYW1lXSlyZXR1cm4hMTtpZihlLm5hbWU9PT0iUmVhZCIpe3ZhciB0PWUuaW5wdXR8fHt9O2lmKE91KHQuZmlsZV9wYXRofHx0LnBhdGh8fCIiKSlyZXR1cm4hMX1yZXR1cm4hMH1mdW5jdGlvbiB6dihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7KXt2YXIgaT1lW25dO2lmKGkudHlwZT09PSJ0b29sX3Jlc3VsdCIpe24rKztjb250aW51ZX1pZihsbChpKSl7Zm9yKHZhciBhPVt7YmxvY2s6aSxpbmRleDpufV0sdT1uKzE7dTxlLmxlbmd0aDspe2lmKGVbdV0udHlwZT09PSJ0b29sX3Jlc3VsdCIpe3UrKztjb250aW51ZX1pZihsbChlW3VdKSlhLnB1c2goe2Jsb2NrOmVbdV0saW5kZXg6dX0pLHUrKztlbHNlIGJyZWFrfWEubGVuZ3RoPj0yP3QucHVzaCh7dHlwZToiZ3JvdXAiLGl0ZW1zOmEsZW5kSW5kZXg6dX0pOnQucHVzaCh7dHlwZToic2luZ2xlIixibG9jazppLGluZGV4Om59KSxuPXV9ZWxzZSB0LnB1c2goe3R5cGU6InNpbmdsZSIsYmxvY2s6aSxpbmRleDpufSksbisrfXJldHVybiB0fXZhciBWdj17UmVhZDoiXHU4QkZCXHU1M0Q2IixHbG9iOiJcdTY0MUNcdTdEMjIiLEdyZXA6Ilx1NjQxQ1x1N0QyMiIsV2ViRmV0Y2g6Ilx1NjI5M1x1NTNENiIsV2ViU2VhcmNoOiJcdTY0MUNcdTdEMjIiLFRvZG9SZWFkOiJcdTVGODVcdTUyOUUifTtmdW5jdGlvbiBVdihlLHQsbixpLGEpe2Zvcih2YXIgdT1hfHx7fSxvPXt9LHM9MDtzPGUubGVuZ3RoO3MrKyl7dmFyIGw9ZVtzXS5ibG9jay5uYW1lO29bbF09KG9bbF18fDApKzF9Zm9yKHZhciBkPSEwLGY9ITEscz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgYz1lW3NdLmJsb2NrLHY9c2wobixjLmlkKTt2P3YuaXNfZXJyb3ImJihmPSEwKTpkPSExfXZhciBoPWQ/Zj8iXHUyNzE3IjoiXHUyNzEzIjoiXHUyMDI2IixnPWQ/Zj8iZXJyb3IiOiJkb25lIjoicGVuZGluZyIsbT1bXTtmb3IodmFyIHkgaW4gbyltLnB1c2gob1t5XSsiICIrKFZ2W3ldfHx5KSk7Zm9yKHZhciBDPW0uam9pbigiIFx4QjcgIiksRT1UdCgidG9vbC1ncm91cCIsW2ksZVswXSYmZVswXS5pbmRleCxlLmxlbmd0aF0pLEI9YnQoRSksRD11LmZvcmNlRXhwYW5kZWRUb29sQm9kaWVzPyEwOkI9PT1udWxsP1NuKCJ0b29sR3JvdXAiKTpCLEY9IiIscz0wO3M8ZS5sZW5ndGg7cysrKXRyeXtGKz1tbChlW3NdLmJsb2NrLHQsbixlW3NdLmluZGV4LGksdSl9Y2F0Y2h7Ris9JzxkaXYgY2xhc3M9InJlbmRlci1lcnJvciI+XHU1REU1XHU1MTc3XHU2RTMyXHU2N0QzXHU1OTMxXHU4RDI1PC9kaXY+J31yZXR1cm4nPGRpdiBjbGFzcz0idG9vbC1ncm91cCIgZGF0YS1leHBhbmQta2luZD0idG9vbC1ncm91cCIgZGF0YS1leHBhbmQta2V5PSInK3AoRSkrJyIgZGF0YS1leHBhbmRlZD0iJysoRD8idHJ1ZSI6ImZhbHNlIikrJyIgZGF0YS1zdGF0dXM9IicrZysnIj48ZGl2IGNsYXNzPSJ0b29sLWdyb3VwLXN1bW1hcnkiIG9uY2xpY2s9Il9fdG9vbEdyb3VwVG9nZ2xlKHRoaXMucGFyZW50Tm9kZSkiPjxzcGFuIGNsYXNzPSJ0b29sLWdyb3VwLXN0YXR1cyI+JytoKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtdGV4dCI+JytwKEMpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtY291bnQiPicrZS5sZW5ndGgrJyBcdTRFMkFcdThDMDNcdTc1Mjg8L3NwYW4+PHN2ZyBjbGFzcz0idG9vbC1ncm91cC1jaGV2cm9uIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHlsZT0idHJhbnNmb3JtOicrKEQ/InJvdGF0ZSgxODBkZWcpIjoiIikrJyI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiLz48L3N2Zz48L2Rpdj48ZGl2IGNsYXNzPSJ0b29sLWdyb3VwLWJvZHkiIHN0eWxlPSJkaXNwbGF5OicrKEQ/ImJsb2NrIjoibm9uZSIpKyc7Ij4nK0YrIjwvZGl2PjwvZGl2PiJ9d2luZG93Ll9fdG9vbEdyb3VwVG9nZ2xlPWZ1bmN0aW9uKGUpe2lmKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIik9PT0idHJ1ZSI7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLHQ/ImZhbHNlIjoidHJ1ZSIpO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtYm9keSIpO24mJihuLnN0eWxlLmRpc3BsYXk9dD8ibm9uZSI6ImJsb2NrIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1jaGV2cm9uIik7aSYmKGkuc3R5bGUudHJhbnNmb3JtPXQ/IiI6InJvdGF0ZSgxODBkZWcpIiksTm4oZSwidG9vbC1ncm91cCIpfX07ZnVuY3Rpb24gS3YoZSx0KXtmb3IodmFyIG49MCxpPTAsYT0wLHU9e30sbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz1lW3Rbb11dO2lmKHMpe3Mucm9sZT09PSJ1c2VyIiYmbisrO3ZhciBsPXMuY29udGVudDtpZihBcnJheS5pc0FycmF5KGwpKWZvcih2YXIgZD0wO2Q8bC5sZW5ndGg7ZCsrKXt2YXIgZj1sW2RdO2lmKGYpaWYoZi5fX3N1YmFnZW50JiZmLl9fc3ViYWdlbnQudGFza0lkJiYodVtmLl9fc3ViYWdlbnQudGFza0lkXT0xKSxmLnR5cGU9PT0idG9vbF91c2UiKXtpKys7dmFyIGM9T2koZik7YyYmYy50YXNrSWQmJih1W2MudGFza0lkXT0xKX1lbHNlIGYudHlwZT09PSJ0b29sX3Jlc3VsdCImJmYuaXNfZXJyb3ImJmErK319fXZhciB2PTA7Zm9yKHZhciBoIGluIHUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHUsaCkmJnYrKztyZXR1cm57cm91bmRzOm4sdG9vbHM6aSxhZ2VudHM6dixlcnJvcnM6YX19ZnVuY3Rpb24gZGwoZSl7dmFyIHQ9W107cmV0dXJuIHQucHVzaChFZSgiaGlzdG9yeS5yb3VuZHMiLHtuOlN0cmluZyhlLnJvdW5kcyl9KSksZS50b29scz4wJiZ0LnB1c2goRWUoImhpc3RvcnkudG9vbHMiLHtuOlN0cmluZyhlLnRvb2xzKX0pKSxlLmFnZW50cz4wJiZ0LnB1c2goRWUoImhpc3RvcnkuYWdlbnRzIix7bjpTdHJpbmcoZS5hZ2VudHMpfSkpLGUuZXJyb3JzPjAmJnQucHVzaChFZSgiaGlzdG9yeS5lcnJvcnMiLHtuOlN0cmluZyhlLmVycm9ycyl9KSksdC5qb2luKCIgXHhCNyAiKX1mdW5jdGlvbiBvdShlLHQpe2Zvcih2YXIgbj1lLm5leHRFbGVtZW50U2libGluZztuOyluLmNsYXNzTGlzdC5jb250YWlucygiY2hhdC1sb2FkLW1vcmUiKXx8KHQ/bi5jbGFzc0xpc3QucmVtb3ZlKCJjaGF0LWhpc3RvcnktaGlkZGVuIik6bi5jbGFzc0xpc3QuYWRkKCJjaGF0LWhpc3RvcnktaGlkZGVuIikpLG49bi5uZXh0RWxlbWVudFNpYmxpbmd9ZnVuY3Rpb24gSnYoZSx0LG4saSl7IWV8fCF0fHwoWXYoZSx0LCExKSxzdSh0KSwkdihlKSl9ZnVuY3Rpb24gZ2goZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3JldHVybiB0fHwodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0LmlkPSJjaGF0LWZvbGQtYmFyIix0LmNsYXNzTmFtZT0iY2hhdC1mb2xkLWJhciBoaWRkZW4iLGUuaW5zZXJ0QmVmb3JlKHQsZS5maXJzdENoaWxkKSx0KX1mdW5jdGlvbiBZdihlLHQsbil7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJhdXRvLWZvbGQiLCEhbil9ZnVuY3Rpb24gaGgoZSx0KXtmb3IodmFyIG49W10saT0wO2k8dDtpKyspZVtpXSYmbi5wdXNoKGkpO3JldHVybiBufWZ1bmN0aW9uIHN1KGUpe2lmKGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLG49MDtuPHQubGVuZ3RoO24rKyl0W25dLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpfWZ1bmN0aW9uIHloKGUsdCxuKXtpZihzdShlKSwhKCFufHx0PDEpKXtmb3IodmFyIGk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIiksYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgdT1pW2FdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpZih1IT1udWxsKXt2YXIgbz1wYXJzZUludCh1LDEwKTshaXNOYU4obykmJm88dCYmaVthXS5jbGFzc0xpc3QuYWRkKCJjaGF0LWF1dG8tZm9sZC1oaWRkZW4iKX19R3YoZSl9fWZ1bmN0aW9uIEd2KGUpe3ZhciB0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTpudWxsO2lmKHQpe3Quc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIiwiZmFsc2UiKTt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS1idG4iKTtuJiZuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIik7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktdGl0bGUiKTtpJiYoaS50ZXh0Q29udGVudD1FZSgiaGlzdG9yeS5leHBhbmQiKSksb3UodCwhMSksdC5jbGFzc0xpc3QuYWRkKCJjaGF0LWF1dG8tZm9sZC1oaWRkZW4iKTt2YXIgYT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpO2lmKGEpe3ZhciB1PWEuc3BsaXQoIjoiKTt1Lmxlbmd0aD49MyYmKHVbMl09IjAiLGUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIix1LmpvaW4oIjoiKSkpfX19ZnVuY3Rpb24gUXYoZSl7IWV8fCFlLmlzQ29ubmVjdGVkfHwoQ24oe3JlbW92ZURpdmlkZXI6ITB9KSx6dSghMCkpfWZ1bmN0aW9uICR2KGUpe2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiI2NoYXQtZm9sZC1iYXIiKTt0JiYodC5pbm5lckhUTUw9IiIsdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxyLmNoYXRBdXRvRm9sZFNuYXBzaG90PW51bGwpfX1mdW5jdGlvbiBiaChlLHQsbil7dmFyIGk9Y2woZSl8fCJcdTY1QjBcdTZEODhcdTYwNkYiLGE9dD9jbCh0KToiXHU3QjQ5XHU1Rjg1XHU1NkRFXHU1OTBELi4uIix1PSIiO3JldHVybiBuJiYodT0nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IGhpc3RvcnkiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeSAmJiB3aW5kb3cuX19jaGF0Rm9sZFRvZ2dsZUhpc3RvcnkoKSIgdGl0bGU9Ilx1NUM1NVx1NUYwMFx1NjIxNlx1NjUzNlx1OEQ3N1x1NjZGNFx1NjVFOVx1NUJGOVx1OEJERCI+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC1yb2xlIj5cdTUzODZcdTUzRjI8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC10ZXh0Ij5cdTVERjJcdTY1MzZcdThENzcgJytwKGRsKG4pKSsiPC9zcGFuPjwvYnV0dG9uPiIpLHUrJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2hhdC1mb2xkLXJvdyB1c2VyIiBvbmNsaWNrPSJ3aW5kb3cuX19jaGF0Rm9sZEp1bXBUb0xhdGVzdCAmJiB3aW5kb3cuX19jaGF0Rm9sZEp1bXBUb0xhdGVzdCgpIiB0aXRsZT0iXHU1QjlBXHU0RjREXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXJvbGUiPlx1NjIxMTwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXRleHQiPicrcChpKSsnPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2hhdC1mb2xkLXJvdyBhc3Npc3RhbnQiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0ICYmIHdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0KCkiIHRpdGxlPSJcdTVCOUFcdTRGNERcdTUyMzBcdTY3MDBcdTY1QjBcdTU2REVcdTU5MEQiPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtcm9sZSI+Q2xhdWRlPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtdGV4dCI+JytwKGEpKyI8L3NwYW4+PC9idXR0b24+In1mdW5jdGlvbiBjbChlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1bXTtmdW5jdGlvbiBuKG8pe2lmKHR5cGVvZiBvPT0ic3RyaW5nIil7dmFyIHM9by5yZXBsYWNlKC9ccysvZywiICIpLnRyaW0oKTtzJiZ0LnB1c2gocyl9fWlmKHR5cGVvZiBlLmNvbnRlbnQ9PSJzdHJpbmciKW4oZS5jb250ZW50KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZS5jb250ZW50KSlmb3IodmFyIGk9MDtpPGUuY29udGVudC5sZW5ndGgmJnQuam9pbigiICIpLmxlbmd0aDwxODA7aSsrKXt2YXIgYT1lLmNvbnRlbnRbaV07YSYmKGEudHlwZT09PSJ0ZXh0Ij9uKGEudGV4dCk6YS50eXBlPT09InRoaW5raW5nIj9uKGEudGhpbmtpbmcpOmEudHlwZT09PSJ0b29sX3VzZSI/bihhLm5hbWU/Ilx1OEMwM1x1NzUyOCAiK2EubmFtZToiXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4Iik6YS50eXBlPT09InRvb2xfcmVzdWx0Ij9uKGEuaXNfZXJyb3I/Ilx1NURFNVx1NTE3N1x1OEZENFx1NTZERVx1OTUxOVx1OEJFRiI6Ilx1NURFNVx1NTE3N1x1OEZENFx1NTZERVx1N0VEM1x1Njc5QyIpOmEudGV4dCYmbihhLnRleHQpKX12YXIgdT10LmpvaW4oIiBceEI3ICIpO3JldHVybiB1Lmxlbmd0aD4xODA/dS5zbGljZSgwLDE3NykrIi4uLiI6dX13aW5kb3cuX19jaGF0Rm9sZEp1bXBUb0xhdGVzdD1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1tZXNzYWdlcyIpO2UmJlF2KGUpfSx3aW5kb3cuX19jaGF0Rm9sZFRvZ2dsZUhpc3Rvcnk9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hhdC1vdXRwdXQgLmNoYXQtaGlzdG9yeS1zdW1tYXJ5IiksdD1lP2UucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIpOm51bGw7ZSYmZS5jbGFzc0xpc3QucmVtb3ZlKCJjaGF0LWF1dG8tZm9sZC1oaWRkZW4iKSx0JiZ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSYmd2luZG93Ll9faGlzdG9yeVN1bW1hcnlUb2dnbGUodCl9O2Z1bmN0aW9uIFh2KGUsdCxuLGkpe3ZhciBhPXtzaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0OiExLGhpc3RvcnlJbmRpY2VzOltdLGZpcnN0SGlzdG9yeUVsOm51bGx9O2lmKCFlfHxuPDApcmV0dXJuIGE7Zm9yKHZhciB1PWkmJihlLmNsaWVudEhlaWdodHx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQpfHwwLG89bnVsbCxzPW51bGwsbD0wO2w8dC5sZW5ndGg7bCsrKXt2YXIgZD10W2xdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpZihkIT1udWxsKXt2YXIgZj1wYXJzZUludChkLDEwKTtpc05hTihmKXx8KGY8bj8oYS5oaXN0b3J5SW5kaWNlcy5wdXNoKGYpLGEuZmlyc3RIaXN0b3J5RWx8fChhLmZpcnN0SGlzdG9yeUVsPXRbbF0pKTppJiYob3x8KG89dFtsXSkscz10W2xdKSl9fWlmKGkmJnU+MCYmbyYmcyl7dmFyIGM9by5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaD1NYXRoLm1heChjLmJvdHRvbSx2LmJvdHRvbSktTWF0aC5taW4oYy50b3Asdi50b3ApLGc9TWF0aC5tYXgoMjIwLHUtMjQpO2Euc2hvdWxkQ29sbGFwc2VGb3JWaWV3cG9ydD1oPj1nfXJldHVybiBhfWZ1bmN0aW9uIFp2KGUsdCl7aWYoIWUpcmV0dXJuO3ZhciBuPXIuY3VycmVudE1lc3NhZ2VzfHxbXTt0fHwodD1EdCgpKTtmb3IodmFyIGk9LTEsYT1uLmxlbmd0aC0xO2E+PTA7YS0tKWlmKG5bYV0mJm5bYV0ucm9sZT09PSJ1c2VyIil7aT1hO2JyZWFrfWZ1bmN0aW9uIHUoKXt2YXIgRj1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpO0YmJkYucmVtb3ZlKCk7Zm9yKHZhciBJPWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtaGlzdG9yeS1oaWRkZW4iKSxMPTA7TDxJLmxlbmd0aDtMKyspSVtMXS5jbGFzc0xpc3QucmVtb3ZlKCJjaGF0LWhpc3RvcnktaGlkZGVuIik7ZS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciKX1pZihpPDEpe3UoKTtyZXR1cm59dmFyIG89ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIikscz1EbCh0KSxsPVh2KGUsbyxpLHMmJnIuY2hhdFN0aWNrVG9Cb3R0b20pO2lmKHMmJighci5jaGF0U3RpY2tUb0JvdHRvbXx8IWwuc2hvdWxkQ29sbGFwc2VGb3JWaWV3cG9ydCkpe3UoKTtyZXR1cm59dmFyIGQ9bC5oaXN0b3J5SW5kaWNlcyxmPWwuZmlyc3RIaXN0b3J5RWw7aWYoZC5sZW5ndGg8Mnx8IWYpe3UoKTtyZXR1cm59dmFyIGM9S3YobixkKSx2PVR0KCJoaXN0b3J5LXN1bW1hcnkiLFtpXSksaD1idCh2KT09PSEwLGc9aSsiOiIrZC5sZW5ndGgrIjoiKyhoPzE6MCkrIjoiK2Mucm91bmRzKyI6IitjLnRvb2xzKyI6IitjLmFnZW50cysiOiIrYy5lcnJvcnM7aWYoIShlLmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpPT09ZyYmZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSkpe3ZhciBtPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7bSYmbS5yZW1vdmUoKTtmb3IodmFyIHk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLEM9MDtDPHkubGVuZ3RoO0MrKyl5W0NdLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTt2YXIgRT1kbChjKSxCPUVlKGg/Imhpc3RvcnkuY29sbGFwc2UiOiJoaXN0b3J5LmV4cGFuZCIpLEQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7RC5jbGFzc05hbWU9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5IixELnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmQta2V5Iix2KSxELnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsaD8idHJ1ZSI6ImZhbHNlIiksRC5pbm5lckhUTUw9JzxidXR0b24gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0aGlzKSIgYXJpYS1leHBhbmRlZD0iJysoaD8idHJ1ZSI6ImZhbHNlIikrJyI+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWljb24iPicrVigiZm9sZGVyIix7c2l6ZToxNX0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJvZHkiPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSI+JytwKEIpKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LW1ldGEiPicrcChFKSsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbiI+JytWKCJjaGV2cm9uRG93biIse3NpemU6MTZ9KSsiPC9zcGFuPjwvYnV0dG9uPiIsZS5pbnNlcnRCZWZvcmUoRCxmKSxvdShELGgpLGUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIixnKX19d2luZG93Ll9faGlzdG9yeVN1bW1hcnlUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5jbG9zZXN0P2UuY2xvc2VzdCgiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik6bnVsbDtpZih0KXt2YXIgbj10LmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmQta2V5IiksaT10LmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpIT09InRydWUiO3Quc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixpPyJ0cnVlIjoiZmFsc2UiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsaT8idHJ1ZSI6ImZhbHNlIik7dmFyIGE9dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktdGl0bGUiKTthJiYoYS50ZXh0Q29udGVudD1FZShpPyJoaXN0b3J5LmNvbGxhcHNlIjoiaGlzdG9yeS5leHBhbmQiKSksbiYmJHUobixpKSxvdSh0LGkpO3ZhciB1PXQucGFyZW50RWxlbWVudDtpZihpJiZzdSh1KSx1KXt2YXIgbz11LmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpO2lmKG8pe3ZhciBzPW8uc3BsaXQoIjoiKTtzLmxlbmd0aD49MyYmKHNbMl09aT8iMSI6IjAiLHUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIixzLmpvaW4oIjoiKSkpfX19fTtmdW5jdGlvbiBPaShlKXtpZighZXx8ZS50eXBlIT09InRvb2xfdXNlIilyZXR1cm4gbnVsbDt2YXIgdD1lLmlucHV0fHx7fSxuPXR5cGVvZiB0LnN1YmFnZW50X3R5cGU9PSJzdHJpbmciP3Quc3ViYWdlbnRfdHlwZTpudWxsO3JldHVybiFuJiZlLm5hbWUhPT0iVGFzayImJmUubmFtZSE9PSJBZ2VudCI/bnVsbDp7dGFza0lkOmUuaWQsYWdlbnRUeXBlOm58fHZvaWQgMCx0YXNrRGVzY3JpcHRpb246dHlwZW9mIHQuZGVzY3JpcHRpb249PSJzdHJpbmciP3QuZGVzY3JpcHRpb246dm9pZCAwfX1mdW5jdGlvbiBlbShlKXt2YXIgdD1uZXcgTWFwO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKCEoIWl8fGkucm9sZSE9PSJhc3Npc3RhbnQifHwhQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpKSlmb3IodmFyIGE9MDthPGkuY29udGVudC5sZW5ndGg7YSsrKXt2YXIgdT1pLmNvbnRlbnRbYV07aWYoISghdXx8dS50eXBlIT09InRvb2xfdXNlIikpe3ZhciBvPXUuX19zdWJhZ2VudHx8T2kodSk7byYmdC5zZXQodS5pZCxvKX19fXJldHVybiB0fWZ1bmN0aW9uIHRtKGUpe3ZhciB0PW5ldyBNYXA7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7dmFyIG49bmV3IE1hcCxpPW5ldyBTZXQ7ZnVuY3Rpb24gYShmKXtpZighKCFmfHwhZi50YXNrSWQpJiYhaS5oYXMoZi50YXNrSWQpKXtpLmFkZChmLnRhc2tJZCk7dmFyIGM9cmwoZik7YyYmKG4uaGFzKGMpfHxuLnNldChjLFtdKSxuLmdldChjKS5wdXNoKGYudGFza0lkKSl9fWZvcih2YXIgdT0wO3U8ZS5sZW5ndGg7dSsrKXt2YXIgbz1lW3VdO2lmKCEoIW98fCFBcnJheS5pc0FycmF5KG8uY29udGVudCkpKWZvcih2YXIgcz0wO3M8by5jb250ZW50Lmxlbmd0aDtzKyspe3ZhciBsPW8uY29udGVudFtzXTtpZihsKXt2YXIgZD1sLl9fc3ViYWdlbnR8fChsLnR5cGU9PT0idG9vbF91c2UiP09pKGwpOm51bGwpO2QmJmEoZCl9fX1yZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKGYpe2lmKCEoZi5sZW5ndGg8MikpZm9yKHZhciBjPTA7YzxmLmxlbmd0aDtjKyspdC5zZXQoZltjXSwiICMiKyhjKzEpKX0pLHR9ZnVuY3Rpb24gZmwoZSx0KXt2YXIgbj1bXTtpZighQXJyYXkuaXNBcnJheShlKXx8IWUubGVuZ3RoKXJldHVybiBuO2Zvcih2YXIgaT1udWxsLGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIHU9ZVthXSxvPXUmJnUudHlwZT09PSJ0ZXh0IiYmdS5fX3Byb2Nlc3Npbmc9PT0hMDtpZihvJiZpKXtpLmJsb2Nrcy5wdXNoKHUpO2NvbnRpbnVlfXZhciBzPXUmJnUuX19zdWJhZ2VudD91Ll9fc3ViYWdlbnQ6bnVsbDtzfHwocz1PaSh1KSksIXMmJnUmJnUudHlwZT09PSJ0b29sX3Jlc3VsdCImJnQmJnQuaGFzKHUudG9vbF91c2VfaWQpJiYocz10LmdldCh1LnRvb2xfdXNlX2lkKSk7dmFyIGw9cz9zLnRhc2tJZDpudWxsOyghaXx8aS5rZXkhPT1sKSYmKGk9e2tleTpsLHN1YmFnZW50OnMsYmxvY2tzOltdLGZpcnN0SW5kZXg6YX0sbi5wdXNoKGkpKSxpLmJsb2Nrcy5wdXNoKHUpfXJldHVybiBufWZ1bmN0aW9uIGx1KGUsdCxuLGksYSx1KXt2YXIgbz0iIixzPXV8fHt9O3RyeXtmb3IodmFyIGw9enYoZSksZD0wO2Q8bC5sZW5ndGg7ZCsrKXt2YXIgZj1sW2RdO3RyeXtpZihmLnR5cGU9PT0iZ3JvdXAiKXtmb3IodmFyIGM9W10sdj0wO3Y8Zi5pdGVtcy5sZW5ndGg7disrKWMucHVzaCh7YmxvY2s6Zi5pdGVtc1t2XS5ibG9jayxpbmRleDpmLml0ZW1zW3ZdLmluZGV4K3R9KTtvKz1VdihjLG4saSxhLHMpfWVsc2Ugbys9bWwoZi5ibG9jayxuLGksZi5pbmRleCt0LGEscyl9Y2F0Y2h7bys9JzxkaXYgY2xhc3M9InJlbmRlci1lcnJvciI+XHU2RDg4XHU2MDZGXHU1NzU3XHU2RTMyXHU2N0QzXHU1OTMxXHU4RDI1PC9kaXY+J319fWNhdGNoe28rPSc8ZGl2IGNsYXNzPSJyZW5kZXItZXJyb3IiPlx1NkQ4OFx1NjA2Rlx1NkUzMlx1NjdEM1x1NTkzMVx1OEQyNTwvZGl2Pid9cmV0dXJuIG99ZnVuY3Rpb24gcGwoZSx0LG4saSxhLHUpe2Zvcih2YXIgbz11fHx7fSxzPW8uc2hvd0hhbmRvZmYhPT0hMSxsPSIiLGQ9bnVsbCxmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBjPWVbZl0sdj1jLnN1YmFnZW50P3tpblN1YmFnZW50UGFuZWw6ITB9Ont9LGg9bHUoYy5ibG9ja3MsYy5maXJzdEluZGV4LHQsaSxhLHYpO2lmKCEoIWh8fCFoLnRyaW0oKSkpaWYoYy5zdWJhZ2VudCl7dmFyIGc9cyYmZCE9PWMuc3ViYWdlbnQudGFza0lkO2wrPW5tKGMsbixoLGEsZyksZD1jLnN1YmFnZW50LnRhc2tJZH1lbHNlIGwrPSc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2Utc2VnbWVudCBwYXJlbnQiPicrUW4odCkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij4nK2grIjwvZGl2PjwvZGl2PiIsZD1udWxsfXJldHVybiBsfWZ1bmN0aW9uIG5tKGUsdCxuLGksYSl7dmFyIHU9ZS5zdWJhZ2VudCxvPWFsKHUpLHM9aWwodSksbD11LnRhc2tJZHx8IiIsZD1NaShxaShvKSksZj1ybShlLmJsb2NrcyksYztpZihhKXt2YXIgdj0hISh1LnRhc2tEZXNjcmlwdGlvbiYmU3RyaW5nKHUudGFza0Rlc2NyaXB0aW9uKS50cmltKCkpLGg9dj8nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhc2stZGVzYyI+JytwKHUudGFza0Rlc2NyaXB0aW9uKSsiPC9zcGFuPiI6JzxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10YXNrLWRlc2MiPicrcChFZSgic3ViYWdlbnQuY29udGludWVkIikpKyI8L3NwYW4+IjtjPSc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYXR0cmlidXRpb24iPjxzdHJvbmcgY2xhc3M9InN1YmFnZW50LXBhbmVsLW5hbWUiPicrcChzKSsnPC9zdHJvbmc+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhZyIgdGl0bGU9IicrcChFZSgic3ViYWdlbnQudGFnX3RpdGxlIikpKyciPicrcChFZSgic3ViYWdlbnQudGFnIikpKyI8L3NwYW4+IitoKyI8L3NwYW4+In1lbHNlIGM9JzxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbiI+PHN0cm9uZyBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtbmFtZSI+JytwKHMpKyc8L3N0cm9uZz48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFzay1kZXNjIj4gJytwKEVlKCJzdWJhZ2VudC5jb250aW51ZWQiKSkrIjwvc3Bhbj48L3NwYW4+Ijt2YXIgZz1UdCgic3ViYWdlbnQtcGFuZWwiLFtpLGxdKTtyZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwiIGRhdGEtZXhwYW5kLWtpbmQ9InN1YmFnZW50LXBhbmVsIiBkYXRhLWV4cGFuZC1rZXk9IicrcChnKSsnIiBkYXRhLWFnZW50LWlkPSInK3AobCkrJyIgZGF0YS1leHBhbmRlZD0idHJ1ZSIgc3R5bGU9Ii0tYWdlbnQtY29sb3I6JytvLnByaW1hcnkrJyI+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtaGVhZGVyIiBhcmlhLWxhYmVsPSInK3AoRWUoInN1YmFnZW50LnRpdGxlX2FyaWEiKSkrJyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF2YXRhciIgYXJpYS1oaWRkZW49InRydWUiPicrZCsiPC9zcGFuPiIrYysnPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWNvdW50Ij4nK3AoZisiIFx1Njc2MVx1NTE4NVx1NUJCOSIpKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYm9keSI+JytuKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHJtKGUpe2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiAwO2Zvcih2YXIgdD0wLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTshaXx8IWkudHlwZXx8aS50eXBlIT09InRvb2xfcmVzdWx0IiYmKGkudHlwZT09PSJ0ZXh0IiYmIVN0cmluZyhpLnRleHR8fCIiKS50cmltKCkmJiFpLl9fcHJvY2Vzc2luZ3x8aS50eXBlPT09InRoaW5raW5nIiYmIVN0cmluZyhpLnRoaW5raW5nfHwiIikudHJpbSgpfHx0KyspfXJldHVybiBNYXRoLm1heCgxLHQpfWZ1bmN0aW9uIGltKGUsdCxuLGkpe3ZhciBhPWUucm9sZSx1PVh1KGUsbiksbz1hPT09ImFzc2lzdGFudCI/YW0odCk6IiIscz1hPT09InVzZXIiJiZlLmNvbnRlbnQmJmUuY29udGVudC5zb21lKGZ1bmN0aW9uKEYpe3JldHVybiBGLl9fcXVldWVkfSk7aWYoIWUuY29udGVudHx8ZS5jb250ZW50Lmxlbmd0aD09PTApcmV0dXJuIGE9PT0iYXNzaXN0YW50Ij8nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIj4nK1FuKGEpKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+PGRpdiBjbGFzcz0idHlwaW5nLWluZGljYXRvciI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9kaXY+JytvKyI8L2Rpdj48L2Rpdj4iOic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKycgZW1wdHktbWVzc2FnZSIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrUW4oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij48c3BhbiBjbGFzcz0iZW1wdHktbWVzc2FnZS1oaW50Ij5cdUZGMDhcdTdBN0FcdTZEODhcdTYwNkZcdUZGMDk8L3NwYW4+PC9kaXY+PC9kaXY+Jzt2YXIgbD1OdihlLmNvbnRlbnQpLGQ9YXUoImFzc2lzdGFudCIpO2lmKGEhPT0iYXNzaXN0YW50Iil7dmFyIGY9ZmwoZS5jb250ZW50LGkpLGM9Zi5zb21lKGZ1bmN0aW9uKEYpe3JldHVybiBGLnN1YmFnZW50fSksdj1zPyIgcXVldWVkIjoiIixoPXM/JzxzcGFuIGNsYXNzPSJxdWV1ZWQtYmFkZ2UiPlx1NjM5Mlx1OTYxRlx1NEUyRDwvc3Bhbj4nOiIiLGc9X3YoKTtpZihjKXt2YXIgbT1wbChmLGEsZC5uYW1lLGwsdSx7c2hvd0hhbmRvZmY6ITF9KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSt2KycgbXVsdGktYWdlbnQiIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK20raCsiPC9kaXY+In12YXIgeT1sdShlLmNvbnRlbnQsMCxhLGwsdSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErdisnIiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytRbihhLHtsZWZ0U2xvdDpnfSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij4nK3kraCsiPC9kaXY+PC9kaXY+In12YXIgQz1mbChlLmNvbnRlbnQsaSksRT1DLnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuc3ViYWdlbnR9KTtpZighRSl7dmFyIEI9bHUoZS5jb250ZW50LDAsYSxsLHUpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKyciIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK1FuKGEpKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+JytCK28rIjwvZGl2PjwvZGl2PiJ9dmFyIEQ9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyBtdWx0aS1hZ2VudCIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPic7cmV0dXJuIEQrPXBsKEMsYSxkLm5hbWUsbCx1LHtzaG93SGFuZG9mZjohMH0pLEQrPW8sRCs9IjwvZGl2PiIsRH1mdW5jdGlvbiBQcihlKXtyZXR1cm4gZT49MWU2PyhlLzFlNikudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIikrIk0iOmU+PTFlMz8oZS8xZTMpLnRvRml4ZWQoMSkucmVwbGFjZSgvXC4wJC8sIiIpKyJrIjpTdHJpbmcoTWF0aC5tYXgoMCxNYXRoLnJvdW5kKGV8fDApKSl9ZnVuY3Rpb24gYW0oZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ZS5lc3RpbWF0ZWQ9PT0hMCxuPVtdO3JldHVybihlLmlucHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1OEY5M1x1NTE2NSAiK1ByKGUuaW5wdXRUb2tlbnMpKSwoZS5jYWNoZVJlYWRJbnB1dFRva2Vuc3x8MCk+MCYmbi5wdXNoKCJcdTdGMTNcdTVCNThcdTU0N0RcdTRFMkQgIitQcihlLmNhY2hlUmVhZElucHV0VG9rZW5zKSksKGUuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1N0YxM1x1NUI1OFx1NTE5OVx1NTE2NSAiK1ByKGUuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zKSksKGUub3V0cHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1OEY5M1x1NTFGQSAiKyh0PyJcdTIyNDgiOiIiKStQcihlLm91dHB1dFRva2VucykpLChlLnJlYXNvbmluZ091dHB1dFRva2Vuc3x8MCk+MCYmbi5wdXNoKCJcdTYzQThcdTc0MDYgIisodD8iXHUyMjQ4IjoiIikrUHIoZS5yZWFzb25pbmdPdXRwdXRUb2tlbnMpKSwoZS50b3RhbENvc3RVc2R8fDApPjAmJm4ucHVzaCgiJCIrTnVtYmVyKGUudG90YWxDb3N0VXNkKS50b0ZpeGVkKDQpLnJlcGxhY2UoLzArJC8sIiIpLnJlcGxhY2UoL1wuJC8sIiIpKSxuLmxlbmd0aD09PTAmJnQmJm4ucHVzaCgiXHU2QjYzXHU1NzI4XHU3RURGXHU4QkExXHU3NTI4XHU5MUNGXHUyMDI2Iiksbi5sZW5ndGg9PT0wPyIiOic8ZGl2IGNsYXNzPSJ0dXJuLXVzYWdlLXN1bW1hcnknKyh0PyIgaXMtZXN0aW1hdGVkIjoiIikrJyIgcm9sZT0ic3RhdHVzIiBhcmlhLWxpdmU9InBvbGl0ZSIgYXJpYS1sYWJlbD0iXHU2NzJDXHU4RjZFXHU3NTI4XHU5MUNGICcrcChuLmpvaW4oIlx1RkYwQyIpKSsnIj48c3ZnIGNsYXNzPSJ0dXJuLXVzYWdlLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0yLjUgMTMuNWgxMU00IDExVjcuNU04IDExVjNNMTIgMTFWNS41Ii8+PC9zdmc+PHNwYW4+JytwKG4uam9pbigiIFx4QjcgIikpKyI8L3NwYW4+PC9kaXY+In12YXIgdW09L15ccypcW+mZhOS7tuW3suS4iuS8oO+8jOivt+afpeeci+S7peS4i+aWh+S7tjpcbihbXHNcU10qPylcXVxuKy87ZnVuY3Rpb24gb20oZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYoIXQpcmV0dXJuIiI7dmFyIG49dC5zcGxpdCgiLyIpLnBvcCgpfHx0O2lmKE91KHQpKXt2YXIgaT0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpO3JldHVybic8ZGl2IGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtaW1hZ2UiPjxpbWcgY2xhc3M9InVzZXItYXR0YWNobWVudC10aHVtYiIgbG9hZGluZz0ibGF6eSIgc3JjPSInK2krJyIgYWx0PSInK3AobikrJyIgZGF0YS1wYXRoPSInK3AodCkrYCIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGlmKHdpbmRvdy5fX29wZW5GaWxlUHJldmlldyl3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcodGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGF0aCcpKTsiIG9uZXJyb3I9InZhciB3PXRoaXMuY2xvc2VzdCgnLnVzZXItYXR0YWNobWVudC1pbWFnZScpOyBpZih3KXcuc3R5bGUuZGlzcGxheT0nbm9uZSc7IiAvPjwvZGl2PmB9cmV0dXJuJzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlIiBkYXRhLXBhdGg9IicrcCh0KStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyI+PHNwYW4gY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PHBhdGggZD0iTTkgMS41SDRhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY1LjVMOSAxLjV6Ii8+PHBhdGggZD0iTTkgMS41VjUuNWg0Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtZmlsZS1uYW1lIj5gK3AobikrIjwvc3Bhbj48L2Rpdj4ifWZ1bmN0aW9uIHZsKGUpe3ZhciB0PWV8fCIiLG49dC5tYXRjaCh1bSk7aWYoIW4pcmV0dXJuIHAodCk7Zm9yKHZhciBpPSIiLGE9blsxXS5zcGxpdChgCmApLHU9MDt1PGEubGVuZ3RoO3UrKylpKz1vbShhW3VdKTt2YXIgbz10LnNsaWNlKG5bMF0ubGVuZ3RoKSxzPWk/JzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudHMiPicraSsiPC9kaXY+IjoiIixsPW8udHJpbSgpPyc8ZGl2IGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtdGV4dCI+JytwKG8pKyI8L2Rpdj4iOiIiO3JldHVybiBzK2x9ZnVuY3Rpb24gbWwoZSx0LG4saSxhLHUpe3ZhciBvPXV8fHt9O2lmKCFlfHwhZS50eXBlfHwhby5pblN1YmFnZW50UGFuZWwmJmUudHlwZT09PSJ0b29sX3VzZSImJmUuX19zdWJhZ2VudCYmZS5fX3N1YmFnZW50LnRhc2tJZD09PWUuaWQpcmV0dXJuIiI7aWYoZS50eXBlPT09InRvb2xfcmVzdWx0IiYmZS5fX3N1YmFnZW50JiZlLl9fc3ViYWdlbnQudGFza0lkPT09ZS50b29sX3VzZV9pZClyZXR1cm4gSHYoZSx0KTtzd2l0Y2goZS50eXBlKXtjYXNlInRleHQiOnJldHVybiB0PT09ImFzc2lzdGFudCImJmUuX19wcm9jZXNzaW5nPyc8ZGl2IGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj4nOnQ9PT0iYXNzaXN0YW50Ij9jdShlLnRleHR8fCIiKTp2bChlLnRleHR8fCIiKTtjYXNlInRoaW5raW5nIjp2YXIgcz1lLnRoaW5raW5nfHwiIixsPWUudGhpbmtpbmc9PT12b2lkIDAmJmUudHlwZT09PSJ0aGlua2luZyI7aWYobClyZXR1cm4nPGRpdiBjbGFzcz0idGhpbmtpbmctaW5saW5lIHRoaW5raW5nLXN0cmVhbWluZyIgZGF0YS10aGlua2luZz0iIj48ZGl2IGNsYXNzPSJ0aGlua2luZy1zdHJlYW1pbmctaW5uZXIiPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1zdHJlYW1pbmctaWNvbiBzcGlubmluZyI+XHUyOUJGPC9zcGFuPjxkaXYgY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy10ZXh0Ij48L2Rpdj48L2Rpdj48L2Rpdj4nO2lmKCFzLnRyaW0oKSlyZXR1cm4iIjt2YXIgZD1zLmxlbmd0aD42MD9zLnNsaWNlKDAsNTcpKyJcdTIwMjYiOnMsZj1UdCgidGhpbmtpbmciLFthLGldKSxjPWJ0KGYpLHY9Yz09PW51bGw/U24oInRoaW5raW5nIik6YztyZXR1cm4nPGRpdiBjbGFzcz0idGhpbmtpbmctaW5saW5lICcrKHY/ImV4cGFuZGVkIjoiY29sbGFwc2VkIikrJyIgZGF0YS1leHBhbmQta2luZD0idGhpbmtpbmciIGRhdGEtZXhwYW5kLWtleT0iJytwKGYpKyciIGRhdGEtdGhpbmtpbmc9IicrcChzKSsnIiBvbmNsaWNrPSJfX3RoaW5raW5nVG9nZ2xlKHRoaXMpIj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWljb24iPlx1MjlCRjwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLXByZXZpZXciPicrcCh2P3M6ZCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWFjdGlvbiI+Jysodj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIikrIjwvc3Bhbj48L2Rpdj4iO2Nhc2UidG9vbF91c2UiOnZhciBoPXNsKG4sZS5pZCksZz1mbShlLGgsaSxhLG8pO3JldHVybiBqdihuLGUuaWQpJiYoZz1SdihlLm5hbWV8fCJcdTVERTVcdTUxNzciKStnKSxnO2Nhc2UidG9vbF9yZXN1bHQiOnJldHVybiIiO2RlZmF1bHQ6dmFyIG09ZSYmZS50eXBlP1N0cmluZyhlLnR5cGUpOiJcdTY3MkFcdTc3RTUiLHk9IiI7dHJ5e3k9SlNPTi5zdHJpbmdpZnkoZSxudWxsLDIpfWNhdGNoe3k9Int9In1yZXR1cm5gPGRpdiBjbGFzcz0idW5rbm93bi1ibG9jayBjb2xsYXBzZWQiIG9uY2xpY2s9InRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgnY29sbGFwc2VkJykiPjxkaXYgY2xhc3M9InVua25vd24tYmxvY2staGVhZGVyIj48c3BhbiBjbGFzcz0idW5rbm93bi1ibG9jay1pY29uIj4/PC9zcGFuPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLWxhYmVsIj5cdTY3MkFcdThCQzZcdTUyMkJcdTc2ODRcdTUxODVcdTVCQjlcdTU3NTdcdUZGMUFgK3AobSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idW5rbm93bi1ibG9jay10b2dnbGUiPlx1MjVCQzwvc3Bhbj48L2Rpdj48cHJlIGNsYXNzPSJ1bmtub3duLWJsb2NrLWJvZHkiPicrcCh5KSsiPC9wcmU+PC9kaXY+In19ZnVuY3Rpb24gc20oZSx0LG4saSxhLHUsbyxzKXt2YXIgbD1zfHx7fSxkPWUuaWR8fCJ0b29sLSIrbixmPVR0KCJpbmxpbmUtdG9vbCIsW3UsZHx8byxvXSksYz1idChmKSx2PWUuaW5wdXR8fHt9LGg9cG4odCYmdC5jb250ZW50KSxnPXQmJnQuaXNfZXJyb3IsbT1oLmxlbmd0aD4wLHk9Zz8iXHUyNzE3IjptPyJcdTI3MTMiOiJcdTIwMjYiLEM9IiIsRT0iIixCPSIiLEQ9IiI7aWYobj09PSJSZWFkIil7Qz0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PHBhdGggZD0iTTEgMy41QTEuNSAxLjUgMCAwIDEgMi41IDJoMi43NjRjLjk1OCAwIDEuNzYuNTYgMi4zMTEgMS4xODRDOC40MDUgMy43NyA5LjE0NiA0IDEwIDRoMy41QTEuNSAxLjUgMCAwIDEgMTUgNS41djdhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDEgMTIuNXYtOXoiLz48cGF0aCBkPSJNMiA1LjVoMTJNMiA4aDhNMiAxMC41aDUiLz48L3N2Zz4nO3ZhciBGPXYuZmlsZV9wYXRofHx2LnBhdGh8fGl8fCIiLEk9IiI7di5saW1pdCYmKEk9IiAiK3Yub2Zmc2V0KyItIisodi5vZmZzZXQrdi5saW1pdCkpLEU9RixCPUl9ZWxzZSBpZihuPT09Ikdsb2IiKXtDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI3IiBjeT0iNyIgcj0iNSIvPjxwYXRoIGQ9Ik0xMC41IDEwLjVMMTQgMTQiLz48L3N2Zz4nO3ZhciBMPXYucGF0dGVybnx8IiIsSD12LnBhdGh8fGl8fCIiO0U9TCxCPUh9ZWxzZSBpZihuPT09IkdyZXAiKXtDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI2LjUiIGN5PSI2LjUiIHI9IjQuNSIvPjxwYXRoIGQ9Ik0xMS41IDExLjVMMTUgMTUiLz48L3N2Zz4nO3ZhciBMPXYucGF0dGVybnx8IiIsSD12LnBhdGh8fGl8fCIiO0U9TCxCPUgsdi5jb250ZXh0JiYoQis9IiAtQyIrdi5jb250ZXh0KX1lbHNlIGlmKG49PT0iV2ViRmV0Y2giKXtDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNi41Ii8+PHBhdGggZD0iTTggMS41djEzTTEuNSA4aDEzIi8+PC9zdmc+Jzt2YXIgVT12LnVybHx8IiI7RT1VLEI9YXx8IiJ9ZWxzZSBpZihuPT09IldlYlNlYXJjaCIpe0M9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSI1Ii8+PHBhdGggZD0iTTEwLjUgMTAuNUwxNCAxNCIvPjxwYXRoIGQ9Ik01IDdoNE03IDV2NCIvPjwvc3ZnPic7dmFyIHg9di5xdWVyeXx8IiI7RT14LEI9YXx8IiJ9ZWxzZSBuPT09IlRvZG9SZWFkIj8oQz0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIvPjxwYXRoIGQ9Ik01IDhsMiAyIDQtNCIvPjwvc3ZnPicsRT0iXHU4QkZCXHU1M0Q2XHU1Rjg1XHU1MjlFXHU1MjE3XHU4ODY4IixCPWF8fCIiKTooQz0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iOCIgY3k9IjgiIHI9IjYuNSIvPjxwYXRoIGQ9Ik04IDV2My41TTggMTFoLjAxIi8+PC9zdmc+JyxFPWR1KG4pLEI9YXx8IiIpO2lmKG0pe3ZhciBrPWguc3BsaXQoYApgKTtrLmxlbmd0aD4xMD9EPWsuc2xpY2UoMCwxMCkuam9pbihgCmApK2AKXHUyMDI2YDpEPWh9dmFyIFQ9cChoKSxNPXAoRCksWT1oLHo9IiIsUT1sLmZvcmNlRXhwYW5kZWRUb29sQm9kaWVzPyEwOmM9PT1udWxsP1NuKCJpbmxpbmVUb29scyIpOmM7bT96PSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1leHBhbmRlZCIgc3R5bGU9ImRpc3BsYXk6ICcrKFE/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1yZXN1bHQiPicraGwoaCxuKSsiPC9kaXY+PC9kaXY+IjpnP3o9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWV4cGFuZGVkIiBzdHlsZT0iZGlzcGxheTogJysoUT8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCBpbmxpbmUtdG9vbC1lcnJvciI+JytwKGh8fCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjUiKSsiPC9kaXY+PC9kaXY+Ijp0fHwoej0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtZXhwYW5kZWQiIHN0eWxlPSJkaXNwbGF5OiAnKyhRPyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtbG9hZGluZyI+XHU3QjQ5XHU1Rjg1XHU1NENEXHU1RTk0XHUyMDI2PC9kaXY+PC9kaXY+Jyk7dmFyIGxlPXQmJnQuX3RydW5jYXRlZD09PSEwLGVlPSIiO2lmKG49PT0iUmVhZCIpe3ZhciBaPXYuZmlsZV9wYXRofHx2LnBhdGh8fGl8fCIiO2lmKFomJk91KFopKXt2YXIgcT0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KFopO2VlPSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1pbWFnZSIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ij48aW1nIGNsYXNzPSJpbmxpbmUtdG9vbC1pbWFnZS10aHVtYiIgbG9hZGluZz0ibGF6eSIgc3JjPSInK3ErJyIgYWx0PSInK3AoRikrJyIgZGF0YS1wYXRoPSInK3AoWikrYCIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGlmKHdpbmRvdy5fX29wZW5GaWxlUHJldmlldyl3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcodGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGF0aCcpKTsiIG9uZXJyb3I9InZhciB3PXRoaXMuY2xvc2VzdCgnLmlubGluZS10b29sLWltYWdlJyk7IGlmKHcpdy5zdHlsZS5kaXNwbGF5PSdub25lJzsiIC8+PC9kaXY+YH19dmFyIE89Qj8nPHNwYW4gY2xhc3M9ImlubGluZS10b29sLW1ldGEiPicrcChCKSsiPC9zcGFuPiI6IiIsTj1nPyJpbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUiOiIiO1EmJihOKz0iIGlubGluZS10b29sLW9wZW4iKTt2YXIgRz1sZT8nZGF0YS10cnVuY2F0ZWQ9InRydWUiIGRhdGEtdG9vbC11c2UtaWQ9IicrcChlLmlkfHwiIikrJyIgJzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wgJytOKyciIGRhdGEtZXhwYW5kLWtpbmQ9ImlubGluZS10b29sIiBkYXRhLWV4cGFuZC1rZXk9IicrcChmKSsnIiBkYXRhLXJlc3VsdD0iJytwKFkpKyciIGRhdGEtcHJldmlldz0iJytNKyciIGRhdGEtc3RhdHVzPSInKyhnPyJlcnJvciI6bT8iZG9uZSI6InBlbmRpbmciKSsnIiAnK0crJ29uY2xpY2s9Il9faW5saW5lVG9vbFRvZ2dsZSh0aGlzKSI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcm93Ij48c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtc3RhdHVzIj4nK3krIjwvc3Bhbj4iK0MrJzxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC10aXRsZSI+JytwKEUpKyI8L3NwYW4+IitPKyI8L2Rpdj4iK2VlK3orIjwvZGl2PiJ9ZnVuY3Rpb24gbG0oZSx0LG4saSxhLHUpe3ZhciBvPXV8fHt9LHM9ZS5pbnB1dHx8e30sbD1zLmNvbW1hbmR8fHMuY21kfHwiIixkPXBuKHQmJnQuY29udGVudCksZj1lLmlkfHwidG9vbC0iK24sYz1UdCgidGVybWluYWwiLFtpLGZ8fGEsYV0pLHY9YnQoYyksaD10JiZ0LmlzX2Vycm9yLGc9cy5leGl0Q29kZSxtPWQubGVuZ3RoPjAseT0iIjt0P2g/eT0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLWVycm9yIj48L3NwYW4+JzpnPT09MHx8Zz09PXZvaWQgMD95PSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0tc3VjY2VzcyI+PC9zcGFuPic6eT0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLXdhcm4iPjwvc3Bhbj4nOnk9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS1ydW5uaW5nIj48L3NwYW4+Jztmb3IodmFyIEM9JzxzcGFuIGNsYXNzPSJ0ZXJtLXByb21wdCI+JDwvc3Bhbj4nLEU9cChsKSxCPWQuc3BsaXQoYApgKSxEPSIiLEY9MDtGPEIubGVuZ3RoO0YrKyl7dmFyIEk9QltGXTshSSYmRj09PUIubGVuZ3RoLTF8fChEKz0nPGRpdiBjbGFzcz0idGVybS1saW5lIj4nK3AoSSkrIjwvZGl2PiIpfXZhciBMPSIiO2lmKHQmJmchPT12b2lkIDApe3ZhciBIPWc9PT0wPyJ0ZXJtLWV4aXQtc3VjY2VzcyI6InRlcm0tZXhpdC1lcnJvciI7TD0nPGRpdiBjbGFzcz0idGVybS1leGl0ICcrSCsnIj5leGl0ICcrZysiPC9kaXY+In12YXIgVT1sLmxlbmd0aD44MD9sLnNsaWNlKDAsNzcpKyJcdTIwMjYiOmwseD1vLmZvcmNlRXhwYW5kZWRUb29sQm9kaWVzPyEwOnY9PT1udWxsP1NuKCJ0ZXJtaW5hbCIpOnYsaz10JiZ0Ll90cnVuY2F0ZWQ9PT0hMCxUPWs/JyBkYXRhLXRydW5jYXRlZD0idHJ1ZSIgZGF0YS10b29sLXVzZS1pZD0iJytwKGUuaWR8fCIiKSsnIic6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImlubGluZS10ZXJtaW5hbCIgZGF0YS1leHBhbmQta2luZD0idGVybWluYWwiIGRhdGEtZXhwYW5kLWtleT0iJytwKGMpKyciIGRhdGEtZXhwYW5kZWQ9IicrKHg/InRydWUiOiJmYWxzZSIpKyciJytUKyc+PGRpdiBjbGFzcz0idGVybS1oZWFkZXIiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtZXhwYW5kZWQ9IicrKHg/InRydWUiOiJmYWxzZSIpK2AiIG9uY2xpY2s9Il9fdGVybWluYWxFeHBhbmQodGhpcykiIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5PT09J0VudGVyJ3x8ZXZlbnQua2V5PT09JyAnKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO19fdGVybWluYWxFeHBhbmQodGhpcyk7fSI+YCt5Kyc8c3BhbiBjbGFzcz0idGVybS1jbWQtcHJldmlldyI+PHNwYW4gY2xhc3M9InRlcm0tcHJvbXB0Ij4kPC9zcGFuPiAnK3AoVSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idGVybS10b2dnbGUtaWNvbiI+JysoeD8iXHUyNUJDIjoiXHUyNUI2IikrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ0ZXJtLWJvZHkiIGFyaWEtaGlkZGVuPSInKyh4PyJmYWxzZSI6InRydWUiKSsnIiBzdHlsZT0iZGlzcGxheTonKyh4PyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0idGVybS1jb21tYW5kIj48c3BhbiBjbGFzcz0idGVybS1wcm9tcHQiPiQ8L3NwYW4+ICcrRSsiPC9kaXY+IisoRD8nPGRpdiBjbGFzcz0idGVybS1vdXRwdXQiPicrRCsiPC9kaXY+IjoiIikrTCsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBwbihlKXtyZXR1cm4gZT90eXBlb2YgZT09InN0cmluZyI/ZTpBcnJheS5pc0FycmF5KGUpP2UubWFwKGZ1bmN0aW9uKHQpe2lmKCF0fHx0eXBlb2YgdCE9Im9iamVjdCIpcmV0dXJuIiI7aWYodC50eXBlPT09InRleHQiJiZ0eXBlb2YgdC50ZXh0PT0ic3RyaW5nIilyZXR1cm4gdC50ZXh0O3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9Y2F0Y2h7cmV0dXJuIiJ9fSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oYApgKToiIjoiIn1mdW5jdGlvbiBkbShlLHQsbixpLGEsdSl7dmFyIG89dXx8e30scz1lLmlucHV0fHx7fSxsPXMuZmlsZV9wYXRofHxzLnBhdGh8fCIiLGQ9bC5zcGxpdCgiLyIpLnBvcCgpfHxsLGY9ZS5pZHx8InRvb2wtIituKyItIisodHlwZW9mIGE9PSJudW1iZXIiP2E6MCksYz1zLm9sZF9zdHJpbmd8fCIiLHY9cy5uZXdfc3RyaW5nfHxzLmNvbnRlbnR8fCIiLGg9cy5vbGRfY29udGVudHx8IiIsZz1zLm5ld19jb250ZW50fHwiIixtPXMudW5pZmllZF9kaWZmfHxzLmRpZmZ8fCIiLHk9cy5raW5kfHwiIixDPW49PT0iV3JpdGUifHxuPT09Ik11bHRpRWRpdCIsRT10JiZ0LmlzX2Vycm9yLEI9cG4odCYmdC5jb250ZW50KSxEPSEhKEImJkIudHJpbSgpLmxlbmd0aD4wKSxGPSIiLEk9IiIsTD0iIjttP0w9JzxkaXYgY2xhc3M9ImRpZmYtY29sIGRpZmYtY29sLWZ1bGwiPjxkaXYgY2xhc3M9ImRpZmYtY29sLWxhYmVsIj5EaWZmPC9kaXY+JytjbShtKSsiPC9kaXY+IjpDP0k9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSBkaWZmLWFkZCI+KyAnK3AoZykrIjwvZGl2PiI6KGMmJihGPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1yZW1vdmUiPi0gJytwKGMpKyI8L2Rpdj4iKSx2JiYoST0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtYWRkIj4rICcrcCh2KSsiPC9kaXY+IikpO3ZhciBIPSIiLFU9IiI7dD9FPyhIPSJkaWZmLWVycm9yIixVPUIuaW5kZXhPZigiaGF2ZW4ndCBncmFudGVkIikhPT0tMXx8Qi5pbmRleE9mKCJwZXJtaXNzaW9uIikhPT0tMT8iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjoiXHU1OTMxXHU4RDI1Iik6KEg9ImRpZmYtc3VjY2VzcyIsVT15PT09ImFkZCI/Ilx1NURGMlx1NjVCMFx1NTg5RSI6eT09PSJkZWxldGUiPyJcdTVERjJcdTUyMjBcdTk2NjQiOnk9PT0ibW92ZSI/Ilx1NURGMlx1NzlGQlx1NTJBOCI6Ilx1NURGMlx1NEZFRVx1NjUzOSIpOihIPSJkaWZmLXBlbmRpbmciLFU9Ilx1NjI2N1x1ODg0Q1x1NEUyRCIpO3ZhciB4PVR0KCJkaWZmIixbaSxmfHxhLGFdKSxrPWJ0KHgpLFQ9U24oImVkaXRDYXJkcyIpLE09by5mb3JjZUV4cGFuZGVkVG9vbEJvZGllcz8hMDprPT09bnVsbD9UOmssWT1NPyIiOiIgY29sbGFwc2VkIix6PSFMJiZGJiZJLFE9ej8iZGlmZi1jb2wtaGFsZiI6ImRpZmYtY29sLWZ1bGwiLGxlPUx8fCh6Pyc8ZGl2IGNsYXNzPSJkaWZmLWNvbCAnK1ErJyI+PGRpdiBjbGFzcz0iZGlmZi1jb2wtbGFiZWwiPlx1NjVFNzwvZGl2PicrRisiPC9kaXY+IjoiIikrJzxkaXYgY2xhc3M9ImRpZmYtY29sICcrUSsnIj48ZGl2IGNsYXNzPSJkaWZmLWNvbC1sYWJlbCI+Jysoej8iXHU2NUIwIjoiIikrIjwvZGl2PiIrKEl8fEZ8fGdsKGwpKSsiPC9kaXY+IixlZT1sPyc8YnV0dG9uIGNsYXNzPSJkaWZmLW9wZW4tZmlsZSIgdHlwZT0iYnV0dG9uIiBkYXRhLXBhdGg9IicrcChsKStgIiB0aXRsZT0iXHU2MjUzXHU1RjAwXHU2NTg3XHU0RUY2IiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyI+XHU2MjUzXHU1RjAwPC9idXR0b24+YDoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLWRpZmYnK1krJyIgZGF0YS10b29sLW5hbWU9IicrcChuKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJkaWZmIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh4KSsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AoZikrJyIgZGF0YS1wYXRoPSInK3AobCkrJyI+PGRpdiBjbGFzcz0iZGlmZi1oZWFkZXIiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtZXhwYW5kZWQ9IicrKE0/InRydWUiOiJmYWxzZSIpK2AiIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5PT09J0VudGVyJ3x8ZXZlbnQua2V5PT09JyAnKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO19fdGNUb2dnbGUoZXZlbnQsdGhpcyk7fSI+PHNwYW4gY2xhc3M9ImRpZmYtZmlsZS1pY29uIj48L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtZmlsZS1uYW1lIj5gK3AoZCkrIjwvc3Bhbj4iK2d0KGwsImRpZmYtcGF0aCIpKyc8c3BhbiBjbGFzcz0iZGlmZi1zdGF0dXMgJytIKyciPicrVSsiPC9zcGFuPiIrZWUrJzxzcGFuIGNsYXNzPSJkaWZmLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImRpZmYtYm9keSIgYXJpYS1oaWRkZW49IicrKE0/ImZhbHNlIjoidHJ1ZSIpKyciPjxkaXYgY2xhc3M9ImRpZmYtY29sdW1ucyI+JytsZSsiPC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBjbShlKXtmb3IodmFyIHQ9U3RyaW5nKGV8fCIiKS5zcGxpdChgCmApLG49NjAwLGk9IiIsYT0wO2E8dC5sZW5ndGgmJmE8bjthKyspe3ZhciB1PXRbYV0sbz0iZGlmZi1jb250ZXh0IjsvXkBALy50ZXN0KHUpP289ImRpZmYtaHVuayI6L15cKy8udGVzdCh1KSYmIS9eXCtcK1wrLy50ZXN0KHUpP289ImRpZmYtYWRkIjovXi0vLnRlc3QodSkmJiEvXi0tLS8udGVzdCh1KSYmKG89ImRpZmYtcmVtb3ZlIiksaSs9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSAnK28rJyI+JytwKHV8fCIgIikrIjwvZGl2PiJ9cmV0dXJuIHQubGVuZ3RoPm4mJihpKz0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtY29udGV4dCI+XHUyMDI2XHVGRjA4XHU1REYyXHU2MjJBXHU2NUFEICcrKHQubGVuZ3RoLW4pKyIgXHU4ODRDXHVGRjA5PC9kaXY+IiksaXx8Z2woIiIpfWZ1bmN0aW9uIGdsKGUpe3ZhciB0PWU/Ilx1RkYwQ1x1NTNFRlx1NjI1M1x1NUYwMFx1NjU4N1x1NEVGNlx1NjdFNVx1NzcwQlx1NUY1M1x1NTI0RFx1NTE4NVx1NUJCOSI6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImRpZmYtZW1wdHkiPkNvZGV4IFx1NjcyQVx1NjNEMFx1NEY5Qlx1NTE4NVx1ODA1NCBkaWZmJyt0KyJcdTMwMDI8L2Rpdj4ifWZ1bmN0aW9uIGhsKGUsdCl7cmV0dXJuIGU/JzxwcmUgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdC10ZXh0IiBzdHlsZT0ibWF4LWhlaWdodDogMzAwcHg7IG92ZXJmbG93LXk6IGF1dG87Ij4nK3AoZSkrIjwvcHJlPiI6JzxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC1lbXB0eSI+XHU2NUUwXHU4RjkzXHU1MUZBPC9zcGFuPid9ZnVuY3Rpb24gZm0oZSx0LG4saSxhKXt2YXIgdT1hfHx7fSxvPWUubmFtZXx8InVua25vd24iLHM9ZS5pZHx8InRvb2wtIitvKyItIisodHlwZW9mIG49PSJudW1iZXIiP246MCksbD12bShvLGUuaW5wdXQpO2lmKG89PT0iUmVhZCJ8fG89PT0iR2xvYiJ8fG89PT0iR3JlcCJ8fG89PT0iV2ViRmV0Y2gifHxvPT09IldlYlNlYXJjaCJ8fG89PT0iVG9kb1JlYWQiKXJldHVybiBzbShlLHQsbyxsLCIiLGksbix1KTtpZihvPT09IkJhc2giKXJldHVybiBsbShlLHQsbyxpLG4sdSk7aWYobz09PSJFZGl0Inx8bz09PSJXcml0ZSJ8fG89PT0iTXVsdGlFZGl0IilyZXR1cm4gZG0oZSx0LG8saSxuLHUpO2lmKG89PT0iQXNrVXNlclF1ZXN0aW9uIiYmZS5pbnB1dCYmZS5pbnB1dC5xdWVzdGlvbnMpe3ZhciBkPWUuaW5wdXQucXVlc3Rpb25zO2lmKGQmJmQubGVuZ3RoPjApe2Zvcih2YXIgZj0hIXQsYz1yLmFza1VzZXJTZWxlY3Rpb25zW3NdfHx7fSx2PSEhYy5zdWJtaXR0ZWQsaD1mP3BuKHQuY29udGVudCk6IiIsZz1oP2gudHJpbSgpLnNwbGl0KGAKYCk6W10sbT0iIix5PTA7eTxkLmxlbmd0aDt5KyspaWYoZFt5XS5oZWFkZXIpe209ZFt5XS5oZWFkZXI7YnJlYWt9dmFyIEM9bT8nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXN1bW1hcnkiPicrcChtKSsiPC9zcGFuPiI6IiIsRT0iIjtkLmZvckVhY2goZnVuY3Rpb24oX2UsJCl7dmFyIGZlPSEhX2UubXVsdGlTZWxlY3QsQ2U9X2UucXVlc3Rpb24/JzxkaXYgY2xhc3M9ImFzay11c2VyLXRpdGxlIj4nK3AoX2UucXVlc3Rpb24pKyI8L2Rpdj4iOiIiLEJlPSIiO19lLm9wdGlvbnMmJl9lLm9wdGlvbnMubGVuZ3RoPjAmJihCZT0nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9ucyIgZGF0YS1tdWx0aS1zZWxlY3Q9IicrZmUrJyI+JyxfZS5vcHRpb25zLmZvckVhY2goZnVuY3Rpb24odmUsRmUpe3ZhciBldD12ZS5sYWJlbD9wKHZlLmxhYmVsKToiXHU5MDA5XHU5ODc5ICIrKEZlKzEpLGR0PXZlLmRlc2NyaXB0aW9uPyc8ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tZGVzYyI+JytwKHZlLmRlc2NyaXB0aW9uKSsiPC9kaXY+IjoiIjtpZihmKXt2YXIgaXQ9Z1skXXx8Z1swXXx8IiIsTmU9aXQuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oUGUpe3JldHVybiBQZS50cmltKCl9KSxSdD1OZS5pbmRleE9mKHZlLmxhYmVsfHwiIikhPT0tMTtCZSs9JzxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbiBhc2stdXNlci1vcHRpb24tcmVhZG9ubHknKyhSdD8iIGFzay11c2VyLW9wdGlvbi1jaG9zZW4iOiIiKSsnIj48c3BhbiBjbGFzcz0iYXNrLXVzZXItaW5kaWNhdG9yIj48L3NwYW4+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWNvbnRlbnQiPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1sYWJlbCI+JytldCsiPC9kaXY+IitkdCsiPC9kaXY+PC9kaXY+In1lbHNle3ZhciBZZT0oY1skXXx8W10pLmluZGV4T2YoRmUpIT09LTEsRGU9dj8iIGRpc2FibGVkIjoiIjtCZSs9JzxidXR0b24gY2xhc3M9ImFzay11c2VyLW9wdGlvbicrKFllPyIgc2VsZWN0ZWQiOiIiKSsnIiBkYXRhLW9wdGlvbi1pbmRleD0iJytGZSsnIiBkYXRhLXF1ZXN0aW9uLWluZGV4PSInKyQrJyIgZGF0YS1vcHRpb24tbGFiZWw9IicrcCh2ZS5sYWJlbHx8Ilx1OTAwOVx1OTg3OSAiKyhGZSsxKSkrYCIgb25jbGljaz0iX19hc2tTZWxlY3QoJ2ArcChzKSsiJywiKyQrIiwiK0ZlKyIsIitmZSsnKSInK0RlKyc+PHNwYW4gY2xhc3M9ImFzay11c2VyLWluZGljYXRvciI+PC9zcGFuPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1jb250ZW50Ij48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tbGFiZWwiPicrZXQrIjwvZGl2PiIrZHQrIjwvZGl2PjwvYnV0dG9uPiJ9fSksQmUrPSI8L2Rpdj4iKSxFKz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItcXVlc3Rpb24tZ3JvdXAiIGRhdGEtcXVlc3Rpb24taW5kZXg9IicrJCsnIj4nK0NlK0JlKyI8L2Rpdj4ifSk7dmFyIEI9IiI7aWYoIWYpe2Zvcih2YXIgRD0hMCxGPTA7RjxkLmxlbmd0aDtGKyspaWYoIWNbRl18fGNbRl0ubGVuZ3RoPT09MCl7RD0hMTticmVha312YXIgST0hRHx8dj8iIGRpc2FibGVkIjoiIixMPXY/IiBhc2stdXNlci1zdWJtaXR0ZWQiOiIiLEg9dj8iXHU1REYyXHU2M0QwXHU0RUE0Li4uIjoiXHU3ODZFXHU4QkE0XHU2M0QwXHU0RUE0IjtCPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJhc2stdXNlci1zdWJtaXQnK0wrJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKHMpK2AiIG9uY2xpY2s9Il9fYXNrU3VibWl0KCdgK3AocykrYCcpImArSSsiPiIrSCsiPC9idXR0b24+PC9kaXY+In12YXIgVT0iIjtpZihmJiZoKXt2YXIgeD1oLnRyaW0oKS5yZXBsYWNlKC9cbi9nLCIsICIpO3gubGVuZ3RoPjQwJiYoeD14LnNsaWNlKDAsMzcpKyIuLi4iKSxVPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtZmlsZSI+JytwKHgpKyI8L3NwYW4+In12YXIgaz1UdCgidG9vbC1jYXJkIixbaSxzXSksVD1idChrKSxNPXUuZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6VD09PW51bGw/IWY6VCxZPU0/IiI6IiBjb2xsYXBzZWQiLHo9Zj8iIGFzay11c2VyLWFuc3dlcmVkIjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0idG9vbC11c2UtY2FyZCBhc2stdXNlcicreitZKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcChzKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWNhcmQiIGRhdGEtZXhwYW5kLWtleT0iJytwKGspKyciPjxkaXYgY2xhc3M9InRvb2wtdXNlLWhlYWRlciIgZGF0YS10b29sLXRvZ2dsZSBvbmNsaWNrPSJfX3RjVG9nZ2xlKGV2ZW50LHRoaXMpIj48c3BhbiBjbGFzcz0idG9vbC11c2UtaWNvbiI+JysoZj8iXHUyNzEzIjoiPyIpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRvb2wtdXNlLW5hbWUiPlx1NjNEMFx1OTVFRTwvc3Bhbj4nK0MrVSsnPHNwYW4gY2xhc3M9InRvb2wtdXNlLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtdXNlLWJvZHkgYXNrLXVzZXItYm9keSI+JytFK0IrIjwvZGl2PjwvZGl2PiJ9fXZhciBRPWUuZGVzY3JpcHRpb258fGUuaW5wdXQmJmUuaW5wdXQuZGVzY3JpcHRpb258fCIiLGxlPXBtKGUubmFtZSxlLmlucHV0KSxlZT0iIixaPSIiO1E/KGVlPVEubGVuZ3RoPjgwP1Euc2xpY2UoMCw3NykrIi4uLiI6USxsJiYoWj0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLWZpbGUiPicrcChsKSsiPC9zcGFuPiIpKTooZWU9ZHUobyksbCYmKFo9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AobCkrIjwvc3Bhbj4iKSxsZSYmKForPSc8c3BhbiBjbGFzcz0idG9vbC11c2Utc3VtbWFyeSI+JytwKGxlKSsiPC9zcGFuPiIpKTt2YXIgcT1lLmlucHV0P0pTT04uc3RyaW5naWZ5KGUuaW5wdXQsbnVsbCwyKToie30iLE89ImxvYWRpbmciLE49JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zcGlubmVyIj48L3NwYW4+JyxHPSIiO2lmKHQpe3ZhciBKPXQuaXNfZXJyb3IsbmU9cG4odC5jb250ZW50KTtPPUo/ImVycm9yIjoic3VjY2VzcyIsTj15bChvKTt2YXIgZGU9bmUmJm5lLnRyaW0oKS5sZW5ndGg+MDtkZT9HPSc8cHJlIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtY29udGVudCI+JytwKG5lKSsiPC9wcmU+IjpHPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtcmVzdWx0LWVtcHR5Ij5cdTY1RTBcdThGOTNcdTUxRkE8L3NwYW4+J31lbHNlIE49eWwobyk7dmFyIHJlPVR0KCJ0b29sLWNhcmQiLFtpLHNdKSxpZT1idChyZSkscWU9U24oImVkaXRDYXJkcyIpLGdlPXUuZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6aWU9PT1udWxsP3FlOmllLGNlPXQmJnQuX3RydW5jYXRlZD09PSEwLFI9Z2U/IiI6IiBjb2xsYXBzZWQiLGh0PSc8c3BhbiBjbGFzcz0idG9vbC11c2UtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+JztyZXR1cm4nPGRpdiBjbGFzcz0idG9vbC11c2UtY2FyZCAnK08rUisnIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWNhcmQiIGRhdGEtZXhwYW5kLWtleT0iJytwKHJlKSsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AocykrJyInKyhjZT8nIGRhdGEtdHJ1bmNhdGVkPSJ0cnVlIic6IiIpKyc+PGRpdiBjbGFzcz0idG9vbC11c2UtaGVhZGVyIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLWV4cGFuZGVkPSInKyhnZT8idHJ1ZSI6ImZhbHNlIikrYCIgZGF0YS10b29sLXRvZ2dsZSBvbmNsaWNrPSJfX3RjVG9nZ2xlKGV2ZW50LHRoaXMpIiBvbmtleWRvd249ImlmKGV2ZW50LmtleT09PSdFbnRlcid8fGV2ZW50LmtleT09PScgJyl7ZXZlbnQucHJldmVudERlZmF1bHQoKTtfX3RjVG9nZ2xlKGV2ZW50LHRoaXMpO30iPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1pY29uIj5gK04rJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC11c2UtbmFtZSI+JytwKGVlKSsiPC9zcGFuPiIrWitodCsnPC9kaXY+PGRpdiBjbGFzcz0idG9vbC11c2UtYm9keSIgYXJpYS1oaWRkZW49IicrKGdlPyJmYWxzZSI6InRydWUiKSsnIj4nKyhRPyc8ZGl2IGNsYXNzPSJ0b29sLXVzZS1tZXRhIj48c3BhbiBjbGFzcz0idG9vbC11c2UtbWV0YS1sYWJlbCI+XHU1REU1XHU1MTc3XHVGRjFBPC9zcGFuPicrcChvKSsiPC9kaXY+IjoiIikrJzxwcmUgY2xhc3M9InRvb2wtdXNlLWNvbnRlbnQiPicrcChxKSsiPC9wcmU+IisoRz8nPGRpdiBjbGFzcz0idG9vbC11c2UtcmVzdWx0Ij4nK0crIjwvZGl2PiI6IiIpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGR1KGUpe3ZhciB0PXtSZWFkOiJcdThCRkJcdTUzRDZcdTY1ODdcdTRFRjYiLFdyaXRlOiJcdTUxOTlcdTUxNjVcdTY1ODdcdTRFRjYiLEVkaXQ6Ilx1N0YxNlx1OEY5MVx1NjU4N1x1NEVGNiIsTXVsdGlFZGl0OiJcdTU5MUFcdTU5MDRcdTdGMTZcdThGOTEiLEJhc2g6Ilx1NjI2N1x1ODg0Q1x1NTQ3RFx1NEVFNCIsR3JlcDoiXHU2NDFDXHU3RDIyXHU1MTg1XHU1QkI5IixHbG9iOiJcdTY3RTVcdTYyN0VcdTY1ODdcdTRFRjYiLFdlYkZldGNoOiJcdTgzQjdcdTUzRDZcdTdGNTFcdTk4NzUiLFdlYlNlYXJjaDoiXHU2NDFDXHU3RDIyXHU3RjUxXHU5ODc1IixUYXNrOiJcdTRFRkJcdTUyQTEiLFRvZG9Xcml0ZToiXHU2NkY0XHU2NUIwXHU1Rjg1XHU1MjlFIixUb2RvUmVhZDoiXHU4QkZCXHU1M0Q2XHU1Rjg1XHU1MjlFIixOb3RlYm9va0VkaXQ6Ilx1N0YxNlx1OEY5MVx1N0IxNFx1OEJCMFx1NjcyQyIsQWdlbnQ6Ilx1NUI1MFx1NEVFM1x1NzQwNiIsQXNrVXNlclF1ZXN0aW9uOiJcdTYzRDBcdTk1RUUiLEV4aXQ6Ilx1OTAwMFx1NTFGQSJ9O3JldHVybiB0W2VdfHxlfWZ1bmN0aW9uIHlsKGUpe3ZhciB0PXtSZWFkOiJSIixXcml0ZToiVyIsRWRpdDoiRSIsTXVsdGlFZGl0OiJFIixCYXNoOiIkIixHcmVwOiJHIixHbG9iOiJGIixXZWJGZXRjaDoiXHUyMUUzIixXZWJTZWFyY2g6Ilx1MjFFMiIsVGFzazoiVCIsVG9kb1dyaXRlOiJcdTI2MTAiLFRvZG9SZWFkOiJcdTI2MTEiLE5vdGVib29rRWRpdDoiTiIsQWdlbnQ6IkEiLEV4aXQ6Ilx4RDcifTtyZXR1cm4gdFtlXXx8Ilx4QjcifWZ1bmN0aW9uIHBtKGUsdCl7aWYoIXR8fHR5cGVvZiB0IT0ib2JqZWN0IilyZXR1cm4iIjt2YXIgbj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aD09PTApcmV0dXJuInt9IjtpZihlPT09IlJlYWQiKXJldHVybiJcdThCRkJcdTUzRDZcdTY1ODdcdTRFRjYiO2lmKGU9PT0iV3JpdGUiKXJldHVybiJcdTUxOTlcdTUxNjVcdTY1ODdcdTRFRjYiO2lmKGU9PT0iRWRpdCIpe3ZhciBpPXQuZWRpdHM/dC5lZGl0cy5sZW5ndGg6MDtyZXR1cm4iXHU3RjE2XHU4RjkxICgiK2krIiBcdTU5MDRcdTRGRUVcdTY1MzkpIn1pZihlPT09IkJhc2giKXt2YXIgYT10LmNvbW1hbmR8fCIiO2lmKGEpe3ZhciB1PWEubGVuZ3RoPjYwP2Euc2xpY2UoMCw2MCkrIi4uLiI6YTtyZXR1cm4iXHU1NDdEXHU0RUU0XHVGRjFBIit1fX1pZihlPT09IkdyZXAiKXt2YXIgbz10LnBhdHRlcm58fCIiLHM9dC5wYXRofHwiIjtpZihvKXJldHVybiJcdTY0MUNcdTdEMjJcdUZGMUEiK28rKHM/IiAoXHU1NzI4ICIrcysiKSI6IiIpfWlmKGU9PT0iR2xvYiIpe3ZhciBvPXQucGF0dGVybnx8IiI7aWYobylyZXR1cm4iXHU2N0U1XHU2MjdFXHVGRjFBIitvfWlmKGU9PT0iQWdlbnQiKXt2YXIgbD10LnByb21wdHx8dC50YXNrfHwiIjtpZihsKXt2YXIgZD1sLmxlbmd0aD40MD9sLnNsaWNlKDAsNDApKyIuLi4iOmw7cmV0dXJuIlx1NEVGQlx1NTJBMVx1RkYxQSIrZH19aWYoZT09PSJUYXNrIil7dmFyIGw9dC50YXNrfHx0LmRlc2NyaXB0aW9ufHwiIjtpZihsKXt2YXIgZD1sLmxlbmd0aD40MD9sLnNsaWNlKDAsNDApKyIuLi4iOmw7cmV0dXJuIlx1NEVGQlx1NTJBMVx1RkYxQSIrZH19aWYoZT09PSJUb2RvV3JpdGUiKXt2YXIgZj10LnRvZG9zfHxbXTtyZXR1cm4iXHU2NkY0XHU2NUIwXHU1Rjg1XHU1MjlFICgiK2YubGVuZ3RoKyIgXHU5ODc5KSJ9aWYoZT09PSJXZWJTZWFyY2giKXt2YXIgYz10LnF1ZXJ5fHwiIjtpZihjKXJldHVybiJcdTY0MUNcdTdEMjJcdUZGMUEiK2N9dmFyIHY9blswXSxoPXRbdl07aWYodHlwZW9mIGg9PSJzdHJpbmciKXt2YXIgZz1oLmxlbmd0aD41MD9oLnNsaWNlKDAsNTApKyIuLi4iOmg7cmV0dXJuIHYrIjogIitnfXJldHVybiBuLmxlbmd0aCsiIFx1NEUyQVx1NTNDMlx1NjU3MCJ9ZnVuY3Rpb24gdm0oZSx0KXtpZighdClyZXR1cm4gbnVsbDt2YXIgbj10LmZpbGVfcGF0aHx8dC5wYXRofHx0LmN3ZDtyZXR1cm4gbj9uLmxlbmd0aD41MD8iLi4uIituLnNsaWNlKC00Nyk6bjpudWxsfWZ1bmN0aW9uIG1tKGUpe2lmKCFlKXJldHVybiIiO2Zvcih2YXIgdD1gCmAsbj1lLnNwbGl0KHQpLGk9W10sYT0hMSx1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBvPW5bdV0scz1vLnRyaW0oKTtpZighKCFhJiYhcykpe2lmKGE9ITAscy5pbmRleE9mKCJcdTIzRkEiKT09PTAmJnMubGVuZ3RoPjIpe2kucHVzaChzLnNsaWNlKDEpLnRyaW0oKSk7Y29udGludWV9aWYocy5pbmRleE9mKCJcdTI1Q0YiKT09PTApe2lmKHM9cy5zbGljZSgxKS50cmltKCksIXMpY29udGludWU7bz1zfWkucHVzaChvKX19Zm9yKDtpLmxlbmd0aD4wJiYhaVtpLmxlbmd0aC0xXS50cmltKCk7KWkucG9wKCk7Zm9yKHZhciBsPVtdLGQ9e30sZj0wO2Y8aS5sZW5ndGg7ZisrKXt2YXIgYz1pW2ZdLnJlcGxhY2UoL1xzKy9nLCIiKTtjLmxlbmd0aD41JiZkW2NdfHwoYy5sZW5ndGg+NSYmKGRbY109ITApLGwucHVzaChpW2ZdKSl9cmV0dXJuIGwuam9pbih0KX1mdW5jdGlvbiBibChlKXt2YXIgdD1gCmAsbj1lLnNwbGl0KHQpLGk9W10sYT0wO2Z1bmN0aW9uIHUobSl7dmFyIHk9bS50cmltKCk7cmV0dXJuIHkuY2hhckF0KDApPT09InwiJiYoeT15LnNsaWNlKDEpKSx5LmNoYXJBdCh5Lmxlbmd0aC0xKT09PSJ8IiYmKHk9eS5zbGljZSgwLC0xKSkseS5zcGxpdCgifCIpfWZ1bmN0aW9uIG8obSl7cmV0dXJuIG0/JyBzdHlsZT0idGV4dC1hbGlnbjonK20rJyInOiIifWZ1bmN0aW9uIHMobSx5LEMpe3ZhciBFPSI8dGhlYWQ+PHRyPiIrbS5tYXAoZnVuY3Rpb24oRCxGKXtyZXR1cm4iPHRoIitvKHlbRl0pKyI+IitELnRyaW0oKSsiPC90aD4ifSkuam9pbigiIikrIjwvdHI+PC90aGVhZD4iLEI9Qy5sZW5ndGg/Ijx0Ym9keT4iK0MubWFwKGZ1bmN0aW9uKEQpe3JldHVybiI8dHI+IitELm1hcChmdW5jdGlvbihGLEkpe3JldHVybiI8dGQiK28oeVtJXSkrIj4iK0YudHJpbSgpKyI8L3RkPiJ9KS5qb2luKCIiKSsiPC90cj4ifSkuam9pbigiIikrIjwvdGJvZHk+IjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0ibWQtdGFibGUtd3JhcCI+PHRhYmxlIGNsYXNzPSJtZC10YWJsZSI+JytFK0IrIjwvdGFibGU+PC9kaXY+In1mb3IoO2E8bi5sZW5ndGg7KXt2YXIgbD1uW2FdO2lmKGwuaW5kZXhPZigifCIpIT09LTEmJmErMTxuLmxlbmd0aCl7dmFyIGQ9blthKzFdLnRyaW0oKTtpZigvXlx8P1xzKjo/LSs6PyhccypcfFxzKjo/LSs6PykrXHMqXHw/JC8udGVzdChkKSl7Zm9yKHZhciBmPXUobCksYz11KGQpLm1hcChmdW5jdGlvbihtKXt2YXIgeT1tLnRyaW0oKSxDPXkuY2hhckF0KDApPT09IjoiLEU9eS5jaGFyQXQoeS5sZW5ndGgtMSk9PT0iOiI7cmV0dXJuIEMmJkU/ImNlbnRlciI6RT8icmlnaHQiOkM/ImxlZnQiOiIifSksdj1bXSxoPWErMjtoPG4ubGVuZ3RoOyl7dmFyIGc9bltoXS50cmltKCk7aWYoIWd8fGcuaW5kZXhPZigifCIpPT09LTEpYnJlYWs7di5wdXNoKHUobltoXSkpLGgrPTF9aS5wdXNoKCIiLHMoZixjLHYpLCIiKSxhPWg7Y29udGludWV9fWkucHVzaChsKSxhKz0xfXJldHVybiBpLmpvaW4odCl9ZnVuY3Rpb24gY3UoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9cChlKSxuPSJgIixpPWAKYDtmdW5jdGlvbiBhKHEsTyxOLEcpe2Zvcih2YXIgSj0wOzspe3ZhciBuZT1xLmluZGV4T2YoTyxKKTtpZihuZT09PS0xKWJyZWFrO3ZhciBkZT1xLmluZGV4T2YoTyxuZStPLmxlbmd0aCk7aWYoZGU9PT0tMSlicmVhazt2YXIgcmU9cS5zbGljZShuZStPLmxlbmd0aCxkZSk7aWYoIXJlKXtKPWRlK08ubGVuZ3RoO2NvbnRpbnVlfXZhciBpZT1OK3JlK0c7cT1xLnNsaWNlKDAsbmUpK2llK3Euc2xpY2UoZGUrTy5sZW5ndGgpLEo9bmUraWUubGVuZ3RofXJldHVybiBxfWZ1bmN0aW9uIHUocSl7cmV0dXJuIHE+PTQ4JiZxPD01N3x8cT49NjUmJnE8PTkwfHxxPj05NyYmcTw9MTIyfHxxPT09OTV9ZnVuY3Rpb24gbyhxLE8sTil7Zm9yKHZhciBHPTA7RzxxLmxlbmd0aDspe3ZhciBKPXEuaW5kZXhPZigiXyIsRyk7aWYoSj09PS0xKWJyZWFrO3ZhciBuZT1KPjA/cS5jaGFyQ29kZUF0KEotMSk6MDtpZih1KG5lKSl7Rz1KKzE7Y29udGludWV9Zm9yKHZhciBkZT1KKzEscmU9LTE7ZGU8cS5sZW5ndGg7KXt2YXIgaWU9cS5pbmRleE9mKCJfIixkZSk7aWYoaWU9PT0tMSlicmVhazt2YXIgcWU9aWUrMSxnZT1xZTxxLmxlbmd0aD9xLmNoYXJDb2RlQXQocWUpOjA7aWYoIXUoZ2UpKXtyZT1pZTticmVha31kZT1pZSsxfWlmKHJlPT09LTEpYnJlYWs7dmFyIGNlPXEuc2xpY2UoSisxLHJlKTtpZighY2Upe0c9cmUrMTtjb250aW51ZX12YXIgUj1PK2NlK047cT1xLnNsaWNlKDAsSikrUitxLnNsaWNlKHJlKzEpLEc9SitSLmxlbmd0aH1yZXR1cm4gcX1mdW5jdGlvbiBzKHEsTyxOLEcpe3JldHVybiBxLnNwbGl0KGkpLm1hcChmdW5jdGlvbihKKXtyZXR1cm4gSi5pbmRleE9mKE8pIT09MD9KOk4rSi5zbGljZShPLmxlbmd0aCkrR30pLmpvaW4oaSl9ZnVuY3Rpb24gbChxKXtyZXR1cm4gcS5zcGxpdChpKS5tYXAoZnVuY3Rpb24oTyl7dmFyIE49Ty5pbmRleE9mKCIuICIpO2lmKE48PTApcmV0dXJuIE87Zm9yKHZhciBHPTA7RzxOO0crPTEpe3ZhciBKPU8uY2hhckNvZGVBdChHKTtpZihKPDQ4fHxKPjU3KXJldHVybiBPfXJldHVybiI8bGk+IitPLnNsaWNlKE4rMikrIjwvbGk+In0pLmpvaW4oaSl9ZnVuY3Rpb24gZChxKXtyZXR1cm4gcS5zcGxpdChpK2kpLm1hcChmdW5jdGlvbihPKXt2YXIgTj1PLnRyaW0oKTtyZXR1cm4gTj9OLmluZGV4T2YoIjxkaXYiKT09PTB8fE4uaW5kZXhPZigiPGgxIik9PT0wfHxOLmluZGV4T2YoIjxoMiIpPT09MHx8Ti5pbmRleE9mKCI8aDMiKT09PTB8fE4uaW5kZXhPZigiPGg0Iik9PT0wfHxOLmluZGV4T2YoIjxoNSIpPT09MHx8Ti5pbmRleE9mKCI8aDYiKT09PTB8fE4uaW5kZXhPZigiPHVsIik9PT0wfHxOLmluZGV4T2YoIjxvbCIpPT09MHx8Ti5pbmRleE9mKCI8bGkiKT09PTB8fE4uaW5kZXhPZigiPGJsb2NrcXVvdGUiKT09PTB8fE4uaW5kZXhPZigiPHByZSIpPT09MD9OOiI8cD4iK04uc3BsaXQoaSkuam9pbigiPGJyPiIpKyI8L3A+IjoiIn0pLmpvaW4oIiIpfWZvcih2YXIgZj0wOzspe3ZhciBjPXQuaW5kZXhPZihuK24rbixmKTtpZihjPT09LTEpYnJlYWs7dmFyIHY9dC5pbmRleE9mKG4rbituLGMrMyk7aWYodj09PS0xKWJyZWFrO3ZhciBoPXQuc2xpY2UoYyszLHYpLGc9aC5pbmRleE9mKGkpLG09IiIseT1oO2lmKGchPT0tMSYmZzwzMCl7Zm9yKHZhciBDPWguc2xpY2UoMCxnKS50cmltKCksRT1DLmxlbmd0aD4wLEI9MDtCPEMubGVuZ3RoO0IrPTEpe3ZhciBEPUMuY2hhckNvZGVBdChCKSxGPUQ+PTQ4JiZEPD01NyxJPUQ+PTY1JiZEPD05MCxMPUQ+PTk3JiZEPD0xMjI7aWYoIUYmJiFJJiYhTCl7RT0hMTticmVha319RSYmKG09Qyx5PWguc2xpY2UoZysxKSl9dmFyIEg9Z20oeS50cmltKCksbSksVT1ILnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpLHg9JzxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPjxkaXYgY2xhc3M9ImNvZGUtYmxvY2staGVhZGVyIj48c3BhbiBjbGFzcz0iY29kZS1sYW5nIj4nKyhtfHwiY29kZSIpKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iY29kZS1jb3B5Ij5Db3B5PC9idXR0b24+PC9kaXY+PHByZT48Y29kZT4nK1UrIjwvY29kZT48L3ByZT48L2Rpdj4iO3Q9dC5zbGljZSgwLGMpK3grdC5zbGljZSh2KzMpLGY9Yyt4Lmxlbmd0aH1mb3IoZj0wOzspe3ZhciBrPXQuaW5kZXhPZihuLGYpO2lmKGs9PT0tMSlicmVhazt2YXIgVD10LmluZGV4T2YobixrKzEpO2lmKFQ9PT0tMSlicmVhaztpZihUPT09aysxKXtmPVQrMTtjb250aW51ZX12YXIgTT10LnNsaWNlKGsrMSxUKSxZPU0ucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7Iiksej0nPGNvZGUgY2xhc3M9ImNvZGUtaW5saW5lIj4nK1krIjwvY29kZT4iO3Q9dC5zbGljZSgwLGspK3ordC5zbGljZShUKzEpLGY9ayt6Lmxlbmd0aH10PWEodCwiKioiLCI8c3Ryb25nPiIsIjwvc3Ryb25nPiIpLHQ9YSh0LCIqIiwiPGVtPiIsIjwvZW0+IiksdD1vKHQsIjxlbT4iLCI8L2VtPiIpLHQ9cyh0LCIjIyMgIiwiPGgzPiIsIjwvaDM+IiksdD1zKHQsIiMjICIsIjxoMj4iLCI8L2gyPiIpLHQ9cyh0LCIjICIsIjxoMT4iLCI8L2gxPiIpLHQ9cyh0LCImZ3Q7ICIsIjxibG9ja3F1b3RlPiIsIjwvYmxvY2txdW90ZT4iKSx0PXModCwiLSAiLCI8bGk+IiwiPC9saT4iKSx0PXModCwiKiAiLCI8bGk+IiwiPC9saT4iKSx0PWwodCksdD1ibCh0KTt2YXIgUT10LnNwbGl0KGkpLGxlPVtdLGVlPVtdO2Z1bmN0aW9uIFooKXtlZS5sZW5ndGgmJihsZS5wdXNoKCI8dWw+IitlZS5qb2luKCIiKSsiPC91bD4iKSxlZT1bXSl9cmV0dXJuIFEuZm9yRWFjaChmdW5jdGlvbihxKXtpZihxLmluZGV4T2YoIjxsaT4iKT09PTAmJnEubGFzdEluZGV4T2YoIjwvbGk+Iik9PT1xLmxlbmd0aC01KXtlZS5wdXNoKHEpO3JldHVybn1aKCksbGUucHVzaChxKX0pLFooKSx0PWQobGUuam9pbihpKSksJzxkaXYgY2xhc3M9Im1hcmtkb3duLWNvbnRlbnQiPicrdCsiPC9kaXY+In1mdW5jdGlvbiBnbShlLHQpe3JldHVybiBlPWUucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLGV9ZnVuY3Rpb24gJG4oZSl7dmFyIHQ9U3RyaW5nKGV8fCIiKS50cmltKCk7cmV0dXJuIHQubGVuZ3RoPD0yND90fHwiXHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREIjp0LnNsaWNlKDAsMjEpKyIuLi4ifWZ1bmN0aW9uIGZ1KGUpe3JldHVybiBTdHJpbmcoZXx8IiIpLnJlcGxhY2UoL1xyXHJcbi9nLGBccgpgKS5yZXBsYWNlKC9cdTAwMDAvZywiIil9ZnVuY3Rpb24gaG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tY2VydC1oaW50Iik7ZSYmZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tY2VydC1odHRwLWxpbmsiKTt0JiYodC5ocmVmPSJodHRwOi8vIitsb2NhdGlvbi5ob3N0K2xvY2F0aW9uLnBhdGhuYW1lLHQuc3R5bGUuZGlzcGxheT1sb2NhdGlvbi5wcm90b2NvbD09PSJodHRwczoiPyIiOiJub25lIil9ZnVuY3Rpb24geW0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tY2VydC1oaW50Iik7ZSYmZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX1mdW5jdGlvbiBwdSgpe2lmKCFyLmxvZ2luUGVuZGluZyl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZXJyb3IiKTshZXx8IXR8fCFufHwoeWkobikseW0oKSxlLmRhdGFzZXQuZXJyb3I9ImZhbHNlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwiZmFsc2UiKSxyLmxvZ2luUGVuZGluZz0hMCx0LmRpc2FibGVkPSEwLHQudGV4dENvbnRlbnQ9Ilx1NzY3Qlx1NUY1NVx1NEUyRC4uLiIsZmV0Y2goIi9hcGkvbG9naW4iLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7cGFzc3dvcmQ6ZS52YWx1ZX0pLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLnN0YXR1cz09PTQyOT8oSGUobiwiXHU3NjdCXHU1RjU1XHU1QzFEXHU4QkQ1XHU2QjIxXHU2NTcwXHU4RkM3XHU1OTFBXHVGRjBDXHU4QkY3XHU3QTBEXHU1NDBFXHU1MThEXHU4QkQ1XHUzMDAyIiksUHJvbWlzZS5yZWplY3QoImhhbmRsZWQiKSk6aS5vaz9mZXRjaCgiL2FwaS9jb25maWciLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSk6KGUuZGF0YXNldC5lcnJvcj0idHJ1ZSIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIsInRydWUiKSxIZShuLCJcdTVCQzZcdTc4MDFcdTk1MTlcdThCRUZcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkub2s/aS5qc29uKCk6KGxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/aG0oKTpIZShuLCJcdTc2N0JcdTVGNTVcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKX0pLnRoZW4oZnVuY3Rpb24oaSl7ci5jb25maWc9aTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzLWRvdCIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0YXR1cy10ZXh0Iik7cmV0dXJuIGEmJmEuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksdSYmKHUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NzY3Qlx1NUY1NSIpLE90KCl9KS50aGVuKGZ1bmN0aW9uKCl7am8oKSxRdCgpfSkuY2F0Y2goZnVuY3Rpb24oaSl7aSE9PSJoYW5kbGVkIiYmKGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBMb2dpbiBlcnJvcjoiLGkpLEhlKG4sIlx1NzY3Qlx1NUY1NVx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLmxvZ2luUGVuZGluZz0hMSx0LmRpc2FibGVkPSExLHQudGV4dENvbnRlbnQ9Ilx1OEZEQlx1NTE2NVx1NjNBN1x1NTIzNlx1NTNGMCJ9KSl9fWZ1bmN0aW9uIHZ1KCl7cmV0dXJuIHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuc3dpdGNoU2VydmVyPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIEVsKCl7aWYodnUoKSl0cnl7V2FuZE5hdGl2ZS5zd2l0Y2hTZXJ2ZXIoKX1jYXRjaHt9fWZ1bmN0aW9uIGJtKCl7cmV0dXJuIHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuYmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iPyEwOnR5cGVvZiB3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlPT0iZnVuY3Rpb24ifWZ1bmN0aW9uIEVtKCl7dHJ5e2lmKHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuYmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iKXtXYW5kTmF0aXZlLmJhY2tUb05hdGl2ZSgpO3JldHVybn10eXBlb2Ygd2luZG93Ll9fd2FuZEJhY2tUb05hdGl2ZT09ImZ1bmN0aW9uIiYmd2luZG93Ll9fd2FuZEJhY2tUb05hdGl2ZSgpfWNhdGNoe319ZnVuY3Rpb24gRmwoKXtmZXRjaCgiL2FwaS9sb2dvdXQiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS5jYXRjaChmdW5jdGlvbigpe30pLEtvKCksTW4oITEpLEthKCksd3IoKSxyLmNvbmZpZz1udWxsLHIuc2VsZWN0ZWRJZD1udWxsLGhlKCksci5zZXNzaW9ucz1bXSxyLmNsYXVkZUhpc3Rvcnk9W10sci5jbGF1ZGVIaXN0b3J5TG9hZGVkPSExLHIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkPSExLHIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlycz17fSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxRdCgpfWZ1bmN0aW9uIE90KCl7cmV0dXJuIG1uKCl9ZnVuY3Rpb24gbXUoZSl7cmV0dXJuIGU9PT0iZnVsbC1hY2Nlc3MiPyJcdTUxNjhcdTY3NDNcdTk2NTAiOmU9PT0iZGVmYXVsdCI/Ilx1OUVEOFx1OEJBNCI6ZT09PSJuYXRpdmUiPyJcdTUzOUZcdTc1MUYiOmU9PT0iYXV0by1lZGl0Ij8iXHU4MUVBXHU1MkE4XHU3RjE2XHU4RjkxIjplPT09Im1hbmFnZWQiPyJcdTYyNThcdTdCQTEiOmV9ZnVuY3Rpb24gcnQoKXtyZXR1cm4gci5zZXNzaW9uVG9vbHx8ci5wcmVmZXJyZWRDb21tYW5kfHwiY2xhdWRlIn1mdW5jdGlvbiBGbSgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiBlJiZlLnByb3ZpZGVyfHxyLnByZWZlcnJlZENvbW1hbmR8fCJjbGF1ZGUifWZ1bmN0aW9uIHdsKGUsdCl7cmV0dXJuIHQ/Ilx1OTUyRVx1NzZEOFx1OEY5M1x1NTE2NVx1NUMwNlx1NTNEMVx1OTAwMVx1NTIzMFx1N0VDOFx1N0FFRiI6ZSYmKGUuc3RhdHVzPT09ImV4aXRlZCJ8fGUuc3RhdHVzPT09ImZhaWxlZCJ8fGUuc3RhdHVzPT09InN0b3BwZWQiKT9XYShlKT8iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGXHU0RUU1XHU3RUU3XHU3RUVEXHU0RjFBXHU4QkREIjoiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGIjp1ZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0PyJcdTU2REVcdTU5MERcdTRFMkRcdUZGMENcdTUzRUZcdTdFRTdcdTdFRURcdThGOTNcdTUxNjUiOiJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYifWZ1bmN0aW9uIENsKGUsdCl7cmV0dXJuIGU9PT0iY29kZXgiPyJDb2RleCBcdTY1MkZcdTYzMDEgUFRZIFx1N0VDOFx1N0FFRlx1NEUwRVx1N0VEM1x1Njc4NFx1NTMxNlx1RkYwOEpTT05MXHVGRjA5XHU0RTI0XHU3OUNEXHU0RjFBXHU4QkREXHVGRjBDXHU3RUQzXHU2Nzg0XHU1MzE2XHU2QTIxXHU1RjBGXHU2MzA5IGZ1bGwtYWNjZXNzIFx1NTQyRlx1NTJBOFx1MzAwMiI6dD09PSJmdWxsLWFjY2VzcyI/Ilx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1Njc0M1x1OTY1MFx1OEJGN1x1NkM0Mlx1NEUwRVx1OUFEOFx1Njc0M1x1OTY1MFx1NjRDRFx1NEY1Q1x1RkYwQ1x1OTAwMlx1NTQwOFx1NEY2MFx1Nzg2RVx1OEJBNFx1NzNBRlx1NTg4M1x1NUI4OVx1NTE2OFx1NTQwRVx1NzY4NFx1OEZERVx1N0VFRFx1NEZFRVx1NjUzOVx1MzAwMiI6dD09PSJhdXRvLWVkaXQiPyJcdTRGRERcdTc1NTlcdTRFQTRcdTRFOTJcdTVGMEZcdTRGMUFcdThCRERcdUZGMENcdTU0MENcdTY1RjZcdTY2RjRcdTUwNEZcdTU0MTFcdTc2RjRcdTYzQTVcdTdGMTZcdThGOTFcdTRFRTNcdTc4MDFcdTMwMDIiOnQ9PT0ibmF0aXZlIj8iXHU4QzAzXHU3NTI4IENsYXVkZSBcdTUzOUZcdTc1MUYgQVBJIFx1OEY5M1x1NTFGQVx1RkYwQ1x1OTAwMlx1NTQwOFx1NUZFQlx1OTAxRlx1OTVFRVx1N0I1NFx1NjIxNlx1NEUwMFx1NkIyMVx1NjAyN1x1NzUxRlx1NjIxMFx1MzAwMiI6dD09PSJtYW5hZ2VkIj8iQUkgXHU4MUVBXHU1MkE4XHU1QjhDXHU2MjEwXHU2MjQwXHU2NzA5XHU1REU1XHU0RjVDXHVGRjBDXHU2NUUwXHU5NzAwXHU0RTJEXHU5MDE0XHU3ODZFXHU4QkE0XHVGRjBDXHU5MDAyXHU1NDA4XHU2NzA5XHU2NjBFXHU3ODZFXHU3NkVFXHU2ODA3XHU3Njg0XHU0RUZCXHU1MkExXHUzMDAyIjoiXHU0RkREXHU3NTU5XHU2ODA3XHU1MUM2XHU0RUE0XHU0RTkyXHU2RDQxXHU3QTBCXHVGRjBDXHU5MDAyXHU1NDA4XHU2MjRCXHU1MkE4XHU3ODZFXHU4QkE0XHU2QkNGXHU0RTAwXHU2QjY1XHUzMDAyIn1mdW5jdGlvbiBndShlKXtyZXR1cm4gZT09PSJjb2RleCI/WyJmdWxsLWFjY2VzcyJdOlsiZGVmYXVsdCIsImZ1bGwtYWNjZXNzIiwiYXV0by1lZGl0IiwibmF0aXZlIiwibWFuYWdlZCJdfWZ1bmN0aW9uIG10KGUsdCl7dmFyIG49Z3UoZSk7aWYobi5pbmRleE9mKHQpIT09LTEpcmV0dXJuIHQ7dmFyIGk9ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlP3IuY29uZmlnLmRlZmF1bHRNb2RlOiJkZWZhdWx0IjtyZXR1cm4gbi5pbmRleE9mKGkpIT09LTE/aTpuWzBdfWZ1bmN0aW9uIEVoKGUsdCl7cmV0dXJuIGd1KGUpLm1hcChmdW5jdGlvbihuKXt2YXIgaT1CbChuKTtyZXR1cm4nPG9wdGlvbiB2YWx1ZT0iJytwKG4pKyciJysobj09PXQ/IiBzZWxlY3RlZCI6IiIpKycgdGl0bGU9IicraSsnIj4nK3AobXUobikpKyI8L29wdGlvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gQmwoZSl7dmFyIHQ9e2RlZmF1bHQ6Ilx1NjgwN1x1NTFDNlx1NkEyMVx1NUYwRiAtIFx1OTcwMFx1ODk4MVx1Nzg2RVx1OEJBNFx1NjU4N1x1NEVGNlx1NEZFRVx1NjUzOSIsImZ1bGwtYWNjZXNzIjoiXHU1QjhDXHU1MTY4XHU4QkJGXHU5NUVFIC0gXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwXHU0RTBFXHU2NENEXHU0RjVDIiwiYXV0by1lZGl0IjoiXHU4MUVBXHU1MkE4XHU3RjE2XHU4RjkxIC0gXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NTg3XHU0RUY2XHU0RkVFXHU2NTM5IixuYXRpdmU6Ilx1NTM5Rlx1NzUxRlx1NkEyMVx1NUYwRiAtIFx1OEZENFx1NTZERVx1N0VEM1x1Njc4NFx1NTMxNlx1OEY5M1x1NTFGQSIsbWFuYWdlZDoiXHU2MjU4XHU3QkExXHU2QTIxXHU1RjBGIC0gQUkgXHU4MUVBXHU1MkE4XHU1QjhDXHU2MjEwXHU2MjQwXHU2NzA5XHU1REU1XHU0RjVDIn07cmV0dXJuIHRbZV18fCIifWZ1bmN0aW9uIHdtKGUpe3ZhciB0PWUmJmUucHJvdmlkZXI/ZS5wcm92aWRlcjoiY2xhdWRlIjtyZXR1cm4odWUoZSk/Ilx1N0VEM1x1Njc4NFx1NTMxNiI6Ilx1N0VDOFx1N0FFRiIpKyIgXHhCNyAiK3R9ZnVuY3Rpb24gQ20oZSl7cmV0dXJuIHVlKGUpPyJcdTdFRDNcdTY3ODRcdTUzMTYgXHhCNyBcdTU3NTdcdTdFQTdcdThCQjBcdTVGNTUiOmUmJmUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTdFQzhcdTdBRUYgXHhCNyBDb2RleCBQVFlcdUZGMDhjaGF0IFx1NEUzQVx1ODlFM1x1Njc5MFx1ODlDNlx1NTZGRVx1RkYwOSI6Ilx1N0VDOFx1N0FFRiBceEI3IFBUWSBcdTRGMUFcdThCREQifWZ1bmN0aW9uIERsKGUpe3JldHVybiBlP3VlKGUpfHxlLnByb3ZpZGVyPT09ImNvZGV4IjohMX1mdW5jdGlvbiBrbChlLHQpe2lmKCFlfHwhZS5pc19lcnJvcnx8IXR8fHQuaXNfZXJyb3IpcmV0dXJuITE7dmFyIG49cG4oZS5jb250ZW50KS50b0xvd2VyQ2FzZSgpLGk9cG4odC5jb250ZW50KS50b0xvd2VyQ2FzZSgpO3JldHVybiBuP24uaW5kZXhPZigiaW52YWxpZCBwYWdlcyBwYXJhbWV0ZXIiKSE9PS0xJiZpLmxlbmd0aD4wOiExfWZ1bmN0aW9uIHVlKGUpe3JldHVybiEhZSYmKGUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCJ8fGUucnVubmVyPT09ImNsYXVkZS1jbGktcHJpbnQiKX1mdW5jdGlvbiBIaSgpe3IuY2hhdE1vZGU9bXQoImNsYXVkZSIsci5jaGF0TW9kZSk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUtaGludCIpO2UmJihlLnRleHRDb250ZW50PUJsKHIuY2hhdE1vZGUpKSxxbigpfWZ1bmN0aW9uIEFsKGUsdCl7dD10fHx7fTt2YXIgbj10LmtpbmQ9PT0iY29tcGFjdCJ8fHQua2luZD09PSJwb3BvdmVyIj90LmtpbmQ6ImRyb3Bkb3duIixpPXJ0KCksYT1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsdT1IcihlKXx8IiIsbz1OaSh1LGUpLHM9RnUoZSk7ZnVuY3Rpb24gbChmLGMsdixoKXt2YXIgZz1uPT09ImNvbXBhY3QiPyIiOic8c3BhbiBjbGFzcz0iY2hhdC1tb2RlLXRyaW8tdGFnIj4nK3AoYykrIjwvc3Bhbj4iO3JldHVybic8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1waWxsIGNoYXQtbW9kZS10cmlvLXBpbGwiIGRhdGEtbW9kZS1jb250cm9sLXBpbGw9IicrZisnIiB0aXRsZT0iJytwKGMpKyciPicrZysnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtbGFiZWwiPicrcCh2KSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9IicrZisnIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9IicrcChjKSsnIj4nK2grIjwvc2VsZWN0Pjwvc3Bhbj4ifWZ1bmN0aW9uIGQoKXtyZXR1cm4nPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtcGlsbCBjaGF0LW1vZGUtdHJpby1waWxsIHRoaW5raW5nLXNsaWRlci1zaGVsbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciIHRpdGxlPSJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYiPicrKG49PT0iY29tcGFjdCI/IiI6JzxzcGFuIGNsYXNzPSJjaGF0LW1vZGUtdHJpby10YWciPlx1NjAxRFx1ODAwMzwvc3Bhbj4nKSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtbGFiZWwgdGhpbmtpbmctc2xpZGVyLXZhbHVlIj4nK3AoWm4ocyxlKSkrIjwvc3Bhbj4iK0lsKHMsZSkrIjwvc3Bhbj4ifXJldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1vZGUtdHJpbyBjaGF0LW1vZGUtdHJpby0nK24rJyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9Ilx1NEYxQVx1OEJERFx1OEJCRVx1N0Y2RSI+JytsKCJtb2RlIiwiXHU2QTIxXHU1RjBGIixhLGppKGksYSkpKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1zZXAiIGFyaWEtaGlkZGVuPSJ0cnVlIj5ceEI3PC9zcGFuPicrbCgibW9kZWwiLCJcdTZBMjFcdTU3OEIiLG8scWwodSxlKSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXNlcCIgYXJpYS1oaWRkZW49InRydWUiPlx4Qjc8L3NwYW4+JytkKCkrIjwvZGl2PiJ9ZnVuY3Rpb24geGwoZSx0KXt2YXIgbj1abihlLHQpO3JldHVybiBuPT09ImxvdyI/Ilx1NEY0RSI6bj09PSJtZWRpdW0iPyJcdTRFMkQiOm49PT0iaGlnaCI/Ilx1OUFEOCI6bj09PSJ4aGlnaCI/Ilx1OEQ4NVx1OUFEOCI6bj09PSJtYXgiPyJcdTY3ODFcdTlBRDgiOm49PT0idWx0cmEiPyJcdTY3ODFcdTk2NTAiOiJcdTUxNzMifWZ1bmN0aW9uIF9pKGUsdCl7dmFyIG49ZXx8IiIsaT1FdSh0KTtpZighbnx8bj09PSJkZWZhdWx0Iil7Zm9yKHZhciBhPTA7YTxpLmxlbmd0aDthKyspaWYoaVthXS5pZD09PSJkZWZhdWx0IilyZXR1cm4gaVthXS5sYWJlbHx8aVthXS5pZDtyZXR1cm4iXHU5RUQ4XHU4QkE0In1mb3IodmFyIHU9MDt1PGkubGVuZ3RoO3UrKylpZihpW3VdLmlkPT09bilyZXR1cm4gaVt1XS5sYWJlbHx8aVt1XS5pZDtyZXR1cm4gbn1mdW5jdGlvbiBOaShlLHQpe3ZhciBuPV9pKGUsdCk7aWYoIW58fG49PT0iXHU4RERGXHU5NjhGXHU2NzBEXHU1MkExXHU3QUVGXHU5RUQ4XHU4QkE0IilyZXR1cm4iXHU5RUQ4XHU4QkE0Ijt2YXIgaT1uLnNlYXJjaCgvW++8iChdLyk7aT4wJiYobj1uLnNsaWNlKDAsaSkudHJpbSgpKTt2YXIgYT1uLmxhc3RJbmRleE9mKCIvIik7YT49MCYmYTxuLmxlbmd0aC0xJiYobj1uLnNsaWNlKGErMSkudHJpbSgpKTt2YXIgdT1uLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHUuaW5kZXhPZigib3B1cyIpIT09LTE/Ik9wdXMiOnUuaW5kZXhPZigic29ubmV0IikhPT0tMT8iU29ubmV0Ijp1LmluZGV4T2YoImhhaWt1IikhPT0tMT8iSGFpa3UiOnUuaW5kZXhPZigiZ3B0LTUuNSIpIT09LTE/IkdQVC01LjUiOnUuaW5kZXhPZigiZ3B0LTUiKSE9PS0xPyJHUFQtNSI6dS5pbmRleE9mKCJncHQtNCIpIT09LTE/IkdQVC00IjpuLmxlbmd0aD4xMj9uLnNsaWNlKDAsMTApKyJcdTIwMjYiOm59ZnVuY3Rpb24gU2woZSl7cmV0dXJuIGUubGVuZ3RoPD0xPyc8c3BhbiBjbGFzcz0idGhpbmtpbmctc2xpZGVyLW5vZGUiIHN0eWxlPSJsZWZ0OjUwJSI+PC9zcGFuPic6ZS5tYXAoZnVuY3Rpb24odCxuKXtyZXR1cm4nPHNwYW4gY2xhc3M9InRoaW5raW5nLXNsaWRlci1ub2RlIiBzdHlsZT0ibGVmdDonK24vKGUubGVuZ3RoLTEpKjEwMCsnJSI+PC9zcGFuPid9KS5qb2luKCIiKX1mdW5jdGlvbiBJbChlLHQpe3ZhciBuPVdpKHQpLGk9TWF0aC5tYXgoMCxuLmZpbmRJbmRleChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PWV9KSksYT1NYXRoLm1heCgwLG4ubGVuZ3RoLTEpLHU9YT9pL2EqMTAwOjAsbz1wKEpTT04uc3RyaW5naWZ5KG4ubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkfSkpKSxzPXAoSlNPTi5zdHJpbmdpZnkobi5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGwubGFiZWx9KSkpO3JldHVybic8c3BhbiBjbGFzcz0idGhpbmtpbmctc2xpZGVyLXJhaWwiIHN0eWxlPSItLXRoaW5raW5nLXByb2dyZXNzOicrdSsnJSI+PHNwYW4gY2xhc3M9InRoaW5raW5nLXNsaWRlci1ub2RlcyIgYXJpYS1oaWRkZW49InRydWUiPicrU2wobikrJzwvc3Bhbj48aW5wdXQgY2xhc3M9InRoaW5raW5nLWRpc2NyZXRlLXJhbmdlIiB0eXBlPSJyYW5nZSIgbWluPSIwIiBtYXg9IicrYSsnIiBzdGVwPSIxIiB2YWx1ZT0iJytpKyciIGRhdGEtbW9kZS1jb250cm9sPSJ0aGlua2luZyIgZGF0YS10aGlua2luZy12YWx1ZXM9IicrbysnIiBkYXRhLXRoaW5raW5nLWxhYmVscz0iJytzKyciIGFyaWEtbGFiZWw9Ilx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNiIgYXJpYS12YWx1ZXRleHQ9IicrcChuW2ldPy5sYWJlbHx8ImF1dG8iKSsnIj48L3NwYW4+J31mdW5jdGlvbiBUbChlLHQsbil7dmFyIGk9V2kobiksYT1NYXRoLm1heCgwLGkuZmluZEluZGV4KGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09dH0pKSx1PU1hdGgubWF4KDAsaS5sZW5ndGgtMSksbz1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1kaXNjcmV0ZS1yYW5nZSIpLHM9ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctc2xpZGVyLXJhaWwiKSxsPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXNsaWRlci1ub2RlcyIpOyFvfHwhc3x8KG8ubWF4PVN0cmluZyh1KSxvLnZhbHVlPVN0cmluZyhhKSxvLmRhdGFzZXQudGhpbmtpbmdWYWx1ZXM9SlNPTi5zdHJpbmdpZnkoaS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWR9KSksby5kYXRhc2V0LnRoaW5raW5nTGFiZWxzPUpTT04uc3RyaW5naWZ5KGkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkLmxhYmVsfSkpLG8uc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVldGV4dCIsaVthXT8ubGFiZWx8fCJhdXRvIikscy5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10aGlua2luZy1wcm9ncmVzcyIsKHU/YS91KjEwMDowKSsiJSIpLGwmJihsLmlubmVySFRNTD1TbChpKSkpfWZ1bmN0aW9uIExsKGUpe3ZhciB0PXJ0KCksbj1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsaT1IcihlKXx8IiIsYT1GdShlKSx1PW11KG4pLG89TmkoaSxlKSxzPXhsKGEsZSksbD0iXHU2QTIxXHU1RjBGICIrdSsiIFx4QjcgXHU2QTIxXHU1NzhCICIrbysiIFx4QjcgXHU2MDFEXHU4MDAzICIrcztyZXR1cm4nPGRpdiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWNvbnRyb2xzIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iXHU0RjFBXHU4QkREXHU4QkJFXHU3RjZFIiB0aXRsZT0iJytwKGwpKyciPjxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctY2hpcCBjb21wb3Nlci1jb25maWctY2hpcC1tb2RlIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlIiB0aXRsZT0iXHU2QTIxXHU1RjBGXHVGRjFBJytwKHUpKyciPicrVigic2hpZWxkIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjgsY2xzOiJjb21wb3Nlci1jb25maWctaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1sYWJlbCI+JytwKHUpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0ibW9kZSIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTZBMjFcdTVGMEYiPicramkodCxuKSsnPC9zZWxlY3Q+PC9zcGFuPjxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmciIGRhdGEtdGhpbmtpbmc9IicrcChhKSsnIiB0aXRsZT0iXHU2QTIxXHU1NzhCXHU0RTBFXHU2MDFEXHU4MDAzXHU2REYxXHU1RUE2Ij48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLXBhcnQgY29tcG9zZXItY29uZmlnLW1vZGVsIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlbCI+JytWKCJjcHUiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOCxjbHM6ImNvbXBvc2VyLWNvbmZpZy1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWxhYmVsIj4nK3AobykrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSJtb2RlbCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTZBMjFcdTU3OEIiPicrTWwoaSxlKSsnPC9zZWxlY3Q+PC9zcGFuPjxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctcGFydCBjb21wb3Nlci1jb25maWctdGhpbmtpbmciIGRhdGEtbW9kZS1jb250cm9sLXBpbGw9InRoaW5raW5nIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyI+JytWKCJicmFpbiIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44LGNsczoiY29tcG9zZXItY29uZmlnLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbGFiZWwgdGhpbmtpbmctc2xpZGVyLXZhbHVlIj4nK3AoWm4oYSxlKSkrIjwvc3Bhbj4iK0lsKGEsZSkrIjwvc3Bhbj48L3NwYW4+PC9kaXY+In1mdW5jdGlvbiBxbigpe3ZhciBlPXN0KCksdD1ydCgpLG49ci5jaGF0TW9kZXx8ImRlZmF1bHQiLGk9SHIoZSl8fCIiLGE9TmkoaSxlKSx1PUZ1KGUpLG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbW9kZS10cmlvIik7by5mb3JFYWNoKGZ1bmN0aW9uKHMpe2Z1bmN0aW9uIGwoZCxmLGMsdil7dmFyIGg9cy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytkKyciXScpO2lmKGgpe3ZhciBnPWgucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLXRleHQtbGFiZWwiKTtpZihnJiYoZy50ZXh0Q29udGVudD12fHxmKSxkPT09InRoaW5raW5nIil7VGwoaCxmLGUpO3JldHVybn12YXIgbT1oLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbD0iJytkKyciXScpO20mJihjJiYobS5pbm5lckhUTUw9YyksbS52YWx1ZSE9PWYmJihtLnZhbHVlPWYpKX19bCgibW9kZSIsbixqaSh0LG4pKSxsKCJtb2RlbCIsaSxxbChpLGUpLGEpLGwoInRoaW5raW5nIix1LCIiLFpuKHUsZSkpfSksQm0oZSxuLEhyKGUpfHwiIix1KX1mdW5jdGlvbiBCbShlLHQsbixpKXt2YXIgYT1ydCgpLHU9bXUodCksbz1OaShuLGUpLHM9eGwoaSxlKSxsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb21wb3Nlci1jb25maWctY29udHJvbHMiKTtsLmZvckVhY2goZnVuY3Rpb24oZCl7dmFyIGY9Ilx1NkEyMVx1NUYwRiAiK3UrIiBceEI3IFx1NkEyMVx1NTc4QiAiK28rIiBceEI3IFx1NjAxRFx1ODAwMyAiK3M7ZC5zZXRBdHRyaWJ1dGUoInRpdGxlIixmKTtmdW5jdGlvbiBjKEIsRCxGKXt2YXIgST1CLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLW1vZGUtY29udHJvbF0iKTtJJiYoSS5pbm5lckhUTUw9RixJLnZhbHVlPUQpfXZhciB2PWQucXVlcnlTZWxlY3RvcignW2RhdGEtbW9kZS1jb250cm9sLXBpbGw9Im1vZGUiXScpO2lmKHYpe3ZhciBoPXYucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO2gmJihoLnRleHRDb250ZW50PXUpLHYuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NkEyMVx1NUYwRlx1RkYxQSIrdSksYyh2LHQsamkoYSx0KSl9dmFyIGc9ZC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZWwiXScpO2lmKGcpe3ZhciBtPWcucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO20mJihtLnRleHRDb250ZW50PW8pLGMoZyxuLE1sKG4sZSkpfXZhciB5PWQucXVlcnlTZWxlY3RvcignW2RhdGEtbW9kZS1jb250cm9sLXBpbGw9InRoaW5raW5nIl0nKTtpZih5KXt2YXIgQz15LnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci1jb25maWctbGFiZWwiKTtDJiYoQy50ZXh0Q29udGVudD1abihpLGUpKSx5LnNldEF0dHJpYnV0ZSgiZGF0YS10aGlua2luZyIsaSksVGwoeSxpLGUpfXZhciBFPWQucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZyIpO0UmJkUuc2V0QXR0cmlidXRlKCJkYXRhLXRoaW5raW5nIixpKX0pfWZ1bmN0aW9uIGppKGUsdCl7cmV0dXJuIGd1KGUpLm1hcChmdW5jdGlvbihuKXtyZXR1cm4nPG9wdGlvbiB2YWx1ZT0iJytwKG4pKyciJysobj09PXQ/IiBzZWxlY3RlZCI6IiIpKyI+IitwKG4pKyI8L29wdGlvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gUmkoZSl7cmV0dXJuIGU9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSJ9ZnVuY3Rpb24gaHUoZSl7cmV0dXJuIFJpKGUmJmUucHJvdmlkZXJ8fHIuc2Vzc2lvblRvb2x8fCJjbGF1ZGUiKX1mdW5jdGlvbiB5dSgpe3ZhciBlPXIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZWxzJiZ0eXBlb2Ygci5jb25maWcuZGVmYXVsdE1vZGVscz09Im9iamVjdCI/ci5jb25maWcuZGVmYXVsdE1vZGVsczp7fTtyZXR1cm57Y2xhdWRlOnR5cGVvZiBlLmNsYXVkZT09InN0cmluZyI/ZS5jbGF1ZGU6ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiIsY29kZXg6dHlwZW9mIGUuY29kZXg9PSJzdHJpbmciP2UuY29kZXg6ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRDb2RleE1vZGVsfHwiIn19ZnVuY3Rpb24gRG0oZSl7dmFyIHQ9eXUoKTtyZXR1cm4gUmkoZSk9PT0iY29kZXgiP3QuY29kZXh8fCIiOnQuY2xhdWRlfHwiIn1mdW5jdGlvbiBPcihlKXt2YXIgdD1SaShlKSxuPXIuY2hhdE1vZGVscyYmdHlwZW9mIHIuY2hhdE1vZGVsc1t0XT09InN0cmluZyI/ci5jaGF0TW9kZWxzW3RdOiIiO3JldHVybiFuJiZ0PT09ImNsYXVkZSImJihuPXIuY2hhdE1vZGVsfHwiIiksbnx8IiJ9ZnVuY3Rpb24gYnUoZSx0KXt2YXIgbj1SaShlKSxpPSh0fHwiIikudHJpbSgpO3IuY2hhdE1vZGVsc3x8KHIuY2hhdE1vZGVscz17Y2xhdWRlOiIiLGNvZGV4OiIifSksci5jaGF0TW9kZWxzW25dPWksci5jaGF0TW9kZWw9aTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtY2hhdC1tb2RlbC0iK24saSksbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtY2hhdC1tb2RlbCIpfWNhdGNoe319ZnVuY3Rpb24gSHIoZSl7aWYoZSYmZS5zZWxlY3RlZE1vZGVsKXJldHVybiBlLnNlbGVjdGVkTW9kZWw7dmFyIHQ9aHUoZSksbj1Pcih0KTtyZXR1cm4gbnx8RG0odCl8fCIifWZ1bmN0aW9uIEV1KGUpe3ZhciB0PWUmJmUucHJvdmlkZXJ8fHIuc2Vzc2lvblRvb2x8fCJjbGF1ZGUiO3JldHVybiB0PT09ImNvZGV4Ij9yLmF2YWlsYWJsZUNvZGV4TW9kZWxzfHxbXTpyLmF2YWlsYWJsZU1vZGVsc3x8W119ZnVuY3Rpb24gTWwoZSx0KXtmb3IodmFyIG49RXUodCksaT1lPT09ImRlZmF1bHQiPyIiOmV8fCIiLGE9JzxvcHRpb24gdmFsdWU9IiInKyhpPyIiOiIgc2VsZWN0ZWQiKSsiPlx1OUVEOFx1OEJBNCBceEI3ICIrcChfaSgiIix0KSkrIjwvb3B0aW9uPiIsdT0wO3U8bi5sZW5ndGg7dSsrKXt2YXIgbz1uW3VdO2lmKG8uaWQhPT0iZGVmYXVsdCIpe3ZhciBzPW8ubGFiZWx8fG8uaWQ7YSs9JzxvcHRpb24gdmFsdWU9IicrcChvLmlkKSsnIicrKG8uaWQ9PT1pPyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChzKSsiPC9vcHRpb24+In19cmV0dXJuIGkmJiFuLnNvbWUoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1pfSkmJihhKz0nPG9wdGlvbiB2YWx1ZT0iJytwKGkpKyciIHNlbGVjdGVkPicrcChpKSsiXHVGRjA4XHU4MUVBXHU1QjlBXHU0RTQ5XHVGRjA5PC9vcHRpb24+IiksYX1mdW5jdGlvbiBxbChlLHQpe2Zvcih2YXIgbj1FdSh0KSxpPWU9PT0iZGVmYXVsdCI/IiI6ZXx8IiIsYT0nPG9wdGlvbiB2YWx1ZT0iIicrKGk/IiI6IiBzZWxlY3RlZCIpKyI+IitwKF9pKCIiLHQpKSsiPC9vcHRpb24+Iix1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBvPW5bdV07by5pZCE9PSJkZWZhdWx0IiYmKGErPSc8b3B0aW9uIHZhbHVlPSInK3Aoby5pZCkrJyInKyhvLmlkPT09aT8iIHNlbGVjdGVkIjoiIikrIj4iK3Aoby5pZCkrIjwvb3B0aW9uPiIpfXJldHVybiBpJiYhbi5zb21lKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09aX0pJiYoYSs9JzxvcHRpb24gdmFsdWU9IicrcChpKSsnIiBzZWxlY3RlZD4nK3AoaSkrIjwvb3B0aW9uPiIpLGF9ZnVuY3Rpb24gWG4oZSl7cW4oKX12YXIgX3I9W3tpZDoib2ZmIixsYWJlbDoiYXV0byIsaGludDoiQ2xhdWRlIENMSTogYXV0by9kZWZhdWx0IFx4QjcgU0RLIFx1NTE3M1x1OTVFRCB0aGlua2luZyBceEI3IENvZGV4IFx1NEY3Rlx1NzUyOFx1NkEyMVx1NTc4Qlx1OUVEOFx1OEJBNFx1NTAzQyJ9LHtpZDoic3RhbmRhcmQiLGxhYmVsOiJsb3ciLGhpbnQ6IkNsYXVkZSBDTEk6IGxvdyBceEI3IFNESyBidWRnZXQgNDA5NiBceEI3IENvZGV4IGxvdyJ9LHtpZDoiZGVlcCIsbGFiZWw6Im1lZGl1bSIsaGludDoiQ2xhdWRlIENMSTogbWVkaXVtIFx4QjcgU0RLIGJ1ZGdldCAxNjAwMCBceEI3IENvZGV4IG1lZGl1bSJ9LHtpZDoibWF4IixsYWJlbDoibWF4IixoaW50OiJDbGF1ZGUgQ0xJOiBtYXggXHhCNyBTREsgYnVkZ2V0IDMxOTk5IFx4QjcgQ29kZXggeGhpZ2gifV07ZnVuY3Rpb24ga20oZSl7cmV0dXJuIGU9PT0ibG93Ij8ic3RhbmRhcmQiOmU9PT0ibWVkaXVtIj8iZGVlcCI6ZT09PSJ4aGlnaCI/Im1heCI6ImNvZGV4OiIrZX1mdW5jdGlvbiBXaShlKXtpZihodShlKSE9PSJjb2RleCIpcmV0dXJuIF9yO3ZhciB0PUhyKGUpfHwiZGVmYXVsdCIsbj1yLmF2YWlsYWJsZUNvZGV4TW9kZWxzfHxbXSxpPW4uZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXR9KXx8bi5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ImRlZmF1bHQifSksYT1pJiZBcnJheS5pc0FycmF5KGkucmVhc29uaW5nRWZmb3J0cyk/aS5yZWFzb25pbmdFZmZvcnRzOltdO2lmKCFhLmxlbmd0aClyZXR1cm4gX3I7dmFyIHU9aS5kZWZhdWx0UmVhc29uaW5nRWZmb3J0fHwiIjtyZXR1cm5be2lkOiJvZmYiLGxhYmVsOiJhdXRvIixoaW50OnU/Ilx1NEY3Rlx1NzUyOFx1NkEyMVx1NTc4Qlx1OUVEOFx1OEJBNFx1Njg2M1x1NEY0RFx1RkYwOCIrdSsiXHVGRjA5IjoiXHU0RjdGXHU3NTI4XHU2QTIxXHU1NzhCXHU5RUQ4XHU4QkE0XHU2ODYzXHU0RjREIn1dLmNvbmNhdChhLm1hcChmdW5jdGlvbihvKXt2YXIgcz1TdHJpbmcoby5lZmZvcnR8fCIiKS50b0xvd2VyQ2FzZSgpO3JldHVybntpZDprbShzKSxsYWJlbDpzLGhpbnQ6by5kZXNjcmlwdGlvbnx8c319KS5maWx0ZXIoZnVuY3Rpb24obyl7cmV0dXJuIG8ubGFiZWx9KSl9ZnVuY3Rpb24gWm4oZSx0KXtmb3IodmFyIG49V2kodCksaT0wO2k8bi5sZW5ndGg7aSsrKWlmKG5baV0uaWQ9PT1lKXJldHVybiBuW2ldLmxhYmVsO2lmKHR5cGVvZiBlPT0ic3RyaW5nIiYmZS5pbmRleE9mKCJjb2RleDoiKT09PTApcmV0dXJuIGUuc2xpY2UoNik7Zm9yKHZhciBhPTA7YTxfci5sZW5ndGg7YSsrKWlmKF9yW2FdLmlkPT09ZSlyZXR1cm4gX3JbYV0ubGFiZWw7cmV0dXJuImF1dG8ifWZ1bmN0aW9uIEZ1KGUpe3JldHVybiBlJiZlLnRoaW5raW5nRWZmb3J0P2UudGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmc/ci5jaGF0VGhpbmtpbmc6Im9mZiJ9ZnVuY3Rpb24gRmgoZSl7cW4oKX1mdW5jdGlvbiBBbShlKXt2YXIgdD0oZXx8Im9mZiIpLnRyaW0oKSxuPXN0KCksaT1XaShuKS5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09dH0pO2l8fCh0PSJvZmYiKSxyLmNoYXRUaGlua2luZz10O3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC10aGlua2luZy1lZmZvcnQiLHQpfWNhdGNoe31xbigpLG4mJmZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KG4uaWQpKyIvdGhpbmtpbmctZWZmb3J0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7dGhpbmtpbmdFZmZvcnQ6dH0pfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEmJmEuZXJyb3Ipe0EoYS5lcnJvciwiZXJyb3IiKTtyZXR1cm59YSYmYS5pZCYmKFgoYSksdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NURGMlx1NTIwN1x1NjM2Mlx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNiBcdTIxOTIgIitabih0LG4pLCJzdWNjZXNzIikpfSkuY2F0Y2goZnVuY3Rpb24oKXtBKCJcdTUyMDdcdTYzNjJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTZcdTU5MzFcdThEMjUiLCJlcnJvciIpfSl9ZnVuY3Rpb24gUGwoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS5tb2RlO3JldHVybiB0PT09Im1hbmFnZWQifHx0PT09ImZ1bGwtYWNjZXNzIn1mdW5jdGlvbiB4bShlKXtpZighZXx8UGwoZSkpcmV0dXJuIiI7dmFyIHQ9ISFlLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7cmV0dXJuIHQ/JzxidXR0b24gaWQ9ImF1dG8tYXBwcm92ZS10b2dnbGUiIGNsYXNzPSJjb21wb3Nlci1waWxsIGNvbXBvc2VyLXBpbGwtY2hpcCBhdXRvLWFwcHJvdmUtaW5kaWNhdG9yIGFjdGl2ZSIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9InRydWUiIGFyaWEtbGFiZWw9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTQyRlx1NzUyOFx1RkYwQ1x1NzBCOVx1NTFGQlx1NTE3M1x1OTVFRCIgdGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTQyRlx1NzUyOCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIj4nK1YoInNoaWVsZENoZWNrIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjcsY2xzOiJjb21wb3Nlci1waWxsLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1waWxsLWxhYmVsIj5cdTgxRUFcdTUyQTg8L3NwYW4+PC9idXR0b24+JzonPGJ1dHRvbiBpZD0iYXV0by1hcHByb3ZlLXRvZ2dsZSIgY2xhc3M9ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IiIHR5cGU9ImJ1dHRvbiIgYXJpYS1wcmVzc2VkPSJmYWxzZSIgYXJpYS1sYWJlbD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEXHVGRjBDXHU3MEI5XHU1MUZCXHU1RjAwXHU1NDJGIiB0aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEIFx1MjAxNCBcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiPicrVigic2hpZWxkIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjcsY2xzOiJjb21wb3Nlci1waWxsLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1waWxsLWxhYmVsIj5cdTYyNEJcdTUyQTg8L3NwYW4+PC9idXR0b24+J31mdW5jdGlvbiBPbCgpe3JldHVybiBmZXRjaCgiL2FwaS9tb2RlbHMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUubW9kZWxzKSYmKHIuYXZhaWxhYmxlTW9kZWxzPWUubW9kZWxzLHIuYXZhaWxhYmxlQ29kZXhNb2RlbHM9QXJyYXkuaXNBcnJheShlLmNvZGV4TW9kZWxzKT9lLmNvZGV4TW9kZWxzOltdLFhuKHN0KCkpLFVpKGUpLFZpKCExKSksZX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9KX1mdW5jdGlvbiBIbCgpe2lmKHIubW9kZWxzUmVmcmVzaGluZylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO3IubW9kZWxzUmVmcmVzaGluZz0hMDt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjY2ZnLWRlZmF1bHQtbW9kZWwtcmVmcmVzaCwgI2NmZy1jb21taXQtbW9kZWwtcmVmcmVzaCIpO3JldHVybiBlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dCxpPW4ucXVlcnlTZWxlY3Rvcigic3BhbiIpO24uZGlzYWJsZWQ9ITAsbi5jbGFzc0xpc3QuYWRkKCJpcy1sb2FkaW5nIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtYnVzeSIsInRydWUiKSxpJiYoaS50ZXh0Q29udGVudD0iXHU2OEMwXHU2RDRCXHU0RTJEIil9KSxmZXRjaCgiL2FwaS9tb2RlbHMvcmVmcmVzaCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdCYmQXJyYXkuaXNBcnJheSh0Lm1vZGVscykmJihyLmF2YWlsYWJsZU1vZGVscz10Lm1vZGVscyxyLmF2YWlsYWJsZUNvZGV4TW9kZWxzPUFycmF5LmlzQXJyYXkodC5jb2RleE1vZGVscyk/dC5jb2RleE1vZGVsczpbXSxYbihzdCgpKSxVaSh0KSxWaSghMSksdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NURGMlx1NTIzN1x1NjVCMCIrKHQuY2xhdWRlVmVyc2lvbj8iXHVGRjA4Y2xhdWRlICIrdC5jbGF1ZGVWZXJzaW9uKyJcdUZGMDkiOiIiKSwic3VjY2VzcyIpKSx0fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NTIzN1x1NjVCMFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NTkzMVx1OEQyNSIsImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLm1vZGVsc1JlZnJlc2hpbmc9ITEsZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPXQsaT1uLnF1ZXJ5U2VsZWN0b3IoInNwYW4iKTtuLmRpc2FibGVkPSExLG4uY2xhc3NMaXN0LnJlbW92ZSgiaXMtbG9hZGluZyIpLG4ucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWJ1c3kiKSxpJiYoaS50ZXh0Q29udGVudD0iXHU1MjM3XHU2NUIwXHU1MjE3XHU4ODY4Iil9KX0pfWZ1bmN0aW9uIFNtKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LW1vZGFsIik7aWYoIWUpe2U9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VjdGlvbiIpLGUuaWQ9ImVudi1wcmV2aWV3LW1vZGFsIixlLmNsYXNzTmFtZT0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIixlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibW9kYWwgZW52LXByZXZpZXctbW9kYWwiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJlbnYtcHJldmlldy10aXRsZSIgYXJpYS1tb2RhbD0idHJ1ZSI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiIGlkPSJlbnYtcHJldmlldy10aXRsZSI+XHU1QzA2XHU2Q0U4XHU1MTY1XHU1QjUwXHU4RkRCXHU3QTBCXHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGPC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiIGlkPSJlbnYtcHJldmlldy1zdWJ0aXRsZSI+XHU4RkQ5XHU0RTlCXHU1M0Q4XHU5MUNGXHU0RjFBXHU4OEFCXHU0RjIwXHU3RUQ5IGNsYXVkZSAvIGNvZGV4XHVGRjA4UFRZIFx1NEUwRVx1N0VEM1x1Njc4NFx1NTMxNlx1OEZEMFx1ODg0Q1x1NTY2OFx1NEUwMFx1ODFGNFx1RkYwOVx1MzAwMjwvcD48L2Rpdj48YnV0dG9uIGlkPSJlbnYtcHJldmlldy1jbG9zZSIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkgZW52LXByZXZpZXctYm9keSI+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctdG9vbGJhciI+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbWV0YSIgaWQ9ImVudi1wcmV2aWV3LW1ldGEiPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWNvbnRyb2xzIj48aW5wdXQgaWQ9ImVudi1wcmV2aWV3LXNlYXJjaCIgY2xhc3M9ImVudi1wcmV2aWV3LXNlYXJjaCIgdHlwZT0ic2VhcmNoIiBwbGFjZWhvbGRlcj0iXHU2NDFDXHU3RDIyXHU1M0Q4XHU5MUNGXHU1NDBEXHUyMDI2IiAvPjxsYWJlbCBjbGFzcz0iZW52LXByZXZpZXctcmV2ZWFsIj48aW5wdXQgaWQ9ImVudi1wcmV2aWV3LXJldmVhbC10b2dnbGUiIHR5cGU9ImNoZWNrYm94IiAvPjxzcGFuPlx1NjYzRVx1NzkzQVx1NjU0Rlx1NjExRlx1NTAzQzwvc3Bhbj48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxpc3QiIGlkPSJlbnYtcHJldmlldy1saXN0IiB0YWJpbmRleD0iMCI+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIGVudi1wcmV2aWV3LWZvb3RlciI+PHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWhpbnQiPlx1NjU0Rlx1NjExRlx1NUI1N1x1NkJCNVx1RkYwOFx1NTQyQiBLRVkvVE9LRU4vU0VDUkVUIFx1N0I0OVx1RkYwOVx1OUVEOFx1OEJBNFx1NjNBOVx1NzgwMVx1RkYwQ1x1NTNFRlx1NTJGRVx1OTAwOVx1MzAwQ1x1NjYzRVx1NzkzQVx1NjU0Rlx1NjExRlx1NTAzQ1x1MzAwRFx1NEUzNFx1NjVGNlx1OEZEOFx1NTM5Rlx1MzAwMjwvc3Bhbj48YnV0dG9uIGlkPSJlbnYtcHJldmlldy1jbG9zZS0yIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTE3M1x1OTVFRDwvYnV0dG9uPjwvZGl2PjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihzKXtzLnRhcmdldD09PWUmJnd1KCl9KTt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1jbG9zZSIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHd1KTt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1jbG9zZS0yIik7biYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsd3UpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXNlYXJjaCIpO2EmJmEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7TmwoKX0pO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXJldmVhbC10b2dnbGUiKTtpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtfbChpLmNoZWNrZWQpfSl9ZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIik7aSYmKGkuY2hlY2tlZD0hMSk7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctc2VhcmNoIik7YSYmKGEudmFsdWU9IiIpLF9sKCExKX1mdW5jdGlvbiB3dSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1tb2RhbCIpO2UmJkF1KGUpfWZ1bmN0aW9uIF9sKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1saXN0Iiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbWV0YSIpO3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+JyksbiYmKG4udGV4dENvbnRlbnQ9Ilx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNiIpO3ZhciBpPSIvYXBpL3NldHRpbmdzL2Vudi1wcmV2aWV3IisoZT8iP3JldmVhbD0xIjoiIik7ZmV0Y2goaSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtpZighYXx8IUFycmF5LmlzQXJyYXkoYS5lbnRyaWVzKSl7dCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1lbXB0eSI+XHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1XHUzMDAyPC9kaXY+JyksbiYmKG4udGV4dENvbnRlbnQ9Ilx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNSIpO3JldHVybn1pZihyLl9lbnZQcmV2aWV3PWEsbil7dmFyIHU9YS5pbmhlcml0RW52PyJcdTdFRTdcdTYyN0ZcdTcyMzZcdThGREJcdTdBMEIiOiJcdTY3MDBcdTVDMEZcdTc2N0RcdTU0MERcdTUzNTUiO24uaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iZW52LXByZXZpZXctcGlsbCAnKyhhLmluaGVyaXRFbnY/ImlzLWluaGVyaXQiOiJpcy1taW5pbWFsIikrJyI+Jyt1Kyc8L3NwYW4+PHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWNvdW50Ij5cdTUxNzEgJythLnRvdGFsKyIgXHU5ODc5PC9zcGFuPiJ9TmwoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1lbXB0eSI+XHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1XHUzMDAyPC9kaXY+JyksbiYmKG4udGV4dENvbnRlbnQ9Ilx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNSIpfSl9ZnVuY3Rpb24gTmwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbGlzdCIpO2lmKGUpe3ZhciB0PXIuX2VudlByZXZpZXc7aWYoIXR8fCFBcnJheS5pc0FycmF5KHQuZW50cmllcykpe2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1lbXB0eSI+XHU1QzFBXHU2NzJBXHU1MkEwXHU4RjdEXHUzMDAyPC9kaXY+JztyZXR1cm59Zm9yKHZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1zZWFyY2giKSxpPShuJiZuLnZhbHVlfHwiIikudHJpbSgpLnRvTG93ZXJDYXNlKCksYT0iIix1PTAsbz0wO288dC5lbnRyaWVzLmxlbmd0aDtvKyspe3ZhciBzPXQuZW50cmllc1tvXTtpZighKGkmJnMubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YoaSk9PT0tMSkpe3UrKzt2YXIgbD10eXBlb2Ygcy52YWx1ZT09InN0cmluZyImJnMudmFsdWUuY2hhckF0KDApPT09IjwiJiZzLnZhbHVlLmNoYXJBdChzLnZhbHVlLmxlbmd0aC0xKT09PSI+IjthKz0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctcm93Jysocy5zZW5zaXRpdmU/IiBpcy1zZW5zaXRpdmUiOiIiKSsnIj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1uYW1lIj4nK3Aocy5uYW1lKSsocy5zZW5zaXRpdmU/JzxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1iYWRnZSIgdGl0bGU9Ilx1ODhBQlx1OEJDNlx1NTIyQlx1NEUzQVx1NjU0Rlx1NjExRlx1NUI1N1x1NkJCNSI+XHU2NTRGXHU2MTFGPC9zcGFuPic6IiIpKyhsPyc8c3BhbiBjbGFzcz0iZW52LXByZXZpZXctYmFkZ2UgZW52LXByZXZpZXctYmFkZ2UtcnVudGltZSIgdGl0bGU9Ilx1NjMwOVx1NEYxQVx1OEJERFx1NTJBOFx1NjAwMVx1NkNFOFx1NTE2NSI+XHU4RkQwXHU4ODRDXHU2NUY2PC9zcGFuPic6IiIpKyc8L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy12YWx1ZScrKGw/IiBpcy1ydW50aW1lIjoiIikrJyIgdGl0bGU9IicrcChTdHJpbmcocy52YWx1ZSkpKyciPicrcChTdHJpbmcocy52YWx1ZSkpKyc8L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1sZW4iPicrcy5sZW5ndGgrIiBcdTVCNTdcdTdCMjY8L2Rpdj48L2Rpdj4ifX11PT09MCYmKGE9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdTZDQTFcdTY3MDlcdTUzMzlcdTkxNERcdTc2ODRcdTUzRDhcdTkxQ0ZcdTMwMDI8L2Rpdj4nKSxlLmlubmVySFRNTD1hfX1mdW5jdGlvbiBqbChlKXtyZXR1cm4gZT09PSJjb2RleCI/ci5hdmFpbGFibGVDb2RleE1vZGVsc3x8W106ci5hdmFpbGFibGVNb2RlbHN8fFtdfWZ1bmN0aW9uIFJsKGUpe2lmKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLGk9ZS5jbG9zZXN0KCIuc2V0dGluZ3MtbW9kZWwtZmllbGQiKSxhPWk/aS5xdWVyeVNlbGVjdG9yKCJbZGF0YS1tb2RlbC1zdGF0dXNdIik6bnVsbDtpZighKCFufHwhYSkpe2Zvcih2YXIgdT0obi52YWx1ZXx8IiIpLnRyaW0oKSxvPWpsKHQpLHM9bnVsbCxsPTA7bDxvLmxlbmd0aDtsKyspaWYob1tsXS5pZD09PXUpe3M9b1tsXTticmVha31pZihhLmNsYXNzTGlzdC5yZW1vdmUoImlzLWN1c3RvbSIsImlzLWtub3duIiksIXUpe2EudGV4dENvbnRlbnQ9Ilx1OERERlx1OTY4RiBDTEkgXHU5RUQ4XHU4QkE0IjtyZXR1cm59aWYocyl7YS50ZXh0Q29udGVudD0iXHU1REYyXHU2OEMwXHU2RDRCXHU1MjMwIixhLmNsYXNzTGlzdC5hZGQoImlzLWtub3duIik7cmV0dXJufWEudGV4dENvbnRlbnQ9Ilx1ODFFQVx1NUI5QVx1NEU0OVx1NTQwRFx1NzlGMCIsYS5jbGFzc0xpc3QuYWRkKCJpcy1jdXN0b20iKX19fWZ1bmN0aW9uIE5yKGUpe2lmKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtbWVudSIpO2lmKCEoIW58fCFpKSl7Zm9yKHZhciBhPW4udmFsdWV8fCIiLHU9YS50cmltKCksbz1lLmNsYXNzTGlzdC5jb250YWlucygiaXMtZmlsdGVyaW5nIik/dS50b0xvd2VyQ2FzZSgpOiIiLHM9amwodCksbD1udWxsLGQ9ITEsZj1bXSxjPTA7YzxzLmxlbmd0aDtjKyspe3ZhciB2PXNbY107aWYodi5pZD09PSJkZWZhdWx0Iil7bD12O2NvbnRpbnVlfXYuaWQ9PT11JiYoZD0hMCk7dmFyIGg9di5sYWJlbHx8di5pZDtvJiZ2LmlkLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihvKT09PS0xJiZoLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihvKT09PS0xfHxmLnB1c2goe3ZhbHVlOnYuaWQsbGFiZWw6aCxtZXRhOmg9PT12LmlkPyJcdTVERjJcdTY4QzBcdTZENEJcdTZBMjFcdTU3OEIiOnYuaWQsY3VzdG9tOiExfSl9dmFyIGc9dD09PSJjb2RleCI/Ilx1OERERlx1OTY4RiBDb2RleCBcdTlFRDhcdThCQTQiOiJcdThEREZcdTk2OEYgQ2xhdWRlIENvZGUgXHU5RUQ4XHU4QkE0IixtPWwmJmwubGFiZWw/bC5sYWJlbDoiXHU0RTBEXHU0RjIwIC0tbW9kZWwgXHU1M0MyXHU2NTcwIix5PSIiOyghb3x8Zy50b0xvd2VyQ2FzZSgpLmluZGV4T2YobykhPT0tMXx8bS50b0xvd2VyQ2FzZSgpLmluZGV4T2YobykhPT0tMSkmJih5Kz0nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24nKyh1PyIiOiIgaXMtc2VsZWN0ZWQiKSsnIiByb2xlPSJvcHRpb24iIGFyaWEtc2VsZWN0ZWQ9IicrKHU/ImZhbHNlIjoidHJ1ZSIpKyciIGRhdGEtbW9kZWwtdmFsdWU9IiI+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJtNSAxMiA0IDRMMTkgNiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWNvcHkiPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbGFiZWwiPicrcChnKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbWV0YSI+JytwKG0pKyI8L3NwYW4+PC9zcGFuPjwvYnV0dG9uPiIpO2Zvcih2YXIgQz0wO0M8Zi5sZW5ndGg7QysrKXt2YXIgRT1mW0NdLEI9RS52YWx1ZT09PXU7eSs9JzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uJysoQj8iIGlzLXNlbGVjdGVkIjoiIikrJyIgcm9sZT0ib3B0aW9uIiBhcmlhLXNlbGVjdGVkPSInKyhCPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLW1vZGVsLXZhbHVlPSInK3AoRS52YWx1ZSkrJyI+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJtNSAxMiA0IDRMMTkgNiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWNvcHkiPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbGFiZWwiPicrcChFLmxhYmVsKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbWV0YSI+JytwKEUubWV0YSkrIjwvc3Bhbj48L3NwYW4+PC9idXR0b24+In11JiYhZCYmKHkrPSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbiBtb2RlbC1jb21ib2JveC1vcHRpb24tY3VzdG9tIGlzLXNlbGVjdGVkIiByb2xlPSJvcHRpb24iIGFyaWEtc2VsZWN0ZWQ9InRydWUiIGRhdGEtbW9kZWwtdmFsdWU9IicrcCh1KSsnIj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWN1c3RvbS1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMjBoOSIvPjxwYXRoIGQ9Ik0xNi41IDMuNWEyLjEgMi4xIDAgMCAxIDMgM0w4IDE4bC00IDEgMS00WiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWNvcHkiPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbGFiZWwiPlx1NEY3Rlx1NzUyOFx1ODFFQVx1NUI5QVx1NEU0OVx1NTQwRFx1NzlGMDwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLW1ldGEiPicrcCh1KSsiPC9zcGFuPjwvc3Bhbj48L2J1dHRvbj4iKSx5fHwoeT0nPGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtZW1wdHkiPlx1NkNBMVx1NjcwOVx1NTMzOVx1OTE0RFx1NzY4NFx1NkEyMVx1NTc4Qlx1RkYwQ1x1NTNFRlx1NEVFNVx1N0VFN1x1N0VFRFx1OEY5M1x1NTE2NVx1ODFFQVx1NUI5QVx1NEU0OVx1NTQwRFx1NzlGMFx1MzAwMjwvZGl2PicpLGkuaW5uZXJIVE1MPXk7Zm9yKHZhciBEPWkucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94LW9wdGlvbiIpLEY9LTEsST0wO0k8RC5sZW5ndGg7SSsrKWlmKERbSV0uZ2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIik9PT0idHJ1ZSIpe0Y9STticmVha31lLl93YW5kTW9kZWxBY3RpdmVJbmRleD1GPj0wP0Y6RC5sZW5ndGg/MDotMSxXbChlKSxSbChlKX19fWZ1bmN0aW9uIFdsKGUpe2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LW1lbnUiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0Iik7aWYoISghdHx8IW4pKXtmb3IodmFyIGk9dC5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3gtb3B0aW9uIiksYT10eXBlb2YgZS5fd2FuZE1vZGVsQWN0aXZlSW5kZXg9PSJudW1iZXIiP2UuX3dhbmRNb2RlbEFjdGl2ZUluZGV4Oi0xLHU9MDt1PGkubGVuZ3RoO3UrKylpW3VdLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsdT09PWEpLHU9PT1hJiYoaVt1XS5pZHx8KGlbdV0uaWQ9KHQuaWR8fCJtb2RlbC1saXN0Ym94IikrIi1vcHRpb24tIit1KSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50IixpW3VdLmlkKSk7YTwwJiZuLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50Iil9fX1mdW5jdGlvbiB6aShlKXtpZihlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLG49ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtbWVudSIpOyF0fHwhbnx8KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC5pcy1vcGVuIikuZm9yRWFjaChmdW5jdGlvbihpKXtpIT09ZSYmdm4oaSl9KSxOcihlKSxlLmNsYXNzTGlzdC5hZGQoImlzLW9wZW4iKSxuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpKX19ZnVuY3Rpb24gdm4oZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKSxuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LW1lbnUiKTtlLmNsYXNzTGlzdC5yZW1vdmUoImlzLW9wZW4iKSxlLmNsYXNzTGlzdC5yZW1vdmUoImlzLWZpbHRlcmluZyIpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdCYmKHQuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSx0LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1hY3RpdmVkZXNjZW5kYW50IikpfX1mdW5jdGlvbiB6bChlLHQpe2lmKGUpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0Iik7aWYobil7dmFyIGk9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PW47bi52YWx1ZT10fHwiIixuLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0idHJ1ZSIsbi5kYXRhc2V0Lm1vZGVsRGlydHk9InRydWUiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaXMtZmlsdGVyaW5nIiksUmwoZSksdm4oZSksaSYmbi5mb2N1cygpfX19ZnVuY3Rpb24gSW0oKXt3aW5kb3cuX193YW5kU2V0dGluZ3NNb2RlbE91dHNpZGVCb3VuZHx8KHdpbmRvdy5fX3dhbmRTZXR0aW5nc01vZGVsT3V0c2lkZUJvdW5kPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldDtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3guaXMtb3BlbiIpLmZvckVhY2goZnVuY3Rpb24oaSl7KCFufHwhaS5jb250YWlucyhuKSkmJnZuKGkpfSl9KSk7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94Iik7ZS5mb3JFYWNoKGZ1bmN0aW9uKHQpe2lmKHQuZGF0YXNldC5ib3VuZCE9PSJ0cnVlIil7dC5kYXRhc2V0LmJvdW5kPSJ0cnVlIjt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLGk9dC5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtdG9nZ2xlIiksYT10LnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1tZW51Iik7IW58fCFpfHwhYXx8KG4uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7emkodCl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe24uZGF0YXNldC5tb2RlbEluaXRpYWxpemVkPSJ0cnVlIixuLmRhdGFzZXQubW9kZWxEaXJ0eT0idHJ1ZSIsdC5jbGFzc0xpc3QuYWRkKCJpcy1maWx0ZXJpbmciKSx6aSh0KX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odSl7aWYodS5rZXk9PT0iRXNjYXBlIil7dS5wcmV2ZW50RGVmYXVsdCgpLHZuKHQpO3JldHVybn1pZighKHUua2V5IT09IkFycm93RG93biImJnUua2V5IT09IkFycm93VXAiJiZ1LmtleSE9PSJFbnRlciIpKXtpZighdC5jbGFzc0xpc3QuY29udGFpbnMoImlzLW9wZW4iKSl7aWYodS5rZXk9PT0iRW50ZXIiKXJldHVybjt6aSh0KX12YXIgbz1hLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC1vcHRpb24iKTtpZihvLmxlbmd0aCl7dS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBzPXR5cGVvZiB0Ll93YW5kTW9kZWxBY3RpdmVJbmRleD09Im51bWJlciI/dC5fd2FuZE1vZGVsQWN0aXZlSW5kZXg6LTE7aWYodS5rZXk9PT0iQXJyb3dEb3duIiYmKHM9czxvLmxlbmd0aC0xP3MrMTowKSx1LmtleT09PSJBcnJvd1VwIiYmKHM9cz4wP3MtMTpvLmxlbmd0aC0xKSx0Ll93YW5kTW9kZWxBY3RpdmVJbmRleD1zLFdsKHQpLHUua2V5PT09IkVudGVyIil7dmFyIGw9b1tzXTtsJiZ6bCh0LGwuZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGVsLXZhbHVlIil8fCIiKX1lbHNle3ZhciBkPW9bc107ZCYmdHlwZW9mIGQuc2Nyb2xsSW50b1ZpZXc9PSJmdW5jdGlvbiImJmQuc2Nyb2xsSW50b1ZpZXcoe2Jsb2NrOiJuZWFyZXN0In0pfX19fSksaS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKHUpe3UucHJldmVudERlZmF1bHQoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dC5jbGFzc0xpc3QuY29udGFpbnMoImlzLW9wZW4iKT92bih0KTp6aSh0KX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbih1KXt1LnByZXZlbnREZWZhdWx0KCl9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih1KXt2YXIgbz11LnRhcmdldC5jbG9zZXN0KCIubW9kZWwtY29tYm9ib3gtb3B0aW9uIik7byYmemwodCxvLmdldEF0dHJpYnV0ZSgiZGF0YS1tb2RlbC12YWx1ZSIpfHwiIil9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImZvY3Vzb3V0IixmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpfHx2bih0KX0sMCl9KSxOcih0KSl9fSl9ZnVuY3Rpb24gVmkoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jb21taXQtY2xpIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1tb2RlbC1jb21ib2JveCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jb21taXQtbW9kZWwiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsLXByb3ZpZGVyIik7aWYoISghdHx8IW58fCFpKSl7dmFyIHU9dC52YWx1ZT09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIjtuLnNldEF0dHJpYnV0ZSgiZGF0YS1wcm92aWRlciIsdSksaS5wbGFjZWhvbGRlcj11PT09ImNvZGV4Ij8iXHU4RERGXHU5NjhGIENvZGV4IFx1OUVEOFx1OEJBNCI6Ilx1OERERlx1OTY4RiBDbGF1ZGUgQ29kZSBcdTlFRDhcdThCQTQiLGEmJihhLnRleHRDb250ZW50PXU9PT0iY29kZXgiPyJDb2RleCBDTEkiOiJDbGF1ZGUgQ29kZSIpLGUmJihpLnZhbHVlPSIiLGkuZGF0YXNldC5tb2RlbERpcnR5PSJ0cnVlIiksTnIobil9fWZ1bmN0aW9uIFVpKGUpe3ZhciB0PXl1KCksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwiKTtpZihuKXtuLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZCE9PSJ0cnVlIiYmKG4udmFsdWU9ci5jb25maWdEZWZhdWx0TW9kZWxzJiZyLmNvbmZpZ0RlZmF1bHRNb2RlbHMuY2xhdWRlfHx0LmNsYXVkZXx8IiIsbi5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9InRydWUiKTt2YXIgaT1uLmNsb3Nlc3QoIi5tb2RlbC1jb21ib2JveCIpO2kmJk5yKGkpfXZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCIpO2lmKGEpe2EuZGF0YXNldC5tb2RlbEluaXRpYWxpemVkIT09InRydWUiJiYoYS52YWx1ZT1yLmNvbmZpZ0RlZmF1bHRNb2RlbHMmJnIuY29uZmlnRGVmYXVsdE1vZGVscy5jb2RleHx8dC5jb2RleHx8IiIsYS5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9InRydWUiKTt2YXIgdT1hLmNsb3Nlc3QoIi5tb2RlbC1jb21ib2JveCIpO3UmJk5yKHUpfXZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbC12ZXJzaW9uIik7byYmZSYmKG8udGV4dENvbnRlbnQ9ZS5jbGF1ZGVWZXJzaW9uPyJcdTVERjJcdTY4QzBcdTZENEJcdTUyMzAgQ2xhdWRlIENMSSAiK2UuY2xhdWRlVmVyc2lvbisiXHVGRjFCXHU1MjE3XHU4ODY4XHU1REYyXHU1NDBDXHU2NUY2XHU1NDBDXHU2QjY1IENvZGV4IFx1NTNFRlx1NzUyOFx1NkEyMVx1NTc4Qlx1MzAwMiI6Ilx1NjcyQVx1OEJGQlx1NTNENlx1NTIzMCBDbGF1ZGUgQ0xJIFx1NzI0OFx1NjcyQ1x1RkYxQlx1NEVDRFx1NTNFRlx1NzZGNFx1NjNBNVx1OEY5M1x1NTE2NVx1ODFFQVx1NUI5QVx1NEU0OVx1NkEyMVx1NTc4Qlx1NTQwRFx1NzlGMFx1MzAwMiIpfWZ1bmN0aW9uIHN0KCl7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4gbnVsbDtmb3IodmFyIGU9MDtlPHIuc2Vzc2lvbnMubGVuZ3RoO2UrKylpZihyLnNlc3Npb25zW2VdLmlkPT09ci5zZWxlY3RlZElkKXJldHVybiByLnNlc3Npb25zW2VdO3JldHVybiBudWxsfWZ1bmN0aW9uIFRtKGUpe3ZhciB0PShlfHwiIikudHJpbSgpLG49c3QoKSxpPWh1KG4pO2J1KGksdCkscW4oKSxuJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL21vZGVsIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7bW9kZWw6dHx8bnVsbH0pfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEmJmEuZXJyb3Ipe0EoYS5lcnJvciwiZXJyb3IiKTtyZXR1cm59aWYoYSYmYS5pZCYmKFgoYSkscW4oKSx0eXBlb2YgQT09ImZ1bmN0aW9uIikpe3ZhciB1PV9pKHQsbiksbz1uLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHVGRjA4XHU0RTBCXHU2QjIxXHU1QkY5XHU4QkREXHU3NTFGXHU2NTQ4XHVGRjA5IjoiIjtBKCJcdTVERjJcdTUyMDdcdTYzNjJcdTZBMjFcdTU3OEIgXHUyMTkyICIrdStvLCJzdWNjZXNzIil9fSkuY2F0Y2goZnVuY3Rpb24oKXtBKCJcdTUyMDdcdTYzNjJcdTZBMjFcdTU3OEJcdTU5MzFcdThEMjUiLCJlcnJvciIpfSl9ZnVuY3Rpb24gTG0oZSl7dmFyIHQ9bXQocnQoKSwoZXx8ImRlZmF1bHQiKS50cmltKCkpO3IuY2hhdE1vZGU9dCxxbigpO3ZhciBuPXN0KCk7aWYoIW58fCFuLmlkfHxuLnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiKXtBJiZBKCJcdTY1QjBcdTRGMUFcdThCRERcdTZBMjFcdTVGMEZcdUZGMUEiK3QsImluZm8iKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi9tb2RlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7bW9kZTp0fSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSYmaS5lcnJvcil7QShpLmVycm9yLCJlcnJvciIpO3JldHVybn1pZihpJiZpLmlkJiYoWChpKSx0eXBlb2YgQT09ImZ1bmN0aW9uIikpe3ZhciBhPW4ucHJvdmlkZXI9PT0iY29kZXgiPyJcdUZGMDhDb2RleCBcdTU2RkFcdTVCOUFcdTUxNjhcdTY3NDNcdTk2NTBcdUZGMDkiOiIiO0EoIlx1NURGMlx1NTIwN1x1NjM2Mlx1NkEyMVx1NUYwRiBcdTIxOTIgIit0K2EsInN1Y2Nlc3MiKX19KS5jYXRjaChmdW5jdGlvbigpe0EoIlx1NTIwN1x1NjM2Mlx1NkEyMVx1NUYwRlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBWbChlLHQsbixpKXt2YXIgYT1yLnNlc3Npb25Ub29sPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiLHU9T3IoYSksbz1yLmNoYXRUaGlua2luZ3x8Im9mZiIscz17Y3dkOnR8fCRlKCksbW9kZTpufHxyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixwcm92aWRlcjphLHJ1bm5lcjphPT09ImNvZGV4Ij8iY29kZXgtY2xpLWV4ZWMiOnIuY29uZmlnJiZyLmNvbmZpZy5zdHJ1Y3R1cmVkUnVubmVyPT09InNkayI/ImNsYXVkZS1zZGsiOnIuc3RydWN0dXJlZFJ1bm5lcnx8ImNsYXVkZS1jbGktcHJpbnQiLHByb21wdDplfHx2b2lkIDAsd29ya3RyZWVFbmFibGVkOmk9PT0hMCxtb2RlbDp1fHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6b307cmV0dXJuIGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHMpfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGwuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGwuZXJyb3IpO3JldHVybiByLnNlbGVjdGVkSWQ9bC5pZCxoZSgpLHIuZHJhZnRzW2wuaWRdPSIiLHd0KCksWChsKSxwZSgpLFNyKGwuaWQpLFBuKGwuaWQpLGduKGwuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbH0pfSl9ZnVuY3Rpb24gS2koKXt2YXIgZT0hIXIuc2VsZWN0ZWRJZCx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pLHU9dWUoYSksbz1lJiYhdSYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCIscz1lJiYodXx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCIpO3U/ci5jdXJyZW50Vmlldz0iY2hhdCI6ZXx8KHIuY3VycmVudFZpZXc9InRlcm1pbmFsIiksdCYmKHQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixvKSx0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIW8pKSxuJiYobi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHMpLG4uY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhcykpLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIixlKSxuJiZzJiZ0dShuKSxscigpLEdlKCksSXIoKX1mdW5jdGlvbiBlcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWRlc2NyaXB0aW9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIiksbj1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIixpPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIjtyLnNlc3Npb25Ub29sPW4sci5tb2RlVmFsdWU9bXQobixyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZXx8ImRlZmF1bHQiKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjcHJvdmlkZXItY2FyZHMgLnByb3ZpZGVyLWNhcmQiKTthLmxlbmd0aCYmYS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciBsPXMuZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7cy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLGw9PT1uKSxzLmNsYXNzTGlzdC5yZW1vdmUoImRpc2FibGVkIil9KTt2YXIgdT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjc2Vzc2lvbi1raW5kLWNhcmRzIC5zZXNzaW9uLWtpbmQtY2FyZCIpO3UubGVuZ3RoJiZ1LmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGw9cy5nZXRBdHRyaWJ1dGUoImRhdGEtc2Vzc2lvbi1raW5kIiksZD0hMTtzLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsbD09PWkpLHMuY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLGQpfSk7dmFyIG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI21vZGUtY2FyZHMgLm1vZGUtY2FyZCIpO28ubGVuZ3RoJiZvLmZvckVhY2goZnVuY3Rpb24ocyl7cy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHMuZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKT09PXIubW9kZVZhbHVlKX0pLHQmJih0LnRleHRDb250ZW50PXhvKGkpKSxlJiYoZS50ZXh0Q29udGVudD1DbChuLHIubW9kZVZhbHVlKSl9ZnVuY3Rpb24gTW0oZSx0LG4saSl7dmFyIGE9bnx8MCx1PXR5cGVvZiBpPT0ibnVtYmVyIj9pOk1hdGgubWF4KGErdC5sZW5ndGgsdC5sZW5ndGgpLG89ZSYmQXJyYXkuaXNBcnJheShlLm1lc3NhZ2VzKT9lLm1lc3NhZ2VzOltdLHM9ZSYmdHlwZW9mIGUubWVzc2FnZU9mZnNldD09Im51bWJlciI/ZS5tZXNzYWdlT2Zmc2V0OjA7aWYodC5sZW5ndGg9PT0wJiZvLmxlbmd0aD4wJiZ1PT09MClyZXR1cm57bWVzc2FnZXM6byxtZXNzYWdlT2Zmc2V0OnMsbWVzc2FnZVRvdGFsOmUmJmUubWVzc2FnZVRvdGFsfHxvLmxlbmd0aH07aWYoby5sZW5ndGg9PT0wKXJldHVybnttZXNzYWdlczp0LG1lc3NhZ2VPZmZzZXQ6YSxtZXNzYWdlVG90YWw6dX07aWYoczw9YSl7dmFyIGw9TWF0aC5taW4oTWF0aC5tYXgoYS1zLDApLG8ubGVuZ3RoKSxkPW8uc2xpY2UoMCxsKS5jb25jYXQodCk7cmV0dXJue21lc3NhZ2VzOmQsbWVzc2FnZU9mZnNldDpzLG1lc3NhZ2VUb3RhbDpNYXRoLm1heCh1LHMrZC5sZW5ndGgpfX1yZXR1cm57bWVzc2FnZXM6dCxtZXNzYWdlT2Zmc2V0OmEsbWVzc2FnZVRvdGFsOnV9fWZ1bmN0aW9uIFgoZSl7aWYoISghZXx8IWUuaWQpKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1lLmlkfSl8fG51bGwsbj1BZChlLHQpO2lmKEFycmF5LmlzQXJyYXkobi5tZXNzYWdlcykmJnR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiKXt2YXIgaT1NbSh0LG4ubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0LG4ubWVzc2FnZVRvdGFsKTtuLm1lc3NhZ2VzPWkubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0PWkubWVzc2FnZU9mZnNldCxuLm1lc3NhZ2VUb3RhbD1pLm1lc3NhZ2VUb3RhbH12YXIgYT0hMSx1PW51bGw7ci5zZXNzaW9ucz1yLnNlc3Npb25zLm1hcChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZCE9PW4uaWQ/czoodT1zLGE9ITAsT2JqZWN0LmFzc2lnbih7fSxzLG4pKX0pLGF8fHIuc2Vzc2lvbnMudW5zaGlmdChuKTt2YXIgbz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1uLmlkfSl8fG47byYmQXJyYXkuaXNBcnJheShvLnF1ZXVlZE1lc3NhZ2VzKSYmbi5pZD09PXIuc2VsZWN0ZWRJZCYmKHRpKG8pLEp1KCksZG4oKSksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKEphKCksWXQoKSksbi5zdGF0dXMmJm4uc3RhdHVzIT09InJ1bm5pbmciJiZyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZzZXRUaW1lb3V0KHdpLDApfX1mdW5jdGlvbiBQbihlKXshZXx8IXIud3N8fHIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOfHxyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InN1YnNjcmliZSIsc2Vzc2lvbklkOmV9KSl9ZnVuY3Rpb24gcW0oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgbj1PYmplY3QuYXNzaWduKHt9LGUsdCksaT1lLm91dHB1dHx8IiIsYT10Lm91dHB1dHx8IiIsdT1pLmxlbmd0aD5hLmxlbmd0aCxvPWUuc3RydWN0dXJlZFN0YXRlfHxudWxsLHM9dC5zdHJ1Y3R1cmVkU3RhdGV8fG51bGwsbD1lLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHx0LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiLGQ9ISEoZS5tZXNzYWdlcyYmZS5tZXNzYWdlcy5sZW5ndGgmJihmdW5jdGlvbigpe3ZhciBtPWUubWVzc2FnZXNbZS5tZXNzYWdlcy5sZW5ndGgtMV07cmV0dXJuIG0mJm0ucm9sZT09PSJhc3Npc3RhbnQiJiZBcnJheS5pc0FycmF5KG0uY29udGVudCkmJm0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSksZj1BcnJheS5pc0FycmF5KGUubWVzc2FnZXMpP2w/Y3IoZS5tZXNzYWdlcyk6ZS5tZXNzYWdlczpbXSxjPUFycmF5LmlzQXJyYXkodC5tZXNzYWdlcyk/bD9jcih0Lm1lc3NhZ2VzKTp0Lm1lc3NhZ2VzOltdLHY9Yy5sZW5ndGg+MCYmKGZ1bmN0aW9uKCl7dmFyIG09Y1tjLmxlbmd0aC0xXTtyZXR1cm4gbSYmbS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkobS5jb250ZW50KSYmIW0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSxoPWUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJiEhbyYmby5pbkZsaWdodD09PSEwJiYoIXN8fHMuaW5GbGlnaHQhPT0hMCkmJmQmJiEhby5hY3RpdmVSZXF1ZXN0SWQmJiEhcyYmISFzLmFjdGl2ZVJlcXVlc3RJZCYmcy5hY3RpdmVSZXF1ZXN0SWQ9PT1vLmFjdGl2ZVJlcXVlc3RJZCYmIXYsZz1mLmxlbmd0aD5jLmxlbmd0aHx8Zi5sZW5ndGg+MCYmYy5sZW5ndGg+MCYmSlNPTi5zdHJpbmdpZnkoZltmLmxlbmd0aC0xXSkhPT1KU09OLnN0cmluZ2lmeShjW2MubGVuZ3RoLTFdKSYmSlNPTi5zdHJpbmdpZnkoZikubGVuZ3RoPkpTT04uc3RyaW5naWZ5KGMpLmxlbmd0aDtyZXR1cm4gdSYmKG4ub3V0cHV0PWkpLGgmJihuLnN0YXR1cz1lLnN0YXR1c3x8bi5zdGF0dXMsbi5zdHJ1Y3R1cmVkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxzfHx7fSxvLHtpbkZsaWdodDohMH0pLG4ubWVzc2FnZXM9ZS5tZXNzYWdlcyksZyYmKG4ubWVzc2FnZXM9ZiksZS5pZD09PXIuc2VsZWN0ZWRJZCYmKGUucGVybWlzc2lvbkJsb2NrZWQmJnQucGVybWlzc2lvbkJsb2NrZWQ9PT0hMXx8ZS5wZXJtaXNzaW9uQmxvY2tlZCYmIXQucGVybWlzc2lvbkJsb2NrZWQmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEwKSxlLnBlbmRpbmdFc2NhbGF0aW9uJiYhdC5wZW5kaW5nRXNjYWxhdGlvbiYmdC5wZXJtaXNzaW9uQmxvY2tlZCE9PSExJiYobi5wZW5kaW5nRXNjYWxhdGlvbj1lLnBlbmRpbmdFc2NhbGF0aW9uKSxlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wJiYoIXQubWVzc2FnZXN8fHQubWVzc2FnZXMubGVuZ3RoPT09MCkmJihuLm1lc3NhZ2VzPWUubWVzc2FnZXMpKSxufWZ1bmN0aW9uIFhlKGUsdCxuKXtpZihlJiZlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wKXJldHVybiBlLm1lc3NhZ2VzO2lmKGUmJmUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpcmV0dXJuW107aWYoIW4pcmV0dXJuW107dmFyIGk9dHlwZW9mIHQ9PSJzdHJpbmciP3Q6ZSYmZS5vdXRwdXR8fCIiO3JldHVybiBpP0x2KGksZSYmZS5jb21tYW5kKTpbXX1mdW5jdGlvbiBQbShlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiBudWxsO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIHQ9ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIHQ/dC5pZDpudWxsfXZhciBuPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5zdGF0dXM9PT0icnVubmluZyJ9KTtpZihuKXJldHVybiBuLmlkO3ZhciBpPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4hYS5hcmNoaXZlZH0pO3JldHVybiBpP2kuaWQ6ZVswXS5pZH1mdW5jdGlvbiBtbihlKXt2YXIgdD1lfHx7fTtyZXR1cm4gZmV0Y2goIi9hcGkvc2Vzc2lvbnMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtpZihuLnN0YXR1cz09PTQwMSl7RmwoKTtyZXR1cm59cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXt2YXIgaT1ufHxbXSxhPW5ldyBTZXQoaS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWR9KSk7T2JqZWN0LmtleXMoci5kcmFmdHMpLmZvckVhY2goZnVuY3Rpb24oYyl7YS5oYXMoYyl8fGRlbGV0ZSByLmRyYWZ0c1tjXX0pLHIuc2Vzc2lvbnM9aS5tYXAoZnVuY3Rpb24oYyl7dmFyIHY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGgpe3JldHVybiBoLmlkPT09Yy5pZH0pO3JldHVybiBxbSh2LGMpfSk7dmFyIHU9UG0oci5zZXNzaW9ucyk7aWYodSE9PXZvaWQgMCYmKHIuc2VsZWN0ZWRJZD11KSxHdSgpLGRuKCksci5ib290c3RyYXBwaW5nPSExLGhlKCksci5tb2RhbE9wZW4pcGUoKTtlbHNle3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0Iikscz1oYSgpO2lmKG8mJm8uaW5uZXJIVE1MPT09cyl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtsJiYobC50ZXh0Q29udGVudD1TdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKX1lbHNle28mJihvLmlubmVySFRNTD1zLGp0KG8pKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2wmJihsLnRleHRDb250ZW50PVN0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkpfX1qcigpLHIuc2VsZWN0ZWRJZCYmci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQmJkJuKHIuc2VsZWN0ZWRJZCk7dmFyIGQ9UHJvbWlzZS5yZXNvbHZlKCk7aWYoIXQuc2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkJiZyLnNlbGVjdGVkSWQpZD1nbihyLnNlbGVjdGVkSWQpO2Vsc2UgaWYoci5zZWxlY3RlZElkKXt2YXIgZj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTt1ZShmKSYmKHd0KHtwcmVzZXJ2ZVN0aWNrU3RhdGU6ITB9KSxldSghMCkpfXJldHVybiBkLnRoZW4oZnVuY3Rpb24oKXtyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZ3aSgpLEJ0KCksT2EoKX0pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiIixhPWk9PT0iRmFpbGVkIHRvIGZldGNoInx8aT09PSJOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLiJ8fGk9PT0iTG9hZCBmYWlsZWQifHwvYWJvcnRlZHxhYm9ydGVycm9yfG5ldHdvcmtlcnJvcnxmYWlsZWQgdG8gZmV0Y2gvaS50ZXN0KGkpO2F8fGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBsb2FkU2Vzc2lvbnMgZmFpbGVkOiIsbil9KX12YXIgQ3U9bnVsbDtmdW5jdGlvbiBCdSgpe0N1fHwoQ3U9c2V0VGltZW91dChmdW5jdGlvbigpe0N1PW51bGwscGUoKX0sMjAwKSl9ZnVuY3Rpb24gcGUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtlJiYoZS5pbm5lckhUTUw9aGEoKSxqdChlKSksdCYmKHQudGV4dENvbnRlbnQ9U3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSksdHlwZW9mIFh0PT0iZnVuY3Rpb24iJiZYdCgpLGpyKCksci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCYmQnQoKX1mdW5jdGlvbiBqcigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihnKXtyZXR1cm4gZy5pZD09PXIuc2VsZWN0ZWRJZH0pO2V8fChNbighMSksS2EoKSxOcygpKTt2YXIgdD1lPyRuKGUuY29tbWFuZCk6IldhbmQiLG49ZT92cihlKToiXHU1RjAwXHU1OUNCXHU1QkY5XHU4QkREIixpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN1bW1hcnktdmFsdWUiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC10aXRsZSIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWluZm8iKSxvPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50b3BiYXItc2Vzc2lvbi10aXRsZSwgLnRvcGJhci10YWdsaW5lIik7byYmZSYmKG8uY2xhc3NMaXN0LnJlbW92ZSgidG9wYmFyLXRhZ2xpbmUiKSxvLmNsYXNzTGlzdC5hZGQoInRvcGJhci1zZXNzaW9uLXRpdGxlIiksby50ZXh0Q29udGVudD1lLnRpdGxlfHwkbihlLmNvbW1hbmQpLG8uc2V0QXR0cmlidXRlKCJ0aXRsZSIsZS5kZXNjcmlwdGlvbnx8ZS5jb21tYW5kfHwiIikpO3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0IiksbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IiksZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKSxmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2kmJmkudGV4dENvbnRlbnQhPT10JiYoaS50ZXh0Q29udGVudD10KSxhJiZhLnRleHRDb250ZW50IT09dCYmKGEudGV4dENvbnRlbnQ9dCksdSYmKHUudGV4dENvbnRlbnQ9ZT9uKyIgXHhCNyAiK0NtKGUpOm4pO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtZGlzcGxheSIpLHY9ZT93bShlKToiXHU3RUM4XHU3QUVGIjtjJiZjLnRleHRDb250ZW50IT09diYmKGMudGV4dENvbnRlbnQ9diksVW8oKSwhci50ZXJtaW5hbCYmbCYmZSYmWW4oKSxyLnRlcm1pbmFsJiZsJiYhbC5jb250YWlucyhyLnRlcm1pbmFsLmVsZW1lbnQpJiYod3IoKSxZbigpKSxlfHwoci50ZXJtaW5hbFNlc3Npb25JZD1udWxsLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKSxyLnRlcm1pbmFsJiZlJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmcHQoInZpZXciKTt2YXIgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlPyhzJiZzLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGwmJmwuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKToocyYmcy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxsJiZsLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGQmJmQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZiYmZi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSxIaSgpLFhuKHN0KCkpLEtpKCksSmEoKX1mdW5jdGlvbiBnbihlKXtyLmNoYXRSZW5kZXJUaW1lciYmKGNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksci5jaGF0UmVuZGVyVGltZXI9bnVsbCk7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZX0pLG49Ii9hcGkvc2Vzc2lvbnMvIitlO3JldHVybiBEbCh0KSYmKG4rPSI/Zm9ybWF0PWNoYXQiKSxmZXRjaChuLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe3Iuc2VsZWN0ZWRJZD09PWUmJihyLnNlbGVjdGVkSWQ9bnVsbCxoZSgpKSxtbigpO3JldHVybn1pZihYKGkpLGpyKCksci50ZXJtaW5hbCYmZT09PXIuc2VsZWN0ZWRJZCYmaS5vdXRwdXQhPT12b2lkIDApe3ZhciBhPSEhci53cyYmKHIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOfHxyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuQ09OTkVDVElORyk7YT9RZSgic2Vzc2lvbi1zd2l0Y2giKTooZ2koZSxpLm91dHB1dCx7bW9kZToiYXBwZW5kIn0pLFFlKCJzZXNzaW9uLXN3aXRjaCIse2ZvcmNlUmVwbGF5OiEwfSkpfXZhciB1PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PWV9KTtyLmN1cnJlbnRNZXNzYWdlcz16ZSh1LFhlKHUsaS5vdXRwdXQsITEpKSxWZSghMSl9KX12YXIgRHU9ITE7ZnVuY3Rpb24gT20oKXtpZihEdSlyZXR1cm4hMTt2YXIgZT1yLnNlbGVjdGVkSWQ7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ZX0pO2lmKCF0KXJldHVybiExO3ZhciBuPXR5cGVvZiB0Lm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiP3QubWVzc2FnZU9mZnNldDowO2lmKG48PTApcmV0dXJuITE7dmFyIGk9NDAsYT1NYXRoLm1heCgwLG4taSksdT1uLWE7cmV0dXJuIER1PSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvbWVzc2FnZXM/b2Zmc2V0PSIrYSsiJmxpbWl0PSIrdSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtpZihvJiZBcnJheS5pc0FycmF5KG8ubWVzc2FnZXMpJiZ0Lm1lc3NhZ2VPZmZzZXQ9PT1uKXt2YXIgcz1BcnJheS5pc0FycmF5KHQubWVzc2FnZXMpP3QubWVzc2FnZXM6W107dC5tZXNzYWdlcz1vLm1lc3NhZ2VzLmNvbmNhdChzKSx0Lm1lc3NhZ2VPZmZzZXQ9YSx0eXBlb2Ygby50b3RhbD09Im51bWJlciImJih0Lm1lc3NhZ2VUb3RhbD1vLnRvdGFsKSxlPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50TWVzc2FnZXM9emUodCxYZSh0LHQub3V0cHV0LCExKSksci5jaGF0UmVuZGVyZWRDb3VudD1yLmN1cnJlbnRNZXNzYWdlcy5sZW5ndGgsVmUoITApKX19KS5jYXRjaChmdW5jdGlvbigpe30pLmZpbmFsbHkoZnVuY3Rpb24oKXtEdT0hMX0pLCEwfWZ1bmN0aW9uIEh0KGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PWV9KTtpZih0KXtyLnNlbGVjdGVkSWQhPT1lJiZ3cigpLHIuc2VsZWN0ZWRJZD1lLGhlKCksci50b29sQ29udGVudENhY2hlPXt9LHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdLHRpKHQpLEd1KCksZG4oKSx3dCgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLHIuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpO2kmJmkucmVtb3ZlKCksci5fc3RhdHVzQmFyVGltZXJJZCYmKGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MDt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTthJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpO3ZhciB1PXQ7ci5wcmVmZXJyZWRDb21tYW5kPXJ0KCksci5jaGF0TW9kZT1tdCgiY2xhdWRlIix1JiZ1Lm1vZGU/dS5tb2RlOnIuY2hhdE1vZGUpLHIudGVybWluYWxJbnRlcmFjdGl2ZSYmdSYmdS5zdGF0dXMhPT0icnVubmluZyImJk1uKCExKSxwZSgpLFNyKGUpLHIuZmlsZVBhbmVsT3BlbiYmKExkKHUpLEx0KCkpLGduKGUpLnRoZW4oZnVuY3Rpb24oKXtQdCghMCl9KSxQbihlKSxyLmdpdFN0YXR1cz1udWxsLHIuZ2l0U3RhdHVzU2Vzc2lvbklkPW51bGwsZ2EoKSxCbihlLHtmb3JjZTohMH0pfX1mdW5jdGlvbiBIbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpLG49UmUoKSxpPSEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZCxhPWl8fCFuJiYoISFyLnNpZGViYXJQaW5uZWR8fCEhci5zZXNzaW9uc0RyYXdlck9wZW4pO2UmJihlLmNsYXNzTGlzdC50b2dnbGUoInBpbm5lZCIsYSksZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLGkpKSx0JiYodC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLXBpbm5lZCIsYSksdC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLWNvbGxhcHNlZCIsaSkpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTt1JiYodS5jbGFzc0xpc3QudG9nZ2xlKCJwaW5uZWQiLCEhci5zaWRlYmFyUGlubmVkKSx1LnRpdGxlPXIuc2lkZWJhclBpbm5lZD8iXHU1REYyXHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCXHVGRjA4XHU3MEI5XHU1MUZCXHU4OUUzXHU5NjY0XHU5NTAxXHU1QjlBXHVGRjA5IjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIix1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsci5zaWRlYmFyUGlubmVkPyJcdTg5RTNcdTk2NjRcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0IiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixyLnNpZGViYXJQaW5uZWQ/InRydWUiOiJmYWxzZSIpKX1mdW5jdGlvbiBScigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2UmJmUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsZW8oKSksbiYmbi5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpO2kmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnNlc3Npb25zRHJhd2VyT3BlbiksSG0oKX1mdW5jdGlvbiBfbSgpe3ZhciBlPVJlKCk7aWYoIWUpe3ZhciB0PXIuc2lkZWJhclBpbm5lZD8hMTohci5zZXNzaW9uc0RyYXdlck9wZW47ci5zZXNzaW9uc0RyYXdlck9wZW49dCx0JiYoci5zaWRlYmFyQ29sbGFwc2VkPSExLFNlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIiwhMSkpLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHVuKCksenIoKTtyZXR1cm59aWYoci5zZXNzaW9uc0RyYXdlck9wZW49IXIuc2Vzc2lvbnNEcmF3ZXJPcGVuLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXtyLmZpbGVQYW5lbE9wZW49ITE7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsImZhbHNlIil9Y2F0Y2h7fX11bigpfWZ1bmN0aW9uIFdyKCl7dmFyIGU9UmUoKTtpZighZSl7aWYoIXIuc2lkZWJhclBpbm5lZCYmIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXJldHVybjtNcigpLHIuc2lkZWJhclBpbm5lZD0hMSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxTZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsITEpLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLHVuKCksenIoKTtyZXR1cm59ci5zZXNzaW9uc0RyYXdlck9wZW4mJihNcigpLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLHVuKCkpfWZ1bmN0aW9uIE5tKCl7aWYoUmUoKSl7V3IoKTtyZXR1cm59ci5zaWRlYmFyUGlubmVkfHxyLnNpZGViYXJDb2xsYXBzZWR8fCFyLnNlc3Npb25zRHJhd2VyT3Blbnx8KE1yKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITEsU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksdW4oKSx6cigpKX1mdW5jdGlvbiBVbChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO3IucGx1c1BvcG92ZXJPcGVuPSEhZSx0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIWUpLG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFlKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsZT8idHJ1ZSI6ImZhbHNlIikpfWZ1bmN0aW9uIGptKCl7VWwoIXIucGx1c1BvcG92ZXJPcGVuKX1mdW5jdGlvbiBKaSgpe3IucGx1c1BvcG92ZXJPcGVuJiZVbCghMSl9ZnVuY3Rpb24gX3QoKXtSZSgpJiZyLnNlc3Npb25zRHJhd2VyT3BlbiYmV3IoKX1mdW5jdGlvbiB6cigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2lmKGUpe3ZhciB0PWZ1bmN0aW9uKG4pe24ucHJvcGVydHlOYW1lPT09InBhZGRpbmctbGVmdCImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHQpLHF0KCEwKSl9O2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdCl9c2V0VGltZW91dChmdW5jdGlvbigpe3F0KCEwKX0sMzUwKX12YXIgTnQ9bnVsbDtmdW5jdGlvbiBSbSgpe3JldHVybiBOdCYmZG9jdW1lbnQuYm9keS5jb250YWlucyhOdCl8fChOdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxOdC5jbGFzc05hbWU9InNpZGViYXItdGlsZS1idWJibGUiLE50LnNldEF0dHJpYnV0ZSgicm9sZSIsInRvb2x0aXAiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKE50KSksTnR9ZnVuY3Rpb24gWHQoKXtOdCYmTnQuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfWZ1bmN0aW9uIFdtKGUsdCl7aWYoIXQpe1h0KCk7cmV0dXJufXZhciBuPVJtKCk7bi50ZXh0Q29udGVudD10Lmxlbmd0aD40MDA/dC5zbGljZSgwLDQwMCkrIlx1MjAyNiI6dDt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO24uY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpO3ZhciBhPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1pLnRvcCtpLmhlaWdodC8yLG89dS1hLmhlaWdodC8yLHM9OCxsPXdpbmRvdy5pbm5lckhlaWdodC1hLmhlaWdodC04O288cyYmKG89cyksbz5sJiYobz1NYXRoLm1heChzLGwpKSxuLnN0eWxlLmxlZnQ9aS5yaWdodCsxMisicHgiLG4uc3R5bGUudG9wPW8rInB4IixuLnN0eWxlLnNldFByb3BlcnR5KCItLWJ1YmJsZS10YWlsLXkiLHUtbysicHgiKX1mdW5jdGlvbiB6bShlKXtpZihlLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkfSk7aWYoIXQpcmV0dXJuIiI7dmFyIG49ZmModCk7cmV0dXJuIG58fHQuc3VtbWFyeXx8dC5jb21tYW5kfHwiIn1pZihlLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXt2YXIgaT1yLmNsYXVkZUhpc3RvcnkuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkfSk7aWYoaSYmaS5maXJzdFVzZXJNZXNzYWdlKXJldHVybiBpLmZpcnN0VXNlck1lc3NhZ2V9cmV0dXJuIiJ9ZnVuY3Rpb24gVm0oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIi5zaWRlYmFyLWNvbGxhcHNlZC10aWxlIik7aWYoIW4pe1h0KCk7cmV0dXJufXZhciBpPXptKG4pO2lmKCFpKXtYdCgpO3JldHVybn1XbShuLGkpfX1mdW5jdGlvbiBVbShlKXt2YXIgdD1lLnJlbGF0ZWRUYXJnZXQ7dCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQmJnQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKXx8WHQoKX1mdW5jdGlvbiBLbSgpe3ZhciBlPVJlKCk7ci5zaWRlYmFyUGlubmVkfHwoci5zaWRlYmFyUGlubmVkPSEwLFNlKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCkpLHIuc2lkZWJhckNvbGxhcHNlZD0hci5zaWRlYmFyQ29sbGFwc2VkLFNlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIixyLnNpZGViYXJDb2xsYXBzZWQpLHIuc2lkZWJhckNvbGxhcHNlZD9yLnNlc3Npb25zRHJhd2VyT3Blbj0hMTplPyhyLnNpZGViYXJQaW5uZWQ9ITEsci5zZXNzaW9uc0RyYXdlck9wZW49ITAsU2UoIndhbmQtc2lkZWJhci1waW5uZWQiLCExKSk6ci5zZXNzaW9uc0RyYXdlck9wZW49ITAsU2UoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3BlbiksdW4oKSxwZSgpLFltKCksWHQoKSx6cigpfWZ1bmN0aW9uIEptKCl7UmUoKXx8KHIuc2lkZWJhclBpbm5lZD0hci5zaWRlYmFyUGlubmVkLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLFNlKCJ3YW5kLXNpZGViYXItcGlubmVkIixyLnNpZGViYXJQaW5uZWQpLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLHVuKCksenIoKSl9ZnVuY3Rpb24gWW0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1jb2xsYXBzZS1idG4iKTtpZihlKXt2YXIgdD0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQ7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLHQpLGUudGl0bGU9dD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIiksZS5pbm5lckhUTUw9dD8nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxMCA2IDE2IDEyIDEwIDE4Ii8+PGxpbmUgeDE9IjIwIiB5MT0iNSIgeDI9IjIwIiB5Mj0iMTkiLz48L3N2Zz4nOic8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjE0IDYgOCAxMiAxNCAxOCIvPjxsaW5lIHgxPSI0IiB5MT0iNSIgeDI9IjQiIHkyPSIxOSIvPjwvc3ZnPid9fWZ1bmN0aW9uIEdtKGUpe2lmKGUpe2Uuc3R5bGUubGVmdD0iIixlLnN0eWxlLnJpZ2h0PSIiO3ZhciB0PWUub2Zmc2V0UGFyZW50fHxlLnBhcmVudEVsZW1lbnQ7aWYodCl7dmFyIG49OCxpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9d2luZG93LmlubmVyV2lkdGg7YS5sZWZ0PG4/KGUuc3R5bGUucmlnaHQ9ImF1dG8iLGUuc3R5bGUubGVmdD1uLWkubGVmdCsicHgiKTphLnJpZ2h0PnUtbiYmKGUuc3R5bGUubGVmdD0iYXV0byIsZS5zdHlsZS5yaWdodD1pLnJpZ2h0LSh1LW4pKyJweCIpfX19ZnVuY3Rpb24gUW0oZSl7aWYoISghZXx8dHlwZW9mIGUhPSJvYmplY3QiKSl7ci5jb25maWc9ZTt2YXIgdD1lLmRlZmF1bHRQcm92aWRlcj09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIjtyLnNlc3Npb25Ub29sPXQsci5wcmVmZXJyZWRDb21tYW5kPXQsci5zZXNzaW9uQ3JlYXRlS2luZD1lLmRlZmF1bHRTZXNzaW9uS2luZD09PSJwdHkiPyJwdHkiOiJzdHJ1Y3R1cmVkIixyLm1vZGVWYWx1ZT1tdCh0LGUuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iil9fXZhciBZaT1Qcm9taXNlLnJlc29sdmUoKTtmdW5jdGlvbiBHaShlKXtyZXR1cm4hZXx8dHlwZW9mIGUhPSJvYmplY3QiP1Byb21pc2UucmVzb2x2ZSgpOihZaT1ZaS5jYXRjaChmdW5jdGlvbigpe30pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2goIi9hcGkvc2V0dGluZ3MvY29uZmlnIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShlKX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCkudGhlbihmdW5jdGlvbihuKXtpZighdC5va3x8bi5lcnJvcil0aHJvdyBuZXcgRXJyb3Iobi5lcnJvcnx8Ilx1NEZERFx1NUI1OFx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1NTA0Rlx1NTk3RFx1NTkzMVx1OEQyNSIpO3JldHVybiBuLmNvbmZpZyYmKHIuY29uZmlnPW4uY29uZmlnKSxufSl9KS5jYXRjaChmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oIlt3YW5kXSBGYWlsZWQgdG8gcGVyc2lzdCBuZXctc2Vzc2lvbiBkZWZhdWx0cyIsdCl9KSxZaSl9ZnVuY3Rpb24ga3UoKXtucigpLHIubW9kYWxPcGVuPSEwLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLFJyKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtlJiYoZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxyLnNlc3Npb25Ub29sPXIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0UHJvdmlkZXI9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsci5wcmVmZXJyZWRDb21tYW5kPXIuc2Vzc2lvblRvb2wsci5zZXNzaW9uQ3JlYXRlS2luZD1yLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdFNlc3Npb25LaW5kPT09InB0eSI/InB0eSI6InN0cnVjdHVyZWQiLHIuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPSExLHIubW9kZVZhbHVlPW10KHIuc2Vzc2lvblRvb2wsci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlP3IuY29uZmlnLmRlZmF1bHRNb2RlOiJkZWZhdWx0IiksZXIoKSxZaS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQub2s/dC5qc29uKCk6bnVsbH0pLnRoZW4oZnVuY3Rpb24odCl7IXR8fCFyLm1vZGFsT3Blbnx8KFFtKHQpLGVyKCkpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KSxGZygpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1jYXJkcyIpO3QmJnQuZm9jdXMoKX0sMjApLFFpKGUpKX1mdW5jdGlvbiBobigpe3IubW9kYWxPcGVuPSExO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7ZSYmKHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCksQXUoZSkpLGlyKCl9ZnVuY3Rpb24gQXUoZSl7aWYoZSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSl7dmFyIHQ9ITE7dHJ5e3Q9d2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXN9Y2F0Y2h7fWlmKHR8fGRvY3VtZW50LmhpZGRlbil7ZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59ZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LmFkZCgiY2xvc2luZyIpLGUuX3dhbmRDbG9zZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGx9LDE3MCl9fWZ1bmN0aW9uIFFpKGUpe3IuZm9jdXNUcmFwSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKTt2YXIgdD0nYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknO3IuZm9jdXNUcmFwSGFuZGxlcj1mdW5jdGlvbihuKXtpZihuLmtleT09PSJUYWIiKXt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwodCksYT1pWzBdLHU9aVtpLmxlbmd0aC0xXTshYXx8IXV8fChuLnNoaWZ0S2V5P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiYobi5wcmV2ZW50RGVmYXVsdCgpLHUuZm9jdXMoKSk6ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXUmJihuLnByZXZlbnREZWZhdWx0KCksYS5mb2N1cygpKSl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpfWZ1bmN0aW9uICRtKCl7cmV0dXJuIHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCYmci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09ci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfSl8fG51bGx9ZnVuY3Rpb24gVnIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY29udGVudCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtZXJyb3IiKSxpPSRtKCksYT1yLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdDtpZighKCFlfHwhdCkpe2lmKCFpfHwhaS53b3JrdHJlZSl7ZS5pbm5lckhUTUw9JzxwIGNsYXNzPSJmaWVsZC1oaW50Ij5cdTY3MkFcdTYyN0VcdTUyMzBcdTUzRUZcdTU0MDhcdTVFNzZcdTc2ODQgd29ya3RyZWUgXHU0RjFBXHU4QkREXHUzMDAyPC9wPicsdC5kaXNhYmxlZD0hMDtyZXR1cm59biYmKHIud29ya3RyZWVNZXJnZUVycm9yP0hlKG4sci53b3JrdHJlZU1lcmdlRXJyb3IpOnlpKG4pKTt2YXIgdT1bJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzY1XHU2RTkwXHU1MjA2XHU2NTJGPC9zcGFuPjxzdHJvbmc+JytwKGkud29ya3RyZWUuYnJhbmNofHwiLSIpKyI8L3N0cm9uZz48L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvc3Bhbj48c3Ryb25nPicrcChpLndvcmt0cmVlLnBhdGh8fCItIikrIjwvc3Ryb25nPjwvZGl2PiJdO2E/KHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTc2RUVcdTY4MDdcdTUyMDZcdTY1MkY8L3NwYW4+PHN0cm9uZz4nK3AoYS50YXJnZXRCcmFuY2h8fCItIikrIjwvc3Ryb25nPjwvZGl2PiIpLHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTVGODVcdTU0MDhcdTVFNzZcdTYzRDBcdTRFQTQ8L3NwYW4+PHN0cm9uZz4nK3AoU3RyaW5nKGEuYWhlYWRDb3VudHx8MCkpKyI8L3N0cm9uZz48L2Rpdj4iKSx1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzJBXHU2M0QwXHU0RUE0XHU2NTM5XHU1MkE4PC9zcGFuPjxzdHJvbmc+JytwKGEuaGFzVW5jb21taXR0ZWRDaGFuZ2VzPyJcdTY3MDkiOiJcdTY1RTAiKSsiPC9zdHJvbmc+PC9kaXY+IiksdS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NTFCMlx1N0E4MVx1OThDRVx1OTY2OTwvc3Bhbj48c3Ryb25nPicrcChhLmhhc0NvbmZsaWN0cz8iXHU2NzA5IjoiXHU2NUUwIikrIjwvc3Ryb25nPjwvZGl2PiIpLGEucmVhc29uJiZ1LnB1c2goJzxwIGNsYXNzPSJmaWVsZC1oaW50Ij4nK3AoYS5yZWFzb24pKyI8L3A+IikpOnIud29ya3RyZWVNZXJnZUxvYWRpbmcmJnUucHVzaCgnPHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNSB3b3JrdHJlZSBcdTU0MDhcdTVFNzZcdTcyQjZcdTYwMDFcdTIwMjY8L3A+JyksZS5pbm5lckhUTUw9dS5qb2luKCIiKSx0LmRpc2FibGVkPXIud29ya3RyZWVNZXJnZUxvYWRpbmd8fHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmd8fCFhfHxhLm9rIT09ITAsdC50ZXh0Q29udGVudD1yLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPyJcdTU0MDhcdTVFNzZcdTRFMkQuLi4iOiJcdTc4NkVcdThCQTRcdTU0MDhcdTVFNzZcdTVFNzZcdTZFMDVcdTc0MDYifX1mdW5jdGlvbiBLbChlKXtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9ZSxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITAsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixobigpLG5yKCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLW1vZGFsIik7dCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxRaSh0KSksVnIoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL21lcmdlL2NoZWNrIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO24mJm4uc2Vzc2lvbiYmWChuLnNlc3Npb24pLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW4ucmVzdWx0fHxudWxsLHIud29ya3RyZWVNZXJnZUVycm9yPSIifSkuY2F0Y2goZnVuY3Rpb24obil7ci53b3JrdHJlZU1lcmdlRXJyb3I9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2OEMwXHU2N0U1IHdvcmt0cmVlIFx1NTQwOFx1NUU3Nlx1NzJCNlx1NjAwMVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMSxWcigpfSl9ZnVuY3Rpb24gdHIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9bnVsbCxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITEsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCl9ZnVuY3Rpb24gWG0oKXshci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfHxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nfHwoci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMCxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixWcigpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCkrIi93b3JrdHJlZS9tZXJnZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe30pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUmJmUuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGUuZXJyb3IpO3JldHVybiBlJiZlLnNlc3Npb24mJlgoZS5zZXNzaW9uKSxBKCJcdTVERjJcdTU0MDhcdTVFNzZcdTUyMzAgIitwKGUucmVzdWx0JiZlLnJlc3VsdC50YXJnZXRCcmFuY2h8fCJcdTRFM0JcdTUyMDZcdTY1MkYiKSsoZS5yZXN1bHQmJmUucmVzdWx0LmNsZWFudXBEb25lPT09ITE/Ilx1RkYwQ1x1NEY0Nlx1NURFNVx1NEY1Q1x1NjgxMVx1NUY4NVx1NkUwNVx1NzQwNlx1MzAwMiI6Ilx1MzAwMiIpLCJpbmZvIiksdHIoKSxPdCgpfSkuY2F0Y2goZnVuY3Rpb24oZSl7ci53b3JrdHJlZU1lcmdlRXJyb3I9ZSYmZS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDA4XHU1RTc2IHdvcmt0cmVlXHUzMDAyIixWcigpfSkuZmluYWxseShmdW5jdGlvbigpe3Iud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc9ITEsVnIoKX0pKX1mdW5jdGlvbiBKbChlKXtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL2NsZWFudXAiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCYmdC5lcnJvcil0aHJvdyBuZXcgRXJyb3IodC5lcnJvcik7cmV0dXJuIHQmJnQuc2Vzc2lvbiYmWCh0LnNlc3Npb24pLEEoIlx1NURGMlx1NUI4Q1x1NjIxMCB3b3JrdHJlZSBcdTZFMDVcdTc0MDZcdTMwMDIiLCJpbmZvIiksT3QoKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe0EodCYmdC5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3NDA2IHdvcmt0cmVlXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIFptKCl7aG4oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlKXtlLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXctcGFzc3dvcmQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIik7dCYmKHQudmFsdWU9IiIpLG4mJihuLnZhbHVlPSIiKSxZbCgpLFFpKGUpLHRnKCksZS5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKS5mb3JFYWNoKGZ1bmN0aW9uKGMpe2MuZGF0YXNldC5tb2RlbERpcnR5PSJmYWxzZSIsYy5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9ImZhbHNlIn0pLHh1KCJhYm91dCIpLGFnKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1zb3VuZCIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1idWJibGUiKTtpJiYoaS5jaGVja2VkPXIubm90aWZTb3VuZCksYSYmKGEuY2hlY2tlZD1yLm5vdGlmQnViYmxlKTt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZSIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUtdmFsIik7aWYodSl7dS52YWx1ZT1yLm5vdGlmVm9sdW1lLG8mJihvLnRleHRDb250ZW50PXIubm90aWZWb2x1bWUrIiUiKTt0cnl7dS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwfSkpfWNhdGNoe319dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmLXZvbHVtZS1maWVsZCIpO2lmKHMmJihzLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIiksYm4oKSx0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmdldEFwcEljb249PSJmdW5jdGlvbiIpdHJ5eyRsKFdhbmROYXRpdmUuZ2V0QXBwSWNvbigpfHwic2hvcnRoYWlyIil9Y2F0Y2h7fWlmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Tb3VuZD09ImZ1bmN0aW9uIil0cnl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1zZWxlY3QiKTtsJiYobC52YWx1ZT1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kKCkpfWNhdGNoe31pZihXZSYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uVm9sdW1lPT0iZnVuY3Rpb24iKXRyeXt2YXIgZD1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblZvbHVtZSgpO2lmKHIubm90aWZWb2x1bWU9ZCx1JiYodS52YWx1ZT1TdHJpbmcoZCkpLG8mJihvLnRleHRDb250ZW50PWQrIiUiKSx1KXRyeXt1LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSl9Y2F0Y2h7fXRyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiLFN0cmluZyhkKSl9Y2F0Y2h7fX1jYXRjaHt9aWYoV2UmJnR5cGVvZiBXYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZD09ImZ1bmN0aW9uIil0cnl7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1oYXB0aWMtZW5hYmxlZCIpO2YmJihmLmNoZWNrZWQ9V2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQoKSl9Y2F0Y2h7fX19ZnVuY3Rpb24gbnIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtlJiYoZS5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3guaXMtb3BlbiIpLmZvckVhY2goZnVuY3Rpb24odCl7dm4odCl9KSxyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpLEF1KGUpKX1mdW5jdGlvbiBZbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1lcnJvciIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXN1Y2Nlc3MiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gZWcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3LXBhc3N3b3JkIikudmFsdWUsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlybS1wYXNzd29yZCIpLnZhbHVlLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWVycm9yIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtc3VjY2VzcyIpO2lmKFlsKCksIWV8fGUubGVuZ3RoPDYpe24udGV4dENvbnRlbnQ9Ilx1NUJDNlx1NzgwMVx1OTU3Rlx1NUVBNlx1ODFGM1x1NUMxMVx1NEUzQSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59aWYoZSE9PXQpe24udGV4dENvbnRlbnQ9Ilx1NEUyNFx1NkIyMVx1OEY5M1x1NTE2NVx1NzY4NFx1NUJDNlx1NzgwMVx1NEUwRFx1NEUwMFx1ODFGNFx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2V0LXBhc3N3b3JkIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Bhc3N3b3JkOmV9KSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEuZXJyb3Ipe24udGV4dENvbnRlbnQ9YS5lcnJvcixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1pLnRleHRDb250ZW50PSJcdTVCQzZcdTc4MDFcdTRGRUVcdTY1MzlcdTYyMTBcdTUyOUZcdUZGMDEiLGkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldy1wYXNzd29yZCIpLnZhbHVlPSIiLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIikudmFsdWU9IiJ9KS5jYXRjaChmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkZhaWxlZCB0byBzYXZlIHBhc3N3b3JkLiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX0pfWZ1bmN0aW9uIHh1KGUpe2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC5pcy1vcGVuIikuZm9yRWFjaChmdW5jdGlvbihzKXt2bihzKX0pO2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtcGFuZWwiKSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV0uZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpPT09ZTthP3RbaV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik6dFtpXS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSx0W2ldLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsYT8idHJ1ZSI6ImZhbHNlIiksdFtpXS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IixhPyIwIjoiLTEiKX1mb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIG89blt1XS5pZD09PSJzZXR0aW5ncy10YWItIitlO28/KG5bdV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksblt1XS5yZW1vdmVBdHRyaWJ1dGUoImhpZGRlbiIpKTooblt1XS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxuW3VdLnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwiaGlkZGVuIikpfX1mdW5jdGlvbiBHbChlKXtpZihlJiYhKGUua2V5IT09IkFycm93VXAiJiZlLmtleSE9PSJBcnJvd0Rvd24iJiZlLmtleSE9PSJBcnJvd0xlZnQiJiZlLmtleSE9PSJBcnJvd1JpZ2h0IiYmZS5rZXkhPT0iSG9tZSImJmUua2V5IT09IkVuZCIpKXt2YXIgdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIikpO2lmKHQubGVuZ3RoKXt2YXIgbj1lLmN1cnJlbnRUYXJnZXQmJmUuY3VycmVudFRhcmdldC5jbG9zZXN0P2UuY3VycmVudFRhcmdldC5jbG9zZXN0KCIuc2V0dGluZ3MtdGFicyIpOm51bGwsaT1uJiZuLmdldEF0dHJpYnV0ZSgiYXJpYS1vcmllbnRhdGlvbiIpPT09Imhvcml6b250YWwiO2lmKCEoaSYmKGUua2V5PT09IkFycm93VXAifHxlLmtleT09PSJBcnJvd0Rvd24iKSkmJiEoIWkmJihlLmtleT09PSJBcnJvd0xlZnQifHxlLmtleT09PSJBcnJvd1JpZ2h0IikpKXt2YXIgYT10LmluZGV4T2YoZS5jdXJyZW50VGFyZ2V0KTtpZihhIT09LTEpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdT1hOyhlLmtleT09PSJBcnJvd1VwInx8ZS5rZXk9PT0iQXJyb3dMZWZ0IikmJih1PWE+MD9hLTE6dC5sZW5ndGgtMSksKGUua2V5PT09IkFycm93RG93biJ8fGUua2V5PT09IkFycm93UmlnaHQiKSYmKHU9YTx0Lmxlbmd0aC0xP2ErMTowKSxlLmtleT09PSJIb21lIiYmKHU9MCksZS5rZXk9PT0iRW5kIiYmKHU9dC5sZW5ndGgtMSk7dmFyIG89dFt1XTtpZihvKXt2YXIgcz1vLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTtzJiZ4dShzKSx0eXBlb2Ygby5mb2N1cz09ImZ1bmN0aW9uIiYmby5mb2N1cygpfX19fX19ZnVuY3Rpb24gdGcoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2V0dGluZ3MtdGFicyIpO2lmKGUpe3ZhciB0PSExO3RyeXt0PSEhKHdpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzYwcHgpIikubWF0Y2hlcyl9Y2F0Y2h7fWUuc2V0QXR0cmlidXRlKCJhcmlhLW9yaWVudGF0aW9uIix0PyJob3Jpem9udGFsIjoidmVydGljYWwiKX1mb3IodmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLXRhYiIpLGk9MDtpPG4ubGVuZ3RoO2krKyluW2ldLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLEdsKSxuW2ldLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLEdsKX1mdW5jdGlvbiBuZyhlKXtpZihlKXt2YXIgdD1lLmNvbmZpZ3x8e30sbj17YWJvdXQ6ZS52ZXJzaW9uPyJcdTVGNTNcdTUyNEQgdiIrZS52ZXJzaW9uOiJcdTcyNDhcdTY3MkNcdTRFMEVcdTY2RjRcdTY1QjBcdTRGRTFcdTYwNkYiLGdlbmVyYWw6W3QuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iix0Lmxhbmd1YWdlfHwiXHU4MUVBXHU1MkE4XHU4QkVEXHU4QTAwIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiBceEI3ICIpLG5vdGlmaWNhdGlvbnM6ci5ub3RpZlNvdW5kPyJcdTYzRDBcdTc5M0FcdTk3RjMgIityLm5vdGlmVm9sdW1lKyIlIjoiXHU2M0QwXHU3OTNBXHU5N0YzXHU1REYyXHU1MTczXHU5NUVEIixzZWN1cml0eTplLmhhc0NlcnQ/Ilx1NURGMlx1NUI4OVx1ODhDNSBTU0wgXHU4QkMxXHU0RTY2IjoiXHU1QkM2XHU3ODAxXHU0RTBFXHU4QkMxXHU0RTY2XHU3QkExXHU3NDA2IixwcmVzZXRzOnQuY29tbWFuZFByZXNldHMmJnQuY29tbWFuZFByZXNldHMubGVuZ3RoP3QuY29tbWFuZFByZXNldHMubGVuZ3RoKyIgXHU2NzYxXHU5ODg0XHU4QkJFIjoiXHU2NjgyXHU2NUUwXHU5ODg0XHU4QkJFIixkaXNwbGF5OiJcdTYzQTdcdTUyMzZcdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDAifTtmb3IodmFyIGkgaW4gbilpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixpKSl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNldHRpbmdzLXRhYltkYXRhLXRhYj0iJytpKyciXSAuc2V0dGluZ3MtdGFiLW1ldGEnKTthJiYoYS50ZXh0Q29udGVudD1uW2ldfHwiIil9fX1mdW5jdGlvbiByZyhlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5IiksaT13aW5kb3cuUVJDb2RlTGliO2lmKHQpe2lmKCFpfHx0eXBlb2YgaS50b0NhbnZhcyE9ImZ1bmN0aW9uIil7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NUU5M1x1NjcyQVx1NTJBMFx1OEY3RCIpO3JldHVybn10cnl7aS50b0NhbnZhcyh0LGUse3dpZHRoOjIyMCxtYXJnaW46MSxlcnJvckNvcnJlY3Rpb25MZXZlbDoiTSIsY29sb3I6e2Rhcms6IiMxZjFiMTciLGxpZ2h0OiIjZmZmZmZmMDAifX0sZnVuY3Rpb24oYSl7aWYoYSl7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIsbi5zdHlsZS5kaXNwbGF5PSIiKSx0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7cmV0dXJufW4mJihuLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0LnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUifSl9Y2F0Y2h7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIsbi5zdHlsZS5kaXNwbGF5PSIiKSx0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiJ9fX1mdW5jdGlvbiBpZyhlKXt2YXIgdD13aW5kb3cuUVJDb2RlTGliO2lmKCF0fHx0eXBlb2YgdC50b0NhbnZhcyE9ImZ1bmN0aW9uIilyZXR1cm47dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbm5lY3QtcXItbW9kYWwiKTtuJiZuLnJlbW92ZSgpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuaWQ9ImNvbm5lY3QtcXItbW9kYWwiLGkuY2xhc3NOYW1lPSJjb25uZWN0LXFyLW1vZGFsLW92ZXJsYXkiLGkuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjb25uZWN0LXFyLW1vZGFsLWNhcmQiPjxjYW52YXMgaWQ9ImNvbm5lY3QtcXItbW9kYWwtY2FudmFzIj48L2NhbnZhcz48cCBjbGFzcz0iY29ubmVjdC1xci1tb2RhbC1oaW50Ij5cdTc1MjggV2FuZCBBcHAgXHU2MjZCXHU0RTAwXHU2MjZCXHVGRjBDXHU4RkRFXHU2M0E1XHU1RjUzXHU1MjREXHU2NzBEXHU1MkExXHU1NjY4PC9wPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGNvbm5lY3QtcXItbW9kYWwtY2xvc2UiPlx1NTE3M1x1OTVFRDwvYnV0dG9uPjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt2YXIgYT1pLnF1ZXJ5U2VsZWN0b3IoIiNjb25uZWN0LXFyLW1vZGFsLWNhbnZhcyIpLHU9TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsd2luZG93LmlubmVySGVpZ2h0KSouNzt1PDI0MCYmKHU9MjQwKSx1PjQ4MCYmKHU9NDgwKTt0cnl7dC50b0NhbnZhcyhhLGUse3dpZHRoOnUsbWFyZ2luOjIsZXJyb3JDb3JyZWN0aW9uTGV2ZWw6Ik0iLGNvbG9yOntkYXJrOiIjMWYxYjE3IixsaWdodDoiI2ZmZmZmZiJ9fSl9Y2F0Y2h7fWZ1bmN0aW9uIG8oKXtpLnJlbW92ZSgpfWkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGwpe2wudGFyZ2V0PT09aSYmbygpfSk7dmFyIHM9aS5xdWVyeVNlbGVjdG9yKCIuY29ubmVjdC1xci1tb2RhbC1jbG9zZSIpO3MmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG8pfWZ1bmN0aW9uIFVyKGUsdCxuKXtpZighZSlyZXR1cm47ZnVuY3Rpb24gaSgpe2lmKEduKCJsaWdodCIpLG4pe24oKTtyZXR1cm59aWYodCl7dmFyIGE9dC50ZXh0Q29udGVudDt0LnRleHRDb250ZW50PSJcdTVERjJcdTU5MERcdTUyMzYiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnRleHRDb250ZW50PWF9LDE1MDApfX1pZihXZSYmdHlwZW9mIFdhbmROYXRpdmUuY29weVRvQ2xpcGJvYXJkPT0iZnVuY3Rpb24iKXRyeXtpZihXYW5kTmF0aXZlLmNvcHlUb0NsaXBib2FyZChlKT09PSJvayIpe2koKTtyZXR1cm59fWNhdGNoe31uYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGkpLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTthLnZhbHVlPWUsYS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGEuc3R5bGUub3BhY2l0eT0iMCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKSxhLnNlbGVjdCgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKSxpKCl9KX1mdW5jdGlvbiB5bihlKXtpZih0eXBlb2YgZSE9Im51bWJlciJ8fCFpc0Zpbml0ZShlKXx8ZTwwKXJldHVybiItIjtpZihlPDEwMjQpcmV0dXJuIGUrIiBCIjtmb3IodmFyIHQ9WyJLQiIsIk1CIiwiR0IiLCJUQiJdLG49ZS8xMDI0LGk9MDtuPj0xMDI0JiZpPHQubGVuZ3RoLTE7KW49bi8xMDI0LGkrPTE7dmFyIGE9bj49MTA/bi50b0ZpeGVkKDApOm4udG9GaXhlZCgxKTtyZXR1cm4gYSsiICIrdFtpXX1mdW5jdGlvbiBhZygpe2ZldGNoKCIvYXBpL3NldHRpbmdzIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtuZyhlKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtcGtnLW5hbWUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy12ZXJzaW9uIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtbm9kZS1yZXEiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1yZXBvLXVybCIpO3QmJih0LnRleHRDb250ZW50PWUucGFja2FnZU5hbWV8fCItIiksbiYmKG4udGV4dENvbnRlbnQ9ZS52ZXJzaW9ufHwiLSIpLGkmJihpLnRleHRDb250ZW50PWUubm9kZVZlcnNpb258fCItIiksYSYmZS5yZXBvVXJsJiYoYS5pbm5lckhUTUw9JzxhIGhyZWY9IicrcChlLnJlcG9VcmwpKyciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4nK3AoZS5yZXBvVXJsKSsiPC9hPiIpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKTtlLmxhdGVzdFZlcnNpb24mJnUmJih1LnRleHRDb250ZW50PWUubGF0ZXN0VmVyc2lvbixlLnVwZGF0ZUF2YWlsYWJsZSYmbyYmby5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTtzJiYocy5jaGVja2VkPWUudXBkYXRlQ2hhbm5lbD09PSJiZXRhIik7dmFyIGw9ZS5hdXRvVXBkYXRlfHx7fSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIik7ZCYmKGQuY2hlY2tlZD0hIWwud2ViKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpO2YmJihmLmNoZWNrZWQ9ISFJbiYmISFsLmFwayk7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTtjJiYoYy5jaGVja2VkPSEhc24mJiEhbC5kbWcpO2Z1bmN0aW9uIHYob2UsTGUpe2NzKG9lLHt0eXBlOkxlPT09ImVycm9yIj8iZGFuZ2VyIjoiaW5mbyJ9KX1mdW5jdGlvbiBoKG9lLExlLGplKXt2YXIgdHQ9amU/amUudGV4dENvbnRlbnQ6IiI7amUmJihqZS5kaXNhYmxlZD0hMCxqZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEXHU0RTJEXHUyMDI2Iik7ZnVuY3Rpb24gaigpe2plJiYoamUuZGlzYWJsZWQ9ITEsamUudGV4dENvbnRlbnQ9dHQpfWZldGNoKG9lLHttZXRob2Q6IkhFQUQiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKFApe2lmKCFQLm9rKXt2KFAuc3RhdHVzPT09NDA0PyJcdTRFMEJcdThGN0RcdTY3MkFcdTU0MkZcdTc1MjhcdTYyMTZcdTY1ODdcdTRFRjZcdTVERjJcdTc5RkJcdTk2NjQiOiJcdTRFMEJcdThGN0RcdTU5MzFcdThEMjUgKEhUVFAgIitQLnN0YXR1cysiKSIsImVycm9yIiksaigpO3JldHVybn12YXIgSz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Sy5ocmVmPW9lLEsuZG93bmxvYWQ9TGV8fCIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoSyksSy5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoSyksdigiXHU1REYyXHU1RjAwXHU1OUNCXHU0RTBCXHU4RjdEXHVGRjBDXHU4QkY3XHU1NzI4XHU5MDFBXHU3N0U1XHU2ODBGL1x1NEUwQlx1OEY3RFx1N0JBMVx1NzQwNlx1NEUyRFx1NjdFNVx1NzcwQiIsImluZm8iKSxqKCl9KS5jYXRjaChmdW5jdGlvbihQKXt2KCJcdTRFMEJcdThGN0RcdTU5MzFcdThEMjU6ICIrKFAmJlAubWVzc2FnZT9QLm1lc3NhZ2U6UCksImVycm9yIiksaigpfSl9ZnVuY3Rpb24gZyhvZSxMZSl7ZnVuY3Rpb24gamUoWmkpe3ZhciBIbj1TdHJpbmcoWml8fCIiKS5yZXBsYWNlKC9edi8sIiIpLF9uPUhuLmluZGV4T2YoIi0iKSxlYT1fbj49MD9Ibi5zbGljZSgwLF9uKTpIbixZcj1fbj49MD9Ibi5zbGljZShfbisxKToiIjtyZXR1cm57cGFydHM6ZWEuc3BsaXQoIi4iKS5tYXAoZnVuY3Rpb24oT2Upe3JldHVybiBwYXJzZUludChPZSwxMCl8fDB9KSxwcmU6WXIsaXNEZWJ1ZzpZci5pbmRleE9mKCJkZWJ1ZyIpPT09MH19Zm9yKHZhciB0dD1qZShvZSksaj1qZShMZSksUD0wO1A8MztQKyspe3ZhciBLPSh0dC5wYXJ0c1tQXXx8MCktKGoucGFydHNbUF18fDApO2lmKEshPT0wKXJldHVybiBLPjA/MTotMX1pZih0dC5pc0RlYnVnIT09ai5pc0RlYnVnKXJldHVybiB0dC5pc0RlYnVnPzE6LTE7aWYodHQuaXNEZWJ1ZyYmai5pc0RlYnVnKWZvcih2YXIgYWU9dHQucHJlLnNwbGl0KCIuIiksc2U9ai5wcmUuc3BsaXQoIi4iKSx5ZT0wO3llPE1hdGgubWF4KGFlLmxlbmd0aCxzZS5sZW5ndGgpO3llKyspe2lmKGFlW3llXT09PXZvaWQgMClyZXR1cm4tMTtpZihzZVt5ZV09PT12b2lkIDApcmV0dXJuIDE7dmFyIHVyPXBhcnNlSW50KGFlW3llXSwxMCksb3I9cGFyc2VJbnQoc2VbeWVdLDEwKTtpZighaXNOYU4odXIpJiYhaXNOYU4ob3IpKXtpZih1ciE9PW9yKXJldHVybiB1cj5vcj8xOi0xfWVsc2UgaWYoYWVbeWVdIT09c2VbeWVdKXJldHVybiBhZVt5ZV0+c2VbeWVdPzE6LTF9cmV0dXJuIDB9ZnVuY3Rpb24gbShvZSxMZSxqZSx0dCxqLFApe29lLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG9lLmRpc2FibGVkPSExLExlPjA/b2UudGV4dENvbnRlbnQ9Ilx1NTM0N1x1N0VBNyI6TGU9PT0wPyhvZS50ZXh0Q29udGVudD0iXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwIixvZS5kaXNhYmxlZD0hMCk6UD9vZS50ZXh0Q29udGVudD0iXHU5MUNEXHU2NUIwXHU1Qjg5XHU4OEM1Ijoob2UudGV4dENvbnRlbnQ9Ilx1NzI0OFx1NjcyQ1x1OEY4M1x1NjVFNyIsb2UuZGlzYWJsZWQ9ITApLG9lLm9uY2xpY2s9b2UuZGlzYWJsZWQ/bnVsbDpmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLmRvd25sb2FkVXBkYXRlKGplLHR0LGopfWNhdGNoKEspe3YoIlx1OEMwM1x1NzUyOFx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNTogIisoSyYmSy5tZXNzYWdlP0subWVzc2FnZTpLKSwiZXJyb3IiKX19fXZhciB5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1zZWN0aW9uIiksQz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstY3VycmVudC1yb3ciKSxFPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1hbmRyb2lkLWFway1jdXJyZW50IiksQj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstZ2l0aHViLXJvdyIpLEQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWFuZHJvaWQtYXBrLWdpdGh1YiIpLEY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWdpdGh1Yi1hcGstYnRuIiksST1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstbG9jYWwtcm93IiksTD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYW5kcm9pZC1hcGstbG9jYWwiKSxIPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1sb2NhbC1hcGstYnRuIiksVT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstbWVzc2FnZSIpLHg9ZS5hbmRyb2lkQXBrfHx7fSxrPSEhSW4sVD14LmVuYWJsZWQhPT0hMSxNPWt8fFQmJighIXguZ2l0aHVifHwhIXgubG9jYWwpO2lmKHkmJihNP3kuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6eS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSksayl7aWYoQyYmRSYmKEUudGV4dENvbnRlbnQ9InYiK0luLEMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHguZ2l0aHViJiZCJiZEKXt2YXIgWT14LmdpdGh1Yi52ZXJzaW9uPyJ2Iit4LmdpdGh1Yi52ZXJzaW9uOnguZ2l0aHViLmZpbGVOYW1lO2lmKHR5cGVvZiB4LmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKFkrPSIgXHhCNyAiK3luKHguZ2l0aHViLnNpemUpKSxELnRleHRDb250ZW50PVksQi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxGKXt2YXIgej14LmdpdGh1Yi52ZXJzaW9uP2coeC5naXRodWIudmVyc2lvbixJbik6MTttKEYseix4LmdpdGh1Yi5kb3dubG9hZFVybCx4LmdpdGh1Yi5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsImdpdGh1YiIsITEpfX1pZih4LmxvY2FsJiZJJiZMKXt2YXIgUT14LmxvY2FsLnZlcnNpb24/InYiK3gubG9jYWwudmVyc2lvbjp4LmxvY2FsLmZpbGVOYW1lO2lmKHR5cGVvZiB4LmxvY2FsLnNpemU9PSJudW1iZXIiJiYoUSs9IiBceEI3ICIreW4oeC5sb2NhbC5zaXplKSksTC50ZXh0Q29udGVudD1RLEkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksSCl7dmFyIGxlPXgubG9jYWwudmVyc2lvbj9nKHgubG9jYWwudmVyc2lvbixJbik6MTttKEgsbGUseC5sb2NhbC5kb3dubG9hZFVybCx4LmxvY2FsLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIiwibG9jYWwiLCExKX19IXguZ2l0aHViJiYheC5sb2NhbCYmVSYmKFUudGV4dENvbnRlbnQ9Ilx1NjY4Mlx1NjVFMFx1NTNFRlx1NzUyOFx1NjZGNFx1NjVCMCIsVS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7dmFyIGVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWF1dG8tdXBkYXRlLXJvdyIpLFo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXV0by11cGRhdGUtaGludCIpO2VlJiZlZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxaJiZaLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfWVsc2V7aWYoeC5naXRodWImJkImJkQpe3ZhciBxPXguZ2l0aHViLnZlcnNpb24/InYiK3guZ2l0aHViLnZlcnNpb246eC5naXRodWIuZmlsZU5hbWU7dHlwZW9mIHguZ2l0aHViLnNpemU9PSJudW1iZXIiJiYocSs9IiBceEI3ICIreW4oeC5naXRodWIuc2l6ZSkpLEQudGV4dENvbnRlbnQ9cSxCLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEYmJihGLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLEYuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRi5vbmNsaWNrPWZ1bmN0aW9uKCl7d2luZG93Lm9wZW4oeC5naXRodWIuZG93bmxvYWRVcmwsIl9ibGFuayIpLHYoIlx1NkI2M1x1NTcyOFx1NjI1M1x1NUYwMFx1NEUwQlx1OEY3RFx1OTg3NVx1MjAyNiIsImluZm8iKX0pfWlmKHgubG9jYWwmJkkmJkwpe3ZhciBPPXgubG9jYWwudmVyc2lvbj8idiIreC5sb2NhbC52ZXJzaW9uOngubG9jYWwuZmlsZU5hbWU7dHlwZW9mIHgubG9jYWwuc2l6ZT09Im51bWJlciImJihPKz0iIFx4QjcgIit5bih4LmxvY2FsLnNpemUpKSxMLnRleHRDb250ZW50PU8sSS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxIJiYoSC50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIixILmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEgub25jbGljaz1mdW5jdGlvbigpe2goeC5sb2NhbC5kb3dubG9hZFVybCx4LmxvY2FsLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIixIKX0pfSF4LmdpdGh1YiYmIXgubG9jYWwmJlUmJihVLnRleHRDb250ZW50PVQ/Ilx1NTcyOFx1N0VCRlx1NzI0OFx1NjcyQ1x1NjY4Mlx1NjVGNlx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1NTNFRlx1N0EwRFx1NTQwRVx1OTFDRFx1OEJENSI6IkFuZHJvaWQgXHU0RTBCXHU4RjdEXHU2NzJBXHU1NzI4XHU2NzBEXHU1MkExXHU3QUVGXHU1NDJGXHU3NTI4IixVLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX12YXIgTj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLXNlY3Rpb24iKSxHPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctY3VycmVudC1yb3ciKSxKPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tYWNvcy1kbWctY3VycmVudCIpLG5lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctZ2l0aHViLXJvdyIpLGRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tYWNvcy1kbWctZ2l0aHViIikscmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWdpdGh1Yi1kbWctYnRuIiksaWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1sb2NhbC1yb3ciKSxxZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbWFjb3MtZG1nLWxvY2FsIiksZ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWxvY2FsLWRtZy1idG4iKSxjZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLW1lc3NhZ2UiKSxSPWUubWFjb3NEbWd8fHt9LGh0PSEhc24sX2U9Ui5lbmFibGVkIT09ITEsJD1odHx8X2UmJighIVIuZ2l0aHVifHwhIVIubG9jYWwpO2lmKE4mJigkP04uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6Ti5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSksaHQpe2lmKEcmJkomJihKLnRleHRDb250ZW50PSJ2IitzbixHLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxSLmdpdGh1YiYmbmUmJmRlKXt2YXIgZmU9Ui5naXRodWIudmVyc2lvbj8idiIrUi5naXRodWIudmVyc2lvbjpSLmdpdGh1Yi5maWxlTmFtZTtpZih0eXBlb2YgUi5naXRodWIuc2l6ZT09Im51bWJlciImJihmZSs9IiBceEI3ICIreW4oUi5naXRodWIuc2l6ZSkpLGRlLnRleHRDb250ZW50PWZlLG5lLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHJlKXt2YXIgQ2U9Ui5naXRodWIudmVyc2lvbj9nKFIuZ2l0aHViLnZlcnNpb24sc24pOjE7bShyZSxDZSxSLmdpdGh1Yi5kb3dubG9hZFVybCxSLmdpdGh1Yi5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsImdpdGh1YiIsITApfX1pZihSLmxvY2FsJiZpZSYmcWUpe3ZhciBCZT1SLmxvY2FsLnZlcnNpb24/InYiK1IubG9jYWwudmVyc2lvbjpSLmxvY2FsLmZpbGVOYW1lO2lmKHR5cGVvZiBSLmxvY2FsLnNpemU9PSJudW1iZXIiJiYoQmUrPSIgXHhCNyAiK3luKFIubG9jYWwuc2l6ZSkpLHFlLnRleHRDb250ZW50PUJlLGllLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGdlKXt2YXIgdmU9Ui5sb2NhbC52ZXJzaW9uP2coUi5sb2NhbC52ZXJzaW9uLHNuKToxO20oZ2UsdmUsUi5sb2NhbC5kb3dubG9hZFVybCxSLmxvY2FsLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIiwibG9jYWwiLCEwKX19IVIuZ2l0aHViJiYhUi5sb2NhbCYmY2UmJihjZS50ZXh0Q29udGVudD0iXHU2NjgyXHU2NUUwXHU1M0VGXHU3NTI4XHU2NkY0XHU2NUIwIixjZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7dmFyIEZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1hdXRvLXVwZGF0ZS1yb3ciKSxldD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtYXV0by11cGRhdGUtaGludCIpO0ZlJiZGZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxldCYmZXQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZWxzZXtpZihSLmdpdGh1YiYmbmUmJmRlKXt2YXIgZHQ9Ui5naXRodWIudmVyc2lvbj8idiIrUi5naXRodWIudmVyc2lvbjpSLmdpdGh1Yi5maWxlTmFtZTt0eXBlb2YgUi5naXRodWIuc2l6ZT09Im51bWJlciImJihkdCs9IiBceEI3ICIreW4oUi5naXRodWIuc2l6ZSkpLGRlLnRleHRDb250ZW50PWR0LG5lLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHJlJiYocmUudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIscmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikscmUub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5vcGVuKFIuZ2l0aHViLmRvd25sb2FkVXJsLCJfYmxhbmsiKSx2KCJcdTZCNjNcdTU3MjhcdTYyNTNcdTVGMDBcdTRFMEJcdThGN0RcdTk4NzVcdTIwMjYiLCJpbmZvIil9KX1pZihSLmxvY2FsJiZpZSYmcWUpe3ZhciBpdD1SLmxvY2FsLnZlcnNpb24/InYiK1IubG9jYWwudmVyc2lvbjpSLmxvY2FsLmZpbGVOYW1lO3R5cGVvZiBSLmxvY2FsLnNpemU9PSJudW1iZXIiJiYoaXQrPSIgXHhCNyAiK3luKFIubG9jYWwuc2l6ZSkpLHFlLnRleHRDb250ZW50PWl0LGllLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGdlJiYoZ2UudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIsZ2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZ2Uub25jbGljaz1mdW5jdGlvbigpe2goUi5sb2NhbC5kb3dubG9hZFVybCxSLmxvY2FsLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIixnZSl9KX0hUi5naXRodWImJiFSLmxvY2FsJiZjZSYmKGNlLnRleHRDb250ZW50PV9lPyJcdTU3MjhcdTdFQkZcdTcyNDhcdTY3MkNcdTY2ODJcdTY1RjZcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjVcdUZGMENcdTUzRUZcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiOiJtYWNPUyBcdTRFMEJcdThGN0RcdTY3MkFcdTU3MjhcdTY3MERcdTUyQTFcdTdBRUZcdTU0MkZcdTc1MjgiLGNlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX12YXIgTmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1jb2RlIiksUnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1xciIpLFllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiKSxEZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyLXdyYXAiKTtpZihOZSl7TmUudGV4dENvbnRlbnQ9Ilx1NTJBMFx1OEY3RFx1NEUyRC4uLiIsWWUmJihZZS50ZXh0Q29udGVudD0iXHU3NTFGXHU2MjEwXHU0RTJEXHUyMDI2IiksUnQmJihSdC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iKTt2YXIgUGU9Ii9hcGkvYXBwLWNvbm5lY3QtY29kZSI7d2luZG93LmxvY2F0aW9uJiZ3aW5kb3cubG9jYXRpb24ub3JpZ2luJiYoUGUrPSI/b3JpZ2luPSIrZW5jb2RlVVJJQ29tcG9uZW50KHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pKSxmZXRjaChQZSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24ob2Upe3JldHVybiBvZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG9lKXtvZS5jb2RlPyhOZS50ZXh0Q29udGVudD1vZS5jb2RlLHIuYW5kcm9pZENvbm5lY3RDb2RlPW9lLmNvZGUscmcob2UuY29kZSkpOihOZS50ZXh0Q29udGVudD0iXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixZZSYmKFllLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjUiKSl9KS5jYXRjaChmdW5jdGlvbigpe05lLnRleHRDb250ZW50PSJcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjUiLFllJiYoWWUudGV4dENvbnRlbnQ9Ilx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNSIpfSl9RGUmJiFEZS5kYXRhc2V0LmJvdW5kJiYoRGUuZGF0YXNldC5ib3VuZD0iMSIsRGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5hbmRyb2lkQ29ubmVjdENvZGUmJmlnKHIuYW5kcm9pZENvbm5lY3RDb2RlKX0pKTt2YXIgdGU9ZS5jb25maWd8fHt9LHdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaG9zdCIpLHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1wb3J0IiksYXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpLGt0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbW9kZSIpLHV0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY3dkIiksWnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zaGVsbCIpO3dlJiYod2UudmFsdWU9dGUuaG9zdHx8IiIpLHcmJih3LnZhbHVlPXRlLnBvcnR8fCIiKSxhdCYmKGF0LmNoZWNrZWQ9dGUuaHR0cHM9PT0hMCksa3QmJihrdC52YWx1ZT10ZS5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiKSx1dCYmKHV0LnZhbHVlPXRlLmRlZmF1bHRDd2R8fCIiKSxadCYmKFp0LnZhbHVlPXRlLnNoZWxsfHwiIik7dmFyIEF0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbGFuZ3VhZ2UiKTtBdCYmKEF0LnZhbHVlPXRlLmxhbmd1YWdlfHwiIik7dmFyIFd0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc3RydWN0dXJlZC1ydW5uZXIiKTtXdCYmKFd0LnZhbHVlPXRlLnN0cnVjdHVyZWRSdW5uZXJ8fCJjbGkiKTt2YXIgenQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpO3p0JiYoenQuY2hlY2tlZD10ZS5pbmhlcml0RW52IT09ITEpO3ZhciBUZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1jbGkiKSxVZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1tb2RlbCIpO1RlJiYoVGUudmFsdWU9dGUuY29tbWl0Q2xpPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiKSxVZSYmKFVlLnZhbHVlPXRlLmNvbW1pdE1vZGVsfHwiIixVZS5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9InRydWUiLFVlLmRhdGFzZXQubW9kZWxEaXJ0eT0iZmFsc2UiKSxWaSghMSk7dmFyIEtlPXRlLmRlZmF1bHRNb2RlbHMmJnR5cGVvZiB0ZS5kZWZhdWx0TW9kZWxzPT0ib2JqZWN0Ij90ZS5kZWZhdWx0TW9kZWxzOntjbGF1ZGU6dGUuZGVmYXVsdE1vZGVsfHwiIixjb2RleDp0ZS5kZWZhdWx0Q29kZXhNb2RlbHx8IiJ9O3IuY29uZmlnRGVmYXVsdE1vZGVscz17Y2xhdWRlOktlLmNsYXVkZXx8IiIsY29kZXg6S2UuY29kZXh8fCIifSxyLmNvbmZpZ0RlZmF1bHRNb2RlbD1yLmNvbmZpZ0RlZmF1bHRNb2RlbHMuY2xhdWRlO3ZhciB4dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwiKSxWdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtY29kZXgtbW9kZWwiKTt4dCYmeHQuZGF0YXNldC5tb2RlbERpcnR5IT09InRydWUiJiYoeHQuZGF0YXNldC5tb2RlbEluaXRpYWxpemVkPSJmYWxzZSIpLFZ0JiZWdC5kYXRhc2V0Lm1vZGVsRGlydHkhPT0idHJ1ZSImJihWdC5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9ImZhbHNlIiksVWkoKSxPbCgpLnRoZW4oZnVuY3Rpb24oKXtVaSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTt2YXIgVXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtc3RhdHVzIik7VXQmJihVdC50ZXh0Q29udGVudD1lLmhhc0NlcnQ/Ilx1NURGMlx1NUI4OVx1ODhDNSBTU0wgXHU4QkMxXHU0RTY2IjoiXHU2NzJBXHU1Qjg5XHU4OEM1XHU4QkMxXHU0RTY2XHVGRjA4XHU0RjdGXHU3NTI4XHU4MUVBXHU3QjdFXHU1NDBEXHU2MjE2IEhUVFBcdUZGMDkiLFV0LnN0eWxlLmNvbG9yPWUuaGFzQ2VydD8idmFyKC0tc3VjY2VzcykiOiJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiKTt2YXIgRW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZXNldHMtbGlzdCIpO2lmKEVuJiZ0ZS5jb21tYW5kUHJlc2V0cyl7Zm9yKHZhciBjdD0iIixrZT0wO2tlPHRlLmNvbW1hbmRQcmVzZXRzLmxlbmd0aDtrZSsrKXt2YXIgSmU9dGUuY29tbWFuZFByZXNldHNba2VdO2N0Kz0nPGRpdiBjbGFzcz0icHJlc2V0LWl0ZW0iPjxzcGFuIGNsYXNzPSJwcmVzZXQtbGFiZWwiPicrcChKZS5sYWJlbCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icHJlc2V0LWRldGFpbCI+JytwKEplLmNvbW1hbmQpKyhKZS5tb2RlPyIgKCIrcChKZS5tb2RlKSsiKSI6IiIpKyI8L3NwYW4+PC9kaXY+In1jdHx8KGN0PSc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS1jb21wYWN0Ij48c3BhbiBjbGFzcz0iZW1wdHktaWNvbiI+XHUyNjk5PC9zcGFuPjxzcGFuPlx1NkNBMVx1NjcwOVx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvc3Bhbj48c3BhbiBjbGFzcz0iaGludCI+XHU1NzI4IGNvbmZpZy5qc29uIFx1NzY4NCBjb21tYW5kUHJlc2V0cyBcdTRFMkRcdTkxNERcdTdGNkU8L3NwYW4+PC9kaXY+JyksRW4uaW5uZXJIVE1MPWN0fXZhciBBZT10ZS5jYXJkRGVmYXVsdHN8fHt9LE9uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1lZGl0IiksZnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWlubGluZSIpLGVuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10ZXJtaW5hbCIpLHRuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10aGlua2luZyIpLFN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10b29sZ3JvdXAiKTtPbiYmKE9uLmNoZWNrZWQ9QWUuZWRpdENhcmRzPT09ITApLGZ0JiYoZnQuY2hlY2tlZD1BZS5pbmxpbmVUb29scz09PSEwKSxlbiYmKGVuLmNoZWNrZWQ9QWUudGVybWluYWw9PT0hMCksdG4mJih0bi5jaGVja2VkPUFlLnRoaW5raW5nPT09ITApLFN0JiYoU3QuY2hlY2tlZD1BZS50b29sR3JvdXA9PT0hMCl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIHVnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpZy1tZXNzYWdlIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS50ZXh0Q29udGVudD0iIik7dmFyIHQ9KChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwiKXx8e30pLnZhbHVlfHwiIikudHJpbSgpLG49KChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtY29kZXgtbW9kZWwiKXx8e30pLnZhbHVlfHwiIikudHJpbSgpLGk9KChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1tb2RlbCIpfHx7fSkudmFsdWV8fCIiKS50cmltKCksYT17aG9zdDooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ob3N0Iil8fHt9KS52YWx1ZSxwb3J0Ok51bWJlcigoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1wb3J0Iil8fHt9KS52YWx1ZSksaHR0cHM6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaHR0cHMiKXx8e30pLmNoZWNrZWQsZGVmYXVsdE1vZGU6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbW9kZSIpfHx7fSkudmFsdWUsZGVmYXVsdEN3ZDooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jd2QiKXx8e30pLnZhbHVlLHNoZWxsOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXNoZWxsIil8fHt9KS52YWx1ZSxsYW5ndWFnZTooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1sYW5ndWFnZSIpfHx7fSkudmFsdWV8fCIiLGRlZmF1bHRNb2RlbDp0LGRlZmF1bHRDb2RleE1vZGVsOm4sZGVmYXVsdE1vZGVsczp7Y2xhdWRlOnQsY29kZXg6bn0sY29tbWl0Q2xpOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1jbGkiKXx8e30pLnZhbHVlPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiLGNvbW1pdE1vZGVsOmksc3RydWN0dXJlZFJ1bm5lcjooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciIpfHx7fSkudmFsdWV8fCJjbGkiLGluaGVyaXRFbnY6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaW5oZXJpdC1lbnYiKXx8e30pLmNoZWNrZWQhPT0hMX0sdT15dSgpLG89YS5kZWZhdWx0TW9kZWx8fCIiLHM9YS5kZWZhdWx0Q29kZXhNb2RlbHx8IiI7ZmV0Y2goIi9hcGkvc2V0dGluZ3MvY29uZmlnIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShhKX0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwuanNvbigpfSkudGhlbihmdW5jdGlvbihsKXtpZihlJiYobC5lcnJvcj8oZS50ZXh0Q29udGVudD1sLmVycm9yLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIpOihlLnRleHRDb250ZW50PWwucmVzdGFydFJlcXVpcmVkPyJcdTkxNERcdTdGNkVcdTVERjJcdTRGRERcdTVCNThcdUZGMENcdTkwRThcdTUyMDZcdTkwRThcdTdGNzJcdTVCNTdcdTZCQjVcdUZGMDhob3N0L3BvcnQvaHR0cHMvc2hlbGxcdUZGMDlcdTk3MDBcdTg5ODFcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTYyNERcdTc1MUZcdTY1NDhcdTMwMDIiOiJcdTkxNERcdTdGNkVcdTVERjJcdTRGRERcdTVCNThcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksIWx8fCFsLmVycm9yKXtyLmNvbmZpZyYmKHIuY29uZmlnLmRlZmF1bHRNb2RlbD1vLHIuY29uZmlnLmRlZmF1bHRDb2RleE1vZGVsPXMsci5jb25maWcuZGVmYXVsdE1vZGVscz17Y2xhdWRlOm8sY29kZXg6c30sci5jb25maWcuY29tbWl0Q2xpPWEuY29tbWl0Q2xpLHIuY29uZmlnLmNvbW1pdE1vZGVsPWEuY29tbWl0TW9kZWwpLHIuY29uZmlnRGVmYXVsdE1vZGVscz17Y2xhdWRlOm8sY29kZXg6c30sci5jb25maWdEZWZhdWx0TW9kZWw9bzt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwiKSxmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCIpO2QmJihkLmRhdGFzZXQubW9kZWxEaXJ0eT0iZmFsc2UiKSxmJiYoZi5kYXRhc2V0Lm1vZGVsRGlydHk9ImZhbHNlIik7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jb21taXQtbW9kZWwiKTtjJiYoYy5kYXRhc2V0Lm1vZGVsRGlydHk9ImZhbHNlIiksbyE9PXUuY2xhdWRlJiZidSgiY2xhdWRlIiwiIikscyE9PXUuY29kZXgmJmJ1KCJjb2RleCIsIiIpLChvIT09dS5jbGF1ZGV8fHMhPT11LmNvZGV4KSYmWG4oc3QoKSl9fSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSl9ZnVuY3Rpb24gb2coKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGlzcGxheS1tZXNzYWdlIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS50ZXh0Q29udGVudD0iIik7dmFyIHQ9e2NhcmREZWZhdWx0czp7ZWRpdENhcmRzOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1lZGl0Iil8fHt9KS5jaGVja2VkLGlubGluZVRvb2xzOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1pbmxpbmUiKXx8e30pLmNoZWNrZWQsdGVybWluYWw6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRlcm1pbmFsIil8fHt9KS5jaGVja2VkLHRoaW5raW5nOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10aGlua2luZyIpfHx7fSkuY2hlY2tlZCx0b29sR3JvdXA6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRvb2xncm91cCIpfHx7fSkuY2hlY2tlZH19O2ZldGNoKCIvYXBpL3NldHRpbmdzL2NvbmZpZyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7ZSYmKG4uZXJyb3I/KGUudGV4dENvbnRlbnQ9bi5lcnJvcixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiKTooZS50ZXh0Q29udGVudD0iXHU2NjNFXHU3OTNBXHU4QkJFXHU3RjZFXHU1REYyXHU0RkREXHU1QjU4IixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLCFuLmVycm9yJiZyLmNvbmZpZyYmKHIuY29uZmlnLmNhcmREZWZhdWx0cz10LmNhcmREZWZhdWx0cyl9KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX1mdW5jdGlvbiBzZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LWtleS1maWxlIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1jZXJ0LWZpbGUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LW1lc3NhZ2UiKTtpZihuJiYobi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuLnRleHRDb250ZW50PSIiKSwhZXx8IWUuZmlsZXN8fCFlLmZpbGVzWzBdfHwhdHx8IXQuZmlsZXN8fCF0LmZpbGVzWzBdKXtuJiYobi50ZXh0Q29udGVudD0iXHU4QkY3XHU5MDA5XHU2MkU5XHU3OUMxXHU5NEE1XHU1NDhDXHU4QkMxXHU0RTY2XHU2NTg3XHU0RUY2XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3JldHVybn12YXIgaT1uZXcgRmlsZVJlYWRlcjtpLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBhPWkucmVzdWx0LHU9bmV3IEZpbGVSZWFkZXI7dS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgbz11LnJlc3VsdDtmZXRjaCgiL2FwaS9zZXR0aW5ncy91cGxvYWQtY2VydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2tleTphLGNlcnQ6b30pfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHMpe2lmKG4pe2lmKHMuZXJyb3Ipbi50ZXh0Q29udGVudD1zLmVycm9yLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSI7ZWxzZXtuLnRleHRDb250ZW50PSJcdThCQzFcdTRFNjZcdTVERjJcdTRFMEFcdTRGMjBcdUZGMENcdTkxQ0RcdTU0MkZcdTU0MEVcdTc1MUZcdTY1NDhcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIjt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1zdGF0dXMiKTtsJiYobC50ZXh0Q29udGVudD0iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiLGwuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIil9bi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KS5jYXRjaChmdW5jdGlvbigpe24mJihuLnRleHRDb250ZW50PSJcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjVcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX0sdS5yZWFkQXNUZXh0KHQuZmlsZXNbMF0pfSxpLnJlYWRBc1RleHQoZS5maWxlc1swXSl9ZnVuY3Rpb24gUWwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbGF0ZXN0LXZlcnNpb24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby11cGRhdGUtYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLW1lc3NhZ2UiKTtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU0RTJELi4uIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGZldGNoKCIvYXBpL2NoZWNrLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaS5lcnJvcil7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjhDMFx1NjdFNVx1NTkzMVx1OEQyNSIpO3JldHVybn12YXIgYT1pLmNoYW5uZWw9PT0iYmV0YSI7aWYoZSYmKGUudGV4dENvbnRlbnQ9aS5sYXRlc3R8fChhPyJiZXRhIFx1NjcyQVx1NTNEMVx1NUUwMyI6Ii0iKSksIWkubGF0ZXN0KXtuJiYobi50ZXh0Q29udGVudD1hPyJcdTY1RTBcdTZDRDVcdThCRkJcdTUzRDYgbnBtIGJldGEgXHU3MjQ4XHU2NzJDXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU4RkRFXHU2M0E1XHU1MjMwIG5wbSByZWdpc3RyeVx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTtyZXR1cm59aS51cGRhdGVBdmFpbGFibGUmJnQmJih0LnRleHRDb250ZW50PWE/Ilx1NjZGNFx1NjVCMFx1NTIzMCBCZXRhIjoiXHU2NkY0XHU2NUIwXHU1MjMwXHU2NzAwXHU2NUIwXHU3MjQ4Iix0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSwhaS51cGRhdGVBdmFpbGFibGUmJm4mJihuLnRleHRDb250ZW50PWE/Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMCBCZXRhIFx1NzI0OFx1NjcyQ1x1MzAwMiI6Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMFx1NzI0OFx1NjcyQ1x1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU1OTMxXHU4RDI1Iil9KX1mdW5jdGlvbiBsZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKTtpZih0KXt2YXIgbj10LnRleHRDb250ZW50fHwiXHU2NkY0XHU2NUIwXHU1MjMwXHU2NzAwXHU2NUIwXHU3MjQ4IixpPWZ1bmN0aW9uKCl7dC5kaXNhYmxlZD0hMSx0LnRleHRDb250ZW50PW4sdC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYnVzeSIpfTt0LmRpc2FibGVkPSEwLHQudGV4dENvbnRlbnQ9Ilx1NjZGNFx1NjVCMFx1NEUyRC4uLiIsdC5zZXRBdHRyaWJ1dGUoImFyaWEtYnVzeSIsInRydWUiKSxlJiYoZS50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU2NkY0XHU2NUIwXHVGRjBDXHU4QkY3XHU3QTBEXHU1MDE5Li4uIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLGZldGNoKCIvYXBpL3VwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEuZXJyb3Ipe2UmJihlLnRleHRDb250ZW50PWEuZXJyb3IsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxpKCk7cmV0dXJufWlmKGUmJihlLnRleHRDb250ZW50PShhLm1lc3NhZ2V8fCJcdTY2RjRcdTY1QjBcdTVCOENcdTYyMTAiKSsiXHVGRjBDXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHUyMDI2IixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksdC5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYnVzeSIpLHQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksYS5kZXRhY2hlZFVwZGF0ZSlsbigpO2Vsc2UgaWYoYS5yZXN0YXJ0UmVxdWlyZWQhPT0hMSl5cyhudWxsLGUpO2Vsc2V7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIik7dSYmdS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTY2RjRcdTY1QjBcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksaSgpfSl9fWZ1bmN0aW9uIGRnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLW1lc3NhZ2UiKTt5cyhlLHQpfWZ1bmN0aW9uIGNnKCl7ZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUuYXBrKXJldHVybiBmZXRjaCgiL2FwaS9hbmRyb2lkLWFway11cGRhdGU/Y3VycmVudFZlcnNpb249IitlbmNvZGVVUklDb21wb25lbnQoSW4pLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKCEoIXQudXBkYXRlQXZhaWxhYmxlfHwhdC5kb3dubG9hZFVybCkpdHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUodC5kb3dubG9hZFVybCx0LmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIix0LnNvdXJjZXx8ImxvY2FsIil9Y2F0Y2h7fX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBmZygpe3NuJiZmZXRjaCgiL2FwaS9hdXRvLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZS5kbWcpcmV0dXJuIGZldGNoKCIvYXBpL21hY29zLWRtZy11cGRhdGU/Y3VycmVudFZlcnNpb249IitlbmNvZGVVUklDb21wb25lbnQoc24pLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKCEoIXQudXBkYXRlQXZhaWxhYmxlfHwhdC5kb3dubG9hZFVybCkpdHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUodC5kb3dubG9hZFVybCx0LmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIix0LnNvdXJjZXx8ImxvY2FsIil9Y2F0Y2h7fX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBTdShlLHQpe3ZhciBuPXt9O25bZV09dCxmZXRjaCgiL2FwaS9hdXRvLXVwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobil9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKSx1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO2EmJihhLmNoZWNrZWQ9ISFpLndlYiksdSYmKHUuY2hlY2tlZD0hIWkuYXBrKSxvJiYoby5jaGVja2VkPSEhaS5kbWcpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtIitlKyItdG9nZ2xlIik7aSYmKGkuY2hlY2tlZD0hdCl9KX1mdW5jdGlvbiBwZyhlKXtmZXRjaCgiL2FwaS91cGRhdGUtY2hhbm5lbCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NoYW5uZWw6ZX0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7biYmKG4uY2hlY2tlZD10LmNoYW5uZWw9PT0iYmV0YSIpLFFsKCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7dCYmKHQuY2hlY2tlZD1lIT09ImJldGEiKX0pfWZ1bmN0aW9uICRsKGUpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIik9PT1lO3Rbbl0uY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiLGkpLHRbbl0uc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLGk/InRydWUiOiJmYWxzZSIpfX1mdW5jdGlvbiBibigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcGVybWlzc2lvbi1zdGF0dXMiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVzZXQtYnRuIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO2lmKGUpe3ZhciBhPWJpKCk7aWYoYT09PW51bGwpe2lmKHR5cGVvZiBOb3RpZmljYXRpb24+InUiKXtlLnRleHRDb250ZW50PSJcdTRFMERcdTY1MkZcdTYzMDEiLGUuc3R5bGUuY29sb3I9InZhcigtLWZnLW11dGVkKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3JldHVybn1hPU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9ufWE9PT0iZ3JhbnRlZCI/KGUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjM4OFx1Njc0MyBcdTI3MTMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIix0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpOmE9PT0iZGVuaWVkIj8oZS50ZXh0Q29udGVudD0iXHU1REYyXHU2MkQyXHU3RUREIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1kYW5nZXIpIix0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpOihlLnRleHRDb250ZW50PSJcdTY3MkFcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXdhcm5pbmcpIix0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfX1mdW5jdGlvbiB2Zygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIik7aWYoV2Upe3dpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0PWZ1bmN0aW9uKHQpe2JuKCksZSYmKHQ9PT0iZ3JhbnRlZCI/KGUudGV4dENvbnRlbnQ9Ilx1MjcxMyBcdTVERjJcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIik6KGUudGV4dENvbnRlbnQ9Ilx1MjcxNyBcdTY3MkFcdTYzODhcdTY3NDNcdUZGMENcdThCRjdcdTU3MjhcdTdDRkJcdTdFREZcdThCQkVcdTdGNkVcdTRFMkRcdTVGMDBcdTU0MkYgV2FuZCBcdTc2ODRcdTkwMUFcdTc3RTVcdTY3NDNcdTk2NTAiLGUuc3R5bGUuY29sb3I9InZhcigtLWRhbmdlcikiKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxkZWxldGUgd2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHR9O3RyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn10eXBlb2YgTm90aWZpY2F0aW9uPiJ1Inx8Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbih0KXtpZihibigpLHQ9PT0iZ3JhbnRlZCIpZSYmKGUudGV4dENvbnRlbnQ9Ilx1MjcxMyBcdTVERjJcdTYzODhcdTY3NDMiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTtlbHNlIGlmKHQ9PT0iZGVuaWVkIiYmZSl7dmFyIG49bG9jYXRpb24ub3JpZ2luO2UuaW5uZXJIVE1MPSdcdTZENEZcdTg5QzhcdTU2NjhcdTVERjJcdTYyRTZcdTYyMkFcdTYzODhcdTY3NDNcdTVGMzlcdTdBOTdcdUZGMENcdThCRjdcdTYyNEJcdTUyQThcdTkxQ0RcdTdGNkVcdUZGMUE8YnI+PHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7bWFyZ2luOjRweCAwIj5cdTI0NjAgXHU3MEI5XHU1MUZCXHU1NzMwXHU1NzQwXHU2ODBGXHU1REU2XHU0RkE3XHU3Njg0IDxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2ZvbnQtc2l6ZToxMXB4O3ZlcnRpY2FsLWFsaWduOm1pZGRsZSI+aTwvc3Bhbj4gXHU2MjE2XHU5NTAxXHU1NkZFXHU2ODA3PC9zcGFuPjxicj5cdTI0NjEgXHU2MjdFXHU1MjMwXHUzMDBDXHU5MDFBXHU3N0U1XHUzMDBEXHUyMTkyIFx1NjUzOVx1NEUzQVx1MzAwQ1x1NTE0MVx1OEJCOFx1MzAwRDxicj5cdTI0NjIgXHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHU1MzczXHU1M0VGJyxlLnN0eWxlLmNvbG9yPSJ2YXIoLS1mZy1tdXRlZCkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9fSl9ZnVuY3Rpb24gWGwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITEsZS50ZXh0Q29udGVudD0iMTAgXHU3OUQyXHU1NDBFXHU1M0QxXHU5MDAxIil9ZnVuY3Rpb24gbWcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO3IuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyKSxyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1udWxsKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIik7dCYmKHQuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU1REYyXHU1Qjg5XHU2MzkyXHVGRjA4MTBzXHVGRjA5IiksZSYmKGUuaW5uZXJIVE1MPSJcdTVERjJcdTVCODlcdTYzOTIgMTAgXHU3OUQyXHU1NDBFXHU1M0QxXHU5MDAxXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1XHVGRjBDXHU4QkY3XHU1MjA3XHU1MjMwXHU1NDBFXHU1M0YwXHU3QjQ5XHU1Rjg1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1udWxsLFhsKCksWmwoKX0sMWU0KX1mdW5jdGlvbiBabCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIiksdD1bXTtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciYmKGNsZWFyVGltZW91dChyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciksci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCxYbCgpKTt2YXIgbj1aZigpO3QucHVzaChuPyJcdTI3MTMgXHU2M0QwXHU3OTNBXHU5N0YzIjoiXHUyNzE3IFx1NjNEMFx1NzkzQVx1OTdGM1x1RkYwOFx1NjVFMFx1NkNENVx1NjRBRFx1NjUzRVx1RkYwOSIpO3ZhciBpPXIubm90aWZCdWJibGU7aWYocWEoe3RpdGxlOiJcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLGJvZHk6Ilx1OEZEOVx1NjYyRlx1NEUwMFx1Njc2MVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNVx1MzAwMiIsdHlwZToiaW5mbyIsaWNvbjoiXHUyNjZBIixkdXJhdGlvbjo1ZTMscGxheVNvdW5kOiExfSksdC5wdXNoKGk/Ilx1MjcxMyBcdTVFOTRcdTc1MjhcdTUxODVcdTZDMTRcdTZDRTEiOiJcdTIwMTMgXHU1RTk0XHU3NTI4XHU1MTg1XHU2QzE0XHU2Q0UxXHVGRjA4XHU1REYyXHU1MTczXHU5NUVEXHVGRjA5IiksV2Upe3ZhciBhPWJpKCk7aWYoYT09PSJncmFudGVkIil0cnl7V2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uKCJXYW5kIFx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIsIlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NURGMlx1NkI2M1x1NUUzOFx1NURFNVx1NEY1Q1x1MzAwMiIsIndhbmQtdGVzdCIpLHQucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNSIpfWNhdGNoe3QucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1RkYwOSIpfWVsc2UgaWYoYT09PSJkZW5pZWQiKXQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjJEMlx1N0VERFx1RkYwQ1x1OEJGN1x1NTcyOFx1N0NGQlx1N0VERlx1OEJCRVx1N0Y2RVx1NEUyRFx1NUYwMFx1NTQyRlx1RkYwOSIpO2Vsc2V7d2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHQ9ZnVuY3Rpb24ocyl7aWYoYm4oKSxzPT09ImdyYW50ZWQiKXRyeXtXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb24oIldhbmQgXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1IiwiXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1REYyXHU2QjYzXHU1RTM4XHU1REU1XHU0RjVDXHUzMDAyIiwid2FuZC10ZXN0IiksdC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2Mzg4XHU2NzQzXHVGRjA5Iil9Y2F0Y2h7dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHVGRjA5Iil9ZWxzZSB0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTY3MkFcdTYzODhcdTY3NDNcdUZGMDkiKTtycihlLHQpLGRlbGV0ZSB3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdH07dHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJufXJyKGUsdCk7cmV0dXJufWlmKHR5cGVvZiBOb3RpZmljYXRpb24+InUiKXt0LnB1c2goIlx1MjAxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTRFMERcdTY1MkZcdTYzMDFcdUZGMDkiKSxycihlLHQpO3JldHVybn12YXIgdT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbjtpZih1PT09ImdyYW50ZWQiKXt0cnl7dmFyIG89bmV3IE5vdGlmaWNhdGlvbigiV2FuZCBcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLHtib2R5OiJcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTVERjJcdTZCNjNcdTVFMzhcdTVERTVcdTRGNUNcdTMwMDIiLGljb246Ii9mYXZpY29uLmljbyIsdGFnOiJ3YW5kLXRlc3QifSk7c2V0VGltZW91dChmdW5jdGlvbigpe28uY2xvc2UoKX0sNWUzKSx0LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTUiKX1jYXRjaHt0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdUZGMENcdTUzRUZcdTgwRkRcdTk3MDBcdTg5ODEgSFRUUFNcdUZGMDkiKX1ycihlLHQpfWVsc2UgdT09PSJkZW5pZWQiPyh0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYyRDJcdTdFRERcdUZGMDkiKSxycihlLHQpKTpOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKGZ1bmN0aW9uKHMpe2JuKCkscz09PSJncmFudGVkIj90LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYzODhcdTY3NDNcdUZGMDkiKTp0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTY3MkFcdTYzODhcdTY3NDNcdUZGMDkiKSxycihlLHQpfSl9ZnVuY3Rpb24gcnIoZSx0KXtpZihlKXtlLmlubmVySFRNTD10Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gcChpKX0pLmpvaW4oIjxicj4iKTt2YXIgbj10LmV2ZXJ5KGZ1bmN0aW9uKGkpe3JldHVybiBpLmluZGV4T2YoIlx1MjcxMyIpPT09MHx8aS5pbmRleE9mKCJcdTIwMTMiKT09PTB9KTtlLnN0eWxlLmNvbG9yPW4/InZhcigtLXN1Y2Nlc3MpIjoidmFyKC0td2FybmluZykiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9fWZ1bmN0aW9uIGx0KGUpe2lmKCFlfHx0eXBlb2YgZSE9Im9iamVjdCJ8fCFyLnRlcm1pbmFsKXJldHVybiBlO3RyeXt0eXBlb2Ygci50ZXJtaW5hbC5yZW1lYXN1cmU9PSJmdW5jdGlvbiImJnIudGVybWluYWwucmVtZWFzdXJlKCl9Y2F0Y2h7fXZhciB0PXIudGVybWluYWwuY29scyxuPXIudGVybWluYWwucm93cztyZXR1cm4gdHlwZW9mIHQ9PSJudW1iZXIiJiZ0eXBlb2Ygbj09Im51bWJlciImJk51bWJlci5pc0Zpbml0ZSh0KSYmTnVtYmVyLmlzRmluaXRlKG4pJiZ0PjAmJm4+MCYmKGUuY29scz10LGUucm93cz1uKSxlfWZ1bmN0aW9uIGVkKCl7cmV0dXJuIHIudGVybWluYWwmJnIudGVybWluYWwuY29scz9Qcm9taXNlLnJlc29sdmUoKTpuZXcgUHJvbWlzZShmdW5jdGlvbihlKXt2YXIgdD0hMSxuPWZ1bmN0aW9uKCl7dHx8KHQ9ITAsZSgpKX0saT1zZXRUaW1lb3V0KG4sMmUzKTt0cnl7WW4oKX1jYXRjaHt9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5jb2xzJiYoY2xlYXJUaW1lb3V0KGkpLG4oKSl9KX0pfSl9ZnVuY3Rpb24gdGQoKXt2YXIgZT1ydCgpLHQ9JGUoKSxuPW10KGUsci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlP3IuY29uZmlnLmRlZmF1bHRNb2RlOiJkZWZhdWx0Iik7ci5wcmVmZXJyZWRDb21tYW5kPWUsci5jaGF0TW9kZT1tdChlLHIuY2hhdE1vZGUpLGVkKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6ZSxwcm92aWRlcjplLGN3ZDp0LG1vZGU6bn0pKX0pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe0EoaS5lcnJvciwiZXJyb3IiKTtyZXR1cm59cmV0dXJuIHIuc2VsZWN0ZWRJZD1pLmlkLGhlKCksci5kcmFmdHNbaS5pZF09IiIsd3QoKSxPdCgpfSkudGhlbihmdW5jdGlvbigpe1B0KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKCl7QSgiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfXZhciBLcj0hMTtmdW5jdGlvbiBnZygpe2lmKCFLcil7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGFsLWVycm9yIiksbj1ydCgpLGk9ci5zZXNzaW9uQ3JlYXRlS2luZHx8InN0cnVjdHVyZWQiLGE9ci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9PT0hMDt5aSh0KTt2YXIgdT0kZSgpLG89KGU/ZS52YWx1ZS50cmltKCk6IiIpfHx1LHM9bXQobixyLm1vZGVWYWx1ZSk7aWYoR2koe2RlZmF1bHRQcm92aWRlcjpuLGRlZmF1bHRTZXNzaW9uS2luZDppLGRlZmF1bHRNb2RlOnN9KSxpPT09InN0cnVjdHVyZWQiKXtoZyhvLHMsYSx0KTtyZXR1cm59eWcobixvLHMsYSx0KX19ZnVuY3Rpb24gaGcoZSx0LG4saSl7dmFyIGE9ci5zZXNzaW9uVG9vbD09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIjtyZXR1cm4gS3I9ITAsci5tb2RlVmFsdWU9dCxyLmNoYXRNb2RlPXQsci5zZXNzaW9uVG9vbD1hLHIucHJlZmVycmVkQ29tbWFuZD1hLEhpKCksWG4oc3QoKSksVmwodm9pZCAwLGUsdCxuKS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiBHdChlKSxobigpLF90KCksdX0pLnRoZW4oZnVuY3Rpb24oKXtQdCghMCl9KS5jYXRjaChmdW5jdGlvbih1KXtIZShpLHUmJnUubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1Nzg2RVx1OEJBNCBDbGF1ZGUgXHU1REYyXHU2QjYzXHU3ODZFXHU1Qjg5XHU4OEM1XHUzMDAyIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7S3I9ITF9KX1mdW5jdGlvbiB5ZyhlLHQsbixpLGEpe0tyPSEwLHIubW9kZVZhbHVlPW4sci5jaGF0TW9kZT1uLHIuc2Vzc2lvblRvb2w9ZSxyLnByZWZlcnJlZENvbW1hbmQ9ZSxIaSgpLGVkKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6ZSxwcm92aWRlcjplLGN3ZDp0LG1vZGU6bix3b3JrdHJlZUVuYWJsZWQ6aX0pKX0pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHUpe2lmKHUuZXJyb3Ipe0hlKGEsdS5lcnJvcik7cmV0dXJufXJldHVybiByLnNlbGVjdGVkSWQ9dS5pZCxoZSgpLEd0KHQpLHIuZHJhZnRzW3UuaWRdPSIiLHd0KCksaG4oKSxfdCgpLE90KCl9KS50aGVuKGZ1bmN0aW9uKCl7ci5zZWxlY3RlZElkP0h0KHIuc2VsZWN0ZWRJZCk6UHQoITApfSkuY2F0Y2goZnVuY3Rpb24oKXtIZShhLGU9PT0iY29kZXgiPyJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ29kZXggXHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3ODZFXHU4QkE0IGNvZGV4IFx1NURGMlx1NkI2M1x1Nzg2RVx1NUI4OVx1ODhDNVx1NUU3Nlx1NTNFRlx1NTcyOFx1N0VDOFx1N0FFRlx1NEUyRFx1NjI2N1x1ODg0Q1x1MzAwMiI6Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3ODZFXHU4QkE0IENsYXVkZSBcdTVERjJcdTZCNjNcdTc4NkVcdTVCODlcdTg4QzVcdTMwMDIiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtLcj0hMX0pfWZ1bmN0aW9uIGJnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkIik7ZSYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG5kKSxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpeyh0LmtleT09PSJFbnRlciJ8fHQua2V5PT09IiAiKSYmKHQucHJldmVudERlZmF1bHQoKSxuZCgpKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtZHJvcGRvd24iKTtpZighKCFufHxuLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpJiYhdC50YXJnZXQuY2xvc2VzdCgiLmJsYW5rLWNoYXQtY3dkLXdyYXAiKSl7bi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtYXJyb3ciKTtpJiYoaS50ZXh0Q29udGVudD0iXHUyNUJDIil9fSkpfWZ1bmN0aW9uIG5kKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtYXJyb3ciKTtpZihlKXt2YXIgbj1lLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIik7bj8oRWcoZSksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0JiYodC50ZXh0Q29udGVudD0iXHUyNUIyIikpOihlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJih0LnRleHRDb250ZW50PSJcdTI1QkMiKSl9fWZ1bmN0aW9uIEVnKGUpe3ZhciB0PWFuKCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRC4uLjwvZGl2PicsRGEoZnVuY3Rpb24obil7dmFyIGk9IiIsYT1yLndvcmtpbmdEaXJ8fHQ7aWYoaSs9JzxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0nKyhhPT09dD8iIGFjdGl2ZSI6IiIpKyciIGRhdGEtcGF0aD0iJytwKHQpKyciPjxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pdGVtLWxhYmVsIj5cdTlFRDhcdThCQTQ8L3NwYW4+JytndCh0LCJibGFuay1jaGF0LWN3ZC1pdGVtLXBhdGgiKSsiPC9kaXY+IixuLmxlbmd0aCl7dmFyIHU9e307dVt0XT0hMCxuLmZvckVhY2goZnVuY3Rpb24obyl7dVtvLnBhdGhdfHwodVtvLnBhdGhdPSEwLGkrPSc8ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pdGVtJysoYT09PW8ucGF0aD8iIGFjdGl2ZSI6IiIpKyciIGRhdGEtcGF0aD0iJytwKG8ucGF0aCkrJyI+JytndChvLnBhdGgsImJsYW5rLWNoYXQtY3dkLWl0ZW0tcGF0aCIpKyI8L2Rpdj4iKX0pfWUuaW5uZXJIVE1MPWksanQoZSksZS5xdWVyeVNlbGVjdG9yQWxsKCIuYmxhbmstY2hhdC1jd2QtaXRlbSIpLmZvckVhY2goZnVuY3Rpb24obyl7by5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24ocyl7cy5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbD1vLmRhdGFzZXQucGF0aDtyLndvcmtpbmdEaXI9bDt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtd29ya2luZy1kaXIiLGwpfWNhdGNoe312YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtcGF0aCIpO0h1KGQsbCksZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtYXJyb3ciKTtmJiYoZi50ZXh0Q29udGVudD0iXHUyNUJDIik7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKTtjJiYoYy52YWx1ZT1sKX0pfSl9KX1mdW5jdGlvbiBGZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWNlbnQtcGF0aHMtYnViYmxlcyIpO2UmJkRhKGZ1bmN0aW9uKHQpe2lmKCF0Lmxlbmd0aCl7ZS5pbm5lckhUTUw9IiI7cmV0dXJufWUuaW5uZXJIVE1MPXQubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8YnV0dG9uIGNsYXNzPSJyZWNlbnQtcGF0aC1idWJibGUiIGRhdGEtcGF0aD0iJytwKG4ucGF0aCkrJyIgdGl0bGU9IicrcChuLnBhdGgpKyciPicrZ3Qobi5wYXRoLCJyZWNlbnQtcGF0aC1idWJibGUtcGF0aCIpKyI8L2J1dHRvbj4ifSkuam9pbigiIiksanQoZSksZS5xdWVyeVNlbGVjdG9yQWxsKCIucmVjZW50LXBhdGgtYnViYmxlIikuZm9yRWFjaChmdW5jdGlvbihuKXtuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTtpJiYoaS52YWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIsci5jd2RWYWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIpfSl9KX0pfWZ1bmN0aW9uIHJkKCl7ci5zdWdnZXN0aW9uVGltZXImJmNsZWFyVGltZW91dChyLnN1Z2dlc3Rpb25UaW1lciksci5zdWdnZXN0aW9uVGltZXI9c2V0VGltZW91dCh3ZywxMjApfWZ1bmN0aW9uIHdnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZihlJiZlLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpe2lyKCk7cmV0dXJufXZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTt0JiZmZXRjaCgiL2FwaS9wYXRoLXN1Z2dlc3Rpb25zP3E9IitlbmNvZGVVUklDb21wb25lbnQodC52YWx1ZS50cmltKCkpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKENnKS5jYXRjaChpcil9ZnVuY3Rpb24gQ2coZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZC1zdWdnZXN0aW9ucyIpO2lmKCF0fHwhZS5sZW5ndGgpe2lyKCk7cmV0dXJufXQuaW5uZXJIVE1MPWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8YnV0dG9uIGNsYXNzPSJzdWdnZXN0aW9uLWl0ZW0iIGRhdGEtcGF0aD0iJytwKG4ucGF0aCkrJyI+PHN0cm9uZz4nK3Aobi5uYW1lKSsiPC9zdHJvbmc+PHNtYWxsPiIrZ3Qobi5wYXRoLCJzdWdnZXN0aW9uLWl0ZW0tcGF0aCIpKyI8L3NtYWxsPjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxqdCh0KSx0LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdWdnZXN0aW9uLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpLnZhbHVlPW4uZGF0YXNldC5wYXRofHwiIixyLmN3ZFZhbHVlPW4uZGF0YXNldC5wYXRofHwiIixpcigpfSl9KSx0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfWZ1bmN0aW9uIGlyKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZC1zdWdnZXN0aW9ucyIpO2UmJihlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuaW5uZXJIVE1MPSIiKX1mdW5jdGlvbiBCZyhlKXtpZighZS5pc0NvbXBvc2luZyl7aWYoUHMoZSkpe1lhKGUpO3JldHVybn1pZihlLmtleT09PSJFbnRlciIpe2lmKGUuc2hpZnRLZXkpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYodCl7dmFyIG49dC5zZWxlY3Rpb25TdGFydHx8MCxpPXQudmFsdWUsYT1pLnNsaWNlKDAsbikrYApgK2kuc2xpY2Uobik7dC52YWx1ZT1hLHQuc2VsZWN0aW9uU3RhcnQ9bisxLHQuc2VsZWN0aW9uRW5kPW4rMSxaZShhLCEwKSxDdCh0KX1yZXR1cm59ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB1PSEhKGUubWV0YUtleXx8ZS5jdHJsS2V5KTtrcyh1P3tpbnRlcnJ1cHQ6ITB9OnZvaWQgMCk7cmV0dXJufWlmKGUua2V5PT09IkJhY2tzcGFjZSIpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bSYmWmUobS52YWx1ZSwhMCl9LDApO3JldHVybn1pZihlLmtleT09PSJUYWIiKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKHQpe3ZhciBuPXQuc2VsZWN0aW9uU3RhcnR8fDAsaT10LnZhbHVlLGE9aS5zbGljZSgwLG4pKyIJIitpLnNsaWNlKG4pO3QudmFsdWU9YSxaZShhLCEwKX1yZXR1cm59aWYoZS5rZXk9PT0iRXNjYXBlIil7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBvPXN0KCk7dWUobyk/byYmby5zdHJ1Y3R1cmVkU3RhdGUmJm8uc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZHYSgpOnZ0KFRyKCJlc2NhcGUiKSwiZXNjYXBlIik7cmV0dXJufWlmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0iYyIpe3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxsPXMmJnMuc2VsZWN0aW9uU3RhcnQhPT1zLnNlbGVjdGlvbkVuZHx8RGkoKTtpZihsKXJldHVybjt2YXIgZD1zdCgpO2lmKHVlKGQpKXtlLnByZXZlbnREZWZhdWx0KCksZCYmZC5zdHJ1Y3R1cmVkU3RhdGUmJmQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZHYSgpO3JldHVybn1lLnByZXZlbnREZWZhdWx0KCksdnQoVHIoImN0cmxfYyIpLCJjdHJsX2MiKTtyZXR1cm59aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJkIil7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGM9ZiYmZi5zZWxlY3Rpb25TdGFydCE9PWYuc2VsZWN0aW9uRW5kfHxEaSgpO2lmKGMpcmV0dXJuO3ZhciB2PXN0KCk7aWYodWUodikpe2UucHJldmVudERlZmF1bHQoKTtyZXR1cm59ZS5wcmV2ZW50RGVmYXVsdCgpLHZ0KFRyKCJjdHJsX2QiKSwiY3RybF9kIik7cmV0dXJufWlmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0ibCIpe2UucHJldmVudERlZmF1bHQoKTt2YXIgaD1zdCgpO2lmKHVlKGgpKXJldHVybjt2dChUcigiY3RybF9sIiksImN0cmxfbCIpO3JldHVybn1pZighKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0iYSIpJiYhKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0idiIpKXtpZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09IngiKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksZz10JiZ0LnNlbGVjdGlvblN0YXJ0IT09dC5zZWxlY3Rpb25FbmQ7aWYoZylyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpLHZ0KCIYIiwiY3RybF94Iik7cmV0dXJufWUua2V5Lmxlbmd0aD09PTEmJiFlLmN0cmxLZXkmJiFlLm1ldGFLZXkmJiFlLmFsdEtleSYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZaZShtLnZhbHVlKX0sMCl9fX12YXIgRGc9MTAqMTAyNCoxMDI0O2Z1bmN0aW9uIGtnKGUpe3JldHVybiBlPDEwMjQ/ZSsiIEIiOmU8MTAyNCoxMDI0PyhlLzEwMjQpLnRvRml4ZWQoMSkrIiBLQiI6KGUvKDEwMjQqMTAyNCkpLnRvRml4ZWQoMSkrIiBNQiJ9ZnVuY3Rpb24gQWcoZSl7cmV0dXJuL15pbWFnZVwvKHBuZ3xqcGU/Z3xnaWZ8d2VicHxibXB8c3ZnXCt4bWwpLy50ZXN0KGUpfWZ1bmN0aW9uIEl1KGUpe2lmKGUpe2lmKGUuc2l6ZT5EZyl7QSgiXHU2NTg3XHU0RUY2XHU4RkM3XHU1OTI3XHVGRjA4XHU0RTBBXHU5NjUwIDEwIE1CXHVGRjA5OiAiK2UubmFtZSwiZXJyb3IiKTtyZXR1cm59dmFyIHQ9e2ZpbGU6ZSxuYW1lOmUubmFtZSxzaXplOmUuc2l6ZSxwcmV2aWV3VXJsOm51bGx9O0FnKGUudHlwZSkmJih0LnByZXZpZXdVcmw9VVJMLmNyZWF0ZU9iamVjdFVSTChlKSksci5wZW5kaW5nQXR0YWNobWVudHMucHVzaCh0KSxUdSgpfX1mdW5jdGlvbiB4ZyhlKXt2YXIgdD1yLnBlbmRpbmdBdHRhY2htZW50cy5zcGxpY2UoZSwxKTt0Lmxlbmd0aCYmdFswXS5wcmV2aWV3VXJsJiZVUkwucmV2b2tlT2JqZWN0VVJMKHRbMF0ucHJldmlld1VybCksVHUoKX1mdW5jdGlvbiBTZygpe3IucGVuZGluZ0F0dGFjaG1lbnRzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5wcmV2aWV3VXJsJiZVUkwucmV2b2tlT2JqZWN0VVJMKGUucHJldmlld1VybCl9KSxyLnBlbmRpbmdBdHRhY2htZW50cz1bXSxUdSgpfWZ1bmN0aW9uIFR1KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF0dGFjaG1lbnQtcHJldmlldyIpO2lmKGUpe3ZhciB0PXIucGVuZGluZ0F0dGFjaG1lbnRzO2lmKHQubGVuZ3RoPT09MCl7ZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtmb3IodmFyIG49IiIsaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldLHU9YS5wcmV2aWV3VXJsPyc8aW1nIHNyYz0iJytwKGEucHJldmlld1VybCkrJyIgYWx0PSIiPic6JzxzcGFuIGNsYXNzPSJhdHQtaWNvbiI+JytWKCJmaWxlIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsiPC9zcGFuPiI7bis9JzxzcGFuIGNsYXNzPSJhdHRhY2htZW50LXBpbGwiIGRhdGEtaW5kZXg9IicraSsnIj4nK3UrJzxzcGFuIGNsYXNzPSJhdHQtbmFtZSIgdGl0bGU9IicrcChhLm5hbWUpKyciPicrcChhLm5hbWUpKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImF0dC1zaXplIj4nK2tnKGEuc2l6ZSkrJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJhdHQtcmVtb3ZlIiBkYXRhLWluZGV4PSInK2krJyIgdGl0bGU9Ilx1NzlGQlx1OTY2NCI+XHhENzwvYnV0dG9uPjwvc3Bhbj4nfWUuaW5uZXJIVE1MPW4sZS5xdWVyeVNlbGVjdG9yQWxsKCIuYXR0LXJlbW92ZSIpLmZvckVhY2goZnVuY3Rpb24obyl7by5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24ocyl7cy5wcmV2ZW50RGVmYXVsdCgpLHMuc3RvcFByb3BhZ2F0aW9uKCkseGcocGFyc2VJbnQoby5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSwxMCkpfSl9KX19ZnVuY3Rpb24gSWcoZSl7aWYoIXIucGVuZGluZ0F0dGFjaG1lbnRzLmxlbmd0aClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgdD1uZXcgRm9ybURhdGE7cmV0dXJuIHIucGVuZGluZ0F0dGFjaG1lbnRzLmZvckVhY2goZnVuY3Rpb24obil7dC5hcHBlbmQoImZpbGVzIixuLmZpbGUsbi5uYW1lKX0pLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvdXBsb2FkIix7bWV0aG9kOiJQT1NUIixib2R5OnQsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4ub2s/bi5qc29uKCk6bi5qc29uKCkudGhlbihmdW5jdGlvbihpKXt0aHJvdyBuZXcgRXJyb3IoaS5lcnJvcnx8Ilx1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNSIpfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmZpbGVzfHxbXX0pfWZ1bmN0aW9uIFRnKGUpe2lmKCFlfHwhZS5sZW5ndGgpcmV0dXJuIiI7dmFyIHQ9ZS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4uc2F2ZWRQYXRofSk7cmV0dXJuYFtcdTk2NDRcdTRFRjZcdTVERjJcdTRFMEFcdTRGMjBcdUZGMENcdThCRjdcdTY3RTVcdTc3MEJcdTRFRTVcdTRFMEJcdTY1ODdcdTRFRjY6CmArdC5qb2luKGAKYCkrYF0KCmB9ZnVuY3Rpb24gaWQoZSl7aWYoIXIudGVybWluYWxJbnRlcmFjdGl2ZXx8IWV8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSlyZXR1cm4hMTt2YXIgdD1lLnZhbHVlfHwiIjtyZXR1cm4gdD8odnQodCwiaW50ZXJhY3RpdmVfdGV4dCIpLmNhdGNoKGZ1bmN0aW9uKCl7fSksZS52YWx1ZT0iIixDdChlKSxaZSgiIiwhMCksITApOiExfWZ1bmN0aW9uIExnKGUpe3ZhciB0PWUuY2xpcGJvYXJkRGF0YSYmZS5jbGlwYm9hcmREYXRhLml0ZW1zO2lmKHQmJiFyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0udHlwZS5pbmRleE9mKCJpbWFnZS8iKT09PTApe2UucHJldmVudERlZmF1bHQoKTt2YXIgaT10W25dLmdldEFzRmlsZSgpO2kmJkl1KGkpO3JldHVybn19dmFyIGE9ZS5jbGlwYm9hcmREYXRhJiZlLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dCIpO2lmKGEpe2lmKGUucHJldmVudERlZmF1bHQoKSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe3Z0KGEsInBhc3RlIikuY2F0Y2goZnVuY3Rpb24oKXt9KTtyZXR1cm59dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKHUpe3ZhciBvPXUuc2VsZWN0aW9uU3RhcnR8fDAscz11LnNlbGVjdGlvbkVuZHx8MCxsPXUudmFsdWUsZD1sLnNsaWNlKDAsbykrYStsLnNsaWNlKHMpO3UudmFsdWU9ZCxaZShkKX19fWZ1bmN0aW9uIHdoKGUpe3Z0KGUpLFplKE1nKCkrZSl9ZnVuY3Rpb24gTWcoKXtpZihyLnNlbGVjdGVkSWQpe2lmKHIuZHJhZnRzW3Iuc2VsZWN0ZWRJZF0hPT12b2lkIDApcmV0dXJuIHIuZHJhZnRzW3Iuc2VsZWN0ZWRJZF07dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWRyYWZ0LSIrci5zZWxlY3RlZElkKTtpZihlKXJldHVybiBlfWNhdGNoe319cmV0dXJuIiJ9ZnVuY3Rpb24gWmUoZSx0KXtpZihyLnNlbGVjdGVkSWQpe3IuZHJhZnRzW3Iuc2VsZWN0ZWRJZF09ZTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtZHJhZnQtIityLnNlbGVjdGVkSWQsZSl9Y2F0Y2h7fWlmKCF0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7biYmKG4udmFsdWU9ZSl9fX12YXIgTHU9ITE7ZnVuY3Rpb24gcWcoKXtpZighTHUpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQtb3B0aW1pemUtYnRuIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZihlKXt2YXIgaT0oZS52YWx1ZXx8IiIpLnRyaW0oKTtpZighaSl7dHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1OEJGN1x1NTE0OFx1OEY5M1x1NTE2NVx1ODk4MVx1NEYxOFx1NTMxNlx1NzY4NFx1NTE4NVx1NUJCOVx1MzAwMiIsImluZm8iKSxlLmZvY3VzKCk7cmV0dXJufUx1PSEwLHQmJih0LmNsYXNzTGlzdC5hZGQoImlzLWxvYWRpbmciKSx0LmRpc2FibGVkPSEwLHQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NkI2M1x1NTcyOFx1NEYxOFx1NTMxNlx1MjAyNiIpKSxuJiZuLmNsYXNzTGlzdC5hZGQoImlzLW9wdGltaXppbmciKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1idXN5IiwidHJ1ZSIpO3ZhciBhPWUucmVhZE9ubHk7ZS5yZWFkT25seT0hMDt2YXIgdT17dGV4dDppfTtyJiZyLnNlbGVjdGVkSWQmJih1LnNlc3Npb25JZD1yLnNlbGVjdGVkSWQpLGZldGNoKCIvYXBpL29wdGltaXplLXByb21wdCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkodSl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmpzb24oKS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybntvazpvLm9rLGRhdGE6c319KX0pLnRoZW4oZnVuY3Rpb24obyl7aWYoIW8ub2spdGhyb3cgbmV3IEVycm9yKG8uZGF0YSYmby5kYXRhLmVycm9yfHwiXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2XHU1OTMxXHU4RDI1XHUzMDAyIik7dmFyIHM9by5kYXRhJiZvLmRhdGEub3B0aW1pemVkfHwiIjtpZighcyl0aHJvdyBuZXcgRXJyb3IoIkNsYXVkZSBcdThGRDRcdTU2REVcdTRFM0FcdTdBN0FcdTMwMDIiKTtQZyhlLHMpfSkuY2F0Y2goZnVuY3Rpb24obyl7dHlwZW9mIEE9PSJmdW5jdGlvbiImJkEobyYmby5tZXNzYWdlfHwiXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2XHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKSx0JiYodC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1sb2FkaW5nIiksdC5jbGFzc0xpc3QuYWRkKCJpcy1zaGFrZSIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImlzLXNoYWtlIil9LDQwMCkpfSkuZmluYWxseShmdW5jdGlvbigpe0x1PSExLHQmJih0LmNsYXNzTGlzdC5yZW1vdmUoImlzLWxvYWRpbmciKSx0LmRpc2FibGVkPSExLHQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1RkYwOEFJXHVGRjA5IikpLG4mJm4uY2xhc3NMaXN0LnJlbW92ZSgiaXMtb3B0aW1pemluZyIpLGUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWJ1c3kiKSxlLnJlYWRPbmx5PWF9KX19fWZ1bmN0aW9uIFBnKGUsdCl7aWYoIWUpcmV0dXJuO3ZhciBuPUFycmF5LmZyb20odCksaT1uLmxlbmd0aDtpZihpPT09MCl7ZS52YWx1ZT0iIixaZSgiIiwhMCksQ3QoZSk7cmV0dXJufXZhciBhPU1hdGgubWluKDcwMCxNYXRoLm1heCgyMjAsaSo4KSksdT1NYXRoLm1pbihpLDYwKSxvPU1hdGguY2VpbChpL3UpLHM9YS91LGw9MDtlLnZhbHVlPSIiLEN0KGUpO2Z1bmN0aW9uIGQoKXtpZihsPU1hdGgubWluKGksbCtvKSxlLnZhbHVlPW4uc2xpY2UoMCxsKS5qb2luKCIiKSxDdChlKSxsPGkpc2V0VGltZW91dChkLHMpO2Vsc2V7WmUodCwhMCk7dHJ5e2Uuc2V0U2VsZWN0aW9uUmFuZ2UodC5sZW5ndGgsdC5sZW5ndGgpfWNhdGNoe319fWQoKX1mdW5jdGlvbiAkaShlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZih0KXt2YXIgbj1lfHxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksaT0hIShuJiZuLnZhbHVlJiZuLnZhbHVlLmxlbmd0aD4wKTt0LmNsYXNzTGlzdC50b2dnbGUoImhhcy10ZXh0IixpKX19ci5fc3RhdHVzQmFyVGltZXJJZD1udWxsLHIuX3N0YXR1c0JhclN0YXJ0VGltZT0wO3ZhciBKcj1udWxsLFhpPTA7ZnVuY3Rpb24gTXUoZSl7aWYoIWUpcmV0dXJue2FjdGl2ZTohMX07aWYoZS5hcmNoaXZlZClyZXR1cm57YWN0aXZlOiExfTt2YXIgdD0hIWUucGVybWlzc2lvbkJsb2NrZWQsbj0hISh1ZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KSxpPSF1ZShlKSYmZS5zdGF0dXM9PT0icnVubmluZyI7cmV0dXJue2FjdGl2ZTpufHxpfHx0LGluRmxpZ2h0Om4scHR5UnVubmluZzppLHBlcm1pc3Npb25CbG9ja2VkOnR9fWZ1bmN0aW9uIE9nKGUpe3ZhciB0PU1hdGgubWF4KDAsTWF0aC5mbG9vcihlLzFlMykpO2lmKHQ8NjApcmV0dXJuIHQrInMiO3ZhciBuPU1hdGguZmxvb3IodC82MCksaT10JTYwO2lmKG48NjApcmV0dXJuIG4rIm0iKyhpPyIgIitpKyJzIjoiIik7dmFyIGE9TWF0aC5mbG9vcihuLzYwKSx1PW4lNjA7cmV0dXJuIGErImgiKyh1PyIgIit1KyJtIjoiIil9ZnVuY3Rpb24gcXUoZSl7dmFyIHQ9TXUoZSksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFpbi1oZWFkZXItcm93IiksaT1uP24ucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3RhdHVzLXBpbGwiKTpudWxsLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtpZihuJiYobi5jbGFzc0xpc3QudG9nZ2xlKCJpcy1ydW5uaW5nIix0LmFjdGl2ZSksbi5jbGFzc0xpc3QudG9nZ2xlKCJpcy1wZXJtaXNzaW9uLWJsb2NrZWQiLHQucGVybWlzc2lvbkJsb2NrZWQpKSxpKXt2YXIgdT1pLnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN0YXR1cy1lbGFwc2VkIik7aWYodC5pbkZsaWdodCl7WGl8fChYaT1yLl9zdGF0dXNCYXJTdGFydFRpbWU+MD9yLl9zdGF0dXNCYXJTdGFydFRpbWU6RGF0ZS5ub3coKSk7dmFyIG89T2coRGF0ZS5ub3coKS1YaSk7dXx8KHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHUuY2xhc3NOYW1lPSJzZXNzaW9uLXN0YXR1cy1lbGFwc2VkIixpLmFwcGVuZENoaWxkKHUpKSx1LnRleHRDb250ZW50PW99ZWxzZSBYaT0wLHUmJnUucmVtb3ZlKCl9dC5hY3RpdmU/SnJ8fChKcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBzPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pO3F1KHMpfSwxZTMpKTpKciYmKGNsZWFySW50ZXJ2YWwoSnIpLEpyPW51bGwpfWZ1bmN0aW9uIFB1KGUsdCl7cXUodCk7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLXRvcC1yb3ciKSxpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIiKSxhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKCF0fHwhdWUodCkpe2kmJmkucmVtb3ZlKCksYSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJpbi1mbGlnaHQiKSxjbGVhckludGVydmFsKHIuX3N0YXR1c0JhclRpbWVySWQpLHIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbDtyZXR1cm59dmFyIHU9dC5zdHJ1Y3R1cmVkU3RhdGUmJnQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0O2lmKHUpe2lmKHIuX3N0YXR1c0JhclRpbWVySWR8fChyLl9zdGF0dXNCYXJTdGFydFRpbWU9RGF0ZS5ub3coKSksYSYmYS5jbGFzc0xpc3QuYWRkKCJpbi1mbGlnaHQiKSwhaSYmbil7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9InN0cnVjdHVyZWQtc3RhdHVzLWJhciIsby5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJzdGF0dXMtYmFyLWRvdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFyLWxhYmVsIj5cdTU2REVcdTU5MERcdTRFMkQ8L3NwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYXItdGltZXIiPjAuMHM8L3NwYW4+JyxuLmFwcGVuZENoaWxkKG8pLGk9b31lbHNlIGlmKGkmJmkuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb21wbGV0ZWQiKSl7aS5jbGFzc0xpc3QucmVtb3ZlKCJjb21wbGV0ZWQiKSxpLnN0eWxlLmFuaW1hdGlvbj0ibm9uZSIsaS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1sYWJlbCIpLnRleHRDb250ZW50PSJcdTU2REVcdTU5MERcdTRFMkQiO3ZhciBzPWkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItZG90Iik7cyYmKHMuc3R5bGUuZGlzcGxheT0iIiksci5fc3RhdHVzQmFyU3RhcnRUaW1lPURhdGUubm93KCl9ci5fc3RhdHVzQmFyVGltZXJJZHx8KHIuX3N0YXR1c0JhclRpbWVySWQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyOm5vdCguY29tcGxldGVkKSIpO2lmKCFkKXtjbGVhckludGVydmFsKHIuX3N0YXR1c0JhclRpbWVySWQpLHIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbDtyZXR1cm59dmFyIGY9KChEYXRlLm5vdygpLXIuX3N0YXR1c0JhclN0YXJ0VGltZSkvMWUzKS50b0ZpeGVkKDEpLGM9ZC5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci10aW1lciIpO2MmJihjLnRleHRDb250ZW50PWYrInMiKX0sMTAwKSl9ZWxzZSBpZihjbGVhckludGVydmFsKHIuX3N0YXR1c0JhclRpbWVySWQpLHIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbCxhJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpLGkmJiFpLmNsYXNzTGlzdC5jb250YWlucygiY29tcGxldGVkIikpe3ZhciBsPXIuX3N0YXR1c0JhclN0YXJ0VGltZT8oKERhdGUubm93KCktci5fc3RhdHVzQmFyU3RhcnRUaW1lKS8xZTMpLnRvRml4ZWQoMSk6IjAuMCI7aS5jbGFzc0xpc3QuYWRkKCJjb21wbGV0ZWQiKSxpLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWxhYmVsIikudGV4dENvbnRlbnQ9Ilx1NUI4Q1x1NjIxMCIsaS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci10aW1lciIpLnRleHRDb250ZW50PWwrInMiO3ZhciBzPWkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItZG90Iik7cyYmKHMuc3R5bGUuZGlzcGxheT0ibm9uZSIpLHIuX3N0YXR1c0JhclN0YXJ0VGltZT0wLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLnBhcmVudE5vZGUmJmkucmVtb3ZlKCl9LDNlMyl9fWZ1bmN0aW9uIHAoZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjMzk7Iil9ZnVuY3Rpb24gZ3QoZSx0LG4pe3ZhciBpPVN0cmluZyhlfHwiIik7cmV0dXJuJzxzcGFuIGNsYXNzPSInK3QrJyB0YWlsLW1hcnF1ZWUtcGF0aCIgdGl0bGU9IicrcChpKSsnIicrKG58fCIiKSsnPjxzcGFuIGNsYXNzPSJ0YWlsLW1hcnF1ZWUtcGF0aC1pbm5lciI+JytwKGkpKyI8L3NwYW4+PC9zcGFuPiJ9dmFyIEhnPS9cLihwbmd8anBlP2d8Z2lmfHdlYnB8c3ZnfGF2aWZ8Ym1wfGljb3xoZWljfGhlaWYpJC9pO2Z1bmN0aW9uIE91KGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIilyZXR1cm4hMTt2YXIgdD1lLnRyaW0oKS5zcGxpdCgvWz8jXS8pWzBdO3JldHVybiBIZy50ZXN0KHQpfWZ1bmN0aW9uIGFyKGUpe2lmKGUpe3ZhciB0PWZ1bmN0aW9uKCl7dHJ5e3ZhciBuPWUuZmlyc3RFbGVtZW50Q2hpbGQmJmUuZmlyc3RFbGVtZW50Q2hpbGQuY2xhc3NMaXN0JiZlLmZpcnN0RWxlbWVudENoaWxkLmNsYXNzTGlzdC5jb250YWlucygidGFpbC1tYXJxdWVlLXBhdGgtaW5uZXIiKT9lLmZpcnN0RWxlbWVudENoaWxkOm51bGw7aWYobil7dmFyIGk9TWF0aC5tYXgoMCxuLnNjcm9sbFdpZHRoLWUuY2xpZW50V2lkdGgpO2UuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtb3ZlcmZsb3dpbmciLGk+MSksZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10YWlsLW1hcnF1ZWUtc2hpZnQiLGkrInB4Iik7dmFyIGE9TWF0aC5tYXgoNC44LGkvMTgpO2Uuc3R5bGUuc2V0UHJvcGVydHkoIi0tdGFpbC1tYXJxdWVlLWR1cmF0aW9uIixNYXRoLm1heCg2LjgsYS8uNjgpKyJzIik7cmV0dXJufWUuc2Nyb2xsV2lkdGg+ZS5jbGllbnRXaWR0aCYmKGUuc2Nyb2xsTGVmdD1lLnNjcm9sbFdpZHRoKX1jYXRjaHt9fTt0KCksdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpfX1mdW5jdGlvbiBqdChlKXt2YXIgdD1lfHxkb2N1bWVudDshdHx8dHlwZW9mIHQucXVlcnlTZWxlY3RvckFsbCE9ImZ1bmN0aW9uInx8dC5xdWVyeVNlbGVjdG9yQWxsKCIudGFpbC1tYXJxdWVlLXBhdGgiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2FyKG4pfSl9ZnVuY3Rpb24gSHUoZSx0KXtpZihlKXt2YXIgbj1TdHJpbmcodHx8IiIpLGk9ZS5xdWVyeVNlbGVjdG9yJiZlLnF1ZXJ5U2VsZWN0b3IoIi50YWlsLW1hcnF1ZWUtcGF0aC1pbm5lciIpO2k/aS50ZXh0Q29udGVudD1uOmUudGV4dENvbnRlbnQ9bixlLnNldEF0dHJpYnV0ZSYmZS5zZXRBdHRyaWJ1dGUoInRpdGxlIixuKSxhcihlKX19ZnVuY3Rpb24gX2coZSl7aWYoZSl7dmFyIHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIGUuc2V0U2VsZWN0aW9uUmFuZ2U9PSJmdW5jdGlvbiImJmUudmFsdWUhPW51bGwpe3ZhciBuPWUudmFsdWUubGVuZ3RoO3RyeXtlLnNldFNlbGVjdGlvblJhbmdlKG4sbil9Y2F0Y2h7fX1lLnNjcm9sbFdpZHRoPmUuY2xpZW50V2lkdGgmJihlLnNjcm9sbExlZnQ9ZS5zY3JvbGxXaWR0aCl9Y2F0Y2h7fX07dCgpLHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU9PSJmdW5jdGlvbiImJnJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX19KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPW5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudHx8IiI7L1dhbmRBcHBcLy8udGVzdChlKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtYXBwIiksL1dhbmRQbGF0Zm9ybVwvaU9TLy50ZXN0KGUpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1pb3MiKSwvV2FuZFBsYXRmb3JtXC9BbmRyb2lkLy50ZXN0KGUpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1hbmRyb2lkIil9Y2F0Y2h7fXRyeXtjb25zdCB0PW5ldyBVUkwod2luZG93LmxvY2F0aW9uLmhyZWYpLnNlYXJjaFBhcmFtczt0LmdldCgiZW1iZWQiKT09PSJ0ZXJtaW5hbCImJihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpLHQuZ2V0KCJuYXRpdmVJbnB1dCIpPT09IjEiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1uYXRpdmUtaW5wdXQiKSl9Y2F0Y2h7fXRyeXt3aW5kb3cuX193YW5kTmF0aXZlQmFja0hvb2tlZD0hMH1jYXRjaHt9fSkoKX0pKCk7Cg=="),
|
|
8
|
+
scriptsJs: decode("InVzZSBzdHJpY3QiOygoKT0+e3ZhciBSdT0id2FuZC1sZWdhY3ktcHdhLWNsZWFudXAtdjEiLHlkPVsid2FuZC1zdGF0aWMtIiwid2FuZC1ydW50aW1lLSJdO2Z1bmN0aW9uICRyKGUpe2lmKCFlKXJldHVybiExO3RyeXtjb25zdCB0PW5ldyBVUkwoZS5zY3JpcHRVUkwsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQub3JpZ2luPT09bG9jYXRpb24ub3JpZ2luJiZ0LnBhdGhuYW1lPT09Ii9zdy5qcyJ9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIGJkKGUpe3JldHVybiAkcihlLmluc3RhbGxpbmcpfHwkcihlLndhaXRpbmcpfHwkcihlLmFjdGl2ZSl9ZnVuY3Rpb24gRWQoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKFJ1KT09PSJkb25lIn1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gRmQoKXt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oUnUsImRvbmUiKX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIHdkKCl7aWYoISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IpKXJldHVybiEwO3RyeXtjb25zdCB0PShhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkpLmZpbHRlcihiZCk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHQubWFwKG49Pm4udW5yZWdpc3RlcigpKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIENkKCl7aWYoISgiY2FjaGVzImluIHdpbmRvdykpcmV0dXJuITA7dHJ5e2NvbnN0IHQ9KGF3YWl0IGNhY2hlcy5rZXlzKCkpLmZpbHRlcihuPT55ZC5zb21lKGk9Pm4uc3RhcnRzV2l0aChpKSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChuPT5jYWNoZXMuZGVsZXRlKG4pKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIEJkKCl7aWYoRWQoKSlyZXR1cm47Y29uc3QgZT0ic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJiRyKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpLFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFt3ZCgpLENkKCldKTshdHx8IW58fChGZCgpLGUmJmxvY2F0aW9uLnJlbG9hZCgpKX1CZCgpO3ZhciBVZz0iJHtlc2NhcGVIdG1sKGNvbmZpZ1BhdGgpfSIsaWE9IndhbmQtY2hhdC1leHBhbmQtc3RhdGUtdjEiLFhyPVtmdW5jdGlvbigpe31dOyhmdW5jdGlvbigpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1scy1zY2hlbWEiKSxuPXQ9PW51bGw/MDpwYXJzZUludCh0LDEwKTtuPj0wfHwobj0wKTtmb3IodmFyIGk9bjtpPFhyLmxlbmd0aDtpKyspdHJ5e1hyW2ldKCl9Y2F0Y2h7fW48WHIubGVuZ3RoJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1scy1zY2hlbWEiLFN0cmluZyhYci5sZW5ndGgpKX1jYXRjaHt9fSkoKTtmdW5jdGlvbiBhYShlLHQpe3RyeXt2YXIgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTtyZXR1cm4gbj09PSJ0cnVlIj8hMDpuPT09ImZhbHNlIj8hMTp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiBTZShlLHQpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLFN0cmluZyghIXQpKX1jYXRjaHt9fXZhciByPXtzZWxlY3RlZElkOihmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PWUuc2VhcmNoUGFyYW1zLmdldCgic2Vzc2lvbiIpO2lmKHQpcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iLHQpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZSgic2Vzc2lvbiIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKSx0fWNhdGNoe310cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLHBvbGxUaW1lcjpudWxsLGNvbmZpZzpudWxsLHNlc3Npb25zOltdLHN1Z2dlc3Rpb25UaW1lcjpudWxsLHRlcm1pbmFsOm51bGwsdGVybWluYWxGaXRJblByb2dyZXNzOiExLHRlcm1pbmFsU2Vzc2lvbklkOm51bGwsdGVybWluYWxPdXRwdXQ6IiIsdGVybWluYWxPdXRwdXRNYXJrZXI6MCx0ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uczp7fSxzeW5jT3V0cHV0QnVmZmVyOm51bGwsc3luY091dHB1dERlYWRsaW5lOjAsc3luY0ZyYW1pbmdSZXNpZHVlOiExLGxhc3RDaHVua0F0OjAsdGVybWluYWxIZWFsdGhUaW1lcjpudWxsLGxhc3RUZXJtaW5hbFJlc3luY0F0OjAsdGVybWluYWxBdXRvRm9sbG93OiEwLHRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCx0ZXJtaW5hbFNjcm9sbElkbGVUaW1lcjpudWxsLHRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkOjEyLHNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbTohMSx0ZXJtaW5hbFZpZXdwb3J0RWw6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcjpudWxsLHRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFRvdWNoU3RhcnRZOjAsdGVybWluYWxDb21wb3Npbmc6ITEscmVzaXplT2JzZXJ2ZXI6bnVsbCxyZXNpemVIYW5kbGVyOm51bGwscmVzaXplVGltZXI6bnVsbCxpbnB1dFF1ZXVlOlByb21pc2UucmVzb2x2ZSgpLHBlbmRpbmdNZXNzYWdlczpbXSxtZXNzYWdlUXVldWU6W10sY3Jvc3NTZXNzaW9uUXVldWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWU/SlNPTi5wYXJzZShlKTpbXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OltdfWNhdGNoe3JldHVybltdfX0pKCksc3RydWN0dXJlZElucHV0UXVldWU6W10scXVldWVCYXJFeHBhbmRlZDohMSxxdWV1ZUJhckhvdmVySW5kZXg6bnVsbCxxdWV1ZUJhckRyYWc6bnVsbCxxdWV1ZUJhclByb21vdGluZzohMSxkcmFmdHM6e30saXNTeW5jaW5nSW5wdXRCb3g6ITEsbG9naW5QZW5kaW5nOiExLGxvZ2luQ2hlY2tlZDohMSxib290c3RyYXBwaW5nOiEwLHNlc3Npb25zRHJhd2VyT3BlbjphYSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxzaWRlYmFyUGlubmVkOmFhKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCksc2lkZWJhckNvbGxhcHNlZDphYSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpLG1vZGFsT3BlbjohMSxwcmVzZXRWYWx1ZToiIixjd2RWYWx1ZToiIixtb2RlVmFsdWU6Im1hbmFnZWQiLGNoYXRNb2RlOiJtYW5hZ2VkIixjaGF0TW9kZWxzOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIil8fCIiO3JldHVybntjbGF1ZGU6bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtY2hhdC1tb2RlbC1jbGF1ZGUiKXx8ZSxjb2RleDpsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsLWNvZGV4Iil8fCIifX1jYXRjaHtyZXR1cm57Y2xhdWRlOiIiLGNvZGV4OiIifX19KSgpLGNoYXRNb2RlbDooZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiKXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fSkoKSxjaGF0VGhpbmtpbmc6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIpfHwib2ZmIjtyZXR1cm4gZT09PSJvZmYifHxlPT09InN0YW5kYXJkInx8ZT09PSJkZWVwInx8ZT09PSJtYXgifHwvXmNvZGV4OlthLXowLTldW2EtejAtOV8tXXswLDMxfSQvLnRlc3QoZSk/ZToib2ZmIn1jYXRjaHtyZXR1cm4ib2ZmIn19KSgpLGF2YWlsYWJsZU1vZGVsczpbXSxhdmFpbGFibGVDb2RleE1vZGVsczpbXSxtb2RlbHNSZWZyZXNoaW5nOiExLHNlc3Npb25DcmVhdGVLaW5kOiJzdHJ1Y3R1cmVkIixzZXNzaW9uQ3JlYXRlV29ya3RyZWU6ITEsc2Vzc2lvblRvb2w6ImNsYXVkZSIsYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZDpudWxsLHdvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdDpudWxsLHdvcmt0cmVlTWVyZ2VMb2FkaW5nOiExLHdvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nOiExLHdvcmt0cmVlTWVyZ2VFcnJvcjoiIixwcmVmZXJyZWRDb21tYW5kOiJjbGF1ZGUiLHN0cnVjdHVyZWRSdW5uZXI6ImNsYXVkZS1jbGktcHJpbnQiLGxhc3RSZXNpemU6e2NvbHM6MCxyb3dzOjB9LGlzT25saW5lOm5hdmlnYXRvci5vbkxpbmUsd3M6bnVsbCx3c0Nvbm5lY3RlZDohMSxsYXN0V3NNZXNzYWdlQXQ6MCx3c0hlYXJ0YmVhdENoZWNrVGltZXI6bnVsbCxfdXBkYXRlQnViYmxlU2hvd246ITEsbm90aWZpY2F0aW9uSGlzdG9yeTp7fSxkZWxheWVkTm90aWZpY2F0aW9uVGltZXI6bnVsbCxub3RpZlNvdW5kOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1ub3RpZi1zb3VuZCIpO3JldHVybiBlPT09bnVsbD8hMDplPT09InRydWUifWNhdGNoe3JldHVybiEwfX0pKCksbm90aWZWb2x1bWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLW5vdGlmLXZvbHVtZSIpO3JldHVybiBlPT09bnVsbD84MDpNYXRoLm1heCgwLE1hdGgubWluKDEwMCxwYXJzZUludChlLDEwKXx8ODApKX1jYXRjaHtyZXR1cm4gODB9fSkoKSxub3RpZkJ1YmJsZTooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtbm90aWYtYnViYmxlIik7cmV0dXJuIGU9PT1udWxsPyEwOmU9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITB9fSkoKSx0b29sQ29udGVudENhY2hlOnt9LGxhc3RTZXFCeVNlc3Npb246e30sY3VycmVudFZpZXc6InRlcm1pbmFsIix0ZXJtaW5hbFNjYWxlOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC10ZXJtaW5hbC1zY2FsZSIpO3JldHVybiBlP3BhcnNlRmxvYXQoZSk6MX1jYXRjaHtyZXR1cm4gMX19KSgpLHRlcm1pbmFsQmFzZUZvbnRTaXplOjEzLGtleWJvYXJkUG9wdXBPcGVuOiExLGZpbGVQYW5lbE9wZW46KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1maWxlLXBhbmVsLW9wZW4iKT09PSJ0cnVlIn1jYXRjaHtyZXR1cm4hMX19KSgpLHRvcGJhck1vcmVPcGVuOiExLGdpdFN0YXR1czpudWxsLGdpdFN0YXR1c1Nlc3Npb25JZDpudWxsLGdpdFN0YXR1c0xvYWRpbmc6ITEsZ2l0U3RhdHVzSW5mbGlnaHQ6bnVsbCxnaXRTdGF0dXNMYXN0RmV0Y2hBdDowLHF1aWNrQ29tbWl0T3BlbjohMSxxdWlja0NvbW1pdFN1Ym1pdHRpbmc6ITEscXVpY2tDb21taXRHZW5lcmF0aW5nOiExLHF1aWNrQ29tbWl0RXJyb3I6IiIscXVpY2tDb21taXRGb3JtOntjdXN0b21NZXNzYWdlOiIiLHRhZzoiIix0YWdFZGl0ZWQ6ITF9LHF1aWNrQ29tbWl0UHVzaGluZzohMSxxdWlja0NvbW1pdFB1c2hFcnJvcjoiIixxdWlja0NvbW1pdFJlc3VsdDpudWxsLHF1aWNrQ29tbWl0RHJhZ0FjdGlvbjoiY29tbWl0IixxdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudDohMSxjaGF0U3RpY2tUb0JvdHRvbTohMCxjaGF0QXV0b0ZvbGRFbmFibGVkOiExLGNoYXRBdXRvRm9sZFNuYXBzaG90Om51bGwsY2hhdFVucmVhZENvdW50OjAsY2hhdFVucmVhZFN0YXJ0SW5kZXg6LTEsY2hhdFNjcm9sbFRocmVzaG9sZDoxNjAsY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsOiExLGNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbDowLGNoYXRTY3JvbGxFbGVtZW50Om51bGwsY2hhdFNjcm9sbEhhbmRsZXI6bnVsbCxjaGF0U2Nyb2xsV2hlZWxIYW5kbGVyOm51bGwsY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyOm51bGwsY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXI6bnVsbCxjaGF0VG91Y2hTdGFydFk6MCxjaGF0SW5pdGlhbFJlbmRlckRvbmU6ITEsbGFzdEZvcmVncm91bmRTeW5jQXQ6MCxmb3JlZ3JvdW5kU3luY1RpbWVyOm51bGwsd3NSZWNvbm5lY3RBdHRlbXB0czowLHdzUmVjb25uZWN0VGltZXI6bnVsbCxjdXJyZW50TWVzc2FnZXM6W10sbGFzdFJlbmRlcmVkSGFzaDowLGxhc3RSZW5kZXJlZE1zZ0NvdW50OjAsbGFzdFJlbmRlcmVkRW1wdHk6bnVsbCxyZW5kZXJQZW5kaW5nOiExLGNoYXRQYWdlU2l6ZToyMCxjaGF0UmVuZGVyZWRDb3VudDoyMCxjdXJyZW50VGFzazpudWxsLHRlcm1pbmFsSW50ZXJhY3RpdmU6ITEsbWluaUtleWJvYXJkVmlzaWJsZTohMSxtb2RpZmllcnM6e2N0cmw6ITEsYWx0OiExLHNoaWZ0OiExfSxqb3lzdGlja1BvczooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtYmFsbC1wb3MiKTtpZighZSlyZXR1cm4gbnVsbDt2YXIgdD1KU09OLnBhcnNlKGUpO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/dDpudWxsfWNhdGNoe3JldHVybiBudWxsfX0pKCksam95c3RpY2tQaW5uZWRPcGVuOiExLGpveXN0aWNrUm9vdEVsOm51bGwsam95c3RpY2tQYW5lbEVsOm51bGwsam95c3RpY2tCYWNrZHJvcEVsOm51bGwsam95c3RpY2tCYWxsRWw6bnVsbCxqb3lzdGlja1BvaW50ZXJJZDpudWxsLGpveXN0aWNrR2VzdHVyZTpudWxsLGpveXN0aWNrUHJlc3NTdGFydDpudWxsLGpveXN0aWNrTG9uZ1ByZXNzVGltZXI6bnVsbCxqb3lzdGlja01vdmVIYW5kbGVyOm51bGwsam95c3RpY2tVcEhhbmRsZXI6bnVsbCxqb3lzdGlja1Jlc2l6ZUhhbmRsZXI6bnVsbCxmaWxlU2VhcmNoUXVlcnk6IiIsZmlsZUV4cGxvcmVyTG9hZGluZzohMSxhbGxGaWxlczpbXSxmaWxlRXhwbG9yZXJDd2Q6IiIsZmlsZUV4cGxvcmVyVHJ1bmNhdGVkOiExLGZpbGVFeHBsb3JlclRvdGFsOjAsY2xhdWRlSGlzdG9yeTpbXSxjbGF1ZGVIaXN0b3J5TG9hZGVkOiExLGNsYXVkZUhpc3RvcnlFeHBhbmRlZDohMSxjbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzOnt9LGFyY2hpdmVkRXhwYW5kZWQ6ITEsc2Vzc2lvbnNNYW5hZ2VNb2RlOiExLHNlbGVjdGVkU2Vzc2lvbklkczp7fSxzZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM6e30sY29kZXhIaXN0b3J5OltdLGNvZGV4SGlzdG9yeUxvYWRlZDohMSxjb2RleEhpc3RvcnlFeHBhbmRlZERpcnM6e30sc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHM6e30sYXNrVXNlclNlbGVjdGlvbnM6e30scXVldWVFcG9jaDowLHBlbmRpbmdBdHRhY2htZW50czpbXSx3b3JraW5nRGlyOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIpO3JldHVybiBlfHwiIn1jYXRjaHtyZXR1cm4iIn19KSgpfSx1YT0iXHU0RTJEXHU2NTg3Iixacj17XHU0RTJEXHU2NTg3Onsic3ViYWdlbnQudGFnIjoiXHU1QjUwXHU0RUUzXHU3NDA2Iiwic3ViYWdlbnQuaGFuZG9mZiI6IntwYXJlbnR9IFx1OEJBOSB7c3VifSBcdTVFMkVcdTVGRDkiLCJzdWJhZ2VudC5oYW5kb2ZmLndpdGhfZGVzYyI6IntwYXJlbnR9IFx1OEJBOSB7c3VifSBcdTVFMkVcdTVGRDlcdUZGMUEiLCJzdWJhZ2VudC5jb250aW51ZWQiOiJcdTdFRTdcdTdFRURcdThGOTNcdTUxRkEiLCJzdWJhZ2VudC50YXNrLmRvbmUiOiJcdTRFRkJcdTUyQTFcdTVCOENcdTYyMTAiLCJzdWJhZ2VudC50YXNrLmZhaWxlZCI6Ilx1NEVGQlx1NTJBMVx1NTkzMVx1OEQyNSIsInN1YmFnZW50LnJ1bm5pbmciOiJcdThGRDBcdTg4NENcdTRFMkQiLCJzdWJhZ2VudC5ub19vdXRwdXQiOiJcdUZGMDhcdTY1RTBcdThGOTNcdTUxRkFcdUZGMDkiLCJzdWJhZ2VudC5oZWxwZXJfZmFsbGJhY2tfcHJlZml4IjoiXHU1MzRGXHU0RjVDXHU3MzJCXHhCNyIsInN1YmFnZW50LnRpdGxlX2FyaWEiOiJcdTcwQjlcdTUxRkJcdTVDNTVcdTVGMDAgLyBcdTY1MzZcdThENzdcdTVCNTBcdTRFRTNcdTc0MDZcdThGOTNcdTUxRkEiLCJzdWJhZ2VudC50YWdfdGl0bGUiOiJcdTVCNTBcdTRFRTNcdTc0MDYgLyBzdWJhZ2VudCIsInVpLmV4cGFuZCI6Ilx1NUM1NVx1NUYwMCIsInVpLmNvbGxhcHNlIjoiXHU2NTM2XHU4RDc3IiwidWkuZXhwYW5kX3BhbmVsX2FyaWEiOiJcdTVDNTVcdTVGMDBcdTVCNTBcdTRFRTNcdTc0MDZcdThGOTNcdTUxRkEiLCJ1aS5jb2xsYXBzZV9wYW5lbF9hcmlhIjoiXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIiwiaGlzdG9yeS5leHBhbmQiOiJcdTVDNTVcdTVGMDBcdTUzODZcdTUzRjJcdTVCRjlcdThCREQiLCJoaXN0b3J5LmNvbGxhcHNlIjoiXHU2NTM2XHU4RDc3XHU1Mzg2XHU1M0YyXHU1QkY5XHU4QkREIiwiaGlzdG9yeS5yb3VuZHMiOiJ7bn0gXHU4RjZFXHU1QkY5XHU4QkREIiwiaGlzdG9yeS50b29scyI6IntufSBcdTZCMjFcdTVERTVcdTUxNzdcdThDMDNcdTc1MjgiLCJoaXN0b3J5LmFnZW50cyI6IntufSBcdTRFMkFcdTVCNTBcdTRFRTNcdTc0MDYiLCJoaXN0b3J5LmVycm9ycyI6IntufSBcdTRFMkFcdTU5MzFcdThEMjUiLCJzdG9wLmNvbmZpcm0udGl0bGUiOiJcdTUwNUNcdTZCNjJcdTRFRkJcdTUyQTEiLCJzdG9wLmNvbmZpcm0ubWVzc2FnZSI6Ilx1Nzg2RVx1NUI5QVx1ODk4MVx1NTA1Q1x1NkI2Mlx1NUY1M1x1NTI0RFx1NkI2M1x1NTcyOFx1OEZEMFx1ODg0Q1x1NzY4NFx1NEVGQlx1NTJBMVx1NTQxN1x1RkYxRiIsInN0b3AuY29uZmlybS5vayI6Ilx1NTA1Q1x1NkI2MiIsInN0b3AuY29uZmlybS5jYW5jZWwiOiJcdTUzRDZcdTZEODgifSxFbmdsaXNoOnsic3ViYWdlbnQudGFnIjoiU3ViYWdlbnQiLCJzdWJhZ2VudC5oYW5kb2ZmIjoie3BhcmVudH0gYXNrZWQge3N1Yn0gZm9yIGhlbHAiLCJzdWJhZ2VudC5oYW5kb2ZmLndpdGhfZGVzYyI6IntwYXJlbnR9IGFza2VkIHtzdWJ9IGZvciBoZWxwIHdpdGg6ICIsInN1YmFnZW50LmNvbnRpbnVlZCI6ImNvbnRpbnVlZCIsInN1YmFnZW50LnRhc2suZG9uZSI6IlRhc2sgY29tcGxldGUiLCJzdWJhZ2VudC50YXNrLmZhaWxlZCI6IlRhc2sgZmFpbGVkIiwic3ViYWdlbnQucnVubmluZyI6IlJ1bm5pbmciLCJzdWJhZ2VudC5ub19vdXRwdXQiOiIobm8gb3V0cHV0KSIsInN1YmFnZW50LmhlbHBlcl9mYWxsYmFja19wcmVmaXgiOiJIZWxwZXJceEI3Iiwic3ViYWdlbnQudGl0bGVfYXJpYSI6IkNsaWNrIHRvIGV4cGFuZCAvIGNvbGxhcHNlIHN1YmFnZW50IG91dHB1dCIsInN1YmFnZW50LnRhZ190aXRsZSI6IlN1YmFnZW50IiwidWkuZXhwYW5kIjoiRXhwYW5kIiwidWkuY29sbGFwc2UiOiJDb2xsYXBzZSIsInVpLmV4cGFuZF9wYW5lbF9hcmlhIjoiRXhwYW5kIHN1YmFnZW50IG91dHB1dCIsInVpLmNvbGxhcHNlX3BhbmVsX2FyaWEiOiJDb2xsYXBzZSBzdWJhZ2VudCBvdXRwdXQiLCJoaXN0b3J5LmV4cGFuZCI6IlNob3cgZWFybGllciBjb252ZXJzYXRpb24iLCJoaXN0b3J5LmNvbGxhcHNlIjoiSGlkZSBlYXJsaWVyIGNvbnZlcnNhdGlvbiIsImhpc3Rvcnkucm91bmRzIjoie259IHJvdW5kcyIsImhpc3RvcnkudG9vbHMiOiJ7bn0gdG9vbCBjYWxscyIsImhpc3RvcnkuYWdlbnRzIjoie259IHN1YmFnZW50cyIsImhpc3RvcnkuZXJyb3JzIjoie259IGZhaWxlZCIsInN0b3AuY29uZmlybS50aXRsZSI6IlN0b3AgdGFzayIsInN0b3AuY29uZmlybS5tZXNzYWdlIjoiU3RvcCB0aGUgdGFzayB0aGF0J3MgY3VycmVudGx5IHJ1bm5pbmc/Iiwic3RvcC5jb25maXJtLm9rIjoiU3RvcCIsInN0b3AuY29uZmlybS5jYW5jZWwiOiJDYW5jZWwifX07ZnVuY3Rpb24gV3UoKXt2YXIgZT1yLmNvbmZpZyYmdHlwZW9mIHIuY29uZmlnLmxhbmd1YWdlPT0ic3RyaW5nIj9yLmNvbmZpZy5sYW5ndWFnZS50cmltKCk6IiI7aWYoIWUpcmV0dXJuIHVhO2lmKFpyW2VdKXJldHVybiBlO3ZhciB0PWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD09PSJlbmdsaXNoInx8dD09PSJlbiJ8fHQuaW5kZXhPZigiZW5nbGlzaCIpPT09MHx8dC5pbmRleE9mKCJcdTgyRjEiKT09PTA/IkVuZ2xpc2giOnQ9PT0iXHU0RTJEXHU2NTg3Inx8dD09PSJ6aCJ8fHQuaW5kZXhPZigiemgiKT09PTB8fHQuaW5kZXhPZigiXHU0RTJEIik9PT0wfHx0LmluZGV4T2YoImNoaW5lc2UiKT09PTA/Ilx1NEUyRFx1NjU4NyI6IkVuZ2xpc2gifWZ1bmN0aW9uIEVlKGUsdCl7dmFyIG49V3UoKSxpPVpyW25dfHxaclt1YV0sYT1pJiZlIGluIGk/aVtlXTpudWxsO2lmKGE9PW51bGwpe3ZhciB1PVpyW3VhXTthPXUmJmUgaW4gdT91W2VdOmV9aWYodCYmdHlwZW9mIGE9PSJzdHJpbmciKWZvcih2YXIgbyBpbiB0KU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LG8pJiYoYT1hLnNwbGl0KCJ7IitvKyJ9Iikuam9pbih0W29dKSk7cmV0dXJuIGF9dmFyIERkPXtzaGllbGQ6JzxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz4nLHNoaWVsZENoZWNrOic8cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ii8+PHBvbHlsaW5lIHBvaW50cz0iOSAxMiAxMSAxNCAxNSAxMCIvPicsbG9jazonPHJlY3QgeD0iNSIgeT0iMTAiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxMSIgcng9IjIiLz48cGF0aCBkPSJNOCAxMFY3YTQgNCAwIDAgMSA4IDB2MyIvPjxwYXRoIGQ9Ik0xMiAxNHYzIi8+JyxjZXJ0aWZpY2F0ZTonPHBhdGggZD0iTTYgM2gxMnYxNEg2eiIvPjxwYXRoIGQ9Ik05IDdoNiIvPjxwYXRoIGQ9Ik05IDExaDQiLz48cGF0aCBkPSJtMTAgMTctMSA0IDMtMSAzIDEtMS00Ii8+JyxjcHU6JzxyZWN0IHg9IjciIHk9IjciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiLz48cGF0aCBkPSJNOSAxdjMiLz48cGF0aCBkPSJNMTUgMXYzIi8+PHBhdGggZD0iTTkgMjB2MyIvPjxwYXRoIGQ9Ik0xNSAyMHYzIi8+PHBhdGggZD0iTTIwIDloMyIvPjxwYXRoIGQ9Ik0yMCAxNWgzIi8+PHBhdGggZD0iTTEgOWgzIi8+PHBhdGggZD0iTTEgMTVoMyIvPjxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjQiIGhlaWdodD0iNCIgcng9IjEiLz4nLGJyYWluOic8cGF0aCBkPSJNOS41IDQuNWEzIDMgMCAwIDAtNC43IDMuMSAzLjMgMy4zIDAgMCAwIC4zIDYuMUEzIDMgMCAwIDAgOCAxOWgxLjVWNC41eiIvPjxwYXRoIGQ9Ik0xNC41IDQuNWEzIDMgMCAwIDEgNC43IDMuMSAzLjMgMy4zIDAgMCAxLS4zIDYuMUEzIDMgMCAwIDEgMTYgMTloLTEuNVY0LjV6Ii8+PHBhdGggZD0iTTkuNSA4SDcuOCIvPjxwYXRoIGQ9Ik0xNC41IDhoMS43Ii8+PHBhdGggZD0iTTkuNSAxM0g3LjYiLz48cGF0aCBkPSJNMTQuNSAxM2gxLjkiLz4nLGtleWJvYXJkOic8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSIxMCIgeDI9IjYiIHkyPSIxMCIvPjxsaW5lIHgxPSIxMCIgeTE9IjEwIiB4Mj0iMTAiIHkyPSIxMCIvPjxsaW5lIHgxPSIxNCIgeTE9IjEwIiB4Mj0iMTQiIHkyPSIxMCIvPjxsaW5lIHgxPSIxOCIgeTE9IjEwIiB4Mj0iMTgiIHkyPSIxMCIvPjxsaW5lIHgxPSI2IiB5MT0iMTQiIHgyPSI2IiB5Mj0iMTQiLz48bGluZSB4MT0iMTgiIHkxPSIxNCIgeDI9IjE4IiB5Mj0iMTQiLz48bGluZSB4MT0iOSIgeTE9IjE0IiB4Mj0iMTUiIHkyPSIxNCIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgNyA5IDEyIDQgMTciLz48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjIwIiB5Mj0iMTciLz4nLGNoYXQ6JzxwYXRoIGQ9Ik0yMSAxMmE4IDggMCAwIDEtMTIuOSA2LjNMMyAyMGwxLjctNS4xQTggOCAwIDEgMSAyMSAxMnoiLz4nLGZvbGRlcjonPHBhdGggZD0iTTMgN2EyIDIgMCAwIDEgMi0yaDRsMiAyaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIvPicsdHJhc2g6Jzxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDEzYTIgMiAwIDAgMS0yIDJIOGEyIDIgMCAwIDEtMi0yTDUgNiIvPjxwYXRoIGQ9Ik0xMCAxMXY2Ii8+PHBhdGggZD0iTTE0IDExdjYiLz48cGF0aCBkPSJNOSA2VjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MiIvPicsY2hldnJvbkRvd246Jzxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+JyxiZWxsOic8cGF0aCBkPSJNMTggMTZ2LTVhNiA2IDAgMSAwLTEyIDB2NWwtMiAyaDE2eiIvPjxwYXRoIGQ9Ik0xMCAyMWEyIDIgMCAwIDAgNCAwIi8+JyxtdXNpYzonPHBhdGggZD0iTTkgMThWNWwxMi0ydjEzIi8+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxNiIgcj0iMyIvPicsdmlicmF0ZTonPHJlY3QgeD0iOSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iMTYiIHJ4PSIxIi8+PHBhdGggZD0iTTUgOHY4Ii8+PHBhdGggZD0iTTMgMTB2NCIvPjxwYXRoIGQ9Ik0xOSA4djgiLz48cGF0aCBkPSJNMjEgMTB2NCIvPicsZ2xvYmU6JzxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48bGluZSB4MT0iMyIgeTE9IjEyIiB4Mj0iMjEiIHkyPSIxMiIvPjxwYXRoIGQ9Ik0xMiAzYTE0IDE0IDAgMCAxIDAgMTgiLz48cGF0aCBkPSJNMTIgM2ExNCAxNCAwIDAgMCAwIDE4Ii8+JyxzbWFydHBob25lOic8cmVjdCB4PSI2IiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHJ4PSIyLjUiLz48bGluZSB4MT0iMTEiIHkxPSIxOCIgeDI9IjEzIiB5Mj0iMTgiLz4nLGRlc2t0b3A6JzxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9IjIiLz48bGluZSB4MT0iOCIgeTE9IjIwIiB4Mj0iMTYiIHkyPSIyMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIiIHkyPSIyMCIvPicsbGluazonPHBhdGggZD0iTTEwIDE0YTQuNSA0LjUgMCAwIDAgNi4zNiAwbDMtM2E0LjUgNC41IDAgMSAwLTYuMzYtNi4zNmwtMS40MiAxLjQxIi8+PHBhdGggZD0iTTE0IDEwYTQuNSA0LjUgMCAwIDAtNi4zNiAwbC0zIDNhNC41IDQuNSAwIDEgMCA2LjM2IDYuMzZsMS40Mi0xLjQxIi8+JyxwYWxldHRlOic8Y2lyY2xlIGN4PSIxMy41IiBjeT0iNi41IiByPSIxIi8+PGNpcmNsZSBjeD0iMTcuNSIgY3k9IjEwLjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI4LjUiIGN5PSI3LjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIxIi8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDAgMTggMS41IDEuNSAwIDAgMCAxLjEtMi41IDEuNSAxLjUgMCAwIDEgMS4xLTIuNWgyLjNBNC41IDQuNSAwIDAgMCAyMSAxMS41QzIxIDYuOCAxNi45NyAzIDEyIDN6Ii8+JyxwbGF5Oic8cG9seWdvbiBwb2ludHM9IjYgNCAyMCAxMiA2IDIwIDYgNCIvPicsd3JlbmNoOic8cGF0aCBkPSJNMTQuNyA2LjNhNCA0IDAgMSAxIDQgNGwtOSA5LTMuNSAxIDEtMy41IDcuNS03LjV6Ii8+JyxwYXc6JzxjaXJjbGUgY3g9IjcuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSI2LjgiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTYuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxMy4zIiByPSIxLjgiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PHBhdGggZD0iTTcuMiAxNi4zYy41LTIuOSAyLjMtNC44IDQuOC00LjhzNC4zIDEuOSA0LjggNC44Yy4zIDEuOC0uOSAzLjItMi42IDIuNi0uOC0uMy0xLjQtLjYtMi4yLS42cy0xLjQuMy0yLjIuNmMtMS43LjYtMi45LS44LTIuNi0yLjZ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMiAyLjEyIDAgMCAxIDMgM0w3IDE5bC00IDEgMS00eiIvPicsc2lnbmFsOic8cGF0aCBkPSJNMiAxMmExNSAxNSAwIDAgMSAyMCAwIi8+PHBhdGggZD0iTTUgMTZhMTAgMTAgMCAwIDEgMTQgMCIvPjxwYXRoIGQ9Ik05IDIwYTQgNCAwIDAgMSA2IDAiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjIwIiByPSIwLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPicsZmlsZTonPHBhdGggZD0iTTE0IDNINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5eiIvPjxwb2x5bGluZSBwb2ludHM9IjE0IDMgMTQgOSAyMCA5Ii8+JyxzaWdtYTonPHBvbHlsaW5lIHBvaW50cz0iMTggNCA2IDQgMTMgMTIgNiAyMCAxOCAyMCIvPicseDonPHBhdGggZD0iTTE4IDYgNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz4nLHBsdXM6JzxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz4nLG1pYzonPHJlY3QgeD0iOSIgeT0iMyIgd2lkdGg9IjYiIGhlaWdodD0iMTEiIHJ4PSIzIi8+PHBhdGggZD0iTTUgMTFhNyA3IDAgMCAwIDE0IDAiLz48bGluZSB4MT0iMTIiIHkxPSIxOCIgeDI9IjEyIiB5Mj0iMjEiLz48bGluZSB4MT0iOSIgeTE9IjIxIiB4Mj0iMTUiIHkyPSIyMSIvPicscGFwZXJjbGlwOic8cGF0aCBkPSJNMjEuNDQgMTEuMDUgMTIuMjUgMjAuMjRhNiA2IDAgMCAxLTguNDktOC40OWw4Ljg0LTguODRhNCA0IDAgMSAxIDUuNjYgNS42Nkw5LjQxIDE3LjQxYTIgMiAwIDEgMS0yLjgzLTIuODNsOC44NC04LjgzIi8+J307ZnVuY3Rpb24gVihlLHQpe3ZhciBuPURkW2VdO2lmKCFuKXJldHVybiIiO3Q9dHx8e307dmFyIGk9dC5zaXplfHwxNCxhPXQuc3Ryb2tlV2lkdGh8fDEuOCx1PXQuY2xzPycgY2xhc3M9IicrdC5jbHMrJyInOiIiLG89dC5maWxsfHwibm9uZSI7cmV0dXJuIjxzdmciK3UrJyB3aWR0aD0iJytpKyciIGhlaWdodD0iJytpKyciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iJytvKyciIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IicrYSsnIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK24rIjwvc3ZnPiJ9ZnVuY3Rpb24gcm4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighZSlyZXR1cm4gci5jaGF0U2Nyb2xsRWxlbWVudD1udWxsLG51bGw7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO3JldHVybiB0PyhyLmNoYXRTY3JvbGxFbGVtZW50PXQsdCk6KHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxudWxsKX1mdW5jdGlvbiBvYShlKXt2YXIgdD1lfHxybigpO3JldHVybiB0P01hdGguYWJzKHQuc2Nyb2xsVG9wKTxyLmNoYXRTY3JvbGxUaHJlc2hvbGQ6ITB9ZnVuY3Rpb24gS2coZSl7ci5jaGF0U3RpY2tUb0JvdHRvbT0hIWUsci5jaGF0U3RpY2tUb0JvdHRvbSYmQ24oe3JlbW92ZURpdmlkZXI6ITB9KSxHZSgpfWZ1bmN0aW9uIENuKGUpe2U9ZXx8e307dmFyIHQ9ci5jaGF0VW5yZWFkQ291bnQ+MHx8ci5jaGF0VW5yZWFkU3RhcnRJbmRleD49MDtpZihyLmNoYXRVbnJlYWRDb3VudD0wLHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9LTEsZS5yZW1vdmVEaXZpZGVyIT09ITEpe3ZhciBuPXJuKCk7aWYobil7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2kmJmkucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpfX10JiZHZSgpfWZ1bmN0aW9uIHNhKGUpe2lmKGV8fChlPXJuKCkpLCEhZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2lmKHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg8MHx8ci5jaGF0VW5yZWFkQ291bnQ8PTApe3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpO3JldHVybn1mb3IodmFyIG49ci5jaGF0VW5yZWFkU3RhcnRJbmRleCxpPWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZSIpLGE9bnVsbCx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBvPWlbdV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKG8hPT1udWxsKXt2YXIgcz1wYXJzZUludChvLDEwKTtpZighaXNOYU4ocykmJnM8bil7YT1pW3VdO2JyZWFrfX19dmFyIGw9ci5jaGF0VW5yZWFkQ291bnQrIiBcdTY3NjFcdTY1QjBcdTZEODhcdTYwNkYiO3R8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LXVucmVhZC1kaXZpZGVyIix0LnNldEF0dHJpYnV0ZSgicm9sZSIsInNlcGFyYXRvciIpLHQuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGFiZWwiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+JyksdC5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlci1sYWJlbCIpLnRleHRDb250ZW50PWwsYT8odC5uZXh0U2libGluZyE9PWF8fHQucGFyZW50Tm9kZSE9PWUpJiZlLmluc2VydEJlZm9yZSh0LGEpOih0LnBhcmVudE5vZGUhPT1lfHx0Lm5leHRTaWJsaW5nIT09bnVsbCkmJmUuYXBwZW5kQ2hpbGQodCl9fWZ1bmN0aW9uIEdlKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtdW5yZWFkLWJ1YmJsZSIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PXIuc2VsZWN0ZWRJZH0pLG49IW9hKCksaT0hIXQmJnIuY3VycmVudFZpZXc9PT0iY2hhdCImJm47ZS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIixpKSxlLmNsYXNzTGlzdC50b2dnbGUoImhhcy11bnJlYWQiLHIuY2hhdFVucmVhZENvdW50PjApO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudCIpO2EmJihyLmNoYXRVbnJlYWRDb3VudD4wPyhhLnRleHRDb250ZW50PXIuY2hhdFVucmVhZENvdW50Pjk5PyI5OSsiOlN0cmluZyhyLmNoYXRVbnJlYWRDb3VudCksYS5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpOihhLnRleHRDb250ZW50PSIiLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKSk7dmFyIHU9ci5jaGF0VW5yZWFkQ291bnQ+MD9yLmNoYXRVbnJlYWRDb3VudCsiIFx1Njc2MVx1NjVCMFx1NkQ4OFx1NjA2Rlx1RkYwQ1x1NzBCOVx1NTFGQlx1NjdFNVx1NzcwQiI6Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiI7ZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHUpLGUuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdSk7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7byYmby5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtanVtcC1idG4iLGkpfX1mdW5jdGlvbiBlaSgpe2xhKCl9ZnVuY3Rpb24gbGEoZSl7dmFyIHQ9ZXx8cm4oKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXBpbi1zcGFjZXIiKTtuJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX19ZnVuY3Rpb24genUoZSl7dmFyIHQ9cm4oKTtpZighKCF0fHwhdC5pc0Nvbm5lY3RlZCkpe2VpKCksbGEodCksci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITA7dmFyIG49ZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksR2UoKX07aWYoZSYmdHlwZW9mIHQuc2Nyb2xsVG89PSJmdW5jdGlvbiIpe3Quc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOiJzbW9vdGgifSksc2V0VGltZW91dChuLDI2MCk7cmV0dXJufXQuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfX1mdW5jdGlvbiBWdSgpe3ZhciBlPXJuKCk7ZWkoKSxlJiZsYShlKSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksZSYmZS5pc0Nvbm5lY3RlZCYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPURhdGUubm93KCkrMTgwLGUuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksR2UoKX1mdW5jdGlvbiBscigpe3ZhciBlPXJuKCk7aWYoIWV8fCFlLmlzQ29ubmVjdGVkKXJldHVybjtpZihyLmNoYXRTY3JvbGxFbGVtZW50PT09ZSYmci5jaGF0U2Nyb2xsSGFuZGxlcil7R2UoKTtyZXR1cm59ci5jaGF0U2Nyb2xsRWxlbWVudCYmKHIuY2hhdFNjcm9sbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyKSxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyKSksci5jaGF0U2Nyb2xsRWxlbWVudD1lO2Z1bmN0aW9uIHQoKXtlaSgpLHIuY2hhdFN0aWNrVG9Cb3R0b209ITEsZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSYmVmUoITApLEdlKCl9ci5jaGF0U2Nyb2xsSGFuZGxlcj1mdW5jdGlvbigpe2lmKGUuaXNDb25uZWN0ZWQpe2lmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsfHxEYXRlLm5vdygpPHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsKXtHZSgpO3JldHVybn12YXIgbj1vYShlKTtpZihuKWVpKCksci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxDbih7cmVtb3ZlRGl2aWRlcjohMH0pO2Vsc2V7dCgpO3JldHVybn1HZSgpfX0sci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyPWZ1bmN0aW9uKG4pe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsfHxuLmRlbHRhWTwwJiZ0KCl9LHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyPWZ1bmN0aW9uKG4peyFuLnRvdWNoZXN8fG4udG91Y2hlcy5sZW5ndGg9PT0wfHwoci5jaGF0VG91Y2hTdGFydFk9bi50b3VjaGVzWzBdLmNsaWVudFkpfSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyPWZ1bmN0aW9uKG4pe2lmKCFyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbCYmISghbi50b3VjaGVzfHxuLnRvdWNoZXMubGVuZ3RoPT09MCkpe3ZhciBpPW4udG91Y2hlc1swXS5jbGllbnRZLXIuY2hhdFRvdWNoU3RhcnRZO2k+NCYmdCgpfX0sZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIuY2hhdFNjcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXIse3Bhc3NpdmU6ITB9KSxHZSgpfWZ1bmN0aW9uIFV1KCl7aWYoci5jaGF0UmVuZGVyZWRDb3VudDxyLmN1cnJlbnRNZXNzYWdlcy5sZW5ndGgpe3IuY2hhdFJlbmRlcmVkQ291bnQrPXIuY2hhdFBhZ2VTaXplLFZlKCEwKTtyZXR1cm59dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7ZSYmdHlwZW9mIGUubWVzc2FnZU9mZnNldD09Im51bWJlciImJmUubWVzc2FnZU9mZnNldD4wJiZObSgpfXZhciBkcj1udWxsO2Z1bmN0aW9uIGtkKCl7ZHImJihkci5kaXNjb25uZWN0KCksZHI9bnVsbCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtbG9hZC1tb3JlLXNlbnRpbmVsIik7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1sb2FkLW1vcmUtYnRuIik7dCYmKHQub25jbGljaz1mdW5jdGlvbigpe1V1KCl9KTt2YXIgbj0hISh3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcyksaT13aW5kb3cuaW5uZXJXaWR0aDw9NzY4O258fGl8fHdpbmRvdy5fX3dhbmRJbWVOYXRpdmV8fHdpbmRvdy5fX3dhbmRJb3NOYXRpdmV8fHR5cGVvZiBJbnRlcnNlY3Rpb25PYnNlcnZlcj4idSJ8fChkcj1uZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSl7Zm9yKHZhciB1PTA7dTxhLmxlbmd0aDt1KyspaWYoYVt1XS5pc0ludGVyc2VjdGluZyl7VXUoKTticmVha319LHtyb290OnJuKCkscm9vdE1hcmdpbjoiMjAwcHgifSksZHIub2JzZXJ2ZShlKSl9fWZ1bmN0aW9uIGhlKCl7dHJ5e3Iuc2VsZWN0ZWRJZD9sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1zZWxlY3RlZC1zZXNzaW9uIixyLnNlbGVjdGVkSWQpOmxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKX1jYXRjaHt9fWZ1bmN0aW9uIGRhKGUpe3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpP2UucXVldWVkTWVzc2FnZXM6ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZX1mdW5jdGlvbiBBZCgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiBkYShlKX1mdW5jdGlvbiB0aShlKXt2YXIgdD1kYShlKTtyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPUFycmF5LmlzQXJyYXkodCk/dC5zbGljZSgpOltdfWZ1bmN0aW9uIEt1KGUsdCl7cmV0dXJuISEoZSYmQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpJiZlLmNvbnRlbnQuc29tZShmdW5jdGlvbihuKXtyZXR1cm4gbiYmdHlwZW9mIG49PSJvYmplY3QiJiZuW3RdfSkpfWZ1bmN0aW9uIHhkKGUpe3JldHVybiEhKGUmJmUucm9sZT09PSJ1c2VyIiYmS3UoZSwiX19xdWV1ZWQiKSl9ZnVuY3Rpb24gU2QoZSl7cmV0dXJuISEoZSYmZS5yb2xlPT09ImFzc2lzdGFudCImJkt1KGUsIl9fcHJvY2Vzc2luZyIpKX1mdW5jdGlvbiBjcihlKXtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm5bXTtmb3IodmFyIHQ9ITEsbj1bXSxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoeGQoYSl8fFNkKGEpKXt0PSEwO2NvbnRpbnVlfW4ucHVzaChhKX1yZXR1cm4gdD9uOmV9ZnVuY3Rpb24gSWQoZSx0KXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcykpcmV0dXJuIGU7dmFyIG49ZS5zZXNzaW9uS2luZHx8dCYmdC5zZXNzaW9uS2luZDtpZihuIT09InN0cnVjdHVyZWQiKXJldHVybiBlO3ZhciBpPWNyKGUubWVzc2FnZXMpO3JldHVybiBpPT09ZS5tZXNzYWdlcz9lOk9iamVjdC5hc3NpZ24oe30sZSx7bWVzc2FnZXM6aX0pfWZ1bmN0aW9uIEp1KCl7dHJ5e3ZhciBlPUFkKCk7aWYoIXIuc2VsZWN0ZWRJZHx8ZS5sZW5ndGg9PT0wKXJldHVybjtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIixKU09OLnN0cmluZ2lmeSh7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZCxpdGVtczplfSkpfWNhdGNoe319ZnVuY3Rpb24gWXUoZSl7dHJ5e3ZhciB0PWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXN0cnVjdHVyZWQtcXVldWUiKTtpZighdClyZXR1cm47dmFyIG49SlNPTi5wYXJzZSh0KTsoIWV8fCFufHxuLnNlc3Npb25JZD09PWUpJiZsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIil9Y2F0Y2h7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpfX1mdW5jdGlvbiBHdSgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUmJkFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcykpe3RpKGUpLEp1KCk7cmV0dXJufXRyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIik7aWYoIXQpcmV0dXJuO3ZhciBuPUpTT04ucGFyc2UodCk7aWYoIW58fG4uc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkfHwhQXJyYXkuaXNBcnJheShuLml0ZW1zKSlyZXR1cm47ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1uLml0ZW1zLnNsaWNlKDAsMTApfWNhdGNoe3Iuc3RydWN0dXJlZElucHV0UXVldWU9W119fWZ1bmN0aW9uIEp0KCl7dHJ5e2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIpO3JldHVybn1sb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1jcm9zcy1zZXNzaW9uLXF1ZXVlIixKU09OLnN0cmluZ2lmeShyLmNyb3NzU2Vzc2lvblF1ZXVlKSl9Y2F0Y2h7fX1mdW5jdGlvbiBhbigpe3JldHVybiByLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdEN3ZHx8Ii90bXAifWZ1bmN0aW9uIFF1KCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKGlhKTtpZighZSlyZXR1cm57fTt2YXIgdD1KU09OLnBhcnNlKGUpO3JldHVybiB0JiZ0eXBlb2YgdD09Im9iamVjdCI/dDp7fX1jYXRjaHtyZXR1cm57fX19ZnVuY3Rpb24gVGQoZSl7dHJ5e2lmKCFlfHxPYmplY3Qua2V5cyhlKS5sZW5ndGg9PT0wKXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShpYSk7cmV0dXJufWxvY2FsU3RvcmFnZS5zZXRJdGVtKGlhLEpTT04uc3RyaW5naWZ5KGUpKX1jYXRjaHt9fWZ1bmN0aW9uIExkKCl7dmFyIGU9ci5zZWxlY3RlZElkO2lmKCFlKXJldHVybnt9O3ZhciB0PVF1KCksbj10W2VdO3JldHVybiBuJiZ0eXBlb2Ygbj09Im9iamVjdCI/bjp7fX1mdW5jdGlvbiBidChlKXtpZighZXx8IXIuc2VsZWN0ZWRJZClyZXR1cm4gbnVsbDt2YXIgdD1MZCgpO3JldHVybiB0eXBlb2YgdFtlXT09ImJvb2xlYW4iP3RbZV06bnVsbH1mdW5jdGlvbiAkdShlLHQpe2lmKCEoIWV8fCFyLnNlbGVjdGVkSWQpKXt2YXIgbj1RdSgpLGk9ci5zZWxlY3RlZElkLGE9bltpXTsoIWF8fHR5cGVvZiBhIT0ib2JqZWN0IikmJihhPXt9KSxhW2VdPSEhdCxuW2ldPWEsVGQobil9fWZ1bmN0aW9uIFh1KGUsdCl7cmV0dXJuIGU/ZS51dWlkPyJtc2c6IitlLnV1aWQ6ZS5pZD8ibXNnOiIrZS5pZDplLm1lc3NhZ2VJZD8ibXNnOiIrZS5tZXNzYWdlSWQ6ZS50dXJuSWQ/Im1zZzoiK2UudHVybklkOiJtc2c6IisodHlwZW9mIHQ9PSJudW1iZXIiP3Q6MCk6Im1zZzp1bmtub3duLSIrKHR5cGVvZiB0PT0ibnVtYmVyIj90OjApfWZ1bmN0aW9uIFR0KGUsdCl7Zm9yKHZhciBuPVtdLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTthPT1udWxsfHxhPT09IiJ8fG4ucHVzaChTdHJpbmcoYSkpfXJldHVybiBlKyI6IituLmpvaW4oIjoiKX1mdW5jdGlvbiBjYShlKXtyZXR1cm4hZXx8IWUuZGF0YXNldD8iIjplLmRhdGFzZXQuZXhwYW5kS2V5fHwiIn1mdW5jdGlvbiBNZChlLHQpe2lmKCFlKXJldHVybiExO3N3aXRjaCh0KXtjYXNlInRvb2wtY2FyZCI6Y2FzZSJkaWZmIjpyZXR1cm4hZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO2Nhc2UidGhpbmtpbmciOnJldHVybiBlLmNsYXNzTGlzdC5jb250YWlucygiZXhwYW5kZWQiKSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtjYXNlImlubGluZS10b29sIjpyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoImlubGluZS10b29sLW9wZW4iKTtjYXNlInRlcm1pbmFsIjp7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGVybS1ib2R5Iik7cmV0dXJuIG4/bi5zdHlsZS5kaXNwbGF5IT09Im5vbmUiOmUuZGF0YXNldC5leHBhbmRlZD09PSJ0cnVlIn1jYXNlInRvb2wtZ3JvdXAiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2Nhc2Uic3ViYWdlbnQtcmVwbHkiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2Nhc2Uic3ViYWdlbnQtcGFuZWwiOnJldHVybiBlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIFp1KGUsdCxuKXtpZihlKXN3aXRjaCh0KXtjYXNlInRvb2wtY2FyZCI6Y2FzZSJkaWZmIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLCFuKTticmVha31jYXNlInRoaW5raW5nIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLCFuKSxlLmNsYXNzTGlzdC50b2dnbGUoImV4cGFuZGVkIiwhIW4pO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3Iik7aWYoaSl7dmFyIGE9ZS5kYXRhc2V0LnRoaW5raW5nfHwiIix1PWEuc2xpY2UoMCw1NykrKGEubGVuZ3RoPjYwPyJcdTIwMjYiOiIiKTtpLnRleHRDb250ZW50PW4/YTp1fXZhciBvPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1hY3Rpb24iKTtvJiYoby50ZXh0Q29udGVudD1uPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKTticmVha31jYXNlImlubGluZS10b29sIjp7ZS5jbGFzc0xpc3QudG9nZ2xlKCJpbmxpbmUtdG9vbC1vcGVuIiwhIW4pO3ZhciBzPWUucXVlcnlTZWxlY3RvcigiLmlubGluZS10b29sLWV4cGFuZGVkIik7cyYmKHMuc3R5bGUuZGlzcGxheT1uPyJibG9jayI6Im5vbmUiKTticmVha31jYXNlInRlcm1pbmFsIjp7dmFyIGw9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS1ib2R5Iik7bCYmKGwuc3R5bGUuZGlzcGxheT1uPyJibG9jayI6Im5vbmUiKSxlLmRhdGFzZXQuZXhwYW5kZWQ9bj8idHJ1ZSI6ImZhbHNlIjt2YXIgZD1lLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLXRvZ2dsZS1pY29uIik7ZCYmKGQudGV4dENvbnRlbnQ9bj8iXHUyNUJDIjoiXHUyNUI2Iik7YnJlYWt9Y2FzZSJ0b29sLWdyb3VwIjp7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLG4/InRydWUiOiJmYWxzZSIpO3ZhciBmPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtYm9keSIpO2YmJihmLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIik7dmFyIGM9ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1jaGV2cm9uIik7YyYmKGMuc3R5bGUudHJhbnNmb3JtPW4/InJvdGF0ZSgxODBkZWcpIjoiIik7YnJlYWt9Y2FzZSJzdWJhZ2VudC1yZXBseSI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTt2YXIgdj1lLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1yZXBseS10b2dnbGUtbGFiZWwiKTt2JiYodi50ZXh0Q29udGVudD1uPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKTt2YXIgaD1lLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1yZXBseS10b2dnbGUiKTtoJiYoaC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLG4/InRydWUiOiJmYWxzZSIpLGguc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixuPyJcdTY1MzZcdThENzdcdTVCNTBcdTRFRTNcdTc0MDZcdTU2REVcdTU5MEQiOiJcdTVDNTVcdTVGMDBcdTVCNTBcdTRFRTNcdTc0MDZcdTU2REVcdTU5MERcdTUxNjhcdTY1ODciKSk7YnJlYWt9Y2FzZSJzdWJhZ2VudC1wYW5lbCI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTtmb3IodmFyIGc9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuc3ViYWdlbnQtcGFuZWwtdG9nZ2xlIiksbT0wO208Zy5sZW5ndGg7bSsrKXt2YXIgeT1nW21dO3kuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKSx5LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj8iXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIik7dmFyIEM9eS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWxhYmVsIik7QyYmKEMudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIil9dmFyIEU9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcGFuZWwtYm9keSIpO0UmJihuP0Uuc2Nyb2xsVG9wPTA6RS5zY3JvbGxUb3A9RS5zY3JvbGxIZWlnaHQpO2JyZWFrfX19ZnVuY3Rpb24gTm4oZSx0KXt2YXIgbj1jYShlKTtuJiYkdShuLE1kKGUsdCkpfWZ1bmN0aW9uIGZhKGUpeyFlfHwhci5zZWxlY3RlZElkfHxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWV4cGFuZC1rZXldIikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj1jYSh0KSxpPXQuZGF0YXNldC5leHBhbmRLaW5kfHwiIixhPWJ0KG4pO2E9PT1udWxsfHwhaXx8WnUodCxpLGEpfSl9ZnVuY3Rpb24gUmUoKXtyZXR1cm4gd2luZG93LmlubmVyV2lkdGg8PTc2OH1mdW5jdGlvbiBlbygpe3JldHVybiEhci5zZXNzaW9uc0RyYXdlck9wZW4mJihSZSgpfHwhci5zaWRlYmFyUGlubmVkKX1mdW5jdGlvbiBwYShlKXtyLmZpbGVQYW5lbE9wZW49ZTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtZmlsZS1wYW5lbC1vcGVuIixTdHJpbmcoci5maWxlUGFuZWxPcGVuKSl9Y2F0Y2h7fXIuZmlsZVBhbmVsT3BlbiYmUmUoKSYmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpKSx1bigpLHIuZmlsZVBhbmVsT3BlbiYmTHQoKX1mdW5jdGlvbiBuaSgpe3BhKCFyLmZpbGVQYW5lbE9wZW4pfWZ1bmN0aW9uIHFkKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2lkZS1wYW5lbCIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tY29udGVudCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtdG9nZ2xlLWJ0biIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtYmFja2Ryb3AiKTtlJiZlLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLHIuZmlsZVBhbmVsT3BlbiksdCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJmaWxlLXBhbmVsLW9wZW4iLHIuZmlsZVBhbmVsT3BlbiksaSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLmZpbGVQYW5lbE9wZW4pLG4mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLmZpbGVQYW5lbE9wZW4pfWZ1bmN0aW9uIHVuKCl7UnIoKSxxZCgpfWZ1bmN0aW9uIFBkKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKHQpe3ZhciBuPWUmJmUuY3dkP2UuY3dkOmFuKCk7dC50YWdOYW1lPT09IklOUFVUIj9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmKHQudmFsdWU9bixSZyh0KSk6dC50ZXh0Q29udGVudD1uLHQudGl0bGU9bjt2YXIgaT10LmNsb3Nlc3QoIi5maWxlLWV4cGxvcmVyLWhlYWRlciIpO2kmJmFyKGkpfX1mdW5jdGlvbiB0bygpe3IuZmlsZVBhbmVsT3BlbiYmcGEoITEpfWZ1bmN0aW9uIG5vKGUpe3ZhciB0PXIudGVybWluYWxTY2FsZStlO2lmKHQ9TWF0aC5tYXgoLjUsTWF0aC5taW4oMix0KSksdD1NYXRoLnJvdW5kKHQqNCkvNCx0IT09ci50ZXJtaW5hbFNjYWxlKXtyLnRlcm1pbmFsU2NhbGU9dDt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtdGVybWluYWwtc2NhbGUiLFN0cmluZyh0KSl9Y2F0Y2h7fXJvKCksT2QoKX19ZnVuY3Rpb24gcm8oKXtpZighKCFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbC5lbGVtZW50KSl7dmFyIGU9ci50ZXJtaW5hbEJhc2VGb250U2l6ZSpyLnRlcm1pbmFsU2NhbGUsdD1NYXRoLm1heCgxLE1hdGgucm91bmQoZSkpLG49TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUqMS41KSk7ci50ZXJtaW5hbC5lbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCItLXRlcm0tZm9udC1zaXplIix0KyJweCIpLHIudGVybWluYWwuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10ZXJtLXJvdy1oZWlnaHQiLG4rInB4IiksdHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpfSl9fWZ1bmN0aW9uIE9kKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLWxhYmVsLXRvcCIpO2UmJihlLnRleHRDb250ZW50PU1hdGgucm91bmQoci50ZXJtaW5hbFNjYWxlKjEwMCkrIiUiKX12YXIgSGQ9eyJjaGV2cm9uLWxlZnQiOic8cGF0aCBkPSJNMTUgMThsLTYtNiA2LTYiLz4nLCJhcnJvdy11cCI6JzxwYXRoIGQ9Ik0xMiAxOVY1Ii8+PHBhdGggZD0iTTUgMTJsNy03IDcgNyIvPicscmVmcmVzaDonPHBhdGggZD0iTTIxIDEyYTkgOSAwIDEgMS0zLTYuNyIvPjxwYXRoIGQ9Ik0yMSA0djVoLTUiLz4nLGV5ZTonPHBhdGggZD0iTTEgMTJzNC03IDExLTcgMTEgNyAxMSA3LTQgNy0xMSA3UzEgMTIgMSAxMnoiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIzIi8+JywiZXllLW9mZiI6JzxwYXRoIGQ9Ik0xNy45NCAxNy45NEExMC45NCAxMC45NCAwIDAgMSAxMiAxOWMtNyAwLTExLTctMTEtN2ExOS44NiAxOS44NiAwIDAgMSA0LjIyLTUuMTgiLz48cGF0aCBkPSJNMSAxbDIyIDIyIi8+PHBhdGggZD0iTTkuOSA0LjI0QTEwLjk0IDEwLjk0IDAgMCAxIDEyIDRjNyAwIDExIDcgMTEgN2ExOS44MyAxOS44MyAwIDAgMS0zLjM2IDQuMjciLz48cGF0aCBkPSJNMTQuMTIgMTQuMTJhMyAzIDAgMSAxLTQuMjQtNC4yNCIvPicseDonPHBhdGggZD0iTTE4IDZMNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz4nLHNlYXJjaDonPGNpcmNsZSBjeD0iMTEiIGN5PSIxMSIgcj0iNyIvPjxwYXRoIGQ9Ik0yMSAyMWwtNC4zLTQuMyIvPicsY29weTonPHJlY3QgeD0iOSIgeT0iOSIgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiByeD0iMiIvPjxwYXRoIGQ9Ik01IDE1VjVhMiAyIDAgMCAxIDItMmgxMCIvPicsY2xpcGJvYXJkOic8cmVjdCB4PSI4IiB5PSIzIiB3aWR0aD0iOCIgaGVpZ2h0PSI0IiByeD0iMSIvPjxwYXRoIGQ9Ik0xNiA1aDJhMiAyIDAgMCAxIDIgMnYxMmEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY3YTIgMiAwIDAgMSAyLTJoMiIvPicsZG93bmxvYWQ6JzxwYXRoIGQ9Ik0yMSAxNXY0YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0ydi00Ii8+PHBhdGggZD0iTTcgMTBsNSA1IDUtNSIvPjxwYXRoIGQ9Ik0xMiAxNVYzIi8+JyxlZGl0Oic8cGF0aCBkPSJNMTIgMjBoOSIvPjxwYXRoIGQ9Ik0xNi41IDMuNWEyLjEyMSAyLjEyMSAwIDAgMSAzIDNMNyAxOWwtNCAxIDEtNHoiLz4nLHNhdmU6JzxwYXRoIGQ9Ik0xOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDExbDUgNXYxMWEyIDIgMCAwIDEtMiAyeiIvPjxwYXRoIGQ9Ik0xNyAyMXYtOEg3djgiLz48cGF0aCBkPSJNNyAzdjVoOCIvPicsInJvdGF0ZS1jY3ciOic8cGF0aCBkPSJNMyAxMmE5IDkgMCAxIDAgMy02LjciLz48cGF0aCBkPSJNMyA0djVoNSIvPicsIndyYXAtdGV4dCI6JzxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNMyAxMmgxNWEzIDMgMCAxIDEgMCA2aC00Ii8+PHBhdGggZD0iTTE2IDE2bC0yIDIgMiAyIi8+PHBhdGggZD0iTTMgMThoNiIvPicsdHlwZTonPHBhdGggZD0iTTQgN1Y0aDE2djMiLz48cGF0aCBkPSJNOSAyMGg2Ii8+PHBhdGggZD0iTTEyIDR2MTYiLz4nLG1pbnVzOic8cGF0aCBkPSJNNSAxMmgxNCIvPicscGx1czonPHBhdGggZD0iTTEyIDV2MTQiLz48cGF0aCBkPSJNNSAxMmgxNCIvPicsInNlbmQtdG8taW5wdXQiOic8cGF0aCBkPSJNMjIgMkwxMSAxMyIvPjxwYXRoIGQ9Ik0yMiAybC03IDIwLTQtOS05LTR6Ii8+Jyx0ZXJtaW5hbDonPHBvbHlsaW5lIHBvaW50cz0iNCAxNyAxMCAxMSA0IDUiLz48bGluZSB4MT0iMTIiIHkxPSIxOSIgeDI9IjIwIiB5Mj0iMTkiLz4nLCJmb2xkZXItb3BlbiI6JzxwYXRoIGQ9Ik02IDE0bDEuNDUtMi45QTIgMiAwIDAgMSA5LjI0IDEwSDIwYTIgMiAwIDAgMSAxLjk0IDIuNWwtMS41NSA2YTIgMiAwIDAgMS0xLjk0IDEuNUg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDMuOTNhMiAyIDAgMCAxIDEuNjYuOWwuODIgMS4yYTIgMiAwIDAgMCAxLjY2LjlIMThhMiAyIDAgMCAxIDIgMnYyIi8+JyxpbmZvOic8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIiIHkyPSIxMiIvPjxsaW5lIHgxPSIxMiIgeTE9IjgiIHgyPSIxMi4wMSIgeTI9IjgiLz4nfTtmdW5jdGlvbiBNZShlLHQpe3Q9dHx8e307dmFyIG49SGRbZV18fCIiLGk9dC5zaXplfHwxNixhPXQuY2xhc3NOYW1lPyIgIit0LmNsYXNzTmFtZToiIjtyZXR1cm4nPHN2ZyBjbGFzcz0id2FuZC1pY29uIHdhbmQtaWNvbi0nK2UrYSsnIiB3aWR0aD0iJytpKyciIGhlaWdodD0iJytpKyciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytuKyI8L3N2Zz4ifWZ1bmN0aW9uIF9kKGUpe3ZhciB0PWV8fGFuKCk7cmV0dXJuIHQ/JzxkaXYgY2xhc3M9ImZpbGUtdHJlZSIgaWQ9ImZpbGUtdHJlZSIgZGF0YS1jd2Q9IicrcCh0KSsnIj48ZGl2IGNsYXNzPSJ0cmVlLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2Pic6JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1NjcyQVx1OTE0RFx1N0Y2RVx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1MzAwMjwvZGl2Pid9dmFyIE5kPXtwbmc6Ilx1ezFGNUJDfVx1RkUwRiIsanBnOiJcdXsxRjVCQ31cdUZFMEYiLGpwZWc6Ilx1ezFGNUJDfVx1RkUwRiIsZ2lmOiJcdXsxRjVCQ31cdUZFMEYiLHdlYnA6Ilx1ezFGNUJDfVx1RkUwRiIsc3ZnOiJcdXsxRjVCQ31cdUZFMEYiLGF2aWY6Ilx1ezFGNUJDfVx1RkUwRiIsYm1wOiJcdXsxRjVCQ31cdUZFMEYiLGljbzoiXHV7MUY1QkN9XHVGRTBGIixoZWljOiJcdXsxRjVCQ31cdUZFMEYiLGhlaWY6Ilx1ezFGNUJDfVx1RkUwRiIscGRmOiJcdXsxRjRENX0iLGRvYzoiXHV7MUY0RDh9Iixkb2N4OiJcdXsxRjREOH0iLG9kdDoiXHV7MUY0RDh9Iix4bHM6Ilx1ezFGNENBfSIseGxzeDoiXHV7MUY0Q0F9Iixjc3Y6Ilx1ezFGNENBfSIsdHN2OiJcdXsxRjRDQX0iLHBwdDoiXHV7MUY0RDl9IixwcHR4OiJcdXsxRjREOX0iLG1wNDoiXHV7MUYzQUN9Iix3ZWJtOiJcdXsxRjNBQ30iLG1vdjoiXHV7MUYzQUN9Iixta3Y6Ilx1ezFGM0FDfSIsbTR2OiJcdXsxRjNBQ30iLG9ndjoiXHV7MUYzQUN9IixtcDM6Ilx1ezFGM0I1fSIsd2F2OiJcdXsxRjNCNX0iLG9nZzoiXHV7MUYzQjV9IixtNGE6Ilx1ezFGM0I1fSIsZmxhYzoiXHV7MUYzQjV9IixhYWM6Ilx1ezFGM0I1fSIsb3B1czoiXHV7MUYzQjV9Iix6aXA6Ilx1ezFGNEU2fSIsdGFyOiJcdXsxRjRFNn0iLGd6OiJcdXsxRjRFNn0iLHRnejoiXHV7MUY0RTZ9IixiejI6Ilx1ezFGNEU2fSIsIjd6IjoiXHV7MUY0RTZ9IixyYXI6Ilx1ezFGNEU2fSIseHo6Ilx1ezFGNEU2fSIsbWQ6Ilx1ezFGNEREfSIsbWFya2Rvd246Ilx1ezFGNEREfSIsbWR4OiJcdXsxRjRERH0iLHJzdDoiXHV7MUY0RER9Iix0eHQ6Ilx1ezFGNEREfSIsbG9nOiJcdXsxRjRERH0iLGh0bWw6Ilx1ezFGMzEwfSIsaHRtOiJcdXsxRjMxMH0iLHhtbDoiXHV7MUYzMTB9Iixjc3M6Ilx1ezFGM0E4fSIsc2NzczoiXHV7MUYzQTh9IixsZXNzOiJcdXsxRjNBOH0iLGpzb246Ilx1MjY5OVx1RkUwRiIsanNvbmM6Ilx1MjY5OVx1RkUwRiIseWFtbDoiXHUyNjk5XHVGRTBGIix5bWw6Ilx1MjY5OVx1RkUwRiIsdG9tbDoiXHUyNjk5XHVGRTBGIixpbmk6Ilx1MjY5OVx1RkUwRiIsY2ZnOiJcdTI2OTlcdUZFMEYiLGNvbmY6Ilx1MjY5OVx1RkUwRiIsZW52OiJcdTI2OTlcdUZFMEYiLGVkaXRvcmNvbmZpZzoiXHUyNjk5XHVGRTBGIix0czoiXHV7MUY0REN9Iix0c3g6Ilx1ezFGNERDfSIsanM6Ilx1ezFGNERDfSIsanN4OiJcdXsxRjREQ30iLG1qczoiXHV7MUY0REN9IixjanM6Ilx1ezFGNERDfSIscHk6Ilx1ezFGNERDfSIscmI6Ilx1ezFGNERDfSIsZ286Ilx1ezFGNERDfSIscnM6Ilx1ezFGNERDfSIsamF2YToiXHV7MUY0REN9IixjOiJcdXsxRjREQ30iLGNwcDoiXHV7MUY0REN9IixoOiJcdXsxRjREQ30iLGhwcDoiXHV7MUY0REN9IixjczoiXHV7MUY0REN9Iixzd2lmdDoiXHV7MUY0REN9IixrdDoiXHV7MUY0REN9IixzY2FsYToiXHV7MUY0REN9IixwaHA6Ilx1ezFGNERDfSIsc2g6Ilx1ezFGNERDfSIsYmFzaDoiXHV7MUY0REN9Iix6c2g6Ilx1ezFGNERDfSIsZmlzaDoiXHV7MUY0REN9IixsdWE6Ilx1ezFGNERDfSIsc3FsOiJcdXsxRjREQ30iLGdyYXBocWw6Ilx1ezFGNERDfSIscHJvdG86Ilx1ezFGNERDfSIsdnVlOiJcdXsxRjREQ30iLHN2ZWx0ZToiXHV7MUY0REN9IixkaWZmOiJcdXsxRjREQ30iLHBhdGNoOiJcdXsxRjREQ30iLHR0ZjoiXHV7MUY1MjR9IixvdGY6Ilx1ezFGNTI0fSIsd29mZjoiXHV7MUY1MjR9Iix3b2ZmMjoiXHV7MUY1MjR9Iixlb3Q6Ilx1ezFGNTI0fSJ9O2Z1bmN0aW9uIGlvKGUpe2lmKCFlKXJldHVybiJcdXsxRjRDNH0iO2lmKGUudHlwZT09PSJkaXIiKXJldHVybiJcdXsxRjRDMX0iO3ZhciB0PShlLm5hbWV8fCIiKS50b0xvd2VyQ2FzZSgpO2lmKHQ9PT0iZG9ja2VyZmlsZSIpcmV0dXJuIlx1ezFGNDMzfSI7aWYodD09PSJtYWtlZmlsZSIpcmV0dXJuIlx1ezFGNkUwfVx1RkUwRiI7aWYodD09PSJsaWNlbnNlIilyZXR1cm4iXHV7MUY0REN9IjtpZih0PT09InJlYWRtZSIpcmV0dXJuIlx1ezFGNEREfSI7dmFyIG49dC5sYXN0SW5kZXhPZigiLiIpO2lmKG48MHx8bj09PXQubGVuZ3RoLTEpcmV0dXJuIlx1ezFGNEM0fSI7dmFyIGk9dC5zbGljZShuKzEpO3JldHVybiBOZFtpXXx8Ilx1ezFGNEM0fSJ9ZnVuY3Rpb24gam4oZSl7aWYodHlwZW9mIGUhPSJudW1iZXIifHwhaXNGaW5pdGUoZSl8fGU8MClyZXR1cm4iIjtpZihlPDEwMjQpcmV0dXJuIGUrIiBCIjt2YXIgdD1lLzEwMjQ7aWYodDwxMDI0KXJldHVybih0Pj0xMD9NYXRoLnJvdW5kKHQpOnQudG9GaXhlZCgxKSkrIiBLQiI7dmFyIG49dC8xMDI0O2lmKG48MTAyNClyZXR1cm4obj49MTA/TWF0aC5yb3VuZChuKTpuLnRvRml4ZWQoMSkpKyIgTUIiO3ZhciBpPW4vMTAyNDtyZXR1cm4oaT49MTA/TWF0aC5yb3VuZChpKTppLnRvRml4ZWQoMSkpKyIgR0IifWZ1bmN0aW9uIGpkKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUucGFyc2UoZSk7cmV0dXJuIGlzTmFOKHQpPyIiOm5ldyBEYXRlKHQpLnRvTG9jYWxlU3RyaW5nKCl9ZnVuY3Rpb24gYW8oKXtpZihyLmZpbGVFeHBsb3JlckN3ZClyZXR1cm4gci5maWxlRXhwbG9yZXJDd2Q7aWYoci5zZWxlY3RlZElkKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZlLmN3ZClyZXR1cm4gZS5jd2R9cmV0dXJuIGFuKCl9ZnVuY3Rpb24gTHQoZSl7ZT1lfHx7fTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3JlciIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItY3dkIik7aWYodCl7dmFyIGk9ZS5jd2R8fGFvKCk7aWYoIWkpe3QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTZDQTFcdTY3MDlcdTUzRUZcdTY2M0VcdTc5M0FcdTc2ODRcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L2Rpdj4nO3JldHVybn1yLmZpbGVFeHBsb3JlckN3ZD1pLHIuZmlsZUV4cGxvcmVyTG9hZGluZz0hMCxyLmFsbEZpbGVzPVtdLHIuZmlsZUV4cGxvcmVyVHJ1bmNhdGVkPSExLHIuZmlsZUV4cGxvcmVyVG90YWw9MCx0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciI+PGRpdiBjbGFzcz0idHJlZS1sb2FkaW5nIiBzdHlsZT0icGFkZGluZzoxMnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTowLjgxMjVyZW07Ij5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj4nLG4mJihuLnRhZ05hbWU9PT0iSU5QVVQiP2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT1uJiYobi52YWx1ZT1pKTpuLnRleHRDb250ZW50PWksbi50aXRsZT1pKTt2YXIgYT0iL2FwaS9kaXJlY3Rvcnk/cT0iK2VuY29kZVVSSUNvbXBvbmVudChpKSsiJmdpdFN0YXR1cz10cnVlIjtmZXRjaChhLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtpZighdS5vayl0aHJvdyBuZXcgRXJyb3IoIkZhaWxlZCB0byBsb2FkIGRpcmVjdG9yeS4iKTtyZXR1cm4gdS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHUpe3IuZmlsZUV4cGxvcmVyTG9hZGluZz0hMTt2YXIgbyxzLGw7aWYoQXJyYXkuaXNBcnJheSh1KT8obz11LHM9ITEsbD11Lmxlbmd0aCk6KG89dSYmdS5pdGVtc3x8W10scz0hISh1JiZ1LnRydW5jYXRlZCksbD11JiZ1LnRvdGFsfHxvLmxlbmd0aCksIW98fG8ubGVuZ3RoPT09MCl7dC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1N0E3QVx1NzZFRVx1NUY1NVx1NjIxNlx1NjVFMFx1NkNENVx1OEJCRlx1OTVFRVx1MzAwMjwvZGl2Pic7cmV0dXJufXIuYWxsRmlsZXM9byxyLmZpbGVFeHBsb3JlclRydW5jYXRlZD1zLHIuZmlsZUV4cGxvcmVyVG90YWw9bCx1bygpfSkuY2F0Y2goZnVuY3Rpb24oKXtyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITEsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1NjhDMFx1NjdFNVx1OERFRlx1NUY4NFx1NjIxNlx1Njc0M1x1OTY1MFx1MzAwMjwvZGl2Pid9KX19ZnVuY3Rpb24gdW8oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3JlciIpO2lmKGUpe3ZhciB0PXIuZmlsZUV4cGxvcmVyQ3dkfHwiIjtpZih0KXt2YXIgbj1yLmZpbGVTZWFyY2hRdWVyeSxpPXIuYWxsRmlsZXN8fFtdLGE9aTtpZihuKXt2YXIgdT1uLnRvTG93ZXJDYXNlKCk7YT1pLmZpbHRlcihmdW5jdGlvbihsKXtyZXR1cm4gbC5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZih1KSE9PS0xfSl9aWYoYS5sZW5ndGg9PT0wKXtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciBlbXB0eSI+Jysobj8iXHU2Q0ExXHU2NzA5XHU2MjdFXHU1MjMwXHU1MzM5XHU5MTREXHU3Njg0XHU2NTg3XHU0RUY2IjoiXHU3QTdBXHU3NkVFXHU1RjU1IikrIjwvZGl2PiI7cmV0dXJufXZhciBvPSIiO2lmKCFuJiZyLmZpbGVFeHBsb3JlclRydW5jYXRlZCl7dmFyIHM9aS5sZW5ndGg7bz0nPGRpdiBjbGFzcz0idHJlZS10cnVuY2F0ZWQiIHRpdGxlPSJcdTU0MEVcdTdBRUZcdTYzMDlcdTVCNTdcdTZCQ0RcdTVFOEZcdTY3MDBcdTU5MUFcdThGRDRcdTU2REUgJytzKycgXHU5ODc5Ij5cdTY2M0VcdTc5M0FcdTUyNEQgJytzKyIgXHU5ODc5IC8gXHU1MTcxICIrci5maWxlRXhwbG9yZXJUb3RhbCsiIFx1OTg3OTwvZGl2PiJ9ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtdHJlZSIgaWQ9ImZpbGUtdHJlZSIgZGF0YS1jd2Q9IicrcCh0KSsnIj4nK2EubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBvbyhsKX0pLmpvaW4oIiIpKyI8L2Rpdj4iK28sc28oKX19fWZ1bmN0aW9uIG9vKGUsdCl7dD10fHwwO3ZhciBuPXAoZS5uYW1lKSxpPWUudHlwZT09PSJkaXIiLGE9aW8oZSksdT1pPyJcdTI1QjgiOiIiLG89aT8iIjoiIGVtcHR5IixzPWUuZ2l0U3RhdHVzLGw9UmQocyksZD0iIjtyZXR1cm4haSYmdHlwZW9mIGUuc2l6ZT09Im51bWJlciImJihkPSc8c3BhbiBjbGFzcz0idHJlZS1tZXRhIiB0aXRsZT0iXHU1OTI3XHU1QzBGXHVGRjFBJytwKGpuKGUuc2l6ZSkpKyhlLm10aW1lP2AKXHU0RkVFXHU2NTM5XHU2NUY2XHU5NUY0XHVGRjFBYCtwKGpkKGUubXRpbWUpKToiIikrJyI+JytwKGpuKGUuc2l6ZSkpKyI8L3NwYW4+IiksJzxkaXYgY2xhc3M9InRyZWUtaXRlbSIgZGF0YS1wYXRoPSInK3AoZS5wYXRoKSsnIiBkYXRhLXR5cGU9IicrcChlLnR5cGUpKyciIGRhdGEtbmFtZT0iJytwKGUubmFtZSkrJyIgdGFiaW5kZXg9IjAiPjxzcGFuIGNsYXNzPSJ0cmVlLXRvZ2dsZScrbysnIj4nK3UrJzwvc3Bhbj48c3BhbiBjbGFzcz0idHJlZS1pY29uIj4nK2ErJzwvc3Bhbj48c3BhbiBjbGFzcz0idHJlZS1uYW1lIj4nK24rIjwvc3Bhbj4iK2QrKGw/JzxzcGFuIGNsYXNzPSJnaXQtc3RhdHVzLWJhZGdlICcrbC5jbGFzcysnIiB0aXRsZT0iJytsLnRpdGxlKyciPicrbC50ZXh0KyI8L3NwYW4+IjoiIikrIjwvZGl2PiJ9ZnVuY3Rpb24gUmQoZSl7cmV0dXJuIGU/ZS5zdGFnZWQ9PT0iYWRkZWQiP3t0ZXh0OiJBIixjbGFzczoiZ2l0LWFkZGVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU2NUIwXHU1ODlFXHVGRjA5In06ZS5zdGFnZWQ9PT0ibW9kaWZpZWQiP3t0ZXh0OiJNIixjbGFzczoiZ2l0LW1vZGlmaWVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU0RkVFXHU2NTM5XHVGRjA5In06ZS5zdGFnZWQ9PT0iZGVsZXRlZCI/e3RleHQ6IkQiLGNsYXNzOiJnaXQtZGVsZXRlZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NTIyMFx1OTY2NFx1RkYwOSJ9OmUuc3RhZ2VkPT09InJlbmFtZWQiP3t0ZXh0OiJSIixjbGFzczoiZ2l0LXJlbmFtZWQiLHRpdGxlOiJcdTVERjJcdTY2ODJcdTVCNThcdUZGMDhcdTkxQ0RcdTU0N0RcdTU0MERcdUZGMDkifTplLnVuc3RhZ2VkPT09Im1vZGlmaWVkIj97dGV4dDoiTSIsY2xhc3M6ImdpdC11bnN0YWdlZCIsdGl0bGU6Ilx1NjcyQVx1NjY4Mlx1NUI1OFx1RkYwOFx1NEZFRVx1NjUzOVx1RkYwOSJ9OmUudW5zdGFnZWQ9PT0iZGVsZXRlZCI/e3RleHQ6IkQiLGNsYXNzOiJnaXQtdW5zdGFnZWQtZGVsZXRlZCIsdGl0bGU6Ilx1NjcyQVx1NjY4Mlx1NUI1OFx1RkYwOFx1NTIyMFx1OTY2NFx1RkYwOSJ9OmUudW50cmFja2VkP3t0ZXh0OiI/IixjbGFzczoiZ2l0LXVudHJhY2tlZCIsdGl0bGU6Ilx1NjcyQVx1OERERlx1OEUyQSJ9Om51bGw6bnVsbH1mdW5jdGlvbiBzbygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXRyZWUiKTtpZihlKXtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW1bZGF0YS10eXBlPSdkaXInXSIpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7V2QoaSl9KX0pLGUucXVlcnlTZWxlY3RvckFsbCgiLnRyZWUtaXRlbVtkYXRhLXR5cGU9J2ZpbGUnXSIpLmZvckVhY2goZnVuY3Rpb24oaSl7dmFyIGE9ZnVuY3Rpb24oKXtpaShpLmRhdGFzZXQucGF0aCl9O2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGEpLGkuYWRkRXZlbnRMaXN0ZW5lcigiZGJsY2xpY2siLGEpfSk7dmFyIHQ9bnVsbCxuPSExO2UucXVlcnlTZWxlY3RvckFsbCgiLnRyZWUtaXRlbSIpLmZvckVhY2goZnVuY3Rpb24oaSl7aS5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGxvKGEuY2xpZW50WCxhLmNsaWVudFksaSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKGEpe249ITEsdD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bj0hMDt2YXIgdT1hLnRvdWNoZXMmJmEudG91Y2hlc1swXTtsbyh1P3UuY2xpZW50WDowLHU/dS5jbGllbnRZOjAsaSl9LDUwMCl9LHtwYXNzaXZlOiEwfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZnVuY3Rpb24oKXt0JiYoY2xlYXJUaW1lb3V0KHQpLHQ9bnVsbCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsZnVuY3Rpb24oKXt0JiYoY2xlYXJUaW1lb3V0KHQpLHQ9bnVsbCl9KX0pfX1mdW5jdGlvbiBXZChlKXt2YXIgdD1lLmRhdGFzZXQucGF0aCxuPWUucXVlcnlTZWxlY3RvcigiLnRyZWUtdG9nZ2xlIiksaT1lLm5leHRFbGVtZW50U2libGluZztpZihpJiZpLmNsYXNzTGlzdC5jb250YWlucygidHJlZS1jaGlsZHJlbiIpKXt2YXIgYT1pLmNsYXNzTGlzdC5jb250YWlucygib3BlbiIpO2kuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIpLG4mJm4uY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsIWEpO3ZhciB1PWUucXVlcnlTZWxlY3RvcigiLnRyZWUtaWNvbiIpO3UmJih1LnRleHRDb250ZW50PWE/Ilx1ezFGNEMxfSI6Ilx1ezFGNEMyfSIpO3JldHVybn1uJiZuLmNsYXNzTGlzdC5hZGQoIm9wZW4iKTt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLWljb24iKTtvJiYoby50ZXh0Q29udGVudD0iXHV7MUY0QzJ9Iik7dmFyIHM9Ii9hcGkvZGlyZWN0b3J5P3E9IitlbmNvZGVVUklDb21wb25lbnQodCkrIiZnaXRTdGF0dXM9dHJ1ZSI7ZmV0Y2gocyx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwuanNvbigpfSkudGhlbihmdW5jdGlvbihsKXt2YXIgZDtBcnJheS5pc0FycmF5KGwpP2Q9bDpkPWwmJmwuaXRlbXN8fFtdO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2YuY2xhc3NOYW1lPSJ0cmVlLWNoaWxkcmVuIG9wZW4iLCFkfHxkLmxlbmd0aD09PTA/Zi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InRyZWUtaXRlbSIgc3R5bGU9ImNvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpkZWZhdWx0OyI+PHNwYW4gY2xhc3M9InRyZWUtdG9nZ2xlIGVtcHR5Ij5cdTI1Qjg8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtbmFtZSI+XHVGRjA4XHU3QTdBXHU3NkVFXHU1RjU1XHVGRjA5PC9zcGFuPjwvZGl2Pic6Zi5pbm5lckhUTUw9ZC5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIG9vKGMpfSkuam9pbigiIiksZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShmLGUubmV4dFNpYmxpbmcpLHNvKCl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIHpkKCl7dmFyIGU9YW8oKTtpZihlKXt2YXIgdD1lLnJlcGxhY2UoL1wvKyQvLCIiKS5yZXBsYWNlKC9cL1teXC9dKyQvLCIiKTt0fHwodD0iLyIpLHQhPT1lJiZMdCh7Y3dkOnR9KX19ZnVuY3Rpb24gdmEoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKCF0KXJldHVybiExO3ZhciBuPXQudmFsdWV8fCIiLGk9biYmIW4uZW5kc1dpdGgoIiAiKSYmIW4uZW5kc1dpdGgoYApgKT8iICI6IiI7dC52YWx1ZT1uK2krZSx0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSk7dHJ5e3QuZm9jdXMoKSx0LnNldFNlbGVjdGlvblJhbmdlKHQudmFsdWUubGVuZ3RoLHQudmFsdWUubGVuZ3RoKX1jYXRjaHt9cmV0dXJuITB9ZnVuY3Rpb24gcmkoZSl7aWYobmF2aWdhdG9yLmNsaXBib2FyZCYmbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQpcmV0dXJuIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4hMH0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHQoKX0pO3JldHVybiBQcm9taXNlLnJlc29sdmUodCgpKTtmdW5jdGlvbiB0KCl7dHJ5e3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRleHRhcmVhIik7bi52YWx1ZT1lLG4uc3R5bGUucG9zaXRpb249ImZpeGVkIixuLnN0eWxlLmxlZnQ9Ii05OTk5cHgiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobiksbi5zZWxlY3QoKTt2YXIgaT1kb2N1bWVudC5leGVjQ29tbWFuZCgiY29weSIpO3JldHVybiBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKG4pLGl9Y2F0Y2h7cmV0dXJuITF9fX1mdW5jdGlvbiBFdChlKXtpZih0eXBlb2Ygd2luZG93LnNob3dUb2FzdD09ImZ1bmN0aW9uIil7d2luZG93LnNob3dUb2FzdChlKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5jbGFzc05hbWU9IndhbmQtbWluaS10b2FzdCIsdC50ZXh0Q29udGVudD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksc2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LmFkZCgic2hvdyIpfSwxMCksc2V0VGltZW91dChmdW5jdGlvbigpe3QuY2xhc3NMaXN0LnJlbW92ZSgic2hvdyIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnJlbW92ZSgpfSwyMjApfSwxNjAwKX1mdW5jdGlvbiBSbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWNvbnRleHQtbWVudSIpO2UmJmUucmVtb3ZlKCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLFJuLCEwKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLFJuLCEwKX1mdW5jdGlvbiBsbyhlLHQsbil7Um4oKTt2YXIgaT1uLmRhdGFzZXQucGF0aHx8IiIsYT1uLmRhdGFzZXQudHlwZXx8ImZpbGUiLHU9ci5maWxlRXhwbG9yZXJDd2R8fCIiLG89aTt1JiZpLmluZGV4T2YodSk9PT0wJiYobz1pLnNsaWNlKHUubGVuZ3RoKS5yZXBsYWNlKC9eXC8rLywiIil8fCIuIik7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5pZD0iZmlsZS1jb250ZXh0LW1lbnUiLHMuY2xhc3NOYW1lPSJmaWxlLWNvbnRleHQtbWVudSI7dmFyIGw9W107YT09PSJmaWxlIj9sLnB1c2goe2xhYmVsOiJcdTYyNTNcdTVGMDBcdTk4ODRcdTg5QzgiLGljb246Ilx1ezFGNDQxfSIscnVuOmZ1bmN0aW9uKCl7aWkoaSl9fSk6bC5wdXNoKHtsYWJlbDoiXHU4RkRCXHU1MTY1XHU2QjY0XHU3NkVFXHU1RjU1IixpY29uOiJcdXsxRjRDMn0iLHJ1bjpmdW5jdGlvbigpe0x0KHtjd2Q6aX0pfX0pLGwucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NUI4Q1x1NjU3NFx1OERFRlx1NUY4NCIsaWNvbjoiXHV7MUY0Q0J9IixydW46ZnVuY3Rpb24oKXtyaShpKS50aGVuKGZ1bmN0aW9uKCl7RXQoIlx1NURGMlx1NTkwRFx1NTIzNlx1OERFRlx1NUY4NCIpfSl9fSksbyYmbyE9PWkmJmwucHVzaCh7bGFiZWw6Ilx1NTkwRFx1NTIzNlx1NzZGOFx1NUJGOVx1OERFRlx1NUY4NCIsaWNvbjoiXHV7MUY0Q0J9IixydW46ZnVuY3Rpb24oKXtyaShvKS50aGVuKGZ1bmN0aW9uKCl7RXQoIlx1NURGMlx1NTkwRFx1NTIzNlx1NzZGOFx1NUJGOVx1OERFRlx1NUY4NCIpfSl9fSksbC5wdXNoKHtsYWJlbDoiXHU3Qzk4XHU4RDM0XHU4REVGXHU1Rjg0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2IixpY29uOiJcdTI3MEZcdUZFMEYiLHJ1bjpmdW5jdGlvbigpe3ZhKGkpJiZFdCgiXHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9fSksYT09PSJmaWxlIiYmbC5wdXNoKHtsYWJlbDoiXHU0RTBCXHU4RjdEXHU2NTg3XHU0RUY2IixpY29uOiJcdTJCMDciLHJ1bjpmdW5jdGlvbigpe3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtnLmhyZWY9Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KGkpLGcucmVsPSJub29wZW5lciIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChnKSxnLmNsaWNrKCksZy5yZW1vdmUoKX19KSxzLmlubmVySFRNTD1sLm1hcChmdW5jdGlvbihnLG0pe3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImZpbGUtY29udGV4dC1tZW51LWl0ZW0iIGRhdGEtaWR4PSInK20rJyI+PHNwYW4gY2xhc3M9ImN0eC1pY29uIj4nK2cuaWNvbisnPC9zcGFuPjxzcGFuIGNsYXNzPSJjdHgtbGFiZWwiPicrcChnLmxhYmVsKSsiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHMpO3ZhciBkPXdpbmRvdy5pbm5lcldpZHRoLGY9d2luZG93LmlubmVySGVpZ2h0LGM9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx2PU1hdGgubWluKGUsZC1jLndpZHRoLTgpLGg9TWF0aC5taW4odCxmLWMuaGVpZ2h0LTgpO3Muc3R5bGUubGVmdD1NYXRoLm1heCg4LHYpKyJweCIscy5zdHlsZS50b3A9TWF0aC5tYXgoOCxoKSsicHgiLHMucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtY29udGV4dC1tZW51LWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2cuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG0pe20uc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHk9cGFyc2VJbnQoZy5kYXRhc2V0LmlkeCwxMCk7Um4oKSxsW3ldJiZsW3ldLnJ1bigpfSl9KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFJuLCEwKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLFJuLCEwKX0sMCl9dmFyIF89bnVsbDtmdW5jdGlvbiBpaShlKXt2YXIgdD1fJiZfLm92ZXJsYXk7aWYodCl7Xy5wYXRoPWUsXy5lZGl0aW5nPSExLF8uZGlydHk9ITE7dmFyIG89dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRpdGxlIik7byYmKG8uaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWljb24iPlx1ezFGNEM0fTwvc3Bhbj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbmFtZS1ibG9jayI+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtcm93Ij48c3BhbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWZpbGVuYW1lIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L3NwYW4+PC9kaXY+JytndCgiIiwiZmlsZS1wcmV2aWV3LXBhdGgiKSsiPC9kaXY+Iik7dmFyIHM9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXIiKTtzJiYocy5pbm5lckhUTUw9IiIpO3ZhciBsPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1wYXRoIik7SHUobCwiIik7dmFyIGQ9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtkJiYoZC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTIwMjY8L2Rpdj4nKX1lbHNle3Q9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1vdmVybGF5Iix0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW1vZGFsIiB0YWJpbmRleD0iLTEiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1oZWFkZXIiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy10aXRsZSI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1pY29uIj5cdXsxRjRDNH08L3NwYW4+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2siPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLXJvdyI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1maWxlbmFtZSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9zcGFuPjwvZGl2PicrZ3QoIiIsImZpbGUtcHJldmlldy1wYXRoIikrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy10b29sYmFyIj48L2Rpdj48YnV0dG9uIGNsYXNzPSJmaWxlLXByZXZpZXctY2xvc2UiIHRpdGxlPSJcdTUxNzNcdTk1RUQgKEVzYykiIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+JytNZSgieCIse3NpemU6MTh9KSsnPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LWJvZHkiPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTIwMjY8L2Rpdj48L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCk7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWNsb3NlIiksaT1mdW5jdGlvbigpe2lmKF8mJl8uZGlydHkmJnR5cGVvZiBvbj09ImZ1bmN0aW9uIil7b24oe3R5cGU6Indhcm5pbmciLHRpdGxlOiJcdTY1M0VcdTVGMDNcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTRGRUVcdTY1MzlcdUZGMUYiLG1lc3NhZ2U6Ilx1NUY1M1x1NTI0RFx1NjU4N1x1NEVGNlx1NjcwOVx1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NjUzOVx1NTJBOFx1RkYwQ1x1NTE3M1x1OTVFRFx1NTQwRVx1NEYxQVx1NEUyMlx1NTkzMVx1MzAwMiIsYnV0dG9uczpbe2xhYmVsOiJcdTdFRTdcdTdFRURcdTdGMTZcdThGOTEiLHZhbHVlOiExLGtpbmQ6Imdob3N0In0se2xhYmVsOiJcdTY1M0VcdTVGMDNcdTRGRUVcdTY1MzkiLHZhbHVlOiEwLGtpbmQ6ImRhbmdlciIsYXV0b2ZvY3VzOiEwfV0sY2FuY2VsVmFsdWU6ITF9KS50aGVuKGZ1bmN0aW9uKGMpe2MmJmEoKX0pO3JldHVybn1hKCl9LGE9ZnVuY3Rpb24oKXt0LnJlbW92ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUpLF89bnVsbH07bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaSksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYyl7Yy50YXJnZXQ9PT10JiZpKCl9KTt2YXIgdT1mdW5jdGlvbihjKXtpZigoYy5rZXk9PT0icyJ8fGMua2V5PT09IlMiKSYmKGMuY3RybEtleXx8Yy5tZXRhS2V5KSYmXyYmXy5lZGl0aW5nKXtjLnByZXZlbnREZWZhdWx0KCksZ28oKTtyZXR1cm59aWYoYy5rZXk9PT0iRXNjYXBlIil7aWYoXyYmXy5lZGl0aW5nKXtjLnByZXZlbnREZWZhdWx0KCksbW8oKTtyZXR1cm59aSgpO3JldHVybn1fJiYoYy50YXJnZXQmJihjLnRhcmdldC50YWdOYW1lPT09IklOUFVUInx8Yy50YXJnZXQudGFnTmFtZT09PSJURVhUQVJFQSIpfHxfLmVkaXRpbmd8fChjLmtleT09PSJBcnJvd0xlZnQiPyhjLnByZXZlbnREZWZhdWx0KCksY28oLTEpKTpjLmtleT09PSJBcnJvd1JpZ2h0IiYmKGMucHJldmVudERlZmF1bHQoKSxjbygxKSkpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsdSksXz17b3ZlcmxheTp0LGNsb3NlOmkscGF0aDplLGRhdGE6bnVsbCxlZGl0aW5nOiExLGRpcnR5OiExfX12YXIgZj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctcGF0aCIpO0h1KGYsZSksZmV0Y2goIi9hcGkvZmlsZS1wcmV2aWV3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGMpe3JldHVybiBjLmpzb24oKS50aGVuKGZ1bmN0aW9uKHYpe3JldHVybntvazpjLm9rLHN0YXR1czpjLnN0YXR1cyxkYXRhOnZ9fSl9KS50aGVuKGZ1bmN0aW9uKGMpe3ZhciB2PXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7aWYoIWMub2t8fGMuZGF0YSYmYy5kYXRhLmVycm9yKXt2YXIgaD1jLmRhdGEmJmMuZGF0YS5lcnJvcnx8Ilx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSI7Yy5zdGF0dXM9PT00MTMmJmMuZGF0YSYmYy5kYXRhLnNpemUmJihoKz0iXHVGRjA4XHU2NTg3XHU0RUY2XHU1OTI3XHU1QzBGXHVGRjFBIitqbihjLmRhdGEuc2l6ZSkrIlx1RkYwOSIpLHYuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj4nK3AoaCkrIjwvc3Bhbj48L2Rpdj4iLGMuc3RhdHVzPT09NDEzJiZtYSh0LHtraW5kOiJiaW5hcnkiLHBhdGg6ZSxuYW1lOmUuc3BsaXQoIi8iKS5wb3AoKXx8ZSxleHQ6IiIsc2l6ZTpjLmRhdGEmJmMuZGF0YS5zaXplfHwwfSk7cmV0dXJufV8uZGF0YT1jLmRhdGEsZm8odCxjLmRhdGEpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYz10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2MuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTU5MzFcdThEMjU8L3NwYW4+PC9kaXY+J30pfWZ1bmN0aW9uIGNvKGUpe2lmKF8pe3ZhciB0PShyLmFsbEZpbGVzfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiBzLnR5cGU9PT0iZmlsZSJ9KTtpZih0Lmxlbmd0aCl7Zm9yKHZhciBuPV8ucGF0aCxpPS0xLGE9MDthPHQubGVuZ3RoO2ErKylpZih0W2FdLnBhdGg9PT1uKXtpPWE7YnJlYWt9aWYoIShpPDApKXt2YXIgdT0oaStlK3QubGVuZ3RoKSV0Lmxlbmd0aCxvPXRbdV0ucGF0aDtvJiZvIT09biYmaWkobyl9fX19ZnVuY3Rpb24gZm8oZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctZmlsZW5hbWUiKTtuJiYobi50ZXh0Q29udGVudD10Lm5hbWUpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1pY29uIik7aSYmKGkudGV4dENvbnRlbnQ9aW8oe25hbWU6dC5uYW1lLHR5cGU6ImZpbGUifSkpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpLHU9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWxhbmciKTt1JiZ1LnJlbW92ZSgpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtvLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LWxhbmciO3ZhciBzPXtpbWFnZToiXHU1NkZFXHU3MjQ3IixwZGY6IlBERiIsdmlkZW86Ilx1ODlDNlx1OTg5MSIsYXVkaW86Ilx1OTdGM1x1OTg5MSIsYmluYXJ5OiJcdTRFOENcdThGREJcdTUyMzYifTt0LmtpbmQ9PT0idGV4dCI/by50ZXh0Q29udGVudD10Lmxhbmd8fCh0LmV4dHx8IiIpLnJlcGxhY2UoIi4iLCIiKXx8InRleHQiOm8udGV4dENvbnRlbnQ9c1t0LmtpbmRdfHwodC5leHR8fCIiKS5yZXBsYWNlKCIuIiwiIil8fHQua2luZCxhJiZhLmFwcGVuZENoaWxkKG8pLG1hKGUsdCk7dmFyIGw9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtsLmlubmVySFRNTD0iIixsLmNsYXNzTGlzdC5yZW1vdmUoImtpbmQtdGV4dCIsImtpbmQtaW1hZ2UiLCJraW5kLXBkZiIsImtpbmQtdmlkZW8iLCJraW5kLWF1ZGlvIiwia2luZC1iaW5hcnkiKSxsLmNsYXNzTGlzdC5hZGQoImtpbmQtIisodC5raW5kfHwidGV4dCIpKSx0LmtpbmQ9PT0iaW1hZ2UiP1VkKGwsdCk6dC5raW5kPT09InBkZiI/S2QobCx0KTp0LmtpbmQ9PT0idmlkZW8iP0pkKGwsdCk6dC5raW5kPT09ImF1ZGlvIj9ZZChsLHQpOnQua2luZD09PSJiaW5hcnkiP0dkKGwsdCk6dC5sYW5nPT09Im1hcmtkb3duInx8L1wuKG1kfG1hcmtkb3dufG1keCkkL2kudGVzdCh0Lm5hbWV8fCIiKT9sLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+JytaZCh0LmNvbnRlbnR8fCIiKSsiPC9kaXY+IjpWZChsLHQpfWZ1bmN0aW9uIFZkKGUsdCl7dmFyIG49eW8odC5jb250ZW50fHwiIix0LmxhbmcpLGk9bi5zcGxpdChgCmApLGE9aS5tYXAoZnVuY3Rpb24odSxvKXtyZXR1cm4gbysxfSk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy13cmFwcGVyIj48ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctbGluZXMiPicrYS5qb2luKGAKYCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy1jb250ZW50Ij48cHJlPicraS5qb2luKGAKYCkrIjwvcHJlPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gVWQoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImltYWdlLXByZXZpZXctd3JhcHBlciI+PGltZyBjbGFzcz0iaW1hZ2UtcHJldmlldy1pbWciIHNyYz0iJytuKyciIGFsdD0iJytwKHQubmFtZSkrJyIgLz48L2Rpdj4nO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLXByZXZpZXctaW1nIik7aWYoaSl7dmFyIGE9ITE7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthPSFhLGkuY2xhc3NMaXN0LnRvZ2dsZSgiem9vbWVkIixhKX0pfX1mdW5jdGlvbiBLZChlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGlmcmFtZSBjbGFzcz0icGRmLXByZXZpZXctZnJhbWUiIHNyYz0iJytuKyciIHRpdGxlPSInK3AodC5uYW1lKSsnIj48L2lmcmFtZT4nfWZ1bmN0aW9uIEpkKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIiPjx2aWRlbyBjbGFzcz0ibWVkaWEtcHJldmlldy12aWRlbyIgY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHNyYz0iJytuKyciPlx1NjBBOFx1NzY4NFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUwRFx1NjUyRlx1NjMwMSB2aWRlbyBcdTY4MDdcdTdCN0VcdTMwMDI8L3ZpZGVvPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbWV0YSI+JytwKGpuKHQuc2l6ZSkpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIFlkKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIgYXVkaW8iPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctaWNvbiI+XHV7MUYzQjV9PC9kaXY+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1uYW1lIj4nK3AodC5uYW1lKSsnPC9kaXY+PGF1ZGlvIGNsYXNzPSJtZWRpYS1wcmV2aWV3LWF1ZGlvIiBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3JjPSInK24rJyI+XHU2MEE4XHU3Njg0XHU2RDRGXHU4OUM4XHU1NjY4XHU0RTBEXHU2NTJGXHU2MzAxIGF1ZGlvIFx1NjgwN1x1N0I3RVx1MzAwMjwvYXVkaW8+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1tZXRhIj4nK3Aoam4odC5zaXplKSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gR2QoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9kb3dubG9hZD0xJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctY2FyZCI+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctaWNvbiI+XHV7MUY0RTZ9PC9kaXY+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctbmFtZSI+JytwKHQubmFtZSkrJzwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LW1ldGEiPjxzcGFuPicrcCgodC5leHR8fCIiKS5yZXBsYWNlKC9eXC4vLCIiKXx8Ilx1NjcyQVx1NzdFNVx1NjgzQ1x1NUYwRiIpKyI8L3NwYW4+PHNwYW4+XHhCNzwvc3Bhbj48c3Bhbj4iK3Aoam4odC5zaXplKSkrIjwvc3Bhbj48L2Rpdj4iK2d0KHQucGF0aCwiYmluYXJ5LXByZXZpZXctcGF0aCIpKyc8ZGl2IGNsYXNzPSJiaW5hcnktcHJldmlldy1hY3Rpb25zIj48YSBjbGFzcz0iYmluYXJ5LXByZXZpZXctYnRuIiBocmVmPSInK24rJyIgZG93bmxvYWQ9IicrcCh0Lm5hbWUpKyciPlx1NEUwQlx1OEY3RFx1NjU4N1x1NEVGNjwvYT48YnV0dG9uIGNsYXNzPSJiaW5hcnktcHJldmlldy1idG4iIHR5cGU9ImJ1dHRvbiIgZGF0YS1hY3Rpb249InZpZXctY2F0Ij5cdTU3MjhcdTdFQzhcdTdBRUZcdTRFMkRcdTY3RTVcdTc3MEI8L2J1dHRvbj48L2Rpdj48L2Rpdj4nLGp0KGUpO3ZhciBpPWUucXVlcnlTZWxlY3RvcignW2RhdGEtYWN0aW9uPSJ2aWV3LWNhdCJdJyk7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YSgnY2F0IC0tICInK3QucGF0aCsnIicpJiZFdCgiXHU1NDdEXHU0RUU0XHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9KX1mdW5jdGlvbiBtYShlLHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7aWYobil7aWYobi5pbm5lckhUTUw9IiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksXyYmXy5lZGl0aW5nKXtuLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKSxmcihlLHQpO3JldHVybn12YXIgaT1bXTt0LmtpbmQ9PT0idGV4dCImJmkucHVzaCh7bGFiZWw6Ilx1N0YxNlx1OEY5MVx1NjU4N1x1NEVGNiAoRSkiLGljb246TWUoImVkaXQiKSxwcmltYXJ5OiEwLGFjdGlvbjpmdW5jdGlvbigpe1FkKCl9fSksaS5wdXNoKHtsYWJlbDoiXHU1OTBEXHU1MjM2XHU4REVGXHU1Rjg0IixpY29uOk1lKCJjbGlwYm9hcmQiKSxhY3Rpb246ZnVuY3Rpb24oKXtyaSh0LnBhdGgpLnRoZW4oZnVuY3Rpb24oKXtFdCgiXHU1REYyXHU1OTBEXHU1MjM2XHU4REVGXHU1Rjg0Iil9KX19KSxpLnB1c2goe2xhYmVsOiJcdTdDOThcdThEMzRcdTUyMzBcdThGOTNcdTUxNjVcdTY4NDYiLGljb246TWUoInNlbmQtdG8taW5wdXQiKSxhY3Rpb246ZnVuY3Rpb24oKXt2YSh0LnBhdGgpJiZFdCgiXHU1REYyXHU3Qzk4XHU4RDM0XHU1MjMwXHU4RjkzXHU1MTY1XHU2ODQ2Iil9fSksaS5wdXNoKHtsYWJlbDoiXHU0RTBCXHU4RjdEIixpY29uOk1lKCJkb3dubG9hZCIpLGFjdGlvbjpmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTthLmhyZWY9Ii9hcGkvZmlsZS1yYXc/ZG93bmxvYWQ9MSZwYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCksYS5kb3dubG9hZD10Lm5hbWV8fCIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksYS5jbGljaygpLGEucmVtb3ZlKCl9fSksdC5raW5kPT09InRleHQiJiYoaS5wdXNoKHtsYWJlbDoiXHU1OTBEXHU1MjM2XHU1MTY4XHU5MEU4XHU1MTg1XHU1QkI5IixpY29uOk1lKCJjb3B5IiksYWN0aW9uOmZ1bmN0aW9uKCl7cmkodC5jb250ZW50fHwiIikudGhlbihmdW5jdGlvbigpe0V0KCJcdTVERjJcdTU5MERcdTUyMzZcdTUxODVcdTVCQjkiKX0pfX0pLGkucHVzaCh7bGFiZWw6Ilx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjM2Mlx1ODg0QyIsaWNvbjpNZSgid3JhcC10ZXh0IiksdG9nZ2xlQ2xhc3M6InRvb2xiYXItYWN0aXZlIixnZXRJbml0aWFsOmZ1bmN0aW9uKCl7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlIik7cmV0dXJuIGEmJmEuY2xhc3NMaXN0LmNvbnRhaW5zKCJ3cmFwIil9LGFjdGlvbjpmdW5jdGlvbihhKXt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctY29udGVudCBwcmUiKTt1JiYodS5jbGFzc0xpc3QudG9nZ2xlKCJ3cmFwIiksYS5jbGFzc0xpc3QudG9nZ2xlKCJ0b29sYmFyLWFjdGl2ZSIsdS5jbGFzc0xpc3QuY29udGFpbnMoIndyYXAiKSkpfX0pLGkucHVzaCh7a2luZDoiZ3JvdXAiLGNsYXNzTmFtZToidG9vbGJhci1ncm91cC1mb250c2l6ZSIsY2hpbGRyZW46W3tsYWJlbDoiXHU3RjI5XHU1QzBGXHU1QjU3XHU1M0Y3IixpY29uOk1lKCJtaW51cyIpLGFjdGlvbjpmdW5jdGlvbigpe2hvKGUsLTEpfX0se2tpbmQ6ImxhYmVsIixpY29uOk1lKCJ0eXBlIiksbGFiZWw6Ilx1NUI1N1x1NTNGNyJ9LHtsYWJlbDoiXHU2NTNFXHU1OTI3XHU1QjU3XHU1M0Y3IixpY29uOk1lKCJwbHVzIiksYWN0aW9uOmZ1bmN0aW9uKCl7aG8oZSwxKX19XX0pKSxwbyhuLGksZSl9fWZ1bmN0aW9uIHBvKGUsdCxuKXt0LmZvckVhY2goZnVuY3Rpb24oaSl7aWYoaS5raW5kPT09Imdyb3VwIil7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9ImZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwIisoaS5jbGFzc05hbWU/IiAiK2kuY2xhc3NOYW1lOiIiKSxpLmNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24odSl7aWYodS5raW5kPT09ImxhYmVsIil7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO28uY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctdG9vbGJhci1ncm91cGxhYmVsIixvLnRpdGxlPXUubGFiZWx8fCIiLG8uaW5uZXJIVE1MPXUuaWNvbnx8IiIsYS5hcHBlbmRDaGlsZChvKTtyZXR1cm59YS5hcHBlbmRDaGlsZCh2byh1KSl9KSxlLmFwcGVuZENoaWxkKGEpO3JldHVybn1lLmFwcGVuZENoaWxkKHZvKGkpKX0pfWZ1bmN0aW9uIHZvKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO3JldHVybiB0LnR5cGU9ImJ1dHRvbiIsdC5jbGFzc05hbWU9ImZpbGUtcHJldmlldy10b29sYmFyLWJ0biIsZS5wcmltYXJ5JiZ0LmNsYXNzTGlzdC5hZGQoInByaW1hcnkiKSxlLmRhbmdlciYmdC5jbGFzc0xpc3QuYWRkKCJkYW5nZXIiKSx0LnRpdGxlPWUubGFiZWwsdC5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGUubGFiZWwpLHQuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0idG9vbGJhci1pY29uIj4nKyhlLmljb258fCIiKSsiPC9zcGFuPiIrKGUudGV4dD8nPHNwYW4gY2xhc3M9InRvb2xiYXItdGV4dCI+JytwKGUudGV4dCkrIjwvc3Bhbj4iOiIiKSxlLmdldEluaXRpYWwmJmUuZ2V0SW5pdGlhbCgpJiZ0LmNsYXNzTGlzdC5hZGQoInRvb2xiYXItYWN0aXZlIiksdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obil7bi5zdG9wUHJvcGFnYXRpb24oKSx0eXBlb2YgZS5hY3Rpb249PSJmdW5jdGlvbiImJmUuYWN0aW9uKHQpfSksdH1mdW5jdGlvbiBmcihlLHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7aWYobil7bi5pbm5lckhUTUw9IiI7dmFyIGk9XyYmXy5zYXZpbmcsYT1be2xhYmVsOiJcdTRGRERcdTVCNTggKEN0cmwrUykiLGljb246TWUoInNhdmUiKSx0ZXh0OiJcdTRGRERcdTVCNTgiLHByaW1hcnk6ITAsYWN0aW9uOmZ1bmN0aW9uKCl7Z28oKX19LHtsYWJlbDoiXHU2NEE0XHU5NTAwXHU2NTM5XHU1MkE4IixpY29uOk1lKCJyb3RhdGUtY2N3IiksYWN0aW9uOmZ1bmN0aW9uKCl7JGQoKX19LHtsYWJlbDoiXHU5MDAwXHU1MUZBXHU3RjE2XHU4RjkxIChFc2MpIixpY29uOk1lKCJ4IiksYWN0aW9uOmZ1bmN0aW9uKCl7bW8oKX19XTtwbyhuLGEsZSksaSYmbi5xdWVyeVNlbGVjdG9yQWxsKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIikuZm9yRWFjaChmdW5jdGlvbih1KXt1LmRpc2FibGVkPSEwfSl9fWZ1bmN0aW9uIFFkKCl7aWYoISghX3x8IV8uZGF0YSkpe3ZhciBlPV8uZGF0YTtpZihlLmtpbmQ9PT0idGV4dCIpe18uZWRpdGluZz0hMCxfLmRpcnR5PSExLF8ub3JpZ2luYWxDb250ZW50PWUuY29udGVudHx8IiI7dmFyIHQ9Xy5vdmVybGF5LG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtpZihuKXtuLmNsYXNzTGlzdC5hZGQoImVkaXRpbmciKSxuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iY29kZS1lZGl0b3Itd3JhcHBlciI+PHRleHRhcmVhIGNsYXNzPSJjb2RlLWVkaXRvci10ZXh0YXJlYSIgc3BlbGxjaGVjaz0iZmFsc2UiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiB3cmFwPSJvZmYiPjwvdGV4dGFyZWE+PC9kaXY+Jzt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO2kmJihpLnZhbHVlPWUuY29udGVudHx8IiIsaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXt2YXIgYT1pLnZhbHVlIT09KF8ub3JpZ2luYWxDb250ZW50fHwiIik7YSE9PV8uZGlydHkmJihfLmRpcnR5PWEscHIoKSl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGEpe2lmKGEua2V5PT09IlRhYiIpe2EucHJldmVudERlZmF1bHQoKTt2YXIgdT1pLnNlbGVjdGlvblN0YXJ0LG89aS5zZWxlY3Rpb25FbmQscz0iICAiO2kudmFsdWU9aS52YWx1ZS5zbGljZSgwLHUpK3MraS52YWx1ZS5zbGljZShvKSxpLnNlbGVjdGlvblN0YXJ0PWkuc2VsZWN0aW9uRW5kPXUrcy5sZW5ndGgsaS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiKSl9fSksc2V0VGltZW91dChmdW5jdGlvbigpe2kuZm9jdXMoKSxpLnNldFNlbGVjdGlvblJhbmdlKDAsMCksaS5zY3JvbGxUb3A9MH0sMzApKSxtYSh0LGUpLHByKCl9fX19ZnVuY3Rpb24gbW8oKXtpZighKCFffHwhXy5lZGl0aW5nKSl7dmFyIGU9ZnVuY3Rpb24oKXtfLmVkaXRpbmc9ITEsXy5kaXJ0eT0hMTt2YXIgdD1fLm92ZXJsYXksbj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO24mJm4uY2xhc3NMaXN0LnJlbW92ZSgiZWRpdGluZyIpLGZvKHQsXy5kYXRhKSxwcigpfTtpZihfLmRpcnR5JiZ0eXBlb2Ygb249PSJmdW5jdGlvbiIpe29uKHt0eXBlOiJ3YXJuaW5nIix0aXRsZToiXHU2NTNFXHU1RjAzXHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5XHVGRjFGIixtZXNzYWdlOiJcdTVGNTNcdTUyNERcdTY1ODdcdTRFRjZcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTY1MzlcdTUyQThcdUZGMENcdTkwMDBcdTUxRkFcdTdGMTZcdThGOTFcdTU0MEVcdTRGMUFcdTRFMjJcdTU5MzFcdTMwMDIiLGJ1dHRvbnM6W3tsYWJlbDoiXHU3RUU3XHU3RUVEXHU3RjE2XHU4RjkxIix2YWx1ZTohMSxraW5kOiJnaG9zdCJ9LHtsYWJlbDoiXHU2NTNFXHU1RjAzXHU0RkVFXHU2NTM5Iix2YWx1ZTohMCxraW5kOiJkYW5nZXIiLGF1dG9mb2N1czohMH1dLGNhbmNlbFZhbHVlOiExfSkudGhlbihmdW5jdGlvbih0KXt0JiZlKCl9KTtyZXR1cm59ZSgpfX1mdW5jdGlvbiAkZCgpe2lmKCEoIV98fCFfLmVkaXRpbmcpKXt2YXIgZT1fLm92ZXJsYXksdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO3QmJih0LnZhbHVlPV8ub3JpZ2luYWxDb250ZW50fHwiIixfLmRpcnR5PSExLHByKCksdC5mb2N1cygpKX19ZnVuY3Rpb24gZ28oKXtpZighKCFffHwhXy5lZGl0aW5nKSYmIV8uc2F2aW5nKXt2YXIgZT1fLm92ZXJsYXksdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLWVkaXRvci10ZXh0YXJlYSIpO2lmKHQpe3ZhciBuPXQudmFsdWU7aWYobj09PShfLm9yaWdpbmFsQ29udGVudHx8IiIpKXtFdCgiXHU2Q0ExXHU2NzA5XHU2NTM5XHU1MkE4Iik7cmV0dXJufV8uc2F2aW5nPSEwLGZyKGUsXy5kYXRhKSxmZXRjaCgiL2FwaS9maWxlLXdyaXRlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7cGF0aDpfLnBhdGgsY29udGVudDpufSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybntvazppLm9rLHN0YXR1czppLnN0YXR1cyxkYXRhOmF9fSl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKF8uc2F2aW5nPSExLCFpLm9rfHxpLmRhdGEmJmkuZGF0YS5lcnJvcil7dmFyIGE9aS5kYXRhJiZpLmRhdGEuZXJyb3J8fCJcdTRGRERcdTVCNThcdTU5MzFcdThEMjUgKCIraS5zdGF0dXMrIikiO0V0KGEpLGZyKGUsXy5kYXRhKTtyZXR1cm59aWYoXy5kYXRhLmNvbnRlbnQ9bixfLmRhdGEuc2l6ZT1pLmRhdGEmJmkuZGF0YS5zaXplfHxuLmxlbmd0aCxfLm9yaWdpbmFsQ29udGVudD1uLF8uZGlydHk9ITEsRXQoIlx1NURGMlx1NEZERFx1NUI1OCIpLHByKCksZnIoZSxfLmRhdGEpLHR5cGVvZiBMdD09ImZ1bmN0aW9uIil0cnl7THQoKX1jYXRjaHt9fSkuY2F0Y2goZnVuY3Rpb24oaSl7Xy5zYXZpbmc9ITEsRXQoIlx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNVx1RkYxQSIrKGkmJmkubWVzc2FnZT9pLm1lc3NhZ2U6Ilx1N0Y1MVx1N0VEQ1x1OTUxOVx1OEJFRiIpKSxmcihlLF8uZGF0YSl9KX19fWZ1bmN0aW9uIHByKCl7aWYoXyl7dmFyIGU9Xy5vdmVybGF5O2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1uYW1lLXJvdyIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1kaXJ0eSIpO2lmKF8uZGlydHkpe2lmKCFuKXt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7aS5jbGFzc05hbWU9ImZpbGUtcHJldmlldy1kaXJ0eSIsaS50aXRsZT0iXHU2NzA5XHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5IixpLnRleHRDb250ZW50PSJcdTI1Q0YgXHU2NzJBXHU0RkREXHU1QjU4Iix0LmFwcGVuZENoaWxkKGkpfX1lbHNlIG4mJm4ucmVtb3ZlKCl9fX19ZnVuY3Rpb24gaG8oZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctY29udGVudCBwcmUiKSxpPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1saW5lcyIpO2lmKG4pe3ZhciBhPXBhcnNlRmxvYXQoZ2V0Q29tcHV0ZWRTdHlsZShuKS5mb250U2l6ZSl8fDEzLHU9TWF0aC5tYXgoMTAsTWF0aC5taW4oMjIsYSt0KSk7bi5zdHlsZS5mb250U2l6ZT11KyJweCIsaSYmKGkuc3R5bGUuZm9udFNpemU9dSsicHgiKX19ZnVuY3Rpb24geW8oZSx0KXt2YXIgbj1lLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKSxpPVhkKCk7aWYoIWkpcmV0dXJuIG47dmFyIGE9W107Zm9yKHZhciB1IGluIGkpe3ZhciBvPWlbdV07byYmby5wYXR0ZXJuJiZhLnB1c2goe3BhdHRlcm46by5wYXR0ZXJuLGNsczpvLmNscyxwcmlvcml0eTpvLnByaW9yaXR5fHw1fSl9YS5zb3J0KGZ1bmN0aW9uKGQsZil7cmV0dXJuIGYucHJpb3JpdHktZC5wcmlvcml0eX0pO3ZhciBzPWEubWFwKGZ1bmN0aW9uKGQpe3JldHVybiIoIitkLnBhdHRlcm4uc291cmNlKyIpIn0pLGw9bmV3IFJlZ0V4cChzLmpvaW4oInwiKSwiZ20iKTtyZXR1cm4gbi5yZXBsYWNlKGwsZnVuY3Rpb24oZCl7Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspe3ZhciBjPWFbZl0sdj1uZXcgUmVnRXhwKCJeIitjLnBhdHRlcm4uc291cmNlKyIkIiwiZ20iKTtpZih2LnRlc3QoZCkpcmV0dXJuJzxzcGFuIGNsYXNzPSInK2MuY2xzKyciPicrZCsiPC9zcGFuPiJ9cmV0dXJuIGR9KX1mdW5jdGlvbiBYZCgpe3JldHVybntjb21tZW50OntwYXR0ZXJuOi9cL1wvLip8I1teXG5dKi95LGNsczoic3ludGF4LWNvbW1lbnQiLHByaW9yaXR5OjF9LHN0cmluZzp7cGF0dGVybjovIig/OlteIlxcXXxcXC4pKiJ8Jyg/OlteJ1xcXXxcXC4pKid8YCg/OlteYFxcXXxcXC4pKmAveSxjbHM6InN5bnRheC1zdHJpbmciLHByaW9yaXR5OjJ9LGtleXdvcmQ6e3BhdHRlcm46L1xiKD86YXN5bmN8YXdhaXR8YnJlYWt8Y2FzZXxjYXRjaHxjbGFzc3xjb25zdHxjb250aW51ZXxkZWJ1Z2dlcnxkZWNsYXJlfGRlZmF1bHR8ZGVsZXRlfGRvfGVsc2V8ZW51bXxleHBvcnR8ZXh0ZW5kc3xmaW5hbGx5fGZvcnxmcm9tfGZ1bmN0aW9ufGdldHxpZnxpbXBsZW1lbnRzfGltcG9ydHxpbnxpbnN0YW5jZW9mfGludGVyZmFjZXxsZXR8bW9kdWxlfG5hbWVzcGFjZXxuZXd8bnVsbHxvZnxvdmVycmlkZXxwcml2YXRlfHByb3RlY3RlZHxwdWJsaWN8cmVhZG9ubHl8cmV0dXJufHNldHxzdGF0aWN8c3VwZXJ8c3dpdGNofHRoaXN8dGhyb3d8dHJ5fHR5cGV8dHlwZW9mfHVuZGVmaW5lZHx2YXJ8dm9pZHx3aGlsZXx5aWVsZHxhYnN0cmFjdHxhc3xiYXNlfGJvb2x8Ynl0ZXxjaGFyfGRlY2ltYWx8ZG91YmxlfGV2ZW50fGV4cGxpY2l0fGV4dGVybnxmYWxzZXxmaXhlZHxmbG9hdHxmb3JlYWNofGdvdG98aW1wbGljaXR8aW58aW50fGludGVybmFsfGlzfGxvY2t8bG9uZ3xvYmplY3R8b3BlcmF0b3J8b3V0fHBhcmFtc3xwYXJ0aWFsfHJlYWRvbmx5fHJlZnxzYnl0ZXxzZWFsZWR8c2hvcnR8c2l6ZW9mfHN0YWNrYWxsb2N8c3RyaW5nfHN0cnVjdHxzd2l0Y2h8dGhyb3d8dHJ1ZXx0cnl8dWludHx1bG9uZ3x1bmNoZWNrZWR8dW5zYWZlfHVzaG9ydHx1c2luZ3x2aXJ0dWFsfHZvbGF0aWxlfHdoZXJlfHdoaWxlfHdpdGh8eWllbGR8ZGVmfGVsaWZ8ZWxzZXxleGNlcHR8ZXhlY3xmaW5hbGx5fGZvcnxmcm9tfGdsb2JhbHxpZnxpbXBvcnR8bGFtYmRhfG5vbmxvY2FsfG5vdHxvcnxwYXNzfHByaW50fHJhaXNlfHJldHVybnx0cnl8d2hpbGV8d2l0aHx5aWVsZHxUcnVlfEZhbHNlfE5vbmV8YW5kfGlufGlzfGxhbWJkYXxub3R8b3J8Zm58cHVifHVzZXxtb2R8aW1wbHx0cmFpdHxzdHJ1Y3R8ZW51bXxtYXRjaHxsb29wfHdoaWxlfGZvcnxpZnxlbHNlfHJldHVybnxzZWxmfHN1cGVyfGNyYXRlfHdoZXJlfGFzeW5jfGF3YWl0fG1vdmV8cmVmfG11dHxzdGF0aWN8Y29uc3R8dW5zYWZlfGV4dGVybnx1c2V8YXN8aW1wbHxzdHJ1Y3R8ZW51bXx0eXBlfGZufGxldHxsb29wfGlmfGVsc2V8bWF0Y2h8cmV0dXJufHNlbGZ8U2VsZnxtb2R8cHVifGNyYXRlfG1hY3JvfGRlcml2ZXx3aGVyZXxhc3luY3xhd2FpdHxkeW58c2VsZnxwYWNrYWdlfGZ1bmN8Z298cmV0dXJufGRlZmVyfGdvfGlmfGVsc2V8c3dpdGNofGNhc2V8ZGVmYXVsdHxmb3J8cmFuZ2V8c2VsZWN0fGJyZWFrfGNvbnRpbnVlfGZhbGx0aHJvdWdofGNvbnN0fHN0cnVjdHxlbnVtfHR5cGV8aW50ZXJmYWNlfG1hcHxjaGFufHZhcnxuaWx8dHJ1ZXxmYWxzZXxpb3RhfGxlbnxjYXB8YXBwZW5kfG1ha2V8bmV3fHBhbmljfHJlY292ZXJ8c2VsZWN0fGVsc2V8aWZ8ZWxpZnxlbmR8Zm9yfGZ1bmN0aW9ufGlmfGlufGxvY2FsfG5pbHxub3R8b3J8cmVwZWF0fHJldHVybnx0aGVufHRydWV8dW50aWx8d2hpbGV8ZW5kfGFuZHxiZWdpbnxkb3xlbmR8ZmFsc2V8Zm9yfGZ1bmN0aW9ufGlmfGlufGxvY2FsfG5pbHxub3R8b3J8cmVwZWF0fHJldHVybnx0aGVufHRydWV8dW50aWx8d2hpbGUpXGIveSxjbHM6InN5bnRheC1rZXl3b3JkIixwcmlvcml0eTozfSxudW1iZXI6e3BhdHRlcm46L1xiKD86MHhbXGRhLWZBLUZdK3wwYlswMV0rfDBvWzAtN10rfFxkK1wuP1xkKig/OmVbKy1dP1xkKyk/KVxiL3ksY2xzOiJzeW50YXgtbnVtYmVyIixwcmlvcml0eToyfSxmdW5jdGlvbjp7cGF0dGVybjovXGJbQS1aXVthLXpBLVowLTldKlthLXpdXHcqKD89XHMqXCgpL3ksY2xzOiJzeW50YXgtZnVuY3Rpb24iLHByaW9yaXR5OjR9LHR5cGU6e3BhdHRlcm46L1xiKD86c3RyaW5nfG51bWJlcnxib29sZWFufHZvaWR8YW55fHVua25vd258bmV2ZXJ8b2JqZWN0fHN5bWJvbHxiaWdpbnR8QXJyYXl8T2JqZWN0fFN0cmluZ3xOdW1iZXJ8Qm9vbGVhbnxNYXB8U2V0fFdlYWtNYXB8V2Vha1NldHxQcm9taXNlfEVycm9yfFR5cGV8SW50ZXJmYWNlfEVudW18Q2xhc3N8U3RydWN0fEltcGx8VHJhaXR8Zm58Zm5jfGZ1bmN8ZnVuY3Rpb258ZGVmfHByb2N8ZnVufHB1YnxzdGF0aWN8Y29uc3R8bGV0fHZhcnxpbnR8ZmxvYXR8ZG91YmxlfGJvb2x8Y2hhcnxieXRlfHN0cmluZ3x1OHx1MTZ8dTMyfHU2NHxpOHxpMTZ8aTMyfGk2NHxmMzJ8ZjY0fHVzaXplfGlzaXplfHN0cnxWZWN8SGFzaE1hcHxPcHRpb258UmVzdWx0fEJveHxSY3xBcmN8Q2VsbHxSZWZDZWxsKVxiL3ksY2xzOiJzeW50YXgtdHlwZSIscHJpb3JpdHk6NH0sb3BlcmF0b3I6e3BhdHRlcm46L1srXC0qLyU9PD4hJnxefj86XSt8XC5cLlwuPy95LGNsczoic3ludGF4LW9wZXJhdG9yIixwcmlvcml0eTo1fSxwdW5jdHVhdGlvbjp7cGF0dGVybjovW3t9W1xdKCk7LFwuXS95LGNsczoic3ludGF4LXB1bmN0dWF0aW9uIixwcmlvcml0eTo2fX19ZnVuY3Rpb24gWmQoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9cChlKTt0PXQucmVwbGFjZSgvYGBgKFx3KilcbihbXHNcU10qPylgYGAvZyxmdW5jdGlvbihpLGEsdSl7dmFyIG89eW8odS50cmltKCksYSkscz1vLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpO3JldHVybic8cHJlPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS0nK2ErJyI+JytzKyI8L2NvZGU+PC9wcmU+In0pLHQ9dC5yZXBsYWNlKC9gKFteYF0rKWAvZyxmdW5jdGlvbihpLGEpe3JldHVybiI8Y29kZT4iK2EucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IikrIjwvY29kZT4ifSksdD10LnJlcGxhY2UoL14jIyMjIyNccysoLiopJC9nbSwiPGg2PiQxPC9oNj4iKSx0PXQucmVwbGFjZSgvXiMjIyMjXHMrKC4qKSQvZ20sIjxoNT4kMTwvaDU+IiksdD10LnJlcGxhY2UoL14jIyMjXHMrKC4qKSQvZ20sIjxoND4kMTwvaDQ+IiksdD10LnJlcGxhY2UoL14jIyNccysoLiopJC9nbSwiPGgzPiQxPC9oMz4iKSx0PXQucmVwbGFjZSgvXiMjXHMrKC4qKSQvZ20sIjxoMj4kMTwvaDI+IiksdD10LnJlcGxhY2UoL14jXHMrKC4qKSQvZ20sIjxoMT4kMTwvaDE+IiksdD10LnJlcGxhY2UoL1wqXCpcKiguKz8pXCpcKlwqL2csIjxzdHJvbmc+PGVtPiQxPC9lbT48L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvXCpcKiguKz8pXCpcKi9nLCI8c3Ryb25nPiQxPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoL1wqKC4rPylcKi9nLCI8ZW0+JDE8L2VtPiIpLHQ9dC5yZXBsYWNlKC8oXnxbXlx3XSlfX18oXFMoPzpbXlxuXSo/XFMpPylfX18oPyFcdykvZywiJDE8c3Ryb25nPjxlbT4kMjwvZW0+PC9zdHJvbmc+IiksdD10LnJlcGxhY2UoLyhefFteXHddKV9fKFxTKD86W15cbl0qP1xTKT8pX18oPyFcdykvZywiJDE8c3Ryb25nPiQyPC9zdHJvbmc+IiksdD10LnJlcGxhY2UoLyhefFteXHddKV8oXFMoPzpbXlxuX10qP1xTKT8pXyg/IVx3KS9nLCIkMTxlbT4kMjwvZW0+IiksdD10LnJlcGxhY2UoL35+KC4rPyl+fi9nLCI8ZGVsPiQxPC9kZWw+IiksdD10LnJlcGxhY2UoL1xbKFteXF1dKylcXVwoKFteKV0rKVwpL2csJzxhIGhyZWY9IiQyIiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub29wZW5lciI+JDE8L2E+JyksdD10LnJlcGxhY2UoLyFcWyhbXlxdXSopXF1cKChbXildKylcKS9nLCc8aW1nIHNyYz0iJDIiIGFsdD0iJDEiPicpLHQ9dC5yZXBsYWNlKC9eJmd0O1xzKyguKikkL2dtLCI8YmxvY2txdW90ZT4kMTwvYmxvY2txdW90ZT4iKSx0PXQucmVwbGFjZSgvXi0tLSskL2dtLCI8aHI+IiksdD10LnJlcGxhY2UoL15cKlwqXCorJC9nbSwiPGhyPiIpLHQ9dC5yZXBsYWNlKC9eW1wtXCpdXHMrKC4qKSQvZ20sIjxsaT4kMTwvbGk+IiksdD10LnJlcGxhY2UoLyg8bGk+Lio8XC9saT5cbj8pKy9nLCI8dWw+JCY8L3VsPiIpLHQ9dC5yZXBsYWNlKC9eXGQrXC5ccysoLiopJC9nbSwiPGxpPiQxPC9saT4iKSx0PXdsKHQpO3ZhciBuPXQuc3BsaXQoL1xuezIsfS8pO3JldHVybiB0PW4ubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBpPWkudHJpbSgpLGk/L148KGhbMS02XXx1bHxvbHxsaXxibG9ja3F1b3RlfHByZXx0YWJsZXxocnxkaXYpLy50ZXN0KGkpP2k6IjxwPiIraS5yZXBsYWNlKC9cbi9nLCI8YnI+IikrIjwvcD4iOiIifSkuam9pbihgCmApLHR9ZnVuY3Rpb24gYm8oKXtpZighci5zZWxlY3RlZElkfHwhci5naXRTdGF0dXN8fCFyLmdpdFN0YXR1cy5pc0dpdHx8ci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQpcmV0dXJuIiI7dmFyIGU9ci5naXRTdGF0dXMuYnJhbmNofHwiPyIsdD1yLmdpdFN0YXR1cy5tb2RpZmllZENvdW50fHwwLG49ZSsodD8iICBceEI3ICAiK3QrIiBcdTRFMkFcdTY1ODdcdTRFRjZcdTVGODVcdTYzRDBcdTRFQTQiOiIgIFx4QjcgIFx1NURFNVx1NEY1Q1x1NTMzQVx1NUU3Mlx1NTFDMCIpO3JldHVybic8YnV0dG9uIGlkPSJ0b3BiYXItZ2l0LWJhZGdlIiBjbGFzcz0idG9wYmFyLWdpdC1iYWRnZSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJytwKG4pKyciIGFyaWEtbGFiZWw9Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNCI+PHN2ZyBjbGFzcz0idG9wYmFyLWdpdC1pY29uIiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjYiIHI9IjIiLz48Y2lyY2xlIGN4PSI2IiBjeT0iMTgiIHI9IjIiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjkiIHI9IjIiLz48cGF0aCBkPSJNNiA4djgiLz48cGF0aCBkPSJNMTggMTF2MWEzIDMgMCAwIDEtMyAzSDkiLz48L3N2Zz48c3BhbiBjbGFzcz0idG9wYmFyLWdpdC1icmFuY2giPicrcChlKSsiPC9zcGFuPiIrKHQ+MD8nPHNwYW4gY2xhc3M9InRvcGJhci1naXQtY291bnQiPlx4QjcnK3QrIjwvc3Bhbj4iOic8c3BhbiBjbGFzcz0idG9wYmFyLWdpdC1jbGVhbiIgYXJpYS1oaWRkZW49InRydWUiPlx1MjcxMzwvc3Bhbj4nKSsiPC9idXR0b24+In1mdW5jdGlvbiBnYSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZ2l0LXNsb3QiKTtpZihlKXtlLmlubmVySFRNTD1ibygpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZ2l0LWJhZGdlIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obil7bi5wcmV2ZW50RGVmYXVsdCgpLEVvKCl9KX19ZnVuY3Rpb24gZWMoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ci50b3BiYXJNb3JlT3BlbixuPSEhZS5jbGF1ZGVTZXNzaW9uSWQsaT0hIWUuY3dkLGE9ZS53b3JrdHJlZUVuYWJsZWQmJmUud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZlLndvcmt0cmVlLnBhdGgsdT1lLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2VkIiYmZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExLG89ZS5zdGF0dXM9PT0icnVubmluZyJ8fGUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnaW5nIixzPWEmJmUud29ya3RyZWVNZXJnZVN0YXR1cyE9PSJtZXJnZWQiLGw9dSxkPW58fGl8fCEwLGY9c3x8bHx8ITAsYz0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSI5IiB5PSI5IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIHJ4PSIyIiByeT0iMiIvPjxwYXRoIGQ9Ik01IDE1SDRhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoOWEyIDIgMCAwIDEgMiAydjEiLz48L3N2Zz4nLHY9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE3LjUgMTlhNC41IDQuNSAwIDEgMC0xLjUtOC43NEE2IDYgMCAxIDAgNiAxNGgxMS41eiIvPjwvc3ZnPicsaD0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz48L3N2Zz4nLGc9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGxpbmUgeDE9IjQiIHkxPSI5IiB4Mj0iMjAiIHkyPSI5Ii8+PGxpbmUgeDE9IjQiIHkxPSIxNSIgeDI9IjIwIiB5Mj0iMTUiLz48bGluZSB4MT0iMTAiIHkxPSIzIiB4Mj0iOCIgeTI9IjIxIi8+PGxpbmUgeDE9IjE2IiB5MT0iMyIgeDI9IjE0IiB5Mj0iMjEiLz48L3N2Zz4nLG09Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTcgN2gxMCIvPjxwYXRoIGQ9Ik03IDEyaDEwIi8+PHBhdGggZD0iTTcgMTdoMTAiLz48cGF0aCBkPSJNNSA3bC0yIDIgMiAyIi8+PHBhdGggZD0iTTE5IDE1bDIgMi0yIDIiLz48L3N2Zz4nLHk9Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+JyxDPSIiO2lmKG4pe3ZhciBFPWUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTU5MERcdTUyMzYgQ29kZXggdGhyZWFkIElEIjoiXHU1OTBEXHU1MjM2IENsYXVkZSBcdTRGMUFcdThCREQgSUQiO0MrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0iY29weS1jbGF1ZGUtc2Vzc2lvbi1pZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+Jyt2KyI8c3Bhbj4iK0UrIjwvc3Bhbj48L2J1dHRvbj4ifWkmJihDKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktY3dkIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK2grIjxzcGFuPlx1NTkwRFx1NTIzNlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj4iKSxDKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249ImNvcHktc2Vzc2lvbi1pZCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JytnKyI8c3Bhbj5cdTU5MERcdTUyMzZcdTRGMUFcdThCREQgSUQ8L3NwYW4+PC9idXR0b24+Ijt2YXIgQj0iIjtzP0IrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtbWVyZ2UiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iJysobz8iIGRpc2FibGVkIjoiIikrIj4iK20rIjxzcGFuPlx1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRlx1MjAyNjwvc3Bhbj48L2J1dHRvbj4iOmwmJihCKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSIgZGF0YS1hY3Rpb249Indvcmt0cmVlLWNsZWFudXAiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrbSsiPHNwYW4+XHU5MUNEXHU4QkQ1IHdvcmt0cmVlIFx1NkUwNVx1NzQwNjwvc3Bhbj48L2J1dHRvbj4iKSxCKz0nPGJ1dHRvbiBjbGFzcz0idG9wYmFyLW1vcmUtaXRlbSB0b3BiYXItbW9yZS1pdGVtLWRhbmdlciIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZXNzaW9uIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK3krIjxzcGFuPlx1NTIyMFx1OTY2NFx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERDwvc3Bhbj48L2J1dHRvbj4iO3ZhciBEPWQmJmY/JzxkaXYgY2xhc3M9InRvcGJhci1tb3JlLWRpdmlkZXIiIHJvbGU9InNlcGFyYXRvciI+PC9kaXY+JzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0idG9wYmFyLW1vcmUtd3JhcCI+PGJ1dHRvbiBpZD0idG9wYmFyLW1vcmUtYnV0dG9uIiBjbGFzcz0idG9wYmFyLWJ0biBzcXVhcmUnKyh0PyIgYWN0aXZlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTY0Q0RcdTRGNUMiIGFyaWEtaGFzcG9wdXA9Im1lbnUiIGFyaWEtZXhwYW5kZWQ9IicrKHQ/InRydWUiOiJmYWxzZSIpKyciIHRpdGxlPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTY0Q0RcdTRGNUMiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iNSIgcj0iMSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTkiIHI9IjEiLz48L3N2Zz48L2J1dHRvbj48ZGl2IGlkPSJ0b3BiYXItbW9yZS1tZW51IiBjbGFzcz0idG9wYmFyLW1vcmUtbWVudScrKHQ/IiI6IiBoaWRkZW4iKSsnIiByb2xlPSJtZW51IiBhcmlhLWxhYmVsPSJcdTVGNTNcdTUyNERcdTRGMUFcdThCREQiPicrQytEK0IrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gQm4oZSx0KXtpZighZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG51bGwpO3ZhciBuPXQmJnQuZm9yY2UsaT1EYXRlLm5vdygpO2lmKCFuJiZyLmdpdFN0YXR1c1Nlc3Npb25JZD09PWUmJnIuZ2l0U3RhdHVzJiZpLXIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ8MWUzKXJldHVybiBQcm9taXNlLnJlc29sdmUoci5naXRTdGF0dXMpO2lmKHIuZ2l0U3RhdHVzSW5mbGlnaHQmJnIuZ2l0U3RhdHVzSW5mbGlnaHQuc2Vzc2lvbklkPT09ZSlyZXR1cm4gci5naXRTdGF0dXNJbmZsaWdodC5wcm9taXNlO3IuZ2l0U3RhdHVzTG9hZGluZz0hMDt2YXIgYT1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL2dpdC1zdGF0dXMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5vaz91Lmpzb24oKTp7aXNHaXQ6ITF9fSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gci5naXRTdGF0dXM9dXx8e2lzR2l0OiExfSxyLmdpdFN0YXR1c1Nlc3Npb25JZD1lLHIuZ2l0U3RhdHVzTGFzdEZldGNoQXQ9RGF0ZS5ub3coKSxnYSgpLHV9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiByLmdpdFN0YXR1cz17aXNHaXQ6ITF9LHIuZ2l0U3RhdHVzU2Vzc2lvbklkPWUsci5naXRTdGF0dXNMYXN0RmV0Y2hBdD1EYXRlLm5vdygpLGdhKCksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLmdpdFN0YXR1c0xvYWRpbmc9ITEsci5naXRTdGF0dXNJbmZsaWdodCYmci5naXRTdGF0dXNJbmZsaWdodC5zZXNzaW9uSWQ9PT1lJiYoci5naXRTdGF0dXNJbmZsaWdodD1udWxsKX0pO3JldHVybiByLmdpdFN0YXR1c0luZmxpZ2h0PXtzZXNzaW9uSWQ6ZSxwcm9taXNlOmF9LGF9dmFyIERuPW51bGwsa249bnVsbCxKZz1udWxsO2Z1bmN0aW9uIHRjKGUpe3JldHVybiBlPT09ImNvbW1pdC10YWcifHxlPT09ImNvbW1pdC10YWctcHVzaCJ8fGU9PT0iY29tbWl0LXB1c2giP2U6ImNvbW1pdCJ9ZnVuY3Rpb24gbmMoZSl7cmV0dXJuIGU9dGMoZSksZT09PSJjb21taXQtdGFnLXB1c2giP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgVGFnICsgUHVzaCIsdmVyYjoiXHU2M0QwXHU0RUE0XHUzMDAxXHU2MjUzIFRhZyBcdTVFNzZcdTYzQThcdTkwMDEiLHdpdGhUYWc6ITAscHVzaDohMCx0b25lOiJhbGwifTplPT09ImNvbW1pdC10YWciP3thY3Rpb246ZSxsYWJlbDoiQ29tbWl0ICsgVGFnIix2ZXJiOiJcdTYzRDBcdTRFQTRcdTVFNzZcdTYyNTMgVGFnIix3aXRoVGFnOiEwLHB1c2g6ITEsdG9uZToidGFnIn06ZT09PSJjb21taXQtcHVzaCI/e2FjdGlvbjplLGxhYmVsOiJDb21taXQgKyBQdXNoIix2ZXJiOiJcdTYzRDBcdTRFQTRcdTVFNzZcdTYzQThcdTkwMDEiLHdpdGhUYWc6ITEscHVzaDohMCx0b25lOiJwdXNoIn06e2FjdGlvbjoiY29tbWl0IixsYWJlbDoiQ29tbWl0Iix2ZXJiOiJcdTRFQzVcdTYzRDBcdTRFQTQiLHdpdGhUYWc6ITEscHVzaDohMSx0b25lOiJjb21taXQifX1mdW5jdGlvbiBFbygpe2lmKHIuc2VsZWN0ZWRJZCl7ci5xdWlja0NvbW1pdE9wZW49ITAsci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRFcnJvcj0iIixyLnF1aWNrQ29tbWl0Rm9ybT17Y3VzdG9tTWVzc2FnZToiIix0YWc6IiIsdGFnRWRpdGVkOiExfSxyLnF1aWNrQ29tbWl0UHVzaGluZz0hMSxyLnF1aWNrQ29tbWl0UHVzaEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0Iix0cigpLGhuKCksbnIoKSxNdCgpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtlJiYoZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LFFpKGUpKSxEbiYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRG4pLERuPWZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJnIucXVpY2tDb21taXRPcGVuJiYhci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcmJiFyLnF1aWNrQ29tbWl0UHVzaGluZyYmV24oKX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRG4pLEJuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KS50aGVuKGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdE9wZW4mJk10KCl9KX19ZnVuY3Rpb24gV24oKXtyLnF1aWNrQ29tbWl0T3Blbj0hMSxyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMSxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdFJlc3VsdD1udWxsLHIucXVpY2tDb21taXREcmFnQWN0aW9uPSJjb21taXQiO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbW9kYWwiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLERuJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRG4pLERuPW51bGwpLGtuJiYoa24oKSxrbj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpfWZ1bmN0aW9uIE10KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2lmKGUpe2tuJiYoa24oKSxrbj1udWxsKTt2YXIgdD1DbygpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bi5pbm5lckhUTUw9dDt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIiNxdWljay1jb21taXQtbW9kYWwiKTtpJiYoZS5pbm5lckhUTUw9aS5pbm5lckhUTUwsRm8oKSl9fWZ1bmN0aW9uIEZvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1jbG9zZS1idG4iKTtlJiZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixXbik7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1jYW5jZWwtYnRuIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsV24pO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtYWktYnRuIik7biYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdWMpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO2kmJihpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9aS52YWx1ZX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24obyl7KG8ubWV0YUtleXx8by5jdHJsS2V5KSYmby5rZXk9PT0iRW50ZXIiJiYoby5wcmV2ZW50RGVmYXVsdCgpLHpuKCJjb21taXQiKSl9KSk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC10YWciKTthJiYoYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0Rm9ybS50YWc9YS52YWx1ZSxyLnF1aWNrQ29tbWl0Rm9ybS50YWdFZGl0ZWQ9ITB9KSxhLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKG8pe28ua2V5PT09IkVudGVyIiYmKG8ucHJldmVudERlZmF1bHQoKSx6bigiY29tbWl0LXRhZyIpKX0pKTt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXB1c2gtYWZ0ZXItYnRuIik7dSYmdS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgbz1yLnF1aWNrQ29tbWl0UmVzdWx0fHx7fTtvYyh7cHVzaENvbW1pdHM6ITAscHVzaFRhZ3M6ISFvLnRhZ05hbWUsY2xvc2VPblN1Y2Nlc3M6ITB9KX0pLGFjKCl9ZnVuY3Rpb24gcmMoZSl7dmFyIHQ9ISEoZSYmZS50YWcpLG49ISEoZSYmZS5wdXNoKTtyZXR1cm4gdCYmbj8iY29tbWl0LXRhZy1wdXNoIjp0PyJjb21taXQtdGFnIjpuPyJjb21taXQtcHVzaCI6ImNvbW1pdCJ9dmFyIGljPTU4LGFpPTEwO2Z1bmN0aW9uIHdvKGUpe3JldHVybiBlPT09InRhZyI/e2FjdGlvbjoiY29tbWl0LXRhZyIsc3ViOiExfTplPT09InB1c2giP3thY3Rpb246ImNvbW1pdC1wdXNoIixzdWI6ITF9OmU9PT0ic3ViIj97YWN0aW9uOiJjb21taXQiLHN1YjohMH06e2FjdGlvbjoiY29tbWl0IixzdWI6ITF9fWZ1bmN0aW9uIGFjKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stZmllbGQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLXN0YWdlIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1sYXVuY2giKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWNsdXN0ZXIiKTtpZighZXx8IXR8fCFufHwhaSlyZXR1cm47dmFyIGE9WyJjb21taXQiLCJ0YWciLCJwdXNoIl0sdT17fTtpZihhLmZvckVhY2goZnVuY3Rpb24oayl7dVtrXT1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNoaXA9IicraysnIl0nKX0pLCF1LmNvbW1pdHx8IXUudGFnfHwhdS5wdXNoKXJldHVybjt1LnN1Yj1lLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWNoaXA9InN1YiJdJyk7dmFyIG89ISF1LnN1YixzPW8/YS5jb25jYXQoWyJzdWIiXSk6YTtmdW5jdGlvbiBsKGspe3JldHVybiB1W2tdP3Vba10ub2Zmc2V0V2lkdGg6OTB9ZnVuY3Rpb24gZCgpe3JldHVybiB1LmNvbW1pdD91LmNvbW1pdC5vZmZzZXRIZWlnaHQ6Mzh9ZnVuY3Rpb24gZigpe3JldHVybiB3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihtYXgtd2lkdGg6IDcyMHB4KSIpLm1hdGNoZXN9ZnVuY3Rpb24gYygpe3ZhciBrPWUuY2xpZW50V2lkdGgsVD1lLmNsaWVudEhlaWdodCxNPWQoKSxZPWwoImNvbW1pdCIpLHo9bCgidGFnIiksUT1sKCJwdXNoIik7aWYoZigpJiZvKXt2YXIgbGU9TWF0aC5tYXgoOCxUKi4yLU0vMiksZWU9TWF0aC5taW4oVC1NLTgsVCouNy1NLzIpLFo9ZnVuY3Rpb24oaWUpe3JldHVybiBNYXRoLm1heCg4LGsqLjI3LWllLzIpfSxxPWZ1bmN0aW9uKGllKXtyZXR1cm4gTWF0aC5taW4oay1pZS04LGsqLjczLWllLzIpfTtyZXR1cm57Y29tbWl0Ont4OlooWSkseTpsZX0sdGFnOnt4OnEoeikseTpsZX0scHVzaDp7eDpaKFEpLHk6ZWV9LHN1Yjp7eDpxKGwoInN1YiIpKSx5OmVlfX19dmFyIE89ZigpLE49Tz9NYXRoLm1heCg4LFQqLjE4LU0vMik6TWF0aC5tYXgoOCxUKi4xMiksRz1PP01hdGgubWluKFQtTS04LFQqLjcyLU0vMik6TWF0aC5taW4oVC1NLTgsVCouODgtTSksSj1PPy4yNDouMjgsbmU9Tz8uNzY6LjcyLGRlPXtjb21taXQ6e3g6TWF0aC5tYXgoOCwoay1ZKS8yKSx5Ok59LHRhZzp7eDpNYXRoLm1heCg4LGsqSi16LzIpLHk6R30scHVzaDp7eDpNYXRoLm1pbihrLVEtOCxrKm5lLVEvMikseTpHfX07aWYobyl7dmFyIHJlPWwoInN1YiIpO2RlLnN1Yj17eDpNYXRoLm1pbihrLXJlLTgsayouOTQtcmUvMikseTpNYXRoLm1heCg4LE1hdGgubWluKFQtTS04LChULU0pLzIpKX19cmV0dXJuIGRlfXZhciB2PXt9O2Z1bmN0aW9uIGgoayxULE0pe3Vba10mJih1W2tdLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIrVC50b0ZpeGVkKDEpKyJweCwiK00udG9GaXhlZCgxKSsicHgpIil9ZnVuY3Rpb24gZyhrKXt2PWMoKSxzLmZvckVhY2goZnVuY3Rpb24oVCl7dVtUXS5jbGFzc0xpc3QudG9nZ2xlKCJxYy1jaGlwLS1hbmltIiwhIWspLGgoVCx2W1RdLngsdltUXS55KX0pfWcoITEpO3ZhciBtPW51bGw7ZnVuY3Rpb24geShrLFQsTSl7dmFyIFk9ZCgpLHo9MjQsUT1zLmZpbHRlcihmdW5jdGlvbihOKXtyZXR1cm4gay5pbmRleE9mKE4pPj0wfSksbGU9US5yZWR1Y2UoZnVuY3Rpb24oTixHKXtyZXR1cm4gTWF0aC5tYXgoTixsKEcpKX0sMCksZWU9bGUrTWF0aC5tYXgoMCxRLmxlbmd0aC0xKSp6LFo9ZS5jbGllbnRIZWlnaHQscT1ULWVlLzIsTz1NYXRoLm1heCgyLE1hdGgubWluKFotWS0yLE0tWS8yKSk7cmV0dXJuIFEuZm9yRWFjaChmdW5jdGlvbihOKXtoKE4scSxPKSxxKz16fSkse3g6VC1lZS8yLTcseTpPLTcsdzplZSsxNCxoOlkrMTR9fWZ1bmN0aW9uIEMoayl7aS5jbGFzc0xpc3QuYWRkKCJpcy1hY3RpdmUiKSxpLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIray54LnRvRml4ZWQoMSkrInB4LCIray55LnRvRml4ZWQoMSkrInB4KSIsaS5zdHlsZS53aWR0aD1rLncudG9GaXhlZCgxKSsicHgiLGkuc3R5bGUuaGVpZ2h0PWsuaC50b0ZpeGVkKDEpKyJweCJ9ZnVuY3Rpb24gRSgpe2kuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWN0aXZlIil9ZnVuY3Rpb24gQihrKXtyZXR1cm4gcmMoe2NvbW1pdDohMCx0YWc6ay5pbmRleE9mKCJ0YWciKT49MCxwdXNoOmsuaW5kZXhPZigicHVzaCIpPj0wfSl9ZnVuY3Rpb24gRChrKXtyZXR1cm4gay5pbmRleE9mKCJzdWIiKT49MH1mdW5jdGlvbiBGKGspe3ZhciBUPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWxhdW5jaC1sYWJlbCIpO1QmJihULnRleHRDb250ZW50PWspfWZ1bmN0aW9uIEkoayxUKXt2YXIgTT1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBrPj1NLmxlZnQmJms8PU0ucmlnaHQmJlQ+PU0udG9wJiZUPD1NLmJvdHRvbX1mdW5jdGlvbiBMKGspe3JldHVybiBmdW5jdGlvbihUKXtpZighKHVba10uZGlzYWJsZWR8fHVpKCkpKXttPXthbmNob3I6ayxwb2ludGVySWQ6VC5wb2ludGVySWQsc3RhcnRYOlQuY2xpZW50WCxzdGFydFk6VC5jbGllbnRZLG1vdmVkOiExLG1lbWJlcnM6W2tdfSxzLmZvckVhY2goZnVuY3Rpb24oTSl7dVtNXS5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIil9KSx1W2tdLmNsYXNzTGlzdC5hZGQoImlzLWdyYWJiaW5nIik7dHJ5e3Vba10uc2V0UG9pbnRlckNhcHR1cmUoVC5wb2ludGVySWQpfWNhdGNoe310LmNsYXNzTGlzdC5hZGQoImlzLWRyYWdnaW5nIiksVC5wcmV2ZW50RGVmYXVsdCgpfX19ZnVuY3Rpb24gSChrKXtpZighKCFtfHxtLnBvaW50ZXJJZCE9PWsucG9pbnRlcklkKSl7KE1hdGguYWJzKGsuY2xpZW50WC1tLnN0YXJ0WCk+M3x8TWF0aC5hYnMoay5jbGllbnRZLW0uc3RhcnRZKT4zKSYmKG0ubW92ZWQ9ITApO3ZhciBUPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksTT1rLmNsaWVudFgtVC5sZWZ0LFk9ay5jbGllbnRZLVQudG9wO2lmKGEuZm9yRWFjaChmdW5jdGlvbihPKXtpZighKG0ubWVtYmVycy5pbmRleE9mKE8pPj0wKSl7dmFyIE49dltPXS54K2woTykvMixHPXZbT10ueStkKCkvMixKPU0tTixuZT1ZLUc7TWF0aC5zcXJ0KEoqSituZSpuZSk8aWMmJihtLm1lbWJlcnMucHVzaChPKSx1W09dLmNsYXNzTGlzdC5yZW1vdmUoInFjLWNoaXAtLWFuaW0iKSx1W09dLmNsYXNzTGlzdC5hZGQoImlzLWF0dGFjaGVkIikpfX0pLG8mJm0ubWVtYmVycy5pbmRleE9mKCJzdWIiKTwwKXt2YXIgej12LnN1Yi54LWFpLFE9di5zdWIueS1haSxsZT12LnN1Yi54K2woInN1YiIpK2FpLGVlPXYuc3ViLnkrZCgpK2FpO00+PXomJk08PWxlJiZZPj1RJiZZPD1lZSYmKG0ubWVtYmVycy5wdXNoKCJzdWIiKSx1LnN1Yi5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIiksdS5zdWIuY2xhc3NMaXN0LmFkZCgiaXMtYXR0YWNoZWQiKSl9dmFyIFo9eShtLm1lbWJlcnMsTSxZKSxxPUkoay5jbGllbnRYLGsuY2xpZW50WSk7dC5zZXRBdHRyaWJ1dGUoImRhdGEtaG90IixxPyIxIjoiMCIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIsQihtLm1lbWJlcnMpKSxtLm1lbWJlcnMubGVuZ3RoPjE/QyhaKTpFKCksRihxPyJcdTY3N0VcdTYyNEJcdTYyNjdcdTg4NEMiOiJcdTYzRDBcdTRFQTQiKX19ZnVuY3Rpb24gVShrLFQpe2lmKCEoIW18fG0ucG9pbnRlcklkIT09ay5wb2ludGVySWQpKXt2YXIgTT1tO209bnVsbCx0LmNsYXNzTGlzdC5yZW1vdmUoImlzLWRyYWdnaW5nIiksdC5zZXRBdHRyaWJ1dGUoImRhdGEtaG90IiwiMCIpLEYoIlx1NjNEMFx1NEVBNCIpLEUoKSxzLmZvckVhY2goZnVuY3Rpb24oeil7dVt6XS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1ncmFiYmluZyIsImlzLWF0dGFjaGVkIil9KTt0cnl7dVtNLmFuY2hvcl0ucmVsZWFzZVBvaW50ZXJDYXB0dXJlKE0ucG9pbnRlcklkKX1jYXRjaHt9aWYoIVQmJiFNLm1vdmVkKXt2YXIgWT13byhNLmFuY2hvcik7em4oWS5hY3Rpb24sWS5zdWIpO3JldHVybn1pZighVCYmSShrLmNsaWVudFgsay5jbGllbnRZKSl7em4oQihNLm1lbWJlcnMpLEQoTS5tZW1iZXJzKSk7cmV0dXJufXQuc2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIsImNvbW1pdCIpLGcoITApfX12YXIgeD1mdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiYhbSYmZyghMSl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHgpLHMuZm9yRWFjaChmdW5jdGlvbihrKXt2YXIgVD11W2tdO1QuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLEwoaykpLFQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLEgpLFQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixmdW5jdGlvbihNKXtVKE0sITEpfSksVC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixmdW5jdGlvbihNKXtVKE0sITApfSksVC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihNKXtpZighKFQuZGlzYWJsZWR8fHVpKCkpJiYoTS5rZXk9PT0iRW50ZXIifHxNLmtleT09PSIgInx8TS5rZXk9PT0iU3BhY2ViYXIiKSl7TS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBZPXdvKGspO3puKFkuYWN0aW9uLFkuc3ViKX19KX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7bi5kaXNhYmxlZHx8dWkoKXx8bXx8em4oImNvbW1pdCIpfSksa249ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix4KSxtPW51bGx9fWZ1bmN0aW9uIHVjKCl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0R2VuZXJhdGluZykpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO2UmJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWUudmFsdWUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7dCYmKHIucXVpY2tDb21taXRGb3JtLnRhZz10LnZhbHVlKSxyLnF1aWNrQ29tbWl0R2VuZXJhdGluZz0hMCxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsTXQoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZ2VuZXJhdGUtY29tbWl0LW1lc3NhZ2UiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHt9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJue29rOm4ub2ssZGF0YTppfX0pfSkudGhlbihmdW5jdGlvbihuKXtpZighbi5vayl0aHJvdyBuZXcgRXJyb3Iobi5kYXRhJiZuLmRhdGEuZXJyb3J8fCJBSSBcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgaT1uLmRhdGF8fHt9LGE9dHlwZW9mIGkubWVzc2FnZT09InN0cmluZyI/aS5tZXNzYWdlOiIiLHU9dHlwZW9mIGkuc3VnZ2VzdGVkVGFnPT0ic3RyaW5nIj9pLnN1Z2dlc3RlZFRhZy50cmltKCk6IiIsbz0oci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZXx8IiIpLnRyaW0oKTshbyYmYSYmKHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9YSksdSYmKHIucXVpY2tDb21taXRGb3JtLnRhZ0VkaXRlZHx8KHIucXVpY2tDb21taXRGb3JtLnRhZz11KSxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0LXRhZyIpfSkuY2F0Y2goZnVuY3Rpb24obil7ci5xdWlja0NvbW1pdEVycm9yPW4mJm4ubWVzc2FnZXx8IkFJIFx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdEdlbmVyYXRpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJk10KCl9KX19ZnVuY3Rpb24gem4oZSx0KXtpZighKCFyLnNlbGVjdGVkSWR8fHIucXVpY2tDb21taXRTdWJtaXR0aW5nKSl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tZXNzYWdlIik7biYmKHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9bi52YWx1ZSk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC10YWciKTtpJiYoci5xdWlja0NvbW1pdEZvcm0udGFnPWkudmFsdWUpO3ZhciBhPXIucXVpY2tDb21taXRGb3JtfHx7fSx1PW5jKGV8fHIucXVpY2tDb21taXREcmFnQWN0aW9ufHwiY29tbWl0Iiksbz11LndpdGhUYWcscz1vPyhhLnRhZ3x8IiIpLnRyaW0oKToiIixsPShhLmN1c3RvbU1lc3NhZ2V8fCIiKS50cmltKCksZD0hbCxmPXticmFuY2g6KHIuZ2l0U3RhdHVzfHx7fSkuYnJhbmNofHwiIixjb21taXRIYXNoOihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQmJihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc2hvcnRIYXNoPyhyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc2hvcnRIYXNoOihyLmdpdFN0YXR1c3x8e30pLmhlYWQ/KHIuZ2l0U3RhdHVzfHx7fSkuaGVhZC5zdWJzdHJpbmcoMCw3KToiIixjb21taXRTdWJqZWN0OihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQmJihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc3ViamVjdD8oci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnN1YmplY3Q6IiIsdGFnOihyLmdpdFN0YXR1c3x8e30pLmxhdGVzdFRhZ3x8IiJ9LGM9e2F1dG9NZXNzYWdlOmQsY3VzdG9tTWVzc2FnZTpkPyIiOmwsdGFnOnMsYXV0b1RhZzohIShvJiYhcykscHVzaDohIXUucHVzaCxzdWJtb2R1bGU6ISF0fTtyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMCxyLnF1aWNrQ29tbWl0U3VibW9kdWxlSW50ZW50PSEhdCxyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc9ZHx8Yy5hdXRvVGFnLHIucXVpY2tDb21taXRFcnJvcj0iIixyLnF1aWNrQ29tbWl0UHVzaEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj11LmFjdGlvbixNdCgpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9xdWljay1jb21taXQiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KGMpfSkudGhlbihmdW5jdGlvbih2KXtyZXR1cm4gdi5qc29uKCkudGhlbihmdW5jdGlvbihoKXtyZXR1cm57b2s6di5vayxkYXRhOmh9fSl9KS50aGVuKGZ1bmN0aW9uKHYpe2lmKCF2Lm9rKXRocm93IG5ldyBFcnJvcih2LmRhdGEmJnYuZGF0YS5lcnJvcnx8Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNFx1NTkzMVx1OEQyNVx1MzAwMiIpO3ZhciBoPXYuZGF0YXx8e30sZz1oLmNvbW1pdCYmaC5jb21taXQuaGFzaD9oLmNvbW1pdC5oYXNoLnN1YnN0cmluZygwLDcpOiIiLG09aC50YWcmJmgudGFnLm5hbWU/aC50YWcubmFtZToiIix5PUFycmF5LmlzQXJyYXkoaC5zdWJtb2R1bGVDb21taXRzKT9oLnN1Ym1vZHVsZUNvbW1pdHM6W10sQz15Lmxlbmd0aD4wPyJcdTVERjJcdTUxNDhcdTYzRDBcdTRFQTQgIit5Lmxlbmd0aCsiIFx1NEUyQSBzdWJtb2R1bGVcdUZGMDgiK3kubWFwKGZ1bmN0aW9uKEIpe3JldHVybiBCLnBhdGh9KS5qb2luKCJcdTMwMDEiKSsiXHVGRjA5XHVGRjBDIjoiIixFPUMrIlx1NURGMlx1NjNEMFx1NEVBNCIrKGc/IiAiK2c6IiIpKyhtPyJcdUZGMENcdTVERjJcdTYyNTMgVGFnICIrbToiIik7ci5xdWlja0NvbW1pdFJlc3VsdD17YWN0aW9uOnUuYWN0aW9uLGluY2x1ZGVTdWJtb2R1bGU6ISF0LHB1c2hlZDohIWgucHVzaGVkLHB1c2hFcnJvcjpoLnB1c2hFcnJvcnx8IiIsY29tbWl0SGFzaDpnLGNvbW1pdE1lc3NhZ2U6aC5jb21taXQmJmguY29tbWl0Lm1lc3NhZ2U/aC5jb21taXQubWVzc2FnZTpsLHRhZ05hbWU6bSxvbGRUYWc6Zi50YWcsb2xkQ29tbWl0SGFzaDpmLmNvbW1pdEhhc2gsb2xkQ29tbWl0U3ViamVjdDpmLmNvbW1pdFN1YmplY3Qsc3VibW9kdWxlQ291bnQ6eS5sZW5ndGh9LHUucHVzaCYmIWgucHVzaEVycm9yPyh0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQShFKyJcdUZGMENcdTVERjJcdTYzQThcdTkwMDFcdTMwMDIiLCJzdWNjZXNzIiksV24oKSk6KHR5cGVvZiBBPT0iZnVuY3Rpb24iJiZBKEUrKGgucHVzaEVycm9yPyJcdUZGMUJwdXNoIFx1NTkzMVx1OEQyNVx1RkYxQSIraC5wdXNoRXJyb3I6Ilx1MzAwMiIpLGgucHVzaEVycm9yPyJlcnJvciI6InN1Y2Nlc3MiKSxyLnNlbGVjdGVkSWQmJkJuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KS50aGVuKGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdE9wZW4mJk10KCl9KSl9KS5jYXRjaChmdW5jdGlvbih2KXtyLnF1aWNrQ29tbWl0RXJyb3I9diYmdi5tZXNzYWdlfHwiXHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0XHU1OTMxXHU4RDI1XHUzMDAyIn0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMSxyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJk10KCl9KX19ZnVuY3Rpb24gb2MoZSl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0UHVzaGluZykpe3ZhciB0PSEhKGUmJmUucHVzaENvbW1pdHMpLG49ISEoZSYmZS5wdXNoVGFncyksaT0hIShlJiZlLmNsb3NlT25TdWNjZXNzKTtpZighKCF0JiYhbikpe3ZhciBhPXIucXVpY2tDb21taXRSZXN1bHR8fHt9LHU9ISFhLmluY2x1ZGVTdWJtb2R1bGU7ci5xdWlja0NvbW1pdFB1c2hpbmc9ITAsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixNdCgpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9naXQvcHVzaCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3B1c2hDb21taXRzOnQscHVzaFRhZ3M6bixzdWJtb2R1bGU6dSx0YWc6YS50YWdOYW1lfHwiIn0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCkudGhlbihmdW5jdGlvbihzKXtyZXR1cm57b2s6by5vayxkYXRhOnN9fSl9KS50aGVuKGZ1bmN0aW9uKG8pe3ZhciBzPW8uZGF0YXx8e307aWYoIW8ub2spdGhyb3cgbmV3IEVycm9yKHMmJnMuZXJyb3J8fCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiKTtpZihzLmVycm9yKXtyLnF1aWNrQ29tbWl0UHVzaEVycm9yPXMuZXJyb3IsdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoIlx1NjNBOFx1OTAwMVx1NTkzMVx1OEQyNVx1RkYxQSIrcy5lcnJvciwiZXJyb3IiKTtyZXR1cm59dmFyIGw9W107cy5wdXNoZWRDb21taXRzJiZsLnB1c2goImNvbW1pdHMiKSxzLnB1c2hlZFRhZ3MmJmwucHVzaCgidGFncyIpO3ZhciBkPWwubGVuZ3RoP2wuam9pbigiIFx1NTQ4QyAiKToiXHVGRjA4XHU2NUUwXHU1MTg1XHU1QkI5XHVGRjA5Ijt0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQSgiXHU1REYyXHU2M0E4XHU5MDAxICIrZCwic3VjY2VzcyIpLHIucXVpY2tDb21taXRSZXN1bHQmJihyLnF1aWNrQ29tbWl0UmVzdWx0LnB1c2hlZD0hMCksaT8oV24oKSxyLnNlbGVjdGVkSWQmJkJuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KSk6ci5zZWxlY3RlZElkJiZCbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZNdCgpfSl9KS5jYXRjaChmdW5jdGlvbihvKXtyLnF1aWNrQ29tbWl0UHVzaEVycm9yPW8mJm8ubWVzc2FnZXx8Ilx1NjNBOFx1OTAwMVx1NTkzMVx1OEQyNVx1MzAwMiIsdHlwZW9mIEE9PSJmdW5jdGlvbiImJkEoci5xdWlja0NvbW1pdFB1c2hFcnJvciwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0UHVzaGluZz0hMSxyLnF1aWNrQ29tbWl0T3BlbiYmTXQoKX0pfX19ZnVuY3Rpb24gc2MoZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYodD09PSI/PyIpcmV0dXJue2xldHRlcjoiVSIsY2xzOiJ1bnRyYWNrZWQiLHRpdGxlOiJcdTY3MkFcdThEREZcdThFMkEifTtpZih0PT09IiEhIilyZXR1cm57bGV0dGVyOiJJIixjbHM6Imlnbm9yZWQiLHRpdGxlOiJcdTVERjJcdTVGRkRcdTc1NjUifTtmb3IodmFyIG49IiIsaT0wO2k8ZS5sZW5ndGg7aSsrKWlmKGVbaV0mJmVbaV0hPT0iLiImJmVbaV0hPT0iICIpe249ZVtpXTticmVha31uPShufHx0WzBdfHwiPyIpLnRvVXBwZXJDYXNlKCk7dmFyIGE9e0E6e2NsczoiYWRkIix0aXRsZToiXHU2NUIwXHU1ODlFIn0sTTp7Y2xzOiJtb2QiLHRpdGxlOiJcdTRGRUVcdTY1MzkifSxEOntjbHM6ImRlbCIsdGl0bGU6Ilx1NTIyMFx1OTY2NCJ9LFI6e2NsczoicmVuIix0aXRsZToiXHU5MUNEXHU1NDdEXHU1NDBEIn0sQzp7Y2xzOiJyZW4iLHRpdGxlOiJcdTU5MERcdTUyMzYifSxUOntjbHM6Im1vZCIsdGl0bGU6Ilx1N0M3Qlx1NTc4Qlx1NTNEOFx1NjZGNCJ9LFU6e2NsczoiZGVsIix0aXRsZToiXHU1MUIyXHU3QTgxIn19LHU9YVtuXXx8e2Nsczoib3RoZXIiLHRpdGxlOiJcdTVERjJcdTY2RjRcdTY1MzkifTtyZXR1cm57bGV0dGVyOm4sY2xzOnUuY2xzLHRpdGxlOnUudGl0bGV9fWZ1bmN0aW9uIFlnKGUpe3ZhciB0PWUubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPXNjKG4uc3RhdHVzfHwiIiksYT1uLnBhdGh8fCIiLHU9YS5sYXN0SW5kZXhPZigiLyIpLG89dT49MD9hLnNsaWNlKDAsdSsxKToiIixzPXU+PTA/YS5zbGljZSh1KzEpOmEsbD0iIjtpZihuLmlzU3VibW9kdWxlKXt2YXIgZD1uLnN1Ym1vZHVsZVN0YXRlfHx7fSxmPVtdO2QuY29tbWl0Q2hhbmdlZCYmZi5wdXNoKCJcdTY1QjBcdTYzMDdcdTk0ODgiKSxkLmhhc1RyYWNrZWRDaGFuZ2VzJiZmLnB1c2goImRpcnR5IiksZC5oYXNVbnRyYWNrZWQmJmYucHVzaCgiXHU2NzJBXHU4RERGXHU4RTJBIik7dmFyIGM9Zi5sZW5ndGg/InN1Ym1vZHVsZSBceEI3ICIrZi5qb2luKCIgLyAiKToic3VibW9kdWxlIjtsPSc8c3BhbiBjbGFzcz0icWMtc3VibW9kdWxlLWJhZGdlIj4nK3AoYykrIjwvc3Bhbj4ifXJldHVybic8ZGl2IGNsYXNzPSJxYy1maWxlLXJvdyIgdGl0bGU9IicrcChhKSsnIj48c3BhbiBjbGFzcz0icWMtZmlsZS1iYWRnZSBxYy1iYWRnZS0nK2kuY2xzKyciIHRpdGxlPSInK3AoaS50aXRsZSkrJyI+JytwKGkubGV0dGVyKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJxYy1maWxlLXBhdGgiPicrKG8/JzxzcGFuIGNsYXNzPSJxYy1maWxlLWRpciI+JytwKG8pKyI8L3NwYW4+IjoiIikrJzxzcGFuIGNsYXNzPSJxYy1maWxlLW5hbWUiPicrcChzKSsiPC9zcGFuPjwvc3Bhbj4iK2wrIjwvZGl2PiJ9KS5qb2luKCIiKTtyZXR1cm4gdHx8JzxkaXYgY2xhc3M9InFjLWVtcHR5Ij5cdTZDQTFcdTY3MDlcdTUzRUZcdTYzRDBcdTRFQTRcdTc2ODRcdTY1MzlcdTUyQThcdTMwMDI8L2Rpdj4nfWZ1bmN0aW9uIHVpKCl7cmV0dXJuIHIucXVpY2tDb21taXRTdWJtaXR0aW5nfHxyLnF1aWNrQ29tbWl0UHVzaGluZ31mdW5jdGlvbiBvaShlLHQsbixpKXtyZXR1cm4nPGRpdiBjbGFzcz0icWMtcGFpcicrKGk/IiAiK2k6IiIpKyciPjxkaXYgY2xhc3M9InFjLXBhaXItbGFiZWwiPicrcChlKSsnPC9kaXY+PGRpdiBjbGFzcz0icWMtcGFpci1mbG93Ij48ZGl2IGNsYXNzPSJxYy1wYWlyLXZhbHVlIHFjLXBhaXItdmFsdWUtLWZyb20iPicrdCsnPC9kaXY+PGRpdiBjbGFzcz0icWMtcGFpci1hcnJvdyIgYXJpYS1oaWRkZW49InRydWUiPlx1MjE5MjwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItdmFsdWUgcWMtcGFpci12YWx1ZS0tdG8iPicrbisiPC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBsYygpe3ZhciBlPXIuZ2l0U3RhdHVzfHx7fTtpZihlLmhhc1N1Ym1vZHVsZT09PSEwKXJldHVybiEwO2Zvcih2YXIgdD1lLmZpbGVzfHxbXSxuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSYmdFtuXS5pc1N1Ym1vZHVsZT09PSEwKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGRjKGUpe3ZhciB0PSFlfHx1aSgpLG49bGMoKTtpZihyLnF1aWNrQ29tbWl0U3VibWl0dGluZyl7dmFyIGk9ci5xdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudD8iXHVGRjA4XHU1NDJCIHN1Ym1vZHVsZVx1RkYwOSI6IiIsYT0oci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPyJBSSBcdTc1MUZcdTYyMTAgKyBcdTYzRDBcdTRFQTRcdTRFMkRcdTIwMjYiOiJcdTYyNjdcdTg4NENcdTRFMkRcdTIwMjYiKStpO3JldHVybic8ZGl2IGNsYXNzPSJxYy1kb2NrLXdyYXAiPjxkaXYgY2xhc3M9InFjLWRvY2stYnVzeSIgcm9sZT0ic3RhdHVzIj48c3BhbiBjbGFzcz0icWMtZG9jay1idXN5LWRvdCI+PC9zcGFuPicrcChhKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiB1KHMsbCxkKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxYy1jaGlwIHFjLWNoaXAtLScrcysnIiBkYXRhLWNoaXA9IicrcysnIicrKGQ/JyB0aXRsZT0iJytwKGQpKyciJzoiIikrKHQ/IiBkaXNhYmxlZCI6IiIpKyc+PHNwYW4gY2xhc3M9InFjLWNoaXAtZG90IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJxYy1jaGlwLWxhYmVsIj4nK2wrIjwvc3Bhbj48L2J1dHRvbj4ifXZhciBvPXQ/ZT8iIjoiXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwXHVGRjBDXHU2NUUwXHU1M0VGXHU2M0QwXHU0RUE0IjoiXHU2MkQ2XHU1MkE4XHU3OEMxXHU1NDM4XHU3RUM0XHU1NDA4IFx4QjcgXHU0RTIyXHU4RkRCXHU2M0QwXHU0RUE0XHU1MzNBXHU2MjY3XHU4ODRDIFx4QjcgXHU1MzU1XHU1MUZCXHU3NkY0XHU2M0E1XHU2MjY3XHU4ODRDXHU4QkU1XHU5ODc5Iisobj8iIFx4QjcgU3ViIFx1NzQwM1x1NTNFRlx1OTAwOVx1RkYwQ1x1N0VCM1x1NTE2NVx1NTQwRVx1OTAxMlx1NUY1Mlx1NTkwNFx1NzQwNiBzdWJtb2R1bGUiOiIiKTtyZXR1cm4nPGRpdiBjbGFzcz0icWMtZG9jay13cmFwIHFjLWRvY2std3JhcC0tbWFnbmV0aWMiJysodD8nIGRhdGEtZGlzYWJsZWQ9IjEiJzoiIikrJz48ZGl2IGlkPSJxYy1kb2NrLXN0YWdlIiBjbGFzcz0icWMtZG9jay1zdGFnZSIgZGF0YS1hY3Rpb249ImNvbW1pdCIgZGF0YS1ob3Q9IjAiPjxkaXYgaWQ9InFjLWRvY2stZmllbGQiIGNsYXNzPSJxYy1kb2NrLWZpZWxkIj48ZGl2IGlkPSJxYy1kb2NrLWNsdXN0ZXIiIGNsYXNzPSJxYy1kb2NrLWNsdXN0ZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4nK3UoImNvbW1pdCIsIkNvbW1pdCIpK3UoInRhZyIsIlRhZyIpK3UoInB1c2giLCJQdXNoIikrKG4/dSgic3ViIiwiU3ViIiwiXHU2M0QwXHU0RUE0XHU3MjM2XHU0RUQzXHU1RTkzXHU1RTc2XHU5MDEyXHU1RjUyXHU4RkRCXHU1MTY1IHN1Ym1vZHVsZVx1RkYwOGNvbW1pdCAvIHRhZyAvIFx1NTIwNlx1NTIyQlx1NjNBOFx1OTAwMVx1RkYwOSIpOiIiKSsnPC9kaXY+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJxYy1kb2NrLWxhdW5jaCIgY2xhc3M9InFjLWRvY2stbGF1bmNoIicrKHQ/IiBkaXNhYmxlZCI6IiIpKycgYXJpYS1sYWJlbD0iXHU2MjY3XHU4ODRDXHU2M0QwXHU0RUE0Ij48c3BhbiBjbGFzcz0icWMtZG9jay1sYXVuY2gtYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIyIiBoZWlnaHQ9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTUgMTJoMTJNMTMgNmw2IDYtNiA2Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGlkPSJxYy1kb2NrLWxhdW5jaC1sYWJlbCIgY2xhc3M9InFjLWRvY2stbGF1bmNoLWxhYmVsIj5cdTYzRDBcdTRFQTQ8L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0icWMtZG9jay1oaW50Ij4nK3AobykrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gY2MoKXt2YXIgZT1yLnF1aWNrQ29tbWl0UmVzdWx0O2lmKCFlKXJldHVybiIiO3ZhciB0PWUub2xkQ29tbWl0SGFzaD8iPGNvZGU+IitwKGUub2xkQ29tbWl0SGFzaCkrIjwvY29kZT4iKyhlLm9sZENvbW1pdFN1YmplY3Q/IjxzcGFuPiIrcChlLm9sZENvbW1pdFN1YmplY3QpKyI8L3NwYW4+IjoiIik6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwPC9zcGFuPicsbj1lLmNvbW1pdEhhc2g/Ijxjb2RlPiIrcChlLmNvbW1pdEhhc2gpKyI8L2NvZGU+PHNwYW4+IitwKGUuY29tbWl0TWVzc2FnZXx8IiIpKyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTA8L3NwYW4+JyxpPWUub2xkVGFnPyI8Y29kZT4iK3AoZS5vbGRUYWcpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgdGFnPC9zcGFuPicsYT1lLnRhZ05hbWU/Ijxjb2RlPiIrcChlLnRhZ05hbWUpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY3MkFcdTYyNTMgdGFnPC9zcGFuPicsdT1lLnB1c2hlZD8nPHNwYW4gY2xhc3M9InFjLXJlc3VsdC1wdXNoZWQiPlx1NURGMlx1NjNBOFx1OTAwMTwvc3Bhbj4nOic8YnV0dG9uIGlkPSJxdWljay1jb21taXQtcHVzaC1hZnRlci1idG4iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLXNtIiB0eXBlPSJidXR0b24iJysoci5xdWlja0NvbW1pdFB1c2hpbmc/IiBkaXNhYmxlZCI6IiIpKyI+Iisoci5xdWlja0NvbW1pdFB1c2hpbmc/Ilx1NjNBOFx1OTAwMVx1NEUyRC4uLiI6IlB1c2ggJiBDbG9zZSIpKyI8L2J1dHRvbj4iO3JldHVybic8c2VjdGlvbiBjbGFzcz0icWMtcmVzdWx0LXBhbmVsIj4nK29pKCJDb21taXQiLHQsbiwiIikrb2koIlRhZyIsaSxhLCJxYy1wYWlyLS10YWciKSsoZS5wdXNoRXJyb3J8fHIucXVpY2tDb21taXRQdXNoRXJyb3I/JzxwIGNsYXNzPSJlcnJvci1tZXNzYWdlIj4nK3AoZS5wdXNoRXJyb3J8fHIucXVpY2tDb21taXRQdXNoRXJyb3IpKyI8L3A+IjoiIikrJzxkaXYgY2xhc3M9InFjLXJlc3VsdC1hY3Rpb25zIj48YnV0dG9uIGlkPSJxdWljay1jb21taXQtY2FuY2VsLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTE3M1x1OTVFRDwvYnV0dG9uPicrdSsiPC9kaXY+PC9zZWN0aW9uPiJ9ZnVuY3Rpb24gQ28oKXt2YXIgZT1yLmdpdFN0YXR1c3x8e30sdD1yLnF1aWNrQ29tbWl0Rm9ybXx8e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0sbj0oZS5tb2RpZmllZENvdW50fHwwKT4wLGk9ci5xdWlja0NvbW1pdEdlbmVyYXRpbmcsYT1lLmxhc3RDb21taXR8fHt9LHU9YS5zaG9ydEhhc2g/Ijxjb2RlPiIrcChhLnNob3J0SGFzaCkrIjwvY29kZT48c3Bhbj4iK3AoYS5zdWJqZWN0fHwiIikrIjwvc3Bhbj4iOmUuaGVhZD8iPGNvZGU+IitwKGUuaGVhZC5zdWJzdHJpbmcoMCw3KSkrIjwvY29kZT4iOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMCBjb21taXQ8L3NwYW4+JyxvPWUubGF0ZXN0VGFnPyI8Y29kZT4iK3AoZS5sYXRlc3RUYWcpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgdGFnPC9zcGFuPicscz0nPGlucHV0IHR5cGU9InRleHQiIGlkPSJxdWljay1jb21taXQtdGFnIiBjbGFzcz0iZmllbGQtaW5wdXQgcWMtdGFnLWZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU3NTU5XHU3QTdBXHU1MjE5IEFJIFx1NzUxRlx1NjIxMCIgdmFsdWU9IicrcCh0LnRhZ3x8IiIpKyciJysoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc/IiBkaXNhYmxlZCI6IiIpKyI+IixsPSc8dGV4dGFyZWEgaWQ9InF1aWNrLWNvbW1pdC1tZXNzYWdlIiBjbGFzcz0iZmllbGQtaW5wdXQgcWMtbWVzc2FnZS1pbnB1dCIgcm93cz0iMyIgcGxhY2Vob2xkZXI9Ik5ldyBjb21taXQgbWVzc2FnZSIgJysoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc/ImRpc2FibGVkIjoiIikrIj4iK3AodC5jdXN0b21NZXNzYWdlfHwiIikrIjwvdGV4dGFyZWE+IixkPVtdO2QucHVzaChlLmJyYW5jaHx8IihubyBicmFuY2gpIiksZC5wdXNoKG4/KGUubW9kaWZpZWRDb3VudHx8MCkrIiBcdTRFMkFcdTY1MzlcdTUyQTgiOiJcdTVERTVcdTRGNUNcdTUzM0FcdTVFNzJcdTUxQzAiKSx0eXBlb2YgZS5haGVhZD09Im51bWJlciImJmUuYWhlYWQ+MCYmZC5wdXNoKCJcdTIxOTEiK2UuYWhlYWQpLHR5cGVvZiBlLmJlaGluZD09Im51bWJlciImJmUuYmVoaW5kPjAmJmQucHVzaCgiXHUyMTkzIitlLmJlaGluZCk7dmFyIGY9ci5xdWlja0NvbW1pdFJlc3VsdD8iIjonPHNlY3Rpb24gY2xhc3M9InFjLXJlbGVhc2UtcGFuZWwiPjxkaXYgY2xhc3M9InFjLW1lc3NhZ2UtaGVhZGVyIj48c3BhbiBjbGFzcz0icWMtc2VjdGlvbi10aXRsZSI+TmV3PC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icXVpY2stY29tbWl0LWFpLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHFjLWFpLWJ0biInKyhpPyIgZGlzYWJsZWQiOiIiKSsnIHRpdGxlPSJBSSBcdTc1MUZcdTYyMTAgY29tbWl0IG1lc3NhZ2UgXHU0RTBFIHRhZyI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDEuNWwxLjQgMy42TDEzIDYuNSA5LjQgNy45IDggMTEuNSA2LjYgNy45IDMgNi41bDMuNi0xLjRMOCAxLjV6TTEyLjUgMTAuNWwuNyAxLjggMS44LjctMS44LjctLjcgMS44LS43LTEuOC0xLjgtLjcgMS44LS43LjctMS44eiIgZmlsbD0iY3VycmVudENvbG9yIi8+PC9zdmc+PHNwYW4+JysoaT8iXHU3NTFGXHU2MjEwXHU0RTJELi4uIjoiQUkiKSsiPC9zcGFuPjwvYnV0dG9uPjwvZGl2PiIrb2koIkNvbW1pdCIsdSxsLCJxYy1wYWlyLS1jb21taXQiKStvaSgiVGFnIixvLHMsInFjLXBhaXItLXRhZyIpKyhyLnF1aWNrQ29tbWl0RXJyb3I/JzxwIGNsYXNzPSJlcnJvci1tZXNzYWdlIj4nK3Aoci5xdWlja0NvbW1pdEVycm9yKSsiPC9wPiI6IiIpK2RjKG4pKyc8ZGl2IGNsYXNzPSJxYy1tb2RhbC1hY3Rpb25zIj48YnV0dG9uIGlkPSJxdWljay1jb21taXQtY2FuY2VsLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTNENlx1NkQ4ODwvYnV0dG9uPjwvZGl2Pjwvc2VjdGlvbj4nLGM9Y2MoKTtyZXR1cm4nPHNlY3Rpb24gaWQ9InF1aWNrLWNvbW1pdC1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wJysoci5xdWlja0NvbW1pdE9wZW4/IiI6IiBoaWRkZW4iKSsnIj48ZGl2IGNsYXNzPSJtb2RhbCBxdWljay1jb21taXQtbW9kYWwiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1jb21taXQtdGl0bGUiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgaWQ9InF1aWNrLWNvbW1pdC10aXRsZSIgY2xhc3M9Im1vZGFsLXRpdGxlIj5cdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTQ8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSI+JytwKGQuam9pbigiIFx4QjcgIikpKyc8L3A+PC9kaXY+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNsb3NlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPicrZitjKyI8L2Rpdj48L2Rpdj48L3NlY3Rpb24+In1mdW5jdGlvbiBmYygpe3JldHVybic8c2VjdGlvbiBpZD0id29ya3RyZWUtbWVyZ2UtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIHdvcmt0cmVlLW1lcmdlLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU1NDA4XHU1RTc2IFdvcmt0cmVlPC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPlx1NjhDMFx1NjdFNVx1NUY1M1x1NTI0RFx1NEVGQlx1NTJBMVx1NTIwNlx1NjUyRlx1NUU3Nlx1NUZFQlx1NjM3N1x1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRlx1MzAwMjwvcD48L2Rpdj48YnV0dG9uIGlkPSJjbG9zZS13b3JrdHJlZS1tZXJnZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij48ZGl2IGlkPSJ3b3JrdHJlZS1tZXJnZS1jb250ZW50IiBjbGFzcz0id29ya3RyZWUtbWVyZ2UtY29udGVudCI+PC9kaXY+PHAgaWQ9Indvcmt0cmVlLW1lcmdlLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1hY3Rpb25zIj48YnV0dG9uIGlkPSJ3b3JrdHJlZS1tZXJnZS1jYW5jZWwtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiPlx1NTNENlx1NkQ4ODwvYnV0dG9uPjxidXR0b24gaWQ9Indvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij5cdTc4NkVcdThCQTRcdTU0MDhcdTVFNzZcdTVFNzZcdTZFMDVcdTc0MDY8L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBwYygpe3JldHVybic8c2VjdGlvbiBpZD0ic2V0dGluZ3MtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIHNldHRpbmdzLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIgc2V0dGluZ3MtbW9kYWwtaGVhZGVyIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RhbC10aXRsZS1ncm91cCI+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU4QkJFXHU3RjZFPC9oMj48cCBjbGFzcz0ic2V0dGluZ3MtbW9kYWwtc3VidGl0bGUiPlx1OEMwM1x1NjU3NFx1NUU5NFx1NzUyOFx1OTE0RFx1N0Y2RVx1MzAwMVx1OTAxQVx1NzdFNVx1MzAwMVx1NUI4OVx1NTE2OFx1NTQ4Q1x1NjYzRVx1NzkzQVx1NTA0Rlx1NTk3RDwvcD48L2Rpdj48YnV0dG9uIGlkPSJjbG9zZS1zZXR0aW5ncy1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IHNldHRpbmdzLW1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9InNldHRpbmdzLWxheW91dCI+PGFzaWRlIGNsYXNzPSJzZXR0aW5ncy1zaWRlYmFyIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zaWRlYmFyLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci10aXRsZSI+XHU1MDRGXHU1OTdEXHU4QkJFXHU3RjZFPC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci1oaW50Ij5cdTVERTZcdTRGQTdcdTUyMDdcdTYzNjJcdTUyMDZcdTUzM0FcdUZGMENcdTUzRjNcdTRGQTdcdTY3RTVcdTc3MEJcdThCRTZcdTdFQzZcdThCRjRcdTY2MEVcdTRFMEVcdTkwMDlcdTk4NzlcdTMwMDI8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10YWJzIiByb2xlPSJ0YWJsaXN0IiBhcmlhLWxhYmVsPSJcdThCQkVcdTdGNkVcdTUyMDZcdTdFQzQiIGFyaWEtb3JpZW50YXRpb249InZlcnRpY2FsIj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIgYWN0aXZlIiBkYXRhLXRhYj0iYWJvdXQiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWFib3V0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NTE3M1x1NEU4RTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NzI0OFx1NjcyQ1x1MzAwMVx1NjZGNFx1NjVCMFx1NEUwRVx1OEZERVx1NjNBNVx1NjVCOVx1NUYwRjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJnZW5lcmFsIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItZ2VuZXJhbCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTU3RkFcdTY3MkNcdTkxNERcdTdGNkU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTZBMjFcdTU3OEJcdTMwMDFcdTZBMjFcdTVGMEZcdTRFMEVcdThGRDBcdTg4NENcdTczQUZcdTU4ODM8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0ibm90aWZpY2F0aW9ucyIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLW5vdGlmaWNhdGlvbnMiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU5MDFBXHU3N0U1PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU2M0QwXHU3OTNBXHU5N0YzXHU0RTBFXHU2RDRGXHU4OUM4XHU1NjY4XHU5MDFBXHU3N0U1PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9InNlY3VyaXR5IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItc2VjdXJpdHkiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1Qjg5XHU1MTY4PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU1QkM2XHU3ODAxXHU0RTBFXHU4QkMxXHU0RTY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9InByZXNldHMiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1wcmVzZXRzIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NjdFNVx1NzcwQlx1NURGMlx1NjcwOVx1OTg4NFx1OEJCRTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJkaXNwbGF5IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItZGlzcGxheSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTY2M0VcdTc5M0E8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTg4NENcdTRFM0E8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9hc2lkZT48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCBhY3RpdmUiIGlkPSJzZXR0aW5ncy10YWItYWJvdXQiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NTE3M1x1NEU4RSBXYW5kPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU2N0U1XHU3NzBCXHU3MjQ4XHU2NzJDXHU0RkUxXHU2MDZGXHUzMDAxXHU2NkY0XHU2NUIwXHU3MkI2XHU2MDAxXHU1NDhDIEFuZHJvaWQgQXBwIFx1OEZERVx1NjNBNVx1NjVCOVx1NUYwRlx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1pbmZvIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1MzA1XHU1NDBEPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLXBrZy1uYW1lIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTVGNTNcdTUyNERcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtdmVyc2lvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+Tm9kZS5qcyBcdTg5ODFcdTZDNDI8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3Mtbm9kZS1yZXEiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NEVEM1x1NUU5M1x1NTczMFx1NTc0MDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1yZXBvLXVybCI+PGEgaHJlZj0iIyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPi08L2E+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIiBpZD0id2ViLXVwZGF0ZS1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigiZ2xvYmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5XZWIgXHU3QUVGPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NkQ0Rlx1ODlDOFx1NTY2OFx1OEJCRlx1OTVFRVx1NzY4NFx1NjcwRFx1NTJBMVx1NzI0OFx1NjcyQzwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU2NzAwXHU2NUIwXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNoZWNrLXVwZGF0ZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iPlx1NjhDMFx1NjdFNVx1NjZGNFx1NjVCMDwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iZG8tdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIj5cdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDg8L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImRvLXJlc3RhcnQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbSBoaWRkZW4iPlx1OTFDRFx1NTQyRlx1NzUxRlx1NjU0ODwvYnV0dG9uPjwvZGl2PjxwIGlkPSJ1cGRhdGUtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPkJldGEgXHU5MDFBXHU5MDUzPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU2NkY0XHU2NUIwXHU1MjMwIG5wbSBiZXRhIFx1NzI0OFx1NjcyQ1x1RkYwOHRhZyArIGNvbW1pdCBcdTVDM0VcdTY4MDdcdUZGMDlcdUZGMENcdTVDMURcdTlDOUNcdTY1QjBcdTUyOUZcdTgwRkRcdUZGMENcdTUzRUZcdTgwRkRcdTRFMERcdTdBMzNcdTVCOUFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImJldGEtY2hhbm5lbC10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NjhDMFx1NkQ0Qlx1NTIzMFx1NjVCMFx1NzI0OFx1NjcyQ1x1NUMwNlx1ODFFQVx1NTJBOFx1NEUwQlx1OEY3RFx1NUI4OVx1ODhDNVx1NUU3Nlx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiBoaWRkZW4iIGlkPSJhbmRyb2lkLWFway1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigic21hcnRwaG9uZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPkFuZHJvaWQgQXBwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NTM5Rlx1NzUxRlx1NUJBMlx1NjIzN1x1N0FFRlx1NzI0OFx1NjcyQ1x1NEUwRSBBUEsgXHU0RTBCXHU4RjdEPC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXBrLWN1cnJlbnQtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTVGNTNcdTUyNERcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtYW5kcm9pZC1hcGstY3VycmVudCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWFway1naXRodWItcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1N0VCRlx1NEUwQVx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWdpdGh1YiI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1naXRodWItYXBrLWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU0RTBCXHU4RjdEPC9idXR0b24+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hcGstbG9jYWwtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcyQ1x1NTczMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWxvY2FsIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWxvY2FsLWFway1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXV0by11cGRhdGUtcm93IiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIiBpZD0iYW5kcm9pZC1hdXRvLXVwZGF0ZS1oaW50Ij5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDggQVBLIFx1NjVGNlx1ODFFQVx1NTJBOFx1NjJDOVx1OEQ3N1x1NEUwQlx1OEY3RFx1RkYwQ1x1NUI4OVx1ODhDNVx1NEVDRFx1OTcwMFx1NTcyOFx1N0NGQlx1N0VERlx1NEUyRFx1Nzg2RVx1OEJBNFx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48cCBpZD0iYW5kcm9pZC1hcGstbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24gaGlkZGVuIiBpZD0ibWFjb3MtZG1nLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJkZXNrdG9wIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+bWFjT1MgQXBwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NTM5Rlx1NzUxRlx1NUJBMlx1NjIzN1x1N0FFRlx1NzI0OFx1NjcyQ1x1NEUwRSBETUcgXHU0RTBCXHU4RjdEPC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1jdXJyZW50LXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1jdXJyZW50Ij4tPC9zcGFuPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1naXRodWItcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1N0VCRlx1NEUwQVx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1naXRodWIiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtZ2l0aHViLWRtZy1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1sb2NhbC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgc2V0dGluZ3MtYWJvdXQtcm93LWFjdGlvbiBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU2NzJDXHU1NzMwXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSBzZXR0aW5ncy12YWx1ZS1mbGV4IiBpZD0ic2V0dGluZ3MtbWFjb3MtZG1nLWxvY2FsIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWxvY2FsLWRtZy1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWF1dG8tdXBkYXRlLXJvdyIgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3cgaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyIgaWQ9Im1hY29zLWF1dG8tdXBkYXRlLWhpbnQiPlx1NjhDMFx1NkQ0Qlx1NTIzMFx1NjVCMFx1NzI0OCBETUcgXHU1QzA2XHU4MUVBXHU1MkE4XHU0RTBCXHU4RjdEXHU1RTc2XHU2MzAyXHU4RjdEXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhdXRvLXVwZGF0ZS1kbWctdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxwIGlkPSJtYWNvcy1kbWctbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24iIGlkPSJhbmRyb2lkLWNvbm5lY3Qtc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoImxpbmsiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5BcHAgXHU4RkRFXHU2M0E1XHU3ODAxPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1N0M5OFx1OEQzNFx1NTIzMCBBbmRyb2lkIEFwcCBcdTUzNzNcdTUzRUZcdTgxRUFcdTUyQThcdThGREVcdTYzQTVcdUZGMENcdTY1RTBcdTk3MDBcdTVCQzZcdTc4MDFcdUZGMUJcdTY1MzlcdTVCQzZcdTc4MDFcdTU0MEVcdTU5MzFcdTY1NDhcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC11cmwtYm94Ij48Y29kZSBpZD0iYW5kcm9pZC1jb25uZWN0LWNvZGUiIGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXVybC10ZXh0Ij4tPC9jb2RlPjxidXR0b24gaWQ9ImNvcHktY29ubmVjdC1jb2RlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1OTBEXHU1MjM2XHU4RkRFXHU2M0E1XHU3ODAxIj5cdTU5MERcdTUyMzY8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWJveCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci13cmFwIiBpZD0iYW5kcm9pZC1jb25uZWN0LXFyLXdyYXAiIHRpdGxlPSJcdTcwQjlcdTUxRkJcdTY1M0VcdTU5MjciPjxjYW52YXMgaWQ9ImFuZHJvaWQtY29ubmVjdC1xciIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIxODAiPjwvY2FudmFzPjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItZW1wdHkiIGlkPSJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiPlx1NzUxRlx1NjIxMFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWhpbnQiPlx1NzUyOCBXYW5kIEFwcCBcdTYyNkJcdTRFMDBcdTYyNkJcdUZGMENcdTUzNzNcdTUzRUZcdTRFMDBcdTk1MkVcdTU4NkJcdTUxNjVcdTY3MERcdTUyQTFcdTU2NjhcdTU3MzBcdTU3NDBcdTRFMEVcdThGREVcdTYzQTVcdTc4MDFcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItbm90aWZpY2F0aW9ucyIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU5MDFBXHU3N0U1PC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU4QkJFXHU3RjZFXHU2M0QwXHU3OTNBXHU5N0YzXHUzMDAxXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1NDhDXHU2RDRGXHU4OUM4XHU1NjY4XHU5MDFBXHU3N0U1XHU3Njg0XHU4ODRDXHU0RTNBXHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigiYmVsbCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1OTAxQVx1NzdFNVx1NTA0Rlx1NTk3RDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTYzRDBcdTc5M0FcdTk3RjNcdTRFMEVcdTVFOTRcdTc1MjhcdTUxODVcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTE8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1ub3RpZi1zb3VuZCI+XHU2NEFEXHU2NTNFXHU2M0QwXHU3OTNBXHU5N0YzPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1OTFDRFx1ODk4MVx1OTAxQVx1NzdFNVx1RkYwOFx1NzI0OFx1NjcyQ1x1NjZGNFx1NjVCMFx1MzAwMVx1Njc0M1x1OTY1MFx1N0I0OVx1NUY4NVx1N0I0OVx1RkYwOVx1NjVGNlx1NjRBRFx1NjUzRVx1NjdENFx1NTQ4Q1x1NjNEMFx1NzkzQVx1OTdGM1x1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctbm90aWYtc291bmQiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcmFuZ2Utcm93IiBpZD0ibm90aWYtdm9sdW1lLWZpZWxkIj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXJhbmdlLWxhYmVsIiBmb3I9ImNmZy1ub3RpZi12b2x1bWUiPlx1OTdGM1x1OTFDRjwvbGFiZWw+PGlucHV0IGlkPSJjZmctbm90aWYtdm9sdW1lIiB0eXBlPSJyYW5nZSIgbWluPSIwIiBtYXg9IjEwMCIgc3RlcD0iNSIgY2xhc3M9InNldHRpbmdzLXJhbmdlIiAvPjxzcGFuIGlkPSJjZmctbm90aWYtdm9sdW1lLXZhbCIgY2xhc3M9InNldHRpbmdzLXJhbmdlLXZhbHVlIj44MCU8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1ub3RpZi1idWJibGUiPlx1NUU5NFx1NzUyOFx1NTE4NVx1OTAxQVx1NzdFNVx1NkMxNFx1NkNFMTwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTU3MjhcdTk4NzVcdTk3NjJcdTk4NzZcdTkwRThcdTVGMzlcdTUxRkFcdTZENkVcdTUyQThcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLWJ1YmJsZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJuYXRpdmUtc291bmQtc2VjdGlvbiIgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoIm11c2ljIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+XHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU5NEMzXHU1OEYwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1OTAwOVx1NjJFOSBBbmRyb2lkIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NEY3Rlx1NzUyOFx1NzY4NFx1OTRDM1x1NThGMDwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24iPjxzZWxlY3QgaWQ9Im5hdGl2ZS1zb3VuZC1zZWxlY3QiIGNsYXNzPSJmaWVsZC1pbnB1dCBmaWVsZC1zZWxlY3QiPjwvc2VsZWN0PjxidXR0b24gaWQ9Im5hdGl2ZS1zb3VuZC1wcmV2aWV3IiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGJ0bi13aXRoLWljb24iIHR5cGU9ImJ1dHRvbiI+JytWKCJwbGF5Iix7c2l6ZToxMSxzdHJva2VXaWR0aDoxLjgsZmlsbDoiY3VycmVudENvbG9yIn0pKyc8c3Bhbj5cdThCRDVcdTU0MkM8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmF0aXZlLWhhcHRpYy1zZWN0aW9uIiBjbGFzcz0ic2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24gaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigidmlicmF0ZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1ODlFNlx1NjExRlx1NTNDRFx1OTk4ODwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTYzMDlcdTk0QUVcdTY0Q0RcdTRGNUNcdTU0OENcdTRFRkJcdTUyQTFcdTVCOENcdTYyMTBcdTY1RjZcdTYzRDBcdTRGOUJcdTYzMkZcdTUyQThcdTUzQ0RcdTk5ODg8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1oYXB0aWMtZW5hYmxlZCI+XHU1NDJGXHU3NTI4XHU4OUU2XHU2MTFGXHU1M0NEXHU5OTg4PC9sYWJlbD48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaGFwdGljLWVuYWJsZWQiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJnbG9iZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNTwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTY3NjVcdTgxRUFcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTRFMkRcdTVGQzNcdTc2ODRcdTVGMzlcdTdBOTc8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjM4OFx1Njc0M1x1NzJCNlx1NjAwMTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJub3RpZmljYXRpb24tcGVybWlzc2lvbi1zdGF0dXMiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLWFjdGlvbnMiPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi1yZXF1ZXN0LWJ0biIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NjM4OFx1Njc0M1x1OTAxQVx1NzdFNTwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi1yZXNldC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU5MUNEXHU2NUIwXHU2Mzg4XHU2NzQzPC9idXR0b24+PGJ1dHRvbiBpZD0ibm90aWZpY2F0aW9uLXRlc3QtYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTNEMVx1OTAwMVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNTwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPjEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1nZW5lcmFsIiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTU3RkFcdTY3MkNcdTkxNERcdTdGNkU8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTkxNERcdTdGNkVcdTY3MERcdTUyQTFcdThGREVcdTYzQTVcdTMwMDFcdTlFRDhcdThCQTRcdTZBMjFcdTU3OEJcdTMwMDFcdTYyNjdcdTg4NENcdTY1QjlcdTVGMEZcdTU0OENcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQtcm93Ij48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctaG9zdCI+XHU3NkQxXHU1NDJDXHU1NzMwXHU1NzQwIChob3N0KTwvbGFiZWw+PGlucHV0IGlkPSJjZmctaG9zdCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iMTI3LjAuMC4xIiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1wb3J0Ij5cdTdBRUZcdTUzRTMgKHBvcnQpPC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1wb3J0IiB0eXBlPSJudW1iZXIiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ijg0NDMiIG1pbj0iMSIgbWF4PSI2NTUzNSIgLz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLWh0dHBzIj5cdTU0MkZcdTc1MjggSFRUUFM8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU0RjdGXHU3NTI4XHU4MUVBXHU3QjdFXHU1NDBEXHU4QkMxXHU0RTY2XHU1MkEwXHU1QkM2XHU2RDRGXHU4OUM4XHU1NjY4XHU1MjMwXHU2NzBEXHU1MkExXHU3Njg0XHU4RkRFXHU2M0E1XHVGRjBDaG9zdCBcdTRFM0FcdTk3NUUgMTI3LjAuMC4xIFx1NjVGNlx1NUVGQVx1OEJBRVx1NUYwMFx1NTQyRlx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaHR0cHMiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQtcm93Ij48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctbW9kZSI+XHU5RUQ4XHU4QkE0XHU2MjY3XHU4ODRDXHU2QTIxXHU1RjBGPC9sYWJlbD48c2VsZWN0IGlkPSJjZmctbW9kZSIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSJkZWZhdWx0Ij5kZWZhdWx0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXNzaXN0Ij5hc3Npc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZ2VudCI+YWdlbnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZ2VudC1tYXgiPmFnZW50LW1heDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImF1dG8tZWRpdCI+YXV0by1lZGl0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZnVsbC1hY2Nlc3MiPmZ1bGwtYWNjZXNzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibmF0aXZlIj5uYXRpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJtYW5hZ2VkIj5tYW5hZ2VkPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWxhbmd1YWdlIj5cdTU2REVcdTU5MERcdThCRURcdThBMDA8L2xhYmVsPjxzZWxlY3QgaWQ9ImNmZy1sYW5ndWFnZSIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSIiPlx1ODFFQVx1NTJBOFx1RkYwOFx1NEUwRFx1NjMwN1x1NUI5QVx1RkYwOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1NEUyRFx1NjU4NyI+XHU0RTJEXHU2NTg3PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRW5nbGlzaCI+RW5nbGlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1NjVFNVx1NjcyQ1x1OEE5RSI+XHU2NUU1XHU2NzJDXHU4QTlFPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iXHVENTVDXHVBRDZEXHVDNUI0Ij5cdUQ1NUNcdUFENkRcdUM1QjQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJFc3BhXHhGMW9sIj5Fc3BhXHhGMW9sPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRnJhblx4RTdhaXMiPkZyYW5ceEU3YWlzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRGV1dHNjaCI+RGV1dHNjaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOSI+XHUwNDIwXHUwNDQzXHUwNDQxXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDM5PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PC9kaXY+PHAgY2xhc3M9ImZpZWxkLWhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOi00cHg7Ij5cdThCQkVcdTdGNkVcdTU2REVcdTU5MERcdThCRURcdThBMDBcdTU0MEVcdUZGMENDbGF1ZGUgXHU1QzA2XHU1QzNEXHU5MUNGXHU0RjdGXHU3NTI4XHU2MzA3XHU1QjlBXHU4QkVEXHU4QTAwXHU1NkRFXHU1OTBEXHUzMDAyPC9wPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciI+XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREIFJ1bm5lcjwvbGFiZWw+PHNlbGVjdCBpZD0iY2ZnLXN0cnVjdHVyZWQtcnVubmVyIiBjbGFzcz0iZmllbGQtaW5wdXQiPjxvcHRpb24gdmFsdWU9InNkayI+U0RLXHVGRjA4QGFudGhyb3BpYy1haS9jbGF1ZGUtYWdlbnQtc2RrXHVGRjBDXHU5RUQ4XHU4QkE0XHVGRjA5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2xpIj5DTElcdUZGMDhzcGF3biBjbGF1ZGUgLXBcdUZGMDk8L29wdGlvbj48L3NlbGVjdD48cCBjbGFzcz0iZmllbGQtaGludCIgc3R5bGU9Im1hcmdpbi10b3A6NHB4OyI+U0RLIFx1NkEyMVx1NUYwRlx1NEY3Rlx1NzUyOFx1NUI5OFx1NjVCOSBBZ2VudCBTREsgXHU2NkZGXHU0RUUzIENMSSBzdWJwcm9jZXNzXHVGRjBDXHU2M0E1XHU1M0UzXHU2NkY0XHU2NTc0XHU2RDAxXHVGRjBDXHU1MjlGXHU4MEZEXHU3QjQ5XHU0RUY3XHUzMDAyXHU0RkREXHU1QjU4XHU1NDBFXHU1QkY5XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU3QUNCXHU1MzczXHU3NTFGXHU2NTQ4XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctaW5oZXJpdC1lbnYiPlx1N0VFN1x1NjI3Rlx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRjwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTU0MkZcdTUyQTggUFRZIC8gXHU3RUQzXHU2Nzg0XHU1MzE2XHU1QjUwXHU4RkRCXHU3QTBCXHU2NUY2XHVGRjBDXHU2MjhBXHU1RjUzXHU1MjREXHU2NzBEXHU1MkExXHU4RkRCXHU3QTBCXHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGXHU0RjIwXHU3RUQ5IGNsYXVkZSAvIGNvZGV4XHUzMDAyXHU1MTczXHU5NUVEXHU1NDBFXHU1QjUwXHU4RkRCXHU3QTBCXHU0RUM1XHU4M0I3XHU1Rjk3XHU2NzAwXHU1QzBGXHU1M0VGXHU3NTI4XHU3M0FGXHU1ODgzXHVGRjA4UEFUSC9IT01FL1NIRUxML0xBTkcvVEVSTSBcdTdCNDlcdUZGMDlcdUZGMENcdTUzRUZcdTc1MjhcdTRFOEVcdTk2OTRcdTc5QkIgQVBJIGtleSBcdTdCNDlcdTY1NEZcdTYxMUZcdTUxRURcdTYzNkVcdTMwMDI8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWFzaWRlIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNmZy12aWV3LWVudi1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTVCOUVcdTk2NDVcdTRGMUFcdTZDRThcdTUxNjVcdTUyMzBcdTVCNTBcdThGREJcdTdBMEJcdTc2ODRcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0YiPlx1NjdFNVx1NzcwQjwvYnV0dG9uPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1pbmhlcml0LWVudiIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48c2VjdGlvbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZCIgYXJpYS1sYWJlbGxlZGJ5PSJzZXR0aW5ncy1tb2RlbC1jYXJkLXRpdGxlIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1jYXJkLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkaW5nIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytWKCJjcHUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PGRpdj48aDQgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtdGl0bGUiIGlkPSJzZXR0aW5ncy1tb2RlbC1jYXJkLXRpdGxlIj5cdTlFRDhcdThCQTRcdTZBMjFcdTU3OEI8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1jYXJkLWRlc2MiPlx1NEVDRVx1NURGMlx1NjhDMFx1NkQ0Qlx1NTIxN1x1ODg2OFx1NEUyRFx1OTAwOVx1NjJFOVx1RkYwQ1x1NjIxNlx1NzZGNFx1NjNBNVx1OEY5M1x1NTE2NVx1ODFFQVx1NUI5QVx1NEU0OVx1NkEyMVx1NTc4Qlx1NTQwRFx1NzlGMCAvIElEXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2ZnLWRlZmF1bHQtbW9kZWwtcmVmcmVzaCIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBzZXR0aW5ncy1tb2RlbC1yZWZyZXNoIiB0aXRsZT0iXHU5MUNEXHU2NUIwXHU2OEMwXHU2RDRCIENsYXVkZSBcdTRFMEUgQ29kZXggXHU2QTIxXHU1NzhCIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMjAgMTFhOC4xIDguMSAwIDAgMC0xNS41LTJNNCA0djVoNSIvPjxwYXRoIGQ9Ik00IDEzYTguMSA4LjEgMCAwIDAgMTUuNSAyTTIwIDIwdi01aC01Ii8+PC9zdmc+PHNwYW4+XHU1MjM3XHU2NUIwXHU1MjE3XHU4ODY4PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWdyaWQiPjxkaXYgY2xhc3M9ImZpZWxkIHNldHRpbmdzLW1vZGVsLWZpZWxkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1sYWJlbC1yb3ciPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWRlZmF1bHQtbW9kZWwiPkNsYXVkZTwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXByb3ZpZGVyIj5DbGF1ZGUgQ29kZTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveCIgZGF0YS1wcm92aWRlcj0iY2xhdWRlIj48ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveC1jb250cm9sIj48aW5wdXQgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsIiBjbGFzcz0iZmllbGQtaW5wdXQgbW9kZWwtY29tYm9ib3gtaW5wdXQiIHR5cGU9InRleHQiIHJvbGU9ImNvbWJvYm94IiBhcmlhLWF1dG9jb21wbGV0ZT0ibGlzdCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImNmZy1kZWZhdWx0LW1vZGVsLWxpc3Rib3giIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ibm9uZSIgYXV0b2NvcnJlY3Q9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIHBsYWNlaG9sZGVyPSJcdThEREZcdTk2OEYgQ2xhdWRlIENvZGUgXHU5RUQ4XHU4QkE0IiAvPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtdG9nZ2xlIiBhcmlhLWxhYmVsPSJcdTVDNTVcdTVGMDAgQ2xhdWRlIFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0ibTcgMTAgNSA1IDUtNSIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLWxpc3Rib3giIGNsYXNzPSJtb2RlbC1jb21ib2JveC1tZW51IGhpZGRlbiIgcm9sZT0ibGlzdGJveCIgYXJpYS1sYWJlbD0iQ2xhdWRlIFx1NkEyMVx1NTc4QiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbWV0YSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXN0YXR1cyIgZGF0YS1tb2RlbC1zdGF0dXM9ImNsYXVkZSI+XHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQ8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWhlbHAiPlx1NEYxQVx1NTM5Rlx1NjgzN1x1NEYyMFx1N0VEOSA8Y29kZT4tLW1vZGVsPC9jb2RlPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCBzZXR0aW5ncy1tb2RlbC1maWVsZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93Ij48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIj5Db2RleDwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXByb3ZpZGVyIj5Db2RleCBDTEk8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibW9kZWwtY29tYm9ib3giIGRhdGEtcHJvdmlkZXI9ImNvZGV4Ij48ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveC1jb250cm9sIj48aW5wdXQgaWQ9ImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIiBjbGFzcz0iZmllbGQtaW5wdXQgbW9kZWwtY29tYm9ib3gtaW5wdXQiIHR5cGU9InRleHQiIHJvbGU9ImNvbWJvYm94IiBhcmlhLWF1dG9jb21wbGV0ZT0ibGlzdCIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9ImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsLWxpc3Rib3giIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ibm9uZSIgYXV0b2NvcnJlY3Q9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIHBsYWNlaG9sZGVyPSJcdThEREZcdTk2OEYgQ29kZXggXHU5RUQ4XHU4QkE0IiAvPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtdG9nZ2xlIiBhcmlhLWxhYmVsPSJcdTVDNTVcdTVGMDAgQ29kZXggXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4Ij48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJtNyAxMCA1IDUgNS01Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iY2ZnLWRlZmF1bHQtY29kZXgtbW9kZWwtbGlzdGJveCIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LW1lbnUgaGlkZGVuIiByb2xlPSJsaXN0Ym94IiBhcmlhLWxhYmVsPSJDb2RleCBcdTZBMjFcdTU3OEIiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1zdGF0dXMiIGRhdGEtbW9kZWwtc3RhdHVzPSJjb2RleCI+XHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQ8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWhlbHAiPlx1NzU1OVx1N0E3QVx1NTIxOVx1NEUwRFx1NEYyMFx1NkEyMVx1NTc4Qlx1NTNDMlx1NjU3MDwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCBzZXR0aW5ncy1tb2RlbC12ZXJzaW9uIiBpZD0iY2ZnLWRlZmF1bHQtbW9kZWwtdmVyc2lvbiI+XHU2QTIxXHU1NzhCXHU1NDBEXHU3OUYwXHU0RUM1XHU1NzI4XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU2NUY2XHU0RjVDXHU0RTNBXHU5RUQ4XHU4QkE0XHU1MDNDXHVGRjFCXHU4RkQwXHU4ODRDXHU0RTJEXHU3Njg0XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHU0RUNEXHU1M0VGXHU1MzU1XHU3MkVDXHU1MjA3XHU2MzYyXHUzMDAyPC9wPjwvc2VjdGlvbj48c2VjdGlvbiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZCIgYXJpYS1sYWJlbGxlZGJ5PSJzZXR0aW5ncy1jb21taXQtbW9kZWwtY2FyZC10aXRsZSI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGluZyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrVigiZWRpdCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48ZGl2PjxoNCBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC10aXRsZSIgaWQ9InNldHRpbmdzLWNvbW1pdC1tb2RlbC1jYXJkLXRpdGxlIj5Db21taXQgXHU3NTFGXHU2MjEwPC9oND48cCBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtY2FyZC1kZXNjIj5cdTYzMDdcdTVCOUFcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTRcdTc1MUZcdTYyMTAgbWVzc2FnZSBcdTRFMEUgdGFnIFx1NjVGNlx1NEY3Rlx1NzUyOFx1NzY4NCBDTEkgXHU1NDhDXHU2QTIxXHU1NzhCXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2ZnLWNvbW1pdC1tb2RlbC1yZWZyZXNoIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIHNldHRpbmdzLW1vZGVsLXJlZnJlc2giIHRpdGxlPSJcdTkxQ0RcdTY1QjBcdTY4QzBcdTZENEJcdTYyNDBcdTkwMDkgQ0xJIFx1NzY4NFx1NkEyMVx1NTc4QiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIwIDExYTguMSA4LjEgMCAwIDAtMTUuNS0yTTQgNHY1aDUiLz48cGF0aCBkPSJNNCAxM2E4LjEgOC4xIDAgMCAwIDE1LjUgMk0yMCAyMHYtNWgtNSIvPjwvc3ZnPjxzcGFuPlx1NTIzN1x1NjVCMFx1NTIxN1x1ODg2ODwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1ncmlkIj48ZGl2IGNsYXNzPSJmaWVsZCBzZXR0aW5ncy1tb2RlbC1maWVsZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93Ij48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1jb21taXQtY2xpIj5DTEk8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1wcm92aWRlciI+XHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0PC9zcGFuPjwvZGl2PjxzZWxlY3QgaWQ9ImNmZy1jb21taXQtY2xpIiBjbGFzcz0iZmllbGQtaW5wdXQiPjxvcHRpb24gdmFsdWU9ImNsYXVkZSI+Q2xhdWRlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY29kZXgiPkNvZGV4PC9vcHRpb24+PC9zZWxlY3Q+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbWV0YSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXN0YXR1cyI+XHU3NTFGXHU2MjEwIGNvbW1pdCBtZXNzYWdlIFx1NEUwRSB0YWc8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQgc2V0dGluZ3MtbW9kZWwtZmllbGQiPjxkaXYgY2xhc3M9InNldHRpbmdzLW1vZGVsLWxhYmVsLXJvdyI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctY29tbWl0LW1vZGVsIj5cdTZBMjFcdTU3OEI8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1tb2RlbC1wcm92aWRlciIgaWQ9ImNmZy1jb21taXQtbW9kZWwtcHJvdmlkZXIiPkNsYXVkZSBDb2RlPC9zcGFuPjwvZGl2PjxkaXYgaWQ9ImNmZy1jb21taXQtbW9kZWwtY29tYm9ib3giIGNsYXNzPSJtb2RlbC1jb21ib2JveCIgZGF0YS1wcm92aWRlcj0iY2xhdWRlIj48ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveC1jb250cm9sIj48aW5wdXQgaWQ9ImNmZy1jb21taXQtbW9kZWwiIGNsYXNzPSJmaWVsZC1pbnB1dCBtb2RlbC1jb21ib2JveC1pbnB1dCIgdHlwZT0idGV4dCIgcm9sZT0iY29tYm9ib3giIGFyaWEtYXV0b2NvbXBsZXRlPSJsaXN0IiBhcmlhLWV4cGFuZGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0iY2ZnLWNvbW1pdC1tb2RlbC1saXN0Ym94IiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im5vbmUiIGF1dG9jb3JyZWN0PSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiBwbGFjZWhvbGRlcj0iXHU4RERGXHU5NjhGIENsYXVkZSBDb2RlIFx1OUVEOFx1OEJBNCIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU1QzU1XHU1RjAwIGNvbW1pdCBcdTZBMjFcdTU3OEJcdTUyMTdcdTg4NjgiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Im03IDEwIDUgNSA1LTUiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJjZmctY29tbWl0LW1vZGVsLWxpc3Rib3giIGNsYXNzPSJtb2RlbC1jb21ib2JveC1tZW51IGhpZGRlbiIgcm9sZT0ibGlzdGJveCIgYXJpYS1sYWJlbD0iQ29tbWl0IFx1NkEyMVx1NTc4QiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kZWwtbWV0YSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLXN0YXR1cyIgZGF0YS1tb2RlbC1zdGF0dXM+XHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQ8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLW1vZGVsLWhlbHAiPlx1NTIxN1x1ODg2OFx1Njc2NVx1ODFFQVx1ODFFQVx1NTJBOFx1NjhDMFx1NkQ0Qjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWN3ZCI+XHU5RUQ4XHU4QkE0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1jd2QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ii9ob21lL3VzZXIiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLXNoZWxsIj5TaGVsbDwvbGFiZWw+PGlucHV0IGlkPSJjZmctc2hlbGwiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ii9iaW4vYmFzaCIgLz48L2Rpdj4nKyh0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmdldEFwcEljb249PSJmdW5jdGlvbiI/JzxkaXYgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLWJsb2NrIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigicGFsZXR0ZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1NUU5NFx1NzUyOFx1NTZGRVx1NjgwNzwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTkwMDlcdTYyRTkgQXBwIFx1NTQyRlx1NTJBOFx1NTY2OFx1NTZGRVx1NjgwN1x1RkYwQ1x1OEZENFx1NTZERVx1Njg0Q1x1OTc2Mlx1NTQwRVx1NzUxRlx1NjU0ODwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhcHAtaWNvbi1waWNrZXIiIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1waWNrZXIiPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiBkYXRhLWljb249InNob3J0aGFpciI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLXByZXZpZXciPicrUGkudXNlcisnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1sYWJlbCI+XHU4RDVCXHU1MzVBXHU4NjRFXHU1OTlFPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiBkYXRhLWljb249ImdhcmZpZWxkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tcHJldmlldyI+JytQaS5hc3Npc3RhbnQrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tbGFiZWwiPlx1NTJFNFx1NTJCM1x1NTIxRFx1NEU4Qzwvc3Bhbj48L2J1dHRvbj48L2Rpdj48cCBpZD0iYXBwLWljb24tbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+JzoiIikrJzxkaXYgY2xhc3M9InNldHRpbmdzLWFjdGlvbnMgc2V0dGluZ3MtYWN0aW9ucy1zdGlja3kiPjxidXR0b24gaWQ9InNhdmUtY29uZmlnLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NEZERFx1NUI1OFx1OTE0RFx1N0Y2RTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJjb25maWctbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIHNldHRpbmdzLXN0YXR1cy1tZXNzYWdlIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItc2VjdXJpdHkiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NUI4OVx1NTE2ODwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1N0JBMVx1NzQwNlx1NzY3Qlx1NUY1NVx1NUJDNlx1NzgwMVx1NEUwRSBTU0wgXHU4QkMxXHU0RTY2XHVGRjBDXHU2NTRGXHU2MTFGXHU1M0Q4XHU2NkY0XHU4QkY3XHU3ODZFXHU4QkE0XHU1NDBFXHU1MThEXHU0RkREXHU1QjU4XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQiPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWNhcmQtaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrVigibG9jayIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQtdGV4dCI+PGgzIGNsYXNzPSJzZXR0aW5ncy1jYXJkLXRpdGxlIj5cdTRGRUVcdTY1MzlcdTVCQzZcdTc4MDE8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWRlc2MiPlx1ODFGM1x1NUMxMSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1RkYxQlx1NEZERFx1NUI1OFx1NTQwRVx1NEUwQlx1NkIyMVx1NzY3Qlx1NUY1NVx1NzUxRlx1NjU0OFx1MzAwMjwvcD48L2Rpdj48L2Rpdj48Zm9ybSBpZD0iY2hhbmdlLXBhc3N3b3JkLWZvcm0iIGF1dG9jb21wbGV0ZT0ib24iIG9uc3VibWl0PSJyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiIHZhbHVlPSJ3YW5kIiB0YWJpbmRleD0iLTEiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTk5OXB4O3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lIiByZWFkb25seSAvPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9Im5ldy1wYXNzd29yZCI+XHU2NUIwXHU1QkM2XHU3ODAxPC9sYWJlbD48aW5wdXQgaWQ9Im5ldy1wYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NjVCMFx1NUJDNlx1NzgwMVx1RkYwOFx1ODFGM1x1NUMxMSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1RkYwOSIgYXV0b2NvbXBsZXRlPSJuZXctcGFzc3dvcmQiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY29uZmlybS1wYXNzd29yZCI+XHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxPC9sYWJlbD48aW5wdXQgaWQ9ImNvbmZpcm0tcGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdTUxOERcdTZCMjFcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDEiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiAvPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0ic2F2ZS1wYXNzd29yZC1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIHR5cGU9InN1Ym1pdCI+XHU0RkREXHU1QjU4XHU1QkM2XHU3ODAxPC9idXR0b24+PC9kaXY+PHAgaWQ9InNldHRpbmdzLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48cCBpZD0ic2V0dGluZ3Mtc3VjY2VzcyIgY2xhc3M9ImhpbnQgc2V0dGluZ3Mtc3VjY2Vzcy1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZm9ybT48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK1YoImNlcnRpZmljYXRlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtaGVhZC10ZXh0Ij48aDMgY2xhc3M9InNldHRpbmdzLWNhcmQtdGl0bGUiPlNTTCBcdThCQzFcdTRFNjY8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWRlc2MiIGlkPSJjZXJ0LXN0YXR1cyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNlcnQta2V5LWZpbGUiPlx1NzlDMVx1OTRBNVx1NjU4N1x1NEVGNiAoLmtleSk8L2xhYmVsPjxkaXYgY2xhc3M9ImZpbGUtcGlja2VyIj48aW5wdXQgaWQ9ImNlcnQta2V5LWZpbGUiIHR5cGU9ImZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci1pbnB1dCIgYWNjZXB0PSIua2V5LC5wZW0iIC8+PGxhYmVsIGZvcj0iY2VydC1rZXktZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLXRyaWdnZXIiPjxzdmcgY2xhc3M9ImZpbGUtcGlja2VyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIxLjQ0IDExLjA1bC05LjE5IDkuMTlhNiA2IDAgMCAxLTguNDktOC40OWw5LjE5LTkuMTlhNCA0IDAgMCAxIDUuNjYgNS42NmwtOS4yIDkuMTlhMiAyIDAgMCAxLTIuODMtMi44M2w4LjQ5LTguNDgiPjwvcGF0aD48L3N2Zz48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbGFiZWwiPlx1OTAwOVx1NjJFOVx1NzlDMVx1OTRBNTwvc3Bhbj48L2xhYmVsPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1uYW1lIiBkYXRhLWRlZmF1bHQ9Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiI+XHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNlcnQtY2VydC1maWxlIj5cdThCQzFcdTRFNjZcdTY1ODdcdTRFRjYgKC5jcnQvLnBlbSk8L2xhYmVsPjxkaXYgY2xhc3M9ImZpbGUtcGlja2VyIj48aW5wdXQgaWQ9ImNlcnQtY2VydC1maWxlIiB0eXBlPSJmaWxlIiBjbGFzcz0iZmlsZS1waWNrZXItaW5wdXQiIGFjY2VwdD0iLmNydCwucGVtLC5jZXJ0IiAvPjxsYWJlbCBmb3I9ImNlcnQtY2VydC1maWxlIiBjbGFzcz0iZmlsZS1waWNrZXItdHJpZ2dlciI+PHN2ZyBjbGFzcz0iZmlsZS1waWNrZXItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTQgMkg2YTIgMiAwIDAgMC0yIDJ2MTZhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjh6Ij48L3BhdGg+PHBvbHlsaW5lIHBvaW50cz0iMTQgMiAxNCA4IDIwIDgiPjwvcG9seWxpbmU+PC9zdmc+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLWxhYmVsIj5cdTkwMDlcdTYyRTlcdThCQzFcdTRFNjY8L3NwYW4+PC9sYWJlbD48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbmFtZSIgZGF0YS1kZWZhdWx0PSJcdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjYiPlx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWFjdGlvbnMiPjxidXR0b24gaWQ9InVwbG9hZC1jZXJ0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSI+XHU0RTBBXHU0RjIwXHU4QkMxXHU0RTY2PC9idXR0b24+PC9kaXY+PHAgaWQ9ImNlcnQtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItcHJlc2V0cyIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU1RjUzXHU1MjREXHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFXHU0RUNFIGNvbmZpZy5qc29uIFx1OEJGQlx1NTNENlx1RkYwQ1x1NTNFRlx1NTcyOFx1OEZEOVx1OTFDQ1x1NUZFQlx1OTAxRlx1NjdFNVx1NzcwQlx1NURGMlx1NjcwOVx1OTE0RFx1N0Y2RVx1MzAwMjwvcD48L2Rpdj48ZGl2IGlkPSJwcmVzZXRzLWxpc3QiIGNsYXNzPSJwcmVzZXRzLWxpc3QiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLWRpc3BsYXkiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NjYzRVx1NzkzQTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NjNBN1x1NTIzNlx1ODA0QVx1NTkyOVx1ODlDNlx1NTZGRVx1OTFDQ1x1NEUwRFx1NTQwQ1x1NTM2MVx1NzI0N1x1N0M3Qlx1NTc4Qlx1NzY4NFx1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXRpdGxlIj5cdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTcyQjZcdTYwMDE8L2Rpdj48cCBjbGFzcz0iaGludCBzZXR0aW5ncy1pbmxpbmUtaGludCI+XHU4QkJFXHU3RjZFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU4OUM2XHU1NkZFXHU0RTJEXHU1NDA0XHU3QzdCXHU1MzYxXHU3MjQ3XHU3Njg0XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwL1x1NjI5OFx1NTNFMFx1NzJCNlx1NjAwMVx1MzAwMlx1NjI0Qlx1NTJBOFx1NjRDRFx1NEY1Q1x1NzY4NFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMVx1NEYxOFx1NTE0OFx1NEU4RVx1NkI2NFx1OUVEOFx1OEJBNFx1OEJCRVx1N0Y2RVx1MzAwMjwvcD48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1saXN0Ij48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLWVkaXQiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTdGMTZcdThGOTFcdTUzNjFcdTcyNDcgKEVkaXQvV3JpdGUpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtZWRpdCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU2NTg3XHU0RUY2XHU3RjE2XHU4RjkxXHU1NDhDXHU1MTk5XHU1MTY1XHU2NENEXHU0RjVDXHU3Njg0IGRpZmYgXHU4OUM2XHU1NkZFPC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLWlubGluZSI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NTE4NVx1ODA1NFx1NURFNVx1NTE3NyAoUmVhZC9HbG9iL0dyZXApPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtaW5saW5lIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdTY1ODdcdTRFRjZcdThCRkJcdTUzRDZcdTMwMDFcdTY0MUNcdTdEMjJcdTdCNDlcdTVERTVcdTUxNzdcdTc2ODRcdTdFRDNcdTY3OUM8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdGVybWluYWwiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTdFQzhcdTdBRUZcdThGOTNcdTUxRkEgKEJhc2gpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdGVybWluYWwiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1NTQ3RFx1NEVFNFx1ODg0Q1x1NjI2N1x1ODg0Q1x1N0VEM1x1Njc5QzwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC10aGlua2luZyI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NjAxRFx1ODAwM1x1OEZDN1x1N0EwQiAoVGhpbmtpbmcpPC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdGhpbmtpbmciIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPkNsYXVkZSBcdTc2ODRcdTYwMURcdTgwMDNcdThGQzdcdTdBMEJcdTU3NTc8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdG9vbGdyb3VwIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU1REU1XHU1MTc3XHU3RUM0PC9zcGFuPjxpbnB1dCBpZD0iY2ZnLWNhcmQtdG9vbGdyb3VwIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdThGREVcdTdFRURcdTU0MENcdTdDN0JcdTVERTVcdTUxNzdcdThDMDNcdTc1MjhcdTc2ODRcdTYyOThcdTUzRTBcdTdFQzQ8L2Rpdj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFjdGlvbnMgc2V0dGluZ3MtYWN0aW9ucy1zdGlja3kiPjxidXR0b24gaWQ9InNhdmUtZGlzcGxheS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdTRGRERcdTVCNThcdTY2M0VcdTc5M0FcdThCQkVcdTdGNkU8L2J1dHRvbj48L2Rpdj48cCBpZD0iZGlzcGxheS1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4gc2V0dGluZ3Mtc3RhdHVzLW1lc3NhZ2UiPjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBHZyhlKXt2YXIgdD0kZSgpO3JldHVybiBlLnNlbGVjdGVkSWQ/IiI6JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdCIgaWQ9ImZvbGRlci1waWNrZXItY29udGFpbmVyIj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3Qtcm93Ij48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0LWljb24iPicrVigiZm9sZGVyIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZm9sZGVyLXBpY2tlci1pbnB1dCIgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dCIgdmFsdWU9IicrcCh0KSsnIiBwbGFjZWhvbGRlcj0iXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1IiBhdXRvY29tcGxldGU9Im9mZiIgLz48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImZvbGRlci1waWNrZXItdG9nZ2xlIiBjbGFzcz0iZm9sZGVyLXBpY2tlci10b2dnbGUiIHRpdGxlPSJcdTkwMDlcdTYyRTlcdTc2RUVcdTVGNTUiIGFyaWEtbGFiZWw9Ilx1OTAwOVx1NjJFOVx1NzZFRVx1NUY1NSI+JytWKCJjaGV2cm9uRG93biIse3NpemU6MTEsc3Ryb2tlV2lkdGg6Mn0pKyc8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiBjbGFzcz0iZm9sZGVyLXBpY2tlci1kcm9wZG93biBoaWRkZW4iPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stcm93Ij48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biIgZGF0YS1wYXRoPSIvdG1wIj5cdTRFMzRcdTY1RjY8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biIgZGF0YS1wYXRoPSIvIj5cdTY4MzlcdTc2RUVcdTVGNTU8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iIGNsYXNzPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iPjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gUWcoZSl7dmFyIHQ9JGUoKSxuPXQ7aWYoZS5zZWxlY3RlZElkKXt2YXIgaT1lLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLnNlbGVjdGVkSWR9KTtuPWkmJmkuY3dkP2kuY3dkOnR9cmV0dXJuJzxkaXYgY2xhc3M9IndvcmtpbmctZGlyLWluZGljYXRvciIgaWQ9IndvcmtpbmctZGlyLWluZGljYXRvciIgdGl0bGU9IicrcChuKSsnIiBkYXRhLXBhdGg9IicrcChuKSsnIj48c3BhbiBjbGFzcz0id29ya2luZy1kaXItaW5kaWNhdG9yLWljb24iPicrVigiZm9sZGVyIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjd9KSsiPC9zcGFuPiIrZ3Qobiwid29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiLCcgaWQ9IndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoIicpKyI8L2Rpdj4ifWZ1bmN0aW9uIEJvKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUubm93KCksbj1uZXcgRGF0ZShlKS5nZXRUaW1lKCksaT1NYXRoLm1heCgwLHQtbiksYT1NYXRoLmZsb29yKGkvMWUzKTtpZihhPDYwKXJldHVybiJcdTUyMUFcdTUyMUEiO3ZhciB1PU1hdGguZmxvb3IoYS82MCk7aWYodTw2MClyZXR1cm4gdSsiXHU1MjA2XHU5NDlGXHU1MjREIjt2YXIgbz1NYXRoLmZsb29yKHUvNjApO2lmKG88MjQpcmV0dXJuIG8rIlx1NUMwRlx1NjVGNlx1NTI0RCI7dmFyIHM9TWF0aC5mbG9vcihvLzI0KTtyZXR1cm4gczwzMD9zKyJcdTU5MjlcdTUyNEQiOk1hdGguZmxvb3Iocy8zMCkrIlx1NEUyQVx1NjcwOFx1NTI0RCJ9ZnVuY3Rpb24gRG8oZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9RGF0ZS5ub3coKSxuPW5ldyBEYXRlKGUpLmdldFRpbWUoKSxpPU1hdGgubWF4KDAsdC1uKSxhPU1hdGguZmxvb3IoaS8xZTMpLHU9TWF0aC5mbG9vcihhLzYwKSxvPU1hdGguZmxvb3IodS82MCk7cmV0dXJuIG8+MD9vKyJoIisodSU2MD4wP3UlNjArIm0iOiIiKTp1PjA/dSsibSI6YSsicyJ9ZnVuY3Rpb24gdnIoZSl7aWYoIWUpcmV0dXJuIiI7aWYoZS5wZXJtaXNzaW9uQmxvY2tlZClyZXR1cm4iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjtpZih1ZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KXJldHVybiJcdTYwMURcdTgwMDNcdTRFMkQiO3ZhciB0PXtpZGxlOiJcdTdBN0FcdTk1RjIiLHN0b3BwZWQ6Ilx1NURGMlx1NTA1Q1x1NkI2MiIscnVubmluZzoiXHU4RkQwXHU4ODRDXHU0RTJEIixleGl0ZWQ6Ilx1NURGMlx1OTAwMFx1NTFGQSIsZmFpbGVkOiJcdTVERjJcdTU5MzFcdThEMjUifTtyZXR1cm4gdFtlLnN0YXR1c118fGUuc3RhdHVzfWZ1bmN0aW9uIGtvKGUpe3JldHVybiBlP2UucGVybWlzc2lvbkJsb2NrZWQ/InBlcm1pc3Npb24tYmxvY2tlZCI6dWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodD8icnVubmluZyI6ZS5zdGF0dXN8fCIiOiIifWZ1bmN0aW9uIHZjKGUpe3JldHVybiBlP2UucGVybWlzc2lvbkJsb2NrZWQ/Ilx1N0I0OVx1NUY4NVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyI6ZS5zdGF0dXMhPT0icnVubmluZyI/IiI6ZS5pZD09PXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50VGFzayYmci5jdXJyZW50VGFzay50aXRsZT9yLmN1cnJlbnRUYXNrLnRpdGxlOmUuY3VycmVudFRhc2tUaXRsZT9lLmN1cnJlbnRUYXNrVGl0bGU6IiI6IiJ9ZnVuY3Rpb24gbWMoZSl7dmFyIHQ9ZSYmZS5tZXNzYWdlcztpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dO2lmKCEoIWl8fGkucm9sZSE9PSJ1c2VyIikpe3ZhciBhPWkuY29udGVudDtpZih0eXBlb2YgYT09InN0cmluZyIpe3ZhciB1PWEudHJpbSgpO2lmKHUpcmV0dXJuIHU7Y29udGludWV9aWYoQXJyYXkuaXNBcnJheShhKSlmb3IodmFyIG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXTtpZighKCFzfHxzLnR5cGUhPT0idGV4dCJ8fCFzLnRleHQpJiYhcy5fX3F1ZXVlZCl7dmFyIGw9U3RyaW5nKHMudGV4dCkudHJpbSgpO2lmKGwpcmV0dXJuIGx9fX19cmV0dXJuIiJ9ZnVuY3Rpb24gZ2MoZSl7dmFyIHQ9ZSYmZS5tZXNzYWdlcztpZighdHx8dC5sZW5ndGg9PT0wKXJldHVybiIiO2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTA7bi0tKXt2YXIgaT10W25dO2lmKGkucm9sZT09PSJhc3Npc3RhbnQiKXtmb3IodmFyIGE9aS5jb250ZW50fHxbXSx1PTA7dTxhLmxlbmd0aDt1KyspaWYoYVt1XS50eXBlPT09InRleHQiJiZhW3VdLnRleHQmJmFbdV0udGV4dC50cmltKCkpe3ZhciBvPWFbdV0udGV4dC50cmltKCk7bz1vLnJlcGxhY2UoL14jK1xzKy9nbSwiIikucmVwbGFjZSgvXCpcKi9nLCIiKS5yZXBsYWNlKC9gL2csIiIpO3ZhciBzPW8uc3BsaXQoYApgKVswXS50cmltKCk7cmV0dXJuIHMuc2xpY2UoMCwxMDApfX19cmV0dXJuIiJ9ZnVuY3Rpb24gaGMoZSx0KXt2YXIgbj1lLmlkPT09ci5zZWxlY3RlZElkPyIgYWN0aXZlIjoiIixpPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZyLnNlbGVjdGVkU2Vzc2lvbklkc1tlLmlkXT8iIHNlbGVjdGVkIjoiIixhPXZyKGUpLHU9a28oZSksbz0iIixzPU9vKCJzZXNzaW9ucyIsZS5pZCwiXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREICIrZS5jb21tYW5kKTtpZigoZS5wcm92aWRlcj09PSJjbGF1ZGUifHxlLnByb3ZpZGVyPT09ImNvZGV4IikmJmUuY2xhdWRlU2Vzc2lvbklkJiZlLnN0YXR1cyE9PSJydW5uaW5nIiYmIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiYhdWUoZSkpe3ZhciBsPWUucHJvdmlkZXI9PT0iY29kZXgiPyJcdTYwNjJcdTU5MEQgQ29kZXggXHU0RjFBXHU4QkREIjoiXHU2MDYyXHU1OTBEIENsYXVkZSBcdTRGMUFcdThCREQiO289JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biIgZGF0YS1hY3Rpb249InJlc3VtZSIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSInK2wrJyIgdGl0bGU9IicrbCsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xIDR2Nmg2Ii8+PHBhdGggZD0iTTMuNTEgMTVhOSA5IDAgMTA1LjY0LTExLjM2TDMgMTAiLz48L3N2Zz48L2J1dHRvbj4nfXZhciBkPSFyLnNlc3Npb25zTWFuYWdlTW9kZSYmZS53b3JrdHJlZUVuYWJsZWQmJmUud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZlLndvcmt0cmVlLnBhdGgsZj1lLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2VkIiYmZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExLGM9ZS5zdGF0dXM9PT0icnVubmluZyJ8fGUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnaW5nIix2PWY/Ilx1OTFDRFx1OEJENVx1NkUwNVx1NzQwNiB3b3JrdHJlZSI6Ilx1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRiIsaD1kJiZlLndvcmt0cmVlTWVyZ2VTdGF0dXMhPT0ibWVyZ2VkIj8nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIG1lcmdlLWJ0biIgZGF0YS1hY3Rpb249Indvcmt0cmVlLW1lcmdlIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IicrcCh2KSsnIiB0aXRsZT0iJytwKHYpKyciJysoYz8iIGRpc2FibGVkIjoiIikrJz48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik03IDdoMTAiLz48cGF0aCBkPSJNNyAxMmgxMCIvPjxwYXRoIGQ9Ik03IDE3aDEwIi8+PHBhdGggZD0iTTUgN2wtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0xOSAxNWwyIDItMiAyIi8+PC9zdmc+PC9idXR0b24+JzpmPyc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gbWVyZ2UtYnRuIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtY2xlYW51cCIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiIHRpdGxlPSJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JzoiIixnPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gZGVsZXRlLWJ0biIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZXNzaW9uIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCIgdGl0bGU9Ilx1NTIyMFx1OTY2NFx1NkI2NFx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48L2J1dHRvbj4nLG09JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWFjdGlvbnMiPicrbytoK2crIjwvc3Bhbj4iLHk9ZS50aXRsZXx8ZS5zdW1tYXJ5Pyc8ZGl2IGNsYXNzPSJzZXNzaW9uLXRpdGxlIj4nK3AoZS50aXRsZXx8ZS5zdW1tYXJ5KSsiPC9kaXY+IjonPGRpdiBjbGFzcz0ic2Vzc2lvbi1jb21tYW5kIj4nK3AoZS5yZXN1bWVkRnJvbVNlc3Npb25JZD9lLmNvbW1hbmQucmVwbGFjZSgvXHMrLS1yZXN1bWVccytcUysvLCIiKS5yZXBsYWNlKC9ccytyZXN1bWVccytbMC05YS1mLV0rLywiIik6ZS5jb21tYW5kKSsiPC9kaXY+IixDPXZjKGUpLEU9IiI7ZS5zdGF0dXM9PT0icnVubmluZyImJkMmJihFPSc8ZGl2IGNsYXNzPSJzZXNzaW9uLWFjdGl2aXR5Ij4nK3AoQykrIjwvZGl2PiIpO3ZhciBCPWUuZGVzY3JpcHRpb24/JzxkaXYgY2xhc3M9InNlc3Npb24tZGVzY3JpcHRpb24iPicrcChlLmRlc2NyaXB0aW9uKSsiPC9kaXY+IjoiIixEPSIiO2Uuc3RhdHVzPT09InJ1bm5pbmciP0Q9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSJcdTVERjJcdThGRDBcdTg4NEMgJytwKERvKGUuc3RhcnRlZEF0KSkrJyI+JytwKERvKGUuc3RhcnRlZEF0KSkrIjwvc3Bhbj4iOmUuZW5kZWRBdD9EPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi10aW1lIiB0aXRsZT0iJytwKG5ldyBEYXRlKGUuZW5kZWRBdCkudG9Mb2NhbGVTdHJpbmcoKSkrJyI+JytwKEJvKGUuZW5kZWRBdCkpKyI8L3NwYW4+IjplLnN0YXJ0ZWRBdCYmKEQ9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSInK3AobmV3IERhdGUoZS5zdGFydGVkQXQpLnRvTG9jYWxlU3RyaW5nKCkpKyciPicrcChCbyhlLnN0YXJ0ZWRBdCkpKyI8L3NwYW4+Iik7dmFyIEY9QW8oZSksST1lLmF1dG9SZWNvdmVyZWQ/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXJlY292ZXJ5LWhpbnQiPlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRDwvc3Bhbj4nOiIiLEw9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxkaXYgY2xhc3M9InNlc3Npb24tc3dpcGUtYmciIGFyaWEtaGlkZGVuPSJ0cnVlIj48YnV0dG9uIGNsYXNzPSJzZXNzaW9uLXN3aXBlLWRlbGV0ZSIgZGF0YS1hY3Rpb249InN3aXBlLWRlbGV0ZS1zZXNzaW9uIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjxzcGFuPlx1NTIyMFx1OTY2NDwvc3Bhbj48L2J1dHRvbj48L2Rpdj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0nK24raSsnIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj4nK0wrJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tcm93Ij4nK3MrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFpbiI+PGRpdiBjbGFzcz0ic2Vzc2lvbi10aXRsZS1yb3ciPicreStEKyI8L2Rpdj4iK0IrRSsnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tZXRhIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMgJyt1KyciPicrcChhKSsiPC9zcGFuPiIrRitJKyI8L2Rpdj48L2Rpdj4iK20rIjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24geWMoZSl7aWYoIWV8fCFlLndvcmt0cmVlTWVyZ2VTdGF0dXMpcmV0dXJuIiI7dmFyIHQ9e3JlYWR5OiJcdTUzRUZcdTU0MDhcdTVFNzYiLGNoZWNraW5nOiJcdTY4QzBcdTY3RTVcdTRFMkQiLG1lcmdpbmc6Ilx1NTQwOFx1NUU3Nlx1NEUyRCIsbWVyZ2VkOmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMT8iXHU1REYyXHU1NDA4XHU1RTc2XHU1Rjg1XHU2RTA1XHU3NDA2IjoiXHU1REYyXHU1NDA4XHU1RTc2IixmYWlsZWQ6Ilx1NTQwOFx1NUU3Nlx1NTkzMVx1OEQyNSJ9O3JldHVybiB0W2Uud29ya3RyZWVNZXJnZVN0YXR1c118fCIifWZ1bmN0aW9uIGJjKGUpe3ZhciB0PXljKGUpO3JldHVybiB0Pyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHdvcmt0cmVlLW1lcmdlICcrcChlLndvcmt0cmVlTWVyZ2VTdGF0dXN8fCIiKSsnIj4nK3AodCkrIjwvc3Bhbj4iOiIifWZ1bmN0aW9uIEFvKGUpe2lmKCFlfHwhZS53b3JrdHJlZUVuYWJsZWQpcmV0dXJuIiI7dmFyIHQ9W107ZS53b3JrdHJlZSYmZS53b3JrdHJlZS5icmFuY2gmJnQucHVzaCgiV29ya3RyZWU6ICIrZS53b3JrdHJlZS5icmFuY2gpLGUud29ya3RyZWUmJmUud29ya3RyZWUucGF0aCYmdC5wdXNoKCJQYXRoOiAiK2Uud29ya3RyZWUucGF0aCk7dmFyIG49dC5sZW5ndGg+MD8nIHRpdGxlPSInK3AodC5qb2luKGAKYCkpKyciJzoiIjtyZXR1cm4nPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSB3b3JrdHJlZSInK24rIj5Xb3JrdHJlZTwvc3Bhbj4iK2JjKGUpfWZ1bmN0aW9uICRnKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PXVlKGUpPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHN0cnVjdHVyZWQiPlN0cnVjdHVyZWQ8L3NwYW4+JzonPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSBwdHkiPlBUWTwvc3Bhbj4nO3JldHVybiB0K0FvKGUpfWZ1bmN0aW9uIEVjKGUpe3ZhciB0PVt7aWQ6Im1hbmFnZWQiLGxhYmVsOiJcdTYyNThcdTdCQTEiLGRlc2M6Ilx1NTE2OFx1ODFFQVx1NTJBOFx1NUI4Q1x1NjIxMFx1NEVGQlx1NTJBMSJ9LHtpZDoiZnVsbC1hY2Nlc3MiLGxhYmVsOiJcdTUxNjhcdTY3NDNcdTk2NTAiLGRlc2M6Ilx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1Njc0M1x1OTY1MCJ9LHtpZDoiYXV0by1lZGl0IixsYWJlbDoiXHU4MUVBXHU1MkE4XHU3RjE2XHU4RjkxIixkZXNjOiJcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTRGRUVcdTY1MzkifSx7aWQ6ImRlZmF1bHQiLGxhYmVsOiJcdTY4MDdcdTUxQzYiLGRlc2M6Ilx1OTAxMFx1NkI2NVx1Nzg2RVx1OEJBNFx1NjRDRFx1NEY1QyJ9LHtpZDoibmF0aXZlIixsYWJlbDoiXHU1MzlGXHU3NTFGIixkZXNjOiJcdTUzOUZcdTc1MUZcdTdFRDNcdTY3ODRcdTUzMTZcdThGOTNcdTUxRkEifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQnK2krJyIgZGF0YS1tb2RlPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBGYyhlKXt2YXIgdD1be2lkOiJjbGF1ZGUiLGxhYmVsOiJDbGF1ZGUiLGRlc2M6Ilx1NUI4Q1x1NjU3NCBDbGF1ZGUgXHU0RjFBXHU4QkREXHU4MEZEXHU1MjlCIn0se2lkOiJjb2RleCIsbGFiZWw6IkNvZGV4IixkZXNjOiJcdTdFRDNcdTY3ODRcdTUzMTYgSlNPTkwgXHU2MjE2IFBUWSBcdTRGMUFcdThCREQifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQgcHJvdmlkZXItY2FyZCcraSsnIiBkYXRhLXByb3ZpZGVyPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiB3YyhlKXt2YXIgdD1be2lkOiJzdHJ1Y3R1cmVkIixsYWJlbDoiXHU3RUQzXHU2Nzg0XHU1MzE2IixkZXNjOiJcdTY2N0FcdTgwRkRcdTVCRjlcdThCRERcdTZBMjFcdTVGMEYifSx7aWQ6InB0eSIsbGFiZWw6IlBUWSIsZGVzYzoiXHU0RUE0XHU0RTkyXHU1RjBGXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREIn1dO3JldHVybiB0Lm1hcChmdW5jdGlvbihuKXt2YXIgaT1uLmlkPT09ZT8iIGFjdGl2ZSI6IiIsYT0iIjtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlLWNhcmQgc2Vzc2lvbi1raW5kLWNhcmQnK2krYSsnIiBkYXRhLXNlc3Npb24ta2luZD0iJytuLmlkKyciPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtbGFiZWwiPicrbi5sYWJlbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtZGVzYyI+JytuLmRlc2MrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gWGcoZSl7cmV0dXJuJzxsYWJlbCBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIiBmb3I9InNlc3Npb24td29ya3RyZWUtdG9nZ2xlIiB0aXRsZT0iXHU0RTNBXHU4QkU1XHU0RjFBXHU4QkREXHU1MjFCXHU1RUZBXHU3MkVDXHU3QUNCXHU3Njg0IGdpdCB3b3JrdHJlZSBcdTUyMDZcdTY1MkYiPjxzdmcgY2xhc3M9InNlc3Npb24taW5saW5lLXRvZ2dsZS1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGNpcmNsZSBjeD0iNiIgY3k9IjYiIHI9IjIuMiIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iNiIgcj0iMi4yIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOCIgcj0iMi4yIi8+PHBhdGggZD0iTTYgOC4ydjMuNGEyIDIgMCAwIDAgMiAyaDhhMiAyIDAgMCAwIDItMlY4LjIiLz48cGF0aCBkPSJNMTIgMTMuNnYyLjIiLz48L3N2Zz48c3BhbiBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWxhYmVsIj5Xb3JrdHJlZSBcdTZBMjFcdTVGMEY8L3NwYW4+PGlucHV0IGlkPSJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIicrKGU/IiBjaGVja2VkIjoiIikrJyAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvbGFiZWw+J31mdW5jdGlvbiB4byhlKXt2YXIgdD1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIjtyZXR1cm4gZT09PSJzdHJ1Y3R1cmVkIj90PT09ImNvZGV4Ij8iQ29kZXggSlNPTkwgXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU3NTRDXHU5NzYyXHVGRjBDXHU2NTJGXHU2MzAxXHU1OTFBXHU4RjZFXHU1QkY5XHU4QkREXHU1NDhDXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU1QzU1XHU3OTNBXHUzMDAyIjoiXHU3RUQzXHU2Nzg0XHU1MzE2XHU4MDRBXHU1OTI5XHU3NTRDXHU5NzYyXHVGRjBDXHU2NTJGXHU2MzAxXHU1OTFBXHU4RjZFXHU1QkY5XHU4QkREXHUzMDAxXHU2RDQxXHU1RjBGXHU4RjkzXHU1MUZBXHU1NDhDXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU1QzU1XHU3OTNBXHUzMDAyIjp0PT09ImNvZGV4Ij8iQ29kZXggUFRZIFx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERFx1RkYxQnRlcm1pbmFsIFx1NjYyRlx1NTM5Rlx1NTlDQlx1OEY5M1x1NTFGQVx1RkYwQ2NoYXQgXHU2NjJGXHU4OUUzXHU2NzkwXHU1NDBFXHU3Njg0XHU5NjA1XHU4QkZCXHU4OUM2XHU1NkZFXHUzMDAyIjoiXHU1MzlGXHU1OUNCIFBUWSBcdTdFQzhcdTdBRUZcdTRGMUFcdThCRERcdUZGMENcdTY1MkZcdTYzMDFcdTYzMDFcdTdFRURcdTRFQTRcdTRFOTJcdTMwMDFcdTdFQzhcdTdBRUZcdTg5QzZcdTU2RkVcdTU0OENcdTY3NDNcdTk2NTBcdTZENDFcdTMwMDIifWZ1bmN0aW9uIENjKCl7dmFyIGU9cnQoKSx0PW10KGUsci5tb2RlVmFsdWV8fHIuY2hhdE1vZGV8fCJkZWZhdWx0Iiksbj1yLnNlc3Npb25DcmVhdGVLaW5kfHwic3RydWN0dXJlZCIsaT1yLnNlc3Npb25DcmVhdGVXb3JrdHJlZT09PSEwO3JldHVybic8c2VjdGlvbiBpZD0ic2Vzc2lvbi1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiI+PGRpdiBjbGFzcz0ibW9kYWwgc2Vzc2lvbi1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NjVCMFx1NUJGOVx1OEJERDwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5cdTU0MkZcdTUyQTggQ2xhdWRlIFx1NjIxNiBDb2RleCBcdTRGMUFcdThCRERcdUZGMENcdTkwMDlcdTYyRTkgcHJvdmlkZXJcdTMwMDFcdTRGMUFcdThCRERcdTdDN0JcdTU3OEJcdTMwMDFcdTZBMjFcdTVGMEZcdTU0OENcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2UtbW9kYWwtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiPlByb3ZpZGVyPC9sYWJlbD48ZGl2IGlkPSJwcm92aWRlci1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicrRmMoZSkrJzwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTRGMUFcdThCRERcdTdDN0JcdTU3OEI8L2xhYmVsPjxkaXYgaWQ9InNlc3Npb24ta2luZC1jYXJkcyIgY2xhc3M9Im1vZGUtY2FyZHMiPicrd2MobikrJzwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLWhpbnQgc2Vzc2lvbi1raW5kLWhpbnQtcm93Ij48c3BhbiBpZD0ic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIj4nK3AoeG8obikpKyc8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY3dkIj5cdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L2xhYmVsPjxkaXYgY2xhc3M9InN1Z2dlc3Rpb25zLXdyYXAiPjxpbnB1dCBpZD0iY3dkIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIGF1dG9jb21wbGV0ZT0ib2ZmIiBwbGFjZWhvbGRlcj0iJytwKCRlKCkpKyciIC8+PGRpdiBpZD0iY3dkLXN1Z2dlc3Rpb25zIiBjbGFzcz0ic3VnZ2VzdGlvbnMgaGlkZGVuIj48L2Rpdj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCI+XHU1MjFCXHU1RUZBXHU1MjREXHU1MTQ4XHU3ODZFXHU4QkE0XHU3NkVFXHU1RjU1XHVGRjFCXHU3NTU5XHU3QTdBXHU1MjE5XHU0RjdGXHU3NTI4XHU0RTBBXHU2NUI5XHU3NkVFXHU1RjU1XHVGRjBDXHU2NTJGXHU2MzAxXHU4REVGXHU1Rjg0XHU4MUVBXHU1MkE4XHU4ODY1XHU1MTY4XHUzMDAyPC9wPjxkaXYgaWQ9InJlY2VudC1wYXRocy1idWJibGVzIiBjbGFzcz0icmVjZW50LXBhdGhzLWJ1YmJsZXMiPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTZBMjFcdTVGMEY8L2xhYmVsPjxkaXYgaWQ9Im1vZGUtY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK0VjKHQpKyc8L2Rpdj48cCBpZD0ibW9kZS1kZXNjcmlwdGlvbiIgY2xhc3M9ImZpZWxkLWhpbnQiPicrcChrbChlLHQpKSsnPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciI+PGJ1dHRvbiBpZD0icnVuLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERDwvYnV0dG9uPjxwIGlkPSJtb2RhbC1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gU28oKXt2YXIgZT1bXTtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPXQuc3RhcnRlZEF0P25ldyBEYXRlKHQuc3RhcnRlZEF0KS5nZXRUaW1lKCk6MDtlLnB1c2goe2tpbmQ6InNlc3Npb24iLHJlZjp0LHQ6aXNGaW5pdGUobik/bjowfSl9KSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJm1yKCkuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LnRpbWVzdGFtcD9uZXcgRGF0ZSh0LnRpbWVzdGFtcCkuZ2V0VGltZSgpOk51bWJlcih0Lm10aW1lTXMpfHwwO2lzRmluaXRlKG4pfHwobj1OdW1iZXIodC5tdGltZU1zKXx8MCksZS5wdXNoKHtraW5kOiJoaXN0b3J5IixyZWY6dCx0Om59KX0pLHIuY29kZXhIaXN0b3J5TG9hZGVkJiZ5YSgpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dC50aW1lc3RhbXA/bmV3IERhdGUodC50aW1lc3RhbXApLmdldFRpbWUoKTpOdW1iZXIodC5tdGltZU1zKXx8MDtlLnB1c2goe2tpbmQ6ImNvZGV4IixyZWY6dCx0OmlzRmluaXRlKG4pP246MH0pfSksZS5zb3J0KGZ1bmN0aW9uKHQsbil7cmV0dXJuIG4udC10LnR9KSxlfWZ1bmN0aW9uIEJjKCl7dmFyIGU9W107ZS5wdXNoKElvKCkpO3ZhciB0PVNvKCk7cmV0dXJuIHQubGVuZ3RoPT09MD9JbygpKyc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdThGRDhcdTZDQTFcdTY3MDlcdTRGMUFcdThCRERcdThCQjBcdTVGNTU8L3N0cm9uZz48YnI+XHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyPC9kaXY+JzooZS5wdXNoKEFjKHQpKSxlLmpvaW4oIiIpKX1mdW5jdGlvbiBEYygpe3JldHVybiEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZH1mdW5jdGlvbiBrYygpe3ZhciBlPVNvKCksdD1lLm1hcChmdW5jdGlvbihpLGEpe3ZhciB1PWErMTtpZihpLmtpbmQ9PT0ic2Vzc2lvbiIpe3ZhciBvPWkucmVmLHM9by5pZD09PXIuc2VsZWN0ZWRJZD8iIGFjdGl2ZSI6IiIsbD1vLnRpdGxlfHxvLmRlc2NyaXB0aW9ufHxvLnN1bW1hcnl8fG8uY29tbWFuZHx8Ilx1NEYxQVx1OEJERCAiK3U7cmV0dXJuJzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUnK3MrJyIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1zZXNzaW9uLWlkPSInK3Aoby5pZCkrJyIgdGl0bGU9IicrcChsKSsnIj4nK3UrIjwvYnV0dG9uPiJ9dmFyIGQ9aS5yZWYsZj1kLmZpcnN0VXNlck1lc3NhZ2V8fCIoXHU3QTdBXHU0RjFBXHU4QkREKSIsYz1mKyIgXHhCNyAiK0hvKGQudGltZXN0YW1wKTtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0ic2lkZWJhci1jb2xsYXBzZWQtdGlsZSIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1oaXN0b3J5LWlkPSInK3AoZC5jbGF1ZGVTZXNzaW9uSWQpKyciIGRhdGEtcHJvdmlkZXI9IicrcChpLmtpbmQ9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIpKyciIGRhdGEtY3dkPSInK3AoZC5jd2R8fCIiKSsnIiB0aXRsZT0iJytwKGMpKyciPicrdSsiPC9idXR0b24+In0pLmpvaW4oIiIpLG49JzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUgYWRkIiB0eXBlPSJidXR0b24iIGRhdGEtY29sbGFwc2VkLW5ldy1zZXNzaW9uPSIxIiB0aXRsZT0iXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREIiBhcmlhLWxhYmVsPSJcdTY1QjBcdTVFRkFcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz48bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGVzIj4nK3QrbisiPC9kaXY+In1mdW5jdGlvbiBoYSgpe3JldHVybiBEYygpP2tjKCk6QmMoKX1mdW5jdGlvbiBJbygpe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYmFyIj48c3BhbiBjbGFzcz0ic2lkZWJhci1pbnRybyI+XHU1MTY4XHU5MEU4XHU0RjFBXHU4QkREPC9zcGFuPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXhzIHNlc3Npb24tbWFuYWdlLXRvZ2dsZSIgZGF0YS1hY3Rpb249InRvZ2dsZS1tYW5hZ2UtbW9kZSIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDExbDMgM0wyMiA0Ii8+PHBhdGggZD0iTTIxIDEydjdhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDExIi8+PC9zdmc+PHNwYW4+XHU3QkExXHU3NDA2PC9zcGFuPjwvYnV0dG9uPjwvZGl2Pic7dmFyIGU9VG8oKS5sZW5ndGgsdD1MbygpLmxlbmd0aCxuPU1vKCkubGVuZ3RoLGk9ZSt0K24sYT1pPjAsdT1TYygpLG89dT4wJiZpPj11LHM9bz8iXHU1M0Q2XHU2RDg4XHU1MTY4XHU5MDA5IjoiXHU1MTY4XHU5MDA5IixsPW8/ImNsZWFyLXNlbGVjdGlvbiI6InNlbGVjdC1hbGwtdmlzaWJsZSIsZD11PT09MD8iIGRpc2FibGVkIjoiIixmPSc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1leGl0IiBkYXRhLWFjdGlvbj0idG9nZ2xlLW1hbmFnZS1tb2RlIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1OTAwMFx1NTFGQVx1N0JBMVx1NzQwNlx1NkEyMVx1NUYwRiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1N0JBMVx1NzQwNlx1NkEyMVx1NUYwRiI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPicsYz1hPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtY291bnQiPicraSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVsIj5cdTVERjJcdTkwMDlcdTYyRTk8L3NwYW4+JzonPHNwYW4gY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnktbGFiZWwgbXV0ZWQiPlx1OTAwOVx1NjJFOVx1ODk4MVx1N0JBMVx1NzQwNlx1NzY4NFx1OTg3OVx1NzZFRTwvc3Bhbj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1iYXIgYWN0aXZlIj4nK2YrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnkiPicrYysnPC9kaXY+PGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4teHMiIGRhdGEtYWN0aW9uPSInK2wrJyIgdHlwZT0iYnV0dG9uIicrZCsiPiIrcysnPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgYnRuLXhzIiBkYXRhLWFjdGlvbj0iZGVsZXRlLXNlbGVjdGVkIiB0eXBlPSJidXR0b24iJysoYT8iIjoiIGRpc2FibGVkIikrIj5cdTUyMjBcdTk2NjQiKyhhPyIgIitpOiIiKSsiPC9idXR0b24+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBBYyhlKXt2YXIgdD0nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAiPic7cmV0dXJuIHQrPWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmtpbmQ9PT0ic2Vzc2lvbiI/aGMobi5yZWYsInNlc3Npb25zIik6TWMobi5yZWYsbi5raW5kKX0pLmpvaW4oIiIpLHQrPSI8L3NlY3Rpb24+Iix0fWZ1bmN0aW9uIG1yKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc0NvbnZlcnNhdGlvbiYmIXQubWFuYWdlZEJ5V2FuZCYmIWUuaGFzKHQuY2xhdWRlU2Vzc2lvbklkKX0pfWZ1bmN0aW9uIFRvKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRTZXNzaW9uSWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkU2Vzc2lvbklkc1tlXX0pfWZ1bmN0aW9uIExvKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkc1tlXX0pfWZ1bmN0aW9uIE1vKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHMpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hIXIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHNbZV19KX1mdW5jdGlvbiBzaSgpe3Iuc2VsZWN0ZWRTZXNzaW9uSWRzPXt9LHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzPXt9LHIuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHM9e319ZnVuY3Rpb24geGMoZSl7ci5zZXNzaW9uc01hbmFnZU1vZGU9dHlwZW9mIGU9PSJib29sZWFuIj9lOiFyLnNlc3Npb25zTWFuYWdlTW9kZSxyLnNlc3Npb25zTWFuYWdlTW9kZSYmKCFyLmNsYXVkZUhpc3RvcnlMb2FkZWR8fCFyLmNvZGV4SGlzdG9yeUxvYWRlZCkmJmxpKCkudGhlbihwZSksci5zZXNzaW9uc01hbmFnZU1vZGV8fChzaSgpLE1yKCkpLHBlKCl9ZnVuY3Rpb24gcW8oKXtyZXR1cm4gci5zZXNzaW9ucy5zbGljZSgpfWZ1bmN0aW9uIFNjKCl7cmV0dXJuIHFvKCkubGVuZ3RoK21yKCkubGVuZ3RoK3lhKCkubGVuZ3RofWZ1bmN0aW9uIFBvKCl7aWYoIXIuY2xhdWRlSGlzdG9yeUxvYWRlZHx8IXIuY29kZXhIaXN0b3J5TG9hZGVkKXtsaSgpLnRoZW4oUG8pO3JldHVybn12YXIgZT17fTtxbygpLmZvckVhY2goZnVuY3Rpb24oaSl7ZVtpLmlkXT0hMH0pO3ZhciB0PXt9O21yKCkuZm9yRWFjaChmdW5jdGlvbihpKXt0W2kuY2xhdWRlU2Vzc2lvbklkXT0hMH0pO3ZhciBuPXt9O3lhKCkuZm9yRWFjaChmdW5jdGlvbihpKXtuW2kuY2xhdWRlU2Vzc2lvbklkXT0hMH0pLHIuc2VsZWN0ZWRTZXNzaW9uSWRzPWUsci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM9dCxyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzPW4scGUoKX1mdW5jdGlvbiBJYygpe3NpKCkscGUoKX1mdW5jdGlvbiBncihlLHQpe2lmKCEoIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlfHwhdCkpe3ZhciBuPWU9PT0iaGlzdG9yeSI/ci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM6ZT09PSJjb2RleCI/ci5zZWxlY3RlZENvZGV4SGlzdG9yeUlkczpyLnNlbGVjdGVkU2Vzc2lvbklkcztuW3RdP2RlbGV0ZSBuW3RdOm5bdF09ITAscGUoKX19ZnVuY3Rpb24gT28oZSx0LG4pe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4iIjt2YXIgaT1lPT09Imhpc3RvcnkiPyEhci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbdF06ZT09PSJjb2RleCI/ISFyLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzW3RdOiEhci5zZWxlY3RlZFNlc3Npb25JZHNbdF07cmV0dXJuJzxsYWJlbCBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtY2hlY2siPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgZGF0YS1hY3Rpb249InRvZ2dsZS1zZWxlY3Rpb24iIGRhdGEta2luZD0iJytwKGUpKyciIGRhdGEtaWQ9IicrcCh0KSsnIicrKGk/IiBjaGVja2VkIjoiIikrJyBhcmlhLWxhYmVsPSInK3AobikrJyI+PHNwYW4+PC9zcGFuPjwvbGFiZWw+J31mdW5jdGlvbiBBbihlLHQpe3JldHVybiBNYShlLE9iamVjdC5hc3NpZ24oe3R5cGU6ImRhbmdlciIsZGFuZ2VyOiEwLG9rTGFiZWw6Ilx1NTIyMFx1OTY2NCJ9LHR8fHt9KSl9ZnVuY3Rpb24gVGMoKXt2YXIgZT1UbygpLHQ9TG8oKSxuPU1vKCksaT1lLmxlbmd0aCt0Lmxlbmd0aCtuLmxlbmd0aDtpJiZBbigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5ICIraSsiIFx1OTg3OVx1NTQxN1x1RkYxRlx1NkI2NFx1NjRDRFx1NEY1Q1x1NjVFMFx1NkNENVx1NjRBNFx1OTUwMFx1MzAwMiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDkgIitpKyIgXHU5ODc5In0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYSl7dmFyIHU9W107ZS5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL3Nlc3Npb25zL2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZHM6ZX0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KSksdC5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6dH0pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KSksbi5sZW5ndGg+MCYmdS5wdXNoKGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkvYmF0Y2gtZGVsZXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7Y2xhdWRlU2Vzc2lvbklkczpufSl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmpzb24oKX0pKSxQcm9taXNlLmFsbCh1KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuaW5kZXhPZihyLnNlbGVjdGVkSWQpIT09LTEmJihyLnNlbGVjdGVkSWQ9bnVsbCxoZSgpKSxyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gdC5pbmRleE9mKG8uY2xhdWRlU2Vzc2lvbklkKT09PS0xfSksci5jb2RleEhpc3Rvcnk9ci5jb2RleEhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBuLmluZGV4T2Yoby5jbGF1ZGVTZXNzaW9uSWQpPT09LTF9KSxzaSgpLE90KCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtIZShvLCJcdTY1RTBcdTZDRDVcdTYyNzlcdTkxQ0ZcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDlcdTk4NzlcdTc2RUVcdTMwMDIiKX0pfX0pfWZ1bmN0aW9uIExjKCl7dmFyIGU9RGF0ZS5ub3coKS04NjRlNSx0PW1yKCkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiFuLnRpbWVzdGFtcHx8bmV3IERhdGUobi50aW1lc3RhbXApLmdldFRpbWUoKTw9ZX0pO2lmKHQubGVuZ3RoKXJldHVybiBBbigiXHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU1RjUzXHU1MjREXHU2NjNFXHU3OTNBXHU3Njg0ICIrdC5sZW5ndGgrIiBcdTY3NjEgQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTZFMDVcdTdBN0EgQ2xhdWRlIFx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU2RTA1XHU3QTdBIn0pLnRoZW4oZnVuY3Rpb24obil7aWYobil7dmFyIGk9dC5tYXAoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhdWRlU2Vzc2lvbklkfSk7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6aX0pfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEmJmEuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGEuZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHUpe3JldHVybiBpLmluZGV4T2YodS5jbGF1ZGVTZXNzaW9uSWQpPT09LTF9KSxzaSgpLHBlKCl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtIZShhLCJcdTY1RTBcdTZDRDVcdTZFMDVcdTdBN0FcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfX0pfWZ1bmN0aW9uIE1jKGUsdCl7dmFyIG49dD09PSJjb2RleCIsaT1uPyJyZXN1bWUtY29kZXgtaGlzdG9yeSI6InJlc3VtZS1oaXN0b3J5IixhPW4/ImRlbGV0ZS1jb2RleC1oaXN0b3J5IjoiZGVsZXRlLWhpc3RvcnkiLHU9bj9yLnNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzOnIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzLG89ZS5jbGF1ZGVTZXNzaW9uSWQuc2xpY2UoMCw4KSxzPWUuZmlyc3RVc2VyTWVzc2FnZXx8IihcdTdBN0FcdTRGMUFcdThCREQpIixsPUhvKGUudGltZXN0YW1wKSxkPU9vKHQsZS5jbGF1ZGVTZXNzaW9uSWQsIlx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCAiK3MpLGY9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBkZWxldGUtYnRuIiBkYXRhLWFjdGlvbj0iJythKyciIGRhdGEtY2xhdWRlLXNlc3Npb24taWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiIHRpdGxlPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JyxjPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4iIGRhdGEtYWN0aW9uPSInK2krJyIgZGF0YS1jbGF1ZGUtc2Vzc2lvbi1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiBkYXRhLWN3ZD0iJytwKGUuY3dkKSsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERCIgdGl0bGU9IicrKG4/Ilx1NjA2Mlx1NTkwRFx1NkI2NCBDb2RleCBcdTRGMUFcdThCREQiOiJcdTYwNjJcdTU5MERcdTZCNjQgQ2xhdWRlIFx1NEYxQVx1OEJERCIpKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEgNHY2aDYiLz48cGF0aCBkPSJNMy41MSAxNWE5IDkgMCAxMDUuNjQtMTEuMzZMMyAxMCIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbScrKHIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZ1W2UuY2xhdWRlU2Vzc2lvbklkXT8iIHNlbGVjdGVkIjoiIikrJyIgZGF0YS1jbGF1ZGUtaGlzdG9yeS1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiBkYXRhLXByb3ZpZGVyPSInKyhuPyJjb2RleCI6ImNsYXVkZSIpKyciIGRhdGEtY3dkPSInK3AoZS5jd2QpKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tcm93Ij4nK2QrJzxkaXYgY2xhc3M9InNlc3Npb24tbWFpbiI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1jb21tYW5kIGNsYXVkZS1oaXN0b3J5LXByZXZpZXciPicrcChzKSsnPC9kaXY+PGRpdiBjbGFzcz0ic2Vzc2lvbi1tZXRhIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1pZCIgdGl0bGU9IicrcChlLmNsYXVkZVNlc3Npb25JZCkrJyI+JytwKG8pKyI8L3NwYW4+PHNwYW4+IitwKGwpKyc8L3NwYW4+PC9kaXY+PC9kaXY+PHNwYW4gY2xhc3M9InNlc3Npb24tYWN0aW9ucyI+JytjK2YrIjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEhvKGUpe2lmKCFlKXJldHVybiIiO3RyeXt2YXIgdD1uZXcgRGF0ZShlKSxuPW5ldyBEYXRlLGk9bi10LGE9TWF0aC5mbG9vcihpLzZlNCk7aWYoYTwxKXJldHVybiJcdTUyMUFcdTUyMUEiO2lmKGE8NjApcmV0dXJuIGErIiBcdTUyMDZcdTk0OUZcdTUyNEQiO3ZhciB1PU1hdGguZmxvb3IoYS82MCk7aWYodTwyNClyZXR1cm4gdSsiIFx1NUMwRlx1NjVGNlx1NTI0RCI7dmFyIG89TWF0aC5mbG9vcih1LzI0KTtyZXR1cm4gbzwzMD9vKyIgXHU1OTI5XHU1MjREIjp0LnRvTG9jYWxlRGF0ZVN0cmluZygpfWNhdGNoe3JldHVybiIifX1mdW5jdGlvbiBfbygpe3JldHVybiBmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOltdfSkudGhlbihmdW5jdGlvbihlKXtyLmNsYXVkZUhpc3Rvcnk9ZXx8W10sci5jbGF1ZGVIaXN0b3J5TG9hZGVkPSEwLHBlKCl9KS5jYXRjaChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZD0hMCxyLmNsYXVkZUhpc3Rvcnk9W10scGUoKX0pfXZhciBocj1udWxsO2Z1bmN0aW9uIGxpKCl7dmFyIGU9cWMoKTshci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiYhaHImJihocj1fbygpLnRoZW4oZnVuY3Rpb24oKXtocj1udWxsfSxmdW5jdGlvbigpe2hyPW51bGx9KSk7dmFyIHQ9aHJ8fFByb21pc2UucmVzb2x2ZSgpO3JldHVybiBQcm9taXNlLmFsbChbdCxlXSkudGhlbihmdW5jdGlvbigpe30pfWZ1bmN0aW9uIE5vKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTpbXX0pLnRoZW4oZnVuY3Rpb24oZSl7ci5jb2RleEhpc3Rvcnk9ZXx8W10sci5jb2RleEhpc3RvcnlMb2FkZWQ9ITAscGUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5jb2RleEhpc3RvcnlMb2FkZWQ9ITAsci5jb2RleEhpc3Rvcnk9W10scGUoKX0pfXZhciBWbj1udWxsO2Z1bmN0aW9uIHFjKCl7cmV0dXJuIHIuY29kZXhIaXN0b3J5TG9hZGVkP1Byb21pc2UucmVzb2x2ZSgpOlZufHwoVm49Tm8oKS50aGVuKGZ1bmN0aW9uKCl7Vm49bnVsbH0sZnVuY3Rpb24oKXtWbj1udWxsfSksVm4pfWZ1bmN0aW9uIHlhKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGFzQ29udmVyc2F0aW9uJiYhdC5tYW5hZ2VkQnlXYW5kJiYhZS5oYXModC5jbGF1ZGVTZXNzaW9uSWQpfSl9ZnVuY3Rpb24gam8oKXtLbygpLCFkaSgpJiYoci5wb2xsVGltZXI9c2V0SW50ZXJ2YWwoT3QsMTYwMCkpfXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNlc3Npb24tdGltZSIpO2UubGVuZ3RoPjAmJkJ1KCl9LDNlNCk7ZnVuY3Rpb24gYmEoKXtyLndzUmVjb25uZWN0VGltZXImJihjbGVhclRpbWVvdXQoci53c1JlY29ubmVjdFRpbWVyKSxyLndzUmVjb25uZWN0VGltZXI9bnVsbCl9dmFyIFBjPTFlNCxPYz00ZTQ7ZnVuY3Rpb24gSGMoKXtSbygpLHIud3NIZWFydGJlYXRDaGVja1RpbWVyPXNldEludGVydmFsKFdvLFBjKX1mdW5jdGlvbiBSbygpe3Iud3NIZWFydGJlYXRDaGVja1RpbWVyJiYoY2xlYXJJbnRlcnZhbChyLndzSGVhcnRiZWF0Q2hlY2tUaW1lciksci53c0hlYXJ0YmVhdENoZWNrVGltZXI9bnVsbCl9ZnVuY3Rpb24gV28oKXtpZighKCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTikmJnIubGFzdFdzTWVzc2FnZUF0KXt2YXIgZT1EYXRlLm5vdygpLXIubGFzdFdzTWVzc2FnZUF0O2U+T2MmJkVhKCJoZWFydGJlYXQtc3RhbGUtIitNYXRoLnJvdW5kKGUvMWUzKSsicyIpfX1mdW5jdGlvbiBFYShlKXtpZihiYSgpLHIud3Mpe3ZhciB0PXIud3M7dHJ5e3Qub25jbG9zZT1udWxsfWNhdGNoe310cnl7dC5vbmVycm9yPW51bGx9Y2F0Y2h7fXRyeXt0Lm9ubWVzc2FnZT1udWxsfWNhdGNoe310cnl7dC5jbG9zZSgpfWNhdGNoe31yLndzPW51bGx9ci53c0Nvbm5lY3RlZD0hMSxyLndzUmVjb25uZWN0QXR0ZW1wdHM9MCxkaShlKX1mdW5jdGlvbiB6bygpe2lmKCFyLndzUmVjb25uZWN0VGltZXImJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBlPXIud3NSZWNvbm5lY3RBdHRlbXB0c3x8MCx0PVs1MDAsMWUzLDJlMyw0ZTMsOGUzXSxuPXRbZTx0Lmxlbmd0aD9lOnQubGVuZ3RoLTFdO3Iud3NSZWNvbm5lY3RBdHRlbXB0cz1lKzEsci53c1JlY29ubmVjdFRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLndzUmVjb25uZWN0VGltZXI9bnVsbCxyLmNvbmZpZyYmIXIud3MmJiFkb2N1bWVudC5oaWRkZW4mJmRpKCJiYWNrb2ZmIil9LG4pfX1mdW5jdGlvbiBkaShlKXtpZighd2luZG93LldlYlNvY2tldClyZXR1cm4hMTtpZihyLndzKXt0cnl7ci53cy5jbG9zZSgpfWNhdGNoe31yLndzPW51bGx9dmFyIHQ9d2luZG93LmxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IndzczoiOiJ3czoiLG49dCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0KyIvd3MiO3RyeXt2YXIgaT1uZXcgV2ViU29ja2V0KG4pO3JldHVybiBpLm9ub3Blbj1mdW5jdGlvbigpe3Iud3M9aSxyLndzQ29ubmVjdGVkPSEwLHIubGFzdFdzTWVzc2FnZUF0PURhdGUubm93KCksci53c1JlY29ubmVjdEF0dGVtcHRzPTAsYmEoKSxyLmxhc3RTZXFCeVNlc3Npb249e30sSGMoKSxQbihyLnNlbGVjdGVkSWQpLHN2KCksQ3IoIndzLXJlY29ubmVjdCIpfSxpLm9ubWVzc2FnZT1mdW5jdGlvbihhKXtyLmxhc3RXc01lc3NhZ2VBdD1EYXRlLm5vdygpO3RyeXt2YXIgdT1KU09OLnBhcnNlKGEuZGF0YSk7aWYodSYmdS50eXBlPT09InBpbmciKXtpZihyLndzJiZyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTil0cnl7ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJwb25nIix0OnUudH0pKX1jYXRjaHt9cmV0dXJufWlmKHUmJnUudHlwZT09PSJyZXN5bmNfcmVxdWlyZWQiJiZ1LnNlc3Npb25JZCl7aWYoci53cyYmci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU4pdHJ5e3Iud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToicmVzeW5jIixzZXNzaW9uSWQ6dS5zZXNzaW9uSWR9KSl9Y2F0Y2h7fXIubGFzdFNlcUJ5U2Vzc2lvbnx8KHIubGFzdFNlcUJ5U2Vzc2lvbj17fSksci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT0wO3JldHVybn1pZih1JiYodS50eXBlPT09ImluaXQifHx1LnR5cGU9PT0ib3V0cHV0IikmJnUuc2Vzc2lvbklkJiZ0eXBlb2YgdS5zZXE9PSJudW1iZXIiKXtyLmxhc3RTZXFCeVNlc3Npb258fChyLmxhc3RTZXFCeVNlc3Npb249e30pO3ZhciBvPXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF18fDA7aWYodS50eXBlPT09ImluaXQiKXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09dS5zZXE7ZWxzZSBpZih1LnNlcT09PW8rMSlyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPXUuc2VxO2Vsc2UgaWYodS5zZXE+bysxJiZvPjApe2lmKHIud3MmJnIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOKXRyeXtyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InJlc3luYyIsc2Vzc2lvbklkOnUuc2Vzc2lvbklkfSkpfWNhdGNoe31yLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPTA7cmV0dXJufWVsc2V7aWYodS5zZXE8bylyZXR1cm47ci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT11LnNlcX19X2ModSl9Y2F0Y2h7fX0saS5vbmNsb3NlPWZ1bmN0aW9uKCl7ci53cz1udWxsLHIud3NDb25uZWN0ZWQ9ITEsUm8oKSx6bygpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtpLmNsb3NlKCl9LCEwfWNhdGNoe3JldHVybiB6bygpLCExfX1mdW5jdGlvbiBfYyhlKXtzd2l0Y2goZS50eXBlKXtjYXNlIm91dHB1dCI6aWYoZS5kYXRhJiZlLnNlc3Npb25JZCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwiaXNSZXNwb25kaW5nIikmJihyLl9sYXN0SXNSZXNwb25kaW5nfHwoci5fbGFzdElzUmVzcG9uZGluZz17fSksci5fbGFzdElzUmVzcG9uZGluZ1tlLnNlc3Npb25JZF09ISFlLmRhdGEuaXNSZXNwb25kaW5nKSxlLmRhdGEmJmUuc2Vzc2lvbklkKXt2YXIgdD0hIWUuZGF0YS5pbmNyZW1lbnRhbCxuPXtpZDplLnNlc3Npb25JZH0saT0hMTtpZighdCYmZS5kYXRhLm91dHB1dCE9PXZvaWQgMCYmKG4ub3V0cHV0PWUuZGF0YS5vdXRwdXQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInBlcm1pc3Npb25CbG9ja2VkIikmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJxdWV1ZWRNZXNzYWdlcyIpJiYobi5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXN8fFtdLHIucXVldWVFcG9jaCsrKSxlLmRhdGEuc3RydWN0dXJlZFN0YXRlJiYobi5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSksZS5kYXRhLnNlc3Npb25LaW5kJiYobi5zZXNzaW9uS2luZD1lLmRhdGEuc2Vzc2lvbktpbmQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInRpdGxlIikmJihuLnRpdGxlPWUuZGF0YS50aXRsZSxpPSEwKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJkZXNjcmlwdGlvbiIpJiYobi5kZXNjcmlwdGlvbj1lLmRhdGEuZGVzY3JpcHRpb24saT0hMCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3VtbWFyeSIpJiYobi5zdW1tYXJ5PWUuZGF0YS5zdW1tYXJ5KSxlLmRhdGEubWVzc2FnZXMpbi5tZXNzYWdlcz1lLmRhdGEubWVzc2FnZXMsdHlwZW9mIGUuZGF0YS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIiYmKG4ubWVzc2FnZU9mZnNldD1lLmRhdGEubWVzc2FnZU9mZnNldCksdHlwZW9mIGUuZGF0YS5tZXNzYWdlVG90YWw9PSJudW1iZXIiJiYobi5tZXNzYWdlVG90YWw9ZS5kYXRhLm1lc3NhZ2VUb3RhbCk7ZWxzZSBpZih0JiZlLmRhdGEubGFzdE1lc3NhZ2Upe3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSk7aWYoYSl7dmFyIHU9QXJyYXkuaXNBcnJheShhLm1lc3NhZ2VzKT9hLm1lc3NhZ2VzLnNsaWNlKCk6W10sbz1lLmRhdGEubWVzc2FnZUNvdW50fHwwLHM9dHlwZW9mIGEubWVzc2FnZU9mZnNldD09Im51bWJlciI/YS5tZXNzYWdlT2Zmc2V0OjAsbD11Lmxlbmd0aD4wP3VbdS5sZW5ndGgtMV06bnVsbCxkPWUuZGF0YS5sYXN0TWVzc2FnZTtsJiZkLnJvbGUmJmwucm9sZT09PWQucm9sZT91W3UubGVuZ3RoLTFdPUxwKGwsZCk6cyt1Lmxlbmd0aDxvJiZ1LnB1c2goZCksbi5tZXNzYWdlcz11LG8+MCYmKG4ubWVzc2FnZVRvdGFsPW8pfX12YXIgZj10JiZlLmRhdGEuY2h1bmsmJiFlLmRhdGEubGFzdE1lc3NhZ2UmJiFuLm1lc3NhZ2VzJiZuLm91dHB1dD09PXZvaWQgMCYmIWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUmJiFlLmRhdGEuc2Vzc2lvbktpbmQ7aWYoZil7aWYoZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkIT09dm9pZCAwKXt2YXIgYz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pO2MmJiEhYy5wZXJtaXNzaW9uQmxvY2tlZCE9ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQmJihYKG4pLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZZdCgpKX19ZWxzZSBpZigobi5vdXRwdXQhPT12b2lkIDB8fG4ubWVzc2FnZXN8fHR8fGUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCE9PXZvaWQgMHx8bi50aXRsZXx8bi5kZXNjcmlwdGlvbikmJihYKG4pLGkmJkJ1KCksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgdj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPXplKHYsWGUodix2Lm91dHB1dCwhMSkpLFl0KCksdi5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5kYXRhLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiP3lyKCk6RmEoKX19ZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJnIudGVybWluYWwmJmUuZGF0YSYmKGUuZGF0YS5jaHVuayYmV3AoZS5zZXNzaW9uSWQpPyhyLmxhc3RDaHVua0F0PURhdGUubm93KCksci50ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uc1tlLnNlc3Npb25JZF09ITAsSm4oci50ZXJtaW5hbCxlLmRhdGEuY2h1bmspLHIudGVybWluYWxTZXNzaW9uSWQ9ZS5zZXNzaW9uSWQsZS5kYXRhLm91dHB1dD8oci50ZXJtaW5hbE91dHB1dD1scyhmdShlLmRhdGEub3V0cHV0KSksci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKTpyLnRlcm1pbmFsT3V0cHV0PWxzKChyLnRlcm1pbmFsT3V0cHV0fHwiIikrZnUoZS5kYXRhLmNodW5rKSkscHQoIm91dHB1dCIpLG90KCkpOiFlLmRhdGEuaW5jcmVtZW50YWwmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsIm91dHB1dCIpJiZnaShlLnNlc3Npb25JZCxlLmRhdGEub3V0cHV0fHwiIix7bW9kZToiYXBwZW5kIn0pKTticmVhaztjYXNlInN0YXJ0ZWQiOm1uKCk7YnJlYWs7Y2FzZSJlbmRlZCI6e3ZhciBoPWUuZGF0YSYmZS5kYXRhLnN0YXR1cz9lLmRhdGEuc3RhdHVzOiJleGl0ZWQiLGc9ZS5kYXRhJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpPyEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkOiExLG09e2lkOmUuc2Vzc2lvbklkLHN0YXR1czpoLHBlcm1pc3Npb25CbG9ja2VkOmd9O2UuZGF0YSYmZS5kYXRhLm1lc3NhZ2VzJiYobS5tZXNzYWdlcz1lLmRhdGEubWVzc2FnZXMsdHlwZW9mIGUuZGF0YS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIiYmKG0ubWVzc2FnZU9mZnNldD1lLmRhdGEubWVzc2FnZU9mZnNldCksdHlwZW9mIGUuZGF0YS5tZXNzYWdlVG90YWw9PSJudW1iZXIiJiYobS5tZXNzYWdlVG90YWw9ZS5kYXRhLm1lc3NhZ2VUb3RhbCkpLGUuZGF0YSYmZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSYmKG0uc3RydWN0dXJlZFN0YXRlPWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpLGUuZGF0YSYmZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzJiYobS5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXMpLFgobSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihMbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIiksRmEoITApKTt2YXIgeT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pLEM9ZS5kYXRhJiZlLmRhdGEuZXhpdENvZGUsRT1DIT1udWxsJiZDIT09MCxCPXkmJnkuc3VtbWFyeXx8IiIsRD15P2djKHkpOiIiLEY9RT8iXHU0RUZCXHU1MkExXHU1RjAyXHU1RTM4XHU3RUQzXHU2NzVGIjoiXHU0RUZCXHU1MkExXHU1REYyXHU1QjhDXHU2MjEwIixJPSIiO0I/KEk9QixEJiYhRSYmKEkrPWAKYCtEKSk6ST15JiZ5LmNvbW1hbmR8fGUuc2Vzc2lvbklkLEduKEU/ImVycm9yIjoic3VjY2VzcyIpLFpmKGUuc2Vzc2lvbklkLEYsSSksZ3MoZS5zZXNzaW9uSWQpLE9hKCksKGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkfHxkb2N1bWVudC5oaWRkZW4pJiZxYSh7dGl0bGU6Rixib2R5OkksdHlwZTpFPyJ3YXJuaW5nIjoic3VjY2VzcyIsaWNvbjpFPyIhIjoiXHUyNzEzIixkdXJhdGlvbjo2ZTMsYWN0aW9uTGFiZWw6Ilx1NjdFNVx1NzcwQiIsYWN0aW9uOmZ1bmN0aW9uKCl7SHQoZS5zZXNzaW9uSWQpfX0pLHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdO3ZhciBMPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSksSD1lLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZD9yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1yLnNlbGVjdGVkSWR9KTpudWxsLFU9ISEoTCYmTC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8SCYmSC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIik7VSYmZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQ/KHFzKCksWXUoZS5zZXNzaW9uSWQpKTpVfHwoci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1bXSxZdShyLnNlbGVjdGVkSWQpLGRuKCkpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoVXx8TW4oITEpLHIuY3VycmVudFRhc2s9bnVsbCxZdCgpKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmanIoKSxtbigpLnRoZW4oZnVuY3Rpb24oKXt3aSgpfSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihVfHxnbihlLnNlc3Npb25JZCkpO2JyZWFrfWNhc2UiaW5pdCI6aWYoZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJmUuZGF0YSl7ci5jaGF0UmVuZGVyVGltZXImJihjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLHIuY2hhdFJlbmRlclRpbWVyPW51bGwpLFgoZS5kYXRhKTt2YXIgeD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pO3IuY3VycmVudE1lc3NhZ2VzPXplKHh8fGUuZGF0YSxYZSh4fHxlLmRhdGEsZS5kYXRhLm91dHB1dCwhMSkpLHlyKCEwKSxZdCgpLFZvKCk7dmFyIGs9ZS5kYXRhLm91dHB1dHx8IiIsVD1yLnRlcm1pbmFsU2Vzc2lvbklkPT09ZS5zZXNzaW9uSWQsTT1yLnRlcm1pbmFsT3V0cHV0fHwiIixZPVQmJk0ubGVuZ3RoPjAmJmsubGVuZ3RoPj1NLmxlbmd0aCYmay5zdGFydHNXaXRoKE0pO1djKGssZS5zZXNzaW9uSWQsWT8iYXBwZW5kIjoicmVwbGFjZSIpLENyKCJpbml0Iil9YnJlYWs7Y2FzZSJ1c2FnZSI6YnJlYWs7Y2FzZSJ0YXNrIjplLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKHIuY3VycmVudFRhc2s9ZS5kYXRhfHxudWxsLFl0KCkpLCRmKGUuc2Vzc2lvbklkLGUuZGF0YXx8bnVsbCksSGEoZS5zZXNzaW9uSWQpLEJ1KCk7YnJlYWs7Y2FzZSJzdGF0dXMiOmlmKGUuc2Vzc2lvbklkJiZlLmRhdGEpe3ZhciB6PXtpZDplLnNlc3Npb25JZH07aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3RhdHVzIikmJih6LnN0YXR1cz1lLmRhdGEuc3RhdHVzKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJleGl0Q29kZSIpJiYoei5leGl0Q29kZT1lLmRhdGEuZXhpdENvZGUpLGUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpei5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZTtlbHNlIGlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInN0YXR1cyIpKXt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTil7cmV0dXJuIE4uaWQ9PT1lLnNlc3Npb25JZH0pO2EmJmEuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJih6LnN0cnVjdHVyZWRTdGF0ZT1PYmplY3QuYXNzaWduKHt9LGEuc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ZS5kYXRhLnN0YXR1cz09PSJydW5uaW5nIn0pKX1pZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJxdWV1ZWRNZXNzYWdlcyIpJiYoei5xdWV1ZWRNZXNzYWdlcz1lLmRhdGEucXVldWVkTWVzc2FnZXN8fFtdLHIucXVldWVFcG9jaCsrKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpJiYoei5wZXJtaXNzaW9uQmxvY2tlZD0hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCksZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0KXt6LnBlbmRpbmdFc2NhbGF0aW9uPXtzY29wZTplLmRhdGEucGVybWlzc2lvblJlcXVlc3Quc2NvcGUsdGFyZ2V0OmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC50YXJnZXQscmVhc29uOmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC5wcm9tcHR9O3ZhciBRPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihPKXtyZXR1cm4gTy5pZD09PWUuc2Vzc2lvbklkfSksbGU9USYmKFEuc3VtbWFyeXx8US5jb21tYW5kKXx8ZS5zZXNzaW9uSWQsZWU9ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnByb21wdHx8Ilx1OTcwMFx1ODk4MVx1Njc0M1x1OTY1MFx1NUJBMVx1NjI3OSIsWj1lLmRhdGEucGVybWlzc2lvblJlcXVlc3QudGFyZ2V0LHE9bGU7Wj9xKz1gCmArZWUrIiBceEI3ICIrWjpxKz1gCmArZWUsR24oIm1lZGl1bSIpLFhmKGUuc2Vzc2lvbklkLHEpLGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZxYSh7dGl0bGU6Ilx1OTcwMFx1ODk4MVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyIsYm9keTpxLHR5cGU6Indhcm5pbmciLGljb246IiEiLGR1cmF0aW9uOjAsYWN0aW9uTGFiZWw6Ilx1NTNCQlx1NTkwNFx1NzQwNiIsYWN0aW9uOmZ1bmN0aW9uKCl7SHQoZS5zZXNzaW9uSWQpfX0pfWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZD09PSExJiYoei5wZW5kaW5nRXNjYWxhdGlvbj1udWxsKSxlLmRhdGEuYXBwcm92YWxTdGF0cyYmKHouYXBwcm92YWxTdGF0cz1lLmRhdGEuYXBwcm92YWxTdGF0cyksWCh6KSxIYShlLnNlc3Npb25JZCksT2EoKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFl0KCksZS5kYXRhLmFwcHJvdmFsU3RhdHMmJlZvKCksei5zdHJ1Y3R1cmVkU3RhdGUmJih6LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodHx8KExuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxxcygpKSxGYSgpKSl9YnJlYWs7Y2FzZSJub3RpZmljYXRpb24iOmUuZGF0YSYmKGUuZGF0YS5raW5kPT09InVwZGF0ZSI/dnMoZS5kYXRhLmN1cnJlbnR8fCItIixlLmRhdGEubGF0ZXN0fHwiLSIpOmUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXN0YXJ0Ij9hcChlLmRhdGEuY3VycmVudHx8Ii0iLGUuZGF0YS5sYXRlc3R8fCItIixlLmRhdGEucHJldmlvdXNJbnN0YW5jZUlkfHxudWxsKTplLmRhdGEua2luZD09PSJhdXRvLXVwZGF0ZS1yZXN0YXJ0Ij9sbihlLmRhdGEucHJldmlvdXNJbnN0YW5jZUlkfHxudWxsLGUuZGF0YS5sYXRlc3R8fG51bGwpOmUuZGF0YS5raW5kPT09InJlc3RhcnQiJiZsbigpKTticmVha319ZnVuY3Rpb24gWXQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3VycmVudC10YXNrIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGVybWlzc2lvbi1hY3Rpb25zIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGVybWlzc2lvbi1hY3Rpb25zLWxhYmVsIik7aWYoZSl7dmFyIGk9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiB2LmlkPT09ci5zZWxlY3RlZElkfSk7aSYmaS5wcm92aWRlcj09PSJjb2RleCImJih0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuY2xhc3NMaXN0LnJlbW92ZSgicGVybWlzc2lvbi1ibG9ja2VkIikpO3ZhciBhPWkmJmkucGVuZGluZ0VzY2FsYXRpb24/aS5wZW5kaW5nRXNjYWxhdGlvbjpudWxsLHU9aSYmaS5wcm92aWRlciE9PSJjb2RleCI/YXx8aS5wZXJtaXNzaW9uQmxvY2tlZDohMTtpZih1KXt2YXIgbz1pJiZpLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7aWYobilpZihvKW4udGV4dENvbnRlbnQ9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NEUyRC4uLiI7ZWxzZSBpZihhKXt2YXIgcz1hLnJlYXNvbnx8Ilx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyIsbD1hLnRhcmdldD8iIFx4QjcgIithLnRhcmdldDoiIjtuLnRleHRDb250ZW50PXMrbH1lbHNlIG4udGV4dENvbnRlbnQ9Ilx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyI7aWYodCl7dC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIpLGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlbnktcGVybWlzc2lvbi1idG4iKTtkJiZkLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsISFvKSxmJiZmLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsISFvKX1lLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKTtyZXR1cm59ZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKSx0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBjPXIuY3VycmVudFRhc2s7YyYmYy50aXRsZT8oZS50ZXh0Q29udGVudD1jLnRpdGxlLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpOihlLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpfX1mdW5jdGlvbiBWbygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZhbC1zdGF0cyIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5hcHByb3ZhbFN0YXRzO2lmKCFufHxuLnRvdGFsPT09MCl7ZS5jbGFzc05hbWU9ImFwcHJvdmFsLXN0YXRzIGhpZGRlbiIsZS5pbm5lckhUTUw9IiI7cmV0dXJufWUuY2xhc3NOYW1lPSJhcHByb3ZhbC1zdGF0cyIsZS5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1kaXZpZGVyIj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiBpZD0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIHRpdGxlPSJcdTY3MkNcdTZCMjFcdTRGMUFcdThCRERcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTEiPjxzdmcgY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWljb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtdG90YWwiPicrbi50b3RhbCsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAiIGlkPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwLXRpdGxlIj5cdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTE8L3NwYW4+Jysobi5jb21tYW5kPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJ0ZXJtaW5hbCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0N0RcdTRFRTRcdTYyNjdcdTg4NEM8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLmNvbW1hbmQrIjwvc3Bhbj48L3NwYW4+IjoiIikrKG4uZmlsZT4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigiZWRpdCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTY1ODdcdTRFRjZcdTUxOTlcdTUxNjU8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLmZpbGUrIjwvc3Bhbj48L3NwYW4+IjoiIikrKG4udG9vbD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigid3JlbmNoIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTE3Nlx1NEVENlx1NURFNVx1NTE3Nzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24udG9vbCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsnPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyBhcHByb3ZhbC1zdGF0cy1yb3ctdG90YWwiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJzaWdtYSIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0MDhcdThCQTE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLnRvdGFsKyI8L3NwYW4+PC9zcGFuPjwvc3Bhbj4iO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmFwcHJvdmFsLXN0YXRzLWJhZGdlIik7aSYmKGkuY2xhc3NMaXN0LnJlbW92ZSgiYXBwcm92YWwtc3RhdHMtcHVsc2UiKSxpLm9mZnNldFdpZHRoLGkuY2xhc3NMaXN0LmFkZCgiYXBwcm92YWwtc3RhdHMtcHVsc2UiKSl9fWZ1bmN0aW9uIE5jKCl7aWYoR24oImxpZ2h0IiksISFyLnNlbGVjdGVkSWQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2UmJihlLmRpc2FibGVkPSEwKSx0JiYodC5kaXNhYmxlZD0hMCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2FwcHJvdmUtcGVybWlzc2lvbiIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtBKG4uZXJyb3IsImVycm9yIik7cmV0dXJufVgobiksWXQoKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe0EobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2Mjc5XHU1MUM2XHU2Mzg4XHU2NzQzXHUzMDAyIiwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlJiYoZS5kaXNhYmxlZD0hMSksdCYmKHQuZGlzYWJsZWQ9ITEpfSl9fWZ1bmN0aW9uIGpjKCl7aWYoR24oImxpZ2h0IiksISFyLnNlbGVjdGVkSWQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2UmJihlLmRpc2FibGVkPSEwKSx0JiYodC5kaXNhYmxlZD0hMCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2RlbnktcGVybWlzc2lvbiIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtBKG4uZXJyb3IsImVycm9yIik7cmV0dXJufVgobiksWXQoKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe0EobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MkQyXHU3RUREXHU2Mzg4XHU2NzQzXHUzMDAyIiwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlJiYoZS5kaXNhYmxlZD0hMSksdCYmKHQuZGlzYWJsZWQ9ITEpfSl9fWZ1bmN0aW9uIFJjKCl7aWYoci5zZWxlY3RlZElkKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZlLnByb3ZpZGVyPT09ImNvZGV4Iil7QSgiQ29kZXggXHU0RjFBXHU4QkREXHU1NkZBXHU1QjlBXHU0RUU1IGZ1bGwtYWNjZXNzIFBUWSBcdTU0MkZcdTUyQThcdUZGMENcdTRFMERcdTY1MkZcdTYzMDFcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTMwMDIiLCJpbmZvIik7cmV0dXJufXZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLWFwcHJvdmUtdG9nZ2xlIik7dCYmKHQuc3R5bGUub3BhY2l0eT0iMC41IiksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL3RvZ2dsZS1hdXRvLWFwcHJvdmUiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil7QShuLmVycm9yLCJlcnJvciIpO3JldHVybn1YKG4pLFVvKCk7dmFyIGk9bi5hdXRvQXBwcm92ZVBlcm1pc3Npb25zO0EoaT8iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1RjAwXHU1NDJGIjoiXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEIiwiaW5mbyIpfSkuY2F0Y2goZnVuY3Rpb24obil7QShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3QmJih0LnN0eWxlLm9wYWNpdHk9IiIpfSl9fWZ1bmN0aW9uIFVvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tYXBwcm92ZS10b2dnbGUiKSx0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKF9sKHQpKXtlJiZlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKTtyZXR1cm59aWYoZSl7dmFyIG49ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IiLGk9dCYmdC5hdXRvQXBwcm92ZVBlcm1pc3Npb25zO2k/KGUuY2xhc3NOYW1lPW4rIiBhY3RpdmUiLGUudGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTQyRlx1NzUyOCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwidHJ1ZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiksZS5pbm5lckhUTUw9Vigic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj4nKTooZS5jbGFzc05hbWU9bixlLnRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsImZhbHNlIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiKSxlLmlubmVySFRNTD1WKCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj4nKX19ZnVuY3Rpb24gV2MoZSx0LG4pe3JldHVybiByLnRlcm1pbmFsP2dpKHR8fHIuc2VsZWN0ZWRJZCxlLHttb2RlOm58fCJhcHBlbmQifSk6ITF9ZnVuY3Rpb24gS28oKXtyLnBvbGxUaW1lciYmKGNsZWFySW50ZXJ2YWwoci5wb2xsVGltZXIpLHIucG9sbFRpbWVyPW51bGwpfWZ1bmN0aW9uIFpnKGUpe3IuY3VycmVudFZpZXc9ZXx8InRlcm1pbmFsIixyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIiYmKE1uKCExKSxXcygpKSxLaSgpLEphKCk7dmFyIHQ9RHQoKTt0JiYoci5jdXJyZW50TWVzc2FnZXM9emUodCxYZSh0LHQub3V0cHV0LCEwKSkpLG90KCksci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCImJihxdCghMCksci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUmJnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IudGVybWluYWwmJnIudGVybWluYWwucmVtZWFzdXJlKCl9KSl9ZnVuY3Rpb24geXIoZSl7ci5yZW5kZXJQZW5kaW5nJiYhZXx8KHIucmVuZGVyUGVuZGluZz0hMCxlPyhUaSghMCksci5yZW5kZXJQZW5kaW5nPSExKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtUaSghMSksci5yZW5kZXJQZW5kaW5nPSExfSkpfXIuY2hhdFJlbmRlclRpbWVyPW51bGw7ZnVuY3Rpb24gRmEoZSl7aWYoIShyLmNoYXRSZW5kZXJUaW1lciYmIWUpKXtpZihyLmNoYXRSZW5kZXJUaW1lciYmY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxlKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsLHlyKCk7cmV0dXJufXZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5zdGF0dXM9PT0icnVubmluZyImJnQuc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIsaT1uP29zOnNzO3IuY2hhdFJlbmRlclRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsO3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih1KXtyZXR1cm4gdS5pZD09PXIuc2VsZWN0ZWRJZH0pO2EmJihyLmN1cnJlbnRNZXNzYWdlcz16ZShhLFhlKGEsYS5vdXRwdXQsITApKSkseXIoKX0saSl9fXZhciB3YT0wLGNpPTAsSm89MCxicj0wO2Z1bmN0aW9uIENhKCl7cmV0dXJuIHdpbmRvdy5fX3dhbmRJb3NOYXRpdmU9PT0hMH1mdW5jdGlvbiBZbyhlKXtKbz1NYXRoLm1heChKbyxEYXRlLm5vdygpKyhlfHwxODAwKSl9ZnVuY3Rpb24gR28oZSx0KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtmaShuKSYmbiE9PXR8fFlvKGUpfSwzMCl9ZnVuY3Rpb24gemMoZSl7cmV0dXJuIE1hdGgubWF4KHdpbmRvdy5pbm5lckhlaWdodHx8MCxlJiZlLmhlaWdodHx8MCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fDAsZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHR8fDApfWZ1bmN0aW9uIFZjKGUpe3ZhciB0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPU1hdGgubWF4KHdpbmRvdy5pbm5lcldpZHRofHwwLGUmJmUud2lkdGh8fDAsdCYmdC5jbGllbnRXaWR0aHx8MCksaT16YyhlKTtyZXR1cm4hd2F8fE1hdGguYWJzKG4td2EpPjg/KHdhPW4sY2k9aSk6aT5jaSYmKGNpPWkpLE1hdGgubWF4KDEsTWF0aC5yb3VuZChjaXx8aXx8MSkpfWZ1bmN0aW9uIFVjKGUsdCxuLGkpe3JldHVybiBlfHwhQ2EoKT8hMTp0PjB8fGk+bisxfWZ1bmN0aW9uIFVuKGUpe3ZhciB0PXdpbmRvdy52aXN1YWxWaWV3cG9ydDtpZih0KXt2YXIgbj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYobi5jbGFzc0xpc3QudG9nZ2xlKCJpcy1rZXlib2FyZC1vcGVuIiwhIWUpLHdpbmRvdy5fX3dhbmRJbWVOYXRpdmUpe24uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LXRvcCIsIjBweCIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LWhlaWdodCIsTWF0aC5yb3VuZCh0LmhlaWdodCkrInB4Iik7cmV0dXJufXZhciBpPVZjKHQpLGE9TWF0aC5tYXgoMCxNYXRoLnJvdW5kKHQub2Zmc2V0VG9wfHwwKSksdT1NYXRoLm1heCgxLE1hdGgucm91bmQodC5oZWlnaHQpKTsoIWUmJkNhKCl8fFVjKGUsYSx1LGkpKSYmKGE9MCx1PU1hdGgubWF4KHUsaSkpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LXRvcCIsYSsicHgiKSxuLnN0eWxlLnNldFByb3BlcnR5KCItLWFwcC12aWV3cG9ydC1oZWlnaHQiLHUrInB4IiksKGV8fCh3aW5kb3cuc2Nyb2xsWXx8MCk+MCkmJlphKCl9fWZ1bmN0aW9uIGZpKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PWUudGFnTmFtZTtpZih0PT09IlRFWFRBUkVBInx8dD09PSJTRUxFQ1QiKXJldHVybiEwO2lmKHQ9PT0iSU5QVVQiKXt2YXIgbj0oZS5nZXRBdHRyaWJ1dGUoInR5cGUiKXx8InRleHQiKS50b0xvd2VyQ2FzZSgpO3JldHVybiEvXihidXR0b258Y2hlY2tib3h8Y29sb3J8ZmlsZXxoaWRkZW58aW1hZ2V8cmFkaW98cmFuZ2V8cmVzZXR8c3VibWl0KSQvaS50ZXN0KG4pfXJldHVybiEhZS5pc0NvbnRlbnRFZGl0YWJsZX1mdW5jdGlvbiBLYygpe2lmKCEoInZpc3VhbFZpZXdwb3J0ImluIHdpbmRvdyl8fHdpbmRvdy5fX3dhbmRWaWV3cG9ydEhhbmRsZXJzQm91bmQpcmV0dXJuO3dpbmRvdy5fX3dhbmRWaWV3cG9ydEhhbmRsZXJzQm91bmQ9ITA7dmFyIGU9d2luZG93LnZpc3VhbFZpZXdwb3J0LHQ9ZS5oZWlnaHQsbj0hMSxpPU1hdGgubWF4KHdpbmRvdy5pbm5lcldpZHRofHwwLGUud2lkdGh8fDApLGE9TWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUuaGVpZ2h0fHwwKSx1PVtdO2Z1bmN0aW9uIG8oKXtyZXR1cm4gTWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUuaGVpZ2h0fHwwKX1mdW5jdGlvbiBzKCl7dmFyIGc9TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZS53aWR0aHx8MCksbT1vKCk7aWYoTWF0aC5hYnMoZy1pKT44KXtpPWcsYT1tO3JldHVybn1tPmEmJihhPW0pfWZ1bmN0aW9uIGwoZyxtKXt2YXIgeT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LEM9eT09PWd8fGZpKHkpLEU9YS1lLmhlaWdodCxCPWEtKHdpbmRvdy5pbm5lckhlaWdodHx8ZS5oZWlnaHR8fDApLEQ9RGF0ZS5ub3coKTxicjtyZXR1cm4gRD8hIShDJiYoRT4xMjB8fEI+MTIwKSk6ISEobT44MHx8QyYmKEU+MTIwfHxCPjEyMCl8fG4mJihFPjgwfHxtPjMyKSl9ZnVuY3Rpb24gZCgpe3UuZm9yRWFjaChmdW5jdGlvbihnKXtjbGVhclRpbWVvdXQoZyl9KSx1PVs2MCwxODAsMzYwLDYyMCw5MDBdLm1hcChmdW5jdGlvbihnKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe1VuKG4pfSxnKX0pfWZ1bmN0aW9uIGYoKXtbMCw1MCwxMjAsMjIwLDM2MCw1NjBdLmZvckVhY2goZnVuY3Rpb24oZyl7c2V0VGltZW91dChmdW5jdGlvbigpe2MoKTt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PW0mJklpKG0pfSxnKX0pfWZ1bmN0aW9uIGMoKXtpZihlKXt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksbT13aW5kb3cuaW5uZXJIZWlnaHQtZS5oZWlnaHQtZS5vZmZzZXRUb3A7cygpO3ZhciB5PWwoZyxtKSxDPU1hdGguYWJzKGUuaGVpZ2h0LXQpPjg7aWYoVW4oeSkseSYmKCFufHxDKSYma3YoZSxnKSYmSWkoZyksIW4mJnkpe3ZhciBFPXIudGVybWluYWxBdXRvRm9sbG93fHx4YSgpO1FlKCJrZXlib2FyZC1vcGVuIix7Zm9yY2VSZXBsYXk6ITB9KSx3aW5kb3cuX193YW5kSW1lTmF0aXZlfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VW4oITApfSwyMjApLGQoKSxFJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmcHQoImZvcmNlIil9LDIyMCl9aWYobiYmIXkpe3ZhciBCPSEhd2luZG93Ll9fd2FuZEltZU5hdGl2ZTtCfHwoWW8oMjIwMCksYnI9RGF0ZS5ub3coKSsxMjAwLFVuKCExKSxaYSgpKSxkKCksc2V0VGltZW91dChmdW5jdGlvbigpe0J8fChVbighMSksWmEoKSksUWUoImtleWJvYXJkLWNsb3NlIix7Zm9yY2VSZXBsYXk6ITB9KSxwdCgia2V5Ym9hcmQiKX0sMjAwKX1DJiZuPT09eSYmUWUoInZpZXdwb3J0Iiksbj15LHQ9ZS5oZWlnaHR9fXZhciB2PW51bGw7ZnVuY3Rpb24gaCgpe3YhPT1udWxsJiZjYW5jZWxBbmltYXRpb25GcmFtZSh2KSx2PXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3Y9bnVsbCxjKCl9KX1lLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsaCksZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09InZpc2libGUiJiYoaCgpLHNldFRpbWVvdXQoaCwyNDApLHNldFRpbWVvdXQoaCw3MjApKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oZyl7ZyYmZy5wZXJzaXN0ZWQmJihoKCksc2V0VGltZW91dChoLDI0MCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLGZ1bmN0aW9uKGcpeyFnfHwhZy50YXJnZXR8fGZpKGcudGFyZ2V0KSYmKEdvKDE2MDAsZy50YXJnZXQpLENhKCkmJihicj1NYXRoLm1heChicixEYXRlLm5vdygpKzEyMDApKSxzZXRUaW1lb3V0KGgsODApLHNldFRpbWVvdXQoaCw0MjApKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLGZ1bmN0aW9uKGcpeyFnfHwhZy50YXJnZXR8fCFmaShnLnRhcmdldCl8fGYoKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWlvcy1pbWUtc3RhdGUiLGZ1bmN0aW9uKGcpe3ZhciBtPWcmJmcuZGV0YWlsJiZnLmRldGFpbC5zdGF0ZTttPT09ImhpZGRlbiImJihicj1EYXRlLm5vdygpKzkwMCksZigpLGQoKX0pLGMoKX1mdW5jdGlvbiBKYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0idGVybWluYWwtcmVzaXplLWhhbmRsZSIsdC5pbm5lckhUTUw9IiYjODk0MjsiLGUuYXBwZW5kQ2hpbGQodCk7dmFyIG49ITEsaT0wLGE9MDt0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24odSl7bj0hMCxpPXUuY2xpZW50WSxhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSJucy1yZXNpemUiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0ibm9uZSIsdS5wcmV2ZW50RGVmYXVsdCgpfSksci5yZXNpemVNb3VzZU1vdmU9ZnVuY3Rpb24odSl7aWYobil7dmFyIG89dS5jbGllbnRZLWkscz1NYXRoLm1heCgyMDAsTWF0aC5taW4oYStvLHdpbmRvdy5pbm5lckhlaWdodC0yMDApKTtlLnN0eWxlLmhlaWdodD1zKyJweCIsZS5zdHlsZS5mbGV4PSJub25lIixxdCgpfX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixyLnJlc2l6ZU1vdXNlTW92ZSksci5yZXNpemVNb3VzZVVwPWZ1bmN0aW9uKCl7biYmKG49ITEsZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9IiIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSIiLHF0KCkpfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixyLnJlc2l6ZU1vdXNlVXApLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24odSl7bj0hMCxpPXUudG91Y2hlc1swXS5jbGllbnRZLGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsdS5wcmV2ZW50RGVmYXVsdCgpfSx7cGFzc2l2ZTohMX0pLHIucmVzaXplVG91Y2hNb3ZlPWZ1bmN0aW9uKHUpe2lmKG4pe3ZhciBvPXUudG91Y2hlc1swXS5jbGllbnRZLWkscz1NYXRoLm1heCgyMDAsTWF0aC5taW4oYStvLHdpbmRvdy5pbm5lckhlaWdodC0yMDApKTtlLnN0eWxlLmhlaWdodD1zKyJweCIsZS5zdHlsZS5mbGV4PSJub25lIixxdCgpLHUucHJldmVudERlZmF1bHQoKX19LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5yZXNpemVUb3VjaE1vdmUse3Bhc3NpdmU6ITF9KSxyLnJlc2l6ZVRvdWNoRW5kPWZ1bmN0aW9uKCl7biYmKG49ITEscXQoKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixyLnJlc2l6ZVRvdWNoRW5kKX19ZnVuY3Rpb24gUW8oKXtyZXR1cm4hIUR0KCl9ZnVuY3Rpb24gQmEoZSl7dmFyIHQ9TWF0aC5tYXgoY24sd2luZG93LmlubmVyV2lkdGgtQmktY24pLG49TWF0aC5tYXgoY24sd2luZG93LmlubmVySGVpZ2h0LUJpLWNuKTtyZXR1cm57cmlnaHQ6TWF0aC5taW4oTWF0aC5tYXgoY24sZS5yaWdodCksdCksYm90dG9tOk1hdGgubWluKE1hdGgubWF4KGNuLGUuYm90dG9tKSxuKX19ZnVuY3Rpb24gJG8oKXtpZihyLmpveXN0aWNrQmFsbEVsKXt2YXIgZT1CYShyLmpveXN0aWNrUG9zfHx7cmlnaHQ6MTgsYm90dG9tOjk2fSk7ci5qb3lzdGlja0JhbGxFbC5zdHlsZS5yaWdodD1lLnJpZ2h0KyJweCIsci5qb3lzdGlja0JhbGxFbC5zdHlsZS5ib3R0b209ZS5ib3R0b20rInB4In19ZnVuY3Rpb24gWWMoZSx0KXt2YXIgbj1CYSh7cmlnaHQ6ZSxib3R0b206dH0pO3Iuam95c3RpY2tQb3M9bjt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtYmFsbC1wb3MiLEpTT04uc3RyaW5naWZ5KG4pKX1jYXRjaHt9fWZ1bmN0aW9uIEdjKCl7ZnVuY3Rpb24gZSh1LG8scyl7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0id2pwLWtleScrKHM/IiAiK3M6IiIpKyciIGRhdGEta2V5PSInK3UrJyI+JytvKyI8L2J1dHRvbj4ifXZhciB0PSc8ZGl2IGNsYXNzPSJ3anAtZHBhZCI+PGRpdiBjbGFzcz0id2pwLWRwYWQtcm93Ij4nK2UoInVwIiwiXHUyMTkxIiwid2pwLWRpciIpKyc8L2Rpdj48ZGl2IGNsYXNzPSJ3anAtZHBhZC1yb3ciPicrZSgibGVmdCIsIlx1MjE5MCIsIndqcC1kaXIiKStlKCJkb3duIiwiXHUyMTkzIiwid2pwLWRpciIpK2UoInJpZ2h0IiwiXHUyMTkyIiwid2pwLWRpciIpKyI8L2Rpdj48L2Rpdj4iLG49IiIsaTtmb3IoaT0wO2k8VWEubGVuZ3RoO2krKyluKz1lKFVhW2ldLmtleSxVYVtpXS5sYWJlbCwiIik7dmFyIGE9JzxkaXYgY2xhc3M9IndqcC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJ3anAtdGl0bGUiPicrVigicGF3Iix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjYsY2xzOiJ3anAtdGl0bGUtaWNvbiJ9KSsnPHNwYW4+XHU5MDY1XHU2M0E3XHU5NzYyXHU2NzdGPC9zcGFuPjwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9IndqcC1jbG9zZSIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEXHU5MDY1XHU2M0E3XHU5NzYyXHU2NzdGIj4nK1YoIngiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjJ9KSsiPC9idXR0b24+PC9kaXY+Iit0Kyc8ZGl2IGNsYXNzPSJ3anAtZ3JpZCB3anAtZm5rZXlzIj4nK24rIjwvZGl2PiI7cmV0dXJuIGF9ZnVuY3Rpb24gUWMoKXtpZighci5qb3lzdGlja1Jvb3RFbCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9IndhbmQtam95c3RpY2stcm9vdCIsWyJwb2ludGVyZG93biIsInBvaW50ZXJ1cCIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsImNsaWNrIl0uZm9yRWFjaChmdW5jdGlvbihhKXtlLmFkZEV2ZW50TGlzdGVuZXIoYSxYbywhMCl9KTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1iYWNrZHJvcCIsZS5hcHBlbmRDaGlsZCh0KTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1wYW5lbCIsbi5pbm5lckhUTUw9R2MoKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhZiksZS5hcHBlbmRDaGlsZChuKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1iYWxsIixpLnNldEF0dHJpYnV0ZSgicm9sZSIsImJ1dHRvbiIpLGkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiV2FuZCBcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0YiKSxpLnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTcwQjlcdTUxRkJcdTYyNTNcdTVGMDBcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0ZcdUZGMENcdTYyRDZcdTUyQThcdTUzRUZcdTc5RkJcdTUyQThcdTRGNERcdTdGNkUiKSxpLmlubmVySFRNTD1WKCJwYXciLHtzaXplOjI1LHN0cm9rZVdpZHRoOjEuNixjbHM6IndhbmQtam95c3RpY2stbG9nbyJ9KSxlLmFwcGVuZENoaWxkKGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksci5qb3lzdGlja1Jvb3RFbD1lLHIuam95c3RpY2tCYWNrZHJvcEVsPXQsci5qb3lzdGlja1BhbmVsRWw9bixyLmpveXN0aWNrQmFsbEVsPWksJG8oKSxpLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIiwkYyksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixmdW5jdGlvbihhKXtyLmpveXN0aWNrUGlubmVkT3BlbiYmci5qb3lzdGlja0dlc3R1cmU9PW51bGwmJihhLnByZXZlbnREZWZhdWx0KCksRXIoKSl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX0pLHIuam95c3RpY2tSZXNpemVIYW5kbGVyPWZ1bmN0aW9uKCl7JG8oKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLG5zKCl9fWZ1bmN0aW9uIFhvKCl7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1uYXRpdmUtaW5wdXQiKSl7dmFyIGU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihlJiZ0eXBlb2YgZS5ibHVyPT0iZnVuY3Rpb24iKXRyeXtlLmJsdXIoKX1jYXRjaHt9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYodCYmdHlwZW9mIHQuYmx1cj09ImZ1bmN0aW9uIil0cnl7dC5ibHVyKCl9Y2F0Y2h7fX0sMCl9fWZ1bmN0aW9uICRjKGUpe2lmKFFvKCkmJiEoKGUucG9pbnRlclR5cGU9PT0ibW91c2UifHxlLnBvaW50ZXJUeXBlPT09InBlbiIpJiZlLmJ1dHRvbiE9PTApJiZyLmpveXN0aWNrUG9pbnRlcklkPT09bnVsbCl7WG8oKSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgdD1lLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8ZS5wb2ludGVyVHlwZT09PSJwZW4iO3Iuam95c3RpY2tQb2ludGVySWQ9ZS5wb2ludGVySWQsci5qb3lzdGlja1ByZXNzU3RhcnQ9e3g6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLHQ6RGF0ZS5ub3coKX0sci5qb3lzdGlja0dlc3R1cmU9InBlbmRpbmciO3RyeXtyLmpveXN0aWNrQmFsbEVsLnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKX1jYXRjaHt9dHx8KHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5qb3lzdGlja0dlc3R1cmU9PT0icGVuZGluZyImJlpvKCl9LFVwKSksci5qb3lzdGlja01vdmVIYW5kbGVyPVhjLHIuam95c3RpY2tVcEhhbmRsZXI9WmMsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHIuam95c3RpY2tNb3ZlSGFuZGxlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixyLmpveXN0aWNrVXBIYW5kbGVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLmpveXN0aWNrVXBIYW5kbGVyKX19ZnVuY3Rpb24gWm8oKXtyLmpveXN0aWNrR2VzdHVyZT0ibW92ZSIsci5qb3lzdGlja1Bpbm5lZE9wZW4mJkVyKCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKX1mdW5jdGlvbiBlcyhlLHQpe2lmKHIuam95c3RpY2tCYWxsRWwpe3ZhciBuPUJhKHtyaWdodDp3aW5kb3cuaW5uZXJXaWR0aC1lLUJpLzIsYm90dG9tOndpbmRvdy5pbm5lckhlaWdodC10LUJpLzJ9KTtyLmpveXN0aWNrQmFsbEVsLnN0eWxlLnJpZ2h0PW4ucmlnaHQrInB4IixyLmpveXN0aWNrQmFsbEVsLnN0eWxlLmJvdHRvbT1uLmJvdHRvbSsicHgifX1mdW5jdGlvbiBYYyhlKXtpZighKGUucG9pbnRlcklkIT09ci5qb3lzdGlja1BvaW50ZXJJZHx8IXIuam95c3RpY2tCYWxsRWwpKXtpZihlLnByZXZlbnREZWZhdWx0KCksci5qb3lzdGlja0dlc3R1cmU9PT0ibW92ZSIpe2VzKGUuY2xpZW50WCxlLmNsaWVudFkpO3JldHVybn1pZihyLmpveXN0aWNrR2VzdHVyZT09PSJwZW5kaW5nIil7dmFyIHQ9ZS5jbGllbnRYLXIuam95c3RpY2tQcmVzc1N0YXJ0Lngsbj1lLmNsaWVudFktci5qb3lzdGlja1ByZXNzU3RhcnQueTtNYXRoLnNxcnQodCp0K24qbik8PUtwfHwoZS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGUucG9pbnRlclR5cGU9PT0icGVuIj8oWm8oKSxlcyhlLmNsaWVudFgsZS5jbGllbnRZKSk6KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKSxyLmpveXN0aWNrR2VzdHVyZT0iY2FuY2VsbGVkIikpfX19ZnVuY3Rpb24gWmMoZSl7aWYoZS5wb2ludGVySWQ9PT1yLmpveXN0aWNrUG9pbnRlcklkKXtyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCk7dmFyIHQ9ci5qb3lzdGlja0dlc3R1cmU7aWYodD09PSJwZW5kaW5nIil7dmFyIG49ZS5jbGllbnRYLXIuam95c3RpY2tQcmVzc1N0YXJ0LngsaT1lLmNsaWVudFktci5qb3lzdGlja1ByZXNzU3RhcnQueTtNYXRoLnNxcnQobipuK2kqaSk8PUpwJiZuZigpfWVsc2UgaWYodD09PSJtb3ZlIil7dmFyIGE9ci5qb3lzdGlja0JhbGxFbD9yLmpveXN0aWNrQmFsbEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOm51bGw7YSYmWWMod2luZG93LmlubmVyV2lkdGgtYS5yaWdodCx3aW5kb3cuaW5uZXJIZWlnaHQtYS5ib3R0b20pfXRzKCl9fWZ1bmN0aW9uIHRzKCl7aWYoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tCYWxsRWwmJnIuam95c3RpY2tQb2ludGVySWQhPT1udWxsKXRyeXtyLmpveXN0aWNrQmFsbEVsLnJlbGVhc2VQb2ludGVyQ2FwdHVyZShyLmpveXN0aWNrUG9pbnRlcklkKX1jYXRjaHt9ci5qb3lzdGlja01vdmVIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHIuam95c3RpY2tNb3ZlSGFuZGxlciksci5qb3lzdGlja01vdmVIYW5kbGVyPW51bGwpLHIuam95c3RpY2tVcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIuam95c3RpY2tVcEhhbmRsZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIuam95c3RpY2tVcEhhbmRsZXIpLHIuam95c3RpY2tVcEhhbmRsZXI9bnVsbCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiYhci5qb3lzdGlja1Bpbm5lZE9wZW4mJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLHIuam95c3RpY2tQb2ludGVySWQ9bnVsbCxyLmpveXN0aWNrR2VzdHVyZT1udWxsLHIuam95c3RpY2tQcmVzc1N0YXJ0PW51bGx9ZnVuY3Rpb24gZWYoZSl7aWYoZT09PSJjdHJsInx8ZT09PSJhbHQifHxlPT09InNoaWZ0Iil7ci5tb2RpZmllcnNbZV09IXIubW9kaWZpZXJzW2VdLEZyKCk7cmV0dXJufXZhciB0PUR0KCk7aWYodCYmdWUodCkpeyhlPT09ImN0cmxfYyJ8fGU9PT0iZXNjYXBlIikmJnRmKHQsZSksa2koKSxGcigpO3JldHVybn12YXIgbj16cyhlLHtjdHJsOnIubW9kaWZpZXJzLmN0cmwsYWx0OnIubW9kaWZpZXJzLmFsdCxzaGlmdDpyLm1vZGlmaWVycy5zaGlmdH0pO24mJlJzKG4sZSksa2koKSxGcigpLHJ2KCl9ZnVuY3Rpb24gdGYoZSx0KXshZXx8IWUuaWR8fGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitlLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDoiIixpbnRlcnJ1cHQ6ITAscHJlc2VydmVRdWV1ZTohMH0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihpKXt0aHJvdyBuZXcgRXJyb3IoaSYmaS5lcnJvcnx8Ilx1NEUyRFx1NjVBRFx1NTkzMVx1OEQyNSAoa2V5PSIrdCsiKSIpfSl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uaWQmJihYKG4pLG4uaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgaT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1uLmlkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9emUoaSxYZShpLG4ub3V0cHV0LCExKSkseXIoITApLHR5cGVvZiBudD09ImZ1bmN0aW9uIiYmbnQoKX19KS5jYXRjaChmdW5jdGlvbihuKXtuJiZuLm1lc3NhZ2UmJmNvbnNvbGUuZGVidWcoIlt3YW5kXSBqb3lzdGljayBpbnRlcnJ1cHQgbm8tb3A6IixuLm1lc3NhZ2UpfSl9ZnVuY3Rpb24gbmYoKXtyLmpveXN0aWNrUGlubmVkT3Blbj9FcigpOnJmKCl9ZnVuY3Rpb24gcmYoKXtpZighKCFyLmpveXN0aWNrUGFuZWxFbHx8IXIuam95c3RpY2tCYWxsRWwpKXtyLmpveXN0aWNrUGlubmVkT3Blbj0hMDt2YXIgZT1yLmpveXN0aWNrQmFsbEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Iuam95c3RpY2tQYW5lbEVsLnN0eWxlLnJpZ2h0PU1hdGgubWF4KGNuLHdpbmRvdy5pbm5lcldpZHRoLWUucmlnaHQpKyJweCIsci5qb3lzdGlja1BhbmVsRWwuc3R5bGUuYm90dG9tPU1hdGgubWF4KGNuLHdpbmRvdy5pbm5lckhlaWdodC1lLnRvcCsxMCkrInB4IixyLmpveXN0aWNrUGFuZWxFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5hZGQoInBhbmVsLW9wZW4iKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksRnIoKX19ZnVuY3Rpb24gRXIoKXtyLmpveXN0aWNrUGlubmVkT3Blbj0hMSxyLmpveXN0aWNrUGFuZWxFbCYmci5qb3lzdGlja1BhbmVsRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QucmVtb3ZlKCJwYW5lbC1vcGVuIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tHZXN0dXJlPT1udWxsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1mdW5jdGlvbiBGcigpe3Iuam95c3RpY2tQYW5lbEVsJiZbImN0cmwiLCJhbHQiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXIuam95c3RpY2tQYW5lbEVsLnF1ZXJ5U2VsZWN0b3IoJy53anAtbW9kW2RhdGEta2V5PSInK2UrJyJdJyk7dCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhci5tb2RpZmllcnNbZV0pfSl9ZnVuY3Rpb24gYWYoZSl7dmFyIHQ9ZS50YXJnZXQmJmUudGFyZ2V0LmNsb3Nlc3Q/ZS50YXJnZXQuY2xvc2VzdCgiLndqcC1jbG9zZSIpOm51bGw7aWYodCl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksRXIoKTtyZXR1cm59dmFyIG49ZS50YXJnZXQmJmUudGFyZ2V0LmNsb3Nlc3Q/ZS50YXJnZXQuY2xvc2VzdCgiLndqcC1rZXkiKTpudWxsO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLWtleSIpO2kmJmVmKGkpfX1mdW5jdGlvbiBucygpe3ZhciBlPXIuam95c3RpY2tSb290RWw7aWYoZSl7dmFyIHQ9UW8oKTtlLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHQpLHR8fCgoci5qb3lzdGlja1BvaW50ZXJJZCE9PW51bGx8fHIuam95c3RpY2tHZXN0dXJlKSYmdHMoKSxyLmpveXN0aWNrUGlubmVkT3BlbiYmRXIoKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIikpfX1mdW5jdGlvbiB1Zigpe3Iuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKSxyLmpveXN0aWNrTW92ZUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9bnVsbCksci5qb3lzdGlja1VwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsci5qb3lzdGlja1VwSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsci5qb3lzdGlja1VwSGFuZGxlciksci5qb3lzdGlja1VwSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrUmVzaXplSGFuZGxlciYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHIuam95c3RpY2tSZXNpemVIYW5kbGVyKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLHIuam95c3RpY2tSZXNpemVIYW5kbGVyKSxyLmpveXN0aWNrUmVzaXplSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrUm9vdEVsJiZyLmpveXN0aWNrUm9vdEVsLnBhcmVudE5vZGUmJnIuam95c3RpY2tSb290RWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyLmpveXN0aWNrUm9vdEVsKSxyLmpveXN0aWNrUm9vdEVsPW51bGwsci5qb3lzdGlja1BhbmVsRWw9bnVsbCxyLmpveXN0aWNrQmFja2Ryb3BFbD1udWxsLHIuam95c3RpY2tCYWxsRWw9bnVsbCxyLmpveXN0aWNrUG9pbnRlcklkPW51bGwsci5qb3lzdGlja0dlc3R1cmU9bnVsbCxyLmpveXN0aWNrUHJlc3NTdGFydD1udWxsLHIuam95c3RpY2tQaW5uZWRPcGVuPSExfWZ1bmN0aW9uIG9mKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKGUpe3ZhciB0PSFSZSgpO3IucmVzaXplSGFuZGxlcj1mdW5jdGlvbigpe3F0KCEwKTt2YXIgbj0hUmUoKTt0IT09biYmKHQ9biwhbiYmci5zaWRlYmFyUGlubmVkJiZyLnNlc3Npb25zRHJhd2VyT3Blbj8oci5zZXNzaW9uc0RyYXdlck9wZW49ITEsU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksUnIoKSk6biYmci5zaWRlYmFyUGlubmVkJiYhci5zZXNzaW9uc0RyYXdlck9wZW4mJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSxScigpKSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHIucmVzaXplSGFuZGxlciksd2luZG93LnZpc3VhbFZpZXdwb3J0JiYoci52aXN1YWxWaWV3cG9ydEhhbmRsZXI9ZnVuY3Rpb24oKXtxdCghMCl9LHdpbmRvdy52aXN1YWxWaWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyKSksci52aXNpYmlsaXR5SGFuZGxlcj1mdW5jdGlvbigpe2RvY3VtZW50LmhpZGRlbnx8UWUoInZpc2liaWxpdHkiLHtmb3JjZVJlcGxheTohMH0pfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixyLnZpc2liaWxpdHlIYW5kbGVyKSxyLm9yaWVudGF0aW9uSGFuZGxlcj1mdW5jdGlvbigpe1FlKCJvcmllbnRhdGlvbiIse2ZvcmNlUmVwbGF5OiEwfSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5vcmllbnRhdGlvbkhhbmRsZXIpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3F0KCEwKX0pfX1mdW5jdGlvbiBzZigpe3IudGVybWluYWxIZWFsdGhUaW1lcnx8KHIudGVybWluYWxIZWFsdGhUaW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKCEoIXIudGVybWluYWx8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwifHxkb2N1bWVudC5oaWRkZW4pKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odSl7cmV0dXJuIHUuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZighKCFlfHxlLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiKSl7UWUoImhlYWx0aCIpO3ZhciB0PURhdGUubm93KCksbj1yLmxhc3RDaHVua0F0PjAmJnQtci5sYXN0Q2h1bmtBdD4zMDAsaT10LXIubGFzdFRlcm1pbmFsUmVzeW5jQXQ+M2U0LGE9ci5sYXN0Q2h1bmtBdD5yLmxhc3RUZXJtaW5hbFJlc3luY0F0O2kmJmEmJihufHxlLnN0YXR1cyE9PSJydW5uaW5nIikmJnIudGVybWluYWxPdXRwdXQmJnhuKCl9fX0sNWUzKSl9ZnVuY3Rpb24gbGYoKXtyLnRlcm1pbmFsSGVhbHRoVGltZXImJihjbGVhckludGVydmFsKHIudGVybWluYWxIZWFsdGhUaW1lciksci50ZXJtaW5hbEhlYWx0aFRpbWVyPW51bGwpfWZ1bmN0aW9uIHdyKCl7bGYoKSxyLnJlc2l6ZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIucmVzaXplVGltZXIpLHIucmVzaXplVGltZXI9bnVsbCksci5yZXNpemVPYnNlcnZlciYmKHIucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHIucmVzaXplT2JzZXJ2ZXI9bnVsbCksci5yZXNpemVIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5yZXNpemVIYW5kbGVyKSxyLnJlc2l6ZUhhbmRsZXI9bnVsbCksci52aXN1YWxWaWV3cG9ydEhhbmRsZXImJndpbmRvdy52aXN1YWxWaWV3cG9ydCYmKHdpbmRvdy52aXN1YWxWaWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyKSxyLnZpc3VhbFZpZXdwb3J0SGFuZGxlcj1udWxsKSxyLnZpc2liaWxpdHlIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsci52aXNpYmlsaXR5SGFuZGxlciksci52aXNpYmlsaXR5SGFuZGxlcj1udWxsKSxyLm9yaWVudGF0aW9uSGFuZGxlciYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5vcmllbnRhdGlvbkhhbmRsZXIpLHIub3JpZW50YXRpb25IYW5kbGVyPW51bGwpLFtbIm1vdXNlbW92ZSIsInJlc2l6ZU1vdXNlTW92ZSJdLFsibW91c2V1cCIsInJlc2l6ZU1vdXNlVXAiXSxbInRvdWNobW92ZSIsInJlc2l6ZVRvdWNoTW92ZSJdLFsidG91Y2hlbmQiLCJyZXNpemVUb3VjaEVuZCJdXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JbYVsxXV0mJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGFbMF0sclthWzFdXSksclthWzFdXT1udWxsKX0pLEtuKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKHIudGVybWluYWxWaWV3cG9ydEVsJiYoci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyKSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXImJnIudGVybWluYWxWaWV3cG9ydEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyKSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXIpKSxlJiYoci50ZXJtaW5hbFdoZWVsSGFuZGxlciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsci50ZXJtaW5hbFdoZWVsSGFuZGxlciksci50ZXJtaW5hbENsaWNrSGFuZGxlciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsci50ZXJtaW5hbENsaWNrSGFuZGxlcikpLHIudGVybWluYWxWaWV3cG9ydEVsPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcj1udWxsLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlcj1udWxsLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyPW51bGwsci50ZXJtaW5hbFdoZWVsSGFuZGxlcj1udWxsLHIudGVybWluYWxDbGlja0hhbmRsZXI9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXIpLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCksci50ZXJtaW5hbFNjcm9sbGJhckVsJiZyLnRlcm1pbmFsU2Nyb2xsYmFyRWwucGFyZW50Tm9kZSYmci50ZXJtaW5hbFNjcm9sbGJhckVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoci50ZXJtaW5hbFNjcm9sbGJhckVsKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWw9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFyVGh1bWJFbD1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMSxyLnRlcm1pbmFsJiYoci50ZXJtaW5hbC5kZXN0cm95KCksci50ZXJtaW5hbD1udWxsKSxlKWZvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXJtaW5hbC1zY3JvbGwtd3JhcCIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLnBhcmVudE5vZGU9PT1lJiZlLnJlbW92ZUNoaWxkKGkpfVRhKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MCxyLnN5bmNGcmFtaW5nUmVzaWR1ZT0hMSxyLnRlcm1pbmFsU2Vzc2lvbklkPW51bGwsci50ZXJtaW5hbE91dHB1dD0iIixyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAsci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsci5zaG93VGVybWluYWxKdW1wVG9Cb3R0b209ITEsb3QoKSxyLnNvZnRSZXN5bmNUaW1lciYmKGNsZWFyVGltZW91dChyLnNvZnRSZXN5bmNUaW1lciksci5zb2Z0UmVzeW5jVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXImJihjbGVhclRpbWVvdXQoci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwpLHIuX3Jlc3luY0NodW5rTGFzdEF0PTAsci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD0wLHIuX3Jlc3luY1N0YXRzQ291bnQ9MCxyLl9yZXN5bmNMYXN0V2FybkF0PTAsci5fcmVzeW5jSW5Qcm9ncmVzcz0hMSxyLmxhc3RSZXNpemU9e2NvbHM6MCxyb3dzOjB9LHVmKCl9ZnVuY3Rpb24gcGkoZSx0KXtpZihyLnNlbGVjdGVkSWQpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCEoIW58fG4uc3RhdHVzIT09InJ1bm5pbmciKSYmIXVlKG4pKXtlPjI1NiYmKGU9MjU2KSx0PjE2MCYmKHQ9MTYwKTt2YXIgaT17Y29sczplLHJvd3M6dH07KHIubGFzdFJlc2l6ZS5jb2xzIT09aS5jb2xzfHxyLmxhc3RSZXNpemUucm93cyE9PWkucm93cykmJihyLmxhc3RSZXNpemU9aSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3Iuc2VsZWN0ZWRJZCsiL3Jlc2l6ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaSl9KS5jYXRjaChmdW5jdGlvbigpe30pKX19fWZ1bmN0aW9uIFFlKGUsdCl7aWYoIXIudGVybWluYWwpcmV0dXJuITE7dmFyIG49dHx8e30saT1uLmZvcmNlUmVwbGF5PT09ITAsYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoIWF8fGEub2Zmc2V0V2lkdGg9PT0wfHxhLm9mZnNldEhlaWdodD09PTApcmV0dXJuIENyKGV8fCJmaXQtcmV0cnkiLHtmb3JjZVJlcGxheTppfSksITE7dmFyIHU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fHhhKCksbz1yLnRlcm1pbmFsLmNvbHMscz1yLnRlcm1pbmFsLnJvd3M7cmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2lmKHIudGVybWluYWwpe3R5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKSxwaShyLnRlcm1pbmFsLmNvbHMsci50ZXJtaW5hbC5yb3dzKTt2YXIgbD1yLnRlcm1pbmFsLmNvbHMhPT1vfHxyLnRlcm1pbmFsLnJvd3MhPT1zOyFsJiZpJiZyLnRlcm1pbmFsT3V0cHV0JiZ4bih7c2tpcEZpdDohMH0pLHUmJnB0KCJmb3JjZSIpfX0pfSksITB9ZnVuY3Rpb24gQ3IoZSx0KXtpZighci50ZXJtaW5hbClyZXR1cm47dmFyIG49dHx8e30saT1uLmZvcmNlUmVwbGF5IT09ITEsYT0wLHU9ODtmdW5jdGlvbiBvKCl7aWYoci50ZXJtaW5hbCl7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKHMmJnMub2Zmc2V0SGVpZ2h0LHMmJnMub2Zmc2V0V2lkdGg+MCYmcy5vZmZzZXRIZWlnaHQ+MCl7UWUoZSx7Zm9yY2VSZXBsYXk6aX0pO3JldHVybn0rK2E+PXV8fChhPD00P3JlcXVlc3RBbmltYXRpb25GcmFtZShvKTpzZXRUaW1lb3V0KG8sMzIpKX19bygpfWZ1bmN0aW9uIHF0KGUpe3IucmVzaXplVGltZXImJihjbGVhclRpbWVvdXQoci5yZXNpemVUaW1lciksci5yZXNpemVUaW1lcj1udWxsKTt2YXIgdD1lPzA6MTAwO3IucmVzaXplVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IucmVzaXplVGltZXI9bnVsbCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZGYpfSx0KX1mdW5jdGlvbiBkZigpe2lmKHIudGVybWluYWwpe3ZhciBlPXIudGVybWluYWxBdXRvRm9sbG93fHx4YSgpO2UmJnB0KCJmb3JjZSIpLHBpKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpfX1mdW5jdGlvbiBHdChlKXtyLndvcmtpbmdEaXI9ZTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtd29ya2luZy1kaXIiLGUpfWNhdGNoe31jZihlKX1mdW5jdGlvbiBEYShlKXtmZXRjaCgiL2FwaS9yZWNlbnQtcGF0aHMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2UodHx8W10pfSkuY2F0Y2goZnVuY3Rpb24oKXtlKFtdKX0pfWZ1bmN0aW9uIGNmKGUpe3JldHVybiBmZXRjaCgiL2FwaS9yZWNlbnQtcGF0aHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtwYXRoOmV9KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24ga2EoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ZX0pO3QmJnQuc3RhdHVzIT09InJ1bm5pbmciJiYhdWUodCk/WXMoZSk6SHQoZSksX3QoKX1mdW5jdGlvbiBmZihlKXt2YXIgdD1lLnRhcmdldDtpZighKCF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSkpe3ZhciBuPXQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKTtpZihuJiZuIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2lmKG4uZGF0YXNldC5jb2xsYXBzZWROZXdTZXNzaW9uKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxrdSgpO3JldHVybn1pZihuLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxrYShuLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKTtyZXR1cm59aWYobi5kYXRhc2V0LmNvbGxhcHNlZEhpc3RvcnlJZCl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGk9bi5kYXRhc2V0LmNvbGxhcHNlZEhpc3RvcnlJZCxhPW4uZGF0YXNldC5jd2R8fCIiLHU9bi5kYXRhc2V0LnByb3ZpZGVyPT09ImNvZGV4Ij9BaTp4aTt1KGksYSkudGhlbihmdW5jdGlvbihnKXtnJiZnLmlkJiYoci5zZWxlY3RlZElkPWcuaWQsaGUoKSxyLmRyYWZ0c1tnLmlkXT0iIixtbigpLnRoZW4oZnVuY3Rpb24oKXtIdChnLmlkKX0pKX0pO3JldHVybn19dmFyIG89dC5jbG9zZXN0KCIjY2xhdWRlLWhpc3RvcnktdG9nZ2xlIik7aWYobyl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9IXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkLHIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkJiYhci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiZsaSgpLHBlKCk7cmV0dXJufXZhciBzPXQuY2xvc2VzdCgiW2RhdGEtYWN0aW9uXSIpO2lmKHMmJnMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkscy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtbWFuYWdlLW1vZGUiKXhjKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InNlbGVjdC1hbGwtdmlzaWJsZSIpUG8oKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iY2xlYXItc2VsZWN0aW9uIilJYygpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtc2VsZWN0ZWQiKVRjKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1zZWxlY3Rpb24iKWdyKHMuZGF0YXNldC5raW5kLHMuZGF0YXNldC5pZCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InN3aXBlLWRlbGV0ZS1zZXNzaW9uIiYmcy5kYXRhc2V0LnNlc3Npb25JZClRYShzLmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLXNlc3Npb24iJiZzLmRhdGFzZXQuc2Vzc2lvbklkKShmdW5jdGlvbihnKXtBbigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU4RkQ5XHU0RTJBXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGXHU2QjY0XHU2NENEXHU0RjVDXHU2NUUwXHU2Q0Q1XHU2NEE0XHU5NTAwXHUzMDAyIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKG0pe20mJlFhKGcpfSl9KShzLmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKShmdW5jdGlvbihnLG0pe0FuKCJcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdThGRDlcdTY3NjEgQ2xhdWRlIFx1NEYxQVx1OEJERFx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQifSkudGhlbihmdW5jdGlvbih5KXt5JiZWcyhnLG0pfSl9KShzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLHMuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLWhpc3RvcnktZGlyZWN0b3J5IiYmcy5kYXRhc2V0LmN3ZCl7dmFyIGw9cy5kYXRhc2V0LmN3ZDtyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnNbbF09IXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1tsXSxwZSgpfWVsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtaGlzdG9yeS1kaXJlY3RvcnkiJiZzLmRhdGFzZXQuY3dkKShmdW5jdGlvbihnLG0pe3ZhciB5PWN2KGcpLEM9bXIoKS5maWx0ZXIoZnVuY3Rpb24oRSl7cmV0dXJuIEUuY3dkPT09Z30pLmxlbmd0aDtBbigiXHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU2QjY0XHU3NkVFXHU1RjU1XHU0RTBCXHU3Njg0ICIrQysiIFx1Njc2MSBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NkUwNVx1N0E3QVx1NzZFRVx1NUY1NVx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU2RTA1XHU3QTdBIn0pLnRoZW4oZnVuY3Rpb24oRSl7RSYmKFVzKHksITApLGR2KGcsbSx5KSl9KX0pKHMuZGF0YXNldC5jd2Qscyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImNsZWFyLWFsbC1oaXN0b3J5IilMYygpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtYXJjaGl2ZWQtZ3JvdXAiKXIuYXJjaGl2ZWRFeHBhbmRlZD0hci5hcmNoaXZlZEV4cGFuZGVkLHBlKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InJlc3VtZSImJnMuZGF0YXNldC5zZXNzaW9uSWQpdnYocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InJlc3VtZS1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZClodihzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lLWNvZGV4LWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKW12KHMpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtY29kZXgtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpZ3Yocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1jb2RleC1oaXN0b3J5LWRpcmVjdG9yeSImJnMuZGF0YXNldC5jd2Qpe3ZhciBkPXMuZGF0YXNldC5jd2Q7ci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbZF09IXIuY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzW2RdLHBlKCl9ZWxzZSBzLmRhdGFzZXQuYWN0aW9uPT09Indvcmt0cmVlLW1lcmdlIiYmcy5kYXRhc2V0LnNlc3Npb25JZD9HbChzLmRhdGFzZXQuc2Vzc2lvbklkKTpzLmRhdGFzZXQuYWN0aW9uPT09Indvcmt0cmVlLWNsZWFudXAiJiZzLmRhdGFzZXQuc2Vzc2lvbklkJiZRbChzLmRhdGFzZXQuc2Vzc2lvbklkKTtyZXR1cm59dmFyIGY9dC5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIik7aWYoZil7aWYoci5zZXNzaW9uc01hbmFnZU1vZGUpe2YuZGF0YXNldC5zZXNzaW9uSWQ/Z3IoInNlc3Npb25zIixmLmRhdGFzZXQuc2Vzc2lvbklkKTpmLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkJiZncihmLmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiPyJjb2RleCI6Imhpc3RvcnkiLGYuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpO3JldHVybn1pZihmLmNsYXNzTGlzdC5jb250YWlucygic3dpcGVkIikpe01yKCk7cmV0dXJufWlmKEtzKXJldHVybjtpZihmLmRhdGFzZXQuc2Vzc2lvbklkKWthKGYuZGF0YXNldC5zZXNzaW9uSWQpO2Vsc2UgaWYoZi5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCl7dmFyIGM9Zi5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCx2PWYuZGF0YXNldC5jd2QsaD1mLmRhdGFzZXQucHJvdmlkZXI9PT0iY29kZXgiP0FpOnhpO2goYyx2KS50aGVuKGZ1bmN0aW9uKGcpe2cmJmcuaWQmJihyLnNlbGVjdGVkSWQ9Zy5pZCxoZSgpLHIuZHJhZnRzW2cuaWRdPSIiLG1uKCkudGhlbihmdW5jdGlvbigpe0h0KGcuaWQpLF90KCl9KSl9KX19fX1mdW5jdGlvbiBwZihlKXtpZighKGUua2V5IT09IkVudGVyIiYmZS5rZXkhPT0iICIpKXt2YXIgdD1lLnRhcmdldC5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIik7aWYodCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHIuc2Vzc2lvbnNNYW5hZ2VNb2RlKXt0LmRhdGFzZXQuc2Vzc2lvbklkP2dyKCJzZXNzaW9ucyIsdC5kYXRhc2V0LnNlc3Npb25JZCk6dC5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCYmZ3IodC5kYXRhc2V0LnByb3ZpZGVyPT09ImNvZGV4Ij8iY29kZXgiOiJoaXN0b3J5Iix0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKTtyZXR1cm59aWYodC5kYXRhc2V0LnNlc3Npb25JZClrYSh0LmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpe3ZhciBuPXQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQsaT10LmRhdGFzZXQuY3dkLGE9dC5kYXRhc2V0LnByb3ZpZGVyPT09ImNvZGV4Ij9BaTp4aTthKG4saSkudGhlbihmdW5jdGlvbih1KXt1JiZ1LmlkJiYoci5zZWxlY3RlZElkPXUuaWQsaGUoKSxyLmRyYWZ0c1t1LmlkXT0iIixtbigpLnRoZW4oZnVuY3Rpb24oKXtIdCh1LmlkKSxfdCgpfSkpfSl9fX19ZnVuY3Rpb24gQWEoZSx0KXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihuKXt2YXIgaT1uW2VdO2lmKCFpKXtBKCJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTZDQTFcdTY3MDlcdTUzRUZcdTU5MERcdTUyMzZcdTc2ODRcdTUxODVcdTVCQjlcdTMwMDIiLCJlcnJvciIpO3JldHVybn1VcihTdHJpbmcoaSksbnVsbCxmdW5jdGlvbigpe0EodHx8Ilx1NURGMlx1NTkwRFx1NTIzNiIsImluZm8iKX0pfX1mdW5jdGlvbiBGdCgpe3JldHVybiFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbC5lbGVtZW50P251bGw6KHIudGVybWluYWxWaWV3cG9ydEVsPXIudGVybWluYWwuZWxlbWVudCxyLnRlcm1pbmFsVmlld3BvcnRFbCl9ZnVuY3Rpb24gS24oKXtyLnRlcm1pbmFsU2Nyb2xsSWRsZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxJZGxlVGltZXIpLHIudGVybWluYWxTY3JvbGxJZGxlVGltZXI9bnVsbCl9ZnVuY3Rpb24gb3QoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtanVtcC1ib3R0b20iKSx0PSEhci5zZWxlY3RlZElkJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmIXIudGVybWluYWxBdXRvRm9sbG93JiYhcnMoKTtyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT10LGUmJmUuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsdCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLWp1bXAtYnRuIix0KX1mdW5jdGlvbiB4YSgpe3ZhciBlPUZ0KCk7aWYoIWUpcmV0dXJuITA7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtZS5zY3JvbGxUb3A7cmV0dXJuIHQ8PXIudGVybWluYWxTY3JvbGxUaHJlc2hvbGR9ZnVuY3Rpb24gcnMoKXt2YXIgZT1GdCgpO2lmKCFlKXJldHVybiEwO3ZhciB0PWUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LWUuc2Nyb2xsVG9wO3JldHVybiB0PD0yfWZ1bmN0aW9uIGlzKGUpe2lmKHIudGVybWluYWwpe3ZhciB0PUZ0KCk7aWYodCl7dmFyIG49ZT81MDA6MTIwO3IudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1NYXRoLm1heChyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwsRGF0ZS5ub3coKStuKSxlP3Quc2Nyb2xsVG8oe3RvcDp0LnNjcm9sbEhlaWdodCxiZWhhdmlvcjoic21vb3RoIn0pOnQuc2Nyb2xsVG9wPXQuc2Nyb2xsSGVpZ2h0fX19ZnVuY3Rpb24gU2EoKXtyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMSxLbigpLHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD0wLHIudGVybWluYWwmJiJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gci50ZXJtaW5hbCYmKHIudGVybWluYWwuX3Nob3VsZFNjcm9sbFRvQm90dG9tPSExKSxvdCgpfWZ1bmN0aW9uIHB0KGUpe2lmKHIudGVybWluYWwpe3ZhciB0PWU9PT0iZm9yY2UiO2lmKHQpe3IudGVybWluYWxBdXRvRm9sbG93PSEwLEtuKCksaXMoITEpLG90KCk7cmV0dXJufWlmKCFyLnRlcm1pbmFsQXV0b0ZvbGxvdyl7b3QoKTtyZXR1cm59aXMoITEpLG90KCl9fWZ1bmN0aW9uIHZmKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXIiO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXItdHJhY2siO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWIiLG4uYXBwZW5kQ2hpbGQoaSksdC5hcHBlbmRDaGlsZChuKSxlLmFwcGVuZENoaWxkKHQpLHIudGVybWluYWxTY3JvbGxiYXJFbD10LHIudGVybWluYWxTY3JvbGxiYXJUaHVtYkVsPWksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMTtmdW5jdGlvbiBhKCl7ci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciYmKGNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwpLHQuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfWZ1bmN0aW9uIHUoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmd8fChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiZjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8dC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9LDE1MDApKX1mdW5jdGlvbiBvKCl7ci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITE7dmFyIG09RnQoKTtpZihtKXt2YXIgeT1tLnNjcm9sbEhlaWdodCxDPW0uY2xpZW50SGVpZ2h0O2lmKHk8PUMpe3QuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpO3JldHVybn12YXIgRT1uLmNsaWVudEhlaWdodCxCPU1hdGgubWF4KDI4LEMveSpFKSxEPXktQyxGPW0uc2Nyb2xsVG9wL0QsST1GKihFLUIpO2kuc3R5bGUuaGVpZ2h0PUIrInB4IixpLnN0eWxlLnRvcD1JKyJweCJ9fWZ1bmN0aW9uIHMoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZ3x8KHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShvKSl9dmFyIGw9RnQoKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZnVuY3Rpb24oKXthKCkscygpLHUoKX0se3Bhc3NpdmU6ITB9KSxuLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24obSl7aWYobS50YXJnZXQhPT1pKXttLnByZXZlbnREZWZhdWx0KCk7dmFyIHk9RnQoKTtpZih5KXt2YXIgQz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEU9KG0uY2xpZW50WS1DLnRvcCkvQy5oZWlnaHQsQj15LnNjcm9sbEhlaWdodC15LmNsaWVudEhlaWdodDt5LnNjcm9sbFRvcD1FKkJ9fX0pO3ZhciBkPTAsZj0wO2kuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbihtKXttLnByZXZlbnREZWZhdWx0KCksbS5zdG9wUHJvcGFnYXRpb24oKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITAsaS5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLGQ9bS5jbGllbnRZO3ZhciB5PUZ0KCk7Zj15P3kuc2Nyb2xsVG9wOjAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixjKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix2KX0pO2Z1bmN0aW9uIGMobSl7bS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PUZ0KCk7aWYoeSl7dmFyIEM9bi5jbGllbnRIZWlnaHQsRT15LnNjcm9sbEhlaWdodCxCPXkuY2xpZW50SGVpZ2h0LEQ9RS1CO2lmKCEoRDw9MCkpe3ZhciBGPU1hdGgubWF4KDI4LEIvRSpDKSxJPUMtRjtpZighKEk8PTApKXt2YXIgTD1tLmNsaWVudFktZCxIPUwvSSpEO3kuc2Nyb2xsVG9wPWYrSH19fX1mdW5jdGlvbiB2KCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGMpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHYpLHUoKX1pLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKG0pe2lmKG0udG91Y2hlcy5sZW5ndGg9PT0xKXttLnN0b3BQcm9wYWdhdGlvbigpLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMCxpLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksZD1tLnRvdWNoZXNbMF0uY2xpZW50WTt2YXIgeT1GdCgpO2Y9eT95LnNjcm9sbFRvcDowLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsaCx7cGFzc2l2ZTohMX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixnKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsZyl9fSx7cGFzc2l2ZTohMX0pO2Z1bmN0aW9uIGgobSl7aWYobS50b3VjaGVzLmxlbmd0aD09PTEpe20ucHJldmVudERlZmF1bHQoKTt2YXIgeT1GdCgpO2lmKHkpe3ZhciBDPW4uY2xpZW50SGVpZ2h0LEU9eS5zY3JvbGxIZWlnaHQsQj15LmNsaWVudEhlaWdodCxEPUUtQjtpZighKEQ8PTApKXt2YXIgRj1NYXRoLm1heCgyOCxCL0UqQyksST1DLUY7aWYoIShJPD0wKSl7dmFyIEw9bS50b3VjaGVzWzBdLmNsaWVudFktZCxIPUwvSSpEO3kuc2Nyb2xsVG9wPWYrSH19fX19ZnVuY3Rpb24gZygpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGcpLHUoKX10LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7YSgpfSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8dSgpfSkscygpfWZ1bmN0aW9uIG1mKGUpe3JldHVybiBlPDQzNTI/ITE6ZT49NDM1MiYmZTw9NDQ0N3x8ZT49OTAwMSYmZTw9OTAwMnx8ZT49MTE5MDQmJmU8PTEyMzUwfHxlPj0xMjM1MyYmZTw9MTMzMTF8fGU+PTEzMzEyJiZlPD0xOTkwM3x8ZT49MTk5NjgmJmU8PTQwOTU5fHxlPj00MDk2MCYmZTw9NDIxOTF8fGU+PTQ0MDMyJiZlPD01NTIwM3x8ZT49NjM3NDQmJmU8PTY0MjU1fHxlPj02NTA3MiYmZTw9NjUxMDN8fGU+PTY1MjgwJiZlPD02NTM3Nnx8ZT49NjU1MDQmJmU8PTY1NTEwfHxlPj0xMjY5NzYmJmU8PTEyOTUzNXx8ZT49MTMxMDcyJiZlPD0xOTY2MDV8fGU+PTE5NjYwOCYmZTw9MjYyMTQxfXZhciBhcz0iXHUyMDYwIjtmdW5jdGlvbiB1cygpe3JldHVybnttb2RlOiJub3JtYWwifX1mdW5jdGlvbiBnZihlKXtyZXR1cm4hL1teXHgwMC1ceDdmXS8udGVzdChlKSYmZS5pbmRleE9mKCJceDFCIik9PT0tMX1mdW5jdGlvbiBoZihlLHQpe2lmKCFlKXJldHVybiIiO3ZhciBuPVN0cmluZyhlKTtpZih0Lm1vZGU9PT0ibm9ybWFsIiYmZ2YobikpcmV0dXJuIG47Zm9yKHZhciBpPSIiLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIHU9bi5jaGFyQ29kZUF0KGEpLG89dSxzPTE7aWYodT49NTUyOTYmJnU8PTU2MzE5JiZhKzE8bi5sZW5ndGgpe3ZhciBsPW4uY2hhckNvZGVBdChhKzEpO2w+PTU2MzIwJiZsPD01NzM0MyYmKG89KHUtNTUyOTYpKjEwMjQrKGwtNTYzMjApKzY1NTM2LHM9Mil9dmFyIGQ9cz09PTI/bi5zdWJzdHIoYSwyKTpuLmNoYXJBdChhKTtzd2l0Y2godC5tb2RlKXtjYXNlIm5vcm1hbCI6bz09PTI3Pyh0Lm1vZGU9ImVzYyIsaSs9ZCk6bz09PTE1NT8odC5tb2RlPSJjc2kiLGkrPWQpOm89PT0xNTd8fG89PT0xNDR8fG89PT0xNTh8fG89PT0xNTk/KHQubW9kZT0ic3RyaW5nIixpKz1kKTooaSs9ZCxtZihvKSYmKGkrPWFzKSk7YnJlYWs7Y2FzZSJlc2MiOmkrPWQsbz09PTkxP3QubW9kZT0iY3NpIjpvPT09OTN8fG89PT04MHx8bz09PTg4fHxvPT09OTR8fG89PT05NT90Lm1vZGU9InN0cmluZyI6dC5tb2RlPSJub3JtYWwiO2JyZWFrO2Nhc2UiY3NpIjppKz1kLG8+PTY0JiZvPD0xMjYmJih0Lm1vZGU9Im5vcm1hbCIpO2JyZWFrO2Nhc2Uic3RyaW5nIjppKz1kLG89PT03fHxvPT09MTU2P3QubW9kZT0ibm9ybWFsIjpvPT09MjcmJih0Lm1vZGU9InN0cmluZy1lc2MiKTticmVhaztjYXNlInN0cmluZy1lc2MiOmkrPWQsbz09PTkyP3QubW9kZT0ibm9ybWFsIjp0Lm1vZGU9InN0cmluZyI7YnJlYWt9YSs9cy0xfXJldHVybiBpfXZhciB2aT0iXHgxQls/MjAyNmgiLElhPSJceDFCWz8yMDI2bCIseWY9MjAwLGJmPTI1NioxMDI0O2Z1bmN0aW9uIEVmKGUpe2lmKCFlfHxyLnN5bmNPdXRwdXRCdWZmZXI9PT1udWxsJiZlLmluZGV4T2YodmkpPT09LTEpcmV0dXJuIGU7Zm9yKHZhciB0PSIiLG49MDtuPGUubGVuZ3RoOylpZihyLnN5bmNPdXRwdXRCdWZmZXIhPT1udWxsKXt2YXIgaT1lLmluZGV4T2YoSWEsbik7aWYoaT09PS0xKXJldHVybiByLnN5bmNPdXRwdXRCdWZmZXIrPWUuc2xpY2UobiksKHIuc3luY091dHB1dEJ1ZmZlci5sZW5ndGg+YmZ8fERhdGUubm93KCk+ci5zeW5jT3V0cHV0RGVhZGxpbmUpJiYodCs9ci5zeW5jT3V0cHV0QnVmZmVyLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY0ZyYW1pbmdSZXNpZHVlPSEwKSx0O3Iuc3luY091dHB1dEJ1ZmZlcis9ZS5zbGljZShuLGkrSWEubGVuZ3RoKSx0Kz1yLnN5bmNPdXRwdXRCdWZmZXIsci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsbj1pK0lhLmxlbmd0aH1lbHNle3ZhciBhPWUuaW5kZXhPZih2aSxuKTtpZihhPT09LTEpcmV0dXJuIHQrPWUuc2xpY2UobiksdDt0Kz1lLnNsaWNlKG4sYSksci5zeW5jT3V0cHV0QnVmZmVyPXZpLHIuc3luY091dHB1dERlYWRsaW5lPURhdGUubm93KCkreWYsbj1hK3ZpLmxlbmd0aH1yZXR1cm4gdH1mdW5jdGlvbiBlaCgpe2lmKHIuc3luY091dHB1dEJ1ZmZlciE9PW51bGwpe3ZhciBlPXIuc3luY091dHB1dEJ1ZmZlcjtyZXR1cm4gci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsZX1yZXR1cm4iIn1mdW5jdGlvbiBKbihlLHQpe2lmKCEoIWV8fHQ9PW51bGwpKXtyLndpZGVQYXJzZXJTdGF0ZXx8KHIud2lkZVBhcnNlclN0YXRlPXVzKCkpO3ZhciBuPWhmKHQsci53aWRlUGFyc2VyU3RhdGUpLGk9RWYobiksYT1yLnRlcm1pbmFsQXV0b0ZvbGxvdyE9PSExOyJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gZSYmKGUuX3Nob3VsZFNjcm9sbFRvQm90dG9tPWEpLGkmJmUud3JpdGUoaSksIl9zaG91bGRTY3JvbGxUb0JvdHRvbSJpbiBlJiYoZS5fc2hvdWxkU2Nyb2xsVG9Cb3R0b209YSksYSYmKHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1NYXRoLm1heChyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwsRGF0ZS5ub3coKSsxMjApKSxJZih0KX19ZnVuY3Rpb24gVGEoKXtyLndpZGVQYXJzZXJTdGF0ZT11cygpfWZ1bmN0aW9uIEZmKCl7dHlwZW9mIGRvY3VtZW50PiJ1Inx8ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsZnVuY3Rpb24oZSl7dmFyIHQ9d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpO2lmKCEoIXR8fHQuaXNDb2xsYXBzZWQpKXt2YXIgbj10LmFuY2hvck5vZGUsaT1uJiZuLm5vZGVUeXBlPT09Mz9uLnBhcmVudE5vZGU6bixhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighKCFhfHwhaXx8IWEuY29udGFpbnMoaSkpKXt2YXIgdT10LnRvU3RyaW5nKCksbz11LnNwbGl0KGAKYCkubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzLnNwbGl0KGFzKS5qb2luKCIiKS5yZXBsYWNlKC9bIFx0XSskLywiIil9KS5qb2luKGAKYCk7byE9PXUmJmUuY2xpcGJvYXJkRGF0YSYmKGUuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixvKSxlLnByZXZlbnREZWZhdWx0KCkpfX19KX1GZigpO3ZhciBvcz0xNTAsc3M9MzAsd2Y9MTYwKjEwMjQsQ2Y9MTkyKjEwMjQ7ZnVuY3Rpb24gbHMoZSl7aWYoIWV8fGUubGVuZ3RoPD1DZilyZXR1cm4gZTt2YXIgdD1lLmxlbmd0aCxuPWZ1bmN0aW9uKEYpe2lmKCEodHlwZW9mIHI+InUifHwhcikpe3ZhciBJPXIudGVybWluYWxPdXRwdXRNYXJrZXJ8MDtpZighKEk8PTApKXt2YXIgTD10LUY7ci50ZXJtaW5hbE91dHB1dE1hcmtlcj1JPkw/SS1MOjB9fX0saT1lLmxlbmd0aC13ZjtpZihpPjAmJmk8ZS5sZW5ndGgpe3ZhciBhPWUuY2hhckNvZGVBdChpKTthPj01NjMyMCYmYTw9NTczNDMmJmkrK31mb3IodmFyIHU9NDA5NixvPU1hdGgubWluKGkrdSxlLmxlbmd0aCkscz1pO3M8bztzKyspaWYoZS5jaGFyQ29kZUF0KHMpPT09MTApe3ZhciBsPWUuc2xpY2UocysxKTtyZXR1cm4gbihsLmxlbmd0aCksbH1mb3IodmFyIGQ9TWF0aC5tYXgoMCxpLTI1NiksZj0tMSxjPWktMTtjPj1kO2MtLSl7dmFyIHY9ZS5jaGFyQ29kZUF0KGMpO2lmKHY9PT0yNyl7Zj1jO2JyZWFrfWlmKHY9PT03fHx2Pj02NCYmdjw9MTI2KWJyZWFrfWlmKGYhPT0tMSl7Zm9yKHZhciBoPSExLGc9ZisxO2c8aTtnKyspe3ZhciBtPWUuY2hhckNvZGVBdChnKTtpZihtPT09Nyl7aD0hMDticmVha31pZihtPj02NCYmbTw9MTI2KXtoPSEwO2JyZWFrfX1pZighaClmb3IodmFyIHk9TWF0aC5taW4oaSsyNTYsZS5sZW5ndGgpLEM9aTtDPHk7QysrKXt2YXIgRT1lLmNoYXJDb2RlQXQoQyk7aWYoRT09PTd8fEU+PTY0JiZFPD0xMjYpe3ZhciBCPWUuc2xpY2UoQysxKTtyZXR1cm4gbihCLmxlbmd0aCksQn19fXZhciBEPWUuc2xpY2UoaSk7cmV0dXJuIG4oRC5sZW5ndGgpLER9ZnVuY3Rpb24gbWkoKXtpZihyLnRlcm1pbmFsKXtpZih0eXBlb2Ygci50ZXJtaW5hbC5yZXNldD09ImZ1bmN0aW9uIil7ci50ZXJtaW5hbC5yZXNldCgpLFRhKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MDtyZXR1cm59dHlwZW9mIHIudGVybWluYWwud3JpdGU9PSJmdW5jdGlvbiImJnIudGVybWluYWwud3JpdGUoIlx4MUJjIiksVGEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wfX1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PTAsci5fcmVzeW5jU3RhdHNDb3VudD0wLHIuX3Jlc3luY0xhc3RXYXJuQXQ9MDt2YXIgQmY9NWUzLERmPTEyLGtmPTNlNDtyLl9yZXN5bmNJblByb2dyZXNzPSExO2Z1bmN0aW9uIHhuKGUpe2lmKCFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbE91dHB1dClyZXR1cm4hMTt2YXIgdD1lfHx7fSxuPXIudGVybWluYWxPdXRwdXRNYXJrZXJ8MDtuPDAmJihuPTApLG4+ci50ZXJtaW5hbE91dHB1dC5sZW5ndGgmJihuPXIudGVybWluYWxPdXRwdXQubGVuZ3RoKTt2YXIgaT1uPjA/ci50ZXJtaW5hbE91dHB1dC5zbGljZShuKTpyLnRlcm1pbmFsT3V0cHV0LGE9aS5sZW5ndGgsdT10eXBlb2YgcGVyZm9ybWFuY2U8InUiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2Uubm93KCk6RGF0ZS5ub3coKTtyLl9yZXN5bmNJblByb2dyZXNzPSEwO3RyeXttaSgpLEpuKHIudGVybWluYWwsaSl9ZmluYWxseXtyLl9yZXN5bmNJblByb2dyZXNzPSExfXIubGFzdFRlcm1pbmFsUmVzeW5jQXQ9RGF0ZS5ub3coKSxwdCgib3V0cHV0IiksdC5za2lwRml0fHxRZSgicmVmcmVzaCIpO3ZhciBvPURhdGUubm93KCk7aWYoby1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PkJmKXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ9byxyLl9yZXN5bmNTdGF0c0NvdW50PTE7ZWxzZSBpZihyLl9yZXN5bmNTdGF0c0NvdW50Kyssci5fcmVzeW5jU3RhdHNDb3VudD5EZiYmby1yLl9yZXN5bmNMYXN0V2FybkF0PmtmKXtyLl9yZXN5bmNMYXN0V2FybkF0PW87dmFyIHM9dHlwZW9mIHBlcmZvcm1hbmNlPCJ1IiYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOkRhdGUubm93KCk7Y29uc29sZS53YXJuKCJbd2FuZF0gc29mdFJlc3luY1Rlcm1pbmFsIGhpZ2ggZnJlcXVlbmN5IiwiY291bnQ9IityLl9yZXN5bmNTdGF0c0NvdW50KyIvIitNYXRoLnJvdW5kKChvLXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQpLzEwMCkvMTArInMiLCJidWZMZW49IithLCJsYXN0UmVwbGF5TXM9IitNYXRoLnJvdW5kKHMtdSkpfXJldHVybiEwfWZ1bmN0aW9uIEFmKGUpe3Iuc29mdFJlc3luY1RpbWVyJiZjbGVhclRpbWVvdXQoci5zb2Z0UmVzeW5jVGltZXIpLHIuc29mdFJlc3luY1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnNvZnRSZXN5bmNUaW1lcj1udWxsLHhuKCl9LHR5cGVvZiBlPT0ibnVtYmVyIj9lOjE1MCl9dmFyIHhmPS9ceDFiXFtcZCooPzo7XGQqKT9bQUJDRGZISktdLyxkcz0xNTAwLFNmPTgwMDtyLl9yZXN5bmNDaHVua0xhc3RBdD0wLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGw7ZnVuY3Rpb24gSWYoZSl7aWYoIXIuX3Jlc3luY0luUHJvZ3Jlc3MmJnIuc3luY0ZyYW1pbmdSZXNpZHVlJiYoci5zeW5jRnJhbWluZ1Jlc2lkdWU9ITEsISghZXx8dHlwZW9mIGUhPSJzdHJpbmciKSYmZS5pbmRleE9mKCJceDFCWyIpIT09LTEmJnhmLnRlc3QoZSkpKXt2YXIgdD1EYXRlLm5vdygpLG49dC1yLl9yZXN5bmNDaHVua0xhc3RBdDtpZihuPj1kcyl7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXImJihjbGVhclRpbWVvdXQoci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwpLHIuX3Jlc3luY0NodW5rTGFzdEF0PXQseG4oKTtyZXR1cm59aWYoIXIuX3Jlc3luY0NodW5rVGFpbFRpbWVyKXt2YXIgaT1NYXRoLm1heChTZixkcy1uKTtyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCxyLl9yZXN5bmNDaHVua0xhc3RBdD1EYXRlLm5vdygpLHhuKCl9LGkpfX19ZnVuY3Rpb24gZ2koZSx0LG4pe2lmKCFyLnRlcm1pbmFsKXJldHVybiExO3ZhciBpPWZ1KHR8fCIiKSxhPWV8fG51bGwsdT1ufHx7fSxvPXUubW9kZXx8ImFwcGVuZCIscz11LnNjcm9sbCE9PSExLGw9ci50ZXJtaW5hbFNlc3Npb25JZCE9PWEsZD1yLnRlcm1pbmFsT3V0cHV0fHwiIixmPSEhKGEmJnIudGVybWluYWxMaXZlU3RyZWFtU2Vzc2lvbnNbYV0pLGM9ITE7aWYoaT09PWQmJiFsKXJldHVybiBzJiZwdCgib3V0cHV0Iiksb3QoKSwhMTtpZihsJiYobWkoKSxkPSIiLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wLHIudGVybWluYWxBdXRvRm9sbG93PSEwLEtuKCksb3QoKSksbz09PSJyZXBsYWNlIilpIT09ZCYmKG1pKCksaSYmSm4oci50ZXJtaW5hbCxpKSxjPSEwKTtlbHNle2lmKGkubGVuZ3RoPGQubGVuZ3RoJiYhbClyZXR1cm4hMTtpZihmJiYhbCYmbyE9PSJyZXBsYWNlIiYmZCYmIWkuc3RhcnRzV2l0aChkKSlyZXR1cm4hMTtpZihpLnN0YXJ0c1dpdGgoZCkpe3ZhciB2PWkuc2xpY2UoZC5sZW5ndGgpO3YmJihKbihyLnRlcm1pbmFsLHYpLGM9ITApfWVsc2V7aWYoZCYmZC5zdGFydHNXaXRoKGkpKXJldHVybiExO21pKCksaSYmSm4oci50ZXJtaW5hbCxpKSxjPSEwfX1yZXR1cm4gci50ZXJtaW5hbFNlc3Npb25JZD1hLHIudGVybWluYWxPdXRwdXQ9aSxyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAscyYmKGN8fGx8fG89PT0icmVwbGFjZSIpP3B0KGx8fG89PT0icmVwbGFjZSI/ImZvcmNlIjoib3V0cHV0Iik6b3QoKSxsJiZwaShyLnRlcm1pbmFsLmNvbHMsci50ZXJtaW5hbC5yb3dzKSxjfHxsfWZ1bmN0aW9uIFluKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCEoIWV8fHIudGVybWluYWx8fHIudGVybWluYWxJbml0aWFsaXppbmcpKXtpZih0eXBlb2YgV1Rlcm1MaWI+InUifHwhV1Rlcm1MaWIuV1Rlcm0pe3IudGVybWluYWxJbml0UmV0cmllc3x8KHIudGVybWluYWxJbml0UmV0cmllcz0wKSxyLnRlcm1pbmFsSW5pdFJldHJpZXM8MTAmJihyLnRlcm1pbmFsSW5pdFJldHJpZXMrKyxzZXRUaW1lb3V0KFluLDIwMCkpO3JldHVybn1yLnRlcm1pbmFsSW5pdFJldHJpZXM9MCxyLnRlcm1pbmFsSW5pdGlhbGl6aW5nPSEwLHIuc2VsZWN0ZWRJZCYmKGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSk7Zm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnRlcm1pbmFsLXNjcm9sbC13cmFwIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kucGFyZW50Tm9kZT09PWUmJmUucmVtb3ZlQ2hpbGQoaSl9dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbC13cmFwIixlLmFwcGVuZENoaWxkKGEpO3ZhciB1PW5ldyBXVGVybUxpYi5XVGVybShhLHtjb2xzOjEyMCxyb3dzOjM2LGF1dG9SZXNpemU6ITAsY3Vyc29yQmxpbms6ITEsb25EYXRhOmZ1bmN0aW9uKCl7fSxvblJlc2l6ZTpmdW5jdGlvbihzLGwpe3BpKHMsbCksci50ZXJtaW5hbCYmci50ZXJtaW5hbE91dHB1dCYmeG4oe3NraXBGaXQ6ITB9KX19KSxvPWRvY3VtZW50LmZvbnRzJiZ0eXBlb2YgZG9jdW1lbnQuZm9udHMucmVhZHk9PSJvYmplY3QiP1Byb21pc2UucmFjZShbZG9jdW1lbnQuZm9udHMucmVhZHksbmV3IFByb21pc2UoZnVuY3Rpb24ocyl7c2V0VGltZW91dChzLDgwMCl9KV0pOlByb21pc2UucmVzb2x2ZSgpO28udGhlbihmdW5jdGlvbigpe3JldHVybiB1LmluaXQoKX0pLnRoZW4oZnVuY3Rpb24oKXtpZihyLnRlcm1pbmFsPXUsci50ZXJtaW5hbEluaXRpYWxpemluZz0hMSxybygpLGEuaXNDb25uZWN0ZWQmJihhLm9mZnNldEhlaWdodCx0eXBlb2YgdS5yZW1lYXN1cmU9PSJmdW5jdGlvbiIpKXRyeXt1LnJlbWVhc3VyZSgpfWNhdGNoe31yLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxLbigpO3ZhciBzPUZ0KCk7aWYocyYmKHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihEYXRlLm5vdygpPHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7b3QoKTtyZXR1cm59aWYocnMoKSl7ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsS24oKSxvdCgpO3JldHVybn1TYSgpfSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcj1mdW5jdGlvbihkKXtkLnRvdWNoZXMmJmQudG91Y2hlcy5sZW5ndGg9PT0xJiYoci50ZXJtaW5hbFRvdWNoU3RhcnRZPWQudG91Y2hlc1swXS5jbGllbnRZKX0sci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyPWZ1bmN0aW9uKGQpeyFkLnRvdWNoZXN8fGQudG91Y2hlcy5sZW5ndGghPT0xfHx0eXBlb2Ygci50ZXJtaW5hbFRvdWNoU3RhcnRZPT0ibnVtYmVyIiYmZC50b3VjaGVzWzBdLmNsaWVudFktci50ZXJtaW5hbFRvdWNoU3RhcnRZPjQmJlNhKCl9LHMuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSkscy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcix7cGFzc2l2ZTohMH0pLHMuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXIse3Bhc3NpdmU6ITB9KSksci50ZXJtaW5hbFdoZWVsSGFuZGxlcj1mdW5jdGlvbihkKXtkLmRlbHRhWTwwJiZTYSgpLGQuc3RvcFByb3BhZ2F0aW9uKCl9LGUuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIudGVybWluYWxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSx2ZihlKSxyLnNlbGVjdGVkSWQpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09PXIuc2VsZWN0ZWRJZH0pO2wmJmdpKGwuaWQsbC5vdXRwdXR8fCIiLHttb2RlOiJhcHBlbmQiLHNjcm9sbDohMX0pfWVsc2UgSm4odSxgXHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyXHIKYCk7ci50ZXJtaW5hbENsaWNrSGFuZGxlcj1mdW5jdGlvbihkKXtEaSgpfHxQdChkKX0sZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsci50ZXJtaW5hbENsaWNrSGFuZGxlciksb3QoKSxKYygpLFFjKCksb2YoKSxzZigpLFFlKCJtb3VudCIse2ZvcmNlUmVwbGF5OiEwfSksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpJiZbMTIwLDM1MCw3MDBdLmZvckVhY2goZnVuY3Rpb24oZCl7c2V0VGltZW91dChmdW5jdGlvbigpe3IudGVybWluYWwmJlFlKCJlbWJlZC1zZXR0bGUiKX0sZCl9KX0pLmNhdGNoKGZ1bmN0aW9uKHMpe3IudGVybWluYWxJbml0aWFsaXppbmc9ITEsY29uc29sZS5lcnJvcigiW3dhbmRdIHd0ZXJtIGluaXQgZmFpbGVkOiIscyl9KX19ZnVuY3Rpb24gVGYoZSx0KXtpZighKCFyLnNlbGVjdGVkSWR8fCFlKSl7dmFyIG49ci5zZWxlY3RlZElkKyI6IitlO2lmKHIudG9vbENvbnRlbnRDYWNoZVtuXSl7dChudWxsLHIudG9vbENvbnRlbnRDYWNoZVtuXSk7cmV0dXJufWZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi90b29sLWNvbnRlbnQvIitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aS5lcnJvcj90KGkuZXJyb3IsbnVsbCk6KHIudG9vbENvbnRlbnRDYWNoZVtuXT1pLHQobnVsbCxpKSl9KS5jYXRjaChmdW5jdGlvbigpe3QoIlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSIsbnVsbCl9KX19ZnVuY3Rpb24gU24oZSl7cmV0dXJuISEoci5jb25maWcmJnIuY29uZmlnLmNhcmREZWZhdWx0cyYmci5jb25maWcuY2FyZERlZmF1bHRzW2VdKX1mdW5jdGlvbiBMYShlLHQsbixpKXtpZighKCFlfHxlLmRhdGFzZXQudHJ1bmNhdGVkIT09InRydWUifHxlLmRhdGFzZXQubG9hZGVkPT09InRydWUiKSl7dmFyIGE9ZS5kYXRhc2V0LnRvb2xVc2VJZDthJiYodCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0b29sLWNvbnRlbnQtbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+JyksZS5kYXRhc2V0LmxvYWRlZD0ibG9hZGluZyIsVGYoYSxmdW5jdGlvbih1LG8pe2lmKHUpe3QmJih0LmlubmVySFRNTD1pfHwnPGRpdiBjbGFzcz0idG9vbC1jb250ZW50LWVycm9yIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdTcwQjlcdTUxRkJcdTkxQ0RcdThCRDU8L2Rpdj4nKSxlLmRhdGFzZXQubG9hZGVkPSIiO3JldHVybn1lLmRhdGFzZXQudHJ1bmNhdGVkPSJmYWxzZSIsZS5kYXRhc2V0LmxvYWRlZD0idHJ1ZSI7dmFyIHM9dHlwZW9mIG8uY29udGVudD09InN0cmluZyI/by5jb250ZW50OkpTT04uc3RyaW5naWZ5KG8uY29udGVudCk7bihzLG8pfSkpfX13aW5kb3cuX190Y1RvZ2dsZT1mdW5jdGlvbihlLHQpe3ZhciBuPXQuY2xvc2VzdCgiLnRvb2wtdXNlLWNhcmQiKXx8dC5jbG9zZXN0KCIuaW5saW5lLWRpZmYiKTtpZihuKXt2YXIgaT1uLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7bi5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiKTt2YXIgYT1pO3Quc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixhPyJ0cnVlIjoiZmFsc2UiKTt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3IoIi50b29sLXVzZS1ib2R5LCAuZGlmZi1ib2R5Iik7dSYmdS5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIixhPyJmYWxzZSI6InRydWUiKTt2YXIgbz1uLmRhdGFzZXQuZXhwYW5kS2luZHx8InRvb2wtY2FyZCI7aWYoTm4obixvKSxpKXt2YXIgcz1uLnF1ZXJ5U2VsZWN0b3IoIi50b29sLXVzZS1yZXN1bHQiKTtMYShuLHMsZnVuY3Rpb24obCl7cyYmKHMuaW5uZXJIVE1MPSc8cHJlIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtY29udGVudCI+JytwKGwpKyI8L3ByZT4iKX0sYDxkaXYgY2xhc3M9InRvb2wtY29udGVudC1lcnJvciIgb25jbGljaz0iX190Y1RvZ2dsZShudWxsLCB0aGlzLmNsb3Nlc3QoJy50b29sLXVzZS1jYXJkLC5pbmxpbmUtZGlmZicpLnF1ZXJ5U2VsZWN0b3IoJy50b29sLXVzZS1oZWFkZXIsLmRpZmYtaGVhZGVyJykpIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdTcwQjlcdTUxRkJcdTkxQ0RcdThCRDU8L2Rpdj5gKX19ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKX0sd2luZG93Ll9fdGhpbmtpbmdUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO2lmKHQpe2UuY2xhc3NMaXN0LnJlbW92ZSgiY29sbGFwc2VkIiksZS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3IikudGV4dENvbnRlbnQ9ZS5kYXRhc2V0LnRoaW5raW5nfHwiIjt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7biYmKG4udGV4dENvbnRlbnQ9Ilx1NjUzNlx1OEQ3NyIpfWVsc2V7ZS5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmRlZCIpLGUuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik7dmFyIGk9KGUuZGF0YXNldC50aGlua2luZ3x8IiIpLnNsaWNlKDAsNTcpKygoZS5kYXRhc2V0LnRoaW5raW5nfHwiIikubGVuZ3RoPjYwPyJcdTIwMjYiOiIiKTtlLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpLnRleHRDb250ZW50PWk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLWFjdGlvbiIpO24mJihuLnRleHRDb250ZW50PSJcdTVDNTVcdTVGMDAiKX1ObihlLCJ0aGlua2luZyIpfSx3aW5kb3cuX19zdWJhZ2VudFJlcGx5VG9nZ2xlPWZ1bmN0aW9uKGUsdCl7ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKTt2YXIgbj10JiZ0LmNsb3Nlc3Q/dC5jbG9zZXN0KCIuc3ViYWdlbnQtcmVwbHkiKTpudWxsO2lmKG4pe3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIik9PT0idHJ1ZSI7WnUobiwic3ViYWdlbnQtcmVwbHkiLCFpKSxObihuLCJzdWJhZ2VudC1yZXBseSIpfX0sd2luZG93Ll9fc3ViYWdlbnRQYW5lbFRvZ2dsZT1mdW5jdGlvbihlLHQpe2UmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7dmFyIG49dCYmdC5jbG9zZXN0P3QuY2xvc2VzdCgiLnN1YmFnZW50LXBhbmVsIik6bnVsbDtuJiZuLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsInRydWUiKX07ZnVuY3Rpb24gTGYoZSl7aWYoZSlmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCcuc3ViYWdlbnQtcGFuZWxbZGF0YS1mb2xsb3ctdGFpbD0idHJ1ZSJdJyksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1wYW5lbC1ib2R5Iik7aSYmKGkuc2Nyb2xsVG9wPWkuc2Nyb2xsSGVpZ2h0KX19d2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3PWZ1bmN0aW9uKGUpe2UmJmlpKGUpfSx3aW5kb3cuX19pbmxpbmVUb29sVG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaW5saW5lLXRvb2wtZXhwYW5kZWQiKTtuJiYobi5zdHlsZS5kaXNwbGF5PXQ/ImJsb2NrIjoibm9uZSIpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmlubGluZS10b29sLXN0YXR1cyIpO2kmJihlLmRhdGFzZXQuc3RhdHVzPT09ImVycm9yIj9pLnRleHRDb250ZW50PSJcdTI3MTciOmUuZGF0YXNldC5zdGF0dXM9PT0iZG9uZSImJihpLnRleHRDb250ZW50PSJcdTI3MTMiKSksdCYmTGEoZSxuLGZ1bmN0aW9uKGEpe2UuZGF0YXNldC5yZXN1bHQ9YSxuJiYobi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCI+JytFbChhLCIiKSsiPC9kaXY+Iil9KSxObihlLCJpbmxpbmUtdG9vbCIpfSx3aW5kb3cuX190ZXJtaW5hbEV4cGFuZD1mdW5jdGlvbihlKXt2YXIgdD1lLmNsb3Nlc3QoIi5pbmxpbmUtdGVybWluYWwiKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLWJvZHkiKTtpZihuKXt2YXIgaT1uLnN0eWxlLmRpc3BsYXk9PT0ibm9uZSI7bi5zdHlsZS5kaXNwbGF5PWk/ImJsb2NrIjoibm9uZSIsdC5kYXRhc2V0LmV4cGFuZGVkPWk/InRydWUiOiJmYWxzZSIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGk/InRydWUiOiJmYWxzZSIpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsaT8iZmFsc2UiOiJ0cnVlIik7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2lmKGEmJihhLnRleHRDb250ZW50PWk/Ilx1MjVCQyI6Ilx1MjVCNiIpLE5uKHQsInRlcm1pbmFsIiksaSl7dmFyIHU9bi5xdWVyeVNlbGVjdG9yKCIudGVybS1vdXRwdXQiKTtMYSh0LHUsZnVuY3Rpb24obyl7aWYodSl7Zm9yKHZhciBzPW8uc3BsaXQoYApgKSxsPSIiLGQ9MDtkPHMubGVuZ3RoO2QrKykhc1tkXSYmZD09PXMubGVuZ3RoLTF8fChsKz0nPGRpdiBjbGFzcz0idGVybS1saW5lIj4nK3Aoc1tkXSkrIjwvZGl2PiIpO3UuaW5uZXJIVE1MPWx9fSl9fX19O2Z1bmN0aW9uIHRoKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zdHJlYW1pbmciKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zdHJlYW1pbmctdGV4dCIpO2lmKG4pe3ZhciBpPWUuc3BsaXQoYApgKSxhPWkuc2xpY2UoLTMpO24udGV4dENvbnRlbnQ9YS5qb2luKGAKYCksbi5zY3JvbGxUb3A9bi5zY3JvbGxIZWlnaHR9fX13aW5kb3cuX19hc2tTZWxlY3Q9ZnVuY3Rpb24oZSx0LG4saSl7dmFyIGE9ci5hc2tVc2VyU2VsZWN0aW9uc1tlXTtpZihhfHwoYT17c3VibWl0dGVkOiExfSxyLmFza1VzZXJTZWxlY3Rpb25zW2VdPWEpLCFhLnN1Ym1pdHRlZCl7dmFyIHU9YVt0XXx8W107aWYoaSl7dmFyIG89dS5pbmRleE9mKG4pO289PT0tMT91LnB1c2gobik6dS5zcGxpY2UobywxKX1lbHNlIHU9dVswXT09PW4/W106W25dO2FbdF09dSx3aW5kb3cuX19hc2tSZW5kZXIoZSl9fSx3aW5kb3cuX19hc2tSZW5kZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdG9vbC11c2UtaWQ9IicrZSsnIl0nKTtpZih0KXt2YXIgbj1yLmFza1VzZXJTZWxlY3Rpb25zW2VdfHx7fTt0LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hc2stdXNlci1vcHRpb24iKS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBzPXBhcnNlSW50KG8uZGF0YXNldC5xdWVzdGlvbkluZGV4LDEwKSxsPXBhcnNlSW50KG8uZGF0YXNldC5vcHRpb25JbmRleCwxMCksZD0obltzXXx8W10pLmluZGV4T2YobCkhPT0tMTtvLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIixkKX0pO3ZhciBpPXQucXVlcnlTZWxlY3RvcigiLmFzay11c2VyLXN1Ym1pdCIpO2lmKGkpe3ZhciBhPXQucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiksdT0hMDthLmZvckVhY2goZnVuY3Rpb24obyxzKXsoIW5bc118fG5bc10ubGVuZ3RoPT09MCkmJih1PSExKX0pLGkuZGlzYWJsZWQ9IXV8fCEhbi5zdWJtaXR0ZWQsbi5zdWJtaXR0ZWQmJihpLnRleHRDb250ZW50PSJcdTVERjJcdTYzRDBcdTRFQTQuLi4iLGkuY2xhc3NMaXN0LmFkZCgiYXNrLXVzZXItc3VibWl0dGVkIikpfX19LHdpbmRvdy5fX2Fza1N1Ym1pdD1mdW5jdGlvbihlKXt2YXIgdD1yLmFza1VzZXJTZWxlY3Rpb25zW2VdO2lmKCEoIXR8fHQuc3VibWl0dGVkfHwhci5zZWxlY3RlZElkKSl7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdG9vbC11c2UtaWQ9IicrZSsnIl0nKTtpZihuKXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hc2stdXNlci1xdWVzdGlvbi1ncm91cCIpLGE9W10sdT0hMDtpZihpLmZvckVhY2goZnVuY3Rpb24ocyxsKXt2YXIgZD10W2xdfHxbXTtpZihkLmxlbmd0aD09PTApe3U9ITE7cmV0dXJufXZhciBmPVtdO2QuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgdj1zLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW9wdGlvbi1pbmRleD0iJytjKyciXScpO3YmJmYucHVzaCh2LmRhdGFzZXQub3B0aW9uTGFiZWwpfSksYS5wdXNoKGYuam9pbigiLCAiKSl9KSwhIXUpe3Quc3VibWl0dGVkPSEwLHdpbmRvdy5fX2Fza1JlbmRlcihlKTt2YXIgbz1hLmpvaW4oYApgKTtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3Iuc2VsZWN0ZWRJZCsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6bytgCmAsdmlldzpyLmN1cnJlbnRWaWV3fSl9KS5jYXRjaChmdW5jdGlvbihzKXtjb25zb2xlLmVycm9yKCJbd2FuZF0gRXJyb3Igc2VuZGluZyBhbnN3ZXI6IixzKSx0LnN1Ym1pdHRlZD0hMSx3aW5kb3cuX19hc2tSZW5kZXIoZSl9KX19fX07ZnVuY3Rpb24gTWYoKXtpZighci5fX2dsb2JhbExpc3RlbmVyc0JvdW5kKXtyLl9fZ2xvYmFsTGlzdGVuZXJzQm91bmQ9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItb3ZlcmZsb3ctbWVudSIpO3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0O2lmKCEoIW58fHR5cGVvZiBuLmNsb3Nlc3QhPSJmdW5jdGlvbiIpKXt2YXIgaT1uLmNsb3Nlc3QoIiNjaGVjay11cGRhdGUtYnV0dG9uLCAjZG8tdXBkYXRlLWJ1dHRvbiwgI2RvLXJlc3RhcnQtYnV0dG9uIik7IWl8fGkuZGlzYWJsZWR8fCh0LnByZXZlbnREZWZhdWx0KCksaS5pZD09PSJjaGVjay11cGRhdGUtYnV0dG9uIj9abCgpOmkuaWQ9PT0iZG8tdXBkYXRlLWJ1dHRvbiI/ZmcoKTpwZygpKX19KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW92ZXJmbG93LW1lbnUiKTt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKX0pO3ZhciBlPWZ1bmN0aW9uKCl7ci50b3BiYXJNb3JlT3Blbj0hMTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtbWVudSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLWJ1dHRvbiIpO3QmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmKG4uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKHIudG9wYmFyTW9yZU9wZW4pe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1tZW51IiksaT1uJiZuLnBhcmVudEVsZW1lbnQ7aSYmIWkuY29udGFpbnModC50YXJnZXQpJiZlKCl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci50b3BiYXJNb3JlT3BlbiYmZSgpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKHIucGx1c1BvcG92ZXJPcGVuKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO24mJm4uY29udGFpbnModC50YXJnZXQpfHxpJiZpLmNvbnRhaW5zKHQudGFyZ2V0KXx8SmkoKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZyLnBsdXNQb3BvdmVyT3BlbiYmSmkoKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldDtpZighKCFufHx0eXBlb2Ygbi5jbG9zZXN0IT0iZnVuY3Rpb24iKSl7dmFyIGk9bi5jbG9zZXN0KCIjYXV0by1hcHByb3ZlLXRvZ2dsZSIpO2kmJih0LnByZXZlbnREZWZhdWx0KCksUmMoKSl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKCF0LnRhcmdldC5jbG9zZXN0KCIuZm9sZGVyLXBpY2tlci1jb250YWluZXIiKSl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItZHJvcGRvd24iKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldDtpZighKCFufHwhbi5tYXRjaGVzKCdpbnB1dFt0eXBlPSJyYW5nZSJdW2RhdGEtbW9kZS1jb250cm9sPSJ0aGlua2luZyJdJykpKXt2YXIgaT1bXTt0cnl7aT1KU09OLnBhcnNlKG4uZGF0YXNldC50aGlua2luZ0xhYmVsc3x8IltdIil9Y2F0Y2h7fXZhciBhPU1hdGgubWF4KDAsTWF0aC5taW4oaS5sZW5ndGgtMSxNYXRoLnJvdW5kKE51bWJlcihuLnZhbHVlKXx8MCkpKSx1PWlbYV18fCJhdXRvIixvPW4uY2xvc2VzdCgnW2RhdGEtbW9kZS1jb250cm9sLXBpbGw9InRoaW5raW5nIl0nKSxzPW8mJm8ucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXNsaWRlci12YWx1ZSIpO3MmJihzLnRleHRDb250ZW50PXUpLG4uc2V0QXR0cmlidXRlKCJhcmlhLXZhbHVldGV4dCIsdSk7dmFyIGw9bi5jbG9zZXN0KCIudGhpbmtpbmctc2xpZGVyLXJhaWwiKSxkPU51bWJlcihuLm1heCl8fDA7bCYmbC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10aGlua2luZy1wcm9ncmVzcyIsKGQ/YS9kKjEwMDowKSsiJSIpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQ7aWYoISghbnx8bi5ub2RlVHlwZSE9PTEpJiYhKHR5cGVvZiBuLm1hdGNoZXMhPSJmdW5jdGlvbiJ8fCFuLm1hdGNoZXMoIltkYXRhLW1vZGUtY29udHJvbF0iKSkpe3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUtY29udHJvbCIpLGE9bi52YWx1ZSx1PWk9PT0idGhpbmtpbmciJiZuLm1hdGNoZXMoJ2lucHV0W3R5cGU9InJhbmdlIl0nKTtpZih1KXRyeXt2YXIgbz1KU09OLnBhcnNlKG4uZGF0YXNldC50aGlua2luZ1ZhbHVlc3x8IltdIik7YT1vW01hdGgucm91bmQoTnVtYmVyKG4udmFsdWUpfHwwKV18fCJvZmYifWNhdGNoe2E9Im9mZiJ9aT09PSJtb2RlIj9QbShhKTppPT09Im1vZGVsIj9xbShhKTppPT09InRoaW5raW5nIiYmSW0oYSksIXUmJm4uY2xvc2VzdCYmbi5jbG9zZXN0KCIjY29tcG9zZXItcGx1cy1wb3BvdmVyIikmJkppKCl9fSl9fWZ1bmN0aW9uIHFmKCl7TWYoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tYnV0dG9uIik7aWYoZSl7ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscHUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1mb3JtIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJzdWJtaXQiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxwdSgpfSk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLXN3aXRjaC1zZXJ2ZXItYnV0dG9uIik7biYmbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQ2wpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYXNzd29yZCIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZ2dsZS1wYXNzd29yZC1idXR0b24iKTthJiZpJiZhLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBiPWkudHlwZT09PSJ0ZXh0IjtpLnR5cGU9Yj8icGFzc3dvcmQiOiJ0ZXh0IixhLnRleHRDb250ZW50PWI/Ilx1NjYzRVx1NzkzQSI6Ilx1OTY5MFx1ODVDRiIsYS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLGI/Ilx1NjYzRVx1NzkzQVx1NUJDNlx1NzgwMSI6Ilx1OTY5MFx1ODVDRlx1NUJDNlx1NzgwMSIpLGEuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLGI/ImZhbHNlIjoidHJ1ZSIpLGkuZm9jdXMoKX0pLGkmJihpLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpe2Iua2V5PT09IkVudGVyIiYmcHUoKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7aS5kYXRhc2V0LmVycm9yPSJmYWxzZSIsaS5zZXRBdHRyaWJ1dGUoImFyaWEtaW52YWxpZCIsImZhbHNlIik7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWVycm9yIik7YiYmeWkoYil9KSxpLmZvY3VzKCkpO3JldHVybn12YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1pbnB1dCIpO3UmJih1LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpe2Iua2V5PT09IkVudGVyIiYmIWIuc2hpZnRLZXkmJihiLnByZXZlbnREZWZhdWx0KCkseHMoKSl9KSx1LmZvY3VzKCkpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXNlbmQtYnRuIik7byYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt4cygpfSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtdG9vbC1jbGF1ZGUiKTtzJiZzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lkKCl9KTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLWNvZGV4Iik7bCYmbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLnNlc3Npb25Ub29sPSJjb2RleCIsci5wcmVmZXJyZWRDb21tYW5kPSJjb2RleCIsci5tb2RlVmFsdWU9ImZ1bGwtYWNjZXNzIixpZCgpfSk7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtdG9vbC1zdHJ1Y3R1cmVkIik7ZCYmZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtKbCgpLnRoZW4oZnVuY3Rpb24oKXtQdCghMCl9KS5jYXRjaChmdW5jdGlvbihiKXtBKGImJmIubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIil9KX0pLHdnKCk7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWxpc3QiKTtmJiYoZi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZmYpLGYuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIscGYpLGYuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdmVyIixKbSksZi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsWW0pLGZ2KGYpKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixYdCwhMCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsWHQpO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm92aWRlci1jYXJkcyIpO2MmJmMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBTPWIudGFyZ2V0LmNsb3Nlc3QoIi5wcm92aWRlci1jYXJkIik7aWYoISghU3x8Uy5jbGFzc0xpc3QuY29udGFpbnMoImRpc2FibGVkIikpKXt2YXIgVz1TLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm92aWRlciIpO1cmJihyLnNlc3Npb25Ub29sPVcsci5wcmVmZXJyZWRDb21tYW5kPVcsZXIoKSxHaSh7ZGVmYXVsdFByb3ZpZGVyOlcsZGVmYXVsdE1vZGU6ci5tb2RlVmFsdWV9KSl9fSk7dmFyIHY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24ta2luZC1jYXJkcyIpO3YmJnYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBTPWIudGFyZ2V0LmNsb3Nlc3QoIi5zZXNzaW9uLWtpbmQtY2FyZCIpO2lmKCEoIVN8fFMuY2xhc3NMaXN0LmNvbnRhaW5zKCJkaXNhYmxlZCIpKSl7dmFyIFc9Uy5nZXRBdHRyaWJ1dGUoImRhdGEtc2Vzc2lvbi1raW5kIik7VyYmKHIuc2Vzc2lvbkNyZWF0ZUtpbmQ9VyxlcigpLEdpKHtkZWZhdWx0U2Vzc2lvbktpbmQ6V30pKX19KTt2YXIgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1jYXJkcyIpO2gmJmguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBTPWIudGFyZ2V0LmNsb3Nlc3QoIi5tb2RlLWNhcmQiKTtpZihTKXt2YXIgVz1TLmdldEF0dHJpYnV0ZSgiZGF0YS1tb2RlIik7VyYmKHIubW9kZVZhbHVlPVcsZXIoKSxHaSh7ZGVmYXVsdE1vZGU6ci5tb2RlVmFsdWV9KSl9fSk7dmFyIGc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24td29ya3RyZWUtdG9nZ2xlIik7ZyYmZy5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9Zy5jaGVja2VkfSk7dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpO20mJihtLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IuY3dkVmFsdWU9bS52YWx1ZX0pLG0uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3IuY3dkVmFsdWU9bS52YWx1ZX0pLG0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHVkKSxtLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIix1ZCksbS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixmdW5jdGlvbigpe3NldFRpbWVvdXQoaXIsMTIwKX0pKTt2YXIgeT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpO3kmJnkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFJtKTt2YXIgQz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtZHJhd2VyLWJhY2tkcm9wIik7QyYmQy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsV3IpO3ZhciBFPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1kcmF3ZXItYnV0dG9uIik7RSYmRS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsV3IpO3ZhciBCPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLWNvbGxhcHNlLWJ0biIpO0ImJkIuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEdtKTt2YXIgRD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1waW4tYnRuIik7RCYmRC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsUW0pO3ZhciBGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW1vcmUtYnRuIiksST1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1vdmVyZmxvdy1tZW51Iik7RiYmSSYmRi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKTt2YXIgUz0hSS5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTtJLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLFMpLFMmJlhtKEkpfSk7dmFyIEw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItaG9tZS1idG4iKTtMJiZMLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2VsZWN0ZWRJZD1udWxsLGhlKCksd3QoKSxfdCgpLFF0KCl9KTt2YXIgSD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1yZWZyZXNoLWJ0biIpO0gmJkguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7d2luZG93LmxvY2F0aW9uLnJlbG9hZCgpfSk7dmFyIFU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ291dC1idXR0b24iKTtVJiZVLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixCbCk7dmFyIHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN3aXRjaC1zZXJ2ZXItYnV0dG9uIik7eCYmeC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQ2wpO3ZhciBrPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiYWNrLXRvLW5hdGl2ZS1idXR0b24iKTtrJiZrLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixDbSk7dmFyIFQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWJ1dHRvbiIpO1QmJlQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG5nKTt2YXIgTT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2Utc2V0dGluZ3MtYnV0dG9uIik7TSYmTS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbnIpO3ZhciBZPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO1kmJlkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2IudGFyZ2V0LmlkPT09InNldHRpbmdzLW1vZGFsIiYmbnIoKX0pO3ZhciB6PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLXBhc3N3b3JkLWJ1dHRvbiIpO3omJnouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHJnKTtmb3IodmFyIFE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLXRhYiIpLGxlPTA7bGU8US5sZW5ndGg7bGUrKylRW2xlXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi5jdXJyZW50VGFyZ2V0fHx0aGlzLFc9UyYmUy5nZXRBdHRyaWJ1dGU/Uy5nZXRBdHRyaWJ1dGUoImRhdGEtdGFiIik6bnVsbDtXJiZ4dShXKX0pO3ZhciBlZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZS1jb25maWctYnV0dG9uIik7ZWUmJmVlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixsZyksTW0oKTt2YXIgWj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwtcmVmcmVzaCIpO1omJlouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGpsKTt2YXIgcT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1tb2RlbC1yZWZyZXNoIik7cSYmcS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsamwpO3ZhciBPPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LWNsaSIpO08mJk8uYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe1ZpKCEwKX0pO3ZhciBOPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctdmlldy1lbnYtYnRuIik7TiYmTi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTG0pO3ZhciBHPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWRpc3BsYXktYnV0dG9uIik7RyYmRy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZGcpO3ZhciBKPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtaWNvbi1waWNrZXIiKTtpZihKKWZvcih2YXIgbmU9Si5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiksZGU9MDtkZTxuZS5sZW5ndGg7ZGUrKyluZVtkZV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtaWNvbiIpO2lmKCEoIWJ8fHR5cGVvZiBXYW5kTmF0aXZlPiJ1Inx8dHlwZW9mIFdhbmROYXRpdmUuc2V0QXBwSWNvbiE9ImZ1bmN0aW9uIikpdHJ5e1dhbmROYXRpdmUuc2V0QXBwSWNvbihiKSxlZChiKTt2YXIgUz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwLWljb24tbWVzc2FnZSIpO1MmJihTLnRleHRDb250ZW50PSJcdTU2RkVcdTY4MDdcdTVERjJcdTUyMDdcdTYzNjJcdUZGMENcdThGRDRcdTU2REVcdTY4NENcdTk3NjJcdTU0MEVcdTc1MUZcdTY1NDgiLFMuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixTLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtTLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSwzZTMpKX1jYXRjaHt9fSk7dmFyIHJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGxvYWQtY2VydC1idXR0b24iKTtyZSYmcmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGNnKTtmb3IodmFyIGllPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLXBpY2tlci1pbnB1dCIpLHFlPTA7cWU8aWUubGVuZ3RoO3FlKyspKGZ1bmN0aW9uKGIpe2IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBTPWIuY2xvc2VzdCgiLmZpbGUtcGlja2VyIik7aWYoUyl7dmFyIFc9Uy5xdWVyeVNlbGVjdG9yKCIuZmlsZS1waWNrZXItbmFtZSIpO1cmJihiLmZpbGVzJiZiLmZpbGVzWzBdPyhXLnRleHRDb250ZW50PWIuZmlsZXNbMF0ubmFtZSxTLmNsYXNzTGlzdC5hZGQoImZpbGUtcGlja2VyLWhhcy1maWxlIikpOihXLnRleHRDb250ZW50PVcuZ2V0QXR0cmlidXRlKCJkYXRhLWRlZmF1bHQiKXx8Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiIsUy5jbGFzc0xpc3QucmVtb3ZlKCJmaWxlLXBpY2tlci1oYXMtZmlsZSIpKSl9fSl9KShpZVtxZV0pO3ZhciBnZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIpO2dlJiZnZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7U3UoIndlYiIsZ2UuY2hlY2tlZCl9KTt2YXIgY2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWFway10b2dnbGUiKTtjZSYmY2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe1N1KCJhcGsiLGNlLmNoZWNrZWQpfSk7dmFyIFI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTtSJiZSLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtTdSgiZG1nIixSLmNoZWNrZWQpfSk7dmFyIGh0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7aHQmJmh0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtnZyhodC5jaGVja2VkPyJiZXRhIjoic3RhYmxlIil9KTt2YXIgX2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHktY29ubmVjdC1jb2RlLWJ1dHRvbiIpO19lJiZfZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LWNvZGUiKTtiJiZVcihiLnRleHRDb250ZW50LF9lKX0pO3ZhciAkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtc291bmQiKTskJiYoJC5jaGVja2VkPXIubm90aWZTb3VuZCwkLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLm5vdGlmU291bmQ9JC5jaGVja2VkO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi1zb3VuZCIsU3RyaW5nKHIubm90aWZTb3VuZCkpfWNhdGNoe31yLm5vdGlmU291bmQmJkZpKCk7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmLXZvbHVtZS1maWVsZCIpO2ImJihiLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIil9KSk7dmFyIGZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtdm9sdW1lIiksQ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUtdmFsIiksQmU9ZnVuY3Rpb24oYil7aWYoYil7dmFyIFM9TnVtYmVyKGIubWlufHwwKSxXPU51bWJlcihiLm1heHx8MTAwKSxiZT1OdW1iZXIoYi52YWx1ZXx8MCkseXQ9Vz5TP01hdGgubWF4KDAsTWF0aC5taW4oMTAwLChiZS1TKS8oVy1TKSoxMDApKTowO2Iuc3R5bGUuc2V0UHJvcGVydHkoIi0tcmFuZ2UtZmlsbCIseXQrIiUiKX19O2lmKGZlKXtmZS52YWx1ZT1TdHJpbmcoci5ub3RpZlZvbHVtZSksQ2UmJihDZS50ZXh0Q29udGVudD1yLm5vdGlmVm9sdW1lKyIlIiksQmUoZmUpO3ZhciB2ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7dmUmJih2ZS5zdHlsZS5kaXNwbGF5PXIubm90aWZTb3VuZD8iIjoibm9uZSIpO3ZhciBGZT1udWxsO2ZlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3Iubm90aWZWb2x1bWU9cGFyc2VJbnQoZmUudmFsdWUsMTApLENlJiYoQ2UudGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpLEJlKGZlKTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtbm90aWYtdm9sdW1lIixTdHJpbmcoci5ub3RpZlZvbHVtZSkpfWNhdGNoe31pZihXZSYmdHlwZW9mIFdhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uVm9sdW1lPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnNldE5vdGlmaWNhdGlvblZvbHVtZShyLm5vdGlmVm9sdW1lKX1jYXRjaHt9fSksZmUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe0ZpKCl9KX12YXIgZXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1idWJibGUiKTtldCYmKGV0LmNoZWNrZWQ9ci5ub3RpZkJ1YmJsZSxldC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5ub3RpZkJ1YmJsZT1ldC5jaGVja2VkO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi1idWJibGUiLFN0cmluZyhyLm5vdGlmQnViYmxlKSl9Y2F0Y2h7fX0pKTt2YXIgZHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1yZXF1ZXN0LWJ0biIpO2R0JiZkdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtpZihXZSl7d2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHQ9ZnVuY3Rpb24oKXtibigpLGRlbGV0ZSB3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdH07dHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9fWVsc2UgdHlwZW9mIE5vdGlmaWNhdGlvbjwidSImJk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oZnVuY3Rpb24oKXtibigpfSl9KTt2YXIgaXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1yZXNldC1idG4iKTtpdCYmaXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGhnKTt2YXIgTmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWJ0biIpO05lJiZOZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbmQpO3ZhciBSdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtZGVsYXktYnRuIik7aWYoUnQmJlJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix5ZyksYm4oKSxXZSYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXZhaWxhYmxlU291bmRzPT0iZnVuY3Rpb24iKXt2YXIgWWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1zZWN0aW9uIiksRGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1zZWxlY3QiKSxQZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXByZXZpZXciKTtpZihZZSYmRGUpe1llLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3RyeXt2YXIgdGU9SlNPTi5wYXJzZShXYW5kTmF0aXZlLmdldEF2YWlsYWJsZVNvdW5kcygpKSx3ZT1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kKCk7RGUuaW5uZXJIVE1MPSIiO2Zvcih2YXIgdz0wO3c8dGUubGVuZ3RoO3crKyl7dmFyIGF0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpO2F0LnZhbHVlPXRlW3ddLmlkLGF0LnRleHRDb250ZW50PXRlW3ddLm5hbWUsdGVbd10uaWQ9PT13ZSYmKGF0LnNlbGVjdGVkPSEwKSxEZS5hcHBlbmRDaGlsZChhdCl9RGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnNldE5vdGlmaWNhdGlvblNvdW5kKERlLnZhbHVlKX1jYXRjaHt9fSksUGUmJlBlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnByZXZpZXdTb3VuZChEZS52YWx1ZSl9Y2F0Y2h7fX0pfWNhdGNoe319fWlmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQ9PSJmdW5jdGlvbiIpe3ZhciBrdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLWhhcHRpYy1zZWN0aW9uIiksdXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1oYXB0aWMtZW5hYmxlZCIpO2lmKGt0JiZ1dCl7a3QuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dHJ5e3V0LmNoZWNrZWQ9V2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQoKX1jYXRjaHt9dXQuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnNldEhhcHRpY0VuYWJsZWQodXQuY2hlY2tlZCl9Y2F0Y2h7fXV0LmNoZWNrZWQmJkduKCJtZWRpdW0iKX0pfX12YXIgWnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1uZXctc2Vzc2lvbi1idXR0b24iKTtadCYmWnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGt1KTt2YXIgQXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYXdlci1uZXctc2Vzc2lvbi1idXR0b24iKTtBdCYmQXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGt1KTt2YXIgV3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLW1vZGFsLWJ1dHRvbiIpO1d0JiZXdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaG4pO3ZhciB6dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2Utd29ya3RyZWUtbWVyZ2UtYnV0dG9uIik7enQmJnp0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0cik7dmFyIFRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jYW5jZWwtYnV0dG9uIik7VGUmJlRlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix0cik7dmFyIFVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jb25maXJtLWJ1dHRvbiIpO1VlJiZVZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGcpO3ZhciBLZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicnVuLWJ1dHRvbiIpO0tlJiZLZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYmcpO3ZhciB4dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIpO3h0JiZ4dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTmMpO3ZhciBWdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO1Z0JiZWdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsamMpO3ZhciBVdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VuZC1pbnB1dC1idXR0b24iKTtVdCYmVXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7X3QoKSxocCgpfSk7dmFyIEVuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO0VuJiZFbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsR2EpO3ZhciBjdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2N0JiZjdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0ic2Vzc2lvbi1tb2RhbCImJmhuKCksYi50YXJnZXQuaWQ9PT0id29ya3RyZWUtbWVyZ2UtbW9kYWwiJiZ0cigpfSk7dmFyIGtlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtrZSYmKCRzKGtlKSxrZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixBZyksa2UuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLFBnKSxrZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsQ29tcG9zaW5nfHxvZChrZSl8fChEdihrZSksWmUoa2UudmFsdWUsITApLCRpKGtlKSl9KSxrZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IixmdW5jdGlvbigpe3IudGVybWluYWxJbnRlcmFjdGl2ZSYmKHIudGVybWluYWxDb21wb3Npbmc9ITApfSksa2UuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbENvbXBvc2luZyYmKHIudGVybWluYWxDb21wb3Npbmc9ITEsci50ZXJtaW5hbEludGVyYWN0aXZlJiZvZChrZSkpfSksa2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7X3QoKSx5dih7dGFyZ2V0OmtlfSl9KSxrZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixidikpO3ZhciBKZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpLEFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXVwbG9hZC1pbnB1dCIpLE9uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21wb3Nlci1wbHVzLXBvcG92ZXIiKSxmdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGx1cy1hdHRhY2gtaXRlbSIpO0plJiZPbiYmSmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCksem0oKX0pLGZ0JiZBZSYmZnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7SmkoKSxBZS5jbGljaygpfSksQWUmJkFlLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgYj1BZS5maWxlcztpZihiKWZvcih2YXIgUz0wO1M8Yi5sZW5ndGg7UysrKUl1KGJbU10pO0FlLnZhbHVlPSIifSk7dmFyIGVuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1idG4iKTtlbiYmZW4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7amEoKX0pO3ZhciB0bj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtY2FuY2VsLWJ0biIpO3RuJiZ0bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtqYSghMSl9KTt2YXIgU3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKTtTdCYmKFN0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixzcCksU3QuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGxwKSxTdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLENzKSxTdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixDcykpO3ZhciBvZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvbXB0LW9wdGltaXplLWJ0biIpO29lJiZvZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtIZygpfSk7dmFyIExlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO0xlJiYoTGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLExlLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksTGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSxMZS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKX0pLExlLmFkZEV2ZW50TGlzdGVuZXIoImRyb3AiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLExlLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO3ZhciBTPWIuZGF0YVRyYW5zZmVyJiZiLmRhdGFUcmFuc2Zlci5maWxlcztpZihTKWZvcih2YXIgVz0wO1c8Uy5sZW5ndGg7VysrKUl1KFNbV10pfSkpO3ZhciBqZT1bInRlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AiXTtqZS5mb3JFYWNoKGZ1bmN0aW9uKGIpe3ZhciBTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGIpO1MmJlMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLG52KX0pO3ZhciB0dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1wYW5lbC10b2dnbGUtYnRuIik7dHQmJnR0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuaSk7dmFyIGo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2lkZS1wYW5lbC1jbG9zZSIpO2omJmouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRvKTt2YXIgUD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1wYW5lbC1iYWNrZHJvcCIpO1AmJlAuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRvKTt2YXIgSz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWZpbGUtYnV0dG9uIik7SyYmSy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbmkpO3ZhciBhZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWN3ZCIpO2FlJiYoYWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5maWxlUGFuZWxPcGVufHxuaSgpfSksYWUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7KGIua2V5PT09IkVudGVyInx8Yi5rZXk9PT0iICIpJiYoYi5wcmV2ZW50RGVmYXVsdCgpLHIuZmlsZVBhbmVsT3Blbnx8bmkoKSl9KSk7dmFyIHNlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1idXR0b24iKSx5ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtbWVudSIpO3NlJiZ5ZSYmKHNlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpLHIudG9wYmFyTW9yZU9wZW49IXIudG9wYmFyTW9yZU9wZW4seWUuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhci50b3BiYXJNb3JlT3Blbiksc2UuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnRvcGJhck1vcmVPcGVuKSxzZS5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLHIudG9wYmFyTW9yZU9wZW4/InRydWUiOiJmYWxzZSIpfSkseWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBTPWIudGFyZ2V0JiZiLnRhcmdldC5jbG9zZXN0P2IudGFyZ2V0LmNsb3Nlc3QoIi50b3BiYXItbW9yZS1pdGVtIik6bnVsbDtpZihTKXt2YXIgVz1TLmdldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iKTtzd2l0Y2goci50b3BiYXJNb3JlT3Blbj0hMSx5ZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxzZS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxzZS5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLFcpe2Nhc2UiY29weS1jbGF1ZGUtc2Vzc2lvbi1pZCI6QWEoImNsYXVkZVNlc3Npb25JZCIsRHQoKSYmRHQoKS5wcm92aWRlcj09PSJjb2RleCI/IkNvZGV4IHRocmVhZCBJRCBcdTVERjJcdTU5MERcdTUyMzYiOiJDbGF1ZGUgXHU0RjFBXHU4QkREIElEIFx1NURGMlx1NTkwRFx1NTIzNiIpO2JyZWFrO2Nhc2UiY29weS1jd2QiOkFhKCJjd2QiLCJcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlImNvcHktc2Vzc2lvbi1pZCI6QWEoImlkIiwiXHU0RjFBXHU4QkREIElEIFx1NURGMlx1NTkwRFx1NTIzNiIpO2JyZWFrO2Nhc2Uid29ya3RyZWUtbWVyZ2UiOnIuc2VsZWN0ZWRJZCYmR2woci5zZWxlY3RlZElkKTticmVhaztjYXNlIndvcmt0cmVlLWNsZWFudXAiOnIuc2VsZWN0ZWRJZCYmUWwoci5zZWxlY3RlZElkKTticmVhaztjYXNlImRlbGV0ZS1zZXNzaW9uIjpyLnNlbGVjdGVkSWQmJihmdW5jdGlvbihiZSl7QW4oIlx1Nzg2RVx1NUI5QVx1ODk4MVx1NTIyMFx1OTY2NFx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NTQxN1x1RkYxRlx1NkI2NFx1NjRDRFx1NEY1Q1x1NjVFMFx1NkNENVx1NjRBNFx1OTUwMFx1MzAwMiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTVGNTNcdTUyNERcdTRGMUFcdThCREQifSkudGhlbihmdW5jdGlvbih5dCl7eXQmJlFhKGJlKX0pfSkoci5zZWxlY3RlZElkKTticmVha319fSkpO3ZhciB1cj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtc2NhbGUtZG93bi10b3AiKSxvcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtc2NhbGUtdXAtdG9wIik7dXImJnVyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe25vKC0uMjUpfSksb3ImJm9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe25vKC4yNSl9KTt2YXIgWmk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhZ2UtcmVmcmVzaC1idG4iKTtaaSYmWmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2lmKGImJmIuc2hpZnRLZXkpe2xvY2F0aW9uLnJlbG9hZCgpO3JldHVybn14bigpLHd0KHtwcmVzZXJ2ZVN0aWNrU3RhdGU6ITB9KSxldSghMCl9KTt2YXIgSG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWp1bXAtYm90dG9tIik7SG4mJkhuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3B0KCJmb3JjZSIpfSk7dmFyIF9uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LXVucmVhZC1idWJibGUiKTtfbiYmX24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7enUoITApfSk7dmFyIGVhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLXJlZnJlc2giKTtlYSYmZWEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7THQoKX0pO3ZhciBZcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci11cCIpO1lyJiZZci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsemQpO3ZhciBPZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1jd2QiKTtpZihPZSYmT2UudGFnTmFtZT09PSJJTlBVVCIpe3ZhciBzcj1PZS52YWx1ZSxzZD1mdW5jdGlvbihiKXt2YXIgUz0oYnx8IiIpLnRyaW0oKTtyZXR1cm4gUz8oUz1TLnJlcGxhY2UoL1wvezIsfS9nLCIvIiksUy5sZW5ndGg+MSYmKFM9Uy5yZXBsYWNlKC9cLyskLywiIikpLFMpOiIifTtPZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXtzcj1PZS52YWx1ZSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHJ5e09lLnNlbGVjdCgpfWNhdGNoe319LDApfSksT2UuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7aWYoYi5rZXk9PT0iRW50ZXIiKXtiLnByZXZlbnREZWZhdWx0KCk7dmFyIFM9c2QoT2UudmFsdWUpO2lmKCFTKXJldHVybjtzcj1TLE9lLnZhbHVlPVMsTHQoe2N3ZDpTfSksT2UuYmx1cigpfWVsc2UgYi5rZXk9PT0iRXNjYXBlIiYmKGIucHJldmVudERlZmF1bHQoKSxPZS52YWx1ZT1zcixPZS5ibHVyKCkpfSksT2UuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsZnVuY3Rpb24oKXt2YXIgYj1zZChPZS52YWx1ZSk7aWYoIWIpe09lLnZhbHVlPXNyO3JldHVybn1pZihiPT09c3Ipe09lLnZhbHVlPWI7cmV0dXJufXNyPWIsT2UudmFsdWU9YixMdCh7Y3dkOmJ9KX0pfXZhciB0YT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1zZWFyY2gtaW5wdXQiKSxHcj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1zZWFyY2gtY2xlYXIiKTt0YSYmdGEuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKGIpe3IuZmlsZVNlYXJjaFF1ZXJ5PWIudGFyZ2V0LnZhbHVlLnRyaW0oKSxHciYmR3IuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsci5maWxlU2VhcmNoUXVlcnkubGVuZ3RoPjApLHVvKCl9KSxHciYmR3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5maWxlU2VhcmNoUXVlcnk9IiIsdGEmJih0YS52YWx1ZT0iIiksR3IuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSk7dmFyIG1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWlucHV0IikseGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItZHJvcGRvd24iKSxfdT1udWxsLEt0PS0xLEZuPVtdO2Z1bmN0aW9uIGxkKGIpe21lJiZtZS5jbGFzc0xpc3QuYWRkKCJpbnZhbGlkIik7dmFyIFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIpO1MmJihTLnRleHRDb250ZW50PWIsUy5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpfWZ1bmN0aW9uIGRkKCl7bWUmJm1lLmNsYXNzTGlzdC5yZW1vdmUoImludmFsaWQiKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIik7YiYmKGIudGV4dENvbnRlbnQ9IiIsYi5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIikpfWZ1bmN0aW9uIFdnKGIpe2lmKCFiLmxlbmd0aClyZXR1cm4iIjt2YXIgUz0nPGRpdiBjbGFzcz0iZm9sZGVyLXJlY2VudC1zZWN0aW9uIj48ZGl2IGNsYXNzPSJmb2xkZXItcmVjZW50LXRpdGxlIj5cdTY3MDBcdThGRDFcdTRGN0ZcdTc1Mjg8L2Rpdj4nO3JldHVybiBiLmZvckVhY2goZnVuY3Rpb24oVyl7dmFyIGJlPVcucGF0aHx8VztTKz0nPGRpdiBjbGFzcz0iZm9sZGVyLXJlY2VudC1pdGVtIiBkYXRhLXBhdGg9IicrcChiZSkrJyI+JytndChiZSwiZm9sZGVyLXJlY2VudC1pdGVtLXBhdGgiKSsiPC9kaXY+In0pLFMrPSI8L2Rpdj4iLFN9ZnVuY3Rpb24gemcoKXt4ZSYmRGEoZnVuY3Rpb24oYil7dmFyIFM9V2coYik7Uz8oeGUuaW5uZXJIVE1MPVMseGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksanQoeGUpLHhlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mb2xkZXItcmVjZW50LWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKFcpe1cuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGJlPXRoaXMuZGF0YXNldC5wYXRoO21lJiYobWUudmFsdWU9YmUsR3QoYmUpLG5uKGJlKSl9KX0pKTpRcigpfSl9dmFyIGNkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JraW5nLWRpci1pbmRpY2F0b3IiKTtjZCYmY2QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZWxlY3RlZElkPW51bGwsaGUoKSxyLmRyYWZ0cz17fSxRdCgpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpO2ImJmIuZm9jdXMoKX0sNTApfSk7dmFyIE51PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXRvZ2dsZSIpLHhlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIik7TnUmJnhlJiZOdS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt4ZS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iKSxOdS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIil9KTt2YXIgbmE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmZvbGRlci1waWNrZXItY29tcGFjdCIpO2lmKG5hJiYobmEuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxuYS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxuYS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO3ZhciBTPWIuZGF0YVRyYW5zZmVyJiZiLmRhdGFUcmFuc2Zlci5pdGVtcztpZihTKWZvcih2YXIgVz0wO1c8Uy5sZW5ndGg7VysrKXt2YXIgYmU9U1tXXTtpZihiZS5raW5kPT09ImZpbGUiJiZiZS53ZWJraXRHZXRBc0VudHJ5KXt2YXIgeXQ9YmUud2Via2l0R2V0QXNFbnRyeSgpO2lmKHl0JiZ5dC5pc0RpcmVjdG9yeSYmbWUpe3ZhciBJdD15dC5mdWxsUGF0aDttZS52YWx1ZT1JdCxHdChJdCksbm4oSXQpO2JyZWFrfX19fSkpLHhlJiZ4ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQuY2xvc2VzdCgiLmZvbGRlci1waWNrZXItcXVpY2stYnRuIik7aWYoUyYmbWUpe3ZhciBXPVMuZGF0YXNldC5wYXRoO21lLnZhbHVlPVcsR3QoVyksbm4oVykseGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXRvZ2dsZSIpO2JlJiZiZS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9fSksbWUpe3ZhciBWZz0kZSgpO25uKFZnKSxtZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXt2YXIgYj10aGlzLnZhbHVlLnRyaW0oKTtiP25uKGIpOnpnKCl9KSxtZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oYil7dmFyIFM9Yi50YXJnZXQudmFsdWUudHJpbSgpO0t0PS0xLF91JiZjbGVhclRpbWVvdXQoX3UpLF91PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtTP25uKFMpOlFyKCl9LDE1MCl9KSxtZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtpZihiLmtleT09PSJFc2NhcGUiKVFyKCksdGhpcy5ibHVyKCk7ZWxzZSBpZihiLmtleT09PSJBcnJvd0Rvd24iKWIucHJldmVudERlZmF1bHQoKSxGbi5sZW5ndGg+MCYmKEt0PU1hdGgubWluKEt0KzEsRm4ubGVuZ3RoLTEpLGZkKCkpO2Vsc2UgaWYoYi5rZXk9PT0iQXJyb3dVcCIpYi5wcmV2ZW50RGVmYXVsdCgpLEt0PjAmJihLdC0tLGZkKCkpO2Vsc2UgaWYoYi5rZXk9PT0iRW50ZXIiJiZLdD49MCl7Yi5wcmV2ZW50RGVmYXVsdCgpO3ZhciBTPUZuW0t0XTtpZihTKXt2YXIgVz1TLmRhdGFzZXQucGF0aDtpZihXPT09Ii4uIil7dmFyIGJlPW1lLnZhbHVlLnRyaW0oKSx5dD1iZS5zdWJzdHJpbmcoMCxiZS5sYXN0SW5kZXhPZigiLyIpKTt5dCYmKG1lLnZhbHVlPXl0fHwiLyIsR3QobWUudmFsdWUpLG5uKHl0fHwiLyIpKX1lbHNlIG1lLnZhbHVlPVcsR3QoVyksUXIoKX19fSl9ZnVuY3Rpb24gZmQoKXtGbi5mb3JFYWNoKGZ1bmN0aW9uKGIsUyl7Yi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLFM9PT1LdCl9KX1mdW5jdGlvbiBraChiKXt9ZnVuY3Rpb24gbm4oYil7eGUmJih4ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9kaXY+Jyx4ZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxLdD0tMSxGbj1bXSxmZXRjaCgiL2FwaS9mb2xkZXJzP3E9IitlbmNvZGVVUklDb21wb25lbnQoYikse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKFMpe3JldHVybiBTLmpzb24oKS50aGVuKGZ1bmN0aW9uKFcpe3JldHVybntvazpTLm9rLHN0YXR1czpTLnN0YXR1cyxkYXRhOld9fSl9KS50aGVuKGZ1bmN0aW9uKFMpe3ZhciBXPVMuZGF0YTtpZighUy5va3x8Vy5lcnJvcil7bGQoVy5lcnJvcnx8Ilx1OERFRlx1NUY4NFx1NjVFMFx1NjU0OCIpLHhlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1lcnJvciI+JytwKFcuZXJyb3J8fCJcdThERUZcdTVGODRcdTY1RTBcdTY1NDgiKSsiPC9kaXY+IjtyZXR1cm59ZGQoKSxXLmN1cnJlbnRQYXRoO3ZhciBiZT1XLml0ZW1zfHxbXSx5dD1XLmN1cnJlbnRQYXRofHxiO2lmKGJlLmxlbmd0aD09PTApe3hlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1sb2FkaW5nIj5cdTdBN0FcdTc2RUVcdTVGNTU8L2Rpdj4nO3JldHVybn14ZS5pbm5lckhUTUw9YmUubWFwKGZ1bmN0aW9uKEl0KXt2YXIgcmE9SXQudHlwZT09PSJwYXJlbnQiPyJcdTIxQTlcdUZFMEYiOiJcdXsxRjRDMX0iLGp1PUl0LnR5cGU9PT0icGFyZW50Ij8iLi4gKFx1OEZENFx1NTZERVx1NEUwQVx1N0VBNykiOkl0Lm5hbWU7cmV0dXJuJzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItaXRlbSIgZGF0YS1wYXRoPSInK3AoSXQucGF0aCkrJyIgZGF0YS10eXBlPSInK0l0LnR5cGUrJyI+PHNwYW4gY2xhc3M9ImZvbGRlci1waWNrZXItaXRlbS1pY29uIj4nK3JhKyI8L3NwYW4+PHNwYW4+IitwKGp1KSsiPC9zcGFuPjwvZGl2PiJ9KS5qb2luKCIiKSxGbj1BcnJheS5mcm9tKHhlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mb2xkZXItcGlja2VyLWl0ZW0iKSksRm4uZm9yRWFjaChmdW5jdGlvbihJdCl7SXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHJhPXRoaXMuZGF0YXNldC5wYXRoLGp1PXRoaXMuZGF0YXNldC50eXBlO2lmKG1lKWlmKGp1PT09InBhcmVudCIpe3ZhciBnZD1tZS52YWx1ZS50cmltKCksaGQ9Z2Quc3Vic3RyaW5nKDAsZ2QubGFzdEluZGV4T2YoIi8iKSk7bWUudmFsdWU9aGR8fCIvIixHdChtZS52YWx1ZSksbm4oaGR8fCIvIil9ZWxzZSBtZS52YWx1ZT1yYSxHdChyYSksZGQoKSxRcigpfSl9KX0pLmNhdGNoKGZ1bmN0aW9uKFMpe2xkKCJcdTUyQTBcdThGN0RcdTU5MzFcdThEMjUiKSx4ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItZXJyb3IiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNTwvZGl2Pid9KSl9ZnVuY3Rpb24gUXIoKXt4ZSYmeGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksS3Q9LTEsRm49W119dmFyIHduPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLW1vZGFsIikscGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLWZvbGRlci1waWNrZXIiKTtmdW5jdGlvbiBBaCgpe2lmKHduKXt3bi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxtZSYmKG1lLnZhbHVlPSRlKCkpO3ZhciBiPSRlKCk7bm4oYil9fXBkJiZ3biYmcGQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7d24uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KSx3biYmd24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2IudGFyZ2V0PT09d24mJnduLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSk7dmFyIHZkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZ2l0LWJhZGdlIik7dmQmJnZkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksRW8oKX0pO3ZhciBtZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7bWQmJm1kLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJxdWljay1jb21taXQtbW9kYWwiJiYhci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcmJlduKCl9KSxGbygpLFluKCksQXYoKSxLYygpLFRwKCksbnQoKX1mdW5jdGlvbiB3dChlKXt2YXIgdD1lfHx7fTtyLmxhc3RSZW5kZXJlZEhhc2g9MCxyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PTAsci5sYXN0UmVuZGVyZWRFbXB0eT1udWxsLHIucmVuZGVyUGVuZGluZz0hMSxyLmNoYXRSZW5kZXJlZENvdW50PXIuY2hhdFBhZ2VTaXplLHIuYXNrVXNlclNlbGVjdGlvbnM9e30sci5jaGF0U2Nyb2xsRWxlbWVudCYmKHIuY2hhdFNjcm9sbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyKSxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyKSksci5jaGF0U2Nyb2xsRWxlbWVudD1udWxsLHIuY2hhdFNjcm9sbEhhbmRsZXI9bnVsbCxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXI9bnVsbCxyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcj1udWxsLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXI9bnVsbCxyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMSx0LnByZXNlcnZlU3RpY2tTdGF0ZXx8KHIuY2hhdFN0aWNrVG9Cb3R0b209ITAsci5jaGF0VW5yZWFkQ291bnQ9MCxyLmNoYXRVbnJlYWRTdGFydEluZGV4PS0xLHIuY2hhdEluaXRpYWxSZW5kZXJEb25lPSExKX1mdW5jdGlvbiAkZSgpe3JldHVybiByLndvcmtpbmdEaXJ8fGFuKCl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsZnVuY3Rpb24oKXtyLmlzT25saW5lPSEwLGhpKCl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib2ZmbGluZSIsZnVuY3Rpb24oKXtyLmlzT25saW5lPSExLGhpKCl9KTtmdW5jdGlvbiBoaSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvZmZsaW5lLWJhbm5lciIpO2lmKCFyLmlzT25saW5lJiYhZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7dC5pZD0ib2ZmbGluZS1iYW5uZXIiLHQuY2xhc3NOYW1lPSJvZmZsaW5lLWJhbm5lciIsdC50ZXh0Q29udGVudD0iWW91IGFyZSBvZmZsaW5lIC0gc29tZSBmZWF0dXJlcyBtYXkgYmUgbGltaXRlZCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh0KX1lbHNlIHIuaXNPbmxpbmUmJmUmJmUucmVtb3ZlKCl9ZnVuY3Rpb24gUGYoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwIik7ZSYmKGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJib290LWxvYWRpbmciPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy1jYXJkIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctc3Bpbm5lciI+PC9kaXY+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXRleHQiPlx1NkI2M1x1NTcyOFx1OEZERVx1NjNBNSBXYW5kXHUyMDI2PC9kaXY+PC9kaXY+PC9kaXY+Jyl9ZnVuY3Rpb24gQnIoZSx0KXtpZihyLmNvbmZpZyYmIWRvY3VtZW50LmhpZGRlbil7dmFyIG49dCYmdC5pbW1lZGlhdGU9PT0hMCxpPURhdGUubm93KCk7IW4mJmktci5sYXN0Rm9yZWdyb3VuZFN5bmNBdDwxNTAwfHwoci5sYXN0Rm9yZWdyb3VuZFN5bmNBdD1pLHIuZm9yZWdyb3VuZFN5bmNUaW1lciYmKGNsZWFyVGltZW91dChyLmZvcmVncm91bmRTeW5jVGltZXIpLHIuZm9yZWdyb3VuZFN5bmNUaW1lcj1udWxsKSxPZihlLG4pKX19ZnVuY3Rpb24gT2YoZSx0KXtyZXR1cm4hci5jb25maWd8fGRvY3VtZW50LmhpZGRlbj9Qcm9taXNlLnJlc29sdmUoKTooV28oKSx0P0VhKCJyZXN1bWUtZm9yY2UiKTooIXIud3N8fHIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOJiZyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuQ09OTkVDVElORykmJmRpKCksci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiZfbygpLHIuY29kZXhIaXN0b3J5TG9hZGVkJiZObygpLG1uKHtza2lwU2VsZWN0ZWRPdXRwdXRSZWxvYWQ6ITB9KS5jYXRjaChmdW5jdGlvbihuKXtjb25zb2xlLmVycm9yKCJbd2FuZF0gZm9yZWdyb3VuZCBzeW5jIGZhaWxlZDoiLGUsbil9KSl9ZnVuY3Rpb24gSGYoKXt3aW5kb3cuX193YW5kRm9yZWdyb3VuZFN5bmNCb3VuZHx8KHdpbmRvdy5fX3dhbmRGb3JlZ3JvdW5kU3luY0JvdW5kPSEwLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuaGlkZGVuP2JhKCk6KEJyKCJ2aXNpYmlsaXR5IiksQ3IoInZpc2liaWxpdHkiKSl9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7QnIoImZvY3VzIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicGFnZXNob3ciLGZ1bmN0aW9uKCl7QnIoInBhZ2VzaG93Iil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzdW1lIixmdW5jdGlvbigpe0JyKCJyZXN1bWUiKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWFuZHJvaWQtcmVzdW1lIixmdW5jdGlvbigpe0JyKCJhbmRyb2lkLXJlc3VtZSIse2ltbWVkaWF0ZTohMH0pLENyKCJhbmRyb2lkLXJlc3VtZSIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtaW1lLXN0YXRlIixmdW5jdGlvbihlKXt2YXIgdD1lJiZlLmRldGFpbCYmZS5kZXRhaWwuc3RhdGU7aWYodD09PSJzaG93biJ8fHQ9PT0iaGlkZGVuIil0cnl7UWUoIm5hdGl2ZS1pbWUtIit0LHtmb3JjZVJlcGxheTohMH0pLHB0KCJuYXRpdmUtaW1lIil9Y2F0Y2h7fX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWFuZHJvaWQtbmV0d29yayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5kZXRhaWwmJmUuZGV0YWlsLnN0YXRlO2lmKHQ9PT0ibG9zdCIpe3IuaXNPbmxpbmU9ITE7dHJ5e2hpKCl9Y2F0Y2h7fXJldHVybn1pZih0PT09ImF2YWlsYWJsZSJ8fHQ9PT0iY2hhbmdlZCJ8fHQ9PT0idmFsaWRhdGVkIil7ci5pc09ubGluZT0hMDt0cnl7aGkoKX1jYXRjaHt9RWEoImFuZHJvaWQtbmV0d29yay0iK3QpfX0pKX1mdW5jdGlvbiBfZigpe2ZldGNoKCIvYXBpL3Nlc3Npb24tY2hlY2siLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTp7YXV0aGVkOiExfX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIWV8fCFlLmF1dGhlZD8oci5sb2dpbkNoZWNrZWQ9ITAsUXQoKSxudWxsKTpmZXRjaCgiL2FwaS9jb25maWciLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5vaz90Lmpzb24oKTooci5sb2dpbkNoZWNrZWQ9ITAsUXQoKSxudWxsKX0pfSkudGhlbihmdW5jdGlvbihlKXtlJiYoci5jb25maWc9ZSxyLmxvZ2luQ2hlY2tlZD0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXt0cnl7UXQoe3NraXBTaGVsbENocm9tZTohMH0pfWNhdGNoe31IZigpLGpvKCksT3QoKSxObCgpLFlmKCksZS51cGRhdGVBdmFpbGFibGUmJmUubGF0ZXN0VmVyc2lvbiYmdnMoZS5jdXJyZW50VmVyc2lvbnx8Ii0iLGUubGF0ZXN0VmVyc2lvbiksSW4mJnZnKCksc24mJm1nKCksci5jbGF1ZGVIaXN0b3J5TG9hZGVkfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5jbGF1ZGVIaXN0b3J5TG9hZGVkfHxsaSgpfSw2MDApfSkpfSkuY2F0Y2goZnVuY3Rpb24oKXtpZihyLmxvZ2luQ2hlY2tlZD0hMCwhbmF2aWdhdG9yLm9uTGluZSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpO2UmJihlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctY2FyZCI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXRleHQiIHN0eWxlPSJmb250LXNpemU6MS4zZW07bWFyZ2luLWJvdHRvbToxMnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4Ij4nK1YoInNpZ25hbCIse3NpemU6MjAsc3Ryb2tlV2lkdGg6MS44fSkrJzxzcGFuPlx1NjVFMFx1NkNENVx1OEZERVx1NjNBNVx1NTIzMFx1NjcwRFx1NTJBMVx1NTY2ODwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctdGV4dCIgc3R5bGU9Im9wYWNpdHk6MC43O2ZvbnQtc2l6ZTowLjk1ZW0iPlx1OEJGN1x1NjhDMFx1NjdFNVx1N0Y1MVx1N0VEQ1x1OEZERVx1NjNBNVx1NjIxNlx1Nzg2RVx1OEJBNCBXYW5kIFx1NjcwRFx1NTJBMVx1NkI2M1x1NTcyOFx1OEZEMFx1ODg0Q1x1MzAwMjwvZGl2PjxidXR0b24gb25jbGljaz0ibG9jYXRpb24ucmVsb2FkKCkiIHN0eWxlPSJtYXJnaW4tdG9wOjE4cHg7cGFkZGluZzo4cHggMjRweDtib3JkZXItcmFkaXVzOjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTUwLDExOCw4NSwwLjMpO2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwwLjgpO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTowLjk1ZW0iPlx1OTFDRFx1OEJENTwvYnV0dG9uPjwvZGl2PjwvZGl2PicpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLGZ1bmN0aW9uKCl7bG9jYXRpb24ucmVsb2FkKCl9LHtvbmNlOiEwfSk7cmV0dXJufVF0KCl9KX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7aWYoIVJlKCkmJiFyLnNpZGViYXJQaW5uZWQmJiFyLnNpZGViYXJDb2xsYXBzZWQmJnIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXt2YXIgdD1lLnRhcmdldDshdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCl8fHQuY2xvc2VzdCgiI3Nlc3Npb25zLWRyYXdlciIpfHx0LmNsb3Nlc3QoIiNzZXNzaW9ucy10b2dnbGUtYnV0dG9uIil8fHQuY2xvc2VzdCgiLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlIil8fHQuY2xvc2VzdCgiLnNpZGViYXItdGlsZS1idWJibGUiKXx8dC5jbG9zZXN0KCIubW9kYWwtYmFja2Ryb3AsIC5tb2RhbC1vdmVybGF5LCAubW9kYWwtY29udGFpbmVyLCBbcm9sZT0nZGlhbG9nJ10sIFtyb2xlPSdtZW51J10sIC50b3BiYXItbW9yZS1tZW51LCAuc2lkZWJhci1oZWFkZXItb3ZlcmZsb3csIC5mb2xkZXItcGlja2VyLWRyb3Bkb3duLCAucGF0aC1zdWdnZXN0aW9ucywgLnBlcm1pc3Npb24tcHJvbXB0LW92ZXJsYXksIC5yZXN0YXJ0LW92ZXJsYXkiKXx8V20oKX19LCEwKSxQZigpLF9mKCk7ZnVuY3Rpb24gUXQoZSl7dmFyIHQ9ZSYmZS5za2lwU2hlbGxDaHJvbWUsbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwIiksaT1yLmNvbmZpZyE9PW51bGwsYT1yLm1vZGFsT3Blbix1PSFpfHwhIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZih1JiZ3cigpLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJuby10cmFuc2l0aW9uIiksci5zaWRlYmFyUGlubmVkJiYhci5zaWRlYmFyQ29sbGFwc2VkJiYhUmUoKSYmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApKSxuLmlubmVySFRNTD1pP1JmKCk6amYoKSx3dCgpLHFmKCksUnIoKSxIaSgpLFhuKER0KCkpLEtpKCksdHx8anIoKSxpJiZyLmZpbGVQYW5lbE9wZW4mJkx0KCksZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm5vLXRyYW5zaXRpb24iKX0pLGEmJnIubW9kYWxPcGVuKXt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2lmKG8pe28uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpO3MmJihzLnZhbHVlPXIuY3dkVmFsdWUpLGVyKCl9fWlmKGkmJnIuc2VsZWN0ZWRJZCYmci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQmJkJuKHIuc2VsZWN0ZWRJZCksaSl7dmFyIGw9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09ci5zZWxlY3RlZElkfSk7cXUobCl9YXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1jd2QiKSksYXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLXBhdGgiKSksYXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoIikpLGp0KCl9ZnVuY3Rpb24gTmYoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KSx0PWUmJmUuYXBwcm92YWxTdGF0cztyZXR1cm4hdHx8dC50b3RhbD09PTA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cyBoaWRkZW4iIGlkPSJhcHByb3ZhbC1zdGF0cyI+PC9zcGFuPic6JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cyIgaWQ9ImFwcHJvdmFsLXN0YXRzIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtZGl2aWRlciI+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgaWQ9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiB0aXRsZT0iXHU2NzJDXHU2QjIxXHU0RjFBXHU4QkREXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU3RURGXHU4QkExIj48c3ZnIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1pY29uIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ii8+PC9zdmc+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXRvdGFsIj4nK3QudG90YWwrJzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIiBpZD0iYXBwcm92YWwtc3RhdHMtcG9wdXAiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cC10aXRsZSI+XHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU3RURGXHU4QkExPC9zcGFuPicrKHQuY29tbWFuZD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigidGVybWluYWwiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1NDdEXHU0RUU0XHU2MjY3XHU4ODRDPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrdC5jb21tYW5kKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyh0LmZpbGU+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1YoImVkaXQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU2NTg3XHU0RUY2XHU1MTk5XHU1MTY1PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrdC5maWxlKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyh0LnRvb2w+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1YoIndyZW5jaCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTUxNzZcdTRFRDZcdTVERTVcdTUxNzc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LnRvb2wrIjwvc3Bhbj48L3NwYW4+IjoiIikrJzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3cgYXBwcm92YWwtc3RhdHMtcm93LXRvdGFsIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigic2lnbWEiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1NDA4XHU4QkExPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrdC50b3RhbCsiPC9zcGFuPjwvc3Bhbj48L3NwYW4+PC9zcGFuPiJ9ZnVuY3Rpb24gamYoKXtyZXR1cm4gci5sb2dpbkNoZWNrZWQ/JzxkaXYgY2xhc3M9ImxvZ2luLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0ibG9naW4tY2FyZCI+PGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvLWljb24iPlc8L2Rpdj48c3BhbiBjbGFzcz0ibG9naW4tbG9nby10ZXh0Ij5XYW5kPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImxvZ2luLXN1YnRpdGxlIj5cdTU3MjhcdTZENEZcdTg5QzhcdTU2NjhcdTRFMkRcdThGRDBcdTg4NENcdTY3MkNcdTY3M0FcdTdFQzhcdTdBRUY8L2Rpdj48L2Rpdj48Zm9ybSBpZD0ibG9naW4tZm9ybSIgY2xhc3M9ImxvZ2luLWJvZHkiIGF1dG9jb21wbGV0ZT0ib24iPjxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ1c2VybmFtZSIgYXV0b2NvbXBsZXRlPSJ1c2VybmFtZSIgdmFsdWU9IndhbmQiIHRhYmluZGV4PSItMSIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi05OTk5cHg7d2lkdGg6MXB4O2hlaWdodDoxcHg7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmUiIHJlYWRvbmx5IC8+PHAgY2xhc3M9ImxvZ2luLWhpbnQiPlx1OEY5M1x1NTE2NSBXYW5kIFx1OEJCRlx1OTVFRVx1NUJDNlx1NzgwMVx1NEVFNVx1OEZEQlx1NTE2NVx1NjNBN1x1NTIzNlx1NTNGMFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJwYXNzd29yZCI+XHU1QkM2XHU3ODAxPC9sYWJlbD48ZGl2IGNsYXNzPSJwYXNzd29yZC1maWVsZCI+PGlucHV0IGlkPSJwYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmaWVsZC1pbnB1dCBwYXNzd29yZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1OEJCRlx1OTVFRVx1NUJDNlx1NzgwMSIgYXV0b2NvbXBsZXRlPSJjdXJyZW50LXBhc3N3b3JkIiBkYXRhLWVycm9yPSJmYWxzZSIgYXJpYS1kZXNjcmliZWRieT0icGFzc3dvcmQtaGludCBsb2dpbi1lcnJvciIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgLz48YnV0dG9uIGlkPSJ0b2dnbGUtcGFzc3dvcmQtYnV0dG9uIiB0eXBlPSJidXR0b24iIGNsYXNzPSJwYXNzd29yZC10b2dnbGUiIGFyaWEtbGFiZWw9Ilx1NjYzRVx1NzkzQVx1NUJDNlx1NzgwMSIgYXJpYS1wcmVzc2VkPSJmYWxzZSI+XHU2NjNFXHU3OTNBPC9idXR0b24+PC9kaXY+PHAgaWQ9InBhc3N3b3JkLWhpbnQiIGNsYXNzPSJoaW50Ij5cdTRGN0ZcdTc1MjhcdTRGNjBcdTU3MjggV2FuZCBcdTRFMkRcdThCQkVcdTdGNkVcdTc2ODRcdThCQkZcdTk1RUVcdTVCQzZcdTc4MDFcdTMwMDI8L3A+PHAgaWQ9ImxvZ2luLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iIHJvbGU9ImFsZXJ0Ij48L3A+PC9kaXY+PGRpdiBpZD0ibG9naW4tY2VydC1oaW50IiBjbGFzcz0ibG9naW4tY2VydC1oaW50IGhpZGRlbiIgcm9sZT0iYWxlcnQiPjxkaXYgY2xhc3M9ImxvZ2luLWNlcnQtaGludC10aXRsZSI+XHU4QkMxXHU0RTY2XHU0RTBEXHU1M0Q3XHU0RkUxXHU0RUZCXHVGRjBDXHU3NjdCXHU1RjU1XHU2MDAxXHU2NUUwXHU2Q0Q1XHU0RkREXHU1QjU4PC9kaXY+PHAgY2xhc3M9ImxvZ2luLWNlcnQtaGludC1ib2R5Ij5cdTVCQzZcdTc4MDFcdTY2MkZcdTVCRjlcdTc2ODRcdUZGMENcdTRGNDZcdTVGNTNcdTUyNEQgSFRUUFMgXHU4QkMxXHU0RTY2XHU0RTBEXHU1M0Q3XHU2RDRGXHU4OUM4XHU1NjY4XHU0RkUxXHU0RUZCXHVGRjBDXHU2RDRGXHU4OUM4XHU1NjY4XHU1NkUwXHU2QjY0XHU2MkQyXHU3RUREXHU0RkREXHU1QjU4XHU3NjdCXHU1RjU1IENvb2tpZVx1RkYwQ1x1NjI0MFx1NEVFNVx1OEZEQlx1NEUwRFx1NEU4Nlx1NjNBN1x1NTIzNlx1NTNGMFx1MzAwMjxici8+XHU4OUUzXHU1MUIzXHU1MjlFXHU2Q0Q1XHVGRjA4XHU0RUZCXHU5MDA5XHU1MTc2XHU0RTAwXHVGRjA5XHVGRjFBXHU2NTM5XHU3NTI4IEhUVFAgXHU4QkJGXHU5NUVFXHU2NzJDXHU2NzBEXHU1MkExXHVGRjFCXHU2MjE2XHU2MjhBXHU2NzJDXHU2NzBEXHU1MkExXHU4QkMxXHU0RTY2XHU4QkJFXHU0RTNBXHUzMDBDXHU1M0Q3XHU0RkUxXHU0RUZCXHUzMDBEXHVGRjA4XHU2M0E4XHU4MzUwIG1rY2VydFx1RkYwOVx1RkYxQlx1NjIxNlx1NTcyOFx1NjcyQ1x1NjczQVx1NUMwNlx1OEJFNVx1ODFFQVx1N0I3RVx1OEJDMVx1NEU2Nlx1OEJCRVx1NEUzQVx1NUI4Q1x1NTE2OFx1NEZFMVx1NEVGQlx1NTQwRVx1OTFDRFx1OEJENVx1MzAwMjwvcD48YSBpZD0ibG9naW4tY2VydC1odHRwLWxpbmsiIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1ibG9jayIgaHJlZj0iIyIgcmVsPSJub29wZW5lciI+XHU2NTM5XHU3NTI4IEhUVFAgXHU4QkJGXHU5NUVFPC9hPjwvZGl2PjxidXR0b24gaWQ9ImxvZ2luLWJ1dHRvbiIgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+XHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwPC9idXR0b24+JysodnUoKT8nPGJ1dHRvbiBpZD0ibG9naW4tc3dpdGNoLXNlcnZlci1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1ibG9jayBsb2dpbi1zd2l0Y2gtc2VydmVyIiB0eXBlPSJidXR0b24iPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMiIgeT0iMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PHJlY3QgeD0iMiIgeT0iMTMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIvPjxsaW5lIHgxPSI2IiB5MT0iNyIgeDI9IjYuMDEiIHkyPSI3Ii8+PGxpbmUgeDE9IjYiIHkxPSIxNyIgeDI9IjYuMDEiIHkyPSIxNyIvPjwvc3ZnPjxzcGFuPlx1NTIwN1x1NjM2Mlx1NjcwRFx1NTJBMVx1NTY2ODwvc3Bhbj48L2J1dHRvbj4nOiIiKSsiPC9mb3JtPjwvZGl2PjwvZGl2PiI6JzxkaXYgY2xhc3M9ImxvZ2luLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0ibG9naW4tY2FyZCBsb2dpbi1jYXJkLWxvYWRpbmciPjxkaXYgY2xhc3M9ImxvZ2luLWhlYWRlciI+PGRpdiBjbGFzcz0ibG9naW4tbG9nbyI+PGRpdiBjbGFzcz0ibG9naW4tbG9nby1pY29uIj5XPC9kaXY+PHNwYW4gY2xhc3M9ImxvZ2luLWxvZ28tdGV4dCI+V2FuZDwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJsb2dpbi1zdWJ0aXRsZSI+XHU2QjYzXHU1NzI4XHU2MDYyXHU1OTBEXHU3NjdCXHU1RjU1XHU3MkI2XHU2MDAxPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibG9naW4tYm9keSI+PGRpdiBjbGFzcz0ibG9naW4tc3RhdHVzIj48c3BhbiBjbGFzcz0ibG9naW4tc3Bpbm5lciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48ZGl2PjxwIGNsYXNzPSJsb2dpbi1oaW50Ij5cdTZCNjNcdTU3MjhcdTY4QzBcdTY3RTVcdTY3MkNcdTU3MzBcdTc2N0JcdTVGNTVcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTdBMERcdTUwMTlcdTMwMDI8L3A+PHAgY2xhc3M9ImxvZ2luLW11dGVkIj5cdTU5ODJcdTY3OUNcdTRGNjBcdTUyMUFcdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjJcdUZGMENcdThGRDlcdTY2MkZcdTZCNjNcdTVFMzhcdTczQjBcdThDNjFcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+J31mdW5jdGlvbiBSZigpe3ZhciBlPSI8XC9zY3JpcHQ+Iix0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihnKXtyZXR1cm4gZy5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dD8kbih0LmNvbW1hbmQpOiJcdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQiLGk9dD90Lm1vZGUrIiB8ICIrdC5zdGF0dXM6Ilx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQiIsYT1yLnNlbGVjdGVkSWQmJnIuZHJhZnRzW3Iuc2VsZWN0ZWRJZF18fCIiLHU9ci5zZXNzaW9uc0RyYXdlck9wZW4/IiBvcGVuIjoiIixvPWVvKCk/IiBvcGVuIjoiIixzPUJtKCksbD1tdChzLHIuY2hhdE1vZGUpLGQ9UmUoKSxmPSEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZCxjPWZ8fCFkJiYoISFyLnNpZGViYXJQaW5uZWR8fCEhci5zZXNzaW9uc0RyYXdlck9wZW4pLHY9Zj8iIHNpZGViYXItY29sbGFwc2VkIjoiIixoPWY/IiBjb2xsYXBzZWQiOiIiO3JldHVybic8ZGl2IGNsYXNzPSJhcHAtY29udGFpbmVyIj48ZGl2IGlkPSJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiIGNsYXNzPSJkcmF3ZXItYmFja2Ryb3AnK28rJyI+PC9kaXY+PGRpdiBjbGFzcz0ibWFpbi1sYXlvdXQnKyhyLnNlc3Npb25zRHJhd2VyT3Blbj8iIHNpZGViYXItb3BlbiI6IiIpKyhjPyIgc2lkZWJhci1waW5uZWQiOiIiKSt2KyciPjxhc2lkZSBpZD0ic2Vzc2lvbnMtZHJhd2VyIiBjbGFzcz0ic2lkZWJhcicrdSsoYz8iIHBpbm5lZCI6IiIpK2grJyI+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXIiPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLW1haW4iPjxkaXYgY2xhc3M9InRvcGJhci1sb2dvLWljb24iPlc8L2Rpdj48c3BhbiBjbGFzcz0ic2lkZWJhci10aXRsZSI+XHU0RjFBXHU4QkREPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXNzaW9uLWNvdW50IiBpZD0ic2Vzc2lvbi1jb3VudCI+JytTdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItYWN0aW9ucyI+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItbW9yZSI+PGJ1dHRvbiBpZD0ic2lkZWJhci1tb3JlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY2RjRcdTU5MUFcdTY0Q0RcdTRGNUMiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSI1IiByPSIxLjUiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxLjUiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjE5IiByPSIxLjUiLz48L3N2Zz48L2J1dHRvbj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1vdmVyZmxvdyIgaWQ9InNpZGViYXItb3ZlcmZsb3ctbWVudSI+PGJ1dHRvbiBjbGFzcz0ib3ZlcmZsb3ctaXRlbSIgaWQ9InNpZGViYXItaG9tZS1idG4iIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA5bDktNyA5IDd2MTFhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6Ii8+PHBvbHlsaW5lIHBvaW50cz0iOSAyMiA5IDEyIDE1IDEyIDE1IDIyIi8+PC9zdmc+PHNwYW4+XHU1NkRFXHU1MjMwXHU5OTk2XHU5ODc1PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9Im92ZXJmbG93LWl0ZW0iIGlkPSJzaWRlYmFyLXJlZnJlc2gtYnRuIiB0eXBlPSJidXR0b24iPjxzdmcgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBvbHlsaW5lIHBvaW50cz0iMjMgNCAyMyAxMCAxNyAxMCIvPjxwYXRoIGQ9Ik0yMC40OSAxNWE5IDkgMCAxIDEtMi4xMi05LjM2TDIzIDEwIi8+PC9zdmc+PHNwYW4+XHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxidXR0b24gaWQ9InNpZGViYXItcGluLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItcGluLXRvZ2dsZScrKHIuc2lkZWJhclBpbm5lZD8iIHBpbm5lZCI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicrKHIuc2lkZWJhclBpbm5lZD8iXHU1REYyXHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCXHVGRjA4XHU3MEI5XHU1MUZCXHU4OUUzXHU5NjY0XHU5NTAxXHU1QjlBXHVGRjA5IjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIikrJyIgYXJpYS1sYWJlbD0iJysoci5zaWRlYmFyUGlubmVkPyJcdTg5RTNcdTk2NjRcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0IiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSsnIiBhcmlhLXByZXNzZWQ9IicrKHIuc2lkZWJhclBpbm5lZD8idHJ1ZSI6ImZhbHNlIikrJyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjEyIiB5MT0iMTciIHgyPSIxMiIgeTI9IjIyIi8+PHBhdGggZD0iTTUgMTdoMTR2LTEuNzZhMiAyIDAgMCAwLTEuMTEtMS43OWwtMS43OC0uOUEyIDIgMCAwIDEgMTUgMTAuNzZWNmgxYTIgMiAwIDAgMCAwLTRIOGEyIDIgMCAwIDAgMCA0aDF2NC43NmEyIDIgMCAwIDEtMS4xMSAxLjc5bC0xLjc4LjlBMiAyIDAgMCAwIDUgMTUuMjR6Ii8+PC9zdmc+PC9idXR0b24+PGJ1dHRvbiBpZD0ic2lkZWJhci1jb2xsYXBzZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLWNvbGxhcHNlLXRvZ2dsZScrKGY/IiBjb2xsYXBzZWQiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSInKyhmPyJcdTVDNTVcdTVGMDBcdTRFM0FcdTUxNjhcdTVDM0FcdTVCRjgiOiJcdTY1MzZcdThENzdcdTRFM0FcdTdBODRcdTY3NjEiKSsnIiBhcmlhLWxhYmVsPSInKyhmPyJcdTVDNTVcdTVGMDBcdTRFM0FcdTUxNjhcdTVDM0FcdTVCRjgiOiJcdTY1MzZcdThENzdcdTRFM0FcdTdBODRcdTY3NjEiKSsnIj4nKyhmPyc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjEwIDYgMTYgMTIgMTAgMTgiLz48bGluZSB4MT0iMjAiIHkxPSI1IiB4Mj0iMjAiIHkyPSIxOSIvPjwvc3ZnPic6Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iMTQgNiA4IDEyIDE0IDE4Ii8+PGxpbmUgeDE9IjQiIHkxPSI1IiB4Mj0iNCIgeTI9IjE5Ii8+PC9zdmc+JykrJzwvYnV0dG9uPjxidXR0b24gaWQ9ImNsb3NlLWRyYXdlci1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIHNpZGViYXItY2xvc2UgZHJhd2VyLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTgzRENcdTUzNTUiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyLWJvZHkiPjxkaXYgaWQ9InNlc3Npb25zLXBhbmVsIj48ZGl2IGNsYXNzPSJzZXNzaW9ucy1saXN0IiBpZD0ic2Vzc2lvbnMtbGlzdCI+JytoYSgpKyc8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyLWZvb3RlciI+PGJ1dHRvbiBpZD0iZHJhd2VyLW5ldy1zZXNzaW9uLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPjxzcGFuPis8L3NwYW4+IFx1NjVCMFx1NEYxQVx1OEJERDwvYnV0dG9uPjxkaXYgY2xhc3M9InNpZGViYXItZm9vdGVyLWFjdGlvbnMiPjxidXR0b24gaWQ9ImZpbGUtcGFuZWwtdG9nZ2xlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtJysoci5maWxlUGFuZWxPcGVuPyIgYWN0aXZlIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU2NTg3XHU0RUY2Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPjwvc3ZnPjxzcGFuPlx1NjU4N1x1NEVGNjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJzZXR0aW5ncy1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU4QkJFXHU3RjZFIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjMiLz48cGF0aCBkPSJNMTkuNCAxNWExLjY1IDEuNjUgMCAwIDAgLjMzIDEuODJsLjA2LjA2YTIgMiAwIDAgMS0yLjgzIDIuODNsLS4wNi0uMDZhMS42NSAxLjY1IDAgMCAwLTEuODItLjMzIDEuNjUgMS42NSAwIDAgMC0xIDEuNTFWMjFhMiAyIDAgMCAxLTQgMHYtLjA5QTEuNjUgMS42NSAwIDAgMCA5IDE5LjRhMS42NSAxLjY1IDAgMCAwLTEuODIuMzNsLS4wNi4wNmEyIDIgMCAwIDEtMi44My0yLjgzbC4wNi0uMDZBMS42NSAxLjY1IDAgMCAwIDQuNjggMTVhMS42NSAxLjY1IDAgMCAwLTEuNTEtMUgzYTIgMiAwIDAgMSAwLTRoLjA5QTEuNjUgMS42NSAwIDAgMCA0LjYgOWExLjY1IDEuNjUgMCAwIDAtLjMzLTEuODJsLS4wNi0uMDZhMiAyIDAgMCAxIDIuODMtMi44M2wuMDYuMDZBMS42NSAxLjY1IDAgMCAwIDkgNC42OGExLjY1IDEuNjUgMCAwIDAgMS0xLjUxVjNhMiAyIDAgMCAxIDQgMHYuMDlhMS42NSAxLjY1IDAgMCAwIDEgMS41MSAxLjY1IDEuNjUgMCAwIDAgMS44Mi0uMzNsLjA2LS4wNmEyIDIgMCAwIDEgMi44MyAyLjgzbC0uMDYuMDZBMS42NSAxLjY1IDAgMCAwIDE5LjQgOWExLjY1IDEuNjUgMCAwIDAgMS41MSAxSDIxYTIgMiAwIDAgMSAwIDRoLS4wOWExLjY1IDEuNjUgMCAwIDAtMS41MSAxeiIvPjwvc3ZnPjxzcGFuPlx1OEJCRVx1N0Y2RTwvc3Bhbj48L2J1dHRvbj4nKyh3bSgpPyc8YnV0dG9uIGlkPSJiYWNrLXRvLW5hdGl2ZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLWJhY2stdG8tbmF0aXZlIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdThGRDRcdTU2REUgQXBwIFx1NTM5Rlx1NzUxRlx1NzU0Q1x1OTc2MiI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIxMCIgeT0iMyIgd2lkdGg9IjExIiBoZWlnaHQ9IjE4IiByeD0iMiIvPjxsaW5lIHgxPSIxNCIgeTE9IjE3IiB4Mj0iMTciIHkyPSIxNyIvPjxwb2x5bGluZSBwb2ludHM9IjcgOCAzIDEyIDcgMTYiLz48L3N2Zz48c3Bhbj5cdThGRDRcdTU2REVBcHA8L3NwYW4+PC9idXR0b24+JzoiIikrKHZ1KCk/JzxidXR0b24gaWQ9InN3aXRjaC1zZXJ2ZXItYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1zd2l0Y2gtc2VydmVyIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTUyMDdcdTYzNjJcdTY3MERcdTUyQTFcdTU2NjgiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHJlY3QgeD0iMiIgeT0iMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PHJlY3QgeD0iMiIgeT0iMTMiIHdpZHRoPSIyMCIgaGVpZ2h0PSI4IiByeD0iMiIvPjxsaW5lIHgxPSI2IiB5MT0iNyIgeDI9IjYuMDEiIHkyPSI3Ii8+PGxpbmUgeDE9IjYiIHkxPSIxNyIgeDI9IjYuMDEiIHkyPSIxNyIvPjwvc3ZnPjxzcGFuPlx1NTIwN1x1NjM2Mjwvc3Bhbj48L2J1dHRvbj4nOiIiKSsnPGJ1dHRvbiBpZD0ibG9nb3V0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItbG9nb3V0IiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTkwMDBcdTUxRkFcdTc2N0JcdTVGNTUiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg0Ii8+PHBvbHlsaW5lIHBvaW50cz0iMTYgMTcgMjEgMTIgMTYgNyIvPjxsaW5lIHgxPSIyMSIgeTE9IjEyIiB4Mj0iOSIgeTI9IjEyIi8+PC9zdmc+PHNwYW4+XHU5MDAwXHU1MUZBPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjwvYXNpZGU+PG1haW4gY2xhc3M9Im1haW4tY29udGVudCI+PGRpdiBjbGFzcz0ibWFpbi1oZWFkZXItcm93Ij48ZGl2IGNsYXNzPSJ0b3BiYXItbGVmdCI+PGJ1dHRvbiBpZD0ic2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIgY2xhc3M9ImZsb2F0aW5nLXNpZGViYXItdG9nZ2xlJysoci5zZXNzaW9uc0RyYXdlck9wZW4/IiBhY3RpdmUiOiIiKSsnIiBhcmlhLWxhYmVsPSJcdTUyMDdcdTYzNjJcdTRGMUFcdThCRERcdTRGQTdcdTY4MEYiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9ImhhbWJ1cmdlci1pY29uIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L3NwYW4+PC9idXR0b24+PHNwYW4gY2xhc3M9InRvcGJhci1icmFuZCIgYXJpYS1oaWRkZW49InRydWUiPlc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idG9wYmFyLWNlbnRlciI+JysodD8nPHNwYW4gY2xhc3M9InRvcGJhci1zZXNzaW9uLXRpdGxlIiB0aXRsZT0iJytwKHQuZGVzY3JpcHRpb258fHQuY29tbWFuZHx8IiIpKyciPicrcCh0LnRpdGxlfHwkbih0LmNvbW1hbmQpKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXNzaW9uLXN0YXR1cy1waWxsICcra28odCkrJyIgdGl0bGU9IicrcCh2cih0KSkrJyI+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLWRvdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXNzaW9uLXN0YXR1cy10ZXh0Ij4nK3AodnIodCkpKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjdXJyZW50LXRhc2sgaGlkZGVuIiBpZD0iY3VycmVudC10YXNrIj48L3NwYW4+JysodC5jd2Q/Z3QodC5jd2QsInRvcGJhci1jd2QiLCcgaWQ9InRvcGJhci1jd2QiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiJyk6IiIpOic8c3BhbiBjbGFzcz0idG9wYmFyLXRhZ2xpbmUiPldhbmQgXHU2M0E3XHU1MjM2XHU1M0YwPC9zcGFuPjxzcGFuIGNsYXNzPSJjdXJyZW50LXRhc2sgaGlkZGVuIiBpZD0iY3VycmVudC10YXNrIj48L3NwYW4+JykrJzwvZGl2PjxkaXYgY2xhc3M9InRvcGJhci1yaWdodCI+PGJ1dHRvbiBpZD0idG9wYmFyLWZpbGUtYnV0dG9uIiBjbGFzcz0idG9wYmFyLWJ0biBzcXVhcmUnKyhyLmZpbGVQYW5lbE9wZW4/IiBhY3RpdmUiOiIiKSsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NjU4N1x1NEVGNiIgdGl0bGU9Ilx1NjdFNVx1NzcwQlx1NjU4N1x1NEVGNlx1RkYwOFx1NTNFRlx1NEZFRVx1NjUzOVx1OERFRlx1NUY4NFx1RkYwOSI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMjIgMTlhMiAyIDAgMCAxLTIgMkg0YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDVsMiAzaDlhMiAyIDAgMCAxIDIgMnoiLz48L3N2Zz48L2J1dHRvbj48c3BhbiBpZD0idG9wYmFyLWdpdC1zbG90IiBjbGFzcz0idG9wYmFyLWdpdC1zbG90Ij4nK2JvKCkrIjwvc3Bhbj4iKyh0P2VjKHQpOiIiKSsnPC9kaXY+PC9kaXY+PGRpdiBpZD0iZmlsZS1wYW5lbC1iYWNrZHJvcCIgY2xhc3M9ImZpbGUtcGFuZWwtYmFja2Ryb3AnKyhyLmZpbGVQYW5lbE9wZW4/IiBvcGVuIjoiIikrJyI+PC9kaXY+PGRpdiBpZD0iZmlsZS1zaWRlLXBhbmVsIiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsJysoci5maWxlUGFuZWxPcGVuPyIgb3BlbiI6IiIpKyciPjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1oZWFkZXIiPjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC10aXRsZS1ncm91cCI+PHNwYW4gY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1pY29uIj4nK01lKCJmb2xkZXItb3BlbiIse3NpemU6MTZ9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtdGl0bGUiPlx1NjU4N1x1NEVGNjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaGVhZGVyLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1pY29uYnRuIiBpZD0iZmlsZS1leHBsb3Jlci1yZWZyZXNoIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTUyMzdcdTY1QjAiIGFyaWEtbGFiZWw9Ilx1NTIzN1x1NjVCMFx1NjU4N1x1NEVGNlx1NTIxN1x1ODg2OCI+JytNZSgicmVmcmVzaCIse3NpemU6MTV9KSsnPC9idXR0b24+PGJ1dHRvbiBpZD0iZmlsZS1zaWRlLXBhbmVsLWNsb3NlIiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb25idG4gY2xvc2UiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEXHU2NTg3XHU0RUY2XHU5NzYyXHU2NzdGIiB0aXRsZT0iXHU1MTczXHU5NUVEIj4nK01lKCJ4Iix7c2l6ZToxNn0pKyc8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtYm9keSI+PGRpdiBjbGFzcz0iZmlsZS1leHBsb3Jlci1oZWFkZXIiPjxidXR0b24gY2xhc3M9ImZpbGUtZXhwbG9yZXItdXAiIGlkPSJmaWxlLWV4cGxvcmVyLXVwIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdThGRDRcdTU2REVcdTRFMEFcdTdFQTdcdTc2RUVcdTVGNTUiIGFyaWEtbGFiZWw9Ilx1OEZENFx1NTZERVx1NEUwQVx1N0VBN1x1NzZFRVx1NUY1NSI+JytNZSgiYXJyb3ctdXAiLHtzaXplOjE1fSkrJzwvYnV0dG9uPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmlsZS1leHBsb3Jlci1wYXRoIiBpZD0iZmlsZS1leHBsb3Jlci1jd2QiIHZhbHVlPSInK3AodCYmdC5jd2Q/dC5jd2Q6YW4oKSkrJyIgdGl0bGU9IicrcCh0JiZ0LmN3ZD90LmN3ZDphbigpKSsnIiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU4REVGXHU1Rjg0XHU1RTc2XHU1NkRFXHU4RjY2Li4uIiBzcGVsbGNoZWNrPSJmYWxzZSIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGFyaWEtbGFiZWw9Ilx1NUY1M1x1NTI0RFx1OERFRlx1NUY4NFx1RkYwQ1x1NTNFRlx1NzZGNFx1NjNBNVx1NEZFRVx1NjUzOVx1NTQwRVx1NTZERVx1OEY2NiIgLz48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLXNlYXJjaC1ib3giPjxzcGFuIGNsYXNzPSJmaWxlLXNlYXJjaC1pY29uIj4nK01lKCJzZWFyY2giLHtzaXplOjE0fSkrJzwvc3Bhbj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZpbGUtc2VhcmNoLWlucHV0IiBjbGFzcz0iZmlsZS1zZWFyY2gtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdTY0MUNcdTdEMjJcdTVGNTNcdTUyNERcdTc2RUVcdTVGNTVcdTIwMjYiIGF1dG9jb21wbGV0ZT0ib2ZmIiBhdXRvY29ycmVjdD0ib2ZmIiBhdXRvY2FwaXRhbGl6ZT0ib2ZmIiBzcGVsbGNoZWNrPSJmYWxzZSIgLz48YnV0dG9uIGNsYXNzPSJmaWxlLXNlYXJjaC1jbGVhciIgaWQ9ImZpbGUtc2VhcmNoLWNsZWFyIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NkUwNVx1OTY2NFx1NjQxQ1x1N0QyMiIgdGl0bGU9Ilx1NkUwNVx1OTY2NCI+JytNZSgieCIse3NpemU6MTN9KSsnPC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciIgaWQ9ImZpbGUtZXhwbG9yZXIiPicrX2QodCYmdC5jd2Q/dC5jd2Q6YW4oKSkrJzwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im91dHB1dCIgY2xhc3M9InRlcm1pbmFsLWNvbnRhaW5lcicrKHIuc2VsZWN0ZWRJZD8iIjoiIGhpZGRlbiIpKycgYWN0aXZlIj48ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5IiBhcmlhLWxhYmVsPSJcdTdFQzhcdTdBRUZcdTdGMjlcdTY1M0VcdTYzQTdcdTRFRjYiPjxidXR0b24gaWQ9InRlcm1pbmFsLXNjYWxlLWRvd24tdG9wIiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG4gdGVybWluYWwtc2NhbGUtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTdGMjlcdTVDMEYiPlx1MjIxMjwvYnV0dG9uPjxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWxhYmVsIHRlcm1pbmFsLXNjYWxlLWxhYmVsIiBpZD0idGVybWluYWwtc2NhbGUtbGFiZWwtdG9wIj4nK01hdGgucm91bmQoci50ZXJtaW5hbFNjYWxlKjEwMCkrJyU8L3NwYW4+PGJ1dHRvbiBpZD0idGVybWluYWwtc2NhbGUtdXAtdG9wIiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG4gdGVybWluYWwtc2NhbGUtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY1M0VcdTU5MjciPis8L2J1dHRvbj48c3BhbiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1kaXZpZGVyIj48L3NwYW4+PGJ1dHRvbiBpZD0icGFnZS1yZWZyZXNoLWJ0biIgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjIiPlx1MjFCQjwvYnV0dG9uPjwvZGl2PjxidXR0b24gaWQ9InRlcm1pbmFsLWp1bXAtYm90dG9tIiBjbGFzcz0idGVybWluYWwtanVtcC1ib3R0b20nKyhyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT8iIHZpc2libGUiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTU2REVcdTUyMzBcdTVFOTVcdTkwRTgiIGFyaWEtbGFiZWw9Ilx1NTZERVx1NTIzMFx1NUU5NVx1OTBFOCI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTggMy41djlNMy41IDhsNC41IDQuNUwxMi41IDgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJjaGF0LW91dHB1dCIgY2xhc3M9ImNoYXQtY29udGFpbmVyIGhpZGRlbiI+PGRpdiBpZD0iY2hhdC1mb2xkLWJhciIgY2xhc3M9ImNoYXQtZm9sZC1iYXIgaGlkZGVuIiBhcmlhLWxpdmU9InBvbGl0ZSI+PC9kaXY+PGJ1dHRvbiBpZD0iY2hhdC11bnJlYWQtYnViYmxlIiBjbGFzcz0iY2hhdC11bnJlYWQtYnViYmxlIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTU2REVcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiIGFyaWEtbGFiZWw9Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiI+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWJ1YmJsZS1pY29uIj48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAzLjV2OU0zLjUgOGw0LjUgNC41TDEyLjUgOCIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtYnViYmxlLWNvdW50IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImJsYW5rLWNoYXQiIGNsYXNzPSJibGFuay1jaGF0Jysoci5zZWxlY3RlZElkPyIgaGlkZGVuIjoiIikrJyI+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1pbm5lciI+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1sb2dvIj5XPC9kaXY+PGgyIGNsYXNzPSJibGFuay1jaGF0LXRpdGxlIj5XYW5kPC9oMj48cCBjbGFzcz0iYmxhbmstY2hhdC1zdWJ0aXRsZSI+XHU2NTJGXHU2MzAxXHU3RUM4XHU3QUVGIFBUWSBcdTRGMUFcdThCRERcdTRFMEVcdTdFRDNcdTY3ODRcdTUzMTYgY2hhdCBcdTRGMUFcdThCRERcdUZGMENcdTRFMjRcdTc5Q0RcdTZBMjFcdTVGMEZcdTUzRUZcdTVFNzZcdTVCNThcdTMwMDI8L3A+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC10b29scyI+PGJ1dHRvbiBjbGFzcz0iYmxhbmstY2hhdC10b29sLWJ0biIgaWQ9IndlbGNvbWUtdG9vbC1jbGF1ZGUiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiI+JytWKCJ0ZXJtaW5hbCIse3NpemU6MTYsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj5cdTY1QjBcdTVFRkFcdTdFQzhcdTdBRUZcdTRGMUFcdThCREQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLWNvZGV4IiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ0b29sLWljb24gdG9vbC1pY29uLXRleHQiPlx1MjMxODwvc3Bhbj5cdTY1QjBcdTVFRkEgQ29kZXggXHU0RjFBXHU4QkREPC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iYmxhbmstY2hhdC10b29sLWJ0biIgaWQ9IndlbGNvbWUtdG9vbC1zdHJ1Y3R1cmVkIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ0b29sLWljb24iPicrVigiY2hhdCIse3NpemU6MTYsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj5cdTY1QjBcdTVFRkFcdTdFRDNcdTY3ODRcdTUzMTZcdTRGMUFcdThCREQ8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC13cmFwIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZCIgaWQ9ImJsYW5rLWNoYXQtY3dkIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiB0aXRsZT0iXHU3MEI5XHU1MUZCXHU1MjA3XHU2MzYyXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1Ij48c3BhbiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaWNvbiI+JytWKCJmb2xkZXIiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOH0pKyI8L3NwYW4+IitndCgkZSgpLCJibGFuay1jaGF0LWN3ZC1wYXRoIiwnIGlkPSJibGFuay1jaGF0LWN3ZC1wYXRoIicpKyc8c3BhbiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtYXJyb3ciIGlkPSJibGFuay1jaGF0LWN3ZC1hcnJvdyI+JytWKCJjaGV2cm9uRG93biIse3NpemU6MTEsc3Ryb2tlV2lkdGg6Mn0pKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtZHJvcGRvd24gaGlkZGVuIiBpZD0iYmxhbmstY2hhdC1jd2QtZHJvcGRvd24iPjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImlucHV0LXBhbmVsJysoci5zZWxlY3RlZElkPyIiOiIgaGlkZGVuIikrJyI+PGRpdiBjbGFzcz0iY29tcG9zZXItdG9wLXJvdyI+PGRpdiBpZD0idG9kby1wcm9ncmVzcyIgY2xhc3M9InRvZG8tcHJvZ3Jlc3MgaGlkZGVuIj48ZGl2IGNsYXNzPSJ0b2RvLXByb2dyZXNzLWhlYWRlciIgaWQ9InRvZG8tcHJvZ3Jlc3MtdG9nZ2xlIj48ZGl2IGNsYXNzPSJ0b2RvLXByb2dyZXNzLWZpbGwiIGlkPSJ0b2RvLXByb2dyZXNzLWZpbGwiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iLS1wcm9ncmVzczowIj48L2Rpdj48ZGl2IGNsYXNzPSJ0b2RvLXByb2dyZXNzLWxlZnQiPjxzcGFuIGNsYXNzPSJ0b2RvLXByb2dyZXNzLXJpbmciIGlkPSJ0b2RvLXByb2dyZXNzLXJpbmciIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0iLS1wcm9ncmVzczowIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDM2IDM2Ij48Y2lyY2xlIGNsYXNzPSJ0b2RvLXJpbmctdHJhY2siIGN4PSIxOCIgY3k9IjE4IiByPSIxNS41IiBmaWxsPSJub25lIiBzdHJva2Utd2lkdGg9IjQiLz48Y2lyY2xlIGNsYXNzPSJ0b2RvLXJpbmctZmlsbCIgY3g9IjE4IiBjeT0iMTgiIHI9IjE1LjUiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIi8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWNvdW50ZXIiIGlkPSJ0b2RvLXByb2dyZXNzLWNvdW50ZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ0b2RvLXByb2dyZXNzLXRhc2std3JhcCI+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtdGFzayIgaWQ9InRvZG8tcHJvZ3Jlc3MtdGFzayI+PC9zcGFuPjwvZGl2PjxzdmcgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtY2hldnJvbiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iNiAxNSAxMiA5IDE4IDE1Ii8+PC9zdmc+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idG9kby1wcm9ncmVzcy1ib2R5IGhpZGRlbiIgaWQ9InRvZG8tcHJvZ3Jlc3MtYm9keSI+PHVsIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWxpc3QiIGlkPSJ0b2RvLXByb2dyZXNzLWxpc3QiPjwvdWw+PC9kaXY+PC9kaXY+PGRpdiBpZD0icXVldWUtYmFyLWhvc3QiIGNsYXNzPSJxdWV1ZS1iYXItaG9zdCIgaGlkZGVuPjwvZGl2PjxkaXYgY2xhc3M9ImlucHV0LWNvbXBvc2VyJysoYT8iIGhhcy10ZXh0IjoiIikrJyI+PGRpdiBjbGFzcz0iY29tcG9zZXItc3RhdHVzLXJvdyIgaWQ9ImNvbXBvc2VyLXN0YXR1cy1yb3ciPicrVG0odCkrJzxzcGFuIGNsYXNzPSJwZXJtaXNzaW9uLWFjdGlvbnMgaGlkZGVuIiBpZD0icGVybWlzc2lvbi1hY3Rpb25zIj48c3BhbiBjbGFzcz0icGVybWlzc2lvbi1hY3Rpb25zLWxhYmVsIiBpZD0icGVybWlzc2lvbi1hY3Rpb25zLWxhYmVsIj5cdTdCNDlcdTVGODVcdTYzODhcdTY3NDM8L3NwYW4+PGJ1dHRvbiBpZD0iYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIgY2xhc3M9ImJ0biBidG4tcGVybWlzc2lvbiBidG4tcGVybWlzc2lvbi1hcHByb3ZlIiB0eXBlPSJidXR0b24iPlx1NjI3OVx1NTFDNjwvYnV0dG9uPjxidXR0b24gaWQ9ImRlbnktcGVybWlzc2lvbi1idG4iIGNsYXNzPSJidG4gYnRuLXBlcm1pc3Npb24gYnRuLXBlcm1pc3Npb24tZGVueSIgdHlwZT0iYnV0dG9uIj5cdTYyRDJcdTdFREQ8L2J1dHRvbj48L3NwYW4+JytOZigpKyc8L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1tYWluLXJvdyI+PGRpdiBjbGFzcz0iY29tcG9zZXItYWN0aW9ucy1sZWZ0Ij48YnV0dG9uIGlkPSJhdHRhY2gtYnRuIiBjbGFzcz0iYnRuLWNpcmNsZSBidG4tY2lyY2xlLWFjdGlvbiIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2NkY0XHU1OTFBIiBhcmlhLWxhYmVsPSJcdTY2RjRcdTU5MUEiIGFyaWEtaGFzcG9wdXA9Im1lbnUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIj4nK1YoInBsdXMiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjIuMn0pKyc8L2J1dHRvbj48aW5wdXQgdHlwZT0iZmlsZSIgaWQ9ImZpbGUtdXBsb2FkLWlucHV0IiBtdWx0aXBsZSB0YWJpbmRleD0iLTEiIHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7b3ZlcmZsb3c6aGlkZGVuO2NsaXA6cmVjdCgwLDAsMCwwKTtwb2ludGVyLWV2ZW50czpub25lIj48L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1pbmxpbmUtY29uZmlnIj4nK1BsKHQpKyc8L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1pbnB1dC13cmFwIj48dGV4dGFyZWEgaWQ9ImlucHV0LWJveCIgY2xhc3M9ImlucHV0LXRleHRhcmVhIiBwbGFjZWhvbGRlcj0iJytEbCh0LHIudGVybWluYWxJbnRlcmFjdGl2ZSkrJyIgcm93cz0iMSIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiBlbnRlcmtleWhpbnQ9InNlbmQiPicrcChhKSsnPC90ZXh0YXJlYT48YnV0dG9uIGlkPSJwcm9tcHQtb3B0aW1pemUtYnRuIiBjbGFzcz0icHJvbXB0LW9wdGltaXplLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2XHVGRjA4QUlcdUZGMDkiIGFyaWEtbGFiZWw9Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNiI+PHN2ZyBjbGFzcz0icHJvbXB0LW9wdGltaXplLWljb24iIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTIgM2wxLjYgNC40TDE4IDlsLTQuNCAxLjZMMTIgMTVsLTEuNi00LjRMNiA5bDQuNC0xLjZ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuMjUiLz48cGF0aCBkPSJNMTIgM2wxLjYgNC40TDE4IDlsLTQuNCAxLjZMMTIgMTVsLTEuNi00LjRMNiA5bDQuNC0xLjZ6Ii8+PHBhdGggZD0iTTE5IDE0bC43IDEuOUwyMS42IDE3bC0xLjkuN0wxOSAxOS42bC0uNy0xLjlMMTYuNCAxN2wxLjktLjd6IiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuMzUiLz48cGF0aCBkPSJNNSA0bC41IDEuNEw3IDZsLTEuNS42TDUgOGwtLjUtMS40TDMgNmwxLjUtLjZ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIG9wYWNpdHk9IjAuMzUiLz48L3N2Zz48c3BhbiBjbGFzcz0icHJvbXB0LW9wdGltaXplLXNwaW5uZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9idXR0b24+PGRpdiBjbGFzcz0idm9pY2UtaW5wdXQtbW9kZSBoaWRkZW4iIGlkPSJ2b2ljZS1pbnB1dC1tb2RlIj48YnV0dG9uIGlkPSJ2b2ljZS1yZWNvcmQtYnRuIiBjbGFzcz0idm9pY2UtcmVjb3JkLWJ0biIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idm9pY2UtcmVjb3JkLXB1bHNlIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJ2b2ljZS1yZWNvcmQtbGFiZWwiPlx1NjMwOVx1NEY0RiBcdThCRjRcdThCREQ8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBpZD0idm9pY2UtY2FuY2VsLWJ0biIgY2xhc3M9InZvaWNlLWNhbmNlbC1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1OEJFRFx1OTdGM1x1NkEyMVx1NUYwRiIgYXJpYS1sYWJlbD0iXHU5MDAwXHU1MUZBXHU4QkVEXHU5N0YzXHU2QTIxXHU1RjBGIj4nK1YoIngiLHtzaXplOjE0LHN0cm9rZVdpZHRoOjJ9KSsnPC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItYWN0aW9ucy1yaWdodCI+PGJ1dHRvbiBpZD0ic3RvcC1idXR0b24iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtc3RvcCBoaWRkZW4iIHRpdGxlPSJcdTUwNUNcdTZCNjIiPjxzdmcgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9ImN1cnJlbnRDb2xvciI+PHJlY3QgeD0iMyIgeT0iMyIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIvPjwvc3ZnPjwvYnV0dG9uPjxidXR0b24gaWQ9InNlbmQtaW5wdXQtYnV0dG9uIiBjbGFzcz0iYnRuLWNpcmNsZSBidG4tY2lyY2xlLXNlbmQiIHRpdGxlPSJcdTUzRDFcdTkwMDEiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNSIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48bGluZSB4MT0iMjIiIHkxPSIyIiB4Mj0iMTEiIHkyPSIxMyIvPjxwb2x5Z29uIHBvaW50cz0iMjIgMiAxNSAyMiAxMSAxMyAyIDkgMjIgMiIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImF0dGFjaG1lbnQtcHJldmlldyIgY2xhc3M9ImF0dGFjaG1lbnQtcHJldmlldyBoaWRkZW4iPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLXBsdXMtcG9wb3ZlciBoaWRkZW4iIGlkPSJjb21wb3Nlci1wbHVzLXBvcG92ZXIiIHJvbGU9Im1lbnUiIGFyaWEtbGFiZWw9Ilx1NjZGNFx1NTkxQVx1NjRDRFx1NEY1QyI+PGJ1dHRvbiBjbGFzcz0icGx1cy1wb3BvdmVyLWl0ZW0iIGlkPSJwbHVzLWF0dGFjaC1pdGVtIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK1YoInBhcGVyY2xpcCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6MS44LGNsczoicGx1cy1wb3BvdmVyLWljb24ifSkrJzxzcGFuIGNsYXNzPSJwbHVzLXBvcG92ZXItbGFiZWwiPlx1NEUwQVx1NEYyMFx1OTY0NFx1NEVGNjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJwbHVzLXBvcG92ZXItaXRlbScrKHIudGVybWluYWxJbnRlcmFjdGl2ZT8iIGlzLW9uIjoiIikrJyIgaWQ9InRlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW1jaGVja2JveCIgYXJpYS1jaGVja2VkPSInKyhyLnRlcm1pbmFsSW50ZXJhY3RpdmU/InRydWUiOiJmYWxzZSIpKyciPicrVigia2V5Ym9hcmQiLHtzaXplOjE0LHN0cm9rZVdpZHRoOjEuOCxjbHM6InBsdXMtcG9wb3Zlci1pY29uIn0pKyc8c3BhbiBjbGFzcz0icGx1cy1wb3BvdmVyLWxhYmVsIj5cdTdFQzhcdTdBRUZcdTRFQTRcdTRFOTI8L3NwYW4+PHNwYW4gY2xhc3M9InBsdXMtcG9wb3Zlci10b2dnbGUtc3RhdGUiPicrKHIudGVybWluYWxJbnRlcmFjdGl2ZT8iXHU1RjAwIjoiXHU1MTczIikrJzwvc3Bhbj48L2J1dHRvbj48ZGl2IGNsYXNzPSJwbHVzLXBvcG92ZXItc2VwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+PGRpdiBjbGFzcz0icGx1cy1wb3BvdmVyLXRyaW8td3JhcCI+JytQbCh0KSsnPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC1idWJibGUgaGlkZGVuIiBpZD0idm9pY2UtdHJhbnNjcmlwdC1idWJibGUiIGFyaWEtbGl2ZT0icG9saXRlIj48ZGl2IGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LXRleHQiIGlkPSJ2b2ljZS10cmFuc2NyaXB0LXRleHQiPjwvZGl2PjxkaXYgY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtaGludCIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtaGludCI+PHNwYW4gY2xhc3M9InZvaWNlLXdhdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48aT48L2k+PGk+PC9pPjxpPjwvaT48aT48L2k+PC9zcGFuPjxzcGFuIGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIj5cdTZCNjNcdTU3MjhcdTgwNDZcdTU0MkNcdTIwMjZcdTRFMEFcdTZFRDFcdTUzRDZcdTZEODg8L3NwYW4+PC9kaXY+PHNwYW4gY2xhc3M9InZvaWNlLWJ1YmJsZS1hcnJvdyIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2Rpdj48cCBpZD0iYWN0aW9uLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48L2Rpdj48c2VjdGlvbiBpZD0iZm9sZGVyLXBpY2tlci1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiI+PGRpdiBjbGFzcz0ibW9kYWwgZm9sZGVyLXBpY2tlci1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIj5cdTkwMDlcdTYyRTlcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L2gyPjxidXR0b24gaWQ9ImNsb3NlLWZvbGRlci1waWNrZXIiIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLXJvdyI+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4gYnRuLXdpdGgtaWNvbiIgZGF0YS1wYXRoPSIvdG1wIj4nK1YoInRyYXNoIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsnPHNwYW4+XHU0RTM0XHU2NUY2XHU3NkVFXHU1RjU1PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stYnRuIGJ0bi13aXRoLWljb24iIGRhdGEtcGF0aD0iLyI+JytWKCJmb2xkZXIiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyc8c3Bhbj5cdTY4MzlcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLWJyZWFkY3J1bWIiIGNsYXNzPSJmb2xkZXItYnJlYWRjcnVtYiI+PC9kaXY+PGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlciI+PHNwYW4gY2xhc3M9ImZvbGRlci1waWNrZXItaWNvbiI+JytWKCJmb2xkZXIiLHtzaXplOjE1LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGlucHV0IHR5cGU9InRleHQiIGlkPSJmb2xkZXItcGlja2VyLWlucHV0IiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pbnB1dCIgdmFsdWU9IiIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NjIxNlx1OTAwOVx1NjJFOVx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NS4uLiIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiAvPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1waWNrZXItZHJvcGRvd24iIGNsYXNzPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIGhpZGRlbiI+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIiBjbGFzcz0iZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+PC9tYWluPjwvZGl2PjwvZGl2PicrQ2MoKStmYygpK3BjKCkrQ28oKX1mdW5jdGlvbiBIZShlLHQpe2lmKGUpe2UudGV4dENvbnRlbnQ9dCxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2Zvcih2YXIgbj1lLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7bjspe2lmKG4udGFnTmFtZT09PSJJTlBVVCIpe24uc2V0QXR0cmlidXRlKCJkYXRhLWVycm9yIiwidHJ1ZSIpO2JyZWFrfW49bi5wcmV2aW91c0VsZW1lbnRTaWJsaW5nfX19ZnVuY3Rpb24geWkoZSl7aWYoZSl7ZS50ZXh0Q29udGVudD0iIixlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO2Zvcih2YXIgdD1lLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7dDspe2lmKHQudGFnTmFtZT09PSJJTlBVVCIpe3Quc2V0QXR0cmlidXRlKCJkYXRhLWVycm9yIiwiZmFsc2UiKTticmVha310PXQucHJldmlvdXNFbGVtZW50U2libGluZ319fWZ1bmN0aW9uIEEoZSx0KXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmNsYXNzTmFtZT0idG9hc3QtbWVzc2FnZSIrKHQ9PT0iZXJyb3IiPyIgdG9hc3QtZXJyb3IiOiIiKSx0IT09ImVycm9yIiYmKG4uc3R5bGUuYmFja2dyb3VuZD0idmFyKC0tYWNjZW50KSIsbi5zdHlsZS5jb2xvcj0id2hpdGUiKSxuLnRleHRDb250ZW50PWUsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChuKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bi5yZW1vdmUoKX0sdD09PSJlcnJvciI/NGUzOjIyMDApfXZhciBEcj1bXSxXZj0wO2Z1bmN0aW9uIHpmKGUpe3N3aXRjaChlKXtjYXNlIndhcm5pbmciOnJldHVybic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMC4zIDIuOSAxLjggMTdhMiAyIDAgMCAwIDEuNyAzaDE3YTIgMiAwIDAgMCAxLjctM0wxMy43IDIuOWEyIDIgMCAwIDAtMy40IDBaIi8+PHBhdGggZD0iTTEyIDl2NCIvPjxwYXRoIGQ9Ik0xMiAxN2guMDEiLz48L3N2Zz4nO2Nhc2UiZGFuZ2VyIjpyZXR1cm4nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0aDh2MiIvPjxwYXRoIGQ9Im0xOSA2LTEgMTRINkw1IDYiLz48cGF0aCBkPSJNMTAgMTF2NSIvPjxwYXRoIGQ9Ik0xNCAxMXY1Ii8+PC9zdmc+JztjYXNlInN1Y2Nlc3MiOnJldHVybic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIwIDYgOSAxN2wtNS01Ii8+PC9zdmc+JztjYXNlInF1ZXN0aW9uIjpyZXR1cm4nPHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSI5Ii8+PHBhdGggZD0iTTkuNyA5YTIuNSAyLjUgMCAxIDEgNC41IDEuNWMtLjkuOC0yLjIgMS4yLTIuMiAyLjUiLz48cGF0aCBkPSJNMTIgMTdoLjAxIi8+PC9zdmc+JztkZWZhdWx0OnJldHVybic8c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjIwIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48cGF0aCBkPSJNMTIgMTF2NSIvPjxwYXRoIGQ9Ik0xMiA4aC4wMSIvPjwvc3ZnPid9fWZ1bmN0aW9uIG9uKGUpe2U9ZXx8e307dmFyIHQ9ZS5kaXNtaXNzYWJsZSE9PSExLG49ZS50eXBlfHwiaW5mbyIsaT16ZihuKSxhPSEhZS5pbnB1dDtyZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24odSl7dmFyIG89IndhbmQtZGlhbG9nLSIrICsrV2Yscz1kb2N1bWVudC5hY3RpdmVFbGVtZW50LGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWJhY2tkcm9wIixsLnNldEF0dHJpYnV0ZSgicm9sZSIsInByZXNlbnRhdGlvbiIpO3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2QuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZyIsZC5zZXRBdHRyaWJ1dGUoInJvbGUiLGE/ImRpYWxvZyI6ImFsZXJ0ZGlhbG9nIiksZC5zZXRBdHRyaWJ1dGUoImFyaWEtbW9kYWwiLCJ0cnVlIik7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Zi5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWhlYWRlciI7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yy5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWljb24gIituLGMuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsInRydWUiKSxlLmljb24/Yy50ZXh0Q29udGVudD1TdHJpbmcoZS5pY29uKTpjLmlubmVySFRNTD1pLGYuYXBwZW5kQ2hpbGQoYyk7dmFyIHY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aWYodi5jbGFzc05hbWU9IndhbmQtZGlhbG9nLXRleHR3cmFwIixlLnRpdGxlKXt2YXIgaD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtoLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctdGl0bGUiLGguaWQ9bysiLXRpdGxlIixoLnRleHRDb250ZW50PWUudGl0bGUsdi5hcHBlbmRDaGlsZChoKSxkLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbGxlZGJ5IixoLmlkKX1pZihlLm1lc3NhZ2Upe3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1tZXNzYWdlIixnLmlkPW8rIi1tZXNzYWdlIixnLnRleHRDb250ZW50PWUubWVzc2FnZSx2LmFwcGVuZENoaWxkKGcpLGQuc2V0QXR0cmlidXRlKCJhcmlhLWRlc2NyaWJlZGJ5IixnLmlkKX1lLnRpdGxlfHxkLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj09PSJkYW5nZXIiPyJcdTc4NkVcdThCQTRcdTY0Q0RcdTRGNUMiOiJcdTYzRDBcdTc5M0EiKSxmLmFwcGVuZENoaWxkKHYpLGQuYXBwZW5kQ2hpbGQoZik7dmFyIG09bnVsbDtpZihhKXt2YXIgeT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt5LmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctYm9keSIsbT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLG0udHlwZT0idGV4dCIsbS5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWlucHV0IixtLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsZS5pbnB1dExhYmVsfHxlLnRpdGxlfHwiXHU4RjkzXHU1MTY1XHU1MTg1XHU1QkI5IiksbS5hdXRvY29tcGxldGU9Im9mZiIsbS5zcGVsbGNoZWNrPSExLGUuaW5wdXRQbGFjZWhvbGRlciYmKG0ucGxhY2Vob2xkZXI9ZS5pbnB1dFBsYWNlaG9sZGVyKSxlLmlucHV0VmFsdWUhPW51bGwmJihtLnZhbHVlPVN0cmluZyhlLmlucHV0VmFsdWUpKSx5LmFwcGVuZENoaWxkKG0pLGQuYXBwZW5kQ2hpbGQoeSl9dmFyIEM9ZS5idXR0b25zJiZlLmJ1dHRvbnMubGVuZ3RoP2UuYnV0dG9uczpbe2xhYmVsOiJcdTU5N0QiLHZhbHVlOiEwLGtpbmQ6InByaW1hcnkiLGF1dG9mb2N1czohMH1dLEU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7RS5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWZvb3RlciI7dmFyIEI9bnVsbCxEPW51bGw7ZnVuY3Rpb24gRihMKXtpZighbC5jbGFzc0xpc3QuY29udGFpbnMoImNsb3NpbmciKSl7bC5jbGFzc0xpc3QuYWRkKCJjbG9zaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsSSwhMCk7dmFyIEg9RHIuaW5kZXhPZihGKTtIPj0wJiZEci5zcGxpY2UoSCwxKTt2YXIgVT0hMTt0cnl7VT0hISh3aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIikubWF0Y2hlcyl9Y2F0Y2h7fXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihsLnBhcmVudE5vZGUmJmwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChsKSxzJiZkb2N1bWVudC5jb250YWlucyhzKSYmdHlwZW9mIHMuZm9jdXM9PSJmdW5jdGlvbiIpdHJ5e3MuZm9jdXMoKX1jYXRjaHt9dShMKX0sVXx8ZG9jdW1lbnQuaGlkZGVuPzA6MTQwKX19Qy5mb3JFYWNoKGZ1bmN0aW9uKEwpe3ZhciBIPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpLFU9TC5raW5kfHwic2Vjb25kYXJ5IjtILmNsYXNzTmFtZT0iYnRuIGJ0bi0iK1UsSC50eXBlPSJidXR0b24iLEgudGV4dENvbnRlbnQ9TC5sYWJlbCxILmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2EmJkwua2luZD09PSJwcmltYXJ5Ij9GKG0/bS52YWx1ZToiIik6RihMLnZhbHVlKX0pLEJ8fChCPUgpLEwuYXV0b2ZvY3VzJiYoRD1IKSxFLmFwcGVuZENoaWxkKEgpfSksZC5hcHBlbmRDaGlsZChFKSxsLmFwcGVuZENoaWxkKGQpLGwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKEwpe0wudGFyZ2V0PT09bCYmdCYmRihlLmNhbmNlbFZhbHVlIT09dm9pZCAwP2UuY2FuY2VsVmFsdWU6YT9udWxsOiExKX0pO2Z1bmN0aW9uIEkoTCl7aWYoRHJbRHIubGVuZ3RoLTFdPT09Ril7aWYoTC5rZXk9PT0iRXNjYXBlIiYmdCl7TC5wcmV2ZW50RGVmYXVsdCgpLEwuc3RvcFByb3BhZ2F0aW9uKCksRihlLmNhbmNlbFZhbHVlIT09dm9pZCAwP2UuY2FuY2VsVmFsdWU6YT9udWxsOiExKTtyZXR1cm59aWYoTC5rZXk9PT0iRW50ZXIiKXtmb3IodmFyIEg9bnVsbCxVPTA7VTxDLmxlbmd0aDtVKyspaWYoQ1tVXS5raW5kPT09InByaW1hcnkiKXtIPUNbVV07YnJlYWt9SHx8KEg9Q1tDLmxlbmd0aC0xXSksSCYmKEwucHJldmVudERlZmF1bHQoKSxMLnN0b3BQcm9wYWdhdGlvbigpLGEmJkgua2luZD09PSJwcmltYXJ5Ij9GKG0/bS52YWx1ZToiIik6RihILnZhbHVlKSk7cmV0dXJufWlmKEwua2V5PT09IlRhYiIpe3ZhciB4PWQucXVlcnlTZWxlY3RvckFsbCgnYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Ii0xIl0pJyk7aWYoIXgubGVuZ3RoKXJldHVybjt2YXIgaz14WzBdLFQ9eFt4Lmxlbmd0aC0xXTtMLnNoaWZ0S2V5JiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09az8oTC5wcmV2ZW50RGVmYXVsdCgpLFQuZm9jdXMoKSk6IUwuc2hpZnRLZXkmJmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1UJiYoTC5wcmV2ZW50RGVmYXVsdCgpLGsuZm9jdXMoKSl9fX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixJLCEwKSxEci5wdXNoKEYpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobCkscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoYSYmbSl7bS5mb2N1cygpO3RyeXttLnNlbGVjdCgpfWNhdGNoe319ZWxzZSBEP0QuZm9jdXMoKTpCJiZCLmZvY3VzKCl9KX0pfWZ1bmN0aW9uIGNzKGUsdCl7cmV0dXJuIHQ9dHx8e30sb24oe3RpdGxlOnQudGl0bGV8fCJcdTYzRDBcdTc5M0EiLG1lc3NhZ2U6dHlwZW9mIGU9PSJzdHJpbmciP2U6U3RyaW5nKGU/PyIiKSx0eXBlOnQudHlwZXx8ImluZm8iLGJ1dHRvbnM6W3tsYWJlbDp0Lm9rTGFiZWx8fCJcdTU5N0QiLHZhbHVlOnZvaWQgMCxraW5kOiJwcmltYXJ5IixhdXRvZm9jdXM6ITB9XX0pfWZ1bmN0aW9uIE1hKGUsdCl7dD10fHx7fTt2YXIgbj0hIXQuZGFuZ2VyfHx0LnR5cGU9PT0iZGFuZ2VyIjtyZXR1cm4gb24oe3RpdGxlOnQudGl0bGV8fChuPyJcdTc4NkVcdThCQTRcdTY0Q0RcdTRGNUMiOiJcdThCRjdcdTc4NkVcdThCQTQiKSxtZXNzYWdlOnR5cGVvZiBlPT0ic3RyaW5nIj9lOlN0cmluZyhlPz8iIiksdHlwZTp0LnR5cGV8fChuPyJkYW5nZXIiOiJxdWVzdGlvbiIpLGNhbmNlbFZhbHVlOiExLGJ1dHRvbnM6W3tsYWJlbDp0LmNhbmNlbExhYmVsfHwiXHU1M0Q2XHU2RDg4Iix2YWx1ZTohMSxraW5kOiJzZWNvbmRhcnkifSx7bGFiZWw6dC5va0xhYmVsfHwobj8iXHU1MjIwXHU5NjY0IjoiXHU3ODZFXHU1QjlBIiksdmFsdWU6ITAsa2luZDpuPyJkYW5nZXIiOiJwcmltYXJ5IixhdXRvZm9jdXM6IW59XX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk9PT0hMH0pfWZ1bmN0aW9uIFZmKGUsdCxuKXtyZXR1cm4gbj1ufHx7fSxvbih7dGl0bGU6bi50aXRsZXx8Ilx1OEJGN1x1OEY5M1x1NTE2NSIsbWVzc2FnZTp0eXBlb2YgZT09InN0cmluZyI/ZTpTdHJpbmcoZT8/IiIpLHR5cGU6bi50eXBlfHwicXVlc3Rpb24iLGlucHV0OiEwLGlucHV0VmFsdWU6dD09bnVsbD8iIjpTdHJpbmcodCksaW5wdXRQbGFjZWhvbGRlcjpuLnBsYWNlaG9sZGVyfHwiIixjYW5jZWxWYWx1ZTpudWxsLGJ1dHRvbnM6W3tsYWJlbDpuLmNhbmNlbExhYmVsfHwiXHU1M0Q2XHU2RDg4Iix2YWx1ZTpudWxsLGtpbmQ6InNlY29uZGFyeSJ9LHtsYWJlbDpuLm9rTGFiZWx8fCJcdTc4NkVcdTVCOUEiLHZhbHVlOnZvaWQgMCxraW5kOiJwcmltYXJ5In1dfSl9d2luZG93LndhbmRBbGVydD1jcyx3aW5kb3cud2FuZENvbmZpcm09TWEsd2luZG93LndhbmRQcm9tcHQ9VmYsd2luZG93Lm9wZW5XYW5kRGlhbG9nPW9uO3ZhciAkdD1bXSxmcz0wLFVmPTYsS2Y9MTY7ZnVuY3Rpb24gcWEoZSl7aWYoKGUuYWN0aW9uTGFiZWx8fGUucGxheVNvdW5kKSYmaHMoKSwhci5ub3RpZkJ1YmJsZSlyZXR1cm57ZGlzbWlzczpmdW5jdGlvbigpe319O3ZhciB0PSsrZnMsbj1lLnR5cGV8fCJpbmZvIixpPWUuaWNvbnx8KG49PT0id2FybmluZyI/IiEiOm49PT0ic3VjY2VzcyI/Ilx1MjcxMyI6ImkiKSxhPWUuZHVyYXRpb24hPT12b2lkIDA/ZS5kdXJhdGlvbjo4ZTMsdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTmFtZT0ibm90aWZpY2F0aW9uLWJ1YmJsZSIsdS5zZXRBdHRyaWJ1dGUoImRhdGEtbmlkIixTdHJpbmcodCkpO3ZhciBvPSc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWhlYWRlciI+PHNwYW4gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtaWNvbiAnK24rJyI+JytpKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtdGl0bGUiPicrcChlLnRpdGxlKSsnPC9zcGFuPjxidXR0b24gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2UiIHRpdGxlPSJcdTUxNzNcdTk1RUQiPlx4RDc8L2J1dHRvbj48L2Rpdj4nLHM9ZS5ib2R5Pyc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWJvZHkiPicrcChlLmJvZHkpLnJlcGxhY2UoL1xuL2csIjxicj4iKSsiPC9kaXY+IjoiIixsPWUuYWN0aW9uTGFiZWw/JzxkaXYgY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0icHJpbWFyeSI+JytwKGUuYWN0aW9uTGFiZWwpKyI8L2J1dHRvbj48L2Rpdj4iOiIiO3UuaW5uZXJIVE1MPW8rcytsLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSk7dmFyIGQ9e2lkOnQsZWw6dX07JHQucHVzaChkKSxQYSgpO3ZhciBmPXUucXVlcnlTZWxlY3RvcigiLm5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2UiKTtpZihmJiYoZi5vbmNsaWNrPWZ1bmN0aW9uKCl7a3IodCl9KSxlLmFjdGlvbkxhYmVsJiZlLmFjdGlvbil7dmFyIGM9dS5xdWVyeVNlbGVjdG9yKCIubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbiIpO2MmJihjLm9uY2xpY2s9ZnVuY3Rpb24oKXtlLmFjdGlvbigpLGtyKHQpfSl9dmFyIHY9bnVsbDtyZXR1cm4gYT4wJiYodj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7a3IodCl9LGEpKSx7ZGlzbWlzczpmdW5jdGlvbigpe2tyKHQpfX19ZnVuY3Rpb24ga3IoZSl7Zm9yKHZhciB0PS0xLG49MDtuPCR0Lmxlbmd0aDtuKyspaWYoJHRbbl0uaWQ9PT1lKXt0PW47YnJlYWt9aWYodCE9PS0xKXt2YXIgaT0kdFt0XTtpLmVsLmNsYXNzTGlzdC5hZGQoInNsaWRlLW91dCIpLCR0LnNwbGljZSh0LDEpLFBhKCksc2V0VGltZW91dChmdW5jdGlvbigpe2kuZWwucGFyZW50Tm9kZSYmaS5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkuZWwpfSwzMDApfX1mdW5jdGlvbiBQYSgpe2Zvcih2YXIgZT1LZix0PTA7dDwkdC5sZW5ndGg7dCsrKSR0W3RdLmVsLnN0eWxlLnRvcD1lKyJweCIsZSs9JHRbdF0uZWwub2Zmc2V0SGVpZ2h0K1VmfXRyeXt3cz1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XYW5kUGxhdGZvcm1cL21hY09TLyksX2E9d2luZG93LndlYmtpdCYmd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMmJndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLndhbmROYXRpdmV8fG51bGwsd3MmJl9hJiZ0eXBlb2Ygd2luZG93LldhbmROYXRpdmU+InUiJiYod2luZG93LldhbmROYXRpdmU9e2Rvd25sb2FkVXBkYXRlOmZ1bmN0aW9uKGUsdCxuKXt0cnl7X2EucG9zdE1lc3NhZ2Uoe3R5cGU6ImRvd25sb2FkVXBkYXRlIix1cmw6U3RyaW5nKGV8fCIiKSxmaWxlTmFtZTpTdHJpbmcodHx8IndhbmQtdXBkYXRlLmRtZyIpLHNvdXJjZTpTdHJpbmcobnx8ImxvY2FsIil9KX1jYXRjaHt9fX0pfWNhdGNoe312YXIgV2U9dHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uPT0iZnVuY3Rpb24iLEFyPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dhbmRBcHBcLyhbXlxzXSspLykscHM9L1dhbmRQbGF0Zm9ybVwvbWFjT1MvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksSmY9ISFBciYmIXBzLEluPUFyJiZKZj9BclsxXTpudWxsLHNuPUFyJiZwcz9BclsxXTpudWxsO2Z1bmN0aW9uIEduKGUpe2lmKCEoIVdlfHx0eXBlb2YgV2FuZE5hdGl2ZS52aWJyYXRlIT0iZnVuY3Rpb24iKSl0cnl7V2FuZE5hdGl2ZS52aWJyYXRlKGV8fCJsaWdodCIpfWNhdGNoe319ZnVuY3Rpb24gT2EoKXtpZihXZSl7dmFyIGU9ci5zZXNzaW9ucy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiF0LmFyY2hpdmVkJiYodC5zdGF0dXM9PT0icnVubmluZyJ8fHQuc3RhdHVzPT09InRoaW5raW5nInx8dC5zdGF0dXM9PT0iaW5pdGlhbGl6aW5nIil9KTtpZih0eXBlb2YgV2FuZE5hdGl2ZS5zZXRLZWVwU2NyZWVuT249PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0S2VlcFNjcmVlbk9uKGUpfWNhdGNoe31pZihlKXtpZih0eXBlb2YgV2FuZE5hdGl2ZS5zdGFydEtlZXBBbGl2ZT09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zdGFydEtlZXBBbGl2ZSgpfWNhdGNoe319ZWxzZSBpZih0eXBlb2YgV2FuZE5hdGl2ZS5zdG9wS2VlcEFsaXZlPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnN0b3BLZWVwQWxpdmUoKX1jYXRjaHt9fX1mdW5jdGlvbiBiaSgpe2lmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRQZXJtaXNzaW9uPT0iZnVuY3Rpb24iKXRyeXtyZXR1cm4gV2FuZE5hdGl2ZS5nZXRQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybiBudWxsfWZ1bmN0aW9uIFlmKCl7aWYoV2Upe3ZhciBlPWJpKCk7aWYoZT09PSJkZWZhdWx0Inx8ZT09PSJkZW5pZWQiKXRyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn10eXBlb2YgTm90aWZpY2F0aW9uPCJ1IiYmTm90aWZpY2F0aW9uLnBlcm1pc3Npb249PT0iZGVmYXVsdCImJk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpfWZ1bmN0aW9uIEdmKGUpe3ZhciB0PWV8fHt9O3JldHVybiEodC5vbmx5V2hlbkhpZGRlbiYmIWRvY3VtZW50LmhpZGRlbnx8dC5za2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkJiZ0LnNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJiFkb2N1bWVudC5oaWRkZW4pfWZ1bmN0aW9uIFFmKGUsdCl7aWYoIWV8fCF0fHx0PD0wKXJldHVybiExO3ZhciBuPXIubm90aWZpY2F0aW9uSGlzdG9yeVtlXXx8MCxpPURhdGUubm93KCk7cmV0dXJuIGktbjx0PyEwOihyLm5vdGlmaWNhdGlvbkhpc3RvcnlbZV09aSwhMSl9ZnVuY3Rpb24gRWkoZSx0LG4pe3ZhciBpPW58fHt9LGE9aS50YWd8fCIiO2lmKEdmKGkpJiYhUWYoYSxpLm1pbkludGVydmFsTXN8fDApKXtpZihXZSl7dmFyIHU9YmkoKTtpZih1IT09ImdyYW50ZWQiKXJldHVybjt0cnl7dmFyIG89YTtpLmtpbmQmJihvPWkua2luZCsoYT8iOiIrYToiIikpLFdhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbihlfHwiV2FuZCIsdHx8IiIsb3x8IiIpfWNhdGNoe31yZXR1cm59aWYoISh0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Inx8Tm90aWZpY2F0aW9uLnBlcm1pc3Npb24hPT0iZ3JhbnRlZCIpJiZkb2N1bWVudC5oaWRkZW4pdHJ5e3ZhciBzPW5ldyBOb3RpZmljYXRpb24oZSx7Ym9keTp0fHwiIixpY29uOmkuaWNvbnx8Ii9mYXZpY29uLmljbyIsdGFnOmF8fHZvaWQgMH0pO3Mub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5mb2N1cygpLHMuY2xvc2UoKSxpLm9uQ2xpY2smJmkub25DbGljaygpfSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cy5jbG9zZSgpfSwxZTQpfWNhdGNoe319fWZ1bmN0aW9uICRmKGUsdCl7aWYoISghdHx8IXQudGl0bGUpKXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lfSk7aWYobil7dmFyIGk9bi5zdW1tYXJ5fHxuLmNvbW1hbmR8fGU7RWkoIlx1NEVGQlx1NTJBMVx1OEZEQlx1ODg0Q1x1NEUyRCIsaStgCmArdC50aXRsZSx7a2luZDoidGFzayIsdGFnOiJ3YW5kLXRhc2stIitlKyItIit0LnRpdGxlLG1pbkludGVydmFsTXM6OWU0LG9ubHlXaGVuSGlkZGVuOiEwLHNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ6ZSxvbkNsaWNrOmZ1bmN0aW9uKCl7ZSE9PXIuc2VsZWN0ZWRJZCYmSHQoZSl9fSl9fX1mdW5jdGlvbiB2cyhlLHQpe3JwKGV8fCItIix0fHwiLSIpLEVpKCJXYW5kIFx1NTNEMVx1NzNCMFx1NjVCMFx1NzI0OFx1NjcyQyIsIlx1NUY1M1x1NTI0RCAiKyhlfHwiLSIpKyIgXHUyMTkyIFx1NjcwMFx1NjVCMCAiKyh0fHwiLSIpLHtraW5kOiJ1cGRhdGUiLHRhZzoid2FuZC11cGRhdGUiLG1pbkludGVydmFsTXM6M2U1fSl9ZnVuY3Rpb24gWGYoZSx0KXtFaSgiXHU5NzAwXHU4OTgxXHU0RjYwXHU3Njg0XHU2Mzg4XHU2NzQzIix0LHtraW5kOiJwZXJtaXNzaW9uIix0YWc6IndhbmQtcGVybS0iK2UsbWluSW50ZXJ2YWxNczo2ZTQsb25seVdoZW5IaWRkZW46ITAsc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZDplLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZIdChlKX19KX1mdW5jdGlvbiBaZihlLHQsbil7RWkodCxuLHtraW5kOiJ0YXNrLWVuZGVkIix0YWc6IndhbmQtZW5kZWQtIitlLG1pbkludGVydmFsTXM6MWU0LG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZIdChlKX19KX12YXIgVG49e30sZXA9MzA7ZnVuY3Rpb24gbXMoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9U3RyaW5nKGUpLnJlcGxhY2UoL14jK1xzKy9nbSwiIikucmVwbGFjZSgvXCpcKi9nLCIiKS5yZXBsYWNlKC9gL2csIiIpLnRyaW0oKSxuPXQuc3BsaXQoYApgKVswXS50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjEwMCYmKG49bi5zbGljZSgwLDEwMCkrIlx1MjAyNiIpLG59ZnVuY3Rpb24gSGEoZSl7IVdlfHx0eXBlb2YgV2FuZE5hdGl2ZS51cGRhdGVTZXNzaW9uUHJvZ3Jlc3MhPSJmdW5jdGlvbiJ8fGUmJihUbltlXSYmY2xlYXJUaW1lb3V0KFRuW2VdKSxUbltlXT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZGVsZXRlIFRuW2VdLHRwKGUpfSxlcCkpfWZ1bmN0aW9uIHRwKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihGKXtyZXR1cm4gRi5pZD09PWV9KTtpZih0KXt2YXIgbj10LnN1bW1hcnl8fHQuY29tbWFuZHx8ZSxpPXQuc3RhdHVzfHwicnVubmluZyI7aWYoaT09PSJpZGxlInx8aT09PSJhcmNoaXZlZCJ8fGk9PT0iZXhpdGVkIil7Z3MoZSk7cmV0dXJufWZvcih2YXIgYT1udWxsLHU9IiIsbz0iIixzPVtdLGw9dC5tZXNzYWdlc3x8W10sZD1sLmxlbmd0aC0xO2Q+PTA7ZC0tKXt2YXIgZj1sW2RdO2lmKCEoIWYuY29udGVudHx8IUFycmF5LmlzQXJyYXkoZi5jb250ZW50KSkpe2lmKCFvJiZmLnJvbGU9PT0iYXNzaXN0YW50Iilmb3IodmFyIGM9Zi5jb250ZW50Lmxlbmd0aC0xO2M+PTA7Yy0tKXt2YXIgdj1mLmNvbnRlbnRbY107aWYodiYmdi50eXBlPT09InRleHQiJiZ2LnRleHQmJnYudGV4dC50cmltKCkpe289bXModi50ZXh0KTticmVha319aWYoZi5yb2xlPT09InVzZXIiKXt2YXIgaD1mLmNvbnRlbnQuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRiYmRi5fX3F1ZXVlZH0pO2lmKCFoKWZvcih2YXIgZz0wO2c8Zi5jb250ZW50Lmxlbmd0aDtnKyspe3ZhciBtPWYuY29udGVudFtnXTtpZihtJiZtLnR5cGU9PT0idGV4dCImJm0udGV4dCYmbS50ZXh0LnRyaW0oKSl7dmFyIHk9bXMobS50ZXh0KTt1fHwodT15KSxzLmxlbmd0aDw0JiZzLnB1c2goeSk7YnJlYWt9fX1pZighYSlmb3IodmFyIEM9Zi5jb250ZW50Lmxlbmd0aC0xO0M+PTA7Qy0tKXt2YXIgRT1mLmNvbnRlbnRbQ107aWYoRSYmRS50eXBlPT09InRvb2xfdXNlIiYmRS5uYW1lPT09IlRvZG9Xcml0ZSImJkUuaW5wdXQmJkUuaW5wdXQudG9kb3Mpe2E9RS5pbnB1dC50b2RvczticmVha319aWYoYSYmcy5sZW5ndGg+PTQmJm8pYnJlYWt9fXMucmV2ZXJzZSgpO3ZhciBCPSIiO2U9PT1yLnNlbGVjdGVkSWQmJnIuY3VycmVudFRhc2smJnIuY3VycmVudFRhc2sudGl0bGUmJihCPXIuY3VycmVudFRhc2sudGl0bGUpO3ZhciBEPXtzZXNzaW9uTGFiZWw6bixzdGF0dXM6aSxjdXJyZW50VGFzazpCLGxhdGVzdFVzZXJUZXh0OnUsbGF0ZXN0QXNzaXN0YW50VGV4dDpvLHRvZG9zOmF8fFtdLHJlY2VudFVzZXJUZXh0czpzfTt0cnl7V2FuZE5hdGl2ZS51cGRhdGVTZXNzaW9uUHJvZ3Jlc3MoZSxKU09OLnN0cmluZ2lmeShEKSl9Y2F0Y2h7fX19ZnVuY3Rpb24gZ3MoZSl7aWYoISghV2V8fHR5cGVvZiBXYW5kTmF0aXZlLmNsZWFyU2Vzc2lvblByb2dyZXNzIT0iZnVuY3Rpb24iKSl7VG5bZV0mJihjbGVhclRpbWVvdXQoVG5bZV0pLGRlbGV0ZSBUbltlXSk7dHJ5e1dhbmROYXRpdmUuY2xlYXJTZXNzaW9uUHJvZ3Jlc3MoZSl9Y2F0Y2h7fX19d2luZG93LmhhbmRsZU5hdGl2ZUJhY2s9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiBucigpLCEwO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYodCYmIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4gaG4oKSwhMDt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyZXR1cm4gbiYmIW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKT8odHIoKSwhMCk6ci5maWxlUGFuZWxPcGVuJiZSZSgpPyhwYSghMSksITApOnIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiZSZSgpPyhXcigpLCEwKTpSZSgpJiZyLnNlbGVjdGVkSWQ/KHIuc2VsZWN0ZWRJZD1udWxsLGhlKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITAsU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMCksUXQoKSwhMCk6ITF9O2Z1bmN0aW9uIGhzKCl7ci5ub3RpZlNvdW5kJiZGaSgpfWZ1bmN0aW9uIG5wKCl7cmV0dXJuIEZpKCl9ZnVuY3Rpb24gRmkoKXt0cnl7bGV0IGE9ZnVuY3Rpb24odSxvLHMpe3ZhciBsPW4uY3JlYXRlT3NjaWxsYXRvcigpLGQ9bi5jcmVhdGVHYWluKCk7bC50eXBlPSJzaW5lIixsLmZyZXF1ZW5jeS52YWx1ZT11LGQuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLG4uY3VycmVudFRpbWUrbyksZC5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKC41Kmksbi5jdXJyZW50VGltZStvKy4wNCksZC5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoLjAwMSxuLmN1cnJlbnRUaW1lK28rcyksbC5jb25uZWN0KGQpLGQuY29ubmVjdChuLmRlc3RpbmF0aW9uKSxsLnN0YXJ0KG4uY3VycmVudFRpbWUrbyksbC5zdG9wKG4uY3VycmVudFRpbWUrbytzKX07dmFyIGU9YSx0PXdpbmRvdy5BdWRpb0NvbnRleHR8fHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQ7aWYoIXQpcmV0dXJuITE7dmFyIG49bmV3IHQ7bi5zdGF0ZT09PSJzdXNwZW5kZWQiJiZuLnJlc3VtZSgpO3ZhciBpPShyLm5vdGlmVm9sdW1lfHwwKS8xMDA7cmV0dXJuIGEoNTIzLDAsLjI1KSxhKDY1OSwuMTIsLjMpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLmNsb3NlKCl9LDYwMCksITB9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIHJwKGUsdCl7aWYoci5fdXBkYXRlQnViYmxlU2hvd24pcmV0dXJuO3IuX3VwZGF0ZUJ1YmJsZVNob3duPSEwLGhzKCk7dmFyIG49KytmcyxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJub3RpZmljYXRpb24tYnViYmxlIHVwZGF0ZS1jYXJkIixpLnNldEF0dHJpYnV0ZSgiZGF0YS1uaWQiLFN0cmluZyhuKSksaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXNoaW5lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtaGVhZGVyIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAxOVY1Ii8+PHBhdGggZD0iTTUgMTJsNy03IDcgNyIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWhlYWRpbmciPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXRpdGxlIj5cdTUzRDFcdTczQjBcdTY1QjBcdTcyNDhcdTY3MkM8L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1zdWJ0aXRsZSIgaWQ9InVwZGF0ZS1jYXJkLXN1YnRpdGxlIj5cdTcwQjlcdTUxRkJcdTRFMEJcdTY1QjlcdTYzMDlcdTk0QUVcdTRFMDBcdTk1MkVcdTY2RjRcdTY1QjA8L2Rpdj48L2Rpdj48YnV0dG9uIGNsYXNzPSJ1cGRhdGUtY2FyZC1jbG9zZSIgdGl0bGU9Ilx1N0EwRFx1NTQwRVx1NjNEMFx1OTE5MiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE4IDZMNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uIj48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwIHVwZGF0ZS1jYXJkLXZlcnNpb24tY3VycmVudCI+dicrcChTdHJpbmcoZSkucmVwbGFjZSgvXnYvLCIiKSkrJzwvc3Bhbj48c3ZnIGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uLWFycm93IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Ik0xMyA1bDcgNy03IDciLz48L3N2Zz48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwIHVwZGF0ZS1jYXJkLXZlcnNpb24tbGF0ZXN0Ij52JytwKFN0cmluZyh0KS5yZXBsYWNlKC9edi8sIiIpKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXByb2dyZXNzIiBpZD0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MiIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcy10cmFjayI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MtZmlsbCI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtc3RhdHVzIGhpZGRlbiIgaWQ9InVwZGF0ZS1jYXJkLXN0YXR1cyI+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9uIHVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5IiBpZD0idXBkYXRlLWJ1YmJsZS1hY3Rpb24iIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InVwZGF0ZS1jYXJkLWFjdGlvbi1sYWJlbCI+XHU3QUNCXHU1MzczXHU2NkY0XHU2NUIwPC9zcGFuPjwvYnV0dG9uPjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt2YXIgYT17aWQ6bixlbDppfTskdC5wdXNoKGEpLFBhKCk7dmFyIHU9aS5xdWVyeVNlbGVjdG9yKCIudXBkYXRlLWNhcmQtY2xvc2UiKTt1JiYodS5vbmNsaWNrPWZ1bmN0aW9uKCl7a3Iobiksci5fdXBkYXRlQnViYmxlU2hvd249ITF9KTt2YXIgbz1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtYnViYmxlLWFjdGlvbiIpLHM9aS5xdWVyeVNlbGVjdG9yKCIudXBkYXRlLWNhcmQtYWN0aW9uLWxhYmVsIiksbD1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1zdWJ0aXRsZSIpLGQ9aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWNhcmQtc3RhdHVzIiksZj1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1wcm9ncmVzcyIpO2Z1bmN0aW9uIGMoZyxtKXtpZihkKXtpZihkLnRleHRDb250ZW50PWd8fCIiLGQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiwiZXJyb3IiLCJzdWNjZXNzIiksIWcpe2QuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7cmV0dXJufW0mJmQuY2xhc3NMaXN0LmFkZChtKX19ZnVuY3Rpb24gdihnKXtsJiYobC50ZXh0Q29udGVudD1nfHwiIil9ZnVuY3Rpb24gaChnKXtmJiZmLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFnKX1vJiYoby5vbmNsaWNrPWZ1bmN0aW9uKCl7by5kaXNhYmxlZD0hMCxpLmNsYXNzTGlzdC5hZGQoImlzLWJ1c3kiKSxzJiYocy50ZXh0Q29udGVudD0iXHU2NkY0XHU2NUIwXHU0RTJEXHUyMDI2IiksdigiXHU2QjYzXHU1NzI4XHU0RTBCXHU4RjdEXHU1RTc2XHU1Qjg5XHU4OEM1XHU2NUIwXHU3MjQ4XHU2NzJDXHUyMDI2IiksaCghMCksYygiIiksZmV0Y2goIi9hcGkvdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGcpe3JldHVybiBnLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZyl7aWYoZy5lcnJvcil7aCghMSksaS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1idXN5IiksdigiXHU2NkY0XHU2NUIwXHU2NzJBXHU1QjhDXHU2MjEwIiksYyhnLmVycm9yLCJlcnJvciIpLG8uZGlzYWJsZWQ9ITEscyYmKHMudGV4dENvbnRlbnQ9Ilx1OTFDRFx1OEJENSIpO3JldHVybn1pZihpLmNsYXNzTGlzdC5hZGQoImlzLXN1Y2Nlc3MiKSx2KChnLm1lc3NhZ2V8fCJcdTY2RjRcdTY1QjBcdTVCOENcdTYyMTAiKSsiXHVGRjBDXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHUyMDI2IiksYygiIikscyYmKHMudGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIpLGcuZGV0YWNoZWRVcGRhdGUpe2xuKCk7cmV0dXJufWlmKGcucmVzdGFydFJlcXVpcmVkPT09ITEpe2goITEpLGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYnVzeSIpLG8uZGlzYWJsZWQ9ITEscyYmKHMudGV4dENvbnRlbnQ9Ilx1NURGMlx1NUI4Q1x1NjIxMCIpO3JldHVybn1pcChvLHMsbCxkLGYpfSkuY2F0Y2goZnVuY3Rpb24oKXtoKCExKSxpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWJ1c3kiKSx2KCJcdTY2RjRcdTY1QjBcdTY3MkFcdTVCOENcdTYyMTAiKSxjKCJcdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTU0MEVcdTkxQ0RcdThCRDUiLCJlcnJvciIpLG8uZGlzYWJsZWQ9ITEscyYmKHMudGV4dENvbnRlbnQ9Ilx1OTFDRFx1OEJENSIpfSl9KX1mdW5jdGlvbiBpcChlLHQsbixpLGEpe2ZldGNoKCIvYXBpL3Jlc3RhcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbigpe2xuKCl9KS5jYXRjaChmdW5jdGlvbigpe2xuKCl9KX1mdW5jdGlvbiB5cyhlLHQpe2UmJihlLmRpc2FibGVkPSEwLGUudGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIpLHQmJih0LnRleHRDb250ZW50PSJcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTIwMjYiLHQuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIpLGZldGNoKCIvYXBpL3Jlc3RhcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbigpe2xuKCl9KS5jYXRjaChmdW5jdGlvbigpe2xuKCl9KX1mdW5jdGlvbiBicyhlKXtyZXR1cm4gdHlwZW9mIGU9PSJzdHJpbmciP2UudHJpbSgpLnJlcGxhY2UoL152LywiIikuc3BsaXQoIisiKVswXToiIn1mdW5jdGlvbiBFcyhlLHQsbil7dCYmKGUuZGF0YXNldC5wcmV2aW91c0luc3RhbmNlSWQ9dCksbiYmKGUuZGF0YXNldC5leHBlY3RlZFZlcnNpb249bil9ZnVuY3Rpb24gRnMoZSl7aWYoZS5kYXRhc2V0LnJlc3RhcnRQb2xsaW5nIT09InRydWUiKXtlLmRhdGFzZXQucmVzdGFydFBvbGxpbmc9InRydWUiO3ZhciB0PTAsbj0xODAsaT1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKHQrKyxmZXRjaCgiL2FwaS9jb25maWciLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih1KXtpZighdS5vayl0aHJvdyBuZXcgRXJyb3IoInNlcnZlciBub3QgcmVhZHkiKTtyZXR1cm4gdS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHUpe3ZhciBvPWUuZGF0YXNldC5wcmV2aW91c0luc3RhbmNlSWR8fCIiLHM9YnMoZS5kYXRhc2V0LmV4cGVjdGVkVmVyc2lvbnx8IiIpLGw9dHlwZW9mIHUuc2VydmVySW5zdGFuY2VJZD09InN0cmluZyI/dS5zZXJ2ZXJJbnN0YW5jZUlkOiIiLGQ9YnModS5wYWNrYWdlVmVyc2lvbnx8dS5jdXJyZW50VmVyc2lvbiksZj0hb3x8bC5sZW5ndGg+MCYmbCE9PW8sYz0hc3x8ZD09PXM7IWZ8fCFjfHwoY2xlYXJJbnRlcnZhbChpKSxsb2NhdGlvbi5yZWxvYWQoKSl9KS5jYXRjaChmdW5jdGlvbigpe30pLHQ+PW4pe2NsZWFySW50ZXJ2YWwoaSk7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIucmVzdGFydC1zdWJ0aXRsZSIpO2EmJihhLmlubmVySFRNTD0nXHU5MUNEXHU1NDJGXHU4RDg1XHU2NUY2XHVGRjBDXHU4QkY3IDxhIGhyZWY9ImphdmFzY3JpcHQ6bG9jYXRpb24ucmVsb2FkKCkiIHN0eWxlPSJjb2xvcjp2YXIoLS1hY2NlbnQpO3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmUiPlx1NjI0Qlx1NTJBOFx1NTIzN1x1NjVCMDwvYT4gXHU5ODc1XHU5NzYyXHUzMDAyJyl9fSwyZTMpfX1mdW5jdGlvbiBsbihlLHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN0YXJ0LW92ZXJsYXkiKTtufHwobj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxuLmlkPSJyZXN0YXJ0LW92ZXJsYXkiLG4uY2xhc3NOYW1lPSJyZXN0YXJ0LW92ZXJsYXkiLG4uaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJyZXN0YXJ0LW92ZXJsYXktY29udGVudCI+PGRpdiBjbGFzcz0icmVzdGFydC1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXRpdGxlIj48L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXN1YnRpdGxlIj48L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobikpLEVzKG4sZSx0KTt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIi5yZXN0YXJ0LXRpdGxlIiksYT1uLnF1ZXJ5U2VsZWN0b3IoIi5yZXN0YXJ0LXN1YnRpdGxlIik7aSYmKGkudGV4dENvbnRlbnQ9dD8iXHU2QjYzXHU1NzI4XHU1QjhDXHU2MjEwXHU2NkY0XHU2NUIwIjoiXHU2NzBEXHU1MkExXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGIiksYSYmKGEudGV4dENvbnRlbnQ9dD8iXHU1Qjg5XHU4OEM1XHU1QjhDXHU2MjEwXHU1RTc2XHU1NDJGXHU1MkE4XHU2NUIwXHU3MjQ4XHU2NzJDXHU1NDBFXHU1QzA2XHU4MUVBXHU1MkE4XHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHUyMDI2IjoiXHU3QTBEXHU1NDBFXHU1QzA2XHU4MUVBXHU1MkE4XHU1MjM3XHU2NUIwXHU5ODc1XHU5NzYyXHUyMDI2IiksRnMobil9ZnVuY3Rpb24gYXAoZSx0LG4pe3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN0YXJ0LW92ZXJsYXkiKTtpfHwoaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxpLmlkPSJyZXN0YXJ0LW92ZXJsYXkiLGkuY2xhc3NOYW1lPSJyZXN0YXJ0LW92ZXJsYXkiLGkuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJyZXN0YXJ0LW92ZXJsYXktY29udGVudCI+PGRpdiBjbGFzcz0icmVzdGFydC1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjBcdTRFMkQ8L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXN1YnRpdGxlIj4nK3AoZSkrIiBcdTIxOTIgIitwKHQpKyI8YnI+XHU2QjYzXHU1NzI4XHU0RTBCXHU4RjdEXHU1RTc2XHU1Qjg5XHU4OEM1XHU2NUIwXHU3MjQ4XHU2NzJDXHVGRjBDXHU3QTBEXHU1NDBFXHU1QzA2XHU4MUVBXHU1MkE4XHU5MUNEXHU1NDJGXHUyMDI2PC9kaXY+PC9kaXY+Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpKSxFcyhpLG4sdCksRnMoaSl9dmFyIHdzLF9hLEllPXtyZWNvcmRpbmc6ITEsY2FuY2VsaW5nOiExLHRyYW5zY3JpcHQ6IiIsc3RhcnRZOjB9LHVwPTYwO2Z1bmN0aW9uIG9wKGUpe0llLnRyYW5zY3JpcHQ9ZXx8IiI7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtdGV4dCIpO3QmJih0LnRleHRDb250ZW50PUllLnRyYW5zY3JpcHQpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXRleHQiLCEhSWUudHJhbnNjcmlwdCl9ZnVuY3Rpb24gc3AoZSl7aWYoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLEllLnN0YXJ0WT10eXBlb2YgZS5jbGllbnRZPT0ibnVtYmVyIj9lLmNsaWVudFk6MDt0cnl7ZS5wb2ludGVySWQhPT12b2lkIDAmJmUudGFyZ2V0JiZlLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZSYmZS50YXJnZXQuc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe319SWUucmVjb3JkaW5nPSEwLEllLmNhbmNlbGluZz0hMSxJZS50cmFuc2NyaXB0PSIiO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7aWYodCl7dC5jbGFzc0xpc3QuYWRkKCJpcy1yZWNvcmRpbmciKTt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTtuJiYobi50ZXh0Q29udGVudD0iXHU2NzdFXHU1RjAwIFx1NTNEMVx1OTAwMSIpfXZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO2kmJmkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiwiaXMtY2FuY2VsaW5nIiwiaGFzLXRleHQiKSxvcCgiIik7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIik7YSYmKGEudGV4dENvbnRlbnQ9Ilx1N0Y1MVx1OTg3NVx1N0FFRlx1NjY4Mlx1NEUwRFx1NjUyRlx1NjMwMVx1OEJFRFx1OTdGM1x1OEY5M1x1NTE2NVx1RkYwQ1x1OEJGN1x1NEY3Rlx1NzUyOCBBcHAiKX1mdW5jdGlvbiBscChlKXtpZighKCFJZS5yZWNvcmRpbmd8fCFlKSl7dmFyIHQ9SWUuc3RhcnRZLSh0eXBlb2YgZS5jbGllbnRZPT0ibnVtYmVyIj9lLmNsaWVudFk6SWUuc3RhcnRZKSxuPXQ+dXA7aWYobiE9PUllLmNhbmNlbGluZyl7SWUuY2FuY2VsaW5nPW47dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7aSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1jYW5jZWxpbmciLG4pO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIiksdT1hJiZhLnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTt1JiYodS50ZXh0Q29udGVudD1uPyJcdTY3N0VcdTVGMDAgXHU1M0Q2XHU2RDg4IjoiXHU2NzdFXHU1RjAwIFx1NTNEMVx1OTAwMSIpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LXN0YXR1cyIpO28mJihvLnRleHRDb250ZW50PW4/Ilx1Njc3RVx1NUYwMFx1NjI0Qlx1NjMwNyBcdTUzRDZcdTZEODgiOiJcdTZCNjNcdTU3MjhcdTgwNDZcdTU0MkNcdTIwMjZcdTRFMEFcdTZFRDFcdTUzRDZcdTZEODgiKX19fWZ1bmN0aW9uIENzKGUpe2lmKEllLnJlY29yZGluZyl7ZSYmZS5wcmV2ZW50RGVmYXVsdCgpLEllLnJlY29yZGluZz0hMTt2YXIgdD0hSWUuY2FuY2VsaW5nJiYhIUllLnRyYW5zY3JpcHQudHJpbSgpLG49SWUudHJhbnNjcmlwdDtOYSgpLHQmJihkcChuKSxqYSghMSkpfX1mdW5jdGlvbiBOYSgpe0llLmNhbmNlbGluZz0hMTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO2lmKGUpe2UuY2xhc3NMaXN0LnJlbW92ZSgiaXMtcmVjb3JkaW5nIik7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIudm9pY2UtcmVjb3JkLWxhYmVsIik7dCYmKHQudGV4dENvbnRlbnQ9Ilx1NjMwOVx1NEY0RiBcdThCRjRcdThCREQiKX12YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uIGRwKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO2lmKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZihuKXt2YXIgaT1uLnZhbHVlfHwiIixhPWk/aS5yZXBsYWNlKC9ccyskLywiIikrIiAiK3Q6dDtuLnZhbHVlPWEsWmUoYSwhMCksQ3Qobik7dHJ5e24uc2V0U2VsZWN0aW9uUmFuZ2UoYS5sZW5ndGgsYS5sZW5ndGgpfWNhdGNoe319fX1mdW5jdGlvbiBqYShlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZih0KXt2YXIgbj10eXBlb2YgZT09ImJvb2xlYW4iP2U6IXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2b2ljZS1tb2RlIik7aWYodC5jbGFzc0xpc3QudG9nZ2xlKCJ2b2ljZS1tb2RlIixuKSwhbil7SWUucmVjb3JkaW5nPSExLE5hKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKGkmJiFyLnRlcm1pbmFsSW50ZXJhY3RpdmUpdHJ5e2kuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KX1jYXRjaHt9fX19ZnVuY3Rpb24gQ3QoZSl7aWYoZSl7dmFyIHQ9MzYsbj0xMjAsaT1xcigpO2lmKCFlLnZhbHVlfHxlLnZhbHVlLnRyaW0oKT09PSIiKXtlLnN0eWxlLmhlaWdodD10KyJweCIsZS5zdHlsZS5taW5IZWlnaHQ9dCsicHgiLGUuc3R5bGUub3ZlcmZsb3dZPWk/ImF1dG8iOiJoaWRkZW4iLGUuc2Nyb2xsVG9wPTAsJGkoZSk7cmV0dXJufXZhciBhPWUuc3R5bGUub3ZlcmZsb3dZO2Uuc3R5bGUub3ZlcmZsb3dZPSJoaWRkZW4iLGUuc3R5bGUuaGVpZ2h0PXQrInB4Ijt2YXIgdT1lLnNjcm9sbEhlaWdodCxvPU1hdGgubWF4KHQsTWF0aC5taW4odSxuKSkscz11Pm47ZS5zdHlsZS5oZWlnaHQ9bysicHgiLGUuc3R5bGUubWluSGVpZ2h0PXQrInB4IixlLnN0eWxlLm92ZXJmbG93WT1zfHxpPyJhdXRvIjoiaGlkZGVuIixzP0lpKGUpOmUuc2Nyb2xsVG9wPTAsJGkoZSl9fWZ1bmN0aW9uIGNwKCl7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4hMTt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gdWUoZSk/ISEoZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KTohIWUmJmUuc3RhdHVzPT09InJ1bm5pbmcifXZhciB4cj0hMTtmdW5jdGlvbiBCcyhlKXtyZXR1cm4hZXx8ZS5hcmNoaXZlZD8hMTp1ZShlKT8hIShlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOmUuc3RhdHVzPT09InJ1bm5pbmcifWZ1bmN0aW9uIFJhKCl7cmV0dXJuIHIuc2Vzc2lvbnMuc29tZShCcyl9ZnVuY3Rpb24gZnAoKXt2YXIgZT1yLnNlc3Npb25zLmZpbHRlcihCcyk7aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIHQ9ZS5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodClyZXR1cm4gdH1yZXR1cm4gZS5zb3J0KGZ1bmN0aW9uKG4saSl7cmV0dXJuKERhdGUucGFyc2UoaS5zdGFydGVkQXQpfHwwKS0oRGF0ZS5wYXJzZShuLnN0YXJ0ZWRBdCl8fDApfSksZVswXX1mdW5jdGlvbiBEcyhlKXtpZighZSlyZXR1cm4iIjtmb3IodmFyIHQ9QXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzOltdLG49dC5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9dHlwZW9mIHRbbl09PSJzdHJpbmciP3Rbbl0udHJpbSgpOiIiO2lmKGkpcmV0dXJuIGl9Zm9yKHZhciBhPUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcyk/ZS5tZXNzYWdlczpbXSx1PWEubGVuZ3RoLTE7dT49MDt1LS0pe3ZhciBvPWFbdV07aWYoISghb3x8by5yb2xlIT09InVzZXIifHwhQXJyYXkuaXNBcnJheShvLmNvbnRlbnQpKSl7dmFyIHM9by5jb250ZW50LmZpbHRlcihmdW5jdGlvbihmKXtyZXR1cm4gZiYmZi50eXBlPT09InRleHQiJiZ0eXBlb2YgZi50ZXh0PT0ic3RyaW5nIn0pLm1hcChmdW5jdGlvbihmKXtyZXR1cm4gZi50ZXh0fSk7aWYocy5sZW5ndGgpcmV0dXJuIHMuam9pbihgCmApLnRyaW0oKTtmb3IodmFyIGw9MDtsPG8uY29udGVudC5sZW5ndGg7bCsrKXt2YXIgZD1vLmNvbnRlbnRbbF07aWYoZCYmZC50eXBlPT09InRvb2xfcmVzdWx0IiYmdHlwZW9mIGQuY29udGVudD09InN0cmluZyIpcmV0dXJuIGQuY29udGVudC50cmltKCl9cmV0dXJuIiJ9fXJldHVybiIifWZ1bmN0aW9uIHBwKGUsdCl7dmFyIG49dHlwZW9mIHQ9PSJzdHJpbmciP3QudHJpbSgpOiIiO2lmKG4mJkRzKGUpPT09bilyZXR1cm4gQSgiXHU0RTBFXHU0RTBBXHU0RTAwXHU2NzYxXHU2RDg4XHU2MDZGXHU3NkY4XHU1NDBDXHVGRjBDXHU1REYyXHU1RkZEXHU3NTY1XHVGRjBDXHU0RTBEXHU0RjFBXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHUzMDAyIiwid2FybmluZyIpLFByb21pc2UucmVzb2x2ZSgpO3ZhciBpPXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOkRhdGUubm93KCkudG9TdHJpbmcoMzYpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDEwKSxhPUFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcyk/ZS5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdLHU9YS5zbGljZSgpO3UucHVzaCh0KSxYKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOnV9KSxlLmlkPT09ci5zZWxlY3RlZElkJiZudCgpO3ZhciBvPWUudGl0bGV8fCRuKGUuY29tbWFuZCl8fCJcdTVGNTNcdTUyNERcdTRGMUFcdThCREQiO3JldHVybiBBKCJcdTVERjJcdTUyQTBcdTUxNjVcdTMwMEMiK28rIlx1MzAwRFx1NzY4NFx1NjM5Mlx1OTYxRlx1RkYwQ1x1NTZERVx1NTkwRFx1N0VEM1x1Njc1Rlx1NTQwRVx1ODFFQVx1NTJBOFx1NTNEMVx1OTAwMVx1RkYwOFx1NTQyQlx1NEUwQVx1NEUwQlx1NjU4N1x1RkYwOVx1MzAwMiIsImluZm8iKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrZS5pZCsiL21lc3NhZ2VzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6dCxpZGVtcG90ZW5jeUtleTppfSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLm9rP3MuanNvbigpOnMuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24obCl7dGhyb3cgbmV3IEVycm9yKGwmJmwuZXJyb3J8fCJcdTY1RTBcdTZDRDVcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTMwMDIiKX0pfSkudGhlbihmdW5jdGlvbihzKXtzJiZzLmlkJiYoWChzKSxzLmlkPT09ci5zZWxlY3RlZElkJiZudCgpKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe1goe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6YX0pLGUuaWQ9PT1yLnNlbGVjdGVkSWQmJm50KCksQShzJiZzLm1lc3NhZ2V8fCJcdTYzOTJcdTk2MUZcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTkxQ0RcdThCRDVcdTMwMDIiLCJlcnJvciIpfSl9ZnVuY3Rpb24ga3MoZSl7dmFyIHQ9ZnAoKTtpZih0JiZ1ZSh0KSl7cHAodCxlKTtyZXR1cm59aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+PTEwKXtBKCJcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTVERjJcdTZFRTFcdUZGMDhcdTY3MDBcdTU5MUEgMTAgXHU2NzYxXHVGRjA5XHVGRjBDXHU4QkY3XHU3QjQ5XHU1Rjg1XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU1QjhDXHU2MjEwXHUzMDAyIiwid2FybmluZyIpO3JldHVybn12YXIgbj0iY3NxLSIrRGF0ZS5ub3coKSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiw4KTtyLmNyb3NzU2Vzc2lvblF1ZXVlLnB1c2goe2lkOm4sdGV4dDplLGN3ZDokZSgpLG1vZGU6ci5jaGF0TW9kZXx8Im1hbmFnZWQiLHRvb2w6cnQoKSxxdWV1ZWRBdDpEYXRlLm5vdygpfSksSnQoKSxCdCgpLEEoIlx1NURGMlx1NjM5Mlx1OTYxRlx1RkYwQ1x1NUMwNlx1NTcyOFx1N0E3QVx1OTVGMlx1NTQwRVx1ODFFQVx1NTJBOFx1NUYwMFx1NTlDQlx1NjVCMFx1NEYxQVx1OEJERFx1MzAwMiIsImluZm8iKX1mdW5jdGlvbiB2cChlKXt4cnx8KHhyPSEwLGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDplLnRvb2wsY3dkOmUuY3dkLG1vZGU6ZS5tb2RlLGluaXRpYWxJbnB1dDplLnRleHR9KSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHhyPSExLHQuZXJyb3I/KEEodC5lcnJvciwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnVuc2hpZnQoZSksSnQoKSxCdCgpLG51bGwpOmZuKHQpfSkuY2F0Y2goZnVuY3Rpb24odCl7eHI9ITEsQSh0JiZ0Lm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTYzOTJcdTk2MUZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUudW5zaGlmdChlKSxKdCgpLEJ0KCl9KSl9ZnVuY3Rpb24gbXAoZSl7dmFyIHQ9ci5jcm9zc1Nlc3Npb25RdWV1ZS5maW5kSW5kZXgoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lfSk7aWYoISh0PDApKXt2YXIgbj1yLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDEpWzBdO0p0KCksQnQoKSxmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6bi50b29sLGN3ZDpuLmN3ZCxtb2RlOm4ubW9kZSxpbml0aWFsSW5wdXQ6bi50ZXh0fSkpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmVycm9yPyhBKGkuZXJyb3IsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwwLG4pLEp0KCksQnQoKSxudWxsKTpmbihpKX0pLmNhdGNoKGZ1bmN0aW9uKGkpe0EoaSYmaS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU2MzkyXHU5NjFGXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDAsbiksSnQoKSxCdCgpfSl9fWZ1bmN0aW9uIGdwKGUpe3ZhciB0PXIuY3Jvc3NTZXNzaW9uUXVldWUuZmluZEluZGV4KGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ZX0pO3Q8MHx8KHIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMSksSnQoKSxCdCgpLHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCYmQSgiXHU2MzkyXHU5NjFGXHU1REYyXHU2RTA1XHU3QTdBXHUzMDAyIiwiaW5mbyIpKX1mdW5jdGlvbiB3aSgpe2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoIT09MCYmIVJhKCkmJiF4cil7dmFyIGU9ci5jcm9zc1Nlc3Npb25RdWV1ZS5zaGlmdCgpO0J0KCksdnAoZSl9fWZ1bmN0aW9uIEFzKGUpe3ZhciB0PU1hdGguZmxvb3IoKERhdGUubm93KCktZSkvMWUzKTtpZih0PDYwKXJldHVybiB0KyJzIjt2YXIgbj1NYXRoLmZsb29yKHQvNjApO3JldHVybiBuPDYwP24rIm0iOk1hdGguZmxvb3Iobi82MCkrImgifWZ1bmN0aW9uIEJ0KCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpO2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPT09MCl7ZSYmZS5yZW1vdmUoKSxKdCgpO3JldHVybn12YXIgdT10JiYhdC5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpLG89dT90OmEscz11P258fGk6bnVsbDtpZihvKXtlJiZlLnBhcmVudE5vZGUhPT1vJiYoZS5yZW1vdmUoKSxlPW51bGwpLGU/dSYmcyYmZS5uZXh0U2libGluZyE9PXMmJm8uaW5zZXJ0QmVmb3JlKGUscyk6KGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5jbGFzc05hbWU9ImNyb3NzLXNlc3Npb24tcXVldWUiLHM/by5pbnNlcnRCZWZvcmUoZSxzKTpvLmFwcGVuZENoaWxkKGUpKTt2YXIgbD1yLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aCxkPXIuY3Jvc3NTZXNzaW9uUXVldWUubWFwKGZ1bmN0aW9uKGMsdil7dmFyIGg9Yy50ZXh0Lmxlbmd0aD42MD9jLnRleHQuc2xpY2UoMCw2MCkrIlx1MjAyNiI6Yy50ZXh0LGc9QXMoYy5xdWV1ZWRBdCk7cmV0dXJuJzxkaXYgY2xhc3M9InF1ZXVlLWl0ZW0iIGRhdGEtcXVldWUtaWQ9IicrcChjLmlkKSsnIj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS10ZXh0IiB0aXRsZT0iJytwKGMudGV4dCkrJyI+JytwKGgpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InF1ZXVlLWl0ZW0tYWdlIj4nK2crJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJxdWV1ZS1pdGVtLXNlbmQtbm93IiBkYXRhLXF1ZXVlLWlkPSInK3AoYy5pZCkrJyIgdGl0bGU9Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMSIgdHlwZT0iYnV0dG9uIj5cdTUzRDFcdTkwMDE8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJxdWV1ZS1pdGVtLWNhbmNlbCIgZGF0YS1xdWV1ZS1pZD0iJytwKGMuaWQpKyciIHRpdGxlPSJcdTUzRDZcdTZEODgiIHR5cGU9ImJ1dHRvbiI+XHhENzwvYnV0dG9uPjwvZGl2Pid9KS5qb2luKCIiKSxmPWw+MT8nPGRpdiBjbGFzcz0icXVldWUtaGVhZGVyIj48c3BhbiBjbGFzcz0icXVldWUtaGVhZGVyLWxhYmVsIj5cdTYzOTJcdTk2MUYgJytsKycgXHU2NzYxPC9zcGFuPjxidXR0b24gY2xhc3M9InF1ZXVlLWhlYWRlci1jbGVhciIgaWQ9InF1ZXVlLWNsZWFyLWFsbCIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU2RTA1XHU3QTdBXHU2MzkyXHU5NjFGIj5cdTZFMDVcdTdBN0E8L2J1dHRvbj48L2Rpdj4nOiIiO2UuaW5uZXJIVE1MPWYrZH19c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIucXVldWUtaXRlbS1hZ2UiKTtyLmNyb3NzU2Vzc2lvblF1ZXVlLmZvckVhY2goZnVuY3Rpb24odCxuKXtlW25dJiYoZVtuXS50ZXh0Q29udGVudD1Bcyh0LnF1ZXVlZEF0KSl9KSx3aSgpfX0sNWUzKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYodC5jbG9zZXN0KCIjcXVldWUtY2xlYXItYWxsIikpe2UucHJldmVudERlZmF1bHQoKSxyLmNyb3NzU2Vzc2lvblF1ZXVlPVtdLEp0KCksQnQoKSxBKCJcdTYzOTJcdTk2MUZcdTVERjJcdTZFMDVcdTdBN0FcdTMwMDIiLCJpbmZvIik7cmV0dXJufXZhciBuPXQuY2xvc2VzdCgiLnF1ZXVlLWl0ZW0tc2VuZC1ub3ciKTtpZihuKXtlLnByZXZlbnREZWZhdWx0KCksbXAobi5kYXRhc2V0LnF1ZXVlSWQpO3JldHVybn12YXIgaT10LmNsb3Nlc3QoIi5xdWV1ZS1pdGVtLWNhbmNlbCIpO2lmKGkpe2UucHJldmVudERlZmF1bHQoKSxncChpLmRhdGFzZXQucXVldWVJZCk7cmV0dXJufX0pO2Z1bmN0aW9uIHhzKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKSx0PWU/ZS52YWx1ZS50cmltKCk6IiI7aWYodCl7aWYoUmEoKSl7ZS52YWx1ZT0iIixrcyh0KTtyZXR1cm59dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MiKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUudmFsdWU9IiIsZS5wbGFjZWhvbGRlcj0iXHU2QjYzXHU1NzI4XHU1NDJGXHU1MkE4XHUyMDI2IixlLmRpc2FibGVkPSEwO3ZhciBpPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixhPSRlKCksdT1ydCgpO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDp1LHByb3ZpZGVyOnUsY3dkOmEsbW9kZTppLGluaXRpYWxJbnB1dDp0fSkpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKG8uZXJyb3Ipe0Eoby5lcnJvciwiZXJyb3IiKSxlLnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLGUuZGlzYWJsZWQ9ITE7cmV0dXJufXIuc2VsZWN0ZWRJZD1vLmlkLGhlKCksci5kcmFmdHNbby5pZF09IiIsd3QoKSxYKG8pLHBlKCksU3Ioby5pZCksUG4oby5pZCksZ24oby5pZCkudGhlbihmdW5jdGlvbigpe2UucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMSxQdCghMCl9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe0EobyYmby5tZXNzYWdlfHwodT09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ2xhdWRlIFx1NEYxQVx1OEJERFx1MzAwMiIpLCJlcnJvciIpLGUucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMX0pfX1mdW5jdGlvbiBocChlKXtlPWV8fHt9O3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksaT10JiZ0LnZhbHVlLnRyaW0oKT90LnZhbHVlLnRyaW0oKTpuP24udmFsdWUudHJpbSgpOiIiO2lmKHIuc2VsZWN0ZWRJZCl7aSYmU3MoZSk7cmV0dXJufWlmKGkmJlJhKCkpe24mJihuLnZhbHVlPSIiKSx0JiYodC52YWx1ZT0iIiksJGkobiksa3MoaSk7cmV0dXJufXZhciBhPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIix1PSRlKCksbz1ydCgpO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDpvLHByb3ZpZGVyOm8sY3dkOnUsbW9kZTphLGluaXRpYWxJbnB1dDppfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuZXJyb3I/KEEocy5lcnJvciwiZXJyb3IiKSxudWxsKTooci5zZWxlY3RlZElkPXMuaWQsaGUoKSxyLmRyYWZ0c1tzLmlkXT0iIix3dCgpLG4mJihuLnZhbHVlPSIiKSx0JiYodC52YWx1ZT0iIiksWChzKSxwZSgpLFNyKHMuaWQpLFBuKHMuaWQpLGduKHMuaWQpKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe0EocyYmcy5tZXNzYWdlfHwobz09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ2xhdWRlIFx1NEYxQVx1OEJERFx1MzAwMiIpLCJlcnJvciIpfSl9ZnVuY3Rpb24gU3IoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiB2LmlkPT09ZX0pLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtdGl0bGUiKSxzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1pbmZvIiksbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdW1tYXJ5LXZhbHVlIiksZD11ZSh0KTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIixkKSxhJiZhLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGQ/ci5jdXJyZW50Vmlldz0iY2hhdCI6ci5jdXJyZW50Vmlldz0idGVybWluYWwiO3ZhciBmPXQ/JG4odC5jb21tYW5kKToiV2FuZCIsYz10P3ZyKHQpOiJcdTVGMDBcdTU5Q0JcdTVCRjlcdThCREQiO28mJihvLnRleHRDb250ZW50PWYpLHMmJihzLnRleHRDb250ZW50PWMpLGwmJihsLnRleHRDb250ZW50PWYpLGR8fHIudGVybWluYWx8fFluKCksS2koKSxQdCghMCksZHx8UWUoInZpZXctc3dpdGNoIix7Zm9yY2VSZXBsYXk6ITB9KX1mdW5jdGlvbiBTcyhlKXtlPWV8fHt9O3ZhciB0PSEhZS5pbnRlcnJ1cHQsbj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIik7aWYoci50ZXJtaW5hbEludGVyYWN0aXZlJiYhbilyZXR1cm4gQSgiXHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyXHU2QTIxXHU1RjBGXHU1RjAwXHU1NDJGXHU2NUY2XHVGRjBDXHU4QkY3XHU3NkY0XHU2M0E1XHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU4RjkzXHU1MTY1XHUzMDAyIiwiaW5mbyIpLFByb21pc2UucmVzb2x2ZSgpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxhPWk/aS52YWx1ZToiIix1PUR0KCksbz1yLnBlbmRpbmdBdHRhY2htZW50cy5sZW5ndGg+MDtpZihhfHxvKXt2YXIgcz1vJiZyLnNlbGVjdGVkSWQ/TWcoci5zZWxlY3RlZElkKS5jYXRjaChmdW5jdGlvbihsKXtBKCJcdTk2NDRcdTRFRjZcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjU6ICIrKGwmJmwubWVzc2FnZXx8bCksImVycm9yIik7dmFyIGQ9bCBpbnN0YW5jZW9mIEVycm9yP2w6bmV3IEVycm9yKFN0cmluZyhsKSk7dGhyb3cgZC5fX3dhbmRUb2FzdGVkPSEwLGR9KTpQcm9taXNlLnJlc29sdmUoW10pO3JldHVybiBzLnRoZW4oZnVuY3Rpb24obCl7dmFyIGQ9cWcobCksZj1kKyhhfHwobC5sZW5ndGg/Ilx1OEJGN1x1NjdFNVx1NzcwQlx1OTY0NFx1NEVGNlx1MzAwMiI6IiIpKTtsLmxlbmd0aCYmTGcoKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO2lmKGMmJmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdWUodSkpcmV0dXJuIHlwKGYsaSx1LHtpbnRlcnJ1cHQ6dH0pO3ZhciB2PVBwKHUsZiksaD0hci53c0Nvbm5lY3RlZDtyZXR1cm4gaD8oTnAodiksaSYmKGkudmFsdWU9IiIsQ3QoaSkpLFplKCIiKSxQcm9taXNlLnJlc29sdmUoKSk6cXAodSkudGhlbihmdW5jdGlvbihnKXtpZighZylyZXR1cm4gbnVsbDt2YXIgbT1yLmN1cnJlbnRWaWV3O2lmKGcmJmcucHJvdmlkZXI9PT0iY29kZXgiJiZyLnNlbGVjdGVkSWQhPT1nLmlkKXRocm93IG5ldyBFcnJvcigiQ29kZXggc2Vzc2lvbiBjaGFuZ2VkIGJlZm9yZSBpbnB1dCBzZW5kLiIpO3JldHVybiBWdSgpLE9wKHYsImVudGVyX3RleHQiLDMwLG0pLnRoZW4oZnVuY3Rpb24oKXtpJiZpLnZhbHVlPT09YSYmKGkudmFsdWU9IiIsQ3QoaSkpLFplKCIiKX0pfSkuY2F0Y2goZnVuY3Rpb24oZyl7dGhyb3cgQShQcyhnKSwiZXJyb3IiKSxnJiYoZy5fX3dhbmRUb2FzdGVkPSEwKSxnfSl9KS5jYXRjaChmdW5jdGlvbihsKXt0aHJvdyBsJiZsLl9fd2FuZFRvYXN0ZWR8fEEoUHMobCksImVycm9yIiksbH0pfXJldHVybiBQcm9taXNlLnJlc29sdmUoKX12YXIgSXM9e30sVHM9MzUwO2Z1bmN0aW9uIHlwKGUsdCxuLGkpe2k9aXx8e307dmFyIGE9ISFpLmludGVycnVwdDtpZighci5zZWxlY3RlZElkfHwhZSlyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7aWYoIW4pcmV0dXJuIEEoIlx1NEYxQVx1OEJERFx1NEUwRFx1NUI1OFx1NTcyOFx1RkYwQ1x1OEJGN1x1OTFDRFx1NjVCMFx1OTAwOVx1NjJFOVx1NjIxNlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHU9ISEobi5zdHJ1Y3R1cmVkU3RhdGUmJm4uc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZuLnN0YXR1cz09PSJydW5uaW5nIik7aWYodSYmIWEmJkRzKG4pPT09ZS50cmltKCkpcmV0dXJuIHQmJih0LnZhbHVlPSIiLEN0KHQpKSxaZSgiIiksQSgiXHU0RTBFXHU0RTBBXHU0RTAwXHU2NzYxXHU2RDg4XHU2MDZGXHU3NkY4XHU1NDBDXHVGRjBDXHU1REYyXHU1RkZEXHU3NTY1XHVGRjBDXHU0RTBEXHU0RjFBXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHUzMDAyIiwid2FybmluZyIpLExuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxQcm9taXNlLnJlc29sdmUoKTt2YXIgbz1EYXRlLm5vdygpLHM9SXNbbi5pZF18fDA7aWYoby1zPFRzKXJldHVybiBjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RTdHJ1Y3R1cmVkSW5wdXQ6IGR1cGxpY2F0ZSBzdWJtaXQgKHdpdGhpbiAiK1RzKyJtcykgaWdub3JlZCBmb3Igc2Vzc2lvbiIsbi5pZCksUHJvbWlzZS5yZXNvbHZlKCk7SXNbbi5pZF09bzt2YXIgbD11JiZhLGQ9dSYmIWEsZj1jcihBcnJheS5pc0FycmF5KG4ubWVzc2FnZXMpP24ubWVzc2FnZXMuc2xpY2UoKTpbXSksYztpZihkKXt2YXIgdj1BcnJheS5pc0FycmF5KG4ucXVldWVkTWVzc2FnZXMpP24ucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTt2LnB1c2goZSksYz17aWQ6bi5pZCxxdWV1ZWRNZXNzYWdlczp2fSxYKGMpO3ZhciBoPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihFKXtyZXR1cm4gRS5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz16ZShoLFhlKGgsaC5vdXRwdXQsITEpKSxMbigiXHU1REYyXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHUyMDI2IiksVmUoITApLGRuKCksQSh2Lmxlbmd0aD4xPyJcdTVERjJcdTUyQTBcdTUxNjVcdTYzOTJcdTk2MUZcdUZGMDhcdTUxNzEgIit2Lmxlbmd0aCsiIFx1Njc2MVx1N0I0OVx1NUY4NVx1RkYwOSI6Ilx1NURGMlx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1RkYwQ1x1N0I0OVx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1NUI4Q1x1NjIxMFx1NEYxQVx1ODFFQVx1NTJBOFx1NTNEMVx1OTAwMVx1MzAwMiIsImluZm8iKX1lbHNle3ZhciBnPXtyb2xlOiJ1c2VyIixjb250ZW50Olt7dHlwZToidGV4dCIsdGV4dDplfV19O2YucHVzaChnKTt2YXIgbT1PYmplY3QuYXNzaWduKHt9LG4uc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ITB9KTtYKHtpZDpuLmlkLHN0YXR1czoicnVubmluZyIsbWVzc2FnZXM6ZixzdHJ1Y3R1cmVkU3RhdGU6bX0pLHIuY3VycmVudE1lc3NhZ2VzPXplKE9iamVjdC5hc3NpZ24oe30sbix7c3RhdHVzOiJydW5uaW5nIixtZXNzYWdlczpmLHN0cnVjdHVyZWRTdGF0ZTptfSksZiksTG4obD8iXHU1REYyXHU0RTJEXHU2NUFEXHVGRjBDXHU2QjYzXHU1NzI4XHU1OTA0XHU3NDA2XHU2NUIwXHU2RDg4XHU2MDZGXHUyMDI2IjoiXHU2MDFEXHU4MDAzXHU0RTJEXHUyMDI2IiksVnUoKSxWZSghMCksbCYmQSgiXHU1REYyXHU0RTJEXHU2NUFEXHU0RTBBXHU0RTAwXHU2NzYxXHU1NkRFXHU1OTBEXHVGRjBDXHU2QjYzXHU1NzI4XHU1OTA0XHU3NDA2XHU2NUIwXHU2RDg4XHU2MDZGXHUyMDI2IiwiaW5mbyIpfXQmJih0LnZhbHVlPSIiLEN0KHQpKSxaZSgiIik7dmFyIHk9ci5xdWV1ZUVwb2NoLEM9dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEP2NyeXB0by5yYW5kb21VVUlEKCk6RGF0ZS5ub3coKS50b1N0cmluZygzNikrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsMTApO3JldHVybiBmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrbi5pZCsiL21lc3NhZ2VzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSxpbnRlcnJ1cHQ6bHx8dm9pZCAwLGlkZW1wb3RlbmN5S2V5OkN9KX0pLnRoZW4oZnVuY3Rpb24oRSl7cmV0dXJuIEUub2s/RS5qc29uKCk6RS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihCKXt2YXIgRD1uZXcgRXJyb3IoQiYmQi5lcnJvcnx8Ilx1NjVFMFx1NkNENVx1NTNEMVx1OTAwMVx1N0VEM1x1Njc4NFx1NTMxNlx1NkQ4OFx1NjA2Rlx1MzAwMiIpO3Rocm93IEQuZXJyb3JDb2RlPUImJkIuZXJyb3JDb2RlLEQuaHR0cFN0YXR1cz1FLnN0YXR1cyxEfSl9KS50aGVuKGZ1bmN0aW9uKEUpe2lmKEUmJkUuZXJyb3IpdGhyb3cgbmV3IEVycm9yKEUuZXJyb3IpO2lmKEUmJkUuaWQmJihyLnF1ZXVlRXBvY2g+eSYmRS5xdWV1ZWRNZXNzYWdlcyYmZGVsZXRlIEUucXVldWVkTWVzc2FnZXMsWChFKSxFLmlkPT09ci5zZWxlY3RlZElkKSl7dmFyIEI9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEQpe3JldHVybiBELmlkPT09RS5pZH0pfHxFO3IuY3VycmVudE1lc3NhZ2VzPXplKEIsWGUoQixFLm91dHB1dCwhMSkpLFZlKCEwKSxkbigpfX0pLmNhdGNoKGZ1bmN0aW9uKEUpe2lmKEUmJkUuZXJyb3JDb2RlPT09ImR1cGxpY2F0ZV9pZGVtcG90ZW5jeV9rZXkiKXtBKEUubWVzc2FnZXx8Ilx1NjhDMFx1NkQ0Qlx1NTIzMFx1OTFDRFx1NTkwRFx1NTNEMVx1OTAwMVx1RkYwQ1x1NURGMlx1NjJFNlx1NjIyQVx1MzAwMiIsIndhcm5pbmciKSxMbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIik7cmV0dXJufWlmKGQpe3ZhciBCPUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKFgoe2lkOm4uaWQscXVldWVkTWVzc2FnZXM6Qn0pLG4uaWQ9PT1yLnNlbGVjdGVkSWQpe3ZhciBEPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihIKXtyZXR1cm4gSC5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz16ZShELFhlKEQsRC5vdXRwdXQsITEpKSxWZSghMCksZG4oKX19ZWxzZXt2YXIgRj1mLnNsaWNlKDAsLTEpO1goe2lkOm4uaWQsc3RhdHVzOm4uc3RhdHVzLG1lc3NhZ2VzOkYsc3RydWN0dXJlZFN0YXRlOk9iamVjdC5hc3NpZ24oe30sbi5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDohMX0pfSksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKHIuY3VycmVudE1lc3NhZ2VzPXplKE9iamVjdC5hc3NpZ24oe30sbix7bWVzc2FnZXM6RixzdHJ1Y3R1cmVkU3RhdGU6T2JqZWN0LmFzc2lnbih7fSxuLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OiExfSl9KSxGKSxWZSghMCkpfXZhciBJPUUmJkUubWVzc2FnZXx8IiIsTD1JPT09IkZhaWxlZCB0byBmZXRjaCJ8fEk9PT0iTmV0d29ya0Vycm9yIHdoZW4gYXR0ZW1wdGluZyB0byBmZXRjaCByZXNvdXJjZS4ifHxJPT09IkxvYWQgZmFpbGVkInx8L2Fib3J0ZWR8YWJvcnRlcnJvcnxuZXR3b3JrZXJyb3J8ZmFpbGVkIHRvIGZldGNoL2kudGVzdChJKTtMfHxBKEUmJkUubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTNEMVx1OTAwMVx1N0VEM1x1Njc4NFx1NTMxNlx1NkQ4OFx1NjA2Rlx1MzAwMiIsImVycm9yIiksTG4oIkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpfSl9ZnVuY3Rpb24gTG4oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWhpbnQiKTt0JiYodC50ZXh0Q29udGVudD1lKX1mdW5jdGlvbiBkbigpe250KCl9dmFyIGJwPTEwLExzPTI2O2Z1bmN0aW9uIEVwKGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIilyZXR1cm4iIjt2YXIgdD1lLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO3JldHVybiB0Lmxlbmd0aDw9THM/dDp0LnNsaWNlKDAsTHMpKyJcdTIwMjYifWZ1bmN0aW9uIEZwKCl7cmV0dXJuISFyLnF1ZXVlQmFyRXhwYW5kZWR9ZnVuY3Rpb24gd3AoZSl7aWYoISFyLnF1ZXVlQmFyRXhwYW5kZWQhPSEhZSl7ci5xdWV1ZUJhckV4cGFuZGVkPSEhZTt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucXVldWUtYmFyIik7dCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJleHBhbmRlZCIsISFlKX19ZnVuY3Rpb24gQ3AoZSx0LG4pe3ZhciBpPWUubGVuZ3RoLGE9InF1ZXVlLWJhciI7biYmKGErPSIgcXVldWUtYmFyLWNhcGFjaXR5IiksdCYmKGErPSIgcXVldWUtYmFyLWluZmxpZ2h0Iik7Zm9yKHZhciB1PXQ/Ilx1NEUyRFx1NjVBRFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1RkYwQ1x1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MSI6Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MSIsbz0iIixzPTA7czxpO3MrKyl7dmFyIGw9ZVtzXT09bnVsbD8iIjpTdHJpbmcoZVtzXSksZD1FcChsKSxmPWwrIlx1RkYwOFx1NjMwOVx1NEY0Rlx1NTNFRlx1NjJENlx1NTJBOFx1OEMwM1x1NUU4Rlx1RkYwOSI7bys9JzxsaSBjbGFzcz0icXVldWUtYmFyLWl0ZW0iIGRhdGEtaW5kZXg9IicrcysnIiBkYXRhLWFjdGlvbj0iZHJhZyIgdGl0bGU9IicrcChmKSsnIj48c3BhbiBjbGFzcz0icXVldWUtYmFyLWl0ZW0taW5kZXgiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nKyhzKzEpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InF1ZXVlLWJhci1pdGVtLXRleHQiPicrcChkKSsnPC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXVldWUtYmFyLWl0ZW0tcHJvbW90ZSIgZGF0YS1hY3Rpb249InByb21vdGUtaXRlbSIgdGl0bGU9IicrcCh1KSsnIiBhcmlhLWxhYmVsPSJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTdCMkMgJysocysxKSsnIFx1Njc2MSI+PHN2ZyB3aWR0aD0iMTEiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iY3VycmVudENvbG9yIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTEzIDIgTDQgMTQgTDExIDE0IEwxMCAyMiBMMjAgOSBMMTMgOSBaIi8+PC9zdmc+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1kZWxldGUiIGRhdGEtYWN0aW9uPSJkZWxldGUiIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1N0IyQyAnKyhzKzEpKycgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGIiB0aXRsZT0iXHU1MjIwXHU5NjY0Ij48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjYiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iNiIgeTE9IjE4IiB4Mj0iMTgiIHkyPSI2Ii8+PC9zdmc+PC9idXR0b24+PC9saT4nfXZhciBjPSIiO3JldHVybiBpPj0yJiYoYz0nPGRpdiBjbGFzcz0icXVldWUtYmFyLWhlYWQiPjxzcGFuIGNsYXNzPSJxdWV1ZS1iYXItaGVhZC1jb3VudCI+JytpKycgXHU2NzYxXHU2MzkyXHU5NjFGPC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icXVldWUtYmFyLWNsZWFyLWFsbCIgZGF0YS1hY3Rpb249ImNsZWFyLWFsbCIgdGl0bGU9Ilx1NkUwNVx1N0E3QVx1NTE2OFx1OTBFOFx1NjM5Mlx1OTYxRiIgYXJpYS1sYWJlbD0iXHU2RTA1XHU3QTdBXHU1MTY4XHU5MEU4ICcraSsnIFx1Njc2MVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2RiI+XHU2RTA1XHU3QTdBPC9idXR0b24+PC9kaXY+JyksJzxkaXYgY2xhc3M9IicrYSsnIiBkYXRhLXF1ZXVlLWJhcj0iMSIgdGl0bGU9Ilx1NjM5Mlx1OTYxRiAnK2krJyBcdTY3NjFcdUZGMDhcdTYzMDlcdTRGNEZcdTZDMTRcdTZDRTFcdTUzRUZcdThDMDNcdTVFOEZcdUZGMDkiPicrYysnPG9sIGNsYXNzPSJxdWV1ZS1iYXItbGlzdCIgZGF0YS1xdWV1ZS1saXN0PSIxIj4nK28rIjwvb2w+PC9kaXY+In1mdW5jdGlvbiBudCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWV1ZS1iYXItaG9zdCIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIixpPW4/ZGEodCk6W107aWYoaT1BcnJheS5pc0FycmF5KGkpP2k6W10sIW58fGkubGVuZ3RoPT09MCl7ZS5oaWRkZW49ITAsZS5pbm5lckhUTUw9IiIsci5xdWV1ZUJhckV4cGFuZGVkPSExO3JldHVybn1pZighci5xdWV1ZUJhckRyYWcpe2UuaGlkZGVuPSExO3ZhciBhPSEhKHQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmdC5zdGF0dXM9PT0icnVubmluZyIpLHU9aS5sZW5ndGg+PWJwO2UuaW5uZXJIVE1MPUNwKGksYSx1KX19fWZ1bmN0aW9uIENpKGUsdCl7WCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczp0fSk7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZS5pZH0pfHxlO3IuY3VycmVudE1lc3NhZ2VzPXplKG4sWGUobixuLm91dHB1dCwhMSkpLFZlKCEwKSxudCgpfWZ1bmN0aW9uIEJwKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKHQpe3ZhciBuPUFycmF5LmlzQXJyYXkodC5xdWV1ZWRNZXNzYWdlcyk/dC5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKCEoZTwwfHxlPj1uLmxlbmd0aCkpe3ZhciBpPW4uc2xpY2UoKSxhPW4uc2xpY2UoMCxlKS5jb25jYXQobi5zbGljZShlKzEpKTtYKHtpZDp0LmlkLHF1ZXVlZE1lc3NhZ2VzOmF9KTt2YXIgdT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT10LmlkfSl8fHQ7ci5jdXJyZW50TWVzc2FnZXM9emUodSxYZSh1LHUub3V0cHV0LCExKSksVmUoITApLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK3QuaWQrIi9xdWV1ZWQvIitlLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obyl7aWYoIW8ub2spcmV0dXJuIG8uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKHMpe3Rocm93IG5ldyBFcnJvcihzJiZzLmVycm9yfHwiXHU1MjIwXHU5NjY0XHU1OTMxXHU4RDI1Iil9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe0NpKHQsaSksQShvJiZvLm1lc3NhZ2V8fCJcdTUyMjBcdTk2NjRcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX1mdW5jdGlvbiBEcCgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZS5xdWV1ZWRNZXNzYWdlcyk/ZS5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKHQubGVuZ3RoIT09MCl7ci5xdWV1ZUJhckV4cGFuZGVkPSExLFgoe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6W119KTt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lLmlkfSl8fGU7ci5jdXJyZW50TWVzc2FnZXM9emUobixYZShuLG4ub3V0cHV0LCExKSksVmUoITApLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9xdWV1ZWQiLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoIWkub2spcmV0dXJuIGkuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGEpe3Rocm93IG5ldyBFcnJvcihhJiZhLmVycm9yfHwiXHU2RTA1XHU3QTdBXHU1OTMxXHU4RDI1Iil9KTtBKCJcdTVERjJcdTZFMDVcdTdBN0EgIit0Lmxlbmd0aCsiIFx1Njc2MVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1MzAwMiIsImluZm8iKX0pLmNhdGNoKGZ1bmN0aW9uKGkpe0NpKGUsdCksQShpJiZpLm1lc3NhZ2V8fCJcdTZFMDVcdTdBN0FcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX1mdW5jdGlvbiBrcChlKXtpZighci5xdWV1ZUJhclByb21vdGluZyl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodCl7dmFyIG49QXJyYXkuaXNBcnJheSh0LnF1ZXVlZE1lc3NhZ2VzKT90LnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoIShlPDB8fGU+PW4ubGVuZ3RoKSl7dmFyIGk9bltlXSxhPW4uc2xpY2UoMCxlKS5jb25jYXQobi5zbGljZShlKzEpKSx1PW4uc2xpY2UoKSxvPSEhKHQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmdC5zdGF0dXM9PT0icnVubmluZyIpO3IucXVldWVCYXJQcm9tb3Rpbmc9ITAsYS5sZW5ndGg9PT0wJiYoci5xdWV1ZUJhckV4cGFuZGVkPSExKSxYKHtpZDp0LmlkLHF1ZXVlZE1lc3NhZ2VzOmF9KTt2YXIgcz10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKTpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCk7QShvPyJcdTVERjJcdThCRjdcdTZDNDJcdTRFMkRcdTY1QURcdTVGNTNcdTUyNERcdTU2REVcdTU5MERcdUZGMENcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjFcdTMwMDIiOiJcdTVERjJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdThGRDlcdTY3NjFcdTZEODhcdTYwNkZcdTMwMDIiLCJpbmZvIiksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK3QuaWQrIi9xdWV1ZWQvIitlKyIvcHJvbW90ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2V4cGVjdGVkVGV4dDppLGlkZW1wb3RlbmN5S2V5OnN9KX0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwub2s/bC5qc29uKCk6bC5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oZCl7dGhyb3cgbmV3IEVycm9yKGQmJmQuZXJyb3J8fCJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjUiKX0pfSkudGhlbihmdW5jdGlvbihsKXtpZihsJiZsLmlkJiYoWChsKSxsLmlkPT09ci5zZWxlY3RlZElkKSl7dmFyIGQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGYpe3JldHVybiBmLmlkPT09bC5pZH0pfHxsO3IuY3VycmVudE1lc3NhZ2VzPXplKGQsWGUoZCxsLm91dHB1dCwhMSkpLFZlKCEwKSxudCgpfXIucXVldWVCYXJQcm9tb3Rpbmc9ITF9KS5jYXRjaChmdW5jdGlvbihsKXtyLnF1ZXVlQmFyUHJvbW90aW5nPSExLENpKHQsdSksQShsJiZsLm1lc3NhZ2V8fCJcdTdBQ0JcdTUzNzNcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpfSl9fX19ZnVuY3Rpb24gQXAoZSx0KXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihuKXt2YXIgaT1BcnJheS5pc0FycmF5KG4ucXVldWVkTWVzc2FnZXMpP24ucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZighKGkubGVuZ3RoPD0xKSYmdCl7dmFyIGE9dC5wYXJlbnRFbGVtZW50O2lmKGEpe3ZhciB1PU51bWJlcih0LmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpKSxvPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGEuY2hpbGRyZW4pLHM9by5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIGMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9KSxsPTM7cy5sZW5ndGg+PTImJihsPU1hdGgubWF4KDAsc1sxXS50b3Atc1swXS50b3Atc1swXS5oZWlnaHQpKSxlLnByZXZlbnREZWZhdWx0KCk7dHJ5e3Quc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe31pZihuYXZpZ2F0b3ImJm5hdmlnYXRvci52aWJyYXRlKXRyeXtuYXZpZ2F0b3IudmlicmF0ZSg4KX1jYXRjaHt9ci5xdWV1ZUJhckRyYWc9e3BvaW50ZXJJZDplLnBvaW50ZXJJZCxoYW5kbGVFbDp0LGl0ZW1FbDp0LGxpc3RFbDphLHNpYmxpbmdzOm8scmVjdHM6cyxvcmlnSW5kZXg6dSx0YXJnZXRJbmRleDp1LHN0YXJ0WTplLmNsaWVudFksZ2FwOmwscXVldWVTbmFwc2hvdDppfSx0LmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksby5mb3JFYWNoKGZ1bmN0aW9uKGMpe2MhPT10JiZjLmNsYXNzTGlzdC5hZGQoInF1ZXVlLWJhci1pdGVtLXNsaWRpbmciKX0pO3ZhciBkPWZ1bmN0aW9uKGMpe1NwKGMpfSxmPWZ1bmN0aW9uKGMpe0lwKGMpfTtyLnF1ZXVlQmFyRHJhZy5tb3ZlSGFuZGxlcj1kLHIucXVldWVCYXJEcmFnLnVwSGFuZGxlcj1mLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLGQpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixmKSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLGYpfX19fWZ1bmN0aW9uIHhwKGUsdCxuLGkpe2Zvcih2YXIgYT1uLmxlbmd0aCx1PVtdLG89MDtvPGE7bysrKXUucHVzaChvKTt1LnNwbGljZShlLDEpLHUuc3BsaWNlKHQsMCxlKTtmb3IodmFyIHM9blswXS50b3AsbD1uWzBdLnRvcCxkPTE7ZDxhO2QrKyluW2RdLnRvcDxsJiYobD1uW2RdLnRvcCk7Zm9yKHZhciBmPXt9LGM9bCx2PTA7djxhO3YrKyl7dmFyIGg9dVt2XTtmW2hdPWMsYys9bltoXS5oZWlnaHQraX1yZXR1cm4gZn1mdW5jdGlvbiBTcChlKXt2YXIgdD1yLnF1ZXVlQmFyRHJhZztpZighKCF0fHxlLnBvaW50ZXJJZCE9PXQucG9pbnRlcklkKSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPWUuY2xpZW50WS10LnN0YXJ0WTt0Lml0ZW1FbC5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZVkoIituKyJweCkiO2Zvcih2YXIgaT10LnJlY3RzW3Qub3JpZ0luZGV4XS50b3ArdC5yZWN0c1t0Lm9yaWdJbmRleF0uaGVpZ2h0LzIrbixhPXQub3JpZ0luZGV4LHU9MDt1PHQucmVjdHMubGVuZ3RoO3UrKylpZih1IT09dC5vcmlnSW5kZXgpe3ZhciBvPXQucmVjdHNbdV0udG9wK3QucmVjdHNbdV0uaGVpZ2h0LzI7dTx0Lm9yaWdJbmRleCYmaTxvP2E9TWF0aC5taW4oYSx1KTp1PnQub3JpZ0luZGV4JiZpPm8mJihhPU1hdGgubWF4KGEsdSkpfWlmKGEhPT10LnRhcmdldEluZGV4KXt0LnRhcmdldEluZGV4PWE7dmFyIHM9eHAodC5vcmlnSW5kZXgsYSx0LnJlY3RzLHQuZ2FwKTt0LnNpYmxpbmdzLmZvckVhY2goZnVuY3Rpb24obCxkKXtpZihkIT09dC5vcmlnSW5kZXgpe3ZhciBmPXNbZF0tdC5yZWN0c1tkXS50b3A7bC5zdHlsZS50cmFuc2Zvcm09Zj8idHJhbnNsYXRlWSgiK2YrInB4KSI6IiJ9fSl9fX1mdW5jdGlvbiBJcChlKXt2YXIgdD1yLnF1ZXVlQmFyRHJhZztpZighKCF0fHxlJiZlLnBvaW50ZXJJZCE9PXQucG9pbnRlcklkKSl7dHJ5e3QuaGFuZGxlRWwucmVsZWFzZVBvaW50ZXJDYXB0dXJlKHQucG9pbnRlcklkKX1jYXRjaHt9dC5oYW5kbGVFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsdC5tb3ZlSGFuZGxlciksdC5oYW5kbGVFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHQudXBIYW5kbGVyKSx0LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHQudXBIYW5kbGVyKTt2YXIgbj10Lm9yaWdJbmRleCxpPXQudGFyZ2V0SW5kZXgsYT10LnF1ZXVlU25hcHNob3Q7aWYodC5zaWJsaW5ncy5mb3JFYWNoKGZ1bmN0aW9uKGQpe2Quc3R5bGUudHJhbnNmb3JtPSIiLGQuY2xhc3NMaXN0LnJlbW92ZSgicXVldWUtYmFyLWl0ZW0tc2xpZGluZyIpfSksdC5pdGVtRWwuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxyLnF1ZXVlQmFyRHJhZz1udWxsLG49PT1pKXtudCgpO3JldHVybn1mb3IodmFyIHU9W10sbz0wO288YS5sZW5ndGg7bysrKXUucHVzaChvKTt1LnNwbGljZShuLDEpLHUuc3BsaWNlKGksMCxuKTt2YXIgcz11Lm1hcChmdW5jdGlvbihkKXtyZXR1cm4gYVtkXX0pLGw9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoIWwpe250KCk7cmV0dXJufVgoe2lkOmwuaWQscXVldWVkTWVzc2FnZXM6c30pLG50KCksZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2wuaWQrIi9xdWV1ZWQiLHttZXRob2Q6IlBBVENIIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7b3JkZXI6dX0pfSkudGhlbihmdW5jdGlvbihkKXtpZighZC5vaylyZXR1cm4gZC5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oZil7dGhyb3cgbmV3IEVycm9yKGYmJmYuZXJyb3J8fCJcdTYzOTJcdTVFOEZcdTU5MzFcdThEMjUiKX0pfSkuY2F0Y2goZnVuY3Rpb24oZCl7Q2kobCxhKSxBKGQmJmQubWVzc2FnZXx8Ilx1OEMwM1x1NjU3NFx1NjM5Mlx1OTYxRlx1OTg3QVx1NUU4Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19ZnVuY3Rpb24gVHAoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVldWUtYmFyLWhvc3QiKTshZXx8ZS5fX3F1ZXVlRGVsZWdhdGVkfHwoZS5fX3F1ZXVlRGVsZWdhdGVkPSEwLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0LGk9biYmbi5jbG9zZXN0P24uY2xvc2VzdCgiW2RhdGEtYWN0aW9uXSIpOm51bGw7aWYoaSYmZS5jb250YWlucyhpKSl7dmFyIGE9aS5nZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIik7aWYoYT09PSJkcmFnIilyZXR1cm47aWYodC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCksYT09PSJwcm9tb3RlLWl0ZW0iKXt2YXIgdT1pLmNsb3Nlc3QoIi5xdWV1ZS1iYXItaXRlbSIpO3UmJmtwKE51bWJlcih1LmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpKSl9ZWxzZSBpZihhPT09ImRlbGV0ZSIpe3ZhciBvPWkuY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik7byYmQnAoTnVtYmVyKG8uZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpKX1lbHNlIGE9PT0iY2xlYXItYWxsIiYmRHAoKTtyZXR1cm59fSksZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsZnVuY3Rpb24odCl7aWYoISh0LmJ1dHRvbiE9PXZvaWQgMCYmdC5idXR0b24hPT0wKSl7dmFyIG49dC50YXJnZXQ7aWYoIShuJiZuLmNsb3Nlc3QmJm4uY2xvc2VzdCgnW2RhdGEtYWN0aW9uPSJkZWxldGUiXSwgW2RhdGEtYWN0aW9uPSJwcm9tb3RlLWl0ZW0iXSwgW2RhdGEtYWN0aW9uPSJjbGVhci1hbGwiXSwgW2RhdGEtYWN0aW9uPSJleHBhbmQiXScpKSl7dmFyIGk9biYmbi5jbG9zZXN0P24uY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik6bnVsbDtpJiZBcCh0LGkpfX19KSxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJkZwKCkmJih0LnN0b3BQcm9wYWdhdGlvbigpLHdwKCExKSl9KSl9ZnVuY3Rpb24gTXMoZSl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUuY29udGVudCkpcmV0dXJuIDA7Zm9yKHZhciB0PTAsbj0wO248ZS5jb250ZW50Lmxlbmd0aDtuKyspe3ZhciBpPWUuY29udGVudFtuXTtpZihpKXtpZih0eXBlb2YgaS50ZXh0PT0ic3RyaW5nIiYmKHQrPWkudGV4dC5sZW5ndGgpLHR5cGVvZiBpLnRoaW5raW5nPT0ic3RyaW5nIiYmKHQrPWkudGhpbmtpbmcubGVuZ3RoKSx0eXBlb2YgaS5jb250ZW50PT0ic3RyaW5nIil0Kz1pLmNvbnRlbnQubGVuZ3RoO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpKWZvcih2YXIgYT0wO2E8aS5jb250ZW50Lmxlbmd0aDthKyspe3ZhciB1PWkuY29udGVudFthXTt1JiZ0eXBlb2YgdS50ZXh0PT0ic3RyaW5nIiYmKHQrPXUudGV4dC5sZW5ndGgpfWlmKGkuaW5wdXQpdHJ5e3QrPUpTT04uc3RyaW5naWZ5KGkuaW5wdXQpLmxlbmd0aH1jYXRjaHt9fX1yZXR1cm4gdH1mdW5jdGlvbiBMcChlLHQpe2lmKCFlKXJldHVybiB0O2lmKCF0KXJldHVybiBlO3ZhciBuPU1zKGUpLGk9TXModCk7cmV0dXJuIGk+PW4/dDpPYmplY3QuYXNzaWduKHt9LGUse3VzYWdlOnQudXNhZ2V8fGUudXNhZ2V9KX1mdW5jdGlvbiB6ZShlLHQpe3ZhciBuPUFycmF5LmlzQXJyYXkodCk/Y3IodCk6W10saT1BcnJheS5pc0FycmF5KG4pP24uc2xpY2UoKTpbXTtpZighZXx8ZS5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIilyZXR1cm4gaTtpZihlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpe3ZhciBhPWlbaS5sZW5ndGgtMV07KCFhfHxhLnJvbGUhPT0iYXNzaXN0YW50IikmJmkucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50Olt7dHlwZToidGV4dCIsdGV4dDoiIixfX3Byb2Nlc3Npbmc6ITB9XX0pfXJldHVybiBpfWZ1bmN0aW9uIHFzKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7dGkoZSksZG4oKX1mdW5jdGlvbiBQcyhlKXt2YXIgdD1EdCgpLG49dCYmdC5wcm92aWRlcj09PSJjb2RleCI7cmV0dXJuIGUmJihlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9SVU5OSU5HInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT19QVFkiKT9uPyJDb2RleCBcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUZcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU1NzI4XHU0RjYwXHU0RTBCXHU2QjIxXHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHU2NUY2XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHUzMDAyIjoiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGXHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENsYXVkZSBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTU3MjhcdTRGNjBcdTRFMEJcdTZCMjFcdTUzRDFcdTkwMDFcdTZEODhcdTYwNkZcdTY1RjZcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTMwMDIiOmUmJmUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX0ZPVU5EIj8iXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIjplJiZlLm1lc3NhZ2V8fChuPyJDb2RleCBcdTRGMUFcdThCRERcdTY2ODJcdTRFMERcdTUzRUZcdTc1MjhcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHVGRjBDXHU1QzA2XHU4MUVBXHU1MkE4XHU1QzFEXHU4QkQ1XHU2MDYyXHU1OTBEXHUzMDAyIjoiXHU0RjFBXHU4QkREXHU2NjgyXHU0RTBEXHU1M0VGXHU3NTI4XHVGRjFCXHU4MkU1XHU1QjU4XHU1NzI4IENsYXVkZSBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTgxRUFcdTUyQThcdTVDMURcdThCRDVcdTYwNjJcdTU5MERcdTMwMDIiKX1mdW5jdGlvbiBPcyhlKXt2YXIgdD1uZXcgRXJyb3IoZSYmZS5lcnJvcnx8Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1Rlx1MzAwMiIpO3JldHVybiBlJiZ0eXBlb2YgZT09Im9iamVjdCImJih0LmVycm9yQ29kZT1lLmVycm9yQ29kZXx8bnVsbCx0LnNlc3Npb25JZD1lLnNlc3Npb25JZHx8ci5zZWxlY3RlZElkfHxudWxsLHQuc2Vzc2lvblN0YXR1cz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSwic2Vzc2lvblN0YXR1cyIpP2Uuc2Vzc2lvblN0YXR1czpudWxsKSx0fWZ1bmN0aW9uIEhzKGUpe3JldHVybiBlJiYoZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfUlVOTklORyJ8fGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9fUFRZInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfRk9VTkQiKX1mdW5jdGlvbiBNcChlLHQpe2UmJlgoe2lkOmUsc3RhdHVzOnR8fCJleGl0ZWQifSl9ZnVuY3Rpb24gbmgoZSl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpfHxlLm1lc3NhZ2VzLmxlbmd0aDwyKXJldHVybiExO3ZhciB0PWUubWVzc2FnZXMuc29tZShmdW5jdGlvbihpKXtyZXR1cm4gaSYmaS5yb2xlPT09InVzZXIiJiZBcnJheS5pc0FycmF5KGkuY29udGVudCkmJmkuY29udGVudC5zb21lKGZ1bmN0aW9uKGEpe3JldHVybiBhJiZhLnR5cGU9PT0idGV4dCImJnR5cGVvZiBhLnRleHQ9PSJzdHJpbmciJiZhLnRleHQudHJpbSgpLmxlbmd0aD4wfSl9KSxuPWUubWVzc2FnZXMuc29tZShmdW5jdGlvbihpKXtyZXR1cm4gaSYmaS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkoaS5jb250ZW50KSYmaS5jb250ZW50LnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIGEudGV4dD09InN0cmluZyImJmEudGV4dC50cmltKCkubGVuZ3RoPjB9KX0pO3JldHVybiB0JiZufWZ1bmN0aW9uIFdhKGUpe3JldHVybiEhKGUmJiF1ZShlKSYmKGUucHJvdmlkZXI9PT0iY2xhdWRlInx8ZS5wcm92aWRlcj09PSJjb2RleCIpJiZlLnN0YXR1cyE9PSJydW5uaW5nIiYmZS5jbGF1ZGVTZXNzaW9uSWQpfWZ1bmN0aW9uIHFwKGUsdCl7aWYoIWUpcmV0dXJuIEEoIlx1NEYxQVx1OEJERFx1NEUwRFx1NUI1OFx1NTcyOFx1RkYwQ1x1OEJGN1x1OTFDRFx1NjVCMFx1OTAwOVx1NjJFOVx1NjIxNlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksUHJvbWlzZS5yZXNvbHZlKG51bGwpO2lmKGUuc3RhdHVzPT09InJ1bm5pbmciKXJldHVybiBQcm9taXNlLnJlc29sdmUoZSk7aWYoIVdhKGUpKXt2YXIgbj1lJiZlLnByb3ZpZGVyPT09ImNvZGV4Ij8iQ29kZXgiOiJDbGF1ZGUiO3JldHVybiBBKCJcdThCRTVcdTRGMUFcdThCRERcdTZDQTFcdTY3MDlcdTUzRUZcdTYwNjJcdTU5MERcdTc2ODQgIituKyIgXHU1Mzg2XHU1M0YyXHU0RTBBXHU0RTBCXHU2NTg3XHVGRjBDXHU4QkY3XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUobnVsbCl9cmV0dXJuIEpzKGUuaWQsdCkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT8oWChpKSxwZSgpLFBuKGkuaWQpLGduKGkuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gUHQoITApLGl9KSk6bnVsbH0pfWZ1bmN0aW9uIFBwKGUsdCl7cmV0dXJuW3QsIlxyIl19ZnVuY3Rpb24gT3AoZSx0LG4saSl7dmFyIGE9QXJyYXkuaXNBcnJheShlKT9lLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4hIW99KTpbXTtpZihhLmxlbmd0aD09PTApcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciB1PXR5cGVvZiBuPT0ibnVtYmVyIj9uOjA7cmV0dXJuIGEucmVkdWNlKGZ1bmN0aW9uKG8scyxsKXtyZXR1cm4gby50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGw+MCYmdT4wP25ldyBQcm9taXNlKGZ1bmN0aW9uKGQpe3NldFRpbWVvdXQoZCx1KX0pLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdnQocyxsPT09YS5sZW5ndGgtMT90OnZvaWQgMCxpKX0pOnZ0KHMsbD09PWEubGVuZ3RoLTE/dDp2b2lkIDAsaSl9KX0sUHJvbWlzZS5yZXNvbHZlKCkpfXZhciBIcD01ZTMsX3A9MTAwO2Z1bmN0aW9uIHphKGUpe2UmJihyLnBlbmRpbmdNZXNzYWdlcy5sZW5ndGg+PV9wJiZyLnBlbmRpbmdNZXNzYWdlcy5zaGlmdCgpLHIucGVuZGluZ01lc3NhZ2VzLnB1c2goe2lucHV0OmUsYXQ6RGF0ZS5ub3coKX0pKX1mdW5jdGlvbiBOcChlKXt2YXIgdD1BcnJheS5pc0FycmF5KGUpP2UuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiEhbn0pOltdO3QuZm9yRWFjaChmdW5jdGlvbihuKXt6YShuKX0pfWZ1bmN0aW9uIGpwKGUpe2lmKCEodHlwZW9mIGUhPSJzdHJpbmcifHwhZSkpe3ZhciB0PWUucmVwbGFjZSgvXHgxYlxbMjAwfi9nLCIiKS5yZXBsYWNlKC9ceDFiXFsyMDF+L2csIiIpOy8oPzpefFxuKVxzKlwvY2xlYXJccyooPzpccnxcbnwkKS8udGVzdCh0KSYmdHlwZW9mIHI8InUiJiZyJiYoci50ZXJtaW5hbE91dHB1dE1hcmtlcj0oci50ZXJtaW5hbE91dHB1dCYmci50ZXJtaW5hbE91dHB1dC5sZW5ndGgpfDApfX1mdW5jdGlvbiB2dChlLHQsbil7cmV0dXJuIWV8fCFyLnNlbGVjdGVkSWQ/UHJvbWlzZS5yZXNvbHZlKCk6KGpwKGUpLHIubWVzc2FnZVF1ZXVlLnB1c2goZSksci5pbnB1dFF1ZXVlPXIuaW5wdXRRdWV1ZS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIFJwKGUsdCxuKS5maW5hbGx5KGZ1bmN0aW9uKCl7dmFyIGk9ci5tZXNzYWdlUXVldWUuaW5kZXhPZihlKTtpPi0xJiZyLm1lc3NhZ2VRdWV1ZS5zcGxpY2UoaSwxKX0pfSksci5pbnB1dFF1ZXVlKX1mdW5jdGlvbiBScChlLHQsbil7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGk9ci5zZWxlY3RlZElkLGE9bnx8ci5jdXJyZW50VmlldztyZXR1cm4gY3AoKT9yLndzQ29ubmVjdGVkP2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIraSsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSx2aWV3OmEsc2hvcnRjdXRLZXk6dHx8dm9pZCAwfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lm9rP3UuanNvbigpOnUuanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue2Vycm9yOiJcdThCRjdcdTZDNDJcdTU5MzFcdThEMjUifX0pLnRoZW4oZnVuY3Rpb24obyl7dmFyIHM9T3Mobyk7dGhyb3cgcy5odHRwU3RhdHVzPXUuc3RhdHVzLGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBwb3N0SW5wdXQ6IHJlcXVlc3QgZmFpbGVkIix7c3RhdHVzOnUuc3RhdHVzLGVycm9yQ29kZTpzLmVycm9yQ29kZSxtZXNzYWdlOnMubWVzc2FnZSxzZXNzaW9uSWQ6aX0pLEhzKHMpJiZNcChpLHMuc2Vzc2lvblN0YXR1c3x8ImV4aXRlZCIpLHN9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUmJnUuaWQmJihYKHUpLHUuaWQ9PT1yLnNlbGVjdGVkSWQmJih1Lm1lc3NhZ2VzJiZ1Lm1lc3NhZ2VzLmxlbmd0aD4wJiYoci5jdXJyZW50TWVzc2FnZXM9dS5tZXNzYWdlcyksVmUoITApKSksdX0pOih6YShlKSxjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RJbnB1dDogV2ViU29ja2V0IGRpc2Nvbm5lY3RlZCwgcXVldWVkIG1lc3NhZ2UiLHtzZXNzaW9uSWQ6ci5zZWxlY3RlZElkLGlucHV0TGVuZ3RoOmUubGVuZ3RofSksUHJvbWlzZS5yZXNvbHZlKCkpOnIud3NDb25uZWN0ZWQ/KGNvbnNvbGUud2FybigiW3dhbmRdIHBvc3RJbnB1dDogc2Vzc2lvbiBub3QgcnVubmluZywgc2tpcHBpbmcgc2VuZCIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWR9KSxBKCJcdTRGMUFcdThCRERcdTY3MkFcdThGRDBcdTg4NENcdUZGMENcdTZCNjNcdTU3MjhcdTdCNDlcdTVGODVcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDIiLCJpbmZvIiksUHJvbWlzZS5yZXNvbHZlKCkpOih6YShlKSxjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RJbnB1dDogc2Vzc2lvbiBub3QgcnVubmluZywgcXVldWVkIGZvciByZWNvbm5lY3QiLHtzZXNzaW9uSWQ6ci5zZWxlY3RlZElkLGlucHV0TGVuZ3RoOmUubGVuZ3RofSksUHJvbWlzZS5yZXNvbHZlKCkpfWZ1bmN0aW9uIHJoKGUpe3JldHVybiB2dChlKX1mdW5jdGlvbiBEdCgpe3JldHVybiByLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT1yLnNlbGVjdGVkSWR9KXx8bnVsbH1mdW5jdGlvbiBpaChlKXtyZXR1cm4gZSYmZS5wcm92aWRlcj09PSJjb2RleCI/YApgOiJcciJ9ZnVuY3Rpb24gVmEoKXtyZXR1cm4hIXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCJ9ZnVuY3Rpb24gV3AoZSl7cmV0dXJuISghci50ZXJtaW5hbHx8IWV8fGUhPT1yLnNlbGVjdGVkSWR8fHIudGVybWluYWxTZXNzaW9uSWQmJnIudGVybWluYWxTZXNzaW9uSWQhPT1lKX1mdW5jdGlvbiBfcyhlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlfHwhVmEoKXx8ZS5kZWZhdWx0UHJldmVudGVkfHxlLmlzQ29tcG9zaW5nKXJldHVybiExO3ZhciB0PWUudGFyZ2V0O3JldHVybiB0PyEoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpJiZ0LmNsb3Nlc3QmJnQuY2xvc2VzdCgiI2lucHV0LWJveCIpfHx0LmNsb3Nlc3QmJnQuY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQiKXx8R3AodCkpOiEwfXZhciB6cD17RXNjOiJlc2NhcGUiLEFycm93VXA6InVwIixBcnJvd0Rvd246ImRvd24iLEFycm93TGVmdDoibGVmdCIsQXJyb3dSaWdodDoicmlnaHQiLEVudGVyOiJlbnRlciIsVGFiOiJ0YWIiLEJhY2tzcGFjZToiYmFja3NwYWNlIixIb21lOiJob21lIixFbmQ6ImVuZCIsUGFnZVVwOiJwYWdldXAiLFBhZ2VEb3duOiJwYWdlZG93biIsRGVsZXRlOiJkZWxldGUiLEluc2VydDoiaW5zZXJ0IiwiICI6InNwYWNlIn0sVnA9e3NwYWNlOiIgIix0YWI6IgkiLHNoaWZ0X3RhYjoiXHgxQltaIixiYWNrc3BhY2U6Ilx4N0YiLGhvbWU6Ilx4MUJbSCIsZW5kOiJceDFCW0YiLHBhZ2V1cDoiXHgxQls1fiIscGFnZWRvd246Ilx4MUJbNn4iLGRlbGV0ZToiXHgxQlszfiIsaW5zZXJ0OiJceDFCWzJ+In0sTnM9eyIgIjowLCJbIjoyNywiXFwiOjI4LCJdIjoyOSwiXiI6MzAsXzozMX0sVXA9NDAwLEtwPTEwLEpwPTgsQmk9NTQsY249OCxVYT1be2tleToiZW50ZXIiLGxhYmVsOiJFbnRlciJ9LHtrZXk6ImN0cmxfYyIsbGFiZWw6IkN0cmwrQyJ9LHtrZXk6ImVzY2FwZSIsbGFiZWw6IkVzYyJ9LHtrZXk6InNoaWZ0X3RhYiIsbGFiZWw6IlNoaWZ0K1RhYiJ9XSxZcD1uZXcgU2V0KFsibWluaS1rZXlib2FyZC1mYWIiLCJtaW5pLWtleWJvYXJkLXRvZ2dsZSIsInRlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZSJdKTtmdW5jdGlvbiBHcChlKXtyZXR1cm4hIShlJiZZcC5oYXMoZS5pZCkpfXZhciBRcD1uZXcgU2V0KFsiY3RybCIsImFsdCIsInNoaWZ0Il0pO2Z1bmN0aW9uIGpzKGUpe3JldHVybiBRcC5oYXMoZSl9ZnVuY3Rpb24gJHAoZSl7cmV0dXJuIFZwW2VdfHwiIn1mdW5jdGlvbiBYcChlKXt2YXIgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ+PSJhIiYmdDw9InoiP1N0cmluZy5mcm9tQ2hhckNvZGUodC5jaGFyQ29kZUF0KDApLTk2KTpPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoTnMsdCk/U3RyaW5nLmZyb21DaGFyQ29kZShOc1t0XSk6IiJ9ZnVuY3Rpb24gWnAoZSl7cmV0dXJuIHpwW2Uua2V5XXx8ZS5rZXl9ZnVuY3Rpb24gZXYoZSx0KXtyZXR1cm57Y3RybDplLmN0cmxLZXksYWx0OmUuYWx0S2V5LHNoaWZ0OmUuc2hpZnRLZXkmJih0Lmxlbmd0aD09PTF8fHQ9PT0idGFiIiksbWV0YTplLm1ldGFLZXl9fWZ1bmN0aW9uIFJzKGUsdCl7ZSYmdnQoZSx0KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIHR2KCl7ZWwoKX1mdW5jdGlvbiBLYShlKXtyLmtleWJvYXJkUG9wdXBPcGVuPSExLGUhPT0hMSYma2koKSxpdigpfWZ1bmN0aW9uIG52KCl7VmEoKSYmTW4oIXIudGVybWluYWxJbnRlcmFjdGl2ZSl9ZnVuY3Rpb24gTW4oZSl7dmFyIHQ9ISFlJiZWYSgpO3IudGVybWluYWxJbnRlcmFjdGl2ZSE9PXQmJihyLnRlcm1pbmFsSW50ZXJhY3RpdmU9dCx0PyhhdigpLEthKCExKSx0digpLEEoIlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mlx1NkEyMVx1NUYwRlx1NURGMlx1NUYwMFx1NTQyRiIsImluZm8iKSk6KHV2KCksa2koKSksSXIoKSl9ZnVuY3Rpb24gSmEoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KSx0PSFlfHxlLnN0YXR1cyE9PSJydW5uaW5nInx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCI7aWYodCYmci50ZXJtaW5hbEludGVyYWN0aXZlKXtNbighMSk7cmV0dXJufSghZXx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCIpJiZyLmtleWJvYXJkUG9wdXBPcGVuJiYoci5rZXlib2FyZFBvcHVwT3Blbj0hMSksSXIoKX1mdW5jdGlvbiBJcigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih5KXtyZXR1cm4geS5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9dWUoZSksbj1lJiZlLnByb3ZpZGVyPT09ImNvZGV4IixpPXQ/ISEoZSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KTohIWUmJmUuc3RhdHVzPT09InJ1bm5pbmciLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLHU9WyJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIl07dS5mb3JFYWNoKGZ1bmN0aW9uKHkpe3ZhciBDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHkpO2lmKEMpe0MuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLEMuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtb24iLHIudGVybWluYWxJbnRlcmFjdGl2ZSksQy5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLHR8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwifHwhZSksQy5zZXRBdHRyaWJ1dGUoImFyaWEtY2hlY2tlZCIsci50ZXJtaW5hbEludGVyYWN0aXZlPyJ0cnVlIjoiZmFsc2UiKTt2YXIgRT1DLnF1ZXJ5U2VsZWN0b3IoIi5wbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRlIik7RSYmKEUudGV4dENvbnRlbnQ9ci50ZXJtaW5hbEludGVyYWN0aXZlPyJcdTVGMDAiOiJcdTUxNzMiKX19KTt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtaGludCIpO28mJihvLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsdD8hMDpyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiksIXQmJmUmJihvLnRleHRDb250ZW50PW4/IkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IGNoYXQgXHU0RTNBXHU4OUUzXHU2NzkwXHU4OUM2XHU1NkZFXHVGRjBDdGVybWluYWwgXHU0RTNBXHU1MzlGXHU1OUNCXHU4RjkzXHU1MUZBIjoiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIikpO3ZhciBzPSF0JiYhaSYmV2EoZSk7YSYmKGEucGxhY2Vob2xkZXI9RGwoZSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUpLGEuZGlzYWJsZWQ9IXQmJiEhZSYmIWkmJiFzLGEuc2V0QXR0cmlidXRlKCJhcmlhLWRpc2FibGVkIixhLmRpc2FibGVkPyJ0cnVlIjoiZmFsc2UiKSxhLnJlYWRPbmx5PSExLGEuY2xhc3NMaXN0LnRvZ2dsZSgiaXMtdGVybWluYWwtcGFzc3Rocm91Z2giLCEhci50ZXJtaW5hbEludGVyYWN0aXZlJiYhZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpKSk7dmFyIGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7bCYmci50ZXJtaW5hbEludGVyYWN0aXZlJiZsLmNsYXNzTGlzdC5jb250YWlucygidm9pY2UtbW9kZSIpJiYobC5jbGFzc0xpc3QucmVtb3ZlKCJ2b2ljZS1tb2RlIiksSWUucmVjb3JkaW5nPSExLE5hKCkpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kLWlucHV0LWJ1dHRvbiIpLGY9dCYmaTtkJiYoZC5kaXNhYmxlZD0hdCYmISFlJiYhaSYmIXMsZC5zZXRBdHRyaWJ1dGUoInRpdGxlIix0P2Y/Ilx1NjM5Mlx1OTYxRlx1NTNEMVx1OTAwMVx1RkYwOFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1N0VEM1x1Njc1Rlx1NTQwRVx1NTkwNFx1NzQwNlx1RkYwOSI6Ilx1NTNEMVx1OTAwMSI6bj9pPyJcdTUzRDFcdTkwMDFcdTdFRDkgQ29kZXgiOiJDb2RleCBcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiOiFlfHxpfHxzPyJcdTUzRDFcdTkwMDEiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiKSxkLmNsYXNzTGlzdC50b2dnbGUoInF1ZXVlLW1vZGUiLGYpKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKTtpZihjKXt2YXIgdj1NdShlKTtjLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXYuYWN0aXZlKX12YXIgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKTtpZihoKXt2YXIgZz1NdShlKTtoLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIWcuYWN0aXZlKX12YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7bSYmbS5jbGFzc0xpc3QudG9nZ2xlKCJpbnRlcmFjdGl2ZSIsIXQmJnIudGVybWluYWxJbnRlcmFjdGl2ZSksbnMoKX1mdW5jdGlvbiBEaSgpe3ZhciBlPXdpbmRvdy5nZXRTZWxlY3Rpb24mJndpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighZXx8ZS5pc0NvbGxhcHNlZClyZXR1cm4hMTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoIXQpcmV0dXJuITE7dmFyIG49ZS5hbmNob3JOb2RlO3JldHVybiBuJiZuLm5vZGVUeXBlPT09MyYmKG49bi5wYXJlbnROb2RlKSwhIShuJiZ0LmNvbnRhaW5zKG4pKX1mdW5jdGlvbiBZYShlKXtpZihfcyhlKSYmIWUubWV0YUtleSl7dmFyIHQ9WnAoZSk7aWYodCl7dmFyIG49ZXYoZSx0KTtpZighanModCkmJiEobi5jdHJsJiZ0Lmxlbmd0aD09PTEmJnQudG9Mb3dlckNhc2UoKT09PSJjIiYmRGkoKSkpe3ZhciBpPXpzKHQsbik7aSYmKGUucHJldmVudERlZmF1bHQoKSxScyhpLHQpKX19fX1mdW5jdGlvbiBydigpe3IudGVybWluYWwmJkFmKDUwMCl9ZnVuY3Rpb24gaXYoKXtGcigpfWZ1bmN0aW9uIGFoKGUpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLCEoci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fCFyLnNlbGVjdGVkSWQpJiYoci5rZXlib2FyZFBvcHVwT3Blbj0hci5rZXlib2FyZFBvcHVwT3BlbixJcigpKX1mdW5jdGlvbiBXcygpe3Iua2V5Ym9hcmRQb3B1cE9wZW49ITEsSXIoKX1mdW5jdGlvbiBhdigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLFlhLCEwKX1mdW5jdGlvbiB1digpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLFlhLCEwKX1mdW5jdGlvbiB6cyhlLHQpe3ZhciBuPXR8fHtjdHJsOiExLGFsdDohMSxzaGlmdDohMX07aWYoanMoZSkpcmV0dXJuIiI7aWYoZT09PSJ0YWIiJiZuLnNoaWZ0KXJldHVybiJceDFCW1oiO3ZhciBpPSRwKGUpO2lmKGkpcmV0dXJuIGk7aWYoZS5pbmRleE9mKCJjdHJsXyIpPT09MClyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSktOTYpO3ZhciBhPVRyKGUpO2lmKGEpcmV0dXJuIGE7aWYoIWUpcmV0dXJuIiI7dmFyIHU9ZS5sZW5ndGg9PT0xP2U6IiI7cmV0dXJuIHU/KG4uc2hpZnQmJih1PXUudG9VcHBlckNhc2UoKSksbi5jdHJsP1hwKHUpOm4uYWx0PyJceDFCIit1OnUpOiIifWZ1bmN0aW9uIGtpKCl7ci5tb2RpZmllcnMuY3RybD0hMSxyLm1vZGlmaWVycy5hbHQ9ITEsci5tb2RpZmllcnMuc2hpZnQ9ITEsb3YoKX1mdW5jdGlvbiBvdigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtaW5pLWtleWJvYXJkIik7ZSYmWyJjdHJsIiwiYWx0Iiwic2hpZnQiXS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcignW2RhdGEta2V5PSInK3QrJyJdJyk7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhci5tb2RpZmllcnNbdF0pfSl9ZnVuY3Rpb24gVHIoZSl7c3dpdGNoKGUpe2Nhc2UieWVzIjpyZXR1cm4ieVxyIjtjYXNlIm5vIjpyZXR1cm4iblxyIjtjYXNlInVwIjpyZXR1cm4iXHgxQltBIjtjYXNlImRvd24iOnJldHVybiJceDFCW0IiO2Nhc2UibGVmdCI6cmV0dXJuIlx4MUJbRCI7Y2FzZSJyaWdodCI6cmV0dXJuIlx4MUJbQyI7Y2FzZSJlbnRlciI6cmV0dXJuIlxyIjtjYXNlImN0cmxfYyI6cmV0dXJuIgMiO2Nhc2UiY3RybF9kIjpyZXR1cm4iBCI7Y2FzZSJjdHJsX2wiOnJldHVybiJcZiI7Y2FzZSJjdHJsX3UiOnJldHVybiIVIjtjYXNlImN0cmxfayI6cmV0dXJuIlx2IjtjYXNlImN0cmxfdyI6cmV0dXJuIhciO2Nhc2UiY3RybF96IjpyZXR1cm4iGiI7Y2FzZSJlc2NhcGUiOnJldHVybiJceDFCIjtkZWZhdWx0OnJldHVybiIifX1mdW5jdGlvbiBzdigpe2lmKHIucGVuZGluZ01lc3NhZ2VzLmxlbmd0aCE9PTApe3ZhciBlPUR0KCk7aWYodWUoZSkpe3IucGVuZGluZ01lc3NhZ2VzPVtdO3JldHVybn12YXIgdD1EYXRlLm5vdygpLG49W10saT0wO3IucGVuZGluZ01lc3NhZ2VzLmZvckVhY2goZnVuY3Rpb24odSl7aWYodHlwZW9mIHU9PSJzdHJpbmciKXtuLnB1c2godSk7cmV0dXJufWlmKCEoIXV8fHR5cGVvZiB1LmlucHV0IT0ic3RyaW5nIikpe2lmKHQtKHUuYXR8fDApPkhwKXtpKys7cmV0dXJufW4ucHVzaCh1LmlucHV0KX19KSxyLnBlbmRpbmdNZXNzYWdlcz1bXSxpPjAmJmNvbnNvbGUubG9nKCJbd2FuZF0gZmx1c2hQZW5kaW5nTWVzc2FnZXM6IGRyb3BwZWQgIitpKyIgc3RhbGUgaW5wdXQocykiKTt2YXIgYT1Qcm9taXNlLnJlc29sdmUoKTtuLmZvckVhY2goZnVuY3Rpb24odSl7YT1hLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbHYodSkuY2F0Y2goZnVuY3Rpb24oKXt9KX0pfSl9fWZ1bmN0aW9uIGx2KGUpe2lmKCFlfHwhci5zZWxlY3RlZElkKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgdD1yLnNlbGVjdGVkSWQ7cmV0dXJuIGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrdCsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6ZSx2aWV3OnIuY3VycmVudFZpZXd9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4ub2s/bi5qc29uKCk6bi5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihpKXt2YXIgYT1PcyhpKTtpZihhLmh0dHBTdGF0dXM9bi5zdGF0dXMsSHMoYSkpcmV0dXJuIGNvbnNvbGUubG9nKCJbd2FuZF0gc2VuZElucHV0RGlyZWN0OiBzZXNzaW9uIHVuYXZhaWxhYmxlLCBkcm9wcGluZyIse3Nlc3Npb25JZDp0LGVycm9yQ29kZTphLmVycm9yQ29kZX0pLG51bGw7dGhyb3cgYX0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbiYmbi5pZCYmKFgobiksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKG4ubWVzc2FnZXMmJm4ubWVzc2FnZXMubGVuZ3RoPjAmJihyLmN1cnJlbnRNZXNzYWdlcz1uLm1lc3NhZ2VzKSxWZSghMCkpKSxufSl9ZnVuY3Rpb24gR2EoKXtpZihyLnNlbGVjdGVkSWQpe3ZhciBlPXIuc2VsZWN0ZWRJZDtNYShFZSgic3RvcC5jb25maXJtLm1lc3NhZ2UiKSx7dGl0bGU6RWUoInN0b3AuY29uZmlybS50aXRsZSIpLGRhbmdlcjohMCxva0xhYmVsOkVlKCJzdG9wLmNvbmZpcm0ub2siKSxjYW5jZWxMYWJlbDpFZSgic3RvcC5jb25maXJtLmNhbmNlbCIpfSkudGhlbihmdW5jdGlvbih0KXt0JiZyLnNlbGVjdGVkSWQ9PT1lJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2UrIi9zdG9wIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihPdCl9KX19ZnVuY3Rpb24gUWEoZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNlc3Npb24taXRlbVtkYXRhLXNlc3Npb24taWQ9IicrZSsnIl0nKTt0JiZ0LmNsYXNzTGlzdC5hZGQoImRlbGV0aW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil0aHJvdyBuZXcgRXJyb3Iobi5lcnJvcik7cmV0dXJuIHIuc2VsZWN0ZWRJZD09PWUmJihyLnNlbGVjdGVkSWQ9bnVsbCxoZSgpKSxPdCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImRlbGV0aW5nIik7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO0hlKG4sIlx1NjVFMFx1NkNENVx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERFx1MzAwMiIpfSl9LDI1MCl9ZnVuY3Rpb24gVnMoZSx0KXt0JiZ0LmNsYXNzTGlzdC5hZGQoImRlbGV0aW5nIiksc2V0VGltZW91dChmdW5jdGlvbigpe2ZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5LyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXRocm93IG5ldyBFcnJvcihuLmVycm9yKTtyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5jbGF1ZGVTZXNzaW9uSWQhPT1lfSksZGVsZXRlIHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzW2VdLHBlKCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiZGVsZXRpbmciKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7SGUobiwiXHU2NUUwXHU2Q0Q1XHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREXHUzMDAyIil9KX0sMjUwKX1mdW5jdGlvbiB1aChlLHQpe1ZzKGUsdCl9ZnVuY3Rpb24gZHYoZSx0LG4pe2UmJmZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5P2N3ZD0iK2VuY29kZVVSSUNvbXBvbmVudChlKSx7bWV0aG9kOiJERUxFVEUiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSYmaS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoaS5lcnJvcik7ci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY3dkIT09ZX0pLHBlKCl9KS5jYXRjaChmdW5jdGlvbigpe1VzKG4sITEpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtIZShpLCJcdTY1RTBcdTZDRDVcdTZFMDVcdTc0MDZcdThCRTVcdTc2RUVcdTVGNTVcdTc2ODRcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfWZ1bmN0aW9uIFVzKGUsdCl7ZS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uY2xhc3NMaXN0LnRvZ2dsZSgiZGVsZXRpbmciLHQpfSl9ZnVuY3Rpb24gY3YoZSl7cmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jbGF1ZGUtaGlzdG9yeS1pdGVtW2RhdGEtY3dkPSInK3dpbmRvdy5DU1MuZXNjYXBlKFN0cmluZyhlKSkrJyJdJykpfXZhciBLcz1udWxsLExyPW51bGw7ZnVuY3Rpb24gTXIoKXtpZihMcil7THIuY2xhc3NMaXN0LnJlbW92ZSgic3dpcGVkIik7dmFyIGU9THIucXVlcnlTZWxlY3RvcigiLnNlc3Npb24taXRlbS1jb250ZW50Iik7ZSYmKGUuc3R5bGUudHJhbnNmb3JtPSIiKSxMcj1udWxsfX1mdW5jdGlvbiBmdihlKXtLcz1udWxsLExyPW51bGx9ZnVuY3Rpb24gcHYoZSx0LG4pe2U9PT0iY2xhdWRlIiYmKHIucHJlZmVycmVkQ29tbWFuZD1lLHIuY2hhdE1vZGU9bXQoZSxyLmNoYXRNb2RlKSk7dmFyIGk9ZT09PSJjbGF1ZGUifHxlPT09ImNvZGV4Ij9PcihlKToiIjtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGx0KHtjb21tYW5kOmUsY3dkOnR8fCIiLG1vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixtb2RlbDppfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5lcnJvcj8obiYmSGUobixhLmVycm9yKSxudWxsKTooci5zZWxlY3RlZElkPWEuaWQsaGUoKSxyLmRyYWZ0c1thLmlkXT0iIixhKX0pfXZhciAkYT0hMTtmdW5jdGlvbiBKcyhlLHQpe3JldHVybiFlfHwkYT9Qcm9taXNlLnJlc29sdmUobnVsbCk6KCRhPSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQifSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyh0P0hlKHQsbi5lcnJvcik6QShuLmVycm9yLCJlcnJvciIpLG51bGwpOihyLnNlbGVjdGVkSWQ9bi5pZCxoZSgpLHIuZHJhZnRzW24uaWRdPSIiLG4pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU0RjFBXHU4QkREXHUzMDAyIjtyZXR1cm4gdD9IZSh0LGkpOkEoaSwiZXJyb3IiKSxudWxsfSkuZmluYWxseShmdW5jdGlvbigpeyRhPSExfSkpfWZ1bmN0aW9uIG9oKGUsdCl7cmV0dXJuIGU/ZmV0Y2goIi9hcGkvY2xhdWRlLXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQifSkpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmVycm9yPyh0P0hlKHQsbi5lcnJvcik6QShuLmVycm9yLCJlcnJvciIpLG51bGwpOihyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihpKXtyZXR1cm4gaS5jbGF1ZGVTZXNzaW9uSWQhPT1lfSksci5zZWxlY3RlZElkPW4uaWQsaGUoKSxyLmRyYWZ0c1tuLmlkXT0iIixuKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjMwOSBDbGF1ZGUgXHU0RjFBXHU4QkREIElEIFx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERFx1MzAwMiI7cmV0dXJuIHQ/SGUodCxpKTpBKGksImVycm9yIiksbnVsbH0pOlByb21pc2UucmVzb2x2ZShudWxsKX1mdW5jdGlvbiBmbihlKXtyZXR1cm4hZXx8IWUuaWQ/UHJvbWlzZS5yZXNvbHZlKCk6KHIuc2VsZWN0ZWRJZD1lLmlkLGhlKCksci5jdXJyZW50TWVzc2FnZXM9W10sd3IoKSx3dCgpLFNyKGUuaWQpLFgoZSkscGUoKSxQbihlLmlkKSxnbihlLmlkKS50aGVuKGZ1bmN0aW9uKCl7UHQoITApfSkpfWZ1bmN0aW9uIFlzKGUpe3JldHVybiBKcyhlKS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Pyh0LmNsYXVkZVNlc3Npb25JZCYmKHQucHJvdmlkZXI9PT0iY29kZXgiP3IuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5jbGF1ZGVTZXNzaW9uSWQhPT10LmNsYXVkZVNlc3Npb25JZH0pOnIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKG4pe3JldHVybiBuLmNsYXVkZVNlc3Npb25JZCE9PXQuY2xhdWRlU2Vzc2lvbklkfSkpLGZuKHQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdH0pKTpudWxsfSl9ZnVuY3Rpb24gc2goZSx0LG4pe3JldHVybiBwdihlLHQsbikudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaT9mbihpKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGl9KTpudWxsfSl9ZnVuY3Rpb24gbGgoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKTtpZih0KXt0LnBsYWNlaG9sZGVyPSJcdTZCNjNcdTU3MjhcdTYwMURcdTgwMDNcdTIwMjYiLHQuZGlzYWJsZWQ9ITA7dmFyIG49ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGk9JGUoKSxhPXJ0KCksdT1PcihhKTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6YSxjd2Q6aSxtb2RlOm4saW5pdGlhbElucHV0OmUsbW9kZWw6dXx8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybiBvLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uZXJyb3I/KEEoby5lcnJvciwiZXJyb3IiKSx0LnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLHQuZGlzYWJsZWQ9ITEsbnVsbCk6Zm4obyl9KS5jYXRjaChmdW5jdGlvbihvKXtBKG8mJm8ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksdC5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIix0LmRpc2FibGVkPSExfSkuZmluYWxseShmdW5jdGlvbigpe3QucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsdC5kaXNhYmxlZD0hMX0pfX1mdW5jdGlvbiBkaChlLHQsbil7dmFyIGk9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGE9JGUoKSx1PXJ0KCksbz1Pcih1KTtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkobHQoe2NvbW1hbmQ6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OmV8fHZvaWQgMCxtb2RlbDpvfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5lcnJvcj8oQShzLmVycm9yLCJlcnJvciIpLG51bGwpOih0JiYodC52YWx1ZT0iIiksbiYmKG4udmFsdWU9IiIpLGZuKHMpKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe0EocyYmcy5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIHZ2KGUpe2UuZGlzYWJsZWQ9ITAsWXMoZS5kYXRhc2V0LnNlc3Npb25JZCkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KX1mdW5jdGlvbiBtdihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxBaSh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsaGUoKSxyLmRyYWZ0c1tpLmlkXT0iIixmbihpKS50aGVuKGZ1bmN0aW9uKCl7X3QoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIEFpKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oQShuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gQShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiBndihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkO3QmJkFuKCJcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdThGRDlcdTY3NjEgQ29kZXggXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciBpPWUuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpO2kmJihpLnN0eWxlLm9wYWNpdHk9IjAuNSIpLGZldGNoKCIvYXBpL2NvZGV4LWhpc3RvcnkvIitlbmNvZGVVUklDb21wb25lbnQodCkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2EmJmEub2s/KHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdS5jbGF1ZGVTZXNzaW9uSWQhPT10fSkscGUoKSk6aSYmKGkuc3R5bGUub3BhY2l0eT0iMSIpfSkuY2F0Y2goZnVuY3Rpb24oKXtpJiYoaS5zdHlsZS5vcGFjaXR5PSIxIil9KX19KX1mdW5jdGlvbiBodihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCx4aSh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZCE9PXR9KSxyLnNlbGVjdGVkSWQ9aS5pZCxoZSgpLHIuZHJhZnRzW2kuaWRdPSIiLGZuKGkpLnRoZW4oZnVuY3Rpb24oKXtfdCgpfSkpfSkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KSl9ZnVuY3Rpb24geGkoZSx0KXtyZXR1cm4gZmV0Y2goIi9hcGkvY2xhdWRlLXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oQShuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gQShuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiBxcigpe3JldHVybiJvbnRvdWNoc3RhcnQiaW4gd2luZG93fHxuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM+MH1mdW5jdGlvbiBQdChlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7IXR8fCFyLnNlbGVjdGVkSWR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10JiYoZSYmcXIoKXx8WGEodCkpfX1mdW5jdGlvbiBjaCgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7ZSYmKGUuc2Nyb2xsVG9wPTApfWZ1bmN0aW9uIEdzKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LXBhbmVsIik7ZSYmZS5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgiLS1rZXlib2FyZC1vZmZzZXQiKX1mdW5jdGlvbiBRcygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0ta2V5Ym9hcmQtb2Zmc2V0Iil9ZnVuY3Rpb24gU2koZSl7aWYoZSl7dmFyIHQ9ZS5zZWxlY3Rpb25TdGFydCxuPWUuc2VsZWN0aW9uRW5kO0lpKGUpLHR5cGVvZiB0PT0ibnVtYmVyIiYmdHlwZW9mIG49PSJudW1iZXIiJiZlLnNldFNlbGVjdGlvblJhbmdlKHQsbil9fWZ1bmN0aW9uICRzKGUpeyFlfHxlLmRhdGFzZXQudG91Y2hTY3JvbGxCb3VuZD09PSJ0cnVlInx8KGUuZGF0YXNldC50b3VjaFNjcm9sbEJvdW5kPSJ0cnVlIixlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7ZS5zY3JvbGxIZWlnaHQ8PWUuY2xpZW50SGVpZ2h0KzF8fChlLnNjcm9sbFRvcDw9MD9lLnNjcm9sbFRvcD0xOmUuc2Nyb2xsVG9wK2UuY2xpZW50SGVpZ2h0Pj1lLnNjcm9sbEhlaWdodCYmKGUuc2Nyb2xsVG9wPU1hdGgubWF4KDEsZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtMSkpKX0se3Bhc3NpdmU6ITB9KSl9ZnVuY3Rpb24gWHMoZSl7ZSYmKEN0KGUpLFNpKGUpKX1mdW5jdGlvbiB5dihlKXt2YXIgdD1lJiZlLnRhcmdldD9lLnRhcmdldDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7dCYmKEdzKCksWHModCkpfWZ1bmN0aW9uIGJ2KGUpe3ZhciB0PWUmJmUudGFyZ2V0P2UudGFyZ2V0OmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtRcygpLEdvKDIyMDAsdCk7dmFyIG49WzgwLDIwMCwzODAsNjIwLDkwMF07bi5mb3JFYWNoKGZ1bmN0aW9uKGksYSl7c2V0VGltZW91dChmdW5jdGlvbigpe1VuKCExKSxhPT09MSYmcXIoKSYmKFFlKCJrZXlib2FyZC1ibHVyIix7Zm9yY2VSZXBsYXk6ITB9KSxwdCgia2V5Ym9hcmQiKSl9LGkpfSl9ZnVuY3Rpb24gRXYoZSl7ZSYmKGUuc2V0U2VsZWN0aW9uUmFuZ2UoZS52YWx1ZS5sZW5ndGgsZS52YWx1ZS5sZW5ndGgpLFNpKGUpKX1mdW5jdGlvbiBYYShlKXtlJiYoZS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pLEV2KGUpKX1mdW5jdGlvbiBGdihlKXskcyhlKSxYcyhlKX1mdW5jdGlvbiB3dihlKXtYYShlKX1mdW5jdGlvbiBmaChlKXtHcygpLFNpKGUpfWZ1bmN0aW9uIEN2KCl7UXMoKX1mdW5jdGlvbiBCdihlKXtTaShlKX1mdW5jdGlvbiBwaChlKXt3dihlKX1mdW5jdGlvbiBEdihlKXtGdihlKX1mdW5jdGlvbiB2aCgpe0N2KCl9ZnVuY3Rpb24gbWgoZSl7QnYoZSl9ZnVuY3Rpb24ga3YoZSx0KXtpZighZXx8IXR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQhPT10KXJldHVybiExO3ZhciBuPXdpbmRvdy5pbm5lckhlaWdodC1lLmhlaWdodC1lLm9mZnNldFRvcDtpZihuPD01MClyZXR1cm4hMTt2YXIgaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBpLmJvdHRvbT5lLmhlaWdodC0xMn1mdW5jdGlvbiBJaShlKXtpZihlKXt2YXIgdD1lLnNjcm9sbEhlaWdodD5lLmNsaWVudEhlaWdodCsxO2lmKCF0KXtlLnNjcm9sbFRvcD0wO3JldHVybn1lLnNjcm9sbFRvcD1lLnNjcm9sbEhlaWdodH19ZnVuY3Rpb24gWnMoKXtpZihyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe2VsKCk7cmV0dXJufWlmKCFxcigpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7IWV8fCFyLnNlbGVjdGVkSWR8fGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1lfHxYYShlKX19ZnVuY3Rpb24gZWwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7ZSYmKGUuc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsIjAiKSxlLmZvY3VzKCksci50ZXJtaW5hbCYmci50ZXJtaW5hbC5mb2N1cyYmci50ZXJtaW5hbC5mb2N1cygpKX1mdW5jdGlvbiBBdigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtpZigidmlydHVhbEtleWJvYXJkImluIG5hdmlnYXRvcil7dmFyIG49bmF2aWdhdG9yLnZpcnR1YWxLZXlib2FyZDtuLmFkZEV2ZW50TGlzdGVuZXIoImdlb21ldHJ5Y2hhbmdlIixmdW5jdGlvbigpe2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoInBhZGRpbmctYm90dG9tIil9KX12YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtacygpfSksdCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7dmFyIHU9YS50YXJnZXQ7dS50YWdOYW1lIT09IkEiJiZ1LnRhZ05hbWUhPT0iQlVUVE9OIiYmIXUuY2xvc2VzdCgiYnV0dG9uIikmJiF1LmNsb3Nlc3QoIltkYXRhLXRvb2wtdG9nZ2xlXSIpJiZacygpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2lmKHFyKCkpe3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighKCF1fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dSkpe3ZhciBvPWEudGFyZ2V0OyFvfHx0eXBlb2Ygby5jbG9zZXN0IT0iZnVuY3Rpb24ifHxvLmNsb3Nlc3QoIi5pbnB1dC1wYW5lbCIpfHxvLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkIil8fG8uY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQtZmFiIil8fG8uY2xvc2VzdCgiI21pbmkta2V5Ym9hcmQtdG9nZ2xlIil8fG8uY2xvc2VzdCgiI3Rlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZSIpfHxvLmNsb3Nlc3QoIi53YW5kLWpveXN0aWNrLXJvb3QiKXx8dS5ibHVyKCl9fX0sITApfWZ1bmN0aW9uIFphKCl7dHJ5e3dpbmRvdy5zY3JvbGxUbygwLDApfWNhdGNoe31kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50JiYoZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3A9MCksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50JiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcD0wKSxkb2N1bWVudC5ib2R5JiYoZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A9MCl9ZnVuY3Rpb24gVmUoZSl7ci5yZW5kZXJQZW5kaW5nJiYhZXx8KHIucmVuZGVyUGVuZGluZz0hMCxlPyhUaSghMCksci5yZW5kZXJQZW5kaW5nPSExKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtUaSghMSksci5yZW5kZXJQZW5kaW5nPSExfSkpfXIuY2hhdFJlbmRlclRpbWVyPW51bGw7ZnVuY3Rpb24gZXUoZSl7aWYoIShyLmNoYXRSZW5kZXJUaW1lciYmIWUpKXtpZihyLmNoYXRSZW5kZXJUaW1lciYmY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxlKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsLFZlKCk7cmV0dXJufXRyeXt3aW5kb3cuX19zY2hlZHVsZUNoYXRSZW5kZXI9ZnVuY3Rpb24oKXtldSghMCl9fWNhdGNoe312YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KSxuPXQmJnQuc3RhdHVzPT09InJ1bm5pbmciJiZ0LnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiLGk9bj9vczpzcztyLmNoYXRSZW5kZXJUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbDt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odSl7cmV0dXJuIHUuaWQ9PT1yLnNlbGVjdGVkSWR9KTthJiYoci5jdXJyZW50TWVzc2FnZXM9emUoYSxYZShhLGEub3V0cHV0LCEwKSkpLFZlKCl9LGkpfX1mdW5jdGlvbiB4dihlLHQpe2lmKCFlfHwhdHx8dC5sZW5ndGg9PT0wKXJldHVybltdO2Z1bmN0aW9uIG4oQyl7cmV0dXJuIEMucmVwbGFjZSgvXHgxQig/OltALVpcXC1fXXxcW1swLT9dKlsgLS9dKltALX5dKS9nLCIiKX1mb3IodmFyIGk9bihlKSxhPVtdLHU9W10sbz0wO288dC5sZW5ndGg7bysrKWlmKHRbb10ucm9sZT09PSJ1c2VyIil7dmFyIHM9IiIsbD10W29dLmNvbnRlbnQ7aWYodHlwZW9mIGw9PSJzdHJpbmciKXM9bDtlbHNlIGlmKEFycmF5LmlzQXJyYXkobCkpe2Zvcih2YXIgZD0wO2Q8bC5sZW5ndGg7ZCsrKWlmKGxbZF0udHlwZT09PSJ0ZXh0Iil7cz1sW2RdLnRleHQ7YnJlYWt9fXMmJnUucHVzaCh7dGV4dDpzLGluZGV4Om99KX1mb3IodmFyIGY9MCxvPTA7bzx1Lmxlbmd0aDtvKyspe3ZhciBjPXVbb10sdj1pLmluZGV4T2YoIlx1Mjc2RiAiK2MudGV4dCxmKTtpZih2PT09LTEmJih2PWkuaW5kZXhPZihgClx1Mjc2RiBgK2MudGV4dCxmKSx2IT09LTEmJih2Kz0xKSksdj5mKXtmb3IodmFyIGg9aS5zdWJzdHJpbmcoZix2KSxnPWguc3BsaXQoYApgKSxtPVtdLGQ9MDtkPGcubGVuZ3RoO2QrKyl7dmFyIHk9Z1tkXS50cmltKCk7IXl8fHkuc3RhcnRzV2l0aCgiXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwIil8fHk9PT0iXHUyNzZGInx8eT09PSI/Inx8eT09PSIifHx5LmluY2x1ZGVzKCJDbGF1ZGUgQ29kZSB2Iil8fHkuaW5jbHVkZXMoIk9wdXMiKSYmeS5pbmNsdWRlcygid2l0aCIpfHx5LmluY2x1ZGVzKCJTb25uZXQiKSYmeS5pbmNsdWRlcygid2l0aCIpfHx5LmluY2x1ZGVzKCJBUEkgVXNhZ2UiKXx8eS5pbmNsdWRlcygiQmlsbGluZyIpfHx5LmluY2x1ZGVzKCJmb3Igc2hvcnRjdXRzIil8fHkuaW5jbHVkZXMoIi9lZmZvcnQiKXx8eS5tYXRjaCgvXlvilrjilpDilp3ilpjilpfilpbilojilozilo3ilo7ilo/ilpTiloHiloLiloPiloTiloXilobilofilojilohdLyl8fHkubWF0Y2goL15b4pa44paQ4pad4paY4paX4paW4paI4paM4paN4paO4paP4paU4paB4paC4paD4paE4paF4paG4paH4paI4paIXXszLH0vKXx8eS5sZW5ndGg+MyYmbS5wdXNoKHkpfW0ubGVuZ3RoPjAmJmEucHVzaCh7YmVmb3JlTWVzc2FnZTpjLmluZGV4LGNvbnRlbnQ6bS5qb2luKGAKYCl9KX1mPXYrYy50ZXh0Lmxlbmd0aCsyfXJldHVybiBhfWZ1bmN0aW9uIHR1KGUpe2lmKCFlKXJldHVybiBudWxsO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtyZXR1cm4gdHx8KHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5jbGFzc05hbWU9ImNoYXQtbWVzc2FnZXMiLGUuYXBwZW5kQ2hpbGQodCksdCl9ZnVuY3Rpb24gdGwoZSx0KXt2YXIgbj10dShlKTtyZXR1cm4gbj8obi5pbm5lckhUTUw9dCxqdChuKSxscigpLEdlKCksbik6bnVsbH1mdW5jdGlvbiBUaShlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighdClyZXR1cm47dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKCQpe3JldHVybiAkLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoIW4pe3IubGFzdFJlbmRlcmVkRW1wdHkhPT0ibm9uZSImJih0bCh0LCc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQ8L3N0cm9uZz48YnI+XHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyPC9kaXY+Jyksci5sYXN0UmVuZGVyZWRFbXB0eT0ibm9uZSIsci5sYXN0UmVuZGVyZWRNc2dDb3VudD0wKTtyZXR1cm59dmFyIGk9ci5jdXJyZW50TWVzc2FnZXMsYT1ybShpKTtpZihpdT1pbShpKSxpLmxlbmd0aD09PTApe2lmKHIubGFzdFJlbmRlcmVkRW1wdHkhPT0iZW1wdHkiKXt2YXIgdT0iIjt1ZShuKSYmKHU9JzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLXRyaW8td3JhcCI+PGRpdiBjbGFzcz0iZW1wdHktc3RhdGUtdHJpby1oaW50Ij5cdTlFRDhcdThCQTRcdTRGMUFcdTYzMDlcdTRFRTVcdTRFMEJcdThCQkVcdTdGNkVcdTUzRDFcdTkwMDFcdUZGMENcdTUzRUZcdTcwQjlcdTUxRkJcdThDMDNcdTY1NzRcdUZGMUE8L2Rpdj4nK0lsKG4se2tpbmQ6ImRyb3Bkb3duIn0pKyI8L2Rpdj4iKSx0bCh0LCc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZSI+PHN0cm9uZz5cdTVCRjlcdThCRERcdTVERjJcdTVGMDBcdTU5Q0I8L3N0cm9uZz48YnI+XHU1NzI4XHU0RTBCXHU2NUI5XHU4RjkzXHU1MTY1XHU2ODQ2XHU1M0QxXHU5MDAxXHU2RDg4XHU2MDZGXHVGRjBDQ2xhdWRlIFx1NEYxQVx1ODFFQVx1NTJBOFx1NTZERVx1NTkwRFx1MzAwMjwvZGl2PicrdSksci5sYXN0UmVuZGVyZWRFbXB0eT0iZW1wdHkiLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MH1QdShudWxsLG4pLHJ1KFtdKTtyZXR1cm59dmFyIG89aS5sZW5ndGg7bz5yLmNoYXRSZW5kZXJlZENvdW50JiYoci5jaGF0UmVuZGVyZWRDb3VudD1vKTt2YXIgcz1NYXRoLm1heCgwLG8tci5jaGF0UmVuZGVyZWRDb3VudCksbD1zPjA/aS5zbGljZShzKTppLGQ9dHlwZW9mIG4ubWVzc2FnZU9mZnNldD09Im51bWJlciImJm4ubWVzc2FnZU9mZnNldD4wLGY9cz4wfHxkLGM9bC5sZW5ndGgsdj1uLm91dHB1dD9uLm91dHB1dC5sZW5ndGg6MDtpZihuLm1lc3NhZ2VzJiZuLm1lc3NhZ2VzLmxlbmd0aD4wKXtmb3IodmFyIGg9MCxnPTAsbT0wO208bi5tZXNzYWdlcy5sZW5ndGg7bSsrKXt2YXIgeT1uLm1lc3NhZ2VzW21dLmNvbnRlbnQ7aWYoeSlpZihBcnJheS5pc0FycmF5KHkpKXtoKz15Lmxlbmd0aDtmb3IodmFyIEM9MDtDPHkubGVuZ3RoO0MrKyl7dmFyIEU9eVtDXTtFLnRleHQmJihnKz1FLnRleHQubGVuZ3RoKSxFLnRoaW5raW5nJiYoZys9RS50aGlua2luZy5sZW5ndGgpLEUuY29udGVudCYmKGcrPUUuY29udGVudC5sZW5ndGgpLEUuaWQmJihnKz1FLmlkLmxlbmd0aCksRS50b29sX3VzZV9pZCYmKGcrPUUudG9vbF91c2VfaWQubGVuZ3RoKSxFLmRlc2NyaXB0aW9uJiYoZys9RS5kZXNjcmlwdGlvbi5sZW5ndGgpLEUuaW5wdXQmJihnKz1KU09OLnN0cmluZ2lmeShFLmlucHV0KS5sZW5ndGgpfWlmKG4ubWVzc2FnZXNbbV0udXNhZ2Upe3ZhciBCPW4ubWVzc2FnZXNbbV0udXNhZ2U7Zys9KEIuaW5wdXRUb2tlbnN8fDApKyhCLm91dHB1dFRva2Vuc3x8MCkrKEIuY2FjaGVSZWFkSW5wdXRUb2tlbnN8fDApKyhCLmNhY2hlQ3JlYXRpb25JbnB1dFRva2Vuc3x8MCkrKEIucmVhc29uaW5nT3V0cHV0VG9rZW5zfHwwKStNYXRoLnJvdW5kKChCLnRvdGFsQ29zdFVzZHx8MCkqMWU2KSsoQi5lc3RpbWF0ZWQ9PT0hMD8xOjApfX1lbHNlIGgrPTEsZz1TdHJpbmcoeSkubGVuZ3RofXY9YyoxZTUraCoxZTMrZ312YXIgRD1lfHxjIT09ci5sYXN0UmVuZGVyZWRNc2dDb3VudDtpZighRCYmYz09PXIubGFzdFJlbmRlcmVkTXNnQ291bnQmJnY9PT1yLmxhc3RSZW5kZXJlZEhhc2gpe3ZhciBGPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtGJiZQdShGLG4pLHJ1KGkpO3JldHVybn12YXIgST1yLmxhc3RSZW5kZXJlZEhhc2gsTD1yLmxhc3RSZW5kZXJlZE1zZ0NvdW50O2lmKHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9YyxyLmxhc3RSZW5kZXJlZEhhc2g9dixGPXR1KHQpLCFGKXJldHVybjt2YXIgSD1vYShGKSxVPSFyLmNoYXRJbml0aWFsUmVuZGVyRG9uZSx4PUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLmxlbmd0aCxrPUR8fHg9PT0wfHxjIT09eDtmdW5jdGlvbiBUKCl7Zm9yKHZhciAkPXh2KG4ub3V0cHV0LGwpLGZlPSIiLENlPWwuc2xpY2UoKS5yZXZlcnNlKCksQmU9bC5sZW5ndGgsdmU9MDt2ZTxDZS5sZW5ndGg7dmUrKyl7Zm9yKHZhciBGZT1DZVt2ZV0sZXQ9QmUtMS12ZSxkdD1ldCtzLGl0PW51bGwsTmU9MDtOZTwkLmxlbmd0aDtOZSsrKWlmKCRbTmVdLmJlZm9yZU1lc3NhZ2U9PT1ldCl7aXQ9JFtOZV07YnJlYWt9aXQmJihmZSs9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSBzeXN0ZW0taW5mbyI+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8tY2FyZCI+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8taGVhZGVyIj5cdTIxMzlcdUZFMEYgXHU3Q0ZCXHU3RURGXHU0RkUxXHU2MDZGPC9kaXY+PGRpdiBjbGFzcz0ic3lzdGVtLWluZm8tY29udGVudCI+JytwKGl0LmNvbnRlbnQpKyI8L2Rpdj48L2Rpdj48L2Rpdj4iKSxmZSs9dXUoRmUsTVtkdF18fG51bGwsZHQsYSl9aWYoZil7dmFyIFJ0PXM+MD8iXHU1MkEwXHU4RjdEXHU2NkY0XHU2NUU5XHU3Njg0ICIrTWF0aC5taW4oci5jaGF0UGFnZVNpemUscykrIiBcdTY3NjFcdTZEODhcdTYwNkYiOiJcdTUyQTBcdThGN0RcdTY2RjRcdTY1RTlcdTc2ODRcdTZEODhcdTYwNkYiO2ZlKz0nPGRpdiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUiIGlkPSJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCI+PGJ1dHRvbiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUtYnRuIiB0eXBlPSJidXR0b24iPicrUnQrIjwvYnV0dG9uPjwvZGl2PiJ9dmFyIFllPS0xLERlPTA7aWYoeD4wJiYhSClmb3IodmFyIFBlPUYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLHRlPUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLHdlPTA7d2U8dGUubGVuZ3RoO3dlKyspe3ZhciB3PXRlW3dlXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZih3LmJvdHRvbT49UGUpe3ZhciBhdD10ZVt3ZV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2F0IT1udWxsJiYoWWU9cGFyc2VJbnQoYXQsMTApLERlPXcudG9wLVBlKTticmVha319aWYoRi5pbm5lckhUTUw9ZmUsKGZ1bmN0aW9uKCl7Zm9yKHZhciBXdD1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSx6dD1XdC5sZW5ndGgsVGU9MDtUZTx6dDtUZSsrKVd0W1RlXS5zZXRBdHRyaWJ1dGUoImRhdGEtbXNnLWluZGV4IixTdHJpbmcocyt6dC0xLVRlKSl9KSgpLGp0KEYpLEw9PT0wJiYhci5jaGF0SW5pdGlhbFJlbmRlckRvbmUpRi5zY3JvbGxUb3A9MCxyLmNoYXRTdGlja1RvQm90dG9tPSEwLENuKHtyZW1vdmVEaXZpZGVyOiEwfSksci5jaGF0SW5pdGlhbFJlbmRlckRvbmU9ITA7ZWxzZSBpZihMPT09MCYmci5jaGF0U3RpY2tUb0JvdHRvbSlGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoSClGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoWWU+PTApe3ZhciBrdD1GLnF1ZXJ5U2VsZWN0b3IoJy5jaGF0LW1lc3NhZ2VbZGF0YS1tc2ctaW5kZXg9IicrWWUrJyJdJyk7aWYoa3Qpe3ZhciB1dD1GLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxadD1rdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxBdD1adC50b3AtdXQtRGU7TWF0aC5hYnMoQXQpPi41JiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3ArPUF0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpfX1ubChGKSxscigpLGZhKEYpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3NhKEYpLEdlKCksa2QoKX0pfXZhciBNPXt9O2lmKChmdW5jdGlvbigpe2Zvcih2YXIgJD17aW5wdXRUb2tlbnM6MCxvdXRwdXRUb2tlbnM6MCxjYWNoZVJlYWRJbnB1dFRva2VuczowLGNhY2hlQ3JlYXRpb25JbnB1dFRva2VuczowLHJlYXNvbmluZ091dHB1dFRva2VuczowLHRvdGFsQ29zdFVzZDowLGVzdGltYXRlZDohMX0sZmU9ITEsQ2U9LTEsQmU9MDtCZTxpLmxlbmd0aDtCZSsrKXt2YXIgdmU9aVtCZV07aWYodmUucm9sZT09PSJ1c2VyIilDZT49MCYmZmUmJihNW0NlXT0kKSwkPXtpbnB1dFRva2VuczowLG91dHB1dFRva2VuczowLGNhY2hlUmVhZElucHV0VG9rZW5zOjAsY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zOjAscmVhc29uaW5nT3V0cHV0VG9rZW5zOjAsdG90YWxDb3N0VXNkOjAsZXN0aW1hdGVkOiExfSxmZT0hMSxDZT0tMTtlbHNlIGlmKHZlLnJvbGU9PT0iYXNzaXN0YW50IiYmdmUudXNhZ2Upe3ZhciBGZT12ZS51c2FnZTtmZT0hMCwkLmlucHV0VG9rZW5zKz1GZS5pbnB1dFRva2Vuc3x8MCwkLm91dHB1dFRva2Vucys9RmUub3V0cHV0VG9rZW5zfHwwLCQuY2FjaGVSZWFkSW5wdXRUb2tlbnMrPUZlLmNhY2hlUmVhZElucHV0VG9rZW5zfHwwLCQuY2FjaGVDcmVhdGlvbklucHV0VG9rZW5zKz1GZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnN8fDAsJC5yZWFzb25pbmdPdXRwdXRUb2tlbnMrPUZlLnJlYXNvbmluZ091dHB1dFRva2Vuc3x8MCwkLnRvdGFsQ29zdFVzZCs9RmUudG90YWxDb3N0VXNkfHwwLCQuZXN0aW1hdGVkPSQuZXN0aW1hdGVkfHxGZS5lc3RpbWF0ZWQ9PT0hMCxDZT1CZX1lbHNlIHZlLnJvbGU9PT0iYXNzaXN0YW50IiYmKENlPUJlKX1DZT49MCYmZmUmJihNW0NlXT0kKX0pKCksaylUKCk7ZWxzZSBpZihjPngpe3ZhciBZPWwuc2xpY2UoeCk7WS5yZXZlcnNlKCk7Zm9yKHZhciB6PWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxRPVtdLGxlPVtdLGVlPXMreCxaPTA7WjxZLmxlbmd0aDtaKyspe3ZhciBxPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLE89cyt4KyhZLmxlbmd0aC0xLVopO3EuaW5uZXJIVE1MPXV1KFlbWl0sTVtPXXx8bnVsbCxPLGEpO3ZhciBOPXEuZmlyc3RFbGVtZW50Q2hpbGQ7TiYmKE4uY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZS1pbiIpLE4uc2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIsU3RyaW5nKE8pKSxRLnB1c2goTiksbGUucHVzaChPKSx6LmFwcGVuZENoaWxkKE4pKX1GLmluc2VydEJlZm9yZSh6LEYuZmlyc3RDaGlsZCksbHIoKSxubChGKSxmYShGKSxIP3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0YuaXNDb25uZWN0ZWQmJk1hdGguYWJzKEYuc2Nyb2xsVG9wKT4xJiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3A9MCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKSxDbih7cmVtb3ZlRGl2aWRlcjohMH0pLEdlKCl9KTooci5jaGF0VW5yZWFkU3RhcnRJbmRleDwwJiYoci5jaGF0VW5yZWFkU3RhcnRJbmRleD1lZSksci5jaGF0VW5yZWFkQ291bnQrPVEubGVuZ3RoLHNhKEYpLEdlKCkpfWVsc2UgaWYoYz09PXgmJnYhPT1JKXtmb3IodmFyIEc9QXJyYXkuZnJvbShGLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSksSj1sLnNsaWNlKCkucmV2ZXJzZSgpLG5lPSExLGRlPU1hdGgubWluKDQsSi5sZW5ndGgsRy5sZW5ndGgpLHJlPTA7cmU8ZGU7cmUrKyl7dmFyIGllPUdbcmVdLHFlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGdlPXMrSi5sZW5ndGgtMS1yZTtxZS5pbm5lckhUTUw9dXUoSltyZV0sTVtnZV18fG51bGwsZ2UsYSk7dmFyIGNlPXFlLmZpcnN0RWxlbWVudENoaWxkO2lmKGNlKXtpZihpZS5pbm5lckhUTUwhPT1jZS5pbm5lckhUTUx8fGllLmNsYXNzTmFtZSE9PWNlLmNsYXNzTmFtZSlGLnJlcGxhY2VDaGlsZChjZSxpZSksVHYoY2UpLG5lPSEwO2Vsc2UgaWYocmU+MClicmVha319aWYoIW5lJiZKLmxlbmd0aD5kZSYmVCgpLG5lKXtscigpLGZhKEYpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0gmJkYuaXNDb25uZWN0ZWQmJk1hdGguYWJzKEYuc2Nyb2xsVG9wKT4xJiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3A9MCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKSxzYShGKSxHZSgpfSk7dmFyIFI9Ri5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlIiksaHQ9Ri5xdWVyeVNlbGVjdG9yQWxsKCIudG9vbC11c2UtY2FyZCwgLmlubGluZS1kaWZmW2RhdGEtZXhwYW5kLWtleV0iKSxfZT1udWxsO2h0LmZvckVhY2goZnVuY3Rpb24oJCl7dmFyIGZlPWNhKCQpO2J0KGZlKT09PW51bGwmJigkLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXIiKSYmISQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlci1hbnN3ZXJlZCIpfHwoUiYmUi5jb250YWlucygkKT9fZT8kLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpOl9lPSQ6JC5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKSkpfSl9fWVsc2UgYzx4JiZUKCk7TGYoRiksbm0oRixuKSxRdih0LEYsaSxVKSxQdShGLG4pLHJ1KGkpfXZhciBudT0hMTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIiN0b2RvLXByb2dyZXNzLXRvZ2dsZSIpO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG51PSFudTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2kmJmEmJihudT8oaS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGEuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKSk6KGkuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSxhLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZGVkIikpKSxMaSgpfX19KTtmdW5jdGlvbiBMaSgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1tZXNzYWdlcyIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKCEoIWV8fCF0KSl7dmFyIG49ZSxpPSF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIiksYT10LmNsYXNzTGlzdC5jb250YWlucygiZXhwYW5kZWQiKSx1PXQub2Zmc2V0SGVpZ2h0O2kmJmEmJnU+MD9uLnN0eWxlLnBhZGRpbmdCb3R0b209dSs4KyJweCI6bi5zdHlsZS5wYWRkaW5nQm90dG9tPSIifX1mdW5jdGlvbiBTdihlKXtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTt0eXBlb2YgaT09InN0cmluZyI/dC5wdXNoKGkpOmkmJnR5cGVvZiBpLnRleHQ9PSJzdHJpbmciJiZ0LnB1c2goaS50ZXh0KX1yZXR1cm4gdC5qb2luKCIiKX1yZXR1cm4iIn1mdW5jdGlvbiBJdihlLHQpe2Zvcih2YXIgbj17fSxpPXQ7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoISghYXx8IUFycmF5LmlzQXJyYXkoYS5jb250ZW50KSkpZm9yKHZhciB1PTA7dTxhLmNvbnRlbnQubGVuZ3RoO3UrKyl7dmFyIG89YS5jb250ZW50W3VdO28mJm8udHlwZT09PSJ0b29sX3Jlc3VsdCImJm8udG9vbF91c2VfaWQmJihuW28udG9vbF91c2VfaWRdPVN2KG8uY29udGVudCkpfX1mb3IodmFyIHM9e30sbD0wLGQ9MCxmPSExLGM9dDtjPGUubGVuZ3RoO2MrKyl7dmFyIHY9ZVtjXTtpZighKCF2fHwhQXJyYXkuaXNBcnJheSh2LmNvbnRlbnQpKSlmb3IodmFyIGg9MDtoPHYuY29udGVudC5sZW5ndGg7aCsrKXt2YXIgZz12LmNvbnRlbnRbaF07aWYoISghZ3x8Zy50eXBlIT09InRvb2xfdXNlIikpe3ZhciBtPWcuaW5wdXR8fHt9O2lmKGcubmFtZT09PSJUYXNrQ3JlYXRlIil7Zj0hMCxkKys7dmFyIHk9bltnLmlkXXx8IiIsQz15Lm1hdGNoKC8jKFxkKykvKSxFPUM/Q1sxXTpTdHJpbmcoZCk7c1tFXT17aWQ6RSxjb250ZW50Om0uc3ViamVjdHx8IiIsYWN0aXZlRm9ybTptLmFjdGl2ZUZvcm18fCIiLHN0YXR1czoicGVuZGluZyIsb3JkZXI6bCsrfX1lbHNlIGlmKGcubmFtZT09PSJUYXNrVXBkYXRlIil7Zj0hMDt2YXIgQj1TdHJpbmcobS50YXNrSWQpLEQ9c1tCXTtEfHwoRD17aWQ6Qixjb250ZW50OiIiLGFjdGl2ZUZvcm06IiIsc3RhdHVzOiJwZW5kaW5nIixvcmRlcjpsKyt9LHNbQl09RCksbS5zdGF0dXMmJihELnN0YXR1cz1tLnN0YXR1cyksbS5zdWJqZWN0JiYoRC5jb250ZW50PW0uc3ViamVjdCksbS5hY3RpdmVGb3JtJiYoRC5hY3RpdmVGb3JtPW0uYWN0aXZlRm9ybSl9fX19aWYoIWYpcmV0dXJuIG51bGw7dmFyIEY9W107Zm9yKHZhciBJIGluIHMpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsSSkmJnNbSV0uc3RhdHVzIT09ImRlbGV0ZWQiJiZGLnB1c2goc1tJXSk7cmV0dXJuIEYuc29ydChmdW5jdGlvbihMLEgpe3JldHVybiBMLm9yZGVyLUgub3JkZXJ9KSxGLmxlbmd0aD9GOm51bGx9ZnVuY3Rpb24gcnUoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aC0xO24+PTA7bi0tKWlmKGVbbl0mJmVbbl0ucm9sZT09PSJ1c2VyIil7dD1uKzE7YnJlYWt9Zm9yKHZhciBpPW51bGwsYT1lLmxlbmd0aC0xO2E+PXQ7YS0tKXt2YXIgdT1lW2FdO2lmKCEoIXUuY29udGVudHx8IUFycmF5LmlzQXJyYXkodS5jb250ZW50KSkpe2Zvcih2YXIgbz11LmNvbnRlbnQubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBzPXUuY29udGVudFtvXTtpZihzLnR5cGU9PT0idG9vbF91c2UiJiZzLm5hbWU9PT0iVG9kb1dyaXRlIiYmcy5pbnB1dCYmcy5pbnB1dC50b2Rvcyl7aT1zLmlucHV0LnRvZG9zO2JyZWFrfX1pZihpKWJyZWFrfX1pfHwoaT1JdihlLHQpKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKGwpe2lmKCFpfHxpLmxlbmd0aD09PTApe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxMaSgpO3JldHVybn1mb3IodmFyIGY9MCxjPTAsdj0iIixoPTA7aDxpLmxlbmd0aDtoKyspaVtoXS5zdGF0dXM9PT0iY29tcGxldGVkIiYmZisrLGlbaF0uc3RhdHVzPT09ImluX3Byb2dyZXNzIiYmKGMrKyx2fHwodj1pW2hdLmFjdGl2ZUZvcm18fGlbaF0uY29udGVudHx8IiIpKTt2YXIgZz1mPT09aS5sZW5ndGgsbT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oeil7cmV0dXJuIHouaWQ9PT1yLnNlbGVjdGVkSWR9KSx5PSEhbSYmbS5zdGF0dXM9PT0icnVubmluZyI7aWYoIXl8fGcpe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxMaSgpO3JldHVybn1sLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGwuY2xhc3NMaXN0LnJlbW92ZSgiYWxsLWRvbmUiKSxkJiZkLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWNvdW50ZXIiKTtDJiYoQy50ZXh0Q29udGVudD1mKyIvIitpLmxlbmd0aCk7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtdGFzayIpO2lmKEUpe2lmKCF2KXtmb3IodmFyIEI9MDtCPGkubGVuZ3RoO0IrKylpZihpW0JdLnN0YXR1cz09PSJwZW5kaW5nIiYmKGlbQl0uYWN0aXZlRm9ybXx8aVtCXS5jb250ZW50KSl7dj1pW0JdLmFjdGl2ZUZvcm18fGlbQl0uY29udGVudDticmVha319RS50ZXh0Q29udGVudD12fHwiXHU1MUM2XHU1OTA3XHU0RTJEXHUyMDI2In12YXIgRD1pLmxlbmd0aD4wP2YvaS5sZW5ndGg6MCxGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLXJpbmciKTtGJiZGLnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixELnRvRml4ZWQoMykpO3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWZpbGwiKTtJJiZJLnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixELnRvRml4ZWQoMykpO3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWxpc3QiKTtpZihMKXtmb3IodmFyIEg9IiIsVT0wO1U8aS5sZW5ndGg7VSsrKXt2YXIgeD1pW1VdLGs9eC5zdGF0dXN8fCJwZW5kaW5nIixUPWs9PT0iaW5fcHJvZ3Jlc3MiPyJhY3RpdmUiOms9PT0iY29tcGxldGVkIj8iZG9uZSI6IiIsTT1rPT09ImluX3Byb2dyZXNzIj8iYWN0aXZlIjprPT09ImNvbXBsZXRlZCI/ImRvbmUiOiJwZW5kaW5nIixZPWs9PT0iY29tcGxldGVkIj8iXHUyNzEzIjprPT09ImluX3Byb2dyZXNzIj8iXHUyMDNBIjoiXHUyNUNCIjtIKz0nPGxpIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWl0ZW0gJytUKyciPjxzcGFuIGNsYXNzPSJ0b2RvLWl0ZW0taWNvbiAnK00rJyI+JytZKyI8L3NwYW4+PHNwYW4+IitwKHguY29udGVudHx8IiIpKyI8L3NwYW4+PC9saT4ifUwuaW5uZXJIVE1MPUh9ci5zZWxlY3RlZElkJiZIYShyLnNlbGVjdGVkSWQpLExpKCl9fWZ1bmN0aW9uIFR2KGUpe2UucXVlcnlTZWxlY3RvckFsbCgiLmNvZGUtY29weSIpLmZvckVhY2goZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgbj10LmNsb3Nlc3QoIi5jb2RlLWJsb2NrIiksaT1uP24ucXVlcnlTZWxlY3RvcigiY29kZSIpOm51bGw7aSYmVXIoaS50ZXh0Q29udGVudHx8IiIsbnVsbCxmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcGllZCEiLHQuY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcHkiLHQuY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9KX0pfSl9ZnVuY3Rpb24gbmwoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY29kZS1jb3B5IikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LmNsb25lTm9kZSghMCk7dC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuLHQpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGk9bi5jbG9zZXN0KCIuY29kZS1ibG9jayIpLGE9aT9pLnF1ZXJ5U2VsZWN0b3IoImNvZGUiKTpudWxsO2EmJlVyKGEudGV4dENvbnRlbnR8fCIiLG51bGwsZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3BpZWQhIixuLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3B5IixuLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfSl9KX0pLEx2KGUpfXZhciBnaD17dGltZXI6bnVsbCxhY3RpdmVCdG46bnVsbH07ZnVuY3Rpb24gTHYoZSl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlczt0JiZlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2UiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLnF1ZXJ5U2VsZWN0b3IoIi5tc2ctY29weS1idG4iKSl7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO2lmKGkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2EuY2xhc3NOYW1lPSJtc2ctY29weS1idG4iLGEudGV4dENvbnRlbnQ9Ilx1NTkwRFx1NTIzNiIsYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odSl7dS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbz1pLmlubmVyVGV4dHx8aS50ZXh0Q29udGVudHx8IiI7VXIoby50cmltKCksbnVsbCxmdW5jdGlvbigpe2EudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsYS5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2IixhLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSwxNTAwKX0pfSksbi5hcHBlbmRDaGlsZChhKX19fSl9KGZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcztpZih0KXt2YXIgbj1udWxsLGk9MDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXt2YXIgdT1hLnRhcmdldC5jbG9zZXN0KCIuY2hhdC1tZXNzYWdlIik7aWYodSl7dmFyIG89dS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO28mJihpPWEudG91Y2hlc1swXS5jbGllbnRZLG49c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBzPXUucXVlcnlTZWxlY3RvcigiLm1zZy1jb3B5LWJ0biIpO3MmJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2wuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSkscy5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpfSw1MDApKX19LHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihhKXtuJiZNYXRoLmFicyhhLnRvdWNoZXNbMF0uY2xpZW50WS1pKT4xMCYmKGNsZWFyVGltZW91dChuKSxuPW51bGwpfSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixmdW5jdGlvbigpe24mJihjbGVhclRpbWVvdXQobiksbj1udWxsKX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS50YXJnZXQuY2xvc2VzdCgiLm1zZy1jb3B5LWJ0biIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3UuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSl9KX19KSgpO2Z1bmN0aW9uIE12KGUpe2lmKCFlKXJldHVybiExO3ZhciB0PVN0cmluZyhlKS50cmltKCk7cmV0dXJuIHQ/ISEodC5pbmRleE9mKCJcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAiKT09PTB8fHQ9PT0iXHUyNzZGInx8dD09PSJcdTIwM0EifHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdezIsfSQvLnRlc3QodCl8fC9eW+KWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWlOKWleKWj+KWkF0rJC8udGVzdCh0KXx8dC5pbmRleE9mKCJlc2MgdG8gaW50ZXJydXB0IikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgQ29kZSB2IikhPT0tMXx8L15Tb25uZXRcYi8udGVzdCh0KXx8dC5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCBBbnRocm9waWMiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBDb2RlIGhhcyBzd2l0Y2hlZCIpIT09LTF8fHQuaW5kZXhPZigiPyBmb3Igc2hvcnRjdXRzIikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgaXMgd2FpdGluZyIpIT09LTF8fHQuaW5kZXhPZigiW3dhbmRdIikhPT0tMXx8dC5pbmRleE9mKCIwOyIpPT09MHx8dC5pbmRleE9mKCI5OyIpPT09MHx8dC5pbmRleE9mKCJjdHJsK2ciKSE9PS0xfHx0LmluZGV4T2YoIi9lZmZvcnQiKSE9PS0xfHwvXlVzaW5nIC4qIGZvciAuKiBzZXNzaW9uLy50ZXN0KHQpfHx0LmluZGV4T2YoIlByZXNzICIpPT09MCYmdC5pbmRleE9mKCIgZm9yIikhPT0tMXx8dC5pbmRleE9mKCJ0eXBlICIpPT09MCYmdC5pbmRleE9mKCIgdG8gIikhPT0tMXx8dC5pbmRleE9mKCJhdXRvIG1vZGUgaXMgdW5hdmFpbGFibGUiKSE9PS0xfHwvTUNQIHNlcnZlci4qZmFpbGVkL2kudGVzdCh0KXx8dC5pbmRleE9mKCJHZXJtaW5hdGluZyIpIT09LTF8fHQuaW5kZXhPZigiRG9vZGxpbmciKSE9PS0xfHx0LmluZGV4T2YoIkJyZXdpbmciKSE9PS0xfHx0LmluZGV4T2YoIlBlcm1pc3Npb25zIikhPT0tMSYmdC5pbmRleE9mKCJtb2RlIikhPT0tMXx8dC5pbmRleE9mKCJcdTI1Q0YiKT09PTAmJnQuaW5kZXhPZigiXHhCNyIpIT09LTF8fHQuaW5kZXhPZigiWz4iKT09PTB8fHQuaW5kZXhPZigiWzwiKT09PTB8fHQuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKSE9PS0xfHwvXj5fXHMqT3BlbkFJIENvZGV4XGIvLnRlc3QodCl8fC9eT3BlbkFJIENvZGV4XGIvaS50ZXN0KHQpfHwvXihtb2RlbHxkaXJlY3RvcnkpOlxzKy9pLnRlc3QodCl8fC9eKHRpcHxjb250ZXh0KTpccysvaS50ZXN0KHQpfHwvXndvcmsodHJlZXxzcGFjZSk6XHMrL2kudGVzdCh0KXx8L14oYXBwcm92YWxzP3xzYW5kYm94fHByb3ZpZGVyfHNlc3Npb24gaWQpOlxzKy9pLnRlc3QodCl8fC9eKHRoaW5raW5nfHdvcmtpbmcpKFwuXC5cLnzigKYpPyQvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytXb3JraW5nXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccysoUnVubmluZ3xQbGFubmluZ3xBcHBseWluZ3xSZWFkaW5nfFNlYXJjaGluZylcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzKyhJbnNwZWN0aW5nfFJldmlld2luZ3xTdW1tYXJpemluZ3xFZGl0aW5nfFVwZGF0aW5nfFdyaXRpbmcpXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytDb21wbGV0ZWRcYi9pLnRlc3QodCl8fC9eKGN0cmx8ZW50ZXJ8dGFifHNoaWZ0fGVzY3xhbHQpXCsvaS50ZXN0KHQpfHwvXGIob3BlbnxjbG9zZXx0b2dnbGUpIChjaGF0fHRlcm1pbmFsKVxiL2kudGVzdCh0KXx8L1xiKGFwcHJvdmV8ZGVueSlcYi4qXGIocGVybWlzc2lvbnxhcHByb3ZhbClcYi9pLnRlc3QodCl8fC9eKHVzZXxwcmVzcykgLiogKHRvfGZvcikgLiovaS50ZXN0KHQpfHwvXig/OnRva2VufGNvbnRleHQgd2luZG93fHJlbWFpbmluZyBjb250ZXh0fGNvbnZlcnNhdGlvbik6XHMrL2kudGVzdCh0KXx8L14oPzpjd2R8cGF0aCk6XHMrXC8vaS50ZXN0KHQpfHwvXls8PuKUguKUhuKVjl0uKls8PuKUguKUhuKVjl0kLy50ZXN0KHQpJiZ0Lmxlbmd0aDw4KTohMX1mdW5jdGlvbiBxdihlKXtyZXR1cm4gU3RyaW5nKGV8fCIiKS5yZXBsYWNlKC9ceDFiXF1bXlx4MDddKihceDA3fFx4MWJcXCkvZywiIikucmVwbGFjZSgvXHgxYlxbKFxkKylDL2csZnVuY3Rpb24odCxuKXtyZXR1cm4iICIucmVwZWF0KE51bWJlcihuKXx8MSl9KS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltBQl0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW3N1XS9nLCIiKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltIZkpLcl0vZyxgCmApLnJlcGxhY2UoL1x4MWJNL2csYApgKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltTVF0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW2EtekEtWl0vZywiIikucmVwbGFjZSgvXHgxYls+PD1lUFheX10vZywiIikucmVwbGFjZSgvW1x1MDBhMFx1MjAwYi1cdTIwMGRcdWZlZmZdL2csIiAiKS5yZXBsYWNlKC9bXHgwMC1ceDA4XHgwYlx4MGNceDBlLVx4MWZdL2csIiIpLnJlcGxhY2UoL1xyXG4/L2csYApgKS5yZXBsYWNlKC9bIFx0XStcbi9nLGAKYCkucmVwbGFjZSgvXG57Myx9L2csYAoKYCl9ZnVuY3Rpb24gUHYoZSx0KXt2YXIgbj1bXTtpZighZSlyZXR1cm4gbjt2YXIgaT1TdHJpbmcoZXx8IiIpLGE9YApgLHU9IlxyIixvPSJceDFCIjtpZigvXmNvZGV4XGIvLnRlc3QoU3RyaW5nKHR8fCIiKS50cmltKCkpKXtsZXQgSmU9ZnVuY3Rpb24oail7cmV0dXJuIFN0cmluZyhqfHwiIikucmVwbGFjZSgvXHgxYlxdW15ceDA3XSooXHgwN3xceDFiXFwpL2csIiIpLnJlcGxhY2UoL1x4MWJcWyhcZCspQy9nLGZ1bmN0aW9uKFAsSyl7cmV0dXJuIiAiLnJlcGVhdChOdW1iZXIoSyl8fDEpfSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbQUJdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbc3VdL2csIiIpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0hmSktyXS9nLGEpLnJlcGxhY2UoL1x4MWJNL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbU1RdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbYS16QS1aXS9nLCIiKS5yZXBsYWNlKC9ceDFiWz48PWVQWF5fXS9nLCIiKS5yZXBsYWNlKC9bXHUwMGEwXHUyMDBiLVx1MjAwZFx1ZmVmZl0vZywiICIpLnJlcGxhY2UoL1tceDAwLVx4MDhceDBiXHgwY1x4MGUtXHgxZl0vZywiIikucmVwbGFjZSgvWyBcdF0rXG4vZyxhKX0sQWU9ZnVuY3Rpb24oail7cmV0dXJuIFN0cmluZyhqfHwiIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9bTV0rJC9nLCIiKS50cmltKCl9LE9uPWZ1bmN0aW9uKGope3JldHVybiBTdHJpbmcoanx8IiIpLnJlcGxhY2UoL17igLpccyovLCIiKS5yZXBsYWNlKC9ePlxzKi8sIiIpLnRyaW0oKX0sZnQ9ZnVuY3Rpb24oail7dmFyIFA9U3RyaW5nKGp8fCIiKS50cmltKCk7cmV0dXJuISEoIVB8fE12KFApfHxFLnRlc3QoUCl8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF0vLnRlc3QoUCl8fC9eXFs+WzAtOTs/XSp1JC9pLnRlc3QoUCl8fC9eTSskL2kudGVzdChQKXx8L14oPzpPcGVuQUkgQ29kZXh8Q29kZXgpXGIvaS50ZXN0KFApfHwvXig/OnRva2Vucz98Y29udGV4dCB3aW5kb3d8cmVtYWluaW5nIGNvbnRleHR8YXBwcm92YWxzP3xzYW5kYm94fHByb3ZpZGVyfHNlc3Npb24gaWQpOlxzKi9pLnRlc3QoUCl8fC9eKD86dGhpbmtpbmd8d29ya2luZylccyooPzpcLlwuXC584oCmKT8kL2kudGVzdChQKXx8L15b4oCi4pemwrddXHMrKD86dGhpbmtpbmd8d29ya2luZ3xydW5uaW5nfHBsYW5uaW5nfGFwcGx5aW5nfHJlYWRpbmd8c2VhcmNoaW5nfGluc3BlY3Rpbmd8cmV2aWV3aW5nfHN1bW1hcml6aW5nfGVkaXRpbmd8dXBkYXRpbmd8d3JpdGluZ3xjb21wbGV0ZWQpXGIvaS50ZXN0KFApfHwvXig/Om1vZGVsfGRpcmVjdG9yeXx0aXB8Y29udGV4dHxjd2R8cGF0aCk6XHMrL2kudGVzdChQKSl9LGVuPWZ1bmN0aW9uKGope3ZhciBQPVN0cmluZyhqfHwiIikudHJpbSgpO2lmKCEvXuKAuig/OlxzfCQpLy50ZXN0KFApfHxFLnRlc3QoUCkpcmV0dXJuIG51bGw7dmFyIEs9QWUoT24oUCkpO3JldHVybiFLfHxmdChLKT9udWxsOkt9LHRuPWZ1bmN0aW9uKGope3ZhciBQPVN0cmluZyhqfHwiIikudHJpbSgpO2lmKCEvXlvigKLil6bCt+KPul0vLnRlc3QoUCkpcmV0dXJuIG51bGw7dmFyIEs9UC5yZXBsYWNlKC9eW+KAouKXpsK3XVxzKi8sIiIpLnJlcGxhY2UoL17ij7pccysvLCIiKS5yZXBsYWNlKC9e4pSCXHMqLywiIikudHJpbSgpO3JldHVybiFLfHwvXlvigKLil6bCt+KPul0kLy50ZXN0KEspfHwoSz1LLnJlcGxhY2UoL1xzKlwoXGQrW3NtaF0/XHMq4oCiXHMqZXNjIHRvIGludGVycnVwdFwpW1xzXFNdKiQvaSwiIikucmVwbGFjZSgvKD86W2Etel17MSw2fSk/4oC6W1xzXFNdKiQvLCIiKS5yZXBsYWNlKC9cc3syLH1ncHQtXGRbXHNcU10qJC9pLCIiKS5yZXBsYWNlKC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6KVxiW1xzXFNdKiQvaSwiIiksSz1BZShLKSwhS3x8Sy5sZW5ndGg8Mnx8Qi50ZXN0KEspfHxmdChLKSk/bnVsbDpLfSxTdD1mdW5jdGlvbihqKXt2YXIgUD1BZShqKTtyZXR1cm4hUHx8ZnQoUCl8fC9eW+KAouKXpsK34o+64oC6XS8udGVzdChQKXx8L15bXFtcXTw+MC05Oz9dK3U/JC9pLnRlc3QoUCl8fC9eW+KVreKVsOKUguKUjOKUlOKUkOKUmOKUnOKUpOKUrOKUtOKUvOKUgOKVkF0vLnRlc3QoUCl8fFAubGVuZ3RoPjUwMD9udWxsOlB9LG9lPWZ1bmN0aW9uKGosUCl7aWYoai5pbmRleE9mKFApIT09MClyZXR1cm4hMTt2YXIgSz1qLnNsaWNlKFAubGVuZ3RoKTtyZXR1cm4vXlthLXpdezEsNH0kL2kudGVzdChLKX0sTGU9ZnVuY3Rpb24oail7Zm9yKHZhciBQPVtdLEs9MDtLPGoubGVuZ3RoO0srKyl7dmFyIGFlPUFlKGpbS10pO2lmKCEoIWFlfHxhZS5sZW5ndGg8Mnx8ZnQoYWUpKSl7dmFyIHNlPVBbUC5sZW5ndGgtMV07aWYoIXNlKXtQLnB1c2goYWUpO2NvbnRpbnVlfWlmKGFlIT09c2Upe2lmKGFlLmluZGV4T2Yoc2UpPT09MCl7UFtQLmxlbmd0aC0xXT1hZTtjb250aW51ZX1pZihzZS5pbmRleE9mKGFlKT09PTApe29lKHNlLGFlKSYmKFBbUC5sZW5ndGgtMV09YWUpO2NvbnRpbnVlfVAucHVzaChhZSl9fX1yZXR1cm4gUC5qb2luKGEpLnRyaW0oKX0samU9ZnVuY3Rpb24oail7Zm9yKHZhciBQPTA7UDxqLmxlbmd0aDtQKyspe3ZhciBLPVN0cmluZyhqW1BdfHwiIikudHJpbSgpO2lmKEspe3ZhciBhZT1lbihLKTtpZihhZSlyZXR1cm4gYWU7aWYoSz09PSJcdTIwM0EiKWZvcih2YXIgc2U9UCsxO3NlPGoubGVuZ3RoO3NlKyspe3ZhciB5ZT1BZShqW3NlXSk7aWYoISgheWV8fEUudGVzdCh5ZSl8fGZ0KHllKSkpcmV0dXJuIHllfX19cmV0dXJuIG51bGx9LHR0PWZ1bmN0aW9uKGope2Zvcih2YXIgUD1bXSxLPSExLGFlPTA7YWU8ai5sZW5ndGg7YWUrKyl7dmFyIHNlPVN0cmluZyhqW2FlXXx8IiIpLnRyaW0oKTtpZighc2Upe2lmKEspYnJlYWs7Y29udGludWV9dmFyIHllPXRuKHNlKTtpZih5ZSl7UC5wdXNoKHllKSxLPSEwO2NvbnRpbnVlfWlmKEspe2lmKHNlPT09Ilx1MjAzQSJ8fC9e4oC6KD86XHN8JCkvLnRlc3Qoc2UpfHxFLnRlc3Qoc2UpfHxmdChzZSkpYnJlYWs7UC5wdXNoKEFlKHNlKSl9fXJldHVybiBQfTtmb3IodmFyIHM9SmUsbD1BZSxkPU9uLGY9ZnQsYz1lbix2PXRuLGg9U3QsZz1vZSxtPUxlLHk9amUsQz10dCxFPS9cYmdwdC1cZCsoPzpcLlxkKyk/KD86XHMrW2EtejAtOS4tXSspP1xzK8K3XHMrXGQrJVxzK2xlZnRccyvCt1xzKyg/OlwvfH5cLykuKy9pLEI9L14oPzp0aGlua2luZ3x3b3JraW5nfHJ1bm5pbmd8cGxhbm5pbmd8YXBwbHlpbmd8cmVhZGluZ3xzZWFyY2hpbmd8aW5zcGVjdGluZ3xyZXZpZXdpbmd8c3VtbWFyaXppbmd8ZWRpdGluZ3x1cGRhdGluZ3x3cml0aW5nfGNvbXBsZXRlZClcYi9pLEQ9W10sRj0wLEk9aS5yZXBsYWNlKC9cclxuPy9nLGEpLnNwbGl0KGEpLEw9MDtMPEkubGVuZ3RoO0wrKylmb3IodmFyIEg9SmUoSVtMXSksVT1ILnNwbGl0KGEpLHg9MDt4PFUubGVuZ3RoO3grKyl7dmFyIGs9U3RyaW5nKFVbeF18fCIiKS50cmltKCk7aWYoayl7dmFyIFQ9ZW4oayk7aWYoVCl7RC5wdXNoKHtraW5kOiJ1c2VyIixvcmRlcjpGKyssdGV4dDpUfSk7Y29udGludWV9dmFyIE09dG4oayk7aWYoTSl7RC5wdXNoKHtraW5kOiJhc3Npc3RhbnQiLG9yZGVyOkYrKyx0ZXh0Ok19KTtjb250aW51ZX12YXIgWT1TdChrKTtZJiZELnB1c2goe2tpbmQ6ImVjaG8iLG9yZGVyOkYrKyx0ZXh0Oll9KX19Zm9yKHZhciB6PUQuZmlsdGVyKGZ1bmN0aW9uKGosUCxLKXt2YXIgYWU9S1tQLTFdO3JldHVybiFhZXx8YWUua2luZCE9PWoua2luZHx8YWUudGV4dCE9PWoudGV4dH0pLFE9ei5maWx0ZXIoZnVuY3Rpb24oail7cmV0dXJuIGoua2luZD09PSJ1c2VyIn0pLGxlPXouZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiBqLmtpbmQ9PT0iYXNzaXN0YW50In0pLGVlPXouZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiBqLmtpbmQ9PT0iZWNobyJ9KSxaPXF2KGkpLHE9Wi5zcGxpdChhKS5tYXAoZnVuY3Rpb24oail7cmV0dXJuIFN0cmluZyhqfHwiIikudHJpbUVuZCgpfSksTz1qZShxKSxOPVEubGVuZ3RoP1FbUS5sZW5ndGgtMV06bnVsbCxHPWVlLm1hcChmdW5jdGlvbihqKXtyZXR1cm4gai50ZXh0fSkuZmlsdGVyKGZ1bmN0aW9uKGope3JldHVybiBqLmxlbmd0aD49M30pLEo9bnVsbCxuZT1HLmxlbmd0aC0xO25lPj0wO25lLS0paWYoR1tuZV0hPT1PKXtKPUdbbmVdO2JyZWFrfSFKJiZHLmxlbmd0aCYmKEo9R1tHLmxlbmd0aC0xXSk7Zm9yKHZhciBkZT1OP04udGV4dDpKLHJlPWxlLmZpbHRlcihmdW5jdGlvbihqKXtyZXR1cm4hTnx8ai5vcmRlcj5OLm9yZGVyfSkubWFwKGZ1bmN0aW9uKGope3JldHVybiBqLnRleHR9KSxpZT1bXSxxZT1aLm1hdGNoKC9eWyBcdF0qW+KAouKXpsK34o+6XVsgXHRdKiguKykkL2dtKXx8W10sZ2U9MDtnZTxxZS5sZW5ndGg7Z2UrKyl7dmFyIGNlPUFlKHFlW2dlXS5yZXBsYWNlKC9eWyBcdF0qW+KAouKXpsK34o+6XVsgXHRdKi8sIiIpKTtjZSYmKEIudGVzdChjZSl8fEUudGVzdChjZSl8fC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6fGVzYyB0byBpbnRlcnJ1cHQpXGIvaS50ZXN0KGNlKXx8aWUucHVzaChjZSkpfXZhciBSPUxlKHJlKXx8TGUodHQocSkpfHwoaWUubGVuZ3RoP2llW2llLmxlbmd0aC0xXTpudWxsKTtyZXR1cm4gZGUmJm4ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpkZX0pLFImJm4ucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50OlJ9KSwhbi5sZW5ndGgmJk4/bi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50Ok4udGV4dH0pOiFuLmxlbmd0aCYmSiYmbi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50Okp9KSxufWZvcih2YXIgaHQ9IlwwIixfZT0iXGIiLCQ9Ilx2IixmZT0iXGYiLENlPSIOIixCZT0iHyIsdmU9Ilx4QTAiLEZlPSJceDA3IixldD1uZXcgUmVnRXhwKG8rIlxcW1swLTk7P10qW2EtekEtWl18IitvKyJcXF1bXiIrRmUrIl0qKCIrRmUrInwiK28rIlxcXFxcXFxcKXwiK28rIls+PD1lUF9YXl18WyIraHQrIi0iK19lKyQrZmUrQ2UrIi0iK0JlKyJdfCIrdmUrInwiK3UsImciKSxkdD1pLnJlcGxhY2UoZXQsZnVuY3Rpb24oSmUpe3JldHVybiBKZT09PXZlPyIgIjpKZT09PXU/YToiIn0pLnNwbGl0KHUpLmpvaW4oYSksaXQ9ZHQuc3BsaXQoYSkubWFwKGZ1bmN0aW9uKEplKXtyZXR1cm4gSmUudHJpbSgpfSkuZmlsdGVyKEJvb2xlYW4pLE5lPVsvdGhpbmtpbmcgd2l0aCBoaWdoIGVmZm9ydC9pLC90aGlua2luZyB3aXRoIG1lZGl1bSBlZmZvcnQvaSwvdGhpbmtpbmcgd2l0aCBsb3cgZWZmb3J0L2ksbmV3IFJlZ0V4cCgidGhvdWdodCBmb3IgWzAtOV0rcyIsImkiKSxuZXcgUmVnRXhwKCJTYXV0ZWVkIGZvciBbMC05XSttIiwiaSIpLC9HZXJtaW5hdGluZy9pLC9Eb29kbGluZy9pLC9CcmV3aW5nL2ldLFJ0PW51bGwsWWU9LTEsRGU9W10sUGU9W10sdGU9W10sd2U9MDt3ZTxpdC5sZW5ndGg7d2UrKyl7dmFyIHc9aXRbd2VdLGF0PXcucmVwbGFjZSgvXuKdr1xzKi8sIiIpO2lmKGF0LmluZGV4T2YoJ1RyeSInKT09PTB8fGF0LmluZGV4T2YoJ1RyeSAiJyk9PT0wKXtEZS5wdXNoKGF0KTtjb250aW51ZX1mb3IodmFyIGt0PSExLHV0PTA7dXQ8TmUubGVuZ3RoO3V0KyspaWYoTmVbdXRdLnRlc3Qodykpe2t0PSEwLHRlLnB1c2godyk7YnJlYWt9aWYoIWt0JiZ3JiZ3LmluZGV4T2YoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpIT09MCYmdyE9PSJcdTI3NkYiJiZ3LmluZGV4T2YoImVzYyB0byBpbnRlcnJ1cHQiKT09PS0xJiZ3LmluZGV4T2YoIkNsYXVkZSBDb2RlIHYiKT09PS0xJiZ3LmluZGV4T2YoIlNvbm5ldCIpPT09LTEmJncuaW5kZXhPZigifi8iKSE9PTAmJncuaW5kZXhPZigiXHUyNUNGIGhpZ2giKT09PS0xJiZ3LmluZGV4T2YoIkZhaWxlZCB0byBpbnN0YWxsIEFudGhyb3BpYyBtYXJrZXRwbGFjZSIpPT09LTEmJncuaW5kZXhPZigiQ2xhdWRlIENvZGUgaGFzIHN3aXRjaGVkIGZyb20gbnBtIHRvIG5hdGl2ZSBpbnN0YWxsZXIiKT09PS0xJiZ3LmluZGV4T2YoIkZsdXR0ZXJpbmciKT09PS0xJiZ3LmluZGV4T2YoIj8gZm9yIHNob3J0Y3V0cyIpPT09LTEmJncuaW5kZXhPZigiMDsiKSE9PTAmJncuaW5kZXhPZigiOTsiKSE9PTAmJncuaW5kZXhPZigiQ2xhdWRlIGlzIHdhaXRpbmciKT09PS0xJiYhKHcuaW5kZXhPZigiXHUyNzIyIikhPT0tMXx8dy5pbmRleE9mKCJcdTI3MzMiKSE9PS0xfHx3LmluZGV4T2YoIlx1MjczNiIpIT09LTF8fHcuaW5kZXhPZigiXHUyNzNCIikhPT0tMXx8dy5pbmRleE9mKCJcdTI3M0QiKSE9PS0xKSYmISh3LmluZGV4T2YoIlx1MjU5MCIpPT09MHx8dy5pbmRleE9mKCJcdTI1OUQiKT09PTB8fHcuaW5kZXhPZigiXHUyNTk4Iik9PT0wKSYmISgodz09PSJsdSJ8fHc9PT0idWUifHx3PT09InRyInx8dz09PSJ0aSJ8fHc9PT0iZyJ8fHc9PT0ibiJ8fHc9PT0iaVx1MjAyNiJ8fHc9PT0iXHUyMDI2Inx8dz09PSJ1dHMifHx3PT09Imx0Inx8dz09PSJyZyJ8fHc9PT0iXHhCNyIpJiZ3Lmxlbmd0aDw0KSYmISh3LmluZGV4T2YoIlx1MjczREYiKT09PTB8fHcuaW5kZXhPZigiXHUyNzNCRiIpPT09MCkmJncuaW5kZXhPZigibnBtIFdBUk4iKT09PS0xJiZ3LmluZGV4T2YoIm5wbSBub3RpY2UiKT09PS0xJiYhKHcuaW5kZXhPZigiYWRkZWQgIikhPT0tMSYmdy5pbmRleE9mKCIgcGFja2FnZXMiKSE9PS0xKSYmdy5pbmRleE9mKCJhdWRpdGVkICIpPT09LTEmJiEody5pbmRleE9mKCJmb3VuZCAiKSE9PS0xJiZ3LmluZGV4T2YoIiB2dWxuZXJhYmlsaXRpZXMiKSE9PS0xKSYmISh3LmluZGV4T2YoIlVzaW5nICIpIT09LTEmJncuaW5kZXhPZigiIGZvciAiKSE9PS0xJiZ3LmluZGV4T2YoInNlc3Npb24iKSE9PS0xKSYmdy5pbmRleE9mKCJZb3UgY2FuIHVzZSIpPT09LTEmJiEody5pbmRleE9mKCJQcmVzcyAiKSE9PS0xJiZ3LmluZGV4T2YoIiBmb3IiKSE9PS0xKSYmISh3LmluZGV4T2YoInR5cGUgIik9PT0wJiZ3LmluZGV4T2YoIiB0byAiKSE9PS0xKSYmdy5pbmRleE9mKCJbd2FuZF0iKSE9PTAmJncuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKT09PS0xJiZ3LmluZGV4T2YoIlx1MjNGNSIpPT09LTEmJncuaW5kZXhPZigiYWNjZXB0ZWRpdCIpPT09LTEmJncuaW5kZXhPZigic2hpZnQrdGFiIik9PT0tMSYmdy5pbmRleE9mKCJ0YWJ0b2N5Y2xlIik9PT0tMSYmdy5pbmRleE9mKCJjdHJsK2ciKT09PS0xJiZ3LmluZGV4T2YoIi9lZmZvcnQiKT09PS0xJiYhKHcuaW5kZXhPZigiT3B1cyIpIT09LTEmJncuaW5kZXhPZigibW9kZWwiKSE9PS0xKSYmdy5pbmRleE9mKCJIYWlrdSIpPT09LTEmJncuaW5kZXhPZigidG8gY3ljbGUiKT09PS0xJiYhKHcuaW5kZXhPZigiaGlnaCBceEI3IikhPT0tMXx8dy5pbmRleE9mKCJoaWdoXHhCNyIpIT09LTEpJiYhKHcuaW5kZXhPZigibWVkaXVtIFx4QjciKSE9PS0xfHx3LmluZGV4T2YoIm1lZGl1bVx4QjciKSE9PS0xKSYmISh3LmluZGV4T2YoImxvdyBceEI3IikhPT0tMXx8dy5pbmRleE9mKCJsb3dceEI3IikhPT0tMSkpe2lmKHcuaW5kZXhPZigiXHUyNUNGIik9PT0wKXtpZih3PXcuc2xpY2UoMSkudHJpbSgpLCF3KWNvbnRpbnVlO1BlLnB1c2godyk7Y29udGludWV9dy5sZW5ndGg8MyYmIS9eW2EtekEtWl17M30kLy50ZXN0KHcpfHxQZS5wdXNoKHcpfX1pZih0ZS5sZW5ndGg+MCl7dmFyIFp0PXRlW3RlLmxlbmd0aC0xXSxBdD1adC5tYXRjaChuZXcgUmVnRXhwKCJmb3IgKFswLTldK1ttc10rfCBbMC05XSttIFswLTldK3MpIiwiaSIpKSxXdD1BdD8iXHU2REYxXHU1RUE2XHU2MDFEXHU4MDAzICIrQXRbMF0ucmVwbGFjZSgvZm9yIC9pLCIiKToiXHU2REYxXHU1RUE2XHU2MDFEXHU4MDAzXHU0RTJELi4uIjtuLnB1c2goe3JvbGU6InRoaW5raW5nIixjb250ZW50Old0LHR5cGU6ImRlZXAtdGhvdWdodCJ9KX1pZihEZS5sZW5ndGg+MCl7dmFyIHp0PURlW0RlLmxlbmd0aC0xXS5yZXBsYWNlKC9eVHJ5XHMqLywiIikudHJpbSgpO24ucHVzaCh7cm9sZToicHJvbXB0Iixjb250ZW50Onp0LHR5cGU6InN1Z2dlc3Rpb24ifSl9aWYoIVBlLmxlbmd0aClyZXR1cm4gbjtmb3IodmFyIFRlPVtdLFVlPW51bGwsS2U9W10sd2U9MDt3ZTxQZS5sZW5ndGg7d2UrKylpZih3PVBlW3dlXSx3LmluZGV4T2YoIlx1Mjc2RiIpPT09MCl7dmFyIHh0PXcucmVwbGFjZSgvXuKdr1xzKi8sIiIpLnRyaW0oKTtpZih4dC5pbmRleE9mKCdUcnkiJyk9PT0wfHx4dC5pbmRleE9mKCdUcnkgIicpPT09MCljb250aW51ZTtVZSE9PW51bGwmJktlLmxlbmd0aD4wJiYoVGUucHVzaCh7dXNlcjpVZSxhc3Npc3RhbnRMaW5lczpLZX0pLEtlPVtdKSx4dD9VZT14dDooVWUhPT1udWxsJiZLZS5sZW5ndGg+MCYmKFRlLnB1c2goe3VzZXI6VWUsYXNzaXN0YW50TGluZXM6S2V9KSxLZT1bXSksVWU9bnVsbCl9ZWxzZSBVZSE9PW51bGwmJih3LmluZGV4T2YoIlx1MjNGQSIpIT09LTEmJih3LmluZGV4T2YoIkhpISIpIT09LTF8fHcuaW5kZXhPZigiSGVsbG8iKSE9PS0xfHx3LmluZGV4T2YoIldoYXQiKSE9PS0xfHx3LmluZGV4T2YoIndvcmtpbmciKSE9PS0xKT9LZS5wdXNoKHcpOncuaW5kZXhPZigiXHUyM0ZBIik9PT0wP0tlLnB1c2gody5zbGljZSgxKS50cmltKCl8fHcpOncubGVuZ3RoPj04JiZ3LmluZGV4T2YoIlx1MjcyMiIpPT09LTEmJncuaW5kZXhPZigiXHUyNzMzIik9PT0tMSYmdy5pbmRleE9mKCJcdTI3MzYiKT09PS0xJiZ3LmluZGV4T2YoIlx1MjczQiIpPT09LTEmJncuaW5kZXhPZigiXHUyNzNEIik9PT0tMSYmdy5pbmRleE9mKCJcdTI1OTAiKSE9PTAmJncuaW5kZXhPZigiXHUyNTlEIikhPT0wJiZ3LmluZGV4T2YoIlx1MjU5OCIpIT09MCYmdy5pbmRleE9mKCJlc2N0b2ludGVycnVwdCIpPT09LTEmJncuaW5kZXhPZigiP2ZvciIpIT09MCYmdy5pbmRleE9mKCI/IGZvciIpIT09MCYmS2UucHVzaCh3KSk7aWYoVWUhPT1udWxsJiZLZS5sZW5ndGg+MCYmVGUucHVzaCh7dXNlcjpVZSxhc3Npc3RhbnRMaW5lczpLZX0pLFRlLmxlbmd0aD09PTApe2Zvcih2YXIgVnQ9IiIsVXQ9LTEsd2U9MDt3ZTxQZS5sZW5ndGg7d2UrKylpZih3PVBlW3dlXSwhKHcuaW5kZXhPZignVHJ5IicpPT09MHx8dy5pbmRleE9mKCdUcnkgIicpPT09MCkmJncuaW5kZXhPZigiRmFpbGVkIHRvIGluc3RhbGwiKT09PS0xJiZ3LmluZGV4T2YoImN0cmwrZyIpPT09LTEmJncuaW5kZXhPZigiXHUyNUNGICIpIT09MCYmISh3Lmxlbmd0aDwyfHx3Lmxlbmd0aD4xMDApJiYvXlthLXpBLVpdLy50ZXN0KHcpKXtWdD13LnRyaW0oKSxVdD13ZTticmVha31pZihWdCYmVXQ+PTApe3ZhciBFbj1QZS5zbGljZShVdCsxKS5maWx0ZXIoZnVuY3Rpb24oSmUpe3JldHVybiBKZS5sZW5ndGg+PTh9KTtFbi5sZW5ndGg+MCYmVGUucHVzaCh7dXNlcjpWdCxhc3Npc3RhbnRMaW5lczpFbn0pfX1mb3IodmFyIGN0PTA7Y3Q8VGUubGVuZ3RoO2N0KyspaWYobi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50OlRlW2N0XS51c2VyfSksVGVbY3RdLmFzc2lzdGFudExpbmVzLmxlbmd0aD4wKXt2YXIga2U9eW0oVGVbY3RdLmFzc2lzdGFudExpbmVzLmpvaW4oYSkpO24ucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50OmtlfSl9cmV0dXJuIG59dmFyIHJsPSJ0cmFuc3BhcmVudCI7ZnVuY3Rpb24gTWkoZSx0KXtmb3IodmFyIG49dHx8MyxpPWVbMF0ubGVuZ3RoKm4sYT1lLmxlbmd0aCpuLHU9IiIsbz0wO288ZS5sZW5ndGg7bysrKWZvcih2YXIgcz0wO3M8ZVtvXS5sZW5ndGg7cysrKWVbb11bc10hPT1ybCYmKHUrPSc8cmVjdCB4PSInK3MqbisnIiB5PSInK28qbisnIiB3aWR0aD0iJytuKyciIGhlaWdodD0iJytuKyciIGZpbGw9IicrZVtvXVtzXSsnIi8+Jyk7cmV0dXJuJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgJytpKyIgIithKyciIGNsYXNzPSJwaXhlbC1hdmF0YXItc3ZnIj4nK3UrIjwvc3ZnPiJ9ZnVuY3Rpb24gcWkoZSl7dmFyIHQ9cmwsbj1lLmJhc2UsaT1lLmRhcmssYT1lLmxpZ2h0fHxlLmJhc2UsdT1lLmFjY2VudHx8IiNGRkZGRkYiLG89ZS5leWV8fCIjMkQyRDJEIixzPWUubW91dGh8fCIjRjI4QjlBIixsPWUubm9zZXx8ZS5kYXJrO3JldHVybltbdCxpLHQsdCx0LHQsdCx0LGksdF0sW2ksbixpLHQsdCx0LHQsaSxuLGldLFtpLG4sbixuLG4sbixuLG4sbixpXSxbbixuLHUsbyxuLG4sdSxvLG4sbl0sW24sbix1LHUsbixuLHUsdSxuLG5dLFtuLG4sbixuLHMscyxuLG4sbixuXSxbbixsLG4sYSxuLG4sYSxuLGwsbl0sW3QsbixuLG4sbixuLG4sbixuLHRdLFt0LHQsbixpLG4sbixpLG4sdCx0XSxbdCx0LHQsbix0LHQsbix0LHQsdF1dfXZhciBPdj17YmFzZToiI0YwOTIzQSIsZGFyazoiI0M0NkExQSIsbGlnaHQ6IiNGMDkyM0EiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIsbm9zZToiI0U4N0Q1QSJ9LEh2PXtiYXNlOiIjOUVBQUI4IixkYXJrOiIjNkI3QjhEIixsaWdodDoiI0M1Q0VEOCIsYWNjZW50OiIjRkZGRkZGIixleWU6IiM3RUM4OEIiLG1vdXRoOiIjRjI4QjlBIn0saWw9W3tiYXNlOiIjNUE4RkUwIixkYXJrOiIjMkU1QkIzIixsaWdodDoiIzlDQzBGMiIsYWNjZW50OiIjRkZGRkZGIixleWU6IiNGRkQ2NkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjNUE4RkUwIn0se2Jhc2U6IiNBMDZGRTAiLGRhcms6IiM2QjQ1QTgiLGxpZ2h0OiIjQzhBNEYyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRTM2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiNBMDZGRTAifSx7YmFzZToiIzdCQjc2QiIsZGFyazoiIzRGOEE0MCIsbGlnaHQ6IiNBOUQ0OUMiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzdCQjc2QiJ9LHtiYXNlOiIjRDg2QTg4IixkYXJrOiIjOUMzQTU3IixsaWdodDoiI0U4QTRCNSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRkZGRkZGIixwcmltYXJ5OiIjRDg2QTg4In0se2Jhc2U6IiM1QkI3QjAiLGRhcms6IiMyRTc4NzMiLGxpZ2h0OiIjOUNENkQyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRDY2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM1QkI3QjAifSx7YmFzZToiIzRBNEE2MCIsZGFyazoiIzFGMUYyRSIsbGlnaHQ6IiM2RTZFODQiLGFjY2VudDoiI0Y1RjVGNSIsZXllOiIjRkZENjZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzRBNEE2MCJ9LHtiYXNlOiIjRDhBODVBIixkYXJrOiIjOUM3MDI4IixsaWdodDoiI0VCQzc4QSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjRDhBODVBIn1dO2Z1bmN0aW9uIF92KGUsdCl7Zm9yKHZhciBuPVN0cmluZyhlfHwiIiksaT0wLGE9MDthPG4ubGVuZ3RoO2ErKylpPShpPDw1KS1pK24uY2hhckNvZGVBdChhKXwwO3JldHVybiBNYXRoLmFicyhpKSV0fXZhciBhbD17ImdlbmVyYWwtcHVycG9zZSI6Ilx1NEUwN1x1ODBGRFx1NzMyQiIsRXhwbG9yZToiXHU0RkE2XHU2M0EyXHU3MzJCIiwiY29kZS1leHBsb3JlciI6Ilx1NEZBNlx1NjNBMlx1NzMyQiIsImNvZGUtcmV2aWV3ZXIiOiJcdTVCQTFcdTY3RTVcdTczMkIiLCJjb2RlLWFyY2hpdGVjdCI6Ilx1NjdCNlx1Njc4NFx1NzMyQiIsImNvZGUtc2ltcGxpZmllciI6Ilx1N0I4MFx1NTMxNlx1NzMyQiIsImNvZGUtZ3VpZGUiOiJcdTU0MTFcdTVCRkNcdTczMkIiLFBsYW46Ilx1N0I1Nlx1NTIxMlx1NzMyQiIsImZlYXR1cmUtZGV2IjoiXHU1RjAwXHU1M0QxXHU3MzJCIiwicHItdGVzdC1hbmFseXplciI6Ilx1NkQ0Qlx1OEJENVx1NzMyQiIsInNpbGVudC1mYWlsdXJlLWh1bnRlciI6Ilx1NjJBNFx1NTM2Qlx1NzMyQiIsInR5cGUtZGVzaWduLWFuYWx5emVyIjoiXHU3QzdCXHU1NzhCXHU3MzJCIiwiY29tbWVudC1hbmFseXplciI6Ilx1NkNFOFx1OTFDQVx1NzMyQiJ9LGl1PW51bGw7ZnVuY3Rpb24gdWwoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ZS5hZ2VudFR5cGV8fCIiO3JldHVybiB0JiZhbFt0XT9hbFt0XTp0fHwoV3UoKT09PSJFbmdsaXNoIj8iU3VidGFzayI6Ilx1NUI1MFx1NEVGQlx1NTJBMSIpfWZ1bmN0aW9uIE52KGUpe3ZhciB0PVN0cmluZyhlfHwiIikudHJpbSgpO3JldHVybiB0P3QuaW5kZXhPZigiXHU3MzJCXHU3MzJCIik9PT0wP3Q6Ilx1NzMyQlx1NzMyQiAiK3Q6Ilx1NzMyQlx1NzMyQlx1NUI1MCBBZ2VudCJ9ZnVuY3Rpb24gb2woZSl7dmFyIHQ9dWwoZSk7aWYoIXQpcmV0dXJuIHQ7dmFyIG49aXUmJmUmJmUudGFza0lkP2l1LmdldChlLnRhc2tJZCk6bnVsbDtyZXR1cm4gTnYobj90K246dCl9ZnVuY3Rpb24gc2woZSl7dmFyIHQ9ZSYmKGUuYWdlbnRUeXBlfHxlLnRhc2tJZCl8fCJzdWJhZ2VudCI7cmV0dXJuIGlsW192KHQsaWwubGVuZ3RoKV19ZnVuY3Rpb24gaGgoZSl7dmFyIHQ9c2woZSksbj1vbChlKSxpPU1pKHFpKHQpKTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWF2YXRhciBhc3Npc3RhbnQgc3ViYWdlbnQiIHN0eWxlPSItLWFnZW50LWNvbG9yOicrdC5wcmltYXJ5KyciPjxkaXYgY2xhc3M9InBpeGVsLWF2YXRhciI+JytpKyc8L2Rpdj48c3BhbiBjbGFzcz0iYXZhdGFyLW5hbWUiPicrcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24ganYoZSx0KXtpZighZXx8ZS50eXBlIT09InRvb2xfcmVzdWx0IilyZXR1cm4iIjt2YXIgbj1wbihlLmNvbnRlbnQpLGk9ZS5pc19lcnJvcj09PSEwLGE9dHlwZW9mIG49PSJzdHJpbmciP246bj09bnVsbD8iIjpTdHJpbmcobik7aWYoIWkmJiFhLnRyaW0oKSlyZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHkgcGVuZGluZyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlciBwZW5kaW5nIj4nK3AoRWUoInN1YmFnZW50LnJ1bm5pbmciKSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idHlwaW5nLWluZGljYXRvciI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPjwvZGl2Pic7dmFyIHU9YS50cmltKCk/YTpFZSgic3ViYWdlbnQubm9fb3V0cHV0Iiksbz1hLnRyaW0oKT9jdSh1KTpwKHUpLHM9RWUoaT8ic3ViYWdlbnQudGFzay5mYWlsZWQiOiJzdWJhZ2VudC50YXNrLmRvbmUiKSxsPWk/Ilx1MjcxNyI6Ilx1MjcxMyI7cmV0dXJuJzxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5IGZpbmFsJysoaT8iIGVycm9yIjoiIikrJyI+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyICcrKGk/ImVycm9yIjoiZG9uZSIpKyciPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXItbGFiZWwiPicrcChzKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5LWNvbnRlbnQiPicrbysiPC9kaXY+PC9kaXY+In12YXIgUGk9e2Fzc2lzdGFudDpNaShxaShPdikpLHVzZXI6TWkocWkoSHYpKX0sbGw9e3VzZXI6e25hbWU6Ilx1OEQ1Qlx1NTM1QVx1ODY0RVx1NTk5RSIsYXZhdGFyU3ZnOlBpLnVzZXJ9LGFzc2lzdGFudDp7bmFtZToiXHU1MkU0XHU1MkIzXHU1MjFEXHU0RThDIixhdmF0YXJTdmc6UGkuYXNzaXN0YW50fX07ZnVuY3Rpb24gYXUoZSl7dmFyIHQ9ci5jb25maWcmJnIuY29uZmlnLnN0cnVjdHVyZWRDaGF0UGVyc29uYSxuPXQmJnRbZV0/dFtlXTpudWxsLGk9bGxbZV18fGxsLmFzc2lzdGFudDtyZXR1cm57bmFtZTpuJiZ0eXBlb2Ygbi5uYW1lPT0ic3RyaW5nIiYmbi5uYW1lLnRyaW0oKT9uLm5hbWUudHJpbSgpOmkubmFtZSxhdmF0YXI6biYmdHlwZW9mIG4uYXZhdGFyPT0ic3RyaW5nIiYmbi5hdmF0YXIudHJpbSgpP24uYXZhdGFyLnRyaW0oKTpudWxsLGF2YXRhclN2ZzppLmF2YXRhclN2Z319ZnVuY3Rpb24gZGwoZSl7cmV0dXJuJzxkaXYgY2xhc3M9InBpeGVsLWF2YXRhciI+JytlKyI8L2Rpdj4ifWZ1bmN0aW9uIHloKGUsdCl7aWYoISghZXx8IWUucGFyZW50Tm9kZSkpe3ZhciBuPWF1KHQ9PT0idXNlciI/InVzZXIiOiJhc3Npc3RhbnQiKTtlLm91dGVySFRNTD1kbChuLmF2YXRhclN2Zyl9fWZ1bmN0aW9uIFFuKGUsdCl7dD10fHx7fTt2YXIgbj1lPT09InVzZXIiPyJ1c2VyIjoiYXNzaXN0YW50IixpPWF1KG4pLGE9aS5hdmF0YXI/JzxpbWcgY2xhc3M9InBpeGVsLWF2YXRhci1pbWFnZSIgc3JjPSInK3AoaS5hdmF0YXIpKyciIGFsdD0iJytwKGkubmFtZSkrJyIgb25lcnJvcj0iaGFuZGxlQ2hhdEF2YXRhckltYWdlRXJyb3IodGhpcywgJytKU09OLnN0cmluZ2lmeShuKSsnKSIgLz4nOmRsKGkuYXZhdGFyU3ZnKSx1PXQubGVmdFNsb3Q/dC5sZWZ0U2xvdDoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWF2YXRhciAnK2UrJyI+JythKyc8c3BhbiBjbGFzcz0iYXZhdGFyLW5hbWUiPicrcChpLm5hbWUpKyI8L3NwYW4+Iit1KyI8L2Rpdj4ifWZ1bmN0aW9uIFJ2KCl7dmFyIGU9RHQoKTtyZXR1cm4hZXx8IXVlKGUpPyIiOklsKGUse2tpbmQ6ImNvbXBhY3QifSl9ZnVuY3Rpb24gdXUoZSx0LG4saSl7aWYoZS5yb2xlPT09InRoaW5raW5nIil7dmFyIGE9dHlwZW9mIGUuY29udGVudD09InN0cmluZyI/ZS5jb250ZW50OiIiO2lmKCFhLnRyaW0oKSlyZXR1cm4iIjt2YXIgdT1UdCgidGhpbmtpbmciLFtYdShlLG4pLCJwdHkiXSksbz1idCh1KSxzPW89PT1udWxsP1NuKCJ0aGlua2luZyIpOm87cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSB0aGlua2luZyI+PGRpdiBjbGFzcz0idGhpbmtpbmctaW5saW5lIHRoaW5raW5nLXB0eSAnKyhzPyJleHBhbmRlZCI6ImNvbGxhcHNlZCIpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRoaW5raW5nIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh1KSsnIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyIgb25jbGljaz0iX190aGlua2luZ1RvZ2dsZSh0aGlzKSI+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1pY29uIj5cdTI5QkY8L3NwYW4+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1wcmV2aWV3Ij4nK3AoYSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWFjdGlvbiI+Jysocz8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIikrIjwvc3Bhbj48L2Rpdj48L2Rpdj4ifWlmKGUucm9sZT09PSJwcm9tcHQiKXJldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgcHJvbXB0Ij48ZGl2IGNsYXNzPSJwcm9tcHQtY2FyZCI+PGRpdiBjbGFzcz0icHJvbXB0LWljb24iPlx1MjE5MjwvZGl2PjxkaXYgY2xhc3M9InByb21wdC1jb250ZW50Ij5cdThCRDVcdThCRDVcdUZGMUE8c3BhbiBjbGFzcz0icHJvbXB0LXRleHQiPicrcChlLmNvbnRlbnQpKyI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+IjtpZihBcnJheS5pc0FycmF5KGUuY29udGVudCkpcmV0dXJuIG9tKGUsdCxuLGkpO3ZhciBsPVFuKGUucm9sZSksZD1lLnJvbGU9PT0iYXNzaXN0YW50Ij9jdShlLmNvbnRlbnQpOmUucm9sZT09PSJ1c2VyIj9obChlLmNvbnRlbnQpOnAoZS5jb250ZW50KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrZS5yb2xlKyciPicrbCsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWJ1YmJsZSI+JytkKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIFd2KGUpe3ZhciB0PXt9O2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKGkmJmkudHlwZT09PSJ0b29sX3Jlc3VsdCIpe3ZhciBhPWkudG9vbF91c2VfaWQ7aWYoIWEpY29udGludWU7dFthXXx8KHRbYV09W10pLHRbYV0ucHVzaChpKX19cmV0dXJuIHR9ZnVuY3Rpb24gY2woZSx0KXt2YXIgbj1lJiZ0P2VbdF06bnVsbDtpZighbnx8IW4ubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGgtMTtpKyspaWYoU2wobltpXSxuW2krMV0pKXJldHVybiBuW2krMV07cmV0dXJuIG5bbi5sZW5ndGgtMV19ZnVuY3Rpb24genYoZSx0KXt2YXIgbj1lJiZ0P2VbdF06bnVsbDtpZighbnx8bi5sZW5ndGg8MilyZXR1cm4hMTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoLTE7aSsrKWlmKFNsKG5baV0sbltpKzFdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBWdihlKXtyZXR1cm4nPGRpdiBjbGFzcz0ic3RydWN0dXJlZC10b29sLWhpbnQiPlx1NURGMlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1NEUwMFx1NkIyMSAnK3AoZHUoZSkpKyIgXHU1M0MyXHU2NTcwXHU5NUVFXHU5ODk4PC9kaXY+In12YXIgVXY9e1JlYWQ6MSxHbG9iOjEsR3JlcDoxLFdlYkZldGNoOjEsV2ViU2VhcmNoOjEsVG9kb1JlYWQ6MX07ZnVuY3Rpb24gZmwoZSl7aWYoIWV8fGUudHlwZSE9PSJ0b29sX3VzZSJ8fCFVdltlLm5hbWVdKXJldHVybiExO2lmKGUubmFtZT09PSJSZWFkIil7dmFyIHQ9ZS5pbnB1dHx8e307aWYoT3UodC5maWxlX3BhdGh8fHQucGF0aHx8IiIpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIEt2KGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDspe3ZhciBpPWVbbl07aWYoaS50eXBlPT09InRvb2xfcmVzdWx0Iil7bisrO2NvbnRpbnVlfWlmKGZsKGkpKXtmb3IodmFyIGE9W3tibG9jazppLGluZGV4Om59XSx1PW4rMTt1PGUubGVuZ3RoOyl7aWYoZVt1XS50eXBlPT09InRvb2xfcmVzdWx0Iil7dSsrO2NvbnRpbnVlfWlmKGZsKGVbdV0pKWEucHVzaCh7YmxvY2s6ZVt1XSxpbmRleDp1fSksdSsrO2Vsc2UgYnJlYWt9YS5sZW5ndGg+PTI/dC5wdXNoKHt0eXBlOiJncm91cCIsaXRlbXM6YSxlbmRJbmRleDp1fSk6dC5wdXNoKHt0eXBlOiJzaW5nbGUiLGJsb2NrOmksaW5kZXg6bn0pLG49dX1lbHNlIHQucHVzaCh7dHlwZToic2luZ2xlIixibG9jazppLGluZGV4Om59KSxuKyt9cmV0dXJuIHR9dmFyIEp2PXtSZWFkOiJcdThCRkJcdTUzRDYiLEdsb2I6Ilx1NjQxQ1x1N0QyMiIsR3JlcDoiXHU2NDFDXHU3RDIyIixXZWJGZXRjaDoiXHU2MjkzXHU1M0Q2IixXZWJTZWFyY2g6Ilx1NjQxQ1x1N0QyMiIsVG9kb1JlYWQ6Ilx1NUY4NVx1NTI5RSJ9O2Z1bmN0aW9uIFl2KGUsdCxuLGksYSl7Zm9yKHZhciB1PWF8fHt9LG89e30scz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgbD1lW3NdLmJsb2NrLm5hbWU7b1tsXT0ob1tsXXx8MCkrMX1mb3IodmFyIGQ9ITAsZj0hMSxzPTA7czxlLmxlbmd0aDtzKyspe3ZhciBjPWVbc10uYmxvY2ssdj1jbChuLGMuaWQpO3Y/di5pc19lcnJvciYmKGY9ITApOmQ9ITF9dmFyIGg9ZD9mPyJcdTI3MTciOiJcdTI3MTMiOiJcdTIwMjYiLGc9ZD9mPyJlcnJvciI6ImRvbmUiOiJwZW5kaW5nIixtPVtdO2Zvcih2YXIgeSBpbiBvKW0ucHVzaChvW3ldKyIgIisoSnZbeV18fHkpKTtmb3IodmFyIEM9bS5qb2luKCIgXHhCNyAiKSxFPVR0KCJ0b29sLWdyb3VwIixbaSxlWzBdJiZlWzBdLmluZGV4LGUubGVuZ3RoXSksQj1idChFKSxEPXUuZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6Qj09PW51bGw/U24oInRvb2xHcm91cCIpOkIsRj0iIixzPTA7czxlLmxlbmd0aDtzKyspdHJ5e0YrPXlsKGVbc10uYmxvY2ssdCxuLGVbc10uaW5kZXgsaSx1KX1jYXRjaHtGKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTVERTVcdTUxNzdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfXJldHVybic8ZGl2IGNsYXNzPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1rZXk9IicrcChFKSsnIiBkYXRhLWV4cGFuZGVkPSInKyhEPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLXN0YXR1cz0iJytnKyciPjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtc3VtbWFyeSIgb25jbGljaz0iX190b29sR3JvdXBUb2dnbGUodGhpcy5wYXJlbnROb2RlKSI+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtc3RhdHVzIj4nK2grJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC10ZXh0Ij4nK3AoQykrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC1jb3VudCI+JytlLmxlbmd0aCsnIFx1NEUyQVx1OEMwM1x1NzUyODwvc3Bhbj48c3ZnIGNsYXNzPSJ0b29sLWdyb3VwLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ0cmFuc2Zvcm06JysoRD8icm90YXRlKDE4MGRlZykiOiIiKSsnIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtYm9keSIgc3R5bGU9ImRpc3BsYXk6JysoRD8iYmxvY2siOiJub25lIikrJzsiPicrRisiPC9kaXY+PC9kaXY+In13aW5kb3cuX190b29sR3JvdXBUb2dnbGU9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsdD8iZmFsc2UiOiJ0cnVlIik7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1ib2R5Iik7biYmKG4uc3R5bGUuZGlzcGxheT10PyJub25lIjoiYmxvY2siKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWNoZXZyb24iKTtpJiYoaS5zdHlsZS50cmFuc2Zvcm09dD8iIjoicm90YXRlKDE4MGRlZykiKSxObihlLCJ0b29sLWdyb3VwIil9fTtmdW5jdGlvbiBHdihlLHQpe2Zvcih2YXIgbj0wLGk9MCxhPTAsdT17fSxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPWVbdFtvXV07aWYocyl7cy5yb2xlPT09InVzZXIiJiZuKys7dmFyIGw9cy5jb250ZW50O2lmKEFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBkPTA7ZDxsLmxlbmd0aDtkKyspe3ZhciBmPWxbZF07aWYoZilpZihmLl9fc3ViYWdlbnQmJmYuX19zdWJhZ2VudC50YXNrSWQmJih1W2YuX19zdWJhZ2VudC50YXNrSWRdPTEpLGYudHlwZT09PSJ0b29sX3VzZSIpe2krKzt2YXIgYz1PaShmKTtjJiZjLnRhc2tJZCYmKHVbYy50YXNrSWRdPTEpfWVsc2UgZi50eXBlPT09InRvb2xfcmVzdWx0IiYmZi5pc19lcnJvciYmYSsrfX19dmFyIHY9MDtmb3IodmFyIGggaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxoKSYmdisrO3JldHVybntyb3VuZHM6bix0b29sczppLGFnZW50czp2LGVycm9yczphfX1mdW5jdGlvbiBwbChlKXt2YXIgdD1bXTtyZXR1cm4gdC5wdXNoKEVlKCJoaXN0b3J5LnJvdW5kcyIse246U3RyaW5nKGUucm91bmRzKX0pKSxlLnRvb2xzPjAmJnQucHVzaChFZSgiaGlzdG9yeS50b29scyIse246U3RyaW5nKGUudG9vbHMpfSkpLGUuYWdlbnRzPjAmJnQucHVzaChFZSgiaGlzdG9yeS5hZ2VudHMiLHtuOlN0cmluZyhlLmFnZW50cyl9KSksZS5lcnJvcnM+MCYmdC5wdXNoKEVlKCJoaXN0b3J5LmVycm9ycyIse246U3RyaW5nKGUuZXJyb3JzKX0pKSx0LmpvaW4oIiBceEI3ICIpfWZ1bmN0aW9uIG91KGUsdCl7Zm9yKHZhciBuPWUubmV4dEVsZW1lbnRTaWJsaW5nO247KW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LWxvYWQtbW9yZSIpfHwodD9uLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTpuLmNsYXNzTGlzdC5hZGQoImNoYXQtaGlzdG9yeS1oaWRkZW4iKSksbj1uLm5leHRFbGVtZW50U2libGluZ31mdW5jdGlvbiBRdihlLHQsbixpKXshZXx8IXR8fCgkdihlLHQsITEpLHN1KHQpLGVtKGUpKX1mdW5jdGlvbiBiaChlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LWZvbGQtYmFyIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuaWQ9ImNoYXQtZm9sZC1iYXIiLHQuY2xhc3NOYW1lPSJjaGF0LWZvbGQtYmFyIGhpZGRlbiIsZS5pbnNlcnRCZWZvcmUodCxlLmZpcnN0Q2hpbGQpLHQpfWZ1bmN0aW9uICR2KGUsdCxuKXtlJiZlLmNsYXNzTGlzdC50b2dnbGUoImF1dG8tZm9sZCIsISFuKX1mdW5jdGlvbiBFaChlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0O2krKyllW2ldJiZuLnB1c2goaSk7cmV0dXJuIG59ZnVuY3Rpb24gc3UoZSl7aWYoZSlmb3IodmFyIHQ9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1hdXRvLWZvbGQtaGlkZGVuIiksbj0wO248dC5sZW5ndGg7bisrKXRbbl0uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1hdXRvLWZvbGQtaGlkZGVuIil9ZnVuY3Rpb24gRmgoZSx0LG4pe2lmKHN1KGUpLCEoIW58fHQ8MSkpe2Zvcih2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciB1PWlbYV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKHUhPW51bGwpe3ZhciBvPXBhcnNlSW50KHUsMTApOyFpc05hTihvKSYmbzx0JiZpW2FdLmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpfX1YdihlKX19ZnVuY3Rpb24gWHYoZSl7dmFyIHQ9ZT9lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpOm51bGw7aWYodCl7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLCJmYWxzZSIpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIpO24mJm4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKTt2YXIgaT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2kmJihpLnRleHRDb250ZW50PUVlKCJoaXN0b3J5LmV4cGFuZCIpKSxvdSh0LCExKSx0LmNsYXNzTGlzdC5hZGQoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpO3ZhciBhPWUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYoYSl7dmFyIHU9YS5zcGxpdCgiOiIpO3UubGVuZ3RoPj0zJiYodVsyXT0iMCIsZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLHUuam9pbigiOiIpKSl9fX1mdW5jdGlvbiBadihlKXshZXx8IWUuaXNDb25uZWN0ZWR8fChDbih7cmVtb3ZlRGl2aWRlcjohMH0pLHp1KCEwKSl9ZnVuY3Rpb24gZW0oZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3QmJih0LmlubmVySFRNTD0iIix0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuY2hhdEF1dG9Gb2xkU25hcHNob3Q9bnVsbCl9fWZ1bmN0aW9uIHdoKGUsdCxuKXt2YXIgaT12bChlKXx8Ilx1NjVCMFx1NkQ4OFx1NjA2RiIsYT10P3ZsKHQpOiJcdTdCNDlcdTVGODVcdTU2REVcdTU5MEQuLi4iLHU9IiI7cmV0dXJuIG4mJih1PSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNoYXQtZm9sZC1yb3cgaGlzdG9yeSIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRUb2dnbGVIaXN0b3J5ICYmIHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeSgpIiB0aXRsZT0iXHU1QzU1XHU1RjAwXHU2MjE2XHU2NTM2XHU4RDc3XHU2NkY0XHU2NUU5XHU1QkY5XHU4QkREIj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXJvbGUiPlx1NTM4Nlx1NTNGMjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXRleHQiPlx1NURGMlx1NjUzNlx1OEQ3NyAnK3AocGwobikpKyI8L3NwYW4+PC9idXR0b24+IiksdSsnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IHVzZXIiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0ICYmIHdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0KCkiIHRpdGxlPSJcdTVCOUFcdTRGNERcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtcm9sZSI+XHU2MjExPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtdGV4dCI+JytwKGkpKyc8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IGFzc2lzdGFudCIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QgJiYgd2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QoKSIgdGl0bGU9Ilx1NUI5QVx1NEY0RFx1NTIzMFx1NjcwMFx1NjVCMFx1NTZERVx1NTkwRCI+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC1yb2xlIj5DbGF1ZGU8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC10ZXh0Ij4nK3AoYSkrIjwvc3Bhbj48L2J1dHRvbj4ifWZ1bmN0aW9uIHZsKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PVtdO2Z1bmN0aW9uIG4obyl7aWYodHlwZW9mIG89PSJzdHJpbmciKXt2YXIgcz1vLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO3MmJnQucHVzaChzKX19aWYodHlwZW9mIGUuY29udGVudD09InN0cmluZyIpbihlLmNvbnRlbnQpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKWZvcih2YXIgaT0wO2k8ZS5jb250ZW50Lmxlbmd0aCYmdC5qb2luKCIgIikubGVuZ3RoPDE4MDtpKyspe3ZhciBhPWUuY29udGVudFtpXTthJiYoYS50eXBlPT09InRleHQiP24oYS50ZXh0KTphLnR5cGU9PT0idGhpbmtpbmciP24oYS50aGlua2luZyk6YS50eXBlPT09InRvb2xfdXNlIj9uKGEubmFtZT8iXHU4QzAzXHU3NTI4ICIrYS5uYW1lOiJcdTVERTVcdTUxNzdcdThDMDNcdTc1MjgiKTphLnR5cGU9PT0idG9vbF9yZXN1bHQiP24oYS5pc19lcnJvcj8iXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU5NTE5XHU4QkVGIjoiXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU3RUQzXHU2NzlDIik6YS50ZXh0JiZuKGEudGV4dCkpfXZhciB1PXQuam9pbigiIFx4QjcgIik7cmV0dXJuIHUubGVuZ3RoPjE4MD91LnNsaWNlKDAsMTc3KSsiLi4uIjp1fXdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0PWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoYXQtb3V0cHV0IC5jaGF0LW1lc3NhZ2VzIik7ZSYmWnYoZSl9LHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeT1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSx0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIik6bnVsbDtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLHQmJndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlJiZ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0KX07ZnVuY3Rpb24gdG0oZSx0LG4saSl7dmFyIGE9e3Nob3VsZENvbGxhcHNlRm9yVmlld3BvcnQ6ITEsaGlzdG9yeUluZGljZXM6W10sZmlyc3RIaXN0b3J5RWw6bnVsbH07aWYoIWV8fG48MClyZXR1cm4gYTtmb3IodmFyIHU9aSYmKGUuY2xpZW50SGVpZ2h0fHxlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCl8fDAsbz1udWxsLHM9bnVsbCxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBkPXRbbF0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKGQhPW51bGwpe3ZhciBmPXBhcnNlSW50KGQsMTApO2lzTmFOKGYpfHwoZjxuPyhhLmhpc3RvcnlJbmRpY2VzLnB1c2goZiksYS5maXJzdEhpc3RvcnlFbHx8KGEuZmlyc3RIaXN0b3J5RWw9dFtsXSkpOmkmJihvfHwobz10W2xdKSxzPXRbbF0pKX19aWYoaSYmdT4wJiZvJiZzKXt2YXIgYz1vLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHY9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPU1hdGgubWF4KGMuYm90dG9tLHYuYm90dG9tKS1NYXRoLm1pbihjLnRvcCx2LnRvcCksZz1NYXRoLm1heCgyMjAsdS0yNCk7YS5zaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0PWg+PWd9cmV0dXJuIGF9ZnVuY3Rpb24gbm0oZSx0KXtpZighZSlyZXR1cm47dmFyIG49ci5jdXJyZW50TWVzc2FnZXN8fFtdO3R8fCh0PUR0KCkpO2Zvcih2YXIgaT0tMSxhPW4ubGVuZ3RoLTE7YT49MDthLS0paWYoblthXSYmblthXS5yb2xlPT09InVzZXIiKXtpPWE7YnJlYWt9ZnVuY3Rpb24gdSgpe3ZhciBGPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7RiYmRi5yZW1vdmUoKTtmb3IodmFyIEk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLEw9MDtMPEkubGVuZ3RoO0wrKylJW0xdLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTtlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpfWlmKGk8MSl7dSgpO3JldHVybn12YXIgbz1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxzPXhsKHQpLGw9dG0oZSxvLGkscyYmci5jaGF0U3RpY2tUb0JvdHRvbSk7aWYocyYmKCFyLmNoYXRTdGlja1RvQm90dG9tfHwhbC5zaG91bGRDb2xsYXBzZUZvclZpZXdwb3J0KSl7dSgpO3JldHVybn12YXIgZD1sLmhpc3RvcnlJbmRpY2VzLGY9bC5maXJzdEhpc3RvcnlFbDtpZihkLmxlbmd0aDwyfHwhZil7dSgpO3JldHVybn12YXIgYz1HdihuLGQpLHY9VHQoImhpc3Rvcnktc3VtbWFyeSIsW2ldKSxoPWJ0KHYpPT09ITAsZz1pKyI6IitkLmxlbmd0aCsiOiIrKGg/MTowKSsiOiIrYy5yb3VuZHMrIjoiK2MudG9vbHMrIjoiK2MuYWdlbnRzKyI6IitjLmVycm9ycztpZighKGUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik9PT1nJiZlLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpKSl7dmFyIG09ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTttJiZtLnJlbW92ZSgpO2Zvcih2YXIgeT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LWhpc3RvcnktaGlkZGVuIiksQz0wO0M8eS5sZW5ndGg7QysrKXlbQ10uY2xhc3NMaXN0LnJlbW92ZSgiY2hhdC1oaXN0b3J5LWhpZGRlbiIpO3ZhciBFPXBsKGMpLEI9RWUoaD8iaGlzdG9yeS5jb2xsYXBzZSI6Imhpc3RvcnkuZXhwYW5kIiksRD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtELmNsYXNzTmFtZT0iY2hhdC1oaXN0b3J5LXN1bW1hcnkiLEQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZC1rZXkiLHYpLEQuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixoPyJ0cnVlIjoiZmFsc2UiKSxELmlubmVySFRNTD0nPGJ1dHRvbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIiB0eXBlPSJidXR0b24iIG9uY2xpY2s9IndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlKHRoaXMpIiBhcmlhLWV4cGFuZGVkPSInKyhoPyJ0cnVlIjoiZmFsc2UiKSsnIj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktaWNvbiI+JytWKCJmb2xkZXIiLHtzaXplOjE1fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktYm9keSI+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxlIj4nK3AoQikrJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktbWV0YSI+JytwKEUpKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS1jaGV2cm9uIj4nK1YoImNoZXZyb25Eb3duIix7c2l6ZToxNn0pKyI8L3NwYW4+PC9idXR0b24+IixlLmluc2VydEJlZm9yZShELGYpLG91KEQsaCksZS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLGcpfX13aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD1lJiZlLmNsb3Nlc3Q/ZS5jbG9zZXN0KCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTpudWxsO2lmKHQpe3ZhciBuPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZC1rZXkiKSxpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIikhPT0idHJ1ZSI7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLGk/InRydWUiOiJmYWxzZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixpPyJ0cnVlIjoiZmFsc2UiKTt2YXIgYT10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSIpO2EmJihhLnRleHRDb250ZW50PUVlKGk/Imhpc3RvcnkuY29sbGFwc2UiOiJoaXN0b3J5LmV4cGFuZCIpKSxuJiYkdShuLGkpLG91KHQsaSk7dmFyIHU9dC5wYXJlbnRFbGVtZW50O2lmKGkmJnN1KHUpLHUpe3ZhciBvPXUuZ2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIik7aWYobyl7dmFyIHM9by5zcGxpdCgiOiIpO3MubGVuZ3RoPj0zJiYoc1syXT1pPyIxIjoiMCIsdS5zZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciLHMuam9pbigiOiIpKSl9fX19O2Z1bmN0aW9uIE9pKGUpe2lmKCFlfHxlLnR5cGUhPT0idG9vbF91c2UiKXJldHVybiBudWxsO3ZhciB0PWUuaW5wdXR8fHt9LG49dHlwZW9mIHQuc3ViYWdlbnRfdHlwZT09InN0cmluZyI/dC5zdWJhZ2VudF90eXBlOm51bGw7cmV0dXJuIW4mJmUubmFtZSE9PSJUYXNrIiYmZS5uYW1lIT09IkFnZW50Ij9udWxsOnt0YXNrSWQ6ZS5pZCxhZ2VudFR5cGU6bnx8dm9pZCAwLHRhc2tEZXNjcmlwdGlvbjp0eXBlb2YgdC5kZXNjcmlwdGlvbj09InN0cmluZyI/dC5kZXNjcmlwdGlvbjp2b2lkIDB9fWZ1bmN0aW9uIHJtKGUpe3ZhciB0PW5ldyBNYXA7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aWYoISghaXx8aS5yb2xlIT09ImFzc2lzdGFudCJ8fCFBcnJheS5pc0FycmF5KGkuY29udGVudCkpKWZvcih2YXIgYT0wO2E8aS5jb250ZW50Lmxlbmd0aDthKyspe3ZhciB1PWkuY29udGVudFthXTtpZighKCF1fHx1LnR5cGUhPT0idG9vbF91c2UiKSl7dmFyIG89dS5fX3N1YmFnZW50fHxPaSh1KTtvJiZ0LnNldCh1LmlkLG8pfX19cmV0dXJuIHR9ZnVuY3Rpb24gaW0oZSl7dmFyIHQ9bmV3IE1hcDtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdDt2YXIgbj1uZXcgTWFwLGk9bmV3IFNldDtmdW5jdGlvbiBhKGYpe2lmKCEoIWZ8fCFmLnRhc2tJZCkmJiFpLmhhcyhmLnRhc2tJZCkpe2kuYWRkKGYudGFza0lkKTt2YXIgYz11bChmKTtjJiYobi5oYXMoYyl8fG4uc2V0KGMsW10pLG4uZ2V0KGMpLnB1c2goZi50YXNrSWQpKX19Zm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1Kyspe3ZhciBvPWVbdV07aWYoISghb3x8IUFycmF5LmlzQXJyYXkoby5jb250ZW50KSkpZm9yKHZhciBzPTA7czxvLmNvbnRlbnQubGVuZ3RoO3MrKyl7dmFyIGw9by5jb250ZW50W3NdO2lmKGwpe3ZhciBkPWwuX19zdWJhZ2VudHx8KGwudHlwZT09PSJ0b29sX3VzZSI/T2kobCk6bnVsbCk7ZCYmYShkKX19fXJldHVybiBuLmZvckVhY2goZnVuY3Rpb24oZil7aWYoIShmLmxlbmd0aDwyKSlmb3IodmFyIGM9MDtjPGYubGVuZ3RoO2MrKyl0LnNldChmW2NdLCIgIyIrKGMrMSkpfSksdH1mdW5jdGlvbiBtbChlLHQpe3ZhciBuPVtdO2lmKCFBcnJheS5pc0FycmF5KGUpfHwhZS5sZW5ndGgpcmV0dXJuIG47Zm9yKHZhciBpPW51bGwsYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgdT1lW2FdLG89dSYmdS50eXBlPT09InRleHQiJiZ1Ll9fcHJvY2Vzc2luZz09PSEwO2lmKG8mJmkpe2kuYmxvY2tzLnB1c2godSk7Y29udGludWV9dmFyIHM9dSYmdS5fX3N1YmFnZW50P3UuX19zdWJhZ2VudDpudWxsO3N8fChzPU9pKHUpKSwhcyYmdSYmdS50eXBlPT09InRvb2xfcmVzdWx0IiYmdCYmdC5oYXModS50b29sX3VzZV9pZCkmJihzPXQuZ2V0KHUudG9vbF91c2VfaWQpKTt2YXIgbD1zP3MudGFza0lkOm51bGw7KCFpfHxpLmtleSE9PWwpJiYoaT17a2V5Omwsc3ViYWdlbnQ6cyxibG9ja3M6W10sZmlyc3RJbmRleDphfSxuLnB1c2goaSkpLGkuYmxvY2tzLnB1c2godSl9cmV0dXJuIG59ZnVuY3Rpb24gbHUoZSx0LG4saSxhLHUpe3ZhciBvPSIiLHM9dXx8e307dHJ5e2Zvcih2YXIgbD1LdihlKSxkPTA7ZDxsLmxlbmd0aDtkKyspe3ZhciBmPWxbZF07dHJ5e2lmKGYudHlwZT09PSJncm91cCIpe2Zvcih2YXIgYz1bXSx2PTA7djxmLml0ZW1zLmxlbmd0aDt2KyspYy5wdXNoKHtibG9jazpmLml0ZW1zW3ZdLmJsb2NrLGluZGV4OmYuaXRlbXNbdl0uaW5kZXgrdH0pO28rPVl2KGMsbixpLGEscyl9ZWxzZSBvKz15bChmLmJsb2NrLG4saSxmLmluZGV4K3QsYSxzKX1jYXRjaHtvKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTZEODhcdTYwNkZcdTU3NTdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfX19Y2F0Y2h7bys9JzxkaXYgY2xhc3M9InJlbmRlci1lcnJvciI+XHU2RDg4XHU2MDZGXHU2RTMyXHU2N0QzXHU1OTMxXHU4RDI1PC9kaXY+J31yZXR1cm4gb31mdW5jdGlvbiBnbChlLHQsbixpLGEsdSl7Zm9yKHZhciBvPXV8fHt9LHM9by5zaG93SGFuZG9mZiE9PSExLGw9IiIsZD1udWxsLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGM9ZVtmXSx2PWMuc3ViYWdlbnQ/e2luU3ViYWdlbnRQYW5lbDohMH06e30saD1sdShjLmJsb2NrcyxjLmZpcnN0SW5kZXgsdCxpLGEsdik7aWYoISghaHx8IWgudHJpbSgpKSlpZihjLnN1YmFnZW50KXt2YXIgZz1zJiZkIT09Yy5zdWJhZ2VudC50YXNrSWQ7bCs9YW0oYyxuLGgsYSxnKSxkPWMuc3ViYWdlbnQudGFza0lkfWVsc2UgbCs9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1zZWdtZW50IHBhcmVudCI+JytRbih0KSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicraCsiPC9kaXY+PC9kaXY+IixkPW51bGx9cmV0dXJuIGx9ZnVuY3Rpb24gYW0oZSx0LG4saSxhKXt2YXIgdT1lLnN1YmFnZW50LG89c2wodSkscz1vbCh1KSxsPXUudGFza0lkfHwiIixkPU1pKHFpKG8pKSxmPXVtKGUuYmxvY2tzKSxjO2lmKGEpe3ZhciB2PSEhKHUudGFza0Rlc2NyaXB0aW9uJiZTdHJpbmcodS50YXNrRGVzY3JpcHRpb24pLnRyaW0oKSksaD12Pyc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFzay1kZXNjIj4nK3AodS50YXNrRGVzY3JpcHRpb24pKyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhc2stZGVzYyI+JytwKEVlKCJzdWJhZ2VudC5jb250aW51ZWQiKSkrIjwvc3Bhbj4iO2M9JzxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbiI+PHN0cm9uZyBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtbmFtZSI+JytwKHMpKyc8L3N0cm9uZz48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFnIiB0aXRsZT0iJytwKEVlKCJzdWJhZ2VudC50YWdfdGl0bGUiKSkrJyI+JytwKEVlKCJzdWJhZ2VudC50YWciKSkrIjwvc3Bhbj4iK2grIjwvc3Bhbj4ifWVsc2UgYz0nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9uIj48c3Ryb25nIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1uYW1lIj4nK3AocykrJzwvc3Ryb25nPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10YXNrLWRlc2MiPiAnK3AoRWUoInN1YmFnZW50LmNvbnRpbnVlZCIpKSsiPC9zcGFuPjwvc3Bhbj4iO3ZhciBnPVR0KCJzdWJhZ2VudC1wYW5lbCIsW2ksbF0pO3JldHVybic8ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbCIgZGF0YS1leHBhbmQta2luZD0ic3ViYWdlbnQtcGFuZWwiIGRhdGEtZXhwYW5kLWtleT0iJytwKGcpKyciIGRhdGEtYWdlbnQtaWQ9IicrcChsKSsnIiBkYXRhLWV4cGFuZGVkPSJ0cnVlIiBzdHlsZT0iLS1hZ2VudC1jb2xvcjonK28ucHJpbWFyeSsnIj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1oZWFkZXIiIGFyaWEtbGFiZWw9IicrcChFZSgic3ViYWdlbnQudGl0bGVfYXJpYSIpKSsnIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYXZhdGFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytkKyI8L3NwYW4+IitjKyc8c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtY291bnQiPicrcChmKyIgXHU2NzYxXHU1MTg1XHU1QkI5IikrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1ib2R5Ij4nK24rIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gdW0oZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIDA7Zm9yKHZhciB0PTAsbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dOyFpfHwhaS50eXBlfHxpLnR5cGUhPT0idG9vbF9yZXN1bHQiJiYoaS50eXBlPT09InRleHQiJiYhU3RyaW5nKGkudGV4dHx8IiIpLnRyaW0oKSYmIWkuX19wcm9jZXNzaW5nfHxpLnR5cGU9PT0idGhpbmtpbmciJiYhU3RyaW5nKGkudGhpbmtpbmd8fCIiKS50cmltKCl8fHQrKyl9cmV0dXJuIE1hdGgubWF4KDEsdCl9ZnVuY3Rpb24gb20oZSx0LG4saSl7dmFyIGE9ZS5yb2xlLHU9WHUoZSxuKSxvPWE9PT0iYXNzaXN0YW50Ij9zbSh0KToiIixzPWE9PT0idXNlciImJmUuY29udGVudCYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuX19xdWV1ZWR9KTtpZighZS5jb250ZW50fHxlLmNvbnRlbnQubGVuZ3RoPT09MClyZXR1cm4gYT09PSJhc3Npc3RhbnQiPyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKyciPicrUW4oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij48ZGl2IGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj4nK28rIjwvZGl2PjwvZGl2PiI6JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyBlbXB0eS1tZXNzYWdlIiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytRbihhKSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJlbXB0eS1tZXNzYWdlLWhpbnQiPlx1RkYwOFx1N0E3QVx1NkQ4OFx1NjA2Rlx1RkYwOTwvc3Bhbj48L2Rpdj48L2Rpdj4nO3ZhciBsPVd2KGUuY29udGVudCksZD1hdSgiYXNzaXN0YW50Iik7aWYoYSE9PSJhc3Npc3RhbnQiKXt2YXIgZj1tbChlLmNvbnRlbnQsaSksYz1mLnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuc3ViYWdlbnR9KSx2PXM/IiBxdWV1ZWQiOiIiLGg9cz8nPHNwYW4gY2xhc3M9InF1ZXVlZC1iYWRnZSI+XHU2MzkyXHU5NjFGXHU0RTJEPC9zcGFuPic6IiIsZz1SdigpO2lmKGMpe3ZhciBtPWdsKGYsYSxkLm5hbWUsbCx1LHtzaG93SGFuZG9mZjohMX0pO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythK3YrJyBtdWx0aS1hZ2VudCIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrbStoKyI8L2Rpdj4ifXZhciB5PWx1KGUuY29udGVudCwwLGEsbCx1KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSt2KyciIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK1FuKGEse2xlZnRTbG90Omd9KSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicreStoKyI8L2Rpdj48L2Rpdj4ifXZhciBDPW1sKGUuY29udGVudCxpKSxFPUMuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRi5zdWJhZ2VudH0pO2lmKCFFKXt2YXIgQj1sdShlLmNvbnRlbnQsMCxhLGwsdSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrUW4oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij4nK0IrbysiPC9kaXY+PC9kaXY+In12YXIgRD0nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIG11bHRpLWFnZW50IiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JztyZXR1cm4gRCs9Z2woQyxhLGQubmFtZSxsLHUse3Nob3dIYW5kb2ZmOiEwfSksRCs9byxEKz0iPC9kaXY+IixEfWZ1bmN0aW9uIFByKGUpe3JldHVybiBlPj0xZTY/KGUvMWU2KS50b0ZpeGVkKDEpLnJlcGxhY2UoL1wuMCQvLCIiKSsiTSI6ZT49MWUzPyhlLzFlMykudG9GaXhlZCgxKS5yZXBsYWNlKC9cLjAkLywiIikrImsiOlN0cmluZyhNYXRoLm1heCgwLE1hdGgucm91bmQoZXx8MCkpKX1mdW5jdGlvbiBzbShlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1lLmVzdGltYXRlZD09PSEwLG49W107cmV0dXJuKGUuaW5wdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU4RjkzXHU1MTY1ICIrUHIoZS5pbnB1dFRva2VucykpLChlLmNhY2hlUmVhZElucHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1N0YxM1x1NUI1OFx1NTQ3RFx1NEUyRCAiK1ByKGUuY2FjaGVSZWFkSW5wdXRUb2tlbnMpKSwoZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU3RjEzXHU1QjU4XHU1MTk5XHU1MTY1ICIrUHIoZS5jYWNoZUNyZWF0aW9uSW5wdXRUb2tlbnMpKSwoZS5vdXRwdXRUb2tlbnN8fDApPjAmJm4ucHVzaCgiXHU4RjkzXHU1MUZBICIrKHQ/Ilx1MjI0OCI6IiIpK1ByKGUub3V0cHV0VG9rZW5zKSksKGUucmVhc29uaW5nT3V0cHV0VG9rZW5zfHwwKT4wJiZuLnB1c2goIlx1NjNBOFx1NzQwNiAiKyh0PyJcdTIyNDgiOiIiKStQcihlLnJlYXNvbmluZ091dHB1dFRva2VucykpLChlLnRvdGFsQ29zdFVzZHx8MCk+MCYmbi5wdXNoKCIkIitOdW1iZXIoZS50b3RhbENvc3RVc2QpLnRvRml4ZWQoNCkucmVwbGFjZSgvMCskLywiIikucmVwbGFjZSgvXC4kLywiIikpLG4ubGVuZ3RoPT09MCYmdCYmbi5wdXNoKCJcdTZCNjNcdTU3MjhcdTdFREZcdThCQTFcdTc1MjhcdTkxQ0ZcdTIwMjYiKSxuLmxlbmd0aD09PTA/IiI6JzxkaXYgY2xhc3M9InR1cm4tdXNhZ2Utc3VtbWFyeScrKHQ/IiBpcy1lc3RpbWF0ZWQiOiIiKSsnIiByb2xlPSJzdGF0dXMiIGFyaWEtbGl2ZT0icG9saXRlIiBhcmlhLWxhYmVsPSJcdTY3MkNcdThGNkVcdTc1MjhcdTkxQ0YgJytwKG4uam9pbigiXHVGRjBDIikpKyciPjxzdmcgY2xhc3M9InR1cm4tdXNhZ2UtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTIuNSAxMy41aDExTTQgMTFWNy41TTggMTFWM00xMiAxMVY1LjUiLz48L3N2Zz48c3Bhbj4nK3Aobi5qb2luKCIgXHhCNyAiKSkrIjwvc3Bhbj48L2Rpdj4ifXZhciBsbT0vXlxzKlxb6ZmE5Lu25bey5LiK5Lyg77yM6K+35p+l55yL5Lul5LiL5paH5Lu2OlxuKFtcc1xTXSo/KVxdXG4rLztmdW5jdGlvbiBkbShlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKTtpZighdClyZXR1cm4iIjt2YXIgbj10LnNwbGl0KCIvIikucG9wKCl8fHQ7aWYoT3UodCkpe3ZhciBpPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodCk7cmV0dXJuJzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC1pbWFnZSI+PGltZyBjbGFzcz0idXNlci1hdHRhY2htZW50LXRodW1iIiBsb2FkaW5nPSJsYXp5IiBzcmM9IicraSsnIiBhbHQ9IicrcChuKSsnIiBkYXRhLXBhdGg9IicrcCh0KStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyIgb25lcnJvcj0idmFyIHc9dGhpcy5jbG9zZXN0KCcudXNlci1hdHRhY2htZW50LWltYWdlJyk7IGlmKHcpdy5zdHlsZS5kaXNwbGF5PSdub25lJzsiIC8+PC9kaXY+YH1yZXR1cm4nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUiIGRhdGEtcGF0aD0iJytwKHQpK2AiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7Ij48c3BhbiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUtaWNvbiI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNOSAxLjVINGExIDEgMCAwIDAtMSAxdjExYTEgMSAwIDAgMCAxIDFoOGExIDEgMCAwIDAgMS0xVjUuNUw5IDEuNXoiLz48cGF0aCBkPSJNOSAxLjVWNS41aDQiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlLW5hbWUiPmArcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gaGwoZSl7dmFyIHQ9ZXx8IiIsbj10Lm1hdGNoKGxtKTtpZighbilyZXR1cm4gcCh0KTtmb3IodmFyIGk9IiIsYT1uWzFdLnNwbGl0KGAKYCksdT0wO3U8YS5sZW5ndGg7dSsrKWkrPWRtKGFbdV0pO3ZhciBvPXQuc2xpY2UoblswXS5sZW5ndGgpLHM9aT8nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50cyI+JytpKyI8L2Rpdj4iOiIiLGw9by50cmltKCk/JzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC10ZXh0Ij4nK3AobykrIjwvZGl2PiI6IiI7cmV0dXJuIHMrbH1mdW5jdGlvbiB5bChlLHQsbixpLGEsdSl7dmFyIG89dXx8e307aWYoIWV8fCFlLnR5cGV8fCFvLmluU3ViYWdlbnRQYW5lbCYmZS50eXBlPT09InRvb2xfdXNlIiYmZS5fX3N1YmFnZW50JiZlLl9fc3ViYWdlbnQudGFza0lkPT09ZS5pZClyZXR1cm4iIjtpZihlLnR5cGU9PT0idG9vbF9yZXN1bHQiJiZlLl9fc3ViYWdlbnQmJmUuX19zdWJhZ2VudC50YXNrSWQ9PT1lLnRvb2xfdXNlX2lkKXJldHVybiBqdihlLHQpO3N3aXRjaChlLnR5cGUpe2Nhc2UidGV4dCI6cmV0dXJuIHQ9PT0iYXNzaXN0YW50IiYmZS5fX3Byb2Nlc3Npbmc/JzxkaXYgY2xhc3M9InR5cGluZy1pbmRpY2F0b3IiPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2Pic6dD09PSJhc3Npc3RhbnQiP2N1KGUudGV4dHx8IiIpOmhsKGUudGV4dHx8IiIpO2Nhc2UidGhpbmtpbmciOnZhciBzPWUudGhpbmtpbmd8fCIiLGw9ZS50aGlua2luZz09PXZvaWQgMCYmZS50eXBlPT09InRoaW5raW5nIjtpZihsKXJldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgdGhpbmtpbmctc3RyZWFtaW5nIiBkYXRhLXRoaW5raW5nPSIiPjxkaXYgY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pbm5lciI+PHNwYW4gY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pY29uIHNwaW5uaW5nIj5cdTI5QkY8L3NwYW4+PGRpdiBjbGFzcz0idGhpbmtpbmctc3RyZWFtaW5nLXRleHQiPjwvZGl2PjwvZGl2PjwvZGl2Pic7aWYoIXMudHJpbSgpKXJldHVybiIiO3ZhciBkPXMubGVuZ3RoPjYwP3Muc2xpY2UoMCw1NykrIlx1MjAyNiI6cyxmPVR0KCJ0aGlua2luZyIsW2EsaV0pLGM9YnQoZiksdj1jPT09bnVsbD9TbigidGhpbmtpbmciKTpjO3JldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgJysodj8iZXhwYW5kZWQiOiJjb2xsYXBzZWQiKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0aGlua2luZyIgZGF0YS1leHBhbmQta2V5PSInK3AoZikrJyIgZGF0YS10aGlua2luZz0iJytwKHMpKyciIG9uY2xpY2s9Il9fdGhpbmtpbmdUb2dnbGUodGhpcykiPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtaWNvbiI+XHUyOUJGPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtcHJldmlldyI+JytwKHY/czpkKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtYWN0aW9uIj4nKyh2PyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKSsiPC9zcGFuPjwvZGl2PiI7Y2FzZSJ0b29sX3VzZSI6dmFyIGg9Y2wobixlLmlkKSxnPW1tKGUsaCxpLGEsbyk7cmV0dXJuIHp2KG4sZS5pZCkmJihnPVZ2KGUubmFtZXx8Ilx1NURFNVx1NTE3NyIpK2cpLGc7Y2FzZSJ0b29sX3Jlc3VsdCI6cmV0dXJuIiI7ZGVmYXVsdDp2YXIgbT1lJiZlLnR5cGU/U3RyaW5nKGUudHlwZSk6Ilx1NjcyQVx1NzdFNSIseT0iIjt0cnl7eT1KU09OLnN0cmluZ2lmeShlLG51bGwsMil9Y2F0Y2h7eT0ie30ifXJldHVybmA8ZGl2IGNsYXNzPSJ1bmtub3duLWJsb2NrIGNvbGxhcHNlZCIgb25jbGljaz0idGhpcy5jbGFzc0xpc3QudG9nZ2xlKCdjb2xsYXBzZWQnKSI+PGRpdiBjbGFzcz0idW5rbm93bi1ibG9jay1oZWFkZXIiPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLWljb24iPj88L3NwYW4+PHNwYW4gY2xhc3M9InVua25vd24tYmxvY2stbGFiZWwiPlx1NjcyQVx1OEJDNlx1NTIyQlx1NzY4NFx1NTE4NVx1NUJCOVx1NTc1N1x1RkYxQWArcChtKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxwcmUgY2xhc3M9InVua25vd24tYmxvY2stYm9keSI+JytwKHkpKyI8L3ByZT48L2Rpdj4ifX1mdW5jdGlvbiBjbShlLHQsbixpLGEsdSxvLHMpe3ZhciBsPXN8fHt9LGQ9ZS5pZHx8InRvb2wtIituLGY9VHQoImlubGluZS10b29sIixbdSxkfHxvLG9dKSxjPWJ0KGYpLHY9ZS5pbnB1dHx8e30saD1wbih0JiZ0LmNvbnRlbnQpLGc9dCYmdC5pc19lcnJvcixtPWgubGVuZ3RoPjAseT1nPyJcdTI3MTciOm0/Ilx1MjcxMyI6Ilx1MjAyNiIsQz0iIixFPSIiLEI9IiIsRD0iIjtpZihuPT09IlJlYWQiKXtDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNMSAzLjVBMS41IDEuNSAwIDAgMSAyLjUgMmgyLjc2NGMuOTU4IDAgMS43Ni41NiAyLjMxMSAxLjE4NEM4LjQwNSAzLjc3IDkuMTQ2IDQgMTAgNGgzLjVBMS41IDEuNSAwIDAgMSAxNSA1LjV2N2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMSAxMi41di05eiIvPjxwYXRoIGQ9Ik0yIDUuNWgxMk0yIDhoOE0yIDEwLjVoNSIvPjwvc3ZnPic7dmFyIEY9di5maWxlX3BhdGh8fHYucGF0aHx8aXx8IiIsST0iIjt2LmxpbWl0JiYoST0iICIrdi5vZmZzZXQrIi0iKyh2Lm9mZnNldCt2LmxpbWl0KSksRT1GLEI9SX1lbHNlIGlmKG49PT0iR2xvYiIpe0M9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSI1Ii8+PHBhdGggZD0iTTEwLjUgMTAuNUwxNCAxNCIvPjwvc3ZnPic7dmFyIEw9di5wYXR0ZXJufHwiIixIPXYucGF0aHx8aXx8IiI7RT1MLEI9SH1lbHNlIGlmKG49PT0iR3JlcCIpe0M9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iNC41Ii8+PHBhdGggZD0iTTExLjUgMTEuNUwxNSAxNSIvPjwvc3ZnPic7dmFyIEw9di5wYXR0ZXJufHwiIixIPXYucGF0aHx8aXx8IiI7RT1MLEI9SCx2LmNvbnRleHQmJihCKz0iIC1DIit2LmNvbnRleHQpfWVsc2UgaWYobj09PSJXZWJGZXRjaCIpe0M9JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjgiIGN5PSI4IiByPSI2LjUiLz48cGF0aCBkPSJNOCAxLjV2MTNNMS41IDhoMTMiLz48L3N2Zz4nO3ZhciBVPXYudXJsfHwiIjtFPVUsQj1hfHwiIn1lbHNlIGlmKG49PT0iV2ViU2VhcmNoIil7Qz0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iNyIgY3k9IjciIHI9IjUiLz48cGF0aCBkPSJNMTAuNSAxMC41TDE0IDE0Ii8+PHBhdGggZD0iTTUgN2g0TTcgNXY0Ii8+PC9zdmc+Jzt2YXIgeD12LnF1ZXJ5fHwiIjtFPXgsQj1hfHwiIn1lbHNlIG49PT0iVG9kb1JlYWQiPyhDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PHBhdGggZD0iTTUgOGwyIDIgNC00Ii8+PC9zdmc+JyxFPSJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUVcdTUyMTdcdTg4NjgiLEI9YXx8IiIpOihDPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNi41Ii8+PHBhdGggZD0iTTggNXYzLjVNOCAxMWguMDEiLz48L3N2Zz4nLEU9ZHUobiksQj1hfHwiIik7aWYobSl7dmFyIGs9aC5zcGxpdChgCmApO2subGVuZ3RoPjEwP0Q9ay5zbGljZSgwLDEwKS5qb2luKGAKYCkrYApcdTIwMjZgOkQ9aH12YXIgVD1wKGgpLE09cChEKSxZPWgsej0iIixRPWwuZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6Yz09PW51bGw/U24oImlubGluZVRvb2xzIik6YzttP3o9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWV4cGFuZGVkIiBzdHlsZT0iZGlzcGxheTogJysoUT8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCI+JytFbChoLG4pKyI8L2Rpdj48L2Rpdj4iOmc/ej0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtZXhwYW5kZWQiIHN0eWxlPSJkaXNwbGF5OiAnKyhRPyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0IGlubGluZS10b29sLWVycm9yIj4nK3AoaHx8Ilx1NjRDRFx1NEY1Q1x1NTkzMVx1OEQyNSIpKyI8L2Rpdj48L2Rpdj4iOnR8fCh6PSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1leHBhbmRlZCIgc3R5bGU9ImRpc3BsYXk6ICcrKFE/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1sb2FkaW5nIj5cdTdCNDlcdTVGODVcdTU0Q0RcdTVFOTRcdTIwMjY8L2Rpdj48L2Rpdj4nKTt2YXIgbGU9dCYmdC5fdHJ1bmNhdGVkPT09ITAsZWU9IiI7aWYobj09PSJSZWFkIil7dmFyIFo9di5maWxlX3BhdGh8fHYucGF0aHx8aXx8IiI7aWYoWiYmT3UoWikpe3ZhciBxPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQoWik7ZWU9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWltYWdlIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsiPjxpbWcgY2xhc3M9ImlubGluZS10b29sLWltYWdlLXRodW1iIiBsb2FkaW5nPSJsYXp5IiBzcmM9IicrcSsnIiBhbHQ9IicrcChGKSsnIiBkYXRhLXBhdGg9IicrcChaKStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyIgb25lcnJvcj0idmFyIHc9dGhpcy5jbG9zZXN0KCcuaW5saW5lLXRvb2wtaW1hZ2UnKTsgaWYodyl3LnN0eWxlLmRpc3BsYXk9J25vbmUnOyIgLz48L2Rpdj5gfX12YXIgTz1CPyc8c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtbWV0YSI+JytwKEIpKyI8L3NwYW4+IjoiIixOPWc/ImlubGluZS10b29sLWVycm9yLWlubGluZSI6IiI7USYmKE4rPSIgaW5saW5lLXRvb2wtb3BlbiIpO3ZhciBHPWxlPydkYXRhLXRydW5jYXRlZD0idHJ1ZSIgZGF0YS10b29sLXVzZS1pZD0iJytwKGUuaWR8fCIiKSsnIiAnOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbCAnK04rJyIgZGF0YS1leHBhbmQta2luZD0iaW5saW5lLXRvb2wiIGRhdGEtZXhwYW5kLWtleT0iJytwKGYpKyciIGRhdGEtcmVzdWx0PSInK3AoWSkrJyIgZGF0YS1wcmV2aWV3PSInK00rJyIgZGF0YS1zdGF0dXM9IicrKGc/ImVycm9yIjptPyJkb25lIjoicGVuZGluZyIpKyciICcrRysnb25jbGljaz0iX19pbmxpbmVUb29sVG9nZ2xlKHRoaXMpIj48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1yb3ciPjxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC1zdGF0dXMiPicreSsiPC9zcGFuPiIrQysnPHNwYW4gY2xhc3M9ImlubGluZS10b29sLXRpdGxlIj4nK3AoRSkrIjwvc3Bhbj4iK08rIjwvZGl2PiIrZWUreisiPC9kaXY+In1mdW5jdGlvbiBmbShlLHQsbixpLGEsdSl7dmFyIG89dXx8e30scz1lLmlucHV0fHx7fSxsPXMuY29tbWFuZHx8cy5jbWR8fCIiLGQ9cG4odCYmdC5jb250ZW50KSxmPWUuaWR8fCJ0b29sLSIrbixjPVR0KCJ0ZXJtaW5hbCIsW2ksZnx8YSxhXSksdj1idChjKSxoPXQmJnQuaXNfZXJyb3IsZz1zLmV4aXRDb2RlLG09ZC5sZW5ndGg+MCx5PSIiO3Q/aD95PSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0tZXJyb3IiPjwvc3Bhbj4nOmc9PT0wfHxnPT09dm9pZCAwP3k9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS1zdWNjZXNzIj48L3NwYW4+Jzp5PSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0td2FybiI+PC9zcGFuPic6eT0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLXJ1bm5pbmciPjwvc3Bhbj4nO2Zvcih2YXIgQz0nPHNwYW4gY2xhc3M9InRlcm0tcHJvbXB0Ij4kPC9zcGFuPicsRT1wKGwpLEI9ZC5zcGxpdChgCmApLEQ9IiIsRj0wO0Y8Qi5sZW5ndGg7RisrKXt2YXIgST1CW0ZdOyFJJiZGPT09Qi5sZW5ndGgtMXx8KEQrPSc8ZGl2IGNsYXNzPSJ0ZXJtLWxpbmUiPicrcChJKSsiPC9kaXY+Iil9dmFyIEw9IiI7aWYodCYmZyE9PXZvaWQgMCl7dmFyIEg9Zz09PTA/InRlcm0tZXhpdC1zdWNjZXNzIjoidGVybS1leGl0LWVycm9yIjtMPSc8ZGl2IGNsYXNzPSJ0ZXJtLWV4aXQgJytIKyciPmV4aXQgJytnKyI8L2Rpdj4ifXZhciBVPWwubGVuZ3RoPjgwP2wuc2xpY2UoMCw3NykrIlx1MjAyNiI6bCx4PW8uZm9yY2VFeHBhbmRlZFRvb2xCb2RpZXM/ITA6dj09PW51bGw/U24oInRlcm1pbmFsIik6dixrPXQmJnQuX3RydW5jYXRlZD09PSEwLFQ9az8nIGRhdGEtdHJ1bmNhdGVkPSJ0cnVlIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AoZS5pZHx8IiIpKyciJzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLXRlcm1pbmFsIiBkYXRhLWV4cGFuZC1raW5kPSJ0ZXJtaW5hbCIgZGF0YS1leHBhbmQta2V5PSInK3AoYykrJyIgZGF0YS1leHBhbmRlZD0iJysoeD8idHJ1ZSI6ImZhbHNlIikrJyInK1QrJz48ZGl2IGNsYXNzPSJ0ZXJtLWhlYWRlciIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iJysoeD8idHJ1ZSI6ImZhbHNlIikrYCIgb25jbGljaz0iX190ZXJtaW5hbEV4cGFuZCh0aGlzKSIgb25rZXlkb3duPSJpZihldmVudC5rZXk9PT0nRW50ZXInfHxldmVudC5rZXk9PT0nICcpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7X190ZXJtaW5hbEV4cGFuZCh0aGlzKTt9Ij5gK3krJzxzcGFuIGNsYXNzPSJ0ZXJtLWNtZC1wcmV2aWV3Ij48c3BhbiBjbGFzcz0idGVybS1wcm9tcHQiPiQ8L3NwYW4+ICcrcChVKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXJtLXRvZ2dsZS1pY29uIj4nKyh4PyJcdTI1QkMiOiJcdTI1QjYiKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRlcm0tYm9keSIgYXJpYS1oaWRkZW49IicrKHg/ImZhbHNlIjoidHJ1ZSIpKyciIHN0eWxlPSJkaXNwbGF5OicrKHg/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJ0ZXJtLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJ0ZXJtLXByb21wdCI+JDwvc3Bhbj4gJytFKyI8L2Rpdj4iKyhEPyc8ZGl2IGNsYXNzPSJ0ZXJtLW91dHB1dCI+JytEKyI8L2Rpdj4iOiIiKStMKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHBuKGUpe3JldHVybiBlP3R5cGVvZiBlPT0ic3RyaW5nIj9lOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoZnVuY3Rpb24odCl7aWYoIXR8fHR5cGVvZiB0IT0ib2JqZWN0IilyZXR1cm4iIjtpZih0LnR5cGU9PT0idGV4dCImJnR5cGVvZiB0LnRleHQ9PSJzdHJpbmciKXJldHVybiB0LnRleHQ7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaHtyZXR1cm4iIn19KS5maWx0ZXIoQm9vbGVhbikuam9pbihgCmApOiIiOiIifWZ1bmN0aW9uIHBtKGUsdCxuLGksYSx1KXt2YXIgbz11fHx7fSxzPWUuaW5wdXR8fHt9LGw9cy5maWxlX3BhdGh8fHMucGF0aHx8IiIsZD1sLnNwbGl0KCIvIikucG9wKCl8fGwsZj1lLmlkfHwidG9vbC0iK24rIi0iKyh0eXBlb2YgYT09Im51bWJlciI/YTowKSxjPXMub2xkX3N0cmluZ3x8IiIsdj1zLm5ld19zdHJpbmd8fHMuY29udGVudHx8IiIsaD1zLm9sZF9jb250ZW50fHwiIixnPXMubmV3X2NvbnRlbnR8fCIiLG09cy51bmlmaWVkX2RpZmZ8fHMuZGlmZnx8IiIseT1zLmtpbmR8fCIiLEM9bj09PSJXcml0ZSJ8fG49PT0iTXVsdGlFZGl0IixFPXQmJnQuaXNfZXJyb3IsQj1wbih0JiZ0LmNvbnRlbnQpLEQ9ISEoQiYmQi50cmltKCkubGVuZ3RoPjApLEY9IiIsST0iIixMPSIiO20/TD0nPGRpdiBjbGFzcz0iZGlmZi1jb2wgZGlmZi1jb2wtZnVsbCI+PGRpdiBjbGFzcz0iZGlmZi1jb2wtbGFiZWwiPkRpZmY8L2Rpdj4nK3ZtKG0pKyI8L2Rpdj4iOkM/ST0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtYWRkIj4rICcrcChnKSsiPC9kaXY+IjooYyYmKEY9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSBkaWZmLXJlbW92ZSI+LSAnK3AoYykrIjwvZGl2PiIpLHYmJihJPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1hZGQiPisgJytwKHYpKyI8L2Rpdj4iKSk7dmFyIEg9IiIsVT0iIjt0P0U/KEg9ImRpZmYtZXJyb3IiLFU9Qi5pbmRleE9mKCJoYXZlbid0IGdyYW50ZWQiKSE9PS0xfHxCLmluZGV4T2YoInBlcm1pc3Npb24iKSE9PS0xPyJcdTdCNDlcdTVGODVcdTYzODhcdTY3NDMiOiJcdTU5MzFcdThEMjUiKTooSD0iZGlmZi1zdWNjZXNzIixVPXk9PT0iYWRkIj8iXHU1REYyXHU2NUIwXHU1ODlFIjp5PT09ImRlbGV0ZSI/Ilx1NURGMlx1NTIyMFx1OTY2NCI6eT09PSJtb3ZlIj8iXHU1REYyXHU3OUZCXHU1MkE4IjoiXHU1REYyXHU0RkVFXHU2NTM5Iik6KEg9ImRpZmYtcGVuZGluZyIsVT0iXHU2MjY3XHU4ODRDXHU0RTJEIik7dmFyIHg9VHQoImRpZmYiLFtpLGZ8fGEsYV0pLGs9YnQoeCksVD1TbigiZWRpdENhcmRzIiksTT1vLmZvcmNlRXhwYW5kZWRUb29sQm9kaWVzPyEwOms9PT1udWxsP1Q6ayxZPU0/IiI6IiBjb2xsYXBzZWQiLHo9IUwmJkYmJkksUT16PyJkaWZmLWNvbC1oYWxmIjoiZGlmZi1jb2wtZnVsbCIsbGU9THx8KHo/JzxkaXYgY2xhc3M9ImRpZmYtY29sICcrUSsnIj48ZGl2IGNsYXNzPSJkaWZmLWNvbC1sYWJlbCI+XHU2NUU3PC9kaXY+JytGKyI8L2Rpdj4iOiIiKSsnPGRpdiBjbGFzcz0iZGlmZi1jb2wgJytRKyciPjxkaXYgY2xhc3M9ImRpZmYtY29sLWxhYmVsIj4nKyh6PyJcdTY1QjAiOiIiKSsiPC9kaXY+IisoSXx8Rnx8YmwobCkpKyI8L2Rpdj4iLGVlPWw/JzxidXR0b24gY2xhc3M9ImRpZmYtb3Blbi1maWxlIiB0eXBlPSJidXR0b24iIGRhdGEtcGF0aD0iJytwKGwpK2AiIHRpdGxlPSJcdTYyNTNcdTVGMDBcdTY1ODdcdTRFRjYiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7Ij5cdTYyNTNcdTVGMDA8L2J1dHRvbj5gOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtZGlmZicrWSsnIiBkYXRhLXRvb2wtbmFtZT0iJytwKG4pKyciIGRhdGEtZXhwYW5kLWtpbmQ9ImRpZmYiIGRhdGEtZXhwYW5kLWtleT0iJytwKHgpKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcChmKSsnIiBkYXRhLXBhdGg9IicrcChsKSsnIj48ZGl2IGNsYXNzPSJkaWZmLWhlYWRlciIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iJysoTT8idHJ1ZSI6ImZhbHNlIikrYCIgb25jbGljaz0iX190Y1RvZ2dsZShldmVudCx0aGlzKSIgb25rZXlkb3duPSJpZihldmVudC5rZXk9PT0nRW50ZXInfHxldmVudC5rZXk9PT0nICcpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7X190Y1RvZ2dsZShldmVudCx0aGlzKTt9Ij48c3BhbiBjbGFzcz0iZGlmZi1maWxlLWljb24iPjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1maWxlLW5hbWUiPmArcChkKSsiPC9zcGFuPiIrZ3QobCwiZGlmZi1wYXRoIikrJzxzcGFuIGNsYXNzPSJkaWZmLXN0YXR1cyAnK0grJyI+JytVKyI8L3NwYW4+IitlZSsnPHNwYW4gY2xhc3M9ImRpZmYtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZGlmZi1ib2R5IiBhcmlhLWhpZGRlbj0iJysoTT8iZmFsc2UiOiJ0cnVlIikrJyI+PGRpdiBjbGFzcz0iZGlmZi1jb2x1bW5zIj4nK2xlKyI8L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHZtKGUpe2Zvcih2YXIgdD1TdHJpbmcoZXx8IiIpLnNwbGl0KGAKYCksbj02MDAsaT0iIixhPTA7YTx0Lmxlbmd0aCYmYTxuO2ErKyl7dmFyIHU9dFthXSxvPSJkaWZmLWNvbnRleHQiOy9eQEAvLnRlc3QodSk/bz0iZGlmZi1odW5rIjovXlwrLy50ZXN0KHUpJiYhL15cK1wrXCsvLnRlc3QodSk/bz0iZGlmZi1hZGQiOi9eLS8udGVzdCh1KSYmIS9eLS0tLy50ZXN0KHUpJiYobz0iZGlmZi1yZW1vdmUiKSxpKz0nPGRpdiBjbGFzcz0iZGlmZi1saW5lICcrbysnIj4nK3AodXx8IiAiKSsiPC9kaXY+In1yZXR1cm4gdC5sZW5ndGg+biYmKGkrPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1jb250ZXh0Ij5cdTIwMjZcdUZGMDhcdTVERjJcdTYyMkFcdTY1QUQgJysodC5sZW5ndGgtbikrIiBcdTg4NENcdUZGMDk8L2Rpdj4iKSxpfHxibCgiIil9ZnVuY3Rpb24gYmwoZSl7dmFyIHQ9ZT8iXHVGRjBDXHU1M0VGXHU2MjUzXHU1RjAwXHU2NTg3XHU0RUY2XHU2N0U1XHU3NzBCXHU1RjUzXHU1MjREXHU1MTg1XHU1QkI5IjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iZGlmZi1lbXB0eSI+Q29kZXggXHU2NzJBXHU2M0QwXHU0RjlCXHU1MTg1XHU4MDU0IGRpZmYnK3QrIlx1MzAwMjwvZGl2PiJ9ZnVuY3Rpb24gRWwoZSx0KXtyZXR1cm4gZT8nPHByZSBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0LXRleHQiIHN0eWxlPSJtYXgtaGVpZ2h0OiAzMDBweDsgb3ZlcmZsb3cteTogYXV0bzsiPicrcChlKSsiPC9wcmU+IjonPHNwYW4gY2xhc3M9ImlubGluZS10b29sLWVtcHR5Ij5cdTY1RTBcdThGOTNcdTUxRkE8L3NwYW4+J31mdW5jdGlvbiBtbShlLHQsbixpLGEpe3ZhciB1PWF8fHt9LG89ZS5uYW1lfHwidW5rbm93biIscz1lLmlkfHwidG9vbC0iK28rIi0iKyh0eXBlb2Ygbj09Im51bWJlciI/bjowKSxsPWhtKG8sZS5pbnB1dCk7aWYobz09PSJSZWFkInx8bz09PSJHbG9iInx8bz09PSJHcmVwInx8bz09PSJXZWJGZXRjaCJ8fG89PT0iV2ViU2VhcmNoInx8bz09PSJUb2RvUmVhZCIpcmV0dXJuIGNtKGUsdCxvLGwsIiIsaSxuLHUpO2lmKG89PT0iQmFzaCIpcmV0dXJuIGZtKGUsdCxvLGksbix1KTtpZihvPT09IkVkaXQifHxvPT09IldyaXRlInx8bz09PSJNdWx0aUVkaXQiKXJldHVybiBwbShlLHQsbyxpLG4sdSk7aWYobz09PSJBc2tVc2VyUXVlc3Rpb24iJiZlLmlucHV0JiZlLmlucHV0LnF1ZXN0aW9ucyl7dmFyIGQ9ZS5pbnB1dC5xdWVzdGlvbnM7aWYoZCYmZC5sZW5ndGg+MCl7Zm9yKHZhciBmPSEhdCxjPXIuYXNrVXNlclNlbGVjdGlvbnNbc118fHt9LHY9ISFjLnN1Ym1pdHRlZCxoPWY/cG4odC5jb250ZW50KToiIixnPWg/aC50cmltKCkuc3BsaXQoYApgKTpbXSxtPSIiLHk9MDt5PGQubGVuZ3RoO3krKylpZihkW3ldLmhlYWRlcil7bT1kW3ldLmhlYWRlcjticmVha312YXIgQz1tPyc8c3BhbiBjbGFzcz0idG9vbC11c2Utc3VtbWFyeSI+JytwKG0pKyI8L3NwYW4+IjoiIixFPSIiO2QuZm9yRWFjaChmdW5jdGlvbihfZSwkKXt2YXIgZmU9ISFfZS5tdWx0aVNlbGVjdCxDZT1fZS5xdWVzdGlvbj8nPGRpdiBjbGFzcz0iYXNrLXVzZXItdGl0bGUiPicrcChfZS5xdWVzdGlvbikrIjwvZGl2PiI6IiIsQmU9IiI7X2Uub3B0aW9ucyYmX2Uub3B0aW9ucy5sZW5ndGg+MCYmKEJlPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb25zIiBkYXRhLW11bHRpLXNlbGVjdD0iJytmZSsnIj4nLF9lLm9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbih2ZSxGZSl7dmFyIGV0PXZlLmxhYmVsP3AodmUubGFiZWwpOiJcdTkwMDlcdTk4NzkgIisoRmUrMSksZHQ9dmUuZGVzY3JpcHRpb24/JzxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1kZXNjIj4nK3AodmUuZGVzY3JpcHRpb24pKyI8L2Rpdj4iOiIiO2lmKGYpe3ZhciBpdD1nWyRdfHxnWzBdfHwiIixOZT1pdC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihQZSl7cmV0dXJuIFBlLnRyaW0oKX0pLFJ0PU5lLmluZGV4T2YodmUubGFiZWx8fCIiKSE9PS0xO0JlKz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uIGFzay11c2VyLW9wdGlvbi1yZWFkb25seScrKFJ0PyIgYXNrLXVzZXItb3B0aW9uLWNob3NlbiI6IiIpKyciPjxzcGFuIGNsYXNzPSJhc2stdXNlci1pbmRpY2F0b3IiPjwvc3Bhbj48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tY29udGVudCI+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWxhYmVsIj4nK2V0KyI8L2Rpdj4iK2R0KyI8L2Rpdj48L2Rpdj4ifWVsc2V7dmFyIFllPShjWyRdfHxbXSkuaW5kZXhPZihGZSkhPT0tMSxEZT12PyIgZGlzYWJsZWQiOiIiO0JlKz0nPGJ1dHRvbiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uJysoWWU/IiBzZWxlY3RlZCI6IiIpKyciIGRhdGEtb3B0aW9uLWluZGV4PSInK0ZlKyciIGRhdGEtcXVlc3Rpb24taW5kZXg9IicrJCsnIiBkYXRhLW9wdGlvbi1sYWJlbD0iJytwKHZlLmxhYmVsfHwiXHU5MDA5XHU5ODc5ICIrKEZlKzEpKStgIiBvbmNsaWNrPSJfX2Fza1NlbGVjdCgnYCtwKHMpKyInLCIrJCsiLCIrRmUrIiwiK2ZlKycpIicrRGUrJz48c3BhbiBjbGFzcz0iYXNrLXVzZXItaW5kaWNhdG9yIj48L3NwYW4+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWNvbnRlbnQiPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1sYWJlbCI+JytldCsiPC9kaXY+IitkdCsiPC9kaXY+PC9idXR0b24+In19KSxCZSs9IjwvZGl2PiIpLEUrPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1xdWVzdGlvbi1ncm91cCIgZGF0YS1xdWVzdGlvbi1pbmRleD0iJyskKyciPicrQ2UrQmUrIjwvZGl2PiJ9KTt2YXIgQj0iIjtpZighZil7Zm9yKHZhciBEPSEwLEY9MDtGPGQubGVuZ3RoO0YrKylpZighY1tGXXx8Y1tGXS5sZW5ndGg9PT0wKXtEPSExO2JyZWFrfXZhciBJPSFEfHx2PyIgZGlzYWJsZWQiOiIiLEw9dj8iIGFzay11c2VyLXN1Ym1pdHRlZCI6IiIsSD12PyJcdTVERjJcdTYzRDBcdTRFQTQuLi4iOiJcdTc4NkVcdThCQTRcdTYzRDBcdTRFQTQiO0I9JzxkaXYgY2xhc3M9ImFzay11c2VyLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImFzay11c2VyLXN1Ym1pdCcrTCsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AocykrYCIgb25jbGljaz0iX19hc2tTdWJtaXQoJ2ArcChzKStgJykiYCtJKyI+IitIKyI8L2J1dHRvbj48L2Rpdj4ifXZhciBVPSIiO2lmKGYmJmgpe3ZhciB4PWgudHJpbSgpLnJlcGxhY2UoL1xuL2csIiwgIik7eC5sZW5ndGg+NDAmJih4PXguc2xpY2UoMCwzNykrIi4uLiIpLFU9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AoeCkrIjwvc3Bhbj4ifXZhciBrPVR0KCJ0b29sLWNhcmQiLFtpLHNdKSxUPWJ0KGspLE09dS5mb3JjZUV4cGFuZGVkVG9vbEJvZGllcz8hMDpUPT09bnVsbD8hZjpULFk9TT8iIjoiIGNvbGxhcHNlZCIsej1mPyIgYXNrLXVzZXItYW5zd2VyZWQiOiIiO3JldHVybic8ZGl2IGNsYXNzPSJ0b29sLXVzZS1jYXJkIGFzay11c2VyJyt6K1krJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKHMpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRvb2wtY2FyZCIgZGF0YS1leHBhbmQta2V5PSInK3AoaykrJyI+PGRpdiBjbGFzcz0idG9vbC11c2UtaGVhZGVyIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1pY29uIj4nKyhmPyJcdTI3MTMiOiI/IikrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC11c2UtbmFtZSI+XHU2M0QwXHU5NUVFPC9zcGFuPicrQytVKyc8c3BhbiBjbGFzcz0idG9vbC11c2UtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0idG9vbC11c2UtYm9keSBhc2stdXNlci1ib2R5Ij4nK0UrQisiPC9kaXY+PC9kaXY+In19dmFyIFE9ZS5kZXNjcmlwdGlvbnx8ZS5pbnB1dCYmZS5pbnB1dC5kZXNjcmlwdGlvbnx8IiIsbGU9Z20oZS5uYW1lLGUuaW5wdXQpLGVlPSIiLFo9IiI7UT8oZWU9US5sZW5ndGg+ODA/US5zbGljZSgwLDc3KSsiLi4uIjpRLGwmJihaPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtZmlsZSI+JytwKGwpKyI8L3NwYW4+IikpOihlZT1kdShvKSxsJiYoWj0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLWZpbGUiPicrcChsKSsiPC9zcGFuPiIpLGxlJiYoWis9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zdW1tYXJ5Ij4nK3AobGUpKyI8L3NwYW4+IikpO3ZhciBxPWUuaW5wdXQ/SlNPTi5zdHJpbmdpZnkoZS5pbnB1dCxudWxsLDIpOiJ7fSIsTz0ibG9hZGluZyIsTj0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXNwaW5uZXIiPjwvc3Bhbj4nLEc9IiI7aWYodCl7dmFyIEo9dC5pc19lcnJvcixuZT1wbih0LmNvbnRlbnQpO089Sj8iZXJyb3IiOiJzdWNjZXNzIixOPUZsKG8pO3ZhciBkZT1uZSYmbmUudHJpbSgpLmxlbmd0aD4wO2RlP0c9JzxwcmUgY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1jb250ZW50Ij4nK3AobmUpKyI8L3ByZT4iOkc9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtZW1wdHkiPlx1NjVFMFx1OEY5M1x1NTFGQTwvc3Bhbj4nfWVsc2UgTj1GbChvKTt2YXIgcmU9VHQoInRvb2wtY2FyZCIsW2ksc10pLGllPWJ0KHJlKSxxZT1TbigiZWRpdENhcmRzIiksZ2U9dS5mb3JjZUV4cGFuZGVkVG9vbEJvZGllcz8hMDppZT09PW51bGw/cWU6aWUsY2U9dCYmdC5fdHJ1bmNhdGVkPT09ITAsUj1nZT8iIjoiIGNvbGxhcHNlZCIsaHQ9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS10b2dnbGUiPlx1MjVCQzwvc3Bhbj4nO3JldHVybic8ZGl2IGNsYXNzPSJ0b29sLXVzZS1jYXJkICcrTytSKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRvb2wtY2FyZCIgZGF0YS1leHBhbmQta2V5PSInK3AocmUpKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcChzKSsnIicrKGNlPycgZGF0YS10cnVuY2F0ZWQ9InRydWUiJzoiIikrJz48ZGl2IGNsYXNzPSJ0b29sLXVzZS1oZWFkZXIiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtZXhwYW5kZWQ9IicrKGdlPyJ0cnVlIjoiZmFsc2UiKStgIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiIG9ua2V5ZG93bj0iaWYoZXZlbnQua2V5PT09J0VudGVyJ3x8ZXZlbnQua2V5PT09JyAnKXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO19fdGNUb2dnbGUoZXZlbnQsdGhpcyk7fSI+PHNwYW4gY2xhc3M9InRvb2wtdXNlLWljb24iPmArTisnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1uYW1lIj4nK3AoZWUpKyI8L3NwYW4+IitaK2h0Kyc8L2Rpdj48ZGl2IGNsYXNzPSJ0b29sLXVzZS1ib2R5IiBhcmlhLWhpZGRlbj0iJysoZ2U/ImZhbHNlIjoidHJ1ZSIpKyciPicrKFE/JzxkaXYgY2xhc3M9InRvb2wtdXNlLW1ldGEiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1tZXRhLWxhYmVsIj5cdTVERTVcdTUxNzdcdUZGMUE8L3NwYW4+JytwKG8pKyI8L2Rpdj4iOiIiKSsnPHByZSBjbGFzcz0idG9vbC11c2UtY29udGVudCI+JytwKHEpKyI8L3ByZT4iKyhHPyc8ZGl2IGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQiPicrRysiPC9kaXY+IjoiIikrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gZHUoZSl7dmFyIHQ9e1JlYWQ6Ilx1OEJGQlx1NTNENlx1NjU4N1x1NEVGNiIsV3JpdGU6Ilx1NTE5OVx1NTE2NVx1NjU4N1x1NEVGNiIsRWRpdDoiXHU3RjE2XHU4RjkxXHU2NTg3XHU0RUY2IixNdWx0aUVkaXQ6Ilx1NTkxQVx1NTkwNFx1N0YxNlx1OEY5MSIsQmFzaDoiXHU2MjY3XHU4ODRDXHU1NDdEXHU0RUU0IixHcmVwOiJcdTY0MUNcdTdEMjJcdTUxODVcdTVCQjkiLEdsb2I6Ilx1NjdFNVx1NjI3RVx1NjU4N1x1NEVGNiIsV2ViRmV0Y2g6Ilx1ODNCN1x1NTNENlx1N0Y1MVx1OTg3NSIsV2ViU2VhcmNoOiJcdTY0MUNcdTdEMjJcdTdGNTFcdTk4NzUiLFRhc2s6Ilx1NEVGQlx1NTJBMSIsVG9kb1dyaXRlOiJcdTY2RjRcdTY1QjBcdTVGODVcdTUyOUUiLFRvZG9SZWFkOiJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUUiLE5vdGVib29rRWRpdDoiXHU3RjE2XHU4RjkxXHU3QjE0XHU4QkIwXHU2NzJDIixBZ2VudDoiXHU1QjUwXHU0RUUzXHU3NDA2IixBc2tVc2VyUXVlc3Rpb246Ilx1NjNEMFx1OTVFRSIsRXhpdDoiXHU5MDAwXHU1MUZBIn07cmV0dXJuIHRbZV18fGV9ZnVuY3Rpb24gRmwoZSl7dmFyIHQ9e1JlYWQ6IlIiLFdyaXRlOiJXIixFZGl0OiJFIixNdWx0aUVkaXQ6IkUiLEJhc2g6IiQiLEdyZXA6IkciLEdsb2I6IkYiLFdlYkZldGNoOiJcdTIxRTMiLFdlYlNlYXJjaDoiXHUyMUUyIixUYXNrOiJUIixUb2RvV3JpdGU6Ilx1MjYxMCIsVG9kb1JlYWQ6Ilx1MjYxMSIsTm90ZWJvb2tFZGl0OiJOIixBZ2VudDoiQSIsRXhpdDoiXHhENyJ9O3JldHVybiB0W2VdfHwiXHhCNyJ9ZnVuY3Rpb24gZ20oZSx0KXtpZighdHx8dHlwZW9mIHQhPSJvYmplY3QiKXJldHVybiIiO3ZhciBuPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoPT09MClyZXR1cm4ie30iO2lmKGU9PT0iUmVhZCIpcmV0dXJuIlx1OEJGQlx1NTNENlx1NjU4N1x1NEVGNiI7aWYoZT09PSJXcml0ZSIpcmV0dXJuIlx1NTE5OVx1NTE2NVx1NjU4N1x1NEVGNiI7aWYoZT09PSJFZGl0Iil7dmFyIGk9dC5lZGl0cz90LmVkaXRzLmxlbmd0aDowO3JldHVybiJcdTdGMTZcdThGOTEgKCIraSsiIFx1NTkwNFx1NEZFRVx1NjUzOSkifWlmKGU9PT0iQmFzaCIpe3ZhciBhPXQuY29tbWFuZHx8IiI7aWYoYSl7dmFyIHU9YS5sZW5ndGg+NjA/YS5zbGljZSgwLDYwKSsiLi4uIjphO3JldHVybiJcdTU0N0RcdTRFRTRcdUZGMUEiK3V9fWlmKGU9PT0iR3JlcCIpe3ZhciBvPXQucGF0dGVybnx8IiIscz10LnBhdGh8fCIiO2lmKG8pcmV0dXJuIlx1NjQxQ1x1N0QyMlx1RkYxQSIrbysocz8iIChcdTU3MjggIitzKyIpIjoiIil9aWYoZT09PSJHbG9iIil7dmFyIG89dC5wYXR0ZXJufHwiIjtpZihvKXJldHVybiJcdTY3RTVcdTYyN0VcdUZGMUEiK299aWYoZT09PSJBZ2VudCIpe3ZhciBsPXQucHJvbXB0fHx0LnRhc2t8fCIiO2lmKGwpe3ZhciBkPWwubGVuZ3RoPjQwP2wuc2xpY2UoMCw0MCkrIi4uLiI6bDtyZXR1cm4iXHU0RUZCXHU1MkExXHVGRjFBIitkfX1pZihlPT09IlRhc2siKXt2YXIgbD10LnRhc2t8fHQuZGVzY3JpcHRpb258fCIiO2lmKGwpe3ZhciBkPWwubGVuZ3RoPjQwP2wuc2xpY2UoMCw0MCkrIi4uLiI6bDtyZXR1cm4iXHU0RUZCXHU1MkExXHVGRjFBIitkfX1pZihlPT09IlRvZG9Xcml0ZSIpe3ZhciBmPXQudG9kb3N8fFtdO3JldHVybiJcdTY2RjRcdTY1QjBcdTVGODVcdTUyOUUgKCIrZi5sZW5ndGgrIiBcdTk4NzkpIn1pZihlPT09IldlYlNlYXJjaCIpe3ZhciBjPXQucXVlcnl8fCIiO2lmKGMpcmV0dXJuIlx1NjQxQ1x1N0QyMlx1RkYxQSIrY312YXIgdj1uWzBdLGg9dFt2XTtpZih0eXBlb2YgaD09InN0cmluZyIpe3ZhciBnPWgubGVuZ3RoPjUwP2guc2xpY2UoMCw1MCkrIi4uLiI6aDtyZXR1cm4gdisiOiAiK2d9cmV0dXJuIG4ubGVuZ3RoKyIgXHU0RTJBXHU1M0MyXHU2NTcwIn1mdW5jdGlvbiBobShlLHQpe2lmKCF0KXJldHVybiBudWxsO3ZhciBuPXQuZmlsZV9wYXRofHx0LnBhdGh8fHQuY3dkO3JldHVybiBuP24ubGVuZ3RoPjUwPyIuLi4iK24uc2xpY2UoLTQ3KTpuOm51bGx9ZnVuY3Rpb24geW0oZSl7aWYoIWUpcmV0dXJuIiI7Zm9yKHZhciB0PWAKYCxuPWUuc3BsaXQodCksaT1bXSxhPSExLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIG89blt1XSxzPW8udHJpbSgpO2lmKCEoIWEmJiFzKSl7aWYoYT0hMCxzLmluZGV4T2YoIlx1MjNGQSIpPT09MCYmcy5sZW5ndGg+Mil7aS5wdXNoKHMuc2xpY2UoMSkudHJpbSgpKTtjb250aW51ZX1pZihzLmluZGV4T2YoIlx1MjVDRiIpPT09MCl7aWYocz1zLnNsaWNlKDEpLnRyaW0oKSwhcyljb250aW51ZTtvPXN9aS5wdXNoKG8pfX1mb3IoO2kubGVuZ3RoPjAmJiFpW2kubGVuZ3RoLTFdLnRyaW0oKTspaS5wb3AoKTtmb3IodmFyIGw9W10sZD17fSxmPTA7ZjxpLmxlbmd0aDtmKyspe3ZhciBjPWlbZl0ucmVwbGFjZSgvXHMrL2csIiIpO2MubGVuZ3RoPjUmJmRbY118fChjLmxlbmd0aD41JiYoZFtjXT0hMCksbC5wdXNoKGlbZl0pKX1yZXR1cm4gbC5qb2luKHQpfWZ1bmN0aW9uIHdsKGUpe3ZhciB0PWAKYCxuPWUuc3BsaXQodCksaT1bXSxhPTA7ZnVuY3Rpb24gdShtKXt2YXIgeT1tLnRyaW0oKTtyZXR1cm4geS5jaGFyQXQoMCk9PT0ifCImJih5PXkuc2xpY2UoMSkpLHkuY2hhckF0KHkubGVuZ3RoLTEpPT09InwiJiYoeT15LnNsaWNlKDAsLTEpKSx5LnNwbGl0KCJ8Iil9ZnVuY3Rpb24gbyhtKXtyZXR1cm4gbT8nIHN0eWxlPSJ0ZXh0LWFsaWduOicrbSsnIic6IiJ9ZnVuY3Rpb24gcyhtLHksQyl7dmFyIEU9Ijx0aGVhZD48dHI+IittLm1hcChmdW5jdGlvbihELEYpe3JldHVybiI8dGgiK28oeVtGXSkrIj4iK0QudHJpbSgpKyI8L3RoPiJ9KS5qb2luKCIiKSsiPC90cj48L3RoZWFkPiIsQj1DLmxlbmd0aD8iPHRib2R5PiIrQy5tYXAoZnVuY3Rpb24oRCl7cmV0dXJuIjx0cj4iK0QubWFwKGZ1bmN0aW9uKEYsSSl7cmV0dXJuIjx0ZCIrbyh5W0ldKSsiPiIrRi50cmltKCkrIjwvdGQ+In0pLmpvaW4oIiIpKyI8L3RyPiJ9KS5qb2luKCIiKSsiPC90Ym9keT4iOiIiO3JldHVybic8ZGl2IGNsYXNzPSJtZC10YWJsZS13cmFwIj48dGFibGUgY2xhc3M9Im1kLXRhYmxlIj4nK0UrQisiPC90YWJsZT48L2Rpdj4ifWZvcig7YTxuLmxlbmd0aDspe3ZhciBsPW5bYV07aWYobC5pbmRleE9mKCJ8IikhPT0tMSYmYSsxPG4ubGVuZ3RoKXt2YXIgZD1uW2ErMV0udHJpbSgpO2lmKC9eXHw/XHMqOj8tKzo/KFxzKlx8XHMqOj8tKzo/KStccypcfD8kLy50ZXN0KGQpKXtmb3IodmFyIGY9dShsKSxjPXUoZCkubWFwKGZ1bmN0aW9uKG0pe3ZhciB5PW0udHJpbSgpLEM9eS5jaGFyQXQoMCk9PT0iOiIsRT15LmNoYXJBdCh5Lmxlbmd0aC0xKT09PSI6IjtyZXR1cm4gQyYmRT8iY2VudGVyIjpFPyJyaWdodCI6Qz8ibGVmdCI6IiJ9KSx2PVtdLGg9YSsyO2g8bi5sZW5ndGg7KXt2YXIgZz1uW2hdLnRyaW0oKTtpZighZ3x8Zy5pbmRleE9mKCJ8Iik9PT0tMSlicmVhazt2LnB1c2godShuW2hdKSksaCs9MX1pLnB1c2goIiIscyhmLGMsdiksIiIpLGE9aDtjb250aW51ZX19aS5wdXNoKGwpLGErPTF9cmV0dXJuIGkuam9pbih0KX1mdW5jdGlvbiBjdShlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1wKGUpLG49ImAiLGk9YApgO2Z1bmN0aW9uIGEocSxPLE4sRyl7Zm9yKHZhciBKPTA7Oyl7dmFyIG5lPXEuaW5kZXhPZihPLEopO2lmKG5lPT09LTEpYnJlYWs7dmFyIGRlPXEuaW5kZXhPZihPLG5lK08ubGVuZ3RoKTtpZihkZT09PS0xKWJyZWFrO3ZhciByZT1xLnNsaWNlKG5lK08ubGVuZ3RoLGRlKTtpZighcmUpe0o9ZGUrTy5sZW5ndGg7Y29udGludWV9dmFyIGllPU4rcmUrRztxPXEuc2xpY2UoMCxuZSkraWUrcS5zbGljZShkZStPLmxlbmd0aCksSj1uZStpZS5sZW5ndGh9cmV0dXJuIHF9ZnVuY3Rpb24gdShxKXtyZXR1cm4gcT49NDgmJnE8PTU3fHxxPj02NSYmcTw9OTB8fHE+PTk3JiZxPD0xMjJ8fHE9PT05NX1mdW5jdGlvbiBvKHEsTyxOKXtmb3IodmFyIEc9MDtHPHEubGVuZ3RoOyl7dmFyIEo9cS5pbmRleE9mKCJfIixHKTtpZihKPT09LTEpYnJlYWs7dmFyIG5lPUo+MD9xLmNoYXJDb2RlQXQoSi0xKTowO2lmKHUobmUpKXtHPUorMTtjb250aW51ZX1mb3IodmFyIGRlPUorMSxyZT0tMTtkZTxxLmxlbmd0aDspe3ZhciBpZT1xLmluZGV4T2YoIl8iLGRlKTtpZihpZT09PS0xKWJyZWFrO3ZhciBxZT1pZSsxLGdlPXFlPHEubGVuZ3RoP3EuY2hhckNvZGVBdChxZSk6MDtpZighdShnZSkpe3JlPWllO2JyZWFrfWRlPWllKzF9aWYocmU9PT0tMSlicmVhazt2YXIgY2U9cS5zbGljZShKKzEscmUpO2lmKCFjZSl7Rz1yZSsxO2NvbnRpbnVlfXZhciBSPU8rY2UrTjtxPXEuc2xpY2UoMCxKKStSK3Euc2xpY2UocmUrMSksRz1KK1IubGVuZ3RofXJldHVybiBxfWZ1bmN0aW9uIHMocSxPLE4sRyl7cmV0dXJuIHEuc3BsaXQoaSkubWFwKGZ1bmN0aW9uKEope3JldHVybiBKLmluZGV4T2YoTykhPT0wP0o6TitKLnNsaWNlKE8ubGVuZ3RoKStHfSkuam9pbihpKX1mdW5jdGlvbiBsKHEpe3JldHVybiBxLnNwbGl0KGkpLm1hcChmdW5jdGlvbihPKXt2YXIgTj1PLmluZGV4T2YoIi4gIik7aWYoTjw9MClyZXR1cm4gTztmb3IodmFyIEc9MDtHPE47Rys9MSl7dmFyIEo9Ty5jaGFyQ29kZUF0KEcpO2lmKEo8NDh8fEo+NTcpcmV0dXJuIE99cmV0dXJuIjxsaT4iK08uc2xpY2UoTisyKSsiPC9saT4ifSkuam9pbihpKX1mdW5jdGlvbiBkKHEpe3JldHVybiBxLnNwbGl0KGkraSkubWFwKGZ1bmN0aW9uKE8pe3ZhciBOPU8udHJpbSgpO3JldHVybiBOP04uaW5kZXhPZigiPGRpdiIpPT09MHx8Ti5pbmRleE9mKCI8aDEiKT09PTB8fE4uaW5kZXhPZigiPGgyIik9PT0wfHxOLmluZGV4T2YoIjxoMyIpPT09MHx8Ti5pbmRleE9mKCI8aDQiKT09PTB8fE4uaW5kZXhPZigiPGg1Iik9PT0wfHxOLmluZGV4T2YoIjxoNiIpPT09MHx8Ti5pbmRleE9mKCI8dWwiKT09PTB8fE4uaW5kZXhPZigiPG9sIik9PT0wfHxOLmluZGV4T2YoIjxsaSIpPT09MHx8Ti5pbmRleE9mKCI8YmxvY2txdW90ZSIpPT09MHx8Ti5pbmRleE9mKCI8cHJlIik9PT0wP046IjxwPiIrTi5zcGxpdChpKS5qb2luKCI8YnI+IikrIjwvcD4iOiIifSkuam9pbigiIil9Zm9yKHZhciBmPTA7Oyl7dmFyIGM9dC5pbmRleE9mKG4rbituLGYpO2lmKGM9PT0tMSlicmVhazt2YXIgdj10LmluZGV4T2YobituK24sYyszKTtpZih2PT09LTEpYnJlYWs7dmFyIGg9dC5zbGljZShjKzMsdiksZz1oLmluZGV4T2YoaSksbT0iIix5PWg7aWYoZyE9PS0xJiZnPDMwKXtmb3IodmFyIEM9aC5zbGljZSgwLGcpLnRyaW0oKSxFPUMubGVuZ3RoPjAsQj0wO0I8Qy5sZW5ndGg7Qis9MSl7dmFyIEQ9Qy5jaGFyQ29kZUF0KEIpLEY9RD49NDgmJkQ8PTU3LEk9RD49NjUmJkQ8PTkwLEw9RD49OTcmJkQ8PTEyMjtpZighRiYmIUkmJiFMKXtFPSExO2JyZWFrfX1FJiYobT1DLHk9aC5zbGljZShnKzEpKX12YXIgSD1ibSh5LnRyaW0oKSxtKSxVPUgucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IikseD0nPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+PGRpdiBjbGFzcz0iY29kZS1ibG9jay1oZWFkZXIiPjxzcGFuIGNsYXNzPSJjb2RlLWxhbmciPicrKG18fCJjb2RlIikrJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJjb2RlLWNvcHkiPkNvcHk8L2J1dHRvbj48L2Rpdj48cHJlPjxjb2RlPicrVSsiPC9jb2RlPjwvcHJlPjwvZGl2PiI7dD10LnNsaWNlKDAsYykreCt0LnNsaWNlKHYrMyksZj1jK3gubGVuZ3RofWZvcihmPTA7Oyl7dmFyIGs9dC5pbmRleE9mKG4sZik7aWYoaz09PS0xKWJyZWFrO3ZhciBUPXQuaW5kZXhPZihuLGsrMSk7aWYoVD09PS0xKWJyZWFrO2lmKFQ9PT1rKzEpe2Y9VCsxO2NvbnRpbnVlfXZhciBNPXQuc2xpY2UoaysxLFQpLFk9TS5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKSx6PSc8Y29kZSBjbGFzcz0iY29kZS1pbmxpbmUiPicrWSsiPC9jb2RlPiI7dD10LnNsaWNlKDAsaykreit0LnNsaWNlKFQrMSksZj1rK3oubGVuZ3RofXQ9YSh0LCIqKiIsIjxzdHJvbmc+IiwiPC9zdHJvbmc+IiksdD1hKHQsIioiLCI8ZW0+IiwiPC9lbT4iKSx0PW8odCwiPGVtPiIsIjwvZW0+IiksdD1zKHQsIiMjIyAiLCI8aDM+IiwiPC9oMz4iKSx0PXModCwiIyMgIiwiPGgyPiIsIjwvaDI+IiksdD1zKHQsIiMgIiwiPGgxPiIsIjwvaDE+IiksdD1zKHQsIiZndDsgIiwiPGJsb2NrcXVvdGU+IiwiPC9ibG9ja3F1b3RlPiIpLHQ9cyh0LCItICIsIjxsaT4iLCI8L2xpPiIpLHQ9cyh0LCIqICIsIjxsaT4iLCI8L2xpPiIpLHQ9bCh0KSx0PXdsKHQpO3ZhciBRPXQuc3BsaXQoaSksbGU9W10sZWU9W107ZnVuY3Rpb24gWigpe2VlLmxlbmd0aCYmKGxlLnB1c2goIjx1bD4iK2VlLmpvaW4oIiIpKyI8L3VsPiIpLGVlPVtdKX1yZXR1cm4gUS5mb3JFYWNoKGZ1bmN0aW9uKHEpe2lmKHEuaW5kZXhPZigiPGxpPiIpPT09MCYmcS5sYXN0SW5kZXhPZigiPC9saT4iKT09PXEubGVuZ3RoLTUpe2VlLnB1c2gocSk7cmV0dXJufVooKSxsZS5wdXNoKHEpfSksWigpLHQ9ZChsZS5qb2luKGkpKSwnPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+Jyt0KyI8L2Rpdj4ifWZ1bmN0aW9uIGJtKGUsdCl7cmV0dXJuIGU9ZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksZX1mdW5jdGlvbiAkbihlKXt2YXIgdD1TdHJpbmcoZXx8IiIpLnRyaW0oKTtyZXR1cm4gdC5sZW5ndGg8PTI0P3R8fCJcdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQiOnQuc2xpY2UoMCwyMSkrIi4uLiJ9ZnVuY3Rpb24gZnUoZSl7cmV0dXJuIFN0cmluZyhlfHwiIikucmVwbGFjZSgvXHJcclxuL2csYFxyCmApLnJlcGxhY2UoL1x1MDAwMC9nLCIiKX1mdW5jdGlvbiBFbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWh0dHAtbGluayIpO3QmJih0LmhyZWY9Imh0dHA6Ly8iK2xvY2F0aW9uLmhvc3QrbG9jYXRpb24ucGF0aG5hbWUsdC5zdHlsZS5kaXNwbGF5PWxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IiI6Im5vbmUiKX1mdW5jdGlvbiBGbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uIHB1KCl7aWYoIXIubG9naW5QZW5kaW5nKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1lcnJvciIpOyFlfHwhdHx8IW58fCh5aShuKSxGbSgpLGUuZGF0YXNldC5lcnJvcj0iZmFsc2UiLGUuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJmYWxzZSIpLHIubG9naW5QZW5kaW5nPSEwLHQuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU3NjdCXHU1RjU1XHU0RTJELi4uIixmZXRjaCgiL2FwaS9sb2dpbiIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwYXNzd29yZDplLnZhbHVlfSksY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuc3RhdHVzPT09NDI5PyhIZShuLCJcdTc2N0JcdTVGNTVcdTVDMURcdThCRDVcdTZCMjFcdTY1NzBcdThGQzdcdTU5MUFcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTUxOERcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKTppLm9rP2ZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KTooZS5kYXRhc2V0LmVycm9yPSJ0cnVlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwidHJ1ZSIpLEhlKG4sIlx1NUJDNlx1NzgwMVx1OTUxOVx1OEJFRlx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5vaz9pLmpzb24oKToobG9jYXRpb24ucHJvdG9jb2w9PT0iaHR0cHM6Ij9FbSgpOkhlKG4sIlx1NzY3Qlx1NUY1NVx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyLmNvbmZpZz1pO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMtZG90IiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzLXRleHQiKTtyZXR1cm4gYSYmYS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSx1JiYodS50ZXh0Q29udGVudD0iXHU1REYyXHU3NjdCXHU1RjU1IiksT3QoKX0pLnRoZW4oZnVuY3Rpb24oKXtqbygpLFF0KCl9KS5jYXRjaChmdW5jdGlvbihpKXtpIT09ImhhbmRsZWQiJiYoY29uc29sZS5lcnJvcigiW3dhbmRdIExvZ2luIGVycm9yOiIsaSksSGUobiwiXHU3NjdCXHU1RjU1XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIikpfSkuZmluYWxseShmdW5jdGlvbigpe3IubG9naW5QZW5kaW5nPSExLHQuZGlzYWJsZWQ9ITEsdC50ZXh0Q29udGVudD0iXHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwIn0pKX19ZnVuY3Rpb24gdnUoKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zd2l0Y2hTZXJ2ZXI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gQ2woKXtpZih2dSgpKXRyeXtXYW5kTmF0aXZlLnN3aXRjaFNlcnZlcigpfWNhdGNoe319ZnVuY3Rpb24gd20oKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiI/ITA6dHlwZW9mIHdpbmRvdy5fX3dhbmRCYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gQ20oKXt0cnl7aWYodHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiIpe1dhbmROYXRpdmUuYmFja1RvTmF0aXZlKCk7cmV0dXJufXR5cGVvZiB3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iJiZ3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlKCl9Y2F0Y2h7fX1mdW5jdGlvbiBCbCgpe2ZldGNoKCIvYXBpL2xvZ291dCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLmNhdGNoKGZ1bmN0aW9uKCl7fSksS28oKSxNbighMSksS2EoKSx3cigpLHIuY29uZmlnPW51bGwsci5zZWxlY3RlZElkPW51bGwsaGUoKSxyLnNlc3Npb25zPVtdLHIuY2xhdWRlSGlzdG9yeT1bXSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzPXt9LHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLFF0KCl9ZnVuY3Rpb24gT3QoKXtyZXR1cm4gbW4oKX1mdW5jdGlvbiBtdShlKXtyZXR1cm4gZT09PSJmdWxsLWFjY2VzcyI/Ilx1NTE2OFx1Njc0M1x1OTY1MCI6ZT09PSJkZWZhdWx0Ij8iXHU5RUQ4XHU4QkE0IjplPT09Im5hdGl2ZSI/Ilx1NTM5Rlx1NzUxRiI6ZT09PSJhdXRvLWVkaXQiPyJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEiOmU9PT0ibWFuYWdlZCI/Ilx1NjI1OFx1N0JBMSI6ZX1mdW5jdGlvbiBydCgpe3JldHVybiByLnNlc3Npb25Ub29sfHxyLnByZWZlcnJlZENvbW1hbmR8fCJjbGF1ZGUifWZ1bmN0aW9uIEJtKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIGUmJmUucHJvdmlkZXJ8fHIucHJlZmVycmVkQ29tbWFuZHx8ImNsYXVkZSJ9ZnVuY3Rpb24gRGwoZSx0KXtyZXR1cm4gdD8iXHU5NTJFXHU3NkQ4XHU4RjkzXHU1MTY1XHU1QzA2XHU1M0QxXHU5MDAxXHU1MjMwXHU3RUM4XHU3QUVGIjplJiYoZS5zdGF0dXM9PT0iZXhpdGVkInx8ZS5zdGF0dXM9PT0iZmFpbGVkInx8ZS5zdGF0dXM9PT0ic3RvcHBlZCIpP1dhKGUpPyJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkZcdTRFRTVcdTdFRTdcdTdFRURcdTRGMUFcdThCREQiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiOnVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ/Ilx1NTZERVx1NTkwRFx1NEUyRFx1RkYwQ1x1NTNFRlx1N0VFN1x1N0VFRFx1OEY5M1x1NTE2NSI6Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiJ9ZnVuY3Rpb24ga2woZSx0KXtyZXR1cm4gZT09PSJjb2RleCI/IkNvZGV4IFx1NjUyRlx1NjMwMSBQVFkgXHU3RUM4XHU3QUVGXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2XHVGRjA4SlNPTkxcdUZGMDlcdTRFMjRcdTc5Q0RcdTRGMUFcdThCRERcdUZGMENcdTdFRDNcdTY3ODRcdTUzMTZcdTZBMjFcdTVGMEZcdTYzMDkgZnVsbC1hY2Nlc3MgXHU1NDJGXHU1MkE4XHUzMDAyIjp0PT09ImZ1bGwtYWNjZXNzIj8iXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwXHU4QkY3XHU2QzQyXHU0RTBFXHU5QUQ4XHU2NzQzXHU5NjUwXHU2NENEXHU0RjVDXHVGRjBDXHU5MDAyXHU1NDA4XHU0RjYwXHU3ODZFXHU4QkE0XHU3M0FGXHU1ODgzXHU1Qjg5XHU1MTY4XHU1NDBFXHU3Njg0XHU4RkRFXHU3RUVEXHU0RkVFXHU2NTM5XHUzMDAyIjp0PT09ImF1dG8tZWRpdCI/Ilx1NEZERFx1NzU1OVx1NEVBNFx1NEU5Mlx1NUYwRlx1NEYxQVx1OEJERFx1RkYwQ1x1NTQwQ1x1NjVGNlx1NjZGNFx1NTA0Rlx1NTQxMVx1NzZGNFx1NjNBNVx1N0YxNlx1OEY5MVx1NEVFM1x1NzgwMVx1MzAwMiI6dD09PSJuYXRpdmUiPyJcdThDMDNcdTc1MjggQ2xhdWRlIFx1NTM5Rlx1NzUxRiBBUEkgXHU4RjkzXHU1MUZBXHVGRjBDXHU5MDAyXHU1NDA4XHU1RkVCXHU5MDFGXHU5NUVFXHU3QjU0XHU2MjE2XHU0RTAwXHU2QjIxXHU2MDI3XHU3NTFGXHU2MjEwXHUzMDAyIjp0PT09Im1hbmFnZWQiPyJBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUNcdUZGMENcdTY1RTBcdTk3MDBcdTRFMkRcdTkwMTRcdTc4NkVcdThCQTRcdUZGMENcdTkwMDJcdTU0MDhcdTY3MDlcdTY2MEVcdTc4NkVcdTc2RUVcdTY4MDdcdTc2ODRcdTRFRkJcdTUyQTFcdTMwMDIiOiJcdTRGRERcdTc1NTlcdTY4MDdcdTUxQzZcdTRFQTRcdTRFOTJcdTZENDFcdTdBMEJcdUZGMENcdTkwMDJcdTU0MDhcdTYyNEJcdTUyQThcdTc4NkVcdThCQTRcdTZCQ0ZcdTRFMDBcdTZCNjVcdTMwMDIifWZ1bmN0aW9uIGd1KGUpe3JldHVybiBlPT09ImNvZGV4Ij9bImZ1bGwtYWNjZXNzIl06WyJkZWZhdWx0IiwiZnVsbC1hY2Nlc3MiLCJhdXRvLWVkaXQiLCJuYXRpdmUiLCJtYW5hZ2VkIl19ZnVuY3Rpb24gbXQoZSx0KXt2YXIgbj1ndShlKTtpZihuLmluZGV4T2YodCkhPT0tMSlyZXR1cm4gdDt2YXIgaT1yLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGU/ci5jb25maWcuZGVmYXVsdE1vZGU6ImRlZmF1bHQiO3JldHVybiBuLmluZGV4T2YoaSkhPT0tMT9pOm5bMF19ZnVuY3Rpb24gQ2goZSx0KXtyZXR1cm4gZ3UoZSkubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPUFsKG4pO3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrJyB0aXRsZT0iJytpKyciPicrcChtdShuKSkrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBBbChlKXt2YXIgdD17ZGVmYXVsdDoiXHU2ODA3XHU1MUM2XHU2QTIxXHU1RjBGIC0gXHU5NzAwXHU4OTgxXHU3ODZFXHU4QkE0XHU2NTg3XHU0RUY2XHU0RkVFXHU2NTM5IiwiZnVsbC1hY2Nlc3MiOiJcdTVCOENcdTUxNjhcdThCQkZcdTk1RUUgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY3NDNcdTk2NTBcdTRFMEVcdTY0Q0RcdTRGNUMiLCJhdXRvLWVkaXQiOiJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY1ODdcdTRFRjZcdTRGRUVcdTY1MzkiLG5hdGl2ZToiXHU1MzlGXHU3NTFGXHU2QTIxXHU1RjBGIC0gXHU4RkQ0XHU1NkRFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RjkzXHU1MUZBIixtYW5hZ2VkOiJcdTYyNThcdTdCQTFcdTZBMjFcdTVGMEYgLSBBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUMifTtyZXR1cm4gdFtlXXx8IiJ9ZnVuY3Rpb24gRG0oZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcj9lLnByb3ZpZGVyOiJjbGF1ZGUiO3JldHVybih1ZShlKT8iXHU3RUQzXHU2Nzg0XHU1MzE2IjoiXHU3RUM4XHU3QUVGIikrIiBceEI3ICIrdH1mdW5jdGlvbiBrbShlKXtyZXR1cm4gdWUoZSk/Ilx1N0VEM1x1Njc4NFx1NTMxNiBceEI3IFx1NTc1N1x1N0VBN1x1OEJCMFx1NUY1NSI6ZSYmZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1N0VDOFx1N0FFRiBceEI3IENvZGV4IFBUWVx1RkYwOGNoYXQgXHU0RTNBXHU4OUUzXHU2NzkwXHU4OUM2XHU1NkZFXHVGRjA5IjoiXHU3RUM4XHU3QUVGIFx4QjcgUFRZIFx1NEYxQVx1OEJERCJ9ZnVuY3Rpb24geGwoZSl7cmV0dXJuIGU/dWUoZSl8fGUucHJvdmlkZXI9PT0iY29kZXgiOiExfWZ1bmN0aW9uIFNsKGUsdCl7aWYoIWV8fCFlLmlzX2Vycm9yfHwhdHx8dC5pc19lcnJvcilyZXR1cm4hMTt2YXIgbj1wbihlLmNvbnRlbnQpLnRvTG93ZXJDYXNlKCksaT1wbih0LmNvbnRlbnQpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG4/bi5pbmRleE9mKCJpbnZhbGlkIHBhZ2VzIHBhcmFtZXRlciIpIT09LTEmJmkubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gdWUoZSl7cmV0dXJuISFlJiYoZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5ydW5uZXI9PT0iY2xhdWRlLWNsaS1wcmludCIpfWZ1bmN0aW9uIEhpKCl7ci5jaGF0TW9kZT1tdCgiY2xhdWRlIixyLmNoYXRNb2RlKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1oaW50Iik7ZSYmKGUudGV4dENvbnRlbnQ9QWwoci5jaGF0TW9kZSkpLHFuKCl9ZnVuY3Rpb24gSWwoZSx0KXt0PXR8fHt9O3ZhciBuPXQua2luZD09PSJjb21wYWN0Inx8dC5raW5kPT09InBvcG92ZXIiP3Qua2luZDoiZHJvcGRvd24iLGk9cnQoKSxhPXIuY2hhdE1vZGV8fCJkZWZhdWx0Iix1PUhyKGUpfHwiIixvPU5pKHUsZSkscz1GdShlKTtmdW5jdGlvbiBsKGYsYyx2LGgpe3ZhciBnPW49PT0iY29tcGFjdCI/IiI6JzxzcGFuIGNsYXNzPSJjaGF0LW1vZGUtdHJpby10YWciPicrcChjKSsiPC9zcGFuPiI7cmV0dXJuJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXBpbGwgY2hhdC1tb2RlLXRyaW8tcGlsbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytmKyciIHRpdGxlPSInK3AoYykrJyI+JytnKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1sYWJlbCI+JytwKHYpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0iJytmKyciIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iJytwKGMpKyciPicraCsiPC9zZWxlY3Q+PC9zcGFuPiJ9ZnVuY3Rpb24gZCgpe3JldHVybic8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1waWxsIGNoYXQtbW9kZS10cmlvLXBpbGwgdGhpbmtpbmctc2xpZGVyLXNoZWxsIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJ0aGlua2luZyIgdGl0bGU9Ilx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNiI+Jysobj09PSJjb21wYWN0Ij8iIjonPHNwYW4gY2xhc3M9ImNoYXQtbW9kZS10cmlvLXRhZyI+XHU2MDFEXHU4MDAzPC9zcGFuPicpKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1sYWJlbCB0aGlua2luZy1zbGlkZXItdmFsdWUiPicrcChabihzLGUpKSsiPC9zcGFuPiIrTWwocyxlKSsiPC9zcGFuPiJ9cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbW9kZS10cmlvIGNoYXQtbW9kZS10cmlvLScrbisnIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iXHU0RjFBXHU4QkREXHU4QkJFXHU3RjZFIj4nK2woIm1vZGUiLCJcdTZBMjFcdTVGMEYiLGEsamkoaSxhKSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXNlcCIgYXJpYS1oaWRkZW49InRydWUiPlx4Qjc8L3NwYW4+JytsKCJtb2RlbCIsIlx1NkEyMVx1NTc4QiIsbyxIbCh1LGUpKSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtc2VwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHhCNzwvc3Bhbj4nK2QoKSsiPC9kaXY+In1mdW5jdGlvbiBUbChlLHQpe3ZhciBuPVpuKGUsdCk7cmV0dXJuIG49PT0ibG93Ij8iXHU0RjRFIjpuPT09Im1lZGl1bSI/Ilx1NEUyRCI6bj09PSJoaWdoIj8iXHU5QUQ4IjpuPT09InhoaWdoIj8iXHU4RDg1XHU5QUQ4IjpuPT09Im1heCI/Ilx1Njc4MVx1OUFEOCI6bj09PSJ1bHRyYSI/Ilx1Njc4MVx1OTY1MCI6Ilx1NTE3MyJ9ZnVuY3Rpb24gX2koZSx0KXt2YXIgbj1lfHwiIixpPUV1KHQpO2lmKCFufHxuPT09ImRlZmF1bHQiKXtmb3IodmFyIGE9MDthPGkubGVuZ3RoO2ErKylpZihpW2FdLmlkPT09ImRlZmF1bHQiKXJldHVybiBpW2FdLmxhYmVsfHxpW2FdLmlkO3JldHVybiJcdTlFRDhcdThCQTQifWZvcih2YXIgdT0wO3U8aS5sZW5ndGg7dSsrKWlmKGlbdV0uaWQ9PT1uKXJldHVybiBpW3VdLmxhYmVsfHxpW3VdLmlkO3JldHVybiBufWZ1bmN0aW9uIE5pKGUsdCl7dmFyIG49X2koZSx0KTtpZighbnx8bj09PSJcdThEREZcdTk2OEZcdTY3MERcdTUyQTFcdTdBRUZcdTlFRDhcdThCQTQiKXJldHVybiJcdTlFRDhcdThCQTQiO3ZhciBpPW4uc2VhcmNoKC9b77yIKF0vKTtpPjAmJihuPW4uc2xpY2UoMCxpKS50cmltKCkpO3ZhciBhPW4ubGFzdEluZGV4T2YoIi8iKTthPj0wJiZhPG4ubGVuZ3RoLTEmJihuPW4uc2xpY2UoYSsxKS50cmltKCkpO3ZhciB1PW4udG9Mb3dlckNhc2UoKTtyZXR1cm4gdS5pbmRleE9mKCJvcHVzIikhPT0tMT8iT3B1cyI6dS5pbmRleE9mKCJzb25uZXQiKSE9PS0xPyJTb25uZXQiOnUuaW5kZXhPZigiaGFpa3UiKSE9PS0xPyJIYWlrdSI6dS5pbmRleE9mKCJncHQtNS41IikhPT0tMT8iR1BULTUuNSI6dS5pbmRleE9mKCJncHQtNSIpIT09LTE/IkdQVC01Ijp1LmluZGV4T2YoImdwdC00IikhPT0tMT8iR1BULTQiOm4ubGVuZ3RoPjEyP24uc2xpY2UoMCwxMCkrIlx1MjAyNiI6bn1mdW5jdGlvbiBMbChlKXtyZXR1cm4gZS5sZW5ndGg8PTE/JzxzcGFuIGNsYXNzPSJ0aGlua2luZy1zbGlkZXItbm9kZSIgc3R5bGU9ImxlZnQ6NTAlIj48L3NwYW4+JzplLm1hcChmdW5jdGlvbih0LG4pe3JldHVybic8c3BhbiBjbGFzcz0idGhpbmtpbmctc2xpZGVyLW5vZGUiIHN0eWxlPSJsZWZ0Oicrbi8oZS5sZW5ndGgtMSkqMTAwKyclIj48L3NwYW4+J30pLmpvaW4oIiIpfWZ1bmN0aW9uIE1sKGUsdCl7dmFyIG49V2kodCksaT1NYXRoLm1heCgwLG4uZmluZEluZGV4KGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ZX0pKSxhPU1hdGgubWF4KDAsbi5sZW5ndGgtMSksdT1hP2kvYSoxMDA6MCxvPXAoSlNPTi5zdHJpbmdpZnkobi5tYXAoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWR9KSkpLHM9cChKU09OLnN0cmluZ2lmeShuLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gbC5sYWJlbH0pKSk7cmV0dXJuJzxzcGFuIGNsYXNzPSJ0aGlua2luZy1zbGlkZXItcmFpbCIgc3R5bGU9Ii0tdGhpbmtpbmctcHJvZ3Jlc3M6Jyt1KyclIj48c3BhbiBjbGFzcz0idGhpbmtpbmctc2xpZGVyLW5vZGVzIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytMbChuKSsnPC9zcGFuPjxpbnB1dCBjbGFzcz0idGhpbmtpbmctZGlzY3JldGUtcmFuZ2UiIHR5cGU9InJhbmdlIiBtaW49IjAiIG1heD0iJythKyciIHN0ZXA9IjEiIHZhbHVlPSInK2krJyIgZGF0YS1tb2RlLWNvbnRyb2w9InRoaW5raW5nIiBkYXRhLXRoaW5raW5nLXZhbHVlcz0iJytvKyciIGRhdGEtdGhpbmtpbmctbGFiZWxzPSInK3MrJyIgYXJpYS1sYWJlbD0iXHU2MDFEXHU4MDAzXHU2REYxXHU1RUE2IiBhcmlhLXZhbHVldGV4dD0iJytwKG5baV0/LmxhYmVsfHwiYXV0byIpKyciPjwvc3Bhbj4nfWZ1bmN0aW9uIHFsKGUsdCxuKXt2YXIgaT1XaShuKSxhPU1hdGgubWF4KDAsaS5maW5kSW5kZXgoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWQ9PT10fSkpLHU9TWF0aC5tYXgoMCxpLmxlbmd0aC0xKSxvPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWRpc2NyZXRlLXJhbmdlIikscz1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zbGlkZXItcmFpbCIpLGw9ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctc2xpZGVyLW5vZGVzIik7IW98fCFzfHwoby5tYXg9U3RyaW5nKHUpLG8udmFsdWU9U3RyaW5nKGEpLG8uZGF0YXNldC50aGlua2luZ1ZhbHVlcz1KU09OLnN0cmluZ2lmeShpLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZH0pKSxvLmRhdGFzZXQudGhpbmtpbmdMYWJlbHM9SlNPTi5zdHJpbmdpZnkoaS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQubGFiZWx9KSksby5zZXRBdHRyaWJ1dGUoImFyaWEtdmFsdWV0ZXh0IixpW2FdPy5sYWJlbHx8ImF1dG8iKSxzLnN0eWxlLnNldFByb3BlcnR5KCItLXRoaW5raW5nLXByb2dyZXNzIiwodT9hL3UqMTAwOjApKyIlIiksbCYmKGwuaW5uZXJIVE1MPUxsKGkpKSl9ZnVuY3Rpb24gUGwoZSl7dmFyIHQ9cnQoKSxuPXIuY2hhdE1vZGV8fCJkZWZhdWx0IixpPUhyKGUpfHwiIixhPUZ1KGUpLHU9bXUobiksbz1OaShpLGUpLHM9VGwoYSxlKSxsPSJcdTZBMjFcdTVGMEYgIit1KyIgXHhCNyBcdTZBMjFcdTU3OEIgIitvKyIgXHhCNyBcdTYwMURcdTgwMDMgIitzO3JldHVybic8ZGl2IGNsYXNzPSJjb21wb3Nlci1jb25maWctY29udHJvbHMiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSJcdTRGMUFcdThCRERcdThCQkVcdTdGNkUiIHRpdGxlPSInK3AobCkrJyI+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1jaGlwIGNvbXBvc2VyLWNvbmZpZy1jaGlwLW1vZGUiIGRhdGEtbW9kZS1jb250cm9sLXBpbGw9Im1vZGUiIHRpdGxlPSJcdTZBMjFcdTVGMEZcdUZGMUEnK3AodSkrJyI+JytWKCJzaGllbGQiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOCxjbHM6ImNvbXBvc2VyLWNvbmZpZy1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWxhYmVsIj4nK3AodSkrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSJtb2RlIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9Ilx1NkEyMVx1NUYwRiI+JytqaSh0LG4pKyc8L3NlbGVjdD48L3NwYW4+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZyIgZGF0YS10aGlua2luZz0iJytwKGEpKyciIHRpdGxlPSJcdTZBMjFcdTU3OEJcdTRFMEVcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYiPjxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctcGFydCBjb21wb3Nlci1jb25maWctbW9kZWwiIGRhdGEtbW9kZS1jb250cm9sLXBpbGw9Im1vZGVsIj4nK1YoImNwdSIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44LGNsczoiY29tcG9zZXItY29uZmlnLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbGFiZWwiPicrcChvKSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9Im1vZGVsIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9Ilx1NkEyMVx1NTc4QiI+JytPbChpLGUpKyc8L3NlbGVjdD48L3NwYW4+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1wYXJ0IGNvbXBvc2VyLWNvbmZpZy10aGlua2luZyIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciIGRhdGEtdGhpbmtpbmc9IicrcChhKSsnIj4nK1YoImJyYWluIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjgsY2xzOiJjb21wb3Nlci1jb25maWctaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1sYWJlbCB0aGlua2luZy1zbGlkZXItdmFsdWUiPicrcChabihhLGUpKSsiPC9zcGFuPiIrTWwoYSxlKSsiPC9zcGFuPjwvc3Bhbj48L2Rpdj4ifWZ1bmN0aW9uIHFuKCl7dmFyIGU9c3QoKSx0PXJ0KCksbj1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsaT1IcihlKXx8IiIsYT1OaShpLGUpLHU9RnUoZSksbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tb2RlLXRyaW8iKTtvLmZvckVhY2goZnVuY3Rpb24ocyl7ZnVuY3Rpb24gbChkLGYsYyx2KXt2YXIgaD1zLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSInK2QrJyJdJyk7aWYoaCl7dmFyIGc9aC5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItdGV4dC1sYWJlbCIpO2lmKGcmJihnLnRleHRDb250ZW50PXZ8fGYpLGQ9PT0idGhpbmtpbmciKXtxbChoLGYsZSk7cmV0dXJufXZhciBtPWgucXVlcnlTZWxlY3RvcignW2RhdGEtbW9kZS1jb250cm9sPSInK2QrJyJdJyk7bSYmKGMmJihtLmlubmVySFRNTD1jKSxtLnZhbHVlIT09ZiYmKG0udmFsdWU9ZikpfX1sKCJtb2RlIixuLGppKHQsbikpLGwoIm1vZGVsIixpLEhsKGksZSksYSksbCgidGhpbmtpbmciLHUsIiIsWm4odSxlKSl9KSxBbShlLG4sSHIoZSl8fCIiLHUpfWZ1bmN0aW9uIEFtKGUsdCxuLGkpe3ZhciBhPXJ0KCksdT1tdSh0KSxvPU5pKG4sZSkscz1UbChpLGUpLGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIpO2wuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgZj0iXHU2QTIxXHU1RjBGICIrdSsiIFx4QjcgXHU2QTIxXHU1NzhCICIrbysiIFx4QjcgXHU2MDFEXHU4MDAzICIrcztkLnNldEF0dHJpYnV0ZSgidGl0bGUiLGYpO2Z1bmN0aW9uIGMoQixELEYpe3ZhciBJPUIucXVlcnlTZWxlY3RvcigiW2RhdGEtbW9kZS1jb250cm9sXSIpO0kmJihJLmlubmVySFRNTD1GLEkudmFsdWU9RCl9dmFyIHY9ZC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSJdJyk7aWYodil7dmFyIGg9di5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7aCYmKGgudGV4dENvbnRlbnQ9dSksdi5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2QTIxXHU1RjBGXHVGRjFBIit1KSxjKHYsdCxqaShhLHQpKX12YXIgZz1kLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlbCJdJyk7aWYoZyl7dmFyIG09Zy5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7bSYmKG0udGV4dENvbnRlbnQ9byksYyhnLG4sT2wobixlKSl9dmFyIHk9ZC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciXScpO2lmKHkpe3ZhciBDPXkucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO0MmJihDLnRleHRDb250ZW50PVpuKGksZSkpLHkuc2V0QXR0cmlidXRlKCJkYXRhLXRoaW5raW5nIixpKSxxbCh5LGksZSl9dmFyIEU9ZC5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIik7RSYmRS5zZXRBdHRyaWJ1dGUoImRhdGEtdGhpbmtpbmciLGkpfSl9ZnVuY3Rpb24gamkoZSx0KXtyZXR1cm4gZ3UoZSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrIj4iK3AobikrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBSaShlKXtyZXR1cm4gZT09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIn1mdW5jdGlvbiBodShlKXtyZXR1cm4gUmkoZSYmZS5wcm92aWRlcnx8ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSIpfWZ1bmN0aW9uIHl1KCl7dmFyIGU9ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHMmJnR5cGVvZiByLmNvbmZpZy5kZWZhdWx0TW9kZWxzPT0ib2JqZWN0Ij9yLmNvbmZpZy5kZWZhdWx0TW9kZWxzOnt9O3JldHVybntjbGF1ZGU6dHlwZW9mIGUuY2xhdWRlPT0ic3RyaW5nIj9lLmNsYXVkZTpyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIixjb2RleDp0eXBlb2YgZS5jb2RleD09InN0cmluZyI/ZS5jb2RleDpyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdENvZGV4TW9kZWx8fCIifX1mdW5jdGlvbiB4bShlKXt2YXIgdD15dSgpO3JldHVybiBSaShlKT09PSJjb2RleCI/dC5jb2RleHx8IiI6dC5jbGF1ZGV8fCIifWZ1bmN0aW9uIE9yKGUpe3ZhciB0PVJpKGUpLG49ci5jaGF0TW9kZWxzJiZ0eXBlb2Ygci5jaGF0TW9kZWxzW3RdPT0ic3RyaW5nIj9yLmNoYXRNb2RlbHNbdF06IiI7cmV0dXJuIW4mJnQ9PT0iY2xhdWRlIiYmKG49ci5jaGF0TW9kZWx8fCIiKSxufHwiIn1mdW5jdGlvbiBidShlLHQpe3ZhciBuPVJpKGUpLGk9KHR8fCIiKS50cmltKCk7ci5jaGF0TW9kZWxzfHwoci5jaGF0TW9kZWxzPXtjbGF1ZGU6IiIsY29kZXg6IiJ9KSxyLmNoYXRNb2RlbHNbbl09aSxyLmNoYXRNb2RlbD1pO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsLSIrbixpKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1jaGF0LW1vZGVsIil9Y2F0Y2h7fX1mdW5jdGlvbiBIcihlKXtpZihlJiZlLnNlbGVjdGVkTW9kZWwpcmV0dXJuIGUuc2VsZWN0ZWRNb2RlbDt2YXIgdD1odShlKSxuPU9yKHQpO3JldHVybiBufHx4bSh0KXx8IiJ9ZnVuY3Rpb24gRXUoZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcnx8ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSI7cmV0dXJuIHQ9PT0iY29kZXgiP3IuYXZhaWxhYmxlQ29kZXhNb2RlbHN8fFtdOnIuYXZhaWxhYmxlTW9kZWxzfHxbXX1mdW5jdGlvbiBPbChlLHQpe2Zvcih2YXIgbj1FdSh0KSxpPWU9PT0iZGVmYXVsdCI/IiI6ZXx8IiIsYT0nPG9wdGlvbiB2YWx1ZT0iIicrKGk/IiI6IiBzZWxlY3RlZCIpKyI+XHU5RUQ4XHU4QkE0IFx4QjcgIitwKF9pKCIiLHQpKSsiPC9vcHRpb24+Iix1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBvPW5bdV07aWYoby5pZCE9PSJkZWZhdWx0Iil7dmFyIHM9by5sYWJlbHx8by5pZDthKz0nPG9wdGlvbiB2YWx1ZT0iJytwKG8uaWQpKyciJysoby5pZD09PWk/IiBzZWxlY3RlZCI6IiIpKyI+IitwKHMpKyI8L29wdGlvbj4ifX1yZXR1cm4gaSYmIW4uc29tZShmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PWl9KSYmKGErPSc8b3B0aW9uIHZhbHVlPSInK3AoaSkrJyIgc2VsZWN0ZWQ+JytwKGkpKyJcdUZGMDhcdTgxRUFcdTVCOUFcdTRFNDlcdUZGMDk8L29wdGlvbj4iKSxhfWZ1bmN0aW9uIEhsKGUsdCl7Zm9yKHZhciBuPUV1KHQpLGk9ZT09PSJkZWZhdWx0Ij8iIjplfHwiIixhPSc8b3B0aW9uIHZhbHVlPSIiJysoaT8iIjoiIHNlbGVjdGVkIikrIj4iK3AoX2koIiIsdCkpKyI8L29wdGlvbj4iLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIG89blt1XTtvLmlkIT09ImRlZmF1bHQiJiYoYSs9JzxvcHRpb24gdmFsdWU9IicrcChvLmlkKSsnIicrKG8uaWQ9PT1pPyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChvLmlkKSsiPC9vcHRpb24+Iil9cmV0dXJuIGkmJiFuLnNvbWUoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1pfSkmJihhKz0nPG9wdGlvbiB2YWx1ZT0iJytwKGkpKyciIHNlbGVjdGVkPicrcChpKSsiPC9vcHRpb24+IiksYX1mdW5jdGlvbiBYbihlKXtxbigpfXZhciBfcj1be2lkOiJvZmYiLGxhYmVsOiJhdXRvIixoaW50OiJDbGF1ZGUgQ0xJOiBhdXRvL2RlZmF1bHQgXHhCNyBTREsgXHU1MTczXHU5NUVEIHRoaW5raW5nIFx4QjcgQ29kZXggXHU0RjdGXHU3NTI4XHU2QTIxXHU1NzhCXHU5RUQ4XHU4QkE0XHU1MDNDIn0se2lkOiJzdGFuZGFyZCIsbGFiZWw6ImxvdyIsaGludDoiQ2xhdWRlIENMSTogbG93IFx4QjcgU0RLIGJ1ZGdldCA0MDk2IFx4QjcgQ29kZXggbG93In0se2lkOiJkZWVwIixsYWJlbDoibWVkaXVtIixoaW50OiJDbGF1ZGUgQ0xJOiBtZWRpdW0gXHhCNyBTREsgYnVkZ2V0IDE2MDAwIFx4QjcgQ29kZXggbWVkaXVtIn0se2lkOiJtYXgiLGxhYmVsOiJtYXgiLGhpbnQ6IkNsYXVkZSBDTEk6IG1heCBceEI3IFNESyBidWRnZXQgMzE5OTkgXHhCNyBDb2RleCB4aGlnaCJ9XTtmdW5jdGlvbiBTbShlKXtyZXR1cm4gZT09PSJsb3ciPyJzdGFuZGFyZCI6ZT09PSJtZWRpdW0iPyJkZWVwIjplPT09InhoaWdoIj8ibWF4IjoiY29kZXg6IitlfWZ1bmN0aW9uIFdpKGUpe2lmKGh1KGUpIT09ImNvZGV4IilyZXR1cm4gX3I7dmFyIHQ9SHIoZSl8fCJkZWZhdWx0IixuPXIuYXZhaWxhYmxlQ29kZXhNb2RlbHN8fFtdLGk9bi5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09dH0pfHxuLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT0iZGVmYXVsdCJ9KSxhPWkmJkFycmF5LmlzQXJyYXkoaS5yZWFzb25pbmdFZmZvcnRzKT9pLnJlYXNvbmluZ0VmZm9ydHM6W107aWYoIWEubGVuZ3RoKXJldHVybiBfcjt2YXIgdT1pLmRlZmF1bHRSZWFzb25pbmdFZmZvcnR8fCIiO3JldHVyblt7aWQ6Im9mZiIsbGFiZWw6ImF1dG8iLGhpbnQ6dT8iXHU0RjdGXHU3NTI4XHU2QTIxXHU1NzhCXHU5RUQ4XHU4QkE0XHU2ODYzXHU0RjREXHVGRjA4Iit1KyJcdUZGMDkiOiJcdTRGN0ZcdTc1MjhcdTZBMjFcdTU3OEJcdTlFRDhcdThCQTRcdTY4NjNcdTRGNEQifV0uY29uY2F0KGEubWFwKGZ1bmN0aW9uKG8pe3ZhciBzPVN0cmluZyhvLmVmZm9ydHx8IiIpLnRvTG93ZXJDYXNlKCk7cmV0dXJue2lkOlNtKHMpLGxhYmVsOnMsaGludDpvLmRlc2NyaXB0aW9ufHxzfX0pLmZpbHRlcihmdW5jdGlvbihvKXtyZXR1cm4gby5sYWJlbH0pKX1mdW5jdGlvbiBabihlLHQpe2Zvcih2YXIgbj1XaSh0KSxpPTA7aTxuLmxlbmd0aDtpKyspaWYobltpXS5pZD09PWUpcmV0dXJuIG5baV0ubGFiZWw7aWYodHlwZW9mIGU9PSJzdHJpbmciJiZlLmluZGV4T2YoImNvZGV4OiIpPT09MClyZXR1cm4gZS5zbGljZSg2KTtmb3IodmFyIGE9MDthPF9yLmxlbmd0aDthKyspaWYoX3JbYV0uaWQ9PT1lKXJldHVybiBfclthXS5sYWJlbDtyZXR1cm4iYXV0byJ9ZnVuY3Rpb24gRnUoZSl7cmV0dXJuIGUmJmUudGhpbmtpbmdFZmZvcnQ/ZS50aGlua2luZ0VmZm9ydDpyLmNoYXRUaGlua2luZz9yLmNoYXRUaGlua2luZzoib2ZmIn1mdW5jdGlvbiBCaChlKXtxbigpfWZ1bmN0aW9uIEltKGUpe3ZhciB0PShlfHwib2ZmIikudHJpbSgpLG49c3QoKSxpPVdpKG4pLnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT10fSk7aXx8KHQ9Im9mZiIpLHIuY2hhdFRoaW5raW5nPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIsdCl9Y2F0Y2h7fXFuKCksbiYmZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi90aGlua2luZy1lZmZvcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHt0aGlua2luZ0VmZm9ydDp0fSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYSYmYS5lcnJvcil7QShhLmVycm9yLCJlcnJvciIpO3JldHVybn1hJiZhLmlkJiYoWChhKSx0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQSgiXHU1REYyXHU1MjA3XHU2MzYyXHU2MDFEXHU4MDAzXHU2REYxXHU1RUE2IFx1MjE5MiAiK1puKHQsbiksInN1Y2Nlc3MiKSl9KS5jYXRjaChmdW5jdGlvbigpe0EoIlx1NTIwN1x1NjM2Mlx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBfbChlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLm1vZGU7cmV0dXJuIHQ9PT0ibWFuYWdlZCJ8fHQ9PT0iZnVsbC1hY2Nlc3MifWZ1bmN0aW9uIFRtKGUpe2lmKCFlfHxfbChlKSlyZXR1cm4iIjt2YXIgdD0hIWUuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztyZXR1cm4gdD8nPGJ1dHRvbiBpZD0iYXV0by1hcHByb3ZlLXRvZ2dsZSIgY2xhc3M9ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IgYWN0aXZlIiB0eXBlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0idHJ1ZSIgYXJpYS1sYWJlbD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiB0aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiPicrVigic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj48L2J1dHRvbj4nOic8YnV0dG9uIGlkPSJhdXRvLWFwcHJvdmUtdG9nZ2xlIiBjbGFzcz0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIiBhcmlhLWxhYmVsPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiIHRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiI+JytWKCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj48L2J1dHRvbj4nfWZ1bmN0aW9uIE5sKCl7cmV0dXJuIGZldGNoKCIvYXBpL21vZGVscyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkFycmF5LmlzQXJyYXkoZS5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9ZS5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KGUuY29kZXhNb2RlbHMpP2UuY29kZXhNb2RlbHM6W10sWG4oc3QoKSksVWkoZSksVmkoITEpKSxlfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pfWZ1bmN0aW9uIGpsKCl7aWYoci5tb2RlbHNSZWZyZXNoaW5nKXJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7ci5tb2RlbHNSZWZyZXNoaW5nPSEwO3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNjZmctZGVmYXVsdC1tb2RlbC1yZWZyZXNoLCAjY2ZnLWNvbW1pdC1tb2RlbC1yZWZyZXNoIik7cmV0dXJuIGUuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LGk9bi5xdWVyeVNlbGVjdG9yKCJzcGFuIik7bi5kaXNhYmxlZD0hMCxuLmNsYXNzTGlzdC5hZGQoImlzLWxvYWRpbmciKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1idXN5IiwidHJ1ZSIpLGkmJihpLnRleHRDb250ZW50PSJcdTY4QzBcdTZENEJcdTRFMkQiKX0pLGZldGNoKCIvYXBpL21vZGVscy9yZWZyZXNoIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZBcnJheS5pc0FycmF5KHQubW9kZWxzKSYmKHIuYXZhaWxhYmxlTW9kZWxzPXQubW9kZWxzLHIuYXZhaWxhYmxlQ29kZXhNb2RlbHM9QXJyYXkuaXNBcnJheSh0LmNvZGV4TW9kZWxzKT90LmNvZGV4TW9kZWxzOltdLFhuKHN0KCkpLFVpKHQpLFZpKCExKSx0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQSgiXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4XHU1REYyXHU1MjM3XHU2NUIwIisodC5jbGF1ZGVWZXJzaW9uPyJcdUZGMDhjbGF1ZGUgIit0LmNsYXVkZVZlcnNpb24rIlx1RkYwOSI6IiIpLCJzdWNjZXNzIikpLHR9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQSgiXHU1MjM3XHU2NUIwXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4XHU1OTMxXHU4RDI1IiwiZXJyb3IiKSxudWxsfSkuZmluYWxseShmdW5jdGlvbigpe3IubW9kZWxzUmVmcmVzaGluZz0hMSxlLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49dCxpPW4ucXVlcnlTZWxlY3Rvcigic3BhbiIpO24uZGlzYWJsZWQ9ITEsbi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1sb2FkaW5nIiksbi5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYnVzeSIpLGkmJihpLnRleHRDb250ZW50PSJcdTUyMzdcdTY1QjBcdTUyMTdcdTg4NjgiKX0pfSl9ZnVuY3Rpb24gTG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbW9kYWwiKTtpZighZSl7ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIiksZS5pZD0iZW52LXByZXZpZXctbW9kYWwiLGUuY2xhc3NOYW1lPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iLGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtb2RhbCBlbnYtcHJldmlldy1tb2RhbCIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9ImVudi1wcmV2aWV3LXRpdGxlIiBhcmlhLW1vZGFsPSJ0cnVlIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSIgaWQ9ImVudi1wcmV2aWV3LXRpdGxlIj5cdTVDMDZcdTZDRThcdTUxNjVcdTVCNTBcdThGREJcdTdBMEJcdTc2ODRcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0Y8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSIgaWQ9ImVudi1wcmV2aWV3LXN1YnRpdGxlIj5cdThGRDlcdTRFOUJcdTUzRDhcdTkxQ0ZcdTRGMUFcdTg4QUJcdTRGMjBcdTdFRDkgY2xhdWRlIC8gY29kZXhcdUZGMDhQVFkgXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RkQwXHU4ODRDXHU1NjY4XHU0RTAwXHU4MUY0XHVGRjA5XHUzMDAyPC9wPjwvZGl2PjxidXR0b24gaWQ9ImVudi1wcmV2aWV3LWNsb3NlIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSBlbnYtcHJldmlldy1ib2R5Ij48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy10b29sYmFyIj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1tZXRhIiBpZD0iZW52LXByZXZpZXctbWV0YSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctY29udHJvbHMiPjxpbnB1dCBpZD0iZW52LXByZXZpZXctc2VhcmNoIiBjbGFzcz0iZW52LXByZXZpZXctc2VhcmNoIiB0eXBlPSJzZWFyY2giIHBsYWNlaG9sZGVyPSJcdTY0MUNcdTdEMjJcdTUzRDhcdTkxQ0ZcdTU0MERcdTIwMjYiIC8+PGxhYmVsIGNsYXNzPSJlbnYtcHJldmlldy1yZXZlYWwiPjxpbnB1dCBpZD0iZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giIC8+PHNwYW4+XHU2NjNFXHU3OTNBXHU2NTRGXHU2MTFGXHU1MDNDPC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbGlzdCIgaWQ9ImVudi1wcmV2aWV3LWxpc3QiIHRhYmluZGV4PSIwIj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIgZW52LXByZXZpZXctZm9vdGVyIj48c3BhbiBjbGFzcz0iZW52LXByZXZpZXctaGludCI+XHU2NTRGXHU2MTFGXHU1QjU3XHU2QkI1XHVGRjA4XHU1NDJCIEtFWS9UT0tFTi9TRUNSRVQgXHU3QjQ5XHVGRjA5XHU5RUQ4XHU4QkE0XHU2M0E5XHU3ODAxXHVGRjBDXHU1M0VGXHU1MkZFXHU5MDA5XHUzMDBDXHU2NjNFXHU3OTNBXHU2NTRGXHU2MTFGXHU1MDNDXHUzMDBEXHU0RTM0XHU2NUY2XHU4RkQ4XHU1MzlGXHUzMDAyPC9zcGFuPjxidXR0b24gaWQ9ImVudi1wcmV2aWV3LWNsb3NlLTIiIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiI+XHU1MTczXHU5NUVEPC9idXR0b24+PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHMpe3MudGFyZ2V0PT09ZSYmd3UoKX0pO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LWNsb3NlIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsd3UpO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LWNsb3NlLTIiKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix3dSk7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctc2VhcmNoIik7YSYmYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtXbCgpfSk7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe1JsKGkuY2hlY2tlZCl9KX1lLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXJldmVhbC10b2dnbGUiKTtpJiYoaS5jaGVja2VkPSExKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1zZWFyY2giKTthJiYoYS52YWx1ZT0iIiksUmwoITEpfWZ1bmN0aW9uIHd1KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LW1vZGFsIik7ZSYmQXUoZSl9ZnVuY3Rpb24gUmwoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LWxpc3QiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1tZXRhIik7dCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2Iik7dmFyIGk9Ii9hcGkvc2V0dGluZ3MvZW52LXByZXZpZXciKyhlPyI/cmV2ZWFsPTEiOiIiKTtmZXRjaChpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKCFhfHwhQXJyYXkuaXNBcnJheShhLmVudHJpZXMpKXt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdThCRkJcdTUzRDZcdTU5MzFcdThEMjVcdTMwMDI8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1Iik7cmV0dXJufWlmKHIuX2VudlByZXZpZXc9YSxuKXt2YXIgdT1hLmluaGVyaXRFbnY/Ilx1N0VFN1x1NjI3Rlx1NzIzNlx1OEZEQlx1N0EwQiI6Ilx1NjcwMFx1NUMwRlx1NzY3RFx1NTQwRFx1NTM1NSI7bi5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1waWxsICcrKGEuaW5oZXJpdEVudj8iaXMtaW5oZXJpdCI6ImlzLW1pbmltYWwiKSsnIj4nK3UrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZW52LXByZXZpZXctY291bnQiPlx1NTE3MSAnK2EudG90YWwrIiBcdTk4Nzk8L3NwYW4+In1XbCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdThCRkJcdTUzRDZcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDI8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1Iil9KX1mdW5jdGlvbiBXbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1saXN0Iik7aWYoZSl7dmFyIHQ9ci5fZW52UHJldmlldztpZighdHx8IUFycmF5LmlzQXJyYXkodC5lbnRyaWVzKSl7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdTVDMUFcdTY3MkFcdTUyQTBcdThGN0RcdTMwMDI8L2Rpdj4nO3JldHVybn1mb3IodmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LXNlYXJjaCIpLGk9KG4mJm4udmFsdWV8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxhPSIiLHU9MCxvPTA7bzx0LmVudHJpZXMubGVuZ3RoO28rKyl7dmFyIHM9dC5lbnRyaWVzW29dO2lmKCEoaSYmcy5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpKT09PS0xKSl7dSsrO3ZhciBsPXR5cGVvZiBzLnZhbHVlPT0ic3RyaW5nIiYmcy52YWx1ZS5jaGFyQXQoMCk9PT0iPCImJnMudmFsdWUuY2hhckF0KHMudmFsdWUubGVuZ3RoLTEpPT09Ij4iO2ErPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1yb3cnKyhzLnNlbnNpdGl2ZT8iIGlzLXNlbnNpdGl2ZSI6IiIpKyciPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LW5hbWUiPicrcChzLm5hbWUpKyhzLnNlbnNpdGl2ZT8nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWJhZGdlIiB0aXRsZT0iXHU4OEFCXHU4QkM2XHU1MjJCXHU0RTNBXHU2NTRGXHU2MTFGXHU1QjU3XHU2QkI1Ij5cdTY1NEZcdTYxMUY8L3NwYW4+JzoiIikrKGw/JzxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1iYWRnZSBlbnYtcHJldmlldy1iYWRnZS1ydW50aW1lIiB0aXRsZT0iXHU2MzA5XHU0RjFBXHU4QkREXHU1MkE4XHU2MDAxXHU2Q0U4XHU1MTY1Ij5cdThGRDBcdTg4NENcdTY1RjY8L3NwYW4+JzoiIikrJzwvZGl2PjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXZhbHVlJysobD8iIGlzLXJ1bnRpbWUiOiIiKSsnIiB0aXRsZT0iJytwKFN0cmluZyhzLnZhbHVlKSkrJyI+JytwKFN0cmluZyhzLnZhbHVlKSkrJzwvZGl2PjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxlbiI+JytzLmxlbmd0aCsiIFx1NUI1N1x1N0IyNjwvZGl2PjwvZGl2PiJ9fXU9PT0wJiYoYT0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1NkNBMVx1NjcwOVx1NTMzOVx1OTE0RFx1NzY4NFx1NTNEOFx1OTFDRlx1MzAwMjwvZGl2PicpLGUuaW5uZXJIVE1MPWF9fWZ1bmN0aW9uIHpsKGUpe3JldHVybiBlPT09ImNvZGV4Ij9yLmF2YWlsYWJsZUNvZGV4TW9kZWxzfHxbXTpyLmF2YWlsYWJsZU1vZGVsc3x8W119ZnVuY3Rpb24gVmwoZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKT09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIixuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0IiksaT1lLmNsb3Nlc3QoIi5zZXR0aW5ncy1tb2RlbC1maWVsZCIpLGE9aT9pLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLW1vZGVsLXN0YXR1c10iKTpudWxsO2lmKCEoIW58fCFhKSl7Zm9yKHZhciB1PShuLnZhbHVlfHwiIikudHJpbSgpLG89emwodCkscz1udWxsLGw9MDtsPG8ubGVuZ3RoO2wrKylpZihvW2xdLmlkPT09dSl7cz1vW2xdO2JyZWFrfWlmKGEuY2xhc3NMaXN0LnJlbW92ZSgiaXMtY3VzdG9tIiwiaXMta25vd24iKSwhdSl7YS50ZXh0Q29udGVudD0iXHU4RERGXHU5NjhGIENMSSBcdTlFRDhcdThCQTQiO3JldHVybn1pZihzKXthLnRleHRDb250ZW50PSJcdTVERjJcdTY4QzBcdTZENEJcdTUyMzAiLGEuY2xhc3NMaXN0LmFkZCgiaXMta25vd24iKTtyZXR1cm59YS50ZXh0Q29udGVudD0iXHU4MUVBXHU1QjlBXHU0RTQ5XHU1NDBEXHU3OUYwIixhLmNsYXNzTGlzdC5hZGQoImlzLWN1c3RvbSIpfX19ZnVuY3Rpb24gTnIoZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKT09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIixuPWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0IiksaT1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1tZW51Iik7aWYoISghbnx8IWkpKXtmb3IodmFyIGE9bi52YWx1ZXx8IiIsdT1hLnRyaW0oKSxvPWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy1maWx0ZXJpbmciKT91LnRvTG93ZXJDYXNlKCk6IiIscz16bCh0KSxsPW51bGwsZD0hMSxmPVtdLGM9MDtjPHMubGVuZ3RoO2MrKyl7dmFyIHY9c1tjXTtpZih2LmlkPT09ImRlZmF1bHQiKXtsPXY7Y29udGludWV9di5pZD09PXUmJihkPSEwKTt2YXIgaD12LmxhYmVsfHx2LmlkO28mJnYuaWQudG9Mb3dlckNhc2UoKS5pbmRleE9mKG8pPT09LTEmJmgudG9Mb3dlckNhc2UoKS5pbmRleE9mKG8pPT09LTF8fGYucHVzaCh7dmFsdWU6di5pZCxsYWJlbDpoLG1ldGE6aD09PXYuaWQ/Ilx1NURGMlx1NjhDMFx1NkQ0Qlx1NkEyMVx1NTc4QiI6di5pZCxjdXN0b206ITF9KX12YXIgZz10PT09ImNvZGV4Ij8iXHU4RERGXHU5NjhGIENvZGV4IFx1OUVEOFx1OEJBNCI6Ilx1OERERlx1OTY4RiBDbGF1ZGUgQ29kZSBcdTlFRDhcdThCQTQiLG09bCYmbC5sYWJlbD9sLmxhYmVsOiJcdTRFMERcdTRGMjAgLS1tb2RlbCBcdTUzQzJcdTY1NzAiLHk9IiI7KCFvfHxnLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihvKSE9PS0xfHxtLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihvKSE9PS0xKSYmKHkrPSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbicrKHU/IiI6IiBpcy1zZWxlY3RlZCIpKyciIHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0iJysodT8iZmFsc2UiOiJ0cnVlIikrJyIgZGF0YS1tb2RlbC12YWx1ZT0iIj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWNoZWNrIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Im01IDEyIDQgNEwxOSA2Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tY29weSI+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1sYWJlbCI+JytwKGcpKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1tZXRhIj4nK3AobSkrIjwvc3Bhbj48L3NwYW4+PC9idXR0b24+Iik7Zm9yKHZhciBDPTA7QzxmLmxlbmd0aDtDKyspe3ZhciBFPWZbQ10sQj1FLnZhbHVlPT09dTt5Kz0nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24nKyhCPyIgaXMtc2VsZWN0ZWQiOiIiKSsnIiByb2xlPSJvcHRpb24iIGFyaWEtc2VsZWN0ZWQ9IicrKEI/InRydWUiOiJmYWxzZSIpKyciIGRhdGEtbW9kZWwtdmFsdWU9IicrcChFLnZhbHVlKSsnIj48c3BhbiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uLWNoZWNrIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Im01IDEyIDQgNEwxOSA2Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tY29weSI+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1sYWJlbCI+JytwKEUubGFiZWwpKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1tZXRhIj4nK3AoRS5tZXRhKSsiPC9zcGFuPjwvc3Bhbj48L2J1dHRvbj4ifXUmJiFkJiYoeSs9JzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZWwtY29tYm9ib3gtb3B0aW9uIG1vZGVsLWNvbWJvYm94LW9wdGlvbi1jdXN0b20gaXMtc2VsZWN0ZWQiIHJvbGU9Im9wdGlvbiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSIgZGF0YS1tb2RlbC12YWx1ZT0iJytwKHUpKyciPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tY3VzdG9tLWljb24iIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE1IiBoZWlnaHQ9IjE1IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMGg5Ii8+PHBhdGggZD0iTTE2LjUgMy41YTIuMSAyLjEgMCAwIDEgMyAzTDggMThsLTQgMSAxLTRaIi8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tY29weSI+PHNwYW4gY2xhc3M9Im1vZGVsLWNvbWJvYm94LW9wdGlvbi1sYWJlbCI+XHU0RjdGXHU3NTI4XHU4MUVBXHU1QjlBXHU0RTQ5XHU1NDBEXHU3OUYwPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlbC1jb21ib2JveC1vcHRpb24tbWV0YSI+JytwKHUpKyI8L3NwYW4+PC9zcGFuPjwvYnV0dG9uPiIpLHl8fCh5PSc8ZGl2IGNsYXNzPSJtb2RlbC1jb21ib2JveC1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1MzM5XHU5MTREXHU3Njg0XHU2QTIxXHU1NzhCXHVGRjBDXHU1M0VGXHU0RUU1XHU3RUU3XHU3RUVEXHU4RjkzXHU1MTY1XHU4MUVBXHU1QjlBXHU0RTQ5XHU1NDBEXHU3OUYwXHUzMDAyPC9kaXY+JyksaS5pbm5lckhUTUw9eTtmb3IodmFyIEQ9aS5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3gtb3B0aW9uIiksRj0tMSxJPTA7STxELmxlbmd0aDtJKyspaWYoRFtJXS5nZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiKT09PSJ0cnVlIil7Rj1JO2JyZWFrfWUuX3dhbmRNb2RlbEFjdGl2ZUluZGV4PUY+PTA/RjpELmxlbmd0aD8wOi0xLFVsKGUpLFZsKGUpfX19ZnVuY3Rpb24gVWwoZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtbWVudSIpLG49ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKTtpZighKCF0fHwhbikpe2Zvcih2YXIgaT10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC1vcHRpb24iKSxhPXR5cGVvZiBlLl93YW5kTW9kZWxBY3RpdmVJbmRleD09Im51bWJlciI/ZS5fd2FuZE1vZGVsQWN0aXZlSW5kZXg6LTEsdT0wO3U8aS5sZW5ndGg7dSsrKWlbdV0uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtYWN0aXZlIix1PT09YSksdT09PWEmJihpW3VdLmlkfHwoaVt1XS5pZD0odC5pZHx8Im1vZGVsLWxpc3Rib3giKSsiLW9wdGlvbi0iK3UpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLGlbdV0uaWQpKTthPDAmJm4ucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiKX19fWZ1bmN0aW9uIHppKGUpe2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0Iiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1tZW51Iik7IXR8fCFufHwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94LmlzLW9wZW4iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2khPT1lJiZ2bihpKX0pLE5yKGUpLGUuY2xhc3NMaXN0LmFkZCgiaXMtb3BlbiIpLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksdC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIikpfX1mdW5jdGlvbiB2bihlKXtpZihlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLG49ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtbWVudSIpO2UuY2xhc3NMaXN0LnJlbW92ZSgiaXMtb3BlbiIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaXMtZmlsdGVyaW5nIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiYodC5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLHQucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiKSl9fWZ1bmN0aW9uIEtsKGUsdCl7aWYoZSl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIubW9kZWwtY29tYm9ib3gtaW5wdXQiKTtpZihuKXt2YXIgaT1kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09bjtuLnZhbHVlPXR8fCIiLG4uZGF0YXNldC5tb2RlbEluaXRpYWxpemVkPSJ0cnVlIixuLmRhdGFzZXQubW9kZWxEaXJ0eT0idHJ1ZSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1maWx0ZXJpbmciKSxWbChlKSx2bihlKSxpJiZuLmZvY3VzKCl9fX1mdW5jdGlvbiBNbSgpe3dpbmRvdy5fX3dhbmRTZXR0aW5nc01vZGVsT3V0c2lkZUJvdW5kfHwod2luZG93Ll9fd2FuZFNldHRpbmdzTW9kZWxPdXRzaWRlQm91bmQ9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0O2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC5pcy1vcGVuIikuZm9yRWFjaChmdW5jdGlvbihpKXsoIW58fCFpLmNvbnRhaW5zKG4pKSYmdm4oaSl9KX0pKTt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubW9kZWwtY29tYm9ib3giKTtlLmZvckVhY2goZnVuY3Rpb24odCl7aWYodC5kYXRhc2V0LmJvdW5kIT09InRydWUiKXt0LmRhdGFzZXQuYm91bmQ9InRydWUiO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LWlucHV0IiksaT10LnF1ZXJ5U2VsZWN0b3IoIi5tb2RlbC1jb21ib2JveC10b2dnbGUiKSxhPXQucXVlcnlTZWxlY3RvcigiLm1vZGVsLWNvbWJvYm94LW1lbnUiKTshbnx8IWl8fCFhfHwobi5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXt6aSh0KX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7bi5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9InRydWUiLG4uZGF0YXNldC5tb2RlbERpcnR5PSJ0cnVlIix0LmNsYXNzTGlzdC5hZGQoImlzLWZpbHRlcmluZyIpLHppKHQpfSksbi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih1KXtpZih1LmtleT09PSJFc2NhcGUiKXt1LnByZXZlbnREZWZhdWx0KCksdm4odCk7cmV0dXJufWlmKCEodS5rZXkhPT0iQXJyb3dEb3duIiYmdS5rZXkhPT0iQXJyb3dVcCImJnUua2V5IT09IkVudGVyIikpe2lmKCF0LmNsYXNzTGlzdC5jb250YWlucygiaXMtb3BlbiIpKXtpZih1LmtleT09PSJFbnRlciIpcmV0dXJuO3ppKHQpfXZhciBvPWEucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94LW9wdGlvbiIpO2lmKG8ubGVuZ3RoKXt1LnByZXZlbnREZWZhdWx0KCk7dmFyIHM9dHlwZW9mIHQuX3dhbmRNb2RlbEFjdGl2ZUluZGV4PT0ibnVtYmVyIj90Ll93YW5kTW9kZWxBY3RpdmVJbmRleDotMTtpZih1LmtleT09PSJBcnJvd0Rvd24iJiYocz1zPG8ubGVuZ3RoLTE/cysxOjApLHUua2V5PT09IkFycm93VXAiJiYocz1zPjA/cy0xOm8ubGVuZ3RoLTEpLHQuX3dhbmRNb2RlbEFjdGl2ZUluZGV4PXMsVWwodCksdS5rZXk9PT0iRW50ZXIiKXt2YXIgbD1vW3NdO2wmJktsKHQsbC5nZXRBdHRyaWJ1dGUoImRhdGEtbW9kZWwtdmFsdWUiKXx8IiIpfWVsc2V7dmFyIGQ9b1tzXTtkJiZ0eXBlb2YgZC5zY3JvbGxJbnRvVmlldz09ImZ1bmN0aW9uIiYmZC5zY3JvbGxJbnRvVmlldyh7YmxvY2s6Im5lYXJlc3QifSl9fX19KSxpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24odSl7dS5wcmV2ZW50RGVmYXVsdCgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5jb250YWlucygiaXMtb3BlbiIpP3ZuKHQpOnppKHQpfSksYS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKHUpe3UucHJldmVudERlZmF1bHQoKX0pLGEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHUpe3ZhciBvPXUudGFyZ2V0LmNsb3Nlc3QoIi5tb2RlbC1jb21ib2JveC1vcHRpb24iKTtvJiZLbCh0LG8uZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGVsLXZhbHVlIil8fCIiKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe3QuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCl8fHZuKHQpfSwwKX0pLE5yKHQpKX19KX1mdW5jdGlvbiBWaShlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1jbGkiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsLWNvbWJvYm94IiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1tb2RlbCIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jb21taXQtbW9kZWwtcHJvdmlkZXIiKTtpZighKCF0fHwhbnx8IWkpKXt2YXIgdT10LnZhbHVlPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiO24uc2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIix1KSxpLnBsYWNlaG9sZGVyPXU9PT0iY29kZXgiPyJcdThEREZcdTk2OEYgQ29kZXggXHU5RUQ4XHU4QkE0IjoiXHU4RERGXHU5NjhGIENsYXVkZSBDb2RlIFx1OUVEOFx1OEJBNCIsYSYmKGEudGV4dENvbnRlbnQ9dT09PSJjb2RleCI/IkNvZGV4IENMSSI6IkNsYXVkZSBDb2RlIiksZSYmKGkudmFsdWU9IiIsaS5kYXRhc2V0Lm1vZGVsRGlydHk9InRydWUiKSxOcihuKX19ZnVuY3Rpb24gVWkoZSl7dmFyIHQ9eXUoKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpO2lmKG4pe24uZGF0YXNldC5tb2RlbEluaXRpYWxpemVkIT09InRydWUiJiYobi52YWx1ZT1yLmNvbmZpZ0RlZmF1bHRNb2RlbHMmJnIuY29uZmlnRGVmYXVsdE1vZGVscy5jbGF1ZGV8fHQuY2xhdWRlfHwiIixuLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0idHJ1ZSIpO3ZhciBpPW4uY2xvc2VzdCgiLm1vZGVsLWNvbWJvYm94Iik7aSYmTnIoaSl9dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIik7aWYoYSl7YS5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQhPT0idHJ1ZSImJihhLnZhbHVlPXIuY29uZmlnRGVmYXVsdE1vZGVscyYmci5jb25maWdEZWZhdWx0TW9kZWxzLmNvZGV4fHx0LmNvZGV4fHwiIixhLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0idHJ1ZSIpO3ZhciB1PWEuY2xvc2VzdCgiLm1vZGVsLWNvbWJvYm94Iik7dSYmTnIodSl9dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXZlcnNpb24iKTtvJiZlJiYoby50ZXh0Q29udGVudD1lLmNsYXVkZVZlcnNpb24/Ilx1NURGMlx1NjhDMFx1NkQ0Qlx1NTIzMCBDbGF1ZGUgQ0xJICIrZS5jbGF1ZGVWZXJzaW9uKyJcdUZGMUJcdTUyMTdcdTg4NjhcdTVERjJcdTU0MENcdTY1RjZcdTU0MENcdTZCNjUgQ29kZXggXHU1M0VGXHU3NTI4XHU2QTIxXHU1NzhCXHUzMDAyIjoiXHU2NzJBXHU4QkZCXHU1M0Q2XHU1MjMwIENsYXVkZSBDTEkgXHU3MjQ4XHU2NzJDXHVGRjFCXHU0RUNEXHU1M0VGXHU3NkY0XHU2M0E1XHU4RjkzXHU1MTY1XHU4MUVBXHU1QjlBXHU0RTQ5XHU2QTIxXHU1NzhCXHU1NDBEXHU3OUYwXHUzMDAyIil9ZnVuY3Rpb24gc3QoKXtpZighci5zZWxlY3RlZElkKXJldHVybiBudWxsO2Zvcih2YXIgZT0wO2U8ci5zZXNzaW9ucy5sZW5ndGg7ZSsrKWlmKHIuc2Vzc2lvbnNbZV0uaWQ9PT1yLnNlbGVjdGVkSWQpcmV0dXJuIHIuc2Vzc2lvbnNbZV07cmV0dXJuIG51bGx9ZnVuY3Rpb24gcW0oZSl7dmFyIHQ9KGV8fCIiKS50cmltKCksbj1zdCgpLGk9aHUobik7YnUoaSx0KSxxbigpLG4mJmZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KG4uaWQpKyIvbW9kZWwiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHttb2RlbDp0fHxudWxsfSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYSYmYS5lcnJvcil7QShhLmVycm9yLCJlcnJvciIpO3JldHVybn1pZihhJiZhLmlkJiYoWChhKSxxbigpLHR5cGVvZiBBPT0iZnVuY3Rpb24iKSl7dmFyIHU9X2kodCxuKSxvPW4ucHJvdmlkZXI9PT0iY29kZXgiPyJcdUZGMDhcdTRFMEJcdTZCMjFcdTVCRjlcdThCRERcdTc1MUZcdTY1NDhcdUZGMDkiOiIiO0EoIlx1NURGMlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4QiBcdTIxOTIgIit1K28sInN1Y2Nlc3MiKX19KS5jYXRjaChmdW5jdGlvbigpe0EoIlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4Qlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBQbShlKXt2YXIgdD1tdChydCgpLChlfHwiZGVmYXVsdCIpLnRyaW0oKSk7ci5jaGF0TW9kZT10LHFuKCk7dmFyIG49c3QoKTtpZighbnx8IW4uaWR8fG4uc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIpe0EmJkEoIlx1NjVCMFx1NEYxQVx1OEJERFx1NkEyMVx1NUYwRlx1RkYxQSIrdCwiaW5mbyIpO3JldHVybn1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL21vZGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHttb2RlOnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtBKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGkmJmkuaWQmJihYKGkpLHR5cGVvZiBBPT0iZnVuY3Rpb24iKSl7dmFyIGE9bi5wcm92aWRlcj09PSJjb2RleCI/Ilx1RkYwOENvZGV4IFx1NTZGQVx1NUI5QVx1NTE2OFx1Njc0M1x1OTY1MFx1RkYwOSI6IiI7QSgiXHU1REYyXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGIFx1MjE5MiAiK3QrYSwic3VjY2VzcyIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7QSgiXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGXHU1OTMxXHU4RDI1IiwiZXJyb3IiKX0pfWZ1bmN0aW9uIEpsKGUsdCxuLGkpe3ZhciBhPXIuc2Vzc2lvblRvb2w9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsdT1PcihhKSxvPXIuY2hhdFRoaW5raW5nfHwib2ZmIixzPXtjd2Q6dHx8JGUoKSxtb2RlOm58fHIuY2hhdE1vZGV8fHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiLHByb3ZpZGVyOmEscnVubmVyOmE9PT0iY29kZXgiPyJjb2RleC1jbGktZXhlYyI6ci5jb25maWcmJnIuY29uZmlnLnN0cnVjdHVyZWRSdW5uZXI9PT0ic2RrIj8iY2xhdWRlLXNkayI6ci5zdHJ1Y3R1cmVkUnVubmVyfHwiY2xhdWRlLWNsaS1wcmludCIscHJvbXB0OmV8fHZvaWQgMCx3b3JrdHJlZUVuYWJsZWQ6aT09PSEwLG1vZGVsOnV8fHZvaWQgMCx0aGlua2luZ0VmZm9ydDpvfTtyZXR1cm4gZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkocyl9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obCl7aWYobC5lcnJvcil0aHJvdyBuZXcgRXJyb3IobC5lcnJvcik7cmV0dXJuIHIuc2VsZWN0ZWRJZD1sLmlkLGhlKCksci5kcmFmdHNbbC5pZF09IiIsd3QoKSxYKGwpLHBlKCksU3IobC5pZCksUG4obC5pZCksZ24obC5pZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBsfSl9KX1mdW5jdGlvbiBLaSgpe3ZhciBlPSEhci5zZWxlY3RlZElkLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0IiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpLGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ci5zZWxlY3RlZElkfSksdT11ZShhKSxvPWUmJiF1JiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIixzPWUmJih1fHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIik7dT9yLmN1cnJlbnRWaWV3PSJjaGF0IjplfHwoci5jdXJyZW50Vmlldz0idGVybWluYWwiKSx0JiYodC5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLG8pLHQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhbykpLG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIscyksbi5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFzKSksaSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLGUpLG4mJnMmJnR1KG4pLGxyKCksR2UoKSxJcigpfWZ1bmN0aW9uIGVyKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUtZGVzY3JpcHRpb24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtZGVzY3JpcHRpb24iKSxuPXIuc2Vzc2lvblRvb2x8fCJjbGF1ZGUiLGk9ci5zZXNzaW9uQ3JlYXRlS2luZHx8InN0cnVjdHVyZWQiO3Iuc2Vzc2lvblRvb2w9bixyLm1vZGVWYWx1ZT1tdChuLHIubW9kZVZhbHVlfHxyLmNoYXRNb2RlfHwiZGVmYXVsdCIpO3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNwcm92aWRlci1jYXJkcyAucHJvdmlkZXItY2FyZCIpO2EubGVuZ3RoJiZhLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIGw9cy5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKTtzLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsbD09PW4pLHMuY2xhc3NMaXN0LnJlbW92ZSgiZGlzYWJsZWQiKX0pO3ZhciB1PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNzZXNzaW9uLWtpbmQtY2FyZHMgLnNlc3Npb24ta2luZC1jYXJkIik7dS5sZW5ndGgmJnUuZm9yRWFjaChmdW5jdGlvbihzKXt2YXIgbD1zLmdldEF0dHJpYnV0ZSgiZGF0YS1zZXNzaW9uLWtpbmQiKSxkPSExO3MuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixsPT09aSkscy5jbGFzc0xpc3QudG9nZ2xlKCJkaXNhYmxlZCIsZCl9KTt2YXIgbz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjbW9kZS1jYXJkcyAubW9kZS1jYXJkIik7by5sZW5ndGgmJm8uZm9yRWFjaChmdW5jdGlvbihzKXtzLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIscy5nZXRBdHRyaWJ1dGUoImRhdGEtbW9kZSIpPT09ci5tb2RlVmFsdWUpfSksdCYmKHQudGV4dENvbnRlbnQ9eG8oaSkpLGUmJihlLnRleHRDb250ZW50PWtsKG4sci5tb2RlVmFsdWUpKX1mdW5jdGlvbiBPbShlLHQsbixpKXt2YXIgYT1ufHwwLHU9dHlwZW9mIGk9PSJudW1iZXIiP2k6TWF0aC5tYXgoYSt0Lmxlbmd0aCx0Lmxlbmd0aCksbz1lJiZBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpP2UubWVzc2FnZXM6W10scz1lJiZ0eXBlb2YgZS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIj9lLm1lc3NhZ2VPZmZzZXQ6MDtpZih0Lmxlbmd0aD09PTAmJm8ubGVuZ3RoPjAmJnU9PT0wKXJldHVybnttZXNzYWdlczpvLG1lc3NhZ2VPZmZzZXQ6cyxtZXNzYWdlVG90YWw6ZSYmZS5tZXNzYWdlVG90YWx8fG8ubGVuZ3RofTtpZihvLmxlbmd0aD09PTApcmV0dXJue21lc3NhZ2VzOnQsbWVzc2FnZU9mZnNldDphLG1lc3NhZ2VUb3RhbDp1fTtpZihzPD1hKXt2YXIgbD1NYXRoLm1pbihNYXRoLm1heChhLXMsMCksby5sZW5ndGgpLGQ9by5zbGljZSgwLGwpLmNvbmNhdCh0KTtyZXR1cm57bWVzc2FnZXM6ZCxtZXNzYWdlT2Zmc2V0OnMsbWVzc2FnZVRvdGFsOk1hdGgubWF4KHUscytkLmxlbmd0aCl9fXJldHVybnttZXNzYWdlczp0LG1lc3NhZ2VPZmZzZXQ6YSxtZXNzYWdlVG90YWw6dX19ZnVuY3Rpb24gWChlKXtpZighKCFlfHwhZS5pZCkpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWUuaWR9KXx8bnVsbCxuPUlkKGUsdCk7aWYoQXJyYXkuaXNBcnJheShuLm1lc3NhZ2VzKSYmdHlwZW9mIG4ubWVzc2FnZU9mZnNldD09Im51bWJlciIpe3ZhciBpPU9tKHQsbi5tZXNzYWdlcyxuLm1lc3NhZ2VPZmZzZXQsbi5tZXNzYWdlVG90YWwpO24ubWVzc2FnZXM9aS5tZXNzYWdlcyxuLm1lc3NhZ2VPZmZzZXQ9aS5tZXNzYWdlT2Zmc2V0LG4ubWVzc2FnZVRvdGFsPWkubWVzc2FnZVRvdGFsfXZhciBhPSExLHU9bnVsbDtyLnNlc3Npb25zPXIuc2Vzc2lvbnMubWFwKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkIT09bi5pZD9zOih1PXMsYT0hMCxPYmplY3QuYXNzaWduKHt9LHMsbikpfSksYXx8ci5zZXNzaW9ucy51bnNoaWZ0KG4pO3ZhciBvPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PW4uaWR9KXx8bjtvJiZBcnJheS5pc0FycmF5KG8ucXVldWVkTWVzc2FnZXMpJiZuLmlkPT09ci5zZWxlY3RlZElkJiYodGkobyksSnUoKSxkbigpKSxuLmlkPT09ci5zZWxlY3RlZElkJiYoSmEoKSxZdCgpKSxuLnN0YXR1cyYmbi5zdGF0dXMhPT0icnVubmluZyImJnIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPjAmJnNldFRpbWVvdXQod2ksMCl9fWZ1bmN0aW9uIFBuKGUpeyFlfHwhci53c3x8ci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU58fHIud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToic3Vic2NyaWJlIixzZXNzaW9uSWQ6ZX0pKX1mdW5jdGlvbiBIbShlLHQpe2lmKCFlKXJldHVybiB0O3ZhciBuPU9iamVjdC5hc3NpZ24oe30sZSx0KSxpPWUub3V0cHV0fHwiIixhPXQub3V0cHV0fHwiIix1PWkubGVuZ3RoPmEubGVuZ3RoLG89ZS5zdHJ1Y3R1cmVkU3RhdGV8fG51bGwscz10LnN0cnVjdHVyZWRTdGF0ZXx8bnVsbCxsPWUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCJ8fHQuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIsZD0hIShlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aCYmKGZ1bmN0aW9uKCl7dmFyIG09ZS5tZXNzYWdlc1tlLm1lc3NhZ2VzLmxlbmd0aC0xXTtyZXR1cm4gbSYmbS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkobS5jb250ZW50KSYmbS5jb250ZW50LnNvbWUoZnVuY3Rpb24oeSl7cmV0dXJuIHkmJnkuX19wcm9jZXNzaW5nfSl9KSgpKSxmPUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcyk/bD9jcihlLm1lc3NhZ2VzKTplLm1lc3NhZ2VzOltdLGM9QXJyYXkuaXNBcnJheSh0Lm1lc3NhZ2VzKT9sP2NyKHQubWVzc2FnZXMpOnQubWVzc2FnZXM6W10sdj1jLmxlbmd0aD4wJiYoZnVuY3Rpb24oKXt2YXIgbT1jW2MubGVuZ3RoLTFdO3JldHVybiBtJiZtLnJvbGU9PT0iYXNzaXN0YW50IiYmQXJyYXkuaXNBcnJheShtLmNvbnRlbnQpJiYhbS5jb250ZW50LnNvbWUoZnVuY3Rpb24oeSl7cmV0dXJuIHkmJnkuX19wcm9jZXNzaW5nfSl9KSgpLGg9ZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIiYmISFvJiZvLmluRmxpZ2h0PT09ITAmJighc3x8cy5pbkZsaWdodCE9PSEwKSYmZCYmISFvLmFjdGl2ZVJlcXVlc3RJZCYmISFzJiYhIXMuYWN0aXZlUmVxdWVzdElkJiZzLmFjdGl2ZVJlcXVlc3RJZD09PW8uYWN0aXZlUmVxdWVzdElkJiYhdixnPWYubGVuZ3RoPmMubGVuZ3RofHxmLmxlbmd0aD4wJiZjLmxlbmd0aD4wJiZKU09OLnN0cmluZ2lmeShmW2YubGVuZ3RoLTFdKSE9PUpTT04uc3RyaW5naWZ5KGNbYy5sZW5ndGgtMV0pJiZKU09OLnN0cmluZ2lmeShmKS5sZW5ndGg+SlNPTi5zdHJpbmdpZnkoYykubGVuZ3RoO3JldHVybiB1JiYobi5vdXRwdXQ9aSksaCYmKG4uc3RhdHVzPWUuc3RhdHVzfHxuLnN0YXR1cyxuLnN0cnVjdHVyZWRTdGF0ZT1PYmplY3QuYXNzaWduKHt9LHN8fHt9LG8se2luRmxpZ2h0OiEwfSksbi5tZXNzYWdlcz1lLm1lc3NhZ2VzKSxnJiYobi5tZXNzYWdlcz1mKSxlLmlkPT09ci5zZWxlY3RlZElkJiYoZS5wZXJtaXNzaW9uQmxvY2tlZCYmdC5wZXJtaXNzaW9uQmxvY2tlZD09PSExfHxlLnBlcm1pc3Npb25CbG9ja2VkJiYhdC5wZXJtaXNzaW9uQmxvY2tlZCYmKG4ucGVybWlzc2lvbkJsb2NrZWQ9ITApLGUucGVuZGluZ0VzY2FsYXRpb24mJiF0LnBlbmRpbmdFc2NhbGF0aW9uJiZ0LnBlcm1pc3Npb25CbG9ja2VkIT09ITEmJihuLnBlbmRpbmdFc2NhbGF0aW9uPWUucGVuZGluZ0VzY2FsYXRpb24pLGUubWVzc2FnZXMmJmUubWVzc2FnZXMubGVuZ3RoPjAmJighdC5tZXNzYWdlc3x8dC5tZXNzYWdlcy5sZW5ndGg9PT0wKSYmKG4ubWVzc2FnZXM9ZS5tZXNzYWdlcykpLG59ZnVuY3Rpb24gWGUoZSx0LG4pe2lmKGUmJmUubWVzc2FnZXMmJmUubWVzc2FnZXMubGVuZ3RoPjApcmV0dXJuIGUubWVzc2FnZXM7aWYoZSYmZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIilyZXR1cm5bXTtpZighbilyZXR1cm5bXTt2YXIgaT10eXBlb2YgdD09InN0cmluZyI/dDplJiZlLm91dHB1dHx8IiI7cmV0dXJuIGk/UHYoaSxlJiZlLmNvbW1hbmQpOltdfWZ1bmN0aW9uIF9tKGUpe2lmKCFlfHwhZS5sZW5ndGgpcmV0dXJuIG51bGw7aWYoci5zZWxlY3RlZElkKXt2YXIgdD1lLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gdD90LmlkOm51bGx9dmFyIG49ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLnN0YXR1cz09PSJydW5uaW5nIn0pO2lmKG4pcmV0dXJuIG4uaWQ7dmFyIGk9ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiFhLmFyY2hpdmVkfSk7cmV0dXJuIGk/aS5pZDplWzBdLmlkfWZ1bmN0aW9uIG1uKGUpe3ZhciB0PWV8fHt9O3JldHVybiBmZXRjaCgiL2FwaS9zZXNzaW9ucyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4uc3RhdHVzPT09NDAxKXtCbCgpO3JldHVybn1yZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe3ZhciBpPW58fFtdLGE9bmV3IFNldChpLm1hcChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZH0pKTtPYmplY3Qua2V5cyhyLmRyYWZ0cykuZm9yRWFjaChmdW5jdGlvbihjKXthLmhhcyhjKXx8ZGVsZXRlIHIuZHJhZnRzW2NdfSksci5zZXNzaW9ucz1pLm1hcChmdW5jdGlvbihjKXt2YXIgdj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaCl7cmV0dXJuIGguaWQ9PT1jLmlkfSk7cmV0dXJuIEhtKHYsYyl9KTt2YXIgdT1fbShyLnNlc3Npb25zKTtpZih1IT09dm9pZCAwJiYoci5zZWxlY3RlZElkPXUpLEd1KCksZG4oKSxyLmJvb3RzdHJhcHBpbmc9ITEsaGUoKSxyLm1vZGFsT3BlbilwZSgpO2Vsc2V7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWxpc3QiKSxzPWhhKCk7aWYobyYmby5pbm5lckhUTUw9PT1zKXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2wmJihsLnRleHRDb250ZW50PVN0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkpfWVsc2V7byYmKG8uaW5uZXJIVE1MPXMsanQobykpO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWNvdW50Iik7bCYmKGwudGV4dENvbnRlbnQ9U3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSl9fWpyKCksci5zZWxlY3RlZElkJiZyLmdpdFN0YXR1c1Nlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZCYmQm4oci5zZWxlY3RlZElkKTt2YXIgZD1Qcm9taXNlLnJlc29sdmUoKTtpZighdC5za2lwU2VsZWN0ZWRPdXRwdXRSZWxvYWQmJnIuc2VsZWN0ZWRJZClkPWduKHIuc2VsZWN0ZWRJZCk7ZWxzZSBpZihyLnNlbGVjdGVkSWQpe3ZhciBmPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PXIuc2VsZWN0ZWRJZH0pO3VlKGYpJiYod3Qoe3ByZXNlcnZlU3RpY2tTdGF0ZTohMH0pLGV1KCEwKSl9cmV0dXJuIGQudGhlbihmdW5jdGlvbigpe3IuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPjAmJndpKCksQnQoKSxPYSgpfSl9KS5jYXRjaChmdW5jdGlvbihuKXt2YXIgaT1uJiZuLm1lc3NhZ2V8fCIiLGE9aT09PSJGYWlsZWQgdG8gZmV0Y2gifHxpPT09Ik5ldHdvcmtFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gZmV0Y2ggcmVzb3VyY2UuInx8aT09PSJMb2FkIGZhaWxlZCJ8fC9hYm9ydGVkfGFib3J0ZXJyb3J8bmV0d29ya2Vycm9yfGZhaWxlZCB0byBmZXRjaC9pLnRlc3QoaSk7YXx8Y29uc29sZS5lcnJvcigiW3dhbmRdIGxvYWRTZXNzaW9ucyBmYWlsZWQ6IixuKX0pfXZhciBDdT1udWxsO2Z1bmN0aW9uIEJ1KCl7Q3V8fChDdT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Q3U9bnVsbCxwZSgpfSwyMDApKX1mdW5jdGlvbiBwZSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0IiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2UmJihlLmlubmVySFRNTD1oYSgpLGp0KGUpKSx0JiYodC50ZXh0Q29udGVudD1TdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKSx0eXBlb2YgWHQ9PSJmdW5jdGlvbiImJlh0KCksanIoKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZCdCgpfWZ1bmN0aW9uIGpyKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGcpe3JldHVybiBnLmlkPT09ci5zZWxlY3RlZElkfSk7ZXx8KE1uKCExKSxLYSgpLFdzKCkpO3ZhciB0PWU/JG4oZS5jb21tYW5kKToiV2FuZCIsbj1lP3ZyKGUpOiJcdTVGMDBcdTU5Q0JcdTVCRjlcdThCREQiLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3VtbWFyeS12YWx1ZSIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXRpdGxlIiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtaW5mbyIpLG89ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRvcGJhci1zZXNzaW9uLXRpdGxlLCAudG9wYmFyLXRhZ2xpbmUiKTtvJiZlJiYoby5jbGFzc0xpc3QucmVtb3ZlKCJ0b3BiYXItdGFnbGluZSIpLG8uY2xhc3NMaXN0LmFkZCgidG9wYmFyLXNlc3Npb24tdGl0bGUiKSxvLnRleHRDb250ZW50PWUudGl0bGV8fCRuKGUuY29tbWFuZCksby5zZXRBdHRyaWJ1dGUoInRpdGxlIixlLmRlc2NyaXB0aW9ufHxlLmNvbW1hbmR8fCIiKSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7aSYmaS50ZXh0Q29udGVudCE9PXQmJihpLnRleHRDb250ZW50PXQpLGEmJmEudGV4dENvbnRlbnQhPT10JiYoYS50ZXh0Q29udGVudD10KSx1JiYodS50ZXh0Q29udGVudD1lP24rIiBceEI3ICIra20oZSk6bik7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24ta2luZC1kaXNwbGF5Iiksdj1lP0RtKGUpOiJcdTdFQzhcdTdBRUYiO2MmJmMudGV4dENvbnRlbnQhPT12JiYoYy50ZXh0Q29udGVudD12KSxVbygpLCFyLnRlcm1pbmFsJiZsJiZlJiZZbigpLHIudGVybWluYWwmJmwmJiFsLmNvbnRhaW5zKHIudGVybWluYWwuZWxlbWVudCkmJih3cigpLFluKCkpLGV8fChyLnRlcm1pbmFsU2Vzc2lvbklkPW51bGwsci50ZXJtaW5hbE91dHB1dD0iIixyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTApLHIudGVybWluYWwmJmUmJnIuY3VycmVudFZpZXc9PT0idGVybWluYWwiJiZwdCgidmlldyIpO3ZhciBoPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2U/KHMmJnMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbCYmbC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxkJiZkLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGgmJmguY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpOihzJiZzLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGwmJmwuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxmJiZmLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGgmJmguY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpLEhpKCksWG4oc3QoKSksS2koKSxKYSgpfWZ1bmN0aW9uIGduKGUpe3IuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKTt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lfSksbj0iL2FwaS9zZXNzaW9ucy8iK2U7cmV0dXJuIHhsKHQpJiYobis9Ij9mb3JtYXQ9Y2hhdCIpLGZldGNoKG4se2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaS5lcnJvcil7ci5zZWxlY3RlZElkPT09ZSYmKHIuc2VsZWN0ZWRJZD1udWxsLGhlKCkpLG1uKCk7cmV0dXJufWlmKFgoaSksanIoKSxyLnRlcm1pbmFsJiZlPT09ci5zZWxlY3RlZElkJiZpLm91dHB1dCE9PXZvaWQgMCl7dmFyIGE9ISFyLndzJiYoci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU58fHIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5DT05ORUNUSU5HKTthP1FlKCJzZXNzaW9uLXN3aXRjaCIpOihnaShlLGkub3V0cHV0LHttb2RlOiJhcHBlbmQifSksUWUoInNlc3Npb24tc3dpdGNoIix7Zm9yY2VSZXBsYXk6ITB9KSl9dmFyIHU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ZX0pO3IuY3VycmVudE1lc3NhZ2VzPXplKHUsWGUodSxpLm91dHB1dCwhMSkpLFZlKCExKX0pfXZhciBEdT0hMTtmdW5jdGlvbiBObSgpe2lmKER1KXJldHVybiExO3ZhciBlPXIuc2VsZWN0ZWRJZDtpZighZSlyZXR1cm4hMTt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1lfSk7aWYoIXQpcmV0dXJuITE7dmFyIG49dHlwZW9mIHQubWVzc2FnZU9mZnNldD09Im51bWJlciI/dC5tZXNzYWdlT2Zmc2V0OjA7aWYobjw9MClyZXR1cm4hMTt2YXIgaT00MCxhPU1hdGgubWF4KDAsbi1pKSx1PW4tYTtyZXR1cm4gRHU9ITAsZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi9tZXNzYWdlcz9vZmZzZXQ9IithKyImbGltaXQ9Iit1LHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKG8mJkFycmF5LmlzQXJyYXkoby5tZXNzYWdlcykmJnQubWVzc2FnZU9mZnNldD09PW4pe3ZhciBzPUFycmF5LmlzQXJyYXkodC5tZXNzYWdlcyk/dC5tZXNzYWdlczpbXTt0Lm1lc3NhZ2VzPW8ubWVzc2FnZXMuY29uY2F0KHMpLHQubWVzc2FnZU9mZnNldD1hLHR5cGVvZiBvLnRvdGFsPT0ibnVtYmVyIiYmKHQubWVzc2FnZVRvdGFsPW8udG90YWwpLGU9PT1yLnNlbGVjdGVkSWQmJihyLmN1cnJlbnRNZXNzYWdlcz16ZSh0LFhlKHQsdC5vdXRwdXQsITEpKSxyLmNoYXRSZW5kZXJlZENvdW50PXIuY3VycmVudE1lc3NhZ2VzLmxlbmd0aCxWZSghMCkpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkuZmluYWxseShmdW5jdGlvbigpe0R1PSExfSksITB9ZnVuY3Rpb24gSHQoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ZX0pO2lmKHQpe3Iuc2VsZWN0ZWRJZCE9PWUmJndyKCksci5zZWxlY3RlZElkPWUsaGUoKSxyLnRvb2xDb250ZW50Q2FjaGU9e30sci5tZXNzYWdlUXVldWU9W10sci5wZW5kaW5nTWVzc2FnZXM9W10sdGkodCksR3UoKSxkbigpLHd0KCksci5jdXJyZW50TWVzc2FnZXM9W10sci5jaGF0UmVuZGVyVGltZXImJihjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLHIuY2hhdFJlbmRlclRpbWVyPW51bGwpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyIik7aSYmaS5yZW1vdmUoKSxyLl9zdGF0dXNCYXJUaW1lcklkJiYoY2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGwpLHIuX3N0YXR1c0JhclN0YXJ0VGltZT0wO3ZhciBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2EmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaW4tZmxpZ2h0Iik7dmFyIHU9dDtyLnByZWZlcnJlZENvbW1hbmQ9cnQoKSxyLmNoYXRNb2RlPW10KCJjbGF1ZGUiLHUmJnUubW9kZT91Lm1vZGU6ci5jaGF0TW9kZSksci50ZXJtaW5hbEludGVyYWN0aXZlJiZ1JiZ1LnN0YXR1cyE9PSJydW5uaW5nIiYmTW4oITEpLHBlKCksU3IoZSksci5maWxlUGFuZWxPcGVuJiYoUGQodSksTHQoKSksZ24oZSkudGhlbihmdW5jdGlvbigpe1B0KCEwKX0pLFBuKGUpLHIuZ2l0U3RhdHVzPW51bGwsci5naXRTdGF0dXNTZXNzaW9uSWQ9bnVsbCxnYSgpLEJuKGUse2ZvcmNlOiEwfSl9fWZ1bmN0aW9uIGptKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlciIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tbGF5b3V0Iiksbj1SZSgpLGk9ISFyLnNpZGViYXJQaW5uZWQmJiEhci5zaWRlYmFyQ29sbGFwc2VkLGE9aXx8IW4mJighIXIuc2lkZWJhclBpbm5lZHx8ISFyLnNlc3Npb25zRHJhd2VyT3Blbik7ZSYmKGUuY2xhc3NMaXN0LnRvZ2dsZSgicGlubmVkIixhKSxlLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNlZCIsaSkpLHQmJih0LmNsYXNzTGlzdC50b2dnbGUoInNpZGViYXItcGlubmVkIixhKSx0LmNsYXNzTGlzdC50b2dnbGUoInNpZGViYXItY29sbGFwc2VkIixpKSk7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItcGluLWJ0biIpO3UmJih1LmNsYXNzTGlzdC50b2dnbGUoInBpbm5lZCIsISFyLnNpZGViYXJQaW5uZWQpLHUudGl0bGU9ci5zaWRlYmFyUGlubmVkPyJcdTVERjJcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0JcdUZGMDhcdTcwQjlcdTUxRkJcdTg5RTNcdTk2NjRcdTk1MDFcdTVCOUFcdUZGMDkiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiLHUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixyLnNpZGViYXJQaW5uZWQ/Ilx1ODlFM1x1OTY2NFx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3QiI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpLHUuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLHIuc2lkZWJhclBpbm5lZD8idHJ1ZSI6ImZhbHNlIikpfWZ1bmN0aW9uIFJyKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlciIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tbGF5b3V0Iik7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLnNlc3Npb25zRHJhd2VyT3BlbiksdCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixlbygpKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoInNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIik7aSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSxqbSgpfWZ1bmN0aW9uIFJtKCl7dmFyIGU9UmUoKTtpZighZSl7dmFyIHQ9ci5zaWRlYmFyUGlubmVkPyExOiFyLnNlc3Npb25zRHJhd2VyT3BlbjtyLnNlc3Npb25zRHJhd2VyT3Blbj10LHQmJihyLnNpZGViYXJDb2xsYXBzZWQ9ITEsU2UoIndhbmQtc2lkZWJhci1jb2xsYXBzZWQiLCExKSksU2UoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3BlbiksdW4oKSx6cigpO3JldHVybn1pZihyLnNlc3Npb25zRHJhd2VyT3Blbj0hci5zZXNzaW9uc0RyYXdlck9wZW4sU2UoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3Blbiksci5zZXNzaW9uc0RyYXdlck9wZW4pe3IuZmlsZVBhbmVsT3Blbj0hMTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtZmlsZS1wYW5lbC1vcGVuIiwiZmFsc2UiKX1jYXRjaHt9fXVuKCl9ZnVuY3Rpb24gV3IoKXt2YXIgZT1SZSgpO2lmKCFlKXtpZighci5zaWRlYmFyUGlubmVkJiYhci5zZXNzaW9uc0RyYXdlck9wZW4pcmV0dXJuO01yKCksci5zaWRlYmFyUGlubmVkPSExLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLFNlKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMSksU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksdW4oKSx6cigpO3JldHVybn1yLnNlc3Npb25zRHJhd2VyT3BlbiYmKE1yKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITEsU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksdW4oKSl9ZnVuY3Rpb24gV20oKXtpZihSZSgpKXtXcigpO3JldHVybn1yLnNpZGViYXJQaW5uZWR8fHIuc2lkZWJhckNvbGxhcHNlZHx8IXIuc2Vzc2lvbnNEcmF3ZXJPcGVufHwoTXIoKSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSx1bigpLHpyKCkpfWZ1bmN0aW9uIFlsKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb21wb3Nlci1wbHVzLXBvcG92ZXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2gtYnRuIik7ci5wbHVzUG9wb3Zlck9wZW49ISFlLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhZSksbiYmKG4uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIiwhIWUpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixlPyJ0cnVlIjoiZmFsc2UiKSl9ZnVuY3Rpb24gem0oKXtZbCghci5wbHVzUG9wb3Zlck9wZW4pfWZ1bmN0aW9uIEppKCl7ci5wbHVzUG9wb3Zlck9wZW4mJllsKCExKX1mdW5jdGlvbiBfdCgpe1JlKCkmJnIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiZXcigpfWZ1bmN0aW9uIHpyKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4tbGF5b3V0Iik7aWYoZSl7dmFyIHQ9ZnVuY3Rpb24obil7bi5wcm9wZXJ0eU5hbWU9PT0icGFkZGluZy1sZWZ0IiYmKGUucmVtb3ZlRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdCkscXQoITApKX07ZS5hZGRFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0KX1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cXQoITApfSwzNTApfXZhciBOdD1udWxsO2Z1bmN0aW9uIFZtKCl7cmV0dXJuIE50JiZkb2N1bWVudC5ib2R5LmNvbnRhaW5zKE50KXx8KE50PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLE50LmNsYXNzTmFtZT0ic2lkZWJhci10aWxlLWJ1YmJsZSIsTnQuc2V0QXR0cmlidXRlKCJyb2xlIiwidG9vbHRpcCIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTnQpKSxOdH1mdW5jdGlvbiBYdCgpe050JiZOdC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9ZnVuY3Rpb24gVW0oZSx0KXtpZighdCl7WHQoKTtyZXR1cm59dmFyIG49Vm0oKTtuLnRleHRDb250ZW50PXQubGVuZ3RoPjQwMD90LnNsaWNlKDAsNDAwKSsiXHUyMDI2Ijp0O3ZhciBpPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bi5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIik7dmFyIGE9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1PWkudG9wK2kuaGVpZ2h0LzIsbz11LWEuaGVpZ2h0LzIscz04LGw9d2luZG93LmlubmVySGVpZ2h0LWEuaGVpZ2h0LTg7bzxzJiYobz1zKSxvPmwmJihvPU1hdGgubWF4KHMsbCkpLG4uc3R5bGUubGVmdD1pLnJpZ2h0KzEyKyJweCIsbi5zdHlsZS50b3A9bysicHgiLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYnViYmxlLXRhaWwteSIsdS1vKyJweCIpfWZ1bmN0aW9uIEttKGUpe2lmKGUuZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PWUuZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWR9KTtpZighdClyZXR1cm4iIjt2YXIgbj1tYyh0KTtyZXR1cm4gbnx8dC5zdW1tYXJ5fHx0LmNvbW1hbmR8fCIifWlmKGUuZGF0YXNldC5jb2xsYXBzZWRIaXN0b3J5SWQpe3ZhciBpPXIuY2xhdWRlSGlzdG9yeS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZD09PWUuZGF0YXNldC5jb2xsYXBzZWRIaXN0b3J5SWR9KTtpZihpJiZpLmZpcnN0VXNlck1lc3NhZ2UpcmV0dXJuIGkuZmlyc3RVc2VyTWVzc2FnZX1yZXR1cm4iIn1mdW5jdGlvbiBKbShlKXt2YXIgdD1lLnRhcmdldDtpZighKCF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSkpe3ZhciBuPXQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKTtpZighbil7WHQoKTtyZXR1cm59dmFyIGk9S20obik7aWYoIWkpe1h0KCk7cmV0dXJufVVtKG4saSl9fWZ1bmN0aW9uIFltKGUpe3ZhciB0PWUucmVsYXRlZFRhcmdldDt0JiZ0IGluc3RhbmNlb2YgRWxlbWVudCYmdC5jbG9zZXN0KCIuc2lkZWJhci1jb2xsYXBzZWQtdGlsZSIpfHxYdCgpfWZ1bmN0aW9uIEdtKCl7dmFyIGU9UmUoKTtyLnNpZGViYXJQaW5uZWR8fChyLnNpZGViYXJQaW5uZWQ9ITAsU2UoIndhbmQtc2lkZWJhci1waW5uZWQiLCEwKSksci5zaWRlYmFyQ29sbGFwc2VkPSFyLnNpZGViYXJDb2xsYXBzZWQsU2UoIndhbmQtc2lkZWJhci1jb2xsYXBzZWQiLHIuc2lkZWJhckNvbGxhcHNlZCksci5zaWRlYmFyQ29sbGFwc2VkP3Iuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExOmU/KHIuc2lkZWJhclBpbm5lZD0hMSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxTZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsITEpKTpyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxTZSgid2FuZC1zaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSx1bigpLHBlKCksJG0oKSxYdCgpLHpyKCl9ZnVuY3Rpb24gUW0oKXtSZSgpfHwoci5zaWRlYmFyUGlubmVkPSFyLnNpZGViYXJQaW5uZWQsci5zZXNzaW9uc0RyYXdlck9wZW49ITAsU2UoIndhbmQtc2lkZWJhci1waW5uZWQiLHIuc2lkZWJhclBpbm5lZCksU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMCksdW4oKSx6cigpKX1mdW5jdGlvbiAkbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLWNvbGxhcHNlLWJ0biIpO2lmKGUpe3ZhciB0PSEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZDtlLmNsYXNzTGlzdC50b2dnbGUoImNvbGxhcHNlZCIsdCksZS50aXRsZT10PyJcdTVDNTVcdTVGMDBcdTRGQTdcdTY4MEYiOiJcdTY1MzZcdThENzdcdTRFM0FcdTdBODRcdTY3NjEiLGUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0PyJcdTVDNTVcdTVGMDBcdTRGQTdcdTY4MEYiOiJcdTY1MzZcdThENzdcdTRFM0FcdTdBODRcdTY3NjEiKSxlLmlubmVySFRNTD10Pyc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjEwIDYgMTYgMTIgMTAgMTgiLz48bGluZSB4MT0iMjAiIHkxPSI1IiB4Mj0iMjAiIHkyPSIxOSIvPjwvc3ZnPic6Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iMTQgNiA4IDEyIDE0IDE4Ii8+PGxpbmUgeDE9IjQiIHkxPSI1IiB4Mj0iNCIgeTI9IjE5Ii8+PC9zdmc+J319ZnVuY3Rpb24gWG0oZSl7aWYoZSl7ZS5zdHlsZS5sZWZ0PSIiLGUuc3R5bGUucmlnaHQ9IiI7dmFyIHQ9ZS5vZmZzZXRQYXJlbnR8fGUucGFyZW50RWxlbWVudDtpZih0KXt2YXIgbj04LGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT13aW5kb3cuaW5uZXJXaWR0aDthLmxlZnQ8bj8oZS5zdHlsZS5yaWdodD0iYXV0byIsZS5zdHlsZS5sZWZ0PW4taS5sZWZ0KyJweCIpOmEucmlnaHQ+dS1uJiYoZS5zdHlsZS5sZWZ0PSJhdXRvIixlLnN0eWxlLnJpZ2h0PWkucmlnaHQtKHUtbikrInB4Iil9fX1mdW5jdGlvbiBabShlKXtpZighKCFlfHx0eXBlb2YgZSE9Im9iamVjdCIpKXtyLmNvbmZpZz1lO3ZhciB0PWUuZGVmYXVsdFByb3ZpZGVyPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiO3Iuc2Vzc2lvblRvb2w9dCxyLnByZWZlcnJlZENvbW1hbmQ9dCxyLnNlc3Npb25DcmVhdGVLaW5kPWUuZGVmYXVsdFNlc3Npb25LaW5kPT09InB0eSI/InB0eSI6InN0cnVjdHVyZWQiLHIubW9kZVZhbHVlPW10KHQsZS5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiKX19dmFyIFlpPVByb21pc2UucmVzb2x2ZSgpO2Z1bmN0aW9uIEdpKGUpe3JldHVybiFlfHx0eXBlb2YgZSE9Im9iamVjdCI/UHJvbWlzZS5yZXNvbHZlKCk6KFlpPVlpLmNhdGNoKGZ1bmN0aW9uKCl7fSkudGhlbihmdW5jdGlvbigpe3JldHVybiBmZXRjaCgiL2FwaS9zZXR0aW5ncy9jb25maWciLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGUpfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKS50aGVuKGZ1bmN0aW9uKG4pe2lmKCF0Lm9rfHxuLmVycm9yKXRocm93IG5ldyBFcnJvcihuLmVycm9yfHwiXHU0RkREXHU1QjU4XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU1MDRGXHU1OTdEXHU1OTMxXHU4RDI1Iik7cmV0dXJuIG4uY29uZmlnJiYoci5jb25maWc9bi5jb25maWcpLG59KX0pLmNhdGNoKGZ1bmN0aW9uKHQpe2NvbnNvbGUud2FybigiW3dhbmRdIEZhaWxlZCB0byBwZXJzaXN0IG5ldy1zZXNzaW9uIGRlZmF1bHRzIix0KX0pLFlpKX1mdW5jdGlvbiBrdSgpe25yKCksci5tb2RhbE9wZW49ITAsci5zZXNzaW9uc0RyYXdlck9wZW49ITEsU2UoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksUnIoKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2UmJihlLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LHIuc2Vzc2lvblRvb2w9ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRQcm92aWRlcj09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIixyLnByZWZlcnJlZENvbW1hbmQ9ci5zZXNzaW9uVG9vbCxyLnNlc3Npb25DcmVhdGVLaW5kPXIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0U2Vzc2lvbktpbmQ9PT0icHR5Ij8icHR5Ijoic3RydWN0dXJlZCIsci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9ITEsci5tb2RlVmFsdWU9bXQoci5zZXNzaW9uVG9vbCxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGU/ci5jb25maWcuZGVmYXVsdE1vZGU6ImRlZmF1bHQiKSxlcigpLFlpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5vaz90Lmpzb24oKTpudWxsfSkudGhlbihmdW5jdGlvbih0KXshdHx8IXIubW9kYWxPcGVufHwoWm0odCksZXIoKSl9KS5jYXRjaChmdW5jdGlvbigpe30pLEJnKCksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWNhcmRzIik7dCYmdC5mb2N1cygpfSwyMCksUWkoZSkpfWZ1bmN0aW9uIGhuKCl7ci5tb2RhbE9wZW49ITE7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtlJiYoci5mb2N1c1RyYXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKSxyLmZvY3VzVHJhcEhhbmRsZXI9bnVsbCksci5sYXN0Rm9jdXNlZEVsZW1lbnQmJnR5cGVvZiByLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cz09ImZ1bmN0aW9uIiYmci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKSxBdShlKSksaXIoKX1mdW5jdGlvbiBBdShlKXtpZihlJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXt2YXIgdD0hMTt0cnl7dD13aW5kb3cubWF0Y2hNZWRpYSYmd2luZG93Lm1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIikubWF0Y2hlc31jYXRjaHt9aWYodHx8ZG9jdW1lbnQuaGlkZGVuKXtlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3JldHVybn1lLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QuYWRkKCJjbG9zaW5nIiksZS5fd2FuZENsb3NlVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe2UuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5fd2FuZENsb3NlVGltZXI9bnVsbH0sMTcwKX19ZnVuY3Rpb24gUWkoZSl7ci5mb2N1c1RyYXBIYW5kbGVyJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpO3ZhciB0PSdidXR0b246bm90KFtkaXNhYmxlZF0pLCBpbnB1dDpub3QoW2Rpc2FibGVkXSksIHNlbGVjdDpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgYVtocmVmXSwgW3RhYmluZGV4XTpub3QoW3RhYmluZGV4PSItMSJdKSc7ci5mb2N1c1RyYXBIYW5kbGVyPWZ1bmN0aW9uKG4pe2lmKG4ua2V5PT09IlRhYiIpe3ZhciBpPWUucXVlcnlTZWxlY3RvckFsbCh0KSxhPWlbMF0sdT1pW2kubGVuZ3RoLTFdOyFhfHwhdXx8KG4uc2hpZnRLZXk/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PWEmJihuLnByZXZlbnREZWZhdWx0KCksdS5mb2N1cygpKTpkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09dSYmKG4ucHJldmVudERlZmF1bHQoKSxhLmZvY3VzKCkpKX19LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlcil9ZnVuY3Rpb24gZWcoKXtyZXR1cm4gci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkJiZyLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWQ9PT1yLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWR9KXx8bnVsbH1mdW5jdGlvbiBWcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jb250ZW50IiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY29uZmlybS1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1lcnJvciIpLGk9ZWcoKSxhPXIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0O2lmKCEoIWV8fCF0KSl7aWYoIWl8fCFpLndvcmt0cmVlKXtlLmlubmVySFRNTD0nPHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NjcyQVx1NjI3RVx1NTIzMFx1NTNFRlx1NTQwOFx1NUU3Nlx1NzY4NCB3b3JrdHJlZSBcdTRGMUFcdThCRERcdTMwMDI8L3A+Jyx0LmRpc2FibGVkPSEwO3JldHVybn1uJiYoci53b3JrdHJlZU1lcmdlRXJyb3I/SGUobixyLndvcmt0cmVlTWVyZ2VFcnJvcik6eWkobikpO3ZhciB1PVsnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTY3NjVcdTZFOTBcdTUyMDZcdTY1MkY8L3NwYW4+PHN0cm9uZz4nK3AoaS53b3JrdHJlZS5icmFuY2h8fCItIikrIjwvc3Ryb25nPjwvZGl2PiIsJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9zcGFuPjxzdHJvbmc+JytwKGkud29ya3RyZWUucGF0aHx8Ii0iKSsiPC9zdHJvbmc+PC9kaXY+Il07YT8odS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NzZFRVx1NjgwN1x1NTIwNlx1NjUyRjwvc3Bhbj48c3Ryb25nPicrcChhLnRhcmdldEJyYW5jaHx8Ii0iKSsiPC9zdHJvbmc+PC9kaXY+IiksdS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NUY4NVx1NTQwOFx1NUU3Nlx1NjNEMFx1NEVBNDwvc3Bhbj48c3Ryb25nPicrcChTdHJpbmcoYS5haGVhZENvdW50fHwwKSkrIjwvc3Ryb25nPjwvZGl2PiIpLHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTY3MkFcdTYzRDBcdTRFQTRcdTY1MzlcdTUyQTg8L3NwYW4+PHN0cm9uZz4nK3AoYS5oYXNVbmNvbW1pdHRlZENoYW5nZXM/Ilx1NjcwOSI6Ilx1NjVFMCIpKyI8L3N0cm9uZz48L2Rpdj4iKSx1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU1MUIyXHU3QTgxXHU5OENFXHU5NjY5PC9zcGFuPjxzdHJvbmc+JytwKGEuaGFzQ29uZmxpY3RzPyJcdTY3MDkiOiJcdTY1RTAiKSsiPC9zdHJvbmc+PC9kaXY+IiksYS5yZWFzb24mJnUucHVzaCgnPHAgY2xhc3M9ImZpZWxkLWhpbnQiPicrcChhLnJlYXNvbikrIjwvcD4iKSk6ci53b3JrdHJlZU1lcmdlTG9hZGluZyYmdS5wdXNoKCc8cCBjbGFzcz0iZmllbGQtaGludCI+XHU2QjYzXHU1NzI4XHU2OEMwXHU2N0U1IHdvcmt0cmVlIFx1NTQwOFx1NUU3Nlx1NzJCNlx1NjAwMVx1MjAyNjwvcD4nKSxlLmlubmVySFRNTD11LmpvaW4oIiIpLHQuZGlzYWJsZWQ9ci53b3JrdHJlZU1lcmdlTG9hZGluZ3x8ci53b3JrdHJlZU1lcmdlU3VibWl0dGluZ3x8IWF8fGEub2shPT0hMCx0LnRleHRDb250ZW50PXIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc/Ilx1NTQwOFx1NUU3Nlx1NEUyRC4uLiI6Ilx1Nzg2RVx1OEJBNFx1NTQwOFx1NUU3Nlx1NUU3Nlx1NkUwNVx1NzQwNiJ9fWZ1bmN0aW9uIEdsKGUpe3IuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZD1lLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW51bGwsci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMCxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPSExLHIud29ya3RyZWVNZXJnZUVycm9yPSIiLGhuKCksbnIoKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTt0JiYodC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50LFFpKHQpKSxWcigpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvd29ya3RyZWUvbWVyZ2UvY2hlY2siLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil0aHJvdyBuZXcgRXJyb3Iobi5lcnJvcik7biYmbi5zZXNzaW9uJiZYKG4uc2Vzc2lvbiksci53b3JrdHJlZU1lcmdlQ2hlY2tSZXN1bHQ9bi5yZXN1bHR8fG51bGwsci53b3JrdHJlZU1lcmdlRXJyb3I9IiJ9KS5jYXRjaChmdW5jdGlvbihuKXtyLndvcmt0cmVlTWVyZ2VFcnJvcj1uJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTY4QzBcdTY3RTUgd29ya3RyZWUgXHU1NDA4XHU1RTc2XHU3MkI2XHU2MDAxXHUzMDAyIn0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLndvcmt0cmVlTWVyZ2VMb2FkaW5nPSExLFZyKCl9KX1mdW5jdGlvbiB0cigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1tb2RhbCIpO3IuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZD1udWxsLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW51bGwsci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMSxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPSExLHIud29ya3RyZWVNZXJnZUVycm9yPSIiLGUmJmUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksci5mb2N1c1RyYXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKSxyLmZvY3VzVHJhcEhhbmRsZXI9bnVsbCksci5sYXN0Rm9jdXNlZEVsZW1lbnQmJnR5cGVvZiByLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cz09ImZ1bmN0aW9uIiYmci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKX1mdW5jdGlvbiB0ZygpeyFyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWR8fHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmd8fChyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPSEwLHIud29ya3RyZWVNZXJnZUVycm9yPSIiLFZyKCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkKSsiL3dvcmt0cmVlL21lcmdlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7fSl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZSYmZS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoZS5lcnJvcik7cmV0dXJuIGUmJmUuc2Vzc2lvbiYmWChlLnNlc3Npb24pLEEoIlx1NURGMlx1NTQwOFx1NUU3Nlx1NTIzMCAiK3AoZS5yZXN1bHQmJmUucmVzdWx0LnRhcmdldEJyYW5jaHx8Ilx1NEUzQlx1NTIwNlx1NjUyRiIpKyhlLnJlc3VsdCYmZS5yZXN1bHQuY2xlYW51cERvbmU9PT0hMT8iXHVGRjBDXHU0RjQ2XHU1REU1XHU0RjVDXHU2ODExXHU1Rjg1XHU2RTA1XHU3NDA2XHUzMDAyIjoiXHUzMDAyIiksImluZm8iKSx0cigpLE90KCl9KS5jYXRjaChmdW5jdGlvbihlKXtyLndvcmt0cmVlTWVyZ2VFcnJvcj1lJiZlLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MDhcdTVFNzYgd29ya3RyZWVcdTMwMDIiLFZyKCl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxWcigpfSkpfWZ1bmN0aW9uIFFsKGUpe2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvd29ya3RyZWUvY2xlYW51cCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtpZih0JiZ0LmVycm9yKXRocm93IG5ldyBFcnJvcih0LmVycm9yKTtyZXR1cm4gdCYmdC5zZXNzaW9uJiZYKHQuc2Vzc2lvbiksQSgiXHU1REYyXHU1QjhDXHU2MjEwIHdvcmt0cmVlIFx1NkUwNVx1NzQwNlx1MzAwMiIsImluZm8iKSxPdCgpfSkuY2F0Y2goZnVuY3Rpb24odCl7QSh0JiZ0Lm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTZFMDVcdTc0MDYgd29ya3RyZWVcdTMwMDIiLCJlcnJvciIpfSl9ZnVuY3Rpb24gbmcoKXtobigpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2lmKGUpe2UuX3dhbmRDbG9zZVRpbWVyJiYoY2xlYXJUaW1lb3V0KGUuX3dhbmRDbG9zZVRpbWVyKSxlLl93YW5kQ2xvc2VUaW1lcj1udWxsKSxlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHIubGFzdEZvY3VzZWRFbGVtZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldy1wYXNzd29yZCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpcm0tcGFzc3dvcmQiKTt0JiYodC52YWx1ZT0iIiksbiYmKG4udmFsdWU9IiIpLCRsKCksUWkoZSksaWcoKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC1pbnB1dCIpLmZvckVhY2goZnVuY3Rpb24oYyl7Yy5kYXRhc2V0Lm1vZGVsRGlydHk9ImZhbHNlIixjLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0iZmFsc2UifSkseHUoImFib3V0Iiksc2coKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXNvdW5kIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO2kmJihpLmNoZWNrZWQ9ci5ub3RpZlNvdW5kKSxhJiYoYS5jaGVja2VkPXIubm90aWZCdWJibGUpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtdm9sdW1lIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKTtpZih1KXt1LnZhbHVlPXIubm90aWZWb2x1bWUsbyYmKG8udGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpO3RyeXt1LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSl9Y2F0Y2h7fX12YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7aWYocyYmKHMuc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKSxibigpLHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXBwSWNvbj09ImZ1bmN0aW9uIil0cnl7ZWQoV2FuZE5hdGl2ZS5nZXRBcHBJY29uKCl8fCJzaG9ydGhhaXIiKX1jYXRjaHt9aWYoV2UmJnR5cGVvZiBXYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kPT0iZnVuY3Rpb24iKXRyeXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpO2wmJihsLnZhbHVlPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uU291bmQoKSl9Y2F0Y2h7fWlmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e3ZhciBkPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uVm9sdW1lKCk7aWYoci5ub3RpZlZvbHVtZT1kLHUmJih1LnZhbHVlPVN0cmluZyhkKSksbyYmKG8udGV4dENvbnRlbnQ9ZCsiJSIpLHUpdHJ5e3UuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMH0pKX1jYXRjaHt9dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXZvbHVtZSIsU3RyaW5nKGQpKX1jYXRjaHt9fWNhdGNoe31pZihXZSYmdHlwZW9mIFdhbmROYXRpdmUuaXNIYXB0aWNFbmFibGVkPT0iZnVuY3Rpb24iKXRyeXt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7ZiYmKGYuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpKX1jYXRjaHt9fX1mdW5jdGlvbiBucigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2UmJihlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5tb2RlbC1jb21ib2JveC5pcy1vcGVuIikuZm9yRWFjaChmdW5jdGlvbih0KXt2bih0KX0pLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCksQXUoZSkpfWZ1bmN0aW9uICRsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWVycm9yIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtc3VjY2VzcyIpO2UmJmUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX1mdW5jdGlvbiByZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXctcGFzc3dvcmQiKS52YWx1ZSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIikudmFsdWUsbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtZXJyb3IiKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1zdWNjZXNzIik7aWYoJGwoKSwhZXx8ZS5sZW5ndGg8Nil7bi50ZXh0Q29udGVudD0iXHU1QkM2XHU3ODAxXHU5NTdGXHU1RUE2XHU4MUYzXHU1QzExXHU0RTNBIDYgXHU0RTJBXHU1QjU3XHU3QjI2XHUzMDAyIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1pZihlIT09dCl7bi50ZXh0Q29udGVudD0iXHU0RTI0XHU2QjIxXHU4RjkzXHU1MTY1XHU3Njg0XHU1QkM2XHU3ODAxXHU0RTBEXHU0RTAwXHU4MUY0XHUzMDAyIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1mZXRjaCgiL2FwaS9zZXQtcGFzc3dvcmQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7cGFzc3dvcmQ6ZX0pLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYS5lcnJvcil7bi50ZXh0Q29udGVudD1hLmVycm9yLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7cmV0dXJufWkudGV4dENvbnRlbnQ9Ilx1NUJDNlx1NzgwMVx1NEZFRVx1NjUzOVx1NjIxMFx1NTI5Rlx1RkYwMSIsaS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3LXBhc3N3b3JkIikudmFsdWU9IiIsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpcm0tcGFzc3dvcmQiKS52YWx1ZT0iIn0pLmNhdGNoKGZ1bmN0aW9uKCl7bi50ZXh0Q29udGVudD0iRmFpbGVkIHRvIHNhdmUgcGFzc3dvcmQuIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfSl9ZnVuY3Rpb24geHUoZSl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLm1vZGVsLWNvbWJvYm94LmlzLW9wZW4iKS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZuKHMpfSk7Zm9yKHZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy1wYW5lbCIpLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXS5nZXRBdHRyaWJ1dGUoImRhdGEtdGFiIik9PT1lO2E/dFtpXS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKTp0W2ldLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLHRbaV0uc2V0QXR0cmlidXRlKCJhcmlhLXNlbGVjdGVkIixhPyJ0cnVlIjoiZmFsc2UiKSx0W2ldLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLGE/IjAiOiItMSIpfWZvcih2YXIgdT0wO3U8bi5sZW5ndGg7dSsrKXt2YXIgbz1uW3VdLmlkPT09InNldHRpbmdzLXRhYi0iK2U7bz8oblt1XS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxuW3VdLnJlbW92ZUF0dHJpYnV0ZSgiaGlkZGVuIikpOihuW3VdLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLG5bdV0uc2V0QXR0cmlidXRlKCJoaWRkZW4iLCJoaWRkZW4iKSl9fWZ1bmN0aW9uIFhsKGUpe2lmKGUmJiEoZS5rZXkhPT0iQXJyb3dVcCImJmUua2V5IT09IkFycm93RG93biImJmUua2V5IT09IkFycm93TGVmdCImJmUua2V5IT09IkFycm93UmlnaHQiJiZlLmtleSE9PSJIb21lIiYmZS5rZXkhPT0iRW5kIikpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSk7aWYodC5sZW5ndGgpe3ZhciBuPWUuY3VycmVudFRhcmdldCYmZS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3Q/ZS5jdXJyZW50VGFyZ2V0LmNsb3Nlc3QoIi5zZXR0aW5ncy10YWJzIik6bnVsbCxpPW4mJm4uZ2V0QXR0cmlidXRlKCJhcmlhLW9yaWVudGF0aW9uIik9PT0iaG9yaXpvbnRhbCI7aWYoIShpJiYoZS5rZXk9PT0iQXJyb3dVcCJ8fGUua2V5PT09IkFycm93RG93biIpKSYmISghaSYmKGUua2V5PT09IkFycm93TGVmdCJ8fGUua2V5PT09IkFycm93UmlnaHQiKSkpe3ZhciBhPXQuaW5kZXhPZihlLmN1cnJlbnRUYXJnZXQpO2lmKGEhPT0tMSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB1PWE7KGUua2V5PT09IkFycm93VXAifHxlLmtleT09PSJBcnJvd0xlZnQiKSYmKHU9YT4wP2EtMTp0Lmxlbmd0aC0xKSwoZS5rZXk9PT0iQXJyb3dEb3duInx8ZS5rZXk9PT0iQXJyb3dSaWdodCIpJiYodT1hPHQubGVuZ3RoLTE/YSsxOjApLGUua2V5PT09IkhvbWUiJiYodT0wKSxlLmtleT09PSJFbmQiJiYodT10Lmxlbmd0aC0xKTt2YXIgbz10W3VdO2lmKG8pe3ZhciBzPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpO3MmJnh1KHMpLHR5cGVvZiBvLmZvY3VzPT0iZnVuY3Rpb24iJiZvLmZvY3VzKCl9fX19fX1mdW5jdGlvbiBpZygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXR0aW5ncy10YWJzIik7aWYoZSl7dmFyIHQ9ITE7dHJ5e3Q9ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIobWF4LXdpZHRoOiA3NjBweCkiKS5tYXRjaGVzKX1jYXRjaHt9ZS5zZXRBdHRyaWJ1dGUoImFyaWEtb3JpZW50YXRpb24iLHQ/Imhvcml6b250YWwiOiJ2ZXJ0aWNhbCIpfWZvcih2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksaT0wO2k8bi5sZW5ndGg7aSsrKW5baV0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsWGwpLG5baV0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsWGwpfWZ1bmN0aW9uIGFnKGUpe2lmKGUpe3ZhciB0PWUuY29uZmlnfHx7fSxuPXthYm91dDplLnZlcnNpb24/Ilx1NUY1M1x1NTI0RCB2IitlLnZlcnNpb246Ilx1NzI0OFx1NjcyQ1x1NEUwRVx1NjZGNFx1NjVCMFx1NEZFMVx1NjA2RiIsZ2VuZXJhbDpbdC5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiLHQubGFuZ3VhZ2V8fCJcdTgxRUFcdTUyQThcdThCRURcdThBMDAiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIFx4QjcgIiksbm90aWZpY2F0aW9uczpyLm5vdGlmU291bmQ/Ilx1NjNEMFx1NzkzQVx1OTdGMyAiK3Iubm90aWZWb2x1bWUrIiUiOiJcdTYzRDBcdTc5M0FcdTk3RjNcdTVERjJcdTUxNzNcdTk1RUQiLHNlY3VyaXR5OmUuaGFzQ2VydD8iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiOiJcdTVCQzZcdTc4MDFcdTRFMEVcdThCQzFcdTRFNjZcdTdCQTFcdTc0MDYiLHByZXNldHM6dC5jb21tYW5kUHJlc2V0cyYmdC5jb21tYW5kUHJlc2V0cy5sZW5ndGg/dC5jb21tYW5kUHJlc2V0cy5sZW5ndGgrIiBcdTY3NjFcdTk4ODRcdThCQkUiOiJcdTY2ODJcdTY1RTBcdTk4ODRcdThCQkUiLGRpc3BsYXk6Ilx1NjNBN1x1NTIzNlx1NTM2MVx1NzI0N1x1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMCJ9O2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2V0dGluZ3MtdGFiW2RhdGEtdGFiPSInK2krJyJdIC5zZXR0aW5ncy10YWItbWV0YScpO2EmJihhLnRleHRDb250ZW50PW5baV18fCIiKX19fWZ1bmN0aW9uIHVnKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiKSxpPXdpbmRvdy5RUkNvZGVMaWI7aWYodCl7aWYoIWl8fHR5cGVvZiBpLnRvQ2FudmFzIT0iZnVuY3Rpb24iKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU1RTkzXHU2NzJBXHU1MkEwXHU4RjdEIik7cmV0dXJufXRyeXtpLnRvQ2FudmFzKHQsZSx7d2lkdGg6MjIwLG1hcmdpbjoxLGVycm9yQ29ycmVjdGlvbkxldmVsOiJNIixjb2xvcjp7ZGFyazoiIzFmMWIxNyIsbGlnaHQ6IiNmZmZmZmYwMCJ9fSxmdW5jdGlvbihhKXtpZihhKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtyZXR1cm59biYmKG4uc3R5bGUuZGlzcGxheT0ibm9uZSIpLHQuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSJ9KX1jYXRjaHtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIn19fWZ1bmN0aW9uIG9nKGUpe3ZhciB0PXdpbmRvdy5RUkNvZGVMaWI7aWYoIXR8fHR5cGVvZiB0LnRvQ2FudmFzIT0iZnVuY3Rpb24iKXJldHVybjt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29ubmVjdC1xci1tb2RhbCIpO24mJm4ucmVtb3ZlKCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5pZD0iY29ubmVjdC1xci1tb2RhbCIsaS5jbGFzc05hbWU9ImNvbm5lY3QtcXItbW9kYWwtb3ZlcmxheSIsaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvbm5lY3QtcXItbW9kYWwtY2FyZCI+PGNhbnZhcyBpZD0iY29ubmVjdC1xci1tb2RhbC1jYW52YXMiPjwvY2FudmFzPjxwIGNsYXNzPSJjb25uZWN0LXFyLW1vZGFsLWhpbnQiPlx1NzUyOCBXYW5kIEFwcCBcdTYyNkJcdTRFMDBcdTYyNkJcdUZGMENcdThGREVcdTYzQTVcdTVGNTNcdTUyNERcdTY3MERcdTUyQTFcdTU2Njg8L3A+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gY29ubmVjdC1xci1tb2RhbC1jbG9zZSI+XHU1MTczXHU5NUVEPC9idXR0b24+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO3ZhciBhPWkucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3QtcXItbW9kYWwtY2FudmFzIiksdT1NYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpKi43O3U8MjQwJiYodT0yNDApLHU+NDgwJiYodT00ODApO3RyeXt0LnRvQ2FudmFzKGEsZSx7d2lkdGg6dSxtYXJnaW46MixlcnJvckNvcnJlY3Rpb25MZXZlbDoiTSIsY29sb3I6e2Rhcms6IiMxZjFiMTciLGxpZ2h0OiIjZmZmZmZmIn19KX1jYXRjaHt9ZnVuY3Rpb24gbygpe2kucmVtb3ZlKCl9aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obCl7bC50YXJnZXQ9PT1pJiZvKCl9KTt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIi5jb25uZWN0LXFyLW1vZGFsLWNsb3NlIik7cyYmcy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbyl9ZnVuY3Rpb24gVXIoZSx0LG4pe2lmKCFlKXJldHVybjtmdW5jdGlvbiBpKCl7aWYoR24oImxpZ2h0Iiksbil7bigpO3JldHVybn1pZih0KXt2YXIgYT10LnRleHRDb250ZW50O3QudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9YX0sMTUwMCl9fWlmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5jb3B5VG9DbGlwYm9hcmQ9PSJmdW5jdGlvbiIpdHJ5e2lmKFdhbmROYXRpdmUuY29weVRvQ2xpcGJvYXJkKGUpPT09Im9rIil7aSgpO3JldHVybn19Y2F0Y2h7fW5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oaSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2EudmFsdWU9ZSxhLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsYS5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpLGkoKX0pfWZ1bmN0aW9uIHluKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIi0iO2lmKGU8MTAyNClyZXR1cm4gZSsiIEIiO2Zvcih2YXIgdD1bIktCIiwiTUIiLCJHQiIsIlRCIl0sbj1lLzEwMjQsaT0wO24+PTEwMjQmJmk8dC5sZW5ndGgtMTspbj1uLzEwMjQsaSs9MTt2YXIgYT1uPj0xMD9uLnRvRml4ZWQoMCk6bi50b0ZpeGVkKDEpO3JldHVybiBhKyIgIit0W2ldfWZ1bmN0aW9uIHNnKCl7ZmV0Y2goIi9hcGkvc2V0dGluZ3MiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2FnKGUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1wa2ctbmFtZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXZlcnNpb24iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1ub2RlLXJlcSIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXJlcG8tdXJsIik7dCYmKHQudGV4dENvbnRlbnQ9ZS5wYWNrYWdlTmFtZXx8Ii0iKSxuJiYobi50ZXh0Q29udGVudD1lLnZlcnNpb258fCItIiksaSYmKGkudGV4dENvbnRlbnQ9ZS5ub2RlVmVyc2lvbnx8Ii0iKSxhJiZlLnJlcG9VcmwmJihhLmlubmVySFRNTD0nPGEgaHJlZj0iJytwKGUucmVwb1VybCkrJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPicrcChlLnJlcG9VcmwpKyI8L2E+Iik7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIiksbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO2UubGF0ZXN0VmVyc2lvbiYmdSYmKHUudGV4dENvbnRlbnQ9ZS5sYXRlc3RWZXJzaW9uLGUudXBkYXRlQXZhaWxhYmxlJiZvJiZvLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO3MmJihzLmNoZWNrZWQ9ZS51cGRhdGVDaGFubmVsPT09ImJldGEiKTt2YXIgbD1lLmF1dG9VcGRhdGV8fHt9LGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKTtkJiYoZC5jaGVja2VkPSEhbC53ZWIpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIik7ZiYmKGYuY2hlY2tlZD0hIUluJiYhIWwuYXBrKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO2MmJihjLmNoZWNrZWQ9ISFzbiYmISFsLmRtZyk7ZnVuY3Rpb24gdihvZSxMZSl7Y3Mob2Use3R5cGU6TGU9PT0iZXJyb3IiPyJkYW5nZXIiOiJpbmZvIn0pfWZ1bmN0aW9uIGgob2UsTGUsamUpe3ZhciB0dD1qZT9qZS50ZXh0Q29udGVudDoiIjtqZSYmKGplLmRpc2FibGVkPSEwLGplLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0RcdTRFMkRcdTIwMjYiKTtmdW5jdGlvbiBqKCl7amUmJihqZS5kaXNhYmxlZD0hMSxqZS50ZXh0Q29udGVudD10dCl9ZmV0Y2gob2Use21ldGhvZDoiSEVBRCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oUCl7aWYoIVAub2spe3YoUC5zdGF0dXM9PT00MDQ/Ilx1NEUwQlx1OEY3RFx1NjcyQVx1NTQyRlx1NzUyOFx1NjIxNlx1NjU4N1x1NEVGNlx1NURGMlx1NzlGQlx1OTY2NCI6Ilx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNSAoSFRUUCAiK1Auc3RhdHVzKyIpIiwiZXJyb3IiKSxqKCk7cmV0dXJufXZhciBLPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtLLmhyZWY9b2UsSy5kb3dubG9hZD1MZXx8IiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChLKSxLLmNsaWNrKCksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChLKSx2KCJcdTVERjJcdTVGMDBcdTU5Q0JcdTRFMEJcdThGN0RcdUZGMENcdThCRjdcdTU3MjhcdTkwMUFcdTc3RTVcdTY4MEYvXHU0RTBCXHU4RjdEXHU3QkExXHU3NDA2XHU0RTJEXHU2N0U1XHU3NzBCIiwiaW5mbyIpLGooKX0pLmNhdGNoKGZ1bmN0aW9uKFApe3YoIlx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNTogIisoUCYmUC5tZXNzYWdlP1AubWVzc2FnZTpQKSwiZXJyb3IiKSxqKCl9KX1mdW5jdGlvbiBnKG9lLExlKXtmdW5jdGlvbiBqZShaaSl7dmFyIEhuPVN0cmluZyhaaXx8IiIpLnJlcGxhY2UoL152LywiIiksX249SG4uaW5kZXhPZigiLSIpLGVhPV9uPj0wP0huLnNsaWNlKDAsX24pOkhuLFlyPV9uPj0wP0huLnNsaWNlKF9uKzEpOiIiO3JldHVybntwYXJ0czplYS5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihPZSl7cmV0dXJuIHBhcnNlSW50KE9lLDEwKXx8MH0pLHByZTpZcixpc0RlYnVnOllyLmluZGV4T2YoImRlYnVnIik9PT0wfX1mb3IodmFyIHR0PWplKG9lKSxqPWplKExlKSxQPTA7UDwzO1ArKyl7dmFyIEs9KHR0LnBhcnRzW1BdfHwwKS0oai5wYXJ0c1tQXXx8MCk7aWYoSyE9PTApcmV0dXJuIEs+MD8xOi0xfWlmKHR0LmlzRGVidWchPT1qLmlzRGVidWcpcmV0dXJuIHR0LmlzRGVidWc/MTotMTtpZih0dC5pc0RlYnVnJiZqLmlzRGVidWcpZm9yKHZhciBhZT10dC5wcmUuc3BsaXQoIi4iKSxzZT1qLnByZS5zcGxpdCgiLiIpLHllPTA7eWU8TWF0aC5tYXgoYWUubGVuZ3RoLHNlLmxlbmd0aCk7eWUrKyl7aWYoYWVbeWVdPT09dm9pZCAwKXJldHVybi0xO2lmKHNlW3llXT09PXZvaWQgMClyZXR1cm4gMTt2YXIgdXI9cGFyc2VJbnQoYWVbeWVdLDEwKSxvcj1wYXJzZUludChzZVt5ZV0sMTApO2lmKCFpc05hTih1cikmJiFpc05hTihvcikpe2lmKHVyIT09b3IpcmV0dXJuIHVyPm9yPzE6LTF9ZWxzZSBpZihhZVt5ZV0hPT1zZVt5ZV0pcmV0dXJuIGFlW3llXT5zZVt5ZV0/MTotMX1yZXR1cm4gMH1mdW5jdGlvbiBtKG9lLExlLGplLHR0LGosUCl7b2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksb2UuZGlzYWJsZWQ9ITEsTGU+MD9vZS50ZXh0Q29udGVudD0iXHU1MzQ3XHU3RUE3IjpMZT09PTA/KG9lLnRleHRDb250ZW50PSJcdTVERjJcdTY2MkZcdTY3MDBcdTY1QjAiLG9lLmRpc2FibGVkPSEwKTpQP29lLnRleHRDb250ZW50PSJcdTkxQ0RcdTY1QjBcdTVCODlcdTg4QzUiOihvZS50ZXh0Q29udGVudD0iXHU3MjQ4XHU2NzJDXHU4RjgzXHU2NUU3IixvZS5kaXNhYmxlZD0hMCksb2Uub25jbGljaz1vZS5kaXNhYmxlZD9udWxsOmZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUoamUsdHQsail9Y2F0Y2goSyl7digiXHU4QzAzXHU3NTI4XHU0RTBCXHU4RjdEXHU1OTMxXHU4RDI1OiAiKyhLJiZLLm1lc3NhZ2U/Sy5tZXNzYWdlOkspLCJlcnJvciIpfX19dmFyIHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLXNlY3Rpb24iKSxDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1jdXJyZW50LXJvdyIpLEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWFuZHJvaWQtYXBrLWN1cnJlbnQiKSxCPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1naXRodWItcm93IiksRD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYW5kcm9pZC1hcGstZ2l0aHViIiksRj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtZ2l0aHViLWFway1idG4iKSxJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1sb2NhbC1yb3ciKSxMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1hbmRyb2lkLWFway1sb2NhbCIpLEg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWxvY2FsLWFway1idG4iKSxVPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1tZXNzYWdlIikseD1lLmFuZHJvaWRBcGt8fHt9LGs9ISFJbixUPXguZW5hYmxlZCE9PSExLE09a3x8VCYmKCEheC5naXRodWJ8fCEheC5sb2NhbCk7aWYoeSYmKE0/eS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTp5LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSxrKXtpZihDJiZFJiYoRS50ZXh0Q29udGVudD0idiIrSW4sQy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSkseC5naXRodWImJkImJkQpe3ZhciBZPXguZ2l0aHViLnZlcnNpb24/InYiK3guZ2l0aHViLnZlcnNpb246eC5naXRodWIuZmlsZU5hbWU7aWYodHlwZW9mIHguZ2l0aHViLnNpemU9PSJudW1iZXIiJiYoWSs9IiBceEI3ICIreW4oeC5naXRodWIuc2l6ZSkpLEQudGV4dENvbnRlbnQ9WSxCLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEYpe3ZhciB6PXguZ2l0aHViLnZlcnNpb24/Zyh4LmdpdGh1Yi52ZXJzaW9uLEluKToxO20oRix6LHguZ2l0aHViLmRvd25sb2FkVXJsLHguZ2l0aHViLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIiwiZ2l0aHViIiwhMSl9fWlmKHgubG9jYWwmJkkmJkwpe3ZhciBRPXgubG9jYWwudmVyc2lvbj8idiIreC5sb2NhbC52ZXJzaW9uOngubG9jYWwuZmlsZU5hbWU7aWYodHlwZW9mIHgubG9jYWwuc2l6ZT09Im51bWJlciImJihRKz0iIFx4QjcgIit5bih4LmxvY2FsLnNpemUpKSxMLnRleHRDb250ZW50PVEsSS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxIKXt2YXIgbGU9eC5sb2NhbC52ZXJzaW9uP2coeC5sb2NhbC52ZXJzaW9uLEluKToxO20oSCxsZSx4LmxvY2FsLmRvd25sb2FkVXJsLHgubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLCJsb2NhbCIsITEpfX0heC5naXRodWImJiF4LmxvY2FsJiZVJiYoVS50ZXh0Q29udGVudD0iXHU2NjgyXHU2NUUwXHU1M0VGXHU3NTI4XHU2NkY0XHU2NUIwIixVLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgZWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXV0by11cGRhdGUtcm93IiksWj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hdXRvLXVwZGF0ZS1oaW50Iik7ZWUmJmVlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFomJlouY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZWxzZXtpZih4LmdpdGh1YiYmQiYmRCl7dmFyIHE9eC5naXRodWIudmVyc2lvbj8idiIreC5naXRodWIudmVyc2lvbjp4LmdpdGh1Yi5maWxlTmFtZTt0eXBlb2YgeC5naXRodWIuc2l6ZT09Im51bWJlciImJihxKz0iIFx4QjcgIit5bih4LmdpdGh1Yi5zaXplKSksRC50ZXh0Q29udGVudD1xLEIuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRiYmKEYudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIsRi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxGLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3Blbih4LmdpdGh1Yi5kb3dubG9hZFVybCwiX2JsYW5rIiksdigiXHU2QjYzXHU1NzI4XHU2MjUzXHU1RjAwXHU0RTBCXHU4RjdEXHU5ODc1XHUyMDI2IiwiaW5mbyIpfSl9aWYoeC5sb2NhbCYmSSYmTCl7dmFyIE89eC5sb2NhbC52ZXJzaW9uPyJ2Iit4LmxvY2FsLnZlcnNpb246eC5sb2NhbC5maWxlTmFtZTt0eXBlb2YgeC5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKE8rPSIgXHhCNyAiK3luKHgubG9jYWwuc2l6ZSkpLEwudGV4dENvbnRlbnQ9TyxJLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEgmJihILnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLEguY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksSC5vbmNsaWNrPWZ1bmN0aW9uKCl7aCh4LmxvY2FsLmRvd25sb2FkVXJsLHgubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLEgpfSl9IXguZ2l0aHViJiYheC5sb2NhbCYmVSYmKFUudGV4dENvbnRlbnQ9VD8iXHU1NzI4XHU3RUJGXHU3MjQ4XHU2NzJDXHU2NjgyXHU2NUY2XHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1IjoiQW5kcm9pZCBcdTRFMEJcdThGN0RcdTY3MkFcdTU3MjhcdTY3MERcdTUyQTFcdTdBRUZcdTU0MkZcdTc1MjgiLFUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfXZhciBOPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctc2VjdGlvbiIpLEc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1jdXJyZW50LXJvdyIpLEo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1jdXJyZW50IiksbmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1naXRodWItcm93IiksZGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1naXRodWIiKSxyZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtZ2l0aHViLWRtZy1idG4iKSxpZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWxvY2FsLXJvdyIpLHFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tYWNvcy1kbWctbG9jYWwiKSxnZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtbG9jYWwtZG1nLWJ0biIpLGNlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctbWVzc2FnZSIpLFI9ZS5tYWNvc0RtZ3x8e30saHQ9ISFzbixfZT1SLmVuYWJsZWQhPT0hMSwkPWh0fHxfZSYmKCEhUi5naXRodWJ8fCEhUi5sb2NhbCk7aWYoTiYmKCQ/Ti5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTpOLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSxodCl7aWYoRyYmSiYmKEoudGV4dENvbnRlbnQ9InYiK3NuLEcuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLFIuZ2l0aHViJiZuZSYmZGUpe3ZhciBmZT1SLmdpdGh1Yi52ZXJzaW9uPyJ2IitSLmdpdGh1Yi52ZXJzaW9uOlIuZ2l0aHViLmZpbGVOYW1lO2lmKHR5cGVvZiBSLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKGZlKz0iIFx4QjcgIit5bihSLmdpdGh1Yi5zaXplKSksZGUudGV4dENvbnRlbnQ9ZmUsbmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikscmUpe3ZhciBDZT1SLmdpdGh1Yi52ZXJzaW9uP2coUi5naXRodWIudmVyc2lvbixzbik6MTttKHJlLENlLFIuZ2l0aHViLmRvd25sb2FkVXJsLFIuZ2l0aHViLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIiwiZ2l0aHViIiwhMCl9fWlmKFIubG9jYWwmJmllJiZxZSl7dmFyIEJlPVIubG9jYWwudmVyc2lvbj8idiIrUi5sb2NhbC52ZXJzaW9uOlIubG9jYWwuZmlsZU5hbWU7aWYodHlwZW9mIFIubG9jYWwuc2l6ZT09Im51bWJlciImJihCZSs9IiBceEI3ICIreW4oUi5sb2NhbC5zaXplKSkscWUudGV4dENvbnRlbnQ9QmUsaWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZ2Upe3ZhciB2ZT1SLmxvY2FsLnZlcnNpb24/ZyhSLmxvY2FsLnZlcnNpb24sc24pOjE7bShnZSx2ZSxSLmxvY2FsLmRvd25sb2FkVXJsLFIubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLCJsb2NhbCIsITApfX0hUi5naXRodWImJiFSLmxvY2FsJiZjZSYmKGNlLnRleHRDb250ZW50PSJcdTY2ODJcdTY1RTBcdTUzRUZcdTc1MjhcdTY2RjRcdTY1QjAiLGNlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgRmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWF1dG8tdXBkYXRlLXJvdyIpLGV0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1hdXRvLXVwZGF0ZS1oaW50Iik7RmUmJkZlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGV0JiZldC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1lbHNle2lmKFIuZ2l0aHViJiZuZSYmZGUpe3ZhciBkdD1SLmdpdGh1Yi52ZXJzaW9uPyJ2IitSLmdpdGh1Yi52ZXJzaW9uOlIuZ2l0aHViLmZpbGVOYW1lO3R5cGVvZiBSLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKGR0Kz0iIFx4QjcgIit5bihSLmdpdGh1Yi5zaXplKSksZGUudGV4dENvbnRlbnQ9ZHQsbmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikscmUmJihyZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIixyZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyZS5vbmNsaWNrPWZ1bmN0aW9uKCl7d2luZG93Lm9wZW4oUi5naXRodWIuZG93bmxvYWRVcmwsIl9ibGFuayIpLHYoIlx1NkI2M1x1NTcyOFx1NjI1M1x1NUYwMFx1NEUwQlx1OEY3RFx1OTg3NVx1MjAyNiIsImluZm8iKX0pfWlmKFIubG9jYWwmJmllJiZxZSl7dmFyIGl0PVIubG9jYWwudmVyc2lvbj8idiIrUi5sb2NhbC52ZXJzaW9uOlIubG9jYWwuZmlsZU5hbWU7dHlwZW9mIFIubG9jYWwuc2l6ZT09Im51bWJlciImJihpdCs9IiBceEI3ICIreW4oUi5sb2NhbC5zaXplKSkscWUudGV4dENvbnRlbnQ9aXQsaWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZ2UmJihnZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIixnZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxnZS5vbmNsaWNrPWZ1bmN0aW9uKCl7aChSLmxvY2FsLmRvd25sb2FkVXJsLFIubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLGdlKX0pfSFSLmdpdGh1YiYmIVIubG9jYWwmJmNlJiYoY2UudGV4dENvbnRlbnQ9X2U/Ilx1NTcyOFx1N0VCRlx1NzI0OFx1NjcyQ1x1NjY4Mlx1NjVGNlx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1NTNFRlx1N0EwRFx1NTQwRVx1OTFDRFx1OEJENSI6Im1hY09TIFx1NEUwQlx1OEY3RFx1NjcyQVx1NTcyOFx1NjcwRFx1NTJBMVx1N0FFRlx1NTQyRlx1NzUyOCIsY2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfXZhciBOZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LWNvZGUiKSxSdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyIiksWWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1xci1lbXB0eSIpLERlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItd3JhcCIpO2lmKE5lKXtOZS50ZXh0Q29udGVudD0iXHU1MkEwXHU4RjdEXHU0RTJELi4uIixZZSYmKFllLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTRFMkRcdTIwMjYiKSxSdCYmKFJ0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO3ZhciBQZT0iL2FwaS9hcHAtY29ubmVjdC1jb2RlIjt3aW5kb3cubG9jYXRpb24mJndpbmRvdy5sb2NhdGlvbi5vcmlnaW4mJihQZSs9Ij9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLm9yaWdpbikpLGZldGNoKFBlLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihvZSl7cmV0dXJuIG9lLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ob2Upe29lLmNvZGU/KE5lLnRleHRDb250ZW50PW9lLmNvZGUsci5hbmRyb2lkQ29ubmVjdENvZGU9b2UuY29kZSx1ZyhvZS5jb2RlKSk6KE5lLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjUiLFllJiYoWWUudGV4dENvbnRlbnQ9Ilx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7TmUudGV4dENvbnRlbnQ9Ilx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNSIsWWUmJihZZS50ZXh0Q29udGVudD0iXHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1Iil9KX1EZSYmIURlLmRhdGFzZXQuYm91bmQmJihEZS5kYXRhc2V0LmJvdW5kPSIxIixEZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLmFuZHJvaWRDb25uZWN0Q29kZSYmb2coci5hbmRyb2lkQ29ubmVjdENvZGUpfSkpO3ZhciB0ZT1lLmNvbmZpZ3x8e30sd2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ob3N0Iiksdz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXBvcnQiKSxhdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWh0dHBzIiksa3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1tb2RlIiksdXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jd2QiKSxadD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXNoZWxsIik7d2UmJih3ZS52YWx1ZT10ZS5ob3N0fHwiIiksdyYmKHcudmFsdWU9dGUucG9ydHx8IiIpLGF0JiYoYXQuY2hlY2tlZD10ZS5odHRwcz09PSEwKSxrdCYmKGt0LnZhbHVlPXRlLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIpLHV0JiYodXQudmFsdWU9dGUuZGVmYXVsdEN3ZHx8IiIpLFp0JiYoWnQudmFsdWU9dGUuc2hlbGx8fCIiKTt2YXIgQXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1sYW5ndWFnZSIpO0F0JiYoQXQudmFsdWU9dGUubGFuZ3VhZ2V8fCIiKTt2YXIgV3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciIpO1d0JiYoV3QudmFsdWU9dGUuc3RydWN0dXJlZFJ1bm5lcnx8ImNsaSIpO3ZhciB6dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWluaGVyaXQtZW52Iik7enQmJih6dC5jaGVja2VkPXRlLmluaGVyaXRFbnYhPT0hMSk7dmFyIFRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LWNsaSIpLFVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsIik7VGUmJihUZS52YWx1ZT10ZS5jb21taXRDbGk9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIpLFVlJiYoVWUudmFsdWU9dGUuY29tbWl0TW9kZWx8fCIiLFVlLmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0idHJ1ZSIsVWUuZGF0YXNldC5tb2RlbERpcnR5PSJmYWxzZSIpLFZpKCExKTt2YXIgS2U9dGUuZGVmYXVsdE1vZGVscyYmdHlwZW9mIHRlLmRlZmF1bHRNb2RlbHM9PSJvYmplY3QiP3RlLmRlZmF1bHRNb2RlbHM6e2NsYXVkZTp0ZS5kZWZhdWx0TW9kZWx8fCIiLGNvZGV4OnRlLmRlZmF1bHRDb2RleE1vZGVsfHwiIn07ci5jb25maWdEZWZhdWx0TW9kZWxzPXtjbGF1ZGU6S2UuY2xhdWRlfHwiIixjb2RleDpLZS5jb2RleHx8IiJ9LHIuY29uZmlnRGVmYXVsdE1vZGVsPXIuY29uZmlnRGVmYXVsdE1vZGVscy5jbGF1ZGU7dmFyIHh0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpLFZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCIpO3h0JiZ4dC5kYXRhc2V0Lm1vZGVsRGlydHkhPT0idHJ1ZSImJih4dC5kYXRhc2V0Lm1vZGVsSW5pdGlhbGl6ZWQ9ImZhbHNlIiksVnQmJlZ0LmRhdGFzZXQubW9kZWxEaXJ0eSE9PSJ0cnVlIiYmKFZ0LmRhdGFzZXQubW9kZWxJbml0aWFsaXplZD0iZmFsc2UiKSxVaSgpLE5sKCkudGhlbihmdW5jdGlvbigpe1VpKCl9KS5jYXRjaChmdW5jdGlvbigpe30pO3ZhciBVdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1zdGF0dXMiKTtVdCYmKFV0LnRleHRDb250ZW50PWUuaGFzQ2VydD8iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiOiJcdTY3MkFcdTVCODlcdTg4QzVcdThCQzFcdTRFNjZcdUZGMDhcdTRGN0ZcdTc1MjhcdTgxRUFcdTdCN0VcdTU0MERcdTYyMTYgSFRUUFx1RkYwOSIsVXQuc3R5bGUuY29sb3I9ZS5oYXNDZXJ0PyJ2YXIoLS1zdWNjZXNzKSI6InZhcigtLXRleHQtc2Vjb25kYXJ5KSIpO3ZhciBFbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJlc2V0cy1saXN0Iik7aWYoRW4mJnRlLmNvbW1hbmRQcmVzZXRzKXtmb3IodmFyIGN0PSIiLGtlPTA7a2U8dGUuY29tbWFuZFByZXNldHMubGVuZ3RoO2tlKyspe3ZhciBKZT10ZS5jb21tYW5kUHJlc2V0c1trZV07Y3QrPSc8ZGl2IGNsYXNzPSJwcmVzZXQtaXRlbSI+PHNwYW4gY2xhc3M9InByZXNldC1sYWJlbCI+JytwKEplLmxhYmVsKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJwcmVzZXQtZGV0YWlsIj4nK3AoSmUuY29tbWFuZCkrKEplLm1vZGU/IiAoIitwKEplLm1vZGUpKyIpIjoiIikrIjwvc3Bhbj48L2Rpdj4ifWN0fHwoY3Q9JzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLWNvbXBhY3QiPjxzcGFuIGNsYXNzPSJlbXB0eS1pY29uIj5cdTI2OTk8L3NwYW4+PHNwYW4+XHU2Q0ExXHU2NzA5XHU1NDdEXHU0RUU0XHU5ODg0XHU4QkJFPC9zcGFuPjxzcGFuIGNsYXNzPSJoaW50Ij5cdTU3MjggY29uZmlnLmpzb24gXHU3Njg0IGNvbW1hbmRQcmVzZXRzIFx1NEUyRFx1OTE0RFx1N0Y2RTwvc3Bhbj48L2Rpdj4nKSxFbi5pbm5lckhUTUw9Y3R9dmFyIEFlPXRlLmNhcmREZWZhdWx0c3x8e30sT249ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWVkaXQiKSxmdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtaW5saW5lIiksZW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRlcm1pbmFsIiksdG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRoaW5raW5nIiksU3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRvb2xncm91cCIpO09uJiYoT24uY2hlY2tlZD1BZS5lZGl0Q2FyZHM9PT0hMCksZnQmJihmdC5jaGVja2VkPUFlLmlubGluZVRvb2xzPT09ITApLGVuJiYoZW4uY2hlY2tlZD1BZS50ZXJtaW5hbD09PSEwKSx0biYmKHRuLmNoZWNrZWQ9QWUudGhpbmtpbmc9PT0hMCksU3QmJihTdC5jaGVja2VkPUFlLnRvb2xHcm91cD09PSEwKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gbGcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlnLW1lc3NhZ2UiKTtlJiYoZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLnRleHRDb250ZW50PSIiKTt2YXIgdD0oKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpfHx7fSkudmFsdWV8fCIiKS50cmltKCksbj0oKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1jb2RleC1tb2RlbCIpfHx7fSkudmFsdWV8fCIiKS50cmltKCksaT0oKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LW1vZGVsIil8fHt9KS52YWx1ZXx8IiIpLnRyaW0oKSxhPXtob3N0Oihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhvc3QiKXx8e30pLnZhbHVlLHBvcnQ6TnVtYmVyKChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXBvcnQiKXx8e30pLnZhbHVlKSxodHRwczooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpfHx7fSkuY2hlY2tlZCxkZWZhdWx0TW9kZTooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1tb2RlIil8fHt9KS52YWx1ZSxkZWZhdWx0Q3dkOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWN3ZCIpfHx7fSkudmFsdWUsc2hlbGw6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc2hlbGwiKXx8e30pLnZhbHVlLGxhbmd1YWdlOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWxhbmd1YWdlIil8fHt9KS52YWx1ZXx8IiIsZGVmYXVsdE1vZGVsOnQsZGVmYXVsdENvZGV4TW9kZWw6bixkZWZhdWx0TW9kZWxzOntjbGF1ZGU6dCxjb2RleDpufSxjb21taXRDbGk6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY29tbWl0LWNsaSIpfHx7fSkudmFsdWU9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsY29tbWl0TW9kZWw6aSxzdHJ1Y3R1cmVkUnVubmVyOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXN0cnVjdHVyZWQtcnVubmVyIil8fHt9KS52YWx1ZXx8ImNsaSIsaW5oZXJpdEVudjooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpfHx7fSkuY2hlY2tlZCE9PSExfSx1PXl1KCksbz1hLmRlZmF1bHRNb2RlbHx8IiIscz1hLmRlZmF1bHRDb2RleE1vZGVsfHwiIjtmZXRjaCgiL2FwaS9zZXR0aW5ncy9jb25maWciLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGEpfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGUmJihsLmVycm9yPyhlLnRleHRDb250ZW50PWwuZXJyb3IsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIik6KGUudGV4dENvbnRlbnQ9bC5yZXN0YXJ0UmVxdWlyZWQ/Ilx1OTE0RFx1N0Y2RVx1NURGMlx1NEZERFx1NUI1OFx1RkYwQ1x1OTBFOFx1NTIwNlx1OTBFOFx1N0Y3Mlx1NUI1N1x1NkJCNVx1RkYwOGhvc3QvcG9ydC9odHRwcy9zaGVsbFx1RkYwOVx1OTcwMFx1ODk4MVx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1NjI0RFx1NzUxRlx1NjU0OFx1MzAwMiI6Ilx1OTE0RFx1N0Y2RVx1NURGMlx1NEZERFx1NUI1OFx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSwhbHx8IWwuZXJyb3Ipe3IuY29uZmlnJiYoci5jb25maWcuZGVmYXVsdE1vZGVsPW8sci5jb25maWcuZGVmYXVsdENvZGV4TW9kZWw9cyxyLmNvbmZpZy5kZWZhdWx0TW9kZWxzPXtjbGF1ZGU6byxjb2RleDpzfSxyLmNvbmZpZy5jb21taXRDbGk9YS5jb21taXRDbGksci5jb25maWcuY29tbWl0TW9kZWw9YS5jb21taXRNb2RlbCksci5jb25maWdEZWZhdWx0TW9kZWxzPXtjbGF1ZGU6byxjb2RleDpzfSxyLmNvbmZpZ0RlZmF1bHRNb2RlbD1vO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpLGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LWNvZGV4LW1vZGVsIik7ZCYmKGQuZGF0YXNldC5tb2RlbERpcnR5PSJmYWxzZSIpLGYmJihmLmRhdGFzZXQubW9kZWxEaXJ0eT0iZmFsc2UiKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNvbW1pdC1tb2RlbCIpO2MmJihjLmRhdGFzZXQubW9kZWxEaXJ0eT0iZmFsc2UiKSxvIT09dS5jbGF1ZGUmJmJ1KCJjbGF1ZGUiLCIiKSxzIT09dS5jb2RleCYmYnUoImNvZGV4IiwiIiksKG8hPT11LmNsYXVkZXx8cyE9PXUuY29kZXgpJiZYbihzdCgpKX19KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX1mdW5jdGlvbiBkZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXNwbGF5LW1lc3NhZ2UiKTtlJiYoZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLnRleHRDb250ZW50PSIiKTt2YXIgdD17Y2FyZERlZmF1bHRzOntlZGl0Q2FyZHM6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWVkaXQiKXx8e30pLmNoZWNrZWQsaW5saW5lVG9vbHM6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWlubGluZSIpfHx7fSkuY2hlY2tlZCx0ZXJtaW5hbDohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdGVybWluYWwiKXx8e30pLmNoZWNrZWQsdGhpbmtpbmc6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRoaW5raW5nIil8fHt9KS5jaGVja2VkLHRvb2xHcm91cDohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdG9vbGdyb3VwIil8fHt9KS5jaGVja2VkfX07ZmV0Y2goIi9hcGkvc2V0dGluZ3MvY29uZmlnIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtlJiYobi5lcnJvcj8oZS50ZXh0Q29udGVudD1uLmVycm9yLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIpOihlLnRleHRDb250ZW50PSJcdTY2M0VcdTc5M0FcdThCQkVcdTdGNkVcdTVERjJcdTRGRERcdTVCNTgiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksIW4uZXJyb3ImJnIuY29uZmlnJiYoci5jb25maWcuY2FyZERlZmF1bHRzPXQuY2FyZERlZmF1bHRzKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX0pfWZ1bmN0aW9uIGNnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQta2V5LWZpbGUiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LWNlcnQtZmlsZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtbWVzc2FnZSIpO2lmKG4mJihuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4udGV4dENvbnRlbnQ9IiIpLCFlfHwhZS5maWxlc3x8IWUuZmlsZXNbMF18fCF0fHwhdC5maWxlc3x8IXQuZmlsZXNbMF0pe24mJihuLnRleHRDb250ZW50PSJcdThCRjdcdTkwMDlcdTYyRTlcdTc5QzFcdTk0QTVcdTU0OENcdThCQzFcdTRFNjZcdTY1ODdcdTRFRjZcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7cmV0dXJufXZhciBpPW5ldyBGaWxlUmVhZGVyO2kub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGE9aS5yZXN1bHQsdT1uZXcgRmlsZVJlYWRlcjt1Lm9ubG9hZD1mdW5jdGlvbigpe3ZhciBvPXUucmVzdWx0O2ZldGNoKCIvYXBpL3NldHRpbmdzL3VwbG9hZC1jZXJ0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7a2V5OmEsY2VydDpvfSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7aWYobil7aWYocy5lcnJvciluLnRleHRDb250ZW50PXMuZXJyb3Isbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIjtlbHNle24udGV4dENvbnRlbnQ9Ilx1OEJDMVx1NEU2Nlx1NURGMlx1NEUwQVx1NEYyMFx1RkYwQ1x1OTFDRFx1NTQyRlx1NTQwRVx1NzUxRlx1NjU0OFx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LXN0YXR1cyIpO2wmJihsLnRleHRDb250ZW50PSJcdTVERjJcdTVCODlcdTg4QzUgU1NMIFx1OEJDMVx1NEU2NiIsbC5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKX1uLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNVx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX0pfSx1LnJlYWRBc1RleHQodC5maWxlc1swXSl9LGkucmVhZEFzVGV4dChlLmZpbGVzWzBdKX1mdW5jdGlvbiBabCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpO2UmJihlLnRleHRDb250ZW50PSJcdTY4QzBcdTY3RTVcdTRFMkQuLi4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZmV0Y2goIi9hcGkvY2hlY2stdXBkYXRlIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpLmVycm9yKXtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU1OTMxXHU4RDI1Iik7cmV0dXJufXZhciBhPWkuY2hhbm5lbD09PSJiZXRhIjtpZihlJiYoZS50ZXh0Q29udGVudD1pLmxhdGVzdHx8KGE/ImJldGEgXHU2NzJBXHU1M0QxXHU1RTAzIjoiLSIpKSwhaS5sYXRlc3Qpe24mJihuLnRleHRDb250ZW50PWE/Ilx1NjVFMFx1NkNENVx1OEJGQlx1NTNENiBucG0gYmV0YSBcdTcyNDhcdTY3MkNcdTMwMDIiOiJcdTY1RTBcdTZDRDVcdThGREVcdTYzQTVcdTUyMzAgbnBtIHJlZ2lzdHJ5XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3JldHVybn1pLnVwZGF0ZUF2YWlsYWJsZSYmdCYmKHQudGV4dENvbnRlbnQ9YT8iXHU2NkY0XHU2NUIwXHU1MjMwIEJldGEiOiJcdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDgiLHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLCFpLnVwZGF0ZUF2YWlsYWJsZSYmbiYmKG4udGV4dENvbnRlbnQ9YT8iXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwIEJldGEgXHU3MjQ4XHU2NzJDXHUzMDAyIjoiXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwXHU3MjQ4XHU2NzJDXHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTY4QzBcdTY3RTVcdTU5MzFcdThEMjUiKX0pfWZ1bmN0aW9uIGZnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1tZXNzYWdlIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO2lmKHQpe3ZhciBuPXQudGV4dENvbnRlbnR8fCJcdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDgiLGk9ZnVuY3Rpb24oKXt0LmRpc2FibGVkPSExLHQudGV4dENvbnRlbnQ9bix0LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1idXN5Iil9O3QuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU2NkY0XHU2NUIwXHU0RTJELi4uIix0LnNldEF0dHJpYnV0ZSgiYXJpYS1idXN5IiwidHJ1ZSIpLGUmJihlLnRleHRDb250ZW50PSJcdTZCNjNcdTU3MjhcdTY2RjRcdTY1QjBcdUZGMENcdThCRjdcdTdBMERcdTUwMTkuLi4iLGUuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksZmV0Y2goIi9hcGkvdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYS5lcnJvcil7ZSYmKGUudGV4dENvbnRlbnQ9YS5lcnJvcixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLGkoKTtyZXR1cm59aWYoZSYmKGUudGV4dENvbnRlbnQ9KGEubWVzc2FnZXx8Ilx1NjZGNFx1NjVCMFx1NUI4Q1x1NjIxMCIpKyJcdUZGMENcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTIwMjYiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSx0LnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1idXN5IiksdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxhLmRldGFjaGVkVXBkYXRlKWxuKGEucHJldmlvdXNJbnN0YW5jZUlkfHxudWxsLGEudmVyc2lvbnx8bnVsbCk7ZWxzZSBpZihhLnJlc3RhcnRSZXF1aXJlZCE9PSExKXlzKG51bGwsZSk7ZWxzZXt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tcmVzdGFydC1idXR0b24iKTt1JiZ1LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjZGNFx1NjVCMFx1NTkzMVx1OEQyNVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxpKCl9KX19ZnVuY3Rpb24gcGcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tcmVzdGFydC1idXR0b24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpO3lzKGUsdCl9ZnVuY3Rpb24gdmcoKXtmZXRjaCgiL2FwaS9hdXRvLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZS5hcGspcmV0dXJuIGZldGNoKCIvYXBpL2FuZHJvaWQtYXBrLXVwZGF0ZT9jdXJyZW50VmVyc2lvbj0iK2VuY29kZVVSSUNvbXBvbmVudChJbikse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYoISghdC51cGRhdGVBdmFpbGFibGV8fCF0LmRvd25sb2FkVXJsKSl0cnl7V2FuZE5hdGl2ZS5kb3dubG9hZFVwZGF0ZSh0LmRvd25sb2FkVXJsLHQuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLHQuc291cmNlfHwibG9jYWwiKX1jYXRjaHt9fSl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIG1nKCl7c24mJmZldGNoKCIvYXBpL2F1dG8tdXBkYXRlIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtpZihlLmRtZylyZXR1cm4gZmV0Y2goIi9hcGkvbWFjb3MtZG1nLXVwZGF0ZT9jdXJyZW50VmVyc2lvbj0iK2VuY29kZVVSSUNvbXBvbmVudChzbikse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYoISghdC51cGRhdGVBdmFpbGFibGV8fCF0LmRvd25sb2FkVXJsKSl0cnl7V2FuZE5hdGl2ZS5kb3dubG9hZFVwZGF0ZSh0LmRvd25sb2FkVXJsLHQuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLHQuc291cmNlfHwibG9jYWwiKX1jYXRjaHt9fSl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIFN1KGUsdCl7dmFyIG49e307bltlXT10LGZldGNoKCIvYXBpL2F1dG8tdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShuKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWFway10b2dnbGUiKSxvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1kbWctdG9nZ2xlIik7YSYmKGEuY2hlY2tlZD0hIWkud2ViKSx1JiYodS5jaGVja2VkPSEhaS5hcGspLG8mJihvLmNoZWNrZWQ9ISFpLmRtZyl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS0iK2UrIi10b2dnbGUiKTtpJiYoaS5jaGVja2VkPSF0KX0pfWZ1bmN0aW9uIGdnKGUpe2ZldGNoKCIvYXBpL3VwZGF0ZS1jaGFubmVsIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7Y2hhbm5lbDplfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTtuJiYobi5jaGVja2VkPXQuY2hhbm5lbD09PSJiZXRhIiksWmwoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTt0JiYodC5jaGVja2VkPWUhPT0iYmV0YSIpfSl9ZnVuY3Rpb24gZWQoZSl7Zm9yKHZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0uZ2V0QXR0cmlidXRlKCJkYXRhLWljb24iKT09PWU7dFtuXS5jbGFzc0xpc3QudG9nZ2xlKCJzZWxlY3RlZCIsaSksdFtuXS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsaT8idHJ1ZSI6ImZhbHNlIil9fWZ1bmN0aW9uIGJuKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1wZXJtaXNzaW9uLXN0YXR1cyIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1yZXF1ZXN0LWJ0biIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1yZXNldC1idG4iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIik7aWYoZSl7dmFyIGE9YmkoKTtpZihhPT09bnVsbCl7aWYodHlwZW9mIE5vdGlmaWNhdGlvbj4idSIpe2UudGV4dENvbnRlbnQ9Ilx1NEUwRFx1NjUyRlx1NjMwMSIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZmctbXV0ZWQpIix0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7cmV0dXJufWE9Tm90aWZpY2F0aW9uLnBlcm1pc3Npb259YT09PSJncmFudGVkIj8oZS50ZXh0Q29udGVudD0iXHU1REYyXHU2Mzg4XHU2NzQzIFx1MjcxMyIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSk6YT09PSJkZW5pZWQiPyhlLnRleHRDb250ZW50PSJcdTVERjJcdTYyRDJcdTdFREQiLGUuc3R5bGUuY29sb3I9InZhcigtLWRhbmdlcikiLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk6KGUudGV4dENvbnRlbnQ9Ilx1NjcyQVx1NjM4OFx1Njc0MyIsZS5zdHlsZS5jb2xvcj0idmFyKC0td2FybmluZykiLHQmJnQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9fWZ1bmN0aW9uIGhnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKTtpZihXZSl7d2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHQ9ZnVuY3Rpb24odCl7Ym4oKSxlJiYodD09PSJncmFudGVkIj8oZS50ZXh0Q29udGVudD0iXHUyNzEzIFx1NURGMlx1NjM4OFx1Njc0MyIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKTooZS50ZXh0Q29udGVudD0iXHUyNzE3IFx1NjcyQVx1NjM4OFx1Njc0M1x1RkYwQ1x1OEJGN1x1NTcyOFx1N0NGQlx1N0VERlx1OEJCRVx1N0Y2RVx1NEUyRFx1NUYwMFx1NTQyRiBXYW5kIFx1NzY4NFx1OTAxQVx1NzdFNVx1Njc0M1x1OTY1MCIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZGFuZ2VyKSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLGRlbGV0ZSB3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdH07dHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJufXR5cGVvZiBOb3RpZmljYXRpb24+InUifHxOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKGZ1bmN0aW9uKHQpe2lmKGJuKCksdD09PSJncmFudGVkIillJiYoZS50ZXh0Q29udGVudD0iXHUyNzEzIFx1NURGMlx1NjM4OFx1Njc0MyIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO2Vsc2UgaWYodD09PSJkZW5pZWQiJiZlKXt2YXIgbj1sb2NhdGlvbi5vcmlnaW47ZS5pbm5lckhUTUw9J1x1NkQ0Rlx1ODlDOFx1NTY2OFx1NURGMlx1NjJFNlx1NjIyQVx1NjM4OFx1Njc0M1x1NUYzOVx1N0E5N1x1RkYwQ1x1OEJGN1x1NjI0Qlx1NTJBOFx1OTFDRFx1N0Y2RVx1RkYxQTxicj48c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDttYXJnaW46NHB4IDAiPlx1MjQ2MCBcdTcwQjlcdTUxRkJcdTU3MzBcdTU3NDBcdTY4MEZcdTVERTZcdTRGQTdcdTc2ODQgPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Zm9udC1zaXplOjExcHg7dmVydGljYWwtYWxpZ246bWlkZGxlIj5pPC9zcGFuPiBcdTYyMTZcdTk1MDFcdTU2RkVcdTY4MDc8L3NwYW4+PGJyPlx1MjQ2MSBcdTYyN0VcdTUyMzBcdTMwMENcdTkwMUFcdTc3RTVcdTMwMERcdTIxOTIgXHU2NTM5XHU0RTNBXHUzMDBDXHU1MTQxXHU4QkI4XHUzMDBEPGJyPlx1MjQ2MiBcdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjJcdTUzNzNcdTUzRUYnLGUuc3R5bGUuY29sb3I9InZhcigtLWZnLW11dGVkKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KX1mdW5jdGlvbiB0ZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iKTtlJiYoZS5kaXNhYmxlZD0hMSxlLnRleHRDb250ZW50PSIxMCBcdTc5RDJcdTU0MEVcdTUzRDFcdTkwMDEiKX1mdW5jdGlvbiB5Zygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIik7ci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXImJihjbGVhclRpbWVvdXQoci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXIpLHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPW51bGwpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iKTt0JiYodC5kaXNhYmxlZD0hMCx0LnRleHRDb250ZW50PSJcdTVERjJcdTVCODlcdTYzOTJcdUZGMDgxMHNcdUZGMDkiKSxlJiYoZS5pbm5lckhUTUw9Ilx1NURGMlx1NUI4OVx1NjM5MiAxMCBcdTc5RDJcdTU0MEVcdTUzRDFcdTkwMDFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTVcdUZGMENcdThCRjdcdTUyMDdcdTUyMzBcdTU0MEVcdTUzRjBcdTdCNDlcdTVGODVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPW51bGwsdGQoKSxuZCgpfSwxZTQpfWZ1bmN0aW9uIG5kKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKSx0PVtdO3IuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyKSxyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1udWxsLHRkKCkpO3ZhciBuPW5wKCk7dC5wdXNoKG4/Ilx1MjcxMyBcdTYzRDBcdTc5M0FcdTk3RjMiOiJcdTI3MTcgXHU2M0QwXHU3OTNBXHU5N0YzXHVGRjA4XHU2NUUwXHU2Q0Q1XHU2NEFEXHU2NTNFXHVGRjA5Iik7dmFyIGk9ci5ub3RpZkJ1YmJsZTtpZihxYSh7dGl0bGU6Ilx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIsYm9keToiXHU4RkQ5XHU2NjJGXHU0RTAwXHU2NzYxXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1XHUzMDAyIix0eXBlOiJpbmZvIixpY29uOiJcdTI2NkEiLGR1cmF0aW9uOjVlMyxwbGF5U291bmQ6ITF9KSx0LnB1c2goaT8iXHUyNzEzIFx1NUU5NFx1NzUyOFx1NTE4NVx1NkMxNFx1NkNFMSI6Ilx1MjAxMyBcdTVFOTRcdTc1MjhcdTUxODVcdTZDMTRcdTZDRTFcdUZGMDhcdTVERjJcdTUxNzNcdTk1RURcdUZGMDkiKSxXZSl7dmFyIGE9YmkoKTtpZihhPT09ImdyYW50ZWQiKXRyeXtXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb24oIldhbmQgXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1IiwiXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1REYyXHU2QjYzXHU1RTM4XHU1REU1XHU0RjVDXHUzMDAyIiwid2FuZC10ZXN0IiksdC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1Iil9Y2F0Y2h7dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHVGRjA5Iil9ZWxzZSBpZihhPT09ImRlbmllZCIpdC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2MkQyXHU3RUREXHVGRjBDXHU4QkY3XHU1NzI4XHU3Q0ZCXHU3RURGXHU4QkJFXHU3RjZFXHU0RTJEXHU1RjAwXHU1NDJGXHVGRjA5Iik7ZWxzZXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbihzKXtpZihibigpLHM9PT0iZ3JhbnRlZCIpdHJ5e1dhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbigiV2FuZCBcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLCJcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTVERjJcdTZCNjNcdTVFMzhcdTVERTVcdTRGNUNcdTMwMDIiLCJ3YW5kLXRlc3QiKSx0LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYzODhcdTY3NDNcdUZGMDkiKX1jYXRjaHt0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdUZGMDkiKX1lbHNlIHQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NjcyQVx1NjM4OFx1Njc0M1x1RkYwOSIpO3JyKGUsdCksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm59cnIoZSx0KTtyZXR1cm59aWYodHlwZW9mIE5vdGlmaWNhdGlvbj4idSIpe3QucHVzaCgiXHUyMDEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NEUwRFx1NjUyRlx1NjMwMVx1RkYwOSIpLHJyKGUsdCk7cmV0dXJufXZhciB1PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uO2lmKHU9PT0iZ3JhbnRlZCIpe3RyeXt2YXIgbz1uZXcgTm90aWZpY2F0aW9uKCJXYW5kIFx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIse2JvZHk6Ilx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NURGMlx1NkI2M1x1NUUzOFx1NURFNVx1NEY1Q1x1MzAwMiIsaWNvbjoiL2Zhdmljb24uaWNvIix0YWc6IndhbmQtdGVzdCJ9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7by5jbG9zZSgpfSw1ZTMpLHQucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNSIpfWNhdGNoe3QucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1RkYwQ1x1NTNFRlx1ODBGRFx1OTcwMFx1ODk4MSBIVFRQU1x1RkYwOSIpfXJyKGUsdCl9ZWxzZSB1PT09ImRlbmllZCI/KHQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjJEMlx1N0VERFx1RkYwOSIpLHJyKGUsdCkpOk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oZnVuY3Rpb24ocyl7Ym4oKSxzPT09ImdyYW50ZWQiP3QucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjM4OFx1Njc0M1x1RkYwOSIpOnQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NjcyQVx1NjM4OFx1Njc0M1x1RkYwOSIpLHJyKGUsdCl9KX1mdW5jdGlvbiBycihlLHQpe2lmKGUpe2UuaW5uZXJIVE1MPXQubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBwKGkpfSkuam9pbigiPGJyPiIpO3ZhciBuPXQuZXZlcnkoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaW5kZXhPZigiXHUyNzEzIik9PT0wfHxpLmluZGV4T2YoIlx1MjAxMyIpPT09MH0pO2Uuc3R5bGUuY29sb3I9bj8idmFyKC0tc3VjY2VzcykiOiJ2YXIoLS13YXJuaW5nKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19ZnVuY3Rpb24gbHQoZSl7aWYoIWV8fHR5cGVvZiBlIT0ib2JqZWN0Inx8IXIudGVybWluYWwpcmV0dXJuIGU7dHJ5e3R5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX1jYXRjaHt9dmFyIHQ9ci50ZXJtaW5hbC5jb2xzLG49ci50ZXJtaW5hbC5yb3dzO3JldHVybiB0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBuPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHQpJiZOdW1iZXIuaXNGaW5pdGUobikmJnQ+MCYmbj4wJiYoZS5jb2xzPXQsZS5yb3dzPW4pLGV9ZnVuY3Rpb24gcmQoKXtyZXR1cm4gci50ZXJtaW5hbCYmci50ZXJtaW5hbC5jb2xzP1Byb21pc2UucmVzb2x2ZSgpOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciB0PSExLG49ZnVuY3Rpb24oKXt0fHwodD0hMCxlKCkpfSxpPXNldFRpbWVvdXQobiwyZTMpO3RyeXtZbigpfWNhdGNoe31yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLmNvbHMmJihjbGVhclRpbWVvdXQoaSksbigpKX0pfSl9KX1mdW5jdGlvbiBpZCgpe3ZhciBlPXJ0KCksdD0kZSgpLG49bXQoZSxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGU/ci5jb25maWcuZGVmYXVsdE1vZGU6ImRlZmF1bHQiKTtyLnByZWZlcnJlZENvbW1hbmQ9ZSxyLmNoYXRNb2RlPW10KGUsci5jaGF0TW9kZSkscmQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDplLHByb3ZpZGVyOmUsY3dkOnQsbW9kZTpufSkpfSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaS5lcnJvcil7QShpLmVycm9yLCJlcnJvciIpO3JldHVybn1yZXR1cm4gci5zZWxlY3RlZElkPWkuaWQsaGUoKSxyLmRyYWZ0c1tpLmlkXT0iIix3dCgpLE90KCl9KS50aGVuKGZ1bmN0aW9uKCl7UHQoITApfSkuY2F0Y2goZnVuY3Rpb24oKXtBKCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpfSl9dmFyIEtyPSExO2Z1bmN0aW9uIGJnKCl7aWYoIUtyKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kYWwtZXJyb3IiKSxuPXJ0KCksaT1yLnNlc3Npb25DcmVhdGVLaW5kfHwic3RydWN0dXJlZCIsYT1yLnNlc3Npb25DcmVhdGVXb3JrdHJlZT09PSEwO3lpKHQpO3ZhciB1PSRlKCksbz0oZT9lLnZhbHVlLnRyaW0oKToiIil8fHUscz1tdChuLHIubW9kZVZhbHVlKTtpZihHaSh7ZGVmYXVsdFByb3ZpZGVyOm4sZGVmYXVsdFNlc3Npb25LaW5kOmksZGVmYXVsdE1vZGU6c30pLGk9PT0ic3RydWN0dXJlZCIpe0VnKG8scyxhLHQpO3JldHVybn1GZyhuLG8scyxhLHQpfX1mdW5jdGlvbiBFZyhlLHQsbixpKXt2YXIgYT1yLnNlc3Npb25Ub29sPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiO3JldHVybiBLcj0hMCxyLm1vZGVWYWx1ZT10LHIuY2hhdE1vZGU9dCxyLnNlc3Npb25Ub29sPWEsci5wcmVmZXJyZWRDb21tYW5kPWEsSGkoKSxYbihzdCgpKSxKbCh2b2lkIDAsZSx0LG4pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIEd0KGUpLGhuKCksX3QoKSx1fSkudGhlbihmdW5jdGlvbigpe1B0KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKHUpe0hlKGksdSYmdS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3ODZFXHU4QkE0IENsYXVkZSBcdTVERjJcdTZCNjNcdTc4NkVcdTVCODlcdTg4QzVcdTMwMDIiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtLcj0hMX0pfWZ1bmN0aW9uIEZnKGUsdCxuLGksYSl7S3I9ITAsci5tb2RlVmFsdWU9bixyLmNoYXRNb2RlPW4sci5zZXNzaW9uVG9vbD1lLHIucHJlZmVycmVkQ29tbWFuZD1lLEhpKCkscmQoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShsdCh7Y29tbWFuZDplLHByb3ZpZGVyOmUsY3dkOnQsbW9kZTpuLHdvcmt0cmVlRW5hYmxlZDppfSkpfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odSl7aWYodS5lcnJvcil7SGUoYSx1LmVycm9yKTtyZXR1cm59cmV0dXJuIHIuc2VsZWN0ZWRJZD11LmlkLGhlKCksR3QodCksci5kcmFmdHNbdS5pZF09IiIsd3QoKSxobigpLF90KCksT3QoKX0pLnRoZW4oZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ/SHQoci5zZWxlY3RlZElkKTpQdCghMCl9KS5jYXRjaChmdW5jdGlvbigpe0hlKGEsZT09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgY29kZXggXHU1REYyXHU2QjYzXHU3ODZFXHU1Qjg5XHU4OEM1XHU1RTc2XHU1M0VGXHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU2MjY3XHU4ODRDXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENsYXVkZSBcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgQ2xhdWRlIFx1NURGMlx1NkI2M1x1Nzg2RVx1NUI4OVx1ODhDNVx1MzAwMiIpfSkuZmluYWxseShmdW5jdGlvbigpe0tyPSExfSl9ZnVuY3Rpb24gd2coKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QiKTtlJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYWQpLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7KHQua2V5PT09IkVudGVyInx8dC5rZXk9PT0iICIpJiYodC5wcmV2ZW50RGVmYXVsdCgpLGFkKCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1kcm9wZG93biIpO2lmKCEoIW58fG4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSkmJiF0LnRhcmdldC5jbG9zZXN0KCIuYmxhbmstY2hhdC1jd2Qtd3JhcCIpKXtuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2kmJihpLnRleHRDb250ZW50PSJcdTI1QkMiKX19KSl9ZnVuY3Rpb24gYWQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtZHJvcGRvd24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2lmKGUpe3ZhciBuPWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKTtuPyhDZyhlKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHQmJih0LnRleHRDb250ZW50PSJcdTI1QjIiKSk6KGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdCYmKHQudGV4dENvbnRlbnQ9Ilx1MjVCQyIpKX19ZnVuY3Rpb24gQ2coZSl7dmFyIHQ9YW4oKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9kaXY+JyxEYShmdW5jdGlvbihuKXt2YXIgaT0iIixhPXIud29ya2luZ0Rpcnx8dDtpZihpKz0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbScrKGE9PT10PyIgYWN0aXZlIjoiIikrJyIgZGF0YS1wYXRoPSInK3AodCkrJyI+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0tbGFiZWwiPlx1OUVEOFx1OEJBNDwvc3Bhbj4nK2d0KHQsImJsYW5rLWNoYXQtY3dkLWl0ZW0tcGF0aCIpKyI8L2Rpdj4iLG4ubGVuZ3RoKXt2YXIgdT17fTt1W3RdPSEwLG4uZm9yRWFjaChmdW5jdGlvbihvKXt1W28ucGF0aF18fCh1W28ucGF0aF09ITAsaSs9JzxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0nKyhhPT09by5wYXRoPyIgYWN0aXZlIjoiIikrJyIgZGF0YS1wYXRoPSInK3Aoby5wYXRoKSsnIj4nK2d0KG8ucGF0aCwiYmxhbmstY2hhdC1jd2QtaXRlbS1wYXRoIikrIjwvZGl2PiIpfSl9ZS5pbm5lckhUTUw9aSxqdChlKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibGFuay1jaGF0LWN3ZC1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihvKXtvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihzKXtzLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBsPW8uZGF0YXNldC5wYXRoO3Iud29ya2luZ0Rpcj1sO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIsbCl9Y2F0Y2h7fXZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIik7SHUoZCxsKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2YmJihmLnRleHRDb250ZW50PSJcdTI1QkMiKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpO2MmJihjLnZhbHVlPWwpfSl9KX0pfWZ1bmN0aW9uIEJnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlY2VudC1wYXRocy1idWJibGVzIik7ZSYmRGEoZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXtlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5pbm5lckhUTUw9dC5tYXAoZnVuY3Rpb24obil7cmV0dXJuJzxidXR0b24gY2xhc3M9InJlY2VudC1wYXRoLWJ1YmJsZSIgZGF0YS1wYXRoPSInK3Aobi5wYXRoKSsnIiB0aXRsZT0iJytwKG4ucGF0aCkrJyI+JytndChuLnBhdGgsInJlY2VudC1wYXRoLWJ1YmJsZS1wYXRoIikrIjwvYnV0dG9uPiJ9KS5qb2luKCIiKSxqdChlKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5yZWNlbnQtcGF0aC1idWJibGUiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpO2kmJihpLnZhbHVlPW4uZGF0YXNldC5wYXRofHwiIixyLmN3ZFZhbHVlPW4uZGF0YXNldC5wYXRofHwiIil9KX0pfSl9ZnVuY3Rpb24gdWQoKXtyLnN1Z2dlc3Rpb25UaW1lciYmY2xlYXJUaW1lb3V0KHIuc3VnZ2VzdGlvblRpbWVyKSxyLnN1Z2dlc3Rpb25UaW1lcj1zZXRUaW1lb3V0KERnLDEyMCl9ZnVuY3Rpb24gRGcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2lmKGUmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSl7aXIoKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpO3QmJmZldGNoKCIvYXBpL3BhdGgtc3VnZ2VzdGlvbnM/cT0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnZhbHVlLnRyaW0oKSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oa2cpLmNhdGNoKGlyKX1mdW5jdGlvbiBrZyhlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkLXN1Z2dlc3Rpb25zIik7aWYoIXR8fCFlLmxlbmd0aCl7aXIoKTtyZXR1cm59dC5pbm5lckhUTUw9ZS5tYXAoZnVuY3Rpb24obil7cmV0dXJuJzxidXR0b24gY2xhc3M9InN1Z2dlc3Rpb24taXRlbSIgZGF0YS1wYXRoPSInK3Aobi5wYXRoKSsnIj48c3Ryb25nPicrcChuLm5hbWUpKyI8L3N0cm9uZz48c21hbGw+IitndChuLnBhdGgsInN1Z2dlc3Rpb24taXRlbS1wYXRoIikrIjwvc21hbGw+PC9idXR0b24+In0pLmpvaW4oIiIpLGp0KHQpLHQucXVlcnlTZWxlY3RvckFsbCgiLnN1Z2dlc3Rpb24taXRlbSIpLmZvckVhY2goZnVuY3Rpb24obil7bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIikudmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLHIuY3dkVmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLGlyKCl9KX0pLHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZnVuY3Rpb24gaXIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkLXN1Z2dlc3Rpb25zIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5pbm5lckhUTUw9IiIpfWZ1bmN0aW9uIEFnKGUpe2lmKCFlLmlzQ29tcG9zaW5nKXtpZihfcyhlKSl7WWEoZSk7cmV0dXJufWlmKGUua2V5PT09IkVudGVyIil7aWYoZS5zaGlmdEtleSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih0KXt2YXIgbj10LnNlbGVjdGlvblN0YXJ0fHwwLGk9dC52YWx1ZSxhPWkuc2xpY2UoMCxuKStgCmAraS5zbGljZShuKTt0LnZhbHVlPWEsdC5zZWxlY3Rpb25TdGFydD1uKzEsdC5zZWxlY3Rpb25FbmQ9bisxLFplKGEsITApLEN0KHQpfXJldHVybn1lLnByZXZlbnREZWZhdWx0KCk7dmFyIHU9ISEoZS5tZXRhS2V5fHxlLmN0cmxLZXkpO1NzKHU/e2ludGVycnVwdDohMH06dm9pZCAwKTtyZXR1cm59aWYoZS5rZXk9PT0iQmFja3NwYWNlIil7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZaZShtLnZhbHVlLCEwKX0sMCk7cmV0dXJufWlmKGUua2V5PT09IlRhYiIpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYodCl7dmFyIG49dC5zZWxlY3Rpb25TdGFydHx8MCxpPXQudmFsdWUsYT1pLnNsaWNlKDAsbikrIgkiK2kuc2xpY2Uobik7dC52YWx1ZT1hLFplKGEsITApfXJldHVybn1pZihlLmtleT09PSJFc2NhcGUiKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG89c3QoKTt1ZShvKT9vJiZvLnN0cnVjdHVyZWRTdGF0ZSYmby5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJkdhKCk6dnQoVHIoImVzY2FwZSIpLCJlc2NhcGUiKTtyZXR1cm59aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJjIil7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGw9cyYmcy5zZWxlY3Rpb25TdGFydCE9PXMuc2VsZWN0aW9uRW5kfHxEaSgpO2lmKGwpcmV0dXJuO3ZhciBkPXN0KCk7aWYodWUoZCkpe2UucHJldmVudERlZmF1bHQoKSxkJiZkLnN0cnVjdHVyZWRTdGF0ZSYmZC5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJkdhKCk7cmV0dXJufWUucHJldmVudERlZmF1bHQoKSx2dChUcigiY3RybF9jIiksImN0cmxfYyIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImQiKXt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksYz1mJiZmLnNlbGVjdGlvblN0YXJ0IT09Zi5zZWxlY3Rpb25FbmR8fERpKCk7aWYoYylyZXR1cm47dmFyIHY9c3QoKTtpZih1ZSh2KSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3JldHVybn1lLnByZXZlbnREZWZhdWx0KCksdnQoVHIoImN0cmxfZCIpLCJjdHJsX2QiKTtyZXR1cm59aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJsIil7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBoPXN0KCk7aWYodWUoaCkpcmV0dXJuO3Z0KFRyKCJjdHJsX2wiKSwiY3RybF9sIik7cmV0dXJufWlmKCEoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJhIikmJiEoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJ2Iikpe2lmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0ieCIpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxnPXQmJnQuc2VsZWN0aW9uU3RhcnQhPT10LnNlbGVjdGlvbkVuZDtpZihnKXJldHVybjtlLnByZXZlbnREZWZhdWx0KCksdnQoIhgiLCJjdHJsX3giKTtyZXR1cm59ZS5rZXkubGVuZ3RoPT09MSYmIWUuY3RybEtleSYmIWUubWV0YUtleSYmIWUuYWx0S2V5JiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO20mJlplKG0udmFsdWUpfSwwKX19fXZhciB4Zz0xMCoxMDI0KjEwMjQ7ZnVuY3Rpb24gU2coZSl7cmV0dXJuIGU8MTAyND9lKyIgQiI6ZTwxMDI0KjEwMjQ/KGUvMTAyNCkudG9GaXhlZCgxKSsiIEtCIjooZS8oMTAyNCoxMDI0KSkudG9GaXhlZCgxKSsiIE1CIn1mdW5jdGlvbiBJZyhlKXtyZXR1cm4vXmltYWdlXC8ocG5nfGpwZT9nfGdpZnx3ZWJwfGJtcHxzdmdcK3htbCkvLnRlc3QoZSl9ZnVuY3Rpb24gSXUoZSl7aWYoZSl7aWYoZS5zaXplPnhnKXtBKCJcdTY1ODdcdTRFRjZcdThGQzdcdTU5MjdcdUZGMDhcdTRFMEFcdTk2NTAgMTAgTUJcdUZGMDk6ICIrZS5uYW1lLCJlcnJvciIpO3JldHVybn12YXIgdD17ZmlsZTplLG5hbWU6ZS5uYW1lLHNpemU6ZS5zaXplLHByZXZpZXdVcmw6bnVsbH07SWcoZS50eXBlKSYmKHQucHJldmlld1VybD1VUkwuY3JlYXRlT2JqZWN0VVJMKGUpKSxyLnBlbmRpbmdBdHRhY2htZW50cy5wdXNoKHQpLFR1KCl9fWZ1bmN0aW9uIFRnKGUpe3ZhciB0PXIucGVuZGluZ0F0dGFjaG1lbnRzLnNwbGljZShlLDEpO3QubGVuZ3RoJiZ0WzBdLnByZXZpZXdVcmwmJlVSTC5yZXZva2VPYmplY3RVUkwodFswXS5wcmV2aWV3VXJsKSxUdSgpfWZ1bmN0aW9uIExnKCl7ci5wZW5kaW5nQXR0YWNobWVudHMuZm9yRWFjaChmdW5jdGlvbihlKXtlLnByZXZpZXdVcmwmJlVSTC5yZXZva2VPYmplY3RVUkwoZS5wcmV2aWV3VXJsKX0pLHIucGVuZGluZ0F0dGFjaG1lbnRzPVtdLFR1KCl9ZnVuY3Rpb24gVHUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNobWVudC1wcmV2aWV3Iik7aWYoZSl7dmFyIHQ9ci5wZW5kaW5nQXR0YWNobWVudHM7aWYodC5sZW5ndGg9PT0wKXtlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuaW5uZXJIVE1MPSIiO3JldHVybn1lLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO2Zvcih2YXIgbj0iIixpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV0sdT1hLnByZXZpZXdVcmw/JzxpbWcgc3JjPSInK3AoYS5wcmV2aWV3VXJsKSsnIiBhbHQ9IiI+JzonPHNwYW4gY2xhc3M9ImF0dC1pY29uIj4nK1YoImZpbGUiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyI8L3NwYW4+IjtuKz0nPHNwYW4gY2xhc3M9ImF0dGFjaG1lbnQtcGlsbCIgZGF0YS1pbmRleD0iJytpKyciPicrdSsnPHNwYW4gY2xhc3M9ImF0dC1uYW1lIiB0aXRsZT0iJytwKGEubmFtZSkrJyI+JytwKGEubmFtZSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXR0LXNpemUiPicrU2coYS5zaXplKSsnPC9zcGFuPjxidXR0b24gY2xhc3M9ImF0dC1yZW1vdmUiIGRhdGEtaW5kZXg9IicraSsnIiB0aXRsZT0iXHU3OUZCXHU5NjY0Ij5ceEQ3PC9idXR0b24+PC9zcGFuPid9ZS5pbm5lckhUTUw9bixlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hdHQtcmVtb3ZlIikuZm9yRWFjaChmdW5jdGlvbihvKXtvLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihzKXtzLnByZXZlbnREZWZhdWx0KCkscy5zdG9wUHJvcGFnYXRpb24oKSxUZyhwYXJzZUludChvLmdldEF0dHJpYnV0ZSgiZGF0YS1pbmRleCIpLDEwKSl9KX0pfX1mdW5jdGlvbiBNZyhlKXtpZighci5wZW5kaW5nQXR0YWNobWVudHMubGVuZ3RoKXJldHVybiBQcm9taXNlLnJlc29sdmUoW10pO3ZhciB0PW5ldyBGb3JtRGF0YTtyZXR1cm4gci5wZW5kaW5nQXR0YWNobWVudHMuZm9yRWFjaChmdW5jdGlvbihuKXt0LmFwcGVuZCgiZmlsZXMiLG4uZmlsZSxuLm5hbWUpfSksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi91cGxvYWQiLHttZXRob2Q6IlBPU1QiLGJvZHk6dCxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3Rocm93IG5ldyBFcnJvcihpLmVycm9yfHwiXHU0RTBBXHU0RjIwXHU1OTMxXHU4RDI1Iil9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uZmlsZXN8fFtdfSl9ZnVuY3Rpb24gcWcoZSl7aWYoIWV8fCFlLmxlbmd0aClyZXR1cm4iIjt2YXIgdD1lLm1hcChmdW5jdGlvbihuKXtyZXR1cm4gbi5zYXZlZFBhdGh9KTtyZXR1cm5gW1x1OTY0NFx1NEVGNlx1NURGMlx1NEUwQVx1NEYyMFx1RkYwQ1x1OEJGN1x1NjdFNVx1NzcwQlx1NEVFNVx1NEUwQlx1NjU4N1x1NEVGNjoKYCt0LmpvaW4oYApgKStgXQoKYH1mdW5jdGlvbiBvZChlKXtpZighci50ZXJtaW5hbEludGVyYWN0aXZlfHwhZXx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpKXJldHVybiExO3ZhciB0PWUudmFsdWV8fCIiO3JldHVybiB0Pyh2dCh0LCJpbnRlcmFjdGl2ZV90ZXh0IikuY2F0Y2goZnVuY3Rpb24oKXt9KSxlLnZhbHVlPSIiLEN0KGUpLFplKCIiLCEwKSwhMCk6ITF9ZnVuY3Rpb24gUGcoZSl7dmFyIHQ9ZS5jbGlwYm9hcmREYXRhJiZlLmNsaXBib2FyZERhdGEuaXRlbXM7aWYodCYmIXIudGVybWluYWxJbnRlcmFjdGl2ZSl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXS50eXBlLmluZGV4T2YoImltYWdlLyIpPT09MCl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPXRbbl0uZ2V0QXNGaWxlKCk7aSYmSXUoaSk7cmV0dXJufX12YXIgYT1lLmNsaXBib2FyZERhdGEmJmUuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCJ0ZXh0Iik7aWYoYSl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLHIudGVybWluYWxJbnRlcmFjdGl2ZSl7dnQoYSwicGFzdGUiKS5jYXRjaChmdW5jdGlvbigpe30pO3JldHVybn12YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYodSl7dmFyIG89dS5zZWxlY3Rpb25TdGFydHx8MCxzPXUuc2VsZWN0aW9uRW5kfHwwLGw9dS52YWx1ZSxkPWwuc2xpY2UoMCxvKSthK2wuc2xpY2Uocyk7dS52YWx1ZT1kLFplKGQpfX19ZnVuY3Rpb24gRGgoZSl7dnQoZSksWmUoT2coKStlKX1mdW5jdGlvbiBPZygpe2lmKHIuc2VsZWN0ZWRJZCl7aWYoci5kcmFmdHNbci5zZWxlY3RlZElkXSE9PXZvaWQgMClyZXR1cm4gci5kcmFmdHNbci5zZWxlY3RlZElkXTt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtZHJhZnQtIityLnNlbGVjdGVkSWQpO2lmKGUpcmV0dXJuIGV9Y2F0Y2h7fX1yZXR1cm4iIn1mdW5jdGlvbiBaZShlLHQpe2lmKHIuc2VsZWN0ZWRJZCl7ci5kcmFmdHNbci5zZWxlY3RlZElkXT1lO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1kcmFmdC0iK3Iuc2VsZWN0ZWRJZCxlKX1jYXRjaHt9aWYoIXQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtuJiYobi52YWx1ZT1lKX19fXZhciBMdT0hMTtmdW5jdGlvbiBIZygpe2lmKCFMdSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb21wdC1vcHRpbWl6ZS1idG4iKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKGUpe3ZhciBpPShlLnZhbHVlfHwiIikudHJpbSgpO2lmKCFpKXt0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQSgiXHU4QkY3XHU1MTQ4XHU4RjkzXHU1MTY1XHU4OTgxXHU0RjE4XHU1MzE2XHU3Njg0XHU1MTg1XHU1QkI5XHUzMDAyIiwiaW5mbyIpLGUuZm9jdXMoKTtyZXR1cm59THU9ITAsdCYmKHQuY2xhc3NMaXN0LmFkZCgiaXMtbG9hZGluZyIpLHQuZGlzYWJsZWQ9ITAsdC5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2QjYzXHU1NzI4XHU0RjE4XHU1MzE2XHUyMDI2IikpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaXMtb3B0aW1pemluZyIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWJ1c3kiLCJ0cnVlIik7dmFyIGE9ZS5yZWFkT25seTtlLnJlYWRPbmx5PSEwO3ZhciB1PXt0ZXh0Oml9O3ImJnIuc2VsZWN0ZWRJZCYmKHUuc2Vzc2lvbklkPXIuc2VsZWN0ZWRJZCksZmV0Y2goIi9hcGkvb3B0aW1pemUtcHJvbXB0Iix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh1KX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJue29rOm8ub2ssZGF0YTpzfX0pfSkudGhlbihmdW5jdGlvbihvKXtpZighby5vayl0aHJvdyBuZXcgRXJyb3Ioby5kYXRhJiZvLmRhdGEuZXJyb3J8fCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgcz1vLmRhdGEmJm8uZGF0YS5vcHRpbWl6ZWR8fCIiO2lmKCFzKXRocm93IG5ldyBFcnJvcigiQ2xhdWRlIFx1OEZENFx1NTZERVx1NEUzQVx1N0E3QVx1MzAwMiIpO19nKGUscyl9KS5jYXRjaChmdW5jdGlvbihvKXt0eXBlb2YgQT09ImZ1bmN0aW9uIiYmQShvJiZvLm1lc3NhZ2V8fCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdTU5MzFcdThEMjVcdTMwMDIiLCJlcnJvciIpLHQmJih0LmNsYXNzTGlzdC5yZW1vdmUoImlzLWxvYWRpbmciKSx0LmNsYXNzTGlzdC5hZGQoImlzLXNoYWtlIiksc2V0VGltZW91dChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtc2hha2UiKX0sNDAwKSl9KS5maW5hbGx5KGZ1bmN0aW9uKCl7THU9ITEsdCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtbG9hZGluZyIpLHQuZGlzYWJsZWQ9ITEsdC5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2XHVGRjA4QUlcdUZGMDkiKSksbiYmbi5jbGFzc0xpc3QucmVtb3ZlKCJpcy1vcHRpbWl6aW5nIiksZS5yZW1vdmVBdHRyaWJ1dGUoImFyaWEtYnVzeSIpLGUucmVhZE9ubHk9YX0pfX19ZnVuY3Rpb24gX2coZSx0KXtpZighZSlyZXR1cm47dmFyIG49QXJyYXkuZnJvbSh0KSxpPW4ubGVuZ3RoO2lmKGk9PT0wKXtlLnZhbHVlPSIiLFplKCIiLCEwKSxDdChlKTtyZXR1cm59dmFyIGE9TWF0aC5taW4oNzAwLE1hdGgubWF4KDIyMCxpKjgpKSx1PU1hdGgubWluKGksNjApLG89TWF0aC5jZWlsKGkvdSkscz1hL3UsbD0wO2UudmFsdWU9IiIsQ3QoZSk7ZnVuY3Rpb24gZCgpe2lmKGw9TWF0aC5taW4oaSxsK28pLGUudmFsdWU9bi5zbGljZSgwLGwpLmpvaW4oIiIpLEN0KGUpLGw8aSlzZXRUaW1lb3V0KGQscyk7ZWxzZXtaZSh0LCEwKTt0cnl7ZS5zZXRTZWxlY3Rpb25SYW5nZSh0Lmxlbmd0aCx0Lmxlbmd0aCl9Y2F0Y2h7fX19ZCgpfWZ1bmN0aW9uICRpKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKHQpe3ZhciBuPWV8fGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxpPSEhKG4mJm4udmFsdWUmJm4udmFsdWUubGVuZ3RoPjApO3QuY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXRleHQiLGkpfX1yLl9zdGF0dXNCYXJUaW1lcklkPW51bGwsci5fc3RhdHVzQmFyU3RhcnRUaW1lPTA7dmFyIEpyPW51bGwsWGk9MDtmdW5jdGlvbiBNdShlKXtpZighZSlyZXR1cm57YWN0aXZlOiExfTtpZihlLmFyY2hpdmVkKXJldHVybnthY3RpdmU6ITF9O3ZhciB0PSEhZS5wZXJtaXNzaW9uQmxvY2tlZCxuPSEhKHVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpLGk9IXVlKGUpJiZlLnN0YXR1cz09PSJydW5uaW5nIjtyZXR1cm57YWN0aXZlOm58fGl8fHQsaW5GbGlnaHQ6bixwdHlSdW5uaW5nOmkscGVybWlzc2lvbkJsb2NrZWQ6dH19ZnVuY3Rpb24gTmcoZSl7dmFyIHQ9TWF0aC5tYXgoMCxNYXRoLmZsb29yKGUvMWUzKSk7aWYodDw2MClyZXR1cm4gdCsicyI7dmFyIG49TWF0aC5mbG9vcih0LzYwKSxpPXQlNjA7aWYobjw2MClyZXR1cm4gbisibSIrKGk/IiAiK2krInMiOiIiKTt2YXIgYT1NYXRoLmZsb29yKG4vNjApLHU9biU2MDtyZXR1cm4gYSsiaCIrKHU/IiAiK3UrIm0iOiIiKX1mdW5jdGlvbiBxdShlKXt2YXIgdD1NdShlKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWhlYWRlci1yb3ciKSxpPW4/bi5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdGF0dXMtcGlsbCIpOm51bGwsYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO2lmKG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImlzLXJ1bm5pbmciLHQuYWN0aXZlKSxuLmNsYXNzTGlzdC50b2dnbGUoImlzLXBlcm1pc3Npb24tYmxvY2tlZCIsdC5wZXJtaXNzaW9uQmxvY2tlZCkpLGkpe3ZhciB1PWkucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3RhdHVzLWVsYXBzZWQiKTtpZih0LmluRmxpZ2h0KXtYaXx8KFhpPXIuX3N0YXR1c0JhclN0YXJ0VGltZT4wP3IuX3N0YXR1c0JhclN0YXJ0VGltZTpEYXRlLm5vdygpKTt2YXIgbz1OZyhEYXRlLm5vdygpLVhpKTt1fHwodT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIiksdS5jbGFzc05hbWU9InNlc3Npb24tc3RhdHVzLWVsYXBzZWQiLGkuYXBwZW5kQ2hpbGQodSkpLHUudGV4dENvbnRlbnQ9b31lbHNlIFhpPTAsdSYmdS5yZW1vdmUoKX10LmFjdGl2ZT9Kcnx8KEpyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIHM9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09ci5zZWxlY3RlZElkfSk7cXUocyl9LDFlMykpOkpyJiYoY2xlYXJJbnRlcnZhbChKciksSnI9bnVsbCl9ZnVuY3Rpb24gUHUoZSx0KXtxdSh0KTt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItdG9wLXJvdyIpLGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYoIXR8fCF1ZSh0KSl7aSYmaS5yZW1vdmUoKSxhJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpLGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsO3JldHVybn12YXIgdT10LnN0cnVjdHVyZWRTdGF0ZSYmdC5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ7aWYodSl7aWYoci5fc3RhdHVzQmFyVGltZXJJZHx8KHIuX3N0YXR1c0JhclN0YXJ0VGltZT1EYXRlLm5vdygpKSxhJiZhLmNsYXNzTGlzdC5hZGQoImluLWZsaWdodCIpLCFpJiZuKXt2YXIgbz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmNsYXNzTmFtZT0ic3RydWN0dXJlZC1zdGF0dXMtYmFyIixvLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9InN0YXR1cy1iYXItZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYXItbGFiZWwiPlx1NTZERVx1NTkwRFx1NEUyRDwvc3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhci10aW1lciI+MC4wczwvc3Bhbj4nLG4uYXBwZW5kQ2hpbGQobyksaT1vfWVsc2UgaWYoaSYmaS5jbGFzc0xpc3QuY29udGFpbnMoImNvbXBsZXRlZCIpKXtpLmNsYXNzTGlzdC5yZW1vdmUoImNvbXBsZXRlZCIpLGkuc3R5bGUuYW5pbWF0aW9uPSJub25lIixpLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWxhYmVsIikudGV4dENvbnRlbnQ9Ilx1NTZERVx1NTkwRFx1NEUyRCI7dmFyIHM9aS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1kb3QiKTtzJiYocy5zdHlsZS5kaXNwbGF5PSIiKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9RGF0ZS5ub3coKX1yLl9zdGF0dXNCYXJUaW1lcklkfHwoci5fc3RhdHVzQmFyVGltZXJJZD1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBkPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXI6bm90KC5jb21wbGV0ZWQpIik7aWYoIWQpe2NsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsO3JldHVybn12YXIgZj0oKERhdGUubm93KCktci5fc3RhdHVzQmFyU3RhcnRUaW1lKS8xZTMpLnRvRml4ZWQoMSksYz1kLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLXRpbWVyIik7YyYmKGMudGV4dENvbnRlbnQ9ZisicyIpfSwxMDApKX1lbHNlIGlmKGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaW4tZmxpZ2h0IiksaSYmIWkuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb21wbGV0ZWQiKSl7dmFyIGw9ci5fc3RhdHVzQmFyU3RhcnRUaW1lPygoRGF0ZS5ub3coKS1yLl9zdGF0dXNCYXJTdGFydFRpbWUpLzFlMykudG9GaXhlZCgxKToiMC4wIjtpLmNsYXNzTGlzdC5hZGQoImNvbXBsZXRlZCIpLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItbGFiZWwiKS50ZXh0Q29udGVudD0iXHU1QjhDXHU2MjEwIixpLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLXRpbWVyIikudGV4dENvbnRlbnQ9bCsicyI7dmFyIHM9aS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1kb3QiKTtzJiYocy5zdHlsZS5kaXNwbGF5PSJub25lIiksci5fc3RhdHVzQmFyU3RhcnRUaW1lPTAsc2V0VGltZW91dChmdW5jdGlvbigpe2kucGFyZW50Tm9kZSYmaS5yZW1vdmUoKX0sM2UzKX19ZnVuY3Rpb24gcChlKXtyZXR1cm4gU3RyaW5nKGUpLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMzOTsiKX1mdW5jdGlvbiBndChlLHQsbil7dmFyIGk9U3RyaW5nKGV8fCIiKTtyZXR1cm4nPHNwYW4gY2xhc3M9IicrdCsnIHRhaWwtbWFycXVlZS1wYXRoIiB0aXRsZT0iJytwKGkpKyciJysobnx8IiIpKyc+PHNwYW4gY2xhc3M9InRhaWwtbWFycXVlZS1wYXRoLWlubmVyIj4nK3AoaSkrIjwvc3Bhbj48L3NwYW4+In12YXIgamc9L1wuKHBuZ3xqcGU/Z3xnaWZ8d2VicHxzdmd8YXZpZnxibXB8aWNvfGhlaWN8aGVpZikkL2k7ZnVuY3Rpb24gT3UoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXJldHVybiExO3ZhciB0PWUudHJpbSgpLnNwbGl0KC9bPyNdLylbMF07cmV0dXJuIGpnLnRlc3QodCl9ZnVuY3Rpb24gYXIoZSl7aWYoZSl7dmFyIHQ9ZnVuY3Rpb24oKXt0cnl7dmFyIG49ZS5maXJzdEVsZW1lbnRDaGlsZCYmZS5maXJzdEVsZW1lbnRDaGlsZC5jbGFzc0xpc3QmJmUuZmlyc3RFbGVtZW50Q2hpbGQuY2xhc3NMaXN0LmNvbnRhaW5zKCJ0YWlsLW1hcnF1ZWUtcGF0aC1pbm5lciIpP2UuZmlyc3RFbGVtZW50Q2hpbGQ6bnVsbDtpZihuKXt2YXIgaT1NYXRoLm1heCgwLG4uc2Nyb2xsV2lkdGgtZS5jbGllbnRXaWR0aCk7ZS5jbGFzc0xpc3QudG9nZ2xlKCJpcy1vdmVyZmxvd2luZyIsaT4xKSxlLnN0eWxlLnNldFByb3BlcnR5KCItLXRhaWwtbWFycXVlZS1zaGlmdCIsaSsicHgiKTt2YXIgYT1NYXRoLm1heCg0LjgsaS8xOCk7ZS5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10YWlsLW1hcnF1ZWUtZHVyYXRpb24iLE1hdGgubWF4KDYuOCxhLy42OCkrInMiKTtyZXR1cm59ZS5zY3JvbGxXaWR0aD5lLmNsaWVudFdpZHRoJiYoZS5zY3JvbGxMZWZ0PWUuc2Nyb2xsV2lkdGgpfWNhdGNoe319O3QoKSx0eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lPT0iZnVuY3Rpb24iJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9fWZ1bmN0aW9uIGp0KGUpe3ZhciB0PWV8fGRvY3VtZW50OyF0fHx0eXBlb2YgdC5xdWVyeVNlbGVjdG9yQWxsIT0iZnVuY3Rpb24ifHx0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50YWlsLW1hcnF1ZWUtcGF0aCIpLmZvckVhY2goZnVuY3Rpb24obil7YXIobil9KX1mdW5jdGlvbiBIdShlLHQpe2lmKGUpe3ZhciBuPVN0cmluZyh0fHwiIiksaT1lLnF1ZXJ5U2VsZWN0b3ImJmUucXVlcnlTZWxlY3RvcigiLnRhaWwtbWFycXVlZS1wYXRoLWlubmVyIik7aT9pLnRleHRDb250ZW50PW46ZS50ZXh0Q29udGVudD1uLGUuc2V0QXR0cmlidXRlJiZlLnNldEF0dHJpYnV0ZSgidGl0bGUiLG4pLGFyKGUpfX1mdW5jdGlvbiBSZyhlKXtpZihlKXt2YXIgdD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2YgZS5zZXRTZWxlY3Rpb25SYW5nZT09ImZ1bmN0aW9uIiYmZS52YWx1ZSE9bnVsbCl7dmFyIG49ZS52YWx1ZS5sZW5ndGg7dHJ5e2Uuc2V0U2VsZWN0aW9uUmFuZ2UobixuKX1jYXRjaHt9fWUuc2Nyb2xsV2lkdGg+ZS5jbGllbnRXaWR0aCYmKGUuc2Nyb2xsTGVmdD1lLnNjcm9sbFdpZHRoKX1jYXRjaHt9fTt0KCksdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpfX0oZnVuY3Rpb24oKXt0cnl7dmFyIGU9bmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50fHwiIjsvV2FuZEFwcFwvLy50ZXN0KGUpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1hcHAiKSwvV2FuZFBsYXRmb3JtXC9pT1MvLnRlc3QoZSkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWlvcyIpLC9XYW5kUGxhdGZvcm1cL0FuZHJvaWQvLnRlc3QoZSkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWFuZHJvaWQiKX1jYXRjaHt9dHJ5e2NvbnN0IHQ9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikuc2VhcmNoUGFyYW1zO3QuZ2V0KCJlbWJlZCIpPT09InRlcm1pbmFsIiYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIiksdC5nZXQoIm5hdGl2ZUlucHV0Iik9PT0iMSImJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLW5hdGl2ZS1pbnB1dCIpKX1jYXRjaHt9dHJ5e3dpbmRvdy5fX3dhbmROYXRpdmVCYWNrSG9va2VkPSEwfWNhdGNoe319KSgpfSkoKTsK"),
|
|
9
9
|
stylesCss: decode("OnJvb3R7LS1iZy1wcmltYXJ5OiAjZjZmMWU4Oy0tYmctc2Vjb25kYXJ5OiByZ2JhKDI1NSwgMjUxLCAyNDUsIC45Mik7LS1iZy10ZXJ0aWFyeTogI2YwZTVkNzstLWJnLWVsZXZhdGVkOiAjZmZmYWYyOy0tYmctc3VyZmFjZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNik7LS1iZy10ZXJtaW5hbDogIzFmMWIxNzstLWJnLW92ZXJsYXk6IHJnYmEoNDIsIDI4LCAxOCwgLjQpOy0tYm9yZGVyLXN1YnRsZTogcmdiYSgxNTAsIDExOCwgODUsIC4xMik7LS1ib3JkZXItZGVmYXVsdDogcmdiYSgxMjUsIDkxLCA1NywgLjI1KTstLWJvcmRlci1zdHJvbmc6IHJnYmEoMTI1LCA5MSwgNTcsIC40KTstLWJvcmRlcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQpOy0tYm9yZGVyLWZvY3VzOiByZ2JhKDE5NywgMTAxLCA2MSwgLjUpOy0tdGV4dC1wcmltYXJ5OiAjMmExZjE2Oy0tdGV4dC1zZWNvbmRhcnk6ICM1YTQ1MzU7LS10ZXh0LXRlcnRpYXJ5OiAjN2E2MzUwOy0tdGV4dC1tdXRlZDogIzhjNzM1ZjstLXRleHQtaW52ZXJzZTogI2ZmZmZmZjstLXRleHQtbGluazogI2M1NjUzZDstLWFjY2VudDogI2M1NjUzZDstLWFjY2VudC1ob3ZlcjogI2Q0NzU1MDstLWFjY2VudC1hY3RpdmU6ICNhZjUzMzA7LS1hY2NlbnQtc29mdDogI2U4YzVhZTstLWFjY2VudC1tdXRlZDogcmdiYSgxOTcsIDEwMSwgNjEsIC4xMik7LS1hY2NlbnQtZ2xvdzogcmdiYSgxOTcsIDEwMSwgNjEsIC4yNSk7LS1zdWNjZXNzOiAjNGY3YTU4Oy0tc3VjY2Vzcy1ob3ZlcjogIzVhOGY2NjstLXN1Y2Nlc3MtbXV0ZWQ6IHJnYmEoNzksIDEyMiwgODgsIC4xNCk7LS1zdWNjZXNzLWdsb3c6IHJnYmEoNzksIDEyMiwgODgsIC4zKTstLXdhcm5pbmc6ICNhOTZhMmY7LS13YXJuaW5nLWhvdmVyOiAjYzA3YTM1Oy0td2FybmluZy1tdXRlZDogcmdiYSgxNjksIDEwNiwgNDcsIC4xNCk7LS13YXJuaW5nLWdsb3c6IHJnYmEoMTY5LCAxMDYsIDQ3LCAuMjUpOy0tZGFuZ2VyOiAjYjI0ZjQ1Oy0tZGFuZ2VyLWhvdmVyOiAjYzk2MDU1Oy0tZGFuZ2VyLW11dGVkOiByZ2JhKDE3OCwgNzksIDY5LCAuMTQpOy0tZGFuZ2VyLWdsb3c6IHJnYmEoMTc4LCA3OSwgNjksIC4yNSk7LS1pbmZvOiAjNGE2ZmE1Oy0taW5mby1tdXRlZDogcmdiYSg3NCwgMTExLCAxNjUsIC4xNCk7LS1zaGFkb3cteHM6IDAgMXB4IDNweCByZ2JhKDg5LCA1OCwgMzIsIC4wNCk7LS1zaGFkb3ctc206IDAgMnB4IDhweCByZ2JhKDg5LCA1OCwgMzIsIC4wNik7LS1zaGFkb3ctbWQ6IDAgNHB4IDE2cHggcmdiYSg4OSwgNTgsIDMyLCAuMDgpOy0tc2hhZG93LWxnOiAwIDhweCAzMnB4IHJnYmEoODksIDU4LCAzMiwgLjEyKTstLXNoYWRvdy14bDogMCAxMnB4IDQ4cHggcmdiYSg4OSwgNTgsIDMyLCAuMTYpOy0tc2hhZG93LXNvZnQ6IDAgMjBweCA1MHB4IHJnYmEoODksIDU4LCAzMiwgLjEyKTstLXNoYWRvdy1lbGV2YXRlZDogMCA4cHggMjRweCByZ2JhKDg5LCA1OCwgMzIsIC4wOCk7LS1zaGFkb3ctZ2xvdzogMCAwIDI0cHggdmFyKC0tYWNjZW50LWdsb3cpOy0tc2hhZG93LWdsb3ctc3VjY2VzczogMCAwIDIwcHggdmFyKC0tc3VjY2Vzcy1nbG93KTstLXJhZGl1cy14czogNnB4Oy0tcmFkaXVzLXNtOiAxMHB4Oy0tcmFkaXVzLW1kOiAxNHB4Oy0tcmFkaXVzLWxnOiAyMHB4Oy0tcmFkaXVzLXhsOiAyOHB4Oy0tcmFkaXVzLWZ1bGw6IDk5OTlweDstLWZvbnQtc2FuczogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCAiSGVsdmV0aWNhIE5ldWUiLCAiUGluZ0ZhbmcgU0MiLCAiTm90byBTYW5zIFNDIiwgIk1pY3Jvc29mdCBZYUhlaSIsIHNhbnMtc2VyaWY7LS1mb250LW1vbm86ICJTRiBNb25vIiwgIkZpcmEgQ29kZSIsICJDYXNjYWRpYSBDb2RlIiwgIkpldEJyYWlucyBNb25vIiwgTWVubG8sIE1vbmFjbywgIkNvbnNvbGFzIiwgbW9ub3NwYWNlOy0tZm9udC1zaXplLXhzOiAuNjg3NXJlbTstLWZvbnQtc2l6ZS1zbTogLjgxMjVyZW07LS1mb250LXNpemUtYmFzZTogLjkzNzVyZW07LS1mb250LXNpemUtbGc6IDEuMDYyNXJlbTstLWZvbnQtc2l6ZS14bDogMS4yNXJlbTstLWZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwOy0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7LS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwOy0tZm9udC13ZWlnaHQtYm9sZDogNzAwOy0tbGluZS1oZWlnaHQtdGlnaHQ6IDEuMzstLWxpbmUtaGVpZ2h0LWJhc2U6IDEuNjstLWxpbmUtaGVpZ2h0LXJlbGF4ZWQ6IDEuNzU7LS10cmFuc2l0aW9uLWZhc3Q6IC4xNXMgZWFzZTstLXRyYW5zaXRpb24tbm9ybWFsOiAuMjVzIGVhc2U7LS10cmFuc2l0aW9uLXNsb3c6IC40cyBlYXNlOy0tdHJhbnNpdGlvbi1zcHJpbmc6IC41cyBjdWJpYy1iZXppZXIoLjM0LCAxLjU2LCAuNjQsIDEpOy0tc2lkZWJhci13aWR0aDogMzAwcHg7LS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDogNTZweDstLWZpbGUtcGFuZWwtd2lkdGg6IDMyMHB4Oy0tc2FmZS1ib3R0b206IDBweDstLWVhc2Utb3V0LWV4cG86IGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKTstLWVhc2Utb3V0LWJhY2s6IGN1YmljLWJlemllciguMzQsIDEuNTYsIC42NCwgMSk7LS1lYXNlLWluLW91dC1zbW9vdGg6IGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpOy0tZWFzZS1zcHJpbmc6IGN1YmljLWJlemllciguMTc1LCAuODg1LCAuMzIsIDEuMjc1KTstLWVhc2Utc3ByaW5nLWJvdW5jeTogY3ViaWMtYmV6aWVyKC4xNzUsIC44ODUsIC4zMiwgMS40KTstLWVhc2UtYm91bmNlOiBjdWJpYy1iZXppZXIoLjY4LCAtLjU1LCAuMjY1LCAxLjU1KX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upe2h0bWw6bm90KC5pcy13YW5kLWFwcCkgKixodG1sOm5vdCguaXMtd2FuZC1hcHApICo6YmVmb3JlLGh0bWw6bm90KC5pcy13YW5kLWFwcCkgKjphZnRlcnthbmltYXRpb24tZHVyYXRpb246LjAxbXMhaW1wb3J0YW50O2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDFtcyFpbXBvcnRhbnQ7c2Nyb2xsLWJlaGF2aW9yOmF1dG8haW1wb3J0YW50fX06cm9vdHstLWFwcC1pbnNldC10b3A6IDBweDstLWFwcC1pbnNldC1ib3R0b206IDBweDstLWFwcC1pbnNldC1sZWZ0OiAwcHg7LS1hcHAtaW5zZXQtcmlnaHQ6IDBweDstLXdhbmQtc2FmZS10b3A6IG1heCh2YXIoLS1hcHAtaW5zZXQtdG9wKSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpOy0td2FuZC1zYWZlLWJvdHRvbTogbWF4KHZhcigtLWFwcC1pbnNldC1ib3R0b20pLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7LS13YW5kLXNhZmUtbGVmdDogbWF4KHZhcigtLWFwcC1pbnNldC1sZWZ0KSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0LCAwcHgpKTstLXdhbmQtc2FmZS1yaWdodDogbWF4KHZhcigtLWFwcC1pbnNldC1yaWdodCksIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQsIDBweCkpOy0tc2FmZS1ib3R0b206IHZhcigtLXdhbmQtc2FmZS1ib3R0b20pOy0taW5wdXQtc2FmZS1ib3R0b206IHZhcigtLXNhZmUtYm90dG9tKX0uaXMtd2FuZC1hcHB7LS13YW5kLXNhZmUtdG9wOiBtYXgodmFyKC0tYXBwLWluc2V0LXRvcCksIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpLCAzMnB4KTstLXdhbmQtc2FmZS1ib3R0b206IG1heCh2YXIoLS1hcHAtaW5zZXQtYm90dG9tKSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCksIDBweCl9LmlzLXdhbmQtYXBwLW5hdGl2ZS1pbnNldHN7LS13YW5kLXNhZmUtdG9wOiAwcHg7LS13YW5kLXNhZmUtYm90dG9tOiAwcHg7LS13YW5kLXNhZmUtbGVmdDogMHB4Oy0td2FuZC1zYWZlLXJpZ2h0OiAwcHh9LmlzLXdhbmQtaW9zLmlzLWtleWJvYXJkLW9wZW57LS1pbnB1dC1zYWZlLWJvdHRvbTogMHB4fS5pcy13YW5kLWFwcCAuc2lkZWJhci1oZWFkZXIsaHRtbC5pcy13YW5kLWFwcCAuc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlcntwYWRkaW5nLXRvcDpjYWxjKDE0cHggKyB2YXIoLS13YW5kLXNhZmUtdG9wKSl9LmFwcC1jb250YWluZXJ7cGFkZGluZy10b3A6dmFyKC0td2FuZC1zYWZlLXRvcCl9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnNpZGViYXIsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLm1haW4taGVhZGVyLXJvdywuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAuYmxhbmstY2hhdCwuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAuZHJhd2VyLWJhY2tkcm9wLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC5maWxlLXBhbmVsLWJhY2tkcm9we2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLmFwcC1jb250YWluZXJ7cGFkZGluZy10b3A6MH1odG1sLmlzLXdhbmQtZW1iZWQtdGVybWluYWx7Y29sb3Itc2NoZW1lOmxpZ2h0IGRhcms7LS1lbWJlZC1wdHktYmc6ICMxNzEyMGZ9aHRtbC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsLGh0bWwuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCBib2R5e2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKX0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAubWFpbi1sYXlvdXQsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLm1haW4tbGF5b3V0LnNpZGViYXItcGlubmVkLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZC5zaWRlYmFyLWNvbGxhcHNlZHtwYWRkaW5nLWxlZnQ6MH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAubWFpbi1jb250ZW50e2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKX0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAudGVybWluYWwtY29udGFpbmVye21hcmdpbjowO2JvcmRlci1yYWRpdXM6MDtib3JkZXI6MDtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDowO2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKTtib3gtc2hhZG93Om5vbmV9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4sLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC50ZXJtaW5hbC1jb250YWluZXI6YWZ0ZXIsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLXNjYWxlLW92ZXJsYXksLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLXJlc2l6ZS1oYW5kbGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAudGVybWluYWwtc2Nyb2xsLXdyYXB7cGFkZGluZzo4cHggNHB4IDZweDstLXRlcm0tZm9udC1mYW1pbHk6ICJSb2JvdG8gTW9ubyIsICJEcm9pZCBTYW5zIE1vbm8iLCAiTm90byBTYW5zIE1vbm8iLCAiTm90byBTYW5zIFN5bWJvbHMgMiIsICJOb3RvIFNhbnMgU3ltYm9scyIsIG1vbm9zcGFjZTstLXRlcm0tZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7LS10ZXJtLXJvdy1oZWlnaHQ6IDE1cHggIWltcG9ydGFudDstLXRlcm0tZmc6ICNmNWVhZGM7LS10ZXJtLWJnOiB0cmFuc3BhcmVudDstLXRlcm0tY3Vyc29yOiAjZDY3YjUyOy0tdGVybS1jb2xvci0wOiAjMWYxYjE3Oy0tdGVybS1jb2xvci0xOiAjZDI3NzY2Oy0tdGVybS1jb2xvci0yOiAjN2ZhMzZmOy0tdGVybS1jb2xvci0zOiAjZDVhMzViOy0tdGVybS1jb2xvci00OiAjODdhOWQ5Oy0tdGVybS1jb2xvci01OiAjYzU5NWM3Oy0tdGVybS1jb2xvci02OiAjN2ZiM2IxOy0tdGVybS1jb2xvci03OiAjZjVlYWRjOy0tdGVybS1jb2xvci04OiAjNjI1MzQ3Oy0tdGVybS1jb2xvci05OiAjZTM5YTg5Oy0tdGVybS1jb2xvci0xMDogIzljYzA4YTstLXRlcm0tY29sb3ItMTE6ICNlYmJiNmU7LS10ZXJtLWNvbG9yLTEyOiAjYThjMWVhOy0tdGVybS1jb2xvci0xMzogI2RiYjFkYzstLXRlcm0tY29sb3ItMTQ6ICM5YWNiY2E7LS10ZXJtLWNvbG9yLTE1OiAjZmZmN2VmfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC50ZXJtaW5hbC1zY3JvbGwtd3JhcCA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kOiNkNjdiNTI0N30uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbC5pcy13YW5kLW5hdGl2ZS1pbnB1dCAuaW5wdXQtcGFuZWx7ZGlzcGxheTpub25lIWltcG9ydGFudH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAud2FuZC1qb3lzdGljay1yb290e3otaW5kZXg6MTIwfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLXJvb3QudmlzaWJsZXtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhY2tkcm9we3otaW5kZXg6MTIwfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhbGx7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtjb2xvcjojZmZmN2VmZjU7YmFja2dyb3VuZDojMjMxYzE4ZWI7Ym9yZGVyLWNvbG9yOiNmZmY3ZWYzZDtib3gtc2hhZG93OjAgMTBweCAyNnB4ICMwMDAwMDA2MSxpbnNldCAwIDFweCAjZmZmZmZmMWE7ei1pbmRleDoxMjN9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLndhbmQtam95c3RpY2stYmFsbC5wYW5lbC1vcGVuLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhbGw6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSgxLjA0KTtiYWNrZ3JvdW5kOiMxZDE3MTRmYTtib3JkZXItY29sb3I6I2ZmZjdlZjU3fS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLXBhbmVse3otaW5kZXg6MTI0O2JhY2tncm91bmQ6IzFkMTcxNGZhO2JvcmRlci1jb2xvcjojZmZmN2VmMmU7Ym94LXNoYWRvdzowIDE4cHggNDBweCAjMDAwMDAwNmIsaW5zZXQgMCAxcHggI2ZmZmZmZjE0fWh0bWwubm8tdHJhbnNpdGlvbixodG1sLm5vLXRyYW5zaXRpb24gKixodG1sLm5vLXRyYW5zaXRpb24gKjpiZWZvcmUsaHRtbC5uby10cmFuc2l0aW9uICo6YWZ0ZXJ7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudDthbmltYXRpb246bm9uZSFpbXBvcnRhbnR9Kntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfWh0bWx7Zm9udC1zaXplOjE0cHg7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7dGV4dC1yZW5kZXJpbmc6b3B0aW1pemVMZWdpYmlsaXR5O21pbi1oZWlnaHQ6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmNmYxZTh9Ym9keXtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCB0b3AgbGVmdCxyZ2JhKDIwOCwxMzgsOTIsLjE4KSx0cmFuc3BhcmVudCAzNSUpLHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tIHJpZ2h0LHJnYmEoMTQ4LDEwNyw3NCwuMSksdHJhbnNwYXJlbnQgNDAlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmYmY3ZjEsI2Y2ZjFlOCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttaW4taGVpZ2h0OjEwMHZoO21pbi1oZWlnaHQ6MTAwZHZoO2hlaWdodDoxMDB2aDtoZWlnaHQ6MTAwZHZoO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO292ZXJmbG93OmhpZGRlbn06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6OHB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1NDA7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU2Nn06Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LXNvZnQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9OjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1zb2Z0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5pbnB1dC10ZXh0YXJlYTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6IzRmN2E1ODQ3O2NvbG9yOiMyNDE2MGZ9LmlucHV0LXRleHRhcmVhOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOiM0ZjdhNTg0Nztjb2xvcjojMjQxNjBmfS5jaGF0LW1lc3NhZ2UudXNlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6I2ZmZmZmZjUyO2NvbG9yOiNmZmZ9LmFwcC1jb250YWluZXJ7LS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoOiB2YXIoLS1maWxlLXBhbmVsLXdpZHRoKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmZpeGVkO3RvcDp2YXIoLS1hcHAtdmlld3BvcnQtdG9wLCAwcHgpO2xlZnQ6MDtyaWdodDowO2hlaWdodDp2YXIoLS1hcHAtdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpO292ZXJmbG93OmhpZGRlbn0uZmxvYXRpbmctc2lkZWJhci10b2dnbGV7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1zaHJpbms6MDtiYWNrZ3JvdW5kOiNmZmZiZjVkOTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6cG9pbnRlcjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMGY7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXttYXJnaW4tcmlnaHQ6MnB4fS5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZXtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0b30ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDEpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDVweCkgcm90YXRlKDQ1ZGVnKX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDIpe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfS5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZSAuaGFtYnVyZ2VyLWljb24gc3BhbjpudGgtY2hpbGQoMyl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCkgcm90YXRlKC00NWRlZyl9Lm1haW4taGVhZGVyLXJvdyAuZmxvYXRpbmctc2lkZWJhci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjI7Ym94LXNoYWRvdzowIDNweCAxMnB4ICMwMDAwMDAxYX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Mil9Lm1haW4taGVhZGVyLXJvdyAuZmxvYXRpbmctc2lkZWJhci10b2dnbGUuYWN0aXZlOmhvdmVyIC5oYW1idXJnZXItaWNvbiBzcGFuLC5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlOmhvdmVyIC5oYW1idXJnZXItaWNvbiBzcGFue2JhY2tncm91bmQ6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZmxvYXRpbmctc2lkZWJhci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjI7Ym94LXNoYWRvdzowIDNweCAxMnB4ICMwMDAwMDAxYX0uZmxvYXRpbmctc2lkZWJhci10b2dnbGUuYWN0aXZle29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2V9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjkyKX0uaGFtYnVyZ2VyLWljb257d2lkdGg6MTZweDtoZWlnaHQ6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5oYW1idXJnZXItaWNvbiBzcGFue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4ycyBlYXNlLGJhY2tncm91bmQgLjE1cyBlYXNlO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZTpob3ZlciAuaGFtYnVyZ2VyLWljb24gc3BhbntiYWNrZ3JvdW5kOnZhcigtLXRleHQtcHJpbWFyeSl9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZSAuaGFtYnVyZ2VyLWljb24gc3BhbjpudGgtY2hpbGQoMSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KSByb3RhdGUoNDVkZWcpfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDIpe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDMpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpIHJvdGF0ZSgtNDVkZWcpfS50b3BiYXItbG9nby1pY29ue3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCNkNDc4NWEsI2I4NTczYSwjYTA0YTJlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6ODAwO2JveC1zaGFkb3c6MCAxcHggNHB4ICNiODVjMzc0MCxpbnNldCAwIDFweCAjZmZmMztsZXR0ZXItc3BhY2luZzotLjAyZW07ZmxleC1zaHJpbms6MH0uc3RhdHVzLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5zdGF0dXMtZG90LmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6MCAwIDhweCB2YXIoLS1zdWNjZXNzKX0ubWFpbi1sYXlvdXR7ZGlzcGxheTpmbGV4O2ZsZXg6MTttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctbGVmdDowO3RyYW5zaXRpb246cGFkZGluZy1sZWZ0IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKX0uc2lkZWJhci1vcGVuOm5vdCguc2lkZWJhci1waW5uZWQpIC5pbnB1dC1wYW5lbHtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZHtwYWRkaW5nLWxlZnQ6dmFyKC0tc2lkZWJhci13aWR0aCk7dHJhbnNpdGlvbjpwYWRkaW5nLWxlZnQgLjNzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZCAuZmxvYXRpbmctc2lkZWJhci10b2dnbGV7ZGlzcGxheTpub25lfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZC5zaWRlYmFyLWNvbGxhcHNlZHtwYWRkaW5nLWxlZnQ6dmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpfS5kcmF3ZXItYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjQ0O2JhY2tncm91bmQ6dmFyKC0tYmctb3ZlcmxheSk7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMgdmFyKC0tZWFzZS1pbi1vdXQtc21vb3RoKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig0cHgpfS5kcmF3ZXItYmFja2Ryb3Aub3BlbntvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0bztiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpfS5zaWRlYmFye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtib3R0b206MDt6LWluZGV4OjQ1O3dpZHRoOm1pbih2YXIoLS1zaWRlYmFyLXdpZHRoKSxjYWxjKDEwMHZ3IC0gMjBweCkpO21heC13aWR0aDo5MHZ3O2JhY2tncm91bmQ6I2ZmZmJmNWY1O2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4taGVpZ2h0OjA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzo0cHggMCAzMnB4ICM1OTNhMjAxNDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIHZhcigtLWVhc2Utb3V0LWV4cG8pLGJveC1zaGFkb3cgLjM1cyBlYXNlLG9wYWNpdHkgLjI1cyBlYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowfS5zaWRlYmFyLm9wZW57dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTtib3gtc2hhZG93OjhweCAwIDQwcHggIzU5M2EyMDI2O3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxfS5zaWRlYmFyLnBpbm5lZHt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxO2JveC1zaGFkb3c6bm9uZTt0cmFuc2l0aW9uOndpZHRoIC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSx0cmFuc2Zvcm0gLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxib3gtc2hhZG93IC4zNXMgZWFzZSxvcGFjaXR5IC4yNXMgZWFzZX0uc2lkZWJhci5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVyLWFjdGlvbnMgLnNpZGViYXItY2xvc2V7ZGlzcGxheTpub25lfS5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWR7d2lkdGg6dmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpfS5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVye3BhZGRpbmc6MTRweCA4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MH0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlci1tYWluLC5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVyLW1vcmUsLnNpZGViYXIucGlubmVkLmNvbGxhcHNlZCAuc2lkZWJhci1waW4tdG9nZ2xlLC5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItZm9vdGVye2Rpc3BsYXk6bm9uZX0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlci1hY3Rpb25ze2dhcDowO3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWJvZHl7cGFkZGluZzo4cHggNHB4O292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbn0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjB9LnNpZGViYXItY29sbGFwc2VkLXRpbGVze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXJ9LnNpZGViYXItY29sbGFwc2VkLXRpbGV7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjExcHg7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMzIpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZDQ3ODVhLCNiODU3M2EsI2EwNGEyZSk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2xldHRlci1zcGFjaW5nOi0uMDFlbTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MDtib3gtc2hhZG93OjAgMXB4IDJweCAjYjg1YzM3MzgsaW5zZXQgMCAxcHggI2ZmZmZmZjQ3O3RyYW5zaXRpb246ZmlsdGVyIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyAuMjJzIGVhc2UsdHJhbnNmb3JtIC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItY29sbGFwc2VkLXRpbGU6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNik7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMHB4IC0zcHggI2I4NWMzNzVjLGluc2V0IDAgMXB4ICNmZmZmZmY1Mn0uc2lkZWJhci1jb2xsYXBzZWQtdGlsZS5hZGR7YmFja2dyb3VuZDojYjg1YzM3MGY7Ym9yZGVyOjEuNXB4IGRhc2hlZCByZ2JhKDE4NCw5Miw1NSwuNSk7Y29sb3I6I2EwNGEyZTtib3gtc2hhZG93Om5vbmU7bWFyZ2luLXRvcDoycHh9LnNpZGViYXItY29sbGFwc2VkLXRpbGUuYWRkOmhvdmVye2ZpbHRlcjpub25lO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JhY2tncm91bmQ6I2I4NWMzNzFmO2JvcmRlci1jb2xvcjojYjg1YzM3Yjg7Ym94LXNoYWRvdzowIDNweCA4cHggLTNweCAjYjg1YzM3NTJ9LnNpZGViYXItY29sbGFwc2VkLXRpbGUuYWRkOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguOTQpfS5zaWRlYmFyLWNvbGxhcHNlZC10aWxlLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsI2QyNzM1OCwjYjM1NDM0LCM5MzQxMjgpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCAwIDAgMnB4ICNjNTY1M2Q0ZCwwIDVweCAxNHB4IC00cHggI2EwNGEyZTczLGluc2V0IDAgMXB4ICNmZmY2fS5zaWRlYmFyLWNvbGxhcHNlZC10aWxlOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguOTQpO3RyYW5zaXRpb24tZHVyYXRpb246LjA4c30uc2lkZWJhci10aWxlLWJ1YmJsZXtwb3NpdGlvbjpmaXhlZDttYXgtd2lkdGg6MzIwcHg7bWluLXdpZHRoOjgwcHg7cGFkZGluZzo5cHggMTNweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxNDVkZWcsI2ZmZmJmNWZjLCNmY2Y0ZTlmYyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlLCByZ2JhKDEyMCwgODgsIDU2LCAuMTgpKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDZweCAyNHB4IC00cHggIzU5M2EyMDM4LDAgMnB4IDZweCAjNTkzYTIwMTQsaW5zZXQgMCAxcHggI2ZmZmZmZmE2O2ZvbnQtc2l6ZToxM3B4O2xpbmUtaGVpZ2h0OjEuNDY7Y29sb3I6IzM4MjQxMmViO3otaW5kZXg6MjAwO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTRweCk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvLCBlYXNlKTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCkgc2F0dXJhdGUoMTYwJSl9LnNpZGViYXItdGlsZS1idWJibGUudmlzaWJsZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0uc2lkZWJhci10aWxlLWJ1YmJsZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi02cHg7dG9wOnZhcigtLWJ1YmJsZS10YWlsLXksIDUwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTt3aWR0aDoxMXB4O2hlaWdodDoxMXB4O2JhY2tncm91bmQ6aW5oZXJpdDtib3JkZXItbGVmdDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSwgcmdiYSgxMjAsIDg4LCA1NiwgLjE4KSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSwgcmdiYSgxMjAsIDg4LCA1NiwgLjE4KSk7Ym94LXNoYWRvdzotMnB4IDJweCA1cHggLTJweCAjNTkzYTIwMTR9LnNpZGViYXItY29sbGFwc2UtdG9nZ2xle2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zaWRlYmFyLWNvbGxhcHNlLXRvZ2dsZS5jb2xsYXBzZWR7Y29sb3I6dmFyKC0tcHJpbWFyeSl9LnNpZGViYXItcGluLXRvZ2dsZXtmbGV4LXNocmluazowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSx0cmFuc2Zvcm0gLjNzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5zaWRlYmFyLXBpbi10b2dnbGUucGlubmVke2JhY2tncm91bmQ6I2M1NjUzZDFmO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyl9LnNpZGViYXItaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDE0cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDojZmZmYmY1Y2M7ZmxleC1zaHJpbms6MDttaW4taGVpZ2h0OjUycHg7Z2FwOjEwcHh9LnNpZGViYXItaGVhZGVyLW1haW57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O21pbi13aWR0aDowO2ZsZXg6MX0uc2lkZWJhci1oZWFkZXItYWN0aW9uc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7ZmxleC1zaHJpbms6MH0uc2lkZWJhci1oZWFkZXItbW9yZXtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3d7ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyA2cHgpO3JpZ2h0OjA7bWluLXdpZHRoOjE1MHB4O2JhY2tncm91bmQ6I2ZmZmJmNWZhO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JveC1zaGFkb3c6MCA0cHggMjBweCAjNTkzYTIwMWY7cGFkZGluZzo0cHg7ei1pbmRleDo2MH0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cub3BlbntkaXNwbGF5OmJsb2NrO2FuaW1hdGlvbjpmYWRlU2xpZGVEb3duIC4xNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDt3aWR0aDoxMDAlO3BhZGRpbmc6OXB4IDEycHg7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpub25lO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjZweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Nyl9QGtleWZyYW1lcyBmYWRlU2xpZGVEb3duezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5zaWRlYmFyLWxvZ291dHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi43O3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItbG9nb3V0OmhvdmVye29wYWNpdHk6MTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNpZGViYXItc3dpdGNoLXNlcnZlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi43O3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItc3dpdGNoLXNlcnZlcjpob3ZlcntvcGFjaXR5OjE7Y29sb3I6dmFyKC0tcHJpbWFyeSwgdmFyKC0tdGV4dC1zZWNvbmRhcnkpKX0ubG9naW4tc3dpdGNoLXNlcnZlcnttYXJnaW4tdG9wOjEwcHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZToxM3B4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ubG9naW4tc3dpdGNoLXNlcnZlciBzdmd7b3BhY2l0eTouNzV9LmxvZ2luLXN3aXRjaC1zZXJ2ZXI6aG92ZXJ7Y29sb3I6dmFyKC0tcHJpbWFyeSwgdmFyKC0tdGV4dC1wcmltYXJ5KSl9LnNpZGViYXItdGl0bGV7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMWVtO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4LXNocmluazowfS5zZXNzaW9uLWNvdW50e2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjEwcHg7Zm9udC13ZWlnaHQ6NjAwfS5zaWRlYmFyLWNsb3Nle2ZsZXgtc2hyaW5rOjB9LmZpbGUtZXhwbG9yZXJ7ZmxleDoxO292ZXJmbG93LXk6YXV0bztwYWRkaW5nOjhweCAwO21pbi1oZWlnaHQ6MH0uZmlsZS1leHBsb3Jlci5lbXB0eXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzoyNHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODEyNXJlbTt0ZXh0LWFsaWduOmNlbnRlcn0uZmlsZS10cmVle2ZvbnQtc2l6ZTouODEyNXJlbX0udHJlZS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjRweCAxMnB4O2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3VzZXItc2VsZWN0Om5vbmU7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS50cmVlLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZmZmZiMywjZmZmY2Y3NjYpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZmIzfS50cmVlLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZWIsI2ZmZjRlOGJmKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgMXB4ICNjNTY1M2QzOCwwIDNweCAxMHB4IC0zcHggI2M1NjUzZDQwLGluc2V0IDAgMXB4ICNmZmZmZmZkOX0udHJlZS10b2dnbGV7ZmxleC1zaHJpbms6MDt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS50cmVlLXRvZ2dsZS5vcGVue3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS50cmVlLXRvZ2dsZS5lbXB0eXt2aXNpYmlsaXR5OmhpZGRlbn0udHJlZS1pY29ue2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOjFyZW07bWFyZ2luLXJpZ2h0OjZweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS50cmVlLW5hbWV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZmxleDoxO21pbi13aWR0aDowfS50cmVlLWNoaWxkcmVue2Rpc3BsYXk6bm9uZX0udHJlZS1jaGlsZHJlbi5vcGVue2Rpc3BsYXk6YmxvY2t9LmZpbGUtZXhwbG9yZXItaGVhZGVye3BhZGRpbmc6MTBweCAxNHB4IDZweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleC1zaHJpbms6MDtvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTpoaWRkZW47c2Nyb2xsYmFyLXdpZHRoOnRoaW59LmZpbGUtZXhwbG9yZXItcGF0aHtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXg6MTttaW4td2lkdGg6MDtmb250LXdlaWdodDo1MDB9aW5wdXQuZmlsZS1leHBsb3Jlci1wYXRoe2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6OHB4O3BhZGRpbmc6NnB4IDEwcHg7aGVpZ2h0OjMwcHg7bGluZS1oZWlnaHQ6MS4yO2N1cnNvcjp0ZXh0O3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7b3V0bGluZTpub25lO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2lkdGg6bWF4LWNvbnRlbnQ7bWluLXdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94fWlucHV0LmZpbGUtZXhwbG9yZXItcGF0aDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNn1pbnB1dC5maWxlLWV4cGxvcmVyLXBhdGg6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9aW5wdXQuZmlsZS1leHBsb3Jlci1wYXRoOmZvY3Vze2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0ZXh0LW92ZXJmbG93OmNsaXA7Ym94LXNoYWRvdzowIDAgMCAzcHggI2Q0OTg2MzFmfS5maWxlLWV4cGxvcmVyLXJlZnJlc2h7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZToxcmVtO3BhZGRpbmc6NHB4O2JvcmRlci1yYWRpdXM6NHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5maWxlLWV4cGxvcmVyLXJlZnJlc2g6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpfS5maWxlLXNpZGUtcGFuZWx7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6Y2FsYygtMSAqIHZhcigtLWZpbGUtcGFuZWwtd2lkdGgpKTt0b3A6MDtib3R0b206MDt3aWR0aDp2YXIoLS1maWxlLXBhbmVsLXdpZHRoKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3otaW5kZXg6NTU7dHJhbnNpdGlvbjpyaWdodCAuM3MgdmFyKC0tZWFzZS1vdXQtZXhwbyksYm94LXNoYWRvdyAuM3MgZWFzZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JveC1zaGFkb3c6LTRweCAwIDI0cHggIzAwMDAwMDFhO3BhZGRpbmctdG9wOnZhcigtLXdhbmQtc2FmZS10b3ApO3BhZGRpbmctYm90dG9tOnZhcigtLXdhbmQtc2FmZS1ib3R0b20pfS5maWxlLXNpZGUtcGFuZWwub3BlbntyaWdodDowO2JveC1zaGFkb3c6LThweCAwIDMycHggIzU5M2EyMDI2fS5maWxlLXBhbmVsLWJhY2tkcm9we2Rpc3BsYXk6bm9uZX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuZmlsZS1wYW5lbC1iYWNrZHJvcHtkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDojMmExYzEyNGQ7ei1pbmRleDo1NDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMnB4KX0uZmlsZS1wYW5lbC1iYWNrZHJvcC5vcGVue29wYWNpdHk6MTtwb2ludGVyLWV2ZW50czphdXRvfS5zaWRlYmFyLXBpbi10b2dnbGV7ZGlzcGxheTpub25lfX0uZmlsZS1zaWRlLXBhbmVsLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MTJweCAxNHB4IDEwcHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZmxleC1zaHJpbms6MDtnYXA6OHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmNiwjZmZmMCl9LmZpbGUtc2lkZS1wYW5lbC10aXRsZS1ncm91cHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjA7ZmxleDoxfS5maWxlLXNpZGUtcGFuZWwtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLWFjY2VudCk7b3BhY2l0eTouODV9LmZpbGUtc2lkZS1wYW5lbC10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzouMDFlbX0uZmlsZS1zaWRlLXBhbmVsLWhlYWRlci1hY3Rpb25ze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmbGV4LXNocmluazowfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bnt3aWR0aDozMHB4O2hlaWdodDozMHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZzowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjhweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItc3VidGxlKX0uZmlsZS1zaWRlLXBhbmVsLWljb25idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTQpfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bi5hY3RpdmV7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLWNvbG9yOiNkNDk4NjM1OX0uZmlsZS1zaWRlLXBhbmVsLWljb25idG4uY2xvc2U6aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtiYWNrZ3JvdW5kOiNkYzQ2NDYxNDtib3JkZXItY29sb3I6I2RjNDY0NjQwfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0biAud2FuZC1pY29ue2Rpc3BsYXk6YmxvY2t9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuOmhvdmVyIC53YW5kLWljb24tcmVmcmVzaHt0cmFuc2Zvcm06cm90YXRlKDYwZGVnKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5maWxlLXNpZGUtcGFuZWwtYm9keXtmbGV4OjE7bWluLWhlaWdodDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVufS5naXQtc3RhdHVzLWJhZGdle2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjFweCA1cHg7Ym9yZGVyLXJhZGl1czozcHg7bWluLXdpZHRoOjE4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKX0uZ2l0LWFkZGVke2JhY2tncm91bmQ6IzIyOGIyMjI2O2NvbG9yOiMyMjhiMjJ9LmdpdC1tb2RpZmllZHtiYWNrZ3JvdW5kOiNmZmE1MDAyNjtjb2xvcjpvcmFuZ2V9LmdpdC1kZWxldGVke2JhY2tncm91bmQ6I2RjMTQzYzI2O2NvbG9yOiNkYzE0M2N9LmdpdC1yZW5hbWVke2JhY2tncm91bmQ6IzQ2ODJiNDI2O2NvbG9yOiM0NjgyYjR9LmdpdC11bnN0YWdlZHtiYWNrZ3JvdW5kOiNmZjhjMDAyNjtjb2xvcjojZmY4YzAwfS5naXQtdW5zdGFnZWQtZGVsZXRlZHtiYWNrZ3JvdW5kOiNkYzE0M2MyNjtjb2xvcjojZGMxNDNjfS5naXQtdW50cmFja2Vke2JhY2tncm91bmQ6IzgwODA4MDI2O2NvbG9yOmdyYXl9LmZpbGUtc2VhcmNoLWJveHtwYWRkaW5nOjhweCAxMnB4IDEwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtmbGV4LXNocmluazowO3Bvc2l0aW9uOnJlbGF0aXZlfS5maWxlLXNlYXJjaC1pY29ue3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MjJweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BvaW50ZXItZXZlbnRzOm5vbmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7b3BhY2l0eTouN30uZmlsZS1zZWFyY2gtaW5wdXR7ZmxleDoxO3BhZGRpbmc6N3B4IDMycHggN3B4IDMwcHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UsYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2V9LmZpbGUtc2VhcmNoLWlucHV0OmZvY3Vze2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym94LXNoYWRvdzowIDAgMCAzcHggI2Q0OTg2MzFmfS5maWxlLXNlYXJjaC1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmZpbGUtc2VhcmNoLWNsZWFye3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE4cHg7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzo0cHg7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtib3JkZXItcmFkaXVzOjUwJTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSxjb2xvciAuMTVzIGVhc2V9LmZpbGUtc2VhcmNoLWNsZWFyOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmZpbGUtc2VhcmNoLWNsZWFyLnZpc2libGV7ZGlzcGxheTppbmxpbmUtZmxleH0uZmlsZS1zZWFyY2gtY2xlYXI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5zaWRlYmFyLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjE7bWluLWhlaWdodDowO292ZXJmbG93LXk6YXV0bzstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhci1pbnRyb3tmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmbGV4LXNocmluazowfS5zZXNzaW9ucy1saXN0e2ZsZXg6MSAwIGF1dG87bWluLWhlaWdodDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjEwcHggMTBweCAxMnB4fSNzZXNzaW9ucy1wYW5lbHtkaXNwbGF5OmNvbnRlbnRzfS5zZXNzaW9ucy1saXN0OmVtcHR5OmJlZm9yZXtjb250ZW50OiJcNjY4Mlw2NWUwXDRmMWFcOGJkZCI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi1oZWlnaHQ6MjAwcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44NzVyZW19LnNlc3Npb24tZ3JvdXB7bWFyZ2luLWJvdHRvbToxNHB4fS5zZXNzaW9uLWdyb3VwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zZXNzaW9uLWdyb3VwLXRpdGxle3BhZGRpbmc6NHB4IDZweCAxMHB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjA4ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHh9LnNlc3Npb24tZ3JvdXAtdGl0bGU6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6M3B4O2hlaWdodDoxMnB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtvcGFjaXR5Oi42NTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0uY2xhdWRlLWhpc3RvcnktcHJldmlld3tvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnNlc3Npb24taXRlbXt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdDtiYWNrZ3JvdW5kOiNmZmZjZjdlYjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTBweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3BhZGRpbmc6MTBweCAxMnB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4ycyBlYXNlLHRyYW5zZm9ybSAuMXMgZWFzZTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO21hcmdpbi1ib3R0b206NnB4O3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbn0uc2Vzc2lvbi1pdGVtOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6NnB4O2JvdHRvbTo2cHg7d2lkdGg6M3B4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlWSgwKTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZTtib3JkZXItcmFkaXVzOjJweH0uc2Vzc2lvbi1pdGVtLXJvd3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9LnNlc3Npb24taXRlbS1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6aW5oZXJpdDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgdmFyKC0tZWFzZS1vdXQtZXhwbyksYmFja2dyb3VuZCAuMThzIGVhc2U7d2lsbC1jaGFuZ2U6dHJhbnNmb3JtfS5zZXNzaW9uLWl0ZW0uc3dpcGVkIC5zZXNzaW9uLWl0ZW0tY29udGVudHt0cmFuc2Zvcm06dHJhbnNsYXRlKC03MnB4KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2Y1LCNmY2Y2ZWRmMCl9LnNlc3Npb24tc3dpcGUtYmd7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt6LWluZGV4OjE7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMThzIGVhc2V9LnNlc3Npb24taXRlbS5zd2lwZWQgLnNlc3Npb24tc3dpcGUtYmd7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LnNlc3Npb24tc3dpcGUtZGVsZXRle3dpZHRoOjcycHg7Ym9yZGVyOjA7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKTtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UpO2Rpc3BsYXk6aW5saW5lLWZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDozcHg7Zm9udDppbmhlcml0O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXJ9LnNlc3Npb24tc3dpcGUtZGVsZXRlIHN2Z3tmbGV4LXNocmluazowfS5zZXNzaW9uLW1hbmFnZS1jaGVja3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDttYXJnaW4tcmlnaHQ6OHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5zZXNzaW9uLW1hbmFnZS1jaGVjayBpbnB1dHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcn0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgc3Bhbnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIyKTtiYWNrZ3JvdW5kOiNmZmZiZjU4Yztib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmY2O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSxib3JkZXItY29sb3IgLjE1cyBlYXNlfS5zZXNzaW9uLW1hbmFnZS1jaGVjazpob3ZlciBzcGFue2JhY2tncm91bmQ6I2ZmZmJmNWNjO2JvcmRlci1jb2xvcjojN2Q1YjM5NTl9LnNlc3Npb24tbWFuYWdlLWNoZWNrIGlucHV0OmNoZWNrZWQrc3BhbntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LnNlc3Npb24tbWFuYWdlLWNoZWNrIGlucHV0OmNoZWNrZWQrc3BhbjphZnRlcntjb250ZW50OiJcMjcxMyI7Y29sb3I6I2ZmZjtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjcwMH0uc2Vzc2lvbi1pdGVtLnNlbGVjdGVke2JvcmRlci1jb2xvcjojYzU2NTNkNTk7YmFja2dyb3VuZDojZmZmNWVlZjV9LnNlc3Npb24taXRlbS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9QGtleWZyYW1lcyBzZXNzaW9uLWRlbGV0ZS1jb2xsYXBzZXt0b3ttYXgtaGVpZ2h0OjA7b3BhY2l0eTowO21hcmdpbi1ib3R0b206MDtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjA7Ym9yZGVyLXdpZHRoOjB9fS5zZXNzaW9uLWl0ZW0uZGVsZXRpbmd7YW5pbWF0aW9uOnNlc3Npb24tZGVsZXRlLWNvbGxhcHNlIC4zcyBlYXNlLW91dCBmb3J3YXJkcztvdmVyZmxvdzpoaWRkZW47bWF4LWhlaWdodDoxMjBweDtwb2ludGVyLWV2ZW50czpub25lfS5zZXNzaW9uLW1haW57ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjNweDtwYWRkaW5nLXJpZ2h0OjYwcHh9LnNlc3Npb24tdGl0bGUtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHh9LnNlc3Npb24tdGl0bGUtcm93IC5zZXNzaW9uLXRpdGxlLC5zZXNzaW9uLXRpdGxlLXJvdyAuc2Vzc2lvbi1jb21tYW5ke2ZsZXg6MTttaW4td2lkdGg6MH0uc2Vzc2lvbi10aW1le2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3doaXRlLXNwYWNlOm5vd3JhcDtsaW5lLWhlaWdodDoxLjQ7cGFkZGluZy10b3A6MXB4fS5zZXNzaW9uLWFjdGl2aXR5e2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS1hY2NlbnQpO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztsaW5lLWhlaWdodDoxLjM7b3BhY2l0eTouODV9LnNlc3Npb24tZGVzY3JpcHRpb257Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztsaW5lLWhlaWdodDoxLjM1fS5zZXNzaW9uLXJlY292ZXJ5LWhpbnR7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDojOTY3NjU1MTQ7cGFkZGluZzoxcHggNXB4O2JvcmRlci1yYWRpdXM6M3B4fS5zZXNzaW9uLWFjdGlvbnN7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6NHB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmbGV4LXNocmluazowfS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6MjhweDtoZWlnaHQ6MjhweDttaW4taGVpZ2h0OjI4cHg7bWluLXdpZHRoOjI4cHg7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6LjgxMjVyZW07YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcn0uc2Vzc2lvbi1hY3Rpb24tYnRuOmhvdmVye2JhY2tncm91bmQ6Izk2NzY1NTFhO2NvbG9yOnZhcigtLWFjY2VudCl9LnNlc3Npb24tYWN0aW9uLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45KTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4xc30uc2Vzc2lvbi1hY3Rpb24tYnRuIHN2Z3tmbGV4LXNocmluazowfS5zZXNzaW9uLWFjdGlvbi1idG4uZGVsZXRlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNlNzRjM2MxNDtjb2xvcjojZDM1MjQ0fS5zZXNzaW9uLWFjdGlvbi1idG4ubWVyZ2UtYnRuOmhvdmVye2JhY2tncm91bmQ6IzJmODBlZDFhO2NvbG9yOiMyZjgwZWR9LnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZS1tZXJnZXtiYWNrZ3JvdW5kOiMyZjgwZWQxZjtjb2xvcjojMmY4MGVkfS5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWUtbWVyZ2UuZmFpbGVke2JhY2tncm91bmQ6I2U3NGMzYzFmO2NvbG9yOiNkMzUyNDR9LnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZS1tZXJnZS5tZXJnZWR7YmFja2dyb3VuZDojMjdhZTYwMWY7Y29sb3I6IzIxOTY1M30uc2Vzc2lvbi1raW5kLWJhZGdlLndvcmt0cmVlLW1lcmdlLm1lcmdpbmcsLnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZS1tZXJnZS5jaGVja2luZ3tiYWNrZ3JvdW5kOiNmMjk5NGExZjtjb2xvcjojYzE3YzJifS53b3JrdHJlZS1tZXJnZS1jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHh9Lndvcmt0cmVlLW1lcmdlLXJvd3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjE2cHg7cGFkZGluZzoxMHB4IDEycHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojZmZmZmZmODA7Zm9udC1zaXplOi44NzVyZW19Lndvcmt0cmVlLW1lcmdlLXJvdyBzcGFue2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ud29ya3RyZWUtbWVyZ2Utcm93IHN0cm9uZ3tjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3dvcmQtYnJlYWs6YnJlYWstYWxsO3RleHQtYWxpZ246cmlnaHR9Lndvcmt0cmVlLW1lcmdlLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6MTBweDttYXJnaW4tdG9wOjE2cHh9Lndvcmt0cmVlLW1lcmdlLW1vZGFse21heC13aWR0aDo2MjBweH0ubW9kYWwtc3VidGl0bGV7bWFyZ2luLXRvcDo0cHg7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zZXNzaW9uLWFjdGlvbi1idG5bZGlzYWJsZWRde29wYWNpdHk6LjQ1O2N1cnNvcjpub3QtYWxsb3dlZH0uc2Vzc2lvbi1hY3Rpb24tYnRuW2Rpc2FibGVkXTpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1hY3Rpb25zIC5idG5bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS53b3JrdHJlZS1tZXJnZS1hY3Rpb25zIC5idG5bZGlzYWJsZWRdOmhvdmVyLC53b3JrdHJlZS1tZXJnZS1hY3Rpb25zIC5idG5bZGlzYWJsZWRdOmFjdGl2ZXt0cmFuc2Zvcm06bm9uZX0ud29ya3RyZWUtbWVyZ2UtYWN0aW9ucyAuYnRue21pbi13aWR0aDoxMjBweH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgLm1vZGFsLWJvZHl7bWluLWhlaWdodDoyNjBweH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgLmVycm9yLW1lc3NhZ2V7bWFyZ2luLXRvcDoxMnB4fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50e21hcmdpbi10b3A6MH0ud29ya3RyZWUtbWVyZ2Utcm93Ky5maWVsZC1oaW50e21hcmdpbi10b3A6MnB4fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50Ky5maWVsZC1oaW50e21hcmdpbi10b3A6NHB4fS53b3JrdHJlZS1tZXJnZS1tb2RhbCAubW9kYWwtc3VidGl0bGV7bWF4LXdpZHRoOjQyMHB4fS53b3JrdHJlZS1tZXJnZS1tb2RhbCBzdHJvbmd7Zm9udC13ZWlnaHQ6NjAwfS53b3JrdHJlZS1tZXJnZS1tb2RhbCAubW9kYWwtaGVhZGVye2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgcHttYXJnaW46MH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludCBzdHJvbmd7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ud29ya3RyZWUtbWVyZ2Utcm93IHN0cm9uZzplbXB0eTphZnRlcntjb250ZW50OiItIjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludCBjb2Rle2ZvbnQtZmFtaWx5OmluaGVyaXR9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQ6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9Lndvcmt0cmVlLW1lcmdlLXJvdzpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjJweH0ud29ya3RyZWUtbWVyZ2Utcm93Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50Lm11dGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50LmVycm9ye2NvbG9yOiNkMzUyNDR9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQuc3VjY2Vzc3tjb2xvcjojMjE5NjUzfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50Lndhcm5pbmd7Y29sb3I6I2MxN2MyYn0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludC5pbmZve2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludCsud29ya3RyZWUtbWVyZ2Utcm93e21hcmdpbi10b3A6MnB4fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3crLndvcmt0cmVlLW1lcmdlLXJvd3ttYXJnaW4tdG9wOjB9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyBzdHJvbmcgc21hbGx7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyBzdHJvbmcgY29kZSwud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IHNwYW4gY29kZXtmb250LWZhbWlseTppbmhlcml0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgY29kZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BhZGRpbmc6MH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IGVte2ZvbnQtc3R5bGU6bm9ybWFsO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgc21hbGwsLndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAubXV0ZWR7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAud2FybmluZ3tjb2xvcjojYzE3YzJifS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLnN1Y2Nlc3N7Y29sb3I6IzIxOTY1M30ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5lcnJvcntjb2xvcjojZDM1MjQ0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmluZm97Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLnRydW5jYXRle292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLm1vbm9zcGFjZXtmb250LWZhbWlseTp1aS1tb25vc3BhY2UsU0ZNb25vLVJlZ3VsYXIsTWVubG8sTW9uYWNvLENvbnNvbGFzLG1vbm9zcGFjZX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5zbWFsbHtmb250LXNpemU6LjgxMjVyZW19Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAubm9ybWFse2ZvbnQtc2l6ZTouODc1cmVtfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmJsb2Nre2Rpc3BsYXk6YmxvY2t9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAuaW5saW5le2Rpc3BsYXk6aW5saW5lfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmZsZXh7ZGlzcGxheTpmbGV4fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmdyaWR7ZGlzcGxheTpncmlkfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLnJvdW5kZWR7Ym9yZGVyLXJhZGl1czo4cHh9QG1lZGlhKGhvdmVyOmhvdmVyKXsuc2Vzc2lvbi1pdGVtIC5zZXNzaW9uLWFjdGlvbnN7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuMnMgZWFzZX0uc2Vzc2lvbi1pdGVtOmhvdmVyIC5zZXNzaW9uLWFjdGlvbnMsLnNlc3Npb24taXRlbS5hY3RpdmUgLnNlc3Npb24tYWN0aW9ucywuc2Vzc2lvbi1pdGVtLnN3aXBlZCAuc2Vzc2lvbi1hY3Rpb25ze29wYWNpdHk6MX0uc2Vzc2lvbi1pdGVtIC5zZXNzaW9uLWFjdGlvbnM6aGFzKC5zZXNzaW9uLWFjdGlvbi1idG5bZGF0YS1hY3Rpb249cmVzdW1lXSl7b3BhY2l0eToxfX1AbWVkaWEoaG92ZXI6bm9uZSl7LnNlc3Npb24taXRlbSAuc2Vzc2lvbi1hY3Rpb25ze29wYWNpdHk6MX19LnNlc3Npb24taXRlbTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZkZmFmNTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JveC1zaGFkb3c6MCAycHggOHB4ICM1OTNhMjAxMn0uc2Vzc2lvbi1pdGVtOmhvdmVyOmJlZm9yZXtvcGFjaXR5Oi41O3RyYW5zZm9ybTpzY2FsZVkoMSl9LnNlc3Npb24taXRlbS5hY3RpdmV7YmFja2dyb3VuZDojZmZmN2YwZjU7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q0ZDtib3gtc2hhZG93OjAgMnB4IDhweCAjYzU2NTNkMWF9LnNlc3Npb24taXRlbTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45OSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMXN9LnNlc3Npb24tY29tbWFuZHtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44MTI1cmVtO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMWVtfS5zZXNzaW9uLXRpdGxle2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6LjgxMjVyZW07d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMWVtO2xpbmUtaGVpZ2h0OjEuM30uc2Vzc2lvbi1tZXRhe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7ZmxleC13cmFwOndyYXB9LnNlc3Npb24tc3RhdHVze2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzozcHggOHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6LjY4NzVyZW07dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc2Vzc2lvbi1zdGF0dXMtZG90e3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2ZsZXgtc2hyaW5rOjB9LnNlc3Npb24tc3RhdHVzLnJ1bm5pbmcgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6MCAwIDVweCB2YXIoLS1zdWNjZXNzLWdsb3cpO2FuaW1hdGlvbjpzdGF0dXMtcHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnNlc3Npb24tc3RhdHVzLmV4aXRlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCl9LnNlc3Npb24tc3RhdHVzLmZhaWxlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1zdGF0dXMuc3RvcHBlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0td2FybmluZyl9LnNlc3Npb24tc3RhdHVzLnJ1bm5pbmd7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0uc2Vzc2lvbi1zdGF0dXMuZmFpbGVke2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5zZXNzaW9uLXN0YXR1cy5zdG9wcGVke2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1tdXRlZCk7Y29sb3I6dmFyKC0td2FybmluZyl9LnNlc3Npb24tc3RhdHVzLnBlcm1pc3Npb24tYmxvY2tlZHtiYWNrZ3JvdW5kOiNmMGE1MDAyNDtjb2xvcjojZDE4YjAwfS5zZXNzaW9uLXN0YXR1cy5leGl0ZWQsLnNlc3Npb24tc3RhdHVzLmFyY2hpdmVke2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowfUBrZXlmcmFtZXMgc3RhdHVzLXB1bHNlezAlLHRve29wYWNpdHk6MX01MCV7b3BhY2l0eTouNX19LnNlc3Npb24taWR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOiM5Njc2NTUxZjtwYWRkaW5nOjJweCA2cHg7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC13ZWlnaHQ6NTAwfS5zaWRlYmFyLWZvb3RlcntwYWRkaW5nOjEycHggMTJweCAxNHB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHg7YmFja2dyb3VuZDojZmZmYmY1YjN9LnNpZGViYXItZm9vdGVyLWFjdGlvbnN7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoYXV0by1maXQsbWlubWF4KDU2cHgsMWZyKSk7Z2FwOjRweH0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRue2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjRweDtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZzo3cHggNHB4O21pbi1oZWlnaHQ6NDZweDtib3JkZXItcmFkaXVzOjlweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4gc3Zne3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MDtvcGFjaXR5Oi44NTt0cmFuc2l0aW9uOm9wYWNpdHkgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuOmhvdmVye2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7YmFja2dyb3VuZDojOTY3NjU1MTQ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bjpob3ZlciBzdmd7b3BhY2l0eToxfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpO3RyYW5zaXRpb24tZHVyYXRpb246LjFzfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4uaGlkZGVue2Rpc3BsYXk6bm9uZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuc2lkZWJhci1sb2dvdXR7cG9zaXRpb246cmVsYXRpdmV9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLnNpZGViYXItbG9nb3V0OmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTNweDt0b3A6MjIlO2JvdHRvbToyMiU7d2lkdGg6MXB4O2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLXN1YnRsZSk7cG9pbnRlci1ldmVudHM6bm9uZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuc2lkZWJhci1sb2dvdXQ6aG92ZXJ7Y29sb3I6dmFyKC0tZGFuZ2VyKTtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCl9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLnNpZGViYXItbG9nb3V0OmhvdmVyIHN2Z3tjb2xvcjp2YXIoLS1kYW5nZXIpfS50b3BiYXItYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjVweDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtoZWlnaHQ6MzJweDttaW4taGVpZ2h0OjMycHg7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDoxO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS50b3BiYXItYnRuOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZjgwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnRvcGJhci1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS50b3BiYXItYnRuLmFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmZmZmZiMztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjYwMDtib3gtc2hhZG93OjAgMXB4IDRweCAjNTkzYTIwMWF9LnRvcGJhci1idG4uc3F1YXJle3dpZHRoOjMycHg7cGFkZGluZzowO2ZvbnQtc2l6ZTouODc1cmVtfSN0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6I2M1NjUzZDMzfSN0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QyZX0uYnRue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjZweDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzotLjAwNWVtO3BhZGRpbmc6MCAxNnB4O2hlaWdodDozOHB4O21pbi1oZWlnaHQ6MzhweDtib3JkZXItcmFkaXVzOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXA7cG9zaXRpb246cmVsYXRpdmU7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLGJvcmRlci1jb2xvciAuMTVzIGVhc2UsY29sb3IgLjE1cyBlYXNlLGJveC1zaGFkb3cgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LmJ0bjpmb2N1c3tvdXRsaW5lOm5vbmV9LmJ0bjpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZTtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1iZy1wcmltYXJ5KSwwIDAgMCA0cHggdmFyKC0tYWNjZW50KX0uYnRuOmRpc2FibGVkLC5idG5bZGlzYWJsZWRde29wYWNpdHk6LjQ1O2N1cnNvcjpub3QtYWxsb3dlZDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zZm9ybTpub25lIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50fS5idG4tcHJpbWFyeXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50LWhvdmVyKSAwJSx2YXIoLS1hY2NlbnQpIDEwMCUpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSk7Ym94LXNoYWRvdzowIDFweCAycHggI2M1NjUzZDUyLDAgNHB4IDEwcHggLTJweCAjYzU2NTNkNTIsaW5zZXQgMCAxcHggI2ZmZmZmZjM4LGluc2V0IDAgLTFweCAjNTkzYTIwMmV9LmJ0bi1wcmltYXJ5OmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZDY4NTVlIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDJweCA0cHggI2M1NjUzZDUyLDAgOHB4IDIwcHggLTRweCAjYzU2NTNkNjYsaW5zZXQgMCAxcHggI2ZmZmZmZjQ3LGluc2V0IDAgLTFweCAjNTkzYTIwMmV9LmJ0bi1wcmltYXJ5OmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50KSAwJSx2YXIoLS1hY2NlbnQtYWN0aXZlKSAxMDAlKTtib3gtc2hhZG93OjAgMXB4IDJweCAjYzU2NTNkNDcsaW5zZXQgMCAxcHggIzU5M2EyMDJlO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLXNlY29uZGFyeXtiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLXNlY29uZGFyeTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkyNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5idG4tc2Vjb25kYXJ5OmFjdGl2ZXtiYWNrZ3JvdW5kOiM3ZDViMzkzMzt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9LmJ0bi1naG9zdHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1naG9zdDpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5idG4tZ2hvc3Q6YWN0aXZle2JhY2tncm91bmQ6IzdkNWIzOTI0O3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLWRhbmdlcntiYWNrZ3JvdW5kOiNiMjRmNDUxNDtjb2xvcjp2YXIoLS1kYW5nZXIpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUyOTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5idG4tZGFuZ2VyOmFjdGl2ZXtiYWNrZ3JvdW5kOiNiMjRmNDUzZDt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9LmJ0bi1kYW5nZXI6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1iZy1wcmltYXJ5KSwwIDAgMCA0cHggdmFyKC0tZGFuZ2VyKX0uYnRuLXN1Y2Nlc3N7YmFja2dyb3VuZDojNGY3YTU4MWE7Y29sb3I6dmFyKC0tc3VjY2Vzcyk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tc3VjY2Vzczpob3ZlcntiYWNrZ3JvdW5kOiM0ZjdhNTgyZTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0uYnRuLXN1Y2Nlc3M6YWN0aXZle2JhY2tncm91bmQ6IzRmN2E1ODQyO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLXN1Y2Nlc3M6Zm9jdXMtdmlzaWJsZXtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1iZy1wcmltYXJ5KSwwIDAgMCA0cHggdmFyKC0tc3VjY2Vzcyl9LmJ0bi1ibG9ja3t3aWR0aDoxMDAlfS5idG4teHN7aGVpZ2h0OjI2cHg7bWluLWhlaWdodDoyNnB4O3BhZGRpbmc6MCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07Ym9yZGVyLXJhZGl1czo3cHg7Z2FwOjRweH0uYnRuLXNte2hlaWdodDozMnB4O21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjAgMTJweDtmb250LXNpemU6LjgxMjVyZW07Ym9yZGVyLXJhZGl1czo4cHg7Z2FwOjVweH0uYnRuLWljb257cGFkZGluZzowO3dpZHRoOjM2cHg7bWluLXdpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWluLWhlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6OHB4O2dhcDowfS5idG4taWNvbi5idG4tc217d2lkdGg6MzBweDttaW4td2lkdGg6MzBweDtoZWlnaHQ6MzBweDttaW4taGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo3cHh9LmJ0bi1pY29uIHN2Z3tmbGV4LXNocmluazowfS5tYWluLWNvbnRlbnR7ZmxleDoxO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWluLXdpZHRoOjA7bWluLWhlaWdodDowO292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3Bvc2l0aW9uOnJlbGF0aXZlfS5tYWluLWNvbnRlbnQuZmlsZS1wYW5lbC1vcGVue21hcmdpbi1yaWdodDp2YXIoLS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoKTt0cmFuc2l0aW9uOm1hcmdpbi1yaWdodCAuMjVzIGN1YmljLWJlemllciguNCwwLC4yLDEpfS50ZXJtaW5hbC1pbmZve2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjUwMH0ubWFpbi1oZWFkZXItcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo2cHggMTBweDtmbGV4LXNocmluazowO21pbi1oZWlnaHQ6NDRweDtnYXA6OHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5tYWluLWhlYWRlci1yb3c6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtoZWlnaHQ6MnB4O3BvaW50ZXItZXZlbnRzOm5vbmU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQgMCUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC44NSkgMzUlLHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwxKSA1MCUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC44NSkgNjUlLHRyYW5zcGFyZW50IDEwMCUpO2JhY2tncm91bmQtc2l6ZToyMjAlIDEwMCU7YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIGNlbnRlcjtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNXMgZWFzZX0ubWFpbi1oZWFkZXItcm93LmlzLXJ1bm5pbmc6YWZ0ZXJ7b3BhY2l0eToxO2FuaW1hdGlvbjp0b3BiYXJQcm9ncmVzc0Zsb3cgMS42cyBsaW5lYXIgaW5maW5pdGV9Lm1haW4taGVhZGVyLXJvdy5pcy1wZXJtaXNzaW9uLWJsb2NrZWQ6YWZ0ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQgMCUscmdiYSgxNjksMTA2LDQ3LC44NSkgMzUlLHJnYmEoMTY5LDEwNiw0NywxKSA1MCUscmdiYSgxNjksMTA2LDQ3LC44NSkgNjUlLHRyYW5zcGFyZW50IDEwMCUpO2JhY2tncm91bmQtc2l6ZToyMjAlIDEwMCU7YW5pbWF0aW9uLWR1cmF0aW9uOjIuNHN9QGtleWZyYW1lcyB0b3BiYXJQcm9ncmVzc0Zsb3d7MCV7YmFja2dyb3VuZC1wb3NpdGlvbjoxMDAlIGNlbnRlcn10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMDAlIGNlbnRlcn19QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsubWFpbi1oZWFkZXItcm93LmlzLXJ1bm5pbmc6YWZ0ZXJ7YW5pbWF0aW9uOm5vbmU7b3BhY2l0eTouN319LnRvcGJhci1sZWZ0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmbGV4LXNocmluazowfS50b3BiYXItY2VudGVye2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7b3ZlcmZsb3c6aGlkZGVufS50b3BiYXItcmlnaHR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2ZsZXgtc2hyaW5rOjB9LnRvcGJhci1icmFuZHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudCksdmFyKC0tYWNjZW50LWFjdGl2ZSkpO2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouODVyZW07bGV0dGVyLXNwYWNpbmc6LjAyZW07Ym94LXNoYWRvdzowIDFweCAzcHggIzU5M2EyMDJlO3VzZXItc2VsZWN0Om5vbmU7ZmxleC1zaHJpbms6MH0udG9wYmFyLXNlc3Npb24tdGl0bGV7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTouODVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7ZmxleC1zaHJpbms6MDttYXgtd2lkdGg6MjQwcHh9LnRvcGJhci1jd2R7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi43MnJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjttaW4td2lkdGg6MDtmbGV4OjEgMSAwO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MnB4IDZweDtib3JkZXItcmFkaXVzOjZweDtkaXJlY3Rpb246bHRyO3RleHQtYWxpZ246bGVmdDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS50b3BiYXItY3dkOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NHB4fS50b3BiYXItY3dkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTU0Nztib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0udG9wYmFyLWN3ZDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojOTY3NjU1ODB9LnRvcGJhci1jd2Q6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmOGM7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS50YWlsLW1hcnF1ZWUtcGF0aHtkaXNwbGF5OmlubGluZS1ibG9jazttaW4td2lkdGg6MDttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO2RpcmVjdGlvbjpsdHI7dGV4dC1hbGlnbjpsZWZ0O3ZlcnRpY2FsLWFsaWduOmJvdHRvbTstLXRhaWwtbWFycXVlZS1zaGlmdDogMHB4Oy0tdGFpbC1tYXJxdWVlLWR1cmF0aW9uOiAxMnM7LS10YWlsLW1hcnF1ZWUtZGVsYXk6IDIuNHN9LnRhaWwtbWFycXVlZS1wYXRoLWlubmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS10YWlsLW1hcnF1ZWUtc2hpZnQpKSl9LnRhaWwtbWFycXVlZS1wYXRoLmlzLW92ZXJmbG93aW5nIC50YWlsLW1hcnF1ZWUtcGF0aC1pbm5lcnthbmltYXRpb246dGFpbFBhdGhNYXJxdWVlIHZhcigtLXRhaWwtbWFycXVlZS1kdXJhdGlvbikgbGluZWFyIHZhcigtLXRhaWwtbWFycXVlZS1kZWxheSkgaW5maW5pdGUgYWx0ZXJuYXRlIGJvdGh9QGtleWZyYW1lcyB0YWlsUGF0aE1hcnF1ZWV7MCUsMjIle3RyYW5zZm9ybTp0cmFuc2xhdGUoY2FsYygtMSAqIHZhcigtLXRhaWwtbWFycXVlZS1zaGlmdCkpKX03OCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX19QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsudGFpbC1tYXJxdWVlLXBhdGguaXMtb3ZlcmZsb3dpbmcgLnRhaWwtbWFycXVlZS1wYXRoLWlubmVye2FuaW1hdGlvbjpub25lIWltcG9ydGFudDt0cmFuc2Zvcm06dHJhbnNsYXRlKGNhbGMoLTEgKiB2YXIoLS10YWlsLW1hcnF1ZWUtc2hpZnQpKSl9fS50b3BiYXItdGFnbGluZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljc4cmVtO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uc2Vzc2lvbi1zdGF0dXMtcGlsbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MnB4IDlweCAycHggN3B4O2ZsZXgtc2hyaW5rOjA7bWF4LXdpZHRoOjE0MHB4O3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW59LnNlc3Npb24tc3RhdHVzLXBpbGwgLnNlc3Npb24tc3RhdHVzLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXgtc2hyaW5rOjB9LnNlc3Npb24tc3RhdHVzLXBpbGwgLnNlc3Npb24tc3RhdHVzLXRleHR7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnNlc3Npb24tc3RhdHVzLXBpbGwucnVubmluZ3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2JvcmRlci1jb2xvcjojNGY3YTU4NGQ7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9LnNlc3Npb24tc3RhdHVzLXBpbGwucnVubmluZyAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcyk7YW5pbWF0aW9uOnRhc2stcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5wZXJtaXNzaW9uLWJsb2NrZWR7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLW11dGVkKTtib3JkZXItY29sb3I6I2E5NmEyZjU5O2NvbG9yOnZhcigtLXdhcm5pbmcpfS5zZXNzaW9uLXN0YXR1cy1waWxsLnBlcm1pc3Npb24tYmxvY2tlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0td2FybmluZyk7YW5pbWF0aW9uOnRhc2stcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5leGl0ZWQsLnNlc3Npb24tc3RhdHVzLXBpbGwuc3RvcHBlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5mYWlsZWR7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1jb2xvcjojYjI0ZjQ1NGQ7Y29sb3I6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5mYWlsZWQgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcil9LnNlc3Npb24tc3RhdHVzLXBpbGwuYXJjaGl2ZWR7b3BhY2l0eTouN30uc2Vzc2lvbi1zdGF0dXMtcGlsbCAuc2Vzc2lvbi1zdGF0dXMtZWxhcHNlZHtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OjRweDtwYWRkaW5nLWxlZnQ6NnB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCBjdXJyZW50Q29sb3I7b3BhY2l0eTouNzU7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXNpemU6LjY1cmVtO2xldHRlci1zcGFjaW5nOi0uMDFlbX0uY3VycmVudC10YXNre2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMik7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6MnB4IDhweCAycHggNXB4O2ZvbnQtd2VpZ2h0OjUwMDttYXgtd2lkdGg6MjQwcHg7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO2ZsZXgtc2hyaW5rOjE7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmN1cnJlbnQtdGFzazpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7ZmxleC1zaHJpbms6MDthbmltYXRpb246dGFzay1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdGFzay1wdWxzZXswJSx0b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfTUwJXtvcGFjaXR5Oi41O3RyYW5zZm9ybTpzY2FsZSguOCl9fS50b3BiYXItbW9yZS13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXh9LnRvcGJhci1tb3JlLW1lbnV7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoMTAwJSArIDZweCk7cmlnaHQ6MDttaW4td2lkdGg6MTY4cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO3BhZGRpbmc6NHB4O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWxnKTt6LWluZGV4OjYwO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjFweH0udG9wYmFyLW1vcmUtbWVudS5oaWRkZW57ZGlzcGxheTpub25lfS50b3BiYXItbW9yZS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjlweDt3aWR0aDoxMDAlO3BhZGRpbmc6OHB4IDEycHg7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44MnJlbTtmb250LXdlaWdodDo1MDA7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo4cHg7dGV4dC1hbGlnbjpsZWZ0O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvcGJhci1tb3JlLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCl9LnRvcGJhci1tb3JlLWl0ZW0gc3Zne2ZsZXgtc2hyaW5rOjA7b3BhY2l0eTouODV9LnRvcGJhci1tb3JlLWl0ZW0udG9wYmFyLW1vcmUtaXRlbS1kYW5nZXJ7Y29sb3I6dmFyKC0tZGFuZ2VyKX0udG9wYmFyLW1vcmUtaXRlbS50b3BiYXItbW9yZS1pdGVtLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Y29sb3I6dmFyKC0tZGFuZ2VyLWhvdmVyKX0udG9wYmFyLW1vcmUtaXRlbS5oaWRkZW57ZGlzcGxheTpub25lfS50b3BiYXItbW9yZS1pdGVtW2Rpc2FibGVkXXtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZH0udG9wYmFyLW1vcmUtaXRlbVtkaXNhYmxlZF06aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS50b3BiYXItbW9yZS1kaXZpZGVye2hlaWdodDoxcHg7bWFyZ2luOjRweCA2cHg7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItZGVmYXVsdCk7b3BhY2l0eTouNn0udGVybWluYWwtY29udGFpbmVye2ZsZXg6MTtkaXNwbGF5Om5vbmU7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IHRvcCByaWdodCxyZ2JhKDkxLDU4LDM0LC4yKSx0cmFuc3BhcmVudCAzNSUpLHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tIGxlZnQscmdiYSgxOTcsMTAxLDYxLC4wOCksdHJhbnNwYXJlbnQgNDAlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCMyYTIyMWMsIzFmMWIxNywjMWExNjEzKTtvdmVyZmxvdzpoaWRkZW47bWluLWhlaWdodDowO21pbi13aWR0aDowO21hcmdpbjowIDZweCA2cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxNDAsMTEwLDg1LC4zNSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmMGYsMCA4cHggMzJweCAjMDAwMDAwNTksMCAycHggOHB4ICMwMDAzO3Bvc2l0aW9uOnJlbGF0aXZlO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKX0udGVybWluYWwtY29udGFpbmVyLmFjdGl2ZXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6c3RyZXRjaH0udGVybWluYWwtc2Nyb2xsLXdyYXB7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47c2Nyb2xsYmFyLXdpZHRoOm5vbmU7cGFkZGluZzoxMnB4O2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmU7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7dGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9uZTtmb250LWZlYXR1cmUtc2V0dGluZ3M6ImxpZ2EiIDAsImNsaWciIDAsImNhbHQiIDAsImRsaWciIDA7Zm9udC1rZXJuaW5nOm5vbmU7LS10ZXJtLWZnOiAjZjVlYWRjOy0tdGVybS1iZzogdHJhbnNwYXJlbnQ7LS10ZXJtLWN1cnNvcjogI2Q2N2I1MjstLXRlcm0tZm9udC1mYW1pbHk6ICJHZWlzdCBNb25vIiwgIlNGIE1vbm8iLCBtb25vc3BhY2U7LS10ZXJtLWZvbnQtc2l6ZTogMTNweDstLXRlcm0tbGluZS1oZWlnaHQ6IHZhcigtLXRlcm0tcm93LWhlaWdodCk7LS10ZXJtLXJvdy1oZWlnaHQ6IDIwcHg7LS10ZXJtLWNvbG9yLTA6ICMxZjFiMTc7LS10ZXJtLWNvbG9yLTE6ICNkMjc3NjY7LS10ZXJtLWNvbG9yLTI6ICM3ZmEzNmY7LS10ZXJtLWNvbG9yLTM6ICNkNWEzNWI7LS10ZXJtLWNvbG9yLTQ6ICM4N2E5ZDk7LS10ZXJtLWNvbG9yLTU6ICNjNTk1Yzc7LS10ZXJtLWNvbG9yLTY6ICM3ZmIzYjE7LS10ZXJtLWNvbG9yLTc6ICNmNWVhZGM7LS10ZXJtLWNvbG9yLTg6ICM2MjUzNDc7LS10ZXJtLWNvbG9yLTk6ICNlMzlhODk7LS10ZXJtLWNvbG9yLTEwOiAjOWNjMDhhOy0tdGVybS1jb2xvci0xMTogI2ViYmI2ZTstLXRlcm0tY29sb3ItMTI6ICNhOGMxZWE7LS10ZXJtLWNvbG9yLTEzOiAjZGJiMWRjOy0tdGVybS1jb2xvci0xNDogIzlhY2JjYTstLXRlcm0tY29sb3ItMTU6ICNmZmY3ZWZ9LnRlcm1pbmFsLXNjcm9sbC13cmFwOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LnRlcm1pbmFsLXNjcm9sbC13cmFwIDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6I2Q2N2I1MjQ3fS50ZXJtaW5hbC1zY3JvbGwtd3JhcCAudGVybS1ncmlke21pbi1oZWlnaHQ6MTAwJX0udGVybWluYWwtc2Nyb2xsYmFye3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0cHg7cmlnaHQ6MnB4O2JvdHRvbTo0cHg7d2lkdGg6MTRweDt6LWluZGV4OjEwO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7cG9pbnRlci1ldmVudHM6bm9uZX0udGVybWluYWwtc2Nyb2xsYmFyLnZpc2libGV7b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LnRlcm1pbmFsLXNjcm9sbGJhci10cmFja3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtyaWdodDowO2JvdHRvbTowO3dpZHRoOjE0cHg7Ym9yZGVyLXJhZGl1czo3cHh9LnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYntwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDozcHg7d2lkdGg6OHB4O21pbi1oZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjRweDtiYWNrZ3JvdW5kOiNiNDk2Nzg1OTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLHdpZHRoIC4xNXMgZWFzZSxyaWdodCAuMTVzIGVhc2V9LnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNjOGFhOGM4Yzt3aWR0aDoxMHB4O3JpZ2h0OjJweH0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1iLmRyYWdnaW5nLC50ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWI6YWN0aXZle2JhY2tncm91bmQ6I2RjYjk5NmIzO3dpZHRoOjEwcHg7cmlnaHQ6MnB4fUBtZWRpYShwb2ludGVyOmNvYXJzZSl7LnRlcm1pbmFsLXNjcm9sbGJhciwudGVybWluYWwtc2Nyb2xsYmFyLXRyYWNre3dpZHRoOjIwcHh9LnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYnt3aWR0aDoxMnB4O3JpZ2h0OjRweDttaW4taGVpZ2h0OjM2cHh9LnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYjpob3ZlciwudGVybWluYWwtc2Nyb2xsYmFyLXRodW1iLmRyYWdnaW5ne3dpZHRoOjE0cHg7cmlnaHQ6M3B4fX0udGVybWluYWwtY29udGFpbmVyOmZvY3VzLXdpdGhpbntib3JkZXItY29sb3I6I2M1NjUzZDgwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjE0LDAgOHB4IDMycHggIzAwMDYsMCAwIDAgMnB4ICNjNTY1M2QyNn0udGVybWluYWwtcmVzaXplLWhhbmRsZXtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206M3B4O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7d2lkdGg6NDhweDtoZWlnaHQ6NXB4O2JhY2tncm91bmQ6I2ZmZmZmZjE0O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2N1cnNvcjpucy1yZXNpemU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTo3cHg7Y29sb3I6I2ZmZmZmZjQwO29wYWNpdHk6MDt0cmFuc2l0aW9uOmFsbCAuMjVzIHZhcigtLWVhc2Utb3V0LWV4cG8pO3otaW5kZXg6MTA7cG9pbnRlci1ldmVudHM6YXV0b30udGVybWluYWwtcmVzaXplLWhhbmRsZTpiZWZvcmV7Y29udGVudDoiXDIyZWVcMjJlZSI7bGV0dGVyLXNwYWNpbmc6OHB4O2ZvbnQtc2l6ZTo2cHh9LnRlcm1pbmFsLXJlc2l6ZS1oYW5kbGU6aG92ZXJ7b3BhY2l0eToxO2JhY2tncm91bmQ6I2ZmZmZmZjI2O2NvbG9yOiNmZmZmZmY4MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHNjYWxlKDEuMSl9LnRlcm1pbmFsLWNvbnRhaW5lcjpob3ZlciAudGVybWluYWwtcmVzaXplLWhhbmRsZXtvcGFjaXR5Oi43fS50ZXJtaW5hbC1jb250YWluZXIuaW50ZXJhY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg4Yztib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmYwZiwwIDAgMCAycHggIzRmN2E1ODQwLDAgOHB4IDMycHggIzAwMDAwMDU5fS50ZXJtaW5hbC1jb250YWluZXIuaW50ZXJhY3RpdmU6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCx2YXIoLS1zdWNjZXNzKSx0cmFuc3BhcmVudCk7YW5pbWF0aW9uOnRlcm1pbmFsLWFjdGl2ZS1wdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHRlcm1pbmFsLWFjdGl2ZS1wdWxzZXswJSx0b3tvcGFjaXR5Oi41fTUwJXtvcGFjaXR5OjF9fS50ZXJtaW5hbC1jb250YWluZXI6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6NDhweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byB0b3AscmdiYSgyNiwyMiwxOSwuNSksdHJhbnNwYXJlbnQpO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZTt6LWluZGV4OjEyO2JvcmRlci1yYWRpdXM6MCAwIHZhcigtLXJhZGl1cy1tZCkgdmFyKC0tcmFkaXVzLW1kKX0udGVybWluYWwtY29udGFpbmVyLmhhcy1qdW1wLWJ0bjphZnRlcntvcGFjaXR5OjF9LnRlcm1pbmFsLXNjYWxlLWJ0bnttaW4td2lkdGg6MjRweDtoZWlnaHQ6MjRweDtwYWRkaW5nOjAgNHB4O2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMH0udGVybWluYWwtc2NhbGUtbGFiZWx7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21pbi13aWR0aDozMnB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MCAycHh9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXl7cG9zaXRpb246YWJzb2x1dGU7dG9wOjhweDtyaWdodDo4cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjFweDtwYWRkaW5nOjJweDtib3JkZXItcmFkaXVzOjdweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA2KTtiYWNrZ3JvdW5kOiMxODE0MTE2MTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO2JveC1zaGFkb3c6MCA2cHggMThweCAjMDAwMDAwMmU7b3BhY2l0eTouNzI7dHJhbnNpdGlvbjpvcGFjaXR5IC4xOHMgZWFzZSxiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlO3otaW5kZXg6MTI7cG9pbnRlci1ldmVudHM6YXV0b30udGVybWluYWwtY29udGFpbmVyOmhvdmVyIC50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LC50ZXJtaW5hbC1zY2FsZS1vdmVybGF5OmZvY3VzLXdpdGhpbntvcGFjaXR5OjE7YmFja2dyb3VuZDojMTgxNDExOGY7Ym9yZGVyLWNvbG9yOiNmZmZmZmYxYX0udGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG57bWluLXdpZHRoOjIycHg7aGVpZ2h0OjIycHg7cGFkZGluZzowIDNweDtjb2xvcjojZjVlYWRjZTA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjVweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZX0udGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG46aG92ZXJ7YmFja2dyb3VuZDojZDY3YjUyMmU7Y29sb3I6I2ZmZjdlZmY1fS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWxhYmVse2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiNmNWVhZGNhODttaW4td2lkdGg6MzRweDt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjAgM3B4fS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWRpdmlkZXJ7d2lkdGg6MXB4O2hlaWdodDoxNHB4O2JhY2tncm91bmQ6I2Y1ZWFkYzMzO21hcmdpbjowIDJweH0udGVybWluYWwtanVtcC1ib3R0b217cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTRweDtib3R0b206MTZweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDgpO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzFjMTYxMmM3O2NvbG9yOiNmZmY3ZWZlYjtib3gtc2hhZG93OjAgMXB4IDJweCAjMDAwMDAwNDAsMCA4cHggMjJweCAjMDAwMDAwNTIsaW5zZXQgMCAxcHggI2ZmZmZmZjBmO2JhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxMztvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMTBweCkgc2NhbGUoLjg2KTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMjZzIHZhcigtLWVhc2Utb3V0LWV4cG8pLHRyYW5zZm9ybSAuMzJzIHZhcigtLWVhc2Utc3ByaW5nKSxiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJveC1zaGFkb3cgLjJzIGVhc2V9LnRlcm1pbmFsLWp1bXAtYm90dG9tLnZpc2libGV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpO3BvaW50ZXItZXZlbnRzOmF1dG99LnRlcm1pbmFsLWp1bXAtYm90dG9tIHN2Z3t0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnRlcm1pbmFsLWp1bXAtYm90dG9tOmhvdmVye2JhY2tncm91bmQ6I2Q2N2I1MmViO2JvcmRlci1jb2xvcjojZmZmZmZmMmU7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgMXB4IDJweCAjMDAwMDAwNDcsMCAxMHB4IDI2cHggI2I4NWMzNzVjLGluc2V0IDAgMXB4ICNmZmZmZmYyZX0udGVybWluYWwtanVtcC1ib3R0b206aG92ZXIgc3Zne3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEuNXB4KX0udGVybWluYWwtanVtcC1ib3R0b206YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC45Mik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDhzfS50ZXJtaW5hbC1qdW1wLWJvdHRvbTpmb2N1cy12aXNpYmxle291dGxpbmU6bm9uZTtib3gtc2hhZG93OjAgMXB4IDJweCAjMDAwMDAwNDcsMCAxMHB4IDI2cHggI2I4NWMzNzVjLGluc2V0IDAgMXB4ICNmZmZmZmYyZSwwIDAgMCAzcHggI2Q2N2I1MjU5fS50ZXJtaW5hbC1jb250YWluZXIuaW50ZXJhY3RpdmV7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg4MDtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmYwYSwwIDAgMCAycHggIzRmN2E1ODQwLHZhcigtLXNoYWRvdy1zb2Z0KX0ubWluaS1rZXlib2FyZC1mYWJ7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjYwcHg7cmlnaHQ6MTZweDt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2JvcmRlcjpub25lO2ZvbnQtc2l6ZToxLjEyNXJlbTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNoYWRvdzowIDRweCAxNnB4ICNiODVjMzc1OTt6LWluZGV4OjEwMDt0cmFuc2l0aW9uOmFsbCAuMnMgdmFyKC0tZWFzZS1zcHJpbmcpfS5taW5pLWtleWJvYXJkLWZhYi52aXNpYmxle2Rpc3BsYXk6ZmxleH0ubWluaS1rZXlib2FyZC1mYWI6aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMSk7Ym94LXNoYWRvdzowIDZweCAyMHB4ICNiODVjMzc3M30ubWluaS1rZXlib2FyZC1mYWI6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS5taW5pLWtleWJvYXJke3Bvc2l0aW9uOmZpeGVkO2JvdHRvbTo2MHB4O3JpZ2h0OjE2cHg7YmFja2dyb3VuZDojMmExZjE2ZjU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyMiw5MSw2NCwuNSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO2JveC1zaGFkb3c6MCA4cHggMzJweCAjMDAwNjt6LWluZGV4OjEwMDA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCk7b3ZlcmZsb3c6aGlkZGVuO21pbi13aWR0aDoyNjBweDthbmltYXRpb246bWtTbGlkZVVwIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0ubWluaS1rZXlib2FyZC5oaWRkZW57ZGlzcGxheTpub25lfUBrZXlmcmFtZXMgbWtTbGlkZVVwezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMnB4KSBzY2FsZSguOTYpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7Lm1pbmkta2V5Ym9hcmR7Ym90dG9tOjIwcHg7cmlnaHQ6MTBweDtsZWZ0OjEwcHg7bWluLXdpZHRoOjB9Lm1pbmkta2V5Ym9hcmQtZmFie2JvdHRvbToyMHB4O3JpZ2h0OjE2cHh9fS5jaGF0LWNvbnRhaW5lcntwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjE7ZGlzcGxheTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAyMHB4IDE2cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHJnYmEoMjU1LDI1MiwyNDgsLjUpIDAlLHRyYW5zcGFyZW50IDEwMCUpfS5jaGF0LXVucmVhZC1idWJibGV7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MTRweDtib3R0b206MTBweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo2cHg7aGVpZ2h0OjMycHg7bWluLXdpZHRoOjMycHg7cGFkZGluZzowIDEwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNzIpO2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDojZmZmY2Y4ZWI7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXNpemU6Ljc4cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxO2xldHRlci1zcGFjaW5nOi4wMWVtO3doaXRlLXNwYWNlOm5vd3JhcDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpO2JveC1zaGFkb3c6MCAxcHggM3B4ICM1OTNhMjAxZiwwIDEwcHggMjRweCAjYjg1YzM3MmUsaW5zZXQgMCAxcHggI2ZmZjk7Y3Vyc29yOnBvaW50ZXI7ei1pbmRleDoxMztvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoOHB4KSBzY2FsZSguOSk7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjI2cyB2YXIoLS1lYXNlLW91dC1leHBvKSx0cmFuc2Zvcm0gLjMycyB2YXIoLS1lYXNlLXNwcmluZyksYmFja2dyb3VuZCAuMThzIGVhc2UsYm9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4ycyBlYXNlLGNvbG9yIC4xOHMgZWFzZSxwYWRkaW5nIC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LmNoYXQtdW5yZWFkLWJ1YmJsZS52aXNpYmxle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtwb2ludGVyLWV2ZW50czphdXRvfS5jaGF0LXVucmVhZC1idWJibGUuaGFzLXVucmVhZHtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2ZmZmZmZmM3O3BhZGRpbmc6MCAxMnB4IDAgMTBweDtib3gtc2hhZG93OjAgMXB4IDNweCAjNTkzYTIwMmUsMCAxMnB4IDI4cHggI2I4NWMzNzUyLGluc2V0IDAgMXB4ICNmZmZmZmY0N30uY2hhdC11bnJlYWQtYnViYmxlLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC11bnJlYWQtYnViYmxlOmhvdmVye2JhY2tncm91bmQ6I2ZmZmFmMjtib3gtc2hhZG93OjAgMnB4IDRweCAjNTkzYTIwMjksMCAxNHB4IDMwcHggI2I4NWMzNzNkLGluc2V0IDAgMXB4ICNmZmZmZmZiM30uY2hhdC11bnJlYWQtYnViYmxlLmhhcy11bnJlYWQ6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtaG92ZXIpO2JveC1zaGFkb3c6MCAycHggNXB4ICM1OTNhMjAzOCwwIDE0cHggMzJweCAjYjg1YzM3NmIsaW5zZXQgMCAxcHggI2ZmZmZmZjUyfS5jaGF0LXVucmVhZC1idWJibGU6aG92ZXIgLmNoYXQtdW5yZWFkLWJ1YmJsZS1pY29ue3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEuNXB4KX0uY2hhdC11bnJlYWQtYnViYmxlOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSguOTQpO3RyYW5zaXRpb24tZHVyYXRpb246LjA4c30uY2hhdC11bnJlYWQtYnViYmxlOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lO2JveC1zaGFkb3c6MCAycHggNHB4ICM1OTNhMjAzMywwIDEycHggMjhweCAjYjg1YzM3NTIsaW5zZXQgMCAxcHggI2ZmZmZmZjUyLDAgMCAwIDNweCAjYzU2NTNkNTJ9LmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudHtkaXNwbGF5Om5vbmU7YWxpZ24taXRlbXM6Y2VudGVyO2ZvbnQtc2l6ZTouNzhyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjE7bGV0dGVyLXNwYWNpbmc6LjAxZW07cG9pbnRlci1ldmVudHM6bm9uZX0uY2hhdC11bnJlYWQtYnViYmxlLWNvdW50LnZpc2libGV7ZGlzcGxheTppbmxpbmUtZmxleDthbmltYXRpb246Y2hhdFVucmVhZENvdW50UG9wIC4yMnMgdmFyKC0tZWFzZS1vdXQtYmFjaywgY3ViaWMtYmV6aWVyKC4zNCwgMS41NiwgLjY0LCAxKSl9LmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudDphZnRlcntjb250ZW50OiIgXDY3NjFcNjViMFw2ZDg4XDYwNmYiO21hcmdpbi1sZWZ0OjJweDtmb250LXdlaWdodDo1MDA7b3BhY2l0eTouOTV9QGtleWZyYW1lcyBjaGF0VW5yZWFkQ291bnRQb3B7MCV7dHJhbnNmb3JtOnNjYWxlKC42KTtvcGFjaXR5OjB9dG97dHJhbnNmb3JtOnNjYWxlKDEpO29wYWNpdHk6MX19LmNoYXQtdW5yZWFkLWRpdmlkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDttYXJnaW46NnB4IDRweCAycHg7cGFkZGluZzowIDJweDtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS1hY2NlbnQpO2xldHRlci1zcGFjaW5nOi4wNGVtO3VzZXItc2VsZWN0Om5vbmU7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7YW5pbWF0aW9uOmNoYXRVbnJlYWREaXZpZGVySW4gLjMycyB2YXIoLS1lYXNlLW91dC1leHBvKSBmb3J3YXJkc30uY2hhdC11bnJlYWQtZGl2aWRlci1saW5le2ZsZXg6MTtoZWlnaHQ6MXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNjNTY1M2QwZCwjYzU2NTNkNTIsI2M1NjUzZDBkKX0uY2hhdC11bnJlYWQtZGl2aWRlci1sYWJlbHtmbGV4LXNocmluazowO3BhZGRpbmc6M3B4IDEwcHg7YmFja2dyb3VuZDojZmZmOGYwZjI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE4KTtib3JkZXItcmFkaXVzOjk5OXB4O2JveC1zaGFkb3c6MCAxcHggM3B4ICNiODVjMzcxYTt3aGl0ZS1zcGFjZTpub3dyYXB9QGtleWZyYW1lcyBjaGF0VW5yZWFkRGl2aWRlckluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5jaGF0LWNvbnRhaW5lci5hY3RpdmV7ZGlzcGxheTpmbGV4fS5jaGF0LWNvbnRhaW5lcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2hlaWdodDo0OHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHRvcCxyZ2JhKDI1NSwyNTIsMjQ4LC42KSx0cmFuc3BhcmVudCk7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlO3otaW5kZXg6MTJ9LmNoYXQtY29udGFpbmVyLmhhcy1qdW1wLWJ0bjphZnRlcntvcGFjaXR5OjF9LmNoYXQtbWVzc2FnZXN7ZmxleDoxO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2U7Z2FwOjE2cHg7cGFkZGluZzoyMHB4IDRweCAxMnB4O21pbi1oZWlnaHQ6MDttaW4td2lkdGg6MDtzY3JvbGxiYXItZ3V0dGVyOnN0YWJsZTtvdmVyc2Nyb2xsLWJlaGF2aW9yLXk6Y29udGFpbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDt0b3VjaC1hY3Rpb246cGFuLXk7b3ZlcmZsb3ctYW5jaG9yOm5vbmU7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWlufS5jaGF0LWxvYWQtbW9yZXtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjhweCAwfS5jaGF0LWxvYWQtbW9yZS1idG57YmFja2dyb3VuZDp2YXIoLS1iZy1ob3Zlcik7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouNzVyZW07cGFkZGluZzo2cHggMTZweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZX0uY2hhdC1sb2FkLW1vcmUtYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfUBtZWRpYShwb2ludGVyOmNvYXJzZSksKG1heC13aWR0aDo3NjhweCl7LmNoYXQtbG9hZC1tb3Jle3BhZGRpbmc6MTJweCAwfS5jaGF0LWxvYWQtbW9yZS1idG57bWluLWhlaWdodDozNnB4O3BhZGRpbmc6OHB4IDE4cHg7Zm9udC1zaXplOi43OHJlbX0uY2hhdC1tZXNzYWdlLmFuaW1hdGUtaW57YW5pbWF0aW9uLWR1cmF0aW9uOi4xOHN9LmNoYXQtbWVzc2FnZS51c2VyLmFuaW1hdGUtaW57YW5pbWF0aW9uLWR1cmF0aW9uOi4xN3N9fUBrZXlmcmFtZXMgbWVzc2FnZVNsaWRlezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpIHNjYWxlKC45ODUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19QGtleWZyYW1lcyBtZXNzYWdlU2xpZGVVc2VyezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKDEwcHgpIHRyYW5zbGF0ZVkoNHB4KSBzY2FsZSguOTg1KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKSB0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1Aa2V5ZnJhbWVzIG1lc3NhZ2VGbG9hdHswJSx0b3t0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX01MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTNweCl9fS5jaGF0LW1lc3NhZ2V7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDttYXJnaW46NHB4IDA7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLHRyYW5zZm9ybSAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7LS1jaGF0LWNhcmQtbWF4LXdpZHRoOiA3MjBweH0uY2hhdC1tZXNzYWdlOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfUBtZWRpYShob3Zlcjpub25lKXsuY2hhdC1tZXNzYWdlOmhvdmVye3RyYW5zZm9ybTpub25lfS5jaGF0LW1lc3NhZ2U6aG92ZXIgLmNoYXQtbWVzc2FnZS1idWJibGV7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc20pfS5jaGF0LW1lc3NhZ2UuYXNzaXN0YW50OmhvdmVyIC5jaGF0LW1lc3NhZ2UtYnViYmxle2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSl9fS5jaGF0LW1lc3NhZ2UudXNlcnthbGlnbi1zZWxmOmZsZXgtZW5kfS5jaGF0LW1lc3NhZ2UuYXNzaXN0YW50e2FsaWduLXNlbGY6ZmxleC1zdGFydDttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlfS5jaGF0LW1lc3NhZ2Uuc3lzdGVtLWluZm97YWxpZ24tc2VsZjpjZW50ZXI7bWF4LXdpZHRoOjEwMCU7d2lkdGg6MTAwJTttYXJnaW46MTBweCAwO2FuaW1hdGlvbjptZXNzYWdlRmxvYXQgM3MgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnN5c3RlbS1pbmZvLWNhcmR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCM2MzY2ZjExNCwjNjM2NmYxMGEpO2JvcmRlcjoxcHggc29saWQgcmdiYSg5OSwxMDIsMjQxLC4yKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7cGFkZGluZzoxMnB4IDE2cHg7Zm9udC1zaXplOi44MTI1cmVtO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhzKX0uc3lzdGVtLWluZm8taGVhZGVye2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojNjM2NmYxZjI7bWFyZ2luLWJvdHRvbTo4cHg7Zm9udC1zaXplOi42ODc1cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDhlbTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9LnN5c3RlbS1pbmZvLWhlYWRlcjpiZWZvcmV7Y29udGVudDoiIjt3aWR0aDo4cHg7aGVpZ2h0OjhweDtiYWNrZ3JvdW5kOiM2MzY2ZjE5OTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0uc3lzdGVtLWluZm8tY29udGVudHtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC13cmFwOmJyZWFrLXdvcmQ7bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQtYmFzZSk7bWF4LWhlaWdodDoyMDBweDtvdmVyZmxvdy15OmF1dG99LmNoYXQtbWVzc2FnZS5hbmltYXRlLWlue2FuaW1hdGlvbjptZXNzYWdlU2xpZGUgLjIycyB2YXIoLS1lYXNlLW91dC1leHBvKTt3aWxsLWNoYW5nZTpvcGFjaXR5LHRyYW5zZm9ybX0uY2hhdC1tZXNzYWdlLnVzZXIuYW5pbWF0ZS1pbnthbmltYXRpb246bWVzc2FnZVNsaWRlVXNlciAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LmNoYXQtbWVzc2FnZS1hdmF0YXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6MCAycHggNHB4fS5jaGF0LW1lc3NhZ2UtYXZhdGFyLmFzc2lzdGFudHtmbGV4LWRpcmVjdGlvbjpyb3d9LmNoYXQtbWVzc2FnZS1hdmF0YXIudXNlcntmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZX0ucGl4ZWwtYXZhdGFye3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7ZmxleC1zaHJpbms6MDtib3JkZXItcmFkaXVzOjZweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Ym94LXNoYWRvdzowIDFweCAzcHggIzAwMDAwMDI2fS5waXhlbC1hdmF0YXItaW1hZ2V7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO29iamVjdC1maXQ6Y292ZXJ9LnBpeGVsLWF2YXRhci1zdmd7ZGlzcGxheTpibG9jazt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2ltYWdlLXJlbmRlcmluZzpwaXhlbGF0ZWR9LmF2YXRhci1uYW1le2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAzZW07bGluZS1oZWlnaHQ6MX0uY2hhdC1tZXNzYWdlLmFzc2lzdGFudCAuYXZhdGFyLW5hbWV7Y29sb3I6dmFyKC0tYWNjZW50KX0uY2hhdC1tZXNzYWdlLnVzZXIgLmF2YXRhci1uYW1le2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpfS5jaGF0LW1lc3NhZ2UtYnViYmxle3BhZGRpbmc6MTJweCAxNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDp2YXIoLS1saW5lLWhlaWdodC1yZWxheGVkKTt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbjtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSk7dHJhbnNpdGlvbjpib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNoYXQtbWVzc2FnZTpob3ZlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZXtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZCl9LmNoYXQtbWVzc2FnZS51c2VyIC5jaGF0LW1lc3NhZ2UtYnViYmxle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZykgdmFyKC0tcmFkaXVzLWxnKSB2YXIoLS1yYWRpdXMtc20pIHZhcigtLXJhZGl1cy1sZyk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7Ym94LXNoYWRvdzowIDRweCAxNnB4ICNjNTY1M2Q0ZCxpbnNldCAwIDFweCAjZmZmZmZmMjZ9LmNoYXQtbWVzc2FnZS51c2Vye21heC13aWR0aDoxMDAlfS51c2VyLWF0dGFjaG1lbnRze2Rpc3BsYXk6ZmxleDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjZweDttYXJnaW4tYm90dG9tOjZweH0udXNlci1hdHRhY2htZW50LWltYWdle2Rpc3BsYXk6YmxvY2s7bGluZS1oZWlnaHQ6MH0udXNlci1hdHRhY2htZW50LXRodW1ie2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOm1pbigxMDAlLDI0MHB4KTttYXgtaGVpZ2h0OjIwMHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMjUpO29iamVjdC1maXQ6Y29udGFpbjtjdXJzb3I6em9vbS1pbjtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMjQ7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2V9LnVzZXItYXR0YWNobWVudC10aHVtYjpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgNHB4IDE0cHggIzAwMDM7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnVzZXItYXR0YWNobWVudC1maWxle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7bWF4LXdpZHRoOjEwMCU7cGFkZGluZzo1cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7YmFja2dyb3VuZDp2YXIoLS1iZy1zdXJmYWNlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2V9LnVzZXItYXR0YWNobWVudC1maWxlOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnVzZXItYXR0YWNobWVudC1maWxlLWljb257ZGlzcGxheTppbmxpbmUtZmxleDtmbGV4LXNocmluazowO2NvbG9yOnZhcigtLWFjY2VudCl9LnVzZXItYXR0YWNobWVudC1maWxlLW5hbWV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS51c2VyLWF0dGFjaG1lbnQtdGV4dHt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX0uY2hhdC1tZXNzYWdlLmFzc2lzdGFudCAuY2hhdC1tZXNzYWdlLWJ1YmJsZXtiYWNrZ3JvdW5kOnZhcigtLWJnLXN1cmZhY2UpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7cGFkZGluZzoxNHB4IDE4cHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC13cmFwOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSl9LmNoYXQtbWVzc2FnZS5hc3Npc3RhbnQ6aG92ZXIgLmNoYXQtbWVzc2FnZS1idWJibGV7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudC1zb2Z0KTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1tZCl9LmNoYXQtbWVzc2FnZS1jb250ZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO3dvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym94LXNpemluZzpib3JkZXItYm94fS5jaGF0LW1lc3NhZ2UtY29udGVudD4udGhpbmtpbmctaW5saW5lLC5jaGF0LW1lc3NhZ2UtY29udGVudD4uaW5saW5lLXRvb2wsLmNoYXQtbWVzc2FnZS1jb250ZW50Pi50b29sLXVzZS1jYXJkLC5jaGF0LW1lc3NhZ2UtY29udGVudD4udG9vbC1ncm91cHttYXJnaW46M3B4IDB9LnR1cm4tdXNhZ2Utc3VtbWFyeXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NnB4O3dpZHRoOjEwMCU7bWluLWhlaWdodDoyMHB4O21hcmdpbi10b3A6NnB4O3BhZGRpbmc6MnB4IDJweCAwO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnVpLW1vbm9zcGFjZSxTRk1vbm8tUmVndWxhcixNZW5sbyxNb25hY28sQ29uc29sYXMsbW9ub3NwYWNlO2ZvbnQtc2l6ZTouNjdyZW07bGluZS1oZWlnaHQ6MS40NTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7Ym94LXNpemluZzpib3JkZXItYm94fS50dXJuLXVzYWdlLXN1bW1hcnkuaXMtZXN0aW1hdGVke29wYWNpdHk6LjgyfS50dXJuLXVzYWdlLWljb257d2lkdGg6MTNweDtoZWlnaHQ6MTNweDttYXJnaW4tdG9wOjFweDtmbGV4OjAgMCBhdXRvO2ZpbGw6bm9uZTtzdHJva2U6Y3VycmVudENvbG9yO3N0cm9rZS13aWR0aDoxLjM1O3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZH0uY2hhdC1tZXNzYWdlLm11bHRpLWFnZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhdC1tZXNzYWdlLnVzZXIubXVsdGktYWdlbnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnQuc3ViYWdlbnR7cGFkZGluZy1sZWZ0OjEwcHg7bWFyZ2luLWxlZnQ6NnB4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCB2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYm9yZGVyLXN1YnRsZSkpO2JvcmRlci1yYWRpdXM6MCA0cHggNHB4IDA7d2lkdGg6Y2FsYygxMDAlIC0gNnB4KTttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNnB4KX0uY2hhdC1tZXNzYWdlLm11bHRpLWFnZW50IC5jaGF0LW1lc3NhZ2Utc2VnbWVudC5zdWJhZ2VudCAuY2hhdC1tZXNzYWdlLWNvbnRlbnR7b3BhY2l0eTouOTZ9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnQgLmNoYXQtbWVzc2FnZS1hdmF0YXJ7cGFkZGluZy1ib3R0b206NHB4fS5jaGF0LW1lc3NhZ2UtYXZhdGFyLnN1YmFnZW50IC5hdmF0YXItbmFtZXtjb2xvcjp2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSl9LnN1YmFnZW50LXJlcGx5e2JhY2tncm91bmQ6I2M1NjUzZDBmO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDYlLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMik7Ym9yZGVyOjFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMjAlLHRyYW5zcGFyZW50KTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMHB4IDE0cHg7bWFyZ2luOjRweCAwO2xpbmUtaGVpZ2h0OjEuNTU7Zm9udC1zaXplOi44NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbn0uc3ViYWdlbnQtcmVwbHk+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3ViYWdlbnQtcmVwbHk+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zdWJhZ2VudC1yZXBseS5lcnJvcntiYWNrZ3JvdW5kOiNlMjU3NGMxNDtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgOCUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlci1jb2xvcjojZTI1NzRjNTk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgMzUlLHRyYW5zcGFyZW50KX0uc3ViYWdlbnQtcmVwbHkucGVuZGluZ3tvcGFjaXR5Oi43O3BhZGRpbmc6MTRweCAxNnB4fS5zdWJhZ2VudC1yZXBseTpub3QoLmNvbGxhcHNpYmxlKXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NnB4fS5zdWJhZ2VudC1yZXBseSBwcmUsLnN1YmFnZW50LXJlcGx5IGNvZGV7Zm9udC1zaXplOi44MnJlbX0uc3ViYWdlbnQtcmVwbHkgcHJle2JhY2tncm91bmQ6IzAwMDAwMDBhO3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93LXg6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO21hcmdpbjo4cHggMDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MH0uc3ViYWdlbnQtcGFuZWx7bWFyZ2luOjhweCAwO2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDI1JSx0cmFuc3BhcmVudCk7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA1NSUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMyUsdmFyKC0tYmctc3VyZmFjZSkpO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDAwOH0uc3ViYWdlbnQtcGFuZWwtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjhweCAxMnB4O2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDEwJSx2YXIoLS1iZy1zdXJmYWNlKSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDE2JSx0cmFuc3BhcmVudCk7Zm9udC1zaXplOi43OHJlbTtsaW5lLWhlaWdodDoxLjM1fS5zdWJhZ2VudC1wYW5lbC1oZWFkZXI6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNTUlLHRyYW5zcGFyZW50KTtvdXRsaW5lLW9mZnNldDotMnB4fS5zdWJhZ2VudC1wYW5lbC1hdmF0YXJ7ZmxleDowIDAgYXV0bzt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2JvcmRlci1yYWRpdXM6NXB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAxOCUsdHJhbnNwYXJlbnQpO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LnN1YmFnZW50LXBhbmVsLWF2YXRhciBzdmcsLnN1YmFnZW50LXBhbmVsLWF2YXRhciBpbWd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTtkaXNwbGF5OmJsb2NrfS5zdWJhZ2VudC1wYW5lbC1hcnJvd3tmbGV4OjAgMCBhdXRvO2NvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA2NSUsdmFyKC0tdGV4dC1wcmltYXJ5KSk7b3BhY2l0eTouODtmb250LXdlaWdodDo2MDB9LnN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9ue2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnN1YmFnZW50LXBhbmVsLW5hbWV7Y29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDg4JSx2YXIoLS10ZXh0LXByaW1hcnkpKTtmb250LXdlaWdodDo2MDB9LnN1YmFnZW50LXBhbmVsLXRhZ3tkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW46MCA2cHg7cGFkZGluZzowIDZweDtmb250LXNpemU6LjYycmVtO2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzouMDRlbTtjb2xvcjp2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMTIlLHRyYW5zcGFyZW50KTtib3JkZXI6MXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAzMCUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6NHB4O3ZlcnRpY2FsLWFsaWduOjFweDtsaW5lLWhlaWdodDoxLjQ7d2hpdGUtc3BhY2U6bm93cmFwfS5zdWJhZ2VudC1wYW5lbC10YXNrLWRlc2N7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC13ZWlnaHQ6NDAwfS5zdWJhZ2VudC1wYW5lbC1jb3VudHtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjk5OXB4O2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDI0JSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgOSUsdmFyKC0tYmctc3VyZmFjZSkpO2NvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA3MiUsdmFyKC0tdGV4dC1wcmltYXJ5KSk7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjYwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LnN1YmFnZW50LXBhbmVsLXRvZ2dsZXtkaXNwbGF5Om5vbmU7ZmxleDowIDAgYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjNweCAxMHB4O2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MS4zO2NvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA3OCUsdmFyKC0tdGV4dC1wcmltYXJ5KSk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgOCUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDMwJSx0cmFuc3BhcmVudCk7Ym9yZGVyLXJhZGl1czo5OTlweDtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZSx0cmFuc2Zvcm0gLjFzIGVhc2V9LnN1YmFnZW50LXBhbmVsLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAxOCUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNDUlLHRyYW5zcGFyZW50KX0uc3ViYWdlbnQtcGFuZWwtdG9nZ2xlOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxcHgpfS5zdWJhZ2VudC1wYW5lbC10b2dnbGUtaWNvbnt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbywgY3ViaWMtYmV6aWVyKC4xNiwgMSwgLjMsIDEpKX0uc3ViYWdlbnQtcGFuZWxbZGF0YS1leHBhbmRlZD10cnVlXSAuc3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWljb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5zdWJhZ2VudC1wYW5lbC1ib2R5e3BhZGRpbmc6MTBweCAxNHB4O2hlaWdodDozMjBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO21pbi13aWR0aDowO21heC13aWR0aDoxMDAlO3Njcm9sbGJhci1ndXR0ZXI6c3RhYmxlO292ZXJzY3JvbGwtYmVoYXZpb3I6Y29udGFpbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uc3ViYWdlbnQtcGFuZWxbZGF0YS1leHBhbmRlZD1mYWxzZV0gLnN1YmFnZW50LXBhbmVsLWJvZHksLnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9dHJ1ZV0gLnN1YmFnZW50LXBhbmVsLWJvZHl7aGVpZ2h0OjMyMHB4fS5zdWJhZ2VudC1wYW5lbC1ib2R5PjpmaXJzdC1jaGlsZHttYXJnaW4tdG9wOjB9LnN1YmFnZW50LXBhbmVsLWJvZHk+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zdWJhZ2VudC1wYW5lbC1ib2R5IC50b29sLXVzZS1jYXJkLC5zdWJhZ2VudC1wYW5lbC1ib2R5IC50b29sLWdyb3VwLC5zdWJhZ2VudC1wYW5lbC1ib2R5IC5pbmxpbmUtdG9vbCwuc3ViYWdlbnQtcGFuZWwtYm9keSAuaW5saW5lLXRlcm1pbmFsLC5zdWJhZ2VudC1wYW5lbC1ib2R5IC5pbmxpbmUtZGlmZnttYXJnaW46NHB4IDB9LnN1YmFnZW50LXBhbmVsLWJvZHkgLm1hcmtkb3duLWNvbnRlbnR7Zm9udC1zaXplOi44NzVyZW19LnN1YmFnZW50LXBhbmVsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjdweDtoZWlnaHQ6N3B4fS5zdWJhZ2VudC1wYW5lbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAzMiUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6NHB4fS5zdWJhZ2VudC1wYW5lbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA1MCUsdHJhbnNwYXJlbnQpfS5zdWJhZ2VudC1wYW5lbC1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5zdWJhZ2VudC1wYW5lbC1mb290ZXJ7ZGlzcGxheTpub25lO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjZweCAxMnB4O2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDYlLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXItdG9wOjFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMTQlLHRyYW5zcGFyZW50KTtmb250LXNpemU6LjdyZW19LnN1YmFnZW50LXBhbmVsLWZvb3Rlci1oaW50e2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNztmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2xldHRlci1zcGFjaW5nOi4wNGVtO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uc3ViYWdlbnQtcmVwbHkuY29sbGFwc2libGV7cGFkZGluZzowO292ZXJmbG93OmhpZGRlbn0uc3ViYWdlbnQtcmVwbHkuZmluYWx7bWFyZ2luOjZweCAwIDA7cGFkZGluZzoxMHB4IDEycHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA2MCUsdHJhbnNwYXJlbnQpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDUlLHZhcigtLWJnLXN1cmZhY2UpKX0uc3ViYWdlbnQtcmVwbHkuZmluYWwuZXJyb3J7Ym9yZGVyLWxlZnQtY29sb3I6dmFyKC0tZGFuZ2VyLCAjZTI1NzRjKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgNSUsdmFyKC0tYmctc3VyZmFjZSkpfS5zdWJhZ2VudC1yZXBseS1tYXJrZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDttYXJnaW4tYm90dG9tOjRweDtmb250LXNpemU6LjY4cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDc4JSx2YXIoLS10ZXh0LXByaW1hcnkpKX0uc3ViYWdlbnQtcmVwbHktbWFya2VyLmVycm9ye2NvbG9yOnZhcigtLWRhbmdlciwgI2UyNTc0Yyl9LnN1YmFnZW50LXJlcGx5LW1hcmtlci5wZW5kaW5ne2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RleHQtdHJhbnNmb3JtOm5vbmU7bGV0dGVyLXNwYWNpbmc6MDtmb250LXdlaWdodDo1MDB9LnN1YmFnZW50LXJlcGx5LW1hcmtlci1pY29ue2ZvbnQtd2VpZ2h0OjcwMH0uc3ViYWdlbnQtcmVwbHkuZmluYWwgLnN1YmFnZW50LXJlcGx5LWNvbnRlbnQ+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3ViYWdlbnQtcmVwbHkuZmluYWwgLnN1YmFnZW50LXJlcGx5LWNvbnRlbnQ+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5lbXB0eS1tZXNzYWdlIC5lbXB0eS1tZXNzYWdlLWhpbnR7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7Zm9udC1zdHlsZTppdGFsaWM7Zm9udC1zaXplOi44MTI1cmVtO29wYWNpdHk6Ljd9LnVua25vd24tYmxvY2t7bWFyZ2luOjRweCAwO2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXRleHQtbXV0ZWQpIDYlLHRyYW5zcGFyZW50KTtmb250LXNpemU6Ljc1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS51bmtub3duLWJsb2NrOmhvdmVye2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tdGV4dC1tdXRlZCkgMTAlLHRyYW5zcGFyZW50KX0udW5rbm93bi1ibG9jay1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6NnB4IDEwcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS51bmtub3duLWJsb2NrLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCk7Y29sb3I6dmFyKC0tYmctc3VyZmFjZSk7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjYwMH0udW5rbm93bi1ibG9jay1sYWJlbHtmbGV4OjE7Zm9udC13ZWlnaHQ6NTAwfS51bmtub3duLWJsb2NrLXRvZ2dsZXtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtmb250LXNpemU6LjdyZW07dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udW5rbm93bi1ibG9jay5jb2xsYXBzZWQgLnVua25vd24tYmxvY2stdG9nZ2xle3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0udW5rbm93bi1ibG9jay1ib2R5e21hcmdpbjowO3BhZGRpbmc6OHB4IDEwcHggMTBweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7d2hpdGUtc3BhY2U6cHJlLXdyYXA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbDttYXgtaGVpZ2h0OjI0MHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztib3JkZXItdG9wOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym94LXNpemluZzpib3JkZXItYm94fS51bmtub3duLWJsb2NrLmNvbGxhcHNlZCAudW5rbm93bi1ibG9jay1ib2R5e2Rpc3BsYXk6bm9uZX0udG9vbC11c2UtY2FyZFtkYXRhLXRydW5jYXRlZD10cnVlXSAudG9vbC11c2UtbmFtZTphZnRlciwuaW5saW5lLXRvb2xbZGF0YS10cnVuY2F0ZWQ9dHJ1ZV0gLmlubGluZS10b29sLXRpdGxlOmFmdGVye2NvbnRlbnQ6Ilw1ZGYyXDYyMmFcNjVhZCI7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6NnB4O3BhZGRpbmc6MXB4IDZweDtmb250LXNpemU6LjZyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSwgI2ZmZik7YmFja2dyb3VuZDp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtib3JkZXItcmFkaXVzOjk5OXB4O2xldHRlci1zcGFjaW5nOi4wMmVtO3ZlcnRpY2FsLWFsaWduOjFweDtvcGFjaXR5Oi44NX0uY2hhdC1tZXNzYWdlLnRoaW5raW5ne2FsaWduLXNlbGY6ZmxleC1zdGFydDttYXgtd2lkdGg6MTAwJTttYXJnaW46NHB4IDB9LmNoYXQtbWVzc2FnZS5wcm9tcHR7YWxpZ24tc2VsZjpjZW50ZXI7bWF4LXdpZHRoOjEwMCU7bWFyZ2luOjRweCAwfS5wcm9tcHQtY2FyZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo0cHggOHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5wcm9tcHQtaWNvbntmb250LXNpemU6Ljg3NXJlbX0ucHJvbXB0LWNvbnRlbnR7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30ucHJvbXB0LXRleHR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtjb2xvcjojYzU2NTNkY2M7Zm9udC13ZWlnaHQ6NTAwfS50eXBpbmctaW5kaWNhdG9ye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtwYWRkaW5nOjZweCAwfS50eXBpbmctaW5kaWNhdG9yIHNwYW57ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6N3B4O2hlaWdodDo3cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtc29mdCk7YW5pbWF0aW9uOnR5cGluZ0JvdW5jZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS50eXBpbmctaW5kaWNhdG9yIHNwYW46bnRoLWNoaWxkKDIpe2FuaW1hdGlvbi1kZWxheTouMTVzfS50eXBpbmctaW5kaWNhdG9yIHNwYW46bnRoLWNoaWxkKDMpe2FuaW1hdGlvbi1kZWxheTouM3N9QGtleWZyYW1lcyB0eXBpbmdCb3VuY2V7MCUsNjAlLHRve29wYWNpdHk6LjM1O3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTMwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCl9fS50b29sLXVzZS1jYXJke21hcmdpbjo0cHggMDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtvdmVyZmxvdzpoaWRkZW47d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmJmNWUwLCNmZmY2ZWFiOCk7Ym94LXNoYWRvdzowIDFweCAycHggIzU5M2EyMDBhO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4yMnMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZSx0cmFuc2Zvcm0gLjIycyBlYXNlfS50b29sLXVzZS1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjojNGY3YTU4NGQ7Ym94LXNoYWRvdzowIDNweCAxMnB4ICM0ZjdhNTgxNH0udG9vbC11c2UtY2FyZC5sb2FkaW5ne2JvcmRlci1jb2xvcjojYTk2YTJmNGQ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY0ZTJlMCwjZmZmMWRhYjgpfS50b29sLXVzZS1jYXJkLnN1Y2Nlc3N7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg1Mn0udG9vbC11c2UtY2FyZC5lcnJvcntib3JkZXItY29sb3I6I2IyNGY0NTUyO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmNmMGVlZTAsI2ZjZWJlOWI4KX0udG9vbC11c2UtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo5cHggMTRweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouODEyNXJlbTt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlO21pbi1oZWlnaHQ6MzhweDtmbGV4LXdyYXA6bm93cmFwfS50b29sLXVzZS1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMGF9LnRvb2wtdXNlLWhlYWRlcjphY3RpdmV7YmFja2dyb3VuZDojYzU2NTNkMTJ9LnRvb2wtdXNlLWNhcmQubG9hZGluZyAudG9vbC11c2UtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2E5NmEyZjBmfS50b29sLXVzZS1jYXJkLnN1Y2Nlc3MgLnRvb2wtdXNlLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOiM0ZjdhNTgwZn0udG9vbC11c2UtY2FyZC5lcnJvciAudG9vbC11c2UtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTBmfS50b29sLXVzZS1pY29ue2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtd2VpZ2h0OjcwMDtmbGV4LXNocmluazowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOjIycHg7aGVpZ2h0OjIycHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKTtsZXR0ZXItc3BhY2luZzotLjAyZW19LnRvb2wtdXNlLWNhcmQubG9hZGluZyAudG9vbC11c2UtaWNvbntiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpfS50b29sLXVzZS1jYXJkLmVycm9yIC50b29sLXVzZS1pY29ue2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS50b29sLXVzZS1zcGlubmVye2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS13YXJuaW5nLW11dGVkKTtib3JkZXItdG9wLWNvbG9yOnZhcigtLXdhcm5pbmcpO2JvcmRlci1yYWRpdXM6NTAlO2FuaW1hdGlvbjp0b29sLXNwaW4gLjhzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHRvb2wtc3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS50b29sLXVzZS1uYW1le2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXg6MCAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnRvb2wtdXNlLWZpbGV7Zm9udC1zaXplOi43NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO21heC13aWR0aDozMjBweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6MH0udG9vbC11c2Utc3VtbWFyeXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmbGV4OjAgMSBhdXRvO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tbGVmdDoycHh9LnRvb2wtdXNlLXRvZ2dsZXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyB2YXIoLS1lYXNlLXNwcmluZyksY29sb3IgLjE4cyBlYXNlO2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtvcGFjaXR5Oi42fS50b29sLXVzZS1jYXJkOmhvdmVyIC50b29sLXVzZS10b2dnbGV7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO29wYWNpdHk6MX0udG9vbC11c2UtY2FyZC5jb2xsYXBzZWQgLnRvb2wtdXNlLXRvZ2dsZXt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9LnRvb2wtdXNlLWJvZHl7cGFkZGluZzoxMnB4IDE0cHg7YmFja2dyb3VuZDojZmZmZGY4YTY7Ym9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KTttYXgtaGVpZ2h0OjYwMHB4O292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjI0cyB2YXIoLS1lYXNlLW91dC1leHBvKSxwYWRkaW5nIC4yNHMgdmFyKC0tZWFzZS1vdXQtZXhwbyksb3BhY2l0eSAuMThzIGVhc2UsdHJhbnNmb3JtIC4yNHMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7b3BhY2l0eToxO3RyYW5zZm9ybS1vcmlnaW46dG9wfS50b29sLXVzZS1jYXJkLmNvbGxhcHNlZCAudG9vbC11c2UtYm9keXttYXgtaGVpZ2h0OjA7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVZKC45NSk7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZX0udG9vbC11c2UtY29udGVudHttYXJnaW46MDtmb250LXNpemU6Ljc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3doaXRlLXNwYWNlOnByZS13cmFwO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkO21heC1oZWlnaHQ6NDAwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2xpbmUtaGVpZ2h0OjEuNTV9LnRvb2wtdXNlLXJlc3VsdHttYXJnaW4tdG9wOjEwcHg7cGFkZGluZy10b3A6MTBweDtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjE0KX0udG9vbC11c2UtcmVzdWx0LWNvbnRlbnR7bWFyZ2luOjA7Zm9udC1zaXplOi43NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC1oZWlnaHQ6MzIwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2xpbmUtaGVpZ2h0OjEuNTU7YmFja2dyb3VuZDojN2Q1YjM5MDk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO3BhZGRpbmc6OHB4IDEwcHg7Ym94LXNpemluZzpib3JkZXItYm94fS50b29sLXVzZS1yZXN1bHQtZW1wdHl7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30udG9vbC11c2UtbWV0YXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7bWFyZ2luLWJvdHRvbTo4cHg7cGFkZGluZy1ib3R0b206OHB4O2JvcmRlci1ib3R0b206MXB4IGRhc2hlZCByZ2JhKDEyNSw5MSw1NywuMTQpfS50b29sLXVzZS1tZXRhLWxhYmVse2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDB9LnRvb2wtdXNlLWNhcmQuYXNrLXVzZXJ7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q0ZDtiYWNrZ3JvdW5kOiNjNTY1M2QwYX0udG9vbC11c2UtY2FyZC5hc2stdXNlciAudG9vbC11c2UtaGVhZGVye2JhY2tncm91bmQ6I2M1NjUzZDE0fS5hc2stdXNlci1ib2R5e3BhZGRpbmc6MTBweCAxMnB4fS5hc2stdXNlci1xdWVzdGlvbi1ncm91cHttYXJnaW4tYm90dG9tOjEwcHh9LmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hc2stdXNlci10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW4tYm90dG9tOjEwcHh9LmFzay11c2VyLW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4fS5hc2stdXNlci1vcHRpb257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxMnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt0ZXh0LWFsaWduOmxlZnR9LmFzay11c2VyLW9wdGlvbjpob3Zlcjpub3QoOmRpc2FibGVkKXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QwZn0uYXNrLXVzZXItb3B0aW9uOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWR7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojYzU2NTNkMmU7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDU5IGluc2V0fS50b29sLXVzZS1jYXJkLmFzay11c2VyLmFzay11c2VyLWFuc3dlcmVke2JvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXN1Y2Nlc3MsICM0Y2FmNTApfS5hc2stdXNlci1vcHRpb24uYXNrLXVzZXItb3B0aW9uLWNob3NlbntiYWNrZ3JvdW5kOiNjNTY1M2QyOTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uYXNrLXVzZXItaW5kaWNhdG9ye3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYXNrLXVzZXItb3B0aW9uc1tkYXRhLW11bHRpLXNlbGVjdD10cnVlXSAuYXNrLXVzZXItaW5kaWNhdG9ye2JvcmRlci1yYWRpdXM6M3B4fS5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWQgLmFzay11c2VyLWluZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LmFzay11c2VyLW9wdGlvbi5zZWxlY3RlZCAuYXNrLXVzZXItaW5kaWNhdG9yOmFmdGVye2NvbnRlbnQ6IiI7d2lkdGg6NnB4O2hlaWdodDo2cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlfS5hc2stdXNlci1vcHRpb25zW2RhdGEtbXVsdGktc2VsZWN0PXRydWVdIC5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWQgLmFzay11c2VyLWluZGljYXRvcjphZnRlcnt3aWR0aDo0cHg7aGVpZ2h0OjhweDtib3JkZXI6c29saWQgd2hpdGU7Ym9yZGVyLXdpZHRoOjAgMnB4IDJweCAwO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOm5vbmU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7bWFyZ2luLWJvdHRvbToycHh9LmFzay11c2VyLW9wdGlvbi1jb250ZW50e2ZsZXg6MTttaW4td2lkdGg6MH0uYXNrLXVzZXItb3B0aW9uLWxhYmVse2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uYXNrLXVzZXItb3B0aW9uLWRlc2N7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luLXRvcDoycHg7bGluZS1oZWlnaHQ6MS40fS5hc2stdXNlci1hY3Rpb25ze21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5hc2stdXNlci1zdWJtaXR7cGFkZGluZzo2cHggMTZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uYXNrLXVzZXItc3VibWl0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2ZpbHRlcjpicmlnaHRuZXNzKDEuMSl9LmFzay11c2VyLXN1Ym1pdDpkaXNhYmxlZHtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZH0uYXNrLXVzZXItc3VibWl0LmFzay11c2VyLXN1Ym1pdHRlZHtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwb2ludGVyLWV2ZW50czpub25lfS5hc2stdXNlci1hbnN3ZXJlZCAuYXNrLXVzZXItb3B0aW9ue2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNn0uYXNrLXVzZXItYW5zd2VyZWQgLmFzay11c2VyLW9wdGlvbi5hc2stdXNlci1vcHRpb24tY2hvc2Vue29wYWNpdHk6MTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyk7YmFja2dyb3VuZDojNGY3YTU4MGZ9LmFzay11c2VyLWFuc3dlcmVkIC5hc2stdXNlci1vcHRpb24uYXNrLXVzZXItb3B0aW9uLWNob3NlbiAuYXNrLXVzZXItaW5kaWNhdG9ye2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKTtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpfS5hc2stdXNlci1vcHRpb24tcmVhZG9ubHl7cG9pbnRlci1ldmVudHM6bm9uZX0udGhpbmtpbmctaW5saW5le2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTtnYXA6NXB4O21hcmdpbjoycHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOiM4YTZjYjIwYTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjojOGE2Y2IyOGM7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS50aGlua2luZy1pbmxpbmU6aG92ZXJ7YmFja2dyb3VuZDojOGE2Y2IyMTQ7Y29sb3I6IzhhNmNiMmNjfS50aGlua2luZy1pbmxpbmUuZXhwYW5kZWR7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3doaXRlLXNwYWNlOnByZS13cmFwO2xpbmUtaGVpZ2h0OjEuNjttYXgtaGVpZ2h0OjMwMHB4O292ZXJmbG93LXk6YXV0b30udGhpbmtpbmctaW5saW5lLWljb257ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjYyNXJlbX0udGhpbmtpbmctaW5saW5lLXByZXZpZXd7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udGhpbmtpbmctaW5saW5lLmV4cGFuZGVkIC50aGlua2luZy1pbmxpbmUtcHJldmlld3t3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0udGhpbmtpbmctaW5saW5lLWFjdGlvbntmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiM4YTZjYjI2NjtwYWRkaW5nOjAgNHB4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6IzhhNmNiMjE0O21hcmdpbi1sZWZ0OmF1dG99LnRoaW5raW5nLWlubGluZTpob3ZlciAudGhpbmtpbmctaW5saW5lLWFjdGlvbntjb2xvcjojOGE2Y2IyYjN9LnRoaW5raW5nLWlubGluZS50aGlua2luZy1wdHl7YmFja2dyb3VuZDojOGE2Y2IyMDh9LnRoaW5raW5nLXN0cmVhbWluZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NXB4O21hcmdpbjoycHggMDtwYWRkaW5nOjNweCA4cHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDojOGE2Y2IyMGE7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6IzhhNmNiMjhjfS50aGlua2luZy1zdHJlYW1pbmctaW5uZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjVweDt3aWR0aDoxMDAlfS50aGlua2luZy1zdHJlYW1pbmctaWNvbntmb250LXNpemU6LjYyNXJlbTtmbGV4LXNocmluazowO21hcmdpbi10b3A6MXB4fS50aGlua2luZy1zdHJlYW1pbmctdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojOGE2Y2IyY2M7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkO21heC1oZWlnaHQ6NC41ZW07b3ZlcmZsb3cteTphdXRvO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjpyZ2JhKDEzOCwxMDgsMTc4LC4zKSB0cmFuc3BhcmVudH0udGhpbmtpbmctc3RyZWFtaW5nLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjRweH0udGhpbmtpbmctc3RyZWFtaW5nLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzhhNmNiMjRkO2JvcmRlci1yYWRpdXM6MnB4fS50b29sLWdyb3Vwe21hcmdpbjo0cHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmYmY1ZDksI2ZmZjhlZWIzKTtib3gtc2hhZG93OjAgMXB4IDJweCAjNTkzYTIwMDg7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZSx0cmFuc2Zvcm0gLjIycyBlYXNlfS50b29sLWdyb3VwOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5MmU7Ym94LXNoYWRvdzowIDJweCA4cHggIzU5M2EyMDBmfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPXBlbmRpbmdde2JvcmRlci1jb2xvcjojYTk2YTJmMzg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY0ZTJkOSwjZmZmMWRhYjMpfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPWVycm9yXXtib3JkZXItY29sb3I6I2IyNGY0NTQ3O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmNmMGVlZDksI2ZjZWNlYWIzKX0udG9vbC1ncm91cC1zdW1tYXJ5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjlweDtwYWRkaW5nOjhweCAxMnB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZX0udG9vbC1ncm91cC1zdW1tYXJ5OmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBhfS50b29sLWdyb3VwLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxO2ZsZXgtc2hyaW5rOjA7bGV0dGVyLXNwYWNpbmc6MH0udG9vbC1ncm91cFtkYXRhLXN0YXR1cz1kb25lXSAudG9vbC1ncm91cC1zdGF0dXN7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0udG9vbC1ncm91cFtkYXRhLXN0YXR1cz1lcnJvcl0gLnRvb2wtZ3JvdXAtc3RhdHVze2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPXBlbmRpbmddIC50b29sLWdyb3VwLXN0YXR1c3tiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpO2FuaW1hdGlvbjp0b29sLWdyb3VwLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyB0b29sLWdyb3VwLXB1bHNlezAlLHRve29wYWNpdHk6MX01MCV7b3BhY2l0eTouNTV9fS50b29sLWdyb3VwLXRleHR7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzotLjAwNWVtfS50b29sLWdyb3VwLWNvdW50e2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtiYWNrZ3JvdW5kOiM3ZDViMzkxMjtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnRvb2wtZ3JvdXAtY2hldnJvbntmbGV4LXNocmluazowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNn0udG9vbC1ncm91cDpob3ZlciAudG9vbC1ncm91cC1jaGV2cm9ue29wYWNpdHk6MX0udG9vbC1ncm91cFtkYXRhLWV4cGFuZGVkPXRydWVdIC50b29sLWdyb3VwLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS50b29sLWdyb3VwLWJvZHl7ZGlzcGxheTpub25lO3BhZGRpbmc6NHB4IDhweCA4cHggMThweDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDYpO2JvcmRlci1sZWZ0OjJweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2JhY2tncm91bmQ6I2ZmZmRmODhjfS50b29sLWdyb3VwLWJvZHk+LmlubGluZS10b29se21hcmdpbjowfS50b29sLWdyb3VwLWJvZHk+LmlubGluZS10b29sKy5pbmxpbmUtdG9vbHtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjA2KX0udG9vbC1ncm91cFtkYXRhLWV4cGFuZGVkPXRydWVdIC50b29sLWdyb3VwLWJvZHl7ZGlzcGxheTpibG9jazthbmltYXRpb246dG9vbC1ncm91cC1yZXZlYWwgLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvKX1Aa2V5ZnJhbWVzIHRvb2wtZ3JvdXAtcmV2ZWFsezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5jaGF0LWZvbGQtYmFye2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21heC1oZWlnaHQ6MTI0cHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6OHB4IDRweCA3cHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y4ZjUsI2ZmZmFmNGViKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEwcHgpO2JveC1zaGFkb3c6MCA0cHggMTJweCAtOHB4ICM1OTNhMjAyZX0uY2hhdC1mb2xkLWJhci5oaWRkZW57ZGlzcGxheTpub25lfS5jaGF0LWZvbGQtcm93e3dpZHRoOm1pbigxMDAlLHZhcigtLWNoYXQtY2FyZC1tYXgtd2lkdGgsIDcyMHB4KSk7bWluLWhlaWdodDozMHB4O21hcmdpbjowIGF1dG87cGFkZGluZzo1cHggMTBweDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjU0cHggbWlubWF4KDAsMWZyKTthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQsIDhweCk7YmFja2dyb3VuZDojZmZmZmZmOWU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250OmluaGVyaXQ7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhdC1mb2xkLXJvdzpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JhY2tncm91bmQ6I2ZmZmZmZmQxfS5jaGF0LWZvbGQtcm93Lmhpc3Rvcnl7YmFja2dyb3VuZDojZmZmOGVlYjg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5jaGF0LWZvbGQtcm9sZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjcwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmNoYXQtZm9sZC10ZXh0e21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6Ljc4cmVtO2xpbmUtaGVpZ2h0OjEuMjV9LmNoYXQtY29udGFpbmVyLmF1dG8tZm9sZCAuY2hhdC1tZXNzYWdlc3tmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuY2hhdC1mb2xkLWJhcnttYXgtaGVpZ2h0OjExMnB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9LmNoYXQtZm9sZC1yb3d7bWluLWhlaWdodDoyOHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczo0NHB4IG1pbm1heCgwLDFmcik7cGFkZGluZzo0cHggOHB4fS5jaGF0LWZvbGQtcm9sZXtmb250LXNpemU6LjY4cmVtfS5jaGF0LWZvbGQtdGV4dHtmb250LXNpemU6Ljc0cmVtfX0uY2hhdC1mb2xkLWJhci1zcGFjZXJ7ZGlzcGxheTpub25lfS5jaGF0LWhpc3RvcnktaGlkZGVuLC5jaGF0LWF1dG8tZm9sZC1oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2hhdC1oaXN0b3J5LXN1bW1hcnl7d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21hcmdpbjoxMHB4IGF1dG87Ym94LXNpemluZzpib3JkZXItYm94fS5jaGF0LWhpc3Rvcnktc3VtbWFyeS1idG57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O3dpZHRoOjEwMCU7cGFkZGluZzo3cHggMTJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCwgOTk5cHgpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjVlNiwjZmZmN2VjYzcpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAwYTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQ6aW5oZXJpdDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMThzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2UsYmFja2dyb3VuZCAuMThzIGVhc2V9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0bjpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JveC1zaGFkb3c6MCAycHggOHB4ICM1OTNhMjAwZjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmFmM2YyLCNmZmY1ZThkOSl9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc1fS5jaGF0LWhpc3Rvcnktc3VtbWFyeS1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjFweDtmbGV4OjE7bWluLXdpZHRoOjB9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxle2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0uY2hhdC1oaXN0b3J5LXN1bW1hcnktbWV0YXtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbntmbGV4LXNocmluazowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6LjY7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuOmhvdmVyIC5jaGF0LWhpc3Rvcnktc3VtbWFyeS1jaGV2cm9ue29wYWNpdHk6MX0uY2hhdC1oaXN0b3J5LXN1bW1hcnlbZGF0YS1leHBhbmRlZD10cnVlXSAuY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmlubGluZS10b29se2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjFweCAwO3dpZHRoOjEwMCU7bWF4LXdpZHRoOnZhcigtLWNoYXQtY2FyZC1tYXgtd2lkdGgsIDcyMHB4KTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2V9LnRvb2wtZ3JvdXAtYm9keT4uaW5saW5lLXRvb2x7bWF4LXdpZHRoOjEwMCV9LmlubGluZS10b29sLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2xpbmUtaGVpZ2h0OjEuNDU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlfS5pbmxpbmUtdG9vbDpob3ZlciAuaW5saW5lLXRvb2wtcm93e2JhY2tncm91bmQ6I2M1NjUzZDBmO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmlubGluZS10b29sLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2xpbmUtaGVpZ2h0OjF9LmlubGluZS10b29sW2RhdGEtc3RhdHVzPXBlbmRpbmddIC5pbmxpbmUtdG9vbC1zdGF0dXN7Y29sb3I6dmFyKC0td2FybmluZyl9LmlubGluZS10b29sW2RhdGEtc3RhdHVzPWVycm9yXSAuaW5saW5lLXRvb2wtc3RhdHVzLC5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUgLmlubGluZS10b29sLXN0YXR1c3tjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbmxpbmUtdG9vbC1pY29ue2ZsZXgtc2hyaW5rOjA7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7b3BhY2l0eTouODV9LmlubGluZS10b29sOmhvdmVyIC5pbmxpbmUtdG9vbC1pY29ue2NvbG9yOnZhcigtLWFjY2VudCk7b3BhY2l0eToxfS5pbmxpbmUtdG9vbC10aXRsZXtmbGV4OjE7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtfS5pbmxpbmUtdG9vbDpob3ZlciAuaW5saW5lLXRvb2wtdGl0bGV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uaW5saW5lLXRvb2wtbWV0YXtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXgtd2lkdGg6MjIwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztsZXR0ZXItc3BhY2luZzotLjAxZW19LmlubGluZS10b29sLWltYWdle3BhZGRpbmc6MnB4IDEwcHggOHB4IDMycHg7Y3Vyc29yOmRlZmF1bHR9LmlubGluZS10b29sLWltYWdlLXRodW1ie2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOm1pbigxMDAlLDM2MHB4KTttYXgtaGVpZ2h0OjI0MHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE0KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDEyNSw5MSw1NywuMDUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNzUlLHJnYmEoMTI1LDkxLDU3LC4wNSkgNzUlKSAwIDAgLyAxNnB4IDE2cHgsbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMTI1LDkxLDU3LC4wNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA3NSUscmdiYSgxMjUsOTEsNTcsLjA1KSA3NSUpIDhweCA4cHggLyAxNnB4IDE2cHg7b2JqZWN0LWZpdDpjb250YWluO2N1cnNvcjp6b29tLWluO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX0uaW5saW5lLXRvb2wtaW1hZ2UtdGh1bWI6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDJweCAxMHB4ICMwMDAwMDAxZn0uaW5saW5lLXRvb2wtZXhwYW5kZWR7ZGlzcGxheTpub25lO3BhZGRpbmc6MCAxMHB4IDhweH0uaW5saW5lLXRvb2wtb3BlbiAuaW5saW5lLXRvb2wtZXhwYW5kZWR7ZGlzcGxheTpibG9jazthbmltYXRpb246dG9vbC1ncm91cC1yZXZlYWwgLjE2cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uaW5saW5lLXRvb2wtcmVzdWx0e2JhY2tncm91bmQ6IzdkNWIzOTBhO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA3KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7cGFkZGluZzoxMHB4IDEycHg7bWFyZ2luLXRvcDo2cHg7bWF4LWhlaWdodDozMjBweDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOnJnYmEoMTI1LDkxLDU3LC4yKSB0cmFuc3BhcmVudH0uaW5saW5lLXRvb2wtcmVzdWx0Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo2cHh9LmlubGluZS10b29sLXJlc3VsdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojN2Q1YjM5MzM7Ym9yZGVyLXJhZGl1czozcHh9LmlubGluZS10b29sLXJlc3VsdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5NTJ9LmlubGluZS10b29sLXJlc3VsdC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjU1O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO21hcmdpbjowfS5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmV7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkIHZhcigtLWRhbmdlcik7cGFkZGluZy1sZWZ0OjJweDttYXJnaW4tbGVmdDotMnB4fS5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUgLmlubGluZS10b29sLXJvd3tjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbmxpbmUtdG9vbC1yZXN1bHQuaW5saW5lLXRvb2wtZXJyb3J7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNzVyZW07YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1jb2xvcjojYjI0ZjQ1MmV9LmlubGluZS10b29sLWxvYWRpbmd7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS13YXJuaW5nKTtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjZweCAwO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9LmlubGluZS10b29sLWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXI6MS41cHggc29saWQgdmFyKC0td2FybmluZy1tdXRlZCk7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS13YXJuaW5nKTtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246dG9vbC1jb250ZW50LXNwaW4gLjdzIGxpbmVhciBpbmZpbml0ZX0uaW5saW5lLXRvb2wtZW1wdHl7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30udG9vbC1jb250ZW50LWxvYWRpbmd7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjhweCAwfS50b29sLWNvbnRlbnQtbG9hZGluZzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JvcmRlcjoycHggc29saWQgdmFyKC0tdGV4dC1tdXRlZCk7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246dG9vbC1jb250ZW50LXNwaW4gLjZzIGxpbmVhciBpbmZpbml0ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweH1Aa2V5ZnJhbWVzIHRvb2wtY29udGVudC1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnRvb2wtY29udGVudC1lcnJvcntmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLWVycm9yKTtwYWRkaW5nOjhweCAwO2N1cnNvcjpwb2ludGVyfS50b29sLWNvbnRlbnQtZXJyb3I6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uaW5saW5lLXRlcm1pbmFse21hcmdpbjo0cHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgxNSwxMiw5LC42KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7YmFja2dyb3VuZDojMWYxYjE3O2JveC1zaGFkb3c6MCAxcHggI2ZmZmZmZjBhIGluc2V0LDAgMnB4IDEycHggIzBmMGMwOTJlO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjIycyBlYXNlLHRyYW5zZm9ybSAuMjJzIGVhc2UsYm9yZGVyLWNvbG9yIC4yMnMgZWFzZX0uaW5saW5lLXRlcm1pbmFsOmhvdmVye2JveC1zaGFkb3c6MCAxcHggI2ZmZmZmZjBkIGluc2V0LDAgNHB4IDE4cHggIzBmMGMwOTNkO2JvcmRlci1jb2xvcjojZmZmZmZmMWF9LnRlcm0taGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmZmZjBhLCNmZmZmZmYwNCksIzAwMDAwMDJlO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA0KTtmb250LXNpemU6Ljc1cmVtO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LnRlcm0taGVhZGVyOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmZmZmMGYsI2ZmZmZmZjA2KSwjMDAwMDAwMmV9LnRlcm0tc3RhdHVzLWRvdHt3aWR0aDo5cHg7aGVpZ2h0OjlweDtib3JkZXItcmFkaXVzOjUwJTtmbGV4LXNocmluazowO2JveC1zaGFkb3c6MCAwIDAgMXB4ICMwMDAwMDA0MCBpbnNldH0udGVybS1zdGF0dXMtZG90LnRlcm0tc3VjY2Vzc3tiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMwJSwjYjZmMGM0LCM2ZWUwOWEsIzNhYTc2NSk7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCA2cHggIzZlZTA5YTU5fS50ZXJtLXN0YXR1cy1kb3QudGVybS1lcnJvcntiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMwJSwjZmZiNWI5LCNmMDcxNzgsI2I1M2I0MSk7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCA2cHggI2YwNzE3ODU5fS50ZXJtLXN0YXR1cy1kb3QudGVybS13YXJue2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNSUgMzAlLCNmZmQwN2EsI2YwYTUwMCwjYWQ3NDAwKTtib3gtc2hhZG93OjAgMCAwIDFweCAjMDAwMDAwNDAgaW5zZXQsMCAwIDZweCAjZjBhNTAwNTl9LnRlcm0tc3RhdHVzLWRvdC50ZXJtLXJ1bm5pbmd7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDM1JSAzMCUsI2QxZDVkYiwjOWNhM2FmLCM0YjU1NjMpO2FuaW1hdGlvbjp0ZXJtLXB1bHNlIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdGVybS1wdWxzZXswJSx0b3tvcGFjaXR5OjE7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCAjOWNhM2FmMDB9NTAle29wYWNpdHk6LjU1O2JveC1zaGFkb3c6MCAwIDAgMXB4ICMwMDAwMDA0MCBpbnNldCwwIDAgOHB4ICM5Y2EzYWY1OX19LnRlcm0tY21kLXByZXZpZXd7ZmxleDoxO21pbi13aWR0aDowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtjb2xvcjojZThkY2M4Yzc7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnRlcm0tY21kLXByZXZpZXcgLnRlcm0tcHJvbXB0e2NvbG9yOiM2ZWUwOWE7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1yaWdodDo2cHg7Zm9udC1zaXplOi43NXJlbTtvcGFjaXR5Oi45fS50ZXJtLXRvZ2dsZS1pY29ue2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiNmZmZmZmY1OTt0cmFuc2l0aW9uOmNvbG9yIC4xOHMgZWFzZTtmbGV4LXNocmluazowfS50ZXJtLWhlYWRlcjpob3ZlciAudGVybS10b2dnbGUtaWNvbntjb2xvcjojZmZmZmZmYTZ9LnRlcm0tYm9keXtwYWRkaW5nOjEycHggMTRweCAxNHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjMDAwMDAwMmUsIzAwMDAgMjRweCksIzFmMWIxN30udGVybS1jb21tYW5ke2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOiNmNGU5ZDQ7bGluZS1oZWlnaHQ6MS41NTttYXJnaW4tYm90dG9tOjZweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS50ZXJtLXByb21wdHtjb2xvcjojNmVlMDlhO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tcmlnaHQ6NnB4O3RleHQtc2hhZG93OjAgMCA2cHggcmdiYSgxMTAsMjI0LDE1NCwuMjUpfS50ZXJtLW91dHB1dHttYXJnaW4tdG9wOjhweDtwYWRkaW5nLXRvcDo4cHg7Ym9yZGVyLXRvcDoxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsLjA2KTttYXgtaGVpZ2h0OjM2MHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpIHRyYW5zcGFyZW50fS50ZXJtLW91dHB1dDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6NnB4fS50ZXJtLW91dHB1dDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojZmZmZmZmMjY7Ym9yZGVyLXJhZGl1czozcHh9LnRlcm0tb3V0cHV0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmY0MH0udGVybS1saW5le2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOiNkNGMyYTM7bGluZS1oZWlnaHQ6MS41NTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS50ZXJtLWV4aXR7bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmctdG9wOjhweDtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgyNTUsMjU1LDI1NSwuMDYpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42ODc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtsZXR0ZXItc3BhY2luZzouMDRlbX0udGVybS1leGl0LXN1Y2Nlc3N7Y29sb3I6IzZlZTA5YWJmfS50ZXJtLWV4aXQtZXJyb3J7Y29sb3I6I2YwNzE3OGM3fS5pbmxpbmUtZGlmZnttYXJnaW46NHB4IDA7d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjVlMCwjZmZmNmVhYjgpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAwYTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMjJzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2V9LmlubGluZS1kaWZmOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5Mzg7Ym94LXNoYWRvdzowIDNweCAxMnB4ICM1OTNhMjAwZn0uZGlmZi1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxNHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOi44MTI1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2U7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LmRpZmYtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBhfS5kaWZmLXRvZ2dsZXtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgdmFyKC0tZWFzZS1zcHJpbmcpLGNvbG9yIC4xOHMgZWFzZTtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OmF1dG87b3BhY2l0eTouNn0uaW5saW5lLWRpZmY6aG92ZXIgLmRpZmYtdG9nZ2xle2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtvcGFjaXR5OjF9LmlubGluZS1kaWZmLmNvbGxhcHNlZCAuZGlmZi10b2dnbGV7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5pbmxpbmUtZGlmZi5jb2xsYXBzZWQgLmRpZmYtYm9keXttYXgtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4yNXMgZWFzZTt2aXNpYmlsaXR5OmhpZGRlbjtwb2ludGVyLWV2ZW50czpub25lfS5kaWZmLWZpbGUtbmFtZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi44MTI1cmVtO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LmRpZmYtcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouNjg3NXJlbX0uZGlmZi1zdGF0dXN7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6M3B4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7bGV0dGVyLXNwYWNpbmc6LjAxZW19LmRpZmYtc3RhdHVzLmRpZmYtc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5kaWZmLXN0YXR1cy5kaWZmLWVycm9ye2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5kaWZmLXN0YXR1cy5kaWZmLXBlbmRpbmd7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLW11dGVkKTtjb2xvcjp2YXIoLS13YXJuaW5nKX0uZGlmZi1vcGVuLWZpbGV7ZmxleC1zaHJpbms6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xNik7YmFja2dyb3VuZDojZmZmZGY4Yjg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO3BhZGRpbmc6M3B4IDlweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjUwO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsY29sb3IgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2V9LmRpZmYtb3Blbi1maWxlOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDFhO2JvcmRlci1jb2xvcjojYzU2NTNkNDc7Y29sb3I6dmFyKC0tYWNjZW50KX0uZGlmZi1ib2R5e292ZXJmbG93OmhpZGRlbjtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2JhY2tncm91bmQ6I2ZmZmRmOGE2fS5kaWZmLWNvbHVtbnN7ZGlzcGxheTpmbGV4O2dhcDoxcHg7YmFja2dyb3VuZDojN2Q1YjM5MTQ7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LmRpZmYtY29se2ZsZXg6MSAxIDA7bWluLXdpZHRoOjA7bWF4LXdpZHRoOjEwMCU7YmFja2dyb3VuZDojZmZmZGY4ZDk7b3ZlcmZsb3c6aGlkZGVufS5kaWZmLWNvbC1oYWxme2ZsZXg6MX0uZGlmZi1jb2wtZnVsbHtmbGV4Om5vbmU7d2lkdGg6MTAwJX0uZGlmZi1jb2wtbGFiZWx7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo3MDA7cGFkZGluZzo0cHggMTJweDtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjA4ZW07YmFja2dyb3VuZDojN2Q1YjM5MGQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KX0uZGlmZi1saW5le3BhZGRpbmc6M3B4IDEycHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNTU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmRpZmYtYWRke2JhY2tncm91bmQ6IzRmN2E1ODE0O2NvbG9yOiMyYzU1MzU7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkIHJnYmEoNzksMTIyLDg4LC41KX0uZGlmZi1yZW1vdmV7YmFja2dyb3VuZDojYjI0ZjQ1MGY7Y29sb3I6IzdjMmEyMztib3JkZXItbGVmdDoycHggc29saWQgcmdiYSgxNzgsNzksNjksLjQ1KX0uZGlmZi1jb250ZXh0e2JhY2tncm91bmQ6I2ZmZmRmOGRiO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtib3JkZXItbGVmdDoycHggc29saWQgdHJhbnNwYXJlbnR9LmRpZmYtaHVua3tiYWNrZ3JvdW5kOiM0YTZmYTUxNztjb2xvcjp2YXIoLS1pbmZvKTtib3JkZXItbGVmdDoycHggc29saWQgcmdiYSg3NCwxMTEsMTY1LC4zNSk7Zm9udC13ZWlnaHQ6NjUwfS5kaWZmLWVtcHR5e3BhZGRpbmc6MTBweCAxMnB4O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7YmFja2dyb3VuZDojZmZmZGY4ZGJ9Lm1hcmtkb3duLWNvbnRlbnR7Y29sb3I6aW5oZXJpdDt3aGl0ZS1zcGFjZTpub3JtYWw7b3ZlcmZsb3cteDpoaWRkZW47bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtYmxvY2sgcHJle292ZXJmbG93LXg6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS5tYXJrZG93bi1jb250ZW50IHB7bWFyZ2luOjAgMCA4cHg7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgcDpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0ubWFya2Rvd24tY29udGVudCBzdHJvbmd7Zm9udC13ZWlnaHQ6NjAwfS5tYXJrZG93bi1jb250ZW50IGVte2ZvbnQtc3R5bGU6aXRhbGljfS5tYXJrZG93bi1jb250ZW50IHVsLC5tYXJrZG93bi1jb250ZW50IG9se21hcmdpbjo4cHggMDtwYWRkaW5nLWxlZnQ6MjBweH0ubWFya2Rvd24tY29udGVudCBsaXttYXJnaW46NHB4IDA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgaDEsLm1hcmtkb3duLWNvbnRlbnQgaDIsLm1hcmtkb3duLWNvbnRlbnQgaDN7bWFyZ2luOjE2cHggMCA4cHg7Zm9udC13ZWlnaHQ6NjAwO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkfS5tYXJrZG93bi1jb250ZW50IGgxe2ZvbnQtc2l6ZToxLjI1cmVtfS5tYXJrZG93bi1jb250ZW50IGgye2ZvbnQtc2l6ZToxLjFyZW19Lm1hcmtkb3duLWNvbnRlbnQgaDN7Zm9udC1zaXplOjFyZW19Lm1hcmtkb3duLWNvbnRlbnQgYmxvY2txdW90ZXttYXJnaW46OHB4IDA7cGFkZGluZzo4cHggMTJweDtib3JkZXItbGVmdDozcHggc29saWQgdmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QwZjtib3JkZXItcmFkaXVzOjAgdmFyKC0tcmFkaXVzLXNtKSB2YXIoLS1yYWRpdXMtc20pIDA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgYXtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsfS5tYXJrZG93bi1jb250ZW50IGltZ3ttYXgtd2lkdGg6MTAwJTtoZWlnaHQ6YXV0b30ubWFya2Rvd24tY29udGVudCBjb2RlOm5vdCguY29kZS1ibG9jayk6bm90KC5jb2RlLWlubGluZSl7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07YmFja2dyb3VuZDojOTY3NjU1MWY7cGFkZGluZzoycHggNXB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay1hbGx9Lm1hcmtkb3duLWNvbnRlbnQgY29kZS5jb2RlLWlubGluZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtiYWNrZ3JvdW5kOiM5Njc2NTUxZjtwYWRkaW5nOjJweCA1cHg7Ym9yZGVyLXJhZGl1czo0cHg7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbH0ubWFya2Rvd24tY29udGVudCAubWQtdGFibGUtd3JhcHttYXJnaW46MTJweCAwO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6YXV0bztib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNofS5tYXJrZG93bi1jb250ZW50IC5tZC10YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJTt0YWJsZS1sYXlvdXQ6Zml4ZWQ7Zm9udC1zaXplOi44MTI1cmVtO3doaXRlLXNwYWNlOm5vcm1hbH0ubWFya2Rvd24tY29udGVudCAubWQtdGFibGUgdGgsLm1hcmtkb3duLWNvbnRlbnQgLm1kLXRhYmxlIHRke2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjZweCAxMHB4O3RleHQtYWxpZ246bGVmdDt2ZXJ0aWNhbC1hbGlnbjp0b3A7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLXdvcmR9Lm1hcmtkb3duLWNvbnRlbnQgLm1kLXRhYmxlIHRoe2JhY2tncm91bmQ6Izk2NzY1NTFhO2ZvbnQtd2VpZ2h0OjYwMH0ubWFya2Rvd24tY29udGVudCAubWQtdGFibGUgdGJvZHkgdHI6bnRoLWNoaWxkKDJuKXtiYWNrZ3JvdW5kOiM5Njc2NTUwYX0ubWFya2Rvd24tY29udGVudCAuY29kZS1ibG9ja3ttYXJnaW46MTJweCAwO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDojMWYxYjE3O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjIsOTEsNjQsLjM1KTtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMjZ9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtYmxvY2staGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzo2cHggMTJweDtiYWNrZ3JvdW5kOiM3YTViNDAzMztib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyMiw5MSw2NCwuMik7Z2FwOjhweH0ubWFya2Rvd24tY29udGVudCAuY29kZS1sYW5ne2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43cmVtO2NvbG9yOiM4YzczNWY7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubWFya2Rvd24tY29udGVudCAuY29kZS1jb3B5e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi43cmVtO3BhZGRpbmc6NHB4IDEwcHg7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4xNSk7YmFja2dyb3VuZDojZmZmZmZmMWE7Y29sb3I6I2Q5YzRiMDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4LXNocmluazowfS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWNvcHk6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmMmU7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6I2ZmZmZmZjQwfS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWNvcHkuY29waWVke2NvbG9yOiM3ZmEzNmY7Ym9yZGVyLWNvbG9yOiM3ZmEzNmY4MDtiYWNrZ3JvdW5kOiM3ZmEzNmYyNn0ubWFya2Rvd24tY29udGVudCBwcmV7bWFyZ2luOjA7cGFkZGluZzoxMnB4O292ZXJmbG93LXg6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS5tYXJrZG93bi1jb250ZW50IHByZSBjb2Rle2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojZjVlYWRjO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cGFkZGluZzowO21heC13aWR0aDoxMDAlO2Rpc3BsYXk6YmxvY2t9LmlucHV0LXBhbmVse3BhZGRpbmc6NnB4IDEwcHg7cGFkZGluZy1ib3R0b206Y2FsYyg2cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpKTtmbGV4LXNocmluazowO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjY7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWluO3RvdWNoLWFjdGlvbjpwYW4teTtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsdmlzaWJpbGl0eSAwc30uaW5wdXQtY29tcG9zZXJ7YmFja2dyb3VuZDojZmZmZmZmZTA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czoyMnB4O3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtvdmVyZmxvdzpoaWRkZW47cG9zaXRpb246cmVsYXRpdmU7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWlufS5pbnB1dC1jb21wb3Nlcjpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAycHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDAgMTZweCAjYzU2NTNkMTQ7YmFja2dyb3VuZDojZmZmZmZmZmF9LmNvbXBvc2VyLXN0YXR1cy1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwO3BhZGRpbmc6MCAxMHB4O21pbi1oZWlnaHQ6MDt0cmFuc2l0aW9uOnBhZGRpbmcgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY29tcG9zZXItc3RhdHVzLXJvdz4qe2ZsZXgtc2hyaW5rOjB9LmNvbXBvc2VyLXN0YXR1cy1yb3c6aGFzKD4qOm5vdCguaGlkZGVuKSl7cGFkZGluZy10b3A6NnB4O3BhZGRpbmctYm90dG9tOjB9QHN1cHBvcnRzIG5vdCBzZWxlY3Rvcig6aGFzKCopKXsuY29tcG9zZXItc3RhdHVzLXJvdzpub3QoOmVtcHR5KXtwYWRkaW5nLXRvcDo0cHh9fS5jb21wb3Nlci1tYWluLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzo0cHggNnB4O21pbi1oZWlnaHQ6NDRweH0uY29tcG9zZXItYWN0aW9ucy1sZWZ0LC5jb21wb3Nlci1hY3Rpb25zLXJpZ2h0e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjJweDtmbGV4LXNocmluazowfS5jb21wb3Nlci1pbnB1dC13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uY29tcG9zZXItaW5saW5lLWNvbmZpZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXg6MCAxIGF1dG87bWluLXdpZHRoOjA7Z2FwOjRweH0uY29tcG9zZXItY29uZmlnLWNvbnRyb2xze2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7bWluLXdpZHRoOjB9LmNvbXBvc2VyLWNvbmZpZy1jaGlwLC5jb21wb3Nlci1jb25maWctcGFydHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo0cHg7bWluLWhlaWdodDoyOHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dXNlci1zZWxlY3Q6bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXB9LmNvbXBvc2VyLWNvbmZpZy1jaGlwe21heC13aWR0aDo3NnB4O3BhZGRpbmc6MCA4cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6I2Y2ZjFlOGI4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNvbXBvc2VyLWNvbmZpZy1jaGlwLW1vZGV7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QxYTtib3JkZXItY29sb3I6I2M1NjUzZDM4fS5jb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmd7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpzdHJldGNoO2ZsZXg6MCAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4xOCk7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOiNmZmY4ZjJkMTtjb2xvcjp2YXIoLS1hY2NlbnQpO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jb21wb3Nlci1jb25maWctY2hpcDpob3ZlciwuY29tcG9zZXItY29uZmlnLWNoaXA6Zm9jdXMtd2l0aGluLC5jb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmc6aG92ZXIsLmNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZzpmb2N1cy13aXRoaW57Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojZmZmOGYyZjV9LmNvbXBvc2VyLWNvbmZpZy1wYXJ0e21pbi13aWR0aDowO3BhZGRpbmc6MCA3cHg7Y3Vyc29yOnBvaW50ZXJ9LmNvbXBvc2VyLWNvbmZpZy1tb2RlbHttYXgtd2lkdGg6OTJweH0uY29tcG9zZXItY29uZmlnLXRoaW5raW5ne21pbi13aWR0aDoxMzJweDtjb2xvcjojYTk2NTJkO2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6YXV0byAxZnI7Z3JpZC10ZW1wbGF0ZS1yb3dzOmF1dG8gYXV0bztjb2x1bW4tZ2FwOjVweDtwYWRkaW5nLXRvcDozcHg7cGFkZGluZy1ib3R0b206M3B4fS5jb21wb3Nlci1jb25maWctdGhpbmtpbmdbZGF0YS10aGlua2luZz1vZmZde2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5jb21wb3Nlci1jb25maWctdGhpbmtpbmdbZGF0YS10aGlua2luZz1zdGFuZGFyZF17Y29sb3I6IzVkOGE2Nn0uY29tcG9zZXItY29uZmlnLXRoaW5raW5nW2RhdGEtdGhpbmtpbmc9ZGVlcF17Y29sb3I6I2IxNmEyZn0uY29tcG9zZXItY29uZmlnLXRoaW5raW5nW2RhdGEtdGhpbmtpbmc9bWF4XXtjb2xvcjojYzU1MjQ4fS5jb21wb3Nlci1jb25maWctcGFydCsuY29tcG9zZXItY29uZmlnLXBhcnR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTQpfS5jb21wb3Nlci1jb25maWctaWNvbntmbGV4OjAgMCBhdXRvO3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHh9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZyAudGhpbmtpbmctc2xpZGVyLXJhaWx7Z3JpZC1jb2x1bW46MSAvIC0xO3dpZHRoOjEwMCV9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZyAudGhpbmtpbmctc2xpZGVyLXZhbHVle3RleHQtYWxpZ246cmlnaHQ7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKX0uY29tcG9zZXItY29uZmlnLWxhYmVse21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjF9LmNvbXBvc2VyLXRleHQtcGlsbHtwb3NpdGlvbjpyZWxhdGl2ZTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouN3JlbTtmb250LXdlaWdodDo1MDA7bGluZS1oZWlnaHQ6MTtwYWRkaW5nOjJweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaXppbmc6Ym9yZGVyLWJveDt1c2VyLXNlbGVjdDpub25lO21heC13aWR0aDoxMTBweDtsZXR0ZXItc3BhY2luZzouMDFlbX0uY29tcG9zZXItdGV4dC1waWxsOmhvdmVyLC5jb21wb3Nlci10ZXh0LXBpbGw6Zm9jdXMtd2l0aGlue2NvbG9yOnZhcigtLWFjY2VudCl9LmNvbXBvc2VyLXRleHQtbGFiZWx7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bWF4LXdpZHRoOjEwMCV9LmNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dHJhbnNwYXJlbnQ7Zm9udDppbmhlcml0O29wYWNpdHk6MDtjdXJzb3I6cG9pbnRlcjthcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmV9LmNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdDpmb2N1c3tvdXRsaW5lOm5vbmV9LnRoaW5raW5nLXNsaWRlci1zaGVsbHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOmF1dG8gMWZyO2dyaWQtdGVtcGxhdGUtcm93czphdXRvIGF1dG87Y29sdW1uLWdhcDo4cHg7cm93LWdhcDoycHg7bWluLXdpZHRoOjE1MHB4O21heC13aWR0aDoyMjBweDtjdXJzb3I6ZGVmYXVsdH0udGhpbmtpbmctc2xpZGVyLXNoZWxsIC50aGlua2luZy1zbGlkZXItdmFsdWV7dGV4dC1hbGlnbjpyaWdodDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30udGhpbmtpbmctc2xpZGVyLXJhaWx7LS10aGlua2luZy1wcm9ncmVzczogMCU7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jazttaW4td2lkdGg6ODhweDtoZWlnaHQ6MzJweH0udGhpbmtpbmctc2xpZGVyLW5vZGVze3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6MTtsZWZ0OjhweDtyaWdodDo4cHg7dG9wOjUwJTtoZWlnaHQ6MDtwb2ludGVyLWV2ZW50czpub25lfS50aGlua2luZy1zbGlkZXItbm9kZXtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UsICNmZmZhZjUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tdGV4dC10ZXJ0aWFyeSwgI2I1YTg5YSk7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC01MCUpfS50aGlua2luZy1kaXNjcmV0ZS1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjI7aW5zZXQ6MDt3aWR0aDoxMDAlO2hlaWdodDozMnB4O21hcmdpbjowO3BhZGRpbmc6MDthcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjdXJzb3I6Z3JhYjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufS50aGlua2luZy1kaXNjcmV0ZS1yYW5nZTphY3RpdmV7Y3Vyc29yOmdyYWJiaW5nfS50aGlua2luZy1kaXNjcmV0ZS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItcnVubmFibGUtdHJhY2t7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHZhcigtLWFjY2VudCkgMCB2YXIoLS10aGlua2luZy1wcm9ncmVzcyksdmFyKC0tYm9yZGVyLXN0cm9uZykgdmFyKC0tdGhpbmtpbmctcHJvZ3Jlc3MpIDEwMCUpfS50aGlua2luZy1kaXNjcmV0ZS1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDttYXJnaW4tdG9wOi02cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1zdXJmYWNlLCAjZmZmYWY1KTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDUyO2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTZzIGN1YmljLWJlemllciguMiwuOCwuMiwxKX0udGhpbmtpbmctZGlzY3JldGUtcmFuZ2U6Oi1tb3otcmFuZ2UtdHJhY2t7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLXN0cm9uZyl9LnRoaW5raW5nLWRpc2NyZXRlLXJhbmdlOjotbW96LXJhbmdlLXByb2dyZXNze2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LnRoaW5raW5nLWRpc2NyZXRlLXJhbmdlOjotbW96LXJhbmdlLXRodW1ie3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1zdXJmYWNlLCAjZmZmYWY1KTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDUyfS50aGlua2luZy1kaXNjcmV0ZS1yYW5nZTphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjA4KX0udGhpbmtpbmctZGlzY3JldGUtcmFuZ2U6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjU1KTtvdXRsaW5lLW9mZnNldDoxcHg7Ym9yZGVyLXJhZGl1czo4cHh9LnRoaW5raW5nLWRpc2NyZXRlLXJhbmdlOmZvY3VzLXZpc2libGU6Oi13ZWJraXQtc2xpZGVyLXRodW1ie2JveC1zaGFkb3c6MCAwIDAgM3B4ICNjNTY1M2Q0N30uY29tcG9zZXItdGV4dC1zZXB7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSwgI2I1YTg5YSk7Zm9udC1zaXplOi43cmVtO2xpbmUtaGVpZ2h0OjE7dXNlci1zZWxlY3Q6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6LjY1fS5wZXJtaXNzaW9uLWFjdGlvbnN7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDthbmltYXRpb246cGVybWlzc2lvbi1mYWRlLWluIC4ycyBlYXNlLW91dH0ucGVybWlzc2lvbi1hY3Rpb25zLmhpZGRlbntkaXNwbGF5Om5vbmV9LnBlcm1pc3Npb24tYWN0aW9ucy1sYWJlbHtmb250LXNpemU6LjdyZW07Y29sb3I6I2QxOGIwMDttYXgtd2lkdGg6MTgwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5idG4tcGVybWlzc2lvbntmb250LXNpemU6LjY1cmVtO3BhZGRpbmc6MXB4IDhweDtib3JkZXItcmFkaXVzOjRweDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO2xpbmUtaGVpZ2h0OjEuNDtmb250LXdlaWdodDo1MDA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXN9LmJ0bi1wZXJtaXNzaW9uOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5idG4tcGVybWlzc2lvbi1hcHByb3Zle2JhY2tncm91bmQ6I2YwYTUwMDI2O2NvbG9yOiNkMThiMDA7Ym9yZGVyLWNvbG9yOiNmMGE1MDA0ZH0uYnRuLXBlcm1pc3Npb24tYXBwcm92ZTpob3Zlcjpub3QoOmRpc2FibGVkKXtiYWNrZ3JvdW5kOiNmMGE1MDA0MH0uYnRuLXBlcm1pc3Npb24tZGVueXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpfS5idG4tcGVybWlzc2lvbi1kZW55OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2JhY2tncm91bmQ6I2RjMzIzMjE0O2NvbG9yOnZhcigtLWRhbmdlcik7Ym9yZGVyLWNvbG9yOiNkYzMyMzI0ZH1Aa2V5ZnJhbWVzIHBlcm1pc3Npb24tZmFkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX19LmF1dG8tYXBwcm92ZS1pbmRpY2F0b3IuYWN0aXZle2NvbG9yOiMyMmM1NWU7Ym9yZGVyLWNvbG9yOiMyMmM1NWU4MDtiYWNrZ3JvdW5kOiMyMmM1NWUxZn0uYXV0by1hcHByb3ZlLWluZGljYXRvci5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDojMjJjNTVlMzM7Ym9yZGVyLWNvbG9yOiMyMmM1NWV9LmFwcHJvdmFsLXN0YXRze2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlfS5hcHByb3ZhbC1zdGF0cy5oaWRkZW57ZGlzcGxheTpub25lfS5hcHByb3ZhbC1zdGF0cy1kaXZpZGVye3dpZHRoOjA7aGVpZ2h0OjE2cHg7bWFyZ2luOjAgMXB4fS5hcHByb3ZhbC1zdGF0cy1iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6M3B4O21pbi1oZWlnaHQ6MjJweDtwYWRkaW5nOjFweCA4cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6IzIyYzU1ZTFhO2NvbG9yOiMyMmM1NWU7Zm9udC1zaXplOi42MjVyZW07Zm9udC13ZWlnaHQ6NjAwO2N1cnNvcjpkZWZhdWx0O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzO2xpbmUtaGVpZ2h0OjE7Ym94LXNpemluZzpib3JkZXItYm94fS5hcHByb3ZhbC1zdGF0cy1iYWRnZTpob3ZlcntiYWNrZ3JvdW5kOiMyMmM1NWUyZX0uYXBwcm92YWwtc3RhdHMtaWNvbntzdHJva2U6IzIyYzU1ZTtmbGV4LXNocmluazowfS5hcHByb3ZhbC1zdGF0cy10b3RhbHtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9QGtleWZyYW1lcyBhcHByb3ZhbC1wdWxzZXswJXt0cmFuc2Zvcm06c2NhbGUoMSl9NTAle3RyYW5zZm9ybTpzY2FsZSgxLjE1KX10b3t0cmFuc2Zvcm06c2NhbGUoMSl9fS5hcHByb3ZhbC1zdGF0cy1wdWxzZXthbmltYXRpb246YXBwcm92YWwtcHVsc2UgLjNzIGVhc2Utb3V0fS5hcHByb3ZhbC1zdGF0cy1wb3B1cHtkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOmNhbGMoMTAwJSArIDZweCk7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkLCAjMWUxZTJlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzo4cHggMTBweDttaW4td2lkdGg6MTQwcHg7Ym94LXNoYWRvdzowIDRweCAxNnB4ICMwMDAwMDA0MDt6LWluZGV4OjEwMDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjRweH0uYXBwcm92YWwtc3RhdHM6aG92ZXIgLmFwcHJvdmFsLXN0YXRzLXBvcHVwe2Rpc3BsYXk6ZmxleH0uYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGV7Zm9udC1zaXplOi42NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo1MDA7bWFyZ2luLWJvdHRvbToycHg7d2hpdGUtc3BhY2U6bm93cmFwfS5hcHByb3ZhbC1zdGF0cy1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSwgI2NjYyk7d2hpdGUtc3BhY2U6bm93cmFwfS5hcHByb3ZhbC1zdGF0cy1yb3ctaWNvbnt3aWR0aDoxNnB4O3RleHQtYWxpZ246Y2VudGVyO2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi43MnJlbX0uYXBwcm92YWwtc3RhdHMtcm93LWxhYmVse2ZsZXg6MX0uYXBwcm92YWwtc3RhdHMtcm93LWNvdW50e2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnksICNlZWUpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtczttaW4td2lkdGg6MjBweDt0ZXh0LWFsaWduOnJpZ2h0fS5hcHByb3ZhbC1zdGF0cy1yb3ctdG90YWx7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nLXRvcDo0cHg7bWFyZ2luLXRvcDoycHg7Y29sb3I6IzIyYzU1ZX0uYXBwcm92YWwtc3RhdHMtcm93LXRvdGFsIC5hcHByb3ZhbC1zdGF0cy1yb3ctY291bnR7Y29sb3I6IzIyYzU1ZX0ucXVldWUtYmFyey0tcWItYmc6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjE0KTstLXFiLWJnLXN0cm9uZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMjIpOy0tcWItYm9yZGVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yNCk7LS1xYi10ZXh0OiB2YXIoLS10ZXh0LXByaW1hcnksICMxZjFkMWEpOy0tcWItdGV4dC1tdXRlZDogdmFyKC0tdGV4dC1tdXRlZCwgIzZiNjU1Yyk7LS1xYi1zaGFkb3c6IDAgNHB4IDE4cHggcmdiYSgwLCAwLCAwLCAuMSksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIC4wNik7LS1xYi1zaGFkb3ctaG92ZXI6IDAgOHB4IDI0cHggcmdiYSgwLCAwLCAwLCAuMTQpLCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAuMDYpfVtkYXRhLXRoZW1lPWRhcmtdIC5xdWV1ZS1iYXIsLnRoZW1lLWRhcmsgLnF1ZXVlLWJhcnstLXFiLWJnOiByZ2JhKDQwLCAzOCwgMzQsIC42KTstLXFiLWJnLXN0cm9uZzogcmdiYSg2MCwgNTYsIDUwLCAuNzQpOy0tcWItYm9yZGVyOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4xMil9LmlucHV0LXBhbmVsPi5xdWV1ZS1iYXItaG9zdHtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxMHB4O2xlZnQ6YXV0bztib3R0b206Y2FsYygxMDAlICsgNnB4KTt6LWluZGV4OjMwO21heC13aWR0aDptaW4oNDQwcHgsY2FsYygxMDAlIC0gMjBweCkpO3BvaW50ZXItZXZlbnRzOm5vbmV9LnF1ZXVlLWJhci1ob3N0W2hpZGRlbl17ZGlzcGxheTpub25lfS5xdWV1ZS1iYXJ7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDo1cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtib3gtc2hhZG93Om5vbmU7cGFkZGluZzowO21hcmdpbjowfUBrZXlmcmFtZXMgcXVldWVCYXJJdGVtRW50ZXJ7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCkgc2NhbGUoLjk2KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fS5xdWV1ZS1iYXItaGVhZHtwb2ludGVyLWV2ZW50czphdXRvO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzozcHggNnB4IDNweCAxMHB4O2JhY2tncm91bmQ6dmFyKC0tcWItYmcpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1xYi1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTNweDtib3gtc2hhZG93OnZhcigtLXFiLXNoYWRvdyksaW5zZXQgMCAxcHggI2ZmZjM7YW5pbWF0aW9uOnF1ZXVlQmFySXRlbUVudGVyIC4yMnMgY3ViaWMtYmV6aWVyKC4yLC44LC4yLDEpIGJvdGh9LnF1ZXVlLWJhci1oZWFkLWNvdW50e2ZvbnQtc2l6ZToxMC41cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXFiLXRleHQtbXV0ZWQpO2xldHRlci1zcGFjaW5nOi4wMmVtO3VzZXItc2VsZWN0Om5vbmU7d2hpdGUtc3BhY2U6bm93cmFwfS5xdWV1ZS1iYXItY2xlYXItYWxse2ZvbnQtc2l6ZToxMXB4O3BhZGRpbmc6MnB4IDlweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMik7Y29sb3I6dmFyKC0tcWItdGV4dC1tdXRlZCk7Ym9yZGVyLXJhZGl1czoxMHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2UsY29sb3IgLjE1cyBlYXNlLGJvcmRlci1jb2xvciAuMTVzIGVhc2V9LnF1ZXVlLWJhci1jbGVhci1hbGw6aG92ZXJ7YmFja2dyb3VuZDojZGM1MDQ2MWY7Ym9yZGVyLWNvbG9yOiNkYzUwNDY1OTtjb2xvcjojZDg0ODNjfS5xdWV1ZS1iYXItbGlzdHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjVweDt3aWR0aDoxMDAlfS5xdWV1ZS1iYXItaXRlbXtwb2ludGVyLWV2ZW50czphdXRvO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo0cHggNnB4IDRweCA1cHg7bWF4LXdpZHRoOjEwMCU7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6dmFyKC0tcWItYmcpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1xYi1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTVweDtib3gtc2hhZG93OnZhcigtLXFiLXNoYWRvdyksaW5zZXQgMCAxcHggI2ZmZjM7Zm9udC1zaXplOjEycHg7bGluZS1oZWlnaHQ6MS4zNTtjb2xvcjp2YXIoLS1xYi10ZXh0KTtjdXJzb3I6Z3JhYjt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgZWFzZSxib3gtc2hhZG93IC4xOHMgZWFzZTthbmltYXRpb246cXVldWVCYXJJdGVtRW50ZXIgLjIycyBjdWJpYy1iZXppZXIoLjIsLjgsLjIsMSkgYm90aH0ucXVldWUtYmFyLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1xYi1iZy1zdHJvbmcpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6dmFyKC0tcWItc2hhZG93LWhvdmVyKSxpbnNldCAwIDFweCAjZmZmZmZmNDB9LnF1ZXVlLWJhci1pdGVtLmRyYWdnaW5ne2N1cnNvcjpncmFiYmluZzt0cmFuc2Zvcm06c2NhbGUoMS4wNCk7Ym94LXNoYWRvdzowIDhweCAyMnB4ICMwMDAzO3otaW5kZXg6NTA7b3BhY2l0eTouOTR9LnF1ZXVlLWJhci1pdGVtLXNsaWRpbmd7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE2cyBjdWJpYy1iZXppZXIoLjIsLjcsLjIsMSl9LnF1ZXVlLWJhci1pdGVtLWluZGV4e2ZsZXg6MCAwIGF1dG87d2lkdGg6MThweDtoZWlnaHQ6MThweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQsICNjNTY1M2QpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSwgI2ZmZik7Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOjEwcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjF9LnF1ZXVlLWJhci1pdGVtLXRleHR7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6dmFyKC0tcWItdGV4dCk7Zm9udC13ZWlnaHQ6NTAwfS5xdWV1ZS1iYXItaXRlbS1wcm9tb3RlLC5xdWV1ZS1iYXItaXRlbS1kZWxldGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoyNHB4O2hlaWdodDoyNHB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6I2ZmZmZmZjI5O2NvbG9yOnZhcigtLXFiLXRleHQpO2JvcmRlci1yYWRpdXM6NTAlO2N1cnNvcjpwb2ludGVyO2ZsZXg6MCAwIGF1dG87dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSx0cmFuc2Zvcm0gLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZSxmaWx0ZXIgLjE1cyBlYXNlO3BhZGRpbmc6MH0ucXVldWUtYmFyLWl0ZW0tcHJvbW90ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCwgI2M1NjUzZCk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlLCAjZmZmKX0ucXVldWUtYmFyLWl0ZW0tcHJvbW90ZTpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygxLjA4KTt0cmFuc2Zvcm06c2NhbGUoMS4wNil9LnF1ZXVlLWJhci1pdGVtLWRlbGV0ZTpob3ZlcntiYWNrZ3JvdW5kOiNkYzUwNDYyZTtjb2xvcjojZDg0ODNjfS5xdWV1ZS1iYXItaXRlbS1kZWxldGU6YWN0aXZlLC5xdWV1ZS1iYXItaXRlbS1wcm9tb3RlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk0KX0ucXVldWUtYmFyLWl0ZW0tcHJvbW90ZSBzdmcsLnF1ZXVlLWJhci1pdGVtLWRlbGV0ZSBzdmd7ZmxleC1zaHJpbms6MH0ucXVldWUtYmFyLnF1ZXVlLWJhci1jYXBhY2l0eSAucXVldWUtYmFyLWl0ZW17LS1xYi1iZzogcmdiYSgyMjAsIDEyMCwgNjAsIC4yKTstLXFiLWJnLXN0cm9uZzogcmdiYSgyMjAsIDEyMCwgNjAsIC4yOCl9LnF1ZXVlLWJhci5xdWV1ZS1iYXItaW5mbGlnaHQgLnF1ZXVlLWJhci1pdGVte2JveC1zaGFkb3c6dmFyKC0tcWItc2hhZG93KSxpbnNldCAwIDFweCAjZmZmZmZmNDAsMCAwIDAgMXB4ICNjNTY1M2QyZX1AbWVkaWEobWF4LXdpZHRoOjU2MHB4KXsuaW5wdXQtcGFuZWw+LnF1ZXVlLWJhci1ob3N0e3JpZ2h0OjhweDttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMTZweCl9fS5pbnB1dC1oaW50e2ZvbnQtc2l6ZTouNXJlbTtsaW5lLWhlaWdodDoxLjI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7d2hpdGUtc3BhY2U6bm93cmFwO3VzZXItc2VsZWN0Om5vbmU7b3BhY2l0eTouNzttYXgtd2lkdGg6MzhjaDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uY29tcG9zZXItdG9wLXJvd3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjB9LmNvbXBvc2VyLXRvcC1yb3c6aGFzKD4udG9kby1wcm9ncmVzczpub3QoLmhpZGRlbikpLC5jb21wb3Nlci10b3Atcm93Omhhcyg+LnN0cnVjdHVyZWQtc3RhdHVzLWJhcil7bWFyZ2luLWJvdHRvbTo2cHh9LnRvZG8tcHJvZ3Jlc3N7bWFyZ2luLWJvdHRvbTo2cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtvdmVyZmxvdzpoaWRkZW47dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9kby1wcm9ncmVzcy5oaWRkZW57ZGlzcGxheTpub25lfS5jb21wb3Nlci10b3Atcm93Pi50b2RvLXByb2dyZXNze2ZsZXg6MTttaW4td2lkdGg6MDttYXJnaW4tYm90dG9tOjB9LnRvZG8tcHJvZ3Jlc3MtaGVhZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzo0cHggOHB4O2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7Z2FwOjhweDtib3JkZXItcmFkaXVzOjEwcHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvZG8tcHJvZ3Jlc3MtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDE0fS50b2RvLXByb2dyZXNzLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O21pbi13aWR0aDowO2ZsZXgtc2hyaW5rOjA7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS50b2RvLXByb2dyZXNzLXJpbmd7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O21pbi13aWR0aDoxNnB4O2ZsZXgtc2hyaW5rOjB9LnRvZG8tcHJvZ3Jlc3MtcmluZyBzdmd7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt0cmFuc2Zvcm06cm90YXRlKC05MGRlZyl9LnRvZG8tcmluZy10cmFja3tzdHJva2U6I2M1NjUzZDJlfS50b2RvLXJpbmctZmlsbHtzdHJva2U6dmFyKC0tYWNjZW50KTtzdHJva2UtZGFzaGFycmF5Ojk3LjM5O3N0cm9rZS1kYXNob2Zmc2V0OmNhbGMoOTcuMzkgKiAoMSAtIHZhcigtLXByb2dyZXNzLCAwKSkpO3RyYW5zaXRpb246c3Ryb2tlLWRhc2hvZmZzZXQgLjM1cyBlYXNlfS50b2RvLXByb2dyZXNzLXJpbmc6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDo0cHg7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7b3BhY2l0eTouNjthbmltYXRpb246cmluZ1B1bHNlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyByaW5nUHVsc2V7MCUsdG97b3BhY2l0eTouMzU7dHJhbnNmb3JtOnNjYWxlKC44NSl9NTAle29wYWNpdHk6Ljk1O3RyYW5zZm9ybTpzY2FsZSgxLjA1KX19LnRvZG8tcHJvZ3Jlc3MtY291bnRlcntmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnRvZG8tcHJvZ3Jlc3MtZmlsbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7Ym90dG9tOjA7d2lkdGg6Y2FsYyh2YXIoLS1wcm9ncmVzcywgMCkgKiAxMDAlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjYzU2NTNkNDcsI2M1NjUzZDFhKTtib3JkZXItcmFkaXVzOjEwcHggMCAwIDEwcHg7dHJhbnNpdGlvbjp3aWR0aCAuMzVzIGVhc2U7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjB9LnRvZG8tcHJvZ3Jlc3MtZmlsbDphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0cHg7Ym90dG9tOjRweDtyaWdodDotMXB4O3dpZHRoOjJweDtiYWNrZ3JvdW5kOiNjNTY1M2Q5OTtib3JkZXItcmFkaXVzOjFweH0udG9kby1wcm9ncmVzcy10YXNrLXdyYXB7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDo2cHg7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO3BhZGRpbmctbGVmdDo4cHh9LnRvZG8tcHJvZ3Jlc3MtdGFza3tmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NTAwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4OjE7bWluLXdpZHRoOjA7dGV4dC1hbGlnbjpyaWdodH0udG9kby1wcm9ncmVzcy1oZWFkZXI6aGFzKC50b2RvLXByb2dyZXNzLXRhc2s6bm90KDplbXB0eSkpIC50b2RvLXByb2dyZXNzLXRhc2t7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsI2ZmZjAsI2ZmZmZmZjhjIDEyJSA4OCUsI2ZmZjApO3BhZGRpbmc6MXB4IDZweDtib3JkZXItcmFkaXVzOjZweH0udG9kby1wcm9ncmVzcy1jaGV2cm9ue2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2U7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS50b2RvLXByb2dyZXNzLmV4cGFuZGVkIC50b2RvLXByb2dyZXNzLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS50b2RvLXByb2dyZXNzLWJvZHl7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3JpZ2h0OjA7Ym90dG9tOmNhbGMoMTAwJSArIDZweCk7YmFja2dyb3VuZDojZmZmYmY2ZmE7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6OHB4IDEwcHg7Ym94LXNoYWRvdzowIDhweCAyNHB4ICMwMDAwMDAxNCwwIDJweCA2cHggIzAwMDAwMDBhO2JhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpO21heC1oZWlnaHQ6MzIwcHg7b3ZlcmZsb3cteTphdXRvO3otaW5kZXg6MzA7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCk7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGVhc2V9LnRvZG8tcHJvZ3Jlc3MtYm9keS5oaWRkZW57ZGlzcGxheTpub25lfS50b2RvLXByb2dyZXNzLWJvZHkuZXhwYW5kZWR7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO3BvaW50ZXItZXZlbnRzOmF1dG99LnRvZG8tcHJvZ3Jlc3MtbGlzdHtsaXN0LXN0eWxlOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjFweH0udG9kby1wcm9ncmVzcy1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo2cHggOHB4O2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bGluZS1oZWlnaHQ6MS4zNTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9kby1wcm9ncmVzcy1pdGVtKy50b2RvLXByb2dyZXNzLWl0ZW17Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czowfS50b2RvLXByb2dyZXNzLWl0ZW06Zmlyc3QtY2hpbGR7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6OHB4fS50b2RvLXByb2dyZXNzLWl0ZW06bGFzdC1jaGlsZHtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjhweDtib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo4cHh9LnRvZG8tcHJvZ3Jlc3MtaXRlbS5hY3RpdmV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXdlaWdodDo1MDA7YmFja2dyb3VuZDojYzU2NTNkMTJ9LnRvZG8tcHJvZ3Jlc3MtaXRlbS5kb25le2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RleHQtZGVjb3JhdGlvbjpsaW5lLXRocm91Z2g7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS50b2RvLXByb2dyZXNzLWl0ZW0+c3BhbjpsYXN0LWNoaWxke2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnRvZG8taXRlbS1pY29ue3dpZHRoOjE2cHg7bWluLXdpZHRoOjE2cHg7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi43NXJlbTtmbGV4LXNocmluazowfS50b2RvLWl0ZW0taWNvbi5wZW5kaW5ne2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS50b2RvLWl0ZW0taWNvbi5hY3RpdmV7Y29sb3I6dmFyKC0tYWNjZW50KX0udG9kby1pdGVtLWljb24uZG9uZXtjb2xvcjojNGE3YTRmfS5mb2xkZXItcGlja2VyLWNvbnRhaW5lcnttYXJnaW4tYm90dG9tOjhweH0uZm9sZGVyLXBpY2tlci1xdWljay1idG57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6NHB4IDhweDtiYWNrZ3JvdW5kOiNmZmY5O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1waWNrZXItcXVpY2stYnRuOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZmU2O2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCl9LmZvbGRlci1icmVhZGNydW1ie2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7ZmxleC13cmFwOndyYXA7Z2FwOjJweDtwYWRkaW5nOjRweCA4cHg7YmFja2dyb3VuZDojZmZmNjtib3JkZXItcmFkaXVzOjZweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTttYXJnaW4tYm90dG9tOjRweH0uZm9sZGVyLXBpY2tlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo2cHggOHB4O2JhY2tncm91bmQ6I2ZmZmZmZjgwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pfS5mb2xkZXItcGlja2VyLWljb257Zm9udC1zaXplOjFyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MH0uZm9sZGVyLXBpY2tlci1pbnB1dHtmbGV4OjE7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO291dGxpbmU6bm9uZTtwYWRkaW5nOjRweH0uZm9sZGVyLXBpY2tlci1pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOiNmZmZjO2JvcmRlci1yYWRpdXM6NHB4fS5mb2xkZXItcGlja2VyLWRyb3Bkb3due3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MDtyaWdodDowO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctZWxldmF0ZWQpO3otaW5kZXg6NTA7bWF4LWhlaWdodDoyNDBweDtvdmVyZmxvdy15OmF1dG87bWFyZ2luLXRvcDo0cHh9LmZvbGRlci1waWNrZXItaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo4cHggMTBweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6LjgxMjVyZW07dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1waWNrZXItaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0uZm9sZGVyLXBpY2tlci1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCl9LmZvbGRlci1waWNrZXItaXRlbS1pY29ue2ZvbnQtc2l6ZTouODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5mb2xkZXItcGlja2VyLWxvYWRpbmd7cGFkZGluZzo4cHggMTBweDt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljc1cmVtfS5mb2xkZXItcGlja2VyLWVycm9ye3BhZGRpbmc6OHB4IDEwcHg7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LXNpemU6Ljc1cmVtO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtib3JkZXItcmFkaXVzOjRweDttYXJnaW46NHB4IDhweH0uZm9sZGVyLXBpY2tlci1jb250YWluZXIuZHJhZy1vdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSl9LmZvbGRlci1waWNrZXItY29udGFpbmVyLmRyYWctb3ZlciAuZm9sZGVyLXBpY2tlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uZm9sZGVyLXJlY2VudC1zZWN0aW9ue3BhZGRpbmc6NHB4IDhweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTttYXJnaW4tYm90dG9tOjRweH0uZm9sZGVyLXJlY2VudC10aXRsZXtmb250LXNpemU6LjY4NzVyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wNWVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi1ib3R0b206NHB4fS5mb2xkZXItcmVjZW50LWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NnB4IDhweDtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljc1cmVtO2JvcmRlci1yYWRpdXM6NHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5mb2xkZXItcmVjZW50LWl0ZW06aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSl9LmZvbGRlci1yZWNlbnQtaXRlbS1wYXRoe2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyl9LmZvbGRlci1waWNrZXItaW5wdXQuaW52YWxpZHtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKTtiYWNrZ3JvdW5kOiNiMjRmNDUxNH0uZm9sZGVyLXBpY2tlci1pbnB1dC5pbnZhbGlkOmZvY3Vze2JveC1zaGFkb3c6MCAwIDAgMnB4ICNiMjRmNDUzM30uZm9sZGVyLXBpY2tlci12YWxpZGF0aW9ue2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS1kYW5nZXIpO3BhZGRpbmc6MnB4IDRweDttYXJnaW4tdG9wOjJweDtkaXNwbGF5Om5vbmV9LmZvbGRlci1waWNrZXItdmFsaWRhdGlvbi52aXNpYmxle2Rpc3BsYXk6YmxvY2t9LmZvbGRlci1waWNrZXItY29tcGFjdHtwb3NpdGlvbjpzdGlja3k7bWFyZ2luLWJvdHRvbTo4cHh9LmZvbGRlci1waWNrZXItY29tcGFjdC1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NnB4IDEwcHg7YmFja2dyb3VuZDojZmZmZmZmODA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uZm9sZGVyLXBpY2tlci1jb21wYWN0LXJvdzpmb2N1cy13aXRoaW57YmFja2dyb3VuZDojZmZmYztib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uZm9sZGVyLXBpY2tlci1jb21wYWN0LWljb257Zm9udC1zaXplOi44NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MH0uZm9sZGVyLXBpY2tlci1jb21wYWN0LWlucHV0e2ZsZXg6MTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7b3V0bGluZTpub25lO3BhZGRpbmc6MnB4IDA7bWluLXdpZHRoOjB9LmZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dDo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmZvbGRlci1waWNrZXItdG9nZ2xle2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtwYWRkaW5nOjRweCA2cHg7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo0cHg7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uZm9sZGVyLXBpY2tlci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5mb2xkZXItcGlja2VyLXF1aWNrLXJvd3tkaXNwbGF5OmZsZXg7Z2FwOjZweDtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LmZvbGRlci1waWNrZXItcXVpY2stcm93IC5mb2xkZXItcGlja2VyLXF1aWNrLWJ0bntmbGV4OjE7cGFkZGluZzo0cHggOHB4O2ZvbnQtc2l6ZTouNjg3NXJlbX0ud29ya2luZy1kaXItaW5kaWNhdG9ye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTBweDtib3R0b206NXB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzoycHggNnB4O2JhY2tncm91bmQ6I2M1NjUzZDE0O2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZTouNjVyZW07Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO21heC13aWR0aDoxODBweDt6LWluZGV4OjI7cG9pbnRlci1ldmVudHM6YXV0b30ud29ya2luZy1kaXItaW5kaWNhdG9yOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpfS53b3JraW5nLWRpci1pbmRpY2F0b3ItaWNvbntmb250LXNpemU6Ljc1cmVtO2ZsZXgtc2hyaW5rOjB9LndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoe2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVufS53b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aDo6LXdlYmtpdC1zY3JvbGxiYXJ7aGVpZ2h0OjNweH0ud29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGg6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTUyO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS53b3JraW5nLWRpci1pbmRpY2F0b3I6aG92ZXIgLndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoe3Njcm9sbGJhci13aWR0aDp0aGlufS53b3JraW5nLWRpci1pbmRpY2F0b3I6aG92ZXIgLndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NHB4fS5pbnB1dC10ZXh0YXJlYXstLWlucHV0LW1heC1oZWlnaHQ6IDEyMHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtwYWRkaW5nOjlweCA4cHg7b3V0bGluZTpub25lO3Jlc2l6ZTpub25lO21pbi1oZWlnaHQ6MzZweDttYXgtaGVpZ2h0OnZhcigtLWlucHV0LW1heC1oZWlnaHQpO3dpZHRoOjEwMCU7ZGlzcGxheTpibG9jaztvdmVyZmxvdy15OmhpZGRlbjtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7dHJhbnNpdGlvbjpoZWlnaHQgLjE1cyBlYXNlLW91dDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bGluZS1oZWlnaHQ6MS40O3RvdWNoLWFjdGlvbjpwYW4teTtzY3JvbGxiYXItZ3V0dGVyOnN0YWJsZX1AbWVkaWEocG9pbnRlcjpjb2Fyc2Upey5pbnB1dC10ZXh0YXJlYXstLWlucHV0LW1heC1oZWlnaHQ6IG1pbigxNjBweCwgMzVkdmgpO292ZXJmbG93LXk6YXV0b319QHN1cHBvcnRzIG5vdCAoaGVpZ2h0OiAxZHZoKXtAbWVkaWEocG9pbnRlcjpjb2Fyc2Upey5pbnB1dC10ZXh0YXJlYXstLWlucHV0LW1heC1oZWlnaHQ6IG1pbigxNjBweCwgMzV2aCl9fX0uaW5wdXQtdGV4dGFyZWE6Zm9jdXN7b3V0bGluZTpub25lfS5pbnB1dC10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXdlaWdodDo1MDA7bGV0dGVyLXNwYWNpbmc6MDtvcGFjaXR5Oi42Mn0uaW5wdXQtdGV4dGFyZWEuaXMtdGVybWluYWwtcGFzc3Rocm91Z2h7b3BhY2l0eTouNztjdXJzb3I6ZGVmYXVsdH0uaW5wdXQtdGV4dGFyZWEuaXMtdGVybWluYWwtcGFzc3Rocm91Z2g6OnBsYWNlaG9sZGVye2ZvbnQtc3R5bGU6aXRhbGljfS5jb21wb3Nlci1waWxse2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtsaW5lLWhlaWdodDoxO21pbi1oZWlnaHQ6MjJweDtwYWRkaW5nOjFweCA4cHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDojZjZmMWU4YjM7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NHB4O3doaXRlLXNwYWNlOm5vd3JhcDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dXNlci1zZWxlY3Q6bm9uZX0uY29tcG9zZXItcGlsbDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kLWNvbG9yOiNmNmYxZTh9LmNvbXBvc2VyLXBpbGw6Zm9jdXMsLmNvbXBvc2VyLXBpbGw6Zm9jdXMtdmlzaWJsZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1hY2NlbnQtbXV0ZWQpO291dGxpbmU6bm9uZX0uY29tcG9zZXItcGlsbC5kaXNhYmxlZCwuY29tcG9zZXItcGlsbFtkaXNhYmxlZF17b3BhY2l0eTouNTU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5jb21wb3Nlci1waWxsLWNoaXB7cGFkZGluZzoxcHggOHB4O2ZvbnQtc2l6ZTouNjI1cmVtfS5jb21wb3Nlci1waWxsLWNoaXAuYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkLCByZ2JhKDE5NywgMTAxLCA2MSwgLjEyKSk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uY29tcG9zZXItcGlsbC1jaGlwLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QyZX0uaXMtd2FuZC1hcHAgLmlucHV0LWNvbXBvc2VyOm5vdCg6Zm9jdXMtd2l0aGluKTpub3QoLmhhcy10ZXh0KSAuYXV0by1hcHByb3ZlLWluZGljYXRvcnt3aWR0aDoyNHB4O21pbi13aWR0aDoyNHB4O3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MDtnYXA6MH0uaXMtd2FuZC1hcHAgLmlucHV0LWNvbXBvc2VyOm5vdCg6Zm9jdXMtd2l0aGluKTpub3QoLmhhcy10ZXh0KSAuYXV0by1hcHByb3ZlLWluZGljYXRvciAuY29tcG9zZXItcGlsbC1sYWJlbHtkaXNwbGF5Om5vbmV9LmNoYXQtbW9kZS1zZWxlY3R7bWF4LXdpZHRoOjc4cHh9LmJ0bi1jaXJjbGV7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDttaW4td2lkdGg6MjhweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6bm9uZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjB9LmJ0bi1jaXJjbGUtc2VuZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50KSAwJSwjYTg1MjJmIDEwMCUpO2NvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDFweCA2cHggI2M1NjUzZDQwfS5idG4tY2lyY2xlLXNlbmQ6aG92ZXJ7dHJhbnNmb3JtOnNjYWxlKDEuMDgpO2JveC1zaGFkb3c6MCAzcHggMTBweCAjYzU2NTNkNTl9LmJ0bi1jaXJjbGUtc2VuZDphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9LmJ0bi1jaXJjbGUtc3RvcHtiYWNrZ3JvdW5kOiNiMjRmNDUxZjtjb2xvcjp2YXIoLS1kYW5nZXIpfS5idG4tY2lyY2xlLXN0b3A6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXIpO2NvbG9yOiNmZmY7dHJhbnNmb3JtOnNjYWxlKDEuMDgpfS5idG4tY2lyY2xlLXN0b3A6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS5idG4tY2lyY2xlLXNlbmQucXVldWUtbW9kZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2M1NjUzZDhjLCNhODUyMmY4Yyk7Ym94LXNoYWRvdzowIDFweCA0cHggI2M1NjUzZDI2fS5idG4tY2lyY2xlLXNlbmQucXVldWUtbW9kZTpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50KSAwJSwjYTg1MjJmIDEwMCUpO2JveC1zaGFkb3c6MCAzcHggMTBweCAjYzU2NTNkNTl9LnByb21wdC1vcHRpbWl6ZS1idG57cG9zaXRpb246YWJzb2x1dGU7dG9wOjVweDtyaWdodDo2cHg7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMjIpO3BhZGRpbmc6MDtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmZmYWYyZjIsI2U4YzVhZTU5KTtjb2xvcjp2YXIoLS1hY2NlbnQpO3otaW5kZXg6NDtib3gtc2hhZG93OjAgMXB4IDRweCAjYzU2NTNkMWE7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSx0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnByb21wdC1vcHRpbWl6ZS1idG46aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmZmZhZjIsI2U4YzVhZThjKTtjb2xvcjp2YXIoLS1hY2NlbnQtaG92ZXIpO3RyYW5zZm9ybTpzY2FsZSgxLjEyKTtib3JkZXItY29sb3I6I2M1NjUzZDU5O2JveC1zaGFkb3c6MCAycHggMTBweCAjYzU2NTNkMzgsMCAwIDAgM3B4ICNjNTY1M2QwZn0ucHJvbXB0LW9wdGltaXplLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Mik7Ym94LXNoYWRvdzowIDFweCAzcHggI2M1NjUzZDI2fS5wcm9tcHQtb3B0aW1pemUtYnRuOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi42fS5wcm9tcHQtb3B0aW1pemUtYnRuOmRpc2FibGVkOmhvdmVye3RyYW5zZm9ybTpub25lO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmZmYWYyZjIsI2U4YzVhZTU5KTtib3gtc2hhZG93OjAgMXB4IDRweCAjYzU2NTNkMWE7Ym9yZGVyLWNvbG9yOiNjNTY1M2QzOH0ucHJvbXB0LW9wdGltaXplLWljb257dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyBlYXNlLG9wYWNpdHkgLjJzIGVhc2U7dHJhbnNmb3JtLW9yaWdpbjpjZW50ZXI7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAxcHggcmdiYSgxOTcsMTAxLDYxLC4zKSl9LnByb21wdC1vcHRpbWl6ZS1idG46aG92ZXIgLnByb21wdC1vcHRpbWl6ZS1pY29ue2FuaW1hdGlvbjpwcm9tcHQtb3B0aW1pemUtdHdpbmtsZSAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO2ZpbHRlcjpkcm9wLXNoYWRvdygwIDAgM3B4IHJnYmEoMTk3LDEwMSw2MSwuNCkpfUBrZXlmcmFtZXMgcHJvbXB0LW9wdGltaXplLXR3aW5rbGV7MCUsdG97dHJhbnNmb3JtOnJvdGF0ZSgwKSBzY2FsZSgxKX01MCV7dHJhbnNmb3JtOnJvdGF0ZSgxMmRlZykgc2NhbGUoMS4xMil9fS5wcm9tcHQtb3B0aW1pemUtc3Bpbm5lcntwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2JvcmRlci1yYWRpdXM6NTAlO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO2JhY2tncm91bmQ6Y29uaWMtZ3JhZGllbnQoZnJvbSAwZGVnLHRyYW5zcGFyZW50IDBkZWcsdmFyKC0tYWNjZW50KSAyNzBkZWcsdHJhbnNwYXJlbnQgMzYwZGVnKTttYXNrOnJhZGlhbC1ncmFkaWVudChjaXJjbGUsdHJhbnNwYXJlbnQgMTBweCxibGFjayAxMXB4KTstd2Via2l0LW1hc2s6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSx0cmFuc3BhcmVudCAxMHB4LGJsYWNrIDExcHgpO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2V9LnByb21wdC1vcHRpbWl6ZS1idG4uaXMtbG9hZGluZ3tjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZmZmYWYyLCNlOGM1YWU4MCk7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q2Njtib3gtc2hhZG93OjAgMnB4IDEycHggI2M1NjUzZDQwLDAgMCAwIDNweCAjYzU2NTNkMTR9LnByb21wdC1vcHRpbWl6ZS1idG4uaXMtbG9hZGluZyAucHJvbXB0LW9wdGltaXplLWljb257YW5pbWF0aW9uOnByb21wdC1vcHRpbWl6ZS1wdWxzZSAxLjFzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5wcm9tcHQtb3B0aW1pemUtYnRuLmlzLWxvYWRpbmcgLnByb21wdC1vcHRpbWl6ZS1zcGlubmVye29wYWNpdHk6MTthbmltYXRpb246cHJvbXB0LW9wdGltaXplLXNwaW4gLjlzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHByb21wdC1vcHRpbWl6ZS1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19QGtleWZyYW1lcyBwcm9tcHQtb3B0aW1pemUtcHVsc2V7MCUsdG97dHJhbnNmb3JtOnNjYWxlKC44OCk7b3BhY2l0eTouOH01MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpO29wYWNpdHk6MX19LmlucHV0LWNvbXBvc2VyLmlzLW9wdGltaXppbmd7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q2Yjtib3gtc2hhZG93OjAgMCAwIDJweCAjYzU2NTNkMWEsMCAwIDE4cHggI2M1NjUzZDI0fS5pbnB1dC1jb21wb3Nlci5pcy1vcHRpbWl6aW5nIC5jb21wb3Nlci1pbnB1dC13cmFwOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMDBkZWcsdHJhbnNwYXJlbnQgMCUsdHJhbnNwYXJlbnQgMzglLHJnYmEoMjE0LDEyMyw4MiwuMTYpIDUwJSx0cmFuc3BhcmVudCA2MiUsdHJhbnNwYXJlbnQgMTAwJSk7YmFja2dyb3VuZC1zaXplOjIyMCUgMTAwJTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjoyMjAlIDA7YW5pbWF0aW9uOnByb21wdC1vcHRpbWl6ZS1mbG93IDEuNnMgbGluZWFyIGluZmluaXRlO3otaW5kZXg6MH1Aa2V5ZnJhbWVzIHByb21wdC1vcHRpbWl6ZS1mbG93ezAle2JhY2tncm91bmQtcG9zaXRpb246MjIwJSAwfXRve2JhY2tncm91bmQtcG9zaXRpb246LTEyMCUgMH19LnByb21wdC1vcHRpbWl6ZS1idG4uaXMtc2hha2V7YW5pbWF0aW9uOnByb21wdC1vcHRpbWl6ZS1zaGFrZSAuNHMgZWFzZS1vdXQ7Y29sb3I6dmFyKC0tZGFuZ2VyKX1Aa2V5ZnJhbWVzIHByb21wdC1vcHRpbWl6ZS1zaGFrZXswJSx0b3t0cmFuc2Zvcm06dHJhbnNsYXRlKDApfTIwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKC0zcHgpfTQwJXt0cmFuc2Zvcm06dHJhbnNsYXRlKDNweCl9NjAle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTJweCl9ODAle3RyYW5zZm9ybTp0cmFuc2xhdGUoMnB4KX19QG1lZGlhKG1heC13aWR0aDo3MjBweCl7LnByb21wdC1vcHRpbWl6ZS1idG57d2lkdGg6MjZweDtoZWlnaHQ6MjZweH0ucHJvbXB0LW9wdGltaXplLWljb257d2lkdGg6MTRweDtoZWlnaHQ6MTRweH19LmJ0bi1jaXJjbGUtYWN0aW9ue2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6bm9uZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjB9LmJ0bi1jaXJjbGUtYWN0aW9uOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDFhO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnNjYWxlKDEuMDgpfS5idG4tY2lyY2xlLWFjdGlvbjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NCl9LmJ0bi1jaXJjbGUtYWN0aW9uLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCwgcmdiYSgxOTcsIDEwMSwgNjEsIC4xNCkpO2NvbG9yOnZhcigtLWFjY2VudCl9LmJ0bi1jaXJjbGUtYWN0aW9uLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QzOH0uY2hhdC1tb2RlLXRyaW97ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4LXdyYXA6d3JhcH0uY2hhdC1tb2RlLXRyaW8tcGlsbHtwb3NpdGlvbjpyZWxhdGl2ZTtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lfS5jaGF0LW1vZGUtdHJpby10YWd7Zm9udC1zaXplOi42MjVyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnksICNiNWE4OWEpO2xldHRlci1zcGFjaW5nOi4wNGVtO21hcmdpbi1yaWdodDo0cHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO29wYWNpdHk6Ljc1fS5lbXB0eS1zdGF0ZS10cmlvLXdyYXB7bWFyZ2luLXRvcDoxNHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7YW5pbWF0aW9uOmVtcHR5U3RhdGVUcmlvRmFkZUluIC40cyBlYXNlLW91dH0uZW1wdHktc3RhdGUtdHJpby1oaW50e2ZvbnQtc2l6ZTouNzJyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGV0dGVyLXNwYWNpbmc6LjAyZW19LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3due2dhcDo0cHg7cGFkZGluZzo2cHggMTJweDtiYWNrZ3JvdW5kOiNmNmYxZTg5OTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMXB4IDNweCAjMDAwMDAwMGF9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jaGF0LW1vZGUtdHJpby1waWxse2ZvbnQtc2l6ZTouNzhyZW07cGFkZGluZzozcHggNnB4O2JvcmRlci1yYWRpdXM6OHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jaGF0LW1vZGUtdHJpby1kcm9wZG93biAudGhpbmtpbmctc2xpZGVyLXNoZWxse21pbi13aWR0aDoxNjhweDtwYWRkaW5nOjNweCA2cHh9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jaGF0LW1vZGUtdHJpby1waWxsOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBmfS5jaGF0LW1vZGUtdHJpby1kcm9wZG93biAuY2hhdC1tb2RlLXRyaW8tcGlsbDpmb2N1cy13aXRoaW57YmFja2dyb3VuZDojYzU2NTNkMTR9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jb21wb3Nlci10ZXh0LWxhYmVse2ZvbnQtc2l6ZTouOHJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXgtd2lkdGg6MTQwcHh9QGtleWZyYW1lcyBlbXB0eVN0YXRlVHJpb0ZhZGVJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5jaGF0LW1lc3NhZ2UtYXZhdGFyLnVzZXIgLmNoYXQtbW9kZS10cmlvLWNvbXBhY3R7bWFyZ2luLXJpZ2h0OjRweDtnYXA6M3B4O29wYWNpdHk6LjU1O3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jaGF0LW1lc3NhZ2UtYXZhdGFyLnVzZXI6aG92ZXIgLmNoYXQtbW9kZS10cmlvLWNvbXBhY3QsLmNoYXQtbWVzc2FnZS1hdmF0YXIudXNlciAuY2hhdC1tb2RlLXRyaW8tY29tcGFjdDpmb2N1cy13aXRoaW4sLmNoYXQtbWVzc2FnZS1hdmF0YXIudXNlciAuY2hhdC1tb2RlLXRyaW8tY29tcGFjdDpob3ZlcntvcGFjaXR5OjF9LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNoYXQtbW9kZS10cmlvLXBpbGx7Zm9udC1zaXplOi42ODc1cmVtO3BhZGRpbmc6MnB4IDZweDtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojZjZmMWU4OGM7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtsaW5lLWhlaWdodDoxfS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC5jaGF0LW1vZGUtdHJpby1waWxsOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDFhO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNvbXBvc2VyLXRleHQtbGFiZWx7Zm9udC1zaXplOi42ODc1cmVtO21heC13aWR0aDo4OHB4O2xldHRlci1zcGFjaW5nOi4wMWVtfS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC50aGlua2luZy1zbGlkZXItc2hlbGx7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjM0cHggOTJweDttaW4td2lkdGg6MTMycHg7bWF4LXdpZHRoOjEzMnB4O3BhZGRpbmc6M3B4IDZweH0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAudGhpbmtpbmctc2xpZGVyLXJhaWx7Z3JpZC1jb2x1bW46MjtncmlkLXJvdzoxO2hlaWdodDozMnB4fS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC50aGlua2luZy1kaXNjcmV0ZS1yYW5nZXtoZWlnaHQ6MzJweH0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAuY29tcG9zZXItdGV4dC1zZXB7ZGlzcGxheTpub25lfUBtZWRpYShtYXgtd2lkdGg6NzIwcHgpey5jaGF0LW1vZGUtdHJpby1kcm9wZG93bntwYWRkaW5nOjZweCAxMHB4O2dhcDoycHh9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jb21wb3Nlci10ZXh0LWxhYmVse21heC13aWR0aDoxMDBweH0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAuY2hhdC1tb2RlLXRyaW8tcGlsbHtmb250LXNpemU6LjYyNXJlbTtwYWRkaW5nOjJweCA1cHh9LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNvbXBvc2VyLXRleHQtbGFiZWx7bWF4LXdpZHRoOjY0cHh9fS5jb21wb3Nlci1wbHVzLXBvcG92ZXJ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDoxNHB4O2JvdHRvbTpjYWxjKHZhcigtLXNhZmUtYm90dG9tLCAwcHgpICsgNTZweCk7ei1pbmRleDoyODttaW4td2lkdGg6MjQwcHg7bWF4LXdpZHRoOmNhbGMoMTAwJSAtIDI4cHgpO2JhY2tncm91bmQ6I2ZmZmZmZmZhO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6MTZweDtib3gtc2hhZG93OjAgMTJweCAyOHB4ICMwMDAwMDAyZSwwIDJweCA2cHggIzAwMDAwMDE0O3BhZGRpbmc6NnB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweDthbmltYXRpb246cGx1c1BvcG92ZXJJbiAuMThzIGVhc2Utb3V0O3RyYW5zZm9ybS1vcmlnaW46MTZweCBjYWxjKDEwMCUgKyA4cHgpfS5jb21wb3Nlci1wbHVzLXBvcG92ZXIuaGlkZGVue2Rpc3BsYXk6bm9uZX1Aa2V5ZnJhbWVzIHBsdXNQb3BvdmVySW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDZweCkgc2NhbGUoLjk2KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fS5wbHVzLXBvcG92ZXItaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6LjgycmVtO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MTAwJX0ucGx1cy1wb3BvdmVyLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMTR9LnBsdXMtcG9wb3Zlci1pdGVtOmFjdGl2ZXtiYWNrZ3JvdW5kOiNjNTY1M2QyNH0ucGx1cy1wb3BvdmVyLWljb257Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZsZXgtc2hyaW5rOjB9LnBsdXMtcG9wb3Zlci1sYWJlbHtmbGV4OjE7bGluZS1oZWlnaHQ6MS4yfS5wbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRle2ZvbnQtc2l6ZTouNjhyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZzoycHggOHB4O2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6IzAwMDAwMDBkO2xpbmUtaGVpZ2h0OjEuMjtsZXR0ZXItc3BhY2luZzouMDJlbX0ucGx1cy1wb3BvdmVyLWl0ZW0uaXMtb24sLnBsdXMtcG9wb3Zlci1pdGVtLmlzLW9uIC5wbHVzLXBvcG92ZXItaWNvbntjb2xvcjp2YXIoLS1hY2NlbnQpfS5wbHVzLXBvcG92ZXItaXRlbS5pcy1vbiAucGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZXtjb2xvcjojZmZmO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KX0ucGx1cy1wb3BvdmVyLXNlcHtoZWlnaHQ6MXB4O21hcmdpbjo0cHggNnB4O2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLXN1YnRsZSl9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4fS5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctY29udHJvbHN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo2cHh9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy1jaGlwLC5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmd7d2lkdGg6MTAwJTttYXgtd2lkdGg6bm9uZTttaW4taGVpZ2h0OjM2cHg7Ym9yZGVyLXJhZGl1czoxMnB4fS5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctY2hpcHtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nOjAgMTBweH0ucGx1cy1wb3BvdmVyLXRyaW8td3JhcCAuY29tcG9zZXItY29uZmlnLW1vZGVsLC5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctdGhpbmtpbmd7ZmxleDoxIDEgMDttYXgtd2lkdGg6bm9uZTttaW4taGVpZ2h0OjM2cHg7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7cGFkZGluZzowIDEwcHh9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ3tmbGV4OjEgMSBhdXRvfS5jaGF0LW1vZGUtdHJpby1wb3BvdmVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6c3RyZXRjaDtnYXA6MnB4fS5jaGF0LW1vZGUtdHJpby1wb3BvdmVyIC5jb21wb3Nlci10ZXh0LXNlcHtkaXNwbGF5Om5vbmV9LmNoYXQtbW9kZS10cmlvLXBvcG92ZXIgLmNoYXQtbW9kZS10cmlvLXBpbGx7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6N3B4IDEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O2ZvbnQtc2l6ZTouODJyZW07bWF4LXdpZHRoOm5vbmU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY2hhdC1tb2RlLXRyaW8tcGlsbDpob3ZlciwuY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY2hhdC1tb2RlLXRyaW8tcGlsbDpmb2N1cy13aXRoaW57YmFja2dyb3VuZDojYzU2NTNkMTQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY2hhdC1tb2RlLXRyaW8tdGFne2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtsZXR0ZXItc3BhY2luZzowO3RleHQtdHJhbnNmb3JtOm5vbmU7b3BhY2l0eToxO21hcmdpbi1yaWdodDowO2ZsZXgtc2hyaW5rOjA7d2lkdGg6MzZweH0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY29tcG9zZXItdGV4dC1sYWJlbHtmbGV4OjE7Zm9udC1zaXplOi44MnJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RleHQtYWxpZ246cmlnaHQ7bWF4LXdpZHRoOjEwMCU7Zm9udC13ZWlnaHQ6NTAwfS5jaGF0LW1vZGUtdHJpby1wb3BvdmVyIC50aGlua2luZy1zbGlkZXItc2hlbGx7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczozNnB4IDFmcjttaW4td2lkdGg6MTAwJTttYXgtd2lkdGg6bm9uZX0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAudGhpbmtpbmctc2xpZGVyLXJhaWx7Z3JpZC1jb2x1bW46MSAvIC0xO3dpZHRoOjEwMCV9QG1lZGlhKG1heC13aWR0aDo3MjBweCl7LnRoaW5raW5nLXNsaWRlci1yYWlsLC50aGlua2luZy1kaXNjcmV0ZS1yYW5nZXttaW4taGVpZ2h0OjQ0cHh9LmNvbXBvc2VyLXBsdXMtcG9wb3ZlcnttaW4td2lkdGg6MjIwcHg7bGVmdDoxMHB4O2JvdHRvbTpjYWxjKHZhcigtLXNhZmUtYm90dG9tLCAwcHgpICsgNjBweCl9LmNvbXBvc2VyLW1haW4tcm93e2dhcDozcHg7cGFkZGluZy1sZWZ0OjVweDtwYWRkaW5nLXJpZ2h0OjVweH0uY29tcG9zZXItaW5saW5lLWNvbmZpZ3tnYXA6M3B4fS5jb21wb3Nlci1jb25maWctY2hpcCwuY29tcG9zZXItY29uZmlnLXBhcnR7bWluLWhlaWdodDoyNnB4fS5jb21wb3Nlci1jb25maWctY2hpcHtwYWRkaW5nOjAgN3B4O21heC13aWR0aDo2NHB4fS5jb21wb3Nlci1jb25maWctbW9kZWx7bWF4LXdpZHRoOjc2cHh9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ3ttaW4td2lkdGg6MTE2cHh9LmNvbXBvc2VyLWNvbmZpZy1sYWJlbHtmb250LXNpemU6LjY4cmVtfX1AbWVkaWEobWF4LXdpZHRoOjQzMHB4KXsuY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZXt3aWR0aDoyOHB4O21heC13aWR0aDoyOHB4O3BhZGRpbmc6MH0uY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZSAuY29tcG9zZXItY29uZmlnLWxhYmVse2Rpc3BsYXk6bm9uZX19QG1lZGlhKG1heC13aWR0aDozODBweCl7LmNvbXBvc2VyLWNvbmZpZy1tb2RlbHt3aWR0aDozMHB4O21heC13aWR0aDozMHB4O3BhZGRpbmc6MH0uY29tcG9zZXItY29uZmlnLW1vZGVsIC5jb21wb3Nlci1jb25maWctbGFiZWx7ZGlzcGxheTpub25lfS5jb21wb3Nlci1jb25maWctdGhpbmtpbmd7bWluLXdpZHRoOjEwNHB4O3BhZGRpbmc6M3B4IDVweH19QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsudGhpbmtpbmctZGlzY3JldGUtcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXRodW1ie3RyYW5zaXRpb246bm9uZX19LnByb21wdC1vcHRpbWl6ZS1idG57ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OmF1dG8gNHB4IDRweCBhdXRvO3RyYW5zZm9ybTpub25lO3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7ei1pbmRleDo0fS5pbnB1dC1jb21wb3Nlci5oYXMtdGV4dCAucHJvbXB0LW9wdGltaXplLWJ0bntkaXNwbGF5OmlubGluZS1mbGV4fS5pbnB1dC1jb21wb3Nlci5oYXMtdGV4dCAucHJvbXB0LW9wdGltaXplLWJ0bjpob3Zlcnt0cmFuc2Zvcm06c2NhbGUoMS4xMil9LmlucHV0LWNvbXBvc2VyLmhhcy10ZXh0IC5wcm9tcHQtb3B0aW1pemUtYnRuOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjkyKX0uaW5wdXQtY29tcG9zZXIuaGFzLXRleHQgLmlucHV0LXRleHRhcmVhe3BhZGRpbmctcmlnaHQ6MzZweH0udm9pY2UtaW5wdXQtbW9kZXtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjAgNHB4fS52b2ljZS1pbnB1dC1tb2RlLmhpZGRlbntkaXNwbGF5Om5vbmV9LnZvaWNlLXJlY29yZC1idG57ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtoZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjk5OXB4O2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtiYWNrZ3JvdW5kOiNmNmYxZTg4MDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NTAwO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259LnZvaWNlLXJlY29yZC1idG46aG92ZXJ7YmFja2dyb3VuZDojZjZmMWU4ZTY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KX0udm9pY2UtcmVjb3JkLWJ0bjphY3RpdmUsLnZvaWNlLXJlY29yZC1idG4uaXMtcmVjb3JkaW5ne2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkLCByZ2JhKDE5NywgMTAxLCA2MSwgLjE0KSk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItc3R5bGU6c29saWR9LnZvaWNlLXJlY29yZC1wdWxzZXt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtvcGFjaXR5Oi41NX0udm9pY2UtcmVjb3JkLWJ0bi5pcy1yZWNvcmRpbmcgLnZvaWNlLXJlY29yZC1wdWxzZXtvcGFjaXR5OjE7YW5pbWF0aW9uOnZvaWNlLXB1bHNlIDEuMXMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyB2b2ljZS1wdWxzZXswJSx0b3t0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfTUwJXt0cmFuc2Zvcm06c2NhbGUoMS40NSk7b3BhY2l0eTouNDV9fS52b2ljZS1jYW5jZWwtYnRue3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udm9pY2UtY2FuY2VsLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUxYTtjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbnB1dC1jb21wb3Nlci52b2ljZS1tb2RlIC5pbnB1dC10ZXh0YXJlYXt2aXNpYmlsaXR5OmhpZGRlbn0uaW5wdXQtY29tcG9zZXIudm9pY2UtbW9kZSAucHJvbXB0LW9wdGltaXplLWJ0bntkaXNwbGF5Om5vbmV9LmlucHV0LWNvbXBvc2VyLnZvaWNlLW1vZGUgLnZvaWNlLWlucHV0LW1vZGV7ZGlzcGxheTpmbGV4fSN2b2ljZS1idG57ZGlzcGxheTpub25lfS5pbnB1dC1jb21wb3Nlci52b2ljZS1tb2RlICN2b2ljZS1idG57YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQsIHJnYmEoMTk3LCAxMDEsIDYxLCAuMTgpKTtjb2xvcjp2YXIoLS1hY2NlbnQpfS52b2ljZS10cmFuc2NyaXB0LWJ1YmJsZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEycHg7cmlnaHQ6MTJweDtib3R0b206Y2FsYygxMDAlICsgOHB4KTt6LWluZGV4OjQwO3BhZGRpbmc6MTJweCAxNnB4IDEwcHg7Ym9yZGVyLXJhZGl1czoxNnB4O2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LCAjYzU2NTNkKTtjb2xvcjojZmZmO2JveC1zaGFkb3c6MCA2cHggMjRweCAjMDAwMDAwMmU7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtLW9yaWdpbjpib3R0b20gY2VudGVyO2FuaW1hdGlvbjp2b2ljZS1idWJibGUtaW4gLjE4cyBlYXNlfS52b2ljZS10cmFuc2NyaXB0LWJ1YmJsZS5oaWRkZW57ZGlzcGxheTpub25lfUBrZXlmcmFtZXMgdm9pY2UtYnViYmxlLWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpIHNjYWxlKC45Nil9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX0udm9pY2UtdHJhbnNjcmlwdC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi45NXJlbTtsaW5lLWhlaWdodDoxLjU7Zm9udC13ZWlnaHQ6NTAwO3dvcmQtYnJlYWs6YnJlYWstd29yZDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDttaW4taGVpZ2h0OjEuNGVtO2NvbG9yOiNmZmZ9LnZvaWNlLXRyYW5zY3JpcHQtYnViYmxlOm5vdCguaGFzLXRleHQpIC52b2ljZS10cmFuc2NyaXB0LXRleHQ6YmVmb3Jle2NvbnRlbnQ6Ilw4YmY3XDVmMDBcNTljYlw4YmY0XDhiZGRcMjAyNiI7b3BhY2l0eTouNn0udm9pY2UtdHJhbnNjcmlwdC1oaW50e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtmb250LXNpemU6LjcycmVtO29wYWNpdHk6Ljg1fS52b2ljZS10cmFuc2NyaXB0LXN0YXR1c3tsZXR0ZXItc3BhY2luZzouMDJlbX0udm9pY2Utd2F2ZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmZsZXgtZW5kO2dhcDoycHg7aGVpZ2h0OjEycHh9LnZvaWNlLXdhdmU+aXt3aWR0aDoyLjVweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjthbmltYXRpb246dm9pY2Utd2F2ZS1ib3VuY2UgLjlzIGVhc2UtaW4tb3V0IGluZmluaXRlfS52b2ljZS13YXZlPmk6bnRoLWNoaWxkKDEpe2hlaWdodDo1cHg7YW5pbWF0aW9uLWRlbGF5OjBzfS52b2ljZS13YXZlPmk6bnRoLWNoaWxkKDIpe2hlaWdodDoxMnB4O2FuaW1hdGlvbi1kZWxheTouMTVzfS52b2ljZS13YXZlPmk6bnRoLWNoaWxkKDMpe2hlaWdodDo4cHg7YW5pbWF0aW9uLWRlbGF5Oi4zc30udm9pY2Utd2F2ZT5pOm50aC1jaGlsZCg0KXtoZWlnaHQ6MTFweDthbmltYXRpb24tZGVsYXk6LjQ1c31Aa2V5ZnJhbWVzIHZvaWNlLXdhdmUtYm91bmNlezAlLHRve3RyYW5zZm9ybTpzY2FsZVkoLjQpO29wYWNpdHk6LjZ9NTAle3RyYW5zZm9ybTpzY2FsZVkoMSk7b3BhY2l0eToxfX0udm9pY2UtYnViYmxlLWFycm93e3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6MjhweDt3aWR0aDowO2hlaWdodDowO2JvcmRlci1sZWZ0OjdweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmlnaHQ6N3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci10b3A6OHB4IHNvbGlkIHZhcigtLWFjY2VudCwgI2M1NjUzZCl9LnZvaWNlLXRyYW5zY3JpcHQtYnViYmxlLmlzLWNhbmNlbGluZ3tiYWNrZ3JvdW5kOnZhcigtLWRhbmdlciwgI2IyNGY0NSl9LnZvaWNlLXRyYW5zY3JpcHQtYnViYmxlLmlzLWNhbmNlbGluZyAudm9pY2UtYnViYmxlLWFycm93e2JvcmRlci10b3AtY29sb3I6dmFyKC0tZGFuZ2VyLCAjYjI0ZjQ1KX1AbWVkaWEobWF4LXdpZHRoOjcyMHB4KXsuYnRuLWNpcmNsZS1hY3Rpb257d2lkdGg6MzBweDtoZWlnaHQ6MzBweDttaW4td2lkdGg6MzBweH0uY29tcG9zZXItbWFpbi1yb3d7cGFkZGluZzozcHggNHB4O21pbi1oZWlnaHQ6NDJweDtnYXA6MnB4fX0uYXR0YWNobWVudC1wcmV2aWV3e2Rpc3BsYXk6ZmxleDtnYXA6NnB4O3BhZGRpbmc6NnB4IDEwcHg7ZmxleC13cmFwOndyYXA7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LmF0dGFjaG1lbnQtcHJldmlldy5oaWRkZW57ZGlzcGxheTpub25lfS5hdHRhY2htZW50LXBpbGx7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtwYWRkaW5nOjNweCA4cHg7YmFja2dyb3VuZDojYzU2NTNkMGY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE4KTtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6LjcycmVtO21heC13aWR0aDoyMDBweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YW5pbWF0aW9uOnBlcm1pc3Npb24tZmFkZS1pbiAuMnMgZWFzZS1vdXR9LmF0dGFjaG1lbnQtcGlsbCBpbWd7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDtvYmplY3QtZml0OmNvdmVyO2JvcmRlci1yYWRpdXM6NHB4O2ZsZXgtc2hyaW5rOjB9LmF0dGFjaG1lbnQtcGlsbCAuYXR0LWljb257d2lkdGg6MThweDtoZWlnaHQ6MThweDtmbGV4LXNocmluazowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6Ljg1cmVtfS5hdHRhY2htZW50LXBpbGwgLmF0dC1uYW1le292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4OjE7bWluLXdpZHRoOjB9LmF0dGFjaG1lbnQtcGlsbCAuYXR0LXNpemV7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi42NXJlbTtmbGV4LXNocmluazowfS5hdHRhY2htZW50LXBpbGwgLmF0dC1yZW1vdmV7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44cmVtO2xpbmUtaGVpZ2h0OjE7cGFkZGluZzowIDJweDtmbGV4LXNocmluazowO2JvcmRlcjpub25lO2JhY2tncm91bmQ6bm9uZX0uYXR0YWNobWVudC1waWxsIC5hdHQtcmVtb3ZlOmhvdmVye2NvbG9yOnZhcigtLWRhbmdlcil9LmlucHV0LWNvbXBvc2VyLmRyYWctb3Zlcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KSFpbXBvcnRhbnQ7YmFja2dyb3VuZDojYzU2NTNkMGEhaW1wb3J0YW50O2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWFjY2VudC1tdXRlZCksaW5zZXQgMCAwIDIwcHggI2M1NjUzZDA4fS5mb2xkZXItcGlja2VyLW1vZGFse21heC13aWR0aDo0ODBweH0uZm9sZGVyLXBpY2tlci1tb2RhbCAubW9kYWwtYm9keXtwYWRkaW5nOjE2cHh9LmxvZ2luLWNvbnRhaW5lcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDoxMDB2aDttaW4taGVpZ2h0OjEwMGR2aDtwYWRkaW5nOjI0cHh9LmxvZ2luLWNhcmR7d2lkdGg6MTAwJTttYXgtd2lkdGg6MzgwcHg7YmFja2dyb3VuZDojZmZmYmY1ZWI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE1MCwxMTgsODUsLjE2KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7b3ZlcmZsb3c6aGlkZGVuO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNvZnQpfS5sb2dpbi1oZWFkZXJ7cGFkZGluZzoyOHB4IDI0cHggMjJweDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgdG9wLHJnYmEoMjE0LDE0NCwxMDAsLjI2KSx0cmFuc3BhcmVudCA0NSUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZjZlYmQ5LCNmZmZiZjVkOSl9LmJvb3QtbG9hZGluZ3ttaW4taGVpZ2h0OjEwMHZoO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjI0cHh9LmJvb3QtbG9hZGluZy1jYXJke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxNnB4IDE4cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjE2cHg7YmFja2dyb3VuZDp2YXIoLS1zdXJmYWNlLWVsZXZhdGVkKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5ib290LWxvYWRpbmctc3Bpbm5lcnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2ZsZXgtc2hyaW5rOjA7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE2KTtib3JkZXItdG9wLWNvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czo5OTlweDthbmltYXRpb246bG9naW5TcGluIC44cyBsaW5lYXIgaW5maW5pdGV9LmJvb3QtbG9hZGluZy10ZXh0e2ZvbnQtc2l6ZTouOTM3NXJlbTtmb250LXdlaWdodDo1MDB9LmxvZ2luLWxvZ297ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi1ib3R0b206OHB4fS5sb2dpbi1sb2dvLWljb257d2lkdGg6NDJweDtoZWlnaHQ6NDJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Q2N2I1MiwjYWI1MjJlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjU5O2ZvbnQtc2l6ZToxOHB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwfS5sb2dpbi1sb2dvLXRleHR7Zm9udC1zaXplOjEuNnJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtfS5sb2dpbi1zdWJ0aXRsZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljg3NXJlbX0ubG9naW4tYm9keXtwYWRkaW5nOjIycHggMjRweCAyNHB4fS5sb2dpbi1jYXJkLWxvYWRpbmcgLmxvZ2luLWJvZHl7cGFkZGluZy10b3A6MThweDtwYWRkaW5nLWJvdHRvbToyNHB4fS5sb2dpbi1oaW50e2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luLWJvdHRvbToxNnB4O2xpbmUtaGVpZ2h0OjEuNX0ubG9naW4tbXV0ZWR7bWFyZ2luOjRweCAwIDA7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjQ1fS5sb2dpbi1zdGF0dXN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjE0cHg7cGFkZGluZzoycHggMH0ubG9naW4tc3Bpbm5lcnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2ZsZXgtc2hyaW5rOjA7bWFyZ2luLXRvcDoycHg7Ym9yZGVyOjJweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjE2KTtib3JkZXItdG9wLWNvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czo5OTlweDthbmltYXRpb246bG9naW5TcGluIC44cyBsaW5lYXIgaW5maW5pdGV9LnBhc3N3b3JkLWZpZWxke3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnBhc3N3b3JkLWlucHV0e3BhZGRpbmctcmlnaHQ6NzhweDttaW4taGVpZ2h0OjQ2cHh9LnBhc3N3b3JkLXRvZ2dsZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDo4cHg7dG9wOjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLXJhZGl1czo4cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0ucGFzc3dvcmQtdG9nZ2xlOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnBhc3N3b3JkLXRvZ2dsZTpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fUBrZXlmcmFtZXMgbG9naW5TcGluezAle3RyYW5zZm9ybTpyb3RhdGUoMCl9dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0uYnRuOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi43Mjt0cmFuc2Zvcm06bm9uZTtib3gtc2hhZG93Om5vbmV9LmxvZ2luLWJvZHkgLmZpZWxke21hcmdpbi1ib3R0b206MjBweH0ubG9naW4tYm9keSAuaGludHttYXJnaW4tdG9wOjEwcHh9LmxvZ2luLWJvZHkgLmVycm9yLW1lc3NhZ2V7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1ib3R0b206MH0ubG9naW4tY2VydC1oaW50e21hcmdpbi10b3A6MTRweDtwYWRkaW5nOjE0cHggMTZweDtib3JkZXItcmFkaXVzOjEycHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5MCwxMjAsNDAsLjMyKTtiYWNrZ3JvdW5kOiNkYzk2M2MxYTt0ZXh0LWFsaWduOmxlZnR9LmxvZ2luLWNlcnQtaGludC10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW4tYm90dG9tOjZweH0ubG9naW4tY2VydC1oaW50LWJvZHl7Zm9udC1zaXplOi44MTI1cmVtO2xpbmUtaGVpZ2h0OjEuNjtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luOjAgMCAxMnB4fS5sb2dpbi1jZXJ0LWhpbnQgLmJ0bnttYXJnaW4tdG9wOjB9Lm1vZGFsLXN1YnRpdGxle21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1ib2R5e3BhZGRpbmctdG9wOjE2cHg7cGFkZGluZy1ib3R0b206OHB4fS5zZXNzaW9uLW1vZGFsIC5maWVsZDpsYXN0LW9mLXR5cGV7bWFyZ2luLWJvdHRvbTo2cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlcntmbGV4LXNocmluazowO3BhZGRpbmc6MTJweCAyMnB4IDE4cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlciAuZXJyb3ItbWVzc2FnZXttYXJnaW4tdG9wOjhweDttYXJnaW4tYm90dG9tOjB9Lm1vZGUtY2FyZHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo2cHh9Lm1vZGUtY2FyZHtmbGV4OjEgMSAwO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDozcHg7cGFkZGluZzoxMHB4IDhweDtib3JkZXI6MS41cHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIpO2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOiNmZmY5O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt0ZXh0LWFsaWduOmNlbnRlcjtvdXRsaW5lOm5vbmV9Lm1vZGUtY2FyZDpob3Zlcntib3JkZXItY29sb3I6I2M1NjUzZDU5O2JhY2tncm91bmQ6I2ZmZmN9Lm1vZGUtY2FyZC5hY3RpdmV7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojZmZmN2VmZjI7Ym94LXNoYWRvdzowIDAgMCAxLjVweCB2YXIoLS1hY2NlbnQtbXV0ZWQpfS5tb2RlLWNhcmQ6Zm9jdXMtdmlzaWJsZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDEuNXB4IHZhcigtLWFjY2VudC1tdXRlZCl9Lm1vZGUtY2FyZC1sYWJlbHtmb250LXNpemU6LjhyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGluZS1oZWlnaHQ6MS4zfS5tb2RlLWNhcmQtZGVzY3tmb250LXNpemU6LjY4cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuM30ubW9kZS1jYXJkLmFjdGl2ZSAubW9kZS1jYXJkLWxhYmVse2NvbG9yOnZhcigtLWFjY2VudCl9Lm1vZGUtY2FyZC5kaXNhYmxlZHtvcGFjaXR5Oi40NTtjdXJzb3I6bm90LWFsbG93ZWQ7cG9pbnRlci1ldmVudHM6bm9uZX0ubW9kZS1jYXJkLmRpc2FibGVkOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5MzM7YmFja2dyb3VuZDojZmZmOX0ubW9kZS1jYXJkLmRpc2FibGVkIC5tb2RlLWNhcmQtbGFiZWwsLm1vZGUtY2FyZC5kaXNhYmxlZCAubW9kZS1jYXJkLWRlc2N7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lm1vZGUtY2FyZC5hY3RpdmUuZGlzYWJsZWR7Ym94LXNoYWRvdzpub25lfS5wYXNzd29yZC1pbnB1dFtkYXRhLWVycm9yPXRydWVdLC5wYXNzd29yZC1pbnB1dFthcmlhLWludmFsaWQ9dHJ1ZV17Ym9yZGVyLWNvbG9yOnZhcigtLWRhbmdlcik7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tZGFuZ2VyLW11dGVkKX0ucGFzc3dvcmQtaW5wdXRbZGF0YS1lcnJvcj10cnVlXSsucGFzc3dvcmQtdG9nZ2xlLC5wYXNzd29yZC1pbnB1dFthcmlhLWludmFsaWQ9dHJ1ZV0rLnBhc3N3b3JkLXRvZ2dsZXtjb2xvcjp2YXIoLS1kYW5nZXIpfS5wYXNzd29yZC1pbnB1dDpmb2N1cysucGFzc3dvcmQtdG9nZ2xle2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnBhc3N3b3JkLXRvZ2dsZTphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoLjk4KX0ucGFzc3dvcmQtaW5wdXQ6Oi1tcy1yZXZlYWwsLnBhc3N3b3JkLWlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5wYXNzd29yZC1pbnB1dDo6LXdlYmtpdC1jcmVkZW50aWFscy1hdXRvLWZpbGwtYnV0dG9uLC5wYXNzd29yZC1pbnB1dDo6LXdlYmtpdC1jb250YWN0cy1hdXRvLWZpbGwtYnV0dG9ue3Zpc2liaWxpdHk6aGlkZGVuO2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7cG9pbnRlci1ldmVudHM6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowfS5wYXNzd29yZC1pbnB1dFt0eXBlPXRleHRde2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyl9LmZpZWxke21hcmdpbi1ib3R0b206MThweH0uZmllbGQtbGFiZWx7ZGlzcGxheTpibG9jaztmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTttYXJnaW4tYm90dG9tOjhweH0uZmllbGQtaW5wdXR7d2lkdGg6MTAwJTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODc1cmVtO2JhY2tncm91bmQ6I2ZmZmZmZmJmO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIyKTtib3JkZXItcmFkaXVzOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtwYWRkaW5nOjEycHggMTRweDtvdXRsaW5lOm5vbmU7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO21pbi1oZWlnaHQ6NDRweH0uZmllbGQtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDAgMjBweCAjYzU2NTNkMTQ7YmFja2dyb3VuZDojZmZmZmZmZTZ9LmZpZWxkLWlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ubW9kYWwtYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjUwMDtiYWNrZ3JvdW5kOiMxNDBlMDg1NztiYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nLXRvcDptYXgoMzJweCx2YXIoLS13YW5kLXNhZmUtdG9wKSk7cGFkZGluZy1ib3R0b206bWF4KDMycHgsdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpO3BhZGRpbmctbGVmdDptYXgoMzJweCx2YXIoLS13YW5kLXNhZmUtbGVmdCkpO3BhZGRpbmctcmlnaHQ6bWF4KDMycHgsdmFyKC0td2FuZC1zYWZlLXJpZ2h0KSk7YW5pbWF0aW9uOmxpcXVpZEJhY2tkcm9wSW4gLjI4cyB2YXIoLS1lYXNlLW91dC1leHBvLCBjdWJpYy1iZXppZXIoLjE2LCAxLCAuMywgMSkpIGJvdGh9Lm1vZGFsLWJhY2tkcm9wLmNsb3Npbmd7YW5pbWF0aW9uOmxpcXVpZEJhY2tkcm9wT3V0IC4xOHMgdmFyKC0tZWFzZS1pbi1vdXQtc21vb3RoLCBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSkgYm90aDtwb2ludGVyLWV2ZW50czpub25lfUBrZXlmcmFtZXMgbGlxdWlkQmFja2Ryb3BJbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX1Aa2V5ZnJhbWVzIGxpcXVpZEJhY2tkcm9wT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fS5tb2RhbHtwb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO21heC13aWR0aDo1NjBweDttYXgtaGVpZ2h0Ojg4dmg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtiYWNrZ3JvdW5kOiNmZmZjZjdiZDtib3JkZXI6LjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC42KTtib3JkZXItcmFkaXVzOjI2cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tkcm9wLWZpbHRlcjpibHVyKDQwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNDBweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDMycHggODBweCAtMTZweCAjMTQwZTA4NTcsMCA4cHggMjRweCAtOHB4ICMxNDBlMDgyZSwwIDAgMCAuNXB4ICM3ZDViMzkxNCxpbnNldCAwIDFweCAjZmZmZmZmYjM7YW5pbWF0aW9uOmxpcXVpZE1vZGFsSW4gLjMycyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSkgYm90aH0ubW9kYWwtYmFja2Ryb3AuY2xvc2luZyAubW9kYWx7YW5pbWF0aW9uOmxpcXVpZE1vZGFsT3V0IC4xOHMgdmFyKC0tZWFzZS1pbi1vdXQtc21vb3RoLCBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSkgYm90aH1Aa2V5ZnJhbWVzIGxpcXVpZE1vZGFsSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOTQpIHRyYW5zbGF0ZVkoMTJweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIGxpcXVpZE1vZGFsT3V0ezAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45NykgdHJhbnNsYXRlWSg0cHgpfX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5tb2RhbC1iYWNrZHJvcCwubW9kYWwtYmFja2Ryb3AuY2xvc2luZywubW9kYWwsLm1vZGFsLWJhY2tkcm9wLmNsb3NpbmcgLm1vZGFse2FuaW1hdGlvbjpub25lIWltcG9ydGFudH19QHN1cHBvcnRzIG5vdCAoKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSBvciAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkpey5tb2RhbC1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMxNDBlMDg5OX0ubW9kYWx7YmFja2dyb3VuZDojZmZmYWYyO2JvcmRlci1jb2xvcjojN2Q1YjM5MmV9fUBtZWRpYShwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsubW9kYWwtYmFja2Ryb3B7YmFja2dyb3VuZDojMDgwNTAyODB9QHN1cHBvcnRzIG5vdCAoKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSBvciAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkpey5tb2RhbC1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMwODA1MDJjN319fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXIsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXJ7cGFkZGluZzoyNHB4IDI4cHggMThweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjE2cHg7bWluLWhlaWdodDowfS5zZXNzaW9uLW1vZGFsIC5tb2RhbC10aXRsZSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLXRpdGxlLWdyb3VwIC5tb2RhbC10aXRsZXtmb250LXNpemU6MS4zMTI1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotLjAyMmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGluZS1oZWlnaHQ6MS4yfS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1zdWJ0aXRsZSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLXN1YnRpdGxle21hcmdpbi10b3A6NXB4O2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo0MDA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41O21heC13aWR0aDo0NGNofS5tb2RhbC1jbG9zZS1idG4sLnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0LC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3R7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDttaW4taGVpZ2h0OjMycHg7cGFkZGluZzowO2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzdkNWIzOTEyO2JvcmRlcjpub25lO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjI4cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSksYm94LXNoYWRvdyAuMThzIGVhc2V9Lm1vZGFsLWNsb3NlLWJ0biBzdmd7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lfS5tb2RhbC1jbG9zZS1idG46aG92ZXIsLnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0OmhvdmVyLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3Q6aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MWY7Y29sb3I6dmFyKC0tZGFuZ2VyKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKTtib3gtc2hhZG93OjAgMnB4IDhweCAjYjI0ZjQ1MmV9Lm1vZGFsLWNsb3NlLWJ0bjphY3RpdmUsLnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0OmFjdGl2ZSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0OmFjdGl2ZXtiYWNrZ3JvdW5kOiNiMjRmNDUzMzt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKSBzY2FsZSguOTIpO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30ubW9kYWwtY2xvc2UtYnRuOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDozcHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWJvZHksLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1ib2R5e3BhZGRpbmc6MjBweCAyOHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXJ7cGFkZGluZzoxNnB4IDI4cHggMjJweDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpfS5zZXNzaW9uLW1vZGFsIC5maWVsZC1pbnB1dCwuc2V0dGluZ3MtbW9kYWwgLmZpZWxkLWlucHV0LC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY2FyZCAuZmllbGQtaW5wdXQsLnNlc3Npb24tbW9kYWwgc2VsZWN0LmZpZWxkLWlucHV0LC5zZXR0aW5ncy1tb2RhbCBzZWxlY3QuZmllbGQtaW5wdXR7YmFja2dyb3VuZDojZmZmZmZmYzc7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTQpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjExcHggMTRweDtib3gtc2hhZG93Omluc2V0IDAgMXB4IDEuNXB4ICM3ZDViMzkwYTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2UsYmFja2dyb3VuZCAuMTVzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2Vzc2lvbi1tb2RhbCAuZmllbGQtaW5wdXQ6aG92ZXIsLnNldHRpbmdzLW1vZGFsIC5maWVsZC1pbnB1dDpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTNkO2JhY2tncm91bmQ6I2ZmZmZmZmVifS5zZXNzaW9uLW1vZGFsIC5maWVsZC1pbnB1dDpmb2N1cywuc2V0dGluZ3MtbW9kYWwgLmZpZWxkLWlucHV0OmZvY3VzLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY2FyZCAuZmllbGQtaW5wdXQ6Zm9jdXMsLnNlc3Npb24tbW9kYWwgc2VsZWN0LmZpZWxkLWlucHV0OmZvY3VzLC5zZXR0aW5ncy1tb2RhbCBzZWxlY3QuZmllbGQtaW5wdXQ6Zm9jdXN7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMS41cHggIzdkNWIzOTBhLDAgMCAwIDNweCB2YXIoLS1hY2NlbnQtbXV0ZWQpfS5zZXNzaW9uLW1vZGFsIC5tb2RlLWNhcmRze2dhcDo4cHh9LnNlc3Npb24tbW9kYWwgLm1vZGUtY2FyZHtwYWRkaW5nOjEycHggMTBweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojZmZmOTtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MDg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2Vzc2lvbi1tb2RhbCAubW9kZS1jYXJkOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZmViO2JvcmRlci1jb2xvcjojN2Q1YjM5MzM7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM3ZDViMzkxNH0uc2Vzc2lvbi1tb2RhbCAubW9kZS1jYXJkLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2YyLCNmZmYwZTBkMSk7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuOCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMCAwIDFweCAjYzU2NTNkNTIsMCAwIDAgNHB4ICNjNTY1M2QyNCwwIDhweCAyMnB4IC00cHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmZmZmZmMixpbnNldCAwIC0xcHggI2M1NjUzZDE0O3RyYW5zZm9ybTpub25lfS5zZXNzaW9uLW1vZGFsIC5tb2RlLWNhcmQuYWN0aXZlIC5tb2RlLWNhcmQtbGFiZWx7Y29sb3I6dmFyKC0tYWNjZW50KX0uc2Vzc2lvbi1tb2RhbCAudG9vbC1jYXJke2JhY2tncm91bmQ6I2ZmZmZmZmIzO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEyKTtib3JkZXItcmFkaXVzOjE0cHg7cGFkZGluZzoxNHB4IDE2cHg7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsYm9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjE4cyBlYXNlO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNlc3Npb24tbW9kYWwgLnRvb2wtY2FyZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiM3ZDViMzkzODt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtib3gtc2hhZG93OjAgOHB4IDIwcHggIzdkNWIzOTFhfS5zZXNzaW9uLW1vZGFsIC50b29sLWNhcmQuYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZjIsI2ZmZjBlMGQxKTtib3JkZXI6LjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC44KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAwIDAgMXB4ICNjNTY1M2Q0ZCwwIDAgMCA0cHggI2M1NjUzZDI0LDAgMTBweCAyOHB4IC02cHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmZmZmZmMixpbnNldCAwIC0xcHggI2M1NjUzZDE0O3RyYW5zZm9ybTpub25lfS5zZXNzaW9uLW1vZGFsIC5yZWNlbnQtcGF0aC1idWJibGV7YmFja2dyb3VuZDojZmZmZmZmOGM7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTIpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ZDViMzkwODt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGJvcmRlci1jb2xvciAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2V9LnNlc3Npb24tbW9kYWwgLnJlY2VudC1wYXRoLWJ1YmJsZTpob3ZlcntiYWNrZ3JvdW5kOiNmZmY3ZWY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xle3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo2cHggOHB4IDZweCAxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDojN2Q1YjM5MGQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJveC1zaGFkb3cgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkxNztib3JkZXItY29sb3I6IzdkNWIzOTI5fS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGU6aGFzKC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQpe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmN2VmLCNmZmVlZDgpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDRweCAxMnB4ICNjNTY1M2QxZn0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWljb257ZmxleC1zaHJpbms6MDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOmNvbG9yIC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjI4cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZTpoYXMoLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCkgLnNlc3Npb24taW5saW5lLXRvZ2dsZS1pY29ue2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnJvdGF0ZSg4ZGVnKX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWxhYmVse2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMDVlbTtjb2xvcjppbmhlcml0O3RyYW5zaXRpb246Y29sb3IgLjE4cyBlYXNlfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC10b2dnbGV7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3dpZHRoOjA7aGVpZ2h0OjA7cG9pbnRlci1ldmVudHM6bm9uZX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlIC5zd2l0Y2gtc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMycHg7aGVpZ2h0OjIwcHg7bWluLXdpZHRoOjMycHg7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6IzdkNWIzOTM4O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4ICM3ZDViMzkyZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjIycyBlYXNlLGJveC1zaGFkb3cgLjIycyBlYXNlfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC1zbGlkZXI6YWZ0ZXJ7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O2xlZnQ6MnB4O3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmO2JveC1zaGFkb3c6MCAxLjVweCAzcHggIzE0MGUwODM4LDAgMCAwIC41cHggIzdkNWIzOTBmO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCsuc3dpdGNoLXNsaWRlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggIzAwMDAwMDFhfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCsuc3dpdGNoLXNsaWRlcjphZnRlcnt0cmFuc2Zvcm06dHJhbnNsYXRlKDEycHgpfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC10b2dnbGU6Zm9jdXMtdmlzaWJsZSsuc3dpdGNoLXNsaWRlcntvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1raW5kLWhpbnQtcm93e2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTRweH0uc2Vzc2lvbi1tb2RhbCAuc3VnZ2VzdGlvbnN7YmFja2dyb3VuZDojZmZmY2Y3ZjU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTQpO2JvcmRlci1yYWRpdXM6MTJweDtib3gtc2hhZG93OjAgMCAwIC41cHggIzdkNWIzOTBkLDAgMTJweCAyOHB4IC04cHggIzE0MGUwODJlO2JhY2tkcm9wLWZpbHRlcjpibHVyKDIwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7b3ZlcmZsb3c6aGlkZGVufS5zZXNzaW9uLW1vZGFsIC5zdWdnZXN0aW9uLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDojZThjNWFlNTJ9LnNlc3Npb24tbW9kYWwgLmVycm9yLW1lc3NhZ2UsLnNldHRpbmdzLW1vZGFsIC5lcnJvci1tZXNzYWdle2JhY2tncm91bmQ6I2IyNGY0NTFhO2JvcmRlcjoxcHggc29saWQgcmdiYSgxNzgsNzksNjksLjIpO2NvbG9yOnZhcigtLWRhbmdlcik7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MTBweCAxMnB4O2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNlc3Npb24tbW9kYWwgLmZpZWxkLWxhYmVsLC5zZXR0aW5ncy1tb2RhbCAuZmllbGQtbGFiZWx7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMDtmb250LXNpemU6LjgxMjVyZW07bWFyZ2luLWJvdHRvbTo4cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlciAuYnRuLXByaW1hcnksLnNldHRpbmdzLW1vZGFsIC5idG4tcHJpbWFyeXtib3gtc2hhZG93OjAgNnB4IDE2cHggLTRweCAjYzU2NTNkNjYsMCAycHggNnB4IC0ycHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmYzO2JvcmRlci1yYWRpdXM6MTJweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tcHJpbWFyeTpob3Zlciwuc2V0dGluZ3MtbW9kYWwgLmJ0bi1wcmltYXJ5OmhvdmVye2JveC1zaGFkb3c6MCAxMHB4IDI0cHggLTRweCAjYzU2NTNkNzUsMCA0cHggMTBweCAtMnB4ICNjNTY1M2Q1NyxpbnNldCAwIDFweCAjZmZmZmZmNDB9LnNlc3Npb24tbW9kYWwgLmJ0bi1zZWNvbmRhcnksLnNldHRpbmdzLW1vZGFsIC5idG4tc2Vjb25kYXJ5e2JhY2tncm91bmQ6I2ZmZmZmZmM3O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE0KTtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MGE7Ym9yZGVyLXJhZGl1czoxMnB4fS5zZXNzaW9uLW1vZGFsIC5idG4tc2Vjb25kYXJ5OmhvdmVyLC5zZXR0aW5ncy1tb2RhbCAuYnRuLXNlY29uZGFyeTpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiM3ZDViMzkzZDtib3gtc2hhZG93OjAgNHB4IDEycHggIzdkNWIzOTE0fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2lkZWJhcntib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCk7cGFkZGluZy1yaWdodDoxMnB4fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2lkZWJhci10aXRsZXtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDhlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYnN7Z2FwOjJweH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYntwYWRkaW5nOjExcHggMTRweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3gtc2hhZG93Om5vbmU7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTRzIGVhc2UsY29sb3IgLjE0cyBlYXNlLHRyYW5zZm9ybSAuMTRzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYjpiZWZvcmV7ZGlzcGxheTpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTBmO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7dHJhbnNmb3JtOm5vbmU7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLmFjdGl2ZXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmN2YyLCNmZmY0ZThjNyk7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNjNTY1M2Q0MCxpbnNldCAwIDFweCAjZmZmZmZmZTYsaW5zZXQgMCAtMXB4ICNjNTY1M2QxNCwwIDRweCAxNHB4IC00cHggI2M1NjUzZDM4LDAgMXB4IDNweCAjN2Q1YjM5MGZ9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWIuYWN0aXZlIC5zZXR0aW5ncy10YWItbWV0YXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWItbWFpbntmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi1tZXRhe2ZvbnQtc2l6ZTouNzEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLWhlYWRlcnttYXJnaW46MCAwIDE2cHg7cGFkZGluZy1ib3R0b206MTRweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtdGl0bGV7Zm9udC1zaXplOjEuMTg3NXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LS4wMmVtfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtZGVzY3tmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1jYXJkLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFib3V0LWluZm8sLnNldHRpbmdzLW1vZGFsIC5wcmVzZXQtaXRlbXtiYWNrZ3JvdW5kOiNmZmZmZmZhNjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTtib3JkZXItcmFkaXVzOjE2cHg7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hYm91dC1yb3d7Ym9yZGVyLWJvdHRvbS1jb2xvcjojN2Q1YjM5MTR9LnNldHRpbmdzLW1vZGFsIC5zd2l0Y2gtY2FyZC1saXN0e2dhcDo4cHh9LnNldHRpbmdzLW1vZGFsIC5zd2l0Y2gtY2FyZHtiYWNrZ3JvdW5kOiNmZmY5O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MDg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnN3aXRjaC1jYXJkOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZmQ5O2JvcmRlci1jb2xvcjojN2Q1YjM5MmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM3ZDViMzkwZn0uc2V0dGluZ3MtbW9kYWwgLnN3aXRjaC1jYXJkOmhhcyguc3dpdGNoLXRvZ2dsZTpjaGVja2VkKXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZjdlZiwjZmZmMWRlKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDFweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgNHB4IDEycHggI2M1NjUzZDFhfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdG9nZ2xlLXJvdywuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXJhbmdlLXJvd3tiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCk7Ym9yZGVyLXJhZGl1czoxMnB4O2JveC1zaGFkb3c6MCAxcHggMXB4ICM3ZDViMzkwNTtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY2FyZC1pY29uLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2VjdGlvbi1pY29ue2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjYzU2NTNkMjksI2M1NjUzZDBmKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTgpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZjk7Y29sb3I6dmFyKC0tYWNjZW50KX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbntiYWNrZ3JvdW5kOiNmZmZmZmZhNjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTtib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE2cyBlYXNlO2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb246aG92ZXJ7YmFja2dyb3VuZDojZmZmO2JvcmRlci1jb2xvcjojN2Q1YjM5MzM7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMnB4ICM3ZDViMzkxNH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbi5zZWxlY3RlZCwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvblthcmlhLXByZXNzZWQ9dHJ1ZV17YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY3ZWYsI2ZmZjFkZSk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDRweCAxMnB4ICNjNTY1M2QxZn0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNvbm5lY3QtdXJsLWJveHtiYWNrZ3JvdW5kOiM3ZDViMzkwZDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym9yZGVyLXJhZGl1czoxMnB4fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYWN0aW9ucy1zdGlja3l7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjcwMCwjZmZmY2Y3ZDkgMjhweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDhweCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1zZWN0aW9uLXRpdGxle2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjAwNWVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9QG1lZGlhKG1heC13aWR0aDo2NDBweCl7LnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlciwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcntwYWRkaW5nOjE2cHggMThweCAxNHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1ib2R5LC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtYm9keXtwYWRkaW5nOjE0cHggMThweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVye3BhZGRpbmc6MTJweCAxOHB4IDE4cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLXRpdGxlLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXAgLm1vZGFsLXRpdGxle2ZvbnQtc2l6ZToxLjEyNXJlbX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZToxLjA2MjVyZW19fS5zaWRlYmFye2JhY2tncm91bmQ6I2ZmZmNmN2I4O2JvcmRlci1yaWdodDouNXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjU1KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigzNnB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDM2cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MGYsNHB4IDAgMzJweCAtOHB4ICMxNDBlMDgyZX0uc2lkZWJhci5vcGVue2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MGYsMTJweCAwIDQ4cHggLTEycHggIzE0MGUwODQ3fS5zaWRlYmFyLnBpbm5lZHtib3gtc2hhZG93OjAgMCAwIC41cHggIzdkNWIzOTBmLDJweCAwIDEycHggLThweCAjMTQwZTA4MWZ9LmRyYXdlci1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMxNDBlMDg1MjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpfS5kcmF3ZXItYmFja2Ryb3Aub3BlbntiYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpfS5zaWRlYmFyLWhlYWRlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wNik7cGFkZGluZzoxNHB4IDE2cHh9LnNpZGViYXItdGl0bGV7Zm9udC1zaXplOi45Mzc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotLjAxMmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnNlc3Npb24tY291bnR7YmFja2dyb3VuZDojN2Q1YjM5MTQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3BhZGRpbmc6MnB4IDlweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo3MDA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2xpbmUtaGVpZ2h0OjEuNX0uc2lkZWJhci1oZWFkZXItYWN0aW9ucyAuYnRuLWdob3N0LmJ0bi1zbSwuZHJhd2VyLWNsb3NlLWJ0bnt3aWR0aDozMnB4O2hlaWdodDozMnB4O21pbi13aWR0aDozMnB4O21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjA7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2JvcmRlcjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMjJzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKX0uc2lkZWJhci1oZWFkZXItYWN0aW9ucyAuYnRuLWdob3N0LmJ0bi1zbTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5kcmF3ZXItY2xvc2UtYnRue2JhY2tncm91bmQ6IzdkNWIzOTEyfS5kcmF3ZXItY2xvc2UtYnRuOmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTFmO2NvbG9yOnZhcigtLWRhbmdlcik7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmRyYXdlci1jbG9zZS1idG46YWN0aXZle2JhY2tncm91bmQ6I2IyNGY0NTMzO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpIHNjYWxlKC45Mik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5kcmF3ZXItY2xvc2UtYnRuOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDozcHh9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93e2JhY2tncm91bmQ6I2ZmZmNmN2RiO2JvcmRlcjouNXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjU1KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigyNHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDI0cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MTQsMCAxMnB4IDI4cHggLThweCAjMTQwZTA4Mzg7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6NnB4fS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbXtib3JkZXItcmFkaXVzOjlweDtwYWRkaW5nOjlweCAxMHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVtOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmZmZmZTYsI2ZmZmNmNzk5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MTQsaW5zZXQgMCAxcHggI2ZmZmZmZmQ5fS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdyAub3ZlcmZsb3ctaXRlbTphY3RpdmV7YmFja2dyb3VuZDojYzU2NTNkMWY7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06c2NhbGUoLjk4KX0uc2Vzc2lvbi1tYW5hZ2UtYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjhweDtwYWRkaW5nOjRweCA0cHggNHB4IDEwcHg7Ym9yZGVyLXJhZGl1czoxMHB4O21hcmdpbi1ib3R0b206MTBweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2V9LnNlc3Npb24tbWFuYWdlLWJhcjpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkwZH0uc2Vzc2lvbi1tYW5hZ2UtYmFyIC5zaWRlYmFyLWludHJve2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGV0dGVyLXNwYWNpbmc6LjAwNWVtfS5zZXNzaW9uLW1hbmFnZS1iYXIuYWN0aXZle3Bvc2l0aW9uOnN0aWNreTt0b3A6MDt6LWluZGV4OjY7bWFyZ2luOi0xMHB4IC0xMHB4IDhweDtwYWRkaW5nOjlweCAxMHB4IDlweCA2cHg7Ym9yZGVyLXJhZGl1czowO2JhY2tncm91bmQ6I2ZmZmJmNWYwOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOnNhdHVyYXRlKDEuMikgYmx1cig4cHgpO2JhY2tkcm9wLWZpbHRlcjpzYXR1cmF0ZSgxLjIpIGJsdXIoOHB4KTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2hhZG93Om5vbmV9LnNlc3Npb24tbWFuYWdlLWJhci5hY3RpdmU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjB9LnNlc3Npb24tbWFuYWdlLWV4aXR7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7cGFkZGluZzowO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNHMgZWFzZSxjb2xvciAuMTRzIGVhc2U7LXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOnRyYW5zcGFyZW50fS5zZXNzaW9uLW1hbmFnZS1leGl0OmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTFhO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnNlc3Npb24tbWFuYWdlLXN1bW1hcnl7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttaW4td2lkdGg6MDtmbGV4OjE7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NTAwfS5zZXNzaW9uLW1hbmFnZS1jb3VudHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO21pbi13aWR0aDoyMHB4O2hlaWdodDoxOHB4O3BhZGRpbmc6MCA2cHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSk7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uc2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeS1sYWJlbHtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NjAwfS5zZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVsLm11dGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjUwMH0uc2Vzc2lvbi1tYW5hZ2UtYWN0aW9uc3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1tYW5hZ2UtdG9nZ2xle2dhcDo1cHh9LmNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1jbGVhci1idG57bWFyZ2luLWxlZnQ6YXV0b30uc2Vzc2lvbi1ncm91cC10aXRsZXtwYWRkaW5nOjEwcHggNnB4IDhweDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi4xZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnNlc3Npb24tZ3JvdXAtdGl0bGU6YmVmb3Jle3dpZHRoOjNweDtoZWlnaHQ6MTJweDtib3JkZXItcmFkaXVzOjk5OXB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQpLHJnYmEoMTk3LDEwMSw2MSwuNCkpO29wYWNpdHk6MX0uc2Vzc2lvbi1pdGVte2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjExcHg7cGFkZGluZzo5cHggMTJweDttYXJnaW4tYm90dG9tOjJweDtib3gtc2hhZG93Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlfS5zZXNzaW9uLWl0ZW06YmVmb3Jle2xlZnQ6NHB4O3RvcDo5cHg7Ym90dG9tOjlweDt3aWR0aDozcHg7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWFjY2VudCkscmdiYSgxOTcsMTAxLDYxLC41KSl9LnNlc3Npb24taXRlbTpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkwZjtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LnNlc3Npb24taXRlbTpob3ZlcjpiZWZvcmV7b3BhY2l0eTowfS5zZXNzaW9uLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZWIsI2ZmZjRlOGJkKTtib3JkZXItY29sb3I6I2M1NjUzZDQ3O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjhjfS5zZXNzaW9uLWl0ZW0uYWN0aXZlOmJlZm9yZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlWSgxKX0uc2Vzc2lvbi1pdGVtLnNlbGVjdGVke2JhY2tncm91bmQ6I2M1NjUzZDE3O2JvcmRlci1jb2xvcjojYzU2NTNkMmV9LnNlc3Npb24taXRlbS5zZWxlY3RlZDpiZWZvcmV7b3BhY2l0eTouNzt0cmFuc2Zvcm06c2NhbGVZKDEpfS5zZXNzaW9uLWl0ZW06YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTkyKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wOHN9LnNlc3Npb24tdGl0bGUsLnNlc3Npb24tY29tbWFuZHtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnNlc3Npb24tdGl0bGUtcm93e2dhcDoxMHB4fS5zZXNzaW9uLXRpbWV7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uc2Vzc2lvbi1hY3Rpdml0eXtvcGFjaXR5OjE7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXdlaWdodDo1MDB9LnNlc3Npb24tc3RhdHVze3BhZGRpbmc6MnB4IDhweDtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW19LnNlc3Npb24taWR7YmFja2dyb3VuZDojN2Q1YjM5MTQ7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7Zm9udC1zaXplOi42MjVyZW07cGFkZGluZzoxLjVweCA2cHg7Ym9yZGVyLXJhZGl1czo0cHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4O21pbi1oZWlnaHQ6MjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiM3ZDViMzkwZjtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtib3JkZXI6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGNvbG9yIC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE4cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSl9LnNlc3Npb24tYWN0aW9uLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiM3ZDViMzkyNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfS5zZXNzaW9uLWFjdGlvbi1idG4uZGVsZXRlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUyNDtjb2xvcjp2YXIoLS1kYW5nZXIpfS5zZXNzaW9uLWFjdGlvbi1idG4ubWVyZ2UtYnRuOmhvdmVye2JhY2tncm91bmQ6IzRmN2E1ODI5O2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5zZXNzaW9uLWFjdGlvbi1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5zZXNzaW9uLWFjdGlvbi1idG46Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgc3Bhbnt3aWR0aDoyMHB4O2hlaWdodDoyMHB4O2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMjIpO2JhY2tncm91bmQ6I2ZmZjk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggIzdkNWIzOTBhO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgaW5wdXQ6Y2hlY2tlZCtzcGFue2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMXB4IDNweCAjYzU2NTNkNGQsaW5zZXQgMCAxcHggI2ZmZjN9LnNlc3Npb24tbWFuYWdlLWNoZWNrIGlucHV0OmNoZWNrZWQrc3BhbjphZnRlcntjb250ZW50OiIiO3dpZHRoOjZweDtoZWlnaHQ6MTBweDtib3JkZXItcmlnaHQ6MnB4IHNvbGlkICNmZmY7Ym9yZGVyLWJvdHRvbToycHggc29saWQgI2ZmZjt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKSB0cmFuc2xhdGUoLTFweCwtMXB4KX0uc2lkZWJhci1mb290ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDYpO3BhZGRpbmc6MTRweH0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRue2JhY2tncm91bmQ6I2ZmZmZmZjczO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA2KTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo4cHggNHB4O2dhcDo0cHg7Zm9udC1zaXplOi42MjVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMWVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZmQ5O2JvcmRlci1jb2xvcjojN2Q1YjM5Mjk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgMnB4IDhweCAjN2Q1YjM5MGZ9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Nik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4uYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZjIsI2ZmZjJlNGM3KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMjgpO2NvbG9yOnZhcigtLWFjY2VudCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgM3B4IDEwcHggLTNweCAjYzU2NTNkMzgsaW5zZXQgMCAxcHggI2ZmZmZmZmIzfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4uc2lkZWJhci1sb2dvdXQ6aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MTQ7Ym9yZGVyLWNvbG9yOiNiMjRmNDUzMztjb2xvcjp2YXIoLS1kYW5nZXIpO29wYWNpdHk6MX0uc2lkZWJhci1mb290ZXIgLmJ0bi1wcmltYXJ5e2JveC1zaGFkb3c6MCA2cHggMTZweCAtNHB4ICNjNTY1M2Q2NiwwIDJweCA2cHggLTJweCAjYzU2NTNkNGQsaW5zZXQgMCAxcHggI2ZmZjM7Ym9yZGVyLXJhZGl1czoxMnB4fS5zaWRlYmFyLWZvb3RlciAuYnRuLXByaW1hcnk6aG92ZXJ7Ym94LXNoYWRvdzowIDEwcHggMjRweCAtNHB4ICNjNTY1M2Q3NSwwIDRweCAxMHB4IC0ycHggI2M1NjUzZDU3LGluc2V0IDAgMXB4ICNmZmZmZmY0MH0uc2Vzc2lvbnMtbGlzdDplbXB0eTpiZWZvcmV7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44MTI1cmVtO2xldHRlci1zcGFjaW5nOi4wMWVtfUBzdXBwb3J0cyBub3QgKChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpKXsuc2lkZWJhcntiYWNrZ3JvdW5kOiNmZmZiZjVmYX0uZHJhd2VyLWJhY2tkcm9we2JhY2tncm91bmQ6IzE0MGUwODhjfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvd3tiYWNrZ3JvdW5kOiNmZmZhZjJ9fS5tb2RhbC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjE4cHggMjJweCAxNnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2ZsZXgtc2hyaW5rOjA7bWluLWhlaWdodDo1NnB4fS5tb2RhbC10aXRsZXtmb250LXNpemU6MS4wNjI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi0uMDFlbX0ubW9kYWwtYm9keXtwYWRkaW5nOjIycHg7b3ZlcmZsb3cteTphdXRvO2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowfS5tb2RhbC1ib2R5IC5maWVsZHttYXJnaW4tYm90dG9tOjE0cHh9Lm1vZGFsLWJvZHkgLmZpZWxkOmxhc3Qtb2YtdHlwZXttYXJnaW4tYm90dG9tOjE2cHh9LnNlc3Npb24ta2luZC1oaW50LXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4fS5zZXNzaW9uLWtpbmQtaGludC1yb3cgI3Nlc3Npb24ta2luZC1kZXNjcmlwdGlvbntmbGV4OjEgMSBhdXRvfS5zZXNzaW9uLWlubGluZS10b2dnbGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDt3aGl0ZS1zcGFjZTpub3dyYXA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmV9LnNlc3Npb24taW5saW5lLXRvZ2dsZS1sYWJlbHtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LmZpZWxkLWhpbnR7bWFyZ2luLXRvcDo2cHg7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjV9LnRvb2wtY2FyZHt3aWR0aDoxMDAlO3RleHQtYWxpZ246bGVmdDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4yKTtib3JkZXItcmFkaXVzOjE0cHg7YmFja2dyb3VuZDojZmZmZmZmYTY7cGFkZGluZzoxNHB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9vbC1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQtc29mdCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCk7Ym94LXNoYWRvdzowIDhweCAyNHB4ICM1OTNhMjAxYTtiYWNrZ3JvdW5kOiNmZmZmZmZkOX0udG9vbC1jYXJkLmFjdGl2ZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNmZmY3ZWZmYTtib3gtc2hhZG93OjAgMCAwIDJweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgNnB4IDIwcHggIzU5M2EyMDE0fXNlbGVjdC5maWVsZC1pbnB1dHthcHBlYXJhbmNlOm5vbmU7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTQnIGhlaWdodD0nMTQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjM4YzczNWYnIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BhdGggZD0nTTYgOWw2IDYgNi02Jy8lM0UlM0Mvc3ZnJTNFIik7YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtcG9zaXRpb246cmlnaHQgMTRweCBjZW50ZXI7cGFkZGluZy1yaWdodDo0MHB4O2N1cnNvcjpwb2ludGVyfS5zdWdnZXN0aW9ucy13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlfS5zdWdnZXN0aW9uc3twb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygxMDAlICsgNHB4KTtsZWZ0OjA7cmlnaHQ6MDt6LWluZGV4OjUwO2JhY2tncm91bmQ6I2ZmZmFmNGZhO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTttYXgtaGVpZ2h0OjIwMHB4O292ZXJmbG93LXk6YXV0b30uc3VnZ2VzdGlvbi1pdGVte3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0O3BhZGRpbmc6MTBweCAxMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtjdXJzb3I6cG9pbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc3VnZ2VzdGlvbi1pdGVtOmhvdmVye2JhY2tncm91bmQ6I2U4YzVhZTU3fS5zdWdnZXN0aW9uLWl0ZW0gc21hbGx7ZGlzcGxheTpibG9jaztmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDoycHh9LnN1Z2dlc3Rpb24taXRlbS1wYXRoe2Rpc3BsYXk6YmxvY2s7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKX0ucmVjZW50LXBhdGhzLWJ1YmJsZXN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo1cHg7bWFyZ2luLXRvcDo2cHh9LnJlY2VudC1wYXRocy1idWJibGVzOmVtcHR5e2Rpc3BsYXk6bm9uZX0ucmVjZW50LXBhdGgtYnViYmxle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MnB4IDEwcHg7YmFja2dyb3VuZDojZThjNWFlMmU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czo5OTlweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjY4NzVyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7d2hpdGUtc3BhY2U6bm93cmFwO21heC13aWR0aDoxODBweDtvdmVyZmxvdzpoaWRkZW59LnJlY2VudC1wYXRoLWJ1YmJsZS1wYXRoe21pbi13aWR0aDowO21heC13aWR0aDoxMDAlfS5yZWNlbnQtcGF0aC1idWJibGU6aG92ZXJ7YmFja2dyb3VuZDojZThjNWFlNjY7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1ob3ZlciwgdmFyKC0tYm9yZGVyLWRlZmF1bHQpKTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5lcnJvci1tZXNzYWdle2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tZGFuZ2VyKTtwYWRkaW5nOjEwcHggMTJweDtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO21hcmdpbi10b3A6MTJweDthbmltYXRpb246c2hha2UgLjNzIGVhc2V9QGtleWZyYW1lcyBzaGFrZXswJSx0b3t0cmFuc2Zvcm06dHJhbnNsYXRlKDApfTI1JXt0cmFuc2Zvcm06dHJhbnNsYXRlKC00cHgpfTc1JXt0cmFuc2Zvcm06dHJhbnNsYXRlKDRweCl9fS5maWVsZC1pbnB1dFtkYXRhLWVycm9yPXRydWVde2JvcmRlci1jb2xvcjp2YXIoLS1kYW5nZXIpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHZhcigtLWRhbmdlci1tdXRlZCl9LmhpbnR7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21hcmdpbi10b3A6MTJweH0uZW1wdHktc3RhdGV7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo0MHB4IDIwcHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44MTI1cmVtfS5lbXB0eS1zdGF0ZSBzdHJvbmd7ZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOi45NXJlbTttYXJnaW4tYm90dG9tOjhweDtmb250LXdlaWdodDo2MDB9LmhpZGRlbntkaXNwbGF5Om5vbmUhaW1wb3J0YW50fS5vZmZsaW5lLWJhbm5lcntwb3NpdGlvbjpmaXhlZDtib3R0b206ODBweDtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpO2JhY2tncm91bmQ6dmFyKC0td2FybmluZyk7Y29sb3I6I2ZmZjtwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NTAwO3otaW5kZXg6MTAwO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWVsZXZhdGVkKTthbmltYXRpb246c2xpZGVVcCAuM3MgZWFzZX1Aa2V5ZnJhbWVzIHNsaWRlVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgyMHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKDApfX06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjZweDtoZWlnaHQ6NnB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTRkO2JvcmRlci1yYWRpdXM6M3B4fTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojOTY3NjU1ODB9LnNlc3Npb25zLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjRweH0uc2Vzc2lvbnMtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uc2Vzc2lvbnMtbGlzdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1NDA7Ym9yZGVyLXJhZGl1czoycHh9LnNlc3Npb25zLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6Izk2NzY1NTY2fTpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fWJ1dHRvbjpmb2N1cy12aXNpYmxle291dGxpbmUtb2Zmc2V0OjB9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnNpZGViYXIucGlubmVkOm5vdCguY29sbGFwc2VkKTpub3QoLm9wZW4pe3RyYW5zZm9ybTp0cmFuc2xhdGUoLTEwMCUpO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZDpub3QoLnNpZGViYXItY29sbGFwc2VkKXtwYWRkaW5nLWxlZnQ6MH0uYXBwLWNvbnRhaW5lcnstLWxheW91dC1tYWluLWZpbGUtcGFuZWwtd2lkdGg6IDBweH0uc2lkZWJhcnt3aWR0aDptaW4oMzAwcHgsY2FsYygxMDB2dyAtIDIwcHgpKTt0b3A6MH0udGVybWluYWwtY29udGFpbmVye21hcmdpbjowIDZweCA2cHg7bWluLWhlaWdodDowfS5idG57bWluLWhlaWdodDo0MHB4fS5idG4tc217bWluLWhlaWdodDozNnB4O3BhZGRpbmc6MCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07aGVpZ2h0OjM2cHh9LmJ0bi1pY29ue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWluLWhlaWdodDozNnB4fS5jaGF0LWNvbnRhaW5lcntwYWRkaW5nOjAgMTJweCAxMnB4fS5jaGF0LW1lc3NhZ2V7bWF4LXdpZHRoOjEwMCV9LnNlc3Npb24taXRlbXttaW4taGVpZ2h0OjUycHg7cGFkZGluZzoxMnB4fS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6MzZweDtoZWlnaHQ6MzZweDttaW4td2lkdGg6MzZweDttaW4taGVpZ2h0OjM2cHh9LnNlc3Npb24tbWFuYWdlLWJhciAuYnRue21pbi1oZWlnaHQ6MzJweH0uY2xhdWRlLWhpc3RvcnktdG9nZ2xle21pbi1oZWlnaHQ6NDBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG57bWluLWhlaWdodDo0NHB4fS50cmVlLWl0ZW17bWluLWhlaWdodDo0NHB4O3BhZGRpbmc6OHB4IDEycHh9LmZvbGRlci1waWNrZXItaXRlbXttaW4taGVpZ2h0OjQ0cHh9fUBtZWRpYShtaW4td2lkdGg6NzY5cHgpey5kcmF3ZXItYmFja2Ryb3B7ZGlzcGxheTpub25lfX1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXs6cm9vdHstLXNpZGViYXItd2lkdGg6IDI4MHB4Oy0tZmlsZS1wYW5lbC13aWR0aDogMTAwJX0uYXBwLWNvbnRhaW5lcnstLWxheW91dC1tYWluLWZpbGUtcGFuZWwtd2lkdGg6IDBweH1odG1sLGJvZHl7bWluLWhlaWdodDoxMDBkdmg7aGVpZ2h0OjEwMGR2aH1ib2R5e292ZXJmbG93OmhpZGRlbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0uYXBwLWNvbnRhaW5lcntvdmVyZmxvdzpoaWRkZW59LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xle3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo2cHh9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlIC5oYW1idXJnZXItaWNvbnt3aWR0aDoxM3B4O2hlaWdodDo5cHh9LnNpZGViYXJ7dG9wOjB9LnNpZGViYXItaGVhZGVye3BhZGRpbmc6MTBweCAxMnB4O21pbi1oZWlnaHQ6NDhweDtnYXA6OHB4fS5zaWRlYmFyLWhlYWRlci1hY3Rpb25ze2dhcDo0cHh9LnNpZGViYXItZm9vdGVyLWFjdGlvbnN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg0LDFmcik7Z2FwOjRweH0uc2lkZWJhci1mb290ZXItYWN0aW9uczpoYXMoLnNpZGViYXItYmFjay10by1uYXRpdmUpOmhhcyguc2lkZWJhci1zd2l0Y2gtc2VydmVyKXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDUsMWZyKX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRue21pbi1oZWlnaHQ6NDBweDtwYWRkaW5nOjZweCA0cHh9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0biBzcGFue2Rpc3BsYXk6bm9uZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuIHN2Z3t3aWR0aDoxOHB4O2hlaWdodDoxOHB4fS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvd3ttaW4td2lkdGg6MTgwcHg7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyNHB4KX0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cgLm92ZXJmbG93LWl0ZW17cGFkZGluZzoxMXB4IDE0cHg7Zm9udC1zaXplOi44NzVyZW19LnRlcm1pbmFsLWhlYWRlcntwYWRkaW5nOjVweCA4cHg7bWluLWhlaWdodDozMnB4fS50ZXJtaW5hbC10aXRsZXtnYXA6NHB4O2ZvbnQtc2l6ZTouNjg3NXJlbX0udGVybWluYWwtaW5mb3tmb250LXNpemU6LjU2MjVyZW19LmN1cnJlbnQtdGFza3tmb250LXNpemU6LjU2MjVyZW07cGFkZGluZzoxcHggNnB4IDFweCA0cHg7Z2FwOjNweH0ubWFpbi1oZWFkZXItcm93e3BhZGRpbmc6MnB4IDZweDtnYXA6NHB4fS50b3BiYXItYnJhbmQsLnRvcGJhci1jd2R7ZGlzcGxheTpub25lfS50b3BiYXItc2Vzc2lvbi10aXRsZXttYXgtd2lkdGg6MTQwcHg7Zm9udC1zaXplOi43OHJlbX0uc2Vzc2lvbi1zdGF0dXMtcGlsbHtmb250LXNpemU6LjYyNXJlbTtwYWRkaW5nOjFweCA3cHggMXB4IDVweDttYXgtd2lkdGg6MTEwcHh9LnNlc3Npb24tc3RhdHVzLXBpbGwgLnNlc3Npb24tc3RhdHVzLWRvdHt3aWR0aDo1cHg7aGVpZ2h0OjVweH0udG9wYmFyLW1vcmUtbWVudXttaW4td2lkdGg6MTU2cHh9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXl7dG9wOjZweDtyaWdodDo2cHg7cGFkZGluZzoycHg7Z2FwOjFweH0udGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG57bWluLXdpZHRoOjI2cHg7aGVpZ2h0OjI2cHg7Zm9udC1zaXplOi43NXJlbX0udGVybWluYWwtc2NhbGUtb3ZlcmxheS1sYWJlbHttaW4td2lkdGg6MjhweDtmb250LXNpemU6LjU2MjVyZW07cGFkZGluZzowIDJweH0ubWFpbi1sYXlvdXR7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MTttaW4taGVpZ2h0OjA7aGVpZ2h0OjEwMCU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctbGVmdDowfS5zaWRlYmFye3RvcDowO3dpZHRoOm1pbigyNjBweCxjYWxjKDEwMHZ3IC0gMTJweCkpO21heC1oZWlnaHQ6bm9uZTtib3JkZXItYm90dG9tOm5vbmV9Lm1haW4tY29udGVudHtmbGV4OjE7bWluLWhlaWdodDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVufS50ZXJtaW5hbC1jb250YWluZXJ7ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjA7bWF4LWhlaWdodDpub25lfS5zZXNzaW9ucy1saXN0e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47ZmxleDoxIDAgYXV0bzttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6dmlzaWJsZTtwYWRkaW5nOjRweH0uc2Vzc2lvbi1pdGVte3dpZHRoOjEwMCU7bWF4LXdpZHRoOm5vbmU7bWFyZ2luLWJvdHRvbTo0cHg7cGFkZGluZzo4cHggMTBweDttaW4taGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czo2cHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDozMnB4O2hlaWdodDozMnB4O21pbi1oZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDtib3JkZXItcmFkaXVzOjZweH0uaW5wdXQtcGFuZWx7ei1pbmRleDozMDtwYWRkaW5nOjRweCA2cHg7cGFkZGluZy1ib3R0b206Y2FsYyg2cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpICsgdmFyKC0ta2V5Ym9hcmQtb2Zmc2V0LCAwcHgpKTtmbGV4OjAgMCBhdXRvO21hcmdpbi10b3A6YXV0bztiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2Y2ZjFlODgwLCNmNmYxZThlMCAzMCUsI2Y2ZjFlOCksI2Y2ZjFlODtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KX0uaW5wdXQtdGV4dGFyZWF7cGFkZGluZy1ib3R0b206NHB4fS5pbnB1dC1jb21wb3Nlcntib3JkZXItcmFkaXVzOjE0cHg7Ym94LXNoYWRvdzowIDNweCAxNHB4ICM1OTNhMjAxMn0uYnRuLWNpcmNsZXt3aWR0aDoyNnB4O2hlaWdodDoyNnB4O2JvcmRlci1yYWRpdXM6NTAlfS5idG4tY2lyY2xlLXNlbmQgc3ZnLC5idG4tY2lyY2xlLXN0b3Agc3Zne3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LmlucHV0LXRleHRhcmVhLC5maWVsZC1pbnB1dHtmb250LXNpemU6MTZweH0uaW5wdXQtdGV4dGFyZWF7bWluLWhlaWdodDozMnB4O3BhZGRpbmc6N3B4IDMwcHggNXB4IDhweDtmb250LXNpemU6MTZweDtsaW5lLWhlaWdodDoxLjM1fS5pbnB1dC10ZXh0YXJlYTo6cGxhY2Vob2xkZXJ7Zm9udC1zaXplOjE1cHh9LmNoYXQtbW9kZS1zZWxlY3R7bWF4LXdpZHRoOjY1cHg7Zm9udC1zaXplOi41NjI1cmVtO2hlaWdodDoyMnB4O21pbi1oZWlnaHQ6MjJweDtwYWRkaW5nOjAgMTRweCAwIDRweDtib3JkZXItcmFkaXVzOjVweH0uaW5wdXQtaGludHtmb250LXNpemU6LjQ1cmVtO21heC13aWR0aDoxOGNoO29wYWNpdHk6LjZ9LnRlcm1pbmFsLWp1bXAtYm90dG9te3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7cGFkZGluZzowO3JpZ2h0OjEwcHg7Ym90dG9tOjEycHh9LmNoYXQtdW5yZWFkLWJ1YmJsZXtoZWlnaHQ6MzBweDttaW4td2lkdGg6MzBweDtyaWdodDoxMHB4O2JvdHRvbTo4cHg7cGFkZGluZzowIDlweDtmb250LXNpemU6LjcycmVtfS5jaGF0LXVucmVhZC1idWJibGUuaGFzLXVucmVhZHtwYWRkaW5nOjAgMTFweCAwIDlweH0uY2hhdC11bnJlYWQtYnViYmxlLWNvdW50e2ZvbnQtc2l6ZTouNzJyZW19Lm1pbmkta2V5Ym9hcmQtZmFie3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7Ym90dG9tOjUwcHg7cmlnaHQ6MTBweDtmb250LXNpemU6MXJlbX0ubWluaS1rZXlib2FyZHtib3R0b206NTBweDtyaWdodDo4cHg7bGVmdDo4cHg7bWluLXdpZHRoOjA7Ym9yZGVyLXJhZGl1czoxMHB4fS5jaGF0LWNvbnRhaW5lcnttaW4taGVpZ2h0OjA7ZmxleDoxIDEgYXV0bztvdmVyZmxvdzpoaWRkZW47ZGlzcGxheTpub25lO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uY2hhdC1jb250YWluZXIuYWN0aXZle2Rpc3BsYXk6ZmxleH0uZm9sZGVyLXBpY2tlci1jb250YWluZXJ7bWFyZ2luLWJvdHRvbTo0cHh9LmZvbGRlci1waWNrZXItcXVpY2stYnRue21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjZweCAxMHB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtib3JkZXItcmFkaXVzOjZweH0uZm9sZGVyLWJyZWFkY3J1bWJ7cGFkZGluZzo0cHggNnB4O2ZvbnQtc2l6ZTouNTYyNXJlbTttYXJnaW4tYm90dG9tOjNweDtvdmVyZmxvdy14OmF1dG87LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2g7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXgtd3JhcDpub3dyYXB9LmZvbGRlci1waWNrZXJ7cGFkZGluZzo4cHggMTBweDttaW4taGVpZ2h0OjM2cHh9LmZvbGRlci1waWNrZXItaW5wdXR7Zm9udC1zaXplOjE2cHg7cGFkZGluZzo2cHh9LmZvbGRlci1waWNrZXItZHJvcGRvd257bWF4LWhlaWdodDoxODBweH0uZm9sZGVyLXBpY2tlci1pdGVte3BhZGRpbmc6OHB4IDEwcHg7bWluLWhlaWdodDozNnB4fS5mb2xkZXItcmVjZW50LWl0ZW17cGFkZGluZzo2cHggMTBweDttaW4taGVpZ2h0OjM2cHh9LmZvbGRlci1waWNrZXItY29tcGFjdC1yb3d7cGFkZGluZzo2cHh9LmZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dHtmb250LXNpemU6LjYyNXJlbX0ud29ya2luZy1kaXItaW5kaWNhdG9ye2ZvbnQtc2l6ZTouNTYyNXJlbTtwYWRkaW5nOjFweCA0cHg7bWF4LXdpZHRoOjEyMHB4fS50b2RvLXByb2dyZXNzLWhlYWRlcntwYWRkaW5nOjNweCA2cHg7Z2FwOjRweH0udG9kby1wcm9ncmVzcy1jb3VudGVyLC50b2RvLXByb2dyZXNzLXRhc2t7Zm9udC1zaXplOi41NjI1cmVtfS50b2RvLXByb2dyZXNzLWNoZXZyb257d2lkdGg6MTJweDtoZWlnaHQ6MTJweH0udG9kby1wcm9ncmVzcy1ib2R5e3BhZGRpbmc6NHB4IDZweH0ubG9naW4tY29udGFpbmVye21pbi1oZWlnaHQ6MTAwZHZoO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7cGFkZGluZzo4cHggOHB4IGNhbGMoOHB4ICsgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpfS5sb2dpbi1jYXJke21hcmdpbi10b3A6bWF4KDZweCxlbnYoc2FmZS1hcmVhLWluc2V0LXRvcCwwcHgpKX0ubG9naW4taGVhZGVye3BhZGRpbmc6MTRweCAxMnB4IDEwcHh9LmxvZ2luLWJvZHl7cGFkZGluZzoxMnB4fS5idG57bWluLWhlaWdodDo0MHB4fS5idG4tc217bWluLWhlaWdodDozMnB4fS5jaGF0LW1lc3NhZ2UtYnViYmxle3BhZGRpbmc6OHB4IDEwcHg7Zm9udC1zaXplOi43NXJlbX0uY2hhdC1tZXNzYWdlLWF2YXRhcntmb250LXNpemU6LjY4NzVyZW19Lm1vZGFsLWJhY2tkcm9we3BhZGRpbmc6OHB4O3BhZGRpbmctdG9wOm1heCg4cHgsdmFyKC0td2FuZC1zYWZlLXRvcCkpO3BhZGRpbmctbGVmdDptYXgoOHB4LHZhcigtLXdhbmQtc2FmZS1sZWZ0KSk7cGFkZGluZy1yaWdodDptYXgoOHB4LHZhcigtLXdhbmQtc2FmZS1yaWdodCkpO2FsaWduLWl0ZW1zOmZsZXgtZW5kfS5tb2RhbHttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0Ojg1dmg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpIHZhcigtLXJhZGl1cy1tZCkgMCAwO21hcmdpbi1ib3R0b206dmFyKC0tc2FmZS1ib3R0b20sIDBweCl9Lm1vZGFsLWhlYWRlcntwYWRkaW5nOjEwcHggMTJweDttaW4taGVpZ2h0OjQwcHh9Lm1vZGFsLWJvZHl7cGFkZGluZzoxMHB4IDEycHh9Lm1vZGFsLWZvb3RlcntwYWRkaW5nOjhweCAxMnB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXJ7cGFkZGluZzoxMHB4IDEycHggMTRweH0udG9vbC1jYXJke3BhZGRpbmc6MTBweDttaW4taGVpZ2h0OjM2cHh9Lm1haW4tY29udGVudC5maWxlLXBhbmVsLW9wZW57bWFyZ2luLXJpZ2h0OjB9LmZpbGUtc2lkZS1wYW5lbHt3aWR0aDoxMDAlfS5maWxlLXNpZGUtcGFuZWwtaGVhZGVye3BhZGRpbmc6MTBweCAxMnB4O21pbi1oZWlnaHQ6NDhweH0uZmlsZS1zaWRlLXBhbmVsLWljb25idG57d2lkdGg6MzRweDtoZWlnaHQ6MzRweH0uZmlsZS1leHBsb3Jlci1oZWFkZXJ7cGFkZGluZzo2cHggMTBweCA0cHg7Z2FwOjZweH0uZmlsZS1leHBsb3Jlci11cHt3aWR0aDozMnB4O2hlaWdodDozMnB4fS5maWxlLXNlYXJjaC1ib3h7cGFkZGluZzo2cHggMTBweCA4cHh9LmZpbGUtc2VhcmNoLWljb257bGVmdDoyMHB4fS5maWxlLXNlYXJjaC1jbGVhcntyaWdodDoxNnB4fS5maWxlLXNlYXJjaC1pbnB1dHttaW4taGVpZ2h0OjM0cHg7Zm9udC1zaXplOjE2cHg7cGFkZGluZzo3cHggMzJweCA3cHggMzBweH0uYmxhbmstY2hhdHtwYWRkaW5nOjE2cHggMTJweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5ibGFuay1jaGF0LWlubmVye21heC13aWR0aDoxMDAlfS5ibGFuay1jaGF0LWxvZ297d2lkdGg6NDhweDtoZWlnaHQ6NDhweDtmb250LXNpemU6MjRweDtib3JkZXItcmFkaXVzOjEycHg7bWFyZ2luLWJvdHRvbToxMHB4fS5ibGFuay1jaGF0LXRpdGxle2ZvbnQtc2l6ZToxLjEyNXJlbX0uYmxhbmstY2hhdC1zdWJ0aXRsZXtmb250LXNpemU6Ljc1cmVtO21hcmdpbi1ib3R0b206MTZweH0uYmxhbmstY2hhdC10b29sc3tnYXA6NHB4O21hcmdpbi1ib3R0b206OHB4fS5ibGFuay1jaGF0LXRvb2wtYnRue3BhZGRpbmc6NnB4IDEwcHg7Zm9udC1zaXplOi43NXJlbTttaW4taGVpZ2h0OjQ0cHh9Lm5vdGlmaWNhdGlvbi1idWJibGV7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyNHB4KX0uYmxhbmstY2hhdC1jd2QtZHJvcGRvd257bWluLXdpZHRoOjA7d2lkdGg6Y2FsYygxMDB2dyAtIDMycHgpO21heC13aWR0aDozMjBweH0udG9hc3QtbWVzc2FnZXttYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDMycHgpfX1AbWVkaWEobWluLXdpZHRoOjM5MXB4KWFuZCAobWF4LXdpZHRoOjQyMHB4KXsudGVybWluYWwtY29udGFpbmVye21hcmdpbjowIDZweCA2cHg7cGFkZGluZzo2cHh9LmlucHV0LXBhbmVse3BhZGRpbmc6NnB4IDEwcHg7cGFkZGluZy1ib3R0b206Y2FsYyg4cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpKX19QG1lZGlhKG1heC13aWR0aDozOTBweCl7LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xle3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHh9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlIC5oYW1idXJnZXItaWNvbnt3aWR0aDoxMXB4O2hlaWdodDo4cHh9LnRlcm1pbmFsLWhlYWRlcntwYWRkaW5nOjRweCA2cHg7bWluLWhlaWdodDoyOHB4fS50ZXJtaW5hbC1pbmZve2Rpc3BsYXk6bm9uZX0udGVybWluYWwtY29udGFpbmVye21hcmdpbjowIDRweCA0cHg7cGFkZGluZzo0cHh9LmlucHV0LXBhbmVse3BhZGRpbmc6NXB4IDZweDtwYWRkaW5nLWJvdHRvbTpjYWxjKDZweCArIHZhcigtLWlucHV0LXNhZmUtYm90dG9tLCB2YXIoLS1zYWZlLWJvdHRvbSwgMHB4KSkpfS5pbnB1dC1jb21wb3Nlcntib3JkZXItcmFkaXVzOjhweH0uaW5wdXQtdGV4dGFyZWF7bWluLWhlaWdodDoyOHB4O3BhZGRpbmc6NXB4IDI4cHggMnB4IDZweDtmb250LXNpemU6MTZweH0uYnRuLWNpcmNsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4fS5zZXNzaW9uLWl0ZW17cGFkZGluZzo2cHggOHB4O21pbi1oZWlnaHQ6NDBweH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7bWluLXdpZHRoOjMwcHg7bWluLWhlaWdodDozMHB4fS5zaWRlYmFye3RvcDowO3dpZHRoOm1pbigyNDBweCxjYWxjKDEwMHZ3IC0gMTBweCkpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25ze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zOmhhcyguc2lkZWJhci1iYWNrLXRvLW5hdGl2ZSk6aGFzKC5zaWRlYmFyLXN3aXRjaC1zZXJ2ZXIpe2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNSwxZnIpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4gc3BhbntkaXNwbGF5Om5vbmV9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bnttaW4taGVpZ2h0OjM2cHg7cGFkZGluZzo2cHh9Lm1vZGFse21heC1oZWlnaHQ6ODB2aH0ubW9kYWwtaGVhZGVye3BhZGRpbmc6OHB4IDEwcHg7bWluLWhlaWdodDozNnB4fS5tb2RhbC1ib2R5e3BhZGRpbmc6OHB4IDEwcHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlcntwYWRkaW5nOjhweCAxMHB4IDEycHh9LmZpZWxkLXJvd3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDowfS5idG57bWluLWhlaWdodDozNnB4O3BhZGRpbmc6OHB4IDEycHh9LmJ0bi1zbXttaW4taGVpZ2h0OjI4cHg7cGFkZGluZzo0cHggOHB4fX1AbWVkaWEobWluLXdpZHRoOjY0MXB4KWFuZCAobWF4LXdpZHRoOjc2OHB4KXsuc2lkZWJhcnt0b3A6MDt3aWR0aDptaW4oMzIwcHgsY2FsYygxMDB2dyAtIDQwcHgpKX0uc2Vzc2lvbi1pdGVte21pbi1oZWlnaHQ6NTJweDtwYWRkaW5nOjExcHggMTJweH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7bWluLXdpZHRoOjM0cHg7bWluLWhlaWdodDozNHB4fS5idG57bWluLWhlaWdodDo0MnB4fS5idG4tc217bWluLWhlaWdodDozNnB4fS5mbG9hdGluZy10b2dnbGV7bWluLXdpZHRoOjQ4cHg7bWluLWhlaWdodDo0OHB4fX1AbWVkaWEobWF4LWhlaWdodDo0MjBweClhbmQgKG9yaWVudGF0aW9uOmxhbmRzY2FwZSl7LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xle3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHh9LnNpZGViYXJ7dG9wOjB9LnRlcm1pbmFsLWNvbnRhaW5lcnttaW4taGVpZ2h0OjU1dmg7bWFyZ2luOjZweDtwYWRkaW5nOjhweH0uY2hhdC1jb250YWluZXJ7cGFkZGluZzowIDEwcHggOHB4fS5pbnB1dC1wYW5lbHtwYWRkaW5nOjhweDtwYWRkaW5nLWJvdHRvbTpjYWxjKDhweCArIHZhcigtLWlucHV0LXNhZmUtYm90dG9tLCB2YXIoLS1zYWZlLWJvdHRvbSwgMHB4KSkpfX1AbWVkaWEobWF4LXdpZHRoOjQ4MHB4KXsuY2hhdC1jb250YWluZXJ7cGFkZGluZzowIDZweCA4cHh9LmNoYXQtbWVzc2FnZXN7cGFkZGluZy1sZWZ0OjJweDtwYWRkaW5nLXJpZ2h0OjJweDtnYXA6MTJweH0uY2hhdC1tZXNzYWdley0tY2hhdC1jYXJkLW1heC13aWR0aDogMTAwJX0udG9vbC11c2UtaGVhZGVye2ZsZXgtd3JhcDp3cmFwO3Jvdy1nYXA6NHB4O3BhZGRpbmc6OHB4IDEycHh9LnRvb2wtdXNlLWZpbGV7bWF4LXdpZHRoOjEwMCV9LnRvb2wtdXNlLWJvZHl7cGFkZGluZzoxMHB4IDEycHh9LnN1YmFnZW50LXJlcGx5e3BhZGRpbmc6OXB4IDEycHh9LnN1YmFnZW50LXJlcGx5LmNvbGxhcHNpYmxle3BhZGRpbmc6MH0uc3ViYWdlbnQtcmVwbHkuZmluYWx7cGFkZGluZzo5cHggMTFweH0uc3ViYWdlbnQtcGFuZWx7bWFyZ2luOjZweCAwfS5zdWJhZ2VudC1wYW5lbC1oZWFkZXJ7cGFkZGluZzo3cHggMTBweDtnYXA6NnB4O2ZvbnQtc2l6ZTouNzRyZW07ZmxleC13cmFwOndyYXB9LnN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9ue3doaXRlLXNwYWNlOm5vcm1hbDtsaW5lLWhlaWdodDoxLjR9LnN1YmFnZW50LXBhbmVsLWNvdW50e21hcmdpbi1sZWZ0OmF1dG99LnN1YmFnZW50LXBhbmVsLXRhZ3ttYXJnaW46MCA0cHg7cGFkZGluZzowIDRweH0uc3ViYWdlbnQtcGFuZWwtYm9keXtoZWlnaHQ6MjYwcHg7cGFkZGluZzo5cHggMTFweH0uc3ViYWdlbnQtcGFuZWxbZGF0YS1leHBhbmRlZD1mYWxzZV0gLnN1YmFnZW50LXBhbmVsLWJvZHksLnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9dHJ1ZV0gLnN1YmFnZW50LXBhbmVsLWJvZHl7aGVpZ2h0OjI2MHB4O21heC1oZWlnaHQ6bm9uZX0uc3ViYWdlbnQtcGFuZWwtZm9vdGVye3BhZGRpbmc6NXB4IDEwcHh9LnN1YmFnZW50LXBhbmVsLWZvb3Rlci1oaW50e2Rpc3BsYXk6bm9uZX0ubWFya2Rvd24tY29udGVudCAuY29kZS1ibG9ja3ttYXJnaW46OHB4IDB9Lm1hcmtkb3duLWNvbnRlbnQgcHJlLC5tYXJrZG93bi1jb250ZW50IC5jb2RlLWJsb2NrIHByZSwuc3ViYWdlbnQtcmVwbHkgcHJle3BhZGRpbmc6MTBweH0uZGlmZi1jb2x1bW5ze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZGlmZi1jb2wsLmRpZmYtY29sLWhhbGYsLmRpZmYtY29sLWZ1bGx7ZmxleDoxIDEgYXV0bzt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlfS50ZXJtLWhlYWRlciwuZGlmZi1oZWFkZXJ7ZmxleC13cmFwOndyYXA7cm93LWdhcDo0cHh9LmRpZmYtcGF0aHtmbGV4LWJhc2lzOjEwMCU7b3JkZXI6OTl9LmlubGluZS10b29sLXJvd3tmbGV4LXdyYXA6d3JhcDtyb3ctZ2FwOjJweH0uaW5saW5lLXRvb2wtbWV0YXttYXgtd2lkdGg6MTAwJTtmbGV4LWJhc2lzOjEwMCU7cGFkZGluZy1sZWZ0OjIycHh9fS5zZXNzaW9uLWtpbmQtYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjE4cHg7cGFkZGluZzowIDZweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAxZW07Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtmbGV4LXNocmluazowfS5zZXNzaW9uLWtpbmQtYmFkZ2UucHR5e2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtiYWNrZ3JvdW5kOiM3ODgwOGMxZjtib3JkZXItY29sb3I6Izc4ODA4YzJlfS5zZXNzaW9uLWtpbmQtYmFkZ2Uuc3RydWN0dXJlZHtjb2xvcjojZDE4YjUyO2JhY2tncm91bmQ6I2Q3N2E1MjFhO2JvcmRlci1jb2xvcjojZDc3YTUyMzh9LnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZXtjb2xvcjojMmY2ZjU0O2JhY2tncm91bmQ6IzRmN2E1ODFmO2JvcmRlci1jb2xvcjojNGY3YTU4Mzh9LnNlc3Npb24ta2luZC1kaXNwbGF5e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MXB4IDZweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6IzhhNGIyNDtiYWNrZ3JvdW5kOiNkNzdhNTIxZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjE1LDEyMiw4MiwuMil9LnN0cnVjdHVyZWQtdG9vbC1oaW50e21hcmdpbjo0cHggMCA4cHg7cGFkZGluZzo2cHggMTBweDtib3JkZXItcmFkaXVzOjEwcHg7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOiNkNzdhNTIxNDtib3JkZXI6MXB4IGRhc2hlZCByZ2JhKDIxNSwxMjIsODIsLjE4KX0uYmxhbmstY2hhdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleDoxO3BhZGRpbmc6MjBweCAxNnB4O21pbi1oZWlnaHQ6MDtvdmVyZmxvdzphdXRvfS5ibGFuay1jaGF0LWlubmVye3dpZHRoOjEwMCU7bWF4LXdpZHRoOjU2MHB4O3RleHQtYWxpZ246Y2VudGVyfS5ibGFuay1jaGF0LWxvZ297d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Q3N2E1MiwjYTk1MTMwKTtib3JkZXItcmFkaXVzOjE2cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmO21hcmdpbjowIGF1dG8gMTRweDtib3gtc2hhZG93OjAgNHB4IDE2cHggI2M1NjUzZDM4fS5ibGFuay1jaGF0LXRpdGxle2ZvbnQtc2l6ZToxLjM3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW46MCAwIDZweH0uYmxhbmstY2hhdC1zdWJ0aXRsZXtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luOjAgMCAyMHB4fS5ibGFuay1jaGF0LXRvb2xze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLWJvdHRvbToxMnB4O2ZsZXgtd3JhcDp3cmFwfS5ibGFuay1jaGF0LXRvb2wtYnRue3BhZGRpbmc6OHB4IDE0cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojZmZmZmZmYjM7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O21pbi1oZWlnaHQ6NDBweH0uYmxhbmstY2hhdC10b29sLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNHB4IDEycHggIzU5M2EyMDE0fS5ibGFuay1jaGF0LXRvb2wtYnRuIC50b29sLWljb257Zm9udC1zaXplOjEuMTI1cmVtfS5ibGFuay1jaGF0LWN3ZC13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi10b3A6OHB4fS5ibGFuay1jaGF0LWN3ZHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZzo0cHggOHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTt0cmFuc2l0aW9uOmNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3VzZXItc2VsZWN0Om5vbmV9LmJsYW5rLWNoYXQtY3dkOmhvdmVye2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpfS5ibGFuay1jaGF0LWN3ZC1pY29ue2ZvbnQtc2l6ZTouODEyNXJlbX0uYmxhbmstY2hhdC1jd2QtcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO21heC13aWR0aDoyODBweDtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5ibGFuay1jaGF0LWN3ZC1wYXRoOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6M3B4fS5ibGFuay1jaGF0LWN3ZC1wYXRoOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTU1Mjtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0uYmxhbmstY2hhdC1jd2Q6aG92ZXIgLmJsYW5rLWNoYXQtY3dkLXBhdGh7c2Nyb2xsYmFyLXdpZHRoOnRoaW59LmJsYW5rLWNoYXQtY3dkOmhvdmVyIC5ibGFuay1jaGF0LWN3ZC1wYXRoOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NHB4fS5ibGFuay1jaGF0LWN3ZC1hcnJvd3tmb250LXNpemU6LjYyNXJlbTtvcGFjaXR5Oi42O3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmJsYW5rLWNoYXQtY3dkLWRyb3Bkb3due3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7bWluLXdpZHRoOjI2MHB4O21heC13aWR0aDo0MDBweDttYXgtaGVpZ2h0OjI0MHB4O292ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3gtc2hhZG93OjAgNHB4IDE2cHggIzAwMDAwMDFhO3otaW5kZXg6NTA7bWFyZ2luLXRvcDo0cHg7cGFkZGluZzo0cHh9LmJsYW5rLWNoYXQtY3dkLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5ibGFuay1jaGF0LWN3ZC1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpfS5ibGFuay1jaGF0LWN3ZC1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXdlaWdodDo1MDB9LmJsYW5rLWNoYXQtY3dkLWl0ZW0tbGFiZWx7Zm9udC1zaXplOi42MjVyZW07YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCk7cGFkZGluZzoxcHggNXB4O2JvcmRlci1yYWRpdXM6M3B4O2ZvbnQtd2VpZ2h0OjUwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmJsYW5rLWNoYXQtY3dkLWl0ZW0tcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3doaXRlLXNwYWNlOm5vd3JhcH0uYmxhbmstY2hhdC1jd2QtbG9hZGluZ3twYWRkaW5nOjhweCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dGV4dC1hbGlnbjpjZW50ZXJ9LmNoYXQtbW9kZS1zZWxlY3R7Zm9udC1mYW1pbHk6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmV9LmNoYXQtbW9kZS1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LnRvYXN0LW1lc3NhZ2V7cG9zaXRpb246Zml4ZWQ7dG9wOjI0cHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTtwYWRkaW5nOjEwcHggMjBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Zm9udC1zaXplOi44NzVyZW07ei1pbmRleDo5OTk5O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWxnKTthbmltYXRpb246dG9hc3QtaW4gLjIycyBjdWJpYy1iZXppZXIoLjM0LDEuNTYsLjY0LDEpfS50b2FzdC1lcnJvcntiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcik7Y29sb3I6I2ZmZn1Aa2V5ZnJhbWVzIHRvYXN0LWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoLTEycHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoMCl9fS5ub3RpZmljYXRpb24tYnViYmxle3Bvc2l0aW9uOmZpeGVkO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7ei1pbmRleDoxMDAwMDttaW4td2lkdGg6MjIwcHg7bWF4LXdpZHRoOjMyMHB4O2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1sZyk7cGFkZGluZzo4cHggMTJweDthbmltYXRpb246bm90aWZpY2F0aW9uLXNsaWRlLWluIC4zcyBjdWJpYy1iZXppZXIoLjM0LDEuNTYsLjY0LDEpO3RyYW5zaXRpb246dG9wIC4yNXMgZWFzZSxvcGFjaXR5IC4yNXMgZWFzZX0ubm90aWZpY2F0aW9uLWJ1YmJsZS5zbGlkZS1vdXR7YW5pbWF0aW9uOm5vdGlmaWNhdGlvbi1zbGlkZS1vdXQgLjI1cyBlYXNlIGZvcndhcmRzO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9Lm5vdGlmaWNhdGlvbi1idWJibGUtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttYXJnaW4tYm90dG9tOjJweH0ubm90aWZpY2F0aW9uLWJ1YmJsZS1pY29ue3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2ZvbnQtc2l6ZToxMHB4fS5ub3RpZmljYXRpb24tYnViYmxlLWljb24uaW5mb3tiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLWJ1YmJsZS1pY29uLndhcm5pbmd7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nKTtjb2xvcjojZmZmfS5ub3RpZmljYXRpb24tYnViYmxlLWljb24uc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2NvbG9yOiNmZmZ9Lm5vdGlmaWNhdGlvbi1idWJibGUtdGl0bGV7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tZmctcHJpbWFyeSk7ZmxleDoxO21pbi13aWR0aDowfS5ub3RpZmljYXRpb24tYnViYmxlLWNsb3Nle2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS1mZy1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTtwYWRkaW5nOjFweCAzcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2ZsZXgtc2hyaW5rOjB9Lm5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2U6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy1ob3Zlcik7Y29sb3I6dmFyKC0tZmctcHJpbWFyeSl9Lm5vdGlmaWNhdGlvbi1idWJibGUtYm9keXtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tZmctc2Vjb25kYXJ5KTtsaW5lLWhlaWdodDoxLjQ7bWFyZ2luLWJvdHRvbTowO21heC1oZWlnaHQ6NC4yZW07b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjM7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnN7bWFyZ2luLXRvcDo2cHg7ZGlzcGxheTpmbGV4O2dhcDo2cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9ue2ZvbnQtc2l6ZTouN3JlbTtwYWRkaW5nOjJweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6cG9pbnRlcjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLWZnLXByaW1hcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctaG92ZXIpfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uLnByaW1hcnl7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b24ucHJpbWFyeTpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygxLjEpfUBrZXlmcmFtZXMgbm90aWZpY2F0aW9uLXNsaWRlLWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoLTIwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgbm90aWZpY2F0aW9uLXNsaWRlLW91dHswJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKDApfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoLTIwcHgpfX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbjpkaXNhYmxlZHtvcGFjaXR5Oi42O2N1cnNvcjpub3QtYWxsb3dlZDtmaWx0ZXI6bm9uZX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbi5zdWNjZXNze2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcyk7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyl9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b24uc3VjY2Vzczpob3Zlcjpub3QoOmRpc2FibGVkKXtmaWx0ZXI6YnJpZ2h0bmVzcygxLjEpfS5ub3RpZmljYXRpb24tYnViYmxlLnVwZGF0ZS1jYXJke3dpZHRoOm1pbigzNjBweCxjYWxjKDEwMHZ3IC0gMjRweCkpO21heC13aWR0aDptaW4oMzYwcHgsY2FsYygxMDB2dyAtIDI0cHgpKTttaW4td2lkdGg6MDtwYWRkaW5nOjE0cHggMTRweCAxMnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgxMjAlIDEyMCUgYXQgMCUgMCUsdmFyKC0tYWNjZW50LW11dGVkKSAwJSx0cmFuc3BhcmVudCA1NSUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYmctZWxldmF0ZWQpIDAlLHZhcigtLWJnLXByaW1hcnkpIDEwMCUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteGwpLDAgMCAwIDFweCAjZmZmNiBpbnNldDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGV9LnVwZGF0ZS1jYXJkLXNoaW5le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMTVkZWcsdHJhbnNwYXJlbnQgMCUscmdiYSgyNTUsMjU1LDI1NSwuMTgpIDQ1JSxyZ2JhKDI1NSwyNTUsMjU1LC4zMikgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE4KSA1NSUsdHJhbnNwYXJlbnQgMTAwJSk7YmFja2dyb3VuZC1zaXplOjIyMCUgMTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEyMCUgMDttaXgtYmxlbmQtbW9kZTpvdmVybGF5O29wYWNpdHk6LjY1O2FuaW1hdGlvbjp1cGRhdGUtY2FyZC1zaGluZSA2cyBlYXNlLWluLW91dCBpbmZpbml0ZTt6LWluZGV4OjB9QGtleWZyYW1lcyB1cGRhdGUtY2FyZC1zaGluZXswJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEyMCUgMH01NSV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjAlIDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjotMjAlIDB9fS51cGRhdGUtY2FyZC5pcy1zdWNjZXNze2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAwJSAwJSx2YXIoLS1zdWNjZXNzLW11dGVkKSAwJSx0cmFuc3BhcmVudCA1NSUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYmctZWxldmF0ZWQpIDAlLHZhcigtLWJnLXByaW1hcnkpIDEwMCUpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy14bCksMCAwIDAgMXB4ICNmZmY2IGluc2V0LHZhcigtLXNoYWRvdy1nbG93LXN1Y2Nlc3MpfS51cGRhdGUtY2FyZC1oZWFkZXJ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMHB4fS51cGRhdGUtY2FyZC1pY29ue3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7ZmxleC1zaHJpbms6MDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOiNmZmY7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTtib3gtc2hhZG93OjAgNHB4IDEycHggdmFyKC0tYWNjZW50LWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY1OX0udXBkYXRlLWNhcmQuaXMtc3VjY2VzcyAudXBkYXRlLWNhcmQtaWNvbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tc3VjY2VzcykgMCUsdmFyKC0tc3VjY2Vzcy1ob3ZlcikgMTAwJSk7Ym94LXNoYWRvdzowIDRweCAxMnB4IHZhcigtLXN1Y2Nlc3MtZ2xvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjU5fS51cGRhdGUtY2FyZC1oZWFkaW5ne2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnVwZGF0ZS1jYXJkLXRpdGxle2ZvbnQtc2l6ZTouODhyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LjAxZW07bGluZS1oZWlnaHQ6MS4yNX0udXBkYXRlLWNhcmQtc3VidGl0bGV7Zm9udC1zaXplOi43MnJlbTtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtsaW5lLWhlaWdodDoxLjM1fS51cGRhdGUtY2FyZC1jbG9zZXtmbGV4LXNocmluazowO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyxjb2xvciAuMTVzfS51cGRhdGUtY2FyZC1jbG9zZTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS51cGRhdGUtY2FyZC12ZXJzaW9ue3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW46MTJweCAwIDEwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDpub3dyYXB9LnVwZGF0ZS1jYXJkLXZlcnNpb24tY2hpcHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIHVpLW1vbm9zcGFjZSwgIlNGIE1vbm8iLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSk7Zm9udC1zaXplOi43NHJlbTtmb250LXdlaWdodDo2MDA7cGFkZGluZzozcHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO3doaXRlLXNwYWNlOm5vd3JhcH0udXBkYXRlLWNhcmQtdmVyc2lvbi1jdXJyZW50e2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpfS51cGRhdGUtY2FyZC12ZXJzaW9uLWxhdGVzdHtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMXB4IDZweCB2YXIoLS1hY2NlbnQtZ2xvdyl9LnVwZGF0ZS1jYXJkLmlzLXN1Y2Nlc3MgLnVwZGF0ZS1jYXJkLXZlcnNpb24tbGF0ZXN0e2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6MCAxcHggNnB4IHZhcigtLXN1Y2Nlc3MtZ2xvdyl9LnVwZGF0ZS1jYXJkLXZlcnNpb24tYXJyb3d7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MH0udXBkYXRlLWNhcmQtcHJvZ3Jlc3N7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2hlaWdodDowO292ZXJmbG93OmhpZGRlbjttYXJnaW46MDt0cmFuc2l0aW9uOmhlaWdodCAuMjVzIGVhc2UsbWFyZ2luIC4yNXMgZWFzZX0udXBkYXRlLWNhcmQtcHJvZ3Jlc3MuYWN0aXZle2hlaWdodDo2cHg7bWFyZ2luOjAgMCAxMHB4fS51cGRhdGUtY2FyZC1wcm9ncmVzcy10cmFja3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO292ZXJmbG93OmhpZGRlbn0udXBkYXRlLWNhcmQtcHJvZ3Jlc3MtZmlsbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0Oi00MCU7d2lkdGg6NDAlO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTtib3gtc2hhZG93OjAgMCAxMHB4IHZhcigtLWFjY2VudC1nbG93KTthbmltYXRpb246dXBkYXRlLWNhcmQtcHJvZ3Jlc3Mtc3dlZXAgMS40cyBjdWJpYy1iZXppZXIoLjY1LC4wNSwuMzUsMSkgaW5maW5pdGV9QGtleWZyYW1lcyB1cGRhdGUtY2FyZC1wcm9ncmVzcy1zd2VlcHswJXtsZWZ0Oi00NSU7d2lkdGg6NDAlfTUwJXtsZWZ0OjI1JTt3aWR0aDo1NSV9dG97bGVmdDoxMDUlO3dpZHRoOjQwJX19LnVwZGF0ZS1jYXJkLXN0YXR1c3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7Zm9udC1zaXplOi43MnJlbTtsaW5lLWhlaWdodDoxLjQ7cGFkZGluZzo2cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7bWFyZ2luLWJvdHRvbToxMHB4O2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS51cGRhdGUtY2FyZC1zdGF0dXMuZXJyb3J7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2NvbG9yOnZhcigtLWRhbmdlcik7Ym9yZGVyLWNvbG9yOnZhcigtLWRhbmdlcil9LnVwZGF0ZS1jYXJkLXN0YXR1cy5zdWNjZXNze2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Y29sb3I6dmFyKC0tc3VjY2Vzcyk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpfS51cGRhdGUtY2FyZC1hY3Rpb25ze3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDo4cHh9LnVwZGF0ZS1jYXJkLWFjdGlvbntmb250LXNpemU6Ljc4cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjdweCAxNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyBlYXNlLGZpbHRlciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2V9LnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgNHB4IDEycHggdmFyKC0tYWNjZW50LWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY0MH0udXBkYXRlLWNhcmQtYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KDpkaXNhYmxlZCl7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDZweCAxNnB4IHZhcigtLWFjY2VudC1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNGR9LnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoOmRpc2FibGVkKXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtmaWx0ZXI6YnJpZ2h0bmVzcyguOTYpfS51cGRhdGUtY2FyZC1hY3Rpb246ZGlzYWJsZWR7b3BhY2l0eTouNztjdXJzb3I6cHJvZ3Jlc3M7ZmlsdGVyOm5vbmU7dHJhbnNmb3JtOm5vbmV9LnVwZGF0ZS1jYXJkLmlzLXN1Y2Nlc3MgLnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1zdWNjZXNzKSAwJSx2YXIoLS1zdWNjZXNzLWhvdmVyKSAxMDAlKTtib3gtc2hhZG93OjAgNHB4IDEycHggdmFyKC0tc3VjY2Vzcy1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNDB9LnVwZGF0ZS1jYXJkLmlzLXN1Y2Nlc3MgLnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2JveC1zaGFkb3c6MCA2cHggMTZweCB2YXIoLS1zdWNjZXNzLWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY0ZH0ucmVzdGFydC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ei1pbmRleDo5OTk5OTtiYWNrZ3JvdW5kOiMwMDAwMDBhNjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2Ryb3AtZmlsdGVyOmJsdXIoNHB4KTthbmltYXRpb246cmVzdGFydC1mYWRlLWluIC4zcyBlYXNlfS5yZXN0YXJ0LW92ZXJsYXktY29udGVudHt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmfS5yZXN0YXJ0LXRpdGxle2ZvbnQtc2l6ZToxLjI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90dG9tOjhweH0ucmVzdGFydC1zdWJ0aXRsZXtmb250LXNpemU6LjlyZW07b3BhY2l0eTouOH0ucmVzdGFydC1zcGlubmVye3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWFyZ2luOjAgYXV0byAxNnB4O2JvcmRlcjozcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMjUpO2JvcmRlci10b3AtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246cmVzdGFydC1zcGluIC44cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyByZXN0YXJ0LXNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIHJlc3RhcnQtZmFkZS1pbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0uZmlsZS1wcmV2aWV3LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOiMwMDAwMDA4MDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FuaW1hdGlvbjpmYWRlLWluIC4xNXMgZWFzZX1Aa2V5ZnJhbWVzIGZhZGUtaW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19LnNldHRpbmdzLW1vZGFse3dpZHRoOm1pbigxMDgwcHgsMTAwJSk7bWF4LXdpZHRoOjEwODBweDtoZWlnaHQ6bWluKDg4dmgsOTIwcHgpO21heC1oZWlnaHQ6bWluKDg4dmgsOTIwcHgpO21pbi1oZWlnaHQ6bWluKDg4dmgsOTIwcHgpO292ZXJmbG93OmhpZGRlbn0uc2V0dGluZ3MtbW9kYWwtaGVhZGVye2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjE2cHg7cGFkZGluZy1ib3R0b206MTRweH0uc2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21pbi13aWR0aDowfS5zZXR0aW5ncy1tb2RhbC1zdWJ0aXRsZXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNX0uc2V0dGluZ3MtbW9kYWwtYm9keXtwYWRkaW5nLXRvcDoxOHB4O2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zZXR0aW5ncy1sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoyNjBweCBtaW5tYXgoMCwxZnIpO2dhcDoyMnB4O21pbi1oZWlnaHQ6MDtmbGV4OjEgMSBhdXRvO2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnNldHRpbmdzLWxheW91dD4qe21pbi1oZWlnaHQ6MH0uc2V0dGluZ3Mtc2lkZWJhcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxNHB4O21pbi13aWR0aDowO21pbi1oZWlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjZweDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO292ZXJmbG93OmhpZGRlbn0uc2V0dGluZ3Mtc2lkZWJhci1oZWFkZXIsLnNldHRpbmdzLXNpZGViYXItdGl0bGUsLnNldHRpbmdzLXNpZGViYXItaGludHtmbGV4LXNocmluazowfS5zZXR0aW5ncy1zaWRlYmFyLWhlYWRlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7cGFkZGluZzoycHggNHB4IDB9LnNldHRpbmdzLXNpZGViYXItdGl0bGV7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LjAxZW19LnNldHRpbmdzLXNpZGViYXItaGludHtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNX0uc2V0dGluZ3MtdGFic3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7bWFyZ2luOjA7cGFkZGluZzowIDEwcHggMCAwO21pbi1oZWlnaHQ6MDtvdmVyZmxvdzphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5zZXR0aW5ncy10YWJzOjotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo2cHg7aGVpZ2h0OjZweH0uc2V0dGluZ3MtdGFiczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1Mzg7Ym9yZGVyLXJhZGl1czo5OTlweH0uc2V0dGluZ3MtdGFiczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojOTY3NjU1NWN9LnNldHRpbmdzLXRhYnN7c2Nyb2xsYmFyLXdpZHRoOnRoaW59LnNldHRpbmdzLXRhYntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjRweDt3aWR0aDoxMDAlO3BhZGRpbmc6MTJweCAxNHB4IDEycHggMTZweDtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MTZweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmNvbG9yIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXMsYmFja2dyb3VuZCAuMTVzLGJveC1zaGFkb3cgLjE1cyx0cmFuc2Zvcm0gLjE1czt0ZXh0LWFsaWduOmxlZnR9LnNldHRpbmdzLXRhYjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjEwcHg7Ym90dG9tOjEwcHg7d2lkdGg6M3B4O2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlfS5zZXR0aW5ncy10YWI6aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtiYWNrZ3JvdW5kOiNjNTY1M2QxNDtib3JkZXItY29sb3I6I2M1NjUzZDFmO3RyYW5zZm9ybTp0cmFuc2xhdGUoMnB4KX0uc2V0dGluZ3MtdGFiOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoycHh9LnNldHRpbmdzLXRhYi5hY3RpdmV7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6I2ZmZmZmZmIzO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZWIsI2ZmZjRlOGI4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNjNTY1M2QzOCxpbnNldCAwIDFweCAjZmZmZmZmZTYsaW5zZXQgMCAtMXB4ICNjNTY1M2QwZiwwIDRweCAxNHB4IC00cHggI2M1NjUzZDM4LDAgMXB4IDNweCAjN2Q1YjM5MGF9LnNldHRpbmdzLXRhYi5hY3RpdmU6YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KX0uc2V0dGluZ3MtdGFiLW1haW57Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOmluaGVyaXQ7bGluZS1oZWlnaHQ6MS4zfS5zZXR0aW5ncy10YWItbWV0YXtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjQ1fS5zZXR0aW5ncy10YWIuYWN0aXZlIC5zZXR0aW5ncy10YWItbWV0YXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNldHRpbmdzLWNvbnRlbnR7bWluLXdpZHRoOjA7bWluLWhlaWdodDowO2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG87cGFkZGluZy1yaWdodDo0cHh9LnNldHRpbmdzLXBhbmVse2Rpc3BsYXk6bm9uZTttaW4taGVpZ2h0OjEwMCU7cGFkZGluZzoycHggMnB4IDhweH0uc2V0dGluZ3MtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6OHB4fS5zZXR0aW5ncy1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTUzZDtib3JkZXItcmFkaXVzOjk5OXB4fS5zZXR0aW5ncy1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU2MX0uc2V0dGluZ3MtY29udGVudHtzY3JvbGxiYXItd2lkdGg6dGhpbn0uc2V0dGluZ3MtcGFuZWwuYWN0aXZle2Rpc3BsYXk6YmxvY2s7YW5pbWF0aW9uOmZhZGUtaW4gLjE4cyBlYXNlfS5zZXR0aW5ncy1wYW5lbC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4O21hcmdpbjowIDAgMTRweDtwYWRkaW5nLWJvdHRvbToxMnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMil9LnNldHRpbmdzLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZToxLjA2MjVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0uMDFlbX0uc2V0dGluZ3MtcGFuZWwtZGVzY3tmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2xpbmUtaGVpZ2h0OjEuNTV9LnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1zZWN0aW9uLXRpdGxle21hcmdpbi10b3A6MThweH0uc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLXNlY3Rpb24tdGl0bGU6Zmlyc3Qtb2YtdHlwZXttYXJnaW4tdG9wOjB9LnNldHRpbmdzLXBhbmVsPi5maWVsZC1yb3csLnNldHRpbmdzLXBhbmVsPi5maWVsZCwuc2V0dGluZ3MtcGFuZWw+LmZpZWxkLWhpbnR7bWF4LXdpZHRoOjc2MHB4fS5zZXR0aW5ncy1wYW5lbD4uc3dpdGNoLWNhcmQtbGlzdCwuc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLWNhcmQsLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbiwuc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uLC5zZXR0aW5ncy1wYW5lbD4jcHJlc2V0cy1saXN0e21heC13aWR0aDo4NjBweH0uc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLWNhcmQrLnNldHRpbmdzLWNhcmQsLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbisuc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbisuc2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb257bWFyZ2luLXRvcDoxNHB4fS5zZXR0aW5ncy1wYW5lbFtoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9QG1lZGlhKG1heC13aWR0aDo5MDBweCl7LnNldHRpbmdzLWxheW91dHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjIwcHggbWlubWF4KDAsMWZyKTtnYXA6MThweH19QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnNldHRpbmdzLW1vZGFse3dpZHRoOm1pbigxMDAlLDcyMHB4KTtoZWlnaHQ6bWluKDkydmgsOTIwcHgpO21heC1oZWlnaHQ6bWluKDkydmgsOTIwcHgpO21pbi1oZWlnaHQ6bWluKDkydmgsOTIwcHgpfS5zZXR0aW5ncy1tb2RhbC1ib2R5e292ZXJmbG93LXk6YXV0b30uc2V0dGluZ3MtbGF5b3V0e2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpO2dhcDoxNHB4O2ZsZXg6MCAwIGF1dG99LnNldHRpbmdzLXNpZGViYXJ7cGFkZGluZy1yaWdodDowO2JvcmRlci1yaWdodDpub25lfS5zZXR0aW5ncy10YWJze2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6bm93cmFwO292ZXJmbG93LXg6YXV0bztzY3JvbGxiYXItd2lkdGg6bm9uZTtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1ib3R0b206NHB4fS5zZXR0aW5ncy10YWJzOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LnNldHRpbmdzLXRhYntmbGV4OjAgMCAyMDBweDttaW4taGVpZ2h0OjcycHh9LnNldHRpbmdzLXRhYjpob3Zlcnt0cmFuc2Zvcm06bm9uZX0uc2V0dGluZ3MtY29udGVudHtvdmVyZmxvdzp2aXNpYmxlO3BhZGRpbmctcmlnaHQ6MH19QG1lZGlhKG1heC13aWR0aDo0ODBweCl7LnNldHRpbmdzLXRhYntmbGV4LWJhc2lzOjE4MHB4O3BhZGRpbmc6MTBweCAxMnB4IDEwcHggMTRweH0uc2V0dGluZ3MtdGFiLW1haW57Zm9udC1zaXplOi44MTI1cmVtfS5zZXR0aW5ncy10YWItbWV0YXtmb250LXNpemU6LjY4NzVyZW19fS5zZXR0aW5ncy1hYm91dC1pbmZve2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjA7bWFyZ2luLWJvdHRvbToxOHB4O2JhY2tncm91bmQ6I2ZmZmZmZjgwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO3BhZGRpbmc6NHB4IDE2cHg7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteHMpfS5zZXR0aW5ncy1hYm91dC1yb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTRweDtmb250LXNpemU6LjgxMjVyZW07cGFkZGluZzoxMnB4IDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LnNldHRpbmdzLWFib3V0LXJvdzpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9uZX0uc2V0dGluZ3MtbGFiZWx7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMDtmbGV4OjAgMCAxMTJweH0uc2V0dGluZ3MtdmFsdWV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouOHJlbTttaW4td2lkdGg6MDt0ZXh0LWFsaWduOnJpZ2h0O3dvcmQtYnJlYWs6YnJlYWstd29yZH0uc2V0dGluZ3MtdmFsdWUgYXtjb2xvcjp2YXIoLS1hY2NlbnQpO3RleHQtZGVjb3JhdGlvbjpub25lfS5zZXR0aW5ncy12YWx1ZSBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uLC5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiwuc2V0dGluZ3MtY2FyZCwuc3dpdGNoLWNhcmQsLnByZXNldC1pdGVte2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhzKX0uc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9ue21hcmdpbi10b3A6MTRweDtwYWRkaW5nOjE2cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7YmFja2dyb3VuZDojZmZmZmZmN2F9LnNldHRpbmdzLXNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bWFyZ2luOjAgMCAxMnB4O2xldHRlci1zcGFjaW5nOi4wMWVtfS5zZXR0aW5ncy11cGRhdGUtYWN0aW9ucywuc2V0dGluZ3MtYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxMnB4fS5zZXR0aW5ncy1hY3Rpb25zLXN0aWNreXtwb3NpdGlvbjpzdGlja3k7Ym90dG9tOjA7cGFkZGluZy10b3A6MTZweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmJmNTAwLCNmZmZiZjVmYSAyOHB4KTt6LWluZGV4OjE7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zZXR0aW5ncy1zdGF0dXMtbWVzc2FnZXttYXJnaW4tdG9wOjEwcHh9LnNldHRpbmdzLWlubGluZS1oaW50e21hcmdpbi10b3A6LTRweDttYXJnaW4tYm90dG9tOjEycHh9LnNldHRpbmdzLWNvbm5lY3QtdXJsLWJveHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2JhY2tncm91bmQ6I2ZmZmZmZmI4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxMnB4O21hcmdpbi10b3A6NnB4fS5zZXR0aW5ncy1jb25uZWN0LXVybC10ZXh0e2ZsZXg6MTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLWFsbDt1c2VyLXNlbGVjdDphbGw7LXdlYmtpdC11c2VyLXNlbGVjdDphbGx9LnNldHRpbmdzLWNvbm5lY3QtcXItYm94e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6MTRweH0uc2V0dGluZ3MtY29ubmVjdC1xci13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjIwMHB4O2hlaWdodDoyMDBweDtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxNnB4O2JveC1zaGFkb3c6MCA0cHggMTJweCAjN2Q1YjM5MTQ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyBlYXNlLGJveC1zaGFkb3cgLjE1cyBlYXNlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2V0dGluZ3MtY29ubmVjdC1xci13cmFwOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTZweCAjN2Q1YjM5MWZ9LnNldHRpbmdzLWNvbm5lY3QtcXItd3JhcCBjYW52YXN7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LnNldHRpbmdzLWNvbm5lY3QtcXItZW1wdHl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3BvaW50ZXItZXZlbnRzOm5vbmV9LnNldHRpbmdzLWNvbm5lY3QtcXItaGludHttYXJnaW46MDtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dGV4dC1hbGlnbjpjZW50ZXI7bWF4LXdpZHRoOjI4MHB4fS5jb25uZWN0LXFyLW1vZGFsLW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOiMxNDBlMDg4YztiYWNrZHJvcC1maWx0ZXI6Ymx1cig2cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNnB4KTt6LWluZGV4Ojk5OTk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MjRweH0uY29ubmVjdC1xci1tb2RhbC1jYXJke2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoyNHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNHB4O2JveC1zaGFkb3c6MCAyMHB4IDYwcHggIzAwMDAwMDU5fS5jb25uZWN0LXFyLW1vZGFsLWNhcmQgY2FudmFze2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czo4cHh9LmNvbm5lY3QtcXItbW9kYWwtaGludHttYXJnaW46MDtmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dGV4dC1hbGlnbjpjZW50ZXJ9LmZpZWxkLXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpO2dhcDoxNHB4O21hcmdpbi1ib3R0b206MTRweH0uZmllbGQtcm93IC5maWVsZHttYXJnaW4tYm90dG9tOjB9LnNldHRpbmdzLWNhcmR7YmFja2dyb3VuZDojZmZmZmZmODU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7cGFkZGluZzoxOHB4O21hcmdpbi1ib3R0b206MTRweH0uc2V0dGluZ3MtY2FyZCAuZmllbGQ6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206MTJweH0uc2V0dGluZ3MtY2FyZCAuc2V0dGluZ3Mtc2VjdGlvbi10aXRsZXttYXJnaW4tdG9wOjB9LnNldHRpbmdzLWNhcmQgLmZpZWxkLWlucHV0e2JhY2tncm91bmQ6I2ZmZmZmZmI4fS5zZXR0aW5ncy1jYXJkIC5idG4tYmxvY2t7bWFyZ2luLWJvdHRvbTowfS5zZXR0aW5ncy1wYW5lbCAuYnRuLWJsb2Nre21pbi1oZWlnaHQ6NDRweH0uc2V0dGluZ3MtcGFuZWwgLmhpbnQsLnNldHRpbmdzLXBhbmVsIC5maWVsZC1oaW50e2xpbmUtaGVpZ2h0OjEuNTV9LnNldHRpbmdzLXBhbmVsIGlucHV0W3R5cGU9cmFuZ2Vde3dpZHRoOjEwMCV9LnNldHRpbmdzLXBhbmVsIGNvZGV7bWF4LXdpZHRoOjEwMCV9LnNldHRpbmdzLXBhbmVsIC5oaWRkZW4rLmhpbnR7bWFyZ2luLXRvcDowfS5zZXR0aW5ncy1wYW5lbCAuZmllbGQtaW5wdXQsLnNldHRpbmdzLXBhbmVsIC5maWVsZC1zZWxlY3R7d2lkdGg6MTAwJX0uc2V0dGluZ3MtcGFuZWwgLmJ0bi1zbXttaW4taGVpZ2h0OjM0cHh9LnNldHRpbmdzLXBhbmVsIC5lcnJvci1tZXNzYWdlLC5zZXR0aW5ncy1wYW5lbCAuaGludC5oaWRkZW4sLnNldHRpbmdzLXBhbmVsIC5lcnJvci1tZXNzYWdlLmhpZGRlbnttYXJnaW4tdG9wOjEwcHh9LnNldHRpbmdzLXBhbmVsICNwcmVzZXRzLWxpc3Q6ZW1wdHk6YmVmb3Jle2NvbnRlbnQ6Ilw1MmEwXDhmN2RcNGUyZC4uLiI7ZGlzcGxheTpibG9jaztwYWRkaW5nOjE4cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi44MTI1cmVtfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5zZXR0aW5ncy1hYm91dC1yb3d7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uc2V0dGluZ3MtdXBkYXRlLWFjdGlvbnMsLnNldHRpbmdzLWFjdGlvbnN7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zZXR0aW5ncy11cGRhdGUtYWN0aW9ucyAuYnRuLC5zZXR0aW5ncy1hY3Rpb25zIC5idG57d2lkdGg6MTAwJX0uc2V0dGluZ3MtY29ubmVjdC11cmwtYm94e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNofX1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuc2V0dGluZ3MtbW9kYWwtaGVhZGVye2dhcDoxMHB4fS5zZXR0aW5ncy1tb2RhbC1zdWJ0aXRsZXtmb250LXNpemU6LjY4NzVyZW19LnNldHRpbmdzLXBhbmVse3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0uc2V0dGluZ3MtYWJvdXQtaW5mbywuc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uLC5zZXR0aW5ncy1jYXJke3BhZGRpbmctbGVmdDoxNHB4O3BhZGRpbmctcmlnaHQ6MTRweH0uc2V0dGluZ3MtYWJvdXQtcm93e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo0cHh9LnNldHRpbmdzLWxhYmVsLC5zZXR0aW5ncy12YWx1ZXtmbGV4Om5vbmU7dGV4dC1hbGlnbjpsZWZ0fS5zZXR0aW5ncy1wYW5lbCAuYnRuLWljb257bWluLXdpZHRoOjM0cHg7bWluLWhlaWdodDozNHB4fX1AbWVkaWEobWluLXdpZHRoOjc2OXB4KXsuc2V0dGluZ3MtcGFuZWwgLmJ0bi1ibG9ja3t3aWR0aDphdXRvO21pbi13aWR0aDoxODBweH19QHN1cHBvcnRzIG5vdCAocG9zaXRpb246IHN0aWNreSl7LnNldHRpbmdzLXRhYnMsLnNldHRpbmdzLWFjdGlvbnMtc3RpY2t5e3Bvc2l0aW9uOnN0YXRpY319LmVtcHR5LXN0YXRlLWNvbXBhY3R7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjMycHggMTZweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjgxMjVyZW19LmVtcHR5LXN0YXRlLWNvbXBhY3QgLmVtcHR5LWljb257Zm9udC1zaXplOjEuNXJlbTtvcGFjaXR5Oi41fS5zd2l0Y2gtY2FyZC1saXN0e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHh9LnN3aXRjaC1jYXJke2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojZmZmZmZmODA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjE0cHggMTZweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMsYmFja2dyb3VuZCAuMnMsdHJhbnNmb3JtIC4yczt1c2VyLXNlbGVjdDpub25lfS5zd2l0Y2gtY2FyZDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnN3aXRjaC1jYXJkLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5zd2l0Y2gtY2FyZC10aXRsZXtmbGV4OjE7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5zd2l0Y2gtY2FyZC1kZXNje2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDowO21heC1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47b3BhY2l0eTowO3RyYW5zaXRpb246bWF4LWhlaWdodCAuMjVzIGVhc2Usb3BhY2l0eSAuMnMgZWFzZSxtYXJnaW4tdG9wIC4yNXMgZWFzZX0uc3dpdGNoLWNhcmQ6aGFzKC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQpIC5zd2l0Y2gtY2FyZC1kZXNje21heC1oZWlnaHQ6NDBweDtvcGFjaXR5OjE7bWFyZ2luLXRvcDo4cHh9LnN3aXRjaC1jYXJkOmhhcyguc3dpdGNoLXRvZ2dsZTpjaGVja2VkKXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFjY2VudCkgNiUsdmFyKC0tYmctc2Vjb25kYXJ5KSl9LnN3aXRjaC10b2dnbGV7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3dpZHRoOjA7aGVpZ2h0OjA7cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpdGNoLXNsaWRlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo0NHB4O2hlaWdodDoyNnB4O21pbi13aWR0aDo0NHB4O2JvcmRlci1yYWRpdXM6MTNweDtiYWNrZ3JvdW5kOiM3ZDViMzkzODtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCAjN2Q1YjM5MmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4yMnMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZTtjdXJzb3I6cG9pbnRlcn0uc3dpdGNoLXNsaWRlcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoycHg7bGVmdDoycHg7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzowIDJweCA0cHggIzE0MGUwODJlLDAgMCAwIC41cHggIzdkNWIzOTBmO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpfS5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQrLnN3aXRjaC1zbGlkZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4ICMwMDAwMDAxYX0uc3dpdGNoLXRvZ2dsZTpjaGVja2VkKy5zd2l0Y2gtc2xpZGVyOmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGUoMThweCl9LnN3aXRjaC10b2dnbGU6Zm9jdXMtdmlzaWJsZSsuc3dpdGNoLXNsaWRlcntvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0ucHJlc2V0LWl0ZW17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjEycHggMTRweDtiYWNrZ3JvdW5kOiNmZmZmZmY4NTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTJweDttYXJnaW4tYm90dG9tOjEwcHg7Zm9udC1zaXplOi44MTI1cmVtfS5wcmVzZXQtbGFiZWx7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnByZXNldC1kZXRhaWx7bWluLXdpZHRoOjA7dGV4dC1hbGlnbjpyaWdodDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO3dvcmQtYnJlYWs6YnJlYWstd29yZH1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsucHJlc2V0LWl0ZW17ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnByZXNldC1kZXRhaWx7dGV4dC1hbGlnbjpsZWZ0fX0uZmlsZS1wcmV2aWV3LW1vZGFse3dpZHRoOm1pbig5MHZ3LG1heCg2NDBweCxjYWxjKDEwMHZ3IC0gMzgwcHgpKSk7bWF4LXdpZHRoOjEwMDBweDtoZWlnaHQ6ODB2aDttYXgtaGVpZ2h0Ojg1dmg7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JveC1zaGFkb3c6MCAyMHB4IDYwcHggIzAwMDAwMDRkO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVuO2FuaW1hdGlvbjptb2RhbC1zbGlkZS1pbiAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9QGtleWZyYW1lcyBtb2RhbC1zbGlkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwcHgpIHNjYWxlKC45OCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuZmlsZS1wcmV2aWV3LW92ZXJsYXl7cGFkZGluZzowO2FsaWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2g7dG9wOnZhcigtLWFwcC12aWV3cG9ydC10b3AsIDBweCk7aGVpZ2h0OnZhcigtLWFwcC12aWV3cG9ydC1oZWlnaHQsIDEwMGR2aCl9LmZpbGUtcHJldmlldy1tb2RhbHt3aWR0aDoxMDB2dzttYXgtd2lkdGg6MTAwdnc7aGVpZ2h0OnZhcigtLWFwcC12aWV3cG9ydC1oZWlnaHQsIDEwMGR2aCk7bWF4LWhlaWdodDp2YXIoLS1hcHAtdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpO2JvcmRlci1yYWRpdXM6MDtib3JkZXI6bm9uZTtib3gtc2hhZG93Om5vbmU7YW5pbWF0aW9uOmZhZGUtaW4gLjE4cyBlYXNlfS5maWxlLXByZXZpZXctaGVhZGVye3BhZGRpbmc6MTBweCAxMnB4O2dhcDo4cHg7cGFkZGluZy10b3A6bWF4KDEwcHgsZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKTtwYWRkaW5nLWxlZnQ6bWF4KDEycHgsZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7cGFkZGluZy1yaWdodDptYXgoMTJweCxlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSl9LmZpbGUtcHJldmlldy10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtnYXA6NnB4O21pbi13aWR0aDowO2ZsZXg6MX0uZmlsZS1wcmV2aWV3LWZpbGVuYW1le21heC13aWR0aDoxMDAlfS5maWxlLXByZXZpZXctcGF0aHtkaXNwbGF5Om5vbmV9LmZpbGUtcHJldmlldy10b29sYmFye2dhcDo0cHg7ZmxleC1zaHJpbms6MH0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue3BhZGRpbmc6MCA2cHg7Zm9udC1zaXplOi43NXJlbX0uZmlsZS1wcmV2aWV3LWNsb3Nle3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowfS5maWxlLXByZXZpZXctaWNvbntmb250LXNpemU6MS4xMjVyZW19LmZpbGUtcHJldmlldy1ib2R5e3BhZGRpbmctYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX19LmZpbGUtcHJldmlldy1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjEycHggMThweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7ZmxleC1zaHJpbms6MH0uZmlsZS1wcmV2aWV3LXRpdGxle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7Zm9udC1zaXplOi45Mzc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXg6MTttaW4td2lkdGg6MH0uZmlsZS1wcmV2aWV3LWljb257Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6MTtmbGV4LXNocmluazowfS5maWxlLXByZXZpZXctbmFtZS1ibG9ja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7bWluLXdpZHRoOjA7ZmxleDoxfS5maWxlLXByZXZpZXctbmFtZS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2dhcDo4cHg7bWluLXdpZHRoOjB9LmZpbGUtcHJldmlldy1maWxlbmFtZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOi45Mzc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi4wMWVtO21pbi13aWR0aDowfS5maWxlLXByZXZpZXctcGF0aHtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO21pbi13aWR0aDowO29wYWNpdHk6Ljh9LmZpbGUtcHJldmlldy1kaXJ0eXtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6I2M2NmExYTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW07ZmxleC1zaHJpbms6MDtwYWRkaW5nOjFweCA4cHg7YmFja2dyb3VuZDojYzY2YTFhMWE7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5OCwxMDYsMjYsLjI1KTtib3JkZXItcmFkaXVzOjk5OXB4O2FuaW1hdGlvbjpkaXJ0eS1wdWxzZSAxLjZzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgZGlydHktcHVsc2V7MCUsdG97b3BhY2l0eTouNjV9NTAle29wYWNpdHk6MX19LmZpbGUtcHJldmlldy1sYW5ne2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDA7cGFkZGluZzoycHggOHB4O2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDIxMiwxNTIsOTksLjMpO2xldHRlci1zcGFjaW5nOi4wNGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtmbGV4LXNocmluazowO2FsaWduLXNlbGY6Y2VudGVyfS5maWxlLXByZXZpZXctY2xvc2V7YmFja2dyb3VuZDpub25lO2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtwYWRkaW5nOjA7Ym9yZGVyLXJhZGl1czo4cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyxjb2xvciAuMTVzLGJvcmRlci1jb2xvciAuMTVzLHRyYW5zZm9ybSAuMTVzO2xpbmUtaGVpZ2h0OjE7ZmxleC1zaHJpbms6MH0uZmlsZS1wcmV2aWV3LWNsb3NlOmhvdmVye2JhY2tncm91bmQ6I2RjNDY0NjE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOiNkYzQ2NDY0MH0uZmlsZS1wcmV2aWV3LWNsb3NlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk0KX0uZmlsZS1wcmV2aWV3LWJvZHl7ZmxleDoxO292ZXJmbG93OmF1dG87bWluLWhlaWdodDowO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjp2YXIoLS1ib3JkZXItZGVmYXVsdCkgdHJhbnNwYXJlbnR9LmZpbGUtcHJldmlldy1ib2R5Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo4cHg7aGVpZ2h0OjhweH0uZmlsZS1wcmV2aWV3LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmZpbGUtcHJldmlldy1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjRweH0uZmlsZS1wcmV2aWV3LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCl9LmZpbGUtcHJldmlldy1ib2R5Ojotd2Via2l0LXNjcm9sbGJhci1jb3JuZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY29kZS1wcmV2aWV3LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2hlaWdodDoxMDAlO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6dmFyKC0tYm9yZGVyLWRlZmF1bHQpIHRyYW5zcGFyZW50fS5jb2RlLXByZXZpZXctd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6OHB4O2hlaWdodDo4cHh9LmNvZGUtcHJldmlldy13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jb2RlLXByZXZpZXctd3JhcHBlcjo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czo0cHh9LmNvZGUtcHJldmlldy13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5jb2RlLXByZXZpZXctbGluZXN7cGFkZGluZzoxNnB4IDEycHggMTZweCAxNnB4O3RleHQtYWxpZ246cmlnaHQ7dXNlci1zZWxlY3Q6bm9uZTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtc20pO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0KTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3dpZHRoOjUycHg7bWF4LXdpZHRoOjUycHg7ZmxleC1zaHJpbms6MDtvdmVyZmxvdzpoaWRkZW59LmNvZGUtcHJldmlldy1jb250ZW50e2ZsZXg6MTttaW4td2lkdGg6MDt3aWR0aDoxMDAlO3BhZGRpbmc6MTZweCAyMHB4O292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmF1dG99LmNvZGUtcHJldmlldy1jb250ZW50IHByZXttYXJnaW46MDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtc20pO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3doaXRlLXNwYWNlOnByZTt3b3JkLWJyZWFrOm5vcm1hbDtvdmVyZmxvdy13cmFwOm5vcm1hbH0uc3ludGF4LWtleXdvcmR7Y29sb3I6I2M2NzhkZH0uc3ludGF4LXN0cmluZ3tjb2xvcjojOThjMzc5fS5zeW50YXgtbnVtYmVye2NvbG9yOiNkMTlhNjZ9LnN5bnRheC1jb21tZW50e2NvbG9yOiM1YzYzNzA7Zm9udC1zdHlsZTppdGFsaWN9LnN5bnRheC1mdW5jdGlvbntjb2xvcjojNjFhZmVmfS5zeW50YXgtb3BlcmF0b3J7Y29sb3I6IzU2YjZjMn0uc3ludGF4LXR5cGV7Y29sb3I6I2U1YzA3Yn0uc3ludGF4LXB1bmN0dWF0aW9ue2NvbG9yOiNhYmIyYmZ9Lm1hcmtkb3duLXByZXZpZXd7cGFkZGluZzoyMHB4IDI4cHg7bGluZS1oZWlnaHQ6MS43O2ZvbnQtc2l6ZTouOTM3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5tYXJrZG93bi1wcmV2aWV3IGgxLC5tYXJrZG93bi1wcmV2aWV3IGgyLC5tYXJrZG93bi1wcmV2aWV3IGgzLC5tYXJrZG93bi1wcmV2aWV3IGg0LC5tYXJrZG93bi1wcmV2aWV3IGg1LC5tYXJrZG93bi1wcmV2aWV3IGg2e21hcmdpbi10b3A6MS41ZW07bWFyZ2luLWJvdHRvbTouNWVtO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxLjM7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ubWFya2Rvd24tcHJldmlldyBoMXtmb250LXNpemU6MS43NXJlbTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmctYm90dG9tOi4zZW19Lm1hcmtkb3duLXByZXZpZXcgaDJ7Zm9udC1zaXplOjEuMzc1cmVtO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZy1ib3R0b206LjNlbX0ubWFya2Rvd24tcHJldmlldyBoM3tmb250LXNpemU6MS4xMjVyZW19Lm1hcmtkb3duLXByZXZpZXcgaDR7Zm9udC1zaXplOjFyZW19Lm1hcmtkb3duLXByZXZpZXcgcHttYXJnaW46Ljc1ZW0gMH0ubWFya2Rvd24tcHJldmlldyBhe2NvbG9yOnZhcigtLWFjY2VudCk7dGV4dC1kZWNvcmF0aW9uOm5vbmV9Lm1hcmtkb3duLXByZXZpZXcgYTpob3Zlcnt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lfS5tYXJrZG93bi1wcmV2aWV3IGNvZGV7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6M3B4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44NzVlbTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcil9Lm1hcmtkb3duLXByZXZpZXcgcHJle2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO3BhZGRpbmc6MTZweDtvdmVyZmxvdy14OmF1dG87bWFyZ2luOjFlbSAwfS5tYXJrZG93bi1wcmV2aWV3IHByZSBjb2Rle2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtwYWRkaW5nOjA7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1zbSl9Lm1hcmtkb3duLXByZXZpZXcgYmxvY2txdW90ZXtib3JkZXItbGVmdDo0cHggc29saWQgdmFyKC0tYWNjZW50KTttYXJnaW46MWVtIDA7cGFkZGluZzouNWVtIDFlbTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6MCB2YXIoLS1yYWRpdXMtc20pIHZhcigtLXJhZGl1cy1zbSkgMH0ubWFya2Rvd24tcHJldmlldyB1bCwubWFya2Rvd24tcHJldmlldyBvbHtwYWRkaW5nLWxlZnQ6MS41ZW07bWFyZ2luOi43NWVtIDB9Lm1hcmtkb3duLXByZXZpZXcgbGl7bWFyZ2luOi4yNWVtIDB9Lm1hcmtkb3duLXByZXZpZXcgdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO3dpZHRoOjEwMCU7bWFyZ2luOjFlbSAwO2ZvbnQtc2l6ZTouODc1cmVtfS5tYXJrZG93bi1wcmV2aWV3IHRoLC5tYXJrZG93bi1wcmV2aWV3IHRke2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nOjhweCAxMnB4O3RleHQtYWxpZ246bGVmdH0ubWFya2Rvd24tcHJldmlldyB0aHtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NjAwfS5tYXJrZG93bi1wcmV2aWV3IHRyOm50aC1jaGlsZCgybil7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpfS5tYXJrZG93bi1wcmV2aWV3IGhye2JvcmRlcjpub25lO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7bWFyZ2luOjEuNWVtIDB9Lm1hcmtkb3duLXByZXZpZXcgaW1ne21heC13aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKX0uZmlsZS1wcmV2aWV3LWxvYWRpbmd7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2hlaWdodDoxMDAlO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODc1cmVtO2dhcDoxMHB4fS5maWxlLXByZXZpZXctbG9hZGluZzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlcjoycHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci10b3AtY29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246cHJldmlldy1zcGluIC43cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyBwcmV2aWV3LXNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX0uZmlsZS1wcmV2aWV3LWVycm9ye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OjEwMCU7Z2FwOjhweDtjb2xvcjp2YXIoLS1kYW5nZXIpO2ZvbnQtc2l6ZTouODc1cmVtO3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MjBweH0uZmlsZS1wcmV2aWV3LWVycm9yIC5wcmV2aWV3LWVycm9yLWljb257Zm9udC1zaXplOjJyZW07b3BhY2l0eTouNX0udHJlZS1pdGVtW2RhdGEtdHlwZT1maWxlXXtjdXJzb3I6cG9pbnRlcn0udHJlZS1pdGVtW2RhdGEtdHlwZT1maWxlXTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLWhvdmVyKX0udHJlZS1pdGVtW2RhdGEtdHlwZT1maWxlXTpob3ZlciAudHJlZS1uYW1le2NvbG9yOnZhcigtLWFjY2VudCl9LmZpbGUtZXhwbG9yZXItdXB7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MDt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSx0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtmbGV4LXNocmluazowfS5maWxlLWV4cGxvcmVyLXVwOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1zdWJ0bGUpfS5maWxlLWV4cGxvcmVyLXVwOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0udHJlZS1tZXRhe2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtczttYXJnaW4tbGVmdDo2cHg7cGFkZGluZy1sZWZ0OjZweDttYXgtd2lkdGg6NzBweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7b3BhY2l0eTouODV9LnRyZWUtaXRlbTpob3ZlciAudHJlZS1tZXRhe2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0udHJlZS10cnVuY2F0ZWR7cGFkZGluZzo4cHggMTRweDttYXJnaW46NHB4IDZweCA4cHg7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXI6MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6NnB4O3RleHQtYWxpZ246Y2VudGVyfS5maWxlLWNvbnRleHQtbWVudXtwb3NpdGlvbjpmaXhlZDt6LWluZGV4OjExMDA7bWluLXdpZHRoOjIwMHB4O3BhZGRpbmc6NHB4O2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTBweDtib3gtc2hhZG93OjAgMTJweCAzNnB4ICMwMDAwMDAyZTthbmltYXRpb246Y3R4LWZhZGUtaW4gLjEycyBlYXNlfUBrZXlmcmFtZXMgY3R4LWZhZGUtaW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpIHNjYWxlKC45OCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX0uZmlsZS1jb250ZXh0LW1lbnUtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3dpZHRoOjEwMCU7cGFkZGluZzo4cHggMTJweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOi44MTI1cmVtO3RleHQtYWxpZ246bGVmdDtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjZweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjEyc30uZmlsZS1jb250ZXh0LW1lbnUtaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0uZmlsZS1jb250ZXh0LW1lbnUtaXRlbSAuY3R4LWljb257d2lkdGg6MThweDt0ZXh0LWFsaWduOmNlbnRlcjtvcGFjaXR5Oi44NX0ud2FuZC1taW5pLXRvYXN0e3Bvc2l0aW9uOmZpeGVkO3RvcDozMHB4O2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwtMTRweCk7ei1pbmRleDoxMjAwO3BhZGRpbmc6OHB4IDE2cHg7YmFja2dyb3VuZDojMTQxNDE0ZWI7Y29sb3I6I2ZmZjtmb250LXNpemU6LjgxMjVyZW07Ym9yZGVyLXJhZGl1czo5OTlweDtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjE4cyBlYXNlO3BvaW50ZXItZXZlbnRzOm5vbmV9LndhbmQtbWluaS10b2FzdC5zaG93e29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpfS5maWxlLXByZXZpZXctdG9vbGJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7ZmxleC1zaHJpbms6MDttYXJnaW4tbGVmdDo4cHh9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowIDhweDttaW4td2lkdGg6MzBweDtoZWlnaHQ6MzBweDtnYXA6NnB4O2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMsY29sb3IgLjE1cyxib3JkZXItY29sb3IgLjE1cyxib3gtc2hhZG93IC4xNXMsdHJhbnNmb3JtIC4xc30uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlcik7Ym94LXNoYWRvdzowIDFweCAzcHggIzAwMDAwMDBhfS5maWxlLXByZXZpZXctdG9vbGJhci1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTUpfS5maWxlLXByZXZpZXctdG9vbGJhci1idG46ZGlzYWJsZWR7b3BhY2l0eTouNTtjdXJzb3I6bm90LWFsbG93ZWQ7dHJhbnNmb3JtOm5vbmV9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0biAudG9vbGJhci1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0biAudG9vbGJhci10ZXh0e2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDFlbX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLnRvb2xiYXItYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjojZDQ5ODYzNjZ9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bi5wcmltYXJ5e2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAyNn0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLnByaW1hcnk6aG92ZXJ7YmFja2dyb3VuZDojYjg3YTQ3O2JvcmRlci1jb2xvcjojYjg3YTQ3O2NvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDJweCA2cHggIzU5M2EyMDMzfS5maWxlLXByZXZpZXctdG9vbGJhci1idG4uZGFuZ2Vye2NvbG9yOiNjMDM5MmJ9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bi5kYW5nZXI6aG92ZXJ7YmFja2dyb3VuZDojZGM0NjQ2MTQ7Ym9yZGVyLWNvbG9yOiNkYzQ2NDY0ZDtjb2xvcjojYTAyODE4fS5maWxlLXByZXZpZXctdG9vbGJhci1ncm91cHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOnN0cmV0Y2g7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjhweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXAgLmZpbGUtcHJldmlldy10b29sYmFyLWJ0bntib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDttaW4td2lkdGg6MjhweDtoZWlnaHQ6MjhweDtib3gtc2hhZG93Om5vbmV9LmZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwIC5maWxlLXByZXZpZXctdG9vbGJhci1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSl9LmZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwbGFiZWx7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjAgNnB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KX0uZmlsZS1wcmV2aWV3LXRvb2xiYXIuZWRpdGluZ3tnYXA6NnB4fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5maWxlLXByZXZpZXctdG9vbGJhci1idG57aGVpZ2h0OjI4cHg7bWluLXdpZHRoOjI4cHg7cGFkZGluZzowIDZweH0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIC50b29sYmFyLXRleHR7ZGlzcGxheTpub25lfS5maWxlLXByZXZpZXctdG9vbGJhci1idG4ucHJpbWFyeSAudG9vbGJhci10ZXh0e2Rpc3BsYXk6aW5saW5lLWZsZXh9fS53YW5kLWljb257ZmxleC1zaHJpbms6MDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGV9LmNvZGUtcHJldmlldy1jb250ZW50IHByZS53cmFwe3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZH0uZmlsZS1wcmV2aWV3LWJvZHkuZWRpdGluZ3twYWRkaW5nOjA7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KX0uY29kZS1lZGl0b3Itd3JhcHBlcntkaXNwbGF5OmZsZXg7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjA7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KX0uY29kZS1lZGl0b3ItdGV4dGFyZWF7ZmxleDoxO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7bWluLWhlaWdodDowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjE2cHggMjBweDttYXJnaW46MDtib3JkZXI6bm9uZTtvdXRsaW5lOm5vbmU7cmVzaXplOm5vbmU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLXNtKTtsaW5lLWhlaWdodDp2YXIoLS1saW5lLWhlaWdodCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO3RhYi1zaXplOjI7LW1vei10YWItc2l6ZToyO3doaXRlLXNwYWNlOnByZTtvdmVyZmxvdzphdXRvO2NhcmV0LWNvbG9yOnZhcigtLWFjY2VudCk7c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KSB0cmFuc3BhcmVudH0uY29kZS1lZGl0b3ItdGV4dGFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6OHB4fS5jb2RlLWVkaXRvci10ZXh0YXJlYTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uY29kZS1lZGl0b3ItdGV4dGFyZWE6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6NHB4fS5jb2RlLWVkaXRvci10ZXh0YXJlYTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS10ZXh0LW11dGVkKX0uY29kZS1lZGl0b3ItdGV4dGFyZWE6Zm9jdXN7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAycHggI2Q0OTg2MzI2fS5maWxlLXByZXZpZXctYm9keS5raW5kLWltYWdle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDAsMCwwLC4wNCkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA3NSUscmdiYSgwLDAsMCwuMDQpIDc1JSksbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMCwwLDAsLjA0KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDc1JSxyZ2JhKDAsMCwwLC4wNCkgNzUlKSx2YXIoLS1iZy1wcmltYXJ5KTtiYWNrZ3JvdW5kLXNpemU6MTZweCAxNnB4O2JhY2tncm91bmQtcG9zaXRpb246MCAwLDhweCA4cHh9LmltYWdlLXByZXZpZXctd3JhcHBlcnt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtvdmVyZmxvdzphdXRvO3BhZGRpbmc6MTZweH0uaW1hZ2UtcHJldmlldy1pbWd7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO29iamVjdC1maXQ6Y29udGFpbjtjdXJzb3I6em9vbS1pbjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZTtib3gtc2hhZG93OjAgNnB4IDIwcHggIzAwMDAwMDFmO2JvcmRlci1yYWRpdXM6NHB4O2JhY2tncm91bmQ6I2ZmZn0uaW1hZ2UtcHJldmlldy1pbWcuem9vbWVke21heC13aWR0aDpub25lO21heC1oZWlnaHQ6bm9uZTtjdXJzb3I6em9vbS1vdXQ7dHJhbnNmb3JtOnNjYWxlKDEpfS5maWxlLXByZXZpZXctYm9keS5raW5kLXBkZntwYWRkaW5nOjA7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpfS5wZGYtcHJldmlldy1mcmFtZXt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KX0uZmlsZS1wcmV2aWV3LWJvZHkua2luZC12aWRlbywuZmlsZS1wcmV2aWV3LWJvZHkua2luZC1hdWRpb3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDojMGQwZDBkfS5maWxlLXByZXZpZXctYm9keS5raW5kLWF1ZGlve2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KX0ubWVkaWEtcHJldmlldy13cmFwcGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6MTAwJTtwYWRkaW5nOjI0cHh9Lm1lZGlhLXByZXZpZXctdmlkZW97bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDpjYWxjKDEwMCUgLSA0MHB4KTtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLXJhZGl1czo0cHh9Lm1lZGlhLXByZXZpZXctYXVkaW97d2lkdGg6bWluKDQyMHB4LDkwJSl9Lm1lZGlhLXByZXZpZXctaWNvbntmb250LXNpemU6My41cmVtO29wYWNpdHk6Ljd9Lm1lZGlhLXByZXZpZXctbmFtZXtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6MXJlbTttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9Lm1lZGlhLXByZXZpZXctbWV0YXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljc1cmVtO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uZmlsZS1wcmV2aWV3LWJvZHkua2luZC12aWRlbyAubWVkaWEtcHJldmlldy1tZXRhe2NvbG9yOiNmZmZmZmZiM30uZmlsZS1wcmV2aWV3LWJvZHkua2luZC1iaW5hcnl7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5iaW5hcnktcHJldmlldy1jYXJke21heC13aWR0aDo0ODBweDtwYWRkaW5nOjMycHggMjhweDt0ZXh0LWFsaWduOmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWxnKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweH0uYmluYXJ5LXByZXZpZXctaWNvbntmb250LXNpemU6M3JlbTtvcGFjaXR5Oi42fS5iaW5hcnktcHJldmlldy1uYW1le2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZToxcmVtO3dvcmQtYnJlYWs6YnJlYWstYWxsfS5iaW5hcnktcHJldmlldy1tZXRhe2Rpc3BsYXk6ZmxleDtnYXA6NnB4O2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljc1cmVtfS5iaW5hcnktcHJldmlldy1wYXRoe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXgtd2lkdGg6MTAwJTtvdmVyZmxvdzpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwfS5iaW5hcnktcHJldmlldy1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O21hcmdpbi10b3A6OHB4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmJpbmFyeS1wcmV2aWV3LWJ0bntwYWRkaW5nOjhweCAxNnB4O2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOi44MTI1cmVtO2N1cnNvcjpwb2ludGVyO3RleHQtZGVjb3JhdGlvbjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLGJvcmRlci1jb2xvciAuMTVzLGNvbG9yIC4xNXN9LmJpbmFyeS1wcmV2aWV3LWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KX0udHJlZS1pdGVte3RyYW5zaXRpb246YWxsIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0udHJlZS1pdGVtOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGUoNHB4KX0udHJlZS1pdGVtOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlKDJweCkgc2NhbGUoLjk5KX0uZmlsZS1zaWRlLXBhbmVse3RyYW5zaXRpb246cmlnaHQgLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxib3gtc2hhZG93IC4zNXMgZWFzZX0uZmlsZS1zaWRlLXBhbmVsLm9wZW57Ym94LXNoYWRvdzotOHB4IDAgMzJweCAjNTkzYTIwMWZ9LnNwaW5uZXJ7YW5pbWF0aW9uOnNwaW4gMXMgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgc3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgZmxvYXR7MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9NTAle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC04cHgpfX0uZmxvYXR7YW5pbWF0aW9uOmZsb2F0IDNzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5jaGF0LW1lc3NhZ2UtYnViYmxley13ZWJraXQtdXNlci1zZWxlY3Q6dGV4dDt1c2VyLXNlbGVjdDp0ZXh0fS5tc2ctY29weS1idG57ZGlzcGxheTpub25lO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMzJweDtyaWdodDo0cHg7cGFkZGluZzo0cHggMTBweDtmb250LXNpemU6Ljc1cmVtO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctbWQpO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO3otaW5kZXg6MTA7d2hpdGUtc3BhY2U6bm93cmFwOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufS5tc2ctY29weS1idG4udmlzaWJsZXtkaXNwbGF5OmJsb2NrfS5tc2ctY29weS1idG4uY29waWVke2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Y29sb3I6dmFyKC0tc3VjY2Vzcyk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpfS5jaGF0LW1lc3NhZ2V7cG9zaXRpb246cmVsYXRpdmV9LnRlcm1pbmFsLWp1bXAtYm90dG9te3otaW5kZXg6MjB9LmlucHV0LWNvbXBvc2VyLmluLWZsaWdodHtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmlucHV0LWNvbXBvc2VyLmluLWZsaWdodDpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTJweDtsZWZ0Oi02MCU7d2lkdGg6MjIwJTtoZWlnaHQ6M3B4O2JvcmRlci1yYWRpdXM6MTRweCAxNHB4IDAgMDtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChlbGxpcHNlIDI4MHB4IDRweCxyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjQ1KSAwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjEyKSAzNSUsdHJhbnNwYXJlbnQgNjAlKSBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjI4MHB4IDRweDthbmltYXRpb246Y29tcG9zZXJXYXZlU2xpZGUgN3MgY3ViaWMtYmV6aWVyKC4zNSwwLC42NSwxKSBpbmZpbml0ZTt6LWluZGV4OjI7cG9pbnRlci1ldmVudHM6bm9uZX0uaW5wdXQtY29tcG9zZXIuaW4tZmxpZ2h0OmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7bGVmdDotNjAlO3dpZHRoOjIyMCU7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjE0cHggMTRweCAwIDA7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSAyMjBweCAzcHgscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC4yNSkgMCUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC4wNikgMzUlLHRyYW5zcGFyZW50IDYwJSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToyMjBweCAzcHg7YW5pbWF0aW9uOmNvbXBvc2VyV2F2ZVNsaWRlIDlzIGN1YmljLWJlemllciguMzUsMCwuNjUsMSkgaW5maW5pdGUgcmV2ZXJzZTt6LWluZGV4OjI7cG9pbnRlci1ldmVudHM6bm9uZX1Aa2V5ZnJhbWVzIGNvbXBvc2VyV2F2ZVNsaWRlezAle2JhY2tncm91bmQtcG9zaXRpb246MCUgY2VudGVyfXRve2JhY2tncm91bmQtcG9zaXRpb246MTAwJSBjZW50ZXJ9fS5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjVweDttYXJnaW46MCAwIDAgYXV0bztwYWRkaW5nOjRweCA4cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlLGNvbG9yIC4zcyBlYXNlO292ZXJmbG93OmhpZGRlbjtmbGV4LXNocmluazowfS5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIgLnN0YXR1cy1iYXItZG90e3dpZHRoOjVweDtoZWlnaHQ6NXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6cmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC44KTthbmltYXRpb246c3RhdHVzRG90UHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZTtmbGV4LXNocmluazowfUBrZXlmcmFtZXMgc3RhdHVzRG90UHVsc2V7MCUsdG97b3BhY2l0eTouNDt0cmFuc2Zvcm06c2NhbGUoLjkpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEuMSl9fS5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIgLnN0YXR1cy1iYXItbGFiZWx7ZmxleC1zaHJpbms6MDtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi42MjVyZW19LnN0cnVjdHVyZWQtc3RhdHVzLWJhciAuc3RhdHVzLWJhci10aW1lcntmbGV4LXNocmluazowO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIuY29tcGxldGVke2FuaW1hdGlvbjpzdGF0dXNCYXJGYWRlT3V0IDJzIGVhc2Utb3V0IDFzIGZvcndhcmRzfS5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIuY29tcGxldGVkIC5zdGF0dXMtYmFyLWxhYmVse2NvbG9yOnZhcigtLXN1Y2Nlc3MpfUBrZXlmcmFtZXMgc3RhdHVzQmFyRmFkZU91dHswJXtvcGFjaXR5OjE7bWF4LWhlaWdodDoyMHB4fTcwJXtvcGFjaXR5OjA7bWF4LWhlaWdodDoyMHB4fXRve29wYWNpdHk6MDttYXgtaGVpZ2h0OjA7bWFyZ2luOjB9fS5jcm9zcy1zZXNzaW9uLXF1ZXVle2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweDttYXJnaW46MCA4cHggNHB4fS5xdWV1ZS1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O3BhZGRpbmc6MCA0cHg7Zm9udC1zaXplOi42cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5xdWV1ZS1oZWFkZXItbGFiZWx7ZmxleDoxO29wYWNpdHk6LjZ9LnF1ZXVlLWhlYWRlci1jbGVhcntib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNTYyNXJlbTtwYWRkaW5nOjFweCA0cHg7Ym9yZGVyLXJhZGl1czozcHg7b3BhY2l0eTouNTt0cmFuc2l0aW9uOmNvbG9yIC4xNXMsYmFja2dyb3VuZCAuMTVzLG9wYWNpdHkgLjE1c30ucXVldWUtaGVhZGVyLWNsZWFyOmhvdmVye2NvbG9yOnZhcigtLWVycm9yLCAjZTU1KTtiYWNrZ3JvdW5kOiNlNTU1NTUxZjtvcGFjaXR5OjF9LnF1ZXVlLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NHB4IDhweDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNzt0cmFuc2l0aW9uOm9wYWNpdHkgLjE1cyBlYXNlfS5xdWV1ZS1pdGVtOmhvdmVye29wYWNpdHk6MX0ucXVldWUtaXRlbS1kb3R7ZmxleC1zaHJpbms6MDt3aWR0aDo0cHg7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuNik7YW5pbWF0aW9uOnN0YXR1c0RvdFB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnF1ZXVlLWl0ZW0tdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ucXVldWUtaXRlbS1hZ2V7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjU2MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO29wYWNpdHk6LjV9LnF1ZXVlLWl0ZW0tc2VuZC1ub3d7ZmxleC1zaHJpbms6MDtib3JkZXI6MXB4IHNvbGlkIHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuMyk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS1hY2NlbnQsICNjNTY1M2QpO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MXB4IDhweDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6LjZyZW07bGluZS1oZWlnaHQ6MS40O3RyYW5zaXRpb246Y29sb3IgLjE1cyxiYWNrZ3JvdW5kIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXN9LnF1ZXVlLWl0ZW0tc2VuZC1ub3c6aG92ZXJ7Y29sb3I6dmFyKC0tYWNjZW50LCAjYzU2NTNkKTtiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuMTIpO2JvcmRlci1jb2xvcjpyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjUpfS5xdWV1ZS1pdGVtLWNhbmNlbHtmbGV4LXNocmluazowO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzoxcHggNHB4O2JvcmRlci1yYWRpdXM6M3B4O2ZvbnQtc2l6ZTouNjg3NXJlbTtsaW5lLWhlaWdodDoxO29wYWNpdHk6LjQ7dHJhbnNpdGlvbjpjb2xvciAuMTVzLGJhY2tncm91bmQgLjE1cyxvcGFjaXR5IC4xNXN9LnF1ZXVlLWl0ZW0tY2FuY2VsOmhvdmVye2NvbG9yOnZhcigtLWVycm9yLCAjZTU1KTtiYWNrZ3JvdW5kOiNlNTU1NTUxZjtvcGFjaXR5OjF9LnNldHRpbmdzLWNhcmQtaGVhZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTJweDttYXJnaW4tYm90dG9tOjE0cHh9LnNldHRpbmdzLWNhcmQtaWNvbntmbGV4OjAgMCBhdXRvO3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNjNTY1M2QyZSwjYzU2NTNkMGYpO2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC1zaXplOjE4cHg7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2M1NjUzZDJlfS5zZXR0aW5ncy1jYXJkLWhlYWQtdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4fS5zZXR0aW5ncy1jYXJkLXRpdGxle2ZvbnQtc2l6ZTouOTM3NXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzouMDA1ZW07bGluZS1oZWlnaHQ6MS4zO21hcmdpbjowfS5zZXR0aW5ncy1jYXJkLWRlc2N7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjU7bWFyZ2luOjB9LnNldHRpbmdzLWNhcmQtYWN0aW9uc3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDttYXJnaW4tdG9wOjZweH0uc2V0dGluZ3MtY2FyZC1hY3Rpb25zIC5idG57bWluLXdpZHRoOjEyMHB4fS5zZXR0aW5ncy1zdWNjZXNzLW1lc3NhZ2V7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9LnNldHRpbmdzLXNlY3Rpb24taGVhZHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTBweDttYXJnaW4tYm90dG9tOjEycHh9LnNldHRpbmdzLXNlY3Rpb24taWNvbntmbGV4OjAgMCBhdXRvO3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiNjNTY1M2QxYTtmb250LXNpemU6MTRweH0uc2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHR7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweH0uc2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5ne2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi4wMDVlbTtsaW5lLWhlaWdodDoxLjM7bWFyZ2luOjB9LnNldHRpbmdzLXNlY3Rpb24tc3Vie2ZvbnQtc2l6ZTouNzJyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41O21hcmdpbjowfS5zZXR0aW5ncy10b2dnbGUtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjE0cHg7cGFkZGluZzoxMnB4IDE0cHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6I2ZmZmZmZjhjO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEpO21hcmdpbi10b3A6MTBweH0uc2V0dGluZ3MtdG9nZ2xlLXJvdysuc2V0dGluZ3MtdG9nZ2xlLXJvdywuc2V0dGluZ3MtdG9nZ2xlLXJvdysuc2V0dGluZ3MtcmFuZ2Utcm93LC5zZXR0aW5ncy1yYW5nZS1yb3crLnNldHRpbmdzLXRvZ2dsZS1yb3d7bWFyZ2luLXRvcDo4cHh9LnNldHRpbmdzLXRvZ2dsZS10ZXh0e2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDozcHh9LnNldHRpbmdzLXRvZ2dsZS10aXRsZXtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Y3Vyc29yOnBvaW50ZXJ9LnNldHRpbmdzLXRvZ2dsZS1kZXNje2ZvbnQtc2l6ZTouNzJyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41fS5zZXR0aW5ncy1zd2l0Y2h7cG9zaXRpb246cmVsYXRpdmU7ZmxleDowIDAgYXV0bztjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1ibG9ja30uc2V0dGluZ3MtdG9nZ2xlLWFzaWRle2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweH0uZW52LXByZXZpZXctbW9kYWx7bWF4LXdpZHRoOjcyMHB4fS5lbnYtcHJldmlldy1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEycHg7cGFkZGluZzoxOHB4IDI0cHggOHB4O21pbi1oZWlnaHQ6MH0uZW52LXByZXZpZXctdG9vbGJhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwfS5lbnYtcHJldmlldy1tZXRhe2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7Zm9udC1zaXplOi43OHJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LmVudi1wcmV2aWV3LXBpbGx7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoycHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDJlbTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS5lbnYtcHJldmlldy1waWxsLmlzLWluaGVyaXR7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LmVudi1wcmV2aWV3LXBpbGwuaXMtbWluaW1hbHtjb2xvcjp2YXIoLS1zdWNjZXNzKTtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKX0uZW52LXByZXZpZXctY291bnR7Zm9udC1zaXplOi43MnJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uZW52LXByZXZpZXctY29udHJvbHN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtmbGV4LXdyYXA6d3JhcH0uZW52LXByZXZpZXctc2VhcmNoe3dpZHRoOjIwMHB4O21heC13aWR0aDoxMDAlO3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtmb250LXNpemU6Ljc4cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmVudi1wcmV2aWV3LXNlYXJjaDpmb2N1c3tvdXRsaW5lOm5vbmU7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1mb2N1cyk7Ym94LXNoYWRvdzowIDAgMCAzcHggdmFyKC0tYWNjZW50LWdsb3cpfS5lbnYtcHJldmlldy1yZXZlYWx7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmb250LXNpemU6Ljc0cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lfS5lbnYtcHJldmlldy1yZXZlYWwgaW5wdXR7YWNjZW50LWNvbG9yOnZhcigtLWFjY2VudCk7Y3Vyc29yOnBvaW50ZXJ9LmVudi1wcmV2aWV3LWxpc3R7bWF4LWhlaWdodDptaW4oNTZ2aCw0NjBweCk7b3ZlcmZsb3cteTphdXRvO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO3BhZGRpbmc6NHB4fS5lbnYtcHJldmlldy1saXN0OmZvY3Vze291dGxpbmU6bm9uZX0uZW52LXByZXZpZXctcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMjIwcHgpIG1pbm1heCgwLDFmcikgYXV0bztnYXA6MTJweDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzo4cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCB1aS1tb25vc3BhY2UsICJTRiBNb25vIiwgTWVubG8sIENvbnNvbGFzLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouNzRyZW07dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xMnN9LmVudi1wcmV2aWV3LXJvdzpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0uZW52LXByZXZpZXctcm93Ky5lbnYtcHJldmlldy1yb3d7Ym9yZGVyLXRvcDoxcHggZGFzaGVkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS5lbnYtcHJldmlldy1uYW1le2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NjAwO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7ZmxleC13cmFwOndyYXA7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZX0uZW52LXByZXZpZXctcm93LmlzLXNlbnNpdGl2ZSAuZW52LXByZXZpZXctbmFtZXtjb2xvcjp2YXIoLS13YXJuaW5nKX0uZW52LXByZXZpZXctYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoxcHggNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC1zaXplOi42MnJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjA0ZW07YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nLW11dGVkKTtjb2xvcjp2YXIoLS13YXJuaW5nKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXdhcm5pbmcpfS5lbnYtcHJldmlldy1iYWRnZS1ydW50aW1le2JhY2tncm91bmQ6dmFyKC0taW5mby1tdXRlZCk7Y29sb3I6dmFyKC0taW5mbyk7Ym9yZGVyLWNvbG9yOnZhcigtLWluZm8pfS5lbnYtcHJldmlldy12YWx1ZXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO21pbi13aWR0aDowfS5lbnYtcHJldmlldy12YWx1ZS5pcy1ydW50aW1le2ZvbnQtc3R5bGU6aXRhbGljO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5lbnYtcHJldmlldy1sZW57Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi42OHJlbTt3aGl0ZS1zcGFjZTpub3dyYXB9LmVudi1wcmV2aWV3LWxvYWRpbmcsLmVudi1wcmV2aWV3LWVtcHR5e3BhZGRpbmc6MjRweCA4cHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi43OHJlbX0uZW52LXByZXZpZXctZm9vdGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHg7cGFkZGluZzoxNHB4IDI0cHggMThweH0uZW52LXByZXZpZXctaGludHtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleDoxO21pbi13aWR0aDowfUBtZWRpYShtYXgtd2lkdGg6NjQwcHgpey5lbnYtcHJldmlldy1tb2RhbHttYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDI0cHgpfS5lbnYtcHJldmlldy1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6NHB4fS5lbnYtcHJldmlldy1sZW57anVzdGlmeS1zZWxmOmVuZH0uZW52LXByZXZpZXctc2VhcmNoLC5lbnYtcHJldmlldy1jb250cm9sc3t3aWR0aDoxMDAlfX0uc2V0dGluZ3MtcmFuZ2Utcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7cGFkZGluZzoxMnB4IDE0cHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6I2ZmZmZmZjhjO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEpO21hcmdpbi10b3A6OHB4fS5zZXR0aW5ncy1yYW5nZS1sYWJlbHtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7ZmxleDowIDAgYXV0bzttYXJnaW4tYm90dG9tOjB9LnNldHRpbmdzLXJhbmdle2ZsZXg6MTttaW4td2lkdGg6MDthY2NlbnQtY29sb3I6dmFyKC0tYWNjZW50KX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZXstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7aGVpZ2h0OjIycHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7bWFyZ2luOjA7LS1yYW5nZS1maWxsOiA1MCV9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6Oi13ZWJraXQtc2xpZGVyLXJ1bm5hYmxlLXRyYWNre2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsdmFyKC0tYWNjZW50KSAwJSx2YXIoLS1hY2NlbnQpIHZhcigtLXJhbmdlLWZpbGwsIDUwJSkscmdiYSgxMjUsOTEsNTcsLjIpIHZhcigtLXJhbmdlLWZpbGwsIDUwJSkscmdiYSgxMjUsOTEsNTcsLjIpIDEwMCUpO2JvcmRlcjpub25lfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOjotd2Via2l0LXNsaWRlci10aHVtYnstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTthcHBlYXJhbmNlOm5vbmU7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyOm5vbmU7Ym94LXNoYWRvdzowIDJweCA2cHggIzE0MGUwODM4LDAgMCAwIC41cHggIzdkNWIzOTFhO21hcmdpbi10b3A6LThweDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2V9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6aG92ZXI6Oi13ZWJraXQtc2xpZGVyLXRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjA4KX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTphY3RpdmU6Oi13ZWJraXQtc2xpZGVyLXRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjE2KTtib3gtc2hhZG93OjAgNHB4IDEwcHggIzE0MGUwODQ3LDAgMCAwIDhweCAjYzU2NTNkMWYsMCAwIDAgLjVweCAjN2Q1YjM5MWF9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6Zm9jdXMtdmlzaWJsZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7Ym94LXNoYWRvdzowIDJweCA2cHggIzE0MGUwODM4LDAgMCAwIDRweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgMCAwIC41cHggIzdkNWIzOTFhfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOjotbW96LXJhbmdlLXRyYWNre2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDojN2Q1YjM5MzM7Ym9yZGVyOm5vbmV9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6Oi1tb3otcmFuZ2UtcHJvZ3Jlc3N7aGVpZ2h0OjRweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Ym9yZGVyOm5vbmV9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6Oi1tb3otcmFuZ2UtdGh1bWJ7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmY7Y3Vyc29yOnBvaW50ZXI7Ym94LXNoYWRvdzowIDJweCA2cHggIzE0MGUwODM4LDAgMCAwIC41cHggIzdkNWIzOTFhO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xNnMgZWFzZX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTpob3Zlcjo6LW1vei1yYW5nZS10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMS4wOCl9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6YWN0aXZlOjotbW96LXJhbmdlLXRodW1ie3RyYW5zZm9ybTpzY2FsZSgxLjE2KX0uc2V0dGluZ3MtcmFuZ2UtdmFsdWV7ZmxleDowIDAgNDRweDt0ZXh0LWFsaWduOnJpZ2h0O2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9ue2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbj4uZmllbGQtaW5wdXQsLnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbj4uZmllbGQtc2VsZWN0LC5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24+c2VsZWN0e2ZsZXg6MTttaW4td2lkdGg6MH0uc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uPi5idG57ZmxleC1zaHJpbms6MH0uc2V0dGluZ3MtYWJvdXQtcm93LWFjdGlvbntmbGV4LXdyYXA6bm93cmFwfS5zZXR0aW5ncy12YWx1ZS1mbGV4e2ZsZXg6MTt0ZXh0LWFsaWduOnJpZ2h0fS5maWxlLXBpY2tlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6NnB4IDEycHggNnB4IDZweDtiYWNrZ3JvdW5kOiNmZmZmZmZiODtib3JkZXI6MXB4IGRhc2hlZCByZ2JhKDEyNSw5MSw1NywuMjUpO2JvcmRlci1yYWRpdXM6MTJweDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMThzLGJhY2tncm91bmQgLjE4c30uZmlsZS1waWNrZXI6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudC1zb2Z0LCByZ2JhKDE5NywgMTAxLCA2MSwgLjQ1KSk7YmFja2dyb3VuZDojZmZmZmZmZTZ9LmZpbGUtcGlja2VyLmZpbGUtcGlja2VyLWhhcy1maWxle2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6I2M1NjUzZDU5O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjYzU2NTNkMTQsI2ZmZmZmZmQ5KX0uZmlsZS1waWNrZXItaW5wdXR7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmV9LmZpbGUtcGlja2VyLXRyaWdnZXJ7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjhweCAxNHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1hY2NlbnQpLGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFjY2VudCkgODAlLCMwMDAgMCUpKTtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDA7Ym9yZGVyLXJhZGl1czo5cHg7Y3Vyc29yOnBvaW50ZXI7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOmZpbHRlciAuMTVzLHRyYW5zZm9ybSAuMTVzLGJveC1zaGFkb3cgLjE1cztib3gtc2hhZG93OnZhcigtLXNoYWRvdy14cyk7dXNlci1zZWxlY3Q6bm9uZX0uZmlsZS1waWNrZXItdHJpZ2dlcjpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygxLjA1KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSl9LmZpbGUtcGlja2VyLXRyaWdnZXI6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfS5maWxlLXBpY2tlci1pbnB1dDpmb2N1cy12aXNpYmxlKy5maWxlLXBpY2tlci10cmlnZ2Vye291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fS5maWxlLXBpY2tlci1pY29ue3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MH0uZmlsZS1waWNrZXItbGFiZWx7d2hpdGUtc3BhY2U6bm93cmFwfS5maWxlLXBpY2tlci1uYW1le2ZsZXg6MTttaW4td2lkdGg6MDtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyl9LmZpbGUtcGlja2VyLmZpbGUtcGlja2VyLWhhcy1maWxlIC5maWxlLXBpY2tlci1uYW1le2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NTAwfS5zZXR0aW5ncy1hcHAtaWNvbi1ibG9ja3ttYXJnaW4tYm90dG9tOjE4cHh9LnNldHRpbmdzLWFwcC1pY29uLXBpY2tlcntkaXNwbGF5OmZsZXg7Z2FwOjEycHg7ZmxleC13cmFwOndyYXB9LnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6MTBweDtib3JkZXItcmFkaXVzOjE0cHg7YmFja2dyb3VuZDojZmZmZmZmOGM7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTIpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xOHMsYmFja2dyb3VuZCAuMThzLHRyYW5zZm9ybSAuMThzLGJveC1zaGFkb3cgLjE4czttaW4td2lkdGg6ODRweH0uc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JvcmRlci1jb2xvcjojYzU2NTNkNGQ7YmFja2dyb3VuZDojZmZmZmZmYzc7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteHMpfS5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24uc2VsZWN0ZWQsLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvblthcmlhLXByZXNzZWQ9dHJ1ZV17Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNjNTY1M2QyNCwjYzU2NTNkMGEpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNjNTY1M2QzM30uc2V0dGluZ3MtYXBwLWljb24tcHJldmlld3t3aWR0aDo1NnB4O2hlaWdodDo1NnB4O2JvcmRlci1yYWRpdXM6MTJweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5zZXR0aW5ncy1hcHAtaWNvbi1sYWJlbHtmb250LXNpemU6LjcycmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo1MDB9LnNldHRpbmdzLWNvbm5lY3QtdXJsLXRleHR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZToxMnB4O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7d29yZC1icmVhazpicmVhay1hbGw7dXNlci1zZWxlY3Q6YWxsOy13ZWJraXQtdXNlci1zZWxlY3Q6YWxsfUBtZWRpYShtYXgtd2lkdGg6NjQwcHgpey5zZXR0aW5ncy10b2dnbGUtcm93LC5zZXR0aW5ncy1yYW5nZS1yb3d7cGFkZGluZzoxMHB4IDEycHh9LnNldHRpbmdzLXRvZ2dsZS1yb3d7ZmxleC13cmFwOndyYXB9LnNldHRpbmdzLWNhcmQtYWN0aW9uc3tqdXN0aWZ5LWNvbnRlbnQ6c3RyZXRjaH0uc2V0dGluZ3MtY2FyZC1hY3Rpb25zIC5idG57ZmxleDoxO21pbi13aWR0aDowfS5maWxlLXBpY2tlcntmbGV4LXdyYXA6d3JhcDtwYWRkaW5nOjhweH0uZmlsZS1waWNrZXItdHJpZ2dlcntmbGV4OjEgMSBhdXRvO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmZpbGUtcGlja2VyLW5hbWV7ZmxleDoxIDEgMTAwJTt0ZXh0LWFsaWduOmNlbnRlcjtwYWRkaW5nOjAgNHB4fS5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb257ZmxleC13cmFwOndyYXB9LnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbj4uYnRue2ZsZXg6MX19LnRvcGJhci1naXQtc2xvdHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0udG9wYmFyLWdpdC1zbG90OmVtcHR5e2Rpc3BsYXk6bm9uZX0udG9wYmFyLWdpdC1iYWRnZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O2hlaWdodDozMnB4O3BhZGRpbmc6MCAxMHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Y3Vyc29yOnBvaW50ZXI7d2hpdGUtc3BhY2U6bm93cmFwO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7Ym94LXNpemluZzpib3JkZXItYm94O2xpbmUtaGVpZ2h0OjF9LnRvcGJhci1naXQtYmFkZ2U6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmODA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0udG9wYmFyLWdpdC1iYWRnZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Nil9LnRvcGJhci1naXQtaWNvbntmbGV4LXNocmluazowO29wYWNpdHk6Ljg1fS50b3BiYXItZ2l0LWJyYW5jaHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7Zm9udC13ZWlnaHQ6NjAwO21heC13aWR0aDoxMmVtO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS50b3BiYXItZ2l0LWNvdW50e2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKX0udG9wYmFyLWdpdC1jbGVhbntjb2xvcjojM2NhMDVhZDk7Zm9udC13ZWlnaHQ6NzAwO2ZvbnQtc2l6ZTouNzhyZW19LnF1aWNrLWNvbW1pdC1tb2RhbHttYXgtd2lkdGg6NTQwcHh9LnF1aWNrLWNvbW1pdC1tb2RhbCAubW9kYWwtYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMnB4fS5xYy1lbXB0eXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwYWRkaW5nOjZweCAwO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc3R5bGU6aXRhbGljfS5xYy1maWxlLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo5cHg7bGluZS1oZWlnaHQ6MS42O3BhZGRpbmc6MXB4IDJweDtib3JkZXItcmFkaXVzOjVweH0ucWMtZmlsZS1yb3c6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MGZ9LnFjLWZpbGUtYmFkZ2V7ZmxleC1zaHJpbms6MDt3aWR0aDoxN3B4O2hlaWdodDoxN3B4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOi42NnJlbTtmb250LXdlaWdodDo4MDA7bGV0dGVyLXNwYWNpbmc6MDtsaW5lLWhlaWdodDoxO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyl9LnFjLWJhZGdlLWFkZHtjb2xvcjojMjI4MDQyZmE7YmFja2dyb3VuZDojM2NhMDVhMjl9LnFjLWJhZGdlLW1vZHtjb2xvcjojYWE2ZTBlZmE7YmFja2dyb3VuZDojZGM5NjFlMjl9LnFjLWJhZGdlLWRlbHtjb2xvcjojYmUzODM4ZmE7YmFja2dyb3VuZDojYzg0NjQ2MjZ9LnFjLWJhZGdlLXJlbntjb2xvcjojNGU2NGJjZmE7YmFja2dyb3VuZDojNmU4MmM4Mjl9LnFjLWJhZGdlLXVudHJhY2tlZHtjb2xvcjojMjI4MDQyZjI7YmFja2dyb3VuZDojM2NhMDVhMWZ9LnFjLWJhZGdlLWlnbm9yZWQsLnFjLWJhZGdlLW90aGVye2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JhY2tncm91bmQ6Izc4Nzg3ODFmfS5xYy1maWxlLXBhdGh7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjB9LnFjLWZpbGUtZGlye2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5xYy1maWxlLW5hbWV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXdlaWdodDo1MDB9LnFjLXN1Ym1vZHVsZS1iYWRnZXtmbGV4LXNocmluazowO3BhZGRpbmc6MXB4IDZweDtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOiM4YzY0YzgyOTtjb2xvcjojNmU0NmI0ZjI7Zm9udC1zaXplOi42OHJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW07d2hpdGUtc3BhY2U6bm93cmFwfS5xYy1tZXNzYWdlLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDo4cHh9LnFjLWFpLWJ0bntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O2NvbG9yOnZhcigtLWFjY2VudCl9LnFjLWFpLWJ0biBzdmd7Y29sb3I6dmFyKC0tYWNjZW50KTtmbGV4LXNocmluazowfS5xYy1haS1idG46ZGlzYWJsZWR7b3BhY2l0eTouNTtjdXJzb3I6bm90LWFsbG93ZWQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnFjLWFpLWJ0bjpkaXNhYmxlZCBzdmd7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnFjLW1lc3NhZ2UtaW5wdXR7cmVzaXplOnZlcnRpY2FsO21pbi1oZWlnaHQ6NjhweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7Zm9udC1zaXplOi44NHJlbTtsaW5lLWhlaWdodDoxLjU1fS5xYy10YWctZmllbGQtaW5wdXR7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7Zm9udC1zaXplOi44MnJlbX0ucWMtdGFnLWZpZWxkLWlucHV0OmRpc2FibGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JhY2tncm91bmQ6IzdkNWIzOTBhO2JvcmRlci1jb2xvcjojN2Q1YjM5MTQ7Y3Vyc29yOmRlZmF1bHQ7Ym94LXNoYWRvdzpub25lfS5xdWljay1jb21taXQtbW9kYWwgLndvcmt0cmVlLW1lcmdlLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6OHB4O21hcmdpbi10b3A6NHB4fS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTRweH0ucWMtc2VjdGlvbi10aXRsZXtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjcwMDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjA3ZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5xdWljay1jb21taXQtbW9kYWx7bWF4LXdpZHRoOjYyMHB4fS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLWJvZHl7Z2FwOjB9LnFjLXJlbGVhc2UtcGFuZWwsLnFjLXJlc3VsdC1wYW5lbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxNHB4fS5xYy1wYWlye2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6NzJweCBtaW5tYXgoMCwxZnIpO2dhcDoxMnB4O2FsaWduLWl0ZW1zOnN0YXJ0fS5xYy1wYWlyLWxhYmVse3BhZGRpbmctdG9wOjlweDtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjgwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsZXR0ZXItc3BhY2luZzouMDZlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LnFjLXBhaXItZmxvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLC45ZnIpIDI0cHggbWlubWF4KDAsMS4xZnIpO2dhcDo4cHg7YWxpZ24taXRlbXM6Y2VudGVyO21pbi13aWR0aDowfS5xYy1wYWlyLXZhbHVle21pbi13aWR0aDowO21pbi1oZWlnaHQ6MzhweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo4cHggMTBweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojZmZmZmZmODU7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO292ZXJmbG93OmhpZGRlbn0ucWMtcGFpci12YWx1ZS0tdG97YmFja2dyb3VuZDojZmZmZmZmZDY7Ym9yZGVyLWNvbG9yOiNjNTY1M2QzODtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5xYy1wYWlyLXZhbHVlIGNvZGV7ZmxleC1zaHJpbms6MDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7Zm9udC1zaXplOi43OHJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QxNztib3JkZXItcmFkaXVzOjVweDtwYWRkaW5nOjJweCA2cHh9LnFjLXBhaXItdmFsdWUgc3BhbnttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOi44MnJlbX0ucWMtcGFpci0tY29tbWl0IC5xYy1wYWlyLWZsb3d7YWxpZ24taXRlbXM6c3RyZXRjaH0ucWMtcGFpci0tY29tbWl0IC5xYy1wYWlyLXZhbHVle21pbi1oZWlnaHQ6NzZweDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5xYy1wYWlyLS1jb21taXQgLnFjLXBhaXItdmFsdWUtLXRve3BhZGRpbmc6MDtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5xYy1wYWlyLS1jb21taXQgLnFjLW1lc3NhZ2UtaW5wdXR7bWluLWhlaWdodDo3NnB4O3dpZHRoOjEwMCU7cmVzaXplOnZlcnRpY2FsfS5xYy1wYWlyLS10YWcgLnFjLXBhaXItdmFsdWUtLXRve3BhZGRpbmc6MDtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5xYy1wYWlyLS10YWcgLnFjLXRhZy1maWVsZC1pbnB1dHt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MzhweH0ucWMtcGFpci1hcnJvd3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjgwMDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSl9LnFjLW11dGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc3R5bGU6aXRhbGljfS5xYy1tb2RhbC1hY3Rpb25zLC5xYy1yZXN1bHQtYWN0aW9uc3tkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDo4cHh9LnFjLXJlc3VsdC1wYW5lbHtwYWRkaW5nLXRvcDoycHh9LnFjLXJlc3VsdC1wdXNoZWR7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7bWluLWhlaWdodDozMHB4O3BhZGRpbmc6MCAxMHB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Y29sb3I6IzI4ODI0NmYyO2JhY2tncm91bmQ6IzNjYTA1YTFmO2JvcmRlcjoxcHggc29saWQgcmdiYSg2MCwxNjAsOTAsLjI0KTtmb250LXNpemU6Ljc4cmVtO2ZvbnQtd2VpZ2h0OjcwMH0ucWMtZG9jay13cmFwe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDtwYWRkaW5nLXRvcDoycHh9LnFjLWRvY2std3JhcFtkYXRhLWRpc2FibGVkPSIxIl17b3BhY2l0eTouNTU7cG9pbnRlci1ldmVudHM6bm9uZX0ucWMtZG9jay1idXN5e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O3BhZGRpbmc6MTBweCAxNHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNjNTY1M2QxYTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMik7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXNpemU6LjgycmVtO2ZvbnQtd2VpZ2h0OjcwMH0ucWMtZG9jay1idXN5LWRvdHt3aWR0aDo4cHg7aGVpZ2h0OjhweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7YW5pbWF0aW9uOnFjLWRvY2stYnVzeS1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgcWMtZG9jay1idXN5LXB1bHNlezAlLHRve29wYWNpdHk6LjQ7dHJhbnNmb3JtOnNjYWxlKC44NSl9NTAle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMS4xNSl9fS5xYy1kb2NrLXN0YWdley0tcWMtdG9uZTogdmFyKC0tYWNjZW50KTstLXFjLXRvbmUtc29mdDogcmdiYSgxOTcsIDEwMSwgNjEsIC4yKTtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgOTZweDtnYXA6MTBweDtoZWlnaHQ6MTY4cHg7cGFkZGluZzo4cHg7Ym9yZGVyLXJhZGl1czoxNnB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE2KTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgxMjAlIDEyMCUgYXQgMzAlIDMwJSwjZmZmZmZmOGMsI2ZmZjVlYjI5KSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZmZmY3NSwjZmZmNWViMzgpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZmIzLDAgMXB4IDNweCAjNTkzYTIwMGQ7dXNlci1zZWxlY3Q6bm9uZX0ucWMtZG9jay1zdGFnZVtkYXRhLWFjdGlvbj1jb21taXQtdGFnXXstLXFjLXRvbmU6ICM0YTZmYTU7LS1xYy10b25lLXNvZnQ6IHJnYmEoNzQsIDExMSwgMTY1LCAuMjIpfS5xYy1kb2NrLXN0YWdlW2RhdGEtYWN0aW9uPWNvbW1pdC1wdXNoXXstLXFjLXRvbmU6ICM0ZjdhNTg7LS1xYy10b25lLXNvZnQ6IHJnYmEoNzksIDEyMiwgODgsIC4yMil9LnFjLWRvY2stc3RhZ2VbZGF0YS1hY3Rpb249Y29tbWl0LXRhZy1wdXNoXXstLXFjLXRvbmU6ICM3YzVhYTg7LS1xYy10b25lLXNvZnQ6IHJnYmEoMTI0LCA5MCwgMTY4LCAuMjQpfS5xYy1kb2NrLWZpZWxke3Bvc2l0aW9uOnJlbGF0aXZlO21pbi13aWR0aDowO2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOnJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgxMjUsOTEsNTcsLjAzNSkgMCA4cHgsdHJhbnNwYXJlbnQgOHB4IDE2cHgpO3RvdWNoLWFjdGlvbjpub25lO292ZXJmbG93OmhpZGRlbn0ucWMtZG9jay1jbHVzdGVye3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDtib3JkZXItcmFkaXVzOjE0cHg7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1xYy10b25lKSAxMCUsdHJhbnNwYXJlbnQpO2JvcmRlcjoxLjVweCBkYXNoZWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tcWMtdG9uZSkgMzglLHRyYW5zcGFyZW50KTtib3gtc2hhZG93OjAgNHB4IDE0cHggdmFyKC0tcWMtdG9uZS1zb2Z0KTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MDtvcGFjaXR5OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjIycyBjdWJpYy1iZXppZXIoLjIyLDEsLjM2LDEpLHdpZHRoIC4yMnMgY3ViaWMtYmV6aWVyKC4yMiwxLC4zNiwxKSxoZWlnaHQgLjIycyBjdWJpYy1iZXppZXIoLjIyLDEsLjM2LDEpLG9wYWNpdHkgLjE4cyBlYXNlLGJhY2tncm91bmQgLjJzIGVhc2UsYm9yZGVyLWNvbG9yIC4ycyBlYXNlfS5xYy1kb2NrLWNsdXN0ZXIuaXMtYWN0aXZle29wYWNpdHk6MX0ucWMtY2hpcHtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjdweDtoZWlnaHQ6MzhweDtwYWRkaW5nOjAgMTRweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4yMik7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOiNmZmZmZmZlYjtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjgycmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzouMDFlbTt3aGl0ZS1zcGFjZTpub3dyYXA7Y3Vyc29yOmdyYWI7dG91Y2gtYWN0aW9uOm5vbmU7Ym94LXNoYWRvdzowIDJweCA2cHggIzU5M2EyMDE0O3otaW5kZXg6Mjt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2UsYmFja2dyb3VuZCAuMThzIGVhc2UsY29sb3IgLjE4cyBlYXNlfS5xYy1jaGlwLnFjLWNoaXAtLWFuaW17dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI4cyBjdWJpYy1iZXppZXIoLjIyLDEsLjM2LDEpLGJveC1zaGFkb3cgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2UsYmFja2dyb3VuZCAuMThzIGVhc2UsY29sb3IgLjE4cyBlYXNlfS5xYy1jaGlwLmlzLWdyYWJiaW5ne2N1cnNvcjpncmFiYmluZzt6LWluZGV4OjU7Ym94LXNoYWRvdzowIDEycHggMjZweCAjNTkzYTIwMzh9LnFjLWNoaXA6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5xYy1jaGlwOm5vdCg6ZGlzYWJsZWQpOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1xYy10b25lKX0ucWMtY2hpcC1kb3R7d2lkdGg6OXB4O2hlaWdodDo5cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojN2Q1YjM5NGQ7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAycHggI2ZmZjk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjE4cyBlYXNlfS5xYy1jaGlwLS1jb21taXQgLnFjLWNoaXAtZG90e2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KX0ucWMtY2hpcC0tdGFnIC5xYy1jaGlwLWRvdHtiYWNrZ3JvdW5kOiM0YTZmYTV9LnFjLWNoaXAtLXB1c2ggLnFjLWNoaXAtZG90e2JhY2tncm91bmQ6IzRmN2E1OH0ucWMtY2hpcC0tc3ViIC5xYy1jaGlwLWRvdHtiYWNrZ3JvdW5kOiMzYThhOGZ9LnFjLWNoaXAtLWNvbW1pdHtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWNjZW50KSAzMCUscmdiYSgxMjUsOTEsNTcsLjIpKX0ucWMtY2hpcC0tdGFne2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjNGE2ZmE1IDMwJSxyZ2JhKDEyNSw5MSw1NywuMikpfS5xYy1jaGlwLS1wdXNoe2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjNGY3YTU4IDMwJSxyZ2JhKDEyNSw5MSw1NywuMikpfS5xYy1jaGlwLS1zdWJ7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCMzYThhOGYgMzAlLHJnYmEoMTI1LDkxLDU3LC4yKSl9LnFjLWNoaXAuaXMtZ3JhYmJpbmcsLnFjLWNoaXAuaXMtYXR0YWNoZWR7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3gtc2hhZG93OjAgMTJweCAyNnB4IHZhcigtLXFjLXRvbmUtc29mdCk7ei1pbmRleDo1fS5xYy1jaGlwLmlzLWdyYWJiaW5nIC5xYy1jaGlwLWRvdCwucWMtY2hpcC5pcy1hdHRhY2hlZCAucWMtY2hpcC1kb3R7dHJhbnNmb3JtOnNjYWxlKDEuMSl9LnFjLWNoaXAtLWNvbW1pdC5pcy1ncmFiYmluZywucWMtY2hpcC0tY29tbWl0LmlzLWF0dGFjaGVke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmLGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFjY2VudCkgMTYlLCNmZmYpKTtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWNjZW50KSA0NiUsdHJhbnNwYXJlbnQpfS5xYy1jaGlwLS10YWcuaXMtZ3JhYmJpbmcsLnFjLWNoaXAtLXRhZy5pcy1hdHRhY2hlZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZixjb2xvci1taXgoaW4gc3JnYiwjNGE2ZmE1IDE2JSwjZmZmKSk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCM0YTZmYTUgNDYlLHRyYW5zcGFyZW50KX0ucWMtY2hpcC0tcHVzaC5pcy1ncmFiYmluZywucWMtY2hpcC0tcHVzaC5pcy1hdHRhY2hlZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZixjb2xvci1taXgoaW4gc3JnYiwjNGY3YTU4IDE2JSwjZmZmKSk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLCM0ZjdhNTggNDYlLHRyYW5zcGFyZW50KX0ucWMtY2hpcC0tc3ViLmlzLWdyYWJiaW5nLC5xYy1jaGlwLS1zdWIuaXMtYXR0YWNoZWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmYsY29sb3ItbWl4KGluIHNyZ2IsIzNhOGE4ZiAxNiUsI2ZmZikpO2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjM2E4YThmIDQ2JSx0cmFuc3BhcmVudCl9LnFjLWRvY2stbGF1bmNoe2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjRweDtib3JkZXItcmFkaXVzOjE0cHg7Ym9yZGVyOjEuNXB4IGRhc2hlZCByZ2JhKDEyNSw5MSw1NywuMzIpO2JhY2tncm91bmQ6I2ZmZjY7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7dG91Y2gtYWN0aW9uOm5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlci1jb2xvciAuMnMgZWFzZSxjb2xvciAuMnMgZWFzZSx0cmFuc2Zvcm0gLjJzIGVhc2UsYm94LXNoYWRvdyAuMnMgZWFzZX0ucWMtZG9jay1sYXVuY2g6bm90KDpkaXNhYmxlZCk6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLXFjLXRvbmUpO2NvbG9yOnZhcigtLXFjLXRvbmUpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tcWMtdG9uZSkgOCUscmdiYSgyNTUsMjU1LDI1NSwuNSkpfS5xYy1kb2NrLWxhdW5jaDpkaXNhYmxlZHtjdXJzb3I6bm90LWFsbG93ZWR9LnFjLWRvY2stbGF1bmNoLWFycm93e2Rpc3BsYXk6aW5saW5lLWZsZXg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIGVhc2V9LnFjLWRvY2stbGF1bmNoLWxhYmVse2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOi4wNGVtfS5xYy1kb2NrLXN0YWdlW2RhdGEtaG90PSIxIl0gLnFjLWRvY2stbGF1bmNoe2JvcmRlci1zdHlsZTpzb2xpZDtib3JkZXItY29sb3I6dmFyKC0tcWMtdG9uZSk7YmFja2dyb3VuZDp2YXIoLS1xYy10b25lKTtjb2xvcjojZmZmO3RyYW5zZm9ybTpzY2FsZSgxLjA0KTtib3gtc2hhZG93OjAgOHB4IDIycHggdmFyKC0tcWMtdG9uZS1zb2Z0KSwwIDAgMCA1cHggY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tcWMtdG9uZSkgMTglLHRyYW5zcGFyZW50KX0ucWMtZG9jay1zdGFnZVtkYXRhLWhvdD0iMSJdIC5xYy1kb2NrLWxhdW5jaC1hcnJvd3t0cmFuc2Zvcm06dHJhbnNsYXRlKDNweCl9LnFjLWRvY2staGludHttaW4taGVpZ2h0OjFlbTtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dGV4dC1hbGlnbjpjZW50ZXI7bGV0dGVyLXNwYWNpbmc6LjAyZW07b3BhY2l0eTouOH1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5xYy1jaGlwLC5xYy1jaGlwLS1hbmltLC5xYy1kb2NrLWNsdXN0ZXIsLnFjLWRvY2stbGF1bmNoLC5xYy1kb2NrLWJ1c3ktZG90e2FuaW1hdGlvbjpub25lIWltcG9ydGFudDt0cmFuc2l0aW9uOm5vbmUhaW1wb3J0YW50fX1AbWVkaWEobWF4LXdpZHRoOjcyMHB4KXsudG9wYmFyLWdpdC1icmFuY2h7bWF4LXdpZHRoOjhlbX0udG9wYmFyLWdpdC1iYWRnZXtwYWRkaW5nOjAgOHB4O2ZvbnQtc2l6ZTouN3JlbX0ucXVpY2stY29tbWl0LW1vZGFse3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDpjYWxjKDEwMGR2aCAtIG1heCgxNnB4LHZhcigtLXdhbmQtc2FmZS10b3ApKSAtIG1heCgxMnB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKSl9LnF1aWNrLWNvbW1pdC1tb2RhbCAubW9kYWwtaGVhZGVye3BhZGRpbmc6MTRweCAxNnB4IDEycHh9LnF1aWNrLWNvbW1pdC1tb2RhbCAubW9kYWwtdGl0bGV7Zm9udC1zaXplOjEuMDVyZW19LnF1aWNrLWNvbW1pdC1tb2RhbCAubW9kYWwtc3VidGl0bGV7bWFyZ2luLXRvcDo0cHg7Zm9udC1zaXplOi43OHJlbTtsaW5lLWhlaWdodDoxLjM1fS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLWJvZHl7cGFkZGluZzoxNHB4IDE2cHggY2FsYygxNnB4ICsgdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpfS5xYy1yZWxlYXNlLXBhbmVsLC5xYy1yZXN1bHQtcGFuZWx7Z2FwOjEycHh9LnFjLXBhaXJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6NXB4fS5xYy1wYWlyLWxhYmVse3BhZGRpbmctdG9wOjA7Zm9udC1zaXplOi42OHJlbX0ucWMtcGFpci1mbG93e2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjdweDtwb3NpdGlvbjpyZWxhdGl2ZX0ucWMtcGFpci1hcnJvd3t3aWR0aDoyOHB4O2hlaWdodDoyMHB4O2p1c3RpZnktc2VsZjpjZW50ZXI7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7Zm9udC1zaXplOjFyZW07bGluZS1oZWlnaHQ6MX0ucWMtcGFpci12YWx1ZXttaW4taGVpZ2h0OjM2cHg7cGFkZGluZzo4cHggMTBweH0ucWMtcGFpci12YWx1ZSBjb2Rle2ZvbnQtc2l6ZTouNzZyZW19LnFjLXBhaXItdmFsdWUgc3Bhbntmb250LXNpemU6LjhyZW19LnFjLXBhaXItLWNvbW1pdCAucWMtcGFpci12YWx1ZXttaW4taGVpZ2h0OmF1dG99LnFjLXBhaXItLWNvbW1pdCAucWMtbWVzc2FnZS1pbnB1dHttaW4taGVpZ2h0OjkycHg7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS40NX0ucWMtcGFpci0tdGFnIC5xYy10YWctZmllbGQtaW5wdXR7bWluLWhlaWdodDo0NHB4O2ZvbnQtc2l6ZToxNnB4fS5xYy1kb2NrLXN0YWdle2hlaWdodDoyMzZweDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dyaWQtdGVtcGxhdGUtcm93czptaW5tYXgoMCwxZnIpIDU4cHg7Z2FwOjhweDtwYWRkaW5nOjhweDtib3JkZXItcmFkaXVzOjE0cHh9LnFjLWRvY2stZmllbGR7bWluLWhlaWdodDoxNjBweH0ucWMtY2hpcHtoZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTJweDtmb250LXNpemU6LjhyZW19LnFjLWRvY2stbGF1bmNoe21pbi1oZWlnaHQ6NThweDtmbGV4LWRpcmVjdGlvbjpyb3c7Z2FwOjhweDtib3JkZXItcmFkaXVzOjEzcHh9LnFjLWRvY2stbGF1bmNoLWxhYmVse2ZvbnQtc2l6ZTouNzhyZW19LnFjLWRvY2stc3RhZ2VbZGF0YS1ob3Q9IjEiXSAucWMtZG9jay1sYXVuY2gtYXJyb3d7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMnB4KX19LndhbmQtZGlhbG9nLWJhY2tkcm9we3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ei1pbmRleDo5MDAwO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nLXRvcDptYXgoMjRweCx2YXIoLS13YW5kLXNhZmUtdG9wKSk7cGFkZGluZy1ib3R0b206bWF4KDI0cHgsdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpO3BhZGRpbmctbGVmdDptYXgoMjRweCx2YXIoLS13YW5kLXNhZmUtbGVmdCkpO3BhZGRpbmctcmlnaHQ6bWF4KDI0cHgsdmFyKC0td2FuZC1zYWZlLXJpZ2h0KSk7YmFja2dyb3VuZDojMTQwZTA4NTc7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxOHB4KSBzYXR1cmF0ZSgxNDAlKTthbmltYXRpb246d2FuZERpYWxvZ0JhY2tkcm9wSW4gLjIycyBjdWJpYy1iZXppZXIoLjE2LDEsLjMsMSkgYm90aH0ud2FuZC1kaWFsb2ctYmFja2Ryb3AuY2xvc2luZ3thbmltYXRpb246d2FuZERpYWxvZ0JhY2tkcm9wT3V0IC4xNnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgYm90aDtwb2ludGVyLWV2ZW50czpub25lfUBrZXlmcmFtZXMgd2FuZERpYWxvZ0JhY2tkcm9wSW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19QGtleWZyYW1lcyB3YW5kRGlhbG9nQmFja2Ryb3BPdXR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19LndhbmQtZGlhbG9ne3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjQyMHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoMTIwJSAxMjAlIGF0IDAlIDAlLHZhcigtLWFjY2VudC1tdXRlZCkgMCUsdHJhbnNwYXJlbnQgNTUlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWJnLWVsZXZhdGVkKSAwJSx2YXIoLS1iZy1zZWNvbmRhcnkpIDEwMCUpO2JvcmRlcjouNXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MjJweDtvdmVyZmxvdzpoaWRkZW47YmFja2Ryb3AtZmlsdGVyOmJsdXIoNDBweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cig0MHB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMjRweCA2NHB4IC0xMnB4ICM1OTNhMjA0NywwIDZweCAyMHB4IC02cHggIzU5M2EyMDI5LDAgMCAwIC41cHggIzdkNWIzOTE0LGluc2V0IDAgMXB4ICNmZmZmZmZiMzthbmltYXRpb246d2FuZERpYWxvZ0luIC4yOHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpIGJvdGh9LndhbmQtZGlhbG9nLWJhY2tkcm9wLmNsb3NpbmcgLndhbmQtZGlhbG9ne2FuaW1hdGlvbjp3YW5kRGlhbG9nT3V0IC4xNnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSkgYm90aH1Aa2V5ZnJhbWVzIHdhbmREaWFsb2dJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45MikgdHJhbnNsYXRlWSgxMHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgd2FuZERpYWxvZ091dHswJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjk2KSB0cmFuc2xhdGVZKDRweCl9fS53YW5kLWRpYWxvZy1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjE0cHg7cGFkZGluZzoyMnB4IDI0cHggMTJweH0ud2FuZC1kaWFsb2ctaWNvbntmbGV4LXNocmluazowO3dpZHRoOjQwcHg7aGVpZ2h0OjQwcHg7Ym9yZGVyLXJhZGl1czo1MCU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MTtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmY4MH0ud2FuZC1kaWFsb2ctaWNvbi5pbmZve2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQtc29mdCkgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTtjb2xvcjojZmZmfS53YW5kLWRpYWxvZy1pY29uLndhcm5pbmd7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmMGM4OTEgMCUsdmFyKC0td2FybmluZykgMTAwJSk7Y29sb3I6I2ZmZn0ud2FuZC1kaWFsb2ctaWNvbi5kYW5nZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNkOTgxNzggMCUsdmFyKC0tZGFuZ2VyKSAxMDAlKTtjb2xvcjojZmZmfS53YW5kLWRpYWxvZy1pY29uLnN1Y2Nlc3N7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCM4Y2FmOTQgMCUsdmFyKC0tc3VjY2VzcykgMTAwJSk7Y29sb3I6I2ZmZn0ud2FuZC1kaWFsb2ctaWNvbi5xdWVzdGlvbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50LXNvZnQpIDAlLHZhcigtLWFjY2VudCkgMTAwJSk7Y29sb3I6I2ZmZn0ud2FuZC1kaWFsb2ctdGV4dHdyYXB7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo2cHg7cGFkZGluZy10b3A6NHB4fS53YW5kLWRpYWxvZy10aXRsZXtmb250LXNpemU6MS4wNjI1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotLjAxZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsaW5lLWhlaWdodDoxLjM7d29yZC1icmVhazpicmVhay13b3JkfS53YW5kLWRpYWxvZy1tZXNzYWdle2ZvbnQtc2l6ZTouOXJlbTtmb250LXdlaWdodDo0MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2xpbmUtaGVpZ2h0OjEuNTU7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkfS53YW5kLWRpYWxvZy1ib2R5e3BhZGRpbmc6NHB4IDI0cHggMTRweH0ud2FuZC1kaWFsb2ctaW5wdXR7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kOnZhcigtLWJnLXN1cmZhY2UpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTFweCAxNHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi45cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxLjVweCAjN2Q1YjM5MGE7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLGJveC1zaGFkb3cgLjE1cyBlYXNlLGJhY2tncm91bmQgLjE1cyBlYXNlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0ud2FuZC1kaWFsb2ctaW5wdXQ6Zm9jdXN7b3V0bGluZTpub25lO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMS41cHggIzdkNWIzOTBhLDAgMCAwIDNweCB2YXIoLS1hY2NlbnQtZ2xvdyl9LndhbmQtZGlhbG9nLWZvb3RlcntkaXNwbGF5OmZsZXg7Z2FwOjhweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7cGFkZGluZzoxNHB4IDIwcHggMjBweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTttYXJnaW4tdG9wOjZweH0ud2FuZC1kaWFsb2ctZm9vdGVyIC5idG57bWluLXdpZHRoOjg0cHh9LndhbmQtZGlhbG9nIC5idG4tZGFuZ2Vye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1kYW5nZXItaG92ZXIpIDAlLHZhcigtLWRhbmdlcikgMTAwJSk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzowIDFweCAycHggdmFyKC0tZGFuZ2VyLW11dGVkKSwwIDRweCAxMHB4IC0ycHggdmFyKC0tZGFuZ2VyLW11dGVkKSxpbnNldCAwIDFweCAjZmZmZmZmMzgsaW5zZXQgMCAtMXB4ICM2MDFlMTgyZX0ud2FuZC1kaWFsb2cgLmJ0bi1kYW5nZXI6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNjOTYwNTUsI2IyNGY0NSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDJweCA0cHggdmFyKC0tZGFuZ2VyLW11dGVkKSwwIDhweCAyMHB4IC00cHggdmFyKC0tZGFuZ2VyLWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY0NyxpbnNldCAwIC0xcHggIzYwMWUxODJlfS53YW5kLWRpYWxvZyAuYnRuLWRhbmdlcjphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWRhbmdlcikgMCUsIzkzMzkyZiAxMDAlKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsud2FuZC1kaWFsb2ctYmFja2Ryb3AsLndhbmQtZGlhbG9nLWJhY2tkcm9wLmNsb3NpbmcsLndhbmQtZGlhbG9nLC53YW5kLWRpYWxvZy1iYWNrZHJvcC5jbG9zaW5nIC53YW5kLWRpYWxvZ3thbmltYXRpb246bm9uZSFpbXBvcnRhbnR9fUBzdXBwb3J0cyBub3QgKChiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkgb3IgKC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpKXsud2FuZC1kaWFsb2ctYmFja2Ryb3B7YmFja2dyb3VuZDojMTQwZTA4OTl9LndhbmQtZGlhbG9ne2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItc3VidGxlKX19QG1lZGlhKG1heC13aWR0aDo0ODBweCl7LndhbmQtZGlhbG9nLWJhY2tkcm9we3BhZGRpbmc6MTZweDthbGlnbi1pdGVtczpjZW50ZXJ9LndhbmQtZGlhbG9ne21heC13aWR0aDoxMDAlO2JvcmRlci1yYWRpdXM6MjBweH0ud2FuZC1kaWFsb2ctZm9vdGVye2ZsZXgtd3JhcDp3cmFwfS53YW5kLWRpYWxvZy1mb290ZXIgLmJ0bntmbGV4OjEgMSBhdXRvfX0uYnRuLXdpdGgtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4fS5idG4td2l0aC1pY29uPnN2Z3tmbGV4LXNocmluazowfS5jb21wb3Nlci1waWxsLWljb257ZGlzcGxheTppbmxpbmUtYmxvY2s7dmVydGljYWwtYWxpZ246LTJweH0uY29tcG9zZXItcGlsbC1sYWJlbHtkaXNwbGF5OmlubGluZS1ibG9jaztsZXR0ZXItc3BhY2luZzouMDJlbX0uc2V0dGluZ3Mtc2VjdGlvbi1pY29ue2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LnNldHRpbmdzLXNlY3Rpb24taWNvbj5zdmd7ZGlzcGxheTpibG9ja30uYmxhbmstY2hhdC10b29sLWJ0biAudG9vbC1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MThweDtoZWlnaHQ6MThweDtmb250LXNpemU6MS4xMjVyZW19LmJsYW5rLWNoYXQtdG9vbC1idG4gLnRvb2wtaWNvbj5zdmd7ZGlzcGxheTpibG9ja30uYmxhbmstY2hhdC10b29sLWJ0biAudG9vbC1pY29uLXRleHR7d2lkdGg6YXV0bztoZWlnaHQ6YXV0bztmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjF9LmJsYW5rLWNoYXQtY3dkLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS5ibGFuay1jaGF0LWN3ZC1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5ibGFuay1jaGF0LWN3ZC1hcnJvd3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uYmxhbmstY2hhdC1jd2QtYXJyb3c+c3Zne2Rpc3BsYXk6YmxvY2t9LmZvbGRlci1waWNrZXItaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LmZvbGRlci1waWNrZXItaWNvbj5zdmd7ZGlzcGxheTpibG9ja30uZm9sZGVyLXBpY2tlci1xdWljay1idG4uYnRuLXdpdGgtaWNvbntnYXA6NXB4fS5hcHByb3ZhbC1zdGF0cy1yb3ctaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MH0uYXBwcm92YWwtc3RhdHMtcm93LWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmF0dGFjaG1lbnQtcGlsbCAuYXR0LWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmZvbGRlci1waWNrZXItY29tcGFjdC1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MH0uZm9sZGVyLXBpY2tlci1jb21wYWN0LWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmZvbGRlci1waWNrZXItdG9nZ2xle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MH0uZm9sZGVyLXBpY2tlci10b2dnbGU+c3Zne2Rpc3BsYXk6YmxvY2t9LmZvbGRlci1waWNrZXItdG9nZ2xlLm9wZW57dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS53b3JraW5nLWRpci1pbmRpY2F0b3ItaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LndvcmtpbmctZGlyLWluZGljYXRvci1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS53YW5kLWpveXN0aWNrLXJvb3R7cG9zaXRpb246Zml4ZWQ7ei1pbmRleDo0MDtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt2aXNpYmlsaXR5OmhpZGRlbjt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2V9LndhbmQtam95c3RpY2stcm9vdC52aXNpYmxle29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGV9LndhbmQtam95c3RpY2stYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BvaW50ZXItZXZlbnRzOm5vbmU7dmlzaWJpbGl0eTpoaWRkZW59LndhbmQtam95c3RpY2stYmFja2Ryb3AuYWN0aXZle3Zpc2liaWxpdHk6dmlzaWJsZTtwb2ludGVyLWV2ZW50czphdXRvfS53YW5kLWpveXN0aWNrLWJhbGx7cG9zaXRpb246Zml4ZWQ7cmlnaHQ6MThweDtib3R0b206OTZweDt3aWR0aDo1NHB4O2hlaWdodDo1NHB4O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjojZjVlYmUxZjA7YmFja2dyb3VuZDojMjMxYzE4ZGI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI0NSwyMzUsMjI1LC4xOCk7Ym94LXNoYWRvdzowIDhweCAyMnB4ICMwMDAwMDA0ZCxpbnNldCAwIDFweCAjZmZmZmZmMTQ7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTBweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTtwb2ludGVyLWV2ZW50czphdXRvO3RvdWNoLWFjdGlvbjpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt6LWluZGV4OjQzO2N1cnNvcjpncmFiO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xOHMgdmFyKC0tZWFzZS1zcHJpbmcpLGJhY2tncm91bmQgLjJzIGVhc2UsYm9yZGVyLWNvbG9yIC4ycyBlYXNlLGJveC1zaGFkb3cgLjJzIGVhc2V9LndhbmQtam95c3RpY2stbG9nb3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9LndhbmQtam95c3RpY2stYmFsbDpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3JkZXItY29sb3I6I2Y1ZWJlMTRkO2JhY2tncm91bmQ6IzJiMjIxZGU2O2JveC1zaGFkb3c6MCAxMHB4IDI2cHggIzAwMDAwMDU3LGluc2V0IDAgMXB4ICNmZmZmZmYxYX0ud2FuZC1qb3lzdGljay1iYWxsOmFjdGl2ZSwud2FuZC1qb3lzdGljay1iYWxsLnBhbmVsLW9wZW57YmFja2dyb3VuZDojMWQxNzE0ZjB9LndhbmQtam95c3RpY2stYmFsbC5kcmFnZ2luZ3t0cmFuc2Zvcm06c2NhbGUoMS4xMik7Y3Vyc29yOmdyYWJiaW5nO2JveC1zaGFkb3c6MCAxMHB4IDI4cHggIzAwMDAwMDVjfS53YW5kLWpveXN0aWNrLXBhbmVse3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjE4cHg7Ym90dG9tOjE2MHB4O3otaW5kZXg6NDQ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6OHB4O3BhZGRpbmc6MTBweDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojMWQxNzE0ZjU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI0NSwyMzUsMjI1LC4xMik7Ym94LXNoYWRvdzowIDE0cHggMzRweCAjMDAwMDAwNTcsaW5zZXQgMCAxcHggI2ZmZmZmZjBmO2JhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47dHJhbnNmb3JtOnRyYW5zbGF0ZVkoOHB4KSBzY2FsZSguOTYpO3RyYW5zZm9ybS1vcmlnaW46Ym90dG9tIHJpZ2h0O3RyYW5zaXRpb246b3BhY2l0eSAuMThzIHZhcigtLWVhc2Utb3V0LWV4cG8pLHRyYW5zZm9ybSAuMjJzIHZhcigtLWVhc2Utc3ByaW5nKSx2aXNpYmlsaXR5IDBzIGxpbmVhciAuMThzO3dpZHRoOm1pbigyMjRweCxjYWxjKDEwMHZ3IC0gMzZweCkpO21heC13aWR0aDpjYWxjKDEwMHZ3IC0gMzZweCl9LndhbmQtam95c3RpY2stcGFuZWwuYWN0aXZle3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxO3Zpc2liaWxpdHk6dmlzaWJsZTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKTt0cmFuc2l0aW9uLWRlbGF5OjBzfS53anAtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEwcHg7bWluLWhlaWdodDoyNHB4fS53anAtdGl0bGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmb250LXNpemU6Ljc2cmVtO2xldHRlci1zcGFjaW5nOjA7Y29sb3I6I2Y1ZWJlMWM3O2ZvbnQtd2VpZ2h0OjYwMH0ud2pwLXRpdGxlLWljb257Y29sb3I6I2Y1ZWJlMWI4fS53anAtY2xvc2V7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjQ1LDIzNSwyMjUsLjEyKTtiYWNrZ3JvdW5kOiNmZmZmZmYwZDtjb2xvcjojZjVlYmUxYjg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNHMgZWFzZSxjb2xvciAuMTRzIGVhc2UsdHJhbnNmb3JtIC4xNHMgZWFzZX0ud2pwLWNsb3NlOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZjFhO2NvbG9yOiNmNWViZTFmMn0ud2pwLWNsb3NlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk0KX0ud2pwLWRwYWR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweH0ud2pwLWRwYWQtcm93e2Rpc3BsYXk6ZmxleDtnYXA6NXB4fS53anAtZ3JpZHtkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjVweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS53anAtZm5rZXlze21heC13aWR0aDoyMDBweH0ud2pwLWtleXttaW4td2lkdGg6NDRweDtoZWlnaHQ6MzhweDtwYWRkaW5nOjAgOHB4O2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZTouNzZyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOiNmNWViZTFkNjtiYWNrZ3JvdW5kOiNmZmZmZmYwYjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjQ1LDIzNSwyMjUsLjExKTtjdXJzb3I6cG9pbnRlcjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246dHJhbnNmb3JtIC4xcyBlYXNlLGJhY2tncm91bmQgLjE1cyBlYXNlLGJvcmRlci1jb2xvciAuMTVzIGVhc2UsY29sb3IgLjE1cyBlYXNlfS53anAta2V5OmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZjE0O2JvcmRlci1jb2xvcjojZjVlYmUxMzM7Y29sb3I6I2Y1ZWJlMWYyfS53anAta2V5OmFjdGl2ZXtiYWNrZ3JvdW5kOiNmZmZmZmYxZjt0cmFuc2Zvcm06c2NhbGUoLjk2KX0ud2pwLWtleS53anAtbW9kLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uc2Vzc2lvbi1pdGVtLXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDo4cHg7bWluLWhlaWdodDo0MHB4O3dpZHRoOjEwMCV9LnNlc3Npb24taXRlbS1yb3c6aGFzKD4uc2Vzc2lvbi1tYW5hZ2UtY2hlY2spe2dyaWQtdGVtcGxhdGUtY29sdW1uczoyNHB4IG1pbm1heCgwLDFmcikgYXV0b30uc2Vzc2lvbi1pdGVtLXJvdz4uc2Vzc2lvbi1tYW5hZ2UtY2hlY2t7Z3JpZC1jb2x1bW46MTtqdXN0aWZ5LXNlbGY6Y2VudGVyO2FsaWduLXNlbGY6Y2VudGVyO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7bWFyZ2luLXJpZ2h0OjB9LnNlc3Npb24taXRlbS1yb3c+LnNlc3Npb24tbWFpbntncmlkLWNvbHVtbjoxO21pbi13aWR0aDowO3BhZGRpbmctcmlnaHQ6MH0uc2Vzc2lvbi1pdGVtLXJvdzpoYXMoPi5zZXNzaW9uLW1hbmFnZS1jaGVjayk+LnNlc3Npb24tbWFpbntncmlkLWNvbHVtbjoyfS5zZXNzaW9uLWl0ZW0tcm93Pi5zZXNzaW9uLWFjdGlvbnN7Z3JpZC1jb2x1bW46Mjtwb3NpdGlvbjpzdGF0aWM7dHJhbnNmb3JtOm5vbmU7anVzdGlmeS1zZWxmOmVuZDthbGlnbi1zZWxmOmNlbnRlcjttaW4td2lkdGg6bWF4LWNvbnRlbnQ7bWluLWhlaWdodDozMnB4fS5zZXNzaW9uLWl0ZW0tcm93Omhhcyg+LnNlc3Npb24tbWFuYWdlLWNoZWNrKT4uc2Vzc2lvbi1hY3Rpb25ze2dyaWQtY29sdW1uOjN9LnNlc3Npb24tYWN0aW9uczplbXB0eXtkaXNwbGF5Om5vbmV9LnNlc3Npb24tdGl0bGUtcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKSBhdXRvO2FsaWduLWl0ZW1zOmJhc2VsaW5lO2NvbHVtbi1nYXA6OHB4O21pbi13aWR0aDowfS5zZXNzaW9uLW1haW57Z2FwOjRweH0uc2Vzc2lvbi1jb21tYW5kLC5zZXNzaW9uLXRpdGxlLC5jbGF1ZGUtaGlzdG9yeS1wcmV2aWV3e2xpbmUtaGVpZ2h0OjEuMzV9LnNlc3Npb24tbWV0YXttaW4td2lkdGg6MDtnYXA6NnB4O2ZsZXgtd3JhcDpub3dyYXA7b3ZlcmZsb3c6aGlkZGVufS5zZXNzaW9uLW1ldGE+c3BhbnttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnNlc3Npb24tc3RhdHVzLC5zZXNzaW9uLWlkLC5zZXNzaW9uLWtpbmQtYmFkZ2UsLnNlc3Npb24tcmVjb3ZlcnktaGludHtmbGV4OjAgMCBhdXRvfS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6MzJweDtoZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDttaW4taGVpZ2h0OjMycHg7Ym9yZGVyLXJhZGl1czo5cHh9LnNlc3Npb24tbWFuYWdlLWJhcnttaW4taGVpZ2h0OjM4cHh9LnNlc3Npb24tbWFuYWdlLWFjdGlvbnMgLmJ0biwuc2Vzc2lvbi1tYW5hZ2UtdG9nZ2xle21pbi1oZWlnaHQ6MzJweDt3aGl0ZS1zcGFjZTpub3dyYXB9LmZpbGUtdHJlZXstLXRyZWUtbWV0YS13aWR0aDogNTZweDstLXRyZWUtc3RhdHVzLXdpZHRoOiAyMnB4fS50cmVlLWl0ZW17ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoxOHB4IDIwcHggbWlubWF4KDAsMWZyKSBtaW5tYXgoMCx2YXIoLS10cmVlLW1ldGEtd2lkdGgpKSB2YXIoLS10cmVlLXN0YXR1cy13aWR0aCk7YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6NnB4O21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjRweCAxMHB4O3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udHJlZS1pdGVtOmhvdmVyLC50cmVlLWl0ZW06YWN0aXZle3RyYW5zZm9ybTpub25lfS50cmVlLXRvZ2dsZXtncmlkLWNvbHVtbjoxO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHh9LnRyZWUtaWNvbntncmlkLWNvbHVtbjoyO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7bWFyZ2luLXJpZ2h0OjA7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6Ljg3NXJlbTtsaW5lLWhlaWdodDoxfS50cmVlLW5hbWV7Z3JpZC1jb2x1bW46MzttaW4td2lkdGg6MH0udHJlZS1tZXRhe2dyaWQtY29sdW1uOjQ7anVzdGlmeS1zZWxmOmVuZDttYXgtd2lkdGg6bm9uZTttYXJnaW4tbGVmdDowO3BhZGRpbmctbGVmdDowO3RleHQtYWxpZ246cmlnaHR9LmdpdC1zdGF0dXMtYmFkZ2V7Z3JpZC1jb2x1bW46NTtqdXN0aWZ5LXNlbGY6ZW5kO3dpZHRoOjIwcHg7bWluLXdpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7cGFkZGluZzowO2xpbmUtaGVpZ2h0OjIwcHg7Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNpemluZzpib3JkZXItYm94fS50cmVlLWNoaWxkcmVuLm9wZW57bWFyZ2luLWxlZnQ6MTNweDtwYWRkaW5nLWxlZnQ6NXB4O2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDkpfS50b29sLXVzZS1oZWFkZXJ7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoyNHB4IG1pbm1heCg3Y2gsbWF4LWNvbnRlbnQpIG1pbm1heCgwLDFmcikgYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDoxMHB4O21pbi1oZWlnaHQ6NDJweH0udG9vbC11c2UtaWNvbntncmlkLWNvbHVtbjoxO3dpZHRoOjIycHg7bWluLXdpZHRoOjIycHh9LnRvb2wtdXNlLW5hbWV7Z3JpZC1jb2x1bW46MjttYXgtd2lkdGg6MTgwcHh9LnRvb2wtdXNlLWZpbGUsLnRvb2wtdXNlLXN1bW1hcnl7Z3JpZC1jb2x1bW46MzttYXgtd2lkdGg6bm9uZTttaW4td2lkdGg6MH0udG9vbC11c2UtdG9nZ2xle2dyaWQtY29sdW1uOjQ7anVzdGlmeS1zZWxmOmVuZDttYXJnaW4tbGVmdDowfS5kaWZmLWhlYWRlcntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCg3Y2gsbWF4LWNvbnRlbnQpIG1pbm1heCgwLDFmcikgYXV0byBhdXRvIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO2NvbHVtbi1nYXA6MTBweDttaW4taGVpZ2h0OjQycHh9LmRpZmYtZmlsZS1pY29ue2Rpc3BsYXk6bm9uZX0uZGlmZi1maWxlLW5hbWV7Z3JpZC1jb2x1bW46MTttYXgtd2lkdGg6MTgwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5kaWZmLXBhdGh7Z3JpZC1jb2x1bW46MjttaW4td2lkdGg6MDt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5kaWZmLXN0YXR1c3tncmlkLWNvbHVtbjozO3doaXRlLXNwYWNlOm5vd3JhcH0uZGlmZi1vcGVuLWZpbGV7Z3JpZC1jb2x1bW46NDttaW4taGVpZ2h0OjI4cHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aGl0ZS1zcGFjZTpub3dyYXB9LmRpZmYtdG9nZ2xle2dyaWQtY29sdW1uOjU7anVzdGlmeS1zZWxmOmVuZDttYXJnaW4tbGVmdDowfS5maWxlLXByZXZpZXctaGVhZGVye2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKSBhdXRvIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5maWxlLXByZXZpZXctdGl0bGV7bWluLXdpZHRoOjB9LmZpbGUtcHJldmlldy10b29sYmFye21pbi13aWR0aDowO21heC13aWR0aDptaW4oNTJ2dyw0NjBweCk7ZmxleC13cmFwOndyYXA7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3Jvdy1nYXA6NnB4O21hcmdpbi1sZWZ0OjB9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0biwuZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXAgLmZpbGUtcHJldmlldy10b29sYmFyLWJ0bnttaW4taGVpZ2h0OjMycHh9LmZpbGUtcHJldmlldy1jbG9zZXt3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MTBweH0ubWFya2Rvd24tcHJldmlld3ttYXgtd2lkdGg6NzhjaDttYXJnaW46MCBhdXRvO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uc2V0dGluZ3MtcGFuZWwtaGVhZGVyLC5zZXR0aW5ncy1wYW5lbD4uZmllbGQtcm93LC5zZXR0aW5ncy1wYW5lbD4uZmllbGQsLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1jYXJkLC5zZXR0aW5ncy1wYW5lbD4uc3dpdGNoLWNhcmQtbGlzdCwuc2V0dGluZ3MtcGFuZWw+I3ByZXNldHMtbGlzdHttaW4td2lkdGg6MH0uc2V0dGluZ3MtcGFuZWwtZGVzY3ttYXgtd2lkdGg6NzJjaH0uc3dpdGNoLWNhcmQtaGVhZGVyLC5zZXR0aW5ncy10b2dnbGUtcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKSBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjE0cHh9LnN3aXRjaC1jYXJkLXRpdGxlLC5zd2l0Y2gtY2FyZC1kZXNjLC5zZXR0aW5ncy10b2dnbGUtdGV4dCwuc2V0dGluZ3MtdG9nZ2xlLXRpdGxlLC5zZXR0aW5ncy10b2dnbGUtZGVzY3ttaW4td2lkdGg6MH0uc2V0dGluZ3MtdG9nZ2xlLWFzaWRlLC5zZXR0aW5ncy1zd2l0Y2gsLnN3aXRjaC1zbGlkZXJ7anVzdGlmeS1zZWxmOmVuZH0uc2V0dGluZ3MtcmFuZ2Utcm93e2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDljaCxtYXgtY29udGVudCkgbWlubWF4KDAsMWZyKSBhdXRvO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjEycHh9LnNldHRpbmdzLXJhbmdlLWxhYmVse21pbi13aWR0aDowfS5zZXR0aW5ncy1yYW5nZS1yb3cgaW5wdXRbdHlwZT1yYW5nZV0sLnNldHRpbmdzLXJhbmdle21pbi13aWR0aDowO3dpZHRoOjEwMCV9LnByZXNldC1pdGVte2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDEwY2gsbWF4LWNvbnRlbnQpIG1pbm1heCgwLDFmcik7YWxpZ24taXRlbXM6c3RhcnQ7Y29sdW1uLWdhcDoxNHB4fS5wcmVzZXQtZGV0YWlse21pbi13aWR0aDowO292ZXJmbG93LXdyYXA6YW55d2hlcmU7dGV4dC1hbGlnbjpyaWdodH0uZW52LXByZXZpZXctdG9vbGJhcntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHh9LmVudi1wcmV2aWV3LWNvbnRyb2xze21pbi13aWR0aDowO2p1c3RpZnktY29udGVudDpmbGV4LWVuZH0uZW52LXByZXZpZXctcm93e2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMTByZW0sLjQyZnIpIG1pbm1heCgwLDFmcikgbWF4LWNvbnRlbnQ7YWxpZ24taXRlbXM6Y2VudGVyfS5lbnYtcHJldmlldy1uYW1le21pbi13aWR0aDowfS5lbnYtcHJldmlldy1sZW57anVzdGlmeS1zZWxmOmVuZH0ucXVldWUtaXRlbXtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjhweCBtaW5tYXgoMCwxZnIpIG1heC1jb250ZW50IG1heC1jb250ZW50IG1heC1jb250ZW50O2FsaWduLWl0ZW1zOmNlbnRlcjtjb2x1bW4tZ2FwOjZweDttaW4taGVpZ2h0OjI4cHh9LnF1ZXVlLWl0ZW0tZG90LC5xdWV1ZS1pdGVtLWFnZSwucXVldWUtaXRlbS1zZW5kLW5vdywucXVldWUtaXRlbS1jYW5jZWx7anVzdGlmeS1zZWxmOmVuZH0ucWMtZmlsZS1yb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoyMHB4IG1pbm1heCgwLDFmcikgYXV0bzthbGlnbi1pdGVtczpjZW50ZXI7Y29sdW1uLWdhcDo4cHg7bWluLWhlaWdodDoyOHB4fS5xYy1maWxlLXBhdGh7bWluLXdpZHRoOjB9QG1lZGlhKHBvaW50ZXI6Y29hcnNlKSwobWF4LXdpZHRoOjc2OHB4KXsuc2Vzc2lvbi1pdGVtLXJvd3ttaW4taGVpZ2h0OjQ0cHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O21pbi13aWR0aDo0NHB4O21pbi1oZWlnaHQ6NDRweH0udHJlZS1pdGVte2dyaWQtdGVtcGxhdGUtY29sdW1uczoyMHB4IDIycHggbWlubWF4KDAsMWZyKSBtaW5tYXgoMCw1NnB4KSAyNHB4O21pbi1oZWlnaHQ6NDRweDtwYWRkaW5nOjhweCAxMnB4fS5maWxlLXByZXZpZXctdG9vbGJhci1idG4sLmZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwIC5maWxlLXByZXZpZXctdG9vbGJhci1idG57bWluLWhlaWdodDozNnB4O21pbi13aWR0aDozNnB4fS5maWxlLWV4cGxvcmVyLXVwLC5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0biwuZmlsZS1wcmV2aWV3LWNsb3NlLC5kaWZmLW9wZW4tZmlsZSwucXVldWUtaXRlbS1zZW5kLW5vdywucXVldWUtaXRlbS1jYW5jZWx7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufX1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuc2Vzc2lvbi10aXRsZS1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcik7cm93LWdhcDoycHh9LnNlc3Npb24tdGltZXtqdXN0aWZ5LXNlbGY6c3RhcnR9LnRvb2wtdXNlLWhlYWRlcntncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjRweCBtaW5tYXgoMCwxZnIpIGF1dG99LnRvb2wtdXNlLW5hbWV7Z3JpZC1jb2x1bW46MjttYXgtd2lkdGg6bm9uZX0udG9vbC11c2UtZmlsZSwudG9vbC11c2Utc3VtbWFyeXtncmlkLWNvbHVtbjoyIC8gNH0udG9vbC11c2UtdG9nZ2xle2dyaWQtY29sdW1uOjM7Z3JpZC1yb3c6MX0uZGlmZi1oZWFkZXJ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcikgYXV0byBhdXRvO3Jvdy1nYXA6NHB4fS5kaWZmLWZpbGUtbmFtZXtncmlkLWNvbHVtbjoxO21heC13aWR0aDpub25lfS5kaWZmLXBhdGh7Z3JpZC1jb2x1bW46MSAvIDQ7Z3JpZC1yb3c6Mn0uZGlmZi1zdGF0dXN7Z3JpZC1jb2x1bW46MjtncmlkLXJvdzoxfS5kaWZmLW9wZW4tZmlsZXtncmlkLWNvbHVtbjozO2dyaWQtcm93OjF9LmRpZmYtdG9nZ2xle2Rpc3BsYXk6bm9uZX0uZmlsZS1wcmV2aWV3LWhlYWRlcntncmlkLXRlbXBsYXRlLWNvbHVtbnM6bWlubWF4KDAsMWZyKSBhdXRvO2FsaWduLWl0ZW1zOnN0YXJ0fS5maWxlLXByZXZpZXctdG9vbGJhcntncmlkLWNvbHVtbjoxIC8gMztncmlkLXJvdzoyO21heC13aWR0aDoxMDAlO2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0fS5maWxlLXByZXZpZXctY2xvc2V7Z3JpZC1jb2x1bW46MjtncmlkLXJvdzoxfS5tYXJrZG93bi1wcmV2aWV3e21heC13aWR0aDpub25lO3BhZGRpbmc6MTZweH0uc3dpdGNoLWNhcmQtaGVhZGVyLC5zZXR0aW5ncy10b2dnbGUtcm93LC5zZXR0aW5ncy1yYW5nZS1yb3csLnByZXNldC1pdGVtLC5lbnYtcHJldmlldy10b29sYmFyLC5lbnYtcHJldmlldy1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcik7cm93LWdhcDo4cHh9LnNldHRpbmdzLXRvZ2dsZS1hc2lkZSwuc2V0dGluZ3Mtc3dpdGNoLC5zd2l0Y2gtc2xpZGVyLC5wcmVzZXQtZGV0YWlsLC5lbnYtcHJldmlldy1jb250cm9scywuZW52LXByZXZpZXctbGVue2p1c3RpZnktc2VsZjpzdGFydDt0ZXh0LWFsaWduOmxlZnR9LmVudi1wcmV2aWV3LWNvbnRyb2xze3dpZHRoOjEwMCV9LnF1ZXVlLWl0ZW17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjhweCBtaW5tYXgoMCwxZnIpIGF1dG87cm93LWdhcDo2cHh9LnF1ZXVlLWl0ZW0tc2VuZC1ub3csLnF1ZXVlLWl0ZW0tY2FuY2Vse2dyaWQtcm93OjJ9LnF1ZXVlLWl0ZW0tc2VuZC1ub3d7Z3JpZC1jb2x1bW46MjtqdXN0aWZ5LXNlbGY6c3RhcnR9LnF1ZXVlLWl0ZW0tY2FuY2Vse2dyaWQtY29sdW1uOjN9fUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpLChwb2ludGVyOmNvYXJzZSl7aHRtbC5pcy13YW5kLWFuZHJvaWQgLmZpbGUtZXhwbG9yZXItdXAsaHRtbC5pcy13YW5kLWFuZHJvaWQgLmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5maWxlLXByZXZpZXctY2xvc2UsaHRtbC5pcy13YW5kLWFuZHJvaWQgLmRpZmYtb3Blbi1maWxlLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5xdWV1ZS1pdGVtLXNlbmQtbm93LGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5xdWV1ZS1pdGVtLWNhbmNlbCxodG1sLmlzLXdhbmQtYW5kcm9pZCAucXVldWUtaGVhZGVyLWNsZWFye21pbi13aWR0aDo0NHB4O21pbi1oZWlnaHQ6NDRweH1odG1sLmlzLXdhbmQtYW5kcm9pZCAuZmlsZS1leHBsb3Jlci11cCxodG1sLmlzLXdhbmQtYW5kcm9pZCAuZmlsZS1zaWRlLXBhbmVsLWljb25idG4saHRtbC5pcy13YW5kLWFuZHJvaWQgLmZpbGUtcHJldmlldy1jbG9zZXt3aWR0aDo0NHB4O2hlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6MTJweH1odG1sLmlzLXdhbmQtYW5kcm9pZCAuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5maWxlLXByZXZpZXctdG9vbGJhci1ncm91cCAuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue21pbi13aWR0aDo0NHB4O21pbi1oZWlnaHQ6NDRweDtoZWlnaHQ6NDRweDtwYWRkaW5nOjAgMTBweDtib3JkZXItcmFkaXVzOjEwcHg7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn1odG1sLmlzLXdhbmQtYW5kcm9pZCAuZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXB7Ym9yZGVyLXJhZGl1czoxMHB4fWh0bWwuaXMtd2FuZC1hbmRyb2lkIC5kaWZmLW9wZW4tZmlsZXtoZWlnaHQ6NDRweDtwYWRkaW5nOjAgMTJweDtib3JkZXItcmFkaXVzOjEycHh9aHRtbC5pcy13YW5kLWFuZHJvaWQgLnF1ZXVlLWl0ZW17Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjhweCBtaW5tYXgoMCwxZnIpIG1heC1jb250ZW50IG1heC1jb250ZW50IG1heC1jb250ZW50O3Jvdy1nYXA6MDttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzo2cHggOHB4O29wYWNpdHk6Ljg2fWh0bWwuaXMtd2FuZC1hbmRyb2lkIC5xdWV1ZS1pdGVtLWFnZXtncmlkLWNvbHVtbjozO2dyaWQtcm93OjF9aHRtbC5pcy13YW5kLWFuZHJvaWQgLnF1ZXVlLWl0ZW0tc2VuZC1ub3d7Z3JpZC1jb2x1bW46NDtncmlkLXJvdzoxO2hlaWdodDo0NHB4O3BhZGRpbmc6MCAxMnB4O2JvcmRlci1yYWRpdXM6MTJweDtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjF9aHRtbC5pcy13YW5kLWFuZHJvaWQgLnF1ZXVlLWl0ZW0tY2FuY2VsLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5xdWV1ZS1oZWFkZXItY2xlYXJ7d2lkdGg6NDRweDtoZWlnaHQ6NDRweDtwYWRkaW5nOjA7Ym9yZGVyLXJhZGl1czoxMnB4O2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjF9aHRtbC5pcy13YW5kLWFuZHJvaWQgLnF1ZXVlLWl0ZW0tY2FuY2Vse2dyaWQtY29sdW1uOjU7Z3JpZC1yb3c6MX1odG1sLmlzLXdhbmQtYW5kcm9pZCAuc3dpdGNoLWNhcmQtaGVhZGVyLGh0bWwuaXMtd2FuZC1hbmRyb2lkIC5zZXR0aW5ncy10b2dnbGUtcm93e2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpIGF1dG87YWxpZ24taXRlbXM6Y2VudGVyfWh0bWwuaXMtd2FuZC1hbmRyb2lkIC5zZXR0aW5ncy10b2dnbGUtYXNpZGUsaHRtbC5pcy13YW5kLWFuZHJvaWQgLnNldHRpbmdzLXN3aXRjaCxodG1sLmlzLXdhbmQtYW5kcm9pZCAuc3dpdGNoLXNsaWRlcntqdXN0aWZ5LXNlbGY6ZW5kfX1Aa2V5ZnJhbWVzIHdhbmQtc3VyZmFjZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoOHB4KSBzY2FsZSguOTg1KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fUBrZXlmcmFtZXMgd2FuZC1zdXJmYWNlLW91dHswJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9dG97b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDRweCkgc2NhbGUoLjk5KX19QGtleWZyYW1lcyB3YW5kLWJhY2tkcm9wLWluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fS5tb2RhbC1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMxODE0MTE4NTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig1cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNXB4KTthbmltYXRpb246d2FuZC1iYWNrZHJvcC1pbiAuMTZzIGVhc2Utb3V0IGJvdGh9Lm1vZGFse2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JhY2tncm91bmQtaW1hZ2U6bm9uZTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MjBweDtib3gtc2hhZG93OjAgMjRweCA2NHB4ICMyYTFmMTYzMywwIDRweCAxNnB4ICMyYTFmMTYxNDtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lO2FuaW1hdGlvbjp3YW5kLXN1cmZhY2UtaW4gLjE4cyBlYXNlLW91dCBib3RofS5tb2RhbC1iYWNrZHJvcC5jbG9zaW5nIC5tb2RhbHthbmltYXRpb246d2FuZC1zdXJmYWNlLW91dCAuMTNzIGVhc2UtaW4gYm90aH0ubW9kYWwtY2xvc2UtYnRuLC5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdCwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0e3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7bWluLXdpZHRoOjQ0cHg7bWluLWhlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6MTJweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZSxib3gtc2hhZG93IC4xNXMgZWFzZX0ubW9kYWwtY2xvc2UtYnRuOmhvdmVyLC5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdDpob3Zlciwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcj4uYnRuLWljb24uYnRuLWdob3N0OmhvdmVyLC5tb2RhbC1jbG9zZS1idG46YWN0aXZlLC5zZXNzaW9uLW1vZGFsIC5tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdDphY3RpdmUsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdDphY3RpdmV7dHJhbnNmb3JtOm5vbmU7Ym94LXNoYWRvdzpub25lfS5zZXR0aW5ncy1tb2RhbHt3aWR0aDptaW4oOTgwcHgsY2FsYygxMDB2dyAtIDMycHgpKTttYXgtd2lkdGg6OTgwcHg7aGVpZ2h0Om1pbig4NDBweCxjYWxjKDEwMGR2aCAtIDMycHggLSB2YXIoLS13YW5kLXNhZmUtdG9wKSAtIHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKSk7bWluLWhlaWdodDowO21heC1oZWlnaHQ6Y2FsYygxMDBkdmggLSAzMnB4IC0gdmFyKC0td2FuZC1zYWZlLXRvcCkgLSB2YXIoLS13YW5kLXNhZmUtYm90dG9tKSl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXJ7bWluLWhlaWdodDo2OHB4O3BhZGRpbmc6MTRweCAxOHB4IDE0cHggMjJweDthbGlnbi1pdGVtczpjZW50ZXI7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC10aXRsZS1ncm91cCAubW9kYWwtdGl0bGV7Zm9udC1zaXplOjEuMTI1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotLjAyZW19LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1zdWJ0aXRsZXtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtYm9keXtwYWRkaW5nOjE4cHggMjJweCAyMnB4fS5zZXR0aW5ncy1sYXlvdXR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjIwOHB4IG1pbm1heCgwLDFmcik7Z2FwOjI0cHh9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1zaWRlYmFye2dhcDoxMnB4O3BhZGRpbmctcmlnaHQ6MThweH0uc2V0dGluZ3Mtc2lkZWJhci1oaW50e2xpbmUtaGVpZ2h0OjEuNDV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWJze2dhcDo0cHg7cGFkZGluZy1yaWdodDowfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFie21pbi1oZWlnaHQ6NTJweDtwYWRkaW5nOjlweCAxMXB4O2dhcDoycHg7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3gtc2hhZG93Om5vbmU7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZTt0cmFuc2Zvcm06bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLGJvcmRlci1jb2xvciAuMTVzIGVhc2UsY29sb3IgLjE1cyBlYXNlfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7dHJhbnNmb3JtOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWIuYWN0aXZle2NvbG9yOnZhcigtLWFjY2VudC1hY3RpdmUpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOiNjNTY1M2QzMztib3gtc2hhZG93Om5vbmU7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi5hY3RpdmU6YmVmb3Jle2Rpc3BsYXk6YmxvY2s7bGVmdDotMXB4O3RvcDoxMXB4O2JvdHRvbToxMXB4O3dpZHRoOjNweH0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi1tYWlue2ZvbnQtc2l6ZTouODc1cmVtfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLW1ldGF7Zm9udC1zaXplOi42ODc1cmVtfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtaGVhZGVye21hcmdpbi1ib3R0b206MThweDtwYWRkaW5nLWJvdHRvbToxNHB4O2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItc3VidGxlKX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZToxLjI1cmVtO2xldHRlci1zcGFjaW5nOi0uMDI1ZW19LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1wYW5lbC1kZXNje2ZvbnQtc2l6ZTouODc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNhcmQsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbiwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYWJvdXQtaW5mbywuc2V0dGluZ3MtbW9kYWwgLnByZXNldC1pdGVtLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdG9nZ2xlLXJvdywuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXJhbmdlLXJvd3tiYWNrZ3JvdW5kOnZhcigtLWJnLXN1cmZhY2UpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2hhZG93Om5vbmU7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNhcmQtaWNvbntjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym94LXNoYWRvdzpub25lO2ZvbnQtc2l6ZTowfS5zZXR0aW5ncy1tb2RlbC1jYXJke21heC13aWR0aDo4NjBweDttYXJnaW46NHB4IDAgMTZweDtwYWRkaW5nOjE4cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjE4cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1zdXJmYWNlKX0uc2V0dGluZ3MtbW9kZWwtY2FyZC1oZWFkZXIsLnNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGluZywuc2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93LC5zZXR0aW5ncy1tb2RlbC1tZXRhe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGVye2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNnB4O3BhZGRpbmctYm90dG9tOjE2cHg7bWFyZ2luLWJvdHRvbToxNnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS5zZXR0aW5ncy1tb2RlbC1jYXJkLWhlYWRpbmd7bWluLXdpZHRoOjA7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTBweH0uc2V0dGluZ3MtbW9kZWwtY2FyZC1pY29ue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7ZmxleDowIDAgMzZweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlci1yYWRpdXM6MTFweH0uc2V0dGluZ3MtbW9kZWwtY2FyZC10aXRsZXttYXJnaW46MDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZTouOTM3NXJlbTtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MS4zNX0uc2V0dGluZ3MtbW9kZWwtY2FyZC1kZXNje21hcmdpbjozcHggMCAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNX0uc2V0dGluZ3MtbW9kZWwtcmVmcmVzaHttaW4td2lkdGg6MTA4cHg7bWluLWhlaWdodDo0MnB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjdweDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9ufS5zZXR0aW5ncy1tb2RlbC1yZWZyZXNoLmlzLWxvYWRpbmcgc3Zne2FuaW1hdGlvbjpzZXR0aW5ncy1tb2RlbC1yZWZyZXNoLXNwaW4gLjhzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNldHRpbmdzLW1vZGVsLXJlZnJlc2gtc3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5zZXR0aW5ncy1tb2RlbC1ncmlke2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsbWlubWF4KDAsMWZyKSk7Z2FwOjE4cHh9LnNldHRpbmdzLW1vZGVsLWZpZWxke21pbi13aWR0aDowO21hcmdpbjowIWltcG9ydGFudH0uc2V0dGluZ3MtbW9kZWwtbGFiZWwtcm93e2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMHB4O21hcmdpbi1ib3R0b206N3B4fS5zZXR0aW5ncy1tb2RlbC1sYWJlbC1yb3cgLmZpZWxkLWxhYmVse21hcmdpbjowO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo3MDB9LnNldHRpbmdzLW1vZGVsLXByb3ZpZGVye2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDB9Lm1vZGVsLWNvbWJvYm94e3Bvc2l0aW9uOnJlbGF0aXZlO21pbi13aWR0aDowfS5tb2RlbC1jb21ib2JveC1jb250cm9se3Bvc2l0aW9uOnJlbGF0aXZlfS5zZXR0aW5ncy1tb2RhbCAubW9kZWwtY29tYm9ib3gtaW5wdXR7bWluLWhlaWdodDo0OHB4O3BhZGRpbmc6MTBweCA0OHB4IDEwcHggMTNweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtsaW5lLWhlaWdodDoxLjQ7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Ym9yZGVyLXJhZGl1czoxMnB4fS5tb2RlbC1jb21ib2JveC10b2dnbGV7cG9zaXRpb246YWJzb2x1dGU7dG9wOjJweDtyaWdodDoycHg7d2lkdGg6NDRweDtoZWlnaHQ6NDRweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MDtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MTBweDtjdXJzb3I6cG9pbnRlcjt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RyYW5zaXRpb246Y29sb3IgLjE1cyBlYXNlLGJhY2tncm91bmQgLjE1cyBlYXNlfS5tb2RlbC1jb21ib2JveC10b2dnbGU6aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCl9Lm1vZGVsLWNvbWJvYm94LXRvZ2dsZTpmb2N1cy12aXNpYmxlLC5tb2RlbC1jb21ib2JveC1vcHRpb246Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0ubW9kZWwtY29tYm9ib3gtdG9nZ2xlIHN2Z3t0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTZzIGVhc2V9Lm1vZGVsLWNvbWJvYm94LmlzLW9wZW4gLm1vZGVsLWNvbWJvYm94LXRvZ2dsZSBzdmd7dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS5tb2RlbC1jb21ib2JveC1tZW51e3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyA2cHgpO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6ODA7bWF4LWhlaWdodDoyODBweDtvdmVyZmxvdy15OmF1dG87cGFkZGluZzo1cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czoxM3B4O2JveC1zaGFkb3c6MCAxNnB4IDM2cHggIzJhMWYxNjI5LDAgMnB4IDhweCAjMmExZjE2MTQ7b3ZlcnNjcm9sbC1iZWhhdmlvcjpjb250YWlufS5tb2RlbC1jb21ib2JveC1vcHRpb257d2lkdGg6MTAwJTttaW4taGVpZ2h0OjUycHg7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoyMHB4IG1pbm1heCgwLDFmcik7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo4cHggMTBweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RleHQtYWxpZ246bGVmdDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6OXB4O2N1cnNvcjpwb2ludGVyO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259Lm1vZGVsLWNvbWJvYm94LW9wdGlvbjpob3ZlciwubW9kZWwtY29tYm9ib3gtb3B0aW9uLmlzLWFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCl9Lm1vZGVsLWNvbWJvYm94LW9wdGlvbi1jaGVjaywubW9kZWwtY29tYm9ib3gtb3B0aW9uLWN1c3RvbS1pY29ue3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjp0cmFuc3BhcmVudH0ubW9kZWwtY29tYm9ib3gtb3B0aW9uLmlzLXNlbGVjdGVkIC5tb2RlbC1jb21ib2JveC1vcHRpb24tY2hlY2ssLm1vZGVsLWNvbWJvYm94LW9wdGlvbi1jdXN0b20taWNvbntjb2xvcjp2YXIoLS1hY2NlbnQpfS5tb2RlbC1jb21ib2JveC1vcHRpb24tY29weXttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9Lm1vZGVsLWNvbWJvYm94LW9wdGlvbi1sYWJlbCwubW9kZWwtY29tYm9ib3gtb3B0aW9uLW1ldGF7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5tb2RlbC1jb21ib2JveC1vcHRpb24tbGFiZWx7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMH0ubW9kZWwtY29tYm9ib3gtb3B0aW9uLW1ldGF7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjY4NzVyZW19Lm1vZGVsLWNvbWJvYm94LW9wdGlvbi1jdXN0b217bWFyZ2luLXRvcDo0cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czowIDAgOXB4IDlweH0ubW9kZWwtY29tYm9ib3gtZW1wdHl7cGFkZGluZzoxNHB4IDEycHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjU7dGV4dC1hbGlnbjpjZW50ZXJ9LnNldHRpbmdzLW1vZGVsLW1ldGF7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjhweDttYXJnaW4tdG9wOjdweH0uc2V0dGluZ3MtbW9kZWwtc3RhdHVze2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDA7d2hpdGUtc3BhY2U6bm93cmFwfS5zZXR0aW5ncy1tb2RlbC1zdGF0dXM6YmVmb3Jle2NvbnRlbnQ6IiI7d2lkdGg6NnB4O2hlaWdodDo2cHg7ZmxleDowIDAgNnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCl9LnNldHRpbmdzLW1vZGVsLXN0YXR1cy5pcy1rbm93bjpiZWZvcmV7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzKX0uc2V0dGluZ3MtbW9kZWwtc3RhdHVzLmlzLWN1c3RvbTpiZWZvcmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpfS5zZXR0aW5ncy1tb2RlbC1oZWxwe21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjY4NzVyZW07dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnNldHRpbmdzLW1vZGVsLWhlbHAgY29kZXtmb250LXNpemU6aW5oZXJpdH0uc2V0dGluZ3MtbW9kZWwtdmVyc2lvbnttYXJnaW46MTVweCAwIDA7cGFkZGluZy10b3A6MTNweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX0ud2FuZC1kaWFsb2ctYmFja2Ryb3B7cGFkZGluZy10b3A6bWF4KDIwcHgsdmFyKC0td2FuZC1zYWZlLXRvcCkpO3BhZGRpbmctYm90dG9tOm1heCgyMHB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKTtwYWRkaW5nLWxlZnQ6bWF4KDIwcHgsdmFyKC0td2FuZC1zYWZlLWxlZnQpKTtwYWRkaW5nLXJpZ2h0Om1heCgyMHB4LHZhcigtLXdhbmQtc2FmZS1yaWdodCkpO2JhY2tncm91bmQ6IzE4MTQxMThmO2JhY2tkcm9wLWZpbHRlcjpibHVyKDVweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cig1cHgpO2FuaW1hdGlvbjp3YW5kLWJhY2tkcm9wLWluIC4xNnMgZWFzZS1vdXQgYm90aH0ud2FuZC1kaWFsb2ctYmFja2Ryb3AuY2xvc2luZ3thbmltYXRpb246d2FuZERpYWxvZ0JhY2tkcm9wT3V0IC4xM3MgZWFzZS1pbiBib3RofS53YW5kLWRpYWxvZ3ttYXgtd2lkdGg6NDAwcHg7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxOHB4O2JveC1zaGFkb3c6MCAyNHB4IDY0cHggIzJhMWYxNjM4LDAgNHB4IDE2cHggIzJhMWYxNjE0O2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmU7YW5pbWF0aW9uOndhbmQtc3VyZmFjZS1pbiAuMThzIGVhc2Utb3V0IGJvdGh9LndhbmQtZGlhbG9nLWJhY2tkcm9wLmNsb3NpbmcgLndhbmQtZGlhbG9ne2FuaW1hdGlvbjp3YW5kLXN1cmZhY2Utb3V0IC4xM3MgZWFzZS1pbiBib3RofS53YW5kLWRpYWxvZy1oZWFkZXJ7Z2FwOjEycHg7cGFkZGluZzoyMHB4IDIwcHggMTJweH0ud2FuZC1kaWFsb2ctaWNvbnt3aWR0aDozNnB4O2hlaWdodDozNnB4O2JvcmRlci1yYWRpdXM6MTFweDtib3gtc2hhZG93Om5vbmV9LndhbmQtZGlhbG9nLWljb24uaW5mbywud2FuZC1kaWFsb2ctaWNvbi5xdWVzdGlvbntjb2xvcjp2YXIoLS1hY2NlbnQtYWN0aXZlKTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCl9LndhbmQtZGlhbG9nLWljb24ud2FybmluZ3tjb2xvcjp2YXIoLS13YXJuaW5nKTtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpfS53YW5kLWRpYWxvZy1pY29uLmRhbmdlcntjb2xvcjp2YXIoLS1kYW5nZXIpO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKX0ud2FuZC1kaWFsb2ctaWNvbi5zdWNjZXNze2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCl9LndhbmQtZGlhbG9nLXRpdGxle2ZvbnQtc2l6ZToxcmVtO2xldHRlci1zcGFjaW5nOi0uMDE1ZW19LndhbmQtZGlhbG9nLW1lc3NhZ2V7Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6MS42fS53YW5kLWRpYWxvZy1ib2R5e3BhZGRpbmc6NHB4IDIwcHggMTRweH0ud2FuZC1kaWFsb2ctaW5wdXR7bWluLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxcmVtO2JhY2tncm91bmQ6dmFyKC0tYmctc3VyZmFjZSl9LndhbmQtZGlhbG9nLWZvb3RlcntnYXA6MTBweDtwYWRkaW5nOjE0cHggMjBweCAxOHB4O21hcmdpbi10b3A6NHB4O2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KX0ud2FuZC1kaWFsb2ctZm9vdGVyIC5idG57bWluLXdpZHRoOjg4cHg7bWluLWhlaWdodDo0NHB4fS53YW5kLWRpYWxvZyAuYnRuLWRhbmdlciwud2FuZC1kaWFsb2cgLmJ0bi1kYW5nZXI6aG92ZXIsLndhbmQtZGlhbG9nIC5idG4tZGFuZ2VyOmFjdGl2ZXtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UpO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKTtiYWNrZ3JvdW5kLWltYWdlOm5vbmU7Ym9yZGVyLWNvbG9yOnZhcigtLWRhbmdlcik7Ym94LXNoYWRvdzpub25lO3RyYW5zZm9ybTpub25lfS53YW5kLWRpYWxvZyAuYnRuLWRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1ob3Zlcil9QG1lZGlhKG1heC13aWR0aDo3NjBweCl7Lm1vZGFsLWJhY2tkcm9we3BhZGRpbmc6dmFyKC0td2FuZC1zYWZlLXRvcCkgdmFyKC0td2FuZC1zYWZlLXJpZ2h0KSB2YXIoLS13YW5kLXNhZmUtYm90dG9tKSB2YXIoLS13YW5kLXNhZmUtbGVmdCk7YWxpZ24taXRlbXM6c3RyZXRjaH0uc2V0dGluZ3MtbW9kYWx7d2lkdGg6MTAwJTttYXgtd2lkdGg6bm9uZTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjA7bWF4LWhlaWdodDpub25lO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtib3gtc2hhZG93Om5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXJ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDo1O21pbi1oZWlnaHQ6NjRweDtwYWRkaW5nOjEwcHggMTJweCAxMHB4IDE2cHh9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1zdWJ0aXRsZXtkaXNwbGF5Om5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1ib2R5e2Rpc3BsYXk6YmxvY2s7cGFkZGluZzowIDE0cHggbWF4KDE4cHgsdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpO292ZXJmbG93LXk6YXV0bztvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LnNldHRpbmdzLWxheW91dHtkaXNwbGF5OmJsb2NrfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3Mtc2lkZWJhcntwb3NpdGlvbjpzdGlja3k7dG9wOjA7ei1pbmRleDo0O2Rpc3BsYXk6YmxvY2s7bWFyZ2luOjAgLTE0cHggMTZweDtwYWRkaW5nOjhweCAxNHB4O292ZXJmbG93OmhpZGRlbjtib3JkZXItcmlnaHQ6MDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKX0uc2V0dGluZ3Mtc2lkZWJhci1oZWFkZXJ7ZGlzcGxheTpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFic3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246cm93O2dhcDo2cHg7cGFkZGluZzowO292ZXJmbG93LXg6YXV0bztzY3JvbGwtc25hcC10eXBlOnggcHJveGltaXR5O3Njcm9sbGJhci13aWR0aDpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiczo6LXdlYmtpdC1zY3JvbGxiYXJ7ZGlzcGxheTpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFie2ZsZXg6MCAwIGF1dG87bWluLXdpZHRoOjA7bWluLWhlaWdodDo0NHB4O3BhZGRpbmc6OXB4IDEzcHg7c2Nyb2xsLXNuYXAtYWxpZ246c3RhcnR9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWI6YmVmb3JlLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLmFjdGl2ZTpiZWZvcmV7ZGlzcGxheTpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLW1ldGF7ZGlzcGxheTpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY29udGVudHtoZWlnaHQ6YXV0bztvdmVyZmxvdzp2aXNpYmxlO3BhZGRpbmc6MH0uc2V0dGluZ3MtcGFuZWx7bWluLWhlaWdodDowfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtdGl0bGV7Zm9udC1zaXplOjEuMTI1cmVtfS5maWVsZC1yb3csLnNldHRpbmdzLW1vZGVsLWdyaWR7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDFmcil9LmZpZWxkLXJvd3tnYXA6MH0uc2V0dGluZ3MtbW9kZWwtY2FyZHtwYWRkaW5nOjE0cHg7Ym9yZGVyLXJhZGl1czoxNnB4fS5zZXR0aW5ncy1tb2RlbC1jYXJkLWhlYWRlcnthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS5zZXR0aW5ncy1tb2RlbC1jYXJkLWRlc2N7bWF4LXdpZHRoOjQ0Y2h9LnNldHRpbmdzLW1vZGVsLXJlZnJlc2h7bWluLXdpZHRoOjQ0cHg7d2lkdGg6NDRweDttaW4taGVpZ2h0OjQ0cHg7cGFkZGluZzowfS5zZXR0aW5ncy1tb2RlbC1yZWZyZXNoIHNwYW57cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4O2hlaWdodDoxcHg7b3ZlcmZsb3c6aGlkZGVuO2NsaXA6cmVjdCgwIDAgMCAwKTt3aGl0ZS1zcGFjZTpub3dyYXB9LnNldHRpbmdzLW1vZGVsLWdyaWR7Z2FwOjE2cHh9LnNldHRpbmdzLW1vZGFsIC5maWVsZC1pbnB1dCwuc2V0dGluZ3MtbW9kYWwgLm1vZGVsLWNvbWJvYm94LWlucHV0LC5zZXR0aW5ncy1tb2RhbCBzZWxlY3QuZmllbGQtaW5wdXR7bWluLWhlaWdodDo0OHB4O2ZvbnQtc2l6ZToxNnB4fS5zZXR0aW5ncy1tb2RhbCAuYnRuLXNtLC5zZXR0aW5ncy1tb2RhbCAuYnRuLWljb257bWluLWhlaWdodDo0NHB4fS5tb2RlbC1jb21ib2JveC1tZW51e3Bvc2l0aW9uOnN0YXRpYzttYXgtaGVpZ2h0OjI0MHB4O21hcmdpbi10b3A6NnB4O2JveC1zaGFkb3c6bm9uZX0ubW9kZWwtY29tYm9ib3gtb3B0aW9ue21pbi1oZWlnaHQ6NTJweH0uc2V0dGluZ3MtYWN0aW9ucy1zdGlja3l7Ym90dG9tOmNhbGMoLTEqbWF4KDE4cHgsdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpKTttYXJnaW46NnB4IC0xNHB4IDA7cGFkZGluZzoxNnB4IDE0cHggbWF4KDE4cHgsdmFyKC0td2FuZC1zYWZlLWJvdHRvbSkpO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQpO2JvcmRlci10b3A6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfX1AbWVkaWEobWF4LXdpZHRoOjc2MHB4KSwocG9pbnRlcjpjb2Fyc2Upey5zZXR0aW5ncy1tb2RhbCAuYnRuLC5zZXR0aW5ncy1tb2RhbCAuYnRuLXNtLC5zZXR0aW5ncy1tb2RhbCAuYnRuLWljb24sLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWIsLnNldHRpbmdzLW1vZGFsIC5tb2RlbC1jb21ib2JveC10b2dnbGV7bWluLWhlaWdodDo0NHB4O3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb259LnNldHRpbmdzLW1vZGFsIC5idG4taWNvbiwuc2V0dGluZ3MtbW9kYWwgLm1vZGVsLWNvbWJvYm94LXRvZ2dsZXttaW4td2lkdGg6NDRweH19QG1lZGlhKG1heC13aWR0aDo1NjBweCl7LndhbmQtZGlhbG9nLWJhY2tkcm9we2FsaWduLWl0ZW1zOmZsZXgtZW5kO3BhZGRpbmc6bWF4KDE2cHgsdmFyKC0td2FuZC1zYWZlLXRvcCkpIHZhcigtLXdhbmQtc2FmZS1yaWdodCkgMCB2YXIoLS13YW5kLXNhZmUtbGVmdCl9LndhbmQtZGlhbG9ne21heC13aWR0aDpub25lO2JvcmRlci1yYWRpdXM6MjBweCAyMHB4IDAgMDtib3JkZXItYm90dG9tOjB9LndhbmQtZGlhbG9nLWhlYWRlcntwYWRkaW5nOjE4cHggMThweCAxMHB4fS53YW5kLWRpYWxvZy1ib2R5e3BhZGRpbmctbGVmdDoxOHB4O3BhZGRpbmctcmlnaHQ6MThweH0ud2FuZC1kaWFsb2ctZm9vdGVye3BhZGRpbmc6MTJweCAxOHB4IG1heCgxOHB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKX0ud2FuZC1kaWFsb2ctZm9vdGVyIC5idG57ZmxleDoxIDEgMH19QG1lZGlhKG1heC13aWR0aDozOTBweCl7LnNldHRpbmdzLW1vZGVsLWNhcmQtaGVhZGluZ3tnYXA6OHB4fS5zZXR0aW5ncy1tb2RlbC1jYXJkLWljb257d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtmbGV4LWJhc2lzOjMycHh9LnNldHRpbmdzLW1vZGVsLWhlbHB7ZGlzcGxheTpub25lfS53YW5kLWRpYWxvZy1mb290ZXJ7ZmxleC1kaXJlY3Rpb246Y29sdW1uLXJldmVyc2V9LndhbmQtZGlhbG9nLWZvb3RlciAuYnRue3dpZHRoOjEwMCV9fUBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LnNldHRpbmdzLW1vZGVsLXJlZnJlc2guaXMtbG9hZGluZyBzdmd7YW5pbWF0aW9uOm5vbmV9fQo="),
|
|
10
10
|
vendor: {
|
|
11
11
|
"/vendor/wterm/wterm.bundle.js": {
|