{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataShare\\shareApi\\apiInterface\\AddEditDialog.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\dataResource\\dataShare\\shareApi\\apiInterface\\AddEditDialog.vue","mtime":1749063336055},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UvZGF0YVNoYXJlLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3JlZ2VuZXJhdG9yUnVudGltZS5qcyI7CmltcG9ydCBfYXN5bmNUb0dlbmVyYXRvciBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vYXN5bmNUb0dlbmVyYXRvci5qcyI7CmltcG9ydCBfb2JqZWN0U3ByZWFkIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2RhdGFTaGFyZS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5wdXNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5qc29uLnN0cmluZ2lmeS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcudHJpbS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IEFQSSBmcm9tICdAL2FwaS9idXNpbmVzcy9zaGFyZUFwaSc7CmltcG9ydCBkaWFsb2dNaXhpbiBmcm9tICdAL21peGlucy9kaWFsb2cuanMnOwppbXBvcnQgY29kZUVkaXRvciBmcm9tICdAL2NvbXBvbmVudHMvY29kZUVkaXRvci9pbmRleC52dWUnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0FwaUludGVyZmFjZScsCiAgY29tcG9uZW50czogewogICAgY29kZUVkaXRvcjogY29kZUVkaXRvcgogIH0sCiAgbWl4aW5zOiBbZGlhbG9nTWl4aW5dLAogIHByb3BzOiB7CiAgICAvLyDooYxpZAogICAgcmVsYXRlZElkOiB7CiAgICAgIHR5cGU6IFN0cmluZywKICAgICAgZGVmYXVsdDogJycKICAgIH0sCiAgICBkYXRhOiB7CiAgICAgIHR5cGU6IE9iamVjdCwKICAgICAgZGVmYXVsdDogZnVuY3Rpb24gX2RlZmF1bHQoKSB7CiAgICAgICAgcmV0dXJuIHt9OwogICAgICB9CiAgICB9LAogICAgLy/nm67lvZVpZAogICAgY2F0YWxvZ0lkOiB7CiAgICAgIHR5cGU6IFtTdHJpbmcsIE51bWJlcl0sCiAgICAgIGRlZmF1bHQ6IG51bGwKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBhZGRKc29uTXVsdGlwbGVSZXF1ZXN0UGFyYW1zOiBbXSwKICAgICAgYWRkSnNvbk11bHRpcGxlUmVxdWVzdEhlYWRlcjogW10sCiAgICAgIGFkZEpzb25NdWx0aXBsZVJlc3BvbnNlUGFyYW1zOiBbXSwKICAgICAgYWRkSnNvbk11bHRpcGxlUmVzcG9uc2VTdGF0dXM6IFtdLAogICAgICB0YWJJdGVtSWQ6IDEsCiAgICAgIC8vIOihqOagvOaVsOaNrueahCBpZAogICAgICBsYWJlbFBvc2l0aW9uOiAnbGVmdCcsCiAgICAgIHRpbWVWYWx1ZTogJycsCiAgICAgIHF1cmV5OiAnJywKICAgICAgbW9kZTogJycsCiAgICAgIHNxbG9wdGlvbnM6IFtdLAogICAgICBvcHRpb25zOiBbewogICAgICAgIGxhYmVsOiAn5YiG6aG1JywKICAgICAgICB2YWx1ZTogMQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfkuI3liIbpobUnLAogICAgICAgIHZhbHVlOiAwCiAgICAgIH1dLAogICAgICB0eXBlb3B0aW9uczogW3sKICAgICAgICB2YWx1ZTogJ1N0cmluZycsCiAgICAgICAgbGFiZWw6ICflrZfnrKbkuLInCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogJ0ludGVnZXInLAogICAgICAgIGxhYmVsOiAn5pWw5a2X5Z6LJwogICAgICB9LCB7CiAgICAgICAgdmFsdWU6ICdEYXRlJywKICAgICAgICBsYWJlbDogJ+aXpeacnycKICAgICAgfQogICAgICAvLyB7IHZhbHVlOiAnNCcsIGxhYmVsOiAn5pe26Ze0JyB9LAogICAgICBdLAogICAgICBmb3JtOiB7CiAgICAgICAgc291cmNlVHlwZTogJzEnLAogICAgICAgIHNxbDogJycsCiAgICAgICAgYXBpUXVyZXlUeXBlOiAnJywKICAgICAgICAvLyDor7fmsYLlj4LmlbDor7TmmI4KICAgICAgICByZXF1ZXN0UGFyYW1zOiBbewogICAgICAgICAgcGFyYW06ICcnLAogICAgICAgICAgY29tbWVudDogJycsCiAgICAgICAgICB0eXBlOiAnU3RyaW5nJywKICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgIH1dLAogICAgICAgIC8vIOivt+axguWktOivtOaYjgogICAgICAgIHJlcXVlc3RIZWFkZXI6IFt7CiAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICBjb21tZW50OiAnJywKICAgICAgICAgIHR5cGU6ICdTdHJpbmcnLAogICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlCiAgICAgICAgfV0sCiAgICAgICAgLy8g6L+U5Zue5Y+C5pWw6K+05piOCiAgICAgICAgcmVzcG9uc2VQYXJhbXM6IFt7CiAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICBjb21tZW50OiAnJywKICAgICAgICAgIHR5cGU6ICdTdHJpbmcnCiAgICAgICAgfV0sCiAgICAgICAgLy8g5ZON5bqU54q25oCB56CB5L+h5oGvCiAgICAgICAgcmVzcG9uc2VTdGF0dXM6IFt7CiAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICBjb21tZW50OiAnJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHRhYmxlTmFtZUxpc3Q6IFsnR0VUJywgJ1BPU1QnXSwKICAgICAgcnVsZXM6IHsKICAgICAgICBhcGlOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5o6l5Y+j5ZCN56ew5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGFwaVVybDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aOpeWPo+WcsOWdgOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICAvLyBhcGlRdXJleVR5cGU6IFt7IHJlcXVpcmVkOiB0cnVlLCBtZXNzYWdlOiAn5o6l5Y+j5p+l6K+i5pa55byP5LiN6IO95Li656m6JywgdHJpZ2dlcjogJ2NoYW5nZScgfV0sCiAgICAgICAgYXBpTW9kZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+axguaWueW8j+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIGFwaVNxbDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ1NRTOafpeivouivreWPpeS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBkYkFsaWFzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5pWw5o2u5rqQJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgbG9hZGluZzogZmFsc2UKICAgIH07CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgLy8gdGhpcy5hZGRJZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmlkOwogICAgLy8gdGhpcy5vbkNvbmZpcm0oKTsKICB9LAogIG1ldGhvZHM6IHsKICAgIC8qKg0KICAgICAqIEBkZXNjcmlwdGlvbjogZGlhbG9n5q+P5qyh5pi+56S65pe26Kem5Y+R55qEaW5pdOaWueazlQ0KICAgICAqIEBwYXJhbSB7Kn0gZGF0YSDkvKDlhaVkYXRhDQogICAgICogQHJldHVybiB7Kn0NCiAgICAgKi8KICAgIGluaXREYXRhOiBmdW5jdGlvbiBpbml0RGF0YShkYXRhKSB7CiAgICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAgIC8vIGNvbnNvbGUubG9nKCdpZGlkaWRpJywgdGhpcy5hZGRJZCk7IC8v6L+b6aG16Z2i5omT5Y2waWQKICAgICAgdmFyIG9yZ0Zvcm0gPSB0aGlzLiRvcHRpb25zLmRhdGEoKS5mb3JtOwogICAgICB0aGlzLmZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIG9yZ0Zvcm0pLCB0aGlzLmRhdGEpOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMuJHJlZnMuZm9ybS5jbGVhclZhbGlkYXRlKCk7CiAgICAgIH0pOwogICAgICB0aGlzLnNlbGVjdFNxbCgpOwogICAgfSwKICAgIC8vIOaVsOaNrua6kOaOpeWPo+iwg+eUqAogICAgc2VsZWN0U3FsOiBmdW5jdGlvbiBzZWxlY3RTcWwoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICBBUEkuYWRkU291cmNlRGF0YSgpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIGNvbnNvbGUubG9nKCdjYWNhY2FjcycsIHJlcyk7IC8vIOaVsOaNruW6kwogICAgICAgIF90aGlzMi5zcWxvcHRpb25zID0gcmVzLmRhdGEubWFwKGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICB2YXIgZm9ybSA9IHsKICAgICAgICAgICAgbGFiZWw6IGRhdGEubmFtZSwKICAgICAgICAgICAgdmFsdWU6IGRhdGEuYWxpYXMKICAgICAgICAgIH07CiAgICAgICAgICByZXR1cm4gZm9ybTsKICAgICAgICB9KTsKICAgICAgICBjb25zb2xlLmxvZygn5pWw5o2u5rqQJywgX3RoaXMyLnNxbG9wdGlvbnMpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyb3IpIHsKICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5bmlbDmja7mupDlpLHotKUnLCBlcnJvcik7CiAgICAgIH0pOwogICAgfSwKICAgIFJuZE51bTogZnVuY3Rpb24gUm5kTnVtKG4pIHsKICAgICAgLy8g55Sf5oiQ6ZqP5py65pWwCiAgICAgIHZhciByZG1OdW0gPSAnJzsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICByZG1OdW0gKz0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTApOyAvLyBbMCwxMCnnmoTmlbTmlbAKICAgICAgfQogICAgICByZXR1cm4gcmRtTnVtOwogICAgfSwKICAgIC8vIOivt+axguWPguaVsOivtOaYji0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGFkZEpzb25SZXF1ZXN0UGFyYW1zOiBmdW5jdGlvbiBhZGRKc29uUmVxdWVzdFBhcmFtcyh2YWwpIHsKICAgICAgdGhpcy5hZGRKc29uTXVsdGlwbGVSZXF1ZXN0UGFyYW1zID0gdmFsOwogICAgfSwKICAgIC8vIOa3u+WKoAogICAgYWRkVGFibGVSZXF1ZXN0UGFyYW1zOiBmdW5jdGlvbiBhZGRUYWJsZVJlcXVlc3RQYXJhbXMoKSB7CiAgICAgIHRoaXMudGFiSXRlbUlkID0gIlQiLmNvbmNhdCh0aGlzLlJuZE51bSg2KSk7IC8vIOeUn+aIkOS7pVTlvIDlpLTnmoTkuIPkvY3pmo/mnLrmlbAKICAgICAgdGhpcy5mb3JtLnJlcXVlc3RQYXJhbXMucHVzaCh7CiAgICAgICAgbmFtZTogJycsCiAgICAgICAgdmFsdWU6ICcnLAogICAgICAgIHRhYkl0ZW1JZDogdGhpcy50YWJJdGVtSWQKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Yig6ZmkCiAgICBkZWxUYWJsZVJlcXVlc3RQYXJhbXM6IGZ1bmN0aW9uIGRlbFRhYmxlUmVxdWVzdFBhcmFtcygpIHsKICAgICAgLy8g56Gu6K6k5Yig6ZmkCiAgICAgIGlmICh0aGlzLmFkZEpzb25NdWx0aXBsZVJlcXVlc3RQYXJhbXMubGVuZ3RoID4gMCkgewogICAgICAgIHZhciBhcnJzID0gW107CiAgICAgICAgdmFyIGlkcyA9IHRoaXMuYWRkSnNvbk11bHRpcGxlUmVxdWVzdFBhcmFtcy5tYXAoZnVuY3Rpb24gKHZhbCkgewogICAgICAgICAgcmV0dXJuIHZhbC50YWJJdGVtSWQ7CiAgICAgICAgfSk7IC8vIOaLv+WIsOmAieS4reeahOaVsOaNrmlkLAogICAgICAgIHRoaXMuZm9ybS5yZXF1ZXN0UGFyYW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0udGFiSXRlbUlkKSkgewogICAgICAgICAgICAvLyDlvZNpZOWcqHBhcmFtc+S4re+8jOihqOekuuaVsOaNruiiq+mAieS4re+8jOivpeWwhuWFtuWIoOmZpO+8jOWNs+WwhuS4jeiiq+mAieS4reeahOS/neeVmQogICAgICAgICAgICBhcnJzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5mb3JtLnJlcXVlc3RQYXJhbXMgPSBhcnJzOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2uJyk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDor7fmsYLlpLTor7TmmI4tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIGFkZEpzb25SZXF1ZXN0SGVhZGVyOiBmdW5jdGlvbiBhZGRKc29uUmVxdWVzdEhlYWRlcih2YWwpIHsKICAgICAgdGhpcy5hZGRKc29uTXVsdGlwbGVSZXF1ZXN0SGVhZGVyID0gdmFsOwogICAgfSwKICAgIC8vIOa3u+WKoAogICAgYWRkVGFibGVSZXF1ZXN0SGVhZGVyOiBmdW5jdGlvbiBhZGRUYWJsZVJlcXVlc3RIZWFkZXIoKSB7CiAgICAgIHRoaXMudGFiSXRlbUlkID0gIlQiLmNvbmNhdCh0aGlzLlJuZE51bSg2KSk7IC8vIOeUn+aIkOS7pVTlvIDlpLTnmoTkuIPkvY3pmo/mnLrmlbAKICAgICAgdGhpcy5mb3JtLnJlcXVlc3RIZWFkZXIucHVzaCh7CiAgICAgICAgbmFtZTogJycsCiAgICAgICAgdmFsdWU6ICcnLAogICAgICAgIHRhYkl0ZW1JZDogdGhpcy50YWJJdGVtSWQKICAgICAgfSk7CiAgICB9LAogICAgLy8g5Yig6ZmkCiAgICBkZWxUYWJsZVJlcXVlc3RIZWFkZXI6IGZ1bmN0aW9uIGRlbFRhYmxlUmVxdWVzdEhlYWRlcigpIHsKICAgICAgLy8g56Gu6K6k5Yig6ZmkCiAgICAgIGlmICh0aGlzLmFkZEpzb25NdWx0aXBsZVJlcXVlc3RIZWFkZXIubGVuZ3RoID4gMCkgewogICAgICAgIHZhciBhcnJzID0gW107CiAgICAgICAgdmFyIGlkcyA9IHRoaXMuYWRkSnNvbk11bHRpcGxlUmVxdWVzdEhlYWRlci5tYXAoZnVuY3Rpb24gKHZhbCkgewogICAgICAgICAgcmV0dXJuIHZhbC50YWJJdGVtSWQ7CiAgICAgICAgfSk7IC8vIOaLv+WIsOmAieS4reeahOaVsOaNrmlkLAogICAgICAgIHRoaXMuZm9ybS5yZXF1ZXN0SGVhZGVyLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0udGFiSXRlbUlkKSkgewogICAgICAgICAgICAvLyDlvZNpZOWcqHBhcmFtc+S4re+8jOihqOekuuaVsOaNruiiq+mAieS4re+8jOivpeWwhuWFtuWIoOmZpO+8jOWNs+WwhuS4jeiiq+mAieS4reeahOS/neeVmQogICAgICAgICAgICBhcnJzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5mb3JtLnJlcXVlc3RIZWFkZXIgPSBhcnJzOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2uJyk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDov5Tlm57lj4LmlbDor7TmmI4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBhZGRKc29uUmVzcG9uc2VTdGF0dXM6IGZ1bmN0aW9uIGFkZEpzb25SZXNwb25zZVN0YXR1cyh2YWwpIHsKICAgICAgdGhpcy5hZGRKc29uTXVsdGlwbGVSZXNwb25zZVBhcmFtcyA9IHZhbDsKICAgIH0sCiAgICAvLyDmt7vliqAKICAgIGFkZFRhYmxlUmVzcG9uc2VQYXJhbXM6IGZ1bmN0aW9uIGFkZFRhYmxlUmVzcG9uc2VQYXJhbXMoKSB7CiAgICAgIHRoaXMudGFiSXRlbUlkID0gIlQiLmNvbmNhdCh0aGlzLlJuZE51bSg2KSk7IC8vIOeUn+aIkOS7pVTlvIDlpLTnmoTkuIPkvY3pmo/mnLrmlbAKICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zLnB1c2goewogICAgICAgIG5hbWU6ICcnLAogICAgICAgIHZhbHVlOiAnJywKICAgICAgICB0YWJJdGVtSWQ6IHRoaXMudGFiSXRlbUlkCiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWIoOmZpAogICAgZGVsVGFibGVSZXNwb25zZVBhcmFtczogZnVuY3Rpb24gZGVsVGFibGVSZXNwb25zZVBhcmFtcygpIHsKICAgICAgLy8g56Gu6K6k5Yig6ZmkCiAgICAgIGlmICh0aGlzLmFkZEpzb25NdWx0aXBsZVJlc3BvbnNlUGFyYW1zLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgYXJycyA9IFtdOwogICAgICAgIHZhciBpZHMgPSB0aGlzLmFkZEpzb25NdWx0aXBsZVJlc3BvbnNlUGFyYW1zLm1hcChmdW5jdGlvbiAodmFsKSB7CiAgICAgICAgICByZXR1cm4gdmFsLnRhYkl0ZW1JZDsKICAgICAgICB9KTsgLy8g5ou/5Yiw6YCJ5Lit55qE5pWw5o2uaWQsCiAgICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0udGFiSXRlbUlkKSkgewogICAgICAgICAgICAvLyDlvZNpZOWcqHBhcmFtc+S4re+8jOihqOekuuaVsOaNruiiq+mAieS4re+8jOivpeWwhuWFtuWIoOmZpO+8jOWNs+WwhuS4jeiiq+mAieS4reeahOS/neeVmQogICAgICAgICAgICBhcnJzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zID0gYXJyczsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNricpOwogICAgICB9CiAgICB9LAogICAgLy8g5ZON5bqU54q25oCB56CB5L+h5oGvLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICBhZGRKc29uUmVzcG9uc2VQYXJhbXM6IGZ1bmN0aW9uIGFkZEpzb25SZXNwb25zZVBhcmFtcyh2YWwpIHsKICAgICAgdGhpcy5hZGRKc29uTXVsdGlwbGVSZXNwb25zZVN0YXR1cyA9IHZhbDsKICAgIH0sCiAgICAvLyDmt7vliqAKICAgIGFkZFRhYmxlUmVzcG9uc2VTdGF0dXM6IGZ1bmN0aW9uIGFkZFRhYmxlUmVzcG9uc2VTdGF0dXMoKSB7CiAgICAgIHRoaXMudGFiSXRlbUlkID0gIlQiLmNvbmNhdCh0aGlzLlJuZE51bSg2KSk7IC8vIOeUn+aIkOS7pVTlvIDlpLTnmoTkuIPkvY3pmo/mnLrmlbAKICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzLnB1c2goewogICAgICAgIG5hbWU6ICcnLAogICAgICAgIHZhbHVlOiAnJywKICAgICAgICB0YWJJdGVtSWQ6IHRoaXMudGFiSXRlbUlkCiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWIoOmZpAogICAgZGVsVGFibGVSZXNwb25zZVN0YXR1czogZnVuY3Rpb24gZGVsVGFibGVSZXNwb25zZVN0YXR1cygpIHsKICAgICAgLy8g56Gu6K6k5Yig6ZmkCiAgICAgIGlmICh0aGlzLmFkZEpzb25NdWx0aXBsZVJlc3BvbnNlU3RhdHVzLmxlbmd0aCA+IDApIHsKICAgICAgICB2YXIgYXJycyA9IFtdOwogICAgICAgIHZhciBpZHMgPSB0aGlzLmFkZEpzb25NdWx0aXBsZVJlc3BvbnNlU3RhdHVzLm1hcChmdW5jdGlvbiAodmFsKSB7CiAgICAgICAgICByZXR1cm4gdmFsLnRhYkl0ZW1JZDsKICAgICAgICB9KTsgLy8g5ou/5Yiw6YCJ5Lit55qE5pWw5o2uaWQsCiAgICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIGlmICghaWRzLmluY2x1ZGVzKGl0ZW0udGFiSXRlbUlkKSkgewogICAgICAgICAgICAvLyDlvZNpZOWcqHBhcmFtc+S4re+8jOihqOekuuaVsOaNruiiq+mAieS4re+8jOivpeWwhuWFtuWIoOmZpO+8jOWNs+WwhuS4jeiiq+mAieS4reeahOS/neeVmQogICAgICAgICAgICBhcnJzLnB1c2goaXRlbSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgICAgdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzID0gYXJyczsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLiRtZXNzYWdlLndhcm5pbmcoJ+ivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNricpOwogICAgICB9CiAgICB9LAogICAgLy8g5Y+W5raI5oyJ6ZKuCiAgICBvbkNhbmNlbDogZnVuY3Rpb24gb25DYW5jZWwoKSB7CiAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlOwogICAgICB0aGlzLmZvcm0gPSB0aGlzLiRvcHRpb25zLmRhdGEoKS5mb3JtOwogICAgfSwKICAgIC8vIOehruWumuaMiemSri3mlrDlop7lkI7mjqXlj6PosIPnlKjvvIzlsZXnpLrlnKjliJfooagKICAgIG9uQ29uZmlybTogZnVuY3Rpb24gb25Db25maXJtKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgLy8gdGhpcy4kcmVmcy5mb3JtLnZhbGlkYXRlKGFzeW5jICh2YWxpZCkgPT4gewogICAgICAvLyAgIGlmICh2YWxpZCkgewogICAgICAvLyAgICAgY29uc3QgZm9ybURhdGEgPSB7CiAgICAgIC8vICAgICAgIC4uLnRoaXMuZm9ybSwKICAgICAgLy8gICAgICAgdGFibGVJZDogdGhpcy5yZWxhdGVkSWQKICAgICAgLy8gICAgIH0KICAgICAgLy8gICAgIC8vIHRoaXMuZm9ybS5jYXRhbG9nSWQgPSB0aGlzLnJlbGF0ZWRJZDsKICAgICAgLy8gICAgIGZvcm1EYXRhLnJlcXVlc3RQYXJhbXMgPSBKU09OLnN0cmluZ2lmeShmb3JtRGF0YS5yZXF1ZXN0UGFyYW1zKSAvLyDor7fmsYLlj4LmlbDor7TmmI4KICAgICAgLy8gICAgIGZvcm1EYXRhLnJlcXVlc3RIZWFkZXIgPSBKU09OLnN0cmluZ2lmeShmb3JtRGF0YS5yZXF1ZXN0SGVhZGVyKSAvLyDor7fmsYLlpLTor7TmmI4KICAgICAgLy8gICAgIGZvcm1EYXRhLnJlc3BvbnNlUGFyYW1zID0gSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEucmVzcG9uc2VQYXJhbXMpIC8vIOi/lOWbnuWPguaVsOivtOaYjgogICAgICAvLyAgICAgZm9ybURhdGEucmVzcG9uc2VTdGF0dXMgPSBKU09OLnN0cmluZ2lmeShmb3JtRGF0YS5yZXNwb25zZVN0YXR1cykgLy8g5ZON5bqU54q25oCB56CB5L+h5oGvCiAgICAgIC8vICAgICBBUEkuYWRkQWN0aW9uKGZvcm1EYXRhLCBmYWxzZSkKICAgICAgLy8gICAgICAgLnRoZW4oKHJlcykgPT4gewogICAgICAvLyAgICAgICAgIHRoaXMuJG1lc3NhZ2Uuc3VjY2Vzcygn5o6l5Y+j5paw5aKe5oiQ5Yqf77yBJykKICAgICAgLy8gICAgICAgICAvLyDmlrDlop7miJDlip/lkI7vvIzpgJrov4cgJGVtaXQg6Kem5Y+R6Ieq5a6a5LmJ5LqL5Lu277yM5Lyg6YCS5paw5aKe5oiQ5Yqf55qE5L+h5Y+35Lul5Y+K5Y+v6IO955u45YWz55qE5pWw5o2u77yI54i257uE5Lu25Y+v5Lul55uR5ZCs6L+Z5Liq5LqL5Lu25p2l5YGa5Ye655u45bqU55qE5aSE55CG77yJCiAgICAgIC8vICAgICAgICAgdGhpcy4kZW1pdCgnY29uZmlybScpCiAgICAgIC8vICAgICAgIH0pCiAgICAgIC8vICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHsKICAgICAgLy8gICAgICAgICBjb25zb2xlLmVycm9yKCfojrflj5bmlbDmja7lpLHotKUnLCBlcnJvcikKICAgICAgLy8gICAgICAgfSkKICAgICAgLy8gICAgIHRoaXMubG9hZGluZyA9IGZhbHNlCiAgICAgIC8vICAgICAvLyB9CiAgICAgIC8vICAgfSBlbHNlIHsKICAgICAgLy8gICAgIGNvbnNvbGUubG9nKCfooajljZXpqozor4HlpLHotKXvvIzor7fmo4Dmn6XmiYDmnInlv4XloavpobknKQogICAgICAvLyAgICAgcmV0dXJuIGZhbHNlCiAgICAgIC8vICAgfQogICAgICAvLyB9KQogICAgICAvLyB0aGlzLmxvYWRpbmcgPSBmYWxzZQogICAgICAvLyB0aGlzLnZpc2libGUgPSBmYWxzZQogICAgICAvLyDpmLLmipbvvJrlpoLmnpzmraPlnKjmj5DkuqTkuK3vvIznm7TmjqXov5Tlm54KICAgICAgaWYgKHRoaXMuaXNTdWJtaXR0aW5nKSByZXR1cm47CiAgICAgIHRoaXMuJHJlZnMuZm9ybS52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUodmFsaWQpIHsKICAgICAgICAgIHZhciBmb3JtRGF0YSwgcmVxdWVzdERhdGE7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDM7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ+ihqOWNlemqjOivgeWksei0pe+8jOivt+ajgOafpeaJgOacieW/heWhq+mhuScpOwogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdCgicmV0dXJuIiwgZmFsc2UpOwogICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgIC8vIOW8gOWni+aPkOS6pO+8jOemgeeUqOaMiemSrgogICAgICAgICAgICAgICAgX3RoaXMzLmlzU3VibWl0dGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBfdGhpczMubG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gNTsKICAgICAgICAgICAgICAgIGZvcm1EYXRhID0gX29iamVjdFNwcmVhZCh7fSwgX3RoaXMzLmZvcm0pOwogICAgICAgICAgICAgICAgZm9ybURhdGEudGFibGVJZCA9IF90aGlzMy5yZWxhdGVkSWQ7CiAgICAgICAgICAgICAgICBmb3JtRGF0YS5jYXRhbG9nSWQgPSBfdGhpczMuY2F0YWxvZ0lkOwogICAgICAgICAgICAgICAgLy8g5aSE55CG6K+35rGC5Y+C5pWw6K+05piOIC0g5L+d55WZ57uT5p6E5L2G5riF56m656m65Y+C5pWw55qE6buY6K6k5YC8CiAgICAgICAgICAgICAgICBmb3JtRGF0YS5yZXF1ZXN0UGFyYW1zID0gX3RoaXMzLmZvcm0ucmVxdWVzdFBhcmFtcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ucGFyYW0udHJpbSgpID09PSAnJykgewogICAgICAgICAgICAgICAgICAgIC8vIOWPguaVsOWQjeS4uuepuuaXtu+8jOa4heepuuaJgOacieWtl+auteWAvAogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICAgICAgICAgICAgICBjb21tZW50OiAnJywKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICcnLAogICAgICAgICAgICAgICAgICAgICAgLy8g5riF56m66buY6K6k57G75Z6LCiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJycKICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgcGFyYW06IGl0ZW0ucGFyYW0sCiAgICAgICAgICAgICAgICAgICAgY29tbWVudDogaXRlbS5jb21tZW50LAogICAgICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSwKICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogaXRlbS5yZXF1aXJlZAogICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAgICAgLy8g5ZCM5qC35aSE55CG5YW25LuW5Y+C5pWw6K+05piOCiAgICAgICAgICAgICAgICBmb3JtRGF0YS5yZXF1ZXN0SGVhZGVyID0gX3RoaXMzLmZvcm0ucmVxdWVzdEhlYWRlci5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ucGFyYW0udHJpbSgpID09PSAnJykgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICAgICAgICAgICAgICBjb21tZW50OiAnJywKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICcnLAogICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICcnCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIHBhcmFtOiBpdGVtLnBhcmFtLAogICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IGl0ZW0uY29tbWVudCwKICAgICAgICAgICAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUsCiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGl0ZW0ucmVxdWlyZWQKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgZm9ybURhdGEucmVzcG9uc2VQYXJhbXMgPSBfdGhpczMuZm9ybS5yZXNwb25zZVBhcmFtcy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ucGFyYW0udHJpbSgpID09PSAnJykgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICAgICAgICAgICAgICBjb21tZW50OiAnJywKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICcnCiAgICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgICAgIHBhcmFtOiBpdGVtLnBhcmFtLAogICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IGl0ZW0uY29tbWVudCwKICAgICAgICAgICAgICAgICAgICB0eXBlOiBpdGVtLnR5cGUKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgZm9ybURhdGEucmVzcG9uc2VTdGF0dXMgPSBfdGhpczMuZm9ybS5yZXNwb25zZVN0YXR1cy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0ucGFyYW0udHJpbSgpID09PSAnJykgewogICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICBwYXJhbTogJycsCiAgICAgICAgICAgICAgICAgICAgICBjb21tZW50OiAnJwogICAgICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgICAgICAgICBwYXJhbTogaXRlbS5wYXJhbSwKICAgICAgICAgICAgICAgICAgICBjb21tZW50OiBpdGVtLmNvbW1lbnQKICAgICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgcmVxdWVzdERhdGEgPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIGZvcm1EYXRhKSwge30sIHsKICAgICAgICAgICAgICAgICAgcmVxdWVzdFBhcmFtczogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEucmVxdWVzdFBhcmFtcyksCiAgICAgICAgICAgICAgICAgIHJlcXVlc3RIZWFkZXI6IEpTT04uc3RyaW5naWZ5KGZvcm1EYXRhLnJlcXVlc3RIZWFkZXIpLAogICAgICAgICAgICAgICAgICByZXNwb25zZVBhcmFtczogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEucmVzcG9uc2VQYXJhbXMpLAogICAgICAgICAgICAgICAgICByZXNwb25zZVN0YXR1czogSlNPTi5zdHJpbmdpZnkoZm9ybURhdGEucmVzcG9uc2VTdGF0dXMpCiAgICAgICAgICAgICAgICB9KTsgLy8g5qC85byP5YyW5pWw5o2uCiAgICAgICAgICAgICAgICAvLyB0aGlzLmZvcm0udGFibGVJZCA9IHRoaXMucmVsYXRlZElkCiAgICAgICAgICAgICAgICAvLyB0aGlzLmZvcm0uY2F0YWxvZ0lkID0gdGhpcy5jYXRhbG9nSWQKICAgICAgICAgICAgICAgIC8vIHRoaXMuZm9ybS5yZXF1ZXN0UGFyYW1zID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnJlcXVlc3RQYXJhbXMpCiAgICAgICAgICAgICAgICAvLyB0aGlzLmZvcm0ucmVxdWVzdEhlYWRlciA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybS5yZXF1ZXN0SGVhZGVyKQogICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnJlc3BvbnNlUGFyYW1zKQogICAgICAgICAgICAgICAgLy8gdGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtLnJlc3BvbnNlU3RhdHVzKQogICAgICAgICAgICAgICAgLy8g6LCD55So5o6l5Y+jCiAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTY7CiAgICAgICAgICAgICAgICByZXR1cm4gQVBJLmFkZEFjdGlvbihyZXF1ZXN0RGF0YSwgZmFsc2UpOwogICAgICAgICAgICAgIGNhc2UgMTY6CiAgICAgICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2Uuc3VjY2Vzcygn5o6l5Y+j5paw5aKe5oiQ5Yqf77yBJyk7CiAgICAgICAgICAgICAgICBfdGhpczMuJGVtaXQoJ2NvbmZpcm0nKTsKCiAgICAgICAgICAgICAgICAvLyDmiJDlip/lkI7lhbPpl63lvLnlsYIKICAgICAgICAgICAgICAgIF90aGlzMy52aXNpYmxlID0gZmFsc2U7CiAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjU7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICBjYXNlIDIxOgogICAgICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDIxOwogICAgICAgICAgICAgICAgX2NvbnRleHQudDAgPSBfY29udGV4dFsiY2F0Y2giXSg1KTsKICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ+aPkOS6pOWksei0pTonLCBfY29udGV4dC50MCk7CiAgICAgICAgICAgICAgICBfdGhpczMuJG1lc3NhZ2UuZXJyb3IoJ+aOpeWPo+aWsOWinuWksei0pe+8jOivt+mHjeivlScpOwogICAgICAgICAgICAgIGNhc2UgMjU6CiAgICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMjU7CiAgICAgICAgICAgICAgICAvLyDml6DorrrmiJDlip/lpLHotKXvvIzmgaLlpI3mjInpkq7nirbmgIEKICAgICAgICAgICAgICAgIF90aGlzMy5pc1N1Ym1pdHRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIF90aGlzMy5sb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuZmluaXNoKDI1KTsKICAgICAgICAgICAgICBjYXNlIDI5OgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzUsIDIxLCAyNSwgMjldXSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gpIHsKICAgICAgICAgIHJldHVybiBfcmVmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKTsKICAgIH0KICB9Cn07"},null]}