sliftutils 1.7.85 → 1.7.87

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.
@@ -1,6 +1,6 @@
1
1
  "use strict"; var console = (function shimConsole() { let baseConsole = globalThis.console; if (typeof window !== "undefined") return baseConsole; let name = __filename.replaceAll("\\", "/").split("/").pop(); let dirName = __dirname.replaceAll("\\", "/").split("/").pop(); let context = { __FILE__: __filename, __DIR__: __dirname, __NAME__: name, __DIRNAME__: dirName }; let newConsole = { ...baseConsole }; for (let shim of ["log", "info", "warn", "error"]) { newConsole[shim] = (...args) => { args.push(context); baseConsole[shim](...args); }; } newConsole.__context = context; return newConsole; })(); "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true , configurable: true});
3
- //exports.findSplitUrl = exports.expireIntermediateSources = exports.injectIntermediateSource = exports.resolveIntermediateSources = exports.hasIntermediateSources = exports.getIntermediateSources = exports.nextIntermediateVersion = exports.INTERMEDIATE_EXPIRE_GRACE = void 0;
3
+ //exports.expireIntermediateSources = exports.injectIntermediateSource = exports.resolveIntermediateSources = exports.hasIntermediateSources = exports.getIntermediateSources = exports.nextIntermediateVersion = exports.INTERMEDIATE_EXPIRE_GRACE = void 0;
4
4
  exports.INTERMEDIATE_EXPIRE_GRACE = 15 * 60 * 1000;
5
5
  const INTERMEDIATE_VERSION_FRACTION = 1000000;
6
6
  /** Adding or removing intermediates is a real config update, so it takes a real version increment - but a proportional one, so it stays far below whatever the author's next version would be (whether they count 1, 2, 3 or use timestamps), and a million of them still fit under it. */
@@ -81,7 +81,8 @@ function injectIntermediateSource(config, inject) {
81
81
  if (middleStart > windowStart) {
82
82
  sources.push({ ...source, validWindow: [windowStart, middleStart] });
83
83
  }
84
- sources.push({ ...source, url: intermediateUrl, validWindow: [middleStart, middleEnd], intermediate: true });
84
+ // intermediate = the url this entry was split out of, so a request naming the intermediate still resolves to the original source
85
+ sources.push({ ...source, url: intermediateUrl, validWindow: [middleStart, middleEnd], intermediate: splitUrl });
85
86
  if (windowEnd > middleEnd) {
86
87
  sources.push({ ...source, validWindow: [middleEnd, windowEnd] });
87
88
  }
@@ -99,7 +100,8 @@ function expireIntermediateSources(config, now) {
99
100
  let result = resolved;
100
101
  for (let keep of keptIntermediates) {
101
102
  result = injectIntermediateSource(result, {
102
- splitUrl: findSplitUrl(config, keep) || keep.url,
103
+ // The intermediate carries the url it was split out of; fall back to its own url only for a legacy entry that predates that
104
+ splitUrl: keep.intermediate || keep.url,
103
105
  intermediateUrl: keep.url,
104
106
  start: keep.validWindow[0],
105
107
  end: keep.validWindow[1],
@@ -108,12 +110,5 @@ function expireIntermediateSources(config, now) {
108
110
  return result;
109
111
  }
110
112
  exports.expireIntermediateSources = expireIntermediateSources;
111
- /** The url of the entry an intermediate was split out of - the neighbour it touches. */
112
- function findSplitUrl(config, intermediate) {
113
- let [start, end] = intermediate.validWindow;
114
- let neighbour = config.sources.find(x => isSourceConfig(x) && !x.intermediate && (x.validWindow[1] === start || x.validWindow[0] === end));
115
- return neighbour === null || neighbour === void 0 ? void 0 : neighbour.url;
116
- }
117
- exports.findSplitUrl = findSplitUrl;
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJtZWRpYXRlU291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVybWVkaWF0ZVNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSx5QkFBeUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUN4RCxNQUFNLDZCQUE2QixHQUFHLE9BQVMsQ0FBQztBQUVoRCwyUkFBMlI7QUFDM1IsU0FBZ0IsdUJBQXVCLENBQUMsT0FBZTtJQUNuRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLDZCQUE2QixDQUFDO0lBQzdELElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxHQUFHLENBQUMsR0FBRyw2QkFBNkIsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQzFCLENBQUM7QUFORCwwREFNQztBQUVELFNBQVMsY0FBYyxDQUFDLE1BQXdCO0lBQzVDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUF3QjtJQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzNDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3RGLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxNQUFvQjtJQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsTUFBb0I7SUFDdkQsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFtQixDQUFDO0FBQzdGLENBQUM7QUFGRCx3REFFQztBQUVELFNBQWdCLHNCQUFzQixDQUFDLE1BQW9CO0lBQ3ZELE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFGRCx3REFFQztBQUVELGdMQUFnTDtBQUNoTCxTQUFnQiwwQkFBMEIsQ0FBQyxNQUFvQjtJQUMzRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUM7SUFDbkQsSUFBSSxPQUFPLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsSUFBSSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakcsS0FBSyxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDekMsSUFBSSxNQUFNLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBNkIsQ0FBQztRQUMvRyxJQUFJLEtBQUssR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBTSxDQUE2QixDQUFDO1FBQzVHLElBQUksTUFBTSxJQUFJLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEQsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25FLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMxQyxTQUFTO1FBQ2IsQ0FBQztRQUNELElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLENBQUMsV0FBVyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNyRCxTQUFTO1FBQ2IsQ0FBQztRQUNELElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixLQUFLLENBQUMsV0FBVyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUNoRCxDQUFDO0FBdEJELGdFQXNCQztBQUVELHNPQUFzTztBQUN0TyxTQUFnQix3QkFBd0IsQ0FBQyxNQUFvQixFQUFFLE1BQWlGO0lBQzVJLElBQUksRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFDdkQsSUFBSSxLQUFLLElBQUksR0FBRztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ2hDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLGVBQWUsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDdkosT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUNELElBQUksT0FBTyxHQUF1QixFQUFFLENBQUM7SUFDckMsS0FBSyxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsR0FBRyxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUUsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsQyxTQUFTO1FBQ2IsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUNsRCxJQUFJLFNBQVMsSUFBSSxLQUFLLElBQUksV0FBVyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQzNDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDbEMsU0FBUztRQUNiLENBQUM7UUFDRCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN6QyxJQUFJLFdBQVcsR0FBRyxXQUFXLEVBQUUsQ0FBQztZQUM1QixPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEdBQUcsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdHLElBQUksU0FBUyxHQUFHLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ2hELENBQUM7QUE1QkQsNERBNEJDO0FBRUQscUlBQXFJO0FBQ3JJLFNBQWdCLHlCQUF5QixDQUFDLE1BQW9CLEVBQUUsR0FBVztJQUN2RSxJQUFJLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLGlDQUF5QixHQUFHLEdBQUcsQ0FBQyxDQUFDO0lBQzdHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTTtRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQ25DLElBQUksaUJBQWlCLEdBQUcsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsSUFBSSxRQUFRLEdBQUcsMEJBQTBCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDO0lBQ3RCLEtBQUssSUFBSSxJQUFJLElBQUksaUJBQWlCLEVBQUUsQ0FBQztRQUNqQyxNQUFNLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxFQUFFO1lBQ3RDLFFBQVEsRUFBRSxZQUFZLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHO1lBQ2hELGVBQWUsRUFBRSxJQUFJLENBQUMsR0FBRztZQUN6QixLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDMUIsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1NBQzNCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBZkQsOERBZUM7QUFFRCx3RkFBd0Y7QUFDeEYsU0FBZ0IsWUFBWSxDQUFDLE1BQW9CLEVBQUUsWUFBMEI7SUFDekUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDO0lBQzVDLElBQUksU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQTZCLENBQUM7SUFDdkssT0FBTyxTQUFTLGFBQVQsU0FBUyx1QkFBVCxTQUFTLENBQUUsR0FBRyxDQUFDO0FBQzFCLENBQUM7QUFKRCxvQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlbW90ZUNvbmZpZywgUmVtb3RlQ29uZmlnQmFzZSwgU291cmNlQ29uZmlnIH0gZnJvbSBcIi4uL0lBcmNoaXZlc1wiO1xuXG5leHBvcnQgY29uc3QgSU5URVJNRURJQVRFX0VYUElSRV9HUkFDRSA9IDE1ICogNjAgKiAxMDAwO1xuY29uc3QgSU5URVJNRURJQVRFX1ZFUlNJT05fRlJBQ1RJT04gPSAxXzAwMF8wMDA7XG5cbi8qKiBBZGRpbmcgb3IgcmVtb3ZpbmcgaW50ZXJtZWRpYXRlcyBpcyBhIHJlYWwgY29uZmlnIHVwZGF0ZSwgc28gaXQgdGFrZXMgYSByZWFsIHZlcnNpb24gaW5jcmVtZW50IC0gYnV0IGEgcHJvcG9ydGlvbmFsIG9uZSwgc28gaXQgc3RheXMgZmFyIGJlbG93IHdoYXRldmVyIHRoZSBhdXRob3IncyBuZXh0IHZlcnNpb24gd291bGQgYmUgKHdoZXRoZXIgdGhleSBjb3VudCAxLCAyLCAzIG9yIHVzZSB0aW1lc3RhbXBzKSwgYW5kIGEgbWlsbGlvbiBvZiB0aGVtIHN0aWxsIGZpdCB1bmRlciBpdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZXh0SW50ZXJtZWRpYXRlVmVyc2lvbih2ZXJzaW9uOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBzdGVwID0gTWF0aC5hYnModmVyc2lvbikgLyBJTlRFUk1FRElBVEVfVkVSU0lPTl9GUkFDVElPTjtcbiAgICBpZiAoIShzdGVwID4gMCkpIHtcbiAgICAgICAgc3RlcCA9IDEgLyBJTlRFUk1FRElBVEVfVkVSU0lPTl9GUkFDVElPTjtcbiAgICB9XG4gICAgcmV0dXJuIHZlcnNpb24gKyBzdGVwO1xufVxuXG5mdW5jdGlvbiBpc1NvdXJjZUNvbmZpZyhzb3VyY2U6IFJlbW90ZUNvbmZpZ0Jhc2UpOiBzb3VyY2UgaXMgU291cmNlQ29uZmlnIHtcbiAgICByZXR1cm4gdHlwZW9mIHNvdXJjZSAhPT0gXCJzdHJpbmdcIjtcbn1cblxuZnVuY3Rpb24gY2xvbmVTb3VyY2Uoc291cmNlOiBSZW1vdGVDb25maWdCYXNlKTogUmVtb3RlQ29uZmlnQmFzZSB7XG4gICAgaWYgKCFpc1NvdXJjZUNvbmZpZyhzb3VyY2UpKSByZXR1cm4gc291cmNlO1xuICAgIHJldHVybiB7IC4uLnNvdXJjZSwgdmFsaWRXaW5kb3c6IFtzb3VyY2UudmFsaWRXaW5kb3dbMF0sIHNvdXJjZS52YWxpZFdpbmRvd1sxXV0gfTtcbn1cblxuZnVuY3Rpb24gam9pbktleShzb3VyY2U6IFNvdXJjZUNvbmZpZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHsgLi4uc291cmNlLCB2YWxpZFdpbmRvdzogdW5kZWZpbmVkIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW50ZXJtZWRpYXRlU291cmNlcyhjb25maWc6IFJlbW90ZUNvbmZpZyk6IFNvdXJjZUNvbmZpZ1tdIHtcbiAgICByZXR1cm4gY29uZmlnLnNvdXJjZXMuZmlsdGVyKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC5pbnRlcm1lZGlhdGUpIGFzIFNvdXJjZUNvbmZpZ1tdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzSW50ZXJtZWRpYXRlU291cmNlcyhjb25maWc6IFJlbW90ZUNvbmZpZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb25maWcuc291cmNlcy5zb21lKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC5pbnRlcm1lZGlhdGUpO1xufVxuXG4vKiogUmVtb3ZlcyBldmVyeSBpbnRlcm1lZGlhdGUgZW50cnkgYW5kIHJlam9pbnMgdGhlIHdpbmRvd3MgaXQgc3BsaXQsIGdpdmluZyBiYWNrIHRoZSB1bmRlcmx5aW5nIGNvbmZpZ3VyYXRpb24uIFR3byBjb25maWdzIHRoYXQgcmVzb2x2ZSBlcXVhbCBkaWZmZXIgb25seSBieSBpbnRlcm1lZGlhdGVzLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogUmVtb3RlQ29uZmlnIHtcbiAgICBpZiAoIWhhc0ludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKSkgcmV0dXJuIGNvbmZpZztcbiAgICBsZXQgcmVtb3ZlZCA9IGdldEludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKTtcbiAgICBsZXQgc291cmNlcyA9IGNvbmZpZy5zb3VyY2VzLmZpbHRlcih4ID0+ICFpc1NvdXJjZUNvbmZpZyh4KSB8fCAheC5pbnRlcm1lZGlhdGUpLm1hcChjbG9uZVNvdXJjZSk7XG4gICAgZm9yIChsZXQgZ2FwIG9mIHJlbW92ZWQpIHtcbiAgICAgICAgbGV0IFtnYXBTdGFydCwgZ2FwRW5kXSA9IGdhcC52YWxpZFdpbmRvdztcbiAgICAgICAgbGV0IGJlZm9yZSA9IHNvdXJjZXMuZmluZCh4ID0+IGlzU291cmNlQ29uZmlnKHgpICYmIHgudmFsaWRXaW5kb3dbMV0gPT09IGdhcFN0YXJ0KSBhcyBTb3VyY2VDb25maWcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGxldCBhZnRlciA9IHNvdXJjZXMuZmluZCh4ID0+IGlzU291cmNlQ29uZmlnKHgpICYmIHgudmFsaWRXaW5kb3dbMF0gPT09IGdhcEVuZCkgYXMgU291cmNlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAgICAgICBpZiAoYmVmb3JlICYmIGFmdGVyICYmIGpvaW5LZXkoYmVmb3JlKSA9PT0gam9pbktleShhZnRlcikpIHtcbiAgICAgICAgICAgIGJlZm9yZS52YWxpZFdpbmRvdyA9IFtiZWZvcmUudmFsaWRXaW5kb3dbMF0sIGFmdGVyLnZhbGlkV2luZG93WzFdXTtcbiAgICAgICAgICAgIHNvdXJjZXMuc3BsaWNlKHNvdXJjZXMuaW5kZXhPZihhZnRlciksIDEpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGJlZm9yZSkge1xuICAgICAgICAgICAgYmVmb3JlLnZhbGlkV2luZG93ID0gW2JlZm9yZS52YWxpZFdpbmRvd1swXSwgZ2FwRW5kXTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZnRlcikge1xuICAgICAgICAgICAgYWZ0ZXIudmFsaWRXaW5kb3cgPSBbZ2FwU3RhcnQsIGFmdGVyLnZhbGlkV2luZG93WzFdXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyB2ZXJzaW9uOiBjb25maWcudmVyc2lvbiwgc291cmNlcyB9O1xufVxuXG4vKiogU3BsaXRzIGV2ZXJ5IHNvdXJjZSBhdCBzcGxpdFVybCBjb3ZlcmluZyBbc3RhcnQsIGVuZCkgc28gdGhhdCBtaWRkbGUgd2luZG93IHBvaW50cyBhdCBpbnRlcm1lZGlhdGVVcmwgaW5zdGVhZCwgZmxhZ2dlZCBhcyBpbnRlcm1lZGlhdGUuIElkZW1wb3RlbnQ6IGEgY29uZmlnIHRoYXQgYWxyZWFkeSBjb250YWlucyB0aGUgZXhhY3QgaW50ZXJtZWRpYXRlIGNvbWVzIGJhY2sgdW5jaGFuZ2VkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEludGVybWVkaWF0ZVNvdXJjZShjb25maWc6IFJlbW90ZUNvbmZpZywgaW5qZWN0OiB7IHNwbGl0VXJsOiBzdHJpbmc7IGludGVybWVkaWF0ZVVybDogc3RyaW5nOyBzdGFydDogbnVtYmVyOyBlbmQ6IG51bWJlciB9KTogUmVtb3RlQ29uZmlnIHtcbiAgICBsZXQgeyBzcGxpdFVybCwgaW50ZXJtZWRpYXRlVXJsLCBzdGFydCwgZW5kIH0gPSBpbmplY3Q7XG4gICAgaWYgKHN0YXJ0ID49IGVuZCkgcmV0dXJuIGNvbmZpZztcbiAgICBpZiAoY29uZmlnLnNvdXJjZXMuc29tZSh4ID0+IGlzU291cmNlQ29uZmlnKHgpICYmIHguaW50ZXJtZWRpYXRlICYmIHgudXJsID09PSBpbnRlcm1lZGlhdGVVcmwgJiYgeC52YWxpZFdpbmRvd1swXSA9PT0gc3RhcnQgJiYgeC52YWxpZFdpbmRvd1sxXSA9PT0gZW5kKSkge1xuICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgIH1cbiAgICBsZXQgc291cmNlczogUmVtb3RlQ29uZmlnQmFzZVtdID0gW107XG4gICAgZm9yIChsZXQgc291cmNlIG9mIGNvbmZpZy5zb3VyY2VzKSB7XG4gICAgICAgIGlmICghaXNTb3VyY2VDb25maWcoc291cmNlKSB8fCBzb3VyY2UudXJsICE9PSBzcGxpdFVybCB8fCBzb3VyY2UuaW50ZXJtZWRpYXRlKSB7XG4gICAgICAgICAgICBzb3VyY2VzLnB1c2goY2xvbmVTb3VyY2Uoc291cmNlKSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgW3dpbmRvd1N0YXJ0LCB3aW5kb3dFbmRdID0gc291cmNlLnZhbGlkV2luZG93O1xuICAgICAgICBpZiAod2luZG93RW5kIDw9IHN0YXJ0IHx8IHdpbmRvd1N0YXJ0ID49IGVuZCkge1xuICAgICAgICAgICAgc291cmNlcy5wdXNoKGNsb25lU291cmNlKHNvdXJjZSkpO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1pZGRsZVN0YXJ0ID0gTWF0aC5tYXgod2luZG93U3RhcnQsIHN0YXJ0KTtcbiAgICAgICAgbGV0IG1pZGRsZUVuZCA9IE1hdGgubWluKHdpbmRvd0VuZCwgZW5kKTtcbiAgICAgICAgaWYgKG1pZGRsZVN0YXJ0ID4gd2luZG93U3RhcnQpIHtcbiAgICAgICAgICAgIHNvdXJjZXMucHVzaCh7IC4uLnNvdXJjZSwgdmFsaWRXaW5kb3c6IFt3aW5kb3dTdGFydCwgbWlkZGxlU3RhcnRdIH0pO1xuICAgICAgICB9XG4gICAgICAgIHNvdXJjZXMucHVzaCh7IC4uLnNvdXJjZSwgdXJsOiBpbnRlcm1lZGlhdGVVcmwsIHZhbGlkV2luZG93OiBbbWlkZGxlU3RhcnQsIG1pZGRsZUVuZF0sIGludGVybWVkaWF0ZTogdHJ1ZSB9KTtcbiAgICAgICAgaWYgKHdpbmRvd0VuZCA+IG1pZGRsZUVuZCkge1xuICAgICAgICAgICAgc291cmNlcy5wdXNoKHsgLi4uc291cmNlLCB2YWxpZFdpbmRvdzogW21pZGRsZUVuZCwgd2luZG93RW5kXSB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyB2ZXJzaW9uOiBjb25maWcudmVyc2lvbiwgc291cmNlcyB9O1xufVxuXG4vKiogSW50ZXJtZWRpYXRlcyB3aG9zZSB3aW5kb3cgZW5kZWQgbW9yZSB0aGFuIElOVEVSTUVESUFURV9FWFBJUkVfR1JBQ0UgYWdvIGFyZSByZW1vdmVkLCBhbmQgdGhlIHdpbmRvd3MgdGhleSBzcGxpdCBhcmUgcmVqb2luZWQuICovXG5leHBvcnQgZnVuY3Rpb24gZXhwaXJlSW50ZXJtZWRpYXRlU291cmNlcyhjb25maWc6IFJlbW90ZUNvbmZpZywgbm93OiBudW1iZXIpOiBSZW1vdGVDb25maWcge1xuICAgIGxldCBleHBpcmVkID0gZ2V0SW50ZXJtZWRpYXRlU291cmNlcyhjb25maWcpLmZpbHRlcih4ID0+IHgudmFsaWRXaW5kb3dbMV0gKyBJTlRFUk1FRElBVEVfRVhQSVJFX0dSQUNFIDwgbm93KTtcbiAgICBpZiAoIWV4cGlyZWQubGVuZ3RoKSByZXR1cm4gY29uZmlnO1xuICAgIGxldCBrZXB0SW50ZXJtZWRpYXRlcyA9IGdldEludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKS5maWx0ZXIoeCA9PiAhZXhwaXJlZC5pbmNsdWRlcyh4KSk7XG4gICAgbGV0IHJlc29sdmVkID0gcmVzb2x2ZUludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKTtcbiAgICBsZXQgcmVzdWx0ID0gcmVzb2x2ZWQ7XG4gICAgZm9yIChsZXQga2VlcCBvZiBrZXB0SW50ZXJtZWRpYXRlcykge1xuICAgICAgICByZXN1bHQgPSBpbmplY3RJbnRlcm1lZGlhdGVTb3VyY2UocmVzdWx0LCB7XG4gICAgICAgICAgICBzcGxpdFVybDogZmluZFNwbGl0VXJsKGNvbmZpZywga2VlcCkgfHwga2VlcC51cmwsXG4gICAgICAgICAgICBpbnRlcm1lZGlhdGVVcmw6IGtlZXAudXJsLFxuICAgICAgICAgICAgc3RhcnQ6IGtlZXAudmFsaWRXaW5kb3dbMF0sXG4gICAgICAgICAgICBlbmQ6IGtlZXAudmFsaWRXaW5kb3dbMV0sXG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKiogVGhlIHVybCBvZiB0aGUgZW50cnkgYW4gaW50ZXJtZWRpYXRlIHdhcyBzcGxpdCBvdXQgb2YgLSB0aGUgbmVpZ2hib3VyIGl0IHRvdWNoZXMuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFNwbGl0VXJsKGNvbmZpZzogUmVtb3RlQ29uZmlnLCBpbnRlcm1lZGlhdGU6IFNvdXJjZUNvbmZpZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IFtzdGFydCwgZW5kXSA9IGludGVybWVkaWF0ZS52YWxpZFdpbmRvdztcbiAgICBsZXQgbmVpZ2hib3VyID0gY29uZmlnLnNvdXJjZXMuZmluZCh4ID0+IGlzU291cmNlQ29uZmlnKHgpICYmICF4LmludGVybWVkaWF0ZSAmJiAoeC52YWxpZFdpbmRvd1sxXSA9PT0gc3RhcnQgfHwgeC52YWxpZFdpbmRvd1swXSA9PT0gZW5kKSkgYXMgU291cmNlQ29uZmlnIHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiBuZWlnaGJvdXI/LnVybDtcbn1cbiJdfQ==
119
- /* _JS_SOURCE_HASH = "ed7d8abcf8bf9ca87288acd3c442c4eb2cd58f7906a67655b769d039680f3ceb"; */
113
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJtZWRpYXRlU291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVybWVkaWF0ZVNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRWEsUUFBQSx5QkFBeUIsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQztBQUN4RCxNQUFNLDZCQUE2QixHQUFHLE9BQVMsQ0FBQztBQUVoRCwyUkFBMlI7QUFDM1IsU0FBZ0IsdUJBQXVCLENBQUMsT0FBZTtJQUNuRCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLDZCQUE2QixDQUFDO0lBQzdELElBQUksQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2QsSUFBSSxHQUFHLENBQUMsR0FBRyw2QkFBNkIsQ0FBQztJQUM3QyxDQUFDO0lBQ0QsT0FBTyxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBQzFCLENBQUM7QUFORCwwREFNQztBQUVELFNBQVMsY0FBYyxDQUFDLE1BQXdCO0lBQzVDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxNQUF3QjtJQUN6QyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBQzNDLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBQ3RGLENBQUM7QUFFRCxTQUFTLE9BQU8sQ0FBQyxNQUFvQjtJQUNqQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLE1BQU0sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUNqRSxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENB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QztJQUN0QixLQUFLLElBQUksSUFBSSxJQUFJLGlCQUFpQixFQUFFLENBQUM7UUFDakMsTUFBTSxHQUFHLHdCQUF3QixDQUFDLE1BQU0sRUFBRTtZQUN0Qyw0SEFBNEg7WUFDNUgsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLEdBQUc7WUFDdkMsZUFBZSxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ3pCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMxQixHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDM0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUM7QUFoQkQsOERBZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVtb3RlQ29uZmlnLCBSZW1vdGVDb25maWdCYXNlLCBTb3VyY2VDb25maWcgfSBmcm9tIFwiLi4vSUFyY2hpdmVzXCI7XG5cbmV4cG9ydCBjb25zdCBJTlRFUk1FRElBVEVfRVhQSVJFX0dSQUNFID0gMTUgKiA2MCAqIDEwMDA7XG5jb25zdCBJTlRFUk1FRElBVEVfVkVSU0lPTl9GUkFDVElPTiA9IDFfMDAwXzAwMDtcblxuLyoqIEFkZGluZyBvciByZW1vdmluZyBpbnRlcm1lZGlhdGVzIGlzIGEgcmVhbCBjb25maWcgdXBkYXRlLCBzbyBpdCB0YWtlcyBhIHJlYWwgdmVyc2lvbiBpbmNyZW1lbnQgLSBidXQgYSBwcm9wb3J0aW9uYWwgb25lLCBzbyBpdCBzdGF5cyBmYXIgYmVsb3cgd2hhdGV2ZXIgdGhlIGF1dGhvcidzIG5leHQgdmVyc2lvbiB3b3VsZCBiZSAod2hldGhlciB0aGV5IGNvdW50IDEsIDIsIDMgb3IgdXNlIHRpbWVzdGFtcHMpLCBhbmQgYSBtaWxsaW9uIG9mIHRoZW0gc3RpbGwgZml0IHVuZGVyIGl0LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5leHRJbnRlcm1lZGlhdGVWZXJzaW9uKHZlcnNpb246IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IHN0ZXAgPSBNYXRoLmFicyh2ZXJzaW9uKSAvIElOVEVSTUVESUFURV9WRVJTSU9OX0ZSQUNUSU9OO1xuICAgIGlmICghKHN0ZXAgPiAwKSkge1xuICAgICAgICBzdGVwID0gMSAvIElOVEVSTUVESUFURV9WRVJTSU9OX0ZSQUNUSU9OO1xuICAgIH1cbiAgICByZXR1cm4gdmVyc2lvbiArIHN0ZXA7XG59XG5cbmZ1bmN0aW9uIGlzU291cmNlQ29uZmlnKHNvdXJjZTogUmVtb3RlQ29uZmlnQmFzZSk6IHNvdXJjZSBpcyBTb3VyY2VDb25maWcge1xuICAgIHJldHVybiB0eXBlb2Ygc291cmNlICE9PSBcInN0cmluZ1wiO1xufVxuXG5mdW5jdGlvbiBjbG9uZVNvdXJjZShzb3VyY2U6IFJlbW90ZUNvbmZpZ0Jhc2UpOiBSZW1vdGVDb25maWdCYXNlIHtcbiAgICBpZiAoIWlzU291cmNlQ29uZmlnKHNvdXJjZSkpIHJldHVybiBzb3VyY2U7XG4gICAgcmV0dXJuIHsgLi4uc291cmNlLCB2YWxpZFdpbmRvdzogW3NvdXJjZS52YWxpZFdpbmRvd1swXSwgc291cmNlLnZhbGlkV2luZG93WzFdXSB9O1xufVxuXG5mdW5jdGlvbiBqb2luS2V5KHNvdXJjZTogU291cmNlQ29uZmlnKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeyAuLi5zb3VyY2UsIHZhbGlkV2luZG93OiB1bmRlZmluZWQgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogU291cmNlQ29uZmlnW10ge1xuICAgIHJldHVybiBjb25maWcuc291cmNlcy5maWx0ZXIoeCA9PiBpc1NvdXJjZUNvbmZpZyh4KSAmJiB4LmludGVybWVkaWF0ZSkgYXMgU291cmNlQ29uZmlnW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZzogUmVtb3RlQ29uZmlnKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbmZpZy5zb3VyY2VzLnNvbWUoeCA9PiBpc1NvdXJjZUNvbmZpZyh4KSAmJiB4LmludGVybWVkaWF0ZSk7XG59XG5cbi8qKiBSZW1vdmVzIGV2ZXJ5IGludGVybWVkaWF0ZSBlbnRyeSBhbmQgcmVqb2lucyB0aGUgd2luZG93cyBpdCBzcGxpdCwgZ2l2aW5nIGJhY2sgdGhlIHVuZGVybHlpbmcgY29uZmlndXJhdGlvbi4gVHdvIGNvbmZpZ3MgdGhhdCByZXNvbHZlIGVxdWFsIGRpZmZlciBvbmx5IGJ5IGludGVybWVkaWF0ZXMuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnOiBSZW1vdGVDb25maWcpOiBSZW1vdGVDb25maWcge1xuICAgIGlmICghaGFzSW50ZXJtZWRpYXRlU291cmNlcyhjb25maWcpKSByZXR1cm4gY29uZmlnO1xuICAgIGxldCByZW1vdmVkID0gZ2V0SW50ZXJtZWRpYXRlU291cmNlcyhjb25maWcpO1xuICAgIGxldCBzb3VyY2VzID0gY29uZmlnLnNvdXJjZXMuZmlsdGVyKHggPT4gIWlzU291cmNlQ29uZmlnKHgpIHx8ICF4LmludGVybWVkaWF0ZSkubWFwKGNsb25lU291cmNlKTtcbiAgICBmb3IgKGxldCBnYXAgb2YgcmVtb3ZlZCkge1xuICAgICAgICBsZXQgW2dhcFN0YXJ0LCBnYXBFbmRdID0gZ2FwLnZhbGlkV2luZG93O1xuICAgICAgICBsZXQgYmVmb3JlID0gc291cmNlcy5maW5kKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC52YWxpZFdpbmRvd1sxXSA9PT0gZ2FwU3RhcnQpIGFzIFNvdXJjZUNvbmZpZyB8IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IGFmdGVyID0gc291cmNlcy5maW5kKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC52YWxpZFdpbmRvd1swXSA9PT0gZ2FwRW5kKSBhcyBTb3VyY2VDb25maWcgfCB1bmRlZmluZWQ7XG4gICAgICAgIGlmIChiZWZvcmUgJiYgYWZ0ZXIgJiYgam9pbktleShiZWZvcmUpID09PSBqb2luS2V5KGFmdGVyKSkge1xuICAgICAgICAgICAgYmVmb3JlLnZhbGlkV2luZG93ID0gW2JlZm9yZS52YWxpZFdpbmRvd1swXSwgYWZ0ZXIudmFsaWRXaW5kb3dbMV1dO1xuICAgICAgICAgICAgc291cmNlcy5zcGxpY2Uoc291cmNlcy5pbmRleE9mKGFmdGVyKSwgMSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYmVmb3JlKSB7XG4gICAgICAgICAgICBiZWZvcmUudmFsaWRXaW5kb3cgPSBbYmVmb3JlLnZhbGlkV2luZG93WzBdLCBnYXBFbmRdO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFmdGVyKSB7XG4gICAgICAgICAgICBhZnRlci52YWxpZFdpbmRvdyA9IFtnYXBTdGFydCwgYWZ0ZXIudmFsaWRXaW5kb3dbMV1dO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHZlcnNpb246IGNvbmZpZy52ZXJzaW9uLCBzb3VyY2VzIH07XG59XG5cbi8qKiBTcGxpdHMgZXZlcnkgc291cmNlIGF0IHNwbGl0VXJsIGNvdmVyaW5nIFtzdGFydCwgZW5kKSBzbyB0aGF0IG1pZGRsZSB3aW5kb3cgcG9pbnRzIGF0IGludGVybWVkaWF0ZVVybCBpbnN0ZWFkLCBmbGFnZ2VkIGFzIGludGVybWVkaWF0ZS4gSWRlbXBvdGVudDogYSBjb25maWcgdGhhdCBhbHJlYWR5IGNvbnRhaW5zIHRoZSBleGFjdCBpbnRlcm1lZGlhdGUgY29tZXMgYmFjayB1bmNoYW5nZWQuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0SW50ZXJtZWRpYXRlU291cmNlKGNvbmZpZzogUmVtb3RlQ29uZmlnLCBpbmplY3Q6IHsgc3BsaXRVcmw6IHN0cmluZzsgaW50ZXJtZWRpYXRlVXJsOiBzdHJpbmc7IHN0YXJ0OiBudW1iZXI7IGVuZDogbnVtYmVyIH0pOiBSZW1vdGVDb25maWcge1xuICAgIGxldCB7IHNwbGl0VXJsLCBpbnRlcm1lZGlhdGVVcmwsIHN0YXJ0LCBlbmQgfSA9IGluamVjdDtcbiAgICBpZiAoc3RhcnQgPj0gZW5kKSByZXR1cm4gY29uZmlnO1xuICAgIGlmIChjb25maWcuc291cmNlcy5zb21lKHggPT4gaXNTb3VyY2VDb25maWcoeCkgJiYgeC5pbnRlcm1lZGlhdGUgJiYgeC51cmwgPT09IGludGVybWVkaWF0ZVVybCAmJiB4LnZhbGlkV2luZG93WzBdID09PSBzdGFydCAmJiB4LnZhbGlkV2luZG93WzFdID09PSBlbmQpKSB7XG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuICAgIGxldCBzb3VyY2VzOiBSZW1vdGVDb25maWdCYXNlW10gPSBbXTtcbiAgICBmb3IgKGxldCBzb3VyY2Ugb2YgY29uZmlnLnNvdXJjZXMpIHtcbiAgICAgICAgaWYgKCFpc1NvdXJjZUNvbmZpZyhzb3VyY2UpIHx8IHNvdXJjZS51cmwgIT09IHNwbGl0VXJsIHx8IHNvdXJjZS5pbnRlcm1lZGlhdGUpIHtcbiAgICAgICAgICAgIHNvdXJjZXMucHVzaChjbG9uZVNvdXJjZShzb3VyY2UpKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGxldCBbd2luZG93U3RhcnQsIHdpbmRvd0VuZF0gPSBzb3VyY2UudmFsaWRXaW5kb3c7XG4gICAgICAgIGlmICh3aW5kb3dFbmQgPD0gc3RhcnQgfHwgd2luZG93U3RhcnQgPj0gZW5kKSB7XG4gICAgICAgICAgICBzb3VyY2VzLnB1c2goY2xvbmVTb3VyY2Uoc291cmNlKSk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbWlkZGxlU3RhcnQgPSBNYXRoLm1heCh3aW5kb3dTdGFydCwgc3RhcnQpO1xuICAgICAgICBsZXQgbWlkZGxlRW5kID0gTWF0aC5taW4od2luZG93RW5kLCBlbmQpO1xuICAgICAgICBpZiAobWlkZGxlU3RhcnQgPiB3aW5kb3dTdGFydCkge1xuICAgICAgICAgICAgc291cmNlcy5wdXNoKHsgLi4uc291cmNlLCB2YWxpZFdpbmRvdzogW3dpbmRvd1N0YXJ0LCBtaWRkbGVTdGFydF0gfSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaW50ZXJtZWRpYXRlID0gdGhlIHVybCB0aGlzIGVudHJ5IHdhcyBzcGxpdCBvdXQgb2YsIHNvIGEgcmVxdWVzdCBuYW1pbmcgdGhlIGludGVybWVkaWF0ZSBzdGlsbCByZXNvbHZlcyB0byB0aGUgb3JpZ2luYWwgc291cmNlXG4gICAgICAgIHNvdXJjZXMucHVzaCh7IC4uLnNvdXJjZSwgdXJsOiBpbnRlcm1lZGlhdGVVcmwsIHZhbGlkV2luZG93OiBbbWlkZGxlU3RhcnQsIG1pZGRsZUVuZF0sIGludGVybWVkaWF0ZTogc3BsaXRVcmwgfSk7XG4gICAgICAgIGlmICh3aW5kb3dFbmQgPiBtaWRkbGVFbmQpIHtcbiAgICAgICAgICAgIHNvdXJjZXMucHVzaCh7IC4uLnNvdXJjZSwgdmFsaWRXaW5kb3c6IFttaWRkbGVFbmQsIHdpbmRvd0VuZF0gfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgdmVyc2lvbjogY29uZmlnLnZlcnNpb24sIHNvdXJjZXMgfTtcbn1cblxuLyoqIEludGVybWVkaWF0ZXMgd2hvc2Ugd2luZG93IGVuZGVkIG1vcmUgdGhhbiBJTlRFUk1FRElBVEVfRVhQSVJFX0dSQUNFIGFnbyBhcmUgcmVtb3ZlZCwgYW5kIHRoZSB3aW5kb3dzIHRoZXkgc3BsaXQgYXJlIHJlam9pbmVkLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGlyZUludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnOiBSZW1vdGVDb25maWcsIG5vdzogbnVtYmVyKTogUmVtb3RlQ29uZmlnIHtcbiAgICBsZXQgZXhwaXJlZCA9IGdldEludGVybWVkaWF0ZVNvdXJjZXMoY29uZmlnKS5maWx0ZXIoeCA9PiB4LnZhbGlkV2luZG93WzFdICsgSU5URVJNRURJQVRFX0VYUElSRV9HUkFDRSA8IG5vdyk7XG4gICAgaWYgKCFleHBpcmVkLmxlbmd0aCkgcmV0dXJuIGNvbmZpZztcbiAgICBsZXQga2VwdEludGVybWVkaWF0ZXMgPSBnZXRJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZykuZmlsdGVyKHggPT4gIWV4cGlyZWQuaW5jbHVkZXMoeCkpO1xuICAgIGxldCByZXNvbHZlZCA9IHJlc29sdmVJbnRlcm1lZGlhdGVTb3VyY2VzKGNvbmZpZyk7XG4gICAgbGV0IHJlc3VsdCA9IHJlc29sdmVkO1xuICAgIGZvciAobGV0IGtlZXAgb2Yga2VwdEludGVybWVkaWF0ZXMpIHtcbiAgICAgICAgcmVzdWx0ID0gaW5qZWN0SW50ZXJtZWRpYXRlU291cmNlKHJlc3VsdCwge1xuICAgICAgICAgICAgLy8gVGhlIGludGVybWVkaWF0ZSBjYXJyaWVzIHRoZSB1cmwgaXQgd2FzIHNwbGl0IG91dCBvZjsgZmFsbCBiYWNrIHRvIGl0cyBvd24gdXJsIG9ubHkgZm9yIGEgbGVnYWN5IGVudHJ5IHRoYXQgcHJlZGF0ZXMgdGhhdFxuICAgICAgICAgICAgc3BsaXRVcmw6IGtlZXAuaW50ZXJtZWRpYXRlIHx8IGtlZXAudXJsLFxuICAgICAgICAgICAgaW50ZXJtZWRpYXRlVXJsOiBrZWVwLnVybCxcbiAgICAgICAgICAgIHN0YXJ0OiBrZWVwLnZhbGlkV2luZG93WzBdLFxuICAgICAgICAgICAgZW5kOiBrZWVwLnZhbGlkV2luZG93WzFdLFxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==
114
+ /* _JS_SOURCE_HASH = "1db9e76c42f6bf2b1ce3613626d8046635b0a8a88b5abfa1ae1ea2a0410433c4"; */