d5a3f2ae6017fbcbeab122b5cacaa60e.json 26 KB

1
  1. {"remainingRequest":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\thread-loader\\dist\\cjs.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\Finance\\Handle\\AddPayment.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\src\\views\\Finance\\Handle\\AddPayment.vue","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\babel.config.js","mtime":1655374732000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\item\\千鸟\\千鸟云商前端源代码\\源点计划\\jindouyunNewFront\\node_modules\\vue-loader\\lib\\index.js","mtime":1655715099000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IEhhbmRsZSBmcm9tICJAL2NvbXBvbmVudC9GaW5hbmNlL0hhbmRsZS52dWUiOwppbXBvcnQgU2VsZWN0U3VwcGxpZXIgZnJvbSAiQC9jb21wb25lbnQvY29tbW9uL1NlbGVjdFN1cHBsaWVyLnZ1ZSI7CmltcG9ydCBBY2NvdW50VHlwZSBmcm9tICIuLi9BY2NvdW50VHlwZSI7CmltcG9ydCB7IGdldEFsbFBheW1lbnQgfSBmcm9tICJAL2FwaS9TeXN0ZW0iOwppbXBvcnQgeyBnZXRTdXBwbGllckluZm9CeUlkLCB1cGRhdGVQdXJjaGFzZVN0YXR1cyB9IGZyb20gIkAvYXBpL1B1cmNoYXNlIjsKaW1wb3J0IHsgYWRkRmluYW5jZVR5cGUsIGVkaXRGaW5hbmNlVHlwZSwgYWRkUGFpZCwgZWRpdFBhaWQsIGdldFBhaWRJbmZvLCBnZXRBbGxGaW5hbmNlVHlwZU5vUGFnZSwgZ2V0VGVtcFBhaWREYXRhLCBnZXRQYXlJbmZvLCBleHBvcnRHZXRBbGxQYXksIGdldEFsbFBheSB9IGZyb20gIkAvYXBpL0ZpbmFuY2UiOwppbXBvcnQgU2VsZWN0U2hvcCBmcm9tICJAL2NvbXBvbmVudC9nb29kcy9TZWxlY3RTaG9wLnZ1ZSI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiQWRkUGF5bWVudCIsCiAgY29tcG9uZW50czogewogICAgU2VsZWN0U3VwcGxpZXIsCiAgICBBY2NvdW50VHlwZSwKICAgIEhhbmRsZSwKICAgIFNlbGVjdFNob3AKICB9LAoKICBkYXRhKCkgewogICAgY29uc3QgdmFsaWRhdGVOYW1lID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICBpZiAoIXZhbHVlKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fpgInmi6nmlLbmrL7ljZXkvY0iKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKCiAgICBjb25zdCB2YWxpZGF0ZU5vID0gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgPT4gewogICAgICBpZiAoIXZhbHVlKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCLor7fpgInmi6nljp/ljZXmja7lj7ciKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKCiAgICBjb25zdCB2YWxpZGF0ZVNob3AgPSAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSA9PiB7CiAgICAgIGlmICghdmFsdWUpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIuivt+mAieaLqeaJgOWxnuWVhumTuiIpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwoKICAgIHJldHVybiB7CiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIC8vIOaWsOWinui0ouWKoeexu+WeiwogICAgICBmb3JtX3R5cGU6IFt7CiAgICAgICAgbGFiZWw6ICLlupTmlLbljZUiLAogICAgICAgIHZhbHVlOiAxCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogIuW6lOS7mOWNlSIsCiAgICAgICAgdmFsdWU6IDIKICAgICAgfV0sCiAgICAgIHNob3dfbW9kZWw6IGZhbHNlLAogICAgICBhZGRfZm9ybTogewogICAgICAgIG5hbWU6ICIiLAogICAgICAgIGxpbms6ICIiLAogICAgICAgIGlzRGVmYXVsdDogNCwKICAgICAgICBlbmFibGVTdGF0dXM6IDUKICAgICAgfSwKICAgICAgYWRkX3J1bGU6IHsKICAgICAgICBuYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl57G75Z6L5ZCN56ewIgogICAgICAgIH1dLAogICAgICAgIGxpbms6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fpgInmi6nlvZLlsZ7ljZXmja4iCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgbG9hZGluZzogZmFsc2UsCiAgICAgIGNvZGU6ICIiLAogICAgICBjdXN0b21lck5hbWU6ICIiLAogICAgICBjdXN0b21lclR5cGVMaXN0OiBbXSwKICAgICAgcGF5X2luZGV4OiAwLAogICAgICBwYXlfdHlwZV9saXN0OiBbXSwKICAgICAgaGFuZGxlX3Nob3c6IGZhbHNlLAogICAgICBzaG93X3Nob3A6IGZhbHNlLAogICAgICAvLyDmiZPlvIDlupfpk7rpgInmi6nlvLnnqpcKICAgICAgYWNjb3VudF9zaG93OiBmYWxzZSwKICAgICAgbW9uZXk6ICIiLAogICAgICBubzogIiIsCiAgICAgIGZvcm06IHsKICAgICAgICBzdXBwbGllcklkOiAiIiwKICAgICAgICBzdXBwbGllck5hbWU6ICIiLAogICAgICAgIHNvdXJjZU5vOiAiIiwKICAgICAgICBzb3VyY2VOb01vbmV5OiAiIiwKICAgICAgICBjdXJyZW50QWNjb3VudE5hbWU6ICIiLAogICAgICAgIGZpbmFuY2VUeXBlOiAiIiwKICAgICAgICBmaW5hbmNlVHlwZUlkOiAiIiwKICAgICAgICBzaG9wSWQ6ICIiLAogICAgICAgIHNob3BOYW1lOiAiIiwKICAgICAgICByZWNlaXB0VGltZTogIiIsCiAgICAgICAgY3JlYXRlVGltZTogIiIsCiAgICAgICAgdGVtcFNhdmU6IGZhbHNlLAogICAgICAgIGFjY291bnRMaXN0OiBbewogICAgICAgICAgYWNjb3VudElkOiAiIiwKICAgICAgICAgIGFjY291bnROdW1iZXI6ICIiLAogICAgICAgICAgYWNjb3VudE5hbWU6ICIiLAogICAgICAgICAgbW9uZXk6ICIiLAogICAgICAgICAgZGlzY291bnRNb25leTogIiIsCiAgICAgICAgICBmaW5hbE1vbmV5OiAiIiwKICAgICAgICAgIHBheVdheTogIiIsCiAgICAgICAgICByZW1hcms6ICIiCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgcnVsZXM6IHsKICAgICAgICBzdXBwbGllck5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVOYW1lCiAgICAgICAgfV0sCiAgICAgICAgc291cmNlTm86IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVObwogICAgICAgIH1dLAogICAgICAgIGN1cnJlbnRBY2NvdW50TmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpeS7mOasvuS6uiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBzaG9wTmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqeWVhumTuiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XQogICAgICB9LAogICAgICBwYWlkOiAiIiwKICAgICAgY3JlYXRlVGltZTogIiIsCiAgICAgIGlzTG9vazogZmFsc2UsCiAgICAgIGlzRWRpdDogZmFsc2UsCiAgICAgIGNob29zZV9kYXRhOiBbXSwKICAgICAgY2hlY2tfbW9uZXk6IDAsCiAgICAgIC8vIOWLvumAieWQjuWQiOiuoQogICAgICBpZDogIiIsCiAgICAgIHB1cmNoYXNlSWQ6ICIiLAogICAgICBjcmVhdGVUaW1lMTogIiIsCiAgICAgIGFjdGl2ZU5hbWU6ICJvbmUiCiAgICB9OwogIH0sCgogIGNvbXB1dGVkOiB7CiAgICAvLyDku5jmrL7mgLvph5Hpop0KICAgIG1vbmV5VG90YWwoKSB7CiAgICAgIGlmICghdGhpcy5mb3JtLmFjY291bnRMaXN0Lmxlbmd0aCkgewogICAgICAgIHJldHVybiAwOwogICAgICB9IGVsc2UgaWYgKHRoaXMuZm9ybS5hY2NvdW50TGlzdC5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gdGhpcy4kTlAubWludXMoTnVtYmVyKHRoaXMuZm9ybS5hY2NvdW50TGlzdFswXS5tb25leSksIE51bWJlcih0aGlzLmZvcm0uYWNjb3VudExpc3RbMF0uZGlzY291bnRNb25leSkpOwogICAgICB9IGVsc2UgewogICAgICAgIGxldCBzdW0gPSAwOwogICAgICAgIHRoaXMuZm9ybS5hY2NvdW50TGlzdC5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgY29uc3QgbW9uZXkgPSB0aGlzLiROUC5taW51cyhOdW1iZXIoaXRlbS5tb25leSksIE51bWJlcihpdGVtLmRpc2NvdW50TW9uZXkpKTsKICAgICAgICAgIHN1bSA9IHRoaXMuJE5QLnBsdXMoc3VtLCBtb25leSk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgfQogICAgfSwKCiAgICAvLyDmoLjplIDmgLvph5Hpop0KICAgIG9mZlNldFRvdGFsKCkgewogICAgICBpZiAoIXRoaXMuY2hvb3NlX2RhdGEubGVuZ3RoKSB7CiAgICAgICAgcmV0dXJuIDA7CiAgICAgIH0gZWxzZSBpZiAodGhpcy5jaG9vc2VfZGF0YS5sZW5ndGggPT09IDEpIHsKICAgICAgICByZXR1cm4gTnVtYmVyKHRoaXMuY2hvb3NlX2RhdGFbMF0ub2Zmc2V0TW9uZXkpOwogICAgICB9IGVsc2UgewogICAgICAgIGxldCBzdW0gPSAwOwogICAgICAgIHRoaXMuY2hvb3NlX2RhdGEuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgIHN1bSA9IHRoaXMuJE5QLnBsdXMoc3VtLCBOdW1iZXIoaXRlbS5vZmZzZXRNb25leSkgfHwgMCk7CiAgICAgICAgfSk7CiAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgfQogICAgfSwKCiAgICAvLyDmnKrmoLjplIDmgLvph5Hpop0KICAgIG9mZlNldE5vdFRvdGFsKCkgewogICAgICBpZiAoIXRoaXMudGFibGVEYXRhLmxlbmd0aCkgewogICAgICAgIHJldHVybiAwOwogICAgICB9IGVsc2UgaWYgKHRoaXMudGFibGVEYXRhLmxlbmd0aCA9PT0gMSkgewogICAgICAgIHJldHVybiBOdW1iZXIodGhpcy50YWJsZURhdGFbMF0ubm90T2Zmc2V0TW9uZXkpOwogICAgICB9IGVsc2UgewogICAgICAgIGxldCBzdW0gPSAwOwogICAgICAgIHRoaXMudGFibGVEYXRhLmZvckVhY2goaXRlbSA9PiB7CiAgICAgICAgICBzdW0gPSB0aGlzLiROUC5wbHVzKHN1bSwgTnVtYmVyKGl0ZW0ubm90T2Zmc2V0TW9uZXkpIHx8IDApOwogICAgICAgIH0pOwogICAgICAgIHJldHVybiBzdW07CiAgICAgIH0KICAgIH0KCiAgfSwKCiAgY3JlYXRlZCgpIHsKICAgIHRoaXMuaW5pdGlhbCgpOwogIH0sCgogIGFjdGl2YXRlZCgpIHsKICAgIGlmICh0aGlzLiRfaXNJbml0KCkpIHJldHVybjsKICAgIHRoaXMuaW5pdGlhbCgpOwogIH0sCgogIG1ldGhvZHM6IHsKICAgIC8vIOWIneWni+WMlgogICAgYXN5bmMgaW5pdGlhbCgpIHsKICAgICAgdGhpcy5pc0xvb2sgPSB0aGlzLiRyb3V0ZS5wYXRoLmluZGV4T2YoIkxvb2tQYXltZW50IikgPiAtMTsKICAgICAgdGhpcy5pc0VkaXQgPSB0aGlzLiRyb3V0ZS5wYXRoLmluZGV4T2YoImVkaXRQYXltZW50IikgPiAtMTsgLy8g5pS25qy+5Lq66buY6K6k5b2T5YmN6LSm5oi3CgogICAgICB0aGlzLmZvcm0uY3VycmVudEFjY291bnROYW1lID0gdGhpcy51c2VyTmFtZTsKCiAgICAgIGlmICh0aGlzLiRyb3V0ZS5wYXJhbXMuY3JlYXRlVGltZSkgewogICAgICAgIHRoaXMuZm9ybS5jcmVhdGVUaW1lID0gdGhpcy4kcm91dGUucGFyYW1zLmNyZWF0ZVRpbWU7CiAgICAgIH0KCiAgICAgIHRoaXMuZm9ybS5yZWNlaXB0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICBhd2FpdCB0aGlzLmdldEFsbEZpbmFuY2VUeXBlKCk7CiAgICAgIGF3YWl0IHRoaXMuZ2V0QWxsUGF5bWVudCgpOwoKICAgICAgaWYgKHRoaXMuJHJvdXRlLnBhcmFtcy5pZCkgewogICAgICAgIC8vIOe8lui+kemhtemdogogICAgICAgIHRoaXMucGFpZCA9IHRoaXMuJHJvdXRlLnBhcmFtcy5pZDsgLy8g5LuY5qy+5Y2V6K+m5oOFCgogICAgICAgIGF3YWl0IHRoaXMuZ2V0UGFpZEluZm8oKTsKICAgICAgfSBlbHNlIGlmICh0aGlzLiRyb3V0ZS5xdWVyeS5pZCkgewogICAgICAgIC8vIOW6lOS7mOWNlSDov5vlhaUg5paw5aKe5LuY5qy+5Y2VCiAgICAgICAgdGhpcy5pZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmlkOwogICAgICAgIHRoaXMucHVyY2hhc2VJZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnB1cmNoYXNlSWQ7CiAgICAgICAgdGhpcy5jcmVhdGVUaW1lMSA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmNyZWF0ZVRpbWU7IC8vIOW6lOS7mOivpuaDhQoKICAgICAgICBhd2FpdCB0aGlzLmdldFBheUluZm8oKTsKICAgICAgfSBlbHNlIHsKICAgICAgICAvLyDmlrDlop4KICAgICAgICBhd2FpdCB0aGlzLmdldFRlbXBQYWlkRGF0YSgpOwogICAgICB9CgogICAgICBpZiAodGhpcy4kcm91dGUucXVlcnkuc3VwcGxpZXJJZCkgewogICAgICAgIGF3YWl0IHRoaXMuZ2V0U3VwcGxpZXJJbmZvQnlJZCh0aGlzLiRyb3V0ZS5xdWVyeS5zdXBwbGllcklkKTsKICAgICAgfQogICAgfSwKCiAgICAvLyDmibnph4/pgInmi6kKICAgIHNlbGVjdGlvbkNoYW5nZSh2YWwpIHsKICAgICAgdGhpcy5jaG9vc2VfZGF0YSA9IHZhbDsKICAgICAgbGV0IG51bSA9IDA7CiAgICAgIHRoaXMuY2hvb3NlX2RhdGEuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICBudW0gKz0gTnVtYmVyKGl0ZW0ub2Zmc2V0TW9uZXkpOwogICAgICB9KTsKICAgICAgY29uc29sZS5sb2coIuWLvumAieS9meminSIsIG51bSk7CiAgICAgIHRoaXMuY2hlY2tfbW9uZXkgPSBudW07CiAgICB9LAoKICAgIC8vIOiOt+WPluW6lOS7mOWNleivpuaDhQogICAgYXN5bmMgZ2V0UGF5SW5mbyhvYmopIHsKICAgICAgY29uc3QgewogICAgICAgIGRhdGEKICAgICAgfSA9IGF3YWl0IGdldFBheUluZm8oewogICAgICAgIGlkOiB0aGlzLmlkLAogICAgICAgIHB1cmNoYXNlSWQ6IHRoaXMucHVyY2hhc2VJZCwKICAgICAgICBjcmVhdGVUaW1lOiB0aGlzLmNyZWF0ZVRpbWUxCiAgICAgIH0pOwogICAgICB0aGlzLmZvcm0uc3VwcGxpZXJJZCA9IGRhdGEuc3VwcGxpZXJJZDsKICAgICAgdGhpcy5mb3JtLnN1cHBsaWVyTmFtZSA9IGRhdGEuc3VwcGxpZXJOYW1lOwogICAgICB0aGlzLmZvcm0uc291cmNlTm8gPSBkYXRhLm5vOwogICAgICB0aGlzLmZvcm0uc291cmNlTm9Nb25leSA9IGRhdGEucGF5TW9uZXk7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IGRhdGEuc2hvcE5hbWU7CiAgICAgIHRoaXMuZm9ybS5zaG9wSWQgPSBkYXRhLnNob3BJZDsKICAgICAgdGhpcy5mb3JtLmFjY291bnRMaXN0ID0gW3sKICAgICAgICBhY2NvdW50SWQ6ICIiLAogICAgICAgIGFjY291bnROdW1iZXI6ICIiLAogICAgICAgIGFjY291bnROYW1lOiAiIiwKICAgICAgICBtb25leTogZGF0YS5wYXlNb25leSwKICAgICAgICBkaXNjb3VudE1vbmV5OiAwLAogICAgICAgIGZpbmFsTW9uZXk6ICIiLAogICAgICAgIHBheVdheTogIiIsCiAgICAgICAgcmVtYXJrOiAiIgogICAgICB9XTsKICAgICAgdGhpcy50YWJsZURhdGEgPSBbeyAuLi5kYXRhLAogICAgICAgIG9mZnNldE1vbmV5OiBOdW1iZXIoZGF0YS5ub3RPZmZzZXRNb25leSkKICAgICAgfV07IC8vIOa3u+WKoOiwg+eUqOagh+ivhu+8jDHooajnpLrkuI3mmK/nuq/mlrDlop7pobXpnaIKCiAgICAgIGF3YWl0IHRoaXMuZ2V0U3VwcGxpZXJJbmZvQnlJZChkYXRhLnN1cHBsaWVySWQsIDEpOwogICAgfSwKCiAgICAvLyDojrflj5bkvpvlupTllYbor6bmg4UKICAgIGFzeW5jIGdldFN1cHBsaWVySW5mb0J5SWQoaWQsIGlzRWRpdCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0U3VwcGxpZXJJbmZvQnlJZChpZCk7CiAgICAgIHRoaXMubW9uZXkgPSBkYXRhLm1vbmV5IHx8IDA7CgogICAgICBpZiAoIWlzRWRpdCkgewogICAgICAgIHRoaXMuZm9ybS5zdXBwbGllck5hbWUgPSBkYXRhLnRpdGxlOwogICAgICAgIHRoaXMuZm9ybS5zdXBwbGllcklkID0gZGF0YS5pZDsKICAgICAgICBhd2FpdCB0aGlzLmdldEFsbFBheSgpOwogICAgICB9CiAgICB9LAoKICAgIC8vIGFzeW5jIGdldFBheUluZm8xKCkgewogICAgLy8gICAvLyBsZXQgcGFyYW1zID0gewogICAgLy8gICAvLyAgIHBhZ2U6IDEsCiAgICAvLyAgIC8vICAgcGFnZVNpemU6IDk5OSwKICAgIC8vICAgLy8gICBzdXBwbGllcklkOiB0aGlzLmZvcm0uc3VwcGxpZXJJZCwKICAgIC8vICAgLy8gICBvZmZzZXRTdGF0dXM6IDQsCiAgICAvLyAgIC8vIH07CiAgICAvLyAgIGNvbnN0IHsgZGF0YSwgcGFnZVRvdGFsIH0gPSBhd2FpdCBnZXRQYXlJbmZvKHsKICAgIC8vICAgICBpZDogdGhpcy5pZCwKICAgIC8vICAgICBwdXJjaGFzZUlkOiB0aGlzLnB1cmNoYXNlSWQsCiAgICAvLyAgICAgY3JlYXRlVGltZTogdGhpcy5jcmVhdGVUaW1lMSwKICAgIC8vICAgfSk7CiAgICAvLyAgIGxldCBhcnIgPSBbXTsKICAgIC8vICAgYXJyLnB1c2goZGF0YSk7CiAgICAvLyAgIHRoaXMudGFibGVEYXRhID0gYXJyOwogICAgLy8gICB0aGlzLnRhYmxlRGF0YVswXS5vZmZzZXRNb25leSA9IGRhdGEubm90T2Zmc2V0TW9uZXk7CiAgICAvLyB9LAogICAgLy8g5YiX6KGoCiAgICBhc3luYyBnZXRBbGxQYXkoKSB7CiAgICAgIGxldCBwYXJhbXMgPSB7CiAgICAgICAgcGFnZTogMSwKICAgICAgICBwYWdlU2l6ZTogOTk5LAogICAgICAgIHN1cHBsaWVySWQ6IHRoaXMuZm9ybS5zdXBwbGllcklkLAogICAgICAgIG9mZnNldFN0YXR1czogWzMsIDRdCiAgICAgIH07CiAgICAgIGNvbnN0IHsKICAgICAgICBkYXRhLAogICAgICAgIHBhZ2VUb3RhbAogICAgICB9ID0gYXdhaXQgZ2V0QWxsUGF5KHBhcmFtcyk7CiAgICAgIHRoaXMudGFibGVEYXRhID0gZGF0YS5tYXAoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIHsgLi4uaXRlbSwKICAgICAgICAgIG9mZnNldE1vbmV5OiBOdW1iZXIoaXRlbS5ub3RPZmZzZXRNb25leSkKICAgICAgICB9OwogICAgICB9KTsKICAgIH0sCgogICAgYWRkVHlwZSgpIHsKICAgICAgaWYgKCF0aGlzLmFkZF9mb3JtLm5hbWUudHJpbSgpKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLlv4XloavpobnkuI3og73kuLrnqboiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHRoaXMuJHJlZnNbImZvcm0iXS52YWxpZGF0ZShhc3luYyB2YWxpZCA9PiB7CiAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICBsZXQgdGFyZ2V0ID0ge307CgogICAgICAgICAgaWYgKCF0aGlzLmlzX2VkaXQpIHsKICAgICAgICAgICAgdGFyZ2V0ID0gYXdhaXQgYWRkRmluYW5jZVR5cGUoeyAuLi50aGlzLmFkZF9mb3JtCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdGFyZ2V0ID0gYXdhaXQgZWRpdEZpbmFuY2VUeXBlKHRoaXMucGF5X2lkLCB7IC4uLnRoaXMuYWRkX2Zvcm0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CgogICAgICAgICAgY29uc3QgZGF0YSA9IHRhcmdldDsKICAgICAgICAgIHRoaXMuc2hvd19tb2RlbCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAoKICAgIG9wZW5IYW5kZWxTaG93KCkgewogICAgICBpZiAoIXRoaXMuZm9ybS5zdXBwbGllcklkKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nkvpvlupTllYYiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHRoaXMuaGFuZGxlX3Nob3cgPSB0cnVlOwogICAgfSwKCiAgICBoYW5kbGVzZWwodmFsKSB7CiAgICAgIHRoaXMuZm9ybS5zb3VyY2VObyA9IHZhbFswXS5ubzsKICAgICAgdGhpcy5mb3JtLnNvdXJjZU5vTW9uZXkgPSB2YWxbMF0ucGF5TW9uZXk7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IHZhbFswXS5zaG9wTmFtZTsKICAgICAgdGhpcy5mb3JtLnNob3BJZCA9IHZhbFswXS5zaG9wSWQ7CiAgICAgIHRoaXMuZm9ybS5hY2NvdW50TGlzdFswXS5tb25leSA9IHZhbFswXS5wYXlNb25leTsKICAgIH0sCgogICAgLy8g6YCJ5oup5ZWG6ZO6CiAgICBzZWxTaG9wKHZhbCwgcm93KSB7CiAgICAgIHRoaXMuZm9ybS5zaG9wTmFtZSA9IHJvd1swXS5uYW1lOwogICAgfSwKCiAgICBhZGRBY2NvdW50KCkgewogICAgICB0aGlzLmZvcm0uYWNjb3VudExpc3QucHVzaCh7CiAgICAgICAgYWNjb3VudElkOiAiIiwKICAgICAgICBhY2NvdW50TnVtYmVyOiAiIiwKICAgICAgICBhY2NvdW50TmFtZTogIiIsCiAgICAgICAgbW9uZXk6ICIiLAogICAgICAgIGRpc2NvdW50TW9uZXk6ICIiLAogICAgICAgIGZpbmFsTW9uZXk6ICIiLAogICAgICAgIHBheVdheTogIiIsCiAgICAgICAgcmVtYXJrOiAiIgogICAgICB9KTsKICAgIH0sCgogICAgLy8g5pqC5a2Y5pWw5o2uCiAgICBhc3luYyB0ZW1EYXRhKHRlbXBTYXZlKSB7CiAgICAgIGxldCByZWNlaXB0T2Zmc2V0RGF0YSA9IHRoaXMuY2hvb3NlX2RhdGEubWFwKGl0ZW0gPT4gewogICAgICAgIHJldHVybiB7CiAgICAgICAgICBwYXlSZWNlaXB0SWQ6IGl0ZW0uaWQsCiAgICAgICAgICBvZmZzZXRNb25leTogaXRlbS5vZmZzZXRNb25leQogICAgICAgIH07CiAgICAgIH0pOwogICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMuZm9ybSwKICAgICAgICByZWNlaXB0VGltZTogcGFyc2VJbnQodGhpcy5mb3JtLnJlY2VpcHRUaW1lIC8gMTAwMCksCiAgICAgICAgdGVtcFNhdmU6IHRlbXBTYXZlLAogICAgICAgIHJlY2VpcHRPZmZzZXREYXRhOiByZWNlaXB0T2Zmc2V0RGF0YQogICAgICB9OwogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICBjb25zdCBkYXRhID0gYXdhaXQgYWRkUGFpZChwYXJhbXMpOwogICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy4kbWVzc2FnZSh7CiAgICAgICAgbWVzc2FnZTogIuaaguWtmOaIkOWKnyIsCiAgICAgICAgdHlwZTogInN1Y2Nlc3MiCiAgICAgIH0pOwogICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9GaW5hbmNlL0hhbmRsZS9QYXltZW50TGlzdCIpOwogICAgfSwKCiAgICAvLyAg5L+d5a2YCiAgICBhc3luYyBhZGREYXRhKHRlbXBTYXZlKSB7CiAgICAgIHRoaXMuJHJlZnNbImJhc2VfZm9ybSJdLnZhbGlkYXRlKGFzeW5jIHZhbGlkID0+IHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGlmICghdGVtcFNhdmUpIHsKICAgICAgICAgICAgbGV0IGlzU3ViID0gdHJ1ZTsKCiAgICAgICAgICAgIGZvciAobGV0IGkgaW4gdGhpcy5mb3JtLmFjY291bnRMaXN0KSB7CiAgICAgICAgICAgICAgbGV0IGl0ZW0gPSB0aGlzLmZvcm0uYWNjb3VudExpc3RbaV07CgogICAgICAgICAgICAgIGlmICghaXRlbS5hY2NvdW50TmFtZSkgewogICAgICAgICAgICAgICAgaXNTdWIgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36YCJ5oup57uT566X6LSm5oi3Iik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIGlmICghaXRlbS5tb25leSkgewogICAgICAgICAgICAgICAgaXNTdWIgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygi6K+36L6T5YWl5LuY5qy+6YeR6aKdIik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9IC8vIGlmICghaXRlbS5wYXlXYXkpIHsKICAgICAgICAgICAgICAvLyAgIGlzU3ViID0gZmFsc2U7CiAgICAgICAgICAgICAgLy8gICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuivt+mAieaLqee7k+eul+aWueW8jyIpOwogICAgICAgICAgICAgIC8vICAgYnJlYWs7CiAgICAgICAgICAgICAgLy8gfQogICAgICAgICAgICAgIC8vIGlmICh0aGlzLm9mZlNldFRvdGFsID4gdGhpcy5tb25leVRvdGFsKSB7CiAgICAgICAgICAgICAgLy8gICBpc1N1YiA9IGZhbHNlOwogICAgICAgICAgICAgIC8vICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLmoLjplIDph5Hpop3kuI3og73lpKfkuo7ku5jmrL7ph5Hpop0iKTsKICAgICAgICAgICAgICAvLyAgIGJyZWFrOwogICAgICAgICAgICAgIC8vIH0KCiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICghaXNTdWIpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KCiAgICAgICAgICBpZiAodGhpcy5jaG9vc2VfZGF0YS5sZW5ndGgpIHsKICAgICAgICAgICAgbGV0IHJlY2VpcHRPZmZzZXREYXRhID0gdGhpcy5jaG9vc2VfZGF0YS5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgIHBheVJlY2VpcHRJZDogaXRlbS5pZCwKICAgICAgICAgICAgICAgIG9mZnNldE1vbmV5OiBpdGVtLm9mZnNldE1vbmV5LAogICAgICAgICAgICAgICAgcGF5Q3JlYXRlVGltZTogaXRlbS5jcmVhdGVUaW1lCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHsgLi4udGhpcy5mb3JtLAogICAgICAgICAgICAgIHJlY2VpcHRUaW1lOiBwYXJzZUludCh0aGlzLmZvcm0ucmVjZWlwdFRpbWUgLyAxMDAwKSwKICAgICAgICAgICAgICB0ZW1wU2F2ZTogdGVtcFNhdmUsCiAgICAgICAgICAgICAgcmVjZWlwdE9mZnNldERhdGE6IHJlY2VpcHRPZmZzZXREYXRhCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7CgogICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgIGlmICh0aGlzLnBhaWQpIHsKICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBlZGl0UGFpZCh0aGlzLnBhaWQsIHBhcmFtcyk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBhZGRQYWlkKHBhcmFtcyk7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlKHsKICAgICAgICAgICAgICAgIHR5cGU6ICJzdWNjZXNzIiwKICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICLmk43kvZzmiJDlip8hIgogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIHRoaXMuJGNsb3NlQ3VycmVudEdvRWRpdCgiL0ZpbmFuY2UvSGFuZGxlL1BheW1lbnRMaXN0Iik7CiAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB7IC4uLnRoaXMuZm9ybSwKICAgICAgICAgICAgICByZWNlaXB0VGltZTogcGFyc2VJbnQodGhpcy5mb3JtLnJlY2VpcHRUaW1lIC8gMTAwMCksCiAgICAgICAgICAgICAgdGVtcFNhdmU6IHRlbXBTYXZlLAogICAgICAgICAgICAgIGZpbmFuY2VUeXBlSWQ6IDQsCiAgICAgICAgICAgICAgZmluYW5jZVR5cGU6ICLph4fotK3pooTku5giCiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHRoaXMuJGNvbmZpcm0oIuehruWumuimgeWwhuivpeWNleaNruS9nOS4uumHh+i0remihOS7mOasvu+8nyIsICLmj5DnpLoiLCB7CiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICAgICAgICB9KS50aGVuKGFzeW5jICgpID0+IHsKICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwoKICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgaWYgKHRoaXMucGFpZCkgewogICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gYXdhaXQgZWRpdFBhaWQodGhpcy5wYWlkLCBwYXJhbXMpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IGFkZFBhaWQocGFyYW1zKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHRoaXMuJG1lc3NhZ2UoewogICAgICAgICAgICAgICAgICB0eXBlOiAic3VjY2VzcyIsCiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICLmk43kvZzmiJDlip8hIgogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB0aGlzLiRjbG9zZUN1cnJlbnRHb0VkaXQoIi9GaW5hbmNlL0hhbmRsZS9QYXltZW50TGlzdCIpOwogICAgICAgICAgICAgIH0gY2F0Y2ggewogICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KS5jYXRjaCgoKSA9PiB7CiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAoKICAgIC8vICDor6bmg4UKICAgIGFzeW5jIGdldFBhaWRJbmZvKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0UGFpZEluZm8oewogICAgICAgIGlkOiB0aGlzLnBhaWQsCiAgICAgICAgY3JlYXRlVGltZTogdGhpcy5mb3JtLmNyZWF0ZVRpbWUKICAgICAgfSk7CiAgICAgIHRoaXMuZm9ybSA9IHsgLi4uZGF0YSwKICAgICAgICByZWNlaXB0VGltZTogZGF0YS5yZWNlaXB0VGltZSAqIDEwMDAsCiAgICAgICAgYWNjb3VudExpc3Q6IGRhdGEuYWNjb3VudExpc3QKICAgICAgfTsKCiAgICAgIGlmIChkYXRhLm9mZnNldERhdGUpIHsKICAgICAgICB0aGlzLnRhYmxlRGF0YSA9IGRhdGEub2Zmc2V0RGF0ZTsKICAgICAgICB0aGlzLmNob29zZV9kYXRhID0gZGF0YS5vZmZzZXREYXRlOwogICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgdGhpcy50YWJsZURhdGEuZm9yRWFjaChpdGVtID0+IHsKICAgICAgICAgICAgaWYgKGl0ZW0ub2Zmc2V0TW9uZXkgPiAwKSB7CiAgICAgICAgICAgICAgdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihpdGVtKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSk7CiAgICAgICAgfSwgMjAwKTsKICAgICAgfQogICAgfSwKCiAgICAvLyDnsbvlnotBZGRQcm9tb3Rpb24KICAgIHR5cGVDaGFuZ2UodmFsKSB7CiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuY3VzdG9tZXJUeXBlTGlzdC5maW5kKGl0ZW0gPT4gewogICAgICAgIHJldHVybiBpdGVtLmlkID09PSB2YWw7CiAgICAgIH0pOwogICAgICB0aGlzLmZvcm0uZmluYW5jZVR5cGUgPSB0YXJnZXQubmFtZTsKICAgIH0sCgogICAgLy8gIOS+m+W6lOWVhgogICAgc2VsVW5pdFN1cHBsaWVyKHZhbCwgbGlzdCkgewogICAgICB0aGlzLmZvcm0uc3VwcGxpZXJOYW1lID0gbGlzdFswXS50aXRsZTsKICAgICAgdGhpcy5tb25leSA9IGxpc3RbMF0ubW9uZXk7CiAgICAgIHRoaXMuZ2V0QWxsUGF5KCk7CiAgICB9LAoKICAgIC8vICDojrflj5botKLliqHnsbvlnosKICAgIGFzeW5jIGdldEFsbEZpbmFuY2VUeXBlKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0QWxsRmluYW5jZVR5cGVOb1BhZ2UoMik7CiAgICAgIHRoaXMuY3VzdG9tZXJUeXBlTGlzdCA9IGRhdGE7CiAgICAgIGNvbnN0IGZpbmFuY2UgPSBkYXRhLmZpbmQoaXRlbSA9PiB7CiAgICAgICAgcmV0dXJuIGl0ZW0ubmFtZSA9PT0gIumHh+i0reS7mOasviI7CiAgICAgIH0pOwogICAgICB0aGlzLmZvcm0uZmluYW5jZVR5cGVJZCA9IGZpbmFuY2UuaWQ7CiAgICAgIHRoaXMuZm9ybS5maW5hbmNlVHlwZSA9IGZpbmFuY2UubmFtZTsKICAgIH0sCgogICAgZGVsQWNjb3VudChpbmRleCkgewogICAgICB0aGlzLmZvcm0uYWNjb3VudExpc3Quc3BsaWNlKGluZGV4LCAxKTsKICAgIH0sCgogICAgLy8g6I635Y+W5pSv5LuY5pa55byPCiAgICBhc3luYyBnZXRBbGxQYXltZW50KCkgewogICAgICBjb25zdCBkYXRhID0gYXdhaXQgZ2V0QWxsUGF5bWVudCh7CiAgICAgICAgcGFnZTogMSwKICAgICAgICBwYWdlU2l6ZTogOQogICAgICB9KTsKICAgICAgdGhpcy5wYXlfdHlwZV9saXN0ID0gZGF0YS5kYXRhOwogICAgfSwKCiAgICBvcGVuQWNjb3VudChpbmRleCkgewogICAgICB0aGlzLmFjY291bnRfaW5kZXggPSBpbmRleDsKCiAgICAgIGlmICghdGhpcy5mb3JtLnN1cHBsaWVySWQpIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoIuivt+mAieaLqeS+m+W6lOWVhiIpOwogICAgICAgIHJldHVybjsKICAgICAgfQoKICAgICAgaWYgKCF0aGlzLmZvcm0uc2hvcElkKSB7CiAgICAgICAgdGhpcy4kbWVzc2FnZS53YXJuaW5nKCLor7fpgInmi6nllYbpk7oiKTsKICAgICAgICByZXR1cm47CiAgICAgIH0KCiAgICAgIHRoaXMuYWNjb3VudF9zaG93ID0gdHJ1ZTsKICAgIH0sCgogICAgLy8g57uT566X6LSm5oi3CiAgICBhY2NvdW50c2VsKHZhbCkgewogICAgICB0aGlzLmZvcm0uYWNjb3VudExpc3RbdGhpcy5hY2NvdW50X2luZGV4XS5hY2NvdW50SWQgPSB2YWxbMF0uaWQ7CiAgICAgIHRoaXMuZm9ybS5hY2NvdW50TGlzdFt0aGlzLmFjY291bnRfaW5kZXhdLmFjY291bnROdW1iZXIgPSB2YWxbMF0uYWNjb3VudE51bWJlcjsKICAgICAgdGhpcy5mb3JtLmFjY291bnRMaXN0W3RoaXMuYWNjb3VudF9pbmRleF0uYWNjb3VudE5hbWUgPSB2YWxbMF0ubmFtZTsKICAgIH0sCgogICAgLy8gIOaaguWtmAogICAgYXN5bmMgZ2V0VGVtcFBhaWREYXRhKCkgewogICAgICBjb25zdCB7CiAgICAgICAgZGF0YQogICAgICB9ID0gYXdhaXQgZ2V0VGVtcFBhaWREYXRhKCk7CiAgICAgIGlmIChKU09OLnN0cmluZ2lmeShkYXRhKSA9PT0gInt9IikgcmV0dXJuOwogICAgICB0aGlzLmZvcm0gPSB7IC4uLmRhdGEsCiAgICAgICAgcmVjZWlwdFRpbWU6IHBhcnNlSW50KGRhdGEucmVjZWlwdFRpbWUgKiAxMDAwKSwKICAgICAgICBhY2NvdW50TGlzdDogZGF0YS5hY2NvdW50TGlzdC5tYXAoaXRlbSA9PiB7CiAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICB9KQogICAgICB9OwoKICAgICAgaWYgKGRhdGEub2Zmc2V0RGF0ZSkgewogICAgICAgIHRoaXMudGFibGVEYXRhID0gZGF0YS5vZmZzZXREYXRlOwogICAgICAgIHRoaXMuY2hvb3NlX2RhdGEgPSBkYXRhLm9mZnNldERhdGU7CiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICB0aGlzLnRhYmxlRGF0YS5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgICB0aGlzLiRyZWZzLm11bHRpcGxlVGFibGUudG9nZ2xlUm93U2VsZWN0aW9uKGl0ZW0pOwogICAgICAgICAgfSk7CiAgICAgICAgfSwgMjAwKTsKICAgICAgfQogICAgfSwKCiAgICAvLyDoh6rliqjmoLjplIAKICAgIG9mZnNldEdldCgpIHsKICAgICAgbGV0IHRvdGFsID0gMDsKCiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy50YWJsZURhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgICBsZXQgaXRlbSA9IHRoaXMudGFibGVEYXRhW2ldOyAvLyDmiormnKzmrKHmoLjplIDph5Hpop3nm7jliqAKCiAgICAgICAgdG90YWwgKz0gTnVtYmVyKGl0ZW0ub2Zmc2V0TW9uZXkpOyAvLyDli77pgInlj6/ku6XmoLjplIDnmoTmlbDmja4KCiAgICAgICAgdGhpcy4kcmVmcy5tdWx0aXBsZVRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihpdGVtKTsgLy8g5aaC5p6c5ZCI6K6h5qC46ZSA6YeR6aKd5aSn5LqO5LuY5qy+5oC76YeR6aKd77yM5YGc5q2i5b6q546v77yM5bm25oqK5YGc5q2i5b6q546v5YmN55qE5LiA5p2h5qC46ZSA5pWw5o2u5L+u5pS55Li65beu5YC8CgogICAgICAgIGlmICh0b3RhbCA+IHRoaXMubW9uZXlUb3RhbCB8fCB0b3RhbCA9PT0gdGhpcy5tb25leVRvdGFsKSB7CiAgICAgICAgICBpdGVtLm9mZnNldE1vbmV5ID0gdGhpcy5tb25leVRvdGFsIC0gKHRvdGFsIC0gaXRlbS5vZmZzZXRNb25leSk7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCgogICAgLy8g5LuY5qy+6YeR6aKd5aSx5Y6754Sm54K55ZCO6YeN5paw5qC46ZSACiAgICBtb25leUJsdXIoKSB7CiAgICAgIHRoaXMuJHJlZnMubXVsdGlwbGVUYWJsZS5jbGVhclNlbGVjdGlvbigpOwogICAgICB0aGlzLnRhYmxlRGF0YSA9IHRoaXMudGFibGVEYXRhLm1hcChpdGVtID0+IHsKICAgICAgICByZXR1cm4geyAuLi5pdGVtLAogICAgICAgICAgb2Zmc2V0TW9uZXk6IE51bWJlcihpdGVtLnBheU1vbmV5KQogICAgICAgIH07CiAgICAgIH0pOwogICAgfSwKCiAgICBnb0RldGFpbChyb3cpIHsKICAgICAgdGhpcy4kcm91dGVyLnB1c2goYC9QdXJjaGFzZS9NYW5hZ2VQL1B1cmNoYXNlT3JkZXJMb29rLyR7cm93LnB1cmNoYXNlSWR9YCk7CiAgICB9CgogIH0KfTs="},null]}