experimental-agent 0.5.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/{adapter-Cl735Kp4.d.mts → adapter-txsF6hou.d.mts} +2 -0
  2. package/dist/{adapter-Cl735Kp4.d.ts → adapter-txsF6hou.d.ts} +2 -0
  3. package/dist/{chunk-AB2JYY6A.mjs → chunk-CCWLV27N.mjs} +10 -2
  4. package/dist/chunk-CS2SEUAA.mjs +405 -0
  5. package/dist/{chunk-6MS4CGEZ.mjs → chunk-D35AQN7O.mjs} +5 -5
  6. package/dist/chunk-LZOMFHX3.mjs +38 -0
  7. package/dist/chunk-PH2FXKOU.mjs +9 -0
  8. package/dist/client-B2ohNvwc.d.mts +494 -0
  9. package/dist/client-BbQZtxca.d.ts +494 -0
  10. package/dist/client.mjs +1 -1
  11. package/dist/{docker-OBUQX5ZI.mjs → docker-FCSNVBEQ.mjs} +1 -1
  12. package/dist/{entry-Bs17QEiq.d.mts → entry-BUiucCNp.d.mts} +1 -1
  13. package/dist/{entry-QNyd4S1s.d.ts → entry-ok9EBUS3.d.ts} +1 -1
  14. package/dist/index.d.mts +475 -475
  15. package/dist/index.d.ts +475 -475
  16. package/dist/index.js +16595 -245
  17. package/dist/index.mjs +16406 -117
  18. package/dist/lifecycle-workflow-steps.d.mts +2 -2
  19. package/dist/lifecycle-workflow-steps.d.ts +2 -2
  20. package/dist/lifecycle-workflow-steps.mjs +1 -1
  21. package/dist/lifecycle-workflow.d.mts +2 -2
  22. package/dist/lifecycle-workflow.d.ts +2 -2
  23. package/dist/lifecycle-workflow.mjs +1 -1
  24. package/dist/{local-4C3V4EFS.mjs → local-NXHIUJTO.mjs} +1 -1
  25. package/dist/next/loader.js +10 -2
  26. package/dist/next/loader.mjs +2 -2
  27. package/dist/next.js +10 -2
  28. package/dist/next.mjs +2 -2
  29. package/dist/{process-manager-WQHAIVRB.mjs → process-manager-26NELLRU.mjs} +1 -1
  30. package/dist/react.d.mts +56 -0
  31. package/dist/react.d.ts +56 -0
  32. package/dist/react.js +144 -0
  33. package/dist/react.mjs +117 -0
  34. package/dist/sandbox.d.mts +3 -3
  35. package/dist/sandbox.d.ts +3 -3
  36. package/dist/sandbox.js +5 -5
  37. package/dist/sandbox.mjs +2 -2
  38. package/dist/{steps-XA4wG8W3.d.ts → steps-BOKeU8X3.d.ts} +3 -2
  39. package/dist/{steps-eTytqxQb.d.mts → steps-Mi3sjYbD.d.mts} +3 -2
  40. package/dist/storage.d.mts +2 -2
  41. package/dist/storage.d.ts +2 -2
  42. package/dist/storage.js +107 -48
  43. package/dist/storage.mjs +2 -2
  44. package/dist/{vercel-6ORAC625.mjs → vercel-BOGHAFI4.mjs} +2 -2
  45. package/package.json +9 -1
  46. package/dist/chunk-BJTO5JO5.mjs +0 -11
  47. package/dist/chunk-I5DCB7RU.mjs +0 -346
@@ -230,10 +230,10 @@ function vercelSandbox(defaults) {
230
230
  return {
231
231
  type: "vercel",
232
232
  defaults,
233
- async create({ agent, setup, record, signal: _signal, log }) {
233
+ async create({ cwd: createCwd, agent, setup, record, signal: _signal, log }) {
234
234
  const storage = agent.storage;
235
235
  const config = setup.config ?? {};
236
- const cwd = config.cwd;
236
+ const cwd = config.cwd ?? createCwd ?? void 0;
237
237
  const resources = config.resources ?? { vcpus: DEFAULT_VCPUS };
238
238
  const ports = config.ports;
239
239
  const networkPolicy = config.networkPolicy ?? setup.networkPolicy ?? void 0;
@@ -308,13 +308,13 @@ function vercelSandbox(defaults) {
308
308
  metadata: { sandboxId: sdk.sandboxId }
309
309
  };
310
310
  },
311
- async connect({ metadata }) {
311
+ async connect({ metadata, cwd }) {
312
312
  const SandboxSDK = await loadSandboxSDK();
313
313
  const sdk = await SandboxSDK.get({
314
314
  sandboxId: metadata.sandboxId,
315
315
  ...getTestCredentials()
316
316
  });
317
- return new VercelSandboxInstance(sdk);
317
+ return new VercelSandboxInstance(sdk, cwd ?? void 0);
318
318
  }
319
319
  };
320
320
  }
@@ -322,4 +322,4 @@ function vercelSandbox(defaults) {
322
322
  export {
323
323
  vercelSandbox
324
324
  };
325
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3NhbmRib3gvYmluZGluZ3MvdmVyY2VsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdGFydCBhcyBzdGFydFdvcmtmbG93IH0gZnJvbSBcIndvcmtmbG93L2FwaVwiO1xuaW1wb3J0IHR5cGUgeyBTdG9yYWdlIH0gZnJvbSBcIi4uLy4uL3N0b3JhZ2VcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2xvZ2dlclwiO1xuaW1wb3J0IHR5cGUgeyBFeGVjUmVzdWx0LCBTYW5kYm94QmluZGluZywgU2FuZGJveEluc3RhbmNlIH0gZnJvbSBcIi4uL2FkYXB0ZXJcIjtcbmltcG9ydCB0eXBlIHsgTGlmZWN5Y2xlQ29uZmlnIH0gZnJvbSBcIi4vdmVyY2VsLWxpZmVjeWNsZS9zdGVwc1wiO1xuaW1wb3J0IHsgc2FuZGJveExpZmVjeWNsZVdvcmtmbG93IH0gZnJvbSBcIi4vdmVyY2VsLWxpZmVjeWNsZS93b3JrZmxvd1wiO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkU2FuZGJveFNESygpIHtcbiAgcmV0dXJuIChhd2FpdCBpbXBvcnQoXCJAdmVyY2VsL3NhbmRib3hcIikpLlNhbmRib3g7XG59XG5cbmNvbnN0IE1BWF9USU1FT1VUX01TID0gNSAqIDYwICogNjAgKiAxMDAwOyAvLyA1IGhvdXJzXG5jb25zdCBIT01FX0RJUiA9IFwiL2hvbWUvdmVyY2VsLXNhbmRib3hcIjtcbmNvbnN0IERFRkFVTFRfVkNQVVMgPSAyO1xuXG5leHBvcnQgdHlwZSBWZXJjZWxCaW5kaW5nQ29uZmlnID0ge1xuICBjd2Q/OiBzdHJpbmc7XG4gIHJlc291cmNlcz86IHsgdmNwdXM6IG51bWJlciB9O1xuICBwb3J0cz86IG51bWJlcltdO1xuICBuZXR3b3JrUG9saWN5PzogaW1wb3J0KFwiQHZlcmNlbC9zYW5kYm94XCIpLk5ldHdvcmtQb2xpY3k7XG4gIHNuYXBzaG90SWQ/OiBzdHJpbmc7XG4gIGxpZmVjeWNsZT86IExpZmVjeWNsZUNvbmZpZztcbn07XG5cbmV4cG9ydCB0eXBlIFZlcmNlbEJpbmRpbmdNZXRhZGF0YSA9IHtcbiAgc2FuZGJveElkOiBzdHJpbmc7XG59O1xuXG50eXBlIENyZWF0ZVNhbmRib3hPcHRzID0ge1xuICByZXNvdXJjZXM6IHsgdmNwdXM6IG51bWJlciB9O1xuICBwb3J0cz86IG51bWJlcltdO1xuICBuZXR3b3JrUG9saWN5PzogaW1wb3J0KFwiQHZlcmNlbC9zYW5kYm94XCIpLk5ldHdvcmtQb2xpY3k7XG4gIHNuYXBzaG90SWQ/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBpc1NhbmRib3hHb25lRXJyb3IoZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICBpZiAoIShlIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgc3RhdHVzID1cbiAgICAoZSBhcyB7IHJlc3BvbnNlPzogeyBzdGF0dXM/OiBudW1iZXIgfSB9KS5yZXNwb25zZT8uc3RhdHVzID8/XG4gICAgKGUgYXMgeyBjYXVzZT86IHsgcmVzcG9uc2U/OiB7IHN0YXR1cz86IG51bWJlciB9IH0gfSkuY2F1c2U/LnJlc3BvbnNlXG4gICAgICA/LnN0YXR1cztcblxuICBpZiAoc3RhdHVzID09PSA0MTAgfHwgc3RhdHVzID09PSA0MjIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IG1zZyA9IGUubWVzc2FnZSB8fCBTdHJpbmcoZSk7XG4gIHJldHVybiAoXG4gICAgbXNnLmluY2x1ZGVzKFwiRXhwZWN0ZWQgYSBzdHJlYW0gb2YgY29tbWFuZCBkYXRhXCIpIHx8XG4gICAgbXNnLmluY2x1ZGVzKFwiRXhwZWN0ZWQgYSBzdHJlYW0gb2YgbG9nc1wiKVxuICApO1xufVxuXG5jb25zdCBnZXRUZXN0Q3JlZGVudGlhbHMgPSAoKSA9PlxuICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCJcbiAgICA/IHtcbiAgICAgICAgdG9rZW46IHByb2Nlc3MuZW52LlRFU1RfVkVSQ0VMX1RPS0VOLFxuICAgICAgICB0ZWFtSWQ6IHByb2Nlc3MuZW52LlRFU1RfVkVSQ0VMX1RFQU1fSUQsXG4gICAgICAgIHByb2plY3RJZDogcHJvY2Vzcy5lbnYuVEVTVF9WRVJDRUxfUFJPSkVDVF9JRCxcbiAgICAgIH1cbiAgICA6IHt9O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTZGsoe1xuICByZXNvdXJjZXMsXG4gIHBvcnRzLFxuICBuZXR3b3JrUG9saWN5LFxuICBzbmFwc2hvdElkLFxufTogQ3JlYXRlU2FuZGJveE9wdHMpIHtcbiAgY29uc3QgU2FuZGJveFNESyA9IGF3YWl0IGxvYWRTYW5kYm94U0RLKCk7XG4gIGNvbnN0IGJhc2UgPSB7XG4gICAgcmVzb3VyY2VzLFxuICAgIHRpbWVvdXQ6IE1BWF9USU1FT1VUX01TLFxuICAgIC4uLihwb3J0cyA/IHsgcG9ydHMgfSA6IHt9KSxcbiAgICAuLi4obmV0d29ya1BvbGljeSA/IHsgbmV0d29ya1BvbGljeSB9IDoge30pLFxuICAgIC4uLmdldFRlc3RDcmVkZW50aWFscygpLFxuICB9O1xuXG4gIGlmIChzbmFwc2hvdElkKSB7XG4gICAgcmV0dXJuIFNhbmRib3hTREsuY3JlYXRlKHtcbiAgICAgIC4uLmJhc2UsXG4gICAgICBzb3VyY2U6IHsgdHlwZTogXCJzbmFwc2hvdFwiIGFzIGNvbnN0LCBzbmFwc2hvdElkIH0sXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gU2FuZGJveFNESy5jcmVhdGUoYmFzZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVNldHVwU25hcHNob3Qoe1xuICBzYW5kYm94T3B0cyxcbiAgcnVuLFxuICBzdG9yYWdlLFxuICBzbmFwc2hvdFZlcnNpb24sXG4gIGxvZyxcbn06IHtcbiAgc2FuZGJveE9wdHM6IENyZWF0ZVNhbmRib3hPcHRzO1xuICBydW46IChzYW5kYm94OiBTYW5kYm94SW5zdGFuY2UpID0+IFByb21pc2U8dm9pZD47XG4gIHN0b3JhZ2U6IFN0b3JhZ2U7XG4gIHNuYXBzaG90VmVyc2lvbjogc3RyaW5nO1xuICBsb2c6IExvZ2dlcjtcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IHRlbXBTZGs6IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlU2RrPj4gfCBudWxsID0gbnVsbDtcbiAgdHJ5IHtcbiAgICB0ZW1wU2RrID0gYXdhaXQgY3JlYXRlU2RrKHNhbmRib3hPcHRzKTtcbiAgICBjb25zdCB0ZW1wSW5zdGFuY2UgPSBuZXcgVmVyY2VsU2FuZGJveEluc3RhbmNlKHRlbXBTZGspO1xuICAgIGF3YWl0IHJ1bih0ZW1wSW5zdGFuY2UpO1xuICAgIGNvbnN0IHNuYXBzaG90ID0gYXdhaXQgdGVtcFNkay5zbmFwc2hvdCgpO1xuICAgIGF3YWl0IHN0b3JhZ2Uuc2V0dXAuc2V0KHNuYXBzaG90VmVyc2lvbiwge1xuICAgICAgdmVyc2lvbjogc25hcHNob3RWZXJzaW9uLFxuICAgICAgc25hcHNob3RJZDogc25hcHNob3Quc25hcHNob3RJZCxcbiAgICAgIGNyZWF0ZWRBdDogRGF0ZS5ub3coKSxcbiAgICAgIGxhc3RVc2VkQXQ6IG51bGwsXG4gICAgfSk7XG4gICAgYXdhaXQgdGVtcFNkay5zdG9wKCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2cuZXJyb3IoXCJmYWlsZWQgdG8gY3JlYXRlIHNldHVwIHNuYXBzaG90XCIsIHtcbiAgICAgIHNuYXBzaG90VmVyc2lvbixcbiAgICAgIGNhdXNlOiBlcnJvcixcbiAgICB9KTtcbiAgICBpZiAodGVtcFNkaykge1xuICAgICAgYXdhaXQgdGVtcFNkay5zdG9wKCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgVmVyY2VsU2FuZGJveEluc3RhbmNlIGltcGxlbWVudHMgU2FuZGJveEluc3RhbmNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzZGs6IGltcG9ydChcIkB2ZXJjZWwvc2FuZGJveFwiKS5TYW5kYm94O1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzZGs6IGltcG9ydChcIkB2ZXJjZWwvc2FuZGJveFwiKS5TYW5kYm94LCBjd2Q/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNkayA9IHNkaztcbiAgICB0aGlzLmN3ZCA9IGN3ZCA/PyBIT01FX0RJUjtcbiAgfVxuXG4gIGFzeW5jIGV4ZWMoe1xuICAgIGNvbW1hbmQsXG4gICAgYXJncyxcbiAgICBjd2QsXG4gICAgZW52LFxuICAgIHN1ZG8sXG4gICAgc2lnbmFsLFxuICB9OiB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIGFyZ3M/OiBzdHJpbmdbXTtcbiAgICBjd2Q/OiBzdHJpbmc7XG4gICAgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBzdWRvPzogYm9vbGVhbjtcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgfSk6IFByb21pc2U8RXhlY1Jlc3VsdD4ge1xuICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHRoaXMuc2RrLnJ1bkNvbW1hbmQoe1xuICAgICAgY21kOiBjb21tYW5kLFxuICAgICAgYXJncyxcbiAgICAgIGN3ZDogY3dkID8/IHRoaXMuY3dkLFxuICAgICAgZW52LFxuICAgICAgc3VkbyxcbiAgICAgIHNpZ25hbCxcbiAgICAgIGRldGFjaGVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgbGV0IHN0ZG91dCA9IFwiXCI7XG4gICAgbGV0IHN0ZGVyciA9IFwiXCI7XG4gICAgY29uc3QgbG9nQnVmZmVyOiB7IHN0cmVhbTogXCJzdGRvdXRcIiB8IFwic3RkZXJyXCI7IGRhdGE6IHN0cmluZyB9W10gPSBbXTtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgIHJlc29sdmU6IG51bGwgYXMgKCgpID0+IHZvaWQpIHwgbnVsbCxcbiAgICAgIGNvbnN1bWVkOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29uc3VtZUxvZ3MgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBlbnRyeSBvZiBvdXRwdXQubG9ncygpKSB7XG4gICAgICAgICAgaWYgKGVudHJ5LnN0cmVhbSA9PT0gXCJzdGRvdXRcIikge1xuICAgICAgICAgICAgc3Rkb3V0ICs9IGVudHJ5LmRhdGE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0ZGVyciArPSBlbnRyeS5kYXRhO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvZ0J1ZmZlci5wdXNoKGVudHJ5KTtcbiAgICAgICAgICBzdGF0ZS5yZXNvbHZlPy4oKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIFNhbmRib3ggbWF5IGhhdmUgYmVlbiBzdG9wcGVkIFx1MjAxNCBsb2dzIGVuZHBvaW50IHJldHVybnMgNDIyXG4gICAgICB9XG4gICAgICBzdGF0ZS5jb25zdW1lZCA9IHRydWU7XG4gICAgICBzdGF0ZS5yZXNvbHZlPy4oKTtcbiAgICB9KSgpO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24qIGxvZ3MoKTogQXN5bmNJdGVyYWJsZTx7XG4gICAgICBzdHJlYW06IFwic3Rkb3V0XCIgfCBcInN0ZGVyclwiO1xuICAgICAgZGF0YTogc3RyaW5nO1xuICAgIH0+IHtcbiAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICB3aGlsZSAoIXN0YXRlLmNvbnN1bWVkIHx8IGluZGV4IDwgbG9nQnVmZmVyLmxlbmd0aCkge1xuICAgICAgICBpZiAoaW5kZXggPCBsb2dCdWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgeWllbGQgbG9nQnVmZmVyW2luZGV4KytdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyKSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5yZXNvbHZlID0gcjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0ZS5yZXNvbHZlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGNvbnN1bWVMb2dzLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmluaXNoZWQgPSBhd2FpdCBvdXRwdXQud2FpdCgpO1xuICAgICAgICByZXR1cm4geyBzdGRvdXQsIHN0ZGVyciwgZXhpdENvZGU6IGZpbmlzaGVkLmV4aXRDb2RlIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChpc1NhbmRib3hHb25lRXJyb3IoZSkpIHtcbiAgICAgICAgICByZXR1cm4geyBzdGRvdXQsIHN0ZGVyciwgZXhpdENvZGU6IDEgfTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgY29tbWFuZElkOiBvdXRwdXQuY21kSWQsIGxvZ3MsIHJlc3VsdCB9O1xuICB9XG5cbiAgYXN5bmMgcmVhZEZpbGUoe1xuICAgIHBhdGg6IGZpbGVQYXRoLFxuICB9OiB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICB9KTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNkay5yZWFkRmlsZVRvQnVmZmVyKHsgcGF0aDogZmlsZVBhdGgsIGN3ZDogdGhpcy5jd2QgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyB3cml0ZUZpbGVzKHtcbiAgICBmaWxlcyxcbiAgICBkZXN0UGF0aCxcbiAgfToge1xuICAgIGZpbGVzOiB7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nIHwgQnVmZmVyIH1bXTtcbiAgICBkZXN0UGF0aDogc3RyaW5nO1xuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSBhd2FpdCBpbXBvcnQoXCJub2RlOnBhdGhcIik7XG4gICAgY29uc3QgbmF0aXZlRmlsZXMgPSBmaWxlcy5tYXAoKGZpbGUpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5wb3NpeC5qb2luKGRlc3RQYXRoLCBmaWxlLnBhdGgpO1xuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gcGF0aC5wb3NpeC5pc0Fic29sdXRlKGZpbGVQYXRoKVxuICAgICAgICA/IGZpbGVQYXRoXG4gICAgICAgIDogcGF0aC5wb3NpeC5qb2luKHRoaXMuY3dkLCBmaWxlUGF0aCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXRoOiBhYnNvbHV0ZVBhdGgsXG4gICAgICAgIGNvbnRlbnQ6XG4gICAgICAgICAgdHlwZW9mIGZpbGUuY29udGVudCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBCdWZmZXIuZnJvbShmaWxlLmNvbnRlbnQpXG4gICAgICAgICAgICA6IGZpbGUuY29udGVudCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLnNkay53cml0ZUZpbGVzKG5hdGl2ZUZpbGVzKTtcblxuICAgIGNvbnN0IHNoZWxsU2NyaXB0cyA9IG5hdGl2ZUZpbGVzLmZpbHRlcigoZikgPT4gZi5wYXRoLmVuZHNXaXRoKFwiLnNoXCIpKTtcbiAgICBpZiAoc2hlbGxTY3JpcHRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlYyh7XG4gICAgICAgIGNvbW1hbmQ6IFwiY2htb2RcIixcbiAgICAgICAgYXJnczogW1wiK3hcIiwgLi4uc2hlbGxTY3JpcHRzLm1hcCgoZikgPT4gZi5wYXRoKV0sXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHJlc3VsdC5yZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy91c2VBd2FpdDogc3luY2hyb25vdXMgU0RLIGNhbGxcbiAgYXN5bmMgZ2V0RG9tYWluKHtcbiAgICBwb3J0LFxuICB9OiB7XG4gICAgcG9ydDogbnVtYmVyO1xuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zZGsuZG9tYWluKHBvcnQpO1xuICB9XG5cbiAgYXN5bmMga2lsbCh7XG4gICAgY29tbWFuZElkLFxuICB9OiB7XG4gICAgY29tbWFuZElkOiBzdHJpbmc7XG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjbWQgPSBhd2FpdCB0aGlzLnNkay5nZXRDb21tYW5kKGNvbW1hbmRJZCk7XG4gICAgYXdhaXQgY21kLmtpbGwoKTtcbiAgfVxuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvdXNlQXdhaXQ6IHN5bmNocm9ub3VzIFNESyBnZXR0ZXJcbiAgYXN5bmMgZ2V0U3RhdHVzKCk6IFByb21pc2U8XG4gICAgXCJwZW5kaW5nXCIgfCBcInJ1bm5pbmdcIiB8IFwic3RvcHBpbmdcIiB8IFwic3RvcHBlZFwiIHwgXCJmYWlsZWRcIlxuICA+IHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnNkay5zdGF0dXM7XG4gICAgLy8gTWFwIFNESy1vbmx5IHN0YXR1c2VzIHRvIG91ciBpbnRlcmZhY2UncyB1bmlvblxuICAgIGlmIChzdGF0dXMgPT09IFwic25hcHNob3R0aW5nXCIpIHtcbiAgICAgIHJldHVybiBcInN0b3BwaW5nXCI7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IFwiYWJvcnRlZFwiKSB7XG4gICAgICByZXR1cm4gXCJmYWlsZWRcIjtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1cztcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRoZSBWZXJjZWwgU0RLIGRvZXNuJ3QgaGF2ZSBhIHJlc3VtZSBtZXRob2QuXG4gICAgLy8gUnVuIGEgbm8tb3AgY29tbWFuZCB0byB2ZXJpZnkgdGhlIHNhbmRib3ggaXMgcmVhY2hhYmxlLlxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlYyh7IGNvbW1hbmQ6IFwidHJ1ZVwiIH0pO1xuICAgIGF3YWl0IHJlc3VsdC5yZXN1bHQ7XG4gIH1cblxuICBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2RrLnN0b3AoKTtcbiAgfVxuXG4gIGFzeW5jIHNuYXBzaG90KCk6IFByb21pc2U8eyBzbmFwc2hvdElkOiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IHNuYXAgPSBhd2FpdCB0aGlzLnNkay5zbmFwc2hvdCgpO1xuICAgIHJldHVybiB7IHNuYXBzaG90SWQ6IHNuYXAuc25hcHNob3RJZCB9O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlTmV0d29ya1BvbGljeSh7XG4gICAgcG9saWN5LFxuICB9OiB7XG4gICAgcG9saWN5OiBpbXBvcnQoXCJAdmVyY2VsL3NhbmRib3hcIikuTmV0d29ya1BvbGljeTtcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgfSk6IFByb21pc2U8aW1wb3J0KFwiQHZlcmNlbC9zYW5kYm94XCIpLk5ldHdvcmtQb2xpY3k+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZGsudXBkYXRlTmV0d29ya1BvbGljeShwb2xpY3kpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJjZWxTYW5kYm94KFxuICBkZWZhdWx0cz86IFBhcnRpYWw8aW1wb3J0KFwiLi4vYWRhcHRlclwiKS5TYW5kYm94U2V0dXBGaWVsZHM+ICYge1xuICAgIHJ1bj86IChzYW5kYm94OiBTYW5kYm94SW5zdGFuY2UpID0+IFByb21pc2U8dm9pZD47XG4gICAgY29uZmlnPzogVmVyY2VsQmluZGluZ0NvbmZpZztcbiAgfVxuKTogU2FuZGJveEJpbmRpbmc8XCJ2ZXJjZWxcIiwgVmVyY2VsQmluZGluZ0NvbmZpZywgVmVyY2VsQmluZGluZ01ldGFkYXRhPiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJ2ZXJjZWxcIixcbiAgICBkZWZhdWx0cyxcbiAgICBhc3luYyBjcmVhdGUoeyBhZ2VudCwgc2V0dXAsIHJlY29yZCwgc2lnbmFsOiBfc2lnbmFsLCBsb2cgfSkge1xuICAgICAgY29uc3Qgc3RvcmFnZSA9IGFnZW50LnN0b3JhZ2U7XG4gICAgICBjb25zdCBjb25maWcgPSBzZXR1cC5jb25maWcgPz8ge307XG4gICAgICBjb25zdCBjd2QgPSBjb25maWcuY3dkO1xuICAgICAgY29uc3QgcmVzb3VyY2VzID0gY29uZmlnLnJlc291cmNlcyA/PyB7IHZjcHVzOiBERUZBVUxUX1ZDUFVTIH07XG4gICAgICBjb25zdCBwb3J0cyA9IGNvbmZpZy5wb3J0cztcbiAgICAgIGNvbnN0IG5ldHdvcmtQb2xpY3kgPVxuICAgICAgICBjb25maWcubmV0d29ya1BvbGljeSA/PyBzZXR1cC5uZXR3b3JrUG9saWN5ID8/IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3Qgc2FuZGJveE9wdHM6IENyZWF0ZVNhbmRib3hPcHRzID0ge1xuICAgICAgICByZXNvdXJjZXMsXG4gICAgICAgIHBvcnRzLFxuICAgICAgICBuZXR3b3JrUG9saWN5LFxuICAgICAgICBzbmFwc2hvdElkOiBjb25maWcuc25hcHNob3RJZCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IF9zdGFydExpZmVjeWNsZSA9ICh2ZXJjZWxTYW5kYm94SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoIXJlY29yZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdGFydFdvcmtmbG93KHNhbmRib3hMaWZlY3ljbGVXb3JrZmxvdywgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIGFnZW50LFxuICAgICAgICAgICAgICBzYW5kYm94SWQ6IHJlY29yZC5pZCxcbiAgICAgICAgICAgICAgdmVyY2VsU2FuZGJveElkLFxuICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZy5saWZlY3ljbGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgbG9nLmVycm9yKFwiZmFpbGVkIHRvIHN0YXJ0IGxpZmVjeWNsZSB3b3JrZmxvd1wiLCB7IGNhdXNlOiBlIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChzZXR1cC52ZXJzaW9uKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgc3RvcmFnZS5zZXR1cC5nZXQoc2V0dXAudmVyc2lvbik7XG4gICAgICAgIGlmIChleGlzdGluZz8uc25hcHNob3RJZCkge1xuICAgICAgICAgIGNvbnN0IHNkayA9IGF3YWl0IGNyZWF0ZVNkayh7XG4gICAgICAgICAgICAuLi5zYW5kYm94T3B0cyxcbiAgICAgICAgICAgIHNuYXBzaG90SWQ6IGV4aXN0aW5nLnNuYXBzaG90SWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgVmVyY2VsU2FuZGJveEluc3RhbmNlKHNkaywgY3dkKTtcblxuICAgICAgICAgIHN0b3JhZ2Uuc2V0dXBcbiAgICAgICAgICAgIC5zZXQoc2V0dXAudmVyc2lvbiwge1xuICAgICAgICAgICAgICAuLi5leGlzdGluZyxcbiAgICAgICAgICAgICAgdmVyc2lvbjogc2V0dXAudmVyc2lvbixcbiAgICAgICAgICAgICAgbGFzdFVzZWRBdDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7IHNhbmRib3hJZDogc2RrLnNhbmRib3hJZCB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNldHVwLnJ1bikge1xuICAgICAgICBpZiAoIXNldHVwLnZlcnNpb24pIHtcbiAgICAgICAgICBsb2cuZXJyb3IoXCJzZXR1cC5ydW4gcHJvdmlkZWQgd2l0aG91dCBzZXR1cC52ZXJzaW9uXCIsIHsgc2V0dXAgfSk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2V0dXAucnVuIHByb3ZpZGVkIHdpdGhvdXQgc2V0dXAudmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBjcmVhdGVTZXR1cFNuYXBzaG90KHtcbiAgICAgICAgICBzYW5kYm94T3B0cyxcbiAgICAgICAgICBydW46IHNldHVwLnJ1bixcbiAgICAgICAgICBzdG9yYWdlLFxuICAgICAgICAgIHNuYXBzaG90VmVyc2lvbjogc2V0dXAudmVyc2lvbixcbiAgICAgICAgICBsb2csXG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIGxvZy5lcnJvcihcImJhY2tncm91bmQgc2V0dXAgc25hcHNob3QgZmFpbGVkXCIsIHsgY2F1c2U6IGVycm9yIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBzZGsgPSBhd2FpdCBjcmVhdGVTZGsoc2FuZGJveE9wdHMpO1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBWZXJjZWxTYW5kYm94SW5zdGFuY2Uoc2RrLCBjd2QpO1xuICAgICAgICBhd2FpdCBzZXR1cC5ydW4oaW5zdGFuY2UpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgbWV0YWRhdGE6IHsgc2FuZGJveElkOiBzZGsuc2FuZGJveElkIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNkayA9IGF3YWl0IGNyZWF0ZVNkayhzYW5kYm94T3B0cyk7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBWZXJjZWxTYW5kYm94SW5zdGFuY2Uoc2RrLCBjd2QpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgbWV0YWRhdGE6IHsgc2FuZGJveElkOiBzZGsuc2FuZGJveElkIH0sXG4gICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyBjb25uZWN0KHsgbWV0YWRhdGEgfSkge1xuICAgICAgY29uc3QgU2FuZGJveFNESyA9IGF3YWl0IGxvYWRTYW5kYm94U0RLKCk7XG4gICAgICBjb25zdCBzZGsgPSBhd2FpdCBTYW5kYm94U0RLLmdldCh7XG4gICAgICAgIHNhbmRib3hJZDogbWV0YWRhdGEuc2FuZGJveElkLFxuICAgICAgICAuLi5nZXRUZXN0Q3JlZGVudGlhbHMoKSxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIG5ldyBWZXJjZWxTYW5kYm94SW5zdGFuY2Uoc2RrKTtcbiAgICB9LFxuICB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7QUFBQSxTQUFTLFNBQVMscUJBQXFCO0FBT3ZDLGVBQWUsaUJBQWlCO0FBQzlCLFVBQVEsTUFBTSxPQUFPLGlCQUFpQixHQUFHO0FBQzNDO0FBRUEsSUFBTSxpQkFBaUIsSUFBSSxLQUFLLEtBQUs7QUFDckMsSUFBTSxXQUFXO0FBQ2pCLElBQU0sZ0JBQWdCO0FBc0J0QixTQUFTLG1CQUFtQixHQUFxQjtBQUMvQyxNQUFJLEVBQUUsYUFBYSxRQUFRO0FBQ3pCLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxTQUNILEVBQXlDLFVBQVUsVUFDbkQsRUFBcUQsT0FBTyxVQUN6RDtBQUVOLE1BQUksV0FBVyxPQUFPLFdBQVcsS0FBSztBQUNwQyxXQUFPO0FBQUEsRUFDVDtBQUVBLFFBQU0sTUFBTSxFQUFFLFdBQVcsT0FBTyxDQUFDO0FBQ2pDLFNBQ0UsSUFBSSxTQUFTLG1DQUFtQyxLQUNoRCxJQUFJLFNBQVMsMkJBQTJCO0FBRTVDO0FBRUEsSUFBTSxxQkFBcUIsTUFDekIsUUFBUSxJQUFJLGFBQWEsU0FDckI7QUFBQSxFQUNFLE9BQU8sUUFBUSxJQUFJO0FBQUEsRUFDbkIsUUFBUSxRQUFRLElBQUk7QUFBQSxFQUNwQixXQUFXLFFBQVEsSUFBSTtBQUN6QixJQUNBLENBQUM7QUFFUCxlQUFlLFVB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LFFBQVEsTUFBTSxJQUFJLE1BQU0sT0FBTztBQUN0RCxZQUFJLFVBQVUsWUFBWTtBQUN4QixnQkFBTUEsT0FBTSxNQUFNLFVBQVU7QUFBQSxZQUMxQixHQUFHO0FBQUEsWUFDSCxZQUFZLFNBQVM7QUFBQSxVQUN2QixDQUFDO0FBQ0QsZ0JBQU1DLFlBQVcsSUFBSSxzQkFBc0JELE1BQUssR0FBRztBQUVuRCxrQkFBUSxNQUNMLElBQUksTUFBTSxTQUFTO0FBQUEsWUFDbEIsR0FBRztBQUFBLFlBQ0gsU0FBUyxNQUFNO0FBQUEsWUFDZixZQUFZLEtBQUssSUFBSTtBQUFBLFVBQ3ZCLENBQUMsRUFDQSxNQUFNLE1BQU0sTUFBUztBQUV4QixpQkFBTztBQUFBLFlBQ0wsVUFBQUM7QUFBQSxZQUNBLFVBQVUsRUFBRSxXQUFXRCxLQUFJLFVBQVU7QUFBQSxVQUN2QztBQUFBLFFBQ0Y7QUFBQSxNQUNGO0FBRUEsVUFBSSxNQUFNLEtBQUs7QUFDYixZQUFJLENBQUMsTUFBTSxTQUFTO0FBQ2xCLGNBQUksTUFBTSw0Q0FBNEMsRUFBRSxNQUFNLENBQUM7QUFDL0QsZ0JBQU0sSUFBSSxNQUFNLDBDQUEwQztBQUFBLFFBQzVEO0FBQ0EsNEJBQW9CO0FBQUEsVUFDbEI7QUFBQSxVQUNBLEtBQUssTUFBTTtBQUFBLFVBQ1g7QUFBQSxVQUNBLGlCQUFpQixNQUFNO0FBQUEsVUFDdkI7QUFBQSxRQUNGLENBQUMsRUFBRSxNQUFNLENBQUMsVUFBVTtBQUNsQixjQUFJLE1BQU0sb0NBQW9DLEVBQUUsT0FBTyxNQUFNLENBQUM7QUFBQSxRQUNoRSxDQUFDO0FBRUQsY0FBTUEsT0FBTSxNQUFNLFVBQVUsV0FBVztBQUN2QyxjQUFNQyxZQUFXLElBQUksc0JBQXNCRCxNQUFLLEdBQUc7QUFDbkQsY0FBTSxNQUFNLElBQUlDLFNBQVE7QUFFeEIsZUFBTztBQUFBLFVBQ0wsVUFBQUE7QUFBQSxVQUNBLFVBQVUsRUFBRSxXQUFXRCxLQUFJLFVBQVU7QUFBQSxRQUN2QztBQUFBLE1BQ0Y7QUFFQSxZQUFNLE1BQU0sTUFBTSxVQUFVLFdBQVc7QUFDdkMsWUFBTSxXQUFXLElBQUksc0JBQXNCLEtBQUssR0FBRztBQUVuRCxhQUFPO0FBQUEsUUFDTDtBQUFBLFFBQ0EsVUFBVSxFQUFFLFdBQVcsSUFBSSxVQUFVO0FBQUEsTUFDdkM7QUFBQSxJQUNGO0FBQUEsSUFFQSxNQUFNLFFBQVEsRUFBRSxTQUFTLEdBQUc7QUFDMUIsWUFBTSxhQUFhLE1BQU0sZUFBZTtBQUN4QyxZQUFNLE1BQU0sTUFBTSxXQUFXLElBQUk7QUFBQSxRQUMvQixXQUFXLFNBQVM7QUFBQSxRQUNwQixHQUFHLG1CQUFtQjtBQUFBLE1BQ3hCLENBQUM7QUFDRCxhQUFPLElBQUksc0JBQXNCLEdBQUc7QUFBQSxJQUN0QztBQUFBLEVBQ0Y7QUFDRjsiLAogICJuYW1lcyI6IFsic2RrIiwgImluc3RhbmNlIl0KfQo=
325
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3NhbmRib3gvYmluZGluZ3MvdmVyY2VsLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyJpbXBvcnQgeyBzdGFydCBhcyBzdGFydFdvcmtmbG93IH0gZnJvbSBcIndvcmtmbG93L2FwaVwiO1xuaW1wb3J0IHR5cGUgeyBTdG9yYWdlIH0gZnJvbSBcIi4uLy4uL3N0b3JhZ2VcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSBcIi4uLy4uL3V0aWxzL2xvZ2dlclwiO1xuaW1wb3J0IHR5cGUgeyBFeGVjUmVzdWx0LCBTYW5kYm94QmluZGluZywgU2FuZGJveEluc3RhbmNlIH0gZnJvbSBcIi4uL2FkYXB0ZXJcIjtcbmltcG9ydCB0eXBlIHsgTGlmZWN5Y2xlQ29uZmlnIH0gZnJvbSBcIi4vdmVyY2VsLWxpZmVjeWNsZS9zdGVwc1wiO1xuaW1wb3J0IHsgc2FuZGJveExpZmVjeWNsZVdvcmtmbG93IH0gZnJvbSBcIi4vdmVyY2VsLWxpZmVjeWNsZS93b3JrZmxvd1wiO1xuXG5hc3luYyBmdW5jdGlvbiBsb2FkU2FuZGJveFNESygpIHtcbiAgcmV0dXJuIChhd2FpdCBpbXBvcnQoXCJAdmVyY2VsL3NhbmRib3hcIikpLlNhbmRib3g7XG59XG5cbmNvbnN0IE1BWF9USU1FT1VUX01TID0gNSAqIDYwICogNjAgKiAxMDAwOyAvLyA1IGhvdXJzXG5jb25zdCBIT01FX0RJUiA9IFwiL2hvbWUvdmVyY2VsLXNhbmRib3hcIjtcbmNvbnN0IERFRkFVTFRfVkNQVVMgPSAyO1xuXG5leHBvcnQgdHlwZSBWZXJjZWxCaW5kaW5nQ29uZmlnID0ge1xuICBjd2Q/OiBzdHJpbmc7XG4gIHJlc291cmNlcz86IHsgdmNwdXM6IG51bWJlciB9O1xuICBwb3J0cz86IG51bWJlcltdO1xuICBuZXR3b3JrUG9saWN5PzogaW1wb3J0KFwiQHZlcmNlbC9zYW5kYm94XCIpLk5ldHdvcmtQb2xpY3k7XG4gIHNuYXBzaG90SWQ/OiBzdHJpbmc7XG4gIGxpZmVjeWNsZT86IExpZmVjeWNsZUNvbmZpZztcbn07XG5cbmV4cG9ydCB0eXBlIFZlcmNlbEJpbmRpbmdNZXRhZGF0YSA9IHtcbiAgc2FuZGJveElkOiBzdHJpbmc7XG59O1xuXG50eXBlIENyZWF0ZVNhbmRib3hPcHRzID0ge1xuICByZXNvdXJjZXM6IHsgdmNwdXM6IG51bWJlciB9O1xuICBwb3J0cz86IG51bWJlcltdO1xuICBuZXR3b3JrUG9saWN5PzogaW1wb3J0KFwiQHZlcmNlbC9zYW5kYm94XCIpLk5ldHdvcmtQb2xpY3k7XG4gIHNuYXBzaG90SWQ/OiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBpc1NhbmRib3hHb25lRXJyb3IoZTogdW5rbm93bik6IGJvb2xlYW4ge1xuICBpZiAoIShlIGluc3RhbmNlb2YgRXJyb3IpKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3Qgc3RhdHVzID1cbiAgICAoZSBhcyB7IHJlc3BvbnNlPzogeyBzdGF0dXM/OiBudW1iZXIgfSB9KS5yZXNwb25zZT8uc3RhdHVzID8/XG4gICAgKGUgYXMgeyBjYXVzZT86IHsgcmVzcG9uc2U/OiB7IHN0YXR1cz86IG51bWJlciB9IH0gfSkuY2F1c2U/LnJlc3BvbnNlXG4gICAgICA/LnN0YXR1cztcblxuICBpZiAoc3RhdHVzID09PSA0MTAgfHwgc3RhdHVzID09PSA0MjIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGNvbnN0IG1zZyA9IGUubWVzc2FnZSB8fCBTdHJpbmcoZSk7XG4gIHJldHVybiAoXG4gICAgbXNnLmluY2x1ZGVzKFwiRXhwZWN0ZWQgYSBzdHJlYW0gb2YgY29tbWFuZCBkYXRhXCIpIHx8XG4gICAgbXNnLmluY2x1ZGVzKFwiRXhwZWN0ZWQgYSBzdHJlYW0gb2YgbG9nc1wiKVxuICApO1xufVxuXG5jb25zdCBnZXRUZXN0Q3JlZGVudGlhbHMgPSAoKSA9PlxuICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gXCJ0ZXN0XCJcbiAgICA/IHtcbiAgICAgICAgdG9rZW46IHByb2Nlc3MuZW52LlRFU1RfVkVSQ0VMX1RPS0VOLFxuICAgICAgICB0ZWFtSWQ6IHByb2Nlc3MuZW52LlRFU1RfVkVSQ0VMX1RFQU1fSUQsXG4gICAgICAgIHByb2plY3RJZDogcHJvY2Vzcy5lbnYuVEVTVF9WRVJDRUxfUFJPSkVDVF9JRCxcbiAgICAgIH1cbiAgICA6IHt9O1xuXG5hc3luYyBmdW5jdGlvbiBjcmVhdGVTZGsoe1xuICByZXNvdXJjZXMsXG4gIHBvcnRzLFxuICBuZXR3b3JrUG9saWN5LFxuICBzbmFwc2hvdElkLFxufTogQ3JlYXRlU2FuZGJveE9wdHMpIHtcbiAgY29uc3QgU2FuZGJveFNESyA9IGF3YWl0IGxvYWRTYW5kYm94U0RLKCk7XG4gIGNvbnN0IGJhc2UgPSB7XG4gICAgcmVzb3VyY2VzLFxuICAgIHRpbWVvdXQ6IE1BWF9USU1FT1VUX01TLFxuICAgIC4uLihwb3J0cyA/IHsgcG9ydHMgfSA6IHt9KSxcbiAgICAuLi4obmV0d29ya1BvbGljeSA/IHsgbmV0d29ya1BvbGljeSB9IDoge30pLFxuICAgIC4uLmdldFRlc3RDcmVkZW50aWFscygpLFxuICB9O1xuXG4gIGlmIChzbmFwc2hvdElkKSB7XG4gICAgcmV0dXJuIFNhbmRib3hTREsuY3JlYXRlKHtcbiAgICAgIC4uLmJhc2UsXG4gICAgICBzb3VyY2U6IHsgdHlwZTogXCJzbmFwc2hvdFwiIGFzIGNvbnN0LCBzbmFwc2hvdElkIH0sXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gU2FuZGJveFNESy5jcmVhdGUoYmFzZSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVNldHVwU25hcHNob3Qoe1xuICBzYW5kYm94T3B0cyxcbiAgcnVuLFxuICBzdG9yYWdlLFxuICBzbmFwc2hvdFZlcnNpb24sXG4gIGxvZyxcbn06IHtcbiAgc2FuZGJveE9wdHM6IENyZWF0ZVNhbmRib3hPcHRzO1xuICBydW46IChzYW5kYm94OiBTYW5kYm94SW5zdGFuY2UpID0+IFByb21pc2U8dm9pZD47XG4gIHN0b3JhZ2U6IFN0b3JhZ2U7XG4gIHNuYXBzaG90VmVyc2lvbjogc3RyaW5nO1xuICBsb2c6IExvZ2dlcjtcbn0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgbGV0IHRlbXBTZGs6IEF3YWl0ZWQ8UmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlU2RrPj4gfCBudWxsID0gbnVsbDtcbiAgdHJ5IHtcbiAgICB0ZW1wU2RrID0gYXdhaXQgY3JlYXRlU2RrKHNhbmRib3hPcHRzKTtcbiAgICBjb25zdCB0ZW1wSW5zdGFuY2UgPSBuZXcgVmVyY2VsU2FuZGJveEluc3RhbmNlKHRlbXBTZGspO1xuICAgIGF3YWl0IHJ1bih0ZW1wSW5zdGFuY2UpO1xuICAgIGNvbnN0IHNuYXBzaG90ID0gYXdhaXQgdGVtcFNkay5zbmFwc2hvdCgpO1xuICAgIGF3YWl0IHN0b3JhZ2Uuc2V0dXAuc2V0KHNuYXBzaG90VmVyc2lvbiwge1xuICAgICAgdmVyc2lvbjogc25hcHNob3RWZXJzaW9uLFxuICAgICAgc25hcHNob3RJZDogc25hcHNob3Quc25hcHNob3RJZCxcbiAgICAgIGNyZWF0ZWRBdDogRGF0ZS5ub3coKSxcbiAgICAgIGxhc3RVc2VkQXQ6IG51bGwsXG4gICAgfSk7XG4gICAgYXdhaXQgdGVtcFNkay5zdG9wKCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBsb2cuZXJyb3IoXCJmYWlsZWQgdG8gY3JlYXRlIHNldHVwIHNuYXBzaG90XCIsIHtcbiAgICAgIHNuYXBzaG90VmVyc2lvbixcbiAgICAgIGNhdXNlOiBlcnJvcixcbiAgICB9KTtcbiAgICBpZiAodGVtcFNkaykge1xuICAgICAgYXdhaXQgdGVtcFNkay5zdG9wKCkuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcbiAgICB9XG4gIH1cbn1cblxuY2xhc3MgVmVyY2VsU2FuZGJveEluc3RhbmNlIGltcGxlbWVudHMgU2FuZGJveEluc3RhbmNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBzZGs6IGltcG9ydChcIkB2ZXJjZWwvc2FuZGJveFwiKS5TYW5kYm94O1xuICByZWFkb25seSBjd2Q6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzZGs6IGltcG9ydChcIkB2ZXJjZWwvc2FuZGJveFwiKS5TYW5kYm94LCBjd2Q/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNkayA9IHNkaztcbiAgICB0aGlzLmN3ZCA9IGN3ZCA/PyBIT01FX0RJUjtcbiAgfVxuXG4gIGFzeW5jIGV4ZWMoe1xuICAgIGNvbW1hbmQsXG4gICAgYXJncyxcbiAgICBjd2QsXG4gICAgZW52LFxuICAgIHN1ZG8sXG4gICAgc2lnbmFsLFxuICB9OiB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIGFyZ3M/OiBzdHJpbmdbXTtcbiAgICBjd2Q/OiBzdHJpbmc7XG4gICAgZW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgICBzdWRvPzogYm9vbGVhbjtcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgfSk6IFByb21pc2U8RXhlY1Jlc3VsdD4ge1xuICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHRoaXMuc2RrLnJ1bkNvbW1hbmQoe1xuICAgICAgY21kOiBjb21tYW5kLFxuICAgICAgYXJncyxcbiAgICAgIGN3ZDogY3dkID8/IHRoaXMuY3dkLFxuICAgICAgZW52LFxuICAgICAgc3VkbyxcbiAgICAgIHNpZ25hbCxcbiAgICAgIGRldGFjaGVkOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgbGV0IHN0ZG91dCA9IFwiXCI7XG4gICAgbGV0IHN0ZGVyciA9IFwiXCI7XG4gICAgY29uc3QgbG9nQnVmZmVyOiB7IHN0cmVhbTogXCJzdGRvdXRcIiB8IFwic3RkZXJyXCI7IGRhdGE6IHN0cmluZyB9W10gPSBbXTtcbiAgICBjb25zdCBzdGF0ZSA9IHtcbiAgICAgIHJlc29sdmU6IG51bGwgYXMgKCgpID0+IHZvaWQpIHwgbnVsbCxcbiAgICAgIGNvbnN1bWVkOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29uc3VtZUxvZ3MgPSAoYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgZm9yIGF3YWl0IChjb25zdCBlbnRyeSBvZiBvdXRwdXQubG9ncygpKSB7XG4gICAgICAgICAgaWYgKGVudHJ5LnN0cmVhbSA9PT0gXCJzdGRvdXRcIikge1xuICAgICAgICAgICAgc3Rkb3V0ICs9IGVudHJ5LmRhdGE7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN0ZGVyciArPSBlbnRyeS5kYXRhO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxvZ0J1ZmZlci5wdXNoKGVudHJ5KTtcbiAgICAgICAgICBzdGF0ZS5yZXNvbHZlPy4oKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIFNhbmRib3ggbWF5IGhhdmUgYmVlbiBzdG9wcGVkIFx1MjAxNCBsb2dzIGVuZHBvaW50IHJldHVybnMgNDIyXG4gICAgICB9XG4gICAgICBzdGF0ZS5jb25zdW1lZCA9IHRydWU7XG4gICAgICBzdGF0ZS5yZXNvbHZlPy4oKTtcbiAgICB9KSgpO1xuXG4gICAgYXN5bmMgZnVuY3Rpb24qIGxvZ3MoKTogQXN5bmNJdGVyYWJsZTx7XG4gICAgICBzdHJlYW06IFwic3Rkb3V0XCIgfCBcInN0ZGVyclwiO1xuICAgICAgZGF0YTogc3RyaW5nO1xuICAgIH0+IHtcbiAgICAgIGxldCBpbmRleCA9IDA7XG4gICAgICB3aGlsZSAoIXN0YXRlLmNvbnN1bWVkIHx8IGluZGV4IDwgbG9nQnVmZmVyLmxlbmd0aCkge1xuICAgICAgICBpZiAoaW5kZXggPCBsb2dCdWZmZXIubGVuZ3RoKSB7XG4gICAgICAgICAgeWllbGQgbG9nQnVmZmVyW2luZGV4KytdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlPHZvaWQ+KChyKSA9PiB7XG4gICAgICAgICAgICBzdGF0ZS5yZXNvbHZlID0gcjtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBzdGF0ZS5yZXNvbHZlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGNvbnN1bWVMb2dzLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZmluaXNoZWQgPSBhd2FpdCBvdXRwdXQud2FpdCgpO1xuICAgICAgICByZXR1cm4geyBzdGRvdXQsIHN0ZGVyciwgZXhpdENvZGU6IGZpbmlzaGVkLmV4aXRDb2RlIH07XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlmIChpc1NhbmRib3hHb25lRXJyb3IoZSkpIHtcbiAgICAgICAgICByZXR1cm4geyBzdGRvdXQsIHN0ZGVyciwgZXhpdENvZGU6IDEgfTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHsgY29tbWFuZElkOiBvdXRwdXQuY21kSWQsIGxvZ3MsIHJlc3VsdCB9O1xuICB9XG5cbiAgYXN5bmMgcmVhZEZpbGUoe1xuICAgIHBhdGg6IGZpbGVQYXRoLFxuICB9OiB7XG4gICAgcGF0aDogc3RyaW5nO1xuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICB9KTogUHJvbWlzZTxCdWZmZXIgfCBudWxsPiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnNkay5yZWFkRmlsZVRvQnVmZmVyKHsgcGF0aDogZmlsZVBhdGgsIGN3ZDogdGhpcy5jd2QgfSk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICBhc3luYyB3cml0ZUZpbGVzKHtcbiAgICBmaWxlcyxcbiAgICBkZXN0UGF0aCxcbiAgfToge1xuICAgIGZpbGVzOiB7IHBhdGg6IHN0cmluZzsgY29udGVudDogc3RyaW5nIHwgQnVmZmVyIH1bXTtcbiAgICBkZXN0UGF0aDogc3RyaW5nO1xuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICB9KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGZpbGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGggPSBhd2FpdCBpbXBvcnQoXCJub2RlOnBhdGhcIik7XG4gICAgY29uc3QgbmF0aXZlRmlsZXMgPSBmaWxlcy5tYXAoKGZpbGUpID0+IHtcbiAgICAgIGNvbnN0IGZpbGVQYXRoID0gcGF0aC5wb3NpeC5qb2luKGRlc3RQYXRoLCBmaWxlLnBhdGgpO1xuICAgICAgY29uc3QgYWJzb2x1dGVQYXRoID0gcGF0aC5wb3NpeC5pc0Fic29sdXRlKGZpbGVQYXRoKVxuICAgICAgICA/IGZpbGVQYXRoXG4gICAgICAgIDogcGF0aC5wb3NpeC5qb2luKHRoaXMuY3dkLCBmaWxlUGF0aCk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXRoOiBhYnNvbHV0ZVBhdGgsXG4gICAgICAgIGNvbnRlbnQ6XG4gICAgICAgICAgdHlwZW9mIGZpbGUuY29udGVudCA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgPyBCdWZmZXIuZnJvbShmaWxlLmNvbnRlbnQpXG4gICAgICAgICAgICA6IGZpbGUuY29udGVudCxcbiAgICAgIH07XG4gICAgfSk7XG5cbiAgICBhd2FpdCB0aGlzLnNkay53cml0ZUZpbGVzKG5hdGl2ZUZpbGVzKTtcblxuICAgIGNvbnN0IHNoZWxsU2NyaXB0cyA9IG5hdGl2ZUZpbGVzLmZpbHRlcigoZikgPT4gZi5wYXRoLmVuZHNXaXRoKFwiLnNoXCIpKTtcbiAgICBpZiAoc2hlbGxTY3JpcHRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlYyh7XG4gICAgICAgIGNvbW1hbmQ6IFwiY2htb2RcIixcbiAgICAgICAgYXJnczogW1wiK3hcIiwgLi4uc2hlbGxTY3JpcHRzLm1hcCgoZikgPT4gZi5wYXRoKV0sXG4gICAgICB9KTtcbiAgICAgIGF3YWl0IHJlc3VsdC5yZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgLy8gYmlvbWUtaWdub3JlIGxpbnQvc3VzcGljaW91cy91c2VBd2FpdDogc3luY2hyb25vdXMgU0RLIGNhbGxcbiAgYXN5bmMgZ2V0RG9tYWluKHtcbiAgICBwb3J0LFxuICB9OiB7XG4gICAgcG9ydDogbnVtYmVyO1xuICAgIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICB9KTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5zZGsuZG9tYWluKHBvcnQpO1xuICB9XG5cbiAgYXN5bmMga2lsbCh7XG4gICAgY29tbWFuZElkLFxuICB9OiB7XG4gICAgY29tbWFuZElkOiBzdHJpbmc7XG4gICAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjbWQgPSBhd2FpdCB0aGlzLnNkay5nZXRDb21tYW5kKGNvbW1hbmRJZCk7XG4gICAgYXdhaXQgY21kLmtpbGwoKTtcbiAgfVxuXG4gIC8vIGJpb21lLWlnbm9yZSBsaW50L3N1c3BpY2lvdXMvdXNlQXdhaXQ6IHN5bmNocm9ub3VzIFNESyBnZXR0ZXJcbiAgYXN5bmMgZ2V0U3RhdHVzKCk6IFByb21pc2U8XG4gICAgXCJwZW5kaW5nXCIgfCBcInJ1bm5pbmdcIiB8IFwic3RvcHBpbmdcIiB8IFwic3RvcHBlZFwiIHwgXCJmYWlsZWRcIlxuICA+IHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnNkay5zdGF0dXM7XG4gICAgLy8gTWFwIFNESy1vbmx5IHN0YXR1c2VzIHRvIG91ciBpbnRlcmZhY2UncyB1bmlvblxuICAgIGlmIChzdGF0dXMgPT09IFwic25hcHNob3R0aW5nXCIpIHtcbiAgICAgIHJldHVybiBcInN0b3BwaW5nXCI7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09IFwiYWJvcnRlZFwiKSB7XG4gICAgICByZXR1cm4gXCJmYWlsZWRcIjtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXR1cztcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIFRoZSBWZXJjZWwgU0RLIGRvZXNuJ3QgaGF2ZSBhIHJlc3VtZSBtZXRob2QuXG4gICAgLy8gUnVuIGEgbm8tb3AgY29tbWFuZCB0byB2ZXJpZnkgdGhlIHNhbmRib3ggaXMgcmVhY2hhYmxlLlxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZXhlYyh7IGNvbW1hbmQ6IFwidHJ1ZVwiIH0pO1xuICAgIGF3YWl0IHJlc3VsdC5yZXN1bHQ7XG4gIH1cblxuICBhc3luYyBzdG9wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuc2RrLnN0b3AoKTtcbiAgfVxuXG4gIGFzeW5jIHNuYXBzaG90KCk6IFByb21pc2U8eyBzbmFwc2hvdElkOiBzdHJpbmcgfT4ge1xuICAgIGNvbnN0IHNuYXAgPSBhd2FpdCB0aGlzLnNkay5zbmFwc2hvdCgpO1xuICAgIHJldHVybiB7IHNuYXBzaG90SWQ6IHNuYXAuc25hcHNob3RJZCB9O1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlTmV0d29ya1BvbGljeSh7XG4gICAgcG9saWN5LFxuICB9OiB7XG4gICAgcG9saWN5OiBpbXBvcnQoXCJAdmVyY2VsL3NhbmRib3hcIikuTmV0d29ya1BvbGljeTtcbiAgICBzaWduYWw/OiBBYm9ydFNpZ25hbDtcbiAgfSk6IFByb21pc2U8aW1wb3J0KFwiQHZlcmNlbC9zYW5kYm94XCIpLk5ldHdvcmtQb2xpY3k+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZGsudXBkYXRlTmV0d29ya1BvbGljeShwb2xpY3kpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJjZWxTYW5kYm94KFxuICBkZWZhdWx0cz86IFBhcnRpYWw8aW1wb3J0KFwiLi4vYWRhcHRlclwiKS5TYW5kYm94U2V0dXBGaWVsZHM+ICYge1xuICAgIHJ1bj86IChzYW5kYm94OiBTYW5kYm94SW5zdGFuY2UpID0+IFByb21pc2U8dm9pZD47XG4gICAgY29uZmlnPzogVmVyY2VsQmluZGluZ0NvbmZpZztcbiAgfVxuKTogU2FuZGJveEJpbmRpbmc8XCJ2ZXJjZWxcIiwgVmVyY2VsQmluZGluZ0NvbmZpZywgVmVyY2VsQmluZGluZ01ldGFkYXRhPiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogXCJ2ZXJjZWxcIixcbiAgICBkZWZhdWx0cyxcbiAgICBhc3luYyBjcmVhdGUoeyBjd2Q6IGNyZWF0ZUN3ZCwgYWdlbnQsIHNldHVwLCByZWNvcmQsIHNpZ25hbDogX3NpZ25hbCwgbG9nIH0pIHtcbiAgICAgIGNvbnN0IHN0b3JhZ2UgPSBhZ2VudC5zdG9yYWdlO1xuICAgICAgY29uc3QgY29uZmlnID0gc2V0dXAuY29uZmlnID8/IHt9O1xuICAgICAgY29uc3QgY3dkID0gY29uZmlnLmN3ZCA/PyBjcmVhdGVDd2QgPz8gdW5kZWZpbmVkO1xuICAgICAgY29uc3QgcmVzb3VyY2VzID0gY29uZmlnLnJlc291cmNlcyA/PyB7IHZjcHVzOiBERUZBVUxUX1ZDUFVTIH07XG4gICAgICBjb25zdCBwb3J0cyA9IGNvbmZpZy5wb3J0cztcbiAgICAgIGNvbnN0IG5ldHdvcmtQb2xpY3kgPVxuICAgICAgICBjb25maWcubmV0d29ya1BvbGljeSA/PyBzZXR1cC5uZXR3b3JrUG9saWN5ID8/IHVuZGVmaW5lZDtcblxuICAgICAgY29uc3Qgc2FuZGJveE9wdHM6IENyZWF0ZVNhbmRib3hPcHRzID0ge1xuICAgICAgICByZXNvdXJjZXMsXG4gICAgICAgIHBvcnRzLFxuICAgICAgICBuZXR3b3JrUG9saWN5LFxuICAgICAgICBzbmFwc2hvdElkOiBjb25maWcuc25hcHNob3RJZCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IF9zdGFydExpZmVjeWNsZSA9ICh2ZXJjZWxTYW5kYm94SWQ6IHN0cmluZykgPT4ge1xuICAgICAgICBpZiAoIXJlY29yZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzdGFydFdvcmtmbG93KHNhbmRib3hMaWZlY3ljbGVXb3JrZmxvdywgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlucHV0OiB7XG4gICAgICAgICAgICAgIGFnZW50LFxuICAgICAgICAgICAgICBzYW5kYm94SWQ6IHJlY29yZC5pZCxcbiAgICAgICAgICAgICAgdmVyY2VsU2FuZGJveElkLFxuICAgICAgICAgICAgICBjb25maWc6IGNvbmZpZy5saWZlY3ljbGUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgbG9nLmVycm9yKFwiZmFpbGVkIHRvIHN0YXJ0IGxpZmVjeWNsZSB3b3JrZmxvd1wiLCB7IGNhdXNlOiBlIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChzZXR1cC52ZXJzaW9uKSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgc3RvcmFnZS5zZXR1cC5nZXQoc2V0dXAudmVyc2lvbik7XG4gICAgICAgIGlmIChleGlzdGluZz8uc25hcHNob3RJZCkge1xuICAgICAgICAgIGNvbnN0IHNkayA9IGF3YWl0IGNyZWF0ZVNkayh7XG4gICAgICAgICAgICAuLi5zYW5kYm94T3B0cyxcbiAgICAgICAgICAgIHNuYXBzaG90SWQ6IGV4aXN0aW5nLnNuYXBzaG90SWQsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29uc3QgaW5zdGFuY2UgPSBuZXcgVmVyY2VsU2FuZGJveEluc3RhbmNlKHNkaywgY3dkKTtcblxuICAgICAgICAgIHN0b3JhZ2Uuc2V0dXBcbiAgICAgICAgICAgIC5zZXQoc2V0dXAudmVyc2lvbiwge1xuICAgICAgICAgICAgICAuLi5leGlzdGluZyxcbiAgICAgICAgICAgICAgdmVyc2lvbjogc2V0dXAudmVyc2lvbixcbiAgICAgICAgICAgICAgbGFzdFVzZWRBdDogRGF0ZS5ub3coKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goKCkgPT4gdW5kZWZpbmVkKTtcblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7IHNhbmRib3hJZDogc2RrLnNhbmRib3hJZCB9LFxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNldHVwLnJ1bikge1xuICAgICAgICBpZiAoIXNldHVwLnZlcnNpb24pIHtcbiAgICAgICAgICBsb2cuZXJyb3IoXCJzZXR1cC5ydW4gcHJvdmlkZWQgd2l0aG91dCBzZXR1cC52ZXJzaW9uXCIsIHsgc2V0dXAgfSk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic2V0dXAucnVuIHByb3ZpZGVkIHdpdGhvdXQgc2V0dXAudmVyc2lvblwiKTtcbiAgICAgICAgfVxuICAgICAgICBjcmVhdGVTZXR1cFNuYXBzaG90KHtcbiAgICAgICAgICBzYW5kYm94T3B0cyxcbiAgICAgICAgICBydW46IHNldHVwLnJ1bixcbiAgICAgICAgICBzdG9yYWdlLFxuICAgICAgICAgIHNuYXBzaG90VmVyc2lvbjogc2V0dXAudmVyc2lvbixcbiAgICAgICAgICBsb2csXG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIGxvZy5lcnJvcihcImJhY2tncm91bmQgc2V0dXAgc25hcHNob3QgZmFpbGVkXCIsIHsgY2F1c2U6IGVycm9yIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBzZGsgPSBhd2FpdCBjcmVhdGVTZGsoc2FuZGJveE9wdHMpO1xuICAgICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBWZXJjZWxTYW5kYm94SW5zdGFuY2Uoc2RrLCBjd2QpO1xuICAgICAgICBhd2FpdCBzZXR1cC5ydW4oaW5zdGFuY2UpO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaW5zdGFuY2UsXG4gICAgICAgICAgbWV0YWRhdGE6IHsgc2FuZGJveElkOiBzZGsuc2FuZGJveElkIH0sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNkayA9IGF3YWl0IGNyZWF0ZVNkayhzYW5kYm94T3B0cyk7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IG5ldyBWZXJjZWxTYW5kYm94SW5zdGFuY2Uoc2RrLCBjd2QpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpbnN0YW5jZSxcbiAgICAgICAgbWV0YWRhdGE6IHsgc2FuZGJveElkOiBzZGsuc2FuZGJveElkIH0sXG4gICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyBjb25uZWN0KHsgbWV0YWRhdGEsIGN3ZCB9KSB7XG4gICAgICBjb25zdCBTYW5kYm94U0RLID0gYXdhaXQgbG9hZFNhbmRib3hTREsoKTtcbiAgICAgIGNvbnN0IHNkayA9IGF3YWl0IFNhbmRib3hTREsuZ2V0KHtcbiAgICAgICAgc2FuZGJveElkOiBtZXRhZGF0YS5zYW5kYm94SWQsXG4gICAgICAgIC4uLmdldFRlc3RDcmVkZW50aWFscygpLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gbmV3IFZlcmNlbFNhbmRib3hJbnN0YW5jZShzZGssIGN3ZCA/PyB1bmRlZmluZWQpO1xuICAgIH0sXG4gIH07XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7OztBQUFBLFNBQVMsU0FBUyxxQkFBcUI7QUFPdkMsZUFBZSxpQkFBaUI7QUFDOUIsVUFBUSxNQUFNLE9BQU8saUJBQWlCLEdBQUc7QUFDM0M7QUFFQSxJQUFNLGlCQUFpQixJQUFJLEtBQUssS0FBSztBQUNyQyxJQUFNLFdBQVc7QUFDakIsSUFBTSxnQkFBZ0I7QUFzQnRCLFNBQVMsbUJBQW1CLEdBQXFCO0FBQy9DLE1BQUksRUFBRSxhQUFhLFFBQVE7QUFDekIsV0FBTztBQUFBLEVBQ1Q7QUFFQSxRQUFNLFNBQ0gsRUFBeUMsVUFBVSxVQUNuRCxFQUFxRCxPQUFPLFVBQ3pEO0FBRU4sTUFBSSxXQUFXLE9BQU8sV0FBVyxLQUFLO0FBQ3BDLFdBQU87QUFBQSxFQUNUO0FBRUEsUUFBTSxNQUFNLEVBQUUsV0FBVyxPQUFPLENBQUM7QUFDakMsU0FDRSxJQUFJLFNBQVMsbUNBQW1DLEtBQ2hELElBQUksU0FBUywyQkFBMkI7QUFFNUM7QUFFQSxJQUFNLHFCQUFxQixNQUN6QixRQUFRLElBQUksYUFBYSxTQUNyQjtBQUFBLEVBQ0UsT0FBTyxRQUFRLElBQUk7QUFBQSxFQUNuQixRQUFR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
@@ -0,0 +1,38 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
8
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
9
+ }) : x)(function(x) {
10
+ if (typeof require !== "undefined") return require.apply(this, arguments);
11
+ throw Error('Dynamic require of "' + x + '" is not supported');
12
+ });
13
+ var __commonJS = (cb, mod) => function __require2() {
14
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
30
+ mod
31
+ ));
32
+
33
+ export {
34
+ __require,
35
+ __commonJS,
36
+ __toESM
37
+ };
38
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
@@ -0,0 +1,9 @@
1
+ // src/rpc/base-path.ts
2
+ function basePathForAgent(agent) {
3
+ return `/api/agents/${agent}`;
4
+ }
5
+
6
+ export {
7
+ basePathForAgent
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3JwYy9iYXNlLXBhdGgudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB0eXBlIEJhc2VQYXRoID0gYC9hcGkvYWdlbnRzL1thZ2VudF1gO1xuZXhwb3J0IHR5cGUgU2Vzc2lvblBhdGggPSBgJHtCYXNlUGF0aCB8IChzdHJpbmcgJiB7fSl9L1tzZXNzaW9uSWRdYDtcbmV4cG9ydCB0eXBlIFJlY29ubmVjdFBhdGggPSBgJHtTZXNzaW9uUGF0aCB8IChzdHJpbmcgJiB7fSl9L3JlY29ubmVjdGA7XG5leHBvcnQgdHlwZSBJbnRlcnJ1cHRQYXRoID0gYCR7U2Vzc2lvblBhdGggfCAoc3RyaW5nICYge30pfS9pbnRlcnJ1cHRgO1xuXG5leHBvcnQgdHlwZSBQYXRoID0gU2Vzc2lvblBhdGggfCBSZWNvbm5lY3RQYXRoIHwgSW50ZXJydXB0UGF0aDtcblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2VQYXRoRm9yQWdlbnQoYWdlbnQ6IHN0cmluZykge1xuICByZXR1cm4gYC9hcGkvYWdlbnRzLyR7YWdlbnR9YCBhcyBjb25zdDtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7QUFPTyxTQUFTLGlCQUFpQixPQUFlO0FBQzlDLFNBQU8sZUFBZSxLQUFLO0FBQzdCOyIsCiAgIm5hbWVzIjogW10KfQo=