@iplab/ngx-file-upload
Advanced tools
Comparing version 3.3.0 to 3.3.1
@@ -17,3 +17,3 @@ import { BehaviorSubject, Subject } from 'rxjs'; | ||
constructor(configuration, validators) { | ||
this.files = new Set(); | ||
this.files = new Map(); | ||
this.listVisible = true; | ||
@@ -79,3 +79,3 @@ this.status = STATUS.VALID; | ||
if (!this.disabled) { | ||
this.files.delete(file); | ||
this.files.delete(file.name); | ||
this.validate(); | ||
@@ -253,6 +253,7 @@ this.valueChanges.next(Array.from(this.files.values())); | ||
// add only one file | ||
this.files.add(files[0]); | ||
this.files.set(files[0].name, files[0]); | ||
} | ||
else { | ||
files.forEach(file => this.files.add(file)); | ||
// replace files with same name | ||
files.forEach(file => this.files.set(file.name, file)); | ||
} | ||
@@ -289,5 +290,5 @@ if (this.discard) { | ||
(Array.isArray(errors) ? errors : [errors]).forEach(fileError => { | ||
if (fileError.file && this.files.has(fileError.file)) { | ||
if (fileError.file && this.files.has(fileError.file.name)) { | ||
deletedFiles.push(fileError); | ||
this.files.delete(fileError.file); | ||
this.files.delete(fileError.file.name); | ||
} | ||
@@ -312,2 +313,2 @@ else { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lwbGFiL25neC1maWxlLXVwbG9hZC9zcmMvbGliL2hlbHBlcnMvY29udHJvbC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNkLHlDQUFPLENBQUE7SUFDUCxxQ0FBSyxDQUFBO0lBQ0wsMkNBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxNQUFNLEtBQU4sTUFBTSxRQUlqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZiwwQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFvRTFCLFlBQVksYUFBK0MsRUFBRSxVQUE2QztRQWxFekYsVUFBSyxHQUFjLElBQUksR0FBRyxFQUFFLENBQUM7UUFFdEMsZ0JBQVcsR0FBRyxJQUFJLENBQUM7UUFFbkIsV0FBTSxHQUFXLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFOUIsV0FBTSxHQUFrQyxFQUFFLENBQUM7UUFFM0MsZUFBVSxHQUF1QixFQUFFLENBQUM7UUFFcEMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFaEMsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFFdkIsb0JBQWUsR0FBNkIsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBRXRGLGtCQUFhLEdBQW9CLElBQUksT0FBTyxFQUFFLENBQUM7UUFFL0Msa0JBQWEsR0FBdUIsSUFBSSxPQUFPLEVB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QUMsT0FBTyxDQUFDLENBQUM7YUFDdkU7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRvckZuLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBJc051bGxPckVtcHR5IH0gZnJvbSAnLi9oZWxwZXJzLmNsYXNzJztcclxuaW1wb3J0IHsgSUZpbGVVcGxvYWRDb250cm9sQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vY29udHJvbC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGVudW0gU1RBVFVTIHtcclxuICAgIElOVkFMSUQsXHJcbiAgICBWQUxJRCxcclxuICAgIERJU0FCTEVEXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVFdmVudCB7XHJcbiAgICBjbGljayA9ICdjbGljaycsXHJcbiAgICBmb2N1cyA9ICdmb2N1cycsXHJcbiAgICBibHVyID0gJ2JsdXInXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbCB7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlczogU2V0PEZpbGU+ID0gbmV3IFNldCgpO1xyXG5cclxuICAgIHByaXZhdGUgbGlzdFZpc2libGUgPSB0cnVlO1xyXG5cclxuICAgIHByaXZhdGUgc3RhdHVzOiBTVEFUVVMgPSBTVEFUVVMuVkFMSUQ7XHJcblxyXG4gICAgcHJpdmF0ZSBlcnJvcnM6IEFycmF5PHsgW2tleTogc3RyaW5nXTogYW55IH0+ID0gW107XHJcblxyXG4gICAgcHJpdmF0ZSB2YWxpZGF0b3JzOiBBcnJheTxWYWxpZGF0b3JGbj4gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIG11bHRpcGxlRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBuYXRpdmVCZWhhdmlvcjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgbXVsdGlwbGVDaGFuZ2VkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubXVsdGlwbGVFbmFibGVkKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXR1c0NoYW5nZWQ6IFN1YmplY3Q8U1RBVFVTPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBldmVudHNDaGFuZ2VkOiBTdWJqZWN0PEZpbGVFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzY2FyZGVkVmFsdWU6IFN1YmplY3Q8QXJyYXk8VmFsaWRhdGlvbkVycm9yPj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIHByaXZhdGUgYWNjZXB0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgICBwcml2YXRlIGRpc2NhcmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjY2VwdENoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLmFjY2VwdCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBzdGF0dXMgYFZBTElEYCwgYElOVkFMSURgIG9yIGBESVNBQkxFRGBcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YXR1c0NoYW5nZXM6IE9ic2VydmFibGU8U1RBVFVTPiA9IHRoaXMuc3RhdHVzQ2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGVtaXQgYW4gZXZlbnQgZXZlcnkgdGltZSB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2xcclxuICAgICAqIGNoYW5nZXMuXHJcbiAgICAgKiBJbml0aWFsbHkgcmV0dXJucyBsYXN0IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSB2YWx1ZUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxBcnJheTxGaWxlPj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFtdKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICogdXNlZCB0byB0cmlnZ2VyIGxheW91dCBjaGFuZ2UgZm9yIGxpc3QgdmlzaWJpbGl0eVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbGlzdFZpc2liaWxpdHlDaGFuZ2VzOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMubGlzdFZpc2libGUpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgY2hhbmdlZCBvbiBhY2NlcHQgYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBhY2NlcHRDaGFuZ2VzOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLmFjY2VwdENoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBlbWl0IGFuIGV2ZW50IGV2ZXJ5IHRpbWUgdXNlciBwcm9ncmFtbWF0aWNhbGx5IGFzayBmb3IgY2VydGFpbiBldmVudFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRzQ2hhbmdlczogT2JzZXJ2YWJsZTxGaWxlRXZlbnQ+ID0gdGhpcy5ldmVudHNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgY2hhbmdlZCBvbiBtdWx0aXBsZSBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IG11bHRpcGxlQ2hhbmdlczogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubXVsdGlwbGVDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogdHJhY2sgd2hpY2ggZmlsZXMgd2VyZSBkaXNjYXJkZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc2NhcmRlZFZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxBcnJheTxWYWxpZGF0aW9uRXJyb3I+PiA9IHRoaXMuZGlzY2FyZGVkVmFsdWUuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvbj86IElGaWxlVXBsb2FkQ29udHJvbENvbmZpZ3VyYXRpb24sIHZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbiB8IEFycmF5PFZhbGlkYXRvckZuPikge1xyXG4gICAgICAgIHRoaXMuaW5pdGlhbFN0YXRlKGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgICAgIHRoaXMuZGVmaW5lVmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNldCBmdW5jdGlvbnMgdGhhdCBkZXRlcm1pbmVzIHRoZSBzeW5jaHJvbm91cyB2YWxpZGl0eSBvZiB0aGlzIGNvbnRyb2wuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgQXJyYXk8VmFsaWRhdG9yRm4+KTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5kZWZpbmVWYWxpZGF0b3JzKG5ld1ZhbGlkYXRvcnMpO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWRkRmlsZShmaWxlOiBGaWxlKTogdGhpcyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkTXVsdGlwbGVGaWxlcyhbZmlsZV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyByZW1vdmVGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlcy5kZWxldGUoZmlsZSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFkZEZpbGVzKGZpbGVzOiBGaWxlTGlzdCk6IHRoaXMge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFkZE11bHRpcGxlRmlsZXMoQXJyYXkuZnJvbShmaWxlcykpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA9PT0gMCAmJiB0aGlzLnN0YXR1cyAhPT0gU1RBVFVTLkRJU0FCTEVEO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnMubGVuZ3RoID4gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0RXJyb3IoKTogQXJyYXk8VmFsaWRhdGlvbkVycm9ycz4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG51bWJlciBvZiB1cGxvYWRlZCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHNpemUoKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5maWxlcy5zaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmV0dXJuIGxpc3Qgb2YgRmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBBcnJheTxGaWxlPiB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5maWxlcy52YWx1ZXMoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFZhbHVlKGZpbGVzOiBBcnJheTxGaWxlPik6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuXHJcbiAgICAgICAgaWYgKGZpbGVzIGluc3RhbmNlb2YgQXJyYXkpIHtcclxuICAgICAgICAgICAgdGhpcy5hZGRNdWx0aXBsZUZpbGVzKGZpbGVzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihgRm9ybUNvbnRyb2wuc2V0VmFsdWUgd2FzIHByb3ZpZGVkIHdpdGggd3JvbmcgYXJndW1lbnQgdHlwZSwgJHtmaWxlc30gd2FzIHByb3ZpZGVkIGluc3RlYWQgQXJyYXk8RmlsZT5gKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogcmVzZXQgdGhlIGNvbnRyb2xcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsZWFyKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGlzTGlzdFZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGlzdFZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldExpc3RWaXNpYmlsaXR5KGlzVmlzaWJsZTogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmxlID0gaXNWaXNpYmxlO1xyXG4gICAgICAgIHRoaXMubGlzdFZpc2liaWxpdHlDaGFuZ2VzLm5leHQodGhpcy5saXN0VmlzaWJsZSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zdGF0dXMgPT09IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZW5hYmxlKGlzRW5hYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9IGlzRW5hYmxlZCA/IFNUQVRVUy5WQUxJRCA6IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNhYmxlKGlzRGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpc0Rpc2FibGVkID8gU1RBVFVTLkRJU0FCTEVEIDogU1RBVFVTLlZBTElEO1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB0aGlzLnN0YXR1c0NoYW5nZWQubmV4dCh0aGlzLnN0YXR1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNsaWNrKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5jbGljayk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZvY3VzKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5mb2N1cyk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGJsdXIoKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5ldmVudHNDaGFuZ2VkLm5leHQoRmlsZUV2ZW50LmJsdXIpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3BlY2lmaWVzIHRoZSB0eXBlcyBvZiBmaWxlcyB0aGF0IHRoZSBzZXJ2ZXIgYWNjZXB0c1xyXG4gICAgICpcclxuICAgICAqICMjIyBFeGFtcGxlXHJcbiAgICAgKlxyXG4gICAgICogYGBgXHJcbiAgICAgKiBhY2NlcHRGaWxlcyhcImZpbGVfZXh0ZW5zaW9ufGF1ZGlvLyp8dmlkZW8vKnxpbWFnZS8qfG1lZGlhX3R5cGVcIilcclxuICAgICAqIGBgYFxyXG4gICAgICpcclxuICAgICAqIFRvIHNwZWNpZnkgbW9yZSB0aGFuIG9uZSB2YWx1ZSwgc2VwYXJhdGUgdGhlIHZhbHVlcyB3aXRoIGEgY29tbWEgKGUuZy4gYWNjZXB0RmlsZXMoXCJhdWRpby8qLHZpZGVvLyosaW1hZ2UvKlwiKS5cclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY2NlcHRGaWxlcyhhY2NlcHQ6IHN0cmluZyk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWNjZXB0ID0gYWNjZXB0O1xyXG4gICAgICAgIHRoaXMuYWNjZXB0Q2hhbmdlZC5uZXh0KHRoaXMuYWNjZXB0KTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgYWNjZXB0QWxsKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuYWNjZXB0ID0gbnVsbDtcclxuICAgICAgICB0aGlzLmFjY2VwdENoYW5nZWQubmV4dCh0aGlzLmFjY2VwdCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpc011bHRpcGxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm11bHRpcGxlRW5hYmxlZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbXVsdGlwbGUoaXNFbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVFbmFibGVkID0gaXNFbmFibGVkO1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVDaGFuZ2VkLm5leHQodGhpcy5tdWx0aXBsZUVuYWJsZWQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuYXRpdmUoaXNOYXRpdmVCZWhhdmlvckVuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5uYXRpdmVCZWhhdmlvciA9IGlzTmF0aXZlQmVoYXZpb3JFbmFibGVkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkaXNjYXJkSW52YWxpZChkaXNjYXJkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZGlzY2FyZCA9IGRpc2NhcmQ7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0aWFsU3RhdGUoY29uZmlndXJhdGlvbjogSUZpbGVVcGxvYWRDb250cm9sQ29uZmlndXJhdGlvbiA9IHt9KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKElzTnVsbE9yRW1wdHkoY29uZmlndXJhdGlvbikpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBUb2dnbGVzIGRpc2NhcmQgb2YgYWxsIGludmFsaWQgZmlsZXNcclxuICAgICAgICAgKiBpdCBkZXBlbmRzIHRvIGFjY2VwdCwgbGltaXQsIHNpemUgb25jZSBhIGZpbGVcclxuICAgICAgICAgKiBkcm9wcGVkIG9yIHNlbGVjdGVkIGl0IHdpbGwgYmUgZGlzY2FyZGVkIGlmIGRvZXMgbm90IHNhdGlzZnkgdGhlIGNvbnN0cmFpbnRcclxuICAgICAgICAgKi9cclxuICAgICAgICB0aGlzLmRpc2NhcmQgPSBjb25maWd1cmF0aW9uLmRpc2NhcmRJbnZhbGlkIHx8IHRoaXMuZGlzY2FyZDtcclxuICAgICAgICB0aGlzLnN0YXR1cyA9ICEhY29uZmlndXJhdGlvbi5kaXNhYmxlZCA/IFNUQVRVUy5ESVNBQkxFRCA6IHRoaXMuc3RhdHVzO1xyXG4gICAgICAgIHRoaXMubXVsdGlwbGVFbmFibGVkID0gY29uZmlndXJhdGlvbi5tdWx0aXBsZSB8fCB0aGlzLm11bHRpcGxlRW5hYmxlZDtcclxuICAgICAgICB0aGlzLm5hdGl2ZUJlaGF2aW9yID0gY29uZmlndXJhdGlvbi5uYXRpdmUgIT0gbnVsbCA/IGNvbmZpZ3VyYXRpb24ubmF0aXZlIDogdGhpcy5uYXRpdmVCZWhhdmlvcjtcclxuXHJcbiAgICAgICAgaWYgKCFJc051bGxPckVtcHR5KGNvbmZpZ3VyYXRpb24ubGlzdFZpc2libGUpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0TGlzdFZpc2liaWxpdHkoY29uZmlndXJhdGlvbi5saXN0VmlzaWJsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghSXNOdWxsT3JFbXB0eShjb25maWd1cmF0aW9uLmFjY2VwdCkpIHtcclxuICAgICAgICAgICAgdGhpcy5hY2NlcHRGaWxlcyhjb25maWd1cmF0aW9uLmFjY2VwdC5qb2luKCcsJykpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRlZmluZVZhbGlkYXRvcnModmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBBcnJheTxWYWxpZGF0b3JGbj4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkodmFsaWRhdG9ycykpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gQXJyYXkuaXNBcnJheSh2YWxpZGF0b3JzKSA/IFsuLi52YWxpZGF0b3JzXSA6IFt2YWxpZGF0b3JzXTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqIHVzZWQgdG8gcHJldmVudCB2YWx1ZUNoYW5nZXMgZW1pdCBtb3JlIHRpbWVzXHJcbiAgICAgKiB3aGVuIG11bHRpcGxlIGZpbGVzIGFyZSB1cGxvYWRlZFxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFkZE11bHRpcGxlRmlsZXMoZmlsZXM6IEFycmF5PEZpbGU+KTogdGhpcyB7XHJcbiAgICAgICAgaWYgKElzTnVsbE9yRW1wdHkoZmlsZXMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBuYXRpdmUgY29tcG9uZW50IGRlbGV0ZXMgdGhlIGxpc3Qgb2YgZmlsZXMgYmVmb3JlIGFkZGluZyBuZXcgb25lc1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgICBpZiAodGhpcy5uYXRpdmVCZWhhdmlvciAhPT0gZmFsc2UpIHtcclxuICAgICAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlRW5hYmxlZCkge1xyXG4gICAgICAgICAgICAvKipcclxuICAgICAgICAgICAgICogaWYgbXVsdGlwbGUgaXMgZGlzYWJsZWQgYW5kIG9uZSBmaWxlIGV4aXN0c1xyXG4gICAgICAgICAgICAgKiBjbGVhciBpdCBhbmQgcmV1cGxvYWQgYSBuZXcgb25lXHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAodGhpcy5maWxlcy5zaXplID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gYWRkIG9ubHkgb25lIGZpbGVcclxuICAgICAgICAgICAgdGhpcy5maWxlcy5hZGQoZmlsZXNbMF0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB0aGlzLmZpbGVzLmFkZChmaWxlKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5kaXNjYXJkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYW5hbHl6ZVRvRGlzY2FyZCgpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdGUoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBtZXRob2QgdXNlZCB0byBkaXNjYXJkIGludmFsaWQgZmlsZXNcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhbmFseXplVG9EaXNjYXJkKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRlbGV0ZWRGaWxlczogQXJyYXk8VmFsaWRhdGlvbkVycm9yPiA9IFtdO1xyXG5cclxuICAgICAgICBjb25zdCB2YWxpZGF0b3JzID0gWy4uLnRoaXMudmFsaWRhdG9yc107XHJcblxyXG4gICAgICAgIHdoaWxlICh2YWxpZGF0b3JzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0b3IgPSB2YWxpZGF0b3JzLnNoaWZ0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IGVycm9yID0gdmFsaWRhdG9yKHRoaXMpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2NhcmRGaWxlKGVycm9yLCBkZWxldGVkRmlsZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZGVsZXRlZEZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2NhcmRlZFZhbHVlLm5leHQoZGVsZXRlZEZpbGVzKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkaXNjYXJkRmlsZShlcnJvcjogVmFsaWRhdGlvbkVycm9ycywgZGVsZXRlZEZpbGVzOiBBcnJheTxWYWxpZGF0aW9uRXJyb3I+KSB7XHJcbiAgICAgICAgY29uc3QgZXJyb3JzS2V5ID0gT2JqZWN0LmtleXMoZXJyb3IpWzBdO1xyXG4gICAgICAgIGNvbnN0IGVycm9ycyA9IGVycm9yW2Vycm9yc0tleV07XHJcblxyXG4gICAgICAgIChBcnJheS5pc0FycmF5KGVycm9ycykgPyBlcnJvcnMgOiBbZXJyb3JzXSkuZm9yRWFjaChmaWxlRXJyb3IgPT4ge1xyXG4gICAgICAgICAgICBpZiAoZmlsZUVycm9yLmZpbGUgJiYgdGhpcy5maWxlcy5oYXMoZmlsZUVycm9yLmZpbGUpKSB7XHJcbiAgICAgICAgICAgICAgICBkZWxldGVkRmlsZXMucHVzaChmaWxlRXJyb3IpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlcy5kZWxldGUoZmlsZUVycm9yLmZpbGUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvcnMucHVzaChlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyAhPT0gU1RBVFVTLkRJU0FCTEVEKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMudmFsaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy52YWxpZGF0b3JzLm1hcCgodmFsaWRhdG9yKSA9PiB2YWxpZGF0b3IodGhpcykpLmZpbHRlcigoaXNJbnZhbGlkKSA9PiBpc0ludmFsaWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGF0ZSAhPT0gdGhpcy52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy52YWxpZCA/IFNUQVRVUy5WQUxJRCA6IFNUQVRVUy5JTlZBTElEKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lwbGFiL25neC1maWxlLXVwbG9hZC9zcmMvbGliL2hlbHBlcnMvY29udHJvbC5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHaEQsTUFBTSxDQUFOLElBQVksTUFJWDtBQUpELFdBQVksTUFBTTtJQUNkLHlDQUFPLENBQUE7SUFDUCxxQ0FBSyxDQUFBO0lBQ0wsMkNBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxNQUFNLEtBQU4sTUFBTSxRQUlqQjtBQUVELE1BQU0sQ0FBTixJQUFZLFNBSVg7QUFKRCxXQUFZLFNBQVM7SUFDakIsNEJBQWUsQ0FBQTtJQUNmLDRCQUFlLENBQUE7SUFDZiwwQkFBYSxDQUFBO0FBQ2pCLENBQUMsRUFKVyxTQUFTLEtBQVQsU0FBUyxRQUlwQjtBQUVELE1BQU0sT0FBTyxpQkFBaUI7SUFvRTFCLFlBQVksYUFBK0MsRUFBRSxVQUE2QztRQWxFekYsVUFBSyxHQUFzQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTlDLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBRW5CLFdBQU0sR0FBVyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBRTlCLFdBQU0sR0FBa0MsRUFBRSxDQUFDO1FBRTNDLGVBQVUsR0FBdUIsRUFBRSxDQUFDO1FBRXBDLG9CQUFlLEdBQVksSUFBSSxDQUFDO1FBRWhDLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRXZCLG9CQUFlLEdBQTZCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0RixrQkFBYSxHQUFvQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBRS9DLGtCQUFhLEdBQXVCLElBQUksT0FBTyxFQUFFLENBQUM7UUFFbEQsbUJBQWMsR0FBb0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6RSxXQUFNLEdBQWtCLElBQUksQ0FBQztRQUU3QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBRWhCLGtCQUFhLEdBQTRCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUzRjs7V0FFRztRQUNhLGtCQUFhLEdBQXVCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFdEY7Ozs7V0FJRztRQUNhLGlCQUFZLEdBQWlDLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXJGOzs7V0FHRztRQUNhLDBCQUFxQixHQUE2QixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEc7O1dBRUc7UUFDYSxrQkFBYSxHQUF1QixJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBRXRGOztXQUVHO1FBQ2Esa0JBQWEsR0FBMEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUV6Rjs7V0FFRztRQUNhLG9CQUFlLEdBQXdCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFM0Y7O1dBRUc7UUFDYSwwQkFBcUIsR0FBdUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUczRyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhLENBQUMsYUFBK0M7UUFDaEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLElBQVU7UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBVTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDM0Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWU7UUFDM0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDdkUsQ0FBQztJQUVELElBQVcsT0FBTztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxRQUFRO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxLQUFLO1FBQ1osT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRU0sUUFBUSxDQUFDLEtBQWtCO1FBQzlCLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7UUFFbkIsSUFBSSxLQUFLLFlBQVksS0FBSyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQzthQUFNO1lBQ0gsTUFBTSxLQUFLLENBQUMsK0RBQStELEtBQUssbUNBQW1DLENBQUMsQ0FBQztTQUN4SDtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUs7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDcEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxZQUFxQixJQUFJO1FBQzlDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDO1FBQzdCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxJQUFXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUMzQyxDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQXFCLElBQUk7UUFDbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sT0FBTyxDQUFDLGFBQXNCLElBQUk7UUFDckMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sS0FBSztRQUNSLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sSUFBSTtRQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSSxXQUFXLENBQUMsTUFBYztRQUM3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFNBQVM7UUFDWixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVNLFFBQVEsQ0FBQyxZQUFxQixJQUFJO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsU0FBUyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLDBCQUFtQyxJQUFJO1FBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsdUJBQXVCLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxVQUFtQixJQUFJO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxZQUFZLENBQUMsZ0JBQWlELEVBQUU7UUFDcEUsSUFBSSxhQUFhLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDOUIsT0FBTztTQUNWO1FBQ0Q7Ozs7V0FJRztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsYUFBYSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkUsSUFBSSxDQUFDLGVBQWUsR0FBRyxhQUFhLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDdEUsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUVoRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BEO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFVBQTRDO1FBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDaEY7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLEtBQWtCO1FBQ3ZDLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRDs7V0FFRztRQUNGLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLEVBQUU7WUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztTQUN0QjtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3ZCOzs7ZUFHRztZQUNILElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQ3RCO1lBQ0Qsb0JBQW9CO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNILCtCQUErQjtZQUMvQixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzFEO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7U0FDM0I7YUFBTTtZQUNILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNuQjtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCO1FBQ3BCLE1BQU0sWUFBWSxHQUEyQixFQUFFLENBQUM7UUFFaEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV4QyxPQUFPLFVBQVUsQ0FBQyxNQUFNLEVBQUU7WUFDdEIsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3JDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUU5QixJQUFJLEtBQUssRUFBRTtnQkFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQzthQUN6QztTQUNKO1FBRUQsSUFBSSxZQUFZLENBQUMsTUFBTSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQzFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUF1QixFQUFFLFlBQW9DO1FBQzdFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWhDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzVELElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUN2RCxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM3QixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFDO2lCQUFNO2dCQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzNCO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ2pDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUVuRyxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdkU7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFZhbGlkYXRvckZuLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL3ZhbGlkYXRvcnMuY2xhc3MnO1xyXG5pbXBvcnQgeyBJc051bGxPckVtcHR5IH0gZnJvbSAnLi9oZWxwZXJzLmNsYXNzJztcclxuaW1wb3J0IHsgSUZpbGVVcGxvYWRDb250cm9sQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vY29udHJvbC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGVudW0gU1RBVFVTIHtcclxuICAgIElOVkFMSUQsXHJcbiAgICBWQUxJRCxcclxuICAgIERJU0FCTEVEXHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIEZpbGVFdmVudCB7XHJcbiAgICBjbGljayA9ICdjbGljaycsXHJcbiAgICBmb2N1cyA9ICdmb2N1cycsXHJcbiAgICBibHVyID0gJ2JsdXInXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29udHJvbCB7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlczogTWFwPHN0cmluZywgRmlsZT4gPSBuZXcgTWFwKCk7XHJcblxyXG4gICAgcHJpdmF0ZSBsaXN0VmlzaWJsZSA9IHRydWU7XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0dXM6IFNUQVRVUyA9IFNUQVRVUy5WQUxJRDtcclxuXHJcbiAgICBwcml2YXRlIGVycm9yczogQXJyYXk8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4gPSBbXTtcclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRvcnM6IEFycmF5PFZhbGlkYXRvckZuPiA9IFtdO1xyXG5cclxuICAgIHByaXZhdGUgbXVsdGlwbGVFbmFibGVkOiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgICBwcml2YXRlIG5hdGl2ZUJlaGF2aW9yOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtdWx0aXBsZUNoYW5nZWQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5tdWx0aXBsZUVuYWJsZWQpO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlZDogU3ViamVjdDxTVEFUVVM+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50c0NoYW5nZWQ6IFN1YmplY3Q8RmlsZUV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNjYXJkZWRWYWx1ZTogU3ViamVjdDxBcnJheTxWYWxpZGF0aW9uRXJyb3I+PiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBhY2NlcHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgZGlzY2FyZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWNjZXB0Q2hhbmdlZDogQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYWNjZXB0KTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIHRyYWNrIHN0YXR1cyBgVkFMSURgLCBgSU5WQUxJRGAgb3IgYERJU0FCTEVEYFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ2hhbmdlczogT2JzZXJ2YWJsZTxTVEFUVVM+ID0gdGhpcy5zdGF0dXNDaGFuZ2VkLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogZW1pdCBhbiBldmVudCBldmVyeSB0aW1lIHRoZSB2YWx1ZSBvZiB0aGUgY29udHJvbFxyXG4gICAgICogY2hhbmdlcy5cclxuICAgICAqIEluaXRpYWxseSByZXR1cm5zIGxhc3QgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogQmVoYXZpb3JTdWJqZWN0PEFycmF5PEZpbGU+PiA9IG5ldyBCZWhhdmlvclN1YmplY3QoW10pO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKiB1c2VkIHRvIHRyaWdnZXIgbGF5b3V0IGNoYW5nZSBmb3IgbGlzdCB2aXNpYmlsaXR5XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBsaXN0VmlzaWJpbGl0eUNoYW5nZXM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5saXN0VmlzaWJsZSk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBjaGFuZ2VkIG9uIGFjY2VwdCBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGFjY2VwdENoYW5nZXM6IE9ic2VydmFibGU8c3RyaW5nPiA9IHRoaXMuYWNjZXB0Q2hhbmdlZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGVtaXQgYW4gZXZlbnQgZXZlcnkgdGltZSB1c2VyIHByb2dyYW1tYXRpY2FsbHkgYXNrIGZvciBjZXJ0YWluIGV2ZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyByZWFkb25seSBldmVudHNDaGFuZ2VzOiBPYnNlcnZhYmxlPEZpbGVFdmVudD4gPSB0aGlzLmV2ZW50c0NoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayBjaGFuZ2VkIG9uIG11bHRpcGxlIGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgbXVsdGlwbGVDaGFuZ2VzOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5tdWx0aXBsZUNoYW5nZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiB0cmFjayB3aGljaCBmaWxlcyB3ZXJlIGRpc2NhcmRlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzY2FyZGVkVmFsdWVDaGFuZ2VzOiBPYnNlcnZhYmxlPEFycmF5PFZhbGlkYXRpb25FcnJvcj4+ID0gdGhpcy5kaXNjYXJkZWRWYWx1ZS5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihjb25maWd1cmF0aW9uPzogSUZpbGVVcGxvYWRDb250cm9sQ29uZmlndXJhdGlvbiwgdmFsaWRhdG9ycz86IFZhbGlkYXRvckZuIHwgQXJyYXk8VmFsaWRhdG9yRm4+KSB7XHJcbiAgICAgICAgdGhpcy5pbml0aWFsU3RhdGUoY29uZmlndXJhdGlvbik7XHJcbiAgICAgICAgdGhpcy5kZWZpbmVWYWxpZGF0b3JzKHZhbGlkYXRvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc2V0IGZ1bmN0aW9ucyB0aGF0IGRldGVybWluZXMgdGhlIHN5bmNocm9ub3VzIHZhbGlkaXR5IG9mIHRoaXMgY29udHJvbC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFZhbGlkYXRvcnMobmV3VmFsaWRhdG9yczogVmFsaWRhdG9yRm4gfCBBcnJheTxWYWxpZGF0b3JGbj4pOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmRlZmluZVZhbGlkYXRvcnMobmV3VmFsaWRhdG9ycyk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGaWxlKGZpbGU6IEZpbGUpOiB0aGlzIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRNdWx0aXBsZUZpbGVzKFtmaWxlXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW92ZUZpbGUoZmlsZTogRmlsZSk6IHRoaXMge1xyXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlLm5hbWUpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBhZGRGaWxlcyhmaWxlczogRmlsZUxpc3QpOiB0aGlzIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hZGRNdWx0aXBsZUZpbGVzKEFycmF5LmZyb20oZmlsZXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVycm9ycy5sZW5ndGggPT09IDAgJiYgdGhpcy5zdGF0dXMgIT09IFNUQVRVUy5ESVNBQkxFRDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JzLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldEVycm9yKCk6IEFycmF5PFZhbGlkYXRpb25FcnJvcnM+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lcnJvcnM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBudW1iZXIgb2YgdXBsb2FkZWQgZmlsZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZXMuc2l6ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHJldHVybiBsaXN0IG9mIEZpbGVzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogQXJyYXk8RmlsZT4ge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRWYWx1ZShmaWxlczogQXJyYXk8RmlsZT4pOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XHJcblxyXG4gICAgICAgIGlmIChmaWxlcyBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkTXVsdGlwbGVGaWxlcyhmaWxlcyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhyb3cgRXJyb3IoYEZvcm1Db250cm9sLnNldFZhbHVlIHdhcyBwcm92aWRlZCB3aXRoIHdyb25nIGFyZ3VtZW50IHR5cGUsICR7ZmlsZXN9IHdhcyBwcm92aWRlZCBpbnN0ZWFkIEFycmF5PEZpbGU+YCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHJlc2V0IHRoZSBjb250cm9sXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGVhcigpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmZpbGVzLmNsZWFyKCk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBpc0xpc3RWaXNpYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxpc3RWaXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRMaXN0VmlzaWJpbGl0eShpc1Zpc2libGU6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5saXN0VmlzaWJsZSA9IGlzVmlzaWJsZTtcclxuICAgICAgICB0aGlzLmxpc3RWaXNpYmlsaXR5Q2hhbmdlcy5uZXh0KHRoaXMubGlzdFZpc2libGUpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGVuYWJsZShpc0VuYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdGhpcyB7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSBpc0VuYWJsZWQgPyBTVEFUVVMuVkFMSUQgOiBTVEFUVVMuRElTQUJMRUQ7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5uZXh0KHRoaXMuc3RhdHVzKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzYWJsZShpc0Rpc2FibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzID0gaXNEaXNhYmxlZCA/IFNUQVRVUy5ESVNBQkxFRCA6IFNUQVRVUy5WQUxJRDtcclxuICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy5zdGF0dXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGljaygpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuY2xpY2spO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBmb2N1cygpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmV2ZW50c0NoYW5nZWQubmV4dChGaWxlRXZlbnQuZm9jdXMpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBibHVyKCk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMuZXZlbnRzQ2hhbmdlZC5uZXh0KEZpbGVFdmVudC5ibHVyKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHNwZWNpZmllcyB0aGUgdHlwZXMgb2YgZmlsZXMgdGhhdCB0aGUgc2VydmVyIGFjY2VwdHNcclxuICAgICAqXHJcbiAgICAgKiAjIyMgRXhhbXBsZVxyXG4gICAgICpcclxuICAgICAqIGBgYFxyXG4gICAgICogYWNjZXB0RmlsZXMoXCJmaWxlX2V4dGVuc2lvbnxhdWRpby8qfHZpZGVvLyp8aW1hZ2UvKnxtZWRpYV90eXBlXCIpXHJcbiAgICAgKiBgYGBcclxuICAgICAqXHJcbiAgICAgKiBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgdmFsdWUsIHNlcGFyYXRlIHRoZSB2YWx1ZXMgd2l0aCBhIGNvbW1hIChlLmcuIGFjY2VwdEZpbGVzKFwiYXVkaW8vKix2aWRlby8qLGltYWdlLypcIikuXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWNjZXB0RmlsZXMoYWNjZXB0OiBzdHJpbmcpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFjY2VwdCA9IGFjY2VwdDtcclxuICAgICAgICB0aGlzLmFjY2VwdENoYW5nZWQubmV4dCh0aGlzLmFjY2VwdCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGFjY2VwdEFsbCgpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmFjY2VwdCA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5hY2NlcHRDaGFuZ2VkLm5leHQodGhpcy5hY2NlcHQpO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaXNNdWx0aXBsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tdWx0aXBsZUVuYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG11bHRpcGxlKGlzRW5hYmxlZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLm11bHRpcGxlRW5hYmxlZCA9IGlzRW5hYmxlZDtcclxuICAgICAgICB0aGlzLm11bHRpcGxlQ2hhbmdlZC5uZXh0KHRoaXMubXVsdGlwbGVFbmFibGVkKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmF0aXZlKGlzTmF0aXZlQmVoYXZpb3JFbmFibGVkOiBib29sZWFuID0gdHJ1ZSk6IHRoaXMge1xyXG4gICAgICAgIHRoaXMubmF0aXZlQmVoYXZpb3IgPSBpc05hdGl2ZUJlaGF2aW9yRW5hYmxlZDtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGlzY2FyZEludmFsaWQoZGlzY2FyZDogYm9vbGVhbiA9IHRydWUpOiB0aGlzIHtcclxuICAgICAgICB0aGlzLmRpc2NhcmQgPSBkaXNjYXJkO1xyXG4gICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdGlhbFN0YXRlKGNvbmZpZ3VyYXRpb246IElGaWxlVXBsb2FkQ29udHJvbENvbmZpZ3VyYXRpb24gPSB7fSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChJc051bGxPckVtcHR5KGNvbmZpZ3VyYXRpb24pKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogVG9nZ2xlcyBkaXNjYXJkIG9mIGFsbCBpbnZhbGlkIGZpbGVzXHJcbiAgICAgICAgICogaXQgZGVwZW5kcyB0byBhY2NlcHQsIGxpbWl0LCBzaXplIG9uY2UgYSBmaWxlXHJcbiAgICAgICAgICogZHJvcHBlZCBvciBzZWxlY3RlZCBpdCB3aWxsIGJlIGRpc2NhcmRlZCBpZiBkb2VzIG5vdCBzYXRpc2Z5IHRoZSBjb25zdHJhaW50XHJcbiAgICAgICAgICovXHJcbiAgICAgICAgdGhpcy5kaXNjYXJkID0gY29uZmlndXJhdGlvbi5kaXNjYXJkSW52YWxpZCB8fCB0aGlzLmRpc2NhcmQ7XHJcbiAgICAgICAgdGhpcy5zdGF0dXMgPSAhIWNvbmZpZ3VyYXRpb24uZGlzYWJsZWQgPyBTVEFUVVMuRElTQUJMRUQgOiB0aGlzLnN0YXR1cztcclxuICAgICAgICB0aGlzLm11bHRpcGxlRW5hYmxlZCA9IGNvbmZpZ3VyYXRpb24ubXVsdGlwbGUgfHwgdGhpcy5tdWx0aXBsZUVuYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5uYXRpdmVCZWhhdmlvciA9IGNvbmZpZ3VyYXRpb24ubmF0aXZlICE9IG51bGwgPyBjb25maWd1cmF0aW9uLm5hdGl2ZSA6IHRoaXMubmF0aXZlQmVoYXZpb3I7XHJcblxyXG4gICAgICAgIGlmICghSXNOdWxsT3JFbXB0eShjb25maWd1cmF0aW9uLmxpc3RWaXNpYmxlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldExpc3RWaXNpYmlsaXR5KGNvbmZpZ3VyYXRpb24ubGlzdFZpc2libGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIUlzTnVsbE9yRW1wdHkoY29uZmlndXJhdGlvbi5hY2NlcHQpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWNjZXB0RmlsZXMoY29uZmlndXJhdGlvbi5hY2NlcHQuam9pbignLCcpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZWZpbmVWYWxpZGF0b3JzKHZhbGlkYXRvcnM6IFZhbGlkYXRvckZuIHwgQXJyYXk8VmFsaWRhdG9yRm4+KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFJc051bGxPckVtcHR5KHZhbGlkYXRvcnMpKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsaWRhdG9ycyA9IEFycmF5LmlzQXJyYXkodmFsaWRhdG9ycykgPyBbLi4udmFsaWRhdG9yc10gOiBbdmFsaWRhdG9yc107XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKiB1c2VkIHRvIHByZXZlbnQgdmFsdWVDaGFuZ2VzIGVtaXQgbW9yZSB0aW1lc1xyXG4gICAgICogd2hlbiBtdWx0aXBsZSBmaWxlcyBhcmUgdXBsb2FkZWRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhZGRNdWx0aXBsZUZpbGVzKGZpbGVzOiBBcnJheTxGaWxlPik6IHRoaXMge1xyXG4gICAgICAgIGlmIChJc051bGxPckVtcHR5KGZpbGVzKSkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzLm5leHQoQXJyYXkuZnJvbSh0aGlzLmZpbGVzLnZhbHVlcygpKSk7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLyoqXHJcbiAgICAgICAgICogbmF0aXZlIGNvbXBvbmVudCBkZWxldGVzIHRoZSBsaXN0IG9mIGZpbGVzIGJlZm9yZSBhZGRpbmcgbmV3IG9uZXNcclxuICAgICAgICAgKi9cclxuICAgICAgICAgaWYgKHRoaXMubmF0aXZlQmVoYXZpb3IgIT09IGZhbHNlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZXMuY2xlYXIoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tdWx0aXBsZUVuYWJsZWQpIHtcclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqIGlmIG11bHRpcGxlIGlzIGRpc2FibGVkIGFuZCBvbmUgZmlsZSBleGlzdHNcclxuICAgICAgICAgICAgICogY2xlYXIgaXQgYW5kIHJldXBsb2FkIGEgbmV3IG9uZVxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHRoaXMuZmlsZXMuc2l6ZSA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maWxlcy5jbGVhcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIC8vIGFkZCBvbmx5IG9uZSBmaWxlXHJcbiAgICAgICAgICAgIHRoaXMuZmlsZXMuc2V0KGZpbGVzWzBdLm5hbWUsIGZpbGVzWzBdKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyByZXBsYWNlIGZpbGVzIHdpdGggc2FtZSBuYW1lXHJcbiAgICAgICAgICAgIGZpbGVzLmZvckVhY2goZmlsZSA9PiB0aGlzLmZpbGVzLnNldChmaWxlLm5hbWUsIGZpbGUpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRpc2NhcmQpIHtcclxuICAgICAgICAgICAgdGhpcy5hbmFseXplVG9EaXNjYXJkKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZGF0ZSgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZXMubmV4dChBcnJheS5mcm9tKHRoaXMuZmlsZXMudmFsdWVzKCkpKTtcclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIG1ldGhvZCB1c2VkIHRvIGRpc2NhcmQgaW52YWxpZCBmaWxlc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFuYWx5emVUb0Rpc2NhcmQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZGVsZXRlZEZpbGVzOiBBcnJheTxWYWxpZGF0aW9uRXJyb3I+ID0gW107XHJcblxyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbLi4udGhpcy52YWxpZGF0b3JzXTtcclxuXHJcbiAgICAgICAgd2hpbGUgKHZhbGlkYXRvcnMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkYXRvciA9IHZhbGlkYXRvcnMuc2hpZnQoKTtcclxuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB2YWxpZGF0b3IodGhpcyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoZXJyb3IpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzY2FyZEZpbGUoZXJyb3IsIGRlbGV0ZWRGaWxlcyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChkZWxldGVkRmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzY2FyZGVkVmFsdWUubmV4dChkZWxldGVkRmlsZXMpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGRpc2NhcmRGaWxlKGVycm9yOiBWYWxpZGF0aW9uRXJyb3JzLCBkZWxldGVkRmlsZXM6IEFycmF5PFZhbGlkYXRpb25FcnJvcj4pIHtcclxuICAgICAgICBjb25zdCBlcnJvcnNLZXkgPSBPYmplY3Qua2V5cyhlcnJvcilbMF07XHJcbiAgICAgICAgY29uc3QgZXJyb3JzID0gZXJyb3JbZXJyb3JzS2V5XTtcclxuXHJcbiAgICAgICAgKEFycmF5LmlzQXJyYXkoZXJyb3JzKSA/IGVycm9ycyA6IFtlcnJvcnNdKS5mb3JFYWNoKGZpbGVFcnJvciA9PiB7XHJcbiAgICAgICAgICAgIGlmIChmaWxlRXJyb3IuZmlsZSAmJiB0aGlzLmZpbGVzLmhhcyhmaWxlRXJyb3IuZmlsZS5uYW1lKSkge1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlZEZpbGVzLnB1c2goZmlsZUVycm9yKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMuZGVsZXRlKGZpbGVFcnJvci5maWxlLm5hbWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5lcnJvcnMucHVzaChlcnJvcik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHZhbGlkYXRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YXR1cyAhPT0gU1RBVFVTLkRJU0FCTEVEKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdGF0ZSA9IHRoaXMudmFsaWQ7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy52YWxpZGF0b3JzLm1hcCgodmFsaWRhdG9yKSA9PiB2YWxpZGF0b3IodGhpcykpLmZpbHRlcigoaXNJbnZhbGlkKSA9PiBpc0ludmFsaWQpO1xyXG5cclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRTdGF0ZSAhPT0gdGhpcy52YWxpZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2VkLm5leHQodGhpcy52YWxpZCA/IFNUQVRVUy5WQUxJRCA6IFNUQVRVUy5JTlZBTElEKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZXJyb3JzLmxlbmd0aCA9IDA7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ== |
@@ -6,3 +6,3 @@ { | ||
"bugs": "https://github.com/pIvan/file-upload/issues", | ||
"version": "3.3.0", | ||
"version": "3.3.1", | ||
"author": "Ivan Pintar", | ||
@@ -9,0 +9,0 @@ "license": "MIT", |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1098055
8709