{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\roadDamageComp\\RoadDamageInquiry\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\roadDamageComp\\RoadDamageInquiry\\components\\EditAddPage\\index.vue","mtime":1741314105784},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IFB1YlN1YiBmcm9tICdwdWJzdWItanMnOwppbXBvcnQgeyB0YWJsZUFkZCwgdGFibGVEZXRhaWwsIHRhYmxlRWRpdCwgbGlzdERlbGV0aW9uIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL3JvYWREYW1hZ2VDb21wL3JvYWREYW1hZ2VSZWdpc3Rlcic7CmltcG9ydCB7IGdldERpY3Rpb25hcnlCeUNvZGUsIGRpY3Rpb25hcnlFc2NhcGUgfSBmcm9tICdAL3V0aWxzL2RpY3Rpb25hcnknOwppbXBvcnQgUm9hZENob2ljZURpYWxvZyBmcm9tICcuL2NvbXBvbmVudHMvUm9hZENob2ljZURpYWxvZyc7CmltcG9ydCBVc2VyQ2hvaWNlRGlhbG9nIGZyb20gJy4vY29tcG9uZW50cy9Vc2VyQ2hvaWNlRGlhbG9nJzsKaW1wb3J0IEV2ZW50Q2hvaWNlRGlhbG9nIGZyb20gJy4vY29tcG9uZW50cy9FdmVudENob2ljZURpYWxvZyc7CmltcG9ydCBEZXRhaWxlZExpc3RHaWFsb2cgZnJvbSAnLi9jb21wb25lbnRzL0RldGFpbGVkTGlzdEdpYWxvZyc7CmltcG9ydCBNaW5lTWFwIGZyb20gJ0AvY29tcG9uZW50cy9NaW5lTWFwL2luZGV4LnZ1ZSc7CmltcG9ydCB7IG9yZ1RyZWUgfSBmcm9tICdAL2FwaS9zeXN0ZW1JbnRlcmZhY2UnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0VkaXRBZGRQYWdlJywKICBjb21wb25lbnRzOiB7CiAgICBNaW5lTWFwOiBNaW5lTWFwLAogICAgUm9hZENob2ljZURpYWxvZzogUm9hZENob2ljZURpYWxvZywKICAgIFVzZXJDaG9pY2VEaWFsb2c6IFVzZXJDaG9pY2VEaWFsb2csCiAgICBFdmVudENob2ljZURpYWxvZzogRXZlbnRDaG9pY2VEaWFsb2csCiAgICBEZXRhaWxlZExpc3RHaWFsb2c6IERldGFpbGVkTGlzdEdpYWxvZwogIH0sCiAgcHJvcHM6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgZGVmYXVsdDogJ0VkaXRBZGRQYWdlJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgZm9ybUxvYWRpbmc6IHRydWUsCiAgICAgIGFkZEVkaXRGb3JtOiB7CiAgICAgICAgbG5nOiAnJywKICAgICAgICBsYXQ6ICcnLAogICAgICAgIHJvYWQ6IHt9LAogICAgICAgIHVzZXI6IHt9LAogICAgICAgIGV2ZW50OiB7fQogICAgICB9LAogICAgICBhZGRFZGl0UnVsZXM6IHsKICAgICAgICByZXNjdWVUZWw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmiqXmoYjnlLXor53kuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgfV0sCiAgICAgICAgcmVzY3VlVGltZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aKpeahiOaXtumXtOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICBldmVudFR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nkuovku7bnsbvlnosnLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIHJlc2N1ZVR5cGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmlZHmj7TnsbvlnovkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIHJvYWRJZDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+i3r+auteS/oeaBr+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddCiAgICAgICAgfV0sCiAgICAgICAgdGVhbUlkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5rS+6YGj6Zif5LyN5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJ10KICAgICAgICB9XSwKICAgICAgICBldmVudFRpbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfkuovku7blj5HnlJ/ml7bpl7TkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnXQogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHNhdmVMb2FkaW5nOiBmYWxzZSwKICAgICAgLy8g5LiK5LygbG9hZGluZwogICAgICBpZDogJycsCiAgICAgIC8vIGlk5qCH6K+G56ymCiAgICAgIHJvYWRDaG9pY2VEaWFsb2c6IGZhbHNlLAogICAgICAvLyDmmK/lkKblsZXnpLrpgInmi6not6/mrrXlvLnlsYIKICAgICAgdXNlckNob2ljZURpYWxvZzogZmFsc2UsCiAgICAgIGV2ZW50Q2hvaWNlRGlhbG9nOiBmYWxzZSwKICAgICAgZGV0YWlsZWRMaXN0RGlhbG9nOiBmYWxzZSwKICAgICAgcm91dGVyRGF0YTogW10sCiAgICAgIC8vIOi3r+e6v+aVsOaNrgogICAgICBwdWJTdWI6IG51bGwsCiAgICAgIG1hcExvYWRpbmc6IHRydWUsCiAgICAgIC8vIOWcsOWbvuWKoOi9vWxvYWRpbmcKICAgICAgbWFwOiBudWxsLAogICAgICBtYXBEZWZhdWx0T3B0aW9uczogewogICAgICAgIGNlbnRlcjogWzEwNi41NTA3LCAyOS41NjQ3XSAvKuWcsOWbvuS4reW/g+eCuSovLAogICAgICAgIHpvb206IDkgLyrlnLDlm77pu5jorqTnvKnmlL7nrYnnuqcqLwogICAgICB9LAogICAgICBtYXJrZXJzOiBbXSwKICAgICAgdGVhbVRyZWVEYXRhOiBbXSwKICAgICAgLy8g5pWR5o+06Zif5LyN57uE57uH5qCRCiAgICAgIGV2ZW50R3JhZGVPcHRpb25zOiBbCiAgICAgIC8v5LqL5Lu2562J57qnCiAgICAgIHsKICAgICAgICBsYWJlbDogJzHnuqcnLAogICAgICAgIHZhbHVlOiAxCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJzLnuqcnLAogICAgICAgIHZhbHVlOiAyCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJzPnuqcnLAogICAgICAgIHZhbHVlOiAzCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJzTnuqcnLAogICAgICAgIHZhbHVlOiA0CiAgICAgIH1dLAogICAgICB0YWJsZURhdGE6IFtdLAogICAgICBpdGVtRGV0YWlsOiB7fSwKICAgICAgaXRlbUluZGV4OiAnJywKICAgICAgb3BlblRZcGU6ICdhZGQnCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWwpIHsKICAgICAgICBpZiAobmV3VmFsID09PSB0aGlzLiRvcHRpb25zLm5hbWUpIHsKICAgICAgICAgIHRoaXMub3BlblBhZ2UoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jbG9zZVBhZ2UoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7CiAgICB0aGlzLmdldE9yZ1RyZWVEYXRhKCk7CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHRoaXMucHViU3ViID0gUHViU3ViLnN1YnNjcmliZSgnRWRpdEFkZFBhZ2UnLCBmdW5jdGlvbiAoXywgZGF0YSkgewogICAgICBpZiAoZGF0YS5pZCkgewogICAgICAgIF90aGlzLmlkID0gZGF0YS5pZDsKICAgICAgICBfdGhpcy5nZXREZXRhaWwoZGF0YS5pZCk7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgZGljdGlvbmFyeUVzY2FwZTogZGljdGlvbmFyeUVzY2FwZSwKICAgIGdldERpY3Rpb25hcnlCeUNvZGU6IGdldERpY3Rpb25hcnlCeUNvZGUsCiAgICBjbGlja0VkaXQ6IGZ1bmN0aW9uIGNsaWNrRWRpdChpdGVtLCBpbmRleCkgewogICAgICB0aGlzLmRldGFpbGVkTGlzdERpYWxvZyA9IHRydWU7CiAgICAgIHRoaXMuaXRlbURldGFpbCA9IGl0ZW07CiAgICAgIHRoaXMuaXRlbUluZGV4ID0gaW5kZXg7CiAgICAgIHRoaXMub3BlblRZcGUgPSAnZWRpdCc7CiAgICB9LAogICAgY2xpY2tEZWxldGU6IGZ1bmN0aW9uIGNsaWNrRGVsZXRlKGl0ZW0sIGluZGV4KSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCfnoa7lrprliKDpmaTmraTmnaHmlbDmja7lkJfvvJ8nLCAn5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRsaXN0RGVsZXRpb24sIHN0YXRlLCBtZXNzYWdlOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIGlmICghaXRlbS5pZCkgewogICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIGxpc3REZWxldGlvbihpdGVtLmlkKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCRsaXN0RGVsZXRpb24gPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJGxpc3REZWxldGlvbi5zdGF0ZTsKICAgICAgICAgICAgICBtZXNzYWdlID0gX3lpZWxkJGxpc3REZWxldGlvbi5tZXNzYWdlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXMyLiRtZXNzYWdlLnN1Y2Nlc3MoJ+WIoOmZpOaIkOWKnycpOwogICAgICAgICAgICAgICAgX3RoaXMyLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHMuc3BsaWNlKGluZGV4LCAxKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEwOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgX3RoaXMyLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHMuc3BsaWNlKGluZGV4LCAxKTsKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkpOwogICAgfSwKICAgIHNlbmREYXRhOiBmdW5jdGlvbiBzZW5kRGF0YShkYXRhKSB7CiAgICAgIGlmICh0aGlzLm9wZW5UWXBlID09PSAnZWRpdCcpIHsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHNbdGhpcy5pdGVtSW5kZXhdID0gZGF0YTsKICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAodGhpcy5hZGRFZGl0Rm9ybS5jb21wZW5zYXRpb25EZXRhaWxzKSB7CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHMucHVzaChkYXRhKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdjb21wZW5zYXRpb25EZXRhaWxzJywgW2RhdGFdKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0sCiAgICAvLyDojrflj5blhazlj7jmoJEKICAgIGdldE9yZ1RyZWVEYXRhOiBmdW5jdGlvbiBnZXRPcmdUcmVlRGF0YSgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIGRhdGE7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gb3JnVHJlZSgpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgZGF0YSA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIF90aGlzMy50ZWFtVHJlZURhdGEgPSBkYXRhOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDmiYDlsZ7mlZHmj7TpmJ/kvI3pgInmi6kKICAgIHRlYW1JZENoYW5nZTogZnVuY3Rpb24gdGVhbUlkQ2hhbmdlKCkgewogICAgICB2YXIgX3RoaXMkJHJlZnMkdGVhbUlkQ2FzLCBfdGhpcyQkcmVmcyR0ZWFtSWRDYXMyOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnRlYW1GdWxsSWQgPSAoKF90aGlzJCRyZWZzJHRlYW1JZENhcyA9IHRoaXMuJHJlZnMudGVhbUlkQ2FzY2FkZXIpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHRlYW1JZENhcyA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyR0ZWFtSWRDYXMgPSBfdGhpcyQkcmVmcyR0ZWFtSWRDYXMuZ2V0Q2hlY2tlZE5vZGVzKClbMF0pID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHRlYW1JZENhcyA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyR0ZWFtSWRDYXMgPSBfdGhpcyQkcmVmcyR0ZWFtSWRDYXMuZGF0YSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdGVhbUlkQ2FzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyQkcmVmcyR0ZWFtSWRDYXMucGF0aCkgfHwgJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGVhbUlkID0gKChfdGhpcyQkcmVmcyR0ZWFtSWRDYXMyID0gdGhpcy4kcmVmcy50ZWFtSWRDYXNjYWRlcikgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdGVhbUlkQ2FzMiA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyR0ZWFtSWRDYXMyID0gX3RoaXMkJHJlZnMkdGVhbUlkQ2FzMi5nZXRDaGVja2VkTm9kZXMoKVswXSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdGVhbUlkQ2FzMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkJHJlZnMkdGVhbUlkQ2FzMi52YWx1ZSkgfHwgJyc7CiAgICB9LAogICAgLy8g5Zyw5Zu+5oyC6L295ZCOCiAgICBtYXBMb2FkOiBmdW5jdGlvbiBtYXBMb2FkKG1hcCkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgdGhpcy5tYXBMb2FkaW5nID0gZmFsc2U7CiAgICAgIG1hcC5vbignY2xpY2snLCBmdW5jdGlvbiAoX3JlZjIpIHsKICAgICAgICB2YXIgbG5nTGF0ID0gX3JlZjIubG5nTGF0OwogICAgICAgIHZhciBsbmcgPSBsbmdMYXQubG5nLAogICAgICAgICAgbGF0ID0gbG5nTGF0LmxhdDsKICAgICAgICBfdGhpczQuYWRkRWRpdEZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzNC5hZGRFZGl0Rm9ybSksIHt9LCB7CiAgICAgICAgICBsbmc6IGxuZywKICAgICAgICAgIGxhdDogbGF0CiAgICAgICAgfSk7CiAgICAgICAgX3RoaXM0LmN1c3RvbVRhZ1BvaW50cyhbbG5nLCBsYXRdKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6Ieq5a6a5LmJ5qCH6K6w54K5CiAgICBjdXN0b21UYWdQb2ludHM6IGZ1bmN0aW9uIGN1c3RvbVRhZ1BvaW50cygpIHsKICAgICAgdmFyIF90aGlzJG1hcmtlcnMsCiAgICAgICAgX3RoaXM1ID0gdGhpczsKICAgICAgdmFyIGxuZ2xhdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogW107CiAgICAgIChfdGhpcyRtYXJrZXJzID0gdGhpcy5tYXJrZXJzW3RoaXMubWFya2Vycy5sZW5ndGggLSAxXSkgPT09IG51bGwgfHwgX3RoaXMkbWFya2VycyA9PT0gdm9pZCAwIHx8IF90aGlzJG1hcmtlcnMucmVtb3ZlKCk7CiAgICAgIC8vIOiHquWumuS5ieeCueagh+iusOeahOWGhemDqERPTeWFg+e0oAogICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgZWwuY2xhc3NOYW1lID0gJ21hcmtlci10aXAnOwogICAgICAvLyBNYXJrZXLmnoTpgKDlh73mlbDmjqXmlLbkuKTkuKrlj4LmlbDvvIzkuIDkuKrkuLroh6rlrprkuYnnmoRET03lhYPntKDvvIzkuIDkuKrmmK9PYmplY3Tlj4LmlbDvvIzlhbbkuK3ljIXmi6zlgY/np7vph4/nrYkKICAgICAgdmFyIG1hcmtlciA9IG5ldyB0aGlzLiRyZWZzLm1pbmVNYXAubWluZU1hcC5NYXJrZXIoZWwsIHsKICAgICAgICBkcmFnZ2FibGU6IHRydWUsCiAgICAgICAgYW5jaG9yOiAnY2VudGVyJywKICAgICAgICBvZmZzZXQ6IFswLCAwXSAvLyBvZmZzZXTlj4LmlbDkuLrmoIfms6jngrnnm7jlr7nkuo7lhbblt6bkuIrop5LlgY/np7vlg4/ntKDlpKflsI8KICAgICAgfSkKICAgICAgLy8g6LCD55Soc2V0TG5nTGF05pa55rOV5oyH5a6aTWFya2Vy55qE5Z2Q5qCH5L2N572uCiAgICAgIC5zZXRMbmdMYXQobG5nbGF0KS5hZGRUbyh0aGlzLiRyZWZzLm1pbmVNYXAubWFwKS5vbignZHJhZ2VuZCcsIGZ1bmN0aW9uIChfcmVmMykgewogICAgICAgIHZhciB0YXJnZXQgPSBfcmVmMy50YXJnZXQ7CiAgICAgICAgdmFyIF90YXJnZXQkZ2V0TG5nTGF0ID0gdGFyZ2V0LmdldExuZ0xhdCgpLAogICAgICAgICAgbG5nID0gX3RhcmdldCRnZXRMbmdMYXQubG5nLAogICAgICAgICAgbGF0ID0gX3RhcmdldCRnZXRMbmdMYXQubGF0OwogICAgICAgIF90aGlzNS5hZGRFZGl0Rm9ybSA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXM1LmFkZEVkaXRGb3JtKSwge30sIHsKICAgICAgICAgIGxuZzogbG5nLAogICAgICAgICAgbGF0OiBsYXQKICAgICAgICB9KTsKICAgICAgfSk7CiAgICAgIHRoaXMuJHJlZnMubWluZU1hcC5tYXAuc2V0Q2VudGVyKGxuZ2xhdCk7CiAgICAgIHRoaXMubWFya2Vycy5wdXNoKG1hcmtlcik7CiAgICB9LAogICAgLy8g5L+u5pS557uP57qs5bqm5pu05paw5Zyw5Zu+5qCH54K5CiAgICB1cGRhdGVQb2ludDogZnVuY3Rpb24gdXBkYXRlUG9pbnQoZSkgewogICAgICB2YXIgX3RoaXMkYWRkRWRpdEZvcm0gPSB0aGlzLmFkZEVkaXRGb3JtLAogICAgICAgIGxuZyA9IF90aGlzJGFkZEVkaXRGb3JtLmxuZywKICAgICAgICBsYXQgPSBfdGhpcyRhZGRFZGl0Rm9ybS5sYXQ7CiAgICAgIHRoaXMuY3VzdG9tVGFnUG9pbnRzKFtsbmcsIGxhdF0pOwogICAgfSwKICAgIC8vIOaJk+W8gOmhtemdouaJp+ihjAogICAgb3BlblBhZ2U6IGZ1bmN0aW9uIG9wZW5QYWdlKCkgewogICAgICB2YXIgX3RoaXMkJHJlZnMkbWluZU1hcDsKICAgICAgKF90aGlzJCRyZWZzJG1pbmVNYXAgPSB0aGlzLiRyZWZzLm1pbmVNYXApID09PSBudWxsIHx8IF90aGlzJCRyZWZzJG1pbmVNYXAgPT09IHZvaWQgMCB8fCAoX3RoaXMkJHJlZnMkbWluZU1hcCA9IF90aGlzJCRyZWZzJG1pbmVNYXAubWFwKSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyRtaW5lTWFwID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkbWluZU1hcC5yZXNpemUoKTsKICAgIH0sCiAgICAvLyDlsZXnpLrlvLnlsYIKICAgIHNob3dEaWFsb2c6IGZ1bmN0aW9uIHNob3dEaWFsb2coZGlhbG9nTmFtZSkgewogICAgICBjb25zb2xlLmxvZyhkaWFsb2dOYW1lKTsKICAgICAgaWYgKCFkaWFsb2dOYW1lKSByZXR1cm47CiAgICAgIHRoaXNbZGlhbG9nTmFtZSArICdEaWFsb2cnXSA9IHRydWU7CiAgICB9LAogICAgLy8g5YWz6Zet6aG16Z2i5omn6KGMCiAgICBjbG9zZVBhZ2U6IGZ1bmN0aW9uIGNsb3NlUGFnZSgpIHsKICAgICAgdmFyIF90aGlzJCRyZWZzJG1pbmVNYXAyLAogICAgICAgIF90aGlzNiA9IHRoaXM7CiAgICAgIHZhciBwdWJTdWIgPSB0aGlzLnB1YlN1YiwKICAgICAgICBhZGRFZGl0UnVsZXMgPSB0aGlzLmFkZEVkaXRSdWxlczsKICAgICAgLy8g6YeN572u57uE5Lu25pWw5o2uCiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4kZGF0YSwgdGhpcy4kb3B0aW9ucy5kYXRhLmNhbGwodGhpcyksIHsKICAgICAgICBwdWJTdWI6IHB1YlN1YiwKICAgICAgICBhZGRFZGl0UnVsZXM6IGFkZEVkaXRSdWxlcwogICAgICB9KTsKICAgICAgKF90aGlzJCRyZWZzJG1pbmVNYXAyID0gdGhpcy4kcmVmcy5taW5lTWFwKSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyRtaW5lTWFwMiA9PT0gdm9pZCAwIHx8IF90aGlzJCRyZWZzJG1pbmVNYXAyLnJlc2V0TWFwKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgcmV0dXJuIF90aGlzNi5tYXBMb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOyAvLyDph43nva7lnLDlm74KICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKF8pIHsKICAgICAgICBfdGhpczYuJHJlZnMuYWRkRWRpdEZvcm0uJGVsLnNjcm9sbFRvcCA9IDA7CiAgICAgICAgX3RoaXM2LiRyZWZzLmFkZEVkaXRGb3JtLmNsZWFyVmFsaWRhdGUoKTsKICAgICAgfSk7CiAgICB9LAogICAgaGFuZGxlUm9hZFNlbGVjdDogZnVuY3Rpb24gaGFuZGxlUm9hZFNlbGVjdChyb2FkKSB7CiAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAncm9hZElkJywgcm9hZC5yb2FkSWQpOwogICAgfSwKICAgIGhhbmRsZVVzZXJTZWxlY3Q6IGZ1bmN0aW9uIGhhbmRsZVVzZXJTZWxlY3QodXNlcikgewogICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3VzZXJJZCcsIHVzZXIudXNlcklkKTsKICAgIH0sCiAgICBoYW5kbGVFdmVudFNlbGVjdDogZnVuY3Rpb24gaGFuZGxlRXZlbnRTZWxlY3QoZXZlbnQpIHsKICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdldmVudElkJywgZXZlbnQuZXZlbnRJZCk7CiAgICB9LAogICAgLy8g6I635Y+W6K+m5oOFCiAgICBnZXREZXRhaWw6IGZ1bmN0aW9uIGdldERldGFpbChpZCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICB2YXIgX3RoaXM3JGFkZEVkaXRGb3JtLCBfdGhpczckYWRkRWRpdEZvcm0kcm8sIHJvYWRDb2RlLCBfdGhpczckYWRkRWRpdEZvcm0kcm8yLCByb2FkSWQsIF90aGlzNyRhZGRFZGl0Rm9ybSRybzMsIHJvYWROYW1lLCBfdGhpczckYWRkRWRpdEZvcm0kdXMsIHVzZXJJZCwgX3RoaXM3JGFkZEVkaXRGb3JtJGV2LCBldmVudElkLCBfdGhpczckYWRkRWRpdEZvcm0kZXYyLCBldmVudE5vLCBfdGhpczckYWRkRWRpdEZvcm0kdXMyLCB1c2VyTmFtZSwgX3RoaXM3JGFkZEVkaXRGb3JtJHBlLCBwZWdTVmFsLCBfdGhpczckYWRkRWRpdEZvcm0kcGUyLCBwZWdFVmFsLCBfdGhpczckYWRkRWRpdEZvcm0kbG4sIGxuZywgX3RoaXM3JGFkZEVkaXRGb3JtJGxhLCBsYXQsIHN0YXJ0UGVnQXJyLCBfc3RhcnRQZWdBcnI7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMDsKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRGV0YWlsKGlkKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF90aGlzNy5hZGRFZGl0Rm9ybSA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIF90aGlzNyRhZGRFZGl0Rm9ybSA9IF90aGlzNy5hZGRFZGl0Rm9ybSwgX3RoaXM3JGFkZEVkaXRGb3JtJHJvID0gX3RoaXM3JGFkZEVkaXRGb3JtLnJvYWRDb2RlLCByb2FkQ29kZSA9IF90aGlzNyRhZGRFZGl0Rm9ybSRybyA9PT0gdm9pZCAwID8gJycgOiBfdGhpczckYWRkRWRpdEZvcm0kcm8sIF90aGlzNyRhZGRFZGl0Rm9ybSRybzIgPSBfdGhpczckYWRkRWRpdEZvcm0ucm9hZElkLCByb2FkSWQgPSBfdGhpczckYWRkRWRpdEZvcm0kcm8yID09PSB2b2lkIDAgPyAnJyA6IF90aGlzNyRhZGRFZGl0Rm9ybSRybzIsIF90aGlzNyRhZGRFZGl0Rm9ybSRybzMgPSBfdGhpczckYWRkRWRpdEZvcm0ucm9hZE5hbWUsIHJvYWROYW1lID0gX3RoaXM3JGFkZEVkaXRGb3JtJHJvMyA9PT0gdm9pZCAwID8gJycgOiBfdGhpczckYWRkRWRpdEZvcm0kcm8zLCBfdGhpczckYWRkRWRpdEZvcm0kdXMgPSBfdGhpczckYWRkRWRpdEZvcm0udXNlcklkLCB1c2VySWQgPSBfdGhpczckYWRkRWRpdEZvcm0kdXMgPT09IHZvaWQgMCA/ICcnIDogX3RoaXM3JGFkZEVkaXRGb3JtJHVzLCBfdGhpczckYWRkRWRpdEZvcm0kZXYgPSBfdGhpczckYWRkRWRpdEZvcm0uZXZlbnRJZCwgZXZlbnRJZCA9IF90aGlzNyRhZGRFZGl0Rm9ybSRldiA9PT0gdm9pZCAwID8gJycgOiBfdGhpczckYWRkRWRpdEZvcm0kZXYsIF90aGlzNyRhZGRFZGl0Rm9ybSRldjIgPSBfdGhpczckYWRkRWRpdEZvcm0uZXZlbnRObywgZXZlbnRObyA9IF90aGlzNyRhZGRFZGl0Rm9ybSRldjIgPT09IHZvaWQgMCA/ICcnIDogX3RoaXM3JGFkZEVkaXRGb3JtJGV2MiwgX3RoaXM3JGFkZEVkaXRGb3JtJHVzMiA9IF90aGlzNyRhZGRFZGl0Rm9ybS51c2VyTmFtZSwgdXNlck5hbWUgPSBfdGhpczckYWRkRWRpdEZvcm0kdXMyID09PSB2b2lkIDAgPyAnJyA6IF90aGlzNyRhZGRFZGl0Rm9ybSR1czIsIF90aGlzNyRhZGRFZGl0Rm9ybSRwZSA9IF90aGlzNyRhZGRFZGl0Rm9ybS5wZWdTVmFsLCBwZWdTVmFsID0gX3RoaXM3JGFkZEVkaXRGb3JtJHBlID09PSB2b2lkIDAgPyAnJyA6IF90aGlzNyRhZGRFZGl0Rm9ybSRwZSwgX3RoaXM3JGFkZEVkaXRGb3JtJHBlMiA9IF90aGlzNyRhZGRFZGl0Rm9ybS5wZWdFVmFsLCBwZWdFVmFsID0gX3RoaXM3JGFkZEVkaXRGb3JtJHBlMiA9PT0gdm9pZCAwID8gJycgOiBfdGhpczckYWRkRWRpdEZvcm0kcGUyLCBfdGhpczckYWRkRWRpdEZvcm0kbG4gPSBfdGhpczckYWRkRWRpdEZvcm0ubG5nLCBsbmcgPSBfdGhpczckYWRkRWRpdEZvcm0kbG4gPT09IHZvaWQgMCA/ICcnIDogX3RoaXM3JGFkZEVkaXRGb3JtJGxuLCBfdGhpczckYWRkRWRpdEZvcm0kbGEgPSBfdGhpczckYWRkRWRpdEZvcm0ubGF0LCBsYXQgPSBfdGhpczckYWRkRWRpdEZvcm0kbGEgPT09IHZvaWQgMCA/ICcnIDogX3RoaXM3JGFkZEVkaXRGb3JtJGxhOwogICAgICAgICAgICAgIF90aGlzNy5hZGRFZGl0Rm9ybS5yb2FkID0gewogICAgICAgICAgICAgICAgcm9hZENvZGU6IHJvYWRDb2RlLAogICAgICAgICAgICAgICAgcm9hZElkOiByb2FkSWQsCiAgICAgICAgICAgICAgICByb2FkTmFtZTogcm9hZE5hbWUKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF90aGlzNy5hZGRFZGl0Rm9ybS51c2VyID0gewogICAgICAgICAgICAgICAgdXNlcklkOiB1c2VySWQsCiAgICAgICAgICAgICAgICB1c2VyTmFtZTogdXNlck5hbWUKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF90aGlzNy5hZGRFZGl0Rm9ybS5ldmVudCA9IHsKICAgICAgICAgICAgICAgIGV2ZW50SWQ6IGV2ZW50SWQsCiAgICAgICAgICAgICAgICBldmVudE5vOiBldmVudE5vCiAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgICBpZiAocGVnU1ZhbCkgewogICAgICAgICAgICAgICAgc3RhcnRQZWdBcnIgPSBwZWdTVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICBfdGhpczcuJHNldChfdGhpczcuYWRkRWRpdEZvcm0sICdzdGFydFBlZycsIHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgICAgICAgIF90aGlzNy4kc2V0KF90aGlzNy5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnQWRkJywgc3RhcnRQZWdBcnJbMV0pOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBfdGhpczcuJHNldChfdGhpczcuYWRkRWRpdEZvcm0sICdzdGFydFBlZycsICcnKTsKICAgICAgICAgICAgICAgIF90aGlzNy4kc2V0KF90aGlzNy5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnQWRkJywgJycpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAocGVnRVZhbCkgewogICAgICAgICAgICAgICAgX3N0YXJ0UGVnQXJyID0gcGVnRVZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICAgICAgX3RoaXM3LiRzZXQoX3RoaXM3LmFkZEVkaXRGb3JtLCAnZW5kUGVnJywgX3N0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgICAgICAgIF90aGlzNy4kc2V0KF90aGlzNy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZ0FkZCcsIF9zdGFydFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kc2V0KF90aGlzNy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZycsICcnKTsKICAgICAgICAgICAgICAgIF90aGlzNy4kc2V0KF90aGlzNy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZ0FkZCcsICcnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGxuZyAmJiBsYXQpIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kbmV4dFRpY2soZnVuY3Rpb24gKF8pIHsKICAgICAgICAgICAgICAgICAgX3RoaXM3LmN1c3RvbVRhZ1BvaW50cyhbbG5nLCBsYXRdKTsKICAgICAgICAgICAgICAgICAgX3RoaXM3LiRyZWZzLm1pbmVNYXAubWFwLnNldENlbnRlcihbbG5nLCBsYXRdKTsKICAgICAgICAgICAgICAgICAgX3RoaXM3LiRyZWZzLm1pbmVNYXAubWFwLnBhblRvKFtsbmcsIGxhdF0sIHsKICAgICAgICAgICAgICAgICAgICBkdXJhdGlvbjogNjAwMCwKICAgICAgICAgICAgICAgICAgICAvLyDliqjnlLvov4fmuKHml7bpl7QKICAgICAgICAgICAgICAgICAgICB6b29tOiAxNCAvLyDmlrDnmoTnvKnmlL7nuqfliKsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKCFfdGhpczcuYWRkRWRpdEZvcm0uY29tcGVuc2F0aW9uRGV0YWlscykgewogICAgICAgICAgICAgICAgX3RoaXM3LmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHMgPSBbXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc29sZS5sb2coX3RoaXM3LmFkZEVkaXRGb3JtKTsKICAgICAgICAgICAgY2FzZSAxMzoKICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDEzOwogICAgICAgICAgICAgIF90aGlzNy5mb3JtTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuZmluaXNoKDEzKTsKICAgICAgICAgICAgY2FzZSAxNjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMywgbnVsbCwgW1swLCwgMTMsIDE2XV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLmFkZEVkaXRGb3JtLnZhbGlkYXRlKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWY0ID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU0KHZhbGlkLCBvYmplY3QpIHsKICAgICAgICAgIHZhciBkYXRhLCBteUludGVyRmFjZSwgX3lpZWxkJG15SW50ZXJGYWNlLCBzdGF0ZSwgbWVzc2FnZSwgdmFsdWU7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDQucHJldiA9IF9jb250ZXh0NC5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gNDsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfdGhpczguJG1lc3NhZ2Uud2FybmluZygiXHU2NzA5Ii5jb25jYXQoT2JqZWN0LmtleXMob2JqZWN0KS5sZW5ndGgsICJcdTRFMkFcdTVCNTdcdTZCQjVcdTY3MkFcdTkwMUFcdThGQzdcdTY4MjFcdTlBOENcdUZGMENcdThCRjdcdTZCNjNcdTc4NkVcdTU4NkJcdTUxOTlcdTg4NjhcdTUzNTVcdTUxODVcdTVCQjlcdTMwMDIiKSk7CiAgICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDIxOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgX3RoaXM4LnNhdmVMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KF90aGlzOC5hZGRFZGl0Rm9ybSkpOwogICAgICAgICAgICAgICAgZGF0YS5wZWdTVmFsID0gJ2snICsgKGRhdGEuc3RhcnRQZWcgfHwgJycpICsgJysnICsgKGRhdGEuc3RhcnRQZWdBZGQgfHwgJycpOwogICAgICAgICAgICAgICAgZGF0YS5wZWdFVmFsID0gJ2snICsgKGRhdGEuZW5kUGVnIHx8ICcnKSArICcrJyArIChkYXRhLmVuZFBlZ0FkZCB8fCAnJyk7CiAgICAgICAgICAgICAgICBteUludGVyRmFjZSA9IF90aGlzOC5pZCA/IHRhYmxlRWRpdCA6IHRhYmxlQWRkOwogICAgICAgICAgICAgICAgY29uc29sZS5sb2coZGF0YSk7CiAgICAgICAgICAgICAgICBfY29udGV4dDQucHJldiA9IDEwOwogICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAxMzsKICAgICAgICAgICAgICAgIHJldHVybiBteUludGVyRmFjZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBkYXRhKSwgZGF0YS5yb2FkKSwgZGF0YS51c2VyKSwgZGF0YS5ldmVudCkpOwogICAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgICAgICBfeWllbGQkbXlJbnRlckZhY2UgPSBfY29udGV4dDQuc2VudDsKICAgICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJG15SW50ZXJGYWNlLnN0YXRlOwogICAgICAgICAgICAgICAgbWVzc2FnZSA9IF95aWVsZCRteUludGVyRmFjZS5tZXNzYWdlOwogICAgICAgICAgICAgICAgdmFsdWUgPSBfeWllbGQkbXlJbnRlckZhY2UudmFsdWU7CiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IF90aGlzOC5pZCA/ICfnvJbovpEnIDogJ+aWsOWinic7CiAgICAgICAgICAgICAgICAgIF90aGlzOC4kbWVzc2FnZS5zdWNjZXNzKCJcdTRGRERcdTVCNThcdTYyMTBcdTUyOUYiKTsKICAgICAgICAgICAgICAgICAgX3RoaXM4LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsIF90aGlzOC5pZCA/ICdlZGl0JyA6ICdhZGQnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYXNlIDE4OgogICAgICAgICAgICAgICAgX2NvbnRleHQ0LnByZXYgPSAxODsKICAgICAgICAgICAgICAgIF90aGlzOC5zYXZlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5maW5pc2goMTgpOwogICAgICAgICAgICAgIGNhc2UgMjE6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNCwgbnVsbCwgW1sxMCwsIDE4LCAyMV1dKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyKSB7CiAgICAgICAgICByZXR1cm4gX3JlZjQuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpOwogICAgfSwKICAgIC8vIOaUueWPmOmhtemdogogICAgY2hhbmdlUGFnZTogZnVuY3Rpb24gY2hhbmdlUGFnZSgpIHsKICAgICAgdmFyIHBhZ2VOYW1lID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAnJzsKICAgICAgdmFyIHR5cGUgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6ICcnOwogICAgICBpZiAoIXBhZ2VOYW1lKSByZXR1cm47CiAgICAgIHRoaXMuJGVtaXQoJ2NoYW5nZVBhZ2UnLCBwYWdlTmFtZSwgZnVuY3Rpb24gKF8pIHsKICAgICAgICBQdWJTdWIucHVibGlzaChwYWdlTmFtZSwgewogICAgICAgICAgdHlwZTogdHlwZQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0KICB9LAogIGJlZm9yZURlc3Ryb3k6IGZ1bmN0aW9uIGJlZm9yZURlc3Ryb3koKSB7CiAgICAvLyDlnKjnu4Tku7bplIDmr4HkuYvliY0g5riF6Zmk6K6i6ZiF5raI5oGvCiAgICBQdWJTdWIudW5zdWJzY3JpYmUodGhpcy5wdWJTdWIpOwogIH0KfTs="},null]}