{"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\\videoPatrol\\videoPatrolRecord\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\videoPatrol\\videoPatrolRecord\\components\\EditAddPage\\index.vue","mtime":1744402098117},{"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:aW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX3RvQ29uc3VtYWJsZUFycmF5IGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL3hjanktZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vdG9Db25zdW1hYmxlQXJyYXkuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKdmFyIF9leGNsdWRlZCA9IFsicmVnaW9uSWQiLCAicmVnaW9uTmFtZSJdLAogIF9leGNsdWRlZDIgPSBbInRhc2tDb25mVmlkZW8iLCAicmVnaW9uSWQiLCAicmVnaW9uTmFtZSJdLAogIF9leGNsdWRlZDMgPSBbImtleSJdOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pbmNsdWRlcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudGVzdC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pbmNsdWRlcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IFB1YlN1YiBmcm9tICdwdWJzdWItanMnOwppbXBvcnQgeyBtYXBTdGF0ZSB9IGZyb20gJ3Z1ZXgnOwppbXBvcnQgeyB0YXNrU2F2ZSwgdGFza0RldGFpbCwgdGFza1VwZGF0ZSwgZG93bmxvYWRNb2RlbCB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS92aWRlb1BhdHJvbC92aWRlb1BhdHJvbFJlY29yZCc7CmltcG9ydCB7IGdldERpY3Rpb25hcnlCeUNvZGUgfSBmcm9tICdAL3V0aWxzL2RpY3Rpb25hcnknOwppbXBvcnQgcGFnaW5hdGlvbiBmcm9tICdAL2NvbXBvbmVudHMvU3VwZXJQYWdpbmF0aW9uL2luZGV4LnZ1ZSc7CmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JzsKaW1wb3J0IHV0aWxzIGZyb20gJ0AvdXRpbHMvdXRpbHMnOwppbXBvcnQgeyBjYWxjRm9udFNpemUgfSBmcm9tICdAL3V0aWxzL3Jlc3BvbnNpdmVVdGlscyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnRWRpdEFkZFBhZ2UnLAogIHByb3BzOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGRlZmF1bHQ6ICdFZGl0QWRkUGFnZScsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfQogIH0sCiAgY29tcG9uZW50czogewogICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbgogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHRhYmxlTWF4SGVpZ2h0OiA1NTAsCiAgICAgIGFkZEVkaXRGb3JtOiB7CiAgICAgICAgcmVnaW9uSWQ6ICcnLAogICAgICAgIHJlZ2lvbk5hbWU6ICcnLAogICAgICAgIHRhc2tDb25mVmlkZW86IFtdCiAgICAgIH0sCiAgICAgIGFkZEVkaXRSdWxlczogewogICAgICAgIHJvYWROYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6Lev5q615ZCN56ew5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6IFsnYmx1cicsICdjaGFuZ2UnXQogICAgICAgIH1dLAogICAgICAgIGNoZWNrVHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ajgOafpeexu+Wei+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2JsdXInLCAnY2hhbmdlJ10KICAgICAgICB9XSwKICAgICAgICBpbnNwZWN0aW9uVHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+W3oeajgOexu+Wei+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2JsdXInLCAnY2hhbmdlJ10KICAgICAgICB9XSwKICAgICAgICBwbGFjZU5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmo4Dmn6XlnLDngrnkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICBpbnNwZWN0aW9uRGF0ZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+W3oeajgOaXpeacn+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBpbnNwZWN0aW9uVGltZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+W3oeajgOaXtumXtOS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBpbnNwZWN0aW9uUmVzdWx0OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5beh5qOA57uT5p6c5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHJlY29yZFVzZXI6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICforrDlvZXkurrkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgcGFnZVJlc3VsdDogewogICAgICAgIHNpemU6IDEsCiAgICAgICAgcGFnZVNpemVzOiAyMCwKICAgICAgICB0b3RhbDogMAogICAgICB9LAogICAgICBzYXZlTG9hZGluZzogZmFsc2UsCiAgICAgIC8vIOS4iuS8oGxvYWRpbmcKICAgICAgaWQ6ICcnLAogICAgICAvLyBpZOagh+ivhuespgogICAgICBzYXZlZDogZmFsc2UsCiAgICAgIC8vIOaWsOWinuaIkOWKnwogICAgICB3aGV0aGVyVG9DYW5jZWw6IGZhbHNlLAogICAgICBwdWJTdWI6IG51bGwsCiAgICAgIHBsYW5EaXNhYmxlOiBmYWxzZSwKICAgICAgY3VycmVudERhdGFEZWw6IFtdLAogICAgICBpc1Nob3dQb3BvdmVyOiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5bGV56S6UG9wb3ZlcgogICAgICB1cGxvYWRMb2FkaW5nOiBmYWxzZSwKICAgICAgLy8g5LiK5LygbG9hZGluZwogICAgICBkb3dubG9hZExvYWRpbmc6IGZhbHNlLAogICAgICAvLyDkuIvovb3mqKHniYhsb2FkaW5nCiAgICAgIHBvcG92ZXJXaWR0aDogY2FsY0ZvbnRTaXplKDM2MCkKICAgIH07CiAgfSwKICBjb21wdXRlZDogX29iamVjdFNwcmVhZCh7CiAgICBhY3Rpb25Vcmw6IGZ1bmN0aW9uIGFjdGlvblVybChfKSB7CiAgICAgIHJldHVybiB3aW5kb3cuY29udGV4dC5wb3J0YWw7CiAgICB9LAogICAgYWN0aW9uOiBmdW5jdGlvbiBhY3Rpb24oKSB7CiAgICAgIHJldHVybiAiIi5jb25jYXQodGhpcy5hY3Rpb25VcmwsICIvYml6VmlkZW9JbnNwZWN0aW9uL3YxL2ltcG9ydCIpOwogICAgfQogIH0sIG1hcFN0YXRlKHsKICAgIGhlYWRlcnM6IGZ1bmN0aW9uIGhlYWRlcnMoc3RhdGUpIHsKICAgICAgcmV0dXJuIHsKICAgICAgICBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIuY29uY2F0KHN0YXRlLmxvZ2luLmN1cnJlbnRVc2VyLnRva2VuKQogICAgICB9OwogICAgfQogIH0pKSwKICB3YXRjaDogewogICAgY29tcG9uZW50TmFtZTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKG5ld1ZhbCkgewogICAgICAgIGlmIChuZXdWYWwgPT09IHRoaXMuJG9wdGlvbnMubmFtZSkgewogICAgICAgICAgdGhpcy5vcGVuUGFnZSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmNsb3NlUGFnZSgpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICB0aGlzLnB1YlN1YiA9IFB1YlN1Yi5zdWJzY3JpYmUoJ0VkaXRBZGRQYWdlJywgZnVuY3Rpb24gKF8sIGRhdGEpIHsKICAgICAgaWYgKGRhdGEuaWQpIHsKICAgICAgICBfdGhpcy5pZCA9IGRhdGEuaWQ7CiAgICAgICAgX3RoaXMuZ2V0RGV0YWlsKGRhdGEuaWQpOwogICAgICB9IGVsc2UgewogICAgICAgIF90aGlzLmFkZEVkaXRGb3JtLnJlZ2lvbklkID0gZGF0YS5yZWdpb25JZCB8fCAnJzsKICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5yZWdpb25OYW1lID0gZGF0YS5yZWdpb25OYW1lIHx8ICcnOwogICAgICB9CiAgICB9KTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdldERpY3Rpb25hcnlCeUNvZGU6IGdldERpY3Rpb25hcnlCeUNvZGUsCiAgICAvLyDmiZPlvIDpobXpnaLmiafooYwKICAgIG9wZW5QYWdlOiBmdW5jdGlvbiBvcGVuUGFnZSgpIHsKICAgICAgdGhpcy53aGV0aGVyVG9DYW5jZWwgPSB0cnVlOwogICAgfSwKICAgIC8vIOWFs+mXremhtemdouaJp+ihjAogICAgY2xvc2VQYWdlOiBmdW5jdGlvbiBjbG9zZVBhZ2UoKSB7CiAgICAgIHZhciBfdGhpcyQkcmVmcyR1cGxvYWRlciwKICAgICAgICBfdGhpczIgPSB0aGlzOwogICAgICB2YXIgYWRkRWRpdFJ1bGVzID0gdGhpcy5hZGRFZGl0UnVsZXMsCiAgICAgICAgcHViU3ViID0gdGhpcy5wdWJTdWI7CiAgICAgIChfdGhpcyQkcmVmcyR1cGxvYWRlciA9IHRoaXMuJHJlZnMudXBsb2FkZXIpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHVwbG9hZGVyID09PSB2b2lkIDAgfHwgKF90aGlzJCRyZWZzJHVwbG9hZGVyID0gX3RoaXMkJHJlZnMkdXBsb2FkZXIudXBsb2FkZXIpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHVwbG9hZGVyID09PSB2b2lkIDAgfHwgX3RoaXMkJHJlZnMkdXBsb2FkZXIuY2FuY2VsKCk7CiAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKF8pIHsKICAgICAgICBPYmplY3QuYXNzaWduKF90aGlzMi4kZGF0YSwgX3RoaXMyLiRvcHRpb25zLmRhdGEuY2FsbChfdGhpczIpLCB7CiAgICAgICAgICBhZGRFZGl0UnVsZXM6IGFkZEVkaXRSdWxlcywKICAgICAgICAgIHB1YlN1YjogcHViU3ViCiAgICAgICAgfSk7CiAgICAgICAgLy8g6YeN572u57uE5Lu25pWw5o2uCiAgICAgICAgX3RoaXMyLiRuZXh0VGljayhmdW5jdGlvbiAoXykgewogICAgICAgICAgX3RoaXMyLiRyZWZzLmFkZEVkaXRGb3JtLiRlbC5zY3JvbGxUb3AgPSAwOwogICAgICAgICAgX3RoaXMyLiRyZWZzLmFkZEVkaXRGb3JtLmNsZWFyVmFsaWRhdGUoKTsKICAgICAgICB9KTsKICAgICAgfSwgMCk7CiAgICB9LAogICAgaGFuZGxlU2l6ZUNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2l6ZUNoYW5nZSh2YWwpIHsKICAgICAgdGhpcy5wYWdlUmVzdWx0LnNpemUgPSB2YWw7CiAgICAgIHRoaXMuZ2V0RGV0YWlsKHRoaXMuaWQpOwogICAgfSwKICAgIGhhbmRsZUN1cnJlbnRDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUN1cnJlbnRDaGFuZ2UodmFsKSB7CiAgICAgIHRoaXMucGFnZVJlc3VsdC5wYWdlID0gdmFsOwogICAgICB0aGlzLmdldERldGFpbCh0aGlzLmlkKTsKICAgIH0sCiAgICBoYW5kbGVTZWxlY3Rpb25DaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZVNlbGVjdGlvbkNoYW5nZSh2YWwpIHsKICAgICAgdGhpcy5jdXJyZW50RGF0YURlbCA9IHZhbC5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5rZXk7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVZpZGVvQ29uZmlybTogZnVuY3Rpb24gaGFuZGxlVmlkZW9Db25maXJtKGRhdGEpIHsKICAgICAgdmFyIHRlbXBEYXRhID0gZGF0YS5tYXAoZnVuY3Rpb24gKGl0ZW0sIGluZGV4KSB7CiAgICAgICAgaXRlbS5yYW5rID0gaW5kZXg7IC8vIGl0ZW0ucmFuayA/IGl0ZW0ucmFuayA6IGluZGV4ICsgMQogICAgICAgIGl0ZW0udmlkZW9JZCA9IGl0ZW0uaWQ7CiAgICAgICAgaXRlbS52aWRlb05hbWUgPSBpdGVtLm5hbWU7CiAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgIH0pOwogICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3Rhc2tDb25mVmlkZW8nLCB0ZW1wRGF0YSk7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGFza0NvbmZWaWRlbyA9IHRlbXBEYXRhOwogICAgICB0aGlzLiRmb3JjZVVwZGF0ZSgpOwogICAgfSwKICAgIGFkZFZpZGVvOiBmdW5jdGlvbiBhZGRWaWRlbygpIHsKICAgICAgdmFyIG5ld1ZpZGVvID0gewogICAgICAgIGtleTogdXRpbHMudXVpZCgpLAogICAgICAgIHJvYWROYW1lOiAnJywKICAgICAgICBjaGVja1R5cGU6ICcxJywKICAgICAgICBpbnNwZWN0aW9uVHlwZTogJzEnLAogICAgICAgIHBsYWNlTmFtZTogJycsCiAgICAgICAgaW5zcGVjdGlvbkRhdGU6IG1vbWVudCgpLmZvcm1hdCgnWVlZWS1NTS1ERCcpLAogICAgICAgIGluc3BlY3Rpb25UaW1lOiBtb21lbnQoKS5mb3JtYXQoJ0hIOm1tOnNzJyksCiAgICAgICAgaW5zcGVjdGlvblJlc3VsdDogJzEnLAogICAgICAgIHJlY29yZFVzZXI6ICcnLAogICAgICAgIHJlc3VsdFJlY29yZDogJycsCiAgICAgICAgcmVtYXJrOiAnJwogICAgICB9OwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnRhc2tDb25mVmlkZW8uc3BsaWNlKDAsIDAsIG5ld1ZpZGVvKTsKICAgICAgdGhpcy5wYWdlUmVzdWx0LnRvdGFsID0gdGhpcy5hZGRFZGl0Rm9ybS50YXNrQ29uZlZpZGVvLmxlbmd0aDsKICAgIH0sCiAgICBkZWxldGVWaWRlbzogZnVuY3Rpb24gZGVsZXRlVmlkZW8oaW5kZXgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuWIoOmZpOmAieS4reinhumikeeCueS9jeWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICB2YXIgdGVtcERhdGE7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgaWYgKGluZGV4IHx8IGluZGV4ID09PSAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0udGFza0NvbmZWaWRlby5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICB0ZW1wRGF0YSA9IF90aGlzMy5hZGRFZGl0Rm9ybS50YXNrQ29uZlZpZGVvLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gIV90aGlzMy5jdXJyZW50RGF0YURlbC5pbmNsdWRlcyhpdGVtLmtleSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKHRlbXBEYXRhLCBfdGhpczMuYWRkRWRpdEZvcm0udGFza0NvbmZWaWRlbyk7CiAgICAgICAgICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0udGFza0NvbmZWaWRlbyA9IF90b0NvbnN1bWFibGVBcnJheSh0ZW1wRGF0YSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF90aGlzMy5wYWdlUmVzdWx0LnRvdGFsID0gX3RoaXMzLmFkZEVkaXRGb3JtLnRhc2tDb25mVmlkZW8ubGVuZ3RoOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoXykgewogICAgICAgIHJldHVybiBfOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bor6bmg4UKICAgIGdldERldGFpbDogZnVuY3Rpb24gZ2V0RGV0YWlsKGlkKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBfeWllbGQkdGFza0RldGFpbCwgcmVnaW9uSWQsIHJlZ2lvbk5hbWUsIHJlc3Q7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGFza0RldGFpbChpZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkdGFza0RldGFpbCA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIHJlZ2lvbklkID0gX3lpZWxkJHRhc2tEZXRhaWwucmVnaW9uSWQ7CiAgICAgICAgICAgICAgcmVnaW9uTmFtZSA9IF95aWVsZCR0YXNrRGV0YWlsLnJlZ2lvbk5hbWU7CiAgICAgICAgICAgICAgcmVzdCA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfeWllbGQkdGFza0RldGFpbCwgX2V4Y2x1ZGVkKTsKICAgICAgICAgICAgICBfdGhpczQuYWRkRWRpdEZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoewogICAgICAgICAgICAgICAgcmVnaW9uSWQ6IHJlZ2lvbklkLAogICAgICAgICAgICAgICAgcmVnaW9uTmFtZTogcmVnaW9uTmFtZQogICAgICAgICAgICAgIH0sIHJlc3QpLCB7fSwgewogICAgICAgICAgICAgICAgdGFza0NvbmZWaWRlbzogW10KICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5qih54mI57G75Z6L5pS55Y+YCiAgICBjaGFuZ2VDb25mVHlwZTogZnVuY3Rpb24gY2hhbmdlQ29uZlR5cGUodmFsKSB7CiAgICAgIGlmICh2YWwgPT09ICcyJykgewogICAgICAgIHRoaXMucGxhbkRpc2FibGUgPSB0cnVlOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhblR5cGUgPSAnMSc7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5wbGFuRGlzYWJsZSA9IGZhbHNlOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhblR5cGUgPSAnMSc7CiAgICAgIH0KICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLmFkZEVkaXRGb3JtLnZhbGlkYXRlKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYyID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKHZhbGlkLCBvYmplY3QpIHsKICAgICAgICAgIHZhciBfdGhpczUkYWRkRWRpdEZvcm0sIF90aGlzNSRhZGRFZGl0Rm9ybSR0YSwgdGFza0NvbmZWaWRlbywgcmVnaW9uSWQsIHJlZ2lvbk5hbWUsIHJlc3QsIHF1ZXJ5RGF0YSwgQVBJLCBfeWllbGQkQVBJLCBzdGF0ZSwgbWVzc2FnZSwgdmFsdWU7CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gNDsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfdGhpczUuJG1lc3NhZ2Uud2FybmluZygiXHU2NzA5Ii5jb25jYXQoT2JqZWN0LmtleXMob2JqZWN0KS5sZW5ndGgsICJcdTRFMkFcdTVCNTdcdTZCQjVcdTY3MkFcdTkwMUFcdThGQzdcdTY4MjFcdTlBOENcdUZGMENcdThCRjdcdTZCNjNcdTc4NkVcdTU4NkJcdTUxOTlcdTg4NjhcdTUzNTVcdTUxODVcdTVCQjlcdTMwMDIiKSk7CiAgICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDE4OwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgX3RoaXM1LnNhdmVMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF90aGlzNSRhZGRFZGl0Rm9ybSA9IF90aGlzNS5hZGRFZGl0Rm9ybSwgX3RoaXM1JGFkZEVkaXRGb3JtJHRhID0gX3RoaXM1JGFkZEVkaXRGb3JtLnRhc2tDb25mVmlkZW8sIHRhc2tDb25mVmlkZW8gPSBfdGhpczUkYWRkRWRpdEZvcm0kdGEgPT09IHZvaWQgMCA/IFtdIDogX3RoaXM1JGFkZEVkaXRGb3JtJHRhLCByZWdpb25JZCA9IF90aGlzNSRhZGRFZGl0Rm9ybS5yZWdpb25JZCwgcmVnaW9uTmFtZSA9IF90aGlzNSRhZGRFZGl0Rm9ybS5yZWdpb25OYW1lLCByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzNSRhZGRFZGl0Rm9ybSwgX2V4Y2x1ZGVkMik7CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM1LmlkKSB7CiAgICAgICAgICAgICAgICAgIHF1ZXJ5RGF0YSA9IF9vYmplY3RTcHJlYWQoewogICAgICAgICAgICAgICAgICAgIHJlZ2lvbklkOiByZWdpb25JZCwKICAgICAgICAgICAgICAgICAgICByZWdpb25OYW1lOiByZWdpb25OYW1lCiAgICAgICAgICAgICAgICAgIH0sIHJlc3QpOwogICAgICAgICAgICAgICAgICBBUEkgPSB0YXNrVXBkYXRlOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgcXVlcnlEYXRhID0gdGFza0NvbmZWaWRlby5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICB2YXIga2V5ID0gaXRlbS5rZXksCiAgICAgICAgICAgICAgICAgICAgICByZXN0ID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKGl0ZW0sIF9leGNsdWRlZDMpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBfb2JqZWN0U3ByZWFkKHsKICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbklkOiByZWdpb25JZCwKICAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbk5hbWU6IHJlZ2lvbk5hbWUKICAgICAgICAgICAgICAgICAgICB9LCByZXN0KTsKICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgIEFQSSA9IHRhc2tTYXZlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX2NvbnRleHQzLnByZXYgPSA3OwogICAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAxMDsKICAgICAgICAgICAgICAgIHJldHVybiBBUEkocXVlcnlEYXRhKTsKICAgICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICAgICAgX3lpZWxkJEFQSSA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkQVBJLnN0YXRlOwogICAgICAgICAgICAgICAgbWVzc2FnZSA9IF95aWVsZCRBUEkubWVzc2FnZTsKICAgICAgICAgICAgICAgIHZhbHVlID0gX3lpZWxkJEFQSS52YWx1ZTsKICAgICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgICBtZXNzYWdlID0gX3RoaXM1LmlkID8gJ+e8lui+kScgOiAn5paw5aKeJzsKICAgICAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLnN1Y2Nlc3MoIlx1ODlDNlx1OTg5MVx1NURFMVx1NjdFNVx1NkEyMVx1NzI0OCIuY29uY2F0KG1lc3NhZ2UsICJcdTYyMTBcdTUyOUYiKSk7CiAgICAgICAgICAgICAgICAgIF90aGlzNS5jaGFuZ2VQYWdlKCdUYWJsZVBhZ2UnLCBfdGhpczUuaWQgPyAnZWRpdCcgOiAnYWRkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMTU7CiAgICAgICAgICAgICAgICBfdGhpczUuc2F2ZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuZmluaXNoKDE1KTsKICAgICAgICAgICAgICBjYXNlIDE4OgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLnN0b3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTMsIG51bGwsIFtbNywsIDE1LCAxOF1dKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyKSB7CiAgICAgICAgICByZXR1cm4gX3JlZjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9OwogICAgICB9KCkpOwogICAgfSwKICAgIC8vIOS4i+i9veWvvOWFpeaooeeJiAogICAgZG93bmxvYWRUZW1wbGF0ZTogZnVuY3Rpb24gZG93bmxvYWRUZW1wbGF0ZSgpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHRoaXMuZG93bmxvYWRMb2FkaW5nID0gdHJ1ZTsKICAgICAgZG93bmxvYWRNb2RlbCgpLnRoZW4oZnVuY3Rpb24gKF8pIHsKICAgICAgICByZXR1cm4gX3RoaXM2LiRtZXNzYWdlLnN1Y2Nlc3MoJ+S4i+i9veinhumikeW3oeajgOiusOW9leaooeadv+aIkOWKnycpOwogICAgICB9KS5maW5hbGx5KGZ1bmN0aW9uIChfKSB7CiAgICAgICAgX3RoaXM2LmRvd25sb2FkTG9hZGluZyA9IGZhbHNlOwogICAgICAgIF90aGlzNi5pc1Nob3dQb3BvdmVyID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOaWh+S7tuS4iuS8oOWJjQogICAgYmVmb3JlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVVcGxvYWQoZmlsZSkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICBfdGhpczcudXBsb2FkTG9hZGluZyA9IHRydWU7CiAgICAgICAgdmFyIHNpemUgPSBmaWxlLnNpemUsCiAgICAgICAgICBuYW1lID0gZmlsZS5uYW1lOwogICAgICAgIF90aGlzNy4kY29uZmlybSgiXHU4QkY3XHU3ODZFXHU4QkE0XHU2NjJGXHU1NDI2XHU1QkZDXHU1MTY1IFx1MjAxQyIuY29uY2F0KG5hbWUsICJcdTIwMUQgXHVGRjFGIiksICfmj5DnpLonLCB7CiAgICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruiupCcsCiAgICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKF8pIHsKICAgICAgICAgIHZhciBwYXNzZWRPck5vdCA9IHRydWU7IC8vIOaYr+WQpumAmui/h+mqjOivgQogICAgICAgICAgdmFyIG1heFNpemUgPSA1MDAgKiAxMDI0ICogMTAyNDsgLy8gMjBNQgogICAgICAgICAgdmFyIHR5cGVSZWd1bGFyID0gL1wuKHhsc3x4bHN4KSQvaTsKICAgICAgICAgIHZhciB2ZXJpZmljYXRpb24gPSBbewogICAgICAgICAgICBjb25kaXRpb246ICF0eXBlUmVndWxhci50ZXN0KG5hbWUpLAogICAgICAgICAgICByZXN1bHQ6IGZ1bmN0aW9uIHJlc3VsdCgpIHsKICAgICAgICAgICAgICByZXR1cm4gX3RoaXM3LiRtZXNzYWdlLmVycm9yKCflj6rog73kuIrkvKB4bHPmiJZ4bHN45paH5Lu257G75Z6LJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH1dOwogICAgICAgICAgdmVyaWZpY2F0aW9uLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgaWYgKGl0ZW0uY29uZGl0aW9uKSB7CiAgICAgICAgICAgICAgaXRlbS5yZXN1bHQoKTsKICAgICAgICAgICAgICBwYXNzZWRPck5vdCA9IGZhbHNlOwogICAgICAgICAgICAgIF90aGlzNy51cGxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgcGFzc2VkT3JOb3QgPyByZXNvbHZlKCkgOiByZWplY3QoKTsKICAgICAgICAgIF90aGlzNy5pc1Nob3dQb3BvdmVyID0gcGFzc2VkT3JOb3Q7CiAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKF8pIHsKICAgICAgICAgIHJlamVjdCgpOwogICAgICAgICAgX3RoaXM3LmlzU2hvd1BvcG92ZXIgPSB0cnVlOwogICAgICAgICAgX3RoaXM3LnVwbG9hZExvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS53YXJuaW5nKCflt7Llj5bmtojlt6Hmo4DorrDlvZXkuIrkvKAnKTsKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5paH5YyW5LiK5Lyg5oiQ5YqfCiAgICBoYW5kbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVTdWNjZXNzKHJlc3BvbnNlKSB7CiAgICAgIHZhciBfcmVzcG9uc2UkdmFsdWUgPSByZXNwb25zZS52YWx1ZSwKICAgICAgICB2YWx1ZSA9IF9yZXNwb25zZSR2YWx1ZSA9PT0gdm9pZCAwID8gW10gOiBfcmVzcG9uc2UkdmFsdWU7CiAgICAgIHRoaXMudG9waWNEaWFsb2cgPSBmYWxzZTsKICAgICAgdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCflt6Hmo4DorrDlvZXlr7zlhaXmiJDlip8nKTsKICAgICAgdGhpcy51cGxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGFza0NvbmZWaWRlbyA9IHZhbHVlOwogICAgICB0aGlzLnBhZ2VSZXN1bHQudG90YWwgPSB2YWx1ZS5sZW5ndGg7CiAgICAgIHRoaXMucGFnZVJlc3VsdC5zaXplID0gMTsKICAgICAgdGhpcy5pc1Nob3dQb3BvdmVyID0gZmFsc2U7CiAgICB9LAogICAgLy8g5paH5Lu25LiK5Lyg5aSx6LSlCiAgICBoYW5kbGVFcnJvcjogZnVuY3Rpb24gaGFuZGxlRXJyb3IoKSB7CiAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoJ+W3oeajgOiusOW9leWvvOWFpeWksei0pe+8jOivt+mHjeivlScpOwogICAgICB0aGlzLnVwbG9hZExvYWRpbmcgPSBmYWxzZTsKICAgICAgdGhpcy5pc1Nob3dQb3BvdmVyID0gZmFsc2U7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgIHZhciBkYXRhID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTsKICAgICAgaWYgKCFwYWdlTmFtZSkgcmV0dXJuOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIGZ1bmN0aW9uIChfKSB7CiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIF9vYmplY3RTcHJlYWQoewogICAgICAgICAgdHlwZTogdHlwZQogICAgICAgIH0sIGRhdGEpKTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgLy8g5Zyo57uE5Lu26ZSA5q+B5LmL5YmNIOa4hemZpOiuoumYhea2iOaBrwogICAgUHViU3ViLnVuc3Vic2NyaWJlKHRoaXMucHViU3ViKTsKICB9Cn07"},null]}