sliftutils 1.7.83 → 1.7.85

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 (58) hide show
  1. package/dist/treeSummary.ts.cache +2 -2
  2. package/index.d.ts +5 -2
  3. package/misc/dist/environment.ts.cache +2 -2
  4. package/misc/dist/getSecret.ts.cache +2 -2
  5. package/misc/dist/strings.ts.cache +2 -2
  6. package/misc/dist/zip.ts.cache +2 -2
  7. package/misc/https/dist/certs.ts.cache +2 -2
  8. package/misc/https/dist/persistentLocalStorage.ts.cache +2 -2
  9. package/package.json +2 -2
  10. package/storage/BulkDatabase2/dist/BulkDatabaseBase.ts.cache +2 -2
  11. package/storage/BulkDatabase2/dist/BulkDatabaseFormat.ts.cache +2 -2
  12. package/storage/BulkDatabase2/dist/BulkDatabaseMerge.ts.cache +2 -2
  13. package/storage/BulkDatabase2/dist/BulkDatabaseReader.ts.cache +2 -2
  14. package/storage/BulkDatabase2/dist/LoadedIndex.ts.cache +2 -2
  15. package/storage/BulkDatabase2/dist/WriteOverlay.ts.cache +2 -2
  16. package/storage/BulkDatabase2/dist/blockCache.ts.cache +2 -2
  17. package/storage/BulkDatabase2/dist/mergeLock.ts.cache +2 -2
  18. package/storage/BulkDatabase2/dist/mergeMarkers.ts.cache +2 -2
  19. package/storage/BulkDatabase2/dist/streamLog.ts.cache +2 -2
  20. package/storage/BulkDatabase2/dist/syncClient.ts.cache +2 -2
  21. package/storage/IArchives.d.ts +1 -0
  22. package/storage/IArchives.ts +2 -0
  23. package/storage/dist/ArchivesDisk.ts.cache +2 -2
  24. package/storage/dist/FileFolderAPI.tsx.cache +2 -2
  25. package/storage/dist/IArchives.ts.cache +3 -3
  26. package/storage/dist/IndexedDBFileFolderAPI.ts.cache +2 -2
  27. package/storage/dist/JSONStorage.ts.cache +2 -2
  28. package/storage/dist/PendingManager.tsx.cache +2 -2
  29. package/storage/dist/TransactionStorage.ts.cache +2 -2
  30. package/storage/dist/backblaze.ts.cache +2 -2
  31. package/storage/dist/fileSystemPointer.ts.cache +2 -2
  32. package/storage/dist/remoteFileStorage.ts.cache +2 -2
  33. package/storage/remoteStorage/accessStats.d.ts +1 -1
  34. package/storage/remoteStorage/accessStats.ts +5 -8
  35. package/storage/remoteStorage/blobStore.d.ts +3 -1
  36. package/storage/remoteStorage/blobStore.ts +52 -21
  37. package/storage/remoteStorage/createArchives.ts +19 -9
  38. package/storage/remoteStorage/dist/ArchivesRemote.ts.cache +2 -2
  39. package/storage/remoteStorage/dist/ArchivesUrl.ts.cache +2 -2
  40. package/storage/remoteStorage/dist/accessStats.ts.cache +8 -12
  41. package/storage/remoteStorage/dist/blobStore.ts.cache +49 -24
  42. package/storage/remoteStorage/dist/bucketDisk.ts.cache +2 -2
  43. package/storage/remoteStorage/dist/cliArgs.ts.cache +2 -2
  44. package/storage/remoteStorage/dist/createArchives.ts.cache +20 -11
  45. package/storage/remoteStorage/dist/deployTakeover.ts.cache +2 -2
  46. package/storage/remoteStorage/dist/intermediateSources.ts.cache +2 -2
  47. package/storage/remoteStorage/dist/remoteConfig.ts.cache +2 -2
  48. package/storage/remoteStorage/dist/serverConfig.ts.cache +2 -2
  49. package/storage/remoteStorage/dist/sourceWrapper.ts.cache +5 -4
  50. package/storage/remoteStorage/dist/sourcesList.ts.cache +2 -2
  51. package/storage/remoteStorage/dist/storageClientController.ts.cache +2 -2
  52. package/storage/remoteStorage/dist/storageController.ts.cache +2 -2
  53. package/storage/remoteStorage/dist/storageServerState.ts.cache +5 -3
  54. package/storage/remoteStorage/dist/storePlan.ts.cache +2 -2
  55. package/storage/remoteStorage/dist/validation.ts.cache +2 -2
  56. package/storage/remoteStorage/sourceWrapper.ts +2 -1
  57. package/storage/remoteStorage/storageServerState.ts +2 -0
  58. package/yarn.lock +4 -4
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
4
4
  };
@@ -138,4 +138,4 @@ function getMainPortAcquireDelay() {
138
138
  }
139
139
  exports.getMainPortAcquireDelay = getMainPortAcquireDelay;
140
140
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95VGFrZW92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3lUYWtlb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLDZEQUFvRTtBQUVwRSxNQUFNLDhCQUE4QixHQUFHLDBCQUEwQixDQUFDO0FBQ2xFLE1BQU0seUJBQXlCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMzQyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDeEMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3RDLE1BQU0sZUFBZSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ3ZDLHFNQUFxTTtBQUNyTSxNQUFNLDJCQUEyQixHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ2xELE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUNyQyxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQztBQUNoQyxNQUFNLG1CQUFtQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFjdEMsSUFBSSxRQUFvQyxDQUFDO0FBRXpDLFNBQVMsR0FBRyxDQUFDLElBQVk7SUFDckIsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxTQUFTO0lBQ2QsT0FBTyxRQUFRLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxpQkFBaUI7SUFDdEIsT0FBTyxjQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ25FLENBQUM7QUFFRCxLQUFLLFVBQVUsbUJBQW1COztJQUM5QixJ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LENBQUM7QUFIRCxrREFHQztBQUVELGlLQUFpSztBQUNqSyxTQUFnQix1QkFBdUI7SUFDbkMsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLGtCQUFrQixDQUFDO0lBQ3pDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLFdBQVcsRUFBRSxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFDcEQsT0FBTyxrQkFBa0IsQ0FBQztJQUM5QixDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQztBQUM5QixDQUFDO0FBTkQsMERBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgc3RhcnRJbnRlcm1lZGlhdGVNYWludGVuYW5jZSB9IGZyb20gXCIuL3N0b3JhZ2VTZXJ2ZXJTdGF0ZVwiO1xuXG5jb25zdCBQQVJBTUVURVJTX1RJTUVMSU5FX0ZJTEVfUkVHRVggPSAvXihcXGQrKS1wYXJhbWV0ZXJzXFwuanNvbiQvO1xuY29uc3QgREVQTE9ZX0RFVEVDVF9SRVRSWV9ERUxBWSA9IDUgKiAxMDAwO1xuY29uc3QgREVQTE9ZX0RFVEVDVF9USU1FT1VUID0gMzAgKiAxMDAwO1xuY29uc3QgRVhJVF9MT0dfRkxVU0hfREVMQVkgPSA1ICogMTAwMDtcbmNvbnN0IEFMVF9QT1JUX0xJTkdFUiA9IDMwICogNjAgKiAxMDAwO1xuLy8gVGhlIGVuZCB0aW1lIG5lZWRzIHRvIGJlIGVub3VnaCBhZnRlciB0aGUga2lsbCB0aW1lIHRoYXQgd2UgYXJlIGNlcnRhaW4gd2Ugd2lsbCBoYXZlIHRoZSBtYWluIHBvcnQgYnkgdGhlbi4gU2NhbGVkIHVwIHdpdGggdGhlIG92ZXJsYXAsIHNvIHVudXN1YWxseSBsb25nIG92ZXJsYXBzIGdldCBhbiBlcXVhbGx5IGdlbmVyb3VzIGJ1ZmZlci5cbmNvbnN0IElOVEVSTUVESUFURV9FTkRfTUlOX0JVRkZFUiA9IDUgKiA2MCAqIDEwMDA7XG5jb25zdCBBQ1FVSVJFX1NMT1dfREVMQVkgPSAzMCAqIDEwMDA7XG5jb25zdCBBQ1FVSVJFX0ZBU1RfREVMQVkgPSAxMDAwO1xuY29uc3QgQUNRVUlSRV9GQVNUX1dJTkRPVyA9IDYwICogMTAwMDtcblxudHlwZSBUaW1lbGluZUVudHJ5ID0ge1xuICAgIHBhcmFtZXRlcnM6IHsgcmVsZWFzZVRpbWU/OiBudW1iZXI7IG92ZXJsYXBUaW1lPzogbnVtYmVyIH07XG59O1xuXG50eXBlIERlcGxveVRha2VvdmVyID0ge1xuICAgIHJlbGVhc2VUaW1lOiBudW1iZXI7XG4gICAgb3ZlcmxhcFRpbWU6IG51bWJlcjtcbiAgICBhbHRQb3J0PzogbnVtYmVyO1xuICAgIC8vIEZyb3plbiB3aGVuIHRoZSBhbHQgcG9ydCBpcyB0YWtlbiAoYSBtb3Zpbmcgc3RhcnQgd291bGQgbWFrZSBldmVyeSBtYWludGVuYW5jZSBwYXNzIHdyaXRlIGEgbmV3IGNvbmZpZylcbiAgICBpbnRlcm1lZGlhdGVTdGFydD86IG51bWJlcjtcbn07XG5cbmxldCB0YWtlb3ZlcjogRGVwbG95VGFrZW92ZXIgfCB1bmRlZmluZWQ7XG5cbmZ1bmN0aW9uIGlzbyh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgRGF0ZSh0aW1lKS50b0lTT1N0cmluZygpO1xufVxuXG5mdW5jdGlvbiBsb2dQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFtwaWQgJHtwcm9jZXNzLnBpZH1dYDtcbn1cblxuZnVuY3Rpb24gZ2V0VGltZWxpbmVGb2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5kaXJuYW1lKHByb2Nlc3MuY3dkKCkpLnJlcGxhY2VBbGwoXCJcXFxcXCIsIFwiL1wiKSArIFwiL1wiO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZWFkVGltZWxpbmVFbnRyaWVzKCk6IFByb21pc2U8VGltZWxpbmVFbnRyeVtdPiB7XG4gICAgbGV0IGZvbGRlciA9IGdldFRpbWVsaW5lRm9sZGVyKCk7XG4gICAgbGV0IGZpbGVzOiBzdHJpbmdbXTtcbiAgICB0cnkge1xuICAgICAgICBmaWxlcyA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRkaXIoZm9sZGVyKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgJHtsb2dQcmVmaXgoKX0gQ291bGQgbm90IHJlYWQgdGhlIGRlcGxveSB0aW1lbGluZSBmb2xkZXIgJHtmb2xkZXJ9OiAkeyhlIGFzIEVycm9yKS5zdGFjayA/PyBlfWApO1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGxldCBlbnRyaWVzOiBUaW1lbGluZUVudHJ5W10gPSBbXTtcbiAgICBmb3IgKGxldCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGlmICghUEFSQU1FVEVSU19USU1FTElORV9GSUxFX1JFR0VYLnRlc3QoZmlsZSkpIGNvbnRpbnVlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZW50cmllcy5wdXNoKEpTT04ucGFyc2UoYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUoZm9sZGVyICsgZmlsZSwgXCJ1dGY4XCIpKSBhcyBUaW1lbGluZUVudHJ5KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAke2xvZ1ByZWZpeCgpfSBDb3VsZCBub3QgcmVhZCBkZXBsb3kgdGltZWxpbmUgZmlsZSAke2ZvbGRlciArIGZpbGV9OiAkeyhlIGFzIEVycm9yKS5zdGFjayA/PyBlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbnRyaWVzO1xufVxuXG4vLyBUaGUgbmV3ZXN0IHJlbGVhc2UgaW4gdGhlIHRpbWVsaW5lIGlzIHRoZSBvbmUgd2UgYXJlIHBhcnQgb2YgLSB0aGUgdGltZWxpbmUgaXMgYXBwZW5kLW9ubHkgaGlzdG9yeSwgc28gd2hhdGV2ZXIgcHJvY2VzcyBzdGFydHMgdXAgZHVyaW5nIGEgdGFrZW92ZXIgYmVsb25ncyB0byBpdHMgbGF0ZXN0IGVudHJ5XG5mdW5jdGlvbiBmaW5kT3VyUmVsZWFzZShlbnRyaWVzOiBUaW1lbGluZUVudHJ5W10pOiBEZXBsb3lUYWtlb3ZlciB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGJlc3Q6IERlcGxveVRha2VvdmVyIHwgdW5kZWZpbmVkO1xuICAgIGZvciAobGV0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgbGV0IHJlbGVhc2VUaW1lID0gZW50cnkucGFyYW1ldGVycy5yZWxlYXNlVGltZTtcbiAgICAgICAgaWYgKHJlbGVhc2VUaW1lID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xuICAgICAgICBsZXQgb3ZlcmxhcFRpbWUgPSBlbnRyeS5wYXJhbWV0ZXJzLm92ZXJsYXBUaW1lIHx8IDA7XG4gICAgICAgIGlmIChiZXN0ICYmIGJlc3QucmVsZWFzZVRpbWUgPj0gcmVsZWFzZVRpbWUpIGNvbnRpbnVlO1xuICAgICAgICBiZXN0ID0geyByZWxlYXNlVGltZSwgb3ZlcmxhcFRpbWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIGJlc3Q7XG59XG5cbi8qKiBDYWxsZWQgd2hlbiB0aGUgbWFpbiBwb3J0IGlzIGFscmVhZHkgaW4gdXNlLCB3aGljaCBvbiBhIGhlYWx0aHkgbWFjaGluZSBvbmx5IGhhcHBlbnMgd2hpbGUgb3VyIHByZWRlY2Vzc29yIGlzIHN0aWxsIHJ1bm5pbmcgYSBkZXBsb3kgb3ZlcmxhcC4gQ29uZmlybXMgdGhhdCBhZ2FpbnN0IHRoZSBkZXBsb3kgdGltZWxpbmU7IGlmIG5vIGRlcGxveSBpcyBpbiBwcm9ncmVzcyB3ZSBhcmUgaW4gYSBiYWQgc3RhdGUgKHNvbWVvbmUgZWxzZSBob2xkcyBvdXIgcG9ydCkgYW5kIHRoZSBwcm9jZXNzIG11c3Qgbm90IGtlZXAgcnVubmluZy4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXRlY3REZXBsb3lUYWtlb3ZlcigpOiBQcm9taXNlPERlcGxveVRha2VvdmVyPiB7XG4gICAgY29uc29sZS53YXJuKGAke2xvZ1ByZWZpeCgpfSBPdXIgbWFpbiBwb3J0IGlzIGluIHVzZSwgd2hpY2ggc2hvdWxkIG9ubHkgaGFwcGVuIHdoaWxlIGEgZGVwbG95IG92ZXJsYXAgaXMgcnVubmluZyAtIGNoZWNraW5nIHRoZSBkZXBsb3kgdGltZWxpbmUgaW4gJHtnZXRUaW1lbGluZUZvbGRlcigpfSBmb3IgdGhlIHJlbGVhc2Ugd2UgYXJlIHBhcnQgb2ZgKTtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIGxldCBhdHRlbXB0ID0gMDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBhdHRlbXB0Kys7XG4gICAgICAgIGxldCBlbnRyaWVzID0gYXdhaXQgcmVhZFRpbWVsaW5lRW50cmllcygpO1xuICAgICAgICBsZXQgZm91bmQgPSBmaW5kT3VyUmVsZWFzZShlbnRyaWVzKTtcbiAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICB0YWtlb3ZlciA9IGZvdW5kO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAke2xvZ1ByZWZpeCgpfSBEZXBsb3kgdGFrZW92ZXIgY29uZmlybWVkIG9uIGF0dGVtcHQgJHthdHRlbXB0fTogcmVsZWFzZSBhdCAke2lzbyhmb3VuZC5yZWxlYXNlVGltZSl9LCBvdmVybGFwICR7Zm91bmQub3ZlcmxhcFRpbWV9bXMsIHNvIG91ciBwcmVkZWNlc3NvciBob2xkcyB0aGUgbWFpbiBwb3J0IHVudGlsICR7aXNvKGZvdW5kLnJlbGVhc2VUaW1lICsgZm91bmQub3ZlcmxhcFRpbWUpfS4gV2UgYXJlIHRoZSBzdWNjZXNzb3IuYCk7XG4gICAgICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGVsYXBzZWQgPSBEYXRlLm5vdygpIC0gc3RhcnQ7XG4gICAgICAgIGlmIChlbGFwc2VkID49IERFUExPWV9ERVRFQ1RfVElNRU9VVCkge1xuICAgICAgICAgICAgLy8gTm90IGEgZGVwbG95LCBzbyBzb21ldGhpbmcgZWxzZSBob2xkcyBvdXIgcG9ydCBhbmQgbm90aGluZyB3ZSBkbyBmcm9tIGhlcmUgaXMgY29ycmVjdC4gRXhpdCwgZ2l2aW5nIHRoZSBsb2cgdGltZSB0byByZWFjaCB0aGUgZGlzayBmaXJzdCAtIHRoZSBtZXNzYWdlIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgZXhwbGFpbnMgdGhlIGV4aXQuXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGAke2xvZ1ByZWZpeCgpfSBPdXIgbWFpbiBwb3J0IGlzIGluIHVzZSwgYnV0IHRoZSBkZXBsb3kgdGltZWxpbmUgaW4gJHtnZXRUaW1lbGluZUZvbGRlcigpfSBzaG93ZWQgbm8gcmVsZWFzZSBpbiBwcm9ncmVzcyBhY3Jvc3MgJHthdHRlbXB0fSBjaGVja3Mgb3ZlciAke2VsYXBzZWR9bXMuIFNvbWV0aGluZyBlbHNlIGlzIGhvbGRpbmcgb3VyIHBvcnQsIHNvIHRoaXMgcHJvY2VzcyBpcyBpbiBhIGJhZCBzdGF0ZS4gRXhpdGluZyBpbiAke0VYSVRfTE9HX0ZMVVNIX0RFTEFZfW1zLmApO1xuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIEVYSVRfTE9HX0ZMVVNIX0RFTEFZKSk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS53YXJuKGAke2xvZ1ByZWZpeCgpfSBObyByZWxlYXNlIGluIHByb2dyZXNzIGluIHRoZSBkZXBsb3kgdGltZWxpbmUgeWV0IChhdHRlbXB0ICR7YXR0ZW1wdH0sICR7ZWxhcHNlZH1tcyBvZiAke0RFUExPWV9ERVRFQ1RfVElNRU9VVH1tcyk7IHJldHJ5aW5nIGluICR7REVQTE9ZX0RFVEVDVF9SRVRSWV9ERUxBWX1tc2ApO1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgREVQTE9ZX0RFVEVDVF9SRVRSWV9ERUxBWSkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEFsdFBvcnQocG9ydDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0YWtlb3Zlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFuIGFsdGVybmF0ZSBwb3J0ICgke3BvcnR9KSB3YXMgdGFrZW4gd2l0aG91dCBhIGRldGVjdGVkIGRlcGxveSB0YWtlb3ZlciAtIGRldGVjdERlcGxveVRha2VvdmVyIG11c3QgcnVuIGZpcnN0YCk7XG4gICAgfVxuICAgIHRha2VvdmVyLmFsdFBvcnQgPSBwb3J0O1xuICAgIC8vIE5lZWRzIHRvIGJlIGVub3VnaCBhZnRlciBvdXIgc3RhcnR1cCB0aW1lIHRoYXQgdGhlIHByZXZpb3VzIG5vZGUgaGFzIHRpbWUgdG8gc2VlIGl0J3MgZ29pbmcgdG8gYmUgc2h1dCBkb3duIGFuZCBmbHVzaCAoYW5kIHNvIHdlIGhhdmUgdGltZSB0byBzdGFydCB1cCksIGFuZCBlbm91Z2ggYmVmb3JlIHRoZSBraWxsIHRpbWUgdGhhdCBub2RlcyBoYXZlIHRpbWUgdG8gbm90aWNlIHdlIGV4aXN0IGFuZCBwcmVwYXJlIHRvIGNvbm5lY3QgdG8gdXMgLSBoYWxmd2F5IGJldHdlZW4gbm93IGFuZCB0aGUga2lsbCB0aW1lIHNhdGlzZmllcyBib3RoXG4gICAgdGFrZW92ZXIuaW50ZXJtZWRpYXRlU3RhcnQgPSBNYXRoLnJvdW5kKChEYXRlLm5vdygpICsgZ2V0S2lsbFRpbWUoKSkgLyAyKTtcbiAgICBjb25zb2xlLndhcm4oYCR7bG9nUHJlZml4KCl9IExpc3RlbmluZyBvbiBhbHRlcm5hdGUgcG9ydCAke3BvcnR9OiB3cml0ZXMgcm91dGUgaGVyZSBmcm9tICR7aXNvKHRha2VvdmVyLmludGVybWVkaWF0ZVN0YXJ0KX0gdW50aWwgJHtpc28oZ2V0SW50ZXJtZWRpYXRlRW5kKCkpfSwgYW5kIHdlIGtlZXAgbGlzdGVuaW5nIHVudGlsICR7aXNvKGdldEFsdFBvcnRMaXN0ZW5FbmQoKSl9YCk7XG4gICAgc3RhcnRJbnRlcm1lZGlhdGVNYWludGVuYW5jZSgpO1xufVxuXG4vKiogVGhlIHdpbmRvdyBpbiB3aGljaCB3cml0ZXMgYmVsb25nIHRvIG91ciBhbHRlcm5hdGUgcG9ydDogZnJvbSBwYXJ0d2F5IHRocm91Z2ggdGhlIG92ZXJsYXAgKGdpdmluZyB0aGUgcHJlZGVjZXNzb3Igbm90aWNlIHRvIGZsdXNoKSB1bnRpbCBzYWZlbHkgcGFzdCBpdHMga2lsbCAoZ2l2aW5nIHVzIHRpbWUgdG8gYWN0dWFsbHkgdGFrZSB0aGUgbWFpbiBwb3J0KS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWtlb3ZlckludGVybWVkaWF0ZSgpOiB7IHN0YXJ0OiBudW1iZXI7IGVuZDogbnVtYmVyOyBhbHRQb3J0OiBudW1iZXIgfSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0YWtlb3Zlcj8uYWx0UG9ydCB8fCB0YWtlb3Zlci5pbnRlcm1lZGlhdGVTdGFydCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7IHN0YXJ0OiB0YWtlb3Zlci5pbnRlcm1lZGlhdGVTdGFydCwgZW5kOiBnZXRJbnRlcm1lZGlhdGVFbmQoKSwgYWx0UG9ydDogdGFrZW92ZXIuYWx0UG9ydCB9O1xufVxuXG4vKiogV2hlbiBvdXIgcHJlZGVjZXNzb3IgaXMga2lsbGVkIGFuZCB0aGUgbWFpbiBwb3J0IGZyZWVzLiBQb3J0IGFjcXVpc2l0aW9uIHBvbGxzIGFnYWluc3QgdGhpcyBvbiBpdHMgb3duIC0gaXQgaXMgZW50aXJlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIGludGVybWVkaWF0ZSB3aW5kb3cuICovXG5mdW5jdGlvbiBnZXRLaWxsVGltZSgpOiBudW1iZXIge1xuICAgIGlmICghdGFrZW92ZXIpIHJldHVybiAwO1xuICAgIHJldHVybiB0YWtlb3Zlci5yZWxlYXNlVGltZSArIHRha2VvdmVyLm92ZXJsYXBUaW1lO1xufVxuXG5mdW5jdGlvbiBnZXRJbnRlcm1lZGlhdGVFbmQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRha2VvdmVyKSByZXR1cm4gMDtcbiAgICByZXR1cm4gZ2V0S2lsbFRpbWUoKSArIE1hdGgubWF4KElOVEVSTUVESUFURV9FTkRfTUlOX0JVRkZFUiwgdGFrZW92ZXIub3ZlcmxhcFRpbWUpO1xufVxuXG4vKiogV2UgbmV2ZXIgc3RvcCBsaXN0ZW5pbmcgb24gdGhlIGFsdGVybmF0ZSBwb3J0IHdoaWxlIGl0cyB3aW5kb3cgaXMgc3RpbGwgdmFsaWQsIGFuZCBob2xkIGl0IHdlbGwgcGFzdCB0aGF0IGZvciBjbGllbnRzIHRoYXQgaGF2ZSBub3QgY2F1Z2h0IHVwIHlldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbHRQb3J0TGlzdGVuRW5kKCk6IG51bWJlciB7XG4gICAgaWYgKCF0YWtlb3ZlcikgcmV0dXJuIDA7XG4gICAgcmV0dXJuIE1hdGgubWF4KHRha2VvdmVyLnJlbGVhc2VUaW1lICsgdGFrZW92ZXIub3ZlcmxhcFRpbWUgKiAyLCBnZXRJbnRlcm1lZGlhdGVFbmQoKSArIEFMVF9QT1JUX0xJTkdFUik7XG59XG5cbi8qKiBIb3cgbG9uZyB0byB3YWl0IGJldHdlZW4gbWFpbi1wb3J0IGFjcXVpc2l0aW9uIGF0dGVtcHRzOiB0aWdodCBhcm91bmQgb3VyIHByZWRlY2Vzc29yJ3Mgc2NoZWR1bGVkIGRlYXRoICh3aGVuIHRoZSBwb3J0IGFjdHVhbGx5IGZyZWVzKSwgcmVsYXhlZCBvdGhlcndpc2UuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFpblBvcnRBY3F1aXJlRGVsYXkoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRha2VvdmVyKSByZXR1cm4gQUNRVUlSRV9TTE9XX0RFTEFZO1xuICAgIGlmIChEYXRlLm5vdygpID49IGdldEtpbGxUaW1lKCkgLSBBQ1FVSVJFX0ZBU1RfV0lORE9XKSB7XG4gICAgICAgIHJldHVybiBBQ1FVSVJFX0ZBU1RfREVMQVk7XG4gICAgfVxuICAgIHJldHVybiBBQ1FVSVJFX1NMT1dfREVMQVk7XG59XG4iXX0=
141
- /* _JS_SOURCE_HASH = "e8c08c5bdc2f5a9e489d44d023da80a41bd9fe6a25a646c85e8e822e799d4a32"; */
141
+ /* _JS_SOURCE_HASH = "1f48da864ce085e6b2d365707149fce81cc2ae3f1f7d392ea43fe574ca19a75d"; */
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
3
3
  //exports.findSplitUrl = exports.expireIntermediateSources = exports.injectIntermediateSource = exports.resolveIntermediateSources = exports.hasIntermediateSources = exports.getIntermediateSources = exports.nextIntermediateVersion = exports.INTERMEDIATE_EXPIRE_GRACE = void 0;
4
4
  exports.INTERMEDIATE_EXPIRE_GRACE = 15 * 60 * 1000;
@@ -116,4 +116,4 @@ function findSplitUrl(config, intermediate) {
116
116
  }
117
117
  exports.findSplitUrl = findSplitUrl;
118
118
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJtZWRpYXRlU291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVybWVkaWF0ZVNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSx5QkFBeUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUN4RCxNQUFNLDZCQUE2QixHQUFHLE9BQVMsQ0FBQztBQUVoRCwyUkFBMlI7QUFDM1IsU0FBZ0IsdUJBQXVCLENBQUMsT0FBZTtJQUNuRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLDZCQUE2QixDQUFDO0lBQzdELElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxHQUFHLENBQUMsR0FBRyw2QkFBNkIsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQzFCLENBQUM7QUFORCwwREFNQztBQUVELFNBQVMsY0FBYyxDQUFDLE1BQXdCO0lBQzVDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUF3QjtJQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzNDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3RGLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxNQUFvQjtJQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENB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SUFBSSxJQUFJLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQ2hELGVBQWUsRUFBRSxJQUFJLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDMUIsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQzNCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBZkQsOERBZUM7QUFFRCx3RkFBd0Y7QUFDeEYsU0FBZ0IsWUFBWSxDQUFDLE1BQW9CLEVBQUUsWUFBMEI7SUFDekUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQzVDLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQTZCLENBQUM7SUFDdkssT0FBTyxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsR0FBRyxDQUFDO0FBQzFCLENBQUM7QUFKRCxvQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW90ZUNvbmZpZywgUmVtb3RlQ29uZmlnQmFzZSwgU291cmNlQ29uZmlnIH0gZnJvbSBcIi4uL0lBcmNoaXZlc1wiO1xuXG5leHBvcnQgY29uc3QgSU5URVJNRURJQVRFX0VYUElSRV9HUkFDRSA9IDE1ICogNjAgKiAxMDAwO1xuY29uc3QgSU5URVJNRURJQVRFX1ZFUlNJT05fRlJBQ1RJT04gPSAxXzAwMF8wMDA7XG5cbi8qKiBBZGRpbmcgb3IgcmVtb3ZpbmcgaW50ZXJtZWRpYXRlcyBpcyBhIHJlYWwgY29uZmlnIHVwZGF0ZSwgc28gaXQgdGFrZXMgYSByZWFsIHZlcnNpb24gaW5jcmVtZW50IC0gYnV0IGEgcHJvcG9ydGlvbmFsIG9uZSwgc28gaXQgc3RheXMgZmFyIGJlbG93IHdoYXRldmVyIHRoZSBhdXRob3IncyBuZXh0IHZlcnNpb24gd291bGQgYmUgKHdoZXRoZXIgdGhleSBjb3VudCAxLCAyLCAzIG9yIHVzZSB0aW1lc3RhbXBzKSwgYW5kIGEgbWlsbGlvbiBvZiB0aGVtIHN0aWxsIGZpdCB1bmRlciBpdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZXh0SW50ZXJtZWRpYXRlVmVyc2lvbih2ZXJzaW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBzdGVwID0gTWF0aC5hYnModmVyc2lvbikgLyBJTlRFUk1FRElBVEVfVkVSU0lPTl9GUkFDVElPTjtcbiAgICBpZiAoIShzdGVwID4gMCkpIHtcbiAgICAgICAgc3RlcCA9IDEgLyBJTlRFUk1FRElBVEVfVkVSU0lPTl9GUkFDVElPTjtcbiAgICB9XG4gICAgcmV0dXJuIHZlcnNpb24gKyBzdGVwO1xufVxuXG5mdW5jdGlvbiBpc1NvdXJjZUNvbmZpZyhzb3VyY2U6IFJlbW90ZUNvbmZpZ0Jhc2UpOiBzb3VyY2UgaXMgU291cmNlQ29uZmlnIHtcbiAgICByZXR1cm4gdHlwZW9mIHNvdXJjZSAhPT0gXCJzdHJpbmdcIjtcbn1cblxuZnVuY3Rpb24gY2xvbmVTb3VyY2Uoc291cmNlOiBSZW1vdGVDb25maWdCYXNlKTogUmVtb3RlQ29uZmlnQmFzZSB7XG4gICAgaWYgKCFpc1NvdXJjZUNvbmZpZyhzb3VyY2UpKSByZXR1cm4gc291cmNlO1xuICAgIHJldHVybiB7IC4uLnNvdXJjZSwgdmFsaWRXaW5kb3c6IFtzb3VyY2UudmFsaWRXaW5kb3dbMF0sIHNvdXJjZS52YWxpZFdpbmRvd1sxXV0gfTtcbn1cblxuZnVuY3Rpb24gam9pbktleShzb3VyY2U6IFNvdXJjZUNvbmZpZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgLi4uc291cmNlLCB2YWxpZFdpbmRvdzogdW5kZWZpbmVkIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJtZWRpYXRlU291cmNlcyhjb25maWc6IFJlbW90ZUNvbmZpZyk6IFNvdXJjZUNvbmZpZ1tdIHtcbiAgICByZXR1cm4gY29uZmlnLnNvdXJjZXMuZmlsdGVyKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC5pbnRlcm1lZGlhdGUpIGFzIFNvdXJjZUNvbmZpZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJtZWRpYXRlU291cmNlcyhjb25maWc6IFJlbW90ZUNvbmZpZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb25maWcuc291cmNlcy5zb21lKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC5pbnRlcm1lZGlhdGUpO1xufVxuXG4vKiogUmVtb3ZlcyBldmVyeSBpbnRlcm1lZGlhdGUgZW50cnkgYW5kIHJlam9pbnMgdGhlIHdpbmRvd3MgaXQgc3BsaXQsIGdpdmluZyBiYWNrIHRoZSB1bmRlcmx5aW5nIGNvbmZpZ3VyYXRpb24uIFR3byBjb25maWdzIHRoYXQgcmVzb2x2ZSBlcXVhbCBkaWZmZXIgb25seSBieSBpbnRlcm1lZGlhdGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogUmVtb3RlQ29uZmlnIHtcbiAgICBpZiAoIWhhc0ludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKSkgcmV0dXJuIGNvbmZpZztcbiAgICBsZXQgcmVtb3ZlZCA9IGdldEludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKTtcbiAgICBsZXQgc291cmNlcyA9IGNvbmZpZy5zb3VyY2VzLmZpbHRlcih4ID0+ICFpc1NvdXJjZUNvbmZpZyh4KSB8fCAheC5pbnRlcm1lZGlhdGUpLm1hcChjbG9uZVNvdXJjZSk7XG4gICAgZm9yIChsZXQgZ2FwIG9mIHJlbW92ZWQpIHtcbiAgICAgICAgbGV0IFtnYXBTdGFydCwgZ2FwRW5kXSA9IGdhcC52YWxpZFdpbmRvdztcbiAgICAgICAgbGV0IGJlZm9yZSA9IHNvdXJjZXMuZmluZCh4ID0+IGlzU291cmNlQ29uZmlnKHgpICYmIHgudmFsaWRXaW5kb3dbMV0gPT09IGdhcFN0YXJ0KSBhcyBTb3VyY2VDb25maWcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBhZnRlciA9IHNvdXJjZXMuZmluZCh4ID0+IGlzU291cmNlQ29uZmlnKHgpICYmIHgudmFsaWRXaW5kb3dbMF0gPT09IGdhcEVuZCkgYXMgU291cmNlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYmVmb3JlICYmIGFmdGVyICYmIGpvaW5LZXkoYmVmb3JlKSA9PT0gam9pbktleShhZnRlcikpIHtcbiAgICAgICAgICAgIGJlZm9yZS52YWxpZFdpbmRvdyA9IFtiZWZvcmUudmFsaWRXaW5kb3dbMF0sIGFmdGVyLnZhbGlkV2luZG93WzFdXTtcbiAgICAgICAgICAgIHNvdXJjZXMuc3BsaWNlKHNvdXJjZXMuaW5kZXhPZihhZnRlciksIDEpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJlZm9yZSkge1xuICAgICAgICAgICAgYmVmb3JlLnZhbGlkV2luZG93ID0gW2JlZm9yZS52YWxpZFdpbmRvd1swXSwgZ2FwRW5kXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZnRlcikge1xuICAgICAgICAgICAgYWZ0ZXIudmFsaWRXaW5kb3cgPSBbZ2FwU3RhcnQsIGFmdGVyLnZhbGlkV2luZG93WzFdXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyB2ZXJzaW9uOiBjb25maWcudmVyc2lvbiwgc291cmNlcyB9O1xufVxuXG4vKiogU3BsaXRzIGV2ZXJ5IHNvdXJjZSBhdCBzcGxpdFVybCBjb3ZlcmluZyBbc3RhcnQsIGVuZCkgc28gdGhhdCBtaWRkbGUgd2luZG93IHBvaW50cyBhdCBpbnRlcm1lZGlhdGVVcmwgaW5zdGVhZCwgZmxhZ2dlZCBhcyBpbnRlcm1lZGlhdGUuIElkZW1wb3RlbnQ6IGEgY29uZmlnIHRoYXQgYWxyZWFkeSBjb250YWlucyB0aGUgZXhhY3QgaW50ZXJtZWRpYXRlIGNvbWVzIGJhY2sgdW5jaGFuZ2VkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEludGVybWVkaWF0ZVNvdXJjZShjb25maWc6IFJlbW90ZUNvbmZpZywgaW5qZWN0OiB7IHNwbGl0VXJsOiBzdHJpbmc7IGludGVybWVkaWF0ZVVybDogc3RyaW5nOyBzdGFydDogbnVtYmVyOyBlbmQ6IG51bWJlciB9KTogUmVtb3RlQ29uZmlnIHtcbiAgICBsZXQgeyBzcGxpdFVybCwgaW50ZXJtZWRpYXRlVXJsLCBzdGFydCwgZW5kIH0gPSBpbmplY3Q7XG4gICAgaWYgKHN0YXJ0ID49IGVuZCkgcmV0dXJuIGNvbmZpZztcbiAgICBpZiAoY29uZmlnLnNvdXJjZXMuc29tZSh4ID0+IGlzU291cmNlQ29uZmlnKHgpICYmIHguaW50ZXJtZWRpYXRlICYmIHgudXJsID09PSBpbnRlcm1lZGlhdGVVcmwgJiYgeC52YWxpZFdpbmRvd1swXSA9PT0gc3RhcnQgJiYgeC52YWxpZFdpbmRvd1sxXSA9PT0gZW5kKSkge1xuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cbiAgICBsZXQgc291cmNlczogUmVtb3RlQ29uZmlnQmFzZVtdID0gW107XG4gICAgZm9yIChsZXQgc291cmNlIG9mIGNvbmZpZy5zb3VyY2VzKSB7XG4gICAgICAgIGlmICghaXNTb3VyY2VDb25maWcoc291cmNlKSB8fCBzb3VyY2UudXJsICE9PSBzcGxpdFVybCB8fCBzb3VyY2UuaW50ZXJtZWRpYXRlKSB7XG4gICAgICAgICAgICBzb3VyY2VzLnB1c2goY2xvbmVTb3VyY2Uoc291cmNlKSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgW3dpbmRvd1N0YXJ0LCB3aW5kb3dFbmRdID0gc291cmNlLnZhbGlkV2luZG93O1xuICAgICAgICBpZiAod2luZG93RW5kIDw9IHN0YXJ0IHx8IHdpbmRvd1N0YXJ0ID49IGVuZCkge1xuICAgICAgICAgICAgc291cmNlcy5wdXNoKGNsb25lU291cmNlKHNvdXJjZSkpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1pZGRsZVN0YXJ0ID0gTWF0aC5tYXgod2luZG93U3RhcnQsIHN0YXJ0KTtcbiAgICAgICAgbGV0IG1pZGRsZUVuZCA9IE1hdGgubWluKHdpbmRvd0VuZCwgZW5kKTtcbiAgICAgICAgaWYgKG1pZGRsZVN0YXJ0ID4gd2luZG93U3RhcnQpIHtcbiAgICAgICAgICAgIHNvdXJjZXMucHVzaCh7IC4uLnNvdXJjZSwgdmFsaWRXaW5kb3c6IFt3aW5kb3dTdGFydCwgbWlkZGxlU3RhcnRdIH0pO1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZXMucHVzaCh7IC4uLnNvdXJjZSwgdXJsOiBpbnRlcm1lZGlhdGVVcmwsIHZhbGlkV2luZG93OiBbbWlkZGxlU3RhcnQsIG1pZGRsZUVuZF0sIGludGVybWVkaWF0ZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHdpbmRvd0VuZCA+IG1pZGRsZUVuZCkge1xuICAgICAgICAgICAgc291cmNlcy5wdXNoKHsgLi4uc291cmNlLCB2YWxpZFdpbmRvdzogW21pZGRsZUVuZCwgd2luZG93RW5kXSB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyB2ZXJzaW9uOiBjb25maWcudmVyc2lvbiwgc291cmNlcyB9O1xufVxuXG4vKiogSW50ZXJtZWRpYXRlcyB3aG9zZSB3aW5kb3cgZW5kZWQgbW9yZSB0aGFuIElOVEVSTUVESUFURV9FWFBJUkVfR1JBQ0UgYWdvIGFyZSByZW1vdmVkLCBhbmQgdGhlIHdpbmRvd3MgdGhleSBzcGxpdCBhcmUgcmVqb2luZWQuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwaXJlSW50ZXJtZWRpYXRlU291cmNlcyhjb25maWc6IFJlbW90ZUNvbmZpZywgbm93OiBudW1iZXIpOiBSZW1vdGVDb25maWcge1xuICAgIGxldCBleHBpcmVkID0gZ2V0SW50ZXJtZWRpYXRlU291cmNlcyhjb25maWcpLmZpbHRlcih4ID0+IHgudmFsaWRXaW5kb3dbMV0gKyBJTlRFUk1FRElBVEVfRVhQSVJFX0dSQUNFIDwgbm93KTtcbiAgICBpZiAoIWV4cGlyZWQubGVuZ3RoKSByZXR1cm4gY29uZmlnO1xuICAgIGxldCBrZXB0SW50ZXJtZWRpYXRlcyA9IGdldEludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKS5maWx0ZXIoeCA9PiAhZXhwaXJlZC5pbmNsdWRlcyh4KSk7XG4gICAgbGV0IHJlc29sdmVkID0gcmVzb2x2ZUludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKTtcbiAgICBsZXQgcmVzdWx0ID0gcmVzb2x2ZWQ7XG4gICAgZm9yIChsZXQga2VlcCBvZiBrZXB0SW50ZXJtZWRpYXRlcykge1xuICAgICAgICByZXN1bHQgPSBpbmplY3RJbnRlcm1lZGlhdGVTb3VyY2UocmVzdWx0LCB7XG4gICAgICAgICAgICBzcGxpdFVybDogZmluZFNwbGl0VXJsKGNvbmZpZywga2VlcCkgfHwga2VlcC51cmwsXG4gICAgICAgICAgICBpbnRlcm1lZGlhdGVVcmw6IGtlZXAudXJsLFxuICAgICAgICAgICAgc3RhcnQ6IGtlZXAudmFsaWRXaW5kb3dbMF0sXG4gICAgICAgICAgICBlbmQ6IGtlZXAudmFsaWRXaW5kb3dbMV0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKiogVGhlIHVybCBvZiB0aGUgZW50cnkgYW4gaW50ZXJtZWRpYXRlIHdhcyBzcGxpdCBvdXQgb2YgLSB0aGUgbmVpZ2hib3VyIGl0IHRvdWNoZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFNwbGl0VXJsKGNvbmZpZzogUmVtb3RlQ29uZmlnLCBpbnRlcm1lZGlhdGU6IFNvdXJjZUNvbmZpZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IFtzdGFydCwgZW5kXSA9IGludGVybWVkaWF0ZS52YWxpZFdpbmRvdztcbiAgICBsZXQgbmVpZ2hib3VyID0gY29uZmlnLnNvdXJjZXMuZmluZCh4ID0+IGlzU291cmNlQ29uZmlnKHgpICYmICF4LmludGVybWVkaWF0ZSAmJiAoeC52YWxpZFdpbmRvd1sxXSA9PT0gc3RhcnQgfHwgeC52YWxpZFdpbmRvd1swXSA9PT0gZW5kKSkgYXMgU291cmNlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiBuZWlnaGJvdXI/LnVybDtcbn1cbiJdfQ==
119
- /* _JS_SOURCE_HASH = "1be1cadf6dccbe50ec5d3b821dc5786596306c6217fb6129e9ade86366a8936a"; */
119
+ /* _JS_SOURCE_HASH = "ed7d8abcf8bf9ca87288acd3c442c4eb2cd58f7906a67655b769d039680f3ceb"; */
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
4
4
  };
@@ -255,4 +255,4 @@ function serializeRemoteConfig(config) {
255
255
  }
256
256
  exports.serializeRemoteConfig = serializeRemoteConfig;
257
257
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVtb3RlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUFnRDtBQUNoRCxtREFBd0Q7QUFDeEQsdUVBQStEO0FBQy9ELDBEQUFpQztBQUNqQyw0Q0FBZ0s7QUFFaEssSUFBQSxzQkFBTyxFQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRW5ELHNTQUFzUztBQUV6UixRQUFBLFlBQVksR0FBRyw2QkFBNkIsQ0FBQztBQUMxRCxNQUFNLGNBQWMsR0FBRyxHQUFHLEdBQUcsb0JBQVksQ0FBQztBQUUxQyxNQUFNLGVBQWUsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQztBQUUzQyxvTEFBb0w7QUFDcEwsU0FBZ0Isa0JBQWtCLENBQUMsR0FBVztJQUMxQyxJQUFJLEtBQUssR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLDBCQUFjLENBQUMsQ0FBQztJQUN4QyxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNuQyxJQUFJLEtBQUssR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsMEJBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9FLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDN0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQixDQUFDO0FBTkQsZ0RBTUM7QUFFRCx3R0FBd0c7QUFDeEcsU0FBZ0IsUUFBUSxDQUFDLEdBQVc7SUFDaEMsSUFBSSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsSUFBSSxRQUFRLEtBQUssU0FBUztRQUFFLE9BQU8sUUFBUSxDQUFDO0lBQzVDLHdGQUF3RjtJQUN4RixJQUFJLElB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QUMsTUFBb0I7SUFDdEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFGRCxzREFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNvcnQgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9taXNjXCI7XG5pbXBvcnQgeyBnZXRCdWZmZXJJbnQgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9iaXRzXCI7XG5pbXBvcnQgeyBzZXRGbGFnIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9yZXF1aXJlL2NvbXBpbGVGbGFnc1wiO1xuaW1wb3J0IGpzU2hhMjU2IGZyb20gXCJqcy1zaGEyNTZcIjtcbmltcG9ydCB7IFJlbW90ZUNvbmZpZywgUmVtb3RlQ29uZmlnQmFzZSwgU291cmNlQ29uZmlnLCBBcmNoaXZlRmlsZUluZm8sIENoYW5nZXNBZnRlckNvbmZpZywgRlVMTF9WQUxJRF9XSU5ET1csIEZVTExfUk9VVEUsIFZBUklBQkxFX1NIQVJEIH0gZnJvbSBcIi4uL0lBcmNoaXZlc1wiO1xuXG5zZXRGbGFnKHJlcXVpcmUsIFwianMtc2hhMjU2XCIsIFwiYWxsb3djbGllbnRcIiwgdHJ1ZSk7XG5cbi8vIFBhcnNpbmcgLyBub3JtYWxpemF0aW9uIG9mIFJlbW90ZUNvbmZpZyAoc2VlIElBcmNoaXZlcy50cykuIEV2ZXJ5IGJ1Y2tldCBzdG9yZXMgaXRzIG93biBjb25maWd1cmF0aW9uIChhIFJlbW90ZUNvbmZpZykgaW5zaWRlIGl0c2VsZiwgYXQgUk9VVElOR19GSUxFLiBXcml0aW5nIHRoYXQgZmlsZSBjcmVhdGVzIHRoZSBidWNrZXQgLyByZWNvbmZpZ3VyZXMgaXQgKHNlZSBzdG9yYWdlU2VydmVyU3RhdGUudHMpOyBjbGllbnRzIHJlY29uY2lsZSBpdCBieSB2ZXJzaW9uIChzZWUgY3JlYXRlQXJjaGl2ZXMudHMpLlxuXG5leHBvcnQgY29uc3QgUk9VVElOR19GSUxFID0gXCJzdG9yYWdlL3N0b3JhZ2Vyb3V0aW5nLmpzb25cIjtcbmNvbnN0IFJPVVRJTkdfU1VGRklYID0gXCIvXCIgKyBST1VUSU5HX0ZJTEU7XG5cbmNvbnN0IFJPVVRFX1BSRUNJU0lPTiA9IDEwMDAgKiAxMDAwICogMTAwMDtcblxuLyoqIFRoZSB2YXJpYWJsZS1zaGFyZCByb3V0ZSBvdmVycmlkZSBlbWJlZGRlZCBpbiB0aGUga2V5IChcIjxzZW50aW5lbD5fPHZhbHVlPlwiLCBzZWUgVkFSSUFCTEVfU0hBUkQpLCBvciB1bmRlZmluZWQgd2hlbiB0aGUga2V5IGhhcyBubyBzZW50aW5lbCBvciB0aGUgc2VudGluZWwgaGFzIG5vIHZhbHVlIHlldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlUm91dGUoa2V5OiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGxldCBpbmRleCA9IGtleS5pbmRleE9mKFZBUklBQkxFX1NIQVJEKTtcbiAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGxldCBtYXRjaCA9IC9eXyhcXGQrKD86XFwuXFxkKyk/KS8uZXhlYyhrZXkuc2xpY2UoaW5kZXggKyBWQVJJQUJMRV9TSEFSRC5sZW5ndGgpKTtcbiAgICBpZiAoIW1hdGNoKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiArbWF0Y2hbMV07XG59XG5cbi8qKiBXaGVyZSBhIGtleSByb3V0ZXMgaW4gWzAsIDEpLiBBIG1hdGVyaWFsaXplZCB2YXJpYWJsZS1zaGFyZCBzdWZmaXggY29tcGxldGVseSBvdmVycmlkZXMgdGhlIGhhc2guICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGUoa2V5OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBvdmVycmlkZSA9IHBhcnNlVmFyaWFibGVSb3V0ZShrZXkpO1xuICAgIGlmIChvdmVycmlkZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gb3ZlcnJpZGU7XG4gICAgLy8gUHVyZSBKUywgc28gcm91dGluZyB3b3JrcyBjbGllbnRzaWRlIHRvbyAobm9kZSdzIGNyeXB0byBoYXNoaW5nIGlzIHVuYXZhaWxhYmxlIHRoZXJlKVxuICAgIGxldCBoYXNoID0gZ2V0QnVmZmVySW50KEJ1ZmZlci5mcm9tKGpzU2hhMjU2LnNoYTI1Ni5hcnJheShrZXkpKSk7XG4gICAgcmV0dXJuIGhhc2ggJSBST1VURV9QUkVDSVNJT04gLyBST1VURV9QUkVDSVNJT047XG59XG5cbi8qKiBUaGUgaW4tbWVtb3J5IGdldENoYW5nZXNBZnRlcjIgZW11bGF0aW9uLCBmb3IgYmFja2VuZHMgd2l0aG91dCBhIG5hdGl2ZSBjaGFuZ2UgZmVlZDogYSBmdWxsIGxpc3RpbmcgZmlsdGVyZWQgZG93biB0byBmaWxlcyB3cml0dGVuIGFmdGVyIGNvbmZpZy50aW1lIHdob3NlIGtleXMgcm91dGUgaW50byBjb25maWcucm91dGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckNoYW5nZXMoZmlsZXM6IEFyY2hpdmVGaWxlSW5mb1tdLCBjb25maWc6IENoYW5nZXNBZnRlckNvbmZpZyk6IEFyY2hpdmVGaWxlSW5mb1tdIHtcbiAgICByZXR1cm4gZmlsZXMuZmlsdGVyKGZpbGUgPT4ge1xuICAgICAgICBpZiAoZmlsZS5jcmVhdGVUaW1lIDw9IGNvbmZpZy50aW1lKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCByb3V0ZXMgPSBjb25maWcucm91dGVzO1xuICAgICAgICBpZiAocm91dGVzICYmICFyb3V0ZXMuc29tZShyb3V0ZSA9PiByb3V0ZUNvbnRhaW5zKHJvdXRlLCBnZXRSb3V0ZShmaWxlLnBhdGgpKSkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG59XG5cbi8vIFJvdXRlIHJhbmdlcyBhcmUgW3N0YXJ0LCBlbmQpIC0gaW5jbHVzaXZlIHN0YXJ0LCBleGNsdXNpdmUgZW5kXG5leHBvcnQgZnVuY3Rpb24gcm91dGVDb250YWlucyhyb3V0ZTogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICghcm91dGUpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiByb3V0ZVswXSA8PSB2YWx1ZSAmJiB2YWx1ZSA8IHJvdXRlWzFdO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvdXRlc092ZXJsYXAoYTogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgYjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIGxldCBbYVN0YXJ0LCBhRW5kXSA9IGEgfHwgRlVMTF9ST1VURTtcbiAgICBsZXQgW2JTdGFydCwgYkVuZF0gPSBiIHx8IEZVTExfUk9VVEU7XG4gICAgcmV0dXJuIGFTdGFydCA8IGJFbmQgJiYgYlN0YXJ0IDwgYUVuZDtcbn1cbi8qKiBUaGUgb3ZlcmxhcCBvZiB0d28gcm91dGUgcmFuZ2VzLCBvciB1bmRlZmluZWQgd2hlbiB0aGV5IGRvbid0IG92ZXJsYXAuICovXG5leHBvcnQgZnVuY3Rpb24gcm91dGVJbnRlcnNlY3Rpb24oYTogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgYjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCk6IFtudW1iZXIsIG51bWJlcl0gfCB1bmRlZmluZWQge1xuICAgIGxldCBbYVN0YXJ0LCBhRW5kXSA9IGEgfHwgRlVMTF9ST1VURTtcbiAgICBsZXQgW2JTdGFydCwgYkVuZF0gPSBiIHx8IEZVTExfUk9VVEU7XG4gICAgbGV0IHN0YXJ0ID0gTWF0aC5tYXgoYVN0YXJ0LCBiU3RhcnQpO1xuICAgIGxldCBlbmQgPSBNYXRoLm1pbihhRW5kLCBiRW5kKTtcbiAgICBpZiAoc3RhcnQgPj0gZW5kKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG59XG5cbi8vIEEgbWlzc2luZyB2ZXJzaW9uIGNvdW50cyBhcyAtMSwgc28gYW55IGV4cGxpY2l0bHkgdmVyc2lvbmVkIGNvbmZpZyBiZWF0cyBhbiB1bnZlcnNpb25lZCBvbmVcbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWdWZXJzaW9uKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY29uZmlnLnZlcnNpb24gPz8gLTE7XG59XG5cbi8qKiBTdHJpcHMgdGhlIHJvdXRpbmctZmlsZSBzdWZmaXgsIGxlYXZpbmcgdGhlIGJ1Y2tldCdzIHB1YmxpYyBiYXNlIFVSTCAoZmlsZSBwYXRocyBhcHBlbmQgdG8gaXQpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1Y2tldEJhc2VVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdXJsLmVuZHNXaXRoKFJPVVRJTkdfU1VGRklYKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGEgYnVja2V0IHJvdXRpbmcgVVJMIGVuZGluZyB3aXRoICR7SlNPTi5zdHJpbmdpZnkoUk9VVElOR19TVUZGSVgpfSwgd2FzICR7SlNPTi5zdHJpbmdpZnkodXJsKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybC5zbGljZSgwLCAtUk9VVElOR19TVUZGSVgubGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRmlsZVVybChiYXNlVXJsOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBiYXNlVXJsICsgXCIvXCIgKyBmaWxlUGF0aC5zcGxpdChcIi9cIikubWFwKGVuY29kZVVSSUNvbXBvbmVudCkuam9pbihcIi9cIik7XG59XG5cbi8vIEV4OiBodHRwczovL3N0b3JhZ2UyLnZpZGdyaWR3ZWIuY29tOjQ0NDUvZmlsZS9leGFtcGxlYWNjb3VudC9leGFtcGxlYnVja2V0L3N0b3JhZ2Uvc3RvcmFnZXJvdXRpbmcuanNvblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSG9zdGVkVXJsKHVybDogc3RyaW5nKTogeyBhZGRyZXNzOiBzdHJpbmc7IHBvcnQ6IG51bWJlcjsgYWNjb3VudDogc3RyaW5nOyBidWNrZXROYW1lOiBzdHJpbmcgfSB7XG4gICAgbGV0IGJhc2UgPSBnZXRCdWNrZXRCYXNlVXJsKHVybCk7XG4gICAgbGV0IHUgPSBuZXcgVVJMKGJhc2UpO1xuICAgIGlmICh1LnByb3RvY29sICE9PSBcImh0dHBzOlwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU3RvcmFnZSBVUkwgbXVzdCB1c2UgaHR0cHMsIGdvdCAke0pTT04uc3RyaW5naWZ5KHUucHJvdG9jb2wpfSBpbiAke0pTT04uc3RyaW5naWZ5KHVybCl9YCk7XG4gICAgfVxuICAgIGxldCBwYXJ0cyA9IHUucGF0aG5hbWUuc3BsaXQoXCIvXCIpLmZpbHRlcih4ID0+IHgpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgfHwgcGFydHNbMF0gIT09IFwiZmlsZVwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSBob3N0ZWQgYnVja2V0IFVSTCBsaWtlIGh0dHBzOi8vaG9zdDpwb3J0L2ZpbGUvPGFjY291bnQ+LzxidWNrZXROYW1lPiR7Uk9VVElOR19TVUZGSVh9LCB3YXMgJHtKU09OLnN0cmluZ2lmeSh1cmwpfWApO1xuICAgIH1cbiAgICByZXR1cm4geyBhZGRyZXNzOiB1Lmhvc3RuYW1lLCBwb3J0OiArdS5wb3J0IHx8IDQ0MywgYWNjb3VudDogZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzWzFdKSwgYnVja2V0TmFtZTogZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzWzJdKSB9O1xufVxuXG4vLyBFeDogaHR0cHM6Ly9mMDAyLmJhY2tibGF6ZWIyLmNvbS9maWxlL3F1ZXJ5c3VidGVzdC1jb20tcHVibGljLWltbXV0YWJsZS9zdG9yYWdlL3N0b3JhZ2Vyb3V0aW5nLmpzb25cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJhY2tibGF6ZVVybCh1cmw6IHN0cmluZyk6IHsgYnVja2V0TmFtZTogc3RyaW5nIH0ge1xuICAgIGxldCBiYXNlID0gZ2V0QnVja2V0QmFzZVVybCh1cmwpO1xuICAgIGxldCB1ID0gbmV3IFVSTChiYXNlKTtcbiAgICBsZXQgcGFydHMgPSB1LnBhdGhuYW1lLnNwbGl0KFwiL1wiKS5maWx0ZXIoeCA9PiB4KTtcbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAyIHx8IHBhcnRzWzBdICE9PSBcImZpbGVcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGEgYmFja2JsYXplIGJ1Y2tldCBVUkwgbGlrZSBodHRwczovL2YwMDIuYmFja2JsYXplYjIuY29tL2ZpbGUvPGJ1Y2tldE5hbWU+JHtST1VUSU5HX1NVRkZJWH0sIHdhcyAke0pTT04uc3RyaW5naWZ5KHVybCl9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IGJ1Y2tldE5hbWU6IGRlY29kZVVSSUNvbXBvbmVudChwYXJ0c1sxXSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VIb3N0ZWRVcmxQb3J0KHVybDogc3RyaW5nLCBwb3J0OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCB1ID0gbmV3IFVSTCh1cmwpO1xuICAgIHUucG9ydCA9IFN0cmluZyhwb3J0KTtcbiAgICByZXR1cm4gdS50b1N0cmluZygpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplU291cmNlKHNvdXJjZTogUmVtb3RlQ29uZmlnQmFzZSk6IFNvdXJjZUNvbmZpZyB7XG4gICAgaWYgKHR5cGVvZiBzb3VyY2UgIT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgbGV0IHdpbmRvdyA9IHNvdXJjZS52YWxpZFdpbmRvdztcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHdpbmRvdykgfHwgd2luZG93Lmxlbmd0aCAhPT0gMiB8fCAhd2luZG93LmV2ZXJ5KHggPT4gdHlwZW9mIHggPT09IFwibnVtYmVyXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE9iamVjdCBzb3VyY2UgY29uZmlncyBtdXN0IHNwZWNpZnkgdmFsaWRXaW5kb3cgKFtzdGFydE1zLCBlbmRNc10gb2YgdGhlIHdyaXRlIHRpbWVzIHRoZSBzb3VyY2UgaXMgdmFsaWQgZm9yKSAtIGNvbmZpZ3VyYXRpb24gY2hhbmdlcyBtdXN0IGJlIHNjaGVkdWxlZCwgbm90IGZsaXBwZWQgaW5zdGFudGx5LiBVc2UgRlVMTF9WQUxJRF9XSU5ET1cgd2hlbiB0aGUgc291cmNlIGlzIGFsd2F5cyB2YWxpZC4gV2FzICR7SlNPTi5zdHJpbmdpZnkod2luZG93KX0gb24gJHtKU09OLnN0cmluZ2lmeShzb3VyY2UpLnNsaWNlKDAsIDUwMCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJvdXRlID0gc291cmNlLnJvdXRlO1xuICAgICAgICBpZiAocm91dGUgIT09IHVuZGVmaW5lZCAmJiAoIUFycmF5LmlzQXJyYXkocm91dGUpIHx8IHJvdXRlLmxlbmd0aCAhPT0gMiB8fCAhcm91dGUuZXZlcnkoeCA9PiB0eXBlb2YgeCA9PT0gXCJudW1iZXJcIikgfHwgcm91dGVbMF0gPCAwIHx8IHJvdXRlWzFdID4gMSB8fCByb3V0ZVswXSA+PSByb3V0ZVsxXSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU291cmNlIHJvdXRlIG11c3QgYmUgYSBbc3RhcnQsIGVuZCkgZnJhY3Rpb24gcmFuZ2Ugd2l0aGluIFswLCAxXSB3aXRoIHN0YXJ0IDwgZW5kLCB3YXMgJHtKU09OLnN0cmluZ2lmeShyb3V0ZSl9IG9uICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKS5zbGljZSgwLCA1MDApfWApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzb3VyY2UucmVhZGVyRGlza0xpbWl0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygc291cmNlLnJlYWRlckRpc2tMaW1pdCAhPT0gXCJudW1iZXJcIiB8fCBzb3VyY2UucmVhZGVyRGlza0xpbWl0IDw9IDApIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHJlYWRlckRpc2tMaW1pdCBtdXN0IGJlIGEgcG9zaXRpdmUgYnl0ZSBjb3VudCwgd2FzICR7SlNPTi5zdHJpbmdpZnkoc291cmNlLnJlYWRlckRpc2tMaW1pdCl9IG9uICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKS5zbGljZSgwLCA1MDApfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzb3VyY2Uubm9GdWxsU3luYykge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcmVhZGVyRGlza0xpbWl0IHJlcXVpcmVzIG5vRnVsbFN5bmM6IGEgZnVsbCBjb3B5IGNhbm5vdCBiZSBib3VuZGVkLCBvbmx5IGEgcmVhZCBjYWNoZSBjYW4uIE9uICR7SlNPTi5zdHJpbmdpZnkoc291cmNlKS5zbGljZSgwLCA1MDApfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzb3VyY2UudHlwZSA9PT0gXCJyZW1vdGVcIikge1xuICAgICAgICAgICAgLy8gVGhyb3dzIGlmIHRoZSBVUkwgaXMgbWFsZm9ybWVkLCBzbyBiYWQgY29uZmlncyBhcmUgcmVqZWN0ZWQgYmVmb3JlIHRoZXkncmUgc3RvcmVkXG4gICAgICAgICAgICBwYXJzZUhvc3RlZFVybChzb3VyY2UudXJsKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc291cmNlO1xuICAgIH1cbiAgICBsZXQgaG9zdG5hbWUgPSBuZXcgVVJMKHNvdXJjZSkuaG9zdG5hbWU7XG4gICAgaWYgKGhvc3RuYW1lLmVuZHNXaXRoKFwiLmJhY2tibGF6ZWIyLmNvbVwiKSkge1xuICAgICAgICAvLyBWYWxpZGF0ZXMgdGhlIFVSTCAodGhyb3dzIG9uIG1hbGZvcm1lZCkgYmVmb3JlIGl0J3Mgc3RvcmVkOyB0aGUgYnVja2V0IG5hbWUgaXMgcmVhZCBiYWNrIG91dCBvZiB0aGUgVVJMIGF0IHVzZSBzaXRlcywgbmV2ZXIgc3RvcmVkIG9uIHRoZSBjb25maWcuXG4gICAgICAgIHBhcnNlQmFja2JsYXplVXJsKHNvdXJjZSk7XG4gICAgICAgIHJldHVybiB7IHR5cGU6IFwiYmFja2JsYXplXCIsIHVybDogc291cmNlLCB2YWxpZFdpbmRvdzogRlVMTF9WQUxJRF9XSU5ET1csIHB1YmxpYzogdHJ1ZSB9O1xuICAgIH1cbiAgICBwYXJzZUhvc3RlZFVybChzb3VyY2UpO1xuICAgIHJldHVybiB7IHR5cGU6IFwicmVtb3RlXCIsIHVybDogc291cmNlLCB2YWxpZFdpbmRvdzogRlVMTF9WQUxJRF9XSU5ET1csIHB1YmxpYzogdHJ1ZSB9O1xufVxuXG4vKiogSG93IGZhciB1cCBmcm9tIDAgdGhlIHNvdXJjZXMnIHJvdXRlcyByZWFjaCB3aXRob3V0IGEgZ2FwICgxIG1lYW5zIHRoZSB3aG9sZSBrZXkgc3BhY2UpLiAqL1xuZnVuY3Rpb24gZ2V0Um91dGVDb3ZlcmFnZShzb3VyY2VzOiBTb3VyY2VDb25maWdbXSk6IG51bWJlciB7XG4gICAgbGV0IHJvdXRlcyA9IHNvdXJjZXMubWFwKHggPT4geC5yb3V0ZSB8fCBGVUxMX1JPVVRFKTtcbiAgICBzb3J0KHJvdXRlcywgeCA9PiB4WzBdKTtcbiAgICBsZXQgY292ZXJlZCA9IDA7XG4gICAgZm9yIChsZXQgcm91dGUgb2Ygcm91dGVzKSB7XG4gICAgICAgIGlmIChyb3V0ZVswXSA+IGNvdmVyZWQpIGJyZWFrO1xuICAgICAgICBjb3ZlcmVkID0gTWF0aC5tYXgoY292ZXJlZCwgcm91dGVbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gY292ZXJlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVJlbW90ZUNvbmZpZyhjb25maWc6IFJlbW90ZUNvbmZpZyB8IFJlbW90ZUNvbmZpZ0Jhc2UpOiBSZW1vdGVDb25maWcge1xuICAgIGxldCByZXN1bHQ6IFJlbW90ZUNvbmZpZztcbiAgICBpZiAodHlwZW9mIGNvbmZpZyAhPT0gXCJzdHJpbmdcIiAmJiBcInNvdXJjZXNcIiBpbiBjb25maWcpIHtcbiAgICAgICAgcmVzdWx0ID0geyB2ZXJzaW9uOiBjb25maWcudmVyc2lvbiwgc291cmNlczogY29uZmlnLnNvdXJjZXMubWFwKG5vcm1hbGl6ZVNvdXJjZSkgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB7IHNvdXJjZXM6IFtub3JtYWxpemVTb3VyY2UoY29uZmlnKV0gfTtcbiAgICB9XG4gICAgLy8gTWl4ZWQgaW1tdXRhYmlsaXR5IG1ha2VzIG5vIHNlbnNlIEFNT05HIHNvdXJjZXMgdmFsaWQgYXQgdGhlIHNhbWUgdGltZTogYSBtdXRhYmxlIHNvdXJjZSB3b3VsZCBhY2NlcHQgb3ZlcndyaXRlcyB0aGF0IGl0cyBpbW11dGFibGUgcGVlcnMgcmVmdXNlIHRvIHN5bmNocm9uaXplLCBmb3JraW5nIHRoZWlyIGNvbnRlbnRzLiBTb3VyY2VzIGFyZSBncm91cGVkIGJ5IHRyYW5zaXRpdmVseSBvdmVybGFwcGluZyB2YWxpZCB3aW5kb3dzIChhYnNvcmIgZXZlcnl0aGluZyBvdmVybGFwcGluZyB0aGUgZ3JvdXAsIGV4dGVuZCB0aGUgZ3JvdXAncyBlbmQsIHJlcGVhdCkgLSBhIHNvZnQgY2hlY2sgdGhhdCBpcyBjb3JyZWN0IGFzIGxvbmcgYXMgd2luZG93cyBoYXZlIGNsZWFuIGJyZWFrcyAoYSBncm91cCBlbmRzIGV4YWN0bHkgd2hlcmUgdGhlIG5leHQgYmVnaW5zKS5cbiAgICBsZXQgc291cmNlcyA9IHJlc3VsdC5zb3VyY2VzLm1hcChub3JtYWxpemVTb3VyY2UpO1xuICAgIGxldCBzb3J0ZWQgPSBbLi4uc291cmNlc107XG4gICAgc29ydChzb3J0ZWQsIHggPT4geC52YWxpZFdpbmRvd1swXSk7XG4gICAgbGV0IGdyb3VwOiB0eXBlb2Ygc291cmNlcyA9IFtdO1xuICAgIGxldCBncm91cEVuZCA9IDA7XG4gICAgZnVuY3Rpb24gY2hlY2tHcm91cCgpIHtcbiAgICAgICAgbGV0IGltbXV0YWJsZUNvdW50ID0gZ3JvdXAuZmlsdGVyKHggPT4geC5pbW11dGFibGUpLmxlbmd0aDtcbiAgICAgICAgaWYgKGltbXV0YWJsZUNvdW50ICYmIGltbXV0YWJsZUNvdW50ICE9PSBncm91cC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU291cmNlcyB3aXRoIG92ZXJsYXBwaW5nIHZhbGlkIHdpbmRvd3MgbXVzdCBhZ3JlZSBvbiBpbW11dGFiaWxpdHk6ICR7aW1tdXRhYmxlQ291bnR9IG9mICR7Z3JvdXAubGVuZ3RofSBhcmUgaW1tdXRhYmxlLiBTb3VyY2VzOiAke0pTT04uc3RyaW5naWZ5KGdyb3VwLm1hcCh4ID0+ICh7IHVybDogeC51cmwsIHZhbGlkV2luZG93OiB4LnZhbGlkV2luZG93LCBpbW11dGFibGU6ICEheC5pbW11dGFibGUgfSkpKX1gKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBUaGUgc291cmNlcyB2YWxpZCBhdCBhbnkgaW5zdGFudCBtdXN0IGNvdmVyIHRoZSB3aG9sZSBrZXkgc3BhY2UsIG9yIGtleXMgcm91dGluZyBpbnRvIGEgZ2FwIGNvdWxkIG5ldmVyIGJlIHJlYWRcbiAgICAgICAgbGV0IGNvdmVyZWQgPSBnZXRSb3V0ZUNvdmVyYWdlKGdyb3VwKTtcbiAgICAgICAgaWYgKGNvdmVyZWQgPCAxKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNvdXJjZXMgd2l0aCBvdmVybGFwcGluZyB2YWxpZCB3aW5kb3dzIG11c3QgY292ZXIgdGhlIGZ1bGwgcm91dGUgc3BhY2UgWzAsIDEpOyBjb3ZlcmFnZSBzdG9wcyBhdCAke2NvdmVyZWR9LiBTb3VyY2VzOiAke0pTT04uc3RyaW5naWZ5KGdyb3VwLm1hcCh4ID0+ICh7IHVybDogeC51cmwsIHZhbGlkV2luZG93OiB4LnZhbGlkV2luZG93LCByb3V0ZTogeC5yb3V0ZSB8fCBGVUxMX1JPVVRFIH0pKSl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRXZlcnkgYnVja2V0IG11c3QgQUxTTyBjb3ZlciB0aGUgZnVsbCByb3V0ZSBzcGFjZSBhY3Jvc3MgaXRzIG93biBlbnRyaWVzLCBiZWNhdXNlIGFsbCBvZiBhIGJ1Y2tldCdzIGVudHJpZXMgc2hhcmUgb25lIGRpc2suIEEgYnVja2V0IHRoYXQgb25seSBldmVyIHN5bmNocm9uaXplcyBwYXJ0IG9mIHRoZSBrZXkgc3BhY2UgbmV2ZXIgbGVhcm5zIGFib3V0IGRlbGV0aW9ucyBpbiB0aGUgcmVzdCBvZiBpdCAtIGFuZCB0b21ic3RvbmVzIGV4cGlyZSwgc28gZmlsZXMgaXQgc3RpbGwgaG9sZHMgZnJvbSBhIHJvdXRlIGl0IG5vIGxvbmdlciBzZXJ2ZXMgZXZlbnR1YWxseSBsb29rIGxpa2UgbGl2ZSBmaWxlcyBhZ2FpbiwgYW5kIGdldCByZXN1cnJlY3RlZCBpbnRvIHRoZSBjaGFpbiBieSBpdHMgbmV4dCBzY2FuLiBBbiBlbnRyeSB3aXRoIG5vIHJvdXRlIChpbXBsaWNpdGx5IHRoZSBmdWxsIHNwYWNlKSBzYXRpc2ZpZXMgdGhpcyBvbiBpdHMgb3duLCB3aGljaCBpcyB3aHkgdGhlIHVzdWFsIGNvbmZpZ3VyYXRpb24gbGlzdHMgZWFjaCBidWNrZXQgb25jZSBwZXIgc2hhcmQgQU5EIG9uY2UgdW5zaGFyZGVkLlxuICAgICAgICBsZXQgYnlVcmwgPSBuZXcgTWFwPHN0cmluZywgdHlwZW9mIGdyb3VwPigpO1xuICAgICAgICBmb3IgKGxldCBzb3VyY2Ugb2YgZ3JvdXApIHtcbiAgICAgICAgICAgIGxldCBlbnRyaWVzID0gYnlVcmwuZ2V0KHNvdXJjZS51cmwpO1xuICAgICAgICAgICAgaWYgKCFlbnRyaWVzKSB7XG4gICAgICAgICAgICAgICAgZW50cmllcyA9IFtdO1xuICAgICAgICAgICAgICAgIGJ5VXJsLnNldChzb3VyY2UudXJsLCBlbnRyaWVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVudHJpZXMucHVzaChzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIGZvciAobGV0IFt1cmwsIGVudHJpZXNdIG9mIGJ5VXJsKSB7XG4gICAgICAgICAgICBsZXQgdXJsQ292ZXJlZCA9IGdldFJvdXRlQ292ZXJhZ2UoZW50cmllcyk7XG4gICAgICAgICAgICBpZiAodXJsQ292ZXJlZCA8IDEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV2ZXJ5IGJ1Y2tldCBtdXN0IGNvdmVyIHRoZSBmdWxsIHJvdXRlIHNwYWNlIFswLCAxKSBhY3Jvc3MgaXRzIG93biBlbnRyaWVzIHdpdGggb3ZlcmxhcHBpbmcgdmFsaWQgd2luZG93cywgYnV0ICR7dXJsfSBvbmx5IGNvdmVycyB1cCB0byAke3VybENvdmVyZWR9IChpdHMgcm91dGVzOiAke0pTT04uc3RyaW5naWZ5KGVudHJpZXMubWFwKHggPT4geC5yb3V0ZSB8fCBGVUxMX1JPVVRFKSl9KS4gQWRkIGFuIGVudHJ5IGZvciBpdCB3aXRoIG5vIHJvdXRlIChvciBlbnRyaWVzIHdob3NlIHJvdXRlcyBzcGFuIHRoZSByZXN0KSwgYWxvbmdzaWRlIGl0cyBzaGFyZGVkIGVudHJpZXMuIFRoaXMgaXMgZW5mb3JjZWQgYmVjYXVzZSBhIGJ1Y2tldCdzIGVudHJpZXMgYWxsIHNoYXJlIG9uZSBkaXNrOiBpZiBpdCBvbmx5IGV2ZXIgc3luY2hyb25pemVzIHBhcnQgb2YgdGhlIGtleSBzcGFjZSwgaXQgbmV2ZXIgc2VlcyBkZWxldGlvbnMgaW4gdGhlIHJlc3QsIGFuZCBvbmNlIHRob3NlIHRvbWJzdG9uZXMgZXhwaXJlIHRoZSBmaWxlcyBpdCBzdGlsbCBob2xkcyBhcmUgcmVzdXJyZWN0ZWQgaW50byB0aGUgY2hhaW4gYnkgaXRzIG5leHQgc2Nhbi5gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc29ydGVkKSB7XG4gICAgICAgIGlmIChncm91cC5sZW5ndGggJiYgc291cmNlLnZhbGlkV2luZG93WzBdID49IGdyb3VwRW5kKSB7XG4gICAgICAgICAgICBjaGVja0dyb3VwKCk7XG4gICAgICAgICAgICBncm91cCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGdyb3VwLnB1c2goc291cmNlKTtcbiAgICAgICAgZ3JvdXBFbmQgPSBNYXRoLm1heChncm91cEVuZCwgc291cmNlLnZhbGlkV2luZG93WzFdKTtcbiAgICB9XG4gICAgY2hlY2tHcm91cCgpO1xuICAgIC8vIFR3byBlbnRyaWVzIHdpdGggdGhlIEVYQUNUIHNhbWUgVVJMIGFuZCB0aGUgU0FNRSByb3V0ZSBtYXkgbmV2ZXIgYmUgdmFsaWQgYXQgdGhlIHNhbWUgdGltZTogb24gdGhhdCBzZXJ2ZXIgdGhlIHJvdXRlIG1hcHMgdG8gZXhhY3RseSBvbmUgb24tZGlzayBmb2xkZXIgYW5kIG9uZSBzdG9yZSwgc28gc2ltdWx0YW5lb3VzIGR1cGxpY2F0ZXMgd291bGQgY29sbGlkZSBvbiBpdC4gQSBkaWZmZXJlbnQgcG9ydCBpcyBhIGRpZmZlcmVudCBzZXJ2ZXIuIE5vbi1vdmVybGFwcGluZyB3aW5kb3dzIGFyZSBmaW5lOyB0aGF0IGlzIGhvdyB0cmFuc2l0aW9ucyBiZXR3ZWVuIHdpbmRvd3Mgd29yay5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvdXJjZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgZm9yIChsZXQgaiA9IGkgKyAxOyBqIDwgc291cmNlcy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgbGV0IGEgPSBzb3VyY2VzW2ldO1xuICAgICAgICAgICAgbGV0IGIgPSBzb3VyY2VzW2pdO1xuICAgICAgICAgICAgaWYgKHNvdXJjZVJvdXRlSWRlbnRpdHkoYSkgIT09IHNvdXJjZVJvdXRlSWRlbnRpdHkoYikpIGNvbnRpbnVlO1xuICAgICAgICAgICAgaWYgKGEudmFsaWRXaW5kb3dbMF0gPCBiLnZhbGlkV2luZG93WzFdICYmIGIudmFsaWRXaW5kb3dbMF0gPCBhLnZhbGlkV2luZG93WzFdKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUd28gc291cmNlcyB3aXRoIHRoZSBzYW1lIFVSTCBoYXZlIHRoZSBzYW1lIHJvdXRlIHdpdGggb3ZlcmxhcHBpbmcgdmFsaWQgd2luZG93cyAtIG9uIHRoYXQgc2VydmVyIHRoZSByb3V0ZSBtYXBzIHRvIG9uZSBvbi1kaXNrIGZvbGRlciwgc28gdGhlc2Ugd291bGQgY29sbGlkZS4gR2l2ZSBzYW1lLXJvdXRlIGVudHJpZXMgbm9uLW92ZXJsYXBwaW5nIHdpbmRvd3MgaW5zdGVhZC4gQ29uZmxpY3Rpbmc6ICR7SlNPTi5zdHJpbmdpZnkoYSl9IGFuZCAke0pTT04uc3RyaW5naWZ5KGIpfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKiBUaGUgcGVyLXN0b3JlIGlkZW50aXR5IG9mIGEgc291cmNlOiBpdHMgZXhhY3QgVVJMIHBsdXMgaXRzIHJvdXRlLiBFbnRyaWVzIHNoYXJpbmcgdGhpcyBpZGVudGl0eSBtYXAgdG8gdGhlIHNhbWUgc3RvcmUvZm9sZGVyIG9uIHRoZSBzYW1lIHNlcnZlciwgc28gdGhleSBtYXkgbmV2ZXIgb3ZlcmxhcCBpbiB0aW1lIChzZWUgbm9ybWFsaXplUmVtb3RlQ29uZmlnKS4gKi9cbmZ1bmN0aW9uIHNvdXJjZVJvdXRlSWRlbnRpdHkoc291cmNlOiBTb3VyY2VDb25maWcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzb3VyY2UudXJsfXwke0pTT04uc3RyaW5naWZ5KHNvdXJjZS5yb3V0ZSB8fCBGVUxMX1JPVVRFKX1gO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSb3V0aW5nRGF0YShkYXRhOiBCdWZmZXIpOiBSZW1vdGVDb25maWcge1xuICAgIGxldCB0ZXh0ID0gZGF0YS50b1N0cmluZygpO1xuICAgIGxldCBwYXJzZWQ6IFJlbW90ZUNvbmZpZztcbiAgICB0cnkge1xuICAgICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHRleHQpIGFzIFJlbW90ZUNvbmZpZztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUm91dGluZyBjb25maWcgaXMgbm90IHZhbGlkIEpTT04gKCR7U3RyaW5nKGUpfSkuIERhdGE6ICR7dGV4dC5zbGljZSgwLCA1MDApfWApO1xuICAgIH1cbiAgICBpZiAoIXBhcnNlZCB8fCB0eXBlb2YgcGFyc2VkICE9PSBcIm9iamVjdFwiIHx8ICFBcnJheS5pc0FycmF5KHBhcnNlZC5zb3VyY2VzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJvdXRpbmcgY29uZmlnIG11c3QgYmUgeyB2ZXJzaW9uPywgc291cmNlczogWy4uLl0gfSwgd2FzICR7dGV4dC5zbGljZSgwLCA1MDApfWApO1xuICAgIH1cbiAgICByZXR1cm4gbm9ybWFsaXplUmVtb3RlQ29uZmlnKHBhcnNlZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVSZW1vdGVDb25maWcoY29uZmlnOiBSZW1vdGVDb25maWcpOiBCdWZmZXIge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShjb25maWcsIHVuZGVmaW5lZCwgNCkpO1xufVxuIl19
258
- /* _JS_SOURCE_HASH = "031f3c8fc1e2288103c1f5c8a7c8be4388670b820a08733e6885a67594d328c4"; */
258
+ /* _JS_SOURCE_HASH = "0989264d65865c84abd1c0944753eb007a3b922644b941b04fd8c3917943277f"; */
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
4
4
  };
@@ -113,4 +113,4 @@ function isOwnAddress(address, port) {
113
113
  }
114
114
  exports.isOwnAddress = isOwnAddress;
115
115
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VydmVyQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF3QjtBQUN4QixvREFBeUQ7QUFDekQsOERBQTJEO0FBQzNELGdEQUE2QztBQUc3Qyx1Q0FBbUM7QUFhbkMsSUFBSSxNQUF1QyxDQUFDO0FBQzVDLFNBQWdCLHNCQUFzQixDQUFDLEtBQTBCO0lBQzdELE1BQU0sR0FBRyxLQUFLLENBQUM7QUFDbkIsQ0FBQztBQUZELHdEQUVDO0FBQ0QsU0FBZ0Isc0JBQXNCO0lBQ2xDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUxELHdEQUtDO0FBQ0QsU0FBZ0IsOEJBQThCO0lBQzFDLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFGRCx3RUFFQztBQUVELElBQUksb0JBQXdDLENBQUM7QUFDN0MsU0FBZ0IsdUJBQXVCLENBQUMsTUFBMEI7SUFDOUQsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0FBQ2xDLENBQUM7QUFGRCwwREFFQztBQUNELFNBQWdCLHVCQUF1QjtJQUNuQyxPQUFPLG9CQUFvQixDQUFDO0FBQ2hDLENBQUM7QUFGRCwwREFFQztBQUNELFNBQWdCLG1CQUFtQjtJQUMvQixJQUFJLG9CQUFvQjtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRkQsa0RBRUM7QUFFRCxTQUFnQixnQkFBZ0I7SUFDNUIsSUFBSSxNQUFNLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztJQUM5QyxJQUFJLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDakMsSUFBSSxNQUFNLEdBQUcsSUFBQSxnQkFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFD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LEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDL0csQ0FBQztBQUNMLENBQUM7QUFsQkQsZ0RBa0JDO0FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBQzNDLFNBQWdCLGtCQUFrQixDQUFDLElBQVk7SUFDM0MsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQy9CLENBQUM7QUFGRCxnREFFQztBQUNELFNBQWdCLHFCQUFxQixDQUFDLElBQVk7SUFDOUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLENBQUM7QUFGRCxzREFFQztBQUNELHdXQUF3VztBQUN4VyxTQUFnQixZQUFZLENBQUMsT0FBZSxFQUFFLElBQVk7SUFDdEQsSUFBSSxNQUFNLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztJQUM5QyxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzFCLElBQUksT0FBTyxLQUFLLE1BQU0sQ0FBQyxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDNUMsT0FBTyxJQUFJLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUxELG9DQUtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IGdldEZpbGVTdG9yYWdlTmVzdGVkMiB9IGZyb20gXCIuLi9GaWxlRm9sZGVyQVBJXCI7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblN0b3JhZ2UgfSBmcm9tIFwiLi4vVHJhbnNhY3Rpb25TdG9yYWdlXCI7XG5pbXBvcnQgeyBKU09OU3RvcmFnZSB9IGZyb20gXCIuLi9KU09OU3RvcmFnZVwiO1xuaW1wb3J0IHR5cGUgeyBJU3RvcmFnZSB9IGZyb20gXCIuLi9JU3RvcmFnZVwiO1xuaW1wb3J0IHR5cGUgeyBBY2Nlc3NSZXF1ZXN0LCBUcnVzdFJlY29yZCB9IGZyb20gXCIuL3N0b3JhZ2VDb250cm9sbGVyXCI7XG5pbXBvcnQgeyBnZXRBcmcgfSBmcm9tIFwiLi9jbGlBcmdzXCI7XG5cbi8vIFRoZSBzdG9yYWdlIHNlcnZlcidzIHByb2Nlc3MtbGV2ZWwgaWRlbnRpdHkgYW5kIHN5c3RlbSBzdGF0ZTogd2hpY2ggc2VydmVyIHdlIGFyZSAoY29uZmlnLCBleHRyYSBwb3J0cyksIHdoZXRoZXIgd3JpdGVzIGFyZSBhbGxvd2VkLCBhbmQgdGhlIHRydXN0L3JlcXVlc3Qgc3RvcmVzLlxuXG5leHBvcnQgdHlwZSBTdG9yYWdlU2VydmVyQ29uZmlnID0ge1xuICAgIGRvbWFpbjogc3RyaW5nO1xuICAgIHBvcnQ6IG51bWJlcjtcbiAgICByb290RG9tYWluOiBzdHJpbmc7XG4gICAgc3NoVGFyZ2V0OiBzdHJpbmc7XG4gICAgc2VydmVyQ29tbWFuZDogc3RyaW5nO1xuICAgIGZvbGRlcjogc3RyaW5nO1xufTtcblxubGV0IGNvbmZpZzogU3RvcmFnZVNlcnZlckNvbmZpZyB8IHVuZGVmaW5lZDtcbmV4cG9ydCBmdW5jdGlvbiBzZXRTdG9yYWdlU2VydmVyQ29uZmlnKHZhbHVlOiBTdG9yYWdlU2VydmVyQ29uZmlnKTogdm9pZCB7XG4gICAgY29uZmlnID0gdmFsdWU7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZVNlcnZlckNvbmZpZygpOiBTdG9yYWdlU2VydmVyQ29uZmlnIHtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0b3JhZ2Ugc2VydmVyIGlzIG5vdCBpbml0aWFsaXplZCAodGhpcyBBUEkgb25seSB3b3JrcyBvbiB0aGUgc3RvcmFnZSBzZXJ2ZXIpYCk7XG4gICAgfVxuICAgIHJldHVybiBjb25maWc7XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RvcmFnZVNlcnZlckNvbmZpZ09wdGlvbmFsKCk6IFN0b3JhZ2VTZXJ2ZXJDb25maWcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBjb25maWc7XG59XG5cbmxldCB3cml0ZXNSZWplY3RlZFJlYXNvbjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIHNldFdyaXRlc1JlamVjdGVkUmVhc29uKHJlYXNvbjogc3RyaW5nIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgd3JpdGVzUmVqZWN0ZWRSZWFzb24gPSByZWFzb247XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0V3JpdGVzUmVqZWN0ZWRSZWFzb24oKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gd3JpdGVzUmVqZWN0ZWRSZWFzb247XG59XG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0V3JpdGVzQWxsb3dlZCgpOiB2b2lkIHtcbiAgICBpZiAod3JpdGVzUmVqZWN0ZWRSZWFzb24pIHRocm93IG5ldyBFcnJvcih3cml0ZXNSZWplY3RlZFJlYXNvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlRm9sZGVyKCk6IHN0cmluZyB7XG4gICAgbGV0IGNvbmZpZyA9IGdldFN0b3JhZ2VTZXJ2ZXJDb25maWdPcHRpb25hbCgpO1xuICAgIGlmIChjb25maWcpIHJldHVybiBjb25maWcuZm9sZGVyO1xuICAgIGxldCBmb2xkZXIgPSBnZXRBcmcoXCJmb2xkZXJcIik7XG4gICAgaWYgKCFmb2xkZXIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTdG9yYWdlIHNlcnZlciBpcyBub3QgaW5pdGlhbGl6ZWQgYW5kIHRoZXJlIGlzIG5vIC0tZm9sZGVyIGFyZywgc28gdGhlIHN0b3JhZ2UgZm9sZGVyIGlzIHVua25vd25gKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGgucmVzb2x2ZShmb2xkZXIpO1xufVxuXG5jb25zdCBzeXN0ZW1TdG9yYWdlcyA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPElTdG9yYWdlPHVua25vd24+Pj4oKTtcbmZ1bmN0aW9uIGdldFN5c3RlbVN0b3JhZ2U8VD4obmFtZTogc3RyaW5nKTogUHJvbWlzZTxJU3RvcmFnZTxUPj4ge1xuICAgIGxldCBzdG9yYWdlID0gc3lzdGVtU3RvcmFnZXMuZ2V0KG5hbWUpO1xuICAgIGlmICghc3RvcmFnZSkge1xuICAgICAgICBzdG9yYWdlID0gKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGxldCByb290ID0gYXdhaXQgZ2V0RmlsZVN0b3JhZ2VOZXN0ZWQyKGdldFN0b3JhZ2VGb2xkZXIoKSk7XG4gICAgICAgICAgICBsZXQgc3lzdGVtID0gYXdhaXQgcm9vdC5mb2xkZXIuZ2V0U3RvcmFnZShcInN5c3RlbTJcIik7XG4gICAgICAgICAgICBsZXQgdHJhbnNhY3Rpb25OYW1lID0gXCJzdG9yYWdlXCIgKyBuYW1lWzBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKDEpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBKU09OU3RvcmFnZTx1bmtub3duPihuZXcgVHJhbnNhY3Rpb25TdG9yYWdlKGF3YWl0IHN5c3RlbS5mb2xkZXIuZ2V0U3RvcmFnZShuYW1lKSwgdHJhbnNhY3Rpb25OYW1lKSk7XG4gICAgICAgIH0pKCk7XG4gICAgICAgIHN5c3RlbVN0b3JhZ2VzLnNldChuYW1lLCBzdG9yYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0b3JhZ2UgYXMgUHJvbWlzZTxJU3RvcmFnZTxUPj47XG59XG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJ1c3QoKTogUHJvbWlzZTxJU3RvcmFnZTxUcnVzdFJlY29yZD4+IHtcbiAgICByZXR1cm4gZ2V0U3lzdGVtU3RvcmFnZTxUcnVzdFJlY29yZD4oXCJ0cnVzdFwiKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXF1ZXN0cygpOiBQcm9taXNlPElTdG9yYWdlPEFjY2Vzc1JlcXVlc3RbXT4+IHtcbiAgICByZXR1cm4gZ2V0U3lzdGVtU3RvcmFnZTxBY2Nlc3NSZXF1ZXN0W10+KFwicmVxdWVzdHNcIik7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzZXRUcnVzdGVkTWFjaGluZXMoY29uZmlnOiB7IGFjY291bnQ6IHN0cmluZzsgbWFjaGluZUlkczogc3RyaW5nW10gfSk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCB0cnVzdCA9IGF3YWl0IGdldFRydXN0KCk7XG4gICAgbGV0IHByZWZpeCA9IGAke2NvbmZpZy5hY2NvdW50fXxgO1xuICAgIGxldCBkZXNpcmVkID0gbmV3IFNldChjb25maWcubWFjaGluZUlkcyk7XG4gICAgZm9yIChsZXQga2V5IG9mIGF3YWl0IHRydXN0LmdldEtleXMoKSkge1xuICAgICAgICBpZiAoIWtleS5zdGFydHNXaXRoKHByZWZpeCkpIGNvbnRpbnVlO1xuICAgICAgICBsZXQgbWFjaGluZUlkID0ga2V5LnNsaWNlKHByZWZpeC5sZW5ndGgpO1xuICAgICAgICBpZiAoZGVzaXJlZC5oYXMobWFjaGluZUlkKSkge1xuICAgICAgICAgICAgZGVzaXJlZC5kZWxldGUobWFjaGluZUlkKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZW1vdmluZyB0cnVzdCBmb3IgbWFjaGluZSAke21hY2hpbmVJZH0gb24gYWNjb3VudCAke2NvbmZpZy5hY2NvdW50fWApO1xuICAgICAgICBhd2FpdCB0cnVzdC5yZW1vdmUoa2V5KTtcbiAgICB9XG4gICAgZm9yIChsZXQgbWFjaGluZUlkIG9mIGRlc2lyZWQpIHtcbiAgICAgICAgY29uc29sZS5sb2coYEFkZGluZyB0cnVzdCBmb3IgbWFjaGluZSAke21hY2hpbmVJZH0gb24gYWNjb3VudCAke2NvbmZpZy5hY2NvdW50fWApO1xuICAgICAgICBhd2FpdCB0cnVzdC5zZXQoYCR7cHJlZml4fSR7bWFjaGluZUlkfWAsIHsgYWNjb3VudDogY29uZmlnLmFjY291bnQsIG1hY2hpbmVJZCwgaXA6IFwiXCIsIHRpbWU6IERhdGUubm93KCkgfSk7XG4gICAgfVxufVxuXG5jb25zdCBleHRyYUxpc3RlblBvcnRzID0gbmV3IFNldDxudW1iZXI+KCk7XG5leHBvcnQgZnVuY3Rpb24gYWRkRXh0cmFMaXN0ZW5Qb3J0KHBvcnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGV4dHJhTGlzdGVuUG9ydHMuYWRkKHBvcnQpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUV4dHJhTGlzdGVuUG9ydChwb3J0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBleHRyYUxpc3RlblBvcnRzLmRlbGV0ZShwb3J0KTtcbn1cbi8qKiBXaGV0aGVyIGFkZHJlc3M6cG9ydCBpcyB0aGlzIHNlcnZlciBwcm9jZXNzLiBUaGUgT05FIHNlbGYgdGVzdCAtIGZpbmRTZWxmSW5kZXhlcywgY3JlYXRlQXBpQXJjaGl2ZXMsIGFuZCBTb3VyY2VXcmFwcGVyIGFsbCBjb25zdWx0IGl0LCBzbyBcImlzIHRoaXMgbWVcIiBjYW5ub3QgZGlzYWdyZWUgYmV0d2VlbiB0aGUgcm91dGluZyBwbGFuIGFuZCBjb25uZWN0aW9uIGJ1aWxkaW5nOiBhIFVSTCB0aGF0IGlzIHVzIG9uIGFuIGV4dHJhIGxpc3RlbiBwb3J0IG11c3QgbmV2ZXIgYmVjb21lIGEgbmV0d29yayBjbGllbnQgdG8gb3Vyc2VsdmVzLCB3aGljaCBpcyBob3cgaW5maW5pdGUgc2VsZi1yZXF1ZXN0IGxvb3BzIGZvcm0uICovXG5leHBvcnQgZnVuY3Rpb24gaXNPd25BZGRyZXNzKGFkZHJlc3M6IHN0cmluZywgcG9ydDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgbGV0IGNvbmZpZyA9IGdldFN0b3JhZ2VTZXJ2ZXJDb25maWdPcHRpb25hbCgpO1xuICAgIGlmICghY29uZmlnKSByZXR1cm4gZmFsc2U7XG4gICAgaWYgKGFkZHJlc3MgIT09IGNvbmZpZy5kb21haW4pIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gcG9ydCA9PT0gY29uZmlnLnBvcnQgfHwgZXh0cmFMaXN0ZW5Qb3J0cy5oYXMocG9ydCk7XG59XG4iXX0=
116
- /* _JS_SOURCE_HASH = "6e5d06feec56c3e596e660d3508353e054221a69a745256b395e9fb690d5bf71"; */
116
+ /* _JS_SOURCE_HASH = "f72848b2cee2010e63b13859d8c7d109ab01969f165c8a4d0f186d691fa6d42b"; */
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
3
3
  //exports.SourceWrapper = exports.RETRY_GROWTH = exports.RETRY_MAX_DELAY = exports.RETRY_START_DELAY = void 0;
4
4
  const misc_1 = require("socket-function/src/misc");
@@ -153,7 +153,8 @@ class SourceWrapper {
153
153
  if (this.isConnected())
154
154
  break;
155
155
  if (this.isConnectionProblemWorthReporting()) {
156
- console.error(`Cannot connect to storage ${this.getDebugName()}, retrying in ${Math.round(retryDelay / 1000)}s. ${(_b = e.stack) !== null && _b !== void 0 ? _b : e}`);
156
+ // NOTE: In this case, I'm just showing the message because the call stack is almost always completely uninteresting.
157
+ console.error(`Cannot connect to storage ${this.getDebugName()}, retrying in ${Math.round(retryDelay / 1000)}s. ${(_b = e.message) !== null && _b !== void 0 ? _b : e}`);
157
158
  }
158
159
  }
159
160
  retryDelay = Math.min(exports.RETRY_MAX_DELAY, retryDelay * exports.RETRY_GROWTH);
@@ -292,5 +293,5 @@ class SourceWrapper {
292
293
  }
293
294
  }
294
295
  exports.SourceWrapper = SourceWrapper;
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlV3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZVdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXdEO0FBQ3hELDJEQUFxRDtBQUNyRCxvREFBaUQ7QUFFakQsaURBQXFIO0FBQ3JILHFEQUFrRDtBQUNsRCwrQ0FBNEM7QUFDNUMsNENBQWlEO0FBQ2pELGlEQUE4QztBQUM5Qyw2REFBd0Q7QUFFM0MsUUFBQSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQzdCLFFBQUEsZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLFFBQUEsWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDMUMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUMvQywrSEFBK0g7QUFDL0gsTUFBTSw0QkFBNEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQy9DLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDaEMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRXhCLEtBQUssVUFBVSxpQkFBaUI7SUFDNUIsSUFBSSxDQUFDLElBQUEsYUFBTSxHQUFFO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDNUIsSUFBSSxDQUFDO1FBQ0QsTUFBTSxJQUFBLHFCQUFTLEVBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUNuRCxNQUFNLElBQUEscUJBQVMsRUFBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxXQUFNLENBQUM7UUFDTCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQztBQUVELHNqQkFBc2pCO0FBQ3RqQixNQUFhLGFBQWE7SUFTdEIsWUFDVyxNQUFvQjtJQUMzQixvRkFB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QUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUN6RCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRU0sT0FBTztRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2pCLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQXBRRCxzQ0FvUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc05vZGUsIHNvcnQgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9taXNjXCI7XG5pbXBvcnQgeyBkZWxheSB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2JhdGNoaW5nXCI7XG5pbXBvcnQgeyBnZXRTZWNyZXQgfSBmcm9tIFwiLi4vLi4vbWlzYy9nZXRTZWNyZXRcIjtcbmltcG9ydCB7IElBcmNoaXZlcywgU291cmNlQ29uZmlnLCBSZW1vdGVDb25maWcgfSBmcm9tIFwiLi4vSUFyY2hpdmVzXCI7XG5pbXBvcnQgeyBST1VUSU5HX0ZJTEUsIGdldEJ1Y2tldEJhc2VVcmwsIHBhcnNlSG9zdGVkVXJsLCBwYXJzZUJhY2tibGF6ZVVybCwgcGFyc2VSb3V0aW5nRGF0YSB9IGZyb20gXCIuL3JlbW90ZUNvbmZpZ1wiO1xuaW1wb3J0IHsgQXJjaGl2ZXNSZW1vdGUgfSBmcm9tIFwiLi9BcmNoaXZlc1JlbW90ZVwiO1xuaW1wb3J0IHsgQXJjaGl2ZXNVcmwgfSBmcm9tIFwiLi9BcmNoaXZlc1VybFwiO1xuaW1wb3J0IHsgQXJjaGl2ZXNCYWNrYmxhemUgfSBmcm9tIFwiLi4vYmFja2JsYXplXCI7XG5pbXBvcnQgeyBpc093bkFkZHJlc3MgfSBmcm9tIFwiLi9zZXJ2ZXJDb25maWdcIjtcbmltcG9ydCB7IGdldExvY2FsQXJjaGl2ZXMgfSBmcm9tIFwiLi9zdG9yYWdlU2VydmVyU3RhdGVcIjtcblxuZXhwb3J0IGNvbnN0IFJFVFJZX1NUQVJUX0RFTEFZID0gMiAqIDEwMDA7XG5leHBvcnQgY29uc3QgUkVUUllfTUFYX0RFTEFZID0gNSAqIDYwICogMTAwMDtcbmV4cG9ydCBjb25zdCBSRVRSWV9HUk9XVEggPSAxLjU7XG5jb25zdCBBQ0NFU1NfUkVDSEVDS19JTlRFUlZBTCA9IDYwICogMTAwMDtcbmNvbnN0IFNPVVJDRV9GQUlMVVJFX0NPT0xET1dOID0gMzAgKiA2MCAqIDEwMDA7XG4vLyBBZGRlZCB0byBhIGRpc2Nvbm5lY3RlZCBzb3VyY2UncyBsYXRlbmN5OiBpdCBzdGlsbCBzb3J0cyBhbmQgY2FuIHN0aWxsIGJlIHBpY2tlZCwgaXQganVzdCBsYW5kcyBhZnRlciBldmVyeSBjb25uZWN0ZWQgc291cmNlXG5jb25zdCBESVNDT05ORUNURURfTEFURU5DWV9QRU5BTFRZID0gMTAgKiAxMDAwO1xuY29uc3QgUElOR19JTlRFUlZBTCA9IDYwICogMTAwMDtcbmNvbnN0IFBJTkdfSElTVE9SWSA9IDEwO1xuXG5hc3luYyBmdW5jdGlvbiBoYXNCYWNrYmxhemVDcmVkcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIWlzTm9kZSgpKSByZXR1cm4gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZ2V0U2VjcmV0KFwiYmFja2JsYXplLmpzb24uYXBwbGljYXRpb25LZXlJZFwiKTtcbiAgICAgICAgYXdhaXQgZ2V0U2VjcmV0KFwiYmFja2JsYXplLmpzb24uYXBwbGljYXRpb25LZXlcIik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vLyBPbmUgc291cmNlIG9mIGEgUmVtb3RlQ29uZmlnLCBhcyBhIHVzYWJsZSBJQXJjaGl2ZXMuIFJlYWRzIGZhbGwgYmFjayB0byB0aGUgcHVibGljLVVSTCBmb3JtIHdoZW4gd2UgZG9uJ3QgaGF2ZSBBUEkgYWNjZXNzOyB3cml0ZXMgYWx3YXlzIGF0dGVtcHQgdGhlIEFQSSAoc28gYWNjZXNzIGdyYW50ZWQgbGF0ZXIgaXMgcGlja2VkIHVwIG9uIHRoZSBuZXh0IHdyaXRlKS4gV2hlbiBhIGNhbGwgZmFpbHMgd2hpbGUgdGhlIFdlYlNvY2tldCBpcyBkb3duLCBub3RlRmFpbHVyZSBzdGFydHMgYSBiYWNrZ3JvdW5kIHJlY29ubmVjdCBsb29wIHdpdGggYSByYW1waW5nIGRlbGF5IC0gaXQgbmV2ZXIgYmxvY2tzIGNhbGxlcnMsIGl0IGp1c3Qga2VlcHMgdHJ5aW5nIHNvIHRoZSBjb25uZWN0aW9uIGV2ZW50dWFsbHkgY29tZXMgYmFjay4gU291cmNlcyB3aXRob3V0IGEgV2ViU29ja2V0IChiYWNrYmxhemUsIFVSTC1mb3JtLCBvdXIgb3duIGxvY2FsIHNlcnZlcikgcmVwb3J0IGFsd2F5cy1jb25uZWN0ZWQ6IHRoZXkncmUgbGFzdC1yZXNvcnQgc291cmNlcyB3aGVyZSB0aHJvd2luZyBpcyBmaW5lLlxuZXhwb3J0IGNsYXNzIFNvdXJjZVdyYXBwZXIge1xuICAgIHB1YmxpYyBhcGk/OiBJQXJjaGl2ZXM7XG4gICAgcHVibGljIHVybD86IEFyY2hpdmVzVXJsO1xuICAgIHB1YmxpYyB3cml0ZUJsb2NrZWQ/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZW1vdGU/OiBBcmNoaXZlc1JlbW90ZTtcbiAgICBwcml2YXRlIGRpc3Bvc2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSByZWNvbm5lY3RSdW5uaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBhY2Nlc3NDYWNoZT86IHsgaGFzQWNjZXNzOiBib29sZWFuOyB0aW1lOiBudW1iZXIgfTtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBjb25maWc6IFNvdXJjZUNvbmZpZyxcbiAgICAgICAgLy8gZmFsc2UgZm9yIHNob3J0LWxpdmVkIHByb2JlIGluc3RhbmNlcywgd2hpY2ggbXVzdCBuZXZlciBsZWF2ZSBhIHJldHJ5IGxvb3AgYmVoaW5kXG4gICAgICAgIHByaXZhdGUgYmFja2dyb3VuZDogYm9vbGVhbixcbiAgICApIHsgfVxuXG4gICAgLyoqIENvbmZpZyB1cGRhdGVzIHJvdXRpbmVseSBqdXN0IG1vdmUgYSBzb3VyY2UncyB2YWxpZCB3aW5kb3cgKHRoZSBsYXN0IHdpbmRvdyBleHRlbmRzIGZvcmV2ZXIsIHRoZW4gZ2V0cyByZWR1Y2VkIHdoZW4gYSBuZXcgZW50cnkgaXMgYXBwZW5kZWQpLiBUaGUgd3JhcHBlciBzdXJ2aXZlcyB0aGF0OiBvbmx5IHRoZSB3aW5kb3cgY2hhbmdlcywga2VlcGluZyB0aGUgY29ubmVjdGlvbiwgcGluZ3MsIGFuZCBsYXRlbmN5IGhpc3RvcnkuICovXG4gICAgcHVibGljIHVwZGF0ZVZhbGlkV2luZG93KHZhbGlkV2luZG93OiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XG4gICAgICAgIGxldCBvbGQgPSB0aGlzLmNvbmZpZy52YWxpZFdpbmRvdztcbiAgICAgICAgaWYgKG9sZFswXSA9PT0gdmFsaWRXaW5kb3dbMF0gJiYgb2xkWzFdID09PSB2YWxpZFdpbmRvd1sxXSkgcmV0dXJuO1xuICAgICAgICBjb25zb2xlLmxvZyhgVmFsaWQgd2luZG93IGNoYW5nZWQgZm9yICR7dGhpcy5nZXREZWJ1Z05hbWUoKX06IFske29sZC5qb2luKFwiLCBcIil9XSAtPiBbJHt2YWxpZFdpbmRvdy5qb2luKFwiLCBcIil9XWApO1xuICAgICAgICB0aGlzLmNvbmZpZy52YWxpZFdpbmRvdyA9IHZhbGlkV2luZG93O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlKGNvbmZpZzogU291cmNlQ29uZmlnLCBvcHRpb25zPzogeyBiYWNrZ3JvdW5kPzogYm9vbGVhbjsgcmVhZE9ubHk/OiBib29sZWFuIH0pOiBQcm9taXNlPFNvdXJjZVdyYXBwZXI+IHtcbiAgICAgICAgbGV0IHdyYXBwZXIgPSBuZXcgU291cmNlV3JhcHBlcihjb25maWcsIG9wdGlvbnM/LmJhY2tncm91bmQgIT09IGZhbHNlKTtcbiAgICAgICAgLy8gQSBwdWJsaWMgYnVja2V0IHNlcnZlcyBldmVyeXRoaW5nIHdlIGNhbiByZWFkIG92ZXIgcGxhaW4gSFRUUFMgR0VUcywgc28gdGhlcmUgaXMgbm8gcmVhc29uIHRvIG9wZW4gYW4gQVBJIGNvbm5lY3Rpb24gKHdoaWNoIGNvc3RzIGEgV2ViU29ja2V0LCBhbmQgYW4gYWNjZXNzIGdyYW50IHdlIGxpa2VseSBkb24ndCBoYXZlKSBqdXN0IHRvIHJlYWQgaXRcbiAgICAgICAgaWYgKG9wdGlvbnM/LnJlYWRPbmx5ICYmIGNvbmZpZy5wdWJsaWMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICB3cmFwcGVyLnVybCA9IG5ldyBBcmNoaXZlc1VybChnZXRCdWNrZXRCYXNlVXJsKGNvbmZpZy51cmwpKTtcbiAgICAgICAgICAgIHdyYXBwZXIud3JpdGVCbG9ja2VkID0gYCR7Y29uZmlnLnVybH0gaXMgYmVpbmcgcmVhZCBpbiByZWFkLW9ubHkgbW9kZSAocHVibGljIGJ1Y2tldCwgYW5kIHdlIGFyZSBub3QgaW4gbm9kZSksIHNvIGl0IGlzIGRvd25sb2FkZWQgb3ZlciBwbGFpbiBVUkxzIGFuZCBjYW5ub3QgYmUgd3JpdHRlbi4gUGFzcyBkaXJlY3RDb25uZWN0IHRvIGNyZWF0ZUFyY2hpdmVzIHRvIHVzZSB0aGUgQVBJIGluc3RlYWQuYDtcbiAgICAgICAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcudHlwZSA9PT0gXCJiYWNrYmxhemVcIikge1xuICAgICAgICAgICAgaWYgKGF3YWl0IGhhc0JhY2tibGF6ZUNyZWRzKCkpIHtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwaSA9IG5ldyBBcmNoaXZlc0JhY2tibGF6ZSh7IGJ1Y2tldE5hbWU6IHBhcnNlQmFja2JsYXplVXJsKGNvbmZpZy51cmwpLmJ1Y2tldE5hbWUsIHB1YmxpYzogY29uZmlnLnB1YmxpYywgaW1tdXRhYmxlOiBjb25maWcuaW1tdXRhYmxlLCBhbGxvd2VkT3JpZ2luczogY29uZmlnLmFsbG93ZWRPcmlnaW5zIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vZGUoKSkge1xuICAgICAgICAgICAgICAgIHdyYXBwZXIud3JpdGVCbG9ja2VkID0gYE5vIGJhY2tibGF6ZSBjcmVkZW50aWFscyBmb3IgJHtjb25maWcudXJsfS4gUHJvdmlkZSBiYWNrYmxhemUuanNvbi5hcHBsaWNhdGlvbktleUlkIGFuZCBiYWNrYmxhemUuanNvbi5hcHBsaWNhdGlvbktleSB2aWEgZ2V0U2VjcmV0IHRvIGVuYWJsZSBBUEkgYWNjZXNzLmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdyYXBwZXIud3JpdGVCbG9ja2VkID0gYEJyb3dzZXJzIGNhbm5vdCB3cml0ZSB0byBiYWNrYmxhemUgKGJ1Y2tldCAke2NvbmZpZy51cmx9KWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXdyYXBwZXIuYXBpICYmIGNvbmZpZy5wdWJsaWMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlci51cmwgPSBuZXcgQXJjaGl2ZXNVcmwoZ2V0QnVja2V0QmFzZVVybChjb25maWcudXJsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyc2VkID0gcGFyc2VIb3N0ZWRVcmwoY29uZmlnLnVybCk7XG4gICAgICAgIGlmIChpc05vZGUoKSAmJiBpc093bkFkZHJlc3MocGFyc2VkLmFkZHJlc3MsIHBhcnNlZC5wb3J0KSkge1xuICAgICAgICAgICAgLy8gQSBidWNrZXQgaG9zdGVkIGJ5IG91ciBvd24gcHJvY2VzcyAtIHVzZSBpdCBkaXJlY3RseSBpbnN0ZWFkIG9mIGNhbGxpbmcgb3Vyc2VsdmVzXG4gICAgICAgICAgICB3cmFwcGVyLmFwaSA9IGdldExvY2FsQXJjaGl2ZXMocGFyc2VkLmFjY291bnQsIHBhcnNlZC5idWNrZXROYW1lLCBjb25maWcpO1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgICAgIH1cbiAgICAgICAgd3JhcHBlci5yZW1vdGUgPSBuZXcgQXJjaGl2ZXNSZW1vdGUoeyB1cmw6IGNvbmZpZy51cmwsIHdhaXRGb3JBY2Nlc3M6IGZhbHNlLCBzb3VyY2VDb25maWc6IGNvbmZpZyB9KTtcbiAgICAgICAgd3JhcHBlci5hcGkgPSB3cmFwcGVyLnJlbW90ZTtcbiAgICAgICAgaWYgKGNvbmZpZy5wdWJsaWMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICB3cmFwcGVyLnVybCA9IG5ldyBBcmNoaXZlc1VybChnZXRCdWNrZXRCYXNlVXJsKGNvbmZpZy51cmwpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVidWdOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIC8vIFRoZSBzYW1lIFVSTCBjYW4gYXBwZWFyIGFzIG11bHRpcGxlIHNvdXJjZXMgKGRpZmZlcmVudCByb3V0ZXMgLyB2YWxpZCB3aW5kb3dzKSwgc28gdGhlIGRpc3Rpbmd1aXNoaW5nIHNsaWNlIGlzIHBhcnQgb2YgdGhlIG5hbWVcbiAgICAgICAgbGV0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBsZXQgcm91dGUgPSB0aGlzLmNvbmZpZy5yb3V0ZTtcbiAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKGByb3V0ZSBbJHtyb3V0ZVswXX0sICR7cm91dGVbMV19KWApO1xuICAgICAgICB9XG4gICAgICAgIGxldCBbc3RhcnQsIGVuZF0gPSB0aGlzLmNvbmZpZy52YWxpZFdpbmRvdztcbiAgICAgICAgaWYgKHN0YXJ0ICE9PSAwIHx8IGVuZCAhPT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcbiAgICAgICAgICAgIGxldCBzdGFydFRleHQgPSBzdGFydCA9PT0gMCAmJiBcIjBcIiB8fCBuZXcgRGF0ZShzdGFydCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIGxldCBlbmRUZXh0ID0gZW5kID09PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiAmJiBcImZvcmV2ZXJcIiB8fCBuZXcgRGF0ZShlbmQpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKGB2YWxpZFdpbmRvdyBbJHtzdGFydFRleHR9LCAke2VuZFRleHR9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgc291cmNlICR7dGhpcy5jb25maWcudXJsfSR7cGFydHMubGVuZ3RoICYmIGAgKCR7cGFydHMuam9pbihcIiwgXCIpfSlgIHx8IFwiXCJ9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb25uZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5yZW1vdGUpIHJldHVybiB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5yZW1vdGUuaXNDb25uZWN0ZWQoKTtcbiAgICB9XG5cbiAgICAvKiogQSBzb3VyY2Ugd2hvc2Ugd2luZG93IGhhcyBwYXNzZWQgaXMgbmV2ZXIgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gKHNlZSB0aGUgd2luZG93IGNoZWNrcyBpbiBBcmNoaXZlc0NoYWluKSwgYW5kIGFuIGludGVybWVkaWF0ZSBvbmx5IGV4aXN0cyBmb3IgdGhlIG1pbnV0ZXMgb2YgYSBkZXBsb3kgc3dpdGNob3ZlciAtIG9uIGVpdGhlciwgYmVpbmcgdW5yZWFjaGFibGUgaXMgZXhwZWN0ZWQsIG5vdCBhIHByb2JsZW0gdG8gcmVwb3J0LiAqL1xuICAgIHByaXZhdGUgaXNDb25uZWN0aW9uUHJvYmxlbVdvcnRoUmVwb3J0aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5jb25maWcuaW50ZXJtZWRpYXRlKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy52YWxpZFdpbmRvd1sxXSA+IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb29sZG93blVudGlsID0gMDtcbiAgICAvKiogQSBzb3VyY2UgdGhhdCBmYWlsZWQgd2hpbGUgZGlzY29ubmVjdGVkIGlzIHNraXBwZWQgYnkgY2FsbGVycyBmb3IgU09VUkNFX0ZBSUxVUkVfQ09PTERPV04gLSBidXQgb25seSB3aGlsZSBzb21lIG90aGVyIHNvdXJjZSBjYW4gc2VydmUgdGhlIHJlcXVlc3QuIFdoZW4gbm90aGluZyBlbHNlIGlzIHVzYWJsZSwgY2FsbGVycyBpZ25vcmUgdGhpcyBhbmQgdHJ5IGl0IGFueXdheSwgc28gYSB0b3RhbCBvdXRhZ2Ugc3RpbGwgcmV0cmllcyBldmVyeSB0aW1lLiAqL1xuICAgIHB1YmxpYyBpc09uQ29vbGRvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBEYXRlLm5vdygpIDwgdGhpcy5jb29sZG93blVudGlsO1xuICAgIH1cblxuICAgIC8qKiBDYWxsIGFmdGVyIGEgcmVxdWVzdCBmYWlsZWQgd2hpbGUgaXNDb25uZWN0ZWQoKSB3YXMgZmFsc2U6IHB1dHMgdGhlIHNvdXJjZSBvbiBjb29sZG93biBhbmQgc3RhcnRzIChpZiBub3QgYWxyZWFkeSBydW5uaW5nKSB0aGUgYmFja2dyb3VuZCByZWNvbm5lY3QgbG9vcC4gTmV2ZXIgYmxvY2tzIC0gdGhlIGZhaWxlZCByZXF1ZXN0IHN0aWxsIHRocm93cy4gKi9cbiAgICBwdWJsaWMgbm90ZUZhaWx1cmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc3Bvc2VkIHx8IHRoaXMuaXNDb25uZWN0ZWQoKSkgcmV0dXJuO1xuICAgICAgICBsZXQgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKG5vdyA+PSB0aGlzLmNvb2xkb3duVW50aWwgJiYgdGhpcy5pc0Nvbm5lY3Rpb25Qcm9ibGVtV29ydGhSZXBvcnRpbmcoKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNvbm5lY3QgdG8gc3RvcmFnZSAke3RoaXMuZ2V0RGVidWdOYW1lKCl9OyBza2lwcGluZyBpdCB1bnRpbCAke25ldyBEYXRlKG5vdyArIFNPVVJDRV9GQUlMVVJFX0NPT0xET1dOKS50b0lTT1N0cmluZygpfSAobm93ICR7bmV3IERhdGUobm93KS50b0lTT1N0cmluZygpfSkgdW5sZXNzIG5vIG90aGVyIHNvdXJjZSBjYW4gc2VydmUgdGhlIHJlcXVlc3RgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvb2xkb3duVW50aWwgPSBub3cgKyBTT1VSQ0VfRkFJTFVSRV9DT09MRE9XTjtcbiAgICAgICAgaWYgKCF0aGlzLmJhY2tncm91bmQgfHwgdGhpcy5yZWNvbm5lY3RSdW5uaW5nKSByZXR1cm47XG4gICAgICAgIHRoaXMucmVjb25uZWN0UnVubmluZyA9IHRydWU7XG4gICAgICAgIHZvaWQgdGhpcy5yZWNvbm5lY3RMb29wKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyByZWNvbm5lY3RMb29wKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBsZXQgcmV0cnlEZWxheSA9IFJFVFJZX1NUQVJUX0RFTEFZO1xuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgYXdhaXQgZGVsYXkocmV0cnlEZWxheSk7XG4gICAgICAgICAgICBpZiAodGhpcy5kaXNwb3NlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVjb25uZWN0UnVubmluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkKCkpIGJyZWFrO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAvLyBBbnkgY2FsbCByZS1lc3RhYmxpc2hlcyB0aGUgV2ViU29ja2V0OyB0aGUgcmVzdWx0IGRvZXNuJ3QgbWF0dGVyXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5yZW1vdGU/LmdldEluZm8oUk9VVElOR19GSUxFKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAvLyBFdmVuIGEgZmFpbGluZyBjYWxsIChlLmcuIGFjY2VzcyBkZW5pZWQpIHByb3ZlcyB0aGUgY29ubmVjdGlvbiBpcyBiYWNrXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSkgYnJlYWs7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0aW9uUHJvYmxlbVdvcnRoUmVwb3J0aW5nKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNvbm5lY3QgdG8gc3RvcmFnZSAke3RoaXMuZ2V0RGVidWdOYW1lKCl9LCByZXRyeWluZyBpbiAke01hdGgucm91bmQocmV0cnlEZWxheSAvIDEwMDApfXMuICR7KGUgYXMgRXJyb3IpLnN0YWNrID8/IGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0cnlEZWxheSA9IE1hdGgubWluKFJFVFJZX01BWF9ERUxBWSwgcmV0cnlEZWxheSAqIFJFVFJZX0dST1dUSCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWNvbm5lY3RSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY29vbGRvd25VbnRpbCA9IDA7XG4gICAgICAgIGNvbnNvbGUubG9nKGBSZWNvbm5lY3RlZCB0byBzdG9yYWdlICR7dGhpcy5nZXREZWJ1Z05hbWUoKX0sIGNsZWFyaW5nIGl0cyBjb29sZG93bmApO1xuICAgIH1cblxuICAgIC8vIEZvciBob3N0ZWQgc291cmNlczogY2FjaGVkIGFjY2VzcyBjaGVjaywgc28gcmVhZHMga25vdyB3aGV0aGVyIHRvIHVzZSB0aGUgQVBJIG9yIHRoZSBwdWJsaWMgVVJMIGZvcm0uIEFjY2Vzcywgb25jZSBzZWVuLCBpcyBhc3N1bWVkIHRvIHN0aWNrOyBuby1hY2Nlc3MgaXMgcmUtY2hlY2tlZCBwZXJpb2RpY2FsbHkgKHRoZSBjaGVjayBhbHNvIHJlZ2lzdGVycyBvdXIgYWNjZXNzIHJlcXVlc3Qgc2VydmVyLXNpZGUsIHdoaWNoIGxvZ3MgdGhlIGdyYW50IGxpbmspLlxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tBY2Nlc3MoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIGxldCByZW1vdGUgPSB0aGlzLnJlbW90ZTtcbiAgICAgICAgaWYgKCFyZW1vdGUpIHJldHVybiAhIXRoaXMuYXBpO1xuICAgICAgICBsZXQgY2FjaGVkID0gdGhpcy5hY2Nlc3NDYWNoZTtcbiAgICAgICAgaWYgKGNhY2hlZCAmJiAoY2FjaGVkLmhhc0FjY2VzcyB8fCBEYXRlLm5vdygpIC0gY2FjaGVkLnRpbWUgPCBBQ0NFU1NfUkVDSEVDS19JTlRFUlZBTCkpIHtcbiAgICAgICAgICAgIHJldHVybiBjYWNoZWQuaGFzQWNjZXNzO1xuICAgICAgICB9XG4gICAgICAgIGxldCB3YWl0aW5nID0gYXdhaXQgcmVtb3RlLndhaXRpbmdGb3JBY2Nlc3MoKTtcbiAgICAgICAgdGhpcy5hY2Nlc3NDYWNoZSA9IHsgaGFzQWNjZXNzOiAhd2FpdGluZywgdGltZTogRGF0ZS5ub3coKSB9O1xuICAgICAgICBpZiAod2FpdGluZykge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBObyBhY2Nlc3MgdG8gc3RvcmFnZSBhY2NvdW50IGZvciAke3RoaXMuY29uZmlnLnVybH0gKG91ciBtYWNoaW5lICR7d2FpdGluZy5tYWNoaW5lSWR9LCBpcCAke3dhaXRpbmcuaXB9KS4gUmVhZGluZyB2aWEgdGhlIHB1YmxpYyBVUkwgZm9ybSB3aGVyZSBwb3NzaWJsZS4gR3JhbnQgYWNjZXNzIGF0ICR7d2FpdGluZy5saW5rfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhd2FpdGluZztcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgcmVhZDxUPihydW46IChhcmNoaXZlczogSUFyY2hpdmVzKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmICh0aGlzLmFwaSAmJiBhd2FpdCB0aGlzLmNoZWNrQWNjZXNzKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBydW4odGhpcy5hcGkpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnVybCkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJ1bih0aGlzLnVybCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXBpKSB7XG4gICAgICAgICAgICAvLyBObyBwdWJsaWMgVVJMIGZvcm0gLSBsZXQgdGhlIEFQSSBjYWxsIHRocm93IGl0cyBvd24gZXJyb3IgKHdoaWNoIGluY2x1ZGVzIHRoZSBhY2Nlc3MgaW5zdHJ1Y3Rpb25zIGZvciBob3N0ZWQgc291cmNlcylcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBydW4odGhpcy5hcGkpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU291cmNlICR7dGhpcy5jb25maWcudXJsfSBoYXMgbm8gQVBJIGFjY2VzcyBhbmQgbm8gcHVibGljIFVSTCBmb3JtIChwdWJsaWM6IGZhbHNlKWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWFkUm91dGluZ0NvbmZpZygpOiBQcm9taXNlPFJlbW90ZUNvbmZpZyB8IHVuZGVmaW5lZD4ge1xuICAgICAgICBsZXQgZGF0YSA9IGF3YWl0IHRoaXMucmVhZChhcmNoaXZlcyA9PiBhcmNoaXZlcy5nZXQoUk9VVElOR19GSUxFKSk7XG4gICAgICAgIHJldHVybiBkYXRhICYmIHBhcnNlUm91dGluZ0RhdGEoZGF0YSkgfHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBoYXNXcml0ZUFjY2VzcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgaWYgKHRoaXMud3JpdGVCbG9ja2VkIHx8ICF0aGlzLmFwaSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5hcGkuaGFzV3JpdGVBY2Nlc3MoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBpbmdzOiBudW1iZXJbXSA9IFtdO1xuICAgIHByaXZhdGUgcGluZ1RpbWVyOiBSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4gfCB1bmRlZmluZWQ7XG4gICAgcHJpdmF0ZSBsb2dnZWRDb25uZWN0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBTdGFydHMgbWVhc3VyaW5nIHRoaXMgc291cmNlJ3MgbGF0ZW5jeSwgd2hpY2ggZGVjaWRlcyB3aGljaCBob3N0cyByZWFkcyBhbmQgdmFyaWFibGUtc2hhcmQgd3JpdGVzIHByZWZlci4gSG9zdGVkIHJlbW90ZXMgcGluZyBvdmVyIHRoZWlyIEFQSSBjb25uZWN0aW9uOyBVUkwtb25seSBzb3VyY2VzIChyZWFkLW9ubHkgbW9kZSwgYmFja2JsYXplIHdpdGhvdXQgY3JlZGVudGlhbHMpIHByb2JlIG92ZXIgcGxhaW4gSFRUUFMgaW5zdGVhZCAtIHRoZSBjbGllbnQgTkVFRFMgdGhlaXIgbGF0ZW5jeSB0b28sIG9yIGl0IGNhbm5vdCByYW5rIHRoZSBob3N0cyBpdCByZWFkcyBmcm9tLiBPdXIgb3duIGxvY2FsIHNlcnZlciBjb3VudHMgYXMgMDsgb25seSBzb3VyY2VzIHdpdGggbmVpdGhlciBmb3JtIHN0YXkgSW5maW5pdHkuICovXG4gICAgcHVibGljIHN0YXJ0UGluZ2luZygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGluZ1RpbWVyIHx8IHRoaXMuZGlzcG9zZWQpIHJldHVybjtcbiAgICAgICAgLy8gQSBzb3VyY2Ugd2hvc2Ugd2luZG93IGhhcyBwYXNzZWQgbmV2ZXIgcmVjZWl2ZXMgcmVhZHMgb3Igd3JpdGVzIC0gbWVhc3VyaW5nIGl0IGlzIHBvaW50bGVzcyB0cmFmZmljXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy52YWxpZFdpbmRvd1sxXSA8PSBEYXRlLm5vdygpKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHJlbW90ZSA9IHRoaXMucmVtb3RlO1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLnVybDtcbiAgICAgICAgbGV0IHByb2JlOiAoKSA9PiBQcm9taXNlPHZvaWQ+O1xuICAgICAgICBpZiAocmVtb3RlKSB7XG4gICAgICAgICAgICBwcm9iZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBhd2FpdCByZW1vdGUucGluZygpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICh1cmwpIHtcbiAgICAgICAgICAgIC8vIEEgMS1ieXRlIHJhbmdlZCByZWFkIG9mIHRoZSByb3V0aW5nIGZpbGUgdHJhbnNmZXJzIGVzc2VudGlhbGx5IG5vdGhpbmcsIGFuZCB1bmxpa2UgYW4gZXhwbGljaXQgT1BUSU9OUyByZXF1ZXN0IGl0IG5lZWRzIG5vIENPUlMgcHJlZmxpZ2h0IChiYWNrYmxhemUncyBDT1JTIHJ1bGVzIG9ubHkgYWxsb3cgZG93bmxvYWQgb3BlcmF0aW9ucykgLSBzbyBpdCB3b3JrcyBmcm9tIHRoZSBicm93c2VyLCB3aGljaCBpcyBleGFjdGx5IHdoZXJlIFVSTC1vbmx5IG1vZGUgcnVuc1xuICAgICAgICAgICAgcHJvYmUgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdXJsLmdldEluZm8oUk9VVElOR19GSUxFKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1lYXN1cmUgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBhd2FpdCBwcm9iZSgpO1xuICAgICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAgICAgLy8gQSBmYWlsZWQgcGluZyBpcyBhbHNvIG91ciBlYXJsaWVzdCBkb3duLWRldGVjdGlvblxuICAgICAgICAgICAgICAgIHRoaXMubm90ZUZhaWx1cmUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMubG9nZ2VkQ29ubmVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZWRDb25uZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDb25uZWN0ZWQgdG8gc3RvcmFnZSAke3RoaXMuZ2V0RGVidWdOYW1lKCl9ICgke0RhdGUubm93KCkgLSBzdGFydH1tcylgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGluZ3MucHVzaChEYXRlLm5vdygpIC0gc3RhcnQpO1xuICAgICAgICAgICAgaWYgKHRoaXMucGluZ3MubGVuZ3RoID4gUElOR19ISVNUT1JZKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5waW5ncy5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB2b2lkIG1lYXN1cmUoKTtcbiAgICAgICAgdGhpcy5waW5nVGltZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgICB2b2lkIG1lYXN1cmUoKTtcbiAgICAgICAgfSwgUElOR19JTlRFUlZBTCk7XG4gICAgICAgICh0aGlzLnBpbmdUaW1lciBhcyB7IHVucmVmPzogKCkgPT4gdm9pZCB9KS51bnJlZj8uKCk7XG4gICAgfVxuXG4gICAgLyoqIFNlZWRzIHRoZSBsYXRlbmN5IGVzdGltYXRlIGJlZm9yZSB0aGUgZmlyc3QgcGluZyBsYW5kcyAoZS5nLiBmcm9tIHRoZSBpbml0aWFsIHJvdXRpbmcgZmV0Y2gpLCBzbyB2YXJpYWJsZS1zaGFyZCBwaWNraW5nIGhhcyBzb21ldGhpbmcgaW1tZWRpYXRlbHkuIFJlYWwgcGluZ3MgdGFrZSBvdmVyIGZyb20gdGhlIGZpcnN0IG1lYXN1cmVtZW50IG9uLiAqL1xuICAgIHB1YmxpYyBzZWVkTGF0ZW5jeShtczogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnBpbmdzLmxlbmd0aCkgcmV0dXJuO1xuICAgICAgICB0aGlzLnBpbmdzLnB1c2gobXMpO1xuICAgIH1cblxuICAgIC8qKiBNZWRpYW4gb2YgdGhlIHJlY2VudCBwaW5ncyAoQVBJIG9yIFVSTC1mb3JtLCB3aGljaGV2ZXIgdGhpcyBzb3VyY2UgbWVhc3VyZXMpLCBwbHVzIERJU0NPTk5FQ1RFRF9MQVRFTkNZX1BFTkFMVFkgd2hpbGUgdGhlIHNvdXJjZSBpcyBkaXNjb25uZWN0ZWQgLSBzbyBhIGRvd24gc291cmNlIHN0aWxsIHNvcnRzIGFuZCBjYW4gc3RpbGwgYmUgcGlja2VkLCBqdXN0IGFmdGVyIGV2ZXJ5IGNvbm5lY3RlZCBvbmUuIFNvdXJjZXMgd2l0aCBubyBtZWFzdXJlbWVudHMgeWV0IHNvcnQgbGFzdCAoSW5maW5pdHkpLCBleGNlcHQgb3VyIG93biBpbi1wcm9jZXNzIHNlcnZlciwgd2hpY2ggaXMgdGhlIGJlc3QgcG9zc2libGUgdGFyZ2V0ICgwKS4gKi9cbiAgICBwdWJsaWMgZ2V0TGF0ZW5jeSgpOiBudW1iZXIge1xuICAgICAgICAvLyBPdXIgb3duIGluLXByb2Nlc3Mgc2VydmVyOiBob3N0ZWQgKHR5cGUgcmVtb3RlKSwgYXBpIHByZXNlbnQsIGJ1dCBubyByZW1vdGUgY29ubmVjdGlvbiAtIGl0IElTIHVzXG4gICAgICAgIGlmICghdGhpcy5yZW1vdGUgJiYgdGhpcy5jb25maWcudHlwZSA9PT0gXCJyZW1vdGVcIiAmJiB0aGlzLmFwaSkgcmV0dXJuIDA7XG4gICAgICAgIGlmICghdGhpcy5waW5ncy5sZW5ndGgpIHJldHVybiBJbmZpbml0eTtcbiAgICAgICAgbGV0IHNvcnRlZCA9IFsuLi50aGlzLnBpbmdzXTtcbiAgICAgICAgc29ydChzb3J0ZWQsIHggPT4geCk7XG4gICAgICAgIGxldCBtZWRpYW4gPSBzb3J0ZWRbTWF0aC5mbG9vcihzb3J0ZWQubGVuZ3RoIC8gMildO1xuICAgICAgICBpZiAoIXRoaXMuaXNDb25uZWN0ZWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIG1lZGlhbiArIERJU0NPTk5FQ1RFRF9MQVRFTkNZX1BFTkFMVFk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1lZGlhbjtcbiAgICB9XG5cbiAgICAvKiogV3JpdGVzIGFsd2F5cyBnbyB0aHJvdWdoIHRoZSBBUEksIHNvIGEgcGVybWlzc2lvbiBlcnJvciB0aHJvd3MgdG8gdGhlIGNhbGxlciBvbiBldmVyeSB3cml0ZSAoYW5kIGFjY2VzcyBncmFudGVkIGluIHRoZSBtZWFudGltZSBpcyBwaWNrZWQgdXAgYXV0b21hdGljYWxseSkuICovXG4gICAgcHVibGljIGFzeW5jIHdyaXRlPFQ+KHJ1bjogKGFyY2hpdmVzOiBJQXJjaGl2ZXMpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMud3JpdGVCbG9ja2VkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy53cml0ZUJsb2NrZWQpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBhcGkgPSB0aGlzLmFwaTtcbiAgICAgICAgaWYgKCFhcGkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU291cmNlICR7dGhpcy5jb25maWcudXJsfSBoYXMgbm8gQVBJIGFjY2Vzcywgc28gaXQgY2Fubm90IGFjY2VwdCB3cml0ZXNgKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgcnVuKGFwaSk7XG4gICAgICAgIHRoaXMuYWNjZXNzQ2FjaGUgPSB7IGhhc0FjY2VzczogdHJ1ZSwgdGltZTogRGF0ZS5ub3coKSB9O1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc3Bvc2VkID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMucGluZ1RpbWVyKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucGluZ1RpbWVyKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
296
- /* _JS_SOURCE_HASH = "7a8ac253e478685af9f7367a69ce95e422962d92704ebf3b119e453fc0f44133"; */
296
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlV3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZVdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXdEO0FBQ3hELDJEQUFxRDtBQUNyRCxvREFBaUQ7QUFFakQsaURBQXFIO0FBQ3JILHFEQUFrRDtBQUNsRCwrQ0FBNEM7QUFDNUMsNENBQWlEO0FBQ2pELGlEQUE4QztBQUM5Qyw2REFBd0Q7QUFFM0MsUUFBQSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQzdCLFFBQUEsZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLFFBQUEsWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDMUMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUMvQywrSEFBK0g7QUFDL0gsTUFBTSw0QkFBNEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQy9DLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDaEMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRXhCLEtBQUssVUFBVSxpQkFBaUI7SUFDNUIsSUFBSSxDQUFDLElBQUEsYUFBTSxHQUFFO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDNUIsSUFBSSxDQUFDO1FBQ0QsTUFBTSxJQUFBLHFCQUFTLEVBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUNuRCxNQUFNLElBQUEscUJBQVMsRUFBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxXQUFNLENBQUM7UUFDTCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQztBQUVELHNqQkFBc2pCO0FBQ3RqQixNQUFhLGFBQWE7SUFTdEIsWUFDVyxNQUFvQjtJQUMzQixvRkFB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QVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3pELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBclFELHNDQXFRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTm9kZSwgc29ydCB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL21pc2NcIjtcbmltcG9ydCB7IGRlbGF5IH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvYmF0Y2hpbmdcIjtcbmltcG9ydCB7IGdldFNlY3JldCB9IGZyb20gXCIuLi8uLi9taXNjL2dldFNlY3JldFwiO1xuaW1wb3J0IHsgSUFyY2hpdmVzLCBTb3VyY2VDb25maWcsIFJlbW90ZUNvbmZpZyB9IGZyb20gXCIuLi9JQXJjaGl2ZXNcIjtcbmltcG9ydCB7IFJPVVRJTkdfRklMRSwgZ2V0QnVja2V0QmFzZVVybCwgcGFyc2VIb3N0ZWRVcmwsIHBhcnNlQmFja2JsYXplVXJsLCBwYXJzZVJvdXRpbmdEYXRhIH0gZnJvbSBcIi4vcmVtb3RlQ29uZmlnXCI7XG5pbXBvcnQgeyBBcmNoaXZlc1JlbW90ZSB9IGZyb20gXCIuL0FyY2hpdmVzUmVtb3RlXCI7XG5pbXBvcnQgeyBBcmNoaXZlc1VybCB9IGZyb20gXCIuL0FyY2hpdmVzVXJsXCI7XG5pbXBvcnQgeyBBcmNoaXZlc0JhY2tibGF6ZSB9IGZyb20gXCIuLi9iYWNrYmxhemVcIjtcbmltcG9ydCB7IGlzT3duQWRkcmVzcyB9IGZyb20gXCIuL3NlcnZlckNvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0TG9jYWxBcmNoaXZlcyB9IGZyb20gXCIuL3N0b3JhZ2VTZXJ2ZXJTdGF0ZVwiO1xuXG5leHBvcnQgY29uc3QgUkVUUllfU1RBUlRfREVMQVkgPSAyICogMTAwMDtcbmV4cG9ydCBjb25zdCBSRVRSWV9NQVhfREVMQVkgPSA1ICogNjAgKiAxMDAwO1xuZXhwb3J0IGNvbnN0IFJFVFJZX0dST1dUSCA9IDEuNTtcbmNvbnN0IEFDQ0VTU19SRUNIRUNLX0lOVEVSVkFMID0gNjAgKiAxMDAwO1xuY29uc3QgU09VUkNFX0ZBSUxVUkVfQ09PTERPV04gPSAzMCAqIDYwICogMTAwMDtcbi8vIEFkZGVkIHRvIGEgZGlzY29ubmVjdGVkIHNvdXJjZSdzIGxhdGVuY3k6IGl0IHN0aWxsIHNvcnRzIGFuZCBjYW4gc3RpbGwgYmUgcGlja2VkLCBpdCBqdXN0IGxhbmRzIGFmdGVyIGV2ZXJ5IGNvbm5lY3RlZCBzb3VyY2VcbmNvbnN0IERJU0NPTk5FQ1RFRF9MQVRFTkNZX1BFTkFMVFkgPSAxMCAqIDEwMDA7XG5jb25zdCBQSU5HX0lOVEVSVkFMID0gNjAgKiAxMDAwO1xuY29uc3QgUElOR19ISVNUT1JZID0gMTA7XG5cbmFzeW5jIGZ1bmN0aW9uIGhhc0JhY2tibGF6ZUNyZWRzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGlmICghaXNOb2RlKCkpIHJldHVybiBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgICBhd2FpdCBnZXRTZWNyZXQoXCJiYWNrYmxhemUuanNvbi5hcHBsaWNhdGlvbktleUlkXCIpO1xuICAgICAgICBhd2FpdCBnZXRTZWNyZXQoXCJiYWNrYmxhemUuanNvbi5hcHBsaWNhdGlvbktleVwiKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8vIE9uZSBzb3VyY2Ugb2YgYSBSZW1vdGVDb25maWcsIGFzIGEgdXNhYmxlIElBcmNoaXZlcy4gUmVhZHMgZmFsbCBiYWNrIHRvIHRoZSBwdWJsaWMtVVJMIGZvcm0gd2hlbiB3ZSBkb24ndCBoYXZlIEFQSSBhY2Nlc3M7IHdyaXRlcyBhbHdheXMgYXR0ZW1wdCB0aGUgQVBJIChzbyBhY2Nlc3MgZ3JhbnRlZCBsYXRlciBpcyBwaWNrZWQgdXAgb24gdGhlIG5leHQgd3JpdGUpLiBXaGVuIGEgY2FsbCBmYWlscyB3aGlsZSB0aGUgV2ViU29ja2V0IGlzIGRvd24sIG5vdGVGYWlsdXJlIHN0YXJ0cyBhIGJhY2tncm91bmQgcmVjb25uZWN0IGxvb3Agd2l0aCBhIHJhbXBpbmcgZGVsYXkgLSBpdCBuZXZlciBibG9ja3MgY2FsbGVycywgaXQganVzdCBrZWVwcyB0cnlpbmcgc28gdGhlIGNvbm5lY3Rpb24gZXZlbnR1YWxseSBjb21lcyBiYWNrLiBTb3VyY2VzIHdpdGhvdXQgYSBXZWJTb2NrZXQgKGJhY2tibGF6ZSwgVVJMLWZvcm0sIG91ciBvd24gbG9jYWwgc2VydmVyKSByZXBvcnQgYWx3YXlzLWNvbm5lY3RlZDogdGhleSdyZSBsYXN0LXJlc29ydCBzb3VyY2VzIHdoZXJlIHRocm93aW5nIGlzIGZpbmUuXG5leHBvcnQgY2xhc3MgU291cmNlV3JhcHBlciB7XG4gICAgcHVibGljIGFwaT86IElBcmNoaXZlcztcbiAgICBwdWJsaWMgdXJsPzogQXJjaGl2ZXNVcmw7XG4gICAgcHVibGljIHdyaXRlQmxvY2tlZD86IHN0cmluZztcbiAgICBwcml2YXRlIHJlbW90ZT86IEFyY2hpdmVzUmVtb3RlO1xuICAgIHByaXZhdGUgZGlzcG9zZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIHJlY29ubmVjdFJ1bm5pbmcgPSBmYWxzZTtcbiAgICBwcml2YXRlIGFjY2Vzc0NhY2hlPzogeyBoYXNBY2Nlc3M6IGJvb2xlYW47IHRpbWU6IG51bWJlciB9O1xuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNvbmZpZzogU291cmNlQ29uZmlnLFxuICAgICAgICAvLyBmYWxzZSBmb3Igc2hvcnQtbGl2ZWQgcHJvYmUgaW5zdGFuY2VzLCB3aGljaCBtdXN0IG5ldmVyIGxlYXZlIGEgcmV0cnkgbG9vcCBiZWhpbmRcbiAgICAgICAgcHJpdmF0ZSBiYWNrZ3JvdW5kOiBib29sZWFuLFxuICAgICkgeyB9XG5cbiAgICAvKiogQ29uZmlnIHVwZGF0ZXMgcm91dGluZWx5IGp1c3QgbW92ZSBhIHNvdXJjZSdzIHZhbGlkIHdpbmRvdyAodGhlIGxhc3Qgd2luZG93IGV4dGVuZHMgZm9yZXZlciwgdGhlbiBnZXRzIHJlZHVjZWQgd2hlbiBhIG5ldyBlbnRyeSBpcyBhcHBlbmRlZCkuIFRoZSB3cmFwcGVyIHN1cnZpdmVzIHRoYXQ6IG9ubHkgdGhlIHdpbmRvdyBjaGFuZ2VzLCBrZWVwaW5nIHRoZSBjb25uZWN0aW9uLCBwaW5ncywgYW5kIGxhdGVuY3kgaGlzdG9yeS4gKi9cbiAgICBwdWJsaWMgdXBkYXRlVmFsaWRXaW5kb3codmFsaWRXaW5kb3c6IFtudW1iZXIsIG51bWJlcl0pOiB2b2lkIHtcbiAgICAgICAgbGV0IG9sZCA9IHRoaXMuY29uZmlnLnZhbGlkV2luZG93O1xuICAgICAgICBpZiAob2xkWzBdID09PSB2YWxpZFdpbmRvd1swXSAmJiBvbGRbMV0gPT09IHZhbGlkV2luZG93WzFdKSByZXR1cm47XG4gICAgICAgIGNvbnNvbGUubG9nKGBWYWxpZCB3aW5kb3cgY2hhbmdlZCBmb3IgJHt0aGlzLmdldERlYnVnTmFtZSgpfTogWyR7b2xkLmpvaW4oXCIsIFwiKX1dIC0+IFske3ZhbGlkV2luZG93LmpvaW4oXCIsIFwiKX1dYCk7XG4gICAgICAgIHRoaXMuY29uZmlnLnZhbGlkV2luZG93ID0gdmFsaWRXaW5kb3c7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBhc3luYyBjcmVhdGUoY29uZmlnOiBTb3VyY2VDb25maWcsIG9wdGlvbnM/OiB7IGJhY2tncm91bmQ/OiBib29sZWFuOyByZWFkT25seT86IGJvb2xlYW4gfSk6IFByb21pc2U8U291cmNlV3JhcHBlcj4ge1xuICAgICAgICBsZXQgd3JhcHBlciA9IG5ldyBTb3VyY2VXcmFwcGVyKGNvbmZpZywgb3B0aW9ucz8uYmFja2dyb3VuZCAhPT0gZmFsc2UpO1xuICAgICAgICAvLyBBIHB1YmxpYyBidWNrZXQgc2VydmVzIGV2ZXJ5dGhpbmcgd2UgY2FuIHJlYWQgb3ZlciBwbGFpbiBIVFRQUyBHRVRzLCBzbyB0aGVyZSBpcyBubyByZWFzb24gdG8gb3BlbiBhbiBBUEkgY29ubmVjdGlvbiAod2hpY2ggY29zdHMgYSBXZWJTb2NrZXQsIGFuZCBhbiBhY2Nlc3MgZ3JhbnQgd2UgbGlrZWx5IGRvbid0IGhhdmUpIGp1c3QgdG8gcmVhZCBpdFxuICAgICAgICBpZiAob3B0aW9ucz8ucmVhZE9ubHkgJiYgY29uZmlnLnB1YmxpYyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHdyYXBwZXIudXJsID0gbmV3IEFyY2hpdmVzVXJsKGdldEJ1Y2tldEJhc2VVcmwoY29uZmlnLnVybCkpO1xuICAgICAgICAgICAgd3JhcHBlci53cml0ZUJsb2NrZWQgPSBgJHtjb25maWcudXJsfSBpcyBiZWluZyByZWFkIGluIHJlYWQtb25seSBtb2RlIChwdWJsaWMgYnVja2V0LCBhbmQgd2UgYXJlIG5vdCBpbiBub2RlKSwgc28gaXQgaXMgZG93bmxvYWRlZCBvdmVyIHBsYWluIFVSTHMgYW5kIGNhbm5vdCBiZSB3cml0dGVuLiBQYXNzIGRpcmVjdENvbm5lY3QgdG8gY3JlYXRlQXJjaGl2ZXMgdG8gdXNlIHRoZSBBUEkgaW5zdGVhZC5gO1xuICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbmZpZy50eXBlID09PSBcImJhY2tibGF6ZVwiKSB7XG4gICAgICAgICAgICBpZiAoYXdhaXQgaGFzQmFja2JsYXplQ3JlZHMoKSkge1xuICAgICAgICAgICAgICAgIHdyYXBwZXIuYXBpID0gbmV3IEFyY2hpdmVzQmFja2JsYXplKHsgYnVja2V0TmFtZTogcGFyc2VCYWNrYmxhemVVcmwoY29uZmlnLnVybCkuYnVja2V0TmFtZSwgcHVibGljOiBjb25maWcucHVibGljLCBpbW11dGFibGU6IGNvbmZpZy5pbW11dGFibGUsIGFsbG93ZWRPcmlnaW5zOiBjb25maWcuYWxsb3dlZE9yaWdpbnMgfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzTm9kZSgpKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlci53cml0ZUJsb2NrZWQgPSBgTm8gYmFja2JsYXplIGNyZWRlbnRpYWxzIGZvciAke2NvbmZpZy51cmx9LiBQcm92aWRlIGJhY2tibGF6ZS5qc29uLmFwcGxpY2F0aW9uS2V5SWQgYW5kIGJhY2tibGF6ZS5qc29uLmFwcGxpY2F0aW9uS2V5IHZpYSBnZXRTZWNyZXQgdG8gZW5hYmxlIEFQSSBhY2Nlc3MuYDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlci53cml0ZUJsb2NrZWQgPSBgQnJvd3NlcnMgY2Fubm90IHdyaXRlIHRvIGJhY2tibGF6ZSAoYnVja2V0ICR7Y29uZmlnLnVybH0pYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghd3JhcHBlci5hcGkgJiYgY29uZmlnLnB1YmxpYyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLnVybCA9IG5ldyBBcmNoaXZlc1VybChnZXRCdWNrZXRCYXNlVXJsKGNvbmZpZy51cmwpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgICAgICB9XG4gICAgICAgIGxldCBwYXJzZWQgPSBwYXJzZUhvc3RlZFVybChjb25maWcudXJsKTtcbiAgICAgICAgaWYgKGlzTm9kZSgpICYmIGlzT3duQWRkcmVzcyhwYXJzZWQuYWRkcmVzcywgcGFyc2VkLnBvcnQpKSB7XG4gICAgICAgICAgICAvLyBBIGJ1Y2tldCBob3N0ZWQgYnkgb3VyIG93biBwcm9jZXNzIC0gdXNlIGl0IGRpcmVjdGx5IGluc3RlYWQgb2YgY2FsbGluZyBvdXJzZWx2ZXNcbiAgICAgICAgICAgIHdyYXBwZXIuYXBpID0gZ2V0TG9jYWxBcmNoaXZlcyhwYXJzZWQuYWNjb3VudCwgcGFyc2VkLmJ1Y2tldE5hbWUsIGNvbmZpZyk7XG4gICAgICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICAgICAgfVxuICAgICAgICB3cmFwcGVyLnJlbW90ZSA9IG5ldyBBcmNoaXZlc1JlbW90ZSh7IHVybDogY29uZmlnLnVybCwgd2FpdEZvckFjY2VzczogZmFsc2UsIHNvdXJjZUNvbmZpZzogY29uZmlnIH0pO1xuICAgICAgICB3cmFwcGVyLmFwaSA9IHdyYXBwZXIucmVtb3RlO1xuICAgICAgICBpZiAoY29uZmlnLnB1YmxpYyAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHdyYXBwZXIudXJsID0gbmV3IEFyY2hpdmVzVXJsKGdldEJ1Y2tldEJhc2VVcmwoY29uZmlnLnVybCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREZWJ1Z05hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgLy8gVGhlIHNhbWUgVVJMIGNhbiBhcHBlYXIgYXMgbXVsdGlwbGUgc291cmNlcyAoZGlmZmVyZW50IHJvdXRlcyAvIHZhbGlkIHdpbmRvd3MpLCBzbyB0aGUgZGlzdGluZ3Vpc2hpbmcgc2xpY2UgaXMgcGFydCBvZiB0aGUgbmFtZVxuICAgICAgICBsZXQgcGFydHM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGxldCByb3V0ZSA9IHRoaXMuY29uZmlnLnJvdXRlO1xuICAgICAgICBpZiAocm91dGUpIHtcbiAgICAgICAgICAgIHBhcnRzLnB1c2goYHJvdXRlIFske3JvdXRlWzBdfSwgJHtyb3V0ZVsxXX0pYCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IFtzdGFydCwgZW5kXSA9IHRoaXMuY29uZmlnLnZhbGlkV2luZG93O1xuICAgICAgICBpZiAoc3RhcnQgIT09IDAgfHwgZW5kICE9PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICAgICAgbGV0IHN0YXJ0VGV4dCA9IHN0YXJ0ID09PSAwICYmIFwiMFwiIHx8IG5ldyBEYXRlKHN0YXJ0KS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgbGV0IGVuZFRleHQgPSBlbmQgPT09IE51bWJlci5NQVhfU0FGRV9JTlRFR0VSICYmIFwiZm9yZXZlclwiIHx8IG5ldyBEYXRlKGVuZCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIHBhcnRzLnB1c2goYHZhbGlkV2luZG93IFske3N0YXJ0VGV4dH0sICR7ZW5kVGV4dH1dYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGBzb3VyY2UgJHt0aGlzLmNvbmZpZy51cmx9JHtwYXJ0cy5sZW5ndGggJiYgYCAoJHtwYXJ0cy5qb2luKFwiLCBcIil9KWAgfHwgXCJcIn1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBpc0Nvbm5lY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlbW90ZSkgcmV0dXJuIHRydWU7XG4gICAgICAgIHJldHVybiB0aGlzLnJlbW90ZS5pc0Nvbm5lY3RlZCgpO1xuICAgIH1cblxuICAgIC8qKiBBIHNvdXJjZSB3aG9zZSB3aW5kb3cgaGFzIHBhc3NlZCBpcyBuZXZlciByZWFkIGZyb20gb3Igd3JpdHRlbiB0byAoc2VlIHRoZSB3aW5kb3cgY2hlY2tzIGluIEFyY2hpdmVzQ2hhaW4pLCBhbmQgYW4gaW50ZXJtZWRpYXRlIG9ubHkgZXhpc3RzIGZvciB0aGUgbWludXRlcyBvZiBhIGRlcGxveSBzd2l0Y2hvdmVyIC0gb24gZWl0aGVyLCBiZWluZyB1bnJlYWNoYWJsZSBpcyBleHBlY3RlZCwgbm90IGEgcHJvYmxlbSB0byByZXBvcnQuICovXG4gICAgcHJpdmF0ZSBpc0Nvbm5lY3Rpb25Qcm9ibGVtV29ydGhSZXBvcnRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5pbnRlcm1lZGlhdGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnZhbGlkV2luZG93WzFdID4gRGF0ZS5ub3coKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvb2xkb3duVW50aWwgPSAwO1xuICAgIC8qKiBBIHNvdXJjZSB0aGF0IGZhaWxlZCB3aGlsZSBkaXNjb25uZWN0ZWQgaXMgc2tpcHBlZCBieSBjYWxsZXJzIGZvciBTT1VSQ0VfRkFJTFVSRV9DT09MRE9XTiAtIGJ1dCBvbmx5IHdoaWxlIHNvbWUgb3RoZXIgc291cmNlIGNhbiBzZXJ2ZSB0aGUgcmVxdWVzdC4gV2hlbiBub3RoaW5nIGVsc2UgaXMgdXNhYmxlLCBjYWxsZXJzIGlnbm9yZSB0aGlzIGFuZCB0cnkgaXQgYW55d2F5LCBzbyBhIHRvdGFsIG91dGFnZSBzdGlsbCByZXRyaWVzIGV2ZXJ5IHRpbWUuICovXG4gICAgcHVibGljIGlzT25Db29sZG93bigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIERhdGUubm93KCkgPCB0aGlzLmNvb2xkb3duVW50aWw7XG4gICAgfVxuXG4gICAgLyoqIENhbGwgYWZ0ZXIgYSByZXF1ZXN0IGZhaWxlZCB3aGlsZSBpc0Nvbm5lY3RlZCgpIHdhcyBmYWxzZTogcHV0cyB0aGUgc291cmNlIG9uIGNvb2xkb3duIGFuZCBzdGFydHMgKGlmIG5vdCBhbHJlYWR5IHJ1bm5pbmcpIHRoZSBiYWNrZ3JvdW5kIHJlY29ubmVjdCBsb29wLiBOZXZlciBibG9ja3MgLSB0aGUgZmFpbGVkIHJlcXVlc3Qgc3RpbGwgdGhyb3dzLiAqL1xuICAgIHB1YmxpYyBub3RlRmFpbHVyZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzcG9zZWQgfHwgdGhpcy5pc0Nvbm5lY3RlZCgpKSByZXR1cm47XG4gICAgICAgIGxldCBub3cgPSBEYXRlLm5vdygpO1xuICAgICAgICBpZiAobm93ID49IHRoaXMuY29vbGRvd25VbnRpbCAmJiB0aGlzLmlzQ29ubmVjdGlvblByb2JsZW1Xb3J0aFJlcG9ydGluZygpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBDYW5ub3QgY29ubmVjdCB0byBzdG9yYWdlICR7dGhpcy5nZXREZWJ1Z05hbWUoKX07IHNraXBwaW5nIGl0IHVudGlsICR7bmV3IERhdGUobm93ICsgU09VUkNFX0ZBSUxVUkVfQ09PTERPV04pLnRvSVNPU3RyaW5nKCl9IChub3cgJHtuZXcgRGF0ZShub3cpLnRvSVNPU3RyaW5nKCl9KSB1bmxlc3Mgbm8gb3RoZXIgc291cmNlIGNhbiBzZXJ2ZSB0aGUgcmVxdWVzdGApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29vbGRvd25VbnRpbCA9IG5vdyArIFNPVVJDRV9GQUlMVVJFX0NPT0xET1dOO1xuICAgICAgICBpZiAoIXRoaXMuYmFja2dyb3VuZCB8fCB0aGlzLnJlY29ubmVjdFJ1bm5pbmcpIHJldHVybjtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3RSdW5uaW5nID0gdHJ1ZTtcbiAgICAgICAgdm9pZCB0aGlzLnJlY29ubmVjdExvb3AoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHJlY29ubmVjdExvb3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCByZXRyeURlbGF5ID0gUkVUUllfU1RBUlRfREVMQVk7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBhd2FpdCBkZWxheShyZXRyeURlbGF5KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpc3Bvc2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3RSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSkgYnJlYWs7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIC8vIEFueSBjYWxsIHJlLWVzdGFibGlzaGVzIHRoZSBXZWJTb2NrZXQ7IHRoZSByZXN1bHQgZG9lc24ndCBtYXR0ZXJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJlbW90ZT8uZ2V0SW5mbyhST1VUSU5HX0ZJTEUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIC8vIEV2ZW4gYSBmYWlsaW5nIGNhbGwgKGUuZy4gYWNjZXNzIGRlbmllZCkgcHJvdmVzIHRoZSBjb25uZWN0aW9uIGlzIGJhY2tcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCgpKSBicmVhaztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0Nvbm5lY3Rpb25Qcm9ibGVtV29ydGhSZXBvcnRpbmcoKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBJbiB0aGlzIGNhc2UsIEknbSBqdXN0IHNob3dpbmcgdGhlIG1lc3NhZ2UgYmVjYXVzZSB0aGUgY2FsbCBzdGFjayBpcyBhbG1vc3QgYWx3YXlzIGNvbXBsZXRlbHkgdW5pbnRlcmVzdGluZy5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNvbm5lY3QgdG8gc3RvcmFnZSAke3RoaXMuZ2V0RGVidWdOYW1lKCl9LCByZXRyeWluZyBpbiAke01hdGgucm91bmQocmV0cnlEZWxheSAvIDEwMDApfXMuICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2UgPz8gZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXRyeURlbGF5ID0gTWF0aC5taW4oUkVUUllfTUFYX0RFTEFZLCByZXRyeURlbGF5ICogUkVUUllfR1JPV1RIKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlY29ubmVjdFJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb29sZG93blVudGlsID0gMDtcbiAgICAgICAgY29uc29sZS5sb2coYFJlY29ubmVjdGVkIHRvIHN0b3JhZ2UgJHt0aGlzLmdldERlYnVnTmFtZSgpfSwgY2xlYXJpbmcgaXRzIGNvb2xkb3duYCk7XG4gICAgfVxuXG4gICAgLy8gRm9yIGhvc3RlZCBzb3VyY2VzOiBjYWNoZWQgYWNjZXNzIGNoZWNrLCBzbyByZWFkcyBrbm93IHdoZXRoZXIgdG8gdXNlIHRoZSBBUEkgb3IgdGhlIHB1YmxpYyBVUkwgZm9ybS4gQWNjZXNzLCBvbmNlIHNlZW4sIGlzIGFzc3VtZWQgdG8gc3RpY2s7IG5vLWFjY2VzcyBpcyByZS1jaGVja2VkIHBlcmlvZGljYWxseSAodGhlIGNoZWNrIGFsc28gcmVnaXN0ZXJzIG91ciBhY2Nlc3MgcmVxdWVzdCBzZXJ2ZXItc2lkZSwgd2hpY2ggbG9ncyB0aGUgZ3JhbnQgbGluaykuXG4gICAgcHJpdmF0ZSBhc3luYyBjaGVja0FjY2VzcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgbGV0IHJlbW90ZSA9IHRoaXMucmVtb3RlO1xuICAgICAgICBpZiAoIXJlbW90ZSkgcmV0dXJuICEhdGhpcy5hcGk7XG4gICAgICAgIGxldCBjYWNoZWQgPSB0aGlzLmFjY2Vzc0NhY2hlO1xuICAgICAgICBpZiAoY2FjaGVkICYmIChjYWNoZWQuaGFzQWNjZXNzIHx8IERhdGUubm93KCkgLSBjYWNoZWQudGltZSA8IEFDQ0VTU19SRUNIRUNLX0lOVEVSVkFMKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZC5oYXNBY2Nlc3M7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHdhaXRpbmcgPSBhd2FpdCByZW1vdGUud2FpdGluZ0ZvckFjY2VzcygpO1xuICAgICAgICB0aGlzLmFjY2Vzc0NhY2hlID0geyBoYXNBY2Nlc3M6ICF3YWl0aW5nLCB0aW1lOiBEYXRlLm5vdygpIH07XG4gICAgICAgIGlmICh3YWl0aW5nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYE5vIGFjY2VzcyB0byBzdG9yYWdlIGFjY291bnQgZm9yICR7dGhpcy5jb25maWcudXJsfSAob3VyIG1hY2hpbmUgJHt3YWl0aW5nLm1hY2hpbmVJZH0sIGlwICR7d2FpdGluZy5pcH0pLiBSZWFkaW5nIHZpYSB0aGUgcHVibGljIFVSTCBmb3JtIHdoZXJlIHBvc3NpYmxlLiBHcmFudCBhY2Nlc3MgYXQgJHt3YWl0aW5nLmxpbmt9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICF3YWl0aW5nO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyByZWFkPFQ+KHJ1bjogKGFyY2hpdmVzOiBJQXJjaGl2ZXMpID0+IFByb21pc2U8VD4pOiBQcm9taXNlPFQ+IHtcbiAgICAgICAgaWYgKHRoaXMuYXBpICYmIGF3YWl0IHRoaXMuY2hlY2tBY2Nlc3MoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJ1bih0aGlzLmFwaSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMudXJsKSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgcnVuKHRoaXMudXJsKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hcGkpIHtcbiAgICAgICAgICAgIC8vIE5vIHB1YmxpYyBVUkwgZm9ybSAtIGxldCB0aGUgQVBJIGNhbGwgdGhyb3cgaXRzIG93biBlcnJvciAod2hpY2ggaW5jbHVkZXMgdGhlIGFjY2VzcyBpbnN0cnVjdGlvbnMgZm9yIGhvc3RlZCBzb3VyY2VzKVxuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHJ1bih0aGlzLmFwaSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb3VyY2UgJHt0aGlzLmNvbmZpZy51cmx9IGhhcyBubyBBUEkgYWNjZXNzIGFuZCBubyBwdWJsaWMgVVJMIGZvcm0gKHB1YmxpYzogZmFsc2UpYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlYWRSb3V0aW5nQ29uZmlnKCk6IFByb21pc2U8UmVtb3RlQ29uZmlnIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGxldCBkYXRhID0gYXdhaXQgdGhpcy5yZWFkKGFyY2hpdmVzID0+IGFyY2hpdmVzLmdldChST1VUSU5HX0ZJTEUpKTtcbiAgICAgICAgcmV0dXJuIGRhdGEgJiYgcGFyc2VSb3V0aW5nRGF0YShkYXRhKSB8fCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGhhc1dyaXRlQWNjZXNzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAodGhpcy53cml0ZUJsb2NrZWQgfHwgIXRoaXMuYXBpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFwaS5oYXNXcml0ZUFjY2VzcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGluZ3M6IG51bWJlcltdID0gW107XG4gICAgcHJpdmF0ZSBwaW5nVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPiB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIGxvZ2dlZENvbm5lY3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFN0YXJ0cyBtZWFzdXJpbmcgdGhpcyBzb3VyY2UncyBsYXRlbmN5LCB3aGljaCBkZWNpZGVzIHdoaWNoIGhvc3RzIHJlYWRzIGFuZCB2YXJpYWJsZS1zaGFyZCB3cml0ZXMgcHJlZmVyLiBIb3N0ZWQgcmVtb3RlcyBwaW5nIG92ZXIgdGhlaXIgQVBJIGNvbm5lY3Rpb247IFVSTC1vbmx5IHNvdXJjZXMgKHJlYWQtb25seSBtb2RlLCBiYWNrYmxhemUgd2l0aG91dCBjcmVkZW50aWFscykgcHJvYmUgb3ZlciBwbGFpbiBIVFRQUyBpbnN0ZWFkIC0gdGhlIGNsaWVudCBORUVEUyB0aGVpciBsYXRlbmN5IHRvbywgb3IgaXQgY2Fubm90IHJhbmsgdGhlIGhvc3RzIGl0IHJlYWRzIGZyb20uIE91ciBvd24gbG9jYWwgc2VydmVyIGNvdW50cyBhcyAwOyBvbmx5IHNvdXJjZXMgd2l0aCBuZWl0aGVyIGZvcm0gc3RheSBJbmZpbml0eS4gKi9cbiAgICBwdWJsaWMgc3RhcnRQaW5naW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5waW5nVGltZXIgfHwgdGhpcy5kaXNwb3NlZCkgcmV0dXJuO1xuICAgICAgICAvLyBBIHNvdXJjZSB3aG9zZSB3aW5kb3cgaGFzIHBhc3NlZCBuZXZlciByZWNlaXZlcyByZWFkcyBvciB3cml0ZXMgLSBtZWFzdXJpbmcgaXQgaXMgcG9pbnRsZXNzIHRyYWZmaWNcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnZhbGlkV2luZG93WzFdIDw9IERhdGUubm93KCkpIHJldHVybjtcbiAgICAgICAgY29uc3QgcmVtb3RlID0gdGhpcy5yZW1vdGU7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMudXJsO1xuICAgICAgICBsZXQgcHJvYmU6ICgpID0+IFByb21pc2U8dm9pZD47XG4gICAgICAgIGlmIChyZW1vdGUpIHtcbiAgICAgICAgICAgIHByb2JlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5waW5nKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHVybCkge1xuICAgICAgICAgICAgLy8gQSAxLWJ5dGUgcmFuZ2VkIHJlYWQgb2YgdGhlIHJvdXRpbmcgZmlsZSB0cmFuc2ZlcnMgZXNzZW50aWFsbHkgbm90aGluZywgYW5kIHVubGlrZSBhbiBleHBsaWNpdCBPUFRJT05TIHJlcXVlc3QgaXQgbmVlZHMgbm8gQ09SUyBwcmVmbGlnaHQgKGJhY2tibGF6ZSdzIENPUlMgcnVsZXMgb25seSBhbGxvdyBkb3dubG9hZCBvcGVyYXRpb25zKSAtIHNvIGl0IHdvcmtzIGZyb20gdGhlIGJyb3dzZXIsIHdoaWNoIGlzIGV4YWN0bHkgd2hlcmUgVVJMLW9ubHkgbW9kZSBydW5zXG4gICAgICAgICAgICBwcm9iZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB1cmwuZ2V0SW5mbyhST1VUSU5HX0ZJTEUpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbWVhc3VyZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHByb2JlKCk7XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCBwaW5nIGlzIGFsc28gb3VyIGVhcmxpZXN0IGRvd24tZGV0ZWN0aW9uXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RlRmFpbHVyZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5sb2dnZWRDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlZENvbm5lY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYENvbm5lY3RlZCB0byBzdG9yYWdlICR7dGhpcy5nZXREZWJ1Z05hbWUoKX0gKCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zKWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5waW5ncy5wdXNoKERhdGUubm93KCkgLSBzdGFydCk7XG4gICAgICAgICAgICBpZiAodGhpcy5waW5ncy5sZW5ndGggPiBQSU5HX0hJU1RPUlkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBpbmdzLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZvaWQgbWVhc3VyZSgpO1xuICAgICAgICB0aGlzLnBpbmdUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIHZvaWQgbWVhc3VyZSgpO1xuICAgICAgICB9LCBQSU5HX0lOVEVSVkFMKTtcbiAgICAgICAgKHRoaXMucGluZ1RpbWVyIGFzIHsgdW5yZWY/OiAoKSA9PiB2b2lkIH0pLnVucmVmPy4oKTtcbiAgICB9XG5cbiAgICAvKiogU2VlZHMgdGhlIGxhdGVuY3kgZXN0aW1hdGUgYmVmb3JlIHRoZSBmaXJzdCBwaW5nIGxhbmRzIChlLmcuIGZyb20gdGhlIGluaXRpYWwgcm91dGluZyBmZXRjaCksIHNvIHZhcmlhYmxlLXNoYXJkIHBpY2tpbmcgaGFzIHNvbWV0aGluZyBpbW1lZGlhdGVseS4gUmVhbCBwaW5ncyB0YWtlIG92ZXIgZnJvbSB0aGUgZmlyc3QgbWVhc3VyZW1lbnQgb24uICovXG4gICAgcHVibGljIHNlZWRMYXRlbmN5KG1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGluZ3MubGVuZ3RoKSByZXR1cm47XG4gICAgICAgIHRoaXMucGluZ3MucHVzaChtcyk7XG4gICAgfVxuXG4gICAgLyoqIE1lZGlhbiBvZiB0aGUgcmVjZW50IHBpbmdzIChBUEkgb3IgVVJMLWZvcm0sIHdoaWNoZXZlciB0aGlzIHNvdXJjZSBtZWFzdXJlcyksIHBsdXMgRElTQ09OTkVDVEVEX0xBVEVOQ1lfUEVOQUxUWSB3aGlsZSB0aGUgc291cmNlIGlzIGRpc2Nvbm5lY3RlZCAtIHNvIGEgZG93biBzb3VyY2Ugc3RpbGwgc29ydHMgYW5kIGNhbiBzdGlsbCBiZSBwaWNrZWQsIGp1c3QgYWZ0ZXIgZXZlcnkgY29ubmVjdGVkIG9uZS4gU291cmNlcyB3aXRoIG5vIG1lYXN1cmVtZW50cyB5ZXQgc29ydCBsYXN0IChJbmZpbml0eSksIGV4Y2VwdCBvdXIgb3duIGluLXByb2Nlc3Mgc2VydmVyLCB3aGljaCBpcyB0aGUgYmVzdCBwb3NzaWJsZSB0YXJnZXQgKDApLiAqL1xuICAgIHB1YmxpYyBnZXRMYXRlbmN5KCk6IG51bWJlciB7XG4gICAgICAgIC8vIE91ciBvd24gaW4tcHJvY2VzcyBzZXJ2ZXI6IGhvc3RlZCAodHlwZSByZW1vdGUpLCBhcGkgcHJlc2VudCwgYnV0IG5vIHJlbW90ZSBjb25uZWN0aW9uIC0gaXQgSVMgdXNcbiAgICAgICAgaWYgKCF0aGlzLnJlbW90ZSAmJiB0aGlzLmNvbmZpZy50eXBlID09PSBcInJlbW90ZVwiICYmIHRoaXMuYXBpKSByZXR1cm4gMDtcbiAgICAgICAgaWYgKCF0aGlzLnBpbmdzLmxlbmd0aCkgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICBsZXQgc29ydGVkID0gWy4uLnRoaXMucGluZ3NdO1xuICAgICAgICBzb3J0KHNvcnRlZCwgeCA9PiB4KTtcbiAgICAgICAgbGV0IG1lZGlhbiA9IHNvcnRlZFtNYXRoLmZsb29yKHNvcnRlZC5sZW5ndGggLyAyKV07XG4gICAgICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVkaWFuICsgRElTQ09OTkVDVEVEX0xBVEVOQ1lfUEVOQUxUWTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWVkaWFuO1xuICAgIH1cblxuICAgIC8qKiBXcml0ZXMgYWx3YXlzIGdvIHRocm91Z2ggdGhlIEFQSSwgc28gYSBwZXJtaXNzaW9uIGVycm9yIHRocm93cyB0byB0aGUgY2FsbGVyIG9uIGV2ZXJ5IHdyaXRlIChhbmQgYWNjZXNzIGdyYW50ZWQgaW4gdGhlIG1lYW50aW1lIGlzIHBpY2tlZCB1cCBhdXRvbWF0aWNhbGx5KS4gKi9cbiAgICBwdWJsaWMgYXN5bmMgd3JpdGU8VD4ocnVuOiAoYXJjaGl2ZXM6IElBcmNoaXZlcykgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICAgICAgICBpZiAodGhpcy53cml0ZUJsb2NrZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcih0aGlzLndyaXRlQmxvY2tlZCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGFwaSA9IHRoaXMuYXBpO1xuICAgICAgICBpZiAoIWFwaSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb3VyY2UgJHt0aGlzLmNvbmZpZy51cmx9IGhhcyBubyBBUEkgYWNjZXNzLCBzbyBpdCBjYW5ub3QgYWNjZXB0IHdyaXRlc2ApO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBydW4oYXBpKTtcbiAgICAgICAgdGhpcy5hY2Nlc3NDYWNoZSA9IHsgaGFzQWNjZXNzOiB0cnVlLCB0aW1lOiBEYXRlLm5vdygpIH07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcG9zZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5waW5nVGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5waW5nVGltZXIpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
297
+ /* _JS_SOURCE_HASH = "719ef6933d91b88f1aa0a2e8cdee9abdd72759a4075d7a0d1d305bd27efa9de9"; */
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
2
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
4
4
  };
@@ -79,4 +79,4 @@ class SourcesList {
79
79
  }
80
80
  exports.SourcesList = SourcesList;
81
81
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc0xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VzTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBRXhCLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFFakMsNGxCQUE0bEI7QUFDNWxCLE1BQWEsV0FBVztJQUNwQixZQUFvQixRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQzVCLFNBQUksR0FBYSxFQUFFLENBQUM7UUFDcEIsWUFBTyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO1FBQ3BDLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGdCQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBTEEsQ0FBQztJQU9qQyxLQUFLLENBQUMsSUFBSTtRQUNkLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUM7WUFDRCxPQUFPLEdBQUcsTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1QsSUFBSyxDQUF1QixDQUFDLElBQUksS0FBSyxRQUFRO2dCQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxHQUFHLEVB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Q0FBQztZQUM3RyxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKO0FBakVELGtDQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmNvbnN0IFJFTE9BRF9USFJPVFRMRSA9IDUgKiAxMDAwO1xuXG4vLyBUaGUgcGVyc2lzdGVudCBpZGVudGl0eSBiZWhpbmQgSW5kZXhFbnRyeS5zb3VyY2VzTGlzdEluZGV4OiBhbiBhcHBlbmQtb25seSBmaWxlIG9mIHNvdXJjZSBVUkxzIC8gZGlzayBmb2xkZXIgcGF0aHMsIG9uZSBwZXIgbGluZSwgd2hlcmUgYSBVUkwncyAwLWJhc2VkIGxpbmUgbnVtYmVyIElTIHRoZSBzb3VyY2VzTGlzdEluZGV4IHRoZSBpbmRleCBwZXJzaXN0cy4gQmVjYXVzZSB0aGUgZmlsZSBpcyBvbmx5IGV2ZXIgYXBwZW5kZWQgdG8sIGEgbGluZSBudW1iZXIgbWVhbnMgdGhlIHNhbWUgVVJMIGZvcmV2ZXIgLSBhY3Jvc3MgcmVzdGFydHMgYW5kIGFjcm9zcyBwcm9jZXNzZXMgc2hhcmluZyB0aGUgZm9sZGVyLiBBIHRvcm4gYXBwZW5kIChjcmFzaCBtaWQtd3JpdGUpIGxlYXZlcyBhbiB1bnRlcm1pbmF0ZWQgcGFydGlhbCBsaW5lOyB0aGUgbmV4dCB3cml0ZXIgdGVybWluYXRlcyBpdCBiZWZvcmUgYXBwZW5kaW5nLCBzbyB0aGUgZ2FyYmFnZSBsaW5lIHBlcm1hbmVudGx5IG9jY3VwaWVzIGl0cyBpbmRleCAoaGFybWxlc3MgLSBpdCBuZXZlciBtYXRjaGVzIGEgcmVhbCBVUkwpIGFuZCBldmVyeSByZWFkZXIgYWdyZWVzIG9uIHRoZSBudW1iZXJpbmcuXG5leHBvcnQgY2xhc3MgU291cmNlc0xpc3Qge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsZVBhdGg6IHN0cmluZykgeyB9XG4gICAgcHJpdmF0ZSB1cmxzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgaW5kZXhlcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgcHJpdmF0ZSBlbmRzQ2xlYW4gPSB0cnVlO1xuICAgIHByaXZhdGUgbGFzdFJlbG9hZCA9IDA7XG4gICAgcHJpdmF0ZSBhcHBlbmRRdWV1ZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBsZXQgY29udGVudCA9IFwiXCI7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb250ZW50ID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUodGhpcy5maWxlUGF0aCwgXCJ1dGY4XCIpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoKGUgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGUgIT09IFwiRU5PRU5UXCIpIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmRzQ2xlYW4gPSAhY29udGVudCB8fCBjb250ZW50LmVuZHNXaXRoKFwiXFxuXCIpO1xuICAgICAgICBsZXQgbGluZXMgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpO1xuICAgICAgICBpZiAobGluZXNbbGluZXMubGVuZ3RoIC0gMV0gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIGxpbmVzLnBvcCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXJscyA9IGxpbmVzO1xuICAgICAgICB0aGlzLmluZGV4ZXMuY2xlYXIoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmluZGV4ZXMuaGFzKGxpbmVzW2ldKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZXhlcy5zZXQobGluZXNbaV0sIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFVybChzb3VyY2VzTGlzdEluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy51cmxzW3NvdXJjZXNMaXN0SW5kZXhdO1xuICAgIH1cblxuICAgIC8qKiBGb3IgYSBzb3VyY2VzTGlzdEluZGV4IGJleW9uZCBvdXIgaW4tbWVtb3J5IGxpc3QgKGFub3RoZXIgcHJvY2VzcyBhcHBlbmRlZCBzaW5jZSB3ZSByZWFkKTogcmUtcmVhZHMgdGhlIGZpbGUsIGF0IG1vc3Qgb25jZSBwZXIgUkVMT0FEX1RIUk9UVExFLiBSZXR1cm5pbmcgdW5kZWZpbmVkIGNhbiB0aGVyZWZvcmUgbWVhbiBcInRocm90dGxlZFwiLCBub3QgXCJkZWZpbml0ZWx5IGFic2VudFwiIC0gbmV2ZXIgdHJlYXQgaXQgYXMgcHJvb2YgdGhlIGluZGV4IGlzIGJvZ3VzLiAqL1xuICAgIHB1YmxpYyBhc3luYyBnZXRVcmxSZWxvYWRpbmcoc291cmNlc0xpc3RJbmRleDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKHNvdXJjZXNMaXN0SW5kZXggPCB0aGlzLnVybHMubGVuZ3RoKSByZXR1cm4gdGhpcy51cmxzW3NvdXJjZXNMaXN0SW5kZXhdO1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIHRoaXMubGFzdFJlbG9hZCA8IFJFTE9BRF9USFJPVFRMRSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5sYXN0UmVsb2FkID0gRGF0ZS5ub3coKTtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnVybHNbc291cmNlc0xpc3RJbmRleF07XG4gICAgfVxuXG4gICAgLyoqIFRoZSBzb3VyY2VzTGlzdEluZGV4IG9mIHRoZSB1cmwsIGFwcGVuZGluZyBpdCBpZiBpdCBpcyBuZXcuIEFwcGVuZHMgYXJlIHNlcmlhbGl6ZWQgd2l0aGluIHRoaXMgcHJvY2VzczsgYmVmb3JlIGVhY2ggYXBwZW5kIHRoZSBmaWxlIGlzIHJlLXJlYWQsIHNvIGFwcGVuZHMgYnkgb3RoZXIgcHJvY2Vzc2VzIGFyZSBwaWNrZWQgdXAgaW5zdGVhZCBvZiBkdXBsaWNhdGVkLiAqL1xuICAgIHB1YmxpYyBlbnN1cmUodXJsOiBzdHJpbmcpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgICAgICBpZiAodXJsLmluY2x1ZGVzKFwiXFxuXCIpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNvdXJjZSBVUkxzIGNhbm5vdCBjb250YWluIG5ld2xpbmVzICh0aGV5IGFyZSBzdG9yZWQgb25lIHBlciBsaW5lKTogJHtKU09OLnN0cmluZ2lmeSh1cmwpfWApO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLmFwcGVuZFF1ZXVlLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgICAgICBsZXQgZXhpc3RpbmcgPSB0aGlzLmluZGV4ZXMuZ2V0KHVybCk7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcgIT09IHVuZGVmaW5lZCkgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgICAgICAgLy8gYXBwZW5kRmlsZSBjcmVhdGVzIHRoZSBmaWxlIGJ1dCBub3QgaXRzIHBhcmVudCBkaXJlY3RvcmllcywgYW5kIG9uIGEgZnJlc2ggYnVja2V0IHdlIHJ1biBiZWZvcmUgYW55dGhpbmcgZWxzZSBoYXMgY3JlYXRlZCB0aGVtXG4gICAgICAgICAgICBhd2FpdCBmcy5wcm9taXNlcy5ta2RpcihwYXRoLmRpcm5hbWUodGhpcy5maWxlUGF0aCksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgICAgICAgbGV0IHByZWZpeCA9IHRoaXMuZW5kc0NsZWFuICYmIFwiXCIgfHwgXCJcXG5cIjtcbiAgICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLmFwcGVuZEZpbGUodGhpcy5maWxlUGF0aCwgcHJlZml4ICsgdXJsICsgXCJcXG5cIik7XG4gICAgICAgICAgICB0aGlzLmVuZHNDbGVhbiA9IHRydWU7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnVybHMubGVuZ3RoO1xuICAgICAgICAgICAgdGhpcy51cmxzLnB1c2godXJsKTtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhlcy5zZXQodXJsLCBpbmRleCk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgUmVnaXN0ZXJlZCBuZXcgc291cmNlICR7SlNPTi5zdHJpbmdpZnkodXJsKX0gYXMgc291cmNlc0xpc3RJbmRleCAke2luZGV4fSBpbiAke3RoaXMuZmlsZVBhdGh9YCk7XG4gICAgICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmFwcGVuZFF1ZXVlID0gcmVzdWx0LnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbn1cbiJdfQ==
82
- /* _JS_SOURCE_HASH = "4082b8f40d63e567cb6fb47aec05a0913afe32e1bc4c25cd0e1ee3f076af4886"; */
82
+ /* _JS_SOURCE_HASH = "a5dd8cc99b2191171e3e2cabf5d0eced5ba7ac24233ecf70e8eb1c0b6e2467f4"; */
@@ -1,4 +1,4 @@
1
- "use strict";
1
+ "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
3
3
  //exports.StorageClientController = exports.onServerRoutingChanged = void 0;
4
4
  const SocketFunction_1 = require("socket-function/SocketFunction");
@@ -29,4 +29,4 @@ exports.StorageClientController = SocketFunction_1.SocketFunction.register("Stor
29
29
  routingConfigChanged: {},
30
30
  }));
31
31
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZUNsaWVudENvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdG9yYWdlQ2xpZW50Q29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBZ0U7QUFFaEUsMFJBQTBSO0FBRTFSLE1BQU0sU0FBUyxHQUFHLElBQUksR0FBRyxFQUFjLENBQUM7QUFFeEMsaUdBQWlHO0FBQ2pHLFNBQWdCLHNCQUFzQixDQUFDLFFBQW9CO0lBQ3ZELFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEIsT0FBTyxHQUFHLEVBQUU7UUFDUixTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQy9CLENBQUMsQ0FBQztBQUNOLENBQUM7QUFMRCx3REFLQztBQUVELE1BQU0sMkJBQTJCO0lBQzdCLEtBQUssQ0FBQyxvQkFBb0I7O1FBQ3RCLEtBQUssSUFBSSxRQUFRLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDO2dCQUNELFFBQVEsRUFBRSxDQUFDO1lBQ2YsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsTUFBQyxDQUFXLENBQUMsS0FBSyxtQ0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBRVksUUFBQSx1QkFBdUIsR0FBRywrQkFBYyxDQUFDLFFBQVEsQ0FDMUQsZ0RBQWdELEVBQ2hELElBQUksMkJBQTJCLEVBQUUsRUFDakMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNILG9CQUFvQixFQUFFLEVBQUU7Q0FDM0IsQ0FBQyxDQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb2NrZXRGdW5jdGlvbiB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vU29ja2V0RnVuY3Rpb25cIjtcblxuLy8gVGhlIGNsaWVudCBoYWxmIG9mIHJvdXRpbmctY2hhbmdlIGJyb2FkY2FzdHM6IHRoZSBzdG9yYWdlIHNlcnZlciB0cmFja3MgaXRzIGNvbm5lY3RlZCBjbGllbnRzIChzZWUgdHJhY2tDYWxsZXIgaW4gc3RvcmFnZUNvbnRyb2xsZXIpIGFuZCBjYWxscyByb3V0aW5nQ29uZmlnQ2hhbmdlZCBvbiBldmVyeSBvbmUgb2YgdGhlbSB0aGUgbW9tZW50IGEgcm91dGluZyBjb25maWcgY2hhbmdlcyAtIGNsaWVudHMgcmVhY3QgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiB3YWl0aW5nIGZvciBhIHBvbGwuXG5cbmNvbnN0IGxpc3RlbmVycyA9IG5ldyBTZXQ8KCkgPT4gdm9pZD4oKTtcblxuLyoqIFN1YnNjcmliZSB0byBzZXJ2ZXItcHVzaGVkIHJvdXRpbmcgY2hhbmdlIG5vdGlmaWNhdGlvbnMuIFJldHVybnMgdGhlIHVuc3Vic2NyaWJlIGZ1bmN0aW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9uU2VydmVyUm91dGluZ0NoYW5nZWQobGlzdGVuZXI6ICgpID0+IHZvaWQpOiAoKSA9PiB2b2lkIHtcbiAgICBsaXN0ZW5lcnMuYWRkKGxpc3RlbmVyKTtcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBsaXN0ZW5lcnMuZGVsZXRlKGxpc3RlbmVyKTtcbiAgICB9O1xufVxuXG5jbGFzcyBTdG9yYWdlQ2xpZW50Q29udHJvbGxlckJhc2Uge1xuICAgIGFzeW5jIHJvdXRpbmdDb25maWdDaGFuZ2VkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBmb3IgKGxldCBsaXN0ZW5lciBvZiBbLi4ubGlzdGVuZXJzXSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsaXN0ZW5lcigpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFJvdXRpbmcgY2hhbmdlIGxpc3RlbmVyIGZhaWxlZDogJHsoZSBhcyBFcnJvcikuc3RhY2sgPz8gZX1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IFN0b3JhZ2VDbGllbnRDb250cm9sbGVyID0gU29ja2V0RnVuY3Rpb24ucmVnaXN0ZXIoXG4gICAgXCJTdG9yYWdlQ2xpZW50Q29udHJvbGxlci1yZW1vdGVTdG9yYWdlLTJiOGYxYTZkXCIsXG4gICAgbmV3IFN0b3JhZ2VDbGllbnRDb250cm9sbGVyQmFzZSgpLFxuICAgICgpID0+ICh7XG4gICAgICAgIHJvdXRpbmdDb25maWdDaGFuZ2VkOiB7fSxcbiAgICB9KSxcbik7XG4iXX0=
32
- /* _JS_SOURCE_HASH = "7ba86a20013a625b22a157543f003a4979586ffa6eddba837bbb96140bdc2197"; */
32
+ /* _JS_SOURCE_HASH = "7ef96e2ea624c351032e8ff3e59b3ea4728adf24566c77b9cc46367a3605832a"; */