1 |
- {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\views\\tool\\gen\\editTable.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\views\\tool\\gen\\editTable.vue","mtime":1621578953096},{"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:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7CiAgZ2V0R2VuVGFibGUsCiAgdXBkYXRlR2VuVGFibGUsCiAgZGVsUG9zdCwKICB0YWJMaXN0LAogIGxpc3RUYWJsZSwKICBhZGRHZW5UYWJsZSwKICBzZXRHZW5UYWJsZSwKICBkZWxHZW5UYWJsZSwKICBsaXN0QWxsQ29sdW1uc0J5VGFibGVJZCwKICBnZW5UYWJsZUNvbHVtbkxpc3QsCiAgdGFibGVTcWwsCiAgenhJbXBsZW1lbnQsCiAgZ2V0UmVsb2FkLAogIGFkZEdlblRhYmxlQ29sdW1uLAogIGRlbEdlblRhYmxlQ29sdW1uLAogIHNldEdlblRhYmxlQ29sdW1uLAogIGdldEdlblRhYmxlQ29sdW1uLAogIGdldEJ5SWRXaXRoRm9yZWlnbktleSwKICBsaXN0SW5kZXhmb3UsCiAgdGFibGVRdWVyeSwKICBxdXJHZW5UYWJsZQp9IGZyb20gIkAvYXBpL3Rvb2wvZ2VuIjsKaW1wb3J0IHsKICBvcHRpb25zZWxlY3QgYXMgZ2V0RGljdE9wdGlvbnNlbGVjdAp9IGZyb20gIkAvYXBpL3N5c3RlbS9kaWN0L3R5cGUiOwppbXBvcnQgewogIGxpc3RNZW51IGFzIGdldE1lbnVUcmVlc2VsZWN0Cn0gZnJvbSAiQC9hcGkvc3lzdGVtL21lbnUiOwppbXBvcnQgYmFzaWNJbmZvRm9ybSBmcm9tICIuL2Jhc2ljSW5mb0Zvcm0iOwppbXBvcnQgZ2VuSW5mb0Zvcm0gZnJvbSAiLi9nZW5JbmZvRm9ybSI7CmltcG9ydCBTb3J0YWJsZSBmcm9tICdzb3J0YWJsZWpzJwoKbGV0IF90aGlzID0gJycKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICJHZW5FZGl0IiwKICBjb21wb25lbnRzOiB7CiAgICBiYXNpY0luZm9Gb3JtLAogICAgZ2VuSW5mb0Zvcm0KICB9LAogIGRhdGEoKSB7CiAgICBfdGhpcyA9IHRoaXMKICAgIHJldHVybiB7CiAgICAgIEZvcmVOYW1lOiAnJywKICAgICAgdG90YWxxdWVyeTowLAogICAgICAvLyDlpJrooYzmn6Xor6IKICAgICAgdGl0bGVvcGVucXVlcnk6J+W/q+mAn+afpeivoicsCiAgICAgIC8vIOiOt+WPlui+k+WFpeahhueahOWPguaVsAogICAgICBxdWVyeUxpc3I6ewogICAgICAgIHRhYmxlOidnZW5fdGFibGVfY29sdW1uJwogICAgICB9LAogICAgICBhbGllbWc6ewogICAgICAgIHRhYmxlOidnZW5fdGFibGVfY29sdW1uJywKICAgICAgICBvcmRlckJ5OidjcmVhdGVfdGltZSBkZXNjJywKICAgICAgICBwYWdlTm86MSwKICAgICAgICBwYWdlU2l6ZToxMCwKICAgICAgICBmaXhlZERhdGE6ewogICAgICAgICAgY29uZGl0aW9uOicnCiAgICAgICAgfQogICAgICB9LAogICAgICBwb3N0TGlzdHF1ZXJ5Ont9LAogICAgICBxdWVyeURhdGE6IHt9LAogICAgICBvcGVucXVlcnk6ZmFsc2UsCiAgICAgIGZvcm1xdWVyeTp7fSwKICAgICAgLy8g5a2X5q615L+h5oGvCiAgICAgIHRhYmxlU3FsRGF0YTogW10sCiAgICAgIGNvbHVtTGlzdDogW10sCiAgICAgIGNvbHVtSFJMaXN0OiBbXSwKICAgICAgZm9yZWlnbktleTogW10sCiAgICAgIG9wZW5aZDogZmFsc2UsCiAgICAgIGZvcm1aZDogewogICAgICB9LAogICAgICBydWxlc1pkOiB7CiAgICAgICAgY29sdW1uTmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpeWtl+auteWQjSIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBjb2x1bW5Db21tZW50OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl5a2X5q615o+P6L+wIiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIGNvbHVtblR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fovpPlhaXniannkIbnsbvlnosiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgbWFzazogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+i+k+WFpeWtl+auteaYvuekuuinhOWImSIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgICBzb3J0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36L6T5YWl5bqP5Y+3IiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICB9LAogICAgICBsb2FkaW5nWmQ6ICcnLAogICAgICAvLyDlhbPogZTooagKICAgICAgdGl0bGU6ICIiLAogICAgICBsb2FkaW5nOiBmYWxzZSwKICAgICAgb3BlbjogZmFsc2UsCiAgICAgIGZvcm06IHt9LAogICAgICBydWxlczogewogICAgICAgIHJlbGF0aW9uUGFyZW50SWQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICLor7fpgInmi6nlhbPogZTooagiLAogICAgICAgICAgdHJpZ2dlcjogImJsdXIiCiAgICAgICAgfV0sCiAgICAgICAgcmVsYXRpb25DaGlsZElkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAi6K+36YCJ5oup5a2X5q61IiwKICAgICAgICAgIHRyaWdnZXI6ICJibHVyIgogICAgICAgIH1dLAogICAgICAgIHJlbGF0aW9uVHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogIuivt+mAieaLqeWFs+iBlOadoeS7tiIsCiAgICAgICAgICB0cmlnZ2VyOiAiYmx1ciIKICAgICAgICB9XSwKICAgICAgfSwKICAgICAgcG9zdExpc3Q6IFtdLAogICAgICB0b3RhbDogMSwKICAgICAgdGFibGVMaXN0OiB7fSwKICAgICAgLy8g5YWz6IGU5pa55byPCgogICAgICAvLyDlhoXltYznvJbovpEKICAgICAgZ2VuTGlzdDogW10sCiAgICAgIGdsYlBhcmFtczogewogICAgICAgIHBhZ2VOdW06IDEsCiAgICAgICAgcGFnZVNpemU6IDEwMDAwMDAwLAogICAgICB9LAogICAgICAvLyDlhbPogZTooajmn6Xor6Llj4LmlbAKICAgICAgcXVlcnlQYXJhbXM6IHsKICAgICAgICByZWxhdGlvblBhcmVudElkOiB0aGlzLiRyb3V0ZS5wYXJhbXMgJiYgdGhpcy4kcm91dGUucGFyYW1zLnRhYmxlSWQsCiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgIH0sCiAgICAgIC8vIOmAieS4remAiemhueWNoeeahCBuYW1lCiAgICAgIGFjdGl2ZU5hbWU6ICJiYXNpYyIsCiAgICAgIC8vIOihqOagvOeahOmrmOW6pgogICAgICB0YWJsZUhlaWdodDogZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbEhlaWdodCAtIDI0NSArICJweCIsCiAgICAgIC8vIOihqOS/oeaBrwogICAgICB0YWJsZXM6IFtdLAogICAgICAvLyDooajliJfkv6Hmga8KICAgICAgY2xvdW1uczogW10sCiAgICAgIC8vIOWtl+WFuOS/oeaBrwogICAgICBkaWN0T3B0aW9uczogW10sCiAgICAgIC8vIOiPnOWNleS/oeaBrwogICAgICBtZW51czogW10sCiAgICAgIC8vIOihqOivpue7huS/oeaBrwogICAgICBpbmZvOiB7fSwKICAgICAgLy8g6YCJ5Lit5pWw57uECiAgICAgIGlkczogW10sCiAgICAgIGlkczE6IFtdLAogICAgICAvLyDpnZ7ljZXkuKrnpoHnlKgKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICBzaW5nbGUxOiB0cnVlLAogICAgICAvLyDpnZ7lpJrkuKrnpoHnlKgKICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgIG11bHRpcGxlMTogdHJ1ZSwKICAgICAgLy8g5YWz6IGU5pa55byPCiAgICAgIHJlbGF0aW9uVHlwZTogW10sCiAgICAgIC8vIOWGheW1jOe8lui+kQogICAgICBlbWJlZEVkaXQ6IFtdLAogICAgfTsKICB9LAogIGZpbHRlcnM6IHsKICAgIHpkRm4oZGF0YSkgewogICAgICBsZXQgaXMgPSAnJwogICAgICBmb3IgKGxldCBpdGVtIG9mIF90aGlzLmNvbHVtTGlzdCkgewogICAgICAgIGlmIChpdGVtLmNvbHVtbklkID09IGRhdGEpIHsKICAgICAgICAgIGlzID0gaXRlbS5jb2x1bW5OYW1lCiAgICAgICAgfQogICAgICB9CiAgICAgIHJldHVybiBpcwogICAgfSwKICAgIHJlbGF0aW9uVHlwZUZuKGRhdGEpIHsKICAgICAgbGV0IGlzID0gJycKICAgICAgZm9yIChsZXQgaXRlbSBvZiBfdGhpcy5yZWxhdGlvblR5cGUpIHsKICAgICAgICBpZiAoaXRlbS5kaWN0VmFsdWUgPT0gZGF0YSkgewogICAgICAgICAgaXMgPSBpdGVtLmRpY3RMYWJlbAogICAgICAgIH0KICAgICAgfQogICAgICByZXR1cm4gaXMKICAgIH0sCiAgICBlbWJlZEVkaXRGbihkYXRhKSB7CiAgICAgIGxldCBpcyA9ICcnCiAgICAgIGZvciAobGV0IGl0ZW0gb2YgX3RoaXMuZW1iZWRFZGl0KSB7CiAgICAgICAgaWYgKGl0ZW0uZGljdFZhbHVlID09IGRhdGEpIHsKICAgICAgICAgIGlzID0gaXRlbS5kaWN0TGFiZWwKICAgICAgICB9CiAgICAgIH0KICAgICAgcmV0dXJuIGlzCiAgICB9LAogIH0sCiAgY3JlYXRlZCgpIHsKICAgIGNvbnN0IHRhYmxlSWQgPSB0aGlzLiRyb3V0ZS5wYXJhbXMgJiYgdGhpcy4kcm91dGUucGFyYW1zLnRhYmxlSWQ7CiAgICBpZiAodGFibGVJZCkgewogICAgICAvLyDojrflj5booajor6bnu4bkv6Hmga8KICAgICAgZ2V0R2VuVGFibGUodGFibGVJZCkudGhlbihyZXMgPT4gewogICAgICAgIHRoaXMuY2xvdW1ucyA9IHJlcy5kYXRhLnJvd3M7CiAgICAgICAgdGhpcy5pbmZvID0gcmVzLmRhdGEuaW5mbzsKICAgICAgICBjb25zb2xlLmxvZyh0aGlzLmluZm8sMzM0NTYpCiAgICAgICAgdGhpcy50YWJsZXMgPSByZXMuZGF0YS50YWJsZXM7CiAgICAgIH0pOwogICAgICAvL+afpeivouaVsOaNruW6k3NxbAogICAgICB0YWJsZVNxbCh0YWJsZUlkKS50aGVuKHJlcyA9PiB7CiAgICAgICAgaWYgKHJlcy5kYXRhKSB7CiAgICAgICAgICB0aGlzLnRhYmxlU3FsRGF0YSA9IHJlcy5kYXRhCiAgICAgICAgfQogICAgICB9KQogICAgICAvKiog5p+l6K+i5a2X5YW45LiL5ouJ5YiX6KGoICovCiAgICAgIGdldERpY3RPcHRpb25zZWxlY3QoKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmRpY3RPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgICAgfSk7CiAgICAgIC8vIOWFs+iBlEhS5a2X5q61CiAgICAgIGdlblRhYmxlQ29sdW1uTGlzdCh7CiAgICAgICAgdGFibGVJZCwKICAgICAgICBodG1sVHlwZTogJ0hSJwogICAgICB9KS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmNvbHVtSFJMaXN0ID0gcmVzcG9uc2Uucm93czsKICAgICAgfSk7CiAgICAgIC8vIOWFs+iBlOWtl+autQogICAgICBsaXN0QWxsQ29sdW1uc0J5VGFibGVJZCh7CiAgICAgICAgaWQ6dGFibGVJZAogICAgICB9KS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLmNvbHVtTGlzdCA9IHJlc3BvbnNlLmRhdGE7CiAgICAgIH0pOwogICAgICAvLyDlhbPogZTooajmlbDmja4KICAgICAgbGlzdFRhYmxlKHRoaXMuZ2xiUGFyYW1zKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLnRhYmxlTGlzdCA9IHJlc3BvbnNlOwogICAgICB9KTsKICAgICAgLyoqIOafpeivouiPnOWNleS4i+aLieWIl+ihqCAqLwogICAgICAvLyBnZXRNZW51VHJlZXNlbGVjdCgpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAvLyAgIHRoaXMubWVudXMgPSB0aGlzLmhhbmRsZVRyZWUocmVzcG9uc2UuZGF0YSwgIm1lbnVJZCIpOwogICAgICAvLyB9KTsKICAgICAgLy8g5YWz6IGU5pa55byPCiAgICAgIHRoaXMuZ2V0RGljdHMoInJlbGF0aW9uX3R5cGUiKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLnJlbGF0aW9uVHlwZSA9IHJlc3BvbnNlLmRhdGE7CiAgICAgIH0pOwogICAgICAvLyDlhoXltYznvJbovpEKICAgICAgdGhpcy5nZXREaWN0cygiZW1iZWRfZWRpdCIpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgIHRoaXMuZW1iZWRFZGl0ID0gcmVzcG9uc2UuZGF0YTsKICAgICAgfSk7CiAgICB9CiAgICB0aGlzLnRhYkxpc3QoKQoKICB9LAogIG1ldGhvZHM6IHsKICAgIHRhYmxlQnRuKHJvdyl7CiAgICAgIHRoaXMub3BlbnF1ZXJ5ID0gZmFsc2UKICAgICAgdGhpcy5Gb3JlTmFtZSA9IHJvdy5jb2x1bW5fbmFtZQogICAgICB0aGlzLmZvcm1aZC5mb3JlaWduS2V5ID0gcm93LmlkCiAgICB9LAogICAgZmt6ZEZuKCkgewogICAgICB0aGlzLnF1ZXJ5ZWRpdCgpCiAgICAgIHRoaXMuZ2V0TGlzYWlsKCkKICAgICAgdGhpcy5vcGVucXVlcnkgPSB0cnVlCiAgICB9LAogICAgY2hhbmdlRm4ob2JqKSB7CiAgICAgIGNvbnNvbGUubG9nKG9iaikKICAgICAgZm9yKGxldCBrZXkgaW4gb2JqKXsKICAgICAgICB0aGlzLmZvcm1xdWVyeS5maXhlZERhdGFba2V5XSA9IG9ialtrZXldCiAgICAgIH0KICAgIH0sCiAgICAvLyDlv6vpgJ/mn6Xor6IKICAgIHF1ZXJ5ZWRpdCgpewogICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlOwogICAgICB0YWJsZVF1ZXJ5KHRoaXMucXVlcnlMaXNyKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgbGV0IGRhdGEgPSByZXNwb25zZS5kYXRhCiAgICAgICAgIHRoaXMucXVlcnlEYXRhID0gZGF0YQogICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgfSkKICAgIH0sCiAgICBoYW5kbGVRdWVyeSgpewogICAgICBmb3IobGV0IGl0ZW0gb2YgdGhpcy5xdWVyeURhdGEucXVlcnlMaXN0KXsKICAgICAgICBpZihpdGVtLmh0bWxUeXBlID09ICdjaGVja2JveCcgfHwgaXRlbS5odG1sVHlwZSA9PSAnaW1hZ2VVcGxvYWQnIHx8IGl0ZW0uaHRtbFR5cGUgPT0gJ2ZpbGVVcGxvYWQnKXsKICAgICAgICAgIHRoaXMuZm9ybXF1ZXJ5W2l0ZW0uY29sdW1uTmFtZV0gPSB0aGlzLiRyZWZzW2l0ZW0uY29sdW1uTmFtZV1bMF0uY29uZmlnCiAgICAgICAgfSBlbHNlewogICAgICAgICAgdGhpcy5mb3JtcXVlcnlbaXRlbS5jb2x1bW5OYW1lXSA9IHRoaXMuJHJlZnNbaXRlbS5jb2x1bW5OYW1lXVswXS5jb25maWdbaXRlbS5jb2x1bW5OYW1lXQogICAgICAgIH0KICAgICAgfQogICAgIHRoaXMuYWxpZW1nLmZpeGVkRGF0YS5jb25kaXRpb24gPSB0aGlzLmZvcm1xdWVyeQogICAgIHRoaXMuZ2V0TGlzYWlsKCkKICAgIH0sCiAgICAvLyDlv6vpgJ/mn6Xor6LliJfooagKICAgIGdldExpc2FpbCgpIHsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgbGlzdEluZGV4Zm91KHRoaXMuYWxpZW1nKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgIGlmKHJlc3BvbnNlLmRhdGEpewogICAgICAgICAgICAvLyB0aGlzLnRhYmxlRGF0YWFsaWQgPSByZXNwb25zZS5kYXRhLnRhYmxlSGVhZExpc3Q7CiAgICAgICAgICAgIHRoaXMucG9zdExpc3RxdWVyeSA9IHJlc3BvbnNlLmRhdGEKICAgICAgICAgICAgdGhpcy5wb3N0TGlzdHF1ZXJ5LnJvd3MuZmlsdGVyKHJvdXRlID0+IHsKICAgICAgICAgICAgICBpZihyb3V0ZS50YWJsZV9pZCl7CiAgICAgICAgICAgICAgICAgcm91dGUudGFibGVfaWQgPSByb3V0ZS50YWJsZV9pZC5uYW1lCiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICAgICB0aGlzLnRvdGFscXVlcnkgPSByZXNwb25zZS5kYXRhLnRvdGFsOwogICAgICAgICAgfQogICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgfQogICAgICApOwogICAgfSwKICAgIHN1Ym1pdEZvcm1aZCgpIHsKICAgICAgdGhpcy4kcmVmc1siZm9ybVpkIl0udmFsaWRhdGUodmFsaWQgPT4gewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgY29uc3QgdGFibGVJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcyAmJiB0aGlzLiRyb3V0ZS5wYXJhbXMudGFibGVJZDsKICAgICAgICAgIHRoaXMuZm9ybVpkLnRhYmxlSWQgPSB0YWJsZUlkCiAgICAgICAgICBpZiAodGhpcy5mb3JtWmQuaWQgIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgIHNldEdlblRhYmxlQ29sdW1uKHRoaXMuZm9ybVpkKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoIuS/ruaUueaIkOWKnyIpOwogICAgICAgICAgICAgIHRoaXMub3BlblpkID0gZmFsc2U7CiAgICAgICAgICAgICAgLy8g6I635Y+W6KGo6K+m57uG5L+h5oGvCiAgICAgICAgICAgICAgZ2V0R2VuVGFibGUodGFibGVJZCkudGhlbihyZXMgPT4gewogICAgICAgICAgICAgICAgdGhpcy5jbG91bW5zID0gcmVzLmRhdGEucm93czsKICAgICAgICAgICAgICAgIHRoaXMuaW5mbyA9IHJlcy5kYXRhLmluZm87CiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlcyA9IHJlcy5kYXRhLnRhYmxlczsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhZGRHZW5UYWJsZUNvbHVtbih0aGlzLmZvcm1aZCkudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLmlrDlop7miJDlip8iKTsKICAgICAgICAgICAgICB0aGlzLm9wZW5aZCA9IGZhbHNlOwogICAgICAgICAgICAgIC8vIOiOt+WPluihqOivpue7huS/oeaBrwogICAgICAgICAgICAgIGdldEdlblRhYmxlKHRhYmxlSWQpLnRoZW4ocmVzID0+IHsKICAgICAgICAgICAgICAgIHRoaXMuY2xvdW1ucyA9IHJlcy5kYXRhLnJvd3M7CiAgICAgICAgICAgICAgICB0aGlzLmluZm8gPSByZXMuZGF0YS5pbmZvOwogICAgICAgICAgICAgICAgdGhpcy50YWJsZXMgPSByZXMuZGF0YS50YWJsZXM7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQoKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIHN4Q3JlYUJ0bigpIHsKICAgICAgY29uc3QgdGFibGVJZCA9IHRoaXMuJHJvdXRlLnBhcmFtcyAmJiB0aGlzLiRyb3V0ZS5wYXJhbXMudGFibGVJZAogICAgICBnZXRSZWxvYWQoewogICAgICAgIHRhYmxlSWQsCiAgICAgICAgY3JlYXRlU3FsOiB0aGlzLnRhYmxlU3FsRGF0YS5jcmVhdGVTcWwsCiAgICAgICAgY3JlYXRlTG9nOiB0aGlzLnRhYmxlU3FsRGF0YS5jcmVhdGVMb2csCiAgICAgICAgaWQ6IHRoaXMudGFibGVTcWxEYXRhLmlkCiAgICAgIH0pLnRoZW4ocmVzID0+IHsKICAgICAgICB0aGlzLm1zZ1N1Y2Nlc3MoJ+WIt+aWsOaIkOWKnycpCiAgICAgICAgLy/mn6Xor6LmlbDmja7lupNzcWwKICAgICAgICB0YWJsZVNxbCh0YWJsZUlkKS50aGVuKHJlcyA9PiB7CiAgICAgICAgICBpZiAocmVzLmRhdGEpIHsKICAgICAgICAgICAgdGhpcy50YWJsZVNxbERhdGEgPSByZXMuZGF0YQogICAgICAgICAgfQogICAgICAgIH0pCiAgICAgIH0pCiAgICB9LAogICAgenhDcmVhQnRuKCkgewogICAgICBjb25zdCBfdGhpcyA9IHRoaXMKICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5omn6KGM5Yib5bu66K+t5Y+lPycsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uKCkgewogICAgICAgIHJldHVybiB6eEltcGxlbWVudCh7CiAgICAgICAgICB0YWJsZUlkOiBfdGhpcy4kcm91dGUucGFyYW1zICYmIF90aGlzLiRyb3V0ZS5wYXJhbXMudGFibGVJZCwKICAgICAgICAgIGNyZWF0ZVNxbDogX3RoaXMudGFibGVTcWxEYXRhLmNyZWF0ZVNxbCwKICAgICAgICAgIGNyZWF0ZUxvZzogX3RoaXMudGFibGVTcWxEYXRhLmNyZWF0ZUxvZywKICAgICAgICAgIGlkOiBfdGhpcy50YWJsZVNxbERhdGEuaWQKICAgICAgICB9KQogICAgICB9KS50aGVuKHJlcyA9PiB7CiAgICAgICAgX3RoaXMubXNnU3VjY2Vzcygn5omn6KGM5oiQ5YqfJykKICAgICAgfSkKICAgIH0sCiAgICBkYlNlbGVjdGVkWmQocm93KSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgY29uc3QgaWQgPSByb3cuaWQKICAgICAgZ2V0QnlJZFdpdGhGb3JlaWduS2V5KGlkKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICBsZXQgZGF0YSA9IHJlc3BvbnNlLmRhdGEKICAgICAgICBkYXRhLmZvcmVpZ25LZXkgPSBkYXRhLmZvcmVpZ25LZXkgPyBkYXRhLmZvcmVpZ25LZXkgLSAwIDogJycKICAgICAgICB0aGlzLmZvcm1aZCA9IGRhdGE7CiAgICAgICAgaWYoZGF0YS5ma0luZm8pewogICAgICAgICAgdGhpcy5Gb3JlTmFtZSA9IGRhdGEuZmtJbmZvLnZhbHVlCiAgICAgICAgfQogICAgICAgIHRoaXMub3BlblpkID0gdHJ1ZTsKICAgICAgICB0aGlzLnRpdGxlID0gIuS/ruaUueWtl+auteS/oeaBryI7CiAgICAgIH0pOwogICAgfSwKICAgIGRiU2VsZWN0ZWQocm93KSB7CiAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgY29uc3QgaWQgPSByb3cuaWQKICAgICAgcXVyR2VuVGFibGUoaWQpLnRoZW4ocmVzcG9uc2UgPT4gewogICAgICAgIGxldCBkYXRhID0gcmVzcG9uc2UuZGF0YQogICAgICAgIGRhdGEucmVsYXRpb25UeXBlID0gZGF0YS5yZWxhdGlvblR5cGUgKyAiIgogICAgICAgIGRhdGEuZW1iZWRFZGl0ID0gZGF0YS5lbWJlZEVkaXQ/KGRhdGEuZW1iZWRFZGl0ICsgIiIpOiBkYXRhLmVtYmVkRWRpdAogICAgICAgIGdldEdlblRhYmxlKGRhdGEucmVsYXRpb25QYXJlbnRJZCkudGhlbihyZXMgPT4gewogICAgICAgICAgdGhpcy5nZW5MaXN0ID0gcmVzLmRhdGEucm93czsKICAgICAgICAgIHRoaXMuZm9ybSA9IGRhdGE7CiAgICAgICAgICB0aGlzLm9wZW4gPSB0cnVlOwogICAgICAgICAgdGhpcy50aXRsZSA9ICLkv67mlLnlhbPogZTooagiOwogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICBhZGRHbGZuKCkgewogICAgICB0aGlzLiRyZWZzWyJmb3JtIl0udmFsaWRhdGUodmFsaWQgPT4gewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgbGV0IGRhdGFzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm0pKQogICAgICAgICAgZGF0YXMucmVsYXRpb25QYXJlbnRJZCA9IHRoaXMuaW5mby5pZAogICAgICAgICAgY29uc29sZS5sb2coZGF0YXMsdGhpcy5pbmZvLmlkLDk5OTgpCiAgICAgICAgICBpZiAodGhpcy5mb3JtLmlkICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICBzZXRHZW5UYWJsZShkYXRhcykudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLkv67mlLnmiJDlip8iKTsKICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgICB0aGlzLnRhYkxpc3QoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhZGRHZW5UYWJsZShkYXRhcykudGhlbihyZXNwb25zZSA9PiB7CiAgICAgICAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLmlrDlop7miJDlip8iKTsKICAgICAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTsKICAgICAgICAgICAgICB0aGlzLnRhYkxpc3QoKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICByZWxhdGlvbkZuKGRhdGEpIHsKICAgICAgZ2V0R2VuVGFibGUoZGF0YSkudGhlbihyZXMgPT4gewogICAgICAgIHRoaXMuZ2VuTGlzdCA9IHJlcy5kYXRhLnJvd3M7CiAgICAgIH0pOwogICAgfSwKICAgIGxvYWRNb3JlKCkgewogICAgICBjb25zdCBfdGhpcyA9IHRoaXMKICAgICAgbGV0IG51bSA9IF90aGlzLnRhYmxlTGlzdC50b3RhbCAlIDEwID09IDAgPyBfdGhpcy50YWJsZUxpc3QudG90YWwgLyAxMCA6ICgoX3RoaXMudGFibGVMaXN0LnRvdGFsIC0gX3RoaXMudGFibGVMaXN0CiAgICAgICAgLnRvdGFsICUgMTApIC8gMTAgKyAxKQogICAgICBjb25zb2xlLmxvZyhudW0sIDEpCiAgICAgIGlmICh0aGlzLmdsYlBhcmFtcy5wYWdlTnVtIDwgbnVtKSB7CiAgICAgICAgdGhpcy5nbGJQYXJhbXMucGFnZU51bSsrCiAgICAgICAgLy8g5YWz6IGU6KGo5pWw5o2uCiAgICAgICAgbGlzdFRhYmxlKHRoaXMuZ2xiUGFyYW1zKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICAgIGxldCBkYXRhID0gcmVzcG9uc2UKICAgICAgICAgIGRhdGEucm93cyA9IF90aGlzLnRhYmxlTGlzdC5yb3dzLmNvbmNhdChkYXRhLnJvd3MpCiAgICAgICAgICBfdGhpcy50YWJsZUxpc3QgPSBkYXRhOwogICAgICAgIH0pOwogICAgICB9CiAgICB9LAogICAgLy8g5Y+W5raI5oyJ6ZKuCiAgICBjYW5jZWwoKSB7CiAgICAgIHRoaXMub3BlbiA9IGZhbHNlOwogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHRoaXMub3BlblpkID0gZmFsc2U7CiAgICAgIHRoaXMucmVzZXRaZCgpOwogICAgfSwKICAgIC8vIOWFs+iBlOihqOaVsOaNrgogICAgdGFiTGlzdCgpIHsKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgdGFiTGlzdCh0aGlzLnF1ZXJ5UGFyYW1zKS50aGVuKHJlc3BvbnNlID0+IHsKICAgICAgICB0aGlzLnBvc3RMaXN0ID0gcmVzcG9uc2Uucm93czsKICAgICAgICB0aGlzLnRvdGFsID0gcmVzcG9uc2UudG90YWw7CiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUFkZF9nbCgpIHsKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB0aGlzLm9wZW4gPSB0cnVlOwogICAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm0pCiAgICAgIHRoaXMudGl0bGUgPSAi5paw5aKe5YWz6IGU6KGoIjsKICAgIH0sCiAgICBoYW5kbGVEZWxfZ2wocm93KSB7CiAgICAgIGNvbnN0IGlkcyA9IHJvdy5pZCB8fCB0aGlzLmlkczE7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpGlk5Li6IicgKyBpZHMgKyAnIueahOaVsOaNrumhuT8nLCAi6K2m5ZGKIiwgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAi5Y+W5raIIiwKICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgfSkudGhlbihmdW5jdGlvbigpIHsKICAgICAgICByZXR1cm4gZGVsR2VuVGFibGUoaWRzKTsKICAgICAgfSkudGhlbigoKSA9PiB7CiAgICAgICAgdGhpcy50YWJMaXN0KCk7CiAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsKICAgICAgfSkKICAgIH0sCiAgICAvLyDooajljZXph43nva4KICAgIHJlc2V0KCkgewogICAgICB0aGlzLmZvcm0gPSB7CiAgICAgICAgaXNEZWw6ICdOJwogICAgICB9OwogICAgICB0aGlzLnJlc2V0Rm9ybSgiZm9ybSIpOwogICAgfSwKICAgIHJlc2V0WmQoKSB7CiAgICAgIHRoaXMuZm9ybVpkID0gewogICAgICB9OwogICAgICB0aGlzLnJlc2V0Rm9ybSgiZm9ybVpkIik7CiAgICB9LAogICAgLyoqIOaPkOS6pOaMiemSriAqLwogICAgc3VibWl0Rm9ybSgpIHsKICAgICAgbGV0IGlzSW5GbGFnID0gMAogICAgICBsZXQgaXNPdXRGbGFnID0gMAoKICAgICAgZm9yKGxldCBpdGVtIG9mIHRoaXMuY2xvdW1ucyl7CiAgICAgICAgaWYoaXRlbS5pc0luPT0nWScpewogICAgICAgICAgaXNJbkZsYWcrKwogICAgICAgIH0KICAgICAgICBpZihpdGVtLmlzT3V0PT0nWScpewogICAgICAgICAgaXNPdXRGbGFnKysKICAgICAgICB9CiAgICAgIH0KICAgICAgaWYoaXNJbkZsYWc+MSl7CiAgICAgICAgdGhpcy5tc2dFcnJvcignIui+k+WFpeWtl+autSLmnIDlpJrlj6rog73pgInmi6nkuIDkuKohJykKICAgICAgICByZXR1cm4KICAgICAgfQogICAgICBpZihpc091dEZsYWc+MSl7CiAgICAgICAgdGhpcy5tc2dFcnJvcignIuaYvuekuuWtl+autSLmnIDlpJrlj6rog73pgInmi6nkuIDkuKohJykKICAgICAgICByZXR1cm4KICAgICAgfQogICAgICBjb25zdCBiYXNpY0Zvcm0gPSB0aGlzLiRyZWZzLmJhc2ljSW5mby4kcmVmcy5iYXNpY0luZm9Gb3JtOwogICAgICBjb25zdCB0YWJudW0gPSBPYmplY3QuYXNzaWduKHt9LCBiYXNpY0Zvcm0ubW9kZWwpCiAgICAgIGNvbnNvbGUubG9nKHRhYm51bS50YWJsZUNvbHVtbiwyMzQpCiAgICAgIGlmKHRhYm51bS50YWJsZUNvbHVtbiA+NCApewogICAgICAgICB0aGlzLm1zZ0Vycm9yKCfliJfmlbDmnIDlpKflj6rog73ovpPlhaU0JykKICAgICAgICAgcmV0dXJuCiAgICAgIH0KICAgICAgaWYoIHRhYm51bS50YWJsZUNvbHVtbiA8MSl7CiAgICAgICAgdGhpcy5tc2dFcnJvcign5pyA5bCP5Y+q6IO96L6T5YWlMScpCiAgICAgICAgcmV0dXJuCiAgICAgIH0KCgogICAgICAvLyBjb25zdCBnZW5Gb3JtID0gdGhpcy4kcmVmcy5nZW5JbmZvLiRyZWZzLmdlbkluZm9Gb3JtOwogICAgICBQcm9taXNlLmFsbChbYmFzaWNGb3JtXS5tYXAodGhpcy5nZXRGb3JtUHJvbWlzZSkpLnRoZW4ocmVzID0+IHsKICAgICAgICBjb25zdCB2YWxpZGF0ZVJlc3VsdCA9IHJlcy5ldmVyeShpdGVtID0+ICEhaXRlbSk7CiAgICAgICAgaWYgKHZhbGlkYXRlUmVzdWx0KSB7CiAgICAgICAgICBjb25zdCBnZW5UYWJsZSA9IE9iamVjdC5hc3NpZ24oe30sIGJhc2ljRm9ybS5tb2RlbCk7CiAgICAgICAgICBnZW5UYWJsZS5jb2x1bW5zID0gdGhpcy5jbG91bW5zOwogICAgICAgICAgLy8gZ2VuVGFibGUucGFyYW1zID0gewogICAgICAgICAgLy8gICB0cmVlQ29kZTogZ2VuVGFibGUudHJlZUNvZGUsCiAgICAgICAgICAvLyAgIHRyZWVOYW1lOiBnZW5UYWJsZS50cmVlTmFtZSwKICAgICAgICAgIC8vICAgdHJlZVBhcmVudENvZGU6IGdlblRhYmxlLnRyZWVQYXJlbnRDb2RlLAogICAgICAgICAgLy8gICBwYXJlbnRNZW51SWQ6IGdlblRhYmxlLnBhcmVudE1lbnVJZAogICAgICAgICAgLy8gfTsKICAgICAgICAgIGNvbnNvbGUubG9nKGdlblRhYmxlKQogICAgICAgICAgaWYodGhpcy5hY3RpdmVOYW1lPT0nYmFzaWMnKXsKICAgICAgICAgICAgZ2VuVGFibGUudXBkYXRlVHlwZSA9JzEnCiAgICAgICAgICB9CiAgICAgICAgICBpZih0aGlzLmFjdGl2ZU5hbWU9PSdjbG91bScpewogICAgICAgICAgICBnZW5UYWJsZS51cGRhdGVUeXBlID0nMicKICAgICAgICAgIH0KICAgICAgICAgIHVwZGF0ZUdlblRhYmxlKGdlblRhYmxlKS50aGVuKHJlcyA9PiB7CiAgICAgICAgICAgIHRoaXMubXNnU3VjY2VzcyhyZXMubXNnKTsKICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLm1zZ0Vycm9yKCLooajljZXmoKHpqozmnKrpgJrov4fvvIzor7fph43mlrDmo4Dmn6Xmj5DkuqTlhoXlrrkiKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGdldEZvcm1Qcm9taXNlKGZvcm0pIHsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewogICAgICAgIGZvcm0udmFsaWRhdGUocmVzID0+IHsKICAgICAgICAgIHJlc29sdmUocmVzKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLyoqIOWFs+mXreaMiemSriAqLwogICAgY2xvc2UoKSB7CiAgICAgIHRoaXMuJHN0b3JlLmRpc3BhdGNoKCJ0YWdzVmlldy9kZWxWaWV3IiwgdGhpcy4kcm91dGUpOwogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgcGF0aDogIi90b29sL2dlbiIsCiAgICAgICAgcXVlcnk6IHsKICAgICAgICAgIHQ6IERhdGUubm93KCkKICAgICAgICB9CiAgICAgIH0pCiAgICB9LAogICAgLy8g5aSa6YCJ5qGG6YCJ5Lit5pWw5o2uCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uKSB7CiAgICAgIHRoaXMuaWRzID0gc2VsZWN0aW9uLm1hcChpdGVtID0+IGl0ZW0uaWQpCiAgICAgIHRoaXMuc2luZ2xlID0gc2VsZWN0aW9uLmxlbmd0aCAhPSAxCiAgICAgIHRoaXMubXVsdGlwbGUgPSAhc2VsZWN0aW9uLmxlbmd0aAogICAgfSwKICAgIC8vIOWkmumAieahhumAieS4reaVsOaNrgogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlMShzZWxlY3Rpb24pIHsKICAgICAgdGhpcy5pZHMxID0gc2VsZWN0aW9uLm1hcChpdGVtID0+IGl0ZW0uaWQpCiAgICAgIHRoaXMuc2luZ2xlMSA9IHNlbGVjdGlvbi5sZW5ndGggIT0gMQogICAgICB0aGlzLm11bHRpcGxlMSA9ICFzZWxlY3Rpb24ubGVuZ3RoCiAgICB9LAogICAgLyoqIOWIoOmZpOaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlRGVsZXRlKHJvdykgewogICAgICBjb25zdCBpZHMgPSByb3cuaWQgfHwgdGhpcy5pZHM7CiAgICAgIGNvbnN0IHRhYmxlSWQgPSB0aGlzLiRyb3V0ZS5wYXJhbXMgJiYgdGhpcy4kcm91dGUucGFyYW1zLnRhYmxlSWQ7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+aYr+WQpuehruiupOWIoOmZpOWtl+autee8luWPt+S4uiInICsgaWRzICsgJyLnmoTmlbDmja7pobk/JywgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgICAgcmV0dXJuIGRlbEdlblRhYmxlQ29sdW1uKGlkcyk7CiAgICAgIH0pLnRoZW4oKCkgPT4gewogICAgICAgIC8vIOiOt+WPluihqOivpue7huS/oeaBrwogICAgICAgIGdldEdlblRhYmxlKHRhYmxlSWQpLnRoZW4ocmVzID0+IHsKICAgICAgICAgIHRoaXMuY2xvdW1ucyA9IHJlcy5kYXRhLnJvd3M7CiAgICAgICAgICB0aGlzLmluZm8gPSByZXMuZGF0YS5pbmZvOwogICAgICAgICAgdGhpcy50YWJsZXMgPSByZXMuZGF0YS50YWJsZXM7CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsKICAgICAgfSkKICAgIH0sCiAgICBoYW5kbGVBZGQoKSB7CiAgICAgIHRoaXMucmVzZXRaZCgpOwogICAgICB0aGlzLm9wZW5aZCA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5paw5aKe5a2X5q615L+h5oGvIjsKICAgIH0KICB9LAogIG1vdW50ZWQoKSB7CiAgICBjb25zdCBlbCA9IHRoaXMuJHJlZnMuZHJhZ1RhYmxlLiRlbC5xdWVyeVNlbGVjdG9yQWxsKCIuZWwtdGFibGVfX2JvZHktd3JhcHBlciA+IHRhYmxlID4gdGJvZHkiKVswXTsKICAgIGNvbnN0IHNvcnRhYmxlID0gU29ydGFibGUuY3JlYXRlKGVsLCB7CiAgICAgIGhhbmRsZTogIi5hbGxvd0RyYWciLAogICAgICBvbkVuZDogZXZ0ID0+IHsKICAgICAgICBjb25zdCB0YXJnZXRSb3cgPSB0aGlzLmNsb3VtbnMuc3BsaWNlKGV2dC5vbGRJbmRleCwgMSlbMF07CiAgICAgICAgdGhpcy5jbG91bW5zLnNwbGljZShldnQubmV3SW5kZXgsIDAsIHRhcmdldFJvdyk7CiAgICAgICAgZm9yIChsZXQgaW5kZXggaW4gdGhpcy5jbG91bW5zKSB7CiAgICAgICAgICB0aGlzLmNsb3VtbnNbaW5kZXhdLnNvcnQgPSBwYXJzZUludChpbmRleCkgKyAxOwogICAgICAgIH0KICAgICAgfQogICAgfSk7CiAgfQp9Owo="},null]}
|