nuxeo-development-framework 3.5.3 → 3.5.4

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.
@@ -3,6 +3,7 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "../../services/documents.service";
4
4
  import * as i2 from "@angular/material/icon";
5
5
  import * as i3 from "@angular/common";
6
+ import * as i4 from "@ngx-translate/core";
6
7
  /**
7
8
  * A component that will list specific correspondence attachments with edit form for each item
8
9
  * @title
@@ -52,7 +53,7 @@ export class AttachmentsPageProviderComponent {
52
53
  }
53
54
  }
54
55
  AttachmentsPageProviderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: AttachmentsPageProviderComponent, deps: [{ token: i1.DocumentsService }], target: i0.ɵɵFactoryTarget.Component });
55
- AttachmentsPageProviderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: AttachmentsPageProviderComponent, selector: "cts-attachments-page-provider", inputs: { provider: "provider", ancestorId: "ancestorId", params: "params" }, outputs: { deleteSuccess: "deleteSuccess", documentsCount: "documentsCount" }, ngImport: i0, template: "<div *ngIf=\"attachments.length !== 0\" class=\"doc-list\">\r\n <div *ngFor=\"let Attachment of attachments\" class=\"doc-item\">\r\n <div class=\"file-icon\">\r\n <mat-icon>file_copy</mat-icon>\r\n </div>\r\n <div class=\"attachment-container row no-gutters\">\r\n <div class=\"attachment-wrapper col-10 col-xl-6\">\r\n <div>\r\n {{ Attachment.title }}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.remarks }}\r\n </div>\r\n </div>\r\n <div class=\"attachment-wrapper col-10 col-xl-4\">\r\n <div>\r\n {{ Attachment.properties.classification ? Attachment.properties.classification.properties.label : '--'}}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.category ?Attachment.properties.category.properties.label :'--' }}\r\n </div>\r\n </div>\r\n <!-- <div class=\"attachment-wrapper isObject col-10 col-xl-2\">\r\n {{ Attachment.properties.isObject }}\r\n </div> -->\r\n </div>\r\n <div>\r\n <button\r\n (click)=\"deleteDocument($event, Attachment)\"\r\n class=\"btn btn-outline-danger btn-no-border\"\r\n >\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.doc-item{display:flex;flex:1;padding-top:6px;padding-bottom:6px;justify-content:space-between;cursor:pointer;border:1px solid;border-color:#d9dce2}.doc-item .file-icon{margin:4px;color:#465573;display:flex;align-items:center}.attachment-container{width:100%;grid-row-gap:6px;row-gap:6px}.attachment-container .attachment-wrapper{display:flex;align-items:center;justify-content:space-between;grid-column-gap:10px;column-gap:10px;padding-inline-end:5px;padding-inline-start:5px}.attachment-container .attachment-wrapper>*{width:100%}.attachment-container .isObject{display:flex;justify-content:center!important}.btn-wrapper{display:flex;justify-content:flex-end}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
56
+ AttachmentsPageProviderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: AttachmentsPageProviderComponent, selector: "cts-attachments-page-provider", inputs: { provider: "provider", ancestorId: "ancestorId", params: "params" }, outputs: { deleteSuccess: "deleteSuccess", documentsCount: "documentsCount" }, ngImport: i0, template: "<div *ngIf=\"attachments.length !== 0\" class=\"doc-list\">\r\n <div *ngFor=\"let Attachment of attachments\" class=\"doc-item\">\r\n <div class=\"file-icon\">\r\n <mat-icon>file_copy</mat-icon>\r\n </div>\r\n <div class=\"attachment-container row no-gutters\">\r\n <div class=\"attachment-wrapper col-10 col-xl-6\">\r\n <div>\r\n {{ Attachment.title }}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.remarks }}\r\n </div>\r\n </div>\r\n <div class=\"attachment-wrapper col-10 col-xl-4\">\r\n <div>\r\n {{ Attachment.properties.classification ?('vocabulary.VOC_CorrespondenceAttachClassification.'+ Attachment.properties.classification.id |translate) : '--'}}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.category ?('vocabulary.VOC_CorrespondenceAttachmentType.'+ Attachment.properties.category.id |translate) : '--'}}\r\n </div>\r\n </div>\r\n <!-- <div class=\"attachment-wrapper isObject col-10 col-xl-2\">\r\n {{ Attachment.properties.isObject }}\r\n </div> -->\r\n </div>\r\n <div>\r\n <button\r\n (click)=\"deleteDocument($event, Attachment)\"\r\n class=\"btn btn-outline-danger btn-no-border\"\r\n >\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.doc-item{display:flex;flex:1;padding-top:6px;padding-bottom:6px;justify-content:space-between;cursor:pointer;border:1px solid;border-color:#d9dce2}.doc-item .file-icon{margin:4px;color:#465573;display:flex;align-items:center}.attachment-container{width:100%;grid-row-gap:6px;row-gap:6px}.attachment-container .attachment-wrapper{display:flex;align-items:center;justify-content:space-between;grid-column-gap:10px;column-gap:10px;padding-inline-end:5px;padding-inline-start:5px}.attachment-container .attachment-wrapper>*{width:100%}.attachment-container .isObject{display:flex;justify-content:center!important}.btn-wrapper{display:flex;justify-content:flex-end}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i4.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
56
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: AttachmentsPageProviderComponent, decorators: [{
57
58
  type: Component,
58
59
  args: [{
@@ -72,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
72
73
  }], documentsCount: [{
73
74
  type: Output
74
75
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2F0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXIvYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2F0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXIvYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFHdkI7Ozs7Ozs7Ozs7Ozs7R0FhRztBQU9ILE1BQU0sT0FBTyxnQ0FBZ0M7SUFrQjNDLFlBQW9CLFlBQThCO1FBQTlCLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQVZsRCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osbUNBQW1DO1FBRW5DLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNuQyx1REFBdUQ7UUFFdkQsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTVDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO0lBRXFDLENBQUM7SUFFdkQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztZQUN2QixJQUFJLENBQUMsWUFBWTtpQkFDZCxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsUUFBUSxvQkFDdkMsSUFBSSxDQUFDLE1BQU0sRUFDZDtpQkFDRCxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNILENBQUM7SUFDRCxjQUFjLENBQUMsS0FBSyxFQUFFLFVBQVU7UUFDOUIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDOzs2SEE3Q1UsZ0NBQWdDO2lIQUFoQyxnQ0FBZ0Msa09DOUI3Qywwd0NBb0NBOzJGRE5hLGdDQUFnQztrQkFONUMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxXQUFXLEVBQUUsNENBQTRDO29CQUN6RCxTQUFTLEVBQUUsQ0FBQyw0Q0FBNEMsQ0FBQztvQkFDekQsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7aUJBQ3RDO3VHQUlDLFFBQVE7c0JBRFAsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBR04sTUFBTTtzQkFETCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RvY3VtZW50cy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBBIGNvbXBvbmVudCB0aGF0IHdpbGwgbGlzdCBzcGVjaWZpYyBjb3JyZXNwb25kZW5jZSBhdHRhY2htZW50cyB3aXRoIGVkaXQgZm9ybSBmb3IgZWFjaCBpdGVtXHJcbiAqIEB0aXRsZVxyXG4gKiBBdHRhY2htZW50cyBMaXN0XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxjdHMtYXR0YWNobWVudHMtcGFnZS1wcm92aWRlclxyXG4gKiAgIFtwcm92aWRlcl09XCIncHJvdmlkZXJOYW1lJ1wiXHJcbiAqICAgW2FuY2VzdG9ySWRdPVwiYW5jZXN0b3JJZFwiXHJcbiAqICAgKGRlbGV0ZVN1Y2Nlc3MpPVwib25EZWxldGVBdHRhY2htZW50KCRldmVudClcIlxyXG4gKiA+XHJcbiAqIDwvY3RzLWF0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXI+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2N0cy1hdHRhY2htZW50cy1wYWdlLXByb3ZpZGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdHRhY2htZW50c1BhZ2VQcm92aWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgLyoqIFByb3ZpZGVyIG5hbWUgKi9cclxuICBASW5wdXQoKVxyXG4gIHByb3ZpZGVyO1xyXG4gIC8qKiBBbmNlc3RvciBJRCAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgYW5jZXN0b3JJZDtcclxuICBASW5wdXQoKVxyXG4gIHBhcmFtcyA9IHt9O1xyXG4gIC8qKiBFbWl0dGVkIG9uIGF0dGFjaG1lbnQgZGVsZXRlICovXHJcbiAgQE91dHB1dCgpXHJcbiAgZGVsZXRlU3VjY2VzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogRW1pdHMgdG90YWwgZG9jdW1lbnRzIGNvdW50IHdoZW4gdGhleSdyZSBsb2FkZWQgICovXHJcbiAgQE91dHB1dCgpXHJcbiAgZG9jdW1lbnRzQ291bnQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBpc0ZldGNoaW5nOiBib29sZWFuO1xyXG4gIGF0dGFjaG1lbnRzID0gW107XHJcbiAgdG90YWxSZWNvcmRzOiBudW1iZXI7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkb2N1bWVudHNBcGk6IERvY3VtZW50c1NlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0QXR0YWNobWVudHMoKTtcclxuICB9XHJcblxyXG4gIGdldEF0dGFjaG1lbnRzKCkge1xyXG4gICAgaWYgKHRoaXMucHJvdmlkZXIpIHtcclxuICAgICAgdGhpcy5pc0ZldGNoaW5nID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kb2N1bWVudHNBcGlcclxuICAgICAgICAuZ2V0RG9jdW1lbnRzKHRoaXMuYW5jZXN0b3JJZCwgdGhpcy5wcm92aWRlciwge1xyXG4gICAgICAgICAgLi4udGhpcy5wYXJhbXNcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcclxuICAgICAgICAgIHRoaXMudG90YWxSZWNvcmRzID0gZGF0YS50b3RhbFNpemU7XHJcbiAgICAgICAgICB0aGlzLmF0dGFjaG1lbnRzID0gZGF0YS5lbnRyaWVzO1xyXG4gICAgICAgICAgdGhpcy5kb2N1bWVudHNDb3VudC5lbWl0KHRoaXMudG90YWxSZWNvcmRzKTtcclxuICAgICAgICAgIHRoaXMuaXNGZXRjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBkZWxldGVEb2N1bWVudChldmVudCwgYXR0YWNobWVudCkge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmF0dGFjaG1lbnRzID0gdGhpcy5hdHRhY2htZW50cy5maWx0ZXIoKGl0ZW0pID0+IHtcclxuICAgICAgcmV0dXJuIGF0dGFjaG1lbnQudWlkICE9IGl0ZW0udWlkO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmRlbGV0ZVN1Y2Nlc3MuZW1pdChhdHRhY2htZW50LnVpZCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJhdHRhY2htZW50cy5sZW5ndGggIT09IDBcIiBjbGFzcz1cImRvYy1saXN0XCI+XHJcbiAgPGRpdiAqbmdGb3I9XCJsZXQgQXR0YWNobWVudCBvZiBhdHRhY2htZW50c1wiIGNsYXNzPVwiZG9jLWl0ZW1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJmaWxlLWljb25cIj5cclxuICAgICAgPG1hdC1pY29uPmZpbGVfY29weTwvbWF0LWljb24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJhdHRhY2htZW50LWNvbnRhaW5lciByb3cgbm8tZ3V0dGVyc1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC13cmFwcGVyIGNvbC0xMCBjb2wteGwtNlwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICB7eyBBdHRhY2htZW50LnRpdGxlIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIHt7IEF0dGFjaG1lbnQucHJvcGVydGllcy5yZW1hcmtzIH19XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC13cmFwcGVyIGNvbC0xMCBjb2wteGwtNFwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICB7eyBBdHRhY2htZW50LnByb3BlcnRpZXMuY2xhc3NpZmljYXRpb24gPyBBdHRhY2htZW50LnByb3BlcnRpZXMuY2xhc3NpZmljYXRpb24ucHJvcGVydGllcy5sYWJlbCA6ICctLSd9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICB7eyBBdHRhY2htZW50LnByb3BlcnRpZXMuY2F0ZWdvcnkgP0F0dGFjaG1lbnQucHJvcGVydGllcy5jYXRlZ29yeS5wcm9wZXJ0aWVzLmxhYmVsIDonLS0nICB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC13cmFwcGVyIGlzT2JqZWN0IGNvbC0xMCBjb2wteGwtMlwiPlxyXG4gICAgICAgIHt7IEF0dGFjaG1lbnQucHJvcGVydGllcy5pc09iamVjdCB9fVxyXG4gICAgICA8L2Rpdj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAoY2xpY2spPVwiZGVsZXRlRG9jdW1lbnQoJGV2ZW50LCBBdHRhY2htZW50KVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGFuZ2VyIGJ0bi1uby1ib3JkZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2F0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXIvYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2RvY3VtZW50cy9jb21wb25lbnRzL2F0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXIvYXR0YWNobWVudHMtcGFnZS1wcm92aWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBR3ZCOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFPSCxNQUFNLE9BQU8sZ0NBQWdDO0lBa0IzQyxZQUFvQixZQUE4QjtRQUE5QixpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFWbEQsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUNaLG1DQUFtQztRQUVuQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbkMsdURBQXVEO1FBRXZELG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUU1QyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztJQUVxQyxDQUFDO0lBRXZELFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLFlBQVk7aUJBQ2QsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsb0JBQ3ZDLElBQUksQ0FBQyxNQUFNLEVBQ2Q7aUJBQ0QsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQzVDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDSCxDQUFDO0lBQ0QsY0FBYyxDQUFDLEtBQUssRUFBRSxVQUFVO1FBQzlCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEQsT0FBTyxVQUFVLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7NkhBN0NVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLGtPQzlCN0MsNDJDQW9DQTsyRkROYSxnQ0FBZ0M7a0JBTjVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsV0FBVyxFQUFFLDRDQUE0QztvQkFDekQsU0FBUyxFQUFFLENBQUMsNENBQTRDLENBQUM7b0JBQ3pELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzt1R0FJQyxRQUFRO3NCQURQLEtBQUs7Z0JBSU4sVUFBVTtzQkFEVCxLQUFLO2dCQUdOLE1BQU07c0JBREwsS0FBSztnQkFJTixhQUFhO3NCQURaLE1BQU07Z0JBSVAsY0FBYztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERvY3VtZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kb2N1bWVudHMuc2VydmljZSc7XHJcblxyXG4vKipcclxuICogQSBjb21wb25lbnQgdGhhdCB3aWxsIGxpc3Qgc3BlY2lmaWMgY29ycmVzcG9uZGVuY2UgYXR0YWNobWVudHMgd2l0aCBlZGl0IGZvcm0gZm9yIGVhY2ggaXRlbVxyXG4gKiBAdGl0bGVcclxuICogQXR0YWNobWVudHMgTGlzdFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8Y3RzLWF0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXJcclxuICogICBbcHJvdmlkZXJdPVwiJ3Byb3ZpZGVyTmFtZSdcIlxyXG4gKiAgIFthbmNlc3RvcklkXT1cImFuY2VzdG9ySWRcIlxyXG4gKiAgIChkZWxldGVTdWNjZXNzKT1cIm9uRGVsZXRlQXR0YWNobWVudCgkZXZlbnQpXCJcclxuICogPlxyXG4gKiA8L2N0cy1hdHRhY2htZW50cy1wYWdlLXByb3ZpZGVyPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtYXR0YWNobWVudHMtcGFnZS1wcm92aWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnRzLXBhZ2UtcHJvdmlkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudHNQYWdlUHJvdmlkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIC8qKiBQcm92aWRlciBuYW1lICovXHJcbiAgQElucHV0KClcclxuICBwcm92aWRlcjtcclxuICAvKiogQW5jZXN0b3IgSUQgKi9cclxuICBASW5wdXQoKVxyXG4gIGFuY2VzdG9ySWQ7XHJcbiAgQElucHV0KClcclxuICBwYXJhbXMgPSB7fTtcclxuICAvKiogRW1pdHRlZCBvbiBhdHRhY2htZW50IGRlbGV0ZSAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIGRlbGV0ZVN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgLyoqIEVtaXRzIHRvdGFsIGRvY3VtZW50cyBjb3VudCB3aGVuIHRoZXkncmUgbG9hZGVkICAqL1xyXG4gIEBPdXRwdXQoKVxyXG4gIGRvY3VtZW50c0NvdW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgaXNGZXRjaGluZzogYm9vbGVhbjtcclxuICBhdHRhY2htZW50cyA9IFtdO1xyXG4gIHRvdGFsUmVjb3JkczogbnVtYmVyO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9jdW1lbnRzQXBpOiBEb2N1bWVudHNTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmdldEF0dGFjaG1lbnRzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRBdHRhY2htZW50cygpIHtcclxuICAgIGlmICh0aGlzLnByb3ZpZGVyKSB7XHJcbiAgICAgIHRoaXMuaXNGZXRjaGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZG9jdW1lbnRzQXBpXHJcbiAgICAgICAgLmdldERvY3VtZW50cyh0aGlzLmFuY2VzdG9ySWQsIHRoaXMucHJvdmlkZXIsIHtcclxuICAgICAgICAgIC4uLnRoaXMucGFyYW1zXHJcbiAgICAgICAgfSlcclxuICAgICAgICAuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRvdGFsUmVjb3JkcyA9IGRhdGEudG90YWxTaXplO1xyXG4gICAgICAgICAgdGhpcy5hdHRhY2htZW50cyA9IGRhdGEuZW50cmllcztcclxuICAgICAgICAgIHRoaXMuZG9jdW1lbnRzQ291bnQuZW1pdCh0aGlzLnRvdGFsUmVjb3Jkcyk7XHJcbiAgICAgICAgICB0aGlzLmlzRmV0Y2hpbmcgPSBmYWxzZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZGVsZXRlRG9jdW1lbnQoZXZlbnQsIGF0dGFjaG1lbnQpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5hdHRhY2htZW50cyA9IHRoaXMuYXR0YWNobWVudHMuZmlsdGVyKChpdGVtKSA9PiB7XHJcbiAgICAgIHJldHVybiBhdHRhY2htZW50LnVpZCAhPSBpdGVtLnVpZDtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kZWxldGVTdWNjZXNzLmVtaXQoYXR0YWNobWVudC51aWQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiYXR0YWNobWVudHMubGVuZ3RoICE9PSAwXCIgY2xhc3M9XCJkb2MtbGlzdFwiPlxyXG4gIDxkaXYgKm5nRm9yPVwibGV0IEF0dGFjaG1lbnQgb2YgYXR0YWNobWVudHNcIiBjbGFzcz1cImRvYy1pdGVtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmlsZS1pY29uXCI+XHJcbiAgICAgIDxtYXQtaWNvbj5maWxlX2NvcHk8L21hdC1pY29uPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC1jb250YWluZXIgcm93IG5vLWd1dHRlcnNcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtd3JhcHBlciBjb2wtMTAgY29sLXhsLTZcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAge3sgQXR0YWNobWVudC50aXRsZSB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICB7eyBBdHRhY2htZW50LnByb3BlcnRpZXMucmVtYXJrcyB9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImF0dGFjaG1lbnQtd3JhcHBlciBjb2wtMTAgY29sLXhsLTRcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAge3sgQXR0YWNobWVudC5wcm9wZXJ0aWVzLmNsYXNzaWZpY2F0aW9uID8oJ3ZvY2FidWxhcnkuVk9DX0NvcnJlc3BvbmRlbmNlQXR0YWNoQ2xhc3NpZmljYXRpb24uJysgQXR0YWNobWVudC5wcm9wZXJ0aWVzLmNsYXNzaWZpY2F0aW9uLmlkIHx0cmFuc2xhdGUpIDogJy0tJ319XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgIHt7IEF0dGFjaG1lbnQucHJvcGVydGllcy5jYXRlZ29yeSA/KCd2b2NhYnVsYXJ5LlZPQ19Db3JyZXNwb25kZW5jZUF0dGFjaG1lbnRUeXBlLicrIEF0dGFjaG1lbnQucHJvcGVydGllcy5jYXRlZ29yeS5pZCB8dHJhbnNsYXRlKSA6ICctLSd9fVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiYXR0YWNobWVudC13cmFwcGVyIGlzT2JqZWN0IGNvbC0xMCBjb2wteGwtMlwiPlxyXG4gICAgICAgIHt7IEF0dGFjaG1lbnQucHJvcGVydGllcy5pc09iamVjdCB9fVxyXG4gICAgICA8L2Rpdj4gLS0+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXY+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAoY2xpY2spPVwiZGVsZXRlRG9jdW1lbnQoJGV2ZW50LCBBdHRhY2htZW50KVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLW91dGxpbmUtZGFuZ2VyIGJ0bi1uby1ib3JkZXJcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1pY29uPmRlbGV0ZTwvbWF0LWljb24+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -161,7 +161,7 @@ export class DynamicFormDepartmentComponent {
161
161
  }
162
162
  }
163
163
  DynamicFormDepartmentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicFormDepartmentComponent, deps: [{ token: i1.TranslationService }, { token: i2.DepartmentApiService }, { token: i3.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
164
- DynamicFormDepartmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", label: "label", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", pp_departmentTree: "pp_departmentTree", customPrefix: "customPrefix", useCustomAddEditAction: "useCustomAddEditAction", customParentProperty: "customParentProperty", customParams: "customParams" }, outputs: { onSelecting: "onSelecting", actionClicked: "actionClicked" }, ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-treeview-select\r\n [treeview]=\"treeview\"\r\n [treeViewAsFormControl]=\"treeViewAsFormControl\"\r\n [defaultSelect]=\"defaultSelect\"\r\n [multiple]=\"multiple\"\r\n [items]=\"data\"\r\n [pp_departmentNestedTree]=\"pp_departmentNestedTree\"\r\n [useCustomAddEditAction]=\"useCustomAddEditAction\"\r\n [customPrefix]=\"customPrefix\"\r\n [customParentProperty]=\"customParentProperty\"\r\n (valueChange)=\"getSelecteditems($event)\"\r\n [(value)]=\"selection\"\r\n (actionClicked)=\"onAction($event)\"\r\n class=\"dropdown-wrapper\"\r\n [ngClass]=\"{'input-filled' : selection && selection.length > 0 }\"\r\n>\r\n</app-dynamic-form-treeview-select>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n", styles: ["app-dynamic-form-department .dropdown{border:1px solid #ccc!important;border-radius:5px!important}app-dynamic-form-department .input-filled .dropdown{border-color:#1a96c6!important}\n"], components: [{ type: i4.TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: ["treeview", "treeViewAsFormControl", "config", "items", "value", "multiple", "defaultSelect", "pp_departmentNestedTree", "useCustomAddEditAction", "customPrefix", "customParentProperty", "placeholder"], outputs: ["valueChange", "plusClicked", "actionClicked"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i7.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
164
+ DynamicFormDepartmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", label: "label", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", pp_departmentTree: "pp_departmentTree", customPrefix: "customPrefix", useCustomAddEditAction: "useCustomAddEditAction", customParentProperty: "customParentProperty", customParams: "customParams" }, outputs: { onSelecting: "onSelecting", actionClicked: "actionClicked" }, ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-treeview-select\r\n [treeview]=\"treeview\"\r\n [treeViewAsFormControl]=\"treeViewAsFormControl\"\r\n [defaultSelect]=\"defaultSelect\"\r\n [multiple]=\"multiple\"\r\n [items]=\"data\"\r\n [placeholder]=\"placeholder\"\r\n [pp_departmentNestedTree]=\"pp_departmentNestedTree\"\r\n [useCustomAddEditAction]=\"useCustomAddEditAction\"\r\n [customPrefix]=\"customPrefix\"\r\n [customParentProperty]=\"customParentProperty\"\r\n (valueChange)=\"getSelecteditems($event)\"\r\n [(value)]=\"selection\"\r\n (actionClicked)=\"onAction($event)\"\r\n class=\"dropdown-wrapper\"\r\n [ngClass]=\"{'input-filled' : selection && selection.length > 0 }\"\r\n>\r\n</app-dynamic-form-treeview-select>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n", styles: ["app-dynamic-form-department .dropdown{border:1px solid #ccc!important;border-radius:5px!important}app-dynamic-form-department .input-filled .dropdown{border-color:#1a96c6!important}\n"], components: [{ type: i4.TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: ["treeview", "treeViewAsFormControl", "config", "items", "value", "multiple", "defaultSelect", "pp_departmentNestedTree", "useCustomAddEditAction", "customPrefix", "customParentProperty", "placeholder"], outputs: ["valueChange", "plusClicked", "actionClicked"] }], directives: [{ type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i7.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
165
165
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicFormDepartmentComponent, decorators: [{
166
166
  type: Component,
167
167
  args: [{
@@ -205,4 +205,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
205
205
  }], actionClicked: [{
206
206
  type: Output
207
207
  }] } });
208
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFJdkM7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLDhCQUE4QjtJQTBEekMsWUFDVSxXQUErQixFQUMvQixhQUFtQyxFQUNoQixPQUFrQjtRQUZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUEzRC9DLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixvQ0FBb0M7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixnQ0FBZ0M7UUFFaEMsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBRzlCLDBCQUEwQjtRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHlCQUF5QjtRQUNoQixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBR2xCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBWS9CLCtGQUErRjtRQUN0RixpQkFBWSxHQUFHLEVBQUUsQ0FBQztRQUUzQixvQ0FBb0M7UUFDMUIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNDLHFDQUFxQztRQUMzQixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDN0MsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYscUNBQXFDO1FBQ3JDLG9CQUFlLEdBQVEsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2pDLGVBQVUsR0FBUSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDckIsY0FBUyxHQUFRLEdBQUcsRUFBRTtZQUMzQixTQUFTO1FBQ1gsQ0FBQyxDQUFDO1FBbUJBLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNwQyxDQUFDO0lBbkJELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDckQsQ0FBQztJQUVELElBQVcsU0FBUztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNqQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pELENBQUM7SUFTRCxRQUFRO1FBQ04sSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FDN0QsQ0FBTyxHQUFHLEVBQUUsRUFBRTtZQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2xDLENBQUMsQ0FBQSxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDM0UsQ0FBQztJQUVLLGFBQWEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxHQUFHLENBQUM7O1lBQ3BDLE9BQU8sTUFBTSxPQUFPLENBQUMsR0FBRyxDQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQU8sSUFBUyxFQUFFLEVBQUU7Z0JBQzlCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRO29CQUM3QixDQUFDLENBQUM7d0JBQ0EsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNOzRCQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVTtnQ0FDZixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO2dDQUM5RixDQUFDLENBQUMsSUFBSTs0QkFDUixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7Z0NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztnQ0FDaEcsQ0FBQyxDQUFDLElBQUk7d0JBQ1YsS0FBSyxrQ0FBTyxJQUFJLEtBQUUsS0FBSyxHQUFFO3FCQUMxQjtvQkFDRCxDQUFDLENBQUM7d0JBQ0EsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNOzRCQUNmLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVTtnQ0FDZixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO2dDQUM5RixDQUFDLENBQUMsSUFBSTs0QkFDUixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7Z0NBQ2YsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQztnQ0FDaEcsQ0FBQyxDQUFDLElBQUk7d0JBQ1YsS0FBSyxFQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLO3FCQUM5QyxDQUFDO2dCQUVKLE1BQU0sUUFBUSxHQUFHLElBQUksWUFBWSwrQ0FDNUIsV0FBVyxLQUNkLFNBQVMsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUNsRCxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFDeEMsQ0FBQztnQkFDSCxJQUNFLElBQUksQ0FBQyxpQkFBaUI7b0JBQ3RCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFDOUM7b0JBQ0EsSUFDRSxDQUFDLElBQUksQ0FBQyxRQUFRO3dCQUNkLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ25EO3dCQUNBLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWE7NkJBQ3RDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLHVCQUF1QixFQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzs2QkFDN0YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDOzZCQUNiLFNBQVMsRUFBRSxDQUFDO3dCQUNmLFFBQVEsQ0FBQyxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMsYUFBYSxDQUMxQyxRQUFRLENBQUMsT0FBTyxFQUNoQixLQUFLLEdBQUcsQ0FBQyxDQUNWLENBQUM7cUJBQ0g7eUJBQU07d0JBQ0wsUUFBUSxDQUFDLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUN2QyxLQUFLLEdBQUcsQ0FBQyxDQUNWLENBQUM7cUJBQ0g7aUJBQ0Y7Z0JBQ0QsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQyxDQUFBLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztLQUFBO0lBRUssZUFBZTs7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFPLEdBQUcsRUFBRSxFQUFFO2dCQUNyRyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztnQkFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQSxDQUFDLENBQUM7UUFDTCxDQUFDO0tBQUE7SUFFRCxnQkFBZ0IsQ0FBQyxhQUFhO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFLO1FBQ2QsMERBQTBEO1FBQ3hELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUk7SUFDTixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBRTtRQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsUUFBUSxDQUFDLENBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFDRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDcEQsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFxQixDQUFDLENBQUM7UUFDeEUsT0FBTyxTQUFTLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUN6QyxDQUFDO0lBQ0QsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QscUJBQXFCO0lBQ3JCLDhCQUE4QjtJQUM5QixJQUFJO0lBRUosUUFBUSxDQUFDLENBQUM7UUFDUixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzsySEF4TFUsOEJBQThCOytHQUE5Qiw4QkFBOEIsa2xCQzFDM0MsZ3NDQW9DQTsyRkRNYSw4QkFBOEI7a0JBTjFDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDZCQUE2QjtvQkFDdkMsV0FBVyxFQUFFLDBDQUEwQztvQkFDdkQsU0FBUyxFQUFFLENBQUMsMENBQTBDLENBQUM7b0JBQ3ZELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7MEJBOERJLElBQUk7OzBCQUFJLFFBQVE7NENBekRWLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR04scUJBQXFCO3NCQURwQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIE5nQ29udHJvbCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyZWV2aWV3SXRlbSB9IGZyb20gJ25neC10cmVldmlldyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudEFwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEEgZGVwYXJ0bWVudCB0cmVlIGRyb3Bkb3duIGlucHV0IGFscmVhZHkgd2l0aCBkZXBhcnRtZW50cyBiYWNrZW5kLFxyXG4gKiAgdGhhdCBjYW4gYmUgdXNlZCBpbnNpZGUgcmVhY3RpdmUgb3IgdGVtcGxhdGUgZHJpdmVuIGZvcm1zXHJcbiAqIEB0aXRsZVxyXG4gKiBEZXBhcnRtZW50IHRyZWUgZHJvcGRvd25cclxuICogQGV4YW1wbGVcclxuICogICA8YXBwLWR5bmFtaWMtZm9ybS1kZXBhcnRtZW50XHJcbiAqICAgICAgIGxhYmVsPVwiRmllbGQgTGFiZWxcIlxyXG4gKiAgICAgICBwbGFjZWhvbGRlcj1cIlBsYWNlaG9sZGVyIHRleHRcIlxyXG4gKiAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb250cm9sTmFtZVwiXHJcbiAqICAgICA+XHJcbiAqICAgPC9hcHAtZHluYW1pYy1mb3JtLWRlcGFydG1lbnQ+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1keW5hbWljLWZvcm0tZGVwYXJ0bWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybURlcGFydG1lbnRDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGF0YSA9IFtdO1xyXG4gIC8qKiBpcyB0cmVlIFZpZXcgb3IgZHJvcGRvd24gdmlldyAqL1xyXG4gIEBJbnB1dCgpIHRyZWV2aWV3ID0gZmFsc2U7XHJcbiAgLyoqIHVzZSB0cmVlIHZpZXcgaW5zaWRlIGZvcm0gKi9cclxuICBASW5wdXQoKVxyXG4gIHRyZWVWaWV3QXNGb3JtQ29udHJvbCA9IGZhbHNlO1xyXG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0ICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI7XHJcbiAgLyoqIENhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIC8qKiBpcyB0cmVlIHNlYXJjaGFibGUgKi9cclxuICBASW5wdXQoKSBzZWFyY2hhYmxlID0gdHJ1ZTtcclxuICAvKiogSW5wdXQgRmllbGQgbGFiZWwgKi9cclxuICBASW5wdXQoKSBsYWJlbDtcclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlO1xyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCB0cmVlIGZyb20gaXQgY2FuIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgb3Igbm90IHBhc3NlZCBhbmQgdXNlIHRoZSBkZWZ1bHRlIHZhbHVlICovXHJcbiAgQElucHV0KCkgcHBfZGVwYXJ0bWVudFRyZWU7XHJcbiAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICBASW5wdXQoKSBjdXN0b21QcmVmaXg7XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHVzZUN1c3RvbUFkZEVkaXRBY3Rpb247XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBwYXJlbnQgcHJvcGVydHkgbmFtZSAgdG8gYmUgcGFhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhcmVudFByb3BlcnR5O1xyXG4gIC8qKiB0byBhbGxvdyBjdXN0b20gcGFyYW1zdG8gYmUgcGFzc2VkIHRvIGdldCBkZXBhcnRtZW50cyByZXF1ZXN0IGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY3VzdG9tUGFyYW1zID0ge307XHJcblxyXG4gIC8qKiBlbWl0dGVkIHdoZW4gaXRlbSBpcyBzZWxlY3RlZCAqL1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZW1pdHRlZCB3aGVuIGFjdGlvbiBpcyBjbGlja2VkICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGlvbjtcclxuICBhcmFiaWMgPSBmYWxzZTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIC8vIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gdmFsdWUgYWNjZXNzb3JcclxuICBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICB2YWxpZGF0ZUZuOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgcHVibGljIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge1xyXG4gICAgLypFbXB0eSovXHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sID8gdGhpcy5jb250cm9sLmludmFsaWQgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgZGlydHksIHRvdWNoZWQgfSA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gZGlydHkgfHwgdG91Y2hlZCA6IGZhbHNlO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudEFwaTogRGVwYXJ0bWVudEFwaVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWMuc3Vic2NyaWJlKFxyXG4gICAgICBhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcmFiaWMgPSByZXM7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRMaXNPZk9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zZWxlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uID8gdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogJyc7XHJcbiAgfVxyXG5cclxuICBhc3luYyByZWN1cnNpdmVGaWxsKGVudHJpZXMsIGxldmVsID0gMCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIGVudHJpZXMubWFwKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgdHJlZVZpZXdPYmogPSB0aGlzLnRyZWV2aWV3XHJcbiAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgdGV4dDogdGhpcy5hcmFiaWNcclxuICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNbdGhpcy5jdXN0b21QcmVmaXggPyAodGhpcy5jdXN0b21QcmVmaXggKyAnOmFyYWJpY05hbWUnKSA6ICdkZXB0OmFyYWJpY05hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nXHJcbiAgICAgICAgICAgICAgOiBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzplbmdsaXNoTmFtZScpIDogJ2RlcHQ6ZW5nbGlzaE5hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nLFxyXG4gICAgICAgICAgICB2YWx1ZTogeyAuLi5pdGVtLCBsZXZlbCB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuYXJhYmljXHJcbiAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzphcmFiaWNOYW1lJykgOiAnZGVwdDphcmFiaWNOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJ1xyXG4gICAgICAgICAgICAgIDogaXRlbS5wcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1t0aGlzLmN1c3RvbVByZWZpeCA/ICh0aGlzLmN1c3RvbVByZWZpeCArICc6ZW5nbGlzaE5hbWUnKSA6ICdkZXB0OmVuZ2xpc2hOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJyxcclxuICAgICAgICAgICAgdmFsdWU6ICB0aGlzLm11bHRpcGxlID8gaXRlbS51aWQgOiBpdGVtLnRpdGxlLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgdHJlZUl0ZW0gPSBuZXcgVHJlZXZpZXdJdGVtKHtcclxuICAgICAgICAgIC4uLnRyZWVWaWV3T2JqLFxyXG4gICAgICAgICAgY29sbGFwc2VkOiBsZXZlbCA+PSAyICYmIHRoaXMudHJlZXZpZXcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgICAuLi4odGhpcy5tdWx0aXBsZSAmJiB7IGNoZWNrZWQ6IGZhbHNlIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMuY2hpbGRyZW4uZW50cmllcy5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgICAgICAgKGxldmVsID09IDIgfHwgKGxldmVsID4gMiAmJiAobGV2ZWwgKyAxKSAlIDMgPT0gMCkpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSBhd2FpdCB0aGlzLmRlcGFydG1lbnRBcGlcclxuICAgICAgICAgICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoaXRlbS50aXRsZSwgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSAsIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHRyZWVJdGVtLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIGV4dGVuZGVkLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0cmVlSXRlbS5jaGlsZHJlbiA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICBpdGVtLmNvbnRleHRQYXJhbWV0ZXJzLmNoaWxkcmVuLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cmVlSXRlbTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRMaXNPZk9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRBcGkuZ2V0RGVwYXJ0bWVudFRyZWUodGhpcy5wcF9kZXBhcnRtZW50VHJlZSx0aGlzLmN1c3RvbVBhcmFtcykuc3Vic2NyaWJlKGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChyZXMuZW50cmllcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkaXRlbXMoc2VsZWN0ZWRJdGVtcyk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW5nLmVtaXQoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlKTogdm9pZCB7XHJcbiAgICAvLyBpZiAodmFsdWUpIHsgLy8gcmVtb3ZlZCB0byBhbGxvdyB0byByZXNldCB2YWx1ZSBvZiB0cmVlXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdmFsdWU7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlRm4oYyk7XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCB8fCAhdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gIH1cclxuICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcbiAgfVxyXG4gIC8vIG9uUGx1c0NsaWNrZWQoZSkge1xyXG4gIC8vICAgdGhpcy5wbHVzQ2xpY2tlZC5uZXh0KGUpO1xyXG4gIC8vIH1cclxuXHJcbiAgb25BY3Rpb24oZSkge1xyXG4gICAgdGhpcy5hY3Rpb25DbGlja2VkLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gaHR0cDovLzM1LjE1My42Ni41Mjo4MDgwL251eGVvL2FwaS92MS9zZWFyY2gvcHAvUFBfRGVwYXJ0bWVudC9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9EZXBhcnRtZW50JmN1cnJlbnRQYWdlSW5kZXg9MCZvZmZzZXQ9MCZwYWdlU2l6ZT00MCZxdWlja0ZpbHRlcnM9UGFyZW50JTIwRGVwdFxyXG4vLyBodHRwOi8vMzUuMTUzLjY2LjUyOjgwODAvbnV4ZW8vYXBpL3YxL3NlYXJjaC9wcC9QUF9PU19EZXBhcnRtZW50cy9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9PU19EZXBhcnRtZW50cyZjdXJyZW50UGFnZUluZGV4PTAmb2Zmc2V0PTAmcGFnZVNpemU9NDAmcXVpY2tGaWx0ZXJzPVBhcmVudCUyMERlcHQiLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsIGNsYXNzPVwic2VsZWN0LWxhYmVsXCJcclxuICAgICAgPnt7IGxhYmVsIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG0tMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPGFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XHJcbiAgW3RyZWV2aWV3XT1cInRyZWV2aWV3XCJcclxuICBbdHJlZVZpZXdBc0Zvcm1Db250cm9sXT1cInRyZWVWaWV3QXNGb3JtQ29udHJvbFwiXHJcbiAgW2RlZmF1bHRTZWxlY3RdPVwiZGVmYXVsdFNlbGVjdFwiXHJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICBbaXRlbXNdPVwiZGF0YVwiXHJcbiAgW3BwX2RlcGFydG1lbnROZXN0ZWRUcmVlXT1cInBwX2RlcGFydG1lbnROZXN0ZWRUcmVlXCJcclxuICBbdXNlQ3VzdG9tQWRkRWRpdEFjdGlvbl09XCJ1c2VDdXN0b21BZGRFZGl0QWN0aW9uXCJcclxuICBbY3VzdG9tUHJlZml4XT1cImN1c3RvbVByZWZpeFwiXHJcbiAgW2N1c3RvbVBhcmVudFByb3BlcnR5XT1cImN1c3RvbVBhcmVudFByb3BlcnR5XCJcclxuICAodmFsdWVDaGFuZ2UpPVwiZ2V0U2VsZWN0ZWRpdGVtcygkZXZlbnQpXCJcclxuICBbKHZhbHVlKV09XCJzZWxlY3Rpb25cIlxyXG4gIChhY3Rpb25DbGlja2VkKT1cIm9uQWN0aW9uKCRldmVudClcIlxyXG4gIGNsYXNzPVwiZHJvcGRvd24td3JhcHBlclwiXHJcbiAgW25nQ2xhc3NdPVwieydpbnB1dC1maWxsZWQnIDogc2VsZWN0aW9uICYmIHNlbGVjdGlvbi5sZW5ndGggPiAwIH1cIlxyXG4+XHJcbjwvYXBwLWR5bmFtaWMtZm9ybS10cmVldmlldy1zZWxlY3Q+XHJcbjxtYXQtZXJyb3JcclxuICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiJ2NhcmQtdGV4dGl0ZW0tZXJyb3ItJ1wiXHJcbiAgY2xhc3M9XCJhcHAtdGV4dGl0ZW0tZWRpdGFibGUtZXJyb3JcIlxyXG4gICpuZ0lmPVwiaGFzRXJyb3JzKClcIlxyXG4+XHJcbiAgPHVsPlxyXG4gICAgPGxpICpuZ0lmPVwiY29udHJvbC5lcnJvcnMucmVxdWlyZWRcIj5cclxuICAgICAge3sgXCJWQUxJREFUT1JTLlJFUVVJUkVEXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvbGk+XHJcbiAgPC91bD5cclxuPC9tYXQtZXJyb3I+XHJcbiJdfQ==
208
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWRlcGFydG1lbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0vY29tcG9uZW50cy9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS9jb21wb25lbnRzL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50L2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBQ0osaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUFJdkM7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLDhCQUE4QjtJQTBEekMsWUFDVSxXQUErQixFQUMvQixhQUFtQyxFQUNoQixPQUFrQjtRQUZyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXNCO1FBQ2hCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUEzRC9DLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixvQ0FBb0M7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQixnQ0FBZ0M7UUFFaEMsMEJBQXFC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QUE2QjtvQkFDdkMsV0FBVyxFQUFFLDBDQUEwQztvQkFDdkQsU0FBUyxFQUFFLENBQUMsMENBQTBDLENBQUM7b0JBQ3ZELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2lCQUN0Qzs7MEJBOERJLElBQUk7OzBCQUFJLFFBQVE7NENBekRWLFFBQVE7c0JBQWhCLEtBQUs7Z0JBR04scUJBQXFCO3NCQURwQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUcsUUFBUTtzQkFBaEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUdHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxzQkFBc0I7c0JBQTlCLEtBQUs7Z0JBRUcsb0JBQW9CO3NCQUE1QixLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBR0ksV0FBVztzQkFBcEIsTUFBTTtnQkFFRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWJzdHJhY3RDb250cm9sLFxyXG4gIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxyXG4gIEZvcm1Db250cm9sLFxyXG4gIE5nQ29udHJvbCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyZWV2aWV3SXRlbSB9IGZyb20gJ25neC10cmVldmlldyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vQ29yZS9zZXJ2aWNlcy90cmFuc2xhdGlvbi90cmFuc2xhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGVwYXJ0bWVudEFwaVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2RlcGFydG1lbnQtYXBpLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIEEgZGVwYXJ0bWVudCB0cmVlIGRyb3Bkb3duIGlucHV0IGFscmVhZHkgd2l0aCBkZXBhcnRtZW50cyBiYWNrZW5kLFxyXG4gKiAgdGhhdCBjYW4gYmUgdXNlZCBpbnNpZGUgcmVhY3RpdmUgb3IgdGVtcGxhdGUgZHJpdmVuIGZvcm1zXHJcbiAqIEB0aXRsZVxyXG4gKiBEZXBhcnRtZW50IHRyZWUgZHJvcGRvd25cclxuICogQGV4YW1wbGVcclxuICogICA8YXBwLWR5bmFtaWMtZm9ybS1kZXBhcnRtZW50XHJcbiAqICAgICAgIGxhYmVsPVwiRmllbGQgTGFiZWxcIlxyXG4gKiAgICAgICBwbGFjZWhvbGRlcj1cIlBsYWNlaG9sZGVyIHRleHRcIlxyXG4gKiAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb250cm9sTmFtZVwiXHJcbiAqICAgICA+XHJcbiAqICAgPC9hcHAtZHluYW1pYy1mb3JtLWRlcGFydG1lbnQ+XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1keW5hbWljLWZvcm0tZGVwYXJ0bWVudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtZm9ybS1kZXBhcnRtZW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLWZvcm0tZGVwYXJ0bWVudC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljRm9ybURlcGFydG1lbnRDb21wb25lbnRcclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgZGF0YSA9IFtdO1xyXG4gIC8qKiBpcyB0cmVlIFZpZXcgb3IgZHJvcGRvd24gdmlldyAqL1xyXG4gIEBJbnB1dCgpIHRyZWV2aWV3ID0gZmFsc2U7XHJcbiAgLyoqIHVzZSB0cmVlIHZpZXcgaW5zaWRlIGZvcm0gKi9cclxuICBASW5wdXQoKVxyXG4gIHRyZWVWaWV3QXNGb3JtQ29udHJvbCA9IGZhbHNlO1xyXG4gIC8qKiBQbGFjZWhvbGRlciB0ZXh0ICovXHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI7XHJcbiAgLyoqIENhbiBzZWxlY3QgbXVsdGlwbGUgKi9cclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIC8qKiBpcyB0cmVlIHNlYXJjaGFibGUgKi9cclxuICBASW5wdXQoKSBzZWFyY2hhYmxlID0gdHJ1ZTtcclxuICAvKiogSW5wdXQgRmllbGQgbGFiZWwgKi9cclxuICBASW5wdXQoKSBsYWJlbDtcclxuICBASW5wdXQoKSBkZWZhdWx0U2VsZWN0ID0gZmFsc2U7XHJcblxyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCBuZXN0ZWQgdHJlZSBmcm9tIGl0IGNhbiBiZSBwYXNzZWQgZnJvbSBvdXRzaWRlIG9yIG5vdCBwYXNzZWQgYW5kIHVzZSB0aGUgZGVmdWx0ZSB2YWx1ZSAqL1xyXG4gIEBJbnB1dCgpIHBwX2RlcGFydG1lbnROZXN0ZWRUcmVlO1xyXG4gIC8qKiBjdXN0b20gcGFnZSBwcm92aWRlciB0byBnZXQgZGVwYXJ0bWVudCB0cmVlIGZyb20gaXQgY2FuIGJlIHBhc3NlZCBmcm9tIG91dHNpZGUgb3Igbm90IHBhc3NlZCBhbmQgdXNlIHRoZSBkZWZ1bHRlIHZhbHVlICovXHJcbiAgQElucHV0KCkgcHBfZGVwYXJ0bWVudFRyZWU7XHJcbiAgLyoqIGN1c3RvbSBwcmVmaXggdG8gYmUgdXNlZCBmb3IgYWRhcHRpbmcgZGF0YSBjb21pbmcgZnJvbSBhcGkgKi9cclxuICBASW5wdXQoKSBjdXN0b21QcmVmaXg7XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBhY3Rpb24gdG8gYmUgcGVyZm9ybWVkIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIHVzZUN1c3RvbUFkZEVkaXRBY3Rpb247XHJcbiAgLyoqIHRvIGFsbG93IGN1c3RvbSBwYXJlbnQgcHJvcGVydHkgbmFtZSAgdG8gYmUgcGFhc3NlZCBmcm9tIG91dHNpZGUgdGhlIGNvbXBvbmVudCAqL1xyXG4gIEBJbnB1dCgpIGN1c3RvbVBhcmVudFByb3BlcnR5O1xyXG4gIC8qKiB0byBhbGxvdyBjdXN0b20gcGFyYW1zdG8gYmUgcGFzc2VkIHRvIGdldCBkZXBhcnRtZW50cyByZXF1ZXN0IGZyb20gb3V0c2lkZSB0aGUgY29tcG9uZW50ICovXHJcbiAgQElucHV0KCkgY3VzdG9tUGFyYW1zID0ge307XHJcblxyXG4gIC8qKiBlbWl0dGVkIHdoZW4gaXRlbSBpcyBzZWxlY3RlZCAqL1xyXG4gIEBPdXRwdXQoKSBvblNlbGVjdGluZyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICAvKiogZW1pdHRlZCB3aGVuIGFjdGlvbiBpcyBjbGlja2VkICovXHJcbiAgQE91dHB1dCgpIGFjdGlvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHNlbGVjdGlvbjtcclxuICBhcmFiaWMgPSBmYWxzZTtcclxuICBsYW5ndWFnZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIC8vIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gdmFsdWUgYWNjZXNzb3JcclxuICBwcm9wYWdhdGVDaGFuZ2U6IGFueSA9ICgpID0+IHsgfTtcclxuICB2YWxpZGF0ZUZuOiBhbnkgPSAoKSA9PiB7IH07XHJcbiAgcHVibGljIG9uVG91Y2hlZDogYW55ID0gKCkgPT4ge1xyXG4gICAgLypFbXB0eSovXHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb250cm9sID8gdGhpcy5jb250cm9sLmludmFsaWQgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgc2hvd0Vycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHsgZGlydHksIHRvdWNoZWQgfSA9IHRoaXMuY29udHJvbDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5pbnZhbGlkID8gZGlydHkgfHwgdG91Y2hlZCA6IGZhbHNlO1xyXG4gIH1cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdHJhbnNsYXRpb246IFRyYW5zbGF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGVwYXJ0bWVudEFwaTogRGVwYXJ0bWVudEFwaVNlcnZpY2UsXHJcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBjb250cm9sOiBOZ0NvbnRyb2xcclxuICApIHtcclxuICAgIHRoaXMuY29udHJvbC52YWx1ZUFjY2Vzc29yID0gdGhpcztcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRpb24uaXNBcmFiaWMuc3Vic2NyaWJlKFxyXG4gICAgICBhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hcmFiaWMgPSByZXM7XHJcbiAgICAgICAgYXdhaXQgdGhpcy5nZXRMaXNPZk9wdGlvbnMoKTtcclxuICAgICAgICB0aGlzLndyaXRlVmFsdWUodGhpcy5zZWxlY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmxhbmd1YWdlU3Vic2NyaXB0aW9uID8gdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpIDogJyc7XHJcbiAgfVxyXG5cclxuICBhc3luYyByZWN1cnNpdmVGaWxsKGVudHJpZXMsIGxldmVsID0gMCk6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gYXdhaXQgUHJvbWlzZS5hbGwoXHJcbiAgICAgIGVudHJpZXMubWFwKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgdHJlZVZpZXdPYmogPSB0aGlzLnRyZWV2aWV3XHJcbiAgICAgICAgICA/IHtcclxuICAgICAgICAgICAgdGV4dDogdGhpcy5hcmFiaWNcclxuICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1xyXG4gICAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNbdGhpcy5jdXN0b21QcmVmaXggPyAodGhpcy5jdXN0b21QcmVmaXggKyAnOmFyYWJpY05hbWUnKSA6ICdkZXB0OmFyYWJpY05hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nXHJcbiAgICAgICAgICAgICAgOiBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzplbmdsaXNoTmFtZScpIDogJ2RlcHQ6ZW5nbGlzaE5hbWUnXVxyXG4gICAgICAgICAgICAgICAgOiAnLS0nLFxyXG4gICAgICAgICAgICB2YWx1ZTogeyAuLi5pdGVtLCBsZXZlbCB9LFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgIHRleHQ6IHRoaXMuYXJhYmljXHJcbiAgICAgICAgICAgICAgPyBpdGVtLnByb3BlcnRpZXNcclxuICAgICAgICAgICAgICAgID8gaXRlbS5wcm9wZXJ0aWVzW3RoaXMuY3VzdG9tUHJlZml4ID8gKHRoaXMuY3VzdG9tUHJlZml4ICsgJzphcmFiaWNOYW1lJykgOiAnZGVwdDphcmFiaWNOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJ1xyXG4gICAgICAgICAgICAgIDogaXRlbS5wcm9wZXJ0aWVzXHJcbiAgICAgICAgICAgICAgICA/IGl0ZW0ucHJvcGVydGllc1t0aGlzLmN1c3RvbVByZWZpeCA/ICh0aGlzLmN1c3RvbVByZWZpeCArICc6ZW5nbGlzaE5hbWUnKSA6ICdkZXB0OmVuZ2xpc2hOYW1lJ11cclxuICAgICAgICAgICAgICAgIDogJy0tJyxcclxuICAgICAgICAgICAgdmFsdWU6ICB0aGlzLm11bHRpcGxlID8gaXRlbS51aWQgOiBpdGVtLnRpdGxlLFxyXG4gICAgICAgICAgfTtcclxuXHJcbiAgICAgICAgY29uc3QgdHJlZUl0ZW0gPSBuZXcgVHJlZXZpZXdJdGVtKHtcclxuICAgICAgICAgIC4uLnRyZWVWaWV3T2JqLFxyXG4gICAgICAgICAgY29sbGFwc2VkOiBsZXZlbCA+PSAyICYmIHRoaXMudHJlZXZpZXcgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgICAuLi4odGhpcy5tdWx0aXBsZSAmJiB7IGNoZWNrZWQ6IGZhbHNlIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMgJiZcclxuICAgICAgICAgIGl0ZW0uY29udGV4dFBhcmFtZXRlcnMuY2hpbGRyZW4uZW50cmllcy5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgIXRoaXMudHJlZXZpZXcgJiZcclxuICAgICAgICAgICAgKGxldmVsID09IDIgfHwgKGxldmVsID4gMiAmJiAobGV2ZWwgKyAxKSAlIDMgPT0gMCkpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgY29uc3QgZXh0ZW5kZWQgPSBhd2FpdCB0aGlzLmRlcGFydG1lbnRBcGlcclxuICAgICAgICAgICAgICAuZ2V0RGVwYXJ0bWVudE5lc3RlZFRyZWUoaXRlbS50aXRsZSwgdGhpcy5wcF9kZXBhcnRtZW50TmVzdGVkVHJlZSAsIHRoaXMuY3VzdG9tUGFyZW50UHJvcGVydHkpXHJcbiAgICAgICAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAgICAgICAudG9Qcm9taXNlKCk7XHJcbiAgICAgICAgICAgIHRyZWVJdGVtLmNoaWxkcmVuID0gYXdhaXQgdGhpcy5yZWN1cnNpdmVGaWxsKFxyXG4gICAgICAgICAgICAgIGV4dGVuZGVkLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0cmVlSXRlbS5jaGlsZHJlbiA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChcclxuICAgICAgICAgICAgICBpdGVtLmNvbnRleHRQYXJhbWV0ZXJzLmNoaWxkcmVuLmVudHJpZXMsXHJcbiAgICAgICAgICAgICAgbGV2ZWwgKyAxXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0cmVlSXRlbTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRMaXNPZk9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLmRlcGFydG1lbnRBcGkuZ2V0RGVwYXJ0bWVudFRyZWUodGhpcy5wcF9kZXBhcnRtZW50VHJlZSx0aGlzLmN1c3RvbVBhcmFtcykuc3Vic2NyaWJlKGFzeW5jIChyZXMpID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGF0YSA9IGF3YWl0IHRoaXMucmVjdXJzaXZlRmlsbChyZXMuZW50cmllcyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFNlbGVjdGVkaXRlbXMoc2VsZWN0ZWRJdGVtcyk6IHZvaWQge1xyXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2Uoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgICB0aGlzLm9uU2VsZWN0aW5nLmVtaXQoc2VsZWN0ZWRJdGVtcyk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKHZhbHVlKTogdm9pZCB7XHJcbiAgICAvLyBpZiAodmFsdWUpIHsgLy8gcmVtb3ZlZCB0byBhbGxvdyB0byByZXNldCB2YWx1ZSBvZiB0cmVlXHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uID0gdmFsdWU7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuKTogdm9pZCB7XHJcbiAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGM6IEZvcm1Db250cm9sKTogYW55IHtcclxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlRm4oYyk7XHJcbiAgfVxyXG4gIGlzUmVxdWlyZWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuY29udHJvbCB8fCAhdGhpcy5jb250cm9sLmNvbnRyb2wudmFsaWRhdG9yKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2YWxpZGF0b3IgPSB0aGlzLmNvbnRyb2wuY29udHJvbC52YWxpZGF0b3Ioe30gYXMgQWJzdHJhY3RDb250cm9sKTtcclxuICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkO1xyXG4gIH1cclxuICBoYXNFcnJvcnMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93RXJyb3I7XHJcbiAgfVxyXG4gIC8vIG9uUGx1c0NsaWNrZWQoZSkge1xyXG4gIC8vICAgdGhpcy5wbHVzQ2xpY2tlZC5uZXh0KGUpO1xyXG4gIC8vIH1cclxuXHJcbiAgb25BY3Rpb24oZSkge1xyXG4gICAgdGhpcy5hY3Rpb25DbGlja2VkLmVtaXQoZSk7XHJcbiAgfVxyXG59XHJcblxyXG5cclxuLy8gaHR0cDovLzM1LjE1My42Ni41Mjo4MDgwL251eGVvL2FwaS92MS9zZWFyY2gvcHAvUFBfRGVwYXJ0bWVudC9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9EZXBhcnRtZW50JmN1cnJlbnRQYWdlSW5kZXg9MCZvZmZzZXQ9MCZwYWdlU2l6ZT00MCZxdWlja0ZpbHRlcnM9UGFyZW50JTIwRGVwdFxyXG4vLyBodHRwOi8vMzUuMTUzLjY2LjUyOjgwODAvbnV4ZW8vYXBpL3YxL3NlYXJjaC9wcC9QUF9PU19EZXBhcnRtZW50cy9leGVjdXRlP3BhZ2VQcm92aWRlcj1QUF9PU19EZXBhcnRtZW50cyZjdXJyZW50UGFnZUluZGV4PTAmb2Zmc2V0PTAmcGFnZVNpemU9NDAmcXVpY2tGaWx0ZXJzPVBhcmVudCUyMERlcHQiLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWxcIj5cclxuICA8ZGl2PlxyXG4gICAgPGxhYmVsIGNsYXNzPVwic2VsZWN0LWxhYmVsXCJcclxuICAgICAgPnt7IGxhYmVsIHwgdHJhbnNsYXRlXHJcbiAgICAgIH19PHNwYW4gKm5nSWY9XCJpc1JlcXVpcmVkKClcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG0tMVwiPio8L3NwYW4+PC9sYWJlbFxyXG4gICAgPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuPGFwcC1keW5hbWljLWZvcm0tdHJlZXZpZXctc2VsZWN0XHJcbiAgW3RyZWV2aWV3XT1cInRyZWV2aWV3XCJcclxuICBbdHJlZVZpZXdBc0Zvcm1Db250cm9sXT1cInRyZWVWaWV3QXNGb3JtQ29udHJvbFwiXHJcbiAgW2RlZmF1bHRTZWxlY3RdPVwiZGVmYXVsdFNlbGVjdFwiXHJcbiAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcclxuICBbaXRlbXNdPVwiZGF0YVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICBbcHBfZGVwYXJ0bWVudE5lc3RlZFRyZWVdPVwicHBfZGVwYXJ0bWVudE5lc3RlZFRyZWVcIlxyXG4gIFt1c2VDdXN0b21BZGRFZGl0QWN0aW9uXT1cInVzZUN1c3RvbUFkZEVkaXRBY3Rpb25cIlxyXG4gIFtjdXN0b21QcmVmaXhdPVwiY3VzdG9tUHJlZml4XCJcclxuICBbY3VzdG9tUGFyZW50UHJvcGVydHldPVwiY3VzdG9tUGFyZW50UHJvcGVydHlcIlxyXG4gICh2YWx1ZUNoYW5nZSk9XCJnZXRTZWxlY3RlZGl0ZW1zKCRldmVudClcIlxyXG4gIFsodmFsdWUpXT1cInNlbGVjdGlvblwiXHJcbiAgKGFjdGlvbkNsaWNrZWQpPVwib25BY3Rpb24oJGV2ZW50KVwiXHJcbiAgY2xhc3M9XCJkcm9wZG93bi13cmFwcGVyXCJcclxuICBbbmdDbGFzc109XCJ7J2lucHV0LWZpbGxlZCcgOiBzZWxlY3Rpb24gJiYgc2VsZWN0aW9uLmxlbmd0aCA+IDAgfVwiXHJcbj5cclxuPC9hcHAtZHluYW1pYy1mb3JtLXRyZWV2aWV3LXNlbGVjdD5cclxuPG1hdC1lcnJvclxyXG4gIFthdHRyLmRhdGEtYXV0b21hdGlvbi1pZF09XCInY2FyZC10ZXh0aXRlbS1lcnJvci0nXCJcclxuICBjbGFzcz1cImFwcC10ZXh0aXRlbS1lZGl0YWJsZS1lcnJvclwiXHJcbiAgKm5nSWY9XCJoYXNFcnJvcnMoKVwiXHJcbj5cclxuICA8dWw+XHJcbiAgICA8bGkgKm5nSWY9XCJjb250cm9sLmVycm9ycy5yZXF1aXJlZFwiPlxyXG4gICAgICB7eyBcIlZBTElEQVRPUlMuUkVRVUlSRURcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9saT5cclxuICA8L3VsPlxyXG48L21hdC1lcnJvcj5cclxuIl19
@@ -110,19 +110,21 @@ export class DynamicSearchComponent {
110
110
  constructParamsFunction(params) {
111
111
  let contructedParms = {};
112
112
  this.text = params['search_query'];
113
- if (this.useToggleFilters) {
114
- if (params['quickFilters']) {
115
- this.quickFilters = params['quickFilters'];
116
- contructedParms = { [this.fullTextParamName]: this.text + '*', quickFilters: this.quickFilters };
113
+ if (this.text.trim()) {
114
+ if (this.useToggleFilters) {
115
+ if (params['quickFilters']) {
116
+ this.quickFilters = params['quickFilters'];
117
+ contructedParms = { [this.fullTextParamName]: this.text + '*', quickFilters: this.quickFilters };
118
+ }
119
+ else {
120
+ this.quickFilters = '';
121
+ contructedParms = { [this.fullTextParamName]: this.text + '*', quickFilters: '' };
122
+ }
117
123
  }
118
124
  else {
119
- this.quickFilters = '';
120
- contructedParms = { [this.fullTextParamName]: this.text + '*', quickFilters: '' };
125
+ contructedParms = { [this.fullTextParamName]: this.text + '*' };
121
126
  }
122
127
  }
123
- else {
124
- contructedParms = { [this.fullTextParamName]: this.text + '*' };
125
- }
126
128
  return contructedParms;
127
129
  }
128
130
  updateQueryParams(newQueryparams) {
@@ -331,4 +333,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
331
333
  }], theme: [{
332
334
  type: Input
333
335
  }] } });
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQTRCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXhELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUl4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQWVILE1BQU0sT0FBTyxzQkFBc0I7SUF5RGpDLFlBQ1UsS0FBcUIsRUFDckIsTUFBYyxFQUNkLGdCQUFvQyxFQUNwQyxZQUEyQixFQUMzQixrQkFBdUMsRUFDaEIsV0FBVyxFQUNuQyxrQkFBc0M7UUFO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Q3RDOzswQkFnRUksTUFBTTsyQkFBQyxhQUFhOzZFQTNEZCxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsaUJBQWlCO3NCQUF6QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsTUFBTTtzQkFBZCxLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVOLGFBQWE7c0JBRFosS0FBSztnQkFPSSxXQUFXO3NCQUFwQixNQUFNO2dCQWFQLFlBQVk7c0JBRFgsS0FBSztnQkFFRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRG9jdW1lbnRzQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9kb2N1bWVudHMvY29uc3RhbnRzL2RvY3VtZW50cyc7XHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBhbmltYXRlLCBBVVRPX1NUWUxFLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgdGhyZWFkSWQgfSBmcm9tICd3b3JrZXJfdGhyZWFkcyc7XHJcbmltcG9ydCB7IEV2YWx1YXRvcnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL3Blcm1pc3Npb25zL2V2YWx1YXRvcnMuc2VydmljZSc7XHJcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBOdXhlb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9Db3JlL3NlcnZpY2VzL251eGVvL251eGVvLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBHbG9iYWxBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQtc2VydmljZXMvZ2xvYmFsLWFkbWluLnNlcnZpY2UnO1xyXG5cclxuLyoqXHJcbiAqIER5bmFtaWMgc2VhcmNoIGNvbXBvbmVudCB1c2VzIFtEeW5hbWljIFRhYmxlXXtAbGluayBEeW5hbWljVGFibGVDb21wb25lbnR9ICYgW0R5bmFtaWMgRmlsdGVyXXtAbGluayBEeW5hbWljRmlsdGVyQ29tcG9uZW50fSBpbnRlcm5hbGx5LFxyXG4gKiBhbmQgdXRpbGl6ZXMgaXRzIGlucHV0cyB0byBwZXJmb3JtIGFkdmFuY2VkIHNlYXJjaCBhbmQgZmlsdGVyaW5nIG9uIGFueSBudXhlbyBQcm92aWRlclxyXG4gKiBAdGl0bGVcclxuICogRHluYW1pYyBTZWFyY2hcclxuICpcclxuICogQGV4YW1wbGVcclxuICogPGN0cy1keW5hbWljLXNlYXJjaFxyXG4gKiAgIFtwYWdlUHJvdmlkZXJdPVwiJ3BhZ2VQcm92aWRlck5hbWUnXCJcclxuICogICBbY29sdW1uc109XCJjb2x1bW5zQXJyYXlcIlxyXG4gKiAgIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc0FycmF5XCJcclxuICogICBbZW50aXR5VHlwZV09XCInZG9jdW1lbnRzJ1wiXHJcbiAqICAgW3ByZWZpeF09XCJwcmVmaXhcIlxyXG4gKiAgIFtmaWVsZHNdPVwiZmllbGRzXCJcclxuICogICBbaGVhZGVyc109XCJoZWFkZXJzXCJcclxuICogICBbc29ydGluZ0J5XT1cInNvcnRpbmdCeVwiXHJcbiAqICAgW3BhZ2VTaXplXT1cIlBhZ2VTaXplXCJcclxuKiAgICBbY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXT1cImZhbHNlIG9yIHRydWVcIlxyXG4gICAgIFtvcGVuQ2xvc2VGaWx0ZXJGcm9tT3V0c2lkZV09XCJwYXNzIEZpbHRlciBzdGF0ZSBmcm9tIHBhcmVudCBjb21wb25lbnRcIlxyXG4gICAgIFt0aGVtZV0gPSBcInRvICBzZXQgYmFja2dyb3VuZCBkZXBlbmVkIG9uIHRoZW1lXCJcclxuICogPlxyXG4gKiA8L2N0cy1keW5hbWljLXNlYXJjaD5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY3RzLWR5bmFtaWMtc2VhcmNoJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1zZWFyY2guY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtc2VhcmNoLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignY29sbGFwc2UnLCBbXHJcbiAgICAgIHN0YXRlKCdmYWxzZScsIHN0eWxlKHsgaGVpZ2h0OiBBVVRPX1NUWUxFLCB2aXNpYmlsaXR5OiBBVVRPX1NUWUxFIH0pKSxcclxuICAgICAgc3RhdGUoJ3RydWUnLCBzdHlsZSh7IGhlaWdodDogJzAnLCB2aXNpYmlsaXR5OiAnaGlkZGVuJyB9KSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ2ZhbHNlID0+IHRydWUnLCBhbmltYXRlKDMwMCkpLFxyXG4gICAgICB0cmFuc2l0aW9uKCd0cnVlID0+IGZhbHNlJywgYW5pbWF0ZSgzMDApKVxyXG4gICAgXSlcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNTZWFyY2hDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25DaGFuZ2VzIHtcclxuICB0ZXh0OiBzdHJpbmc7XHJcbiAgYWdncmVnYXRpb25zO1xyXG4gIC8qKiBBcnJheSBvZiBjb2x1bW5zICovXHJcbiAgQElucHV0KCkgY29sdW1ucztcclxuICAvKiogQXJyYXkgb2YgY29sdW1ucyBvbiBzbWFsbGVyIHNjcmVlbnMgKi9cclxuICBASW5wdXQoKSByZXNwb25zaXZlQ29sdW1ucz87XHJcbiAgLyoqIERlZmluZXMgdGhlIHBhZ2UgaW4gd2hpY2ggdGFibGUgaXMgYmVpbmcgdXNlZCAqL1xyXG4gIEBJbnB1dCgpIGVudGl0eVR5cGU6IHN0cmluZztcclxuICAvKiogVHJhbnNsYXRpb25zIHByZWZpeCAqL1xyXG4gIEBJbnB1dCgpIHByZWZpeCA9ICcnO1xyXG4gIC8qKiBIZWFkZXJzIHRvIGJlIHNlbnQgd2l0aCBBUEkgUmVxdWVzdCAqL1xyXG4gIEBJbnB1dCgpIGhlYWRlcnM7XHJcbiAgLyoqIEZpZWxkcyBrZXltYXAgdG8gYmUgbWFwcGVkIGluIHRoZSBhZGFwdGVyICovXHJcbiAgQElucHV0KCkgZmllbGRzO1xyXG4gIC8qKiBQYWdlIFByb3ZpZGVyIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgdG8gcmV0cmlldmUgZGF0YSAqL1xyXG4gIEBJbnB1dCgpIHBhZ2VQcm92aWRlcjtcclxuICAvKiogQ29udHJvbHMgbnVtYmVyIG9mIGl0ZW1zIHBlciBwYWdlIGluIHRhYmxlICovXHJcbiAgQElucHV0KCkgcGFnZVNpemU7XHJcbiAgLyoqIFNvcnRpbmcgY29sdW1uICovXHJcbiAgQElucHV0KCkgc29ydGluZ0J5Pz0ge307XHJcbiAgQElucHV0KCkgZnVsbFRleHRQYXJhbU5hbWUgPSAnc3lzdGVtX2Z1bGx0ZXh0JztcclxuICBASW5wdXQoKSBmaWx0ZXI7IC8vIHVzZWQgdG8gcGFzcyBwYXJhbXMgZnJvbSBvdXRzaWRlIHRvIHBhcmFtcyBvZiBkeW5hbWljIHRhYmxlIGRpcmVjdGx5XHJcblxyXG4gIEBJbnB1dCgpIHN1Z2dlc3RlckFwaTsgLy8gYXBpIHRvIGJlIHVzZWQgaW4gdGhlIHN1Z2dlc3RlciBpbnB1dCBpZiBzZW50IHdpbGwgdXNlZCBpdCBpZiBub3Qgd2lsbCB1c2UgdGhlIGRlZnVsdCBvbmNlXHJcbiAgQElucHV0KCkgXHJcbiAgb25Sb3dTZWxlY3RlZCA9IChyb3cpID0+IHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt7IG91dGxldHM6IHsgdmlld2VyOiBbJ3ZpZXcnLCByb3dbJ3VpZCddXSB9IH1dLCB7XHJcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7IGxvY2F0aW9uOiB0aGlzLnJvdXRlci51cmwgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKiogdXNlZCB0byBlbWl0IGFueSBhY3Rpb25zIHRvIG91dHNpZGUgKi9cclxuICBAT3V0cHV0KCkgYWN0aW9uT25Sb3cgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgcXVlcnlQYXJhbXMgPSB7fTtcclxuICBmaWx0ZXJzO1xyXG4gIHNlYXJjaEZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuICAgIHRleHQ6IG5ldyBGb3JtQ29udHJvbChudWxsKSxcclxuICAgIHBlcnNvbmFsRmlsZXMgOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxyXG4gICAgZGVwRmlsZXMgOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpLFxyXG4gICAgd29ya1NwYWNlRmlsZXMgOiBuZXcgRm9ybUNvbnRyb2woZmFsc2UpXHJcbiAgfSk7XHJcbiAgbG9hZGluZyA9IGZhbHNlO1xyXG4gIHRvdGFsUmVjb3JkcztcclxuICBvcGVuRmlsdGVyOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgc29ydGluZ0FycmF5O1xyXG4gIEBJbnB1dCgpIGN1c3RvbVJlc3BvbnNpdmVTdHlsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG9wZW5DbG9zZUZpbHRlckZyb21PdXRzaWRlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgdGhlbWUgOmFueTtcclxuICB1c2VUb2dnbGVGaWx0ZXJzO1xyXG5cclxuICBxdWlja0ZpbHRlcnMgPSAnJztcclxuICBzYXZlZFBlcnNGaWx0ZXJWYWx1ZSA9IG51bGw7XHJcbiAgc2F2ZWREZXBGaWx0ZXJWYWx1ZSA9IG51bGw7XHJcbiAgc2F2ZWR3b3JrU3BhY2VGaWx0ZXJWYWx1ZSA9IG51bGw7XHJcblxyXG4gIHJlc3VsdFNldHMgPSBbXTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgZXZhbHVhdG9yU2VydmljZSA6IEV2YWx1YXRvcnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBudXhlb1NlcnZpY2UgOiBOdXhlb1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdsb2JhbEFkbWluU2VydmljZSA6IEdsb2JhbEFkbWluU2VydmljZSxcclxuICAgIEBJbmplY3QoJ2Vudmlyb25tZW50JykgcHJpdmF0ZSBlbnZpcm9ubWVudCxcclxuICAgIHB1YmxpYyBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlclxyXG4gICkgeyBcclxuICAgIHRoaXMuZXZhbHVhdG9yU2VydmljZS5ldmFsdWF0ZVJ1bGUoJ2VuYWJsZVNlYXJjaFRvZ2dsZXMnICwge30pLnRoZW4ocmVzID0+IHtcclxuICAgICAgdGhpcy51c2VUb2dnbGVGaWx0ZXJzID0gcmVzO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmKGNoYW5nZXMub3BlbkNsb3NlRmlsdGVyRnJvbU91dHNpZGUpIHtcclxuICAgICAgdGhpcy5vcGVuRmlsdGVyID0gY2hhbmdlcy5vcGVuQ2xvc2VGaWx0ZXJGcm9tT3V0c2lkZS5jdXJyZW50VmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFxyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcyh0aGlzLmNvbnN0cnVjdFBhcmFtc0Z1bmN0aW9uKHRoaXMucm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMpKTtcclxuICAgIHRoaXMuc2VhcmNoSW5wdXRQb3B1bGF0ZSgpO1xyXG4gICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgKHRoaXMudGV4dCAhPT0gcGFyYW1zWydzZWFyY2hfcXVlcnknXSAmJiBwYXJhbXNbJ3NlYXJjaF9xdWVyeSddKSB8fFxyXG4gICAgICAgIChwYXJhbXNbJ3NlYXJjaF9xdWVyeSddPy5sZW5ndGggPT0gMCAmJiB0aGlzLnRleHQgIT09IHBhcmFtc1snc2VhcmNoX3F1ZXJ5J10gfHwgXHJcbiAgICAgICAgKHRoaXMudXNlVG9nZ2xlRmlsdGVycyAmJiB0aGlzLnF1aWNrRmlsdGVycyAhPT0gcGFyYW1zWydxdWlja0ZpbHRlcnMnXSkpIFxyXG4gICAgICApIHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKHRoaXMuY29uc3RydWN0UGFyYW1zRnVuY3Rpb24ocGFyYW1zKSk7XHJcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dFBvcHVsYXRlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5icmVha3BvaW50KCk7XHJcbiAgICBcclxuICAgdGhpcy5zZWFyY2hGb3JtLmdldCgndGV4dCcpLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgZGVib3VuY2VUaW1lKDUwMCkpLnN1YnNjcmliZShyZXMgPT4ge1xyXG4gICAgICB0aGlzLnNlYXJjaChyZXMpLnN1YnNjcmliZShyZXN1bHRzID0+IHtcclxuICAgICAgICB0aGlzLnJlc3VsdFNldHMgPSByZXN1bHRzO1xyXG4gICAgICB9KVxyXG4gICB9KVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0UGFyYW1zRnVuY3Rpb24ocGFyYW1zKXtcclxuICAgIGxldCBjb250cnVjdGVkUGFybXMgPSB7fTtcclxuICAgIHRoaXMudGV4dCA9IHBhcmFtc1snc2VhcmNoX3F1ZXJ5J107XHJcbiAgICBpZih0aGlzLnVzZVRvZ2dsZUZpbHRlcnMpe1xyXG4gICAgICBpZihwYXJhbXNbJ3F1aWNrRmlsdGVycyddKXtcclxuICAgICAgICB0aGlzLnF1aWNrRmlsdGVycyA9IHBhcmFtc1sncXVpY2tGaWx0ZXJzJ10gO1xyXG4gICAgICAgIGNvbnRydWN0ZWRQYXJtcyA9IHsgW3RoaXMuZnVsbFRleHRQYXJhbU5hbWVdIDogdGhpcy50ZXh0KycqJyAsIHF1aWNrRmlsdGVycyA6IHRoaXMucXVpY2tGaWx0ZXJzfVxyXG4gICAgICB9ZWxzZXtcclxuICAgICAgICB0aGlzLnF1aWNrRmlsdGVycyA9ICcnO1xyXG4gICAgICAgIGNvbnRydWN0ZWRQYXJtcyA9IHsgW3RoaXMuZnVsbFRleHRQYXJhbU5hbWVdIDogdGhpcy50ZXh0KycqJyAsIHF1aWNrRmlsdGVycyA6ICcnfVxyXG4gICAgICB9XHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29udHJ1Y3RlZFBhcm1zID0geyBbdGhpcy5mdWxsVGV4dFBhcmFtTmFtZV0gOiB0aGlzLnRleHQrJyonfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjb250cnVjdGVkUGFybXM7XHJcbiAgfVxyXG4gIHVwZGF0ZVF1ZXJ5UGFyYW1zKG5ld1F1ZXJ5cGFyYW1zOiBvYmplY3QpIHtcclxuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB7XHJcbiAgICAgIC4uLnRoaXMucXVlcnlQYXJhbXMsXHJcbiAgICAgIC4uLm5ld1F1ZXJ5cGFyYW1zLFxyXG4gICAgfTtcclxuICB9XHJcbiAgXHJcbiAgc2VhcmNoSW5wdXRQb3B1bGF0ZSgpIHtcclxuICAgIGlmKHRoaXMudXNlVG9nZ2xlRmlsdGVycyl7XHJcbiAgICAgIHRoaXMuc2VhcmNoRm9ybS5wYXRjaFZhbHVlKHtcclxuICAgICAgICB0ZXh0OiB0aGlzLnRleHQsXHJcbiAgICAgICAgcGVyc29uYWxGaWxlcyA6ICh0aGlzLnF1aWNrRmlsdGVycyA9PT0gJ3BlcnNvbmFsRmlsdGVyJyApID8gdHJ1ZSA6ICh0aGlzLnNhdmVkUGVyc0ZpbHRlclZhbHVlICE9PSBudWxsKSA/IHRoaXMuc2F2ZWRQZXJzRmlsdGVyVmFsdWUgOiBmYWxzZSxcclxuICAgICAgICBkZXBGaWxlcyA6ICh0aGlzLnF1aWNrRmlsdGVycyA9PT0gJ2RlcGFydG1lbnRGaWx0ZXInKSA/IHRydWUgOiAodGhpcy5zYXZlZERlcEZpbHRlclZhbHVlICE9PSBudWxsKSA/IHRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSA6IGZhbHNlICxcclxuICAgICAgICB3b3JrU3BhY2VGaWxlcyA6ICh0aGlzLnF1aWNrRmlsdGVycyA9PT0gJ2RlcGFydG1lbnRXb3JrU3BhY2VGaWx0ZXInKSA/IHRydWUgOiAodGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlICE9PSBudWxsKSA/IHRoaXMuc2F2ZWR3b3JrU3BhY2VGaWx0ZXJWYWx1ZSA6IGZhbHNlIFxyXG5cclxuICAgICAgfSk7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5zZWFyY2hGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgIHRleHQ6IHRoaXMudGV4dCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBGaWx0ZXJTZWxlY3RlZCh2YWw6IGFueSkge1xyXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMuZmlsdGVycyA9IHsgLi4udGhpcy5maWx0ZXJzLCAuLi52YWwuZmlsdGVyIH07IC8vc3RvcmUgZmlsdGVyc1xyXG4gICAgdGhpcy51cGRhdGVRdWVyeVBhcmFtcyh0aGlzLmZpbHRlcnMpO1xyXG4gIH1cclxuXHJcbiAgcGFnaW5hdGlvbkNoYW5nZShldmVudCkgeyB9XHJcblxyXG4gIGdldFRhYmxlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHRoaXMuYWdncmVnYXRpb25zID0gT2JqZWN0LmVudHJpZXMoZGF0YS5hZ2dyZWdhdGlvbnMgfHwge30pLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICByZXR1cm4gaXRlbVsxXTtcclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy5hZ2dyZWdhdGlvbnMgPSB0aGlzLmFnZ3JlZ2F0aW9ucy5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAvLyAgIHRoaXMuc29ydGluZ0FycmF5LmluY2x1ZGVzKGl0ZW0uaWQpXHJcbiAgICAvLyApO1xyXG4gICAgbGV0IHVwZGF0ZWRBZ2dyZWdhdGlvbiA9IFtdO1xyXG4gICAgdGhpcy5hZ2dyZWdhdGlvbnMubWFwKGFnZ3JlZyA9PiB7XHJcbiAgICAgIHRoaXMuc29ydGluZ0FycmF5Lm1hcChzb3J0VHlwZSA9PiB7XHJcbiAgICAgICAgaWYoc29ydFR5cGUuaWQgPT09IGFnZ3JlZy5pZCl7XHJcbiAgICAgICAgICBhZ2dyZWdbJ2NvbXBvbmVudFR5cGUnXSA9IHNvcnRUeXBlLmNvbXBvZW5lbnRUeXBlO1xyXG4gICAgICAgICAgLy8gaW4gY2FzZSBvZiBjdXN0b20gY29tcG9uZW50IG5lZWQgdG8gY2FsbCBwYWdlIHByb3ZpZGVyIHRvIGdldCBkYXRhIFxyXG4gICAgICAgICAgaWYoc29ydFR5cGUuY29tcG9lbmVudFR5cGUgPT09ICdjdXN0b20tcHAnIHx8IHNvcnRUeXBlLmNvbXBvZW5lbnRUeXBlID09PSAnY3VzdG9tLWRvY3VtZW50JyB8fCBzb3J0VHlwZS5jb21wb2VuZW50VHlwZSA9PT0gJ2N1c3RvbS1kZXBhcnRtZW50Jyl7XHJcbiAgICAgICAgICAgIGFnZ3JlZ1snY3VzdG9tUGFnZVByb3ZpZGVyJ10gPSBzb3J0VHlwZS5wYWdlUHJvdmlkZXIsXHJcbiAgICAgICAgICAgIGFnZ3JlZ1snY29uZmlnJ10gPSBzb3J0VHlwZS5jb25maWdcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHVwZGF0ZWRBZ2dyZWdhdGlvbi5wdXNoKGFnZ3JlZylcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICB9KVxyXG4gICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBfLnNvcnRCeSh1cGRhdGVkQWdncmVnYXRpb24sIChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCBpID0gLTE7XHJcbiAgICAgICB0aGlzLnNvcnRpbmdBcnJheS5tYXAoKHNvcnRUeXBlICwgaW5kZXgpID0+IHtcclxuICAgICAgICAgaWYoc29ydFR5cGUuaWQgPT09IGl0ZW0uaWQpe1xyXG4gICAgICAgICAgIGkgPSBpbmRleDtcclxuICAgICAgICAgfVxyXG4gICAgICAgfSk7XHJcbiAgICAgICByZXR1cm4gaTtcclxuICAgIH0pO1xyXG4gICAgY29uc29sZS5sb2coJ2FnZ3JlZ2F0aW9ucycsIHRoaXMuYWdncmVnYXRpb25zKTtcclxuICAgIHRoaXMudG90YWxSZWNvcmRzID0gZGF0YS50b3RhbFNpemU7XHJcbiAgfVxyXG5cclxuICBzdWJtaXRGb3JtKCkge1xyXG4gICAgbGV0IHBhcmFtcyA9IHt9IDtcclxuICAgIGlmKHRoaXMudXNlVG9nZ2xlRmlsdGVycyl7XHJcbiAgICAgIHBhcmFtcyA9IHtcclxuICAgICAgICBzZWFyY2hfcXVlcnk6IHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy50ZXh0LnZhbHVlLFxyXG4gICAgICAgIHF1aWNrRmlsdGVycyA6IHRoaXMuZ2V0VG9nZ2xlRmlsdGVycygpXHJcbiAgICAgIH1cclxuICAgIH1lbHNle1xyXG4gICAgICBwYXJhbXMgPSB7XHJcbiAgICAgICAgc2VhcmNoX3F1ZXJ5OiB0aGlzLnNlYXJjaEZvcm0uY29udHJvbHMudGV4dC52YWx1ZSxcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycuJ10sIHtcclxuICAgICAgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSxcclxuICAgICAgcXVlcnlQYXJhbXM6IHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9nZ2xlRmlsdGVycygpIHtcclxuICAgIHRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSA9IHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5kZXBGaWxlcy52YWx1ZTtcclxuICAgIHRoaXMuc2F2ZWRQZXJzRmlsdGVyVmFsdWUgPSB0aGlzLnNlYXJjaEZvcm0uY29udHJvbHMucGVyc29uYWxGaWxlcy52YWx1ZTtcclxuICAgIHRoaXMuc2F2ZWR3b3JrU3BhY2VGaWx0ZXJWYWx1ZSA9IHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy53b3JrU3BhY2VGaWxlcy52YWx1ZTtcclxuICAgIGlmICgodGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSAmJiB0aGlzLnNhdmVkRGVwRmlsdGVyVmFsdWUgJiYgdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlKVxyXG4gICAgICB8fCAoIXRoaXMuc2F2ZWRQZXJzRmlsdGVyVmFsdWUgJiYgIXRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSAmJiAhdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuc2F2ZWRQZXJzRmlsdGVyVmFsdWUgJiYgIXRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSAmJiAhdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBcInBlcnNvbmFsRmlsdGVyXCI7XHJcblxyXG4gICAgfSBlbHNlIGlmICghdGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSAmJiB0aGlzLnNhdmVkRGVwRmlsdGVyVmFsdWUgJiYgIXRoaXMuc2F2ZWR3b3JrU3BhY2VGaWx0ZXJWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gXCJkZXBhcnRtZW50RmlsdGVyXCI7XHJcblxyXG4gICAgfSBlbHNlIGlmICghdGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSAmJiAhdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlICYmIHRoaXMuc2F2ZWR3b3JrU3BhY2VGaWx0ZXJWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gXCJkZXBhcnRtZW50V29ya1NwYWNlRmlsdGVyXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLnNhdmVkUGVyc0ZpbHRlclZhbHVlICYmIHRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSAmJiAhdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBcImRlcGFydG1lbnRQZXJzb25hbEZpbHRlclwiO1xyXG5cclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2F2ZWRQZXJzRmlsdGVyVmFsdWUgJiYgIXRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSAmJiB0aGlzLnNhdmVkd29ya1NwYWNlRmlsdGVyVmFsdWUpIHtcclxuICAgICAgcmV0dXJuIFwicGVyc29uYWxEZXBhcnRtZW50V29ya1NwYWNlRmlsdGVyXCI7XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoIXRoaXMuc2F2ZWRQZXJzRmlsdGVyVmFsdWUgJiYgdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlICYmIHRoaXMuc2F2ZWR3b3JrU3BhY2VGaWx0ZXJWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gXCJkZXB0RGVwYXRtZW50V29ya1NwYWNlRmlsdGVyXCI7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0T3B0aW9uVmFsdWUoc2VhcmNoZWRUZXh0KXtcclxuICAgIHRoaXMuc2VhcmNoRm9ybS5nZXQoJ3RleHQnKS5zZXRWYWx1ZShzZWFyY2hlZFRleHQpO1xyXG4gICAgdGhpcy5zdWJtaXRGb3JtKCk7XHJcbiAgfVxyXG4gIG9uT3BlbkZpbHRlcigpIHtcclxuICAgIHRoaXMub3BlbkZpbHRlciA9ICF0aGlzLm9wZW5GaWx0ZXI7XHJcbiAgfVxyXG5cclxuICBicmVha3BvaW50KCkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJcclxuICAgICAgLm9ic2VydmUoWycobWluLXdpZHRoOiAxMjAwcHgpJ10pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQubWF0Y2hlcykge1xyXG4gICAgICAgICAgdGhpcy5vcGVuRmlsdGVyID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHBlcmZvcm1BY3Rpb24oYWN0aW9uKXtcclxuICAgIHRoaXMuYWN0aW9uT25Sb3cuZW1pdChhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgc2VhcmNoKHRlcm06IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zPSB7XHJcbiAgICAgIHNlYXJjaFRlcm06IHRlcm1cclxuICAgIH1cclxuICAgIGlmKHRoaXMuZ2xvYmFsQWRtaW5TZXJ2aWNlLmlzR2xvYmFsQWRtaW4pe1xyXG4gICAgICBwYXJhbXNbJ3BhdGgnXSA9ICcvJyArIHRoaXMuZ2xvYmFsQWRtaW5TZXJ2aWNlLmFjdGl2ZVRlbmFudCArICcvJ1xyXG4gICAgfWVsc2UgaWYoIXRoaXMuZ2xvYmFsQWRtaW5TZXJ2aWNlLmlzR2xvYmFsQWRtaW4gJiYgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnQudXNlci5wcm9wZXJ0aWVzLnRlbmFudElkKXtcclxuICAgICAgcGFyYW1zWydwYXRoJ10gPSAnLycgKyB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMudGVuYW50SWQgKyAnLydcclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tKFxyXG4gICAgICAgIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50XHJcbiAgICAgICAgICAgIC5vcGVyYXRpb24oKHRoaXMuc3VnZ2VzdGVyQXBpID8gdGhpcy5zdWdnZXN0ZXJBcGkgOiAnU2VhcmNoLkN1c3RvbVN1Z2dlc3RlcnNMYXVuY2hlcicpLCB7XHJcbiAgICAgICAgICAgICAgICB1cmw6IGAke3RoaXMuZW52aXJvbm1lbnQubnV4ZW99JHt0aGlzLmVudmlyb25tZW50LmN1c3RvbUF1dG9tYXRpb259YCxcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLnBhcmFtcyh7XHJcbiAgICAgICAgICAgICAgICAuLi5wYXJhbXNcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgLmNvbnRleHQoe30pXHJcbiAgICAgICAgICAgIC5leGVjdXRlKClcclxuICAgICk7XHJcbn1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiIWN1c3RvbVJlc3BvbnNpdmVTdHlsZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJzZWFyY2gtdG9vbGJhciBkLW1kLWZsZXggZC14bC1ub25lIG14LTNcIj5cclxuICAgIDxidXR0b24gKGNsaWNrKT1cIm9uT3BlbkZpbHRlcigpXCIgY2xhc3M9XCJteS1idXR0b25cIj5cclxuICAgICAgPHNwYW4+IHt7IFwiRklMVEVSXCIgfCB0cmFuc2xhdGUgfX08L3NwYW4+XHJcbiAgICAgIDxpIGNsYXNzPVwiYmkgYmktZmlsdGVyXCIgKm5nSWY9XCIhb3BlbkZpbHRlclwiPjwvaT5cclxuICAgICAgPGkgY2xhc3M9XCJiaSBiaS14XCIgKm5nSWY9XCJvcGVuRmlsdGVyXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8ZGl2ICpuZ0lmPVwib3BlbkZpbHRlclwiPlxyXG4gICAgICA8aSBjbGFzcz1cImJpIGJpLWNhcmV0LXVwLWZpbGwgYXJyb3ctdXBcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cImN1c3RvbVN0eWxlIC1tdC0xMiBweC04IGZsZXggZmxleC1jb2xcIlxyXG4gICAgW25nQ2xhc3NdPVwieydiZy1hY2NlbnQtMjAwJzogdGhlbWUgPT09ICdkZ2RhJywnYmctYWNjZW50LTEwMCc6IHRoZW1lID09PSAna3NyZWxlaWYnIHx8IHRoZW1lID09PSAnY29tcHRlY2hjbyd9XCJcclxuICAgIFtAY29sbGFwc2VdPVwiIW9wZW5GaWx0ZXJcIj5cclxuICAgIDwhLS0gPGZvcm1cclxuICAgICAgICBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIlxyXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWZvcm1cIlxyXG4gICAgICAgIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICBjbGFzcz1cInNlYXJjaC1pbnB1dFwiXHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0ZXh0XCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoLnNlYXJjaCcgfCB0cmFuc2xhdGVcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCIgY2xhc3M9XCJzZWFyY2gtaWNvbiBiaSBiaS1zZWFyY2hcIj48L2Rpdj5cclxuICAgICAgPC9mb3JtPiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC14LTE4IGZsZXgtcm93IG10LTUgcGItMyBvdmVyZmxvdy14LWF1dG9cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uczsgZWxzZSBwcm9ncmVzc1NwaW5uZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb25zLmxlbmd0aDsgZWxzZSBub0FnZ3JlZ2F0aW9uc1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgYWdncmVnYXRpb24gb2YgYWdncmVnYXRpb25zXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbi5idWNrZXRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICA8Y3RzLWR5bmFtaWMtZmlsdGVyIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIiBbZmlsdGVyc109XCJhZ2dyZWdhdGlvbi5idWNrZXRzXCIgW2lkXT1cImFnZ3JlZ2F0aW9uLmlkXCJcclxuICAgICAgICAgICAgICAgIFtzZWxlY3Rpb25zXT1cImFnZ3JlZ2F0aW9uLnNlbGVjdGlvblwiIFt0aXRsZV09XCJhZ2dyZWdhdGlvbi5maWVsZFwiIFtwcmVmaXhdPVwiJ3NlYXJjaCdcIiBbZGVwYXJ0bWVudF09XCJcclxuICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6dG8nIHx8XHJcbiAgICAgICAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOmZyb20nXHJcbiAgICAgICAgICAgICAgICAgIFwiIFtjb21wb25lbnRUeXBlXT1cImFnZ3JlZ2F0aW9uLmNvbXBvbmVudFR5cGUgPyBhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlIDogJ2RlZnVsdCdcIlxyXG4gICAgICAgICAgICAgICAgW2N1c3RvbVBhZ2VQcm92aWRlcl09XCJhZ2dyZWdhdGlvbi5jdXN0b21QYWdlUHJvdmlkZXIgPyBhZ2dyZWdhdGlvbi5jdXN0b21QYWdlUHJvdmlkZXIgOiAnJ1wiXHJcbiAgICAgICAgICAgICAgICBbY29uZmlnXT1cImFnZ3JlZ2F0aW9uLmNvbmZpZyA/IGFnZ3JlZ2F0aW9uLmNvbmZpZyA6IHt9XCIgKG9uRmlsdGVyU2VsZWN0ZWQpPVwiRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtZmlsdGVyPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxkaXYgY2xhc3M9XCJyb3cgd3JhcHBlclwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicG9wdXAtZmlsdGVyIHB4LTMgZC1mbGV4IGQteGwtbm9uZVwiICpuZ0lmPVwib3BlbkZpbHRlclwiPlxyXG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInNlYXJjaEZvcm1cIiBjbGFzcz1cInNlYXJjaC1mb3JtXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiPlxyXG4gICAgICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidGV4dFwiIFttYXRBdXRvY29tcGxldGVdPVwibWF0QXV0b2NvbXBsZXRlMVwiIFtwbGFjZWhvbGRlcl09XCInc2VhcmNoLnNlYXJjaCcgfCB0cmFuc2xhdGVcIiAvPlxyXG4gICAgICAgIDxkaXYgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiIGNsYXNzPVwic2VhcmNoLWljb24gYmkgYmktc2VhcmNoXCI+PC9kaXY+XHJcbiAgICAgIDwvZm9ybT5cclxuICAgICAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICAgY2xhc3M9XCJcclxuICAgICAgICAgYXV0by1jb21wbGV0ZS1pbmVyLXdyYXBwZXJcclxuICAgICAgICAgIGF1dG8tY29tcGxldGUtd3JhcHBlclxyXG4gICAgICBcIlxyXG4gICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcclxuICAgICAgI21hdEF1dG9jb21wbGV0ZTE9XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gID5cclxuICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgIGNsYXNzPVwibm8tdGV4dFwiXHJcbiAgICAgICAgICAqbmdJZj1cInJlc3VsdFNldHMgJiYgIXJlc3VsdFNldHMubGVuZ3RoXCJcclxuICAgICAgPlxyXG4gICAgICAgICAge3snbm9fcmVzdWx0X2ZvdW5kJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmVzdWx0U2V0IG9mIHJlc3VsdFNldHNcIj5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICAoY2xpY2spPVwic2V0T3B0aW9uVmFsdWUocmVzdWx0U2V0LmxhYmVsKVwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwib3B0aW9uLWluZXItdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgID57eyByZXN1bHRTZXQubGFiZWwgfX08L3NwYW5cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICA8L21hdC1vcHRpb24gPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb25zOyBlbHNlIHByb2dyZXNzU3Bpbm5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbnMubGVuZ3RoOyBlbHNlIG5vQWdncmVnYXRpb25zXCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhZ2dyZWdhdGlvbiBvZiBhZ2dyZWdhdGlvbnNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxjdHMtZHluYW1pYy1maWx0ZXIgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiIFtmaWx0ZXJzXT1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHNcIiBbaWRdPVwiYWdncmVnYXRpb24uaWRcIlxyXG4gICAgICAgICAgICAgICAgW3NlbGVjdGlvbnNdPVwiYWdncmVnYXRpb24uc2VsZWN0aW9uXCIgW3RpdGxlXT1cImFnZ3JlZ2F0aW9uLmZpZWxkXCIgW3ByZWZpeF09XCInc2VhcmNoJ1wiIFtkZXBhcnRtZW50XT1cIlxyXG4gICAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOnRvJyB8fFxyXG4gICAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOmZyb20nXHJcbiAgICAgICAgICAgICAgXCIgW2NvbXBvbmVudFR5cGVdPVwiYWdncmVnYXRpb24uY29tcG9uZW50VHlwZSA/IGFnZ3JlZ2F0aW9uLmNvbXBvbmVudFR5cGUgOiAnZGVmdWx0J1wiXHJcbiAgICAgICAgICAgICAgICBbY3VzdG9tUGFnZVByb3ZpZGVyXT1cImFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA/IGFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA6ICcnXCJcclxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiYWdncmVnYXRpb24uY29uZmlnID8gYWdncmVnYXRpb24uY29uZmlnIDoge31cIiAob25GaWx0ZXJTZWxlY3RlZCk9XCJGaWx0ZXJTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1maWx0ZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb2wteGwtMyBzZWFyY2gtc2lkZU1lbnUgZC1ub25lIGQteGwtYmxvY2tcIj5cclxuICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiIGNsYXNzPVwic2VhcmNoLWZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCI+XHJcbiAgICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidGV4dFwiIFttYXRBdXRvY29tcGxldGVdPVwibWF0QXV0b2NvbXBsZXRlMlwiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2guc2VhcmNoJyB8IHRyYW5zbGF0ZVwiIC8+XHJcbiAgICAgIDxkaXYgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiIGNsYXNzPVwic2VhcmNoLWljb24gYmkgYmktc2VhcmNoXCI+PC9kaXY+XHJcbiAgICA8L2Zvcm0+XHJcbiAgICA8bWF0LWF1dG9jb21wbGV0ZSBjbGFzcz1cIlxyXG4gICAgICAgYXV0by1jb21wbGV0ZS1pbmVyLXdyYXBwZXJcclxuICAgICAgICBhdXRvLWNvbXBsZXRlLXdyYXBwZXJcclxuICAgIFwiIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIiAjbWF0QXV0b2NvbXBsZXRlMj1cIm1hdEF1dG9jb21wbGV0ZVwiPlxyXG4gICAgICA8bWF0LW9wdGlvbiBjbGFzcz1cIm5vLXRleHRcIiAqbmdJZj1cInJlc3VsdFNldHMgJiYgIXJlc3VsdFNldHMubGVuZ3RoXCI+XHJcbiAgICAgICAge3snbm9fcmVzdWx0X2ZvdW5kJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmVzdWx0U2V0IG9mIHJlc3VsdFNldHNcIj5cclxuICAgICAgICA8bWF0LW9wdGlvbiAoY2xpY2spPVwic2V0T3B0aW9uVmFsdWUocmVzdWx0U2V0LmxhYmVsKVwiPlxyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcHRpb24taW5lci10ZXh0XCI+e3sgcmVzdWx0U2V0LmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb25zOyBlbHNlIHByb2dyZXNzU3Bpbm5lclwiPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhZ2dyZWdhdGlvbiBvZiBhZ2dyZWdhdGlvbnNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb24uYnVja2V0cy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8Y3RzLWR5bmFtaWMtZmlsdGVyIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIiBbZmlsdGVyc109XCJhZ2dyZWdhdGlvbi5idWNrZXRzXCIgW2lkXT1cImFnZ3JlZ2F0aW9uLmlkXCJcclxuICAgICAgICAgICAgW3NlbGVjdGlvbnNdPVwiYWdncmVnYXRpb24uc2VsZWN0aW9uXCIgW3RpdGxlXT1cImFnZ3JlZ2F0aW9uLmZpZWxkXCIgW3ByZWZpeF09XCInc2VhcmNoJ1wiIFtkZXBhcnRtZW50XT1cIlxyXG4gICAgICAgICAgICAgIGFnZ3JlZ2F0aW9uLmZpZWxkID09PSAnY29ycjp0bycgfHxcclxuICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6ZnJvbSdcclxuICAgICAgICAgICAgXCIgW2NvbXBvbmVudFR5cGVdPVwiYWdncmVnYXRpb24uY29tcG9uZW50VHlwZSA/IGFnZ3JlZ2F0aW9uLmNvbXBvbmVudFR5cGUgOiAnZGVmdWx0J1wiXHJcbiAgICAgICAgICAgIFtjdXN0b21QYWdlUHJvdmlkZXJdPVwiYWdncmVnYXRpb24uY3VzdG9tUGFnZVByb3ZpZGVyID8gYWdncmVnYXRpb24uY3VzdG9tUGFnZVByb3ZpZGVyIDogJydcIlxyXG4gICAgICAgICAgICBbY29uZmlnXT1cImFnZ3JlZ2F0aW9uLmNvbmZpZyA/IGFnZ3JlZ2F0aW9uLmNvbmZpZyA6IHt9XCIgKG9uRmlsdGVyU2VsZWN0ZWQpPVwiRmlsdGVyU2VsZWN0ZWQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC9jdHMtZHluYW1pYy1maWx0ZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJjb2wtMTIgY29sLXhsLTlcIj5cclxuICAgIDxhcHAtY2FyZD5cclxuICAgICAgPGRpdiBjbGFzcz1cInRpdGxlXCI+XHJcbiAgICAgICAgPGgzPlxyXG4gICAgICAgICAge3sgXCJzZWFyY2guaGVhZGVyXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L2gzPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiYWdncmVnYXRpb25zXCIgY2xhc3M9XCJ0YWJsZS10b29sYmFyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVzdWx0LWNvdW50XCI+XHJcbiAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgXCJzZWFyY2guXCIgKyBcInJlc3VsdHNOdW1iZXJcIlxyXG4gICAgICAgICAgICAgIHwgdHJhbnNsYXRlOiB7IHZhbHVlOiB0b3RhbFJlY29yZHMgPyB0b3RhbFJlY29yZHMgOiAwIH1cclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxmb3JtIGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktYmV0d2VlblwiIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidXNlVG9nZ2xlRmlsdGVycyAmJiAhY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImN1c3RvbVJlc3BvbnNpdmVTdHlsZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlYXJjaC1mb3JtIGN1c3RvbS1yZXNwb25zaXZlLXNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJzZWFyY2gtaW5wdXRcIiB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cInRleHRcIiBbbWF0QXV0b2NvbXBsZXRlXT1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2guc2VhcmNoJyB8IHRyYW5zbGF0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiIGNsYXNzPVwic2VhcmNoLWljb24gYmkgYmktc2VhcmNoXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxtYXQtYXV0b2NvbXBsZXRlXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIlxyXG4gICAgICAgICAgICAgICAgICAgYXV0by1jb21wbGV0ZS1pbmVyLXdyYXBwZXJcclxuICAgICAgICAgICAgICAgICAgICBhdXRvLWNvbXBsZXRlLXdyYXBwZXJcclxuICAgICAgICAgICAgICAgIFwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZVJpcHBsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICNtYXRBdXRvY29tcGxldGU9XCJtYXRBdXRvY29tcGxldGVcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibm8tdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyZXN1bHRTZXRzICYmICFyZXN1bHRTZXRzLmxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3tub19yZXN1bHRfZm91bmQgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcmVzdWx0U2V0IG9mIHJlc3VsdFNldHNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAgKGNsaWNrKT1cInNldE9wdGlvblZhbHVlKHJlc3VsdFNldC5sYWJlbClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwib3B0aW9uLWluZXItdGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgcmVzdWx0U2V0LmxhYmVsIH19PC9zcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24gPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleFwiICpuZ0lmPVwidXNlVG9nZ2xlRmlsdGVyc1wiPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbSBjbGFzcz1cIm14LTIgc21hbGwtZm9udFwiIFtsYWJlbF09XCInc2VhcmNoLlBFUlNPTkFMX0ZJTEVTJ1wiXHJcbiAgICAgICAgICAgICAgICAgIChvblRvZ2dsZSk9XCJzdWJtaXRGb3JtKClcIiBmb3JtQ29udHJvbE5hbWU9XCJwZXJzb25hbEZpbGVzXCI+XHJcbiAgICAgICAgICAgICAgICA8L2N0cy1keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbT5cclxuICAgICAgICAgICAgICAgIDxjdHMtZHluYW1pYy1mb3JtLXNsaWRlLXRvZ2dsZWl0ZW0gY2xhc3M9XCJteC0yIHNtYWxsLWZvbnRcIiBbbGFiZWxdPVwiJ3NlYXJjaC5ERVBfRklMRVMnXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZGVwRmlsZXNcIiAob25Ub2dnbGUpPVwic3VibWl0Rm9ybSgpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2N0cy1keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbT5cclxuICAgICAgICAgICAgICAgIDxjdHMtZHluYW1pYy1mb3JtLXNsaWRlLXRvZ2dsZWl0ZW0gY2xhc3M9XCJteC0yIHNtYWxsLWZvbnRcIiBbbGFiZWxdPVwiJ3NlYXJjaC5XT1JLU1BBQ0VfRklMRVMnXCJcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIndvcmtTcGFjZUZpbGVzXCIgKG9uVG9nZ2xlKT1cInN1Ym1pdEZvcm0oKVwiPlxyXG4gICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtZm9ybS1zbGlkZS10b2dnbGVpdGVtPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Y3RzLWR5bmFtaWMtdGFibGUgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCIgW2NvbHVtbnNdPVwiY29sdW1uc1wiIFtyZXNwb25zaXZlQ29sdW1uc109XCJyZXNwb25zaXZlQ29sdW1uc1wiXHJcbiAgICAgICAgICBbcGFnZVByb3ZpZGVyXT1cInBhZ2VQcm92aWRlclwiIFtxdWlja0ZpbHRlcl09XCJmaWx0ZXJcIiBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCIgW2ZpZWxkc109XCJmaWVsZHNcIlxyXG4gICAgICAgICAgW3F1ZXJ5UGFyYW1dPVwicXVlcnlQYXJhbXNcIiBbaGVhZGVyc109XCJoZWFkZXJzXCIgW3ByZWZpeF09XCJwcmVmaXhcIiBbc29ydGluZ0J5XT1cInNvcnRpbmdCeVwiIFtpc1NlYXJjaFBhZ2VdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAob25Sb3dTZWxlY3RlZCk9XCJvblJvd1NlbGVjdGVkKCRldmVudClcIiAoYWN0aW9uT25Sb3cpPVwicGVyZm9ybUFjdGlvbigkZXZlbnQpXCJcclxuICAgICAgICAgIChvbkdldHRpbmdEYXRhKT1cImdldFRhYmxlRGF0YSgkZXZlbnQpXCI+PC9jdHMtZHluYW1pYy10YWJsZT5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2FwcC1jYXJkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3Byb2dyZXNzU3Bpbm5lcj5cclxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1zcGlubmVyXCI+XHJcbiAgICAgIDxtYXQtc3Bpbm5lciBjb2xvcj1cIndhcm5cIiBbZGlhbWV0ZXJdPVwiMjVcIj48L21hdC1zcGlubmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuICA8bmctdGVtcGxhdGUgI25vQWdncmVnYXRpb25zPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLXNwaW5uZXJcIj5cclxuICAgICAge3sgXCJzZWFyY2gubm9BZ2dyZWdhdGlvbnNcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+Il19
336
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWFyY2guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnV4ZW8tZGV2ZWxvcG1lbnQtZnJhbWV3b3JrL3NyYy9saWIvY29tcG9uZW50cy9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC9keW5hbWljLXNlYXJjaC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9udXhlby1kZXZlbG9wbWVudC1mcmFtZXdvcmsvc3JjL2xpYi9jb21wb25lbnRzL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoL2R5bmFtaWMtc2VhcmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQTRCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXhELE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRzdGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQUl4Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNCRztBQWVILE1BQU0sT0FBTyxzQkFBc0I7SUF5RGpDLFlBQ1UsS0FBcUIsRUFDckIsTUFBYyxFQUNkLGdCQUFvQyxFQUNwQyxZQUEyQixFQUMzQixrQkFBdUMsRUFDaEIsV0FBVyxFQUNuQyxrQkFBc0M7UUFOckMsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBb0I7UUFDcEMsaUJBQVksR0FBWixZQUFZLENBQWU7UUFDM0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFxQjtRQUNoQixnQkFBVyxHQUFYLFdBQVcsQ0FBQTtRQUNuQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBdkQvQywwQkFBMEI7UUFDakIsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQVNyQixxQkFBcUI7UUFDWixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2Ysc0JBQWlCLEdBQUcsaUJBQWlCLENBQUM7UUFLL0Msa0JBQWEsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7Z0JBQ3BFLFdBQVcsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRTthQUMzQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUE7UUFDRCwwQ0FBMEM7UUFDaEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLGVBQVUsR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUN6QixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQzNCLGFBQWEsRUFBRyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDdEMsUUFBUSxFQUFHLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNqQyxjQUFjLEVBQUcsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDO1NBQ3hDLENBQUMsQ0FBQztRQUNILFlBQU8sR0FBRyxLQUFLLENBQUM7UUFLUCwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkMsK0JBQTBCLEdBQVksS0FBSyxDQUFDO1FBSXJELGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQUM1Qix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDM0IsOEJBQXlCLEdBQUcsSUFBSSxDQUFDO1FBRWpDLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFVZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN4RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFHLE9BQU8sQ0FBQywwQkFBMEIsRUFBRTtZQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQyxZQUFZLENBQUM7U0FDbkU7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUVOLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTs7WUFDMUMsSUFDRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDaEUsQ0FBQyxDQUFBLE1BQUEsTUFBTSxDQUFDLGNBQWMsQ0FBQywwQ0FBRSxNQUFNLEtBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDLGNBQWMsQ0FBQztvQkFDNUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxFQUN4RTtnQkFDQSxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzdELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2FBQzVCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDNUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQTtRQUNMLENBQUMsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztJQUVELHVCQUF1QixDQUFDLE1BQU07UUFDNUIsSUFBSSxlQUFlLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ25DLElBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBQztZQUNsQixJQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBQztnQkFDdkIsSUFBRyxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQUM7b0JBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFFO29CQUM1QyxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFHLElBQUksQ0FBQyxJQUFJLEdBQUMsR0FBRyxFQUFHLFlBQVksRUFBRyxJQUFJLENBQUMsWUFBWSxFQUFDLENBQUE7aUJBQ2pHO3FCQUFJO29CQUNILElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO29CQUN2QixlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFHLElBQUksQ0FBQyxJQUFJLEdBQUMsR0FBRyxFQUFHLFlBQVksRUFBRyxFQUFFLEVBQUMsQ0FBQTtpQkFDbEY7YUFDRjtpQkFBSTtnQkFDSCxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFHLElBQUksQ0FBQyxJQUFJLEdBQUMsR0FBRyxFQUFDLENBQUE7YUFDOUQ7U0FDRjtRQUVELE9BQU8sZUFBZSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxjQUFzQjtRQUN0QyxJQUFJLENBQUMsV0FBVyxtQ0FDWCxJQUFJLENBQUMsV0FBVyxHQUNoQixjQUFjLENBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDO2dCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsYUFBYSxFQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxnQkFBZ0IsQ0FBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQzNJLFFBQVEsRUFBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEtBQUssa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUNySSxjQUFjLEVBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxLQUFLLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsS0FBSzthQUVqSyxDQUFDLENBQUM7U0FDSjthQUFJO1lBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUM7Z0JBQ3pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTthQUNoQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsR0FBUTtRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsT0FBTyxtQ0FBUSxJQUFJLENBQUMsT0FBTyxHQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUUsQ0FBQyxDQUFDLGVBQWU7UUFDbEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSyxJQUFJLENBQUM7SUFFM0IsWUFBWSxDQUFDLElBQUk7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN2RSxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztRQUNILHlEQUF5RDtRQUN6RCx3Q0FBd0M7UUFDeEMsS0FBSztRQUNMLElBQUksa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMvQixJQUFHLFFBQVEsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLEVBQUUsRUFBQztvQkFDM0IsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxjQUFjLENBQUM7b0JBQ2xELHNFQUFzRTtvQkFDdEUsSUFBRyxRQUFRLENBQUMsY0FBYyxLQUFLLFdBQVcsSUFBSSxRQUFRLENBQUMsY0FBYyxLQUFLLGlCQUFpQixJQUFJLFFBQVEsQ0FBQyxjQUFjLEtBQUssbUJBQW1CLEVBQUM7d0JBQzdJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZOzRCQUNwRCxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQTtxQkFDbkM7b0JBQ0Qsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2lCQUNoQztZQUNILENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN4RCxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFHLEtBQUssRUFBRSxFQUFFO2dCQUN6QyxJQUFHLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBQztvQkFDekIsQ0FBQyxHQUFHLEtBQUssQ0FBQztpQkFDWDtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLENBQUM7UUFDWixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUU7UUFDakIsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUM7WUFDdkIsTUFBTSxHQUFHO2dCQUNQLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSztnQkFDakQsWUFBWSxFQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTthQUN2QyxDQUFBO1NBQ0Y7YUFBSTtZQUNILE1BQU0sR0FBRztnQkFDUCxZQUFZLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUs7YUFDbEQsQ0FBQTtTQUNGO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUMxQixVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDdEIsV0FBVyxFQUFFLE1BQU07U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ25FLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO1FBQ3pFLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBQy9FLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztlQUN4RixDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLEVBQUU7WUFDakcsT0FBTyxFQUFFLENBQUM7U0FDWDthQUFNLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQ3BHLE9BQU8sZ0JBQWdCLENBQUM7U0FFekI7YUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUNwRyxPQUFPLGtCQUFrQixDQUFDO1NBRTNCO2FBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDcEcsT0FBTywyQkFBMkIsQ0FBQztTQUNwQzthQUNJLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRTtZQUNqRyxPQUFPLDBCQUEwQixDQUFDO1NBRW5DO2FBQ0ksSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQ2pHLE9BQU8sbUNBQW1DLENBQUM7U0FFNUM7YUFDSSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMseUJBQXlCLEVBQUU7WUFDakcsT0FBTyw4QkFBOEIsQ0FBQztTQUV2QztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsWUFBWTtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDckMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsa0JBQWtCO2FBQ3BCLE9BQU8sQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUM7YUFDaEMsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEIsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUNsQixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQzthQUN6QjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFNO1FBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWTtRQUNqQixJQUFJLE1BQU0sR0FBRTtZQUNWLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUE7UUFDRCxJQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxhQUFhLEVBQUM7WUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQTtTQUNsRTthQUFLLElBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFDO1lBQ3hHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFBO1NBQ3BGO1FBQ0QsT0FBTyxJQUFJLENBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXO2FBQ3hCLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLEVBQUU7WUFDcEYsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRTtTQUN2RSxDQUFDO2FBQ0QsTUFBTSxtQkFDQSxNQUFNLEVBQ1g7YUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDO2FBQ1gsT0FBTyxFQUFFLENBQ2pCLENBQUM7SUFDTixDQUFDOzttSEFwUlksc0JBQXNCLHFLQStEdkIsYUFBYTt1R0EvRFosc0JBQXNCLDhtQkNuRG5DLGt3VkEwTk0sc2taRGpMUTtRQUNWLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDbEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLEtBQUssQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUMzRCxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN6QyxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMxQyxDQUFDO0tBQ0g7MkZBR1Usc0JBQXNCO2tCQWRsQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFdBQVcsRUFBRSxpQ0FBaUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLGlDQUFpQyxDQUFDO29CQUM5QyxVQUFVLEVBQUU7d0JBQ1YsT0FBTyxDQUFDLFVBQVUsRUFBRTs0QkFDbEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDOzRCQUNyRSxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7NEJBQzNELFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUN6QyxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDMUMsQ0FBQztxQkFDSDtvQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtpQkFDdEM7OzBCQWdFSSxNQUFNOzJCQUFDLGFBQWE7NkVBM0RkLE9BQU87c0JBQWYsS0FBSztnQkFFRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsU0FBUztzQkFBakIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRU4sYUFBYTtzQkFEWixLQUFLO2dCQU9JLFdBQVc7c0JBQXBCLE1BQU07Z0JBYVAsWUFBWTtzQkFEWCxLQUFLO2dCQUVHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRywwQkFBMEI7c0JBQWxDLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNDb25zdGFudHMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2RvY3VtZW50cy9jb25zdGFudHMvZG9jdW1lbnRzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IGFuaW1hdGUsIEFVVE9fU1RZTEUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyB0aHJlYWRJZCB9IGZyb20gJ3dvcmtlcl90aHJlYWRzJztcclxuaW1wb3J0IHsgRXZhbHVhdG9yc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvcGVybWlzc2lvbnMvZXZhbHVhdG9ycy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE51eGVvU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL0NvcmUvc2VydmljZXMvbnV4ZW8vbnV4ZW8uc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbEFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC1zZXJ2aWNlcy9nbG9iYWwtYWRtaW4uc2VydmljZSc7XHJcblxyXG4vKipcclxuICogRHluYW1pYyBzZWFyY2ggY29tcG9uZW50IHVzZXMgW0R5bmFtaWMgVGFibGVde0BsaW5rIER5bmFtaWNUYWJsZUNvbXBvbmVudH0gJiBbRHluYW1pYyBGaWx0ZXJde0BsaW5rIER5bmFtaWNGaWx0ZXJDb21wb25lbnR9IGludGVybmFsbHksXHJcbiAqIGFuZCB1dGlsaXplcyBpdHMgaW5wdXRzIHRvIHBlcmZvcm0gYWR2YW5jZWQgc2VhcmNoIGFuZCBmaWx0ZXJpbmcgb24gYW55IG51eGVvIFByb3ZpZGVyXHJcbiAqIEB0aXRsZVxyXG4gKiBEeW5hbWljIFNlYXJjaFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKiA8Y3RzLWR5bmFtaWMtc2VhcmNoXHJcbiAqICAgW3BhZ2VQcm92aWRlcl09XCIncGFnZVByb3ZpZGVyTmFtZSdcIlxyXG4gKiAgIFtjb2x1bW5zXT1cImNvbHVtbnNBcnJheVwiXHJcbiAqICAgW3Jlc3BvbnNpdmVDb2x1bW5zXT1cInJlc3BvbnNpdmVDb2x1bW5zQXJyYXlcIlxyXG4gKiAgIFtlbnRpdHlUeXBlXT1cIidkb2N1bWVudHMnXCJcclxuICogICBbcHJlZml4XT1cInByZWZpeFwiXHJcbiAqICAgW2ZpZWxkc109XCJmaWVsZHNcIlxyXG4gKiAgIFtoZWFkZXJzXT1cImhlYWRlcnNcIlxyXG4gKiAgIFtzb3J0aW5nQnldPVwic29ydGluZ0J5XCJcclxuICogICBbcGFnZVNpemVdPVwiUGFnZVNpemVcIlxyXG4qICAgIFtjdXN0b21SZXNwb25zaXZlU3R5bGVdPVwiZmFsc2Ugb3IgdHJ1ZVwiXHJcbiAgICAgW29wZW5DbG9zZUZpbHRlckZyb21PdXRzaWRlXT1cInBhc3MgRmlsdGVyIHN0YXRlIGZyb20gcGFyZW50IGNvbXBvbmVudFwiXHJcbiAgICAgW3RoZW1lXSA9IFwidG8gIHNldCBiYWNrZ3JvdW5kIGRlcGVuZWQgb24gdGhlbWVcIlxyXG4gKiA+XHJcbiAqIDwvY3RzLWR5bmFtaWMtc2VhcmNoPlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjdHMtZHluYW1pYy1zZWFyY2gnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLXNlYXJjaC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1zZWFyY2guY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdjb2xsYXBzZScsIFtcclxuICAgICAgc3RhdGUoJ2ZhbHNlJywgc3R5bGUoeyBoZWlnaHQ6IEFVVE9fU1RZTEUsIHZpc2liaWxpdHk6IEFVVE9fU1RZTEUgfSkpLFxyXG4gICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHsgaGVpZ2h0OiAnMCcsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH0pKSxcclxuICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIGFuaW1hdGUoMzAwKSksXHJcbiAgICAgIHRyYW5zaXRpb24oJ3RydWUgPT4gZmFsc2UnLCBhbmltYXRlKDMwMCkpXHJcbiAgICBdKVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY1NlYXJjaENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkNoYW5nZXMge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBhZ2dyZWdhdGlvbnM7XHJcbiAgLyoqIEFycmF5IG9mIGNvbHVtbnMgKi9cclxuICBASW5wdXQoKSBjb2x1bW5zO1xyXG4gIC8qKiBBcnJheSBvZiBjb2x1bW5zIG9uIHNtYWxsZXIgc2NyZWVucyAqL1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpdmVDb2x1bW5zPztcclxuICAvKiogRGVmaW5lcyB0aGUgcGFnZSBpbiB3aGljaCB0YWJsZSBpcyBiZWluZyB1c2VkICovXHJcbiAgQElucHV0KCkgZW50aXR5VHlwZTogc3RyaW5nO1xyXG4gIC8qKiBUcmFuc2xhdGlvbnMgcHJlZml4ICovXHJcbiAgQElucHV0KCkgcHJlZml4ID0gJyc7XHJcbiAgLyoqIEhlYWRlcnMgdG8gYmUgc2VudCB3aXRoIEFQSSBSZXF1ZXN0ICovXHJcbiAgQElucHV0KCkgaGVhZGVycztcclxuICAvKiogRmllbGRzIGtleW1hcCB0byBiZSBtYXBwZWQgaW4gdGhlIGFkYXB0ZXIgKi9cclxuICBASW5wdXQoKSBmaWVsZHM7XHJcbiAgLyoqIFBhZ2UgUHJvdmlkZXIgbmFtZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZXRyaWV2ZSBkYXRhICovXHJcbiAgQElucHV0KCkgcGFnZVByb3ZpZGVyO1xyXG4gIC8qKiBDb250cm9scyBudW1iZXIgb2YgaXRlbXMgcGVyIHBhZ2UgaW4gdGFibGUgKi9cclxuICBASW5wdXQoKSBwYWdlU2l6ZTtcclxuICAvKiogU29ydGluZyBjb2x1bW4gKi9cclxuICBASW5wdXQoKSBzb3J0aW5nQnk/PSB7fTtcclxuICBASW5wdXQoKSBmdWxsVGV4dFBhcmFtTmFtZSA9ICdzeXN0ZW1fZnVsbHRleHQnO1xyXG4gIEBJbnB1dCgpIGZpbHRlcjsgLy8gdXNlZCB0byBwYXNzIHBhcmFtcyBmcm9tIG91dHNpZGUgdG8gcGFyYW1zIG9mIGR5bmFtaWMgdGFibGUgZGlyZWN0bHlcclxuXHJcbiAgQElucHV0KCkgc3VnZ2VzdGVyQXBpOyAvLyBhcGkgdG8gYmUgdXNlZCBpbiB0aGUgc3VnZ2VzdGVyIGlucHV0IGlmIHNlbnQgd2lsbCB1c2VkIGl0IGlmIG5vdCB3aWxsIHVzZSB0aGUgZGVmdWx0IG9uY2VcclxuICBASW5wdXQoKSBcclxuICBvblJvd1NlbGVjdGVkID0gKHJvdykgPT4ge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3sgb3V0bGV0czogeyB2aWV3ZXI6IFsndmlldycsIHJvd1sndWlkJ11dIH0gfV0sIHtcclxuICAgICAgcXVlcnlQYXJhbXM6IHsgbG9jYXRpb246IHRoaXMucm91dGVyLnVybCB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8qKiB1c2VkIHRvIGVtaXQgYW55IGFjdGlvbnMgdG8gb3V0c2lkZSAqL1xyXG4gIEBPdXRwdXQoKSBhY3Rpb25PblJvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBxdWVyeVBhcmFtcyA9IHt9O1xyXG4gIGZpbHRlcnM7XHJcbiAgc2VhcmNoRm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG4gICAgdGV4dDogbmV3IEZvcm1Db250cm9sKG51bGwpLFxyXG4gICAgcGVyc29uYWxGaWxlcyA6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXHJcbiAgICBkZXBGaWxlcyA6IG5ldyBGb3JtQ29udHJvbChmYWxzZSksXHJcbiAgICB3b3JrU3BhY2VGaWxlcyA6IG5ldyBGb3JtQ29udHJvbChmYWxzZSlcclxuICB9KTtcclxuICBsb2FkaW5nID0gZmFsc2U7XHJcbiAgdG90YWxSZWNvcmRzO1xyXG4gIG9wZW5GaWx0ZXI6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBzb3J0aW5nQXJyYXk7XHJcbiAgQElucHV0KCkgY3VzdG9tUmVzcG9uc2l2ZVN0eWxlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgb3BlbkNsb3NlRmlsdGVyRnJvbU91dHNpZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0aGVtZSA6YW55O1xyXG4gIHVzZVRvZ2dsZUZpbHRlcnM7XHJcblxyXG4gIHF1aWNrRmlsdGVycyA9ICcnO1xyXG4gIHNhdmVkUGVyc0ZpbHRlclZhbHVlID0gbnVsbDtcclxuICBzYXZlZERlcEZpbHRlclZhbHVlID0gbnVsbDtcclxuICBzYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlID0gbnVsbDtcclxuXHJcbiAgcmVzdWx0U2V0cyA9IFtdO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBldmFsdWF0b3JTZXJ2aWNlIDogRXZhbHVhdG9yc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG51eGVvU2VydmljZSA6IE51eGVvU2VydmljZSxcclxuICAgIHByaXZhdGUgZ2xvYmFsQWRtaW5TZXJ2aWNlIDogR2xvYmFsQWRtaW5TZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50LFxyXG4gICAgcHVibGljIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyXHJcbiAgKSB7IFxyXG4gICAgdGhpcy5ldmFsdWF0b3JTZXJ2aWNlLmV2YWx1YXRlUnVsZSgnZW5hYmxlU2VhcmNoVG9nZ2xlcycgLCB7fSkudGhlbihyZXMgPT4ge1xyXG4gICAgICB0aGlzLnVzZVRvZ2dsZUZpbHRlcnMgPSByZXM7XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYoY2hhbmdlcy5vcGVuQ2xvc2VGaWx0ZXJGcm9tT3V0c2lkZSkge1xyXG4gICAgICB0aGlzLm9wZW5GaWx0ZXIgPSBjaGFuZ2VzLm9wZW5DbG9zZUZpbHRlckZyb21PdXRzaWRlLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgXHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKHRoaXMuY29uc3RydWN0UGFyYW1zRnVuY3Rpb24odGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcykpO1xyXG4gICAgdGhpcy5zZWFyY2hJbnB1dFBvcHVsYXRlKCk7XHJcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICAodGhpcy50ZXh0ICE9PSBwYXJhbXNbJ3NlYXJjaF9xdWVyeSddICYmIHBhcmFtc1snc2VhcmNoX3F1ZXJ5J10pIHx8XHJcbiAgICAgICAgKHBhcmFtc1snc2VhcmNoX3F1ZXJ5J10/Lmxlbmd0aCA9PSAwICYmIHRoaXMudGV4dCAhPT0gcGFyYW1zWydzZWFyY2hfcXVlcnknXSB8fCBcclxuICAgICAgICAodGhpcy51c2VUb2dnbGVGaWx0ZXJzICYmIHRoaXMucXVpY2tGaWx0ZXJzICE9PSBwYXJhbXNbJ3F1aWNrRmlsdGVycyddKSkgXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlUXVlcnlQYXJhbXModGhpcy5jb25zdHJ1Y3RQYXJhbXNGdW5jdGlvbihwYXJhbXMpKTtcclxuICAgICAgICB0aGlzLnNlYXJjaElucHV0UG9wdWxhdGUoKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnQoKTtcclxuICAgIFxyXG4gICB0aGlzLnNlYXJjaEZvcm0uZ2V0KCd0ZXh0JykudmFsdWVDaGFuZ2VzLnBpcGUoXHJcbiAgICBkZWJvdW5jZVRpbWUoNTAwKSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgIHRoaXMuc2VhcmNoKHJlcykuc3Vic2NyaWJlKHJlc3VsdHMgPT4ge1xyXG4gICAgICAgIHRoaXMucmVzdWx0U2V0cyA9IHJlc3VsdHM7XHJcbiAgICAgIH0pXHJcbiAgIH0pXHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RQYXJhbXNGdW5jdGlvbihwYXJhbXMpe1xyXG4gICAgbGV0IGNvbnRydWN0ZWRQYXJtcyA9IHt9O1xyXG4gICAgdGhpcy50ZXh0ID0gcGFyYW1zWydzZWFyY2hfcXVlcnknXTtcclxuICAgIGlmKHRoaXMudGV4dC50cmltKCkpe1xyXG4gICAgICBpZih0aGlzLnVzZVRvZ2dsZUZpbHRlcnMpe1xyXG4gICAgICAgIGlmKHBhcmFtc1sncXVpY2tGaWx0ZXJzJ10pe1xyXG4gICAgICAgICAgdGhpcy5xdWlja0ZpbHRlcnMgPSBwYXJhbXNbJ3F1aWNrRmlsdGVycyddIDtcclxuICAgICAgICAgIGNvbnRydWN0ZWRQYXJtcyA9IHsgW3RoaXMuZnVsbFRleHRQYXJhbU5hbWVdIDogdGhpcy50ZXh0KycqJyAsIHF1aWNrRmlsdGVycyA6IHRoaXMucXVpY2tGaWx0ZXJzfVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgdGhpcy5xdWlja0ZpbHRlcnMgPSAnJztcclxuICAgICAgICAgIGNvbnRydWN0ZWRQYXJtcyA9IHsgW3RoaXMuZnVsbFRleHRQYXJhbU5hbWVdIDogdGhpcy50ZXh0KycqJyAsIHF1aWNrRmlsdGVycyA6ICcnfVxyXG4gICAgICAgIH1cclxuICAgICAgfWVsc2V7XHJcbiAgICAgICAgY29udHJ1Y3RlZFBhcm1zID0geyBbdGhpcy5mdWxsVGV4dFBhcmFtTmFtZV0gOiB0aGlzLnRleHQrJyonfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGNvbnRydWN0ZWRQYXJtcztcclxuICB9XHJcbiAgdXBkYXRlUXVlcnlQYXJhbXMobmV3UXVlcnlwYXJhbXM6IG9iamVjdCkge1xyXG4gICAgdGhpcy5xdWVyeVBhcmFtcyA9IHtcclxuICAgICAgLi4udGhpcy5xdWVyeVBhcmFtcyxcclxuICAgICAgLi4ubmV3UXVlcnlwYXJhbXMsXHJcbiAgICB9O1xyXG4gIH1cclxuICBcclxuICBzZWFyY2hJbnB1dFBvcHVsYXRlKCkge1xyXG4gICAgaWYodGhpcy51c2VUb2dnbGVGaWx0ZXJzKXtcclxuICAgICAgdGhpcy5zZWFyY2hGb3JtLnBhdGNoVmFsdWUoe1xyXG4gICAgICAgIHRleHQ6IHRoaXMudGV4dCxcclxuICAgICAgICBwZXJzb25hbEZpbGVzIDogKHRoaXMucXVpY2tGaWx0ZXJzID09PSAncGVyc29uYWxGaWx0ZXInICkgPyB0cnVlIDogKHRoaXMuc2F2ZWRQZXJzRmlsdGVyVmFsdWUgIT09IG51bGwpID8gdGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSA6IGZhbHNlLFxyXG4gICAgICAgIGRlcEZpbGVzIDogKHRoaXMucXVpY2tGaWx0ZXJzID09PSAnZGVwYXJ0bWVudEZpbHRlcicpID8gdHJ1ZSA6ICh0aGlzLnNhdmVkRGVwRmlsdGVyVmFsdWUgIT09IG51bGwpID8gdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlIDogZmFsc2UgLFxyXG4gICAgICAgIHdvcmtTcGFjZUZpbGVzIDogKHRoaXMucXVpY2tGaWx0ZXJzID09PSAnZGVwYXJ0bWVudFdvcmtTcGFjZUZpbHRlcicpID8gdHJ1ZSA6ICh0aGlzLnNhdmVkd29ya1NwYWNlRmlsdGVyVmFsdWUgIT09IG51bGwpID8gdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlIDogZmFsc2UgXHJcblxyXG4gICAgICB9KTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnNlYXJjaEZvcm0ucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgdGV4dDogdGhpcy50ZXh0LFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEZpbHRlclNlbGVjdGVkKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5maWx0ZXJzID0geyAuLi50aGlzLmZpbHRlcnMsIC4uLnZhbC5maWx0ZXIgfTsgLy9zdG9yZSBmaWx0ZXJzXHJcbiAgICB0aGlzLnVwZGF0ZVF1ZXJ5UGFyYW1zKHRoaXMuZmlsdGVycyk7XHJcbiAgfVxyXG5cclxuICBwYWdpbmF0aW9uQ2hhbmdlKGV2ZW50KSB7IH1cclxuXHJcbiAgZ2V0VGFibGVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgdGhpcy5hZ2dyZWdhdGlvbnMgPSBPYmplY3QuZW50cmllcyhkYXRhLmFnZ3JlZ2F0aW9ucyB8fCB7fSkubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIHJldHVybiBpdGVtWzFdO1xyXG4gICAgfSk7XHJcbiAgICAvLyB0aGlzLmFnZ3JlZ2F0aW9ucyA9IHRoaXMuYWdncmVnYXRpb25zLmZpbHRlcigoaXRlbSkgPT5cclxuICAgIC8vICAgdGhpcy5zb3J0aW5nQXJyYXkuaW5jbHVkZXMoaXRlbS5pZClcclxuICAgIC8vICk7XHJcbiAgICBsZXQgdXBkYXRlZEFnZ3JlZ2F0aW9uID0gW107XHJcbiAgICB0aGlzLmFnZ3JlZ2F0aW9ucy5tYXAoYWdncmVnID0+IHtcclxuICAgICAgdGhpcy5zb3J0aW5nQXJyYXkubWFwKHNvcnRUeXBlID0+IHtcclxuICAgICAgICBpZihzb3J0VHlwZS5pZCA9PT0gYWdncmVnLmlkKXtcclxuICAgICAgICAgIGFnZ3JlZ1snY29tcG9uZW50VHlwZSddID0gc29ydFR5cGUuY29tcG9lbmVudFR5cGU7XHJcbiAgICAgICAgICAvLyBpbiBjYXNlIG9mIGN1c3RvbSBjb21wb25lbnQgbmVlZCB0byBjYWxsIHBhZ2UgcHJvdmlkZXIgdG8gZ2V0IGRhdGEgXHJcbiAgICAgICAgICBpZihzb3J0VHlwZS5jb21wb2VuZW50VHlwZSA9PT0gJ2N1c3RvbS1wcCcgfHwgc29ydFR5cGUuY29tcG9lbmVudFR5cGUgPT09ICdjdXN0b20tZG9jdW1lbnQnIHx8IHNvcnRUeXBlLmNvbXBvZW5lbnRUeXBlID09PSAnY3VzdG9tLWRlcGFydG1lbnQnKXtcclxuICAgICAgICAgICAgYWdncmVnWydjdXN0b21QYWdlUHJvdmlkZXInXSA9IHNvcnRUeXBlLnBhZ2VQcm92aWRlcixcclxuICAgICAgICAgICAgYWdncmVnWydjb25maWcnXSA9IHNvcnRUeXBlLmNvbmZpZ1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdXBkYXRlZEFnZ3JlZ2F0aW9uLnB1c2goYWdncmVnKVxyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0pXHJcbiAgICB0aGlzLmFnZ3JlZ2F0aW9ucyA9IF8uc29ydEJ5KHVwZGF0ZWRBZ2dyZWdhdGlvbiwgKGl0ZW0pID0+IHtcclxuICAgICAgbGV0IGkgPSAtMTtcclxuICAgICAgIHRoaXMuc29ydGluZ0FycmF5Lm1hcCgoc29ydFR5cGUgLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICBpZihzb3J0VHlwZS5pZCA9PT0gaXRlbS5pZCl7XHJcbiAgICAgICAgICAgaSA9IGluZGV4O1xyXG4gICAgICAgICB9XHJcbiAgICAgICB9KTtcclxuICAgICAgIHJldHVybiBpO1xyXG4gICAgfSk7XHJcbiAgICBjb25zb2xlLmxvZygnYWdncmVnYXRpb25zJywgdGhpcy5hZ2dyZWdhdGlvbnMpO1xyXG4gICAgdGhpcy50b3RhbFJlY29yZHMgPSBkYXRhLnRvdGFsU2l6ZTtcclxuICB9XHJcblxyXG4gIHN1Ym1pdEZvcm0oKSB7XHJcbiAgICBsZXQgcGFyYW1zID0ge30gO1xyXG4gICAgaWYodGhpcy51c2VUb2dnbGVGaWx0ZXJzKXtcclxuICAgICAgcGFyYW1zID0ge1xyXG4gICAgICAgIHNlYXJjaF9xdWVyeTogdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLnRleHQudmFsdWUsXHJcbiAgICAgICAgcXVpY2tGaWx0ZXJzIDogdGhpcy5nZXRUb2dnbGVGaWx0ZXJzKClcclxuICAgICAgfVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHBhcmFtcyA9IHtcclxuICAgICAgICBzZWFyY2hfcXVlcnk6IHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy50ZXh0LnZhbHVlLFxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy4nXSwge1xyXG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlLFxyXG4gICAgICBxdWVyeVBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUb2dnbGVGaWx0ZXJzKCkge1xyXG4gICAgdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlID0gdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLmRlcEZpbGVzLnZhbHVlO1xyXG4gICAgdGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSA9IHRoaXMuc2VhcmNoRm9ybS5jb250cm9scy5wZXJzb25hbEZpbGVzLnZhbHVlO1xyXG4gICAgdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlID0gdGhpcy5zZWFyY2hGb3JtLmNvbnRyb2xzLndvcmtTcGFjZUZpbGVzLnZhbHVlO1xyXG4gICAgaWYgKCh0aGlzLnNhdmVkUGVyc0ZpbHRlclZhbHVlICYmIHRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSAmJiB0aGlzLnNhdmVkd29ya1NwYWNlRmlsdGVyVmFsdWUpXHJcbiAgICAgIHx8ICghdGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSAmJiAhdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlICYmICF0aGlzLnNhdmVkd29ya1NwYWNlRmlsdGVyVmFsdWUpKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSBpZiAodGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSAmJiAhdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlICYmICF0aGlzLnNhdmVkd29ya1NwYWNlRmlsdGVyVmFsdWUpIHtcclxuICAgICAgcmV0dXJuIFwicGVyc29uYWxGaWx0ZXJcIjtcclxuXHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnNhdmVkUGVyc0ZpbHRlclZhbHVlICYmIHRoaXMuc2F2ZWREZXBGaWx0ZXJWYWx1ZSAmJiAhdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBcImRlcGFydG1lbnRGaWx0ZXJcIjtcclxuXHJcbiAgICB9IGVsc2UgaWYgKCF0aGlzLnNhdmVkUGVyc0ZpbHRlclZhbHVlICYmICF0aGlzLnNhdmVkRGVwRmlsdGVyVmFsdWUgJiYgdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBcImRlcGFydG1lbnRXb3JrU3BhY2VGaWx0ZXJcIjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc2F2ZWRQZXJzRmlsdGVyVmFsdWUgJiYgdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlICYmICF0aGlzLnNhdmVkd29ya1NwYWNlRmlsdGVyVmFsdWUpIHtcclxuICAgICAgcmV0dXJuIFwiZGVwYXJ0bWVudFBlcnNvbmFsRmlsdGVyXCI7XHJcblxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSAmJiAhdGhpcy5zYXZlZERlcEZpbHRlclZhbHVlICYmIHRoaXMuc2F2ZWR3b3JrU3BhY2VGaWx0ZXJWYWx1ZSkge1xyXG4gICAgICByZXR1cm4gXCJwZXJzb25hbERlcGFydG1lbnRXb3JrU3BhY2VGaWx0ZXJcIjtcclxuXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICghdGhpcy5zYXZlZFBlcnNGaWx0ZXJWYWx1ZSAmJiB0aGlzLnNhdmVkRGVwRmlsdGVyVmFsdWUgJiYgdGhpcy5zYXZlZHdvcmtTcGFjZUZpbHRlclZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBcImRlcHREZXBhdG1lbnRXb3JrU3BhY2VGaWx0ZXJcIjtcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRPcHRpb25WYWx1ZShzZWFyY2hlZFRleHQpe1xyXG4gICAgdGhpcy5zZWFyY2hGb3JtLmdldCgndGV4dCcpLnNldFZhbHVlKHNlYXJjaGVkVGV4dCk7XHJcbiAgICB0aGlzLnN1Ym1pdEZvcm0oKTtcclxuICB9XHJcbiAgb25PcGVuRmlsdGVyKCkge1xyXG4gICAgdGhpcy5vcGVuRmlsdGVyID0gIXRoaXMub3BlbkZpbHRlcjtcclxuICB9XHJcblxyXG4gIGJyZWFrcG9pbnQoKSB7XHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxyXG4gICAgICAub2JzZXJ2ZShbJyhtaW4td2lkdGg6IDEyMDBweCknXSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC5tYXRjaGVzKSB7XHJcbiAgICAgICAgICB0aGlzLm9wZW5GaWx0ZXIgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcGVyZm9ybUFjdGlvbihhY3Rpb24pe1xyXG4gICAgdGhpcy5hY3Rpb25PblJvdy5lbWl0KGFjdGlvbik7XHJcbiAgfVxyXG5cclxuICBzZWFyY2godGVybTogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXM9IHtcclxuICAgICAgc2VhcmNoVGVybTogdGVybVxyXG4gICAgfVxyXG4gICAgaWYodGhpcy5nbG9iYWxBZG1pblNlcnZpY2UuaXNHbG9iYWxBZG1pbil7XHJcbiAgICAgIHBhcmFtc1sncGF0aCddID0gJy8nICsgdGhpcy5nbG9iYWxBZG1pblNlcnZpY2UuYWN0aXZlVGVuYW50ICsgJy8nXHJcbiAgICB9ZWxzZSBpZighdGhpcy5nbG9iYWxBZG1pblNlcnZpY2UuaXNHbG9iYWxBZG1pbiAmJiB0aGlzLm51eGVvU2VydmljZS5udXhlb0NsaWVudC51c2VyLnByb3BlcnRpZXMudGVuYW50SWQpe1xyXG4gICAgICBwYXJhbXNbJ3BhdGgnXSA9ICcvJyArIHRoaXMubnV4ZW9TZXJ2aWNlLm51eGVvQ2xpZW50LnVzZXIucHJvcGVydGllcy50ZW5hbnRJZCArICcvJ1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZyb20oXHJcbiAgICAgICAgdGhpcy5udXhlb1NlcnZpY2UubnV4ZW9DbGllbnRcclxuICAgICAgICAgICAgLm9wZXJhdGlvbigodGhpcy5zdWdnZXN0ZXJBcGkgPyB0aGlzLnN1Z2dlc3RlckFwaSA6ICdTZWFyY2guQ3VzdG9tU3VnZ2VzdGVyc0xhdW5jaGVyJyksIHtcclxuICAgICAgICAgICAgICAgIHVybDogYCR7dGhpcy5lbnZpcm9ubWVudC5udXhlb30ke3RoaXMuZW52aXJvbm1lbnQuY3VzdG9tQXV0b21hdGlvbn1gLFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAucGFyYW1zKHtcclxuICAgICAgICAgICAgICAgIC4uLnBhcmFtc1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuY29udGV4dCh7fSlcclxuICAgICAgICAgICAgLmV4ZWN1dGUoKVxyXG4gICAgKTtcclxufVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCIhY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNlYXJjaC10b29sYmFyIGQtbWQtZmxleCBkLXhsLW5vbmUgbXgtM1wiPlxyXG4gICAgPGJ1dHRvbiAoY2xpY2spPVwib25PcGVuRmlsdGVyKClcIiBjbGFzcz1cIm15LWJ1dHRvblwiPlxyXG4gICAgICA8c3Bhbj4ge3sgXCJGSUxURVJcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgICAgPGkgY2xhc3M9XCJiaSBiaS1maWx0ZXJcIiAqbmdJZj1cIiFvcGVuRmlsdGVyXCI+PC9pPlxyXG4gICAgICA8aSBjbGFzcz1cImJpIGJpLXhcIiAqbmdJZj1cIm9wZW5GaWx0ZXJcIj48L2k+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgKm5nSWY9XCJvcGVuRmlsdGVyXCI+XHJcbiAgICAgIDxpIGNsYXNzPVwiYmkgYmktY2FyZXQtdXAtZmlsbCBhcnJvdy11cFwiPjwvaT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy1jb250YWluZXIgKm5nSWY9XCJjdXN0b21SZXNwb25zaXZlU3R5bGVcIj5cclxuICA8ZGl2IGNsYXNzPVwiY3VzdG9tU3R5bGUgLW10LTEyIHB4LTggZmxleCBmbGV4LWNvbFwiXHJcbiAgICBbbmdDbGFzc109XCJ7J2JnLWFjY2VudC0yMDAnOiB0aGVtZSA9PT0gJ2RnZGEnLCdiZy1hY2NlbnQtMTAwJzogdGhlbWUgPT09ICdrc3JlbGVpZicgfHwgdGhlbWUgPT09ICdjb21wdGVjaGNvJ31cIlxyXG4gICAgW0Bjb2xsYXBzZV09XCIhb3BlbkZpbHRlclwiPlxyXG4gICAgPCEtLSA8Zm9ybVxyXG4gICAgICAgIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiXHJcbiAgICAgICAgY2xhc3M9XCJzZWFyY2gtZm9ybVwiXHJcbiAgICAgICAgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIGNsYXNzPVwic2VhcmNoLWlucHV0XCJcclxuICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRleHRcIlxyXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2guc2VhcmNoJyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICA8ZGl2IChjbGljayk9XCJzdWJtaXRGb3JtKClcIiBjbGFzcz1cInNlYXJjaC1pY29uIGJpIGJpLXNlYXJjaFwiPjwvZGl2PlxyXG4gICAgICA8L2Zvcm0+IC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZ2FwLXgtMTggZmxleC1yb3cgbXQtNSBwYi0zIG92ZXJmbG93LXgtYXV0b1wiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb25zOyBlbHNlIHByb2dyZXNzU3Bpbm5lclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbnMubGVuZ3RoOyBlbHNlIG5vQWdncmVnYXRpb25zXCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhZ2dyZWdhdGlvbiBvZiBhZ2dyZWdhdGlvbnNcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgIDxjdHMtZHluYW1pYy1maWx0ZXIgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiIFtmaWx0ZXJzXT1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHNcIiBbaWRdPVwiYWdncmVnYXRpb24uaWRcIlxyXG4gICAgICAgICAgICAgICAgW3NlbGVjdGlvbnNdPVwiYWdncmVnYXRpb24uc2VsZWN0aW9uXCIgW3RpdGxlXT1cImFnZ3JlZ2F0aW9uLmZpZWxkXCIgW3ByZWZpeF09XCInc2VhcmNoJ1wiIFtkZXBhcnRtZW50XT1cIlxyXG4gICAgICAgICAgICAgICAgICAgIGFnZ3JlZ2F0aW9uLmZpZWxkID09PSAnY29ycjp0bycgfHxcclxuICAgICAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6ZnJvbSdcclxuICAgICAgICAgICAgICAgICAgXCIgW2NvbXBvbmVudFR5cGVdPVwiYWdncmVnYXRpb24uY29tcG9uZW50VHlwZSA/IGFnZ3JlZ2F0aW9uLmNvbXBvbmVudFR5cGUgOiAnZGVmdWx0J1wiXHJcbiAgICAgICAgICAgICAgICBbY3VzdG9tUGFnZVByb3ZpZGVyXT1cImFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA/IGFnZ3JlZ2F0aW9uLmN1c3RvbVBhZ2VQcm92aWRlciA6ICcnXCJcclxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiYWdncmVnYXRpb24uY29uZmlnID8gYWdncmVnYXRpb24uY29uZmlnIDoge31cIiAob25GaWx0ZXJTZWxlY3RlZCk9XCJGaWx0ZXJTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1maWx0ZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG5cclxuPGRpdiBjbGFzcz1cInJvdyB3cmFwcGVyXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjdXN0b21SZXNwb25zaXZlU3R5bGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwb3B1cC1maWx0ZXIgcHgtMyBkLWZsZXggZC14bC1ub25lXCIgKm5nSWY9XCJvcGVuRmlsdGVyXCI+XHJcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2VhcmNoRm9ybVwiIGNsYXNzPVwic2VhcmNoLWZvcm1cIiAobmdTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCI+XHJcbiAgICAgICAgPGlucHV0IGNsYXNzPVwic2VhcmNoLWlucHV0XCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZXh0XCIgW21hdEF1dG9jb21wbGV0ZV09XCJtYXRBdXRvY29tcGxldGUxXCIgW3BsYWNlaG9sZGVyXT1cIidzZWFyY2guc2VhcmNoJyB8IHRyYW5zbGF0ZVwiIC8+XHJcbiAgICAgICAgPGRpdiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCIgY2xhc3M9XCJzZWFyY2gtaWNvbiBiaSBiaS1zZWFyY2hcIj48L2Rpdj5cclxuICAgICAgPC9mb3JtPlxyXG4gICAgICA8bWF0LWF1dG9jb21wbGV0ZVxyXG4gICAgICBjbGFzcz1cIlxyXG4gICAgICAgICBhdXRvLWNvbXBsZXRlLWluZXItd3JhcHBlclxyXG4gICAgICAgICAgYXV0by1jb21wbGV0ZS13cmFwcGVyXHJcbiAgICAgIFwiXHJcbiAgICAgIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIlxyXG4gICAgICAjbWF0QXV0b2NvbXBsZXRlMT1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgPlxyXG4gICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgY2xhc3M9XCJuby10ZXh0XCJcclxuICAgICAgICAgICpuZ0lmPVwicmVzdWx0U2V0cyAmJiAhcmVzdWx0U2V0cy5sZW5ndGhcIlxyXG4gICAgICA+XHJcbiAgICAgICAgICB7eydub19yZXN1bHRfZm91bmQnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZXN1bHRTZXQgb2YgcmVzdWx0U2V0c1wiPlxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gIChjbGljayk9XCJzZXRPcHRpb25WYWx1ZShyZXN1bHRTZXQubGFiZWwpXCI+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24taW5lci10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgPnt7IHJlc3VsdFNldC5sYWJlbCB9fTwvc3BhblxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbiA+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbnM7IGVsc2UgcHJvZ3Jlc3NTcGlubmVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFnZ3JlZ2F0aW9ucy5sZW5ndGg7IGVsc2Ugbm9BZ2dyZWdhdGlvbnNcIj5cclxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0aW9uc1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWdncmVnYXRpb24uYnVja2V0cy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWZpbHRlciBbZW50aXR5VHlwZV09XCJlbnRpdHlUeXBlXCIgW2ZpbHRlcnNdPVwiYWdncmVnYXRpb24uYnVja2V0c1wiIFtpZF09XCJhZ2dyZWdhdGlvbi5pZFwiXHJcbiAgICAgICAgICAgICAgICBbc2VsZWN0aW9uc109XCJhZ2dyZWdhdGlvbi5zZWxlY3Rpb25cIiBbdGl0bGVdPVwiYWdncmVnYXRpb24uZmllbGRcIiBbcHJlZml4XT1cIidzZWFyY2gnXCIgW2RlcGFydG1lbnRdPVwiXHJcbiAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6dG8nIHx8XHJcbiAgICAgICAgICAgICAgICBhZ2dyZWdhdGlvbi5maWVsZCA9PT0gJ2NvcnI6ZnJvbSdcclxuICAgICAgICAgICAgICBcIiBbY29tcG9uZW50VHlwZV09XCJhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlID8gYWdncmVnYXRpb24uY29tcG9uZW50VHlwZSA6ICdkZWZ1bHQnXCJcclxuICAgICAgICAgICAgICAgIFtjdXN0b21QYWdlUHJvdmlkZXJdPVwiYWdncmVnYXRpb24uY3VzdG9tUGFnZVByb3ZpZGVyID8gYWdncmVnYXRpb24uY3VzdG9tUGFnZVByb3ZpZGVyIDogJydcIlxyXG4gICAgICAgICAgICAgICAgW2NvbmZpZ109XCJhZ2dyZWdhdGlvbi5jb25maWcgPyBhZ2dyZWdhdGlvbi5jb25maWcgOiB7fVwiIChvbkZpbHRlclNlbGVjdGVkKT1cIkZpbHRlclNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICA8L2N0cy1keW5hbWljLWZpbHRlcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbC14bC0zIHNlYXJjaC1zaWRlTWVudSBkLW5vbmUgZC14bC1ibG9ja1wiPlxyXG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCIgY2xhc3M9XCJzZWFyY2gtZm9ybVwiIChuZ1N1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIj5cclxuICAgICAgPGlucHV0IGNsYXNzPVwic2VhcmNoLWlucHV0XCIgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJ0ZXh0XCIgW21hdEF1dG9jb21wbGV0ZV09XCJtYXRBdXRvY29tcGxldGUyXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlYXJjaC5zZWFyY2gnIHwgdHJhbnNsYXRlXCIgLz5cclxuICAgICAgPGRpdiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCIgY2xhc3M9XCJzZWFyY2gtaWNvbiBiaSBiaS1zZWFyY2hcIj48L2Rpdj5cclxuICAgIDwvZm9ybT5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlIGNsYXNzPVwiXHJcbiAgICAgICBhdXRvLWNvbXBsZXRlLWluZXItd3JhcHBlclxyXG4gICAgICAgIGF1dG8tY29tcGxldGUtd3JhcHBlclxyXG4gICAgXCIgW2Rpc2FibGVSaXBwbGVdPVwidHJ1ZVwiICNtYXRBdXRvY29tcGxldGUyPVwibWF0QXV0b2NvbXBsZXRlXCI+XHJcbiAgICAgIDxtYXQtb3B0aW9uIGNsYXNzPVwibm8tdGV4dFwiICpuZ0lmPVwicmVzdWx0U2V0cyAmJiAhcmVzdWx0U2V0cy5sZW5ndGhcIj5cclxuICAgICAgICB7eydub19yZXN1bHRfZm91bmQnIHwgdHJhbnNsYXRlfX1cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZXN1bHRTZXQgb2YgcmVzdWx0U2V0c1wiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uIChjbGljayk9XCJzZXRPcHRpb25WYWx1ZShyZXN1bHRTZXQubGFiZWwpXCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm9wdGlvbi1pbmVyLXRleHRcIj57eyByZXN1bHRTZXQubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbnM7IGVsc2UgcHJvZ3Jlc3NTcGlubmVyXCI+XHJcbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGFnZ3JlZ2F0aW9uIG9mIGFnZ3JlZ2F0aW9uc1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhZ2dyZWdhdGlvbi5idWNrZXRzLmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgIDxjdHMtZHluYW1pYy1maWx0ZXIgW2VudGl0eVR5cGVdPVwiZW50aXR5VHlwZVwiIFtmaWx0ZXJzXT1cImFnZ3JlZ2F0aW9uLmJ1Y2tldHNcIiBbaWRdPVwiYWdncmVnYXRpb24uaWRcIlxyXG4gICAgICAgICAgICBbc2VsZWN0aW9uc109XCJhZ2dyZWdhdGlvbi5zZWxlY3Rpb25cIiBbdGl0bGVdPVwiYWdncmVnYXRpb24uZmllbGRcIiBbcHJlZml4XT1cIidzZWFyY2gnXCIgW2RlcGFydG1lbnRdPVwiXHJcbiAgICAgICAgICAgICAgYWdncmVnYXRpb24uZmllbGQgPT09ICdjb3JyOnRvJyB8fFxyXG4gICAgICAgICAgICAgIGFnZ3JlZ2F0aW9uLmZpZWxkID09PSAnY29ycjpmcm9tJ1xyXG4gICAgICAgICAgICBcIiBbY29tcG9uZW50VHlwZV09XCJhZ2dyZWdhdGlvbi5jb21wb25lbnRUeXBlID8gYWdncmVnYXRpb24uY29tcG9uZW50VHlwZSA6ICdkZWZ1bHQnXCJcclxuICAgICAgICAgICAgW2N1c3RvbVBhZ2VQcm92aWRlcl09XCJhZ2dyZWdhdGlvbi5jdXN0b21QYWdlUHJvdmlkZXIgPyBhZ2dyZWdhdGlvbi5jdXN0b21QYWdlUHJvdmlkZXIgOiAnJ1wiXHJcbiAgICAgICAgICAgIFtjb25maWddPVwiYWdncmVnYXRpb24uY29uZmlnID8gYWdncmVnYXRpb24uY29uZmlnIDoge31cIiAob25GaWx0ZXJTZWxlY3RlZCk9XCJGaWx0ZXJTZWxlY3RlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L2N0cy1keW5hbWljLWZpbHRlcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImNvbC0xMiBjb2wteGwtOVwiPlxyXG4gICAgPGFwcC1jYXJkPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGl0bGVcIj5cclxuICAgICAgICA8aDM+XHJcbiAgICAgICAgICB7eyBcInNlYXJjaC5oZWFkZXJcIiB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICAgIDwvaDM+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYm9keVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJhZ2dyZWdhdGlvbnNcIiBjbGFzcz1cInRhYmxlLXRvb2xiYXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXN1bHQtY291bnRcIj5cclxuICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICBcInNlYXJjaC5cIiArIFwicmVzdWx0c051bWJlclwiXHJcbiAgICAgICAgICAgICAgfCB0cmFuc2xhdGU6IHsgdmFsdWU6IHRvdGFsUmVjb3JkcyA/IHRvdGFsUmVjb3JkcyA6IDAgfVxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGZvcm0gY2xhc3M9XCJkLWZsZXgganVzdGlmeS1iZXR3ZWVuXCIgW2Zvcm1Hcm91cF09XCJzZWFyY2hGb3JtXCIgKG5nU3VibWl0KT1cInN1Ym1pdEZvcm0oKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ1c2VUb2dnbGVGaWx0ZXJzICYmICFjdXN0b21SZXNwb25zaXZlU3R5bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VzdG9tUmVzcG9uc2l2ZVN0eWxlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLWZvcm0gY3VzdG9tLXJlc3BvbnNpdmUtc2VhcmNoXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cInNlYXJjaC1pbnB1dFwiIHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwidGV4dFwiIFttYXRBdXRvY29tcGxldGVdPVwibWF0QXV0b2NvbXBsZXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3NlYXJjaC5zZWFyY2gnIHwgdHJhbnNsYXRlXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPGRpdiAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCIgY2xhc3M9XCJzZWFyY2gtaWNvbiBiaSBiaS1zZWFyY2hcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPG1hdC1hdXRvY29tcGxldGVcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiXHJcbiAgICAgICAgICAgICAgICAgICBhdXRvLWNvbXBsZXRlLWluZXItd3JhcHBlclxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG8tY29tcGxldGUtd3JhcHBlclxyXG4gICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgI21hdEF1dG9jb21wbGV0ZT1cIm1hdEF1dG9jb21wbGV0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJuby10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJlc3VsdFNldHMgJiYgIXJlc3VsdFNldHMubGVuZ3RoXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7e25vX3Jlc3VsdF9mb3VuZCB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCByZXN1bHRTZXQgb2YgcmVzdWx0U2V0c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICAoY2xpY2spPVwic2V0T3B0aW9uVmFsdWUocmVzdWx0U2V0LmxhYmVsKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJvcHRpb24taW5lci10ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyByZXN1bHRTZXQubGFiZWwgfX08L3NwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LW9wdGlvbiA+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4XCIgKm5nSWY9XCJ1c2VUb2dnbGVGaWx0ZXJzXCI+XHJcbiAgICAgICAgICAgICAgICA8Y3RzLWR5bmFtaWMtZm9ybS1zbGlkZS10b2dnbGVpdGVtIGNsYXNzPVwibXgtMiBzbWFsbC1mb250XCIgW2xhYmVsXT1cIidzZWFyY2guUEVSU09OQUxfRklMRVMnXCJcclxuICAgICAgICAgICAgICAgICAgKG9uVG9nZ2xlKT1cInN1Ym1pdEZvcm0oKVwiIGZvcm1Db250cm9sTmFtZT1cInBlcnNvbmFsRmlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtZm9ybS1zbGlkZS10b2dnbGVpdGVtPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbSBjbGFzcz1cIm14LTIgc21hbGwtZm9udFwiIFtsYWJlbF09XCInc2VhcmNoLkRFUF9GSUxFUydcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXBGaWxlc1wiIChvblRvZ2dsZSk9XCJzdWJtaXRGb3JtKClcIj5cclxuICAgICAgICAgICAgICAgIDwvY3RzLWR5bmFtaWMtZm9ybS1zbGlkZS10b2dnbGVpdGVtPlxyXG4gICAgICAgICAgICAgICAgPGN0cy1keW5hbWljLWZvcm0tc2xpZGUtdG9nZ2xlaXRlbSBjbGFzcz1cIm14LTIgc21hbGwtZm9udFwiIFtsYWJlbF09XCInc2VhcmNoLldPUktTUEFDRV9GSUxFUydcIlxyXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwid29ya1NwYWNlRmlsZXNcIiAob25Ub2dnbGUpPVwic3VibWl0Rm9ybSgpXCI+XHJcbiAgICAgICAgICAgICAgPC9jdHMtZHluYW1pYy1mb3JtLXNsaWRlLXRvZ2dsZWl0ZW0+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxjdHMtZHluYW1pYy10YWJsZSBbcGFnZVNpemVdPVwicGFnZVNpemVcIiBbY29sdW1uc109XCJjb2x1bW5zXCIgW3Jlc3BvbnNpdmVDb2x1bW5zXT1cInJlc3BvbnNpdmVDb2x1bW5zXCJcclxuICAgICAgICAgIFtwYWdlUHJvdmlkZXJdPVwicGFnZVByb3ZpZGVyXCIgW3F1aWNrRmlsdGVyXT1cImZpbHRlclwiIFtlbnRpdHlUeXBlXT1cImVudGl0eVR5cGVcIiBbZmllbGRzXT1cImZpZWxkc1wiXHJcbiAgICAgICAgICBbcXVlcnlQYXJhbV09XCJxdWVyeVBhcmFtc1wiIFtoZWFkZXJzXT1cImhlYWRlcnNcIiBbcHJlZml4XT1cInByZWZpeFwiIFtzb3J0aW5nQnldPVwic29ydGluZ0J5XCIgW2lzU2VhcmNoUGFnZV09XCJ0cnVlXCJcclxuICAgICAgICAgIChvblJvd1NlbGVjdGVkKT1cIm9uUm93U2VsZWN0ZWQoJGV2ZW50KVwiIChhY3Rpb25PblJvdyk9XCJwZXJmb3JtQWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgKG9uR2V0dGluZ0RhdGEpPVwiZ2V0VGFibGVEYXRhKCRldmVudClcIj48L2N0cy1keW5hbWljLXRhYmxlPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvYXBwLWNhcmQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjcHJvZ3Jlc3NTcGlubmVyPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLXNwaW5uZXJcIj5cclxuICAgICAgPG1hdC1zcGlubmVyIGNvbG9yPVwid2FyblwiIFtkaWFtZXRlcl09XCIyNVwiPjwvbWF0LXNwaW5uZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG4gIDxuZy10ZW1wbGF0ZSAjbm9BZ2dyZWdhdGlvbnM+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3Mtc3Bpbm5lclwiPlxyXG4gICAgICB7eyBcInNlYXJjaC5ub0FnZ3JlZ2F0aW9uc1wiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj4iXX0=
@@ -7880,7 +7880,7 @@ class DynamicFormDepartmentComponent {
7880
7880
  }
7881
7881
  }
7882
7882
  DynamicFormDepartmentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicFormDepartmentComponent, deps: [{ token: TranslationService$1 }, { token: DepartmentApiService }, { token: i6.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
7883
- DynamicFormDepartmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", label: "label", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", pp_departmentTree: "pp_departmentTree", customPrefix: "customPrefix", useCustomAddEditAction: "useCustomAddEditAction", customParentProperty: "customParentProperty", customParams: "customParams" }, outputs: { onSelecting: "onSelecting", actionClicked: "actionClicked" }, ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-treeview-select\r\n [treeview]=\"treeview\"\r\n [treeViewAsFormControl]=\"treeViewAsFormControl\"\r\n [defaultSelect]=\"defaultSelect\"\r\n [multiple]=\"multiple\"\r\n [items]=\"data\"\r\n [pp_departmentNestedTree]=\"pp_departmentNestedTree\"\r\n [useCustomAddEditAction]=\"useCustomAddEditAction\"\r\n [customPrefix]=\"customPrefix\"\r\n [customParentProperty]=\"customParentProperty\"\r\n (valueChange)=\"getSelecteditems($event)\"\r\n [(value)]=\"selection\"\r\n (actionClicked)=\"onAction($event)\"\r\n class=\"dropdown-wrapper\"\r\n [ngClass]=\"{'input-filled' : selection && selection.length > 0 }\"\r\n>\r\n</app-dynamic-form-treeview-select>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n", styles: ["app-dynamic-form-department .dropdown{border:1px solid #ccc!important;border-radius:5px!important}app-dynamic-form-department .input-filled .dropdown{border-color:#1a96c6!important}\n"], components: [{ type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: ["treeview", "treeViewAsFormControl", "config", "items", "value", "multiple", "defaultSelect", "pp_departmentNestedTree", "useCustomAddEditAction", "customPrefix", "customParentProperty", "placeholder"], outputs: ["valueChange", "plusClicked", "actionClicked"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6$2.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i1$1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
7883
+ DynamicFormDepartmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: DynamicFormDepartmentComponent, selector: "app-dynamic-form-department", inputs: { treeview: "treeview", treeViewAsFormControl: "treeViewAsFormControl", placeholder: "placeholder", multiple: "multiple", searchable: "searchable", label: "label", defaultSelect: "defaultSelect", pp_departmentNestedTree: "pp_departmentNestedTree", pp_departmentTree: "pp_departmentTree", customPrefix: "customPrefix", useCustomAddEditAction: "useCustomAddEditAction", customParentProperty: "customParentProperty", customParams: "customParams" }, outputs: { onSelecting: "onSelecting", actionClicked: "actionClicked" }, ngImport: i0, template: "<ng-container *ngIf=\"label\">\r\n <div>\r\n <label class=\"select-label\"\r\n >{{ label | translate\r\n }}<span *ngIf=\"isRequired()\" class=\"text-danger m-1\">*</span></label\r\n >\r\n </div>\r\n</ng-container>\r\n<app-dynamic-form-treeview-select\r\n [treeview]=\"treeview\"\r\n [treeViewAsFormControl]=\"treeViewAsFormControl\"\r\n [defaultSelect]=\"defaultSelect\"\r\n [multiple]=\"multiple\"\r\n [items]=\"data\"\r\n [placeholder]=\"placeholder\"\r\n [pp_departmentNestedTree]=\"pp_departmentNestedTree\"\r\n [useCustomAddEditAction]=\"useCustomAddEditAction\"\r\n [customPrefix]=\"customPrefix\"\r\n [customParentProperty]=\"customParentProperty\"\r\n (valueChange)=\"getSelecteditems($event)\"\r\n [(value)]=\"selection\"\r\n (actionClicked)=\"onAction($event)\"\r\n class=\"dropdown-wrapper\"\r\n [ngClass]=\"{'input-filled' : selection && selection.length > 0 }\"\r\n>\r\n</app-dynamic-form-treeview-select>\r\n<mat-error\r\n [attr.data-automation-id]=\"'card-textitem-error-'\"\r\n class=\"app-textitem-editable-error\"\r\n *ngIf=\"hasErrors()\"\r\n>\r\n <ul>\r\n <li *ngIf=\"control.errors.required\">\r\n {{ \"VALIDATORS.REQUIRED\" | translate }}\r\n </li>\r\n </ul>\r\n</mat-error>\r\n", styles: ["app-dynamic-form-department .dropdown{border:1px solid #ccc!important;border-radius:5px!important}app-dynamic-form-department .input-filled .dropdown{border-color:#1a96c6!important}\n"], components: [{ type: TreeviewSelectComponent, selector: "app-dynamic-form-treeview-select", inputs: ["treeview", "treeViewAsFormControl", "config", "items", "value", "multiple", "defaultSelect", "pp_departmentNestedTree", "useCustomAddEditAction", "customPrefix", "customParentProperty", "placeholder"], outputs: ["valueChange", "plusClicked", "actionClicked"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6$2.MatError, selector: "mat-error", inputs: ["id"] }], pipes: { "translate": i1$1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
7884
7884
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: DynamicFormDepartmentComponent, decorators: [{
7885
7885
  type: Component,
7886
7886
  args: [{
@@ -12459,7 +12459,7 @@ class AttachmentsPageProviderComponent {
12459
12459
  }
12460
12460
  }
12461
12461
  AttachmentsPageProviderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: AttachmentsPageProviderComponent, deps: [{ token: DocumentsService }], target: i0.ɵɵFactoryTarget.Component });
12462
- AttachmentsPageProviderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: AttachmentsPageProviderComponent, selector: "cts-attachments-page-provider", inputs: { provider: "provider", ancestorId: "ancestorId", params: "params" }, outputs: { deleteSuccess: "deleteSuccess", documentsCount: "documentsCount" }, ngImport: i0, template: "<div *ngIf=\"attachments.length !== 0\" class=\"doc-list\">\r\n <div *ngFor=\"let Attachment of attachments\" class=\"doc-item\">\r\n <div class=\"file-icon\">\r\n <mat-icon>file_copy</mat-icon>\r\n </div>\r\n <div class=\"attachment-container row no-gutters\">\r\n <div class=\"attachment-wrapper col-10 col-xl-6\">\r\n <div>\r\n {{ Attachment.title }}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.remarks }}\r\n </div>\r\n </div>\r\n <div class=\"attachment-wrapper col-10 col-xl-4\">\r\n <div>\r\n {{ Attachment.properties.classification ? Attachment.properties.classification.properties.label : '--'}}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.category ?Attachment.properties.category.properties.label :'--' }}\r\n </div>\r\n </div>\r\n <!-- <div class=\"attachment-wrapper isObject col-10 col-xl-2\">\r\n {{ Attachment.properties.isObject }}\r\n </div> -->\r\n </div>\r\n <div>\r\n <button\r\n (click)=\"deleteDocument($event, Attachment)\"\r\n class=\"btn btn-outline-danger btn-no-border\"\r\n >\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.doc-item{display:flex;flex:1;padding-top:6px;padding-bottom:6px;justify-content:space-between;cursor:pointer;border:1px solid;border-color:#d9dce2}.doc-item .file-icon{margin:4px;color:#465573;display:flex;align-items:center}.attachment-container{width:100%;grid-row-gap:6px;row-gap:6px}.attachment-container .attachment-wrapper{display:flex;align-items:center;justify-content:space-between;grid-column-gap:10px;column-gap:10px;padding-inline-end:5px;padding-inline-start:5px}.attachment-container .attachment-wrapper>*{width:100%}.attachment-container .isObject{display:flex;justify-content:center!important}.btn-wrapper{display:flex;justify-content:flex-end}\n"], components: [{ type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], encapsulation: i0.ViewEncapsulation.None });
12462
+ AttachmentsPageProviderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.4", type: AttachmentsPageProviderComponent, selector: "cts-attachments-page-provider", inputs: { provider: "provider", ancestorId: "ancestorId", params: "params" }, outputs: { deleteSuccess: "deleteSuccess", documentsCount: "documentsCount" }, ngImport: i0, template: "<div *ngIf=\"attachments.length !== 0\" class=\"doc-list\">\r\n <div *ngFor=\"let Attachment of attachments\" class=\"doc-item\">\r\n <div class=\"file-icon\">\r\n <mat-icon>file_copy</mat-icon>\r\n </div>\r\n <div class=\"attachment-container row no-gutters\">\r\n <div class=\"attachment-wrapper col-10 col-xl-6\">\r\n <div>\r\n {{ Attachment.title }}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.remarks }}\r\n </div>\r\n </div>\r\n <div class=\"attachment-wrapper col-10 col-xl-4\">\r\n <div>\r\n {{ Attachment.properties.classification ?('vocabulary.VOC_CorrespondenceAttachClassification.'+ Attachment.properties.classification.id |translate) : '--'}}\r\n </div>\r\n <div>\r\n {{ Attachment.properties.category ?('vocabulary.VOC_CorrespondenceAttachmentType.'+ Attachment.properties.category.id |translate) : '--'}}\r\n </div>\r\n </div>\r\n <!-- <div class=\"attachment-wrapper isObject col-10 col-xl-2\">\r\n {{ Attachment.properties.isObject }}\r\n </div> -->\r\n </div>\r\n <div>\r\n <button\r\n (click)=\"deleteDocument($event, Attachment)\"\r\n class=\"btn btn-outline-danger btn-no-border\"\r\n >\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".bi{margin:0!important}.memo-sorting-wrapper{width:265px;margin:0 10px;height:100%;display:flex}.memo-sorting-wrapper .sorting-direction{width:65px;height:40px;background-color:#465573;color:#fff;font-size:20px;display:flex;justify-content:center;align-items:center;cursor:pointer}.memo-sorting-wrapper .memo-sorting-trigger{width:calc(100% - 65px);height:100%;background-color:transparent;border:1px solid lightgrey;display:flex;justify-content:space-between;align-items:center;padding:0 15px;font-size:14px}.memo-sorting-wrapper .memo-sorting-trigger i{font-size:16px;color:gray}.memo-sorting-menu{width:200px}.my-button{border:1px solid #465573;color:#465573;border-radius:5px;background-color:transparent;font-weight:bold;min-width:80px;height:40px}.my-button.reset{border:none}.my-button:hover{color:#fff;background-color:#465573}.my-button:hover.reset{color:#465573;border:1px solid #465573;background-color:#fff}.app-property-value .app-input-wrapper label{color:#646f85;font-size:13px;margin-bottom:5px}.app-property-value .app-input-wrapper label .text-danger{font-size:16px;line-height:14px;margin:0 5px!important}.app-property-value .app-input-wrapper .form-control{border:1px solid #ccc;border-radius:5px;background-color:#8f98aa1a;height:40px}.app-property-value .app-input-wrapper .form-control:disabled{background-color:#e9ecef!important}.app-property-value .app-input-wrapper .form-control:focus{border:1px solid #1a96c6;box-shadow:0 0 4px #79c3c26b!important}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers{list-style:none;padding:0;margin:0;font-size:14px}.app-property-value .app-input-wrapper .app-textitem-editable-error .error-containers .error{margin-top:5px}.autocomplete-container .input-container input:focus,hijri-gregorian-datepicker .form-group .input-group .form-control:focus,.ng-select.ng-select-focused .ng-select-container{border:1px solid #1a96c6!important;box-shadow:0 0 4px #79c3c26b!important}input::placeholder{font-size:12px}.form-control:focus{box-shadow:none!important}.mat-stepper-horizontal{margin-top:-25px}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header.cdk-program-focused{background-color:transparent}.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-icon-selected{background-color:transparent;color:#fff;background-image:linear-gradient(to right,#0dbab5,#1a96c6)}@media only screen and (max-width: 576px){.mat-stepper-horizontal .mat-horizontal-stepper-header-container .mat-step-header .mat-step-label .mat-step-text-label{white-space:pre-wrap;overflow:visible}}.mat-stepper-horizontal .mat-horizontal-content-container{overflow:visible}@media only screen and (max-width: 768px){.mat-stepper-horizontal .mat-horizontal-content-container{padding:0 0 24px}}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:after,.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:before{display:none}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:first-child:before{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);left:0}.mat-stepper-horizontal.rtl .mat-horizontal-stepper-header:last-child:after{border-top-width:1px;border-top-style:solid;content:\"\";display:inline-block;height:0;position:absolute;width:calc(50% - 20px);right:0}.form-wrapper{padding:30px 15px;border:1px solid #dde0e2}.form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.form-wrapper .buttons-wrapper button:hover{opacity:.7}.form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.form-wrapper .upload-wrapper button span{margin:0 10px}.renameFileComponent .form-wrapper{padding:30px 15px;border:none!important}.renameFileComponent .form-wrapper .buttons-wrapper{display:flex;justify-content:space-between}.renameFileComponent .form-wrapper .buttons-wrapper .action-buttons-wrapper{display:flex}.renameFileComponent .form-wrapper .buttons-wrapper button{background-image:linear-gradient(to right,#0dbab5,#1a96c6);height:40px;color:#fff;border:none;width:125px;margin-top:20px;border-radius:5px}.renameFileComponent .form-wrapper .buttons-wrapper button:disabled{opacity:.4;cursor:not-allowed}.renameFileComponent .form-wrapper .buttons-wrapper button:hover{opacity:.7}.renameFileComponent .form-wrapper .upload-wrapper{display:flex;flex-direction:column;justify-content:flex-end}.renameFileComponent .form-wrapper .upload-wrapper label{color:#8f98aa;font-size:14px}.renameFileComponent .form-wrapper .upload-wrapper button{padding:10px;border:1px solid lightgray}.renameFileComponent .form-wrapper .upload-wrapper button span{margin:0 10px}.my-dynamic-viewer{display:flex;align-items:center;font-size:12px;min-height:30px}.my-dynamic-viewer .my-label{font-size:12px;font-weight:500;width:150px;word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-label{width:50%}}.my-dynamic-viewer .my-value{width:calc(100% - 150px);word-break:break-word}@media (max-width: 992px){.my-dynamic-viewer .my-value{width:50%}}.my-dynamic-viewer .direction-img{font-size:14px}.my-dynamic-viewer .direction-img .incoming{display:none}.my-dynamic-viewer .direction-img .outgoing{display:none}.my-dynamic-viewer .direction-img .internal{display:none}.my-dynamic-viewer.draft .my-value{color:#596973}.my-dynamic-viewer.inProgress .my-value{color:#3c3cf0}.my-dynamic-viewer.registered .my-value{color:#4f008c}.my-dynamic-viewer.archived .my-value{color:#fbb62c}.my-dynamic-viewer.closed .my-value{color:#00dca5}.my-dynamic-viewer.approved .my-value{color:#06a57e}.my-dynamic-viewer.assigned .my-value{color:#fd6670}.my-dynamic-viewer.sent .my-value{color:#3c3cf0}.my-dynamic-viewer.published .my-value{color:#00dca5}.my-dynamic-viewer.Outgoing .my-value{display:flex}.my-dynamic-viewer.Outgoing .my-value .direction-img .outgoing{color:#fbb62c;margin:1px 5px;display:flex}.my-dynamic-viewer.Outgoing .my-value .text{margin:0 5px}.my-dynamic-viewer.Internal .my-value{display:flex}.my-dynamic-viewer.Internal .my-value .direction-img .internal{color:#3c3cf0;margin:1px 5px;display:flex}.my-dynamic-viewer.Internal .my-value .text{margin:0 5px}.my-dynamic-viewer.Incoming .my-value{display:flex}.my-dynamic-viewer.Incoming .my-value .direction-img .incoming{color:#00dca5;display:flex}.my-dynamic-viewer.Incoming .my-value .text{margin:-3px 5px 0}.my-dynamic-viewer.vertical{display:block}.my-dynamic-viewer.vertical .my-label{width:auto}.my-dynamic-viewer.vertical .my-value{width:auto}.my-dynamic-viewer.with-out-label{width:100%!important}.doc-item{display:flex;flex:1;padding-top:6px;padding-bottom:6px;justify-content:space-between;cursor:pointer;border:1px solid;border-color:#d9dce2}.doc-item .file-icon{margin:4px;color:#465573;display:flex;align-items:center}.attachment-container{width:100%;grid-row-gap:6px;row-gap:6px}.attachment-container .attachment-wrapper{display:flex;align-items:center;justify-content:space-between;grid-column-gap:10px;column-gap:10px;padding-inline-end:5px;padding-inline-start:5px}.attachment-container .attachment-wrapper>*{width:100%}.attachment-container .isObject{display:flex;justify-content:center!important}.btn-wrapper{display:flex;justify-content:flex-end}\n"], components: [{ type: i2$4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i3$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "translate": i1$1.TranslatePipe }, encapsulation: i0.ViewEncapsulation.None });
12463
12463
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: AttachmentsPageProviderComponent, decorators: [{
12464
12464
  type: Component,
12465
12465
  args: [{
@@ -14528,19 +14528,21 @@ class DynamicSearchComponent {
14528
14528
  constructParamsFunction(params) {
14529
14529
  let contructedParms = {};
14530
14530
  this.text = params['search_query'];
14531
- if (this.useToggleFilters) {
14532
- if (params['quickFilters']) {
14533
- this.quickFilters = params['quickFilters'];
14534
- contructedParms = { [this.fullTextParamName]: this.text + '*', quickFilters: this.quickFilters };
14531
+ if (this.text.trim()) {
14532
+ if (this.useToggleFilters) {
14533
+ if (params['quickFilters']) {
14534
+ this.quickFilters = params['quickFilters'];
14535
+ contructedParms = { [this.fullTextParamName]: this.text + '*', quickFilters: this.quickFilters };
14536
+ }
14537
+ else {
14538
+ this.quickFilters = '';
14539
+ contructedParms = { [this.fullTextParamName]: this.text + '*', quickFilters: '' };
14540
+ }
14535
14541
  }
14536
14542
  else {
14537
- this.quickFilters = '';
14538
- contructedParms = { [this.fullTextParamName]: this.text + '*', quickFilters: '' };
14543
+ contructedParms = { [this.fullTextParamName]: this.text + '*' };
14539
14544
  }
14540
14545
  }
14541
- else {
14542
- contructedParms = { [this.fullTextParamName]: this.text + '*' };
14543
- }
14544
14546
  return contructedParms;
14545
14547
  }
14546
14548
  updateQueryParams(newQueryparams) {