@c8y/ngx-components 1017.0.418 → 1017.0.429

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.
@@ -135,6 +135,7 @@ export class DropAreaComponent {
135
135
  this.clearErrors();
136
136
  this.dropped.emit(null);
137
137
  this.onChange(null);
138
+ this.onTouched();
138
139
  this.cd.markForCheck();
139
140
  }
140
141
  writeValue(value) {
@@ -154,6 +155,7 @@ export class DropAreaComponent {
154
155
  this.onTouched = fn;
155
156
  }
156
157
  async onFilesSelected(files) {
158
+ this.onTouched();
157
159
  const hasValidNameLength = this.filesService.checkMaxLength(files);
158
160
  if (!hasValidNameLength) {
159
161
  this.onFileInvalidNameLength();
@@ -335,4 +337,4 @@ var ReadAsType;
335
337
  ReadAsType[ReadAsType["ARRAY_BUFFER"] = 2] = "ARRAY_BUFFER";
336
338
  ReadAsType[ReadAsType["BINARY_STRING"] = 3] = "BINARY_STRING";
337
339
  })(ReadAsType || (ReadAsType = {}));
338
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZHJvcC1hcmVhL2Ryb3AtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Ryb3AtYXJlYS9kcm9wLWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUFzRDVCLFlBQ1UsRUFBcUIsRUFDckIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDM0IsS0FBZ0I7UUFIaEIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBVztRQXhEakIsVUFBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixZQUFPLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFD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QUFFO2dCQUNJLE1BQU07c0JBQTdDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFVdEMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFzUm5DLElBQUssVUFLSjtBQUxELFdBQUssVUFBVTtJQUNiLDJDQUFJLENBQUE7SUFDSixtREFBUSxDQUFBO0lBQ1IsMkRBQVksQ0FBQTtJQUNaLDZEQUFhLENBQUE7QUFDZixDQUFDLEVBTEksVUFBVSxLQUFWLFVBQVUsUUFLZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBnZXQsIG1hcCwgc29tZSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBCeXRlc1BpcGUgfSBmcm9tICcuLi9jb21tb24vYnl0ZXMucGlwZSc7XG5pbXBvcnQgeyBGaWxlc1NlcnZpY2UgfSBmcm9tICcuLi9jb21tb24vZmlsZXMuc2VydmljZSc7XG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcblxuLyoqXG4gKiBBIGRyb3Atem9uZSB3aGljaCBpcyBhIGZpbGUgc2VsZWN0b3IgYWxsb3dpbmcgdXNlcnMgdG8gc2VsZWN0IGZpbGUocykgZnJvbSB0aGVpciBmaWxlIHN5c3RlbSwgZWl0aGVyIG5hdGl2ZWx5IG9yIGJ5IGRyYWcgYW5kIGRyb3AuXG4gKlxuICogIyMgRXhhbXBsZTpcbiAqXG4gKiBgYGBodG1sXG4gKiAgPGRpdj5cbiAqICAgIDxjOHktZHJvcC1hcmVhXG4gKiAgICAgIChkcm9wcGVkKT1cInVwbG9hZEZpbGUoJGV2ZW50KVwiXG4gKiAgICAgIFtpY29uXT1cIid1cGxvYWQnXCJcbiAqICAgICAgW2FjY2VwdF09XCInLnppcCwuN3osdmlkZW8nXCI+XG4gKiAgICA8L2M4eS1kcm9wLWFyZWE+XG4gKiAgPC9kaXY+XG4gKiBgYGBcbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZHJvcC1hcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3AtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEcm9wQXJlYUNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIEBJbnB1dCgpIHRpdGxlID0gZ2V0dGV4dCgnVXBsb2FkIGZpbGUnKTtcbiAgQElucHV0KCkgbWVzc2FnZSA9IGdldHRleHQoJ0Ryb3AgZmlsZSBoZXJlJyk7XG4gIEBJbnB1dCgpIGljb24gPSAncGx1cy1zcXVhcmUnO1xuICBASW5wdXQoKSBsb2FkaW5nTWVzc2FnZSA9IGdldHRleHQoJ1VwbG9hZGluZ+KApicpO1xuICBASW5wdXQoKSBmb3JjZUhpZGVMaXN0OiBib29sZWFuID0gZmFsc2U7XG4gIC8qKiBBZmZlY3RzIGRpc3BsYXlpbmcgYm90aCB0aGUgZHJvcCB6b25lIGFuZCB0aGUgbGlzdCBvZiBkcm9wcGVkIGZpbGVzLiAqL1xuICBASW5wdXQoKSBhbHdheXNTaG93ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsaWNrVG9PcGVuID0gdHJ1ZTtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICAvKipcbiAgICogQ3VycmVudCBwcm9ncmVzcyBvZiB0aGUgdXBsb2FkIGFzIGEgcGVyY2VudGFnZS4gSWYgbm90IGdpdmVuIGEgc3Bpbm5lciB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIHByb2dyZXNzID0gLTE7IC8vIC0xID0gc3Bpbm5lclxuICBAT3V0cHV0KCkgZHJvcHBlZDogRXZlbnRFbWl0dGVyPERyb3BwZWRGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBtYXhBbGxvd2VkRmlsZXMgPSBJbmZpbml0eTtcbiAgQElucHV0KCkgZmlsZXM6IEZpbGVMaXN0O1xuICAvKiogU3BlY2lmaWVzIGEgZmlsdGVyIGZvciB3aGF0IGZpbGUgdHlwZXMgdGhlIHVzZXIgY2FuIHBpY2sgZnJvbSB0aGUgZmlsZSBpbnB1dCBkaWFsb2cgYm94LlxuICAgKiAjIyBFeGFtcGxlOlxuICAgKlxuICAgKiBTcGVjaWZ5IGZpbGUgdHlwZXMgYnkgZXh0ZW5zaW9uczpcbiAgICogYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIicuemlwLC43eidcIlxuICAgKiAgLi4uXG4gICAqIGBgYFxuICAgKlxuICAgKiBTcGVjaWZ5IGZpbGUgdHlwZXMgYnkgZXh0ZW5zaW9ucyBhbmQgZ2VuZXJpYyB0eXBlcyBbR0VORVJJQ19GSUxFX1RZUEVde0BsaW5rIEdFTkVSSUNfRklMRV9UWVBFfTpcbiAgICogYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIicucGRmLGFyY2hpdmUnXCJcbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGdlbmVyaWMgdHlwZXMgW0dFTkVSSUNfRklMRV9UWVBFXXtAbGluayBHRU5FUklDX0ZJTEVfVFlQRX06XG4gICAqICBgYGBodG1sXG4gICAqICAuLi5cbiAgICogIFthY2NlcHRdPVwiJ2FyY2hpdmUsdmlkZW8nXCJcbiAgICogIC4uLlxuICAgKlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nO1xuICBpc092ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JzOiBib29sZWFuID0gZmFsc2U7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBmaWxlc05hbWVTdHJpbmc6IHN0cmluZztcbiAgYWNjZXB0ZWRFeHRzOiBzdHJpbmdbXTtcblxuICBAVmlld0NoaWxkKCdhcmVhJywgeyBzdGF0aWM6IHRydWUgfSkgYXJlYTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnem9uZScsIHsgc3RhdGljOiBmYWxzZSB9KSB6b25lOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgcGlja2VyOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZmlsZXNTZXJ2aWNlOiBGaWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBieXRlczogQnl0ZXNQaXBlXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9ua2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLnBpY2tlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hY2NlcHRlZEV4dHMgPSB0aGlzLmZpbGVzU2VydmljZS5leHRyYWN0RmlsZUV4dGVuc2lvbnModGhpcy5hY2NlcHQpLm1hcCh0ID0+IGAuJHt0fWApO1xuICAgIHRoaXMuYWx3YXlzU2hvdyA9IHRoaXMuYWx3YXlzU2hvdyB8fCB0aGlzLmFyZWEubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDA7XG5cbiAgICBpZiAodGhpcy5maWxlcyAmJiB0aGlzLmlzRmlsZXNBbk9iamVjdE9yQXJyYXkoKSAmJiB0aGlzLmZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25GaWxlc1NlbGVjdGVkKHRoaXMuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBzdHlsZSBvZiB0aGUgZHJvcCB6b25lIGVsZW1lbnQgd2hlbiBhIGZpbGUgaXMgZHJhZ2dlZCBvdmVyIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5hcmVhLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4JztcbiAgICB0aGlzLm9uT3ZlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIGNvbXB1dGVyIGJyb3dzZXIgd2l0aCBmaWxlcyB0byBkcm9wIGludG8gZHJvcC1hcmVhIHpvbmUuXG4gICAqL1xuICBzaG93UGlja2VyKCRldmVudD8pOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5waWNrZXIubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMucGlja2VyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIG9uIG92ZXIgZHJvcCBhcmVhLCBidXQgbm90IGRyb3BwZWQuXG4gICAqL1xuICBvbk92ZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzT3Zlcikge1xuICAgICAgdGhpcy5pc092ZXIgPSB0cnVlO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gZmlsZSBpcyBkcm9wcGVkLlxuICAgKi9cbiAgb25QaWNrKCRldmVudCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JzID0gZmFsc2U7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCgkZXZlbnQpO1xuICAgIHRoaXMub25GaWxlc1NlbGVjdGVkKCRldmVudC50YXJnZXQuZmlsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBmaWxlIHdoZW4gaXQgaXMgZHJvcHBlZCBpbnRvIGRyb3AtYXJlYS5cbiAgICovXG4gIG9uRHJvcCgkZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQoJGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyk7XG4gICAgdGhpcy5zdG9wRHJhZ2dpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgY29uZGl0aW9uIHdoYXQgc2hvdWxkIGJlIGRpc3BsYXllZDogZHJvcC1hcmVhIHpvbmUgb3IgbGlzdCBvZiBkcm9wcGVkIGZpbGVzLlxuICAgKi9cbiAgc2hvdWxkU2hvd0ZpbGVzTGlzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0ZpbGVzQW5PYmplY3RPckFycmF5KCkgJiZcbiAgICAgICF0aGlzLmZvcmNlSGlkZUxpc3QgJiZcbiAgICAgIHRoaXMuYWx3YXlzU2hvdyAmJlxuICAgICAgIXRoaXMuaXNGaWxlc0FycmF5RW1wdHkoKSAmJlxuICAgICAgIXRoaXMuaGFzRW1wdHlGaWxlcygpICYmXG4gICAgICAhdGhpcy5pc1Rvb01hbnlGaWxlcygpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIHBpY2tlZCBvdmVyIHdlYiBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHN0b3BEcmFnZ2luZygpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICB0aGlzLmlzT3ZlciA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBmaWxlcyBhbHJlYWR5IGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBvbkRlbGV0ZSgpIHtcbiAgICBkZWxldGUgdGhpcy5maWxlcztcbiAgICBkZWxldGUgdGhpcy5maWxlc05hbWVTdHJpbmc7XG4gICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KG51bGwpO1xuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9IF8gPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5maWxlcyA9IHZhbHVlO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMub25EZWxldGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlc05hbWVTdHJpbmcgPSB0aGlzLmdldEZpbGVzTmFtZXNBc1N0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uRmlsZXNTZWxlY3RlZChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCBoYXNWYWxpZE5hbWVMZW5ndGggPSB0aGlzLmZpbGVzU2VydmljZS5jaGVja01heExlbmd0aChmaWxlcyk7XG4gICAgaWYgKCFoYXNWYWxpZE5hbWVMZW5ndGgpIHtcbiAgICAgIHRoaXMub25GaWxlSW52YWxpZE5hbWVMZW5ndGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXZlVmFsaWRUeXBlcyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmhhdmVWYWxpZEV4dGVuc2lvbnMoZmlsZXMsIHRoaXMuYWNjZXB0KTtcbiAgICBpZiAoIWhhdmVWYWxpZFR5cGVzKSB7XG4gICAgICB0aGlzLm9uRmlsZUludmFsaWRUeXBlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaGF2ZVZhbGlkU2l6ZXMgPSBhd2FpdCB0aGlzLmZpbGVzU2VydmljZS5oYXZlVmFsaWRTaXplcyhmaWxlcyk7XG4gICAgaWYgKCFoYXZlVmFsaWRTaXplcykge1xuICAgICAgYXdhaXQgdGhpcy5vbkZpbGVJbnZhbGlkU2l6ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICB0aGlzLmZpbGVzTmFtZVN0cmluZyA9IHRoaXMuZ2V0RmlsZXNOYW1lc0FzU3RyaW5nKGZpbGVzKTtcbiAgICB0aGlzLmVycm9ycyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuaXNUb29NYW55RmlsZXMoKSkge1xuICAgICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgdG9vTWFueUZpbGVzOiB0cnVlIH0pO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBnZXR0ZXh0KCdUb28gbWFueSBmaWxlcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNFbXB0eUZpbGVzKCkpIHtcbiAgICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGVtcHR5RmlsZXM6IHRydWUgfSk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ0ZpbGUgbXVzdCBub3QgYmUgZW1wdHksIHNlbGVjdCBhbm90aGVyIG9uZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcm9wcGVkRmlsZXM6IERyb3BwZWRGaWxlW10gPSB0aGlzLmNvbXBvc2UoZmlsZXMpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KGRyb3BwZWRGaWxlcyk7XG4gICAgdGhpcy5vbkNoYW5nZShkcm9wcGVkRmlsZXMpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsZUludmFsaWROYW1lTGVuZ3RoKCkge1xuICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMoeyBpbnZhbGlkTmFtZUxlbmd0aDogdHJ1ZSB9KTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ1RoZSBmaWxlbmFtZSBpcyB0b28gbG9uZy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlSW52YWxpZFR5cGUoKSB7XG4gICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWRUeXBlOiB0cnVlIH0pO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIGZpbGUgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25GaWxlSW52YWxpZFNpemUoKSB7XG4gICAgY29uc3QgbXNnID0gZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIGZpbGUgaXMgdG9vIGxhcmdlLiBUaGUgc2l6ZSBsaW1pdCBpcyB7eyBsaW1pdCB9fS4nKTtcbiAgICBjb25zdCBsaW1pdCA9IHRoaXMuYnl0ZXMudHJhbnNmb3JtKGF3YWl0IHRoaXMuZmlsZXNTZXJ2aWNlLmxvYWRCeXRlc1NpemVMaW1pdCgpKTtcbiAgICB0aGlzLmVycm9ycyA9IHRydWU7XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgaW52YWxpZFNpemU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobXNnLCB7IGxpbWl0IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlc05hbWVzQXNTdHJpbmcoZmlsZXM6IEZpbGVMaXN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWFwKGZpbGVzLCAoeyBuYW1lIH0pID0+IG5hbWUpLmpvaW4oJywgJyk7XG4gIH1cblxuICBwcml2YXRlIGlzRmlsZXNBcnJheUVtcHR5KCkge1xuICAgIHJldHVybiBnZXQodGhpcywgJ2ZpbGVzLmxlbmd0aCcsIDApID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb01hbnlGaWxlcygpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMsICdmaWxlcy5sZW5ndGgnLCAwKSA+IHRoaXMubWF4QWxsb3dlZEZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVzQW5PYmplY3RPckFycmF5KCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWxlcyA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIGhhc0VtcHR5RmlsZXMoKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzRmlsZXNBcnJheUVtcHR5KCkpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuaXNBbnlGaWxlRW1wdHkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlGaWxlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNvbWUoQXJyYXkuZnJvbSh0aGlzLmZpbGVzKSwgWydzaXplJywgMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckVycm9ycygpIHtcbiAgICBkZWxldGUgdGhpcy5lcnJvck1lc3NhZ2U7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHByZXZlbnREZWZhdWx0KCRldmVudD8pIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBvc2UoZmlsZXM6IEZpbGVMaXN0KTogRHJvcHBlZEZpbGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZmlsZXMpLm1hcChmaWxlID0+ICh7XG4gICAgICBmaWxlLFxuICAgICAgcmVhZEFzSnNvbjogYXN5bmMgKCkgPT4gSlNPTi5wYXJzZShhd2FpdCB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSksXG4gICAgICByZWFkQXNUZXh0OiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSxcbiAgICAgIHJlYWRBc0FycmF5QnVmZmVyOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5BUlJBWV9CVUZGRVIpLFxuICAgICAgcmVhZEFzQmluYXJ5U3RyaW5nOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5CSU5BUllfU1RSSU5HKSxcbiAgICAgIHJlYWRBc0RhdGFVUkw6IGFzeW5jICgpID0+IHRoaXMucmVhZChmaWxlLCBSZWFkQXNUeXBlLkRBVEFfVVJMKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZChmaWxlLCB0eXBlOiBSZWFkQXNUeXBlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUmVhZEFzVHlwZS5URVhUOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkFSUkFZX0JVRkZFUjoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFJlYWRBc1R5cGUuQklOQVJZX1NUUklORzoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkRBVEFfVVJMOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB0aGlzLm9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCkge1xuICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVhZGVyLmVycm9yKSB7XG4gICAgICByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICB9XG4gICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BwZWRGaWxlIHtcbiAgZmlsZTogRmlsZTtcbiAgcmVhZEFzVGV4dCgpO1xuICByZWFkQXNBcnJheUJ1ZmZlcigpO1xuICByZWFkQXNCaW5hcnlTdHJpbmcoKTtcbiAgcmVhZEFzRGF0YVVSTCgpO1xuICByZWFkQXNKc29uKCk7XG59XG5cbmVudW0gUmVhZEFzVHlwZSB7XG4gIFRFWFQsXG4gIERBVEFfVVJMLFxuICBBUlJBWV9CVUZGRVIsXG4gIEJJTkFSWV9TVFJJTkdcbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJkcm9wLXpvbmVcIlxuICAqbmdJZj1cIiFzaG91bGRTaG93RmlsZXNMaXN0KClcIlxuICBbbmdDbGFzc109XCJ7ICdoYXMtZXJyb3JzJzogZXJyb3JzIH1cIlxuICBbc3R5bGUucG9pbnRlckV2ZW50c109XCJsb2FkaW5nID8gJ25vbmUnIDogJ2F1dG8nXCJcbiAgI3pvbmVcbiAgKGRyYWdsZWF2ZSk9XCJzdG9wRHJhZ2dpbmcoKVwiXG4gIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgKGRyYWdvdmVyKT1cIm9uT3ZlcigpXCJcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNPdmVyIHx8IGFsd2F5c1Nob3cgfHwgbG9hZGluZyA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAoY2xpY2spPVwic2hvd1BpY2tlcigkZXZlbnQpXCJcbiAgdGFiaW5kZXg9XCIwXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZpbGUtcGxhY2Vob2xkZXJcIiBbbmdDbGFzc109XCJ7ICdkcmFnLW92ZXInOiBpc092ZXIgfVwiPlxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJkLWZsZXggcC00IGZsZXgtY2VudGVyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MgcHJvZ3Jlc3Mtc3RyaXBlZCBhY3RpdmUgbS0wXCJcbiAgICAgICAgKm5nSWY9XCJwcm9ncmVzcyAhPT0gLTFcIlxuICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDogNTAlXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvZ3Jlc3MgKyAnJSdcIlxuICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCJcbiAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgICAgIGFyaWEtdmFsdWVub3c9XCIwXCJcbiAgICAgICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXG4gICAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1zbmFrZVwiICpuZ0lmPVwicHJvZ3Jlc3MgPT09IC0xXCI+PC9kaXY+XG4gICAgICA8cCBjbGFzcz1cIm0tdC1hdXRvIG0tYi1hdXRvIG0tci04XCI+XG4gICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmdcIiBjbGFzcz1cImhpbnQtcGxhY2Vob2xkZXIgcG9pbnRlclwiPlxuICAgICAgPGkgY2xhc3M9XCJkbHQtYzh5LWljb24te3sgaWNvbiB9fVwiPjwvaT5cbiAgICAgIDxwICpuZ0lmPVwiIWVycm9yc1wiPlxuICAgICAgICA8Yj57eyBtZXNzYWdlIHwgdHJhbnNsYXRlIH19PC9iPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJhbHdheXNTaG93ICYmIGNsaWNrVG9PcGVuXCIgdHJhbnNsYXRlPjwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnNcIiBjbGFzcz1cImhhcy1lcnJvcnNcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZmVlZGJhY2stbWVzc2FnZVwiPlxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImRyb3Atem9uZVwiXG4gICpuZ0lmPVwic2hvdWxkU2hvd0ZpbGVzTGlzdCgpXCJcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNPdmVyIHx8IGFsd2F5c1Nob3cgfHwgbG9hZGluZyA/ICdibG9jaycgOiAnbm9uZSdcIlxuICB0YWJpbmRleD1cIjBcIlxuPlxuICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwicC1hYnNvbHV0ZSBwLTQgZml0LXcgZml0LWggZC1mbGV4IGQtY29sIGotYy1jZW50ZXIgYS1pLWNlbnRlclwiPlxuICAgIDxwIGNsYXNzPVwibS1iLThcIj5cbiAgICAgIDxzdHJvbmc+XG4gICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3N0cm9uZz5cbiAgICA8L3A+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJwcm9ncmVzcyBwcm9ncmVzcy1zdHJpcGVkIGFjdGl2ZSBtLTBcIlxuICAgICAgKm5nSWY9XCJwcm9ncmVzcyAhPT0gLTFcIlxuICAgICAgc3R5bGU9XCJtaW4td2lkdGg6IDgwJVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxuICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgICBhcmlhLXZhbHVlbm93PVwiMFwiXG4gICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcbiAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJwcm9ncmVzcyArICclJ1wiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNwaW5uZXIgcC1yZWxhdGl2ZSBtLTBcIiAqbmdJZj1cInByb2dyZXNzID09PSAtMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJlY3QxXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVjdDJcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWN0M1wiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJlY3Q0XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVjdDVcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiIGNsYXNzPVwiZmlsZS1wbGFjZWhvbGRlciBwLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtNFwiPlxuICAgICAgPGkgYzh5SWNvbj1cImZpbGUtb1wiIGNsYXNzPVwibS1yLThcIj48L2k+XG4gICAgICA8c3BhbiB0aXRsZT1cInt7IGZpbGVzTmFtZVN0cmluZyB9fVwiIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICB7eyBmaWxlc05hbWVTdHJpbmcgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlciBzaG93T25Ib3ZlciBtLWwtYXV0b1wiXG4gICAgICA+XG4gICAgICAgIDxpIGM4eUljb249XCJtaW51cy1jaXJjbGVcIiAoY2xpY2spPVwib25EZWxldGUoKVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGxhYmVsIGZvcj1cImZpbGVcIiBjbGFzcz1cInNyLW9ubHlcIj57eyAnU2VsZWN0IGZpbGUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbjxpbnB1dFxuICAjcGlja2VyXG4gICpuZ0lmPVwiY2xpY2tUb09wZW5cIlxuICAoY2hhbmdlKT1cIm9uUGljaygkZXZlbnQpXCJcbiAgKGNsaWNrKT1cInBpY2tlci5mb2N1cygpXCJcbiAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICBbYWNjZXB0XT1cImFjY2VwdGVkRXh0c1wiXG4gIFttdWx0aXBsZV09XCJtYXhBbGxvd2VkRmlsZXMgPiAxXCJcbiAgdHlwZT1cImZpbGVcIlxuICBjbGFzcz1cImhpZGRlblwiXG4gIGlkPVwiZmlsZVwiXG4vPlxuPGRpdiAjYXJlYSBbaGlkZGVuXT1cImlzT3ZlciB8fCBsb2FkaW5nXCIgKGRyYWdvdmVyKT1cInRvZ2dsZSgpXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
340
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZHJvcC1hcmVhL2Ryb3AtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Ryb3AtYXJlYS9kcm9wLWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7OztBQUUxQzs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUFzRDVCLFlBQ1UsRUFBcUIsRUFDckIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDM0IsS0FBZ0I7UUFIaEIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsVUFBSyxHQUFMLEtBQUssQ0FBVztRQXhEakIsVUFBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQixZQUFPLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFD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RTtnQkFDRyxJQUFJO3NCQUF6QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0ksTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQVV0QyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDOztBQXdSbkMsSUFBSyxVQUtKO0FBTEQsV0FBSyxVQUFVO0lBQ2IsMkNBQUksQ0FBQTtJQUNKLG1EQUFRLENBQUE7SUFDUiwyREFBWSxDQUFBO0lBQ1osNkRBQWEsQ0FBQTtBQUNmLENBQUMsRUFMSSxVQUFVLEtBQVYsVUFBVSxRQUtkIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGdldCwgbWFwLCBzb21lIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJ5dGVzUGlwZSB9IGZyb20gJy4uL2NvbW1vbi9ieXRlcy5waXBlJztcbmltcG9ydCB7IEZpbGVzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9maWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuXG4vKipcbiAqIEEgZHJvcC16b25lIHdoaWNoIGlzIGEgZmlsZSBzZWxlY3RvciBhbGxvd2luZyB1c2VycyB0byBzZWxlY3QgZmlsZShzKSBmcm9tIHRoZWlyIGZpbGUgc3lzdGVtLCBlaXRoZXIgbmF0aXZlbHkgb3IgYnkgZHJhZyBhbmQgZHJvcC5cbiAqXG4gKiAjIyBFeGFtcGxlOlxuICpcbiAqIGBgYGh0bWxcbiAqICA8ZGl2PlxuICogICAgPGM4eS1kcm9wLWFyZWFcbiAqICAgICAgKGRyb3BwZWQpPVwidXBsb2FkRmlsZSgkZXZlbnQpXCJcbiAqICAgICAgW2ljb25dPVwiJ3VwbG9hZCdcIlxuICogICAgICBbYWNjZXB0XT1cIicuemlwLC43eix2aWRlbydcIj5cbiAqICAgIDwvYzh5LWRyb3AtYXJlYT5cbiAqICA8L2Rpdj5cbiAqIGBgYFxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kcm9wLWFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IERyb3BBcmVhQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wQXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgQElucHV0KCkgdGl0bGUgPSBnZXR0ZXh0KCdVcGxvYWQgZmlsZScpO1xuICBASW5wdXQoKSBtZXNzYWdlID0gZ2V0dGV4dCgnRHJvcCBmaWxlIGhlcmUnKTtcbiAgQElucHV0KCkgaWNvbiA9ICdwbHVzLXNxdWFyZSc7XG4gIEBJbnB1dCgpIGxvYWRpbmdNZXNzYWdlID0gZ2V0dGV4dCgnVXBsb2FkaW5n4oCmJyk7XG4gIEBJbnB1dCgpIGZvcmNlSGlkZUxpc3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoqIEFmZmVjdHMgZGlzcGxheWluZyBib3RoIHRoZSBkcm9wIHpvbmUgYW5kIHRoZSBsaXN0IG9mIGRyb3BwZWQgZmlsZXMuICovXG4gIEBJbnB1dCgpIGFsd2F5c1Nob3cgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xpY2tUb09wZW4gPSB0cnVlO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBDdXJyZW50IHByb2dyZXNzIG9mIHRoZSB1cGxvYWQgYXMgYSBwZXJjZW50YWdlLiBJZiBub3QgZ2l2ZW4gYSBzcGlubmVyIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgcHJvZ3Jlc3MgPSAtMTsgLy8gLTEgPSBzcGlubmVyXG4gIEBPdXRwdXQoKSBkcm9wcGVkOiBFdmVudEVtaXR0ZXI8RHJvcHBlZEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIG1heEFsbG93ZWRGaWxlcyA9IEluZmluaXR5O1xuICBASW5wdXQoKSBmaWxlczogRmlsZUxpc3Q7XG4gIC8qKiBTcGVjaWZpZXMgYSBmaWx0ZXIgZm9yIHdoYXQgZmlsZSB0eXBlcyB0aGUgdXNlciBjYW4gcGljayBmcm9tIHRoZSBmaWxlIGlucHV0IGRpYWxvZyBib3guXG4gICAqICMjIEV4YW1wbGU6XG4gICAqXG4gICAqIFNwZWNpZnkgZmlsZSB0eXBlcyBieSBleHRlbnNpb25zOlxuICAgKiBgYGBodG1sXG4gICAqICAuLi5cbiAgICogIFthY2NlcHRdPVwiJy56aXAsLjd6J1wiXG4gICAqICAuLi5cbiAgICogYGBgXG4gICAqXG4gICAqIFNwZWNpZnkgZmlsZSB0eXBlcyBieSBleHRlbnNpb25zIGFuZCBnZW5lcmljIHR5cGVzIFtHRU5FUklDX0ZJTEVfVFlQRV17QGxpbmsgR0VORVJJQ19GSUxFX1RZUEV9OlxuICAgKiBgYGBodG1sXG4gICAqICAuLi5cbiAgICogIFthY2NlcHRdPVwiJy5wZGYsYXJjaGl2ZSdcIlxuICAgKiAgLi4uXG4gICAqIGBgYFxuICAgKlxuICAgKiBTcGVjaWZ5IGZpbGUgdHlwZXMgYnkgZ2VuZXJpYyB0eXBlcyBbR0VORVJJQ19GSUxFX1RZUEVde0BsaW5rIEdFTkVSSUNfRklMRV9UWVBFfTpcbiAgICogIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInYXJjaGl2ZSx2aWRlbydcIlxuICAgKiAgLi4uXG4gICAqXG4gICAqIGBgYFxuICAgKi9cbiAgQElucHV0KCkgYWNjZXB0OiBzdHJpbmc7XG4gIGlzT3ZlcjogYm9vbGVhbiA9IGZhbHNlO1xuICBlcnJvcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XG4gIGZpbGVzTmFtZVN0cmluZzogc3RyaW5nO1xuICBhY2NlcHRlZEV4dHM6IHN0cmluZ1tdO1xuXG4gIEBWaWV3Q2hpbGQoJ2FyZWEnLCB7IHN0YXRpYzogdHJ1ZSB9KSBhcmVhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd6b25lJywgeyBzdGF0aWM6IGZhbHNlIH0pIHpvbmU6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwaWNrZXI6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBmaWxlc1NlcnZpY2U6IEZpbGVzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGJ5dGVzOiBCeXRlc1BpcGVcbiAgKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25rZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMucGlja2VyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjY2VwdGVkRXh0cyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmV4dHJhY3RGaWxlRXh0ZW5zaW9ucyh0aGlzLmFjY2VwdCkubWFwKHQgPT4gYC4ke3R9YCk7XG4gICAgdGhpcy5hbHdheXNTaG93ID0gdGhpcy5hbHdheXNTaG93IHx8IHRoaXMuYXJlYS5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcblxuICAgIGlmICh0aGlzLmZpbGVzICYmIHRoaXMuaXNGaWxlc0FuT2JqZWN0T3JBcnJheSgpICYmIHRoaXMuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQodGhpcy5maWxlcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHN0eWxlIG9mIHRoZSBkcm9wIHpvbmUgZWxlbWVudCB3aGVuIGEgZmlsZSBpcyBkcmFnZ2VkIG92ZXIgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmFyZWEubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnO1xuICAgIHRoaXMub25PdmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgY29tcHV0ZXIgYnJvd3NlciB3aXRoIGZpbGVzIHRvIGRyb3AgaW50byBkcm9wLWFyZWEgem9uZS5cbiAgICovXG4gIHNob3dQaWNrZXIoJGV2ZW50Pyk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudERlZmF1bHQoJGV2ZW50KTtcbiAgICB0aGlzLnBpY2tlci5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5waWNrZXIubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGZpbGUgaXMgb24gb3ZlciBkcm9wIGFyZWEsIGJ1dCBub3QgZHJvcHBlZC5cbiAgICovXG4gIG9uT3ZlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNPdmVyKSB7XG4gICAgICB0aGlzLmlzT3ZlciA9IHRydWU7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIGRyb3BwZWQuXG4gICAqL1xuICBvblBpY2soJGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQoJGV2ZW50LnRhcmdldC5maWxlcyk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGZpbGUgd2hlbiBpdCBpcyBkcm9wcGVkIGludG8gZHJvcC1hcmVhLlxuICAgKi9cbiAgb25Ecm9wKCRldmVudCk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudERlZmF1bHQoJGV2ZW50KTtcbiAgICB0aGlzLm9uRmlsZXNTZWxlY3RlZCgkZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB0aGlzLnN0b3BEcmFnZ2luZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBjb25kaXRpb24gd2hhdCBzaG91bGQgYmUgZGlzcGxheWVkOiBkcm9wLWFyZWEgem9uZSBvciBsaXN0IG9mIGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBzaG91bGRTaG93RmlsZXNMaXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzRmlsZXNBbk9iamVjdE9yQXJyYXkoKSAmJlxuICAgICAgIXRoaXMuZm9yY2VIaWRlTGlzdCAmJlxuICAgICAgdGhpcy5hbHdheXNTaG93ICYmXG4gICAgICAhdGhpcy5pc0ZpbGVzQXJyYXlFbXB0eSgpICYmXG4gICAgICAhdGhpcy5oYXNFbXB0eUZpbGVzKCkgJiZcbiAgICAgICF0aGlzLmlzVG9vTWFueUZpbGVzKClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGZpbGUgaXMgcGlja2VkIG92ZXIgd2ViIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgc3RvcERyYWdnaW5nKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5wcmV2ZW50RGVmYXVsdCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIHRoaXMuaXNPdmVyID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGZpbGVzIGFscmVhZHkgZHJvcHBlZCBmaWxlcy5cbiAgICovXG4gIG9uRGVsZXRlKCkge1xuICAgIGRlbGV0ZSB0aGlzLmZpbGVzO1xuICAgIGRlbGV0ZSB0aGlzLmZpbGVzTmFtZVN0cmluZztcbiAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgdGhpcy5kcm9wcGVkLmVtaXQobnVsbCk7XG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSBfID0+IHVuZGVmaW5lZDtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZmlsZXMgPSB2YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLm9uRGVsZXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsZXNOYW1lU3RyaW5nID0gdGhpcy5nZXRGaWxlc05hbWVzQXNTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkZpbGVzU2VsZWN0ZWQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICBjb25zdCBoYXNWYWxpZE5hbWVMZW5ndGggPSB0aGlzLmZpbGVzU2VydmljZS5jaGVja01heExlbmd0aChmaWxlcyk7XG4gICAgaWYgKCFoYXNWYWxpZE5hbWVMZW5ndGgpIHtcbiAgICAgIHRoaXMub25GaWxlSW52YWxpZE5hbWVMZW5ndGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXZlVmFsaWRUeXBlcyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmhhdmVWYWxpZEV4dGVuc2lvbnMoZmlsZXMsIHRoaXMuYWNjZXB0KTtcbiAgICBpZiAoIWhhdmVWYWxpZFR5cGVzKSB7XG4gICAgICB0aGlzLm9uRmlsZUludmFsaWRUeXBlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaGF2ZVZhbGlkU2l6ZXMgPSBhd2FpdCB0aGlzLmZpbGVzU2VydmljZS5oYXZlVmFsaWRTaXplcyhmaWxlcyk7XG4gICAgaWYgKCFoYXZlVmFsaWRTaXplcykge1xuICAgICAgYXdhaXQgdGhpcy5vbkZpbGVJbnZhbGlkU2l6ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICB0aGlzLmZpbGVzTmFtZVN0cmluZyA9IHRoaXMuZ2V0RmlsZXNOYW1lc0FzU3RyaW5nKGZpbGVzKTtcbiAgICB0aGlzLmVycm9ycyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuaXNUb29NYW55RmlsZXMoKSkge1xuICAgICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgdG9vTWFueUZpbGVzOiB0cnVlIH0pO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBnZXR0ZXh0KCdUb28gbWFueSBmaWxlcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNFbXB0eUZpbGVzKCkpIHtcbiAgICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGVtcHR5RmlsZXM6IHRydWUgfSk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ0ZpbGUgbXVzdCBub3QgYmUgZW1wdHksIHNlbGVjdCBhbm90aGVyIG9uZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcm9wcGVkRmlsZXM6IERyb3BwZWRGaWxlW10gPSB0aGlzLmNvbXBvc2UoZmlsZXMpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KGRyb3BwZWRGaWxlcyk7XG4gICAgdGhpcy5vbkNoYW5nZShkcm9wcGVkRmlsZXMpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsZUludmFsaWROYW1lTGVuZ3RoKCkge1xuICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMoeyBpbnZhbGlkTmFtZUxlbmd0aDogdHJ1ZSB9KTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ1RoZSBmaWxlbmFtZSBpcyB0b28gbG9uZy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlSW52YWxpZFR5cGUoKSB7XG4gICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWRUeXBlOiB0cnVlIH0pO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIGZpbGUgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25GaWxlSW52YWxpZFNpemUoKSB7XG4gICAgY29uc3QgbXNnID0gZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIGZpbGUgaXMgdG9vIGxhcmdlLiBUaGUgc2l6ZSBsaW1pdCBpcyB7eyBsaW1pdCB9fS4nKTtcbiAgICBjb25zdCBsaW1pdCA9IHRoaXMuYnl0ZXMudHJhbnNmb3JtKGF3YWl0IHRoaXMuZmlsZXNTZXJ2aWNlLmxvYWRCeXRlc1NpemVMaW1pdCgpKTtcbiAgICB0aGlzLmVycm9ycyA9IHRydWU7XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgaW52YWxpZFNpemU6IHRydWUgfSk7XG5cbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQobXNnLCB7IGxpbWl0IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlc05hbWVzQXNTdHJpbmcoZmlsZXM6IEZpbGVMaXN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWFwKGZpbGVzLCAoeyBuYW1lIH0pID0+IG5hbWUpLmpvaW4oJywgJyk7XG4gIH1cblxuICBwcml2YXRlIGlzRmlsZXNBcnJheUVtcHR5KCkge1xuICAgIHJldHVybiBnZXQodGhpcywgJ2ZpbGVzLmxlbmd0aCcsIDApID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb01hbnlGaWxlcygpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMsICdmaWxlcy5sZW5ndGgnLCAwKSA+IHRoaXMubWF4QWxsb3dlZEZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVzQW5PYmplY3RPckFycmF5KCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWxlcyA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIGhhc0VtcHR5RmlsZXMoKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzRmlsZXNBcnJheUVtcHR5KCkpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuaXNBbnlGaWxlRW1wdHkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlGaWxlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNvbWUoQXJyYXkuZnJvbSh0aGlzLmZpbGVzKSwgWydzaXplJywgMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckVycm9ycygpIHtcbiAgICBkZWxldGUgdGhpcy5lcnJvck1lc3NhZ2U7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHByZXZlbnREZWZhdWx0KCRldmVudD8pIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBvc2UoZmlsZXM6IEZpbGVMaXN0KTogRHJvcHBlZEZpbGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZmlsZXMpLm1hcChmaWxlID0+ICh7XG4gICAgICBmaWxlLFxuICAgICAgcmVhZEFzSnNvbjogYXN5bmMgKCkgPT4gSlNPTi5wYXJzZShhd2FpdCB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSksXG4gICAgICByZWFkQXNUZXh0OiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSxcbiAgICAgIHJlYWRBc0FycmF5QnVmZmVyOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5BUlJBWV9CVUZGRVIpLFxuICAgICAgcmVhZEFzQmluYXJ5U3RyaW5nOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5CSU5BUllfU1RSSU5HKSxcbiAgICAgIHJlYWRBc0RhdGFVUkw6IGFzeW5jICgpID0+IHRoaXMucmVhZChmaWxlLCBSZWFkQXNUeXBlLkRBVEFfVVJMKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZChmaWxlLCB0eXBlOiBSZWFkQXNUeXBlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUmVhZEFzVHlwZS5URVhUOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkFSUkFZX0JVRkZFUjoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFJlYWRBc1R5cGUuQklOQVJZX1NUUklORzoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkRBVEFfVVJMOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB0aGlzLm9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCkge1xuICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVhZGVyLmVycm9yKSB7XG4gICAgICByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICB9XG4gICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BwZWRGaWxlIHtcbiAgZmlsZTogRmlsZTtcbiAgcmVhZEFzVGV4dCgpO1xuICByZWFkQXNBcnJheUJ1ZmZlcigpO1xuICByZWFkQXNCaW5hcnlTdHJpbmcoKTtcbiAgcmVhZEFzRGF0YVVSTCgpO1xuICByZWFkQXNKc29uKCk7XG59XG5cbmVudW0gUmVhZEFzVHlwZSB7XG4gIFRFWFQsXG4gIERBVEFfVVJMLFxuICBBUlJBWV9CVUZGRVIsXG4gIEJJTkFSWV9TVFJJTkdcbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJkcm9wLXpvbmVcIlxuICAqbmdJZj1cIiFzaG91bGRTaG93RmlsZXNMaXN0KClcIlxuICBbbmdDbGFzc109XCJ7ICdoYXMtZXJyb3JzJzogZXJyb3JzIH1cIlxuICBbc3R5bGUucG9pbnRlckV2ZW50c109XCJsb2FkaW5nID8gJ25vbmUnIDogJ2F1dG8nXCJcbiAgI3pvbmVcbiAgKGRyYWdsZWF2ZSk9XCJzdG9wRHJhZ2dpbmcoKVwiXG4gIChkcm9wKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgKGRyYWdvdmVyKT1cIm9uT3ZlcigpXCJcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNPdmVyIHx8IGFsd2F5c1Nob3cgfHwgbG9hZGluZyA/ICdibG9jaycgOiAnbm9uZSdcIlxuICAoY2xpY2spPVwic2hvd1BpY2tlcigkZXZlbnQpXCJcbiAgdGFiaW5kZXg9XCIwXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZpbGUtcGxhY2Vob2xkZXJcIiBbbmdDbGFzc109XCJ7ICdkcmFnLW92ZXInOiBpc092ZXIgfVwiPlxuICAgIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJkLWZsZXggcC00IGZsZXgtY2VudGVyXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MgcHJvZ3Jlc3Mtc3RyaXBlZCBhY3RpdmUgbS0wXCJcbiAgICAgICAgKm5nSWY9XCJwcm9ncmVzcyAhPT0gLTFcIlxuICAgICAgICBzdHlsZT1cIm1pbi13aWR0aDogNTAlXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicHJvZ3Jlc3MgKyAnJSdcIlxuICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCJcbiAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgICAgIGFyaWEtdmFsdWVub3c9XCIwXCJcbiAgICAgICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXG4gICAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1zbmFrZVwiICpuZ0lmPVwicHJvZ3Jlc3MgPT09IC0xXCI+PC9kaXY+XG4gICAgICA8cCBjbGFzcz1cIm0tdC1hdXRvIG0tYi1hdXRvIG0tci04XCI+XG4gICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3A+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiIWxvYWRpbmdcIiBjbGFzcz1cImhpbnQtcGxhY2Vob2xkZXIgcG9pbnRlclwiPlxuICAgICAgPGkgY2xhc3M9XCJkbHQtYzh5LWljb24te3sgaWNvbiB9fVwiPjwvaT5cbiAgICAgIDxwICpuZ0lmPVwiIWVycm9yc1wiPlxuICAgICAgICA8Yj57eyBtZXNzYWdlIHwgdHJhbnNsYXRlIH19PC9iPlxuICAgICAgICA8YnIgLz5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJhbHdheXNTaG93ICYmIGNsaWNrVG9PcGVuXCIgdHJhbnNsYXRlPjwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxkaXYgKm5nSWY9XCJlcnJvcnNcIiBjbGFzcz1cImhhcy1lcnJvcnNcIj5cbiAgICAgICAgPHAgY2xhc3M9XCJmb3JtLWNvbnRyb2wtZmVlZGJhY2stbWVzc2FnZVwiPlxuICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdlxuICBjbGFzcz1cImRyb3Atem9uZVwiXG4gICpuZ0lmPVwic2hvdWxkU2hvd0ZpbGVzTGlzdCgpXCJcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNPdmVyIHx8IGFsd2F5c1Nob3cgfHwgbG9hZGluZyA/ICdibG9jaycgOiAnbm9uZSdcIlxuICB0YWJpbmRleD1cIjBcIlxuPlxuICA8ZGl2ICpuZ0lmPVwibG9hZGluZ1wiIGNsYXNzPVwicC1hYnNvbHV0ZSBwLTQgZml0LXcgZml0LWggZC1mbGV4IGQtY29sIGotYy1jZW50ZXIgYS1pLWNlbnRlclwiPlxuICAgIDxwIGNsYXNzPVwibS1iLThcIj5cbiAgICAgIDxzdHJvbmc+XG4gICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3N0cm9uZz5cbiAgICA8L3A+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJwcm9ncmVzcyBwcm9ncmVzcy1zdHJpcGVkIGFjdGl2ZSBtLTBcIlxuICAgICAgKm5nSWY9XCJwcm9ncmVzcyAhPT0gLTFcIlxuICAgICAgc3R5bGU9XCJtaW4td2lkdGg6IDgwJVwiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIlxuICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgICBhcmlhLXZhbHVlbm93PVwiMFwiXG4gICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcbiAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXG4gICAgICAgIFtzdHlsZS53aWR0aF09XCJwcm9ncmVzcyArICclJ1wiXG4gICAgICA+PC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNwaW5uZXIgcC1yZWxhdGl2ZSBtLTBcIiAqbmdJZj1cInByb2dyZXNzID09PSAtMVwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJlY3QxXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVjdDJcIj48L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWN0M1wiPjwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInJlY3Q0XCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVjdDVcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhbG9hZGluZ1wiIGNsYXNzPVwiZmlsZS1wbGFjZWhvbGRlciBwLTRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtNFwiPlxuICAgICAgPGkgYzh5SWNvbj1cImZpbGUtb1wiIGNsYXNzPVwibS1yLThcIj48L2k+XG4gICAgICA8c3BhbiB0aXRsZT1cInt7IGZpbGVzTmFtZVN0cmluZyB9fVwiIGNsYXNzPVwidGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICB7eyBmaWxlc05hbWVTdHJpbmcgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgdGl0bGU9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJ7eyAnUmVtb3ZlJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlciBzaG93T25Ib3ZlciBtLWwtYXV0b1wiXG4gICAgICA+XG4gICAgICAgIDxpIGM4eUljb249XCJtaW51cy1jaXJjbGVcIiAoY2xpY2spPVwib25EZWxldGUoKVwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGxhYmVsIGZvcj1cImZpbGVcIiBjbGFzcz1cInNyLW9ubHlcIj57eyAnU2VsZWN0IGZpbGUnIHwgdHJhbnNsYXRlIH19PC9sYWJlbD5cbjxpbnB1dFxuICAjcGlja2VyXG4gICpuZ0lmPVwiY2xpY2tUb09wZW5cIlxuICAoY2hhbmdlKT1cIm9uUGljaygkZXZlbnQpXCJcbiAgKGNsaWNrKT1cInBpY2tlci5mb2N1cygpXCJcbiAgKGJsdXIpPVwib25Ub3VjaGVkKClcIlxuICBbYWNjZXB0XT1cImFjY2VwdGVkRXh0c1wiXG4gIFttdWx0aXBsZV09XCJtYXhBbGxvd2VkRmlsZXMgPiAxXCJcbiAgdHlwZT1cImZpbGVcIlxuICBjbGFzcz1cImhpZGRlblwiXG4gIGlkPVwiZmlsZVwiXG4vPlxuPGRpdiAjYXJlYSBbaGlkZGVuXT1cImlzT3ZlciB8fCBsb2FkaW5nXCIgKGRyYWdvdmVyKT1cInRvZ2dsZSgpXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -19805,6 +19805,7 @@ class DropAreaComponent {
19805
19805
  this.clearErrors();
19806
19806
  this.dropped.emit(null);
19807
19807
  this.onChange(null);
19808
+ this.onTouched();
19808
19809
  this.cd.markForCheck();
19809
19810
  }
19810
19811
  writeValue(value) {
@@ -19826,6 +19827,7 @@ class DropAreaComponent {
19826
19827
  onFilesSelected(files) {
19827
19828
  var _a, _b;
19828
19829
  return __awaiter(this, void 0, void 0, function* () {
19830
+ this.onTouched();
19829
19831
  const hasValidNameLength = this.filesService.checkMaxLength(files);
19830
19832
  if (!hasValidNameLength) {
19831
19833
  this.onFileInvalidNameLength();