@dbx-tools/shared-core 0.9.4 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +34 -34
- package/index.ts +12 -12
- package/lib/index.d.ts +12 -12
- package/lib/index.js +8 -8
- package/lib/src/{async.d.ts → async-utils.d.ts} +20 -0
- package/lib/src/async-utils.js +208 -0
- package/lib/src/brand-utils.js +132 -0
- package/lib/src/error-utils.js +168 -0
- package/lib/src/execution.js +3 -3
- package/lib/src/{function.d.ts → function-utils.d.ts} +1 -1
- package/lib/src/function-utils.js +44 -0
- package/lib/src/log.js +2 -2
- package/lib/src/pattern.js +2 -2
- package/lib/src/string-utils.js +513 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/{async.ts → async-utils.ts} +62 -0
- package/src/{error.ts → error-utils.ts} +1 -1
- package/src/execution.ts +2 -2
- package/src/{function.ts → function-utils.ts} +1 -1
- package/src/log.ts +1 -1
- package/src/pattern.ts +1 -1
- package/lib/src/async.js +0 -169
- package/lib/src/brand.js +0 -132
- package/lib/src/error.js +0 -168
- package/lib/src/function.js +0 -44
- package/lib/src/string.js +0 -513
- /package/lib/src/{brand.d.ts → brand-utils.d.ts} +0 -0
- /package/lib/src/{error.d.ts → error-utils.d.ts} +0 -0
- /package/lib/src/{string.d.ts → string-utils.d.ts} +0 -0
- /package/src/{brand.ts → brand-utils.ts} +0 -0
- /package/src/{string.ts → string-utils.ts} +0 -0
package/lib/src/pattern.js
CHANGED
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
*/
|
|
38
38
|
import { logger } from "./log.js";
|
|
39
39
|
import * as predicate from "./predicate.js";
|
|
40
|
-
import { parseList } from "./string.js";
|
|
40
|
+
import { parseList } from "./string-utils.js";
|
|
41
41
|
const log = logger("shared/pattern");
|
|
42
42
|
/** Escape a string for literal use inside a `RegExp`. */
|
|
43
43
|
export function escapeRegExp(value) {
|
|
@@ -125,4 +125,4 @@ export function toPatternMatcher(patterns, options = {}) {
|
|
|
125
125
|
return predicate.create(() => false);
|
|
126
126
|
return compiled.slice(1).reduce((acc, next) => acc.or(next), compiled[0]);
|
|
127
127
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxTQUFTLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV4QyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQVFyQyx5REFBeUQ7QUFDekQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFhO0lBQ3hDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBRUQsMkRBQTJEO0FBQzNELFNBQVMsY0FBYyxDQUFDLE9BQWU7SUFDckMsT0FBTyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDckYsQ0FBQztBQUVELG9EQUFvRDtBQUNwRCxTQUFTLE1BQU0sQ0FBQyxPQUFlO0lBQzdCLE9BQU8sT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFTLG1CQUFtQixDQUFDLE9BQWUsRUFBRSxhQUFzQjtJQUNsRSxNQUFNLE1BQU0sR0FBRyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLE1BQU07UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUM5QixNQUFNLElBQUksR0FBRyxNQUFNLENB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LEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzdDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBd0MsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsQ0FBQztJQUNoRixJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBUyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RSxPQUFPLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztBQUM3RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBMaXRlcmFsIC8gZ2xvYiAvIHJlZ2V4IHN0cmluZyBtYXRjaGluZywgY29tcGlsZWQgdG8gYSBjb21wb3NhYmxlXG4gKiB7QGxpbmsgUHJlZGljYXRlfS5cbiAqXG4gKiBBIGNvbmZpZ3VyYWJsZSBhbGxvdy1saXN0IGlzIHRoZSBzYW1lIHNoYXBlIGV2ZXJ5d2hlcmUgaW4gdGhpcyByZXBvOiBhIGxpc3Qgb2ZcbiAqIHBhdHRlcm5zIGZyb20gYSBjb25maWcgZmllbGQgb3IgYW4gZW52IHZhciwgd2hlcmUgYW4gb3BlcmF0b3IgcmVhc29uYWJseVxuICogZXhwZWN0cyB0byB3cml0ZSBhIHBsYWluIHZhbHVlLCBhIGAqYCB3aWxkY2FyZCwgb3IgLSB3aGVuIG5laXRoZXIgaXMgZW5vdWdoIC1cbiAqIGEgcmVhbCByZWdleC4gVGhpcyBtb2R1bGUgaXMgdGhlIHNpbmdsZSBwYXJzZXIgZm9yIHRob3NlIHRocmVlIGZvcm1zLlxuICpcbiAqIFRocmVlIHNoYXBlcyBhcmUgcmVjb2duaXplZCBwZXIgZW50cnksIHRyaWVkIGluIG9yZGVyOlxuICpcbiAqIC0gKipyZWdleCoqIC0gd3JhcHBlZCBpbiBzbGFzaGVzIChgL154LW1hc3RyYS0vYCwgd2l0aCBvcHRpb25hbCB0cmFpbGluZ1xuICogICBmbGFncykuIENvbXBpbGVkIGFzIHdyaXR0ZW4uIEFuIGludmFsaWQgcmVnZXggbmV2ZXIgbWF0Y2hlczogaXQgaXMgc2tpcHBlZFxuICogICB3aXRoIGEgd2FybmluZyByYXRoZXIgdGhhbiB0aHJvd2luZywgc28gb25lIGJhZCBlbnRyeSBjYW5ub3QgdGFrZSBhIHByb2Nlc3NcbiAqICAgZG93biBhdCBzdGFydHVwLlxuICogLSAqKmdsb2IqKiAtIGNvbnRhaW5zIGAqYCBvciBgP2AgKGB4LW1hc3RyYS0qYCkuIFNoZWxsLXN0eWxlLCBhbmNob3JlZCBhdCBib3RoXG4gKiAgIGVuZHM6IGAqYCBtYXRjaGVzIGFueSBydW4gb2YgY2hhcmFjdGVycywgYD9gIGV4YWN0bHkgb25lLlxuICogLSAqKmxpdGVyYWwqKiAtIGFueXRoaW5nIGVsc2UuIFdob2xlLXN0cmluZyBlcXVhbGl0eS5cbiAqXG4gKiBNYXRjaGluZyBpcyBjYXNlLUlOU0VOU0lUSVZFIGJ5IGRlZmF1bHQsIHdoaWNoIGlzIHdoYXQgdGhlIGNhbGxlcnMgd2FudCAoSFRUUFxuICogaGVhZGVyIG5hbWVzIGFuZCBlbWFpbCBhZGRyZXNzZXMgYXJlIGJvdGggY2FzZS1pbnNlbnNpdGl2ZSk7IHBhc3NcbiAqIGBjYXNlU2Vuc2l0aXZlYCB0byBvcHQgb3V0LiBBbiBlbXB0eSBwYXR0ZXJuIGxpc3QgbWF0Y2hlcyBOT1RISU5HLCBzbyBhXG4gKiBjYWxsZXIgdGhhdCB0cmVhdHMgXCJubyBwYXR0ZXJuc1wiIGFzIFwicGVybWl0IGV2ZXJ5dGhpbmdcIiBtdXN0IHNwZWNpYWwtY2FzZSBpdFxuICogcmF0aGVyIHRoYW4gcmVseWluZyBvbiB0aGUgbWF0Y2hlci5cbiAqXG4gKiBCcm93c2VyLXNhZmU6IGhhbmQtY29tcGlsZWQgdG8gYFJlZ0V4cGAgd2l0aCBubyBnbG9iIGRlcGVuZGVuY3ksIHNvIHRoaXMgc3RheXNcbiAqIHVzYWJsZSBmcm9tIGEgY2xpZW50IGJ1bmRsZS4gTm9kZSBjb2RlIHRoYXQgbmVlZHMgcGF0aC1hd2FyZSBnbG9iYmluZ1xuICogKGAvYCBhcyBhIHNlZ21lbnQgYm91bmRhcnksIGAqKmApIHdhbnRzIGBAZGJ4LXRvb2xzL3BhdGhgJ3MgYHRvUGF0aE1hdGNoZXJgXG4gKiBpbnN0ZWFkIC0gdGhhdCBvbmUgaXMgYG1pbmltYXRjaGAtYmFja2VkIGFuZCB1bmRlcnN0YW5kcyBwYXRoIHNlbWFudGljcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgYWxsb3dlZCA9IHRvUGF0dGVybk1hdGNoZXIoW1wieC1tYXN0cmEtKlwiLCBcIi9eeC10cmFjZS0vXCJdKTtcbiAqIGFsbG93ZWQoXCJ4LW1hc3RyYS10aHJlYWQtaWRcIik7IC8vIHRydWVcbiAqIGFsbG93ZWQoXCJ4LWZvcndhcmRlZC11c2VyXCIpOyAgIC8vIGZhbHNlXG4gKlxuICogQG1vZHVsZVxuICovXG5cbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuL2xvZy50c1wiO1xuaW1wb3J0ICogYXMgcHJlZGljYXRlIGZyb20gXCIuL3ByZWRpY2F0ZS50c1wiO1xuaW1wb3J0IHsgcGFyc2VMaXN0IH0gZnJvbSBcIi4vc3RyaW5nLnRzXCI7XG5cbmNvbnN0IGxvZyA9IGxvZ2dlcihcInNoYXJlZC9wYXR0ZXJuXCIpO1xuXG4vKiogT3B0aW9ucyBmb3Ige0BsaW5rIHRvUGF0dGVybn0gLyB7QGxpbmsgdG9QYXR0ZXJuTWF0Y2hlcn0uICovXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm5PcHRpb25zIHtcbiAgLyoqIE1hdGNoIGNhc2Utc2Vuc2l0aXZlbHkuIERlZmF1bHQgYGZhbHNlYCAoY2FzZS1pbnNlbnNpdGl2ZSkuICovXG4gIGNhc2VTZW5zaXRpdmU/OiBib29sZWFuO1xufVxuXG4vKiogRXNjYXBlIGEgc3RyaW5nIGZvciBsaXRlcmFsIHVzZSBpbnNpZGUgYSBgUmVnRXhwYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlc2NhcGVSZWdFeHAodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiB2YWx1ZS5yZXBsYWNlKC9bLiorP14ke30oKXxbXFxdXFxcXF0vZywgXCJcXFxcJCZcIik7XG59XG5cbi8qKiBUcnVlIHdoZW4gYHBhdHRlcm5gIGlzIGEgYC8uLi4vZmxhZ3NgIHJlZ2V4IGxpdGVyYWwuICovXG5mdW5jdGlvbiBpc1JlZ2V4TGl0ZXJhbChwYXR0ZXJuOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHBhdHRlcm4ubGVuZ3RoID4gMSAmJiBwYXR0ZXJuLnN0YXJ0c1dpdGgoXCIvXCIpICYmIC9cXC9bYS16XSokL2kudGVzdChwYXR0ZXJuKTtcbn1cblxuLyoqIFRydWUgd2hlbiBgcGF0dGVybmAgY29udGFpbnMgYSBnbG9iIHdpbGRjYXJkLiAqL1xuZnVuY3Rpb24gaXNHbG9iKHBhdHRlcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gcGF0dGVybi5pbmNsdWRlcyhcIipcIikgfHwgcGF0dGVybi5pbmNsdWRlcyhcIj9cIik7XG59XG5cbi8qKlxuICogQ29tcGlsZSBhIGAvcGF0dGVybi9mbGFnc2AgbGl0ZXJhbCwgb3IgYHVuZGVmaW5lZGAgd2hlbiBpdCBpcyBtYWxmb3JtZWQgb3JcbiAqIHRoZSBib2R5IGlzIG5vdCBhIHZhbGlkIHJlZ2V4LlxuICovXG5mdW5jdGlvbiBjb21waWxlUmVnZXhMaXRlcmFsKHBhdHRlcm46IHN0cmluZywgY2FzZVNlbnNpdGl2ZTogYm9vbGVhbik6IFJlZ0V4cCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHBhcnNlZCA9IC9eXFwvKC4rKVxcLyhbYS16XSopJC9pcy5leGVjKHBhdHRlcm4pO1xuICBpZiAoIXBhcnNlZCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgY29uc3QgYm9keSA9IHBhcnNlZFsxXSE7XG4gIGNvbnN0IGZsYWdzID0gcGFyc2VkWzJdITtcbiAgdHJ5IHtcbiAgICByZXR1cm4gbmV3IFJlZ0V4cChib2R5LCBjYXNlU2Vuc2l0aXZlIHx8IGZsYWdzLmluY2x1ZGVzKFwiaVwiKSA/IGZsYWdzIDogYCR7ZmxhZ3N9aWApO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGxvZy53YXJuKFwiaWdub3JpbmcgaW52YWxpZCByZWdleCBwYXR0ZXJuXCIsIHsgcGF0dGVybiwgZXJyb3IgfSk7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIENvbXBpbGUgYSBzaGVsbC1zdHlsZSBnbG9iIChgKmAsIGA/YCkgaW50byBhbiBhbmNob3JlZCBgUmVnRXhwYC4gRXZlcnkgb3RoZXJcbiAqIGNoYXJhY3RlciBpcyBlc2NhcGVkLCBzbyBhIGdsb2IgY2FuIHNhZmVseSBjb250YWluIHJlZ2V4IG1ldGFjaGFyYWN0ZXJzXG4gKiAoYHgtYXBwLipgIG1hdGNoZXMgYSBsaXRlcmFsIGRvdCBmb2xsb3dlZCBieSBhbnl0aGluZykuXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGVHbG9iKHBhdHRlcm46IHN0cmluZywgY2FzZVNlbnNpdGl2ZTogYm9vbGVhbik6IFJlZ0V4cCB7XG4gIGNvbnN0IGJvZHkgPSBwYXR0ZXJuXG4gICAgLnNwbGl0KC8oWyo/XSkvKVxuICAgIC5tYXAoKHBhcnQpID0+IChwYXJ0ID09PSBcIipcIiA/IFwiLipcIiA6IHBhcnQgPT09IFwiP1wiID8gXCIuXCIgOiBlc2NhcGVSZWdFeHAocGFydCkpKVxuICAgIC5qb2luKFwiXCIpO1xuICByZXR1cm4gbmV3IFJlZ0V4cChgXiR7Ym9keX0kYCwgY2FzZVNlbnNpdGl2ZSA/IFwiXCIgOiBcImlcIik7XG59XG5cbi8qKlxuICogQ29tcGlsZSBPTkUgcGF0dGVybiBpbnRvIGEgcHJlZGljYXRlLCBvciBgdW5kZWZpbmVkYCB3aGVuIHRoZSBlbnRyeSBpcyBlbXB0eVxuICogb3IgYW4gdW5wYXJzZWFibGUgcmVnZXggbGl0ZXJhbC5cbiAqXG4gKiBDYWxsZXJzIHRoYXQgd2FudCBhIHdob2xlIGxpc3Qgc2hvdWxkIHVzZSB7QGxpbmsgdG9QYXR0ZXJuTWF0Y2hlcn07IHRoaXMgaXNcbiAqIGV4cG9ydGVkIGZvciB0aGUgY2FzZSB3aGVyZSBhIGNvbnN1bWVyIGFwcGxpZXMgaXRzIG93biBzZW1hbnRpY3MgdG8gc29tZVxuICogc2hhcGVzIGFuZCBvbmx5IHdhbnRzIHRoZSBnbG9iL3JlZ2V4IGhhbmRsaW5nICh0aGUgZW1haWwgZ2F0ZSdzIGJhcmUtZG9tYWluXG4gKiBzaG9ydGN1dCwgZm9yIG9uZSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1BhdHRlcm4oXG4gIHBhdHRlcm46IHN0cmluZyxcbiAgb3B0aW9uczogUGF0dGVybk9wdGlvbnMgPSB7fSxcbik6IHByZWRpY2F0ZS5QcmVkaWNhdGU8c3RyaW5nPiB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHRyaW1tZWQgPSBwYXR0ZXJuLnRyaW0oKTtcbiAgaWYgKCF0cmltbWVkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBjYXNlU2Vuc2l0aXZlID0gb3B0aW9ucy5jYXNlU2Vuc2l0aXZlID8/IGZhbHNlO1xuXG4gIGlmIChpc1JlZ2V4TGl0ZXJhbCh0cmltbWVkKSkge1xuICAgIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZVJlZ2V4TGl0ZXJhbCh0cmltbWVkLCBjYXNlU2Vuc2l0aXZlKTtcbiAgICByZXR1cm4gY29tcGlsZWQgJiYgcHJlZGljYXRlLmNyZWF0ZTxzdHJpbmc+KCh2YWx1ZSkgPT4gY29tcGlsZWQudGVzdCh2YWx1ZSkpO1xuICB9XG4gIGlmIChpc0dsb2IodHJpbW1lZCkpIHtcbiAgICBjb25zdCBjb21waWxlZCA9IGNvbXBpbGVHbG9iKHRyaW1tZWQsIGNhc2VTZW5zaXRpdmUpO1xuICAgIHJldHVybiBwcmVkaWNhdGUuY3JlYXRlPHN0cmluZz4oKHZhbHVlKSA9PiBjb21waWxlZC50ZXN0KHZhbHVlKSk7XG4gIH1cbiAgLy8gTGl0ZXJhbDogd2hvbGUtc3RyaW5nIGVxdWFsaXR5LlxuICBjb25zdCBleHBlY3RlZCA9IGNhc2VTZW5zaXRpdmUgPyB0cmltbWVkIDogdHJpbW1lZC50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gcHJlZGljYXRlLmNyZWF0ZTxzdHJpbmc+KCh2YWx1ZSkgPT5cbiAgICBjYXNlU2Vuc2l0aXZlID8gdmFsdWUgPT09IGV4cGVjdGVkIDogdmFsdWUudG9Mb3dlckNhc2UoKSA9PT0gZXhwZWN0ZWQsXG4gICk7XG59XG5cbi8qKlxuICogQ29tcGlsZSBwYXR0ZXJucyBpbnRvIGEgc2luZ2xlIE9SJ2Qge0BsaW5rIFByZWRpY2F0ZX0uIEFjY2VwdHMgdGhlIHJhdyBjb25maWdcbiAqIHNoYXBlcyB7QGxpbmsgcGFyc2VMaXN0fSBkb2VzIC0gYW4gYXJyYXksIG9yIG9uZSBjb21tYS93aGl0ZXNwYWNlLXNlcGFyYXRlZFxuICogc3RyaW5nIC0gc28gYSBmaWVsZCBhbmQgaXRzIGVudiB2YXIgbmVlZCBubyBzZXBhcmF0ZSBoYW5kbGluZy5cbiAqXG4gKiBXaXRoIG5vIHVzYWJsZSBwYXR0ZXJucyB0aGUgcmVzdWx0IGFsd2F5cyByZXR1cm5zIGBmYWxzZWAuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGZvcndhcmRhYmxlID0gdG9QYXR0ZXJuTWF0Y2hlcihwcm9jZXNzLmVudi5UVU5ORUxfRk9SV0FSRF9IRUFERVJTKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUGF0dGVybk1hdGNoZXIoXG4gIHBhdHRlcm5zOiBzdHJpbmcgfCByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZCB8IG51bGwsXG4gIG9wdGlvbnM6IFBhdHRlcm5PcHRpb25zID0ge30sXG4pOiBwcmVkaWNhdGUuUHJlZGljYXRlPHN0cmluZz4ge1xuICBjb25zdCBjb21waWxlZCA9IHBhcnNlTGlzdChwYXR0ZXJucylcbiAgICAubWFwKChwYXR0ZXJuKSA9PiB0b1BhdHRlcm4ocGF0dGVybiwgb3B0aW9ucykpXG4gICAgLmZpbHRlcigodmFsdWUpOiB2YWx1ZSBpcyBwcmVkaWNhdGUuUHJlZGljYXRlPHN0cmluZz4gPT4gdmFsdWUgIT09IHVuZGVmaW5lZCk7XG4gIGlmIChjb21waWxlZC5sZW5ndGggPT09IDApIHJldHVybiBwcmVkaWNhdGUuY3JlYXRlPHN0cmluZz4oKCkgPT4gZmFsc2UpO1xuICByZXR1cm4gY29tcGlsZWQuc2xpY2UoMSkucmVkdWNlKChhY2MsIG5leHQpID0+IGFjYy5vcihuZXh0KSwgY29tcGlsZWRbMF0hKTtcbn1cbiJdfQ==
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQ0c7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xDLE9BQU8sS0FBSyxTQUFTLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBUXJDLHlEQUF5RDtBQUN6RCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWE7SUFDeEMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFFRCwyREFBMkQ7QUFDM0QsU0FBUyxjQUFjLENBQUMsT0FBZTtJQUNyQyxPQUFPLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNyRixDQUFDO0FBRUQsb0RBQW9EO0FBQ3BELFNBQVMsTUFBTSxDQUFDLE9BQWU7SUFDN0IsT0FBTyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQVMsbUJBQW1CLENBQUMsT0FBZSxFQUFFLGFBQXNCO0lBQ2xFLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sU0FBUyxDQUFDO0lBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQztJQUN4QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFFLENBQUM7SUFDekIsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLE1BQU0sQ0FBQyxJQUFJLEVBQUUsYUFBYSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsV0FBVyxDQUFDLE9BQWUsRUFBRSxhQUFzQjtJQUMxRCxNQUFNLElBQUksR0FBRyxPQUFPO1NBQ2pCLEtBQUssQ0FBQyxRQUFRLENBQUM7U0FDZixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzlFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNaLE9BQU8sSUFBSSxNQUFNLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0QsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FDdkIsT0FBZSxFQUNmLFVBQTBCLEVBQUU7SUFFNUIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLElBQUksQ0FBQyxPQUFPO1FBQUUsT0FBTyxTQUFTLENBQUM7SUFDL0IsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUM7SUFFckQsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDN0QsT0FBTyxRQUFRLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFDRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFDckQsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELGtDQUFrQztJQUNsQyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2pFLE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ3hDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLFFBQVEsQ0FDdEUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLFFBQXVELEVBQ3ZELFVBQTBCLEVBQUU7SUFFNUIsTUFBTSxRQUFRLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQztTQUNqQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDN0MsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUF3QyxFQUFFLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO0lBQ2hGLElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDO1FBQUUsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFTLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hFLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUUsQ0FBQyxDQUFDO0FBQzdFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIExpdGVyYWwgLyBnbG9iIC8gcmVnZXggc3RyaW5nIG1hdGNoaW5nLCBjb21waWxlZCB0byBhIGNvbXBvc2FibGVcbiAqIHtAbGluayBQcmVkaWNhdGV9LlxuICpcbiAqIEEgY29uZmlndXJhYmxlIGFsbG93LWxpc3QgaXMgdGhlIHNhbWUgc2hhcGUgZXZlcnl3aGVyZSBpbiB0aGlzIHJlcG86IGEgbGlzdCBvZlxuICogcGF0dGVybnMgZnJvbSBhIGNvbmZpZyBmaWVsZCBvciBhbiBlbnYgdmFyLCB3aGVyZSBhbiBvcGVyYXRvciByZWFzb25hYmx5XG4gKiBleHBlY3RzIHRvIHdyaXRlIGEgcGxhaW4gdmFsdWUsIGEgYCpgIHdpbGRjYXJkLCBvciAtIHdoZW4gbmVpdGhlciBpcyBlbm91Z2ggLVxuICogYSByZWFsIHJlZ2V4LiBUaGlzIG1vZHVsZSBpcyB0aGUgc2luZ2xlIHBhcnNlciBmb3IgdGhvc2UgdGhyZWUgZm9ybXMuXG4gKlxuICogVGhyZWUgc2hhcGVzIGFyZSByZWNvZ25pemVkIHBlciBlbnRyeSwgdHJpZWQgaW4gb3JkZXI6XG4gKlxuICogLSAqKnJlZ2V4KiogLSB3cmFwcGVkIGluIHNsYXNoZXMgKGAvXngtbWFzdHJhLS9gLCB3aXRoIG9wdGlvbmFsIHRyYWlsaW5nXG4gKiAgIGZsYWdzKS4gQ29tcGlsZWQgYXMgd3JpdHRlbi4gQW4gaW52YWxpZCByZWdleCBuZXZlciBtYXRjaGVzOiBpdCBpcyBza2lwcGVkXG4gKiAgIHdpdGggYSB3YXJuaW5nIHJhdGhlciB0aGFuIHRocm93aW5nLCBzbyBvbmUgYmFkIGVudHJ5IGNhbm5vdCB0YWtlIGEgcHJvY2Vzc1xuICogICBkb3duIGF0IHN0YXJ0dXAuXG4gKiAtICoqZ2xvYioqIC0gY29udGFpbnMgYCpgIG9yIGA/YCAoYHgtbWFzdHJhLSpgKS4gU2hlbGwtc3R5bGUsIGFuY2hvcmVkIGF0IGJvdGhcbiAqICAgZW5kczogYCpgIG1hdGNoZXMgYW55IHJ1biBvZiBjaGFyYWN0ZXJzLCBgP2AgZXhhY3RseSBvbmUuXG4gKiAtICoqbGl0ZXJhbCoqIC0gYW55dGhpbmcgZWxzZS4gV2hvbGUtc3RyaW5nIGVxdWFsaXR5LlxuICpcbiAqIE1hdGNoaW5nIGlzIGNhc2UtSU5TRU5TSVRJVkUgYnkgZGVmYXVsdCwgd2hpY2ggaXMgd2hhdCB0aGUgY2FsbGVycyB3YW50IChIVFRQXG4gKiBoZWFkZXIgbmFtZXMgYW5kIGVtYWlsIGFkZHJlc3NlcyBhcmUgYm90aCBjYXNlLWluc2Vuc2l0aXZlKTsgcGFzc1xuICogYGNhc2VTZW5zaXRpdmVgIHRvIG9wdCBvdXQuIEFuIGVtcHR5IHBhdHRlcm4gbGlzdCBtYXRjaGVzIE5PVEhJTkcsIHNvIGFcbiAqIGNhbGxlciB0aGF0IHRyZWF0cyBcIm5vIHBhdHRlcm5zXCIgYXMgXCJwZXJtaXQgZXZlcnl0aGluZ1wiIG11c3Qgc3BlY2lhbC1jYXNlIGl0XG4gKiByYXRoZXIgdGhhbiByZWx5aW5nIG9uIHRoZSBtYXRjaGVyLlxuICpcbiAqIEJyb3dzZXItc2FmZTogaGFuZC1jb21waWxlZCB0byBgUmVnRXhwYCB3aXRoIG5vIGdsb2IgZGVwZW5kZW5jeSwgc28gdGhpcyBzdGF5c1xuICogdXNhYmxlIGZyb20gYSBjbGllbnQgYnVuZGxlLiBOb2RlIGNvZGUgdGhhdCBuZWVkcyBwYXRoLWF3YXJlIGdsb2JiaW5nXG4gKiAoYC9gIGFzIGEgc2VnbWVudCBib3VuZGFyeSwgYCoqYCkgd2FudHMgYEBkYngtdG9vbHMvcGF0aGAncyBgdG9QYXRoTWF0Y2hlcmBcbiAqIGluc3RlYWQgLSB0aGF0IG9uZSBpcyBgbWluaW1hdGNoYC1iYWNrZWQgYW5kIHVuZGVyc3RhbmRzIHBhdGggc2VtYW50aWNzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBhbGxvd2VkID0gdG9QYXR0ZXJuTWF0Y2hlcihbXCJ4LW1hc3RyYS0qXCIsIFwiL154LXRyYWNlLS9cIl0pO1xuICogYWxsb3dlZChcIngtbWFzdHJhLXRocmVhZC1pZFwiKTsgLy8gdHJ1ZVxuICogYWxsb3dlZChcIngtZm9yd2FyZGVkLXVzZXJcIik7ICAgLy8gZmFsc2VcbiAqXG4gKiBAbW9kdWxlXG4gKi9cblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSBcIi4vbG9nLnRzXCI7XG5pbXBvcnQgKiBhcyBwcmVkaWNhdGUgZnJvbSBcIi4vcHJlZGljYXRlLnRzXCI7XG5pbXBvcnQgeyBwYXJzZUxpc3QgfSBmcm9tIFwiLi9zdHJpbmctdXRpbHMudHNcIjtcblxuY29uc3QgbG9nID0gbG9nZ2VyKFwic2hhcmVkL3BhdHRlcm5cIik7XG5cbi8qKiBPcHRpb25zIGZvciB7QGxpbmsgdG9QYXR0ZXJufSAvIHtAbGluayB0b1BhdHRlcm5NYXRjaGVyfS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybk9wdGlvbnMge1xuICAvKiogTWF0Y2ggY2FzZS1zZW5zaXRpdmVseS4gRGVmYXVsdCBgZmFsc2VgIChjYXNlLWluc2Vuc2l0aXZlKS4gKi9cbiAgY2FzZVNlbnNpdGl2ZT86IGJvb2xlYW47XG59XG5cbi8qKiBFc2NhcGUgYSBzdHJpbmcgZm9yIGxpdGVyYWwgdXNlIGluc2lkZSBhIGBSZWdFeHBgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbHVlLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCBcIlxcXFwkJlwiKTtcbn1cblxuLyoqIFRydWUgd2hlbiBgcGF0dGVybmAgaXMgYSBgLy4uLi9mbGFnc2AgcmVnZXggbGl0ZXJhbC4gKi9cbmZ1bmN0aW9uIGlzUmVnZXhMaXRlcmFsKHBhdHRlcm46IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gcGF0dGVybi5sZW5ndGggPiAxICYmIHBhdHRlcm4uc3RhcnRzV2l0aChcIi9cIikgJiYgL1xcL1thLXpdKiQvaS50ZXN0KHBhdHRlcm4pO1xufVxuXG4vKiogVHJ1ZSB3aGVuIGBwYXR0ZXJuYCBjb250YWlucyBhIGdsb2Igd2lsZGNhcmQuICovXG5mdW5jdGlvbiBpc0dsb2IocGF0dGVybjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiBwYXR0ZXJuLmluY2x1ZGVzKFwiKlwiKSB8fCBwYXR0ZXJuLmluY2x1ZGVzKFwiP1wiKTtcbn1cblxuLyoqXG4gKiBDb21waWxlIGEgYC9wYXR0ZXJuL2ZsYWdzYCBsaXRlcmFsLCBvciBgdW5kZWZpbmVkYCB3aGVuIGl0IGlzIG1hbGZvcm1lZCBvclxuICogdGhlIGJvZHkgaXMgbm90IGEgdmFsaWQgcmVnZXguXG4gKi9cbmZ1bmN0aW9uIGNvbXBpbGVSZWdleExpdGVyYWwocGF0dGVybjogc3RyaW5nLCBjYXNlU2Vuc2l0aXZlOiBib29sZWFuKTogUmVnRXhwIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyc2VkID0gL15cXC8oLispXFwvKFthLXpdKikkL2lzLmV4ZWMocGF0dGVybik7XG4gIGlmICghcGFyc2VkKSByZXR1cm4gdW5kZWZpbmVkO1xuICBjb25zdCBib2R5ID0gcGFyc2VkWzFdITtcbiAgY29uc3QgZmxhZ3MgPSBwYXJzZWRbMl0hO1xuICB0cnkge1xuICAgIHJldHVybiBuZXcgUmVnRXhwKGJvZHksIGNhc2VTZW5zaXRpdmUgfHwgZmxhZ3MuaW5jbHVkZXMoXCJpXCIpID8gZmxhZ3MgOiBgJHtmbGFnc31pYCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nLndhcm4oXCJpZ25vcmluZyBpbnZhbGlkIHJlZ2V4IHBhdHRlcm5cIiwgeyBwYXR0ZXJuLCBlcnJvciB9KTtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogQ29tcGlsZSBhIHNoZWxsLXN0eWxlIGdsb2IgKGAqYCwgYD9gKSBpbnRvIGFuIGFuY2hvcmVkIGBSZWdFeHBgLiBFdmVyeSBvdGhlclxuICogY2hhcmFjdGVyIGlzIGVzY2FwZWQsIHNvIGEgZ2xvYiBjYW4gc2FmZWx5IGNvbnRhaW4gcmVnZXggbWV0YWNoYXJhY3RlcnNcbiAqIChgeC1hcHAuKmAgbWF0Y2hlcyBhIGxpdGVyYWwgZG90IGZvbGxvd2VkIGJ5IGFueXRoaW5nKS5cbiAqL1xuZnVuY3Rpb24gY29tcGlsZUdsb2IocGF0dGVybjogc3RyaW5nLCBjYXNlU2Vuc2l0aXZlOiBib29sZWFuKTogUmVnRXhwIHtcbiAgY29uc3QgYm9keSA9IHBhdHRlcm5cbiAgICAuc3BsaXQoLyhbKj9dKS8pXG4gICAgLm1hcCgocGFydCkgPT4gKHBhcnQgPT09IFwiKlwiID8gXCIuKlwiIDogcGFydCA9PT0gXCI/XCIgPyBcIi5cIiA6IGVzY2FwZVJlZ0V4cChwYXJ0KSkpXG4gICAgLmpvaW4oXCJcIik7XG4gIHJldHVybiBuZXcgUmVnRXhwKGBeJHtib2R5fSRgLCBjYXNlU2Vuc2l0aXZlID8gXCJcIiA6IFwiaVwiKTtcbn1cblxuLyoqXG4gKiBDb21waWxlIE9ORSBwYXR0ZXJuIGludG8gYSBwcmVkaWNhdGUsIG9yIGB1bmRlZmluZWRgIHdoZW4gdGhlIGVudHJ5IGlzIGVtcHR5XG4gKiBvciBhbiB1bnBhcnNlYWJsZSByZWdleCBsaXRlcmFsLlxuICpcbiAqIENhbGxlcnMgdGhhdCB3YW50IGEgd2hvbGUgbGlzdCBzaG91bGQgdXNlIHtAbGluayB0b1BhdHRlcm5NYXRjaGVyfTsgdGhpcyBpc1xuICogZXhwb3J0ZWQgZm9yIHRoZSBjYXNlIHdoZXJlIGEgY29uc3VtZXIgYXBwbGllcyBpdHMgb3duIHNlbWFudGljcyB0byBzb21lXG4gKiBzaGFwZXMgYW5kIG9ubHkgd2FudHMgdGhlIGdsb2IvcmVnZXggaGFuZGxpbmcgKHRoZSBlbWFpbCBnYXRlJ3MgYmFyZS1kb21haW5cbiAqIHNob3J0Y3V0LCBmb3Igb25lKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvUGF0dGVybihcbiAgcGF0dGVybjogc3RyaW5nLFxuICBvcHRpb25zOiBQYXR0ZXJuT3B0aW9ucyA9IHt9LFxuKTogcHJlZGljYXRlLlByZWRpY2F0ZTxzdHJpbmc+IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgdHJpbW1lZCA9IHBhdHRlcm4udHJpbSgpO1xuICBpZiAoIXRyaW1tZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGNvbnN0IGNhc2VTZW5zaXRpdmUgPSBvcHRpb25zLmNhc2VTZW5zaXRpdmUgPz8gZmFsc2U7XG5cbiAgaWYgKGlzUmVnZXhMaXRlcmFsKHRyaW1tZWQpKSB7XG4gICAgY29uc3QgY29tcGlsZWQgPSBjb21waWxlUmVnZXhMaXRlcmFsKHRyaW1tZWQsIGNhc2VTZW5zaXRpdmUpO1xuICAgIHJldHVybiBjb21waWxlZCAmJiBwcmVkaWNhdGUuY3JlYXRlPHN0cmluZz4oKHZhbHVlKSA9PiBjb21waWxlZC50ZXN0KHZhbHVlKSk7XG4gIH1cbiAgaWYgKGlzR2xvYih0cmltbWVkKSkge1xuICAgIGNvbnN0IGNvbXBpbGVkID0gY29tcGlsZUdsb2IodHJpbW1lZCwgY2FzZVNlbnNpdGl2ZSk7XG4gICAgcmV0dXJuIHByZWRpY2F0ZS5jcmVhdGU8c3RyaW5nPigodmFsdWUpID0+IGNvbXBpbGVkLnRlc3QodmFsdWUpKTtcbiAgfVxuICAvLyBMaXRlcmFsOiB3aG9sZS1zdHJpbmcgZXF1YWxpdHkuXG4gIGNvbnN0IGV4cGVjdGVkID0gY2FzZVNlbnNpdGl2ZSA/IHRyaW1tZWQgOiB0cmltbWVkLnRvTG93ZXJDYXNlKCk7XG4gIHJldHVybiBwcmVkaWNhdGUuY3JlYXRlPHN0cmluZz4oKHZhbHVlKSA9PlxuICAgIGNhc2VTZW5zaXRpdmUgPyB2YWx1ZSA9PT0gZXhwZWN0ZWQgOiB2YWx1ZS50b0xvd2VyQ2FzZSgpID09PSBleHBlY3RlZCxcbiAgKTtcbn1cblxuLyoqXG4gKiBDb21waWxlIHBhdHRlcm5zIGludG8gYSBzaW5nbGUgT1InZCB7QGxpbmsgUHJlZGljYXRlfS4gQWNjZXB0cyB0aGUgcmF3IGNvbmZpZ1xuICogc2hhcGVzIHtAbGluayBwYXJzZUxpc3R9IGRvZXMgLSBhbiBhcnJheSwgb3Igb25lIGNvbW1hL3doaXRlc3BhY2Utc2VwYXJhdGVkXG4gKiBzdHJpbmcgLSBzbyBhIGZpZWxkIGFuZCBpdHMgZW52IHZhciBuZWVkIG5vIHNlcGFyYXRlIGhhbmRsaW5nLlxuICpcbiAqIFdpdGggbm8gdXNhYmxlIHBhdHRlcm5zIHRoZSByZXN1bHQgYWx3YXlzIHJldHVybnMgYGZhbHNlYC5cbiAqXG4gKiBAZXhhbXBsZVxuICogY29uc3QgZm9yd2FyZGFibGUgPSB0b1BhdHRlcm5NYXRjaGVyKHByb2Nlc3MuZW52LlRVTk5FTF9GT1JXQVJEX0hFQURFUlMpO1xuICovXG5leHBvcnQgZnVuY3Rpb24gdG9QYXR0ZXJuTWF0Y2hlcihcbiAgcGF0dGVybnM6IHN0cmluZyB8IHJlYWRvbmx5IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgb3B0aW9uczogUGF0dGVybk9wdGlvbnMgPSB7fSxcbik6IHByZWRpY2F0ZS5QcmVkaWNhdGU8c3RyaW5nPiB7XG4gIGNvbnN0IGNvbXBpbGVkID0gcGFyc2VMaXN0KHBhdHRlcm5zKVxuICAgIC5tYXAoKHBhdHRlcm4pID0+IHRvUGF0dGVybihwYXR0ZXJuLCBvcHRpb25zKSlcbiAgICAuZmlsdGVyKCh2YWx1ZSk6IHZhbHVlIGlzIHByZWRpY2F0ZS5QcmVkaWNhdGU8c3RyaW5nPiA9PiB2YWx1ZSAhPT0gdW5kZWZpbmVkKTtcbiAgaWYgKGNvbXBpbGVkLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHByZWRpY2F0ZS5jcmVhdGU8c3RyaW5nPigoKSA9PiBmYWxzZSk7XG4gIHJldHVybiBjb21waWxlZC5zbGljZSgxKS5yZWR1Y2UoKGFjYywgbmV4dCkgPT4gYWNjLm9yKG5leHQpLCBjb21waWxlZFswXSEpO1xufVxuIl19
|