velocious 1.0.626 → 1.0.628

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 (81) hide show
  1. package/README.md +15 -3
  2. package/build/background-jobs/job-runner.js +9 -1
  3. package/build/background-jobs/local-dispatcher.js +23 -1
  4. package/build/background-jobs/main.js +6 -4
  5. package/build/background-jobs/perform-job.js +10 -1
  6. package/build/background-jobs/platform-job.js +62 -0
  7. package/build/background-jobs/runtime.js +6 -3
  8. package/build/background-jobs/types.js +8 -0
  9. package/build/background-jobs/worker.js +3 -1
  10. package/build/database/pool/async-tracked-multi-connection.js +46 -9
  11. package/build/database/pool/base.js +3 -0
  12. package/build/database/pool/checkout-timeout-error.js +16 -0
  13. package/build/http-client/websocket-client.js +52 -0
  14. package/build/http-server/client/index.js +6 -0
  15. package/build/http-server/client/websocket-session.js +30 -0
  16. package/build/http-server/index.js +202 -38
  17. package/build/http-server/worker-handler/index.js +15 -1
  18. package/build/http-server/worker-handler/worker-thread.js +8 -0
  19. package/build/src/background-jobs/job-runner.d.ts.map +1 -1
  20. package/build/src/background-jobs/job-runner.js +10 -2
  21. package/build/src/background-jobs/local-dispatcher.d.ts.map +1 -1
  22. package/build/src/background-jobs/local-dispatcher.js +24 -2
  23. package/build/src/background-jobs/main.d.ts.map +1 -1
  24. package/build/src/background-jobs/main.js +7 -5
  25. package/build/src/background-jobs/perform-job.d.ts +5 -1
  26. package/build/src/background-jobs/perform-job.d.ts.map +1 -1
  27. package/build/src/background-jobs/perform-job.js +11 -2
  28. package/build/src/background-jobs/platform-job.d.ts +34 -0
  29. package/build/src/background-jobs/platform-job.d.ts.map +1 -1
  30. package/build/src/background-jobs/platform-job.js +56 -1
  31. package/build/src/background-jobs/runtime.d.ts.map +1 -1
  32. package/build/src/background-jobs/runtime.js +7 -4
  33. package/build/src/background-jobs/types.d.ts +30 -0
  34. package/build/src/background-jobs/types.d.ts.map +1 -1
  35. package/build/src/background-jobs/types.js +9 -1
  36. package/build/src/background-jobs/worker.d.ts.map +1 -1
  37. package/build/src/background-jobs/worker.js +4 -2
  38. package/build/src/database/pool/async-tracked-multi-connection.d.ts +22 -2
  39. package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
  40. package/build/src/database/pool/async-tracked-multi-connection.js +44 -10
  41. package/build/src/database/pool/base.d.ts +15 -0
  42. package/build/src/database/pool/base.d.ts.map +1 -1
  43. package/build/src/database/pool/base.js +4 -1
  44. package/build/src/database/pool/checkout-timeout-error.d.ts +13 -0
  45. package/build/src/database/pool/checkout-timeout-error.d.ts.map +1 -0
  46. package/build/src/database/pool/checkout-timeout-error.js +15 -0
  47. package/build/src/http-client/websocket-client.d.ts +18 -0
  48. package/build/src/http-client/websocket-client.d.ts.map +1 -1
  49. package/build/src/http-client/websocket-client.js +48 -1
  50. package/build/src/http-server/client/index.d.ts.map +1 -1
  51. package/build/src/http-server/client/index.js +7 -1
  52. package/build/src/http-server/client/websocket-session.d.ts +6 -0
  53. package/build/src/http-server/client/websocket-session.d.ts.map +1 -1
  54. package/build/src/http-server/client/websocket-session.js +27 -1
  55. package/build/src/http-server/index.d.ts +82 -10
  56. package/build/src/http-server/index.d.ts.map +1 -1
  57. package/build/src/http-server/index.js +186 -33
  58. package/build/src/http-server/worker-handler/index.d.ts +28 -1
  59. package/build/src/http-server/worker-handler/index.d.ts.map +1 -1
  60. package/build/src/http-server/worker-handler/index.js +23 -2
  61. package/build/src/http-server/worker-handler/worker-thread.d.ts.map +1 -1
  62. package/build/src/http-server/worker-handler/worker-thread.js +7 -1
  63. package/build/tsconfig.tsbuildinfo +1 -1
  64. package/package.json +1 -1
  65. package/src/background-jobs/job-runner.js +9 -1
  66. package/src/background-jobs/local-dispatcher.js +23 -1
  67. package/src/background-jobs/main.js +6 -4
  68. package/src/background-jobs/perform-job.js +10 -1
  69. package/src/background-jobs/platform-job.js +62 -0
  70. package/src/background-jobs/runtime.js +6 -3
  71. package/src/background-jobs/types.js +8 -0
  72. package/src/background-jobs/worker.js +3 -1
  73. package/src/database/pool/async-tracked-multi-connection.js +46 -9
  74. package/src/database/pool/base.js +3 -0
  75. package/src/database/pool/checkout-timeout-error.js +16 -0
  76. package/src/http-client/websocket-client.js +52 -0
  77. package/src/http-server/client/index.js +6 -0
  78. package/src/http-server/client/websocket-session.js +30 -0
  79. package/src/http-server/index.js +202 -38
  80. package/src/http-server/worker-handler/index.js +15 -1
  81. package/src/http-server/worker-handler/worker-thread.js +8 -0
@@ -165,7 +165,29 @@ export default class LocalBackgroundJobsDispatcher {
165
165
  configuration: this.configuration,
166
166
  JobClass,
167
167
  jobArgs: job.args,
168
- name: `Local background job: ${job.jobName}`
168
+ jobOptions: {
169
+ concurrencyKey: job.concurrencyKey || undefined,
170
+ executionMode: job.executionMode,
171
+ maxConcurrency: job.maxConcurrency ?? undefined,
172
+ maxRetries: job.maxRetries ?? undefined,
173
+ queue: job.queue,
174
+ scheduledAtMs: job.scheduledAtMs ?? undefined,
175
+ timeoutMs: job.timeoutMs ?? undefined
176
+ },
177
+ name: `Local background job: ${job.jobName}`,
178
+ payload: {
179
+ args: job.args,
180
+ handedOffAtMs: handoff.handedOffAtMs,
181
+ handoffId: handoff.handoffId,
182
+ id: job.id,
183
+ jobName: job.jobName,
184
+ options: {
185
+ concurrencyKey: job.concurrencyKey || undefined,
186
+ executionMode: job.executionMode,
187
+ maxConcurrency: job.maxConcurrency ?? undefined,
188
+ queue: job.queue
189
+ }
190
+ }
169
191
  });
170
192
  }
171
193
  catch (error) {
@@ -380,4 +402,4 @@ export default class LocalBackgroundJobsDispatcher {
380
402
  errorEvents.emit("all-error", { ...payload, errorType: "framework-error" });
381
403
  }
382
404
  }
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZ3JvdW5kLWpvYnMvbG9jYWwtZGlzcGF0Y2hlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyw2QkFBNkIsTUFBTSx3QkFBd0IsQ0FBQTtBQUNsRSxPQUFPLG9CQUFvQixNQUFNLGtCQUFrQixDQUFBO0FBRW5ELHlLQUF5SztBQUV6Szs7Ozs7R0FLRztBQUVILE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQTtBQUNsQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQTtBQUVyQyxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE9BQU8sT0FBTyw2QkFBNkI7SUFDaEQ7Ozs7Ozs7T0FPRztJQUNILFlBQVksRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7UUFDckIsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtRQUN4QixpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQzFCLG9FQUFvRTtRQUNwRSxJQUFJ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QUUsR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2dCQUNwQixRQUFRLEVBQUUsT0FBTzthQUNsQjtZQUNELEtBQUs7WUFDTCxLQUFLLEVBQUUsdUNBQXVDO1NBQy9DLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gscUJBQXFCLENBQUMsRUFBQyxPQUFPLEdBQUcsRUFBRSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUM7UUFDaEQsTUFBTSxlQUFlLEdBQUcsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtRQUNqRixNQUFNLE9BQU8sR0FBRyxFQUFDLE9BQU8sRUFBRSxFQUFDLEdBQUcsT0FBTyxFQUFFLEtBQUssRUFBQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUMsQ0FBQTtRQUN0RSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBRXZELFdBQVcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDNUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBQyxHQUFHLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFBO0lBQzNFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFja2dyb3VuZEpvYlJlc2NoZWR1bGVTaWduYWwgZnJvbSBcIi4vcmVzY2hlZHVsZS1zaWduYWwuanNcIlxuaW1wb3J0IHBlcmZvcm1CYWNrZ3JvdW5kSm9iIGZyb20gXCIuL3BlcmZvcm0tam9iLmpzXCJcblxuLyoqIEB0eXBlZGVmIHt7dHlwZTogXCJjb21wbGV0ZWRcIn0gfCB7dHlwZTogXCJmYWlsZWRcIiwgZXJyb3I6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSB8IHt0eXBlOiBcInJlc2NoZWR1bGVkXCIsIGRlbGF5TXM6IG51bWJlcn19IExvY2FsQmFja2dyb3VuZEpvYkFja25vd2xlZGdlbWVudCAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFBlbmRpbmdMb2NhbEJhY2tncm91bmRKb2JBY2tub3dsZWRnZW1lbnRcbiAqIEBwcm9wZXJ0eSB7TG9jYWxCYWNrZ3JvdW5kSm9iQWNrbm93bGVkZ2VtZW50fSBhY2tub3dsZWRnZW1lbnQgLSBEdXJhYmxlIHRyYW5zaXRpb24gc3RpbGwgb3duZWQgYnkgdGhpcyBkaXNwYXRjaGVyLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JIYW5kb2ZmfSBoYW5kb2ZmIC0gRmVuY2VkIGhhbmRvZmYgYmVpbmcgYWNrbm93bGVkZ2VkLlxuICogQHByb3BlcnR5IHtpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSb3d9IGpvYiAtIENsYWltZWQgam9iIHNuYXBzaG90LlxuICovXG5cbmNvbnN0IE1BWF9USU1FUl9NUyA9IDJfMTQ3XzQ4M182NDdcbmNvbnN0IEVSUk9SX1JFQ09WRVJZX0RFTEFZX01TID0gMV8wMDBcblxuLyoqIENvbmZpZ3VyYXRpb24tb3duZWQsIGV2ZW50LWRyaXZlbiBpbi1wcm9jZXNzIGxvY2FsIGRpc3BhdGNoZXIuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBMb2NhbEJhY2tncm91bmRKb2JzRGlzcGF0Y2hlciB7XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZGlzcGF0Y2hlciBvd25lZCBieSBvbmUgY29uZmlndXJhdGlvbiBhbmQgbG9jYWwgc3RvcmUuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gRGlzcGF0Y2hlciBvcHRpb25zLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gYXJncy5jb25maWd1cmF0aW9uIC0gT3duaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5Mb2NhbEJhY2tncm91bmRKb2JzQ2xvY2t9IGFyZ3MuY2xvY2sgLSBEaXNwYXRjaGVyIGNsb2NrLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vbG9jYWwtam9iLXJlZ2lzdHJ5LmpzXCIpLmRlZmF1bHR9IGFyZ3MucmVnaXN0cnkgLSBTdGF0aWMgam9iIHJlZ2lzdHJ5LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vbG9jYWwtc3RvcmUuanNcIikuZGVmYXVsdH0gYXJncy5zdG9yZSAtIER1cmFibGUgbG9jYWwgc3RvcmUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcih7Y29uZmlndXJhdGlvbiwgY2xvY2ssIHJlZ2lzdHJ5LCBzdG9yZX0pIHtcbiAgICB0aGlzLmNsb2NrID0gY2xvY2tcbiAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uXG4gICAgdGhpcy5yZWdpc3RyeSA9IHJlZ2lzdHJ5XG4gICAgdGhpcy5zdG9yZSA9IHN0b3JlXG4gICAgdGhpcy5fYWNjZXB0aW5nID0gZmFsc2VcbiAgICB0aGlzLl9zdGFydGVkID0gZmFsc2VcbiAgICAvKiogQHR5cGUge1Byb21pc2U8dm9pZD4gfCBudWxsfSAqL1xuICAgIHRoaXMuX3N0YXJ0UHJvbWlzZSA9IG51bGxcbiAgICAvKiogQHR5cGUge1Byb21pc2U8dm9pZD4gfCBudWxsfSAqL1xuICAgIHRoaXMuX2RyYWluUHJvbWlzZSA9IG51bGxcbiAgICB0aGlzLl9yZWRyYWluID0gZmFsc2VcbiAgICB0aGlzLl93YWtlUXVldWVkID0gZmFsc2VcbiAgICAvKiogQHR5cGUge1NldDxQcm9taXNlPHZvaWQ+Pn0gKi9cbiAgICB0aGlzLl9pbkZsaWdodCA9IG5ldyBTZXQoKVxuICAgIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgUGVuZGluZ0xvY2FsQmFja2dyb3VuZEpvYkFja25vd2xlZGdlbWVudD59ICovXG4gICAgdGhpcy5fcGVuZGluZ0Fja25vd2xlZGdlbWVudHMgPSBuZXcgTWFwKClcbiAgICAvKiogQHR5cGUge1NldDwoKSA9PiB2b2lkPn0gKi9cbiAgICB0aGlzLl9pZGxlV2FpdGVycyA9IG5ldyBTZXQoKVxuICAgIC8qKiBAdHlwZSB7UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudW1iZXIgfCB1bmRlZmluZWR9ICovXG4gICAgdGhpcy5fc2NoZWR1bGVkVGltZXIgPSB1bmRlZmluZWRcbiAgICAvKiogQHR5cGUge1JldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICAgIHRoaXMuX3JlY292ZXJ5VGltZXIgPSB1bmRlZmluZWRcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMsIHJlY292ZXJzLCBhbmQgY2F0Y2hlcyB1cCB0aGUgbG9jYWwgZGlzcGF0Y2hlci5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgYWRtaXNzaW9uIHN0YXJ0cy5cbiAgICovXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIGlmICh0aGlzLl9zdGFydGVkKSByZXR1cm5cbiAgICBpZiAodGhpcy5fc3RhcnRQcm9taXNlKSByZXR1cm4gYXdhaXQgdGhpcy5fc3RhcnRQcm9taXNlXG5cbiAgICB0aGlzLl9zdGFydFByb21pc2UgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgdGhpcy5jb25maWd1cmF0aW9uLnNldEN1cnJlbnQoKVxuICAgICAgdGhpcy5yZWdpc3RyeS5lbnN1cmVSZWFkeSgpXG4gICAgICBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24uaW5pdGlhbGl6ZSh7dHlwZTogXCJsb2NhbC1iYWNrZ3JvdW5kLWpvYnNcIn0pXG4gICAgICBhd2FpdCB0aGlzLnN0b3JlLmVuc3VyZVJlYWR5KClcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmUucmVjb25jaWxlUXVldWVDb25jdXJyZW5jeSgpXG5cbiAgICAgIGNvbnN0IHJlY292ZXJlZEpvYnMgPSBhd2FpdCB0aGlzLnN0b3JlLnJlY292ZXJIYW5kZWRPZmZKb2JzKClcblxuICAgICAgZm9yIChjb25zdCBqb2Igb2YgcmVjb3ZlcmVkSm9icykge1xuICAgICAgICB0aGlzLl9lbWl0QmFja2dyb3VuZEpvYkZhaWxlZCh7XG4gICAgICAgICAgZXJyb3I6IG5ldyBFcnJvcihqb2IubGFzdEVycm9yIHx8IFwiTG9jYWwgYmFja2dyb3VuZCBqb2IgcmVjb3ZlcmVkIGFmdGVyIGFuIGludGVycnVwdGVkIGRpc3BhdGNoZXJcIiksXG4gICAgICAgICAgam9iXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2FjY2VwdGluZyA9IHRydWVcbiAgICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlXG4gICAgICB0aGlzLndha2UoKVxuICAgIH0pKClcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9zdGFydFByb21pc2VcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5fcmVwb3J0RnJhbWV3b3JrRXJyb3Ioe2Vycm9yLCBzdGFnZTogXCJsb2NhbC1iYWNrZ3JvdW5kLWpvYnMtc3RhcnRcIn0pXG4gICAgICB0aHJvdyBlcnJvclxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9zdGFydFByb21pc2UgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvYWxlc2NlcyBhIGRpc3BhdGNoZXIgd2FrZSBvbnRvIG9uZSB0cmFja2VkIG1pY3JvdGFzay5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgd2FrZSgpIHtcbiAgICBpZiAoIXRoaXMuX2FjY2VwdGluZykgcmV0dXJuXG5cbiAgICBpZiAodGhpcy5fZHJhaW5Qcm9taXNlIHx8IHRoaXMuX3dha2VRdWV1ZWQpIHtcbiAgICAgIHRoaXMuX3JlZHJhaW4gPSB0cnVlXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICB0aGlzLl93YWtlUXVldWVkID0gdHJ1ZVxuICAgIGNvbnN0IGRyYWluID0gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLl93YWtlUXVldWVkID0gZmFsc2VcbiAgICAgIGF3YWl0IHRoaXMuX2RyYWluKClcbiAgICB9KVxuICAgIGNvbnN0IGRyYWluUHJvbWlzZSA9IGRyYWluXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMuX3JlcG9ydEZyYW1ld29ya0Vycm9yKHtlcnJvciwgc3RhZ2U6IFwibG9jYWwtYmFja2dyb3VuZC1qb2JzLWRyYWluXCJ9KVxuICAgICAgICB0aGlzLl9hcm1SZWNvdmVyeVRpbWVyKClcbiAgICAgIH0pXG4gICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl9kcmFpblByb21pc2UgPT09IGRyYWluUHJvbWlzZSkgdGhpcy5fZHJhaW5Qcm9taXNlID0gbnVsbFxuXG4gICAgICAgIGlmICh0aGlzLl9yZWRyYWluICYmIHRoaXMuX2FjY2VwdGluZykge1xuICAgICAgICAgIHRoaXMuX3JlZHJhaW4gPSBmYWxzZVxuICAgICAgICAgIHRoaXMud2FrZSgpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcmVzb2x2ZUlkbGVXYWl0ZXJzKClcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgIHRoaXMuX2RyYWluUHJvbWlzZSA9IGRyYWluUHJvbWlzZVxuICB9XG5cbiAgLyoqXG4gICAqIEZpbGxzIGxvY2FsIGNhcGFjaXR5IHdpdGggc2hvcnQgZHVyYWJsZSBjbGFpbXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIG9uZSBzdGFibGUgZHJhaW4gcGFzcy5cbiAgICovXG4gIGFzeW5jIF9kcmFpbigpIHtcbiAgICBhd2FpdCB0aGlzLl9yZXRyeVBlbmRpbmdBY2tub3dsZWRnZW1lbnRzKClcblxuICAgIHdoaWxlICh0aGlzLl9hY2NlcHRpbmcgJiYgdGhpcy5fb3duZWRQZXJmb3JtYW5jZUNvdW50KCkgPCB0aGlzLl9tYXhDb25jdXJyZW50Sm9icygpKSB7XG4gICAgICBjb25zdCBqb2IgPSBhd2FpdCB0aGlzLnN0b3JlLm5leHRBdmFpbGFibGVKb2IoKVxuXG4gICAgICBpZiAoIWpvYikgYnJlYWtcblxuICAgICAgY29uc3QgaGFuZG9mZiA9IGF3YWl0IHRoaXMuc3RvcmUubWFya0hhbmRlZE9mZih7am9iSWQ6IGpvYi5pZH0pXG5cbiAgICAgIGlmICghaGFuZG9mZikge1xuICAgICAgICB0aGlzLl9yZWRyYWluID0gdHJ1ZVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICB0aGlzLl9zdGFydFBlcmZvcm1hbmNlKHtoYW5kb2ZmLCBqb2J9KVxuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuX2FybVNjaGVkdWxlZFRpbWVyKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIG9uZSBjbGFpbWVkIHBlcmZvcm1hbmNlIHdpdGhvdXQgcmV0YWluaW5nIGl0cyBjbGFpbSB0cmFuc2FjdGlvbiBjb25uZWN0aW9uLlxuICAgKiBAcGFyYW0ge3toYW5kb2ZmOiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JIYW5kb2ZmLCBqb2I6IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvd319IGFyZ3MgLSBDbGFpbWVkIGpvYi5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgX3N0YXJ0UGVyZm9ybWFuY2Uoe2hhbmRvZmYsIGpvYn0pIHtcbiAgICBjb25zdCBwZXJmb3JtYW5jZSA9IHRoaXMuX3BlcmZvcm0oe2hhbmRvZmYsIGpvYn0pXG5cbiAgICB0aGlzLl9pbkZsaWdodC5hZGQocGVyZm9ybWFuY2UpXG4gICAgdm9pZCBwZXJmb3JtYW5jZVxuICAgICAgLmNhdGNoKChlcnJvcikgPT4gdGhpcy5fcmVwb3J0RnJhbWV3b3JrRXJyb3Ioe2Vycm9yLCBzdGFnZTogXCJsb2NhbC1iYWNrZ3JvdW5kLWpvYnMtcGVyZm9ybWFuY2VcIn0pKVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICB0aGlzLl9pbkZsaWdodC5kZWxldGUocGVyZm9ybWFuY2UpXG4gICAgICAgIGlmICh0aGlzLl9hY2NlcHRpbmcpIHRoaXMud2FrZSgpXG4gICAgICAgIHRoaXMuX3Jlc29sdmVJZGxlV2FpdGVycygpXG4gICAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIGFuZCBhY2tub3dsZWRnZXMgb25lIGR1cmFibGUgaGFuZG9mZi5cbiAgICogQHBhcmFtIHt7aGFuZG9mZjogaW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iSGFuZG9mZiwgam9iOiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSb3d9fSBhcmdzIC0gQ2xhaW1lZCBqb2IuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIGFja25vd2xlZGdlbWVudC5cbiAgICovXG4gIGFzeW5jIF9wZXJmb3JtKHtoYW5kb2ZmLCBqb2J9KSB7XG4gICAgLyoqIEB0eXBlIHtMb2NhbEJhY2tncm91bmRKb2JBY2tub3dsZWRnZW1lbnR9ICovXG4gICAgbGV0IGFja25vd2xlZGdlbWVudCA9IHt0eXBlOiBcImNvbXBsZXRlZFwifVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IEpvYkNsYXNzID0gdGhpcy5yZWdpc3RyeS5yZXNvbHZlKGpvYi5qb2JOYW1lKVxuXG4gICAgICBhd2FpdCBwZXJmb3JtQmFja2dyb3VuZEpvYih7XG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuY29uZmlndXJhdGlvbixcbiAgICAgICAgSm9iQ2xhc3MsXG4gICAgICAgIGpvYkFyZ3M6IGpvYi5hcmdzLFxuICAgICAgICBuYW1lOiBgTG9jYWwgYmFja2dyb3VuZCBqb2I6ICR7am9iLmpvYk5hbWV9YFxuICAgICAgfSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgQmFja2dyb3VuZEpvYlJlc2NoZWR1bGVTaWduYWwpIHtcbiAgICAgICAgYWNrbm93bGVkZ2VtZW50ID0ge2RlbGF5TXM6IGVycm9yLmRlbGF5TXMsIHR5cGU6IFwicmVzY2hlZHVsZWRcIn1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFja25vd2xlZGdlbWVudCA9IHtlcnJvciwgdHlwZTogXCJmYWlsZWRcIn1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fYWNrbm93bGVkZ2Uoe2Fja25vd2xlZGdlbWVudCwgaGFuZG9mZiwgam9ifSlcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5fcGVuZGluZ0Fja25vd2xlZGdlbWVudHMuc2V0KGpvYi5pZCwge2Fja25vd2xlZGdlbWVudCwgaGFuZG9mZiwgam9ifSlcbiAgICAgIHRoaXMuX3JlcG9ydEFja25vd2xlZGdlbWVudEVycm9yKHthY2tub3dsZWRnZW1lbnQsIGVycm9yLCBoYW5kb2ZmLCBqb2J9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIG9uZSBmZW5jZWQgZHVyYWJsZSBhY2tub3dsZWRnZW1lbnQuXG4gICAqIEBwYXJhbSB7UGVuZGluZ0xvY2FsQmFja2dyb3VuZEpvYkFja25vd2xlZGdlbWVudH0gYXJncyAtIE93bmVkIGFja25vd2xlZGdlbWVudC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgdGhlIGR1cmFibGUgdHJhbnNpdGlvbiBpcyBzZXR0bGVkLlxuICAgKi9cbiAgYXN5bmMgX2Fja25vd2xlZGdlKHthY2tub3dsZWRnZW1lbnQsIGhhbmRvZmYsIGpvYn0pIHtcbiAgICBpZiAoYWNrbm93bGVkZ2VtZW50LnR5cGUgPT09IFwicmVzY2hlZHVsZWRcIikge1xuICAgICAgYXdhaXQgdGhpcy5zdG9yZS5tYXJrUmVzY2hlZHVsZWQoe2RlbGF5TXM6IGFja25vd2xlZGdlbWVudC5kZWxheU1zLCBoYW5kb2ZmSWQ6IGhhbmRvZmYuaGFuZG9mZklkLCBqb2JJZDogam9iLmlkfSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChhY2tub3dsZWRnZW1lbnQudHlwZSA9PT0gXCJmYWlsZWRcIikge1xuICAgICAgY29uc3QgdXBkYXRlZEpvYiA9IGF3YWl0IHRoaXMuc3RvcmUubWFya0ZhaWxlZCh7ZXJyb3I6IGFja25vd2xlZGdlbWVudC5lcnJvciwgaGFuZG9mZklkOiBoYW5kb2ZmLmhhbmRvZmZJZCwgam9iSWQ6IGpvYi5pZH0pXG5cbiAgICAgIGlmICh1cGRhdGVkSm9iKSB0aGlzLl9lbWl0QmFja2dyb3VuZEpvYkZhaWxlZCh7ZXJyb3I6IGFja25vd2xlZGdlbWVudC5lcnJvciwgam9iOiB1cGRhdGVkSm9ifSlcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGF3YWl0IHRoaXMuc3RvcmUubWFya0NvbXBsZXRlZCh7aGFuZG9mZklkOiBoYW5kb2ZmLmhhbmRvZmZJZCwgam9iSWQ6IGpvYi5pZH0pXG4gIH1cblxuICAvKipcbiAgICogUmVwbGF5cyBlYWNoIHJldGFpbmVkIGFja25vd2xlZGdlbWVudCBvbmNlIGF0IGFuIGV2ZW50LWRyaXZlbiB3YWtlIGJvdW5kYXJ5LlxuICAgKiBAcGFyYW0ge3t0aHJvd09uRXJyb3I/OiBib29sZWFufX0gW2FyZ3NdIC0gUmVjb3ZlcnkgYmVoYXZpb3IuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIG9uZSBib3VuZGVkIHJlY292ZXJ5IHBhc3MuXG4gICAqL1xuICBhc3luYyBfcmV0cnlQZW5kaW5nQWNrbm93bGVkZ2VtZW50cyh7dGhyb3dPbkVycm9yID0gZmFsc2V9ID0ge30pIHtcbiAgICBmb3IgKGNvbnN0IFtqb2JJZCwgcGVuZGluZ0Fja25vd2xlZGdlbWVudF0gb2YgWy4uLnRoaXMuX3BlbmRpbmdBY2tub3dsZWRnZW1lbnRzXSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fYWNrbm93bGVkZ2UocGVuZGluZ0Fja25vd2xlZGdlbWVudClcbiAgICAgICAgdGhpcy5fcGVuZGluZ0Fja25vd2xlZGdlbWVudHMuZGVsZXRlKGpvYklkKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5fcmVwb3J0QWNrbm93bGVkZ2VtZW50RXJyb3Ioey4uLnBlbmRpbmdBY2tub3dsZWRnZW1lbnQsIGVycm9yfSlcbiAgICAgICAgaWYgKHRocm93T25FcnJvcikgdGhyb3cgZXJyb3JcbiAgICAgICAgdGhpcy5fYXJtUmVjb3ZlcnlUaW1lcigpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFybXMgdGhlIGV4YWN0IG5leHQgZnV0dXJlIGpvYiB0aW1lciwgY2h1bmtpbmcgcGxhdGZvcm0tc2l6ZWQgZGVsYXlzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciB0aW1lciByZWNvbmNpbGlhdGlvbi5cbiAgICovXG4gIGFzeW5jIF9hcm1TY2hlZHVsZWRUaW1lcigpIHtcbiAgICBpZiAodGhpcy5fc2NoZWR1bGVkVGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jbG9jay5jbGVhclRpbWVvdXQodGhpcy5fc2NoZWR1bGVkVGltZXIpXG4gICAgICB0aGlzLl9zY2hlZHVsZWRUaW1lciA9IHVuZGVmaW5lZFxuICAgIH1cbiAgICBpZiAoIXRoaXMuX2FjY2VwdGluZykgcmV0dXJuXG5cbiAgICBjb25zdCBuZXh0Sm9iID0gYXdhaXQgdGhpcy5zdG9yZS5uZXh0U2NoZWR1bGVkSm9iKClcblxuICAgIGlmICghbmV4dEpvYiB8fCBuZXh0Sm9iLnNjaGVkdWxlZEF0TXMgPT09IG51bGwpIHJldHVyblxuXG4gICAgY29uc3QgZGVsYXlNcyA9IE1hdGgubWF4KDAsIE1hdGgubWluKG5leHRKb2Iuc2NoZWR1bGVkQXRNcyAtIHRoaXMuY2xvY2subm93KCksIE1BWF9USU1FUl9NUykpXG5cbiAgICB0aGlzLl9zY2hlZHVsZWRUaW1lciA9IHRoaXMuY2xvY2suc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9zY2hlZHVsZWRUaW1lciA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy53YWtlKClcbiAgICB9LCBkZWxheU1zKVxuICB9XG5cbiAgLyoqXG4gICAqIEFybXMgb25lIGJvdW5kZWQgcmV0cnkgYWZ0ZXIgYW4gdW5leHBlY3RlZCBkcmFpbiBmYWlsdXJlLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBfYXJtUmVjb3ZlcnlUaW1lcigpIHtcbiAgICBpZiAoIXRoaXMuX2FjY2VwdGluZyB8fCB0aGlzLl9yZWNvdmVyeVRpbWVyICE9PSB1bmRlZmluZWQpIHJldHVyblxuXG4gICAgdGhpcy5fcmVjb3ZlcnlUaW1lciA9IHRoaXMuY2xvY2suc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLl9yZWNvdmVyeVRpbWVyID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLndha2UoKVxuICAgIH0sIEVSUk9SX1JFQ09WRVJZX0RFTEFZX01TKVxuICB9XG5cbiAgLyoqXG4gICAqIFdhaXRzIGZvciBhZG1pc3Npb24gYW5kIGV2ZXJ5IGluLWZsaWdodCBhY2tub3dsZWRnZW1lbnQgd2l0aG91dCBwb2xsaW5nLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGlkbGUuXG4gICAqL1xuICBhc3luYyB3YWl0Rm9ySWRsZSgpIHtcbiAgICBpZiAodGhpcy5faXNJZGxlKCkpIHJldHVyblxuXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHRoaXMuX2lkbGVXYWl0ZXJzLmFkZCgoKSA9PiByZXNvbHZlKHVuZGVmaW5lZCkpKVxuICB9XG5cbiAgLyoqXG4gICAqIFN0b3BzIGNsYWltcyBhbmQgd2FpdHMgZm9yIGluLWZsaWdodCBhY2tub3dsZWRnZW1lbnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIGEgZ3JhY2VmdWwgc3RvcC5cbiAgICovXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdGhpcy5fYWNjZXB0aW5nID0gZmFsc2VcbiAgICB0aGlzLl9yZWRyYWluID0gZmFsc2VcblxuICAgIGlmICh0aGlzLl9zY2hlZHVsZWRUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNsb2NrLmNsZWFyVGltZW91dCh0aGlzLl9zY2hlZHVsZWRUaW1lcilcbiAgICAgIHRoaXMuX3NjaGVkdWxlZFRpbWVyID0gdW5kZWZpbmVkXG4gICAgfVxuICAgIGlmICh0aGlzLl9yZWNvdmVyeVRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2xvY2suY2xlYXJUaW1lb3V0KHRoaXMuX3JlY292ZXJ5VGltZXIpXG4gICAgICB0aGlzLl9yZWNvdmVyeVRpbWVyID0gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2RyYWluUHJvbWlzZSkgYXdhaXQgdGhpcy5fZHJhaW5Qcm9taXNlXG4gICAgaWYgKHRoaXMuX2luRmxpZ2h0LnNpemUgPiAwKSBhd2FpdCBQcm9taXNlLmFsbChbLi4udGhpcy5faW5GbGlnaHRdKVxuICAgIGF3YWl0IHRoaXMuX3JldHJ5UGVuZGluZ0Fja25vd2xlZGdlbWVudHMoe3Rocm93T25FcnJvcjogdHJ1ZX0pXG5cbiAgICB0aGlzLl93YWtlUXVldWVkID0gZmFsc2VcbiAgICB0aGlzLl9zdGFydGVkID0gZmFsc2VcbiAgICB0aGlzLl9yZXNvbHZlSWRsZVdhaXRlcnMoKVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgd2hldGhlciBkaXNwYXRjaGVyIGFkbWlzc2lvbiBoYXMgc3RhcnRlZC5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gV2hldGhlciBkaXNwYXRjaGVyIGFkbWlzc2lvbiBoYXMgc3RhcnRlZC5cbiAgICovXG4gIGlzUmVhZHkoKSB7IHJldHVybiB0aGlzLl9zdGFydGVkICYmIHRoaXMuX2FjY2VwdGluZyB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIHRoZSBjb25maWd1cmF0aW9uLW93bmVkIGluLXByb2Nlc3MgcGVyZm9ybWFuY2UgY2FwLlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSAtIENvbmZpZ3VyYXRpb24tb3duZWQgaW4tcHJvY2VzcyBwZXJmb3JtYW5jZSBjYXAuXG4gICAqL1xuICBfbWF4Q29uY3VycmVudEpvYnMoKSB7IHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0QmFja2dyb3VuZEpvYnNDb25maWcoKS5tYXhDb25jdXJyZW50SW5saW5lSm9icyB9XG5cbiAgLyoqXG4gICAqIENvdW50cyBwZXJmb3JtYW5jZXMgd2hvc2UgZHVyYWJsZSBhY2tub3dsZWRnZW1lbnQgaXMgc3RpbGwgb3duZWQgbG9jYWxseS5cbiAgICogQHJldHVybnMge251bWJlcn0gLSBBY3RpdmUgb3IgcGVuZGluZy1hY2tub3dsZWRnZW1lbnQgcGVyZm9ybWFuY2VzLlxuICAgKi9cbiAgX293bmVkUGVyZm9ybWFuY2VDb3VudCgpIHsgcmV0dXJuIHRoaXMuX2luRmxpZ2h0LnNpemUgKyB0aGlzLl9wZW5kaW5nQWNrbm93bGVkZ2VtZW50cy5zaXplIH1cblxuICAvKipcbiAgICogUmVwb3J0cyB3aGV0aGVyIG5vIGFkbWlzc2lvbiBvciBhY2tub3dsZWRnZW1lbnQgd29yayByZW1haW5zLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIHRoZSBkaXNwYXRjaGVyIGlzIGlkbGUuXG4gICAqL1xuICBfaXNJZGxlKCkge1xuICAgIHJldHVybiAhdGhpcy5fd2FrZVF1ZXVlZCAmJiAhdGhpcy5fZHJhaW5Qcm9taXNlICYmIHRoaXMuX2luRmxpZ2h0LnNpemUgPT09IDAgJiYgdGhpcy5fcGVuZGluZ0Fja25vd2xlZGdlbWVudHMuc2l6ZSA9PT0gMFxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIGV2ZW50LWJhc2VkIGlkbGUgd2FpdGVycyBhdCBhIHN0YWJsZSBpZGxlIGJvdW5kYXJ5LlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBfcmVzb2x2ZUlkbGVXYWl0ZXJzKCkge1xuICAgIGlmICghdGhpcy5faXNJZGxlKCkpIHJldHVyblxuXG4gICAgY29uc3Qgd2FpdGVycyA9IFsuLi50aGlzLl9pZGxlV2FpdGVyc11cblxuICAgIHRoaXMuX2lkbGVXYWl0ZXJzLmNsZWFyKClcbiAgICBmb3IgKGNvbnN0IHJlc29sdmUgb2Ygd2FpdGVycykgcmVzb2x2ZSgpXG4gIH1cblxuICAvKipcbiAgICogRW1pdHMgYW4gZXhwZWN0ZWQgam9iIGZhaWx1cmUgdGhyb3VnaCB0aGUgc3RhbmRhcmQgam9iL2FsbC1lcnJvciBjaGFubmVscy5cbiAgICogQHBhcmFtIHt7ZXJyb3I6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+LCBqb2I6IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvd319IGFyZ3MgLSBGYWlsdXJlIHRyYW5zaXRpb24uXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIF9lbWl0QmFja2dyb3VuZEpvYkZhaWxlZCh7ZXJyb3IsIGpvYn0pIHtcbiAgICBjb25zdCBub3JtYWxpemVkRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSlcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgY29udGV4dDoge1xuICAgICAgICBhdHRlbXB0czogam9iLmF0dGVtcHRzLFxuICAgICAgICBqb2JBcmdzOiBqb2IuYXJncyxcbiAgICAgICAgam9iSWQ6IGpvYi5pZCxcbiAgICAgICAgam9iTmFtZTogam9iLmpvYk5hbWUsXG4gICAgICAgIG1heFJldHJpZXM6IGpvYi5tYXhSZXRyaWVzLFxuICAgICAgICBzdGFnZTogXCJiYWNrZ3JvdW5kLWpvYi1mYWlsZWRcIixcbiAgICAgICAgc3RhdHVzOiBqb2Iuc3RhdHVzLFxuICAgICAgICB0ZXJtaW5hbDogam9iLnN0YXR1cyA9PT0gXCJmYWlsZWRcIixcbiAgICAgICAgd2lsbFJldHJ5OiBqb2Iuc3RhdHVzID09PSBcInF1ZXVlZFwiLFxuICAgICAgICB3b3JrZXJJZDogXCJsb2NhbFwiXG4gICAgICB9LFxuICAgICAgZXJyb3I6IG5vcm1hbGl6ZWRFcnJvclxuICAgIH1cbiAgICBjb25zdCBlcnJvckV2ZW50cyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXRFcnJvckV2ZW50cygpXG5cbiAgICBlcnJvckV2ZW50cy5lbWl0KFwiYmFja2dyb3VuZC1qb2ItZmFpbGVkXCIsIHBheWxvYWQpXG4gICAgZXJyb3JFdmVudHMuZW1pdChcImFsbC1lcnJvclwiLCB7Li4ucGF5bG9hZCwgZXJyb3JUeXBlOiBcImJhY2tncm91bmQtam9iLWZhaWxlZFwifSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnRzIG9uZSBmYWlsZWQgZHVyYWJsZSBhY2tub3dsZWRnZW1lbnQgYXR0ZW1wdCB3aXRoIGl0cyBmZW5jZSBjb250ZXh0LlxuICAgKiBAcGFyYW0ge1BlbmRpbmdMb2NhbEJhY2tncm91bmRKb2JBY2tub3dsZWRnZW1lbnQgJiB7ZXJyb3I6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fX0gYXJncyAtIEZhaWxlZCBhY2tub3dsZWRnZW1lbnQuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIF9yZXBvcnRBY2tub3dsZWRnZW1lbnRFcnJvcih7YWNrbm93bGVkZ2VtZW50LCBlcnJvciwgaGFuZG9mZiwgam9ifSkge1xuICAgIHRoaXMuX3JlcG9ydEZyYW1ld29ya0Vycm9yKHtcbiAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgYWNrbm93bGVkZ2VtZW50VHlwZTogYWNrbm93bGVkZ2VtZW50LnR5cGUsXG4gICAgICAgIGhhbmRvZmZJZDogaGFuZG9mZi5oYW5kb2ZmSWQsXG4gICAgICAgIGpvYklkOiBqb2IuaWQsXG4gICAgICAgIGpvYk5hbWU6IGpvYi5qb2JOYW1lLFxuICAgICAgICB3b3JrZXJJZDogXCJsb2NhbFwiXG4gICAgICB9LFxuICAgICAgZXJyb3IsXG4gICAgICBzdGFnZTogXCJsb2NhbC1iYWNrZ3JvdW5kLWpvYnMtYWNrbm93bGVkZ2VtZW50XCJcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgYW4gdW5leHBlY3RlZCBkaXNwYXRjaGVyIGZhaWx1cmUgdGhyb3VnaCBmcmFtZXdvcmsgY2hhbm5lbHMuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gVW5leHBlY3RlZCBmYWlsdXJlLlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Pn0gW2FyZ3MuY29udGV4dF0gLSBBZGRpdGlvbmFsIGZhaWx1cmUgY29udGV4dC5cbiAgICogQHBhcmFtIHtSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0gYXJncy5lcnJvciAtIFVuZXhwZWN0ZWQgZXJyb3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLnN0YWdlIC0gRGlzcGF0Y2hlciBzdGFnZS5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgX3JlcG9ydEZyYW1ld29ya0Vycm9yKHtjb250ZXh0ID0ge30sIGVycm9yLCBzdGFnZX0pIHtcbiAgICBjb25zdCBub3JtYWxpemVkRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSlcbiAgICBjb25zdCBwYXlsb2FkID0ge2NvbnRleHQ6IHsuLi5jb250ZXh0LCBzdGFnZX0sIGVycm9yOiBub3JtYWxpemVkRXJyb3J9XG4gICAgY29uc3QgZXJyb3JFdmVudHMgPSB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0RXJyb3JFdmVudHMoKVxuXG4gICAgZXJyb3JFdmVudHMuZW1pdChcImZyYW1ld29yay1lcnJvclwiLCBwYXlsb2FkKVxuICAgIGVycm9yRXZlbnRzLmVtaXQoXCJhbGwtZXJyb3JcIiwgey4uLnBheWxvYWQsIGVycm9yVHlwZTogXCJmcmFtZXdvcmstZXJyb3JcIn0pXG4gIH1cbn1cbiJdfQ==
405
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGlzcGF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZ3JvdW5kLWpvYnMvbG9jYWwtZGlzcGF0Y2hlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyw2QkFBNkIsTUFBTSx3QkFBd0IsQ0FBQTtBQUNsRSxPQUFPLG9CQUFvQixNQUFNLGtCQUFrQixDQUFBO0FBRW5ELHlLQUF5SztBQUV6Szs7Ozs7R0FLRztBQUVILE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQTtBQUNsQyxNQUFNLHVCQUF1QixHQUFHLEtBQUssQ0FBQTtBQUVyQyxxRUFBcUU7QUFDckUsTUFBTSxDQUFDLE9BQU8sT0FBTyw2QkFBNkI7SUFDaEQ7Ozs7Ozs7T0FPRztJQUNILFlBQVksRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUE7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUE7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUE7UUFDdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUE7UUFDckIsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFBO1FBQ3pCLG1DQUFtQztRQUNuQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQTtRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtRQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQTtRQUN4QixpQ0FBaUM7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFBO1FBQzFCLG9FQUFvRTtRQUNwRSxJQUFJ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Q0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7UUFDakYsTUFBTSxPQUFPLEdBQUcsRUFBQyxPQUFPLEVBQUUsRUFBQyxHQUFHLE9BQU8sRUFBRSxLQUFLLEVBQUMsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFDLENBQUE7UUFDdEUsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUV2RCxXQUFXLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBQzVDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUMsR0FBRyxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLENBQUMsQ0FBQTtJQUMzRSxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhY2tncm91bmRKb2JSZXNjaGVkdWxlU2lnbmFsIGZyb20gXCIuL3Jlc2NoZWR1bGUtc2lnbmFsLmpzXCJcbmltcG9ydCBwZXJmb3JtQmFja2dyb3VuZEpvYiBmcm9tIFwiLi9wZXJmb3JtLWpvYi5qc1wiXG5cbi8qKiBAdHlwZWRlZiB7e3R5cGU6IFwiY29tcGxldGVkXCJ9IHwge3R5cGU6IFwiZmFpbGVkXCIsIGVycm9yOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPn0gfCB7dHlwZTogXCJyZXNjaGVkdWxlZFwiLCBkZWxheU1zOiBudW1iZXJ9fSBMb2NhbEJhY2tncm91bmRKb2JBY2tub3dsZWRnZW1lbnQgKi9cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBQZW5kaW5nTG9jYWxCYWNrZ3JvdW5kSm9iQWNrbm93bGVkZ2VtZW50XG4gKiBAcHJvcGVydHkge0xvY2FsQmFja2dyb3VuZEpvYkFja25vd2xlZGdlbWVudH0gYWNrbm93bGVkZ2VtZW50IC0gRHVyYWJsZSB0cmFuc2l0aW9uIHN0aWxsIG93bmVkIGJ5IHRoaXMgZGlzcGF0Y2hlci5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iSGFuZG9mZn0gaGFuZG9mZiAtIEZlbmNlZCBoYW5kb2ZmIGJlaW5nIGFja25vd2xlZGdlZC5cbiAqIEBwcm9wZXJ0eSB7aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUm93fSBqb2IgLSBDbGFpbWVkIGpvYiBzbmFwc2hvdC5cbiAqL1xuXG5jb25zdCBNQVhfVElNRVJfTVMgPSAyXzE0N180ODNfNjQ3XG5jb25zdCBFUlJPUl9SRUNPVkVSWV9ERUxBWV9NUyA9IDFfMDAwXG5cbi8qKiBDb25maWd1cmF0aW9uLW93bmVkLCBldmVudC1kcml2ZW4gaW4tcHJvY2VzcyBsb2NhbCBkaXNwYXRjaGVyLiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTG9jYWxCYWNrZ3JvdW5kSm9ic0Rpc3BhdGNoZXIge1xuICAvKipcbiAgICogQ3JlYXRlcyBhIGRpc3BhdGNoZXIgb3duZWQgYnkgb25lIGNvbmZpZ3VyYXRpb24gYW5kIGxvY2FsIHN0b3JlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIERpc3BhdGNoZXIgb3B0aW9ucy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIE93bmluZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4vdHlwZXMuanNcIikuTG9jYWxCYWNrZ3JvdW5kSm9ic0Nsb2NrfSBhcmdzLmNsb2NrIC0gRGlzcGF0Y2hlciBjbG9jay5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2xvY2FsLWpvYi1yZWdpc3RyeS5qc1wiKS5kZWZhdWx0fSBhcmdzLnJlZ2lzdHJ5IC0gU3RhdGljIGpvYiByZWdpc3RyeS5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuL2xvY2FsLXN0b3JlLmpzXCIpLmRlZmF1bHR9IGFyZ3Muc3RvcmUgLSBEdXJhYmxlIGxvY2FsIHN0b3JlLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGNsb2NrLCByZWdpc3RyeSwgc3RvcmV9KSB7XG4gICAgdGhpcy5jbG9jayA9IGNsb2NrXG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMucmVnaXN0cnkgPSByZWdpc3RyeVxuICAgIHRoaXMuc3RvcmUgPSBzdG9yZVxuICAgIHRoaXMuX2FjY2VwdGluZyA9IGZhbHNlXG4gICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlXG4gICAgLyoqIEB0eXBlIHtQcm9taXNlPHZvaWQ+IHwgbnVsbH0gKi9cbiAgICB0aGlzLl9zdGFydFByb21pc2UgPSBudWxsXG4gICAgLyoqIEB0eXBlIHtQcm9taXNlPHZvaWQ+IHwgbnVsbH0gKi9cbiAgICB0aGlzLl9kcmFpblByb21pc2UgPSBudWxsXG4gICAgdGhpcy5fcmVkcmFpbiA9IGZhbHNlXG4gICAgdGhpcy5fd2FrZVF1ZXVlZCA9IGZhbHNlXG4gICAgLyoqIEB0eXBlIHtTZXQ8UHJvbWlzZTx2b2lkPj59ICovXG4gICAgdGhpcy5faW5GbGlnaHQgPSBuZXcgU2V0KClcbiAgICAvKiogQHR5cGUge01hcDxzdHJpbmcsIFBlbmRpbmdMb2NhbEJhY2tncm91bmRKb2JBY2tub3dsZWRnZW1lbnQ+fSAqL1xuICAgIHRoaXMuX3BlbmRpbmdBY2tub3dsZWRnZW1lbnRzID0gbmV3IE1hcCgpXG4gICAgLyoqIEB0eXBlIHtTZXQ8KCkgPT4gdm9pZD59ICovXG4gICAgdGhpcy5faWRsZVdhaXRlcnMgPSBuZXcgU2V0KClcbiAgICAvKiogQHR5cGUge1JldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVtYmVyIHwgdW5kZWZpbmVkfSAqL1xuICAgIHRoaXMuX3NjaGVkdWxlZFRpbWVyID0gdW5kZWZpbmVkXG4gICAgLyoqIEB0eXBlIHtSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0PiB8IG51bWJlciB8IHVuZGVmaW5lZH0gKi9cbiAgICB0aGlzLl9yZWNvdmVyeVRpbWVyID0gdW5kZWZpbmVkXG4gIH1cblxuICAvKipcbiAgICogU3RhcnRzLCByZWNvdmVycywgYW5kIGNhdGNoZXMgdXAgdGhlIGxvY2FsIGRpc3BhdGNoZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIGFkbWlzc2lvbiBzdGFydHMuXG4gICAqL1xuICBhc3luYyBzdGFydCgpIHtcbiAgICBpZiAodGhpcy5fc3RhcnRlZCkgcmV0dXJuXG4gICAgaWYgKHRoaXMuX3N0YXJ0UHJvbWlzZSkgcmV0dXJuIGF3YWl0IHRoaXMuX3N0YXJ0UHJvbWlzZVxuXG4gICAgdGhpcy5fc3RhcnRQcm9taXNlID0gKGFzeW5jICgpID0+IHtcbiAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5zZXRDdXJyZW50KClcbiAgICAgIHRoaXMucmVnaXN0cnkuZW5zdXJlUmVhZHkoKVxuICAgICAgYXdhaXQgdGhpcy5jb25maWd1cmF0aW9uLmluaXRpYWxpemUoe3R5cGU6IFwibG9jYWwtYmFja2dyb3VuZC1qb2JzXCJ9KVxuICAgICAgYXdhaXQgdGhpcy5zdG9yZS5lbnN1cmVSZWFkeSgpXG4gICAgICBhd2FpdCB0aGlzLnN0b3JlLnJlY29uY2lsZVF1ZXVlQ29uY3VycmVuY3koKVxuXG4gICAgICBjb25zdCByZWNvdmVyZWRKb2JzID0gYXdhaXQgdGhpcy5zdG9yZS5yZWNvdmVySGFuZGVkT2ZmSm9icygpXG5cbiAgICAgIGZvciAoY29uc3Qgam9iIG9mIHJlY292ZXJlZEpvYnMpIHtcbiAgICAgICAgdGhpcy5fZW1pdEJhY2tncm91bmRKb2JGYWlsZWQoe1xuICAgICAgICAgIGVycm9yOiBuZXcgRXJyb3Ioam9iLmxhc3RFcnJvciB8fCBcIkxvY2FsIGJhY2tncm91bmQgam9iIHJlY292ZXJlZCBhZnRlciBhbiBpbnRlcnJ1cHRlZCBkaXNwYXRjaGVyXCIpLFxuICAgICAgICAgIGpvYlxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9hY2NlcHRpbmcgPSB0cnVlXG4gICAgICB0aGlzLl9zdGFydGVkID0gdHJ1ZVxuICAgICAgdGhpcy53YWtlKClcbiAgICB9KSgpXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fc3RhcnRQcm9taXNlXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuX3JlcG9ydEZyYW1ld29ya0Vycm9yKHtlcnJvciwgc3RhZ2U6IFwibG9jYWwtYmFja2dyb3VuZC1qb2JzLXN0YXJ0XCJ9KVxuICAgICAgdGhyb3cgZXJyb3JcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fc3RhcnRQcm9taXNlID0gbnVsbFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb2FsZXNjZXMgYSBkaXNwYXRjaGVyIHdha2Ugb250byBvbmUgdHJhY2tlZCBtaWNyb3Rhc2suXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIHdha2UoKSB7XG4gICAgaWYgKCF0aGlzLl9hY2NlcHRpbmcpIHJldHVyblxuXG4gICAgaWYgKHRoaXMuX2RyYWluUHJvbWlzZSB8fCB0aGlzLl93YWtlUXVldWVkKSB7XG4gICAgICB0aGlzLl9yZWRyYWluID0gdHJ1ZVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgdGhpcy5fd2FrZVF1ZXVlZCA9IHRydWVcbiAgICBjb25zdCBkcmFpbiA9IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgdGhpcy5fd2FrZVF1ZXVlZCA9IGZhbHNlXG4gICAgICBhd2FpdCB0aGlzLl9kcmFpbigpXG4gICAgfSlcbiAgICBjb25zdCBkcmFpblByb21pc2UgPSBkcmFpblxuICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB0aGlzLl9yZXBvcnRGcmFtZXdvcmtFcnJvcih7ZXJyb3IsIHN0YWdlOiBcImxvY2FsLWJhY2tncm91bmQtam9icy1kcmFpblwifSlcbiAgICAgICAgdGhpcy5fYXJtUmVjb3ZlcnlUaW1lcigpXG4gICAgICB9KVxuICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5fZHJhaW5Qcm9taXNlID09PSBkcmFpblByb21pc2UpIHRoaXMuX2RyYWluUHJvbWlzZSA9IG51bGxcblxuICAgICAgICBpZiAodGhpcy5fcmVkcmFpbiAmJiB0aGlzLl9hY2NlcHRpbmcpIHtcbiAgICAgICAgICB0aGlzLl9yZWRyYWluID0gZmFsc2VcbiAgICAgICAgICB0aGlzLndha2UoKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuX3Jlc29sdmVJZGxlV2FpdGVycygpXG4gICAgICAgIH1cbiAgICAgIH0pXG5cbiAgICB0aGlzLl9kcmFpblByb21pc2UgPSBkcmFpblByb21pc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWxscyBsb2NhbCBjYXBhY2l0eSB3aXRoIHNob3J0IGR1cmFibGUgY2xhaW1zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciBvbmUgc3RhYmxlIGRyYWluIHBhc3MuXG4gICAqL1xuICBhc3luYyBfZHJhaW4oKSB7XG4gICAgYXdhaXQgdGhpcy5fcmV0cnlQZW5kaW5nQWNrbm93bGVkZ2VtZW50cygpXG5cbiAgICB3aGlsZSAodGhpcy5fYWNjZXB0aW5nICYmIHRoaXMuX293bmVkUGVyZm9ybWFuY2VDb3VudCgpIDwgdGhpcy5fbWF4Q29uY3VycmVudEpvYnMoKSkge1xuICAgICAgY29uc3Qgam9iID0gYXdhaXQgdGhpcy5zdG9yZS5uZXh0QXZhaWxhYmxlSm9iKClcblxuICAgICAgaWYgKCFqb2IpIGJyZWFrXG5cbiAgICAgIGNvbnN0IGhhbmRvZmYgPSBhd2FpdCB0aGlzLnN0b3JlLm1hcmtIYW5kZWRPZmYoe2pvYklkOiBqb2IuaWR9KVxuXG4gICAgICBpZiAoIWhhbmRvZmYpIHtcbiAgICAgICAgdGhpcy5fcmVkcmFpbiA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fc3RhcnRQZXJmb3JtYW5jZSh7aGFuZG9mZiwgam9ifSlcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLl9hcm1TY2hlZHVsZWRUaW1lcigpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBvbmUgY2xhaW1lZCBwZXJmb3JtYW5jZSB3aXRob3V0IHJldGFpbmluZyBpdHMgY2xhaW0gdHJhbnNhY3Rpb24gY29ubmVjdGlvbi5cbiAgICogQHBhcmFtIHt7aGFuZG9mZjogaW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iSGFuZG9mZiwgam9iOiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSb3d9fSBhcmdzIC0gQ2xhaW1lZCBqb2IuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIF9zdGFydFBlcmZvcm1hbmNlKHtoYW5kb2ZmLCBqb2J9KSB7XG4gICAgY29uc3QgcGVyZm9ybWFuY2UgPSB0aGlzLl9wZXJmb3JtKHtoYW5kb2ZmLCBqb2J9KVxuXG4gICAgdGhpcy5faW5GbGlnaHQuYWRkKHBlcmZvcm1hbmNlKVxuICAgIHZvaWQgcGVyZm9ybWFuY2VcbiAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHRoaXMuX3JlcG9ydEZyYW1ld29ya0Vycm9yKHtlcnJvciwgc3RhZ2U6IFwibG9jYWwtYmFja2dyb3VuZC1qb2JzLXBlcmZvcm1hbmNlXCJ9KSlcbiAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgdGhpcy5faW5GbGlnaHQuZGVsZXRlKHBlcmZvcm1hbmNlKVxuICAgICAgICBpZiAodGhpcy5fYWNjZXB0aW5nKSB0aGlzLndha2UoKVxuICAgICAgICB0aGlzLl9yZXNvbHZlSWRsZVdhaXRlcnMoKVxuICAgICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhbmQgYWNrbm93bGVkZ2VzIG9uZSBkdXJhYmxlIGhhbmRvZmYuXG4gICAqIEBwYXJhbSB7e2hhbmRvZmY6IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYkhhbmRvZmYsIGpvYjogaW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUm93fX0gYXJncyAtIENsYWltZWQgam9iLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciBhY2tub3dsZWRnZW1lbnQuXG4gICAqL1xuICBhc3luYyBfcGVyZm9ybSh7aGFuZG9mZiwgam9ifSkge1xuICAgIC8qKiBAdHlwZSB7TG9jYWxCYWNrZ3JvdW5kSm9iQWNrbm93bGVkZ2VtZW50fSAqL1xuICAgIGxldCBhY2tub3dsZWRnZW1lbnQgPSB7dHlwZTogXCJjb21wbGV0ZWRcIn1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBKb2JDbGFzcyA9IHRoaXMucmVnaXN0cnkucmVzb2x2ZShqb2Iuam9iTmFtZSlcblxuICAgICAgYXdhaXQgcGVyZm9ybUJhY2tncm91bmRKb2Ioe1xuICAgICAgICBjb25maWd1cmF0aW9uOiB0aGlzLmNvbmZpZ3VyYXRpb24sXG4gICAgICAgIEpvYkNsYXNzLFxuICAgICAgICBqb2JBcmdzOiBqb2IuYXJncyxcbiAgICAgICAgam9iT3B0aW9uczoge1xuICAgICAgICAgIGNvbmN1cnJlbmN5S2V5OiBqb2IuY29uY3VycmVuY3lLZXkgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGV4ZWN1dGlvbk1vZGU6IGpvYi5leGVjdXRpb25Nb2RlLFxuICAgICAgICAgIG1heENvbmN1cnJlbmN5OiBqb2IubWF4Q29uY3VycmVuY3kgPz8gdW5kZWZpbmVkLFxuICAgICAgICAgIG1heFJldHJpZXM6IGpvYi5tYXhSZXRyaWVzID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICBxdWV1ZTogam9iLnF1ZXVlLFxuICAgICAgICAgIHNjaGVkdWxlZEF0TXM6IGpvYi5zY2hlZHVsZWRBdE1zID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICB0aW1lb3V0TXM6IGpvYi50aW1lb3V0TXMgPz8gdW5kZWZpbmVkXG4gICAgICAgIH0sXG4gICAgICAgIG5hbWU6IGBMb2NhbCBiYWNrZ3JvdW5kIGpvYjogJHtqb2Iuam9iTmFtZX1gLFxuICAgICAgICBwYXlsb2FkOiB7XG4gICAgICAgICAgYXJnczogam9iLmFyZ3MsXG4gICAgICAgICAgaGFuZGVkT2ZmQXRNczogaGFuZG9mZi5oYW5kZWRPZmZBdE1zLFxuICAgICAgICAgIGhhbmRvZmZJZDogaGFuZG9mZi5oYW5kb2ZmSWQsXG4gICAgICAgICAgaWQ6IGpvYi5pZCxcbiAgICAgICAgICBqb2JOYW1lOiBqb2Iuam9iTmFtZSxcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBjb25jdXJyZW5jeUtleTogam9iLmNvbmN1cnJlbmN5S2V5IHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGV4ZWN1dGlvbk1vZGU6IGpvYi5leGVjdXRpb25Nb2RlLFxuICAgICAgICAgICAgbWF4Q29uY3VycmVuY3k6IGpvYi5tYXhDb25jdXJyZW5jeSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBxdWV1ZTogam9iLnF1ZXVlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBCYWNrZ3JvdW5kSm9iUmVzY2hlZHVsZVNpZ25hbCkge1xuICAgICAgICBhY2tub3dsZWRnZW1lbnQgPSB7ZGVsYXlNczogZXJyb3IuZGVsYXlNcywgdHlwZTogXCJyZXNjaGVkdWxlZFwifVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWNrbm93bGVkZ2VtZW50ID0ge2Vycm9yLCB0eXBlOiBcImZhaWxlZFwifVxuICAgICAgfVxuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLl9hY2tub3dsZWRnZSh7YWNrbm93bGVkZ2VtZW50LCBoYW5kb2ZmLCBqb2J9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLl9wZW5kaW5nQWNrbm93bGVkZ2VtZW50cy5zZXQoam9iLmlkLCB7YWNrbm93bGVkZ2VtZW50LCBoYW5kb2ZmLCBqb2J9KVxuICAgICAgdGhpcy5fcmVwb3J0QWNrbm93bGVkZ2VtZW50RXJyb3Ioe2Fja25vd2xlZGdlbWVudCwgZXJyb3IsIGhhbmRvZmYsIGpvYn0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgb25lIGZlbmNlZCBkdXJhYmxlIGFja25vd2xlZGdlbWVudC5cbiAgICogQHBhcmFtIHtQZW5kaW5nTG9jYWxCYWNrZ3JvdW5kSm9iQWNrbm93bGVkZ2VtZW50fSBhcmdzIC0gT3duZWQgYWNrbm93bGVkZ2VtZW50LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciB0aGUgZHVyYWJsZSB0cmFuc2l0aW9uIGlzIHNldHRsZWQuXG4gICAqL1xuICBhc3luYyBfYWNrbm93bGVkZ2Uoe2Fja25vd2xlZGdlbWVudCwgaGFuZG9mZiwgam9ifSkge1xuICAgIGlmIChhY2tub3dsZWRnZW1lbnQudHlwZSA9PT0gXCJyZXNjaGVkdWxlZFwiKSB7XG4gICAgICBhd2FpdCB0aGlzLnN0b3JlLm1hcmtSZXNjaGVkdWxlZCh7ZGVsYXlNczogYWNrbm93bGVkZ2VtZW50LmRlbGF5TXMsIGhhbmRvZmZJZDogaGFuZG9mZi5oYW5kb2ZmSWQsIGpvYklkOiBqb2IuaWR9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGFja25vd2xlZGdlbWVudC50eXBlID09PSBcImZhaWxlZFwiKSB7XG4gICAgICBjb25zdCB1cGRhdGVkSm9iID0gYXdhaXQgdGhpcy5zdG9yZS5tYXJrRmFpbGVkKHtlcnJvcjogYWNrbm93bGVkZ2VtZW50LmVycm9yLCBoYW5kb2ZmSWQ6IGhhbmRvZmYuaGFuZG9mZklkLCBqb2JJZDogam9iLmlkfSlcblxuICAgICAgaWYgKHVwZGF0ZWRKb2IpIHRoaXMuX2VtaXRCYWNrZ3JvdW5kSm9iRmFpbGVkKHtlcnJvcjogYWNrbm93bGVkZ2VtZW50LmVycm9yLCBqb2I6IHVwZGF0ZWRKb2J9KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5zdG9yZS5tYXJrQ29tcGxldGVkKHtoYW5kb2ZmSWQ6IGhhbmRvZmYuaGFuZG9mZklkLCBqb2JJZDogam9iLmlkfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYXlzIGVhY2ggcmV0YWluZWQgYWNrbm93bGVkZ2VtZW50IG9uY2UgYXQgYW4gZXZlbnQtZHJpdmVuIHdha2UgYm91bmRhcnkuXG4gICAqIEBwYXJhbSB7e3Rocm93T25FcnJvcj86IGJvb2xlYW59fSBbYXJnc10gLSBSZWNvdmVyeSBiZWhhdmlvci5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgb25lIGJvdW5kZWQgcmVjb3ZlcnkgcGFzcy5cbiAgICovXG4gIGFzeW5jIF9yZXRyeVBlbmRpbmdBY2tub3dsZWRnZW1lbnRzKHt0aHJvd09uRXJyb3IgPSBmYWxzZX0gPSB7fSkge1xuICAgIGZvciAoY29uc3QgW2pvYklkLCBwZW5kaW5nQWNrbm93bGVkZ2VtZW50XSBvZiBbLi4udGhpcy5fcGVuZGluZ0Fja25vd2xlZGdlbWVudHNdKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLl9hY2tub3dsZWRnZShwZW5kaW5nQWNrbm93bGVkZ2VtZW50KVxuICAgICAgICB0aGlzLl9wZW5kaW5nQWNrbm93bGVkZ2VtZW50cy5kZWxldGUoam9iSWQpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aGlzLl9yZXBvcnRBY2tub3dsZWRnZW1lbnRFcnJvcih7Li4ucGVuZGluZ0Fja25vd2xlZGdlbWVudCwgZXJyb3J9KVxuICAgICAgICBpZiAodGhyb3dPbkVycm9yKSB0aHJvdyBlcnJvclxuICAgICAgICB0aGlzLl9hcm1SZWNvdmVyeVRpbWVyKClcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXJtcyB0aGUgZXhhY3QgbmV4dCBmdXR1cmUgam9iIHRpbWVyLCBjaHVua2luZyBwbGF0Zm9ybS1zaXplZCBkZWxheXMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIHRpbWVyIHJlY29uY2lsaWF0aW9uLlxuICAgKi9cbiAgYXN5bmMgX2FybVNjaGVkdWxlZFRpbWVyKCkge1xuICAgIGlmICh0aGlzLl9zY2hlZHVsZWRUaW1lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNsb2NrLmNsZWFyVGltZW91dCh0aGlzLl9zY2hlZHVsZWRUaW1lcilcbiAgICAgIHRoaXMuX3NjaGVkdWxlZFRpbWVyID0gdW5kZWZpbmVkXG4gICAgfVxuICAgIGlmICghdGhpcy5fYWNjZXB0aW5nKSByZXR1cm5cblxuICAgIGNvbnN0IG5leHRKb2IgPSBhd2FpdCB0aGlzLnN0b3JlLm5leHRTY2hlZHVsZWRKb2IoKVxuXG4gICAgaWYgKCFuZXh0Sm9iIHx8IG5leHRKb2Iuc2NoZWR1bGVkQXRNcyA9PT0gbnVsbCkgcmV0dXJuXG5cbiAgICBjb25zdCBkZWxheU1zID0gTWF0aC5tYXgoMCwgTWF0aC5taW4obmV4dEpvYi5zY2hlZHVsZWRBdE1zIC0gdGhpcy5jbG9jay5ub3coKSwgTUFYX1RJTUVSX01TKSlcblxuICAgIHRoaXMuX3NjaGVkdWxlZFRpbWVyID0gdGhpcy5jbG9jay5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3NjaGVkdWxlZFRpbWVyID0gdW5kZWZpbmVkXG4gICAgICB0aGlzLndha2UoKVxuICAgIH0sIGRlbGF5TXMpXG4gIH1cblxuICAvKipcbiAgICogQXJtcyBvbmUgYm91bmRlZCByZXRyeSBhZnRlciBhbiB1bmV4cGVjdGVkIGRyYWluIGZhaWx1cmUuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIF9hcm1SZWNvdmVyeVRpbWVyKCkge1xuICAgIGlmICghdGhpcy5fYWNjZXB0aW5nIHx8IHRoaXMuX3JlY292ZXJ5VGltZXIgIT09IHVuZGVmaW5lZCkgcmV0dXJuXG5cbiAgICB0aGlzLl9yZWNvdmVyeVRpbWVyID0gdGhpcy5jbG9jay5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuX3JlY292ZXJ5VGltZXIgPSB1bmRlZmluZWRcbiAgICAgIHRoaXMud2FrZSgpXG4gICAgfSwgRVJST1JfUkVDT1ZFUllfREVMQVlfTVMpXG4gIH1cblxuICAvKipcbiAgICogV2FpdHMgZm9yIGFkbWlzc2lvbiBhbmQgZXZlcnkgaW4tZmxpZ2h0IGFja25vd2xlZGdlbWVudCB3aXRob3V0IHBvbGxpbmcuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gaWRsZS5cbiAgICovXG4gIGFzeW5jIHdhaXRGb3JJZGxlKCkge1xuICAgIGlmICh0aGlzLl9pc0lkbGUoKSkgcmV0dXJuXG5cbiAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gdGhpcy5faWRsZVdhaXRlcnMuYWRkKCgpID0+IHJlc29sdmUodW5kZWZpbmVkKSkpXG4gIH1cblxuICAvKipcbiAgICogU3RvcHMgY2xhaW1zIGFuZCB3YWl0cyBmb3IgaW4tZmxpZ2h0IGFja25vd2xlZGdlbWVudC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgYSBncmFjZWZ1bCBzdG9wLlxuICAgKi9cbiAgYXN5bmMgc3RvcCgpIHtcbiAgICB0aGlzLl9hY2NlcHRpbmcgPSBmYWxzZVxuICAgIHRoaXMuX3JlZHJhaW4gPSBmYWxzZVxuXG4gICAgaWYgKHRoaXMuX3NjaGVkdWxlZFRpbWVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuY2xvY2suY2xlYXJUaW1lb3V0KHRoaXMuX3NjaGVkdWxlZFRpbWVyKVxuICAgICAgdGhpcy5fc2NoZWR1bGVkVGltZXIgPSB1bmRlZmluZWRcbiAgICB9XG4gICAgaWYgKHRoaXMuX3JlY292ZXJ5VGltZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5jbG9jay5jbGVhclRpbWVvdXQodGhpcy5fcmVjb3ZlcnlUaW1lcilcbiAgICAgIHRoaXMuX3JlY292ZXJ5VGltZXIgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fZHJhaW5Qcm9taXNlKSBhd2FpdCB0aGlzLl9kcmFpblByb21pc2VcbiAgICBpZiAodGhpcy5faW5GbGlnaHQuc2l6ZSA+IDApIGF3YWl0IFByb21pc2UuYWxsKFsuLi50aGlzLl9pbkZsaWdodF0pXG4gICAgYXdhaXQgdGhpcy5fcmV0cnlQZW5kaW5nQWNrbm93bGVkZ2VtZW50cyh7dGhyb3dPbkVycm9yOiB0cnVlfSlcblxuICAgIHRoaXMuX3dha2VRdWV1ZWQgPSBmYWxzZVxuICAgIHRoaXMuX3N0YXJ0ZWQgPSBmYWxzZVxuICAgIHRoaXMuX3Jlc29sdmVJZGxlV2FpdGVycygpXG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0cyB3aGV0aGVyIGRpc3BhdGNoZXIgYWRtaXNzaW9uIGhhcyBzdGFydGVkLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBXaGV0aGVyIGRpc3BhdGNoZXIgYWRtaXNzaW9uIGhhcyBzdGFydGVkLlxuICAgKi9cbiAgaXNSZWFkeSgpIHsgcmV0dXJuIHRoaXMuX3N0YXJ0ZWQgJiYgdGhpcy5fYWNjZXB0aW5nIH1cblxuICAvKipcbiAgICogUmVhZHMgdGhlIGNvbmZpZ3VyYXRpb24tb3duZWQgaW4tcHJvY2VzcyBwZXJmb3JtYW5jZSBjYXAuXG4gICAqIEByZXR1cm5zIHtudW1iZXJ9IC0gQ29uZmlndXJhdGlvbi1vd25lZCBpbi1wcm9jZXNzIHBlcmZvcm1hbmNlIGNhcC5cbiAgICovXG4gIF9tYXhDb25jdXJyZW50Sm9icygpIHsgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5nZXRCYWNrZ3JvdW5kSm9ic0NvbmZpZygpLm1heENvbmN1cnJlbnRJbmxpbmVKb2JzIH1cblxuICAvKipcbiAgICogQ291bnRzIHBlcmZvcm1hbmNlcyB3aG9zZSBkdXJhYmxlIGFja25vd2xlZGdlbWVudCBpcyBzdGlsbCBvd25lZCBsb2NhbGx5LlxuICAgKiBAcmV0dXJucyB7bnVtYmVyfSAtIEFjdGl2ZSBvciBwZW5kaW5nLWFja25vd2xlZGdlbWVudCBwZXJmb3JtYW5jZXMuXG4gICAqL1xuICBfb3duZWRQZXJmb3JtYW5jZUNvdW50KCkgeyByZXR1cm4gdGhpcy5faW5GbGlnaHQuc2l6ZSArIHRoaXMuX3BlbmRpbmdBY2tub3dsZWRnZW1lbnRzLnNpemUgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnRzIHdoZXRoZXIgbm8gYWRtaXNzaW9uIG9yIGFja25vd2xlZGdlbWVudCB3b3JrIHJlbWFpbnMuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFdoZXRoZXIgdGhlIGRpc3BhdGNoZXIgaXMgaWRsZS5cbiAgICovXG4gIF9pc0lkbGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLl93YWtlUXVldWVkICYmICF0aGlzLl9kcmFpblByb21pc2UgJiYgdGhpcy5faW5GbGlnaHQuc2l6ZSA9PT0gMCAmJiB0aGlzLl9wZW5kaW5nQWNrbm93bGVkZ2VtZW50cy5zaXplID09PSAwXG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgZXZlbnQtYmFzZWQgaWRsZSB3YWl0ZXJzIGF0IGEgc3RhYmxlIGlkbGUgYm91bmRhcnkuXG4gICAqIEByZXR1cm5zIHt2b2lkfSAtIE5vIHJldHVybiB2YWx1ZS5cbiAgICovXG4gIF9yZXNvbHZlSWRsZVdhaXRlcnMoKSB7XG4gICAgaWYgKCF0aGlzLl9pc0lkbGUoKSkgcmV0dXJuXG5cbiAgICBjb25zdCB3YWl0ZXJzID0gWy4uLnRoaXMuX2lkbGVXYWl0ZXJzXVxuXG4gICAgdGhpcy5faWRsZVdhaXRlcnMuY2xlYXIoKVxuICAgIGZvciAoY29uc3QgcmVzb2x2ZSBvZiB3YWl0ZXJzKSByZXNvbHZlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBleHBlY3RlZCBqb2IgZmFpbHVyZSB0aHJvdWdoIHRoZSBzdGFuZGFyZCBqb2IvYWxsLWVycm9yIGNoYW5uZWxzLlxuICAgKiBAcGFyYW0ge3tlcnJvcjogUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4sIGpvYjogaW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUm93fX0gYXJncyAtIEZhaWx1cmUgdHJhbnNpdGlvbi5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgX2VtaXRCYWNrZ3JvdW5kSm9iRmFpbGVkKHtlcnJvciwgam9ifSkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRFcnJvciA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyb3IpKVxuICAgIGNvbnN0IHBheWxvYWQgPSB7XG4gICAgICBjb250ZXh0OiB7XG4gICAgICAgIGF0dGVtcHRzOiBqb2IuYXR0ZW1wdHMsXG4gICAgICAgIGpvYkFyZ3M6IGpvYi5hcmdzLFxuICAgICAgICBqb2JJZDogam9iLmlkLFxuICAgICAgICBqb2JOYW1lOiBqb2Iuam9iTmFtZSxcbiAgICAgICAgbWF4UmV0cmllczogam9iLm1heFJldHJpZXMsXG4gICAgICAgIHN0YWdlOiBcImJhY2tncm91bmQtam9iLWZhaWxlZFwiLFxuICAgICAgICBzdGF0dXM6IGpvYi5zdGF0dXMsXG4gICAgICAgIHRlcm1pbmFsOiBqb2Iuc3RhdHVzID09PSBcImZhaWxlZFwiLFxuICAgICAgICB3aWxsUmV0cnk6IGpvYi5zdGF0dXMgPT09IFwicXVldWVkXCIsXG4gICAgICAgIHdvcmtlcklkOiBcImxvY2FsXCJcbiAgICAgIH0sXG4gICAgICBlcnJvcjogbm9ybWFsaXplZEVycm9yXG4gICAgfVxuICAgIGNvbnN0IGVycm9yRXZlbnRzID0gdGhpcy5jb25maWd1cmF0aW9uLmdldEVycm9yRXZlbnRzKClcblxuICAgIGVycm9yRXZlbnRzLmVtaXQoXCJiYWNrZ3JvdW5kLWpvYi1mYWlsZWRcIiwgcGF5bG9hZClcbiAgICBlcnJvckV2ZW50cy5lbWl0KFwiYWxsLWVycm9yXCIsIHsuLi5wYXlsb2FkLCBlcnJvclR5cGU6IFwiYmFja2dyb3VuZC1qb2ItZmFpbGVkXCJ9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgb25lIGZhaWxlZCBkdXJhYmxlIGFja25vd2xlZGdlbWVudCBhdHRlbXB0IHdpdGggaXRzIGZlbmNlIGNvbnRleHQuXG4gICAqIEBwYXJhbSB7UGVuZGluZ0xvY2FsQmFja2dyb3VuZEpvYkFja25vd2xlZGdlbWVudCAmIHtlcnJvcjogUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59fSBhcmdzIC0gRmFpbGVkIGFja25vd2xlZGdlbWVudC5cbiAgICogQHJldHVybnMge3ZvaWR9IC0gTm8gcmV0dXJuIHZhbHVlLlxuICAgKi9cbiAgX3JlcG9ydEFja25vd2xlZGdlbWVudEVycm9yKHthY2tub3dsZWRnZW1lbnQsIGVycm9yLCBoYW5kb2ZmLCBqb2J9KSB7XG4gICAgdGhpcy5fcmVwb3J0RnJhbWV3b3JrRXJyb3Ioe1xuICAgICAgY29udGV4dDoge1xuICAgICAgICBhY2tub3dsZWRnZW1lbnRUeXBlOiBhY2tub3dsZWRnZW1lbnQudHlwZSxcbiAgICAgICAgaGFuZG9mZklkOiBoYW5kb2ZmLmhhbmRvZmZJZCxcbiAgICAgICAgam9iSWQ6IGpvYi5pZCxcbiAgICAgICAgam9iTmFtZTogam9iLmpvYk5hbWUsXG4gICAgICAgIHdvcmtlcklkOiBcImxvY2FsXCJcbiAgICAgIH0sXG4gICAgICBlcnJvcixcbiAgICAgIHN0YWdlOiBcImxvY2FsLWJhY2tncm91bmQtam9icy1hY2tub3dsZWRnZW1lbnRcIlxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0cyBhbiB1bmV4cGVjdGVkIGRpc3BhdGNoZXIgZmFpbHVyZSB0aHJvdWdoIGZyYW1ld29yayBjaGFubmVscy5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBVbmV4cGVjdGVkIGZhaWx1cmUuXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+fSBbYXJncy5jb250ZXh0XSAtIEFkZGl0aW9uYWwgZmFpbHVyZSBjb250ZXh0LlxuICAgKiBAcGFyYW0ge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBhcmdzLmVycm9yIC0gVW5leHBlY3RlZCBlcnJvci5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muc3RhZ2UgLSBEaXNwYXRjaGVyIHN0YWdlLlxuICAgKiBAcmV0dXJucyB7dm9pZH0gLSBObyByZXR1cm4gdmFsdWUuXG4gICAqL1xuICBfcmVwb3J0RnJhbWV3b3JrRXJyb3Ioe2NvbnRleHQgPSB7fSwgZXJyb3IsIHN0YWdlfSkge1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRFcnJvciA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyb3IpKVxuICAgIGNvbnN0IHBheWxvYWQgPSB7Y29udGV4dDogey4uLmNvbnRleHQsIHN0YWdlfSwgZXJyb3I6IG5vcm1hbGl6ZWRFcnJvcn1cbiAgICBjb25zdCBlcnJvckV2ZW50cyA9IHRoaXMuY29uZmlndXJhdGlvbi5nZXRFcnJvckV2ZW50cygpXG5cbiAgICBlcnJvckV2ZW50cy5lbWl0KFwiZnJhbWV3b3JrLWVycm9yXCIsIHBheWxvYWQpXG4gICAgZXJyb3JFdmVudHMuZW1pdChcImFsbC1lcnJvclwiLCB7Li4ucGF5bG9hZCwgZXJyb3JUeXBlOiBcImZyYW1ld29yay1lcnJvclwifSlcbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/main.js"],"names":[],"mappings":"AAGA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,UAAU,MAAM,kBAAkB,CAAA;AACzC,OAAO,uBAAuB,MAAM,gBAAgB,CAAA;AACpD,OAAO,MAAM,MAAM,cAAc,CAAA;AAO9B,YAAkB,6BAA6B,GAC/C;;;;IAA4D,aAAa,EAA9D,OAAO,YAAY,EAAE,0BAA0B,CAC1D;;;;IAA4C,OAAO,EAAxC,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAC5C;CAAA,CAAA;AAsCD,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAa9B,aAAa;IACb,8BAA8B;IAC9B,SAAS,SALC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAO9B,IAAI;IACJ,IAAI;IACJ,gBAAgB;IAChB,cAAc;IACd,SAAS;IAGT,oBAAoB;IACpB,qBAAqB;IAC1B,yDAAyD;IACpD,OAAO,EADD,OAAO,cAAc,EAAE,OAAO,GAAG,SAAS;IAEhD,MAAM;IACX;;iCAE6B;IACxB,OAAO,EADF,GAAG,CAAC,UAAU,CAAC;IAEzB;;iCAE6B;IACxB,YAAY,EADP,GAAG,CAAC,UAAU,CAAC;IAEzB;;sDAEkD;IAC7C,cAAc,EADT,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAE9C;;;;qCAIiC;IAC5B,wBAAwB,EADnB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAE7B;;;oCAGgC;IAC3B,8BAA8B,EADzB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;wCAEoC;IAC/B,MAAM,EADD,GAAG,CAAC,MAAM,GAAG,SAAS;IAEhC;;2DAEuD;IAClD,UAAU,EADL,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS;IAEnD;;2DAEuD;IAClD,eAAe,EADV,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS;IAEnD;;2DAEuD;IAClD,gBAAgB,EADX,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS;IAEnD;;2DAEuD;IAClD,YAAY,EADP,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS;IAEnD;;4DAEwD;IACnD,iBAAiB,EADZ,UAAU,CAAC,OAAO,WAAW,CAAC,GAAG,SAAS;IAEpD;;qDAEiD;IAC5C,SAAS,EADJ,uBAAuB,GAAG,SAAS;IAExC,SAAS;IACT,cAAc;IACnB,wCAAwC;IACnC,aAAa,EADP,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAE/B,QAAQ;IACb,wCAAwC;IACnC,WAAW,EADL,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS;IAEpC;;0CAEsC;IACjC,kBAAkB,EADb,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IAElC;;uFAEmF;IAC9E,qBAAqB,EADhB,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS;IAE/E;;sHAEkH;IAC7G,aAAa,EADR,OAAO,qBAAqB,EAAE,OAAO,GAAG,OAAO,gCAAgC,EAAE,OAAO,GAAG,SAAS;IAhGhH;;;;;;;;;;OAUG;IACH,YAAY,EAAC,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,8BAAqC,EAAE,SAAS,EAAC,EARnI;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAsB,IAAI,AAA1B,CACA,EADQ,MAAM,CACd;QAAsB,IAAI,AAA1B,CACA,EADQ,MAAM,CACd;QAAsB,oBAAoB,AAA1C,CACA,EADQ,MAAM,CACd;QAAsB,qBAAqB,AAA3C,CACA,EADQ,MAAM,CACd;QAAuB,8BAA8B,AAArD,CACA,EADQ,OAAO,CACf;QAA0C,SAAS,AAAnD,CACF,EADU,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CACpC;KACqI,EAuFrI;IAED;;;OAGG;IACH,IAAI,KAAK,IAFI,OAAO,cAAc,EAAE,OAAO,CAM1C;IAED;;;OAGG;IACH,IAAI,KAAK,CAAC,OAAO,EAFN,OAAO,cAAc,EAAE,OAEjB,EAEhB;IAED;;;OAGG;IACG,KAAK,IAFE,OAAO,CAAC,IAAI,CAAC,CA8FzB;IAED;;;OAGG;IACH,IAAI,IAFS,OAAO,CAAC,IAAI,CAAC,CAMzB;IAED;;;OAGG;IACG,KAAK,IAFE,OAAO,CAAC,IAAI,CAAC,CA2BzB;IAED;;yBAEqB;IACrB,aAAa,IADA,IAAI,CAKhB;IAED;;yBAEqB;IACrB,YAAY,IADC,IAAI,CAYhB;IAED;;yBAEqB;IACrB,yBAAyB,IADZ,IAAI,CAYhB;IAED;;kCAE8B;IACxB,oBAAoB,IADb,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;kCAE8B;IACxB,kCAAkC,IAD3B,OAAO,CAAC,IAAI,CAAC,CAWzB;IAED;;kCAE8B;IACxB,YAAY,IADL,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACH,OAAO,IAFM,MAAM,CAIlB;IAED;;;;;;;;;;OAUG;IACH,sBAAsB,IAFT,IAAI,CA2BhB;IAED;;;;;;OAMG;IACH,eAAe,IAFF,IAAI,CAiBhB;IAED;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAHb,OAAO,KAAK,EAAE,MAGD,GAFX,IAAI,CA0BhB;IAED;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAC,EAL7C;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAA8D,OAAO,EAA7D,OAAO,YAAY,EAAE,0BAA0B,CACvD;QAAkE,IAAI,EAA9D,OAAO,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAC3D;KAE6C,GAFnC,OAAO,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAS/D;IAED;;;;;;OAMG;IACH,4BAA4B,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJ/C;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAA8D,OAAO,EAA7D,OAAO,YAAY,EAAE,0BAA0B,CACvD;KAE+C,GAFrC,OAAO,YAAY,EAAE,uBAAuB,GAAG,IAAI,CAqB/D;IAED;;;;OAIG;IACH,2BAA2B,CAAC,UAAU,EAH3B,UAG2B,GAFzB,IAAI,CAOhB;IAED;;;OAGG;IACG,4BAA4B,IAFrB,OAAO,CAAC,IAAI,CAAC,CAMzB;IAED;;;;;;;;;;;;;OAaG;IACG,oBAAoB,CAAC,UAAU,EAH1B,UAG0B,GAFxB,OAAO,CAAC,IAAI,CAAC,CAqBzB;IAED;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJ7C;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAA8D,OAAO,EAA7D,OAAO,YAAY,EAAE,0BAA0B,CACvD;KAE6C,GAFnC,IAAI,CAgBhB;IAED;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJ7C;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAA8D,OAAO,EAA7D,OAAO,YAAY,EAAE,0BAA0B,CACvD;KAE6C,GAFnC,IAAI,CAsBhB;IAED;;;;;;OAMG;IACH,4BAA4B,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJ/C;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAA8D,OAAO,EAA7D,OAAO,YAAY,EAAE,0BAA0B,CACvD;KAE+C,GAFrC,IAAI,CAgBhB;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJrC;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAA6D,OAAO,EAA5D,OAAO,YAAY,EAAE,yBAAyB,CACtD;KAEqC,GAF3B,IAAI,CAmBhB;IAED;;;;;OAKG;IACH,qBAAqB,CAAC,EAAC,UAAU,EAAC,EAH/B;QAAyB,UAAU,EAA3B,UAAU,CAClB;KAE+B,GAFrB,IAAI,CAQhB;IAED;;;;;;OAMG;IACG,yBAAyB,CAAC,MAAM,EAL3B,UAK2B,EAAE,EAAC,YAAoB,EAAC,AAJ3D,CAEA,EADA;QAAuB,YAAY,AAAnC,CACA,EADQ,OAAO,CACf;KAEgE,GAFtD,OAAO,CAAC,IAAI,CAAC,CAiBzB;IAED;;;;;;OAMG;IACG,sBAAsB,CAAC,MAAM,EALxB,UAKwB,EAAE,EAAC,YAAoB,EAAC,AAJxD,CAEA,EADA;QAAuB,YAAY,AAAnC,CACA,EADQ,OAAO,CACf;KAE6D,GAFnD,OAAO,CAAC,IAAI,CAAC,CAqBzB;IAED;;;;;;;OAOG;IACG,eAAe,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAC,EAL7C;QAAqB,SAAS,EAAtB,MAAM,CACd;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAyB,MAAM,EAAvB,UAAU,CAClB;KAE6C,GAFnC,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;;;;OAMG;IACH,cAAc,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,EAJ9B;QAAqB,SAAS,EAAtB,MAAM,CACd;QAAqB,KAAK,EAAlB,MAAM,CACd;KAE8B,GAFpB,IAAI,CAUhB;IAED;;;;OAIG;IACH,0BAA0B,CAAC,KAAK,EAHrB,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGP,GAFnB,IAAI,CAUhB;IAED;;;;;;OAMG;IACH,wBAAwB,CAAC,KAAK,EAHnB,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGT,GAFjB,IAAI,CAUhB;IAED;;;;;;OAMG;IACG,cAAc,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJvC;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAA+D,OAAO,EAA9D,OAAO,YAAY,EAAE,2BAA2B,CACxD;KAEuC,GAF7B,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;;;OAMG;IACG,uBAAuB,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJhD;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAAwE,OAAO,EAAvE,OAAO,YAAY,EAAE,oCAAoC,CACjE;KAEgD,GAFtC,OAAO,CAAC,IAAI,CAAC,CAwBzB;IAED;;;;;;OAMG;IACG,sBAAsB,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJ/C;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAAuE,OAAO,EAAtE,OAAO,YAAY,EAAE,mCAAmC,CAChE;KAE+C,GAFrC,OAAO,CAAC,IAAI,CAAC,CAmBzB;IAED;;;;;;;;;;OAUG;IACH,0BAA0B,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAC,EAR/F;QAA4D,OAAO,EAA3D,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACrD;QAA4C,KAAK,EAAzC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CACrC;QAAqB,eAAe,EAA5B,MAAM,CACd;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAAqB,UAAU,EAAvB,MAAM,CACd;QAAqF,YAAY,EAAzF,eAAe,GAAG,yBAAyB,GAAG,wBAAwB,CAC9E;KAE+F,GAFrF,IAAI,CAgBhB;IAED;;;;;;OAMG;IACG,kBAAkB,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJ3C;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAAgE,OAAO,EAA/D,OAAO,YAAY,EAAE,4BAA4B,CACzD;KAE2C,GAFjC,OAAO,CAAC,IAAI,CAAC,CAkBzB;IAED;;;;;;OAMG;IACG,oBAAoB,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJ7C;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAAkE,OAAO,EAAjE,OAAO,YAAY,EAAE,8BAA8B,CAC3D;KAE6C,GAFnC,OAAO,CAAC,IAAI,CAAC,CA2BzB;IAED;;;;;;OAMG;IACG,gBAAgB,CAAC,EAAC,UAAU,EAAE,OAAO,EAAC,EAJzC;QAAyB,UAAU,EAA3B,UAAU,CAClB;QAA8D,OAAO,EAA7D,OAAO,YAAY,EAAE,0BAA0B,CACvD;KAEyC,GAF/B,OAAO,CAAC,IAAI,CAAC,CAkCzB;IAED;;;;OAIG;IACH,wBAAwB,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,EAAE,QAAQ,EAAC,EAH9D;QAAC,KAAK,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,OAAO,YAAY,EAAE,gBAAgB,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAGlF,GAF5D,IAAI,CAyBhB;IAED;;;;;;;;OAQG;IACH,0BAA0B,CAAC,EAAC,GAAG,EAAC,EAHrB;QAAC,GAAG,EAAE,OAAO,YAAY,EAAE,gBAAgB,CAAA;KAGtB,GAFnB,IAAI,CAsBhB;IAED;;;;OAIG;IACH,sBAAsB,CAAC,KAAK,EAHjB,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGX,GAFf,KAAK,CAMjB;IAED;;;;OAIG;IACH,wBAAwB,CAAC,KAAK,EAHnB,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGT,GAFjB,KAAK,CASjB;IAED;;;;OAIG;IACH,0BAA0B,CAAC,KAAK,EAHrB,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGP,GAFnB,MAAM,CAMlB;IAED;;;;OAIG;IACH,iBAAiB,CAAC,KAAK,EAHZ,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGhB,GAFV,KAAK,IAAI,MAAM,CAI3B;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAC,KAAK,EAAE,eAAe,EAAC,EAJ7C;QAA4C,KAAK,EAAzC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CACrC;QAAoB,eAAe,EAA3B,KAAK,CACb;KAE6C,GAFnC,IAAI,CAIhB;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,MAAM,IAFC,OAAO,CAAC,IAAI,CAAC,CAezB;IAED;;;OAGG;IACG,kBAAkB,IAFX,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;;;;OAKG;IACG,YAAY,CAAC,EAAC,OAAO,EAAC,EAHzB;QAAsB,OAAO,EAArB,OAAO,CACf;KAEyB,GAFf,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACG,yBAAyB,IAFlB,OAAO,CAAC,IAAI,CAAC,CAYzB;IAED;;yBAEqB;IACrB,qBAAqB,IADR,IAAI,CAYhB;IAED;;;OAGG;IACG,eAAe,IAFR,OAAO,CAAC,OAAO,CAAC,CAI5B;IAED;;;OAGG;IACG,aAAa,IAFN,OAAO,CAAC,OAAO,CAAC,CAW5B;IAED;;;OAGG;IACG,yBAAyB,IAFlB,OAAO,CAAC,OAAO,CAAC,CAU5B;IAED;;;;;;OAMG;IACH,mBAAmB,IAFN,IAAI,CAWhB;IAED;;;;OAIG;IACG,gBAAgB,IAFT,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;OAIG;IACG,UAAU,IAFH,OAAO,CAAC,IAAI,CAAC,CA8EzB;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,EAJlC;QAAoD,GAAG,EAA/C,OAAO,YAAY,EAAE,gBAAgB,CAC7C;QAAyB,MAAM,EAAvB,UAAU,CAClB;KAEkC,GAFxB;QAAC,oBAAoB,EAAE,OAAO,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAA;KAAC,CAcrE;IAED;;;;;;;;OAQG;IACH,uBAAuB,CAAC,EAAC,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,EAAC,EALrE;QAAsB,oBAAoB,EAAlC,OAAO,CACf;QAAqB,gBAAgB,EAA7B,MAAM,CACd;QAAyB,MAAM,EAAvB,UAAU,CAClB;KAEqE,GAF3D,IAAI,CAUhB;IAED;;;;;;;;;OASG;IACH,wBAAwB,CAAC,EAAC,GAAG,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,EAAC,EAN3E;QAAoD,GAAG,EAA/C,OAAO,YAAY,EAAE,gBAAgB,CAC7C;QAAsB,oBAAoB,EAAlC,OAAO,CACf;QAAqB,gBAAgB,EAA7B,MAAM,CACd;QAAyB,MAAM,EAAvB,UAAU,CAClB;KAE2E,GAFjE,IAAI,CAShB;IAED;;;;OAIG;IACH,wBAAwB,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,EAHhC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAGD,GAF9B,IAAI,CAIhB;IAED;;;;;OAKG;IACG,eAAe,CAAC,EAAC,SAAS,EAAE,KAAK,EAAC,EAH7B;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAGJ,GAF3B,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED;;;;OAIG;IACG,8BAA8B,IAFvB,OAAO,CAAC,IAAI,CAAC,CAWzB;IAED;;;;;;;OAOG;IACH,2BAA2B,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAC,EALlD;QAA4C,KAAK,EAAzC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CACrC;QAAqB,SAAS,EAAtB,MAAM,CACd;QAAqB,KAAK,EAAlB,MAAM,CACd;KAEkD,GAFxC,IAAI,CAahB;IAED;;;OAGG;IACG,+BAA+B,IAFxB,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CASjE;IAED;;;OAGG;IACH,yBAAyB,IAFZ,OAAO,YAAY,EAAE,0BAA0B,EAAE,CAU7D;IAED;;;;;;OAMG;IACH,0BAA0B,CAAC,EAAC,cAAc,EAAE,MAAM,EAAC,EAJhD;QAAmE,cAAc,EAAzE,GAAG,CAAC,OAAO,YAAY,EAAE,0BAA0B,CAAC,CAC5D;QAAyB,MAAM,EAAvB,UAAU,CAClB;KAEgD,GAFtC,IAAI,CAQhB;IAED;;;;OAIG;IACH,iBAAiB,CAAC,GAAG,EAHV,OAAO,YAAY,EAAE,gBAGX,GAFR,UAAU,GAAG,SAAS,CAMlC;IAED;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAC,GAAG,EAAE,MAAM,EAAC,EAJ5B;QAAoD,GAAG,EAA/C,OAAO,YAAY,EAAE,gBAAgB,CAC7C;QAAyB,MAAM,EAAvB,UAAU,CAClB;KAE4B,GAFlB,OAAO,CAUnB;IAED;;;;;;OAMG;IACG,kBAAkB,IAFX,OAAO,CAAC,IAAI,CAAC,CA+BzB;IAEK,aAAa,kBA2BlB;IAED;;;;;;;;OAQG;IACG,kBAAkB,IAFX,OAAO,CAAC,IAAI,CAAC,CAgCzB;CACF"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/main.js"],"names":[],"mappings":"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"}