{"remainingRequest":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\sourceLayer\\tyDataManageQuery\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\src\\views\\sourceLayer\\tyDataManageQuery\\index.vue","mtime":1736276117592},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\babel.config.js","mtime":1733906004399},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\@vue\\cli-plugin-babel\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\dataShare-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UvZGF0YVNoYXJlLWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiOwppbXBvcnQgX3JlZ2VuZXJhdG9yUnVudGltZSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS9kYXRhU2hhcmUtZnZ1ZS9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9lc20vcmVnZW5lcmF0b3JSdW50aW1lLmpzIjsKaW1wb3J0IF9hc3luY1RvR2VuZXJhdG9yIGZyb20gIkQ6L2plbmtpbnMvd29ya3NwYWNlL2RhdGFTaGFyZS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRlc3QuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lc25leHQuaXRlcmF0b3IuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBEZXRhaWxEaWFsb2cgZnJvbSAnQC92aWV3cy9zb3VyY2VMYXllci90eURhdGFNYW5hZ2VRdWVyeS9EZXRhaWxEaWFsb2cudnVlJzsKaW1wb3J0IHRhYmxlTWl4aW4gZnJvbSAnQC9taXhpbnMvdGFibGUuanMnOwppbXBvcnQgQVBJIGZyb20gJ0AvYXBpL2J1c2luZXNzL2RhdGFPRFNDYXRhbG9nJzsKaW1wb3J0IHsgbWFwU3RhdGUgfSBmcm9tICd2dWV4JzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICcnLAogIGNvbXBvbmVudHM6IHsKICAgIERldGFpbERpYWxvZzogRGV0YWlsRGlhbG9nCiAgfSwKICBtaXhpbnM6IFt0YWJsZU1peGluXSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHZhciBUUkVFX0NPTkZJRyA9IHsKICAgICAgdHJlZVByb3BzOiB7CiAgICAgICAgdmFsdWU6ICdpZCcsCiAgICAgICAgbGFiZWw6ICduYW1lJwogICAgICB9LAogICAgICBleHBhbmRBbGw6IGZhbHNlLAogICAgICBkZWZhdWx0RXhwYW5kZWRLZXlzOiBbJzAnXSwKICAgICAgLy8g5q2k5aSEZmllbGRz5YaF6YWN572u5a+56LGh5bGe5oCn5YyF5ousOiBsYWJlbC9wcm9wL3J1bGVzL3R5cGUo5p6a5Li+OnN3aXRjaC9udW1iZXIvaW5wdXQo6buY6K6kKSkvc3Bhbi8KICAgICAgdHJlZUZpZWxkczogW3sKICAgICAgICBsYWJlbDogJ+ebruW9leWQjeensCcsCiAgICAgICAgcHJvcDogJ25hbWUnLAogICAgICAgIHJ1bGVzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6LWE5rqQ55uu5b2V5ZCN56ew5LiN6IO95Li656m6JwogICAgICAgIH1dCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+ebruW9lee8lueggScsCiAgICAgICAgcHJvcDogJ2NvZGUnLAogICAgICAgIHJ1bGVzOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6LWE5rqQ55uu5b2V57yW56CB5LiN6IO95Li656m6JwogICAgICAgIH1dCiAgICAgIH1dLAogICAgICBjdXJOb2RlOiB7fSAvLyDlvZPliY3pgInmi6noioLngrkKICAgIH07CiAgICB2YXIgVEFCTEVfQ09ORklHID0gewogICAgICAvLyDliJfooajooajlpLQKICAgICAgY29sdW1uczogW3sKICAgICAgICBsYWJlbDogJ+ihqOi1hOa6kOWQjeensCcsCiAgICAgICAgcHJvcDogJ25hbWUnCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+ihqOi1hOa6kOe8lueggScsCiAgICAgICAgcHJvcDogJ2NvZGUnLAogICAgICAgIHdpZHRoOiAnMzAwJwogICAgICB9LAogICAgICAvLyB7CiAgICAgIC8vICAgbGFiZWw6ICfotYTmupDlr4bnuqcnLAogICAgICAvLyAgIHByb3A6ICdsZXZlbCcsCiAgICAgIC8vICAgd2lkdGg6ICcxMDAnLAogICAgICAvLyAgIGFsaWduOiAnY2VudGVyJywKICAgICAgLy8gICBmb3JtYXREYXRhOiB2YWwgPT4gewogICAgICAvLyAgICAgcmV0dXJuIHRoaXMuZmlsdGVyRGljdCgnU0VDUkVUX0xFVkVMJywgdmFsKS5sYWJlbDsKICAgICAgLy8gICB9LAogICAgICAvLyB9LAogICAgICAvLyB7CiAgICAgIC8vICAgbGFiZWw6ICfotYTmupDmoLzlvI8nLAogICAgICAvLyAgIHByb3A6ICdzb3VyY2VUeXBlJywKICAgICAgLy8gICB3aWR0aDogJzEwMCcsCiAgICAgIC8vICAgYWxpZ246ICdjZW50ZXInLAogICAgICAvLyAgIGZvcm1hdERhdGE6IHZhbCA9PiB7CiAgICAgIC8vICAgICByZXR1cm4gdGhpcy5maWx0ZXJEaWN0KCdTT1VSQ0VfRklMRV9UWVBFJywgdmFsKS5sYWJlbDsKICAgICAgLy8gICB9LAogICAgICAvLyB9LAogICAgICAvLyB7CiAgICAgIC8vICAgbGFiZWw6ICfmj5DkvpvmlrnlvI8nLAogICAgICAvLyAgIHByb3A6ICdzb3VyY2UnLAogICAgICAvLyAgIHdpZHRoOiAnMTAwJywKICAgICAgLy8gICBhbGlnbjogJ2NlbnRlcicsCiAgICAgIC8vICAgZm9ybWF0RGF0YTogdmFsID0+IHsKICAgICAgLy8gICAgIHJldHVybiB0aGlzLmZpbHRlckRpY3QoJ1NPVVJDRV9QUk9WSURFRF9UWVBFJywgdmFsKS5sYWJlbDsKICAgICAgLy8gICB9LAogICAgICAvLyB9LAogICAgICB7CiAgICAgICAgbGFiZWw6ICfmlbDmja7lupPooajlkI0nLAogICAgICAgIHdpZHRoOiAnMjAwJywKICAgICAgICBwcm9wOiAndGFibGVOYW1lRW4nCiAgICAgIH0sIHsKICAgICAgICBsYWJlbDogJ+aYr+WQpuWPkeW4gycsCiAgICAgICAgcHJvcDogJ2RlcGxveWVkJywKICAgICAgICB3aWR0aDogJzE1MCcsCiAgICAgICAgYWxpZ246ICdjZW50ZXInLAogICAgICAgIGRhdGFUeXBlOiAnc2xvdCcsCiAgICAgICAgLy8g5L2/55So5o+S5qe9CiAgICAgICAgc2xvdDogJ2RlcGxveWVkJyAvLyDmj5Lmp73lkI3vvIzmkK3phY0gZGF0YVR5cGU6ICdzbG90JyDkvb/nlKgKICAgICAgfSwKICAgICAgLy8geyBsYWJlbDogJ+aPkOS+m+aWueihqOWJjee8gOWRveWQjScsIHdpZHRoOiAnMTUwJywgcHJvcDogJ3RhYmxlUHJlZml4Q29kZScgfSwKCiAgICAgIC8vIHsgbGFiZWw6ICfniannkIblrp7kvZPooajkuK3mloflkI0nLCB3aWR0aDogJzE1MCcsIHByb3A6ICd0YWJsZU5hbWVDaCcgfSwKICAgICAgLy8geyBsYWJlbDogJ+eJqeeQhuWunuS9k+ihqOiLseaWh+WQjScsIHdpZHRoOiAnMTUwJywgcHJvcDogJ3RhYmxlTmFtZUVuJyB9LAogICAgICB7CiAgICAgICAgZGF0YVR5cGU6ICdvcHRpb24nLAogICAgICAgIGxhYmVsOiAn5pON5L2cJywKICAgICAgICB3aWR0aDogJzIwMHB4JywKICAgICAgICBmaXhlZDogJ3JpZ2h0JywKICAgICAgICBvcGVyYXRpb246IFt7CiAgICAgICAgICBuYW1lOiAn5a+85YWl5pWw5o2uJywKICAgICAgICAgIHR5cGU6ICd0ZXh0JywKICAgICAgICAgIHNpemU6ICdtaW5pJywKICAgICAgICAgIGljb246ICdlbC1pY29uLXVwbG9hZDInLAogICAgICAgICAgcGxhaW46IHRydWUsCiAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24gZGlzYWJsZWQocm93KSB7CiAgICAgICAgICAgIHJldHVybiByb3cuZGVwbG95ZWQgIT09IDE7CiAgICAgICAgICB9LAogICAgICAgICAgY2xpY2tGdW46IGZ1bmN0aW9uIGNsaWNrRnVuKHJvdykgewogICAgICAgICAgICBfdGhpcy5jdXJyZW50Um93ID0gcm93OwogICAgICAgICAgICBfdGhpcy5kb3duVmlzaWJsZSA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfSwgewogICAgICAgICAgbmFtZTogJ+afpeeci+aVsOaNricsCiAgICAgICAgICBpY29uOiAnZWwtaWNvbi10aWNrZXRzJywKICAgICAgICAgIC8vIHNob3dIaWRlOiAocm93KSA9PiB7fSwKICAgICAgICAgIGNsaWNrRnVuOiBmdW5jdGlvbiBjbGlja0Z1bihyb3cpIHsKICAgICAgICAgICAgX3RoaXMuY3VycmVudFJvdyA9IHJvdzsKICAgICAgICAgICAgX3RoaXMuZGlhbG9nVGl0bGUgPSAiIi5jb25jYXQocm93Lm5hbWUsICIgLSBcdTY1NzBcdTYzNkVcdTRGRTFcdTYwNkYiKTsKICAgICAgICAgICAgX3RoaXMuZGlhbG9nVmlzaWJsZSA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIHsKICAgICAgICAvLyAgIG5hbWU6ICfph4fpm4bphY3nva4nLAogICAgICAgIC8vICAgaWNvbjogJ2VsLWljb24tcy1vcGVyYXRpb24nLAogICAgICAgIC8vICAgLy8gc2hvd0hpZGU6IChyb3cpID0+IHt9LAogICAgICAgIC8vICAgY2xpY2tGdW46IHJvdyA9PiB7CiAgICAgICAgLy8gICAgIHRoaXMuYWNxdWlzaXRpb25zaG93KHJvdyk7CiAgICAgICAgLy8gICB9LAogICAgICAgIC8vIH0sCiAgICAgICAgLy8gewogICAgICAgIC8vICAgbmFtZTogJ+avj+aXpemHh+mbhue7n+iuoScsCiAgICAgICAgLy8gICBpY29uOiAnZWwtaWNvbi1lZGl0LW91dGxpbmUnLAogICAgICAgIC8vICAgY2xpY2tGdW46IHJvdyA9PiB7CiAgICAgICAgLy8gICAgIHRoaXMuc2VydmljZXNob3cocm93KTsKICAgICAgICAvLyAgIH0sCiAgICAgICAgLy8gfSwKICAgICAgICAvLyB7CiAgICAgICAgLy8gICBuYW1lOiAn6YeH6ZuG5piO57uGJywKICAgICAgICAvLyAgIGljb246ICdlbC1pY29uLWRvY3VtZW50JywKICAgICAgICAvLyAgIGNsaWNrRnVuOiByb3cgPT4gewogICAgICAgIC8vICAgICB0aGlzLkNhcHR1cmVzaG93KHJvdyk7CiAgICAgICAgLy8gICB9LAogICAgICAgIC8vIH0sCiAgICAgICAgXQogICAgICB9XSwKICAgICAgZGVmYXVsdEZpbHRlcjogW3sKICAgICAgICBvcGVyYXRpb246ICdFUVVBTCcsCiAgICAgICAgcHJvcGVydHk6ICcnLAogICAgICAgIHJlbGF0aW9uOiAnQU5EJywKICAgICAgICB2YWx1ZTogJycKICAgICAgfSwgewogICAgICAgIG9wZXJhdGlvbjogJ0VRVUFMJywKICAgICAgICBwcm9wZXJ0eTogJ2RlcGxveWVkJywKICAgICAgICByZWxhdGlvbjogJ0FORCcsCiAgICAgICAgdmFsdWU6ICcxJwogICAgICB9XQogICAgfTsKICAgIHZhciBESUFMT0dfQ09ORklHID0gewogICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZSwKICAgICAgZGlhbG9nVGl0bGU6ICcnLAogICAgICBkaWFsb2dTZXJ2aWNlOiBmYWxzZSwKICAgICAgZGlhbG9nU2VydmljZVRpdGxlOiAn6YeH6ZuG57uf6K6hJywKICAgICAgZGlhbG9nQ2FwdHVyZTogZmFsc2UsCiAgICAgIGRpYWxvZ0NhcHR1cmVUaXRsZTogJ+mHh+mbhuaYjue7hicsCiAgICAgIGRpYWxvZ0FjcXVpc2l0aW9uOiBmYWxzZSwKICAgICAgZGlhbG9nYUFxdWlzaXRpb25UaXRsZTogJ+mHh+mbhumFjee9ricKICAgIH07CiAgICB2YXIgVVBMT0FEX0NPTkZJRyA9IHsKICAgICAgYmVmb3JlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVVcGxvYWQoZmlsZSkgewogICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICBfdGhpcy51cGxvYWRMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgIHZhciBzaXplID0gZmlsZS5zaXplLAogICAgICAgICAgICBuYW1lID0gZmlsZS5uYW1lOwogICAgICAgICAgdmFyIHBhc3NlZE9yTm90ID0gdHJ1ZTsgLy8g5piv5ZCm6YCa6L+H6aqM6K+BCiAgICAgICAgICB2YXIgdHlwZVJlZ3VsYXIgPSAvXC4oeGxzfHhsc3gpJC9pOwogICAgICAgICAgdmFyIHZlcmlmaWNhdGlvbiA9IFt7CiAgICAgICAgICAgIGNvbmRpdGlvbjogIXR5cGVSZWd1bGFyLnRlc3QobmFtZSksCiAgICAgICAgICAgIHJlc3VsdDogZnVuY3Rpb24gcmVzdWx0KCkgewogICAgICAgICAgICAgIHJldHVybiBfdGhpcy4kbWVzc2FnZS5lcnJvcign5Y+q6IO95LiK5LygeGxz5oiWeGxzeOaWh+S7tuexu+WeiycpOwogICAgICAgICAgICB9CiAgICAgICAgICB9XTsKICAgICAgICAgIHZlcmlmaWNhdGlvbi5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIGlmIChpdGVtLmNvbmRpdGlvbikgewogICAgICAgICAgICAgIGl0ZW0ucmVzdWx0KCk7CiAgICAgICAgICAgICAgcGFzc2VkT3JOb3QgPSBmYWxzZTsKICAgICAgICAgICAgICBfdGhpcy51cGxvYWRMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgICAgcGFzc2VkT3JOb3QgPyByZXNvbHZlKCkgOiByZWplY3QoKTsKICAgICAgICB9KTsKICAgICAgfSwKICAgICAgb25FcnJvcjogZnVuY3Rpb24gb25FcnJvcihyZXMpIHsKICAgICAgICB2YXIgcmVzXyA9IEpTT04ucGFyc2UocmVzLm1lc3NhZ2UpOwogICAgICAgIF90aGlzLiRtZXNzYWdlLmVycm9yKHJlc18ubWVzc2FnZSB8fCAn5a+85YWl5aSx6LSl77yM6K+36YeN6K+VJyk7CiAgICAgICAgX3RoaXMudXBsb2FkTG9hZGluZyA9IGZhbHNlOwogICAgICB9LAogICAgICBvblN1Y2Nlc3M6IGZ1bmN0aW9uICgpIHsKICAgICAgICB2YXIgX29uU3VjY2VzcyA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKHJlcykgewogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgaWYgKHJlcy5zdGF0ZSkgewogICAgICAgICAgICAgICAgICBfdGhpcy4kbWVzc2FnZS5zdWNjZXNzKCflr7zlhaXmiJDlip8nKTsKICAgICAgICAgICAgICAgICAgX3RoaXMudXBsb2FkTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgICBfdGhpcy5kb3duVmlzaWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgX3RoaXMuJG1lc3NhZ2UuZXJyb3IocmVzLm1lc3NhZ2UpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgICAgfSkpOwogICAgICAgIGZ1bmN0aW9uIG9uU3VjY2VzcyhfeCkgewogICAgICAgICAgcmV0dXJuIF9vblN1Y2Nlc3MuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG9uU3VjY2VzczsKICAgICAgfSgpCiAgICB9OwogICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIFRSRUVfQ09ORklHKSwgVEFCTEVfQ09ORklHKSwgRElBTE9HX0NPTkZJRyksIHt9LCB7CiAgICAgIFVQTE9BRF9DT05GSUc6IFVQTE9BRF9DT05GSUcsCiAgICAgIC8vIOaKveWxieebuOWFswogICAgICBkb3duVmlzaWJsZTogZmFsc2UsCiAgICAgIHVwbG9hZExvYWRpbmc6IGZhbHNlCiAgICB9KTsKICB9LAogIGNvbXB1dGVkOiBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoewogICAgYWN0aW9uVXJsOiBmdW5jdGlvbiBhY3Rpb25VcmwoXykgewogICAgICByZXR1cm4gIiIuY29uY2F0KHdpbmRvdy5jb250ZXh0LnBvcnRhbCwgIi9iaXovZGF0YVJlc291cmNlL29kc1RhYmxlL3YxL2ltcG9ydE1haW4iKTsKICAgIH0KICB9LCBtYXBTdGF0ZSh7CiAgICBoZWFkZXJzOiBmdW5jdGlvbiBoZWFkZXJzKHN0YXRlKSB7CiAgICAgIHJldHVybiB7CiAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiLmNvbmNhdChzdGF0ZS5sb2dpbi5jdXJyZW50VXNlci50b2tlbikKICAgICAgfTsKICAgIH0KICB9KSksIHt9LCB7CiAgICB1cGxvYWRGaWx0ZXI6IGZ1bmN0aW9uIHVwbG9hZEZpbHRlcigpIHsKICAgICAgdmFyIF90aGlzJGN1cnJlbnRSb3c7CiAgICAgIHJldHVybiAoX3RoaXMkY3VycmVudFJvdyA9IHRoaXMuY3VycmVudFJvdykgIT09IG51bGwgJiYgX3RoaXMkY3VycmVudFJvdyAhPT0gdm9pZCAwICYmIF90aGlzJGN1cnJlbnRSb3cuaWQgPyB7CiAgICAgICAgdGFibGVJZDogdGhpcy5jdXJyZW50Um93LmlkCiAgICAgIH0gOiB7fTsKICAgIH0sCiAgICBkYXRhTWV0aG9kOiBmdW5jdGlvbiBkYXRhTWV0aG9kKCkgewogICAgICByZXR1cm4gQVBJLmdldFNvdXJjZUxpc3Q7CiAgICB9LAogICAgaW5pdFJlZnJlc2g6IGZ1bmN0aW9uIGluaXRSZWZyZXNoKCkgewogICAgICByZXR1cm4gZmFsc2U7CiAgICB9CiAgfSksCiAgbWV0aG9kczogewogICAgZ2V0VHJlZU5vZGVzOiBmdW5jdGlvbiBnZXRUcmVlTm9kZXMoKSB7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF95aWVsZCRBUEkkcXVlcnlUcmVlRCwgdmFsdWU7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gQVBJLnF1ZXJ5VHJlZURhdGEoKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCRBUEkkcXVlcnlUcmVlRCA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIHZhbHVlID0gX3lpZWxkJEFQSSRxdWVyeVRyZWVELnZhbHVlOwogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KCJyZXR1cm4iLCB7CiAgICAgICAgICAgICAgICBkYXRhOiB2YWx1ZSB8fCBbXQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDU6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDmn6XnnIvml6Xlv5flvLnlsYIKICAgIHNlcnZpY2VzaG93OiBmdW5jdGlvbiBzZXJ2aWNlc2hvdyhyb3cpIHsKICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlVGl0bGUgPSAiXHU2QkNGXHU2NUU1XHU5MUM3XHU5NkM2XHU3RURGXHU4QkExLSAiLmNvbmNhdChyb3cubmFtZSk7CiAgICAgIHRoaXMuY3VycmVudFJvdyA9IHJvdzsKICAgICAgdmFyIHJvd0lkID0gcm93LmlkOyAvLyDojrflj5blvZPliY3ooYznmoRpZAogICAgICB0aGlzLmRpYWxvZ1NlcnZpY2UgPSB0cnVlOwogICAgICAvLyBjb25zb2xlLmxvZygncm93cm93Jywgcm93LmlkKTsKICAgICAgdGhpcy4kcmVmcy5TZXJ2aWNlRGlhbG9nLmluaXREYXRhKHsKICAgICAgICBpZDogcm93SWQKICAgICAgfSk7IC8vIOWwhmlk5Lyg6YCS57uZU2VydmljZURpYWxvZ+e7hOS7tgogICAgfSwKICAgIENhcHR1cmVzaG93OiBmdW5jdGlvbiBDYXB0dXJlc2hvdyhyb3cpIHsKICAgICAgdGhpcy5kaWFsb2dDYXB0dXJlVGl0bGUgPSAiXHU5MUM3XHU5NkM2XHU2NjBFXHU3RUM2LSAiLmNvbmNhdChyb3cubmFtZSk7CiAgICAgIHRoaXMuY3VycmVudFJvdyA9IHJvdzsKICAgICAgdmFyIHJvd0lkID0gcm93LmlkOyAvLyDojrflj5blvZPliY3ooYznmoRpZAogICAgICB0aGlzLmRpYWxvZ0NhcHR1cmUgPSB0cnVlOwogICAgICAvLyBjb25zb2xlLmxvZygncm93cm93Jywgcm93LmlkKTsKICAgICAgdGhpcy4kcmVmcy5TZXJ2aWNlRGlhbG9nLmluaXREYXRhKHsKICAgICAgICBpZDogcm93SWQKICAgICAgfSk7IC8vIOWwhmlk5Lyg6YCS57uZU2VydmljZURpYWxvZ+e7hOS7tgogICAgfSwKICAgIGFjcXVpc2l0aW9uc2hvdzogZnVuY3Rpb24gYWNxdWlzaXRpb25zaG93KHJvdykgewogICAgICB0aGlzLmRpYWxvZ2FBcXVpc2l0aW9uVGl0bGUgPSAn6YWN572u6YeH6ZuG5pa55byPJzsKICAgICAgdGhpcy5jdXJyZW50Um93ID0gcm93OwogICAgICB2YXIgcm93SWQgPSByb3cuaWQ7IC8vIOiOt+WPluW9k+WJjeihjOeahGlkCiAgICAgIHRoaXMuZGlhbG9nQWNxdWlzaXRpb24gPSB0cnVlOwogICAgICAvLyBjb25zb2xlLmxvZygncm93cm93Jywgcm93LmlkKTsKICAgICAgdGhpcy4kcmVmcy5TZXJ2aWNlRGlhbG9nLmluaXREYXRhKHsKICAgICAgICBpZDogcm93SWQKICAgICAgfSk7IC8vIOWwhmlk5Lyg6YCS57uZU2VydmljZURpYWxvZ+e7hOS7tgogICAgfSwKICAgIC8qKg0KICAgICAqIEBkZXNjcmlwdGlvbjogdHJlZUFjdGlvbnPmlK/mjIHlh73mlbDkuZ/mlK/mjIHmlbDnu4TvvIznlLHkuo7lrp7pmYXlnLrmma/lvZPkuK0g5Y+v6IO95Lya5Yqo5oCB6K6+572u5oyJ6ZKu77yM5pWF5Lul5Ye95pWw56S65L6L5p2l5bGV56S6DQogICAgICogQHBhcmFtIHsqfSBkYXRhIOW9k+WJjeeCueWHu+iKgueCueaVsOaNrg0KICAgICAqIEByZXR1cm4geyp9IOW9k+WJjeiKgueCueWxleekuueahOaTjeS9nOmhueaVsOe7hA0KICAgICAqLwogICAgdHJlZUFjdGlvbnM6IGZ1bmN0aW9uIHRyZWVBY3Rpb25zKGRhdGEpIHsKICAgICAgLy8g5qC56IqC54K55Yik5pat5pa55byP5Lul5Lia5Yqh5Li65YeG77yM5q2k5aSE5LuF5Li656S65L6LCiAgICAgIHJldHVybiBbewogICAgICAgIGxhYmVsOiAn5re75YqgJywKICAgICAgICB0eXBlOiAnYWRkJywKICAgICAgICBtZXRob2Q6IHRoaXMuYWRkTm9kZQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICfnvJbovpEnLAogICAgICAgIHR5cGU6ICdlZGl0JywKICAgICAgICBtZXRob2Q6IHRoaXMuZWRpdE5vZGUKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn5Yig6ZmkJywKICAgICAgICB0eXBlOiAnZGVsZXRlJywKICAgICAgICBtZXRob2Q6IHRoaXMuZGVsTm9kZQogICAgICB9XTsKICAgIH0sCiAgICBvbkJlZm9yZUdldERhdGE6IGZ1bmN0aW9uIG9uQmVmb3JlR2V0RGF0YShxdWVyeVBhcmFtcywgZm9ybURhdGEpIHsKICAgICAgdGhpcy5zZXRGaWx0ZXJWYWx1ZSh0aGlzLnF1ZXJ5UGFyYW1zLCB0aGlzLmRlZmF1bHRGaWx0ZXIsICdkZXBsb3llZCcsICcxJyk7CiAgICB9LAogICAgZG93bkxvYWQ6IGZ1bmN0aW9uIGRvd25Mb2FkKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQzLnByZXYgPSAwOwogICAgICAgICAgICAgIF90aGlzMi51cGxvYWRMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5kb3duTG9hZEZpbGUoX3RoaXMyLmN1cnJlbnRSb3cuaWQpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSA5OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgICAgX2NvbnRleHQzLnByZXYgPSA2OwogICAgICAgICAgICAgIF9jb250ZXh0My50MCA9IF9jb250ZXh0M1siY2F0Y2giXSgwKTsKICAgICAgICAgICAgICBjb25zb2xlLmxvZyhfY29udGV4dDMudDAubWVzc2FnZSB8fCAn5LiL6L295aSx6LSlJyk7CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDk7CiAgICAgICAgICAgICAgX3RoaXMyLnVwbG9hZExvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmZpbmlzaCg5KTsKICAgICAgICAgICAgY2FzZSAxMjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMywgbnVsbCwgW1swLCA2LCA5LCAxMl1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgb25UcmVlTm9kZUNsaWNrOiBmdW5jdGlvbiBvblRyZWVOb2RlQ2xpY2sobm9kZSkgewogICAgICB2YXIgX3RoaXMkY3VyTm9kZTsKICAgICAgaWYgKG5vZGUuaWQgPT09ICgoX3RoaXMkY3VyTm9kZSA9IHRoaXMuY3VyTm9kZSkgPT09IG51bGwgfHwgX3RoaXMkY3VyTm9kZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkY3VyTm9kZS5pZCkpIHJldHVybjsKICAgICAgdGhpcy5jdXJOb2RlID0gX29iamVjdFNwcmVhZCh7fSwgbm9kZSk7CiAgICAgIHRoaXMuZmlsdGVyc1snb2RzQ2F0YWxvZ3NJZCddID0gbm9kZS5pZDsKICAgICAgdGhpcy5yZWZyZXNoKCk7CiAgICB9LAogICAgYWRkTm9kZTogZnVuY3Rpb24gYWRkTm9kZShwYXJhbXMsIG5vZGUpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgdmFyIHRyZWU7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gMDsKICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDM7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5hZGRUcmVlTm9kZShwYXJhbXMpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgdHJlZSA9IF90aGlzMy4kcmVmcy5hcHBBc3luY1RyZWUuZ2V0RWxUcmVlKCk7CiAgICAgICAgICAgICAgdHJlZS5hcHBlbmQocGFyYW1zLCBub2RlKTsKICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDEwOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgX2NvbnRleHQ0LnByZXYgPSA3OwogICAgICAgICAgICAgIF9jb250ZXh0NC50MCA9IF9jb250ZXh0NFsiY2F0Y2giXSgwKTsKICAgICAgICAgICAgICBjb25zb2xlLmxvZyhfY29udGV4dDQudDApOwogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU0LCBudWxsLCBbWzAsIDddXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGVkaXROb2RlOiBmdW5jdGlvbiBlZGl0Tm9kZShwYXJhbXMsIG5vZGUpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUoKSB7CiAgICAgICAgdmFyIGNvZGUsIG5hbWUsIHBhcmVudElkLCBpZDsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ1LnByZXYgPSAwOwogICAgICAgICAgICAgIGNvZGUgPSBwYXJhbXMuY29kZSwgbmFtZSA9IHBhcmFtcy5uYW1lLCBwYXJlbnRJZCA9IHBhcmFtcy5wYXJlbnRJZCwgaWQgPSBwYXJhbXMuaWQ7CiAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiBBUEkuZWRpdFRyZWVOb2RlKHsKICAgICAgICAgICAgICAgIGNvZGU6IGNvZGUsCiAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLAogICAgICAgICAgICAgICAgcGFyZW50SWQ6IHBhcmVudElkLAogICAgICAgICAgICAgICAgaWQ6IGlkCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfdGhpczQuJHJlZnMuYXBwQXN5bmNUcmVlLmdldFRyZWVEYXRhKCk7CiAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAxMDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA3OgogICAgICAgICAgICAgIF9jb250ZXh0NS5wcmV2ID0gNzsKICAgICAgICAgICAgICBfY29udGV4dDUudDAgPSBfY29udGV4dDVbImNhdGNoIl0oMCk7CiAgICAgICAgICAgICAgY29uc29sZS5sb2coX2NvbnRleHQ1LnQwKTsKICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNSwgbnVsbCwgW1swLCA3XV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBkZWxOb2RlOiBmdW5jdGlvbiBkZWxOb2RlKHBhcmFtcywgbm9kZSkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNigpIHsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTYkKF9jb250ZXh0NikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ2LnByZXYgPSBfY29udGV4dDYubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ2LnByZXYgPSAwOwogICAgICAgICAgICAgIF9jb250ZXh0Ni5uZXh0ID0gMzsKICAgICAgICAgICAgICByZXR1cm4gQVBJLmRlbFRyZWVOb2RlKG5vZGUuaWQpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3RoaXM1LiRyZWZzLmFwcEFzeW5jVHJlZS5nZXRUcmVlRGF0YSgpOwogICAgICAgICAgICAgIF9jb250ZXh0Ni5uZXh0ID0gOTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICAgIF9jb250ZXh0Ni5wcmV2ID0gNjsKICAgICAgICAgICAgICBfY29udGV4dDYudDAgPSBfY29udGV4dDZbImNhdGNoIl0oMCk7CiAgICAgICAgICAgICAgX3RoaXM1LiRtZXNzYWdlLndhcm5pbmcoX2NvbnRleHQ2LnQwIHx8ICfliKDpmaTotYTmupDnm67lvZXlpLHotKXvvIEnKTsKICAgICAgICAgICAgY2FzZSA5OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDYuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU2LCBudWxsLCBbWzAsIDZdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIGRhdGFBZGQ6IGZ1bmN0aW9uIGRhdGFBZGQoKSB7CiAgICAgIHRoaXMuZGlhbG9nVGl0bGUgPSAn5paw5aKe6LS05rqQ5bGC5pWw5o2u5rqQJzsKICAgICAgdGhpcy5kaWFsb2dWaXNpYmxlID0gdHJ1ZTsKICAgIH0sCiAgICBvbkFkZENvbmZpcm06IGZ1bmN0aW9uIG9uQWRkQ29uZmlybShzb3VyY2UpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTcoKSB7CiAgICAgICAgdmFyIHBhcmFtczsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTckKF9jb250ZXh0NykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ3LnByZXYgPSBfY29udGV4dDcubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgLyoqIOWFiOazqOmHiiovCiAgICAgICAgICAgICAgLy8gY29uc3QgcGFyYW1zID0gewogICAgICAgICAgICAgIC8vICAgLi4uc291cmNlLAogICAgICAgICAgICAgIC8vICAgb2RzQ2F0YWxvZ3NJZDogdGhpcy5jdXJOb2RlLmlkLAogICAgICAgICAgICAgIC8vICAgZGJTb3VyY2VJZDogc291cmNlLmlkLAogICAgICAgICAgICAgIC8vICAgY2x1c3Rlck1vdWxkSWQ6IHNvdXJjZS5jbHVzdGVySWQsCiAgICAgICAgICAgICAgLy8gfTsKICAgICAgICAgICAgICAvLyBkZWxldGUgcGFyYW1zLmlkOwogICAgICAgICAgICAgIC8vIGRlbGV0ZSBwYXJhbXMuY2x1c3RlcklkOwogICAgICAgICAgICAgIC8vIGRlbGV0ZSBwYXJhbXMuZGVwbG95ZWQ7CiAgICAgICAgICAgICAgLy8KICAgICAgICAgICAgICAvLyB0cnkgewogICAgICAgICAgICAgIC8vICAgYXdhaXQgQVBJLmFkZFNvdXJjZShwYXJhbXMpOwogICAgICAgICAgICAgIC8vICAgLy8gdGhpcy4kbWUKICAgICAgICAgICAgICAvLyAgIHRoaXMucmVmcmVzaCgpOwogICAgICAgICAgICAgIC8vIH0gY2F0Y2ggKGVycm9yKSB7CiAgICAgICAgICAgICAgLy8gICBjb25zb2xlLmxvZyhlcnJvcik7CiAgICAgICAgICAgICAgLy8gfQogICAgICAgICAgICAgIHBhcmFtcyA9IHsKICAgICAgICAgICAgICAgIGNhdGFsb2dJZDogX3RoaXM2LmN1ck5vZGUuaWQsCiAgICAgICAgICAgICAgICB0YWJsZUlkOiBzb3VyY2UuaWQKICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0Ny5wcmV2ID0gMTsKICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDQ7CiAgICAgICAgICAgICAgcmV0dXJuIEFQSS5hZGRCeUNvbXBhbnlTb3VyY2UocGFyYW1zKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF90aGlzNi4kbWVzc2FnZS5zdWNjZXNzKCfmk43kvZzmiJDlip8nKTsKICAgICAgICAgICAgICAvLyB0aGlzLiRtZQogICAgICAgICAgICAgIF90aGlzNi5yZWZyZXNoKCk7CiAgICAgICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAxMTsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSA4OgogICAgICAgICAgICAgIF9jb250ZXh0Ny5wcmV2ID0gODsKICAgICAgICAgICAgICBfY29udGV4dDcudDAgPSBfY29udGV4dDdbImNhdGNoIl0oMSk7CiAgICAgICAgICAgICAgY29uc29sZS5sb2coX2NvbnRleHQ3LnQwKTsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBjb25zb2xlLmxvZyhwYXJhbXMpOwogICAgICAgICAgICBjYXNlIDEyOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU3LCBudWxsLCBbWzEsIDhdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIHNob3dEZXRhaWw6IGZ1bmN0aW9uIHNob3dEZXRhaWwoKSB7fQogIH0KfTs="},null]}