{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/src/ui/main/LoginPage.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/src/ui/main/LoginPage.vue","mtime":1702016964383},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/babel-loader/lib/index.js","mtime":1702017034360},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/cache-loader/dist/cjs.js","mtime":1702017034107},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/node_modules/vue-loader/lib/index.js","mtime":1702017029242}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBDb25maWcgZnJvbSAiLi4vLi4vY29uZmlnIjsKaW1wb3J0IHdmYyBmcm9tICcuLi8uLi93ZmMvY2xpZW50L3dmYycKaW1wb3J0IFBDU2Vzc2lvbiBmcm9tICIuLi8uLi93ZmMvbW9kZWwvcGNzZXNzaW9uIjsKaW1wb3J0IGpyUVJDb2RlIGZyb20gJ2pyLXFyY29kZScKaW1wb3J0IENsaXBMb2FkZXIgZnJvbSAndnVlLXNwaW5uZXIvc3JjL0NsaXBMb2FkZXInCmltcG9ydCBDb25uZWN0aW9uU3RhdHVzIGZyb20gIi4uLy4uL3dmYy9jbGllbnQvY29ubmVjdGlvblN0YXR1cyI7CmltcG9ydCBFdmVudFR5cGUgZnJvbSAiLi4vLi4vd2ZjL2NsaWVudC93ZmNFdmVudCI7CmltcG9ydCB7Y2xlYXIsIGdldEl0ZW0sIHNldEl0ZW19IGZyb20gIi4uL3V0aWwvc3RvcmFnZUhlbHBlciI7CmltcG9ydCB7aXBjUmVuZGVyZXIsIGlzRWxlY3Ryb259IGZyb20gIi4uLy4uL3BsYXRmb3JtIjsKaW1wb3J0IHN0b3JlIGZyb20gIi4uLy4uL3N0b3JlIjsKaW1wb3J0IEVsZWN0cm9uV2luZG93c0NvbnRyb2xCdXR0b25WaWV3IGZyb20gIi4uL2NvbW1vbi9FbGVjdHJvbldpbmRvd3NDb250cm9sQnV0dG9uVmlldy52dWUiOwppbXBvcnQgSXBjRXZlbnRUeXBlIGZyb20gIi4uLy4uL2lwY0V2ZW50VHlwZSI7CmltcG9ydCBhcHBTZXJ2ZXJBcGkgZnJvbSAiLi4vLi4vYXBpL2FwcFNlcnZlckFwaSI7CmltcG9ydCBvcmdhbml6YXRpb25TZXJ2ZXJBcGkgZnJvbSAiLi4vLi4vYXBpL29yZ2FuaXphdGlvblNlcnZlckFwaSI7CmltcG9ydCBXZmNTY2hlbWUgZnJvbSAiLi4vLi4vd2ZjU2NoZW1lIjsKaW1wb3J0IHtnZXRNeVVzZXJJbmZvQXBpLHdmY1Rva2VuTG9naW5BcGl9IGZyb20gIi4uLy4uL2FwaS9iY3h3ZmNBcGkiOwoKCmV4cG9ydCBkZWZhdWx0IHsKICAgIG5hbWU6ICdMb2dpblBhZ2UnLAogICAgZGF0YSgpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBzaGFyZWRNaXNjU3RhdGU6IHN0b3JlLnN0YXRlLm1pc2MsCiAgICAgICAgICAgIHFyQ29kZTogJycsCiAgICAgICAgICAgIHVzZXJOYW1lOiAnJywKICAgICAgICAgICAgbG9naW5TdGF0dXM6IDAsIC8vMCDnrYnlvoXmiavnoIHvvIzlr4bnoIHnmbvlvZXmiJbpqozor4HnoIHnmbvlvZXml7bvvIzooajnpLrnrYnlvoXnmbvlvZXvvJsgMSDlt7Lnu4/miavnoIHvvJsgMiDlrZjlnKhzZXNzaW9u77yM562J5b6F5Y+R6YCB57uZ5a6i5oi356uv6aqM6K+B77ybMyDlt7Lnu4/lj5HpgIHnmbvlvZXor7fmsYLvvIzlr4bnoIHnmbvlvZXmiJbpqozor4HnoIHnmbvlvZXml7bvvIzooajnpLrnmbvlvZXkuK0gNCDosIPor5Xml7bvvIzoh6rliqjnmbvlvZUKICAgICAgICAgICAgcXJDb2RlVGltZXI6IG51bGwsCiAgICAgICAgICAgIGFwcFRva2VuOiAnJywKICAgICAgICAgICAgbGFzdEFwcFRva2VuOiAnJywKICAgICAgICAgICAgbG9naW5UeXBlOiAwLCAvLyAwIOaJq+eggeeZu+W9le+8jDEg5a+G56CB55m75b2V77yMMiDpqozor4HnoIHnmbvlvZUKICAgICAgICAgICAgZW5hYmxlQXV0b0xvZ2luOiB0cnVlLC8v6YWN572udHJ1Zem7mOiupOiusOS9j+eZu+W9lQogICAgICAgICAgICBtb2JpbGU6ICcnLAogICAgICAgICAgICBwYXNzd29yZDogJycsCiAgICAgICAgICAgIGF1dGhDb2RlOiAnJywKICAgICAgICAgICAgZmlyc3RUaW1lQ29ubmVjdDogZmFsc2UsCiAgICAgICAgfQogICAgfSwKICAgIGNyZWF0ZWQoKSB7CiAgICAgICAgd2ZjLmluaXQoKQogICAgICAgIHdmYy5ldmVudEVtaXR0ZXIub24oRXZlbnRUeXBlLkNvbm5lY3Rpb25TdGF0dXNDaGFuZ2VkLCB0aGlzLm9uQ29ubmVjdGlvblN0YXR1c0NoYW5nZSkKICAgICAgIAogICAgICAgIGxldCB1c2VySWQgPSBnZXRJdGVtKCd3ZmNVc2VySWQnKTsKICAgICAgICBsZXQgdG9rZW4gPSBnZXRJdGVtKCd3ZmNUb2tlbicpOwogICAgICAgIGlmICh1c2VySWQpIHsKICAgICAgICAgICAgbGV0IHBvcnRyYWl0ID0gZ2V0SXRlbSgidXNlclBvcnRyYWl0Iik7CiAgICAgICAgICAgIHRoaXMucXJDb2RlID0gcG9ydHJhaXQgPyBwb3J0cmFpdCA6IENvbmZpZy5ERUZBVUxUX1BPUlRSQUlUX1VSTDsKCiAgICAgICAgICAgIGxldCBhdXRvTG9naW4gPSBnZXRJdGVtKHVzZXJJZCArICctJyArICdhdXRvTG9naW4nKSA9PT0gJzEnCiAgICAgICAgICAgIGlmIChhdXRvTG9naW4gJiYgdG9rZW4pIHsKICAgICAgICAgICAgICAgIHRoaXMuZmlyc3RUaW1lQ29ubmVjdCA9IHdmYy5jb25uZWN0KHVzZXJJZCwgdG9rZW4pOwogICAgICAgICAgICAgICAgdGhpcy5sb2dpblN0YXR1cyA9IDQ7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLmxvZ2luU3RhdHVzID0gMjsKICAgICAgICAgICAgICAgIGlzRWxlY3Ryb24oKSAmJiBpcGNSZW5kZXJlci5zZW5kKElwY0V2ZW50VHlwZS5SRVNJWkVfTE9HSU5fV0lORE9XKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLndmY0xvZ2luKCkvL+m7mOiupOeZu+W9lQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIGlzRWxlY3Ryb24oKSAmJiBpcGNSZW5kZXJlci5zZW5kKElwY0V2ZW50VHlwZS5SRVNJWkVfTE9HSU5fV0lORE9XKTsKICAgICAgICAgICAgLy8gdGhpcy5jcmVhdGVQQ0xvZ2luU2Vzc2lvbihudWxsKTsKCiAgICAgICAgICAgdGhpcy53ZmNMb2dpbigpLy/pu5jorqTnmbvlvZUKICAgICAgICB9CiAgICB9LAoKICAgIGJlZm9yZURlc3Ryb3koKSB7CiAgICAgICAgd2ZjLmV2ZW50RW1pdHRlci5yZW1vdmVMaXN0ZW5lcihFdmVudFR5cGUuQ29ubmVjdGlvblN0YXR1c0NoYW5nZWQsIHRoaXMub25Db25uZWN0aW9uU3RhdHVzQ2hhbmdlKQogICAgfSwKCiAgICBtZXRob2RzOiB7CiAgICAgICAgLy9iY3jpu5jorqTnmbvlvZUKICAgICAgICBhc3luYyB3ZmNMb2dpbigpewogICAgICAgICAgICBsZXQgdXNlckluZm8gPSBhd2FpdCBnZXRNeVVzZXJJbmZvQXBpKCkKICAgICAgICAgICAgY29uc29sZS5sb2coJ3VzZXJJbmZvJyx1c2VySW5mbykKICAgICAgICAgICAgLy8g55m75b2VSW0tLeeZu+W9leiOt+WPlnRva2Vu5LiOYXV0aFRva2VuLS3moLjlv4MKICAgICAgICAgICAgY29uc3QgcmVzdWx0V2ZjSU09YXdhaXQgd2ZjVG9rZW5Mb2dpbkFwaSh1c2VySW5mbykKICAgICAgICAgICAgY29uc29sZS5sb2coJ3Jlc3VsdFdmY0lNJyxyZXN1bHRXZmNJTSkKICAgICAgICAgICAgbGV0IHVzZXJJZCA9IHVzZXJJbmZvLmltSWRlbnRpdHk7CiAgICAgICAgICAgIGxldCB0b2tlbiA9IHJlc3VsdFdmY0lNLnRva2VuOwogICAgICAgICAgICBsZXQgYXV0aFRva2VuPXJlc3VsdFdmY0lNLmF1dGhUb2tlbjsKICAgICAgICAgICAgd2ZjLmNvbm5lY3QodXNlcklkLCB0b2tlbik7Ly/moLjlv4MKICAgICAgICAgICAgc2V0SXRlbSgnd2ZjVXNlcklkJywgdXNlcklkKTsKICAgICAgICAgICAgc2V0SXRlbSgnd2ZjVG9rZW4nLCB0b2tlbikKICAgICAgICAgICAgbGV0IHBhdGg9Q29uZmlnLkFQUF9TRVJWRVIKICAgICAgICAgICAgc2V0SXRlbSgnYXV0aFRva2VuLScgKyBuZXcgVVJMKHBhdGgpLmhvc3QsIGF1dGhUb2tlbikKCiAgICAgICAgfSwKICAgICAgICByZWdpc3RlcigpIHsKICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHsKICAgICAgICAgICAgICAgIHRleHQ6ICfkvb/nlKjnn63kv6Hpqozor4HnoIHnmbvlvZXvvIzlsIbkvJrkuLrmgqjliJvlu7rotKbmiLfvvIzor7fkvb/nlKjnn63kv6Hpqozor4HnoIHnmbvlvZUnLAogICAgICAgICAgICAgICAgdHlwZTogJ2luZm8nCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB0aGlzLnN3aXRjaExvZ2luVHlwZSgyKTsKICAgICAgICB9LAogICAgICAgIHN3aXRjaExvZ2luVHlwZSh0eXBlKSB7CiAgICAgICAgICAgIHRoaXMubG9naW5UeXBlID0gdHlwZTsKICAgICAgICB9LAoKICAgICAgICBhc3luYyByZXF1ZXN0QXV0aENvZGUoKSB7CiAgICAgICAgICAgIGFwcFNlcnZlckFwaS5yZXF1ZXN0QXV0aENvZGUodGhpcy5tb2JpbGUpCiAgICAgICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHsKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ+WPkemAgemqjOivgeeggeaIkOWKnycsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdpbmZvJwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Y+R6YCB6aqM6K+B56CB5aSx6LSlJywKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogZXJyLm1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgfSwKCiAgICAgICAgYXN5bmMgbG9naW5XaXRoUGFzc3dvcmQoKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5tb2JpbGUgfHwgIXRoaXMucGFzc3dvcmQpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy4kcmVmcy5sb2dpbldpdGhQYXNzd29yZEJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHRoaXMubG9naW5TdGF0dXMgPSAzOwogICAgICAgICAgICBhcHBTZXJ2ZXJBcGkubG9pbldpdGhQYXNzd29yZCh0aGlzLm1vYmlsZSwgdGhpcy5wYXNzd29yZCkKICAgICAgICAgICAgICAgIC50aGVuKHJlcyA9PiB7CiAgICAgICAgICAgICAgICAgICAgY29uc3Qge3VzZXJJZCwgdG9rZW4sIHBvcnRyYWl0fSA9IHJlcwogICAgICAgICAgICAgICAgICAgIHRoaXMuZmlyc3RUaW1lQ29ubmVjdCA9IHdmYy5jb25uZWN0KHVzZXJJZCwgdG9rZW4pOwogICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3dmY1VzZXJJZCcsIHVzZXJJZCk7CiAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgnd2ZjVG9rZW4nLCB0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgidXNlclBvcnRyYWl0IiwgcG9ydHJhaXQpOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdsb2dpbldpdGhQYXNzd29yZCBlcnInLCBlcnIpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5wYXNzd29yZCA9ICcnOwogICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5TdGF0dXMgPSAwOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn55m75b2V5aSx6LSlJywKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogZXJyLm1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgfSwKCiAgICAgICAgYXN5bmMgbG9naW5XaXRoQXV0aENvZGUoKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5tb2JpbGUgfHwgIXRoaXMuYXV0aENvZGUpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdGhpcy4kcmVmcy5sb2dpbldpdGhBdXRoQ29kZUJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHRoaXMubG9naW5TdGF0dXMgPSAzOwogICAgICAgICAgICBhcHBTZXJ2ZXJBcGkubG9naW5XaXRoQXV0aENvZGUodGhpcy5tb2JpbGUsIHRoaXMuYXV0aENvZGUpCiAgICAgICAgICAgICAgICAudGhlbihyZXMgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnN0IHt1c2VySWQsIHRva2VuLCBwb3J0cmFpdH0gPSByZXM7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5maXJzdFRpbWVDb25uZWN0ID0gd2ZjLmNvbm5lY3QodXNlcklkLCB0b2tlbik7CiAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgnd2ZjVXNlcklkJywgdXNlcklkKTsKICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCd3ZmNUb2tlbicsIHRva2VuKTsKICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCJ1c2VyUG9ydHJhaXQiLCBwb3J0cmFpdCk7CiAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRoQ29kZSA9ICcnOwogICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5TdGF0dXMgPSAwOwogICAgICAgICAgICAgICAgICAgIHRoaXMuJG5vdGlmeSh7CiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn55m75b2V5aSx6LSlJywKICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogZXJyLm1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdlcnJvcicKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgfSwKCiAgICAgICAgcmVnZW5lcmF0ZVFyQ29kZSgpIHsKICAgICAgICAgICAgaWYgKHRoaXMucXJDb2RlID09PSAnZXJyb3InKSB7CiAgICAgICAgICAgICAgICB0aGlzLnFyQ29kZSA9IG51bGw7CiAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBDTG9naW5TZXNzaW9uKG51bGwpOwogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBhc3luYyBjcmVhdGVQQ0xvZ2luU2Vzc2lvbih1c2VySWQpIHsKICAgICAgICAgICAgYXBwU2VydmVyQXBpLmNyZWF0ZVBDU2Vzc2lvbih1c2VySWQpCiAgICAgICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgICAgICAgbGV0IHNlc3Npb24gPSBPYmplY3QuYXNzaWduKG5ldyBQQ1Nlc3Npb24oKSwgcmVzcG9uc2UpOwogICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwVG9rZW4gPSBzZXNzaW9uLnRva2VuOwogICAgICAgICAgICAgICAgICAgIGlmICghdXNlcklkIHx8IHNlc3Npb24uc3RhdHVzID09PSAwLyrmnI3liqHnq69wYyBsb2dpbiBzZXNzaW9u5LiN5a2Y5ZyoKi8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5xckNvZGUgPSBqclFSQ29kZS5nZXRRckJhc2U2NChXZmNTY2hlbWUuUVJfQ09ERV9QUkVGSVhfUENfU0VTU0lPTiArIHNlc3Npb24udG9rZW4pOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZnJlc2hRckNvZGUoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpbigpOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjcmVhdGVQQ1Nlc3Npb24gZXJyb3InLCBlcnIpOwogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCchISEg5aaC5p6c5pivIENPUlMg55u45YWz6ZSZ6K+v77yM5Y+v6IO95piv6YCa6L+HIG5naW54IOetieS7o+eQhuS6hiBhcHAtc2VydmVyIOebuOWFs+ivt+axgu+8jOS9hiBuZ2lueCDphY3nva7plJnor6/vvIzor7flj4LogIMgYXBwLXNlcnZlciDpobnnm67kuIsgbmdpbngg55uu5b2V5LiL55qE5Y+C6ICD6YWN572uICEhIScpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5xckNvZGUgPSAnZXJyb3InOwogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnFyQ29kZVRpbWVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5xckNvZGVUaW1lcikKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KQogICAgICAgIH0sCgogICAgICAgIGFzeW5jIHJlZnJlc2hRckNvZGUoKSB7CiAgICAgICAgICAgIGlmICghdGhpcy5xckNvZGVUaW1lcikgewogICAgICAgICAgICAgICAgdGhpcy5xckNvZGVUaW1lciA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2dpblN0YXR1cyA9PT0gMykgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwVG9rZW4gPSAnJzsKICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luU3RhdHVzID0gMDsKICAgICAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVBDTG9naW5TZXNzaW9uKG51bGwpOwogICAgICAgICAgICAgICAgfSwgNjAgKiAxMDAwKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCgogICAgICAgIGFzeW5jIGxvZ2luKCkgewogICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgdGhpcy5sYXN0QXBwVG9rZW4gPSB0aGlzLmFwcFRva2VuOwogICAgICAgICAgICBhcHBTZXJ2ZXJBcGkubG9naW5XaXRoUENTZXNzaW9uKHRoaXMuYXBwVG9rZW4pCiAgICAgICAgICAgICAgICAudGhlbihkYXRhID0+IHsKICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSkgewogICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRhdGEuY29kZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZ2luU3RhdHVzID09PSAxIHx8IHRoaXMubG9naW5TdGF0dXMgPT09IDMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJJZCA9IGRhdGEucmVzdWx0LnVzZXJJZDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGltVG9rZW4gPSBkYXRhLnJlc3VsdC50b2tlbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ZjLmNvbm5lY3QodXNlcklkLCBpbVRva2VuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dpblN0YXR1cyA9IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3dmY1VzZXJJZCcsIHVzZXJJZCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3dmY1Rva2VuJywgaW1Ub2tlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnJlc3VsdC5wb3J0cmFpdCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnFyQ29kZSA9IGRhdGEucmVzdWx0LnBvcnRyYWl0OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucXJDb2RlID0gQ29uZmlnLkRFRkFVTFRfUE9SVFJBSVRfVVJMOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCJ1c2VyTmFtZSIsIGRhdGEucmVzdWx0LnVzZXJOYW1lKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCJ1c2VyUG9ydHJhaXQiLCBkYXRhLnJlc3VsdC5wb3J0cmFpdCk7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZ2luU3RhdHVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5TdGF0dXMgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9naW5TdGF0dXMgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ2luKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDE4OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vc2Vzc2lvbiBpcyBjYW5jZWxlZCwgbmVlZCBjbGVhciBsYXN0IHRpbWUgbG9naW4gc3RhdHVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jYW5jZWwoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5sYXN0QXBwVG9rZW4gPSAnJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhkYXRhKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4gewogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgfSwKCiAgICAgICAgc2VuZFF1aWNrTG9naW5SZXF1ZXN0KCkgewogICAgICAgICAgICBsZXQgdXNlcklkID0gZ2V0SXRlbSgidXNlcklkIik7CiAgICAgICAgICAgIHRoaXMuY3JlYXRlUENMb2dpblNlc3Npb24odXNlcklkKTsKICAgICAgICAgICAgdGhpcy5sb2dpblN0YXR1cyA9IDM7CiAgICAgICAgfSwKCiAgICAgICAgY2FuY2VsKCkgewoKICAgICAgICAgICAgdGhpcy5sb2dpblN0YXR1cyA9IDA7CiAgICAgICAgICAgIHRoaXMucXJDb2RlID0gbnVsbDsKICAgICAgICAgICAgLy8g5YiH5o2i55So5oi35pe277yM5YWI6L+b6KGMZGlzY29ubmVjdAogICAgICAgICAgICB3ZmMuZGlzY29ubmVjdCgpOwogICAgICAgICAgICBjbGVhcigpOwoKICAgICAgICAgICAgdGhpcy5jcmVhdGVQQ0xvZ2luU2Vzc2lvbihudWxsKTsKICAgICAgICAgICAgdGhpcy5yZWZyZXNoUXJDb2RlKCk7CiAgICAgICAgfSwKCiAgICAgICAgb25Db25uZWN0aW9uU3RhdHVzQ2hhbmdlKHN0YXR1cykgewogICAgICAgICAgICBpZiAoc3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3Rpb25TdGF0dXNMb2dvdXQKICAgICAgICAgICAgICAgIHx8IHN0YXR1cyA9PT0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0aW9uU3RhdHVzUmVqZWN0ZWQKICAgICAgICAgICAgICAgIHx8IHN0YXR1cyA9PT0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0aW9uU3RhdHVzU2VjcmV0S2V5TWlzbWF0Y2gKICAgICAgICAgICAgICAgIHx8IHN0YXR1cyA9PT0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0aW9uU3RhdHVzS2lja2VkT2ZmCiAgICAgICAgICAgICAgICB8fCBzdGF0dXMgPT09IENvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGlvblN0YXR1c05vdExpY2Vuc2VkCiAgICAgICAgICAgICAgICB8fCBzdGF0dXMgPT09IENvbm5lY3Rpb25TdGF0dXMuQ29ubmVjdGlvblN0YXR1c1RpbWVJbmNvbnNpc3RlbnQKICAgICAgICAgICAgICAgIHx8IHN0YXR1cyA9PT0gQ29ubmVjdGlvblN0YXR1cy5Db25uZWN0aW9uU3RhdHVzU2VydmVyRG93bgogICAgICAgICAgICAgICAgfHwgc3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3Rpb25TdGF0dXNUb2tlbkluY29ycmVjdCkgewogICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcign6L+e5o6l5aSx6LSlJywgc3RhdHVzLCBDb25uZWN0aW9uU3RhdHVzLmRlc2Moc3RhdHVzKSk7CiAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbCgpOwogICAgICAgICAgICAgICAgdGhpcy4kbm90aWZ5KHsKICAgICAgICAgICAgICAgICAgICB0ZXh0OiAn6L+e5o6l5aSx6LSl77yM6K+35omT5byA5o6n5Yi25Y+w77yM5p+l55yL5YW35L2T5pel5b+XJywKICAgICAgICAgICAgICAgICAgICB0eXBlOiAnZXJyb3InCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3Rpb25TdGF0dXNSZWNlaXZlaW5nKSB7CiAgICAgICAgICAgICAgICBpZiAodGhpcy4kcmVmcy5sb2dpbldpdGhBdXRoQ29kZUJ1dHRvbikgewogICAgICAgICAgICAgICAgICAgIHRoaXMuJHJlZnMubG9naW5XaXRoQXV0aENvZGVCdXR0b24udGV4dENvbnRlbnQgPSAn5pWw5o2u5ZCM5q2l5LitLi4uJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICh0aGlzLiRyZWZzLmxvZ2luV2l0aFBhc3N3b3JkQnV0dG9uKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kcmVmcy5sb2dpbldpdGhQYXNzd29yZEJ1dHRvbi50ZXh0Q29udGVudCA9ICfmlbDmja7lkIzmraXkuK0uLi4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoc3RhdHVzID09PSBDb25uZWN0aW9uU3RhdHVzLkNvbm5lY3Rpb25TdGF0dXNDb25uZWN0ZWQpIHsKICAgICAgICAgICAgICAgIGlmIChpc0VsZWN0cm9uKCkpIHsKICAgICAgICAgICAgICAgICAgICBpcGNSZW5kZXJlci5zZW5kKElwY0V2ZW50VHlwZS5MT0dJTiwge2Nsb3NlV2luZG93VG9FeGl0OiBnZXRJdGVtKHdmYy5nZXRVc2VySWQoKSArICctJyArICdjbG9zZVdpbmRvd1RvRXhpdCcpID09PSAnMSd9KQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy4kcm91dGVyLnJlcGxhY2Uoe3BhdGg6ICIvaG9tZSJ9KTsKICAgICAgICAgICAgICAgIGlmIChpc0VsZWN0cm9uKCkgfHwgKENvbmZpZy5DTElFTlRfSURfU1RSQVRFR1kgPT09IDEgfHwgQ29uZmlnLkNMSUVOVF9JRF9TVFJBVEVHWSA9PT0gMikpIHsKICAgICAgICAgICAgICAgICAgICBpc0VsZWN0cm9uKCkgJiYgaXBjUmVuZGVyZXIuc2VuZChJcGNFdmVudFR5cGUuTE9HSU4sIHtjbG9zZVdpbmRvd1RvRXhpdDogZ2V0SXRlbSh3ZmMuZ2V0VXNlcklkKCkgKyAnLScgKyAnY2xvc2VXaW5kb3dUb0V4aXQnKSA9PT0gJzEnfSkKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5lbmFibGVBdXRvTG9naW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmUuc2V0RW5hYmxlQXV0b0xvZ2luKHRoaXMuZW5hYmxlQXV0b0xvZ2luKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvblNlcnZlckFwaS5sb2dpbigpCiAgICAgICAgICAgICAgICAgICAgLmNhdGNoKHIgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdvcmdhbml6YXRpb25TZXJ2ZXIgbG9naW4gZmFpbGVkJywgcikKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICB9LAoKICAgIGNvbXB1dGVkOiB7CiAgICAgICAgcFN0eWxlKCkgewogICAgICAgICAgICBpZiAoaXNFbGVjdHJvbigpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnd2hpdGUnLAogICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc1cHgnLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnNXB4JywKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0sCgogICAgZGVzdHJveWVkKCkgewogICAgICAgIGlmICh0aGlzLnFyQ29kZVRpbWVyKSB7CiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5xckNvZGVUaW1lcikKICAgICAgICB9CiAgICB9LAoKICAgIGNvbXBvbmVudHM6IHsKICAgICAgICBFbGVjdHJvbldpbmRvd3NDb250cm9sQnV0dG9uVmlldywKICAgICAgICBDbGlwTG9hZGVyLAogICAgfQoKfQo="},null]}