experimental-agent 0.1.4 → 0.2.0

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 (41) hide show
  1. package/dist/agent-workflow.d.mts +2 -1
  2. package/dist/agent-workflow.d.ts +2 -1
  3. package/dist/agent-workflow.js +1382 -552
  4. package/dist/agent-workflow.mjs +3 -2
  5. package/dist/chunk-FQ67QZOI.mjs +75 -0
  6. package/dist/{chunk-GYOBANFH.mjs → chunk-GL7Q3MDU.mjs} +3 -7
  7. package/dist/{chunk-24UDM5XV.mjs → chunk-NXDVNJRS.mjs} +1 -1
  8. package/dist/chunk-OCF5I43X.mjs +2367 -0
  9. package/dist/chunk-OZZVS6L5.mjs +139 -0
  10. package/dist/{chunk-2ZXHR6T6.mjs → chunk-SJVFFE5D.mjs} +18 -17
  11. package/dist/chunk-TGNVXSMX.mjs +399 -0
  12. package/dist/chunk-UCVXI7LW.mjs +1287 -0
  13. package/dist/chunk-ZIAHPXOJ.mjs +595 -0
  14. package/dist/{client-SNN3XDKO.mjs → client-BKA7XBGW.mjs} +1 -1
  15. package/dist/{client-Bkuq-Dfa.d.mts → client-CSTexnLF.d.mts} +158 -122
  16. package/dist/{client-Bkuq-Dfa.d.ts → client-CSTexnLF.d.ts} +158 -122
  17. package/dist/{sandbox-IFK5MVRM.mjs → docker-FB2MJTHJ.mjs} +6 -4
  18. package/dist/{handler-WFNQWR6V.mjs → handler-FRUPZ4LX.mjs} +1 -1
  19. package/dist/index.d.mts +3 -2
  20. package/dist/index.d.ts +3 -2
  21. package/dist/index.js +1554 -593
  22. package/dist/index.mjs +139 -33
  23. package/dist/lifecycle-workflow.d.mts +2 -1
  24. package/dist/lifecycle-workflow.d.ts +2 -1
  25. package/dist/lifecycle-workflow.js +29 -18
  26. package/dist/lifecycle-workflow.mjs +1 -1
  27. package/dist/{local-fs-handlers-ESZBRAWK.mjs → local-fs-handlers-SYOCKTPN.mjs} +10 -2
  28. package/dist/next/loader.js +16 -12
  29. package/dist/next/loader.mjs +15 -7
  30. package/dist/next.d.mts +1 -1
  31. package/dist/next.d.ts +1 -1
  32. package/dist/next.js +3 -10
  33. package/dist/next.mjs +2 -5
  34. package/dist/{process-manager-ZCET3VD2.mjs → process-manager-JDUJDYGU.mjs} +1 -1
  35. package/dist/sandbox-HRGGTEHF.mjs +21 -0
  36. package/dist/{storage-FCSHTDLC.mjs → storage-LSDMRW73.mjs} +2 -2
  37. package/package.json +2 -6
  38. package/dist/chunk-4WDKWMVB.mjs +0 -389
  39. package/dist/chunk-64THY7Y7.mjs +0 -155
  40. package/dist/chunk-IACG26TC.mjs +0 -2212
  41. package/dist/chunk-NGLND33F.mjs +0 -1247
@@ -1,7 +1,8 @@
1
- import { D as SandboxLifecycleInput } from './client-Bkuq-Dfa.mjs';
1
+ import { J as SandboxLifecycleInput } from './client-CSTexnLF.mjs';
2
2
  import 'errore';
3
3
  import 'ai';
4
4
  import 'zod';
5
+ import '@vercel/sandbox';
5
6
 
6
7
  declare function sandboxLifecycleWorkflow({ input, }: {
7
8
  input: SandboxLifecycleInput;
@@ -1,7 +1,8 @@
1
- import { D as SandboxLifecycleInput } from './client-Bkuq-Dfa.js';
1
+ import { J as SandboxLifecycleInput } from './client-CSTexnLF.js';
2
2
  import 'errore';
3
3
  import 'ai';
4
4
  import 'zod';
5
+ import '@vercel/sandbox';
5
6
 
6
7
  declare function sandboxLifecycleWorkflow({ input, }: {
7
8
  input: SandboxLifecycleInput;
@@ -399,6 +399,16 @@ function getStorageClient(rpcFn, name) {
399
399
  return new StorageError({ reason: String(e), cause: e });
400
400
  }
401
401
  },
402
+ delete: async (key) => {
403
+ try {
404
+ await rpc("setup.delete", { key });
405
+ } catch (e) {
406
+ if (e instanceof StorageError) {
407
+ return e;
408
+ }
409
+ return new StorageError({ reason: String(e), cause: e });
410
+ }
411
+ },
402
412
  acquireLock: async (key, lockId, lockTimeoutMs) => {
403
413
  try {
404
414
  return await rpc("setup.acquireLock", {
@@ -475,7 +485,7 @@ function ListResultSchema(itemSchema) {
475
485
  nextCursor: import_zod.z.string().nullable()
476
486
  });
477
487
  }
478
- var import_zod, VercelLifecycleConfigSchema, NetworkPolicySchema, SandboxConfigSchema, GenerationSchema, SessionSchema, StepUsageSchema, UsageSummarySchema, MessageUsageSchema, InterruptedLastPartSchema, MessageSchema, PartSchema, CommandResultSchema, SandboxRecordSchema, SessionUpdateSchema, SandboxUpdateSchema, CommandBaseSchema, CommandSchema, SetupSnapshotSchema, methods, STORAGE_RPC_METHODS;
488
+ var import_zod, VercelLifecycleConfigSchema, NetworkPolicySchema, SandboxConfigBase, SandboxConfigSchema, GenerationSchema, SessionSchema, StepUsageSchema, UsageSummarySchema, MessageUsageSchema, InterruptedLastPartSchema, MessageSchema, PartSchema, CommandResultSchema, SandboxRecordSchema, SessionUpdateSchema, SandboxUpdateSchema, CommandBaseSchema, CommandSchema, SetupSnapshotSchema, methods, STORAGE_RPC_METHODS;
479
489
  var init_rpc = __esm({
480
490
  "src/storage/rpc.ts"() {
481
491
  "use strict";
@@ -487,30 +497,25 @@ var init_rpc = __esm({
487
497
  snapshotId: import_zod.z.string().optional(),
488
498
  autoStart: import_zod.z.boolean().optional()
489
499
  });
490
- NetworkPolicySchema = import_zod.z.union([
491
- import_zod.z.literal("allow-all"),
492
- import_zod.z.literal("deny-all"),
493
- import_zod.z.object({
494
- allow: import_zod.z.array(import_zod.z.string()).optional(),
495
- subnets: import_zod.z.object({
496
- allow: import_zod.z.array(import_zod.z.string()).optional(),
497
- deny: import_zod.z.array(import_zod.z.string()).optional()
498
- }).optional()
499
- })
500
- ]).optional();
500
+ NetworkPolicySchema = import_zod.z.custom().optional();
501
+ SandboxConfigBase = import_zod.z.object({
502
+ cwd: import_zod.z.string().optional()
503
+ });
501
504
  SandboxConfigSchema = import_zod.z.discriminatedUnion("type", [
502
- import_zod.z.object({
505
+ SandboxConfigBase.extend({
503
506
  type: import_zod.z.literal("vercel"),
504
507
  resources: import_zod.z.object({ vcpus: import_zod.z.number() }).optional(),
505
508
  ports: import_zod.z.array(import_zod.z.number()).optional(),
506
509
  lifecycle: VercelLifecycleConfigSchema.optional(),
507
510
  networkPolicy: NetworkPolicySchema
508
511
  }),
509
- import_zod.z.object({
510
- type: import_zod.z.literal("local"),
511
- path: import_zod.z.string().optional()
512
+ SandboxConfigBase.extend({
513
+ type: import_zod.z.literal("local")
514
+ }),
515
+ SandboxConfigBase.extend({
516
+ type: import_zod.z.literal("docker")
512
517
  }),
513
- import_zod.z.object({
518
+ SandboxConfigBase.extend({
514
519
  type: import_zod.z.literal("custom"),
515
520
  url: import_zod.z.string(),
516
521
  headers: import_zod.z.record(import_zod.z.string(), import_zod.z.string()).optional()
@@ -601,6 +606,8 @@ var init_rpc = __esm({
601
606
  lastActivityAt: import_zod.z.number().nullable(),
602
607
  acquiringLockId: import_zod.z.string().nullable(),
603
608
  acquiringLockAt: import_zod.z.number().nullable(),
609
+ setupKey: import_zod.z.string().nullable().optional(),
610
+ setupCompletedAt: import_zod.z.number().nullable().optional(),
604
611
  providerMetadata: import_zod.z.discriminatedUnion("provider", [
605
612
  import_zod.z.object({
606
613
  provider: import_zod.z.literal("vercel"),
@@ -804,6 +811,10 @@ var init_rpc = __esm({
804
811
  params: SetupSnapshotSchema,
805
812
  result: import_zod.z.void()
806
813
  },
814
+ "setup.delete": {
815
+ params: import_zod.z.object({ key: import_zod.z.string() }),
816
+ result: import_zod.z.void()
817
+ },
807
818
  "setup.acquireLock": {
808
819
  params: import_zod.z.object({
809
820
  key: import_zod.z.string(),
@@ -1001,4 +1012,4 @@ async function sandboxLifecycleWorkflow({
1001
1012
  0 && (module.exports = {
1002
1013
  sandboxLifecycleWorkflow
1003
1014
  });
1004
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3NhbmRib3gvYmluZGluZ3MvdmVyY2VsLXNkay50cyIsICIuLi9zcmMvZXJyb3JzLnRzIiwgIi4uL3NyYy9zdG9yYWdlL2NsaWVudC50cyIsICIuLi9zcmMvc3RvcmFnZS9ycGMudHMiLCAiLi4vc3JjL3N0b3JhZ2UvaGFuZGxlci50cyIsICIuLi9zcmMvc3RvcmFnZS9pbmRleC50cyIsICIuLi9zcmMvc2FuZGJveC9iaW5kaW5ncy9saWZlY3ljbGUtd29ya2Zsb3cudHMiLCAiLi4vc3JjL3NhbmRib3gvYmluZGluZ3MvbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgeyBTYW5kYm94IH0gZnJvbSBcIkB2ZXJjZWwvc2FuZGJveFwiO1xuIiwgImltcG9ydCAqIGFzIGVycm9yZSBmcm9tIFwiZXJyb3JlXCI7XG5cbmV4cG9ydCBjbGFzcyBTZXNzaW9uTm90Rm91bmRFcnJvciBleHRlbmRzIGVycm9yZS5jcmVhdGVUYWdnZWRFcnJvcih7XG4gIG5hbWU6IFwiU2Vzc2lvbk5vdEZvdW5kRXJyb3JcIixcbiAgbWVzc2FnZTogXCJTZXNzaW9uICRpZCBub3QgZm91bmRcIixcbn0pIHt9XG5cbmV4cG9ydCBjbGFzcyBTZXNzaW9uRXJyb3IgZXh0ZW5kcyBlcnJvcmUuY3JlYXRlVGFnZ2VkRXJyb3Ioe1xuICBuYW1lOiBcIlNlc3Npb25FcnJvclwiLFxuICBtZXNzYWdlOiBcIlNlc3Npb24gJGlkIGZhaWxlZDogJHJlYXNvblwiLFxufSkge31cblxuZXhwb3J0IGNsYXNzIFNhbmRib3hOb3RGb3VuZEVycm9yIGV4dGVuZHMgZXJyb3JlLmNyZWF0ZVRhZ2dlZEVycm9yKHtcbiAgbmFtZTogXCJTYW5kYm94Tm90Rm91bmRFcnJvclwiLFxuICBtZXNzYWdlOiBcIlNhbmRib3ggJGlkIG5vdCBmb3VuZFwiLFxufSkge31cblxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VFcnJvciBleHRlbmRzIGVycm9yZS5jcmVhdGVUYWdnZWRFcnJvcih7XG4gIG5hbWU6IFwiU3RvcmFnZUVycm9yXCIsXG4gIG1lc3NhZ2U6IFwiJHJlYXNvblwiLFxufSkge31cblxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VDb25mbGljdEVycm9yIGV4dGVuZHMgZXJyb3JlLmNyZWF0ZVRhZ2dlZEVycm9yKHtcbiAgbmFtZTogXCJTdG9yYWdlQ29uZmxpY3RFcnJvclwiLFxuICBtZXNzYWdlOiBcIiRyZWFzb25cIixcbn0pIHt9XG5cbmV4cG9ydCBjbGFzcyBTYW5kYm94RXJyb3IgZXh0ZW5kcyBlcnJvcmUuY3JlYXRlVGFnZ2VkRXJyb3Ioe1xuICBuYW1lOiBcIlNhbmRib3hFcnJvclwiLFxuICBtZXNzYWdlOiBcIiRyZWFzb25cIixcbn0pIHt9XG5cbmV4cG9ydCBjbGFzcyBNZXNzYWdlTm90Rm91bmRFcnJvciBleHRlbmRzIGVycm9yZS5jcmVhdGVUYWdnZWRFcnJvcih7XG4gIG5hbWU6IFwiTWVzc2FnZU5vdEZvdW5kRXJyb3JcIixcbiAgbWVzc2FnZTogXCJNZXNzYWdlICRpZCBub3QgZm91bmRcIixcbn0pIHt9XG4iLCAiaW1wb3J0IHR5cGUgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHtcbiAgTWVzc2FnZU5vdEZvdW5kRXJyb3IsXG4gIFNhbmRib3hOb3RGb3VuZEVycm9yLFxuICBTZXNzaW9uTm90Rm91bmRFcnJvcixcbiAgU3RvcmFnZUNvbmZsaWN0RXJyb3IsXG4gIFN0b3JhZ2VFcnJvcixcbn0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHR5cGUgeyBTdG9yYWdlTWV0aG9kcyB9IGZyb20gXCIuL3JwY1wiO1xuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kLFxuICBMaXN0UmVzdWx0LFxuICBQYXJ0LFxuICBTZXR1cFNuYXBzaG90LFxuICBTdG9yYWdlLFxuICBTdG9yYWdlQ29uZmlnLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuXG50eXBlIFJwY1Jlc3BvbnNlPFQ+ID1cbiAgfCB7IHJlc3VsdDogVCB9XG4gIHwgeyBlcnJvcjogeyBjb2RlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9IH07XG5cbmV4cG9ydCB0eXBlIFJwY0ZuID0gKHBhcmFtczoge1xuICBuYW1lPzogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGFyYW1zOiB1bmtub3duO1xufSkgPT4gUHJvbWlzZTxScGNSZXNwb25zZTx1bmtub3duPj47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlQ2xpZW50KHJwY0ZuOiBScGNGbiwgbmFtZT86IHN0cmluZyk6IFN0b3JhZ2Uge1xuICBhc3luYyBmdW5jdGlvbiBycGM8TSBleHRlbmRzIGtleW9mIFN0b3JhZ2VNZXRob2RzPihcbiAgICBtZXRob2Q6IE0sXG4gICAgcGFyYW1zOiB6LmluZmVyPFN0b3JhZ2VNZXRob2RzW01dW1wicGFyYW1zXCJdPlxuICApOiBQcm9taXNlPHouaW5mZXI8U3RvcmFnZU1ldGhvZHNbTV1bXCJyZXN1bHRcIl0+PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnBjRm4oeyBuYW1lLCBtZXRob2QsIHBhcmFtcyB9KTtcblxuICAgIGlmIChcImVycm9yXCIgaW4gcmVzdWx0KSB7XG4gICAgICBpZiAocmVzdWx0LmVycm9yLmNvZGUgPT09IFwiQ09ORkxJQ1RcIikge1xuICAgICAgICB0aHJvdyBuZXcgU3RvcmFnZUNvbmZsaWN0RXJyb3IoeyByZWFzb246IHJlc3VsdC5lcnJvci5tZXNzYWdlIH0pO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcih7XG4gICAgICAgIHJlYXNvbjogYFske3Jlc3VsdC5lcnJvci5jb2RlfV0gJHtyZXN1bHQuZXJyb3IubWVzc2FnZX1gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5yZXN1bHQgYXMgei5pbmZlcjxTdG9yYWdlTWV0aG9kc1tNXVtcInJlc3VsdFwiXT47XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNlc3Npb246IHtcbiAgICAgIGdldDogYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnBjKFwic2Vzc2lvbi5nZXRcIiwgeyBpZCB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNlc3Npb25Ob3RGb3VuZEVycm9yKHsgaWQgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2V0OiBhc3luYyAoc2Vzc2lvbikgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLnNldFwiLCBzZXNzaW9uKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGU6IGFzeW5jIChvcHRzKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJwYyhcInNlc3Npb24udXBkYXRlXCIsIG9wdHMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlQ29uZmxpY3RFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBkZWxldGU6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHJwYyhcInNlc3Npb24uZGVsZXRlXCIsIHsgaWQgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbGlzdDogYXN5bmMgKG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgcnBjKFwic2Vzc2lvbi5saXN0XCIsIHtcbiAgICAgICAgICAgIHRhZ3M6IG9wdHM/LnRhZ3MsXG4gICAgICAgICAgICBvcmRlcjogb3B0cz8ub3JkZXIsXG4gICAgICAgICAgICBjdXJzb3I6IG9wdHM/LmN1cnNvcixcbiAgICAgICAgICAgIGxpbWl0OiBvcHRzPy5saW1pdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsaXN0QnlTYW5kYm94OiBhc3luYyAob3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLmxpc3RCeVNhbmRib3hcIiwge1xuICAgICAgICAgICAgc2FuZGJveElkOiBvcHRzLnNhbmRib3hJZCxcbiAgICAgICAgICAgIHRhZ3M6IG9wdHMudGFncyxcbiAgICAgICAgICAgIG9yZGVyOiBvcHRzLm9yZGVyLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzLmN1cnNvcixcbiAgICAgICAgICAgIGxpbWl0OiBvcHRzLmxpbWl0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhZzoge1xuICAgICAgICBzZXQ6IGFzeW5jICh7IHNlc3Npb25JZCwgdGFncyB9KSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLnRhZy5zZXRcIiwgeyBzZXNzaW9uSWQsIHRhZ3MgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgbWVzc2FnZToge1xuICAgICAgbGlzdDogYXN5bmMgKHNlc3Npb25JZCwgb3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJtZXNzYWdlLmxpc3RcIiwge1xuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0OiBhc3luYyAoaWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJtZXNzYWdlLmdldFwiLCB7IGlkIH0pO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZU5vdEZvdW5kRXJyb3IoeyBpZCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChtZXNzYWdlKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJwYyhcIm1lc3NhZ2Uuc2V0XCIsIG1lc3NhZ2UpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIHBhcnQ6IHtcbiAgICAgIGxpc3RCeU1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlSWQsIG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJwYXJ0Lmxpc3RCeU1lc3NhZ2VcIiwge1xuICAgICAgICAgICAgbWVzc2FnZUlkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBMaXN0UmVzdWx0PFBhcnQ+O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxpc3RCeVNlc3Npb246IGFzeW5jIChzZXNzaW9uSWQsIG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJwYXJ0Lmxpc3RCeVNlc3Npb25cIiwge1xuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBMaXN0UmVzdWx0PFBhcnQ+O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNldDogYXN5bmMgKHBhcnQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcInBhcnQuc2V0XCIsIHBhcnQpKSBhcyBQYXJ0O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRlbGV0ZTogYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgcnBjKFwicGFydC5kZWxldGVcIiwgeyBpZCB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICBzYW5kYm94OiB7XG4gICAgICBnZXQ6IGFzeW5jIChrZXkpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJzYW5kYm94LmdldFwiLCB7IGtleSB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhbmRib3hOb3RGb3VuZEVycm9yKHsgaWQ6IGtleSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBnZXRCeVNlc3Npb246IGFzeW5jIChzZXNzaW9uSWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJzYW5kYm94LmdldEJ5U2Vzc2lvblwiLCB7IHNlc3Npb25JZCB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhbmRib3hOb3RGb3VuZEVycm9yKHsgaWQ6IHNlc3Npb25JZCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChyZWNvcmQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBycGMoXCJzYW5kYm94LnNldFwiLCByZWNvcmQpO1xuICAgICAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlOiBhc3luYyAob3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzYW5kYm94LnVwZGF0ZVwiLCBvcHRzKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsaXN0OiBhc3luYyAob3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzYW5kYm94Lmxpc3RcIiwge1xuICAgICAgICAgICAgdGFnczogb3B0cz8udGFncyxcbiAgICAgICAgICAgIG9yZGVyOiBvcHRzPy5vcmRlcixcbiAgICAgICAgICAgIGN1cnNvcjogb3B0cz8uY3Vyc29yLFxuICAgICAgICAgICAgbGltaXQ6IG9wdHM/LmxpbWl0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhZzoge1xuICAgICAgICBzZXQ6IGFzeW5jICh7IHNhbmRib3hJZCwgdGFncyB9KSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzYW5kYm94LnRhZy5zZXRcIiwgeyBzYW5kYm94SWQsIHRhZ3MgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYWNxdWlyZUxvY2s6IGFzeW5jIChyZWNvcmQsIGxvY2tUaW1lb3V0TXMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcInNhbmRib3guYWNxdWlyZUxvY2tcIiwge1xuICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgbG9ja1RpbWVvdXRNcyxcbiAgICAgICAgICB9KSkgYXMgaW1wb3J0KFwiLi90eXBlc1wiKS5TYW5kYm94UmVjb3JkIHwgbnVsbDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDoge1xuICAgICAgZ2V0OiBhc3luYyAoa2V5KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCBycGMoXCJzZXR1cC5nZXRcIiwgeyBrZXkgfSkpIGFzIFNldHVwU25hcHNob3QgfCBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNldDogYXN5bmMgKHNuYXBzaG90KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgcnBjKFwic2V0dXAuc2V0XCIsIHNuYXBzaG90KTtcbiAgICAgICAgICByZXR1cm4gc25hcHNob3Q7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgYWNxdWlyZUxvY2s6IGFzeW5jIChrZXksIGxvY2tJZCwgbG9ja1RpbWVvdXRNcykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiAoYXdhaXQgcnBjKFwic2V0dXAuYWNxdWlyZUxvY2tcIiwge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgbG9ja0lkLFxuICAgICAgICAgICAgbG9ja1RpbWVvdXRNcyxcbiAgICAgICAgICB9KSkgYXMgU2V0dXBTbmFwc2hvdCB8IG51bGw7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gICAgY29tbWFuZDoge1xuICAgICAgZ2V0OiBhc3luYyAoaWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcImNvbW1hbmQuZ2V0XCIsIHsgaWQgfSkpIGFzIENvbW1hbmQgfCBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNldDogYXN5bmMgKGNvbW1hbmQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcImNvbW1hbmQuc2V0XCIsIGNvbW1hbmQpKSBhcyBDb21tYW5kO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxpc3Q6IGFzeW5jIChzZXNzaW9uSWQsIG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJjb21tYW5kLmxpc3RcIiwge1xuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgaW5jbHVkZUZpbmlzaGVkOiBvcHRzPy5pbmNsdWRlRmluaXNoZWQsXG4gICAgICAgICAgICBjdXJzb3I6IG9wdHM/LmN1cnNvcixcbiAgICAgICAgICAgIGxpbWl0OiBvcHRzPy5saW1pdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIExpc3RSZXN1bHQ8Q29tbWFuZD47XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0sXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX05BTUVTUEFDRSA9IFwiZGVmYXVsdFwiO1xuZXhwb3J0IGNvbnN0IExPQ0FMX1NUT1JBR0VfVkVSU0lPTiA9IFwidjFcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JhZ2Uob3B0czoge1xuICBjb25maWc6IFN0b3JhZ2VDb25maWc7XG4gIHJwYzogUnBjRm47XG59KTogU3RvcmFnZSB7XG4gIGNvbnN0IG5hbWUgPSBvcHRzLmNvbmZpZy5uYW1lID8/IERFRkFVTFRfTkFNRVNQQUNFO1xuICByZXR1cm4gZ2V0U3RvcmFnZUNsaWVudChvcHRzLnJwYywgbmFtZSk7XG59XG4iLCAiaW1wb3J0IHsgeiB9IGZyb20gXCJ6b2RcIjtcblxuY29uc3QgVmVyY2VsTGlmZWN5Y2xlQ29uZmlnU2NoZW1hID0gei5vYmplY3Qoe1xuICBwb2xsSW50ZXJ2YWxNczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBzdG9wQWZ0ZXJJbmFjdGl2ZU1zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHNuYXBzaG90QmVmb3JlVGltZW91dE1zOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHNuYXBzaG90SWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgYXV0b1N0YXJ0OiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxufSk7XG5cbmNvbnN0IE5ldHdvcmtQb2xpY3lTY2hlbWEgPSB6XG4gIC51bmlvbihbXG4gICAgei5saXRlcmFsKFwiYWxsb3ctYWxsXCIpLFxuICAgIHoubGl0ZXJhbChcImRlbnktYWxsXCIpLFxuICAgIHoub2JqZWN0KHtcbiAgICAgIGFsbG93OiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgICBzdWJuZXRzOiB6XG4gICAgICAgIC5vYmplY3Qoe1xuICAgICAgICAgIGFsbG93OiB6LmFycmF5KHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gICAgICAgICAgZGVueTogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uYWwoKSxcbiAgICB9KSxcbiAgXSlcbiAgLm9wdGlvbmFsKCk7XG5cbmV4cG9ydCB0eXBlIE5ldHdvcmtQb2xpY3kgPSB6LmluZmVyPHR5cGVvZiBOZXR3b3JrUG9saWN5U2NoZW1hPjtcblxuZXhwb3J0IGNvbnN0IFNhbmRib3hDb25maWdTY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbihcInR5cGVcIiwgW1xuICB6Lm9iamVjdCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwidmVyY2VsXCIpLFxuICAgIHJlc291cmNlczogei5vYmplY3QoeyB2Y3B1czogei5udW1iZXIoKSB9KS5vcHRpb25hbCgpLFxuICAgIHBvcnRzOiB6LmFycmF5KHoubnVtYmVyKCkpLm9wdGlvbmFsKCksXG4gICAgbGlmZWN5Y2xlOiBWZXJjZWxMaWZlY3ljbGVDb25maWdTY2hlbWEub3B0aW9uYWwoKSxcbiAgICBuZXR3b3JrUG9saWN5OiBOZXR3b3JrUG9saWN5U2NoZW1hLFxuICB9KSxcbiAgei5vYmplY3Qoe1xuICAgIHR5cGU6IHoubGl0ZXJhbChcImxvY2FsXCIpLFxuICAgIHBhdGg6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgfSksXG4gIHoub2JqZWN0KHtcbiAgICB0eXBlOiB6LmxpdGVyYWwoXCJjdXN0b21cIiksXG4gICAgdXJsOiB6LnN0cmluZygpLFxuICAgIGhlYWRlcnM6IHoucmVjb3JkKHouc3RyaW5nKCksIHouc3RyaW5nKCkpLm9wdGlvbmFsKCksXG4gIH0pLFxuXSk7XG5cbmV4cG9ydCB0eXBlIFNhbmRib3hDb25maWcgPSB6LmluZmVyPHR5cGVvZiBTYW5kYm94Q29uZmlnU2NoZW1hPjtcblxuY29uc3QgR2VuZXJhdGlvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgbWF4U3RlcHM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdGVtcGVyYXR1cmU6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdG9wSzogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICB0b3BQOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIGZyZXF1ZW5jeVBlbmFsdHk6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgcHJlc2VuY2VQZW5hbHR5OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIG1heE91dHB1dFRva2Vuczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBoZWFkZXJzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTZXNzaW9uU2NoZW1hID0gei5vYmplY3Qoe1xuICBpZDogei5zdHJpbmcoKSxcbiAgY3JlYXRlZEF0OiB6Lm51bWJlcigpLFxuICB1cGRhdGVkQXQ6IHoubnVtYmVyKCksXG4gIHJ1bklkOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIGxhc3RNZXNzYWdlSWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgdGFnczogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm51bGxhYmxlKCksXG4gIHN5c3RlbTogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICBtb2RlbDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICBzYW5kYm94SWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgc2tpbGxzRGlyOiB6LmFycmF5KHouc3RyaW5nKCkpLm51bGxhYmxlKCksXG4gIGhvb2tUb2tlbjogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICBhY3RpdmVUb29sczogei5hcnJheSh6LnN0cmluZygpKS5udWxsYWJsZSgpLFxuICBnZW5lcmF0aW9uOiBHZW5lcmF0aW9uU2NoZW1hLm51bGxhYmxlKCkuZGVmYXVsdChudWxsKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3RlcFVzYWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGVwSW5kZXg6IHoubnVtYmVyKCksXG4gIG1vZGVsOiB6LnN0cmluZygpLFxuICBpbnB1dFRva2Vuczogei5udW1iZXIoKSxcbiAgb3V0cHV0VG9rZW5zOiB6Lm51bWJlcigpLFxuICB0b3RhbFRva2Vuczogei5udW1iZXIoKSxcbiAgY2FjaGVSZWFkVG9rZW5zOiB6Lm51bWJlcigpLFxuICBjYWNoZVdyaXRlVG9rZW5zOiB6Lm51bWJlcigpLFxuICByZWFzb25pbmdUb2tlbnM6IHoubnVtYmVyKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFVzYWdlU3VtbWFyeVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgbW9kZWw6IHouc3RyaW5nKCksXG4gIGlucHV0VG9rZW5zOiB6Lm51bWJlcigpLFxuICBvdXRwdXRUb2tlbnM6IHoubnVtYmVyKCksXG4gIHRvdGFsVG9rZW5zOiB6Lm51bWJlcigpLFxuICBjYWNoZVJlYWRUb2tlbnM6IHoubnVtYmVyKCksXG4gIGNhY2hlV3JpdGVUb2tlbnM6IHoubnVtYmVyKCksXG4gIHJlYXNvbmluZ1Rva2Vuczogei5udW1iZXIoKSxcbiAgc3RlcENvdW50OiB6Lm51bWJlcigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBNZXNzYWdlVXNhZ2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHN0ZXBzOiB6LmFycmF5KFN0ZXBVc2FnZVNjaGVtYSksXG4gIHN1bW1hcnk6IFVzYWdlU3VtbWFyeVNjaGVtYSxcbn0pO1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlVXNhZ2UgPSB6LmluZmVyPHR5cGVvZiBNZXNzYWdlVXNhZ2VTY2hlbWE+O1xuZXhwb3J0IHR5cGUgVXNhZ2VTdW1tYXJ5ID0gei5pbmZlcjx0eXBlb2YgVXNhZ2VTdW1tYXJ5U2NoZW1hPjtcbmV4cG9ydCB0eXBlIFN0ZXBVc2FnZSA9IHouaW5mZXI8dHlwZW9mIFN0ZXBVc2FnZVNjaGVtYT47XG5cbmV4cG9ydCBjb25zdCBJbnRlcnJ1cHRlZExhc3RQYXJ0U2NoZW1hID0gei5vYmplY3Qoe1xuICBpbmRleDogei5udW1iZXIoKSxcbiAgcGFydDogei51bmtub3duKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IE1lc3NhZ2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkOiB6LnN0cmluZygpLFxuICBzZXNzaW9uSWQ6IHouc3RyaW5nKCksXG4gIHJvbGU6IHouZW51bShbXCJ1c2VyXCIsIFwiYXNzaXN0YW50XCIsIFwic3lzdGVtXCJdKSxcbiAgY3JlYXRlZEF0OiB6Lm51bWJlcigpLFxuICBzdGFydGVkQXQ6IHoubnVtYmVyKCkubnVsbGFibGUoKSxcbiAgY29tcGxldGVkQXQ6IHoubnVtYmVyKCkubnVsbGFibGUoKSxcbiAgaW50ZXJydXB0ZWRBdDogei5udW1iZXIoKS5udWxsYWJsZSgpLFxuICBpbnRlcnJ1cHRlZExhc3RQYXJ0OiBJbnRlcnJ1cHRlZExhc3RQYXJ0U2NoZW1hLm51bGxhYmxlKCkuZGVmYXVsdChudWxsKSxcbiAgdXNhZ2U6IE1lc3NhZ2VVc2FnZVNjaGVtYS5udWxsYWJsZSgpLFxufSk7XG5cbi8qKlxuICogVGhlIGBwYXJ0YCBmaWVsZCBjb3JyZXNwb25kcyB0byBgVUlNZXNzYWdlW1wicGFydHNcIl1bbnVtYmVyXWAgZnJvbSB0aGUgYGFpYCBwYWNrYWdlLlxuICogV2UgdXNlIGB6LnVua25vd24oKWAgYmVjYXVzZSB0aGUgZXhhY3Qgc2hhcGUgdmFyaWVzIGJ5IHBhcnQgdHlwZSAodGV4dCwgdG9vbC1jYWxsLFxuICogdG9vbC1yZXN1bHQsIGV0Yy4pIGFuZCBtYXkgZXZvbHZlIHdpdGggdGhlIEFJIFNESy4gVGhlIFJQQyBsYXllciBqdXN0IHBhc3NlcyBpdCB0aHJvdWdoLlxuICovXG5leHBvcnQgY29uc3QgUGFydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgaWQ6IHouc3RyaW5nKCksXG4gIG1lc3NhZ2VJZDogei5zdHJpbmcoKSxcbiAgc2Vzc2lvbklkOiB6LnN0cmluZygpLFxuICBpbmRleDogei5udW1iZXIoKSxcbiAgcGFydDogei51bmtub3duKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENvbW1hbmRSZXN1bHRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHN0ZG91dDogei5zdHJpbmcoKSxcbiAgc3RkZXJyOiB6LnN0cmluZygpLFxuICBleGl0Q29kZTogei5udW1iZXIoKSxcbiAgY29tcGxldGVkQXQ6IHoubnVtYmVyKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFNhbmRib3hSZWNvcmRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkOiB6LnN0cmluZygpLFxuICBjb25maWc6IFNhbmRib3hDb25maWdTY2hlbWEsXG4gIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5udWxsYWJsZSgpLFxuICBjcmVhdGVkQXQ6IHoubnVtYmVyKCkubnVsbGFibGUoKSxcbiAgbGFzdEFjdGl2aXR5QXQ6IHoubnVtYmVyKCkubnVsbGFibGUoKSxcbiAgYWNxdWlyaW5nTG9ja0lkOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIGFjcXVpcmluZ0xvY2tBdDogei5udW1iZXIoKS5udWxsYWJsZSgpLFxuICBwcm92aWRlck1ldGFkYXRhOiB6XG4gICAgLmRpc2NyaW1pbmF0ZWRVbmlvbihcInByb3ZpZGVyXCIsIFtcbiAgICAgIHoub2JqZWN0KHtcbiAgICAgICAgcHJvdmlkZXI6IHoubGl0ZXJhbChcInZlcmNlbFwiKSxcbiAgICAgICAgc2FuZGJveElkOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gICAgICAgIHNuYXBzaG90SWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgICAgIH0pLFxuICAgIF0pXG4gICAgLm9wdGlvbmFsKCksXG59KTtcblxuY29uc3QgU2Vzc2lvblVwZGF0ZVNjaGVtYSA9IFNlc3Npb25TY2hlbWEub21pdCh7XG4gIGlkOiB0cnVlLFxuICBnZW5lcmF0aW9uOiB0cnVlLFxufSlcbiAgLnBhcnRpYWwoKVxuICAuZXh0ZW5kKHtcbiAgICBpZDogU2Vzc2lvblNjaGVtYS5zaGFwZS5pZCxcbiAgICBnZW5lcmF0aW9uOiBHZW5lcmF0aW9uU2NoZW1hLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG5jb25zdCBTYW5kYm94VXBkYXRlU2NoZW1hID0gU2FuZGJveFJlY29yZFNjaGVtYS5vbWl0KHsgaWQ6IHRydWUgfSlcbiAgLnBhcnRpYWwoKVxuICAuZXh0ZW5kKHtcbiAgICBpZDogU2FuZGJveFJlY29yZFNjaGVtYS5zaGFwZS5pZCxcbiAgfSlcbiAgLnN0cmljdCgpO1xuXG5jb25zdCBDb21tYW5kQmFzZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgaWQ6IHouc3RyaW5nKCksXG4gIHNlc3Npb25JZDogei5zdHJpbmcoKSxcbiAgY29tbWFuZDogei5zdHJpbmcoKSxcbiAgYXJnczogei5hcnJheSh6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICBzdGFydGVkQXQ6IHoubnVtYmVyKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IENvbW1hbmRTY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbihcInN0YXR1c1wiLCBbXG4gIENvbW1hbmRCYXNlU2NoZW1hLmV4dGVuZCh7IHN0YXR1czogei5saXRlcmFsKFwicnVubmluZ1wiKSB9KSxcbiAgQ29tbWFuZEJhc2VTY2hlbWEuZXh0ZW5kKHtcbiAgICBzdGF0dXM6IHoubGl0ZXJhbChcImNvbXBsZXRlZFwiKSxcbiAgICByZXN1bHQ6IENvbW1hbmRSZXN1bHRTY2hlbWEsXG4gIH0pLFxuICBDb21tYW5kQmFzZVNjaGVtYS5leHRlbmQoe1xuICAgIHN0YXR1czogei5saXRlcmFsKFwia2lsbGVkXCIpLFxuICAgIHJlc3VsdDogQ29tbWFuZFJlc3VsdFNjaGVtYS5vcHRpb25hbCgpLFxuICB9KSxcbiAgQ29tbWFuZEJhc2VTY2hlbWEuZXh0ZW5kKHtcbiAgICBzdGF0dXM6IHoubGl0ZXJhbChcImZhaWxlZFwiKSxcbiAgICByZXN1bHQ6IENvbW1hbmRSZXN1bHRTY2hlbWEsXG4gIH0pLFxuXSk7XG5cbmZ1bmN0aW9uIExpc3RSZXN1bHRTY2hlbWE8VCBleHRlbmRzIHouWm9kVHlwZUFueT4oaXRlbVNjaGVtYTogVCkge1xuICByZXR1cm4gei5vYmplY3Qoe1xuICAgIGl0ZW1zOiB6LmFycmF5KGl0ZW1TY2hlbWEpLFxuICAgIG5leHRDdXJzb3I6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCBTZXR1cFNuYXBzaG90U2NoZW1hID0gei5vYmplY3Qoe1xuICBrZXk6IHouc3RyaW5nKCksXG4gIHNuYXBzaG90SWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgY3JlYXRlZEF0OiB6Lm51bWJlcigpLFxuICBsYXN0VXNlZEF0OiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gIGFjcXVpcmluZ0xvY2tJZDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICBhY3F1aXJpbmdMb2NrQXQ6IHoubnVtYmVyKCkubnVsbGFibGUoKSxcbn0pO1xuXG5jb25zdCBtZXRob2RzID0ge1xuICBcInNlc3Npb24uZ2V0XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHsgaWQ6IHouc3RyaW5nKCkgfSksXG4gICAgcmVzdWx0OiBTZXNzaW9uU2NoZW1hLm51bGxhYmxlKCksXG4gIH0sXG4gIFwic2Vzc2lvbi5zZXRcIjoge1xuICAgIHBhcmFtczogU2Vzc2lvblNjaGVtYSxcbiAgICByZXN1bHQ6IFNlc3Npb25TY2hlbWEsXG4gIH0sXG4gIFwic2Vzc2lvbi51cGRhdGVcIjoge1xuICAgIHBhcmFtczogU2Vzc2lvblVwZGF0ZVNjaGVtYSxcbiAgICByZXN1bHQ6IFNlc3Npb25TY2hlbWEsXG4gIH0sXG4gIFwic2Vzc2lvbi5saXN0XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHtcbiAgICAgIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICAgICAgb3JkZXI6IHpcbiAgICAgICAgLmVudW0oW1xuICAgICAgICAgIFwiY3JlYXRlZEF0X2FzY1wiLFxuICAgICAgICAgIFwiY3JlYXRlZEF0X2Rlc2NcIixcbiAgICAgICAgICBcInVwZGF0ZWRBdF9hc2NcIixcbiAgICAgICAgICBcInVwZGF0ZWRBdF9kZXNjXCIsXG4gICAgICAgIF0pXG4gICAgICAgIC5vcHRpb25hbCgpLFxuICAgICAgY3Vyc29yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBsaW1pdDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgIH0pLFxuICAgIHJlc3VsdDogTGlzdFJlc3VsdFNjaGVtYShTZXNzaW9uU2NoZW1hKSxcbiAgfSxcbiAgXCJzZXNzaW9uLmxpc3RCeVNhbmRib3hcIjoge1xuICAgIHBhcmFtczogei5vYmplY3Qoe1xuICAgICAgc2FuZGJveElkOiB6LnN0cmluZygpLFxuICAgICAgdGFnczogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLm9wdGlvbmFsKCksXG4gICAgICBvcmRlcjogelxuICAgICAgICAuZW51bShbXG4gICAgICAgICAgXCJjcmVhdGVkQXRfYXNjXCIsXG4gICAgICAgICAgXCJjcmVhdGVkQXRfZGVzY1wiLFxuICAgICAgICAgIFwidXBkYXRlZEF0X2FzY1wiLFxuICAgICAgICAgIFwidXBkYXRlZEF0X2Rlc2NcIixcbiAgICAgICAgXSlcbiAgICAgICAgLm9wdGlvbmFsKCksXG4gICAgICBjdXJzb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgIGxpbWl0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgfSksXG4gICAgcmVzdWx0OiBMaXN0UmVzdWx0U2NoZW1hKFNlc3Npb25TY2hlbWEpLFxuICB9LFxuICBcInNlc3Npb24uZGVsZXRlXCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHsgaWQ6IHouc3RyaW5nKCkgfSksXG4gICAgcmVzdWx0OiB6LnZvaWQoKSxcbiAgfSxcbiAgXCJzZXNzaW9uLnRhZy5zZXRcIjoge1xuICAgIHBhcmFtczogei5vYmplY3Qoe1xuICAgICAgc2Vzc2lvbklkOiB6LnN0cmluZygpLFxuICAgICAgdGFnczogei5yZWNvcmQoei5zdHJpbmcoKSwgei51bmtub3duKCkpLFxuICAgIH0pLFxuICAgIHJlc3VsdDogU2Vzc2lvblNjaGVtYSxcbiAgfSxcbiAgXCJtZXNzYWdlLmdldFwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7IGlkOiB6LnN0cmluZygpIH0pLFxuICAgIHJlc3VsdDogTWVzc2FnZVNjaGVtYS5udWxsYWJsZSgpLFxuICB9LFxuICBcIm1lc3NhZ2Uuc2V0XCI6IHtcbiAgICBwYXJhbXM6IE1lc3NhZ2VTY2hlbWEsXG4gICAgcmVzdWx0OiBNZXNzYWdlU2NoZW1hLFxuICB9LFxuICBcIm1lc3NhZ2UubGlzdFwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7XG4gICAgICBzZXNzaW9uSWQ6IHouc3RyaW5nKCksXG4gICAgICBjdXJzb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgIGxpbWl0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgfSksXG4gICAgcmVzdWx0OiBMaXN0UmVzdWx0U2NoZW1hKE1lc3NhZ2VTY2hlbWEpLFxuICB9LFxuICBcInBhcnQubGlzdEJ5TWVzc2FnZVwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7XG4gICAgICBtZXNzYWdlSWQ6IHouc3RyaW5nKCksXG4gICAgICBjdXJzb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgIGxpbWl0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgfSksXG4gICAgcmVzdWx0OiBMaXN0UmVzdWx0U2NoZW1hKFBhcnRTY2hlbWEpLFxuICB9LFxuICBcInBhcnQubGlzdEJ5U2Vzc2lvblwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7XG4gICAgICBzZXNzaW9uSWQ6IHouc3RyaW5nKCksXG4gICAgICBjdXJzb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgIGxpbWl0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgfSksXG4gICAgcmVzdWx0OiBMaXN0UmVzdWx0U2NoZW1hKFBhcnRTY2hlbWEpLFxuICB9LFxuICBcInBhcnQuc2V0XCI6IHtcbiAgICBwYXJhbXM6IFBhcnRTY2hlbWEsXG4gICAgcmVzdWx0OiBQYXJ0U2NoZW1hLFxuICB9LFxuICBcInBhcnQuZGVsZXRlXCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHsgaWQ6IHouc3RyaW5nKCkgfSksXG4gICAgcmVzdWx0OiB6LnZvaWQoKSxcbiAgfSxcbiAgXCJzYW5kYm94LmdldFwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7IGtleTogei5zdHJpbmcoKSB9KSxcbiAgICByZXN1bHQ6IFNhbmRib3hSZWNvcmRTY2hlbWEubnVsbGFibGUoKSxcbiAgfSxcbiAgXCJzYW5kYm94LmdldEJ5U2Vzc2lvblwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7IHNlc3Npb25JZDogei5zdHJpbmcoKSB9KSxcbiAgICByZXN1bHQ6IFNhbmRib3hSZWNvcmRTY2hlbWEubnVsbGFibGUoKSxcbiAgfSxcbiAgXCJzYW5kYm94LnNldFwiOiB7XG4gICAgcGFyYW1zOiBTYW5kYm94UmVjb3JkU2NoZW1hLFxuICAgIHJlc3VsdDogei52b2lkKCksXG4gIH0sXG4gIFwic2FuZGJveC51cGRhdGVcIjoge1xuICAgIHBhcmFtczogU2FuZGJveFVwZGF0ZVNjaGVtYSxcbiAgICByZXN1bHQ6IFNhbmRib3hSZWNvcmRTY2hlbWEsXG4gIH0sXG4gIFwic2FuZGJveC5saXN0XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHtcbiAgICAgIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICAgICAgb3JkZXI6IHpcbiAgICAgICAgLmVudW0oW1xuICAgICAgICAgIFwiY3JlYXRlZEF0X2FzY1wiLFxuICAgICAgICAgIFwiY3JlYXRlZEF0X2Rlc2NcIixcbiAgICAgICAgICBcImxhc3RBY3Rpdml0eUF0X2FzY1wiLFxuICAgICAgICAgIFwibGFzdEFjdGl2aXR5QXRfZGVzY1wiLFxuICAgICAgICBdKVxuICAgICAgICAub3B0aW9uYWwoKSxcbiAgICAgIGN1cnNvcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgbGltaXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICB9KSxcbiAgICByZXN1bHQ6IExpc3RSZXN1bHRTY2hlbWEoU2FuZGJveFJlY29yZFNjaGVtYSksXG4gIH0sXG4gIFwic2FuZGJveC50YWcuc2V0XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHtcbiAgICAgIHNhbmRib3hJZDogei5zdHJpbmcoKSxcbiAgICAgIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSxcbiAgICB9KSxcbiAgICByZXN1bHQ6IFNhbmRib3hSZWNvcmRTY2hlbWEsXG4gIH0sXG4gIFwiY29tbWFuZC5nZXRcIjoge1xuICAgIHBhcmFtczogei5vYmplY3QoeyBpZDogei5zdHJpbmcoKSB9KSxcbiAgICByZXN1bHQ6IENvbW1hbmRTY2hlbWEubnVsbGFibGUoKSxcbiAgfSxcbiAgXCJjb21tYW5kLnNldFwiOiB7XG4gICAgcGFyYW1zOiBDb21tYW5kU2NoZW1hLFxuICAgIHJlc3VsdDogQ29tbWFuZFNjaGVtYSxcbiAgfSxcbiAgXCJjb21tYW5kLmxpc3RcIjoge1xuICAgIHBhcmFtczogei5vYmplY3Qoe1xuICAgICAgc2Vzc2lvbklkOiB6LnN0cmluZygpLFxuICAgICAgaW5jbHVkZUZpbmlzaGVkOiB6LmJvb2xlYW4oKS5vcHRpb25hbCgpLFxuICAgICAgY3Vyc29yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBsaW1pdDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgIH0pLFxuICAgIHJlc3VsdDogTGlzdFJlc3VsdFNjaGVtYShDb21tYW5kU2NoZW1hKSxcbiAgfSxcbiAgXCJzZXR1cC5nZXRcIjoge1xuICAgIHBhcmFtczogei5vYmplY3QoeyBrZXk6IHouc3RyaW5nKCkgfSksXG4gICAgcmVzdWx0OiBTZXR1cFNuYXBzaG90U2NoZW1hLm51bGxhYmxlKCksXG4gIH0sXG4gIFwic2V0dXAuc2V0XCI6IHtcbiAgICBwYXJhbXM6IFNldHVwU25hcHNob3RTY2hlbWEsXG4gICAgcmVzdWx0OiB6LnZvaWQoKSxcbiAgfSxcbiAgXCJzZXR1cC5hY3F1aXJlTG9ja1wiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7XG4gICAgICBrZXk6IHouc3RyaW5nKCksXG4gICAgICBsb2NrSWQ6IHouc3RyaW5nKCksXG4gICAgICBsb2NrVGltZW91dE1zOiB6Lm51bWJlcigpLFxuICAgIH0pLFxuICAgIHJlc3VsdDogU2V0dXBTbmFwc2hvdFNjaGVtYS5udWxsYWJsZSgpLFxuICB9LFxuICBcInNhbmRib3guYWNxdWlyZUxvY2tcIjoge1xuICAgIHBhcmFtczogei5vYmplY3Qoe1xuICAgICAgcmVjb3JkOiBTYW5kYm94UmVjb3JkU2NoZW1hLFxuICAgICAgbG9ja1RpbWVvdXRNczogei5udW1iZXIoKSxcbiAgICB9KSxcbiAgICByZXN1bHQ6IFNhbmRib3hSZWNvcmRTY2hlbWEubnVsbGFibGUoKSxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB7IG1ldGhvZHMgfTtcbmV4cG9ydCB0eXBlIFN0b3JhZ2VNZXRob2RzID0gdHlwZW9mIG1ldGhvZHM7XG5leHBvcnQgdHlwZSBNZXRob2ROYW1lID0ga2V5b2YgU3RvcmFnZU1ldGhvZHM7XG5leHBvcnQgY29uc3QgU1RPUkFHRV9SUENfTUVUSE9EUyA9IE9iamVjdC5rZXlzKG1ldGhvZHMpIGFzIE1ldGhvZE5hbWVbXTtcbiIsICJpbXBvcnQgdHlwZSB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgeyBTdG9yYWdlQ29uZmxpY3RFcnJvciB9IGZyb20gXCIuLi9lcnJvcnNcIjtcbmltcG9ydCB7IHR5cGUgTWV0aG9kTmFtZSwgbWV0aG9kcywgdHlwZSBTdG9yYWdlTWV0aG9kcyB9IGZyb20gXCIuL3JwY1wiO1xuXG5leHBvcnQgdHlwZSBIYW5kbGVycyA9IHtcbiAgW0sgaW4gTWV0aG9kTmFtZV06IChcbiAgICBwYXJhbXM6IHouaW5mZXI8U3RvcmFnZU1ldGhvZHNbS11bXCJwYXJhbXNcIl0+XG4gICkgPT4gUHJvbWlzZTx6LmluZmVyPFN0b3JhZ2VNZXRob2RzW0tdW1wicmVzdWx0XCJdPj47XG59O1xuXG5leHBvcnQgdHlwZSBScGNSZXF1ZXN0ID0ge1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGFyYW1zOiB1bmtub3duO1xufTtcblxuZXhwb3J0IHR5cGUgUnBjU3VjY2Vzc1Jlc3BvbnNlPFQgPSB1bmtub3duPiA9IHtcbiAgcmVzdWx0OiBUO1xufTtcblxuZXhwb3J0IHR5cGUgUnBjRXJyb3JSZXNwb25zZSA9IHtcbiAgZXJyb3I6IHsgY29kZTogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfTtcbn07XG5cbmV4cG9ydCB0eXBlIFJwY1Jlc3BvbnNlPFQgPSB1bmtub3duPiA9IFJwY1N1Y2Nlc3NSZXNwb25zZTxUPiB8IFJwY0Vycm9yUmVzcG9uc2U7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVTdG9yYWdlUnBjKFxuICBib2R5OiBScGNSZXF1ZXN0LFxuICBoYW5kbGVyczogSGFuZGxlcnNcbik6IFByb21pc2U8UnBjUmVzcG9uc2U+IHtcbiAgY29uc3QgeyBtZXRob2QsIHBhcmFtcyB9ID0gYm9keTtcblxuICBpZiAoIShtZXRob2QgaW4gbWV0aG9kcykpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHsgY29kZTogXCJNRVRIT0RfTk9UX0ZPVU5EXCIsIG1lc3NhZ2U6IGBVbmtub3duIG1ldGhvZDogJHttZXRob2R9YCB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdCBtZXRob2ROYW1lID0gbWV0aG9kIGFzIE1ldGhvZE5hbWU7XG4gIGNvbnN0IHNjaGVtYSA9IG1ldGhvZHNbbWV0aG9kTmFtZV0ucGFyYW1zO1xuICBjb25zdCBwYXJzZWQgPSBzY2hlbWEuc2FmZVBhcnNlKHBhcmFtcyk7XG5cbiAgaWYgKCFwYXJzZWQuc3VjY2Vzcykge1xuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjoge1xuICAgICAgICBjb2RlOiBcIklOVkFMSURfUEFSQU1TXCIsXG4gICAgICAgIG1lc3NhZ2U6IHBhcnNlZC5lcnJvci5pc3N1ZXNcbiAgICAgICAgICAubWFwKChpKSA9PiBgJHtpLnBhdGguam9pbihcIi5cIil9OiAke2kubWVzc2FnZX1gKVxuICAgICAgICAgIC5qb2luKFwiLCBcIiksXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICB0cnkge1xuICAgIGNvbnN0IGhhbmRsZXIgPSBoYW5kbGVyc1ttZXRob2ROYW1lXSBhcyAoXG4gICAgICBwYXJhbXM6IHVua25vd25cbiAgICApID0+IFByb21pc2U8dW5rbm93bj47XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaGFuZGxlcihwYXJzZWQuZGF0YSk7XG4gICAgcmV0dXJuIHsgcmVzdWx0IH07XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zdCBpc0NvbmZsaWN0ID1cbiAgICAgIGUgaW5zdGFuY2VvZiBTdG9yYWdlQ29uZmxpY3RFcnJvciB8fFxuICAgICAgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLm5hbWUgPT09IFwiU3RvcmFnZUNvbmZsaWN0RXJyb3JcIik7XG5cbiAgICBpZiAoaXNDb25mbGljdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBjb2RlOiBcIkNPTkZMSUNUXCIsXG4gICAgICAgICAgbWVzc2FnZTogZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGNvZGU6IFwiSU5URVJOQUxfRVJST1JcIixcbiAgICAgICAgbWVzc2FnZTogZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iLCAiZXhwb3J0IHtcbiAgREVGQVVMVF9OQU1FU1BBQ0UsXG4gIGdldFN0b3JhZ2UsXG4gIExPQ0FMX1NUT1JBR0VfVkVSU0lPTixcbiAgdHlwZSBScGNGbixcbn0gZnJvbSBcIi4vY2xpZW50XCI7XG5leHBvcnQge1xuICB0eXBlIEhhbmRsZXJzLFxuICBoYW5kbGVTdG9yYWdlUnBjLFxuICB0eXBlIFJwY0Vycm9yUmVzcG9uc2UsXG4gIHR5cGUgUnBjUmVxdWVzdCxcbiAgdHlwZSBScGNSZXNwb25zZSxcbiAgdHlwZSBScGNTdWNjZXNzUmVzcG9uc2UsXG59IGZyb20gXCIuL2hhbmRsZXJcIjtcbmV4cG9ydCB7XG4gIHR5cGUgTWVzc2FnZVVzYWdlLFxuICB0eXBlIE1ldGhvZE5hbWUsXG4gIHR5cGUgU2FuZGJveENvbmZpZyxcbiAgU1RPUkFHRV9SUENfTUVUSE9EUyxcbiAgdHlwZSBTdGVwVXNhZ2UsXG4gIHR5cGUgU3RvcmFnZU1ldGhvZHMsXG4gIHR5cGUgVXNhZ2VTdW1tYXJ5LFxufSBmcm9tIFwiLi9ycGNcIjtcbmV4cG9ydCB0eXBlIHtcbiAgQ29tbWFuZCxcbiAgTGlzdFJlc3VsdCxcbiAgTWVzc2FnZSxcbiAgUGFydCxcbiAgUmVzb2x2ZWRTdG9yYWdlLFxuICBTYW5kYm94UmVjb3JkLFxuICBTZXNzaW9uLFxuICBTZXR1cFNuYXBzaG90LFxuICBTdG9yYWdlLFxuICBTdG9yYWdlQ29uZmlnLFxuICBUeXBlZFNlc3Npb24sXG4gIFR5cGVkU3RvcmFnZSxcbn0gZnJvbSBcIi4vdHlwZXNcIjtcbiIsICJpbXBvcnQgeyBzbGVlcCB9IGZyb20gXCJ3b3JrZmxvd1wiO1xuaW1wb3J0IHR5cGUgeyBTYW5kYm94TGlmZWN5Y2xlSW5wdXQgfSBmcm9tIFwiLi4vdHlwZXNcIjtcbmltcG9ydCB7IGNoZWNrQW5kU25hcHNob3RTdGVwIH0gZnJvbSBcIi4vbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzXCI7XG5cbmV4cG9ydCB0eXBlIHsgU2FuZGJveExpZmVjeWNsZUlucHV0IH07XG5cbmNvbnN0IERFRkFVTFRfUE9MTF9NUyA9IDIgKiA2MCAqIDEwMDA7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzYW5kYm94TGlmZWN5Y2xlV29ya2Zsb3coe1xuICBpbnB1dCxcbn06IHtcbiAgaW5wdXQ6IFNhbmRib3hMaWZlY3ljbGVJbnB1dDtcbn0pIHtcbiAgXCJ1c2Ugd29ya2Zsb3dcIjtcblxuICBsZXQgbmV4dFBvbGxNcyA9IERFRkFVTFRfUE9MTF9NUztcblxuICB3aGlsZSAodHJ1ZSkge1xuICAgIGF3YWl0IHNsZWVwKG5leHRQb2xsTXMpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgY2hlY2tBbmRTbmFwc2hvdFN0ZXAoaW5wdXQpO1xuXG4gICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIEVycm9yIHx8IHJlc3VsdC5hY3Rpb24gPT09IFwiZXhpdFwiKSB7XG4gICAgICBicmVhaztcbiAgICB9XG5cbiAgICBuZXh0UG9sbE1zID0gcmVzdWx0Lm5leHRQb2xsTXM7XG4gIH1cbn1cbiIsICJpbXBvcnQgdHlwZSB7IFNhbmRib3hMaWZlY3ljbGVJbnB1dCB9IGZyb20gXCIuLi90eXBlc1wiO1xuXG5jb25zdCBERUZBVUxUX1BPTExfSU5URVJWQUxfTVMgPSAyICogNjAgKiAxMDAwO1xuY29uc3QgREVGQVVMVF9JRExFX1RJTUVPVVRfTVMgPSA1ICogNjAgKiAxMDAwO1xuY29uc3QgU05BUFNIT1RfQkVGT1JFX1RJTUVPVVRfTVMgPSAxMCAqIDYwICogMTAwMDtcblxuY29uc3QgZ2V0VGVzdENyZWRlbnRpYWxzID0gKCkgPT5cbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwidGVzdFwiXG4gICAgPyB7XG4gICAgICAgIHRva2VuOiBwcm9jZXNzLmVudi5URVNUX1ZFUkNFTF9UT0tFTixcbiAgICAgICAgdGVhbUlkOiBwcm9jZXNzLmVudi5URVNUX1ZFUkNFTF9URUFNX0lELFxuICAgICAgICBwcm9qZWN0SWQ6IHByb2Nlc3MuZW52LlRFU1RfVkVSQ0VMX1BST0pFQ1RfSUQsXG4gICAgICB9XG4gICAgOiB7fTtcblxuZXhwb3J0IHR5cGUgTGlmZWN5Y2xlU3RlcFJlc3VsdCA9XG4gIHwgeyBhY3Rpb246IFwiY29udGludWVcIjsgbmV4dFBvbGxNczogbnVtYmVyIH1cbiAgfCB7XG4gICAgICBhY3Rpb246IFwiZXhpdFwiO1xuICAgICAgcmVhc29uOiBcInNhbmRib3hJZF9jaGFuZ2VkXCIgfCBcImlkbGVcIiB8IFwidGltZW91dFwiIHwgXCJub3RfZm91bmRcIjtcbiAgICB9O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2hlY2tBbmRTbmFwc2hvdFN0ZXAoXG4gIGlucHV0OiBTYW5kYm94TGlmZWN5Y2xlSW5wdXRcbik6IFByb21pc2U8RXJyb3IgfCBMaWZlY3ljbGVTdGVwUmVzdWx0PiB7XG4gIFwidXNlIHN0ZXBcIjtcblxuICBjb25zdCB7IFNhbmRib3g6IFZlcmNlbFNhbmRib3hTREsgfSA9IGF3YWl0IGltcG9ydChcIi4vdmVyY2VsLXNka1wiKTtcbiAgY29uc3QgeyBnZXRTdG9yYWdlIH0gPSBhd2FpdCBpbXBvcnQoXCIuLi8uLi9zdG9yYWdlXCIpO1xuICBpZiAoIWlucHV0LnJwYykge1xuICAgIHRocm93IG5ldyBFcnJvcihcIlJQQyBub3QgZm91bmRcIik7XG4gIH1cbiAgY29uc3Qgc3RvcmFnZSA9IGdldFN0b3JhZ2Uoe1xuICAgIGNvbmZpZzogaW5wdXQuc3RvcmFnZUNvbmZpZyxcbiAgICBycGM6IGlucHV0LnJwYyxcbiAgfSk7XG4gIGNvbnN0IHJlY29yZCA9IGF3YWl0IHN0b3JhZ2Uuc2FuZGJveC5nZXQoaW5wdXQuaWQpO1xuICBpZiAocmVjb3JkIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICByZXR1cm4geyBhY3Rpb246IFwiZXhpdFwiLCByZWFzb246IFwibm90X2ZvdW5kXCIgfTtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRTYW5kYm94SWQgPVxuICAgIHJlY29yZC5wcm92aWRlck1ldGFkYXRhPy5wcm92aWRlciA9PT0gXCJ2ZXJjZWxcIlxuICAgICAgPyByZWNvcmQucHJvdmlkZXJNZXRhZGF0YS5zYW5kYm94SWRcbiAgICAgIDogbnVsbDtcblxuICBpZiAoY3VycmVudFNhbmRib3hJZCAhPT0gaW5wdXQudmVyY2VsU2FuZGJveElkKSB7XG4gICAgcmV0dXJuIHsgYWN0aW9uOiBcImV4aXRcIiwgcmVhc29uOiBcInNhbmRib3hJZF9jaGFuZ2VkXCIgfTtcbiAgfVxuXG4gIGlmICghY3VycmVudFNhbmRib3hJZCkge1xuICAgIHJldHVybiB7IGFjdGlvbjogXCJleGl0XCIsIHJlYXNvbjogXCJub3RfZm91bmRcIiB9O1xuICB9XG5cbiAgY29uc3QgY29uZmlnID0gcmVjb3JkLmNvbmZpZztcbiAgaWYgKGNvbmZpZy50eXBlICE9PSBcInZlcmNlbFwiKSB7XG4gICAgcmV0dXJuIHsgYWN0aW9uOiBcImV4aXRcIiwgcmVhc29uOiBcIm5vdF9mb3VuZFwiIH07XG4gIH1cblxuICBjb25zdCBwb2xsSW50ZXJ2YWxNcyA9XG4gICAgY29uZmlnLmxpZmVjeWNsZT8ucG9sbEludGVydmFsTXMgPz8gREVGQVVMVF9QT0xMX0lOVEVSVkFMX01TO1xuICBjb25zdCBpZGxlVGltZW91dE1zID1cbiAgICBjb25maWcubGlmZWN5Y2xlPy5zdG9wQWZ0ZXJJbmFjdGl2ZU1zID8/IERFRkFVTFRfSURMRV9USU1FT1VUX01TO1xuICBjb25zdCBzbmFwc2hvdEJlZm9yZVRpbWVvdXRNcyA9XG4gICAgY29uZmlnLmxpZmVjeWNsZT8uc25hcHNob3RCZWZvcmVUaW1lb3V0TXMgPz8gU05BUFNIT1RfQkVGT1JFX1RJTUVPVVRfTVM7XG5cbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3QgbGFzdEFjdGl2aXR5ID0gcmVjb3JkLmxhc3RBY3Rpdml0eUF0ID8/IHJlY29yZC5jcmVhdGVkQXQgPz8gbm93O1xuICBjb25zdCBpZGxlRHVyYXRpb24gPSBub3cgLSBsYXN0QWN0aXZpdHk7XG4gIGNvbnN0IHNob3VsZFNuYXBzaG90RHVlVG9JZGxlID0gaWRsZUR1cmF0aW9uID4gaWRsZVRpbWVvdXRNcztcblxuICBsZXQgc2hvdWxkU25hcHNob3REdWVUb1RpbWVvdXQgPSBmYWxzZTtcbiAgdHJ5IHtcbiAgICBjb25zdCBzYW5kYm94ID0gYXdhaXQgVmVyY2VsU2FuZGJveFNESy5nZXQoe1xuICAgICAgc2FuZGJveElkOiBjdXJyZW50U2FuZGJveElkLFxuICAgICAgLi4uZ2V0VGVzdENyZWRlbnRpYWxzKCksXG4gICAgfSk7XG4gICAgaWYgKHNhbmRib3gudGltZW91dCA8IHNuYXBzaG90QmVmb3JlVGltZW91dE1zKSB7XG4gICAgICBzaG91bGRTbmFwc2hvdER1ZVRvVGltZW91dCA9IHRydWU7XG4gICAgfVxuICB9IGNhdGNoIHtcbiAgICByZXR1cm4geyBhY3Rpb246IFwiZXhpdFwiLCByZWFzb246IFwibm90X2ZvdW5kXCIgfTtcbiAgfVxuXG4gIGlmIChzaG91bGRTbmFwc2hvdER1ZVRvSWRsZSB8fCBzaG91bGRTbmFwc2hvdER1ZVRvVGltZW91dCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzYW5kYm94ID0gYXdhaXQgVmVyY2VsU2FuZGJveFNESy5nZXQoe1xuICAgICAgICBzYW5kYm94SWQ6IGN1cnJlbnRTYW5kYm94SWQsXG4gICAgICAgIC4uLmdldFRlc3RDcmVkZW50aWFscygpLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBzbmFwc2hvdCA9IGF3YWl0IHNhbmRib3guc25hcHNob3QoKTtcbiAgICAgIGF3YWl0IHN0b3JhZ2Uuc2FuZGJveC51cGRhdGUoe1xuICAgICAgICBpZDogcmVjb3JkLmlkLFxuICAgICAgICBhY3F1aXJpbmdMb2NrSWQ6IG51bGwsXG4gICAgICAgIGFjcXVpcmluZ0xvY2tBdDogbnVsbCxcbiAgICAgICAgcHJvdmlkZXJNZXRhZGF0YToge1xuICAgICAgICAgIHByb3ZpZGVyOiBcInZlcmNlbFwiLFxuICAgICAgICAgIHNhbmRib3hJZDogbnVsbCxcbiAgICAgICAgICBzbmFwc2hvdElkOiBzbmFwc2hvdC5zbmFwc2hvdElkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGUgaW5zdGFuY2VvZiBFcnJvciA/IGUgOiBuZXcgRXJyb3IoU3RyaW5nKGUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGlvbjogXCJleGl0XCIsXG4gICAgICByZWFzb246IHNob3VsZFNuYXBzaG90RHVlVG9JZGxlID8gXCJpZGxlXCIgOiBcInRpbWVvdXRcIixcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIHsgYWN0aW9uOiBcImNvbnRpbnVlXCIsIG5leHRQb2xsTXM6IHBvbGxJbnRlcnZhbE1zIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscUJBQXdCO0FBQUE7QUFBQTs7O0FDQXhCLFlBRWEsc0JBS0EsY0FLQSxzQkFLQSxjQUtBLHNCQUtBLGNBS0E7QUFoQ2I7QUFBQTtBQUFBO0FBQUEsYUFBd0I7QUFFakIsSUFBTSx1QkFBTixjQUEwQyx5QkFBa0I7QUFBQSxNQUNqRSxNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsSUFDWCxDQUFDLEVBQUU7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
1015
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3NhbmRib3gvYmluZGluZ3MvdmVyY2VsLXNkay50cyIsICIuLi9zcmMvZXJyb3JzLnRzIiwgIi4uL3NyYy9zdG9yYWdlL2NsaWVudC50cyIsICIuLi9zcmMvc3RvcmFnZS9ycGMudHMiLCAiLi4vc3JjL3N0b3JhZ2UvaGFuZGxlci50cyIsICIuLi9zcmMvc3RvcmFnZS9pbmRleC50cyIsICIuLi9zcmMvc2FuZGJveC9iaW5kaW5ncy9saWZlY3ljbGUtd29ya2Zsb3cudHMiLCAiLi4vc3JjL3NhbmRib3gvYmluZGluZ3MvbGlmZWN5Y2xlLXdvcmtmbG93LXN0ZXBzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJleHBvcnQgeyBTYW5kYm94IH0gZnJvbSBcIkB2ZXJjZWwvc2FuZGJveFwiO1xuIiwgImltcG9ydCAqIGFzIGVycm9yZSBmcm9tIFwiZXJyb3JlXCI7XG5cbmV4cG9ydCBjbGFzcyBTZXNzaW9uTm90Rm91bmRFcnJvciBleHRlbmRzIGVycm9yZS5jcmVhdGVUYWdnZWRFcnJvcih7XG4gIG5hbWU6IFwiU2Vzc2lvbk5vdEZvdW5kRXJyb3JcIixcbiAgbWVzc2FnZTogXCJTZXNzaW9uICRpZCBub3QgZm91bmRcIixcbn0pIHt9XG5cbmV4cG9ydCBjbGFzcyBTZXNzaW9uRXJyb3IgZXh0ZW5kcyBlcnJvcmUuY3JlYXRlVGFnZ2VkRXJyb3Ioe1xuICBuYW1lOiBcIlNlc3Npb25FcnJvclwiLFxuICBtZXNzYWdlOiBcIlNlc3Npb24gJGlkIGZhaWxlZDogJHJlYXNvblwiLFxufSkge31cblxuZXhwb3J0IGNsYXNzIFNhbmRib3hOb3RGb3VuZEVycm9yIGV4dGVuZHMgZXJyb3JlLmNyZWF0ZVRhZ2dlZEVycm9yKHtcbiAgbmFtZTogXCJTYW5kYm94Tm90Rm91bmRFcnJvclwiLFxuICBtZXNzYWdlOiBcIlNhbmRib3ggJGlkIG5vdCBmb3VuZFwiLFxufSkge31cblxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VFcnJvciBleHRlbmRzIGVycm9yZS5jcmVhdGVUYWdnZWRFcnJvcih7XG4gIG5hbWU6IFwiU3RvcmFnZUVycm9yXCIsXG4gIG1lc3NhZ2U6IFwiJHJlYXNvblwiLFxufSkge31cblxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VDb25mbGljdEVycm9yIGV4dGVuZHMgZXJyb3JlLmNyZWF0ZVRhZ2dlZEVycm9yKHtcbiAgbmFtZTogXCJTdG9yYWdlQ29uZmxpY3RFcnJvclwiLFxuICBtZXNzYWdlOiBcIiRyZWFzb25cIixcbn0pIHt9XG5cbmV4cG9ydCBjbGFzcyBTYW5kYm94RXJyb3IgZXh0ZW5kcyBlcnJvcmUuY3JlYXRlVGFnZ2VkRXJyb3Ioe1xuICBuYW1lOiBcIlNhbmRib3hFcnJvclwiLFxuICBtZXNzYWdlOiBcIiRyZWFzb25cIixcbn0pIHt9XG5cbmV4cG9ydCBjbGFzcyBNZXNzYWdlTm90Rm91bmRFcnJvciBleHRlbmRzIGVycm9yZS5jcmVhdGVUYWdnZWRFcnJvcih7XG4gIG5hbWU6IFwiTWVzc2FnZU5vdEZvdW5kRXJyb3JcIixcbiAgbWVzc2FnZTogXCJNZXNzYWdlICRpZCBub3QgZm91bmRcIixcbn0pIHt9XG4iLCAiaW1wb3J0IHR5cGUgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHtcbiAgTWVzc2FnZU5vdEZvdW5kRXJyb3IsXG4gIFNhbmRib3hOb3RGb3VuZEVycm9yLFxuICBTZXNzaW9uTm90Rm91bmRFcnJvcixcbiAgU3RvcmFnZUNvbmZsaWN0RXJyb3IsXG4gIFN0b3JhZ2VFcnJvcixcbn0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHR5cGUgeyBTdG9yYWdlTWV0aG9kcyB9IGZyb20gXCIuL3JwY1wiO1xuaW1wb3J0IHR5cGUge1xuICBDb21tYW5kLFxuICBMaXN0UmVzdWx0LFxuICBQYXJ0LFxuICBTZXR1cFNuYXBzaG90LFxuICBTdG9yYWdlLFxuICBTdG9yYWdlQ29uZmlnLFxufSBmcm9tIFwiLi90eXBlc1wiO1xuXG50eXBlIFJwY1Jlc3BvbnNlPFQ+ID1cbiAgfCB7IHJlc3VsdDogVCB9XG4gIHwgeyBlcnJvcjogeyBjb2RlOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9IH07XG5cbmV4cG9ydCB0eXBlIFJwY0ZuID0gKHBhcmFtczoge1xuICBuYW1lPzogc3RyaW5nO1xuICBtZXRob2Q6IHN0cmluZztcbiAgcGFyYW1zOiB1bmtub3duO1xuICBfcXVpZXQ/OiBib29sZWFuO1xufSkgPT4gUHJvbWlzZTxScGNSZXNwb25zZTx1bmtub3duPj47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlQ2xpZW50KHJwY0ZuOiBScGNGbiwgbmFtZT86IHN0cmluZyk6IFN0b3JhZ2Uge1xuICBhc3luYyBmdW5jdGlvbiBycGM8TSBleHRlbmRzIGtleW9mIFN0b3JhZ2VNZXRob2RzPihcbiAgICBtZXRob2Q6IE0sXG4gICAgcGFyYW1zOiB6LmluZmVyPFN0b3JhZ2VNZXRob2RzW01dW1wicGFyYW1zXCJdPlxuICApOiBQcm9taXNlPHouaW5mZXI8U3RvcmFnZU1ldGhvZHNbTV1bXCJyZXN1bHRcIl0+PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnBjRm4oeyBuYW1lLCBtZXRob2QsIHBhcmFtcyB9KTtcblxuICAgIGlmIChcImVycm9yXCIgaW4gcmVzdWx0KSB7XG4gICAgICBpZiAocmVzdWx0LmVycm9yLmNvZGUgPT09IFwiQ09ORkxJQ1RcIikge1xuICAgICAgICB0aHJvdyBuZXcgU3RvcmFnZUNvbmZsaWN0RXJyb3IoeyByZWFzb246IHJlc3VsdC5lcnJvci5tZXNzYWdlIH0pO1xuICAgICAgfVxuICAgICAgdGhyb3cgbmV3IFN0b3JhZ2VFcnJvcih7XG4gICAgICAgIHJlYXNvbjogYFske3Jlc3VsdC5lcnJvci5jb2RlfV0gJHtyZXN1bHQuZXJyb3IubWVzc2FnZX1gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5yZXN1bHQgYXMgei5pbmZlcjxTdG9yYWdlTWV0aG9kc1tNXVtcInJlc3VsdFwiXT47XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNlc3Npb246IHtcbiAgICAgIGdldDogYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnBjKFwic2Vzc2lvbi5nZXRcIiwgeyBpZCB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNlc3Npb25Ob3RGb3VuZEVycm9yKHsgaWQgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc2V0OiBhc3luYyAoc2Vzc2lvbikgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLnNldFwiLCBzZXNzaW9uKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB1cGRhdGU6IGFzeW5jIChvcHRzKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJwYyhcInNlc3Npb24udXBkYXRlXCIsIG9wdHMpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlQ29uZmxpY3RFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBkZWxldGU6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHJwYyhcInNlc3Npb24uZGVsZXRlXCIsIHsgaWQgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbGlzdDogYXN5bmMgKG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gYXdhaXQgcnBjKFwic2Vzc2lvbi5saXN0XCIsIHtcbiAgICAgICAgICAgIHRhZ3M6IG9wdHM/LnRhZ3MsXG4gICAgICAgICAgICBvcmRlcjogb3B0cz8ub3JkZXIsXG4gICAgICAgICAgICBjdXJzb3I6IG9wdHM/LmN1cnNvcixcbiAgICAgICAgICAgIGxpbWl0OiBvcHRzPy5saW1pdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsaXN0QnlTYW5kYm94OiBhc3luYyAob3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLmxpc3RCeVNhbmRib3hcIiwge1xuICAgICAgICAgICAgc2FuZGJveElkOiBvcHRzLnNhbmRib3hJZCxcbiAgICAgICAgICAgIHRhZ3M6IG9wdHMudGFncyxcbiAgICAgICAgICAgIG9yZGVyOiBvcHRzLm9yZGVyLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzLmN1cnNvcixcbiAgICAgICAgICAgIGxpbWl0OiBvcHRzLmxpbWl0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhZzoge1xuICAgICAgICBzZXQ6IGFzeW5jICh7IHNlc3Npb25JZCwgdGFncyB9KSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzZXNzaW9uLnRhZy5zZXRcIiwgeyBzZXNzaW9uSWQsIHRhZ3MgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gICAgbWVzc2FnZToge1xuICAgICAgbGlzdDogYXN5bmMgKHNlc3Npb25JZCwgb3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJtZXNzYWdlLmxpc3RcIiwge1xuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZ2V0OiBhc3luYyAoaWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJtZXNzYWdlLmdldFwiLCB7IGlkIH0pO1xuICAgICAgICAgIGlmIChyZXN1bHQgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZU5vdEZvdW5kRXJyb3IoeyBpZCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChtZXNzYWdlKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIGF3YWl0IHJwYyhcIm1lc3NhZ2Uuc2V0XCIsIG1lc3NhZ2UpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIHBhcnQ6IHtcbiAgICAgIGxpc3RCeU1lc3NhZ2U6IGFzeW5jIChtZXNzYWdlSWQsIG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJwYXJ0Lmxpc3RCeU1lc3NhZ2VcIiwge1xuICAgICAgICAgICAgbWVzc2FnZUlkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBMaXN0UmVzdWx0PFBhcnQ+O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxpc3RCeVNlc3Npb246IGFzeW5jIChzZXNzaW9uSWQsIG9wdHMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJwYXJ0Lmxpc3RCeVNlc3Npb25cIiwge1xuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBMaXN0UmVzdWx0PFBhcnQ+O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNldDogYXN5bmMgKHBhcnQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcInBhcnQuc2V0XCIsIHBhcnQpKSBhcyBQYXJ0O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGRlbGV0ZTogYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgcnBjKFwicGFydC5kZWxldGVcIiwgeyBpZCB9KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICBzYW5kYm94OiB7XG4gICAgICBnZXQ6IGFzeW5jIChrZXkpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJzYW5kYm94LmdldFwiLCB7IGtleSB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhbmRib3hOb3RGb3VuZEVycm9yKHsgaWQ6IGtleSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBnZXRCeVNlc3Npb246IGFzeW5jIChzZXNzaW9uSWQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBycGMoXCJzYW5kYm94LmdldEJ5U2Vzc2lvblwiLCB7IHNlc3Npb25JZCB9KTtcbiAgICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFNhbmRib3hOb3RGb3VuZEVycm9yKHsgaWQ6IHNlc3Npb25JZCB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChyZWNvcmQpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCBycGMoXCJzYW5kYm94LnNldFwiLCByZWNvcmQpO1xuICAgICAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlOiBhc3luYyAob3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzYW5kYm94LnVwZGF0ZVwiLCBvcHRzKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsaXN0OiBhc3luYyAob3B0cykgPT4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzYW5kYm94Lmxpc3RcIiwge1xuICAgICAgICAgICAgdGFnczogb3B0cz8udGFncyxcbiAgICAgICAgICAgIG9yZGVyOiBvcHRzPy5vcmRlcixcbiAgICAgICAgICAgIGN1cnNvcjogb3B0cz8uY3Vyc29yLFxuICAgICAgICAgICAgbGltaXQ6IG9wdHM/LmxpbWl0LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRhZzoge1xuICAgICAgICBzZXQ6IGFzeW5jICh7IHNhbmRib3hJZCwgdGFncyB9KSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBycGMoXCJzYW5kYm94LnRhZy5zZXRcIiwgeyBzYW5kYm94SWQsIHRhZ3MgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgYWNxdWlyZUxvY2s6IGFzeW5jIChyZWNvcmQsIGxvY2tUaW1lb3V0TXMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcInNhbmRib3guYWNxdWlyZUxvY2tcIiwge1xuICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgbG9ja1RpbWVvdXRNcyxcbiAgICAgICAgICB9KSkgYXMgaW1wb3J0KFwiLi90eXBlc1wiKS5TYW5kYm94UmVjb3JkIHwgbnVsbDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSxcbiAgICBzZXR1cDoge1xuICAgICAgZ2V0OiBhc3luYyAoa2V5KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCBycGMoXCJzZXR1cC5nZXRcIiwgeyBrZXkgfSkpIGFzIFNldHVwU25hcHNob3QgfCBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHNldDogYXN5bmMgKHNuYXBzaG90KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgcnBjKFwic2V0dXAuc2V0XCIsIHNuYXBzaG90KTtcbiAgICAgICAgICByZXR1cm4gc25hcHNob3Q7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN0b3JhZ2VFcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgU3RvcmFnZUVycm9yKHsgcmVhc29uOiBTdHJpbmcoZSksIGNhdXNlOiBlIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZGVsZXRlOiBhc3luYyAoa2V5KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgcnBjKFwic2V0dXAuZGVsZXRlXCIsIHsga2V5IH0pO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGFjcXVpcmVMb2NrOiBhc3luYyAoa2V5LCBsb2NrSWQsIGxvY2tUaW1lb3V0TXMpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gKGF3YWl0IHJwYyhcInNldHVwLmFjcXVpcmVMb2NrXCIsIHtcbiAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIGxvY2tJZCxcbiAgICAgICAgICAgIGxvY2tUaW1lb3V0TXMsXG4gICAgICAgICAgfSkpIGFzIFNldHVwU25hcHNob3QgfCBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICAgIGNvbW1hbmQ6IHtcbiAgICAgIGdldDogYXN5bmMgKGlkKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCBycGMoXCJjb21tYW5kLmdldFwiLCB7IGlkIH0pKSBhcyBDb21tYW5kIHwgbnVsbDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBzZXQ6IGFzeW5jIChjb21tYW5kKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIChhd2FpdCBycGMoXCJjb21tYW5kLnNldFwiLCBjb21tYW5kKSkgYXMgQ29tbWFuZDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgU3RvcmFnZUVycm9yKSB7XG4gICAgICAgICAgICByZXR1cm4gZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBTdG9yYWdlRXJyb3IoeyByZWFzb246IFN0cmluZyhlKSwgY2F1c2U6IGUgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBsaXN0OiBhc3luYyAoc2Vzc2lvbklkLCBvcHRzKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnBjKFwiY29tbWFuZC5saXN0XCIsIHtcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIGluY2x1ZGVGaW5pc2hlZDogb3B0cz8uaW5jbHVkZUZpbmlzaGVkLFxuICAgICAgICAgICAgY3Vyc29yOiBvcHRzPy5jdXJzb3IsXG4gICAgICAgICAgICBsaW1pdDogb3B0cz8ubGltaXQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdCBhcyBMaXN0UmVzdWx0PENvbW1hbmQ+O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBTdG9yYWdlRXJyb3IpIHtcbiAgICAgICAgICAgIHJldHVybiBlO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV3IFN0b3JhZ2VFcnJvcih7IHJlYXNvbjogU3RyaW5nKGUpLCBjYXVzZTogZSB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgREVGQVVMVF9OQU1FU1BBQ0UgPSBcImRlZmF1bHRcIjtcbmV4cG9ydCBjb25zdCBMT0NBTF9TVE9SQUdFX1ZFUlNJT04gPSBcInYxXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlKG9wdHM6IHtcbiAgY29uZmlnOiBTdG9yYWdlQ29uZmlnO1xuICBycGM6IFJwY0ZuO1xufSk6IFN0b3JhZ2Uge1xuICBjb25zdCBuYW1lID0gb3B0cy5jb25maWcubmFtZSA/PyBERUZBVUxUX05BTUVTUEFDRTtcbiAgcmV0dXJuIGdldFN0b3JhZ2VDbGllbnQob3B0cy5ycGMsIG5hbWUpO1xufVxuIiwgImltcG9ydCB7IHogfSBmcm9tIFwiem9kXCI7XG5cbmNvbnN0IFZlcmNlbExpZmVjeWNsZUNvbmZpZ1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgcG9sbEludGVydmFsTXM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgc3RvcEFmdGVySW5hY3RpdmVNczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBzbmFwc2hvdEJlZm9yZVRpbWVvdXRNczogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBzbmFwc2hvdElkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIGF1dG9TdGFydDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbn0pO1xuXG5pbXBvcnQgdHlwZSB7IE5ldHdvcmtQb2xpY3kgfSBmcm9tIFwiQHZlcmNlbC9zYW5kYm94XCI7XG5cbi8qKlxuICogUGFzc3Rocm91Z2ggc2NoZW1hIFx1MjAxNCB0aGUgU0RLIHZhbGlkYXRlcyB0aGUgYWN0dWFsIHNoYXBlLlxuICogVHlwZWQgdmlhIHouY3VzdG9tIHNvIHRoZSBpbmZlcnJlZCBUUyB0eXBlIG1hdGNoZXMgdGhlIFNESydzIE5ldHdvcmtQb2xpY3kuXG4gKi9cbmNvbnN0IE5ldHdvcmtQb2xpY3lTY2hlbWEgPSB6LmN1c3RvbTxOZXR3b3JrUG9saWN5PigpLm9wdGlvbmFsKCk7XG5cbmV4cG9ydCB0eXBlIHsgTmV0d29ya1BvbGljeSB9O1xuXG5jb25zdCBTYW5kYm94Q29uZmlnQmFzZSA9IHoub2JqZWN0KHtcbiAgY3dkOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFNhbmRib3hDb25maWdTY2hlbWEgPSB6LmRpc2NyaW1pbmF0ZWRVbmlvbihcInR5cGVcIiwgW1xuICBTYW5kYm94Q29uZmlnQmFzZS5leHRlbmQoe1xuICAgIHR5cGU6IHoubGl0ZXJhbChcInZlcmNlbFwiKSxcbiAgICByZXNvdXJjZXM6IHoub2JqZWN0KHsgdmNwdXM6IHoubnVtYmVyKCkgfSkub3B0aW9uYWwoKSxcbiAgICBwb3J0czogei5hcnJheSh6Lm51bWJlcigpKS5vcHRpb25hbCgpLFxuICAgIGxpZmVjeWNsZTogVmVyY2VsTGlmZWN5Y2xlQ29uZmlnU2NoZW1hLm9wdGlvbmFsKCksXG4gICAgbmV0d29ya1BvbGljeTogTmV0d29ya1BvbGljeVNjaGVtYSxcbiAgfSksXG4gIFNhbmRib3hDb25maWdCYXNlLmV4dGVuZCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwibG9jYWxcIiksXG4gIH0pLFxuICBTYW5kYm94Q29uZmlnQmFzZS5leHRlbmQoe1xuICAgIHR5cGU6IHoubGl0ZXJhbChcImRvY2tlclwiKSxcbiAgfSksXG4gIFNhbmRib3hDb25maWdCYXNlLmV4dGVuZCh7XG4gICAgdHlwZTogei5saXRlcmFsKFwiY3VzdG9tXCIpLFxuICAgIHVybDogei5zdHJpbmcoKSxcbiAgICBoZWFkZXJzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnN0cmluZygpKS5vcHRpb25hbCgpLFxuICB9KSxcbl0pO1xuXG5leHBvcnQgdHlwZSBTYW5kYm94Q29uZmlnID0gei5pbmZlcjx0eXBlb2YgU2FuZGJveENvbmZpZ1NjaGVtYT47XG5cbmNvbnN0IEdlbmVyYXRpb25TY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG1heFN0ZXBzOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRlbXBlcmF0dXJlOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHRvcEs6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgdG9wUDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBmcmVxdWVuY3lQZW5hbHR5OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gIHByZXNlbmNlUGVuYWx0eTogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICBtYXhPdXRwdXRUb2tlbnM6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgaGVhZGVyczogei5yZWNvcmQoei5zdHJpbmcoKSwgei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU2Vzc2lvblNjaGVtYSA9IHoub2JqZWN0KHtcbiAgaWQ6IHouc3RyaW5nKCksXG4gIGNyZWF0ZWRBdDogei5udW1iZXIoKSxcbiAgdXBkYXRlZEF0OiB6Lm51bWJlcigpLFxuICBydW5JZDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICBsYXN0TWVzc2FnZUlkOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5udWxsYWJsZSgpLFxuICBzeXN0ZW06IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgbW9kZWw6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgc2FuZGJveElkOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIHNraWxsc0Rpcjogei5hcnJheSh6LnN0cmluZygpKS5udWxsYWJsZSgpLFxuICBob29rVG9rZW46IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgYWN0aXZlVG9vbHM6IHouYXJyYXkoei5zdHJpbmcoKSkubnVsbGFibGUoKSxcbiAgZ2VuZXJhdGlvbjogR2VuZXJhdGlvblNjaGVtYS5udWxsYWJsZSgpLmRlZmF1bHQobnVsbCksXG59KTtcblxuZXhwb3J0IGNvbnN0IFN0ZXBVc2FnZVNjaGVtYSA9IHoub2JqZWN0KHtcbiAgc3RlcEluZGV4OiB6Lm51bWJlcigpLFxuICBtb2RlbDogei5zdHJpbmcoKSxcbiAgaW5wdXRUb2tlbnM6IHoubnVtYmVyKCksXG4gIG91dHB1dFRva2Vuczogei5udW1iZXIoKSxcbiAgdG90YWxUb2tlbnM6IHoubnVtYmVyKCksXG4gIGNhY2hlUmVhZFRva2Vuczogei5udW1iZXIoKSxcbiAgY2FjaGVXcml0ZVRva2Vuczogei5udW1iZXIoKSxcbiAgcmVhc29uaW5nVG9rZW5zOiB6Lm51bWJlcigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBVc2FnZVN1bW1hcnlTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIG1vZGVsOiB6LnN0cmluZygpLFxuICBpbnB1dFRva2Vuczogei5udW1iZXIoKSxcbiAgb3V0cHV0VG9rZW5zOiB6Lm51bWJlcigpLFxuICB0b3RhbFRva2Vuczogei5udW1iZXIoKSxcbiAgY2FjaGVSZWFkVG9rZW5zOiB6Lm51bWJlcigpLFxuICBjYWNoZVdyaXRlVG9rZW5zOiB6Lm51bWJlcigpLFxuICByZWFzb25pbmdUb2tlbnM6IHoubnVtYmVyKCksXG4gIHN0ZXBDb3VudDogei5udW1iZXIoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgTWVzc2FnZVVzYWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGVwczogei5hcnJheShTdGVwVXNhZ2VTY2hlbWEpLFxuICBzdW1tYXJ5OiBVc2FnZVN1bW1hcnlTY2hlbWEsXG59KTtcblxuZXhwb3J0IHR5cGUgTWVzc2FnZVVzYWdlID0gei5pbmZlcjx0eXBlb2YgTWVzc2FnZVVzYWdlU2NoZW1hPjtcbmV4cG9ydCB0eXBlIFVzYWdlU3VtbWFyeSA9IHouaW5mZXI8dHlwZW9mIFVzYWdlU3VtbWFyeVNjaGVtYT47XG5leHBvcnQgdHlwZSBTdGVwVXNhZ2UgPSB6LmluZmVyPHR5cGVvZiBTdGVwVXNhZ2VTY2hlbWE+O1xuXG5leHBvcnQgY29uc3QgSW50ZXJydXB0ZWRMYXN0UGFydFNjaGVtYSA9IHoub2JqZWN0KHtcbiAgaW5kZXg6IHoubnVtYmVyKCksXG4gIHBhcnQ6IHoudW5rbm93bigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBNZXNzYWdlU2NoZW1hID0gei5vYmplY3Qoe1xuICBpZDogei5zdHJpbmcoKSxcbiAgc2Vzc2lvbklkOiB6LnN0cmluZygpLFxuICByb2xlOiB6LmVudW0oW1widXNlclwiLCBcImFzc2lzdGFudFwiLCBcInN5c3RlbVwiXSksXG4gIGNyZWF0ZWRBdDogei5udW1iZXIoKSxcbiAgc3RhcnRlZEF0OiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gIGNvbXBsZXRlZEF0OiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gIGludGVycnVwdGVkQXQ6IHoubnVtYmVyKCkubnVsbGFibGUoKSxcbiAgaW50ZXJydXB0ZWRMYXN0UGFydDogSW50ZXJydXB0ZWRMYXN0UGFydFNjaGVtYS5udWxsYWJsZSgpLmRlZmF1bHQobnVsbCksXG4gIHVzYWdlOiBNZXNzYWdlVXNhZ2VTY2hlbWEubnVsbGFibGUoKSxcbn0pO1xuXG4vKipcbiAqIFRoZSBgcGFydGAgZmllbGQgY29ycmVzcG9uZHMgdG8gYFVJTWVzc2FnZVtcInBhcnRzXCJdW251bWJlcl1gIGZyb20gdGhlIGBhaWAgcGFja2FnZS5cbiAqIFdlIHVzZSBgei51bmtub3duKClgIGJlY2F1c2UgdGhlIGV4YWN0IHNoYXBlIHZhcmllcyBieSBwYXJ0IHR5cGUgKHRleHQsIHRvb2wtY2FsbCxcbiAqIHRvb2wtcmVzdWx0LCBldGMuKSBhbmQgbWF5IGV2b2x2ZSB3aXRoIHRoZSBBSSBTREsuIFRoZSBSUEMgbGF5ZXIganVzdCBwYXNzZXMgaXQgdGhyb3VnaC5cbiAqL1xuZXhwb3J0IGNvbnN0IFBhcnRTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkOiB6LnN0cmluZygpLFxuICBtZXNzYWdlSWQ6IHouc3RyaW5nKCksXG4gIHNlc3Npb25JZDogei5zdHJpbmcoKSxcbiAgaW5kZXg6IHoubnVtYmVyKCksXG4gIHBhcnQ6IHoudW5rbm93bigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDb21tYW5kUmVzdWx0U2NoZW1hID0gei5vYmplY3Qoe1xuICBzdGRvdXQ6IHouc3RyaW5nKCksXG4gIHN0ZGVycjogei5zdHJpbmcoKSxcbiAgZXhpdENvZGU6IHoubnVtYmVyKCksXG4gIGNvbXBsZXRlZEF0OiB6Lm51bWJlcigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTYW5kYm94UmVjb3JkU2NoZW1hID0gei5vYmplY3Qoe1xuICBpZDogei5zdHJpbmcoKSxcbiAgY29uZmlnOiBTYW5kYm94Q29uZmlnU2NoZW1hLFxuICB0YWdzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkubnVsbGFibGUoKSxcbiAgY3JlYXRlZEF0OiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gIGxhc3RBY3Rpdml0eUF0OiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG4gIGFjcXVpcmluZ0xvY2tJZDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICBhY3F1aXJpbmdMb2NrQXQ6IHoubnVtYmVyKCkubnVsbGFibGUoKSxcbiAgc2V0dXBLZXk6IHouc3RyaW5nKCkubnVsbGFibGUoKS5vcHRpb25hbCgpLFxuICBzZXR1cENvbXBsZXRlZEF0OiB6Lm51bWJlcigpLm51bGxhYmxlKCkub3B0aW9uYWwoKSxcbiAgcHJvdmlkZXJNZXRhZGF0YTogelxuICAgIC5kaXNjcmltaW5hdGVkVW5pb24oXCJwcm92aWRlclwiLCBbXG4gICAgICB6Lm9iamVjdCh7XG4gICAgICAgIHByb3ZpZGVyOiB6LmxpdGVyYWwoXCJ2ZXJjZWxcIiksXG4gICAgICAgIHNhbmRib3hJZDogei5zdHJpbmcoKS5udWxsYWJsZSgpLFxuICAgICAgICBzbmFwc2hvdElkOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gICAgICB9KSxcbiAgICBdKVxuICAgIC5vcHRpb25hbCgpLFxufSk7XG5cbmNvbnN0IFNlc3Npb25VcGRhdGVTY2hlbWEgPSBTZXNzaW9uU2NoZW1hLm9taXQoe1xuICBpZDogdHJ1ZSxcbiAgZ2VuZXJhdGlvbjogdHJ1ZSxcbn0pXG4gIC5wYXJ0aWFsKClcbiAgLmV4dGVuZCh7XG4gICAgaWQ6IFNlc3Npb25TY2hlbWEuc2hhcGUuaWQsXG4gICAgZ2VuZXJhdGlvbjogR2VuZXJhdGlvblNjaGVtYS5udWxsYWJsZSgpLm9wdGlvbmFsKCksXG4gIH0pXG4gIC5zdHJpY3QoKTtcblxuY29uc3QgU2FuZGJveFVwZGF0ZVNjaGVtYSA9IFNhbmRib3hSZWNvcmRTY2hlbWEub21pdCh7IGlkOiB0cnVlIH0pXG4gIC5wYXJ0aWFsKClcbiAgLmV4dGVuZCh7XG4gICAgaWQ6IFNhbmRib3hSZWNvcmRTY2hlbWEuc2hhcGUuaWQsXG4gIH0pXG4gIC5zdHJpY3QoKTtcblxuY29uc3QgQ29tbWFuZEJhc2VTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIGlkOiB6LnN0cmluZygpLFxuICBzZXNzaW9uSWQ6IHouc3RyaW5nKCksXG4gIGNvbW1hbmQ6IHouc3RyaW5nKCksXG4gIGFyZ3M6IHouYXJyYXkoei5zdHJpbmcoKSkub3B0aW9uYWwoKSxcbiAgc3RhcnRlZEF0OiB6Lm51bWJlcigpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBDb21tYW5kU2NoZW1hID0gei5kaXNjcmltaW5hdGVkVW5pb24oXCJzdGF0dXNcIiwgW1xuICBDb21tYW5kQmFzZVNjaGVtYS5leHRlbmQoeyBzdGF0dXM6IHoubGl0ZXJhbChcInJ1bm5pbmdcIikgfSksXG4gIENvbW1hbmRCYXNlU2NoZW1hLmV4dGVuZCh7XG4gICAgc3RhdHVzOiB6LmxpdGVyYWwoXCJjb21wbGV0ZWRcIiksXG4gICAgcmVzdWx0OiBDb21tYW5kUmVzdWx0U2NoZW1hLFxuICB9KSxcbiAgQ29tbWFuZEJhc2VTY2hlbWEuZXh0ZW5kKHtcbiAgICBzdGF0dXM6IHoubGl0ZXJhbChcImtpbGxlZFwiKSxcbiAgICByZXN1bHQ6IENvbW1hbmRSZXN1bHRTY2hlbWEub3B0aW9uYWwoKSxcbiAgfSksXG4gIENvbW1hbmRCYXNlU2NoZW1hLmV4dGVuZCh7XG4gICAgc3RhdHVzOiB6LmxpdGVyYWwoXCJmYWlsZWRcIiksXG4gICAgcmVzdWx0OiBDb21tYW5kUmVzdWx0U2NoZW1hLFxuICB9KSxcbl0pO1xuXG5mdW5jdGlvbiBMaXN0UmVzdWx0U2NoZW1hPFQgZXh0ZW5kcyB6LlpvZFR5cGVBbnk+KGl0ZW1TY2hlbWE6IFQpIHtcbiAgcmV0dXJuIHoub2JqZWN0KHtcbiAgICBpdGVtczogei5hcnJheShpdGVtU2NoZW1hKSxcbiAgICBuZXh0Q3Vyc29yOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIH0pO1xufVxuXG5leHBvcnQgY29uc3QgU2V0dXBTbmFwc2hvdFNjaGVtYSA9IHoub2JqZWN0KHtcbiAga2V5OiB6LnN0cmluZygpLFxuICBzbmFwc2hvdElkOiB6LnN0cmluZygpLm51bGxhYmxlKCksXG4gIGNyZWF0ZWRBdDogei5udW1iZXIoKSxcbiAgbGFzdFVzZWRBdDogei5udW1iZXIoKS5udWxsYWJsZSgpLFxuICBhY3F1aXJpbmdMb2NrSWQ6IHouc3RyaW5nKCkubnVsbGFibGUoKSxcbiAgYWNxdWlyaW5nTG9ja0F0OiB6Lm51bWJlcigpLm51bGxhYmxlKCksXG59KTtcblxuY29uc3QgbWV0aG9kcyA9IHtcbiAgXCJzZXNzaW9uLmdldFwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7IGlkOiB6LnN0cmluZygpIH0pLFxuICAgIHJlc3VsdDogU2Vzc2lvblNjaGVtYS5udWxsYWJsZSgpLFxuICB9LFxuICBcInNlc3Npb24uc2V0XCI6IHtcbiAgICBwYXJhbXM6IFNlc3Npb25TY2hlbWEsXG4gICAgcmVzdWx0OiBTZXNzaW9uU2NoZW1hLFxuICB9LFxuICBcInNlc3Npb24udXBkYXRlXCI6IHtcbiAgICBwYXJhbXM6IFNlc3Npb25VcGRhdGVTY2hlbWEsXG4gICAgcmVzdWx0OiBTZXNzaW9uU2NoZW1hLFxuICB9LFxuICBcInNlc3Npb24ubGlzdFwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7XG4gICAgICB0YWdzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgICAgIG9yZGVyOiB6XG4gICAgICAgIC5lbnVtKFtcbiAgICAgICAgICBcImNyZWF0ZWRBdF9hc2NcIixcbiAgICAgICAgICBcImNyZWF0ZWRBdF9kZXNjXCIsXG4gICAgICAgICAgXCJ1cGRhdGVkQXRfYXNjXCIsXG4gICAgICAgICAgXCJ1cGRhdGVkQXRfZGVzY1wiLFxuICAgICAgICBdKVxuICAgICAgICAub3B0aW9uYWwoKSxcbiAgICAgIGN1cnNvcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgbGltaXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICB9KSxcbiAgICByZXN1bHQ6IExpc3RSZXN1bHRTY2hlbWEoU2Vzc2lvblNjaGVtYSksXG4gIH0sXG4gIFwic2Vzc2lvbi5saXN0QnlTYW5kYm94XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHtcbiAgICAgIHNhbmRib3hJZDogei5zdHJpbmcoKSxcbiAgICAgIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKS5vcHRpb25hbCgpLFxuICAgICAgb3JkZXI6IHpcbiAgICAgICAgLmVudW0oW1xuICAgICAgICAgIFwiY3JlYXRlZEF0X2FzY1wiLFxuICAgICAgICAgIFwiY3JlYXRlZEF0X2Rlc2NcIixcbiAgICAgICAgICBcInVwZGF0ZWRBdF9hc2NcIixcbiAgICAgICAgICBcInVwZGF0ZWRBdF9kZXNjXCIsXG4gICAgICAgIF0pXG4gICAgICAgIC5vcHRpb25hbCgpLFxuICAgICAgY3Vyc29yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBsaW1pdDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgIH0pLFxuICAgIHJlc3VsdDogTGlzdFJlc3VsdFNjaGVtYShTZXNzaW9uU2NoZW1hKSxcbiAgfSxcbiAgXCJzZXNzaW9uLmRlbGV0ZVwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7IGlkOiB6LnN0cmluZygpIH0pLFxuICAgIHJlc3VsdDogei52b2lkKCksXG4gIH0sXG4gIFwic2Vzc2lvbi50YWcuc2V0XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHtcbiAgICAgIHNlc3Npb25JZDogei5zdHJpbmcoKSxcbiAgICAgIHRhZ3M6IHoucmVjb3JkKHouc3RyaW5nKCksIHoudW5rbm93bigpKSxcbiAgICB9KSxcbiAgICByZXN1bHQ6IFNlc3Npb25TY2hlbWEsXG4gIH0sXG4gIFwibWVzc2FnZS5nZXRcIjoge1xuICAgIHBhcmFtczogei5vYmplY3QoeyBpZDogei5zdHJpbmcoKSB9KSxcbiAgICByZXN1bHQ6IE1lc3NhZ2VTY2hlbWEubnVsbGFibGUoKSxcbiAgfSxcbiAgXCJtZXNzYWdlLnNldFwiOiB7XG4gICAgcGFyYW1zOiBNZXNzYWdlU2NoZW1hLFxuICAgIHJlc3VsdDogTWVzc2FnZVNjaGVtYSxcbiAgfSxcbiAgXCJtZXNzYWdlLmxpc3RcIjoge1xuICAgIHBhcmFtczogei5vYmplY3Qoe1xuICAgICAgc2Vzc2lvbklkOiB6LnN0cmluZygpLFxuICAgICAgY3Vyc29yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBsaW1pdDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgIH0pLFxuICAgIHJlc3VsdDogTGlzdFJlc3VsdFNjaGVtYShNZXNzYWdlU2NoZW1hKSxcbiAgfSxcbiAgXCJwYXJ0Lmxpc3RCeU1lc3NhZ2VcIjoge1xuICAgIHBhcmFtczogei5vYmplY3Qoe1xuICAgICAgbWVzc2FnZUlkOiB6LnN0cmluZygpLFxuICAgICAgY3Vyc29yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBsaW1pdDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgIH0pLFxuICAgIHJlc3VsdDogTGlzdFJlc3VsdFNjaGVtYShQYXJ0U2NoZW1hKSxcbiAgfSxcbiAgXCJwYXJ0Lmxpc3RCeVNlc3Npb25cIjoge1xuICAgIHBhcmFtczogei5vYmplY3Qoe1xuICAgICAgc2Vzc2lvbklkOiB6LnN0cmluZygpLFxuICAgICAgY3Vyc29yOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gICAgICBsaW1pdDogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgIH0pLFxuICAgIHJlc3VsdDogTGlzdFJlc3VsdFNjaGVtYShQYXJ0U2NoZW1hKSxcbiAgfSxcbiAgXCJwYXJ0LnNldFwiOiB7XG4gICAgcGFyYW1zOiBQYXJ0U2NoZW1hLFxuICAgIHJlc3VsdDogUGFydFNjaGVtYSxcbiAgfSxcbiAgXCJwYXJ0LmRlbGV0ZVwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7IGlkOiB6LnN0cmluZygpIH0pLFxuICAgIHJlc3VsdDogei52b2lkKCksXG4gIH0sXG4gIFwic2FuZGJveC5nZXRcIjoge1xuICAgIHBhcmFtczogei5vYmplY3QoeyBrZXk6IHouc3RyaW5nKCkgfSksXG4gICAgcmVzdWx0OiBTYW5kYm94UmVjb3JkU2NoZW1hLm51bGxhYmxlKCksXG4gIH0sXG4gIFwic2FuZGJveC5nZXRCeVNlc3Npb25cIjoge1xuICAgIHBhcmFtczogei5vYmplY3QoeyBzZXNzaW9uSWQ6IHouc3RyaW5nKCkgfSksXG4gICAgcmVzdWx0OiBTYW5kYm94UmVjb3JkU2NoZW1hLm51bGxhYmxlKCksXG4gIH0sXG4gIFwic2FuZGJveC5zZXRcIjoge1xuICAgIHBhcmFtczogU2FuZGJveFJlY29yZFNjaGVtYSxcbiAgICByZXN1bHQ6IHoudm9pZCgpLFxuICB9LFxuICBcInNhbmRib3gudXBkYXRlXCI6IHtcbiAgICBwYXJhbXM6IFNhbmRib3hVcGRhdGVTY2hlbWEsXG4gICAgcmVzdWx0OiBTYW5kYm94UmVjb3JkU2NoZW1hLFxuICB9LFxuICBcInNhbmRib3gubGlzdFwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7XG4gICAgICB0YWdzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSkub3B0aW9uYWwoKSxcbiAgICAgIG9yZGVyOiB6XG4gICAgICAgIC5lbnVtKFtcbiAgICAgICAgICBcImNyZWF0ZWRBdF9hc2NcIixcbiAgICAgICAgICBcImNyZWF0ZWRBdF9kZXNjXCIsXG4gICAgICAgICAgXCJsYXN0QWN0aXZpdHlBdF9hc2NcIixcbiAgICAgICAgICBcImxhc3RBY3Rpdml0eUF0X2Rlc2NcIixcbiAgICAgICAgXSlcbiAgICAgICAgLm9wdGlvbmFsKCksXG4gICAgICBjdXJzb3I6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgIGxpbWl0OiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAgfSksXG4gICAgcmVzdWx0OiBMaXN0UmVzdWx0U2NoZW1hKFNhbmRib3hSZWNvcmRTY2hlbWEpLFxuICB9LFxuICBcInNhbmRib3gudGFnLnNldFwiOiB7XG4gICAgcGFyYW1zOiB6Lm9iamVjdCh7XG4gICAgICBzYW5kYm94SWQ6IHouc3RyaW5nKCksXG4gICAgICB0YWdzOiB6LnJlY29yZCh6LnN0cmluZygpLCB6LnVua25vd24oKSksXG4gICAgfSksXG4gICAgcmVzdWx0OiBTYW5kYm94UmVjb3JkU2NoZW1hLFxuICB9LFxuICBcImNvbW1hbmQuZ2V0XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHsgaWQ6IHouc3RyaW5nKCkgfSksXG4gICAgcmVzdWx0OiBDb21tYW5kU2NoZW1hLm51bGxhYmxlKCksXG4gIH0sXG4gIFwiY29tbWFuZC5zZXRcIjoge1xuICAgIHBhcmFtczogQ29tbWFuZFNjaGVtYSxcbiAgICByZXN1bHQ6IENvbW1hbmRTY2hlbWEsXG4gIH0sXG4gIFwiY29tbWFuZC5saXN0XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHtcbiAgICAgIHNlc3Npb25JZDogei5zdHJpbmcoKSxcbiAgICAgIGluY2x1ZGVGaW5pc2hlZDogei5ib29sZWFuKCkub3B0aW9uYWwoKSxcbiAgICAgIGN1cnNvcjogei5zdHJpbmcoKS5vcHRpb25hbCgpLFxuICAgICAgbGltaXQ6IHoubnVtYmVyKCkub3B0aW9uYWwoKSxcbiAgICB9KSxcbiAgICByZXN1bHQ6IExpc3RSZXN1bHRTY2hlbWEoQ29tbWFuZFNjaGVtYSksXG4gIH0sXG4gIFwic2V0dXAuZ2V0XCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHsga2V5OiB6LnN0cmluZygpIH0pLFxuICAgIHJlc3VsdDogU2V0dXBTbmFwc2hvdFNjaGVtYS5udWxsYWJsZSgpLFxuICB9LFxuICBcInNldHVwLnNldFwiOiB7XG4gICAgcGFyYW1zOiBTZXR1cFNuYXBzaG90U2NoZW1hLFxuICAgIHJlc3VsdDogei52b2lkKCksXG4gIH0sXG4gIFwic2V0dXAuZGVsZXRlXCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHsga2V5OiB6LnN0cmluZygpIH0pLFxuICAgIHJlc3VsdDogei52b2lkKCksXG4gIH0sXG4gIFwic2V0dXAuYWNxdWlyZUxvY2tcIjoge1xuICAgIHBhcmFtczogei5vYmplY3Qoe1xuICAgICAga2V5OiB6LnN0cmluZygpLFxuICAgICAgbG9ja0lkOiB6LnN0cmluZygpLFxuICAgICAgbG9ja1RpbWVvdXRNczogei5udW1iZXIoKSxcbiAgICB9KSxcbiAgICByZXN1bHQ6IFNldHVwU25hcHNob3RTY2hlbWEubnVsbGFibGUoKSxcbiAgfSxcbiAgXCJzYW5kYm94LmFjcXVpcmVMb2NrXCI6IHtcbiAgICBwYXJhbXM6IHoub2JqZWN0KHtcbiAgICAgIHJlY29yZDogU2FuZGJveFJlY29yZFNjaGVtYSxcbiAgICAgIGxvY2tUaW1lb3V0TXM6IHoubnVtYmVyKCksXG4gICAgfSksXG4gICAgcmVzdWx0OiBTYW5kYm94UmVjb3JkU2NoZW1hLm51bGxhYmxlKCksXG4gIH0sXG59IGFzIGNvbnN0O1xuXG5leHBvcnQgeyBtZXRob2RzIH07XG5leHBvcnQgdHlwZSBTdG9yYWdlTWV0aG9kcyA9IHR5cGVvZiBtZXRob2RzO1xuZXhwb3J0IHR5cGUgTWV0aG9kTmFtZSA9IGtleW9mIFN0b3JhZ2VNZXRob2RzO1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfUlBDX01FVEhPRFMgPSBPYmplY3Qua2V5cyhtZXRob2RzKSBhcyBNZXRob2ROYW1lW107XG4iLCAiaW1wb3J0IHR5cGUgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgU3RvcmFnZUNvbmZsaWN0RXJyb3IgfSBmcm9tIFwiLi4vZXJyb3JzXCI7XG5pbXBvcnQgeyB0eXBlIE1ldGhvZE5hbWUsIG1ldGhvZHMsIHR5cGUgU3RvcmFnZU1ldGhvZHMgfSBmcm9tIFwiLi9ycGNcIjtcblxuZXhwb3J0IHR5cGUgSGFuZGxlcnMgPSB7XG4gIFtLIGluIE1ldGhvZE5hbWVdOiAoXG4gICAgcGFyYW1zOiB6LmluZmVyPFN0b3JhZ2VNZXRob2RzW0tdW1wicGFyYW1zXCJdPlxuICApID0+IFByb21pc2U8ei5pbmZlcjxTdG9yYWdlTWV0aG9kc1tLXVtcInJlc3VsdFwiXT4+O1xufTtcblxuZXhwb3J0IHR5cGUgUnBjUmVxdWVzdCA9IHtcbiAgbWV0aG9kOiBzdHJpbmc7XG4gIHBhcmFtczogdW5rbm93bjtcbn07XG5cbmV4cG9ydCB0eXBlIFJwY1N1Y2Nlc3NSZXNwb25zZTxUID0gdW5rbm93bj4gPSB7XG4gIHJlc3VsdDogVDtcbn07XG5cbmV4cG9ydCB0eXBlIFJwY0Vycm9yUmVzcG9uc2UgPSB7XG4gIGVycm9yOiB7IGNvZGU6IHN0cmluZzsgbWVzc2FnZTogc3RyaW5nIH07XG59O1xuXG5leHBvcnQgdHlwZSBScGNSZXNwb25zZTxUID0gdW5rbm93bj4gPSBScGNTdWNjZXNzUmVzcG9uc2U8VD4gfCBScGNFcnJvclJlc3BvbnNlO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlU3RvcmFnZVJwYyhcbiAgYm9keTogUnBjUmVxdWVzdCxcbiAgaGFuZGxlcnM6IEhhbmRsZXJzXG4pOiBQcm9taXNlPFJwY1Jlc3BvbnNlPiB7XG4gIGNvbnN0IHsgbWV0aG9kLCBwYXJhbXMgfSA9IGJvZHk7XG5cbiAgaWYgKCEobWV0aG9kIGluIG1ldGhvZHMpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVycm9yOiB7IGNvZGU6IFwiTUVUSE9EX05PVF9GT1VORFwiLCBtZXNzYWdlOiBgVW5rbm93biBtZXRob2Q6ICR7bWV0aG9kfWAgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgbWV0aG9kTmFtZSA9IG1ldGhvZCBhcyBNZXRob2ROYW1lO1xuICBjb25zdCBzY2hlbWEgPSBtZXRob2RzW21ldGhvZE5hbWVdLnBhcmFtcztcbiAgY29uc3QgcGFyc2VkID0gc2NoZW1hLnNhZmVQYXJzZShwYXJhbXMpO1xuXG4gIGlmICghcGFyc2VkLnN1Y2Nlc3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXJyb3I6IHtcbiAgICAgICAgY29kZTogXCJJTlZBTElEX1BBUkFNU1wiLFxuICAgICAgICBtZXNzYWdlOiBwYXJzZWQuZXJyb3IuaXNzdWVzXG4gICAgICAgICAgLm1hcCgoaSkgPT4gYCR7aS5wYXRoLmpvaW4oXCIuXCIpfTogJHtpLm1lc3NhZ2V9YClcbiAgICAgICAgICAuam9pbihcIiwgXCIpLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBoYW5kbGVyID0gaGFuZGxlcnNbbWV0aG9kTmFtZV0gYXMgKFxuICAgICAgcGFyYW1zOiB1bmtub3duXG4gICAgKSA9PiBQcm9taXNlPHVua25vd24+O1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGhhbmRsZXIocGFyc2VkLmRhdGEpO1xuICAgIHJldHVybiB7IHJlc3VsdCB9O1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc3QgaXNDb25mbGljdCA9XG4gICAgICBlIGluc3RhbmNlb2YgU3RvcmFnZUNvbmZsaWN0RXJyb3IgfHxcbiAgICAgIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5uYW1lID09PSBcIlN0b3JhZ2VDb25mbGljdEVycm9yXCIpO1xuXG4gICAgaWYgKGlzQ29uZmxpY3QpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgY29kZTogXCJDT05GTElDVFwiLFxuICAgICAgICAgIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBlcnJvcjoge1xuICAgICAgICBjb2RlOiBcIklOVEVSTkFMX0VSUk9SXCIsXG4gICAgICAgIG1lc3NhZ2U6IGUgaW5zdGFuY2VvZiBFcnJvciA/IGUubWVzc2FnZSA6IFN0cmluZyhlKSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIiwgImV4cG9ydCB7XG4gIERFRkFVTFRfTkFNRVNQQUNFLFxuICBnZXRTdG9yYWdlLFxuICBMT0NBTF9TVE9SQUdFX1ZFUlNJT04sXG4gIHR5cGUgUnBjRm4sXG59IGZyb20gXCIuL2NsaWVudFwiO1xuZXhwb3J0IHtcbiAgdHlwZSBIYW5kbGVycyxcbiAgaGFuZGxlU3RvcmFnZVJwYyxcbiAgdHlwZSBScGNFcnJvclJlc3BvbnNlLFxuICB0eXBlIFJwY1JlcXVlc3QsXG4gIHR5cGUgUnBjUmVzcG9uc2UsXG4gIHR5cGUgUnBjU3VjY2Vzc1Jlc3BvbnNlLFxufSBmcm9tIFwiLi9oYW5kbGVyXCI7XG5leHBvcnQge1xuICB0eXBlIE1lc3NhZ2VVc2FnZSxcbiAgdHlwZSBNZXRob2ROYW1lLFxuICB0eXBlIFNhbmRib3hDb25maWcsXG4gIFNUT1JBR0VfUlBDX01FVEhPRFMsXG4gIHR5cGUgU3RlcFVzYWdlLFxuICB0eXBlIFN0b3JhZ2VNZXRob2RzLFxuICB0eXBlIFVzYWdlU3VtbWFyeSxcbn0gZnJvbSBcIi4vcnBjXCI7XG5leHBvcnQgdHlwZSB7XG4gIENvbW1hbmQsXG4gIExpc3RSZXN1bHQsXG4gIE1lc3NhZ2UsXG4gIFBhcnQsXG4gIFJlc29sdmVkU3RvcmFnZSxcbiAgU2FuZGJveFJlY29yZCxcbiAgU2Vzc2lvbixcbiAgU2V0dXBTbmFwc2hvdCxcbiAgU3RvcmFnZSxcbiAgU3RvcmFnZUNvbmZpZyxcbiAgVHlwZWRTZXNzaW9uLFxuICBUeXBlZFN0b3JhZ2UsXG59IGZyb20gXCIuL3R5cGVzXCI7XG4iLCAiaW1wb3J0IHsgc2xlZXAgfSBmcm9tIFwid29ya2Zsb3dcIjtcbmltcG9ydCB0eXBlIHsgU2FuZGJveExpZmVjeWNsZUlucHV0IH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBjaGVja0FuZFNuYXBzaG90U3RlcCB9IGZyb20gXCIuL2xpZmVjeWNsZS13b3JrZmxvdy1zdGVwc1wiO1xuXG5leHBvcnQgdHlwZSB7IFNhbmRib3hMaWZlY3ljbGVJbnB1dCB9O1xuXG5jb25zdCBERUZBVUxUX1BPTExfTVMgPSAyICogNjAgKiAxMDAwO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2FuZGJveExpZmVjeWNsZVdvcmtmbG93KHtcbiAgaW5wdXQsXG59OiB7XG4gIGlucHV0OiBTYW5kYm94TGlmZWN5Y2xlSW5wdXQ7XG59KSB7XG4gIFwidXNlIHdvcmtmbG93XCI7XG5cbiAgbGV0IG5leHRQb2xsTXMgPSBERUZBVUxUX1BPTExfTVM7XG5cbiAgd2hpbGUgKHRydWUpIHtcbiAgICBhd2FpdCBzbGVlcChuZXh0UG9sbE1zKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGNoZWNrQW5kU25hcHNob3RTdGVwKGlucHV0KTtcblxuICAgIGlmIChyZXN1bHQgaW5zdGFuY2VvZiBFcnJvciB8fCByZXN1bHQuYWN0aW9uID09PSBcImV4aXRcIikge1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgbmV4dFBvbGxNcyA9IHJlc3VsdC5uZXh0UG9sbE1zO1xuICB9XG59XG4iLCAiaW1wb3J0IHR5cGUgeyBTYW5kYm94TGlmZWN5Y2xlSW5wdXQgfSBmcm9tIFwiLi4vdHlwZXNcIjtcblxuY29uc3QgREVGQVVMVF9QT0xMX0lOVEVSVkFMX01TID0gMiAqIDYwICogMTAwMDtcbmNvbnN0IERFRkFVTFRfSURMRV9USU1FT1VUX01TID0gNSAqIDYwICogMTAwMDtcbmNvbnN0IFNOQVBTSE9UX0JFRk9SRV9USU1FT1VUX01TID0gMTAgKiA2MCAqIDEwMDA7XG5cbmNvbnN0IGdldFRlc3RDcmVkZW50aWFscyA9ICgpID0+XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInRlc3RcIlxuICAgID8ge1xuICAgICAgICB0b2tlbjogcHJvY2Vzcy5lbnYuVEVTVF9WRVJDRUxfVE9LRU4sXG4gICAgICAgIHRlYW1JZDogcHJvY2Vzcy5lbnYuVEVTVF9WRVJDRUxfVEVBTV9JRCxcbiAgICAgICAgcHJvamVjdElkOiBwcm9jZXNzLmVudi5URVNUX1ZFUkNFTF9QUk9KRUNUX0lELFxuICAgICAgfVxuICAgIDoge307XG5cbmV4cG9ydCB0eXBlIExpZmVjeWNsZVN0ZXBSZXN1bHQgPVxuICB8IHsgYWN0aW9uOiBcImNvbnRpbnVlXCI7IG5leHRQb2xsTXM6IG51bWJlciB9XG4gIHwge1xuICAgICAgYWN0aW9uOiBcImV4aXRcIjtcbiAgICAgIHJlYXNvbjogXCJzYW5kYm94SWRfY2hhbmdlZFwiIHwgXCJpZGxlXCIgfCBcInRpbWVvdXRcIiB8IFwibm90X2ZvdW5kXCI7XG4gICAgfTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNoZWNrQW5kU25hcHNob3RTdGVwKFxuICBpbnB1dDogU2FuZGJveExpZmVjeWNsZUlucHV0XG4pOiBQcm9taXNlPEVycm9yIHwgTGlmZWN5Y2xlU3RlcFJlc3VsdD4ge1xuICBcInVzZSBzdGVwXCI7XG5cbiAgY29uc3QgeyBTYW5kYm94OiBWZXJjZWxTYW5kYm94U0RLIH0gPSBhd2FpdCBpbXBvcnQoXCIuL3ZlcmNlbC1zZGtcIik7XG4gIGNvbnN0IHsgZ2V0U3RvcmFnZSB9ID0gYXdhaXQgaW1wb3J0KFwiLi4vLi4vc3RvcmFnZVwiKTtcbiAgaWYgKCFpbnB1dC5ycGMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSUEMgbm90IGZvdW5kXCIpO1xuICB9XG4gIGNvbnN0IHN0b3JhZ2UgPSBnZXRTdG9yYWdlKHtcbiAgICBjb25maWc6IGlucHV0LnN0b3JhZ2VDb25maWcsXG4gICAgcnBjOiBpbnB1dC5ycGMsXG4gIH0pO1xuICBjb25zdCByZWNvcmQgPSBhd2FpdCBzdG9yYWdlLnNhbmRib3guZ2V0KGlucHV0LmlkKTtcbiAgaWYgKHJlY29yZCBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgcmV0dXJuIHsgYWN0aW9uOiBcImV4aXRcIiwgcmVhc29uOiBcIm5vdF9mb3VuZFwiIH07XG4gIH1cblxuICBjb25zdCBjdXJyZW50U2FuZGJveElkID1cbiAgICByZWNvcmQucHJvdmlkZXJNZXRhZGF0YT8ucHJvdmlkZXIgPT09IFwidmVyY2VsXCJcbiAgICAgID8gcmVjb3JkLnByb3ZpZGVyTWV0YWRhdGEuc2FuZGJveElkXG4gICAgICA6IG51bGw7XG5cbiAgaWYgKGN1cnJlbnRTYW5kYm94SWQgIT09IGlucHV0LnZlcmNlbFNhbmRib3hJZCkge1xuICAgIHJldHVybiB7IGFjdGlvbjogXCJleGl0XCIsIHJlYXNvbjogXCJzYW5kYm94SWRfY2hhbmdlZFwiIH07XG4gIH1cblxuICBpZiAoIWN1cnJlbnRTYW5kYm94SWQpIHtcbiAgICByZXR1cm4geyBhY3Rpb246IFwiZXhpdFwiLCByZWFzb246IFwibm90X2ZvdW5kXCIgfTtcbiAgfVxuXG4gIGNvbnN0IGNvbmZpZyA9IHJlY29yZC5jb25maWc7XG4gIGlmIChjb25maWcudHlwZSAhPT0gXCJ2ZXJjZWxcIikge1xuICAgIHJldHVybiB7IGFjdGlvbjogXCJleGl0XCIsIHJlYXNvbjogXCJub3RfZm91bmRcIiB9O1xuICB9XG5cbiAgY29uc3QgcG9sbEludGVydmFsTXMgPVxuICAgIGNvbmZpZy5saWZlY3ljbGU/LnBvbGxJbnRlcnZhbE1zID8/IERFRkFVTFRfUE9MTF9JTlRFUlZBTF9NUztcbiAgY29uc3QgaWRsZVRpbWVvdXRNcyA9XG4gICAgY29uZmlnLmxpZmVjeWNsZT8uc3RvcEFmdGVySW5hY3RpdmVNcyA/PyBERUZBVUxUX0lETEVfVElNRU9VVF9NUztcbiAgY29uc3Qgc25hcHNob3RCZWZvcmVUaW1lb3V0TXMgPVxuICAgIGNvbmZpZy5saWZlY3ljbGU/LnNuYXBzaG90QmVmb3JlVGltZW91dE1zID8/IFNOQVBTSE9UX0JFRk9SRV9USU1FT1VUX01TO1xuXG4gIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gIGNvbnN0IGxhc3RBY3Rpdml0eSA9IHJlY29yZC5sYXN0QWN0aXZpdHlBdCA/PyByZWNvcmQuY3JlYXRlZEF0ID8/IG5vdztcbiAgY29uc3QgaWRsZUR1cmF0aW9uID0gbm93IC0gbGFzdEFjdGl2aXR5O1xuICBjb25zdCBzaG91bGRTbmFwc2hvdER1ZVRvSWRsZSA9IGlkbGVEdXJhdGlvbiA+IGlkbGVUaW1lb3V0TXM7XG5cbiAgbGV0IHNob3VsZFNuYXBzaG90RHVlVG9UaW1lb3V0ID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgY29uc3Qgc2FuZGJveCA9IGF3YWl0IFZlcmNlbFNhbmRib3hTREsuZ2V0KHtcbiAgICAgIHNhbmRib3hJZDogY3VycmVudFNhbmRib3hJZCxcbiAgICAgIC4uLmdldFRlc3RDcmVkZW50aWFscygpLFxuICAgIH0pO1xuICAgIGlmIChzYW5kYm94LnRpbWVvdXQgPCBzbmFwc2hvdEJlZm9yZVRpbWVvdXRNcykge1xuICAgICAgc2hvdWxkU25hcHNob3REdWVUb1RpbWVvdXQgPSB0cnVlO1xuICAgIH1cbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHsgYWN0aW9uOiBcImV4aXRcIiwgcmVhc29uOiBcIm5vdF9mb3VuZFwiIH07XG4gIH1cblxuICBpZiAoc2hvdWxkU25hcHNob3REdWVUb0lkbGUgfHwgc2hvdWxkU25hcHNob3REdWVUb1RpbWVvdXQpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgc2FuZGJveCA9IGF3YWl0IFZlcmNlbFNhbmRib3hTREsuZ2V0KHtcbiAgICAgICAgc2FuZGJveElkOiBjdXJyZW50U2FuZGJveElkLFxuICAgICAgICAuLi5nZXRUZXN0Q3JlZGVudGlhbHMoKSxcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc25hcHNob3QgPSBhd2FpdCBzYW5kYm94LnNuYXBzaG90KCk7XG4gICAgICBhd2FpdCBzdG9yYWdlLnNhbmRib3gudXBkYXRlKHtcbiAgICAgICAgaWQ6IHJlY29yZC5pZCxcbiAgICAgICAgYWNxdWlyaW5nTG9ja0lkOiBudWxsLFxuICAgICAgICBhY3F1aXJpbmdMb2NrQXQ6IG51bGwsXG4gICAgICAgIHByb3ZpZGVyTWV0YWRhdGE6IHtcbiAgICAgICAgICBwcm92aWRlcjogXCJ2ZXJjZWxcIixcbiAgICAgICAgICBzYW5kYm94SWQ6IG51bGwsXG4gICAgICAgICAgc25hcHNob3RJZDogc25hcHNob3Quc25hcHNob3RJZCxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBlIGluc3RhbmNlb2YgRXJyb3IgPyBlIDogbmV3IEVycm9yKFN0cmluZyhlKSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBhY3Rpb246IFwiZXhpdFwiLFxuICAgICAgcmVhc29uOiBzaG91bGRTbmFwc2hvdER1ZVRvSWRsZSA/IFwiaWRsZVwiIDogXCJ0aW1lb3V0XCIsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiB7IGFjdGlvbjogXCJjb250aW51ZVwiLCBuZXh0UG9sbE1zOiBwb2xsSW50ZXJ2YWxNcyB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHFCQUF3QjtBQUFBO0FBQUE7OztBQ0F4QixZQUVhLHNCQUtBLGNBS0Esc0JBS0EsY0FLQSxzQkFLQSxjQUtBO0FBaENiO0FBQUE7QUFBQTtBQUFBLGFBQXdCO0FBRWpCLElBQU0sdUJBQU4sY0FBMEMseUJBQWtCO0FBQUEsTUFDakUsTUFBTTtBQUFBLE1BQ04sU0FBUztBQUFBLElBQ1gsQ0FBQyxFQUFFO0FBQUEsSUFBQztBQUVHLElBQU0sZUFBTixjQUFrQyx5QkFBa0I7QUFBQSxNQUN6RCxNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsSUFDWCxDQUFDLEVBQUU7QUFBQSxJQUFDO0FBRUcsSUFBTSx1QkFBTixjQUEwQyx5QkFBa0I7QUFBQSxNQUNqRSxNQUFNO0FBQUEsTUFDTixTQUFTO0FBQUEsSUFDWCxDQUFDLEVBQUU7QUFBQSxJQUFDO0FBRUcsSUFBTSxlQUFOLGNBQWtDLHlCQUFrQjtBQUFBLE1BQ3pELE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxJQUNYLENBQUMsRUFBRTtBQUFBLElBQUM7QUFFRyxJQUFNLHVCQUFOLGNBQTBDLHlCQUFrQjtBQUFBLE1BQ2pFLE1BQU07QUFBQSxNQUNOLFNBQVM7QUFBQSxJQUNYLENB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
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  sandboxLifecycleWorkflow
3
- } from "./chunk-24UDM5XV.mjs";
3
+ } from "./chunk-NXDVNJRS.mjs";
4
4
  import "./chunk-BJTO5JO5.mjs";
5
5
  export {
6
6
  sandboxLifecycleWorkflow