{"remainingRequest":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\project\\info2\\view.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\project\\info2\\view.vue","mtime":1634007168910},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgbGlzdEluZm8sIGdldEluZm8sIGRlbEluZm8sIGFkZEluZm8sIHVwZGF0ZUluZm8sIGV4cG9ydEluZm8gfSBmcm9tICJAL2FwaS9wcm9qZWN0L2luZm8yIjsKaW1wb3J0IFRvcGljSW5mbyBmcm9tICJAL3ZpZXdzL3Byb2plY3QvdG9waWMvaW5kZXgiOyAvL+ivvumimOS/oeaBrwoKaW1wb3J0IFRvcGljSW5mb0FkZCBmcm9tICJAL3ZpZXdzL3Byb2plY3QvdG9waWMvYWRkIjsgLy/or77popjmlrDlop4KCmltcG9ydCBTdWJqZWN0SW5mbyBmcm9tICJAL3ZpZXdzL3Byb2plY3Qvc3ViamVjdC9pbmRleCI7IC8v6K++6aKY5L+h5oGvCgppbXBvcnQgU3ViamVjdEluZm9JbmZvQWRkIGZyb20gIkAvdmlld3MvcHJvamVjdC9zdWJqZWN0L2FkZCI7IC8v6K++6aKY5paw5aKeCgppbXBvcnQgQnVkZ2V0SW5mbyBmcm9tICJAL3ZpZXdzL3Byb2plY3QvYnVkZ2V0L2luZGV4IjsgLy/or77popjkv6Hmga8KCmltcG9ydCBCdWRnZXRJbmZvQWRkIGZyb20gIkAvdmlld3MvcHJvamVjdC9idWRnZXQvYWRkIjsgLy/or77popjmlrDlop4KCmltcG9ydCBQZW9wbGVJbmZvIGZyb20gIkAvdmlld3MvcHJvamVjdC9wYXJ0aWNpcGFudHMvaW5kZXgiOyAvL+S6uuWRmOS/oeaBrwoKaW1wb3J0IFBlb3BsZUluZm9BZGQgZnJvbSAiQC92aWV3cy9wcm9qZWN0L3BhcnRpY2lwYW50cy9hZGQiOyAvL+S6uuWRmOS/oeaBr+WinuWKoAoKaW1wb3J0IEVkaXRvciBmcm9tICdAL2NvbXBvbmVudHMvRWRpdG9yJzsKaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICJAL3V0aWxzL2F1dGgiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkluZm8iLAogIGNvbXBvbmVudHM6IHsKICAgIFRvcGljSW5mbzogVG9waWNJbmZvLAogICAgVG9waWNJbmZvQWRkOiBUb3BpY0luZm9BZGQsCiAgICBTdWJqZWN0SW5mbzogU3ViamVjdEluZm8sCiAgICBTdWJqZWN0SW5mb0luZm9BZGQ6IFN1YmplY3RJbmZvSW5mb0FkZCwKICAgIEJ1ZGdldEluZm86IEJ1ZGdldEluZm8sCiAgICBCdWRnZXRJbmZvQWRkOiBCdWRnZXRJbmZvQWRkLAogICAgUGVvcGxlSW5mbzogUGVvcGxlSW5mbywKICAgIFBlb3BsZUluZm9BZGQ6IFBlb3BsZUluZm9BZGQsCiAgICBFZGl0b3I6IEVkaXRvcgogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIC8vIOS4iuS8oOWPguaVsAogICAgICB1cGxvYWQ6IHsKICAgICAgICB0aXRsZTogIiIsCiAgICAgICAgb3BlbjogZmFsc2UsCiAgICAgICAgLy8g5piv5ZCm56aB55So5LiK5LygCiAgICAgICAgaXNVcGxvYWRpbmc6IGZhbHNlLAogICAgICAgIC8vIOiuvue9ruS4iuS8oOeahOivt+axguWktOmDqAogICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgIEF1dGhvcml6YXRpb246ICJCZWFyZXIgIiArIGdldFRva2VuKCkKICAgICAgICB9LAogICAgICAgIC8vIOS4iuS8oOeahOWcsOWdgAogICAgICAgIHVybDogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArICIvc3lzdGVtL2luZm8vY29tbW9uL3VwbG9hZCIsCiAgICAgICAgLy8g5LiK5Lyg55qE5paH5Lu25YiX6KGoCiAgICAgICAgZmlsZUxpc3Q6IFtdCiAgICAgIH0sCiAgICAgIGFjdGl2ZU5hbWU6ICd0YWInLAogICAgICAvL+WxleW8gOmdouadvwogICAgICBhY3RpdmVOYW1lczogWycxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnXSwKICAgICAgdmlldzogIiIsCiAgICAgIC8vIOmBrue9qeWxggogICAgICBsb2FkaW5nOiB0cnVlLAogICAgICAvLyDpgInkuK3mlbDnu4QKICAgICAgaWRzOiBbXSwKICAgICAgLy8g6Z2e5Y2V5Liq56aB55SoCiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgLy8g6Z2e5aSa5Liq56aB55SoCiAgICAgIG11bHRpcGxlOiB0cnVlLAogICAgICAvLyDmmL7npLrmkJzntKLmnaHku7YKICAgICAgc2hvd1NlYXJjaDogdHJ1ZSwKICAgICAgLy8g5oC75p2h5pWwCiAgICAgIHRvdGFsOiAwLAogICAgICAvLyDjgJDor7floavlhpnlip/og73lkI3np7DjgJHooajmoLzmlbDmja4KICAgICAgaW5mb0xpc3Q6IFtdLAogICAgICAvLyDlvLnlh7rlsYLmoIfpopgKICAgICAgdGl0bGU6ICIiLAogICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYIKICAgICAgb3BlbjogZmFsc2UsCiAgICAgIC8vIGlzVG9waWM6MCwKICAgICAgaXNTdWJtaXQ6IGZhbHNlLAogICAgICB0b3BpY0Zvcm06IGZhbHNlLAogICAgICBidWRnZXRGb3JtOiBmYWxzZSwKICAgICAgcGVvcGxlRm9ybTogZmFsc2UsCiAgICAgIGVkaXRUb3BpY0lkOiAwLAogICAgICB0b3BpY1R5cGU6ICIiLAogICAgICB0b3BpY0lkOiAwLAogICAgICB0b3BpY0NvZGU6ICIiLAogICAgICBzdWJqZWN0Rm9ybTogZmFsc2UsCiAgICAgIHN1YmplY3RUeXBlOiAiIiwKICAgICAgZWRpdFN1YklkOiAwLAogICAgICBzdWJqZWN0SWQ6IDAsCiAgICAgIHN1YmplY3RDb2RlOiAiIiwKICAgICAgYnVkZ2V0VHlwZTogIiIsCiAgICAgIGVkaXRCdWRJZDogMCwKICAgICAgcGVvcGxlVHlwZTogIiIsCiAgICAgIHBlb3BsZUlkOiAwLAogICAgICAvL+mhueebruexu+WeiwogICAgICB0eXBlT3B0aW9uczogW10sCiAgICAgIHNlY3JldE9wdGlvbnM6IFtdLAogICAgICBzb3VyY2VPcHRpb25zOiBbXSwKICAgICAgY2F0ZWdvcnlPcHRpb25zOiBbXSwKICAgICAgc3RhdHVzT3B0aW9uczogW10sCiAgICAgIHBpc2hpU3RhdHVzT3B0aW9uczogW10sCiAgICAgIC8vIOafpeivouWPguaVsAogICAgICBxdWVyeVBhcmFtczogewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgIGNhdGVnb3J5OiBudWxsLAogICAgICAgIGNvZGU6IG51bGwsCiAgICAgICAgbmFtZTogbnVsbCwKICAgICAgICB0eXBlOiBudWxsLAogICAgICAgIGRlcGFydG1lbnRJZDogbnVsbCwKICAgICAgICB1c2VySWQ6IG51bGwsCiAgICAgICAgZGVhZGxpbmU6IG51bGwsCiAgICAgICAgdG90YWxPdXRsYXk6IG51bGwsCiAgICAgICAgZmlyc3RPdXRsYXk6IG51bGwsCiAgICAgICAgc2Vjb25kT3V0bGF5OiBudWxsLAogICAgICAgIHN0YXR1czogbnVsbCwKICAgICAgICBiZWdpbkRhdGU6IG51bGwsCiAgICAgICAgY29tcGxldGVEYXRlOiBudWxsLAogICAgICAgIGVuZERhdGU6IG51bGwsCiAgICAgICAgYXBwcm92YWxEYXRlOiBudWxsLAogICAgICAgIGlzU2VjcmVjeTogbnVsbCwKICAgICAgICBzZWNyZWN5TGV2ZWw6IG51bGwsCiAgICAgICAgc2VjcmVjeVRlcm06IG51bGwsCiAgICAgICAgaXNUb3BpYzogbnVsbCwKICAgICAgICB0YXNrVGFyZ2V0OiBudWxsLAogICAgICAgIHJlc3VsdFRhcmdldDogbnVsbCwKICAgICAgICBtZXRob2RSb3V0ZTogbnVsbCwKICAgICAgICBwbGFuOiBudWxsLAogICAgICAgIHNwZW5kRXhwbGFpbjogbnVsbCwKICAgICAgICByZWx5SWQ6IG51bGwsCiAgICAgICAgbGFzdERhdGU6IG51bGwsCiAgICAgICAgcmV2aWV3U3RhdHVzWGI6IG51bGwsCiAgICAgICAgcmV2aWV3U3RhdHVzQ3c6IG51bGwsCiAgICAgICAgdG90YWxCdWRnZXQ6IG51bGwsCiAgICAgICAgZmlyc3RCdWRnZXQ6IG51bGwsCiAgICAgICAgc2Vjb25kQnVkZ2V0OiBudWxsLAogICAgICAgIGFwcGx5SWQ6IG51bGwsCiAgICAgICAgcHJvamVjdFNvdXJjZTogbnVsbCwKICAgICAgICBwcm9qZWN0U291cmNlQ29tcGFueTogbnVsbCwKICAgICAgICByZXZpZXdTdGF0dXNad2g6IG51bGwsCiAgICAgICAgaXNBZ3JlZW1lbnQ6IG51bGwsCiAgICAgICAgcmVseVVuaXRIZWFkOiBudWxsLAogICAgICAgIHJlbHlVbml0SGVhZHRvY3c6IG51bGwsCiAgICAgICAgdGFza1BlcmlvZDogbnVsbCwKICAgICAgICBvdGhlcnBsYW46IG51bGwsCiAgICAgICAgcG9pbnQ6IG51bGwsCiAgICAgICAgcmVzdWx0OiBudWxsLAogICAgICAgIGludHJvZHVjdGlvbjogbnVsbCwKICAgICAgICBwcm9wcm90aW9uOiBudWxsLAogICAgICAgIHRlcm06IG51bGwsCiAgICAgICAgYW5uZXhOYW1lOiBudWxsLAogICAgICAgIGFubmV4UGF0aDogbnVsbAogICAgICB9LAogICAgICAvLyDooajljZXlj4LmlbAKICAgICAgZm9ybToge30sCiAgICAgIC8vIOihqOWNleagoemqjAogICAgICBydWxlczogewogICAgICAgIGlzVG9waWM6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nkuIDpobknLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0KICAgICAgfQogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICAkcm91dGU6IGZ1bmN0aW9uICRyb3V0ZSgpIHsKICAgICAgLy8gY29uc29sZS5sb2codGhpcy4kcm91dGUpCiAgICAgIHRoaXMudmlldyA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnZpZXc7CiAgICAgIHZhciBwcm9JZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmlkOwoKICAgICAgaWYgKHRoaXMudmlldyAmJiB0aGlzLnZpZXcgPT0gImVkaXQiKSB7CiAgICAgICAgdGhpcy5mb3JtLmlkID0gcHJvSWQ7CiAgICAgICAgdGhpcy5pbml0KHByb0lkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnJlc2V0KCk7CiAgICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgICAgfQogICAgfQogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgdGhpcy52aWV3ID0gdGhpcy4kcm91dGUucXVlcnkudmlldzsKICAgIHZhciBwcm9JZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmlkOwoKICAgIGlmICh0aGlzLnZpZXcgJiYgdGhpcy52aWV3ID09ICJlZGl0IikgewogICAgICB0aGlzLmZvcm0uaWQgPSBwcm9JZDsKICAgICAgdGhpcy5pbml0KHByb0lkKTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgIH0KCiAgICB0aGlzLmdldERpY3RzKCJwcm9fdHlwZSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnR5cGVPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgdGhpcy5nZXREaWN0cygicHJvX3NlY3JldF9sZXZlbCIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnNlY3JldE9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9fc291cmNlIikudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgX3RoaXMuc291cmNlT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInByb19jYXRlZ29yeSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLmNhdGVnb3J5T3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInByb19zdGF0dXMiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy5zdGF0dXNPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgdGhpcy5nZXREaWN0cygicHJvamVjdF9waXNoaSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnBpc2hpU3RhdHVzT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICB9LAogIC8v6aG16Z2i6YCA5Ye65pe26ZSA5q+B5b2T5YmN6aG16Z2i6Ziy5q2i57yT5a2YCiAgZGVhY3RpdmF0ZWQ6IGZ1bmN0aW9uIGRlYWN0aXZhdGVkKCkgewogICAgdGhpcy4kZGVzdHJveSh0cnVlKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGluaXQ6IGZ1bmN0aW9uIGluaXQoaWQpIHsKICAgICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgICBnZXRJbmZvKGlkKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgIF90aGlzMi5mb3JtID0gcmVzcG9uc2UuZGF0YTsgLy8gY29uc29sZS5sb2codGhpcy5mb3JtLmFubmV4TmFtZSx0aGlzLmZvcm0uYW5uZXhQYXRoKQogICAgICAgIC8vIHRoaXMuZm9ybWF0VXBsb2FkQW5uZXgodGhpcy5mb3JtLmFubmV4TmFtZSx0aGlzLmZvcm0uYW5uZXhQYXRoKTsKICAgICAgfSk7CiAgICB9LAogICAgdHlwZUZvcm1hdDogZnVuY3Rpb24gdHlwZUZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy50eXBlT3B0aW9ucywgcm93LnR5cGUpOwogICAgfSwKICAgIHNlY3JldEZvcm1hdDogZnVuY3Rpb24gc2VjcmV0Rm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLnNlY3JldE9wdGlvbnMsIHJvdy5zZWNyZXRMZXZlbCk7CiAgICB9LAogICAgY2F0ZWdvcnlGb3JtYXQ6IGZ1bmN0aW9uIGNhdGVnb3J5Rm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLmNhdGVnb3J5T3B0aW9ucywgcm93LmNhdGVnb3J5KTsKICAgIH0sCiAgICBzdGF0dXNGb3JtYXQ6IGZ1bmN0aW9uIHN0YXR1c0Zvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zdGF0dXNPcHRpb25zLCByb3cuc3RhdHVzKTsKICAgIH0sCiAgICBzb3VyY2VGb3JtYXQ6IGZ1bmN0aW9uIHNvdXJjZUZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zb3VyY2VPcHRpb25zLCByb3cucHJvamVjdFNvdXJjZSk7CiAgICB9LAogICAgaGFuZGxlQ2xpY2s6IGZ1bmN0aW9uIGhhbmRsZUNsaWNrKHRhYiwgZXZlbnQpIHsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gdGFiLm5hbWU7CiAgICB9LAoKICAgIC8qKiDmn6Xor6LjgJDor7floavlhpnlip/og73lkI3np7DjgJHliJfooaggKi8KICAgIGdldExpc3Q6IGZ1bmN0aW9uIGdldExpc3QoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwoKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgbGlzdEluZm8odGhpcy5xdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczMuaW5mb0xpc3QgPSByZXNwb25zZS5yb3dzOwogICAgICAgIF90aGlzMy50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgIF90aGlzMy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWPlua2iOaMiemSrgogICAgY2FuY2VsOiBmdW5jdGlvbiBjYW5jZWwoKSB7CiAgICAgIHRoaXMub3BlbiA9IGZhbHNlOwogICAgICB0aGlzLnJlc2V0KCk7CiAgICB9LAogICAgLy8g6KGo5Y2V6YeN572uCiAgICByZXNldDogZnVuY3Rpb24gcmVzZXQoKSB7CiAgICAgIHRoaXMuZm9ybSA9IHsKICAgICAgICBpZDogbnVsbCwKICAgICAgICBjYXRlZ29yeTogbnVsbCwKICAgICAgICBjb2RlOiBudWxsLAogICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgdHlwZTogbnVsbCwKICAgICAgICBkZXBhcnRtZW50SWQ6IG51bGwsCiAgICAgICAgdXNlcklkOiBudWxsLAogICAgICAgIGRlYWRsaW5lOiBudWxsLAogICAgICAgIHRvdGFsT3V0bGF5OiBudWxsLAogICAgICAgIGZpcnN0T3V0bGF5OiBudWxsLAogICAgICAgIHNlY29uZE91dGxheTogbnVsbCwKICAgICAgICBzdGF0dXM6IG51bGwsCiAgICAgICAgYmVnaW5EYXRlOiBudWxsLAogICAgICAgIGNvbXBsZXRlRGF0ZTogbnVsbCwKICAgICAgICBlbmREYXRlOiBudWxsLAogICAgICAgIGFwcHJvdmFsRGF0ZTogbnVsbCwKICAgICAgICBpc1NlY3JlY3k6IG51bGwsCiAgICAgICAgc2VjcmVjeUxldmVsOiBudWxsLAogICAgICAgIHNlY3JlY3lUZXJtOiBudWxsLAogICAgICAgIGlzVG9waWM6IG51bGwsCiAgICAgICAgdGFza1RhcmdldDogbnVsbCwKICAgICAgICByZXN1bHRUYXJnZXQ6IG51bGwsCiAgICAgICAgbWV0aG9kUm91dGU6IG51bGwsCiAgICAgICAgcGxhbjogbnVsbCwKICAgICAgICBzcGVuZEV4cGxhaW46IG51bGwsCiAgICAgICAgcmVseUlkOiBudWxsLAogICAgICAgIGxhc3REYXRlOiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c1hiOiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c0N3OiBudWxsLAogICAgICAgIHRvdGFsQnVkZ2V0OiBudWxsLAogICAgICAgIGZpcnN0QnVkZ2V0OiBudWxsLAogICAgICAgIHNlY29uZEJ1ZGdldDogbnVsbCwKICAgICAgICBhcHBseUlkOiBudWxsLAogICAgICAgIHByb2plY3RTb3VyY2U6IG51bGwsCiAgICAgICAgcHJvamVjdFNvdXJjZUNvbXBhbnk6IG51bGwsCiAgICAgICAgcmV2aWV3U3RhdHVzWndoOiBudWxsLAogICAgICAgIGlzQWdyZWVtZW50OiBudWxsLAogICAgICAgIHJlbHlVbml0SGVhZDogbnVsbCwKICAgICAgICByZWx5VW5pdEhlYWR0b2N3OiBudWxsLAogICAgICAgIHRhc2tQZXJpb2Q6IG51bGwsCiAgICAgICAgb3RoZXJwbGFuOiBudWxsLAogICAgICAgIHBvaW50OiBudWxsLAogICAgICAgIHJlc3VsdDogbnVsbCwKICAgICAgICBpbnRyb2R1Y3Rpb246IG51bGwsCiAgICAgICAgcHJvcHJvdGlvbjogbnVsbCwKICAgICAgICB0ZXJtOiBudWxsLAogICAgICAgIGNyZWF0ZUJ5OiBudWxsLAogICAgICAgIGNyZWF0ZVRpbWU6IG51bGwsCiAgICAgICAgdXBkYXRlQnk6IG51bGwsCiAgICAgICAgdXBkYXRlVGltZTogbnVsbCwKICAgICAgICBkZWxGbGFnOiBudWxsLAogICAgICAgIGFubmV4TmFtZTogbnVsbCwKICAgICAgICBhbm5leFBhdGg6IG51bGwKICAgICAgfTsKICAgICAgdGhpcy5yZXNldEZvcm0oImZvcm0iKTsKICAgIH0sCgogICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5KCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSAxOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCgogICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqLwogICAgcmVzZXRRdWVyeTogZnVuY3Rpb24gcmVzZXRRdWVyeSgpIHsKICAgICAgdGhpcy5yZXNldEZvcm0oInF1ZXJ5Rm9ybSIpOwogICAgICB0aGlzLmhhbmRsZVF1ZXJ5KCk7CiAgICB9LAoKICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUFkZDogZnVuY3Rpb24gaGFuZGxlQWRkKCkgewogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5re75Yqg44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CRIjsKICAgIH0sCgogICAgLyoqIOS/ruaUueaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlVXBkYXRlOiBmdW5jdGlvbiBoYW5kbGVVcGRhdGUocm93KSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB2YXIgaWQgPSByb3cuaWQgfHwgdGhpcy5pZHM7CiAgICAgIGdldEluZm8oaWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM0LmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIF90aGlzNC5vcGVuID0gdHJ1ZTsKICAgICAgICBfdGhpczQudGl0bGUgPSAi5L+u5pS544CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CRIjsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwoKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKF90aGlzNS5mb3JtLmlkICE9IG51bGwpIHsKICAgICAgICAgICAgdXBkYXRlSW5mbyhfdGhpczUuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczUubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXM1Lm9wZW4gPSBmYWxzZTsgLy8gdGhpcy5nZXRMaXN0KCk7CgogICAgICAgICAgICAgICAgX3RoaXM1LmlzU3VibWl0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF90aGlzNS5mb3JtID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYWRkSW5mbyhfdGhpczUuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczUubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXM1Lm9wZW4gPSBmYWxzZTsgLy8gdGhpcy5nZXRMaXN0KCk7CgogICAgICAgICAgICAgICAgX3RoaXM1LmlzU3VibWl0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF90aGlzNS5mb3JtID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgYWRkVG9waWM6IGZ1bmN0aW9uIGFkZFRvcGljKCkgewogICAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm0uaWQpOwogICAgICB0aGlzLnRvcGljRm9ybSA9IHRydWU7CiAgICAgIHRoaXMuYWN0aXZlTmFtZSA9ICJ0YWIyIjsKICAgICAgdGhpcy50b3BpY1R5cGUgPSAnYWRkJzsKICAgICAgdGhpcy5lZGl0VG9waWNJZCA9ICcwJzsKICAgIH0sCiAgICBhZGRCdWRnZXQ6IGZ1bmN0aW9uIGFkZEJ1ZGdldCgpIHsKICAgICAgdGhpcy5idWRnZXRGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gInRhYjYiOwogICAgICB0aGlzLmJ1ZGdldFR5cGUgPSAnYWRkJzsKICAgICAgdGhpcy5lZGl0QnVkSWQgPSAnMCc7CiAgICB9LAogICAgYWRkUGVvcGxlOiBmdW5jdGlvbiBhZGRQZW9wbGUoKSB7CiAgICAgIHRoaXMucGVvcGxlRm9ybSA9IHRydWU7CiAgICAgIHRoaXMuYWN0aXZlTmFtZSA9ICJ0YWI4IjsKICAgICAgdGhpcy5wZW9wbGVUeXBlID0gJ2FkZCc7CiAgICAgIHRoaXMucGVvcGxlSWQgPSAwOwogICAgfSwKICAgIGFkZFBlb3BsZUluZm9Gb3JtOiBmdW5jdGlvbiBhZGRQZW9wbGVJbmZvRm9ybSh0eXBlLCBpZCkgewogICAgICAvLyAgICAgIGNvbnNvbGUubG9nKHR5cGUsaWQpCiAgICAgIHRoaXMucGVvcGxlVHlwZSA9IHR5cGU7CiAgICAgIHRoaXMucGVvcGxlSWQgPSBpZDsKICAgICAgdGhpcy5wZW9wbGVGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gInRhYjgiOwogICAgfSwKICAgIGFkZFRvcGljSW5mbzogZnVuY3Rpb24gYWRkVG9waWNJbmZvKHR5cGUsIHRvcGljSWQpIHsKICAgICAgLy8gICAgICBjb25zb2xlLmxvZygidGFiMiIpCiAgICAgIHRoaXMudG9waWNUeXBlID0gdHlwZTsKICAgICAgdGhpcy50b3BpY0Zvcm0gPSB0cnVlOwogICAgICB0aGlzLmVkaXRUb3BpY0lkID0gdG9waWNJZDsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gInRhYjIiOwogICAgfSwKICAgIGFkZFN1YmplY3Q6IGZ1bmN0aW9uIGFkZFN1YmplY3QodGFiLCB0b3BpY0lkLCB0b3BpY0NvZGUpIHsKICAgICAgY29uc29sZS5sb2codGFiICsgIi0tIiArIHRvcGljSWQgKyAiLS0iICsgdG9waWNDb2RlKTsKCiAgICAgIGlmICh0b3BpY0lkKSB7CiAgICAgICAgdGhpcy50b3BpY0lkID0gdG9waWNJZDsKICAgICAgICB0aGlzLnRvcGljQ29kZSA9IHRvcGljQ29kZTsKICAgICAgICB0aGlzLnN1YmplY3RGb3JtID0gdHJ1ZTsKICAgICAgICB0aGlzLnN1YmplY3RUeXBlID0gImFkZCI7CiAgICAgIH0KCiAgICAgIHRoaXMuYWN0aXZlTmFtZSA9ICJ0YWI0IjsKICAgIH0sCiAgICBlZGl0U3ViamVjdDogZnVuY3Rpb24gZWRpdFN1YmplY3QodGFiLCB0eXBlLCBlZGl0SWQsIHRvcGljSWQsIHRvcGljQ29kZSkgewogICAgICBpZiAodHlwZSA9PSAnZWRpdCcgJiYgZWRpdElkKSB7CiAgICAgICAgdGhpcy50b3BpY0lkID0gdG9waWNJZDsKICAgICAgICB0aGlzLnRvcGljQ29kZSA9IHRvcGljQ29kZTsKICAgICAgICB0aGlzLnN1YmplY3RGb3JtID0gdHJ1ZTsKICAgICAgICB0aGlzLnN1YmplY3RUeXBlID0gImVkaXQiOwogICAgICAgIHRoaXMuZWRpdFN1YklkID0gZWRpdElkOwogICAgICB9CgogICAgICB0aGlzLmFjdGl2ZU5hbWUgPSAidGFiNCI7CiAgICB9LAogICAgYWRkQnVkZ2V0Rm9ybTogZnVuY3Rpb24gYWRkQnVkZ2V0Rm9ybSh0eXBlLCBidWRnZXRJZCkgewogICAgICB0aGlzLmJ1ZGdldFR5cGUgPSB0eXBlOwogICAgICB0aGlzLmVkaXRCdWRJZCA9IGJ1ZGdldElkOwogICAgICB0aGlzLmJ1ZGdldEZvcm0gPSB0cnVlOwogICAgICB0aGlzLmFjdGl2ZU5hbWUgPSAidGFiNiI7CiAgICB9LAogICAgYWRkU3ViamVjdEZyb21Ub3BpYzogZnVuY3Rpb24gYWRkU3ViamVjdEZyb21Ub3BpYyh0YWIsIHRvcGljSWQsIHRvcGljQ29kZSkgewogICAgICBjb25zb2xlLmxvZygidGFiMSIsIHRhYiwgdG9waWNJZCwgdG9waWNDb2RlKTsKCiAgICAgIGlmICh0b3BpY0lkICE9IDApIHsKICAgICAgICB0aGlzLnRvcGljSWQgPSB0b3BpY0lkOwogICAgICAgIHRoaXMudG9waWNDb2RlID0gdG9waWNDb2RlOwogICAgICAgIHRoaXMuc3ViamVjdEZvcm0gPSB0cnVlOwogICAgICAgIHRoaXMuYWN0aXZlTmFtZSA9IHRhYjsKICAgICAgICB0aGlzLmVkaXRTdWJJZCA9ICcwJzsKICAgICAgICB0aGlzLnN1YmplY3RUeXBlID0gJ2FkZCc7CiAgICAgIH0KICAgIH0sCiAgICB0b3BpY0FkZEJ1ZGdldDogZnVuY3Rpb24gdG9waWNBZGRCdWRnZXQodGFiLCB0b3BpY0lkLCB0b3BpY0NvZGUpIHsKICAgICAgY29uc29sZS5sb2coInRhYjEiLCB0YWIsIHRvcGljSWQsIHRvcGljQ29kZSk7CgogICAgICBpZiAodG9waWNJZCAhPSAwKSB7CiAgICAgICAgdGhpcy50b3BpY0lkID0gdG9waWNJZDsKICAgICAgICB0aGlzLnRvcGljQ29kZSA9IHRvcGljQ29kZTsKICAgICAgfQoKICAgICAgdGhpcy5idWRnZXRGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gdGFiOwogICAgICB0aGlzLmJ1ZGdldFR5cGUgPSAnYWRkJzsKICAgICAgdGhpcy5lZGl0QnVkSWQgPSAnMCc7CiAgICB9LAogICAgdG9waWNBZGRQZW9wbGU6IGZ1bmN0aW9uIHRvcGljQWRkUGVvcGxlKHRhYiwgdG9waWNJZCwgdG9waWNDb2RlKSB7CiAgICAgIGlmICh0b3BpY0lkICE9IDApIHsKICAgICAgICB0aGlzLnRvcGljSWQgPSB0b3BpY0lkOwogICAgICAgIHRoaXMudG9waWNDb2RlID0gdG9waWNDb2RlOwogICAgICB9CgogICAgICB0aGlzLnBlb3BsZVR5cGUgPSAnYWRkJzsKICAgICAgdGhpcy5wZW9wbGVJZCA9IDA7CiAgICAgIHRoaXMucGVvcGxlRm9ybSA9IHRydWU7CiAgICAgIHRoaXMuYWN0aXZlTmFtZSA9IHRhYjsKICAgIH0sCiAgICBzdWJqZWN0TGlzdDogZnVuY3Rpb24gc3ViamVjdExpc3QodGFiLCBzdWJqZWN0SWQsIHN1YmplY3RDb2RlKSB7CiAgICAgIHRoaXMuYnVkZ2V0VHlwZSA9ICdhZGQnOwogICAgICB0aGlzLmVkaXRCdWRJZCA9ICcwJzsKICAgICAgdGhpcy5idWRnZXRGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5zdWJqZWN0SWQgPSBzdWJqZWN0SWQ7CiAgICAgIHRoaXMuc3ViamVjdENvZGUgPSBzdWJqZWN0Q29kZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gdGFiOwogICAgfSwKICAgIHN1YmplY3RBZGRQZW9wbGU6IGZ1bmN0aW9uIHN1YmplY3RBZGRQZW9wbGUodGFiLCBzdWJqZWN0SWQsIHN1YmplY3RDb2RlKSB7CiAgICAgIHRoaXMucGVvcGxlVHlwZSA9ICdhZGQnOwogICAgICB0aGlzLnBlb3BsZUlkID0gMDsKICAgICAgdGhpcy5wZW9wbGVGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5zdWJqZWN0SWQgPSBzdWJqZWN0SWQ7CiAgICAgIHRoaXMuc3ViamVjdENvZGUgPSBzdWJqZWN0Q29kZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gdGFiOwogICAgfSwKICAgIC8v5qC85byP5YyW5LiK5Lyg6ZmE5Lu2CiAgICBmb3JtYXRVcGxvYWRBbm5leDogZnVuY3Rpb24gZm9ybWF0VXBsb2FkQW5uZXgoYW5uZXhOYW1lLCBhbm5leFBhdGgpIHsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKCiAgICAgIGlmIChhbm5leFBhdGggIT0gbnVsbCAmJiBhbm5leFBhdGggIT0gJycpIHsKICAgICAgICB2YXIgYSA9IEpTT04ucGFyc2UoYW5uZXhOYW1lKTsKICAgICAgICB2YXIgYiA9IEpTT04ucGFyc2UoYW5uZXhQYXRoKTsKCiAgICAgICAgaWYgKGEgPT0gbnVsbCkgewogICAgICAgICAgYSA9IFtdOwogICAgICAgICAgYiA9IFtdOwogICAgICAgIH0KCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdC5wdXNoKHsKICAgICAgICAgICAgJ25hbWUnOiBhW2ldLAogICAgICAgICAgICAndXJsJzogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArIGJbaV0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdCA9IFtdOwogICAgICB9CiAgICB9LAoKICAgIC8qKuafpeeci+mZhOS7tioqLwogICAgdmlld0FubmV4OiBmdW5jdGlvbiB2aWV3QW5uZXgoKSB7CiAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0ID0gW107CiAgICAgIHRoaXMuZm9ybWF0VXBsb2FkQW5uZXgodGhpcy5mb3JtLmFubmV4TmFtZSwgdGhpcy5mb3JtLmFubmV4UGF0aCk7CiAgICAgIHRoaXMudXBsb2FkLm9wZW4gPSB0cnVlOyAvLyB0aGlzLnVwbG9hZFByb2plY3QudGl0bGUgPSAi6aG555uu5a+85YWlIjsKICAgICAgLy8gdGhpcy51cGxvYWRQcm9qZWN0Lm9wZW4gPSB0cnVlOwogICAgfSwKICAgIHZpZXdBbm5leEJvb2tGaWxlOiBmdW5jdGlvbiB2aWV3QW5uZXhCb29rRmlsZShyb3cpIHsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy5mb3JtYXRVcGxvYWRBbm5leCh0aGlzLmZvcm0uYm9va0ZpbGUsIHRoaXMuZm9ybS5ib29rRmlsZVBhdGgpOwogICAgICB0aGlzLnVwbG9hZC5vcGVuID0gdHJ1ZTsKICAgIH0sCiAgICBoYW5kbGVQcmV2aWV3OiBmdW5jdGlvbiBoYW5kbGVQcmV2aWV3KGZpbGUpIHsKICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgIHZhciBldmVudCA9IG5ldyBNb3VzZUV2ZW50KCdjbGljaycpOwogICAgICBhLmRvd25sb2FkID0gZmlsZS5uYW1lOwogICAgICBhLnRhcmdldCA9ICdfYmxhbmsnOwogICAgICBhLmhyZWYgPSBmaWxlLnVybDsKICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAgY29uc29sZS5sb2coZmlsZS5uYW1lKTsKICAgIH0sCiAgICBoYW5kbGVfcmVtb3ZlOiBmdW5jdGlvbiBoYW5kbGVfcmVtb3ZlKGZpbGUsIGZpbGVMaXN0LCB0eXBlKSB7CiAgICAgIHZhciBfdG1wID0gdGhpcy51cGxvYWQuZmlsZUxpc3Q7CgogICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gX3RtcC5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgIGlmIChfdG1wW2ldLm5hbWUgPSBmaWxlLm5hbWUpIHsKICAgICAgICAgIF90bXAuc3BsaWNlKGksIDEpOwoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQoKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBfdG1wOwogICAgICB2YXIgYSA9IFtdOwogICAgICB2YXIgYiA9IFtdOwogICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7CiAgICAgICAgdmFyIHVybCA9IHNbJ3VybCddOwogICAgICAgIHVybCA9IHVybC5yZXBsYWNlKHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEksICcnKTsKICAgICAgICBhLnB1c2goc1snbmFtZSddKTsKICAgICAgICBiLnB1c2godXJsKTsKICAgICAgfSk7CiAgICAgIHRoaXMuZm9ybS5hbm5leE5hbWUgPSBKU09OLnN0cmluZ2lmeShhKTsKICAgICAgdGhpcy5mb3JtLmFubmV4UGF0aCA9IEpTT04uc3RyaW5naWZ5KGIpOwogICAgfSwKICAgIC8vIOaWh+S7tuS4iuS8oOS4reWkhOeQhgogICAgaGFuZGxlRmlsZVVwbG9hZFByb2dyZXNzOiBmdW5jdGlvbiBoYW5kbGVGaWxlVXBsb2FkUHJvZ3Jlc3MoZXZlbnQsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMudXBsb2FkLmlzVXBsb2FkaW5nID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDmlofku7bkuIrkvKDmiJDlip/lpITnkIYKICAgIGhhbmRsZUZpbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVGaWxlU3VjY2VzcyhyZXNwb25zZSwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWQuaXNVcGxvYWRpbmcgPSBmYWxzZTsKICAgICAgdmFyIGEgPSBKU09OLnBhcnNlKHRoaXMuZm9ybS5hbm5leE5hbWUpOwogICAgICB2YXIgYiA9IEpTT04ucGFyc2UodGhpcy5mb3JtLmFubmV4UGF0aCk7CgogICAgICBpZiAoYSA9PSBudWxsKSB7CiAgICAgICAgYSA9IFtdOwogICAgICAgIGIgPSBbXTsKICAgICAgfQoKICAgICAgYS5wdXNoKHJlc3BvbnNlLmZpbGVOYW1lKTsKICAgICAgYi5wdXNoKHJlc3BvbnNlLnVybCk7CiAgICAgIGNvbnNvbGUubG9nKGEsICctLS0tLS0tLScpOwogICAgICB0aGlzLmZvcm0uYW5uZXhOYW1lID0gSlNPTi5zdHJpbmdpZnkoYSk7CiAgICAgIHRoaXMuZm9ybS5hbm5leFBhdGggPSBKU09OLnN0cmluZ2lmeShiKTsKICAgICAgY29uc29sZS5sb2coYSwgJy0tLS0tLS0tJyk7CiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybS5hbm5leE5hbWUsICctLS0tKysrKysrKysrLS0tLScpOyAvLyAgdGhpcy5mb3JtLmFubmV4TmFtZSA9IHJlc3BvbnNlLmZpbGVOYW1lOwogICAgICAvLyAgdGhpcy5mb3JtLmFubmV4UGF0aCA9IHJlc3BvbnNlLnVybDsKCiAgICAgIHRoaXMubXNnU3VjY2VzcyhyZXNwb25zZS5tc2cpOwogICAgfQogIH0KfTs="},null]}