{"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\components\\FlowChartComponent\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\components\\FlowChartComponent\\index.vue","mtime":1620788133211},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCAnQC91dGlscy9nbycNaW1wb3J0IEZsb3dEZXNpbmdlciBmcm9tICdAL3V0aWxzL2Zsb3ctZGVzaW5nZXInOw1pbXBvcnQgc3RhcnROb2RlSW5mbyBmcm9tICdAL2NvbXBvbmVudHMvc3RhcnROb2RlSW5mbycNaW1wb3J0IGVuZE5vZGVJbmZvIGZyb20gJ0AvY29tcG9uZW50cy9lbmROb2RlSW5mbycNaW1wb3J0IGxpbmtJbmZvIGZyb20gJ0AvY29tcG9uZW50cy9saW5rSW5mbycNaW1wb3J0IFByb2Nlc3NOb2RlQ29uZmlnIGZyb20gJ0AvY29tcG9uZW50cy9Qcm9jZXNzTm9kZUNvbmZpZycNaW1wb3J0IER5bmFtaWNQcm9jZXNzTm9kZUNvbmZpZyBmcm9tICdAL2NvbXBvbmVudHMvRHluYW1pY1Byb2Nlc3NOb2RlQ29uZmlnJw1pbXBvcnQgU2VydmljZU5vZGVDb25maWcgZnJvbSAnQC9jb21wb25lbnRzL1NlcnZpY2VOb2RlQ29uZmlnJw1pbXBvcnQgRmxvd0Rpc3BsYXkgZnJvbSAnQC91dGlscy9mbG93LWRpc3BsYXknOwpleHBvcnQgZGVmYXVsdCB7CiAgY29tcG9uZW50czp7CiAgICBzdGFydE5vZGVJbmZvLCBlbmROb2RlSW5mbywgbGlua0luZm8sIFByb2Nlc3NOb2RlQ29uZmlnLCBEeW5hbWljUHJvY2Vzc05vZGVDb25maWcsIFNlcnZpY2VOb2RlQ29uZmlnCiAgfSwKICBwcm9wczp7CiAgICBlZGl0YWJsZTp7ICAvL+aYr+WQpuWPr+e8lui+kQogICAgICB0eXBlOkJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6dHJ1ZQogICAgfSwKICAgIGZyZXNoOnsKICAgICAgdHlwZTpCb29sZWFuLAogICAgICBkZWZhdWx0OmZhbHNlCiAgICB9LAogICAgY3VycmVudFN0ZXBzOnsKICAgICAgdHlwZTpOdW1iZXIsCiAgICAgIGRlZmF1bHQ6bnVsbAogICAgfSwKICAgIG5vRnJlc2hGbGFnOnsKICAgICAgdHlwZTpCb29sZWFuLAogICAgICBkZWZhdWx0OmZhbHNlCiAgICB9LAogICAgcmVhZE9ubHk6ewogICAgICB0eXBlOkJvb2xlYW4sCiAgICAgIGRlZmF1bHQ6ZmFsc2UKICAgIH0sCiAgICBkYXRhOnsKICAgICAgdHlwZTpPYmplY3QsCiAgICAgIGRlZmF1bHQgKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgZGF0YSAoKSB7CiAgICByZXR1cm4gewogICAgICBteURlc2lnbmVyOm51bGwsICAvL+eUu+W4g+WunuS+iwogICAgICBkcmF3ZXJPYmplY3Q6ewogICAgICAgIHNob3c6ZmFsc2UKICAgICAgfSwKICAgICAgbm9kZU1zZzp7fSwgIC8v5a2Y5pS+6IqC54K55pWw5o2uCiAgICAgIHBhdGhNc2c6e30sICAvL+WtmOaUvui3r+W+hOaVsOaNrgogICAgICByZWplY3RlZE5vZGVzOltdLCAgLy/pqbPlm57oioLngrkKICAgICAgYXNzaWduZWROb2RlczogW10sICAvL+aMh+a0vuiKgueCuQogICAgfQogIH0sCiAgYWN0aXZhdGVkICgpIHsKICAgIGlmKCF0aGlzLm5vRnJlc2hGbGFnKXsKICAgICAgdGhpcy5pbml0KCkKICAgIH0KICB9LAogIGRlYWN0aXZhdGVkICgpIHsgLy9rZWVwLWFsaXZlIOe7hOS7tuWBnOeUqOaXtuiwg+eUqAogICAgaWYodGhpcy5jdXJyZW50U3RlcHMgPT09IDEgJiYgdGhpcy5teURlc2lnbmVyKXsKICAgICAgdGhpcy5kYXRhLmd1aVN0eWxlID0gSlNPTi5wYXJzZSh0aGlzLm15RGVzaWduZXIuZ2V0Rmxvd0RhdGEoKSkKICAgIH0KICB9LAogIG1ldGhvZHM6ewogICAgaW5pdCAoKSB7CiAgICAgICAgaWYoIUFycmF5LmlzQXJyYXkodGhpcy5kYXRhLm5vZGVNc2cpKXsKICAgICAgICAgICAgbGV0IG5vZGVNc2cgPSBbXQogICAgICAgICAgICBPYmplY3Qua2V5cyh0aGlzLmRhdGEubm9kZU1zZykubWFwKGl0ZW0gPT4gewogICAgICAgICAgICAgIG5vZGVNc2cucHVzaCh0aGlzLmRhdGEubm9kZU1zZ1tpdGVtXSkKICAgICAgICAgICAgICByZXR1cm4gaXRlbQogICAgICAgICAgICB9KQoKICAgICAgICAgICAgdGhpcy5kYXRhLm5vZGVNc2cgPSBub2RlTXNnCgogICAgICAgICAgICBsZXQgcGF0aE1zZyA9IFtdCiAgICAgICAgICAgIE9iamVjdC5rZXlzKHRoaXMuZGF0YS5wYXRoTXNnKS5tYXAoaXRlbSA9PiB7CiAgICAgICAgICAgICAgcGF0aE1zZy5wdXNoKHRoaXMuZGF0YS5wYXRoTXNnW2l0ZW1dKQogICAgICAgICAgICAgIHJldHVybiBpdGVtCiAgICAgICAgICAgIH0pCiAgICAgICAgICAgIHRoaXMuZGF0YS5wYXRoTXNnID0gcGF0aE1zZwogICAgICAgIH0KCiAgICAgICAgdGhpcy5kYXRhUHJvY2Vzc2luZygpCiAgICAgICAgaWYodGhpcy5jdXJyZW50U3RlcHMgPT09IDEpewogICAgICAgICAgLy8g5rWB56iL5Zu+6K6+6K6h5ZmoCiAgICAgICAgICBpZighdGhpcy5teURlc2lnbmVyKXsKICAgICAgICAgICAgdGhpcy5teURlc2lnbmVyPSBuZXcgRmxvd0Rlc2luZ2VyKCdnb0NoYXJ0Jyx7CiAgICAgICAgICAgICAgc2hvd0VkaXROb2RlOnRoaXMuc2hvd0VkaXROb2RlLCAgLy/oioLngrnlj4zlh7vnvJbovpEKICAgICAgICAgICAgICBTZWxlY3Rpb25EZWxldGVkOnRoaXMuU2VsZWN0aW9uRGVsZXRlZCwgIC8v5Yig6Zmk5LqL5Lu2CiAgICAgICAgICAgICAgTGlua0RyYXduOnRoaXMuTGlua0RyYXduLCAgLy/nur/nmoTnlJ/miJAKICAgICAgICAgICAgICBleHRlcm5hbG9iamVjdHNkcm9wcGVkOnRoaXMuZXh0ZXJuYWxvYmplY3RzZHJvcHBlZCwgIC8v6IqC54K555Sf5oiQCiAgICAgICAgICAgICAgTGlua1JlbGlua2VkOiB0aGlzLkxpbmtSZWxpbmtlZCAgLy/ov57nur/kv67mlLkKICAgICAgICAgICAgfSk7CgogICAgICAgICAgfQoKICAgICAgICAgIHRoaXMuaW5pdFRvb2xiYXIgPSB0aGlzLm15RGVzaWduZXIuaW5pdFRvb2xiYXIoJ3BhbGV0dGVEaXYnLHRoaXMuZGF0YS5tb2R1bGVUeXBlKQogICAgICAgICAgdGhpcy5teURlc2lnbmVyLmRpc3BsYXlGbG93KEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLmd1aVN0eWxlKSkpOy8vIOWcqOiuvuiuoemdouadv+S4reaYvuekuua1geeoi+WbvgogICAgICAgICAgdGhpcy5kYXRhLm15RGlzcGxheSA9IHRoaXMubXlEZXNpZ25lci5kaWFncmFtCiAgICAgICAgfWVsc2V7CiAgICAgICAgICBpZih0aGlzLm15RGlzcGxheSl7CiAgICAgICAgICAgIHRoaXMubXlEaXNwbGF5LmxvYWRGbG93KEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLmd1aVN0eWxlKSkpCiAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgdGhpcy5teURpc3BsYXkgPSBuZXcgRmxvd0Rpc3BsYXkoJ3Nob3dDaGFydCcsewogICAgICAgICAgICAgIHNob3dFZGl0Tm9kZTp0aGlzLnNob3dFZGl0Tm9kZSwgIC8v6IqC54K55Y+M5Ye757yW6L6RCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB0aGlzLm15RGlzcGxheS5sb2FkRmxvdyhKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YS5ndWlTdHlsZSkpKQogICAgICAgICAgfQoKICAgICAgICAgIC8vIHRoaXMuZGF0YS5teURpc3BsYXkgPSB0aGlzLm15RGlzcGxheS5kaWFncmFtCgogICAgICAgIH0KCgogICAgfSwKICAgIGNvbXBhcmUgKHByb3BlcnR5KSB7CiAgICAgIHJldHVybiBmdW5jdGlvbihhLGIpIHsKICAgICAgICB2YXIgdmFsdWUxID0gYVtwcm9wZXJ0eV07CiAgICAgICAgdmFyIHZhbHVlMiA9IGJbcHJvcGVydHldOwogICAgICAgIHJldHVybiB2YWx1ZTEgLSB2YWx1ZTIKICAgICAgfQogICAgfSwKICAgIGRhdGFQcm9jZXNzaW5nICgpIHsgIC8v5aSE55CG5ZCO56uv6L+U5Zue6IqC54K55pWw5o2u5ZKM6Lev5b6E5pWw5o2uCiAgICAgIGlmKHRoaXMuZGF0YS5ub2RlTXNnKXsKICAgICAgICB0aGlzLmRhdGEubm9kZU1zZy5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgdGhpcy5ub2RlTXNnW2l0ZW0ua2V5XSA9IGl0ZW0KICAgICAgICAgIGlmKGl0ZW0udHlwZSA9PT0gMil7ICAvL+e7k+adn+iKgueCueWvueaVsOaNruaOkuW6jyzljLrliIbmiafooYznqIvluo/ov5jmmK/mioTpgIHkuroKICAgICAgICAgICAgdGhpcy5ub2RlTXNnW2l0ZW0ua2V5XS5hY3Rpb25Db25maWcuc29ydCh0aGlzLmNvbXBhcmUoJ2hhbmRsZVR5cGUnKSkKICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIHRoaXMuZGF0YS5ub2RlTXNnID0gdGhpcy5ub2RlTXNnCiAgICAgIH0KCiAgICAgIGlmKHRoaXMuZGF0YS5wYXRoTXNnKXsKICAgICAgICB0aGlzLmRhdGEucGF0aE1zZy5mb3JFYWNoKGl0ZW0gPT4gewogICAgICAgICAgdGhpcy5wYXRoTXNnW2l0ZW0ua2V5XSA9IGl0ZW0KICAgICAgICB9KQogICAgICAgIHRoaXMuZGF0YS5wYXRoTXNnID0gdGhpcy5wYXRoTXNnCiAgICAgIH0KCiAgICAgIHRoaXMuZGF0YS5yZW1vdmVQYXRoID0gW10KICAgICAgdGhpcy5kYXRhLnJlbW92ZU5vZGUgPSBbXQoKICAgIH0sCiAgICBzaG93RWRpdE5vZGUgKG5vZGUpIHsgIC8v5Y+M5Ye757yW6L6RCgogICAgICAvLyBub2RlLmZpbmROb2Rlc091dE9mKCkKICAgICAgaWYobm9kZS5kYXRhLnR5cGUgPT09IDEpewogICAgICAgIGxldCBkZWZhdWx0T2JqID0gewogICAgICAgICAgY29uZGl0aW9uVHlwZTogMCwKICAgICAgICAgIHJ1bGVMaXN0OiBbXSwKICAgICAgICAgIHByaW9yaXR5OiBudWxsLAogICAgICAgICAgZGVmYXVsdFByaW9yaXR5OiBudWxsLAogICAgICAgICAgbW9kaWZ5SWQ6IG51bGwsCiAgICAgICAgICBpZDpudWxsLAogICAgICAgICAgdHJpZ2dlckJ0OltdLAogICAgICAgICAgdmlzaWJsZUJ0OltdCiAgICAgICAgfQogICAgICAgIGlmKCFub2RlLmRhdGEuaWQpewogICAgICAgICAgdGhpcy5ub2RlTXNnW25vZGUuZGF0YS5rZXldID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0T2JqLHRoaXMubm9kZU1zZ1tub2RlLmRhdGEua2V5XSkKICAgICAgICB9CgogICAgICAgIHRoaXMuZHJhd2VyT2JqZWN0ID0gewogICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgIGNvbXBvbmVudDogJ3N0YXJ0Tm9kZUluZm8nLAogICAgICAgICAgY29uZmlnRGF0YTogdGhpcy5ub2RlTXNnW25vZGUuZGF0YS5rZXldLAogICAgICAgICAgdGl0bGU6J+W8gOWni+iKgueCuemFjee9ricKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYobm9kZS5kYXRhLnR5cGUgPT09IDIpewogICAgICAgIGxldCBkZWZhdWx0T2JqID0gewogICAgICAgICAgaWQ6bnVsbCwKICAgICAgICAgIG1hbnVhbENvbmZpZzpudWxsLAogICAgICAgICAgYWN0aW9uQ29uZmlnOltdCiAgICAgICAgfQogICAgICAgIGlmKCFub2RlLmRhdGEuaWQpewogICAgICAgICAgdGhpcy5ub2RlTXNnW25vZGUuZGF0YS5rZXldID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0T2JqLHRoaXMubm9kZU1zZ1tub2RlLmRhdGEua2V5XSkKICAgICAgICB9CiAgICAgICAgdGhpcy5kcmF3ZXJPYmplY3QgPSB7CiAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgY29tcG9uZW50OiAnZW5kTm9kZUluZm8nLAogICAgICAgICAgY29uZmlnRGF0YTogdGhpcy5ub2RlTXNnW25vZGUuZGF0YS5rZXldLAogICAgICAgICAgdGl0bGU6J+e7k+adn+iKgueCuemFjee9ricKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIOWuoeaJueiKgueCueWSjOaTjeS9nOiKgueCueeUqOWQjOS4gOS4qumFjee9rueVjOmdou+8jOagueaNruWPguaVsOaOp+WItuWxleekuumhuQogICAgICBpZihub2RlLmRhdGEuY2F0ZWdvcnkgPT09ICJBcHByb3ZhbCIgfHwgbm9kZS5kYXRhLmNhdGVnb3J5ID09PSAiT3BlcmF0aW9uIil7CiAgICAgICAgdGhpcy5yZWplY3RlZE5vZGVzID0gW10KICAgICAgICB0aGlzLmFzc2lnbmVkTm9kZXMgPSBbXQogICAgICAgIHRoaXMuZmluZE5vZGVzSW50byhub2RlKQogICAgICAgIHRoaXMuZmluZE5vZGVzT3V0T2Yobm9kZSkKICAgICAgICAvLyDpu5jorqToioLngrnphY3nva4KICAgICAgICBsZXQgZGVmYXVsdE9iaiA9IHsKICAgICAgICAgIGFjdFNlcnZpY2VTOltdLAogICAgICAgICAgYWN0aW9uQ29uZmlnOltdLAogICAgICAgICAgYXBwcm92ZWxMaXN0OltdLAogICAgICAgICAgYmFja0lkOm51bGwsCiAgICAgICAgICBpZDpudWxsLAogICAgICAgICAgbWFudWFsQ29uZmlnOjAsCiAgICAgICAgICBtb2RpZmlhYmxlRmllbGQ6W10sCiAgICAgICAgICBtb2R1bGVJZDpudWxsLAogICAgICAgICAgbmFtZTon5Lit6Ze06IqC54K5JywKICAgICAgICAgIG5vZGVUeXBlOjAsCiAgICAgICAgICBydWxlTGlzdDpbXSwKICAgICAgICAgIGluZXZpdGFibGU6IDEsICAvL+iKgueCueW/hee7jwogICAgICAgICAgYXBwcm92ZUNvbmRpdGlvbjogMCwgIC8v5a6h5om55p2h5Lu2CiAgICAgICAgICBhc3NpZ25CYWNrOiAwLCAgLy/pqbPlm57mk43kvZwKICAgICAgICAgIHdoZXRoZXJCYWNrOiAwLCAvL+WPr+S4uumps+WbnuiKgueCuQogICAgICAgICAgbm9kZUNhbmNsZTogMCwgIC8v5L2c5bqf5pON5L2cCiAgICAgICAgICBhc3NpZ25OZXh0OiAxLCAvL+aMh+a0vua1gei9rOiKgueCuQogICAgICAgICAgYXNzaWduTm9kZTogMSwgIC8v6IqC54K55piv5ZCm5piv5b+F6ZyA5oyH5rS+CiAgICAgICAgICBhc3NpZ25BcHByb3ZlcjogMSwgIC8v5piv5ZCm5Yqo5oCB5oyH5rS+5pON5L2c5Lq6CiAgICAgICAgICB2aXNpYmxlQnQ6W10sICAvL+WPr+ingeaMiemSrgogICAgICAgICAgbm9kZUJhY2s6IDAsICAvL+mps+WbnuaMiemSruW8gOWFswogICAgICAgICAgbm9kZUFncmVlOiAwLCAvL+WQjOaEj+aMiemSrgoKICAgICAgICB9CgogICAgICAgIGlmKHRoaXMuZGF0YS5tb2R1bGVUeXBlID09PSAwKXsKICAgICAgICAgIGRlZmF1bHRPYmogPSB7CiAgICAgICAgICAgIGFjdFNlcnZpY2VTOltdLAogICAgICAgICAgICBhY3Rpb25Db25maWc6W10sCiAgICAgICAgICAgIGFwcHJvdmVsTGlzdDpbXSwKICAgICAgICAgICAgYmFja0lkOm51bGwsCiAgICAgICAgICAgIGlkOm51bGwsCiAgICAgICAgICAgIG1hbnVhbENvbmZpZzowLAogICAgICAgICAgICBtb2RpZmlhYmxlRmllbGQ6JycsCiAgICAgICAgICAgIG1vZGlmaWFibGVGaWVsZE5hbWU6JycsCiAgICAgICAgICAgIG1vZHVsZUlkOm51bGwsCiAgICAgICAgICAgIG5hbWU6J+WuoeaJueiKgueCuScsCiAgICAgICAgICAgIG5vZGVUeXBlOjAsCiAgICAgICAgICAgIHJ1bGVMaXN0OltdCiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZighbm9kZS5kYXRhLmlkKXsKICAgICAgICAgIHRoaXMubm9kZU1zZ1tub2RlLmRhdGEua2V5XSA9IE9iamVjdC5hc3NpZ24oZGVmYXVsdE9iaix0aGlzLm5vZGVNc2dbbm9kZS5kYXRhLmtleV0pCiAgICAgICAgfQogICAgICAgIHRoaXMuZHJhd2VyT2JqZWN0ID0gewogICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICAgIGNvbXBvbmVudDogdGhpcy5kYXRhLm1vZHVsZVR5cGUgPT09IDA/J1Byb2Nlc3NOb2RlQ29uZmlnJzonRHluYW1pY1Byb2Nlc3NOb2RlQ29uZmlnJywKICAgICAgICAgIGNvbmZpZ0RhdGE6IHRoaXMubm9kZU1zZ1tub2RlLmRhdGEua2V5XSwKICAgICAgICAgIG5vZGU6IG5vZGUsCiAgICAgICAgICB0aXRsZTpub2RlLmRhdGEuY2F0ZWdvcnkgPT09ICJBcHByb3ZhbCI/J+WuoeaJueiKgueCuemFjee9ric6J+aTjeS9nOiKgueCuScKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIOacjeWKoeiKgueCuQogICAgICBpZihub2RlLmRhdGEuY2F0ZWdvcnkgPT09ICdTZXJ2aWNlJyl7CiAgICAgICAgbGV0IGRlZmF1bHRPYmogPSB7CiAgICAgICAgICBpZDpudWxsLAogICAgICAgICAgYWN0aW9uQ29uZmlnOlt7CiAgICAgICAgICAgICJpZCI6bnVsbCwJICAgIC8v5paw5aKe5LiN5Lyg77yM5L+u5pS55LygCiAgICAgICAgICAgICJoYW5kbGVWYWx1ZSI6bnVsbCwJICAgIC8v5YW35L2T55qE5YWz5LqO6K+35rGC54q25oCB77yMdXJs5LmL57G755qEanNvbgogICAgICAgICAgICAiaGFuZGxlVHlwZSI6bnVsbCwJLy81Me+8mnJlc3TmnI3liqHlrp7njrDvvIw1Mu+8mua2iOaBr+ezu+e7nwogICAgICAgICAgICAiZXh0cmFNc2ciOm51bGwJLy/nm7jlhbPlj4LmlbAKICAgICAgICAgIH1dCiAgICAgICAgfQogICAgICAgIGlmKCFub2RlLmRhdGEuaWQpewogICAgICAgICAgdGhpcy5ub2RlTXNnW25vZGUuZGF0YS5rZXldID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0T2JqLHRoaXMubm9kZU1zZ1tub2RlLmRhdGEua2V5XSkKICAgICAgICB9CiAgICAgICAgdGhpcy5kcmF3ZXJPYmplY3QgPSB7CiAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgY29tcG9uZW50OiAnU2VydmljZU5vZGVDb25maWcnLAogICAgICAgICAgY29uZmlnRGF0YTogdGhpcy5ub2RlTXNnW25vZGUuZGF0YS5rZXldLAogICAgICAgICAgdGl0bGU6J+acjeWKoeiKgueCuemFjee9ricKICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmKG5vZGUuZGF0YS5mcm9tICE9PSB1bmRlZmluZWQpewogICAgICAgIGlmKHRoaXMubm9kZU1zZ1tub2RlLmRhdGEuZnJvbV0uY2F0ZWdvcnkgPT09ICdTZXJ2aWNlJyAmJiB0aGlzLmRhdGEubW9kdWxlVHlwZSA9PT0gMSl7CiAgICAgICAgICByZXR1cm4KICAgICAgICB9CiAgICAgICAgLy8g6buY6K6k6L+e57q/6YWN572uCiAgICAgICAgbGV0IGRlZmF1bHRPYmogPSB7CiAgICAgICAgICBlbmROb2RlOm51bGwsCiAgICAgICAgICBtb2R1bGVJZDpudWxsLAogICAgICAgICAgbmFtZTpudWxsLAogICAgICAgICAgcnVsZUxpc3Q6W10sCiAgICAgICAgICBzb3VyY2VzOm51bGwsCiAgICAgICAgICBzdGFydE5vZGU6bnVsbCwKICAgICAgICAgIHN0YXR1czpudWxsCiAgICAgICAgfQogICAgICAgIGlmKCFub2RlLmRhdGEubW9kdWxlSWQpewogICAgICAgICAgdGhpcy5wYXRoTXNnW25vZGUuZGF0YS5rZXldID0gT2JqZWN0LmFzc2lnbihkZWZhdWx0T2JqLHRoaXMucGF0aE1zZ1tub2RlLmRhdGEua2V5XSkKICAgICAgICB9CgogICAgICAgIGxldCB0YWJsZUNvbmZpZyA9IFt7CiAgICAgICAgICAgIElEOiB0aGlzLm5vZGVNc2dbbm9kZS5kYXRhLmZyb21dLm5vZGVGb3JtSWQsCiAgICAgICAgICAgIHZhbHVlOiB0aGlzLm5vZGVNc2dbbm9kZS5kYXRhLmZyb21dLm5vZGVGb3JtCiAgICAgICAgICB9XQoKICAgICAgICBpZih0aGlzLm5vZGVNc2dbbm9kZS5kYXRhLmZyb21dLmNhdGVnb3J5ID09PSAnU3RhcnQnKXsKICAgICAgICAgIHRhYmxlQ29uZmlnID0gW3sKICAgICAgICAgICAgSUQ6IHRoaXMubm9kZU1zZ1tub2RlLmRhdGEuZnJvbV0uYnVzaW5lc3NUeXBlLAogICAgICAgICAgICB2YWx1ZTogdGhpcy5ub2RlTXNnW25vZGUuZGF0YS5mcm9tXS5idXNpbmVzc1R5cGVOYW1lCiAgICAgICAgICB9XQogICAgICAgIH0KCiAgICAgICAgdGhpcy5kcmF3ZXJPYmplY3QgPSB7CiAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgICAgY29tcG9uZW50OiAnbGlua0luZm8nLAogICAgICAgICAgY29uZmlnRGF0YTogdGhpcy5wYXRoTXNnW25vZGUuZGF0YS5rZXldLAogICAgICAgICAgVEFCTEVfSUQ6IHRoaXMuZGF0YS5tb2R1bGVUeXBlID09PSAxP3RhYmxlQ29uZmlnOnRoaXMuZGF0YS5idXNpbmVzc1R5cGUsCiAgICAgICAgICB0aXRsZTon6L+e5o6l57q/6YWN572uJwogICAgICAgIH0KICAgICAgfQogICAgfSwKICAgIGZpbmROb2Rlc0ludG8gKG5vZGUpIHsgIC8v5p+l5om+54i26IqC54K5CiAgICAgIGxldCBwYXJlbnRzID0gbm9kZS5maW5kTm9kZXNJbnRvKCkKCiAgICAgIGlmKHBhcmVudHMuY291bnQgPiAwKXsKICAgICAgICBub2RlLmZpbmROb2Rlc0ludG8oKS5tYXAoaXRlbSA9PiB7CiAgICAgICAgICB0aGlzLnJlamVjdGVkTm9kZXMucHVzaCh7CiAgICAgICAgICAgIHZhbHVlOml0ZW0uZGF0YS5rZXksCiAgICAgICAgICAgIGxhYmVsOml0ZW0uZGF0YS50ZXh0CiAgICAgICAgICB9KQogICAgICAgICAgdGhpcy5maW5kTm9kZXNJbnRvKGl0ZW0pCiAgICAgICAgfSkKICAgICAgfWVsc2V7CiAgICAgICAgcmV0dXJuCiAgICAgIH0KICAgIH0sCiAgICBmaW5kTm9kZXNPdXRPZiAobm9kZSkgeyAgLy/mn6Xmib7lrZDoioLngrkKICAgICAgbGV0IGNoaWxkcmVucyA9IG5vZGUuZmluZE5vZGVzT3V0T2YoKQoKICAgICAgaWYoY2hpbGRyZW5zLmNvdW50ID4gMCl7CiAgICAgICAgbm9kZS5maW5kTm9kZXNPdXRPZigpLm1hcChpdGVtID0+IHsKICAgICAgICAgIGlmKGl0ZW0uZGF0YS5rZXkgIT0gLTIpewogICAgICAgICAgICB0aGlzLmFzc2lnbmVkTm9kZXMucHVzaCh7CiAgICAgICAgICAgICAgdmFsdWU6aXRlbS5kYXRhLmtleSwKICAgICAgICAgICAgICBsYWJlbDppdGVtLmRhdGEudGV4dAogICAgICAgICAgICB9KQogICAgICAgICAgICB0aGlzLmZpbmROb2Rlc091dE9mKGl0ZW0pCiAgICAgICAgICB9CgogICAgICAgIH0pCiAgICAgIH1lbHNlewogICAgICAgIHJldHVybgogICAgICB9CiAgICB9LAogICAgU2VsZWN0aW9uRGVsZXRlZCAobm9kZSkgeyAgLy/liKDpmaToioLngrnmiJbogIXnur8KCiAgICAgIGlmKG5vZGUuZnJvbVBvcnQgIT09IHVuZGVmaW5lZCl7ICAvL+e6v+eahOWIoOmZpAogICAgICAgIGRlbGV0ZSB0aGlzLnBhdGhNc2dbbm9kZS5rZXldCiAgICAgICAgaWYobm9kZS5pZCl7ICAvL+W3suS/neWtmOeahOe6vwogICAgICAgICAgdGhpcy5kYXRhLnJlbW92ZVBhdGgucHVzaChub2RlLmlkKQogICAgICAgIH0KICAgICAgfWVsc2V7ICAvL+iKgueCueWIoOmZpAogICAgICAgIGRlbGV0ZSB0aGlzLm5vZGVNc2dbbm9kZS5rZXldCiAgICAgICAgaWYobm9kZS5pZCl7CiAgICAgICAgICB0aGlzLmRhdGEucmVtb3ZlTm9kZS5wdXNoKHsKICAgICAgICAgICAgaWQ6bm9kZS5pZCwKICAgICAgICAgICAgdHlwZTpub2RlLnR5cGUKICAgICAgICAgIH0pCiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgTGlua0RyYXduIChub2RlKSB7ICAvL+i/nue6v+eUn+aIkAogICAgICBpZighdGhpcy5qdWRnZUxvb3AoKSl7CiAgICAgICAgdGhpcy4kTW9kYWwuZmNXYXJuaW5nKHsKICAgICAgICAgIHRpdGxlOiforablkYonLAogICAgICAgICAgY29udGVudDon5rWB56iL5Zu+5Lit5a2Y5Zyo5Zue6Lev77yM6K+36YeN5paw6K6+572uISEnLAogICAgICAgICAgbWFzazp0cnVlCiAgICAgICAgfSkKCiAgICAgICAgdGhpcy5kYXRhLmd1aVN0eWxlID0gSlNPTi5wYXJzZSh0aGlzLm15RGVzaWduZXIuZ2V0Rmxvd0RhdGEoKSkKICAgICAgICBsZXQgbGlua0RhdGFBcnJheSA9IHRoaXMuZGF0YS5ndWlTdHlsZS5saW5rRGF0YUFycmF5CiAgICAgICAgbGlua0RhdGFBcnJheSA9IGxpbmtEYXRhQXJyYXkuZmlsdGVyKGl0ZW0gPT4gewogICAgICAgICAgcmV0dXJuIGl0ZW0ua2V5ICE9PSBub2RlLmtleQogICAgICAgIH0pCgogICAgICAgIHRoaXMuZGF0YS5ndWlTdHlsZS5saW5rRGF0YUFycmF5ID0gbGlua0RhdGFBcnJheQogICAgICAgIHRoaXMuaW5pdCgpCiAgICAgICAgLy8gcmVqZWN0KCkKICAgICAgICByZXR1cm4KICAgICAgfWVsc2V7CiAgICAgICAgdGhpcy5wYXRoTXNnW25vZGUua2V5XSA9IG5vZGUKICAgICAgICB0aGlzLnBhdGhNc2dbbm9kZS5rZXldLnJ1bGVMaXN0ID0gW10KICAgICAgfQoKICAgIH0sCiAgICBMaW5rUmVsaW5rZWQgKG5vZGUpIHsgIC8v6L+e57q/5L+u5pS5CiAgICAgIHRoaXMucGF0aE1zZ1tub2RlLmtleV0uZnJvbSA9IG5vZGUuZnJvbQogICAgICB0aGlzLnBhdGhNc2dbbm9kZS5rZXldLnRvID0gbm9kZS50bwogICAgICB0aGlzLnBhdGhNc2dbbm9kZS5rZXldLmZyb21Qb3J0ID0gbm9kZS5mcm9tUG9ydAogICAgICB0aGlzLnBhdGhNc2dbbm9kZS5rZXldLnRvUG9ydCA9IG5vZGUudG9Qb3J0CiAgICB9LAogICAganVkZ2VMb29wICgpIHsgIC8v5Yik5pat5piv5ZCm5a2Y5Zyo6Zet546vICB0cnVl5Li65rKh5pyJ6Zet546vICBmYWxzZeaciemXreeOrwogICAgICAgIC8vIOiOt+WPluaJgOacieeahOiKgueCuQogICAgICAgIGxldCBkYXRhID0gSlNPTi5wYXJzZSh0aGlzLm15RGVzaWduZXIuZ2V0Rmxvd0RhdGEoKSkKICAgICAgICBjb25zdCBlZGdlcyA9IGRhdGEubGlua0RhdGFBcnJheT9kYXRhLmxpbmtEYXRhQXJyYXk6SlNPTi5wYXJzZShkYXRhKS5saW5rRGF0YUFycmF5OwogICAgICAgIGNvbnN0IG5vZGVzID0gW107CiAgICAgICAgY29uc3QgbGlzdCA9IHt9OyAvLyDpgrvmjqXooagKICAgICAgICBjb25zdCBxdWV1ZSA9IFtdOyAvLyDlhaXluqbkuLow55qE6IqC54K56ZuG5ZCICiAgICAgICAgY29uc3QgaW5kZWdyZWUgPSB7fTsKICAgICAgICBlZGdlcy5mb3JFYWNoKGUgPT4gewogICAgICAgICAgICBjb25zdCB7IGZyb20sIHRvIH0gPSBlOwogICAgICAgICAgICBpZiAoIW5vZGVzLmluY2x1ZGVzKGZyb20pKSB7CiAgICAgICAgICAgICAgICBub2Rlcy5wdXNoKGZyb20pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghbm9kZXMuaW5jbHVkZXModG8pKSB7CiAgICAgICAgICAgICAgICBub2Rlcy5wdXNoKHRvKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBhZGRFZGdlKGZyb20sIHRvKTsKICAgICAgICB9KTsKICAgICAgICBjb25zdCBWID0gbm9kZXMubGVuZ3RoOwoKICAgICAgICBub2Rlcy5mb3JFYWNoKG5vZGUgPT4gewogICAgICAgICAgICBpZiAoIWluZGVncmVlW25vZGVdKSBpbmRlZ3JlZVtub2RlXSA9IDA7CiAgICAgICAgICAgIGlmICghbGlzdFtub2RlXSkgbGlzdFtub2RlXSA9IFtdOwogICAgICAgIH0pOwoKICAgICAgICBmdW5jdGlvbiBhZGRFZGdlKHNvdXJjZSwgdGFyZ2V0KSB7CiAgICAgICAgICAgIGlmICghbGlzdFtzb3VyY2VdKSBsaXN0W3NvdXJjZV0gPSBbXTsKICAgICAgICAgICAgaWYgKCFpbmRlZ3JlZVt0YXJnZXRdKSBpbmRlZ3JlZVt0YXJnZXRdID0gMDsKICAgICAgICAgICAgbGlzdFtzb3VyY2VdLnB1c2godGFyZ2V0KTsKICAgICAgICAgICAgaW5kZWdyZWVbdGFyZ2V0XSArPSAxOwogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBzb3J0KCkgewogICAgICAgICAgICBPYmplY3Qua2V5cyhpbmRlZ3JlZSkuZm9yRWFjaChpZCA9PiB7CiAgICAgICAgICAgICAgICBpZiAoaW5kZWdyZWVbaWRdID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgcXVldWUucHVzaChpZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBsZXQgY291bnQgPSAwOwogICAgICAgICAgICB3aGlsZSAocXVldWUubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICArK2NvdW50OwogICAgICAgICAgICAgICAgY29uc3QgY3VycmVudE5vZGUgPSBxdWV1ZS5wb3AoKTsKICAgICAgICAgICAgICAgIGNvbnN0IG5vZGVUYXJnZXRzID0gbGlzdFtjdXJyZW50Tm9kZV07CiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVUYXJnZXRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gbm9kZVRhcmdldHNbaV07CiAgICAgICAgICAgICAgICAgICAgaW5kZWdyZWVbdGFyZ2V0XSAtPSAxOwogICAgICAgICAgICAgICAgICAgIGlmIChpbmRlZ3JlZVt0YXJnZXRdID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXVlLnB1c2godGFyZ2V0KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gZmFsc2Ug5rKh5pyJ6L6T5Ye65YWo6YOo6aG254K577yM5pyJ5ZCR5Zu+5Lit5pyJ5Zue6LevCiAgICAgICAgICAgIHJldHVybiAhKGNvdW50IDwgVik7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gc29ydCgpOwogICAgfSwKICAgIGV4dGVybmFsb2JqZWN0c2Ryb3BwZWQgKG5vZGUpIHsgIC8v6IqC54K555Sf5oiQCgogICAgICBpZihub2RlLmNhdGVnb3J5ID09PSAnU2VydmljZScgfHwgbm9kZS5jYXRlZ29yeSA9PT0gJ1N1YnByb2Nlc3NlcycpewogICAgICAgIHRoaXMubm9kZU1zZ1tub2RlLmtleV0gPSBub2RlCiAgICAgICAgdGhpcy5ub2RlTXNnW25vZGUua2V5XS5uYW1lID0gbm9kZS50ZXh0CiAgICAgICAgcmV0dXJuCiAgICAgIH0KICAgICAgdGhpcy5ub2RlTXNnW25vZGUua2V5XSA9IG5vZGUKICAgICAgdGhpcy5ub2RlTXNnW25vZGUua2V5XS5ydWxlTGlzdCA9IFtdCiAgICAgIHRoaXMubm9kZU1zZ1tub2RlLmtleV0uYWN0U2VydmljZVMgPVsKICAgICAgICB7CiAgICAgICAgICBzdGF0dXM6MSwKICAgICAgICAgIGhhbmRsZVZhbHVlOm51bGwsCiAgICAgICAgICBoYW5kbGVUeXBlOjExCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICBzdGF0dXM6MSwKICAgICAgICAgIGhhbmRsZVZhbHVlOm51bGwsCiAgICAgICAgICBoYW5kbGVUeXBlOjIwCiAgICAgICAgfQogICAgICBdCiAgICAgIHRoaXMubm9kZU1zZ1tub2RlLmtleV0uYWN0aW9uQ29uZmlnID1bXQogICAgICB0aGlzLm5vZGVNc2dbbm9kZS5rZXldLmFwcHJvdmVsTGlzdCA9IFtdCiAgICAgIHRoaXMubm9kZU1zZ1tub2RlLmtleV0uYXBwcm92ZXJTdHlsZSA9IDAKICAgICAgdGhpcy5ub2RlTXNnW25vZGUua2V5XS5uYW1lID0gbm9kZS50ZXh0CiAgICB9LAogICAgY2xvc2VEcmF3ZXIgKCkgeyAgLy/lhbPpl63nrZbliJLlnZcKICAgICAgdGhpcy5kcmF3ZXJPYmplY3QgPSB7CiAgICAgICAgc2hvdzogZmFsc2UKICAgICAgfQogICAgfQogIH0KfQo="},null]}