testcafe 2.6.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/bin/testcafe-with-v8-flag-filter.js +10 -16
  3. package/lib/api/exportable-lib/index.js +1 -11
  4. package/lib/api/structure/test.js +4 -11
  5. package/lib/api/test-controller/index.js +3 -10
  6. package/lib/api/test-run-tracker.js +1 -1
  7. package/lib/assertions/executor.js +2 -11
  8. package/lib/browser/connection/gateway/index.js +3 -4
  9. package/lib/cli/argument-parser/index.js +1 -3
  10. package/lib/cli/cli.js +3 -11
  11. package/lib/client/automation/index.js +49 -36
  12. package/lib/client/automation/index.min.js +1 -1
  13. package/lib/client/browser/idle-page/index.js +13 -5
  14. package/lib/client/core/index.js +14 -8
  15. package/lib/client/core/index.min.js +1 -1
  16. package/lib/client/driver/index.js +19 -20
  17. package/lib/client/driver/index.min.js +1 -1
  18. package/lib/compiler/babel/load-libs.js +3 -3
  19. package/lib/compiler/compilers.js +6 -6
  20. package/lib/compiler/index.js +3 -3
  21. package/lib/compiler/interfaces.js +1 -1
  22. package/lib/compiler/test-file/add-export-api.js +3 -3
  23. package/lib/compiler/test-file/api-based.js +5 -34
  24. package/lib/compiler/test-file/formats/es-next/compiler.js +4 -4
  25. package/lib/compiler/test-file/formats/typescript/compiler.js +5 -5
  26. package/lib/configuration/option-names.js +1 -2
  27. package/lib/errors/runtime/templates.js +1 -2
  28. package/lib/errors/types.js +2 -3
  29. package/lib/index.js +1 -3
  30. package/lib/live/bootstrapper.js +3 -3
  31. package/lib/live/test-runner.js +5 -5
  32. package/lib/native-automation/add-custom-debug-formatters.js +3 -2
  33. package/lib/native-automation/client/event-descriptor.js +11 -5
  34. package/lib/native-automation/client/input.js +3 -7
  35. package/lib/native-automation/request-hooks/event-provider.js +4 -1
  36. package/lib/native-automation/request-pipeline/context-info.js +4 -1
  37. package/lib/native-automation/request-pipeline/index.js +39 -19
  38. package/lib/native-automation/request-pipeline/safe-api.js +10 -7
  39. package/lib/native-automation/request-pipeline/special-handlers.js +16 -13
  40. package/lib/native-automation/resource-injector.js +7 -7
  41. package/lib/native-automation/types.js +1 -1
  42. package/lib/native-automation/utils/cdp.js +3 -2
  43. package/lib/role/role.js +4 -39
  44. package/lib/runner/bootstrapper.js +4 -11
  45. package/lib/runner/browser-job.js +4 -5
  46. package/lib/runner/fixture-hook-controller.js +1 -7
  47. package/lib/runner/index.js +6 -53
  48. package/lib/runner/interfaces.js +1 -1
  49. package/lib/runner/task/index.js +2 -4
  50. package/lib/runner/test-run-controller.js +2 -4
  51. package/lib/test-run/bookmark.js +5 -23
  52. package/lib/test-run/commands/service.js +2 -3
  53. package/lib/test-run/commands/utils.js +4 -2
  54. package/lib/test-run/index.js +9 -132
  55. package/lib/testcafe.js +1 -9
  56. package/lib/utils/debug-loggers.js +4 -2
  57. package/lib/utils/parse-user-agent.js +17 -2
  58. package/package.json +3 -4
  59. package/lib/compiler/test-file/test-file-temp-variable-name.js +0 -6
  60. package/lib/dashboard/config-storage.js +0 -26
  61. package/lib/dashboard/connector.js +0 -84
  62. package/lib/dashboard/documentation-url.js +0 -6
  63. package/lib/dashboard/formatting.js +0 -26
  64. package/lib/dashboard/get-dashboard-url.js +0 -10
  65. package/lib/dashboard/get-default-project-link.js +0 -23
  66. package/lib/dashboard/get-env-options.js +0 -26
  67. package/lib/dashboard/index.js +0 -145
  68. package/lib/dashboard/interfaces.js +0 -3
  69. package/lib/dashboard/messages.js +0 -21
  70. package/lib/services/compiler/esm-runtime-holder-name.js +0 -6
  71. package/lib/services/compiler/host.js +0 -370
  72. package/lib/services/compiler/interfaces.js +0 -3
  73. package/lib/services/compiler/io.js +0 -10
  74. package/lib/services/compiler/protocol.js +0 -17
  75. package/lib/services/compiler/service-loader.js +0 -18
  76. package/lib/services/compiler/service.js +0 -362
  77. package/lib/services/compiler/test-run-proxy.js +0 -157
  78. package/lib/services/interfaces.js +0 -3
  79. package/lib/services/process-title.js +0 -10
  80. package/lib/services/serialization/prepare-options.js +0 -23
  81. package/lib/services/serialization/replicator/create-replicator.js +0 -58
  82. package/lib/services/serialization/replicator/interfaces.js +0 -3
  83. package/lib/services/serialization/replicator/transforms/base-transform.js +0 -16
  84. package/lib/services/serialization/replicator/transforms/browser-console-messages-transform.js +0 -23
  85. package/lib/services/serialization/replicator/transforms/callsite-record-transform.js +0 -24
  86. package/lib/services/serialization/replicator/transforms/command-base-trasform/assertion-command-constructors.js +0 -28
  87. package/lib/services/serialization/replicator/transforms/command-base-trasform/command-constructors.js +0 -67
  88. package/lib/services/serialization/replicator/transforms/command-base-trasform/index.js +0 -49
  89. package/lib/services/serialization/replicator/transforms/command-base-trasform/types.js +0 -3
  90. package/lib/services/serialization/replicator/transforms/configure-response-event-option-transform.js +0 -21
  91. package/lib/services/serialization/replicator/transforms/custom-error-transform.js +0 -29
  92. package/lib/services/serialization/replicator/transforms/function-marker-transform/index.js +0 -21
  93. package/lib/services/serialization/replicator/transforms/function-marker-transform/marker.js +0 -9
  94. package/lib/services/serialization/replicator/transforms/promise-marker-transform/index.js +0 -21
  95. package/lib/services/serialization/replicator/transforms/promise-marker-transform/marker.js +0 -9
  96. package/lib/services/serialization/replicator/transforms/raw-command-callsite-record-transform.js +0 -22
  97. package/lib/services/serialization/replicator/transforms/re-executable-promise-transform/index.js +0 -22
  98. package/lib/services/serialization/replicator/transforms/re-executable-promise-transform/marker.js +0 -6
  99. package/lib/services/serialization/replicator/transforms/request-filter-rule-transform.js +0 -23
  100. package/lib/services/serialization/replicator/transforms/request-hook-event-data-transform.js +0 -41
  101. package/lib/services/serialization/replicator/transforms/response-mock-transform.js +0 -23
  102. package/lib/services/serialization/replicator/transforms/role-transform.js +0 -21
  103. package/lib/services/serialization/replicator/transforms/testcafe-error-list-transform.js +0 -23
  104. package/lib/services/serialization/replicator/transforms/url-transform.js +0 -23
  105. package/lib/services/serialization/test-structure.js +0 -91
  106. package/lib/services/utils/ipc/interfaces.js +0 -29
  107. package/lib/services/utils/ipc/io.js +0 -109
  108. package/lib/services/utils/ipc/message.js +0 -84
  109. package/lib/services/utils/ipc/packet.js +0 -57
  110. package/lib/services/utils/ipc/proxy.js +0 -94
  111. package/lib/services/utils/ipc/transport.js +0 -65
  112. package/lib/services/utils/method-should-not-be-called-error.js +0 -10
@@ -11,11 +11,17 @@ const http_status_codes_1 = require("http-status-codes");
11
11
  const load_assets_1 = __importDefault(require("../../load-assets"));
12
12
  const string_1 = require("../utils/string");
13
13
  const safe_api_1 = require("./safe-api");
14
+ async function handleRequestPauseEvent(event, client, sessionId) {
15
+ if ((0, cdp_1.isRequest)(event))
16
+ await (0, safe_api_1.safeContinueRequest)(client, event, sessionId);
17
+ else
18
+ await (0, safe_api_1.safeContinueResponse)(client, event, sessionId);
19
+ }
14
20
  const internalRequest = {
15
- condition: (event) => !event.networkId && event.resourceType !== 'Document',
16
- handler: async (event, client) => {
21
+ condition: (event) => !event.networkId && event.resourceType !== 'Document' && !event.request.url,
22
+ handler: async (event, client, options, sessionId) => {
17
23
  (0, debug_loggers_1.requestPipelineInternalRequestLogger)('%r', event);
18
- await (0, safe_api_1.safeFailRequest)(client, event);
24
+ await handleRequestPauseEvent(event, client, sessionId);
19
25
  },
20
26
  };
21
27
  const serviceRequest = {
@@ -27,12 +33,9 @@ const serviceRequest = {
27
33
  return false;
28
34
  return options.serviceDomains.some(domain => url.startsWith(domain));
29
35
  },
30
- handler: async (event, client) => {
36
+ handler: async (event, client, options, sessionId) => {
31
37
  (0, debug_loggers_1.requestPipelineServiceRequestLogger)('%r', event);
32
- if ((0, cdp_1.isRequest)(event))
33
- await (0, safe_api_1.safeContinueRequest)(client, event);
34
- else
35
- await (0, safe_api_1.safeContinueResponse)(client, event);
38
+ await handleRequestPauseEvent(event, client, sessionId);
36
39
  },
37
40
  };
38
41
  const defaultFaviconRequest = {
@@ -40,10 +43,10 @@ const defaultFaviconRequest = {
40
43
  const parsedUrl = new URL(event.request.url);
41
44
  return parsedUrl.pathname === injectables_1.DEFAULT_FAVICON_PATH;
42
45
  },
43
- handler: async (event, client, options) => {
46
+ handler: async (event, client, options, sessionId) => {
44
47
  (0, debug_loggers_1.requestPipelineLogger)('%r', event);
45
48
  if ((0, cdp_1.isRequest)(event))
46
- await (0, safe_api_1.safeContinueRequest)(client, event);
49
+ await (0, safe_api_1.safeContinueRequest)(client, event, sessionId);
47
50
  else {
48
51
  if (event.responseStatusCode === http_status_codes_1.StatusCodes.NOT_FOUND) { // eslint-disable-line no-lonely-if
49
52
  const { favIcon } = (0, load_assets_1.default)(options.developmentMode);
@@ -52,10 +55,10 @@ const defaultFaviconRequest = {
52
55
  responseCode: http_status_codes_1.StatusCodes.OK,
53
56
  responseHeaders: [constants_1.FAVICON_CONTENT_TYPE_HEADER],
54
57
  body: (0, string_1.toBase64String)(favIcon),
55
- });
58
+ }, sessionId);
56
59
  }
57
60
  else
58
- await (0, safe_api_1.safeContinueResponse)(client, event);
61
+ await (0, safe_api_1.safeContinueResponse)(client, event, sessionId);
59
62
  }
60
63
  },
61
64
  };
@@ -70,4 +73,4 @@ function getSpecialRequestHandler(event, options, serviceRoutes) {
70
73
  }
71
74
  exports.default = getSpecialRequestHandler;
72
75
  module.exports = exports.default;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uYXRpdmUtYXV0b21hdGlvbi9yZXF1ZXN0LXBpcGVsaW5lL3NwZWNpYWwtaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSwwREFBZ0U7QUFHaEUsNkRBSW1DO0FBRW5DLHNDQUF5QztBQUN6QywyQ0FBMEQ7QUFDMUQseURBQWdEO0FBQ2hELG9FQUEyQztBQUMzQyw0Q0FBaUQ7QUFDakQseUNBS29CO0FBR3BCLE1BQU0sZUFBZSxHQUFHO0lBQ3BCLFNBQVMsRUFBRSxDQUFDLEtBQXlCLEVBQVcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsWUFBWSxLQUFLLFVBQVU7SUFDeEcsT0FBTyxFQUFJLEtBQUssRUFBRSxLQUF5QixFQUFFLE1BQW1CLEVBQWlCLEVBQUU7UUFDL0UsSUFBQSxvREFBb0MsRUFBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEQsTUFBTSxJQUFBLDBCQUFlLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7Q0FDYyxDQUFDO0FBRXBCLE1BQU0sY0FBYyxHQUFHO0lBQ25CLFNBQVMsRUFBRSxDQUFDLEtBQXlCLEVBQUUsT0FBb0MsRUFBRSxhQUFtQyxFQUFXLEVBQUU7UUFDekgsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFFOUIsb0RBQW9EO1FBQ3BELElBQUksR0FBRyxLQUFLLGFBQWEsQ0FBQyxVQUFVO2VBQzdCLEdBQUcsS0FBSyxhQUFhLENBQUMsVUFBVTtZQUNuQyxPQUFPLEtBQUssQ0FBQztRQUVqQixPQUFPLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQXlCLEVBQUUsTUFBbUIsRUFBaUIsRUFBRTtRQUM3RSxJQUFBLG1EQUFtQyxFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVqRCxJQUFJLElBQUEsZUFBUyxFQUFDLEtBQUssQ0FBQztZQUNoQixNQUFNLElBQUEsOEJBQW1CLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDOztZQUV6QyxNQUFNLElBQUEsK0JBQW9CLEVBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDYyxDQUFDO0FBRXBCLE1BQU0scUJBQXFCLEdBQUc7SUFDMUIsU0FBUyxFQUFFLENBQUMsS0FBeUIsRUFBVyxFQUFFO1FBQzlDLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFN0MsT0FBTyxTQUFTLENBQUMsUUFBUSxLQUFLLGtDQUFvQixDQUFDO0lBQ3ZELENBQUM7SUFDRCxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQXlCLEVBQUUsTUFBbUIsRUFBRSxPQUFvQyxFQUFpQixFQUFFO1FBQ25ILElBQUEscUNBQXFCLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksSUFBQSxlQUFTLEVBQUMsS0FBSyxDQUFDO1lBQ2hCLE1BQU0sSUFBQSw4QkFBbUIsRUFBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDeEM7WUFDRCxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsS0FBSywrQkFBVyxDQUFDLFNBQVMsRUFBRSxFQUFFLG1DQUFtQztnQkFDekYsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLElBQUEscUJBQVUsRUFBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBRXhELE1BQU0sSUFBQSw2QkFBa0IsRUFBQyxNQUFNLEVBQUU7b0JBQzdCLFNBQVMsRUFBUSxLQUFLLENBQUMsU0FBUztvQkFDaEMsWUFBWSxFQUFLLCtCQUFXLENBQUMsRUFBRTtvQkFDL0IsZUFBZSxFQUFFLENBQUUsdUNBQTJCLENBQUU7b0JBQ2hELElBQUksRUFBYSxJQUFBLHVCQUFjLEVBQUMsT0FBTyxDQUFDO2lCQUMzQyxDQUFDLENBQUM7YUFDTjs7Z0JBRUcsTUFBTSxJQUFBLCtCQUFvQixFQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7Q0FDYyxDQUFDO0FBRXBCLE1BQU0sd0JBQXdCLEdBQUc7SUFDN0IsZUFBZTtJQUNmLGNBQWM7SUFDZCxxQkFBcUI7Q0FDeEIsQ0FBQztBQUVGLFNBQXdCLHdCQUF3QixDQUFFLEtBQXlCLEVBQUUsT0FBcUMsRUFBRSxhQUFvQztJQUNwSixNQUFNLHFCQUFxQixHQUFHLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBRTdHLE9BQU8scUJBQXFCLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ3hFLENBQUM7QUFKRCwyQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IHsgREVGQVVMVF9GQVZJQ09OX1BBVEggfSBmcm9tICcuLi8uLi9hc3NldHMvaW5qZWN0YWJsZXMnO1xuaW1wb3J0IHsgUmVxdWVzdEhhbmRsZXIsIFNwZWNpYWxTZXJ2aWNlUm91dGVzIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIHJlcXVlc3RQaXBlbGluZUludGVybmFsUmVxdWVzdExvZ2dlcixcbiAgICByZXF1ZXN0UGlwZWxpbmVMb2dnZXIsXG4gICAgcmVxdWVzdFBpcGVsaW5lU2VydmljZVJlcXVlc3RMb2dnZXIsXG59IGZyb20gJy4uLy4uL3V0aWxzL2RlYnVnLWxvZ2dlcnMnO1xuaW1wb3J0IHsgTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3R5cGVzJztcbmltcG9ydCB7IGlzUmVxdWVzdCB9IGZyb20gJy4uL3V0aWxzL2NkcCc7XG5pbXBvcnQgeyBGQVZJQ09OX0NPTlRFTlRfVFlQRV9IRUFERVIgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBTdGF0dXNDb2RlcyB9IGZyb20gJ2h0dHAtc3RhdHVzLWNvZGVzJztcbmltcG9ydCBsb2FkQXNzZXRzIGZyb20gJy4uLy4uL2xvYWQtYXNzZXRzJztcbmltcG9ydCB7IHRvQmFzZTY0U3RyaW5nIH0gZnJvbSAnLi4vdXRpbHMvc3RyaW5nJztcbmltcG9ydCB7XG4gICAgc2FmZUNvbnRpbnVlUmVxdWVzdCxcbiAgICBzYWZlQ29udGludWVSZXNwb25zZSxcbiAgICBzYWZlRmFpbFJlcXVlc3QsXG4gICAgc2FmZUZ1bGZpbGxSZXF1ZXN0LFxufSBmcm9tICcuL3NhZmUtYXBpJztcblxuXG5jb25zdCBpbnRlcm5hbFJlcXVlc3QgPSB7XG4gICAgY29uZGl0aW9uOiAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCk6IGJvb2xlYW4gPT4gIWV2ZW50Lm5ldHdvcmtJZCAmJiBldmVudC5yZXNvdXJjZVR5cGUgIT09ICdEb2N1bWVudCcsXG4gICAgaGFuZGxlcjogICBhc3luYyAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgY2xpZW50OiBQcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICByZXF1ZXN0UGlwZWxpbmVJbnRlcm5hbFJlcXVlc3RMb2dnZXIoJyVyJywgZXZlbnQpO1xuXG4gICAgICAgIGF3YWl0IHNhZmVGYWlsUmVxdWVzdChjbGllbnQsIGV2ZW50KTtcbiAgICB9LFxufSBhcyBSZXF1ZXN0SGFuZGxlcjtcblxuY29uc3Qgc2VydmljZVJlcXVlc3QgPSB7XG4gICAgY29uZGl0aW9uOiAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgb3B0aW9uczogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zLCBzZXJ2aWNlUm91dGVzOiBTcGVjaWFsU2VydmljZVJvdXRlcyk6IGJvb2xlYW4gPT4ge1xuICAgICAgICBjb25zdCB1cmwgPSBldmVudC5yZXF1ZXN0LnVybDtcblxuICAgICAgICAvLyBOT1RFOiB0aGUgc2VydmljZSAnRXJyb3IgcGFnZScgc2hvdWxkIGJlIHByb3hpZWQuXG4gICAgICAgIGlmICh1cmwgPT09IHNlcnZpY2VSb3V0ZXMuZXJyb3JQYWdlMVxuICAgICAgICAgICAgfHwgdXJsID09PSBzZXJ2aWNlUm91dGVzLmVycm9yUGFnZTIpXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgcmV0dXJuIG9wdGlvbnMuc2VydmljZURvbWFpbnMuc29tZShkb21haW4gPT4gdXJsLnN0YXJ0c1dpdGgoZG9tYWluKSk7XG4gICAgfSxcbiAgICBoYW5kbGVyOiBhc3luYyAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgY2xpZW50OiBQcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICByZXF1ZXN0UGlwZWxpbmVTZXJ2aWNlUmVxdWVzdExvZ2dlcignJXInLCBldmVudCk7XG5cbiAgICAgICAgaWYgKGlzUmVxdWVzdChldmVudCkpXG4gICAgICAgICAgICBhd2FpdCBzYWZlQ29udGludWVSZXF1ZXN0KGNsaWVudCwgZXZlbnQpO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgICBhd2FpdCBzYWZlQ29udGludWVSZXNwb25zZShjbGllbnQsIGV2ZW50KTtcbiAgICB9LFxufSBhcyBSZXF1ZXN0SGFuZGxlcjtcblxuY29uc3QgZGVmYXVsdEZhdmljb25SZXF1ZXN0ID0ge1xuICAgIGNvbmRpdGlvbjogKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBib29sZWFuID0+IHtcbiAgICAgICAgY29uc3QgcGFyc2VkVXJsID0gbmV3IFVSTChldmVudC5yZXF1ZXN0LnVybCk7XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlZFVybC5wYXRobmFtZSA9PT0gREVGQVVMVF9GQVZJQ09OX1BBVEg7XG4gICAgfSxcbiAgICBoYW5kbGVyOiBhc3luYyAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgY2xpZW50OiBQcm90b2NvbEFwaSwgb3B0aW9uczogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIHJlcXVlc3RQaXBlbGluZUxvZ2dlcignJXInLCBldmVudCk7XG5cbiAgICAgICAgaWYgKGlzUmVxdWVzdChldmVudCkpXG4gICAgICAgICAgICBhd2FpdCBzYWZlQ29udGludWVSZXF1ZXN0KGNsaWVudCwgZXZlbnQpO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChldmVudC5yZXNwb25zZVN0YXR1c0NvZGUgPT09IFN0YXR1c0NvZGVzLk5PVF9GT1VORCkgeyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWxvbmVseS1pZlxuICAgICAgICAgICAgICAgIGNvbnN0IHsgZmF2SWNvbiB9ID0gbG9hZEFzc2V0cyhvcHRpb25zLmRldmVsb3BtZW50TW9kZSk7XG5cbiAgICAgICAgICAgICAgICBhd2FpdCBzYWZlRnVsZmlsbFJlcXVlc3QoY2xpZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RJZDogICAgICAgZXZlbnQucmVxdWVzdElkLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZUNvZGU6ICAgIFN0YXR1c0NvZGVzLk9LLFxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZUhlYWRlcnM6IFsgRkFWSUNPTl9DT05URU5UX1RZUEVfSEVBREVSIF0sXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6ICAgICAgICAgICAgdG9CYXNlNjRTdHJpbmcoZmF2SWNvbiksXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgYXdhaXQgc2FmZUNvbnRpbnVlUmVzcG9uc2UoY2xpZW50LCBldmVudCk7XG4gICAgICAgIH1cbiAgICB9LFxufSBhcyBSZXF1ZXN0SGFuZGxlcjtcblxuY29uc3QgU1BFQ0lBTF9SRVFVRVNUX0hBTkRMRVJTID0gW1xuICAgIGludGVybmFsUmVxdWVzdCxcbiAgICBzZXJ2aWNlUmVxdWVzdCxcbiAgICBkZWZhdWx0RmF2aWNvblJlcXVlc3QsXG5dO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRTcGVjaWFsUmVxdWVzdEhhbmRsZXIgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIG9wdGlvbnM/OiBOYXRpdmVBdXRvbWF0aW9uSW5pdE9wdGlvbnMsIHNlcnZpY2VSb3V0ZXM/OiBTcGVjaWFsU2VydmljZVJvdXRlcyk6IGFueSB7XG4gICAgY29uc3Qgc3BlY2lhbFJlcXVlc3RIYW5kbGVyID0gU1BFQ0lBTF9SRVFVRVNUX0hBTkRMRVJTLmZpbmQoaCA9PiBoLmNvbmRpdGlvbihldmVudCwgb3B0aW9ucywgc2VydmljZVJvdXRlcykpO1xuXG4gICAgcmV0dXJuIHNwZWNpYWxSZXF1ZXN0SGFuZGxlciA/IHNwZWNpYWxSZXF1ZXN0SGFuZGxlci5oYW5kbGVyIDogbnVsbDtcbn1cblxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY2lhbC1oYW5kbGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9uYXRpdmUtYXV0b21hdGlvbi9yZXF1ZXN0LXBpcGVsaW5lL3NwZWNpYWwtaGFuZGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSwwREFBZ0U7QUFPaEUsNkRBSW1DO0FBRW5DLHNDQUF5QztBQUN6QywyQ0FBMEQ7QUFDMUQseURBQWdEO0FBQ2hELG9FQUEyQztBQUMzQyw0Q0FBaUQ7QUFDakQseUNBSW9CO0FBRXBCLEtBQUssVUFBVSx1QkFBdUIsQ0FBRSxLQUF5QixFQUFFLE1BQW1CLEVBQUUsU0FBb0I7SUFDeEcsSUFBSSxJQUFBLGVBQVMsRUFBQyxLQUFLLENBQUM7UUFDaEIsTUFBTSxJQUFBLDhCQUFtQixFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7O1FBRXBELE1BQU0sSUFBQSwrQkFBb0IsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFHRCxNQUFNLGVBQWUsR0FBRztJQUNwQixTQUFTLEVBQUUsQ0FBQyxLQUF5QixFQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxVQUFVLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUc7SUFDOUgsT0FBTyxFQUFJLEtBQUssRUFBRSxLQUF5QixFQUFFLE1BQW1CLEVBQUUsT0FBb0MsRUFBRSxTQUFvQixFQUFpQixFQUFFO1FBQzNJLElBQUEsb0RBQW9DLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWxELE1BQU0sdUJBQXVCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ2MsQ0FBQztBQUVwQixNQUFNLGNBQWMsR0FBRztJQUNuQixTQUFTLEVBQUUsQ0FBQyxLQUF5QixFQUFFLE9BQW9DLEVBQUUsYUFBbUMsRUFBVyxFQUFFO1FBQ3pILE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBRTlCLG9EQUFvRDtRQUNwRCxJQUFJLEdBQUcsS0FBSyxhQUFhLENBQUMsVUFBVTtlQUM3QixHQUFHLEtBQUssYUFBYSxDQUFDLFVBQVU7WUFDbkMsT0FBTyxLQUFLLENBQUM7UUFFakIsT0FBTyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUF5QixFQUFFLE1BQW1CLEVBQUUsT0FBb0MsRUFBRSxTQUFvQixFQUFpQixFQUFFO1FBQ3pJLElBQUEsbURBQW1DLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRWpELE1BQU0sdUJBQXVCLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1RCxDQUFDO0NBQ2MsQ0FBQztBQUVwQixNQUFNLHFCQUFxQixHQUFHO0lBQzFCLFNBQVMsRUFBRSxDQUFDLEtBQXlCLEVBQVcsRUFBRTtRQUM5QyxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTdDLE9BQU8sU0FBUyxDQUFDLFFBQVEsS0FBSyxrQ0FBb0IsQ0FBQztJQUN2RCxDQUFDO0lBQ0QsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUF5QixFQUFFLE1BQW1CLEVBQUUsT0FBb0MsRUFBRSxTQUFvQixFQUFpQixFQUFFO1FBQ3pJLElBQUEscUNBQXFCLEVBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRW5DLElBQUksSUFBQSxlQUFTLEVBQUMsS0FBSyxDQUFDO1lBQ2hCLE1BQU0sSUFBQSw4QkFBbUIsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ25EO1lBQ0QsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEtBQUssK0JBQVcsQ0FBQyxTQUFTLEVBQUUsRUFBRSxtQ0FBbUM7Z0JBQ3pGLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFBLHFCQUFVLEVBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUV4RCxNQUFNLElBQUEsNkJBQWtCLEVBQUMsTUFBTSxFQUFFO29CQUM3QixTQUFTLEVBQVEsS0FBSyxDQUFDLFNBQVM7b0JBQ2hDLFlBQVksRUFBSywrQkFBVyxDQUFDLEVBQUU7b0JBQy9CLGVBQWUsRUFBRSxDQUFFLHVDQUEyQixDQUFFO29CQUNoRCxJQUFJLEVBQWEsSUFBQSx1QkFBYyxFQUFDLE9BQU8sQ0FBQztpQkFDM0MsRUFBRSxTQUFTLENBQUMsQ0FBQzthQUNqQjs7Z0JBRUcsTUFBTSxJQUFBLCtCQUFvQixFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDNUQ7SUFDTCxDQUFDO0NBQ2MsQ0FBQztBQUVwQixNQUFNLHdCQUF3QixHQUFHO0lBQzdCLGVBQWU7SUFDZixjQUFjO0lBQ2QscUJBQXFCO0NBQ3hCLENBQUM7QUFFRixTQUF3Qix3QkFBd0IsQ0FBRSxLQUF5QixFQUFFLE9BQXFDLEVBQUUsYUFBb0M7SUFDcEosTUFBTSxxQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUU3RyxPQUFPLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUN4RSxDQUFDO0FBSkQsMkNBSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvdG9jb2wgZnJvbSAnZGV2dG9vbHMtcHJvdG9jb2wnO1xuaW1wb3J0IFJlcXVlc3RQYXVzZWRFdmVudCA9IFByb3RvY29sLkZldGNoLlJlcXVlc3RQYXVzZWRFdmVudDtcbmltcG9ydCB7IERFRkFVTFRfRkFWSUNPTl9QQVRIIH0gZnJvbSAnLi4vLi4vYXNzZXRzL2luamVjdGFibGVzJztcbmltcG9ydCB7XG4gICAgUmVxdWVzdEhhbmRsZXIsXG4gICAgU2Vzc2lvbklkLFxuICAgIFNwZWNpYWxTZXJ2aWNlUm91dGVzLFxufSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBQcm90b2NvbEFwaSB9IGZyb20gJ2Nocm9tZS1yZW1vdGUtaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gICAgcmVxdWVzdFBpcGVsaW5lSW50ZXJuYWxSZXF1ZXN0TG9nZ2VyLFxuICAgIHJlcXVlc3RQaXBlbGluZUxvZ2dlcixcbiAgICByZXF1ZXN0UGlwZWxpbmVTZXJ2aWNlUmVxdWVzdExvZ2dlcixcbn0gZnJvbSAnLi4vLi4vdXRpbHMvZGVidWctbG9nZ2Vycyc7XG5pbXBvcnQgeyBOYXRpdmVBdXRvbWF0aW9uSW5pdE9wdGlvbnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgaXNSZXF1ZXN0IH0gZnJvbSAnLi4vdXRpbHMvY2RwJztcbmltcG9ydCB7IEZBVklDT05fQ09OVEVOVF9UWVBFX0hFQURFUiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFN0YXR1c0NvZGVzIH0gZnJvbSAnaHR0cC1zdGF0dXMtY29kZXMnO1xuaW1wb3J0IGxvYWRBc3NldHMgZnJvbSAnLi4vLi4vbG9hZC1hc3NldHMnO1xuaW1wb3J0IHsgdG9CYXNlNjRTdHJpbmcgfSBmcm9tICcuLi91dGlscy9zdHJpbmcnO1xuaW1wb3J0IHtcbiAgICBzYWZlQ29udGludWVSZXF1ZXN0LFxuICAgIHNhZmVDb250aW51ZVJlc3BvbnNlLFxuICAgIHNhZmVGdWxmaWxsUmVxdWVzdCxcbn0gZnJvbSAnLi9zYWZlLWFwaSc7XG5cbmFzeW5jIGZ1bmN0aW9uIGhhbmRsZVJlcXVlc3RQYXVzZUV2ZW50IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjbGllbnQ6IFByb3RvY29sQXBpLCBzZXNzaW9uSWQ6IFNlc3Npb25JZCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChpc1JlcXVlc3QoZXZlbnQpKVxuICAgICAgICBhd2FpdCBzYWZlQ29udGludWVSZXF1ZXN0KGNsaWVudCwgZXZlbnQsIHNlc3Npb25JZCk7XG4gICAgZWxzZVxuICAgICAgICBhd2FpdCBzYWZlQ29udGludWVSZXNwb25zZShjbGllbnQsIGV2ZW50LCBzZXNzaW9uSWQpO1xufVxuXG5cbmNvbnN0IGludGVybmFsUmVxdWVzdCA9IHtcbiAgICBjb25kaXRpb246IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogYm9vbGVhbiA9PiAhZXZlbnQubmV0d29ya0lkICYmIGV2ZW50LnJlc291cmNlVHlwZSAhPT0gJ0RvY3VtZW50JyAmJiAhZXZlbnQucmVxdWVzdC51cmwsXG4gICAgaGFuZGxlcjogICBhc3luYyAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgY2xpZW50OiBQcm90b2NvbEFwaSwgb3B0aW9uczogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zLCBzZXNzaW9uSWQ6IFNlc3Npb25JZCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICByZXF1ZXN0UGlwZWxpbmVJbnRlcm5hbFJlcXVlc3RMb2dnZXIoJyVyJywgZXZlbnQpO1xuXG4gICAgICAgIGF3YWl0IGhhbmRsZVJlcXVlc3RQYXVzZUV2ZW50KGV2ZW50LCBjbGllbnQsIHNlc3Npb25JZCk7XG4gICAgfSxcbn0gYXMgUmVxdWVzdEhhbmRsZXI7XG5cbmNvbnN0IHNlcnZpY2VSZXF1ZXN0ID0ge1xuICAgIGNvbmRpdGlvbjogKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2VydmljZVJvdXRlczogU3BlY2lhbFNlcnZpY2VSb3V0ZXMpOiBib29sZWFuID0+IHtcbiAgICAgICAgY29uc3QgdXJsID0gZXZlbnQucmVxdWVzdC51cmw7XG5cbiAgICAgICAgLy8gTk9URTogdGhlIHNlcnZpY2UgJ0Vycm9yIHBhZ2UnIHNob3VsZCBiZSBwcm94aWVkLlxuICAgICAgICBpZiAodXJsID09PSBzZXJ2aWNlUm91dGVzLmVycm9yUGFnZTFcbiAgICAgICAgICAgIHx8IHVybCA9PT0gc2VydmljZVJvdXRlcy5lcnJvclBhZ2UyKVxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIHJldHVybiBvcHRpb25zLnNlcnZpY2VEb21haW5zLnNvbWUoZG9tYWluID0+IHVybC5zdGFydHNXaXRoKGRvbWFpbikpO1xuICAgIH0sXG4gICAgaGFuZGxlcjogYXN5bmMgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIGNsaWVudDogUHJvdG9jb2xBcGksIG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2Vzc2lvbklkOiBTZXNzaW9uSWQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgcmVxdWVzdFBpcGVsaW5lU2VydmljZVJlcXVlc3RMb2dnZXIoJyVyJywgZXZlbnQpO1xuXG4gICAgICAgIGF3YWl0IGhhbmRsZVJlcXVlc3RQYXVzZUV2ZW50KGV2ZW50LCBjbGllbnQsIHNlc3Npb25JZCk7XG4gICAgfSxcbn0gYXMgUmVxdWVzdEhhbmRsZXI7XG5cbmNvbnN0IGRlZmF1bHRGYXZpY29uUmVxdWVzdCA9IHtcbiAgICBjb25kaXRpb246IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogYm9vbGVhbiA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwoZXZlbnQucmVxdWVzdC51cmwpO1xuXG4gICAgICAgIHJldHVybiBwYXJzZWRVcmwucGF0aG5hbWUgPT09IERFRkFVTFRfRkFWSUNPTl9QQVRIO1xuICAgIH0sXG4gICAgaGFuZGxlcjogYXN5bmMgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIGNsaWVudDogUHJvdG9jb2xBcGksIG9wdGlvbnM6IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2Vzc2lvbklkOiBTZXNzaW9uSWQpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgcmVxdWVzdFBpcGVsaW5lTG9nZ2VyKCclcicsIGV2ZW50KTtcblxuICAgICAgICBpZiAoaXNSZXF1ZXN0KGV2ZW50KSlcbiAgICAgICAgICAgIGF3YWl0IHNhZmVDb250aW51ZVJlcXVlc3QoY2xpZW50LCBldmVudCwgc2Vzc2lvbklkKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoZXZlbnQucmVzcG9uc2VTdGF0dXNDb2RlID09PSBTdGF0dXNDb2Rlcy5OT1RfRk9VTkQpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1sb25lbHktaWZcbiAgICAgICAgICAgICAgICBjb25zdCB7IGZhdkljb24gfSA9IGxvYWRBc3NldHMob3B0aW9ucy5kZXZlbG9wbWVudE1vZGUpO1xuXG4gICAgICAgICAgICAgICAgYXdhaXQgc2FmZUZ1bGZpbGxSZXF1ZXN0KGNsaWVudCwge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0SWQ6ICAgICAgIGV2ZW50LnJlcXVlc3RJZCxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VDb2RlOiAgICBTdGF0dXNDb2Rlcy5PSyxcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXJzOiBbIEZBVklDT05fQ09OVEVOVF9UWVBFX0hFQURFUiBdLFxuICAgICAgICAgICAgICAgICAgICBib2R5OiAgICAgICAgICAgIHRvQmFzZTY0U3RyaW5nKGZhdkljb24pLFxuICAgICAgICAgICAgICAgIH0sIHNlc3Npb25JZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgYXdhaXQgc2FmZUNvbnRpbnVlUmVzcG9uc2UoY2xpZW50LCBldmVudCwgc2Vzc2lvbklkKTtcbiAgICAgICAgfVxuICAgIH0sXG59IGFzIFJlcXVlc3RIYW5kbGVyO1xuXG5jb25zdCBTUEVDSUFMX1JFUVVFU1RfSEFORExFUlMgPSBbXG4gICAgaW50ZXJuYWxSZXF1ZXN0LFxuICAgIHNlcnZpY2VSZXF1ZXN0LFxuICAgIGRlZmF1bHRGYXZpY29uUmVxdWVzdCxcbl07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGdldFNwZWNpYWxSZXF1ZXN0SGFuZGxlciAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgb3B0aW9ucz86IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2VydmljZVJvdXRlcz86IFNwZWNpYWxTZXJ2aWNlUm91dGVzKTogYW55IHtcbiAgICBjb25zdCBzcGVjaWFsUmVxdWVzdEhhbmRsZXIgPSBTUEVDSUFMX1JFUVVFU1RfSEFORExFUlMuZmluZChoID0+IGguY29uZGl0aW9uKGV2ZW50LCBvcHRpb25zLCBzZXJ2aWNlUm91dGVzKSk7XG5cbiAgICByZXR1cm4gc3BlY2lhbFJlcXVlc3RIYW5kbGVyID8gc3BlY2lhbFJlcXVlc3RIYW5kbGVyLmhhbmRsZXIgOiBudWxsO1xufVxuXG4iXX0=
@@ -86,14 +86,14 @@ class ResourceInjector {
86
86
  headers = headers.filter(header => !RESPONSE_REMOVED_HEADERS.includes(header.name.toLowerCase()));
87
87
  return (0, string_1.stringifyHeaderValues)(headers);
88
88
  }
89
- async _fulfillRequest(client, fulfillRequestInfo, body) {
89
+ async _fulfillRequest(client, fulfillRequestInfo, body, sessionId) {
90
90
  await (0, safe_api_1.safeFulfillRequest)(client, {
91
91
  requestId: fulfillRequestInfo.requestId,
92
92
  responseCode: fulfillRequestInfo.responseCode || http_status_codes_1.StatusCodes.OK,
93
93
  responsePhrase: fulfillRequestInfo.responsePhrase,
94
94
  responseHeaders: this._processResponseHeaders(fulfillRequestInfo.responseHeaders),
95
95
  body: (0, string_1.toBase64String)(body),
96
- });
96
+ }, sessionId);
97
97
  }
98
98
  async redirectToErrorPage(client, err, url) {
99
99
  const currentTestRun = this._testRunBridge.getCurrentTestRun();
@@ -142,7 +142,7 @@ class ResourceInjector {
142
142
  html,
143
143
  });
144
144
  }
145
- async processHTMLPageContent(fulfillRequestInfo, injectableResourcesOptions, client) {
145
+ async processHTMLPageContent(fulfillRequestInfo, injectableResourcesOptions, client, sessionId) {
146
146
  const injectableResources = await this._prepareInjectableResources(injectableResourcesOptions);
147
147
  // NOTE: an unhandled exception interrupts the test execution,
148
148
  // and we are force to redirect manually to the idle page.
@@ -150,11 +150,11 @@ class ResourceInjector {
150
150
  await (0, cdp_1.redirect)(client, fulfillRequestInfo.requestId, this._options.specialServiceRoutes.idlePage);
151
151
  else {
152
152
  const updatedResponseStr = (0, testcafe_hammerhead_1.injectResources)(fulfillRequestInfo.body, injectableResources, this._getPageInjectableResourcesOptions(injectableResourcesOptions));
153
- await this._fulfillRequest(client, fulfillRequestInfo, updatedResponseStr);
153
+ await this._fulfillRequest(client, fulfillRequestInfo, updatedResponseStr, sessionId);
154
154
  }
155
155
  }
156
- async processNonProxiedContent(fulfillRequestInfo, client) {
157
- await this._fulfillRequest(client, fulfillRequestInfo, fulfillRequestInfo.body);
156
+ async processNonProxiedContent(fulfillRequestInfo, client, sessionId) {
157
+ await this._fulfillRequest(client, fulfillRequestInfo, fulfillRequestInfo.body, sessionId);
158
158
  }
159
159
  _getPageInjectableResourcesOptions(injectableResourcesOptions) {
160
160
  const { url, restoringStorages } = injectableResourcesOptions;
@@ -172,4 +172,4 @@ class ResourceInjector {
172
172
  }
173
173
  exports.default = ResourceInjector;
174
174
  module.exports = exports.default;
175
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vcmVzb3VyY2UtaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSw2REFRNkI7QUFDN0IsdURBQW9FO0FBQ3BFLDRFQUFvRDtBQUNwRCx5REFBZ0Q7QUFDaEQsaURBQW1EO0FBQ25ELHFDQUFtRDtBQVNuRCwwREFBZ0U7QUFDaEUsMkNBSXdCO0FBQ3hCLDBEQUFpRTtBQUVqRSxxQ0FBZ0Q7QUFFaEQsTUFBTSx3QkFBd0IsR0FBRztJQUM3Qiw4QkFBOEI7SUFDOUIsNEJBQTRCO0lBQzVCLDhCQUE4QjtDQUNqQyxDQUFDO0FBT0YsTUFBTSxpQ0FBaUMsR0FBRztJQUN0QyxvQkFBb0IsRUFBRTtRQUNsQixVQUFVLEVBQVcsRUFBRTtRQUN2QixVQUFVLEVBQVcsRUFBRTtRQUN2QixtQkFBbUIsRUFBRSxFQUFFO1FBQ3ZCLFFBQVEsRUFBYSxFQUFFO0tBQzFCO0lBRUQsZUFBZSxFQUFFLEtBQUs7Q0FDekIsQ0FBQztBQUVGLE1BQXFCLGdCQUFnQjtJQUlqQyxZQUFvQixhQUE0QjtRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFTLGlDQUFpQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFTywrQkFBK0IsQ0FBRSxjQUEwQztRQUMvRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUksRUFBRSxDQUFDLENBQUM7UUFFeEUsT0FBTyxrR0FBa0csS0FBSyxNQUFNLENBQUM7SUFDekgsQ0FBQztJQUVPLHlCQUF5QixDQUFFLGlCQUFz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ZXJmYWNlJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IEZyYW1lTmF2aWdhdGVkRXZlbnQgPSBQcm90b2NvbC5QYWdlLkZyYW1lTmF2aWdhdGVkRXZlbnQ7XG5pbXBvcnQgRnVsZmlsbFJlcXVlc3RSZXF1ZXN0ID0gUHJvdG9jb2wuRmV0Y2guRnVsZmlsbFJlcXVlc3RSZXF1ZXN0O1xuaW1wb3J0IEhlYWRlckVudHJ5ID0gUHJvdG9jb2wuRmV0Y2guSGVhZGVyRW50cnk7XG5pbXBvcnQge1xuICAgIGluamVjdFJlc291cmNlcyxcbiAgICBQYWdlSW5qZWN0YWJsZVJlc291cmNlcyxcbiAgICBJTkpFQ1RBQkxFX1NDUklQVFMgYXMgSEFNTUVSSEVBRF9JTkpFQ1RBQkxFX1NDUklQVFMsXG4gICAgZ2V0QXNzZXRQYXRoLFxuICAgIFBhZ2VSZXN0b3JlU3RvcmFnZXNPcHRpb25zLFxuICAgIFN0b3JhZ2VzU25hcHNob3QsXG4gICAgUHJveHksXG59IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHsgU0NSSVBUUywgVEVTVENBRkVfVUlfU1RZTEVTIH0gZnJvbSAnLi4vYXNzZXRzL2luamVjdGFibGVzJztcbmltcG9ydCBFTVBUWV9QQUdFX01BUktVUCBmcm9tICcuL2VtcHR5LXBhZ2UtbWFya3VwJztcbmltcG9ydCB7IFN0YXR1c0NvZGVzIH0gZnJvbSAnaHR0cC1zdGF0dXMtY29kZXMnO1xuaW1wb3J0IHsgUGFnZUxvYWRFcnJvciB9IGZyb20gJy4uL2Vycm9ycy90ZXN0LXJ1bic7XG5pbXBvcnQgeyByZWRpcmVjdCwgbmF2aWdhdGVUbyB9IGZyb20gJy4vdXRpbHMvY2RwJztcblxuaW1wb3J0IHtcbiAgICBEb2N1bWVudFJlc291cmNlSW5mbyxcbiAgICBJbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9ucyxcbiAgICBTZXNzaW9uU3RvcmFnZUluZm8sXG4gICAgU3BlY2lhbFNlcnZpY2VSb3V0ZXMsXG59IGZyb20gJy4vdHlwZXMnO1xuXG5pbXBvcnQgeyByZXNvdXJjZUluamVjdG9yTG9nZ2VyIH0gZnJvbSAnLi4vdXRpbHMvZGVidWctbG9nZ2Vycyc7XG5pbXBvcnQge1xuICAgIGdldFJlc3BvbnNlQXNTdHJpbmcsXG4gICAgc3RyaW5naWZ5SGVhZGVyVmFsdWVzLFxuICAgIHRvQmFzZTY0U3RyaW5nLFxufSBmcm9tICcuL3V0aWxzL3N0cmluZyc7XG5pbXBvcnQgeyBzYWZlRnVsZmlsbFJlcXVlc3QgfSBmcm9tICcuL3JlcXVlc3QtcGlwZWxpbmUvc2FmZS1hcGknO1xuaW1wb3J0IFRlc3RSdW5CcmlkZ2UgZnJvbSAnLi9yZXF1ZXN0LXBpcGVsaW5lL3Rlc3QtcnVuLWJyaWRnZSc7XG5pbXBvcnQgeyBmYWlsZWRUb0ZpbmRETlNFcnJvciB9IGZyb20gJy4vZXJyb3JzJztcblxuY29uc3QgUkVTUE9OU0VfUkVNT1ZFRF9IRUFERVJTID0gW1xuICAgICdjcm9zcy1vcmlnaW4tZW1iZWRkZXItcG9saWN5JyxcbiAgICAnY3Jvc3Mtb3JpZ2luLW9wZW5lci1wb2xpY3knLFxuICAgICdjcm9zcy1vcmlnaW4tcmVzb3VyY2UtcG9saWN5Jyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbmplY3Rvck9wdGlvbnMge1xuICAgIHNwZWNpYWxTZXJ2aWNlUm91dGVzOiBTcGVjaWFsU2VydmljZVJvdXRlcztcbiAgICBkZXZlbG9wbWVudE1vZGU6IGJvb2xlYW47XG59XG5cbmNvbnN0IERFRkFVTFRfUkVTT1VSQ0VfSU5KRUNUT1JfT1BUSU9OUyA9IHtcbiAgICBzcGVjaWFsU2VydmljZVJvdXRlczoge1xuICAgICAgICBlcnJvclBhZ2UxOiAgICAgICAgICAnJyxcbiAgICAgICAgZXJyb3JQYWdlMjogICAgICAgICAgJycsXG4gICAgICAgIG9wZW5GaWxlUHJvdG9jb2xVcmw6ICcnLFxuICAgICAgICBpZGxlUGFnZTogICAgICAgICAgICAnJyxcbiAgICB9LFxuXG4gICAgZGV2ZWxvcG1lbnRNb2RlOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlc291cmNlSW5qZWN0b3Ige1xuICAgIHByaXZhdGUgX29wdGlvbnM6IFJlc291cmNlSW5qZWN0b3JPcHRpb25zO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Rlc3RSdW5CcmlkZ2U6IFRlc3RSdW5CcmlkZ2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKHRlc3RSdW5CcmlkZ2U6IFRlc3RSdW5CcmlkZ2UpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyAgICAgICA9IERFRkFVTFRfUkVTT1VSQ0VfSU5KRUNUT1JfT1BUSU9OUztcbiAgICAgICAgdGhpcy5fdGVzdFJ1bkJyaWRnZSA9IHRlc3RSdW5CcmlkZ2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0UmVzdG9yZUNvbnRleHRTdG9yYWdlU2NyaXB0IChjb250ZXh0U3RvcmFnZT86IFNlc3Npb25TdG9yYWdlSW5mbyB8IG51bGwpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBjdXJyZW50VGVzdFJ1biA9IHRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0Q3VycmVudFRlc3RSdW4oKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBKU09OLnN0cmluZ2lmeShjb250ZXh0U3RvcmFnZT8uW2N1cnJlbnRUZXN0UnVuLmlkXSB8fCAnJyk7XG5cbiAgICAgICAgcmV0dXJuIGBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAnJW5hdGl2ZUF1dG9tYXRpb25Db250ZXh0U3RvcmFnZSUnLCB7IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6ICR7dmFsdWV9IH0pO2A7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0UmVzdG9yZVN0b3JhZ2VzU2NyaXB0IChyZXN0b3JpbmdTdG9yYWdlczogU3RvcmFnZXNTbmFwc2hvdCB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgICAgICBpZiAoIXJlc3RvcmluZ1N0b3JhZ2VzKVxuICAgICAgICAgICAgcmV0dXJuICcoZnVuY3Rpb24oKSB7fSkoKSc7XG5cbiAgICAgICAgcmV0dXJuIGAoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLmNsZWFyKCk7XG4gICAgICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2UuY2xlYXIoKTtcblxuICAgICAgICAgICAgY29uc3Qgc25hcHNob3QgPSAke0pTT04uc3RyaW5naWZ5KHJlc3RvcmluZ1N0b3JhZ2VzKX07XG4gICAgICAgICAgICBjb25zdCBscyAgICAgICA9IEpTT04ucGFyc2Uoc25hcHNob3QubG9jYWxTdG9yYWdlKTtcbiAgICAgICAgICAgIGNvbnN0IHNzICAgICAgID0gSlNPTi5wYXJzZShzbmFwc2hvdC5zZXNzaW9uU3RvcmFnZSk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbHNbMF0ubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKGxzWzBdW2ldLCBsc1sxXVtpXSk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3NbMF0ubGVuZ3RoOyBpKyspXG4gICAgICAgICAgICAgICAgd2luZG93LnNlc3Npb25TdG9yYWdlLnNldEl0ZW0oc3NbMF1baV0sIHNzWzFdW2ldKTtcbiAgICAgICAgfSkoKTtcbiAgICAgICAgYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9yZXNvbHZlUmVsYXRpdmVVcmxzIChwcm94eTogUHJveHksIHJlbGF0aXZlVXJsczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiByZWxhdGl2ZVVybHMubWFwKHVybCA9PiBwcm94eS5yZXNvbHZlUmVsYXRpdmVTZXJ2aWNlVXJsKHVybCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3ByZXBhcmVJbmplY3RhYmxlUmVzb3VyY2VzICh7IGlzSWZyYW1lLCByZXN0b3JpbmdTdG9yYWdlcywgY29udGV4dFN0b3JhZ2UsIHVzZXJTY3JpcHRzIH06IEluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKTogUHJvbWlzZTxQYWdlSW5qZWN0YWJsZVJlc291cmNlcyB8IG51bGw+IHtcbiAgICAgICAgaWYgKCF0aGlzLl90ZXN0UnVuQnJpZGdlLmdldEN1cnJlbnRUZXN0UnVuKCkpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCB0YXNrU2NyaXB0ID0gYXdhaXQgdGhpcy5fdGVzdFJ1bkJyaWRnZS5nZXRUYXNrU2NyaXB0KHsgaXNJZnJhbWUsIHJlc3RvcmluZ1N0b3JhZ2VzLCBjb250ZXh0U3RvcmFnZSwgdXNlclNjcmlwdHMgfSk7XG4gICAgICAgIGNvbnN0IHByb3h5ICAgICAgPSB0aGlzLl90ZXN0UnVuQnJpZGdlLmdldEJyb3dzZXJDb25uZWN0aW9uKCkuYnJvd3NlckNvbm5lY3Rpb25HYXRld2F5LnByb3h5O1xuXG4gICAgICAgIGNvbnN0IGluamVjdGFibGVSZXNvdXJjZXMgPSB7XG4gICAgICAgICAgICBzdHlsZXNoZWV0czogW1xuICAgICAgICAgICAgICAgIFRFU1RDQUZFX1VJX1NUWUxFUyxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBzY3JpcHRzOiBbXG4gICAgICAgICAgICAgICAgLi4uSEFNTUVSSEVBRF9JTkpFQ1RBQkxFX1NDUklQVFMubWFwKGhzID0+IGdldEFzc2V0UGF0aChocywgdGhpcy5fb3B0aW9ucy5kZXZlbG9wbWVudE1vZGUpKSxcbiAgICAgICAgICAgICAgICAuLi5TQ1JJUFRTLm1hcChzID0+IGdldEFzc2V0UGF0aChzLCB0aGlzLl9vcHRpb25zLmRldmVsb3BtZW50TW9kZSkpLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIGVtYmVkZGVkU2NyaXB0czogWyB0aGlzLl9nZXRSZXN0b3JlU3RvcmFnZXNTY3JpcHQocmVzdG9yaW5nU3RvcmFnZXMpLCB0aGlzLl9nZXRSZXN0b3JlQ29udGV4dFN0b3JhZ2VTY3JpcHQoY29udGV4dFN0b3JhZ2UpLCB0YXNrU2NyaXB0XSxcbiAgICAgICAgICAgIHVzZXJTY3JpcHRzOiAgICAgdXNlclNjcmlwdHMgfHwgW10sXG4gICAgICAgIH07XG5cbiAgICAgICAgaW5qZWN0YWJsZVJlc291cmNlcy5zY3JpcHRzICAgICA9IHRoaXMuX3Jlc29sdmVSZWxhdGl2ZVVybHMocHJveHksIGluamVjdGFibGVSZXNvdXJjZXMuc2NyaXB0cyk7XG4gICAgICAgIGluamVjdGFibGVSZXNvdXJjZXMudXNlclNjcmlwdHMgPSB0aGlzLl9yZXNvbHZlUmVsYXRpdmVVcmxzKHByb3h5LCBpbmplY3RhYmxlUmVzb3VyY2VzLnVzZXJTY3JpcHRzKTtcbiAgICAgICAgaW5qZWN0YWJsZVJlc291cmNlcy5zdHlsZXNoZWV0cyA9IHRoaXMuX3Jlc29sdmVSZWxhdGl2ZVVybHMocHJveHksIGluamVjdGFibGVSZXNvdXJjZXMuc3R5bGVzaGVldHMpO1xuXG4gICAgICAgIHJldHVybiBpbmplY3RhYmxlUmVzb3VyY2VzO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Byb2Nlc3NSZXNwb25zZUhlYWRlcnMgKGhlYWRlcnM6IEhlYWRlckVudHJ5W10gfCB1bmRlZmluZWQpOiBIZWFkZXJFbnRyeVtdIHtcbiAgICAgICAgaWYgKCFoZWFkZXJzKVxuICAgICAgICAgICAgcmV0dXJuIFtdO1xuXG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLmZpbHRlcihoZWFkZXIgPT4gIVJFU1BPTlNFX1JFTU9WRURfSEVBREVSUy5pbmNsdWRlcyhoZWFkZXIubmFtZS50b0xvd2VyQ2FzZSgpKSk7XG5cbiAgICAgICAgcmV0dXJuIHN0cmluZ2lmeUhlYWRlclZhbHVlcyhoZWFkZXJzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9mdWxmaWxsUmVxdWVzdCAoY2xpZW50OiBQcm90b2NvbEFwaSwgZnVsZmlsbFJlcXVlc3RJbmZvOiBGdWxmaWxsUmVxdWVzdFJlcXVlc3QsIGJvZHk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBzYWZlRnVsZmlsbFJlcXVlc3QoY2xpZW50LCB7XG4gICAgICAgICAgICByZXF1ZXN0SWQ6ICAgICAgIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXF1ZXN0SWQsXG4gICAgICAgICAgICByZXNwb25zZUNvZGU6ICAgIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXNwb25zZUNvZGUgfHwgU3RhdHVzQ29kZXMuT0ssXG4gICAgICAgICAgICByZXNwb25zZVBocmFzZTogIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXNwb25zZVBocmFzZSxcbiAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyczogdGhpcy5fcHJvY2Vzc1Jlc3BvbnNlSGVhZGVycyhmdWxmaWxsUmVxdWVzdEluZm8ucmVzcG9uc2VIZWFkZXJzKSxcbiAgICAgICAgICAgIGJvZHk6ICAgICAgICAgICAgdG9CYXNlNjRTdHJpbmcoYm9keSksXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWRpcmVjdFRvRXJyb3JQYWdlIChjbGllbnQ6IFByb3RvY29sQXBpLCBlcnI6IEVycm9yLCB1cmw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjdXJyZW50VGVzdFJ1biA9IHRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0Q3VycmVudFRlc3RSdW4oKTtcblxuICAgICAgICBpZiAoIWN1cnJlbnRUZXN0UnVuKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIGN1cnJlbnRUZXN0UnVuLnBlbmRpbmdQYWdlRXJyb3IgPSBuZXcgUGFnZUxvYWRFcnJvcihlcnIsIHVybCk7XG5cbiAgICAgICAgYXdhaXQgbmF2aWdhdGVUbyhjbGllbnQsIHRoaXMuX29wdGlvbnMuc3BlY2lhbFNlcnZpY2VSb3V0ZXMuZXJyb3JQYWdlMSk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGdldERvY3VtZW50UmVzb3VyY2VJbmZvIChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjbGllbnQ6IFByb3RvY29sQXBpKTogUHJvbWlzZTxEb2N1bWVudFJlc291cmNlSW5mbz4ge1xuICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICByZXF1ZXN0SWQsXG4gICAgICAgICAgICByZXF1ZXN0LFxuICAgICAgICAgICAgcmVzcG9uc2VFcnJvclJlYXNvbixcbiAgICAgICAgICAgIHJlc291cmNlVHlwZSxcbiAgICAgICAgfSA9IGV2ZW50O1xuXG4gICAgICAgIGlmIChyZXNvdXJjZVR5cGUgIT09ICdEb2N1bWVudCcpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgYm9keTogIG51bGwsXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZUVycm9yUmVhc29uID09PSAnTmFtZU5vdFJlc29sdmVkJykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVyciA9IGZhaWxlZFRvRmluZEROU0Vycm9yKHJlcXVlc3QudXJsKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiBlcnIsXG4gICAgICAgICAgICAgICAgICAgIGJvZHk6ICBudWxsLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlT2JqID0gYXdhaXQgY2xpZW50LkZldGNoLmdldFJlc3BvbnNlQm9keSh7IHJlcXVlc3RJZCB9KTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlU3RyID0gZ2V0UmVzcG9uc2VBc1N0cmluZyhyZXNwb25zZU9iaik7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICAgICAgICAgICAgYm9keTogIEJ1ZmZlci5mcm9tKHJlc3BvbnNlU3RyKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgcmVzb3VyY2VJbmplY3RvckxvZ2dlcignRmFpbGVkIHRvIHByb2Nlc3MgcmVxdWVzdDogJXMnLCByZXF1ZXN0LnVybCk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycixcbiAgICAgICAgICAgICAgICBib2R5OiAgbnVsbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJvY2Vzc0Fib3V0QmxhbmtQYWdlIChldmVudDogRnJhbWVOYXZpZ2F0ZWRFdmVudCwgdXNlclNjcmlwdHM6IHN0cmluZ1tdLCBjb250ZXh0U3RvcmFnZTogU2Vzc2lvblN0b3JhZ2VJbmZvIHwgbnVsbCwgY2xpZW50OiBQcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXNvdXJjZUluamVjdG9yTG9nZ2VyKCdIYW5kbGUgcGFnZSBhcyBhYm91dDpibGFuay4gT3JpZ2luIHVybDogJXMnLCBldmVudC5mcmFtZS51cmwpO1xuXG4gICAgICAgIGNvbnN0IGluamVjdGFibGVSZXNvdXJjZXMgPSBhd2FpdCB0aGlzLl9wcmVwYXJlSW5qZWN0YWJsZVJlc291cmNlcyh7IGlzSWZyYW1lOiBmYWxzZSwgdXNlclNjcmlwdHMsIGNvbnRleHRTdG9yYWdlIH0pIGFzIFBhZ2VJbmplY3RhYmxlUmVzb3VyY2VzO1xuICAgICAgICBjb25zdCBodG1sICAgICAgICAgICAgICAgID0gaW5qZWN0UmVzb3VyY2VzKEVNUFRZX1BBR0VfTUFSS1VQLCBpbmplY3RhYmxlUmVzb3VyY2VzKTtcblxuICAgICAgICBhd2FpdCBjbGllbnQuUGFnZS5zZXREb2N1bWVudENvbnRlbnQoe1xuICAgICAgICAgICAgZnJhbWVJZDogZXZlbnQuZnJhbWUuaWQsXG4gICAgICAgICAgICBodG1sLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJvY2Vzc0hUTUxQYWdlQ29udGVudCAoZnVsZmlsbFJlcXVlc3RJbmZvOiBGdWxmaWxsUmVxdWVzdFJlcXVlc3QsIGluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zOiBJbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9ucywgY2xpZW50OiBQcm90b2NvbEFwaSk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbmplY3RhYmxlUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5fcHJlcGFyZUluamVjdGFibGVSZXNvdXJjZXMoaW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMpO1xuXG4gICAgICAgIC8vIE5PVEU6IGFuIHVuaGFuZGxlZCBleGNlcHRpb24gaW50ZXJydXB0cyB0aGUgdGVzdCBleGVjdXRpb24sXG4gICAgICAgIC8vIGFuZCB3ZSBhcmUgZm9yY2UgdG8gcmVkaXJlY3QgbWFudWFsbHkgdG8gdGhlIGlkbGUgcGFnZS5cbiAgICAgICAgaWYgKCFpbmplY3RhYmxlUmVzb3VyY2VzKVxuICAgICAgICAgICAgYXdhaXQgcmVkaXJlY3QoY2xpZW50LCBmdWxmaWxsUmVxdWVzdEluZm8ucmVxdWVzdElkLCB0aGlzLl9vcHRpb25zLnNwZWNpYWxTZXJ2aWNlUm91dGVzLmlkbGVQYWdlKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkUmVzcG9uc2VTdHIgPSBpbmplY3RSZXNvdXJjZXMoXG4gICAgICAgICAgICAgICAgZnVsZmlsbFJlcXVlc3RJbmZvLmJvZHkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIGluamVjdGFibGVSZXNvdXJjZXMsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2V0UGFnZUluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKGluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2Z1bGZpbGxSZXF1ZXN0KGNsaWVudCwgZnVsZmlsbFJlcXVlc3RJbmZvLCB1cGRhdGVkUmVzcG9uc2VTdHIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHByb2Nlc3NOb25Qcm94aWVkQ29udGVudCAoZnVsZmlsbFJlcXVlc3RJbmZvOiBGdWxmaWxsUmVxdWVzdFJlcXVlc3QsIGNsaWVudDogUHJvdG9jb2xBcGkpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fZnVsZmlsbFJlcXVlc3QoY2xpZW50LCBmdWxmaWxsUmVxdWVzdEluZm8sIGZ1bGZpbGxSZXF1ZXN0SW5mby5ib2R5IGFzIHN0cmluZyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0UGFnZUluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zIChpbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9uczogSW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMpOiBQYWdlUmVzdG9yZVN0b3JhZ2VzT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IHsgdXJsLCByZXN0b3JpbmdTdG9yYWdlcyB9ID0gaW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnM7XG5cbiAgICAgICAgaWYgKHVybCAmJiByZXN0b3JpbmdTdG9yYWdlcykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBob3N0OiAgICAgIG5ldyBVUkwodXJsKS5ob3N0LFxuICAgICAgICAgICAgICAgIHNlc3Npb25JZDogdGhpcy5fdGVzdFJ1bkJyaWRnZS5nZXRTZXNzaW9uSWQoKSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdm9pZCAwO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXRPcHRpb25zIChvcHRpb25zOiBSZXNvdXJjZUluamVjdG9yT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICB9XG59XG4iXX0=
175
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtaW5qZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vcmVzb3VyY2UtaW5qZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFNQSw2REFRNkI7QUFDN0IsdURBQW9FO0FBQ3BFLDRFQUFvRDtBQUNwRCx5REFBZ0Q7QUFDaEQsaURBQW1EO0FBQ25ELHFDQUFtRDtBQVVuRCwwREFBZ0U7QUFDaEUsMkNBSXdCO0FBQ3hCLDBEQUFpRTtBQUVqRSxxQ0FBZ0Q7QUFFaEQsTUFBTSx3QkFBd0IsR0FBRztJQUM3Qiw4QkFBOEI7SUFDOUIsNEJBQTRCO0lBQzVCLDhCQUE4QjtDQUNqQyxDQUFDO0FBT0YsTUFBTSxpQ0FBaUMsR0FBRztJQUN0QyxvQkFBb0IsRUFBRTtRQUNsQixVQUFVLEVBQVcsRUFBRTtRQUN2QixVQUFVLEVBQVcsRUFBRTtRQUN2QixtQkFBbUIsRUFBRSxFQUFFO1FBQ3ZCLFFBQVEsRUFBYSxFQUFFO0tBQzFCO0lBRUQsZUFBZSxFQUFFLEtBQUs7Q0FDekIsQ0FBQztBQUVGLE1BQXFCLGdCQUFnQjtJQUlqQyxZQUFvQixhQUE0QjtRQUM1QyxJQUFJLENBQUMsUUFBUSxHQUFTLGlDQUFpQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO0lBQ3hDLENBQUM7SUFFTywrQkFBK0IsQ0FBRSxjQUEwQztRQUMvRSxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDL0QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFBLGNBQWMsYUFBZCxjQUFjLHVCQUFkLGNBQWMsQ0FBRyxjQUFjLENBQUMsRUFBRSxDQUFDLEtBQUksRUFBRSxDQUFDLENBQUM7UUFFeEUsT0FBTyxrR0FBa0csS0FBSyxNQUFNLENBQUM7SUFDekgsQ0FBQztJQUVPLHlCQUF5QixDQUFFLGlCQUFz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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgUHJvdG9jb2wgZnJvbSAnZGV2dG9vbHMtcHJvdG9jb2wnO1xuaW1wb3J0IFJlcXVlc3RQYXVzZWRFdmVudCA9IFByb3RvY29sLkZldGNoLlJlcXVlc3RQYXVzZWRFdmVudDtcbmltcG9ydCBGcmFtZU5hdmlnYXRlZEV2ZW50ID0gUHJvdG9jb2wuUGFnZS5GcmFtZU5hdmlnYXRlZEV2ZW50O1xuaW1wb3J0IEZ1bGZpbGxSZXF1ZXN0UmVxdWVzdCA9IFByb3RvY29sLkZldGNoLkZ1bGZpbGxSZXF1ZXN0UmVxdWVzdDtcbmltcG9ydCBIZWFkZXJFbnRyeSA9IFByb3RvY29sLkZldGNoLkhlYWRlckVudHJ5O1xuaW1wb3J0IHtcbiAgICBpbmplY3RSZXNvdXJjZXMsXG4gICAgUGFnZUluamVjdGFibGVSZXNvdXJjZXMsXG4gICAgSU5KRUNUQUJMRV9TQ1JJUFRTIGFzIEhBTU1FUkhFQURfSU5KRUNUQUJMRV9TQ1JJUFRTLFxuICAgIGdldEFzc2V0UGF0aCxcbiAgICBQYWdlUmVzdG9yZVN0b3JhZ2VzT3B0aW9ucyxcbiAgICBTdG9yYWdlc1NuYXBzaG90LFxuICAgIFByb3h5LFxufSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcbmltcG9ydCB7IFNDUklQVFMsIFRFU1RDQUZFX1VJX1NUWUxFUyB9IGZyb20gJy4uL2Fzc2V0cy9pbmplY3RhYmxlcyc7XG5pbXBvcnQgRU1QVFlfUEFHRV9NQVJLVVAgZnJvbSAnLi9lbXB0eS1wYWdlLW1hcmt1cCc7XG5pbXBvcnQgeyBTdGF0dXNDb2RlcyB9IGZyb20gJ2h0dHAtc3RhdHVzLWNvZGVzJztcbmltcG9ydCB7IFBhZ2VMb2FkRXJyb3IgfSBmcm9tICcuLi9lcnJvcnMvdGVzdC1ydW4nO1xuaW1wb3J0IHsgcmVkaXJlY3QsIG5hdmlnYXRlVG8gfSBmcm9tICcuL3V0aWxzL2NkcCc7XG5cbmltcG9ydCB7XG4gICAgRG9jdW1lbnRSZXNvdXJjZUluZm8sXG4gICAgSW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMsXG4gICAgU2Vzc2lvbklkLFxuICAgIFNlc3Npb25TdG9yYWdlSW5mbyxcbiAgICBTcGVjaWFsU2VydmljZVJvdXRlcyxcbn0gZnJvbSAnLi90eXBlcyc7XG5cbmltcG9ydCB7IHJlc291cmNlSW5qZWN0b3JMb2dnZXIgfSBmcm9tICcuLi91dGlscy9kZWJ1Zy1sb2dnZXJzJztcbmltcG9ydCB7XG4gICAgZ2V0UmVzcG9uc2VBc1N0cmluZyxcbiAgICBzdHJpbmdpZnlIZWFkZXJWYWx1ZXMsXG4gICAgdG9CYXNlNjRTdHJpbmcsXG59IGZyb20gJy4vdXRpbHMvc3RyaW5nJztcbmltcG9ydCB7IHNhZmVGdWxmaWxsUmVxdWVzdCB9IGZyb20gJy4vcmVxdWVzdC1waXBlbGluZS9zYWZlLWFwaSc7XG5pbXBvcnQgVGVzdFJ1bkJyaWRnZSBmcm9tICcuL3JlcXVlc3QtcGlwZWxpbmUvdGVzdC1ydW4tYnJpZGdlJztcbmltcG9ydCB7IGZhaWxlZFRvRmluZEROU0Vycm9yIH0gZnJvbSAnLi9lcnJvcnMnO1xuXG5jb25zdCBSRVNQT05TRV9SRU1PVkVEX0hFQURFUlMgPSBbXG4gICAgJ2Nyb3NzLW9yaWdpbi1lbWJlZGRlci1wb2xpY3knLFxuICAgICdjcm9zcy1vcmlnaW4tb3BlbmVyLXBvbGljeScsXG4gICAgJ2Nyb3NzLW9yaWdpbi1yZXNvdXJjZS1wb2xpY3knLFxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZUluamVjdG9yT3B0aW9ucyB7XG4gICAgc3BlY2lhbFNlcnZpY2VSb3V0ZXM6IFNwZWNpYWxTZXJ2aWNlUm91dGVzO1xuICAgIGRldmVsb3BtZW50TW9kZTogYm9vbGVhbjtcbn1cblxuY29uc3QgREVGQVVMVF9SRVNPVVJDRV9JTkpFQ1RPUl9PUFRJT05TID0ge1xuICAgIHNwZWNpYWxTZXJ2aWNlUm91dGVzOiB7XG4gICAgICAgIGVycm9yUGFnZTE6ICAgICAgICAgICcnLFxuICAgICAgICBlcnJvclBhZ2UyOiAgICAgICAgICAnJyxcbiAgICAgICAgb3BlbkZpbGVQcm90b2NvbFVybDogJycsXG4gICAgICAgIGlkbGVQYWdlOiAgICAgICAgICAgICcnLFxuICAgIH0sXG5cbiAgICBkZXZlbG9wbWVudE1vZGU6IGZhbHNlLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgUmVzb3VyY2VJbmplY3RvciB7XG4gICAgcHJpdmF0ZSBfb3B0aW9uczogUmVzb3VyY2VJbmplY3Rvck9wdGlvbnM7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGVzdFJ1bkJyaWRnZTogVGVzdFJ1bkJyaWRnZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvciAodGVzdFJ1bkJyaWRnZTogVGVzdFJ1bkJyaWRnZSkge1xuICAgICAgICB0aGlzLl9vcHRpb25zICAgICAgID0gREVGQVVMVF9SRVNPVVJDRV9JTkpFQ1RPUl9PUFRJT05TO1xuICAgICAgICB0aGlzLl90ZXN0UnVuQnJpZGdlID0gdGVzdFJ1bkJyaWRnZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRSZXN0b3JlQ29udGV4dFN0b3JhZ2VTY3JpcHQgKGNvbnRleHRTdG9yYWdlPzogU2Vzc2lvblN0b3JhZ2VJbmZvIHwgbnVsbCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUZXN0UnVuID0gdGhpcy5fdGVzdFJ1bkJyaWRnZS5nZXRDdXJyZW50VGVzdFJ1bigpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IEpTT04uc3RyaW5naWZ5KGNvbnRleHRTdG9yYWdlPy5bY3VycmVudFRlc3RSdW4uaWRdIHx8ICcnKTtcblxuICAgICAgICByZXR1cm4gYE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csICclbmF0aXZlQXV0b21hdGlvbkNvbnRleHRTdG9yYWdlJScsIHsgY29uZmlndXJhYmxlOiB0cnVlLCB2YWx1ZTogJHt2YWx1ZX0gfSk7YDtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRSZXN0b3JlU3RvcmFnZXNTY3JpcHQgKHJlc3RvcmluZ1N0b3JhZ2VzOiBTdG9yYWdlc1NuYXBzaG90IHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB7XG4gICAgICAgIGlmICghcmVzdG9yaW5nU3RvcmFnZXMpXG4gICAgICAgICAgICByZXR1cm4gJyhmdW5jdGlvbigpIHt9KSgpJztcblxuICAgICAgICByZXR1cm4gYChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHdpbmRvdy5sb2NhbFN0b3JhZ2UuY2xlYXIoKTtcbiAgICAgICAgICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xuXG4gICAgICAgICAgICBjb25zdCBzbmFwc2hvdCA9ICR7SlNPTi5zdHJpbmdpZnkocmVzdG9yaW5nU3RvcmFnZXMpfTtcbiAgICAgICAgICAgIGNvbnN0IGxzICAgICAgID0gSlNPTi5wYXJzZShzbmFwc2hvdC5sb2NhbFN0b3JhZ2UpO1xuICAgICAgICAgICAgY29uc3Qgc3MgICAgICAgPSBKU09OLnBhcnNlKHNuYXBzaG90LnNlc3Npb25TdG9yYWdlKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsc1swXS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgICB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0obHNbMF1baV0sIGxzWzFdW2ldKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzc1swXS5sZW5ndGg7IGkrKylcbiAgICAgICAgICAgICAgICB3aW5kb3cuc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShzc1swXVtpXSwgc3NbMV1baV0pO1xuICAgICAgICB9KSgpO1xuICAgICAgICBgO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3Jlc29sdmVSZWxhdGl2ZVVybHMgKHByb3h5OiBQcm94eSwgcmVsYXRpdmVVcmxzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHJlbGF0aXZlVXJscy5tYXAodXJsID0+IHByb3h5LnJlc29sdmVSZWxhdGl2ZVNlcnZpY2VVcmwodXJsKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfcHJlcGFyZUluamVjdGFibGVSZXNvdXJjZXMgKHsgaXNJZnJhbWUsIHJlc3RvcmluZ1N0b3JhZ2VzLCBjb250ZXh0U3RvcmFnZSwgdXNlclNjcmlwdHMgfTogSW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMpOiBQcm9taXNlPFBhZ2VJbmplY3RhYmxlUmVzb3VyY2VzIHwgbnVsbD4ge1xuICAgICAgICBpZiAoIXRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0Q3VycmVudFRlc3RSdW4oKSlcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHRhc2tTY3JpcHQgPSBhd2FpdCB0aGlzLl90ZXN0UnVuQnJpZGdlLmdldFRhc2tTY3JpcHQoeyBpc0lmcmFtZSwgcmVzdG9yaW5nU3RvcmFnZXMsIGNvbnRleHRTdG9yYWdlLCB1c2VyU2NyaXB0cyB9KTtcbiAgICAgICAgY29uc3QgcHJveHkgICAgICA9IHRoaXMuX3Rlc3RSdW5CcmlkZ2UuZ2V0QnJvd3NlckNvbm5lY3Rpb24oKS5icm93c2VyQ29ubmVjdGlvbkdhdGV3YXkucHJveHk7XG5cbiAgICAgICAgY29uc3QgaW5qZWN0YWJsZVJlc291cmNlcyA9IHtcbiAgICAgICAgICAgIHN0eWxlc2hlZXRzOiBbXG4gICAgICAgICAgICAgICAgVEVTVENBRkVfVUlfU1RZTEVTLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHNjcmlwdHM6IFtcbiAgICAgICAgICAgICAgICAuLi5IQU1NRVJIRUFEX0lOSkVDVEFCTEVfU0NSSVBUUy5tYXAoaHMgPT4gZ2V0QXNzZXRQYXRoKGhzLCB0aGlzLl9vcHRpb25zLmRldmVsb3BtZW50TW9kZSkpLFxuICAgICAgICAgICAgICAgIC4uLlNDUklQVFMubWFwKHMgPT4gZ2V0QXNzZXRQYXRoKHMsIHRoaXMuX29wdGlvbnMuZGV2ZWxvcG1lbnRNb2RlKSksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgZW1iZWRkZWRTY3JpcHRzOiBbIHRoaXMuX2dldFJlc3RvcmVTdG9yYWdlc1NjcmlwdChyZXN0b3JpbmdTdG9yYWdlcyksIHRoaXMuX2dldFJlc3RvcmVDb250ZXh0U3RvcmFnZVNjcmlwdChjb250ZXh0U3RvcmFnZSksIHRhc2tTY3JpcHRdLFxuICAgICAgICAgICAgdXNlclNjcmlwdHM6ICAgICB1c2VyU2NyaXB0cyB8fCBbXSxcbiAgICAgICAgfTtcblxuICAgICAgICBpbmplY3RhYmxlUmVzb3VyY2VzLnNjcmlwdHMgICAgID0gdGhpcy5fcmVzb2x2ZVJlbGF0aXZlVXJscyhwcm94eSwgaW5qZWN0YWJsZVJlc291cmNlcy5zY3JpcHRzKTtcbiAgICAgICAgaW5qZWN0YWJsZVJlc291cmNlcy51c2VyU2NyaXB0cyA9IHRoaXMuX3Jlc29sdmVSZWxhdGl2ZVVybHMocHJveHksIGluamVjdGFibGVSZXNvdXJjZXMudXNlclNjcmlwdHMpO1xuICAgICAgICBpbmplY3RhYmxlUmVzb3VyY2VzLnN0eWxlc2hlZXRzID0gdGhpcy5fcmVzb2x2ZVJlbGF0aXZlVXJscyhwcm94eSwgaW5qZWN0YWJsZVJlc291cmNlcy5zdHlsZXNoZWV0cyk7XG5cbiAgICAgICAgcmV0dXJuIGluamVjdGFibGVSZXNvdXJjZXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfcHJvY2Vzc1Jlc3BvbnNlSGVhZGVycyAoaGVhZGVyczogSGVhZGVyRW50cnlbXSB8IHVuZGVmaW5lZCk6IEhlYWRlckVudHJ5W10ge1xuICAgICAgICBpZiAoIWhlYWRlcnMpXG4gICAgICAgICAgICByZXR1cm4gW107XG5cbiAgICAgICAgaGVhZGVycyA9IGhlYWRlcnMuZmlsdGVyKGhlYWRlciA9PiAhUkVTUE9OU0VfUkVNT1ZFRF9IRUFERVJTLmluY2x1ZGVzKGhlYWRlci5uYW1lLnRvTG93ZXJDYXNlKCkpKTtcblxuICAgICAgICByZXR1cm4gc3RyaW5naWZ5SGVhZGVyVmFsdWVzKGhlYWRlcnMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX2Z1bGZpbGxSZXF1ZXN0IChjbGllbnQ6IFByb3RvY29sQXBpLCBmdWxmaWxsUmVxdWVzdEluZm86IEZ1bGZpbGxSZXF1ZXN0UmVxdWVzdCwgYm9keTogc3RyaW5nLCBzZXNzaW9uSWQ6IFNlc3Npb25JZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCBzYWZlRnVsZmlsbFJlcXVlc3QoY2xpZW50LCB7XG4gICAgICAgICAgICByZXF1ZXN0SWQ6ICAgICAgIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXF1ZXN0SWQsXG4gICAgICAgICAgICByZXNwb25zZUNvZGU6ICAgIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXNwb25zZUNvZGUgfHwgU3RhdHVzQ29kZXMuT0ssXG4gICAgICAgICAgICByZXNwb25zZVBocmFzZTogIGZ1bGZpbGxSZXF1ZXN0SW5mby5yZXNwb25zZVBocmFzZSxcbiAgICAgICAgICAgIHJlc3BvbnNlSGVhZGVyczogdGhpcy5fcHJvY2Vzc1Jlc3BvbnNlSGVhZGVycyhmdWxmaWxsUmVxdWVzdEluZm8ucmVzcG9uc2VIZWFkZXJzKSxcbiAgICAgICAgICAgIGJvZHk6ICAgICAgICAgICAgdG9CYXNlNjRTdHJpbmcoYm9keSksXG4gICAgICAgIH0sIHNlc3Npb25JZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlZGlyZWN0VG9FcnJvclBhZ2UgKGNsaWVudDogUHJvdG9jb2xBcGksIGVycjogRXJyb3IsIHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUZXN0UnVuID0gdGhpcy5fdGVzdFJ1bkJyaWRnZS5nZXRDdXJyZW50VGVzdFJ1bigpO1xuXG4gICAgICAgIGlmICghY3VycmVudFRlc3RSdW4pXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgY3VycmVudFRlc3RSdW4ucGVuZGluZ1BhZ2VFcnJvciA9IG5ldyBQYWdlTG9hZEVycm9yKGVyciwgdXJsKTtcblxuICAgICAgICBhd2FpdCBuYXZpZ2F0ZVRvKGNsaWVudCwgdGhpcy5fb3B0aW9ucy5zcGVjaWFsU2VydmljZVJvdXRlcy5lcnJvclBhZ2UxKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgZ2V0RG9jdW1lbnRSZXNvdXJjZUluZm8gKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQsIGNsaWVudDogUHJvdG9jb2xBcGkpOiBQcm9taXNlPERvY3VtZW50UmVzb3VyY2VJbmZvPiB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHJlcXVlc3RJZCxcbiAgICAgICAgICAgIHJlcXVlc3QsXG4gICAgICAgICAgICByZXNwb25zZUVycm9yUmVhc29uLFxuICAgICAgICAgICAgcmVzb3VyY2VUeXBlLFxuICAgICAgICB9ID0gZXZlbnQ7XG5cbiAgICAgICAgaWYgKHJlc291cmNlVHlwZSAhPT0gJ0RvY3VtZW50Jykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICBib2R5OiAgbnVsbCxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKHJlc3BvbnNlRXJyb3JSZWFzb24gPT09ICdOYW1lTm90UmVzb2x2ZWQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyID0gZmFpbGVkVG9GaW5kRE5TRXJyb3IocmVxdWVzdC51cmwpO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3I6IGVycixcbiAgICAgICAgICAgICAgICAgICAgYm9keTogIG51bGwsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VPYmogPSBhd2FpdCBjbGllbnQuRmV0Y2guZ2V0UmVzcG9uc2VCb2R5KHsgcmVxdWVzdElkIH0pO1xuICAgICAgICAgICAgY29uc3QgcmVzcG9uc2VTdHIgPSBnZXRSZXNwb25zZUFzU3RyaW5nKHJlc3BvbnNlT2JqKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgICAgICAgICAgICBib2R5OiAgQnVmZmVyLmZyb20ocmVzcG9uc2VTdHIpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICByZXNvdXJjZUluamVjdG9yTG9nZ2VyKCdGYWlsZWQgdG8gcHJvY2VzcyByZXF1ZXN0OiAlcycsIHJlcXVlc3QudXJsKTtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyLFxuICAgICAgICAgICAgICAgIGJvZHk6ICBudWxsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcm9jZXNzQWJvdXRCbGFua1BhZ2UgKGV2ZW50OiBGcmFtZU5hdmlnYXRlZEV2ZW50LCB1c2VyU2NyaXB0czogc3RyaW5nW10sIGNvbnRleHRTdG9yYWdlOiBTZXNzaW9uU3RvcmFnZUluZm8gfCBudWxsLCBjbGllbnQ6IFByb3RvY29sQXBpKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHJlc291cmNlSW5qZWN0b3JMb2dnZXIoJ0hhbmRsZSBwYWdlIGFzIGFib3V0OmJsYW5rLiBPcmlnaW4gdXJsOiAlcycsIGV2ZW50LmZyYW1lLnVybCk7XG5cbiAgICAgICAgY29uc3QgaW5qZWN0YWJsZVJlc291cmNlcyA9IGF3YWl0IHRoaXMuX3ByZXBhcmVJbmplY3RhYmxlUmVzb3VyY2VzKHsgaXNJZnJhbWU6IGZhbHNlLCB1c2VyU2NyaXB0cywgY29udGV4dFN0b3JhZ2UgfSkgYXMgUGFnZUluamVjdGFibGVSZXNvdXJjZXM7XG4gICAgICAgIGNvbnN0IGh0bWwgICAgICAgICAgICAgICAgPSBpbmplY3RSZXNvdXJjZXMoRU1QVFlfUEFHRV9NQVJLVVAsIGluamVjdGFibGVSZXNvdXJjZXMpO1xuXG4gICAgICAgIGF3YWl0IGNsaWVudC5QYWdlLnNldERvY3VtZW50Q29udGVudCh7XG4gICAgICAgICAgICBmcmFtZUlkOiBldmVudC5mcmFtZS5pZCxcbiAgICAgICAgICAgIGh0bWwsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBwcm9jZXNzSFRNTFBhZ2VDb250ZW50IChmdWxmaWxsUmVxdWVzdEluZm86IEZ1bGZpbGxSZXF1ZXN0UmVxdWVzdCwgaW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnM6IEluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zLCBjbGllbnQ6IFByb3RvY29sQXBpLCBzZXNzaW9uSWQ6IFNlc3Npb25JZCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBpbmplY3RhYmxlUmVzb3VyY2VzID0gYXdhaXQgdGhpcy5fcHJlcGFyZUluamVjdGFibGVSZXNvdXJjZXMoaW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMpO1xuXG4gICAgICAgIC8vIE5PVEU6IGFuIHVuaGFuZGxlZCBleGNlcHRpb24gaW50ZXJydXB0cyB0aGUgdGVzdCBleGVjdXRpb24sXG4gICAgICAgIC8vIGFuZCB3ZSBhcmUgZm9yY2UgdG8gcmVkaXJlY3QgbWFudWFsbHkgdG8gdGhlIGlkbGUgcGFnZS5cbiAgICAgICAgaWYgKCFpbmplY3RhYmxlUmVzb3VyY2VzKVxuICAgICAgICAgICAgYXdhaXQgcmVkaXJlY3QoY2xpZW50LCBmdWxmaWxsUmVxdWVzdEluZm8ucmVxdWVzdElkLCB0aGlzLl9vcHRpb25zLnNwZWNpYWxTZXJ2aWNlUm91dGVzLmlkbGVQYWdlKTtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkUmVzcG9uc2VTdHIgPSBpbmplY3RSZXNvdXJjZXMoXG4gICAgICAgICAgICAgICAgZnVsZmlsbFJlcXVlc3RJbmZvLmJvZHkgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIGluamVjdGFibGVSZXNvdXJjZXMsXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2V0UGFnZUluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKGluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zKSxcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2Z1bGZpbGxSZXF1ZXN0KGNsaWVudCwgZnVsZmlsbFJlcXVlc3RJbmZvLCB1cGRhdGVkUmVzcG9uc2VTdHIsIHNlc3Npb25JZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcHJvY2Vzc05vblByb3hpZWRDb250ZW50IChmdWxmaWxsUmVxdWVzdEluZm86IEZ1bGZpbGxSZXF1ZXN0UmVxdWVzdCwgY2xpZW50OiBQcm90b2NvbEFwaSwgc2Vzc2lvbklkOiBTZXNzaW9uSWQpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fZnVsZmlsbFJlcXVlc3QoY2xpZW50LCBmdWxmaWxsUmVxdWVzdEluZm8sIGZ1bGZpbGxSZXF1ZXN0SW5mby5ib2R5IGFzIHN0cmluZywgc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRQYWdlSW5qZWN0YWJsZVJlc291cmNlc09wdGlvbnMgKGluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zOiBJbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9ucyk6IFBhZ2VSZXN0b3JlU3RvcmFnZXNPcHRpb25zIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgeyB1cmwsIHJlc3RvcmluZ1N0b3JhZ2VzIH0gPSBpbmplY3RhYmxlUmVzb3VyY2VzT3B0aW9ucztcblxuICAgICAgICBpZiAodXJsICYmIHJlc3RvcmluZ1N0b3JhZ2VzKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhvc3Q6ICAgICAgbmV3IFVSTCh1cmwpLmhvc3QsXG4gICAgICAgICAgICAgICAgc2Vzc2lvbklkOiB0aGlzLl90ZXN0UnVuQnJpZGdlLmdldFNlc3Npb25JZCgpLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2b2lkIDA7XG4gICAgfVxuXG4gICAgcHVibGljIHNldE9wdGlvbnMgKG9wdGlvbnM6IFJlc291cmNlSW5qZWN0b3JPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zO1xuICAgIH1cbn1cbiJdfQ==
@@ -9,4 +9,4 @@ var EventType;
9
9
  EventType[EventType["Delay"] = 3] = "Delay";
10
10
  EventType[EventType["InsertText"] = 4] = "InsertText";
11
11
  })(EventType = exports.EventType || (exports.EventType = {}));
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0NBLElBQVksU0FNWDtBQU5ELFdBQVksU0FBUztJQUNqQiwyQ0FBSyxDQUFBO0lBQ0wsaURBQVEsQ0FBQTtJQUNSLDJDQUFLLENBQUE7SUFDTCwyQ0FBSyxDQUFBO0lBQ0wscURBQVUsQ0FBQTtBQUNkLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBOYXRpdmVBdXRvbWF0aW9uSW5pdE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgU3RvcmFnZXNTbmFwc2hvdCB9IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BlY2lhbFNlcnZpY2VSb3V0ZXMge1xuICAgIGVycm9yUGFnZTE6IHN0cmluZztcbiAgICBlcnJvclBhZ2UyOiBzdHJpbmc7XG4gICAgb3BlbkZpbGVQcm90b2NvbFVybDogc3RyaW5nO1xuICAgIGlkbGVQYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRSZXNvdXJjZUluZm8ge1xuICAgIGVycm9yOiBhbnk7XG4gICAgYm9keTogQnVmZmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlciB7XG4gICAgY29uZGl0aW9uOiAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgb3B0aW9ucz86IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2VydmljZVJvdXRlcz86IFNwZWNpYWxTZXJ2aWNlUm91dGVzKSA9PiBib29sZWFuO1xuICAgIGhhbmRsZXI6IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjbGllbnQ6IFByb3RvY29sQXBpLCBvcHRpb25zPzogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zIHtcbiAgICBpc0lmcmFtZTogYm9vbGVhbjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgcmVzdG9yaW5nU3RvcmFnZXM/OiBTdG9yYWdlc1NuYXBzaG90IHwgbnVsbDtcbiAgICBjb250ZXh0U3RvcmFnZT86IFNlc3Npb25TdG9yYWdlSW5mbztcbiAgICB1c2VyU2NyaXB0cz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uU3RvcmFnZUluZm8gPSBEaWN0aW9uYXJ5PERpY3Rpb25hcnk8c3RyaW5nPj4gfCBudWxsO1xuXG5leHBvcnQgZW51bSBFdmVudFR5cGUge1xuICAgIE1vdXNlLFxuICAgIEtleWJvYXJkLFxuICAgIFRvdWNoLFxuICAgIERlbGF5LFxuICAgIEluc2VydFRleHQsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGludWVSZXF1ZXN0QXJncyB7XG4gICAgcG9zdERhdGE/OiBzdHJpbmc7XG4gICAgbWV0aG9kPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbn1cbiJdfQ==
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbmF0aXZlLWF1dG9tYXRpb24vdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0NBLElBQVksU0FNWDtBQU5ELFdBQVksU0FBUztJQUNqQiwyQ0FBSyxDQUFBO0lBQ0wsaURBQVEsQ0FBQTtJQUNSLDJDQUFLLENBQUE7SUFDTCwyQ0FBSyxDQUFBO0lBQ0wscURBQVUsQ0FBQTtBQUNkLENBQUMsRUFOVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQU1wQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBOYXRpdmVBdXRvbWF0aW9uSW5pdE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvdHlwZXMnO1xuaW1wb3J0IHsgU3RvcmFnZXNTbmFwc2hvdCB9IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BlY2lhbFNlcnZpY2VSb3V0ZXMge1xuICAgIGVycm9yUGFnZTE6IHN0cmluZztcbiAgICBlcnJvclBhZ2UyOiBzdHJpbmc7XG4gICAgb3BlbkZpbGVQcm90b2NvbFVybDogc3RyaW5nO1xuICAgIGlkbGVQYWdlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRSZXNvdXJjZUluZm8ge1xuICAgIGVycm9yOiBhbnk7XG4gICAgYm9keTogQnVmZmVyIHwgbnVsbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0SGFuZGxlciB7XG4gICAgY29uZGl0aW9uOiAoZXZlbnQ6IFJlcXVlc3RQYXVzZWRFdmVudCwgb3B0aW9ucz86IE5hdGl2ZUF1dG9tYXRpb25Jbml0T3B0aW9ucywgc2VydmljZVJvdXRlcz86IFNwZWNpYWxTZXJ2aWNlUm91dGVzKSA9PiBib29sZWFuO1xuICAgIGhhbmRsZXI6IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50LCBjbGllbnQ6IFByb3RvY29sQXBpLCBvcHRpb25zPzogTmF0aXZlQXV0b21hdGlvbkluaXRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluamVjdGFibGVSZXNvdXJjZXNPcHRpb25zIHtcbiAgICBpc0lmcmFtZTogYm9vbGVhbjtcbiAgICB1cmw/OiBzdHJpbmc7XG4gICAgcmVzdG9yaW5nU3RvcmFnZXM/OiBTdG9yYWdlc1NuYXBzaG90IHwgbnVsbDtcbiAgICBjb250ZXh0U3RvcmFnZT86IFNlc3Npb25TdG9yYWdlSW5mbztcbiAgICB1c2VyU2NyaXB0cz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgdHlwZSBTZXNzaW9uU3RvcmFnZUluZm8gPSBEaWN0aW9uYXJ5PERpY3Rpb25hcnk8c3RyaW5nPj4gfCBudWxsO1xuXG5leHBvcnQgZW51bSBFdmVudFR5cGUge1xuICAgIE1vdXNlLFxuICAgIEtleWJvYXJkLFxuICAgIFRvdWNoLFxuICAgIERlbGF5LFxuICAgIEluc2VydFRleHQsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29udGludWVSZXF1ZXN0QXJncyB7XG4gICAgcG9zdERhdGE/OiBzdHJpbmc7XG4gICAgbWV0aG9kPzogc3RyaW5nO1xuICAgIHVybD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgU2Vzc2lvbklkID0gc3RyaW5nIHwgdW5kZWZpbmVkO1xuIl19
@@ -63,8 +63,9 @@ function createRequestPausedEventForResponse(mockedResponse, requestEvent) {
63
63
  exports.createRequestPausedEventForResponse = createRequestPausedEventForResponse;
64
64
  function getRequestId(event) {
65
65
  if (isRequestPausedEvent(event))
66
- return event.networkId;
66
+ // NOTE: the `networkId` field can be missing
67
+ return event.networkId || event.requestId;
67
68
  return event.frame.loaderId;
68
69
  }
69
70
  exports.getRequestId = getRequestId;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hdGl2ZS1hdXRvbWF0aW9uL3V0aWxzL2NkcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5REFBZ0Q7QUFLaEQsdUNBQW1EO0FBQ25ELG9DQUFxQztBQUNyQyxzQ0FBZ0Q7QUFHekMsS0FBSyxVQUFVLFFBQVEsQ0FBRSxNQUFtQixFQUFFLFNBQWlCLEVBQUUsR0FBVztJQUMvRSxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzlCLFNBQVM7UUFDVCxZQUFZLEVBQUssK0JBQVcsQ0FBQyxpQkFBaUI7UUFDOUMsZUFBZSxFQUFFO1lBQ2IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7U0FDbkM7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDO0FBUkQsNEJBUUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUFFLE1BQW1CLEVBQUUsR0FBVztJQUM5RCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsZ0NBRUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFFLE1BQW1CLEVBQUUsSUFBZSxFQUFFLE9BQVk7SUFDbkYsUUFBUSxDQUFDLElBQUksRUFBRTtRQUNYLEtBQUssaUJBQVMsQ0FBQyxLQUFLO1lBQ2hCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNO1FBQ1YsS0FBSyxpQkFBUyxDQUFDLFFBQVE7WUFDbkIsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE1BQU07UUFDVixLQUFLLGlCQUFTLENBQUMsVUFBVTtZQUNyQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU07UUFDVixLQUFLLGlCQUFTLENBQUMsS0FBSztZQUNoQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsTUFBTTtRQUNWO1lBQ0ksTUFBTSxJQUFBLDRCQUFtQixFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQztBQUNMLENBQUM7QUFqQkQsc0NBaUJDO0FBRUQsU0FBZ0IsU0FBUyxDQUFFLEtBQXlCO0lBQ2hELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFGRCw4QkFFQztBQUVELFNBQWdCLGNBQWMsQ0FBRSxVQUFrQjtJQUM5QyxPQUFPLFVBQVUsS0FBSyxHQUFHLENBQUM7QUFDOUIsQ0FBQztBQUZELHdDQUVDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUUsR0FBUTtJQUMxQyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUM7QUFDakUsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUUsS0FBeUI7SUFDekQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUM7QUFDOUMsQ0FBQztBQUZELGdEQUVDO0FBRUQsU0FBZ0IsbUNBQW1DLENBQUUsY0FBbUMsRUFBRSxZQUFnQztJQUN0SCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRTtRQUNuQyxrQkFBa0IsRUFBRSxjQUFjLENBQUMsVUFBVTtRQUM3QyxlQUFlLEVBQUssSUFBQSxnQ0FBc0IsRUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDO0tBQ3JFLENBQUMsQ0FBQztBQUNQLENBQUM7QUFMRCxrRkFLQztBQUVELFNBQWdCLFlBQVksQ0FBRSxLQUErQztJQUN6RSxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQyxTQUFtQixDQUFDO0lBRXJDLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7QUFDaEMsQ0FBQztBQUxELG9DQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNDb2RlcyB9IGZyb20gJ2h0dHAtc3RhdHVzLWNvZGVzJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IEZyYW1lTmF2aWdhdGVkRXZlbnQgPSBQcm90b2NvbC5QYWdlLkZyYW1lTmF2aWdhdGVkRXZlbnQ7XG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2VMaWtlIH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgeyBjb252ZXJ0VG9IZWFkZXJFbnRyaWVzIH0gZnJvbSAnLi9oZWFkZXJzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHVua25vd25DRFBFdmVudFR5cGUgfSBmcm9tICcuLi9lcnJvcnMnO1xuXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWRpcmVjdCAoY2xpZW50OiBQcm90b2NvbEFwaSwgcmVxdWVzdElkOiBzdHJpbmcsIHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgY2xpZW50LkZldGNoLmZ1bGZpbGxSZXF1ZXN0KHtcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICByZXNwb25zZUNvZGU6ICAgIFN0YXR1c0NvZGVzLk1PVkVEX1BFUk1BTkVOVExZLFxuICAgICAgICByZXNwb25zZUhlYWRlcnM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2xvY2F0aW9uJywgdmFsdWU6IHVybCB9LFxuICAgICAgICBdLFxuICAgIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGVUbyAoY2xpZW50OiBQcm90b2NvbEFwaSwgdXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBjbGllbnQuUGFnZS5uYXZpZ2F0ZSh7IHVybCB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnQgKGNsaWVudDogUHJvdG9jb2xBcGksIHR5cGU6IEV2ZW50VHlwZSwgb3B0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3dpdGNoICgrdHlwZSkge1xuICAgICAgICBjYXNlIEV2ZW50VHlwZS5Nb3VzZTpcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5JbnB1dC5kaXNwYXRjaE1vdXNlRXZlbnQob3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFdmVudFR5cGUuS2V5Ym9hcmQ6XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuSW5wdXQuZGlzcGF0Y2hLZXlFdmVudChvcHRpb25zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEV2ZW50VHlwZS5JbnNlcnRUZXh0OlxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LklucHV0Lmluc2VydFRleHQoeyB0ZXh0OiBvcHRpb25zLnRleHQgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFdmVudFR5cGUuVG91Y2g6XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuSW5wdXQuZGlzcGF0Y2hUb3VjaEV2ZW50KG9wdGlvbnMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyB1bmtub3duQ0RQRXZlbnRUeXBlKG9wdGlvbnMudHlwZSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXF1ZXN0IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZW50LnJlc3BvbnNlU3RhdHVzQ29kZSA9PT0gdm9pZCAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmF1dGhvcml6ZWQgKHN0YXR1c0NvZGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0dXNDb2RlID09PSA0MDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RQYXVzZWRFdmVudCAodmFsOiBhbnkpOiB2YWwgaXMgUmVxdWVzdFBhdXNlZEV2ZW50IHtcbiAgICByZXR1cm4gdmFsICYmIHZhbC5mcmFtZUlkICYmIHR5cGVvZiB2YWwucmVxdWVzdCA9PT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZWZsaWdodFJlcXVlc3QgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZXZlbnQucmVxdWVzdC5tZXRob2QgPT09ICdPUFRJT05TJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3RQYXVzZWRFdmVudEZvclJlc3BvbnNlIChtb2NrZWRSZXNwb25zZTogSW5jb21pbmdNZXNzYWdlTGlrZSwgcmVxdWVzdEV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBSZXF1ZXN0UGF1c2VkRXZlbnQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZXF1ZXN0RXZlbnQsIHtcbiAgICAgICAgcmVzcG9uc2VTdGF0dXNDb2RlOiBtb2NrZWRSZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICByZXNwb25zZUhlYWRlcnM6ICAgIGNvbnZlcnRUb0hlYWRlckVudHJpZXMobW9ja2VkUmVzcG9uc2UuaGVhZGVycyksXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0SWQgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQgfCBGcmFtZU5hdmlnYXRlZEV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaXNSZXF1ZXN0UGF1c2VkRXZlbnQoZXZlbnQpKVxuICAgICAgICByZXR1cm4gZXZlbnQubmV0d29ya0lkIGFzIHN0cmluZztcblxuICAgIHJldHVybiBldmVudC5mcmFtZS5sb2FkZXJJZDtcbn1cbiJdfQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL25hdGl2ZS1hdXRvbWF0aW9uL3V0aWxzL2NkcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5REFBZ0Q7QUFLaEQsdUNBQW1EO0FBQ25ELG9DQUFxQztBQUNyQyxzQ0FBZ0Q7QUFHekMsS0FBSyxVQUFVLFFBQVEsQ0FBRSxNQUFtQixFQUFFLFNBQWlCLEVBQUUsR0FBVztJQUMvRSxNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1FBQzlCLFNBQVM7UUFDVCxZQUFZLEVBQUssK0JBQVcsQ0FBQyxpQkFBaUI7UUFDOUMsZUFBZSxFQUFFO1lBQ2IsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUU7U0FDbkM7S0FDSixDQUFDLENBQUM7QUFDUCxDQUFDO0FBUkQsNEJBUUM7QUFFTSxLQUFLLFVBQVUsVUFBVSxDQUFFLE1BQW1CLEVBQUUsR0FBVztJQUM5RCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRkQsZ0NBRUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFFLE1BQW1CLEVBQUUsSUFBZSxFQUFFLE9BQVk7SUFDbkYsUUFBUSxDQUFDLElBQUksRUFBRTtRQUNYLEtBQUssaUJBQVMsQ0FBQyxLQUFLO1lBQ2hCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxNQUFNO1FBQ1YsS0FBSyxpQkFBUyxDQUFDLFFBQVE7WUFDbkIsTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE1BQU07UUFDVixLQUFLLGlCQUFTLENBQUMsVUFBVTtZQUNyQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3RELE1BQU07UUFDVixLQUFLLGlCQUFTLENBQUMsS0FBSztZQUNoQixNQUFNLE1BQU0sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDL0MsTUFBTTtRQUNWO1lBQ0ksTUFBTSxJQUFBLDRCQUFtQixFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUMvQztBQUNMLENBQUM7QUFqQkQsc0NBaUJDO0FBRUQsU0FBZ0IsU0FBUyxDQUFFLEtBQXlCO0lBQ2hELE9BQU8sS0FBSyxDQUFDLGtCQUFrQixLQUFLLEtBQUssQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFGRCw4QkFFQztBQUVELFNBQWdCLGNBQWMsQ0FBRSxVQUFrQjtJQUM5QyxPQUFPLFVBQVUsS0FBSyxHQUFHLENBQUM7QUFDOUIsQ0FBQztBQUZELHdDQUVDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUUsR0FBUTtJQUMxQyxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sR0FBRyxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUM7QUFDakUsQ0FBQztBQUZELG9EQUVDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUUsS0FBeUI7SUFDekQsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUM7QUFDOUMsQ0FBQztBQUZELGdEQUVDO0FBRUQsU0FBZ0IsbUNBQW1DLENBQUUsY0FBbUMsRUFBRSxZQUFnQztJQUN0SCxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksRUFBRTtRQUNuQyxrQkFBa0IsRUFBRSxjQUFjLENBQUMsVUFBVTtRQUM3QyxlQUFlLEVBQUssSUFBQSxnQ0FBc0IsRUFBQyxjQUFjLENBQUMsT0FBTyxDQUFDO0tBQ3JFLENBQUMsQ0FBQztBQUNQLENBQUM7QUFMRCxrRkFLQztBQUVELFNBQWdCLFlBQVksQ0FBRSxLQUErQztJQUN6RSxJQUFJLG9CQUFvQixDQUFDLEtBQUssQ0FBQztRQUMzQiw2Q0FBNkM7UUFDN0MsT0FBTyxLQUFLLENBQUMsU0FBbUIsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDO0lBRXhELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7QUFDaEMsQ0FBQztBQU5ELG9DQU1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdG9jb2xBcGkgfSBmcm9tICdjaHJvbWUtcmVtb3RlLWludGVyZmFjZSc7XG5pbXBvcnQgeyBTdGF0dXNDb2RlcyB9IGZyb20gJ2h0dHAtc3RhdHVzLWNvZGVzJztcbmltcG9ydCBQcm90b2NvbCBmcm9tICdkZXZ0b29scy1wcm90b2NvbCc7XG5pbXBvcnQgUmVxdWVzdFBhdXNlZEV2ZW50ID0gUHJvdG9jb2wuRmV0Y2guUmVxdWVzdFBhdXNlZEV2ZW50O1xuaW1wb3J0IEZyYW1lTmF2aWdhdGVkRXZlbnQgPSBQcm90b2NvbC5QYWdlLkZyYW1lTmF2aWdhdGVkRXZlbnQ7XG5pbXBvcnQgeyBJbmNvbWluZ01lc3NhZ2VMaWtlIH0gZnJvbSAndGVzdGNhZmUtaGFtbWVyaGVhZCc7XG5pbXBvcnQgeyBjb252ZXJ0VG9IZWFkZXJFbnRyaWVzIH0gZnJvbSAnLi9oZWFkZXJzJztcbmltcG9ydCB7IEV2ZW50VHlwZSB9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IHVua25vd25DRFBFdmVudFR5cGUgfSBmcm9tICcuLi9lcnJvcnMnO1xuXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWRpcmVjdCAoY2xpZW50OiBQcm90b2NvbEFwaSwgcmVxdWVzdElkOiBzdHJpbmcsIHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgY2xpZW50LkZldGNoLmZ1bGZpbGxSZXF1ZXN0KHtcbiAgICAgICAgcmVxdWVzdElkLFxuICAgICAgICByZXNwb25zZUNvZGU6ICAgIFN0YXR1c0NvZGVzLk1PVkVEX1BFUk1BTkVOVExZLFxuICAgICAgICByZXNwb25zZUhlYWRlcnM6IFtcbiAgICAgICAgICAgIHsgbmFtZTogJ2xvY2F0aW9uJywgdmFsdWU6IHVybCB9LFxuICAgICAgICBdLFxuICAgIH0pO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbmF2aWdhdGVUbyAoY2xpZW50OiBQcm90b2NvbEFwaSwgdXJsOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBjbGllbnQuUGFnZS5uYXZpZ2F0ZSh7IHVybCB9KTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRpc3BhdGNoRXZlbnQgKGNsaWVudDogUHJvdG9jb2xBcGksIHR5cGU6IEV2ZW50VHlwZSwgb3B0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgc3dpdGNoICgrdHlwZSkge1xuICAgICAgICBjYXNlIEV2ZW50VHlwZS5Nb3VzZTpcbiAgICAgICAgICAgIGF3YWl0IGNsaWVudC5JbnB1dC5kaXNwYXRjaE1vdXNlRXZlbnQob3B0aW9ucyk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFdmVudFR5cGUuS2V5Ym9hcmQ6XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuSW5wdXQuZGlzcGF0Y2hLZXlFdmVudChvcHRpb25zKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEV2ZW50VHlwZS5JbnNlcnRUZXh0OlxuICAgICAgICAgICAgYXdhaXQgY2xpZW50LklucHV0Lmluc2VydFRleHQoeyB0ZXh0OiBvcHRpb25zLnRleHQgfSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFdmVudFR5cGUuVG91Y2g6XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQuSW5wdXQuZGlzcGF0Y2hUb3VjaEV2ZW50KG9wdGlvbnMpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyB1bmtub3duQ0RQRXZlbnRUeXBlKG9wdGlvbnMudHlwZSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNSZXF1ZXN0IChldmVudDogUmVxdWVzdFBhdXNlZEV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGV2ZW50LnJlc3BvbnNlU3RhdHVzQ29kZSA9PT0gdm9pZCAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmF1dGhvcml6ZWQgKHN0YXR1c0NvZGU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdGF0dXNDb2RlID09PSA0MDE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1JlcXVlc3RQYXVzZWRFdmVudCAodmFsOiBhbnkpOiB2YWwgaXMgUmVxdWVzdFBhdXNlZEV2ZW50IHtcbiAgICByZXR1cm4gdmFsICYmIHZhbC5mcmFtZUlkICYmIHR5cGVvZiB2YWwucmVxdWVzdCA9PT0gJ29iamVjdCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ByZWZsaWdodFJlcXVlc3QgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZXZlbnQucmVxdWVzdC5tZXRob2QgPT09ICdPUFRJT05TJztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3RQYXVzZWRFdmVudEZvclJlc3BvbnNlIChtb2NrZWRSZXNwb25zZTogSW5jb21pbmdNZXNzYWdlTGlrZSwgcmVxdWVzdEV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQpOiBSZXF1ZXN0UGF1c2VkRXZlbnQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCByZXF1ZXN0RXZlbnQsIHtcbiAgICAgICAgcmVzcG9uc2VTdGF0dXNDb2RlOiBtb2NrZWRSZXNwb25zZS5zdGF0dXNDb2RlLFxuICAgICAgICByZXNwb25zZUhlYWRlcnM6ICAgIGNvbnZlcnRUb0hlYWRlckVudHJpZXMobW9ja2VkUmVzcG9uc2UuaGVhZGVycyksXG4gICAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0SWQgKGV2ZW50OiBSZXF1ZXN0UGF1c2VkRXZlbnQgfCBGcmFtZU5hdmlnYXRlZEV2ZW50KTogc3RyaW5nIHtcbiAgICBpZiAoaXNSZXF1ZXN0UGF1c2VkRXZlbnQoZXZlbnQpKVxuICAgICAgICAvLyBOT1RFOiB0aGUgYG5ldHdvcmtJZGAgZmllbGQgY2FuIGJlIG1pc3NpbmdcbiAgICAgICAgcmV0dXJuIGV2ZW50Lm5ldHdvcmtJZCBhcyBzdHJpbmcgfHwgZXZlbnQucmVxdWVzdElkO1xuXG4gICAgcmV0dXJuIGV2ZW50LmZyYW1lLmxvYWRlcklkO1xufVxuIl19
package/lib/role/role.js CHANGED
@@ -22,47 +22,24 @@ class Role extends events_1.EventEmitter {
22
22
  this.initErr = null;
23
23
  }
24
24
  async _storeStateSnapshot(testRun) {
25
- var _a;
26
25
  if (this.initErr)
27
26
  return;
28
27
  this.stateSnapshot = await testRun.getStateSnapshot();
29
- await ((_a = testRun === null || testRun === void 0 ? void 0 : testRun.compilerService) === null || _a === void 0 ? void 0 : _a.updateRoleProperty({
30
- roleId: this.id,
31
- name: 'stateSnapshot',
32
- value: this.stateSnapshot,
33
- }));
34
28
  }
35
- _wrapTestFn(testRun) {
36
- this._initFn = () => {
37
- var _a;
38
- return (_a = testRun.compilerService) === null || _a === void 0 ? void 0 : _a.executeRoleInitFn({
39
- testRunId: testRun.id,
40
- roleId: this.id,
41
- });
42
- };
43
- }
44
- async _setInitError(err, testRun) {
45
- var _a;
29
+ async _setInitError(err) {
46
30
  this.initErr = err;
47
- await ((_a = testRun === null || testRun === void 0 ? void 0 : testRun.compilerService) === null || _a === void 0 ? void 0 : _a.updateRoleProperty({
48
- roleId: this.id,
49
- name: 'initErr',
50
- value: this.initErr,
51
- }));
52
31
  }
53
32
  async _executeInitFn(testRun) {
54
33
  if (this.initErr)
55
34
  return;
56
35
  try {
57
- if (testRun.compilerService)
58
- this._wrapTestFn(testRun);
59
36
  let fn = () => this._initFn(testRun);
60
37
  fn = testRun.decoratePreventEmitActionEvents(fn, { prevent: false });
61
38
  fn = testRun.decorateDisableDebugBreakpoints(fn, { disable: false });
62
39
  await fn();
63
40
  }
64
41
  catch (err) {
65
- await this._setInitError(err, testRun);
42
+ await this._setInitError(err);
66
43
  }
67
44
  }
68
45
  async _switchToCleanRun(testRun) {
@@ -70,11 +47,10 @@ class Role extends events_1.EventEmitter {
70
47
  await testRun.switchToCleanRun(this.loginUrl);
71
48
  }
72
49
  catch (err) {
73
- await this._setInitError(err, testRun);
50
+ await this._setInitError(err);
74
51
  }
75
52
  }
76
53
  async initialize(testRun) {
77
- var _a;
78
54
  this.phase = phase_1.default.pendingInitialization;
79
55
  await this._switchToCleanRun(testRun);
80
56
  await this._executeInitFn(testRun);
@@ -82,15 +58,9 @@ class Role extends events_1.EventEmitter {
82
58
  if (this.opts.preserveUrl)
83
59
  await this.setCurrentUrlAsRedirectUrl(testRun);
84
60
  this.phase = phase_1.default.initialized;
85
- await ((_a = testRun.compilerService) === null || _a === void 0 ? void 0 : _a.updateRoleProperty({
86
- roleId: this.id,
87
- name: 'phase',
88
- value: this.phase,
89
- }));
90
61
  this.emit('initialized');
91
62
  }
92
63
  async setCurrentUrlAsRedirectUrl(testRun) {
93
- var _a;
94
64
  const currentUrl = await testRun.getCurrentUrl();
95
65
  if (this.opts.preserveUrl)
96
66
  this.redirectUrl = currentUrl;
@@ -98,11 +68,6 @@ class Role extends events_1.EventEmitter {
98
68
  this.redirectUrl = this.redirectUrl || {};
99
69
  this.redirectUrl[testRun.test.id] = currentUrl;
100
70
  }
101
- await ((_a = testRun.compilerService) === null || _a === void 0 ? void 0 : _a.updateRoleProperty({
102
- roleId: this.id,
103
- name: 'redirectUrl',
104
- value: this.redirectUrl,
105
- }));
106
71
  }
107
72
  static from(init) {
108
73
  if (!init)
@@ -119,4 +84,4 @@ class Role extends events_1.EventEmitter {
119
84
  }
120
85
  exports.default = Role;
121
86
  module.exports = exports.default;
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xlL3JvbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBc0M7QUFDdEMsb0RBQWdDO0FBQ2hDLDZEQUFvRDtBQUNwRCxvRUFBeUM7QUFDekMsbUNBQWdDO0FBUWhDLE1BQXFCLElBQUssU0FBUSxxQkFBWTtJQVcxQyxZQUFvQixRQUF1QixFQUFFLE1BQXVCLEVBQUUsT0FBTyxHQUFHLEVBQUU7UUFDOUUsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsdUJBQVUsQ0FBQyxHQUFLLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsRUFBRSxHQUFjLElBQUEsZUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQVcsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFTLENBQUMsV0FBVyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQVEsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQVMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQVksT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUssSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsbUNBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFTLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQixDQUFFLE9BQWdCOztRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQ1osT0FBTztRQUVYLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUV0RCxNQUFNLENBQUEsTUFBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsZUFBZSwwQ0FBRSxrQkFBa0IsQ0FBQztZQUMvQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZixJQUFJLEVBQUksZUFBZTtZQUN2QixLQUFLLEVBQUcsSUFBSSxDQUFDLGFBQWE7U0FDN0IsQ0FBQyxDQUFBLENBQUM7SUFDUCxDQUFDO0lBRU8sV0FBVyxDQUFFLE9BQWdCO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFOztZQUNoQixPQUFPLE1BQUEsT0FBTyxDQUFDLGVBQWUsMENBQUUsaUJBQWlCLENBQUM7Z0JBQzlDLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtnQkFDckIsTUFBTSxFQUFLLElBQUksQ0FBQyxFQUFFO2FBQ3JCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUFFLEdBQVUsRUFBRSxPQUFnQjs7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFFbkIsTUFBTSxDQUFBLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLGVBQWUsMENBQUUsa0JBQWtCLENBQUM7WUFDL0MsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxFQUFJLFNBQVM7WUFDakIsS0FBSyxFQUFHLElBQUksQ0FBQyxPQUFPO1NBQ3ZCLENBQUMsQ0FBQSxDQUFDO0lBQ1AsQ0FBQztJQUVPLEtBQUssQ0FBQyxjQUFjLENBQUUsT0FBZ0I7UUFDMUMsSUFBSSxJQUFJLENBQUMsT0FBTztZQUNaLE9BQU87UUFFWCxJQUFJO1lBQ0EsSUFBSSxPQUFPLENBQUMsZUFBZTtnQkFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUU5QixJQUFJLEVBQUUsR0FBRyxHQUFrQixFQUFFLENBQUUsSUFBSSxDQUFDLE9BQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFbEUsRUFBRSxHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNyRSxFQUFFLEdBQUcsT0FBTyxDQUFDLCtCQUErQixDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBRXJFLE1BQU0sRUFBRSxFQUFFLENBQUM7U0FDZDtRQUNELE9BQU8sR0FBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMxQztJQUNMLENBQUM7SUFFTyxLQUFLLENBQUMsaUJBQWlCLENBQUUsT0FBZ0I7UUFDN0MsSUFBSTtZQUNBLE1BQU0sT0FBTyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxRQUFrQixDQUFDLENBQUM7U0FDM0Q7UUFDRCxPQUFPLEdBQVEsRUFBRTtZQUNiLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDMUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBRSxPQUFnQjs7UUFDckMsSUFBSSxDQUFDLEtBQUssR0FBRyxlQUFTLENBQUMscUJBQXFCLENBQUM7UUFFN0MsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQ3JCLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxLQUFLLEdBQUcsZUFBUyxDQUFDLFdBQVcsQ0FBQztRQUVuQyxNQUFNLENBQUEsTUFBQSxPQUFPLENBQUMsZUFBZSwwQ0FBRSxrQkFBa0IsQ0FBQztZQUM5QyxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZixJQUFJLEVBQUksT0FBTztZQUNmLEtBQUssRUFBRyxJQUFJLENBQUMsS0FBSztTQUNyQixDQUFDLENBQUEsQ0FBQztRQUVILElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQywwQkFBMEIsQ0FBRSxPQUFnQjs7UUFDckQsTUFBTSxVQUFVLEdBQUcsTUFBTSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFakQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVc7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7YUFDN0I7WUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxXQUEyQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO1NBQ25FO1FBRUQsTUFBTSxDQUFBLE1BQUEsT0FBTyxDQUFDLGVBQWUsMENBQUUsa0JBQWtCLENBQUM7WUFDOUMsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2YsSUFBSSxFQUFJLGFBQWE7WUFDckIsS0FBSyxFQUFHLElBQUksQ0FBQyxXQUFXO1NBQzNCLENBQUMsQ0FBQSxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFJLENBQUUsSUFBYTtRQUM3QixJQUFJLENBQUMsSUFBSTtZQUNMLE9BQU8sSUFBSSxDQUFDO1FBRWhCLE1BQU0sY0FBYyxHQUFHLElBQVksQ0FBQztRQUVwQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTVGLElBQUksQ0FBQyxFQUFFLEdBQWMsY0FBYyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFXLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBSyxjQUFjLENBQUMsV0FBVyxDQUFDO1FBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxHQUFTLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFFNUMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKO0FBNUlELHVCQTRJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgUm9sZVBoYXNlIGZyb20gJy4vcGhhc2UnO1xuaW1wb3J0IHsgU3RhdGVTbmFwc2hvdCB9IGZyb20gJ3Rlc3RjYWZlLWhhbW1lcmhlYWQnO1xuaW1wb3J0IHJvbGVNYXJrZXIgZnJvbSAnLi9tYXJrZXItc3ltYm9sJztcbmltcG9ydCB7IG5hbm9pZCB9IGZyb20gJ25hbm9pZCc7XG5pbXBvcnQgVGVzdFJ1biBmcm9tICcuLi90ZXN0LXJ1bic7XG5pbXBvcnQgVGVzdENhZmVFcnJvckxpc3QgZnJvbSAnLi4vZXJyb3JzL2Vycm9yLWxpc3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlZGlyZWN0VXJsIHtcbiAgICBbdGVzdElkOiBzdHJpbmddOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJvbGUgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xuICAgIHB1YmxpYyBwaGFzZTogUm9sZVBoYXNlO1xuICAgIHB1YmxpYyBsb2dpblVybDogc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgcmVkaXJlY3RVcmw6IFJlZGlyZWN0VXJsIHwgc3RyaW5nIHwgbnVsbDtcbiAgICBwdWJsaWMgX2luaXRGbjogRnVuY3Rpb24gfCBudWxsO1xuICAgIHB1YmxpYyBvcHRzOiBSb2xlT3B0aW9ucztcbiAgICBwdWJsaWMgaW5pdEVycjogbnVsbCB8IEVycm9yIHwgVGVzdENhZmVFcnJvckxpc3Q7XG4gICAgcHVibGljIHN0YXRlU25hcHNob3Q6IFN0YXRlU25hcHNob3Q7XG4gICAgcHJpdmF0ZSBbcm9sZU1hcmtlcl06IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IgKGxvZ2luVXJsOiBzdHJpbmcgfCBudWxsLCBpbml0Rm46IEZ1bmN0aW9uIHwgbnVsbCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpc1tyb2xlTWFya2VyXSAgID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5pZCAgICAgICAgICAgID0gbmFub2lkKDcpO1xuICAgICAgICB0aGlzLnBoYXNlICAgICAgICAgPSBsb2dpblVybCA/IFJvbGVQaGFzZS51bmluaXRpYWxpemVkIDogUm9sZVBoYXNlLmluaXRpYWxpemVkO1xuICAgICAgICB0aGlzLmxvZ2luVXJsICAgICAgPSBsb2dpblVybDtcbiAgICAgICAgdGhpcy5faW5pdEZuICAgICAgID0gaW5pdEZuO1xuICAgICAgICB0aGlzLm9wdHMgICAgICAgICAgPSBvcHRpb25zO1xuICAgICAgICB0aGlzLnJlZGlyZWN0VXJsICAgPSBudWxsO1xuICAgICAgICB0aGlzLnN0YXRlU25hcHNob3QgPSBTdGF0ZVNuYXBzaG90LmVtcHR5KCk7XG4gICAgICAgIHRoaXMuaW5pdEVyciAgICAgICA9IG51bGw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc3RvcmVTdGF0ZVNuYXBzaG90ICh0ZXN0UnVuOiBUZXN0UnVuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmluaXRFcnIpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdGhpcy5zdGF0ZVNuYXBzaG90ID0gYXdhaXQgdGVzdFJ1bi5nZXRTdGF0ZVNuYXBzaG90KCk7XG5cbiAgICAgICAgYXdhaXQgdGVzdFJ1bj8uY29tcGlsZXJTZXJ2aWNlPy51cGRhdGVSb2xlUHJvcGVydHkoe1xuICAgICAgICAgICAgcm9sZUlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgbmFtZTogICAnc3RhdGVTbmFwc2hvdCcsXG4gICAgICAgICAgICB2YWx1ZTogIHRoaXMuc3RhdGVTbmFwc2hvdCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfd3JhcFRlc3RGbiAodGVzdFJ1bjogVGVzdFJ1bik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0Rm4gPSAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGVzdFJ1bi5jb21waWxlclNlcnZpY2U/LmV4ZWN1dGVSb2xlSW5pdEZuKHtcbiAgICAgICAgICAgICAgICB0ZXN0UnVuSWQ6IHRlc3RSdW4uaWQsXG4gICAgICAgICAgICAgICAgcm9sZUlkOiAgICB0aGlzLmlkLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0SW5pdEVycm9yIChlcnI6IEVycm9yLCB0ZXN0UnVuOiBUZXN0UnVuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuaW5pdEVyciA9IGVycjtcblxuICAgICAgICBhd2FpdCB0ZXN0UnVuPy5jb21waWxlclNlcnZpY2U/LnVwZGF0ZVJvbGVQcm9wZXJ0eSh7XG4gICAgICAgICAgICByb2xlSWQ6IHRoaXMuaWQsXG4gICAgICAgICAgICBuYW1lOiAgICdpbml0RXJyJyxcbiAgICAgICAgICAgIHZhbHVlOiAgdGhpcy5pbml0RXJyLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIF9leGVjdXRlSW5pdEZuICh0ZXN0UnVuOiBUZXN0UnVuKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmluaXRFcnIpXG4gICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGlmICh0ZXN0UnVuLmNvbXBpbGVyU2VydmljZSlcbiAgICAgICAgICAgICAgICB0aGlzLl93cmFwVGVzdEZuKHRlc3RSdW4pO1xuXG4gICAgICAgICAgICBsZXQgZm4gPSAoKTogUHJvbWlzZTx2b2lkPiA9PiAodGhpcy5faW5pdEZuIGFzIEZ1bmN0aW9uKSh0ZXN0UnVuKTtcblxuICAgICAgICAgICAgZm4gPSB0ZXN0UnVuLmRlY29yYXRlUHJldmVudEVtaXRBY3Rpb25FdmVudHMoZm4sIHsgcHJldmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICBmbiA9IHRlc3RSdW4uZGVjb3JhdGVEaXNhYmxlRGVidWdCcmVha3BvaW50cyhmbiwgeyBkaXNhYmxlOiBmYWxzZSB9KTtcblxuICAgICAgICAgICAgYXdhaXQgZm4oKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEluaXRFcnJvcihlcnIsIHRlc3RSdW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc3dpdGNoVG9DbGVhblJ1biAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGVzdFJ1bi5zd2l0Y2hUb0NsZWFuUnVuKHRoaXMubG9naW5VcmwgYXMgc3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEluaXRFcnJvcihlcnIsIHRlc3RSdW4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXRpYWxpemUgKHRlc3RSdW46IFRlc3RSdW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5waGFzZSA9IFJvbGVQaGFzZS5wZW5kaW5nSW5pdGlhbGl6YXRpb247XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fc3dpdGNoVG9DbGVhblJ1bih0ZXN0UnVuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fZXhlY3V0ZUluaXRGbih0ZXN0UnVuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fc3RvcmVTdGF0ZVNuYXBzaG90KHRlc3RSdW4pO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdHMucHJlc2VydmVVcmwpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNldEN1cnJlbnRVcmxBc1JlZGlyZWN0VXJsKHRlc3RSdW4pO1xuXG4gICAgICAgIHRoaXMucGhhc2UgPSBSb2xlUGhhc2UuaW5pdGlhbGl6ZWQ7XG5cbiAgICAgICAgYXdhaXQgdGVzdFJ1bi5jb21waWxlclNlcnZpY2U/LnVwZGF0ZVJvbGVQcm9wZXJ0eSh7XG4gICAgICAgICAgICByb2xlSWQ6IHRoaXMuaWQsXG4gICAgICAgICAgICBuYW1lOiAgICdwaGFzZScsXG4gICAgICAgICAgICB2YWx1ZTogIHRoaXMucGhhc2UsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZW1pdCgnaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgc2V0Q3VycmVudFVybEFzUmVkaXJlY3RVcmwgKHRlc3RSdW46IFRlc3RSdW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgY3VycmVudFVybCA9IGF3YWl0IHRlc3RSdW4uZ2V0Q3VycmVudFVybCgpO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdHMucHJlc2VydmVVcmwpXG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0VXJsID0gY3VycmVudFVybDtcbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0VXJsID0gdGhpcy5yZWRpcmVjdFVybCB8fCB7fTtcbiAgICAgICAgICAgICh0aGlzLnJlZGlyZWN0VXJsIGFzIFJlZGlyZWN0VXJsKVt0ZXN0UnVuLnRlc3QuaWRdID0gY3VycmVudFVybDtcbiAgICAgICAgfVxuXG4gICAgICAgIGF3YWl0IHRlc3RSdW4uY29tcGlsZXJTZXJ2aWNlPy51cGRhdGVSb2xlUHJvcGVydHkoe1xuICAgICAgICAgICAgcm9sZUlkOiB0aGlzLmlkLFxuICAgICAgICAgICAgbmFtZTogICAncmVkaXJlY3RVcmwnLFxuICAgICAgICAgICAgdmFsdWU6ICB0aGlzLnJlZGlyZWN0VXJsLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb20gKGluaXQ6IHVua25vd24pOiBSb2xlIHwgbnVsbCB7XG4gICAgICAgIGlmICghaW5pdClcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuXG4gICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRSb2xlID0gaW5pdCBhcyBSb2xlO1xuXG4gICAgICAgIGNvbnN0IHJvbGUgPSBuZXcgUm9sZShzZXJpYWxpemVkUm9sZS5sb2dpblVybCwgc2VyaWFsaXplZFJvbGUuX2luaXRGbiwgc2VyaWFsaXplZFJvbGUub3B0cyk7XG5cbiAgICAgICAgcm9sZS5pZCAgICAgICAgICAgID0gc2VyaWFsaXplZFJvbGUuaWQ7XG4gICAgICAgIHJvbGUucGhhc2UgICAgICAgICA9IHNlcmlhbGl6ZWRSb2xlLnBoYXNlO1xuICAgICAgICByb2xlLnJlZGlyZWN0VXJsICAgPSBzZXJpYWxpemVkUm9sZS5yZWRpcmVjdFVybDtcbiAgICAgICAgcm9sZS5zdGF0ZVNuYXBzaG90ID0gc2VyaWFsaXplZFJvbGUuc3RhdGVTbmFwc2hvdDtcbiAgICAgICAgcm9sZS5pbml0RXJyICAgICAgID0gc2VyaWFsaXplZFJvbGUuaW5pdEVycjtcblxuICAgICAgICByZXR1cm4gcm9sZTtcbiAgICB9XG59XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9sZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xlL3JvbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBc0M7QUFDdEMsb0RBQWdDO0FBQ2hDLDZEQUFvRDtBQUNwRCxvRUFBeUM7QUFDekMsbUNBQWdDO0FBUWhDLE1BQXFCLElBQUssU0FBUSxxQkFBWTtJQVcxQyxZQUFvQixRQUF1QixFQUFFLE1BQXVCLEVBQUUsT0FBTyxHQUFHLEVBQUU7UUFDOUUsS0FBSyxFQUFFLENBQUM7UUFFUixJQUFJLENBQUMsdUJBQVUsQ0FBQyxHQUFLLElBQUksQ0FBQztRQUMxQixJQUFJLENBQUMsRUFBRSxHQUFjLElBQUEsZUFBTSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLLEdBQVcsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFTLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxlQUFTLENBQUMsV0FBVyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQVEsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLEdBQVMsTUFBTSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLEdBQVksT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUssSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsbUNBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxJQUFJLENBQUMsT0FBTyxHQUFTLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQixDQUFFLE9BQWdCO1FBQy9DLElBQUksSUFBSSxDQUFDLE9BQU87WUFDWixPQUFPO1FBRVgsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFELENBQUM7SUFFTyxLQUFLLENBQUMsYUFBYSxDQUFFLEdBQVU7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FB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O0lBQ2hCLENBQUM7Q0FDSjtBQXhHRCx1QkF3R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudHMnO1xuaW1wb3J0IFJvbGVQaGFzZSBmcm9tICcuL3BoYXNlJztcbmltcG9ydCB7IFN0YXRlU25hcHNob3QgfSBmcm9tICd0ZXN0Y2FmZS1oYW1tZXJoZWFkJztcbmltcG9ydCByb2xlTWFya2VyIGZyb20gJy4vbWFya2VyLXN5bWJvbCc7XG5pbXBvcnQgeyBuYW5vaWQgfSBmcm9tICduYW5vaWQnO1xuaW1wb3J0IFRlc3RSdW4gZnJvbSAnLi4vdGVzdC1ydW4nO1xuaW1wb3J0IFRlc3RDYWZlRXJyb3JMaXN0IGZyb20gJy4uL2Vycm9ycy9lcnJvci1saXN0JztcblxuZXhwb3J0IGludGVyZmFjZSBSZWRpcmVjdFVybCB7XG4gICAgW3Rlc3RJZDogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSb2xlIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgICBwdWJsaWMgcGhhc2U6IFJvbGVQaGFzZTtcbiAgICBwdWJsaWMgbG9naW5Vcmw6IHN0cmluZyB8IG51bGw7XG4gICAgcHVibGljIHJlZGlyZWN0VXJsOiBSZWRpcmVjdFVybCB8IHN0cmluZyB8IG51bGw7XG4gICAgcHVibGljIF9pbml0Rm46IEZ1bmN0aW9uIHwgbnVsbDtcbiAgICBwdWJsaWMgb3B0czogUm9sZU9wdGlvbnM7XG4gICAgcHVibGljIGluaXRFcnI6IG51bGwgfCBFcnJvciB8IFRlc3RDYWZlRXJyb3JMaXN0O1xuICAgIHB1YmxpYyBzdGF0ZVNuYXBzaG90OiBTdGF0ZVNuYXBzaG90O1xuICAgIHByaXZhdGUgW3JvbGVNYXJrZXJdOiBib29sZWFuO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yIChsb2dpblVybDogc3RyaW5nIHwgbnVsbCwgaW5pdEZuOiBGdW5jdGlvbiB8IG51bGwsIG9wdGlvbnMgPSB7fSkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXNbcm9sZU1hcmtlcl0gICA9IHRydWU7XG4gICAgICAgIHRoaXMuaWQgICAgICAgICAgICA9IG5hbm9pZCg3KTtcbiAgICAgICAgdGhpcy5waGFzZSAgICAgICAgID0gbG9naW5VcmwgPyBSb2xlUGhhc2UudW5pbml0aWFsaXplZCA6IFJvbGVQaGFzZS5pbml0aWFsaXplZDtcbiAgICAgICAgdGhpcy5sb2dpblVybCAgICAgID0gbG9naW5Vcmw7XG4gICAgICAgIHRoaXMuX2luaXRGbiAgICAgICA9IGluaXRGbjtcbiAgICAgICAgdGhpcy5vcHRzICAgICAgICAgID0gb3B0aW9ucztcbiAgICAgICAgdGhpcy5yZWRpcmVjdFVybCAgID0gbnVsbDtcbiAgICAgICAgdGhpcy5zdGF0ZVNuYXBzaG90ID0gU3RhdGVTbmFwc2hvdC5lbXB0eSgpO1xuICAgICAgICB0aGlzLmluaXRFcnIgICAgICAgPSBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3N0b3JlU3RhdGVTbmFwc2hvdCAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pbml0RXJyKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuc3RhdGVTbmFwc2hvdCA9IGF3YWl0IHRlc3RSdW4uZ2V0U3RhdGVTbmFwc2hvdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgX3NldEluaXRFcnJvciAoZXJyOiBFcnJvcik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmluaXRFcnIgPSBlcnI7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfZXhlY3V0ZUluaXRGbiAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5pbml0RXJyKVxuICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgZm4gPSAoKTogUHJvbWlzZTx2b2lkPiA9PiAodGhpcy5faW5pdEZuIGFzIEZ1bmN0aW9uKSh0ZXN0UnVuKTtcblxuICAgICAgICAgICAgZm4gPSB0ZXN0UnVuLmRlY29yYXRlUHJldmVudEVtaXRBY3Rpb25FdmVudHMoZm4sIHsgcHJldmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICBmbiA9IHRlc3RSdW4uZGVjb3JhdGVEaXNhYmxlRGVidWdCcmVha3BvaW50cyhmbiwgeyBkaXNhYmxlOiBmYWxzZSB9KTtcblxuICAgICAgICAgICAgYXdhaXQgZm4oKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEluaXRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBfc3dpdGNoVG9DbGVhblJ1biAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgdGVzdFJ1bi5zd2l0Y2hUb0NsZWFuUnVuKHRoaXMubG9naW5VcmwgYXMgc3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX3NldEluaXRFcnJvcihlcnIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGluaXRpYWxpemUgKHRlc3RSdW46IFRlc3RSdW4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5waGFzZSA9IFJvbGVQaGFzZS5wZW5kaW5nSW5pdGlhbGl6YXRpb247XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fc3dpdGNoVG9DbGVhblJ1bih0ZXN0UnVuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fZXhlY3V0ZUluaXRGbih0ZXN0UnVuKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fc3RvcmVTdGF0ZVNuYXBzaG90KHRlc3RSdW4pO1xuXG4gICAgICAgIGlmICh0aGlzLm9wdHMucHJlc2VydmVVcmwpXG4gICAgICAgICAgICBhd2FpdCB0aGlzLnNldEN1cnJlbnRVcmxBc1JlZGlyZWN0VXJsKHRlc3RSdW4pO1xuXG4gICAgICAgIHRoaXMucGhhc2UgPSBSb2xlUGhhc2UuaW5pdGlhbGl6ZWQ7XG5cbiAgICAgICAgdGhpcy5lbWl0KCdpbml0aWFsaXplZCcpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBzZXRDdXJyZW50VXJsQXNSZWRpcmVjdFVybCAodGVzdFJ1bjogVGVzdFJ1bik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBjdXJyZW50VXJsID0gYXdhaXQgdGVzdFJ1bi5nZXRDdXJyZW50VXJsKCk7XG5cbiAgICAgICAgaWYgKHRoaXMub3B0cy5wcmVzZXJ2ZVVybClcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RVcmwgPSBjdXJyZW50VXJsO1xuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RVcmwgPSB0aGlzLnJlZGlyZWN0VXJsIHx8IHt9O1xuICAgICAgICAgICAgKHRoaXMucmVkaXJlY3RVcmwgYXMgUmVkaXJlY3RVcmwpW3Rlc3RSdW4udGVzdC5pZF0gPSBjdXJyZW50VXJsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tIChpbml0OiB1bmtub3duKTogUm9sZSB8IG51bGwge1xuICAgICAgICBpZiAoIWluaXQpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICBjb25zdCBzZXJpYWxpemVkUm9sZSA9IGluaXQgYXMgUm9sZTtcblxuICAgICAgICBjb25zdCByb2xlID0gbmV3IFJvbGUoc2VyaWFsaXplZFJvbGUubG9naW5VcmwsIHNlcmlhbGl6ZWRSb2xlLl9pbml0Rm4sIHNlcmlhbGl6ZWRSb2xlLm9wdHMpO1xuXG4gICAgICAgIHJvbGUuaWQgICAgICAgICAgICA9IHNlcmlhbGl6ZWRSb2xlLmlkO1xuICAgICAgICByb2xlLnBoYXNlICAgICAgICAgPSBzZXJpYWxpemVkUm9sZS5waGFzZTtcbiAgICAgICAgcm9sZS5yZWRpcmVjdFVybCAgID0gc2VyaWFsaXplZFJvbGUucmVkaXJlY3RVcmw7XG4gICAgICAgIHJvbGUuc3RhdGVTbmFwc2hvdCA9IHNlcmlhbGl6ZWRSb2xlLnN0YXRlU25hcHNob3Q7XG4gICAgICAgIHJvbGUuaW5pdEVyciAgICAgICA9IHNlcmlhbGl6ZWRSb2xlLmluaXRFcnI7XG5cbiAgICAgICAgcmV0dXJuIHJvbGU7XG4gICAgfVxufVxuIl19