ngx-mask 14.2.1 → 14.2.2

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.
@@ -68,6 +68,10 @@ export class MaskService extends MaskApplierService {
68
68
  ? this.shiftTypedSymbols(actualResult.join(''))
69
69
  : inputValue;
70
70
  }
71
+ if (this.showMaskTyped) {
72
+ // eslint-disable-next-line no-param-reassign
73
+ inputValue = this.removeMask(inputValue);
74
+ }
71
75
  newInputValue = Boolean(newInputValue) && newInputValue.length ? newInputValue : inputValue;
72
76
  const result = super.applyMask(newInputValue, maskExpression, position, justPasted, backspaced, cb);
73
77
  this.actualValue = this.getActualValue(result);
@@ -393,4 +397,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
393
397
  type: Inject,
394
398
  args: [config]
395
399
  }] }, { type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
396
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hc2stbGliL3NyYy9saWIvbWFzay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUc1RCxNQUFNLE9BQU8sV0FBWSxTQUFRLGtCQUFrQjtJQXlCbEQsWUFDMkIsUUFBYSxFQUNKLE9BQWdCLEVBQzNDLFdBQXVCLEVBQ3ZCLFNBQW9CO1FBRTVCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUxXLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDSixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQzNDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUE1QmIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFFckMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEIseUJBQW9CLEdBQVcsR0FBRyxDQUFDO1FBRTVDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRS9CLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBRXBDOzs7V0FHRztRQUNJLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUVyQyxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVNqQyxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RCLFNBQVMsQ0FDeEIsVUFB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QUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUM1QyxDQUFDO0lBRU8sZUFBZSxDQUFDLG1CQUEyQixFQUFFLGNBQXNCO1FBQzFFLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN6QyxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQixDQUFDOzt3R0EvZFcsV0FBVyxrQkEwQmQsUUFBUSxhQUNSLE1BQU07NEdBM0JILFdBQVc7MkZBQVgsV0FBVztrQkFEdkIsVUFBVTs7MEJBMkJSLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0LCBJbmplY3RhYmxlLCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgY29uZmlnLCBJQ29uZmlnIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgTWFza0FwcGxpZXJTZXJ2aWNlIH0gZnJvbSAnLi9tYXNrLWFwcGxpZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNYXNrU2VydmljZSBleHRlbmRzIE1hc2tBcHBsaWVyU2VydmljZSB7XG5cdHB1YmxpYyBvdmVycmlkZSBtYXNrRXhwcmVzc2lvbjogc3RyaW5nID0gJyc7XG5cblx0cHVibGljIGlzTnVtYmVyVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRwdWJsaWMgb3ZlcnJpZGUgcGxhY2VIb2xkZXJDaGFyYWN0ZXI6IHN0cmluZyA9ICdfJztcblxuXHRwdWJsaWMgbWFza0lzU2hvd246IHN0cmluZyA9ICcnO1xuXG5cdHB1YmxpYyBzZWxTdGFydDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cblx0cHVibGljIHNlbEVuZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cblx0LyoqXG5cdCAqIFdoZXRoZXIgd2UgYXJlIGN1cnJlbnRseSBpbiB3cml0ZVZhbHVlIGZ1bmN0aW9uLCBpbiB0aGlzIGNhc2Ugd2hlbiBhcHBseWluZyB0aGUgbWFzayB3ZSBkb24ndCB3YW50IHRvIHRyaWdnZXIgb25DaGFuZ2UgZnVuY3Rpb24sXG5cdCAqIHNpbmNlIHdyaXRlVmFsdWUgc2hvdWxkIGJlIGEgb25lIHdheSBvbmx5IHByb2Nlc3Mgb2Ygd3JpdGluZyB0aGUgRE9NIHZhbHVlIGJhc2VkIG9uIHRoZSBBbmd1bGFyIG1vZGVsIHZhbHVlLlxuXHQgKi9cblx0cHVibGljIHdyaXRpbmdWYWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdHB1YmxpYyBtYXNrQ2hhbmdlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdHB1YmxpYyB0cmlnZ2VyT25NYXNrQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG5cblx0cHVibGljIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG5cblx0cHVibGljIGNvbnN0cnVjdG9yKFxuXHRcdEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcblx0XHRASW5qZWN0KGNvbmZpZykgcHJvdGVjdGVkIG92ZXJyaWRlIF9jb25maWc6IElDb25maWcsXG5cdFx0cHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZixcblx0XHRwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuXHQpIHtcblx0XHRzdXBlcihfY29uZmlnKTtcblx0fVxuXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG5cdHB1YmxpYyBvdmVycmlkZSBhcHBseU1hc2soXG5cdFx0aW5wdXRWYWx1ZTogc3RyaW5nLFxuXHRcdG1hc2tFeHByZXNzaW9uOiBzdHJpbmcsXG5cdFx0cG9zaXRpb246IG51bWJlciA9IDAsXG5cdFx0anVzdFBhc3RlZCA9IGZhbHNlLFxuXHRcdGJhY2tzcGFjZWQgPSBmYWxzZSxcblx0XHRjYjogRnVuY3Rpb24gPSAoKSA9PiB7fSxcblx0KTogc3RyaW5nIHtcblx0XHRpZiAoIW1hc2tFeHByZXNzaW9uKSB7XG5cdFx0XHRyZXR1cm4gaW5wdXRWYWx1ZSAhPT0gdGhpcy5hY3R1YWxWYWx1ZSA/IHRoaXMuYWN0dWFsVmFsdWUgOiBpbnB1dFZhbHVlO1xuXHRcdH1cblx0XHR0aGlzLm1hc2tJc1Nob3duID0gdGhpcy5zaG93TWFza1R5cGVkID8gdGhpcy5zaG93TWFza0luSW5wdXQoKSA6ICcnO1xuXHRcdGlmICh0aGlzLm1hc2tFeHByZXNzaW9uID09PSAnSVAnICYmIHRoaXMuc2hvd01hc2tUeXBlZCkge1xuXHRcdFx0dGhpcy5tYXNrSXNTaG93biA9IHRoaXMuc2hvd01hc2tJbklucHV0KGlucHV0VmFsdWUgfHwgJyMnKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMubWFza0V4cHJlc3Npb24gPT09ICdDUEZfQ05QSicgJiYgdGhpcy5zaG93TWFza1R5cGVkKSB7XG5cdFx0XHR0aGlzLm1hc2tJc1Nob3duID0gdGhpcy5zaG93TWFza0luSW5wdXQoaW5wdXRWYWx1ZSB8fCAnIycpO1xuXHRcdH1cblx0XHRpZiAoIWlucHV0VmFsdWUgJiYgdGhpcy5zaG93TWFza1R5cGVkKSB7XG5cdFx0XHR0aGlzLmZvcm1Db250cm9sUmVzdWx0KHRoaXMucHJlZml4KTtcblx0XHRcdHJldHVybiB0aGlzLnByZWZpeCArIHRoaXMubWFza0lzU2hvd247XG5cdFx0fVxuXHRcdGNvbnN0IGdldFN5bWJvbDogc3RyaW5nIHwgdW5kZWZpbmVkID1cblx0XHRcdCEhaW5wdXRWYWx1ZSAmJiB0eXBlb2YgdGhpcy5zZWxTdGFydCA9PT0gJ251bWJlcicgPyBpbnB1dFZhbHVlW3RoaXMuc2VsU3RhcnRdIDogJyc7XG5cdFx0bGV0IG5ld0lucHV0VmFsdWUgPSAnJztcblx0XHRpZiAodGhpcy5oaWRkZW5JbnB1dCAhPT0gdW5kZWZpbmVkICYmICF0aGlzLndyaXRpbmdWYWx1ZSkge1xuXHRcdFx0bGV0IGFjdHVhbFJlc3VsdDogc3RyaW5nW10gPSB0aGlzLmFjdHVhbFZhbHVlLnNwbGl0KCcnKTtcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlICBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLWV4cHJlc3Npb25zXG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuXHRcdFx0aW5wdXRWYWx1ZSAhPT0gJycgJiYgYWN0dWFsUmVzdWx0Lmxlbmd0aFxuXHRcdFx0XHQ/IHR5cGVvZiB0aGlzLnNlbFN0YXJ0ID09PSAnbnVtYmVyJyAmJiB0eXBlb2YgdGhpcy5zZWxFbmQgPT09ICdudW1iZXInXG5cdFx0XHRcdFx0PyBpbnB1dFZhbHVlLmxlbmd0aCA+IGFjdHVhbFJlc3VsdC5sZW5ndGhcblx0XHRcdFx0XHRcdD8gYWN0dWFsUmVzdWx0LnNwbGljZSh0aGlzLnNlbFN0YXJ0LCAwLCBnZXRTeW1ib2whKVxuXHRcdFx0XHRcdFx0OiBpbnB1dFZhbHVlLmxlbmd0aCA8IGFjdHVhbFJlc3VsdC5sZW5ndGhcblx0XHRcdFx0XHRcdD8gYWN0dWFsUmVzdWx0Lmxlbmd0aCAtIGlucHV0VmFsdWUubGVuZ3RoID09PSAxXG5cdFx0XHRcdFx0XHRcdD8gYWN0dWFsUmVzdWx0LnNwbGljZSh0aGlzLnNlbFN0YXJ0IC0gMSwgMSlcblx0XHRcdFx0XHRcdFx0OiBhY3R1YWxSZXN1bHQuc3BsaWNlKHRoaXMuc2VsU3RhcnQsIHRoaXMuc2VsRW5kIC0gdGhpcy5zZWxTdGFydClcblx0XHRcdFx0XHRcdDogbnVsbFxuXHRcdFx0XHRcdDogbnVsbFxuXHRcdFx0XHQ6IChhY3R1YWxSZXN1bHQgPSBbXSk7XG5cdFx0XHRpZiAodGhpcy5zaG93TWFza1R5cGVkKSB7XG5cdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wYXJhbS1yZWFzc2lnblxuXHRcdFx0XHRpbnB1dFZhbHVlID0gdGhpcy5yZW1vdmVNYXNrKGlucHV0VmFsdWUpO1xuXHRcdFx0fVxuXHRcdFx0Ly8gZXNsaW50LWVuYWJsZSAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuXHRcdFx0bmV3SW5wdXRWYWx1ZSA9XG5cdFx0XHRcdHRoaXMuYWN0dWFsVmFsdWUubGVuZ3RoICYmIGFjdHVhbFJlc3VsdC5sZW5ndGggPD0gaW5wdXRWYWx1ZS5sZW5ndGhcblx0XHRcdFx0XHQ/IHRoaXMuc2hpZnRUeXBlZFN5bWJvbHMoYWN0dWFsUmVzdWx0LmpvaW4oJycpKVxuXHRcdFx0XHRcdDogaW5wdXRWYWx1ZTtcblx0XHR9XG5cdFx0bmV3SW5wdXRWYWx1ZSA9IEJvb2xlYW4obmV3SW5wdXRWYWx1ZSkgJiYgbmV3SW5wdXRWYWx1ZS5sZW5ndGggPyBuZXdJbnB1dFZhbHVlIDogaW5wdXRWYWx1ZTtcblxuXHRcdGNvbnN0IHJlc3VsdDogc3RyaW5nID0gc3VwZXIuYXBwbHlNYXNrKFxuXHRcdFx0bmV3SW5wdXRWYWx1ZSxcblx0XHRcdG1hc2tFeHByZXNzaW9uLFxuXHRcdFx0cG9zaXRpb24sXG5cdFx0XHRqdXN0UGFzdGVkLFxuXHRcdFx0YmFja3NwYWNlZCxcblx0XHRcdGNiLFxuXHRcdCk7XG5cblx0XHR0aGlzLmFjdHVhbFZhbHVlID0gdGhpcy5nZXRBY3R1YWxWYWx1ZShyZXN1bHQpO1xuXHRcdC8vIGhhbmRsZSBzb21lIHNlcGFyYXRvciBpbXBsaWNhdGlvbnM6XG5cdFx0Ly8gYS4pIGFkanVzdCBkZWNpbWFsTWFya2VyIGRlZmF1bHQgKC4gLT4gLCkgaWYgdGhvdXNhbmRTZXBhcmF0b3IgaXMgYSBkb3Rcblx0XHRpZiAodGhpcy50aG91c2FuZFNlcGFyYXRvciA9PT0gJy4nICYmIHRoaXMuZGVjaW1hbE1hcmtlciA9PT0gJy4nKSB7XG5cdFx0XHR0aGlzLmRlY2ltYWxNYXJrZXIgPSAnLCc7XG5cdFx0fVxuXG5cdFx0Ly8gYikgcmVtb3ZlIGRlY2ltYWwgbWFya2VyIGZyb20gbGlzdCBvZiBzcGVjaWFsIGNoYXJhY3RlcnMgdG8gbWFza1xuXHRcdGlmICh0aGlzLm1hc2tFeHByZXNzaW9uLnN0YXJ0c1dpdGgoJ3NlcGFyYXRvcicpICYmIHRoaXMuZHJvcFNwZWNpYWxDaGFyYWN0ZXJzID09PSB0cnVlKSB7XG5cdFx0XHR0aGlzLm1hc2tTcGVjaWFsQ2hhcmFjdGVycyA9IHRoaXMubWFza1NwZWNpYWxDaGFyYWN0ZXJzLmZpbHRlcihcblx0XHRcdFx0KGl0ZW06IHN0cmluZykgPT5cblx0XHRcdFx0XHQhdGhpcy5fY29tcGFyZU9ySW5jbHVkZXMoaXRlbSwgdGhpcy5kZWNpbWFsTWFya2VyLCB0aGlzLnRob3VzYW5kU2VwYXJhdG9yKSwgLy9pdGVtICE9PSB0aGlzLmRlY2ltYWxNYXJrZXIsIC8vICFcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHRoaXMuZm9ybUNvbnRyb2xSZXN1bHQocmVzdWx0KTtcblx0XHRpZiAoIXRoaXMuc2hvd01hc2tUeXBlZCkge1xuXHRcdFx0aWYgKHRoaXMuaGlkZGVuSW5wdXQpIHtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdCAmJiByZXN1bHQubGVuZ3RoID8gdGhpcy5oaWRlSW5wdXQocmVzdWx0LCB0aGlzLm1hc2tFeHByZXNzaW9uKSA6IHJlc3VsdDtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXHRcdGNvbnN0IHJlc0xlbjogbnVtYmVyID0gcmVzdWx0Lmxlbmd0aDtcblx0XHRjb25zdCBwcmVmTm1hc2s6IHN0cmluZyA9IHRoaXMucHJlZml4ICsgdGhpcy5tYXNrSXNTaG93bjtcblxuXHRcdGlmICh0aGlzLm1hc2tFeHByZXNzaW9uLmluY2x1ZGVzKCdIJykpIHtcblx0XHRcdGNvbnN0IGNvdW50U2tpcGVkU3ltYm9sID0gdGhpcy5fbnVtYmVyU2tpcGVkU3ltYm9scyhyZXN1bHQpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdCArIHByZWZObWFzay5zbGljZShyZXNMZW4gKyBjb3VudFNraXBlZFN5bWJvbCk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLm1hc2tFeHByZXNzaW9uID09PSAnSVAnIHx8IHRoaXMubWFza0V4cHJlc3Npb24gPT09ICdDUEZfQ05QSicpIHtcblx0XHRcdHJldHVybiByZXN1bHQgKyBwcmVmTm1hc2s7XG5cdFx0fVxuXHRcdHJldHVybiByZXN1bHQgKyBwcmVmTm1hc2suc2xpY2UocmVzTGVuKTtcblx0fVxuXG5cdC8vIGdldCB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgdGhhdCB3ZXJlIHNoaWZ0ZWRcblx0cHJpdmF0ZSBfbnVtYmVyU2tpcGVkU3ltYm9scyh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcblx0XHRjb25zdCByZWdleCA9IC8oXnxcXEQpKFxcZFxcRCkvZztcblx0XHRsZXQgbWF0Y2ggPSByZWdleC5leGVjKHZhbHVlKTtcblx0XHRsZXQgY291bnRTa2lwZWRTeW1ib2wgPSAwO1xuXHRcdHdoaWxlIChtYXRjaCAhPSBudWxsKSB7XG5cdFx0XHRjb3VudFNraXBlZFN5bWJvbCArPSAxO1xuXHRcdFx0bWF0Y2ggPSByZWdleC5leGVjKHZhbHVlKTtcblx0XHR9XG5cdFx0cmV0dXJuIGNvdW50U2tpcGVkU3ltYm9sO1xuXHR9XG5cblx0cHVibGljIGFwcGx5VmFsdWVDaGFuZ2VzKFxuXHRcdHBvc2l0aW9uOiBudW1iZXIsXG5cdFx0anVzdFBhc3RlZDogYm9vbGVhbixcblx0XHRiYWNrc3BhY2VkOiBib29sZWFuLFxuXHRcdGNiOiBGdW5jdGlvbiA9ICgpID0+IHt9LFxuXHQpOiB2b2lkIHtcblx0XHRjb25zdCBmb3JtRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblx0XHRmb3JtRWxlbWVudC52YWx1ZSA9IHRoaXMuYXBwbHlNYXNrKFxuXHRcdFx0Zm9ybUVsZW1lbnQudmFsdWUsXG5cdFx0XHR0aGlzLm1hc2tFeHByZXNzaW9uLFxuXHRcdFx0cG9zaXRpb24sXG5cdFx0XHRqdXN0UGFzdGVkLFxuXHRcdFx0YmFja3NwYWNlZCxcblx0XHRcdGNiLFxuXHRcdCk7XG5cdFx0aWYgKGZvcm1FbGVtZW50ID09PSB0aGlzLl9nZXRBY3RpdmVFbGVtZW50KCkpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5jbGVhcklmTm90TWF0Y2hGbigpO1xuXHR9XG5cblx0cHVibGljIGhpZGVJbnB1dChpbnB1dFZhbHVlOiBzdHJpbmcsIG1hc2tFeHByZXNzaW9uOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiBpbnB1dFZhbHVlXG5cdFx0XHQuc3BsaXQoJycpXG5cdFx0XHQubWFwKChjdXJyOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdHRoaXMubWFza0F2YWlsYWJsZVBhdHRlcm5zICYmXG5cdFx0XHRcdFx0dGhpcy5tYXNrQXZhaWxhYmxlUGF0dGVybnNbbWFza0V4cHJlc3Npb25baW5kZXhdIV0gJiZcblx0XHRcdFx0XHR0aGlzLm1hc2tBdmFpbGFibGVQYXR0ZXJuc1ttYXNrRXhwcmVzc2lvbltpbmRleF0hXT8uc3ltYm9sXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLm1hc2tBdmFpbGFibGVQYXR0ZXJuc1ttYXNrRXhwcmVzc2lvbltpbmRleF0hXT8uc3ltYm9sO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBjdXJyO1xuXHRcdFx0fSlcblx0XHRcdC5qb2luKCcnKTtcblx0fVxuXG5cdC8vIHRoaXMgZnVuY3Rpb24gaXMgbm90IG5lY2Vzc2FyeSwgaXQgY2hlY2tzIHJlc3VsdCBhZ2FpbnN0IG1hc2tFeHByZXNzaW9uXG5cdHB1YmxpYyBnZXRBY3R1YWxWYWx1ZShyZXM6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY29tcGFyZTogc3RyaW5nW10gPSByZXNcblx0XHRcdC5zcGxpdCgnJylcblx0XHRcdC5maWx0ZXIoXG5cdFx0XHRcdChzeW1ib2w6IHN0cmluZywgaTogbnVtYmVyKSA9PlxuXHRcdFx0XHRcdHRoaXMuX2NoZWNrU3ltYm9sTWFzayhzeW1ib2wsIHRoaXMubWFza0V4cHJlc3Npb25baV0hKSB8fFxuXHRcdFx0XHRcdCh0aGlzLm1hc2tTcGVjaWFsQ2hhcmFjdGVycy5pbmNsdWRlcyh0aGlzLm1hc2tFeHByZXNzaW9uW2ldISkgJiZcblx0XHRcdFx0XHRcdHN5bWJvbCA9PT0gdGhpcy5tYXNrRXhwcmVzc2lvbltpXSksXG5cdFx0XHQpO1xuXHRcdGlmIChjb21wYXJlLmpvaW4oJycpID09PSByZXMpIHtcblx0XHRcdHJldHVybiBjb21wYXJlLmpvaW4oJycpO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzO1xuXHR9XG5cblx0cHVibGljIHNoaWZ0VHlwZWRTeW1ib2xzKGlucHV0VmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0bGV0IHN5bWJvbFRvUmVwbGFjZSA9ICcnO1xuXHRcdGNvbnN0IG5ld0lucHV0VmFsdWU6IChzdHJpbmcgfCB1bmRlZmluZWQpW10gPVxuXHRcdFx0KGlucHV0VmFsdWUgJiZcblx0XHRcdFx0aW5wdXRWYWx1ZS5zcGxpdCgnJykubWFwKChjdXJyU3ltYm9sOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcblx0XHRcdFx0XHRpZiAoXG5cdFx0XHRcdFx0XHR0aGlzLm1hc2tTcGVjaWFsQ2hhcmFjdGVycy5pbmNsdWRlcyhpbnB1dFZhbHVlW2luZGV4ICsgMV0hKSAmJlxuXHRcdFx0XHRcdFx0aW5wdXRWYWx1ZVtpbmRleCArIDFdICE9PSB0aGlzLm1hc2tFeHByZXNzaW9uW2luZGV4ICsgMV1cblx0XHRcdFx0XHQpIHtcblx0XHRcdFx0XHRcdHN5bWJvbFRvUmVwbGFjZSA9IGN1cnJTeW1ib2w7XG5cdFx0XHRcdFx0XHRyZXR1cm4gaW5wdXRWYWx1ZVtpbmRleCArIDFdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoc3ltYm9sVG9SZXBsYWNlLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0Y29uc3QgcmVwbGFjZVN5bWJvbDogc3RyaW5nID0gc3ltYm9sVG9SZXBsYWNlO1xuXHRcdFx0XHRcdFx0c3ltYm9sVG9SZXBsYWNlID0gJyc7XG5cdFx0XHRcdFx0XHRyZXR1cm4gcmVwbGFjZVN5bWJvbDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIGN1cnJTeW1ib2w7XG5cdFx0XHRcdH0pKSB8fFxuXHRcdFx0W107XG5cdFx0cmV0dXJuIG5ld0lucHV0VmFsdWUuam9pbignJyk7XG5cdH1cblxuXHQvKipcblx0ICogQ29udmVydCBudW1iZXIgdmFsdWUgdG8gc3RyaW5nXG5cdCAqIDMuMTQxNSAtPiAnMy4xNDE1J1xuXHQgKiAxZS03IC0+ICcwLjAwMDAwMDEnXG5cdCAqL1xuXHRwdWJsaWMgbnVtYmVyVG9TdHJpbmcodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCF2YWx1ZSAmJiB2YWx1ZSAhPT0gMCkge1xuXHRcdFx0cmV0dXJuIFN0cmluZyh2YWx1ZSk7XG5cdFx0fVxuXHRcdHJldHVybiBOdW1iZXIodmFsdWUpLnRvTG9jYWxlU3RyaW5nKCdmdWxsd2lkZScsIHtcblx0XHRcdHVzZUdyb3VwaW5nOiBmYWxzZSxcblx0XHRcdG1heGltdW1GcmFjdGlvbkRpZ2l0czogMjAsXG5cdFx0fSk7XG5cdH1cblxuXHRwdWJsaWMgc2hvd01hc2tJbklucHV0KGlucHV0VmFsPzogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAodGhpcy5zaG93TWFza1R5cGVkICYmICEhdGhpcy5zaG93bk1hc2tFeHByZXNzaW9uKSB7XG5cdFx0XHRpZiAodGhpcy5tYXNrRXhwcmVzc2lvbi5sZW5ndGggIT09IHRoaXMuc2hvd25NYXNrRXhwcmVzc2lvbi5sZW5ndGgpIHtcblx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCdNYXNrIGV4cHJlc3Npb24gbXVzdCBtYXRjaCBtYXNrIHBsYWNlaG9sZGVyIGxlbmd0aCcpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0cmV0dXJuIHRoaXMuc2hvd25NYXNrRXhwcmVzc2lvbjtcblx0XHRcdH1cblx0XHR9IGVsc2UgaWYgKHRoaXMuc2hvd01hc2tUeXBlZCkge1xuXHRcdFx0aWYgKGlucHV0VmFsKSB7XG5cdFx0XHRcdGlmICh0aGlzLm1hc2tFeHByZXNzaW9uID09PSAnSVAnKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX2NoZWNrRm9ySXAoaW5wdXRWYWwpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICh0aGlzLm1hc2tFeHByZXNzaW9uID09PSAnQ1BGX0NOUEonKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXMuX2NoZWNrRm9yQ3BmQ25waihpbnB1dFZhbCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLm1hc2tFeHByZXNzaW9uLnJlcGxhY2UoL1xcdy9nLCB0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyKTtcblx0XHR9XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0cHVibGljIGNsZWFySWZOb3RNYXRjaEZuKCk6IHZvaWQge1xuXHRcdGNvbnN0IGZvcm1FbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXHRcdGlmIChcblx0XHRcdHRoaXMuY2xlYXJJZk5vdE1hdGNoICYmXG5cdFx0XHR0aGlzLnByZWZpeC5sZW5ndGggKyB0aGlzLm1hc2tFeHByZXNzaW9uLmxlbmd0aCArIHRoaXMuc3VmZml4Lmxlbmd0aCAhPT1cblx0XHRcdFx0Zm9ybUVsZW1lbnQudmFsdWUucmVwbGFjZSgvXy9nLCAnJykubGVuZ3RoXG5cdFx0KSB7XG5cdFx0XHR0aGlzLmZvcm1FbGVtZW50UHJvcGVydHkgPSBbJ3ZhbHVlJywgJyddO1xuXHRcdFx0dGhpcy5hcHBseU1hc2soZm9ybUVsZW1lbnQudmFsdWUsIHRoaXMubWFza0V4cHJlc3Npb24pO1xuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBzZXQgZm9ybUVsZW1lbnRQcm9wZXJ0eShbbmFtZSwgdmFsdWVdOiBbc3RyaW5nLCBzdHJpbmcgfCBib29sZWFuXSkge1xuXHRcdFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT5cblx0XHRcdHRoaXMuX3JlbmRlcmVyLnNldFByb3BlcnR5KHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgbmFtZSwgdmFsdWUpLFxuXHRcdCk7XG5cdH1cblxuXHRwdWJsaWMgY2hlY2tTcGVjaWFsQ2hhckFtb3VudChtYXNrOiBzdHJpbmcpOiBudW1iZXIge1xuXHRcdGNvbnN0IGNoYXJzOiBzdHJpbmdbXSA9IG1hc2suc3BsaXQoJycpLmZpbHRlcigoaXRlbTogc3RyaW5nKSA9PiB0aGlzLl9maW5kU3BlY2lhbENoYXIoaXRlbSkpO1xuXHRcdHJldHVybiBjaGFycy5sZW5ndGg7XG5cdH1cblxuXHRwdWJsaWMgcmVtb3ZlTWFzayhpbnB1dFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLl9yZW1vdmVNYXNrKFxuXHRcdFx0dGhpcy5fcmVtb3ZlU3VmZml4KHRoaXMuX3JlbW92ZVByZWZpeChpbnB1dFZhbHVlKSksXG5cdFx0XHR0aGlzLm1hc2tTcGVjaWFsQ2hhcmFjdGVycy5jb25jYXQoJ18nKS5jb25jYXQodGhpcy5wbGFjZUhvbGRlckNoYXJhY3RlciksXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgX2NoZWNrRm9ySXAoaW5wdXRWYWw6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKGlucHV0VmFsID09PSAnIycpIHtcblx0XHRcdHJldHVybiBgJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfS4ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9LiR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0uJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWA7XG5cdFx0fVxuXHRcdGNvbnN0IGFycjogc3RyaW5nW10gPSBbXTtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGlucHV0VmFsLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRpZiAoaW5wdXRWYWxbaV0/Lm1hdGNoKCdcXFxcZCcpKSB7XG5cdFx0XHRcdGFyci5wdXNoKGlucHV0VmFsW2ldISk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChhcnIubGVuZ3RoIDw9IDMpIHtcblx0XHRcdHJldHVybiBgJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfS4ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9LiR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn1gO1xuXHRcdH1cblx0XHRpZiAoYXJyLmxlbmd0aCA+IDMgJiYgYXJyLmxlbmd0aCA8PSA2KSB7XG5cdFx0XHRyZXR1cm4gYCR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0uJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWA7XG5cdFx0fVxuXHRcdGlmIChhcnIubGVuZ3RoID4gNiAmJiBhcnIubGVuZ3RoIDw9IDkpIHtcblx0XHRcdHJldHVybiB0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyO1xuXHRcdH1cblx0XHRpZiAoYXJyLmxlbmd0aCA+IDkgJiYgYXJyLmxlbmd0aCA8PSAxMikge1xuXHRcdFx0cmV0dXJuICcnO1xuXHRcdH1cblx0XHRyZXR1cm4gJyc7XG5cdH1cblxuXHRwcml2YXRlIF9jaGVja0ZvckNwZkNucGooaW5wdXRWYWw6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgY3BmID1cblx0XHRcdGAke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn1gICtcblx0XHRcdGAuJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9YCArXG5cdFx0XHRgLiR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWAgK1xuXHRcdFx0YC0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWA7XG5cdFx0Y29uc3QgY25waiA9XG5cdFx0XHRgJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn1gICtcblx0XHRcdGAuJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9YCArXG5cdFx0XHRgLiR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWAgK1xuXHRcdFx0YC8ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9YCArXG5cdFx0XHRgLSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9YDtcblxuXHRcdGlmIChpbnB1dFZhbCA9PT0gJyMnKSB7XG5cdFx0XHRyZXR1cm4gY3BmO1xuXHRcdH1cblx0XHRjb25zdCBhcnI6IHN0cmluZ1tdID0gW107XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dFZhbC5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKGlucHV0VmFsW2ldPy5tYXRjaCgnXFxcXGQnKSkge1xuXHRcdFx0XHRhcnIucHVzaChpbnB1dFZhbFtpXSEpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoYXJyLmxlbmd0aCA8PSAzKSB7XG5cdFx0XHRyZXR1cm4gY3BmLnNsaWNlKGFyci5sZW5ndGgsIGNwZi5sZW5ndGgpO1xuXHRcdH1cblx0XHRpZiAoYXJyLmxlbmd0aCA+IDMgJiYgYXJyLmxlbmd0aCA8PSA2KSB7XG5cdFx0XHRyZXR1cm4gY3BmLnNsaWNlKGFyci5sZW5ndGggKyAxLCBjcGYubGVuZ3RoKTtcblx0XHR9XG5cdFx0aWYgKGFyci5sZW5ndGggPiA2ICYmIGFyci5sZW5ndGggPD0gOSkge1xuXHRcdFx0cmV0dXJuIGNwZi5zbGljZShhcnIubGVuZ3RoICsgMiwgY3BmLmxlbmd0aCk7XG5cdFx0fVxuXHRcdGlmIChhcnIubGVuZ3RoID4gOSAmJiBhcnIubGVuZ3RoIDwgMTEpIHtcblx0XHRcdHJldHVybiBjcGYuc2xpY2UoYXJyLmxlbmd0aCArIDMsIGNwZi5sZW5ndGgpO1xuXHRcdH1cblx0XHRpZiAoYXJyLmxlbmd0aCA9PT0gMTEpIHtcblx0XHRcdHJldHVybiAnJztcblx0XHR9XG5cdFx0aWYgKGFyci5sZW5ndGggPT09IDEyKSB7XG5cdFx0XHRpZiAoaW5wdXRWYWwubGVuZ3RoID09PSAxNykge1xuXHRcdFx0XHRyZXR1cm4gY25wai5zbGljZSgxNiwgY25wai5sZW5ndGgpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIGNucGouc2xpY2UoMTUsIGNucGoubGVuZ3RoKTtcblx0XHR9XG5cdFx0aWYgKGFyci5sZW5ndGggPiAxMiAmJiBhcnIubGVuZ3RoIDw9IDE0KSB7XG5cdFx0XHRyZXR1cm4gY25wai5zbGljZShhcnIubGVuZ3RoICsgNCwgY25wai5sZW5ndGgpO1xuXHRcdH1cblx0XHRyZXR1cm4gJyc7XG5cdH1cblxuXHQvKipcblx0ICogUmVjdXJzaXZlbHkgZGV0ZXJtaW5lIHRoZSBjdXJyZW50IGFjdGl2ZSBlbGVtZW50IGJ5IG5hdmlnYXRpbmcgdGhlIFNoYWRvdyBET00gdW50aWwgdGhlIEFjdGl2ZSBFbGVtZW50IGlzIGZvdW5kLlxuXHQgKi9cblx0cHJpdmF0ZSBfZ2V0QWN0aXZlRWxlbWVudChkb2N1bWVudDogRG9jdW1lbnRPclNoYWRvd1Jvb3QgPSB0aGlzLmRvY3VtZW50KTogRWxlbWVudCB8IG51bGwge1xuXHRcdGNvbnN0IHNoYWRvd1Jvb3RFbCA9IGRvY3VtZW50Py5hY3RpdmVFbGVtZW50Py5zaGFkb3dSb290O1xuXHRcdGlmICghc2hhZG93Um9vdEVsPy5hY3RpdmVFbGVtZW50KSB7XG5cdFx0XHRyZXR1cm4gZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIHRoaXMuX2dldEFjdGl2ZUVsZW1lbnQoc2hhZG93Um9vdEVsKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUHJvcG9nYXRlcyB0aGUgaW5wdXQgdmFsdWUgYmFjayB0byB0aGUgQW5ndWxhciBtb2RlbCBieSB0cmlnZ2VyaW5nIHRoZSBvbkNoYW5nZSBmdW5jdGlvbi4gSXQgd29uJ3QgZG8gdGhpcyBpZiB3cml0aW5nVmFsdWVcblx0ICogaXMgdHJ1ZS4gSWYgdGhhdCBpcyB0cnVlIGl0IG1lYW5zIHdlIGFyZSBjdXJyZW50bHkgaW4gdGhlIHdyaXRlVmFsdWUgZnVuY3Rpb24sIHdoaWNoIGlzIHN1cHBvc2VkIHRvIG9ubHkgdXBkYXRlIHRoZSBhY3R1YWxcblx0ICogRE9NIGVsZW1lbnQgYmFzZWQgb24gdGhlIEFuZ3VsYXIgbW9kZWwgdmFsdWUuIEl0IHNob3VsZCBiZSBhIG9uZSB3YXkgcHJvY2VzcywgaS5lLiB3cml0ZVZhbHVlIHNob3VsZCBub3QgYmUgbW9kaWZ5aW5nIHRoZSBBbmd1bGFyXG5cdCAqIG1vZGVsIHZhbHVlIHRvby4gVGhlcmVmb3JlLCB3ZSBkb24ndCB0cmlnZ2VyIG9uQ2hhbmdlIGluIHRoaXMgc2NlbmFyaW8uXG5cdCAqIEBwYXJhbSBpbnB1dFZhbHVlIHRoZSBjdXJyZW50IGZvcm0gaW5wdXQgdmFsdWVcblx0ICovXG5cdHByaXZhdGUgZm9ybUNvbnRyb2xSZXN1bHQoaW5wdXRWYWx1ZTogc3RyaW5nKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMud3JpdGluZ1ZhbHVlIHx8ICghdGhpcy50cmlnZ2VyT25NYXNrQ2hhbmdlICYmIHRoaXMubWFza0NoYW5nZWQpKSB7XG5cdFx0XHR0aGlzLm1hc2tDaGFuZ2VkID0gZmFsc2U7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmIChBcnJheS5pc0FycmF5KHRoaXMuZHJvcFNwZWNpYWxDaGFyYWN0ZXJzKSkge1xuXHRcdFx0dGhpcy5vbkNoYW5nZShcblx0XHRcdFx0dGhpcy5fdG9OdW1iZXIoXG5cdFx0XHRcdFx0dGhpcy5fcmVtb3ZlTWFzayhcblx0XHRcdFx0XHRcdHRoaXMuX3JlbW92ZVN1ZmZpeCh0aGlzLl9yZW1vdmVQcmVmaXgoaW5wdXRWYWx1ZSkpLFxuXHRcdFx0XHRcdFx0dGhpcy5kcm9wU3BlY2lhbENoYXJhY3RlcnMsXG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0KSxcblx0XHRcdCk7XG5cdFx0fSBlbHNlIGlmICh0aGlzLmRyb3BTcGVjaWFsQ2hhcmFjdGVycykge1xuXHRcdFx0dGhpcy5vbkNoYW5nZSh0aGlzLl90b051bWJlcih0aGlzLl9jaGVja1N5bWJvbHMoaW5wdXRWYWx1ZSkpKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5vbkNoYW5nZSh0aGlzLl9yZW1vdmVTdWZmaXgoaW5wdXRWYWx1ZSkpO1xuXHRcdH1cblx0fVxuXG5cdHByaXZhdGUgX3RvTnVtYmVyKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsKSB7XG5cdFx0aWYgKCF0aGlzLmlzTnVtYmVyVmFsdWUgfHwgdmFsdWUgPT09ICcnKSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcdGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XG5cdFx0cmV0dXJuIE51bWJlci5pc05hTihudW0pID8gdmFsdWUgOiBudW07XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVNYXNrKHZhbHVlOiBzdHJpbmcsIHNwZWNpYWxDaGFyYWN0ZXJzRm9yUmVtb3ZlOiBzdHJpbmdbXSk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHZhbHVlID8gdmFsdWUucmVwbGFjZSh0aGlzLl9yZWdFeHBGb3JSZW1vdmUoc3BlY2lhbENoYXJhY3RlcnNGb3JSZW1vdmUpLCAnJykgOiB2YWx1ZTtcblx0fVxuXG5cdHByaXZhdGUgX3JlbW92ZVByZWZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoIXRoaXMucHJlZml4KSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcdHJldHVybiB2YWx1ZSA/IHZhbHVlLnJlcGxhY2UodGhpcy5wcmVmaXgsICcnKSA6IHZhbHVlO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlU3VmZml4KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICghdGhpcy5zdWZmaXgpIHtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9XG5cdFx0cmV0dXJuIHZhbHVlID8gdmFsdWUucmVwbGFjZSh0aGlzLnN1ZmZpeCwgJycpIDogdmFsdWU7XG5cdH1cblxuXHRwcml2YXRlIF9yZXRyaWV2ZVNlcGFyYXRvclZhbHVlKHJlc3VsdDogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5fcmVtb3ZlTWFzayhcblx0XHRcdHRoaXMuX3JlbW92ZVN1ZmZpeCh0aGlzLl9yZW1vdmVQcmVmaXgocmVzdWx0KSksXG5cdFx0XHR0aGlzLm1hc2tTcGVjaWFsQ2hhcmFjdGVycyxcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVnRXhwRm9yUmVtb3ZlKHNwZWNpYWxDaGFyYWN0ZXJzRm9yUmVtb3ZlOiBzdHJpbmdbXSk6IFJlZ0V4cCB7XG5cdFx0cmV0dXJuIG5ldyBSZWdFeHAoXG5cdFx0XHRzcGVjaWFsQ2hhcmFjdGVyc0ZvclJlbW92ZS5tYXAoKGl0ZW06IHN0cmluZykgPT4gYFxcXFwke2l0ZW19YCkuam9pbignfCcpLFxuXHRcdFx0J2dpJyxcblx0XHQpO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVwbGFjZURlY2ltYWxNYXJrZXJUb0RvdCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRjb25zdCBtYXJrZXJzID0gQXJyYXkuaXNBcnJheSh0aGlzLmRlY2ltYWxNYXJrZXIpID8gdGhpcy5kZWNpbWFsTWFya2VyIDogW3RoaXMuZGVjaW1hbE1hcmtlcl07XG5cblx0XHRyZXR1cm4gdmFsdWUucmVwbGFjZSh0aGlzLl9yZWdFeHBGb3JSZW1vdmUobWFya2VycyksICcuJyk7XG5cdH1cblxuXHRwcml2YXRlIF9jaGVja1N5bWJvbHMocmVzdWx0OiBzdHJpbmcpOiBzdHJpbmcgfCBudW1iZXIgfCB1bmRlZmluZWQgfCBudWxsIHtcblx0XHRpZiAocmVzdWx0ID09PSAnJykge1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9XG5cblx0XHRjb25zdCBzZXBhcmF0b3JQcmVjaXNpb246IG51bWJlciB8IG51bGwgPSB0aGlzLl9yZXRyaWV2ZVNlcGFyYXRvclByZWNpc2lvbih0aGlzLm1hc2tFeHByZXNzaW9uKTtcblx0XHRjb25zdCBzZXBhcmF0b3JWYWx1ZTogc3RyaW5nID0gdGhpcy5fcmVwbGFjZURlY2ltYWxNYXJrZXJUb0RvdChcblx0XHRcdHRoaXMuX3JldHJpZXZlU2VwYXJhdG9yVmFsdWUocmVzdWx0KSxcblx0XHQpO1xuXG5cdFx0aWYgKCF0aGlzLmlzTnVtYmVyVmFsdWUpIHtcblx0XHRcdHJldHVybiBzZXBhcmF0b3JWYWx1ZTtcblx0XHR9XG5cdFx0aWYgKHNlcGFyYXRvclByZWNpc2lvbikge1xuXHRcdFx0aWYgKHJlc3VsdCA9PT0gdGhpcy5kZWNpbWFsTWFya2VyKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRoaXMuX2NoZWNrUHJlY2lzaW9uKHRoaXMubWFza0V4cHJlc3Npb24sIHNlcGFyYXRvclZhbHVlKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cmV0dXJuIE51bWJlcihzZXBhcmF0b3JWYWx1ZSk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gVE9ETyBzaG91bGQgdGhpbmsgYWJvdXQgaGVscGVycyBvciBzZXBhcnRpbmcgZGVjaW1hbCBwcmVjaXNpb24gdG8gb3duIHByb3BlcnR5XG5cdHByaXZhdGUgX3JldHJpZXZlU2VwYXJhdG9yUHJlY2lzaW9uKG1hc2tFeHByZXRpb246IHN0cmluZyk6IG51bWJlciB8IG51bGwge1xuXHRcdGNvbnN0IG1hdGNoZXI6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsID0gbWFza0V4cHJldGlvbi5tYXRjaChcblx0XHRcdG5ldyBSZWdFeHAoYF5zZXBhcmF0b3JcXFxcLihbXmRdKilgKSxcblx0XHQpO1xuXHRcdHJldHVybiBtYXRjaGVyID8gTnVtYmVyKG1hdGNoZXJbMV0pIDogbnVsbDtcblx0fVxuXG5cdHByaXZhdGUgX2NoZWNrUHJlY2lzaW9uKHNlcGFyYXRvckV4cHJlc3Npb246IHN0cmluZywgc2VwYXJhdG9yVmFsdWU6IHN0cmluZyk6IG51bWJlciB8IHN0cmluZyB7XG5cdFx0aWYgKHNlcGFyYXRvckV4cHJlc3Npb24uaW5kZXhPZignMicpID4gMCkge1xuXHRcdFx0cmV0dXJuIE51bWJlcihzZXBhcmF0b3JWYWx1ZSkudG9GaXhlZCgyKTtcblx0XHR9XG5cdFx0cmV0dXJuIE51bWJlcihzZXBhcmF0b3JWYWx1ZSk7XG5cdH1cbn1cbiJdfQ==
400
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hc2stbGliL3NyYy9saWIvbWFzay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsTUFBTSxFQUFXLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUc1RCxNQUFNLE9BQU8sV0FBWSxTQUFRLGtCQUFrQjtJQXlCbEQsWUFDMkIsUUFBYSxFQUNKLE9BQWdCLEVBQzNDLFdBQXVCLEVBQ3ZCLFNBQW9CO1FBRTVCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUxXLGFBQVEsR0FBUixRQUFRLENBQUs7UUFDSixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQzNDLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUE1QmIsbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFFckMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFdEIseUJBQW9CLEdBQVcsR0FBRyxDQUFDO1FBRTVDLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBRXpCLGFBQVEsR0FBa0IsSUFBSSxDQUFDO1FBRS9CLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBRXBDOzs7V0FHRztRQUNJLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRTlCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUVyQyxhQUFRLEdBQUcsQ0FBQyxDQUFNLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQVNqQyxDQUFDO0lBRUQsc0NBQXNDO0lBQ3RCLFNBQVMsQ0FDeEIsVUFB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LElBQUksTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQ2xDLENBQUM7UUFDRixPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxtQkFBMkIsRUFBRSxjQUFzQjtRQUMxRSxJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDekMsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3pDO1FBQ0QsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7d0dBcmVXLFdBQVcsa0JBMEJkLFFBQVEsYUFDUixNQUFNOzRHQTNCSCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQTJCUixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdCwgSW5qZWN0YWJsZSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IGNvbmZpZywgSUNvbmZpZyB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IE1hc2tBcHBsaWVyU2VydmljZSB9IGZyb20gJy4vbWFzay1hcHBsaWVyLnNlcnZpY2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTWFza1NlcnZpY2UgZXh0ZW5kcyBNYXNrQXBwbGllclNlcnZpY2Uge1xuXHRwdWJsaWMgb3ZlcnJpZGUgbWFza0V4cHJlc3Npb246IHN0cmluZyA9ICcnO1xuXG5cdHB1YmxpYyBpc051bWJlclZhbHVlOiBib29sZWFuID0gZmFsc2U7XG5cblx0cHVibGljIG92ZXJyaWRlIHBsYWNlSG9sZGVyQ2hhcmFjdGVyOiBzdHJpbmcgPSAnXyc7XG5cblx0cHVibGljIG1hc2tJc1Nob3duOiBzdHJpbmcgPSAnJztcblxuXHRwdWJsaWMgc2VsU3RhcnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG5cdHB1YmxpYyBzZWxFbmQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG5cdC8qKlxuXHQgKiBXaGV0aGVyIHdlIGFyZSBjdXJyZW50bHkgaW4gd3JpdGVWYWx1ZSBmdW5jdGlvbiwgaW4gdGhpcyBjYXNlIHdoZW4gYXBwbHlpbmcgdGhlIG1hc2sgd2UgZG9uJ3Qgd2FudCB0byB0cmlnZ2VyIG9uQ2hhbmdlIGZ1bmN0aW9uLFxuXHQgKiBzaW5jZSB3cml0ZVZhbHVlIHNob3VsZCBiZSBhIG9uZSB3YXkgb25seSBwcm9jZXNzIG9mIHdyaXRpbmcgdGhlIERPTSB2YWx1ZSBiYXNlZCBvbiB0aGUgQW5ndWxhciBtb2RlbCB2YWx1ZS5cblx0ICovXG5cdHB1YmxpYyB3cml0aW5nVmFsdWU6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRwdWJsaWMgbWFza0NoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRwdWJsaWMgdHJpZ2dlck9uTWFza0NoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xuXG5cdHB1YmxpYyBvbkNoYW5nZSA9IChfOiBhbnkpID0+IHt9O1xuXG5cdHB1YmxpYyBjb25zdHJ1Y3Rvcihcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG5cdFx0QEluamVjdChjb25maWcpIHByb3RlY3RlZCBvdmVycmlkZSBfY29uZmlnOiBJQ29uZmlnLFxuXHRcdHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG5cdFx0cHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0KSB7XG5cdFx0c3VwZXIoX2NvbmZpZyk7XG5cdH1cblxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuXHRwdWJsaWMgb3ZlcnJpZGUgYXBwbHlNYXNrKFxuXHRcdGlucHV0VmFsdWU6IHN0cmluZyxcblx0XHRtYXNrRXhwcmVzc2lvbjogc3RyaW5nLFxuXHRcdHBvc2l0aW9uOiBudW1iZXIgPSAwLFxuXHRcdGp1c3RQYXN0ZWQgPSBmYWxzZSxcblx0XHRiYWNrc3BhY2VkID0gZmFsc2UsXG5cdFx0Y2I6IEZ1bmN0aW9uID0gKCkgPT4ge30sXG5cdCk6IHN0cmluZyB7XG5cdFx0aWYgKCFtYXNrRXhwcmVzc2lvbikge1xuXHRcdFx0cmV0dXJuIGlucHV0VmFsdWUgIT09IHRoaXMuYWN0dWFsVmFsdWUgPyB0aGlzLmFjdHVhbFZhbHVlIDogaW5wdXRWYWx1ZTtcblx0XHR9XG5cdFx0dGhpcy5tYXNrSXNTaG93biA9IHRoaXMuc2hvd01hc2tUeXBlZCA/IHRoaXMuc2hvd01hc2tJbklucHV0KCkgOiAnJztcblx0XHRpZiAodGhpcy5tYXNrRXhwcmVzc2lvbiA9PT0gJ0lQJyAmJiB0aGlzLnNob3dNYXNrVHlwZWQpIHtcblx0XHRcdHRoaXMubWFza0lzU2hvd24gPSB0aGlzLnNob3dNYXNrSW5JbnB1dChpbnB1dFZhbHVlIHx8ICcjJyk7XG5cdFx0fVxuXHRcdGlmICh0aGlzLm1hc2tFeHByZXNzaW9uID09PSAnQ1BGX0NOUEonICYmIHRoaXMuc2hvd01hc2tUeXBlZCkge1xuXHRcdFx0dGhpcy5tYXNrSXNTaG93biA9IHRoaXMuc2hvd01hc2tJbklucHV0KGlucHV0VmFsdWUgfHwgJyMnKTtcblx0XHR9XG5cdFx0aWYgKCFpbnB1dFZhbHVlICYmIHRoaXMuc2hvd01hc2tUeXBlZCkge1xuXHRcdFx0dGhpcy5mb3JtQ29udHJvbFJlc3VsdCh0aGlzLnByZWZpeCk7XG5cdFx0XHRyZXR1cm4gdGhpcy5wcmVmaXggKyB0aGlzLm1hc2tJc1Nob3duO1xuXHRcdH1cblx0XHRjb25zdCBnZXRTeW1ib2w6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG5cdFx0XHQhIWlucHV0VmFsdWUgJiYgdHlwZW9mIHRoaXMuc2VsU3RhcnQgPT09ICdudW1iZXInID8gaW5wdXRWYWx1ZVt0aGlzLnNlbFN0YXJ0XSA6ICcnO1xuXHRcdGxldCBuZXdJbnB1dFZhbHVlID0gJyc7XG5cdFx0aWYgKHRoaXMuaGlkZGVuSW5wdXQgIT09IHVuZGVmaW5lZCAmJiAhdGhpcy53cml0aW5nVmFsdWUpIHtcblx0XHRcdGxldCBhY3R1YWxSZXN1bHQ6IHN0cmluZ1tdID0gdGhpcy5hY3R1YWxWYWx1ZS5zcGxpdCgnJyk7XG5cdFx0XHQvLyBlc2xpbnQtZGlzYWJsZSAgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcblx0XHRcdGlucHV0VmFsdWUgIT09ICcnICYmIGFjdHVhbFJlc3VsdC5sZW5ndGhcblx0XHRcdFx0PyB0eXBlb2YgdGhpcy5zZWxTdGFydCA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHRoaXMuc2VsRW5kID09PSAnbnVtYmVyJ1xuXHRcdFx0XHRcdD8gaW5wdXRWYWx1ZS5sZW5ndGggPiBhY3R1YWxSZXN1bHQubGVuZ3RoXG5cdFx0XHRcdFx0XHQ/IGFjdHVhbFJlc3VsdC5zcGxpY2UodGhpcy5zZWxTdGFydCwgMCwgZ2V0U3ltYm9sISlcblx0XHRcdFx0XHRcdDogaW5wdXRWYWx1ZS5sZW5ndGggPCBhY3R1YWxSZXN1bHQubGVuZ3RoXG5cdFx0XHRcdFx0XHQ/IGFjdHVhbFJlc3VsdC5sZW5ndGggLSBpbnB1dFZhbHVlLmxlbmd0aCA9PT0gMVxuXHRcdFx0XHRcdFx0XHQ/IGFjdHVhbFJlc3VsdC5zcGxpY2UodGhpcy5zZWxTdGFydCAtIDEsIDEpXG5cdFx0XHRcdFx0XHRcdDogYWN0dWFsUmVzdWx0LnNwbGljZSh0aGlzLnNlbFN0YXJ0LCB0aGlzLnNlbEVuZCAtIHRoaXMuc2VsU3RhcnQpXG5cdFx0XHRcdFx0XHQ6IG51bGxcblx0XHRcdFx0XHQ6IG51bGxcblx0XHRcdFx0OiAoYWN0dWFsUmVzdWx0ID0gW10pO1xuXHRcdFx0aWYgKHRoaXMuc2hvd01hc2tUeXBlZCkge1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcGFyYW0tcmVhc3NpZ25cblx0XHRcdFx0aW5wdXRWYWx1ZSA9IHRoaXMucmVtb3ZlTWFzayhpbnB1dFZhbHVlKTtcblx0XHRcdH1cblx0XHRcdC8vIGVzbGludC1lbmFibGUgIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtZXhwcmVzc2lvbnNcblx0XHRcdG5ld0lucHV0VmFsdWUgPVxuXHRcdFx0XHR0aGlzLmFjdHVhbFZhbHVlLmxlbmd0aCAmJiBhY3R1YWxSZXN1bHQubGVuZ3RoIDw9IGlucHV0VmFsdWUubGVuZ3RoXG5cdFx0XHRcdFx0PyB0aGlzLnNoaWZ0VHlwZWRTeW1ib2xzKGFjdHVhbFJlc3VsdC5qb2luKCcnKSlcblx0XHRcdFx0XHQ6IGlucHV0VmFsdWU7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMuc2hvd01hc2tUeXBlZCkge1xuXHRcdFx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXBhcmFtLXJlYXNzaWduXG5cdFx0XHRpbnB1dFZhbHVlID0gdGhpcy5yZW1vdmVNYXNrKGlucHV0VmFsdWUpO1xuXHRcdH1cblxuXHRcdG5ld0lucHV0VmFsdWUgPSBCb29sZWFuKG5ld0lucHV0VmFsdWUpICYmIG5ld0lucHV0VmFsdWUubGVuZ3RoID8gbmV3SW5wdXRWYWx1ZSA6IGlucHV0VmFsdWU7XG5cblx0XHRjb25zdCByZXN1bHQ6IHN0cmluZyA9IHN1cGVyLmFwcGx5TWFzayhcblx0XHRcdG5ld0lucHV0VmFsdWUsXG5cdFx0XHRtYXNrRXhwcmVzc2lvbixcblx0XHRcdHBvc2l0aW9uLFxuXHRcdFx0anVzdFBhc3RlZCxcblx0XHRcdGJhY2tzcGFjZWQsXG5cdFx0XHRjYixcblx0XHQpO1xuXG5cdFx0dGhpcy5hY3R1YWxWYWx1ZSA9IHRoaXMuZ2V0QWN0dWFsVmFsdWUocmVzdWx0KTtcblx0XHQvLyBoYW5kbGUgc29tZSBzZXBhcmF0b3IgaW1wbGljYXRpb25zOlxuXHRcdC8vIGEuKSBhZGp1c3QgZGVjaW1hbE1hcmtlciBkZWZhdWx0ICguIC0+ICwpIGlmIHRob3VzYW5kU2VwYXJhdG9yIGlzIGEgZG90XG5cdFx0aWYgKHRoaXMudGhvdXNhbmRTZXBhcmF0b3IgPT09ICcuJyAmJiB0aGlzLmRlY2ltYWxNYXJrZXIgPT09ICcuJykge1xuXHRcdFx0dGhpcy5kZWNpbWFsTWFya2VyID0gJywnO1xuXHRcdH1cblxuXHRcdC8vIGIpIHJlbW92ZSBkZWNpbWFsIG1hcmtlciBmcm9tIGxpc3Qgb2Ygc3BlY2lhbCBjaGFyYWN0ZXJzIHRvIG1hc2tcblx0XHRpZiAodGhpcy5tYXNrRXhwcmVzc2lvbi5zdGFydHNXaXRoKCdzZXBhcmF0b3InKSAmJiB0aGlzLmRyb3BTcGVjaWFsQ2hhcmFjdGVycyA9PT0gdHJ1ZSkge1xuXHRcdFx0dGhpcy5tYXNrU3BlY2lhbENoYXJhY3RlcnMgPSB0aGlzLm1hc2tTcGVjaWFsQ2hhcmFjdGVycy5maWx0ZXIoXG5cdFx0XHRcdChpdGVtOiBzdHJpbmcpID0+XG5cdFx0XHRcdFx0IXRoaXMuX2NvbXBhcmVPckluY2x1ZGVzKGl0ZW0sIHRoaXMuZGVjaW1hbE1hcmtlciwgdGhpcy50aG91c2FuZFNlcGFyYXRvciksIC8vaXRlbSAhPT0gdGhpcy5kZWNpbWFsTWFya2VyLCAvLyAhXG5cdFx0XHQpO1xuXHRcdH1cblx0XHR0aGlzLmZvcm1Db250cm9sUmVzdWx0KHJlc3VsdCk7XG5cdFx0aWYgKCF0aGlzLnNob3dNYXNrVHlwZWQpIHtcblx0XHRcdGlmICh0aGlzLmhpZGRlbklucHV0KSB7XG5cdFx0XHRcdHJldHVybiByZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCA/IHRoaXMuaGlkZUlucHV0KHJlc3VsdCwgdGhpcy5tYXNrRXhwcmVzc2lvbikgOiByZXN1bHQ7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH1cblx0XHRjb25zdCByZXNMZW46IG51bWJlciA9IHJlc3VsdC5sZW5ndGg7XG5cdFx0Y29uc3QgcHJlZk5tYXNrOiBzdHJpbmcgPSB0aGlzLnByZWZpeCArIHRoaXMubWFza0lzU2hvd247XG5cblx0XHRpZiAodGhpcy5tYXNrRXhwcmVzc2lvbi5pbmNsdWRlcygnSCcpKSB7XG5cdFx0XHRjb25zdCBjb3VudFNraXBlZFN5bWJvbCA9IHRoaXMuX251bWJlclNraXBlZFN5bWJvbHMocmVzdWx0KTtcblx0XHRcdHJldHVybiByZXN1bHQgKyBwcmVmTm1hc2suc2xpY2UocmVzTGVuICsgY291bnRTa2lwZWRTeW1ib2wpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5tYXNrRXhwcmVzc2lvbiA9PT0gJ0lQJyB8fCB0aGlzLm1hc2tFeHByZXNzaW9uID09PSAnQ1BGX0NOUEonKSB7XG5cdFx0XHRyZXR1cm4gcmVzdWx0ICsgcHJlZk5tYXNrO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzdWx0ICsgcHJlZk5tYXNrLnNsaWNlKHJlc0xlbik7XG5cdH1cblxuXHQvLyBnZXQgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHRoYXQgd2VyZSBzaGlmdGVkXG5cdHByaXZhdGUgX251bWJlclNraXBlZFN5bWJvbHModmFsdWU6IHN0cmluZyk6IG51bWJlciB7XG5cdFx0Y29uc3QgcmVnZXggPSAvKF58XFxEKShcXGRcXEQpL2c7XG5cdFx0bGV0IG1hdGNoID0gcmVnZXguZXhlYyh2YWx1ZSk7XG5cdFx0bGV0IGNvdW50U2tpcGVkU3ltYm9sID0gMDtcblx0XHR3aGlsZSAobWF0Y2ggIT0gbnVsbCkge1xuXHRcdFx0Y291bnRTa2lwZWRTeW1ib2wgKz0gMTtcblx0XHRcdG1hdGNoID0gcmVnZXguZXhlYyh2YWx1ZSk7XG5cdFx0fVxuXHRcdHJldHVybiBjb3VudFNraXBlZFN5bWJvbDtcblx0fVxuXG5cdHB1YmxpYyBhcHBseVZhbHVlQ2hhbmdlcyhcblx0XHRwb3NpdGlvbjogbnVtYmVyLFxuXHRcdGp1c3RQYXN0ZWQ6IGJvb2xlYW4sXG5cdFx0YmFja3NwYWNlZDogYm9vbGVhbixcblx0XHRjYjogRnVuY3Rpb24gPSAoKSA9PiB7fSxcblx0KTogdm9pZCB7XG5cdFx0Y29uc3QgZm9ybUVsZW1lbnQgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdFx0Zm9ybUVsZW1lbnQudmFsdWUgPSB0aGlzLmFwcGx5TWFzayhcblx0XHRcdGZvcm1FbGVtZW50LnZhbHVlLFxuXHRcdFx0dGhpcy5tYXNrRXhwcmVzc2lvbixcblx0XHRcdHBvc2l0aW9uLFxuXHRcdFx0anVzdFBhc3RlZCxcblx0XHRcdGJhY2tzcGFjZWQsXG5cdFx0XHRjYixcblx0XHQpO1xuXHRcdGlmIChmb3JtRWxlbWVudCA9PT0gdGhpcy5fZ2V0QWN0aXZlRWxlbWVudCgpKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuY2xlYXJJZk5vdE1hdGNoRm4oKTtcblx0fVxuXG5cdHB1YmxpYyBoaWRlSW5wdXQoaW5wdXRWYWx1ZTogc3RyaW5nLCBtYXNrRXhwcmVzc2lvbjogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gaW5wdXRWYWx1ZVxuXHRcdFx0LnNwbGl0KCcnKVxuXHRcdFx0Lm1hcCgoY3Vycjogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG5cdFx0XHRcdGlmIChcblx0XHRcdFx0XHR0aGlzLm1hc2tBdmFpbGFibGVQYXR0ZXJucyAmJlxuXHRcdFx0XHRcdHRoaXMubWFza0F2YWlsYWJsZVBhdHRlcm5zW21hc2tFeHByZXNzaW9uW2luZGV4XSFdICYmXG5cdFx0XHRcdFx0dGhpcy5tYXNrQXZhaWxhYmxlUGF0dGVybnNbbWFza0V4cHJlc3Npb25baW5kZXhdIV0/LnN5bWJvbFxuXHRcdFx0XHQpIHtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcy5tYXNrQXZhaWxhYmxlUGF0dGVybnNbbWFza0V4cHJlc3Npb25baW5kZXhdIV0/LnN5bWJvbDtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gY3Vycjtcblx0XHRcdH0pXG5cdFx0XHQuam9pbignJyk7XG5cdH1cblxuXHQvLyB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBuZWNlc3NhcnksIGl0IGNoZWNrcyByZXN1bHQgYWdhaW5zdCBtYXNrRXhwcmVzc2lvblxuXHRwdWJsaWMgZ2V0QWN0dWFsVmFsdWUocmVzOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGNvbXBhcmU6IHN0cmluZ1tdID0gcmVzXG5cdFx0XHQuc3BsaXQoJycpXG5cdFx0XHQuZmlsdGVyKFxuXHRcdFx0XHQoc3ltYm9sOiBzdHJpbmcsIGk6IG51bWJlcikgPT5cblx0XHRcdFx0XHR0aGlzLl9jaGVja1N5bWJvbE1hc2soc3ltYm9sLCB0aGlzLm1hc2tFeHByZXNzaW9uW2ldISkgfHxcblx0XHRcdFx0XHQodGhpcy5tYXNrU3BlY2lhbENoYXJhY3RlcnMuaW5jbHVkZXModGhpcy5tYXNrRXhwcmVzc2lvbltpXSEpICYmXG5cdFx0XHRcdFx0XHRzeW1ib2wgPT09IHRoaXMubWFza0V4cHJlc3Npb25baV0pLFxuXHRcdFx0KTtcblx0XHRpZiAoY29tcGFyZS5qb2luKCcnKSA9PT0gcmVzKSB7XG5cdFx0XHRyZXR1cm4gY29tcGFyZS5qb2luKCcnKTtcblx0XHR9XG5cdFx0cmV0dXJuIHJlcztcblx0fVxuXG5cdHB1YmxpYyBzaGlmdFR5cGVkU3ltYm9scyhpbnB1dFZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGxldCBzeW1ib2xUb1JlcGxhY2UgPSAnJztcblx0XHRjb25zdCBuZXdJbnB1dFZhbHVlOiAoc3RyaW5nIHwgdW5kZWZpbmVkKVtdID1cblx0XHRcdChpbnB1dFZhbHVlICYmXG5cdFx0XHRcdGlucHV0VmFsdWUuc3BsaXQoJycpLm1hcCgoY3VyclN5bWJvbDogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0dGhpcy5tYXNrU3BlY2lhbENoYXJhY3RlcnMuaW5jbHVkZXMoaW5wdXRWYWx1ZVtpbmRleCArIDFdISkgJiZcblx0XHRcdFx0XHRcdGlucHV0VmFsdWVbaW5kZXggKyAxXSAhPT0gdGhpcy5tYXNrRXhwcmVzc2lvbltpbmRleCArIDFdXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRzeW1ib2xUb1JlcGxhY2UgPSBjdXJyU3ltYm9sO1xuXHRcdFx0XHRcdFx0cmV0dXJuIGlucHV0VmFsdWVbaW5kZXggKyAxXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKHN5bWJvbFRvUmVwbGFjZS5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdGNvbnN0IHJlcGxhY2VTeW1ib2w6IHN0cmluZyA9IHN5bWJvbFRvUmVwbGFjZTtcblx0XHRcdFx0XHRcdHN5bWJvbFRvUmVwbGFjZSA9ICcnO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHJlcGxhY2VTeW1ib2w7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiBjdXJyU3ltYm9sO1xuXHRcdFx0XHR9KSkgfHxcblx0XHRcdFtdO1xuXHRcdHJldHVybiBuZXdJbnB1dFZhbHVlLmpvaW4oJycpO1xuXHR9XG5cblx0LyoqXG5cdCAqIENvbnZlcnQgbnVtYmVyIHZhbHVlIHRvIHN0cmluZ1xuXHQgKiAzLjE0MTUgLT4gJzMuMTQxNSdcblx0ICogMWUtNyAtPiAnMC4wMDAwMDAxJ1xuXHQgKi9cblx0cHVibGljIG51bWJlclRvU3RyaW5nKHZhbHVlOiBudW1iZXIgfCBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmICghdmFsdWUgJiYgdmFsdWUgIT09IDApIHtcblx0XHRcdHJldHVybiBTdHJpbmcodmFsdWUpO1xuXHRcdH1cblx0XHRyZXR1cm4gTnVtYmVyKHZhbHVlKS50b0xvY2FsZVN0cmluZygnZnVsbHdpZGUnLCB7XG5cdFx0XHR1c2VHcm91cGluZzogZmFsc2UsXG5cdFx0XHRtYXhpbXVtRnJhY3Rpb25EaWdpdHM6IDIwLFxuXHRcdH0pO1xuXHR9XG5cblx0cHVibGljIHNob3dNYXNrSW5JbnB1dChpbnB1dFZhbD86IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKHRoaXMuc2hvd01hc2tUeXBlZCAmJiAhIXRoaXMuc2hvd25NYXNrRXhwcmVzc2lvbikge1xuXHRcdFx0aWYgKHRoaXMubWFza0V4cHJlc3Npb24ubGVuZ3RoICE9PSB0aGlzLnNob3duTWFza0V4cHJlc3Npb24ubGVuZ3RoKSB7XG5cdFx0XHRcdHRocm93IG5ldyBFcnJvcignTWFzayBleHByZXNzaW9uIG11c3QgbWF0Y2ggbWFzayBwbGFjZWhvbGRlciBsZW5ndGgnKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHJldHVybiB0aGlzLnNob3duTWFza0V4cHJlc3Npb247XG5cdFx0XHR9XG5cdFx0fSBlbHNlIGlmICh0aGlzLnNob3dNYXNrVHlwZWQpIHtcblx0XHRcdGlmIChpbnB1dFZhbCkge1xuXHRcdFx0XHRpZiAodGhpcy5tYXNrRXhwcmVzc2lvbiA9PT0gJ0lQJykge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLl9jaGVja0ZvcklwKGlucHV0VmFsKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAodGhpcy5tYXNrRXhwcmVzc2lvbiA9PT0gJ0NQRl9DTlBKJykge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzLl9jaGVja0ZvckNwZkNucGooaW5wdXRWYWwpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdGhpcy5tYXNrRXhwcmVzc2lvbi5yZXBsYWNlKC9cXHcvZywgdGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcik7XG5cdFx0fVxuXHRcdHJldHVybiAnJztcblx0fVxuXG5cdHB1YmxpYyBjbGVhcklmTm90TWF0Y2hGbigpOiB2b2lkIHtcblx0XHRjb25zdCBmb3JtRWxlbWVudCA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcblx0XHRpZiAoXG5cdFx0XHR0aGlzLmNsZWFySWZOb3RNYXRjaCAmJlxuXHRcdFx0dGhpcy5wcmVmaXgubGVuZ3RoICsgdGhpcy5tYXNrRXhwcmVzc2lvbi5sZW5ndGggKyB0aGlzLnN1ZmZpeC5sZW5ndGggIT09XG5cdFx0XHRcdGZvcm1FbGVtZW50LnZhbHVlLnJlcGxhY2UoL18vZywgJycpLmxlbmd0aFxuXHRcdCkge1xuXHRcdFx0dGhpcy5mb3JtRWxlbWVudFByb3BlcnR5ID0gWyd2YWx1ZScsICcnXTtcblx0XHRcdHRoaXMuYXBwbHlNYXNrKGZvcm1FbGVtZW50LnZhbHVlLCB0aGlzLm1hc2tFeHByZXNzaW9uKTtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgc2V0IGZvcm1FbGVtZW50UHJvcGVydHkoW25hbWUsIHZhbHVlXTogW3N0cmluZywgc3RyaW5nIHwgYm9vbGVhbl0pIHtcblx0XHRQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+XG5cdFx0XHR0aGlzLl9yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIG5hbWUsIHZhbHVlKSxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIGNoZWNrU3BlY2lhbENoYXJBbW91bnQobWFzazogc3RyaW5nKTogbnVtYmVyIHtcblx0XHRjb25zdCBjaGFyczogc3RyaW5nW10gPSBtYXNrLnNwbGl0KCcnKS5maWx0ZXIoKGl0ZW06IHN0cmluZykgPT4gdGhpcy5fZmluZFNwZWNpYWxDaGFyKGl0ZW0pKTtcblx0XHRyZXR1cm4gY2hhcnMubGVuZ3RoO1xuXHR9XG5cblx0cHVibGljIHJlbW92ZU1hc2soaW5wdXRWYWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5fcmVtb3ZlTWFzayhcblx0XHRcdHRoaXMuX3JlbW92ZVN1ZmZpeCh0aGlzLl9yZW1vdmVQcmVmaXgoaW5wdXRWYWx1ZSkpLFxuXHRcdFx0dGhpcy5tYXNrU3BlY2lhbENoYXJhY3RlcnMuY29uY2F0KCdfJykuY29uY2F0KHRoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXIpLFxuXHRcdCk7XG5cdH1cblxuXHRwcml2YXRlIF9jaGVja0ZvcklwKGlucHV0VmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGlmIChpbnB1dFZhbCA9PT0gJyMnKSB7XG5cdFx0XHRyZXR1cm4gYCR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0uJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfS4ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9LiR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn1gO1xuXHRcdH1cblx0XHRjb25zdCBhcnI6IHN0cmluZ1tdID0gW107XG5cdFx0Zm9yIChsZXQgaSA9IDA7IGkgPCBpbnB1dFZhbC5sZW5ndGg7IGkrKykge1xuXHRcdFx0aWYgKGlucHV0VmFsW2ldPy5tYXRjaCgnXFxcXGQnKSkge1xuXHRcdFx0XHRhcnIucHVzaChpbnB1dFZhbFtpXSEpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoYXJyLmxlbmd0aCA8PSAzKSB7XG5cdFx0XHRyZXR1cm4gYCR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0uJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfS4ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9YDtcblx0XHR9XG5cdFx0aWYgKGFyci5sZW5ndGggPiAzICYmIGFyci5sZW5ndGggPD0gNikge1xuXHRcdFx0cmV0dXJuIGAke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9LiR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn1gO1xuXHRcdH1cblx0XHRpZiAoYXJyLmxlbmd0aCA+IDYgJiYgYXJyLmxlbmd0aCA8PSA5KSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcjtcblx0XHR9XG5cdFx0aWYgKGFyci5sZW5ndGggPiA5ICYmIGFyci5sZW5ndGggPD0gMTIpIHtcblx0XHRcdHJldHVybiAnJztcblx0XHR9XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0cHJpdmF0ZSBfY2hlY2tGb3JDcGZDbnBqKGlucHV0VmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdGNvbnN0IGNwZiA9XG5cdFx0XHRgJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9YCArXG5cdFx0XHRgLiR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWAgK1xuXHRcdFx0YC4ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn1gICtcblx0XHRcdGAtJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn1gO1xuXHRcdGNvbnN0IGNucGogPVxuXHRcdFx0YCR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9YCArXG5cdFx0XHRgLiR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWAgK1xuXHRcdFx0YC4ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn1gICtcblx0XHRcdGAvJHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfSR7dGhpcy5wbGFjZUhvbGRlckNoYXJhY3Rlcn0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWAgK1xuXHRcdFx0YC0ke3RoaXMucGxhY2VIb2xkZXJDaGFyYWN0ZXJ9JHt0aGlzLnBsYWNlSG9sZGVyQ2hhcmFjdGVyfWA7XG5cblx0XHRpZiAoaW5wdXRWYWwgPT09ICcjJykge1xuXHRcdFx0cmV0dXJuIGNwZjtcblx0XHR9XG5cdFx0Y29uc3QgYXJyOiBzdHJpbmdbXSA9IFtdO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgaW5wdXRWYWwubGVuZ3RoOyBpKyspIHtcblx0XHRcdGlmIChpbnB1dFZhbFtpXT8ubWF0Y2goJ1xcXFxkJykpIHtcblx0XHRcdFx0YXJyLnB1c2goaW5wdXRWYWxbaV0hKTtcblx0XHRcdH1cblx0XHR9XG5cdFx0aWYgKGFyci5sZW5ndGggPD0gMykge1xuXHRcdFx0cmV0dXJuIGNwZi5zbGljZShhcnIubGVuZ3RoLCBjcGYubGVuZ3RoKTtcblx0XHR9XG5cdFx0aWYgKGFyci5sZW5ndGggPiAzICYmIGFyci5sZW5ndGggPD0gNikge1xuXHRcdFx0cmV0dXJuIGNwZi5zbGljZShhcnIubGVuZ3RoICsgMSwgY3BmLmxlbmd0aCk7XG5cdFx0fVxuXHRcdGlmIChhcnIubGVuZ3RoID4gNiAmJiBhcnIubGVuZ3RoIDw9IDkpIHtcblx0XHRcdHJldHVybiBjcGYuc2xpY2UoYXJyLmxlbmd0aCArIDIsIGNwZi5sZW5ndGgpO1xuXHRcdH1cblx0XHRpZiAoYXJyLmxlbmd0aCA+IDkgJiYgYXJyLmxlbmd0aCA8IDExKSB7XG5cdFx0XHRyZXR1cm4gY3BmLnNsaWNlKGFyci5sZW5ndGggKyAzLCBjcGYubGVuZ3RoKTtcblx0XHR9XG5cdFx0aWYgKGFyci5sZW5ndGggPT09IDExKSB7XG5cdFx0XHRyZXR1cm4gJyc7XG5cdFx0fVxuXHRcdGlmIChhcnIubGVuZ3RoID09PSAxMikge1xuXHRcdFx0aWYgKGlucHV0VmFsLmxlbmd0aCA9PT0gMTcpIHtcblx0XHRcdFx0cmV0dXJuIGNucGouc2xpY2UoMTYsIGNucGoubGVuZ3RoKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBjbnBqLnNsaWNlKDE1LCBjbnBqLmxlbmd0aCk7XG5cdFx0fVxuXHRcdGlmIChhcnIubGVuZ3RoID4gMTIgJiYgYXJyLmxlbmd0aCA8PSAxNCkge1xuXHRcdFx0cmV0dXJuIGNucGouc2xpY2UoYXJyLmxlbmd0aCArIDQsIGNucGoubGVuZ3RoKTtcblx0XHR9XG5cdFx0cmV0dXJuICcnO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlY3Vyc2l2ZWx5IGRldGVybWluZSB0aGUgY3VycmVudCBhY3RpdmUgZWxlbWVudCBieSBuYXZpZ2F0aW5nIHRoZSBTaGFkb3cgRE9NIHVudGlsIHRoZSBBY3RpdmUgRWxlbWVudCBpcyBmb3VuZC5cblx0ICovXG5cdHByaXZhdGUgX2dldEFjdGl2ZUVsZW1lbnQoZG9jdW1lbnQ6IERvY3VtZW50T3JTaGFkb3dSb290ID0gdGhpcy5kb2N1bWVudCk6IEVsZW1lbnQgfCBudWxsIHtcblx0XHRjb25zdCBzaGFkb3dSb290RWwgPSBkb2N1bWVudD8uYWN0aXZlRWxlbWVudD8uc2hhZG93Um9vdDtcblx0XHRpZiAoIXNoYWRvd1Jvb3RFbD8uYWN0aXZlRWxlbWVudCkge1xuXHRcdFx0cmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiB0aGlzLl9nZXRBY3RpdmVFbGVtZW50KHNoYWRvd1Jvb3RFbCk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFByb3BvZ2F0ZXMgdGhlIGlucHV0IHZhbHVlIGJhY2sgdG8gdGhlIEFuZ3VsYXIgbW9kZWwgYnkgdHJpZ2dlcmluZyB0aGUgb25DaGFuZ2UgZnVuY3Rpb24uIEl0IHdvbid0IGRvIHRoaXMgaWYgd3JpdGluZ1ZhbHVlXG5cdCAqIGlzIHRydWUuIElmIHRoYXQgaXMgdHJ1ZSBpdCBtZWFucyB3ZSBhcmUgY3VycmVudGx5IGluIHRoZSB3cml0ZVZhbHVlIGZ1bmN0aW9uLCB3aGljaCBpcyBzdXBwb3NlZCB0byBvbmx5IHVwZGF0ZSB0aGUgYWN0dWFsXG5cdCAqIERPTSBlbGVtZW50IGJhc2VkIG9uIHRoZSBBbmd1bGFyIG1vZGVsIHZhbHVlLiBJdCBzaG91bGQgYmUgYSBvbmUgd2F5IHByb2Nlc3MsIGkuZS4gd3JpdGVWYWx1ZSBzaG91bGQgbm90IGJlIG1vZGlmeWluZyB0aGUgQW5ndWxhclxuXHQgKiBtb2RlbCB2YWx1ZSB0b28uIFRoZXJlZm9yZSwgd2UgZG9uJ3QgdHJpZ2dlciBvbkNoYW5nZSBpbiB0aGlzIHNjZW5hcmlvLlxuXHQgKiBAcGFyYW0gaW5wdXRWYWx1ZSB0aGUgY3VycmVudCBmb3JtIGlucHV0IHZhbHVlXG5cdCAqL1xuXHRwcml2YXRlIGZvcm1Db250cm9sUmVzdWx0KGlucHV0VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuXHRcdGlmICh0aGlzLndyaXRpbmdWYWx1ZSB8fCAoIXRoaXMudHJpZ2dlck9uTWFza0NoYW5nZSAmJiB0aGlzLm1hc2tDaGFuZ2VkKSkge1xuXHRcdFx0dGhpcy5tYXNrQ2hhbmdlZCA9IGZhbHNlO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmRyb3BTcGVjaWFsQ2hhcmFjdGVycykpIHtcblx0XHRcdHRoaXMub25DaGFuZ2UoXG5cdFx0XHRcdHRoaXMuX3RvTnVtYmVyKFxuXHRcdFx0XHRcdHRoaXMuX3JlbW92ZU1hc2soXG5cdFx0XHRcdFx0XHR0aGlzLl9yZW1vdmVTdWZmaXgodGhpcy5fcmVtb3ZlUHJlZml4KGlucHV0VmFsdWUpKSxcblx0XHRcdFx0XHRcdHRoaXMuZHJvcFNwZWNpYWxDaGFyYWN0ZXJzLFxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdCksXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSBpZiAodGhpcy5kcm9wU3BlY2lhbENoYXJhY3RlcnMpIHtcblx0XHRcdHRoaXMub25DaGFuZ2UodGhpcy5fdG9OdW1iZXIodGhpcy5fY2hlY2tTeW1ib2xzKGlucHV0VmFsdWUpKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMub25DaGFuZ2UodGhpcy5fcmVtb3ZlU3VmZml4KGlucHV0VmFsdWUpKTtcblx0XHR9XG5cdH1cblxuXHRwcml2YXRlIF90b051bWJlcih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCkge1xuXHRcdGlmICghdGhpcy5pc051bWJlclZhbHVlIHx8IHZhbHVlID09PSAnJykge1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0XHRjb25zdCBudW0gPSBOdW1iZXIodmFsdWUpO1xuXHRcdHJldHVybiBOdW1iZXIuaXNOYU4obnVtKSA/IHZhbHVlIDogbnVtO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmVtb3ZlTWFzayh2YWx1ZTogc3RyaW5nLCBzcGVjaWFsQ2hhcmFjdGVyc0ZvclJlbW92ZTogc3RyaW5nW10pOiBzdHJpbmcge1xuXHRcdHJldHVybiB2YWx1ZSA/IHZhbHVlLnJlcGxhY2UodGhpcy5fcmVnRXhwRm9yUmVtb3ZlKHNwZWNpYWxDaGFyYWN0ZXJzRm9yUmVtb3ZlKSwgJycpIDogdmFsdWU7XG5cdH1cblxuXHRwcml2YXRlIF9yZW1vdmVQcmVmaXgodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0aWYgKCF0aGlzLnByZWZpeCkge1xuXHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdH1cblx0XHRyZXR1cm4gdmFsdWUgPyB2YWx1ZS5yZXBsYWNlKHRoaXMucHJlZml4LCAnJykgOiB2YWx1ZTtcblx0fVxuXG5cdHByaXZhdGUgX3JlbW92ZVN1ZmZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcblx0XHRpZiAoIXRoaXMuc3VmZml4KSB7XG5cdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0fVxuXHRcdHJldHVybiB2YWx1ZSA/IHZhbHVlLnJlcGxhY2UodGhpcy5zdWZmaXgsICcnKSA6IHZhbHVlO1xuXHR9XG5cblx0cHJpdmF0ZSBfcmV0cmlldmVTZXBhcmF0b3JWYWx1ZShyZXN1bHQ6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMuX3JlbW92ZU1hc2soXG5cdFx0XHR0aGlzLl9yZW1vdmVTdWZmaXgodGhpcy5fcmVtb3ZlUHJlZml4KHJlc3VsdCkpLFxuXHRcdFx0dGhpcy5tYXNrU3BlY2lhbENoYXJhY3RlcnMsXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgX3JlZ0V4cEZvclJlbW92ZShzcGVjaWFsQ2hhcmFjdGVyc0ZvclJlbW92ZTogc3RyaW5nW10pOiBSZWdFeHAge1xuXHRcdHJldHVybiBuZXcgUmVnRXhwKFxuXHRcdFx0c3BlY2lhbENoYXJhY3RlcnNGb3JSZW1vdmUubWFwKChpdGVtOiBzdHJpbmcpID0+IGBcXFxcJHtpdGVtfWApLmpvaW4oJ3wnKSxcblx0XHRcdCdnaScsXG5cdFx0KTtcblx0fVxuXG5cdHByaXZhdGUgX3JlcGxhY2VEZWNpbWFsTWFya2VyVG9Eb3QodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XG5cdFx0Y29uc3QgbWFya2VycyA9IEFycmF5LmlzQXJyYXkodGhpcy5kZWNpbWFsTWFya2VyKSA/IHRoaXMuZGVjaW1hbE1hcmtlciA6IFt0aGlzLmRlY2ltYWxNYXJrZXJdO1xuXG5cdFx0cmV0dXJuIHZhbHVlLnJlcGxhY2UodGhpcy5fcmVnRXhwRm9yUmVtb3ZlKG1hcmtlcnMpLCAnLicpO1xuXHR9XG5cblx0cHJpdmF0ZSBfY2hlY2tTeW1ib2xzKHJlc3VsdDogc3RyaW5nKTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCB7XG5cdFx0aWYgKHJlc3VsdCA9PT0gJycpIHtcblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXG5cdFx0Y29uc3Qgc2VwYXJhdG9yUHJlY2lzaW9uOiBudW1iZXIgfCBudWxsID0gdGhpcy5fcmV0cmlldmVTZXBhcmF0b3JQcmVjaXNpb24odGhpcy5tYXNrRXhwcmVzc2lvbik7XG5cdFx0Y29uc3Qgc2VwYXJhdG9yVmFsdWU6IHN0cmluZyA9IHRoaXMuX3JlcGxhY2VEZWNpbWFsTWFya2VyVG9Eb3QoXG5cdFx0XHR0aGlzLl9yZXRyaWV2ZVNlcGFyYXRvclZhbHVlKHJlc3VsdCksXG5cdFx0KTtcblxuXHRcdGlmICghdGhpcy5pc051bWJlclZhbHVlKSB7XG5cdFx0XHRyZXR1cm4gc2VwYXJhdG9yVmFsdWU7XG5cdFx0fVxuXHRcdGlmIChzZXBhcmF0b3JQcmVjaXNpb24pIHtcblx0XHRcdGlmIChyZXN1bHQgPT09IHRoaXMuZGVjaW1hbE1hcmtlcikge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzLl9jaGVja1ByZWNpc2lvbih0aGlzLm1hc2tFeHByZXNzaW9uLCBzZXBhcmF0b3JWYWx1ZSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHJldHVybiBOdW1iZXIoc2VwYXJhdG9yVmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdC8vIFRPRE8gc2hvdWxkIHRoaW5rIGFib3V0IGhlbHBlcnMgb3Igc2VwYXJ0aW5nIGRlY2ltYWwgcHJlY2lzaW9uIHRvIG93biBwcm9wZXJ0eVxuXHRwcml2YXRlIF9yZXRyaWV2ZVNlcGFyYXRvclByZWNpc2lvbihtYXNrRXhwcmV0aW9uOiBzdHJpbmcpOiBudW1iZXIgfCBudWxsIHtcblx0XHRjb25zdCBtYXRjaGVyOiBSZWdFeHBNYXRjaEFycmF5IHwgbnVsbCA9IG1hc2tFeHByZXRpb24ubWF0Y2goXG5cdFx0XHRuZXcgUmVnRXhwKGBec2VwYXJhdG9yXFxcXC4oW15kXSopYCksXG5cdFx0KTtcblx0XHRyZXR1cm4gbWF0Y2hlciA/IE51bWJlcihtYXRjaGVyWzFdKSA6IG51bGw7XG5cdH1cblxuXHRwcml2YXRlIF9jaGVja1ByZWNpc2lvbihzZXBhcmF0b3JFeHByZXNzaW9uOiBzdHJpbmcsIHNlcGFyYXRvclZhbHVlOiBzdHJpbmcpOiBudW1iZXIgfCBzdHJpbmcge1xuXHRcdGlmIChzZXBhcmF0b3JFeHByZXNzaW9uLmluZGV4T2YoJzInKSA+IDApIHtcblx0XHRcdHJldHVybiBOdW1iZXIoc2VwYXJhdG9yVmFsdWUpLnRvRml4ZWQoMik7XG5cdFx0fVxuXHRcdHJldHVybiBOdW1iZXIoc2VwYXJhdG9yVmFsdWUpO1xuXHR9XG59XG4iXX0=
@@ -666,6 +666,10 @@ class MaskService extends MaskApplierService {
666
666
  ? this.shiftTypedSymbols(actualResult.join(''))
667
667
  : inputValue;
668
668
  }
669
+ if (this.showMaskTyped) {
670
+ // eslint-disable-next-line no-param-reassign
671
+ inputValue = this.removeMask(inputValue);
672
+ }
669
673
  newInputValue = Boolean(newInputValue) && newInputValue.length ? newInputValue : inputValue;
670
674
  const result = super.applyMask(newInputValue, maskExpression, position, justPasted, backspaced, cb);
671
675
  this.actualValue = this.getActualValue(result);