{"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\\RoadDamageRegister\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\roadDamageComp\\RoadDamageRegister\\components\\EditAddPage\\index.vue","mtime":1751533534110},{"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:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkucHVzaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc3BsaWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuZmlsdGVyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IFB1YlN1YiBmcm9tICdwdWJzdWItanMnOwppbXBvcnQgeyBsaXN0RGVsZXRpb24sIHRhYmxlQWRkLCB0YWJsZURldGFpbCwgdGFibGVFZGl0IH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL3JvYWREYW1hZ2VDb21wL3JvYWREYW1hZ2VSZWdpc3Rlcic7CmltcG9ydCB7IGRpY3Rpb25hcnlFc2NhcGUsIGdldERpY3Rpb25hcnlCeUNvZGUgfSBmcm9tICdAL3V0aWxzL2RpY3Rpb25hcnknOwppbXBvcnQgUm9hZENob2ljZURpYWxvZyBmcm9tICcuL2NvbXBvbmVudHMvUm9hZENob2ljZURpYWxvZyc7CmltcG9ydCBVc2VyQ2hvaWNlRGlhbG9nIGZyb20gJy4vY29tcG9uZW50cy9Vc2VyQ2hvaWNlRGlhbG9nJzsKaW1wb3J0IEV2ZW50Q2hvaWNlRGlhbG9nIGZyb20gJy4vY29tcG9uZW50cy9FdmVudENob2ljZURpYWxvZyc7CmltcG9ydCBEZXRhaWxlZExpc3RHaWFsb2cgZnJvbSAnLi9jb21wb25lbnRzL0RldGFpbGVkTGlzdEdpYWxvZyc7CmltcG9ydCB7IHRhYmxlRGF0YSB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3BhdHJvbEFuZFJlc2N1ZVRlYW1zTWdtdCc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnRWRpdEFkZFBhZ2UnLAogIGNvbXBvbmVudHM6IHsKICAgIFJvYWRDaG9pY2VEaWFsb2c6IFJvYWRDaG9pY2VEaWFsb2csCiAgICBVc2VyQ2hvaWNlRGlhbG9nOiBVc2VyQ2hvaWNlRGlhbG9nLAogICAgRXZlbnRDaG9pY2VEaWFsb2c6IEV2ZW50Q2hvaWNlRGlhbG9nLAogICAgRGV0YWlsZWRMaXN0R2lhbG9nOiBEZXRhaWxlZExpc3RHaWFsb2cKICB9LAogIHByb3BzOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGRlZmF1bHQ6ICdFZGl0QWRkUGFnZScsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfQogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIGZvcm1Mb2FkaW5nOiB0cnVlLAogICAgICBhZGRFZGl0Rm9ybTogewogICAgICAgIHJvYWQ6IHt9LAogICAgICAgIHVzZXI6IHt9LAogICAgICAgIGV2ZW50OiB7fSwKICAgICAgICBjb21wZW5zYXRpb25EZXRhaWxzU2luZ2xlOiBbXSwKICAgICAgICBjb21wZW5zYXRpb25EZXRhaWxzRG91YmxlOiBbXQogICAgICB9LAogICAgICBhZGRFZGl0UnVsZXM6IHsKICAgICAgICAvLyByZXNjdWVUZWw6IFsKICAgICAgICAvLyAgIHsKICAgICAgICAvLyAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgLy8gICAgIG1lc3NhZ2U6ICfmiqXmoYjnlLXor53kuI3og73kuLrnqbonLAogICAgICAgIC8vICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICAvLyAgIH0KICAgICAgICAvLyBdLAogICAgICAgIC8vIHJlc2N1ZVRpbWU6IFsKICAgICAgICAvLyAgIHsKICAgICAgICAvLyAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgLy8gICAgIG1lc3NhZ2U6ICfmiqXmoYjml7bpl7TkuI3og73kuLrnqbonLAogICAgICAgIC8vICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICAvLyAgIH0KICAgICAgICAvLyBdLAogICAgICAgIC8vIGV2ZW50VHlwZTogWwogICAgICAgIC8vICAgewogICAgICAgIC8vICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAvLyAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeS6i+S7tuexu+WeiycsCiAgICAgICAgLy8gICAgIHRyaWdnZXI6IFsnY2hhbmdlJ10KICAgICAgICAvLyAgIH0KICAgICAgICAvLyBdLAogICAgICAgIC8vIHJlc2N1ZVR5cGU6IFsKICAgICAgICAvLyAgIHsKICAgICAgICAvLyAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgLy8gICAgIG1lc3NhZ2U6ICfmlZHmj7TnsbvlnovkuI3og73kuLrnqbonLAogICAgICAgIC8vICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddCiAgICAgICAgLy8gICB9CiAgICAgICAgLy8gXSwKICAgICAgICAvLyByb2FkSWQ6IFsKICAgICAgICAvLyAgIHsKICAgICAgICAvLyAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgLy8gICAgIG1lc3NhZ2U6ICfot6/mrrXkv6Hmga/kuI3og73kuLrnqbonLAogICAgICAgIC8vICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddCiAgICAgICAgLy8gICB9CiAgICAgICAgLy8gXSwKICAgICAgICAvLyB0ZWFtSWQ6IFsKICAgICAgICAvLyAgIHsKICAgICAgICAvLyAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgLy8gICAgIG1lc3NhZ2U6ICfmtL7pgaPpmJ/kvI3kuI3og73kuLrnqbonLAogICAgICAgIC8vICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddCiAgICAgICAgLy8gICB9CiAgICAgICAgLy8gXSwKICAgICAgICAvLyBldmVudFRpbWU6IFsKICAgICAgICAvLyAgIHsKICAgICAgICAvLyAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgLy8gICAgIG1lc3NhZ2U6ICfkuovku7blj5HnlJ/ml7bpl7TkuI3og73kuLrnqbonLAogICAgICAgIC8vICAgICB0cmlnZ2VyOiBbJ2NoYW5nZSddCiAgICAgICAgLy8gICB9CiAgICAgICAgLy8gXQogICAgICB9LAogICAgICBzYXZlTG9hZGluZzogZmFsc2UsCiAgICAgIC8vIOS4iuS8oGxvYWRpbmcKICAgICAgaWQ6ICcnLAogICAgICAvLyBpZOagh+ivhuespgogICAgICByb2FkQ2hvaWNlRGlhbG9nOiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5bGV56S66YCJ5oup6Lev5q615by55bGCCiAgICAgIHVzZXJDaG9pY2VEaWFsb2c6IGZhbHNlLAogICAgICBldmVudENob2ljZURpYWxvZzogZmFsc2UsCiAgICAgIGRldGFpbGVkTGlzdERpYWxvZzogZmFsc2UsCiAgICAgIHJvdXRlckRhdGE6IFtdLAogICAgICAvLyDot6/nur/mlbDmja4KICAgICAgcHViU3ViOiBudWxsLAogICAgICB0ZWFtVHJlZURhdGE6IFtdLAogICAgICAvLyDmlZHmj7TpmJ/kvI3nu4Tnu4fmoJEKICAgICAgZXZlbnRHcmFkZU9wdGlvbnM6IFsKICAgICAgLy/kuovku7bnrYnnuqcKICAgICAgewogICAgICAgIGxhYmVsOiAn5peg562J57qnJywKICAgICAgICB2YWx1ZTogMAogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICcx57qnJywKICAgICAgICB2YWx1ZTogMQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICcy57qnJywKICAgICAgICB2YWx1ZTogMgogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICcz57qnJywKICAgICAgICB2YWx1ZTogMwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICc057qnJywKICAgICAgICB2YWx1ZTogNAogICAgICB9XSwKICAgICAgdGFibGVEYXRhOiBbXSwKICAgICAgaXRlbURldGFpbDoge30sCiAgICAgIGl0ZW1JbmRleDogJycsCiAgICAgIG9wZW5UWXBlOiAnYWRkJywKICAgICAgaXNEaXNhYmxlZDogdHJ1ZQogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsKSB7CiAgICAgICAgaWYgKG5ld1ZhbCA9PT0gdGhpcy4kb3B0aW9ucy5uYW1lKSB7CiAgICAgICAgICB0aGlzLm9wZW5QYWdlKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2xvc2VQYWdlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHRoaXMucHViU3ViID0gUHViU3ViLnN1YnNjcmliZSgnRWRpdEFkZFBhZ2UnLCBmdW5jdGlvbiAoXywgZGF0YSkgewogICAgICBpZiAoZGF0YS5pZCkgewogICAgICAgIF90aGlzLmlkID0gZGF0YS5pZDsKICAgICAgICBfdGhpcy5nZXRPcmdUcmVlRGF0YSgpOwogICAgICAgIF90aGlzLmdldERldGFpbChkYXRhLmlkKTsKICAgICAgfQogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBkaWN0aW9uYXJ5RXNjYXBlOiBkaWN0aW9uYXJ5RXNjYXBlLAogICAgZ2V0RGljdGlvbmFyeUJ5Q29kZTogZ2V0RGljdGlvbmFyeUJ5Q29kZSwKICAgIGV2ZW50TGV2ZWxDaGFuZ2U6IGZ1bmN0aW9uIGV2ZW50TGV2ZWxDaGFuZ2UodmFsdWUpIHsKICAgICAgdmFyIGFycmF5ID0gdGhpcy5ldmVudEdyYWRlT3B0aW9ucy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICBpdGVtLnZhbHVlID09PSB2YWx1ZTsKICAgICAgfSk7CiAgICAgIGlmIChhcnJheS5sZW5ndGggPiAwKSB7CiAgICAgICAgcmV0dXJuIGFycmF5WzBdLmxhYmVsOwogICAgICB9IGVsc2UgewogICAgICAgIHJldHVybiAnLSc7CiAgICAgIH0KICAgIH0sCiAgICBjbGlja0VkaXQ6IGZ1bmN0aW9uIGNsaWNrRWRpdChpdGVtLCBpbmRleCkgewogICAgICB0aGlzLmRldGFpbGVkTGlzdERpYWxvZyA9IHRydWU7CiAgICAgIHRoaXMuaXRlbURldGFpbCA9IGl0ZW07CiAgICAgIHRoaXMuaXRlbUluZGV4ID0gaW5kZXg7CiAgICAgIHRoaXMub3BlblRZcGUgPSAnZWRpdCc7CiAgICB9LAogICAgY2xpY2tEZWxldGU6IGZ1bmN0aW9uIGNsaWNrRGVsZXRlKGl0ZW0sIGluZGV4KSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICB0aGlzLiRjb25maXJtKCfnoa7lrprliKDpmaTmraTmnaHmlbDmja7lkJfvvJ8nLCAn5o+Q56S6JywgewogICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAn56Gu6K6kJywKICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiAn5Y+W5raIJywKICAgICAgICB0eXBlOiAnd2FybmluZycKICAgICAgfSkudGhlbigvKiNfX1BVUkVfXyovX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRsaXN0RGVsZXRpb24sIHN0YXRlLCBtZXNzYWdlOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIGlmICghaXRlbS5pZCkgewogICAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIGxpc3REZWxldGlvbihpdGVtLmlkKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCRsaXN0RGVsZXRpb24gPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJGxpc3REZWxldGlvbi5zdGF0ZTsKICAgICAgICAgICAgICBtZXNzYWdlID0gX3lpZWxkJGxpc3REZWxldGlvbi5tZXNzYWdlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXMyLiRtZXNzYWdlLnN1Y2Nlc3MoJ+WIoOmZpOaIkOWKnycpOwogICAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHlTdWJqZWN0VHlwZSA9PT0gJzEnKSB7CiAgICAgICAgICAgICAgICAgIF90aGlzMi5hZGRFZGl0Rm9ybS5jb21wZW5zYXRpb25EZXRhaWxzU2luZ2xlLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICBfdGhpczIuYWRkRWRpdEZvcm0uY29tcGVuc2F0aW9uRGV0YWlsc0RvdWJsZS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gdGhpcy5hZGRFZGl0Rm9ybS5jb21wZW5zYXRpb25EZXRhaWxzLnNwbGljZShpbmRleCwgMSkKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEwOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgaWYgKGl0ZW0ucHJvcGVydHlTdWJqZWN0VHlwZSA9PT0gJzEnKSB7CiAgICAgICAgICAgICAgICBfdGhpczIuYWRkRWRpdEZvcm0uY29tcGVuc2F0aW9uRGV0YWlsc1NpbmdsZS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBfdGhpczIuYWRkRWRpdEZvcm0uY29tcGVuc2F0aW9uRGV0YWlsc0RvdWJsZS5zcGxpY2UoaW5kZXgsIDEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAvLyB0aGlzLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHMuc3BsaWNlKGluZGV4LCAxKQogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgIH0pKSk7CiAgICB9LAogICAgc2VuZERhdGE6IGZ1bmN0aW9uIHNlbmREYXRhKGRhdGEpIHsKICAgICAgaWYgKHRoaXMub3BlblRZcGUgPT09ICdlZGl0JykgewogICAgICAgIGlmIChkYXRhLnByb3BlcnR5U3ViamVjdFR5cGUgPT09ICcxJykgewogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5jb21wZW5zYXRpb25EZXRhaWxzU2luZ2xlW3RoaXMuaXRlbUluZGV4XSA9IGRhdGE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uY29tcGVuc2F0aW9uRGV0YWlsc0RvdWJsZVt0aGlzLml0ZW1JbmRleF0gPSBkYXRhOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBpZiAoZGF0YS5wcm9wZXJ0eVN1YmplY3RUeXBlID09PSAnMScpIHsKICAgICAgICAgIGlmICh0aGlzLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHNTaW5nbGUubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHNTaW5nbGUucHVzaChkYXRhKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnY29tcGVuc2F0aW9uRGV0YWlsc1NpbmdsZScsIFtkYXRhXSk7CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGlmICh0aGlzLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHNEb3VibGUubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHNEb3VibGUucHVzaChkYXRhKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnY29tcGVuc2F0aW9uRGV0YWlsc0RvdWJsZScsIFtkYXRhXSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgLy8g6I635Y+W5YWs5Y+45qCRCiAgICBnZXRPcmdUcmVlRGF0YTogZnVuY3Rpb24gZ2V0T3JnVHJlZURhdGEoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBkYXRhOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRGF0YSh7CiAgICAgICAgICAgICAgICBwYWdlQmVhbjogewogICAgICAgICAgICAgICAgICBwYWdlU2l6ZTogLTEKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIGRhdGEgPSBfY29udGV4dDIuc2VudDsKICAgICAgICAgICAgICBfdGhpczMudGVhbVRyZWVEYXRhID0gZGF0YS5yb3dzOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDmiYDlsZ7mlZHmj7TpmJ/kvI3pgInmi6kKICAgIHRlYW1JZENoYW5nZTogZnVuY3Rpb24gdGVhbUlkQ2hhbmdlKCkgewogICAgICB2YXIgX3RoaXMkJHJlZnMkdGVhbUlkQ2FzLCBfdGhpcyQkcmVmcyR0ZWFtSWRDYXMyOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnRlYW1GdWxsSWQgPSAoKF90aGlzJCRyZWZzJHRlYW1JZENhcyA9IHRoaXMuJHJlZnMudGVhbUlkQ2FzY2FkZXIpID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHRlYW1JZENhcyA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyR0ZWFtSWRDYXMgPSBfdGhpcyQkcmVmcyR0ZWFtSWRDYXMuZ2V0Q2hlY2tlZE5vZGVzKClbMF0pID09PSBudWxsIHx8IF90aGlzJCRyZWZzJHRlYW1JZENhcyA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyR0ZWFtSWRDYXMgPSBfdGhpcyQkcmVmcyR0ZWFtSWRDYXMuZGF0YSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdGVhbUlkQ2FzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdGhpcyQkcmVmcyR0ZWFtSWRDYXMucGF0aCkgfHwgJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGVhbUlkID0gKChfdGhpcyQkcmVmcyR0ZWFtSWRDYXMyID0gdGhpcy4kcmVmcy50ZWFtSWRDYXNjYWRlcikgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdGVhbUlkQ2FzMiA9PT0gdm9pZCAwIHx8IChfdGhpcyQkcmVmcyR0ZWFtSWRDYXMyID0gX3RoaXMkJHJlZnMkdGVhbUlkQ2FzMi5nZXRDaGVja2VkTm9kZXMoKVswXSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdGVhbUlkQ2FzMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkJHJlZnMkdGVhbUlkQ2FzMi52YWx1ZSkgfHwgJyc7CiAgICB9LAogICAgLy8g5omT5byA6aG16Z2i5omn6KGMCiAgICBvcGVuUGFnZTogZnVuY3Rpb24gb3BlblBhZ2UoKSB7fSwKICAgIC8vIOWxleekuuW8ueWxggogICAgc2hvd0RpYWxvZzogZnVuY3Rpb24gc2hvd0RpYWxvZyhkaWFsb2dOYW1lLCB0eXBlKSB7CiAgICAgIHRoaXMub3BlblRZcGUgPSAnYWRkJzsKICAgICAgaWYgKCFkaWFsb2dOYW1lKSByZXR1cm47CiAgICAgIHRoaXNbZGlhbG9nTmFtZSArICdEaWFsb2cnXSA9IHRydWU7CiAgICAgIHRoaXMuaXRlbURldGFpbCA9IHt9OwogICAgICBpZiAodHlwZSkgewogICAgICAgIHRoaXMuaXRlbURldGFpbC5wcm9wZXJ0eVN1YmplY3RUeXBlID0gdHlwZTsKICAgICAgfQogICAgfSwKICAgIC8vIOWFs+mXremhtemdouaJp+ihjAogICAgY2xvc2VQYWdlOiBmdW5jdGlvbiBjbG9zZVBhZ2UoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICB2YXIgcHViU3ViID0gdGhpcy5wdWJTdWIsCiAgICAgICAgYWRkRWRpdFJ1bGVzID0gdGhpcy5hZGRFZGl0UnVsZXM7CiAgICAgIC8vIOmHjee9rue7hOS7tuaVsOaNrgogICAgICBPYmplY3QuYXNzaWduKHRoaXMuJGRhdGEsIHRoaXMuJG9wdGlvbnMuZGF0YS5jYWxsKHRoaXMpLCB7CiAgICAgICAgcHViU3ViOiBwdWJTdWIsCiAgICAgICAgYWRkRWRpdFJ1bGVzOiBhZGRFZGl0UnVsZXMKICAgICAgfSk7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgX3RoaXM0LiRyZWZzLmFkZEVkaXRGb3JtLiRlbC5zY3JvbGxUb3AgPSAwOwogICAgICAgIF90aGlzNC4kcmVmcy5hZGRFZGl0Rm9ybS5jbGVhclZhbGlkYXRlKCk7CiAgICAgIH0pOwogICAgfSwKICAgIGhhbmRsZVJvYWRTZWxlY3Q6IGZ1bmN0aW9uIGhhbmRsZVJvYWRTZWxlY3Qocm9hZCkgewogICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3JvYWRJZCcsIHJvYWQucm9hZElkKTsKICAgIH0sCiAgICBoYW5kbGVVc2VyU2VsZWN0OiBmdW5jdGlvbiBoYW5kbGVVc2VyU2VsZWN0KHVzZXIpIHsKICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICd1c2VySWQnLCB1c2VyLnVzZXJJZCk7CiAgICB9LAogICAgaGFuZGxlRXZlbnRTZWxlY3Q6IGZ1bmN0aW9uIGhhbmRsZUV2ZW50U2VsZWN0KGV2ZW50KSB7CiAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnZXZlbnRJZCcsIGV2ZW50LmV2ZW50SWQpOwogICAgfSwKICAgIC8vIOiOt+WPluivpuaDhQogICAgZ2V0RGV0YWlsOiBmdW5jdGlvbiBnZXREZXRhaWwoaWQpIHsKICAgICAgdmFyIF90aGlzNSA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIF90aGlzNSRhZGRFZGl0Rm9ybSwgX3RoaXM1JGFkZEVkaXRGb3JtJHJvLCByb2FkQ29kZSwgX3RoaXM1JGFkZEVkaXRGb3JtJHJvMiwgcm9hZElkLCBfdGhpczUkYWRkRWRpdEZvcm0kcm8zLCByb2FkTmFtZSwgX3RoaXM1JGFkZEVkaXRGb3JtJHVzLCB1c2VySWQsIF90aGlzNSRhZGRFZGl0Rm9ybSRldiwgZXZlbnRJZCwgX3RoaXM1JGFkZEVkaXRGb3JtJGV2MiwgZXZlbnRObywgX3RoaXM1JGFkZEVkaXRGb3JtJHVzMiwgdXNlck5hbWUsIF90aGlzNSRhZGRFZGl0Rm9ybSRwZSwgcGVnU1ZhbCwgX3RoaXM1JGFkZEVkaXRGb3JtJHBlMiwgcGVnRVZhbCwgc3RhcnRQZWdBcnIsIF9zdGFydFBlZ0FycjsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQzLnByZXYgPSAwOwogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEZXRhaWwoaWQpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3RoaXM1LmFkZEVkaXRGb3JtID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgX3RoaXM1JGFkZEVkaXRGb3JtID0gX3RoaXM1LmFkZEVkaXRGb3JtLCBfdGhpczUkYWRkRWRpdEZvcm0kcm8gPSBfdGhpczUkYWRkRWRpdEZvcm0ucm9hZENvZGUsIHJvYWRDb2RlID0gX3RoaXM1JGFkZEVkaXRGb3JtJHJvID09PSB2b2lkIDAgPyAnJyA6IF90aGlzNSRhZGRFZGl0Rm9ybSRybywgX3RoaXM1JGFkZEVkaXRGb3JtJHJvMiA9IF90aGlzNSRhZGRFZGl0Rm9ybS5yb2FkSWQsIHJvYWRJZCA9IF90aGlzNSRhZGRFZGl0Rm9ybSRybzIgPT09IHZvaWQgMCA/ICcnIDogX3RoaXM1JGFkZEVkaXRGb3JtJHJvMiwgX3RoaXM1JGFkZEVkaXRGb3JtJHJvMyA9IF90aGlzNSRhZGRFZGl0Rm9ybS5yb2FkTmFtZSwgcm9hZE5hbWUgPSBfdGhpczUkYWRkRWRpdEZvcm0kcm8zID09PSB2b2lkIDAgPyAnJyA6IF90aGlzNSRhZGRFZGl0Rm9ybSRybzMsIF90aGlzNSRhZGRFZGl0Rm9ybSR1cyA9IF90aGlzNSRhZGRFZGl0Rm9ybS51c2VySWQsIHVzZXJJZCA9IF90aGlzNSRhZGRFZGl0Rm9ybSR1cyA9PT0gdm9pZCAwID8gJycgOiBfdGhpczUkYWRkRWRpdEZvcm0kdXMsIF90aGlzNSRhZGRFZGl0Rm9ybSRldiA9IF90aGlzNSRhZGRFZGl0Rm9ybS5ldmVudElkLCBldmVudElkID0gX3RoaXM1JGFkZEVkaXRGb3JtJGV2ID09PSB2b2lkIDAgPyAnJyA6IF90aGlzNSRhZGRFZGl0Rm9ybSRldiwgX3RoaXM1JGFkZEVkaXRGb3JtJGV2MiA9IF90aGlzNSRhZGRFZGl0Rm9ybS5ldmVudE5vLCBldmVudE5vID0gX3RoaXM1JGFkZEVkaXRGb3JtJGV2MiA9PT0gdm9pZCAwID8gJycgOiBfdGhpczUkYWRkRWRpdEZvcm0kZXYyLCBfdGhpczUkYWRkRWRpdEZvcm0kdXMyID0gX3RoaXM1JGFkZEVkaXRGb3JtLnVzZXJOYW1lLCB1c2VyTmFtZSA9IF90aGlzNSRhZGRFZGl0Rm9ybSR1czIgPT09IHZvaWQgMCA/ICcnIDogX3RoaXM1JGFkZEVkaXRGb3JtJHVzMiwgX3RoaXM1JGFkZEVkaXRGb3JtJHBlID0gX3RoaXM1JGFkZEVkaXRGb3JtLnBlZ1NWYWwsIHBlZ1NWYWwgPSBfdGhpczUkYWRkRWRpdEZvcm0kcGUgPT09IHZvaWQgMCA/ICcnIDogX3RoaXM1JGFkZEVkaXRGb3JtJHBlLCBfdGhpczUkYWRkRWRpdEZvcm0kcGUyID0gX3RoaXM1JGFkZEVkaXRGb3JtLnBlZ0VWYWwsIHBlZ0VWYWwgPSBfdGhpczUkYWRkRWRpdEZvcm0kcGUyID09PSB2b2lkIDAgPyAnJyA6IF90aGlzNSRhZGRFZGl0Rm9ybSRwZTI7CiAgICAgICAgICAgICAgX3RoaXM1LmFkZEVkaXRGb3JtLnJvYWQgPSB7CiAgICAgICAgICAgICAgICByb2FkQ29kZTogcm9hZENvZGUsCiAgICAgICAgICAgICAgICByb2FkSWQ6IHJvYWRJZCwKICAgICAgICAgICAgICAgIHJvYWROYW1lOiByb2FkTmFtZQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX3RoaXM1LmFkZEVkaXRGb3JtLnVzZXIgPSB7CiAgICAgICAgICAgICAgICB1c2VySWQ6IHVzZXJJZCwKICAgICAgICAgICAgICAgIHVzZXJOYW1lOiB1c2VyTmFtZQogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX3RoaXM1LmFkZEVkaXRGb3JtLmV2ZW50ID0gewogICAgICAgICAgICAgICAgZXZlbnRJZDogZXZlbnRJZCwKICAgICAgICAgICAgICAgIGV2ZW50Tm86IGV2ZW50Tm8KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIGlmIChwZWdTVmFsKSB7CiAgICAgICAgICAgICAgICBzdGFydFBlZ0FyciA9IHBlZ1NWYWwuc3BsaXQoJysnKTsKICAgICAgICAgICAgICAgIF90aGlzNS4kc2V0KF90aGlzNS5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnJywgc3RhcnRQZWdBcnJbMF0uc2xpY2UoMSkpOwogICAgICAgICAgICAgICAgX3RoaXM1LiRzZXQoX3RoaXM1LmFkZEVkaXRGb3JtLCAnc3RhcnRQZWdBZGQnLCBzdGFydFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF90aGlzNS4kc2V0KF90aGlzNS5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnJywgJycpOwogICAgICAgICAgICAgICAgX3RoaXM1LiRzZXQoX3RoaXM1LmFkZEVkaXRGb3JtLCAnc3RhcnRQZWdBZGQnLCAnJyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChwZWdFVmFsKSB7CiAgICAgICAgICAgICAgICBfc3RhcnRQZWdBcnIgPSBwZWdFVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICBfdGhpczUuJHNldChfdGhpczUuYWRkRWRpdEZvcm0sICdlbmRQZWcnLCBfc3RhcnRQZWdBcnJbMF0uc2xpY2UoMSkpOwogICAgICAgICAgICAgICAgX3RoaXM1LiRzZXQoX3RoaXM1LmFkZEVkaXRGb3JtLCAnZW5kUGVnQWRkJywgX3N0YXJ0UGVnQXJyWzFdKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX3RoaXM1LiRzZXQoX3RoaXM1LmFkZEVkaXRGb3JtLCAnZW5kUGVnJywgJycpOwogICAgICAgICAgICAgICAgX3RoaXM1LiRzZXQoX3RoaXM1LmFkZEVkaXRGb3JtLCAnZW5kUGVnQWRkJywgJycpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoIV90aGlzNS5hZGRFZGl0Rm9ybS5jb21wZW5zYXRpb25EZXRhaWxzKSB7CiAgICAgICAgICAgICAgICBfdGhpczUuYWRkRWRpdEZvcm0uY29tcGVuc2F0aW9uRGV0YWlsc1NpbmdsZSA9IFtdOwogICAgICAgICAgICAgICAgX3RoaXM1LmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHNEb3VibGUgPSBbXTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX3RoaXM1LmFkZEVkaXRGb3JtLmNvbXBlbnNhdGlvbkRldGFpbHNTaW5nbGUgPSBfdGhpczUuYWRkRWRpdEZvcm0uY29tcGVuc2F0aW9uRGV0YWlscy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0ucHJvcGVydHlTdWJqZWN0VHlwZSA9PT0gJzEnOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBfdGhpczUuYWRkRWRpdEZvcm0uY29tcGVuc2F0aW9uRGV0YWlsc0RvdWJsZSA9IF90aGlzNS5hZGRFZGl0Rm9ybS5jb21wZW5zYXRpb25EZXRhaWxzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5wcm9wZXJ0eVN1YmplY3RUeXBlID09PSAnMic7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc29sZS5sb2coX3RoaXM1LmFkZEVkaXRGb3JtKTsKICAgICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDEyOwogICAgICAgICAgICAgIF90aGlzNS5mb3JtTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuZmluaXNoKDEyKTsKICAgICAgICAgICAgY2FzZSAxNToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMywgbnVsbCwgW1swLCwgMTIsIDE1XV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICBjb25zb2xlLmxvZyh0aGlzLmFkZEVkaXRGb3JtLCAnMDAwMDAwMDAwMDAnKTsKICAgICAgdGhpcy4kcmVmcy5hZGRFZGl0Rm9ybS52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNCh2YWxpZCwgb2JqZWN0KSB7CiAgICAgICAgICB2YXIgZGF0YSwgbXlJbnRlckZhY2UsIF95aWVsZCRteUludGVyRmFjZSwgc3RhdGUsIG1lc3NhZ2UsIHZhbHVlOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLndhcm5pbmcoIlx1NjcwOSIuY29uY2F0KE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoLCAiXHU0RTJBXHU1QjU3XHU2QkI1XHU2NzJBXHU5MDFBXHU4RkM3XHU2ODIxXHU5QThDXHVGRjBDXHU4QkY3XHU2QjYzXHU3ODZFXHU1ODZCXHU1MTk5XHU4ODY4XHU1MzU1XHU1MTg1XHU1QkI5XHUzMDAyIikpOwogICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAyMTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIF90aGlzNi5zYXZlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfdGhpczYuYWRkRWRpdEZvcm0pKTsKICAgICAgICAgICAgICAgIGRhdGEucGVnU1ZhbCA9ICdrJyArIChkYXRhLnN0YXJ0UGVnIHx8ICcnKSArICcrJyArIChkYXRhLnN0YXJ0UGVnQWRkIHx8ICcnKTsKICAgICAgICAgICAgICAgIGRhdGEucGVnRVZhbCA9ICdrJyArIChkYXRhLmVuZFBlZyB8fCAnJykgKyAnKycgKyAoZGF0YS5lbmRQZWdBZGQgfHwgJycpOwogICAgICAgICAgICAgICAgZGF0YS5jb21wZW5zYXRpb25EZXRhaWxzID0gW10uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShkYXRhLmNvbXBlbnNhdGlvbkRldGFpbHNTaW5nbGUpLCBfdG9Db25zdW1hYmxlQXJyYXkoZGF0YS5jb21wZW5zYXRpb25EZXRhaWxzRG91YmxlKSk7CiAgICAgICAgICAgICAgICBteUludGVyRmFjZSA9IF90aGlzNi5pZCA/IHRhYmxlRWRpdCA6IHRhYmxlQWRkOwogICAgICAgICAgICAgICAgX2NvbnRleHQ0LnByZXYgPSAxMDsKICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMTM7CiAgICAgICAgICAgICAgICByZXR1cm4gbXlJbnRlckZhY2UoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgZGF0YSksIGRhdGEucm9hZCksIGRhdGEudXNlciksIGRhdGEuZXZlbnQpKTsKICAgICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICAgICAgX3lpZWxkJG15SW50ZXJGYWNlID0gX2NvbnRleHQ0LnNlbnQ7CiAgICAgICAgICAgICAgICBzdGF0ZSA9IF95aWVsZCRteUludGVyRmFjZS5zdGF0ZTsKICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkbXlJbnRlckZhY2UubWVzc2FnZTsKICAgICAgICAgICAgICAgIHZhbHVlID0gX3lpZWxkJG15SW50ZXJGYWNlLnZhbHVlOwogICAgICAgICAgICAgICAgaWYgKHN0YXRlKSB7CiAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBfdGhpczYuaWQgPyAn57yW6L6RJyA6ICfmlrDlop4nOwogICAgICAgICAgICAgICAgICBfdGhpczYuJG1lc3NhZ2Uuc3VjY2VzcygiXHU0RkREXHU1QjU4XHU2MjEwXHU1MjlGIik7CiAgICAgICAgICAgICAgICAgIF90aGlzNi5jaGFuZ2VQYWdlKCdUYWJsZVBhZ2UnLCBfdGhpczYuaWQgPyAnZWRpdCcgOiAnYWRkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FzZSAxODoKICAgICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gMTg7CiAgICAgICAgICAgICAgICBfdGhpczYuc2F2ZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuZmluaXNoKDE4KTsKICAgICAgICAgICAgICBjYXNlIDIxOgogICAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZTQsIG51bGwsIFtbMTAsLCAxOCwgMjFdXSk7CiAgICAgICAgfSkpOwogICAgICAgIHJldHVybiBmdW5jdGlvbiAoX3gsIF94MikgewogICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKTsKICAgIH0sCiAgICAvLyDmlLnlj5jpobXpnaIKICAgIGNoYW5nZVBhZ2U6IGZ1bmN0aW9uIGNoYW5nZVBhZ2UoKSB7CiAgICAgIHZhciBwYWdlTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJyc7CiAgICAgIHZhciB0eXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAnJzsKICAgICAgaWYgKCFwYWdlTmFtZSkgcmV0dXJuOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIGZ1bmN0aW9uIChfKSB7CiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIHsKICAgICAgICAgIHR5cGU6IHR5cGUKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgLy8g5Zyo57uE5Lu26ZSA5q+B5LmL5YmNIOa4hemZpOiuoumYhea2iOaBrwogICAgUHViU3ViLnVuc3Vic2NyaWJlKHRoaXMucHViU3ViKTsKICB9Cn07"},null]}