{"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/voip/Single.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/src/ui/voip/Single.vue","mtime":1702016964389},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBhdmVuZ2luZWtpdCBmcm9tICIuLi8uLi93ZmMvYXYvaW50ZXJuYWwvZW5naW5lLm1pbiI7CmltcG9ydCBDYWxsU2Vzc2lvbkNhbGxiYWNrIGZyb20gIi4uLy4uL3dmYy9hdi9lbmdpbmUvY2FsbFNlc3Npb25DYWxsYmFjayI7CmltcG9ydCBDYWxsU3RhdGUgZnJvbSAiLi4vLi4vd2ZjL2F2L2VuZ2luZS9jYWxsU3RhdGUiOwppbXBvcnQge2lzRWxlY3Ryb259IGZyb20gIi4uLy4uL3BsYXRmb3JtIjsKaW1wb3J0IFNjcmVlbk9yV2luZG93UGlja2VyIGZyb20gIi4vU2NyZWVuT3JXaW5kb3dQaWNrZXIiOwppbXBvcnQgVmlkZW9UeXBlIGZyb20gIi4uLy4uL3dmYy9hdi9lbmdpbmUvdmlkZW9UeXBlIjsKaW1wb3J0IGF2ZW5naW5la2l0cHJveHkgZnJvbSAiLi4vLi4vd2ZjL2F2L2VuZ2luZS9hdmVuZ2luZWtpdHByb3h5IjsKaW1wb3J0IENvbmZpZyBmcm9tICIuLi8uLi9jb25maWciOwoKZXhwb3J0IGRlZmF1bHQgewogICAgbmFtZTogJ1NpbmdsZScsCiAgICBkYXRhKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNlc3Npb246IG51bGwsCiAgICAgICAgICAgIGF1ZGlvT25seTogZmFsc2UsCiAgICAgICAgICAgIHBhcnRpY2lwYW50VXNlckluZm9zOiBbXSwKICAgICAgICAgICAgbXV0ZWQ6IGZhbHNlLAogICAgICAgICAgICBzdGF0dXM6IDQsCiAgICAgICAgICAgIHN0YXJ0VGltZXN0YW1wOiAwLAogICAgICAgICAgICBjdXJyZW50VGltZXN0YW1wOiAwLAogICAgICAgICAgICBsb2NhbFN0cmVhbTogbnVsbCwKICAgICAgICAgICAgcmVtb3RlU3RyZWFtOiBudWxsLAogICAgICAgICAgICB2aWRlb0lucHV0RGV2aWNlSW5kZXg6IDAsCiAgICAgICAgICAgIGF1dG9QbGF5SW50ZXJ2YWw6IDAsCiAgICAgICAgICAgIHNob3dXZWJydGNUaXA6IGZhbHNlLAoKICAgICAgICAgICAgcmluZ0F1ZGlvOiBudWxsCiAgICAgICAgfQogICAgfSwKICAgIG1ldGhvZHM6IHsKICAgICAgICBhdXRvUGxheSgpIHsKICAgICAgICAgICAgaWYgKGlzRWxlY3Ryb24oKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYW4gcGxheScpOwogICAgICAgICAgICBpZiAoIXRoaXMuYXV0b1BsYXlJbnRlcnZhbCkgewogICAgICAgICAgICAgICAgdGhpcy5hdXRvUGxheUludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLiRyZWZzLmxvY2FsVmlkZW8gJiYgdGhpcy4kcmVmcy5sb2NhbFZpZGVvLnBhdXNlZCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kcmVmcy5sb2NhbFZpZGVvLnBsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYW4gcGxheSBsb2NhbCcpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLiRyZWZzLnJlbW90ZVZpZGVvICYmIHRoaXMuJHJlZnMucmVtb3RlVmlkZW8ucGF1c2VkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRyZWZzLnJlbW90ZVZpZGVvLnBsYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdjYW4gcGxheSByZW1vdGUnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG8gbm90aGluZwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuJHJlZnMubG9jYWxWaWRlbyAmJiAhdGhpcy4kcmVmcy5sb2NhbFZpZGVvLnBhdXNlZCAmJiB0aGlzLiRyZWZzLnJlbW90ZVZpZGVvICYmICF0aGlzLiRyZWZzLnJlbW90ZVZpZGVvLnBhdXNlZCkgewogICAgICAgICAgICAgICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMuYXV0b1BsYXlJbnRlcnZhbCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuYXV0b1BsYXlJbnRlcnZhbCA9IDA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSwgMTAwKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgc3dpdGNoVmlkZW9UeXBlKCkgewogICAgICAgICAgICBpZiAoIXRoaXMuc2Vzc2lvbikgewogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IHVzZXJJZCA9IHRoaXMuc2Vzc2lvbi5nZXRQYXJ0aWNpcGFudElkcygpWzBdOwogICAgICAgICAgICBsZXQgc3Vic2NyaWJlciA9IHRoaXMuc2Vzc2lvbi5nZXRTdWJzY3JpYmVyKHVzZXJJZCwgZmFsc2UpOwogICAgICAgICAgICBpZiAoc3Vic2NyaWJlcikgewogICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRWaWRlb1R5cGUgPSBzdWJzY3JpYmVyLmN1cnJlbnRWaWRlb1R5cGU7CiAgICAgICAgICAgICAgICBsZXQgdmlkZW9UeXBlID0gVmlkZW9UeXBlLk5PTkU7CiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZpZGVvVHlwZSA9PT0gVmlkZW9UeXBlLk5PTkUpIHsKICAgICAgICAgICAgICAgICAgICB2aWRlb1R5cGUgPSBWaWRlb1R5cGUuQklHX1NUUkVBTTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFZpZGVvVHlwZSA9PT0gVmlkZW9UeXBlLkJJR19TVFJFQU0pIHsKICAgICAgICAgICAgICAgICAgICB2aWRlb1R5cGUgPSBWaWRlb1R5cGUuU01BTExfU1RSRUFNOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50VmlkZW9UeXBlID09PSBWaWRlb1R5cGUuU01BTExfU1RSRUFNKSB7CiAgICAgICAgICAgICAgICAgICAgdmlkZW9UeXBlID0gVmlkZW9UeXBlLk5PTkU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc2V0UGFydGljaXBhbnRWaWRlb1R5cGUnLCB1c2VySWQsIHZpZGVvVHlwZSk7CiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uc2V0UGFydGljaXBhbnRWaWRlb1R5cGUodXNlcklkLCBmYWxzZSwgdmlkZW9UeXBlKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgc2V0dXBTZXNzaW9uQ2FsbGJhY2soKSB7CiAgICAgICAgICAgIGxldCBzZXNzaW9uQ2FsbGJhY2sgPSBuZXcgQ2FsbFNlc3Npb25DYWxsYmFjaygpOwoKICAgICAgICAgICAgLy8g5Y+v6IO95Zue6LCD5aSa5qyhCiAgICAgICAgICAgIHNlc3Npb25DYWxsYmFjay5kaWRDaGFuZ2VTdGF0ZSA9IChzdGF0ZSkgPT4gewogICAgICAgICAgICAgICAgLy8g5ZON6ZOD56S65L6L5Luj56CBCiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT09IENhbGxTdGF0ZS5TVEFUVVNfT1VUR09JTkcpIHsKICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnc3RhcnQgb3V0Z29pbmcgcmluZycpCiAgICAgICAgICAgICAgICAgICAgdGhpcy5yaW5nQXVkaW8gPSBuZXcgQXVkaW8ocmVxdWlyZSgiQC9hc3NldHMvYXVkaW9zL2luY29taW5nX2NhbGxfcmluZy5tcDMiKSkKICAgICAgICAgICAgICAgICAgICB0aGlzLnJpbmdBdWRpby5sb29wID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICB0aGlzLnJpbmdBdWRpby5wbGF5KCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlID09PSBDYWxsU3RhdGUuU1RBVFVTX0lOQ09NSU5HKSB7CiAgICAgICAgICAgICAgICAgICAgLy8g55Sx5LqO5rWP6KeI5Zmo55qE6ZmQ5Yi277yMd2ViIOerr++8jOWPr+iDveS4jeiDveiHquWKqOaSreaUvu+8ge+8gSEKICAgICAgICAgICAgICAgICAgICAvLyDlj6blpJbvvIzlvq7kv6HmlLbliLDpn7Pop4bpopHpgJror53pgoDor7fml7bvvIzkuZ/msqHmnInlo7Dpn7MKICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnJpbmdBdWRpbyA9IG5ldyBBdWRpbyhyZXF1aXJlKCJAL2Fzc2V0cy9hdWRpb3MvaW5jb21pbmdfY2FsbF9yaW5nLm1wMyIpKQogICAgICAgICAgICAgICAgICAgIC8vIHRoaXMucmluZ0F1ZGlvLmxvb3AgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIC8vIHRoaXMucmluZ0F1ZGlvLnBsYXkoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucmluZ0F1ZGlvKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmluZ0F1ZGlvLnBhdXNlKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmluZ0F1ZGlvID0gbnVsbDsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgdGhpcy5zdGF0dXMgPSBzdGF0ZTsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdkaWRDaGFuZ2VTdGF0ZScsIHN0YXRlKQogICAgICAgICAgICAgICAgaWYgKHN0YXRlID09PSBDYWxsU3RhdGUuU1RBVFVTX0NPTk5FQ1RFRCkgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YXJ0VGltZXN0YW1wID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnRUaW1lc3RhbXAgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lciA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9LCAxMDAwKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUgPT09IENhbGxTdGF0ZS5TVEFUVVNfSURMRSkgewogICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpbWVyKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzdGF0dXMgY2hhbmdlJywgc3RhdGUpCiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2sub25Jbml0aWFsID0gKHNlc3Npb24sIHNlbGZVc2VySW5mbywgaW5pdGlhdG9yVXNlckluZm8sIHBhcnRpY2lwYW50VXNlckluZm9zKSA9PiB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnb25Jbml0aWFsJykKICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbiA9IHNlc3Npb247CiAgICAgICAgICAgICAgICB0aGlzLmF1ZGlvT25seSA9IHNlc3Npb24uYXVkaW9Pbmx5OwogICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFVzZXJJbmZvcyA9IFsuLi5wYXJ0aWNpcGFudFVzZXJJbmZvc107CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkQ2hhbmdlTW9kZSA9IChhdWRpb09ubHkpID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9Pbmx5ID0gYXVkaW9Pbmx5OwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZENyZWF0ZUxvY2FsVmlkZW9UcmFjayA9IChzdHJlYW0pID0+IHsKICAgICAgICAgICAgICAgIHRoaXMubG9jYWxTdHJlYW0gPSBzdHJlYW07CiAgICAgICAgICAgICAgICB0aGlzLmF1dG9QbGF5KCk7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkUmVjZWl2ZVJlbW90ZVZpZGVvVHJhY2sgPSAodXNlcklkLCBzdHJlYW0pID0+IHsKICAgICAgICAgICAgICAgIHRoaXMucmVtb3RlU3RyZWFtID0gc3RyZWFtOwogICAgICAgICAgICAgICAgdGhpcy5hdXRvUGxheSgpOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZENhbGxFbmRXaXRoUmVhc29uID0gKHJlYXNvbikgPT4gewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhbGxFbmRXaXRoUmVhc29uJywgcmVhc29uKQogICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmNsb3NlVm9pcFdpbmRvdygpOwogICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uID0gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkVmlkZW9NdXRlZCA9ICh1c2VySWQsIG11dGVkKSA9PiB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZGlkVmlkZW9NdXRlZCcsIHVzZXJJZCwgbXV0ZWQpOwogICAgICAgICAgICAgICAgdGhpcy5tdXRlZCA9IG11dGVkOwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZE1lZGlhTG9zdFBhY2tldCA9IChtZWRpYSwgbG9zdFBhY2tldCkgPT4gewogICAgICAgICAgICAgICAgaWYgKGxvc3RQYWNrZXQgPiA2KSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+aCqOeahOe9kee7nOS4jeWlvScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZFVzZXJNZWRpYUxvc3RQYWNrZXQgPSAodXNlcklkLCBtZWRpYSwgbG9zdFBhY2tldCwgdXBsaW5rKSA9PiB7CiAgICAgICAgICAgICAgICAvL+WmguaenHVwbGluayB0dXJl5a+55pa5572R57uc5LiN5aW977yMZmFsc2XmgqjnmoTnvZHnu5zkuI3lpb0KICAgICAgICAgICAgICAgIC8v5o6l5pS25pa55Lii5YyF6LaF6L+HMTDkuLrnvZHnu5zkuI3lpb0KICAgICAgICAgICAgICAgIGlmIChsb3N0UGFja2V0ID4gMTApIHsKICAgICAgICAgICAgICAgICAgICBpZiAodXBsaW5rKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCflr7nmlrnnvZHnu5zkuI3lpb0nKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn5oKo55qE572R57uc5LiN5aW9Jyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwoKICAgICAgICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZFBhcnRpY2lwYW50Q29ubmVjdGVkID0gKHVzZXJJZCkgPT4gewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RpZFBhcnRpY2lwYW50Q29ubmVjdGVkJywgdXNlcklkKQogICAgICAgICAgICB9CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkUmVwb3J0QXVkaW9Wb2x1bWUgPSAodXNlcklkLCB2b2x1bWUpID0+IHsKICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdkaWRSZXBvcnRBdWRpb1ZvbHVtZScsIHVzZXJJZCwgdm9sdW1lKQogICAgICAgICAgICB9CgogICAgICAgICAgICBhdmVuZ2luZWtpdC5zZXNzaW9uQ2FsbGJhY2sgPSBzZXNzaW9uQ2FsbGJhY2s7CiAgICAgICAgfSwKCiAgICAgICAgYW5zd2VyKCkgewogICAgICAgICAgICB0aGlzLnNlc3Npb24uY2FsbCgpOwogICAgICAgIH0sCgogICAgICAgIGhhbmd1cCgpIHsKICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmhhbmd1cCgpOwogICAgICAgIH0sCgogICAgICAgIHN3aXRjaENhbWVyYSgpIHsKICAgICAgICAgICAgaWYgKCF0aGlzLnNlc3Npb24gfHwgdGhpcy5zZXNzaW9uLmlzU2NyZWVuU2hhcmluZygpKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gVGhlIG9yZGVyIGlzIHNpZ25pZmljYW50IC0gdGhlIGRlZmF1bHQgY2FwdHVyZSBkZXZpY2VzIHdpbGwgYmUgbGlzdGVkIGZpcnN0LgogICAgICAgICAgICAvLyBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKQogICAgICAgICAgICBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmVudW1lcmF0ZURldmljZXMoKS50aGVuKGRldmljZXMgPT4gewogICAgICAgICAgICAgICAgZGV2aWNlcyA9IGRldmljZXMuZmlsdGVyKGQgPT4gZC5raW5kID09PSAndmlkZW9pbnB1dCcpOwogICAgICAgICAgICAgICAgaWYgKGRldmljZXMubGVuZ3RoIDwgMikgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzd2l0Y2hDYW1lcmEgZXJyb3IsIG5vIG1vcmUgdmlkZW8gaW5wdXQgZGV2aWNlJykKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLnZpZGVvSW5wdXREZXZpY2VJbmRleCsrOwogICAgICAgICAgICAgICAgaWYgKHRoaXMudmlkZW9JbnB1dERldmljZUluZGV4ID49IGRldmljZXMubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy52aWRlb0lucHV0RGV2aWNlSW5kZXggPSAwOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnNldFZpZGVvSW5wdXREZXZpY2VJZChkZXZpY2VzW3RoaXMudmlkZW9JbnB1dERldmljZUluZGV4XS5kZXZpY2VJZCkKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzZXRWaWRlb0lucHV0RGV2aWNlSWQnLCBkZXZpY2VzW3RoaXMudmlkZW9JbnB1dERldmljZUluZGV4XSk7CiAgICAgICAgICAgIH0pCiAgICAgICAgfSwKCiAgICAgICAgbXV0ZSgpIHsKICAgICAgICAgICAgbGV0IGVuYWJsZSA9IHRoaXMuc2Vzc2lvbi5hdWRpb011dGVkID8gdHJ1ZSA6IGZhbHNlOwogICAgICAgICAgICB0aGlzLnNlc3Npb24uc2VsZlVzZXJJbmZvLl9pc0F1ZGlvTXV0ZWQgPSAhZW5hYmxlOwogICAgICAgICAgICB0aGlzLnNlc3Npb24uc2V0QXVkaW9FbmFibGVkKGVuYWJsZSkKICAgICAgICB9LAoKICAgICAgICBkb3duMnZvaWNlKCkgewogICAgICAgICAgICB0aGlzLnNlc3Npb24uZG93bmdyYWRlMlZvaWNlKCk7CiAgICAgICAgfSwKICAgICAgICBzY3JlZW5TaGFyZSgpIHsKICAgICAgICAgICAgaWYgKHRoaXMuc2Vzc2lvbi5pc1NjcmVlblNoYXJpbmcoKSkgewogICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnN0b3BTY3JlZW5TaGFyZSgpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKGlzRWxlY3Ryb24oKSkgewogICAgICAgICAgICAgICAgICAgIGxldCBiZWZvcmVDbG9zZSA9IChldmVudCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAvLyBXaGF0IGEgZ2FtYmxlLi4uIDUwJSBjaGFuY2UgdG8gY2FuY2VsIGNsb3NpbmcKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFldmVudC5wYXJhbXMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQucGFyYW1zLnNvdXJjZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNvdXJjZSA9IGV2ZW50LnBhcmFtcy5zb3VyY2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGVza3RvcFNoYXJlT3B0aW9ucyA9IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3VyY2VJZDogc291cmNlLmlkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1pbldpZHRoOiAxMjgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1heFdpZHRoOiAxMjgwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1pbkhlaWdodDogNzIwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1heEhlaWdodDogNzIwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uc3RhcnRTY3JlZW5TaGFyZShkZXNrdG9wU2hhcmVPcHRpb25zKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgICAgdGhpcy4kbW9kYWwuc2hvdygKICAgICAgICAgICAgICAgICAgICAgICAgU2NyZWVuT3JXaW5kb3dQaWNrZXIsCiAgICAgICAgICAgICAgICAgICAgICAgIHt9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogMzYwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiA2MjAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnc2NyZWVuLXdpbmRvdy1waWNrZXItbW9kYWwnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpY2tUb0Nsb3NlOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gJ2JlZm9yZS1vcGVuJzogYmVmb3JlT3BlbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiZWZvcmUtY2xvc2UnOiBiZWZvcmVDbG9zZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICdjbG9zZWQnOiBjbG9zZWQsCiAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5zdGFydFNjcmVlblNoYXJlKCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9LAogICAgICAgIHRpbWVzdGFtcEZvcm1hdCh0aW1lc3RhbXApIHsKICAgICAgICAgICAgdGltZXN0YW1wID0gfn4odGltZXN0YW1wIC8gMTAwMCk7CiAgICAgICAgICAgIGxldCBzdHIgPSAnJwogICAgICAgICAgICBsZXQgaG91ciA9IH5+KHRpbWVzdGFtcCAvIDM2MDApOwogICAgICAgICAgICBzdHIgPSBob3VyID4gMCA/ICgoaG91ciA8IDEwID8gIjAiIDogIiIpICsgaG91ciArICc6JykgOiAnJzsKICAgICAgICAgICAgbGV0IG1pbiA9IH5+KCh0aW1lc3RhbXAgJSAzNjAwKSAvIDYwKTsKICAgICAgICAgICAgc3RyICs9IChtaW4gPCAxMCA/ICIwIiA6ICIiKSArIG1pbiArICc6JwogICAgICAgICAgICBsZXQgc2VjID0gfn4oKHRpbWVzdGFtcCAlIDYwKSk7CiAgICAgICAgICAgIHN0ciArPSAoc2VjIDwgMTAgPyAiMCIgOiAiIikgKyBzZWMKICAgICAgICAgICAgcmV0dXJuIHN0cjsKICAgICAgICB9CiAgICB9LAoKICAgIG1vdW50ZWQoKSB7CiAgICAgICAgY29uc29sZS5sb2coJ3NpbmdsZSBtb3VudGVkJykKICAgICAgICBsZXQgc3VwcG9ydENvbmZlcmVuY2UgPSBhdmVuZ2luZWtpdC5zdGFydENvbmZlcmVuY2UgIT09IHVuZGVmaW5lZAogICAgICAgIGlmICghc3VwcG9ydENvbmZlcmVuY2UpIHsKICAgICAgICAgICAgbGV0IGhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdDsKICAgICAgICAgICAgaWYgKGhvc3QuaW5kZXhPZignd2lsZGZpcmVjaGF0LmNuJykgPT09IC0xICYmIGhvc3QuaW5kZXhPZignbG9jYWxob3N0JykgPT09IC0xKSB7CiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGljZSBvZiBDb25maWcuSUNFX1NFUlZFUlMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaWNlWzBdLmluZGV4T2YoJ3R1cm4ud2lsZGZpcmVjaGF0Lm5ldCcpID49IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8g5pi+56S66Ieq6KGM6YOo572yIHR1cm4g5o+Q56S6CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1dlYnJ0Y1RpcCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V2VicnRjVGlwID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwICogMTAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8g5b+F6aG7CiAgICAgICAgaWYgKGlzRWxlY3Ryb24oKSkgewogICAgICAgICAgICBhdmVuZ2luZWtpdC5zZXR1cCgpOwogICAgICAgIH0KICAgICAgICB0aGlzLnNldHVwU2Vzc2lvbkNhbGxiYWNrKCk7CiAgICB9LAoKICAgIGNvbXB1dGVkOiB7CiAgICAgICAgcGFydGljaXBhbnRVc2VySW5mbygpIHsKICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5wYXJ0aWNpcGFudFVzZXJJbmZvc1swXTsKICAgICAgICB9LAoKICAgICAgICBkdXJhdGlvbigpIHsKICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFRpbWVzdGFtcCA8PSAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJzAwOjAwJwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBlc2NhcGVNaWxsaXMgPSB0aGlzLmN1cnJlbnRUaW1lc3RhbXAgLSB0aGlzLnN0YXJ0VGltZXN0YW1wOwogICAgICAgICAgICByZXR1cm4gdGhpcy50aW1lc3RhbXBGb3JtYXQoZXNjYXBlTWlsbGlzKQogICAgICAgIH0KICAgIH0sCgp9Cg=="},null]}