@c8y/ngx-components 1019.0.3 → 1019.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"drop-area.component.d.ts","sourceRoot":"","sources":["../../../core/drop-area/drop-area.component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drop-area.component.d.ts","sourceRoot":"","sources":["../../../core/drop-area/drop-area.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EAEjB,UAAU,EACV,YAAY,EAGZ,MAAM,EAGP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,oBAAoB,EAAqB,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE1F,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;;AAGvD;;;;;;;;;;;;GAYG;AAEH,qBAKa,iBAAkB,YAAW,MAAM,EAAE,oBAAoB;IAyDlE,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG;IA5DJ,WAAW,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACvC,KAAK,gBAA0B;IAC/B,OAAO,mBAA6B;IACpC,IAAI,SAAiB;IACrB,cAAc,eAAyB;IACvC,aAAa,UAAS;IAC/B,2EAA2E;IAClE,UAAU,UAAS;IACnB,WAAW,UAAQ;IACnB,OAAO,UAAS;IACzB;;OAEG;IACM,QAAQ,SAAM;IACb,OAAO,EAAE,YAAY,CAAC,WAAW,EAAE,CAAC,CAAsB;IAC3D,eAAe,SAAY;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IACxC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACM,MAAM,EAAE,MAAM,CAAC;IACxB,MAAM,UAAS;IACf,MAAM,UAAS;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAEM,IAAI,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;gBAGjD,EAAE,EAAE,iBAAiB,EACrB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,SAAS,EAChB,GAAG,EAAE,UAAU;IAIzB,OAAO,CAAC,KAAK,EAAE,aAAa;IAM5B,QAAQ,IAAI,IAAI;IAShB,kBAAkB;IAIlB;;OAEG;IACH,MAAM,IAAI,IAAI;IAKd;;OAEG;IACH,UAAU,CAAC,MAAM,CAAC,KAAA,GAAG,IAAI;IAMzB;;OAEG;IACH,MAAM,IAAI,IAAI;IAQd;;OAEG;IACH,MAAM,CAAC,MAAM,KAAA,GAAG,IAAI;IAMpB;;OAEG;IACH,MAAM,CAAC,MAAM,KAAA,GAAG,IAAI;IAMpB;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAW9B;;OAEG;IACH,YAAY,IAAI,IAAI;IAMpB;;OAEG;IACH,QAAQ;IAUR,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAkB;IAChD,SAAS,EAAE,MAAM,IAAI,CAAmB;IAExC,UAAU,CAAC,KAAK,EAAE,GAAG;IAUrB,gBAAgB,CAAC,EAAE,EAAE,GAAG;IAIxB,iBAAiB,CAAC,EAAE,EAAE,GAAG;YAIX,eAAe;IA+C7B,OAAO,CAAC,uBAAuB;IAM/B,OAAO,CAAC,iBAAiB;YAMX,iBAAiB;IAa/B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,OAAO;YAWD,IAAI;IAyBlB,OAAO,CAAC,MAAM;yCAnVH,iBAAiB;2CAAjB,iBAAiB;CA4V7B;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,QAAG;IACb,iBAAiB,QAAG;IACpB,kBAAkB,QAAG;IACrB,aAAa,QAAG;IAChB,UAAU,QAAG;CACd"}
@@ -138,6 +138,7 @@ export class DropAreaComponent {
138
138
  this.clearErrors();
139
139
  this.dropped.emit(null);
140
140
  this.onChange(null);
141
+ this.onTouched();
141
142
  this.cd.markForCheck();
142
143
  }
143
144
  writeValue(value) {
@@ -157,6 +158,7 @@ export class DropAreaComponent {
157
158
  this.onTouched = fn;
158
159
  }
159
160
  async onFilesSelected(files) {
161
+ this.onTouched();
160
162
  const hasValidNameLength = this.filesService.checkMaxLength(files);
161
163
  if (!hasValidNameLength) {
162
164
  this.onFileInvalidNameLength();
@@ -349,4 +351,4 @@ var ReadAsType;
349
351
  ReadAsType[ReadAsType["ARRAY_BUFFER"] = 2] = "ARRAY_BUFFER";
350
352
  ReadAsType[ReadAsType["BINARY_STRING"] = 3] = "BINARY_STRING";
351
353
  })(ReadAsType || (ReadAsType = {}));
352
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZHJvcC1hcmVhL2Ryb3AtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Ryb3AtYXJlYS9kcm9wLWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBRTFDOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUF3RDVCLFlBQ1UsRUFBcUIsRUFDckIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDM0IsS0FBZ0IsRUFDaEIsR0FBZTtRQUpmLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFVBQUssR0FBTCxLQUFLLENBQVc7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQTNEaEIsVUFBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENB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ZUFBZSxhQUVkLENBQUMsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsV0FBVyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7bU5BRy9FLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNFLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkEwQkcsTUFBTTtzQkFBZCxLQUFLO2dCQVErQixJQUFJO3NCQUF4QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0csSUFBSTtzQkFBekMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNJLE1BQU07c0JBQTdDLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFXdEMsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQzs7QUFxU25DLElBQUssVUFLSjtBQUxELFdBQUssVUFBVTtJQUNiLDJDQUFJLENBQUE7SUFDSixtREFBUSxDQUFBO0lBQ1IsMkRBQVksQ0FBQTtJQUNaLDZEQUFhLENBQUE7QUFDZixDQUFDLEVBTEksVUFBVSxLQUFWLFVBQVUsUUFLZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiwgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBnZXQsIG1hcCwgc29tZSwgbWluIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJ5dGVzUGlwZSB9IGZyb20gJy4uL2NvbW1vbi9ieXRlcy5waXBlJztcbmltcG9ydCB7IEZpbGVzU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi9maWxlcy5zZXJ2aWNlJztcbmltcG9ydCB7IGdldHRleHQgfSBmcm9tICcuLi9pMThuL2dldHRleHQnO1xuXG4vKipcbiAqIEEgZHJvcC16b25lIHdoaWNoIGlzIGEgZmlsZSBzZWxlY3RvciBhbGxvd2luZyB1c2VycyB0byBzZWxlY3QgZmlsZShzKSBmcm9tIHRoZWlyIGZpbGUgc3lzdGVtLCBlaXRoZXIgbmF0aXZlbHkgb3IgYnkgZHJhZyBhbmQgZHJvcC5cbiAqXG4gKiBgYGBodG1sXG4gKiAgPGRpdj5cbiAqICAgIDxjOHktZHJvcC1hcmVhXG4gKiAgICAgIChkcm9wcGVkKT1cInVwbG9hZEZpbGUoJGV2ZW50KVwiXG4gKiAgICAgIFtpY29uXT1cIid1cGxvYWQnXCJcbiAqICAgICAgW2FjY2VwdF09XCInLnppcCwuN3osdmlkZW8nXCI+XG4gKiAgICA8L2M4eS1kcm9wLWFyZWE+XG4gKiAgPC9kaXY+XG4gKiBgYGBcbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktZHJvcC1hcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3AtYXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBEcm9wQXJlYUNvbXBvbmVudCwgbXVsdGk6IHRydWUgfV1cbn0pXG5leHBvcnQgY2xhc3MgRHJvcEFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2w6IEFic3RyYWN0Q29udHJvbDxhbnksIGFueT47XG4gIEBJbnB1dCgpIHRpdGxlID0gZ2V0dGV4dCgnVXBsb2FkIGZpbGUnKTtcbiAgQElucHV0KCkgbWVzc2FnZSA9IGdldHRleHQoJ0Ryb3AgZmlsZSBoZXJlJyk7XG4gIEBJbnB1dCgpIGljb24gPSAncGx1cy1zcXVhcmUnO1xuICBASW5wdXQoKSBsb2FkaW5nTWVzc2FnZSA9IGdldHRleHQoJ1VwbG9hZGluZ+KApicpO1xuICBASW5wdXQoKSBmb3JjZUhpZGVMaXN0ID0gZmFsc2U7XG4gIC8qKiBBZmZlY3RzIGRpc3BsYXlpbmcgYm90aCB0aGUgZHJvcCB6b25lIGFuZCB0aGUgbGlzdCBvZiBkcm9wcGVkIGZpbGVzLiAqL1xuICBASW5wdXQoKSBhbHdheXNTaG93ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNsaWNrVG9PcGVuID0gdHJ1ZTtcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICAvKipcbiAgICogQ3VycmVudCBwcm9ncmVzcyBvZiB0aGUgdXBsb2FkIGFzIGEgcGVyY2VudGFnZS4gSWYgbm90IGdpdmVuIGEgc3Bpbm5lciB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIHByb2dyZXNzID0gLTE7IC8vIC0xID0gc3Bpbm5lclxuICBAT3V0cHV0KCkgZHJvcHBlZDogRXZlbnRFbWl0dGVyPERyb3BwZWRGaWxlW10+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBtYXhBbGxvd2VkRmlsZXMgPSBJbmZpbml0eTtcbiAgQElucHV0KCkgZmlsZXM6IEZpbGVMaXN0O1xuICBASW5wdXQoKSBtYXhGaWxlU2l6ZUluTWVnYUJ5dGVzOiBudW1iZXI7XG4gIC8qKiBTcGVjaWZpZXMgYSBmaWx0ZXIgZm9yIHdoYXQgZmlsZSB0eXBlcyB0aGUgdXNlciBjYW4gcGljayBmcm9tIHRoZSBmaWxlIGlucHV0IGRpYWxvZyBib3guXG4gICAqXG4gICAqIFNwZWNpZnkgZmlsZSB0eXBlcyBieSBleHRlbnNpb25zXG4gICAqXG4gICAqIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInLnppcCwuN3onXCJcbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGV4dGVuc2lvbnMgYW5kIGdlbmVyaWMgdHlwZXMgW0dFTkVSSUNfRklMRV9UWVBFXXtAbGluayBHRU5FUklDX0ZJTEVfVFlQRX06XG4gICAqIGBgYGh0bWxcbiAgICogIC4uLlxuICAgKiAgW2FjY2VwdF09XCInLnBkZixhcmNoaXZlJ1wiXG4gICAqICAuLi5cbiAgICogYGBgXG4gICAqXG4gICAqIFNwZWNpZnkgZmlsZSB0eXBlcyBieSBnZW5lcmljIHR5cGVzIFtHRU5FUklDX0ZJTEVfVFlQRV17QGxpbmsgR0VORVJJQ19GSUxFX1RZUEV9OlxuICAgKiAgYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIidhcmNoaXZlLHZpZGVvJ1wiXG4gICAqICAuLi5cbiAgICpcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZztcbiAgaXNPdmVyID0gZmFsc2U7XG4gIGVycm9ycyA9IGZhbHNlO1xuICBlcnJvck1lc3NhZ2U6IHN0cmluZztcbiAgZmlsZXNOYW1lU3RyaW5nOiBzdHJpbmc7XG4gIGFjY2VwdGVkRXh0czogc3RyaW5nW107XG4gIGhhc0Ryb3BBcmVhU21hbGxDbGFzczogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdhcmVhJywgeyBzdGF0aWM6IHRydWUgfSkgYXJlYTogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnem9uZScsIHsgc3RhdGljOiBmYWxzZSB9KSB6b25lOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdwaWNrZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgcGlja2VyOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgZmlsZXNTZXJ2aWNlOiBGaWxlc1NlcnZpY2UsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBieXRlczogQnl0ZXNQaXBlLFxuICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdrZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9ua2V5dXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICB0aGlzLnBpY2tlci5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5hY2NlcHRlZEV4dHMgPSB0aGlzLmZpbGVzU2VydmljZS5leHRyYWN0RmlsZUV4dGVuc2lvbnModGhpcy5hY2NlcHQpLm1hcCh0ID0+IGAuJHt0fWApO1xuICAgIHRoaXMuYWx3YXlzU2hvdyA9IHRoaXMuYWx3YXlzU2hvdyB8fCB0aGlzLmFyZWEubmF0aXZlRWxlbWVudC5jaGlsZHJlbi5sZW5ndGggPT09IDA7XG5cbiAgICBpZiAodGhpcy5maWxlcyAmJiB0aGlzLmlzRmlsZXNBbk9iamVjdE9yQXJyYXkoKSAmJiB0aGlzLmZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25GaWxlc1NlbGVjdGVkKHRoaXMuZmlsZXMpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcbiAgICB0aGlzLmhhc0Ryb3BBcmVhU21hbGxDbGFzcyA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdkcm9wLWFyZWEtc20nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUb2dnbGVzIHRoZSBzdHlsZSBvZiB0aGUgZHJvcCB6b25lIGVsZW1lbnQgd2hlbiBhIGZpbGUgaXMgZHJhZ2dlZCBvdmVyIHRoZSBjb21wb25lbnQuXG4gICAqL1xuICB0b2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy56b25lLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0ID0gdGhpcy5hcmVhLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4JztcbiAgICB0aGlzLm9uT3ZlcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNob3dzIGNvbXB1dGVyIGJyb3dzZXIgd2l0aCBmaWxlcyB0byBkcm9wIGludG8gZHJvcC1hcmVhIHpvbmUuXG4gICAqL1xuICBzaG93UGlja2VyKCRldmVudD8pOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5waWNrZXIubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMucGlja2VyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIG9uIG92ZXIgZHJvcCBhcmVhLCBidXQgbm90IGRyb3BwZWQuXG4gICAqL1xuICBvbk92ZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlzT3Zlcikge1xuICAgICAgdGhpcy5pc092ZXIgPSB0cnVlO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gZmlsZSBpcyBkcm9wcGVkLlxuICAgKi9cbiAgb25QaWNrKCRldmVudCk6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JzID0gZmFsc2U7XG4gICAgdGhpcy5wcmV2ZW50RGVmYXVsdCgkZXZlbnQpO1xuICAgIHRoaXMub25GaWxlc1NlbGVjdGVkKCRldmVudC50YXJnZXQuZmlsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBmaWxlIHdoZW4gaXQgaXMgZHJvcHBlZCBpbnRvIGRyb3AtYXJlYS5cbiAgICovXG4gIG9uRHJvcCgkZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQoJGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyk7XG4gICAgdGhpcy5zdG9wRHJhZ2dpbmcoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgY29uZGl0aW9uIHdoYXQgc2hvdWxkIGJlIGRpc3BsYXllZDogZHJvcC1hcmVhIHpvbmUgb3IgbGlzdCBvZiBkcm9wcGVkIGZpbGVzLlxuICAgKi9cbiAgc2hvdWxkU2hvd0ZpbGVzTGlzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0ZpbGVzQW5PYmplY3RPckFycmF5KCkgJiZcbiAgICAgICF0aGlzLmZvcmNlSGlkZUxpc3QgJiZcbiAgICAgIHRoaXMuYWx3YXlzU2hvdyAmJlxuICAgICAgIXRoaXMuaXNGaWxlc0FycmF5RW1wdHkoKSAmJlxuICAgICAgIXRoaXMuaGFzRW1wdHlGaWxlcygpICYmXG4gICAgICAhdGhpcy5pc1Rvb01hbnlGaWxlcygpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIHBpY2tlZCBvdmVyIHdlYiBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHN0b3BEcmFnZ2luZygpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCB0aGlzLnByZXZlbnREZWZhdWx0KTtcbiAgICB0aGlzLmlzT3ZlciA9IGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBmaWxlcyBhbHJlYWR5IGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBvbkRlbGV0ZSgpIHtcbiAgICBkZWxldGUgdGhpcy5maWxlcztcbiAgICBkZWxldGUgdGhpcy5maWxlc05hbWVTdHJpbmc7XG4gICAgdGhpcy5jbGVhckVycm9ycygpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KG51bGwpO1xuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XG4gICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IGFueSkgPT4gdm9pZCA9IF8gPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5maWxlcyA9IHZhbHVlO1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHRoaXMub25EZWxldGUoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlc05hbWVTdHJpbmcgPSB0aGlzLmdldEZpbGVzTmFtZXNBc1N0cmluZyh2YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIG9uRmlsZXNTZWxlY3RlZChmaWxlczogRmlsZUxpc3QpIHtcbiAgICBjb25zdCBoYXNWYWxpZE5hbWVMZW5ndGggPSB0aGlzLmZpbGVzU2VydmljZS5jaGVja01heExlbmd0aChmaWxlcyk7XG4gICAgaWYgKCFoYXNWYWxpZE5hbWVMZW5ndGgpIHtcbiAgICAgIHRoaXMub25GaWxlSW52YWxpZE5hbWVMZW5ndGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXZlVmFsaWRUeXBlcyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmhhdmVWYWxpZEV4dGVuc2lvbnMoZmlsZXMsIHRoaXMuYWNjZXB0KTtcbiAgICBpZiAoIWhhdmVWYWxpZFR5cGVzKSB7XG4gICAgICB0aGlzLm9uRmlsZUludmFsaWRUeXBlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWF4RmlsZVNpemVJbkJ5dGVzID0gdGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzXG4gICAgICA/IHRoaXMuY29udmVydE1lZ2FCeXRlc1RvQnl0ZXModGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGhhdmVWYWxpZFNpemVzID0gYXdhaXQgdGhpcy5maWxlc1NlcnZpY2UuaGF2ZVZhbGlkU2l6ZXMoZmlsZXMsIG1heEZpbGVTaXplSW5CeXRlcyk7XG4gICAgaWYgKCFoYXZlVmFsaWRTaXplcykge1xuICAgICAgYXdhaXQgdGhpcy5vbkZpbGVJbnZhbGlkU2l6ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICB0aGlzLmZpbGVzTmFtZVN0cmluZyA9IHRoaXMuZ2V0RmlsZXNOYW1lc0FzU3RyaW5nKGZpbGVzKTtcbiAgICB0aGlzLmVycm9ycyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuaXNUb29NYW55RmlsZXMoKSkge1xuICAgICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgdG9vTWFueUZpbGVzOiB0cnVlIH0pO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBnZXR0ZXh0KCdUb28gbWFueSBmaWxlcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNFbXB0eUZpbGVzKCkpIHtcbiAgICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGVtcHR5RmlsZXM6IHRydWUgfSk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ0ZpbGUgbXVzdCBub3QgYmUgZW1wdHksIHNlbGVjdCBhbm90aGVyIG9uZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcm9wcGVkRmlsZXM6IERyb3BwZWRGaWxlW10gPSB0aGlzLmNvbXBvc2UoZmlsZXMpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KGRyb3BwZWRGaWxlcyk7XG4gICAgdGhpcy5vbkNoYW5nZShkcm9wcGVkRmlsZXMpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsZUludmFsaWROYW1lTGVuZ3RoKCkge1xuICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMoeyBpbnZhbGlkTmFtZUxlbmd0aDogdHJ1ZSB9KTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ1RoZSBmaWxlbmFtZSBpcyB0b28gbG9uZy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlSW52YWxpZFR5cGUoKSB7XG4gICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWRUeXBlOiB0cnVlIH0pO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIGZpbGUgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25GaWxlSW52YWxpZFNpemUoKSB7XG4gICAgY29uc3QgbWF4RmlsZVNpemVJbkJ5dGVzID0gdGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzXG4gICAgICA/IHRoaXMuY29udmVydE1lZ2FCeXRlc1RvQnl0ZXModGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IG1zZyA9IGdldHRleHQoJ1RoZSBzZWxlY3RlZCBmaWxlIGlzIHRvbyBsYXJnZS4gVGhlIHNpemUgbGltaXQgaXMge3sgbGltaXQgfX0uJyk7XG4gICAgY29uc3QgbGltaXQgPSB0aGlzLmJ5dGVzLnRyYW5zZm9ybShcbiAgICAgIG1pbihbbWF4RmlsZVNpemVJbkJ5dGVzLCBhd2FpdCB0aGlzLmZpbGVzU2VydmljZS5sb2FkQnl0ZXNTaXplTGltaXQoKV0pXG4gICAgKTtcbiAgICB0aGlzLmVycm9ycyA9IHRydWU7XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgaW52YWxpZFNpemU6IHRydWUgfSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1zZywgeyBsaW1pdCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydE1lZ2FCeXRlc1RvQnl0ZXMobWF4RmlsZVNpemVJbk1lZ2FCeXRlczogU2l6ZUluTWVnYUJ5dGVzKTogU2l6ZUluQnl0ZXMge1xuICAgIHJldHVybiBtYXhGaWxlU2l6ZUluTWVnYUJ5dGVzICogMV8wNDhfNTc2O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlc05hbWVzQXNTdHJpbmcoZmlsZXM6IEZpbGVMaXN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWFwKGZpbGVzLCAoeyBuYW1lIH0pID0+IG5hbWUpLmpvaW4oJywgJyk7XG4gIH1cblxuICBwcml2YXRlIGlzRmlsZXNBcnJheUVtcHR5KCkge1xuICAgIHJldHVybiBnZXQodGhpcywgJ2ZpbGVzLmxlbmd0aCcsIDApID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb01hbnlGaWxlcygpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMsICdmaWxlcy5sZW5ndGgnLCAwKSA+IHRoaXMubWF4QWxsb3dlZEZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVzQW5PYmplY3RPckFycmF5KCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWxlcyA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIGhhc0VtcHR5RmlsZXMoKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzRmlsZXNBcnJheUVtcHR5KCkpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuaXNBbnlGaWxlRW1wdHkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlGaWxlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNvbWUoQXJyYXkuZnJvbSh0aGlzLmZpbGVzKSwgWydzaXplJywgMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckVycm9ycygpIHtcbiAgICBkZWxldGUgdGhpcy5lcnJvck1lc3NhZ2U7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHByZXZlbnREZWZhdWx0KCRldmVudD8pIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBvc2UoZmlsZXM6IEZpbGVMaXN0KTogRHJvcHBlZEZpbGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZmlsZXMpLm1hcChmaWxlID0+ICh7XG4gICAgICBmaWxlLFxuICAgICAgcmVhZEFzSnNvbjogYXN5bmMgKCkgPT4gSlNPTi5wYXJzZShhd2FpdCB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSksXG4gICAgICByZWFkQXNUZXh0OiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSxcbiAgICAgIHJlYWRBc0FycmF5QnVmZmVyOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5BUlJBWV9CVUZGRVIpLFxuICAgICAgcmVhZEFzQmluYXJ5U3RyaW5nOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5CSU5BUllfU1RSSU5HKSxcbiAgICAgIHJlYWRBc0RhdGFVUkw6IGFzeW5jICgpID0+IHRoaXMucmVhZChmaWxlLCBSZWFkQXNUeXBlLkRBVEFfVVJMKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZChmaWxlLCB0eXBlOiBSZWFkQXNUeXBlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUmVhZEFzVHlwZS5URVhUOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkFSUkFZX0JVRkZFUjoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFJlYWRBc1R5cGUuQklOQVJZX1NUUklORzoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkRBVEFfVVJMOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB0aGlzLm9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCkge1xuICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVhZGVyLmVycm9yKSB7XG4gICAgICByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICB9XG4gICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BwZWRGaWxlIHtcbiAgZmlsZTogRmlsZTtcbiAgcmVhZEFzVGV4dCgpO1xuICByZWFkQXNBcnJheUJ1ZmZlcigpO1xuICByZWFkQXNCaW5hcnlTdHJpbmcoKTtcbiAgcmVhZEFzRGF0YVVSTCgpO1xuICByZWFkQXNKc29uKCk7XG59XG5cbmVudW0gUmVhZEFzVHlwZSB7XG4gIFRFWFQsXG4gIERBVEFfVVJMLFxuICBBUlJBWV9CVUZGRVIsXG4gIEJJTkFSWV9TVFJJTkdcbn1cblxudHlwZSBTaXplSW5NZWdhQnl0ZXMgPSBudW1iZXI7XG50eXBlIFNpemVJbkJ5dGVzID0gbnVtYmVyO1xuIiwiPGRpdlxuICBjbGFzcz1cImRyb3Atem9uZVwiXG4gIFtzdHlsZS5wb2ludGVyRXZlbnRzXT1cImxvYWRpbmcgPyAnbm9uZScgOiAnYXV0bydcIlxuICBbc3R5bGUuZGlzcGxheV09XCJpc092ZXIgfHwgYWx3YXlzU2hvdyB8fCBsb2FkaW5nID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gIHRhYmluZGV4PVwiMFwiXG4gICpuZ0lmPVwiIXNob3VsZFNob3dGaWxlc0xpc3QoKVwiXG4gIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcnMnOiBlcnJvcnMsIGRpc2FibGVkOiBmb3JtQ29udHJvbD8uZGlzYWJsZWQgfVwiXG4gICN6b25lXG4gIChkcmFnbGVhdmUpPVwic3RvcERyYWdnaW5nKClcIlxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gIChkcmFnb3Zlcik9XCJvbk92ZXIoKVwiXG4gIChjbGljayk9XCJzaG93UGlja2VyKCRldmVudClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyXCJcbiAgICBkYXRhLWN5PVwiYzh5LWZpbGUtcGxhY2Vob2xkZXItLWRyb3Atem9uZVwiXG4gICAgW25nQ2xhc3NdPVwieyAnZHJhZy1vdmVyJzogaXNPdmVyIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkLWZsZXggZC1jb2wgcC00IGZsZXgtY2VudGVyXCJcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInByb2dyZXNzIHByb2dyZXNzLXN0cmlwZWQgYWN0aXZlIG0tMFwiXG4gICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiA1MCVcIlxuICAgICAgICAqbmdJZj1cInByb2dyZXNzICE9PSAtMVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgICBhcmlhLXZhbHVlbm93PVwiMFwiXG4gICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgICAgIGFyaWEtdmFsdWVtYXg9XCIxMDBcIlxuICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNwaW5uZXItc25ha2VcIlxuICAgICAgICAqbmdJZj1cInByb2dyZXNzID09PSAtMVwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cIm0tdC1hdXRvIG0tYi1hdXRvIG0tci04XCJcbiAgICAgICAgKm5nSWY9XCIhaGFzRHJvcEFyZWFTbWFsbENsYXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgbG9hZGluZ01lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImhpbnQtcGxhY2Vob2xkZXIgcG9pbnRlclwiXG4gICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcbiAgICAgIGRhdGEtY3k9XCJkcm9wLXpvbmUtLWhpbnQtcGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiZGx0LWM4eS1pY29uLXt7IGljb24gfX1cIj48L2k+XG4gICAgICA8cCAqbmdJZj1cIiFlcnJvcnNcIj5cbiAgICAgICAgPGI+e3sgbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fTwvYj5cbiAgICAgICAgPGJyIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJhbHdheXNTaG93ICYmIGNsaWNrVG9PcGVuXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJoYXMtZXJyb3JzXCJcbiAgICAgICAgKm5nSWY9XCJlcnJvcnNcIlxuICAgICAgPlxuICAgICAgICA8cCBjbGFzcz1cImZvcm0tY29udHJvbC1mZWVkYmFjay1tZXNzYWdlXCI+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwiZHJvcC16b25lXCJcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNPdmVyIHx8IGFsd2F5c1Nob3cgfHwgbG9hZGluZyA/ICdibG9jaycgOiAnbm9uZSdcIlxuICB0YWJpbmRleD1cIjBcIlxuICAqbmdJZj1cInNob3VsZFNob3dGaWxlc0xpc3QoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInAtYWJzb2x1dGUgcC00IGZpdC13IGZpdC1oIGQtZmxleCBkLWNvbCBqLWMtY2VudGVyIGEtaS1jZW50ZXJcIlxuICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyZXNzIHByb2dyZXNzLXN0cmlwZWQgYWN0aXZlIG0tMFwiXG4gICAgICBzdHlsZT1cIm1pbi13aWR0aDogODAlXCJcbiAgICAgICpuZ0lmPVwicHJvZ3Jlc3MgIT09IC0xXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9ncmVzcyArICclJ1wiXG4gICAgICAgIGFyaWEtdmFsdWVub3c9XCIwXCJcbiAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcbiAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwicHJvZ3Jlc3MgPT09IC0xXCI+XG4gICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgICA8cFxuICAgICAgY2xhc3M9XCJtLWItOFwiXG4gICAgICAqbmdJZj1cIiFoYXNEcm9wQXJlYVNtYWxsQ2xhc3NcIlxuICAgID5cbiAgICAgIDxzdHJvbmc+XG4gICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3N0cm9uZz5cbiAgICA8L3A+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyIHAtNFwiXG4gICAgKm5nSWY9XCIhbG9hZGluZ1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtNCBhLWktY2VudGVyXCI+XG4gICAgICA8aVxuICAgICAgICBjbGFzcz1cImljb24tMjAgbS1yLThcIlxuICAgICAgICBjOHlJY29uPVwiZmlsZS1vXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICB0aXRsZT1cInt7IGZpbGVzTmFtZVN0cmluZyB9fVwiXG4gICAgICA+XG4gICAgICAgIHt7IGZpbGVzTmFtZVN0cmluZyB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlciBzaG93T25Ib3ZlciBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1JlbW92ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxpXG4gICAgICAgICAgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKClcIlxuICAgICAgICA+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bGFiZWxcbiAgY2xhc3M9XCJzci1vbmx5XCJcbiAgZm9yPVwiZmlsZVwiXG4+XG4gIHt7ICdTZWxlY3QgZmlsZScgfCB0cmFuc2xhdGUgfX1cbjwvbGFiZWw+XG48aW5wdXRcbiAgY2xhc3M9XCJoaWRkZW5cIlxuICBpZD1cImZpbGVcIlxuICB0eXBlPVwiZmlsZVwiXG4gICNwaWNrZXJcbiAgKm5nSWY9XCJjbGlja1RvT3BlblwiXG4gIChjaGFuZ2UpPVwib25QaWNrKCRldmVudClcIlxuICAoY2xpY2spPVwicGlja2VyLmZvY3VzKClcIlxuICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gIFthY2NlcHRdPVwiYWNjZXB0ZWRFeHRzXCJcbiAgW211bHRpcGxlXT1cIm1heEFsbG93ZWRGaWxlcyA+IDFcIlxuICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2w/LmRpc2FibGVkXCJcbi8+XG48ZGl2XG4gICNhcmVhXG4gIFtoaWRkZW5dPVwiaXNPdmVyIHx8IGxvYWRpbmdcIlxuICAoZHJhZ292ZXIpPVwidG9nZ2xlKClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
354
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1hcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2NvcmUvZHJvcC1hcmVhL2Ryb3AtYXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9jb3JlL2Ryb3AtYXJlYS9kcm9wLWFyZWEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7O0FBRTFDOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUF3RDVCLFlBQ1UsRUFBcUIsRUFDckIsWUFBMEIsRUFDMUIsU0FBMkIsRUFDM0IsS0FBZ0IsRUFDaEIsR0FBZTtRQUpmLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFVBQUssR0FBTCxLQUFLLENBQVc7UUFDaEIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQTNEaEIsVUFBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENB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Q2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGdldCwgbWFwLCBzb21lLCBtaW4gfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQnl0ZXNQaXBlIH0gZnJvbSAnLi4vY29tbW9uL2J5dGVzLnBpcGUnO1xuaW1wb3J0IHsgRmlsZXNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL2ZpbGVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbi8qKlxuICogQSBkcm9wLXpvbmUgd2hpY2ggaXMgYSBmaWxlIHNlbGVjdG9yIGFsbG93aW5nIHVzZXJzIHRvIHNlbGVjdCBmaWxlKHMpIGZyb20gdGhlaXIgZmlsZSBzeXN0ZW0sIGVpdGhlciBuYXRpdmVseSBvciBieSBkcmFnIGFuZCBkcm9wLlxuICpcbiAqIGBgYGh0bWxcbiAqICA8ZGl2PlxuICogICAgPGM4eS1kcm9wLWFyZWFcbiAqICAgICAgKGRyb3BwZWQpPVwidXBsb2FkRmlsZSgkZXZlbnQpXCJcbiAqICAgICAgW2ljb25dPVwiJ3VwbG9hZCdcIlxuICogICAgICBbYWNjZXB0XT1cIicuemlwLC43eix2aWRlbydcIj5cbiAqICAgIDwvYzh5LWRyb3AtYXJlYT5cbiAqICA8L2Rpdj5cbiAqIGBgYFxuICovXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kcm9wLWFyZWEnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcC1hcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IERyb3BBcmVhQ29tcG9uZW50LCBtdWx0aTogdHJ1ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBEcm9wQXJlYUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSBmb3JtQ29udHJvbDogQWJzdHJhY3RDb250cm9sPGFueSwgYW55PjtcbiAgQElucHV0KCkgdGl0bGUgPSBnZXR0ZXh0KCdVcGxvYWQgZmlsZScpO1xuICBASW5wdXQoKSBtZXNzYWdlID0gZ2V0dGV4dCgnRHJvcCBmaWxlIGhlcmUnKTtcbiAgQElucHV0KCkgaWNvbiA9ICdwbHVzLXNxdWFyZSc7XG4gIEBJbnB1dCgpIGxvYWRpbmdNZXNzYWdlID0gZ2V0dGV4dCgnVXBsb2FkaW5n4oCmJyk7XG4gIEBJbnB1dCgpIGZvcmNlSGlkZUxpc3QgPSBmYWxzZTtcbiAgLyoqIEFmZmVjdHMgZGlzcGxheWluZyBib3RoIHRoZSBkcm9wIHpvbmUgYW5kIHRoZSBsaXN0IG9mIGRyb3BwZWQgZmlsZXMuICovXG4gIEBJbnB1dCgpIGFsd2F5c1Nob3cgPSBmYWxzZTtcbiAgQElucHV0KCkgY2xpY2tUb09wZW4gPSB0cnVlO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKlxuICAgKiBDdXJyZW50IHByb2dyZXNzIG9mIHRoZSB1cGxvYWQgYXMgYSBwZXJjZW50YWdlLiBJZiBub3QgZ2l2ZW4gYSBzcGlubmVyIHdpbGwgYmUgZGlzcGxheWVkLlxuICAgKi9cbiAgQElucHV0KCkgcHJvZ3Jlc3MgPSAtMTsgLy8gLTEgPSBzcGlubmVyXG4gIEBPdXRwdXQoKSBkcm9wcGVkOiBFdmVudEVtaXR0ZXI8RHJvcHBlZEZpbGVbXT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIG1heEFsbG93ZWRGaWxlcyA9IEluZmluaXR5O1xuICBASW5wdXQoKSBmaWxlczogRmlsZUxpc3Q7XG4gIEBJbnB1dCgpIG1heEZpbGVTaXplSW5NZWdhQnl0ZXM6IG51bWJlcjtcbiAgLyoqIFNwZWNpZmllcyBhIGZpbHRlciBmb3Igd2hhdCBmaWxlIHR5cGVzIHRoZSB1c2VyIGNhbiBwaWNrIGZyb20gdGhlIGZpbGUgaW5wdXQgZGlhbG9nIGJveC5cbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGV4dGVuc2lvbnNcbiAgICpcbiAgICogYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIicuemlwLC43eidcIlxuICAgKiAgLi4uXG4gICAqIGBgYFxuICAgKlxuICAgKiBTcGVjaWZ5IGZpbGUgdHlwZXMgYnkgZXh0ZW5zaW9ucyBhbmQgZ2VuZXJpYyB0eXBlcyBbR0VORVJJQ19GSUxFX1RZUEVde0BsaW5rIEdFTkVSSUNfRklMRV9UWVBFfTpcbiAgICogYGBgaHRtbFxuICAgKiAgLi4uXG4gICAqICBbYWNjZXB0XT1cIicucGRmLGFyY2hpdmUnXCJcbiAgICogIC4uLlxuICAgKiBgYGBcbiAgICpcbiAgICogU3BlY2lmeSBmaWxlIHR5cGVzIGJ5IGdlbmVyaWMgdHlwZXMgW0dFTkVSSUNfRklMRV9UWVBFXXtAbGluayBHRU5FUklDX0ZJTEVfVFlQRX06XG4gICAqICBgYGBodG1sXG4gICAqICAuLi5cbiAgICogIFthY2NlcHRdPVwiJ2FyY2hpdmUsdmlkZW8nXCJcbiAgICogIC4uLlxuICAgKlxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nO1xuICBpc092ZXIgPSBmYWxzZTtcbiAgZXJyb3JzID0gZmFsc2U7XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nO1xuICBmaWxlc05hbWVTdHJpbmc6IHN0cmluZztcbiAgYWNjZXB0ZWRFeHRzOiBzdHJpbmdbXTtcbiAgaGFzRHJvcEFyZWFTbWFsbENsYXNzOiBib29sZWFuO1xuXG4gIEBWaWV3Q2hpbGQoJ2FyZWEnLCB7IHN0YXRpYzogdHJ1ZSB9KSBhcmVhOiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCd6b25lJywgeyBzdGF0aWM6IGZhbHNlIH0pIHpvbmU6IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3BpY2tlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBwaWNrZXI6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBmaWxlc1NlcnZpY2U6IEZpbGVzU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGJ5dGVzOiBCeXRlc1BpcGUsXG4gICAgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWZcbiAgKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleXVwJywgWyckZXZlbnQnXSlcbiAgb25rZXl1cChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIHRoaXMucGlja2VyLm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFjY2VwdGVkRXh0cyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmV4dHJhY3RGaWxlRXh0ZW5zaW9ucyh0aGlzLmFjY2VwdCkubWFwKHQgPT4gYC4ke3R9YCk7XG4gICAgdGhpcy5hbHdheXNTaG93ID0gdGhpcy5hbHdheXNTaG93IHx8IHRoaXMuYXJlYS5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMDtcblxuICAgIGlmICh0aGlzLmZpbGVzICYmIHRoaXMuaXNGaWxlc0FuT2JqZWN0T3JBcnJheSgpICYmIHRoaXMuZmlsZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQodGhpcy5maWxlcyk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgIHRoaXMuaGFzRHJvcEFyZWFTbWFsbENsYXNzID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2Ryb3AtYXJlYS1zbScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZXMgdGhlIHN0eWxlIG9mIHRoZSBkcm9wIHpvbmUgZWxlbWVudCB3aGVuIGEgZmlsZSBpcyBkcmFnZ2VkIG92ZXIgdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICB0aGlzLnpvbmUubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmFyZWEubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyAncHgnO1xuICAgIHRoaXMub25PdmVyKCk7XG4gIH1cblxuICAvKipcbiAgICogU2hvd3MgY29tcHV0ZXIgYnJvd3NlciB3aXRoIGZpbGVzIHRvIGRyb3AgaW50byBkcm9wLWFyZWEgem9uZS5cbiAgICovXG4gIHNob3dQaWNrZXIoJGV2ZW50Pyk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudERlZmF1bHQoJGV2ZW50KTtcbiAgICB0aGlzLnBpY2tlci5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgdGhpcy5waWNrZXIubmF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGZpbGUgaXMgb24gb3ZlciBkcm9wIGFyZWEsIGJ1dCBub3QgZHJvcHBlZC5cbiAgICovXG4gIG9uT3ZlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNPdmVyKSB7XG4gICAgICB0aGlzLmlzT3ZlciA9IHRydWU7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBmaWxlIGlzIGRyb3BwZWQuXG4gICAqL1xuICBvblBpY2soJGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLnByZXZlbnREZWZhdWx0KCRldmVudCk7XG4gICAgdGhpcy5vbkZpbGVzU2VsZWN0ZWQoJGV2ZW50LnRhcmdldC5maWxlcyk7XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGZpbGUgd2hlbiBpdCBpcyBkcm9wcGVkIGludG8gZHJvcC1hcmVhLlxuICAgKi9cbiAgb25Ecm9wKCRldmVudCk6IHZvaWQge1xuICAgIHRoaXMucHJldmVudERlZmF1bHQoJGV2ZW50KTtcbiAgICB0aGlzLm9uRmlsZXNTZWxlY3RlZCgkZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzKTtcbiAgICB0aGlzLnN0b3BEcmFnZ2luZygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBjb25kaXRpb24gd2hhdCBzaG91bGQgYmUgZGlzcGxheWVkOiBkcm9wLWFyZWEgem9uZSBvciBsaXN0IG9mIGRyb3BwZWQgZmlsZXMuXG4gICAqL1xuICBzaG91bGRTaG93RmlsZXNMaXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzRmlsZXNBbk9iamVjdE9yQXJyYXkoKSAmJlxuICAgICAgIXRoaXMuZm9yY2VIaWRlTGlzdCAmJlxuICAgICAgdGhpcy5hbHdheXNTaG93ICYmXG4gICAgICAhdGhpcy5pc0ZpbGVzQXJyYXlFbXB0eSgpICYmXG4gICAgICAhdGhpcy5oYXNFbXB0eUZpbGVzKCkgJiZcbiAgICAgICF0aGlzLmlzVG9vTWFueUZpbGVzKClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIGZpbGUgaXMgcGlja2VkIG92ZXIgd2ViIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgc3RvcERyYWdnaW5nKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2RyYWdvdmVyJywgdGhpcy5wcmV2ZW50RGVmYXVsdCk7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMucHJldmVudERlZmF1bHQpO1xuICAgIHRoaXMuaXNPdmVyID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlIGZpbGVzIGFscmVhZHkgZHJvcHBlZCBmaWxlcy5cbiAgICovXG4gIG9uRGVsZXRlKCkge1xuICAgIGRlbGV0ZSB0aGlzLmZpbGVzO1xuICAgIGRlbGV0ZSB0aGlzLmZpbGVzTmFtZVN0cmluZztcbiAgICB0aGlzLmNsZWFyRXJyb3JzKCk7XG4gICAgdGhpcy5kcm9wcGVkLmVtaXQobnVsbCk7XG4gICAgdGhpcy5vbkNoYW5nZShudWxsKTtcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkNoYW5nZTogKHZhbHVlOiBhbnkpID0+IHZvaWQgPSBfID0+IHVuZGVmaW5lZDtcbiAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZmlsZXMgPSB2YWx1ZTtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICB0aGlzLm9uRGVsZXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsZXNOYW1lU3RyaW5nID0gdGhpcy5nZXRGaWxlc05hbWVzQXNTdHJpbmcodmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBvbkZpbGVzU2VsZWN0ZWQoZmlsZXM6IEZpbGVMaXN0KSB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICBjb25zdCBoYXNWYWxpZE5hbWVMZW5ndGggPSB0aGlzLmZpbGVzU2VydmljZS5jaGVja01heExlbmd0aChmaWxlcyk7XG4gICAgaWYgKCFoYXNWYWxpZE5hbWVMZW5ndGgpIHtcbiAgICAgIHRoaXMub25GaWxlSW52YWxpZE5hbWVMZW5ndGgoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBoYXZlVmFsaWRUeXBlcyA9IHRoaXMuZmlsZXNTZXJ2aWNlLmhhdmVWYWxpZEV4dGVuc2lvbnMoZmlsZXMsIHRoaXMuYWNjZXB0KTtcbiAgICBpZiAoIWhhdmVWYWxpZFR5cGVzKSB7XG4gICAgICB0aGlzLm9uRmlsZUludmFsaWRUeXBlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbWF4RmlsZVNpemVJbkJ5dGVzID0gdGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzXG4gICAgICA/IHRoaXMuY29udmVydE1lZ2FCeXRlc1RvQnl0ZXModGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGhhdmVWYWxpZFNpemVzID0gYXdhaXQgdGhpcy5maWxlc1NlcnZpY2UuaGF2ZVZhbGlkU2l6ZXMoZmlsZXMsIG1heEZpbGVTaXplSW5CeXRlcyk7XG4gICAgaWYgKCFoYXZlVmFsaWRTaXplcykge1xuICAgICAgYXdhaXQgdGhpcy5vbkZpbGVJbnZhbGlkU2l6ZSgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMgPSBmaWxlcztcbiAgICB0aGlzLmZpbGVzTmFtZVN0cmluZyA9IHRoaXMuZ2V0RmlsZXNOYW1lc0FzU3RyaW5nKGZpbGVzKTtcbiAgICB0aGlzLmVycm9ycyA9IGZhbHNlO1xuXG4gICAgaWYgKHRoaXMuaXNUb29NYW55RmlsZXMoKSkge1xuICAgICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgdG9vTWFueUZpbGVzOiB0cnVlIH0pO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBnZXR0ZXh0KCdUb28gbWFueSBmaWxlcyBzZWxlY3RlZC4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oYXNFbXB0eUZpbGVzKCkpIHtcbiAgICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGVtcHR5RmlsZXM6IHRydWUgfSk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ0ZpbGUgbXVzdCBub3QgYmUgZW1wdHksIHNlbGVjdCBhbm90aGVyIG9uZS4nKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkcm9wcGVkRmlsZXM6IERyb3BwZWRGaWxlW10gPSB0aGlzLmNvbXBvc2UoZmlsZXMpO1xuICAgIHRoaXMuZHJvcHBlZC5lbWl0KGRyb3BwZWRGaWxlcyk7XG4gICAgdGhpcy5vbkNoYW5nZShkcm9wcGVkRmlsZXMpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIG9uRmlsZUludmFsaWROYW1lTGVuZ3RoKCkge1xuICAgIHRoaXMuZXJyb3JzID0gdHJ1ZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMoeyBpbnZhbGlkTmFtZUxlbmd0aDogdHJ1ZSB9KTtcbiAgICB0aGlzLmVycm9yTWVzc2FnZSA9IGdldHRleHQoJ1RoZSBmaWxlbmFtZSBpcyB0b28gbG9uZy4nKTtcbiAgfVxuXG4gIHByaXZhdGUgb25GaWxlSW52YWxpZFR5cGUoKSB7XG4gICAgdGhpcy5lcnJvcnMgPSB0cnVlO1xuICAgIHRoaXMuZm9ybUNvbnRyb2w/LnNldEVycm9ycyh7IGludmFsaWRUeXBlOiB0cnVlIH0pO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZ2V0dGV4dCgnVGhlIHNlbGVjdGVkIGZpbGUgaXMgbm90IHN1cHBvcnRlZC4nKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgb25GaWxlSW52YWxpZFNpemUoKSB7XG4gICAgY29uc3QgbWF4RmlsZVNpemVJbkJ5dGVzID0gdGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzXG4gICAgICA/IHRoaXMuY29udmVydE1lZ2FCeXRlc1RvQnl0ZXModGhpcy5tYXhGaWxlU2l6ZUluTWVnYUJ5dGVzKVxuICAgICAgOiBudWxsO1xuICAgIGNvbnN0IG1zZyA9IGdldHRleHQoJ1RoZSBzZWxlY3RlZCBmaWxlIGlzIHRvbyBsYXJnZS4gVGhlIHNpemUgbGltaXQgaXMge3sgbGltaXQgfX0uJyk7XG4gICAgY29uc3QgbGltaXQgPSB0aGlzLmJ5dGVzLnRyYW5zZm9ybShcbiAgICAgIG1pbihbbWF4RmlsZVNpemVJbkJ5dGVzLCBhd2FpdCB0aGlzLmZpbGVzU2VydmljZS5sb2FkQnl0ZXNTaXplTGltaXQoKV0pXG4gICAgKTtcbiAgICB0aGlzLmVycm9ycyA9IHRydWU7XG4gICAgdGhpcy5mb3JtQ29udHJvbD8uc2V0RXJyb3JzKHsgaW52YWxpZFNpemU6IHRydWUgfSk7XG4gICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KG1zZywgeyBsaW1pdCB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydE1lZ2FCeXRlc1RvQnl0ZXMobWF4RmlsZVNpemVJbk1lZ2FCeXRlczogU2l6ZUluTWVnYUJ5dGVzKTogU2l6ZUluQnl0ZXMge1xuICAgIHJldHVybiBtYXhGaWxlU2l6ZUluTWVnYUJ5dGVzICogMV8wNDhfNTc2O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlc05hbWVzQXNTdHJpbmcoZmlsZXM6IEZpbGVMaXN0KTogc3RyaW5nIHtcbiAgICByZXR1cm4gbWFwKGZpbGVzLCAoeyBuYW1lIH0pID0+IG5hbWUpLmpvaW4oJywgJyk7XG4gIH1cblxuICBwcml2YXRlIGlzRmlsZXNBcnJheUVtcHR5KCkge1xuICAgIHJldHVybiBnZXQodGhpcywgJ2ZpbGVzLmxlbmd0aCcsIDApID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Rvb01hbnlGaWxlcygpIHtcbiAgICByZXR1cm4gZ2V0KHRoaXMsICdmaWxlcy5sZW5ndGgnLCAwKSA+IHRoaXMubWF4QWxsb3dlZEZpbGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0ZpbGVzQW5PYmplY3RPckFycmF5KCkge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5maWxlcyA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIGhhc0VtcHR5RmlsZXMoKSB7XG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgaWYgKCF0aGlzLmlzRmlsZXNBcnJheUVtcHR5KCkpIHtcbiAgICAgIHJlc3VsdCA9IHRoaXMuaXNBbnlGaWxlRW1wdHkoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaXNBbnlGaWxlRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNvbWUoQXJyYXkuZnJvbSh0aGlzLmZpbGVzKSwgWydzaXplJywgMF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckVycm9ycygpIHtcbiAgICBkZWxldGUgdGhpcy5lcnJvck1lc3NhZ2U7XG4gICAgdGhpcy5lcnJvcnMgPSBmYWxzZTtcbiAgICB0aGlzLmZvcm1Db250cm9sPy5zZXRFcnJvcnMobnVsbCk7XG4gIH1cblxuICBwcml2YXRlIHByZXZlbnREZWZhdWx0KCRldmVudD8pIHtcbiAgICBpZiAoJGV2ZW50KSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbXBvc2UoZmlsZXM6IEZpbGVMaXN0KTogRHJvcHBlZEZpbGVbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZmlsZXMpLm1hcChmaWxlID0+ICh7XG4gICAgICBmaWxlLFxuICAgICAgcmVhZEFzSnNvbjogYXN5bmMgKCkgPT4gSlNPTi5wYXJzZShhd2FpdCB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSksXG4gICAgICByZWFkQXNUZXh0OiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5URVhUKSxcbiAgICAgIHJlYWRBc0FycmF5QnVmZmVyOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5BUlJBWV9CVUZGRVIpLFxuICAgICAgcmVhZEFzQmluYXJ5U3RyaW5nOiBhc3luYyAoKSA9PiB0aGlzLnJlYWQoZmlsZSwgUmVhZEFzVHlwZS5CSU5BUllfU1RSSU5HKSxcbiAgICAgIHJlYWRBc0RhdGFVUkw6IGFzeW5jICgpID0+IHRoaXMucmVhZChmaWxlLCBSZWFkQXNUeXBlLkRBVEFfVVJMKVxuICAgIH0pKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVhZChmaWxlLCB0eXBlOiBSZWFkQXNUeXBlKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgIGNhc2UgUmVhZEFzVHlwZS5URVhUOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkFSUkFZX0JVRkZFUjoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNBcnJheUJ1ZmZlcihmaWxlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFJlYWRBc1R5cGUuQklOQVJZX1NUUklORzoge1xuICAgICAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBSZWFkQXNUeXBlLkRBVEFfVVJMOiB7XG4gICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB0aGlzLm9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG9uTG9hZChyZWFkZXIsIHJlc29sdmUsIHJlamVjdCkge1xuICAgIGlmIChyZWFkZXIucmVhZHlTdGF0ZSAhPT0gMikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVhZGVyLmVycm9yKSB7XG4gICAgICByZWplY3QocmVhZGVyLmVycm9yKTtcbiAgICB9XG4gICAgcmVzb2x2ZShyZWFkZXIucmVzdWx0KTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERyb3BwZWRGaWxlIHtcbiAgZmlsZTogRmlsZTtcbiAgcmVhZEFzVGV4dCgpO1xuICByZWFkQXNBcnJheUJ1ZmZlcigpO1xuICByZWFkQXNCaW5hcnlTdHJpbmcoKTtcbiAgcmVhZEFzRGF0YVVSTCgpO1xuICByZWFkQXNKc29uKCk7XG59XG5cbmVudW0gUmVhZEFzVHlwZSB7XG4gIFRFWFQsXG4gIERBVEFfVVJMLFxuICBBUlJBWV9CVUZGRVIsXG4gIEJJTkFSWV9TVFJJTkdcbn1cblxudHlwZSBTaXplSW5NZWdhQnl0ZXMgPSBudW1iZXI7XG50eXBlIFNpemVJbkJ5dGVzID0gbnVtYmVyO1xuIiwiPGRpdlxuICBjbGFzcz1cImRyb3Atem9uZVwiXG4gIFtzdHlsZS5wb2ludGVyRXZlbnRzXT1cImxvYWRpbmcgPyAnbm9uZScgOiAnYXV0bydcIlxuICBbc3R5bGUuZGlzcGxheV09XCJpc092ZXIgfHwgYWx3YXlzU2hvdyB8fCBsb2FkaW5nID8gJ2Jsb2NrJyA6ICdub25lJ1wiXG4gIHRhYmluZGV4PVwiMFwiXG4gICpuZ0lmPVwiIXNob3VsZFNob3dGaWxlc0xpc3QoKVwiXG4gIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcnMnOiBlcnJvcnMsIGRpc2FibGVkOiBmb3JtQ29udHJvbD8uZGlzYWJsZWQgfVwiXG4gICN6b25lXG4gIChkcmFnbGVhdmUpPVwic3RvcERyYWdnaW5nKClcIlxuICAoZHJvcCk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gIChkcmFnb3Zlcik9XCJvbk92ZXIoKVwiXG4gIChjbGljayk9XCJzaG93UGlja2VyKCRldmVudClcIlxuPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyXCJcbiAgICBkYXRhLWN5PVwiYzh5LWZpbGUtcGxhY2Vob2xkZXItLWRyb3Atem9uZVwiXG4gICAgW25nQ2xhc3NdPVwieyAnZHJhZy1vdmVyJzogaXNPdmVyIH1cIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJkLWZsZXggZC1jb2wgcC00IGZsZXgtY2VudGVyXCJcbiAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInByb2dyZXNzIHByb2dyZXNzLXN0cmlwZWQgYWN0aXZlIG0tMFwiXG4gICAgICAgIHN0eWxlPVwibWluLXdpZHRoOiA1MCVcIlxuICAgICAgICAqbmdJZj1cInByb2dyZXNzICE9PSAtMVwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXG4gICAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgICBhcmlhLXZhbHVlbm93PVwiMFwiXG4gICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgICAgIGFyaWEtdmFsdWVtYXg9XCIxMDBcIlxuICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXG4gICAgICAgID48L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInNwaW5uZXItc25ha2VcIlxuICAgICAgICAqbmdJZj1cInByb2dyZXNzID09PSAtMVwiXG4gICAgICA+PC9kaXY+XG4gICAgICA8cFxuICAgICAgICBjbGFzcz1cIm0tdC1hdXRvIG0tYi1hdXRvIG0tci04XCJcbiAgICAgICAgKm5nSWY9XCIhaGFzRHJvcEFyZWFTbWFsbENsYXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgbG9hZGluZ01lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImhpbnQtcGxhY2Vob2xkZXIgcG9pbnRlclwiXG4gICAgICAqbmdJZj1cIiFsb2FkaW5nXCJcbiAgICAgIGRhdGEtY3k9XCJkcm9wLXpvbmUtLWhpbnQtcGxhY2Vob2xkZXJcIlxuICAgID5cbiAgICAgIDxpIGNsYXNzPVwiZGx0LWM4eS1pY29uLXt7IGljb24gfX1cIj48L2k+XG4gICAgICA8cCAqbmdJZj1cIiFlcnJvcnNcIj5cbiAgICAgICAgPGI+e3sgbWVzc2FnZSB8IHRyYW5zbGF0ZSB9fTwvYj5cbiAgICAgICAgPGJyIC8+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgKm5nSWY9XCJhbHdheXNTaG93ICYmIGNsaWNrVG9PcGVuXCJcbiAgICAgICAgICB0cmFuc2xhdGVcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJoYXMtZXJyb3JzXCJcbiAgICAgICAgKm5nSWY9XCJlcnJvcnNcIlxuICAgICAgPlxuICAgICAgICA8cCBjbGFzcz1cImZvcm0tY29udHJvbC1mZWVkYmFjay1tZXNzYWdlXCI+XG4gICAgICAgICAge3sgZXJyb3JNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2XG4gIGNsYXNzPVwiZHJvcC16b25lXCJcbiAgW3N0eWxlLmRpc3BsYXldPVwiaXNPdmVyIHx8IGFsd2F5c1Nob3cgfHwgbG9hZGluZyA/ICdibG9jaycgOiAnbm9uZSdcIlxuICB0YWJpbmRleD1cIjBcIlxuICAqbmdJZj1cInNob3VsZFNob3dGaWxlc0xpc3QoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInAtYWJzb2x1dGUgcC00IGZpdC13IGZpdC1oIGQtZmxleCBkLWNvbCBqLWMtY2VudGVyIGEtaS1jZW50ZXJcIlxuICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInByb2dyZXNzIHByb2dyZXNzLXN0cmlwZWQgYWN0aXZlIG0tMFwiXG4gICAgICBzdHlsZT1cIm1pbi13aWR0aDogODAlXCJcbiAgICAgICpuZ0lmPVwicHJvZ3Jlc3MgIT09IC0xXCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoXT1cInByb2dyZXNzICsgJyUnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwcm9ncmVzcyArICclJ1wiXG4gICAgICAgIGFyaWEtdmFsdWVub3c9XCIwXCJcbiAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxuICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcbiAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwicHJvZ3Jlc3MgPT09IC0xXCI+XG4gICAgICA8Yzh5LWxvYWRpbmc+PC9jOHktbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgICA8cFxuICAgICAgY2xhc3M9XCJtLWItOFwiXG4gICAgICAqbmdJZj1cIiFoYXNEcm9wQXJlYVNtYWxsQ2xhc3NcIlxuICAgID5cbiAgICAgIDxzdHJvbmc+XG4gICAgICAgIHt7IGxvYWRpbmdNZXNzYWdlIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L3N0cm9uZz5cbiAgICA8L3A+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmaWxlLXBsYWNlaG9sZGVyIHAtNFwiXG4gICAgKm5nSWY9XCIhbG9hZGluZ1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHAtNCBhLWktY2VudGVyXCI+XG4gICAgICA8aVxuICAgICAgICBjbGFzcz1cImljb24tMjAgbS1yLThcIlxuICAgICAgICBjOHlJY29uPVwiZmlsZS1vXCJcbiAgICAgID48L2k+XG4gICAgICA8c3BhblxuICAgICAgICBjbGFzcz1cInRleHQtdHJ1bmNhdGVcIlxuICAgICAgICB0aXRsZT1cInt7IGZpbGVzTmFtZVN0cmluZyB9fVwiXG4gICAgICA+XG4gICAgICAgIHt7IGZpbGVzTmFtZVN0cmluZyB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImJ0biBidG4tZG90IGJ0bi1kb3QtLWRhbmdlciBzaG93T25Ib3ZlciBtLWwtYXV0b1wiXG4gICAgICAgIHRpdGxlPVwie3sgJ1JlbW92ZScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidSZW1vdmUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICA+XG4gICAgICAgIDxpXG4gICAgICAgICAgYzh5SWNvbj1cIm1pbnVzLWNpcmNsZVwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uRGVsZXRlKClcIlxuICAgICAgICA+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG48bGFiZWxcbiAgY2xhc3M9XCJzci1vbmx5XCJcbiAgZm9yPVwiZmlsZVwiXG4+XG4gIHt7ICdTZWxlY3QgZmlsZScgfCB0cmFuc2xhdGUgfX1cbjwvbGFiZWw+XG48aW5wdXRcbiAgY2xhc3M9XCJoaWRkZW5cIlxuICBpZD1cImZpbGVcIlxuICB0eXBlPVwiZmlsZVwiXG4gICNwaWNrZXJcbiAgKm5nSWY9XCJjbGlja1RvT3BlblwiXG4gIChjaGFuZ2UpPVwib25QaWNrKCRldmVudClcIlxuICAoY2xpY2spPVwicGlja2VyLmZvY3VzKClcIlxuICAoYmx1cik9XCJvblRvdWNoZWQoKVwiXG4gIFthY2NlcHRdPVwiYWNjZXB0ZWRFeHRzXCJcbiAgW211bHRpcGxlXT1cIm1heEFsbG93ZWRGaWxlcyA+IDFcIlxuICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2w/LmRpc2FibGVkXCJcbi8+XG48ZGl2XG4gICNhcmVhXG4gIFtoaWRkZW5dPVwiaXNPdmVyIHx8IGxvYWRpbmdcIlxuICAoZHJhZ292ZXIpPVwidG9nZ2xlKClcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
@@ -20226,6 +20226,7 @@ class DropAreaComponent {
20226
20226
  this.clearErrors();
20227
20227
  this.dropped.emit(null);
20228
20228
  this.onChange(null);
20229
+ this.onTouched();
20229
20230
  this.cd.markForCheck();
20230
20231
  }
20231
20232
  writeValue(value) {
@@ -20245,6 +20246,7 @@ class DropAreaComponent {
20245
20246
  this.onTouched = fn;
20246
20247
  }
20247
20248
  async onFilesSelected(files) {
20249
+ this.onTouched();
20248
20250
  const hasValidNameLength = this.filesService.checkMaxLength(files);
20249
20251
  if (!hasValidNameLength) {
20250
20252
  this.onFileInvalidNameLength();