Socket
Socket
Sign inDemoInstall

nukak

Package Overview
Dependencies
2
Maintainers
1
Versions
61
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.4.2 to 0.4.6

2

dialect/abstractSqlDialect.js

@@ -346,2 +346,2 @@ import { QueryRaw, } from '../type/index.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvYWJzdHJhY3RTcWxEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFtQkwsUUFBUSxHQUdULE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixPQUFPLEVBQ1AsT0FBTyxFQUNQLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEdBQUcsRUFDSCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE1BQU0sT0FBZ0Isa0JBQWtCO0lBSTNCO0lBQ0E7SUFKRixhQUFhLENBQVM7SUFFL0IsWUFDVyxlQUEwQixHQUFHLEVBQzdCLDBCQUFrQyxtQkFBbUI7UUFEckQsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBOEI7UUFFOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLENBQUksTUFBZSxFQUFFLElBQWMsRUFBRSxFQUFFLE9BQXFCLEVBQUU7UUFDbEUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ25ILElBQUksR0FBRyxFQUFFLEdB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QyxJQUFJLElBQUksQ0FBQyxJQUFJLGdDQUFnQyxDQUFDLENBQUM7YUFDaEU7U0FDRjtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5QyxPQUFPLGVBQWUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXLEVBQUUsZUFBeUIsRUFBRSxNQUFnQjtRQUMvRCxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1IsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksQ0FBQyxlQUFlLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QyxPQUFPLEdBQUc7aUJBQ1AsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDVixHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNkO1FBRUQsMEdBQTBHO1FBQzFHLE1BQU0sT0FBTyxHQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFakgsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVqQyxPQUFPLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUIsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUXVlcnlGaWx0ZXIsXG4gIFNjYWxhcixcbiAgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwLFxuICBRdWVyeVNvcnQsXG4gIFF1ZXJ5UGFnZXIsXG4gIFF1ZXJ5VGV4dFNlYXJjaE9wdGlvbnMsXG4gIEZpZWxkS2V5LFxuICBRdWVyeVByb2plY3QsXG4gIFR5cGUsXG4gIFF1ZXJ5UHJvamVjdEFycmF5LFxuICBRdWVyeU9wdGlvbnMsXG4gIFF1ZXJ5RGlhbGVjdCxcbiAgUXVlcnlGaWx0ZXJPcHRpb25zLFxuICBRdWVyeUNvbXBhcmlzb25PcHRpb25zLFxuICBRdWVyeUZpbHRlck1hcCxcbiAgUXVlcnlQcm9qZWN0T3B0aW9ucyxcbiAgUXVlcnlTb3J0RGlyZWN0aW9uLFxuICBRdWVyeUZpbHRlckFycmF5LFxuICBRdWVyeVJhdyxcbiAgUXVlcnlTZWFyY2gsXG4gIFF1ZXJ5LFxufSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIGdldFBlcnNpc3RhYmxlLFxuICBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLFxuICBnZXRQZXJzaXN0YWJsZXMsXG4gIGlzUHJvamVjdGluZ1JlbGF0aW9ucyxcbiAgZ2V0S2V5cyxcbiAgaGFzS2V5cyxcbiAgYnVpbGRTb3J0TWFwLFxuICBmbGF0T2JqZWN0LFxuICBnZXRSYXdWYWx1ZSxcbiAgcmF3LFxuICBnZXRRdWVyeUZpbHRlckFzTWFwLFxuICBnZXRGaWVsZENhbGxiYWNrVmFsdWUsXG59IGZyb20gJy4uL3V0aWwvaW5kZXguanMnO1xuXG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5L2luZGV4LmpzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3FsRGlhbGVjdCBpbXBsZW1lbnRzIFF1ZXJ5RGlhbGVjdCB7XG4gIHJlYWRvbmx5IGVzY2FwZUlkUmVnZXg6IFJlZ0V4cDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZWFkb25seSBlc2NhcGVJZENoYXI6ICdgJyB8ICdcIicgPSAnYCcsXG4gICAgcmVhZG9ubHkgYmVnaW5UcmFuc2FjdGlvbkNvbW1hbmQ6IHN0cmluZyA9ICdTVEFSVCBUUkFOU0FDVElPTicsXG4gICkge1xuICAgIHRoaXMuZXNjYXBlSWRSZWdleCA9IFJlZ0V4cChlc2NhcGVJZENoYXIsICdnJyk7XG4gIH1cblxuICBzZWFyY2g8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeTxFPiA9IHt9LCBvcHRzOiBRdWVyeU9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBwcmVmaXggPSBvcHRzLnByZWZpeCA/PyAob3B0cy5hdXRvUHJlZml4IHx8IGlzUHJvamVjdGluZ1JlbGF0aW9ucyhtZXRhLCBxLiRwcm9qZWN0KSkgPyBtZXRhLm5hbWUgOiB1bmRlZmluZWQ7XG4gICAgb3B0cyA9IHsgLi4ub3B0cywgcHJlZml4IH07XG4gICAgY29uc3Qgd2hlcmUgPSB0aGlzLndoZXJlPEU+KGVudGl0eSwgcS4kZmlsdGVyLCBvcHRzKTtcbiAgICBjb25zdCBzb3J0ID0gdGhpcy5zb3J0PEU+KGVudGl0eSwgcS4kc29ydCwgb3B0cyk7XG4gICAgY29uc3QgcGFnZXIgPSB0aGlzLnBhZ2VyKHEpO1xuICAgIHJldHVybiB3aGVyZSArIHNvcnQgKyBwYWdlcjtcbiAgfVxuXG4gIHByb2plY3RGaWVsZHM8RT4oZW50aXR5OiBUeXBlPEU+LCBwcm9qZWN0OiBRdWVyeVByb2plY3Q8RT4sIG9wdHM6IFF1ZXJ5UHJvamVjdE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcHJlZml4ID0gb3B0cy5wcmVmaXggPyBvcHRzLnByZWZpeCArICcuJyA6ICcnO1xuICAgIGNvbnN0IGVzY2FwZWRQcmVmaXggPSB0aGlzLmVzY2FwZUlkKG9wdHMucHJlZml4LCB0cnVlLCB0cnVlKTtcblxuICAgIGxldCBwcm9qZWN0QXJyOiBRdWVyeVByb2plY3RBcnJheTxFPjtcblxuICAgIGlmIChwcm9qZWN0KSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9qZWN0KSkge1xuICAgICAgICBwcm9qZWN0QXJyID0gcHJvamVjdDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHByb2plY3RQb3NpdGl2ZSA9IGdldEtleXMocHJvamVjdCkuZmlsdGVyKChpdCkgPT4gcHJvamVjdFtpdF0pIGFzIEZpZWxkS2V5PEU+W107XG4gICAgICAgIHByb2plY3RBcnIgPSBwcm9qZWN0UG9zaXRpdmUubGVuZ3RoXG4gICAgICAgICAgPyBwcm9qZWN0UG9zaXRpdmVcbiAgICAgICAgICA6IChnZXRLZXlzKG1ldGEuZmllbGRzKS5maWx0ZXIoKGl0KSA9PiAhKGl0IGluIHByb2plY3QpKSBhcyBGaWVsZEtleTxFPltdKTtcbiAgICAgIH1cbiAgICAgIHByb2plY3RBcnIgPSBwcm9qZWN0QXJyLmZpbHRlcigoaXQpID0+IGl0IGluc3RhbmNlb2YgUXVlcnlSYXcgfHwgaXQgaW4gbWV0YS5maWVsZHMpO1xuICAgICAgaWYgKG9wdHMucHJlZml4ICYmICFwcm9qZWN0QXJyLmluY2x1ZGVzKG1ldGEuaWQpKSB7XG4gICAgICAgIHByb2plY3RBcnIgPSBbbWV0YS5pZCwgLi4ucHJvamVjdEFycl07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHByb2plY3RBcnIgPSBnZXRLZXlzKG1ldGEuZmllbGRzKSBhcyBGaWVsZEtleTxFPltdO1xuICAgIH1cblxuICAgIHJldHVybiBwcm9qZWN0QXJyXG4gICAgICAubWFwKChrZXkpID0+IHtcbiAgICAgICAgaWYgKGtleSBpbnN0YW5jZW9mIFF1ZXJ5UmF3KSB7XG4gICAgICAgICAgcmV0dXJuIGdldFJhd1ZhbHVlKHtcbiAgICAgICAgICAgIHZhbHVlOiBrZXksXG4gICAgICAgICAgICBkaWFsZWN0OiB0aGlzLFxuICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgICAgICAgIGF1dG9QcmVmaXhBbGlhczogb3B0cy5hdXRvUHJlZml4QWxpYXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWVsZCA9IG1ldGEuZmllbGRzW2tleSBhcyBGaWVsZEtleTxFPl07XG5cbiAgICAgICAgaWYgKGZpZWxkLnZpcnR1YWwpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0UmF3VmFsdWUoe1xuICAgICAgICAgICAgdmFsdWU6IHJhdyhmaWVsZC52aXJ0dWFsLnZhbHVlLCBrZXkpLFxuICAgICAgICAgICAgZGlhbGVjdDogdGhpcyxcbiAgICAgICAgICAgIHByZWZpeCxcbiAgICAgICAgICAgIGVzY2FwZWRQcmVmaXgsXG4gICAgICAgICAgICBhdXRvUHJlZml4QWxpYXM6IG9wdHMuYXV0b1ByZWZpeEFsaWFzLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZmllbGRQYXRoID0gYCR7ZXNjYXBlZFByZWZpeH0ke3RoaXMuZXNjYXBlSWQoZmllbGQubmFtZSl9YDtcblxuICAgICAgICByZXR1cm4gIW9wdHMuYXV0b1ByZWZpeEFsaWFzICYmIGZpZWxkLm5hbWUgPT09IGtleVxuICAgICAgICAgID8gZmllbGRQYXRoXG4gICAgICAgICAgOiBgJHtmaWVsZFBhdGh9ICR7dGhpcy5lc2NhcGVJZCgocHJlZml4ICsga2V5KSBhcyBGaWVsZEtleTxFPiwgdHJ1ZSl9YDtcbiAgICAgIH0pXG4gICAgICAuam9pbignLCAnKTtcbiAgfVxuXG4gIHByb2plY3RSZWxhdGlvbnM8RT4oXG4gICAgZW50aXR5OiBUeXBlPEU+LFxuICAgIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPiA9IHt9LFxuICAgIHsgcHJlZml4IH06IHsgcHJlZml4Pzogc3RyaW5nIH0gPSB7fSxcbiAgKTogeyBmaWVsZHM6IHN0cmluZzsgdGFibGVzOiBzdHJpbmcgfSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxhdGlvbnMgPSBnZXRQcm9qZWN0UmVsYXRpb25LZXlzKG1ldGEsIHByb2plY3QpO1xuICAgIGNvbnN0IGlzUHJvamVjdEFycmF5ID0gQXJyYXkuaXNBcnJheShwcm9qZWN0KTtcbiAgICBsZXQgZmllbGRzID0gJyc7XG4gICAgbGV0IHRhYmxlcyA9ICcnO1xuXG4gICAgZm9yIChjb25zdCBrZXkgb2YgcmVsYXRpb25zKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNba2V5XTtcblxuICAgICAgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICcxbScgfHwgcmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ21tJykge1xuICAgICAgICAvLyAnMW0nIGFuZCAnbW0nIHNob3VsZCBiZSByZXNvbHZlZCBpbiBhIGhpZ2hlciBsYXllciBiZWNhdXNlIHRoZXkgd2lsbCBuZWVkIG11bHRpcGxlIHF1ZXJpZXNcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGpvaW5SZWxBbGlhcyA9IHByZWZpeCA/IHByZWZpeCArICcuJyArIGtleSA6IGtleTtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgICBjb25zdCByZWxQcm9qZWN0ID0gcHJvamVjdFtrZXkgYXMgc3RyaW5nXTtcbiAgICAgIGNvbnN0IHJlbFF1ZXJ5ID0gaXNQcm9qZWN0QXJyYXkgPyB7fSA6IEFycmF5LmlzQXJyYXkocmVsUHJvamVjdCkgPyB7ICRwcm9qZWN0OiByZWxQcm9qZWN0IH0gOiByZWxQcm9qZWN0O1xuXG4gICAgICBjb25zdCByZWxDb2x1bW5zID0gdGhpcy5wcm9qZWN0RmllbGRzKHJlbEVudGl0eSwgcmVsUXVlcnkuJHByb2plY3QsIHtcbiAgICAgICAgcHJlZml4OiBqb2luUmVsQWxpYXMsXG4gICAgICAgIGF1dG9QcmVmaXhBbGlhczogdHJ1ZSxcbiAgICAgIH0pO1xuXG4gICAgICBmaWVsZHMgKz0gJywgJyArIHJlbENvbHVtbnM7XG5cbiAgICAgIGNvbnN0IHsgZmllbGRzOiBzdWJDb2x1bW5zLCB0YWJsZXM6IHN1YlRhYmxlcyB9ID0gdGhpcy5wcm9qZWN0UmVsYXRpb25zKHJlbEVudGl0eSwgcmVsUXVlcnkuJHByb2plY3QsIHtcbiAgICAgICAgcHJlZml4OiBqb2luUmVsQWxpYXMsXG4gICAgICB9KTtcblxuICAgICAgZmllbGRzICs9IHN1YkNvbHVtbnM7XG5cbiAgICAgIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG4gICAgICBjb25zdCByZWxFbnRpdHlOYW1lID0gdGhpcy5lc2NhcGVJZChyZWxNZXRhLm5hbWUpO1xuICAgICAgY29uc3QgcmVsUGF0aCA9IHByZWZpeCA/IHRoaXMuZXNjYXBlSWQocHJlZml4LCB0cnVlKSA6IHRoaXMuZXNjYXBlSWQobWV0YS5uYW1lKTtcbiAgICAgIGNvbnN0IGpvaW5UeXBlID0gcmVsUXVlcnkuJHJlcXVpcmVkID8gJ0lOTkVSJyA6ICdMRUZUJztcbiAgICAgIGNvbnN0IGpvaW5BbGlhcyA9IHRoaXMuZXNjYXBlSWQoam9pblJlbEFsaWFzLCB0cnVlKTtcblxuICAgICAgdGFibGVzICs9IGAgJHtqb2luVHlwZX0gSk9JTiAke3JlbEVudGl0eU5hbWV9ICR7am9pbkFsaWFzfSBPTiBgO1xuICAgICAgdGFibGVzICs9IHJlbE9wdHMucmVmZXJlbmNlc1xuICAgICAgICAubWFwKChpdCkgPT4gYCR7am9pbkFsaWFzfS4ke3RoaXMuZXNjYXBlSWQoaXQuZm9yZWlnbil9ID0gJHtyZWxQYXRofS4ke3RoaXMuZXNjYXBlSWQoaXQubG9jYWwpfWApXG4gICAgICAgIC5qb2luKCcgQU5EICcpO1xuXG4gICAgICBpZiAocmVsUXVlcnkuJGZpbHRlcikge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLndoZXJlKHJlbEVudGl0eSwgcmVsUXVlcnkuJGZpbHRlciwgeyBwcmVmaXg6IGtleSwgY2xhdXNlOiBmYWxzZSB9KTtcbiAgICAgICAgdGFibGVzICs9IGAgQU5EICR7ZmlsdGVyfWA7XG4gICAgICB9XG5cbiAgICAgIHRhYmxlcyArPSBzdWJUYWJsZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgZmllbGRzLCB0YWJsZXMgfTtcbiAgfVxuXG4gIHNlbGVjdDxFPihlbnRpdHk6IFR5cGU8RT4sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPiwgb3B0czogUXVlcnlPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcHJlZml4ID0gb3B0cy5wcmVmaXggPz8gKG9wdHMuYXV0b1ByZWZpeCB8fCBpc1Byb2plY3RpbmdSZWxhdGlvbnMobWV0YSwgcHJvamVjdCkpID8gbWV0YS5uYW1lIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZmllbGRzID0gdGhpcy5wcm9qZWN0RmllbGRzKGVudGl0eSwgcHJvamVjdCwgeyBwcmVmaXggfSk7XG4gICAgY29uc3QgeyBmaWVsZHM6IHJlbGF0aW9uRmllbGRzLCB0YWJsZXMgfSA9IHRoaXMucHJvamVjdFJlbGF0aW9ucyhlbnRpdHksIHByb2plY3QpO1xuXG4gICAgcmV0dXJuIGBTRUxFQ1QgJHtmaWVsZHN9JHtyZWxhdGlvbkZpZWxkc30gRlJPTSAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0ke3RhYmxlc31gO1xuICB9XG5cbiAgd2hlcmU8RT4oZW50aXR5OiBUeXBlPEU+LCBmaWx0ZXI6IFF1ZXJ5RmlsdGVyPEU+ID0ge30sIG9wdHM6IFF1ZXJ5RmlsdGVyT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCB7IHVzZVByZWNlZGVuY2UsIGNsYXVzZSA9ICdXSEVSRScsIHNvZnREZWxldGUgfSA9IG9wdHM7XG5cbiAgICBmaWx0ZXIgPSBnZXRRdWVyeUZpbHRlckFzTWFwKG1ldGEsIGZpbHRlcik7XG5cbiAgICBpZiAobWV0YS5zb2Z0RGVsZXRlICYmIChzb2Z0RGVsZXRlIHx8IHNvZnREZWxldGUgPT09IHVuZGVmaW5lZCkgJiYgIWZpbHRlclttZXRhLnNvZnREZWxldGUgYXMgc3RyaW5nXSkge1xuICAgICAgZmlsdGVyW21ldGEuc29mdERlbGV0ZSBhcyBzdHJpbmddID0gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXMoZmlsdGVyKTtcblxuICAgIGlmICghZW50cmllcy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zID0geyAuLi5vcHRzLCB1c2VQcmVjZWRlbmNlOiBlbnRyaWVzLmxlbmd0aCA+IDEgfTtcblxuICAgIGxldCBzcWwgPSBlbnRyaWVzXG4gICAgICAubWFwKChba2V5LCB2YWxdKSA9PiB0aGlzLmNvbXBhcmUoZW50aXR5LCBrZXkgYXMga2V5b2YgUXVlcnlGaWx0ZXJNYXA8RT4sIHZhbCBhcyBhbnksIG9wdGlvbnMpKVxuICAgICAgLmpvaW4oYCBBTkQgYCk7XG5cbiAgICBpZiAodXNlUHJlY2VkZW5jZSkge1xuICAgICAgc3FsID0gYCgke3NxbH0pYDtcbiAgICB9XG5cbiAgICByZXR1cm4gY2xhdXNlID8gYCAke2NsYXVzZX0gJHtzcWx9YCA6IHNxbDtcbiAgfVxuXG4gIGNvbXBhcmU8RSwgSyBleHRlbmRzIGtleW9mIFF1ZXJ5RmlsdGVyTWFwPEU+PihcbiAgICBlbnRpdHk6IFR5cGU8RT4sXG4gICAga2V5OiBLLFxuICAgIHZhbDogUXVlcnlGaWx0ZXJNYXA8RT5bS10sXG4gICAgb3B0czogUXVlcnlDb21wYXJpc29uT3B0aW9ucyA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgICBpZiAodmFsIGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICAgIGlmIChrZXkgPT09ICckZXhpc3RzJyB8fCBrZXkgPT09ICckbmV4aXN0cycpIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWwgYXMgUXVlcnlSYXc7XG4gICAgICAgIGNvbnN0IHF1ZXJ5ID0gZ2V0UmF3VmFsdWUoe1xuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIGRpYWxlY3Q6IHRoaXMsXG4gICAgICAgICAgcHJlZml4OiBtZXRhLm5hbWUsXG4gICAgICAgICAgZXNjYXBlZFByZWZpeDogdGhpcy5lc2NhcGVJZChtZXRhLm5hbWUsIGZhbHNlLCB0cnVlKSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBgJHtrZXkgPT09ICckZXhpc3RzJyA/ICdFWElTVFMnIDogJ05PVCBFWElTVFMnfSAoJHtxdWVyeX0pYDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbXBhcmlzb25LZXkgPSB0aGlzLmdldENvbXBhcmlzb25LZXkoZW50aXR5LCBrZXkgYXMgRmllbGRLZXk8RT4sIG9wdHMpO1xuICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9ID0gJHt2YWwudmFsdWV9YDtcbiAgICB9XG5cbiAgICBpZiAoa2V5ID09PSAnJHRleHQnKSB7XG4gICAgICBjb25zdCBzZWFyY2ggPSB2YWwgYXMgUXVlcnlUZXh0U2VhcmNoT3B0aW9uczxFPjtcbiAgICAgIGNvbnN0IGZpZWxkcyA9IHNlYXJjaC4kZmllbGRzLm1hcCgoZmllbGQpID0+IHRoaXMuZXNjYXBlSWQobWV0YS5maWVsZHNbZmllbGRdLm5hbWUpKTtcbiAgICAgIHJldHVybiBgTUFUQ0goJHtmaWVsZHMuam9pbignLCAnKX0pIEFHQUlOU1QoJHt0aGlzLmVzY2FwZShzZWFyY2guJHZhbHVlKX0pYDtcbiAgICB9XG5cbiAgICBpZiAoa2V5ID09PSAnJGFuZCcgfHwga2V5ID09PSAnJG9yJyB8fCBrZXkgPT09ICckbm90JyB8fCBrZXkgPT09ICckbm9yJykge1xuICAgICAgY29uc3QgbmVnYXRlT3BlcmF0b3JNYXAgPSB7XG4gICAgICAgICRub3Q6ICckYW5kJyxcbiAgICAgICAgJG5vcjogJyRvcicsXG4gICAgICB9IGFzIGNvbnN0O1xuXG4gICAgICBjb25zdCBvcDogJyRhbmQnIHwgJyRvcicgPSBuZWdhdGVPcGVyYXRvck1hcFtrZXkgYXMgc3RyaW5nXSA/PyBrZXk7XG4gICAgICBjb25zdCBuZWdhdGUgPSBrZXkgaW4gbmVnYXRlT3BlcmF0b3JNYXAgPyAnTk9UICcgOiAnJztcblxuICAgICAgY29uc3QgdmFsdWVzID0gdmFsIGFzIFF1ZXJ5RmlsdGVyQXJyYXk8RT47XG4gICAgICBjb25zdCBoYXNNYW55SXRlbXMgPSB2YWx1ZXMubGVuZ3RoID4gMTtcbiAgICAgIGNvbnN0IGxvZ2ljYWxDb21wYXJpc29uID0gdmFsdWVzXG4gICAgICAgIC5tYXAoKGZpbHRlckVudHJ5KSA9PiB7XG4gICAgICAgICAgaWYgKGZpbHRlckVudHJ5IGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRSYXdWYWx1ZSh7XG4gICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJFbnRyeSxcbiAgICAgICAgICAgICAgZGlhbGVjdDogdGhpcyxcbiAgICAgICAgICAgICAgcHJlZml4OiBvcHRzLnByZWZpeCxcbiAgICAgICAgICAgICAgZXNjYXBlZFByZWZpeDogdGhpcy5lc2NhcGVJZChvcHRzLnByZWZpeCwgdHJ1ZSwgdHJ1ZSksXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHRoaXMud2hlcmUoZW50aXR5LCBmaWx0ZXJFbnRyeSwge1xuICAgICAgICAgICAgcHJlZml4OiBvcHRzLnByZWZpeCxcbiAgICAgICAgICAgIHVzZVByZWNlZGVuY2U6IGhhc01hbnlJdGVtcyAmJiAhQXJyYXkuaXNBcnJheShmaWx0ZXJFbnRyeSkgJiYgZ2V0S2V5cyhmaWx0ZXJFbnRyeSkubGVuZ3RoID4gMSxcbiAgICAgICAgICAgIGNsYXVzZTogZmFsc2UsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKG9wID09PSAnJG9yJyA/ICcgT1IgJyA6ICcgQU5EICcpO1xuXG4gICAgICByZXR1cm4gKG9wdHMudXNlUHJlY2VkZW5jZSB8fCBuZWdhdGUpICYmIGhhc01hbnlJdGVtc1xuICAgICAgICA/IGAke25lZ2F0ZX0oJHtsb2dpY2FsQ29tcGFyaXNvbn0pYFxuICAgICAgICA6IGAke25lZ2F0ZX0ke2xvZ2ljYWxDb21wYXJpc29ufWA7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWUgPSBBcnJheS5pc0FycmF5KHZhbCkgPyB7ICRpbjogdmFsIH0gOiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWwgIT09IG51bGwgPyB2YWwgOiB7ICRlcTogdmFsIH07XG4gICAgY29uc3Qgb3BlcmF0b3JzID0gZ2V0S2V5cyh2YWx1ZSkgYXMgKGtleW9mIFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcDxFPilbXTtcbiAgICBjb25zdCBjb21wYXJpc29ucyA9IG9wZXJhdG9yc1xuICAgICAgLm1hcCgob3ApID0+IHRoaXMuY29tcGFyZUZpZWxkT3BlcmF0b3IoZW50aXR5LCBrZXkgYXMgRmllbGRLZXk8RT4sIG9wLCB2YWx1ZVtvcF0sIG9wdHMpKVxuICAgICAgLmpvaW4oJyBBTkQgJyk7XG5cbiAgICByZXR1cm4gb3BlcmF0b3JzLmxlbmd0aCA+IDEgPyBgKCR7Y29tcGFyaXNvbnN9KWAgOiBjb21wYXJpc29ucztcbiAgfVxuXG4gIGNvbXBhcmVGaWVsZE9wZXJhdG9yPEUsIEsgZXh0ZW5kcyBrZXlvZiBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8RT4+KFxuICAgIGVudGl0eTogVHlwZTxFPixcbiAgICBrZXk6IEZpZWxkS2V5PEU+LFxuICAgIG9wOiBLLFxuICAgIHZhbDogUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPEU+W0tdLFxuICAgIG9wdHM6IFF1ZXJ5T3B0aW9ucyA9IHt9LFxuICApOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbXBhcmlzb25LZXkgPSB0aGlzLmdldENvbXBhcmlzb25LZXkoZW50aXR5LCBrZXksIG9wdHMpO1xuICAgIHN3aXRjaCAob3ApIHtcbiAgICAgIGNhc2UgJyRlcSc6XG4gICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgPyBgJHtjb21wYXJpc29uS2V5fSBJUyBOVUxMYCA6IGAke2NvbXBhcmlzb25LZXl9ID0gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckbmUnOlxuICAgICAgICByZXR1cm4gdmFsID09PSBudWxsID8gYCR7Y29tcGFyaXNvbktleX0gSVMgTk9UIE5VTExgIDogYCR7Y29tcGFyaXNvbktleX0gPD4gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckbm90JzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZShlbnRpdHksICckbm90JywgW3sgW2tleV06IHZhbCB9XSBhcyBhbnksIG9wdHMpO1xuICAgICAgY2FzZSAnJGd0JzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9ID4gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckZ3RlJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9ID49ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJGx0JzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IDwgJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckbHRlJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IDw9ICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgY2FzZSAnJHN0YXJ0c1dpdGgnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gTElLRSAke3RoaXMuZXNjYXBlKGAke3ZhbH0lYCl9YDtcbiAgICAgIGNhc2UgJyRpc3RhcnRzV2l0aCc6XG4gICAgICAgIHJldHVybiBgTE9XRVIoJHtjb21wYXJpc29uS2V5fSkgTElLRSAke3RoaXMuZXNjYXBlKCh2YWwgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpICsgJyUnKX1gO1xuICAgICAgY2FzZSAnJGVuZHNXaXRoJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IExJS0UgJHt0aGlzLmVzY2FwZShgJSR7dmFsfWApfWA7XG4gICAgICBjYXNlICckaWVuZHNXaXRoJzpcbiAgICAgICAgcmV0dXJuIGBMT1dFUigke2NvbXBhcmlzb25LZXl9KSBMSUtFICR7dGhpcy5lc2NhcGUoJyUnICsgKHZhbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkpfWA7XG4gICAgICBjYXNlICckaW5jbHVkZXMnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gTElLRSAke3RoaXMuZXNjYXBlKGAlJHt2YWx9JWApfWA7XG4gICAgICBjYXNlICckaWluY2x1ZGVzJzpcbiAgICAgICAgcmV0dXJuIGBMT1dFUigke2NvbXBhcmlzb25LZXl9KSBMSUtFICR7dGhpcy5lc2NhcGUoJyUnICsgKHZhbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkgKyAnJScpfWA7XG4gICAgICBjYXNlICckaWxpa2UnOlxuICAgICAgICByZXR1cm4gYExPV0VSKCR7Y29tcGFyaXNvbktleX0pIExJS0UgJHt0aGlzLmVzY2FwZSgodmFsIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSl9YDtcbiAgICAgIGNhc2UgJyRsaWtlJzpcbiAgICAgICAgcmV0dXJuIGAke2NvbXBhcmlzb25LZXl9IExJS0UgJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckaW4nOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gSU4gKCR7dGhpcy5lc2NhcGUodmFsKX0pYDtcbiAgICAgIGNhc2UgJyRuaW4nOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gTk9UIElOICgke3RoaXMuZXNjYXBlKHZhbCl9KWA7XG4gICAgICBjYXNlICckcmVnZXgnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gUkVHRVhQICR7dGhpcy5lc2NhcGUodmFsKX1gO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgVHlwZUVycm9yKGB1bmtub3duIG9wZXJhdG9yOiAke29wfWApO1xuICAgIH1cbiAgfVxuXG4gIGdldENvbXBhcmlzb25LZXk8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IEZpZWxkS2V5PEU+LCB7IHByZWZpeCB9OiBRdWVyeU9wdGlvbnMgPSB7fSk6IFNjYWxhciB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBlc2NhcGVkUHJlZml4ID0gdGhpcy5lc2NhcGVJZChwcmVmaXgsIHRydWUsIHRydWUpO1xuICAgIGNvbnN0IGZpZWxkID0gbWV0YS5maWVsZHNba2V5XTtcblxuICAgIGlmIChmaWVsZD8udmlydHVhbCkge1xuICAgICAgcmV0dXJuIGdldFJhd1ZhbHVlKHtcbiAgICAgICAgdmFsdWU6IGZpZWxkLnZpcnR1YWwsXG4gICAgICAgIGRpYWxlY3Q6IHRoaXMsXG4gICAgICAgIHByZWZpeCxcbiAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBlc2NhcGVkUHJlZml4ICsgdGhpcy5lc2NhcGVJZChmaWVsZD8ubmFtZSA/PyBrZXkpO1xuICB9XG5cbiAgc29ydDxFPihlbnRpdHk6IFR5cGU8RT4sIHNvcnQ6IFF1ZXJ5U29ydDxFPiwgeyBwcmVmaXggfTogUXVlcnlPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBzb3J0TWFwID0gYnVpbGRTb3J0TWFwKHNvcnQpO1xuICAgIGlmICghaGFzS2V5cyhzb3J0TWFwKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGZsYXR0ZW5lZFNvcnQgPSBmbGF0T2JqZWN0KHNvcnRNYXAsIHByZWZpeCk7XG4gICAgY29uc3QgZGlyZWN0aW9uTWFwID0geyAxOiAnJywgYXNjOiAnJywgJy0xJzogJyBERVNDJywgZGVzYzogJyBERVNDJyB9IGFzIGNvbnN0O1xuICAgIGNvbnN0IG9yZGVyID0gT2JqZWN0LmVudHJpZXMoZmxhdHRlbmVkU29ydClcbiAgICAgIC5tYXAoKFtrZXksIHNvcnRdKSA9PiB7XG4gICAgICAgIGNvbnN0IG5hbWUgPSBtZXRhLmZpZWxkc1trZXldPy5uYW1lID8/IGtleTtcbiAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gZGlyZWN0aW9uTWFwW3NvcnQgYXMgUXVlcnlTb3J0RGlyZWN0aW9uXTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXNjYXBlSWQobmFtZSkgKyBkaXJlY3Rpb247XG4gICAgICB9KVxuICAgICAgLmpvaW4oJywgJyk7XG4gICAgcmV0dXJuIGAgT1JERVIgQlkgJHtvcmRlcn1gO1xuICB9XG5cbiAgcGFnZXIob3B0czogUXVlcnlQYWdlcik6IHN0cmluZyB7XG4gICAgbGV0IHNxbCA9ICcnO1xuICAgIGlmIChvcHRzLiRsaW1pdCkge1xuICAgICAgc3FsICs9IGAgTElNSVQgJHtOdW1iZXIob3B0cy4kbGltaXQpfWA7XG4gICAgfVxuICAgIGlmIChvcHRzLiRza2lwICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNxbCArPSBgIE9GRlNFVCAke051bWJlcihvcHRzLiRza2lwKX1gO1xuICAgIH1cbiAgICByZXR1cm4gc3FsO1xuICB9XG5cbiAgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeVNlYXJjaDxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VhcmNoOiBRdWVyeTxFPiA9IHtcbiAgICAgIC4uLnEsXG4gICAgfTtcbiAgICBkZWxldGUgc2VhcmNoLiRzb3J0O1xuICAgIGNvbnN0IHByb2plY3QgPSBbcmF3KCdDT1VOVCgqKScsICdjb3VudCcpXSBzYXRpc2ZpZXMgUXVlcnlQcm9qZWN0PEU+O1xuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMuc2VsZWN0PEU+KGVudGl0eSwgcHJvamVjdCk7XG4gICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLnNlYXJjaChlbnRpdHksIHNlYXJjaCwgb3B0cyk7XG4gICAgcmV0dXJuIHNlbGVjdCArIGNyaXRlcmlhO1xuICB9XG5cbiAgZmluZDxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5PEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLnNlbGVjdChlbnRpdHksIHEuJHByb2plY3QsIG9wdHMpO1xuICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5zZWFyY2goZW50aXR5LCBxLCBvcHRzKTtcbiAgICByZXR1cm4gc2VsZWN0ICsgY3JpdGVyaWE7XG4gIH1cblxuICBpbnNlcnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFIHwgRVtdKTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHJlY29yZHMgPSBnZXRQZXJzaXN0YWJsZXMobWV0YSwgcGF5bG9hZCwgJ29uSW5zZXJ0Jyk7XG4gICAgY29uc3Qga2V5cyA9IGdldEtleXMocmVjb3Jkc1swXSk7XG4gICAgY29uc3QgY29sdW1ucyA9IGtleXMubWFwKChrZXkpID0+IHRoaXMuZXNjYXBlSWQobWV0YS5maWVsZHNba2V5XS5uYW1lKSk7XG4gICAgY29uc3QgdmFsdWVzID0gcmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4ga2V5cy5tYXAoKGtleSkgPT4gdGhpcy5lc2NhcGUocmVjb3JkW2tleV0pKS5qb2luKCcsICcpKS5qb2luKCcpLCAoJyk7XG4gICAgcmV0dXJuIGBJTlNFUlQgSU5UTyAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0gKCR7Y29sdW1ucy5qb2luKCcsICcpfSkgVkFMVUVTICgke3ZhbHVlc30pYDtcbiAgfVxuXG4gIHVwZGF0ZTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFLCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHJlY29yZCA9IGdldFBlcnNpc3RhYmxlKG1ldGEsIHBheWxvYWQsICdvblVwZGF0ZScpO1xuICAgIGNvbnN0IGtleXMgPSBnZXRLZXlzKHJlY29yZCk7XG4gICAgY29uc3QgZW50cmllcyA9IGtleXMubWFwKChrZXkpID0+IGAke3RoaXMuZXNjYXBlSWQoa2V5KX0gPSAke3RoaXMuZXNjYXBlKHBheWxvYWRba2V5XSl9YCkuam9pbignLCAnKTtcbiAgICBjb25zdCBjcml0ZXJpYSA9IHRoaXMuc2VhcmNoKGVudGl0eSwgcSwgb3B0cyk7XG4gICAgcmV0dXJuIGBVUERBVEUgJHt0aGlzLmVzY2FwZUlkKG1ldGEubmFtZSl9IFNFVCAke2VudHJpZXN9JHtjcml0ZXJpYX1gO1xuICB9XG5cbiAgZGVsZXRlPEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnlTZWFyY2g8RT4sIG9wdHM6IFF1ZXJ5T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuXG4gICAgaWYgKG9wdHMuc29mdERlbGV0ZSB8fCBvcHRzLnNvZnREZWxldGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKG1ldGEuc29mdERlbGV0ZSkge1xuICAgICAgICBjb25zdCBjcml0ZXJpYSA9IHRoaXMuc2VhcmNoKGVudGl0eSwgcSwgb3B0cyk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZ2V0RmllbGRDYWxsYmFja1ZhbHVlKG1ldGEuZmllbGRzW21ldGEuc29mdERlbGV0ZV0ub25EZWxldGUpO1xuICAgICAgICByZXR1cm4gYFVQREFURSAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0gU0VUICR7dGhpcy5lc2NhcGVJZChtZXRhLnNvZnREZWxldGUpfSA9ICR7dGhpcy5lc2NhcGUoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICl9JHtjcml0ZXJpYX1gO1xuICAgICAgfSBlbHNlIGlmIChvcHRzLnNvZnREZWxldGUpIHtcbiAgICAgICAgdGhyb3cgVHlwZUVycm9yKGAnJHttZXRhLm5hbWV9JyBoYXMgbm90IGVuYWJsZWQgJ3NvZnREZWxldGUnYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLnNlYXJjaChlbnRpdHksIHEsIG9wdHMpO1xuXG4gICAgcmV0dXJuIGBERUxFVEUgRlJPTSAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0ke2NyaXRlcmlhfWA7XG4gIH1cblxuICBlc2NhcGVJZCh2YWw6IHN0cmluZywgZm9yYmlkUXVhbGlmaWVkPzogYm9vbGVhbiwgYWRkRG90PzogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgaWYgKCF2YWwpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICBpZiAoIWZvcmJpZFF1YWxpZmllZCAmJiB2YWwuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgcmV0dXJuIHZhbFxuICAgICAgICAuc3BsaXQoJy4nKVxuICAgICAgICAubWFwKChpdCkgPT4gdGhpcy5lc2NhcGVJZChpdCkpXG4gICAgICAgIC5qb2luKCcuJyk7XG4gICAgfVxuXG4gICAgLy8gc291cmNlZCBmcm9tICdlc2NhcGVJZCcgZnVuY3Rpb24gaGVyZSBodHRwczovL2dpdGh1Yi5jb20vbXlzcWxqcy9zcWxzdHJpbmcvYmxvYi9tYXN0ZXIvbGliL1NxbFN0cmluZy5qc1xuICAgIGNvbnN0IGVzY2FwZWQgPVxuICAgICAgdGhpcy5lc2NhcGVJZENoYXIgKyB2YWwucmVwbGFjZSh0aGlzLmVzY2FwZUlkUmVnZXgsIHRoaXMuZXNjYXBlSWRDaGFyICsgdGhpcy5lc2NhcGVJZENoYXIpICsgdGhpcy5lc2NhcGVJZENoYXI7XG5cbiAgICBjb25zdCBzdWZmaXggPSBhZGREb3QgPyAnLicgOiAnJztcblxuICAgIHJldHVybiBlc2NhcGVkICsgc3VmZml4O1xuICB9XG5cbiAgYWJzdHJhY3QgZXNjYXBlKHZhbHVlOiBhbnkpOiBTY2FsYXI7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxEaWFsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2RpYWxlY3QvYWJzdHJhY3RTcWxEaWFsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFtQkwsUUFBUSxHQUdULE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUNMLGNBQWMsRUFDZCxzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixPQUFPLEVBQ1AsT0FBTyxFQUNQLFlBQVksRUFDWixVQUFVLEVBQ1YsV0FBVyxFQUNYLEdBQUcsRUFDSCxtQkFBbUIsRUFDbkIscUJBQXFCLEdBQ3RCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE1BQU0sT0FBZ0Isa0JBQWtCO0lBSTNCO0lBQ0E7SUFKRixhQUFhLENBQVM7SUFFL0IsWUFDVyxlQUEwQixHQUFHLEVBQzdCLDBCQUFrQyxtQkFBbUI7UUFEckQsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBOEI7UUFFOUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxNQUFNLENBQUksTUFBZSxFQUFFLElBQWMsRUFBRSxFQUFFLE9BQXFCLEVBQUU7UUFDbEUsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ25ILElBQUksR0FBRyxFQUFFLEdB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QUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUVqSCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBRWpDLE9BQU8sT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQixDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBRdWVyeUZpbHRlcixcbiAgU2NhbGFyLFxuICBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXAsXG4gIFF1ZXJ5U29ydCxcbiAgUXVlcnlQYWdlcixcbiAgUXVlcnlUZXh0U2VhcmNoT3B0aW9ucyxcbiAgRmllbGRLZXksXG4gIFF1ZXJ5UHJvamVjdCxcbiAgVHlwZSxcbiAgUXVlcnlQcm9qZWN0QXJyYXksXG4gIFF1ZXJ5T3B0aW9ucyxcbiAgUXVlcnlEaWFsZWN0LFxuICBRdWVyeUZpbHRlck9wdGlvbnMsXG4gIFF1ZXJ5Q29tcGFyaXNvbk9wdGlvbnMsXG4gIFF1ZXJ5RmlsdGVyTWFwLFxuICBRdWVyeVByb2plY3RPcHRpb25zLFxuICBRdWVyeVNvcnREaXJlY3Rpb24sXG4gIFF1ZXJ5RmlsdGVyQXJyYXksXG4gIFF1ZXJ5UmF3LFxuICBRdWVyeVNlYXJjaCxcbiAgUXVlcnksXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHtcbiAgZ2V0UGVyc2lzdGFibGUsXG4gIGdldFByb2plY3RSZWxhdGlvbktleXMsXG4gIGdldFBlcnNpc3RhYmxlcyxcbiAgaXNQcm9qZWN0aW5nUmVsYXRpb25zLFxuICBnZXRLZXlzLFxuICBoYXNLZXlzLFxuICBidWlsZFNvcnRNYXAsXG4gIGZsYXRPYmplY3QsXG4gIGdldFJhd1ZhbHVlLFxuICByYXcsXG4gIGdldFF1ZXJ5RmlsdGVyQXNNYXAsXG4gIGdldEZpZWxkQ2FsbGJhY2tWYWx1ZSxcbn0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcyc7XG5cbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvaW5kZXguanMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTcWxEaWFsZWN0IGltcGxlbWVudHMgUXVlcnlEaWFsZWN0IHtcbiAgcmVhZG9ubHkgZXNjYXBlSWRSZWdleDogUmVnRXhwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlYWRvbmx5IGVzY2FwZUlkQ2hhcjogJ2AnIHwgJ1wiJyA9ICdgJyxcbiAgICByZWFkb25seSBiZWdpblRyYW5zYWN0aW9uQ29tbWFuZDogc3RyaW5nID0gJ1NUQVJUIFRSQU5TQUNUSU9OJyxcbiAgKSB7XG4gICAgdGhpcy5lc2NhcGVJZFJlZ2V4ID0gUmVnRXhwKGVzY2FwZUlkQ2hhciwgJ2cnKTtcbiAgfVxuXG4gIHNlYXJjaDxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5PEU+ID0ge30sIG9wdHM6IFF1ZXJ5T3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHByZWZpeCA9IG9wdHMucHJlZml4ID8/IChvcHRzLmF1dG9QcmVmaXggfHwgaXNQcm9qZWN0aW5nUmVsYXRpb25zKG1ldGEsIHEuJHByb2plY3QpKSA/IG1ldGEubmFtZSA6IHVuZGVmaW5lZDtcbiAgICBvcHRzID0geyAuLi5vcHRzLCBwcmVmaXggfTtcbiAgICBjb25zdCB3aGVyZSA9IHRoaXMud2hlcmU8RT4oZW50aXR5LCBxLiRmaWx0ZXIsIG9wdHMpO1xuICAgIGNvbnN0IHNvcnQgPSB0aGlzLnNvcnQ8RT4oZW50aXR5LCBxLiRzb3J0LCBvcHRzKTtcbiAgICBjb25zdCBwYWdlciA9IHRoaXMucGFnZXIocSk7XG4gICAgcmV0dXJuIHdoZXJlICsgc29ydCArIHBhZ2VyO1xuICB9XG5cbiAgcHJvamVjdEZpZWxkczxFPihlbnRpdHk6IFR5cGU8RT4sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPiwgb3B0czogUXVlcnlQcm9qZWN0T3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBwcmVmaXggPSBvcHRzLnByZWZpeCA/IG9wdHMucHJlZml4ICsgJy4nIDogJyc7XG4gICAgY29uc3QgZXNjYXBlZFByZWZpeCA9IHRoaXMuZXNjYXBlSWQob3B0cy5wcmVmaXgsIHRydWUsIHRydWUpO1xuXG4gICAgbGV0IHByb2plY3RBcnI6IFF1ZXJ5UHJvamVjdEFycmF5PEU+O1xuXG4gICAgaWYgKHByb2plY3QpIHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHByb2plY3QpKSB7XG4gICAgICAgIHByb2plY3RBcnIgPSBwcm9qZWN0O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcHJvamVjdFBvc2l0aXZlID0gZ2V0S2V5cyhwcm9qZWN0KS5maWx0ZXIoKGl0KSA9PiBwcm9qZWN0W2l0XSkgYXMgRmllbGRLZXk8RT5bXTtcbiAgICAgICAgcHJvamVjdEFyciA9IHByb2plY3RQb3NpdGl2ZS5sZW5ndGhcbiAgICAgICAgICA/IHByb2plY3RQb3NpdGl2ZVxuICAgICAgICAgIDogKGdldEtleXMobWV0YS5maWVsZHMpLmZpbHRlcigoaXQpID0+ICEoaXQgaW4gcHJvamVjdCkpIGFzIEZpZWxkS2V5PEU+W10pO1xuICAgICAgfVxuICAgICAgcHJvamVjdEFyciA9IHByb2plY3RBcnIuZmlsdGVyKChpdCkgPT4gaXQgaW5zdGFuY2VvZiBRdWVyeVJhdyB8fCBpdCBpbiBtZXRhLmZpZWxkcyk7XG4gICAgICBpZiAob3B0cy5wcmVmaXggJiYgIXByb2plY3RBcnIuaW5jbHVkZXMobWV0YS5pZCkpIHtcbiAgICAgICAgcHJvamVjdEFyciA9IFttZXRhLmlkLCAuLi5wcm9qZWN0QXJyXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcHJvamVjdEFyciA9IGdldEtleXMobWV0YS5maWVsZHMpIGFzIEZpZWxkS2V5PEU+W107XG4gICAgfVxuXG4gICAgcmV0dXJuIHByb2plY3RBcnJcbiAgICAgIC5tYXAoKGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5IGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICAgICAgICByZXR1cm4gZ2V0UmF3VmFsdWUoe1xuICAgICAgICAgICAgdmFsdWU6IGtleSxcbiAgICAgICAgICAgIGRpYWxlY3Q6IHRoaXMsXG4gICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICBlc2NhcGVkUHJlZml4LFxuICAgICAgICAgICAgYXV0b1ByZWZpeEFsaWFzOiBvcHRzLmF1dG9QcmVmaXhBbGlhcyxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGZpZWxkID0gbWV0YS5maWVsZHNba2V5IGFzIEZpZWxkS2V5PEU+XTtcblxuICAgICAgICBpZiAoZmllbGQudmlydHVhbCkge1xuICAgICAgICAgIHJldHVybiBnZXRSYXdWYWx1ZSh7XG4gICAgICAgICAgICB2YWx1ZTogcmF3KGZpZWxkLnZpcnR1YWwudmFsdWUsIGtleSksXG4gICAgICAgICAgICBkaWFsZWN0OiB0aGlzLFxuICAgICAgICAgICAgcHJlZml4LFxuICAgICAgICAgICAgZXNjYXBlZFByZWZpeCxcbiAgICAgICAgICAgIGF1dG9QcmVmaXhBbGlhczogb3B0cy5hdXRvUHJlZml4QWxpYXMsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBmaWVsZFBhdGggPSBgJHtlc2NhcGVkUHJlZml4fSR7dGhpcy5lc2NhcGVJZChmaWVsZC5uYW1lKX1gO1xuXG4gICAgICAgIHJldHVybiAhb3B0cy5hdXRvUHJlZml4QWxpYXMgJiYgZmllbGQubmFtZSA9PT0ga2V5XG4gICAgICAgICAgPyBmaWVsZFBhdGhcbiAgICAgICAgICA6IGAke2ZpZWxkUGF0aH0gJHt0aGlzLmVzY2FwZUlkKChwcmVmaXggKyBrZXkpIGFzIEZpZWxkS2V5PEU+LCB0cnVlKX1gO1xuICAgICAgfSlcbiAgICAgIC5qb2luKCcsICcpO1xuICB9XG5cbiAgcHJvamVjdFJlbGF0aW9uczxFPihcbiAgICBlbnRpdHk6IFR5cGU8RT4sXG4gICAgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+ID0ge30sXG4gICAgeyBwcmVmaXggfTogeyBwcmVmaXg/OiBzdHJpbmcgfSA9IHt9LFxuICApOiB7IGZpZWxkczogc3RyaW5nOyB0YWJsZXM6IHN0cmluZyB9IHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHJlbGF0aW9ucyA9IGdldFByb2plY3RSZWxhdGlvbktleXMobWV0YSwgcHJvamVjdCk7XG4gICAgY29uc3QgaXNQcm9qZWN0QXJyYXkgPSBBcnJheS5pc0FycmF5KHByb2plY3QpO1xuICAgIGxldCBmaWVsZHMgPSAnJztcbiAgICBsZXQgdGFibGVzID0gJyc7XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiByZWxhdGlvbnMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1trZXldO1xuXG4gICAgICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJzFtJyB8fCByZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICAgIC8vICcxbScgYW5kICdtbScgc2hvdWxkIGJlIHJlc29sdmVkIGluIGEgaGlnaGVyIGxheWVyIGJlY2F1c2UgdGhleSB3aWxsIG5lZWQgbXVsdGlwbGUgcXVlcmllc1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgam9pblJlbEFsaWFzID0gcHJlZml4ID8gcHJlZml4ICsgJy4nICsga2V5IDoga2V5O1xuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IHJlbFByb2plY3QgPSBwcm9qZWN0W2tleSBhcyBzdHJpbmddO1xuICAgICAgY29uc3QgcmVsUXVlcnkgPSBpc1Byb2plY3RBcnJheSA/IHt9IDogQXJyYXkuaXNBcnJheShyZWxQcm9qZWN0KSA/IHsgJHByb2plY3Q6IHJlbFByb2plY3QgfSA6IHJlbFByb2plY3Q7XG5cbiAgICAgIGNvbnN0IHJlbENvbHVtbnMgPSB0aGlzLnByb2plY3RGaWVsZHMocmVsRW50aXR5LCByZWxRdWVyeS4kcHJvamVjdCwge1xuICAgICAgICBwcmVmaXg6IGpvaW5SZWxBbGlhcyxcbiAgICAgICAgYXV0b1ByZWZpeEFsaWFzOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIGZpZWxkcyArPSAnLCAnICsgcmVsQ29sdW1ucztcblxuICAgICAgY29uc3QgeyBmaWVsZHM6IHN1YkNvbHVtbnMsIHRhYmxlczogc3ViVGFibGVzIH0gPSB0aGlzLnByb2plY3RSZWxhdGlvbnMocmVsRW50aXR5LCByZWxRdWVyeS4kcHJvamVjdCwge1xuICAgICAgICBwcmVmaXg6IGpvaW5SZWxBbGlhcyxcbiAgICAgIH0pO1xuXG4gICAgICBmaWVsZHMgKz0gc3ViQ29sdW1ucztcblxuICAgICAgY29uc3QgcmVsTWV0YSA9IGdldE1ldGEocmVsRW50aXR5KTtcbiAgICAgIGNvbnN0IHJlbEVudGl0eU5hbWUgPSB0aGlzLmVzY2FwZUlkKHJlbE1ldGEubmFtZSk7XG4gICAgICBjb25zdCByZWxQYXRoID0gcHJlZml4ID8gdGhpcy5lc2NhcGVJZChwcmVmaXgsIHRydWUpIDogdGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpO1xuICAgICAgY29uc3Qgam9pblR5cGUgPSByZWxRdWVyeS4kcmVxdWlyZWQgPyAnSU5ORVInIDogJ0xFRlQnO1xuICAgICAgY29uc3Qgam9pbkFsaWFzID0gdGhpcy5lc2NhcGVJZChqb2luUmVsQWxpYXMsIHRydWUpO1xuXG4gICAgICB0YWJsZXMgKz0gYCAke2pvaW5UeXBlfSBKT0lOICR7cmVsRW50aXR5TmFtZX0gJHtqb2luQWxpYXN9IE9OIGA7XG4gICAgICB0YWJsZXMgKz0gcmVsT3B0cy5yZWZlcmVuY2VzXG4gICAgICAgIC5tYXAoKGl0KSA9PiBgJHtqb2luQWxpYXN9LiR7dGhpcy5lc2NhcGVJZChpdC5mb3JlaWduKX0gPSAke3JlbFBhdGh9LiR7dGhpcy5lc2NhcGVJZChpdC5sb2NhbCl9YClcbiAgICAgICAgLmpvaW4oJyBBTkQgJyk7XG5cbiAgICAgIGlmIChyZWxRdWVyeS4kZmlsdGVyKSB7XG4gICAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMud2hlcmUocmVsRW50aXR5LCByZWxRdWVyeS4kZmlsdGVyLCB7IHByZWZpeDoga2V5LCBjbGF1c2U6IGZhbHNlIH0pO1xuICAgICAgICB0YWJsZXMgKz0gYCBBTkQgJHtmaWx0ZXJ9YDtcbiAgICAgIH1cblxuICAgICAgdGFibGVzICs9IHN1YlRhYmxlcztcbiAgICB9XG5cbiAgICByZXR1cm4geyBmaWVsZHMsIHRhYmxlcyB9O1xuICB9XG5cbiAgc2VsZWN0PEU+KGVudGl0eTogVHlwZTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+LCBvcHRzOiBRdWVyeU9wdGlvbnMgPSB7fSk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBwcmVmaXggPSBvcHRzLnByZWZpeCA/PyAob3B0cy5hdXRvUHJlZml4IHx8IGlzUHJvamVjdGluZ1JlbGF0aW9ucyhtZXRhLCBwcm9qZWN0KSkgPyBtZXRhLm5hbWUgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBmaWVsZHMgPSB0aGlzLnByb2plY3RGaWVsZHMoZW50aXR5LCBwcm9qZWN0LCB7IHByZWZpeCB9KTtcbiAgICBjb25zdCB7IGZpZWxkczogcmVsYXRpb25GaWVsZHMsIHRhYmxlcyB9ID0gdGhpcy5wcm9qZWN0UmVsYXRpb25zKGVudGl0eSwgcHJvamVjdCk7XG5cbiAgICByZXR1cm4gYFNFTEVDVCAke2ZpZWxkc30ke3JlbGF0aW9uRmllbGRzfSBGUk9NICR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSR7dGFibGVzfWA7XG4gIH1cblxuICB3aGVyZTxFPihlbnRpdHk6IFR5cGU8RT4sIGZpbHRlcjogUXVlcnlGaWx0ZXI8RT4gPSB7fSwgb3B0czogUXVlcnlGaWx0ZXJPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHsgdXNlUHJlY2VkZW5jZSwgY2xhdXNlID0gJ1dIRVJFJywgc29mdERlbGV0ZSB9ID0gb3B0cztcblxuICAgIGZpbHRlciA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgZmlsdGVyKTtcblxuICAgIGlmIChtZXRhLnNvZnREZWxldGUgJiYgKHNvZnREZWxldGUgfHwgc29mdERlbGV0ZSA9PT0gdW5kZWZpbmVkKSAmJiAhZmlsdGVyW21ldGEuc29mdERlbGV0ZSBhcyBzdHJpbmddKSB7XG4gICAgICBmaWx0ZXJbbWV0YS5zb2Z0RGVsZXRlIGFzIHN0cmluZ10gPSBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGVudHJpZXMgPSBPYmplY3QuZW50cmllcyhmaWx0ZXIpO1xuXG4gICAgaWYgKCFlbnRyaWVzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGNvbnN0IG9wdGlvbnMgPSB7IC4uLm9wdHMsIHVzZVByZWNlZGVuY2U6IGVudHJpZXMubGVuZ3RoID4gMSB9O1xuXG4gICAgbGV0IHNxbCA9IGVudHJpZXNcbiAgICAgIC5tYXAoKFtrZXksIHZhbF0pID0+IHRoaXMuY29tcGFyZShlbnRpdHksIGtleSBhcyBrZXlvZiBRdWVyeUZpbHRlck1hcDxFPiwgdmFsIGFzIGFueSwgb3B0aW9ucykpXG4gICAgICAuam9pbihgIEFORCBgKTtcblxuICAgIGlmICh1c2VQcmVjZWRlbmNlKSB7XG4gICAgICBzcWwgPSBgKCR7c3FsfSlgO1xuICAgIH1cblxuICAgIHJldHVybiBjbGF1c2UgPyBgICR7Y2xhdXNlfSAke3NxbH1gIDogc3FsO1xuICB9XG5cbiAgY29tcGFyZTxFLCBLIGV4dGVuZHMga2V5b2YgUXVlcnlGaWx0ZXJNYXA8RT4+KFxuICAgIGVudGl0eTogVHlwZTxFPixcbiAgICBrZXk6IEssXG4gICAgdmFsOiBRdWVyeUZpbHRlck1hcDxFPltLXSxcbiAgICBvcHRzOiBRdWVyeUNvbXBhcmlzb25PcHRpb25zID0ge30sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcblxuICAgIGlmICh2YWwgaW5zdGFuY2VvZiBRdWVyeVJhdykge1xuICAgICAgaWYgKGtleSA9PT0gJyRleGlzdHMnIHx8IGtleSA9PT0gJyRuZXhpc3RzJykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHZhbCBhcyBRdWVyeVJhdztcbiAgICAgICAgY29uc3QgcXVlcnkgPSBnZXRSYXdWYWx1ZSh7XG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgZGlhbGVjdDogdGhpcyxcbiAgICAgICAgICBwcmVmaXg6IG1ldGEubmFtZSxcbiAgICAgICAgICBlc2NhcGVkUHJlZml4OiB0aGlzLmVzY2FwZUlkKG1ldGEubmFtZSwgZmFsc2UsIHRydWUpLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGAke2tleSA9PT0gJyRleGlzdHMnID8gJ0VYSVNUUycgOiAnTk9UIEVYSVNUUyd9ICgke3F1ZXJ5fSlgO1xuICAgICAgfVxuICAgICAgY29uc3QgY29tcGFyaXNvbktleSA9IHRoaXMuZ2V0Q29tcGFyaXNvbktleShlbnRpdHksIGtleSBhcyBGaWVsZEtleTxFPiwgb3B0cyk7XG4gICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gPSAke3ZhbC52YWx1ZX1gO1xuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICckdGV4dCcpIHtcbiAgICAgIGNvbnN0IHNlYXJjaCA9IHZhbCBhcyBRdWVyeVRleHRTZWFyY2hPcHRpb25zPEU+O1xuICAgICAgY29uc3QgZmllbGRzID0gc2VhcmNoLiRmaWVsZHMubWFwKChmaWVsZCkgPT4gdGhpcy5lc2NhcGVJZChtZXRhLmZpZWxkc1tmaWVsZF0ubmFtZSkpO1xuICAgICAgcmV0dXJuIGBNQVRDSCgke2ZpZWxkcy5qb2luKCcsICcpfSkgQUdBSU5TVCgke3RoaXMuZXNjYXBlKHNlYXJjaC4kdmFsdWUpfSlgO1xuICAgIH1cblxuICAgIGlmIChrZXkgPT09ICckYW5kJyB8fCBrZXkgPT09ICckb3InIHx8IGtleSA9PT0gJyRub3QnIHx8IGtleSA9PT0gJyRub3InKSB7XG4gICAgICBjb25zdCBuZWdhdGVPcGVyYXRvck1hcCA9IHtcbiAgICAgICAgJG5vdDogJyRhbmQnLFxuICAgICAgICAkbm9yOiAnJG9yJyxcbiAgICAgIH0gYXMgY29uc3Q7XG5cbiAgICAgIGNvbnN0IG9wOiAnJGFuZCcgfCAnJG9yJyA9IG5lZ2F0ZU9wZXJhdG9yTWFwW2tleSBhcyBzdHJpbmddID8/IGtleTtcbiAgICAgIGNvbnN0IG5lZ2F0ZSA9IGtleSBpbiBuZWdhdGVPcGVyYXRvck1hcCA/ICdOT1QgJyA6ICcnO1xuXG4gICAgICBjb25zdCB2YWx1ZXMgPSB2YWwgYXMgUXVlcnlGaWx0ZXJBcnJheTxFPjtcbiAgICAgIGNvbnN0IGhhc01hbnlJdGVtcyA9IHZhbHVlcy5sZW5ndGggPiAxO1xuICAgICAgY29uc3QgbG9naWNhbENvbXBhcmlzb24gPSB2YWx1ZXNcbiAgICAgICAgLm1hcCgoZmlsdGVyRW50cnkpID0+IHtcbiAgICAgICAgICBpZiAoZmlsdGVyRW50cnkgaW5zdGFuY2VvZiBRdWVyeVJhdykge1xuICAgICAgICAgICAgcmV0dXJuIGdldFJhd1ZhbHVlKHtcbiAgICAgICAgICAgICAgdmFsdWU6IGZpbHRlckVudHJ5LFxuICAgICAgICAgICAgICBkaWFsZWN0OiB0aGlzLFxuICAgICAgICAgICAgICBwcmVmaXg6IG9wdHMucHJlZml4LFxuICAgICAgICAgICAgICBlc2NhcGVkUHJlZml4OiB0aGlzLmVzY2FwZUlkKG9wdHMucHJlZml4LCB0cnVlLCB0cnVlKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdGhpcy53aGVyZShlbnRpdHksIGZpbHRlckVudHJ5LCB7XG4gICAgICAgICAgICBwcmVmaXg6IG9wdHMucHJlZml4LFxuICAgICAgICAgICAgdXNlUHJlY2VkZW5jZTogaGFzTWFueUl0ZW1zICYmICFBcnJheS5pc0FycmF5KGZpbHRlckVudHJ5KSAmJiBnZXRLZXlzKGZpbHRlckVudHJ5KS5sZW5ndGggPiAxLFxuICAgICAgICAgICAgY2xhdXNlOiBmYWxzZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4ob3AgPT09ICckb3InID8gJyBPUiAnIDogJyBBTkQgJyk7XG5cbiAgICAgIHJldHVybiAob3B0cy51c2VQcmVjZWRlbmNlIHx8IG5lZ2F0ZSkgJiYgaGFzTWFueUl0ZW1zXG4gICAgICAgID8gYCR7bmVnYXRlfSgke2xvZ2ljYWxDb21wYXJpc29ufSlgXG4gICAgICAgIDogYCR7bmVnYXRlfSR7bG9naWNhbENvbXBhcmlzb259YDtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodmFsKSA/IHsgJGluOiB2YWwgfSA6IHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbCAhPT0gbnVsbCA/IHZhbCA6IHsgJGVxOiB2YWwgfTtcbiAgICBjb25zdCBvcGVyYXRvcnMgPSBnZXRLZXlzKHZhbHVlKSBhcyAoa2V5b2YgUXVlcnlGaWx0ZXJGaWVsZE9wZXJhdG9yTWFwPEU+KVtdO1xuICAgIGNvbnN0IGNvbXBhcmlzb25zID0gb3BlcmF0b3JzXG4gICAgICAubWFwKChvcCkgPT4gdGhpcy5jb21wYXJlRmllbGRPcGVyYXRvcihlbnRpdHksIGtleSBhcyBGaWVsZEtleTxFPiwgb3AsIHZhbHVlW29wXSwgb3B0cykpXG4gICAgICAuam9pbignIEFORCAnKTtcblxuICAgIHJldHVybiBvcGVyYXRvcnMubGVuZ3RoID4gMSA/IGAoJHtjb21wYXJpc29uc30pYCA6IGNvbXBhcmlzb25zO1xuICB9XG5cbiAgY29tcGFyZUZpZWxkT3BlcmF0b3I8RSwgSyBleHRlbmRzIGtleW9mIFF1ZXJ5RmlsdGVyRmllbGRPcGVyYXRvck1hcDxFPj4oXG4gICAgZW50aXR5OiBUeXBlPEU+LFxuICAgIGtleTogRmllbGRLZXk8RT4sXG4gICAgb3A6IEssXG4gICAgdmFsOiBRdWVyeUZpbHRlckZpZWxkT3BlcmF0b3JNYXA8RT5bS10sXG4gICAgb3B0czogUXVlcnlPcHRpb25zID0ge30sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgY29tcGFyaXNvbktleSA9IHRoaXMuZ2V0Q29tcGFyaXNvbktleShlbnRpdHksIGtleSwgb3B0cyk7XG4gICAgc3dpdGNoIChvcCkge1xuICAgICAgY2FzZSAnJGVxJzpcbiAgICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCA/IGAke2NvbXBhcmlzb25LZXl9IElTIE5VTExgIDogYCR7Y29tcGFyaXNvbktleX0gPSAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGNhc2UgJyRuZSc6XG4gICAgICAgIHJldHVybiB2YWwgPT09IG51bGwgPyBgJHtjb21wYXJpc29uS2V5fSBJUyBOT1QgTlVMTGAgOiBgJHtjb21wYXJpc29uS2V5fSA8PiAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGNhc2UgJyRub3QnOlxuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlKGVudGl0eSwgJyRub3QnLCBbeyBba2V5XTogdmFsIH1dIGFzIGFueSwgb3B0cyk7XG4gICAgICBjYXNlICckZ3QnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gPiAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGNhc2UgJyRndGUnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gPj0gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckbHQnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gPCAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGNhc2UgJyRsdGUnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gPD0gJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBjYXNlICckc3RhcnRzV2l0aCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBMSUtFICR7dGhpcy5lc2NhcGUoYCR7dmFsfSVgKX1gO1xuICAgICAgY2FzZSAnJGlzdGFydHNXaXRoJzpcbiAgICAgICAgcmV0dXJuIGBMT1dFUigke2NvbXBhcmlzb25LZXl9KSBMSUtFICR7dGhpcy5lc2NhcGUoKHZhbCBhcyBzdHJpbmcpLnRvTG93ZXJDYXNlKCkgKyAnJScpfWA7XG4gICAgICBjYXNlICckZW5kc1dpdGgnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gTElLRSAke3RoaXMuZXNjYXBlKGAlJHt2YWx9YCl9YDtcbiAgICAgIGNhc2UgJyRpZW5kc1dpdGgnOlxuICAgICAgICByZXR1cm4gYExPV0VSKCR7Y29tcGFyaXNvbktleX0pIExJS0UgJHt0aGlzLmVzY2FwZSgnJScgKyAodmFsIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSl9YDtcbiAgICAgIGNhc2UgJyRpbmNsdWRlcyc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBMSUtFICR7dGhpcy5lc2NhcGUoYCUke3ZhbH0lYCl9YDtcbiAgICAgIGNhc2UgJyRpaW5jbHVkZXMnOlxuICAgICAgICByZXR1cm4gYExPV0VSKCR7Y29tcGFyaXNvbktleX0pIExJS0UgJHt0aGlzLmVzY2FwZSgnJScgKyAodmFsIGFzIHN0cmluZykudG9Mb3dlckNhc2UoKSArICclJyl9YDtcbiAgICAgIGNhc2UgJyRpbGlrZSc6XG4gICAgICAgIHJldHVybiBgTE9XRVIoJHtjb21wYXJpc29uS2V5fSkgTElLRSAke3RoaXMuZXNjYXBlKCh2YWwgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpKX1gO1xuICAgICAgY2FzZSAnJGxpa2UnOlxuICAgICAgICByZXR1cm4gYCR7Y29tcGFyaXNvbktleX0gTElLRSAke3RoaXMuZXNjYXBlKHZhbCl9YDtcbiAgICAgIGNhc2UgJyRpbic6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBJTiAoJHt0aGlzLmVzY2FwZSh2YWwpfSlgO1xuICAgICAgY2FzZSAnJG5pbic6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBOT1QgSU4gKCR7dGhpcy5lc2NhcGUodmFsKX0pYDtcbiAgICAgIGNhc2UgJyRyZWdleCc6XG4gICAgICAgIHJldHVybiBgJHtjb21wYXJpc29uS2V5fSBSRUdFWFAgJHt0aGlzLmVzY2FwZSh2YWwpfWA7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBUeXBlRXJyb3IoYHVua25vd24gb3BlcmF0b3I6ICR7b3B9YCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29tcGFyaXNvbktleTxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogRmllbGRLZXk8RT4sIHsgcHJlZml4IH06IFF1ZXJ5T3B0aW9ucyA9IHt9KTogU2NhbGFyIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGVzY2FwZWRQcmVmaXggPSB0aGlzLmVzY2FwZUlkKHByZWZpeCwgdHJ1ZSwgdHJ1ZSk7XG4gICAgY29uc3QgZmllbGQgPSBtZXRhLmZpZWxkc1trZXldO1xuXG4gICAgaWYgKGZpZWxkPy52aXJ0dWFsKSB7XG4gICAgICByZXR1cm4gZ2V0UmF3VmFsdWUoe1xuICAgICAgICB2YWx1ZTogZmllbGQudmlydHVhbCxcbiAgICAgICAgZGlhbGVjdDogdGhpcyxcbiAgICAgICAgcHJlZml4LFxuICAgICAgICBlc2NhcGVkUHJlZml4LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVzY2FwZWRQcmVmaXggKyB0aGlzLmVzY2FwZUlkKGZpZWxkPy5uYW1lID8/IGtleSk7XG4gIH1cblxuICBzb3J0PEU+KGVudGl0eTogVHlwZTxFPiwgc29ydDogUXVlcnlTb3J0PEU+LCB7IHByZWZpeCB9OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNvcnRNYXAgPSBidWlsZFNvcnRNYXAoc29ydCk7XG4gICAgaWYgKCFoYXNLZXlzKHNvcnRNYXApKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgZmxhdHRlbmVkU29ydCA9IGZsYXRPYmplY3Qoc29ydE1hcCwgcHJlZml4KTtcbiAgICBjb25zdCBkaXJlY3Rpb25NYXAgPSB7IDE6ICcnLCBhc2M6ICcnLCAnLTEnOiAnIERFU0MnLCBkZXNjOiAnIERFU0MnIH0gYXMgY29uc3Q7XG4gICAgY29uc3Qgb3JkZXIgPSBPYmplY3QuZW50cmllcyhmbGF0dGVuZWRTb3J0KVxuICAgICAgLm1hcCgoW2tleSwgc29ydF0pID0+IHtcbiAgICAgICAgY29uc3QgbmFtZSA9IG1ldGEuZmllbGRzW2tleV0/Lm5hbWUgPz8ga2V5O1xuICAgICAgICBjb25zdCBkaXJlY3Rpb24gPSBkaXJlY3Rpb25NYXBbc29ydCBhcyBRdWVyeVNvcnREaXJlY3Rpb25dO1xuICAgICAgICByZXR1cm4gdGhpcy5lc2NhcGVJZChuYW1lKSArIGRpcmVjdGlvbjtcbiAgICAgIH0pXG4gICAgICAuam9pbignLCAnKTtcbiAgICByZXR1cm4gYCBPUkRFUiBCWSAke29yZGVyfWA7XG4gIH1cblxuICBwYWdlcihvcHRzOiBRdWVyeVBhZ2VyKTogc3RyaW5nIHtcbiAgICBsZXQgc3FsID0gJyc7XG4gICAgaWYgKG9wdHMuJGxpbWl0KSB7XG4gICAgICBzcWwgKz0gYCBMSU1JVCAke051bWJlcihvcHRzLiRsaW1pdCl9YDtcbiAgICB9XG4gICAgaWYgKG9wdHMuJHNraXAgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc3FsICs9IGAgT0ZGU0VUICR7TnVtYmVyKG9wdHMuJHNraXApfWA7XG4gICAgfVxuICAgIHJldHVybiBzcWw7XG4gIH1cblxuICBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWFyY2g6IFF1ZXJ5PEU+ID0ge1xuICAgICAgLi4ucSxcbiAgICB9O1xuICAgIGRlbGV0ZSBzZWFyY2guJHNvcnQ7XG4gICAgY29uc3QgcHJvamVjdCA9IFtyYXcoJ0NPVU5UKCopJywgJ2NvdW50JyldIHNhdGlzZmllcyBRdWVyeVByb2plY3Q8RT47XG4gICAgY29uc3Qgc2VsZWN0ID0gdGhpcy5zZWxlY3Q8RT4oZW50aXR5LCBwcm9qZWN0KTtcbiAgICBjb25zdCBjcml0ZXJpYSA9IHRoaXMuc2VhcmNoKGVudGl0eSwgc2VhcmNoLCBvcHRzKTtcbiAgICByZXR1cm4gc2VsZWN0ICsgY3JpdGVyaWE7XG4gIH1cblxuICBmaW5kPEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnk8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMuc2VsZWN0KGVudGl0eSwgcS4kcHJvamVjdCwgb3B0cyk7XG4gICAgY29uc3QgY3JpdGVyaWEgPSB0aGlzLnNlYXJjaChlbnRpdHksIHEsIG9wdHMpO1xuICAgIHJldHVybiBzZWxlY3QgKyBjcml0ZXJpYTtcbiAgfVxuXG4gIGluc2VydDxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUgfCBFW10pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVjb3JkcyA9IGdldFBlcnNpc3RhYmxlcyhtZXRhLCBwYXlsb2FkLCAnb25JbnNlcnQnKTtcbiAgICBjb25zdCBrZXlzID0gZ2V0S2V5cyhyZWNvcmRzWzBdKTtcbiAgICBjb25zdCBjb2x1bW5zID0ga2V5cy5tYXAoKGtleSkgPT4gdGhpcy5lc2NhcGVJZChtZXRhLmZpZWxkc1trZXldLm5hbWUpKTtcbiAgICBjb25zdCB2YWx1ZXMgPSByZWNvcmRzLm1hcCgocmVjb3JkKSA9PiBrZXlzLm1hcCgoa2V5KSA9PiB0aGlzLmVzY2FwZShyZWNvcmRba2V5XSkpLmpvaW4oJywgJykpLmpvaW4oJyksICgnKTtcbiAgICByZXR1cm4gYElOU0VSVCBJTlRPICR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSAoJHtjb2x1bW5zLmpvaW4oJywgJyl9KSBWQUxVRVMgKCR7dmFsdWVzfSlgO1xuICB9XG5cbiAgdXBkYXRlPEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUsIG9wdHM/OiBRdWVyeU9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVjb3JkID0gZ2V0UGVyc2lzdGFibGUobWV0YSwgcGF5bG9hZCwgJ29uVXBkYXRlJyk7XG4gICAgY29uc3Qga2V5cyA9IGdldEtleXMocmVjb3JkKTtcbiAgICBjb25zdCBlbnRyaWVzID0ga2V5cy5tYXAoKGtleSkgPT4gYCR7dGhpcy5lc2NhcGVJZChrZXkpfSA9ICR7dGhpcy5lc2NhcGUocGF5bG9hZFtrZXldKX1gKS5qb2luKCcsICcpO1xuICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5zZWFyY2goZW50aXR5LCBxLCBvcHRzKTtcbiAgICByZXR1cm4gYFVQREFURSAke3RoaXMuZXNjYXBlSWQobWV0YS5uYW1lKX0gU0VUICR7ZW50cmllc30ke2NyaXRlcmlhfWA7XG4gIH1cblxuICBkZWxldGU8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeVNlYXJjaDxFPiwgb3B0czogUXVlcnlPcHRpb25zID0ge30pOiBzdHJpbmcge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG5cbiAgICBpZiAob3B0cy5zb2Z0RGVsZXRlIHx8IG9wdHMuc29mdERlbGV0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAobWV0YS5zb2Z0RGVsZXRlKSB7XG4gICAgICAgIGNvbnN0IGNyaXRlcmlhID0gdGhpcy5zZWFyY2goZW50aXR5LCBxLCBvcHRzKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBnZXRGaWVsZENhbGxiYWNrVmFsdWUobWV0YS5maWVsZHNbbWV0YS5zb2Z0RGVsZXRlXS5vbkRlbGV0ZSk7XG4gICAgICAgIHJldHVybiBgVVBEQVRFICR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSBTRVQgJHt0aGlzLmVzY2FwZUlkKG1ldGEuc29mdERlbGV0ZSl9ID0gJHt0aGlzLmVzY2FwZShcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgKX0ke2NyaXRlcmlhfWA7XG4gICAgICB9IGVsc2UgaWYgKG9wdHMuc29mdERlbGV0ZSkge1xuICAgICAgICB0aHJvdyBUeXBlRXJyb3IoYCcke21ldGEubmFtZX0nIGhhcyBub3QgZW5hYmxlZCAnc29mdERlbGV0ZSdgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBjcml0ZXJpYSA9IHRoaXMuc2VhcmNoKGVudGl0eSwgcSwgb3B0cyk7XG5cbiAgICByZXR1cm4gYERFTEVURSBGUk9NICR7dGhpcy5lc2NhcGVJZChtZXRhLm5hbWUpfSR7Y3JpdGVyaWF9YDtcbiAgfVxuXG4gIGVzY2FwZUlkKHZhbDogc3RyaW5nLCBmb3JiaWRRdWFsaWZpZWQ/OiBib29sZWFuLCBhZGREb3Q/OiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbCkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIGlmICghZm9yYmlkUXVhbGlmaWVkICYmIHZhbC5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gdmFsXG4gICAgICAgIC5zcGxpdCgnLicpXG4gICAgICAgIC5tYXAoKGl0KSA9PiB0aGlzLmVzY2FwZUlkKGl0KSlcbiAgICAgICAgLmpvaW4oJy4nKTtcbiAgICB9XG5cbiAgICAvLyBzb3VyY2VkIGZyb20gJ2VzY2FwZUlkJyBmdW5jdGlvbiBoZXJlIGh0dHBzOi8vZ2l0aHViLmNvbS9teXNxbGpzL3NxbHN0cmluZy9ibG9iL21hc3Rlci9saWIvU3FsU3RyaW5nLmpzXG4gICAgY29uc3QgZXNjYXBlZCA9XG4gICAgICB0aGlzLmVzY2FwZUlkQ2hhciArIHZhbC5yZXBsYWNlKHRoaXMuZXNjYXBlSWRSZWdleCwgdGhpcy5lc2NhcGVJZENoYXIgKyB0aGlzLmVzY2FwZUlkQ2hhcikgKyB0aGlzLmVzY2FwZUlkQ2hhcjtcblxuICAgIGNvbnN0IHN1ZmZpeCA9IGFkZERvdCA/ICcuJyA6ICcnO1xuXG4gICAgcmV0dXJuIGVzY2FwZWQgKyBzdWZmaXg7XG4gIH1cblxuICBhYnN0cmFjdCBlc2NhcGUodmFsdWU6IGFueSk6IFNjYWxhcjtcbn1cbiJdfQ==

@@ -214,2 +214,2 @@ import 'reflect-metadata';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL2RlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQWExQixPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDO0FBQzFCLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDO0FBQ3pDLE1BQU0sS0FBSyxHQUFvQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM1RSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBRXhCLE1BQU0sVUFBVSxXQUFXLENBQUksTUFBZSxFQUFFLEdBQVcsRUFBRSxPQUFxQixFQUFFO0lBQ2xGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtRQUNkLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDcEMsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDMUI7SUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUN0RSxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFJLE1BQWUsRUFBRSxHQUFXLEVBQUUsSUFBa0I7SUFDMUUsTUFBTSxJQUFJLEdBQUcsVUFBVSxD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Q0FDaEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHtcbiAgUmVsYXRpb25PcHRpb25zLFxuICBGaWVsZE9wdGlvbnMsXG4gIEVudGl0eU9wdGlvbnMsXG4gIEVudGl0eU1ldGEsXG4gIFR5cGUsXG4gIFJlbGF0aW9uS2V5TWFwLFxuICBSZWxhdGlvbktleSxcbiAgS2V5LFxuICBGaWVsZEtleSxcbiAgSWRLZXksXG59IGZyb20gJy4uLy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgaGFzS2V5cywgbG93ZXJGaXJzdCwgZ2V0S2V5cywgdXBwZXJGaXJzdCB9IGZyb20gJy4uLy4uL3V0aWwvaW5kZXguanMnO1xuXG5jb25zdCBob2xkZXIgPSBnbG9iYWxUaGlzO1xuY29uc3QgbWV0YUtleSA9ICdudWthay9lbnRpdHkvZGVjb3JhdG9yJztcbmNvbnN0IG1ldGFzOiBNYXA8VHlwZTxhbnk+LCBFbnRpdHlNZXRhPGFueT4+ID0gaG9sZGVyW21ldGFLZXldID8/IG5ldyBNYXAoKTtcbmhvbGRlclttZXRhS2V5XSA9IG1ldGFzO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRmllbGQ8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZywgb3B0czogRmllbGRPcHRpb25zID0ge30pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgaWYgKCFvcHRzLnR5cGUpIHtcbiAgICBjb25zdCB0eXBlID0gaW5mZXJUeXBlKGVudGl0eSwga2V5KTtcbiAgICBvcHRzID0geyAuLi5vcHRzLCB0eXBlIH07XG4gIH1cbiAgbWV0YS5maWVsZHNba2V5XSA9IHsgLi4ubWV0YS5maWVsZHNba2V5XSwgLi4ueyBuYW1lOiBrZXksIC4uLm9wdHMgfSB9O1xuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUlkPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IEZpZWxkT3B0aW9ucyk6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBjb25zdCBpZCA9IGdldElkS2V5KG1ldGEpO1xuICBpZiAoaWQpIHtcbiAgICBjb25zb2xlLmluZm8oYE92ZXJyaWRpbmcgSUQgcHJvcGVydHkgZm9yICcke2VudGl0eS5uYW1lfScgZnJvbSAnJHtpZH0nIHRvICcke2tleX0nYCk7XG4gICAgZGVsZXRlIG1ldGEuZmllbGRzW2lkXTtcbiAgfVxuICByZXR1cm4gZGVmaW5lRmllbGQoZW50aXR5LCBrZXksIHsgLi4ub3B0cywgaXNJZDogdHJ1ZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVJlbGF0aW9uPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBpZiAoIW9wdHMuZW50aXR5KSB7XG4gICAgY29uc3QgaW5mZXJyZWRUeXBlID0gaW5mZXJFbnRpdHlUeXBlKGVudGl0eSwga2V5KTtcbiAgICBvcHRzLmVudGl0eSA9ICgpID0+IGluZmVycmVkVHlwZTtcbiAgfVxuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBtZXRhLnJlbGF0aW9uc1trZXldID0geyAuLi5tZXRhLnJlbGF0aW9uc1trZXldLCAuLi5vcHRzIH07XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRW50aXR5PEU+KGVudGl0eTogVHlwZTxFPiwgb3B0czogRW50aXR5T3B0aW9ucyA9IHt9KTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG5cbiAgaWYgKCFoYXNLZXlzKG1ldGEuZmllbGRzKSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgZmllbGRzYCk7XG4gIH1cblxuICBjb25zdCBvbkRlbGV0ZUtleXMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5maWx0ZXIoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XS5vbkRlbGV0ZSkgYXMgRmllbGRLZXk8RT5bXTtcblxuICBpZiAob25EZWxldGVLZXlzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCB3aXRoICdvbkRlbGV0ZScgYXMgbWF4aW11bWApO1xuICB9XG5cbiAgaWYgKG9wdHMuc29mdERlbGV0ZSkge1xuICAgIGlmICghb25EZWxldGVLZXlzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBvbmUgZmllbGQgd2l0aCAnb25EZWxldGUnIHRvIGVuYWJsZSAnc29mdERlbGV0ZSdgKTtcbiAgICB9XG4gICAgbWV0YS5zb2Z0RGVsZXRlID0gb25EZWxldGVLZXlzWzBdO1xuICB9XG5cbiAgbWV0YS5uYW1lID0gb3B0cy5uYW1lID8/IGVudGl0eS5uYW1lO1xuICBsZXQgcHJvdG86IEZ1bmN0aW9uQ29uc3RydWN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZW50aXR5LnByb3RvdHlwZSk7XG5cbiAgd2hpbGUgKHByb3RvLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICBjb25zdCBwYXJlbnRNZXRhID0gZW5zdXJlTWV0YShwcm90by5jb25zdHJ1Y3RvciBhcyBUeXBlPEU+KTtcbiAgICBleHRlbmRNZXRhKG1ldGEsIHBhcmVudE1ldGEpO1xuICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgfVxuXG4gIGNvbnN0IGlkID0gZ2V0SWRLZXkobWV0YSk7XG4gIGlmICghaWQpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCBkZWNvcmF0ZWQgd2l0aCBASWRgKTtcbiAgfVxuICBtZXRhLmlkID0gaWQ7XG5cbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdGllcygpOiBUeXBlPGFueT5bXSB7XG4gIHJldHVybiBbLi4ubWV0YXMuZW50cmllcygpXS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsXSkgPT4ge1xuICAgIGlmICh2YWwuaWQpIHtcbiAgICAgIGFjYy5wdXNoKGtleSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gZW5zdXJlTWV0YTxFPihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgbGV0IG1ldGEgPSBtZXRhcy5nZXQoZW50aXR5KTtcbiAgaWYgKG1ldGEpIHtcbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuICBtZXRhID0geyBlbnRpdHksIGZpZWxkczoge30sIHJlbGF0aW9uczoge30gfTtcbiAgbWV0YXMuc2V0KGVudGl0eSwgbWV0YSk7XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YTxFPihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IG1ldGFzLmdldChlbnRpdHkpO1xuICBpZiAoIW1ldGEpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgaXMgbm90IGFuIGVudGl0eWApO1xuICB9XG4gIGlmIChtZXRhLnByb2Nlc3NlZCkge1xuICAgIHJldHVybiBtZXRhO1xuICB9XG4gIG1ldGEucHJvY2Vzc2VkID0gdHJ1ZTtcbiAgcmV0dXJuIGZpbGxSZWxhdGlvbnMobWV0YSk7XG59XG5cbmZ1bmN0aW9uIGZpbGxSZWxhdGlvbnM8RT4obWV0YTogRW50aXR5TWV0YTxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBmb3IgKGNvbnN0IHJlbEtleSBpbiBtZXRhLnJlbGF0aW9ucykge1xuICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXkgYXMgUmVsYXRpb25LZXk8RT5dO1xuXG4gICAgaWYgKHJlbE9wdHMucmVmZXJlbmNlcykge1xuICAgICAgLy8gcmVmZXJlbmNlcyB3ZXJlIG1hbnVhbGx5IHNwZWNpZmllZFxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHJlbE9wdHMubWFwcGVkQnkpIHtcbiAgICAgIGZpbGxJbnZlcnNlU2lkZVJlbGF0aW9ucyhyZWxPcHRzKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcblxuICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICBjb25zdCBpZE5hbWUgPSBtZXRhLmZpZWxkc1ttZXRhLmlkXS5uYW1lO1xuICAgICAgY29uc3QgcmVsSWROYW1lID0gcmVsTWV0YS5maWVsZHNbcmVsTWV0YS5pZF0ubmFtZTtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IGxvd2VyRmlyc3QobWV0YS5uYW1lKSArIHVwcGVyRmlyc3QoaWROYW1lKTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGxvd2VyRmlyc3QocmVsTWV0YS5uYW1lKSArIHVwcGVyRmlyc3QocmVsSWROYW1lKTtcbiAgICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFtcbiAgICAgICAgeyBsb2NhbDogc291cmNlLCBmb3JlaWduOiBtZXRhLmlkIH0sXG4gICAgICAgIHsgbG9jYWw6IHRhcmdldCwgZm9yZWlnbjogcmVsTWV0YS5pZCB9LFxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gW3sgbG9jYWw6IGAke3JlbEtleX1JZGAsIGZvcmVpZ246IHJlbE1ldGEuaWQgfV07XG4gICAgfVxuXG4gICAgaWYgKHJlbE9wdHMudGhyb3VnaCkge1xuICAgICAgZmlsbFRocm91Z2hSZWxhdGlvbnMocmVsT3B0cy50aHJvdWdoKCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhO1xufVxuXG5mdW5jdGlvbiBmaWxsSW52ZXJzZVNpZGVSZWxhdGlvbnM8RT4ocmVsT3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogdm9pZCB7XG4gIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG4gIHJlbE9wdHMubWFwcGVkQnkgPSBnZXRNYXBwZWRCeVJlbGF0aW9uS2V5KHJlbE9wdHMpO1xuXG4gIGlmIChyZWxNZXRhLmZpZWxkc1tyZWxPcHRzLm1hcHBlZEJ5IGFzIEZpZWxkS2V5PEU+XSkge1xuICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFt7IGxvY2FsOiByZWxNZXRhLmlkLCBmb3JlaWduOiByZWxPcHRzLm1hcHBlZEJ5IH1dO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG1hcHBlZEJ5UmVsYXRpb24gPSByZWxNZXRhLnJlbGF0aW9uc1tyZWxPcHRzLm1hcHBlZEJ5IGFzIFJlbGF0aW9uS2V5PEU+XTtcblxuICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ20xJyB8fCByZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gbWFwcGVkQnlSZWxhdGlvbi5yZWZlcmVuY2VzLnNsaWNlKCkucmV2ZXJzZSgpO1xuICAgIHJlbE9wdHMudGhyb3VnaCA9IG1hcHBlZEJ5UmVsYXRpb24udGhyb3VnaDtcbiAgICByZXR1cm47XG4gIH1cblxuICByZWxPcHRzLnJlZmVyZW5jZXMgPSBtYXBwZWRCeVJlbGF0aW9uLnJlZmVyZW5jZXMubWFwKCh7IGxvY2FsLCBmb3JlaWduIH0pID0+ICh7XG4gICAgbG9jYWw6IGZvcmVpZ24sXG4gICAgZm9yZWlnbjogbG9jYWwsXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZmlsbFRocm91Z2hSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+KTogdm9pZCB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIG1ldGEucmVsYXRpb25zID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykucmVkdWNlKChyZWxhdGlvbnMsIGtleSkgPT4ge1xuICAgIGNvbnN0IHsgcmVmZXJlbmNlIH0gPSBtZXRhLmZpZWxkc1trZXkgYXMgRmllbGRLZXk8RT5dO1xuICAgIGlmIChyZWZlcmVuY2UpIHtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlZmVyZW5jZSgpO1xuICAgICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcbiAgICAgIGNvbnN0IHJlbEtleSA9IGtleS5zbGljZSgwLCAtcmVsTWV0YS5pZC5sZW5ndGgpO1xuICAgICAgY29uc3QgcmVsT3B0czogUmVsYXRpb25PcHRpb25zID0ge1xuICAgICAgICBlbnRpdHk6IHJlZmVyZW5jZSxcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiBrZXksIGZvcmVpZ246IHJlbE1ldGEuaWQgfV0sXG4gICAgICB9O1xuICAgICAgcmVsYXRpb25zW3JlbEtleV0gPSByZWxPcHRzO1xuICAgIH1cbiAgICByZXR1cm4gcmVsYXRpb25zO1xuICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hcHBlZEJ5UmVsYXRpb25LZXk8RT4ocmVsT3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogS2V5PEU+IHtcbiAgaWYgKHR5cGVvZiByZWxPcHRzLm1hcHBlZEJ5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICBjb25zdCByZWxNZXRhID0gZW5zdXJlTWV0YShyZWxFbnRpdHkpO1xuICAgIGNvbnN0IGtleU1hcCA9IGdldFJlbGF0aW9uS2V5TWFwKHJlbE1ldGEpO1xuICAgIHJldHVybiByZWxPcHRzLm1hcHBlZEJ5KGtleU1hcCk7XG4gIH1cbiAgcmV0dXJuIHJlbE9wdHMubWFwcGVkQnk7XG59XG5cbmZ1bmN0aW9uIGdldFJlbGF0aW9uS2V5TWFwPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBSZWxhdGlvbktleU1hcDxFPiB7XG4gIHJldHVybiBnZXRLZXlzKG1ldGEuZmllbGRzKVxuICAgIC5jb25jYXQoZ2V0S2V5cyhtZXRhLnJlbGF0aW9ucykpXG4gICAgLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGFjY1trZXldID0ga2V5O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBSZWxhdGlvbktleU1hcDxFPik7XG59XG5cbmZ1bmN0aW9uIGdldElkS2V5PEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBJZEtleTxFPiB7XG4gIGNvbnN0IGlkID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykuZmluZCgoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldPy5pc0lkKTtcbiAgcmV0dXJuIGlkIGFzIElkS2V5PEU+O1xufVxuXG5mdW5jdGlvbiBleHRlbmRNZXRhPEU+KHRhcmdldDogRW50aXR5TWV0YTxFPiwgc291cmNlOiBFbnRpdHlNZXRhPEU+KTogdm9pZCB7XG4gIGNvbnN0IHNvdXJjZUZpZWxkcyA9IHsgLi4uc291cmNlLmZpZWxkcyB9O1xuICBjb25zdCB0YXJnZXRJZCA9IGdldElkS2V5KHRhcmdldCk7XG4gIGlmICh0YXJnZXRJZCkge1xuICAgIGNvbnN0IHNvdXJjZUlkID0gZ2V0SWRLZXkoc291cmNlKTtcbiAgICBpZiAoc291cmNlSWQpIHtcbiAgICAgIGRlbGV0ZSBzb3VyY2VGaWVsZHNbc291cmNlSWRdO1xuICAgIH1cbiAgfVxuICB0YXJnZXQuZmllbGRzID0geyAuLi5zb3VyY2VGaWVsZHMsIC4uLnRhcmdldC5maWVsZHMgfTtcbiAgdGFyZ2V0LnJlbGF0aW9ucyA9IHsgLi4uc291cmNlLnJlbGF0aW9ucywgLi4udGFyZ2V0LnJlbGF0aW9ucyB9O1xufVxuXG5mdW5jdGlvbiBpbmZlclR5cGU8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKCdkZXNpZ246dHlwZScsIGVudGl0eS5wcm90b3R5cGUsIGtleSk7XG59XG5cbmZ1bmN0aW9uIGluZmVyRW50aXR5VHlwZTxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgY29uc3QgaW5mZXJyZWRUeXBlID0gaW5mZXJUeXBlKGVudGl0eSwga2V5KTtcbiAgY29uc3QgaXNWYWxpZFR5cGUgPSBpc1ZhbGlkRW50aXR5VHlwZShpbmZlcnJlZFR5cGUpO1xuICBpZiAoIWlzVmFsaWRUeXBlKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0uJHtrZXl9JyB0eXBlIHdhcyBhdXRvLWluZmVycmVkIHdpdGggaW52YWxpZCB0eXBlICcke2luZmVycmVkVHlwZT8ubmFtZX0nYCk7XG4gIH1cbiAgcmV0dXJuIGluZmVycmVkVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFbnRpdHlUeXBlKHR5cGU6IGFueSk6IHR5cGUgaXMgVHlwZTxhbnk+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGUgIT09IEJvb2xlYW4gJiZcbiAgICB0eXBlICE9PSBTdHJpbmcgJiZcbiAgICB0eXBlICE9PSBOdW1iZXIgJiZcbiAgICB0eXBlICE9PSBCaWdJbnQgJiZcbiAgICB0eXBlICE9PSBEYXRlICYmXG4gICAgdHlwZSAhPT0gU3ltYm9sICYmXG4gICAgdHlwZSAhPT0gT2JqZWN0XG4gICk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbnRpdHkvZGVjb3JhdG9yL2RlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxrQkFBa0IsQ0FBQztBQWExQixPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFL0UsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDO0FBQzFCLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDO0FBQ3pDLE1BQU0sS0FBSyxHQUFvQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM1RSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDO0FBRXhCLE1BQU0sVUFBVSxXQUFXLENBQUksTUFBZSxFQUFFLEdBQVcsRUFBRSxPQUFxQixFQUFFO0lBQ2xGLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxFQUFFLENBQUM7SUFDdEUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLFFBQVEsQ0FBSSxNQUFlLEVBQUUsR0FBVyxFQUFFLElBQWtCO0lBQzFFLE1BQU0sSUFBSSxH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QUFDLENBQUM7SUFDOUcsQ0FBQztJQUNELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBUztJQUN6QyxPQUFPLENBQ0wsT0FBTyxJQUFJLEtBQUssVUFBVTtRQUMxQixJQUFJLEtBQUssT0FBTztRQUNoQixJQUFJLEtBQUssTUFBTTtRQUNmLElBQUksS0FBSyxNQUFNO1FBQ2YsSUFBSSxLQUFLLE1BQU07UUFDZixJQUFJLEtBQUssSUFBSTtRQUNiLElBQUksS0FBSyxNQUFNO1FBQ2YsSUFBSSxLQUFLLE1BQU0sQ0FDaEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuaW1wb3J0IHtcbiAgUmVsYXRpb25PcHRpb25zLFxuICBGaWVsZE9wdGlvbnMsXG4gIEVudGl0eU9wdGlvbnMsXG4gIEVudGl0eU1ldGEsXG4gIFR5cGUsXG4gIFJlbGF0aW9uS2V5TWFwLFxuICBSZWxhdGlvbktleSxcbiAgS2V5LFxuICBGaWVsZEtleSxcbiAgSWRLZXksXG59IGZyb20gJy4uLy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgaGFzS2V5cywgbG93ZXJGaXJzdCwgZ2V0S2V5cywgdXBwZXJGaXJzdCB9IGZyb20gJy4uLy4uL3V0aWwvaW5kZXguanMnO1xuXG5jb25zdCBob2xkZXIgPSBnbG9iYWxUaGlzO1xuY29uc3QgbWV0YUtleSA9ICdudWthay9lbnRpdHkvZGVjb3JhdG9yJztcbmNvbnN0IG1ldGFzOiBNYXA8VHlwZTxhbnk+LCBFbnRpdHlNZXRhPGFueT4+ID0gaG9sZGVyW21ldGFLZXldID8/IG5ldyBNYXAoKTtcbmhvbGRlclttZXRhS2V5XSA9IG1ldGFzO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRmllbGQ8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZywgb3B0czogRmllbGRPcHRpb25zID0ge30pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IGVuc3VyZU1ldGEoZW50aXR5KTtcbiAgaWYgKCFvcHRzLnR5cGUpIHtcbiAgICBjb25zdCB0eXBlID0gaW5mZXJUeXBlKGVudGl0eSwga2V5KTtcbiAgICBvcHRzID0geyAuLi5vcHRzLCB0eXBlIH07XG4gIH1cbiAgbWV0YS5maWVsZHNba2V5XSA9IHsgLi4ubWV0YS5maWVsZHNba2V5XSwgLi4ueyBuYW1lOiBrZXksIC4uLm9wdHMgfSB9O1xuICByZXR1cm4gbWV0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZUlkPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IEZpZWxkT3B0aW9ucyk6IEVudGl0eU1ldGE8RT4ge1xuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBjb25zdCBpZCA9IGdldElkS2V5KG1ldGEpO1xuICBpZiAoaWQpIHtcbiAgICBjb25zb2xlLmluZm8oYE92ZXJyaWRpbmcgSUQgcHJvcGVydHkgZm9yICcke2VudGl0eS5uYW1lfScgZnJvbSAnJHtpZH0nIHRvICcke2tleX0nYCk7XG4gICAgZGVsZXRlIG1ldGEuZmllbGRzW2lkXTtcbiAgfVxuICByZXR1cm4gZGVmaW5lRmllbGQoZW50aXR5LCBrZXksIHsgLi4ub3B0cywgaXNJZDogdHJ1ZSB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmluZVJlbGF0aW9uPEU+KGVudGl0eTogVHlwZTxFPiwga2V5OiBzdHJpbmcsIG9wdHM6IFJlbGF0aW9uT3B0aW9uczxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBpZiAoIW9wdHMuZW50aXR5KSB7XG4gICAgY29uc3QgaW5mZXJyZWRUeXBlID0gaW5mZXJFbnRpdHlUeXBlKGVudGl0eSwga2V5KTtcbiAgICBvcHRzLmVudGl0eSA9ICgpID0+IGluZmVycmVkVHlwZTtcbiAgfVxuICBjb25zdCBtZXRhID0gZW5zdXJlTWV0YShlbnRpdHkpO1xuICBtZXRhLnJlbGF0aW9uc1trZXldID0geyAuLi5tZXRhLnJlbGF0aW9uc1trZXldLCAuLi5vcHRzIH07XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lRW50aXR5PEU+KGVudGl0eTogVHlwZTxFPiwgb3B0czogRW50aXR5T3B0aW9ucyA9IHt9KTogRW50aXR5TWV0YTxFPiB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG5cbiAgaWYgKCFoYXNLZXlzKG1ldGEuZmllbGRzKSkge1xuICAgIHRocm93IFR5cGVFcnJvcihgJyR7ZW50aXR5Lm5hbWV9JyBtdXN0IGhhdmUgZmllbGRzYCk7XG4gIH1cblxuICBjb25zdCBvbkRlbGV0ZUtleXMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5maWx0ZXIoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XS5vbkRlbGV0ZSkgYXMgRmllbGRLZXk8RT5bXTtcblxuICBpZiAob25EZWxldGVLZXlzLmxlbmd0aCA+IDEpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCB3aXRoICdvbkRlbGV0ZScgYXMgbWF4aW11bWApO1xuICB9XG5cbiAgaWYgKG9wdHMuc29mdERlbGV0ZSkge1xuICAgIGlmICghb25EZWxldGVLZXlzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0nIG11c3QgaGF2ZSBvbmUgZmllbGQgd2l0aCAnb25EZWxldGUnIHRvIGVuYWJsZSAnc29mdERlbGV0ZSdgKTtcbiAgICB9XG4gICAgbWV0YS5zb2Z0RGVsZXRlID0gb25EZWxldGVLZXlzWzBdO1xuICB9XG5cbiAgbWV0YS5uYW1lID0gb3B0cy5uYW1lID8/IGVudGl0eS5uYW1lO1xuICBsZXQgcHJvdG86IEZ1bmN0aW9uQ29uc3RydWN0b3IgPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YoZW50aXR5LnByb3RvdHlwZSk7XG5cbiAgd2hpbGUgKHByb3RvLmNvbnN0cnVjdG9yICE9PSBPYmplY3QpIHtcbiAgICBjb25zdCBwYXJlbnRNZXRhID0gZW5zdXJlTWV0YShwcm90by5jb25zdHJ1Y3RvciBhcyBUeXBlPEU+KTtcbiAgICBleHRlbmRNZXRhKG1ldGEsIHBhcmVudE1ldGEpO1xuICAgIHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHByb3RvKTtcbiAgfVxuXG4gIGNvbnN0IGlkID0gZ2V0SWRLZXkobWV0YSk7XG4gIGlmICghaWQpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgbXVzdCBoYXZlIG9uZSBmaWVsZCBkZWNvcmF0ZWQgd2l0aCBASWRgKTtcbiAgfVxuICBtZXRhLmlkID0gaWQ7XG5cbiAgcmV0dXJuIG1ldGE7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbnRpdGllcygpOiBUeXBlPGFueT5bXSB7XG4gIHJldHVybiBbLi4ubWV0YXMuZW50cmllcygpXS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsXSkgPT4ge1xuICAgIGlmICh2YWwuaWQpIHtcbiAgICAgIGFjYy5wdXNoKGtleSk7XG4gICAgfVxuICAgIHJldHVybiBhY2M7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gZW5zdXJlTWV0YTxFPihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgbGV0IG1ldGEgPSBtZXRhcy5nZXQoZW50aXR5KTtcbiAgaWYgKG1ldGEpIHtcbiAgICByZXR1cm4gbWV0YTtcbiAgfVxuICBtZXRhID0geyBlbnRpdHksIGZpZWxkczoge30sIHJlbGF0aW9uczoge30gfTtcbiAgbWV0YXMuc2V0KGVudGl0eSwgbWV0YSk7XG4gIHJldHVybiBtZXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWV0YTxFPihlbnRpdHk6IFR5cGU8RT4pOiBFbnRpdHlNZXRhPEU+IHtcbiAgY29uc3QgbWV0YSA9IG1ldGFzLmdldChlbnRpdHkpO1xuICBpZiAoIW1ldGEpIHtcbiAgICB0aHJvdyBUeXBlRXJyb3IoYCcke2VudGl0eS5uYW1lfScgaXMgbm90IGFuIGVudGl0eWApO1xuICB9XG4gIGlmIChtZXRhLnByb2Nlc3NlZCkge1xuICAgIHJldHVybiBtZXRhO1xuICB9XG4gIG1ldGEucHJvY2Vzc2VkID0gdHJ1ZTtcbiAgcmV0dXJuIGZpbGxSZWxhdGlvbnMobWV0YSk7XG59XG5cbmZ1bmN0aW9uIGZpbGxSZWxhdGlvbnM8RT4obWV0YTogRW50aXR5TWV0YTxFPik6IEVudGl0eU1ldGE8RT4ge1xuICBmb3IgKGNvbnN0IHJlbEtleSBpbiBtZXRhLnJlbGF0aW9ucykge1xuICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXkgYXMgUmVsYXRpb25LZXk8RT5dO1xuXG4gICAgaWYgKHJlbE9wdHMucmVmZXJlbmNlcykge1xuICAgICAgLy8gcmVmZXJlbmNlcyB3ZXJlIG1hbnVhbGx5IHNwZWNpZmllZFxuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHJlbE9wdHMubWFwcGVkQnkpIHtcbiAgICAgIGZpbGxJbnZlcnNlU2lkZVJlbGF0aW9ucyhyZWxPcHRzKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcblxuICAgIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICBjb25zdCBpZE5hbWUgPSBtZXRhLmZpZWxkc1ttZXRhLmlkXS5uYW1lO1xuICAgICAgY29uc3QgcmVsSWROYW1lID0gcmVsTWV0YS5maWVsZHNbcmVsTWV0YS5pZF0ubmFtZTtcbiAgICAgIGNvbnN0IHNvdXJjZSA9IGxvd2VyRmlyc3QobWV0YS5uYW1lKSArIHVwcGVyRmlyc3QoaWROYW1lKTtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGxvd2VyRmlyc3QocmVsTWV0YS5uYW1lKSArIHVwcGVyRmlyc3QocmVsSWROYW1lKTtcbiAgICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFtcbiAgICAgICAgeyBsb2NhbDogc291cmNlLCBmb3JlaWduOiBtZXRhLmlkIH0sXG4gICAgICAgIHsgbG9jYWw6IHRhcmdldCwgZm9yZWlnbjogcmVsTWV0YS5pZCB9LFxuICAgICAgXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gW3sgbG9jYWw6IGAke3JlbEtleX1JZGAsIGZvcmVpZ246IHJlbE1ldGEuaWQgfV07XG4gICAgfVxuXG4gICAgaWYgKHJlbE9wdHMudGhyb3VnaCkge1xuICAgICAgZmlsbFRocm91Z2hSZWxhdGlvbnMocmVsT3B0cy50aHJvdWdoKCkpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBtZXRhO1xufVxuXG5mdW5jdGlvbiBmaWxsSW52ZXJzZVNpZGVSZWxhdGlvbnM8RT4ocmVsT3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogdm9pZCB7XG4gIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gIGNvbnN0IHJlbE1ldGEgPSBnZXRNZXRhKHJlbEVudGl0eSk7XG4gIHJlbE9wdHMubWFwcGVkQnkgPSBnZXRNYXBwZWRCeVJlbGF0aW9uS2V5KHJlbE9wdHMpO1xuXG4gIGlmIChyZWxNZXRhLmZpZWxkc1tyZWxPcHRzLm1hcHBlZEJ5IGFzIEZpZWxkS2V5PEU+XSkge1xuICAgIHJlbE9wdHMucmVmZXJlbmNlcyA9IFt7IGxvY2FsOiByZWxNZXRhLmlkLCBmb3JlaWduOiByZWxPcHRzLm1hcHBlZEJ5IH1dO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG1hcHBlZEJ5UmVsYXRpb24gPSByZWxNZXRhLnJlbGF0aW9uc1tyZWxPcHRzLm1hcHBlZEJ5IGFzIFJlbGF0aW9uS2V5PEU+XTtcblxuICBpZiAocmVsT3B0cy5jYXJkaW5hbGl0eSA9PT0gJ20xJyB8fCByZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgcmVsT3B0cy5yZWZlcmVuY2VzID0gbWFwcGVkQnlSZWxhdGlvbi5yZWZlcmVuY2VzLnNsaWNlKCkucmV2ZXJzZSgpO1xuICAgIHJlbE9wdHMudGhyb3VnaCA9IG1hcHBlZEJ5UmVsYXRpb24udGhyb3VnaDtcbiAgICByZXR1cm47XG4gIH1cblxuICByZWxPcHRzLnJlZmVyZW5jZXMgPSBtYXBwZWRCeVJlbGF0aW9uLnJlZmVyZW5jZXMubWFwKCh7IGxvY2FsLCBmb3JlaWduIH0pID0+ICh7XG4gICAgbG9jYWw6IGZvcmVpZ24sXG4gICAgZm9yZWlnbjogbG9jYWwsXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZmlsbFRocm91Z2hSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+KTogdm9pZCB7XG4gIGNvbnN0IG1ldGEgPSBlbnN1cmVNZXRhKGVudGl0eSk7XG4gIG1ldGEucmVsYXRpb25zID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykucmVkdWNlKChyZWxhdGlvbnMsIGtleSkgPT4ge1xuICAgIGNvbnN0IHsgcmVmZXJlbmNlIH0gPSBtZXRhLmZpZWxkc1trZXkgYXMgRmllbGRLZXk8RT5dO1xuICAgIGlmIChyZWZlcmVuY2UpIHtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlZmVyZW5jZSgpO1xuICAgICAgY29uc3QgcmVsTWV0YSA9IGVuc3VyZU1ldGEocmVsRW50aXR5KTtcbiAgICAgIGNvbnN0IHJlbEtleSA9IGtleS5zbGljZSgwLCAtcmVsTWV0YS5pZC5sZW5ndGgpO1xuICAgICAgY29uc3QgcmVsT3B0czogUmVsYXRpb25PcHRpb25zID0ge1xuICAgICAgICBlbnRpdHk6IHJlZmVyZW5jZSxcbiAgICAgICAgY2FyZGluYWxpdHk6ICdtMScsXG4gICAgICAgIHJlZmVyZW5jZXM6IFt7IGxvY2FsOiBrZXksIGZvcmVpZ246IHJlbE1ldGEuaWQgfV0sXG4gICAgICB9O1xuICAgICAgcmVsYXRpb25zW3JlbEtleV0gPSByZWxPcHRzO1xuICAgIH1cbiAgICByZXR1cm4gcmVsYXRpb25zO1xuICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hcHBlZEJ5UmVsYXRpb25LZXk8RT4ocmVsT3B0czogUmVsYXRpb25PcHRpb25zPEU+KTogS2V5PEU+IHtcbiAgaWYgKHR5cGVvZiByZWxPcHRzLm1hcHBlZEJ5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICBjb25zdCByZWxNZXRhID0gZW5zdXJlTWV0YShyZWxFbnRpdHkpO1xuICAgIGNvbnN0IGtleU1hcCA9IGdldFJlbGF0aW9uS2V5TWFwKHJlbE1ldGEpO1xuICAgIHJldHVybiByZWxPcHRzLm1hcHBlZEJ5KGtleU1hcCk7XG4gIH1cbiAgcmV0dXJuIHJlbE9wdHMubWFwcGVkQnk7XG59XG5cbmZ1bmN0aW9uIGdldFJlbGF0aW9uS2V5TWFwPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBSZWxhdGlvbktleU1hcDxFPiB7XG4gIHJldHVybiBnZXRLZXlzKG1ldGEuZmllbGRzKVxuICAgIC5jb25jYXQoZ2V0S2V5cyhtZXRhLnJlbGF0aW9ucykpXG4gICAgLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGFjY1trZXldID0ga2V5O1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBSZWxhdGlvbktleU1hcDxFPik7XG59XG5cbmZ1bmN0aW9uIGdldElkS2V5PEU+KG1ldGE6IEVudGl0eU1ldGE8RT4pOiBJZEtleTxFPiB7XG4gIGNvbnN0IGlkID0gZ2V0S2V5cyhtZXRhLmZpZWxkcykuZmluZCgoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldPy5pc0lkKTtcbiAgcmV0dXJuIGlkIGFzIElkS2V5PEU+O1xufVxuXG5mdW5jdGlvbiBleHRlbmRNZXRhPEU+KHRhcmdldDogRW50aXR5TWV0YTxFPiwgc291cmNlOiBFbnRpdHlNZXRhPEU+KTogdm9pZCB7XG4gIGNvbnN0IHNvdXJjZUZpZWxkcyA9IHsgLi4uc291cmNlLmZpZWxkcyB9O1xuICBjb25zdCB0YXJnZXRJZCA9IGdldElkS2V5KHRhcmdldCk7XG4gIGlmICh0YXJnZXRJZCkge1xuICAgIGNvbnN0IHNvdXJjZUlkID0gZ2V0SWRLZXkoc291cmNlKTtcbiAgICBpZiAoc291cmNlSWQpIHtcbiAgICAgIGRlbGV0ZSBzb3VyY2VGaWVsZHNbc291cmNlSWRdO1xuICAgIH1cbiAgfVxuICB0YXJnZXQuZmllbGRzID0geyAuLi5zb3VyY2VGaWVsZHMsIC4uLnRhcmdldC5maWVsZHMgfTtcbiAgdGFyZ2V0LnJlbGF0aW9ucyA9IHsgLi4uc291cmNlLnJlbGF0aW9ucywgLi4udGFyZ2V0LnJlbGF0aW9ucyB9O1xufVxuXG5mdW5jdGlvbiBpbmZlclR5cGU8RT4oZW50aXR5OiBUeXBlPEU+LCBrZXk6IHN0cmluZyk6IGFueSB7XG4gIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKCdkZXNpZ246dHlwZScsIGVudGl0eS5wcm90b3R5cGUsIGtleSk7XG59XG5cbmZ1bmN0aW9uIGluZmVyRW50aXR5VHlwZTxFPihlbnRpdHk6IFR5cGU8RT4sIGtleTogc3RyaW5nKTogVHlwZTxhbnk+IHtcbiAgY29uc3QgaW5mZXJyZWRUeXBlID0gaW5mZXJUeXBlKGVudGl0eSwga2V5KTtcbiAgY29uc3QgaXNWYWxpZFR5cGUgPSBpc1ZhbGlkRW50aXR5VHlwZShpbmZlcnJlZFR5cGUpO1xuICBpZiAoIWlzVmFsaWRUeXBlKSB7XG4gICAgdGhyb3cgVHlwZUVycm9yKGAnJHtlbnRpdHkubmFtZX0uJHtrZXl9JyB0eXBlIHdhcyBhdXRvLWluZmVycmVkIHdpdGggaW52YWxpZCB0eXBlICcke2luZmVycmVkVHlwZT8ubmFtZX0nYCk7XG4gIH1cbiAgcmV0dXJuIGluZmVycmVkVHlwZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRFbnRpdHlUeXBlKHR5cGU6IGFueSk6IHR5cGUgaXMgVHlwZTxhbnk+IHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgIHR5cGUgIT09IEJvb2xlYW4gJiZcbiAgICB0eXBlICE9PSBTdHJpbmcgJiZcbiAgICB0eXBlICE9PSBOdW1iZXIgJiZcbiAgICB0eXBlICE9PSBCaWdJbnQgJiZcbiAgICB0eXBlICE9PSBEYXRlICYmXG4gICAgdHlwZSAhPT0gU3ltYm9sICYmXG4gICAgdHlwZSAhPT0gT2JqZWN0XG4gICk7XG59XG4iXX0=

@@ -14,2 +14,2 @@ let defaultPool;

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLElBQUksV0FBd0IsQ0FBQztBQUU3QixNQUFNLFVBQVUsY0FBYyxDQUFzQyxJQUFPO0lBQ3pFLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjO0lBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUU7UUFDaEIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO0tBQ25FO0lBQ0QsT0FBTyxXQUFXLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVO0lBQ3hCLE9BQU8sV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2xDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sIH0gZnJvbSAnLi90eXBlL2luZGV4LmpzJztcblxubGV0IGRlZmF1bHRQb29sOiBRdWVyaWVyUG9vbDtcblxuZXhwb3J0IGZ1bmN0aW9uIHNldFF1ZXJpZXJQb29sPFQgZXh0ZW5kcyBRdWVyaWVyUG9vbCA9IFF1ZXJpZXJQb29sPihwb29sOiBUKTogdm9pZCB7XG4gIGRlZmF1bHRQb29sID0gcG9vbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJpZXJQb29sKCk6IFF1ZXJpZXJQb29sIHtcbiAgaWYgKCFkZWZhdWx0UG9vbCkge1xuICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ0EgZGVmYXVsdCBxdWVyaWVyLXBvb2wgaGFzIHRvIGJlIHNldCBmaXJzdCcpO1xuICB9XG4gIHJldHVybiBkZWZhdWx0UG9vbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJpZXIoKTogUHJvbWlzZTxRdWVyaWVyPiB7XG4gIHJldHVybiBkZWZhdWx0UG9vbC5nZXRRdWVyaWVyKCk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLElBQUksV0FBd0IsQ0FBQztBQUU3QixNQUFNLFVBQVUsY0FBYyxDQUFzQyxJQUFPO0lBQ3pFLFdBQVcsR0FBRyxJQUFJLENBQUM7QUFDckIsQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjO0lBQzVCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixNQUFNLElBQUksU0FBUyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUNELE9BQU8sV0FBVyxDQUFDO0FBQ3JCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBRdWVyaWVyLCBRdWVyaWVyUG9vbCB9IGZyb20gJy4vdHlwZS9pbmRleC5qcyc7XG5cbmxldCBkZWZhdWx0UG9vbDogUXVlcmllclBvb2w7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRRdWVyaWVyUG9vbDxUIGV4dGVuZHMgUXVlcmllclBvb2wgPSBRdWVyaWVyUG9vbD4ocG9vbDogVCk6IHZvaWQge1xuICBkZWZhdWx0UG9vbCA9IHBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyUG9vbCgpOiBRdWVyaWVyUG9vbCB7XG4gIGlmICghZGVmYXVsdFBvb2wpIHtcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdBIGRlZmF1bHQgcXVlcmllci1wb29sIGhhcyB0byBiZSBzZXQgZmlyc3QnKTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdFBvb2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyaWVyKCk6IFByb21pc2U8UXVlcmllcj4ge1xuICByZXR1cm4gZGVmYXVsdFBvb2wuZ2V0UXVlcmllcigpO1xufVxuIl19

@@ -6,3 +6,3 @@ {

"license": "MIT",
"version": "0.4.2",
"version": "0.4.6",
"type": "module",

@@ -23,3 +23,3 @@ "main": "./index.js",

"copyfiles": "copyfiles -f package.json ../../README.md ../../CHANGELOG.md dist",
"build": "yarn clean && tsc -b tsconfig.build.json && yarn copyfiles",
"build": "npm run clean && tsc -b tsconfig.build.json && npm run copyfiles",
"start": "tsc --watch",

@@ -29,12 +29,12 @@ "clean": "rimraf dist *.tsbuildinfo"

"dependencies": {
"reflect-metadata": "^0.1.13",
"reflect-metadata": "^0.2.1",
"tslib": "^2.6.2"
},
"devDependencies": {
"@types/node": "^20.8.10",
"@types/sqlstring": "^2.3.1",
"@types/uuid": "^9.0.6",
"@types/node": "^20.11.25",
"@types/sqlstring": "^2.3.2",
"@types/uuid": "^9.0.8",
"copyfiles": "^2.4.1",
"rimraf": "^5.0.5",
"typescript": "^5.2.2",
"typescript": "^5.4.2",
"uuid": "^9.0.1"

@@ -75,3 +75,3 @@ },

},
"gitHead": "20644feafa79328c8a2a68dc9c2d3578d7caceaa"
"gitHead": "293d2169ed15ba4bf23057a6af9c69497f0f5c62"
}

@@ -14,4 +14,4 @@ import type { IdValue, Querier, Query, QueryOptions, QueryProject, QuerySearch, RelationKey, Repository, Type, QueryOne } from '../type/index.js';

abstract deleteMany<E>(entity: Type<E>, q: QuerySearch<E>, opts?: QueryOptions): Promise<number>;
saveOne<E>(entity: Type<E>, payload: E): Promise<IdValue<E> | E[import("../type/entity.js").IdKey<E>]>;
saveMany<E>(entity: Type<E>, payload: E[]): Promise<(Awaited<IdValue<E>> | Awaited<E[import("../type/entity.js").IdKey<E>]>)[]>;
saveOne<E>(entity: Type<E>, payload: E): Promise<IdValue<E> | E[import("nukak/type/entity.js").IdKey<E>]>;
saveMany<E>(entity: Type<E>, payload: E[]): Promise<(Awaited<IdValue<E>> | Awaited<E[import("nukak/type/entity.js").IdKey<E>]>)[]>;
protected fillToManyRelations<E>(entity: Type<E>, payload: E[], project: QueryProject<E>): Promise<void>;

@@ -18,0 +18,0 @@ protected putChildrenInParents<E>(parents: E[], children: E[], parentIdKey: string, referenceKey: string, relKey: string): void;

@@ -232,2 +232,2 @@ import { getMeta } from '../entity/decorator/index.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxNQUFNLE9BQWdCLGVBQWU7SUFDbkMsV0FBVyxDQUFJLE1BQWUsRUFBRSxFQUFjLEVBQUUsSUFBaUIsRUFBRTtRQUNqRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBSSxNQUFlLEVBQUUsQ0FBYztRQUM5QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUlELGdCQUFnQixDQUFJLE1BQWUsRUFBRSxDQUFXO1FBQzlDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxDQUFDO1NBQ29CLENBQUM7UUFDM0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FB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dEUsT0FBTzthQUNSO1lBQ0QsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsVUFBVSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyRSxPQUFPO1NBQ1I7UUFFRCxJQUFJLFdBQVcsS0FBSyxJQUFJLElBQUksVUFBVSxFQUFFO1lBQ3RDLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDdkMsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNoRSxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNwRSxPQUFPO1NBQ1I7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFJLE1BQWU7UUFDOUIsT0FBTyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBSUQsS0FBSyxDQUFDLFdBQVcsQ0FBSSxRQUEwQjtRQUM3QyxJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUM5QixNQUFNLEdBQUcsR0FBRyxNQUFNLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDL0IsT0FBTyxHQUFHLENBQUM7U0FDWjtRQUFDLE9BQU8sR0FBRyxFQUFFO1lBQ1osTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEdBQUcsQ0FBQztTQUNYO0lBQ0gsQ0FBQztDQVNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBJZFZhbHVlLFxuICBRdWVyaWVyLFxuICBRdWVyeSxcbiAgUXVlcnlPcHRpb25zLFxuICBRdWVyeVByb2plY3QsXG4gIFF1ZXJ5U2VhcmNoLFxuICBSZWxhdGlvbktleSxcbiAgUmVsYXRpb25WYWx1ZSxcbiAgUmVwb3NpdG9yeSxcbiAgVHlwZSxcbiAgUXVlcnlPbmUsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJy4uL2VudGl0eS9kZWNvcmF0b3IvaW5kZXguanMnO1xuaW1wb3J0IHsgY2xvbmUsIGdldEtleXMsIGdldFByb2plY3RSZWxhdGlvbktleXMsIGdldFBlcnNpc3RhYmxlUmVsYXRpb25zLCBhdWdtZW50RmlsdGVyIH0gZnJvbSAnLi4vdXRpbC9pbmRleC5qcyc7XG5pbXBvcnQgeyBHZW5lcmljUmVwb3NpdG9yeSB9IGZyb20gJy4uL3JlcG9zaXRvcnkvaW5kZXguanMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RRdWVyaWVyIGltcGxlbWVudHMgUXVlcmllciB7XG4gIGZpbmRPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHE6IFF1ZXJ5T25lPEU+ID0ge30pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIHEuJGZpbHRlciA9IGF1Z21lbnRGaWx0ZXIobWV0YSwgcS4kZmlsdGVyLCBpZCk7XG4gICAgcmV0dXJuIHRoaXMuZmluZE9uZShlbnRpdHksIHEpO1xuICB9XG5cbiAgYXN5bmMgZmluZE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5T25lPEU+KSB7XG4gICAgY29uc3Qgcm93cyA9IGF3YWl0IHRoaXMuZmluZE1hbnkoZW50aXR5LCB7IC4uLnEsICRsaW1pdDogMSB9KTtcbiAgICByZXR1cm4gcm93c1swXTtcbiAgfVxuXG4gIGFic3RyYWN0IGZpbmRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnk8RT4pOiBQcm9taXNlPEVbXT47XG5cbiAgZmluZE1hbnlBbmRDb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5PEU+KSB7XG4gICAgY29uc3QgcUNvdW50ID0ge1xuICAgICAgLi4ucSxcbiAgICB9IHNhdGlzZmllcyBRdWVyeVNlYXJjaDxFPjtcbiAgICBkZWxldGUgcUNvdW50LiRzb3J0O1xuICAgIGRlbGV0ZSBxQ291bnQuJGxpbWl0O1xuICAgIGRlbGV0ZSBxQ291bnQuJHNraXA7XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKFt0aGlzLmZpbmRNYW55KGVudGl0eSwgcSksIHRoaXMuY291bnQoZW50aXR5LCBxQ291bnQpXSk7XG4gIH1cblxuICBhYnN0cmFjdCBjb3VudDxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+KTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGFzeW5jIGluc2VydE9uZTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBjb25zdCBbaWRdID0gYXdhaXQgdGhpcy5pbnNlcnRNYW55KGVudGl0eSwgW3BheWxvYWRdKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBhYnN0cmFjdCBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKTogUHJvbWlzZTxJZFZhbHVlPEU+W10+O1xuXG4gIHVwZGF0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZU1hbnkoZW50aXR5LCB7ICRmaWx0ZXI6IGlkIH0sIHBheWxvYWQpO1xuICB9XG5cbiAgYWJzdHJhY3QgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGRlbGV0ZU9uZUJ5SWQ8RT4oZW50aXR5OiBUeXBlPEU+LCBpZDogSWRWYWx1ZTxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmRlbGV0ZU1hbnkoZW50aXR5LCB7ICRmaWx0ZXI6IGlkIH0sIG9wdHMpO1xuICB9XG5cbiAgYWJzdHJhY3QgZGVsZXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+LCBvcHRzPzogUXVlcnlPcHRpb25zKTogUHJvbWlzZTxudW1iZXI+O1xuXG4gIGFzeW5jIHNhdmVPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgW2lkXSA9IGF3YWl0IHRoaXMuc2F2ZU1hbnkoZW50aXR5LCBbcGF5bG9hZF0pO1xuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIGFzeW5jIHNhdmVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBpZHM6IElkVmFsdWU8RT5bXSA9IFtdO1xuICAgIGNvbnN0IHVwZGF0ZXM6IEVbXSA9IFtdO1xuICAgIGNvbnN0IGluc2VydHM6IEVbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBpdCBvZiBwYXlsb2FkKSB7XG4gICAgICBpZiAoaXRbbWV0YS5pZF0pIHtcbiAgICAgICAgaWYgKGdldEtleXMoaXQpLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIGlkcy5wdXNoKGl0W21ldGEuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB1cGRhdGVzLnB1c2goaXQpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbnNlcnRzLnB1c2goaXQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLmFsbChbXG4gICAgICAuLi5pZHMsXG4gICAgICAuLi4oaW5zZXJ0cy5sZW5ndGggPyBhd2FpdCB0aGlzLmluc2VydE1hbnkoZW50aXR5LCBpbnNlcnRzKSA6IFtdKSxcbiAgICAgIC4uLnVwZGF0ZXMubWFwKGFzeW5jIChpdCkgPT4ge1xuICAgICAgICBjb25zdCB7IFttZXRhLmlkXTogaWQsIC4uLmRhdGEgfSA9IGl0O1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9uZUJ5SWQoZW50aXR5LCBpZCwgZGF0YSBhcyBFKTtcbiAgICAgICAgcmV0dXJuIGlkO1xuICAgICAgfSksXG4gICAgXSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgZmlsbFRvTWFueVJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxhdGlvbnMgPSBnZXRQcm9qZWN0UmVsYXRpb25LZXlzKG1ldGEsIHByb2plY3QpO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsYXRpb25zKSB7XG4gICAgICBjb25zdCByZWxPcHRzID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICAgIGNvbnN0IHJlbEVudGl0eSA9IHJlbE9wdHMuZW50aXR5KCk7XG4gICAgICBjb25zdCByZWxQcm9qZWN0ID0gY2xvbmUocHJvamVjdFtyZWxLZXkgYXMgc3RyaW5nXSk7XG4gICAgICBjb25zdCByZWxRdWVyeTogUXVlcnk8dW5rbm93bj4gPVxuICAgICAgICByZWxQcm9qZWN0ID09PSB0cnVlIHx8IHJlbFByb2plY3QgPT09IHVuZGVmaW5lZFxuICAgICAgICAgID8ge31cbiAgICAgICAgICA6IEFycmF5LmlzQXJyYXkocmVsUHJvamVjdClcbiAgICAgICAgICA/IHsgJHByb2plY3Q6IHJlbFByb2plY3QgfVxuICAgICAgICAgIDogcmVsUHJvamVjdDtcbiAgICAgIGNvbnN0IGlkcyA9IHBheWxvYWQubWFwKChpdCkgPT4gaXRbbWV0YS5pZF0pO1xuXG4gICAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSByZWxPcHRzLnRocm91Z2goKTtcbiAgICAgICAgY29uc3QgdGhyb3VnaE1ldGEgPSBnZXRNZXRhKHRocm91Z2hFbnRpdHkpO1xuICAgICAgICBjb25zdCB0YXJnZXRSZWxLZXkgPSBPYmplY3Qua2V5cyh0aHJvdWdoTWV0YS5yZWxhdGlvbnMpLmZpbmQoKGtleSkgPT5cbiAgICAgICAgICB0aHJvdWdoTWV0YS5yZWxhdGlvbnNba2V5XS5yZWZlcmVuY2VzLnNvbWUoKHsgbG9jYWwgfSkgPT4gbG9jYWwgPT09IHJlbE9wdHMucmVmZXJlbmNlc1sxXS5sb2NhbCksXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHRocm91Z2hGb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KHRocm91Z2hFbnRpdHksIHtcbiAgICAgICAgICAkcHJvamVjdDoge1xuICAgICAgICAgICAgW2xvY2FsRmllbGRdOiB0cnVlLFxuICAgICAgICAgICAgW3RhcmdldFJlbEtleV06IHtcbiAgICAgICAgICAgICAgLi4ucmVsUXVlcnksXG4gICAgICAgICAgICAgICRyZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICAkZmlsdGVyOiB7XG4gICAgICAgICAgICBbbG9jYWxGaWVsZF06IGlkcyxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZm91bmRzID0gdGhyb3VnaEZvdW5kcy5tYXAoKGl0KSA9PiAoeyAuLi5pdFt0YXJnZXRSZWxLZXldLCBbbG9jYWxGaWVsZF06IGl0W2xvY2FsRmllbGRdIH0pKTtcbiAgICAgICAgdGhpcy5wdXRDaGlsZHJlbkluUGFyZW50cyhwYXlsb2FkLCBmb3VuZHMsIG1ldGEuaWQsIGxvY2FsRmllbGQsIHJlbEtleSk7XG4gICAgICB9IGVsc2UgaWYgKHJlbE9wdHMuY2FyZGluYWxpdHkgPT09ICcxbScpIHtcbiAgICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVsT3B0cy5yZWZlcmVuY2VzWzBdLmZvcmVpZ247XG4gICAgICAgIGlmIChyZWxRdWVyeS4kcHJvamVjdCkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbFF1ZXJ5LiRwcm9qZWN0KSkge1xuICAgICAgICAgICAgaWYgKCFyZWxRdWVyeS4kcHJvamVjdC5pbmNsdWRlcyhmb3JlaWduRmllbGQpKSB7XG4gICAgICAgICAgICAgIHJlbFF1ZXJ5LiRwcm9qZWN0LnB1c2goZm9yZWlnbkZpZWxkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKCFyZWxRdWVyeS4kcHJvamVjdFtmb3JlaWduRmllbGRdKSB7XG4gICAgICAgICAgICByZWxRdWVyeS4kcHJvamVjdFtmb3JlaWduRmllbGRdID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmVsUXVlcnkuJGZpbHRlciA9IHsgW2ZvcmVpZ25GaWVsZF06IGlkcyB9O1xuICAgICAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmZpbmRNYW55KHJlbEVudGl0eSwgcmVsUXVlcnkpO1xuICAgICAgICB0aGlzLnB1dENoaWxkcmVuSW5QYXJlbnRzKHBheWxvYWQsIGZvdW5kcywgbWV0YS5pZCwgZm9yZWlnbkZpZWxkLCByZWxLZXkpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwdXRDaGlsZHJlbkluUGFyZW50czxFPihcbiAgICBwYXJlbnRzOiBFW10sXG4gICAgY2hpbGRyZW46IEVbXSxcbiAgICBwYXJlbnRJZEtleTogc3RyaW5nLFxuICAgIHJlZmVyZW5jZUtleTogc3RyaW5nLFxuICAgIHJlbEtleTogc3RyaW5nLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjaGlsZHJlbkJ5UGFyZW50TWFwID0gY2hpbGRyZW4ucmVkdWNlKChhY2MsIGNoaWxkKSA9PiB7XG4gICAgICBjb25zdCBwYXJlbklkID0gY2hpbGRbcmVmZXJlbmNlS2V5XTtcbiAgICAgIGlmICghYWNjW3BhcmVuSWRdKSB7XG4gICAgICAgIGFjY1twYXJlbklkXSA9IFtdO1xuICAgICAgfVxuICAgICAgYWNjW3BhcmVuSWRdLnB1c2goY2hpbGQpO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSk7XG5cbiAgICBmb3IgKGNvbnN0IHBhcmVudCBvZiBwYXJlbnRzKSB7XG4gICAgICBjb25zdCBwYXJlbnRJZCA9IHBhcmVudFtwYXJlbnRJZEtleV07XG4gICAgICBwYXJlbnRbcmVsS2V5XSA9IGNoaWxkcmVuQnlQYXJlbnRNYXBbcGFyZW50SWRdO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBpbnNlcnRSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgcGF5bG9hZC5tYXAoKGl0KSA9PiB7XG4gICAgICAgIGNvbnN0IHJlbEtleXMgPSBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucyhtZXRhLCBpdCwgJ3BlcnNpc3QnKTtcbiAgICAgICAgaWYgKCFyZWxLZXlzLmxlbmd0aCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwocmVsS2V5cy5tYXAoKHJlbEtleSkgPT4gdGhpcy5zYXZlUmVsYXRpb24oZW50aXR5LCBpdCwgcmVsS2V5KSkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyB1cGRhdGVSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeVNlYXJjaDxFPiwgcGF5bG9hZDogRSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVsS2V5cyA9IGdldFBlcnNpc3RhYmxlUmVsYXRpb25zKG1ldGEsIHBheWxvYWQsICdwZXJzaXN0Jyk7XG5cbiAgICBpZiAoIXJlbEtleXMubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5maW5kTWFueShlbnRpdHksIHsgLi4ucSwgJHByb2plY3Q6IFttZXRhLmlkXSB9KTtcbiAgICBjb25zdCBpZHMgPSBmb3VuZHMubWFwKChmb3VuZCkgPT4gZm91bmRbbWV0YS5pZF0pO1xuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBpZHMubWFwKChpZCkgPT5cbiAgICAgICAgUHJvbWlzZS5hbGwocmVsS2V5cy5tYXAoKHJlbEtleSkgPT4gdGhpcy5zYXZlUmVsYXRpb24oZW50aXR5LCB7IC4uLnBheWxvYWQsIFttZXRhLmlkXTogaWQgfSwgcmVsS2V5LCB0cnVlKSkpLFxuICAgICAgKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGRlbGV0ZVJlbGF0aW9uczxFPihlbnRpdHk6IFR5cGU8RT4sIGlkczogSWRWYWx1ZTxFPltdLCBvcHRzPzogUXVlcnlPcHRpb25zKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgbWV0YS5yZWxhdGlvbnMgYXMgRSwgJ2RlbGV0ZScpO1xuXG4gICAgZm9yIChjb25zdCByZWxLZXkgb2YgcmVsS2V5cykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlbE9wdHMucmVmZXJlbmNlc1swXS5sb2NhbDtcbiAgICAgIGlmIChyZWxPcHRzLnRocm91Z2gpIHtcbiAgICAgICAgY29uc3QgdGhyb3VnaEVudGl0eSA9IHJlbE9wdHMudGhyb3VnaCgpO1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkodGhyb3VnaEVudGl0eSwgeyAkZmlsdGVyOiB7IFtsb2NhbEZpZWxkXTogaWRzIH0gfSwgb3B0cyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueShyZWxFbnRpdHksIHsgW2xvY2FsRmllbGRdOiBpZHMgfSwgb3B0cyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNhdmVSZWxhdGlvbjxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEUsIHJlbEtleTogUmVsYXRpb25LZXk8RT4sIGlzVXBkYXRlPzogYm9vbGVhbikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWQgPSBwYXlsb2FkW21ldGEuaWRdO1xuICAgIGNvbnN0IHsgZW50aXR5OiBlbnRpdHlHZXR0ZXIsIGNhcmRpbmFsaXR5LCByZWZlcmVuY2VzLCB0aHJvdWdoIH0gPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgIGNvbnN0IHJlbEVudGl0eSA9IGVudGl0eUdldHRlcigpO1xuICAgIGNvbnN0IHJlbFBheWxvYWQgPSBwYXlsb2FkW3JlbEtleV0gYXMgdW5rbm93biBhcyBSZWxhdGlvblZhbHVlPEU+W107XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICcxbScgfHwgY2FyZGluYWxpdHkgPT09ICdtbScpIHtcbiAgICAgIGlmICh0aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWZlcmVuY2VzWzBdLmxvY2FsO1xuXG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSB0aHJvdWdoKCk7XG4gICAgICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueSh0aHJvdWdoRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2xvY2FsRmllbGRdOiBpZCB9IH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZWxQYXlsb2FkKSB7XG4gICAgICAgICAgY29uc3Qgc2F2ZWRJZHMgPSBhd2FpdCB0aGlzLnNhdmVNYW55KHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICAgICAgY29uc3QgdGhyb3VnaEJvZGllcyA9IHNhdmVkSWRzLm1hcCgocmVsSWQpID0+ICh7XG4gICAgICAgICAgICBbcmVmZXJlbmNlc1swXS5sb2NhbF06IGlkLFxuICAgICAgICAgICAgW3JlZmVyZW5jZXNbMV0ubG9jYWxdOiByZWxJZCxcbiAgICAgICAgICB9KSk7XG4gICAgICAgICAgYXdhaXQgdGhpcy5pbnNlcnRNYW55KHRocm91Z2hFbnRpdHksIHRocm91Z2hCb2RpZXMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgIGlmIChpc1VwZGF0ZSkge1xuICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkocmVsRW50aXR5LCB7ICRmaWx0ZXI6IHsgW2ZvcmVpZ25GaWVsZF06IGlkIH0gfSk7XG4gICAgICB9XG4gICAgICBpZiAocmVsUGF5bG9hZCkge1xuICAgICAgICBmb3IgKGNvbnN0IGl0IG9mIHJlbFBheWxvYWQpIHtcbiAgICAgICAgICBpdFtmb3JlaWduRmllbGRdID0gaWQ7XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgdGhpcy5zYXZlTWFueShyZWxFbnRpdHksIHJlbFBheWxvYWQpO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjYXJkaW5hbGl0eSA9PT0gJzExJykge1xuICAgICAgY29uc3QgZm9yZWlnbkZpZWxkID0gcmVmZXJlbmNlc1swXS5mb3JlaWduO1xuICAgICAgaWYgKHJlbFBheWxvYWQgPT09IG51bGwpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHJlbEVudGl0eSwgeyAkZmlsdGVyOiB7IFtmb3JlaWduRmllbGRdOiBpZCB9IH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLnNhdmVPbmUocmVsRW50aXR5LCB7IC4uLnJlbFBheWxvYWQsIFtmb3JlaWduRmllbGRdOiBpZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICdtMScgJiYgcmVsUGF5bG9hZCkge1xuICAgICAgY29uc3QgbG9jYWxGaWVsZCA9IHJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICBjb25zdCByZWZlcmVuY2VJZCA9IGF3YWl0IHRoaXMuaW5zZXJ0T25lKHJlbEVudGl0eSwgcmVsUGF5bG9hZCk7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZU9uZUJ5SWQoZW50aXR5LCBpZCwgeyBbbG9jYWxGaWVsZF06IHJlZmVyZW5jZUlkIH0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGdldFJlcG9zaXRvcnk8RT4oZW50aXR5OiBUeXBlPEU+KTogUmVwb3NpdG9yeTxFPiB7XG4gICAgcmV0dXJuIG5ldyBHZW5lcmljUmVwb3NpdG9yeShlbnRpdHksIHRoaXMpO1xuICB9XG5cbiAgYWJzdHJhY3QgcmVhZG9ubHkgaGFzT3BlblRyYW5zYWN0aW9uOiBib29sZWFuO1xuXG4gIGFzeW5jIHRyYW5zYWN0aW9uPFQ+KGNhbGxiYWNrOiAoKSA9PiBQcm9taXNlPFQ+KSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgY2FsbGJhY2soKTtcbiAgICAgIGF3YWl0IHRoaXMuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhd2FpdCB0aGlzLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBhYnN0cmFjdCBiZWdpblRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgY29tbWl0VHJhbnNhY3Rpb24oKTogUHJvbWlzZTx2b2lkPjtcblxuICBhYnN0cmFjdCByb2xsYmFja1RyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3QgcmVsZWFzZSgpOiBQcm9taXNlPHZvaWQ+O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxNQUFNLE9BQWdCLGVBQWU7SUFDbkMsV0FBVyxDQUFJLE1BQWUsRUFBRSxFQUFjLEVBQUUsSUFBaUIsRUFBRTtRQUNqRSxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDL0MsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU8sQ0FBSSxNQUFlLEVBQUUsQ0FBYztRQUM5QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsQ0FBQztJQUlELGdCQUFnQixDQUFJLE1BQWUsRUFBRSxDQUFXO1FBQzlDLE1BQU0sTUFBTSxHQUFHO1lBQ2IsR0FBRyxDQUFDO1NBQ29CLENBQUM7UUFDM0IsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FB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QUUsQ0FBQztZQUM3QixNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9CLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQztJQUNILENBQUM7Q0FTRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSWRWYWx1ZSxcbiAgUXVlcmllcixcbiAgUXVlcnksXG4gIFF1ZXJ5T3B0aW9ucyxcbiAgUXVlcnlQcm9qZWN0LFxuICBRdWVyeVNlYXJjaCxcbiAgUmVsYXRpb25LZXksXG4gIFJlbGF0aW9uVmFsdWUsXG4gIFJlcG9zaXRvcnksXG4gIFR5cGUsXG4gIFF1ZXJ5T25lLFxufSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGdldE1ldGEgfSBmcm9tICcuLi9lbnRpdHkvZGVjb3JhdG9yL2luZGV4LmpzJztcbmltcG9ydCB7IGNsb25lLCBnZXRLZXlzLCBnZXRQcm9qZWN0UmVsYXRpb25LZXlzLCBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucywgYXVnbWVudEZpbHRlciB9IGZyb20gJy4uL3V0aWwvaW5kZXguanMnO1xuaW1wb3J0IHsgR2VuZXJpY1JlcG9zaXRvcnkgfSBmcm9tICcuLi9yZXBvc2l0b3J5L2luZGV4LmpzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UXVlcmllciBpbXBsZW1lbnRzIFF1ZXJpZXIge1xuICBmaW5kT25lQnlJZDxFPihlbnRpdHk6IFR5cGU8RT4sIGlkOiBJZFZhbHVlPEU+LCBxOiBRdWVyeU9uZTxFPiA9IHt9KSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBxLiRmaWx0ZXIgPSBhdWdtZW50RmlsdGVyKG1ldGEsIHEuJGZpbHRlciwgaWQpO1xuICAgIHJldHVybiB0aGlzLmZpbmRPbmUoZW50aXR5LCBxKTtcbiAgfVxuXG4gIGFzeW5jIGZpbmRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeU9uZTxFPikge1xuICAgIGNvbnN0IHJvd3MgPSBhd2FpdCB0aGlzLmZpbmRNYW55KGVudGl0eSwgeyAuLi5xLCAkbGltaXQ6IDEgfSk7XG4gICAgcmV0dXJuIHJvd3NbMF07XG4gIH1cblxuICBhYnN0cmFjdCBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5PEU+KTogUHJvbWlzZTxFW10+O1xuXG4gIGZpbmRNYW55QW5kQ291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeTxFPikge1xuICAgIGNvbnN0IHFDb3VudCA9IHtcbiAgICAgIC4uLnEsXG4gICAgfSBzYXRpc2ZpZXMgUXVlcnlTZWFyY2g8RT47XG4gICAgZGVsZXRlIHFDb3VudC4kc29ydDtcbiAgICBkZWxldGUgcUNvdW50LiRsaW1pdDtcbiAgICBkZWxldGUgcUNvdW50LiRza2lwO1xuICAgIHJldHVybiBQcm9taXNlLmFsbChbdGhpcy5maW5kTWFueShlbnRpdHksIHEpLCB0aGlzLmNvdW50KGVudGl0eSwgcUNvdW50KV0pO1xuICB9XG5cbiAgYWJzdHJhY3QgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeVNlYXJjaDxFPik6IFByb21pc2U8bnVtYmVyPjtcblxuICBhc3luYyBpbnNlcnRPbmU8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgY29uc3QgW2lkXSA9IGF3YWl0IHRoaXMuaW5zZXJ0TWFueShlbnRpdHksIFtwYXlsb2FkXSk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgYWJzdHJhY3QgaW5zZXJ0TWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSk6IFByb21pc2U8SWRWYWx1ZTxFPltdPjtcblxuICB1cGRhdGVPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICByZXR1cm4gdGhpcy51cGRhdGVNYW55KGVudGl0eSwgeyAkZmlsdGVyOiBpZCB9LCBwYXlsb2FkKTtcbiAgfVxuXG4gIGFic3RyYWN0IHVwZGF0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeVNlYXJjaDxFPiwgcGF5bG9hZDogRSk6IFByb21pc2U8bnVtYmVyPjtcblxuICBkZWxldGVPbmVCeUlkPEU+KGVudGl0eTogVHlwZTxFPiwgaWQ6IElkVmFsdWU8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5kZWxldGVNYW55KGVudGl0eSwgeyAkZmlsdGVyOiBpZCB9LCBvcHRzKTtcbiAgfVxuXG4gIGFic3RyYWN0IGRlbGV0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeVNlYXJjaDxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucyk6IFByb21pc2U8bnVtYmVyPjtcblxuICBhc3luYyBzYXZlT25lPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRSkge1xuICAgIGNvbnN0IFtpZF0gPSBhd2FpdCB0aGlzLnNhdmVNYW55KGVudGl0eSwgW3BheWxvYWRdKTtcbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICBhc3luYyBzYXZlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHBheWxvYWQ6IEVbXSkge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWRzOiBJZFZhbHVlPEU+W10gPSBbXTtcbiAgICBjb25zdCB1cGRhdGVzOiBFW10gPSBbXTtcbiAgICBjb25zdCBpbnNlcnRzOiBFW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgaXQgb2YgcGF5bG9hZCkge1xuICAgICAgaWYgKGl0W21ldGEuaWRdKSB7XG4gICAgICAgIGlmIChnZXRLZXlzKGl0KS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBpZHMucHVzaChpdFttZXRhLmlkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdXBkYXRlcy5wdXNoKGl0KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaW5zZXJ0cy5wdXNoKGl0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgLi4uaWRzLFxuICAgICAgLi4uKGluc2VydHMubGVuZ3RoID8gYXdhaXQgdGhpcy5pbnNlcnRNYW55KGVudGl0eSwgaW5zZXJ0cykgOiBbXSksXG4gICAgICAuLi51cGRhdGVzLm1hcChhc3luYyAoaXQpID0+IHtcbiAgICAgICAgY29uc3QgeyBbbWV0YS5pZF06IGlkLCAuLi5kYXRhIH0gPSBpdDtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVPbmVCeUlkKGVudGl0eSwgaWQsIGRhdGEgYXMgRSk7XG4gICAgICAgIHJldHVybiBpZDtcbiAgICAgIH0pLFxuICAgIF0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGZpbGxUb01hbnlSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPikge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVsYXRpb25zID0gZ2V0UHJvamVjdFJlbGF0aW9uS2V5cyhtZXRhLCBwcm9qZWN0KTtcblxuICAgIGZvciAoY29uc3QgcmVsS2V5IG9mIHJlbGF0aW9ucykge1xuICAgICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW3JlbEtleV07XG4gICAgICBjb25zdCByZWxFbnRpdHkgPSByZWxPcHRzLmVudGl0eSgpO1xuICAgICAgY29uc3QgcmVsUHJvamVjdCA9IGNsb25lKHByb2plY3RbcmVsS2V5IGFzIHN0cmluZ10pO1xuICAgICAgY29uc3QgcmVsUXVlcnk6IFF1ZXJ5PHVua25vd24+ID1cbiAgICAgICAgcmVsUHJvamVjdCA9PT0gdHJ1ZSB8fCByZWxQcm9qZWN0ID09PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHt9XG4gICAgICAgICAgOiBBcnJheS5pc0FycmF5KHJlbFByb2plY3QpXG4gICAgICAgICAgPyB7ICRwcm9qZWN0OiByZWxQcm9qZWN0IH1cbiAgICAgICAgICA6IHJlbFByb2plY3Q7XG4gICAgICBjb25zdCBpZHMgPSBwYXlsb2FkLm1hcCgoaXQpID0+IGl0W21ldGEuaWRdKTtcblxuICAgICAgaWYgKHJlbE9wdHMudGhyb3VnaCkge1xuICAgICAgICBjb25zdCBsb2NhbEZpZWxkID0gcmVsT3B0cy5yZWZlcmVuY2VzWzBdLmxvY2FsO1xuICAgICAgICBjb25zdCB0aHJvdWdoRW50aXR5ID0gcmVsT3B0cy50aHJvdWdoKCk7XG4gICAgICAgIGNvbnN0IHRocm91Z2hNZXRhID0gZ2V0TWV0YSh0aHJvdWdoRW50aXR5KTtcbiAgICAgICAgY29uc3QgdGFyZ2V0UmVsS2V5ID0gT2JqZWN0LmtleXModGhyb3VnaE1ldGEucmVsYXRpb25zKS5maW5kKChrZXkpID0+XG4gICAgICAgICAgdGhyb3VnaE1ldGEucmVsYXRpb25zW2tleV0ucmVmZXJlbmNlcy5zb21lKCh7IGxvY2FsIH0pID0+IGxvY2FsID09PSByZWxPcHRzLnJlZmVyZW5jZXNbMV0ubG9jYWwpLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB0aHJvdWdoRm91bmRzID0gYXdhaXQgdGhpcy5maW5kTWFueSh0aHJvdWdoRW50aXR5LCB7XG4gICAgICAgICAgJHByb2plY3Q6IHtcbiAgICAgICAgICAgIFtsb2NhbEZpZWxkXTogdHJ1ZSxcbiAgICAgICAgICAgIFt0YXJnZXRSZWxLZXldOiB7XG4gICAgICAgICAgICAgIC4uLnJlbFF1ZXJ5LFxuICAgICAgICAgICAgICAkcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgJGZpbHRlcjoge1xuICAgICAgICAgICAgW2xvY2FsRmllbGRdOiBpZHMsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGZvdW5kcyA9IHRocm91Z2hGb3VuZHMubWFwKChpdCkgPT4gKHsgLi4uaXRbdGFyZ2V0UmVsS2V5XSwgW2xvY2FsRmllbGRdOiBpdFtsb2NhbEZpZWxkXSB9KSk7XG4gICAgICAgIHRoaXMucHV0Q2hpbGRyZW5JblBhcmVudHMocGF5bG9hZCwgZm91bmRzLCBtZXRhLmlkLCBsb2NhbEZpZWxkLCByZWxLZXkpO1xuICAgICAgfSBlbHNlIGlmIChyZWxPcHRzLmNhcmRpbmFsaXR5ID09PSAnMW0nKSB7XG4gICAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlbE9wdHMucmVmZXJlbmNlc1swXS5mb3JlaWduO1xuICAgICAgICBpZiAocmVsUXVlcnkuJHByb2plY3QpIHtcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxRdWVyeS4kcHJvamVjdCkpIHtcbiAgICAgICAgICAgIGlmICghcmVsUXVlcnkuJHByb2plY3QuaW5jbHVkZXMoZm9yZWlnbkZpZWxkKSkge1xuICAgICAgICAgICAgICByZWxRdWVyeS4kcHJvamVjdC5wdXNoKGZvcmVpZ25GaWVsZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICghcmVsUXVlcnkuJHByb2plY3RbZm9yZWlnbkZpZWxkXSkge1xuICAgICAgICAgICAgcmVsUXVlcnkuJHByb2plY3RbZm9yZWlnbkZpZWxkXSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJlbFF1ZXJ5LiRmaWx0ZXIgPSB7IFtmb3JlaWduRmllbGRdOiBpZHMgfTtcbiAgICAgICAgY29uc3QgZm91bmRzID0gYXdhaXQgdGhpcy5maW5kTWFueShyZWxFbnRpdHksIHJlbFF1ZXJ5KTtcbiAgICAgICAgdGhpcy5wdXRDaGlsZHJlbkluUGFyZW50cyhwYXlsb2FkLCBmb3VuZHMsIG1ldGEuaWQsIGZvcmVpZ25GaWVsZCwgcmVsS2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcHV0Q2hpbGRyZW5JblBhcmVudHM8RT4oXG4gICAgcGFyZW50czogRVtdLFxuICAgIGNoaWxkcmVuOiBFW10sXG4gICAgcGFyZW50SWRLZXk6IHN0cmluZyxcbiAgICByZWZlcmVuY2VLZXk6IHN0cmluZyxcbiAgICByZWxLZXk6IHN0cmluZyxcbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY2hpbGRyZW5CeVBhcmVudE1hcCA9IGNoaWxkcmVuLnJlZHVjZSgoYWNjLCBjaGlsZCkgPT4ge1xuICAgICAgY29uc3QgcGFyZW5JZCA9IGNoaWxkW3JlZmVyZW5jZUtleV07XG4gICAgICBpZiAoIWFjY1twYXJlbklkXSkge1xuICAgICAgICBhY2NbcGFyZW5JZF0gPSBbXTtcbiAgICAgIH1cbiAgICAgIGFjY1twYXJlbklkXS5wdXNoKGNoaWxkKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pO1xuXG4gICAgZm9yIChjb25zdCBwYXJlbnQgb2YgcGFyZW50cykge1xuICAgICAgY29uc3QgcGFyZW50SWQgPSBwYXJlbnRbcGFyZW50SWRLZXldO1xuICAgICAgcGFyZW50W3JlbEtleV0gPSBjaGlsZHJlbkJ5UGFyZW50TWFwW3BhcmVudElkXTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5zZXJ0UmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIHBheWxvYWQubWFwKChpdCkgPT4ge1xuICAgICAgICBjb25zdCByZWxLZXlzID0gZ2V0UGVyc2lzdGFibGVSZWxhdGlvbnMobWV0YSwgaXQsICdwZXJzaXN0Jyk7XG4gICAgICAgIGlmICghcmVsS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKHJlbEtleXMubWFwKChyZWxLZXkpID0+IHRoaXMuc2F2ZVJlbGF0aW9uKGVudGl0eSwgaXQsIHJlbEtleSkpKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgdXBkYXRlUmVsYXRpb25zPEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IHJlbEtleXMgPSBnZXRQZXJzaXN0YWJsZVJlbGF0aW9ucyhtZXRhLCBwYXlsb2FkLCAncGVyc2lzdCcpO1xuXG4gICAgaWYgKCFyZWxLZXlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kcyA9IGF3YWl0IHRoaXMuZmluZE1hbnkoZW50aXR5LCB7IC4uLnEsICRwcm9qZWN0OiBbbWV0YS5pZF0gfSk7XG4gICAgY29uc3QgaWRzID0gZm91bmRzLm1hcCgoZm91bmQpID0+IGZvdW5kW21ldGEuaWRdKTtcblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgaWRzLm1hcCgoaWQpID0+XG4gICAgICAgIFByb21pc2UuYWxsKHJlbEtleXMubWFwKChyZWxLZXkpID0+IHRoaXMuc2F2ZVJlbGF0aW9uKGVudGl0eSwgeyAuLi5wYXlsb2FkLCBbbWV0YS5pZF06IGlkIH0sIHJlbEtleSwgdHJ1ZSkpKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBkZWxldGVSZWxhdGlvbnM8RT4oZW50aXR5OiBUeXBlPEU+LCBpZHM6IElkVmFsdWU8RT5bXSwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgcmVsS2V5cyA9IGdldFBlcnNpc3RhYmxlUmVsYXRpb25zKG1ldGEsIG1ldGEucmVsYXRpb25zIGFzIEUsICdkZWxldGUnKTtcblxuICAgIGZvciAoY29uc3QgcmVsS2V5IG9mIHJlbEtleXMpIHtcbiAgICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1tyZWxLZXldO1xuICAgICAgY29uc3QgcmVsRW50aXR5ID0gcmVsT3B0cy5lbnRpdHkoKTtcbiAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWxPcHRzLnJlZmVyZW5jZXNbMF0ubG9jYWw7XG4gICAgICBpZiAocmVsT3B0cy50aHJvdWdoKSB7XG4gICAgICAgIGNvbnN0IHRocm91Z2hFbnRpdHkgPSByZWxPcHRzLnRocm91Z2goKTtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHRocm91Z2hFbnRpdHksIHsgJGZpbHRlcjogeyBbbG9jYWxGaWVsZF06IGlkcyB9IH0sIG9wdHMpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkocmVsRW50aXR5LCB7IFtsb2NhbEZpZWxkXTogaWRzIH0sIG9wdHMpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBzYXZlUmVsYXRpb248RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFLCByZWxLZXk6IFJlbGF0aW9uS2V5PEU+LCBpc1VwZGF0ZT86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIGNvbnN0IGlkID0gcGF5bG9hZFttZXRhLmlkXTtcbiAgICBjb25zdCB7IGVudGl0eTogZW50aXR5R2V0dGVyLCBjYXJkaW5hbGl0eSwgcmVmZXJlbmNlcywgdGhyb3VnaCB9ID0gbWV0YS5yZWxhdGlvbnNbcmVsS2V5XTtcbiAgICBjb25zdCByZWxFbnRpdHkgPSBlbnRpdHlHZXR0ZXIoKTtcbiAgICBjb25zdCByZWxQYXlsb2FkID0gcGF5bG9hZFtyZWxLZXldIGFzIHVua25vd24gYXMgUmVsYXRpb25WYWx1ZTxFPltdO1xuXG4gICAgaWYgKGNhcmRpbmFsaXR5ID09PSAnMW0nIHx8IGNhcmRpbmFsaXR5ID09PSAnbW0nKSB7XG4gICAgICBpZiAodGhyb3VnaCkge1xuICAgICAgICBjb25zdCBsb2NhbEZpZWxkID0gcmVmZXJlbmNlc1swXS5sb2NhbDtcblxuICAgICAgICBjb25zdCB0aHJvdWdoRW50aXR5ID0gdGhyb3VnaCgpO1xuICAgICAgICBpZiAoaXNVcGRhdGUpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmRlbGV0ZU1hbnkodGhyb3VnaEVudGl0eSwgeyAkZmlsdGVyOiB7IFtsb2NhbEZpZWxkXTogaWQgfSB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVsUGF5bG9hZCkge1xuICAgICAgICAgIGNvbnN0IHNhdmVkSWRzID0gYXdhaXQgdGhpcy5zYXZlTWFueShyZWxFbnRpdHksIHJlbFBheWxvYWQpO1xuICAgICAgICAgIGNvbnN0IHRocm91Z2hCb2RpZXMgPSBzYXZlZElkcy5tYXAoKHJlbElkKSA9PiAoe1xuICAgICAgICAgICAgW3JlZmVyZW5jZXNbMF0ubG9jYWxdOiBpZCxcbiAgICAgICAgICAgIFtyZWZlcmVuY2VzWzFdLmxvY2FsXTogcmVsSWQsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIGF3YWl0IHRoaXMuaW5zZXJ0TWFueSh0aHJvdWdoRW50aXR5LCB0aHJvdWdoQm9kaWVzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBmb3JlaWduRmllbGQgPSByZWZlcmVuY2VzWzBdLmZvcmVpZ247XG4gICAgICBpZiAoaXNVcGRhdGUpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5kZWxldGVNYW55KHJlbEVudGl0eSwgeyAkZmlsdGVyOiB7IFtmb3JlaWduRmllbGRdOiBpZCB9IH0pO1xuICAgICAgfVxuICAgICAgaWYgKHJlbFBheWxvYWQpIHtcbiAgICAgICAgZm9yIChjb25zdCBpdCBvZiByZWxQYXlsb2FkKSB7XG4gICAgICAgICAgaXRbZm9yZWlnbkZpZWxkXSA9IGlkO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IHRoaXMuc2F2ZU1hbnkocmVsRW50aXR5LCByZWxQYXlsb2FkKTtcbiAgICAgIH1cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoY2FyZGluYWxpdHkgPT09ICcxMScpIHtcbiAgICAgIGNvbnN0IGZvcmVpZ25GaWVsZCA9IHJlZmVyZW5jZXNbMF0uZm9yZWlnbjtcbiAgICAgIGlmIChyZWxQYXlsb2FkID09PSBudWxsKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuZGVsZXRlTWFueShyZWxFbnRpdHksIHsgJGZpbHRlcjogeyBbZm9yZWlnbkZpZWxkXTogaWQgfSB9KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgYXdhaXQgdGhpcy5zYXZlT25lKHJlbEVudGl0eSwgeyAuLi5yZWxQYXlsb2FkLCBbZm9yZWlnbkZpZWxkXTogaWQgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNhcmRpbmFsaXR5ID09PSAnbTEnICYmIHJlbFBheWxvYWQpIHtcbiAgICAgIGNvbnN0IGxvY2FsRmllbGQgPSByZWZlcmVuY2VzWzBdLmxvY2FsO1xuICAgICAgY29uc3QgcmVmZXJlbmNlSWQgPSBhd2FpdCB0aGlzLmluc2VydE9uZShyZWxFbnRpdHksIHJlbFBheWxvYWQpO1xuICAgICAgYXdhaXQgdGhpcy51cGRhdGVPbmVCeUlkKGVudGl0eSwgaWQsIHsgW2xvY2FsRmllbGRdOiByZWZlcmVuY2VJZCB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBnZXRSZXBvc2l0b3J5PEU+KGVudGl0eTogVHlwZTxFPik6IFJlcG9zaXRvcnk8RT4ge1xuICAgIHJldHVybiBuZXcgR2VuZXJpY1JlcG9zaXRvcnkoZW50aXR5LCB0aGlzKTtcbiAgfVxuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGhhc09wZW5UcmFuc2FjdGlvbjogYm9vbGVhbjtcblxuICBhc3luYyB0cmFuc2FjdGlvbjxUPihjYWxsYmFjazogKCkgPT4gUHJvbWlzZTxUPikge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmJlZ2luVHJhbnNhY3Rpb24oKTtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNhbGxiYWNrKCk7XG4gICAgICBhd2FpdCB0aGlzLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgYXdhaXQgdGhpcy5yb2xsYmFja1RyYW5zYWN0aW9uKCk7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgYWJzdHJhY3QgYmVnaW5UcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IGNvbW1pdFRyYW5zYWN0aW9uKCk6IFByb21pc2U8dm9pZD47XG5cbiAgYWJzdHJhY3Qgcm9sbGJhY2tUcmFuc2FjdGlvbigpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIGFic3RyYWN0IHJlbGVhc2UoKTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==

@@ -21,2 +21,2 @@ export class AbstractQuerierPool {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyUG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVyL2Fic3RyYWN0UXVlcmllclBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFnQixtQkFBbUI7SUFDbEI7SUFBckIsWUFBcUIsS0FBb0I7UUFBcEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUFHLENBQUM7SUFZN0M7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBSSxRQUEwQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJO1lBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFJLEdBQUcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLE9BQU8sR0FBRyxDQUFDO1NBQ1o7Z0JBQVM7WUFDUixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRXh0cmFPcHRpb25zLCBRdWVyaWVyLCBRdWVyaWVyUG9vbCB9IGZyb20gJ251a2FrL3R5cGUnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RRdWVyaWVyUG9vbDxRIGV4dGVuZHMgUXVlcmllcj4gaW1wbGVtZW50cyBRdWVyaWVyUG9vbDxRPiB7XG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGV4dHJhPzogRXh0cmFPcHRpb25zKSB7fVxuXG4gIC8qKlxuICAgKiBnZXQgYSBxdWVyaWVyIGZyb20gdGhlIHBvb2wuXG4gICAqL1xuICBhYnN0cmFjdCBnZXRRdWVyaWVyKCk6IFByb21pc2U8UT47XG5cbiAgLyoqXG4gICAqIGVuZCB0aGUgcG9vbC5cbiAgICovXG4gIGFic3RyYWN0IGVuZCgpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBBdXRvbWF0aWNhbGx5IHdyYXBzIHRoZSBnaXZlbiBjYWxsYmFjayBpbnNpZGUgYSB0cmFuc2FjdGlvbiwgYW5kIGF1dG8tcmVsZWFzZXMgdGhlIHF1ZXJpZXIgYWZ0ZXIgcnVubmluZy5cbiAgICogQHBhcmFtIGNhbGxiYWNrIHRoZSBmdW5jdGlvbiB0byBleGVjdXRlIGluc2lkZSB0aGUgdHJhbnNhY3Rpb24gY29udGV4dC5cbiAgICovXG4gIGFzeW5jIHRyYW5zYWN0aW9uPFQ+KGNhbGxiYWNrOiAocXVlcmllcjogUXVlcmllcikgPT4gUHJvbWlzZTxUPikge1xuICAgIGNvbnN0IHF1ZXJpZXIgPSBhd2FpdCB0aGlzLmdldFF1ZXJpZXIoKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgcXVlcmllci50cmFuc2FjdGlvbjxUPigoKSA9PiBjYWxsYmFjayhxdWVyaWVyKSk7XG4gICAgICByZXR1cm4gcmVzO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBxdWVyaWVyLnJlbGVhc2UoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RRdWVyaWVyUG9vbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVyL2Fic3RyYWN0UXVlcmllclBvb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFnQixtQkFBbUI7SUFDbEI7SUFBckIsWUFBcUIsS0FBb0I7UUFBcEIsVUFBSyxHQUFMLEtBQUssQ0FBZTtJQUFHLENBQUM7SUFZN0M7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLFdBQVcsQ0FBSSxRQUEwQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsR0FBRyxNQUFNLE9BQU8sQ0FBQyxXQUFXLENBQUksR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbEUsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO2dCQUFTLENBQUM7WUFDVCxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHRyYU9wdGlvbnMsIFF1ZXJpZXIsIFF1ZXJpZXJQb29sIH0gZnJvbSAnbnVrYWsvdHlwZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFF1ZXJpZXJQb29sPFEgZXh0ZW5kcyBRdWVyaWVyPiBpbXBsZW1lbnRzIFF1ZXJpZXJQb29sPFE+IHtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgZXh0cmE/OiBFeHRyYU9wdGlvbnMpIHt9XG5cbiAgLyoqXG4gICAqIGdldCBhIHF1ZXJpZXIgZnJvbSB0aGUgcG9vbC5cbiAgICovXG4gIGFic3RyYWN0IGdldFF1ZXJpZXIoKTogUHJvbWlzZTxRPjtcblxuICAvKipcbiAgICogZW5kIHRoZSBwb29sLlxuICAgKi9cbiAgYWJzdHJhY3QgZW5kKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgd3JhcHMgdGhlIGdpdmVuIGNhbGxiYWNrIGluc2lkZSBhIHRyYW5zYWN0aW9uLCBhbmQgYXV0by1yZWxlYXNlcyB0aGUgcXVlcmllciBhZnRlciBydW5uaW5nLlxuICAgKiBAcGFyYW0gY2FsbGJhY2sgdGhlIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgaW5zaWRlIHRoZSB0cmFuc2FjdGlvbiBjb250ZXh0LlxuICAgKi9cbiAgYXN5bmMgdHJhbnNhY3Rpb248VD4oY2FsbGJhY2s6IChxdWVyaWVyOiBRdWVyaWVyKSA9PiBQcm9taXNlPFQ+KSB7XG4gICAgY29uc3QgcXVlcmllciA9IGF3YWl0IHRoaXMuZ2V0UXVlcmllcigpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBxdWVyaWVyLnRyYW5zYWN0aW9uPFQ+KCgpID0+IGNhbGxiYWNrKHF1ZXJpZXIpKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgIH1cbiAgfVxufVxuIl19

@@ -20,3 +20,3 @@ import { Type, QueryOptions, QueryUpdateResult, QuerySearch, Query } from '../type/index.js';

count<E>(entity: Type<E>, q?: QuerySearch<E>): Promise<number>;
insertMany<E>(entity: Type<E>, payload: E[]): Promise<E[import("../type/entity.js").IdKey<E>][]>;
insertMany<E>(entity: Type<E>, payload: E[]): Promise<E[import("nukak/type/entity.js").IdKey<E>][]>;
updateMany<E>(entity: Type<E>, q: QuerySearch<E>, payload: E): Promise<number>;

@@ -23,0 +23,0 @@ deleteMany<E>(entity: Type<E>, q: QuerySearch<E>, opts?: QueryOptions): Promise<number>;

@@ -85,2 +85,2 @@ import { unflatObjects, clone } from '../util/index.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGVBQWU7SUFHekM7SUFGYixxQkFBcUIsQ0FBVztJQUV4QyxZQUFxQixPQUEyQjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURXLFlBQU8sR0FBUCxPQUFPLENBQW9CO0lBRWhELENBQUM7SUFjUSxLQUFLLENBQUMsUUFBUSxDQUFJLE1BQWUsRUFBRSxDQUFXO1FBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUksS0FBSyxDQUFDLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSyxDQUFJLE1BQWUsRUFBRSxJQUFvQixFQUFFO1FBQzdELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQW9CLEtBQUssQ0FBQyxDQUFDO1FBQ3JELE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRVEsS0FBSyxDQUFDLFVBQVUsQ0FBSSxNQUFlLEVBQUUsT0FBWTtRQUN4RCxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3QixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3BDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBWSxDQUFDLEtBQUssT0FBTyxHQUFHLEtBQUssQ0FBQztZQUMxQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVRLEtBQUssQ0FBQyxVQUFVLENBQUksTUFBZSxFQUFFLENBQWlCLEVBQUUsT0FBVTtRQUN6RSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEQsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMvQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRVEsS0FBSyxDQUFDLFVBQVUsQ0FBSSxNQUFlLEVBQUUsQ0FBaUIsRUFBRSxJQUFtQjtRQUNsRixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0Isc0VBQXNFO1FBQ3RFLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUksU0FBUyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7WUFDbEIsT0FBTyxDQUFDLENBQUM7U0FDVjtRQUNELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsSUFBYSxrQkFBa0I7UUFDN0IsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxnQkFBZ0IsRUFBQyxtQ0FBbUM7UUFDakUsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDOUIsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUN4QztRQUNELE9BQU87UUFDUCx3QkFBd0I7UUFDeEIseUVBQXlFO1FBQ3pFLElBQUk7UUFDSixNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVRLEtBQUssQ0FBQyxpQkFBaUI7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVRLEtBQUssQ0FBQyxtQkFBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUMvQixNQUFNLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSwgUXVlcnlPcHRpb25zLCBRdWVyeVVwZGF0ZVJlc3VsdCwgUXVlcnlTZWFyY2gsIFF1ZXJ5IH0gZnJvbSAnLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyB1bmZsYXRPYmplY3RzLCBjbG9uZSB9IGZyb20gJy4uL3V0aWwvaW5kZXguanMnO1xuaW1wb3J0IHsgQWJzdHJhY3RTcWxEaWFsZWN0IH0gZnJvbSAnLi4vZGlhbGVjdC9pbmRleC5qcyc7XG5pbXBvcnQgeyBnZXRNZXRhIH0gZnJvbSAnLi4vZW50aXR5L2luZGV4LmpzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RRdWVyaWVyIH0gZnJvbSAnLi9hYnN0cmFjdFF1ZXJpZXIuanMnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RTcWxRdWVyaWVyIGV4dGVuZHMgQWJzdHJhY3RRdWVyaWVyIHtcbiAgcHJpdmF0ZSBoYXNQZW5kaW5nVHJhbnNhY3Rpb24/OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGRpYWxlY3Q6IEFic3RyYWN0U3FsRGlhbGVjdCkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICAvKipcbiAgICogcmVhZCBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IHRoZSBxdWVyeVxuICAgKi9cbiAgYWJzdHJhY3QgYWxsPFQ+KHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPFRbXT47XG5cbiAgLyoqXG4gICAqIGluc2VydC91cGRhdGUvZGVsZXRlL2RkbCBxdWVyeS5cbiAgICogQHBhcmFtIHF1ZXJ5IHRoZSBxdWVyeVxuICAgKi9cbiAgYWJzdHJhY3QgcnVuKHF1ZXJ5OiBzdHJpbmcpOiBQcm9taXNlPFF1ZXJ5VXBkYXRlUmVzdWx0PjtcblxuICBvdmVycmlkZSBhc3luYyBmaW5kTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5PEU+KSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuZmluZChlbnRpdHksIHEpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuYWxsPEU+KHF1ZXJ5KTtcbiAgICBjb25zdCBmb3VuZHMgPSB1bmZsYXRPYmplY3RzKHJlcyk7XG4gICAgYXdhaXQgdGhpcy5maWxsVG9NYW55UmVsYXRpb25zKGVudGl0eSwgZm91bmRzLCBxLiRwcm9qZWN0KTtcbiAgICByZXR1cm4gZm91bmRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgY291bnQ8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeVNlYXJjaDxFPiA9IHt9KSB7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuY291bnQoZW50aXR5LCBxKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmFsbDx7IGNvdW50OiBudW1iZXIgfT4ocXVlcnkpO1xuICAgIHJldHVybiBOdW1iZXIocmVzWzBdLmNvdW50KTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGluc2VydE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBwYXlsb2FkOiBFW10pIHtcbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuaW5zZXJ0KGVudGl0eSwgcGF5bG9hZCk7XG4gICAgY29uc3QgeyBmaXJzdElkIH0gPSBhd2FpdCB0aGlzLnJ1bihxdWVyeSk7XG4gICAgY29uc3QgbWV0YSA9IGdldE1ldGEoZW50aXR5KTtcbiAgICBjb25zdCBpZHMgPSBwYXlsb2FkLm1hcCgoaXQsIGluZGV4KSA9PiB7XG4gICAgICBpdFttZXRhLmlkIGFzIHN0cmluZ10gPz89IGZpcnN0SWQgKyBpbmRleDtcbiAgICAgIHJldHVybiBpdFttZXRhLmlkXTtcbiAgICB9KTtcbiAgICBhd2FpdCB0aGlzLmluc2VydFJlbGF0aW9ucyhlbnRpdHksIHBheWxvYWQpO1xuICAgIHJldHVybiBpZHM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyB1cGRhdGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnlTZWFyY2g8RT4sIHBheWxvYWQ6IEUpIHtcbiAgICBwYXlsb2FkID0gY2xvbmUocGF5bG9hZCk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QudXBkYXRlKGVudGl0eSwgcSwgcGF5bG9hZCk7XG4gICAgY29uc3QgeyBjaGFuZ2VzIH0gPSBhd2FpdCB0aGlzLnJ1bihxdWVyeSk7XG4gICAgYXdhaXQgdGhpcy51cGRhdGVSZWxhdGlvbnMoZW50aXR5LCBxLCBwYXlsb2FkKTtcbiAgICByZXR1cm4gY2hhbmdlcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGRlbGV0ZU1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeVNlYXJjaDxFPiwgb3B0cz86IFF1ZXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgLy8gVE9ETzogcHJvamVjdCBJRCBzaG91bGQgYmUgYXV0b21hdGljIHVubGVzcyBzcGVjaWZpZWQgdG8gYmUgb21taXRlZFxuICAgIGNvbnN0IGZpbmRRdWVyeSA9IGF3YWl0IHRoaXMuZGlhbGVjdC5maW5kKGVudGl0eSwgeyAuLi5xLCAkcHJvamVjdDogW21ldGEuaWRdIH0pO1xuICAgIGNvbnN0IGZvdW5kcyA9IGF3YWl0IHRoaXMuYWxsPEU+KGZpbmRRdWVyeSk7XG4gICAgaWYgKCFmb3VuZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgY29uc3QgaWRzID0gZm91bmRzLm1hcCgoaXQpID0+IGl0W21ldGEuaWRdKTtcbiAgICBjb25zdCBxdWVyeSA9IHRoaXMuZGlhbGVjdC5kZWxldGUoZW50aXR5LCB7ICRmaWx0ZXI6IGlkcyB9LCBvcHRzKTtcbiAgICBjb25zdCB7IGNoYW5nZXMgfSA9IGF3YWl0IHRoaXMucnVuKHF1ZXJ5KTtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVJlbGF0aW9ucyhlbnRpdHksIGlkcywgb3B0cyk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBnZXQgaGFzT3BlblRyYW5zYWN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGJlZ2luVHJhbnNhY3Rpb24oLyppc29sYXRpb25MZXZlbD86IElzb2xhdGlvbkxldmVsKi8pIHtcbiAgICBpZiAodGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcigncGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICAvLyBUT0RPXG4gICAgLy8gaWYgKGlzb2xhdGlvbkxldmVsKSB7XG4gICAgLy8gICBhd2FpdCB0aGlzLnJ1bihgU0VUIFRSQU5TQUNUSU9OIElTT0xBVElPTiBMRVZFTCAke2lzb2xhdGlvbkxldmVsfWApO1xuICAgIC8vIH1cbiAgICBhd2FpdCB0aGlzLnJ1bih0aGlzLmRpYWxlY3QuYmVnaW5UcmFuc2FjdGlvbkNvbW1hbmQpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvbW1pdFRyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignQ09NTUlUJyk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyByb2xsYmFja1RyYW5zYWN0aW9uKCkge1xuICAgIGlmICghdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcignbm90IGEgcGVuZGluZyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLnJ1bignUk9MTEJBQ0snKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3RTcWxRdWVyaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXIvYWJzdHJhY3RTcWxRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFeEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxNQUFNLE9BQWdCLGtCQUFtQixTQUFRLGVBQWU7SUFHekM7SUFGYixxQkFBcUIsQ0FBVztJQUV4QyxZQUFxQixPQUEyQjtRQUM5QyxLQUFLLEVBQUUsQ0FBQztRQURXLFlBQU8sR0FBUCxPQUFPLENBQW9CO0lBRWhELENBQUM7SUFjUSxLQUFLLENBQUMsUUFBUSxDQUFJLE1BQWUsRUFBRSxDQUFXO1FBQ3JELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUksS0FBSyxDQUFDLENBQUM7UUFDckMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFUSxLQUFLLENBQUMsS0FBSyxDQUFJLE1BQWUsRUFBRSxJQUFvQixFQUFFO1FBQzdELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1QyxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxH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LHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFUSxLQUFLLENBQUMsZ0JBQWdCLEVBQUMsbUNBQW1DO1FBQ2pFLElBQUksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDL0IsTUFBTSxTQUFTLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTztRQUNQLHdCQUF3QjtRQUN4Qix5RUFBeUU7UUFDekUsSUFBSTtRQUNKLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBRVEsS0FBSyxDQUFDLGlCQUFpQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDaEMsTUFBTSxTQUFTLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBQ0QsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVRLEtBQUssQ0FBQyxtQkFBbUI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sU0FBUyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUNELE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMscUJBQXFCLEdBQUcsU0FBUyxDQUFDO0lBQ3pDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUsIFF1ZXJ5T3B0aW9ucywgUXVlcnlVcGRhdGVSZXN1bHQsIFF1ZXJ5U2VhcmNoLCBRdWVyeSB9IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuaW1wb3J0IHsgdW5mbGF0T2JqZWN0cywgY2xvbmUgfSBmcm9tICcuLi91dGlsL2luZGV4LmpzJztcbmltcG9ydCB7IEFic3RyYWN0U3FsRGlhbGVjdCB9IGZyb20gJy4uL2RpYWxlY3QvaW5kZXguanMnO1xuaW1wb3J0IHsgZ2V0TWV0YSB9IGZyb20gJy4uL2VudGl0eS9pbmRleC5qcyc7XG5cbmltcG9ydCB7IEFic3RyYWN0UXVlcmllciB9IGZyb20gJy4vYWJzdHJhY3RRdWVyaWVyLmpzJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3FsUXVlcmllciBleHRlbmRzIEFic3RyYWN0UXVlcmllciB7XG4gIHByaXZhdGUgaGFzUGVuZGluZ1RyYW5zYWN0aW9uPzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBkaWFsZWN0OiBBYnN0cmFjdFNxbERpYWxlY3QpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlYWQgcXVlcnkuXG4gICAqIEBwYXJhbSBxdWVyeSB0aGUgcXVlcnlcbiAgICovXG4gIGFic3RyYWN0IGFsbDxUPihxdWVyeTogc3RyaW5nKTogUHJvbWlzZTxUW10+O1xuXG4gIC8qKlxuICAgKiBpbnNlcnQvdXBkYXRlL2RlbGV0ZS9kZGwgcXVlcnkuXG4gICAqIEBwYXJhbSBxdWVyeSB0aGUgcXVlcnlcbiAgICovXG4gIGFic3RyYWN0IHJ1bihxdWVyeTogc3RyaW5nKTogUHJvbWlzZTxRdWVyeVVwZGF0ZVJlc3VsdD47XG5cbiAgb3ZlcnJpZGUgYXN5bmMgZmluZE1hbnk8RT4oZW50aXR5OiBUeXBlPEU+LCBxOiBRdWVyeTxFPikge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LmZpbmQoZW50aXR5LCBxKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmFsbDxFPihxdWVyeSk7XG4gICAgY29uc3QgZm91bmRzID0gdW5mbGF0T2JqZWN0cyhyZXMpO1xuICAgIGF3YWl0IHRoaXMuZmlsbFRvTWFueVJlbGF0aW9ucyhlbnRpdHksIGZvdW5kcywgcS4kcHJvamVjdCk7XG4gICAgcmV0dXJuIGZvdW5kcztcbiAgfVxuXG4gIG92ZXJyaWRlIGFzeW5jIGNvdW50PEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnlTZWFyY2g8RT4gPSB7fSkge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LmNvdW50KGVudGl0eSwgcSk7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5hbGw8eyBjb3VudDogbnVtYmVyIH0+KHF1ZXJ5KTtcbiAgICByZXR1cm4gTnVtYmVyKHJlc1swXS5jb3VudCk7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBpbnNlcnRNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcGF5bG9hZDogRVtdKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0Lmluc2VydChlbnRpdHksIHBheWxvYWQpO1xuICAgIGNvbnN0IHsgZmlyc3RJZCB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGNvbnN0IG1ldGEgPSBnZXRNZXRhKGVudGl0eSk7XG4gICAgY29uc3QgaWRzID0gcGF5bG9hZC5tYXAoKGl0LCBpbmRleCkgPT4ge1xuICAgICAgaXRbbWV0YS5pZCBhcyBzdHJpbmddID8/PSBmaXJzdElkICsgaW5kZXg7XG4gICAgICByZXR1cm4gaXRbbWV0YS5pZF07XG4gICAgfSk7XG4gICAgYXdhaXQgdGhpcy5pbnNlcnRSZWxhdGlvbnMoZW50aXR5LCBwYXlsb2FkKTtcbiAgICByZXR1cm4gaWRzO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgdXBkYXRlTWFueTxFPihlbnRpdHk6IFR5cGU8RT4sIHE6IFF1ZXJ5U2VhcmNoPEU+LCBwYXlsb2FkOiBFKSB7XG4gICAgcGF5bG9hZCA9IGNsb25lKHBheWxvYWQpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5kaWFsZWN0LnVwZGF0ZShlbnRpdHksIHEsIHBheWxvYWQpO1xuICAgIGNvbnN0IHsgY2hhbmdlcyB9ID0gYXdhaXQgdGhpcy5ydW4ocXVlcnkpO1xuICAgIGF3YWl0IHRoaXMudXBkYXRlUmVsYXRpb25zKGVudGl0eSwgcSwgcGF5bG9hZCk7XG4gICAgcmV0dXJuIGNoYW5nZXM7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBkZWxldGVNYW55PEU+KGVudGl0eTogVHlwZTxFPiwgcTogUXVlcnlTZWFyY2g8RT4sIG9wdHM/OiBRdWVyeU9wdGlvbnMpIHtcbiAgICBjb25zdCBtZXRhID0gZ2V0TWV0YShlbnRpdHkpO1xuICAgIC8vIFRPRE86IHByb2plY3QgSUQgc2hvdWxkIGJlIGF1dG9tYXRpYyB1bmxlc3Mgc3BlY2lmaWVkIHRvIGJlIG9tbWl0ZWRcbiAgICBjb25zdCBmaW5kUXVlcnkgPSBhd2FpdCB0aGlzLmRpYWxlY3QuZmluZChlbnRpdHksIHsgLi4ucSwgJHByb2plY3Q6IFttZXRhLmlkXSB9KTtcbiAgICBjb25zdCBmb3VuZHMgPSBhd2FpdCB0aGlzLmFsbDxFPihmaW5kUXVlcnkpO1xuICAgIGlmICghZm91bmRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNvbnN0IGlkcyA9IGZvdW5kcy5tYXAoKGl0KSA9PiBpdFttZXRhLmlkXSk7XG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmRpYWxlY3QuZGVsZXRlKGVudGl0eSwgeyAkZmlsdGVyOiBpZHMgfSwgb3B0cyk7XG4gICAgY29uc3QgeyBjaGFuZ2VzIH0gPSBhd2FpdCB0aGlzLnJ1bihxdWVyeSk7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVSZWxhdGlvbnMoZW50aXR5LCBpZHMsIG9wdHMpO1xuICAgIHJldHVybiBjaGFuZ2VzO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0IGhhc09wZW5UcmFuc2FjdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb247XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBiZWdpblRyYW5zYWN0aW9uKC8qaXNvbGF0aW9uTGV2ZWw/OiBJc29sYXRpb25MZXZlbCovKSB7XG4gICAgaWYgKHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ3BlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgLy8gVE9ET1xuICAgIC8vIGlmIChpc29sYXRpb25MZXZlbCkge1xuICAgIC8vICAgYXdhaXQgdGhpcy5ydW4oYFNFVCBUUkFOU0FDVElPTiBJU09MQVRJT04gTEVWRUwgJHtpc29sYXRpb25MZXZlbH1gKTtcbiAgICAvLyB9XG4gICAgYXdhaXQgdGhpcy5ydW4odGhpcy5kaWFsZWN0LmJlZ2luVHJhbnNhY3Rpb25Db21tYW5kKTtcbiAgICB0aGlzLmhhc1BlbmRpbmdUcmFuc2FjdGlvbiA9IHRydWU7XG4gIH1cblxuICBvdmVycmlkZSBhc3luYyBjb21taXRUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ydW4oJ0NPTU1JVCcpO1xuICAgIHRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgb3ZlcnJpZGUgYXN5bmMgcm9sbGJhY2tUcmFuc2FjdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuaGFzUGVuZGluZ1RyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoJ25vdCBhIHBlbmRpbmcgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ydW4oJ1JPTExCQUNLJyk7XG4gICAgdGhpcy5oYXNQZW5kaW5nVHJhbnNhY3Rpb24gPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==

@@ -34,2 +34,2 @@ const metadataKey = Symbol('InjectQuerier');

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci9pbmplY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU1QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUNuRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRTlCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDdkIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7U0FDcEM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUN6QztRQUVELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakQsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDO1FBRXRDLElBQUksaUJBQWlCLEVBQUU7WUFDckIsTUFBTSxJQUFJLFNBQVMsQ0FBQyw4Q0FBOEMsV0FBVyxDQUFDLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDO1NBQ2hHO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFJLE9BQWdCLEVBQUUsR0FBVztJQUN0RSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRTlCLE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUU7UUFDbkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEQsSUFBSSxJQUFJLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtZQUN2QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUNsQjtRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQWEsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxFQUFFO1lBQ1osT0FBTztTQUNSO1FBRUQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDdEM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5LCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleC5qcyc7XG5cbmNvbnN0IG1ldGFkYXRhS2V5ID0gU3ltYm9sKCdJbmplY3RRdWVyaWVyJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBJbmplY3RRdWVyaWVyKCkge1xuICByZXR1cm4gKHByb3RvOiBvYmplY3QsIGtleTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgeyBjb25zdHJ1Y3RvciB9ID0gcHJvdG87XG5cbiAgICBpZiAoIXByb3RvW21ldGFkYXRhS2V5XSkge1xuICAgICAgcHJvdG9bbWV0YWRhdGFLZXldID0gbmV3IFdlYWtNYXAoKTtcbiAgICB9XG5cbiAgICBpZiAoIXByb3RvW21ldGFkYXRhS2V5XS5oYXMoY29uc3RydWN0b3IpKSB7XG4gICAgICBwcm90b1ttZXRhZGF0YUtleV0uc2V0KGNvbnN0cnVjdG9yLCB7fSk7XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YSA9IHByb3RvW21ldGFkYXRhS2V5XS5nZXQoY29uc3RydWN0b3IpO1xuICAgIGNvbnN0IGlzQWxyZWFkeUluamVjdGVkID0ga2V5IGluIG1ldGE7XG5cbiAgICBpZiAoaXNBbHJlYWR5SW5qZWN0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEBJbmplY3RRdWVyaWVyKCkgY2FuIG9ubHkgYXBwZWFycyBvbmNlIGluICcke2NvbnN0cnVjdG9yLm5hbWV9LiR7a2V5fSd9YCk7XG4gICAgfVxuXG4gICAgbWV0YVtrZXldID0gaW5kZXg7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleDxTPihzZXJ2aWNlOiBUeXBlPFM+LCBrZXk6IEtleTxTPikge1xuICBsZXQgcHJvdG8gPSBzZXJ2aWNlLnByb3RvdHlwZTtcblxuICB3aGlsZSAocHJvdG8uY29uc3RydWN0b3IgIT09IE9iamVjdCkge1xuICAgIGNvbnN0IG1ldGEgPSBwcm90b1ttZXRhZGF0YUtleV0/LmdldChwcm90by5jb25zdHJ1Y3Rvcik7XG5cbiAgICBpZiAobWV0YSAmJiBrZXkgaW4gbWV0YSkge1xuICAgICAgcmV0dXJuIG1ldGFba2V5XTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvdG8pIGFzIEtleTxTPltdO1xuICAgIGNvbnN0IGlzT3duS2V5ID0ga2V5cy5pbmNsdWRlcyhrZXkpO1xuXG4gICAgaWYgKGlzT3duS2V5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0UXVlcmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci9pbmplY3RRdWVyaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztBQUU1QyxNQUFNLFVBQVUsYUFBYTtJQUMzQixPQUFPLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUNuRCxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsS0FBSyxDQUFDO1FBRTlCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN4QixLQUFLLENBQUMsV0FBVyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNyQyxDQUFDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxNQUFNLGlCQUFpQixHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUM7UUFFdEMsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RCLE1BQU0sSUFBSSxTQUFTLENBQUMsOENBQThDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNqRyxDQUFDO1FBRUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFJLE9BQWdCLEVBQUUsR0FBVztJQUN0RSxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRTlCLE9BQU8sS0FBSyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQUUsQ0FBQztRQUNwQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUV4RCxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDeEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQWEsQ0FBQztRQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXBDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1QsQ0FBQztRQUVELEtBQUssR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5LCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleC5qcyc7XG5cbmNvbnN0IG1ldGFkYXRhS2V5ID0gU3ltYm9sKCdJbmplY3RRdWVyaWVyJyk7XG5cbmV4cG9ydCBmdW5jdGlvbiBJbmplY3RRdWVyaWVyKCkge1xuICByZXR1cm4gKHByb3RvOiBvYmplY3QsIGtleTogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgeyBjb25zdHJ1Y3RvciB9ID0gcHJvdG87XG5cbiAgICBpZiAoIXByb3RvW21ldGFkYXRhS2V5XSkge1xuICAgICAgcHJvdG9bbWV0YWRhdGFLZXldID0gbmV3IFdlYWtNYXAoKTtcbiAgICB9XG5cbiAgICBpZiAoIXByb3RvW21ldGFkYXRhS2V5XS5oYXMoY29uc3RydWN0b3IpKSB7XG4gICAgICBwcm90b1ttZXRhZGF0YUtleV0uc2V0KGNvbnN0cnVjdG9yLCB7fSk7XG4gICAgfVxuXG4gICAgY29uc3QgbWV0YSA9IHByb3RvW21ldGFkYXRhS2V5XS5nZXQoY29uc3RydWN0b3IpO1xuICAgIGNvbnN0IGlzQWxyZWFkeUluamVjdGVkID0ga2V5IGluIG1ldGE7XG5cbiAgICBpZiAoaXNBbHJlYWR5SW5qZWN0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoYEBJbmplY3RRdWVyaWVyKCkgY2FuIG9ubHkgYXBwZWFycyBvbmNlIGluICcke2NvbnN0cnVjdG9yLm5hbWV9LiR7a2V5fSd9YCk7XG4gICAgfVxuXG4gICAgbWV0YVtrZXldID0gaW5kZXg7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleDxTPihzZXJ2aWNlOiBUeXBlPFM+LCBrZXk6IEtleTxTPikge1xuICBsZXQgcHJvdG8gPSBzZXJ2aWNlLnByb3RvdHlwZTtcblxuICB3aGlsZSAocHJvdG8uY29uc3RydWN0b3IgIT09IE9iamVjdCkge1xuICAgIGNvbnN0IG1ldGEgPSBwcm90b1ttZXRhZGF0YUtleV0/LmdldChwcm90by5jb25zdHJ1Y3Rvcik7XG5cbiAgICBpZiAobWV0YSAmJiBrZXkgaW4gbWV0YSkge1xuICAgICAgcmV0dXJuIG1ldGFba2V5XTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMocHJvdG8pIGFzIEtleTxTPltdO1xuICAgIGNvbnN0IGlzT3duS2V5ID0ga2V5cy5pbmNsdWRlcyhrZXkpO1xuXG4gICAgaWYgKGlzT3duS2V5KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgcHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YocHJvdG8pO1xuICB9XG59XG4iXX0=

@@ -48,2 +48,2 @@ import { getQuerierPool } from '../../options.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci90cmFuc2FjdGlvbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQzVCLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFdBQVcsTUFJVCxFQUFFO0lBQ0osT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsY0FBa0MsRUFBUSxFQUFFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUF3QixDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFcEUsSUFBSSxvQkFBb0IsS0FBSyxTQUFTLEVBQUU7WUFDdEMsTUFBTSxTQUFTLENBQUMsMENBQTBDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7U0FDOUY7UUFFRCxjQUFjLENBQUMsS0FBSyxHQUFHLEtBQUssVUFBVSxJQUFJLENBQWUsR0FBRyxJQUFXO1lBQ3JFLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLGdCQUF5QixDQUFDO1lBQzlCLElBQUksT0FBZ0IsQ0FBQztZQUVyQixJQUFJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO2dCQUNoQyxPQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7YUFDeEM7aUJBQU07Z0JBQ0wsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixNQUFNLElBQUksR0FBRyxXQUFXLElBQUksY0FBYyxFQUFFLENBQUM7Z0JBQzdDLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQ3hDO1lBRUQsSUFBSTtnQkFDRixJQUFJLFdBQVcsS0FBSyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQzdELE1BQU0sT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7aUJBQ2xDO2dCQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELElBQUksZ0JBQWdCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFO29CQUNsRCxNQUFNLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2lCQUNuQztnQkFDRCxPQUFPLElBQUksQ0FBQzthQUNiO1lBQUMsT0FBTyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEVBQUU7b0JBQ2xELE1BQU0sT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7aUJBQ3JDO2dCQUNELE1BQU0sR0FBRyxDQUFDO2FBQ1g7b0JBQVM7Z0JBQ1IsSUFBSSxnQkFBZ0IsRUFBRTtvQkFDcEIsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7aUJBQ3pCO2FBQ0Y7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUXVlcmllciwgUXVlcmllclBvb2wsIFR5cGUgfSBmcm9tICcuLi8uLi90eXBlL2luZGV4LmpzJztcbmltcG9ydCB7IGdldFF1ZXJpZXJQb29sIH0gZnJvbSAnLi4vLi4vb3B0aW9ucy5qcyc7XG5pbXBvcnQgeyBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleCB9IGZyb20gJy4vaW5qZWN0UXVlcmllci5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBUcmFuc2FjdGlvbmFsKHtcbiAgcHJvcGFnYXRpb24gPSAncmVxdWlyZWQnLFxuICBxdWVyaWVyUG9vbCxcbn06IHtcbiAgcmVhZG9ubHkgcHJvcGFnYXRpb24/OiAnc3VwcG9ydGVkJyB8ICdyZXF1aXJlZCc7XG4gIHJlYWRvbmx5IHF1ZXJpZXJQb29sPzogUXVlcmllclBvb2w7XG59ID0ge30pIHtcbiAgcmV0dXJuICh0YXJnZXQ6IG9iamVjdCwga2V5OiBzdHJpbmcsIHByb3BEZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpOiB2b2lkID0+IHtcbiAgICBjb25zdCB0aGVDbGFzcyA9IHRhcmdldC5jb25zdHJ1Y3RvciBhcyBUeXBlPGFueT47XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBwcm9wRGVzY3JpcHRvci52YWx1ZTtcbiAgICBjb25zdCBpbmplY3RlZFF1ZXJpZXJJbmRleCA9IGdldEluamVjdGVkUXVlcmllckluZGV4KHRoZUNsYXNzLCBrZXkpO1xuXG4gICAgaWYgKGluamVjdGVkUXVlcmllckluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IFR5cGVFcnJvcihgbWlzc2luZyBkZWNvcmF0b3IgQEluamVjdFF1ZXJpZXIoKSBpbiAnJHt0YXJnZXQuY29uc3RydWN0b3IubmFtZX0uJHtrZXl9J2ApO1xuICAgIH1cblxuICAgIHByb3BEZXNjcmlwdG9yLnZhbHVlID0gYXN5bmMgZnVuY3Rpb24gZnVuYyh0aGlzOiBvYmplY3QsIC4uLmFyZ3M6IGFueVtdKSB7XG4gICAgICBjb25zdCBwYXJhbXMgPSBbLi4uYXJnc107XG4gICAgICBsZXQgaXNPd25UcmFuc2FjdGlvbjogYm9vbGVhbjtcbiAgICAgIGxldCBxdWVyaWVyOiBRdWVyaWVyO1xuXG4gICAgICBpZiAocGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XSkge1xuICAgICAgICBxdWVyaWVyID0gcGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlzT3duVHJhbnNhY3Rpb24gPSB0cnVlO1xuICAgICAgICBjb25zdCBwb29sID0gcXVlcmllclBvb2wgPz8gZ2V0UXVlcmllclBvb2woKTtcbiAgICAgICAgcXVlcmllciA9IGF3YWl0IHBvb2wuZ2V0UXVlcmllcigpO1xuICAgICAgICBwYXJhbXNbaW5qZWN0ZWRRdWVyaWVySW5kZXhdID0gcXVlcmllcjtcbiAgICAgIH1cblxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKHByb3BhZ2F0aW9uID09PSAncmVxdWlyZWQnICYmICFxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIuYmVnaW5UcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBvcmlnaW5hbE1ldGhvZC5hcHBseSh0aGlzLCBwYXJhbXMpO1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbiAmJiBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIuY29tbWl0VHJhbnNhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzcDtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbiAmJiBxdWVyaWVyLmhhc09wZW5UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIucm9sbGJhY2tUcmFuc2FjdGlvbigpO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChpc093blRyYW5zYWN0aW9uKSB7XG4gICAgICAgICAgYXdhaXQgcXVlcmllci5yZWxlYXNlKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICB9O1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25hbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9xdWVyaWVyL2RlY29yYXRvci90cmFuc2FjdGlvbmFsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU3RCxNQUFNLFVBQVUsYUFBYSxDQUFDLEVBQzVCLFdBQVcsR0FBRyxVQUFVLEVBQ3hCLFdBQVcsTUFJVCxFQUFFO0lBQ0osT0FBTyxDQUFDLE1BQWMsRUFBRSxHQUFXLEVBQUUsY0FBa0MsRUFBUSxFQUFFO1FBQy9FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxXQUF3QixDQUFDO1FBQ2pELE1BQU0sY0FBYyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFDNUMsTUFBTSxvQkFBb0IsR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFFcEUsSUFBSSxvQkFBb0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QyxNQUFNLFNBQVMsQ0FBQywwQ0FBMEMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsY0FBYyxDQUFDLEtBQUssR0FBRyxLQUFLLFVBQVUsSUFBSSxDQUFlLEdBQUcsSUFBVztZQUNyRSxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDekIsSUFBSSxnQkFBeUIsQ0FBQztZQUM5QixJQUFJLE9BQWdCLENBQUM7WUFFckIsSUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxPQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDekMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDeEIsTUFBTSxJQUFJLEdBQUcsV0FBVyxJQUFJLGNBQWMsRUFBRSxDQUFDO2dCQUM3QyxPQUFPLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQztZQUN6QyxDQUFDO1lBRUQsSUFBSSxDQUFDO2dCQUNILElBQUksV0FBVyxLQUFLLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUM5RCxNQUFNLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNuQyxDQUFDO2dCQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ3RELElBQUksZ0JBQWdCLElBQUksT0FBTyxDQUFDLGtCQUFrQixFQUFFLENBQUM7b0JBQ25ELE1BQU0sT0FBTyxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3BDLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDYixJQUFJLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUNuRCxNQUFNLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUN0QyxDQUFDO2dCQUNELE1BQU0sR0FBRyxDQUFDO1lBQ1osQ0FBQztvQkFBUyxDQUFDO2dCQUNULElBQUksZ0JBQWdCLEVBQUUsQ0FBQztvQkFDckIsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQzFCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFF1ZXJpZXIsIFF1ZXJpZXJQb29sLCBUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZS9pbmRleC5qcyc7XG5pbXBvcnQgeyBnZXRRdWVyaWVyUG9vbCB9IGZyb20gJy4uLy4uL29wdGlvbnMuanMnO1xuaW1wb3J0IHsgZ2V0SW5qZWN0ZWRRdWVyaWVySW5kZXggfSBmcm9tICcuL2luamVjdFF1ZXJpZXIuanMnO1xuXG5leHBvcnQgZnVuY3Rpb24gVHJhbnNhY3Rpb25hbCh7XG4gIHByb3BhZ2F0aW9uID0gJ3JlcXVpcmVkJyxcbiAgcXVlcmllclBvb2wsXG59OiB7XG4gIHJlYWRvbmx5IHByb3BhZ2F0aW9uPzogJ3N1cHBvcnRlZCcgfCAncmVxdWlyZWQnO1xuICByZWFkb25seSBxdWVyaWVyUG9vbD86IFF1ZXJpZXJQb29sO1xufSA9IHt9KSB7XG4gIHJldHVybiAodGFyZ2V0OiBvYmplY3QsIGtleTogc3RyaW5nLCBwcm9wRGVzY3JpcHRvcjogUHJvcGVydHlEZXNjcmlwdG9yKTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGhlQ2xhc3MgPSB0YXJnZXQuY29uc3RydWN0b3IgYXMgVHlwZTxhbnk+O1xuICAgIGNvbnN0IG9yaWdpbmFsTWV0aG9kID0gcHJvcERlc2NyaXB0b3IudmFsdWU7XG4gICAgY29uc3QgaW5qZWN0ZWRRdWVyaWVySW5kZXggPSBnZXRJbmplY3RlZFF1ZXJpZXJJbmRleCh0aGVDbGFzcywga2V5KTtcblxuICAgIGlmIChpbmplY3RlZFF1ZXJpZXJJbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBUeXBlRXJyb3IoYG1pc3NpbmcgZGVjb3JhdG9yIEBJbmplY3RRdWVyaWVyKCkgaW4gJyR7dGFyZ2V0LmNvbnN0cnVjdG9yLm5hbWV9LiR7a2V5fSdgKTtcbiAgICB9XG5cbiAgICBwcm9wRGVzY3JpcHRvci52YWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIGZ1bmModGhpczogb2JqZWN0LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgY29uc3QgcGFyYW1zID0gWy4uLmFyZ3NdO1xuICAgICAgbGV0IGlzT3duVHJhbnNhY3Rpb246IGJvb2xlYW47XG4gICAgICBsZXQgcXVlcmllcjogUXVlcmllcjtcblxuICAgICAgaWYgKHBhcmFtc1tpbmplY3RlZFF1ZXJpZXJJbmRleF0pIHtcbiAgICAgICAgcXVlcmllciA9IHBhcmFtc1tpbmplY3RlZFF1ZXJpZXJJbmRleF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpc093blRyYW5zYWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgcG9vbCA9IHF1ZXJpZXJQb29sID8/IGdldFF1ZXJpZXJQb29sKCk7XG4gICAgICAgIHF1ZXJpZXIgPSBhd2FpdCBwb29sLmdldFF1ZXJpZXIoKTtcbiAgICAgICAgcGFyYW1zW2luamVjdGVkUXVlcmllckluZGV4XSA9IHF1ZXJpZXI7XG4gICAgICB9XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGlmIChwcm9wYWdhdGlvbiA9PT0gJ3JlcXVpcmVkJyAmJiAhcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBhd2FpdCBxdWVyaWVyLmJlZ2luVHJhbnNhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZXNwID0gYXdhaXQgb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgcGFyYW1zKTtcbiAgICAgICAgaWYgKGlzT3duVHJhbnNhY3Rpb24gJiYgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBhd2FpdCBxdWVyaWVyLmNvbW1pdFRyYW5zYWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3A7XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgaWYgKGlzT3duVHJhbnNhY3Rpb24gJiYgcXVlcmllci5oYXNPcGVuVHJhbnNhY3Rpb24pIHtcbiAgICAgICAgICBhd2FpdCBxdWVyaWVyLnJvbGxiYWNrVHJhbnNhY3Rpb24oKTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoaXNPd25UcmFuc2FjdGlvbikge1xuICAgICAgICAgIGF3YWl0IHF1ZXJpZXIucmVsZWFzZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfTtcbn1cbiJdfQ==

@@ -9,3 +9,3 @@ import { EntityMeta, QueryProject, CascadeType, RelationKey, FieldOptions, QueryRaw, QuerySort, QuerySortMap, QueryRawFnOptions, QueryFilter, QueryFilterMap, OnFieldCallback } from '../type/index.js';

export declare function getPersistables<E>(meta: EntityMeta<E>, payload: E | E[], callbackKey: CallbackKey): E[];
export declare function getFieldCallbackValue(val: OnFieldCallback): import("../type/utility.js").Scalar | QueryRaw;
export declare function getFieldCallbackValue(val: OnFieldCallback): import("nukak/type/utility.js").Scalar | QueryRaw;
export declare function getPersistableRelations<E>(meta: EntityMeta<E>, payload: E, action: CascadeType): RelationKey<E>[];

@@ -12,0 +12,0 @@ export declare function isCascadable(action: CascadeType, configuration?: boolean | CascadeType): boolean;

@@ -108,2 +108,2 @@ import { getKeys } from '../util/index.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbGVjdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZGlhbGVjdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBUUwsUUFBUSxHQVNULE1BQU0sa0JBQWtCLENBQUM7QUFJMUIsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUF3RTtJQUNsRyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQztJQUM5RCxNQUFNLEdBQUcsR0FBRyxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN6RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLElBQUksS0FBSyxFQUFFO1FBQ1QsTUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDM0QsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMzRCxPQUFPLEdBQUcsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7S0FDckM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFJLElBQW1CLEVBQUUsT0FBVSxFQUFFLFdBQXdCO0lBQ3pGLE9BQU8sZUFBZSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUksSUFBbUIsRUFBRSxPQUFnQixFQUFFLFdBQXdCO0lBQ2hHLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFELE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFrQixDQUFDO0lBQ2xHLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQ3pCLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDbEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFPLENBQUMsQ0FDWixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxHQUFvQjtJQUN4RCxPQUFPLE9BQU8sR0FBRyxLQUFLLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUksSUFBbUIsRUFBRSxPQUFnQixFQUFFLFdBQXdCO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5RCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2pGLE9BQU8sUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFO1FBQ3pCLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO1lBQ3RCLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDekIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUNoRTtTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUksSUFBbUIsRUFBRSxPQUFVLEVBQUUsTUFBbUI7SUFDN0YsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBcUIsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBcUIsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFtQixFQUFFLGFBQXFDO0lBQ3JGLElBQUksT0FBTyxhQUFhLEtBQUssU0FBUyxFQUFFO1FBQ3RDLE9BQU8sYUFBYSxDQUFDO0tBQ3RCO0lBQ0QsT0FBTyxhQUFhLEtBQUssTUFBTSxDQUFDO0FBQ2xDLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUksSUFBbUIsRUFBRSxPQUF3QjtJQUNyRixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBcUIsQ0FBQztBQUN6RSxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFJLElBQW1CLEVBQUUsT0FBd0I7SUFDcEYsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNuRCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUksT0FBd0I7SUFDbEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQzFCLE9BQU8sT0FBbUIsQ0FBQztLQUM1QjtJQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFhLENBQUM7QUFDcEUsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUksSUFBa0I7SUFDaEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRTtZQUM3QixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ3JCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDcEI7aUJBQU07Z0JBQ0wsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO2FBQ3pCO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBcUIsQ0FBQyxDQUFDO0tBQzNCO0lBQ0QsT0FBTyxJQUF1QixDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixJQUFtQixFQUNuQixTQUF5QixFQUFFLEVBQzNCLFNBQXlCLEVBQUU7SUFFM0IsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDM0QsT0FBTztRQUNMLEdBQUcsZ0JBQWdCO1FBQ25CLEdBQUcsZ0JBQWdCO0tBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFJLElBQW1CLEVBQUUsU0FBeUIsRUFBRTtJQUNyRixJQUFJLE1BQU0sWUFBWSxRQUFRLEVBQUU7UUFDOUIsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUF1QixDQUFDO0tBQ2hEO0lBQ0QsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDckIsT0FBTztZQUNMLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU07U0FDRyxDQUFDO0tBQ3hCO0lBQ0QsT0FBTyxNQUEyQixDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBSSxNQUFzQjtJQUMxQyxNQUFNLElBQUksR0FBRyxPQUFPLE1BQU0sQ0FBQztJQUMzQixPQUFPLENBQ0wsSUFBSSxLQUFLLFFBQVE7UUFDakIsSUFBSSxLQUFLLFFBQVE7UUFDakIsSUFBSSxLQUFLLFFBQVE7UUFDakIsT0FBUSxNQUFrQixDQUFDLFdBQVcsS0FBSyxVQUFVO1FBQ3JELEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQ3RCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZ2V0S2V5cyB9IGZyb20gJy4uL3V0aWwvaW5kZXguanMnO1xuaW1wb3J0IHtcbiAgRW50aXR5TWV0YSxcbiAgRmllbGRLZXksXG4gIFF1ZXJ5UHJvamVjdCxcbiAgQ2FzY2FkZVR5cGUsXG4gIFJlbGF0aW9uS2V5LFxuICBGaWVsZE9wdGlvbnMsXG4gIEtleSxcbiAgUXVlcnlSYXcsXG4gIFF1ZXJ5U29ydCxcbiAgUXVlcnlTb3J0TWFwLFxuICBRdWVyeVJhd0ZuT3B0aW9ucyxcbiAgUXVlcnlGaWx0ZXIsXG4gIFF1ZXJ5RmlsdGVyTWFwLFxuICBPbkZpZWxkQ2FsbGJhY2ssXG4gIE1vbmdvSWQsXG4gIElkVmFsdWUsXG59IGZyb20gJy4uL3R5cGUvaW5kZXguanMnO1xuXG50eXBlIENhbGxiYWNrS2V5ID0ga2V5b2YgUGljazxGaWVsZE9wdGlvbnMsICdvbkluc2VydCcgfCAnb25VcGRhdGUnIHwgJ29uRGVsZXRlJz47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSYXdWYWx1ZShvcHRzOiBRdWVyeVJhd0ZuT3B0aW9ucyAmIHsgdmFsdWU6IFF1ZXJ5UmF3OyBhdXRvUHJlZml4QWxpYXM/OiBib29sZWFuIH0pIHtcbiAgY29uc3QgeyB2YWx1ZSwgcHJlZml4ID0gJycsIGRpYWxlY3QsIGF1dG9QcmVmaXhBbGlhcyB9ID0gb3B0cztcbiAgY29uc3QgdmFsID0gdHlwZW9mIHZhbHVlLnZhbHVlID09PSAnZnVuY3Rpb24nID8gdmFsdWUudmFsdWUob3B0cykgOiBwcmVmaXggKyB2YWx1ZS52YWx1ZTtcbiAgY29uc3QgYWxpYXMgPSB2YWx1ZS5hbGlhcztcbiAgaWYgKGFsaWFzKSB7XG4gICAgY29uc3QgZnVsbEFsaWFzID0gYXV0b1ByZWZpeEFsaWFzID8gcHJlZml4ICsgYWxpYXMgOiBhbGlhcztcbiAgICBjb25zdCBlc2NhcGVkRnVsbEFsaWFzID0gZGlhbGVjdC5lc2NhcGVJZChmdWxsQWxpYXMsIHRydWUpO1xuICAgIHJldHVybiBgJHt2YWx9ICR7ZXNjYXBlZEZ1bGxBbGlhc31gO1xuICB9XG4gIHJldHVybiB2YWw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZXJzaXN0YWJsZTxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCBwYXlsb2FkOiBFLCBjYWxsYmFja0tleTogQ2FsbGJhY2tLZXkpOiBFIHtcbiAgcmV0dXJuIGdldFBlcnNpc3RhYmxlcyhtZXRhLCBwYXlsb2FkLCBjYWxsYmFja0tleSlbMF07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZXJzaXN0YWJsZXM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcGF5bG9hZDogRSB8IEVbXSwgY2FsbGJhY2tLZXk6IENhbGxiYWNrS2V5KTogRVtdIHtcbiAgY29uc3QgcGF5bG9hZHMgPSBmaWxsT25GaWVsZHMobWV0YSwgcGF5bG9hZCwgY2FsbGJhY2tLZXkpO1xuICBjb25zdCBwZXJzaXN0YWJsZUtleXMgPSBnZXRLZXlzKHBheWxvYWRzWzBdKS5maWx0ZXIoKGtleSkgPT4ga2V5IGluIG1ldGEuZmllbGRzKSBhcyBGaWVsZEtleTxFPltdO1xuICByZXR1cm4gcGF5bG9hZHMubWFwKChpdCkgPT5cbiAgICBwZXJzaXN0YWJsZUtleXMucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgYWNjW2tleV0gPSBpdFtrZXldO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBFKSxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkQ2FsbGJhY2tWYWx1ZSh2YWw6IE9uRmllbGRDYWxsYmFjaykge1xuICByZXR1cm4gdHlwZW9mIHZhbCA9PT0gJ2Z1bmN0aW9uJyA/IHZhbCgpIDogdmFsO1xufVxuXG5mdW5jdGlvbiBmaWxsT25GaWVsZHM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcGF5bG9hZDogRSB8IEVbXSwgY2FsbGJhY2tLZXk6IENhbGxiYWNrS2V5KTogRVtdIHtcbiAgY29uc3QgcGF5bG9hZHMgPSBBcnJheS5pc0FycmF5KHBheWxvYWQpID8gcGF5bG9hZCA6IFtwYXlsb2FkXTtcbiAgY29uc3Qga2V5cyA9IGdldEtleXMobWV0YS5maWVsZHMpLmZpbHRlcigoa2V5KSA9PiBtZXRhLmZpZWxkc1trZXldW2NhbGxiYWNrS2V5XSk7XG4gIHJldHVybiBwYXlsb2Fkcy5tYXAoKGl0KSA9PiB7XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5cykge1xuICAgICAgaWYgKGl0W2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpdFtrZXldID0gZ2V0RmllbGRDYWxsYmFja1ZhbHVlKG1ldGEuZmllbGRzW2tleV1bY2FsbGJhY2tLZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGl0O1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBlcnNpc3RhYmxlUmVsYXRpb25zPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHBheWxvYWQ6IEUsIGFjdGlvbjogQ2FzY2FkZVR5cGUpOiBSZWxhdGlvbktleTxFPltdIHtcbiAgY29uc3Qga2V5cyA9IGdldEtleXMocGF5bG9hZCk7XG4gIHJldHVybiBrZXlzLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgY29uc3QgcmVsT3B0cyA9IG1ldGEucmVsYXRpb25zW2tleSBhcyBSZWxhdGlvbktleTxFPl07XG4gICAgcmV0dXJuIHJlbE9wdHMgJiYgaXNDYXNjYWRhYmxlKGFjdGlvbiwgcmVsT3B0cy5jYXNjYWRlKTtcbiAgfSkgYXMgUmVsYXRpb25LZXk8RT5bXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2FzY2FkYWJsZShhY3Rpb246IENhc2NhZGVUeXBlLCBjb25maWd1cmF0aW9uPzogYm9vbGVhbiB8IENhc2NhZGVUeXBlKTogYm9vbGVhbiB7XG4gIGlmICh0eXBlb2YgY29uZmlndXJhdGlvbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XG4gIH1cbiAgcmV0dXJuIGNvbmZpZ3VyYXRpb24gPT09IGFjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2plY3RSZWxhdGlvbktleXM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogUmVsYXRpb25LZXk8RT5bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRQb3NpdGl2ZUtleXMocHJvamVjdCk7XG4gIHJldHVybiBrZXlzLmZpbHRlcigoa2V5KSA9PiBrZXkgaW4gbWV0YS5yZWxhdGlvbnMpIGFzIFJlbGF0aW9uS2V5PEU+W107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb2plY3RpbmdSZWxhdGlvbnM8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcHJvamVjdDogUXVlcnlQcm9qZWN0PEU+KTogYm9vbGVhbiB7XG4gIGNvbnN0IGtleXMgPSBnZXRQb3NpdGl2ZUtleXMocHJvamVjdCk7XG4gIHJldHVybiBrZXlzLnNvbWUoKGtleSkgPT4ga2V5IGluIG1ldGEucmVsYXRpb25zKTtcbn1cblxuZnVuY3Rpb24gZ2V0UG9zaXRpdmVLZXlzPEU+KHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPik6IEtleTxFPltdIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkocHJvamVjdCkpIHtcbiAgICByZXR1cm4gcHJvamVjdCBhcyBLZXk8RT5bXTtcbiAgfVxuICByZXR1cm4gZ2V0S2V5cyhwcm9qZWN0KS5maWx0ZXIoKGtleSkgPT4gcHJvamVjdFtrZXldKSBhcyBLZXk8RT5bXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU29ydE1hcDxFPihzb3J0OiBRdWVyeVNvcnQ8RT4pOiBRdWVyeVNvcnRNYXA8RT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShzb3J0KSkge1xuICAgIHJldHVybiBzb3J0LnJlZHVjZSgoYWNjLCBpdCkgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXQpKSB7XG4gICAgICAgIGFjY1tpdFswXV0gPSBpdFsxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjY1tpdC5maWVsZF0gPSBpdC5zb3J0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBRdWVyeVNvcnRNYXA8RT4pO1xuICB9XG4gIHJldHVybiBzb3J0IGFzIFF1ZXJ5U29ydE1hcDxFPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGF1Z21lbnRGaWx0ZXI8RT4oXG4gIG1ldGE6IEVudGl0eU1ldGE8RT4sXG4gIHRhcmdldDogUXVlcnlGaWx0ZXI8RT4gPSB7fSxcbiAgc291cmNlOiBRdWVyeUZpbHRlcjxFPiA9IHt9LFxuKTogUXVlcnlGaWx0ZXI8RT4ge1xuICBjb25zdCB0YXJnZXRDb21wYXJpc29uID0gZ2V0UXVlcnlGaWx0ZXJBc01hcChtZXRhLCB0YXJnZXQpO1xuICBjb25zdCBzb3VyY2VDb21wYXJpc29uID0gZ2V0UXVlcnlGaWx0ZXJBc01hcChtZXRhLCBzb3VyY2UpO1xuICByZXR1cm4ge1xuICAgIC4uLnRhcmdldENvbXBhcmlzb24sXG4gICAgLi4uc291cmNlQ29tcGFyaXNvbixcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJ5RmlsdGVyQXNNYXA8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgZmlsdGVyOiBRdWVyeUZpbHRlcjxFPiA9IHt9KTogUXVlcnlGaWx0ZXJNYXA8RT4ge1xuICBpZiAoZmlsdGVyIGluc3RhbmNlb2YgUXVlcnlSYXcpIHtcbiAgICByZXR1cm4geyAkYW5kOiBbZmlsdGVyXSB9IGFzIFF1ZXJ5RmlsdGVyTWFwPEU+O1xuICB9XG4gIGlmIChpc0lkVmFsdWUoZmlsdGVyKSkge1xuICAgIHJldHVybiB7XG4gICAgICBbbWV0YS5pZF06IGZpbHRlcixcbiAgICB9IGFzIFF1ZXJ5RmlsdGVyTWFwPEU+O1xuICB9XG4gIHJldHVybiBmaWx0ZXIgYXMgUXVlcnlGaWx0ZXJNYXA8RT47XG59XG5cbmZ1bmN0aW9uIGlzSWRWYWx1ZTxFPihmaWx0ZXI6IFF1ZXJ5RmlsdGVyPEU+KTogZmlsdGVyIGlzIElkVmFsdWU8RT4gfCBJZFZhbHVlPEU+W10ge1xuICBjb25zdCB0eXBlID0gdHlwZW9mIGZpbHRlcjtcbiAgcmV0dXJuIChcbiAgICB0eXBlID09PSAnc3RyaW5nJyB8fFxuICAgIHR5cGUgPT09ICdudW1iZXInIHx8XG4gICAgdHlwZSA9PT0gJ2JpZ2ludCcgfHxcbiAgICB0eXBlb2YgKGZpbHRlciBhcyBNb25nb0lkKS50b0hleFN0cmluZyA9PT0gJ2Z1bmN0aW9uJyB8fFxuICAgIEFycmF5LmlzQXJyYXkoZmlsdGVyKVxuICApO1xufVxuIl19
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbGVjdC51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZGlhbGVjdC51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBUUwsUUFBUSxHQVNULE1BQU0sa0JBQWtCLENBQUM7QUFJMUIsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUF3RTtJQUNsRyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQztJQUM5RCxNQUFNLEdBQUcsR0FBRyxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUN6RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQzFCLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMzRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzNELE9BQU8sR0FBRyxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBSSxJQUFtQixFQUFFLE9BQVUsRUFBRSxXQUF3QjtJQUN6RixPQUFPLGVBQWUsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFJLElBQW1CLEVBQUUsT0FBZ0IsRUFBRSxXQUF3QjtJQUNoRyxNQUFNLFFBQVEsR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRCxNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBa0IsQ0FBQztJQUNsRyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUN6QixlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ2xDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkIsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQUUsRUFBTyxDQUFDLENBQ1osQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsR0FBb0I7SUFDeEQsT0FBTyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFJLElBQW1CLEVBQUUsT0FBZ0IsRUFBRSxXQUF3QjtJQUN0RixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNqRixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRTtRQUN6QixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3ZCLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMxQixFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsdUJBQXVCLENBQUksSUFBbUIsRUFBRSxPQUFVLEVBQUUsTUFBbUI7SUFDN0YsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ3pCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBcUIsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sT0FBTyxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzFELENBQUMsQ0FBcUIsQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFtQixFQUFFLGFBQXFDO0lBQ3JGLElBQUksT0FBTyxhQUFhLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDdkMsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUNELE9BQU8sYUFBYSxLQUFLLE1BQU0sQ0FBQztBQUNsQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFJLElBQW1CLEVBQUUsT0FBd0I7SUFDckYsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQXFCLENBQUM7QUFDekUsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBSSxJQUFtQixFQUFFLE9BQXdCO0lBQ3BGLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDbkQsQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFJLE9BQXdCO0lBQ2xELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sT0FBbUIsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQWEsQ0FBQztBQUNwRSxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBSSxJQUFrQjtJQUNoRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDN0IsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQztZQUMxQixDQUFDO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBcUIsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxPQUFPLElBQXVCLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQzNCLElBQW1CLEVBQ25CLFNBQXlCLEVBQUUsRUFDM0IsU0FBeUIsRUFBRTtJQUUzQixNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMzRCxPQUFPO1FBQ0wsR0FBRyxnQkFBZ0I7UUFDbkIsR0FBRyxnQkFBZ0I7S0FDcEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUksSUFBbUIsRUFBRSxTQUF5QixFQUFFO0lBQ3JGLElBQUksTUFBTSxZQUFZLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBdUIsQ0FBQztJQUNqRCxDQUFDO0lBQ0QsSUFBSSxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN0QixPQUFPO1lBQ0wsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTTtTQUNHLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sTUFBMkIsQ0FBQztBQUNyQyxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUksTUFBc0I7SUFDMUMsTUFBTSxJQUFJLEdBQUcsT0FBTyxNQUFNLENBQUM7SUFDM0IsT0FBTyxDQUNMLElBQUksS0FBSyxRQUFRO1FBQ2pCLElBQUksS0FBSyxRQUFRO1FBQ2pCLElBQUksS0FBSyxRQUFRO1FBQ2pCLE9BQVEsTUFBa0IsQ0FBQyxXQUFXLEtBQUssVUFBVTtRQUNyRCxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUN0QixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEtleXMgfSBmcm9tICcuLi91dGlsL2luZGV4LmpzJztcbmltcG9ydCB7XG4gIEVudGl0eU1ldGEsXG4gIEZpZWxkS2V5LFxuICBRdWVyeVByb2plY3QsXG4gIENhc2NhZGVUeXBlLFxuICBSZWxhdGlvbktleSxcbiAgRmllbGRPcHRpb25zLFxuICBLZXksXG4gIFF1ZXJ5UmF3LFxuICBRdWVyeVNvcnQsXG4gIFF1ZXJ5U29ydE1hcCxcbiAgUXVlcnlSYXdGbk9wdGlvbnMsXG4gIFF1ZXJ5RmlsdGVyLFxuICBRdWVyeUZpbHRlck1hcCxcbiAgT25GaWVsZENhbGxiYWNrLFxuICBNb25nb0lkLFxuICBJZFZhbHVlLFxufSBmcm9tICcuLi90eXBlL2luZGV4LmpzJztcblxudHlwZSBDYWxsYmFja0tleSA9IGtleW9mIFBpY2s8RmllbGRPcHRpb25zLCAnb25JbnNlcnQnIHwgJ29uVXBkYXRlJyB8ICdvbkRlbGV0ZSc+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmF3VmFsdWUob3B0czogUXVlcnlSYXdGbk9wdGlvbnMgJiB7IHZhbHVlOiBRdWVyeVJhdzsgYXV0b1ByZWZpeEFsaWFzPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHsgdmFsdWUsIHByZWZpeCA9ICcnLCBkaWFsZWN0LCBhdXRvUHJlZml4QWxpYXMgfSA9IG9wdHM7XG4gIGNvbnN0IHZhbCA9IHR5cGVvZiB2YWx1ZS52YWx1ZSA9PT0gJ2Z1bmN0aW9uJyA/IHZhbHVlLnZhbHVlKG9wdHMpIDogcHJlZml4ICsgdmFsdWUudmFsdWU7XG4gIGNvbnN0IGFsaWFzID0gdmFsdWUuYWxpYXM7XG4gIGlmIChhbGlhcykge1xuICAgIGNvbnN0IGZ1bGxBbGlhcyA9IGF1dG9QcmVmaXhBbGlhcyA/IHByZWZpeCArIGFsaWFzIDogYWxpYXM7XG4gICAgY29uc3QgZXNjYXBlZEZ1bGxBbGlhcyA9IGRpYWxlY3QuZXNjYXBlSWQoZnVsbEFsaWFzLCB0cnVlKTtcbiAgICByZXR1cm4gYCR7dmFsfSAke2VzY2FwZWRGdWxsQWxpYXN9YDtcbiAgfVxuICByZXR1cm4gdmFsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGVyc2lzdGFibGU8RT4obWV0YTogRW50aXR5TWV0YTxFPiwgcGF5bG9hZDogRSwgY2FsbGJhY2tLZXk6IENhbGxiYWNrS2V5KTogRSB7XG4gIHJldHVybiBnZXRQZXJzaXN0YWJsZXMobWV0YSwgcGF5bG9hZCwgY2FsbGJhY2tLZXkpWzBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGVyc2lzdGFibGVzPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHBheWxvYWQ6IEUgfCBFW10sIGNhbGxiYWNrS2V5OiBDYWxsYmFja0tleSk6IEVbXSB7XG4gIGNvbnN0IHBheWxvYWRzID0gZmlsbE9uRmllbGRzKG1ldGEsIHBheWxvYWQsIGNhbGxiYWNrS2V5KTtcbiAgY29uc3QgcGVyc2lzdGFibGVLZXlzID0gZ2V0S2V5cyhwYXlsb2Fkc1swXSkuZmlsdGVyKChrZXkpID0+IGtleSBpbiBtZXRhLmZpZWxkcykgYXMgRmllbGRLZXk8RT5bXTtcbiAgcmV0dXJuIHBheWxvYWRzLm1hcCgoaXQpID0+XG4gICAgcGVyc2lzdGFibGVLZXlzLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgIGFjY1trZXldID0gaXRba2V5XTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgRSksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWVsZENhbGxiYWNrVmFsdWUodmFsOiBPbkZpZWxkQ2FsbGJhY2spIHtcbiAgcmV0dXJuIHR5cGVvZiB2YWwgPT09ICdmdW5jdGlvbicgPyB2YWwoKSA6IHZhbDtcbn1cblxuZnVuY3Rpb24gZmlsbE9uRmllbGRzPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHBheWxvYWQ6IEUgfCBFW10sIGNhbGxiYWNrS2V5OiBDYWxsYmFja0tleSk6IEVbXSB7XG4gIGNvbnN0IHBheWxvYWRzID0gQXJyYXkuaXNBcnJheShwYXlsb2FkKSA/IHBheWxvYWQgOiBbcGF5bG9hZF07XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlzKG1ldGEuZmllbGRzKS5maWx0ZXIoKGtleSkgPT4gbWV0YS5maWVsZHNba2V5XVtjYWxsYmFja0tleV0pO1xuICByZXR1cm4gcGF5bG9hZHMubWFwKChpdCkgPT4ge1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgIGlmIChpdFtrZXldID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaXRba2V5XSA9IGdldEZpZWxkQ2FsbGJhY2tWYWx1ZShtZXRhLmZpZWxkc1trZXldW2NhbGxiYWNrS2V5XSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpdDtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQZXJzaXN0YWJsZVJlbGF0aW9uczxFPihtZXRhOiBFbnRpdHlNZXRhPEU+LCBwYXlsb2FkOiBFLCBhY3Rpb246IENhc2NhZGVUeXBlKTogUmVsYXRpb25LZXk8RT5bXSB7XG4gIGNvbnN0IGtleXMgPSBnZXRLZXlzKHBheWxvYWQpO1xuICByZXR1cm4ga2V5cy5maWx0ZXIoKGtleSkgPT4ge1xuICAgIGNvbnN0IHJlbE9wdHMgPSBtZXRhLnJlbGF0aW9uc1trZXkgYXMgUmVsYXRpb25LZXk8RT5dO1xuICAgIHJldHVybiByZWxPcHRzICYmIGlzQ2FzY2FkYWJsZShhY3Rpb24sIHJlbE9wdHMuY2FzY2FkZSk7XG4gIH0pIGFzIFJlbGF0aW9uS2V5PEU+W107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Nhc2NhZGFibGUoYWN0aW9uOiBDYXNjYWRlVHlwZSwgY29uZmlndXJhdGlvbj86IGJvb2xlYW4gfCBDYXNjYWRlVHlwZSk6IGJvb2xlYW4ge1xuICBpZiAodHlwZW9mIGNvbmZpZ3VyYXRpb24gPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBjb25maWd1cmF0aW9uO1xuICB9XG4gIHJldHVybiBjb25maWd1cmF0aW9uID09PSBhY3Rpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm9qZWN0UmVsYXRpb25LZXlzPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPik6IFJlbGF0aW9uS2V5PEU+W10ge1xuICBjb25zdCBrZXlzID0gZ2V0UG9zaXRpdmVLZXlzKHByb2plY3QpO1xuICByZXR1cm4ga2V5cy5maWx0ZXIoKGtleSkgPT4ga2V5IGluIG1ldGEucmVsYXRpb25zKSBhcyBSZWxhdGlvbktleTxFPltdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9qZWN0aW5nUmVsYXRpb25zPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIHByb2plY3Q6IFF1ZXJ5UHJvamVjdDxFPik6IGJvb2xlYW4ge1xuICBjb25zdCBrZXlzID0gZ2V0UG9zaXRpdmVLZXlzKHByb2plY3QpO1xuICByZXR1cm4ga2V5cy5zb21lKChrZXkpID0+IGtleSBpbiBtZXRhLnJlbGF0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGdldFBvc2l0aXZlS2V5czxFPihwcm9qZWN0OiBRdWVyeVByb2plY3Q8RT4pOiBLZXk8RT5bXSB7XG4gIGlmIChBcnJheS5pc0FycmF5KHByb2plY3QpKSB7XG4gICAgcmV0dXJuIHByb2plY3QgYXMgS2V5PEU+W107XG4gIH1cbiAgcmV0dXJuIGdldEtleXMocHJvamVjdCkuZmlsdGVyKChrZXkpID0+IHByb2plY3Rba2V5XSkgYXMgS2V5PEU+W107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNvcnRNYXA8RT4oc29ydDogUXVlcnlTb3J0PEU+KTogUXVlcnlTb3J0TWFwPEU+IHtcbiAgaWYgKEFycmF5LmlzQXJyYXkoc29ydCkpIHtcbiAgICByZXR1cm4gc29ydC5yZWR1Y2UoKGFjYywgaXQpID0+IHtcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGl0KSkge1xuICAgICAgICBhY2NbaXRbMF1dID0gaXRbMV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhY2NbaXQuZmllbGRdID0gaXQuc29ydDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgUXVlcnlTb3J0TWFwPEU+KTtcbiAgfVxuICByZXR1cm4gc29ydCBhcyBRdWVyeVNvcnRNYXA8RT47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhdWdtZW50RmlsdGVyPEU+KFxuICBtZXRhOiBFbnRpdHlNZXRhPEU+LFxuICB0YXJnZXQ6IFF1ZXJ5RmlsdGVyPEU+ID0ge30sXG4gIHNvdXJjZTogUXVlcnlGaWx0ZXI8RT4gPSB7fSxcbik6IFF1ZXJ5RmlsdGVyPEU+IHtcbiAgY29uc3QgdGFyZ2V0Q29tcGFyaXNvbiA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgdGFyZ2V0KTtcbiAgY29uc3Qgc291cmNlQ29tcGFyaXNvbiA9IGdldFF1ZXJ5RmlsdGVyQXNNYXAobWV0YSwgc291cmNlKTtcbiAgcmV0dXJuIHtcbiAgICAuLi50YXJnZXRDb21wYXJpc29uLFxuICAgIC4uLnNvdXJjZUNvbXBhcmlzb24sXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRRdWVyeUZpbHRlckFzTWFwPEU+KG1ldGE6IEVudGl0eU1ldGE8RT4sIGZpbHRlcjogUXVlcnlGaWx0ZXI8RT4gPSB7fSk6IFF1ZXJ5RmlsdGVyTWFwPEU+IHtcbiAgaWYgKGZpbHRlciBpbnN0YW5jZW9mIFF1ZXJ5UmF3KSB7XG4gICAgcmV0dXJuIHsgJGFuZDogW2ZpbHRlcl0gfSBhcyBRdWVyeUZpbHRlck1hcDxFPjtcbiAgfVxuICBpZiAoaXNJZFZhbHVlKGZpbHRlcikpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW21ldGEuaWRdOiBmaWx0ZXIsXG4gICAgfSBhcyBRdWVyeUZpbHRlck1hcDxFPjtcbiAgfVxuICByZXR1cm4gZmlsdGVyIGFzIFF1ZXJ5RmlsdGVyTWFwPEU+O1xufVxuXG5mdW5jdGlvbiBpc0lkVmFsdWU8RT4oZmlsdGVyOiBRdWVyeUZpbHRlcjxFPik6IGZpbHRlciBpcyBJZFZhbHVlPEU+IHwgSWRWYWx1ZTxFPltdIHtcbiAgY29uc3QgdHlwZSA9IHR5cGVvZiBmaWx0ZXI7XG4gIHJldHVybiAoXG4gICAgdHlwZSA9PT0gJ3N0cmluZycgfHxcbiAgICB0eXBlID09PSAnbnVtYmVyJyB8fFxuICAgIHR5cGUgPT09ICdiaWdpbnQnIHx8XG4gICAgdHlwZW9mIChmaWx0ZXIgYXMgTW9uZ29JZCkudG9IZXhTdHJpbmcgPT09ICdmdW5jdGlvbicgfHxcbiAgICBBcnJheS5pc0FycmF5KGZpbHRlcilcbiAgKTtcbn1cbiJdfQ==

@@ -16,2 +16,2 @@ export function clone(value) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsS0FBSyxDQUFJLEtBQVE7SUFDL0IsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRTtRQUMvQyxPQUFPLEtBQUssQ0FBQztLQUNkO0lBQ0QsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFpQixDQUFDO0tBQ3JEO0lBQ0QsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDdEIsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUksR0FBTTtJQUMvQixPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFJLEdBQU07SUFDL0IsT0FBTyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGNsb25lPFQ+KHZhbHVlOiBUKTogVCB7XG4gIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnIHx8IHZhbHVlID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0KSA9PiBjbG9uZShpdCkpIGFzIHVua25vd24gYXMgVDtcbiAgfVxuICByZXR1cm4geyAuLi52YWx1ZSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzS2V5czxUPihvYmo6IFQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldEtleXMob2JqKS5sZW5ndGggPiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2V5czxUPihvYmo6IFQpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBvYmogPyBPYmplY3Qua2V5cyhvYmopIDogW107XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9vYmplY3QudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsS0FBSyxDQUFJLEtBQVE7SUFDL0IsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFpQixDQUFDO0lBQ3RELENBQUM7SUFDRCxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBSSxHQUFNO0lBQy9CLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUksR0FBTTtJQUMvQixPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gY2xvbmU8VD4odmFsdWU6IFQpOiBUIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcgfHwgdmFsdWUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLm1hcCgoaXQpID0+IGNsb25lKGl0KSkgYXMgdW5rbm93biBhcyBUO1xuICB9XG4gIHJldHVybiB7IC4uLnZhbHVlIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNLZXlzPFQ+KG9iajogVCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0S2V5cyhvYmopLmxlbmd0aCA+IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRLZXlzPFQ+KG9iajogVCk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIG9iaiA/IE9iamVjdC5rZXlzKG9iaikgOiBbXTtcbn1cbiJdfQ==

@@ -50,2 +50,2 @@ import { hasKeys, getKeys } from './object.util.js';

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zcWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE1BQU0sVUFBVSxVQUFVLENBQUksR0FBTSxFQUFFLEdBQVk7SUFDaEQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUN4QixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQzFGLEVBQU8sQ0FDUixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFJLEdBQU0sRUFBRSxHQUFXLEVBQUUsR0FBUSxFQUFFLEdBQVk7SUFDckUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzNDLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUTtRQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQzVGLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUksT0FBWTtJQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7UUFDOUMsT0FBTyxPQUFPLENBQUM7S0FDaEI7SUFFRCxNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVoRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3hCLE9BQU8sT0FBTyxDQUFDO0tBQ2hCO0lBRUQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDekIsTUFBTSxHQUFHLEdBQUcsRUFBTyxDQUFDO1FBRXBCLEtBQUssTUFBTSxHQUFHLElBQUksR0FBRyxFQUFFO1lBQ3JCLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtnQkFDckIsU0FBUzthQUNWO1lBQ0QsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2pDLElBQUksUUFBUSxFQUFFO2dCQUNaLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO29CQUN2RCxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRTt3QkFDaEMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztxQkFDZjtvQkFDRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNsRDtpQkFBTTtnQkFDTCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3JCO1NBQ0Y7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsZ0JBQWdCLENBQUksR0FBTTtJQUNqQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQ3hCLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQ1gsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQ0QsRUFBK0IsQ0FDaEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYXNLZXlzLCBnZXRLZXlzIH0gZnJvbSAnLi9vYmplY3QudXRpbC5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0T2JqZWN0PEU+KG9iajogRSwgcHJlPzogc3RyaW5nKTogRSB7XG4gIHJldHVybiBnZXRLZXlzKG9iaikucmVkdWNlKFxuICAgIChhY2MsIGtleSkgPT4gZmxhdE9iamVjdEVudHJ5KGFjYywga2V5LCBvYmpba2V5XSwgdHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyA/ICcnIDogcHJlKSxcbiAgICB7fSBhcyBFLFxuICApO1xufVxuXG5mdW5jdGlvbiBmbGF0T2JqZWN0RW50cnk8RT4obWFwOiBFLCBrZXk6IHN0cmluZywgdmFsOiBhbnksIHByZT86IHN0cmluZyk6IEUge1xuICBjb25zdCBwcmVmaXggPSBwcmUgPyBgJHtwcmV9LiR7a2V5fWAgOiBrZXk7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnb2JqZWN0J1xuICAgID8gT2JqZWN0LmtleXModmFsKS5yZWR1Y2UoKGFjYywgcHJvcCkgPT4gZmxhdE9iamVjdEVudHJ5KGFjYywgcHJvcCwgdmFsW3Byb3BdLCBwcmVmaXgpLCBtYXApXG4gICAgOiB7IC4uLm1hcCwgW3ByZWZpeF06IHZhbCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5mbGF0T2JqZWN0czxUPihvYmplY3RzOiBUW10pOiBUW10ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkob2JqZWN0cykgfHwgIW9iamVjdHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG9iamVjdHM7XG4gIH1cblxuICBjb25zdCBhdHRyc1BhdGhzID0gb2J0YWluQXR0cnNQYXRocyhvYmplY3RzWzBdKTtcblxuICBpZiAoIWhhc0tleXMoYXR0cnNQYXRocykpIHtcbiAgICByZXR1cm4gb2JqZWN0cztcbiAgfVxuXG4gIHJldHVybiBvYmplY3RzLm1hcCgocm93KSA9PiB7XG4gICAgY29uc3QgZHRvID0ge30gYXMgVDtcblxuICAgIGZvciAoY29uc3QgY29sIGluIHJvdykge1xuICAgICAgaWYgKHJvd1tjb2xdID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgYXR0clBhdGggPSBhdHRyc1BhdGhzW2NvbF07XG4gICAgICBpZiAoYXR0clBhdGgpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gYXR0clBhdGguc2xpY2UoMCwgLTEpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGFjY1trZXldICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgYWNjW2tleV0gPSB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjY1trZXldO1xuICAgICAgICB9LCBkdG8pO1xuICAgICAgICB0YXJnZXRbYXR0clBhdGhbYXR0clBhdGgubGVuZ3RoIC0gMV1dID0gcm93W2NvbF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkdG9bY29sXSA9IHJvd1tjb2xdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkdG87XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvYnRhaW5BdHRyc1BhdGhzPFQ+KHJvdzogVCkge1xuICByZXR1cm4gZ2V0S2V5cyhyb3cpLnJlZHVjZShcbiAgICAoYWNjLCBjb2wpID0+IHtcbiAgICAgIGlmIChjb2wuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICBhY2NbY29sXSA9IGNvbC5zcGxpdCgnLicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIHsgW2s6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICk7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FsLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zcWwudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXBELE1BQU0sVUFBVSxVQUFVLENBQUksR0FBTSxFQUFFLEdBQVk7SUFDaEQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUN4QixDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQzFGLEVBQU8sQ0FDUixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsZUFBZSxDQUFJLEdBQU0sRUFBRSxHQUFXLEVBQUUsR0FBUSxFQUFFLEdBQVk7SUFDckUsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQzNDLE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUTtRQUM1QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDO1FBQzVGLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUksT0FBWTtJQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMvQyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUN6QixNQUFNLEdBQUcsR0FBRyxFQUFPLENBQUM7UUFFcEIsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDdEIsU0FBUztZQUNYLENBQUM7WUFDRCxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakMsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUUsQ0FBQzt3QkFDakMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDaEIsQ0FBQztvQkFDRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDbEIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBSSxHQUFNO0lBQ2pDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FDeEIsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUU7UUFDWCxJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QixHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDLEVBQ0QsRUFBK0IsQ0FDaEMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBoYXNLZXlzLCBnZXRLZXlzIH0gZnJvbSAnLi9vYmplY3QudXRpbC5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmbGF0T2JqZWN0PEU+KG9iajogRSwgcHJlPzogc3RyaW5nKTogRSB7XG4gIHJldHVybiBnZXRLZXlzKG9iaikucmVkdWNlKFxuICAgIChhY2MsIGtleSkgPT4gZmxhdE9iamVjdEVudHJ5KGFjYywga2V5LCBvYmpba2V5XSwgdHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyA/ICcnIDogcHJlKSxcbiAgICB7fSBhcyBFLFxuICApO1xufVxuXG5mdW5jdGlvbiBmbGF0T2JqZWN0RW50cnk8RT4obWFwOiBFLCBrZXk6IHN0cmluZywgdmFsOiBhbnksIHByZT86IHN0cmluZyk6IEUge1xuICBjb25zdCBwcmVmaXggPSBwcmUgPyBgJHtwcmV9LiR7a2V5fWAgOiBrZXk7XG4gIHJldHVybiB0eXBlb2YgdmFsID09PSAnb2JqZWN0J1xuICAgID8gT2JqZWN0LmtleXModmFsKS5yZWR1Y2UoKGFjYywgcHJvcCkgPT4gZmxhdE9iamVjdEVudHJ5KGFjYywgcHJvcCwgdmFsW3Byb3BdLCBwcmVmaXgpLCBtYXApXG4gICAgOiB7IC4uLm1hcCwgW3ByZWZpeF06IHZhbCB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5mbGF0T2JqZWN0czxUPihvYmplY3RzOiBUW10pOiBUW10ge1xuICBpZiAoIUFycmF5LmlzQXJyYXkob2JqZWN0cykgfHwgIW9iamVjdHMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG9iamVjdHM7XG4gIH1cblxuICBjb25zdCBhdHRyc1BhdGhzID0gb2J0YWluQXR0cnNQYXRocyhvYmplY3RzWzBdKTtcblxuICBpZiAoIWhhc0tleXMoYXR0cnNQYXRocykpIHtcbiAgICByZXR1cm4gb2JqZWN0cztcbiAgfVxuXG4gIHJldHVybiBvYmplY3RzLm1hcCgocm93KSA9PiB7XG4gICAgY29uc3QgZHRvID0ge30gYXMgVDtcblxuICAgIGZvciAoY29uc3QgY29sIGluIHJvdykge1xuICAgICAgaWYgKHJvd1tjb2xdID09PSBudWxsKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgY29uc3QgYXR0clBhdGggPSBhdHRyc1BhdGhzW2NvbF07XG4gICAgICBpZiAoYXR0clBhdGgpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gYXR0clBhdGguc2xpY2UoMCwgLTEpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIGFjY1trZXldICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgYWNjW2tleV0gPSB7fTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjY1trZXldO1xuICAgICAgICB9LCBkdG8pO1xuICAgICAgICB0YXJnZXRbYXR0clBhdGhbYXR0clBhdGgubGVuZ3RoIC0gMV1dID0gcm93W2NvbF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkdG9bY29sXSA9IHJvd1tjb2xdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkdG87XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBvYnRhaW5BdHRyc1BhdGhzPFQ+KHJvdzogVCkge1xuICByZXR1cm4gZ2V0S2V5cyhyb3cpLnJlZHVjZShcbiAgICAoYWNjLCBjb2wpID0+IHtcbiAgICAgIGlmIChjb2wuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICBhY2NbY29sXSA9IGNvbC5zcGxpdCgnLicpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIHsgW2s6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICk7XG59XG4iXX0=

@@ -14,2 +14,2 @@ export function kebabCase(val) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zdHJpbmcudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDbkMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRTtRQUNuQyxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9FO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxJQUFZO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24ga2ViYWJDYXNlKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgbGV0IHJlc3AgPSB2YWwuY2hhckF0KDApLnRvTG93ZXJDYXNlKCk7XG4gIGZvciAobGV0IGkgPSAxOyBpIDwgdmFsLmxlbmd0aDsgKytpKSB7XG4gICAgcmVzcCArPSB2YWxbaV0gPT09IHZhbFtpXS50b1VwcGVyQ2FzZSgpID8gJy0nICsgdmFsW2ldLnRvTG93ZXJDYXNlKCkgOiB2YWxbaV07XG4gIH1cbiAgcmV0dXJuIHJlc3A7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cHBlckZpcnN0KHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB0ZXh0WzBdLnRvVXBwZXJDYXNlKCkgKyB0ZXh0LnNsaWNlKDEpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG93ZXJGaXJzdCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdGV4dFswXS50b0xvd2VyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLnV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9zdHJpbmcudXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEdBQVc7SUFDbkMsSUFBSSxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3BDLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUMsSUFBWTtJQUNyQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9DLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLElBQVk7SUFDckMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGtlYmFiQ2FzZSh2YWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIGxldCByZXNwID0gdmFsLmNoYXJBdCgwKS50b0xvd2VyQ2FzZSgpO1xuICBmb3IgKGxldCBpID0gMTsgaSA8IHZhbC5sZW5ndGg7ICsraSkge1xuICAgIHJlc3AgKz0gdmFsW2ldID09PSB2YWxbaV0udG9VcHBlckNhc2UoKSA/ICctJyArIHZhbFtpXS50b0xvd2VyQ2FzZSgpIDogdmFsW2ldO1xuICB9XG4gIHJldHVybiByZXNwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBwZXJGaXJzdCh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdGV4dFswXS50b1VwcGVyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxvd2VyRmlyc3QodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRleHRbMF0udG9Mb3dlckNhc2UoKSArIHRleHQuc2xpY2UoMSk7XG59XG4iXX0=
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc