{"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/Multi.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-vuechat/src/ui/voip/Multi.vue","mtime":1702016964388},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBhdmVuZ2luZWtpdCBmcm9tICIuLi8uLi93ZmMvYXYvaW50ZXJuYWwvZW5naW5lLm1pbiI7CmltcG9ydCBDYWxsU2Vzc2lvbkNhbGxiYWNrIGZyb20gIi4uLy4uL3dmYy9hdi9lbmdpbmUvY2FsbFNlc3Npb25DYWxsYmFjayI7CmltcG9ydCBDYWxsU3RhdGUgZnJvbSAiLi4vLi4vd2ZjL2F2L2VuZ2luZS9jYWxsU3RhdGUiOwppbXBvcnQge2lzRWxlY3Ryb259IGZyb20gIi4uLy4uL3BsYXRmb3JtIjsKaW1wb3J0IFNjcmVlbk9yV2luZG93UGlja2VyIGZyb20gIi4vU2NyZWVuT3JXaW5kb3dQaWNrZXIiOwppbXBvcnQgTXVsdGlDYWxsT25nb2luZ01lc3NhZ2VDb250ZW50IGZyb20gIi4uLy4uL3dmYy9hdi9tZXNzYWdlcy9tdWx0aUNhbGxPbmdvaW5nTWVzc2FnZUNvbnRlbnQiOwppbXBvcnQgVmlkZW9UeXBlIGZyb20gIi4uLy4uL3dmYy9hdi9lbmdpbmUvdmlkZW9UeXBlIjsKaW1wb3J0IHdmYyBmcm9tICIuLi8uLi93ZmMvY2xpZW50L3dmYyI7CmltcG9ydCBDb25maWcgZnJvbSAiLi4vLi4vY29uZmlnIjsKCmV4cG9ydCBkZWZhdWx0IHsKICAgIG5hbWU6ICdNdWx0aScsCiAgICBkYXRhKCkgewogICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHNlc3Npb246IG51bGwsCiAgICAgICAgICAgIGF1ZGlvT25seTogZmFsc2UsCiAgICAgICAgICAgIHN0YXR1czogMSwKICAgICAgICAgICAgc2VsZlVzZXJJbmZvOiBudWxsLAogICAgICAgICAgICBpbml0aWF0b3JVc2VySW5mbzogbnVsbCwKICAgICAgICAgICAgcGFydGljaXBhbnRVc2VySW5mb3M6IFtdLAogICAgICAgICAgICBncm91cE1lbWJlclVzZXJJbmZvczogW10sCgogICAgICAgICAgICBzdGFydFRpbWVzdGFtcDogMCwKICAgICAgICAgICAgY3VycmVudFRpbWVzdGFtcDogMCwKICAgICAgICAgICAgdmlkZW9JbnB1dERldmljZUluZGV4OiAwLAogICAgICAgICAgICBicm9hZGNhc3RNdWx0aUNhbGxPbmdvaW5nVGltZXI6IDAsCiAgICAgICAgICAgIGF1dG9QbGF5SW50ZXJ2YWw6IDAsCiAgICAgICAgICAgIHNob3dXZWJydGNUaXA6IGZhbHNlLAoKICAgICAgICAgICAgcmluZ0F1ZGlvOiBudWxsLAogICAgICAgIH0KICAgIH0sCiAgICBtZXRob2RzOiB7CiAgICAgICAgLy8g55So5p2l6Kej5YazIGlPUyDkuIrvvIzkuI3og73oh6rliqjmkq3mlL7pl67popgKICAgICAgICBhdXRvUGxheSgpIHsKICAgICAgICAgICAgaWYgKGlzRWxlY3Ryb24oKSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhdXRvIHBsYXknKTsKICAgICAgICAgICAgaWYgKCF0aGlzLmF1dG9QbGF5SW50ZXJ2YWwpIHsKICAgICAgICAgICAgICAgIHRoaXMuYXV0b1BsYXlJbnRlcnZhbCA9IHNldEludGVydmFsKCgpID0+IHsKICAgICAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmlkZW9zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJyk7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhbGxQbGF5aW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2aWRlbyBvZiB2aWRlb3MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWRlby5wYXVzZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxQbGF5aW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgLy8gcGFydGljaXBhbnRVc2VySW5mb3Mg5LiN5YyF5ZCr6Ieq5bexCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhbGxQbGF5aW5nICYmIHZpZGVvcy5sZW5ndGggPT09IHRoaXMucGFydGljaXBhbnRVc2VySW5mb3MubGVuZ3RoICsgMSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmF1dG9QbGF5SW50ZXJ2YWwpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRvUGxheUludGVydmFsID0gMDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdhdXRvIHBsYXksIGFsbFBsYXlpbmcnLCB2aWRlb3MubGVuZ3RoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCB2aWRlbyBvZiB2aWRlb3MpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2aWRlby5wYXVzZWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlby5wbGF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvIG5vdGhpbmcKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfSwgMTAwKTsKICAgICAgICAgICAgfQogICAgICAgIH0sCiAgICAgICAgc3dpdGNoVmlkZW9UeXBlKHVzZXJJZCwgc2NyZWVuU2hhcmluZykgewogICAgICAgICAgICBpZiAoIXRoaXMuc2Vzc2lvbikgewogICAgICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGV0IHN1YnNjcmliZXIgPSB0aGlzLnNlc3Npb24uZ2V0U3Vic2NyaWJlcih1c2VySWQsIHNjcmVlblNoYXJpbmcpOwogICAgICAgICAgICBpZiAoc3Vic2NyaWJlcikgewogICAgICAgICAgICAgICAgbGV0IGN1cnJlbnRWaWRlb1R5cGUgPSBzdWJzY3JpYmVyLmN1cnJlbnRWaWRlb1R5cGU7CiAgICAgICAgICAgICAgICBsZXQgdmlkZW9UeXBlID0gVmlkZW9UeXBlLk5PTkU7CiAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZpZGVvVHlwZSA9PT0gVmlkZW9UeXBlLk5PTkUpIHsKICAgICAgICAgICAgICAgICAgICB2aWRlb1R5cGUgPSBWaWRlb1R5cGUuQklHX1NUUkVBTTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFZpZGVvVHlwZSA9PT0gVmlkZW9UeXBlLkJJR19TVFJFQU0pIHsKICAgICAgICAgICAgICAgICAgICB2aWRlb1R5cGUgPSBWaWRlb1R5cGUuU01BTExfU1RSRUFNOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50VmlkZW9UeXBlID09PSBWaWRlb1R5cGUuU01BTExfU1RSRUFNKSB7CiAgICAgICAgICAgICAgICAgICAgdmlkZW9UeXBlID0gVmlkZW9UeXBlLk5PTkU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uc2V0UGFydGljaXBhbnRWaWRlb1R5cGUodXNlcklkLCBzY3JlZW5TaGFyaW5nLCB2aWRlb1R5cGUpOwogICAgICAgICAgICB9CiAgICAgICAgfSwKICAgICAgICBzZXR1cFNlc3Npb25DYWxsYmFjaygpIHsKICAgICAgICAgICAgbGV0IHNlc3Npb25DYWxsYmFjayA9IG5ldyBDYWxsU2Vzc2lvbkNhbGxiYWNrKCk7CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkQ2hhbmdlU3RhdGUgPSAoc3RhdGUpID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuc3RhdHVzID0gc3RhdGU7CiAgICAgICAgICAgICAgICAvLyDlk43pk4PnpLrkvovku6PnoIEKICAgICAgICAgICAgICAgIGlmIChzdGF0ZSA9PT0gQ2FsbFN0YXRlLlNUQVRVU19PVVRHT0lORykgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdzdGFydCBvdXRnb2luZyByaW5nJykKICAgICAgICAgICAgICAgICAgICB0aGlzLnJpbmdBdWRpbyA9IG5ldyBBdWRpbyhyZXF1aXJlKCJAL2Fzc2V0cy9hdWRpb3Mvb3V0Z29pbmdfY2FsbF9yaW5nLm1wMyIpKQogICAgICAgICAgICAgICAgICAgIHRoaXMucmluZ0F1ZGlvLmxvb3AgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIHRoaXMucmluZ0F1ZGlvLnBsYXkoKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUgPT09IENhbGxTdGF0ZS5TVEFUVVNfSU5DT01JTkcpIHsKICAgICAgICAgICAgICAgICAgICAvLyDnlLHkuo7mtY/op4jlmajnmoTpmZDliLbvvIx3ZWIg56uv77yM5Y+v6IO95LiN6IO96Ieq5Yqo5pKt5pS+77yB77yBIQogICAgICAgICAgICAgICAgICAgIC8vIOWPpuWklu+8jOW+ruS/oeaUtuWIsOmfs+inhumikemAmuivnemCgOivt+aXtu+8jOS5n+ayoeacieWjsOmfswogICAgICAgICAgICAgICAgICAgIC8vIHRoaXMucmluZ0F1ZGlvID0gbmV3IEF1ZGlvKHJlcXVpcmUoIkAvYXNzZXRzL2F1ZGlvcy9pbmNvbWluZ19jYWxsX3JpbmcubXAzIikpCiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5yaW5nQXVkaW8ubG9vcCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5yaW5nQXVkaW8ucGxheSgpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5yaW5nQXVkaW8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yaW5nQXVkaW8ucGF1c2UoKTsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5yaW5nQXVkaW8gPSBudWxsOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoc3RhdGUgPT09IENhbGxTdGF0ZS5TVEFUVVNfQ09OTkVDVEVEKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuc3RhcnRUaW1lc3RhbXAgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydFRpbWVzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVyID0gc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50VGltZXN0YW1wID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwMDApCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0ZSA9PT0gQ2FsbFN0YXRlLlNUQVRVU19JRExFKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudGltZXIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLnRpbWVyKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2sub25Jbml0aWFsID0gKHNlc3Npb24sIHNlbGZVc2VySW5mbywgaW5pdGlhdG9yVXNlckluZm8sIHBhcnRpY2lwYW50VXNlckluZm9zLCBncm91cE1lbWJlclVzZXJJbmZvcykgPT4gewogICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvbjsKCgogICAgICAgICAgICAgICAgdGhpcy5hdWRpb09ubHkgPSBzZXNzaW9uLmF1ZGlvT25seTsKICAgICAgICAgICAgICAgIHRoaXMuc2VsZlVzZXJJbmZvID0gc2VsZlVzZXJJbmZvOwogICAgICAgICAgICAgICAgdGhpcy5pbml0aWF0b3JVc2VySW5mbyA9IGluaXRpYXRvclVzZXJJbmZvOwogICAgICAgICAgICAgICAgLy8g5Li65LqG6YC76L6R5pu05riF5pmw77yM5Y+C5pWw5byV55So5Lyg6YCS77yM5Y+C5pWw5Lit5Lyg5YWl55qEcGFydGljaXBhbnRVc2VySW5mb3PkvJrlj5jljJbvvIzlpoLmnpznm7TmjqXkvb/nlKjnmoTor53vvIxkaWRQYXJ0aWNpcGFudEpvaW5lZOmHjOmdou+8jOWPr+WVpemDveS4jeWBmgogICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFVzZXJJbmZvcyA9IFsuLi5wYXJ0aWNpcGFudFVzZXJJbmZvc107CiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwTWVtYmVyVXNlckluZm9zID0gZ3JvdXBNZW1iZXJVc2VySW5mb3M7CgogICAgICAgICAgICAgICAgLy8gcGxzIHJlZmVyIHRvOiBodHRwczovL3Z1ZWpzLm9yZy92Mi9ndWlkZS9yZWFjdGl2aXR5Lmh0bWwKICAgICAgICAgICAgICAgIHRoaXMuJHNldCh0aGlzLnNlbGZVc2VySW5mbywgJ19zdHJlYW0nLCBudWxsKQogICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFVzZXJJbmZvcy5mb3JFYWNoKHAgPT4gdGhpcy4kc2V0KHAsICJfc3RyZWFtIiwgbnVsbCkpCiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwTWVtYmVyVXNlckluZm9zLmZvckVhY2gobSA9PiB0aGlzLiRzZXQobSwgIl9zdHJlYW0iLCBudWxsKSkKCiAgICAgICAgICAgICAgICBpZiAoc2VsZlVzZXJJbmZvLnVpZCA9PT0gaW5pdGlhdG9yVXNlckluZm8udWlkKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5icm9hZGNhc3RNdWx0aUNhbGxPbmdvaW5nVGltZXIgPSBzZXRJbnRlcnZhbCh0aGlzLmJyb2FkY2FzdE11bHRpQ2FsbE9uZ29pbmcsIDEwMDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkQ2hhbmdlTW9kZSA9IChhdWRpb09ubHkpID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuYXVkaW9Pbmx5ID0gYXVkaW9Pbmx5OwogICAgICAgICAgICB9OwoKICAgICAgICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZENyZWF0ZUxvY2FsVmlkZW9UcmFjayA9IChzdHJlYW0pID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuc2VsZlVzZXJJbmZvLl9zdHJlYW0gPSBzdHJlYW07CiAgICAgICAgICAgICAgICB0aGlzLmF1dG9QbGF5KCk7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkUmVjZWl2ZVJlbW90ZVZpZGVvVHJhY2sgPSAodXNlcklkLCBzdHJlYW0pID0+IHsKICAgICAgICAgICAgICAgIGxldCBwOwogICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnBhcnRpY2lwYW50VXNlckluZm9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgcCA9IHRoaXMucGFydGljaXBhbnRVc2VySW5mb3NbaV07CiAgICAgICAgICAgICAgICAgICAgaWYgKHAudWlkID09PSB1c2VySWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcC5fc3RyZWFtID0gc3RyZWFtOwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLmF1dG9QbGF5KCk7CiAgICAgICAgICAgIH07CgogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkUGFydGljaXBhbnRKb2luZWQgPSAodXNlcklkLCBzY3JlZW5TaGFyaW5nKSA9PiB7CiAgICAgICAgICAgICAgICBsZXQgdXNlckluZm8gPSB3ZmMuZ2V0VXNlckluZm8odXNlcklkKQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RpZFBhcnRpY2lwYW50Sm9pbmVkJywgdXNlckluZm8pCiAgICAgICAgICAgICAgICB1c2VySW5mby5fc3RyZWFtID0gbnVsbDsKICAgICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRVc2VySW5mb3MucHVzaCh1c2VySW5mbyk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHNlc3Npb25DYWxsYmFjay5kaWRQYXJ0aWNpcGFudExlZnQgPSAodXNlcklkKSA9PiB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnZGlkUGFydGljaXBhbnRMZWZ0JywgdXNlcklkLCB0aGlzLnBhcnRpY2lwYW50VXNlckluZm9zLmxlbmd0aCkKICAgICAgICAgICAgICAgIHRoaXMucGFydGljaXBhbnRVc2VySW5mb3MgPSB0aGlzLnBhcnRpY2lwYW50VXNlckluZm9zLmZpbHRlcihwID0+IHAudWlkICE9PSB1c2VySWQpOwogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RpZFBhcnRpY2lwYW50TGVmdCBkJywgdXNlcklkLCB0aGlzLnBhcnRpY2lwYW50VXNlckluZm9zLmxlbmd0aCkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZENhbGxFbmRXaXRoUmVhc29uID0gKHJlYXNvbikgPT4gewogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2NhbGxFbmRXaXRoUmVhc29uJywgcmVhc29uKQogICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmNsb3NlVm9pcFdpbmRvdygpOwogICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uID0gbnVsbDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgc2Vzc2lvbkNhbGxiYWNrLmRpZFZpZGVvTXV0ZWQgPSAodXNlcklkLCBtdXRlZCkgPT4gewogICAgICAgICAgICAgICAgdGhpcy5wYXJ0aWNpcGFudFVzZXJJbmZvcy5mb3JFYWNoKHUgPT4gewogICAgICAgICAgICAgICAgICAgIGlmICh1LnVpZCA9PT0gdXNlcklkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBjbGllbnQgPSB0aGlzLnNlc3Npb24uZ2V0U3Vic2NyaWJlcih1c2VySWQpOwogICAgICAgICAgICAgICAgICAgICAgICB1Ll9pc1ZpZGVvTXV0ZWQgPSBjbGllbnQudmlkZW9NdXRlZDsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ2RpZE11dGVTdGF0ZUNoYW5nZWQnLCBjbGllbnQudmlkZW9NdXRlZCwgY2xpZW50LmF1ZGlvTXV0ZWQpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHNlc3Npb25DYWxsYmFjay5kaWRNZWRpYUxvc3RQYWNrZXQgPSAobWVkaWEsIGxvc3RQYWNrZXQpID0+IHsKICAgICAgICAgICAgICAgIGlmIChsb3N0UGFja2V0ID4gNikgewogICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCfmgqjnmoTnvZHnu5zkuI3lpb0nKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKCiAgICAgICAgICAgIHNlc3Npb25DYWxsYmFjay5kaWRVc2VyTWVkaWFMb3N0UGFja2V0ID0gKHVzZXJJZCwgbWVkaWEsIGxvc3RQYWNrZXQsIHVwbGluaykgPT4gewogICAgICAgICAgICAgICAgLy/lpoLmnpx1cGxpbmsgdHVyZeWvueaWuee9kee7nOS4jeWlve+8jGZhbHNl5oKo55qE572R57uc5LiN5aW9CiAgICAgICAgICAgICAgICAvL+aOpeaUtuaWueS4ouWMhei2hei/hzEw5Li6572R57uc5LiN5aW9CiAgICAgICAgICAgICAgICBpZiAobG9zdFBhY2tldCA+IDEwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKHVwbGluaykgewogICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXNlckluZm9zID0gdGhpcy5wYXJ0aWNpcGFudFVzZXJJbmZvcy5maWx0ZXIodSA9PiB1LnVpZCA9PT0gdXNlcklkKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVzZXJJbmZvcyAmJiB1c2VySW5mb3MubGVuZ3RoID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2codXNlckluZm9zWzBdLmRpc3BsYXlOYW1lLCAi572R57uc5LiN5aW9Iik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygn5oKo55qE572R57uc5LiN5aW9Jyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9OwogICAgICAgICAgICBzZXNzaW9uQ2FsbGJhY2suZGlkQ2hhbmdlSW5pdGlhdG9yID0gKGluaXRpYXRvcikgPT4gewogICAgICAgICAgICAgICAgdGhpcy5pbml0aWF0b3JVc2VySW5mbyA9IHdmYy5nZXRVc2VySW5mbyhpbml0aWF0b3IpOwogICAgICAgICAgICAgICAgaWYgKCF0aGlzLmJyb2FkY2FzdE11bHRpQ2FsbE9uZ29pbmdUaW1lcikgewogICAgICAgICAgICAgICAgICAgIHRoaXMuYnJvYWRjYXN0TXVsdGlDYWxsT25nb2luZ1RpbWVyID0gc2V0SW50ZXJ2YWwodGhpcy5icm9hZGNhc3RNdWx0aUNhbGxPbmdvaW5nLCAyMDApCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGF2ZW5naW5la2l0LnNlc3Npb25DYWxsYmFjayA9IHNlc3Npb25DYWxsYmFjazsKICAgICAgICB9LAoKICAgICAgICBhbnN3ZXIoKSB7CiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5jYWxsKCk7CiAgICAgICAgfSwKCiAgICAgICAgaGFuZ3VwKCkgewogICAgICAgICAgICB0aGlzLnNlc3Npb24uaGFuZ3VwKCk7CiAgICAgICAgfSwKCiAgICAgICAgc3dpdGNoQ2FtZXJhKCkgewogICAgICAgICAgICBpZiAoIXRoaXMuc2Vzc2lvbiB8fCB0aGlzLnNlc3Npb24uaXNTY3JlZW5TaGFyaW5nKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgICAgICAvLyBUaGUgb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgZGVmYXVsdCBjYXB0dXJlIGRldmljZXMgd2lsbCBiZSBsaXN0ZWQgZmlyc3QuCiAgICAgICAgICAgIC8vIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpCiAgICAgICAgICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMuZW51bWVyYXRlRGV2aWNlcygpLnRoZW4oZGV2aWNlcyA9PiB7CiAgICAgICAgICAgICAgICBkZXZpY2VzID0gZGV2aWNlcy5maWx0ZXIoZCA9PiBkLmtpbmQgPT09ICd2aWRlb2lucHV0Jyk7CiAgICAgICAgICAgICAgICBpZiAoZGV2aWNlcy5sZW5ndGggPCAyKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3N3aXRjaENhbWVyYSBlcnJvciwgbm8gbW9yZSB2aWRlbyBpbnB1dCBkZXZpY2UnKQogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIHRoaXMudmlkZW9JbnB1dERldmljZUluZGV4Kys7CiAgICAgICAgICAgICAgICBpZiAodGhpcy52aWRlb0lucHV0RGV2aWNlSW5kZXggPj0gZGV2aWNlcy5sZW5ndGgpIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnZpZGVvSW5wdXREZXZpY2VJbmRleCA9IDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uc2V0VmlkZW9JbnB1dERldmljZUlkKGRldmljZXNbdGhpcy52aWRlb0lucHV0RGV2aWNlSW5kZXhdLmRldmljZUlkKQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3NldFZpZGVvSW5wdXREZXZpY2VJZCcsIGRldmljZXNbdGhpcy52aWRlb0lucHV0RGV2aWNlSW5kZXhdKTsKICAgICAgICAgICAgfSkKICAgICAgICB9LAoKICAgICAgICBtdXRlKCkgewogICAgICAgICAgICBsZXQgdG9NdXRlID0gdGhpcy5zZXNzaW9uLmF1ZGlvTXV0ZWQgPyBmYWxzZSA6IHRydWU7CiAgICAgICAgICAgIHRoaXMuc2VsZlVzZXJJbmZvLl9pc0F1ZGlvTXV0ZWQgPSB0b011dGU7CiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5tdXRlQXVkaW8odG9NdXRlKQogICAgICAgIH0sCgogICAgICAgIG11dGVWaWRlbygpIHsKICAgICAgICAgICAgbGV0IHRvTXV0ZSA9IHRoaXMuc2Vzc2lvbi52aWRlb011dGVkID8gZmFsc2UgOiB0cnVlOwogICAgICAgICAgICB0aGlzLnNlbGZVc2VySW5mby5faXNWaWRlb011dGVkID0gdG9NdXRlOwogICAgICAgICAgICB0aGlzLnNlc3Npb24ubXV0ZVZpZGVvKHRvTXV0ZSkKICAgICAgICB9LAoKICAgICAgICBkb3duMnZvaWNlKCkgewogICAgICAgICAgICB0aGlzLnNlc3Npb24uZG93bmdyYWRlMlZvaWNlKCk7CiAgICAgICAgfSwKCiAgICAgICAgc2NyZWVuU2hhcmUoKSB7CiAgICAgICAgICAgIGlmICh0aGlzLnNlc3Npb24uaXNTY3JlZW5TaGFyaW5nKCkpIHsKICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5zdG9wU2NyZWVuU2hhcmUoKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmIChpc0VsZWN0cm9uKCkpIHsKICAgICAgICAgICAgICAgICAgICBsZXQgYmVmb3JlQ2xvc2UgPSAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2hhdCBhIGdhbWJsZS4uLiA1MCUgY2hhbmNlIHRvIGNhbmNlbCBjbG9zaW5nCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZXZlbnQucGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnBhcmFtcy5zb3VyY2UpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzb3VyY2UgPSBldmVudC5wYXJhbXMuc291cmNlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlc2t0b3BTaGFyZU9wdGlvbnMgPSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc291cmNlSWQ6IHNvdXJjZS5pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMTI4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogMTI4MCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5IZWlnaHQ6IDcyMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6IDcyMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnN0YXJ0U2NyZWVuU2hhcmUoZGVza3RvcFNoYXJlT3B0aW9ucyk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgIHRoaXMuJG1vZGFsLnNob3coCiAgICAgICAgICAgICAgICAgICAgICAgIFNjcmVlbk9yV2luZG93UGlja2VyLAogICAgICAgICAgICAgICAgICAgICAgICB7fSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDgwMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogNjAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJ3NjcmVlbi13aW5kb3ctcGlja2VyLW1vZGFsJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrVG9DbG9zZTogZmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICdiZWZvcmUtb3Blbic6IGJlZm9yZU9wZW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmVmb3JlLWNsb3NlJzogYmVmb3JlQ2xvc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAnY2xvc2VkJzogY2xvc2VkLAogICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uc3RhcnRTY3JlZW5TaGFyZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSwKCiAgICAgICAgaW52aXRlKCkgewogICAgICAgICAgICBsZXQgc3VjY2Vzc0NCID0gdXNlcnMgPT4gewogICAgICAgICAgICAgICAgbGV0IHVzZXJJZHMgPSB1c2Vycy5tYXAodSA9PiB1LnVpZCk7CiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uaW52aXRlTmV3UGFydGljaXBhbnRzKHVzZXJJZHMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHRoaXMuJHBpY2tDb250YWN0KHsKICAgICAgICAgICAgICAgIHN1Y2Nlc3NDQiwKICAgICAgICAgICAgICAgIHVzZXJzOiB0aGlzLnNlc3Npb24uZ3JvdXBNZW1iZXJVc2VySW5mb3MsCiAgICAgICAgICAgICAgICBpbml0aWFsQ2hlY2tlZFVzZXJzOiBbLi4udGhpcy5zZXNzaW9uLnBhcnRpY2lwYW50VXNlckluZm9zLCB0aGlzLnNlc3Npb24uc2VsZlVzZXJJbmZvXSwKICAgICAgICAgICAgICAgIHVuY2hlY2thYmxlVXNlcnM6IFsuLi50aGlzLnNlc3Npb24ucGFydGljaXBhbnRVc2VySW5mb3MsIHRoaXMuc2Vzc2lvbi5zZWxmVXNlckluZm9dLAogICAgICAgICAgICAgICAgc2hvd0NhdGVnb3J5TGFiZWw6IGZhbHNlLAogICAgICAgICAgICAgICAgY29uZmlybVRpdGxlOiAn56Gu5a6aJywKICAgICAgICAgICAgfSk7CiAgICAgICAgfSwKCiAgICAgICAgdXNlck5hbWUodXNlcikgewogICAgICAgICAgICBpZiAodXNlci5ncm91cEFsaWFzKSB7CiAgICAgICAgICAgICAgICBuYW1lID0gdXNlci5ncm91cEFsaWFzOwogICAgICAgICAgICB9IGVsc2UgaWYgKHVzZXIuZnJpZW5kQWxpYXMpIHsKICAgICAgICAgICAgICAgIG5hbWUgPSB1c2VyLmZyaWVuZEFsaWFzOwogICAgICAgICAgICB9IGVsc2UgaWYgKHVzZXIuZGlzcGxheU5hbWUpIHsKICAgICAgICAgICAgICAgIG5hbWUgPSB1c2VyLmRpc3BsYXlOYW1lOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgbmFtZSA9IHVzZXIubmFtZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gbmFtZTsKICAgICAgICB9LAoKICAgICAgICB0aW1lc3RhbXBGb3JtYXQodGltZXN0YW1wKSB7CiAgICAgICAgICAgIHRpbWVzdGFtcCA9IH5+KHRpbWVzdGFtcCAvIDEwMDApOwogICAgICAgICAgICBsZXQgc3RyID0gJycKICAgICAgICAgICAgbGV0IGhvdXIgPSB+fih0aW1lc3RhbXAgLyAzNjAwKTsKICAgICAgICAgICAgc3RyID0gaG91ciA+IDAgPyAoKGhvdXIgPCAxMCA/ICIwIiA6ICIiKSArIGhvdXIgKyAnOicpIDogJyc7CiAgICAgICAgICAgIGxldCBtaW4gPSB+figodGltZXN0YW1wICUgMzYwMCkgLyA2MCk7CiAgICAgICAgICAgIHN0ciArPSAobWluIDwgMTAgPyAiMCIgOiAiIikgKyBtaW4gKyAnOicKICAgICAgICAgICAgbGV0IHNlYyA9IH5+KCh0aW1lc3RhbXAgJSA2MCkpOwogICAgICAgICAgICBzdHIgKz0gKHNlYyA8IDEwID8gIjAiIDogIiIpICsgc2VjCiAgICAgICAgICAgIHJldHVybiBzdHI7CiAgICAgICAgfSwKCiAgICAgICAgYnJvYWRjYXN0TXVsdGlDYWxsT25nb2luZygpIHsKICAgICAgICAgICAgbGV0IHBhcnRpY2lwYW50cyA9IHRoaXMucGFydGljaXBhbnRVc2VySW5mb3MubWFwKHB1ID0+IHB1LnVpZCkuZmlsdGVyKHVpZCA9PiB1aWQgIT09IHRoaXMuc2VsZlVzZXJJbmZvLnVpZCkKICAgICAgICAgICAgbGV0IG9uZ29pbmcgPSBuZXcgTXVsdGlDYWxsT25nb2luZ01lc3NhZ2VDb250ZW50KHRoaXMuc2Vzc2lvbi5jYWxsSWQsIHRoaXMuc2Vzc2lvbi5pbml0aWF0b3JJZCwgdGhpcy5zZXNzaW9uLmF1ZGlvT25seSwgcGFydGljaXBhbnRzKTsKICAgICAgICAgICAgd2ZjLnNlbmRDb252ZXJzYXRpb25NZXNzYWdlKHRoaXMuc2Vzc2lvbi5jb252ZXJzYXRpb24sIG9uZ29pbmcpOwogICAgICAgIH0KICAgIH0sCgogICAgY29tcHV0ZWQ6IHsKICAgICAgICBkdXJhdGlvbigpIHsKICAgICAgICAgICAgaWYgKHRoaXMuY3VycmVudFRpbWVzdGFtcCA8PSAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJzAwOjAwJwogICAgICAgICAgICB9CiAgICAgICAgICAgIGxldCBlc2NhcGVNaWxsaXMgPSB0aGlzLmN1cnJlbnRUaW1lc3RhbXAgLSB0aGlzLnN0YXJ0VGltZXN0YW1wOwogICAgICAgICAgICByZXR1cm4gdGhpcy50aW1lc3RhbXBGb3JtYXQoZXNjYXBlTWlsbGlzKQogICAgICAgIH0KICAgIH0sCgogICAgbW91bnRlZCgpIHsKICAgICAgICBsZXQgc3VwcG9ydENvbmZlcmVuY2UgPSBhdmVuZ2luZWtpdC5zdGFydENvbmZlcmVuY2UgIT09IHVuZGVmaW5lZAogICAgICAgIGlmICghc3VwcG9ydENvbmZlcmVuY2UpIHsKICAgICAgICAgICAgbGV0IGhvc3QgPSB3aW5kb3cubG9jYXRpb24uaG9zdDsKICAgICAgICAgICAgaWYgKGhvc3QuaW5kZXhPZignd2lsZGZpcmVjaGF0LmNuJykgPT09IC0xICYmIGhvc3QuaW5kZXhPZignbG9jYWxob3N0JykgPT09IC0xKSB7CiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGljZSBvZiBDb25maWcuSUNFX1NFUlZFUlMpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoaWNlWzBdLmluZGV4T2YoJ3R1cm4ud2lsZGZpcmVjaGF0Lm5ldCcpID49IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8g5pi+56S66Ieq6KGM6YOo572yIHR1cm4g5o+Q56S6CiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hvd1dlYnJ0Y1RpcCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93V2VicnRjVGlwID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIH0sIDEwICogMTAwMCkKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChpc0VsZWN0cm9uKCkpIHsKICAgICAgICAgICAgYXZlbmdpbmVraXQuc2V0dXAoKTsKICAgICAgICB9CiAgICAgICAgdGhpcy5zZXR1cFNlc3Npb25DYWxsYmFjaygpOwogICAgfSwKCiAgICBkZXN0cm95ZWQoKSB7CiAgICAgICAgLy8gcmVzZXQKICAgICAgICB0aGlzLiRzZXQodGhpcy5zZWxmVXNlckluZm8sICdfc3RyZWFtJywgbnVsbCkKICAgICAgICB0aGlzLmdyb3VwTWVtYmVyVXNlckluZm9zLmZvckVhY2gobSA9PiB0aGlzLiRzZXQobSwgIl9zdHJlYW0iLCBudWxsKSkKICAgICAgICBpZiAodGhpcy5icm9hZGNhc3RNdWx0aUNhbGxPbmdvaW5nVGltZXIpIHsKICAgICAgICAgICAgY2xlYXJJbnRlcnZhbCh0aGlzLmJyb2FkY2FzdE11bHRpQ2FsbE9uZ29pbmdUaW1lcik7CiAgICAgICAgfQogICAgfQp9Cg=="},null]}