{"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\\operationalMonitoring\\calledPartyAnswer\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\calledPartyAnswer\\components\\EditAddPage\\index.vue","mtime":1752225716824},{"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:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgUHViU3ViIGZyb20gJ3B1YnN1Yi1qcyc7CmltcG9ydCB7IGNhbGxCYXNlRGV0YWlsLCB0YWJsZUFkZCwgdGFibGVEZXRhaWwsIHRhYmxlRWRpdCB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9vcGVyYXRpb25hbE1vbml0b3JpbmcvY2FsbGVkUGFydHlBbnN3ZXInOwppbXBvcnQgeyBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHJvYWRTZWN0aW9uSW5mb0ludGVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcm9hZFNlY3Rpb25JbmZvJzsKaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnOwppbXBvcnQgRWFybHlEaWFsb2cgZnJvbSAnLi4vRWFybHlEaWFsb2cvaW5kZXgudnVlJzsKaW1wb3J0IHsgZ2V0UmVnaW9uYWxEYXRhIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL29wZXJhdGlvbmFsTW9uaXRvcmluZy9pbmZvcm1hdGlPbkZvckF0dGVudGlvbic7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnRWRpdEFkZFBhZ2UnLAogIGNvbXBvbmVudHM6IHsKICAgIEVhcmx5RGlhbG9nOiBFYXJseURpYWxvZwogIH0sCiAgcHJvcHM6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgZGVmYXVsdDogJ1RhYmxlUGFnZScsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfQogIH0sCiAgY29tcHV0ZWQ6IHt9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgdmFyIHZhbGlkYXRlUGVnVmFsU3RhcnQgPSBmdW5jdGlvbiB2YWxpZGF0ZVBlZ1ZhbFN0YXJ0KF8sIF9fLCBjYWxsYmFjaykgewogICAgICB2YXIgX3RoaXMkYWRkRWRpdEZvcm0gPSBfdGhpcy5hZGRFZGl0Rm9ybSwKICAgICAgICBzdGFydFBlZyA9IF90aGlzJGFkZEVkaXRGb3JtLnN0YXJ0UGVnLAogICAgICAgIHN0YXJ0UGVnQWRkID0gX3RoaXMkYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQ7CiAgICAgIGlmICghc3RhcnRQZWcgfHwgIXN0YXJ0UGVnQWRkKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fovpPlhaXlvIDlp4vmoanlj7cnKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKICAgIHZhciB2YWxpZGF0ZVBlZ1ZhbEVuZCA9IGZ1bmN0aW9uIHZhbGlkYXRlUGVnVmFsRW5kKF8sIF9fLCBjYWxsYmFjaykgewogICAgICB2YXIgX3RoaXMkYWRkRWRpdEZvcm0yID0gX3RoaXMuYWRkRWRpdEZvcm0sCiAgICAgICAgZW5kUGVnID0gX3RoaXMkYWRkRWRpdEZvcm0yLmVuZFBlZywKICAgICAgICBlbmRQZWdBZGQgPSBfdGhpcyRhZGRFZGl0Rm9ybTIuZW5kUGVnQWRkOwogICAgICBpZiAoIWVuZFBlZyB8fCAhZW5kUGVnQWRkKSB7CiAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCfor7fovpPlhaXnu5PmnZ/moanlj7cnKSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgY2FsbGJhY2soKTsKICAgICAgfQogICAgfTsKICAgIHJldHVybiB7CiAgICAgIGlkOiAnJywKICAgICAgLy8gaWTmoIfor4bnrKYKICAgICAgYWRkRWRpdEZvcm06IHsKICAgICAgICB3YXJuaW5nTmFtZTogJycsCiAgICAgICAgd2FybmluZ1VuaXQ6ICcnLAogICAgICAgIHdhcm5SYW5nZTogJycsCiAgICAgICAgd2FybmluZ0xldmVsOiA0LAogICAgICAgIHJlZ2lvbmFsQ29kZTogJycsCiAgICAgICAgcmVnaW9uYWxOYW1lOiAnJywKICAgICAgICByb2FkSWQ6ICcnLAogICAgICAgIHJvYWROYW1lOiAnJywKICAgICAgICByb2FkQ29kZTogJycsCiAgICAgICAgd2FybmluZ0NoYW5uZWw6ICcnLAogICAgICAgIHB1Ymxpc2hEZXZpY2VUeXBlOiAnJywKICAgICAgICB3YXJuaW5nVHlwZTogMSwKICAgICAgICB3YXJuaW5nVmFsdWU6ICcnLAogICAgICAgIGxvY2F0aW9uQ2F0VW5jbGU6ICcnLAogICAgICAgIHJlbGlldmVXYXJuaW5nVGltZTogJycsCiAgICAgICAgd2FybmluZ0NvbnRlbnQ6ICcnLAogICAgICAgIHdhcm5pbmdUaW1lOiBtb21lbnQoKS5mb3JtYXQoJ1lZWVktTU0tREQgSEg6bW06c3MnKSwKICAgICAgICByZXNwb25zZU1lY2hhbmlzbTogJzAnLAogICAgICAgIGluc3BlY3RNaWxlYWdlOiAnJywKICAgICAgICBwZW9wbGVTaXR1YXRpb246ICcnLAogICAgICAgIHByZXNldHNUZWFtU2l0dWF0aW9uOiAnJywKICAgICAgICBwcmVzZXRzUGVvcGxlU2l0dWF0aW9uOiAnJywKICAgICAgICBjYXJTaXR1YXRpb246ICcnLAogICAgICAgIHByZXNldHNDYXJTaXR1YXRpb246ICcnLAogICAgICAgIGNvbnRyb2xUaHJlc2hvbGQ6ICcnLAogICAgICAgIHdhdGVyQ29udGVudDogJycsCiAgICAgICAgdGFrZUFjdGlvbjogJycsCiAgICAgICAgY29udHJvbFNpdHVhdGlvbjogJycsCiAgICAgICAgcHVibGlzaFNpdHVhdGlvbjogJycsCiAgICAgICAgcHJlc2V0c0dvb2RzU2l0dWF0aW9uOiAnJwogICAgICB9LAogICAgICBhZGRFZGl0UnVsZXM6IHsKICAgICAgICBwcm92aW5jZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpemihOitpuWQjeensCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICBkaXJlY3Rpb246IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nmlrnlkJEnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB3YXJuaW5nTmFtZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpemihOitpuWQjeensCcsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICByZWdpb25hbENvZGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6nmiYDlsZ7ljLrln58nLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB3YXJuaW5nVW5pdDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpemihOitpuWPkeW4g+WNleS9jScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XSwKICAgICAgICB3YXJuaW5nTGV2ZWw6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6npooTorabnrYnnuqcnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB3YXJuaW5nVHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqemihOitpuexu+WeiycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdWYWx1ZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqemihOitpueBvuWus+exu+WeiycsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdUaW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6aKE6K2m5pe26Ze0JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgd2FyblJhbmdlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5Y+v6IO95Y+X5b2x5ZON5Yy65Y6/JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdDaGFubmVsOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aKE6K2m5L+h5oGv5p2l5rqQJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHJvYWRJZDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeWPr+iDveWPl+W9seWTjei3r+autScsCiAgICAgICAgICB0cmlnZ2VyOiAnY2hhbmdlJwogICAgICAgIH1dLAogICAgICAgIHdhcm5pbmdDb250ZW50OiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aKE6K2m5YaF5a65JywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGxvY2F0aW9uQ2F0VW5jbGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXkvY3nva7mj4/ov7AnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgbG9jYXRpb25TdGF0aW9uTnVtYmVyU3RhcnQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVQZWdWYWxTdGFydCwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlvIDlp4vmoanlj7cnLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgfV0sCiAgICAgICAgbG9jYXRpb25TdGF0aW9uTnVtYmVyRW5kOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlUGVnVmFsRW5kLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpee7k+adn+ahqeWPtycsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XQogICAgICB9LAogICAgICBzYXZlTG9hZGluZzogZmFsc2UsCiAgICAgIHB1YlN1YjogbnVsbCwKICAgICAgcm9hZE9wdGlvbnM6IFtdLAogICAgICByZWdpb25MaXN0OiBbXSwKICAgICAgbWVjaGFuaXNtTGlzdDogW3sKICAgICAgICBuYW1lOiAn5pivJywKICAgICAgICB2YWx1ZTogJzEnCiAgICAgIH0sIHsKICAgICAgICBuYW1lOiAn5ZCmJywKICAgICAgICB2YWx1ZTogJzAnCiAgICAgIH1dLAogICAgICBlYXJseVdhcm5pbmdJbmZvcm1hdGlvbjogW10sCiAgICAgIGlzQWRkOiBmYWxzZSwKICAgICAgZWFybHlEaWFsb2c6IGZhbHNlCiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWwpIHsKICAgICAgICBpZiAobmV3VmFsID09PSB0aGlzLiRvcHRpb25zLm5hbWUpIHsKICAgICAgICAgIHRoaXMub3BlblBhZ2UoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jbG9zZVBhZ2UoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogIGNyZWF0ZWQ6IGZ1bmN0aW9uIGNyZWF0ZWQoKSB7fSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CiAgICB0aGlzLnB1YlN1YiA9IFB1YlN1Yi5zdWJzY3JpYmUoJ0VkaXRBZGRQYWdlJywgZnVuY3Rpb24gKF8sIGRhdGEpIHsKICAgICAgLy8g56ys5LiA5bGC57qn5LiN5riy5p+TIOm7mOiupOesrOS4gOS4qgogICAgICBpZiAoZGF0YS5yb2FkTmFtZSAhPT0gJycpIHsKICAgICAgICBfdGhpczIuYWRkRWRpdEZvcm0ucm9hZE5hbWUgPSAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnJvYWROYW1lKSB8fCAnJzsKICAgICAgICBfdGhpczIuYWRkRWRpdEZvcm0ucm9hZElkID0gKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5yb2FkSWQpIHx8ICcnOwogICAgICB9CiAgICAgIF90aGlzMi5nZXRSb2FkRGF0YSgpOwogICAgICBpZiAoZGF0YS5pZCkgewogICAgICAgIF90aGlzMi5pc0FkZCA9IGZhbHNlOwogICAgICAgIF90aGlzMi5pZCA9IGRhdGEuaWQ7CiAgICAgICAgX3RoaXMyLmdldERldGFpbChkYXRhLmlkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfdGhpczIuaXNBZGQgPSB0cnVlOwogICAgICAgIF90aGlzMi5nZXRDYWxsQmFzZURldGFpbCgpOwogICAgICB9CiAgICAgIF90aGlzMi5nZXRSZWdpb25hbENoYW5nZSgpOwogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBnZXREaWN0aW9uYXJ5QnlDb2RlOiBnZXREaWN0aW9uYXJ5QnlDb2RlLAogICAgZ2V0Q2FsbEJhc2VEZXRhaWw6IGZ1bmN0aW9uIGdldENhbGxCYXNlRGV0YWlsKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICAgIHZhciBfeWllbGQkY2FsbEJhc2VEZXRhaWwsIF95aWVsZCRjYWxsQmFzZURldGFpbDIsIHZhbHVlOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiBjYWxsQmFzZURldGFpbChfdGhpczMuYWRkRWRpdEZvcm0ucm9hZElkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCRjYWxsQmFzZURldGFpbCA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJGNhbGxCYXNlRGV0YWlsMiA9IF95aWVsZCRjYWxsQmFzZURldGFpbC52YWx1ZTsKICAgICAgICAgICAgICB2YWx1ZSA9IF95aWVsZCRjYWxsQmFzZURldGFpbDIgPT09IHZvaWQgMCA/IHt9IDogX3lpZWxkJGNhbGxCYXNlRGV0YWlsMjsKICAgICAgICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzMy5hZGRFZGl0Rm9ybSksIHZhbHVlKTsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGVhcmx5Q2hhbmdlOiBmdW5jdGlvbiBlYXJseUNoYW5nZSgpIHsKICAgICAgdGhpcy5lYXJseURpYWxvZyA9IHRydWU7CiAgICB9LAogICAgaGFuZGxlRWFybHlTZWxlY3Q6IGZ1bmN0aW9uIGhhbmRsZUVhcmx5U2VsZWN0KGRhdGEpIHsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybSA9IF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgdGhpcy5hZGRFZGl0Rm9ybSksIGRhdGEpOwogICAgfSwKICAgIHJlZ2lvbkNoYW5nZTogZnVuY3Rpb24gcmVnaW9uQ2hhbmdlKHZhbCkgewogICAgICB2YXIgX3RoaXMkcmVnaW9uTGlzdCRmaWx0ID0gdGhpcy5yZWdpb25MaXN0LmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgcmV0dXJuIGl0ZW0uYWRjb2RlID09PSB2YWw7CiAgICAgICAgfSlbMF0sCiAgICAgICAgYWRuYW1lID0gX3RoaXMkcmVnaW9uTGlzdCRmaWx0LmFkbmFtZSwKICAgICAgICBwZWdFVmFsID0gX3RoaXMkcmVnaW9uTGlzdCRmaWx0LnBlZ0VWYWwsCiAgICAgICAgcGVnU1ZhbCA9IF90aGlzJHJlZ2lvbkxpc3QkZmlsdC5wZWdTVmFsOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnJlZ2lvbmFsTmFtZSA9IGFkbmFtZTsKICAgICAgaWYgKHBlZ1NWYWwpIHsKICAgICAgICB2YXIgc3RhcnRQZWdBcnIgPSBwZWdTVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdzdGFydFBlZycsIHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnQWRkJywgc3RhcnRQZWdBcnJbMV0pOwogICAgICB9CiAgICAgIGlmIChwZWdFVmFsKSB7CiAgICAgICAgdmFyIGVuZFBlZ0FyciA9IHBlZ0VWYWwuc3BsaXQoJysnKTsKICAgICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ2VuZFBlZycsIGVuZFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdlbmRQZWdBZGQnLCBlbmRQZWdBcnJbMV0pOwogICAgICB9CiAgICB9LAogICAgcm9hZENoYW5nZTogZnVuY3Rpb24gcm9hZENoYW5nZSh2YWwpIHsKICAgICAgdmFyIF90aGlzJHJvYWRPcHRpb25zJGZpbCA9IHRoaXMucm9hZE9wdGlvbnMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gdmFsOwogICAgICAgIH0pWzBdLAogICAgICAgIG5hbWUgPSBfdGhpcyRyb2FkT3B0aW9ucyRmaWwubmFtZSwKICAgICAgICBjb2RlID0gX3RoaXMkcm9hZE9wdGlvbnMkZmlsLmNvZGU7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucm9hZE5hbWUgPSBuYW1lOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnJvYWRDb2RlID0gY29kZTsKICAgICAgdGhpcy5nZXRSZWdpb25hbENoYW5nZSgpOwogICAgICBpZiAodGhpcy5hZGRFZGl0Rm9ybS5wdWJTdGF0dXMgIT0gMSkgewogICAgICAgIHRoaXMuZ2V0Q2FsbEJhc2VEZXRhaWwoKTsKICAgICAgfQogICAgfSwKICAgIGdldFJlZ2lvbmFsQ2hhbmdlOiBmdW5jdGlvbiBnZXRSZWdpb25hbENoYW5nZSgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF95aWVsZCRnZXRSZWdpb25hbERhdCwgX3lpZWxkJGdldFJlZ2lvbmFsRGF0MiwgdmFsdWUsIHN0YXJ0UGVnQXJyLCBlbmRQZWdBcnI7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gZ2V0UmVnaW9uYWxEYXRhKF90aGlzNC5hZGRFZGl0Rm9ybS5yb2FkSWQpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3lpZWxkJGdldFJlZ2lvbmFsRGF0ID0gX2NvbnRleHQyLnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJGdldFJlZ2lvbmFsRGF0MiA9IF95aWVsZCRnZXRSZWdpb25hbERhdC52YWx1ZTsKICAgICAgICAgICAgICB2YWx1ZSA9IF95aWVsZCRnZXRSZWdpb25hbERhdDIgPT09IHZvaWQgMCA/IHt9IDogX3lpZWxkJGdldFJlZ2lvbmFsRGF0MjsKICAgICAgICAgICAgICBfdGhpczQucmVnaW9uTGlzdCA9IHZhbHVlLnJlZ2lvbmFsOwogICAgICAgICAgICAgIC8vIHRoaXMuYWRkRWRpdEZvcm0ucHJvdmluY2UgPSB2YWx1ZS5wcm92aW5jZQogICAgICAgICAgICAgIF90aGlzNC4kc2V0KF90aGlzNC5hZGRFZGl0Rm9ybSwgJ3Byb3ZpbmNlJywgdmFsdWUucHJvdmluY2UpOwogICAgICAgICAgICAgIGlmIChfdGhpczQucmVnaW9uTGlzdC5sZW5ndGggPiAwICYmICFfdGhpczQuaWQpIHsKICAgICAgICAgICAgICAgIC8vIHRoaXMuYWRkRWRpdEZvcm0ucmVnaW9uYWxDb2RlID0gdGhpcy5yZWdpb25MaXN0WzBdLmFkY29kZQogICAgICAgICAgICAgICAgLy8gdGhpcy5hZGRFZGl0Rm9ybS5yZWdpb25hbE5hbWUgPSB0aGlzLnJlZ2lvbkxpc3RbMF0uYWRuYW1lCiAgICAgICAgICAgICAgICBfdGhpczQuJHNldChfdGhpczQuYWRkRWRpdEZvcm0sICdyZWdpb25hbENvZGUnLCBfdGhpczQucmVnaW9uTGlzdFswXS5hZGNvZGUpOwogICAgICAgICAgICAgICAgX3RoaXM0LiRzZXQoX3RoaXM0LmFkZEVkaXRGb3JtLCAncmVnaW9uYWxOYW1lJywgX3RoaXM0LnJlZ2lvbkxpc3RbMF0uYWRuYW1lKTsKICAgICAgICAgICAgICAgIGlmIChfdGhpczQucmVnaW9uTGlzdFswXS5wZWdTVmFsKSB7CiAgICAgICAgICAgICAgICAgIHN0YXJ0UGVnQXJyID0gX3RoaXM0LnJlZ2lvbkxpc3RbMF0ucGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICAgICAgICBfdGhpczQuJHNldChfdGhpczQuYWRkRWRpdEZvcm0sICdzdGFydFBlZycsIHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgICAgICAgICAgX3RoaXM0LiRzZXQoX3RoaXM0LmFkZEVkaXRGb3JtLCAnc3RhcnRQZWdBZGQnLCBzdGFydFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoX3RoaXM0LnJlZ2lvbkxpc3RbMF0ucGVnRVZhbCkgewogICAgICAgICAgICAgICAgICBlbmRQZWdBcnIgPSBfdGhpczQucmVnaW9uTGlzdFswXS5wZWdFVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICAgIF90aGlzNC4kc2V0KF90aGlzNC5hZGRFZGl0Rm9ybSwgJ2VuZFBlZycsIGVuZFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICAgICAgICAgIF90aGlzNC4kc2V0KF90aGlzNC5hZGRFZGl0Rm9ybSwgJ2VuZFBlZ0FkZCcsIGVuZFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDg6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvL+iOt+WPluaJgOWcqOi3r+auteWIl+ihqOaVsOaNrgogICAgZ2V0Um9hZERhdGE6IGZ1bmN0aW9uIGdldFJvYWREYXRhKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICB2YXIgX3lpZWxkJHJvYWRTZWN0aW9uSW5mLCBfeWllbGQkcm9hZFNlY3Rpb25JbmYyLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHJvYWRTZWN0aW9uSW5mb0ludGVyKHsKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3lpZWxkJHJvYWRTZWN0aW9uSW5mID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiA9IF95aWVsZCRyb2FkU2VjdGlvbkluZi5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkcm9hZFNlY3Rpb25JbmYyID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCRyb2FkU2VjdGlvbkluZjI7CiAgICAgICAgICAgICAgX3RoaXM1LnJvYWRPcHRpb25zID0gcm93cy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIGl0ZW0ucm9hZE5hbWUgPSBpdGVtLm5hbWUgKyAnICcgKyBpdGVtLmNvZGU7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfdGhpczUuYWRkRWRpdEZvcm0ucm9hZENvZGUgPSBfdGhpczUucm9hZE9wdGlvbnMuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gX3RoaXM1LmFkZEVkaXRGb3JtLnJvYWRJZDsKICAgICAgICAgICAgICB9KVswXS5jb2RlOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTMpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDmiZPlvIDpobXpnaLmiafooYwKICAgIG9wZW5QYWdlOiBmdW5jdGlvbiBvcGVuUGFnZSgpIHt9LAogICAgLy8g5YWz6Zet6aG16Z2i5omn6KGMCiAgICBjbG9zZVBhZ2U6IGZ1bmN0aW9uIGNsb3NlUGFnZSgpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHZhciByb2FkT3B0aW9ucyA9IHRoaXMucm9hZE9wdGlvbnM7CiAgICAgIC8vIOmHjee9rue7hOS7tuaVsOaNrgogICAgICBPYmplY3QuYXNzaWduKHRoaXMuJGRhdGEsIHRoaXMuJG9wdGlvbnMuZGF0YS5jYWxsKHRoaXMpLCB7CiAgICAgICAgcHViU3ViOiB0aGlzLnB1YlN1YiwKICAgICAgICByb2FkT3B0aW9uczogcm9hZE9wdGlvbnMKICAgICAgfSk7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgX3RoaXM2LiRyZWZzLmFkZEVkaXRGb3JtLiRlbC5zY3JvbGxUb3AgPSAwOwogICAgICAgIF90aGlzNi4kcmVmcy5hZGRFZGl0Rm9ybS5jbGVhclZhbGlkYXRlKCk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOiOt+WPluivpuaDhQogICAgZ2V0RGV0YWlsOiBmdW5jdGlvbiBnZXREZXRhaWwoaWQpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgdmFyIF90aGlzNyRhZGRFZGl0Rm9ybSwgcGVnU1ZhbCwgcGVnRVZhbCwgc3RhcnRQZWdBcnIsIGVuZFBlZ0FycjsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTQkKF9jb250ZXh0NCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURldGFpbChpZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfdGhpczcuYWRkRWRpdEZvcm0gPSBfY29udGV4dDQuc2VudDsKICAgICAgICAgICAgICBfdGhpczckYWRkRWRpdEZvcm0gPSBfdGhpczcuYWRkRWRpdEZvcm0sIHBlZ1NWYWwgPSBfdGhpczckYWRkRWRpdEZvcm0ucGVnU1ZhbCwgcGVnRVZhbCA9IF90aGlzNyRhZGRFZGl0Rm9ybS5wZWdFVmFsOwogICAgICAgICAgICAgIGlmIChwZWdTVmFsKSB7CiAgICAgICAgICAgICAgICBzdGFydFBlZ0FyciA9IHBlZ1NWYWwuc3BsaXQoJysnKTsKICAgICAgICAgICAgICAgIF90aGlzNy4kc2V0KF90aGlzNy5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnJywgc3RhcnRQZWdBcnJbMF0uc2xpY2UoMSkpOwogICAgICAgICAgICAgICAgX3RoaXM3LiRzZXQoX3RoaXM3LmFkZEVkaXRGb3JtLCAnc3RhcnRQZWdBZGQnLCBzdGFydFBlZ0FyclsxXSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGlmIChwZWdFVmFsKSB7CiAgICAgICAgICAgICAgICBlbmRQZWdBcnIgPSBwZWdFVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICBfdGhpczcuJHNldChfdGhpczcuYWRkRWRpdEZvcm0sICdlbmRQZWcnLCBlbmRQZWdBcnJbMF0uc2xpY2UoMSkpOwogICAgICAgICAgICAgICAgX3RoaXM3LiRzZXQoX3RoaXM3LmFkZEVkaXRGb3JtLCAnZW5kUGVnQWRkJywgZW5kUGVnQXJyWzFdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKF90aGlzNy5hZGRFZGl0Rm9ybS5wdWJTdGF0dXMgIT0gMSkgewogICAgICAgICAgICAgICAgX3RoaXM3LmdldENhbGxCYXNlRGV0YWlsKCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTQpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICB0aGlzLiRyZWZzLmFkZEVkaXRGb3JtLnZhbGlkYXRlKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIF9yZWYgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUodmFsaWQsIG9iamVjdCkgewogICAgICAgICAgdmFyIF90aGlzOCRhZGRFZGl0Rm9ybSwgc3RhcnRQZWcsIHN0YXJ0UGVnQWRkLCBlbmRQZWcsIGVuZFBlZ0FkZCwgcGVnU1ZhbCwgcGVnRVZhbCwgbXlJbnRlckZhY2UsIHJlc3BvbnNlLCBzdGF0ZSwgbWVzc2FnZSwgYWN0aW9uOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX3RoaXM4LiRtZXNzYWdlLndhcm5pbmcoIlx1NjcwOSIuY29uY2F0KE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoLCAiXHU0RTJBXHU1QjU3XHU2QkI1XHU2NzJBXHU5MDFBXHU4RkM3XHU2ODIxXHU5QThDXHVGRjBDXHU4QkY3XHU2QjYzXHU3ODZFXHU1ODZCXHU1MTk5XHU4ODY4XHU1MzU1XHU1MTg1XHU1QkI5XHUzMDAyIikpOwogICAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAyMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIF90aGlzOC5zYXZlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBfdGhpczgkYWRkRWRpdEZvcm0gPSBfdGhpczguYWRkRWRpdEZvcm0sIHN0YXJ0UGVnID0gX3RoaXM4JGFkZEVkaXRGb3JtLnN0YXJ0UGVnLCBzdGFydFBlZ0FkZCA9IF90aGlzOCRhZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZCwgZW5kUGVnID0gX3RoaXM4JGFkZEVkaXRGb3JtLmVuZFBlZywgZW5kUGVnQWRkID0gX3RoaXM4JGFkZEVkaXRGb3JtLmVuZFBlZ0FkZDsKICAgICAgICAgICAgICAgIHBlZ1NWYWwgPSAnJzsKICAgICAgICAgICAgICAgIHBlZ0VWYWwgPSAnJzsKICAgICAgICAgICAgICAgIGlmIChzdGFydFBlZyAhPT0gJycgJiYgc3RhcnRQZWcgIT09IHVuZGVmaW5lZCAmJiBzdGFydFBlZ0FkZCAhPT0gJycgJiYgc3RhcnRQZWdBZGQgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICBwZWdTVmFsID0gJ2snICsgKHN0YXJ0UGVnICE9PSAnJyA/IHN0YXJ0UGVnIDogJycpICsgJysnICsgKHN0YXJ0UGVnQWRkICE9PSAnJyA/IHN0YXJ0UGVnQWRkIDogJycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGVuZFBlZyAhPT0gJycgJiYgZW5kUGVnICE9PSB1bmRlZmluZWQgJiYgZW5kUGVnQWRkICE9PSAnJyAmJiBlbmRQZWdBZGQgIT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICBwZWdFVmFsID0gJ2snICsgKGVuZFBlZyAhPT0gJycgPyBlbmRQZWcgOiAnJykgKyAnKycgKyAoZW5kUGVnQWRkICE9PSAnJyA/IGVuZFBlZ0FkZCA6ICcnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIG15SW50ZXJGYWNlID0gX3RoaXM4LmlkID8gdGFibGVFZGl0IDogdGFibGVBZGQ7CiAgICAgICAgICAgICAgICBfY29udGV4dDUucHJldiA9IDExOwogICAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAxNDsKICAgICAgICAgICAgICAgIHJldHVybiBteUludGVyRmFjZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzOC5hZGRFZGl0Rm9ybSksIHt9LCB7CiAgICAgICAgICAgICAgICAgIHBlZ1NWYWw6IHBlZ1NWYWwsCiAgICAgICAgICAgICAgICAgIHBlZ0VWYWw6IHBlZ0VWYWwsCiAgICAgICAgICAgICAgICAgIHB1YlN0YXR1czogMQogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICByZXNwb25zZSA9IF9jb250ZXh0NS5zZW50OwogICAgICAgICAgICAgICAgc3RhdGUgPSByZXNwb25zZS5zdGF0ZSwgbWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgYWN0aW9uID0gX3RoaXM4LmlkID8gJ+e8lui+kScgOiAn5paw5aKeJzsKICAgICAgICAgICAgICAgICAgX3RoaXM4LiRtZXNzYWdlLnN1Y2Nlc3MoIiIuY29uY2F0KGFjdGlvbiwgIlx1NjIxMFx1NTI5RiIpKTsKICAgICAgICAgICAgICAgICAgUHViU3ViLnB1Ymxpc2goJ1RhYmxlUGFnZScsIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiBfdGhpczguaWQgPyAnZWRpdCcgOiAnYWRkJwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgX3RoaXM4LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsIF90aGlzOC5pZCA/ICdlZGl0JyA6ICdhZGQnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICAgICAgX2NvbnRleHQ1LnByZXYgPSAxNzsKICAgICAgICAgICAgICAgIF90aGlzOC5zYXZlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5maW5pc2goMTcpOwogICAgICAgICAgICAgIGNhc2UgMjA6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNSwgbnVsbCwgW1sxMSwsIDE3LCAyMF1dKTsKICAgICAgICB9KSk7CiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyKSB7CiAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSk7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlUGFnZScsIHBhZ2VOYW1lLCBmdW5jdGlvbiAoXykgewogICAgICAgIFB1YlN1Yi5wdWJsaXNoKHBhZ2VOYW1lLCB7CiAgICAgICAgICB0eXBlOiB0eXBlCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIC8vIOWcqOe7hOS7tumUgOavgeS5i+WJjSDmuIXpmaTorqLpmIXmtojmga8KICAgIFB1YlN1Yi51bnN1YnNjcmliZSh0aGlzLnB1YlN1Yik7CiAgfQp9Ow=="},null]}