{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-staff/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-staff/src/views/Role/index.vue?vue&type=script&lang=js","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-staff/src/views/Role/index.vue","mtime":1725944942464},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-staff/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-staff/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-staff/node_modules/babel-loader/lib/index.js","mtime":456789000000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-staff/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-staff/node_modules/vue-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:CmltcG9ydCB7CiAgZ2V0Um9sZUxpc3QsCiAgZ2V0Um9sZVVzZXJMaXN0LAogIGNvbW1vbkZpbGVVcGxvYWRBcGksCiAgU3RhZmZEZXBhcnRtZW50TGlzdEFwaSwKICBiYWN0aFNldEVtcGxveWVlcywKICBkZWxldGVSb2xlVXNlciwKICBiYXRjaEltcG9ydFJvbGUsCiAgYmF0Y2hEZWxldGVVc2VyLAogIGRvd25Mb2FkUm9sZVRwLAogIFVzZXJEZXB0TGlzdEFwaSwKfSBmcm9tICJAL2FwaS9zdGFmZkFwaS5qcyI7CmltcG9ydCBVc2VyRGVwdERpYWxvZyBmcm9tICIuL2NvbXBvbmVudHMvVXNlckRlcHREaWFsb2cudnVlIjsKaW1wb3J0IFVzZXJBdXRoRGlhbG9nIGZyb20gIi4uL0F1dGhMaXN0VjIvY29tcG9uZW50cy9Vc2VyQXV0aERpYWxvZy52dWUiOwoKaW1wb3J0IERldGFpbCBmcm9tICIuL2NvbXBvbmVudHMvRGV0YWlsLnZ1ZSI7CgpleHBvcnQgZGVmYXVsdCB7CiAgZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGlucHV0Um9sZVZiOiAiIiwKICAgICAgaW5wdXRjaG9vc2VWYjogIiIsCiAgICAgIGNvdW50OiAxLAogICAgICBjaG9vc2VWYjogZmFsc2UsCiAgICAgIHJvbGVPck1lYmVyRmxhZzogdHJ1ZSAvKiDlr7zlhaXmiJDlkZjmiJbop5LoibIgKi8sCiAgICAgIHVwbG9hZGxvYWRpbmc6IGZhbHNlLAogICAgICBiYXRjaEltcG9ydFZiOiBmYWxzZSwKICAgICAgYmF0Y2hEZWxldGVWYjogZmFsc2UsCiAgICAgIGxlZnRMaXN0OiBbXSwKCiAgICAgIGV4cGFuZFJvdzogW10sCiAgICAgIHRhYmxlRGF0YTogW10sCiAgICAgIG11bHRpcGxlU2VsZWN0aW9uOiBbXSwgLy/lhajpgInliJfooagKICAgICAgdGFibGVDb2x1bW46IFsKICAgICAgICB7CiAgICAgICAgICBwcm9wOiAidXNlck5hbWUiLAogICAgICAgICAgbGFiZWw6IGDlp5PlkI1gLAogICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgIHByb3A6ICJtb2JpbGUiLAogICAgICAgICAgbGFiZWw6ICLmiYvmnLrlj7ciLAogICAgICAgICAgYWxpZ246ICJjZW50ZXIiLAogICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICB9LAoKICAgICAgICB7CiAgICAgICAgICBwcm9wOiAiZGVwYXJ0TmFtZSIsCiAgICAgICAgICBsYWJlbDogYOaJgOWcqOmDqOmXqGAsCiAgICAgICAgICBhbGlnbjogImNlbnRlciIsCiAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgIH0sCgogICAgICAgIHsKICAgICAgICAgIHByb3A6ICJvY2N1cGF0aW9uVHlwZSIsCiAgICAgICAgICBsYWJlbDogYOiBjOS4muexu+Wei2AsCiAgICAgICAgICBhbGlnbjogImNlbnRlciIsCiAgICAgICAgICBzaG93OiB0cnVlLAogICAgICAgIH0sCiAgICAgICAgLy8gewogICAgICAgIC8vICAgcHJvcDogInRvdGFsTWVtYmVyIiwKICAgICAgICAvLyAgIGxhYmVsOiBg5bqU55So5p2D6ZmQYCwKICAgICAgICAvLyAgIHdpZHRoOiAiMjAwIiwKICAgICAgICAvLyAgIGFsaWduOiAiY2VudGVyIiwKICAgICAgICAvLyAgIHNob3c6IHRydWUsCiAgICAgICAgLy8gfSwKICAgICAgICB7CiAgICAgICAgICBwcm9wOiAiYWRkUm9sZVRpbWUiLAogICAgICAgICAgbGFiZWw6IGDmt7vliqDml7bpl7RgLAogICAgICAgICAgYWxpZ246ICJjZW50ZXIiLAogICAgICAgICAgc2hvdzogdHJ1ZSwKICAgICAgICB9LAogICAgICBdLAogICAgICBzaG93ZGlhbG9nOiBmYWxzZSwKICAgICAgc2hvd2RpYWxvZ0ltcG9ydDogZmFsc2UsCiAgICAgIHJvd09uZToge30sCgogICAgICBpc0FsbFNlbGVjdDogZmFsc2UsIC8v5piv5ZCm5YWo6YCJLAoKICAgICAgdHlwZTogMCwKICAgICAgcGFyYW1zOiB7CiAgICAgICAgLy/mkJzntKLmnaHku7YKICAgICAgICBwYWdlSW5kZXg6IDEsCiAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgIGtleXdvcmQ6ICIiLAogICAgICAgIHJvbGVJZDogW10sCiAgICAgIH0sCiAgICAgIHJvbGVNYWluTGlzdG11bHRpcGxlU2VsZWN0aW9uOiBbXSwKICAgICAgb3JnYW5pemF0aW9uSWQ6IGxvY2FsU3RvcmFnZS5kb21haW5JZCwKICAgICAgYWN0aXZlUm9sZToge30sCgogICAgICBkcFRyZWVEYXRhOiBbXSwKICAgICAgbG9hZGluZ2NoZWNrZWREYXRhOiBmYWxzZSwKICAgICAgY2hvb3NlRGF0YTogW10sCiAgICAgIHNob3dkaWFsb2dVc2VyOiBmYWxzZSwKICAgIH07CiAgfSwKICBjb21wb25lbnRzOiB7CiAgICBEZXRhaWwsCiAgICBVc2VyRGVwdERpYWxvZywKICAgIFVzZXJBdXRoRGlhbG9nCiAgfSwKICBtb3VudGVkKCkgewogICAgdGhpcy5zZWFyY2goKTsgLy/ooajmoLzliJfooagKICB9LAoKICB3YXRjaDogewogICAgaW5wdXRjaG9vc2VWYih2YWwpIHsKICAgICAgdGhpcy4kcmVmcy50cmVlLmZpbHRlcih2YWwpOwogICAgfSwKICB9LAogIG1ldGhvZHM6IHsKICAgIGRvd25sb2FkVGVtcCgpIHsKICAgICAgZG93bkxvYWRSb2xlVHAodGhpcy5vcmdhbml6YXRpb25JZCkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICBjb25zdCBjb250ZW50ID0gcmVzcG9uc2U7CiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtjb250ZW50XSk7CiAgICAgICAgY29uc3QgZmlsZU5hbWUgPSBg5a+85YWl5oiQ5ZGY5qih5p2/Lnhsc2A7CiAgICAgICAgaWYgKCJkb3dubG9hZCIgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpKSB7CiAgICAgICAgICAvLyDpnZ5JReS4i+i9vQogICAgICAgICAgY29uc3QgZWxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CiAgICAgICAgICBlbGluay5kb3dubG9hZCA9IGZpbGVOYW1lOwogICAgICAgICAgZWxpbmsuc3R5bGUuZGlzcGxheSA9ICJub25lIjsKICAgICAgICAgIGVsaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpOwogICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGluayk7CiAgICAgICAgICBlbGluay5jbGljaygpOwogICAgICAgICAgVVJMLnJldm9rZU9iamVjdFVSTChlbGluay5ocmVmKTsgLy8g6YeK5pS+VVJMIOWvueixoQogICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGluayk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIElFMTAr5LiL6L29CiAgICAgICAgICBuYXZpZ2F0b3IubXNTYXZlQmxvYihibG9iLCBmaWxlTmFtZSk7CiAgICAgICAgfQogICAgICB9KTsKCiAgICAgIC8vCiAgICB9LAogICAgZmlsdGVyQ2hvb3NlRGF0YShkYXRhID0gW10pIHsKICAgICAgbGV0IHJlc0FyciA9IFtdOwogICAgICBsZXQgcmVzSUQgPSBuZXcgU2V0KHRoaXMuY2hvb3NlRGF0YS5tYXAoKGl0ZW0pID0+IGl0ZW0uaWQpKTsKICAgICAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7CiAgICAgICAgaWYgKCFyZXNJRC5oYXMoaXRlbS5pZCkpIHsKICAgICAgICAgIHJlc0Fyci5wdXNoKGl0ZW0pOwogICAgICAgIH0KICAgICAgICByZXNJRC5hZGQoaXRlbS5pZCk7CiAgICAgIH0pOwogICAgICBpZiAocmVzQXJyLmxlbmd0aCkgewogICAgICAgIHRoaXMuY2hvb3NlRGF0YSA9IHRoaXMuY2hvb3NlRGF0YS5jb25jYXQocmVzQXJyKTsKICAgICAgfQogICAgfSwKICAgIGZpbHRlck5vZGUodmFsdWUsIGRhdGEpIHsKICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIHRydWU7CiAgICAgIHJldHVybiBkYXRhLm5hbWUuaW5kZXhPZih2YWx1ZSkgIT09IC0xOwogICAgfSwKICAgIC8v5o6S5bqPCiAgICBzb3J0Um9sZSgpIHsKICAgICAgaWYgKHRoaXMubGVmdExpc3QubGVuZ3RoID4gMSkgewogICAgICAgIGlmICh0aGlzLmxlZnRMaXN0WzBdLnNlcSA+PSB0aGlzLmxlZnRMaXN0WzFdLnNlcSkgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCLlt7LmjInmjpLluo/lgLzljYfluo/mjpLliJciKTsKICAgICAgICAgIHRoaXMubGVmdExpc3Quc29ydCgoYSwgYikgPT4gewogICAgICAgICAgICByZXR1cm4gYS5zZXEgLSBiLnNlcTsKICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuW3suaMieaOkuW6j+WAvOmZjeW6j+aOkuWIlyIpOwogICAgICAgICAgdGhpcy5sZWZ0TGlzdC5zb3J0KChhLCBiKSA9PiB7CiAgICAgICAgICAgIHJldHVybiBiLnNlcSAtIGEuc2VxOwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgc2V0UHQobGlzdCl7CgogICAgICB0aGlzLiRyZWZzLnVzZXJhdXRoZGlhbG9nLm9wZW4obGlzdCwgJ3NpbmdsZScsdHJ1ZSk7CiAgICB9LAogICAgc3VyZUFkZCgpIHsKICAgICAgYmFjdGhTZXRFbXBsb3llZXMoCiAgICAgICAgewogICAgICAgICAgZW1wbG95ZWVJZExpc3Q6IHRoaXMuY2hvb3NlRGF0YS5tYXAoKGUpID0+IGUuaWQpLAogICAgICAgICAgcm9sZUlkTGlzdDogW3RoaXMuYWN0aXZlUm9sZS5pZF0sCiAgICAgICAgfSwKICAgICAgICB0aGlzLm9yZ2FuaXphdGlvbklkCiAgICAgICkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IDIwMCkgewogICAgICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCLmt7vliqDmiJDlip8iKTsKICAgICAgICAgIHRoaXMuY2hvb3NlVmIgPSBmYWxzZTsKICAgICAgICAgIHRoaXMuZ2V0Um9sZVVzZXJMaXN0KHRoaXMuYWN0aXZlUm9sZSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICBkZWxldGVBbGxUYWcoKSB7CiAgICAgIHRoaXMuY2hvb3NlRGF0YSA9IFtdOwogICAgfSwKICAgIGRlbGV0ZVRhZyh0YWdJbmRleCkgewogICAgICB0aGlzLmNob29zZURhdGEuc3BsaWNlKHRoaXMuY2hvb3NlRGF0YS5pbmRleE9mKHRhZ0luZGV4KSwgMSk7CiAgICB9LAoKICAgIGdldE1lYmVyTGlzdCh7IGRhdGEgfSkgewogICAgICAvL+eCueWHu+mDqOmXqOaIkOWRmOaVsOW8ueeqlwogICAgICB0aGlzLnNob3dkaWFsb2dVc2VyID0gdHJ1ZTsKICAgICAgdGhpcy4kcmVmcy5Vc2VycG9wQ2hpbGRyZW4uZ2V0VGFibGVSb3coZGF0YSwgMCk7CiAgICB9LAogICAgc29ydFRhYmxlRGF0YShhcnIpIHsKICAgICAgLy/pgJLlvZLmjpLluo8KICAgICAgaWYgKGFyci5sZW5ndGgpIHsKICAgICAgICBhcnIuZm9yRWFjaCgoaXRlbSkgPT4gewogICAgICAgICAgaXRlbS5kaXNwbGF5T3JkZXJOdW1iZXIgPSBpdGVtLmRpc3BsYXlPcmRlcjsKICAgICAgICAgIGxldCBhbGxvd2VkRGVwYXJ0c1N0ciA9IFtdOwogICAgICAgICAgaWYgKGl0ZW0uYWxsb3dlZERlcGFydHMgJiYgaXRlbS5hbGxvd2VkRGVwYXJ0cy5sZW5ndGgpIHsKICAgICAgICAgICAgaXRlbS5hbGxvd2VkRGVwYXJ0cy5mb3JFYWNoKChpdHMpID0+IHsKICAgICAgICAgICAgICBhbGxvd2VkRGVwYXJ0c1N0ci5wdXNoKGl0cy5uYW1lKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGl0ZW0uYWxsb3dlZERlcGFydHNTdHIgPSBhbGxvd2VkRGVwYXJ0c1N0ci5qb2luKCIsIik7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoaXRlbS5jaGlsZHJlbi5sZW5ndGgpIHsKICAgICAgICAgICAgdGhpcy5zb3J0VGFibGVEYXRhKGl0ZW0uY2hpbGRyZW4pOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9CiAgICB9LAoKICAgIGFzeW5jIGdldERlcGFydG1lbnRMaXN0KCkgewogICAgICB0aGlzLmNob29zZURhdGEgPSBbXTsKICAgICAgaWYgKHRoaXMuZHBUcmVlRGF0YS5sZW5ndGgpIHJldHVybiAodGhpcy5jaG9vc2VWYiA9IHRydWUpOwogICAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IFN0YWZmRGVwYXJ0bWVudExpc3RBcGkoewogICAgICAgIGRvbWFpbklkOiBsb2NhbFN0b3JhZ2UuZG9tYWluSWQsCiAgICAgIH0pOwoKICAgICAgdGhpcy5zb3J0VGFibGVEYXRhKGRhdGEpOwogICAgICB0aGlzLmRwVHJlZURhdGEgPSBkYXRhOwogICAgICB0aGlzLmNob29zZVZiID0gdHJ1ZTsKICAgIH0sCgogICAgYmF0Y2hSZW1vdmVNZWJlcigpIHsKICAgICAgaWYgKCF0aGlzLm11bHRpcGxlU2VsZWN0aW9uLmxlbmd0aCkgewogICAgICAgIHJldHVybiB0aGlzLiRtZXNzYWdlLmVycm9yKCLor7fpgInmi6nopoHliKDpmaTnmoTmiJDlkZgiKTsKICAgICAgfQogICAgICB0aGlzLiRjb25maXJtKAogICAgICAgIGA8ZGl2PgogICAgICAgICAgPGRpdiBzdHlsZT0nY29sb3I6cmVkO2ZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxOHB4O21hcmdpbi1ib3R0b206OHB4Oyc+5rOo5oSPPC9kaXY+CiAgICAgICAgICA8ZGl2ID4KICAgICAgICAgIOWIoOmZpOS4uuS4jeWPr+mAhuaTjeS9nO+8jOiiq+enu+mZpOeahOaIkOWRmOWwhuS8muiiq+enu+mZpOWvueW6lOadg+mZkOOAgjwvZGl2PgoKICAgICAgICAgIAogICAgICAgICA8L2Rpdj5gLAogICAgICAgICLmj5DnpLoiLAogICAgICAgIHsKICAgICAgICAgIGRhbmdlcm91c2x5VXNlSFRNTFN0cmluZzogdHJ1ZSwKICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6a5Yig6ZmkIiwKICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgICAgY29uZmlybUJ1dHRvbkNsYXNzOiAiZWwtYnV0dG9uLS1kYW5nZXIiLAogICAgICAgICAgdHlwZTogIndhcm5pbmciLAogICAgICAgIH0KICAgICAgKQogICAgICAgIC50aGVuKCgpID0+IHsKICAgICAgICAgIGJhdGNoRGVsZXRlVXNlcigKICAgICAgICAgICAgewogICAgICAgICAgICAgIGVtcGxveWVlSWRMaXN0OiB0aGlzLm11bHRpcGxlU2VsZWN0aW9uLm1hcCgoZSkgPT4gZS5lbXBsb3llZUlkKSwKICAgICAgICAgICAgICByb2xlSWQ6IHRoaXMuYWN0aXZlUm9sZS5pZCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgdGhpcy5vcmdhbml6YXRpb25JZAogICAgICAgICAgKS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09IDIwMCkgewogICAgICAgICAgICAgIHRoaXMuZ2V0Um9sZVVzZXJMaXN0KHRoaXMuYWN0aXZlUm9sZSk7IC8v6KGo5qC85YiX6KGoCiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0pCiAgICAgICAgLmNhdGNoKCgpID0+IHsKICAgICAgICAgIC8vIHRoaXMucmFkaW8gPSAiIjsgLy/muIXnqbrpgInkuK0KICAgICAgICB9KTsKICAgIH0sCiAgICBiYXRjaEltcG9ydFZiQWN0aW9uKHYpIHsKICAgICAgdGhpcy5yb2xlT3JNZWJlckZsYWcgPSB2OwogICAgICB0aGlzLmJhdGNoSW1wb3J0VmIgPSB0cnVlOwogICAgfSwKICAgIHN1cmVEZWxldGUoKSB7CiAgICAgIHRoaXMuYmF0Y2hEZWxldGVWYiA9IGZhbHNlOwogICAgfSwKICAgIGJlZm9yZVVwbG9hZChmaWxlKSB7CiAgICAgIGlmIChmaWxlLnNpemUgLyAxMDI0IC8gMTAyNCA+IDUpIHsKICAgICAgICByZXR1cm4gdGhpcy4kbWVzc2FnZS5lcnJvcigi5LiK5Lyg5paH5Lu25LiN6IO96LaF6L+HNU1CISIpOwogICAgICB9CiAgICAgIHJldHVybiB0cnVlOwogICAgfSwKICAgIHVwbG9hZEltZyhlKSB7CiAgICAgIHRoaXMudXBsb2FkbG9hZGluZyA9IHRydWU7CiAgICAgIC8v5paH5Lu25LiK5LygCiAgICAgIGlmIChfX25ldHdvcmtfXykgewogICAgICAgIHRoaXMub2JzRmlsZShlKTsgLy9vYnPmlofku7bkuIrkvKAKICAgICAgICByZXR1cm47CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5JbkZpbGVVcGxvYWQoZSk7IC8v5YaF572R5paH5Lu25LiK5LygCiAgICAgIH0KICAgIH0sCiAgICBmaW5hbFVwbG9hZChwYXRoKSB7CiAgICAgIGJhdGNoSW1wb3J0Um9sZSh7IHBhdGggfSwgdGhpcy5vcmdhbml6YXRpb25JZCwgdGhpcy5hY3RpdmVSb2xlLmlkKQogICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgaWYgKHJlc3BvbnNlKSB7CiAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSByZXNwb25zZTsKICAgICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtjb250ZW50XSk7CiAgICAgICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYOaJuemHj+WvvOWFpeaIkOWRmOe7k+aenC54bHN4YDsKICAgICAgICAgICAgaWYgKCJkb3dubG9hZCIgaW4gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpKSB7CiAgICAgICAgICAgICAgLy8g6Z2eSUXkuIvovb0KICAgICAgICAgICAgICBjb25zdCBlbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgICAgICAgICAgICBlbGluay5kb3dubG9hZCA9IGZpbGVOYW1lOwogICAgICAgICAgICAgIGVsaW5rLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CiAgICAgICAgICAgICAgZWxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7CiAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGluayk7CiAgICAgICAgICAgICAgdGhpcy4kbWVzc2FnZS5pbmZvKCLlr7zlhaXnu5PmnpzvvIzor7fmn6XpmIXmibnph4/lr7zlhaXmiJDlkZjnu5Pmnpzmlofku7YiKTsKICAgICAgICAgICAgICBlbGluay5jbGljaygpOwogICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwoZWxpbmsuaHJlZik7IC8vIOmHiuaUvlVSTCDlr7nosaEKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAvLyBJRTEwK+S4i+i9vQogICAgICAgICAgICAgIG5hdmlnYXRvci5tc1NhdmVCbG9iKGJsb2IsIGZpbGVOYW1lKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aGlzLmJhdGNoSW1wb3J0VmIgPSBmYWxzZTsKICAgICAgICAgIH0KICAgICAgICB9KQogICAgICAgIC5maW5hbGx5KCgpID0+IHsKICAgICAgICAgIHRoaXMudXBsb2FkbG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgdGhpcy4kcmVmcy51cGxvYWQuY2xlYXJGaWxlcygpOwogICAgICAgICAgdGhpcy5nZXRSb2xlVXNlckxpc3QodGhpcy5hY3RpdmVSb2xlKTsKICAgICAgICB9KTsKICAgIH0sCiAgICBvYnNGaWxlKGUpIHsKICAgICAgLy9vYnPmlofku7bkuIrkvKAKICAgICAgY29uc29sZS5sb2coZSk7CiAgICAgIHZhciB0aGF0ID0gdGhpczsKICAgICAgdmFyIGRvbWFpbklkID0gdGhpcy4kcm91dGUucXVlcnkuZG9tYWluSWQgfHwgImRlZmF1bHQiOyAvL+S/neWtmOacrOWcsOS8geS4mmlkCiAgICAgIC8vIHZhciBvYmplY3RLZXk9InVwbG9hZHMvIitkb21haW5JZCsiLyIrbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpKyIvIituZXcgRGF0ZSgpLmdldFRpbWUoKStlLmZpbGUubmFtZQogICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKICAgICAgbGV0IHkgPSBub3cuZ2V0RnVsbFllYXIoKTsKICAgICAgbGV0IG0gPQogICAgICAgIG5vdy5nZXRNb250aCgpICsgMSA8IDEwCiAgICAgICAgICA/ICIwIiArIChub3cuZ2V0TW9udGgoKSArIDEpCiAgICAgICAgICA6IG5vdy5nZXRNb250aCgpICsgMTsKICAgICAgbGV0IGQgPSBub3cuZ2V0RGF0ZSgpIDwgMTAgPyAiMCIgKyBub3cuZ2V0RGF0ZSgpIDogbm93LmdldERhdGUoKTsKICAgICAgbGV0IG1kID0gbSArICItIiArIGQ7CiAgICAgIHZhciBvYmplY3RLZXkgPSBgdXBsb2Fkcy8ke3l9LyR7bWR9LyR7ZG9tYWluSWR9LyR7bm93LmdldFRpbWUoKX0vJHsKICAgICAgICBlLmZpbGUubmFtZQogICAgICB9YDsKCiAgICAgIHZhciBvYnMgPSBuZXcgT2JzQ2xpZW50KHsKICAgICAgICBhY2Nlc3Nfa2V5X2lkOiBhaywKICAgICAgICBzZWNyZXRfYWNjZXNzX2tleTogc2ssCiAgICAgICAgc2VydmVyOiB1cmxzZXJ2ZXIsCiAgICAgICAgdGltZW91dDogNjAgKiA1LAogICAgICB9KTsKICAgICAgb2JzCiAgICAgICAgLnB1dE9iamVjdCh7CiAgICAgICAgICBCdWNrZXQ6IEJ1Y2tldE5hbWUsCiAgICAgICAgICBLZXk6IG9iamVjdEtleSwKICAgICAgICAgIFNvdXJjZUZpbGU6IGUuZmlsZSwgLy/ojrflj5ZmaWxl5paH5Lu2CiAgICAgICAgfSkKICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzdWx0KSB7CiAgICAgICAgICBpZiAocmVzdWx0LkNvbW1vbk1zZy5TdGF0dXMgPCAzMDApIHsKICAgICAgICAgICAgY29uc29sZS5sb2coIkNyZWF0ZSBvYmplY3Q6IiArIG9iamVjdEtleSArICIgc3VjY2Vzc2Z1bGx5IVxuIik7CiAgICAgICAgICAgIHZhciBodHRwdXJsID0gYGh0dHBzOi8vJHtCdWNrZXROYW1lfS4ke3VybHNlcnZlcn0vJHtvYmplY3RLZXl9YDsKICAgICAgICAgICAgaHR0cHVybCA9IGNvbnZlcnRDZG5QYXRoKGh0dHB1cmwpOwogICAgICAgICAgICB0aGF0LmZpbmFsVXBsb2FkKGh0dHB1cmwpOwoKICAgICAgICAgICAgLy8gdGhhdC5maWxlTGlzdD1be25hbWU6ZS5maWxlLm5hbWUsdXJsOmh0dHB1cmx9XQogICAgICAgICAgfQogICAgICAgIH0pOwogICAgfSwKICAgIEluRmlsZVVwbG9hZChlKSB7CiAgICAgIHRoaXMudXBsb2FkbG9hZGluZyA9IHRydWU7CiAgICAgIGxldCBmZCA9IG5ldyBGb3JtRGF0YSgpOwogICAgICBmZC5hcHBlbmQoImZpbGUiLCBlLmZpbGUpOwoKICAgICAgY29tbW9uRmlsZVVwbG9hZEFwaShmZCkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICBsZXQgYmxvYlJlYWRlciA9IG5ldyBSZXNwb25zZShyZXNwb25zZSkuanNvbigpOwogICAgICAgIGJsb2JSZWFkZXIudGhlbigocmVzKSA9PiB7CiAgICAgICAgICBpZiAocmVzLmRhdGEpIHsKICAgICAgICAgICAgdGhpcy5maW5hbFVwbG9hZChyZXMuZGF0YSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKCiAgICBiYXRjaEQoKSB7CiAgICAgIC8qIOaJuemHj+WIoOmZpCAqLwogICAgfSwKICAgIGJhdGNoSSgpIHsKICAgICAgLyog5om56YeP5a+85YWlICovCiAgICB9LAogICAgc2VhcmNoKCkgewogICAgICB0aGlzLmFjdGl2ZVJvbGUgPSB7fTsKICAgICAgdGhpcy50YWJsZURhdGFsaXN0KCk7CiAgICAgIC8v5p+l6K+iCiAgICB9LAogICAgdGFibGVEYXRhbGlzdCgpIHsKICAgICAgLy/ooajmoLzliJfooagKICAgICAgbGV0IG9iaiA9IHsgZW1wbG95ZWVJZDogIiIsIHJvbGVOYW1lOiB0aGlzLmlucHV0Um9sZVZiIH07CiAgICAgIGdldFJvbGVMaXN0KG9iaiwgdGhpcy5vcmdhbml6YXRpb25JZCkudGhlbigocmVzcG9uc2UpID0+IHsKICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNwb25zZS5kYXRhKSAmJiByZXNwb25zZS5kYXRhWzBdKSB7CiAgICAgICAgICB0aGlzLmxlZnRMaXN0ID0gcmVzcG9uc2UuZGF0YTsKCiAgICAgICAgICB0aGlzLmdldFJvbGVVc2VyTGlzdChyZXNwb25zZS5kYXRhWzBdKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICBnZXRSb2xlVXNlckxpc3Qocm9sZSkgewogICAgICBpZiAocm9sZSkgewogICAgICAgIHRoaXMuYWN0aXZlUm9sZSA9IHJvbGU7CiAgICAgICAgdGhpcy5wYXJhbXMgPSB7IC4uLnRoaXMucGFyYW1zLCByb2xlSWQ6IHJvbGUuaWQgfTsKICAgICAgICBnZXRSb2xlVXNlckxpc3QodGhpcy5wYXJhbXMsIHRoaXMub3JnYW5pemF0aW9uSWQpLnRoZW4oKHsgZGF0YSB9KSA9PiB7CiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhLmRhdGEpKSB7CiAgICAgICAgICAgIHRoaXMudGFibGVEYXRhID0gZGF0YS5kYXRhOwogICAgICAgICAgICB0aGlzLnBhcmFtcyA9IHsgLi4udGhpcy5wYXJhbXMsIHRvdGFsOiBkYXRhLnRvdGFsIH07CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICBoYW5kbGVDdXJyZW50Q2hhbmdlKHZhbCkgewogICAgICB0aGlzLnBhcmFtcy5wYWdlSW5kZXggPSB2YWw7CiAgICAgIHRoaXMuZ2V0Um9sZVVzZXJMaXN0KHRoaXMuYWN0aXZlUm9sZSk7CiAgICB9LAogICAgaGFuZGxlU2l6ZUNoYW5nZSh2YWwpIHsKICAgICAgLy/liIfmjaLmr4/pobXmnaHmlbAKICAgICAgdGhpcy5wYXJhbXMucGFnZUluZGV4ID0gMTsgLy/ph43nva7nrKzkuIDpobUKICAgICAgdGhpcy5wYXJhbXMucGFnZVNpemUgPSB2YWw7CiAgICAgIHRoaXMuZ2V0Um9sZVVzZXJMaXN0KHRoaXMuYWN0aXZlUm9sZSk7CiAgICB9LAogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkgewogICAgICAvL+mAieS4reWFqOmAiQogICAgICBjb25zb2xlLmxvZyh2YWwpOwogICAgICB0aGlzLm11bHRpcGxlU2VsZWN0aW9uID0gdmFsOwogICAgfSwKICAgIGhhbmRsZVNlbGVjdGlvbkFsbENoYW5nZShzZWxlY3Rpb24sIGZpcnN0KSB7CiAgICAgIC8v5YWo6YCJCiAgICAgIGlmICghZmlyc3QpIHsKICAgICAgICB0aGlzLmlzQWxsU2VsZWN0ID0gIXRoaXMuaXNBbGxTZWxlY3Q7CiAgICAgIH0KICAgICAgc2VsZWN0aW9uLm1hcCgoZWwpID0+IHsKICAgICAgICBpZiAoZWwuY2hpbGRyZW4pIHsKICAgICAgICAgIGVsLmNoaWxkcmVuLm1hcCgoaikgPT4gewogICAgICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdGlvbihqLCB0aGlzLmlzQWxsU2VsZWN0KTsKICAgICAgICAgIH0pOwogICAgICAgICAgaWYgKGVsLmNoaWxkcmVuLmxlbmd0aCA+IDApIHsKICAgICAgICAgICAgdGhpcy5oYW5kbGVTZWxlY3Rpb25BbGxDaGFuZ2UoZWwuY2hpbGRyZW4sIHRydWUpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAoKICAgIHJvbGVNYWluTGlzdGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2YWwpIHsKICAgICAgLy/pgInkuK3lhajpgIkKICAgICAgY29uc29sZS5sb2codmFsKTsKICAgICAgdGhpcy5yb2xlTWFpbkxpc3RtdWx0aXBsZVNlbGVjdGlvbiA9IHZhbDsKICAgIH0sCgogICAgcm9sZU1haW5MaXN0aGFuZGxlU2VsZWN0aW9uQWxsQ2hhbmdlKHZhbCkgewogICAgICAvL+mAieS4reWFqOmAiQogICAgICBjb25zb2xlLmxvZyh2YWwpOwogICAgICB0aGlzLnJvbGVNYWluTGlzdG11bHRpcGxlU2VsZWN0aW9uID0gdmFsOwogICAgfSwKICAgIHRvZ2dsZVNlbGVjdGlvbihyb3csIHNlbGVjdCkgewogICAgICAvL+WFqOmAiemAieS4reS4juWPlua2iOmAieS4rQogICAgICBpZiAoc2VsZWN0KSB7CiAgICAgICAgdGhpcy4kcmVmcy5kaXN0cmljdFRhYmxlLnRvZ2dsZVJvd1NlbGVjdGlvbihyb3csIHNlbGVjdCk7IC8v5YWo6YCJ6YCJ5LitCiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy4kcmVmcy5kaXN0cmljdFRhYmxlLmNsZWFyU2VsZWN0aW9uKCk7IC8v5Y+W5raI6YCJ5LitCiAgICAgIH0KICAgIH0sCiAgICBwYXRjaERlbCgpIHt9LAoKICAgIGVkaXREZXB0KHJvdywgdHlwZSkgewogICAgICB0aGlzLnR5cGUgPSB0eXBlOwogICAgICAvL+e8lui+kQogICAgICB0aGlzLnJvd09uZSA9IHsgLi4ucm93IH07CiAgICAgIHRoaXMuc2hvd2RpYWxvZ0ltcG9ydCA9IHRydWU7CiAgICB9LAogICAgZGVsRGVwdChyb3cpIHsKICAgICAgY29uc29sZS5sb2codGhpcy5yb2xlTWFpbkxpc3RtdWx0aXBsZVNlbGVjdGlvbik7CiAgICAgIC8v5Yig6ZmkCiAgICAgIC8v5Yig6Zmk6YCJ5Lit6KGo5qC85pWw5o2uCiAgICAgIC8v5b2T5pyJcm9355qE5pe25YCZ5bCx5piv5Y2V5p2hIOayoeacieeahOaXtuWAmeWwseaYr+aJuemHj+WIoOmZpAogICAgICBsZXQgcm93cyA9IHJvdyA/IFtyb3ddIDogdGhpcy5yb2xlTWFpbkxpc3RtdWx0aXBsZVNlbGVjdGlvbjsKCiAgICAgIGNvbnN0IGlkTGlzdCA9IHJvd3MubWFwKChlKSA9PiBlLmlkKTsKICAgICAgY29uc3QgbmFtZUxpc3QgPSByb3dzLm1hcCgoZSkgPT4gZS5yb2xlTmFtZSk7CgogICAgICBpZiAoT2JqZWN0LmtleXMocm93cykubGVuZ3RoKSB7CiAgICAgICAgY29uc3QgdGlwcyA9IHJvdwogICAgICAgICAgPyBgPGRpdj4KICAgICAgICAgIDxkaXY+56Gu6K6k5Yig6Zmk44CQPHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+JHtyb3cucm9sZU5hbWV9PC9zcGFuPuOAkeinkuiJsu+8nzwvZGl2PgoK5Yig6Zmk5YmN6K+356Gu6K6k6K+l5bGe5LqO6K+l6KeS6Imy55qE5oiQ5ZGYIDxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPuW3suWFqOmDqOenu+mZpOOAgiA8L3NwYW4+CiAgICAgICAgICAKICAgICAgICAgPC9kaXY+YAogICAgICAgICAgOiBgPGRpdj4KICAgICAgICAgIDxkaXY+56Gu6K6k5Yig6Zmk44CQPHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+JHtuYW1lTGlzdC5qb2luKAogICAgICAgICAgICAiLCIKICAgICAgICAgICl9PC9zcGFuPuOAkeinkuiJsu+8nzwvZGl2PgoK5Yig6Zmk5YmN6K+356Gu6K6k5omA6YCJ6KeS6Imy5LiL55qE5oiQ5ZGYIDxzcGFuIHN0eWxlPSdjb2xvcjpyZWQnPuW3suWFqOmDqOenu+mZpOOAgiA8L3NwYW4+CiAgICAgICAgICAKICAgICAgICAgPC9kaXY+YDsKICAgICAgICB0aGlzLiRjb25maXJtKHRpcHMsICLmj5DnpLoiLCB7CiAgICAgICAgICBkYW5nZXJvdXNseVVzZUhUTUxTdHJpbmc6IHRydWUsCiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumuWIoOmZpCIsCiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICAgIGNvbmZpcm1CdXR0b25DbGFzczogImVsLWJ1dHRvbi0tZGFuZ2VyIiwKICAgICAgICAgIHR5cGU6ICJ3YXJuaW5nIiwKICAgICAgICB9KQogICAgICAgICAgLnRoZW4oKCkgPT4gewogICAgICAgICAgICBkZWxldGVSb2xlVXNlcih7IGlkTGlzdCB9LCB0aGlzLm9yZ2FuaXphdGlvbklkKS50aGVuKChyZXNwb25zZSkgPT4gewogICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPT0gMjAwKSB7CiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLnN1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwogICAgICAgICAgICAgICAgdGhpcy5iYXRjaERlbGV0ZVZiID0gZmFsc2U7CiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaCgpOyAvL+ihqOagvOWIl+ihqAogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0aGlzLiRtZXNzYWdlLmVycm9yKHJlc3BvbnNlLm1lc3NhZ2UgfHwgIuaTjeS9nOWksei0pSIpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9KQogICAgICAgICAgLmNhdGNoKCgpID0+IHsKICAgICAgICAgICAgLy8gdGhpcy5yYWRpbyA9ICIiOyAvL+a4heepuumAieS4rQogICAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgfSwKfTsK"},null]}