@o3r/rules-engine 12.0.0-next.4 → 12.0.0-next.5

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.
@@ -217,7 +217,7 @@ export class RulesetExecutor {
217
217
  output.error = error;
218
218
  }
219
219
  if (this.rulesEngine.debugMode) {
220
- output.evaluation = handleRuleEvaluationDebug({ ...rule, inputFacts }, this.ruleset.name, output.actions, output.error, runtimeFactValues, factValues, oldFactValues);
220
+ output.evaluation = handleRuleEvaluationDebug(rule, this.ruleset.name, output.actions, output.error, runtimeFactValues, factValues, oldFactValues, inputFacts);
221
221
  }
222
222
  else if (output.error) {
223
223
  this.rulesEngine.logger?.error(output.error);
@@ -247,10 +247,9 @@ export class RulesetExecutor {
247
247
  return {
248
248
  id: this.ruleset.id,
249
249
  validityRange: this.ruleset.validityRange,
250
- linkedComponent: this.ruleset.linkedComponent,
251
250
  linkedComponents: this.ruleset.linkedComponents,
252
251
  rulesResultsSubject$: result$
253
252
  };
254
253
  }
255
254
  }
256
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmdpbmUvcnVsZXNldC1leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7QUFDdkIsT0FBTyxFQUNMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsYUFBYSxFQUViLEVBQUUsR0FDSCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wseUJBQXlCLEdBQzFCLE1BQU0saUJBQWlCLENBQUM7QUFhekIsT0FBTyxFQUNMLGVBQWUsR0FDaEIsTUFBTSw2QkFBNkIsQ0FBQztBQUlyQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixvQkFBb0IsR0FDckIsTUFBTSxxQkFBcUIsQ0FBQztBQWU3QixNQUFNLE9BQU8sZUFBZTtJQWtCMUI7Ozs7T0FJRztJQUNILFlBQVksT0FBZ0IsRUFBRSxXQUF3QjtRQVA5QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFxSzdCOzs7V0FHRztRQUNnQix1QkFBa0IsR0FBRyxDQUFDLEdBQWEsRUFBWSxFQUFFO1lBQ2xFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7WUFDekMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBcktBLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FB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Qyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBaUIsRUFDMUYsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxlQUFnQixFQUM1RSxNQUFNLENBQUMsc0JBQXVCLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztnQkFFRCxPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDLENBQUMsRUFDRixvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQzdFLENBQUM7UUFDSixDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFcEQsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUN6QyxlQUFlLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlO1lBQzdDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCO1lBQy9DLG9CQUFvQixFQUFFLE9BQU87U0FDYixDQUFDO0lBQ3JCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBSdWxlc2V0IGV4ZWN1dG9yICovXG5pbXBvcnQge1xuICBKU09OUGF0aCxcbn0gZnJvbSAnanNvbnBhdGgtcGx1cyc7XG5pbXBvcnQge1xuICBjb21iaW5lTGF0ZXN0LFxuICBPYnNlcnZhYmxlLFxuICBvZixcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgbWFwLFxuICBwYWlyd2lzZSxcbiAgc2hhcmVSZXBsYXksXG4gIHN0YXJ0V2l0aCxcbiAgc3dpdGNoTWFwLFxuICB0YXAsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gIGhhbmRsZVJ1bGVFdmFsdWF0aW9uRGVidWcsXG59IGZyb20gJy4vZGVidWcvaGVscGVycyc7XG5pbXBvcnQgdHlwZSB7XG4gIFJ1bGVzRW5naW5lLFxufSBmcm9tICcuL2VuZ2luZSc7XG5pbXBvcnQge1xuICBFbmdpbmVSdWxlc2V0LFxuICBFdmFsdWF0aW9uUmVhc29uLFxuICBSdWxlRXZhbHVhdGlvbixcbiAgUnVsZUV2YWx1YXRpb25PdXRwdXQsXG59IGZyb20gJy4vZW5naW5lLmludGVyZmFjZSc7XG5pbXBvcnQgdHlwZSB7XG4gIEZhY3RzLFxufSBmcm9tICcuL2ZhY3QnO1xuaW1wb3J0IHtcbiAgZXhlY3V0ZU9wZXJhdG9yLFxufSBmcm9tICcuL29wZXJhdG9yL29wZXJhdG9yLmhlbHBlcnMnO1xuaW1wb3J0IHtcbiAgT3BlcmF0b3IsXG59IGZyb20gJy4vb3BlcmF0b3Ivb3BlcmF0b3IuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIGlzQWxsQ29uZGl0aW9ucyxcbiAgaXNDb25kaXRpb25Qcm9wZXJ0aWVzLFxuICBpc05vdENvbmRpdGlvbixcbiAgaXNPcGVyYW5kRmFjdCxcbiAgaXNPcGVyYW5kTGl0ZXJhbCxcbiAgaXNPcGVyYW5kUnVudGltZUZhY3QsXG59IGZyb20gJy4vcnVsZS9ydWxlLmhlbHBlcnMnO1xuaW1wb3J0IHtcbiAgQWN0aW9uQmxvY2ssXG4gIEFjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayxcbiAgQWxsQmxvY2ssXG4gIEdlbmVyaWNPcGVyYW5kLFxuICBJZkVsc2VCbG9jayxcbiAgTmVzdGVkQ29uZGl0aW9uLFxuICBSdWxlLFxuICBSdWxlc2V0LFxufSBmcm9tICcuL3N0cnVjdHVyZSc7XG5cbi8qKiBUeXBlIG9mIHRoZSByZXRyaWV2ZSBmYWN0IGZ1bmN0aW9uICovXG5leHBvcnQgdHlwZSBSZXRyaWV2ZUZhY3RGdW5jVHlwZSA9IDxUID0gdW5rbm93bj4gKGlkOiBzdHJpbmcpID0+IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD47XG5cbmV4cG9ydCBjbGFzcyBSdWxlc2V0RXhlY3V0b3Ige1xuICAvKiogcmV0cmlldmVGYWN0RnVuYyAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcnVsZXNFbmdpbmU6IFJ1bGVzRW5naW5lO1xuXG4gIC8qKiBNYXAgb2YgYXZhaWxhYmxlIG9wZXJhdG9ycyAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgb3BlcmF0b3JzOiBSZWNvcmQ8c3RyaW5nLCBPcGVyYXRvcjx1bmtub3duLCB1bmtub3duPj47XG5cbiAgLyoqIERlbGF5IGJlZm9yZSBmYWN0IHN0cmVhbSBkZWZhdWx0aW5nIHZhbHVlICovXG4gIHB1YmxpYyByZWFkb25seSBmYWN0RGVmYXVsdERlbGF5PzogbnVtYmVyO1xuXG4gIC8qKiBSdWxlc2V0IGFzc29jaWF0ZWQgdG8gdGhlIGN1cnJlbnQgZXhlY3V0b3IqL1xuICBwdWJsaWMgcmVhZG9ubHkgcnVsZXNldDogUnVsZXNldDtcblxuICAvKiogUnVsZXNldCBwbHVnZ2VkIHRvIHRoZSBmYWN0IHN0cmVhbSwgdGhhdCBjb250YWlucyBhY3Rpb25zIHN0cmVhbSByZXN1bHQgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVuZ2luZVJ1bGVzZXQ6IEVuZ2luZVJ1bGVzZXQ7XG5cbiAgcHJpdmF0ZSBleGVjdXRpb25Db3VudGVyID0gMDtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IHJ1bGVzZXQgZXhlY3V0b3JcbiAgICogQHBhcmFtIHJ1bGVzZXQgUnVsZXNldCB0byBldmFsdWF0ZVxuICAgKiBAcGFyYW0gcnVsZXNFbmdpbmUgSW5zdGFuY2Ugb2YgdGhlIHJ1bGVzIGVuZ2luZVxuICAgKi9cbiAgY29uc3RydWN0b3IocnVsZXNldDogUnVsZXNldCwgcnVsZXNFbmdpbmU6IFJ1bGVzRW5naW5lKSB7XG4gICAgdGhpcy5ydWxlc2V0ID0gcnVsZXNldDtcbiAgICB0aGlzLnJ1bGVzRW5naW5lID0gcnVsZXNFbmdpbmU7XG4gICAgdGhpcy5vcGVyYXRvcnMgPSBydWxlc0VuZ2luZS5vcGVyYXRvcnM7XG4gICAgdGhpcy5lbmdpbmVSdWxlc2V0ID0gdGhpcy5wbHVnUnVsZXNldCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGV4cGxvcmVzIGEgcnVsZSB0byBpZGVudGlmeSBhbmQgY29sbGVjdCBpbnB1dCBmYWN0cy5cbiAgICogSW5wdXQgZmFjdHMgYXJlIGlkZW50aWZpZWQgYmFzZWQgb24gdGhlICdGQUNUJyB0eXBlIGFuZCBvcGVyYXRvci1zcGVjaWZpYyBpbXBsaWNpdCBkZXBlbmRlbmNpZXMuXG4gICAqIEBwYXJhbSBjdXJyZW50T2JqZWN0IFRoZSBjdXJyZW50IG9iamVjdCBiZWluZyBleHBsb3JlZC5cbiAgICogQHBhcmFtIHJ1bGVJbnB1dEZhY3RzIEEgc2V0IHRvIHN0b3JlIHRoZSBpZGVudGlmaWVkIGlucHV0IGZhY3RzIGZvciB0aGUgcnVsZS5cbiAgICovXG4gIHByaXZhdGUgY29sbGVjdFJ1bGVJbnB1dEZhY3RzKGN1cnJlbnRPYmplY3Q6IEFsbEJsb2NrIHwgTmVzdGVkQ29uZGl0aW9uIHwgTmVzdGVkQ29uZGl0aW9uW10sIHJ1bGVJbnB1dEZhY3RzOiBTZXQ8c3RyaW5nPikge1xuICAgIGlmIChjdXJyZW50T2JqZWN0ICYmIGlzT3BlcmFuZEZhY3QoY3VycmVudE9iamVjdCkpIHtcbiAgICAgIHJ1bGVJbnB1dEZhY3RzLmFkZChjdXJyZW50T2JqZWN0LnZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY3VycmVudE9iamVjdCkpIHtcbiAgICAgIGN1cnJlbnRPYmplY3QuZm9yRWFjaCgoZWxlbSkgPT4gdGhpcy5jb2xsZWN0UnVsZUlucHV0RmFjdHMoZWxlbSwgcnVsZUlucHV0RmFjdHMpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gY3VycmVudE9iamVjdCkge1xuICAgICAgICBpZiAoKGtleSA9PT0gJ29wZXJhdG9yJykgJiYgaXNDb25kaXRpb25Qcm9wZXJ0aWVzKGN1cnJlbnRPYmplY3QpKSB7XG4gICAgICAgICAgY29uc3Qgb3AgPSB0aGlzLm9wZXJhdG9yc1tjdXJyZW50T2JqZWN0W2tleV1dO1xuICAgICAgICAgIGlmIChvcCAmJiBvcC5mYWN0SW1wbGljaXREZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgICAgIG9wLmZhY3RJbXBsaWNpdERlcGVuZGVuY2llcy5mb3JFYWNoKChkZXApID0+IHJ1bGVJbnB1dEZhY3RzLmFkZChkZXApKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGN1cnJlbnRPYmplY3Rba2V5IGFzIGtleW9mIChBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbildID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHRoaXMuY29sbGVjdFJ1bGVJbnB1dEZhY3RzKGN1cnJlbnRPYmplY3Rba2V5IGFzIGtleW9mIChBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbildLCBydWxlSW5wdXRGYWN0cyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVwb3J0IHBlcmZvcm1hbmNlIG1hcmsgZm9yIGEgcnVsZSBydW5cbiAgICogQHBhcmFtIHJ1bGUgUnVsZSB0byBtZWFzdXJlXG4gICAqIEBwYXJhbSBzdGF0dXMgc3RhdHVzIG9mIHRoZSBydWxlIGV2YWx1YXRpb25cbiAgICovXG4gIHByb3RlY3RlZCBwZXJmb3JtYW5jZU1hcmsocnVsZTogUnVsZSwgc3RhdHVzOiAnc3RhcnQnIHwgJ2VuZCcpIHtcbiAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5wZXJmb3JtYW5jZSkge1xuICAgICAgY29uc3QgbWFya05hbWUgPSBgcnVsZXMtZW5naW5lOiR7dGhpcy5ydWxlc0VuZ2luZS5ydWxlc0VuZ2luZUluc3RhbmNlTmFtZX06JHt0aGlzLnJ1bGVzZXQubmFtZX06JHtydWxlLm5hbWV9YDtcbiAgICAgIHRoaXMucnVsZXNFbmdpbmUucGVyZm9ybWFuY2UubWFyayhgJHttYXJrTmFtZX06JHtzdGF0dXN9YCk7XG4gICAgICBpZiAoc3RhdHVzID09PSAnZW5kJykge1xuICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLnBlcmZvcm1hbmNlLm1lYXN1cmUobWFya05hbWUsIGAke21hcmtOYW1lfTpzdGFydGAsIGAke21hcmtOYW1lfTplbmRgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IG9wZXJhbmQgdmFsdWUgc3RyZWFtIGFjY29yZGluZyB0byBpdHMgdHlwZVxuICAgKiBAcGFyYW0gb3BlcmFuZCBvcGVyYW5kIG9mIHRoZSBjb25kaXRpb25cbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0T3BlcmFuZFZhbHVlKG9wZXJhbmQ6IEdlbmVyaWNPcGVyYW5kIHwgdW5kZWZpbmVkLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4pOiB1bmtub3duIHtcbiAgICBpZiAodHlwZW9mIG9wZXJhbmQgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kRmFjdChvcGVyYW5kKSkge1xuICAgICAgY29uc3QgZmFjdFZhbHVlID0gZmFjdHNWYWx1ZVtvcGVyYW5kLnZhbHVlXTtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuZXctY2FwIC0tIGNvbnZlbnRpb24gZm9yIEpTT05QYXRoXG4gICAgICByZXR1cm4gb3BlcmFuZC5wYXRoID8gZmFjdFZhbHVlICYmIEpTT05QYXRoKHsgd3JhcDogZmFsc2UsIGpzb246IGZhY3RWYWx1ZSwgcGF0aDogb3BlcmFuZC5wYXRoIH0pIDogZmFjdFZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kTGl0ZXJhbChvcGVyYW5kKSkge1xuICAgICAgcmV0dXJuIG9wZXJhbmQudmFsdWU7XG4gICAgfSBlbHNlIGlmIChpc09wZXJhbmRSdW50aW1lRmFjdChvcGVyYW5kKSkge1xuICAgICAgcmV0dXJuIHJ1bnRpbWVGYWN0VmFsdWVzW29wZXJhbmQudmFsdWVdO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb2Nlc3MgYSByb290IHJ1bGUgZnJvbSBhIHJ1bGVzZXQsIGFuZCByZXR1cm4gdGhlIGFzc29jaWF0ZWQgYWN0aW9ucyB0byBiZSBwcm9jZXNzZWRcbiAgICogV2lsbCBhbHNvIHVwZGF0ZSB0aGUgcnVudGltZUZhY3RWYWx1ZXMgbWFwIHRoYXQgaXMgcnVsZXNldCB3aXNlXG4gICAqIE5vdGUgdGhhdCBydW50aW1lRmFjdFZhbHVlcyB3aWxsIGJlIG11dGF0ZWQgYnkgYWxsIHRoZSBydW50aW1lIGZhY3RzIGFjdGlvbnMgZXhlY3V0ZWRcbiAgICogQHBhcmFtIHJ1bGVcbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBldmFsdWF0ZVJ1bGUocnVsZTogUnVsZSwgZmFjdHNWYWx1ZTogUmVjb3JkPHN0cmluZywgRmFjdHMgfCB1bmRlZmluZWQ+LCBydW50aW1lRmFjdFZhbHVlczogUmVjb3JkPHN0cmluZywgRmFjdHM+KSB7XG4gICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVCbG9jayhydWxlLnJvb3RFbGVtZW50LCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcyk7XG4gIH1cblxuICAvKipcbiAgICogUmVjdXJzaXZlbHkgcHJvY2VzcyBhIGJsb2NrIHRvIGV4dHJhY3QgYWxsIHRoZSBhY3Rpb25zIGtlZXBpbmcgdGhlIG9yZGVyXG4gICAqIE5vdGUgdGhhdCBydW50aW1lRmFjdFZhbHVlcyB3aWxsIGJlIG11dGF0ZWQgYnkgYWxsIHRoZSBydW50aW1lIGZhY3RzIGFjdGlvbnMgZXhlY3V0ZWRcbiAgICogQHBhcmFtIGVsZW1lbnRcbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzIFRoaXMgcnVudGltZSBmYWN0IG1hcCB3aWxsIGJlIG11dGF0ZWQgYnkgYWxsIHRoZSBydW50aW1lIGZhY3RzIGFjdGlvbnMgZXhlY3V0ZWRcbiAgICogQHBhcmFtIGFjdGlvbnNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGV2YWx1YXRlQmxvY2soZWxlbWVudDogQWxsQmxvY2ssIGZhY3RzVmFsdWU6IFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPiwgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPiwgYWN0aW9uczogQWN0aW9uQmxvY2tbXSA9IFtdKSB7XG4gICAgaWYgKHRoaXMuaXNJZkVsc2VCbG9jayhlbGVtZW50KSkge1xuICAgICAgKCFlbGVtZW50LmNvbmRpdGlvbiB8fCB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKGVsZW1lbnQuY29uZGl0aW9uLCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcykgPyBlbGVtZW50LnN1Y2Nlc3NFbGVtZW50cyA6IGVsZW1lbnQuZmFpbHVyZUVsZW1lbnRzKVxuICAgICAgICAuZm9yRWFjaCgoZWxlbWVudFJlc3VsdCkgPT4gdGhpcy5ldmFsdWF0ZUJsb2NrKGVsZW1lbnRSZXN1bHQsIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzLCBhY3Rpb25zKSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmlzQWN0aW9uQmxvY2soZWxlbWVudCkpIHtcbiAgICAgIGlmICh0aGlzLmlzQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrKGVsZW1lbnQpKSB7XG4gICAgICAgIHJ1bnRpbWVGYWN0VmFsdWVzW2VsZW1lbnQuZmFjdF0gPSBlbGVtZW50LnZhbHVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYWN0aW9ucy5wdXNoKGVsZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWN0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgYSBJZkVsc2UgYmxvY2tcbiAgICogQHBhcmFtIGVsZW1lbnRcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGlzSWZFbHNlQmxvY2soZWxlbWVudDogQWxsQmxvY2spOiBlbGVtZW50IGlzIElmRWxzZUJsb2NrIHtcbiAgICByZXR1cm4gZWxlbWVudC5ibG9ja1R5cGUgPT09ICdJRl9FTFNFJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgYW4gYWN0aW9uIGJsb2NrXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0FjdGlvbkJsb2NrKGVsZW1lbnQ6IEFsbEJsb2NrKTogZWxlbWVudCBpcyBBY3Rpb25CbG9jayB7XG4gICAgcmV0dXJuICdlbGVtZW50VHlwZScgaW4gZWxlbWVudCAmJiBlbGVtZW50LmVsZW1lbnRUeXBlID09PSAnQUNUSU9OJztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGFjdGlvbiBzZXRzIGEgdGVtcG9yYXJ5IGZhY3RcbiAgICogQHBhcmFtIGVsZW1lbnRcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGlzQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrKGVsZW1lbnQ6IEFjdGlvbkJsb2NrKTogZWxlbWVudCBpcyBBY3Rpb25TZXRUZW1wb3JhcnlGYWN0QmxvY2sge1xuICAgIHJldHVybiAnYWN0aW9uVHlwZScgaW4gZWxlbWVudCAmJiBlbGVtZW50LmFjdGlvblR5cGUgPT09ICdTRVRfRkFDVCc7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgYSBjb25kaXRpb24gYmxvY2tcbiAgICogQHBhcmFtIG5lc3RlZENvbmRpdGlvblxuICAgKiBAcGFyYW0gZmFjdHNWYWx1ZVxuICAgKiBAcGFyYW0gcnVudGltZUZhY3RWYWx1ZXNcbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGV2YWx1YXRlQ29uZGl0aW9uKG5lc3RlZENvbmRpdGlvbjogTmVzdGVkQ29uZGl0aW9uLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4pOiBib29sZWFuIHtcbiAgICBpZiAoaXNDb25kaXRpb25Qcm9wZXJ0aWVzKG5lc3RlZENvbmRpdGlvbikpIHtcbiAgICAgIGNvbnN0IG9wZXJhdG9yID0gdGhpcy5vcGVyYXRvcnNbbmVzdGVkQ29uZGl0aW9uLm9wZXJhdG9yXTtcbiAgICAgIGlmIChvcGVyYXRvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBvcGVyYXRvciA6ICR7bmVzdGVkQ29uZGl0aW9uLm9wZXJhdG9yfSwgc2tpcHBpbmcgdGhlIHJ1bGUgZXhlY3V0aW9uLi4uYCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZXhlY3V0ZU9wZXJhdG9yKHRoaXMuZ2V0T3BlcmFuZFZhbHVlKG5lc3RlZENvbmRpdGlvbi5saHMsIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzKSxcbiAgICAgICAgdGhpcy5nZXRPcGVyYW5kVmFsdWUoJ3JocycgaW4gbmVzdGVkQ29uZGl0aW9uID8gbmVzdGVkQ29uZGl0aW9uLnJocyA6IHVuZGVmaW5lZCwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpLCBvcGVyYXRvciwgZmFjdHNWYWx1ZSk7XG4gICAgfVxuXG4gICAgaWYgKGlzTm90Q29uZGl0aW9uKG5lc3RlZENvbmRpdGlvbikpIHtcbiAgICAgIHJldHVybiAhdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihuZXN0ZWRDb25kaXRpb24ubm90LCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcyk7XG4gICAgfVxuICAgIGlmIChuZXN0ZWRDb25kaXRpb24uYWxsIHx8IG5lc3RlZENvbmRpdGlvbi5hbnkpIHtcbiAgICAgIGNvbnN0IGV2YWx1YXRlID0gKGNvbmRpdGlvbjogTmVzdGVkQ29uZGl0aW9uKSA9PiB0aGlzLmV2YWx1YXRlQ29uZGl0aW9uKGNvbmRpdGlvbiwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpO1xuICAgICAgcmV0dXJuIGlzQWxsQ29uZGl0aW9ucyhuZXN0ZWRDb25kaXRpb24pID8gbmVzdGVkQ29uZGl0aW9uLmFsbC5ldmVyeSgoZWxlbWVudCkgPT4gZXZhbHVhdGUoZWxlbWVudCkpIDogbmVzdGVkQ29uZGl0aW9uLmFueS5zb21lKChlbGVtZW50KSA9PiBldmFsdWF0ZShlbGVtZW50KSk7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBjb25kaXRpb24gYmxvY2sgbWV0IDogJHtKU09OLnN0cmluZ2lmeShuZXN0ZWRDb25kaXRpb24pfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmQgcnVsZSBpbnB1dCBmYWN0c1xuICAgKiBAcGFyYW0gb2JqXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmluZFJ1bGVJbnB1dEZhY3RzID0gKG9iajogQWxsQmxvY2spOiBzdHJpbmdbXSA9PiB7XG4gICAgY29uc3QgcnVsZUlucHV0RmFjdHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICB0aGlzLmNvbGxlY3RSdWxlSW5wdXRGYWN0cyhvYmosIHJ1bGVJbnB1dEZhY3RzKTtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShydWxlSW5wdXRGYWN0cyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFBsdWcgcnVsZXNldCB0byBmYWN0IHN0cmVhbXMgYW5kIHRyaWdnZXIgYSBmaXJzdCBldmFsdWF0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgcGx1Z1J1bGVzZXQoKSB7XG4gICAgY29uc3QgaW5wdXRGYWN0c0ZvclJ1bGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9O1xuICAgIHRoaXMucnVsZXNldC5ydWxlcy5mb3JFYWNoKChydWxlKSA9PiBpbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXSA9IHRoaXMuZmluZFJ1bGVJbnB1dEZhY3RzKHJ1bGUucm9vdEVsZW1lbnQpKTtcbiAgICBjb25zdCBmYWN0c1RoYXRSZXJ1bkV2ZXJ5dGhpbmc6IHN0cmluZ1tdID0gW107XG4gICAgdGhpcy5ydWxlc2V0LnJ1bGVzLmZvckVhY2goKHJ1bGUpID0+IHtcbiAgICAgIGlmIChydWxlLm91dHB1dFJ1bnRpbWVGYWN0cy5sZW5ndGggPiAwIHx8IHJ1bGUuaW5wdXRSdW50aW1lRmFjdHMubGVuZ3RoID4gMCkge1xuICAgICAgICBmYWN0c1RoYXRSZXJ1bkV2ZXJ5dGhpbmcucHVzaCguLi5pbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXSk7XG4gICAgICB9IGVsc2Uge31cbiAgICB9KTtcbiAgICBjb25zdCB0cmlnZ2VyRnVsbCQ6IE9ic2VydmFibGU8dW5rbm93bltdPiA9IGZhY3RzVGhhdFJlcnVuRXZlcnl0aGluZy5sZW5ndGggPT09IDBcbiAgICAgID8gb2YoW10pXG4gICAgICA6IGNvbWJpbmVMYXRlc3QoZmFjdHNUaGF0UmVydW5FdmVyeXRoaW5nLm1hcCgoZmFjdCkgPT4gdGhpcy5ydWxlc0VuZ2luZS5yZXRyaWV2ZU9yQ3JlYXRlRmFjdFN0cmVhbShmYWN0KSkpO1xuICAgIGNvbnN0IHJlc3VsdCQgPSB0cmlnZ2VyRnVsbCQucGlwZShzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgY29uc3QgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPiA9IHt9O1xuXG4gICAgICBsZXQgcnVsZXNldElucHV0RmFjdHM6IHN0cmluZ1tdO1xuICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZGVidWdNb2RlKSB7XG4gICAgICAgIHJ1bGVzZXRJbnB1dEZhY3RzID0gQXJyYXkuZnJvbSh0aGlzLnJ1bGVzZXQucnVsZXMucmVkdWNlKChhY2MsIHJ1bGUpID0+IHtcbiAgICAgICAgICBpbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXS5mb3JFYWNoKChmYWN0TmFtZSkgPT4gYWNjLmFkZChmYWN0TmFtZSkpO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIG5ldyBTZXQ8c3RyaW5nPigpKSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KHRoaXMucnVsZXNldC5ydWxlcy5tYXAoKHJ1bGUpID0+IHtcbiAgICAgICAgY29uc3QgaW5wdXRGYWN0cyA9IGlucHV0RmFjdHNGb3JSdWxlW3J1bGUuaWRdO1xuICAgICAgICBjb25zdCB2YWx1ZXMkID0gaW5wdXRGYWN0cy5tYXAoKGZhY3QpID0+IHRoaXMucnVsZXNFbmdpbmUucmV0cmlldmVPckNyZWF0ZUZhY3RTdHJlYW0oZmFjdCkpO1xuICAgICAgICByZXR1cm4gKHZhbHVlcyQubGVuZ3RoID4gMCA/IGNvbWJpbmVMYXRlc3QodmFsdWVzJCkgOiBvZihbW11dIGFzIChGYWN0cyB8IHVuZGVmaW5lZClbXSkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodW5kZWZpbmVkKSxcbiAgICAgICAgICAgIHBhaXJ3aXNlKCksXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5wZXJmb3JtYW5jZU1hcmsocnVsZSwgJ3N0YXJ0JykpLFxuICAgICAgICAgICAgbWFwKChbb2xkRmFjdFZhbHVlcywgZmFjdFZhbHVlc10pID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgb3V0cHV0OiBSdWxlRXZhbHVhdGlvbk91dHB1dCA9IHsgYWN0aW9uczogdW5kZWZpbmVkIH07XG5cbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWN0aW9ucyA9IHRoaXMuZXZhbHVhdGVSdWxlKHJ1bGUsIGlucHV0RmFjdHMucmVkdWNlPFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPj4oKGFjYywgaWQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICBhY2NbaWRdID0gZmFjdFZhbHVlcyFbaW5kZXhdO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9LCB7fSksIHJ1bnRpbWVGYWN0VmFsdWVzKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuYWN0aW9ucyA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBvdXRwdXQuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmICh0aGlzLnJ1bGVzRW5naW5lLmRlYnVnTW9kZSkge1xuICAgICAgICAgICAgICAgIG91dHB1dC5ldmFsdWF0aW9uID0gaGFuZGxlUnVsZUV2YWx1YXRpb25EZWJ1Zyh7IC4uLnJ1bGUsIGlucHV0RmFjdHMgfSwgdGhpcy5ydWxlc2V0Lm5hbWUsIG91dHB1dC5hY3Rpb25zLCBvdXRwdXQuZXJyb3IsIHJ1bnRpbWVGYWN0VmFsdWVzLCBmYWN0VmFsdWVzLCBvbGRGYWN0VmFsdWVzKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRwdXQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8uZXJyb3Iob3V0cHV0LmVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8ud2FybihgU2tpcHBpbmcgcnVsZSAke3J1bGUubmFtZX0sIGFuZCB0aGUgYXNzb2NpYXRlZCBydWxlc2V0YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMucGVyZm9ybWFuY2VNYXJrKHJ1bGUsICdlbmQnKSlcbiAgICAgICAgICApO1xuICAgICAgfSkpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICBtYXAoKFtwcmV2UmVzLCBjdXJyUmVzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbnNMaXN0cyA9IGN1cnJSZXMhLm1hcCgocikgPT4gci5hY3Rpb25zKTtcbiAgICAgICAgICBjb25zdCBhbGxFeGVjdXRpb25zVmFsaWQgPSBhY3Rpb25zTGlzdHMuZXZlcnkoKGFjdGlvbnMpID0+ICEhYWN0aW9ucyk7XG5cbiAgICAgICAgICBsZXQgZXhlY0luZm86IHtcbiAgICAgICAgICAgIGV4ZWN1dGlvbkNvdW50ZXI/OiBudW1iZXI7XG4gICAgICAgICAgICBhY3Rpb25zTGlzdHM6IEFjdGlvbkJsb2NrW11bXTtcbiAgICAgICAgICAgIHJ1bGVzZXRPdXRwdXRFeGVjdXRpb24/OiBSdWxlRXZhbHVhdGlvbltdO1xuICAgICAgICAgICAgYWxsRXhlY3V0aW9uc1ZhbGlkPzogYm9vbGVhbjtcbiAgICAgICAgICAgIHJ1bGVzZXRUcmlnZ2Vycz86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIEV2YWx1YXRpb25SZWFzb24+PjtcbiAgICAgICAgICB9ID0geyBhY3Rpb25zTGlzdHM6IChhbGxFeGVjdXRpb25zVmFsaWQgPyBhY3Rpb25zTGlzdHMgOiBbW11dKSB9O1xuXG4gICAgICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZW5naW5lRGVidWcpIHtcbiAgICAgICAgICAgIGV4ZWNJbmZvID0ge1xuICAgICAgICAgICAgICAuLi5leGVjSW5mbyxcbiAgICAgICAgICAgICAgLi4udGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1Zy5oYW5kbGVEZWJ1Z1J1bGVzZXRFeGVjdXRpb25JbmZvKFxuICAgICAgICAgICAgICAgIGN1cnJSZXMhLCBwcmV2UmVzLCBhbGxFeGVjdXRpb25zVmFsaWQsIHJ1bGVzZXRJbnB1dEZhY3RzLCBydW50aW1lRmFjdFZhbHVlcywgKyt0aGlzLmV4ZWN1dGlvbkNvdW50ZXIsIHRoaXMucnVsZXNldClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGVjSW5mbztcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgob3V0cHV0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0QWN0aW9ucyA9IChbXSBhcyBBY3Rpb25CbG9ja1tdKS5jb25jYXQoLi4ub3V0cHV0LmFjdGlvbnNMaXN0cyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1ZyAmJiBvdXRwdXQuYWxsRXhlY3V0aW9uc1ZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmVuZ2luZURlYnVnLmFkZFJ1bGVzZXRFeGVjdXRpb25FdmVudCh0aGlzLnJ1bGVzZXQsIG91dHB1dC5leGVjdXRpb25Db3VudGVyISxcbiAgICAgICAgICAgICAgcnVsZXNldElucHV0RmFjdHMsIG91dHB1dEFjdGlvbnMsIHJ1bnRpbWVGYWN0VmFsdWVzLCBvdXRwdXQucnVsZXNldFRyaWdnZXJzISxcbiAgICAgICAgICAgICAgb3V0cHV0LnJ1bGVzZXRPdXRwdXRFeGVjdXRpb24hKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb3V0cHV0QWN0aW9ucztcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBwcmV2Lmxlbmd0aCA9PT0gMCAmJiBjdXJyLmxlbmd0aCA9PT0gMClcbiAgICAgICk7XG4gICAgfSksIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLnJ1bGVzZXQuaWQsXG4gICAgICB2YWxpZGl0eVJhbmdlOiB0aGlzLnJ1bGVzZXQudmFsaWRpdHlSYW5nZSxcbiAgICAgIGxpbmtlZENvbXBvbmVudDogdGhpcy5ydWxlc2V0LmxpbmtlZENvbXBvbmVudCxcbiAgICAgIGxpbmtlZENvbXBvbmVudHM6IHRoaXMucnVsZXNldC5saW5rZWRDb21wb25lbnRzLFxuICAgICAgcnVsZXNSZXN1bHRzU3ViamVjdCQ6IHJlc3VsdCRcbiAgICB9IGFzIEVuZ2luZVJ1bGVzZXQ7XG4gIH1cbn1cbiJdfQ==
255
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldC1leGVjdXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9lbmdpbmUvcnVsZXNldC1leGVjdXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7QUFDdkIsT0FBTyxFQUNMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsYUFBYSxFQUViLEVBQUUsR0FDSCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsR0FBRyxFQUNILFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULFNBQVMsRUFDVCxHQUFHLEdBQ0osTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wseUJBQXlCLEdBQzFCLE1BQU0saUJBQWlCLENBQUM7QUFhekIsT0FBTyxFQUNMLGVBQWUsR0FDaEIsTUFBTSw2QkFBNkIsQ0FBQztBQUlyQyxPQUFPLEVBQ0wsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixjQUFjLEVBQ2QsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixvQkFBb0IsR0FDckIsTUFBTSxxQkFBcUIsQ0FBQztBQWU3QixNQUFNLE9BQU8sZUFBZTtJQWtCMUI7Ozs7T0FJRztJQUNILFlBQVksT0FBZ0IsRUFBRSxXQUF3QjtRQVA5QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFxSzdCOzs7V0FHRztRQUNnQix1QkFBa0IsR0FBRyxDQUFDLEdBQWEsRUFBWSxFQUFFO1lBQ2xFLE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7WUFDekMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztZQUNoRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDO1FBcktBLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FB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QUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBaUIsRUFDMUYsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxlQUFnQixFQUM1RSxNQUFNLENBQUMsc0JBQXVCLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztnQkFFRCxPQUFPLGFBQWEsQ0FBQztZQUN2QixDQUFDLENBQUMsRUFDRixvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQzdFLENBQUM7UUFDSixDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFcEQsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbkIsYUFBYSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYTtZQUN6QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQjtZQUMvQyxvQkFBb0IsRUFBRSxPQUFPO1NBQ2IsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogUnVsZXNldCBleGVjdXRvciAqL1xuaW1wb3J0IHtcbiAgSlNPTlBhdGgsXG59IGZyb20gJ2pzb25wYXRoLXBsdXMnO1xuaW1wb3J0IHtcbiAgY29tYmluZUxhdGVzdCxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIG1hcCxcbiAgcGFpcndpc2UsXG4gIHNoYXJlUmVwbGF5LFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge1xuICBoYW5kbGVSdWxlRXZhbHVhdGlvbkRlYnVnLFxufSBmcm9tICcuL2RlYnVnL2hlbHBlcnMnO1xuaW1wb3J0IHR5cGUge1xuICBSdWxlc0VuZ2luZSxcbn0gZnJvbSAnLi9lbmdpbmUnO1xuaW1wb3J0IHtcbiAgRW5naW5lUnVsZXNldCxcbiAgRXZhbHVhdGlvblJlYXNvbixcbiAgUnVsZUV2YWx1YXRpb24sXG4gIFJ1bGVFdmFsdWF0aW9uT3V0cHV0LFxufSBmcm9tICcuL2VuZ2luZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHR5cGUge1xuICBGYWN0cyxcbn0gZnJvbSAnLi9mYWN0JztcbmltcG9ydCB7XG4gIGV4ZWN1dGVPcGVyYXRvcixcbn0gZnJvbSAnLi9vcGVyYXRvci9vcGVyYXRvci5oZWxwZXJzJztcbmltcG9ydCB7XG4gIE9wZXJhdG9yLFxufSBmcm9tICcuL29wZXJhdG9yL29wZXJhdG9yLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICBpc0FsbENvbmRpdGlvbnMsXG4gIGlzQ29uZGl0aW9uUHJvcGVydGllcyxcbiAgaXNOb3RDb25kaXRpb24sXG4gIGlzT3BlcmFuZEZhY3QsXG4gIGlzT3BlcmFuZExpdGVyYWwsXG4gIGlzT3BlcmFuZFJ1bnRpbWVGYWN0LFxufSBmcm9tICcuL3J1bGUvcnVsZS5oZWxwZXJzJztcbmltcG9ydCB7XG4gIEFjdGlvbkJsb2NrLFxuICBBY3Rpb25TZXRUZW1wb3JhcnlGYWN0QmxvY2ssXG4gIEFsbEJsb2NrLFxuICBHZW5lcmljT3BlcmFuZCxcbiAgSWZFbHNlQmxvY2ssXG4gIE5lc3RlZENvbmRpdGlvbixcbiAgUnVsZSxcbiAgUnVsZXNldCxcbn0gZnJvbSAnLi9zdHJ1Y3R1cmUnO1xuXG4vKiogVHlwZSBvZiB0aGUgcmV0cmlldmUgZmFjdCBmdW5jdGlvbiAqL1xuZXhwb3J0IHR5cGUgUmV0cmlldmVGYWN0RnVuY1R5cGUgPSA8VCA9IHVua25vd24+IChpZDogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPFQgfCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgY2xhc3MgUnVsZXNldEV4ZWN1dG9yIHtcbiAgLyoqIHJldHJpZXZlRmFjdEZ1bmMgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHJ1bGVzRW5naW5lOiBSdWxlc0VuZ2luZTtcblxuICAvKiogTWFwIG9mIGF2YWlsYWJsZSBvcGVyYXRvcnMgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wZXJhdG9yczogUmVjb3JkPHN0cmluZywgT3BlcmF0b3I8dW5rbm93biwgdW5rbm93bj4+O1xuXG4gIC8qKiBEZWxheSBiZWZvcmUgZmFjdCBzdHJlYW0gZGVmYXVsdGluZyB2YWx1ZSAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZmFjdERlZmF1bHREZWxheT86IG51bWJlcjtcblxuICAvKiogUnVsZXNldCBhc3NvY2lhdGVkIHRvIHRoZSBjdXJyZW50IGV4ZWN1dG9yKi9cbiAgcHVibGljIHJlYWRvbmx5IHJ1bGVzZXQ6IFJ1bGVzZXQ7XG5cbiAgLyoqIFJ1bGVzZXQgcGx1Z2dlZCB0byB0aGUgZmFjdCBzdHJlYW0sIHRoYXQgY29udGFpbnMgYWN0aW9ucyBzdHJlYW0gcmVzdWx0ICovXG4gIHB1YmxpYyByZWFkb25seSBlbmdpbmVSdWxlc2V0OiBFbmdpbmVSdWxlc2V0O1xuXG4gIHByaXZhdGUgZXhlY3V0aW9uQ291bnRlciA9IDA7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBydWxlc2V0IGV4ZWN1dG9yXG4gICAqIEBwYXJhbSBydWxlc2V0IFJ1bGVzZXQgdG8gZXZhbHVhdGVcbiAgICogQHBhcmFtIHJ1bGVzRW5naW5lIEluc3RhbmNlIG9mIHRoZSBydWxlcyBlbmdpbmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKHJ1bGVzZXQ6IFJ1bGVzZXQsIHJ1bGVzRW5naW5lOiBSdWxlc0VuZ2luZSkge1xuICAgIHRoaXMucnVsZXNldCA9IHJ1bGVzZXQ7XG4gICAgdGhpcy5ydWxlc0VuZ2luZSA9IHJ1bGVzRW5naW5lO1xuICAgIHRoaXMub3BlcmF0b3JzID0gcnVsZXNFbmdpbmUub3BlcmF0b3JzO1xuICAgIHRoaXMuZW5naW5lUnVsZXNldCA9IHRoaXMucGx1Z1J1bGVzZXQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmVseSBleHBsb3JlcyBhIHJ1bGUgdG8gaWRlbnRpZnkgYW5kIGNvbGxlY3QgaW5wdXQgZmFjdHMuXG4gICAqIElucHV0IGZhY3RzIGFyZSBpZGVudGlmaWVkIGJhc2VkIG9uIHRoZSAnRkFDVCcgdHlwZSBhbmQgb3BlcmF0b3Itc3BlY2lmaWMgaW1wbGljaXQgZGVwZW5kZW5jaWVzLlxuICAgKiBAcGFyYW0gY3VycmVudE9iamVjdCBUaGUgY3VycmVudCBvYmplY3QgYmVpbmcgZXhwbG9yZWQuXG4gICAqIEBwYXJhbSBydWxlSW5wdXRGYWN0cyBBIHNldCB0byBzdG9yZSB0aGUgaWRlbnRpZmllZCBpbnB1dCBmYWN0cyBmb3IgdGhlIHJ1bGUuXG4gICAqL1xuICBwcml2YXRlIGNvbGxlY3RSdWxlSW5wdXRGYWN0cyhjdXJyZW50T2JqZWN0OiBBbGxCbG9jayB8IE5lc3RlZENvbmRpdGlvbiB8IE5lc3RlZENvbmRpdGlvbltdLCBydWxlSW5wdXRGYWN0czogU2V0PHN0cmluZz4pIHtcbiAgICBpZiAoY3VycmVudE9iamVjdCAmJiBpc09wZXJhbmRGYWN0KGN1cnJlbnRPYmplY3QpKSB7XG4gICAgICBydWxlSW5wdXRGYWN0cy5hZGQoY3VycmVudE9iamVjdC52YWx1ZSk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KGN1cnJlbnRPYmplY3QpKSB7XG4gICAgICBjdXJyZW50T2JqZWN0LmZvckVhY2goKGVsZW0pID0+IHRoaXMuY29sbGVjdFJ1bGVJbnB1dEZhY3RzKGVsZW0sIHJ1bGVJbnB1dEZhY3RzKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGN1cnJlbnRPYmplY3QpIHtcbiAgICAgICAgaWYgKChrZXkgPT09ICdvcGVyYXRvcicpICYmIGlzQ29uZGl0aW9uUHJvcGVydGllcyhjdXJyZW50T2JqZWN0KSkge1xuICAgICAgICAgIGNvbnN0IG9wID0gdGhpcy5vcGVyYXRvcnNbY3VycmVudE9iamVjdFtrZXldXTtcbiAgICAgICAgICBpZiAob3AgJiYgb3AuZmFjdEltcGxpY2l0RGVwZW5kZW5jaWVzKSB7XG4gICAgICAgICAgICBvcC5mYWN0SW1wbGljaXREZXBlbmRlbmNpZXMuZm9yRWFjaCgoZGVwKSA9PiBydWxlSW5wdXRGYWN0cy5hZGQoZGVwKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBjdXJyZW50T2JqZWN0W2tleSBhcyBrZXlvZiAoQWxsQmxvY2sgfCBOZXN0ZWRDb25kaXRpb24pXSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0aGlzLmNvbGxlY3RSdWxlSW5wdXRGYWN0cyhjdXJyZW50T2JqZWN0W2tleSBhcyBrZXlvZiAoQWxsQmxvY2sgfCBOZXN0ZWRDb25kaXRpb24pXSwgcnVsZUlucHV0RmFjdHMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlcG9ydCBwZXJmb3JtYW5jZSBtYXJrIGZvciBhIHJ1bGUgcnVuXG4gICAqIEBwYXJhbSBydWxlIFJ1bGUgdG8gbWVhc3VyZVxuICAgKiBAcGFyYW0gc3RhdHVzIHN0YXR1cyBvZiB0aGUgcnVsZSBldmFsdWF0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgcGVyZm9ybWFuY2VNYXJrKHJ1bGU6IFJ1bGUsIHN0YXR1czogJ3N0YXJ0JyB8ICdlbmQnKSB7XG4gICAgaWYgKHRoaXMucnVsZXNFbmdpbmUucGVyZm9ybWFuY2UpIHtcbiAgICAgIGNvbnN0IG1hcmtOYW1lID0gYHJ1bGVzLWVuZ2luZToke3RoaXMucnVsZXNFbmdpbmUucnVsZXNFbmdpbmVJbnN0YW5jZU5hbWV9OiR7dGhpcy5ydWxlc2V0Lm5hbWV9OiR7cnVsZS5uYW1lfWA7XG4gICAgICB0aGlzLnJ1bGVzRW5naW5lLnBlcmZvcm1hbmNlLm1hcmsoYCR7bWFya05hbWV9OiR7c3RhdHVzfWApO1xuICAgICAgaWYgKHN0YXR1cyA9PT0gJ2VuZCcpIHtcbiAgICAgICAgdGhpcy5ydWxlc0VuZ2luZS5wZXJmb3JtYW5jZS5tZWFzdXJlKG1hcmtOYW1lLCBgJHttYXJrTmFtZX06c3RhcnRgLCBgJHttYXJrTmFtZX06ZW5kYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvcGVyYW5kIHZhbHVlIHN0cmVhbSBhY2NvcmRpbmcgdG8gaXRzIHR5cGVcbiAgICogQHBhcmFtIG9wZXJhbmQgb3BlcmFuZCBvZiB0aGUgY29uZGl0aW9uXG4gICAqIEBwYXJhbSBmYWN0c1ZhbHVlXG4gICAqIEBwYXJhbSBydW50aW1lRmFjdFZhbHVlc1xuICAgKi9cbiAgcHJvdGVjdGVkIGdldE9wZXJhbmRWYWx1ZShvcGVyYW5kOiBHZW5lcmljT3BlcmFuZCB8IHVuZGVmaW5lZCwgZmFjdHNWYWx1ZTogUmVjb3JkPHN0cmluZywgRmFjdHMgfCB1bmRlZmluZWQ+LCBydW50aW1lRmFjdFZhbHVlczogUmVjb3JkPHN0cmluZywgRmFjdHM+KTogdW5rbm93biB7XG4gICAgaWYgKHR5cGVvZiBvcGVyYW5kID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9IGVsc2UgaWYgKGlzT3BlcmFuZEZhY3Qob3BlcmFuZCkpIHtcbiAgICAgIGNvbnN0IGZhY3RWYWx1ZSA9IGZhY3RzVmFsdWVbb3BlcmFuZC52YWx1ZV07XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbmV3LWNhcCAtLSBjb252ZW50aW9uIGZvciBKU09OUGF0aFxuICAgICAgcmV0dXJuIG9wZXJhbmQucGF0aCA/IGZhY3RWYWx1ZSAmJiBKU09OUGF0aCh7IHdyYXA6IGZhbHNlLCBqc29uOiBmYWN0VmFsdWUsIHBhdGg6IG9wZXJhbmQucGF0aCB9KSA6IGZhY3RWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKGlzT3BlcmFuZExpdGVyYWwob3BlcmFuZCkpIHtcbiAgICAgIHJldHVybiBvcGVyYW5kLnZhbHVlO1xuICAgIH0gZWxzZSBpZiAoaXNPcGVyYW5kUnVudGltZUZhY3Qob3BlcmFuZCkpIHtcbiAgICAgIHJldHVybiBydW50aW1lRmFjdFZhbHVlc1tvcGVyYW5kLnZhbHVlXTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzIGEgcm9vdCBydWxlIGZyb20gYSBydWxlc2V0LCBhbmQgcmV0dXJuIHRoZSBhc3NvY2lhdGVkIGFjdGlvbnMgdG8gYmUgcHJvY2Vzc2VkXG4gICAqIFdpbGwgYWxzbyB1cGRhdGUgdGhlIHJ1bnRpbWVGYWN0VmFsdWVzIG1hcCB0aGF0IGlzIHJ1bGVzZXQgd2lzZVxuICAgKiBOb3RlIHRoYXQgcnVudGltZUZhY3RWYWx1ZXMgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBydWxlXG4gICAqIEBwYXJhbSBmYWN0c1ZhbHVlXG4gICAqIEBwYXJhbSBydW50aW1lRmFjdFZhbHVlc1xuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZXZhbHVhdGVSdWxlKHJ1bGU6IFJ1bGUsIGZhY3RzVmFsdWU6IFJlY29yZDxzdHJpbmcsIEZhY3RzIHwgdW5kZWZpbmVkPiwgcnVudGltZUZhY3RWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIEZhY3RzPikge1xuICAgIHJldHVybiB0aGlzLmV2YWx1YXRlQmxvY2socnVsZS5yb290RWxlbWVudCwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IHByb2Nlc3MgYSBibG9jayB0byBleHRyYWN0IGFsbCB0aGUgYWN0aW9ucyBrZWVwaW5nIHRoZSBvcmRlclxuICAgKiBOb3RlIHRoYXQgcnVudGltZUZhY3RWYWx1ZXMgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwYXJhbSBmYWN0c1ZhbHVlXG4gICAqIEBwYXJhbSBydW50aW1lRmFjdFZhbHVlcyBUaGlzIHJ1bnRpbWUgZmFjdCBtYXAgd2lsbCBiZSBtdXRhdGVkIGJ5IGFsbCB0aGUgcnVudGltZSBmYWN0cyBhY3Rpb25zIGV4ZWN1dGVkXG4gICAqIEBwYXJhbSBhY3Rpb25zXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBldmFsdWF0ZUJsb2NrKGVsZW1lbnQ6IEFsbEJsb2NrLCBmYWN0c1ZhbHVlOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4sIHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4sIGFjdGlvbnM6IEFjdGlvbkJsb2NrW10gPSBbXSkge1xuICAgIGlmICh0aGlzLmlzSWZFbHNlQmxvY2soZWxlbWVudCkpIHtcbiAgICAgICghZWxlbWVudC5jb25kaXRpb24gfHwgdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihlbGVtZW50LmNvbmRpdGlvbiwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpID8gZWxlbWVudC5zdWNjZXNzRWxlbWVudHMgOiBlbGVtZW50LmZhaWx1cmVFbGVtZW50cylcbiAgICAgICAgLmZvckVhY2goKGVsZW1lbnRSZXN1bHQpID0+IHRoaXMuZXZhbHVhdGVCbG9jayhlbGVtZW50UmVzdWx0LCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcywgYWN0aW9ucykpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5pc0FjdGlvbkJsb2NrKGVsZW1lbnQpKSB7XG4gICAgICBpZiAodGhpcy5pc0FjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayhlbGVtZW50KSkge1xuICAgICAgICBydW50aW1lRmFjdFZhbHVlc1tlbGVtZW50LmZhY3RdID0gZWxlbWVudC52YWx1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjdGlvbnMucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IGlzIGEgSWZFbHNlIGJsb2NrXG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0lmRWxzZUJsb2NrKGVsZW1lbnQ6IEFsbEJsb2NrKTogZWxlbWVudCBpcyBJZkVsc2VCbG9jayB7XG4gICAgcmV0dXJuIGVsZW1lbnQuYmxvY2tUeXBlID09PSAnSUZfRUxTRSc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBlbGVtZW50IGlzIGFuIGFjdGlvbiBibG9ja1xuICAgKiBAcGFyYW0gZWxlbWVudFxuICAgKiBAcHJvdGVjdGVkXG4gICAqL1xuICBwcm90ZWN0ZWQgaXNBY3Rpb25CbG9jayhlbGVtZW50OiBBbGxCbG9jayk6IGVsZW1lbnQgaXMgQWN0aW9uQmxvY2sge1xuICAgIHJldHVybiAnZWxlbWVudFR5cGUnIGluIGVsZW1lbnQgJiYgZWxlbWVudC5lbGVtZW50VHlwZSA9PT0gJ0FDVElPTic7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBhY3Rpb24gc2V0cyBhIHRlbXBvcmFyeSBmYWN0XG4gICAqIEBwYXJhbSBlbGVtZW50XG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBpc0FjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayhlbGVtZW50OiBBY3Rpb25CbG9jayk6IGVsZW1lbnQgaXMgQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrIHtcbiAgICByZXR1cm4gJ2FjdGlvblR5cGUnIGluIGVsZW1lbnQgJiYgZWxlbWVudC5hY3Rpb25UeXBlID09PSAnU0VUX0ZBQ1QnO1xuICB9XG5cbiAgLyoqXG4gICAqIEV2YWx1YXRlIGEgY29uZGl0aW9uIGJsb2NrXG4gICAqIEBwYXJhbSBuZXN0ZWRDb25kaXRpb25cbiAgICogQHBhcmFtIGZhY3RzVmFsdWVcbiAgICogQHBhcmFtIHJ1bnRpbWVGYWN0VmFsdWVzXG4gICAqIEBwcm90ZWN0ZWRcbiAgICovXG4gIHByb3RlY3RlZCBldmFsdWF0ZUNvbmRpdGlvbihuZXN0ZWRDb25kaXRpb246IE5lc3RlZENvbmRpdGlvbiwgZmFjdHNWYWx1ZTogUmVjb3JkPHN0cmluZywgRmFjdHMgfCB1bmRlZmluZWQ+LCBydW50aW1lRmFjdFZhbHVlczogUmVjb3JkPHN0cmluZywgRmFjdHM+KTogYm9vbGVhbiB7XG4gICAgaWYgKGlzQ29uZGl0aW9uUHJvcGVydGllcyhuZXN0ZWRDb25kaXRpb24pKSB7XG4gICAgICBjb25zdCBvcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzW25lc3RlZENvbmRpdGlvbi5vcGVyYXRvcl07XG4gICAgICBpZiAob3BlcmF0b3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gb3BlcmF0b3IgOiAke25lc3RlZENvbmRpdGlvbi5vcGVyYXRvcn0sIHNraXBwaW5nIHRoZSBydWxlIGV4ZWN1dGlvbi4uLmApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4ZWN1dGVPcGVyYXRvcih0aGlzLmdldE9wZXJhbmRWYWx1ZShuZXN0ZWRDb25kaXRpb24ubGhzLCBmYWN0c1ZhbHVlLCBydW50aW1lRmFjdFZhbHVlcyksXG4gICAgICAgIHRoaXMuZ2V0T3BlcmFuZFZhbHVlKCdyaHMnIGluIG5lc3RlZENvbmRpdGlvbiA/IG5lc3RlZENvbmRpdGlvbi5yaHMgOiB1bmRlZmluZWQsIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzKSwgb3BlcmF0b3IsIGZhY3RzVmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChpc05vdENvbmRpdGlvbihuZXN0ZWRDb25kaXRpb24pKSB7XG4gICAgICByZXR1cm4gIXRoaXMuZXZhbHVhdGVDb25kaXRpb24obmVzdGVkQ29uZGl0aW9uLm5vdCwgZmFjdHNWYWx1ZSwgcnVudGltZUZhY3RWYWx1ZXMpO1xuICAgIH1cbiAgICBpZiAobmVzdGVkQ29uZGl0aW9uLmFsbCB8fCBuZXN0ZWRDb25kaXRpb24uYW55KSB7XG4gICAgICBjb25zdCBldmFsdWF0ZSA9IChjb25kaXRpb246IE5lc3RlZENvbmRpdGlvbikgPT4gdGhpcy5ldmFsdWF0ZUNvbmRpdGlvbihjb25kaXRpb24sIGZhY3RzVmFsdWUsIHJ1bnRpbWVGYWN0VmFsdWVzKTtcbiAgICAgIHJldHVybiBpc0FsbENvbmRpdGlvbnMobmVzdGVkQ29uZGl0aW9uKSA/IG5lc3RlZENvbmRpdGlvbi5hbGwuZXZlcnkoKGVsZW1lbnQpID0+IGV2YWx1YXRlKGVsZW1lbnQpKSA6IG5lc3RlZENvbmRpdGlvbi5hbnkuc29tZSgoZWxlbWVudCkgPT4gZXZhbHVhdGUoZWxlbWVudCkpO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gY29uZGl0aW9uIGJsb2NrIG1ldCA6ICR7SlNPTi5zdHJpbmdpZnkobmVzdGVkQ29uZGl0aW9uKX1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIHJ1bGUgaW5wdXQgZmFjdHNcbiAgICogQHBhcmFtIG9ialxuICAgKi9cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpbmRSdWxlSW5wdXRGYWN0cyA9IChvYmo6IEFsbEJsb2NrKTogc3RyaW5nW10gPT4ge1xuICAgIGNvbnN0IHJ1bGVJbnB1dEZhY3RzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgdGhpcy5jb2xsZWN0UnVsZUlucHV0RmFjdHMob2JqLCBydWxlSW5wdXRGYWN0cyk7XG4gICAgcmV0dXJuIEFycmF5LmZyb20ocnVsZUlucHV0RmFjdHMpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQbHVnIHJ1bGVzZXQgdG8gZmFjdCBzdHJlYW1zIGFuZCB0cmlnZ2VyIGEgZmlyc3QgZXZhbHVhdGlvblxuICAgKi9cbiAgcHJvdGVjdGVkIHBsdWdSdWxlc2V0KCkge1xuICAgIGNvbnN0IGlucHV0RmFjdHNGb3JSdWxlOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fTtcbiAgICB0aGlzLnJ1bGVzZXQucnVsZXMuZm9yRWFjaCgocnVsZSkgPT4gaW5wdXRGYWN0c0ZvclJ1bGVbcnVsZS5pZF0gPSB0aGlzLmZpbmRSdWxlSW5wdXRGYWN0cyhydWxlLnJvb3RFbGVtZW50KSk7XG4gICAgY29uc3QgZmFjdHNUaGF0UmVydW5FdmVyeXRoaW5nOiBzdHJpbmdbXSA9IFtdO1xuICAgIHRoaXMucnVsZXNldC5ydWxlcy5mb3JFYWNoKChydWxlKSA9PiB7XG4gICAgICBpZiAocnVsZS5vdXRwdXRSdW50aW1lRmFjdHMubGVuZ3RoID4gMCB8fCBydWxlLmlucHV0UnVudGltZUZhY3RzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZmFjdHNUaGF0UmVydW5FdmVyeXRoaW5nLnB1c2goLi4uaW5wdXRGYWN0c0ZvclJ1bGVbcnVsZS5pZF0pO1xuICAgICAgfSBlbHNlIHt9XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlckZ1bGwkOiBPYnNlcnZhYmxlPHVua25vd25bXT4gPSBmYWN0c1RoYXRSZXJ1bkV2ZXJ5dGhpbmcubGVuZ3RoID09PSAwXG4gICAgICA/IG9mKFtdKVxuICAgICAgOiBjb21iaW5lTGF0ZXN0KGZhY3RzVGhhdFJlcnVuRXZlcnl0aGluZy5tYXAoKGZhY3QpID0+IHRoaXMucnVsZXNFbmdpbmUucmV0cmlldmVPckNyZWF0ZUZhY3RTdHJlYW0oZmFjdCkpKTtcbiAgICBjb25zdCByZXN1bHQkID0gdHJpZ2dlckZ1bGwkLnBpcGUoc3dpdGNoTWFwKCgpID0+IHtcbiAgICAgIGNvbnN0IHJ1bnRpbWVGYWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBGYWN0cz4gPSB7fTtcblxuICAgICAgbGV0IHJ1bGVzZXRJbnB1dEZhY3RzOiBzdHJpbmdbXTtcbiAgICAgIGlmICh0aGlzLnJ1bGVzRW5naW5lLmRlYnVnTW9kZSkge1xuICAgICAgICBydWxlc2V0SW5wdXRGYWN0cyA9IEFycmF5LmZyb20odGhpcy5ydWxlc2V0LnJ1bGVzLnJlZHVjZSgoYWNjLCBydWxlKSA9PiB7XG4gICAgICAgICAgaW5wdXRGYWN0c0ZvclJ1bGVbcnVsZS5pZF0uZm9yRWFjaCgoZmFjdE5hbWUpID0+IGFjYy5hZGQoZmFjdE5hbWUpKTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBuZXcgU2V0PHN0cmluZz4oKSkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29tYmluZUxhdGVzdCh0aGlzLnJ1bGVzZXQucnVsZXMubWFwKChydWxlKSA9PiB7XG4gICAgICAgIGNvbnN0IGlucHV0RmFjdHMgPSBpbnB1dEZhY3RzRm9yUnVsZVtydWxlLmlkXTtcbiAgICAgICAgY29uc3QgdmFsdWVzJCA9IGlucHV0RmFjdHMubWFwKChmYWN0KSA9PiB0aGlzLnJ1bGVzRW5naW5lLnJldHJpZXZlT3JDcmVhdGVGYWN0U3RyZWFtKGZhY3QpKTtcbiAgICAgICAgcmV0dXJuICh2YWx1ZXMkLmxlbmd0aCA+IDAgPyBjb21iaW5lTGF0ZXN0KHZhbHVlcyQpIDogb2YoW1tdXSBhcyAoRmFjdHMgfCB1bmRlZmluZWQpW10pKVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgc3RhcnRXaXRoKHVuZGVmaW5lZCksXG4gICAgICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMucGVyZm9ybWFuY2VNYXJrKHJ1bGUsICdzdGFydCcpKSxcbiAgICAgICAgICAgIG1hcCgoW29sZEZhY3RWYWx1ZXMsIGZhY3RWYWx1ZXNdKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IG91dHB1dDogUnVsZUV2YWx1YXRpb25PdXRwdXQgPSB7IGFjdGlvbnM6IHVuZGVmaW5lZCB9O1xuXG4gICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0LmFjdGlvbnMgPSB0aGlzLmV2YWx1YXRlUnVsZShydWxlLCBpbnB1dEZhY3RzLnJlZHVjZTxSZWNvcmQ8c3RyaW5nLCBGYWN0cyB8IHVuZGVmaW5lZD4+KChhY2MsIGlkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgYWNjW2lkXSA9IGZhY3RWYWx1ZXMhW2luZGV4XTtcbiAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgfSwge30pLCBydW50aW1lRmFjdFZhbHVlcyk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgb3V0cHV0LmFjdGlvbnMgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgb3V0cHV0LmVycm9yID0gZXJyb3I7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5kZWJ1Z01vZGUpIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQuZXZhbHVhdGlvbiA9IGhhbmRsZVJ1bGVFdmFsdWF0aW9uRGVidWcocnVsZSwgdGhpcy5ydWxlc2V0Lm5hbWUsIG91dHB1dC5hY3Rpb25zLCBvdXRwdXQuZXJyb3IsIHJ1bnRpbWVGYWN0VmFsdWVzLCBmYWN0VmFsdWVzLCBvbGRGYWN0VmFsdWVzLCBpbnB1dEZhY3RzKTtcbiAgICAgICAgICAgICAgfSBlbHNlIGlmIChvdXRwdXQuZXJyb3IpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8uZXJyb3Iob3V0cHV0LmVycm9yKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmxvZ2dlcj8ud2FybihgU2tpcHBpbmcgcnVsZSAke3J1bGUubmFtZX0sIGFuZCB0aGUgYXNzb2NpYXRlZCBydWxlc2V0YCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMucGVyZm9ybWFuY2VNYXJrKHJ1bGUsICdlbmQnKSlcbiAgICAgICAgICApO1xuICAgICAgfSkpLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh1bmRlZmluZWQpLFxuICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICBtYXAoKFtwcmV2UmVzLCBjdXJyUmVzXSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFjdGlvbnNMaXN0cyA9IGN1cnJSZXMhLm1hcCgocikgPT4gci5hY3Rpb25zKTtcbiAgICAgICAgICBjb25zdCBhbGxFeGVjdXRpb25zVmFsaWQgPSBhY3Rpb25zTGlzdHMuZXZlcnkoKGFjdGlvbnMpID0+ICEhYWN0aW9ucyk7XG5cbiAgICAgICAgICBsZXQgZXhlY0luZm86IHtcbiAgICAgICAgICAgIGV4ZWN1dGlvbkNvdW50ZXI/OiBudW1iZXI7XG4gICAgICAgICAgICBhY3Rpb25zTGlzdHM6IEFjdGlvbkJsb2NrW11bXTtcbiAgICAgICAgICAgIHJ1bGVzZXRPdXRwdXRFeGVjdXRpb24/OiBSdWxlRXZhbHVhdGlvbltdO1xuICAgICAgICAgICAgYWxsRXhlY3V0aW9uc1ZhbGlkPzogYm9vbGVhbjtcbiAgICAgICAgICAgIHJ1bGVzZXRUcmlnZ2Vycz86IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIEV2YWx1YXRpb25SZWFzb24+PjtcbiAgICAgICAgICB9ID0geyBhY3Rpb25zTGlzdHM6IChhbGxFeGVjdXRpb25zVmFsaWQgPyBhY3Rpb25zTGlzdHMgOiBbW11dKSB9O1xuXG4gICAgICAgICAgaWYgKHRoaXMucnVsZXNFbmdpbmUuZW5naW5lRGVidWcpIHtcbiAgICAgICAgICAgIGV4ZWNJbmZvID0ge1xuICAgICAgICAgICAgICAuLi5leGVjSW5mbyxcbiAgICAgICAgICAgICAgLi4udGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1Zy5oYW5kbGVEZWJ1Z1J1bGVzZXRFeGVjdXRpb25JbmZvKFxuICAgICAgICAgICAgICAgIGN1cnJSZXMhLCBwcmV2UmVzLCBhbGxFeGVjdXRpb25zVmFsaWQsIHJ1bGVzZXRJbnB1dEZhY3RzLCBydW50aW1lRmFjdFZhbHVlcywgKyt0aGlzLmV4ZWN1dGlvbkNvdW50ZXIsIHRoaXMucnVsZXNldClcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBleGVjSW5mbztcbiAgICAgICAgfSksXG4gICAgICAgIG1hcCgob3V0cHV0KSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0QWN0aW9ucyA9IChbXSBhcyBBY3Rpb25CbG9ja1tdKS5jb25jYXQoLi4ub3V0cHV0LmFjdGlvbnNMaXN0cyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5ydWxlc0VuZ2luZS5lbmdpbmVEZWJ1ZyAmJiBvdXRwdXQuYWxsRXhlY3V0aW9uc1ZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLnJ1bGVzRW5naW5lLmVuZ2luZURlYnVnLmFkZFJ1bGVzZXRFeGVjdXRpb25FdmVudCh0aGlzLnJ1bGVzZXQsIG91dHB1dC5leGVjdXRpb25Db3VudGVyISxcbiAgICAgICAgICAgICAgcnVsZXNldElucHV0RmFjdHMsIG91dHB1dEFjdGlvbnMsIHJ1bnRpbWVGYWN0VmFsdWVzLCBvdXRwdXQucnVsZXNldFRyaWdnZXJzISxcbiAgICAgICAgICAgICAgb3V0cHV0LnJ1bGVzZXRPdXRwdXRFeGVjdXRpb24hKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gb3V0cHV0QWN0aW9ucztcbiAgICAgICAgfSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChwcmV2LCBjdXJyKSA9PiBwcmV2Lmxlbmd0aCA9PT0gMCAmJiBjdXJyLmxlbmd0aCA9PT0gMClcbiAgICAgICk7XG4gICAgfSksIHNoYXJlUmVwbGF5KHsgYnVmZmVyU2l6ZTogMSwgcmVmQ291bnQ6IHRydWUgfSkpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGlkOiB0aGlzLnJ1bGVzZXQuaWQsXG4gICAgICB2YWxpZGl0eVJhbmdlOiB0aGlzLnJ1bGVzZXQudmFsaWRpdHlSYW5nZSxcbiAgICAgIGxpbmtlZENvbXBvbmVudHM6IHRoaXMucnVsZXNldC5saW5rZWRDb21wb25lbnRzLFxuICAgICAgcnVsZXNSZXN1bHRzU3ViamVjdCQ6IHJlc3VsdCRcbiAgICB9IGFzIEVuZ2luZVJ1bGVzZXQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VuZ2luZS9zdHJ1Y3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSXRlbUlkZW50aWZpZXIsXG4gIFJ1bGVzRW5naW5lQWN0aW9uLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBOYXRpdmVUeXBlcyA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXI7XG4vKiogR2VuZXJpYyBvcGVyYW5kICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmQ8VCBleHRlbmRzIHN0cmluZywgVSBleHRlbmRzIE5hdGl2ZVR5cGVzID0gTmF0aXZlVHlwZXM+IHtcbiAgLyoqIE9wZXJhbmQgdHlwZSAqL1xuICB0eXBlOiBUO1xuICAvKiogU3RhdGljIHZhbHVlICovXG4gIHZhbHVlOiBVO1xufVxuXG4vKiogT3BlcmFuZCBiYXNlZCBvbiBmYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmRGYWN0IGV4dGVuZHMgT3BlcmFuZDwnRkFDVCcsIHN0cmluZz4ge1xuICAvKiogSlNPTlBhdGggdG8gZGVlcCByZWFkIHRoZSBmYWN0IHZhbHVlICovXG4gIHBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKiBDb25kaXRpb24gYXZhaWxhYmxlIG9wZXJhbmQgdHlwZXMgKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNPcGVyYW5kID0gT3BlcmFuZEZhY3QgfCBPcGVyYW5kPCdSVU5USU1FX0ZBQ1QnLCBzdHJpbmc+IHwgT3BlcmFuZDwnTElURVJBTCc+O1xuXG4vKiogQ29uZGl0aW9uIG9iamVjdCBpbnRlcmZhY2Ugd2l0aCB1bmFyeSBvcGVyYXRvciAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogT3BlcmF0b3IgKi9cbiAgb3BlcmF0b3I6IHN0cmluZztcbn1cblxuLyoqIENvbmRpdGlvbiBvYmplY3QgaW50ZXJmYWNlICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogUmlnaHQgSGFuZCBTaWRlICovXG4gIHJoczogR2VuZXJpY09wZXJhbmQ7XG4gIC8qKiBPcGVyYXRvciAqL1xuICBvcGVyYXRvcjogc3RyaW5nO1xufVxuXG4vKiogTmVzdGVkIENvbmRpdGlvbiAqL1xuXG5leHBvcnQgdHlwZSBOZXN0ZWRDb25kaXRpb24gPSBVbmFyeU9wZXJhdGlvbiB8IEJpbmFyeU9wZXJhdGlvbiB8IFRvcExldmVsQ29uZGl0aW9uO1xuLyoqIEFsbCBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIEFsbENvbmRpdGlvbnMgPSB7IGFsbDogTmVzdGVkQ29uZGl0aW9uW107IGFueT86IG5ldmVyOyBub3Q/OiBuZXZlciB9O1xuLyoqIEFueSBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIEFueUNvbmRpdGlvbnMgPSB7IGFueTogTmVzdGVkQ29uZGl0aW9uW107IGFsbD86IG5ldmVyOyBub3Q/OiBuZXZlciB9O1xuLyoqIE5vdCBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIE5vdENvbmRpdGlvbiA9IHsgbm90OiBOZXN0ZWRDb25kaXRpb247IGFsbD86IG5ldmVyOyBhbnk/OiBuZXZlciB9O1xuLyoqIFRvcCBsZXZlbCBDb25kaXRpb24gaW4gdGhlIHJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IHR5cGUgVG9wTGV2ZWxDb25kaXRpb24gPSBBbGxDb25kaXRpb25zIHwgQW55Q29uZGl0aW9ucyB8IE5vdENvbmRpdGlvbiB8IFVuYXJ5T3BlcmF0aW9uIHwgQmluYXJ5T3BlcmF0aW9uO1xuXG4vKiogRXZlbnQgZW1pdHRlZCBpbiBjYXNlIHRoZSBydWxlIGNvbmRpdGlvbiBpcyBwYXNzZWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUV2ZW50IHtcbiAgLyoqIFR5cGUgKG9yIG5hbWUpIG9mIHRoZSBldmVudCAqL1xuICB0eXBlOiBzdHJpbmc7XG4gIC8qKiBsaXN0IG9mIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBldmVudCAqL1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogQmFzZSBmb3IgdGhlIFJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcbiAgLyoqIFVuaXF1ZSBpZCBhc3NvY2lhdGVkIHRvIGEgcnVsZSovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBSdW50aW1lIGZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0UnVudGltZUZhY3RzOiBzdHJpbmdbXTtcbiAgLyoqIEBkZXByZWNhdGVkIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTIuIEZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0RmFjdHM6IHN0cmluZ1tdO1xuICAvKiogUnVudGltZSBmYWN0cyB0aGF0IGFyZSBjcmVhdGVkL3VwZGF0ZWQgYnkgdGhlIHJ1bGUqL1xuICBvdXRwdXRSdW50aW1lRmFjdHM6IHN0cmluZ1tdO1xuICAvKiogTmFtZSBvZiB0aGUgcnVsZSovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIHJvb3RFbGVtZW50IG9mIHRoZSBydWxlLCB0aGF0IGNvbnRhaW5zIGVpdGhlciBhIGJsb2NrLCBlaXRoZXIgYW4gYWN0aW9uIGxpc3QgKi9cbiAgcm9vdEVsZW1lbnQ6IEFsbEJsb2NrO1xufVxuXG4vKipcbiAqIExpc3Qgb2YgcG9zc2libGUgdHlwZXMgb2YgYWN0aW9ucyByZXN1bHRlZCBhcyBvdXRwdXQgb2YgYSBydWxlIGV4ZWN1dGlvblxuICogQGRlcHJlY2F0ZWQgdGhlIGFjdGlvbnMgYXJlIG5vdyBkZXBlbmRpbmcgb2YgZXhlY3V0aW5nIG1vZHVsZXNcbiAqL1xuZXhwb3J0IHR5cGUgQWN0aW9uVHlwZXMgPSAnU0VUX0ZBQ1QnIHwgJ1VQREFURV9DT05GSUcnIHwgJ1VQREFURV9BU1NFVCcgfCAnVVBEQVRFX0xPQ0FMSVNBVElPTicgfCAnVVBEQVRFX1BMQUNFSE9MREVSJztcblxuLyoqIFR5cGVzIGFzc29jaWF0ZWQgdG8gdGhlIGNvbmRpdGlvbiBibG9ja3MgdGhhdCBhcmUgc3VwcG9ydGVkICovXG5leHBvcnQgdHlwZSBDb25kaXRpb25CbG9ja1R5cGVzID0gJ0lGX0VMU0UnO1xuXG4vKiogSW50ZXJmYWNlIGNvbW1vbiB0byBhbGwgZWxlbWVudHMgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUVsZW1lbnQge1xuICAvKiogVHlwZSBvZiB0aGUgZWxlbWVudCovXG4gIGVsZW1lbnRUeXBlOiBzdHJpbmc7XG59XG5cbi8qKiBJbnRlcmZhY2UgY29tbW9uIHRvIGFsbCBhY3Rpb25zICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkJsb2NrIGV4dGVuZHMgUnVsZUVsZW1lbnQsIFJ1bGVzRW5naW5lQWN0aW9uIHtcbiAgZWxlbWVudFR5cGU6ICdBQ1RJT04nO1xuICBhY3Rpb25UeXBlOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59XG5cbi8qKiBJbnRlcmZhY2Ugb2YgYWN0aW9uIHRoYXQgc2V0cyBvciB1cGRhdGVzIGEgdGVtcG9yYXJ5IGZhY3QgKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uU2V0VGVtcG9yYXJ5RmFjdEJsb2NrIGV4dGVuZHMgQWN0aW9uQmxvY2sge1xuICBhY3Rpb25UeXBlOiAnU0VUX0ZBQ1QnO1xuICBmYWN0OiBzdHJpbmc7XG59XG5cbi8qKiBJbnRlcmZhY2Ugb2YgYmxvY2sgUnVsZSAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlQmxvY2sgZXh0ZW5kcyBSdWxlRWxlbWVudCB7XG4gIGVsZW1lbnRUeXBlOiAnUlVMRV9CTE9DSyc7XG4gIGJsb2NrVHlwZTogQ29uZGl0aW9uQmxvY2tUeXBlcztcbn1cblxuLyoqIEFsbCBzdXBwb3J0ZWQgYmxvY2tzIChzdXBwb3J0aW5nIG5lc3RlZCBzdHJ1Y3R1cmUpICovXG5leHBvcnQgdHlwZSBBbGxCbG9jayA9XG4gIElmRWxzZUJsb2NrXG4gIHwgKEFjdGlvbkJsb2NrICYgUmVjb3JkPHN0cmluZywgYW55Pik7XG5cbi8qKiBCbG9jayByZXByZXNlbnRpbmcgYW4gJ2lmIGVsc2UnIGNvbmRpdGlvbi4gSWYgbm8gY29uZGl0aW9uIHNwZWNpZmllZCBpdCB3aWxsIGV4ZWN1dGUgc3VjY2VzcyBlbGVtZW50cyBvbmx5ICovXG5leHBvcnQgaW50ZXJmYWNlIElmRWxzZUJsb2NrIGV4dGVuZHMgUnVsZUJsb2NrIHtcbiAgYmxvY2tUeXBlOiAnSUZfRUxTRSc7XG4gIHN1Y2Nlc3NFbGVtZW50czogQWxsQmxvY2tbXTtcbiAgZmFpbHVyZUVsZW1lbnRzOiBBbGxCbG9ja1tdO1xuICBjb25kaXRpb24/OiBUb3BMZXZlbENvbmRpdGlvbjtcbn1cblxuLyoqIEludGVyZmFjZSBvZiBhIHJ1bGVzZXQgYXMgaXQncyBzcGVjaWZpZWQgaW4gdGhlIGpzb24gZmlsZSAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlc2V0IHtcbiAgLyoqIFVuaXF1ZSBpZCBvZiB0aGUgcnVsZXNldCovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBOYW1lIG9mIHRoZSBydWxlc2V0ICovXG4gIG5hbWU6IHN0cmluZztcbiAgLyoqIE9wdGlvbmFsIHJ1bGVzZXQgZGVzY3JpcHRpb24gKi9cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIC8qKiBMaXN0IG9mIHJ1bGVzIGFzc29jaWF0ZWQgdG8gdGhlIHJ1bGVzZXQgKi9cbiAgcnVsZXM6IFJ1bGVbXTtcbiAgLyoqIE9wdGlvbmFsIGRhdGUgcmFuZ2Ugd2hlcmUgdGhlIHJ1bGVzZXQgd2lsbCBiZSBleGVjdXRlZCovXG4gIHZhbGlkaXR5UmFuZ2U/OiB7IGZyb20/OiBzdHJpbmc7IHRvPzogc3RyaW5nIH07XG4gIC8qKlxuICAgKiBDb21wb25lbnRzIGxpbmtlZCB0byB0aGUgcnVsZXNldC4gSWYgcHJlc2VudCB0aGUgcnVsZXNldCB3aWxsIG5vdCBiZSBhY3RpdmUgYnkgZGVmYXVsdC5cbiAgICogJ29yJyBjb25kaXRpb246IElmIGF0IGxlYXN0IG9uZSBjb21wb25lbnQgaGFzIHN1YnNjcmliZWQsIHRoZSBydWxlc2V0IHdpbGwgYmVjb21lIGFjdGl2ZS5cbiAgICogSWYgcHJvdmlkZWQsIHRoZSB7QGxpbmsgbGlua2VkQ29tcG9uZW50fSBwcm9wZXJ0eSB3aWxsIG5vdCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb25cbiAgICovXG4gIGxpbmtlZENvbXBvbmVudHM/OiB7IG9yOiBJdGVtSWRlbnRpZmllcltdIH07XG4gIC8qKlxuICAgKiBDb21wb25lbnQgbGlua2VkIHRvIHRoZSBydWxlc2V0LCBpZiBzZXQgaXQgd2lsbCBkaXNhYmxlIHRoZSBydWxlc2V0IGV4ZWN1dGlvbiBwZXIgZGVmYXVsdCwgd2FpdGluZyB0byBhIHN1YnNjcmlwdGlvblxuICAgKiBAZGVwcmVjYXRlZCBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdjEyLCB1c2Uge0BsaW5rIGxpbmtlZENvbXBvbmVudHN9IGluc3RlYWRcbiAgICovXG4gIGxpbmtlZENvbXBvbmVudD86IEl0ZW1JZGVudGlmaWVyO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VuZ2luZS9zdHJ1Y3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgSXRlbUlkZW50aWZpZXIsXG4gIFJ1bGVzRW5naW5lQWN0aW9uLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBOYXRpdmVUeXBlcyA9IHN0cmluZyB8IGJvb2xlYW4gfCBudW1iZXI7XG4vKiogR2VuZXJpYyBvcGVyYW5kICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmQ8VCBleHRlbmRzIHN0cmluZywgVSBleHRlbmRzIE5hdGl2ZVR5cGVzID0gTmF0aXZlVHlwZXM+IHtcbiAgLyoqIE9wZXJhbmQgdHlwZSAqL1xuICB0eXBlOiBUO1xuICAvKiogU3RhdGljIHZhbHVlICovXG4gIHZhbHVlOiBVO1xufVxuXG4vKiogT3BlcmFuZCBiYXNlZCBvbiBmYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIE9wZXJhbmRGYWN0IGV4dGVuZHMgT3BlcmFuZDwnRkFDVCcsIHN0cmluZz4ge1xuICAvKiogSlNPTlBhdGggdG8gZGVlcCByZWFkIHRoZSBmYWN0IHZhbHVlICovXG4gIHBhdGg/OiBzdHJpbmc7XG59XG5cbi8qKiBDb25kaXRpb24gYXZhaWxhYmxlIG9wZXJhbmQgdHlwZXMgKi9cbmV4cG9ydCB0eXBlIEdlbmVyaWNPcGVyYW5kID0gT3BlcmFuZEZhY3QgfCBPcGVyYW5kPCdSVU5USU1FX0ZBQ1QnLCBzdHJpbmc+IHwgT3BlcmFuZDwnTElURVJBTCc+O1xuXG4vKiogQ29uZGl0aW9uIG9iamVjdCBpbnRlcmZhY2Ugd2l0aCB1bmFyeSBvcGVyYXRvciAqL1xuZXhwb3J0IGludGVyZmFjZSBVbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogT3BlcmF0b3IgKi9cbiAgb3BlcmF0b3I6IHN0cmluZztcbn1cblxuLyoqIENvbmRpdGlvbiBvYmplY3QgaW50ZXJmYWNlICovXG5leHBvcnQgaW50ZXJmYWNlIEJpbmFyeU9wZXJhdGlvbiB7XG4gIC8qKiBMZWZ0IEhhbmQgU2lkZSAqL1xuICBsaHM6IEdlbmVyaWNPcGVyYW5kO1xuICAvKiogUmlnaHQgSGFuZCBTaWRlICovXG4gIHJoczogR2VuZXJpY09wZXJhbmQ7XG4gIC8qKiBPcGVyYXRvciAqL1xuICBvcGVyYXRvcjogc3RyaW5nO1xufVxuXG4vKiogTmVzdGVkIENvbmRpdGlvbiAqL1xuXG5leHBvcnQgdHlwZSBOZXN0ZWRDb25kaXRpb24gPSBVbmFyeU9wZXJhdGlvbiB8IEJpbmFyeU9wZXJhdGlvbiB8IFRvcExldmVsQ29uZGl0aW9uO1xuLyoqIEFsbCBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIEFsbENvbmRpdGlvbnMgPSB7IGFsbDogTmVzdGVkQ29uZGl0aW9uW107IGFueT86IG5ldmVyOyBub3Q/OiBuZXZlciB9O1xuLyoqIEFueSBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIEFueUNvbmRpdGlvbnMgPSB7IGFueTogTmVzdGVkQ29uZGl0aW9uW107IGFsbD86IG5ldmVyOyBub3Q/OiBuZXZlciB9O1xuLyoqIE5vdCBDb25kaXRpb24gKi9cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGlkLWRlbnlsaXN0IC0tIGBhbnlgIGlzIGEgY29uZGl0aW9uYWwga2V5d29yZCBlbmZvcmNlZCBieSB0aGUgcnVsZSBpbnRlcmZhY2VcbmV4cG9ydCB0eXBlIE5vdENvbmRpdGlvbiA9IHsgbm90OiBOZXN0ZWRDb25kaXRpb247IGFsbD86IG5ldmVyOyBhbnk/OiBuZXZlciB9O1xuLyoqIFRvcCBsZXZlbCBDb25kaXRpb24gaW4gdGhlIHJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IHR5cGUgVG9wTGV2ZWxDb25kaXRpb24gPSBBbGxDb25kaXRpb25zIHwgQW55Q29uZGl0aW9ucyB8IE5vdENvbmRpdGlvbiB8IFVuYXJ5T3BlcmF0aW9uIHwgQmluYXJ5T3BlcmF0aW9uO1xuXG4vKiogRXZlbnQgZW1pdHRlZCBpbiBjYXNlIHRoZSBydWxlIGNvbmRpdGlvbiBpcyBwYXNzZWQgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUV2ZW50IHtcbiAgLyoqIFR5cGUgKG9yIG5hbWUpIG9mIHRoZSBldmVudCAqL1xuICB0eXBlOiBzdHJpbmc7XG4gIC8qKiBsaXN0IG9mIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBldmVudCAqL1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG4vKiogQmFzZSBmb3IgdGhlIFJ1bGUgZGVmaW5pdGlvbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSdWxlIHtcbiAgLyoqIFVuaXF1ZSBpZCBhc3NvY2lhdGVkIHRvIGEgcnVsZSovXG4gIGlkOiBzdHJpbmc7XG4gIC8qKiBSdW50aW1lIGZhY3RzIHRoYXQgYXJlIG5lZWRlZCBmb3IgdGhlIHJ1bGUgZXhlY3V0aW9uIChzZW50IGJ5IHRoZSBDTVMpICovXG4gIGlucHV0UnVudGltZUZhY3RzOiBzdHJpbmdbXTtcbiAgLyoqIFJ1bnRpbWUgZmFjdHMgdGhhdCBhcmUgY3JlYXRlZC91cGRhdGVkIGJ5IHRoZSBydWxlKi9cbiAgb3V0cHV0UnVudGltZUZhY3RzOiBzdHJpbmdbXTtcbiAgLyoqIE5hbWUgb2YgdGhlIHJ1bGUqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiByb290RWxlbWVudCBvZiB0aGUgcnVsZSwgdGhhdCBjb250YWlucyBlaXRoZXIgYSBibG9jaywgZWl0aGVyIGFuIGFjdGlvbiBsaXN0ICovXG4gIHJvb3RFbGVtZW50OiBBbGxCbG9jaztcbn1cblxuLyoqXG4gKiBMaXN0IG9mIHBvc3NpYmxlIHR5cGVzIG9mIGFjdGlvbnMgcmVzdWx0ZWQgYXMgb3V0cHV0IG9mIGEgcnVsZSBleGVjdXRpb25cbiAqIEBkZXByZWNhdGVkIHRoZSBhY3Rpb25zIGFyZSBub3cgZGVwZW5kaW5nIG9mIGV4ZWN1dGluZyBtb2R1bGVzXG4gKi9cbmV4cG9ydCB0eXBlIEFjdGlvblR5cGVzID0gJ1NFVF9GQUNUJyB8ICdVUERBVEVfQ09ORklHJyB8ICdVUERBVEVfQVNTRVQnIHwgJ1VQREFURV9MT0NBTElTQVRJT04nIHwgJ1VQREFURV9QTEFDRUhPTERFUic7XG5cbi8qKiBUeXBlcyBhc3NvY2lhdGVkIHRvIHRoZSBjb25kaXRpb24gYmxvY2tzIHRoYXQgYXJlIHN1cHBvcnRlZCAqL1xuZXhwb3J0IHR5cGUgQ29uZGl0aW9uQmxvY2tUeXBlcyA9ICdJRl9FTFNFJztcblxuLyoqIEludGVyZmFjZSBjb21tb24gdG8gYWxsIGVsZW1lbnRzICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVFbGVtZW50IHtcbiAgLyoqIFR5cGUgb2YgdGhlIGVsZW1lbnQqL1xuICBlbGVtZW50VHlwZTogc3RyaW5nO1xufVxuXG4vKiogSW50ZXJmYWNlIGNvbW1vbiB0byBhbGwgYWN0aW9ucyAqL1xuZXhwb3J0IGludGVyZmFjZSBBY3Rpb25CbG9jayBleHRlbmRzIFJ1bGVFbGVtZW50LCBSdWxlc0VuZ2luZUFjdGlvbiB7XG4gIGVsZW1lbnRUeXBlOiAnQUNUSU9OJztcbiAgYWN0aW9uVHlwZTogc3RyaW5nO1xuICB2YWx1ZTogYW55O1xufVxuXG4vKiogSW50ZXJmYWNlIG9mIGFjdGlvbiB0aGF0IHNldHMgb3IgdXBkYXRlcyBhIHRlbXBvcmFyeSBmYWN0ICovXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvblNldFRlbXBvcmFyeUZhY3RCbG9jayBleHRlbmRzIEFjdGlvbkJsb2NrIHtcbiAgYWN0aW9uVHlwZTogJ1NFVF9GQUNUJztcbiAgZmFjdDogc3RyaW5nO1xufVxuXG4vKiogSW50ZXJmYWNlIG9mIGJsb2NrIFJ1bGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUJsb2NrIGV4dGVuZHMgUnVsZUVsZW1lbnQge1xuICBlbGVtZW50VHlwZTogJ1JVTEVfQkxPQ0snO1xuICBibG9ja1R5cGU6IENvbmRpdGlvbkJsb2NrVHlwZXM7XG59XG5cbi8qKiBBbGwgc3VwcG9ydGVkIGJsb2NrcyAoc3VwcG9ydGluZyBuZXN0ZWQgc3RydWN0dXJlKSAqL1xuZXhwb3J0IHR5cGUgQWxsQmxvY2sgPVxuICBJZkVsc2VCbG9ja1xuICB8IChBY3Rpb25CbG9jayAmIFJlY29yZDxzdHJpbmcsIGFueT4pO1xuXG4vKiogQmxvY2sgcmVwcmVzZW50aW5nIGFuICdpZiBlbHNlJyBjb25kaXRpb24uIElmIG5vIGNvbmRpdGlvbiBzcGVjaWZpZWQgaXQgd2lsbCBleGVjdXRlIHN1Y2Nlc3MgZWxlbWVudHMgb25seSAqL1xuZXhwb3J0IGludGVyZmFjZSBJZkVsc2VCbG9jayBleHRlbmRzIFJ1bGVCbG9jayB7XG4gIGJsb2NrVHlwZTogJ0lGX0VMU0UnO1xuICBzdWNjZXNzRWxlbWVudHM6IEFsbEJsb2NrW107XG4gIGZhaWx1cmVFbGVtZW50czogQWxsQmxvY2tbXTtcbiAgY29uZGl0aW9uPzogVG9wTGV2ZWxDb25kaXRpb247XG59XG5cbi8qKiBJbnRlcmZhY2Ugb2YgYSBydWxlc2V0IGFzIGl0J3Mgc3BlY2lmaWVkIGluIHRoZSBqc29uIGZpbGUgKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZXNldCB7XG4gIC8qKiBVbmlxdWUgaWQgb2YgdGhlIHJ1bGVzZXQqL1xuICBpZDogc3RyaW5nO1xuICAvKiogTmFtZSBvZiB0aGUgcnVsZXNldCAqL1xuICBuYW1lOiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBydWxlc2V0IGRlc2NyaXB0aW9uICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKiogTGlzdCBvZiBydWxlcyBhc3NvY2lhdGVkIHRvIHRoZSBydWxlc2V0ICovXG4gIHJ1bGVzOiBSdWxlW107XG4gIC8qKiBPcHRpb25hbCBkYXRlIHJhbmdlIHdoZXJlIHRoZSBydWxlc2V0IHdpbGwgYmUgZXhlY3V0ZWQqL1xuICB2YWxpZGl0eVJhbmdlPzogeyBmcm9tPzogc3RyaW5nOyB0bz86IHN0cmluZyB9O1xuICAvKipcbiAgICogQ29tcG9uZW50cyBsaW5rZWQgdG8gdGhlIHJ1bGVzZXQuIElmIHByZXNlbnQgdGhlIHJ1bGVzZXQgd2lsbCBub3QgYmUgYWN0aXZlIGJ5IGRlZmF1bHQuXG4gICAqICdvcicgY29uZGl0aW9uOiBJZiBhdCBsZWFzdCBvbmUgY29tcG9uZW50IGhhcyBzdWJzY3JpYmVkLCB0aGUgcnVsZXNldCB3aWxsIGJlY29tZSBhY3RpdmUuXG4gICAqL1xuICBsaW5rZWRDb21wb25lbnRzPzogeyBvcjogSXRlbUlkZW50aWZpZXJbXSB9O1xufVxuIl19
@@ -1,3 +1,2 @@
1
- export * from './action.interfaces';
2
1
  export * from './linkable-to-ruleset.interfaces';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsa0NBQWtDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FjdGlvbi5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vbGlua2FibGUtdG8tcnVsZXNldC5pbnRlcmZhY2VzJztcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW50ZXJmYWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saW5rYWJsZS10by1ydWxlc2V0LmludGVyZmFjZXMnO1xuIl19
@@ -46,21 +46,8 @@ export const selectRuleSetsInRange = createSelector(selectAllRulesets, (ruleSets
46
46
  * Returns the rulesets ids which are not onDemand and in the validity range
47
47
  */
48
48
  export const selectActiveRuleSets = createSelector(selectRuleSetsInRange, (ruleSets) => ruleSets
49
- .filter((ruleSet) => (!(ruleSet.linkedComponents?.or?.length || ruleSet.linkedComponent)))
49
+ .filter((ruleSet) => (!ruleSet.linkedComponents?.or?.length))
50
50
  .map((ruleSet) => ruleSet.id));
51
- /**
52
- * Assign rulesetId to a component
53
- * @deprecated It will be removed in v12 with the selector using it
54
- * @param compName
55
- * @param library
56
- * @param ruleSetId
57
- * @param acc
58
- */
59
- function linkRulesetToComponent(compName, library, ruleSetId, acc = {}) {
60
- const configName = computeItemIdentifier(compName, library);
61
- acc[configName] ||= [];
62
- acc[configName].push(ruleSetId);
63
- }
64
51
  /**
65
52
  * Assign component to RulesetIds Map
66
53
  * @param compName
@@ -73,32 +60,12 @@ function linkComponentToRuleset(compName, library, ruleSetId, acc = {}) {
73
60
  acc[ruleSetId] ||= [];
74
61
  acc[ruleSetId].push(configName);
75
62
  }
76
- /**
77
- * Select the map of ruleSet to activate based on the component computed name
78
- * @deprecated use {@link selectComponentsLinkedToRuleset} instead. It will be removed in v12
79
- */
80
- export const selectRuleSetLinkComponents = createSelector(selectRuleSetsInRange, (ruleSets) => ruleSets
81
- .reduce((acc, ruleSet) => {
82
- if ((!ruleSet.linkedComponents?.or || ruleSet.linkedComponents.or.length === 0) && !ruleSet.linkedComponent) {
83
- return acc;
84
- }
85
- if (ruleSet.linkedComponents?.or?.length) {
86
- ruleSet.linkedComponents.or.forEach((linkComp) => {
87
- linkRulesetToComponent(linkComp.name, linkComp.library, ruleSet.id, acc);
88
- });
89
- return acc;
90
- }
91
- if (ruleSet.linkedComponent) {
92
- linkRulesetToComponent(ruleSet.linkedComponent.name, ruleSet.linkedComponent.library, ruleSet.id, acc);
93
- }
94
- return acc;
95
- }, {}));
96
63
  /**
97
64
  * Select the map of ruleSets to activate based on linked components
98
65
  */
99
66
  export const selectComponentsLinkedToRuleset = createSelector(selectRuleSetsInRange, (ruleSets) => ruleSets
100
67
  .reduce((acc, ruleSet) => {
101
- if ((!ruleSet.linkedComponents?.or || ruleSet.linkedComponents.or.length === 0) && !ruleSet.linkedComponent) {
68
+ if (!ruleSet.linkedComponents?.or || ruleSet.linkedComponents.or.length === 0) {
102
69
  return acc;
103
70
  }
104
71
  if (ruleSet.linkedComponents?.or?.length) {
@@ -107,9 +74,6 @@ export const selectComponentsLinkedToRuleset = createSelector(selectRuleSetsInRa
107
74
  });
108
75
  return acc;
109
76
  }
110
- if (ruleSet.linkedComponent) {
111
- linkComponentToRuleset(ruleSet.linkedComponent.name, ruleSet.linkedComponent.library, ruleSet.id, acc.or);
112
- }
113
77
  return acc;
114
78
  }, { or: {} }));
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldHMuc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9ydWxlc2V0cy9ydWxlc2V0cy5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixjQUFjLEdBQ2YsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLHFCQUFxQixHQUN0QixNQUFNLFdBQVcsQ0FBQztBQUluQixPQUFPLEVBQ0wsZUFBZSxHQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxtQkFBbUIsR0FFcEIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0FBRTdGLDRCQUE0QjtBQUM1QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBZ0IsbUJBQW1CLENBQUMsQ0FBQztBQUU3Rix1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFaEYsaURBQWlEO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUUxRixzQ0FBc0M7QUFDdEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRXBGLHNDQUFzQztBQUN0QyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxjQUFjLENBQUMsbUJBQW1CLEVBQUUs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LFxuICBjcmVhdGVTZWxlY3Rvcixcbn0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgY29tcHV0ZUl0ZW1JZGVudGlmaWVyLFxufSBmcm9tICdAbzNyL2NvcmUnO1xuaW1wb3J0IHR5cGUge1xuICBSdWxlc2V0LFxufSBmcm9tICcuLi8uLi9lbmdpbmUnO1xuaW1wb3J0IHtcbiAgcnVsZXNldHNBZGFwdGVyLFxufSBmcm9tICcuL3J1bGVzZXRzLnJlZHVjZXInO1xuaW1wb3J0IHtcbiAgUlVMRVNFVFNfU1RPUkVfTkFNRSxcbiAgUnVsZXNldHNTdGF0ZSxcbn0gZnJvbSAnLi9ydWxlc2V0cy5zdGF0ZSc7XG5cbmNvbnN0IHsgc2VsZWN0SWRzLCBzZWxlY3RFbnRpdGllcywgc2VsZWN0QWxsLCBzZWxlY3RUb3RhbCB9ID0gcnVsZXNldHNBZGFwdGVyLmdldFNlbGVjdG9ycygpO1xuXG4vKiogU2VsZWN0IFJ1bGVzZXRzIFN0YXRlICovXG5leHBvcnQgY29uc3Qgc2VsZWN0UnVsZXNldHNTdGF0ZSA9IGNyZWF0ZUZlYXR1cmVTZWxlY3RvcjxSdWxlc2V0c1N0YXRlPihSVUxFU0VUU19TVE9SRV9OQU1FKTtcblxuLyoqIFNlbGVjdCB0aGUgYXJyYXkgb2YgUnVsZXNldHMgaWRzICovXG5leHBvcnQgY29uc3Qgc2VsZWN0UnVsZXNldHNJZHMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RSdWxlc2V0c1N0YXRlLCBzZWxlY3RJZHMpO1xuXG4vKiogU2VsZWN0IHRoZSBhcnJheSBvZiBSdWxlc2V0cyAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdEFsbFJ1bGVzZXRzID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0UnVsZXNldHNTdGF0ZSwgc2VsZWN0QWxsKTtcblxuLyoqIFNlbGVjdCB0aGUgZGljdGlvbmFyeSBvZiBSdWxlc2V0cyBlbnRpdGllcyAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJ1bGVzZXRzRW50aXRpZXMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RSdWxlc2V0c1N0YXRlLCBzZWxlY3RFbnRpdGllcyk7XG5cbi8qKiBTZWxlY3QgdGhlIHRvdGFsIFJ1bGVzZXRzIGNvdW50ICovXG5leHBvcnQgY29uc3Qgc2VsZWN0UnVsZXNldHNUb3RhbCA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFJ1bGVzZXRzU3RhdGUsIHNlbGVjdFRvdGFsKTtcblxuLyoqIFNlbGVjdCB0aGUgc3RvcmUgcGVuZGluZyBzdGF0dXMgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RSdWxlc2V0c1N0b3JlUGVuZGluZ1N0YXR1cyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFJ1bGVzZXRzU3RhdGUsIChzdGF0ZSkgPT4gc3RhdGUuaXNQZW5kaW5nIHx8IGZhbHNlKTtcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSB2YWxpZCBkYXRlXG4gKiBAcGFyYW0gZFxuICovXG5jb25zdCBpc1ZhbGlkRGF0ZSA9IChkOiBhbnkpID0+ICFOdW1iZXIuaXNOYU4oZCkgJiYgZCBpbnN0YW5jZW9mIERhdGU7XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcnVsZXNldHMgd2hpY2ggYXJlIGluIHRoZSB2YWxpZGl0eSByYW5nZSwgaWYgcHJvdmlkZWRcbiAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJ1bGVTZXRzSW5SYW5nZSA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RBbGxSdWxlc2V0cyxcbiAgKHJ1bGVTZXRzKSA9PiBydWxlU2V0cy5maWx0ZXIoKHJ1bGVTZXQ6IFJ1bGVzZXQpID0+IHtcbiAgICBjb25zdCB2YWxpZGl0eSA9IHJ1bGVTZXQudmFsaWRpdHlSYW5nZTtcbiAgICBpZiAoIXZhbGlkaXR5IHx8ICghdmFsaWRpdHkuZnJvbSAmJiAhdmFsaWRpdHkudG8pKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBmcm9tID0gdmFsaWRpdHkuZnJvbSAmJiBuZXcgRGF0ZSh2YWxpZGl0eS5mcm9tKTtcbiAgICBjb25zdCB0byA9IHZhbGlkaXR5LnRvICYmIG5ldyBEYXRlKHZhbGlkaXR5LnRvKTtcblxuICAgIGlmICgodG8gJiYgIWlzVmFsaWREYXRlKHRvKSkgfHwgKGZyb20gJiYgIWlzVmFsaWREYXRlKGZyb20pKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCB0aW1lID0gRGF0ZS5ub3coKTtcbiAgICBpZiAodG8gJiYgZnJvbSkge1xuICAgICAgcmV0dXJuIGZyb20uZ2V0VGltZSgpIDw9IHRpbWUgJiYgdG8uZ2V0VGltZSgpID49IHRpbWU7XG4gICAgfVxuXG4gICAgaWYgKGZyb20pIHtcbiAgICAgIHJldHVybiBmcm9tLmdldFRpbWUoKSA8PSB0aW1lO1xuICAgIH1cbiAgICByZXR1cm4gdG8gJiYgdG8uZ2V0VGltZSgpID49IHRpbWU7XG4gIH0pXG4pO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHJ1bGVzZXRzIGlkcyB3aGljaCBhcmUgbm90IG9uRGVtYW5kIGFuZCBpbiB0aGUgdmFsaWRpdHkgcmFuZ2VcbiAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdEFjdGl2ZVJ1bGVTZXRzID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdFJ1bGVTZXRzSW5SYW5nZSxcbiAgKHJ1bGVTZXRzKSA9PiBydWxlU2V0c1xuICAgIC5maWx0ZXIoKHJ1bGVTZXQ6IFJ1bGVzZXQpID0+ICghKHJ1bGVTZXQubGlua2VkQ29tcG9uZW50cz8ub3I/Lmxlbmd0aCB8fCBydWxlU2V0LmxpbmtlZENvbXBvbmVudCkpKVxuICAgIC5tYXAoKHJ1bGVTZXQ6IFJ1bGVzZXQpID0+IHJ1bGVTZXQuaWQpKTtcblxuLyoqXG4gKiBBc3NpZ24gcnVsZXNldElkIHRvIGEgY29tcG9uZW50XG4gKiBAZGVwcmVjYXRlZCBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gdjEyIHdpdGggdGhlIHNlbGVjdG9yIHVzaW5nIGl0XG4gKiBAcGFyYW0gY29tcE5hbWVcbiAqIEBwYXJhbSBsaWJyYXJ5XG4gKiBAcGFyYW0gcnVsZVNldElkXG4gKiBAcGFyYW0gYWNjXG4gKi9cbmZ1bmN0aW9uIGxpbmtSdWxlc2V0VG9Db21wb25lbnQoY29tcE5hbWU6IHN0cmluZywgbGlicmFyeTogc3RyaW5nLCBydWxlU2V0SWQ6IHN0cmluZywgYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fSkge1xuICBjb25zdCBjb25maWdOYW1lID0gY29tcHV0ZUl0ZW1JZGVudGlmaWVyKGNvbXBOYW1lLCBsaWJyYXJ5KTtcbiAgYWNjW2NvbmZpZ05hbWVdIHx8PSBbXTtcbiAgYWNjW2NvbmZpZ05hbWVdLnB1c2gocnVsZVNldElkKTtcbn1cblxuLyoqXG4gKiBBc3NpZ24gY29tcG9uZW50IHRvIFJ1bGVzZXRJZHMgTWFwXG4gKiBAcGFyYW0gY29tcE5hbWVcbiAqIEBwYXJhbSBsaWJyYXJ5XG4gKiBAcGFyYW0gcnVsZVNldElkXG4gKiBAcGFyYW0gYWNjXG4gKi9cbmZ1bmN0aW9uIGxpbmtDb21wb25lbnRUb1J1bGVzZXQoY29tcE5hbWU6IHN0cmluZywgbGlicmFyeTogc3RyaW5nLCBydWxlU2V0SWQ6IHN0cmluZywgYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7fSkge1xuICBjb25zdCBjb25maWdOYW1lID0gY29tcHV0ZUl0ZW1JZGVudGlmaWVyKGNvbXBOYW1lLCBsaWJyYXJ5KTtcbiAgYWNjW3J1bGVTZXRJZF0gfHw9IFtdO1xuICBhY2NbcnVsZVNldElkXS5wdXNoKGNvbmZpZ05hbWUpO1xufVxuXG4vKipcbiAqIFNlbGVjdCB0aGUgbWFwIG9mIHJ1bGVTZXQgdG8gYWN0aXZhdGUgYmFzZWQgb24gdGhlIGNvbXBvbmVudCBjb21wdXRlZCBuYW1lXG4gKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIHNlbGVjdENvbXBvbmVudHNMaW5rZWRUb1J1bGVzZXR9IGluc3RlYWQuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTJcbiAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJ1bGVTZXRMaW5rQ29tcG9uZW50cyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RSdWxlU2V0c0luUmFuZ2UsXG4gIChydWxlU2V0cykgPT5cbiAgICBydWxlU2V0c1xuICAgICAgLnJlZHVjZSgoYWNjOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4sIHJ1bGVTZXQ6IFJ1bGVzZXQpID0+IHtcbiAgICAgICAgaWYgKCghcnVsZVNldC5saW5rZWRDb21wb25lbnRzPy5vciB8fCBydWxlU2V0LmxpbmtlZENvbXBvbmVudHMub3IubGVuZ3RoID09PSAwKSAmJiAhcnVsZVNldC5saW5rZWRDb21wb25lbnQpIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG4gICAgICAgIGlmIChydWxlU2V0LmxpbmtlZENvbXBvbmVudHM/Lm9yPy5sZW5ndGgpIHtcbiAgICAgICAgICBydWxlU2V0LmxpbmtlZENvbXBvbmVudHMub3IuZm9yRWFjaCgobGlua0NvbXApID0+IHtcbiAgICAgICAgICAgIGxpbmtSdWxlc2V0VG9Db21wb25lbnQobGlua0NvbXAubmFtZSwgbGlua0NvbXAubGlicmFyeSwgcnVsZVNldC5pZCwgYWNjKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG4gICAgICAgIGlmIChydWxlU2V0LmxpbmtlZENvbXBvbmVudCkge1xuICAgICAgICAgIGxpbmtSdWxlc2V0VG9Db21wb25lbnQocnVsZVNldC5saW5rZWRDb21wb25lbnQubmFtZSwgcnVsZVNldC5saW5rZWRDb21wb25lbnQubGlicmFyeSwgcnVsZVNldC5pZCwgYWNjKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pXG4pO1xuXG4vKipcbiAqIFNlbGVjdCB0aGUgbWFwIG9mIHJ1bGVTZXRzIHRvIGFjdGl2YXRlIGJhc2VkIG9uIGxpbmtlZCBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RDb21wb25lbnRzTGlua2VkVG9SdWxlc2V0ID0gY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdFJ1bGVTZXRzSW5SYW5nZSxcbiAgKHJ1bGVTZXRzKSA9PlxuICAgIHJ1bGVTZXRzXG4gICAgICAucmVkdWNlKChhY2M6IHsgb3I6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSB9LCBydWxlU2V0OiBSdWxlc2V0KSA9PiB7XG4gICAgICAgIGlmICgoIXJ1bGVTZXQubGlua2VkQ29tcG9uZW50cz8ub3IgfHwgcnVsZVNldC5saW5rZWRDb21wb25lbnRzLm9yLmxlbmd0aCA9PT0gMCkgJiYgIXJ1bGVTZXQubGlua2VkQ29tcG9uZW50KSB7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgICBpZiAocnVsZVNldC5saW5rZWRDb21wb25lbnRzPy5vcj8ubGVuZ3RoKSB7XG4gICAgICAgICAgcnVsZVNldC5saW5rZWRDb21wb25lbnRzLm9yLmZvckVhY2goKGxpbmtDb21wKSA9PiB7XG4gICAgICAgICAgICBsaW5rQ29tcG9uZW50VG9SdWxlc2V0KGxpbmtDb21wLm5hbWUsIGxpbmtDb21wLmxpYnJhcnksIHJ1bGVTZXQuaWQsIGFjYy5vcik7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuICAgICAgICBpZiAocnVsZVNldC5saW5rZWRDb21wb25lbnQpIHtcbiAgICAgICAgICBsaW5rQ29tcG9uZW50VG9SdWxlc2V0KHJ1bGVTZXQubGlua2VkQ29tcG9uZW50Lm5hbWUsIHJ1bGVTZXQubGlua2VkQ29tcG9uZW50LmxpYnJhcnksIHJ1bGVTZXQuaWQsIGFjYy5vcik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHsgb3I6IHt9IH0pXG4pO1xuIl19
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVsZXNldHMuc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N0b3Jlcy9ydWxlc2V0cy9ydWxlc2V0cy5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixjQUFjLEdBQ2YsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNMLHFCQUFxQixHQUN0QixNQUFNLFdBQVcsQ0FBQztBQUluQixPQUFPLEVBQ0wsZUFBZSxHQUNoQixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFDTCxtQkFBbUIsR0FFcEIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEdBQUcsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO0FBRTdGLDRCQUE0QjtBQUM1QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBZ0IsbUJBQW1CLENBQUMsQ0FBQztBQUU3Rix1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBRWhGLG1DQUFtQztBQUNuQyxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFaEYsaURBQWlEO0FBQ2pELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGNBQWMsQ0FBQyxtQkFBbUIsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUUxRixzQ0FBc0M7QUFDdEMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRXBGLHNDQUFzQztBQUN0QyxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxjQUFjLENBQUMsbUJBQW1CLEVBQUUs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QyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksT0FBTyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUUsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ3pDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDL0Msc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNyZWF0ZUZlYXR1cmVTZWxlY3RvcixcbiAgY3JlYXRlU2VsZWN0b3IsXG59IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7XG4gIGNvbXB1dGVJdGVtSWRlbnRpZmllcixcbn0gZnJvbSAnQG8zci9jb3JlJztcbmltcG9ydCB0eXBlIHtcbiAgUnVsZXNldCxcbn0gZnJvbSAnLi4vLi4vZW5naW5lJztcbmltcG9ydCB7XG4gIHJ1bGVzZXRzQWRhcHRlcixcbn0gZnJvbSAnLi9ydWxlc2V0cy5yZWR1Y2VyJztcbmltcG9ydCB7XG4gIFJVTEVTRVRTX1NUT1JFX05BTUUsXG4gIFJ1bGVzZXRzU3RhdGUsXG59IGZyb20gJy4vcnVsZXNldHMuc3RhdGUnO1xuXG5jb25zdCB7IHNlbGVjdElkcywgc2VsZWN0RW50aXRpZXMsIHNlbGVjdEFsbCwgc2VsZWN0VG90YWwgfSA9IHJ1bGVzZXRzQWRhcHRlci5nZXRTZWxlY3RvcnMoKTtcblxuLyoqIFNlbGVjdCBSdWxlc2V0cyBTdGF0ZSAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJ1bGVzZXRzU3RhdGUgPSBjcmVhdGVGZWF0dXJlU2VsZWN0b3I8UnVsZXNldHNTdGF0ZT4oUlVMRVNFVFNfU1RPUkVfTkFNRSk7XG5cbi8qKiBTZWxlY3QgdGhlIGFycmF5IG9mIFJ1bGVzZXRzIGlkcyAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJ1bGVzZXRzSWRzID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0UnVsZXNldHNTdGF0ZSwgc2VsZWN0SWRzKTtcblxuLyoqIFNlbGVjdCB0aGUgYXJyYXkgb2YgUnVsZXNldHMgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RBbGxSdWxlc2V0cyA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdFJ1bGVzZXRzU3RhdGUsIHNlbGVjdEFsbCk7XG5cbi8qKiBTZWxlY3QgdGhlIGRpY3Rpb25hcnkgb2YgUnVsZXNldHMgZW50aXRpZXMgKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RSdWxlc2V0c0VudGl0aWVzID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0UnVsZXNldHNTdGF0ZSwgc2VsZWN0RW50aXRpZXMpO1xuXG4vKiogU2VsZWN0IHRoZSB0b3RhbCBSdWxlc2V0cyBjb3VudCAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdFJ1bGVzZXRzVG90YWwgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RSdWxlc2V0c1N0YXRlLCBzZWxlY3RUb3RhbCk7XG5cbi8qKiBTZWxlY3QgdGhlIHN0b3JlIHBlbmRpbmcgc3RhdHVzICovXG5leHBvcnQgY29uc3Qgc2VsZWN0UnVsZXNldHNTdG9yZVBlbmRpbmdTdGF0dXMgPSBjcmVhdGVTZWxlY3RvcihzZWxlY3RSdWxlc2V0c1N0YXRlLCAoc3RhdGUpID0+IHN0YXRlLmlzUGVuZGluZyB8fCBmYWxzZSk7XG5cbi8qKlxuICogQ2hlY2sgaWYgdGhlIGdpdmVuIHZhbHVlIGlzIGEgdmFsaWQgZGF0ZVxuICogQHBhcmFtIGRcbiAqL1xuY29uc3QgaXNWYWxpZERhdGUgPSAoZDogYW55KSA9PiAhTnVtYmVyLmlzTmFOKGQpICYmIGQgaW5zdGFuY2VvZiBEYXRlO1xuXG4vKipcbiAqIFJldHVybnMgdGhlIHJ1bGVzZXRzIHdoaWNoIGFyZSBpbiB0aGUgdmFsaWRpdHkgcmFuZ2UsIGlmIHByb3ZpZGVkXG4gKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RSdWxlU2V0c0luUmFuZ2UgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0QWxsUnVsZXNldHMsXG4gIChydWxlU2V0cykgPT4gcnVsZVNldHMuZmlsdGVyKChydWxlU2V0OiBSdWxlc2V0KSA9PiB7XG4gICAgY29uc3QgdmFsaWRpdHkgPSBydWxlU2V0LnZhbGlkaXR5UmFuZ2U7XG4gICAgaWYgKCF2YWxpZGl0eSB8fCAoIXZhbGlkaXR5LmZyb20gJiYgIXZhbGlkaXR5LnRvKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZnJvbSA9IHZhbGlkaXR5LmZyb20gJiYgbmV3IERhdGUodmFsaWRpdHkuZnJvbSk7XG4gICAgY29uc3QgdG8gPSB2YWxpZGl0eS50byAmJiBuZXcgRGF0ZSh2YWxpZGl0eS50byk7XG5cbiAgICBpZiAoKHRvICYmICFpc1ZhbGlkRGF0ZSh0bykpIHx8IChmcm9tICYmICFpc1ZhbGlkRGF0ZShmcm9tKSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgdGltZSA9IERhdGUubm93KCk7XG4gICAgaWYgKHRvICYmIGZyb20pIHtcbiAgICAgIHJldHVybiBmcm9tLmdldFRpbWUoKSA8PSB0aW1lICYmIHRvLmdldFRpbWUoKSA+PSB0aW1lO1xuICAgIH1cblxuICAgIGlmIChmcm9tKSB7XG4gICAgICByZXR1cm4gZnJvbS5nZXRUaW1lKCkgPD0gdGltZTtcbiAgICB9XG4gICAgcmV0dXJuIHRvICYmIHRvLmdldFRpbWUoKSA+PSB0aW1lO1xuICB9KVxuKTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBydWxlc2V0cyBpZHMgd2hpY2ggYXJlIG5vdCBvbkRlbWFuZCBhbmQgaW4gdGhlIHZhbGlkaXR5IHJhbmdlXG4gKi9cbmV4cG9ydCBjb25zdCBzZWxlY3RBY3RpdmVSdWxlU2V0cyA9IGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RSdWxlU2V0c0luUmFuZ2UsXG4gIChydWxlU2V0cykgPT4gcnVsZVNldHNcbiAgICAuZmlsdGVyKChydWxlU2V0OiBSdWxlc2V0KSA9PiAoIXJ1bGVTZXQubGlua2VkQ29tcG9uZW50cz8ub3I/Lmxlbmd0aCkpXG4gICAgLm1hcCgocnVsZVNldDogUnVsZXNldCkgPT4gcnVsZVNldC5pZCkpO1xuXG4vKipcbiAqIEFzc2lnbiBjb21wb25lbnQgdG8gUnVsZXNldElkcyBNYXBcbiAqIEBwYXJhbSBjb21wTmFtZVxuICogQHBhcmFtIGxpYnJhcnlcbiAqIEBwYXJhbSBydWxlU2V0SWRcbiAqIEBwYXJhbSBhY2NcbiAqL1xuZnVuY3Rpb24gbGlua0NvbXBvbmVudFRvUnVsZXNldChjb21wTmFtZTogc3RyaW5nLCBsaWJyYXJ5OiBzdHJpbmcsIHJ1bGVTZXRJZDogc3RyaW5nLCBhY2M6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHt9KSB7XG4gIGNvbnN0IGNvbmZpZ05hbWUgPSBjb21wdXRlSXRlbUlkZW50aWZpZXIoY29tcE5hbWUsIGxpYnJhcnkpO1xuICBhY2NbcnVsZVNldElkXSB8fD0gW107XG4gIGFjY1tydWxlU2V0SWRdLnB1c2goY29uZmlnTmFtZSk7XG59XG5cbi8qKlxuICogU2VsZWN0IHRoZSBtYXAgb2YgcnVsZVNldHMgdG8gYWN0aXZhdGUgYmFzZWQgb24gbGlua2VkIGNvbXBvbmVudHNcbiAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdENvbXBvbmVudHNMaW5rZWRUb1J1bGVzZXQgPSBjcmVhdGVTZWxlY3RvcihcbiAgc2VsZWN0UnVsZVNldHNJblJhbmdlLFxuICAocnVsZVNldHMpID0+XG4gICAgcnVsZVNldHNcbiAgICAgIC5yZWR1Y2UoKGFjYzogeyBvcjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9IH0sIHJ1bGVTZXQ6IFJ1bGVzZXQpID0+IHtcbiAgICAgICAgaWYgKCFydWxlU2V0LmxpbmtlZENvbXBvbmVudHM/Lm9yIHx8IHJ1bGVTZXQubGlua2VkQ29tcG9uZW50cy5vci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG4gICAgICAgIGlmIChydWxlU2V0LmxpbmtlZENvbXBvbmVudHM/Lm9yPy5sZW5ndGgpIHtcbiAgICAgICAgICBydWxlU2V0LmxpbmtlZENvbXBvbmVudHMub3IuZm9yRWFjaCgobGlua0NvbXApID0+IHtcbiAgICAgICAgICAgIGxpbmtDb21wb25lbnRUb1J1bGVzZXQobGlua0NvbXAubmFtZSwgbGlua0NvbXAubGlicmFyeSwgcnVsZVNldC5pZCwgYWNjLm9yKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7IG9yOiB7fSB9KVxuKTtcbiJdfQ==