sliftutils 1.8.2 → 1.8.4
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.
- package/dist/treeSummary.ts.cache +2 -2
- package/index.d.ts +19 -0
- package/misc/dist/getSecret.ts.cache +2 -2
- package/package.json +1 -1
- package/security/machines/dist/machines.ts.cache +2 -2
- package/storage/dist/ArchivesDisk.ts.cache +2 -2
- package/storage/dist/IArchives.ts.cache +2 -2
- package/storage/dist/StreamingLogs.ts.cache +2 -2
- package/storage/dist/TransactionFile.ts.cache +2 -2
- package/storage/dist/archiveHelpers.ts.cache +2 -2
- package/storage/dist/backblaze.ts.cache +2 -2
- package/storage/proxydatabase/dist/ivfEmbeddingDatabase.ts.cache +17 -5
- package/storage/proxydatabase/ivfEmbeddingDatabase.ts +16 -3
- package/storage/remoteStorage/createArchives.d.ts +19 -0
- package/storage/remoteStorage/createArchives.ts +155 -44
- package/storage/remoteStorage/dist/ArchivesDelayed.ts.cache +2 -2
- package/storage/remoteStorage/dist/ArchivesRemote.ts.cache +2 -2
- package/storage/remoteStorage/dist/ArchivesUrl.ts.cache +2 -2
- package/storage/remoteStorage/dist/accessStats.ts.cache +2 -2
- package/storage/remoteStorage/dist/blobStore.ts.cache +2 -2
- package/storage/remoteStorage/dist/bucketDisk.ts.cache +2 -2
- package/storage/remoteStorage/dist/certTrustModal.tsx.cache +2 -2
- package/storage/remoteStorage/dist/chainStartup.ts.cache +2 -2
- package/storage/remoteStorage/dist/cliArgs.ts.cache +2 -2
- package/storage/remoteStorage/dist/createArchives.ts.cache +141 -50
- package/storage/remoteStorage/dist/deployTakeover.ts.cache +2 -2
- package/storage/remoteStorage/dist/intermediateManagement.ts.cache +2 -2
- package/storage/remoteStorage/dist/intermediateSources.ts.cache +2 -2
- package/storage/remoteStorage/dist/remoteConfig.ts.cache +2 -2
- package/storage/remoteStorage/dist/serverConfig.ts.cache +2 -2
- package/storage/remoteStorage/dist/sourceWrapper.ts.cache +2 -2
- package/storage/remoteStorage/dist/sourcesList.ts.cache +2 -2
- package/storage/remoteStorage/dist/storageClientController.ts.cache +2 -2
- package/storage/remoteStorage/dist/storageController.ts.cache +2 -2
- package/storage/remoteStorage/dist/storageLogs.ts.cache +2 -2
- package/storage/remoteStorage/dist/storageServerState.ts.cache +2 -2
- package/storage/remoteStorage/dist/storeConfig.ts.cache +2 -2
- package/storage/remoteStorage/dist/storePlan.ts.cache +2 -2
- package/storage/remoteStorage/dist/storeSources.ts.cache +2 -2
- package/storage/remoteStorage/dist/storeSync.ts.cache +2 -2
- package/storage/remoteStorage/dist/validation.ts.cache +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -139,4 +139,4 @@ function getMainPortAcquireDelay() {
|
|
|
139
139
|
}
|
|
140
140
|
exports.getMainPortAcquireDelay = getMainPortAcquireDelay;
|
|
141
141
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95VGFrZW92ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3lUYWtlb3Zlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBQ3hCLHFFQUF3RTtBQUN4RSxrRUFBK0U7QUFFL0UsTUFBTSw4QkFBOEIsR0FBRywwQkFBMEIsQ0FBQztBQUNsRSxNQUFNLHlCQUF5QixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFDM0MsTUFBTSxxQkFBcUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ3hDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUN0QyxNQUFNLGVBQWUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUN2QyxxTUFBcU07QUFDck0sTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUNsRCxNQUFNLGtCQUFrQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDckMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDaEMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBY3RDLElBQUksUUFBb0MsQ0FBQztBQUV6QyxTQUFTLEdBQUcsQ0FBQyxJQUFZO0lBQ3JCLE9BQU8sSUFBQSwrQkFBc0IsRUFBQyxJQUFJLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxTQUFTO0lBQ2QsT0FBTyxRQUFRLE9BQU8sQ0FBQyxHQUFHLEdBQUcsQ0FBQztBQUNsQyxDQUFDO0FBRUQsU0FBUyxpQkFBaUI7SUFDdEIsT0FBTyxjQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQ25FLENBQUM7QUFFRCxLQUFLLFVBQVUsbUJBQW1COztJQUM5QixJ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LENBQUM7QUFIRCxrREFHQztBQUVELGlLQUFpSztBQUNqSyxTQUFnQix1QkFBdUI7SUFDbkMsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPLGtCQUFrQixDQUFDO0lBQ3pDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLFdBQVcsRUFBRSxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFDcEQsT0FBTyxrQkFBa0IsQ0FBQztJQUM5QixDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQztBQUM5QixDQUFDO0FBTkQsMERBTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgc3RhcnRJbnRlcm1lZGlhdGVNYWludGVuYW5jZSB9IGZyb20gXCIuL2ludGVybWVkaWF0ZU1hbmFnZW1lbnRcIjtcbmltcG9ydCB7IGZvcm1hdERhdGVUaW1lRGV0YWlsZWQgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9mb3JtYXR0aW5nL2Zvcm1hdFwiO1xuXG5jb25zdCBQQVJBTUVURVJTX1RJTUVMSU5FX0ZJTEVfUkVHRVggPSAvXihcXGQrKS1wYXJhbWV0ZXJzXFwuanNvbiQvO1xuY29uc3QgREVQTE9ZX0RFVEVDVF9SRVRSWV9ERUxBWSA9IDUgKiAxMDAwO1xuY29uc3QgREVQTE9ZX0RFVEVDVF9USU1FT1VUID0gMzAgKiAxMDAwO1xuY29uc3QgRVhJVF9MT0dfRkxVU0hfREVMQVkgPSA1ICogMTAwMDtcbmNvbnN0IEFMVF9QT1JUX0xJTkdFUiA9IDMwICogNjAgKiAxMDAwO1xuLy8gVGhlIGVuZCB0aW1lIG5lZWRzIHRvIGJlIGVub3VnaCBhZnRlciB0aGUga2lsbCB0aW1lIHRoYXQgd2UgYXJlIGNlcnRhaW4gd2Ugd2lsbCBoYXZlIHRoZSBtYWluIHBvcnQgYnkgdGhlbi4gU2NhbGVkIHVwIHdpdGggdGhlIG92ZXJsYXAsIHNvIHVudXN1YWxseSBsb25nIG92ZXJsYXBzIGdldCBhbiBlcXVhbGx5IGdlbmVyb3VzIGJ1ZmZlci5cbmNvbnN0IElOVEVSTUVESUFURV9FTkRfTUlOX0JVRkZFUiA9IDUgKiA2MCAqIDEwMDA7XG5jb25zdCBBQ1FVSVJFX1NMT1dfREVMQVkgPSAzMCAqIDEwMDA7XG5jb25zdCBBQ1FVSVJFX0ZBU1RfREVMQVkgPSAxMDAwO1xuY29uc3QgQUNRVUlSRV9GQVNUX1dJTkRPVyA9IDYwICogMTAwMDtcblxudHlwZSBUaW1lbGluZUVudHJ5ID0ge1xuICAgIHBhcmFtZXRlcnM6IHsgcmVsZWFzZVRpbWU/OiBudW1iZXI7IG92ZXJsYXBUaW1lPzogbnVtYmVyIH07XG59O1xuXG50eXBlIERlcGxveVRha2VvdmVyID0ge1xuICAgIHJlbGVhc2VUaW1lOiBudW1iZXI7XG4gICAgb3ZlcmxhcFRpbWU6IG51bWJlcjtcbiAgICBhbHRQb3J0PzogbnVtYmVyO1xuICAgIC8vIEZyb3plbiB3aGVuIHRoZSBhbHQgcG9ydCBpcyB0YWtlbiAoYSBtb3Zpbmcgc3RhcnQgd291bGQgbWFrZSBldmVyeSBtYWludGVuYW5jZSBwYXNzIHdyaXRlIGEgbmV3IGNvbmZpZylcbiAgICBpbnRlcm1lZGlhdGVTdGFydD86IG51bWJlcjtcbn07XG5cbmxldCB0YWtlb3ZlcjogRGVwbG95VGFrZW92ZXIgfCB1bmRlZmluZWQ7XG5cbmZ1bmN0aW9uIGlzbyh0aW1lOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXREYXRlVGltZURldGFpbGVkKHRpbWUpO1xufVxuXG5mdW5jdGlvbiBsb2dQcmVmaXgoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFtwaWQgJHtwcm9jZXNzLnBpZH1dYDtcbn1cblxuZnVuY3Rpb24gZ2V0VGltZWxpbmVGb2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcGF0aC5kaXJuYW1lKHByb2Nlc3MuY3dkKCkpLnJlcGxhY2VBbGwoXCJcXFxcXCIsIFwiL1wiKSArIFwiL1wiO1xufVxuXG5hc3luYyBmdW5jdGlvbiByZWFkVGltZWxpbmVFbnRyaWVzKCk6IFByb21pc2U8VGltZWxpbmVFbnRyeVtdPiB7XG4gICAgbGV0IGZvbGRlciA9IGdldFRpbWVsaW5lRm9sZGVyKCk7XG4gICAgbGV0IGZpbGVzOiBzdHJpbmdbXTtcbiAgICB0cnkge1xuICAgICAgICBmaWxlcyA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRkaXIoZm9sZGVyKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgJHtsb2dQcmVmaXgoKX0gQ291bGQgbm90IHJlYWQgdGhlIGRlcGxveSB0aW1lbGluZSBmb2xkZXIgJHtmb2xkZXJ9OiAkeyhlIGFzIEVycm9yKS5zdGFjayA/PyBlfWApO1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGxldCBlbnRyaWVzOiBUaW1lbGluZUVudHJ5W10gPSBbXTtcbiAgICBmb3IgKGxldCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGlmICghUEFSQU1FVEVSU19USU1FTElORV9GSUxFX1JFR0VYLnRlc3QoZmlsZSkpIGNvbnRpbnVlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZW50cmllcy5wdXNoKEpTT04ucGFyc2UoYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUoZm9sZGVyICsgZmlsZSwgXCJ1dGY4XCIpKSBhcyBUaW1lbGluZUVudHJ5KTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAke2xvZ1ByZWZpeCgpfSBDb3VsZCBub3QgcmVhZCBkZXBsb3kgdGltZWxpbmUgZmlsZSAke2ZvbGRlciArIGZpbGV9OiAkeyhlIGFzIEVycm9yKS5zdGFjayA/PyBlfWApO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBlbnRyaWVzO1xufVxuXG4vLyBUaGUgbmV3ZXN0IHJlbGVhc2UgaW4gdGhlIHRpbWVsaW5lIGlzIHRoZSBvbmUgd2UgYXJlIHBhcnQgb2YgLSB0aGUgdGltZWxpbmUgaXMgYXBwZW5kLW9ubHkgaGlzdG9yeSwgc28gd2hhdGV2ZXIgcHJvY2VzcyBzdGFydHMgdXAgZHVyaW5nIGEgdGFrZW92ZXIgYmVsb25ncyB0byBpdHMgbGF0ZXN0IGVudHJ5XG5mdW5jdGlvbiBmaW5kT3VyUmVsZWFzZShlbnRyaWVzOiBUaW1lbGluZUVudHJ5W10pOiBEZXBsb3lUYWtlb3ZlciB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IGJlc3Q6IERlcGxveVRha2VvdmVyIHwgdW5kZWZpbmVkO1xuICAgIGZvciAobGV0IGVudHJ5IG9mIGVudHJpZXMpIHtcbiAgICAgICAgbGV0IHJlbGVhc2VUaW1lID0gZW50cnkucGFyYW1ldGVycy5yZWxlYXNlVGltZTtcbiAgICAgICAgaWYgKHJlbGVhc2VUaW1lID09PSB1bmRlZmluZWQpIGNvbnRpbnVlO1xuICAgICAgICBsZXQgb3ZlcmxhcFRpbWUgPSBlbnRyeS5wYXJhbWV0ZXJzLm92ZXJsYXBUaW1lIHx8IDA7XG4gICAgICAgIGlmIChiZXN0ICYmIGJlc3QucmVsZWFzZVRpbWUgPj0gcmVsZWFzZVRpbWUpIGNvbnRpbnVlO1xuICAgICAgICBiZXN0ID0geyByZWxlYXNlVGltZSwgb3ZlcmxhcFRpbWUgfTtcbiAgICB9XG4gICAgcmV0dXJuIGJlc3Q7XG59XG5cbi8qKiBDYWxsZWQgd2hlbiB0aGUgbWFpbiBwb3J0IGlzIGFscmVhZHkgaW4gdXNlLCB3aGljaCBvbiBhIGhlYWx0aHkgbWFjaGluZSBvbmx5IGhhcHBlbnMgd2hpbGUgb3VyIHByZWRlY2Vzc29yIGlzIHN0aWxsIHJ1bm5pbmcgYSBkZXBsb3kgb3ZlcmxhcC4gQ29uZmlybXMgdGhhdCBhZ2FpbnN0IHRoZSBkZXBsb3kgdGltZWxpbmU7IGlmIG5vIGRlcGxveSBpcyBpbiBwcm9ncmVzcyB3ZSBhcmUgaW4gYSBiYWQgc3RhdGUgKHNvbWVvbmUgZWxzZSBob2xkcyBvdXIgcG9ydCkgYW5kIHRoZSBwcm9jZXNzIG11c3Qgbm90IGtlZXAgcnVubmluZy4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXRlY3REZXBsb3lUYWtlb3ZlcigpOiBQcm9taXNlPERlcGxveVRha2VvdmVyPiB7XG4gICAgY29uc29sZS53YXJuKGAke2xvZ1ByZWZpeCgpfSBPdXIgbWFpbiBwb3J0IGlzIGluIHVzZSwgd2hpY2ggc2hvdWxkIG9ubHkgaGFwcGVuIHdoaWxlIGEgZGVwbG95IG92ZXJsYXAgaXMgcnVubmluZyAtIGNoZWNraW5nIHRoZSBkZXBsb3kgdGltZWxpbmUgaW4gJHtnZXRUaW1lbGluZUZvbGRlcigpfSBmb3IgdGhlIHJlbGVhc2Ugd2UgYXJlIHBhcnQgb2ZgKTtcbiAgICBsZXQgc3RhcnQgPSBEYXRlLm5vdygpO1xuICAgIGxldCBhdHRlbXB0ID0gMDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICBhdHRlbXB0Kys7XG4gICAgICAgIGxldCBlbnRyaWVzID0gYXdhaXQgcmVhZFRpbWVsaW5lRW50cmllcygpO1xuICAgICAgICBsZXQgZm91bmQgPSBmaW5kT3VyUmVsZWFzZShlbnRyaWVzKTtcbiAgICAgICAgaWYgKGZvdW5kKSB7XG4gICAgICAgICAgICB0YWtlb3ZlciA9IGZvdW5kO1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGAke2xvZ1ByZWZpeCgpfSBEZXBsb3kgdGFrZW92ZXIgY29uZmlybWVkIG9uIGF0dGVtcHQgJHthdHRlbXB0fTogcmVsZWFzZSBhdCAke2lzbyhmb3VuZC5yZWxlYXNlVGltZSl9LCBvdmVybGFwICR7Zm91bmQub3ZlcmxhcFRpbWV9bXMsIHNvIG91ciBwcmVkZWNlc3NvciBob2xkcyB0aGUgbWFpbiBwb3J0IHVudGlsICR7aXNvKGZvdW5kLnJlbGVhc2VUaW1lICsgZm91bmQub3ZlcmxhcFRpbWUpfS4gV2UgYXJlIHRoZSBzdWNjZXNzb3IuYCk7XG4gICAgICAgICAgICByZXR1cm4gZm91bmQ7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGVsYXBzZWQgPSBEYXRlLm5vdygpIC0gc3RhcnQ7XG4gICAgICAgIGlmIChlbGFwc2VkID49IERFUExPWV9ERVRFQ1RfVElNRU9VVCkge1xuICAgICAgICAgICAgLy8gTm90IGEgZGVwbG95LCBzbyBzb21ldGhpbmcgZWxzZSBob2xkcyBvdXIgcG9ydCBhbmQgbm90aGluZyB3ZSBkbyBmcm9tIGhlcmUgaXMgY29ycmVjdC4gRXhpdCwgZ2l2aW5nIHRoZSBsb2cgdGltZSB0byByZWFjaCB0aGUgZGlzayBmaXJzdCAtIHRoZSBtZXNzYWdlIGlzIHRoZSBvbmx5IHRoaW5nIHRoYXQgZXhwbGFpbnMgdGhlIGV4aXQuXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGAke2xvZ1ByZWZpeCgpfSBPdXIgbWFpbiBwb3J0IGlzIGluIHVzZSwgYnV0IHRoZSBkZXBsb3kgdGltZWxpbmUgaW4gJHtnZXRUaW1lbGluZUZvbGRlcigpfSBzaG93ZWQgbm8gcmVsZWFzZSBpbiBwcm9ncmVzcyBhY3Jvc3MgJHthdHRlbXB0fSBjaGVja3Mgb3ZlciAke2VsYXBzZWR9bXMuIFNvbWV0aGluZyBlbHNlIGlzIGhvbGRpbmcgb3VyIHBvcnQsIHNvIHRoaXMgcHJvY2VzcyBpcyBpbiBhIGJhZCBzdGF0ZS4gRXhpdGluZyBpbiAke0VYSVRfTE9HX0ZMVVNIX0RFTEFZfW1zLmApO1xuICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIEVYSVRfTE9HX0ZMVVNIX0RFTEFZKSk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS53YXJuKGAke2xvZ1ByZWZpeCgpfSBObyByZWxlYXNlIGluIHByb2dyZXNzIGluIHRoZSBkZXBsb3kgdGltZWxpbmUgeWV0IChhdHRlbXB0ICR7YXR0ZW1wdH0sICR7ZWxhcHNlZH1tcyBvZiAke0RFUExPWV9ERVRFQ1RfVElNRU9VVH1tcyk7IHJldHJ5aW5nIGluICR7REVQTE9ZX0RFVEVDVF9SRVRSWV9ERUxBWX1tc2ApO1xuICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgREVQTE9ZX0RFVEVDVF9SRVRSWV9ERUxBWSkpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEFsdFBvcnQocG9ydDogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKCF0YWtlb3Zlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEFsdGVybmF0ZSBwb3J0IHRha2VuIHdpdGhvdXQgYSBkZXRlY3RlZCBkZXBsb3kgdGFrZW92ZXI6IHBvcnQgJHtwb3J0fSAtIGRldGVjdERlcGxveVRha2VvdmVyIG11c3QgcnVuIGZpcnN0YCk7XG4gICAgfVxuICAgIHRha2VvdmVyLmFsdFBvcnQgPSBwb3J0O1xuICAgIC8vIE5lZWRzIHRvIGJlIGVub3VnaCBhZnRlciBvdXIgc3RhcnR1cCB0aW1lIHRoYXQgdGhlIHByZXZpb3VzIG5vZGUgaGFzIHRpbWUgdG8gc2VlIGl0J3MgZ29pbmcgdG8gYmUgc2h1dCBkb3duIGFuZCBmbHVzaCAoYW5kIHNvIHdlIGhhdmUgdGltZSB0byBzdGFydCB1cCksIGFuZCBlbm91Z2ggYmVmb3JlIHRoZSBraWxsIHRpbWUgdGhhdCBub2RlcyBoYXZlIHRpbWUgdG8gbm90aWNlIHdlIGV4aXN0IGFuZCBwcmVwYXJlIHRvIGNvbm5lY3QgdG8gdXMgLSBoYWxmd2F5IGJldHdlZW4gbm93IGFuZCB0aGUga2lsbCB0aW1lIHNhdGlzZmllcyBib3RoXG4gICAgdGFrZW92ZXIuaW50ZXJtZWRpYXRlU3RhcnQgPSBNYXRoLnJvdW5kKChEYXRlLm5vdygpICsgZ2V0S2lsbFRpbWUoKSkgLyAyKTtcbiAgICBjb25zb2xlLndhcm4oYCR7bG9nUHJlZml4KCl9IExpc3RlbmluZyBvbiBhbHRlcm5hdGUgcG9ydCAke3BvcnR9OiB3cml0ZXMgcm91dGUgaGVyZSBmcm9tICR7aXNvKHRha2VvdmVyLmludGVybWVkaWF0ZVN0YXJ0KX0gdW50aWwgJHtpc28oZ2V0SW50ZXJtZWRpYXRlRW5kKCkpfSwgYW5kIHdlIGtlZXAgbGlzdGVuaW5nIHVudGlsICR7aXNvKGdldEFsdFBvcnRMaXN0ZW5FbmQoKSl9YCk7XG4gICAgc3RhcnRJbnRlcm1lZGlhdGVNYWludGVuYW5jZSgpO1xufVxuXG4vKiogVGhlIHdpbmRvdyBpbiB3aGljaCB3cml0ZXMgYmVsb25nIHRvIG91ciBhbHRlcm5hdGUgcG9ydDogZnJvbSBwYXJ0d2F5IHRocm91Z2ggdGhlIG92ZXJsYXAgKGdpdmluZyB0aGUgcHJlZGVjZXNzb3Igbm90aWNlIHRvIGZsdXNoKSB1bnRpbCBzYWZlbHkgcGFzdCBpdHMga2lsbCAoZ2l2aW5nIHVzIHRpbWUgdG8gYWN0dWFsbHkgdGFrZSB0aGUgbWFpbiBwb3J0KS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRUYWtlb3ZlckludGVybWVkaWF0ZSgpOiB7IHN0YXJ0OiBudW1iZXI7IGVuZDogbnVtYmVyOyBhbHRQb3J0OiBudW1iZXIgfSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0YWtlb3Zlcj8uYWx0UG9ydCB8fCB0YWtlb3Zlci5pbnRlcm1lZGlhdGVTdGFydCA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiB7IHN0YXJ0OiB0YWtlb3Zlci5pbnRlcm1lZGlhdGVTdGFydCwgZW5kOiBnZXRJbnRlcm1lZGlhdGVFbmQoKSwgYWx0UG9ydDogdGFrZW92ZXIuYWx0UG9ydCB9O1xufVxuXG4vKiogV2hlbiBvdXIgcHJlZGVjZXNzb3IgaXMga2lsbGVkIGFuZCB0aGUgbWFpbiBwb3J0IGZyZWVzLiBQb3J0IGFjcXVpc2l0aW9uIHBvbGxzIGFnYWluc3QgdGhpcyBvbiBpdHMgb3duIC0gaXQgaXMgZW50aXJlbHkgaW5kZXBlbmRlbnQgb2YgdGhlIGludGVybWVkaWF0ZSB3aW5kb3cuICovXG5mdW5jdGlvbiBnZXRLaWxsVGltZSgpOiBudW1iZXIge1xuICAgIGlmICghdGFrZW92ZXIpIHJldHVybiAwO1xuICAgIHJldHVybiB0YWtlb3Zlci5yZWxlYXNlVGltZSArIHRha2VvdmVyLm92ZXJsYXBUaW1lO1xufVxuXG5mdW5jdGlvbiBnZXRJbnRlcm1lZGlhdGVFbmQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRha2VvdmVyKSByZXR1cm4gMDtcbiAgICByZXR1cm4gZ2V0S2lsbFRpbWUoKSArIE1hdGgubWF4KElOVEVSTUVESUFURV9FTkRfTUlOX0JVRkZFUiwgdGFrZW92ZXIub3ZlcmxhcFRpbWUpO1xufVxuXG4vKiogV2UgbmV2ZXIgc3RvcCBsaXN0ZW5pbmcgb24gdGhlIGFsdGVybmF0ZSBwb3J0IHdoaWxlIGl0cyB3aW5kb3cgaXMgc3RpbGwgdmFsaWQsIGFuZCBob2xkIGl0IHdlbGwgcGFzdCB0aGF0IGZvciBjbGllbnRzIHRoYXQgaGF2ZSBub3QgY2F1Z2h0IHVwIHlldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbHRQb3J0TGlzdGVuRW5kKCk6IG51bWJlciB7XG4gICAgaWYgKCF0YWtlb3ZlcikgcmV0dXJuIDA7XG4gICAgcmV0dXJuIE1hdGgubWF4KHRha2VvdmVyLnJlbGVhc2VUaW1lICsgdGFrZW92ZXIub3ZlcmxhcFRpbWUgKiAyLCBnZXRJbnRlcm1lZGlhdGVFbmQoKSArIEFMVF9QT1JUX0xJTkdFUik7XG59XG5cbi8qKiBIb3cgbG9uZyB0byB3YWl0IGJldHdlZW4gbWFpbi1wb3J0IGFjcXVpc2l0aW9uIGF0dGVtcHRzOiB0aWdodCBhcm91bmQgb3VyIHByZWRlY2Vzc29yJ3Mgc2NoZWR1bGVkIGRlYXRoICh3aGVuIHRoZSBwb3J0IGFjdHVhbGx5IGZyZWVzKSwgcmVsYXhlZCBvdGhlcndpc2UuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFpblBvcnRBY3F1aXJlRGVsYXkoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRha2VvdmVyKSByZXR1cm4gQUNRVUlSRV9TTE9XX0RFTEFZO1xuICAgIGlmIChEYXRlLm5vdygpID49IGdldEtpbGxUaW1lKCkgLSBBQ1FVSVJFX0ZBU1RfV0lORE9XKSB7XG4gICAgICAgIHJldHVybiBBQ1FVSVJFX0ZBU1RfREVMQVk7XG4gICAgfVxuICAgIHJldHVybiBBQ1FVSVJFX1NMT1dfREVMQVk7XG59XG4iXX0=
|
|
142
|
-
/* _JS_SOURCE_HASH = "
|
|
142
|
+
/* _JS_SOURCE_HASH = "7822271e6bf222118b344de45d6be9322b91ff51a6fb9f364c2466bef9dcc1ff"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
3
|
//exports.startIntermediateMaintenance = exports.reinjectIntermediates = exports.scheduleBoundaryWork = void 0;
|
|
4
4
|
const caching_1 = require("socket-function/src/caching");
|
|
@@ -287,4 +287,4 @@ exports.startIntermediateMaintenance = (0, caching_1.lazy)(() => {
|
|
|
287
287
|
(0, batching_1.runInfinitePoll)(INTERMEDIATE_MAINTAIN_INTERVAL, maintainIntermediates);
|
|
288
288
|
});
|
|
289
289
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJtZWRpYXRlTWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVybWVkaWF0ZU1hbmFnZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQW1EO0FBQ25ELGtFQUErRTtBQUMvRSwyREFBK0Q7QUFFL0QsaURBQStJO0FBQy9JLCtEQUF3SztBQUN4SyxxREFBMkQ7QUFDM0QsaURBQXdEO0FBQ3hELHFEQUFpRjtBQUNqRiwyQ0FBb0U7QUFDcEUsNkRBQXlHO0FBQ3pHLDZDQUEwRTtBQUMxRSx1REFBNkQ7QUFDN0QsMkNBQXNEO0FBRXRELG9kQUFvZDtBQUVwZCxNQUFNLGVBQWUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztBQUNwQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUM7QUFDN0IsOEpBQThKO0FBQzlKLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7QUFDaEUsc0hBQXNIO0FBQ3RILE1BQU0sc0JBQXNCLEdBQUcsMENBQXdCLEdBQUcsbUNBQXVCLENBQUM7QUFDbEYsTUFBTSwyQkFBMkIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQzlDLE1BQU0seUJBQXlCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUM1QyxNQUFNLDhCQUE4QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFFakQsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO0FBQ2pELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztBQUUvQyxrU0FBa1M7QUFDbFMsU0FBZ0Isb0JBQW9CLENBQUMsT0FBZSxFQUFFLFVBQWtCLEVBQUUsT0FBcUI7O0lBQzNGLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLElBQUksV0FBVyxHQUFHLElBQUEsMkJBQWUsRUFBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFpQixDQUFDLENBQUM7SUFDN0csSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLElBQUksTUFBTSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFDL0IsS0FBSyxJQUFJLElBQUksSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUMzQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFHLEdBQUcsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDakQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUNELGtLQUFrSztJQUNsSyxLQUFLLElBQUksSUFBSSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxHQUFHLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQztZQUFFLFNBQVM7UUFDekQsSUFBSSxHQUFHLEdBQUcsS0FBSyxHQUFHLHNCQUFzQjtZQUFFLFNBQVM7UUFDbkQsSUFBSSxXQUFXLEdBQUcsR0FBRyxHQUFHLElBQUksS0FBSyxVQUFVLENBQUM7UUFDNUMsSUFBSSxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBQUUsU0FBUztRQUN0RCxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDeEMsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUN4QixLQUFLLGVBQWUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSwyQkFBMkIsRUFBRSxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFRLEVBQUUsRUFBRSxXQUFDLE9BQUEsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsR0FBRyxZQUFZLE1BQUEsQ0FBQyxDQUFDLEtBQUssbUNBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxFQUFBLENBQUMsQ0FBQztRQUMvTCxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztRQUNoQyxNQUFBLE1BQUMsS0FBZ0MsRUFBQyxLQUFLLGtEQUFJLENBQUM7SUFDaEQsQ0FBQztJQUNELEtBQUssSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDdkIsS0FBSyxJQUFJLE1BQU0sSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1lBQ3ZDLElBQUksRUFBRSxHQUFHLEtBQUssR0FBRyxNQUFNLENBQUM7WUFDeEIsSUFBSSxFQUFFLElBQUksR0FBRztnQkFBRSxTQUFTO1lBQ3hCLElBQUksV0FBVyxHQUFHLEdBQUcsR0FBRyxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUM5QyxJQUFJLHNCQUFzQixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7Z0JBQUUsU0FBUztZQUN0RCxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEMsOElBQThJO1lBQzlJLElBQUksR0FBRyxHQUFHLEdBQUcsRUFBRTs7Z0JBQ1gsSUFBSSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDeEIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7d0JBQ2xCLEdBQUcsRUFBRSxDQUFDO3dCQUNOLE9BQU87b0JBQ1gsQ0FBQztvQkFDRCxLQUFLLGVBQWUsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFRLEVBQUUsRUFBRSxXQUFDLE9BQUEsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsR0FBRyxZQUFZLE1BQUEsQ0FBQyxDQUFDLEtBQUssbUNBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxFQUFBLENBQUMsQ0FBQztnQkFDM0osQ0FBQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxNQUFBLE1BQUMsS0FBZ0MsRUFBQyxLQUFLLGtEQUFJLENBQUM7WUFDaEQsQ0FBQyxDQUFDO1lBQ0YsR0FBRyxFQUFFLENBQUM7UUFDVixDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUE3Q0Qsb0RBNkNDO0FBRUQsNmFBQTZhO0FBQzdhLEtBQUssVUFBVSxlQUFlLENBQUMsT0FBZSxFQUFFLFVBQWtCLEVBQUUsV0FBbUIsRUFBRSxNQUFjLEVBQUUsV0FBb0I7O0lBQ3pILElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ3JDLElBQUksS0FBSyxHQUFHLFVBQVUsR0FBRyxxQkFBcUIsSUFBQSwrQkFBc0IsRUFBQyxXQUFXLENBQUMsWUFBWSxXQUFXLElBQUksR0FBRyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNsSSxJQUFJLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEtBQUssZ0RBQWdELENBQUMsQ0FBQztRQUM5RixPQUFPO0lBQ1gsQ0FBQztJQUNELG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLENBQUM7UUFDRCxJQUFJLFNBQVMsR0FBRyxNQUFNLElBQUEsZ0NBQW1CLEVBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUN2QixJQUFJLFNBQVMsR0FBRyxJQUFBLGdDQUFvQixFQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBQSwyQkFBZSxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUM5RyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU07WUFBRSxPQUFPO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEtBQUssTUFBTSxTQUFTLENBQUMsTUFBTSwwQkFBMEIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFdBQVcsSUFBSSxjQUFjLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksS0FBSyxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNVMsSUFBSSxLQUFLLEdBQUcsV0FBVyxHQUFHLHNCQUFzQixDQUFDO1FBQ2pELEtBQUssSUFBSSxRQUFRLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsSUFBSSxTQUFTLEdBQUcsSUFBQSw2QkFBUSxFQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdELElBQUksUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN2QixNQUFNLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxDQUFDO1lBQ0QsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDaEQsSUFBSSxXQUFXLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDakQsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRO29CQUFFLFNBQVM7Z0JBQzlDLElBQUksQ0FBQztvQkFDRCxNQUFNLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFBLGtDQUFpQixFQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ3pGLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFrQixLQUFLLDRDQUE0QyxXQUFXLGFBQWEsTUFBQyxDQUFXLENBQUMsS0FBSyxtQ0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN4SSxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO1lBQVMsQ0FBQztRQUNQLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxDQUFDO0FBQ0wsQ0FBQztBQUVELDhMQUE4TDtBQUM5TCxTQUFnQixxQkFBcUIsQ0FBQyxPQUFpQyxFQUFFLFFBQXNCO0lBQzNGLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDOUIsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQ3RCLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztJQUNuQixLQUFLLElBQUksWUFBWSxJQUFJLElBQUEsNENBQXNCLEVBQUMsSUFBQSwrQ0FBeUIsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzlGLE1BQU0sR0FBRyxJQUFBLDhDQUF3QixFQUFDLE1BQU0sRUFBRTtZQUN0QyxRQUFRLEVBQUUsWUFBWSxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsR0FBRztZQUN2RCxlQUFlLEVBQUUsWUFBWSxDQUFDLEdBQUc7WUFDakMsS0FBSyxFQUFFLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLEdBQUcsRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUNuQyxDQUFDLENBQUM7UUFDSCxVQUFVLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNiLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxVQUFVLDRFQUE0RSxJQUFBLCtCQUFnQixFQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwSixDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQWpCRCxzREFpQkM7QUFFRCx5SkFBeUo7QUFDekosTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztBQUVyRCxLQUFLLFVBQVUscUJBQXFCLENBQUMsTUFBZ0k7SUFDakssSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDL0QsSUFBSSxHQUFHLEdBQUcsR0FBRyxPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7SUFDckMsSUFBSSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLElBQUksU0FBUyxHQUFHLHlCQUF5QixFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsR0FBRyxLQUFLLE1BQU0sdUJBQXVCLFNBQVMscUJBQXFCLHlCQUF5QixxREFBcUQsQ0FBQyxDQUFDO1FBQ3ZOLE9BQU87SUFDWCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUN4QyxJQUFJLGNBQWMsR0FBRyxJQUFBLCtCQUFnQixFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLElBQUksT0FBTyxHQUFHLElBQUEsNkNBQXVCLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsSUFBSSxJQUFJLEdBQWlCLEVBQUUsR0FBRyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDakQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLDJCQUFZLGVBQWUsR0FBRyxLQUFLLE1BQU0sY0FBYyxjQUFjLE9BQU8sT0FBTyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZJLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBQSxvQ0FBcUIsRUFBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BELHlNQUF5TTtJQUN6TSxNQUFNLElBQUEsdUNBQWtCLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sc0JBQXNCLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUMvRSxDQUFDO0FBRUQsS0FBSyxVQUFVLHNCQUFzQixDQUFDLE1BQXdHOztJQUMxSSxJQUFJLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBd0IsQ0FBQztJQUM5QyxLQUFLLElBQUksTUFBTSxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNyRSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsWUFBWTtZQUFFLFNBQVM7UUFDaEUsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksTUFBTSxHQUFHLElBQUEsNkJBQWMsRUFBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsVUFBVTtnQkFBRSxTQUFTO1FBQy9GLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQztZQUFFLFNBQVM7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDO1lBQ0QsTUFBTSxJQUFBLGtDQUFpQixFQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQywyQkFBWSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvRCxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsMkJBQVksZUFBZSxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxVQUFVLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNyRyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLEdBQUcsWUFBWSxNQUFDLENBQVcsQ0FBQyxLQUFLLG1DQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEcsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDO0FBRUQsa0tBQWtLO0FBQ2xLLEtBQUssVUFBVSxxQkFBcUI7SUFDaEMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFBLHFDQUFzQixHQUFFLENBQUM7SUFDaEQsSUFBSSxRQUFRLEdBQUcsSUFBQSx3Q0FBdUIsR0FBRSxDQUFDO0lBQ3pDLElBQUksT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUMzQixJQUFJLGNBQWMsR0FBYSxFQUFFLENBQUM7SUFDbEMsSUFBSSxPQUFPLEdBQWEsRUFBRSxDQUFDO0lBQzNCLDBUQUEwVDtJQUMxVCxJQUFJLFVBQVUsR0FBRyxJQUFBLHdDQUFtQixHQUFFLENBQUM7SUFDdkMsS0FBSyxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQzdDLElBQUksR0FBRyxHQUFHLEdBQUcsT0FBTyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ3JDLElBQUksTUFBTSxHQUFHLE1BQU0sSUFBQSxrQ0FBcUIsRUFBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLE1BQU07WUFBRSxTQUFTO1FBQ3RCLElBQUksT0FBTyxHQUFHLElBQUEsK0JBQWdCLEVBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLEdBQUcsMENBQTBDLENBQUMsQ0FBQztZQUMzRyxTQUFTO1FBQ2IsQ0FBQztRQUNELElBQUksT0FBTyxHQUFHLElBQUEsK0NBQXlCLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQzdELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdEQsTUFBTSxxQkFBcUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSx3Q0FBd0MsK0NBQXlCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzFNLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEIsU0FBUztRQUNiLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUTtZQUFFLFNBQVM7UUFDeEIsSUFBSSxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxDQUFDLFlBQVk7Z0JBQUUsT0FBTyxLQUFLLENBQUM7WUFDakYsSUFBSSxNQUFNLEdBQUcsSUFBQSw2QkFBYyxFQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1FBQzdELENBQUMsQ0FBNkIsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLFNBQVM7UUFDYixDQUFDO1FBQ0QsSUFBSSxRQUFRLEdBQUcsSUFBQSw4Q0FBd0IsRUFBQyxPQUFPLEVBQUU7WUFDN0MsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHO1lBQ3JCLGVBQWUsRUFBRSxJQUFBLG1DQUFvQixFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNwRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7WUFDckIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxHQUFHO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdkQsY0FBYyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QixTQUFTO1FBQ2IsQ0FBQztRQUNELE1BQU0scUJBQXFCLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsaUVBQWlFLFFBQVEsQ0FBQyxPQUFPLFNBQVMsSUFBQSwrQkFBc0IsRUFBQyxRQUFRLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxJQUFBLCtCQUFzQixFQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6VSxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU87SUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLHVIQUF1SCxDQUFDLENBQUM7UUFDckksT0FBTztJQUNYLENBQUM7SUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLFVBQVUsQ0FBQyxNQUFNLG9CQUFvQixjQUFjLENBQUMsTUFBTSx5Q0FBeUMsT0FBTyxDQUFDLE1BQU0sdUJBQXVCLENBQUMsQ0FBQztJQUN2TCxDQUFDO0FBQ0wsQ0FBQztBQUVELDBQQUEwUDtBQUMxUCxLQUFLLFVBQVUsMEJBQTBCOztJQUNyQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUEscUNBQXNCLEdBQUUsQ0FBQztJQUNoRCxJQUFJLEdBQUcsR0FBRyxXQUFXLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUN0QyxJQUFJLElBQStDLENBQUM7SUFDcEQsSUFBSSxDQUFDO1FBQ0QsSUFBSSxHQUFHLE1BQU0sSUFBQSwyQ0FBMEIsRUFBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxHQUFHLHlGQUF5RixNQUFDLENBQVcsQ0FBQyxLQUFLLG1DQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDekssT0FBTztJQUNYLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxxRkFBcUYsQ0FBQyxDQUFDO1FBQzVILE9BQU87SUFDWCxDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsR0FBRyxRQUFRLElBQUksQ0FBQyxNQUFNLHFGQUFxRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDek0sS0FBSyxJQUFJLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3ZDLElBQUksQ0FBQztZQUNELElBQUksTUFBTSxHQUFHLE1BQU0sSUFBQSxtQ0FBYyxFQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN2RCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUM3QixPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixPQUFPLElBQUksVUFBVSx3Q0FBd0MsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUM5RyxDQUFDO1FBQ0wsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixPQUFPLElBQUksVUFBVSx3Q0FBd0MsTUFBQyxDQUFXLENBQUMsS0FBSyxtQ0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQy9ILENBQUM7SUFDTCxDQUFDO0FBQ0wsQ0FBQztBQUVELHlMQUF5TDtBQUM1SyxRQUFBLDRCQUE0QixHQUFHLElBQUEsY0FBSSxFQUFDLEdBQUcsRUFBRTtJQUNsRCxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDYixNQUFNLDBCQUEwQixFQUFFLENBQUM7UUFDbkMsTUFBTSxxQkFBcUIsRUFBRSxDQUFDO0lBQ2xDLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBUSxFQUFFLEVBQUUsV0FBQyxPQUFBLE9BQU8sQ0FBQyxLQUFLLENBQUMsMERBQTBELE1BQUEsQ0FBQyxDQUFDLEtBQUssbUNBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQSxFQUFBLENBQUMsQ0FBQztJQUNsSCxJQUFBLDBCQUFlLEVBQUMsOEJBQThCLEVBQUUscUJBQXFCLENBQUMsQ0FBQztBQUMzRSxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGxhenkgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9jYWNoaW5nXCI7XG5pbXBvcnQgeyBmb3JtYXREYXRlVGltZURldGFpbGVkIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9zcmMvZm9ybWF0dGluZy9mb3JtYXRcIjtcbmltcG9ydCB7IHJ1bkluZmluaXRlUG9sbCB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL2JhdGNoaW5nXCI7XG5pbXBvcnQgeyBSZW1vdGVDb25maWcsIFNvdXJjZUNvbmZpZywgSG9zdGVkQ29uZmlnIH0gZnJvbSBcIi4uL0lBcmNoaXZlc1wiO1xuaW1wb3J0IHsgUk9VVElOR19GSUxFLCBnZXRDb25maWdWZXJzaW9uLCBzZXJpYWxpemVSZW1vdGVDb25maWcsIHBhcnNlUm91dGluZ0RhdGEsIHBhcnNlSG9zdGVkVXJsLCByZXBsYWNlSG9zdGVkVXJsUG9ydCB9IGZyb20gXCIuL3JlbW90ZUNvbmZpZ1wiO1xuaW1wb3J0IHsgaW5qZWN0SW50ZXJtZWRpYXRlU291cmNlLCBleHBpcmVJbnRlcm1lZGlhdGVTb3VyY2VzLCBnZXRJbnRlcm1lZGlhdGVTb3VyY2VzLCBuZXh0SW50ZXJtZWRpYXRlVmVyc2lvbiwgSU5URVJNRURJQVRFX0VYUElSRV9HUkFDRSB9IGZyb20gXCIuL2ludGVybWVkaWF0ZVNvdXJjZXNcIjtcbmltcG9ydCB7IGdldFRha2VvdmVySW50ZXJtZWRpYXRlIH0gZnJvbSBcIi4vZGVwbG95VGFrZW92ZXJcIjtcbmltcG9ydCB7IGdldFN0b3JhZ2VTZXJ2ZXJDb25maWcgfSBmcm9tIFwiLi9zZXJ2ZXJDb25maWdcIjtcbmltcG9ydCB7IGNyZWF0ZUFwaUFyY2hpdmVzLCBsaXN0U2VydmVyQWN0aXZlQnVja2V0S2V5cyB9IGZyb20gXCIuL2NyZWF0ZUFyY2hpdmVzXCI7XG5pbXBvcnQgeyBmaW5kU2VsZkluZGV4ZXMsIHByZXZpb3VzV2luZG93T3duZXJzIH0gZnJvbSBcIi4vc3RvcmVQbGFuXCI7XG5pbXBvcnQgeyBnZXRBY3RpdmVCdWNrZXRLZXlzLCBnZXRTdG9yZSwgYWN0aXZhdGVCdWNrZXQsIHdyaXRlUm91dGluZ0NvbmZpZyB9IGZyb20gXCIuL3N0b3JhZ2VTZXJ2ZXJTdGF0ZVwiO1xuaW1wb3J0IHsgcmVhZFJvdXRpbmdGcm9tRGlzaywgcmVhZE5ld2VzdFJvdXRpbmdGaWxlIH0gZnJvbSBcIi4vYnVja2V0RGlza1wiO1xuaW1wb3J0IHsgREVGQVVMVF9GQVNUX1dSSVRFX0RFTEFZIH0gZnJvbSBcIi4vQXJjaGl2ZXNEZWxheWVkXCI7XG5pbXBvcnQgeyBXSU5ET1dfRU5EX0ZMVVNIX01BUkdJTiB9IGZyb20gXCIuL2Jsb2JTdG9yZVwiO1xuXG4vLyBEZXBsb3kgc3dpdGNob3ZlcnMsIGFuZCB0aGUgaGFuZG92ZXJzIHRoZXkgY2F1c2UuIEEgc3dpdGNob3ZlciBpcyBhIHNvdXJjZSBtb3ZpbmcgdG8gYSBuZXcgcG9ydCBmb3IgYSBmZXcgbWludXRlczogd2UgZ2l2ZSBpdCBhIHZpcnR1YWwgdmFsaWQgd2luZG93IG9uIHRoYXQgcG9ydCAoYW4gXCJpbnRlcm1lZGlhdGVcIiksIHdoaWNoIG1lYW5zIHRoZSB3cml0ZSB0YXJnZXQgY2hhbmdlcyB0d2ljZSBpbiBxdWljayBzdWNjZXNzaW9uLCB3aGljaCBtZWFucyB0aGUgc3RvcmUgdGFraW5nIG92ZXIgaGFzIHRvIGdvIGFuZCBjb2xsZWN0IHRoZSB3cml0ZXMgdGhhdCBsYW5kZWQganVzdCBiZWZvcmUgaXQgZGlkLiBOb25lIG9mIHRoYXQgaXMgc3RvcmFnZSAtIGl0IGlzIHNjaGVkdWxpbmcgLSBzbyBpdCBsaXZlcyBoZXJlIHJhdGhlciB0aGFuIGluIHRoZSBzdG9yZSBvciBpbiB0aGUgc2VydmVyJ3MgYnVja2V0IHN0YXRlLlxuXG5jb25zdCBNQVhfVElNRVJfREVMQVkgPSAyICoqIDMxIC0gMTtcbmNvbnN0IEJPVU5EQVJZX0JVRkZFUiA9IDEwMDA7XG4vLyBBIGhhbmRvdmVyIGlzIHNjYW5uZWQganVzdCBiZWZvcmUgdGhlIGJvdW5kYXJ5LCBqdXN0IGFmdGVyLCBhbmQgYWdhaW4gYSBsaXR0bGUgbGF0ZXIgLSB0aGUgbGFzdCB3cml0ZXMgdG8gdGhlIG9sZCB0YXJnZXQgY2FuIGxhbmQgYWZ0ZXIgdGhlIGJvdW5kYXJ5IGl0c2VsZlxuY29uc3QgQk9VTkRBUllfU0NBTl9PRkZTRVRTID0gWy0zMCAqIDEwMDAsIDIgKiAxMDAwLCAzMCAqIDEwMDBdO1xuLy8gSG93IGZhciBiYWNrIGEgYm91bmRhcnkgc2NhbiBhc2tzIGZvciBjaGFuZ2VzOiBldmVyeXRoaW5nIHRoYXQgY291bGQgc3RpbGwgaGF2ZSBiZWVuIGJ1ZmZlcmVkIHdoZW4gdGhlIHdpbmRvdyBlbmRlZFxuY29uc3QgQk9VTkRBUllfU0NBTl9MT09LQkFDSyA9IERFRkFVTFRfRkFTVF9XUklURV9ERUxBWSArIFdJTkRPV19FTkRfRkxVU0hfTUFSR0lOO1xuY29uc3QgU1RBUlRVUF9CT1VOREFSWV9TQ0FOX0RFTEFZID0gMzAgKiAxMDAwO1xuY29uc3QgT1dOX0NPTkZJR19XUklURV9USFJPVFRMRSA9IDMwICogMTAwMDtcbmNvbnN0IElOVEVSTUVESUFURV9NQUlOVEFJTl9JTlRFUlZBTCA9IDYwICogMTAwMDtcblxuY29uc3Qgc2NoZWR1bGVkQm91bmRhcnlTY2FucyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuY29uc3QgYm91bmRhcnlTY2Fuc1J1bm5pbmcgPSBuZXcgU2V0PHN0cmluZz4oKTtcblxuLyoqIENhbGxlZCBldmVyeSB0aW1lIGEgc3RvcmUgYXBwbGllcyBhIHJvdXRpbmcgY29uZmlnIHRvIGl0c2VsZiAoc2VlIEJsb2JTdG9yZSdzIG9uUm91dGluZ0FwcGxpZWQpOiBhcm1zIHRoZSBzY2FucyB0aGUgY29uZmlnJ3MgdXBjb21pbmcgd2luZG93IGJvdW5kYXJpZXMgbmVlZC4gRWFjaCBzY2FuIGlzIHNjaGVkdWxlZCBvbmNlIC0gdGhlIGtleSBpbmNsdWRlcyB0aGUgYm91bmRhcnkgaXQgaXMgZm9yIC0gc28gcmUtYXJtaW5nIG9uIGV2ZXJ5IGNvbmZpZyBhcHBsaWNhdGlvbiBpcyBoYXJtbGVzcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2hlZHVsZUJvdW5kYXJ5V29yayhhY2NvdW50OiBzdHJpbmcsIGJ1Y2tldE5hbWU6IHN0cmluZywgcm91dGluZzogUmVtb3RlQ29uZmlnKTogdm9pZCB7XG4gICAgbGV0IGtleSA9IGAke2FjY291bnR9LyR7YnVja2V0TmFtZX1gO1xuICAgIGxldCBzZWxmRW50cmllcyA9IGZpbmRTZWxmSW5kZXhlcyhyb3V0aW5nLCBhY2NvdW50LCBidWNrZXROYW1lKS5tYXAoaSA9PiByb3V0aW5nLnNvdXJjZXNbaV0gYXMgSG9zdGVkQ29uZmlnKTtcbiAgICBsZXQgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgc3RhcnRzID0gbmV3IFNldDxudW1iZXI+KCk7XG4gICAgZm9yIChsZXQgc2VsZiBvZiBzZWxmRW50cmllcykge1xuICAgICAgICBsZXQgc3RhcnQgPSBzZWxmLnZhbGlkV2luZG93WzBdO1xuICAgICAgICBpZiAoc3RhcnQgPiBub3cgJiYgc3RhcnQgPCBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikge1xuICAgICAgICAgICAgc3RhcnRzLmFkZChzdGFydCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gQSB3aW5kb3cgd2UgaGF2ZSBvbmx5IGp1c3QgdGFrZW4gb3Zlciwgb24gYSBzZXJ2ZXIgdGhhdCBoYXMgb25seSBqdXN0IHN0YXJ0ZWQ6IHRoZSBib3VuZGFyeSBoYXBwZW5lZCB3aGlsZSB3ZSB3ZXJlIG5vdCBydW5uaW5nLCBzbyBpdHMgc2NhbiBzdGlsbCBoYXMgdG8gaGFwcGVuXG4gICAgZm9yIChsZXQgc2VsZiBvZiBzZWxmRW50cmllcykge1xuICAgICAgICBsZXQgW3N0YXJ0LCBlbmRdID0gc2VsZi52YWxpZFdpbmRvdztcbiAgICAgICAgaWYgKCEoc3RhcnQgPD0gbm93ICYmIG5vdyA8IGVuZCkgfHwgc3RhcnQgPD0gMCkgY29udGludWU7XG4gICAgICAgIGlmIChub3cgLSBzdGFydCA+IEJPVU5EQVJZX1NDQU5fTE9PS0JBQ0spIGNvbnRpbnVlO1xuICAgICAgICBsZXQgc2NoZWR1bGVLZXkgPSBgJHtrZXl9fCR7c3RhcnR9fHN0YXJ0dXBgO1xuICAgICAgICBpZiAoc2NoZWR1bGVkQm91bmRhcnlTY2Fucy5oYXMoc2NoZWR1bGVLZXkpKSBjb250aW51ZTtcbiAgICAgICAgc2NoZWR1bGVkQm91bmRhcnlTY2Fucy5hZGQoc2NoZWR1bGVLZXkpO1xuICAgICAgICBsZXQgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHZvaWQgcnVuQm91bmRhcnlTY2FuKGFjY291bnQsIGJ1Y2tldE5hbWUsIHN0YXJ0LCBTVEFSVFVQX0JPVU5EQVJZX1NDQU5fREVMQVksIFwic3RhcnR1cCszMHNcIikuY2F0Y2goKGU6IEVycm9yKSA9PiBjb25zb2xlLmVycm9yKGBCb3VuZGFyeSBzY2FuIGZvciBidWNrZXQgJHtrZXl9IGZhaWxlZDogJHtlLnN0YWNrID8/IGV9YCkpO1xuICAgICAgICB9LCBTVEFSVFVQX0JPVU5EQVJZX1NDQU5fREVMQVkpO1xuICAgICAgICAodGltZXIgYXMgeyB1bnJlZj86ICgpID0+IHZvaWQgfSkudW5yZWY/LigpO1xuICAgIH1cbiAgICBmb3IgKGxldCBzdGFydCBvZiBzdGFydHMpIHtcbiAgICAgICAgZm9yIChsZXQgb2Zmc2V0IG9mIEJPVU5EQVJZX1NDQU5fT0ZGU0VUUykge1xuICAgICAgICAgICAgbGV0IGF0ID0gc3RhcnQgKyBvZmZzZXQ7XG4gICAgICAgICAgICBpZiAoYXQgPD0gbm93KSBjb250aW51ZTtcbiAgICAgICAgICAgIGxldCBzY2hlZHVsZUtleSA9IGAke2tleX18JHtzdGFydH18JHtvZmZzZXR9YDtcbiAgICAgICAgICAgIGlmIChzY2hlZHVsZWRCb3VuZGFyeVNjYW5zLmhhcyhzY2hlZHVsZUtleSkpIGNvbnRpbnVlO1xuICAgICAgICAgICAgc2NoZWR1bGVkQm91bmRhcnlTY2Fucy5hZGQoc2NoZWR1bGVLZXkpO1xuICAgICAgICAgICAgLy8gUmUtYXJtZWQgcmF0aGVyIHRoYW4gdHJ1c3RlZDogYSBsb25nIHRpbWVyIGNhbiBmaXJlIGVhcmx5IGFmdGVyIGEgc3VzcGVuZCwgYW5kIGZpcmluZyBlYXJseSB3b3VsZCBzY2FuIGZvciBhIGhhbmRvdmVyIHRoYXQgaGFzIG5vdCBoYXBwZW5lZFxuICAgICAgICAgICAgbGV0IGFybSA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKERhdGUubm93KCkgPCBhdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXJtKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdm9pZCBydW5Cb3VuZGFyeVNjYW4oYWNjb3VudCwgYnVja2V0TmFtZSwgc3RhcnQsIG9mZnNldCkuY2F0Y2goKGU6IEVycm9yKSA9PiBjb25zb2xlLmVycm9yKGBCb3VuZGFyeSBzY2FuIGZvciBidWNrZXQgJHtrZXl9IGZhaWxlZDogJHtlLnN0YWNrID8/IGV9YCkpO1xuICAgICAgICAgICAgICAgIH0sIE1hdGgubWluKGF0IC0gRGF0ZS5ub3coKSwgTUFYX1RJTUVSX0RFTEFZKSk7XG4gICAgICAgICAgICAgICAgKHRpbWVyIGFzIHsgdW5yZWY/OiAoKSA9PiB2b2lkIH0pLnVucmVmPy4oKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBhcm0oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqIENvbGxlY3RzIHRoZSB3cml0ZXMgdGhhdCBsYW5kZWQgb24gdGhlIHByZXZpb3VzIHdpbmRvdydzIG93bmVycyBqdXN0IGJlZm9yZSBhIGJvdW5kYXJ5LCBpbnRvIHRoZSBzdG9yZSB0aGF0IGhhcyBqdXN0IHRha2VuIG92ZXIuIFdobyBvd25lZCB3aGF0IGlzIHdvcmtlZCBvdXQgcHVyZWx5IGZyb20gdGhlIGNvbmZpZyAoc2VlIHByZXZpb3VzV2luZG93T3duZXJzKTsgdGhpcyBvbmx5IGRvZXMgdGhlIHB1bGxpbmcuIFRoZSBjb25maWcgaXMgcmVhZCBvZmYgdGhlIGRpc2sgYXQgRklSRSB0aW1lLCBub3QgY2FwdHVyZWQgd2hlbiB0aGUgc2NhbiB3YXMgYXJtZWQgLSBpdCBtYXkgaGF2ZSBjaGFuZ2VkIGluIGJldHdlZW4sIGFuZCB0aGUgbmV3ZXN0IGNvcHkgaXMgdGhlIG9uZSB0aGUgaGFuZG92ZXIgYWN0dWFsbHkgaGFwcGVuZWQgdW5kZXIuICovXG5hc3luYyBmdW5jdGlvbiBydW5Cb3VuZGFyeVNjYW4oYWNjb3VudDogc3RyaW5nLCBidWNrZXROYW1lOiBzdHJpbmcsIHdpbmRvd1N0YXJ0OiBudW1iZXIsIG9mZnNldDogbnVtYmVyLCBvZmZzZXRMYWJlbD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGxldCBrZXkgPSBgJHthY2NvdW50fS8ke2J1Y2tldE5hbWV9YDtcbiAgICBsZXQgbGFiZWwgPSBgYnVja2V0ICR7a2V5fSwgd2luZG93IHN0YXJ0aW5nICR7Zm9ybWF0RGF0ZVRpbWVEZXRhaWxlZCh3aW5kb3dTdGFydCl9LCBvZmZzZXQgJHtvZmZzZXRMYWJlbCB8fCBgJHtvZmZzZXQgLyAxMDAwfXNgfWA7XG4gICAgaWYgKGJvdW5kYXJ5U2NhbnNSdW5uaW5nLmhhcyhrZXkpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBTa2lwcGluZyBib3VuZGFyeSBzY2FuICgke2xhYmVsfSk6IHRoZSBwcmV2aW91cyBib3VuZGFyeSBzY2FuIGlzIHN0aWxsIHJ1bm5pbmdgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBib3VuZGFyeVNjYW5zUnVubmluZy5hZGQoa2V5KTtcbiAgICB0cnkge1xuICAgICAgICBsZXQgZWZmZWN0aXZlID0gYXdhaXQgcmVhZFJvdXRpbmdGcm9tRGlzayhhY2NvdW50LCBidWNrZXROYW1lKTtcbiAgICAgICAgaWYgKCFlZmZlY3RpdmUpIHJldHVybjtcbiAgICAgICAgbGV0IGhhbmRvdmVycyA9IHByZXZpb3VzV2luZG93T3duZXJzKGVmZmVjdGl2ZSwgd2luZG93U3RhcnQsIGZpbmRTZWxmSW5kZXhlcyhlZmZlY3RpdmUsIGFjY291bnQsIGJ1Y2tldE5hbWUpKTtcbiAgICAgICAgaWYgKCFoYW5kb3ZlcnMubGVuZ3RoKSByZXR1cm47XG4gICAgICAgIGNvbnNvbGUubG9nKGBCb3VuZGFyeSBzY2FuICgke2xhYmVsfSk6ICR7aGFuZG92ZXJzLmxlbmd0aH0gcm91dGUocykgdGFraW5nIG92ZXI6ICR7aGFuZG92ZXJzLm1hcCh4ID0+IGAke0pTT04uc3RyaW5naWZ5KHgucm91dGUpfSBmcm9tICR7eC5zY2FuT3duRGlzayAmJiBcIm91ciBvd24gZGlza1wiIHx8IFwiXCJ9JHt4LnNjYW5Pd25EaXNrICYmIHgucmVtb3Rlcy5zaXplICYmIFwiICsgXCIgfHwgXCJcIn0ke1suLi54LnJlbW90ZXMua2V5cygpXS5tYXAoaSA9PiBgc291cmNlICR7aX1gKS5qb2luKFwiLCBcIil9YCkuam9pbihcIjsgXCIpfWApO1xuICAgICAgICBsZXQgc2luY2UgPSB3aW5kb3dTdGFydCAtIEJPVU5EQVJZX1NDQU5fTE9PS0JBQ0s7XG4gICAgICAgIGZvciAobGV0IGhhbmRvdmVyIG9mIGhhbmRvdmVycykge1xuICAgICAgICAgICAgbGV0IHNlbGZTdG9yZSA9IGdldFN0b3JlKGFjY291bnQsIGJ1Y2tldE5hbWUsIGhhbmRvdmVyLm5hbWUpO1xuICAgICAgICAgICAgaWYgKGhhbmRvdmVyLnNjYW5Pd25EaXNrKSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgc2VsZlN0b3JlLnJlc2NhbkJhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZvciAobGV0IFtzb3VyY2VJbmRleCwgcm91dGVdIG9mIGhhbmRvdmVyLnJlbW90ZXMpIHtcbiAgICAgICAgICAgICAgICBsZXQgb3duZXJTb3VyY2UgPSBlZmZlY3RpdmUuc291cmNlc1tzb3VyY2VJbmRleF07XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvd25lclNvdXJjZSA9PT0gXCJzdHJpbmdcIikgY29udGludWU7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VsZlN0b3JlLmJvdW5kYXJ5U2NhblJlbW90ZShjcmVhdGVBcGlBcmNoaXZlcyhvd25lclNvdXJjZSksIHsgc2luY2UsIHJvdXRlIH0pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQm91bmRhcnkgc2NhbiAoJHtsYWJlbH0pIG9mIHByZXZpb3VzLXdpbmRvdyBvd25lciAoc291cmNlIGluZGV4ICR7c291cmNlSW5kZXh9KSBmYWlsZWQ6ICR7KGUgYXMgRXJyb3IpLnN0YWNrID8/IGV9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgICAgYm91bmRhcnlTY2Fuc1J1bm5pbmcuZGVsZXRlKGtleSk7XG4gICAgfVxufVxuXG4vKiogQW4gb3BlcmF0b3IncyBjb25maWcga25vd3Mgbm90aGluZyBhYm91dCBhIHN3aXRjaG92ZXIgdGhhdCBpcyBpbiBmbGlnaHQgcmlnaHQgbm93LCBzbyB3cml0aW5nIGl0IGFzLWlzIHdvdWxkIGNhbmNlbCBvbmUgbWlkLWhhbmRvdmVyLiBUaGUgaW4tZmxpZ2h0IHdpbmRvd3MgYXJlIHB1dCBiYWNrIGludG8gaXQgZmlyc3QuICovXG5leHBvcnQgZnVuY3Rpb24gcmVpbmplY3RJbnRlcm1lZGlhdGVzKGN1cnJlbnQ6IFJlbW90ZUNvbmZpZyB8IHVuZGVmaW5lZCwgaW5jb21pbmc6IFJlbW90ZUNvbmZpZyk6IFJlbW90ZUNvbmZpZyB7XG4gICAgaWYgKCFjdXJyZW50KSByZXR1cm4gaW5jb21pbmc7XG4gICAgbGV0IHN0b3JlZCA9IGluY29taW5nO1xuICAgIGxldCByZWluamVjdGVkID0gMDtcbiAgICBmb3IgKGxldCBpbnRlcm1lZGlhdGUgb2YgZ2V0SW50ZXJtZWRpYXRlU291cmNlcyhleHBpcmVJbnRlcm1lZGlhdGVTb3VyY2VzKGN1cnJlbnQsIERhdGUubm93KCkpKSkge1xuICAgICAgICBzdG9yZWQgPSBpbmplY3RJbnRlcm1lZGlhdGVTb3VyY2Uoc3RvcmVkLCB7XG4gICAgICAgICAgICBzcGxpdFVybDogaW50ZXJtZWRpYXRlLmludGVybWVkaWF0ZSB8fCBpbnRlcm1lZGlhdGUudXJsLFxuICAgICAgICAgICAgaW50ZXJtZWRpYXRlVXJsOiBpbnRlcm1lZGlhdGUudXJsLFxuICAgICAgICAgICAgc3RhcnQ6IGludGVybWVkaWF0ZS52YWxpZFdpbmRvd1swXSxcbiAgICAgICAgICAgIGVuZDogaW50ZXJtZWRpYXRlLnZhbGlkV2luZG93WzFdLFxuICAgICAgICB9KTtcbiAgICAgICAgcmVpbmplY3RlZCsrO1xuICAgIH1cbiAgICBpZiAocmVpbmplY3RlZCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgUmUtaW5qZWN0ZWQgJHtyZWluamVjdGVkfSBpbi1mbGlnaHQgc3dpdGNob3ZlciB3aW5kb3cocykgaW50byBhbiBpbmNvbWluZyByb3V0aW5nIGNvbmZpZyAodmVyc2lvbiAke2dldENvbmZpZ1ZlcnNpb24oaW5jb21pbmcpfSlgKTtcbiAgICB9XG4gICAgcmV0dXJuIHN0b3JlZDtcbn1cblxuLy8gUGVyIGJ1Y2tldCwgbm90IGdsb2JhbDogYSBzd2l0Y2hvdmVyIGhhcyB0byB3cml0ZSBldmVyeSBidWNrZXQncyB3aW5kb3dzIGF0IG9uY2UsIGFuZCBhIHNoYXJlZCB0aHJvdHRsZSB3b3VsZCBsZXQgb25seSBvbmUgYnVja2V0IHRocm91Z2ggcGVyIGludGVydmFsXG5jb25zdCBsYXN0T3duQ29uZmlnV3JpdGUgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuXG5hc3luYyBmdW5jdGlvbiB3cml0ZU93blJvdXRpbmdDb25maWcoY29uZmlnOiB7IGFjY291bnQ6IHN0cmluZzsgYnVja2V0TmFtZTogc3RyaW5nOyBzdG9yZU5hbWU6IHN0cmluZzsgY3VycmVudDogUmVtb3RlQ29uZmlnOyB1cGRhdGVkOiBSZW1vdGVDb25maWc7IHJlYXNvbjogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgeyBhY2NvdW50LCBidWNrZXROYW1lLCBjdXJyZW50LCB1cGRhdGVkLCByZWFzb24gfSA9IGNvbmZpZztcbiAgICBsZXQga2V5ID0gYCR7YWNjb3VudH0vJHtidWNrZXROYW1lfWA7XG4gICAgbGV0IHNpbmNlTGFzdCA9IERhdGUubm93KCkgLSAobGFzdE93bkNvbmZpZ1dyaXRlLmdldChrZXkpIHx8IDApO1xuICAgIGlmIChzaW5jZUxhc3QgPCBPV05fQ09ORklHX1dSSVRFX1RIUk9UVExFKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBOb3Qgd3JpdGluZyBvdXIgb3duIHJvdXRpbmcgY29uZmlnIHVwZGF0ZSBmb3IgYnVja2V0ICR7a2V5fSAoJHtyZWFzb259KTogdGhlIGxhc3Qgb25lIHdhcyAke3NpbmNlTGFzdH1tcyBhZ28sIHVuZGVyIHRoZSAke09XTl9DT05GSUdfV1JJVEVfVEhST1RUTEV9bXMgdGhyb3R0bGUuIFJldHJ5aW5nIG9uIHRoZSBuZXh0IG1haW50ZW5hbmNlIHBhc3MuYCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGFzdE93bkNvbmZpZ1dyaXRlLnNldChrZXksIERhdGUubm93KCkpO1xuICAgIGxldCBjdXJyZW50VmVyc2lvbiA9IGdldENvbmZpZ1ZlcnNpb24oY3VycmVudCk7XG4gICAgbGV0IHZlcnNpb24gPSBuZXh0SW50ZXJtZWRpYXRlVmVyc2lvbihjdXJyZW50VmVyc2lvbik7XG4gICAgbGV0IG5leHQ6IFJlbW90ZUNvbmZpZyA9IHsgLi4udXBkYXRlZCwgdmVyc2lvbiB9O1xuICAgIGNvbnNvbGUubG9nKGBXcml0aW5nICR7Uk9VVElOR19GSUxFfSBmb3IgYnVja2V0ICR7a2V5fSAoJHtyZWFzb259KSwgdmVyc2lvbiAke2N1cnJlbnRWZXJzaW9ufSAtPiAke3ZlcnNpb259OiAke0pTT04uc3RyaW5naWZ5KG5leHQpfWApO1xuICAgIGxldCBkYXRhID0gQnVmZmVyLmZyb20oc2VyaWFsaXplUmVtb3RlQ29uZmlnKG5leHQpKTtcbiAgICAvLyBJbnRvIHRoZSBzdG9yZSBob2xkaW5nIHRoZSBuZXdlc3QgY29weSAtIGl0IGFwcGxpZXMgaXQgYW5kIGl0cyBwZWVycyBwdWxsIGl0IC0gYW5kIGRpcmVjdGx5IHRvIHRoZSBvdGhlciBzZXJ2ZXJzLCB3aGljaCBpcyB3aGF0IG1ha2VzIGEgc3dpdGNob3ZlciB0YWtlIGVmZmVjdCBpbiBzZWNvbmRzIHJhdGhlciB0aGFuIGF0IHRoZSBuZXh0IHBvbGxcbiAgICBhd2FpdCB3cml0ZVJvdXRpbmdDb25maWcoYWNjb3VudCwgYnVja2V0TmFtZSwgY29uZmlnLnN0b3JlTmFtZSwgZGF0YSk7XG4gICAgYXdhaXQgcHJvcGFnYXRlUm91dGluZ0NvbmZpZyh7IGFjY291bnQsIGJ1Y2tldE5hbWUsIGN1cnJlbnQsIG5leHQsIGRhdGEgfSk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByb3BhZ2F0ZVJvdXRpbmdDb25maWcoY29uZmlnOiB7IGFjY291bnQ6IHN0cmluZzsgYnVja2V0TmFtZTogc3RyaW5nOyBjdXJyZW50OiBSZW1vdGVDb25maWc7IG5leHQ6IFJlbW90ZUNvbmZpZzsgZGF0YTogQnVmZmVyIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgdGFyZ2V0cyA9IG5ldyBNYXA8c3RyaW5nLCBTb3VyY2VDb25maWc+KCk7XG4gICAgZm9yIChsZXQgc291cmNlIG9mIFsuLi5jb25maWcuY3VycmVudC5zb3VyY2VzLCAuLi5jb25maWcubmV4dC5zb3VyY2VzXSkge1xuICAgICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gXCJzdHJpbmdcIiB8fCBzb3VyY2UuaW50ZXJtZWRpYXRlKSBjb250aW51ZTtcbiAgICAgICAgaWYgKHNvdXJjZS50eXBlID09PSBcInJlbW90ZVwiKSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkID0gcGFyc2VIb3N0ZWRVcmwoc291cmNlLnVybCk7XG4gICAgICAgICAgICBpZiAocGFyc2VkLmFjY291bnQgIT09IGNvbmZpZy5hY2NvdW50IHx8IHBhcnNlZC5idWNrZXROYW1lICE9PSBjb25maWcuYnVja2V0TmFtZSkgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRhcmdldHMuaGFzKHNvdXJjZS51cmwpKSBjb250aW51ZTtcbiAgICAgICAgdGFyZ2V0cy5zZXQoc291cmNlLnVybCwgc291cmNlKTtcbiAgICB9XG4gICAgZm9yIChsZXQgW3VybCwgc291cmNlXSBvZiB0YXJnZXRzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBjcmVhdGVBcGlBcmNoaXZlcyhzb3VyY2UpLnNldChST1VUSU5HX0ZJTEUsIGNvbmZpZy5kYXRhKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBXcm90ZSAke1JPVVRJTkdfRklMRX0gZm9yIGJ1Y2tldCAke2NvbmZpZy5hY2NvdW50fS8ke2NvbmZpZy5idWNrZXROYW1lfSB0byAke3VybH1gKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgUHJvcGFnYXRpbmcgb3VyIHJvdXRpbmcgY29uZmlnIHVwZGF0ZSB0byAke3VybH0gZmFpbGVkOiAkeyhlIGFzIEVycm9yKS5zdGFjayA/PyBlfWApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiogS2VlcHMgZXZlcnkgYWN0aXZlIGJ1Y2tldCdzIHN3aXRjaG92ZXIgd2luZG93cyBjdXJyZW50OiBnaXZlcyBvdXIgYWx0ZXJuYXRlIHBvcnQgaXRzIHdpbmRvdyB3aGlsZSBhIHRha2VvdmVyIGlzIGluIGZsaWdodCwgYW5kIHRha2VzIGV4cGlyZWQgb25lcyBiYWNrIG91dC4gKi9cbmFzeW5jIGZ1bmN0aW9uIG1haW50YWluSW50ZXJtZWRpYXRlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgeyBkb21haW4sIHBvcnQgfSA9IGdldFN0b3JhZ2VTZXJ2ZXJDb25maWcoKTtcbiAgICBsZXQgdGFrZW92ZXIgPSBnZXRUYWtlb3ZlckludGVybWVkaWF0ZSgpO1xuICAgIGxldCB3cml0dGVuOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBhbHJlYWR5Q29ycmVjdDogc3RyaW5nW10gPSBbXTtcbiAgICBsZXQgbm90T3Vyczogc3RyaW5nW10gPSBbXTtcbiAgICAvLyBPTkxZIGJ1Y2tldHMgYWxyZWFkeSBhY3RpdmUuIEEgc3dpdGNob3ZlciBtdXN0IG5ldmVyIGFjdGl2YXRlIGEgYnVja2V0OiB0aGF0IHN0YXJ0cyBpdHMgc3luY2hyb25pemF0aW9uLCBhbmQgYnVja2V0cyBub3RoaW5nIGhhcyB0b3VjaGVkIChsZWdhY3kgb25lcyBlc3BlY2lhbGx5KSBoYXZlIG5vIHdyaXRlcyB0byBoYW5kIG9mZiBpbiB0aGUgZmlyc3QgcGxhY2UuIE9uZSB0aGF0IGRvZXMgZ2V0IHVzZWQgbWlkLXN3aXRjaG92ZXIgYWN0aXZhdGVzIG9uIHRoYXQgYWNjZXNzLCBhbmQgdGhlIG5leHQgcGFzcyBnaXZlcyBpdCBpdHMgd2luZG93LlxuICAgIGxldCBhY3RpdmVLZXlzID0gZ2V0QWN0aXZlQnVja2V0S2V5cygpO1xuICAgIGZvciAobGV0IHsgYWNjb3VudCwgYnVja2V0TmFtZSB9IG9mIGFjdGl2ZUtleXMpIHtcbiAgICAgICAgbGV0IGtleSA9IGAke2FjY291bnR9LyR7YnVja2V0TmFtZX1gO1xuICAgICAgICBsZXQgbmV3ZXN0ID0gYXdhaXQgcmVhZE5ld2VzdFJvdXRpbmdGaWxlKGFjY291bnQsIGJ1Y2tldE5hbWUpO1xuICAgICAgICBpZiAoIW5ld2VzdCkgY29udGludWU7XG4gICAgICAgIGxldCByb3V0aW5nID0gcGFyc2VSb3V0aW5nRGF0YShuZXdlc3QuZGF0YSk7XG4gICAgICAgIGlmICghcm91dGluZykge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgU2tpcHBpbmcgc3dpdGNob3ZlciBtYWludGVuYW5jZSBmb3IgYnVja2V0ICR7a2V5fTogaXRzIHJvdXRpbmcgY29uZmlnIGNvdWxkIG5vdCBiZSBwYXJzZWRgKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBleHBpcmVkID0gZXhwaXJlSW50ZXJtZWRpYXRlU291cmNlcyhyb3V0aW5nLCBEYXRlLm5vdygpKTtcbiAgICAgICAgaWYgKEpTT04uc3RyaW5naWZ5KGV4cGlyZWQpICE9PSBKU09OLnN0cmluZ2lmeShyb3V0aW5nKSkge1xuICAgICAgICAgICAgYXdhaXQgd3JpdGVPd25Sb3V0aW5nQ29uZmlnKHsgYWNjb3VudCwgYnVja2V0TmFtZSwgc3RvcmVOYW1lOiBuZXdlc3QubmFtZSwgY3VycmVudDogcm91dGluZywgdXBkYXRlZDogZXhwaXJlZCwgcmVhc29uOiBgc3dpdGNob3ZlciB3aW5kb3dzIGV4cGlyZWQgbW9yZSB0aGFuICR7SU5URVJNRURJQVRFX0VYUElSRV9HUkFDRSAvIDEwMDB9cyBhZ29gIH0pO1xuICAgICAgICAgICAgd3JpdHRlbi5wdXNoKGtleSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRha2VvdmVyKSBjb250aW51ZTtcbiAgICAgICAgbGV0IG1haW5VcmwgPSByb3V0aW5nLnNvdXJjZXMuZmluZCh4ID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgeCA9PT0gXCJzdHJpbmdcIiB8fCB4LnR5cGUgIT09IFwicmVtb3RlXCIgfHwgeC5pbnRlcm1lZGlhdGUpIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGxldCBwYXJzZWQgPSBwYXJzZUhvc3RlZFVybCh4LnVybCk7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkLmFkZHJlc3MgPT09IGRvbWFpbiAmJiBwYXJzZWQucG9ydCA9PT0gcG9ydDtcbiAgICAgICAgfSkgYXMgSG9zdGVkQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIW1haW5VcmwpIHtcbiAgICAgICAgICAgIG5vdE91cnMucHVzaChrZXkpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGluamVjdGVkID0gaW5qZWN0SW50ZXJtZWRpYXRlU291cmNlKHJvdXRpbmcsIHtcbiAgICAgICAgICAgIHNwbGl0VXJsOiBtYWluVXJsLnVybCxcbiAgICAgICAgICAgIGludGVybWVkaWF0ZVVybDogcmVwbGFjZUhvc3RlZFVybFBvcnQobWFpblVybC51cmwsIHRha2VvdmVyLmFsdFBvcnQpLFxuICAgICAgICAgICAgc3RhcnQ6IHRha2VvdmVyLnN0YXJ0LFxuICAgICAgICAgICAgZW5kOiB0YWtlb3Zlci5lbmQsXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkoaW5qZWN0ZWQpID09PSBKU09OLnN0cmluZ2lmeShyb3V0aW5nKSkge1xuICAgICAgICAgICAgYWxyZWFkeUNvcnJlY3QucHVzaChrZXkpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgd3JpdGVPd25Sb3V0aW5nQ29uZmlnKHsgYWNjb3VudCwgYnVja2V0TmFtZSwgc3RvcmVOYW1lOiBuZXdlc3QubmFtZSwgY3VycmVudDogcm91dGluZywgdXBkYXRlZDogaW5qZWN0ZWQsIHJlYXNvbjogYHdlIGFyZSBhIGRlcGxveSBzdWNjZXNzb3I6IHdyaXRlcyByb3V0ZSB0byBvdXIgYWx0ZXJuYXRlIHBvcnQgJHt0YWtlb3Zlci5hbHRQb3J0fSBmcm9tICR7Zm9ybWF0RGF0ZVRpbWVEZXRhaWxlZCh0YWtlb3Zlci5zdGFydCl9IHVudGlsIG91ciBwcmVkZWNlc3NvciBpcyBraWxsZWQgYXQgJHtmb3JtYXREYXRlVGltZURldGFpbGVkKHRha2VvdmVyLmVuZCl9YCB9KTtcbiAgICAgICAgd3JpdHRlbi5wdXNoKGtleSk7XG4gICAgfVxuICAgIGlmICghdGFrZW92ZXIpIHJldHVybjtcbiAgICBpZiAoIWFjdGl2ZUtleXMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBObyBhY3RpdmUgYnVja2V0cywgc28gbm8gY29uZmlnIGZpbGVzIHRvIHdyaXRlIHRoZSBpbnRlcm1lZGlhdGUgaW50byAoYSBidWNrZXQgaXMgb25seSBhY3RpdmUgb25jZSBzb21ldGhpbmcgdXNlcyBpdClgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIXdyaXR0ZW4ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBXcm90ZSBubyBjb25maWcgZmlsZXM6IG9mICR7YWN0aXZlS2V5cy5sZW5ndGh9IGFjdGl2ZSBidWNrZXRzLCAke2FscmVhZHlDb3JyZWN0Lmxlbmd0aH0gYWxyZWFkeSBjb250YWluIHRoZSBpbnRlcm1lZGlhdGUgYW5kICR7bm90T3Vycy5sZW5ndGh9IGFyZSBub3QgaG9zdGVkIGJ5IHVzYCk7XG4gICAgfVxufVxuXG4vKiogT3VyIHByZWRlY2Vzc29yIHN0aWxsIGhvbGRzIHRoZSBtYWluIHBvcnQgYW5kIGhhcyBiZWVuIHNlcnZpbmcgYWxsIGFsb25nLCBzbyBpdCAtIG5vdCB1cyAtIGtub3dzIHdoaWNoIGJ1Y2tldHMgYXJlIGluIHVzZS4gV2UgYWN0aXZhdGUgZXhhY3RseSB0aG9zZSwgd2hpY2ggaXMgd2hhdCBtYWtlcyB0aGVpciBjb25maWcgZmlsZXMgZ2V0IHRoZSBpbnRlcm1lZGlhdGU7IG5vdGhpbmcgZWxzZSBvbiBkaXNrIGlzIHRvdWNoZWQuICovXG5hc3luYyBmdW5jdGlvbiBhY3RpdmF0ZVByZWRlY2Vzc29yQnVja2V0cygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBsZXQgeyBkb21haW4sIHBvcnQgfSA9IGdldFN0b3JhZ2VTZXJ2ZXJDb25maWcoKTtcbiAgICBsZXQgdXJsID0gYGh0dHBzOi8vJHtkb21haW59OiR7cG9ydH1gO1xuICAgIGxldCBrZXlzOiB7IGFjY291bnQ6IHN0cmluZzsgYnVja2V0TmFtZTogc3RyaW5nIH1bXTtcbiAgICB0cnkge1xuICAgICAgICBrZXlzID0gYXdhaXQgbGlzdFNlcnZlckFjdGl2ZUJ1Y2tldEtleXMoeyB1cmwgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBDb3VsZCBub3QgYXNrIG91ciBwcmVkZWNlc3NvciBvbiAke3VybH0gd2hpY2ggYnVja2V0cyBhcmUgYWN0aXZlLCBzbyBvbmx5IGJ1Y2tldHMgdXNlZCBvbiB0aGlzIHByb2Nlc3MgZ2V0IHRoZSBpbnRlcm1lZGlhdGU6ICR7KGUgYXMgRXJyb3IpLnN0YWNrID8/IGV9YCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFrZXlzLmxlbmd0aCkge1xuICAgICAgICBjb25zb2xlLmxvZyhgT3VyIHByZWRlY2Vzc29yIG9uICR7dXJsfSBoYXMgbm8gYWN0aXZlIGJ1Y2tldHMsIHNvIHRoZXJlIGFyZSBubyBjb25maWcgZmlsZXMgdG8gd3JpdGUgdGhlIGludGVybWVkaWF0ZSBpbnRvYCk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc29sZS5sb2coYE91ciBwcmVkZWNlc3NvciBvbiAke3VybH0gaGFzICR7a2V5cy5sZW5ndGh9IGFjdGl2ZSBidWNrZXRzLCBhY3RpdmF0aW5nIHRoZW0gaGVyZSBzbyB0aGVpciBjb25maWcgZmlsZXMgZ2V0IHRoZSBpbnRlcm1lZGlhdGU6ICR7a2V5cy5tYXAoeCA9PiBgJHt4LmFjY291bnR9LyR7eC5idWNrZXROYW1lfWApLmpvaW4oXCIsIFwiKX1gKTtcbiAgICBmb3IgKGxldCB7IGFjY291bnQsIGJ1Y2tldE5hbWUgfSBvZiBrZXlzKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgYWN0aXZhdGVCdWNrZXQoYWNjb3VudCwgYnVja2V0TmFtZSk7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEFjdGl2YXRpbmcgYnVja2V0ICR7YWNjb3VudH0vJHtidWNrZXROYW1lfSAoYWN0aXZlIG9uIG91ciBwcmVkZWNlc3NvcikgZmFpbGVkOiAke3Jlc3VsdH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQWN0aXZhdGluZyBidWNrZXQgJHthY2NvdW50fS8ke2J1Y2tldE5hbWV9IChhY3RpdmUgb24gb3VyIHByZWRlY2Vzc29yKSBmYWlsZWQ6ICR7KGUgYXMgRXJyb3IpLnN0YWNrID8/IGV9YCk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKiBTdGFydGVkIGJ5IGRlcGxveVRha2VvdmVyIG9uY2Ugd2UgYXJlIGFjdHVhbGx5IGEgZGVwbG95IHN1Y2Nlc3NvciBsaXN0ZW5pbmcgb24gYW4gYWx0ZXJuYXRlIHBvcnQuIFVudGlsIHRoZW4gdGhlcmUgYXJlIG5vIHN3aXRjaG92ZXIgd2luZG93cyB0byB3cml0ZSBvciBleHBpcmUsIHNvIG5vdGhpbmcgcG9sbHMuICovXG5leHBvcnQgY29uc3Qgc3RhcnRJbnRlcm1lZGlhdGVNYWludGVuYW5jZSA9IGxhenkoKCkgPT4ge1xuICAgIHZvaWQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgYWN0aXZhdGVQcmVkZWNlc3NvckJ1Y2tldHMoKTtcbiAgICAgICAgYXdhaXQgbWFpbnRhaW5JbnRlcm1lZGlhdGVzKCk7XG4gICAgfSkoKS5jYXRjaCgoZTogRXJyb3IpID0+IGNvbnNvbGUuZXJyb3IoYFdyaXRpbmcgdGhlIGludGVybWVkaWF0ZSBpbnRvIHRoZSBjb25maWcgZmlsZXMgZmFpbGVkOiAke2Uuc3RhY2sgPz8gZX1gKSk7XG4gICAgcnVuSW5maW5pdGVQb2xsKElOVEVSTUVESUFURV9NQUlOVEFJTl9JTlRFUlZBTCwgbWFpbnRhaW5JbnRlcm1lZGlhdGVzKTtcbn0pO1xuIl19
|
|
290
|
-
/* _JS_SOURCE_HASH = "
|
|
290
|
+
/* _JS_SOURCE_HASH = "d4ef2d74f47a7d30462198fc2c2e91c8f997682ddd33e7c1c49e47129a948933"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
3
|
//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;
|
|
@@ -111,4 +111,4 @@ function expireIntermediateSources(config, now) {
|
|
|
111
111
|
}
|
|
112
112
|
exports.expireIntermediateSources = expireIntermediateSources;
|
|
113
113
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJtZWRpYXRlU291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVybWVkaWF0ZVNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSx5QkFBeUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUN4RCxNQUFNLDZCQUE2QixHQUFHLE9BQVMsQ0FBQztBQUVoRCwyUkFBMlI7QUFDM1IsU0FBZ0IsdUJBQXVCLENBQUMsT0FBZTtJQUNuRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLDZCQUE2QixDQUFDO0lBQzdELElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxHQUFHLENBQUMsR0FBRyw2QkFBNkIsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQzFCLENBQUM7QUFORCwwREFNQztBQUVELFNBQVMsY0FBYyxDQUFDLE1BQXdCO0lBQzVDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUF3QjtJQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzNDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3RGLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxNQUFvQjtJQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENB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QztJQUN0QixLQUFLLElBQUksSUFBSSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLHdCQUF3QixDQUFDLE1BQU0sRUFBRTtZQUN0Qyw0SEFBNEg7WUFDNUgsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEdBQUc7WUFDdkMsZUFBZSxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFoQkQsOERBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3RlQ29uZmlnLCBSZW1vdGVDb25maWdCYXNlLCBTb3VyY2VDb25maWcgfSBmcm9tIFwiLi4vSUFyY2hpdmVzXCI7XG5cbmV4cG9ydCBjb25zdCBJTlRFUk1FRElBVEVfRVhQSVJFX0dSQUNFID0gMTUgKiA2MCAqIDEwMDA7XG5jb25zdCBJTlRFUk1FRElBVEVfVkVSU0lPTl9GUkFDVElPTiA9IDFfMDAwXzAwMDtcblxuLyoqIEFkZGluZyBvciByZW1vdmluZyBpbnRlcm1lZGlhdGVzIGlzIGEgcmVhbCBjb25maWcgdXBkYXRlLCBzbyBpdCB0YWtlcyBhIHJlYWwgdmVyc2lvbiBpbmNyZW1lbnQgLSBidXQgYSBwcm9wb3J0aW9uYWwgb25lLCBzbyBpdCBzdGF5cyBmYXIgYmVsb3cgd2hhdGV2ZXIgdGhlIGF1dGhvcidzIG5leHQgdmVyc2lvbiB3b3VsZCBiZSAod2hldGhlciB0aGV5IGNvdW50IDEsIDIsIDMgb3IgdXNlIHRpbWVzdGFtcHMpLCBhbmQgYSBtaWxsaW9uIG9mIHRoZW0gc3RpbGwgZml0IHVuZGVyIGl0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5leHRJbnRlcm1lZGlhdGVWZXJzaW9uKHZlcnNpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IHN0ZXAgPSBNYXRoLmFicyh2ZXJzaW9uKSAvIElOVEVSTUVESUFURV9WRVJTSU9OX0ZSQUNUSU9OO1xuICAgIGlmICghKHN0ZXAgPiAwKSkge1xuICAgICAgICBzdGVwID0gMSAvIElOVEVSTUVESUFURV9WRVJTSU9OX0ZSQUNUSU9OO1xuICAgIH1cbiAgICByZXR1cm4gdmVyc2lvbiArIHN0ZXA7XG59XG5cbmZ1bmN0aW9uIGlzU291cmNlQ29uZmlnKHNvdXJjZTogUmVtb3RlQ29uZmlnQmFzZSk6IHNvdXJjZSBpcyBTb3VyY2VDb25maWcge1xuICAgIHJldHVybiB0eXBlb2Ygc291cmNlICE9PSBcInN0cmluZ1wiO1xufVxuXG5mdW5jdGlvbiBjbG9uZVNvdXJjZShzb3VyY2U6IFJlbW90ZUNvbmZpZ0Jhc2UpOiBSZW1vdGVDb25maWdCYXNlIHtcbiAgICBpZiAoIWlzU291cmNlQ29uZmlnKHNvdXJjZSkpIHJldHVybiBzb3VyY2U7XG4gICAgcmV0dXJuIHsgLi4uc291cmNlLCB2YWxpZFdpbmRvdzogW3NvdXJjZS52YWxpZFdpbmRvd1swXSwgc291cmNlLnZhbGlkV2luZG93WzFdXSB9O1xufVxuXG5mdW5jdGlvbiBqb2luS2V5KHNvdXJjZTogU291cmNlQ29uZmlnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeyAuLi5zb3VyY2UsIHZhbGlkV2luZG93OiB1bmRlZmluZWQgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogU291cmNlQ29uZmlnW10ge1xuICAgIHJldHVybiBjb25maWcuc291cmNlcy5maWx0ZXIoeCA9PiBpc1NvdXJjZUNvbmZpZyh4KSAmJiB4LmludGVybWVkaWF0ZSkgYXMgU291cmNlQ29uZmlnW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbmZpZy5zb3VyY2VzLnNvbWUoeCA9PiBpc1NvdXJjZUNvbmZpZyh4KSAmJiB4LmludGVybWVkaWF0ZSk7XG59XG5cbi8qKiBSZW1vdmVzIGV2ZXJ5IGludGVybWVkaWF0ZSBlbnRyeSBhbmQgcmVqb2lucyB0aGUgd2luZG93cyBpdCBzcGxpdCwgZ2l2aW5nIGJhY2sgdGhlIHVuZGVybHlpbmcgY29uZmlndXJhdGlvbi4gVHdvIGNvbmZpZ3MgdGhhdCByZXNvbHZlIGVxdWFsIGRpZmZlciBvbmx5IGJ5IGludGVybWVkaWF0ZXMuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnOiBSZW1vdGVDb25maWcpOiBSZW1vdGVDb25maWcge1xuICAgIGlmICghaGFzSW50ZXJtZWRpYXRlU291cmNlcyhjb25maWcpKSByZXR1cm4gY29uZmlnO1xuICAgIGxldCByZW1vdmVkID0gZ2V0SW50ZXJtZWRpYXRlU291cmNlcyhjb25maWcpO1xuICAgIGxldCBzb3VyY2VzID0gY29uZmlnLnNvdXJjZXMuZmlsdGVyKHggPT4gIWlzU291cmNlQ29uZmlnKHgpIHx8ICF4LmludGVybWVkaWF0ZSkubWFwKGNsb25lU291cmNlKTtcbiAgICBmb3IgKGxldCBnYXAgb2YgcmVtb3ZlZCkge1xuICAgICAgICBsZXQgW2dhcFN0YXJ0LCBnYXBFbmRdID0gZ2FwLnZhbGlkV2luZG93O1xuICAgICAgICBsZXQgYmVmb3JlID0gc291cmNlcy5maW5kKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC52YWxpZFdpbmRvd1sxXSA9PT0gZ2FwU3RhcnQpIGFzIFNvdXJjZUNvbmZpZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IGFmdGVyID0gc291cmNlcy5maW5kKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC52YWxpZFdpbmRvd1swXSA9PT0gZ2FwRW5kKSBhcyBTb3VyY2VDb25maWcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChiZWZvcmUgJiYgYWZ0ZXIgJiYgam9pbktleShiZWZvcmUpID09PSBqb2luS2V5KGFmdGVyKSkge1xuICAgICAgICAgICAgYmVmb3JlLnZhbGlkV2luZG93ID0gW2JlZm9yZS52YWxpZFdpbmRvd1swXSwgYWZ0ZXIudmFsaWRXaW5kb3dbMV1dO1xuICAgICAgICAgICAgc291cmNlcy5zcGxpY2Uoc291cmNlcy5pbmRleE9mKGFmdGVyKSwgMSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmVmb3JlKSB7XG4gICAgICAgICAgICBiZWZvcmUudmFsaWRXaW5kb3cgPSBbYmVmb3JlLnZhbGlkV2luZG93WzBdLCBnYXBFbmRdO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFmdGVyKSB7XG4gICAgICAgICAgICBhZnRlci52YWxpZFdpbmRvdyA9IFtnYXBTdGFydCwgYWZ0ZXIudmFsaWRXaW5kb3dbMV1dO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHZlcnNpb246IGNvbmZpZy52ZXJzaW9uLCBzb3VyY2VzIH07XG59XG5cbi8qKiBTcGxpdHMgZXZlcnkgc291cmNlIGF0IHNwbGl0VXJsIGNvdmVyaW5nIFtzdGFydCwgZW5kKSBzbyB0aGF0IG1pZGRsZSB3aW5kb3cgcG9pbnRzIGF0IGludGVybWVkaWF0ZVVybCBpbnN0ZWFkLCBmbGFnZ2VkIGFzIGludGVybWVkaWF0ZS4gSWRlbXBvdGVudDogYSBjb25maWcgdGhhdCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBleGFjdCBpbnRlcm1lZGlhdGUgY29tZXMgYmFjayB1bmNoYW5nZWQuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SW50ZXJtZWRpYXRlU291cmNlKGNvbmZpZzogUmVtb3RlQ29uZmlnLCBpbmplY3Q6IHsgc3BsaXRVcmw6IHN0cmluZzsgaW50ZXJtZWRpYXRlVXJsOiBzdHJpbmc7IHN0YXJ0OiBudW1iZXI7IGVuZDogbnVtYmVyIH0pOiBSZW1vdGVDb25maWcge1xuICAgIGxldCB7IHNwbGl0VXJsLCBpbnRlcm1lZGlhdGVVcmwsIHN0YXJ0LCBlbmQgfSA9IGluamVjdDtcbiAgICBpZiAoc3RhcnQgPj0gZW5kKSByZXR1cm4gY29uZmlnO1xuICAgIGlmIChjb25maWcuc291cmNlcy5zb21lKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC5pbnRlcm1lZGlhdGUgJiYgeC51cmwgPT09IGludGVybWVkaWF0ZVVybCAmJiB4LnZhbGlkV2luZG93WzBdID09PSBzdGFydCAmJiB4LnZhbGlkV2luZG93WzFdID09PSBlbmQpKSB7XG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuICAgIGxldCBzb3VyY2VzOiBSZW1vdGVDb25maWdCYXNlW10gPSBbXTtcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2YgY29uZmlnLnNvdXJjZXMpIHtcbiAgICAgICAgaWYgKCFpc1NvdXJjZUNvbmZpZyhzb3VyY2UpIHx8IHNvdXJjZS51cmwgIT09IHNwbGl0VXJsIHx8IHNvdXJjZS5pbnRlcm1lZGlhdGUpIHtcbiAgICAgICAgICAgIHNvdXJjZXMucHVzaChjbG9uZVNvdXJjZShzb3VyY2UpKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBbd2luZG93U3RhcnQsIHdpbmRvd0VuZF0gPSBzb3VyY2UudmFsaWRXaW5kb3c7XG4gICAgICAgIGlmICh3aW5kb3dFbmQgPD0gc3RhcnQgfHwgd2luZG93U3RhcnQgPj0gZW5kKSB7XG4gICAgICAgICAgICBzb3VyY2VzLnB1c2goY2xvbmVTb3VyY2Uoc291cmNlKSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbWlkZGxlU3RhcnQgPSBNYXRoLm1heCh3aW5kb3dTdGFydCwgc3RhcnQpO1xuICAgICAgICBsZXQgbWlkZGxlRW5kID0gTWF0aC5taW4od2luZG93RW5kLCBlbmQpO1xuICAgICAgICBpZiAobWlkZGxlU3RhcnQgPiB3aW5kb3dTdGFydCkge1xuICAgICAgICAgICAgc291cmNlcy5wdXNoKHsgLi4uc291cmNlLCB2YWxpZFdpbmRvdzogW3dpbmRvd1N0YXJ0LCBtaWRkbGVTdGFydF0gfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaW50ZXJtZWRpYXRlID0gdGhlIHVybCB0aGlzIGVudHJ5IHdhcyBzcGxpdCBvdXQgb2YsIHNvIGEgcmVxdWVzdCBuYW1pbmcgdGhlIGludGVybWVkaWF0ZSBzdGlsbCByZXNvbHZlcyB0byB0aGUgb3JpZ2luYWwgc291cmNlXG4gICAgICAgIHNvdXJjZXMucHVzaCh7IC4uLnNvdXJjZSwgdXJsOiBpbnRlcm1lZGlhdGVVcmwsIHZhbGlkV2luZG93OiBbbWlkZGxlU3RhcnQsIG1pZGRsZUVuZF0sIGludGVybWVkaWF0ZTogc3BsaXRVcmwgfSk7XG4gICAgICAgIGlmICh3aW5kb3dFbmQgPiBtaWRkbGVFbmQpIHtcbiAgICAgICAgICAgIHNvdXJjZXMucHVzaCh7IC4uLnNvdXJjZSwgdmFsaWRXaW5kb3c6IFttaWRkbGVFbmQsIHdpbmRvd0VuZF0gfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgdmVyc2lvbjogY29uZmlnLnZlcnNpb24sIHNvdXJjZXMgfTtcbn1cblxuLyoqIEludGVybWVkaWF0ZXMgd2hvc2Ugd2luZG93IGVuZGVkIG1vcmUgdGhhbiBJTlRFUk1FRElBVEVfRVhQSVJFX0dSQUNFIGFnbyBhcmUgcmVtb3ZlZCwgYW5kIHRoZSB3aW5kb3dzIHRoZXkgc3BsaXQgYXJlIHJlam9pbmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGlyZUludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnOiBSZW1vdGVDb25maWcsIG5vdzogbnVtYmVyKTogUmVtb3RlQ29uZmlnIHtcbiAgICBsZXQgZXhwaXJlZCA9IGdldEludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKS5maWx0ZXIoeCA9PiB4LnZhbGlkV2luZG93WzFdICsgSU5URVJNRURJQVRFX0VYUElSRV9HUkFDRSA8IG5vdyk7XG4gICAgaWYgKCFleHBpcmVkLmxlbmd0aCkgcmV0dXJuIGNvbmZpZztcbiAgICBsZXQga2VwdEludGVybWVkaWF0ZXMgPSBnZXRJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZykuZmlsdGVyKHggPT4gIWV4cGlyZWQuaW5jbHVkZXMoeCkpO1xuICAgIGxldCByZXNvbHZlZCA9IHJlc29sdmVJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZyk7XG4gICAgbGV0IHJlc3VsdCA9IHJlc29sdmVkO1xuICAgIGZvciAobGV0IGtlZXAgb2Yga2VwdEludGVybWVkaWF0ZXMpIHtcbiAgICAgICAgcmVzdWx0ID0gaW5qZWN0SW50ZXJtZWRpYXRlU291cmNlKHJlc3VsdCwge1xuICAgICAgICAgICAgLy8gVGhlIGludGVybWVkaWF0ZSBjYXJyaWVzIHRoZSB1cmwgaXQgd2FzIHNwbGl0IG91dCBvZjsgZmFsbCBiYWNrIHRvIGl0cyBvd24gdXJsIG9ubHkgZm9yIGEgbGVnYWN5IGVudHJ5IHRoYXQgcHJlZGF0ZXMgdGhhdFxuICAgICAgICAgICAgc3BsaXRVcmw6IGtlZXAuaW50ZXJtZWRpYXRlIHx8IGtlZXAudXJsLFxuICAgICAgICAgICAgaW50ZXJtZWRpYXRlVXJsOiBrZWVwLnVybCxcbiAgICAgICAgICAgIHN0YXJ0OiBrZWVwLnZhbGlkV2luZG93WzBdLFxuICAgICAgICAgICAgZW5kOiBrZWVwLnZhbGlkV2luZG93WzFdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
|
|
114
|
-
/* _JS_SOURCE_HASH = "
|
|
114
|
+
/* _JS_SOURCE_HASH = "2c008d5d6c726fda0142fb075908de41c6f2ab1692b4e4cf91bed85830bac02a"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -324,4 +324,4 @@ function serializeRemoteConfig(config) {
|
|
|
324
324
|
}
|
|
325
325
|
exports.serializeRemoteConfig = serializeRemoteConfig;
|
|
326
326
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmVtb3RlQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1EQUFnRDtBQUNoRCxtREFBd0Q7QUFDeEQsdUVBQStEO0FBQy9ELDBEQUFpQztBQUNqQyw0Q0FBZ0s7QUFDaEssNkNBQXFEO0FBRXJELElBQUEsc0JBQU8sRUFBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUVuRCxzU0FBc1M7QUFFelIsUUFBQSxZQUFZLEdBQUcsNkJBQTZCLENBQUM7QUFDMUQsTUFBTSxjQUFjLEdBQUcsR0FBRyxHQUFHLG9CQUFZLENBQUM7QUFFMUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7QUFFM0Msb0xBQW9MO0FBQ3BMLFNBQWdCLGtCQUFrQixDQUFDLEdBQVc7SUFDMUMsSUFBSSxLQUFLLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQywwQkFBYyxDQUFDLENBQUM7SUFDeEMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDbkMsSUFBSSxLQUFLLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLDBCQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMvRSxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckIsQ0FBQztBQU5ELGdEQU1DO0FBRUQsd0dBQXdHO0FBQ3hHLFNBQWdCLFFBQVEsQ0FBQyxHQUFXO0lBQ2hDLElBQUksUUFBUSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZDLElBQUksUUFBUSxLQUFLLFNBQVM7UUFBRSxPQUFPLFFBQVEsQ0FBQztJQUM1Qyx3RkFBd0Y7SUFDeEYsSUFBSSxJQUFJLEdBQUcsSUFBQSxtQkFBWSxFQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxPQUFPLElBQUksR0FBRyxlQUFlLEdBQUcsZUFBZSxDQUFDO0FBQ3BELENBQUM7QUFORCw0QkFNQztBQUVELGdNQUFnTTtBQUNoTSxTQUFnQixhQUFhLENBQUMsS0FBd0IsRUFBRSxNQUEwQjtJQUM5RSxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxJQUFJO1lBQUUsT0FBTyxLQUFLLENBQUM7UUFDakQsSUFBSSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUMzQixJQUFJLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sS0FBSyxDQUFDO1FBQzdGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQVBELHNDQU9DO0FBRUQsaUVBQWlFO0FBQ2pFLFNBQWdCLGFBQWEsQ0FBQyxLQUFtQyxFQUFFLEtBQWE7SUFDNUUsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLElBQUksQ0FBQztJQUN4QixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBSEQsc0NBR0M7QUFDRCxTQUFnQixhQUFhLENBQUMsQ0FBK0IsRUFBRSxDQUErQjtJQUMxRixJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxzQkFBVSxDQUFDO0lBQ3JDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLHNCQUFVLENBQUM7SUFDckMsT0FBTyxNQUFNLEdBQUcsSUFBSSxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7QUFDMUMsQ0FBQztBQUpELHNDQUlDO0FBQ0QsNkVBQTZFO0FBQzdFLFNBQWdCLGlCQUFpQixDQUFDLENBQStCLEVBQUUsQ0FBK0I7SUFDOUYsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksc0JBQVUsQ0FBQztJQUNyQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxzQkFBVSxDQUFDO0lBQ3JDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9CLElBQUksS0FBSyxJQUFJLEdBQUc7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUNuQyxPQUFPLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3hCLENBQUM7QUFQRCw4Q0FPQztBQUVELDhGQUE4RjtBQUM5RixTQUFnQixnQkFBZ0IsQ0FBQyxNQUFvQjs7SUFDakQsT0FBTyxNQUFBLE1BQU0sQ0FBQyxPQUFPLG1DQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFGRCw0Q0FFQztBQUVELHNHQUFzRztBQUN0RyxTQUFnQixnQkFBZ0IsQ0FBQyxHQUFXO0lBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvSCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBTEQsNENBS0M7QUFFRCxTQUFnQixZQUFZLENBQUMsT0FBZSxFQUFFLFFBQWdCO0lBQzFELE9BQU8sT0FBTyxHQUFHLEdBQUcsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRkQsb0NBRUM7QUFFRCx5R0FBeUc7QUFDekcsU0FBZ0IsY0FBYyxDQUFDLEdBQVc7SUFDdEMsSUFBSSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsSUFBSSxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsbUNBQW1DLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFDRCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRCxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUM1QyxNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixjQUFjLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEosQ0FBQztJQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxPQUFPLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDMUksQ0FBQztBQVhELHdDQVdDO0FBRUQsc0dBQXNHO0FBQ3RHLFNBQWdCLGlCQUFpQixDQUFDLEdBQVc7SUFDekMsSUFBSSxJQUFJLEdBQUcsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRkFBc0YsY0FBYyxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hKLENBQUM7SUFDRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDeEQsQ0FBQztBQVJELDhDQVFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsR0FBVyxFQUFFLElBQVk7SUFDMUQsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUpELG9EQUlDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxNQUF3QjtJQUNwRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksVUFBVSxHQUFHLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUMvQixnTkFBZ047UUFDaE4sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksT0FBTyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyx3RkFBd0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVOLENBQUM7WUFDRCxVQUFVLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdGLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsK0JBQStCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGtDQUFrQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RMLFVBQVUsQ0FBQyxXQUFXLEdBQUcsNkJBQWlCLENBQUM7UUFDL0MsQ0FBQztRQUNELElBQUksS0FBSyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQywyQkFBMkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMseUNBQXlDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEwsVUFBVSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7UUFDakMsQ0FBQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDeEMsSUFBSSxRQUFRLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUN4QyxvSkFBb0o7UUFDcEosSUFBSSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsRUFBRSw2QkFBaUIsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekksQ0FBQztJQUNELElBQUksTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQyxPQUFPLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLDZCQUFpQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUN2SixDQUFDO0FBL0JELDBDQStCQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBd0I7SUFDaEQsSUFBSSxDQUFDLElBQUk7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUN4QixJQUFJLENBQUM7UUFDRCxJQUFBLGtDQUFxQixFQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxXQUFNLENBQUM7UUFDTCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLEtBQXVCO0lBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQzFHLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELDZNQUE2TTtBQUM3TSxTQUFTLGlCQUFpQixDQUFDLE1BQW9CO0lBQzNDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUM7SUFDMUIsSUFBSSxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzNCLElBQUksTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEMsUUFBUSxHQUFHLEdBQUcsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDbEQsQ0FBQztTQUFNLENBQUM7UUFDSixRQUFRLEdBQUcsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQztJQUN4RCxDQUFDO0lBQ0QsSUFBSSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN6QixJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxzQkFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxzQkFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRixRQUFRLElBQUksVUFBVSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUNELE9BQU8sa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELHVLQUF1SztBQUN2SyxTQUFTLGtCQUFrQixDQUFDLElBQVk7SUFDcEMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUM1Qiw4RkFBOEY7UUFDOUYsT0FBTyxRQUFRLENBQUM7SUFDcEIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCwrRkFBK0Y7QUFDL0YsU0FBUyxnQkFBZ0IsQ0FBQyxPQUF1QjtJQUM3QyxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxzQkFBVSxDQUFDLENBQUM7SUFDckQsSUFBQSxXQUFJLEVBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEIsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBQ2hCLEtBQUssSUFBSSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7UUFDdkIsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTztZQUFFLE1BQU07UUFDOUIsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBRUQsc0pBQXNKO0FBQ3RKLFNBQWdCLHFCQUFxQixDQUFDLE1BQXVDO0lBQ3pFLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLFNBQVMsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7SUFDckYsQ0FBQztJQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ2xELENBQUM7QUFMRCxzREFLQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQUMsTUFBb0I7SUFDeEQsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEQscWJBQXFiO0lBQ3JiLElBQUksTUFBTSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUMxQixJQUFBLFdBQUksRUFBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsSUFBSSxLQUFLLEdBQW1CLEVBQUUsQ0FBQztJQUMvQixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7SUFDakIsU0FBUyxVQUFVO1FBQ2YsSUFBSSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0QsSUFBSSxjQUFjLElBQUksY0FBYyxLQUFLLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwRCxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxjQUFjLE9BQU8sS0FBSyxDQUFDLE1BQU0sNEJBQTRCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDalEsQ0FBQztRQUNELGtIQUFrSDtRQUNsSCxJQUFJLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxJQUFJLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNkLE1BQU0sSUFBSSxLQUFLLENBQUMsb0dBQW9HLE9BQU8sY0FBYyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksc0JBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzUCxDQUFDO1FBQ0QsNmxCQUE2bEI7SUFDam1CLENBQUM7SUFDRCxLQUFLLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3hCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3BELFVBQVUsRUFBRSxDQUFDO1lBQ2IsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNmLENBQUM7UUFDRCxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ25CLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUNELFVBQVUsRUFBRSxDQUFDO0lBQ2IscVhBQXFYO0lBQ3JYLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDO2dCQUFFLFNBQVM7WUFDcEQsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzdFLE1BQU0sSUFBSSxLQUFLLENBQUMsK0RBQStELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx1REFBdUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyx3TUFBd00sQ0FBQyxDQUFDO1lBQ3JaLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUF2Q0QsMERBdUNDO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsY0FBYyxDQUFDLFlBQXNDO0lBQ2pFLElBQUksQ0FBQyxZQUFZO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFDakMsT0FBTyxHQUFHLFlBQVksQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLEdBQUcsSUFBSSxZQUFZLENBQUMsWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUFDO0FBQ3pGLENBQUM7QUFIRCx3Q0FHQztBQUVELHVXQUF1VztBQUN2VyxTQUFnQixtQkFBbUIsQ0FBQyxZQUFzQyxFQUFFLE1BQWM7SUFDdEYsSUFBSSxDQUFDLFlBQVk7UUFBRSxPQUFPLE1BQU0sQ0FBQztJQUNqQyxPQUFPLFlBQVksQ0FBQyxZQUFZLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQztBQUN6RCxDQUFDO0FBSEQsa0RBR0M7QUFFRCx5VEFBeVQ7QUFDelQsU0FBUyxhQUFhLENBQUMsTUFBb0I7SUFDdkMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksTUFBTSxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDakUsQ0FBQztBQUVELDBnQkFBMGdCO0FBQzFnQixTQUFnQixnQkFBZ0IsQ0FBQyxJQUFZO0lBQ3pDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixJQUFJLE1BQW9CLENBQUM7SUFDekIsSUFBSSxDQUFDO1FBQ0QsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFpQixDQUFDO0lBQzlDLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyw0REFBNEQsTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckksT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMxRSxPQUFPLENBQUMsS0FBSyxDQUFDLG1GQUFtRixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkgsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8scUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQWRELDRDQWNDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsTUFBb0I7SUFDdEQsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzdELENBQUM7QUFGRCxzREFFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNvcnQgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9taXNjXCI7XG5pbXBvcnQgeyBnZXRCdWZmZXJJbnQgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9iaXRzXCI7XG5pbXBvcnQgeyBzZXRGbGFnIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9yZXF1aXJlL2NvbXBpbGVGbGFnc1wiO1xuaW1wb3J0IGpzU2hhMjU2IGZyb20gXCJqcy1zaGEyNTZcIjtcbmltcG9ydCB7IFJlbW90ZUNvbmZpZywgUmVtb3RlQ29uZmlnQmFzZSwgU291cmNlQ29uZmlnLCBBcmNoaXZlRmlsZUluZm8sIENoYW5nZXNBZnRlckNvbmZpZywgRlVMTF9WQUxJRF9XSU5ET1csIEZVTExfUk9VVEUsIFZBUklBQkxFX1NIQVJEIH0gZnJvbSBcIi4uL0lBcmNoaXZlc1wiO1xuaW1wb3J0IHsgYXNzZXJ0VmFsaWRTb3VyY2VOYW1lIH0gZnJvbSBcIi4vdmFsaWRhdGlvblwiO1xuXG5zZXRGbGFnKHJlcXVpcmUsIFwianMtc2hhMjU2XCIsIFwiYWxsb3djbGllbnRcIiwgdHJ1ZSk7XG5cbi8vIFBhcnNpbmcgLyBub3JtYWxpemF0aW9uIG9mIFJlbW90ZUNvbmZpZyAoc2VlIElBcmNoaXZlcy50cykuIEV2ZXJ5IGJ1Y2tldCBzdG9yZXMgaXRzIG93biBjb25maWd1cmF0aW9uIChhIFJlbW90ZUNvbmZpZykgaW5zaWRlIGl0c2VsZiwgYXQgUk9VVElOR19GSUxFLiBXcml0aW5nIHRoYXQgZmlsZSBjcmVhdGVzIHRoZSBidWNrZXQgLyByZWNvbmZpZ3VyZXMgaXQgKHNlZSBzdG9yYWdlU2VydmVyU3RhdGUudHMpOyBjbGllbnRzIHJlY29uY2lsZSBpdCBieSB2ZXJzaW9uIChzZWUgY3JlYXRlQXJjaGl2ZXMudHMpLlxuXG5leHBvcnQgY29uc3QgUk9VVElOR19GSUxFID0gXCJzdG9yYWdlL3N0b3JhZ2Vyb3V0aW5nLmpzb25cIjtcbmNvbnN0IFJPVVRJTkdfU1VGRklYID0gXCIvXCIgKyBST1VUSU5HX0ZJTEU7XG5cbmNvbnN0IFJPVVRFX1BSRUNJU0lPTiA9IDEwMDAgKiAxMDAwICogMTAwMDtcblxuLyoqIFRoZSB2YXJpYWJsZS1zaGFyZCByb3V0ZSBvdmVycmlkZSBlbWJlZGRlZCBpbiB0aGUga2V5IChcIjxzZW50aW5lbD5fPHZhbHVlPlwiLCBzZWUgVkFSSUFCTEVfU0hBUkQpLCBvciB1bmRlZmluZWQgd2hlbiB0aGUga2V5IGhhcyBubyBzZW50aW5lbCBvciB0aGUgc2VudGluZWwgaGFzIG5vIHZhbHVlIHlldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVZhcmlhYmxlUm91dGUoa2V5OiBzdHJpbmcpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIGxldCBpbmRleCA9IGtleS5pbmRleE9mKFZBUklBQkxFX1NIQVJEKTtcbiAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGxldCBtYXRjaCA9IC9eXyhcXGQrKD86XFwuXFxkKyk/KS8uZXhlYyhrZXkuc2xpY2UoaW5kZXggKyBWQVJJQUJMRV9TSEFSRC5sZW5ndGgpKTtcbiAgICBpZiAoIW1hdGNoKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiArbWF0Y2hbMV07XG59XG5cbi8qKiBXaGVyZSBhIGtleSByb3V0ZXMgaW4gWzAsIDEpLiBBIG1hdGVyaWFsaXplZCB2YXJpYWJsZS1zaGFyZCBzdWZmaXggY29tcGxldGVseSBvdmVycmlkZXMgdGhlIGhhc2guICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGUoa2V5OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGxldCBvdmVycmlkZSA9IHBhcnNlVmFyaWFibGVSb3V0ZShrZXkpO1xuICAgIGlmIChvdmVycmlkZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gb3ZlcnJpZGU7XG4gICAgLy8gUHVyZSBKUywgc28gcm91dGluZyB3b3JrcyBjbGllbnRzaWRlIHRvbyAobm9kZSdzIGNyeXB0byBoYXNoaW5nIGlzIHVuYXZhaWxhYmxlIHRoZXJlKVxuICAgIGxldCBoYXNoID0gZ2V0QnVmZmVySW50KEJ1ZmZlci5mcm9tKGpzU2hhMjU2LnNoYTI1Ni5hcnJheShrZXkpKSk7XG4gICAgcmV0dXJuIGhhc2ggJSBST1VURV9QUkVDSVNJT04gLyBST1VURV9QUkVDSVNJT047XG59XG5cbi8qKiBUaGUgaW4tbWVtb3J5IGdldENoYW5nZXNBZnRlcjIgZW11bGF0aW9uLCBmb3IgYmFja2VuZHMgd2l0aG91dCBhIG5hdGl2ZSBjaGFuZ2UgZmVlZDogYSBmdWxsIGxpc3RpbmcgZmlsdGVyZWQgZG93biB0byBmaWxlcyB3cml0dGVuIGFmdGVyIGNvbmZpZy50aW1lIHdob3NlIGtleXMgcm91dGUgaW50byBjb25maWcucm91dGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbHRlckNoYW5nZXMoZmlsZXM6IEFyY2hpdmVGaWxlSW5mb1tdLCBjb25maWc6IENoYW5nZXNBZnRlckNvbmZpZyk6IEFyY2hpdmVGaWxlSW5mb1tdIHtcbiAgICByZXR1cm4gZmlsZXMuZmlsdGVyKGZpbGUgPT4ge1xuICAgICAgICBpZiAoZmlsZS5jcmVhdGVUaW1lIDw9IGNvbmZpZy50aW1lKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIGxldCByb3V0ZXMgPSBjb25maWcucm91dGVzO1xuICAgICAgICBpZiAocm91dGVzICYmICFyb3V0ZXMuc29tZShyb3V0ZSA9PiByb3V0ZUNvbnRhaW5zKHJvdXRlLCBnZXRSb3V0ZShmaWxlLnBhdGgpKSkpIHJldHVybiBmYWxzZTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSk7XG59XG5cbi8vIFJvdXRlIHJhbmdlcyBhcmUgW3N0YXJ0LCBlbmQpIC0gaW5jbHVzaXZlIHN0YXJ0LCBleGNsdXNpdmUgZW5kXG5leHBvcnQgZnVuY3Rpb24gcm91dGVDb250YWlucyhyb3V0ZTogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgdmFsdWU6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICghcm91dGUpIHJldHVybiB0cnVlO1xuICAgIHJldHVybiByb3V0ZVswXSA8PSB2YWx1ZSAmJiB2YWx1ZSA8IHJvdXRlWzFdO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJvdXRlc092ZXJsYXAoYTogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgYjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIGxldCBbYVN0YXJ0LCBhRW5kXSA9IGEgfHwgRlVMTF9ST1VURTtcbiAgICBsZXQgW2JTdGFydCwgYkVuZF0gPSBiIHx8IEZVTExfUk9VVEU7XG4gICAgcmV0dXJuIGFTdGFydCA8IGJFbmQgJiYgYlN0YXJ0IDwgYUVuZDtcbn1cbi8qKiBUaGUgb3ZlcmxhcCBvZiB0d28gcm91dGUgcmFuZ2VzLCBvciB1bmRlZmluZWQgd2hlbiB0aGV5IGRvbid0IG92ZXJsYXAuICovXG5leHBvcnQgZnVuY3Rpb24gcm91dGVJbnRlcnNlY3Rpb24oYTogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCwgYjogW251bWJlciwgbnVtYmVyXSB8IHVuZGVmaW5lZCk6IFtudW1iZXIsIG51bWJlcl0gfCB1bmRlZmluZWQge1xuICAgIGxldCBbYVN0YXJ0LCBhRW5kXSA9IGEgfHwgRlVMTF9ST1VURTtcbiAgICBsZXQgW2JTdGFydCwgYkVuZF0gPSBiIHx8IEZVTExfUk9VVEU7XG4gICAgbGV0IHN0YXJ0ID0gTWF0aC5tYXgoYVN0YXJ0LCBiU3RhcnQpO1xuICAgIGxldCBlbmQgPSBNYXRoLm1pbihhRW5kLCBiRW5kKTtcbiAgICBpZiAoc3RhcnQgPj0gZW5kKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHJldHVybiBbc3RhcnQsIGVuZF07XG59XG5cbi8vIEEgbWlzc2luZyB2ZXJzaW9uIGNvdW50cyBhcyAtMSwgc28gYW55IGV4cGxpY2l0bHkgdmVyc2lvbmVkIGNvbmZpZyBiZWF0cyBhbiB1bnZlcnNpb25lZCBvbmVcbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25maWdWZXJzaW9uKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY29uZmlnLnZlcnNpb24gPz8gLTE7XG59XG5cbi8qKiBTdHJpcHMgdGhlIHJvdXRpbmctZmlsZSBzdWZmaXgsIGxlYXZpbmcgdGhlIGJ1Y2tldCdzIHB1YmxpYyBiYXNlIFVSTCAoZmlsZSBwYXRocyBhcHBlbmQgdG8gaXQpLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEJ1Y2tldEJhc2VVcmwodXJsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdXJsLmVuZHNXaXRoKFJPVVRJTkdfU1VGRklYKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGEgYnVja2V0IHJvdXRpbmcgVVJMIGVuZGluZyB3aXRoICR7SlNPTi5zdHJpbmdpZnkoUk9VVElOR19TVUZGSVgpfSwgd2FzICR7SlNPTi5zdHJpbmdpZnkodXJsKX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybC5zbGljZSgwLCAtUk9VVElOR19TVUZGSVgubGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkRmlsZVVybChiYXNlVXJsOiBzdHJpbmcsIGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBiYXNlVXJsICsgXCIvXCIgKyBmaWxlUGF0aC5zcGxpdChcIi9cIikubWFwKGVuY29kZVVSSUNvbXBvbmVudCkuam9pbihcIi9cIik7XG59XG5cbi8vIEV4OiBodHRwczovL3N0b3JhZ2UyLnZpZGdyaWR3ZWIuY29tOjQ0NDUvZmlsZS9leGFtcGxlYWNjb3VudC9leGFtcGxlYnVja2V0L3N0b3JhZ2Uvc3RvcmFnZXJvdXRpbmcuanNvblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSG9zdGVkVXJsKHVybDogc3RyaW5nKTogeyBhZGRyZXNzOiBzdHJpbmc7IHBvcnQ6IG51bWJlcjsgYWNjb3VudDogc3RyaW5nOyBidWNrZXROYW1lOiBzdHJpbmcgfSB7XG4gICAgbGV0IGJhc2UgPSBnZXRCdWNrZXRCYXNlVXJsKHVybCk7XG4gICAgbGV0IHUgPSBuZXcgVVJMKGJhc2UpO1xuICAgIGlmICh1LnByb3RvY29sICE9PSBcImh0dHBzOlwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU3RvcmFnZSBVUkwgbXVzdCB1c2UgaHR0cHMsIGdvdCAke0pTT04uc3RyaW5naWZ5KHUucHJvdG9jb2wpfSBpbiAke0pTT04uc3RyaW5naWZ5KHVybCl9YCk7XG4gICAgfVxuICAgIGxldCBwYXJ0cyA9IHUucGF0aG5hbWUuc3BsaXQoXCIvXCIpLmZpbHRlcih4ID0+IHgpO1xuICAgIGlmIChwYXJ0cy5sZW5ndGggIT09IDMgfHwgcGFydHNbMF0gIT09IFwiZmlsZVwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0ZWQgYSBob3N0ZWQgYnVja2V0IFVSTCBsaWtlIGh0dHBzOi8vaG9zdDpwb3J0L2ZpbGUvPGFjY291bnQ+LzxidWNrZXROYW1lPiR7Uk9VVElOR19TVUZGSVh9LCB3YXMgJHtKU09OLnN0cmluZ2lmeSh1cmwpfWApO1xuICAgIH1cbiAgICByZXR1cm4geyBhZGRyZXNzOiB1Lmhvc3RuYW1lLCBwb3J0OiArdS5wb3J0IHx8IDQ0MywgYWNjb3VudDogZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzWzFdKSwgYnVja2V0TmFtZTogZGVjb2RlVVJJQ29tcG9uZW50KHBhcnRzWzJdKSB9O1xufVxuXG4vLyBFeDogaHR0cHM6Ly9mMDAyLmJhY2tibGF6ZWIyLmNvbS9maWxlL3F1ZXJ5c3VidGVzdC1jb20tcHVibGljLWltbXV0YWJsZS9zdG9yYWdlL3N0b3JhZ2Vyb3V0aW5nLmpzb25cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUJhY2tibGF6ZVVybCh1cmw6IHN0cmluZyk6IHsgYnVja2V0TmFtZTogc3RyaW5nIH0ge1xuICAgIGxldCBiYXNlID0gZ2V0QnVja2V0QmFzZVVybCh1cmwpO1xuICAgIGxldCB1ID0gbmV3IFVSTChiYXNlKTtcbiAgICBsZXQgcGFydHMgPSB1LnBhdGhuYW1lLnNwbGl0KFwiL1wiKS5maWx0ZXIoeCA9PiB4KTtcbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAyIHx8IHBhcnRzWzBdICE9PSBcImZpbGVcIikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cGVjdGVkIGEgYmFja2JsYXplIGJ1Y2tldCBVUkwgbGlrZSBodHRwczovL2YwMDIuYmFja2JsYXplYjIuY29tL2ZpbGUvPGJ1Y2tldE5hbWU+JHtST1VUSU5HX1NVRkZJWH0sIHdhcyAke0pTT04uc3RyaW5naWZ5KHVybCl9YCk7XG4gICAgfVxuICAgIHJldHVybiB7IGJ1Y2tldE5hbWU6IGRlY29kZVVSSUNvbXBvbmVudChwYXJ0c1sxXSkgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VIb3N0ZWRVcmxQb3J0KHVybDogc3RyaW5nLCBwb3J0OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGxldCB1ID0gbmV3IFVSTCh1cmwpO1xuICAgIHUucG9ydCA9IFN0cmluZyhwb3J0KTtcbiAgICByZXR1cm4gdS50b1N0cmluZygpO1xufVxuXG4vKipcbiAqIFB1dHMgYSBzb3VyY2UgaW50byB0aGUgc2hhcGUgdGhlIGNvZGUgZXhwZWN0cy4gSXQgZG9lcyBOT1QganVkZ2UgaXQ6IHRoaXMgcnVucyBldmVyeSB0aW1lIGEgY29uZmlnXG4gKiBpcyBSRUFELCBhbmQgYSBjb25maWcgdGhhdCBpcyBhbHJlYWR5IG9uIGRpc2sgaGFzIHRvIGtlZXAgd29ya2luZyAtIGEgc2VydmVyIHRoYXQgY2Fubm90IHBhcnNlIGl0c1xuICogb3duIHJvdXRpbmcgZmlsZSBpcyBhIHNlcnZlciB0aGF0IGNhbm5vdCBzZXJ2ZSwgYW5kIGl0IHdvdWxkIHN0YXkgdGhhdCB3YXkgZm9yZXZlci4gQW55dGhpbmdcbiAqIG1pc3Npbmcgb3IgdW51c2FibGUgaXMgZmlsbGVkIGluIHdpdGggdGhlIHNhZmVzdCBlcXVpdmFsZW50IGluc3RlYWQsIGxvdWRseSB3aGVyZSBpdCBtYXR0ZXJzLlxuICpcbiAqIEp1ZGdpbmcgaGFwcGVucyBvbiB0aGUgd2F5IElOLCBpbiBhc3NlcnRWYWxpZFJlbW90ZUNvbmZpZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZVNvdXJjZShzb3VyY2U6IFJlbW90ZUNvbmZpZ0Jhc2UpOiBTb3VyY2VDb25maWcge1xuICAgIGlmICh0eXBlb2Ygc291cmNlICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIGxldCBub3JtYWxpemVkID0geyAuLi5zb3VyY2UgfTtcbiAgICAgICAgLy8gQ29uZmlncyB3cml0dGVuIGJlZm9yZSBuYW1lcyBleGlzdGVkIGhhdmUgbm9uZSwgYW5kIGEgbmFtZSB0aGF0IGNvdWxkIG5vdCBiZSBhIGZvbGRlciBjYW5ub3QgYmUgdXNlZCBhcyBvbmUuIEJvdGggZ2V0IHRoZSBkZXJpdmVkIG5hbWU6IGRldGVybWluaXN0aWMsIHNvIGV2ZXJ5IHNlcnZlciBwaWNrcyB0aGUgc2FtZSBvbmUgZm9yIHRoZSBzYW1lIGVudHJ5LlxuICAgICAgICBpZiAoIWlzVXNhYmxlU291cmNlTmFtZShub3JtYWxpemVkLm5hbWUpKSB7XG4gICAgICAgICAgICBsZXQgZGVyaXZlZCA9IGRlcml2ZWRTb3VyY2VOYW1lKG5vcm1hbGl6ZWQpO1xuICAgICAgICAgICAgaWYgKG5vcm1hbGl6ZWQubmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgU291cmNlIG5hbWUgJHtKU09OLnN0cmluZ2lmeShub3JtYWxpemVkLm5hbWUpfSBpbiBhIHJvdXRpbmcgY29uZmlnIGNhbm5vdCBiZSB1c2VkIGFzIGEgZm9sZGVyIG5hbWUsIHNvIHRoaXMgZW50cnkgaXMgYmVpbmcgcmVhZCBhcyAke0pTT04uc3RyaW5naWZ5KGRlcml2ZWQpfTogJHtKU09OLnN0cmluZ2lmeShzb3VyY2UpLnNsaWNlKDAsIDUwMCl9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBub3JtYWxpemVkLm5hbWUgPSBkZXJpdmVkO1xuICAgICAgICB9XG4gICAgICAgIGxldCB3aW5kb3cgPSBub3JtYWxpemVkLnZhbGlkV2luZG93O1xuICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkod2luZG93KSB8fCB3aW5kb3cubGVuZ3RoICE9PSAyIHx8ICF3aW5kb3cuZXZlcnkoeCA9PiB0eXBlb2YgeCA9PT0gXCJudW1iZXJcIikpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYFNvdXJjZSAke0pTT04uc3RyaW5naWZ5KG5vcm1hbGl6ZWQubmFtZSl9IGhhcyBubyB1c2FibGUgdmFsaWRXaW5kb3cgKCR7SlNPTi5zdHJpbmdpZnkod2luZG93KX0pLCByZWFkaW5nIGl0IGFzIGFsd2F5cyB2YWxpZDogJHtKU09OLnN0cmluZ2lmeShzb3VyY2UpLnNsaWNlKDAsIDUwMCl9YCk7XG4gICAgICAgICAgICBub3JtYWxpemVkLnZhbGlkV2luZG93ID0gRlVMTF9WQUxJRF9XSU5ET1c7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJvdXRlID0gbm9ybWFsaXplZC5yb3V0ZTtcbiAgICAgICAgaWYgKHJvdXRlICE9PSB1bmRlZmluZWQgJiYgIWlzVXNhYmxlUm91dGUocm91dGUpKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBTb3VyY2UgJHtKU09OLnN0cmluZ2lmeShub3JtYWxpemVkLm5hbWUpfSBoYXMgYW4gdW51c2FibGUgcm91dGUgKCR7SlNPTi5zdHJpbmdpZnkocm91dGUpfSksIHJlYWRpbmcgaXQgYXMgdGhlIHdob2xlIGtleSBzcGFjZTogJHtKU09OLnN0cmluZ2lmeShzb3VyY2UpLnNsaWNlKDAsIDUwMCl9YCk7XG4gICAgICAgICAgICBub3JtYWxpemVkLnJvdXRlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBub3JtYWxpemVkO1xuICAgIH1cbiAgICBsZXQgaG9zdG5hbWUgPSBuZXcgVVJMKHNvdXJjZSkuaG9zdG5hbWU7XG4gICAgaWYgKGhvc3RuYW1lLmVuZHNXaXRoKFwiLmJhY2tibGF6ZWIyLmNvbVwiKSkge1xuICAgICAgICAvLyBWYWxpZGF0ZXMgdGhlIFVSTCAodGhyb3dzIG9uIG1hbGZvcm1lZCkgYmVmb3JlIGl0J3Mgc3RvcmVkOyB0aGUgYnVja2V0IG5hbWUgaXMgcmVhZCBiYWNrIG91dCBvZiB0aGUgVVJMIGF0IHVzZSBzaXRlcywgbmV2ZXIgc3RvcmVkIG9uIHRoZSBjb25maWcuXG4gICAgICAgIGxldCBwYXJzZWQgPSBwYXJzZUJhY2tibGF6ZVVybChzb3VyY2UpO1xuICAgICAgICByZXR1cm4geyB0eXBlOiBcImJhY2tibGF6ZVwiLCB1cmw6IHNvdXJjZSwgbmFtZTogc2FuaXRpemVTb3VyY2VOYW1lKHBhcnNlZC5idWNrZXROYW1lKSwgdmFsaWRXaW5kb3c6IEZVTExfVkFMSURfV0lORE9XLCBwdWJsaWM6IHRydWUgfTtcbiAgICB9XG4gICAgbGV0IHBhcnNlZCA9IHBhcnNlSG9zdGVkVXJsKHNvdXJjZSk7XG4gICAgcmV0dXJuIHsgdHlwZTogXCJyZW1vdGVcIiwgdXJsOiBzb3VyY2UsIG5hbWU6IHNhbml0aXplU291cmNlTmFtZShgJHtwYXJzZWQuYWRkcmVzc30tJHtwYXJzZWQucG9ydH1gKSwgdmFsaWRXaW5kb3c6IEZVTExfVkFMSURfV0lORE9XLCBwdWJsaWM6IHRydWUgfTtcbn1cblxuZnVuY3Rpb24gaXNVc2FibGVTb3VyY2VOYW1lKG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIGlmICghbmFtZSkgcmV0dXJuIGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICAgIGFzc2VydFZhbGlkU291cmNlTmFtZShuYW1lKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGlzVXNhYmxlUm91dGUocm91dGU6IFtudW1iZXIsIG51bWJlcl0pOiBib29sZWFuIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkocm91dGUpIHx8IHJvdXRlLmxlbmd0aCAhPT0gMiB8fCAhcm91dGUuZXZlcnkoeCA9PiB0eXBlb2YgeCA9PT0gXCJudW1iZXJcIikpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gcm91dGVbMF0gPj0gMCAmJiByb3V0ZVsxXSA8PSAxICYmIHJvdXRlWzBdIDwgcm91dGVbMV07XG59XG5cbi8qKiBUaGUgbmFtZSBhbiBlbnRyeSBnZXRzIHdoZW4gaXQgaGFzIG5vIHVzYWJsZSBvbmUgb2YgaXRzIG93bjogdGhlIGVuZHBvaW50IGl0IHBvaW50cyBhdCwgcGx1cyBpdHMgcm91dGUgd2hlbiBpdCBoYXMgb25lIC0gc28gZW50cmllcyB0aGF0IHdlcmUgZGlzdGluY3Qgc3RvcmFnZSBiZWZvcmUgbmFtZXMgZXhpc3RlZCBzdGF5IGRpc3RpbmN0IG5vdy4gKi9cbmZ1bmN0aW9uIGRlcml2ZWRTb3VyY2VOYW1lKHNvdXJjZTogU291cmNlQ29uZmlnKTogc3RyaW5nIHtcbiAgICBsZXQgZW5kcG9pbnQgPSBzb3VyY2UudXJsO1xuICAgIGlmIChzb3VyY2UudHlwZSA9PT0gXCJyZW1vdGVcIikge1xuICAgICAgICBsZXQgcGFyc2VkID0gcGFyc2VIb3N0ZWRVcmwoc291cmNlLnVybCk7XG4gICAgICAgIGVuZHBvaW50ID0gYCR7cGFyc2VkLmFkZHJlc3N9LSR7cGFyc2VkLnBvcnR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBlbmRwb2ludCA9IHBhcnNlQmFja2JsYXplVXJsKHNvdXJjZS51cmwpLmJ1Y2tldE5hbWU7XG4gICAgfVxuICAgIGxldCByb3V0ZSA9IHNvdXJjZS5yb3V0ZTtcbiAgICBpZiAocm91dGUgJiYgaXNVc2FibGVSb3V0ZShyb3V0ZSkgJiYgIShyb3V0ZVswXSA9PT0gRlVMTF9ST1VURVswXSAmJiByb3V0ZVsxXSA9PT0gRlVMTF9ST1VURVsxXSkpIHtcbiAgICAgICAgZW5kcG9pbnQgKz0gYC1yb3V0ZS0ke3JvdXRlWzBdfS0ke3JvdXRlWzFdfWA7XG4gICAgfVxuICAgIHJldHVybiBzYW5pdGl6ZVNvdXJjZU5hbWUoZW5kcG9pbnQpO1xufVxuXG4vKiogQSBuYW1lIGJ1aWx0IGZyb20gc29tZXRoaW5nIHRoYXQgd2FzIG5ldmVyIG1lYW50IHRvIGJlIG9uZSAoYSBob3N0LCBhIGJ1Y2tldCksIG1hZGUgdXNhYmxlIGFzIGEgZm9sZGVyLiBQZXJpb2RzIHN1cnZpdmUsIHNvIGl0IHN0aWxsIHJlYWRzIGFzIHdoYXQgaXQgY2FtZSBmcm9tLiAqL1xuZnVuY3Rpb24gc2FuaXRpemVTb3VyY2VOYW1lKGZyb206IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IG5hbWUgPSBmcm9tLnJlcGxhY2UoL1teXFx3Li1dL2csIFwiLVwiKS5zbGljZSgwLCA2NCk7XG4gICAgaWYgKCFpc1VzYWJsZVNvdXJjZU5hbWUobmFtZSkpIHtcbiAgICAgICAgLy8gT25seSByZWFjaGFibGUgZnJvbSBzb21ldGhpbmcgd2l0aCBubyB1c2FibGUgY2hhcmFjdGVycyBhdCBhbGw7IHRoZSBuYW1lIHN0aWxsIGhhcyB0byBleGlzdFxuICAgICAgICByZXR1cm4gXCJzb3VyY2VcIjtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWU7XG59XG5cbi8qKiBIb3cgZmFyIHVwIGZyb20gMCB0aGUgc291cmNlcycgcm91dGVzIHJlYWNoIHdpdGhvdXQgYSBnYXAgKDEgbWVhbnMgdGhlIHdob2xlIGtleSBzcGFjZSkuICovXG5mdW5jdGlvbiBnZXRSb3V0ZUNvdmVyYWdlKHNvdXJjZXM6IFNvdXJjZUNvbmZpZ1tdKTogbnVtYmVyIHtcbiAgICBsZXQgcm91dGVzID0gc291cmNlcy5tYXAoeCA9PiB4LnJvdXRlIHx8IEZVTExfUk9VVEUpO1xuICAgIHNvcnQocm91dGVzLCB4ID0+IHhbMF0pO1xuICAgIGxldCBjb3ZlcmVkID0gMDtcbiAgICBmb3IgKGxldCByb3V0ZSBvZiByb3V0ZXMpIHtcbiAgICAgICAgaWYgKHJvdXRlWzBdID4gY292ZXJlZCkgYnJlYWs7XG4gICAgICAgIGNvdmVyZWQgPSBNYXRoLm1heChjb3ZlcmVkLCByb3V0ZVsxXSk7XG4gICAgfVxuICAgIHJldHVybiBjb3ZlcmVkO1xufVxuXG4vKiogUHV0cyBhIHdob2xlIGNvbmZpZyBpbnRvIHRoZSBzaGFwZSB0aGUgY29kZSBleHBlY3RzLCB3aXRob3V0IGp1ZGdpbmcgaXQgLSBzZWUgbm9ybWFsaXplU291cmNlLCBhbmQgc2VlIGFzc2VydFZhbGlkUmVtb3RlQ29uZmlnIGZvciB0aGUganVkZ2luZy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVSZW1vdGVDb25maWcoY29uZmlnOiBSZW1vdGVDb25maWcgfCBSZW1vdGVDb25maWdCYXNlKTogUmVtb3RlQ29uZmlnIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZyAhPT0gXCJzdHJpbmdcIiAmJiBcInNvdXJjZXNcIiBpbiBjb25maWcpIHtcbiAgICAgICAgcmV0dXJuIHsgdmVyc2lvbjogY29uZmlnLnZlcnNpb24sIHNvdXJjZXM6IGNvbmZpZy5zb3VyY2VzLm1hcChub3JtYWxpemVTb3VyY2UpIH07XG4gICAgfVxuICAgIHJldHVybiB7IHNvdXJjZXM6IFtub3JtYWxpemVTb3VyY2UoY29uZmlnKV0gfTtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIGEgY29uZmlnIG1heSBiZSBXUklUVEVOLiBFdmVyeXRoaW5nIGhlcmUgaXMgYSBydWxlIGFib3V0IHRoZSBjb25maWcgYXMgYSB3aG9sZSwgd2hpY2ggaXNcbiAqIGV4YWN0bHkgd2h5IGl0IGNhbm5vdCBydW4gb24gcmVhZDogYSBjb25maWcgdGhhdCBpcyBhbHJlYWR5IHN0b3JlZCBzb21ld2hlcmUgaGFzIHRvIGtlZXAgYmVpbmdcbiAqIHJlYWRhYmxlLCBvciBhIHNlcnZlciB0aGF0IG9uY2UgYWNjZXB0ZWQgYSBiYWQgb25lIGNvdWxkIG5ldmVyIHN0YXJ0IGFnYWluLiBSZWplY3RpbmcgaXQgYXQgdGhlXG4gKiBwb2ludCBpdCBpcyBpbnRyb2R1Y2VkIGlzIHdoYXQga2VlcHMgYSBiYWQgb25lIGZyb20gZXZlciBiZWluZyBzdG9yZWQgaW4gdGhlIGZpcnN0IHBsYWNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0VmFsaWRSZW1vdGVDb25maWcoY29uZmlnOiBSZW1vdGVDb25maWcpOiB2b2lkIHtcbiAgICBsZXQgc291cmNlcyA9IGNvbmZpZy5zb3VyY2VzLm1hcChub3JtYWxpemVTb3VyY2UpO1xuICAgIC8vIE1peGVkIGltbXV0YWJpbGl0eSBtYWtlcyBubyBzZW5zZSBBTU9ORyBzb3VyY2VzIHZhbGlkIGF0IHRoZSBzYW1lIHRpbWU6IGEgbXV0YWJsZSBzb3VyY2Ugd291bGQgYWNjZXB0IG92ZXJ3cml0ZXMgdGhhdCBpdHMgaW1tdXRhYmxlIHBlZXJzIHJlZnVzZSB0byBzeW5jaHJvbml6ZSwgZm9ya2luZyB0aGVpciBjb250ZW50cy4gU291cmNlcyBhcmUgZ3JvdXBlZCBieSB0cmFuc2l0aXZlbHkgb3ZlcmxhcHBpbmcgdmFsaWQgd2luZG93cyAoYWJzb3JiIGV2ZXJ5dGhpbmcgb3ZlcmxhcHBpbmcgdGhlIGdyb3VwLCBleHRlbmQgdGhlIGdyb3VwJ3MgZW5kLCByZXBlYXQpIC0gYSBzb2Z0IGNoZWNrIHRoYXQgaXMgY29ycmVjdCBhcyBsb25nIGFzIHdpbmRvd3MgaGF2ZSBjbGVhbiBicmVha3MgKGEgZ3JvdXAgZW5kcyBleGFjdGx5IHdoZXJlIHRoZSBuZXh0IGJlZ2lucykuXG4gICAgbGV0IHNvcnRlZCA9IFsuLi5zb3VyY2VzXTtcbiAgICBzb3J0KHNvcnRlZCwgeCA9PiB4LnZhbGlkV2luZG93WzBdKTtcbiAgICBsZXQgZ3JvdXA6IHR5cGVvZiBzb3VyY2VzID0gW107XG4gICAgbGV0IGdyb3VwRW5kID0gMDtcbiAgICBmdW5jdGlvbiBjaGVja0dyb3VwKCkge1xuICAgICAgICBsZXQgaW1tdXRhYmxlQ291bnQgPSBncm91cC5maWx0ZXIoeCA9PiB4LmltbXV0YWJsZSkubGVuZ3RoO1xuICAgICAgICBpZiAoaW1tdXRhYmxlQ291bnQgJiYgaW1tdXRhYmxlQ291bnQgIT09IGdyb3VwLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTb3VyY2VzIHdpdGggb3ZlcmxhcHBpbmcgdmFsaWQgd2luZG93cyBtdXN0IGFncmVlIG9uIGltbXV0YWJpbGl0eTogJHtpbW11dGFibGVDb3VudH0gb2YgJHtncm91cC5sZW5ndGh9IGFyZSBpbW11dGFibGUuIFNvdXJjZXM6ICR7SlNPTi5zdHJpbmdpZnkoZ3JvdXAubWFwKHggPT4gKHsgdXJsOiB4LnVybCwgdmFsaWRXaW5kb3c6IHgudmFsaWRXaW5kb3csIGltbXV0YWJsZTogISF4LmltbXV0YWJsZSB9KSkpfWApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoZSBzb3VyY2VzIHZhbGlkIGF0IGFueSBpbnN0YW50IG11c3QgY292ZXIgdGhlIHdob2xlIGtleSBzcGFjZSwgb3Iga2V5cyByb3V0aW5nIGludG8gYSBnYXAgY291bGQgbmV2ZXIgYmUgcmVhZFxuICAgICAgICBsZXQgY292ZXJlZCA9IGdldFJvdXRlQ292ZXJhZ2UoZ3JvdXApO1xuICAgICAgICBpZiAoY292ZXJlZCA8IDEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU291cmNlcyB3aXRoIG92ZXJsYXBwaW5nIHZhbGlkIHdpbmRvd3MgbXVzdCBjb3ZlciB0aGUgZnVsbCByb3V0ZSBzcGFjZSBbMCwgMSk7IGNvdmVyYWdlIHN0b3BzIGF0ICR7Y292ZXJlZH0uIFNvdXJjZXM6ICR7SlNPTi5zdHJpbmdpZnkoZ3JvdXAubWFwKHggPT4gKHsgdXJsOiB4LnVybCwgdmFsaWRXaW5kb3c6IHgudmFsaWRXaW5kb3csIHJvdXRlOiB4LnJvdXRlIHx8IEZVTExfUk9VVEUgfSkpKX1gKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBBIHN0b3JlIGlzIE5PVCByZXF1aXJlZCB0byBjb3ZlciB0aGUgd2hvbGUga2V5IHNwYWNlIG9uIGl0cyBvd24uIEl0IG9uY2Ugd2FzLCBiZWNhdXNlIGEgc3RvcmUgdGhhdCBob2xkcyBrZXlzIG91dHNpZGUgdGhlIHJvdXRlIGl0IHN5bmNocm9uaXplcyBuZXZlciBsZWFybnMgb2YgdGhlaXIgZGVsZXRpb25zIGFuZCBldmVudHVhbGx5IHJlc3VycmVjdHMgdGhlbSAtIGJ1dCBhIHN0b3JlJ3MgZGF0YSBub3cgbGl2ZXMgdW5kZXIgaXRzIG5hbWUgcmF0aGVyIHRoYW4gaXRzIHJvdXRlLCBhbmQgYSBzY2FuIG9ubHkgZXZlciBpbmRleGVzIGtleXMgaW5zaWRlIHRoZSByb3V0ZSB0aGUgc3RvcmUgaXMgY29uZmlndXJlZCBmb3IsIHNvIGtleXMgb3V0c2lkZSBpdCBhcmUgbmV2ZXIgdGFrZW4gaW50byB0aGUgaW5kZXggdGhhdCBjb3VsZCByZXN1cnJlY3QgdGhlbS4gV2hhdCByZXBsYWNlcyB0aGF0IHJ1bGUgaXMgdGhlIG5hbWluZyBkaXNjaXBsaW5lOiBhIG5hbWUgaXMgb25lIHN0b3JhZ2UsIGFuZCBwb2ludGluZyBhIG5hbWUgYXQgYSBkaWZmZXJlbnQgcm91dGUgbGF0ZXIgaXMgd2hhdCB3b3VsZCBoYW5kIGl0IGtleXMgaXQgbmV2ZXIgc3luY2hyb25pemVkLlxuICAgIH1cbiAgICBmb3IgKGxldCBzb3VyY2Ugb2Ygc29ydGVkKSB7XG4gICAgICAgIGlmIChncm91cC5sZW5ndGggJiYgc291cmNlLnZhbGlkV2luZG93WzBdID49IGdyb3VwRW5kKSB7XG4gICAgICAgICAgICBjaGVja0dyb3VwKCk7XG4gICAgICAgICAgICBncm91cCA9IFtdO1xuICAgICAgICB9XG4gICAgICAgIGdyb3VwLnB1c2goc291cmNlKTtcbiAgICAgICAgZ3JvdXBFbmQgPSBNYXRoLm1heChncm91cEVuZCwgc291cmNlLnZhbGlkV2luZG93WzFdKTtcbiAgICB9XG4gICAgY2hlY2tHcm91cCgpO1xuICAgIC8vIE9ORSBlbnRyeSBwZXIgc3RvcmUgYXQgYW55IGluc3RhbnQuIEEgbmFtZSBpcyBhIHN0b3JlIC0gb25lIGZvbGRlciwgb25lIGluZGV4IC0gc28gdHdvIGVudHJpZXMgbmFtaW5nIGl0IGF0IHRoZSBzYW1lIHRpbWUgd291bGQgYmUgdHdvIGFuc3dlcnMgdG8gXCJ3aGF0IGlzIHRoaXMgc3RvcmUgY29uZmlndXJlZCB0byBiZSByaWdodCBub3dcIiwgYW5kIGV2ZXJ5IHJvdXRlIGFuZCBmbGFnIGl0IHJlYWRzIHdvdWxkIGRlcGVuZCBvbiB3aGljaCBlbnRyeSB5b3UgaGFwcGVuZWQgdG8gbG9vayBhdC4gTm9uLW92ZXJsYXBwaW5nIHdpbmRvd3MgYXJlIGZpbmUsIGFuZCBhcmUgaG93IGEgc3RvcmUncyBjb25maWd1cmF0aW9uIGNoYW5nZXMgb3ZlciB0aW1lLlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc291cmNlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBmb3IgKGxldCBqID0gaSArIDE7IGogPCBzb3VyY2VzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICBsZXQgYSA9IHNvdXJjZXNbaV07XG4gICAgICAgICAgICBsZXQgYiA9IHNvdXJjZXNbal07XG4gICAgICAgICAgICBpZiAoc3RvcmVJZGVudGl0eShhKSAhPT0gc3RvcmVJZGVudGl0eShiKSkgY29udGludWU7XG4gICAgICAgICAgICBpZiAoYS52YWxpZFdpbmRvd1swXSA8IGIudmFsaWRXaW5kb3dbMV0gJiYgYi52YWxpZFdpbmRvd1swXSA8IGEudmFsaWRXaW5kb3dbMV0pIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0b3JlIG5hbWUgcmV1c2VkIHdpdGggY29uZmxpY3RpbmcgY29uZmlndXJhdGlvbnMuIFRoZSBuYW1lICR7SlNPTi5zdHJpbmdpZnkoYS5uYW1lKX0gaXMgdXNlZCBieSBtdWx0aXBsZSBzb3VyY2VzIGF0IHRoZSBzYW1lIHRpbWU6XFxuICAgICR7SlNPTi5zdHJpbmdpZnkoYSl9XFxuICAgICR7SlNPTi5zdHJpbmdpZnkoYil9XFxuQSBuYW1lIGlzIG9uZSBzdG9yZSAtIG9uZSBmb2xkZXIsIG9uZSBpbmRleCAtIHNvIGl0IGNhbiBvbmx5IGJlIGNvbmZpZ3VyZWQgb25lIHdheSBhdCBhIHRpbWUuIEdpdmUgdGhlbSBub24tb3ZlcmxhcHBpbmcgdmFsaWQgd2luZG93cywgb3IgZGlmZmVyZW50IG5hbWVzIGlmIHRoZXkgYXJlIG1lYW50IHRvIGJlIGRpZmZlcmVudCBzdG9yYWdlLmApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBpZGVudGl0eSBvZiBvbmUgb2YgYSBzdG9yZSdzIFNPVVJDRSBTTE9UUyAtIHdoaWNoIGlzIHRoZSBlbmRwb2ludCBpdCB0YWxrcyB0bywgYW5kIG5vdCB0aGUgc2FtZVxuICogcXVlc3Rpb24gYXMgd2hpY2ggc3RvcmUgdGhpcyBpcyAodGhhdCBpcyBDb21tb25Db25maWcubmFtZSkuIEEgc3dpdGNob3ZlcidzIGFsdGVybmF0ZSBwb3J0IGlzIGFcbiAqIGRpc3RpbmN0IHNsb3QgZXZlbiB0aG91Z2ggaXQgbmFtZXMgdGhlIHNhbWUgc3RvcmFnZSwgYmVjYXVzZSBhIHNsb3QgaG9sZHMgYSBjb25uZWN0aW9uIHRvIGEgcG9ydC5cbiAqXG4gKiBPTkxZIHRoZSB0eXBlLCB0aGUgdXJsLCBhbmQgdGhlIGludGVybWVkaWF0ZSdzIGFsdGVybmF0ZSBwb3J0IGFyZSBwYXJ0IG9mIGl0OiBldmVyeXRoaW5nIGVsc2UgaXNcbiAqIHBvbGljeSBhYm91dCBob3cgd2UgVVNFIHRoZSBlbmRwb2ludCwgYW5kIGNoYW5naW5nIHBvbGljeSBtdXN0IG5ldmVyIG1ha2UgYSBzdG9yZSBiZWxpZXZlIGl0IGlzXG4gKiBsb29raW5nIGF0IGEgTkVXIHNvdXJjZSAtIHRoYXQgd291bGQgZHJvcCBldmVyeSBpbmRleCBlbnRyeSB0aGUgb2xkIG9uZSBoZWxkIGFuZCByZXNjYW4gaXQgZnJvbVxuICogc2NyYXRjaCwgc28gdGhlIGZpbGVzIGl0IGhvbGRzIGdvIG1pc3NpbmcgZnJvbSBsaXN0aW5ncyB1bnRpbCB0aGUgcmVzY2FuIGZpbmlzaGVzLCBmb3IgYSBmbGFnIGZsaXAuXG4gKlxuICogQnVpbHQgYnkgaGFuZCByYXRoZXIgdGhhbiBieSBzZXJpYWxpemluZyB0aGUgY29uZmlnLCBzbyBpdCBjYW5ub3QgY2hhbmdlIGp1c3QgYmVjYXVzZSB0aGUgcm91dGluZ1xuICogZmlsZSB3YXMgd3JpdHRlbiB3aXRoIGl0cyBrZXlzIGluIGEgZGlmZmVyZW50IG9yZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc291cmNlSWRlbnRpdHkoc291cmNlQ29uZmlnOiBTb3VyY2VDb25maWcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIGlmICghc291cmNlQ29uZmlnKSByZXR1cm4gXCJkaXNrXCI7XG4gICAgcmV0dXJuIGAke3NvdXJjZUNvbmZpZy50eXBlfXwke3NvdXJjZUNvbmZpZy51cmx9fCR7c291cmNlQ29uZmlnLmludGVybWVkaWF0ZSB8fCBcIlwifWA7XG59XG5cbi8qKiBXaGF0IGFuIGluZGV4IGVudHJ5IHJlY29yZHMgYXMgdGhlIGhvbGRlciBvZiBpdHMgYnl0ZXMgKHNlZSBBcmNoaXZlc1NvdXJjZS51cmwpLCBzbyBpdCBtdXN0IG5hbWUgdGhlIGVuZHBvaW50IEZPUkVWRVIuIEFuIGludGVybWVkaWF0ZSBpcyBhIHN3aXRjaG92ZXIncyB0ZW1wb3JhcnkgYWx0ZXJuYXRlIHBvcnQgb250byBhbm90aGVyIHNvdXJjZSwgYW5kIHRoYXQgcG9ydCBpcyBnb25lIGZvciBnb29kIG9uY2UgaXRzIHdpbmRvdyBwYXNzZXMgLSBzbyBpdCBpcyByZWNvcmRlZCBhcyB0aGUgc291cmNlIGl0IHdhcyBzcGxpdCBvdXQgb2YsIHdoaWNoIGhvbGRzIHRoZSBzYW1lIGJ1Y2tldCBhbmQgb3V0bGl2ZXMgaXQuICovXG5leHBvcnQgZnVuY3Rpb24gc291cmNlUGVyc2lzdGVudFVybChzb3VyY2VDb25maWc6IFNvdXJjZUNvbmZpZyB8IHVuZGVmaW5lZCwgZm9sZGVyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghc291cmNlQ29uZmlnKSByZXR1cm4gZm9sZGVyO1xuICAgIHJldHVybiBzb3VyY2VDb25maWcuaW50ZXJtZWRpYXRlIHx8IHNvdXJjZUNvbmZpZy51cmw7XG59XG5cbi8qKiBXaGljaCBzdG9yZSBhbiBlbnRyeSBjb25maWd1cmVzOiBpdHMgbmFtZSwgb24gdGhlIHNlcnZlciBpdCBwb2ludHMgYXQuIEEgc3dpdGNob3ZlcidzIGFsdGVybmF0ZSBwb3J0IGlzIHRoZSBzYW1lIHNlcnZlciAoc28gaXQgaXMgY29tcGFyZWQgYWdhaW5zdCB0aGUgZW50cnkgaXQgd2FzIHNwbGl0IG91dCBvZiwgd2hvc2Ugd2luZG93IGl0IG11c3Qgbm90IG92ZXJsYXApOyBhIGdlbnVpbmVseSBkaWZmZXJlbnQgc2VydmVyIHdpdGggdGhlIHNhbWUgbmFtZSBpcyBhIGRpZmZlcmVudCBzdG9yZSwgb24gYSBkaWZmZXJlbnQgbWFjaGluZS4gKi9cbmZ1bmN0aW9uIHN0b3JlSWRlbnRpdHkoc291cmNlOiBTb3VyY2VDb25maWcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtzb3VyY2UuaW50ZXJtZWRpYXRlIHx8IHNvdXJjZS51cmx9fCR7c291cmNlLm5hbWV9YDtcbn1cblxuLyoqIFJlYWRzIGEgc3RvcmVkIHJvdXRpbmcgY29uZmlnLiBORVZFUiB0aHJvd3M6IHRoaXMgcnVucyBvbiBldmVyeSBSRUFEIG9mIGEgc3RvcmVkIGNvbmZpZywgYW5kIGEgdG9ybi9jb3JydXB0IGZpbGUgbXVzdCBub3QgYnJpY2sgdGhlIHBhdGhzIHRoYXQgd291bGQgZml4IGl0IC0gYWJvdmUgYWxsIHdyaXRlUm91dGluZ0NvbmZpZywgd2hlcmUgdGhyb3dpbmcgd2hpbGUgcmVhZGluZyB0aGUgT0xEIGNvbmZpZyBibG9ja3MgdGhlIHdyaXRlIG9mIHRoZSBORVcgb25lIGZvcmV2ZXIuIFVucmVhZGFibGUgZGF0YSBpcyBsb2dnZWQgYW5kIHJlYWQgYXMgdW5kZWZpbmVkIC0gdGhlIHNhbWUgYXMgdGhlIGZpbGUgbm90IGV4aXN0aW5nLiBKdWRnaW5nIGEgY29uZmlnIG9uIGl0cyB3YXkgSU4gaXMgdGhlIHdyaXRlcidzIGpvYiAoc2VlIGFzc2VydFZhbGlkUmVtb3RlQ29uZmlnIGF0IHRoZSB3cml0ZSBlbnRyeSBwb2ludHMpLCB3aGVyZSByZWplY3RpbmcgYmFkIGRhdGEgd2l0aCBhIHRocm93IGlzIGNvcnJlY3QuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VSb3V0aW5nRGF0YShkYXRhOiBCdWZmZXIpOiBSZW1vdGVDb25maWcgfCB1bmRlZmluZWQge1xuICAgIGxldCB0ZXh0ID0gZGF0YS50b1N0cmluZygpO1xuICAgIGxldCBwYXJzZWQ6IFJlbW90ZUNvbmZpZztcbiAgICB0cnkge1xuICAgICAgICBwYXJzZWQgPSBKU09OLnBhcnNlKHRleHQpIGFzIFJlbW90ZUNvbmZpZztcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYElnbm9yaW5nIGEgc3RvcmVkIHJvdXRpbmcgY29uZmlnIC0gaXQgaXMgbm90IHZhbGlkIEpTT04gKCR7U3RyaW5nKGUpfSkuIERhdGE6ICR7SlNPTi5zdHJpbmdpZnkodGV4dCkuc2xpY2UoMCwgNTAwKX1gKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgaWYgKCFwYXJzZWQgfHwgdHlwZW9mIHBhcnNlZCAhPT0gXCJvYmplY3RcIiB8fCAhQXJyYXkuaXNBcnJheShwYXJzZWQuc291cmNlcykpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihgSWdub3JpbmcgYSBzdG9yZWQgcm91dGluZyBjb25maWcgLSBpdCBtdXN0IGJlIHsgdmVyc2lvbj8sIHNvdXJjZXM6IFsuLi5dIH0sIHdhcyAke3RleHQuc2xpY2UoMCwgNTAwKX1gKTtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIG5vcm1hbGl6ZVJlbW90ZUNvbmZpZyhwYXJzZWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VyaWFsaXplUmVtb3RlQ29uZmlnKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkoY29uZmlnLCB1bmRlZmluZWQsIDQpKTtcbn1cbiJdfQ==
|
|
327
|
-
/* _JS_SOURCE_HASH = "
|
|
327
|
+
/* _JS_SOURCE_HASH = "f97c3e6eedd35e0b915f4ccc89cdf6789c3ac7af9f7776a814965203264f1721"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -71,4 +71,4 @@ function isOwnAddress(address, port) {
|
|
|
71
71
|
}
|
|
72
72
|
exports.isOwnAddress = isOwnAddress;
|
|
73
73
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VydmVyQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLGdEQUF3QjtBQUN4Qix1Q0FBbUM7QUFZbkMsSUFBSSxNQUF1QyxDQUFDO0FBQzVDLFNBQWdCLHNCQUFzQixDQUFDLEtBQTBCO0lBQzdELE1BQU0sR0FBRyxLQUFLLENBQUM7QUFDbkIsQ0FBQztBQUZELHdEQUVDO0FBQ0QsU0FBZ0Isc0JBQXNCO0lBQ2xDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsK0VBQStFLENBQUMsQ0FBQztJQUNyRyxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQztBQUxELHdEQUtDO0FBQ0QsU0FBZ0IsOEJBQThCO0lBQzFDLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFGRCx3RUFFQztBQUVELElBQUksb0JBQXdDLENBQUM7QUFDN0MsU0FBZ0IsdUJBQXVCLENBQUMsTUFBMEI7SUFDOUQsb0JBQW9CLEdBQUcsTUFBTSxDQUFDO0FBQ2xDLENBQUM7QUFGRCwwREFFQztBQUNELFNBQWdCLHVCQUF1QjtJQUNuQyxPQUFPLG9CQUFvQixDQUFDO0FBQ2hDLENBQUM7QUFGRCwwREFFQztBQUNELFNBQWdCLG1CQUFtQjtJQUMvQixJQUFJLG9CQUFvQjtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBRkQsa0RBRUM7QUFFRCxTQUFnQixnQkFBZ0I7SUFDNUIsSUFBSSxNQUFNLEdBQUcsOEJBQThCLEVBQUUsQ0FBQztJQUM5QyxJQUFJLE1BQU07UUFBRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDakMsSUFBSSxNQUFNLEdBQUcsSUFBQSxnQkFBTSxFQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNWLE1BQU0sSUFBSSxLQUFLLENBQUMsa0dBQWtHLENBQUMsQ0FBQztJQUN4SCxDQUFDO0lBQ0QsT0FBTyxjQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUM7QUFSRCw0Q0FRQztBQUVELHNGQUFzRjtBQUN0RiwrRkFBK0Y7QUFDL0YsbUdBQW1HO0FBQ25HLHVEQUF1RDtBQUV2RCxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7QUFDM0MsU0FBZ0Isa0JBQWtCLENBQUMsSUFBWTtJQUMzQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDL0IsQ0FBQztBQUZELGdEQUVDO0FBQ0QsU0FBZ0IscUJBQXFCLENBQUMsSUFBWTtJQUM5QyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUZELHNEQUVDO0FBQ0Qsb1lBQW9ZO0FBQ3BZLFNBQWdCLFlBQVksQ0FBQyxPQUFlLEVBQUUsSUFBWTtJQUN0RCxJQUFJLE1BQU0sR0FBRyw4QkFBOEIsRUFBRSxDQUFDO0lBQzlDLElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDMUIsSUFBSSxPQUFPLEtBQUssTUFBTSxDQUFDLE1BQU07UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM1QyxPQUFPLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxJQUFJLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5RCxDQUFDO0FBTEQsb0NBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgZ2V0QXJnIH0gZnJvbSBcIi4vY2xpQXJnc1wiO1xuXG4vLyBUaGUgc3RvcmFnZSBzZXJ2ZXIncyBwcm9jZXNzLWxldmVsIGlkZW50aXR5IGFuZCBzeXN0ZW0gc3RhdGU6IHdoaWNoIHNlcnZlciB3ZSBhcmUgKGNvbmZpZywgZXh0cmFcbi8vIHBvcnRzKSwgYW5kIHdoZXRoZXIgd3JpdGVzIGFyZSBhbGxvd2VkLlxuXG5leHBvcnQgdHlwZSBTdG9yYWdlU2VydmVyQ29uZmlnID0ge1xuICAgIGRvbWFpbjogc3RyaW5nO1xuICAgIHBvcnQ6IG51bWJlcjtcbiAgICByb290RG9tYWluOiBzdHJpbmc7XG4gICAgZm9sZGVyOiBzdHJpbmc7XG59O1xuXG5sZXQgY29uZmlnOiBTdG9yYWdlU2VydmVyQ29uZmlnIHwgdW5kZWZpbmVkO1xuZXhwb3J0IGZ1bmN0aW9uIHNldFN0b3JhZ2VTZXJ2ZXJDb25maWcodmFsdWU6IFN0b3JhZ2VTZXJ2ZXJDb25maWcpOiB2b2lkIHtcbiAgICBjb25maWcgPSB2YWx1ZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlU2VydmVyQ29uZmlnKCk6IFN0b3JhZ2VTZXJ2ZXJDb25maWcge1xuICAgIGlmICghY29uZmlnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgU3RvcmFnZSBzZXJ2ZXIgaXMgbm90IGluaXRpYWxpemVkICh0aGlzIEFQSSBvbmx5IHdvcmtzIG9uIHRoZSBzdG9yYWdlIHNlcnZlcilgKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbmZpZztcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdG9yYWdlU2VydmVyQ29uZmlnT3B0aW9uYWwoKTogU3RvcmFnZVNlcnZlckNvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGNvbmZpZztcbn1cblxubGV0IHdyaXRlc1JlamVjdGVkUmVhc29uOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5leHBvcnQgZnVuY3Rpb24gc2V0V3JpdGVzUmVqZWN0ZWRSZWFzb24ocmVhc29uOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICB3cml0ZXNSZWplY3RlZFJlYXNvbiA9IHJlYXNvbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBnZXRXcml0ZXNSZWplY3RlZFJlYXNvbigpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB3cml0ZXNSZWplY3RlZFJlYXNvbjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRXcml0ZXNBbGxvd2VkKCk6IHZvaWQge1xuICAgIGlmICh3cml0ZXNSZWplY3RlZFJlYXNvbikgdGhyb3cgbmV3IEVycm9yKHdyaXRlc1JlamVjdGVkUmVhc29uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0b3JhZ2VGb2xkZXIoKTogc3RyaW5nIHtcbiAgICBsZXQgY29uZmlnID0gZ2V0U3RvcmFnZVNlcnZlckNvbmZpZ09wdGlvbmFsKCk7XG4gICAgaWYgKGNvbmZpZykgcmV0dXJuIGNvbmZpZy5mb2xkZXI7XG4gICAgbGV0IGZvbGRlciA9IGdldEFyZyhcImZvbGRlclwiKTtcbiAgICBpZiAoIWZvbGRlcikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFN0b3JhZ2Ugc2VydmVyIGlzIG5vdCBpbml0aWFsaXplZCBhbmQgdGhlcmUgaXMgbm8gLS1mb2xkZXIgYXJnLCBzbyB0aGUgc3RvcmFnZSBmb2xkZXIgaXMgdW5rbm93bmApO1xuICAgIH1cbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKGZvbGRlcik7XG59XG5cbi8vIFdoaWNoIG1hY2hpbmVzIHRoaXMgc2VydmVyIHRydXN0cyBpcyBub3Qga2VwdCBoZXJlIGFueSBtb3JlLiBJdCBsaXZlcyBpbiB0aGUgc2lnbmVkXG4vLyBhdXRob3JpemVkX2tleXMgcmVwbywgcmVhZCB0aHJvdWdoIHNlY3VyaXR5L21hY2hpbmVzLCBzbyBldmVyeSBtYWNoaW5lIHNoYXJlcyBvbmUgbGlzdCwgd2l0aFxuLy8gcmV2b2NhdGlvbiBhbmQgYWRkcmVzcyBjaGVja2luZyB0aGF0IGEgcGVyLXNlcnZlciBzdG9yZSBuZXZlciBoYWQuIHNldFRydXN0ZWRNYWNoaW5lcywgdGhlIHRydXN0XG4vLyBzdG9yZSBhbmQgdGhlIGFjY2VzcyByZXF1ZXN0IHN0b3JlIGFsbCB3ZW50IHdpdGggaXQuXG5cbmNvbnN0IGV4dHJhTGlzdGVuUG9ydHMgPSBuZXcgU2V0PG51bWJlcj4oKTtcbmV4cG9ydCBmdW5jdGlvbiBhZGRFeHRyYUxpc3RlblBvcnQocG9ydDogbnVtYmVyKTogdm9pZCB7XG4gICAgZXh0cmFMaXN0ZW5Qb3J0cy5hZGQocG9ydCk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlRXh0cmFMaXN0ZW5Qb3J0KHBvcnQ6IG51bWJlcik6IHZvaWQge1xuICAgIGV4dHJhTGlzdGVuUG9ydHMuZGVsZXRlKHBvcnQpO1xufVxuLyoqIFdoZXRoZXIgYWRkcmVzczpwb3J0IGlzIHRoaXMgc2VydmVyIHByb2Nlc3MsIGluY2x1ZGluZyBpdHMgZXh0cmEgbGlzdGVuIHBvcnRzIChhIGRlcGxveSBzd2l0Y2hvdmVyJ3MgYWx0ZXJuYXRlIHBvcnQgaXMgc3RpbGwgdXMpLiBVc2VkIHRvIHRlbGwgd2hpY2ggY29uZmlnIGVudHJpZXMgYXJlIE9VUiBjb3B5IG9mIGEgYnVja2V0IC0gdGhlIHN0b3JlcyB3ZSBydW4gLSBhcyBvcHBvc2VkIHRvIHBlZXJzIHdlIHN5bmNocm9uaXplIHdpdGguIFRhbGtpbmcgdG8gb3Vyc2VsdmVzIGlzIG5vdCBvbmUgb2YgdGhlIHRoaW5ncyBpdCBwcmV2ZW50czogYSBzb3VyY2UgdGhhdCBoYXBwZW5zIHRvIGJlIHVzIGlzIHJlYWNoZWQgb3ZlciB0aGUgQVBJIGxpa2UgYW55IG90aGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzT3duQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIHBvcnQ6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIGxldCBjb25maWcgPSBnZXRTdG9yYWdlU2VydmVyQ29uZmlnT3B0aW9uYWwoKTtcbiAgICBpZiAoIWNvbmZpZykgcmV0dXJuIGZhbHNlO1xuICAgIGlmIChhZGRyZXNzICE9PSBjb25maWcuZG9tYWluKSByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuIHBvcnQgPT09IGNvbmZpZy5wb3J0IHx8IGV4dHJhTGlzdGVuUG9ydHMuaGFzKHBvcnQpO1xufVxuIl19
|
|
74
|
-
/* _JS_SOURCE_HASH = "
|
|
74
|
+
/* _JS_SOURCE_HASH = "a7b1c9eb52944030551c97cc7f285cd66efb6ce1c91aaeb3a3ccfce24a8079d1"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"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");
|
|
@@ -306,4 +306,4 @@ class SourceWrapper {
|
|
|
306
306
|
}
|
|
307
307
|
exports.SourceWrapper = SourceWrapper;
|
|
308
308
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlV3JhcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNvdXJjZVdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbURBQXdEO0FBQ3hELGtFQUErRTtBQUMvRSwyREFBcUQ7QUFDckQsb0RBQWlEO0FBRWpELGlEQUFxSDtBQUNySCxxREFBa0Q7QUFDbEQsK0NBQTRDO0FBQzVDLDRDQUFpRDtBQUNqRCxxREFBc0Q7QUFFekMsUUFBQSxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQzdCLFFBQUEsZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQ2hDLFFBQUEsWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUNoQyxNQUFNLHVCQUF1QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDMUMsTUFBTSx1QkFBdUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUMvQywrSEFBK0g7QUFDL0gsTUFBTSw0QkFBNEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBQy9DLE1BQU0sYUFBYSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDaEMsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBRXhCLEtBQUssVUFBVSxpQkFBaUI7SUFDNUIsSUFBSSxDQUFDLElBQUEsYUFBTSxHQUFFO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDNUIsSUFBSSxDQUFDO1FBQ0QsTUFBTSxJQUFBLHFCQUFTLEVBQUMsaUNBQWlDLENBQUMsQ0FBQztRQUNuRCxNQUFNLElBQUEscUJBQVMsRUFBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFBQyxXQUFNLENBQUM7UUFDTCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0FBQ0wsQ0FBQztBQUVELHNqQkFBc2pCO0FBQ3RqQixNQUFhLGFBQWE7SUFTdEIsWUFDVyxNQUFvQjtJQUMzQixvRkFB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QU0sSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDckMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNQLE1BQU0sSUFBSSxLQUFLLENBQUMseURBQXlELElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNoRyxDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDO1FBQ3pELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxPQUFPO1FBQ1YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDakIsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxDQUFDO0lBQ0wsQ0FBQztDQUNKO0FBL1FELHNDQStRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTm9kZSwgc29ydCB9IGZyb20gXCJzb2NrZXQtZnVuY3Rpb24vc3JjL21pc2NcIjtcbmltcG9ydCB7IGZvcm1hdERhdGVUaW1lRGV0YWlsZWQgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9mb3JtYXR0aW5nL2Zvcm1hdFwiO1xuaW1wb3J0IHsgZGVsYXkgfSBmcm9tIFwic29ja2V0LWZ1bmN0aW9uL3NyYy9iYXRjaGluZ1wiO1xuaW1wb3J0IHsgZ2V0U2VjcmV0IH0gZnJvbSBcIi4uLy4uL21pc2MvZ2V0U2VjcmV0XCI7XG5pbXBvcnQgeyBJQXJjaGl2ZXMsIFNvdXJjZUNvbmZpZywgUmVtb3RlQ29uZmlnIH0gZnJvbSBcIi4uL0lBcmNoaXZlc1wiO1xuaW1wb3J0IHsgUk9VVElOR19GSUxFLCBnZXRCdWNrZXRCYXNlVXJsLCBwYXJzZUhvc3RlZFVybCwgcGFyc2VCYWNrYmxhemVVcmwsIHBhcnNlUm91dGluZ0RhdGEgfSBmcm9tIFwiLi9yZW1vdGVDb25maWdcIjtcbmltcG9ydCB7IEFyY2hpdmVzUmVtb3RlIH0gZnJvbSBcIi4vQXJjaGl2ZXNSZW1vdGVcIjtcbmltcG9ydCB7IEFyY2hpdmVzVXJsIH0gZnJvbSBcIi4vQXJjaGl2ZXNVcmxcIjtcbmltcG9ydCB7IEFyY2hpdmVzQmFja2JsYXplIH0gZnJvbSBcIi4uL2JhY2tibGF6ZVwiO1xuaW1wb3J0IHsgc2hvd0NlcnRUcnVzdE1vZGFsIH0gZnJvbSBcIi4vY2VydFRydXN0TW9kYWxcIjtcblxuZXhwb3J0IGNvbnN0IFJFVFJZX1NUQVJUX0RFTEFZID0gMiAqIDEwMDA7XG5leHBvcnQgY29uc3QgUkVUUllfTUFYX0RFTEFZID0gNSAqIDYwICogMTAwMDtcbmV4cG9ydCBjb25zdCBSRVRSWV9HUk9XVEggPSAxLjU7XG5jb25zdCBBQ0NFU1NfUkVDSEVDS19JTlRFUlZBTCA9IDYwICogMTAwMDtcbmNvbnN0IFNPVVJDRV9GQUlMVVJFX0NPT0xET1dOID0gMzAgKiA2MCAqIDEwMDA7XG4vLyBBZGRlZCB0byBhIGRpc2Nvbm5lY3RlZCBzb3VyY2UncyBsYXRlbmN5OiBpdCBzdGlsbCBzb3J0cyBhbmQgY2FuIHN0aWxsIGJlIHBpY2tlZCwgaXQganVzdCBsYW5kcyBhZnRlciBldmVyeSBjb25uZWN0ZWQgc291cmNlXG5jb25zdCBESVNDT05ORUNURURfTEFURU5DWV9QRU5BTFRZID0gMTAgKiAxMDAwO1xuY29uc3QgUElOR19JTlRFUlZBTCA9IDYwICogMTAwMDtcbmNvbnN0IFBJTkdfSElTVE9SWSA9IDEwO1xuXG5hc3luYyBmdW5jdGlvbiBoYXNCYWNrYmxhemVDcmVkcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIWlzTm9kZSgpKSByZXR1cm4gZmFsc2U7XG4gICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZ2V0U2VjcmV0KFwiYmFja2JsYXplLmpzb24uYXBwbGljYXRpb25LZXlJZFwiKTtcbiAgICAgICAgYXdhaXQgZ2V0U2VjcmV0KFwiYmFja2JsYXplLmpzb24uYXBwbGljYXRpb25LZXlcIik7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxufVxuXG4vLyBPbmUgc291cmNlIG9mIGEgUmVtb3RlQ29uZmlnLCBhcyBhIHVzYWJsZSBJQXJjaGl2ZXMuIFJlYWRzIGZhbGwgYmFjayB0byB0aGUgcHVibGljLVVSTCBmb3JtIHdoZW4gd2UgZG9uJ3QgaGF2ZSBBUEkgYWNjZXNzOyB3cml0ZXMgYWx3YXlzIGF0dGVtcHQgdGhlIEFQSSAoc28gYWNjZXNzIGdyYW50ZWQgbGF0ZXIgaXMgcGlja2VkIHVwIG9uIHRoZSBuZXh0IHdyaXRlKS4gV2hlbiBhIGNhbGwgZmFpbHMgd2hpbGUgdGhlIFdlYlNvY2tldCBpcyBkb3duLCBub3RlRmFpbHVyZSBzdGFydHMgYSBiYWNrZ3JvdW5kIHJlY29ubmVjdCBsb29wIHdpdGggYSByYW1waW5nIGRlbGF5IC0gaXQgbmV2ZXIgYmxvY2tzIGNhbGxlcnMsIGl0IGp1c3Qga2VlcHMgdHJ5aW5nIHNvIHRoZSBjb25uZWN0aW9uIGV2ZW50dWFsbHkgY29tZXMgYmFjay4gU291cmNlcyB3aXRob3V0IGEgV2ViU29ja2V0IChiYWNrYmxhemUsIFVSTC1mb3JtLCBvdXIgb3duIGxvY2FsIHNlcnZlcikgcmVwb3J0IGFsd2F5cy1jb25uZWN0ZWQ6IHRoZXkncmUgbGFzdC1yZXNvcnQgc291cmNlcyB3aGVyZSB0aHJvd2luZyBpcyBmaW5lLlxuZXhwb3J0IGNsYXNzIFNvdXJjZVdyYXBwZXIge1xuICAgIHB1YmxpYyBhcGk/OiBJQXJjaGl2ZXM7XG4gICAgcHVibGljIHVybD86IEFyY2hpdmVzVXJsO1xuICAgIHB1YmxpYyB3cml0ZUJsb2NrZWQ/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSByZW1vdGU/OiBBcmNoaXZlc1JlbW90ZTtcbiAgICBwcml2YXRlIGRpc3Bvc2VkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSByZWNvbm5lY3RSdW5uaW5nID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBhY2Nlc3NDYWNoZT86IHsgaGFzQWNjZXNzOiBib29sZWFuOyB0aW1lOiBudW1iZXIgfTtcblxuICAgIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyBjb25maWc6IFNvdXJjZUNvbmZpZyxcbiAgICAgICAgLy8gZmFsc2UgZm9yIHNob3J0LWxpdmVkIHByb2JlIGluc3RhbmNlcywgd2hpY2ggbXVzdCBuZXZlciBsZWF2ZSBhIHJldHJ5IGxvb3AgYmVoaW5kXG4gICAgICAgIHByaXZhdGUgYmFja2dyb3VuZDogYm9vbGVhbixcbiAgICApIHsgfVxuXG4gICAgLyoqIENvbmZpZyB1cGRhdGVzIHJvdXRpbmVseSBqdXN0IG1vdmUgYSBzb3VyY2UncyB2YWxpZCB3aW5kb3cgKHRoZSBsYXN0IHdpbmRvdyBleHRlbmRzIGZvcmV2ZXIsIHRoZW4gZ2V0cyByZWR1Y2VkIHdoZW4gYSBuZXcgZW50cnkgaXMgYXBwZW5kZWQpLiBUaGUgd3JhcHBlciBzdXJ2aXZlcyB0aGF0OiBvbmx5IHRoZSB3aW5kb3cgY2hhbmdlcywga2VlcGluZyB0aGUgY29ubmVjdGlvbiwgcGluZ3MsIGFuZCBsYXRlbmN5IGhpc3RvcnkuICovXG4gICAgcHVibGljIHVwZGF0ZVZhbGlkV2luZG93KHZhbGlkV2luZG93OiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XG4gICAgICAgIGxldCBvbGQgPSB0aGlzLmNvbmZpZy52YWxpZFdpbmRvdztcbiAgICAgICAgaWYgKG9sZFswXSA9PT0gdmFsaWRXaW5kb3dbMF0gJiYgb2xkWzFdID09PSB2YWxpZFdpbmRvd1sxXSkgcmV0dXJuO1xuICAgICAgICBjb25zb2xlLmxvZyhgVmFsaWQgd2luZG93IGNoYW5nZWQgZm9yICR7dGhpcy5nZXREZWJ1Z05hbWUoKX06IFske29sZC5qb2luKFwiLCBcIil9XSAtPiBbJHt2YWxpZFdpbmRvdy5qb2luKFwiLCBcIil9XWApO1xuICAgICAgICB0aGlzLmNvbmZpZy52YWxpZFdpbmRvdyA9IHZhbGlkV2luZG93O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgYXN5bmMgY3JlYXRlKGNvbmZpZzogU291cmNlQ29uZmlnLCBvcHRpb25zPzogeyBiYWNrZ3JvdW5kPzogYm9vbGVhbjsgcmVhZE9ubHk/OiBib29sZWFuIH0pOiBQcm9taXNlPFNvdXJjZVdyYXBwZXI+IHtcbiAgICAgICAgbGV0IHdyYXBwZXIgPSBuZXcgU291cmNlV3JhcHBlcihjb25maWcsIG9wdGlvbnM/LmJhY2tncm91bmQgIT09IGZhbHNlKTtcbiAgICAgICAgLy8gQSBwdWJsaWMgYnVja2V0IHNlcnZlcyBldmVyeXRoaW5nIHdlIGNhbiByZWFkIG92ZXIgcGxhaW4gSFRUUFMgR0VUcywgc28gdGhlcmUgaXMgbm8gcmVhc29uIHRvIG9wZW4gYW4gQVBJIGNvbm5lY3Rpb24gKHdoaWNoIGNvc3RzIGEgV2ViU29ja2V0LCBhbmQgYW4gYWNjZXNzIGdyYW50IHdlIGxpa2VseSBkb24ndCBoYXZlKSBqdXN0IHRvIHJlYWQgaXRcbiAgICAgICAgaWYgKG9wdGlvbnM/LnJlYWRPbmx5ICYmIGNvbmZpZy5wdWJsaWMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICB3cmFwcGVyLnVybCA9IG5ldyBBcmNoaXZlc1VybChnZXRCdWNrZXRCYXNlVXJsKGNvbmZpZy51cmwpKTtcbiAgICAgICAgICAgIHdyYXBwZXIud3JpdGVCbG9ja2VkID0gYCR7Y29uZmlnLnVybH0gaXMgYmVpbmcgcmVhZCBpbiByZWFkLW9ubHkgbW9kZSAocHVibGljIGJ1Y2tldCwgYW5kIHdlIGFyZSBub3QgaW4gbm9kZSksIHNvIGl0IGlzIGRvd25sb2FkZWQgb3ZlciBwbGFpbiBVUkxzIGFuZCBjYW5ub3QgYmUgd3JpdHRlbi4gUGFzcyBkaXJlY3RDb25uZWN0IHRvIGNyZWF0ZUFyY2hpdmVzIHRvIHVzZSB0aGUgQVBJIGluc3RlYWQuYDtcbiAgICAgICAgICAgIHJldHVybiB3cmFwcGVyO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcudHlwZSA9PT0gXCJiYWNrYmxhemVcIikge1xuICAgICAgICAgICAgaWYgKGF3YWl0IGhhc0JhY2tibGF6ZUNyZWRzKCkpIHtcbiAgICAgICAgICAgICAgICB3cmFwcGVyLmFwaSA9IG5ldyBBcmNoaXZlc0JhY2tibGF6ZSh7IGJ1Y2tldE5hbWU6IHBhcnNlQmFja2JsYXplVXJsKGNvbmZpZy51cmwpLmJ1Y2tldE5hbWUsIHB1YmxpYzogY29uZmlnLnB1YmxpYywgaW1tdXRhYmxlOiBjb25maWcuaW1tdXRhYmxlLCBhbGxvd2VkT3JpZ2luczogY29uZmlnLmFsbG93ZWRPcmlnaW5zIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc05vZGUoKSkge1xuICAgICAgICAgICAgICAgIHdyYXBwZXIud3JpdGVCbG9ja2VkID0gYE5vIGJhY2tibGF6ZSBjcmVkZW50aWFscyBmb3IgJHtjb25maWcudXJsfS4gUHJvdmlkZSBiYWNrYmxhemUuanNvbi5hcHBsaWNhdGlvbktleUlkIGFuZCBiYWNrYmxhemUuanNvbi5hcHBsaWNhdGlvbktleSB2aWEgZ2V0U2VjcmV0IHRvIGVuYWJsZSBBUEkgYWNjZXNzLmA7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHdyYXBwZXIud3JpdGVCbG9ja2VkID0gYEJyb3dzZXJzIGNhbm5vdCB3cml0ZSB0byBiYWNrYmxhemUgKGJ1Y2tldCAke2NvbmZpZy51cmx9KWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXdyYXBwZXIuYXBpICYmIGNvbmZpZy5wdWJsaWMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgd3JhcHBlci51cmwgPSBuZXcgQXJjaGl2ZXNVcmwoZ2V0QnVja2V0QmFzZVVybChjb25maWcudXJsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICAgICAgfVxuICAgICAgICAvLyBBIGJ1Y2tldCBob3N0ZWQgYnkgb3VyIG93biBwcm9jZXNzIGlzIHJlYWNoZWQgdGhlIHNhbWUgd2F5IGFzIGFueSBvdGhlcjogb3ZlciB0aGUgQVBJLCB0byBvdXIgb3duIHBvcnRcbiAgICAgICAgd3JhcHBlci5yZW1vdGUgPSBuZXcgQXJjaGl2ZXNSZW1vdGUoeyB1cmw6IGNvbmZpZy51cmwsIHdhaXRGb3JBY2Nlc3M6IGZhbHNlLCBzb3VyY2VDb25maWc6IGNvbmZpZyB9KTtcbiAgICAgICAgd3JhcHBlci5hcGkgPSB3cmFwcGVyLnJlbW90ZTtcbiAgICAgICAgaWYgKGNvbmZpZy5wdWJsaWMgIT09IGZhbHNlKSB7XG4gICAgICAgICAgICB3cmFwcGVyLnVybCA9IG5ldyBBcmNoaXZlc1VybChnZXRCdWNrZXRCYXNlVXJsKGNvbmZpZy51cmwpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gd3JhcHBlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RGVidWdOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIC8vIFRoZSBzYW1lIFVSTCBjYW4gYXBwZWFyIGFzIG11bHRpcGxlIHNvdXJjZXMgKGRpZmZlcmVudCByb3V0ZXMgLyB2YWxpZCB3aW5kb3dzKSwgc28gdGhlIGRpc3Rpbmd1aXNoaW5nIHNsaWNlIGlzIHBhcnQgb2YgdGhlIG5hbWVcbiAgICAgICAgbGV0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBsZXQgcm91dGUgPSB0aGlzLmNvbmZpZy5yb3V0ZTtcbiAgICAgICAgaWYgKHJvdXRlKSB7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKGByb3V0ZSBbJHtyb3V0ZVswXX0sICR7cm91dGVbMV19KWApO1xuICAgICAgICB9XG4gICAgICAgIGxldCBbc3RhcnQsIGVuZF0gPSB0aGlzLmNvbmZpZy52YWxpZFdpbmRvdztcbiAgICAgICAgaWYgKHN0YXJ0ICE9PSAwIHx8IGVuZCAhPT0gTnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpIHtcbiAgICAgICAgICAgIGxldCBzdGFydFRleHQgPSBzdGFydCA9PT0gMCAmJiBcIjBcIiB8fCBmb3JtYXREYXRlVGltZURldGFpbGVkKHN0YXJ0KTtcbiAgICAgICAgICAgIGxldCBlbmRUZXh0ID0gZW5kID09PSBOdW1iZXIuTUFYX1NBRkVfSU5URUdFUiAmJiBcImZvcmV2ZXJcIiB8fCBmb3JtYXREYXRlVGltZURldGFpbGVkKGVuZCk7XG4gICAgICAgICAgICBwYXJ0cy5wdXNoKGB2YWxpZFdpbmRvdyBbJHtzdGFydFRleHR9LCAke2VuZFRleHR9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgc291cmNlICR7dGhpcy5jb25maWcudXJsfSR7cGFydHMubGVuZ3RoICYmIGAgKCR7cGFydHMuam9pbihcIiwgXCIpfSlgIHx8IFwiXCJ9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNDb25uZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICghdGhpcy5yZW1vdGUpIHJldHVybiB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5yZW1vdGUuaXNDb25uZWN0ZWQoKTtcbiAgICB9XG5cbiAgICAvKiogQSBzb3VyY2Ugd2hvc2Ugd2luZG93IGhhcyBwYXNzZWQgaXMgbmV2ZXIgcmVhZCBmcm9tIG9yIHdyaXR0ZW4gdG8gKHNlZSB0aGUgd2luZG93IGNoZWNrcyBpbiBBcmNoaXZlc0NoYWluKSwgYW5kIGFuIGludGVybWVkaWF0ZSBvbmx5IGV4aXN0cyBmb3IgdGhlIG1pbnV0ZXMgb2YgYSBkZXBsb3kgc3dpdGNob3ZlciAtIG9uIGVpdGhlciwgYmVpbmcgdW5yZWFjaGFibGUgaXMgZXhwZWN0ZWQsIG5vdCBhIHByb2JsZW0gdG8gcmVwb3J0LiAqL1xuICAgIHByaXZhdGUgaXNDb25uZWN0aW9uUHJvYmxlbVdvcnRoUmVwb3J0aW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5jb25maWcuaW50ZXJtZWRpYXRlKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy52YWxpZFdpbmRvd1sxXSA+IERhdGUubm93KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb29sZG93blVudGlsID0gMDtcbiAgICAvKiogQSBzb3VyY2UgdGhhdCBmYWlsZWQgd2hpbGUgZGlzY29ubmVjdGVkIGlzIHNraXBwZWQgYnkgY2FsbGVycyBmb3IgU09VUkNFX0ZBSUxVUkVfQ09PTERPV04gLSBidXQgb25seSB3aGlsZSBzb21lIG90aGVyIHNvdXJjZSBjYW4gc2VydmUgdGhlIHJlcXVlc3QuIFdoZW4gbm90aGluZyBlbHNlIGlzIHVzYWJsZSwgY2FsbGVycyBpZ25vcmUgdGhpcyBhbmQgdHJ5IGl0IGFueXdheSwgc28gYSB0b3RhbCBvdXRhZ2Ugc3RpbGwgcmV0cmllcyBldmVyeSB0aW1lLiAqL1xuICAgIHB1YmxpYyBpc09uQ29vbGRvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBEYXRlLm5vdygpIDwgdGhpcy5jb29sZG93blVudGlsO1xuICAgIH1cblxuICAgIC8qKiBDYWxsIGFmdGVyIGEgcmVxdWVzdCBmYWlsZWQgd2hpbGUgaXNDb25uZWN0ZWQoKSB3YXMgZmFsc2U6IHB1dHMgdGhlIHNvdXJjZSBvbiBjb29sZG93biBhbmQgc3RhcnRzIChpZiBub3QgYWxyZWFkeSBydW5uaW5nKSB0aGUgYmFja2dyb3VuZCByZWNvbm5lY3QgbG9vcC4gTmV2ZXIgYmxvY2tzIC0gdGhlIGZhaWxlZCByZXF1ZXN0IHN0aWxsIHRocm93cy4gKi9cbiAgICBwdWJsaWMgbm90ZUZhaWx1cmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc3Bvc2VkIHx8IHRoaXMuaXNDb25uZWN0ZWQoKSkgcmV0dXJuO1xuICAgICAgICBsZXQgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKG5vdyA+PSB0aGlzLmNvb2xkb3duVW50aWwgJiYgdGhpcy5pc0Nvbm5lY3Rpb25Qcm9ibGVtV29ydGhSZXBvcnRpbmcoKSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNvbm5lY3QgdG8gc3RvcmFnZSAke3RoaXMuZ2V0RGVidWdOYW1lKCl9OyBza2lwcGluZyBpdCB1bnRpbCAke2Zvcm1hdERhdGVUaW1lRGV0YWlsZWQobm93ICsgU09VUkNFX0ZBSUxVUkVfQ09PTERPV04pfSAobm93ICR7Zm9ybWF0RGF0ZVRpbWVEZXRhaWxlZChub3cpfSkgdW5sZXNzIG5vIG90aGVyIHNvdXJjZSBjYW4gc2VydmUgdGhlIHJlcXVlc3RgKTtcbiAgICAgICAgICAgIC8vIEluIGEgYnJvd3NlciB0aGlzIGlzIG9mdGVuIGFuIHVudHJ1c3RlZCAoc2VsZi1zaWduZWQpIGNlcnRpZmljYXRlIHRoZSB1c2VyIGhhc24ndCBhY2NlcHRlZCB5ZXQgLSBvZmZlciB0aGVtIHRoZSB0cnVzdCBmbG93IChhIG5vLW9wIGluIE5vZGUsIGFuZCBzaG93biBhdCBtb3N0IG9uY2UgcGVyIHNlcnZlcilcbiAgICAgICAgICAgIHNob3dDZXJ0VHJ1c3RNb2RhbCh0aGlzLmNvbmZpZy51cmwpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29vbGRvd25VbnRpbCA9IG5vdyArIFNPVVJDRV9GQUlMVVJFX0NPT0xET1dOO1xuICAgICAgICBpZiAoIXRoaXMuYmFja2dyb3VuZCB8fCB0aGlzLnJlY29ubmVjdFJ1bm5pbmcpIHJldHVybjtcbiAgICAgICAgdGhpcy5yZWNvbm5lY3RSdW5uaW5nID0gdHJ1ZTtcbiAgICAgICAgdm9pZCB0aGlzLnJlY29ubmVjdExvb3AoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHJlY29ubmVjdExvb3AoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGxldCByZXRyeURlbGF5ID0gUkVUUllfU1RBUlRfREVMQVk7XG4gICAgICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICAgICAgICBhd2FpdCBkZWxheShyZXRyeURlbGF5KTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpc3Bvc2VkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWNvbm5lY3RSdW5uaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQoKSkgYnJlYWs7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIC8vIEFueSBjYWxsIHJlLWVzdGFibGlzaGVzIHRoZSBXZWJTb2NrZXQ7IHRoZSByZXN1bHQgZG9lc24ndCBtYXR0ZXJcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLnJlbW90ZT8uZ2V0SW5mbyhST1VUSU5HX0ZJTEUpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIC8vIEV2ZW4gYSBmYWlsaW5nIGNhbGwgKGUuZy4gYWNjZXNzIGRlbmllZCkgcHJvdmVzIHRoZSBjb25uZWN0aW9uIGlzIGJhY2tcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZCgpKSBicmVhaztcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc0Nvbm5lY3Rpb25Qcm9ibGVtV29ydGhSZXBvcnRpbmcoKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBOT1RFOiBJbiB0aGlzIGNhc2UsIEknbSBqdXN0IHNob3dpbmcgdGhlIG1lc3NhZ2UgYmVjYXVzZSB0aGUgY2FsbCBzdGFjayBpcyBhbG1vc3QgYWx3YXlzIGNvbXBsZXRlbHkgdW5pbnRlcmVzdGluZy5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgQ2Fubm90IGNvbm5lY3QgdG8gc3RvcmFnZSAke3RoaXMuZ2V0RGVidWdOYW1lKCl9LCByZXRyeWluZyBpbiAke01hdGgucm91bmQocmV0cnlEZWxheSAvIDEwMDApfXMuICR7KGUgYXMgRXJyb3IpLm1lc3NhZ2UgPz8gZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXRyeURlbGF5ID0gTWF0aC5taW4oUkVUUllfTUFYX0RFTEFZLCByZXRyeURlbGF5ICogUkVUUllfR1JPV1RIKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJlY29ubmVjdFJ1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb29sZG93blVudGlsID0gMDtcbiAgICAgICAgY29uc29sZS5sb2coYFJlY29ubmVjdGVkIHRvIHN0b3JhZ2UgJHt0aGlzLmdldERlYnVnTmFtZSgpfSwgY2xlYXJpbmcgaXRzIGNvb2xkb3duYCk7XG4gICAgfVxuXG4gICAgLy8gRm9yIGhvc3RlZCBzb3VyY2VzOiBjYWNoZWQgYWNjZXNzIGNoZWNrLCBzbyByZWFkcyBrbm93IHdoZXRoZXIgdG8gdXNlIHRoZSBBUEkgb3IgdGhlIHB1YmxpYyBVUkwgZm9ybS4gQWNjZXNzLCBvbmNlIHNlZW4sIGlzIGFzc3VtZWQgdG8gc3RpY2s7IG5vLWFjY2VzcyBpcyByZS1jaGVja2VkIHBlcmlvZGljYWxseSAodGhlIGNoZWNrIGFsc28gcmVnaXN0ZXJzIG91ciBhY2Nlc3MgcmVxdWVzdCBzZXJ2ZXItc2lkZSwgd2hpY2ggbG9ncyB0aGUgZ3JhbnQgbGluaykuXG4gICAgcHJpdmF0ZSBhc3luYyBjaGVja0FjY2VzcygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgbGV0IHJlbW90ZSA9IHRoaXMucmVtb3RlO1xuICAgICAgICBpZiAoIXJlbW90ZSkgcmV0dXJuICEhdGhpcy5hcGk7XG4gICAgICAgIGxldCBjYWNoZWQgPSB0aGlzLmFjY2Vzc0NhY2hlO1xuICAgICAgICBpZiAoY2FjaGVkICYmIChjYWNoZWQuaGFzQWNjZXNzIHx8IERhdGUubm93KCkgLSBjYWNoZWQudGltZSA8IEFDQ0VTU19SRUNIRUNLX0lOVEVSVkFMKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNhY2hlZC5oYXNBY2Nlc3M7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHdhaXRpbmcgPSBhd2FpdCByZW1vdGUud2FpdGluZ0ZvckFjY2VzcygpO1xuICAgICAgICB0aGlzLmFjY2Vzc0NhY2hlID0geyBoYXNBY2Nlc3M6ICF3YWl0aW5nLCB0aW1lOiBEYXRlLm5vdygpIH07XG4gICAgICAgIGlmICh3YWl0aW5nKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oYE5vIGFjY2VzcyB0byBzdG9yYWdlIGFjY291bnQgZm9yICR7dGhpcy5jb25maWcudXJsfS4gJHt3YWl0aW5nLnJlYXNvbn0gUmVhZGluZyB2aWEgdGhlIHB1YmxpYyBVUkwgZm9ybSB3aGVyZSBwb3NzaWJsZS5gKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gIXdhaXRpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlYWQ8VD4ocnVuOiAoYXJjaGl2ZXM6IElBcmNoaXZlcykgPT4gUHJvbWlzZTxUPik6IFByb21pc2U8VD4ge1xuICAgICAgICBpZiAodGhpcy5hcGkgJiYgYXdhaXQgdGhpcy5jaGVja0FjY2VzcygpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgcnVuKHRoaXMuYXBpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy51cmwpIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBydW4odGhpcy51cmwpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFwaSkge1xuICAgICAgICAgICAgLy8gTm8gcHVibGljIFVSTCBmb3JtIC0gbGV0IHRoZSBBUEkgY2FsbCB0aHJvdyBpdHMgb3duIGVycm9yICh3aGljaCBpbmNsdWRlcyB0aGUgYWNjZXNzIGluc3RydWN0aW9ucyBmb3IgaG9zdGVkIHNvdXJjZXMpXG4gICAgICAgICAgICByZXR1cm4gYXdhaXQgcnVuKHRoaXMuYXBpKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNvdXJjZSBoYXMgbm8gQVBJIGFjY2VzcyBhbmQgbm8gcHVibGljIFVSTCBmb3JtIChwdWJsaWM6IGZhbHNlKTogJHt0aGlzLmNvbmZpZy51cmx9YCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIHJlYWRSb3V0aW5nQ29uZmlnKCk6IFByb21pc2U8UmVtb3RlQ29uZmlnIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGxldCBkYXRhID0gYXdhaXQgdGhpcy5yZWFkKGFyY2hpdmVzID0+IGFyY2hpdmVzLmdldChST1VUSU5HX0ZJTEUpKTtcbiAgICAgICAgcmV0dXJuIGRhdGEgJiYgcGFyc2VSb3V0aW5nRGF0YShkYXRhKSB8fCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGFzeW5jIGhhc1dyaXRlQWNjZXNzKCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBpZiAodGhpcy53cml0ZUJsb2NrZWQgfHwgIXRoaXMuYXBpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLmFwaS5oYXNXcml0ZUFjY2VzcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcGluZ3M6IG51bWJlcltdID0gW107XG4gICAgcHJpdmF0ZSBwaW5nVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldEludGVydmFsPiB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIGxvZ2dlZENvbm5lY3RlZCA9IGZhbHNlO1xuXG4gICAgLyoqIFN0YXJ0cyBtZWFzdXJpbmcgdGhpcyBzb3VyY2UncyBsYXRlbmN5LCB3aGljaCBkZWNpZGVzIHdoaWNoIGhvc3RzIHJlYWRzIGFuZCB2YXJpYWJsZS1zaGFyZCB3cml0ZXMgcHJlZmVyLiBIb3N0ZWQgcmVtb3RlcyBwaW5nIG92ZXIgdGhlaXIgQVBJIGNvbm5lY3Rpb247IFVSTC1vbmx5IHNvdXJjZXMgKHJlYWQtb25seSBtb2RlLCBiYWNrYmxhemUgd2l0aG91dCBjcmVkZW50aWFscykgcHJvYmUgb3ZlciBwbGFpbiBIVFRQUyBpbnN0ZWFkIC0gdGhlIGNsaWVudCBORUVEUyB0aGVpciBsYXRlbmN5IHRvbywgb3IgaXQgY2Fubm90IHJhbmsgdGhlIGhvc3RzIGl0IHJlYWRzIGZyb20uIE91ciBvd24gbG9jYWwgc2VydmVyIGNvdW50cyBhcyAwOyBvbmx5IHNvdXJjZXMgd2l0aCBuZWl0aGVyIGZvcm0gc3RheSBJbmZpbml0eS4gKi9cbiAgICBwdWJsaWMgc3RhcnRQaW5naW5nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5waW5nVGltZXIgfHwgdGhpcy5kaXNwb3NlZCkgcmV0dXJuO1xuICAgICAgICAvLyBBIHNvdXJjZSB3aG9zZSB3aW5kb3cgaGFzIHBhc3NlZCBuZXZlciByZWNlaXZlcyByZWFkcyBvciB3cml0ZXMgLSBtZWFzdXJpbmcgaXQgaXMgcG9pbnRsZXNzIHRyYWZmaWNcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnZhbGlkV2luZG93WzFdIDw9IERhdGUubm93KCkpIHJldHVybjtcbiAgICAgICAgY29uc3QgcmVtb3RlID0gdGhpcy5yZW1vdGU7XG4gICAgICAgIGNvbnN0IHVybCA9IHRoaXMudXJsO1xuICAgICAgICBsZXQgcHJvYmU6ICgpID0+IFByb21pc2U8dm9pZD47XG4gICAgICAgIGlmIChyZW1vdGUpIHtcbiAgICAgICAgICAgIHByb2JlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IHJlbW90ZS5waW5nKCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHVybCkge1xuICAgICAgICAgICAgLy8gQSAxLWJ5dGUgcmFuZ2VkIHJlYWQgb2YgdGhlIHJvdXRpbmcgZmlsZSB0cmFuc2ZlcnMgZXNzZW50aWFsbHkgbm90aGluZywgYW5kIHVubGlrZSBhbiBleHBsaWNpdCBPUFRJT05TIHJlcXVlc3QgaXQgbmVlZHMgbm8gQ09SUyBwcmVmbGlnaHQgKGJhY2tibGF6ZSdzIENPUlMgcnVsZXMgb25seSBhbGxvdyBkb3dubG9hZCBvcGVyYXRpb25zKSAtIHNvIGl0IHdvcmtzIGZyb20gdGhlIGJyb3dzZXIsIHdoaWNoIGlzIGV4YWN0bHkgd2hlcmUgVVJMLW9ubHkgbW9kZSBydW5zXG4gICAgICAgICAgICBwcm9iZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB1cmwuZ2V0SW5mbyhST1VUSU5HX0ZJTEUpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbWVhc3VyZSA9IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGxldCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGF3YWl0IHByb2JlKCk7XG4gICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAvLyBBIGZhaWxlZCBwaW5nIGlzIGFsc28gb3VyIGVhcmxpZXN0IGRvd24tZGV0ZWN0aW9uXG4gICAgICAgICAgICAgICAgdGhpcy5ub3RlRmFpbHVyZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5sb2dnZWRDb25uZWN0ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvZ2dlZENvbm5lY3RlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coYENvbm5lY3RlZCB0byBzdG9yYWdlICR7dGhpcy5nZXREZWJ1Z05hbWUoKX0gKCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zKWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5waW5ncy5wdXNoKERhdGUubm93KCkgLSBzdGFydCk7XG4gICAgICAgICAgICBpZiAodGhpcy5waW5ncy5sZW5ndGggPiBQSU5HX0hJU1RPUlkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBpbmdzLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHZvaWQgbWVhc3VyZSgpO1xuICAgICAgICB0aGlzLnBpbmdUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIHZvaWQgbWVhc3VyZSgpO1xuICAgICAgICB9LCBQSU5HX0lOVEVSVkFMKTtcbiAgICAgICAgKHRoaXMucGluZ1RpbWVyIGFzIHsgdW5yZWY/OiAoKSA9PiB2b2lkIH0pLnVucmVmPy4oKTtcbiAgICB9XG5cbiAgICAvKiogU2VlZHMgdGhlIGxhdGVuY3kgZXN0aW1hdGUgYmVmb3JlIHRoZSBmaXJzdCBwaW5nIGxhbmRzIChlLmcuIGZyb20gdGhlIGluaXRpYWwgcm91dGluZyBmZXRjaCksIHNvIHZhcmlhYmxlLXNoYXJkIHBpY2tpbmcgaGFzIHNvbWV0aGluZyBpbW1lZGlhdGVseS4gUmVhbCBwaW5ncyB0YWtlIG92ZXIgZnJvbSB0aGUgZmlyc3QgbWVhc3VyZW1lbnQgb24uICovXG4gICAgcHVibGljIHNlZWRMYXRlbmN5KG1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucGluZ3MubGVuZ3RoKSByZXR1cm47XG4gICAgICAgIHRoaXMucGluZ3MucHVzaChtcyk7XG4gICAgfVxuXG4gICAgLyoqIE1lZGlhbiBvZiB0aGUgcmVjZW50IHBpbmdzIChBUEkgb3IgVVJMLWZvcm0sIHdoaWNoZXZlciB0aGlzIHNvdXJjZSBtZWFzdXJlcyksIHBsdXMgRElTQ09OTkVDVEVEX0xBVEVOQ1lfUEVOQUxUWSB3aGlsZSB0aGUgc291cmNlIGlzIGRpc2Nvbm5lY3RlZCAtIHNvIGEgZG93biBzb3VyY2Ugc3RpbGwgc29ydHMgYW5kIGNhbiBzdGlsbCBiZSBwaWNrZWQsIGp1c3QgYWZ0ZXIgZXZlcnkgY29ubmVjdGVkIG9uZS4gU291cmNlcyB3aXRoIG5vIG1lYXN1cmVtZW50cyB5ZXQgc29ydCBsYXN0IChJbmZpbml0eSksIGV4Y2VwdCBvdXIgb3duIGluLXByb2Nlc3Mgc2VydmVyLCB3aGljaCBpcyB0aGUgYmVzdCBwb3NzaWJsZSB0YXJnZXQgKDApLiAqL1xuICAgIHB1YmxpYyBnZXRMYXRlbmN5KCk6IG51bWJlciB7XG4gICAgICAgIC8vIE91ciBvd24gaW4tcHJvY2VzcyBzZXJ2ZXI6IGhvc3RlZCAodHlwZSByZW1vdGUpLCBhcGkgcHJlc2VudCwgYnV0IG5vIHJlbW90ZSBjb25uZWN0aW9uIC0gaXQgSVMgdXNcbiAgICAgICAgaWYgKCF0aGlzLnJlbW90ZSAmJiB0aGlzLmNvbmZpZy50eXBlID09PSBcInJlbW90ZVwiICYmIHRoaXMuYXBpKSByZXR1cm4gMDtcbiAgICAgICAgaWYgKCF0aGlzLnBpbmdzLmxlbmd0aCkgcmV0dXJuIEluZmluaXR5O1xuICAgICAgICBsZXQgc29ydGVkID0gWy4uLnRoaXMucGluZ3NdO1xuICAgICAgICBzb3J0KHNvcnRlZCwgeCA9PiB4KTtcbiAgICAgICAgbGV0IG1lZGlhbiA9IHNvcnRlZFtNYXRoLmZsb29yKHNvcnRlZC5sZW5ndGggLyAyKV07XG4gICAgICAgIGlmICghdGhpcy5pc0Nvbm5lY3RlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVkaWFuICsgRElTQ09OTkVDVEVEX0xBVEVOQ1lfUEVOQUxUWTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbWVkaWFuO1xuICAgIH1cblxuICAgIC8qKiB3cml0ZUJsb2NrZWQgZnJvbSBtaXNzaW5nIGJhY2tibGF6ZSBjcmVkZW50aWFscyBpcyByZS1jaGVja2VkIG9uIGV2ZXJ5IHdyaXRlIGF0dGVtcHQ6IHRoZSBzZWNyZXQgbG9hZCBjYW4gZmFpbCBUUkFOU0lFTlRMWSAoZWFybHkgc3RhcnR1cCwgYSBmaWxlLXJlYWQgaGljY3VwKSwgYW5kIG9uZSBmYWlsZWQgbG9hZCBtdXN0IG5ldmVyIHBlcm1hbmVudGx5IHN0b3AgdGhpcyBwcm9jZXNzIGZyb20gd3JpdGluZyB0byB0aGUgYnVja2V0LiBUaGUgb3RoZXIgd3JpdGVCbG9ja2VkIHJlYXNvbnMgKHJlYWQtb25seSBtb2RlLCBicm93c2VycykgYXJlIHN0YXRpYyBwcm9wZXJ0aWVzIG9mIHRoZSBwcm9jZXNzLCBzbyB0aGVyZSBpcyBub3RoaW5nIHRvIHJlLWNoZWNrLiAqL1xuICAgIHB1YmxpYyBhc3luYyByZWNoZWNrV3JpdGVCbG9ja2VkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMud3JpdGVCbG9ja2VkIHx8IHRoaXMuYXBpIHx8IHRoaXMuZGlzcG9zZWQpIHJldHVybjtcbiAgICAgICAgaWYgKHRoaXMuY29uZmlnLnR5cGUgIT09IFwiYmFja2JsYXplXCIpIHJldHVybjtcbiAgICAgICAgaWYgKCFhd2FpdCBoYXNCYWNrYmxhemVDcmVkcygpKSByZXR1cm47XG4gICAgICAgIHRoaXMuYXBpID0gbmV3IEFyY2hpdmVzQmFja2JsYXplKHsgYnVja2V0TmFtZTogcGFyc2VCYWNrYmxhemVVcmwodGhpcy5jb25maWcudXJsKS5idWNrZXROYW1lLCBwdWJsaWM6IHRoaXMuY29uZmlnLnB1YmxpYywgaW1tdXRhYmxlOiB0aGlzLmNvbmZpZy5pbW11dGFibGUsIGFsbG93ZWRPcmlnaW5zOiB0aGlzLmNvbmZpZy5hbGxvd2VkT3JpZ2lucyB9KTtcbiAgICAgICAgY29uc29sZS5sb2coYEJhY2tibGF6ZSBjcmVkZW50aWFscyBhcmUgbm93IGF2YWlsYWJsZSBmb3IgJHt0aGlzLmdldERlYnVnTmFtZSgpfSwgdW5ibG9ja2luZyB3cml0ZXMgKHdhcyBibG9ja2VkOiAke3RoaXMud3JpdGVCbG9ja2VkfSlgKTtcbiAgICAgICAgdGhpcy53cml0ZUJsb2NrZWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIFdyaXRlcyBhbHdheXMgZ28gdGhyb3VnaCB0aGUgQVBJLCBzbyBhIHBlcm1pc3Npb24gZXJyb3IgdGhyb3dzIHRvIHRoZSBjYWxsZXIgb24gZXZlcnkgd3JpdGUgKGFuZCBhY2Nlc3MgZ3JhbnRlZCBpbiB0aGUgbWVhbnRpbWUgaXMgcGlja2VkIHVwIGF1dG9tYXRpY2FsbHkpLiAqL1xuICAgIHB1YmxpYyBhc3luYyB3cml0ZTxUPihydW46IChhcmNoaXZlczogSUFyY2hpdmVzKSA9PiBQcm9taXNlPFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgICAgIGlmICh0aGlzLndyaXRlQmxvY2tlZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5yZWNoZWNrV3JpdGVCbG9ja2VkKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMud3JpdGVCbG9ja2VkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFdyaXRlcyBhcmUgYmxvY2tlZCBvbiB0aGlzIHNvdXJjZTogJHt0aGlzLndyaXRlQmxvY2tlZH1gKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYXBpID0gdGhpcy5hcGk7XG4gICAgICAgIGlmICghYXBpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFNvdXJjZSBoYXMgbm8gQVBJIGFjY2Vzcywgc28gaXQgY2Fubm90IGFjY2VwdCB3cml0ZXM6ICR7dGhpcy5jb25maWcudXJsfWApO1xuICAgICAgICB9XG4gICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBydW4oYXBpKTtcbiAgICAgICAgdGhpcy5hY2Nlc3NDYWNoZSA9IHsgaGFzQWNjZXNzOiB0cnVlLCB0aW1lOiBEYXRlLm5vdygpIH07XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc3Bvc2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzcG9zZWQgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5waW5nVGltZXIpIHtcbiAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5waW5nVGltZXIpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
309
|
-
/* _JS_SOURCE_HASH = "
|
|
309
|
+
/* _JS_SOURCE_HASH = "bce5b4ca082259331dff33ab22468916b4bad9b88e39456a2e98e8e1fe83b4ca"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule && mod.default) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
@@ -76,4 +76,4 @@ class SourcesList {
|
|
|
76
76
|
}
|
|
77
77
|
exports.SourcesList = SourcesList;
|
|
78
78
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlc0xpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2VzTGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSw0Q0FBb0I7QUFDcEIsZ0RBQXdCO0FBRXhCLE1BQU0sZUFBZSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7QUFFakMsTUFBYSxXQUFXO0lBQ3BCLFlBQW9CLFFBQWdCO1FBQWhCLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDNUIsU0FBSSxHQUFhLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFDcEMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsZ0JBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFMQSxDQUFDO0lBT2pDLEtBQUssQ0FBQyxJQUFJO1FBQ2QsSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQztZQUNELE9BQU8sR0FBRyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDVCxJQUFLLENBQXVCLENBQUMsSUFBSSxLQUFLLFFBQVE7Z0JBQUUsTUFBTSxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3JCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQXdCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZSxDQUFDLGdCQUF3QjtRQUNqRCxJQUFJLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVFLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsZUFBZTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBVztRQUNyQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHVFQUF1RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsSCxDQUFDO1FBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDMUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsSUFBSSxRQUFRLEtBQUssU0FBUztnQkFBRSxPQUFPLFFBQVEsQ0FBQztZQUM1QyxpSUFBaUk7WUFDakksTUFBTSxZQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxjQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzFFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQztZQUMxQyxNQUFNLFlBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0IsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEtBQUssT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM3RyxPQUFPLEtBQUssQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDckQsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztDQUNKO0FBL0RELGtDQStEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tIFwiZnNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmNvbnN0IFJFTE9BRF9USFJPVFRMRSA9IDUgKiAxMDAwO1xuXG5leHBvcnQgY2xhc3MgU291cmNlc0xpc3Qge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsZVBhdGg6IHN0cmluZykgeyB9XG4gICAgcHJpdmF0ZSB1cmxzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgaW5kZXhlcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgcHJpdmF0ZSBlbmRzQ2xlYW4gPSB0cnVlO1xuICAgIHByaXZhdGUgbGFzdFJlbG9hZCA9IDA7XG4gICAgcHJpdmF0ZSBhcHBlbmRRdWV1ZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBsZXQgY29udGVudCA9IFwiXCI7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb250ZW50ID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUodGhpcy5maWxlUGF0aCwgXCJ1dGY4XCIpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoKGUgYXMgeyBjb2RlPzogc3RyaW5nIH0pLmNvZGUgIT09IFwiRU5PRU5UXCIpIHRocm93IGU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbmRzQ2xlYW4gPSAhY29udGVudCB8fCBjb250ZW50LmVuZHNXaXRoKFwiXFxuXCIpO1xuICAgICAgICBsZXQgbGluZXMgPSBjb250ZW50LnNwbGl0KFwiXFxuXCIpO1xuICAgICAgICBpZiAobGluZXNbbGluZXMubGVuZ3RoIC0gMV0gPT09IFwiXCIpIHtcbiAgICAgICAgICAgIGxpbmVzLnBvcCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudXJscyA9IGxpbmVzO1xuICAgICAgICB0aGlzLmluZGV4ZXMuY2xlYXIoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmluZGV4ZXMuaGFzKGxpbmVzW2ldKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZXhlcy5zZXQobGluZXNbaV0sIGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFVybChzb3VyY2VzTGlzdEluZGV4OiBudW1iZXIpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy51cmxzW3NvdXJjZXNMaXN0SW5kZXhdO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc3luYyBnZXRVcmxSZWxvYWRpbmcoc291cmNlc0xpc3RJbmRleDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgaWYgKHNvdXJjZXNMaXN0SW5kZXggPCB0aGlzLnVybHMubGVuZ3RoKSByZXR1cm4gdGhpcy51cmxzW3NvdXJjZXNMaXN0SW5kZXhdO1xuICAgICAgICBpZiAoRGF0ZS5ub3coKSAtIHRoaXMubGFzdFJlbG9hZCA8IFJFTE9BRF9USFJPVFRMRSkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5sYXN0UmVsb2FkID0gRGF0ZS5ub3coKTtcbiAgICAgICAgYXdhaXQgdGhpcy5sb2FkKCk7XG4gICAgICAgIHJldHVybiB0aGlzLnVybHNbc291cmNlc0xpc3RJbmRleF07XG4gICAgfVxuXG4gICAgcHVibGljIGVuc3VyZSh1cmw6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgICAgIGlmICh1cmwuaW5jbHVkZXMoXCJcXG5cIikpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgU291cmNlIFVSTHMgY2Fubm90IGNvbnRhaW4gbmV3bGluZXMgKHRoZXkgYXJlIHN0b3JlZCBvbmUgcGVyIGxpbmUpOiAke0pTT04uc3RyaW5naWZ5KHVybCl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMuYXBwZW5kUXVldWUudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgIGxldCBleGlzdGluZyA9IHRoaXMuaW5kZXhlcy5nZXQodXJsKTtcbiAgICAgICAgICAgIGlmIChleGlzdGluZyAhPT0gdW5kZWZpbmVkKSByZXR1cm4gZXhpc3Rpbmc7XG4gICAgICAgICAgICAvLyBhcHBlbmRGaWxlIGNyZWF0ZXMgdGhlIGZpbGUgYnV0IG5vdCBpdHMgcGFyZW50IGRpcmVjdG9yaWVzLCBhbmQgb24gYSBmcmVzaCBidWNrZXQgd2UgcnVuIGJlZm9yZSBhbnl0aGluZyBlbHNlIGhhcyBjcmVhdGVkIHRoZW1cbiAgICAgICAgICAgIGF3YWl0IGZzLnByb21pc2VzLm1rZGlyKHBhdGguZGlybmFtZSh0aGlzLmZpbGVQYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgICAgICBsZXQgcHJlZml4ID0gdGhpcy5lbmRzQ2xlYW4gJiYgXCJcIiB8fCBcIlxcblwiO1xuICAgICAgICAgICAgYXdhaXQgZnMucHJvbWlzZXMuYXBwZW5kRmlsZSh0aGlzLmZpbGVQYXRoLCBwcmVmaXggKyB1cmwgKyBcIlxcblwiKTtcbiAgICAgICAgICAgIHRoaXMuZW5kc0NsZWFuID0gdHJ1ZTtcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMudXJscy5sZW5ndGg7XG4gICAgICAgICAgICB0aGlzLnVybHMucHVzaCh1cmwpO1xuICAgICAgICAgICAgdGhpcy5pbmRleGVzLnNldCh1cmwsIGluZGV4KTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBSZWdpc3RlcmVkIG5ldyBzb3VyY2UgJHtKU09OLnN0cmluZ2lmeSh1cmwpfSBhcyBzb3VyY2VzTGlzdEluZGV4ICR7aW5kZXh9IGluICR7dGhpcy5maWxlUGF0aH1gKTtcbiAgICAgICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuYXBwZW5kUXVldWUgPSByZXN1bHQudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIl19
|
|
79
|
-
/* _JS_SOURCE_HASH = "
|
|
79
|
+
/* _JS_SOURCE_HASH = "d20f5cb65a825e05fa883215ea981f5121ba478e3aff34775cb7b3f16e1f488b"; */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
|
|
3
3
|
//exports.StorageClientController = exports.trackChainConfig = exports.onServerRoutingChanged = void 0;
|
|
4
4
|
const SocketFunction_1 = require("socket-function/SocketFunction");
|
|
@@ -70,4 +70,4 @@ exports.StorageClientController = SocketFunction_1.SocketFunction.register("Stor
|
|
|
70
70
|
getRoutingConfigForName: {},
|
|
71
71
|
}));
|
|
72
72
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZUNsaWVudENvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdG9yYWdlQ2xpZW50Q29udHJvbGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBZ0U7QUFFaEUsaURBQWdEO0FBRWhELDJYQUEyWDtBQUUzWCxNQUFNLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBYyxDQUFDO0FBRXhDLGlHQUFpRztBQUNqRyxTQUFnQixzQkFBc0IsQ0FBQyxRQUFvQjtJQUN2RCxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hCLE9BQU8sR0FBRyxFQUFFO1FBQ1IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQixDQUFDLENBQUM7QUFDTixDQUFDO0FBTEQsd0RBS0M7QUFJRCxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBc0IsQ0FBQztBQUVuRCxnS0FBZ0s7QUFDaEssU0FBZ0IsZ0JBQWdCLENBQUMsS0FBeUI7SUFDdEQsWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixPQUFPLEdBQUcsRUFBRTtRQUNSLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUxELDRDQUtDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFvQixFQUFFLE9BQWUsRUFBRSxVQUFrQixFQUFFLElBQVk7SUFDN0YsS0FBSyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxRQUFRO1lBQUUsU0FBUztRQUNyRSxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSTtZQUFFLFNBQVM7UUFDbkMsSUFBSSxDQUFDO1lBQ0QsSUFBSSxNQUFNLEdBQUcsSUFBQSw2QkFBYyxFQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN4QyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEtBQUssT0FBTyxJQUFJLE1BQU0sQ0FBQyxVQUFVLEtBQUssVUFBVTtnQkFBRSxPQUFPLElBQUksQ0FBQztRQUNwRixDQUFDO1FBQUMsV0FBTSxDQUFDO1lBQ0wsU0FBUztRQUNiLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUVELE1BQU0sMkJBQTJCO0lBQzdCLEtBQUssQ0FBQyxvQkFBb0I7O1FBQ3RCLEtBQUssSUFBSSxRQUFRLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDO2dCQUNELFFBQVEsRUFBRSxDQUFDO1lBQ2YsQ0FBQztZQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsTUFBQyxDQUFXLENBQUMsS0FBSyxtQ0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELCtoQkFBK2hCO0lBQy9oQixLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBNkQ7UUFDdkYsS0FBSyxJQUFJLEtBQUssSUFBSSxDQUFDLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUNsQyxJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDNUIsSUFBSSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQUUsT0FBTyxNQUFNLENBQUM7UUFDaEcsQ0FBQztRQUNELEtBQUssSUFBSSxLQUFLLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDbEMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUNwSCxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztDQUNKO0FBRVksUUFBQSx1QkFBdUIsR0FBRywrQkFBYyxDQUFDLFFBQVEsQ0FDMUQsZ0RBQWdELEVBQ2hELElBQUksMkJBQTJCLEVBQUUsRUFDakMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNILG9CQUFvQixFQUFFLEVBQUU7SUFDeEIsdUJBQXVCLEVBQUUsRUFBRTtDQUM5QixDQUFDLENBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNvY2tldEZ1bmN0aW9uIH0gZnJvbSBcInNvY2tldC1mdW5jdGlvbi9Tb2NrZXRGdW5jdGlvblwiO1xuaW1wb3J0IHsgUmVtb3RlQ29uZmlnIH0gZnJvbSBcIi4uL0lBcmNoaXZlc1wiO1xuaW1wb3J0IHsgcGFyc2VIb3N0ZWRVcmwgfSBmcm9tIFwiLi9yZW1vdGVDb25maWdcIjtcblxuLy8gVGhlIGNsaWVudCBoYWxmIG9mIHRoZSBzdG9yYWdlIHByb3RvY29sOiB0aGUgc3RvcmFnZSBzZXJ2ZXIgdHJhY2tzIGl0cyBjb25uZWN0ZWQgY2xpZW50cyAoc2VlIHRyYWNrQ2FsbGVyIGluIHN0b3JhZ2VDb250cm9sbGVyKSBhbmQgY2FsbHMgYmFjayBpbnRvIHRoZW0gLSByb3V0aW5nQ29uZmlnQ2hhbmdlZCB0aGUgbW9tZW50IGEgcm91dGluZyBjb25maWcgY2hhbmdlcyAoY2xpZW50cyByZWFjdCBpbW1lZGlhdGVseSBpbnN0ZWFkIG9mIHdhaXRpbmcgZm9yIGEgcG9sbCksIGFuZCBnZXRSb3V0aW5nQ29uZmlnRm9yTmFtZSB3aGVuIGEgc3RvcmUgb25lIG9mIG91ciByZXF1ZXN0cyBjcmVhdGVkIG5lZWRzIHRoZSBjb25maWcgd2UgaW50ZW5kZWQgZm9yIGl0LlxuXG5jb25zdCBsaXN0ZW5lcnMgPSBuZXcgU2V0PCgpID0+IHZvaWQ+KCk7XG5cbi8qKiBTdWJzY3JpYmUgdG8gc2VydmVyLXB1c2hlZCByb3V0aW5nIGNoYW5nZSBub3RpZmljYXRpb25zLiBSZXR1cm5zIHRoZSB1bnN1YnNjcmliZSBmdW5jdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBvblNlcnZlclJvdXRpbmdDaGFuZ2VkKGxpc3RlbmVyOiAoKSA9PiB2b2lkKTogKCkgPT4gdm9pZCB7XG4gICAgbGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgbGlzdGVuZXJzLmRlbGV0ZShsaXN0ZW5lcik7XG4gICAgfTtcbn1cblxuLyoqIE9uZSBjaGFpbidzIGNvbmZpZ3MsIGFzIGdldFJvdXRpbmdDb25maWdGb3JOYW1lIGFuc3dlcnMgZnJvbSB0aGVtOiB0aGUgaW5pdGlhbCBpbi1jb2RlIGNvbmZpZywgYW5kIGEgZ2V0dGVyIGZvciB0aGUgc3luY2hyb25pemVkIG9uZSAoYWRvcHRlZCBmcm9tIHRoZSBzdG9yZWQgcm91dGluZyBmaWxlcywgc28gaXQgY2hhbmdlcyBvdmVyIHRpbWUpLiAqL1xudHlwZSBUcmFja2VkQ2hhaW5Db25maWcgPSB7IGNvbmZpZ3VyZWQ6IFJlbW90ZUNvbmZpZzsgYWN0aXZlOiAoKSA9PiBSZW1vdGVDb25maWcgfTtcbmNvbnN0IGNoYWluQ29uZmlncyA9IG5ldyBTZXQ8VHJhY2tlZENoYWluQ29uZmlnPigpO1xuXG4vKiogRXZlcnkgY2hhaW4gdHJhY2tzIGl0cyBjb25maWdzIGhlcmUgKHNlZSBDaGFpblN0YXRlTWFuYWdlciksIHNvIGEgc2VydmVyIGNhbiBhc2sgd2hhdCBjb25maWcgd2FzIGludGVuZGVkIGZvciBhIHN0b3JlIG5hbWUuIFJldHVybnMgdGhlIHVudHJhY2sgZnVuY3Rpb24uICovXG5leHBvcnQgZnVuY3Rpb24gdHJhY2tDaGFpbkNvbmZpZyhlbnRyeTogVHJhY2tlZENoYWluQ29uZmlnKTogKCkgPT4gdm9pZCB7XG4gICAgY2hhaW5Db25maWdzLmFkZChlbnRyeSk7XG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgY2hhaW5Db25maWdzLmRlbGV0ZShlbnRyeSk7XG4gICAgfTtcbn1cblxuZnVuY3Rpb24gY29uZmlnTmFtZXNTdG9yZShjb25maWc6IFJlbW90ZUNvbmZpZywgYWNjb3VudDogc3RyaW5nLCBidWNrZXROYW1lOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IHNvdXJjZSBvZiBjb25maWcuc291cmNlcykge1xuICAgICAgICBpZiAodHlwZW9mIHNvdXJjZSA9PT0gXCJzdHJpbmdcIiB8fCBzb3VyY2UudHlwZSAhPT0gXCJyZW1vdGVcIikgY29udGludWU7XG4gICAgICAgIGlmIChzb3VyY2UubmFtZSAhPT0gbmFtZSkgY29udGludWU7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkID0gcGFyc2VIb3N0ZWRVcmwoc291cmNlLnVybCk7XG4gICAgICAgICAgICBpZiAocGFyc2VkLmFjY291bnQgPT09IGFjY291bnQgJiYgcGFyc2VkLmJ1Y2tldE5hbWUgPT09IGJ1Y2tldE5hbWUpIHJldHVybiB0cnVlO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuY2xhc3MgU3RvcmFnZUNsaWVudENvbnRyb2xsZXJCYXNlIHtcbiAgICBhc3luYyByb3V0aW5nQ29uZmlnQ2hhbmdlZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChsZXQgbGlzdGVuZXIgb2YgWy4uLmxpc3RlbmVyc10pIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGlzdGVuZXIoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGBSb3V0aW5nIGNoYW5nZSBsaXN0ZW5lciBmYWlsZWQ6ICR7KGUgYXMgRXJyb3IpLnN0YWNrID8/IGV9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQSBzdG9yYWdlIHNlcnZlciBhc2tzOiB3aGF0IHJvdXRpbmcgY29uZmlnIGRpZCB0aGlzIGNsaWVudCBJTlRFTkQgZm9yIHRoaXMgc3RvcmUgbmFtZT8gVGhpcyBpcyBob3cgYSBzdG9yZSBvdXIgcmVxdWVzdHMgY3JlYXRlZCAtIGJlZm9yZSBhbnkgY29uZmlnIGV2ZXIgcmVhY2hlZCBpdHMgZm9sZGVyIC0gY29uZmlndXJlcyBpdHNlbGY6IHRoZSBzYW1lIGluZm9ybWF0aW9uIGFzIHBhc3NpbmcgdGhlIGNvbmZpZyBvbiBldmVyeSBjYWxsLCBmZXRjaGVkIGxhemlseSBpbnN0ZWFkICh0aGUgY29uZmlnIGlzIGtpbG9ieXRlcyBhbmQgdGhlIGNhbGxzIGFyZSBtYW55KS4gUHJlZmVyZW5jZTogdGhlIHN5bmNocm9uaXplZCBjb25maWcgKGFkb3B0ZWQgZnJvbSB0aGUgc3RvcmVkIHJvdXRpbmcgZmlsZXMpOyB3aGVuIHRoYXQgbm8gbG9uZ2VyIG5hbWVzIHRoZSBzdG9yZSwgdGhlIGluaXRpYWwgaW4tY29kZSBjb25maWcgLSBvbGRlciwgYnV0IGl0IE1BVENIRVMgdGhlIG5hbWUsIHdoaWNoIGlzIHdoYXQgdGhlIGFza2luZyBzdG9yZSBuZWVkcy4gKi9cbiAgICBhc3luYyBnZXRSb3V0aW5nQ29uZmlnRm9yTmFtZShjb25maWc6IHsgYWNjb3VudDogc3RyaW5nOyBidWNrZXROYW1lOiBzdHJpbmc7IG5hbWU6IHN0cmluZyB9KTogUHJvbWlzZTxSZW1vdGVDb25maWcgfCB1bmRlZmluZWQ+IHtcbiAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgWy4uLmNoYWluQ29uZmlnc10pIHtcbiAgICAgICAgICAgIGxldCBhY3RpdmUgPSBlbnRyeS5hY3RpdmUoKTtcbiAgICAgICAgICAgIGlmIChjb25maWdOYW1lc1N0b3JlKGFjdGl2ZSwgY29uZmlnLmFjY291bnQsIGNvbmZpZy5idWNrZXROYW1lLCBjb25maWcubmFtZSkpIHJldHVybiBhY3RpdmU7XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChsZXQgZW50cnkgb2YgWy4uLmNoYWluQ29uZmlnc10pIHtcbiAgICAgICAgICAgIGlmIChjb25maWdOYW1lc1N0b3JlKGVudHJ5LmNvbmZpZ3VyZWQsIGNvbmZpZy5hY2NvdW50LCBjb25maWcuYnVja2V0TmFtZSwgY29uZmlnLm5hbWUpKSByZXR1cm4gZW50cnkuY29uZmlndXJlZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cblxuZXhwb3J0IGNvbnN0IFN0b3JhZ2VDbGllbnRDb250cm9sbGVyID0gU29ja2V0RnVuY3Rpb24ucmVnaXN0ZXIoXG4gICAgXCJTdG9yYWdlQ2xpZW50Q29udHJvbGxlci1yZW1vdGVTdG9yYWdlLTJiOGYxYTZkXCIsXG4gICAgbmV3IFN0b3JhZ2VDbGllbnRDb250cm9sbGVyQmFzZSgpLFxuICAgICgpID0+ICh7XG4gICAgICAgIHJvdXRpbmdDb25maWdDaGFuZ2VkOiB7fSxcbiAgICAgICAgZ2V0Um91dGluZ0NvbmZpZ0Zvck5hbWU6IHt9LFxuICAgIH0pLFxuKTtcbiJdfQ==
|
|
73
|
-
/* _JS_SOURCE_HASH = "
|
|
73
|
+
/* _JS_SOURCE_HASH = "85a6eca70621a762a260ca0483e9d02261d460272f2d024756ec11ca24975874"; */
|