@sinequa/assistant 3.8.5-rc1 → 3.8.6

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.
Files changed (37) hide show
  1. package/chat/styles/assistant.scss +102 -102
  2. package/chat/styles/references.scss +22 -22
  3. package/esm2020/chat/charts/chart/chart.component.mjs +3 -3
  4. package/esm2020/chat/chat-message/chat-message.component.mjs +3 -3
  5. package/esm2020/chat/chat-reference/chat-reference.component.mjs +3 -3
  6. package/esm2020/chat/chat-settings-v3/chat-settings-v3.component.mjs +3 -3
  7. package/esm2020/chat/chat.component.mjs +3 -3
  8. package/esm2020/chat/chat.service.mjs +1 -1
  9. package/esm2020/chat/debug-message/debug-message.component.mjs +3 -3
  10. package/esm2020/chat/documents-upload/document-list/document-list.component.mjs +3 -3
  11. package/esm2020/chat/documents-upload/document-overview/document-overview.component.mjs +3 -3
  12. package/esm2020/chat/documents-upload/document-upload/document-upload.component.mjs +3 -3
  13. package/esm2020/chat/documents-upload/documents-upload.model.mjs +1 -1
  14. package/esm2020/chat/documents-upload/documents-upload.service.mjs +1 -1
  15. package/esm2020/chat/format-icon/format-icon.component.mjs +1 -1
  16. package/esm2020/chat/format-icon/icons.mjs +1 -1
  17. package/esm2020/chat/initials-avatar/initials-avatar.component.mjs +3 -3
  18. package/esm2020/chat/instance-manager.service.mjs +1 -1
  19. package/esm2020/chat/messages/de.mjs +1 -1
  20. package/esm2020/chat/messages/en.mjs +1 -1
  21. package/esm2020/chat/messages/fr.mjs +1 -1
  22. package/esm2020/chat/messages/index.mjs +1 -1
  23. package/esm2020/chat/prompt.component.mjs +23 -23
  24. package/esm2020/chat/public-api.mjs +1 -1
  25. package/esm2020/chat/rest-chat.service.mjs +1 -1
  26. package/esm2020/chat/saved-chats/saved-chats.component.mjs +3 -3
  27. package/esm2020/chat/token-progress-bar/token-progress-bar.component.mjs +3 -3
  28. package/esm2020/chat/types.mjs +1 -1
  29. package/esm2020/chat/websocket-chat.service.mjs +1 -1
  30. package/esm2020/public-api.mjs +1 -1
  31. package/fesm2015/sinequa-assistant-chat.mjs +46 -46
  32. package/fesm2015/sinequa-assistant-chat.mjs.map +1 -1
  33. package/fesm2015/sinequa-assistant.mjs.map +1 -1
  34. package/fesm2020/sinequa-assistant-chat.mjs +46 -46
  35. package/fesm2020/sinequa-assistant-chat.mjs.map +1 -1
  36. package/fesm2020/sinequa-assistant.mjs.map +1 -1
  37. package/package.json +1 -1
@@ -243,10 +243,10 @@ export class DocumentUploadComponent {
243
243
  }
244
244
  }
245
245
  DocumentUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DocumentUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
246
- DocumentUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DocumentUploadComponent, isStandalone: true, selector: "sq-document-upload", inputs: { instanceId: "instanceId", pollingInterval: "pollingInterval" }, providers: [DocumentsUploadService], viewQueries: [{ propertyName: "flow", first: true, predicate: ["flow"], descendants: true, static: true }], ngImport: i0, template: "<ng-container #flow=\"flow\" [flowConfig]=\"flowConfig\"></ng-container>\r\n<div class=\"file-upload-container\">\r\n <input\r\n type=\"file\"\r\n flowButton\r\n [flow]=\"flow.flowJs\"\r\n multiple\r\n hidden\r\n #fileInput>\r\n <div\r\n flowDrop\r\n [flow]=\"flow.flowJs\"\r\n (dragenter)=\"onDragenter()\"\r\n (dragleave)=\"onDragleave($event)\"\r\n (drop)=\"onDrop()\"\r\n (click)=\"fileInput.click()\"\r\n class=\"dropzone\"\r\n [ngClass]=\"{'dropzone--active': (dragging$ | async)}\"\r\n [hidden]=\"(uploading$ | async) || (indexing$ | async)\">\r\n <ng-container *ngIf=\"!(dragging$ | async); else draggingContent\">\r\n <i class=\"fas fa-cloud-upload-alt\"></i>\r\n <span>Drag and drop files here Or</span>\r\n <span class=\"text-orange\">Click to browse</span>\r\n </ng-container>\r\n <ng-template #draggingContent>\r\n <span>Drop files here</span>\r\n </ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"(uploading$ | async) || (indexing$ | async)\" class=\"dropzone dropzone--active\">\r\n <ng-container *ngIf=\"(uploading$ | async); else indexingState\">\r\n <i class=\"fas fa-spinner fa-pulse\"></i>\r\n <span>\r\n Uploading {{ (flow.transfers$ | async)!.transfers.length }} files\r\n </span>\r\n <span *ngIf=\"(uploadingInfos$ | async) as uploadingInfos\">{{ uploadingInfos.progress | number:'1.0-0' }}%</span>\r\n </ng-container>\r\n <ng-template #indexingState>\r\n <i class=\"fas fa-spinner fa-pulse\"></i>\r\n <ng-container *ngIf=\"indexingInfos$ | async as indexingInfo\">\r\n <span>Indexing {{ indexingInfo.docs.length }} files</span>\r\n <span>{{ getIndexingProgress(indexingInfo) * 100 | number:'1.0-0' }}%</span>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <ul *ngIf=\"errorAlerts.length > 0\" class=\"error-list mt-3\">\r\n <li *ngFor=\"let error of errorAlerts\">\r\n {{ error }}\r\n </li>\r\n </ul>\r\n\r\n <div *ngIf=\"((flow.transfers$ | async)?.transfers?.length > 0) && !(uploading$ | async)\" class=\"file-list mt-3\">\r\n <ul>\r\n <li *ngFor=\"let transfer of (flow.transfers$ | async)!.transfers; trackBy: trackTransfer\">\r\n <sq-format-icon [extension]=\"transfer.flowFile.getExtension()\" class=\"me-1\"></sq-format-icon>\r\n <span [sqTooltip]=\"transfer.name\">{{ transfer.name }}</span>\r\n <i class=\"fas fa-trash ms-1\" (click)=\"flow.cancelFile(transfer)\" [sqTooltip]=\"'Cancel'\"></i>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class=\"d-flex mt-2\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-light cancel-btn me-2\"\r\n (click)=\"flow.cancel()\"\r\n [disabled]=\"!((flow.transfers$ | async)?.transfers?.length > 0) || (uploading$ | async) || (indexing$ | async)\">\r\n Cancel\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"upload-btn\"\r\n (click)=\"upload()\"\r\n [disabled]=\"!((flow.transfers$ | async)?.transfers?.length > 0) || (uploading$ | async) || (indexing$ | async)\">\r\n Upload\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ast-primary{color:var(--ast-primary-color, #005DA7);background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover{background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover:hover{color:var(--ast-primary-color, #005DA7)}.ast-secondary{color:var(--ast-secondary-color, #FF732E);background-color:var(--ast-secondary-bg, #FFF8F1)}.ast-error{background-color:var(--ast-error-bg, rgba(249, 58, 55, .2));color:var(--ast-action-buttons-color, inherit)}.ast-error:hover{color:var(--ast-error-color, rgba(249, 58, 55, .7))}.ast-btn{border:0;text-align:left;padding-top:.5rem;padding-bottom:.5rem;display:flex;align-items:center}.dark{--ast-primary-bg: #0d0701;--ast-primary-color: #008cd1;--ast-secondary-bg: #00070e;--ast-secondary-color: #ffa258;--ast-input-bg: #070707;--ast-input-color: rgba(222, 218, 218, .75);--ast-muted-color: rgba(222, 218, 218, .75);--ast-saved-chat-hover-background: #262421;--ast-uploaded-doc-hover-background: #262421;--ast-message-table-border-color: #333333;--ast-message-table-tr-bg: #070707;--ast-message-table-tr-border-color: #222222;--ast-reference-icon-color: white;--ast-reference-icon-active-color: black;--ast-reference-passages-color: white;--ast-reference-expanded-hover-bg: #262421;--ast-message-reference-color: black;--ast-action-buttons-color: white;--ast-action-buttons-hover-color: #6dbee6;--ast-report-bg: #070707}@keyframes dash-move{0%{background-position:0 0}to{background-position:100% 0}}.file-upload-container{width:100%;position:relative;padding:20px;background-color:#fff}.file-upload-container .dropzone{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100px;border:2px dashed var(--ast-primary-color, #005DA7);border-color:var(--ast-secondary-color, #FF732E) var(--ast-primary-color, #005DA7) var(--ast-primary-color, #005DA7) var(--ast-secondary-color, #FF732E);border-radius:5px;padding:10px;cursor:pointer;background-color:#fff;transition:background-color .3s ease;color:var(--ast-primary-color, #005DA7)}.file-upload-container .dropzone--active{background-color:#fff8f1;color:var(--ast-secondary-color, #FF732E);border-color:var(--ast-secondary-color, #FF732E)}.file-upload-container .dropzone i{font-size:x-large}.file-upload-container .dropzone span{margin:0;font-size:small}.file-upload-container .dropzone span.text-orange{color:var(--ast-secondary-color, #FF732E)}.file-upload-container .file-list h6{color:#a9a9a9}.file-upload-container .file-list ul{list-style-type:none;padding:0}.file-upload-container .file-list ul li{display:flex;align-items:center;padding:10px;background-color:var(--ast-primary-bg, #f2f8fe);margin-bottom:5px;border-radius:5px;font-size:small}.file-upload-container .file-list ul li span{flex-grow:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.file-upload-container .file-list ul li i{cursor:pointer}.file-upload-container .file-list ul li i:hover{color:var(--ast-primary-color, #005DA7)}.file-upload-container .error-list{display:flex;flex-direction:column;list-style:disc;background:var(--ast-error-color, rgba(249, 58, 55, .7));color:#fff;border-radius:5px}.file-upload-container .error-list li{padding:3px}.file-upload-container .upload-btn{background:linear-gradient(to right,#1d4ed8,#ec4899,#f97316);color:#fff;border:none;padding:8px 16px;border-radius:5px;cursor:pointer;width:100%}.file-upload-container .upload-btn:hover{background:linear-gradient(to right,#1d4ed8cc,#ec4899cc,#f97316cc)}.file-upload-container .upload-btn[disabled]{opacity:.3;cursor:not-allowed}.file-upload-container .cancel-btn{cursor:pointer;pointer-events:unset;width:100%}.file-upload-container .cancel-btn[disabled]{opacity:.3;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "ngmodule", type: NgxFlowModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[flowButton]", inputs: ["flowDirectoryOnly", "flowAttributes", "flow"] }, { kind: "directive", type: i2.DropDirective, selector: "[flowDrop]", inputs: ["flow"], exportAs: ["flowDrop"] }, { kind: "directive", type: i2.FlowDirective, selector: "[flowConfig]", inputs: ["flowConfig"], exportAs: ["flow"] }, { kind: "component", type: FormatIconComponent, selector: "sq-format-icon", inputs: ["extension"] }, { kind: "ngmodule", type: UtilsModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[sqTooltip]", inputs: ["sqTooltip", "sqTooltipData", "sqTooltipTemplate", "placement", "fallbackPlacements", "delay", "hoverableTooltip", "tooltipClass"] }] });
246
+ DocumentUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DocumentUploadComponent, isStandalone: true, selector: "sq-document-upload", inputs: { instanceId: "instanceId", pollingInterval: "pollingInterval" }, providers: [DocumentsUploadService], viewQueries: [{ propertyName: "flow", first: true, predicate: ["flow"], descendants: true, static: true }], ngImport: i0, template: "<ng-container #flow=\"flow\" [flowConfig]=\"flowConfig\"></ng-container>\n<div class=\"file-upload-container\">\n <input\n type=\"file\"\n flowButton\n [flow]=\"flow.flowJs\"\n multiple\n hidden\n #fileInput>\n <div\n flowDrop\n [flow]=\"flow.flowJs\"\n (dragenter)=\"onDragenter()\"\n (dragleave)=\"onDragleave($event)\"\n (drop)=\"onDrop()\"\n (click)=\"fileInput.click()\"\n class=\"dropzone\"\n [ngClass]=\"{'dropzone--active': (dragging$ | async)}\"\n [hidden]=\"(uploading$ | async) || (indexing$ | async)\">\n <ng-container *ngIf=\"!(dragging$ | async); else draggingContent\">\n <i class=\"fas fa-cloud-upload-alt\"></i>\n <span>Drag and drop files here Or</span>\n <span class=\"text-orange\">Click to browse</span>\n </ng-container>\n <ng-template #draggingContent>\n <span>Drop files here</span>\n </ng-template>\n </div>\n\n <div *ngIf=\"(uploading$ | async) || (indexing$ | async)\" class=\"dropzone dropzone--active\">\n <ng-container *ngIf=\"(uploading$ | async); else indexingState\">\n <i class=\"fas fa-spinner fa-pulse\"></i>\n <span>\n Uploading {{ (flow.transfers$ | async)!.transfers.length }} files\n </span>\n <span *ngIf=\"(uploadingInfos$ | async) as uploadingInfos\">{{ uploadingInfos.progress | number:'1.0-0' }}%</span>\n </ng-container>\n <ng-template #indexingState>\n <i class=\"fas fa-spinner fa-pulse\"></i>\n <ng-container *ngIf=\"indexingInfos$ | async as indexingInfo\">\n <span>Indexing {{ indexingInfo.docs.length }} files</span>\n <span>{{ getIndexingProgress(indexingInfo) * 100 | number:'1.0-0' }}%</span>\n </ng-container>\n </ng-template>\n </div>\n\n <ul *ngIf=\"errorAlerts.length > 0\" class=\"error-list mt-3\">\n <li *ngFor=\"let error of errorAlerts\">\n {{ error }}\n </li>\n </ul>\n\n <div *ngIf=\"((flow.transfers$ | async)?.transfers?.length > 0) && !(uploading$ | async)\" class=\"file-list mt-3\">\n <ul>\n <li *ngFor=\"let transfer of (flow.transfers$ | async)!.transfers; trackBy: trackTransfer\">\n <sq-format-icon [extension]=\"transfer.flowFile.getExtension()\" class=\"me-1\"></sq-format-icon>\n <span [sqTooltip]=\"transfer.name\">{{ transfer.name }}</span>\n <i class=\"fas fa-trash ms-1\" (click)=\"flow.cancelFile(transfer)\" [sqTooltip]=\"'Cancel'\"></i>\n </li>\n </ul>\n </div>\n\n <div class=\"d-flex mt-2\">\n <button\n type=\"button\"\n class=\"btn btn-light cancel-btn me-2\"\n (click)=\"flow.cancel()\"\n [disabled]=\"!((flow.transfers$ | async)?.transfers?.length > 0) || (uploading$ | async) || (indexing$ | async)\">\n Cancel\n </button>\n <button\n type=\"button\"\n class=\"upload-btn\"\n (click)=\"upload()\"\n [disabled]=\"!((flow.transfers$ | async)?.transfers?.length > 0) || (uploading$ | async) || (indexing$ | async)\">\n Upload\n </button>\n </div>\n</div>\n", styles: [".ast-primary{color:var(--ast-primary-color, #005DA7);background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover{background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover:hover{color:var(--ast-primary-color, #005DA7)}.ast-secondary{color:var(--ast-secondary-color, #FF732E);background-color:var(--ast-secondary-bg, #FFF8F1)}.ast-error{background-color:var(--ast-error-bg, rgba(249, 58, 55, .2));color:var(--ast-action-buttons-color, inherit)}.ast-error:hover{color:var(--ast-error-color, rgba(249, 58, 55, .7))}.ast-btn{border:0;text-align:left;padding-top:.5rem;padding-bottom:.5rem;display:flex;align-items:center}.dark{--ast-primary-bg: #0d0701;--ast-primary-color: #008cd1;--ast-secondary-bg: #00070e;--ast-secondary-color: #ffa258;--ast-input-bg: #070707;--ast-input-color: rgba(222, 218, 218, .75);--ast-muted-color: rgba(222, 218, 218, .75);--ast-saved-chat-hover-background: #262421;--ast-uploaded-doc-hover-background: #262421;--ast-message-table-border-color: #333333;--ast-message-table-tr-bg: #070707;--ast-message-table-tr-border-color: #222222;--ast-reference-icon-color: white;--ast-reference-icon-active-color: black;--ast-reference-passages-color: white;--ast-reference-expanded-hover-bg: #262421;--ast-message-reference-color: black;--ast-action-buttons-color: white;--ast-action-buttons-hover-color: #6dbee6;--ast-report-bg: #070707}@keyframes dash-move{0%{background-position:0 0}to{background-position:100% 0}}.file-upload-container{width:100%;position:relative;padding:20px;background-color:#fff}.file-upload-container .dropzone{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100px;border:2px dashed var(--ast-primary-color, #005DA7);border-color:var(--ast-secondary-color, #FF732E) var(--ast-primary-color, #005DA7) var(--ast-primary-color, #005DA7) var(--ast-secondary-color, #FF732E);border-radius:5px;padding:10px;cursor:pointer;background-color:#fff;transition:background-color .3s ease;color:var(--ast-primary-color, #005DA7)}.file-upload-container .dropzone--active{background-color:#fff8f1;color:var(--ast-secondary-color, #FF732E);border-color:var(--ast-secondary-color, #FF732E)}.file-upload-container .dropzone i{font-size:x-large}.file-upload-container .dropzone span{margin:0;font-size:small}.file-upload-container .dropzone span.text-orange{color:var(--ast-secondary-color, #FF732E)}.file-upload-container .file-list h6{color:#a9a9a9}.file-upload-container .file-list ul{list-style-type:none;padding:0}.file-upload-container .file-list ul li{display:flex;align-items:center;padding:10px;background-color:var(--ast-primary-bg, #f2f8fe);margin-bottom:5px;border-radius:5px;font-size:small}.file-upload-container .file-list ul li span{flex-grow:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.file-upload-container .file-list ul li i{cursor:pointer}.file-upload-container .file-list ul li i:hover{color:var(--ast-primary-color, #005DA7)}.file-upload-container .error-list{display:flex;flex-direction:column;list-style:disc;background:var(--ast-error-color, rgba(249, 58, 55, .7));color:#fff;border-radius:5px}.file-upload-container .error-list li{padding:3px}.file-upload-container .upload-btn{background:linear-gradient(to right,#1d4ed8,#ec4899,#f97316);color:#fff;border:none;padding:8px 16px;border-radius:5px;cursor:pointer;width:100%}.file-upload-container .upload-btn:hover{background:linear-gradient(to right,#1d4ed8cc,#ec4899cc,#f97316cc)}.file-upload-container .upload-btn[disabled]{opacity:.3;cursor:not-allowed}.file-upload-container .cancel-btn{cursor:pointer;pointer-events:unset;width:100%}.file-upload-container .cancel-btn[disabled]{opacity:.3;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DecimalPipe, name: "number" }, { kind: "ngmodule", type: NgxFlowModule }, { kind: "directive", type: i2.ButtonDirective, selector: "[flowButton]", inputs: ["flowDirectoryOnly", "flowAttributes", "flow"] }, { kind: "directive", type: i2.DropDirective, selector: "[flowDrop]", inputs: ["flow"], exportAs: ["flowDrop"] }, { kind: "directive", type: i2.FlowDirective, selector: "[flowConfig]", inputs: ["flowConfig"], exportAs: ["flow"] }, { kind: "component", type: FormatIconComponent, selector: "sq-format-icon", inputs: ["extension"] }, { kind: "ngmodule", type: UtilsModule }, { kind: "directive", type: i3.TooltipDirective, selector: "[sqTooltip]", inputs: ["sqTooltip", "sqTooltipData", "sqTooltipTemplate", "placement", "fallbackPlacements", "delay", "hoverableTooltip", "tooltipClass"] }] });
247
247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DocumentUploadComponent, decorators: [{
248
248
  type: Component,
249
- args: [{ selector: "sq-document-upload", standalone: true, providers: [DocumentsUploadService], imports: [CommonModule, NgxFlowModule, FormatIconComponent, UtilsModule], template: "<ng-container #flow=\"flow\" [flowConfig]=\"flowConfig\"></ng-container>\r\n<div class=\"file-upload-container\">\r\n <input\r\n type=\"file\"\r\n flowButton\r\n [flow]=\"flow.flowJs\"\r\n multiple\r\n hidden\r\n #fileInput>\r\n <div\r\n flowDrop\r\n [flow]=\"flow.flowJs\"\r\n (dragenter)=\"onDragenter()\"\r\n (dragleave)=\"onDragleave($event)\"\r\n (drop)=\"onDrop()\"\r\n (click)=\"fileInput.click()\"\r\n class=\"dropzone\"\r\n [ngClass]=\"{'dropzone--active': (dragging$ | async)}\"\r\n [hidden]=\"(uploading$ | async) || (indexing$ | async)\">\r\n <ng-container *ngIf=\"!(dragging$ | async); else draggingContent\">\r\n <i class=\"fas fa-cloud-upload-alt\"></i>\r\n <span>Drag and drop files here Or</span>\r\n <span class=\"text-orange\">Click to browse</span>\r\n </ng-container>\r\n <ng-template #draggingContent>\r\n <span>Drop files here</span>\r\n </ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"(uploading$ | async) || (indexing$ | async)\" class=\"dropzone dropzone--active\">\r\n <ng-container *ngIf=\"(uploading$ | async); else indexingState\">\r\n <i class=\"fas fa-spinner fa-pulse\"></i>\r\n <span>\r\n Uploading {{ (flow.transfers$ | async)!.transfers.length }} files\r\n </span>\r\n <span *ngIf=\"(uploadingInfos$ | async) as uploadingInfos\">{{ uploadingInfos.progress | number:'1.0-0' }}%</span>\r\n </ng-container>\r\n <ng-template #indexingState>\r\n <i class=\"fas fa-spinner fa-pulse\"></i>\r\n <ng-container *ngIf=\"indexingInfos$ | async as indexingInfo\">\r\n <span>Indexing {{ indexingInfo.docs.length }} files</span>\r\n <span>{{ getIndexingProgress(indexingInfo) * 100 | number:'1.0-0' }}%</span>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <ul *ngIf=\"errorAlerts.length > 0\" class=\"error-list mt-3\">\r\n <li *ngFor=\"let error of errorAlerts\">\r\n {{ error }}\r\n </li>\r\n </ul>\r\n\r\n <div *ngIf=\"((flow.transfers$ | async)?.transfers?.length > 0) && !(uploading$ | async)\" class=\"file-list mt-3\">\r\n <ul>\r\n <li *ngFor=\"let transfer of (flow.transfers$ | async)!.transfers; trackBy: trackTransfer\">\r\n <sq-format-icon [extension]=\"transfer.flowFile.getExtension()\" class=\"me-1\"></sq-format-icon>\r\n <span [sqTooltip]=\"transfer.name\">{{ transfer.name }}</span>\r\n <i class=\"fas fa-trash ms-1\" (click)=\"flow.cancelFile(transfer)\" [sqTooltip]=\"'Cancel'\"></i>\r\n </li>\r\n </ul>\r\n </div>\r\n\r\n <div class=\"d-flex mt-2\">\r\n <button\r\n type=\"button\"\r\n class=\"btn btn-light cancel-btn me-2\"\r\n (click)=\"flow.cancel()\"\r\n [disabled]=\"!((flow.transfers$ | async)?.transfers?.length > 0) || (uploading$ | async) || (indexing$ | async)\">\r\n Cancel\r\n </button>\r\n <button\r\n type=\"button\"\r\n class=\"upload-btn\"\r\n (click)=\"upload()\"\r\n [disabled]=\"!((flow.transfers$ | async)?.transfers?.length > 0) || (uploading$ | async) || (indexing$ | async)\">\r\n Upload\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".ast-primary{color:var(--ast-primary-color, #005DA7);background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover{background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover:hover{color:var(--ast-primary-color, #005DA7)}.ast-secondary{color:var(--ast-secondary-color, #FF732E);background-color:var(--ast-secondary-bg, #FFF8F1)}.ast-error{background-color:var(--ast-error-bg, rgba(249, 58, 55, .2));color:var(--ast-action-buttons-color, inherit)}.ast-error:hover{color:var(--ast-error-color, rgba(249, 58, 55, .7))}.ast-btn{border:0;text-align:left;padding-top:.5rem;padding-bottom:.5rem;display:flex;align-items:center}.dark{--ast-primary-bg: #0d0701;--ast-primary-color: #008cd1;--ast-secondary-bg: #00070e;--ast-secondary-color: #ffa258;--ast-input-bg: #070707;--ast-input-color: rgba(222, 218, 218, .75);--ast-muted-color: rgba(222, 218, 218, .75);--ast-saved-chat-hover-background: #262421;--ast-uploaded-doc-hover-background: #262421;--ast-message-table-border-color: #333333;--ast-message-table-tr-bg: #070707;--ast-message-table-tr-border-color: #222222;--ast-reference-icon-color: white;--ast-reference-icon-active-color: black;--ast-reference-passages-color: white;--ast-reference-expanded-hover-bg: #262421;--ast-message-reference-color: black;--ast-action-buttons-color: white;--ast-action-buttons-hover-color: #6dbee6;--ast-report-bg: #070707}@keyframes dash-move{0%{background-position:0 0}to{background-position:100% 0}}.file-upload-container{width:100%;position:relative;padding:20px;background-color:#fff}.file-upload-container .dropzone{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100px;border:2px dashed var(--ast-primary-color, #005DA7);border-color:var(--ast-secondary-color, #FF732E) var(--ast-primary-color, #005DA7) var(--ast-primary-color, #005DA7) var(--ast-secondary-color, #FF732E);border-radius:5px;padding:10px;cursor:pointer;background-color:#fff;transition:background-color .3s ease;color:var(--ast-primary-color, #005DA7)}.file-upload-container .dropzone--active{background-color:#fff8f1;color:var(--ast-secondary-color, #FF732E);border-color:var(--ast-secondary-color, #FF732E)}.file-upload-container .dropzone i{font-size:x-large}.file-upload-container .dropzone span{margin:0;font-size:small}.file-upload-container .dropzone span.text-orange{color:var(--ast-secondary-color, #FF732E)}.file-upload-container .file-list h6{color:#a9a9a9}.file-upload-container .file-list ul{list-style-type:none;padding:0}.file-upload-container .file-list ul li{display:flex;align-items:center;padding:10px;background-color:var(--ast-primary-bg, #f2f8fe);margin-bottom:5px;border-radius:5px;font-size:small}.file-upload-container .file-list ul li span{flex-grow:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.file-upload-container .file-list ul li i{cursor:pointer}.file-upload-container .file-list ul li i:hover{color:var(--ast-primary-color, #005DA7)}.file-upload-container .error-list{display:flex;flex-direction:column;list-style:disc;background:var(--ast-error-color, rgba(249, 58, 55, .7));color:#fff;border-radius:5px}.file-upload-container .error-list li{padding:3px}.file-upload-container .upload-btn{background:linear-gradient(to right,#1d4ed8,#ec4899,#f97316);color:#fff;border:none;padding:8px 16px;border-radius:5px;cursor:pointer;width:100%}.file-upload-container .upload-btn:hover{background:linear-gradient(to right,#1d4ed8cc,#ec4899cc,#f97316cc)}.file-upload-container .upload-btn[disabled]{opacity:.3;cursor:not-allowed}.file-upload-container .cancel-btn{cursor:pointer;pointer-events:unset;width:100%}.file-upload-container .cancel-btn[disabled]{opacity:.3;cursor:not-allowed}\n"] }]
249
+ args: [{ selector: "sq-document-upload", standalone: true, providers: [DocumentsUploadService], imports: [CommonModule, NgxFlowModule, FormatIconComponent, UtilsModule], template: "<ng-container #flow=\"flow\" [flowConfig]=\"flowConfig\"></ng-container>\n<div class=\"file-upload-container\">\n <input\n type=\"file\"\n flowButton\n [flow]=\"flow.flowJs\"\n multiple\n hidden\n #fileInput>\n <div\n flowDrop\n [flow]=\"flow.flowJs\"\n (dragenter)=\"onDragenter()\"\n (dragleave)=\"onDragleave($event)\"\n (drop)=\"onDrop()\"\n (click)=\"fileInput.click()\"\n class=\"dropzone\"\n [ngClass]=\"{'dropzone--active': (dragging$ | async)}\"\n [hidden]=\"(uploading$ | async) || (indexing$ | async)\">\n <ng-container *ngIf=\"!(dragging$ | async); else draggingContent\">\n <i class=\"fas fa-cloud-upload-alt\"></i>\n <span>Drag and drop files here Or</span>\n <span class=\"text-orange\">Click to browse</span>\n </ng-container>\n <ng-template #draggingContent>\n <span>Drop files here</span>\n </ng-template>\n </div>\n\n <div *ngIf=\"(uploading$ | async) || (indexing$ | async)\" class=\"dropzone dropzone--active\">\n <ng-container *ngIf=\"(uploading$ | async); else indexingState\">\n <i class=\"fas fa-spinner fa-pulse\"></i>\n <span>\n Uploading {{ (flow.transfers$ | async)!.transfers.length }} files\n </span>\n <span *ngIf=\"(uploadingInfos$ | async) as uploadingInfos\">{{ uploadingInfos.progress | number:'1.0-0' }}%</span>\n </ng-container>\n <ng-template #indexingState>\n <i class=\"fas fa-spinner fa-pulse\"></i>\n <ng-container *ngIf=\"indexingInfos$ | async as indexingInfo\">\n <span>Indexing {{ indexingInfo.docs.length }} files</span>\n <span>{{ getIndexingProgress(indexingInfo) * 100 | number:'1.0-0' }}%</span>\n </ng-container>\n </ng-template>\n </div>\n\n <ul *ngIf=\"errorAlerts.length > 0\" class=\"error-list mt-3\">\n <li *ngFor=\"let error of errorAlerts\">\n {{ error }}\n </li>\n </ul>\n\n <div *ngIf=\"((flow.transfers$ | async)?.transfers?.length > 0) && !(uploading$ | async)\" class=\"file-list mt-3\">\n <ul>\n <li *ngFor=\"let transfer of (flow.transfers$ | async)!.transfers; trackBy: trackTransfer\">\n <sq-format-icon [extension]=\"transfer.flowFile.getExtension()\" class=\"me-1\"></sq-format-icon>\n <span [sqTooltip]=\"transfer.name\">{{ transfer.name }}</span>\n <i class=\"fas fa-trash ms-1\" (click)=\"flow.cancelFile(transfer)\" [sqTooltip]=\"'Cancel'\"></i>\n </li>\n </ul>\n </div>\n\n <div class=\"d-flex mt-2\">\n <button\n type=\"button\"\n class=\"btn btn-light cancel-btn me-2\"\n (click)=\"flow.cancel()\"\n [disabled]=\"!((flow.transfers$ | async)?.transfers?.length > 0) || (uploading$ | async) || (indexing$ | async)\">\n Cancel\n </button>\n <button\n type=\"button\"\n class=\"upload-btn\"\n (click)=\"upload()\"\n [disabled]=\"!((flow.transfers$ | async)?.transfers?.length > 0) || (uploading$ | async) || (indexing$ | async)\">\n Upload\n </button>\n </div>\n</div>\n", styles: [".ast-primary{color:var(--ast-primary-color, #005DA7);background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover{background-color:var(--ast-primary-bg, #f2f8fe)}.ast-primary-hover:hover{color:var(--ast-primary-color, #005DA7)}.ast-secondary{color:var(--ast-secondary-color, #FF732E);background-color:var(--ast-secondary-bg, #FFF8F1)}.ast-error{background-color:var(--ast-error-bg, rgba(249, 58, 55, .2));color:var(--ast-action-buttons-color, inherit)}.ast-error:hover{color:var(--ast-error-color, rgba(249, 58, 55, .7))}.ast-btn{border:0;text-align:left;padding-top:.5rem;padding-bottom:.5rem;display:flex;align-items:center}.dark{--ast-primary-bg: #0d0701;--ast-primary-color: #008cd1;--ast-secondary-bg: #00070e;--ast-secondary-color: #ffa258;--ast-input-bg: #070707;--ast-input-color: rgba(222, 218, 218, .75);--ast-muted-color: rgba(222, 218, 218, .75);--ast-saved-chat-hover-background: #262421;--ast-uploaded-doc-hover-background: #262421;--ast-message-table-border-color: #333333;--ast-message-table-tr-bg: #070707;--ast-message-table-tr-border-color: #222222;--ast-reference-icon-color: white;--ast-reference-icon-active-color: black;--ast-reference-passages-color: white;--ast-reference-expanded-hover-bg: #262421;--ast-message-reference-color: black;--ast-action-buttons-color: white;--ast-action-buttons-hover-color: #6dbee6;--ast-report-bg: #070707}@keyframes dash-move{0%{background-position:0 0}to{background-position:100% 0}}.file-upload-container{width:100%;position:relative;padding:20px;background-color:#fff}.file-upload-container .dropzone{display:flex;flex-direction:column;justify-content:center;align-items:center;height:100px;border:2px dashed var(--ast-primary-color, #005DA7);border-color:var(--ast-secondary-color, #FF732E) var(--ast-primary-color, #005DA7) var(--ast-primary-color, #005DA7) var(--ast-secondary-color, #FF732E);border-radius:5px;padding:10px;cursor:pointer;background-color:#fff;transition:background-color .3s ease;color:var(--ast-primary-color, #005DA7)}.file-upload-container .dropzone--active{background-color:#fff8f1;color:var(--ast-secondary-color, #FF732E);border-color:var(--ast-secondary-color, #FF732E)}.file-upload-container .dropzone i{font-size:x-large}.file-upload-container .dropzone span{margin:0;font-size:small}.file-upload-container .dropzone span.text-orange{color:var(--ast-secondary-color, #FF732E)}.file-upload-container .file-list h6{color:#a9a9a9}.file-upload-container .file-list ul{list-style-type:none;padding:0}.file-upload-container .file-list ul li{display:flex;align-items:center;padding:10px;background-color:var(--ast-primary-bg, #f2f8fe);margin-bottom:5px;border-radius:5px;font-size:small}.file-upload-container .file-list ul li span{flex-grow:1;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.file-upload-container .file-list ul li i{cursor:pointer}.file-upload-container .file-list ul li i:hover{color:var(--ast-primary-color, #005DA7)}.file-upload-container .error-list{display:flex;flex-direction:column;list-style:disc;background:var(--ast-error-color, rgba(249, 58, 55, .7));color:#fff;border-radius:5px}.file-upload-container .error-list li{padding:3px}.file-upload-container .upload-btn{background:linear-gradient(to right,#1d4ed8,#ec4899,#f97316);color:#fff;border:none;padding:8px 16px;border-radius:5px;cursor:pointer;width:100%}.file-upload-container .upload-btn:hover{background:linear-gradient(to right,#1d4ed8cc,#ec4899cc,#f97316cc)}.file-upload-container .upload-btn[disabled]{opacity:.3;cursor:not-allowed}.file-upload-container .cancel-btn{cursor:pointer;pointer-events:unset;width:100%}.file-upload-container .cancel-btn[disabled]{opacity:.3;cursor:not-allowed}\n"] }]
250
250
  }], propDecorators: { instanceId: [{
251
251
  type: Input
252
252
  }], pollingInterval: [{
@@ -255,4 +255,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
255
255
  type: ViewChild,
256
256
  args: ["flow", { static: true }]
257
257
  }] } });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2RvY3VtZW50cy11cGxvYWQvZG9jdW1lbnQtdXBsb2FkL2RvY3VtZW50LXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9kb2N1bWVudHMtdXBsb2FkL2RvY3VtZW50LXVwbG9hZC9kb2N1bWVudC11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBMkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxFQUNaLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNILFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7O0FBWTlFLE1BQU0sT0FBTyx1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LENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3RHLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxHQUFDLEtBQUssQ0FBQztJQUN6QixDQUFDOztvSEE1UlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMklBSHZCLENBQUMsc0JBQXNCLENBQUMsc0lDdkNyQyxtbkdBK0VBLHlwSER2Q1ksWUFBWSwwY0FBRSxhQUFhLHlZQUFFLG1CQUFtQixpRkFBRSxXQUFXOzJGQUU1RCx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksYUFDTCxDQUFDLHNCQUFzQixDQUFDLFdBQzFCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUM7OEJBSS9ELFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFK0IsSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBpbmplY3QsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmd4Rmxvd01vZHVsZSwgRmxvd0RpcmVjdGl2ZSwgVHJhbnNmZXIgfSBmcm9tIFwiQGZsb3dqcy9uZ3gtZmxvd1wiO1xyXG5pbXBvcnQgeyBGbG93RmlsZSB9IGZyb20gXCJmbG93anNcIjtcclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgY2F0Y2hFcnJvcixcclxuICBFTVBUWSxcclxuICBmaWx0ZXIsXHJcbiAgZmluYWxpemUsXHJcbiAgaW50ZXJ2YWwsXHJcbiAgU3Vic2NyaXB0aW9uLFxyXG4gIHN3aXRjaE1hcCxcclxuICB0YWtlV2hpbGUsXHJcbiAgdGFwLFxyXG4gIHN0YXJ0V2l0aCxcclxufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tIFwiQHNpbmVxdWEvY29yZS9sb2dpblwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25zU2VydmljZSB9IGZyb20gXCJAc2luZXF1YS9jb3JlL25vdGlmaWNhdGlvblwiO1xyXG5pbXBvcnQgeyBVdGlsc01vZHVsZSB9IGZyb20gXCJAc2luZXF1YS9jb21wb25lbnRzL3V0aWxzXCI7XHJcbmltcG9ydCB7IEluc3RhbmNlTWFuYWdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vaW5zdGFuY2UtbWFuYWdlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IENoYXRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NoYXQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBEb2N1bWVudHNVcGxvYWRTZXJ2aWNlIH0gZnJvbSBcIi4uL2RvY3VtZW50cy11cGxvYWQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBGb3JtYXRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9ybWF0LWljb24vZm9ybWF0LWljb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hhdENvbmZpZyB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xyXG5pbXBvcnQgeyBJbmRleGluZ0luZm9zLCBVcGxvYWRFdmVudCwgVXBsb2FkaW5nSW5mb3MgfSBmcm9tIFwiLi4vZG9jdW1lbnRzLXVwbG9hZC5tb2RlbFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic3EtZG9jdW1lbnQtdXBsb2FkXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9kb2N1bWVudC11cGxvYWQuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgcHJvdmlkZXJzOiBbRG9jdW1lbnRzVXBsb2FkU2VydmljZV0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTmd4Rmxvd01vZHVsZSwgRm9ybWF0SWNvbkNvbXBvbmVudCwgVXRpbHNNb2R1bGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgLyoqIERlZmluZSB0aGUga2V5IGJhc2VkIG9uIGl0LCB0aGUgYXBwcm9wcmlhdGUgY2hhdFNlcnZpY2UgaW5zdGFuY2Ugd2lsbCBiZSByZXR1cm5lZCBmcm9tIGluc3RhbmNlTWFuYWdlclNlcnZpY2UgKi9cclxuICBASW5wdXQoKSBpbnN0YW5jZUlkOiBzdHJpbmc7XHJcbiAgLyoqIFBvbGxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIHVwZGF0ZSB0aGUgaW5kZXhpbmcgc3RhdHVzIG9mIHRoZSB1cGxvYWRlZCBkb2N1bWVudHMgKi9cclxuICBASW5wdXQoKSBwb2xsaW5nSW50ZXJ2YWwgOiBudW1iZXIgPSAxMDAwO1xyXG4gIC8vIFJlZmVyZW5jZSB0byB0aGUgZmxvdyBkaXJlY3RpdmVcclxuICBAVmlld0NoaWxkKFwiZmxvd1wiLCB7IHN0YXRpYzogdHJ1ZSB9KSBmbG93ITogRmxvd0RpcmVjdGl2ZTtcclxuXHJcbiAgcHVibGljIGNoYXRTZXJ2aWNlOiBDaGF0U2VydmljZTtcclxuICByZWFkb25seSBmbG93Q29uZmlnOiBmbG93anMuRmxvd09wdGlvbnMgPSB7XHJcbiAgICAvLyBEaXNhYmxlcyBjaHVuayB0ZXN0aW5nIGJlZm9yZSB1cGxvYWRpbmcgYWN0dWFsIGZpbGUgZGF0YS4gVGh1cywgYXZvaWRzIHVubmVjZXNzYXJ5IHJlcXVlc3RzIGFuZCBzcGVlZHMgdXAgdXBsb2Fkc1xyXG4gICAgdGVzdENodW5rczogZmFsc2UsXHJcbiAgICAvLyBBbGxvd3MgbXVsdGlwbGUgZmlsZSB1cGxvYWRzIHNpbXVsdGFuZW91c2x5XHJcbiAgICBzaW5nbGVGaWxlOiBmYWxzZSxcclxuICAgIC8vIEFsbG93cyB0aGUgc2FtZSBmaWxlIHRvIGJlIHVwbG9hZGVkIG11bHRpcGxlIHRpbWVzXHJcbiAgICBhbGxvd0R1cGxpY2F0ZVVwbG9hZHM6IHRydWUsXHJcbiAgICBxdWVyeTogKCkgPT4ge1xyXG4gICAgICByZXR1cm4ge307IC8vIEVtcHR5IG9iamVjdCB0byBwcmV2ZW50IHF1ZXJ5IHBhcmFtZXRlcnNcclxuICAgIH0sXHJcbiAgICBwcmVwcm9jZXNzOiAoY2h1bmspID0+IGNodW5rLmFib3J0KCkgLy8gUHJldmVudHMgdGhlIGRlZmF1bHQgZmxvdyB1cGxvYWQgb2YgY2h1bmtzXHJcbiAgfTtcclxuICBwdWJsaWMgZXJyb3JBbGVydHM6IHN0cmluZ1tdID0gW107XHJcbiAgcHVibGljIGRyYWdnaW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gIHB1YmxpYyBpbmRleGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBwdWJsaWMgaW5kZXhpbmdJbmZvcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEluZGV4aW5nSW5mb3MgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XHJcbiAgcHVibGljIHVwbG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBwdWJsaWMgdXBsb2FkaW5nSW5mb3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxVcGxvYWRpbmdJbmZvcyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICBwdWJsaWMgbG9naW5TZXJ2aWNlID0gaW5qZWN0KExvZ2luU2VydmljZSk7XHJcbiAgcHVibGljIGluc3RhbmNlTWFuYWdlclNlcnZpY2UgPSBpbmplY3QoSW5zdGFuY2VNYW5hZ2VyU2VydmljZSk7XHJcbiAgcHVibGljIGRvY3VtZW50c1VwbG9hZFNlcnZpY2UgPSBpbmplY3QoRG9jdW1lbnRzVXBsb2FkU2VydmljZSk7XHJcbiAgcHVibGljIG5vdGlmaWNhdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvbnNTZXJ2aWNlKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmxvZ2luU2VydmljZS5ldmVudHNcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGZpbHRlcigoZSkgPT4gZS50eXBlID09PSBcImxvZ2luLWNvbXBsZXRlXCIpLFxyXG4gICAgICAgICAgdGFwKChfKSA9PiB0aGlzLmluc3RhbnRpYXRlQ2hhdFNlcnZpY2UoKSksXHJcbiAgICAgICAgICBzd2l0Y2hNYXAoKF8pID0+IHRoaXMuY2hhdFNlcnZpY2UuYXNzaXN0YW50Q29uZmlnJCksXHJcbiAgICAgICAgICBmaWx0ZXIoKGNvbmZpZzogQ2hhdENvbmZpZyB8IHVuZGVmaW5lZCkgPT4gISFjb25maWcpLFxyXG4gICAgICAgICAgdGFwKChfKSA9PiB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UuaW5pdCh0aGlzLmNoYXRTZXJ2aWNlKSksXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcclxuICAgICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5lcnJvcihlcnJvcik7XHJcbiAgICAgICAgICAgIHJldHVybiBFTVBUWTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmZsb3cuZXZlbnRzJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZXZ0ID0gZXZlbnQgYXMgYW55O1xyXG4gICAgICAgIC8vIEtlcHQgaXQganVzdCBmb3IgcmVmZXJlbmNlIHRvIHNob3cgaG93IHRvIGFjY2VzcyBkYXRhIG9mIGRpZmZlcmVudCBldmVudHNcclxuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJmaWxlc0FkZGVkXCIpIHtcclxuICAgICAgICAgIGNvbnN0IGFkZGVkRmlsZXMgPSBldnQuZXZlbnRbMF0gYXMgRmxvd0ZpbGVbXTtcclxuICAgICAgICAgIHRoaXMuX29uRmlsZXNBZGRlZChhZGRlZEZpbGVzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiZmlsZXNTdWJtaXR0ZWRcIikge1xyXG4gICAgICAgICAgdGhpcy5fb25GaWxlc1N1Ym1pdHRlZCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgLy8gT3ZlcnJpZGUgdGhlIHVwbG9hZCBtZXRob2Qgb2YgdGhlIGZsb3cgZGlyZWN0aXZlXHJcbiAgICB0aGlzLmZsb3cudXBsb2FkID0gdGhpcy5zdGFydFVwbG9hZC5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGluc3RhbnRpYXRlQ2hhdFNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNoYXRTZXJ2aWNlID0gdGhpcy5pbnN0YW5jZU1hbmFnZXJTZXJ2aWNlLmdldEluc3RhbmNlKHRoaXMuaW5zdGFuY2VJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBIYW5kbGVzIHRoZSBzdWJtaXNzaW9uIG9mIGZpbGVzLlxyXG4gICAqXHJcbiAgICogQHJlbWFya3NcclxuICAgKiBUaGlzIG1ldGhvZCBwZXJmb3JtcyB0aGUgZm9sbG93aW5nIGNoZWNrcyBvbiB0aGUgc3VibWl0dGVkIGZpbGVzOlxyXG4gICAqXHJcbiAgICogMS4gQ2hlY2tzIGlmIHRoZSBudW1iZXIgb2YgZmlsZXMgc3VibWl0dGVkIGV4Y2VlZHMgdGhlIHJlbWFpbmluZ0ZpbGVDb3VudCBkZWZpbmVkIGluIHRoZSBjb25zdHJhaW50cy5cclxuICAgKiAgICAtIElmIHRoZSBudW1iZXIgb2YgZmlsZXMgZXhjZWVkcyB0aGUgYWxsb3dlZCBjb3VudCwgYWxsIGZpbGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIGZsb3cuXHJcbiAgICogICAgLSBBbiBlcnJvciBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBlcnJvciBhbGVydHMuXHJcbiAgICpcclxuICAgKiAyLiBDaGVja3MgaWYgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGZpbGVzIHN1Ym1pdHRlZCBleGNlZWRzIHRoZSByZW1haW5pbmdGaWxlU2l6ZSBkZWZpbmVkIGluIHRoZSBjb25zdHJhaW50cy5cclxuICAgKiAgICAtIElmIHRoZSB0b3RhbCBzaXplIGV4Y2VlZHMgdGhlIGFsbG93ZWQgc2l6ZSwgYWxsIGZpbGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIGZsb3cuXHJcbiAgICogICAgLSBBbiBlcnJvciBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBlcnJvciBhbGVydHMuXHJcbiAgICpcclxuICAgKiAzLiBDaGVja3MgaWYgdGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBmaWxlcyBzdWJtaXR0ZWQgaXMgbm90IGFsbG93ZWQuXHJcbiAgICogICAgLSBJZiB0aGUgZmlsZSBleHRlbnNpb24gaXMgbm90IGFsbG93ZWQsIHRoZSBmaWxlIGlzIHJlbW92ZWQgZnJvbSB0aGUgZmxvdy5cclxuICAgKiAgICAtIEFuIGVycm9yIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGVycm9yIGFsZXJ0cy5cclxuICAgKi9cclxuICBwcml2YXRlIF9vbkZpbGVzU3VibWl0dGVkKCkge1xyXG4gICAgLy8gR2V0IGFsbCBmaWxlcyBmcm9tIHRoZSBmbG93XHJcbiAgICBjb25zdCBmaWxlcyA9IFsuLi50aGlzLmZsb3cuZmxvd0pzLmZpbGVzXTtcclxuICAgIC8vIENsZWFyIHRoZSBlcnJvciBhbGVydHNcclxuICAgIHRoaXMuZXJyb3JBbGVydHMgPSBbXTtcclxuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENoZWNrcyBpZiB0aGUgbnVtYmVyIG9mIGZpbGVzIHN1Ym1pdHRlZCBleGNlZWRzIHRoZSByZW1haW5pbmdGaWxlQ291bnQgZGVmaW5lZCBpbiB0aGUgY29uc3RyYWludHMuXHJcbiAgICAgKiBJZiB0aGUgbnVtYmVyIG9mIGZpbGVzIGV4Y2VlZHMgdGhlIGFsbG93ZWQgY291bnQsIGFsbCBmaWxlcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBmbG93XHJcbiAgICAgKiBBbiBlcnJvciBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBlcnJvciBhbGVydHMuXHJcbiAgICAgKi9cclxuICAgIGlmIChmaWxlcy5sZW5ndGggPiB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UudXBsb2FkQ29uZmlnJC52YWx1ZSEuY29uc3RyYWludHMucmVtYWluaW5nRmlsZUNvdW50KSB7XHJcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgIHRoaXMuZmxvdy5mbG93SnMucmVtb3ZlRmlsZShmaWxlKTtcclxuICAgICAgfVxyXG4gICAgICBlcnJvcnMucHVzaChgVGhlIG51bWJlciBvZiBmaWxlcyBleGNlZWRzIHRoZSBhbGxvd2VkIGxpbWl0LiBZb3UgY2FuIHVwbG9hZCB1cCB0byAke3RoaXMuZG9jdW1lbnRzVXBsb2FkU2VydmljZS51cGxvYWRDb25maWckLnZhbHVlIS5jb25zdHJhaW50cy5yZW1haW5pbmdGaWxlQ291bnR9IGZpbGVzLmApXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgaWYgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGZpbGVzIHN1Ym1pdHRlZCBleGNlZWRzIHRoZSByZW1haW5pbmdGaWxlU2l6ZSBkZWZpbmVkIGluIHRoZSBjb25zdHJhaW50cy5cclxuICAgICAqIElmIHRoZSB0b3RhbCBzaXplIGV4Y2VlZHMgdGhlIGFsbG93ZWQgc2l6ZSwgYWxsIGZpbGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIGZsb3dcclxuICAgICAqIEFuIGVycm9yIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGVycm9yIGFsZXJ0cy5cclxuICAgICAqXHJcbiAgICAgKiBAcmVtYXJrc1xyXG4gICAgICogVGhlIG1heGltdW0gc2l6ZSBvZiB0aGUgZmlsZXMgdGhhdCBjYW4gYmUgdXBsb2FkZWQgaXMgdGVtcG9yYXJ5IHNldCB0byB0aGUgbWF4aW11bSBvZiAxMjggTUIgYW5kIHRoZSByZW1haW5pbmdGaWxlU2l6ZU1CIGRlZmluZWQgaW4gdGhlIGNvbnN0cmFpbnRzLlxyXG4gICAgICogV2FpdGluZyBmb3IgdGhlIHBsdWdpbiB0byBoYW5kbGUgdGhpcyBrZXN0cmVsIGlzc3VlXHJcbiAgICAgKi9cclxuICAgIGVsc2UgaWYgKHRoaXMuZG9jdW1lbnRzVXBsb2FkU2VydmljZS5jb252ZXJ0Qnl0ZXNUb01CKHRoaXMuZmxvdy5mbG93SnMuZ2V0U2l6ZSgpKSA+IE1hdGgubWluKDEyOCwgdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLnVwbG9hZENvbmZpZyQudmFsdWUhLmNvbnN0cmFpbnRzLnJlbWFpbmluZ0ZpbGVTaXplTUIpKSB7XHJcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xyXG4gICAgICAgIHRoaXMuZmxvdy5mbG93SnMucmVtb3ZlRmlsZShmaWxlKTtcclxuICAgICAgfVxyXG4gICAgICBlcnJvcnMucHVzaChgVGhlIHRvdGFsIHNpemUgb2YgdGhlIGZpbGVzIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbGltaXQuIFlvdSBjYW4gdXBsb2FkIGZpbGVzIHVwIHRvICR7TWF0aC5taW4oMTI4LCB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UudXBsb2FkQ29uZmlnJC52YWx1ZSEuY29uc3RyYWludHMucmVtYWluaW5nRmlsZVNpemVNQil9IE1CLmApXHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDaGVja3MgaWYgdGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBmaWxlcyBzdWJtaXR0ZWQgaXMgbm90IGFsbG93ZWQuXHJcbiAgICAgKiBJZiB0aGUgZmlsZSBleHRlbnNpb24gaXMgbm90IGFsbG93ZWQsIHRoZSBmaWxlIGlzIHJlbW92ZWQgZnJvbSB0aGUgZmxvd1xyXG4gICAgICogQW4gZXJyb3IgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgZXJyb3IgYWxlcnRzLlxyXG4gICAgICovXHJcbiAgICBlbHNlIHtcclxuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UudXBsb2FkQ29uZmlnJC52YWx1ZSEuY29uc3RyYWludHMuc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnMuaW5jbHVkZXMoYCR7ZmlsZS5nZXRFeHRlbnNpb24oKX1gKSkge1xyXG4gICAgICAgICAgdGhpcy5mbG93LmZsb3dKcy5yZW1vdmVGaWxlKGZpbGUpO1xyXG4gICAgICAgICAgZXJyb3JzLnB1c2goYFRoZSBmaWxlIGV4dGVuc2lvbiBcIiR7ZmlsZS5nZXRFeHRlbnNpb24oKX1cIiBpcyBub3Qgc3VwcG9ydGVkLmApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIEFkZCB1bmlxdWUgZXJyb3IgbWVzc2FnZXMgdG8gdGhlIGVycm9yIGFsZXJ0c1xyXG4gICAgdGhpcy5lcnJvckFsZXJ0cyA9IFsuLi5uZXcgU2V0KGVycm9ycyldO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfb25GaWxlc0FkZGVkKGZpbGVzOiBGbG93RmlsZVtdKSB7fVxyXG5cclxuICBvbkRyYWdlbnRlcigpIHtcclxuICAgIHRoaXMuZHJhZ2dpbmckLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XHJcbiAgICBpZiAoXHJcbiAgICAgICFldmVudC5yZWxhdGVkVGFyZ2V0IHx8XHJcbiAgICAgICEoZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcIi5kcm9wem9uZVwiKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZHJhZ2dpbmckLm5leHQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Ecm9wKCkge1xyXG4gICAgdGhpcy5kcmFnZ2luZyQubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICB0cmFja1RyYW5zZmVyKHRyYW5zZmVyOiBUcmFuc2Zlcikge1xyXG4gICAgcmV0dXJuIHRyYW5zZmVyLmlkO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYXRlcyB0aGUgdXBsb2FkIHByb2Nlc3MgYnkgaW52b2tpbmcgdGhlIGB1cGxvYWRgIG1ldGhvZFxyXG4gICAqIG9mIHRoZSBgZmxvd2AgaW5zdGFuY2UuXHJcbiAgICogVGhlIGB1cGxvYWRgIG1ldGhvZCBpcyBvdmVycmlkZGVuIGluIHRoZSBgbmdPbkluaXRgIG1ldGhvZCB0byBtYXRjaCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBhc3Npc3RhbnQgQVBJLlxyXG4gICAqL1xyXG4gIHVwbG9hZCgpIHtcclxuICAgIHRoaXMuZmxvdy51cGxvYWQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYXRlcyB0aGUgZmlsZSB1cGxvYWQgcHJvY2VzcyBieSBwcmVwYXJpbmcgdGhlIGZvcm0gZGF0YSxcclxuICAgKiBzZXR0aW5nIHRoZSB1cGxvYWRpbmcgZmxhZywgYW5kIG1ha2luZyBhbiBBUEkgY2FsbCB0byB1cGxvYWQgdGhlIGZpbGVzLlxyXG4gICAqXHJcbiAgICogQHJlbWFya3NcclxuICAgKiAtIENvbGxlY3RzIGFsbCBmaWxlcyBmcm9tIHRoZSBgZmxvd0pzYCBpbnN0YW5jZSBhbmQgYXBwZW5kcyB0aGVtIHRvIGEgYEZvcm1EYXRhYCBvYmplY3QuXHJcbiAgICogLSBTdWJzY3JpYmVzIHRvIHRoZSB1cGxvYWQgcHJvY2VzcyB0byBoYW5kbGUgcHJvZ3Jlc3MgdXBkYXRlcywgY29tcGxldGlvbiwgYW5kIGVycm9ycy5cclxuICAgKiAtIFRyaWdnZXJzIHRyYWNraW5nIHRoZSBpbmRleGluZyBwcm9jZXNzIHVwb24gc3VjY2Vzc2Z1bCB1cGxvYWQgY29tcGxldGlvbi5cclxuICAgKiAtIENsZWFucyB1cCB0aGUgYGZsb3dgIGluc3RhbmNlIGFmdGVyIHRoZSB1cGxvYWQgcHJvY2VzcyBpcyBmaW5hbGl6ZWQuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBzdGFydFVwbG9hZCgpIHtcclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgLy8gQWRkIGFsbCBmaWxlcyB3aXRoIHRoZWlyIG9yaWdpbmFsIG5hbWVzXHJcbiAgICB0aGlzLmZsb3cuZmxvd0pzLmZpbGVzLmZvckVhY2goKGZpbGUpID0+IHtcclxuICAgICAgZm9ybURhdGEuYXBwZW5kKGZpbGUubmFtZSwgZmlsZS5maWxlKTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIENsZWFyIHRoZSBlcnJvciBhbGVydHNcclxuICAgIHRoaXMuZXJyb3JBbGVydHMgPSBbXTtcclxuICAgIC8vIFNldCB0aGUgdXBsb2FkaW5nIGZsYWcgdG8gdHJ1ZVxyXG4gICAgdGhpcy51cGxvYWRpbmckLm5leHQodHJ1ZSk7XHJcblxyXG4gICAgLy8gTWFrZSB0aGUgQVBJIGNhbGwgdG8gdXBsb2FkIHRoZSBmaWxlc1xyXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLnVwbG9hZERvY3VtZW50cyhmb3JtRGF0YSkucGlwZShcclxuICAgICAgICB0YXAoKGV2ZW50OiBVcGxvYWRFdmVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICd1cGxvYWRQcm9ncmVzcycpIHtcclxuICAgICAgICAgICAgdGhpcy51cGxvYWRpbmdJbmZvcyQubmV4dChldmVudCBhcyBVcGxvYWRpbmdJbmZvcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3Jlc3BvbnNlJykge1xyXG4gICAgICAgICAgICB0aGlzLnRyYWNrSW5kZXhpbmdQcm9jZXNzKGV2ZW50LmJvZHkuc3RhdHVzVG9rZW4pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRpbmckLm5leHQoZmFsc2UpOyAvLyBTZXQgdGhlIHVwbG9hZGluZyBmbGFnIHRvIGZhbHNlIE9OTFkgaW4gY2FzZSBvZiBhbiBlcnJvci4gT3RoZXJ3aXNlLCBrZWVwIGl0IHRydWUgdW50aWwgdGhlIHN0YXJ0IG9mIGluZGV4aW5nIHByb2Nlc3MgaW4gb3JkZXIgdG8gcHJldmVudCBmbGlja2VyaW5nIG9mIHRoZSBVSVxyXG4gICAgICAgICAgdGhpcy51cGxvYWRpbmdJbmZvcyQubmV4dCh1bmRlZmluZWQpOyAvLyBDbGVhciB0aGUgdXBsb2FkaW5nIGluZm9zXHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmVycm9yKFwiRXJyb3IgdXBsb2FkaW5nIGZpbGVzXCIpO1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIC8vIENsZWFyIHRoZSBmbG93IGluc3RhbmNlIGFmdGVyIHRoZSB1cGxvYWQgaXMgY29tcGxldGUgb3IgYW4gZXJyb3Igb2NjdXJzXHJcbiAgICAgICAgICB0aGlzLmZsb3cuY2FuY2VsKCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKS5zdWJzY3JpYmUoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFRyYWNrcyB0aGUgaW5kZXhpbmcgcHJvY2VzcyBmb3IgYSBzaW5nbGUgZG9jdW1lbnRzIHVwbG9hZCBzZXNzaW9uIGJ5IHBvbGxpbmcgdGhlIEFQSSBmb3IgaXRzIHN0YXR1cy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSB0b2tlbiAtIEEgdW5pcXVlIHRva2VuIHJlcHJlc2VudGluZyB0aGUgc2luZ2xlIGRvY3VtZW50cyB1cGxvYWQgc2Vzc2lvbi5cclxuICAgKlxyXG4gICAqIEByZW1hcmtzXHJcbiAgICogLSBDbGVhcnMgdGhlIHVwbG9hZGluZyBmbGFncyBhbmQgc2V0cyB0aGUgaW5kZXhpbmcgZmxhZyB0byB0cnVlIGJlZm9yZSBzdGFydGluZyB0aGUgcHJvY2Vzcy5cclxuICAgKiAtIFBvbGxzIHRoZSBBUEkgZXZlcnkgc2Vjb25kIHRvIHJldHJpZXZlIHRoZSBjdXJyZW50IGluZGV4aW5nIHN0YXR1cy5cclxuICAgKiAtIFVwZGF0ZXMgdGhlIGBpbmRleGluZ0luZm9zYCBwcm9wZXJ0eSB3aXRoIHRoZSBsYXRlc3Qgc3RhdHVzLlxyXG4gICAqIC0gU3RvcHMgcG9sbGluZyB3aGVuIHRoZSBpbmRleGluZyBwcm9jZXNzIGlzIGNvbXBsZXRlZCBvciBhbiBlcnJvciBvY2N1cnMuXHJcbiAgICogLSBDbGVhbnMgdXAgYnkgcmVzZXR0aW5nIHRoZSBpbmRleGluZyBmbGFncyBhbmQgY2xlYXJpbmcgdGhlIGBpbmRleGluZ0luZm9zYCBwcm9wZXJ0eSB3aGVuIHRoZSBwcm9jZXNzIGlzIGZpbmFsaXplZC5cclxuICAgKi9cclxuICB0cmFja0luZGV4aW5nUHJvY2Vzcyh0b2tlbjogc3RyaW5nKSB7XHJcbiAgICAvLyBDbGVhciB0aGUgdXBsb2FkaW5nIGZsYWdzXHJcbiAgICB0aGlzLnVwbG9hZGluZyQubmV4dChmYWxzZSk7XHJcbiAgICB0aGlzLnVwbG9hZGluZ0luZm9zJC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICAvLyBTZXQgdGhlIGluZGV4aW5nIGZsYWcgdG8gdHJ1ZVxyXG4gICAgdGhpcy5pbmRleGluZyQubmV4dCh0cnVlKTtcclxuXHJcbiAgICAvLyBDb21iaW5lIGltbWVkaWF0ZSBBUEkgY2FsbCB3aXRoIGludGVydmFsLWJhc2VkIHBvbGxpbmdcclxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIGludGVydmFsKHRoaXMucG9sbGluZ0ludGVydmFsKS5waXBlKFxyXG4gICAgICAgIHN0YXJ0V2l0aCgwKSwgLy8gVHJpZ2dlciB0aGUgQVBJIGNhbGwgaW1tZWRpYXRlbHlcclxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmdldEluZGV4aW5nU3RhdHVzKHRva2VuKSksXHJcbiAgICAgICAgdGFwKChyZXM6IEluZGV4aW5nSW5mb3MpID0+IHRoaXMuaW5kZXhpbmdJbmZvcyQubmV4dChyZXMpKSxcclxuICAgICAgICB0YWtlV2hpbGUoKHJlc3BvbnNlOiBJbmRleGluZ0luZm9zKSA9PiAhcmVzcG9uc2UuaXNDb21wbGV0ZWQsIHRydWUpLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xyXG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25zU2VydmljZS5lcnJvcihcIkVycm9yIHJldHJpZXZpbmcgaW5kZXhpbmcgc3RhdHVzXCIpO1xyXG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHtcclxuICAgICAgICAgIC8vIENsZWFyIHRoZSBpbmRleGluZyBmbGFnc1xyXG4gICAgICAgICAgdGhpcy5pbmRleGluZyQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgICB0aGlzLmluZGV4aW5nSW5mb3MkLm5leHQodW5kZWZpbmVkKTtcclxuICAgICAgICB9KVxyXG4gICAgICApLnN1YnNjcmliZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW5kZXhpbmcgcHJvZ3Jlc3MgYXMgYSBwZXJjZW50YWdlIG9mIGNvbXBsZXRlZCBkb2N1bWVudHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gaW5mb3MgLSBUaGUgaW5kZXhpbmcgaW5mb3JtYXRpb24gY29udGFpbmluZyB0aGUgbGlzdCBvZiBkb2N1bWVudHMgYW5kIHRoZWlyIHN0YXR1c2VzLlxyXG4gICAqIEByZXR1cm5zIFRoZSBwcm9ncmVzcyBhcyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEsIHdoZXJlIDAgaW5kaWNhdGVzIG5vIHByb2dyZXNzIGFuZCAxIGluZGljYXRlcyBhbGwgZG9jdW1lbnRzIGFyZSBwcm9jZXNzZWQgKHByb2Nlc3NlZCBtZWFucyBlaXRoZXIgaW5kZXhlZCBvciBlcnJvcmVkKS5cclxuICAgKiAgICAgICAgICBSZXR1cm5zIDAgaWYgdGhlIGlucHV0IGlzIGludmFsaWQgb3IgdGhlcmUgYXJlIG5vIGRvY3VtZW50cy5cclxuICAgKi9cclxuICBnZXRJbmRleGluZ1Byb2dyZXNzKGluZm9zOiBJbmRleGluZ0luZm9zIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcclxuICAgIGlmICghaW5mb3MgfHwgIWluZm9zLmRvY3MpIHJldHVybiAwO1xyXG4gICAgY29uc3QgY29tcGxldGVkID0gaW5mb3MuZG9jcy5maWx0ZXIoZG9jID0+IGRvYy5zdGF0dXMgPT09IFwiSW5kZXhlZFwiIHx8IGRvYy5zdGF0dXMgPT09IFwiRXJyb3JcIikubGVuZ3RoO1xyXG4gICAgY29uc3QgdG90YWwgPSBpbmZvcy5kb2NzLmxlbmd0aDtcclxuICAgIHJldHVybiBjb21wbGV0ZWQvdG90YWw7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bmctY29udGFpbmVyICNmbG93PVwiZmxvd1wiIFtmbG93Q29uZmlnXT1cImZsb3dDb25maWdcIj48L25nLWNvbnRhaW5lcj5cclxuPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLWNvbnRhaW5lclwiPlxyXG4gIDxpbnB1dFxyXG4gICAgdHlwZT1cImZpbGVcIlxyXG4gICAgZmxvd0J1dHRvblxyXG4gICAgW2Zsb3ddPVwiZmxvdy5mbG93SnNcIlxyXG4gICAgbXVsdGlwbGVcclxuICAgIGhpZGRlblxyXG4gICAgI2ZpbGVJbnB1dD5cclxuICA8ZGl2XHJcbiAgICBmbG93RHJvcFxyXG4gICAgW2Zsb3ddPVwiZmxvdy5mbG93SnNcIlxyXG4gICAgKGRyYWdlbnRlcik9XCJvbkRyYWdlbnRlcigpXCJcclxuICAgIChkcmFnbGVhdmUpPVwib25EcmFnbGVhdmUoJGV2ZW50KVwiXHJcbiAgICAoZHJvcCk9XCJvbkRyb3AoKVwiXHJcbiAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxyXG4gICAgY2xhc3M9XCJkcm9wem9uZVwiXHJcbiAgICBbbmdDbGFzc109XCJ7J2Ryb3B6b25lLS1hY3RpdmUnOiAoZHJhZ2dpbmckIHwgYXN5bmMpfVwiXHJcbiAgICBbaGlkZGVuXT1cIih1cGxvYWRpbmckIHwgYXN5bmMpIHx8IChpbmRleGluZyQgfCBhc3luYylcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoZHJhZ2dpbmckIHwgYXN5bmMpOyBlbHNlIGRyYWdnaW5nQ29udGVudFwiPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNsb3VkLXVwbG9hZC1hbHRcIj48L2k+XHJcbiAgICAgICAgPHNwYW4+RHJhZyBhbmQgZHJvcCBmaWxlcyBoZXJlIE9yPC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1vcmFuZ2VcIj5DbGljayB0byBicm93c2U8L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI2RyYWdnaW5nQ29udGVudD5cclxuICAgICAgICA8c3Bhbj5Ecm9wIGZpbGVzIGhlcmU8L3NwYW4+XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCIodXBsb2FkaW5nJCB8IGFzeW5jKSB8fCAoaW5kZXhpbmckIHwgYXN5bmMpXCIgY2xhc3M9XCJkcm9wem9uZSBkcm9wem9uZS0tYWN0aXZlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHVwbG9hZGluZyQgfCBhc3luYyk7IGVsc2UgaW5kZXhpbmdTdGF0ZVwiPlxyXG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1zcGlubmVyIGZhLXB1bHNlXCI+PC9pPlxyXG4gICAgICA8c3Bhbj5cclxuICAgICAgICBVcGxvYWRpbmcge3sgKGZsb3cudHJhbnNmZXJzJCB8IGFzeW5jKSEudHJhbnNmZXJzLmxlbmd0aCB9fSBmaWxlc1xyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwiKHVwbG9hZGluZ0luZm9zJCB8IGFzeW5jKSBhcyB1cGxvYWRpbmdJbmZvc1wiPnt7IHVwbG9hZGluZ0luZm9zLnByb2dyZXNzIHwgbnVtYmVyOicxLjAtMCcgfX0lPC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2luZGV4aW5nU3RhdGU+XHJcbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXIgZmEtcHVsc2VcIj48L2k+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmRleGluZ0luZm9zJCB8IGFzeW5jIGFzIGluZGV4aW5nSW5mb1wiPlxyXG4gICAgICAgIDxzcGFuPkluZGV4aW5nIHt7IGluZGV4aW5nSW5mby5kb2NzLmxlbmd0aCB9fSBmaWxlczwvc3Bhbj5cclxuICAgICAgICA8c3Bhbj57eyBnZXRJbmRleGluZ1Byb2dyZXNzKGluZGV4aW5nSW5mbykgKiAxMDAgfCBudW1iZXI6JzEuMC0wJyB9fSU8L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHVsICpuZ0lmPVwiZXJyb3JBbGVydHMubGVuZ3RoID4gMFwiIGNsYXNzPVwiZXJyb3ItbGlzdCBtdC0zXCI+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGVycm9yIG9mIGVycm9yQWxlcnRzXCI+XHJcbiAgICAgIHt7IGVycm9yIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcblxyXG4gIDxkaXYgKm5nSWY9XCIoKGZsb3cudHJhbnNmZXJzJCB8IGFzeW5jKT8udHJhbnNmZXJzPy5sZW5ndGggPiAwKSAmJiAhKHVwbG9hZGluZyQgfCBhc3luYylcIiBjbGFzcz1cImZpbGUtbGlzdCBtdC0zXCI+XHJcbiAgICA8dWw+XHJcbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgdHJhbnNmZXIgb2YgKGZsb3cudHJhbnNmZXJzJCB8IGFzeW5jKSEudHJhbnNmZXJzOyB0cmFja0J5OiB0cmFja1RyYW5zZmVyXCI+XHJcbiAgICAgICAgPHNxLWZvcm1hdC1pY29uIFtleHRlbnNpb25dPVwidHJhbnNmZXIuZmxvd0ZpbGUuZ2V0RXh0ZW5zaW9uKClcIiBjbGFzcz1cIm1lLTFcIj48L3NxLWZvcm1hdC1pY29uPlxyXG4gICAgICAgIDxzcGFuIFtzcVRvb2x0aXBdPVwidHJhbnNmZXIubmFtZVwiPnt7IHRyYW5zZmVyLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdHJhc2ggbXMtMVwiIChjbGljayk9XCJmbG93LmNhbmNlbEZpbGUodHJhbnNmZXIpXCIgW3NxVG9vbHRpcF09XCInQ2FuY2VsJ1wiPjwvaT5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXggbXQtMlwiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgY2xhc3M9XCJidG4gYnRuLWxpZ2h0IGNhbmNlbC1idG4gbWUtMlwiXHJcbiAgICAgIChjbGljayk9XCJmbG93LmNhbmNlbCgpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiEoKGZsb3cudHJhbnNmZXJzJCB8IGFzeW5jKT8udHJhbnNmZXJzPy5sZW5ndGggPiAwKSB8fCAodXBsb2FkaW5nJCB8IGFzeW5jKSB8fCAoaW5kZXhpbmckIHwgYXN5bmMpXCI+XHJcbiAgICAgIENhbmNlbFxyXG4gICAgPC9idXR0b24+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBjbGFzcz1cInVwbG9hZC1idG5cIlxyXG4gICAgICAoY2xpY2spPVwidXBsb2FkKClcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiISgoZmxvdy50cmFuc2ZlcnMkIHwgYXN5bmMpPy50cmFuc2ZlcnM/Lmxlbmd0aCA+IDApIHx8ICh1cGxvYWRpbmckIHwgYXN5bmMpIHx8IChpbmRleGluZyQgfCBhc3luYylcIj5cclxuICAgICAgVXBsb2FkXHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2RvY3VtZW50cy11cGxvYWQvZG9jdW1lbnQtdXBsb2FkL2RvY3VtZW50LXVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9kb2N1bWVudHMtdXBsb2FkL2RvY3VtZW50LXVwbG9hZC9kb2N1bWVudC11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBMkIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFFBQVEsRUFDUixRQUFRLEVBQ1IsWUFBWSxFQUNaLFNBQVMsRUFDVCxTQUFTLEVBQ1QsR0FBRyxFQUNILFNBQVMsR0FDVixNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7Ozs7O0FBWTlFLE1BQU0sT0FBTyx1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LENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3RHLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ2hDLE9BQU8sU0FBUyxHQUFDLEtBQUssQ0FBQztJQUN6QixDQUFDOztvSEE1UlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMklBSHZCLENBQUMsc0JBQXNCLENBQUMsc0lDdkNyQyxxOUZBK0VBLHlwSER2Q1ksWUFBWSwwY0FBRSxhQUFhLHlZQUFFLG1CQUFtQixpRkFBRSxXQUFXOzJGQUU1RCx1QkFBdUI7a0JBUm5DLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksYUFDTCxDQUFDLHNCQUFzQixDQUFDLFdBQzFCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxXQUFXLENBQUM7OEJBSS9ELFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFK0IsSUFBSTtzQkFBeEMsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmd4Rmxvd01vZHVsZSwgRmxvd0RpcmVjdGl2ZSwgVHJhbnNmZXIgfSBmcm9tIFwiQGZsb3dqcy9uZ3gtZmxvd1wiO1xuaW1wb3J0IHsgRmxvd0ZpbGUgfSBmcm9tIFwiZmxvd2pzXCI7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNhdGNoRXJyb3IsXG4gIEVNUFRZLFxuICBmaWx0ZXIsXG4gIGZpbmFsaXplLFxuICBpbnRlcnZhbCxcbiAgU3Vic2NyaXB0aW9uLFxuICBzd2l0Y2hNYXAsXG4gIHRha2VXaGlsZSxcbiAgdGFwLFxuICBzdGFydFdpdGgsXG59IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBMb2dpblNlcnZpY2UgfSBmcm9tIFwiQHNpbmVxdWEvY29yZS9sb2dpblwiO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uc1NlcnZpY2UgfSBmcm9tIFwiQHNpbmVxdWEvY29yZS9ub3RpZmljYXRpb25cIjtcbmltcG9ydCB7IFV0aWxzTW9kdWxlIH0gZnJvbSBcIkBzaW5lcXVhL2NvbXBvbmVudHMvdXRpbHNcIjtcbmltcG9ydCB7IEluc3RhbmNlTWFuYWdlclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vaW5zdGFuY2UtbWFuYWdlci5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDaGF0U2VydmljZSB9IGZyb20gXCIuLi8uLi9jaGF0LnNlcnZpY2VcIjtcbmltcG9ydCB7IERvY3VtZW50c1VwbG9hZFNlcnZpY2UgfSBmcm9tIFwiLi4vZG9jdW1lbnRzLXVwbG9hZC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBGb3JtYXRJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZm9ybWF0LWljb24vZm9ybWF0LWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IENoYXRDb25maWcgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IEluZGV4aW5nSW5mb3MsIFVwbG9hZEV2ZW50LCBVcGxvYWRpbmdJbmZvcyB9IGZyb20gXCIuLi9kb2N1bWVudHMtdXBsb2FkLm1vZGVsXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzcS1kb2N1bWVudC11cGxvYWRcIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9kb2N1bWVudC11cGxvYWQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL2RvY3VtZW50LXVwbG9hZC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbRG9jdW1lbnRzVXBsb2FkU2VydmljZV0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE5neEZsb3dNb2R1bGUsIEZvcm1hdEljb25Db21wb25lbnQsIFV0aWxzTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIC8qKiBEZWZpbmUgdGhlIGtleSBiYXNlZCBvbiBpdCwgdGhlIGFwcHJvcHJpYXRlIGNoYXRTZXJ2aWNlIGluc3RhbmNlIHdpbGwgYmUgcmV0dXJuZWQgZnJvbSBpbnN0YW5jZU1hbmFnZXJTZXJ2aWNlICovXG4gIEBJbnB1dCgpIGluc3RhbmNlSWQ6IHN0cmluZztcbiAgLyoqIFBvbGxpbmcgaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHRvIHVwZGF0ZSB0aGUgaW5kZXhpbmcgc3RhdHVzIG9mIHRoZSB1cGxvYWRlZCBkb2N1bWVudHMgKi9cbiAgQElucHV0KCkgcG9sbGluZ0ludGVydmFsIDogbnVtYmVyID0gMTAwMDtcbiAgLy8gUmVmZXJlbmNlIHRvIHRoZSBmbG93IGRpcmVjdGl2ZVxuICBAVmlld0NoaWxkKFwiZmxvd1wiLCB7IHN0YXRpYzogdHJ1ZSB9KSBmbG93ITogRmxvd0RpcmVjdGl2ZTtcblxuICBwdWJsaWMgY2hhdFNlcnZpY2U6IENoYXRTZXJ2aWNlO1xuICByZWFkb25seSBmbG93Q29uZmlnOiBmbG93anMuRmxvd09wdGlvbnMgPSB7XG4gICAgLy8gRGlzYWJsZXMgY2h1bmsgdGVzdGluZyBiZWZvcmUgdXBsb2FkaW5nIGFjdHVhbCBmaWxlIGRhdGEuIFRodXMsIGF2b2lkcyB1bm5lY2Vzc2FyeSByZXF1ZXN0cyBhbmQgc3BlZWRzIHVwIHVwbG9hZHNcbiAgICB0ZXN0Q2h1bmtzOiBmYWxzZSxcbiAgICAvLyBBbGxvd3MgbXVsdGlwbGUgZmlsZSB1cGxvYWRzIHNpbXVsdGFuZW91c2x5XG4gICAgc2luZ2xlRmlsZTogZmFsc2UsXG4gICAgLy8gQWxsb3dzIHRoZSBzYW1lIGZpbGUgdG8gYmUgdXBsb2FkZWQgbXVsdGlwbGUgdGltZXNcbiAgICBhbGxvd0R1cGxpY2F0ZVVwbG9hZHM6IHRydWUsXG4gICAgcXVlcnk6ICgpID0+IHtcbiAgICAgIHJldHVybiB7fTsgLy8gRW1wdHkgb2JqZWN0IHRvIHByZXZlbnQgcXVlcnkgcGFyYW1ldGVyc1xuICAgIH0sXG4gICAgcHJlcHJvY2VzczogKGNodW5rKSA9PiBjaHVuay5hYm9ydCgpIC8vIFByZXZlbnRzIHRoZSBkZWZhdWx0IGZsb3cgdXBsb2FkIG9mIGNodW5rc1xuICB9O1xuICBwdWJsaWMgZXJyb3JBbGVydHM6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyBkcmFnZ2luZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIGluZGV4aW5nJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgaW5kZXhpbmdJbmZvcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEluZGV4aW5nSW5mb3MgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHB1YmxpYyB1cGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyB1cGxvYWRpbmdJbmZvcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFVwbG9hZGluZ0luZm9zIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwdWJsaWMgbG9naW5TZXJ2aWNlID0gaW5qZWN0KExvZ2luU2VydmljZSk7XG4gIHB1YmxpYyBpbnN0YW5jZU1hbmFnZXJTZXJ2aWNlID0gaW5qZWN0KEluc3RhbmNlTWFuYWdlclNlcnZpY2UpO1xuICBwdWJsaWMgZG9jdW1lbnRzVXBsb2FkU2VydmljZSA9IGluamVjdChEb2N1bWVudHNVcGxvYWRTZXJ2aWNlKTtcbiAgcHVibGljIG5vdGlmaWNhdGlvbnNTZXJ2aWNlID0gaW5qZWN0KE5vdGlmaWNhdGlvbnNTZXJ2aWNlKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5sb2dpblNlcnZpY2UuZXZlbnRzXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIGZpbHRlcigoZSkgPT4gZS50eXBlID09PSBcImxvZ2luLWNvbXBsZXRlXCIpLFxuICAgICAgICAgIHRhcCgoXykgPT4gdGhpcy5pbnN0YW50aWF0ZUNoYXRTZXJ2aWNlKCkpLFxuICAgICAgICAgIHN3aXRjaE1hcCgoXykgPT4gdGhpcy5jaGF0U2VydmljZS5hc3Npc3RhbnRDb25maWckKSxcbiAgICAgICAgICBmaWx0ZXIoKGNvbmZpZzogQ2hhdENvbmZpZyB8IHVuZGVmaW5lZCkgPT4gISFjb25maWcpLFxuICAgICAgICAgIHRhcCgoXykgPT4gdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmluaXQodGhpcy5jaGF0U2VydmljZSkpLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICAgLnN1YnNjcmliZSgpXG4gICAgKTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLmZsb3cuZXZlbnRzJC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIGNvbnN0IGV2dCA9IGV2ZW50IGFzIGFueTtcbiAgICAgICAgLy8gS2VwdCBpdCBqdXN0IGZvciByZWZlcmVuY2UgdG8gc2hvdyBob3cgdG8gYWNjZXNzIGRhdGEgb2YgZGlmZmVyZW50IGV2ZW50c1xuICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJmaWxlc0FkZGVkXCIpIHtcbiAgICAgICAgICBjb25zdCBhZGRlZEZpbGVzID0gZXZ0LmV2ZW50WzBdIGFzIEZsb3dGaWxlW107XG4gICAgICAgICAgdGhpcy5fb25GaWxlc0FkZGVkKGFkZGVkRmlsZXMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC50eXBlID09PSBcImZpbGVzU3VibWl0dGVkXCIpIHtcbiAgICAgICAgICB0aGlzLl9vbkZpbGVzU3VibWl0dGVkKCk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIC8vIE92ZXJyaWRlIHRoZSB1cGxvYWQgbWV0aG9kIG9mIHRoZSBmbG93IGRpcmVjdGl2ZVxuICAgIHRoaXMuZmxvdy51cGxvYWQgPSB0aGlzLnN0YXJ0VXBsb2FkLmJpbmQodGhpcyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGluc3RhbnRpYXRlQ2hhdFNlcnZpY2UoKTogdm9pZCB7XG4gICAgdGhpcy5jaGF0U2VydmljZSA9IHRoaXMuaW5zdGFuY2VNYW5hZ2VyU2VydmljZS5nZXRJbnN0YW5jZSh0aGlzLmluc3RhbmNlSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIHN1Ym1pc3Npb24gb2YgZmlsZXMuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIFRoaXMgbWV0aG9kIHBlcmZvcm1zIHRoZSBmb2xsb3dpbmcgY2hlY2tzIG9uIHRoZSBzdWJtaXR0ZWQgZmlsZXM6XG4gICAqXG4gICAqIDEuIENoZWNrcyBpZiB0aGUgbnVtYmVyIG9mIGZpbGVzIHN1Ym1pdHRlZCBleGNlZWRzIHRoZSByZW1haW5pbmdGaWxlQ291bnQgZGVmaW5lZCBpbiB0aGUgY29uc3RyYWludHMuXG4gICAqICAgIC0gSWYgdGhlIG51bWJlciBvZiBmaWxlcyBleGNlZWRzIHRoZSBhbGxvd2VkIGNvdW50LCBhbGwgZmlsZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgZmxvdy5cbiAgICogICAgLSBBbiBlcnJvciBtZXNzYWdlIGlzIGFkZGVkIHRvIHRoZSBlcnJvciBhbGVydHMuXG4gICAqXG4gICAqIDIuIENoZWNrcyBpZiB0aGUgdG90YWwgc2l6ZSBvZiB0aGUgZmlsZXMgc3VibWl0dGVkIGV4Y2VlZHMgdGhlIHJlbWFpbmluZ0ZpbGVTaXplIGRlZmluZWQgaW4gdGhlIGNvbnN0cmFpbnRzLlxuICAgKiAgICAtIElmIHRoZSB0b3RhbCBzaXplIGV4Y2VlZHMgdGhlIGFsbG93ZWQgc2l6ZSwgYWxsIGZpbGVzIGFyZSByZW1vdmVkIGZyb20gdGhlIGZsb3cuXG4gICAqICAgIC0gQW4gZXJyb3IgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgZXJyb3IgYWxlcnRzLlxuICAgKlxuICAgKiAzLiBDaGVja3MgaWYgdGhlIGZpbGUgZXh0ZW5zaW9uIG9mIHRoZSBmaWxlcyBzdWJtaXR0ZWQgaXMgbm90IGFsbG93ZWQuXG4gICAqICAgIC0gSWYgdGhlIGZpbGUgZXh0ZW5zaW9uIGlzIG5vdCBhbGxvd2VkLCB0aGUgZmlsZSBpcyByZW1vdmVkIGZyb20gdGhlIGZsb3cuXG4gICAqICAgIC0gQW4gZXJyb3IgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgZXJyb3IgYWxlcnRzLlxuICAgKi9cbiAgcHJpdmF0ZSBfb25GaWxlc1N1Ym1pdHRlZCgpIHtcbiAgICAvLyBHZXQgYWxsIGZpbGVzIGZyb20gdGhlIGZsb3dcbiAgICBjb25zdCBmaWxlcyA9IFsuLi50aGlzLmZsb3cuZmxvd0pzLmZpbGVzXTtcbiAgICAvLyBDbGVhciB0aGUgZXJyb3IgYWxlcnRzXG4gICAgdGhpcy5lcnJvckFsZXJ0cyA9IFtdO1xuICAgIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXTtcblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0aGUgbnVtYmVyIG9mIGZpbGVzIHN1Ym1pdHRlZCBleGNlZWRzIHRoZSByZW1haW5pbmdGaWxlQ291bnQgZGVmaW5lZCBpbiB0aGUgY29uc3RyYWludHMuXG4gICAgICogSWYgdGhlIG51bWJlciBvZiBmaWxlcyBleGNlZWRzIHRoZSBhbGxvd2VkIGNvdW50LCBhbGwgZmlsZXMgYXJlIHJlbW92ZWQgZnJvbSB0aGUgZmxvd1xuICAgICAqIEFuIGVycm9yIG1lc3NhZ2UgaXMgYWRkZWQgdG8gdGhlIGVycm9yIGFsZXJ0cy5cbiAgICAgKi9cbiAgICBpZiAoZmlsZXMubGVuZ3RoID4gdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLnVwbG9hZENvbmZpZyQudmFsdWUhLmNvbnN0cmFpbnRzLnJlbWFpbmluZ0ZpbGVDb3VudCkge1xuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIHRoaXMuZmxvdy5mbG93SnMucmVtb3ZlRmlsZShmaWxlKTtcbiAgICAgIH1cbiAgICAgIGVycm9ycy5wdXNoKGBUaGUgbnVtYmVyIG9mIGZpbGVzIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbGltaXQuIFlvdSBjYW4gdXBsb2FkIHVwIHRvICR7dGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLnVwbG9hZENvbmZpZyQudmFsdWUhLmNvbnN0cmFpbnRzLnJlbWFpbmluZ0ZpbGVDb3VudH0gZmlsZXMuYClcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIHRvdGFsIHNpemUgb2YgdGhlIGZpbGVzIHN1Ym1pdHRlZCBleGNlZWRzIHRoZSByZW1haW5pbmdGaWxlU2l6ZSBkZWZpbmVkIGluIHRoZSBjb25zdHJhaW50cy5cbiAgICAgKiBJZiB0aGUgdG90YWwgc2l6ZSBleGNlZWRzIHRoZSBhbGxvd2VkIHNpemUsIGFsbCBmaWxlcyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBmbG93XG4gICAgICogQW4gZXJyb3IgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgZXJyb3IgYWxlcnRzLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBUaGUgbWF4aW11bSBzaXplIG9mIHRoZSBmaWxlcyB0aGF0IGNhbiBiZSB1cGxvYWRlZCBpcyB0ZW1wb3Jhcnkgc2V0IHRvIHRoZSBtYXhpbXVtIG9mIDEyOCBNQiBhbmQgdGhlIHJlbWFpbmluZ0ZpbGVTaXplTUIgZGVmaW5lZCBpbiB0aGUgY29uc3RyYWludHMuXG4gICAgICogV2FpdGluZyBmb3IgdGhlIHBsdWdpbiB0byBoYW5kbGUgdGhpcyBrZXN0cmVsIGlzc3VlXG4gICAgICovXG4gICAgZWxzZSBpZiAodGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmNvbnZlcnRCeXRlc1RvTUIodGhpcy5mbG93LmZsb3dKcy5nZXRTaXplKCkpID4gTWF0aC5taW4oMTI4LCB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UudXBsb2FkQ29uZmlnJC52YWx1ZSEuY29uc3RyYWludHMucmVtYWluaW5nRmlsZVNpemVNQikpIHtcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICB0aGlzLmZsb3cuZmxvd0pzLnJlbW92ZUZpbGUoZmlsZSk7XG4gICAgICB9XG4gICAgICBlcnJvcnMucHVzaChgVGhlIHRvdGFsIHNpemUgb2YgdGhlIGZpbGVzIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbGltaXQuIFlvdSBjYW4gdXBsb2FkIGZpbGVzIHVwIHRvICR7TWF0aC5taW4oMTI4LCB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UudXBsb2FkQ29uZmlnJC52YWx1ZSEuY29uc3RyYWludHMucmVtYWluaW5nRmlsZVNpemVNQil9IE1CLmApXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBmaWxlIGV4dGVuc2lvbiBvZiB0aGUgZmlsZXMgc3VibWl0dGVkIGlzIG5vdCBhbGxvd2VkLlxuICAgICAqIElmIHRoZSBmaWxlIGV4dGVuc2lvbiBpcyBub3QgYWxsb3dlZCwgdGhlIGZpbGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBmbG93XG4gICAgICogQW4gZXJyb3IgbWVzc2FnZSBpcyBhZGRlZCB0byB0aGUgZXJyb3IgYWxlcnRzLlxuICAgICAqL1xuICAgIGVsc2Uge1xuICAgICAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7XG4gICAgICAgIGlmICghdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLnVwbG9hZENvbmZpZyQudmFsdWUhLmNvbnN0cmFpbnRzLnN1cHBvcnRlZEZpbGVFeHRlbnNpb25zLmluY2x1ZGVzKGAke2ZpbGUuZ2V0RXh0ZW5zaW9uKCl9YCkpIHtcbiAgICAgICAgICB0aGlzLmZsb3cuZmxvd0pzLnJlbW92ZUZpbGUoZmlsZSk7XG4gICAgICAgICAgZXJyb3JzLnB1c2goYFRoZSBmaWxlIGV4dGVuc2lvbiBcIiR7ZmlsZS5nZXRFeHRlbnNpb24oKX1cIiBpcyBub3Qgc3VwcG9ydGVkLmApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQWRkIHVuaXF1ZSBlcnJvciBtZXNzYWdlcyB0byB0aGUgZXJyb3IgYWxlcnRzXG4gICAgdGhpcy5lcnJvckFsZXJ0cyA9IFsuLi5uZXcgU2V0KGVycm9ycyldO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25GaWxlc0FkZGVkKGZpbGVzOiBGbG93RmlsZVtdKSB7fVxuXG4gIG9uRHJhZ2VudGVyKCkge1xuICAgIHRoaXMuZHJhZ2dpbmckLm5leHQodHJ1ZSk7XG4gIH1cblxuICBvbkRyYWdsZWF2ZShldmVudDogRHJhZ0V2ZW50KSB7XG4gICAgaWYgKFxuICAgICAgIWV2ZW50LnJlbGF0ZWRUYXJnZXQgfHxcbiAgICAgICEoZXZlbnQucmVsYXRlZFRhcmdldCBhcyBIVE1MRWxlbWVudCkuY2xvc2VzdChcIi5kcm9wem9uZVwiKVxuICAgICkge1xuICAgICAgdGhpcy5kcmFnZ2luZyQubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgb25Ecm9wKCkge1xuICAgIHRoaXMuZHJhZ2dpbmckLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgdHJhY2tUcmFuc2Zlcih0cmFuc2ZlcjogVHJhbnNmZXIpIHtcbiAgICByZXR1cm4gdHJhbnNmZXIuaWQ7XG4gIH1cblxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgdGhlIHVwbG9hZCBwcm9jZXNzIGJ5IGludm9raW5nIHRoZSBgdXBsb2FkYCBtZXRob2RcbiAgICogb2YgdGhlIGBmbG93YCBpbnN0YW5jZS5cbiAgICogVGhlIGB1cGxvYWRgIG1ldGhvZCBpcyBvdmVycmlkZGVuIGluIHRoZSBgbmdPbkluaXRgIG1ldGhvZCB0byBtYXRjaCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZSBhc3Npc3RhbnQgQVBJLlxuICAgKi9cbiAgdXBsb2FkKCkge1xuICAgIHRoaXMuZmxvdy51cGxvYWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWF0ZXMgdGhlIGZpbGUgdXBsb2FkIHByb2Nlc3MgYnkgcHJlcGFyaW5nIHRoZSBmb3JtIGRhdGEsXG4gICAqIHNldHRpbmcgdGhlIHVwbG9hZGluZyBmbGFnLCBhbmQgbWFraW5nIGFuIEFQSSBjYWxsIHRvIHVwbG9hZCB0aGUgZmlsZXMuXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIC0gQ29sbGVjdHMgYWxsIGZpbGVzIGZyb20gdGhlIGBmbG93SnNgIGluc3RhbmNlIGFuZCBhcHBlbmRzIHRoZW0gdG8gYSBgRm9ybURhdGFgIG9iamVjdC5cbiAgICogLSBTdWJzY3JpYmVzIHRvIHRoZSB1cGxvYWQgcHJvY2VzcyB0byBoYW5kbGUgcHJvZ3Jlc3MgdXBkYXRlcywgY29tcGxldGlvbiwgYW5kIGVycm9ycy5cbiAgICogLSBUcmlnZ2VycyB0cmFja2luZyB0aGUgaW5kZXhpbmcgcHJvY2VzcyB1cG9uIHN1Y2Nlc3NmdWwgdXBsb2FkIGNvbXBsZXRpb24uXG4gICAqIC0gQ2xlYW5zIHVwIHRoZSBgZmxvd2AgaW5zdGFuY2UgYWZ0ZXIgdGhlIHVwbG9hZCBwcm9jZXNzIGlzIGZpbmFsaXplZC5cbiAgICovXG4gIHByaXZhdGUgc3RhcnRVcGxvYWQoKSB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgIC8vIEFkZCBhbGwgZmlsZXMgd2l0aCB0aGVpciBvcmlnaW5hbCBuYW1lc1xuICAgIHRoaXMuZmxvdy5mbG93SnMuZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKGZpbGUubmFtZSwgZmlsZS5maWxlKTtcbiAgICB9KTtcblxuICAgIC8vIENsZWFyIHRoZSBlcnJvciBhbGVydHNcbiAgICB0aGlzLmVycm9yQWxlcnRzID0gW107XG4gICAgLy8gU2V0IHRoZSB1cGxvYWRpbmcgZmxhZyB0byB0cnVlXG4gICAgdGhpcy51cGxvYWRpbmckLm5leHQodHJ1ZSk7XG5cbiAgICAvLyBNYWtlIHRoZSBBUEkgY2FsbCB0byB1cGxvYWQgdGhlIGZpbGVzXG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuZG9jdW1lbnRzVXBsb2FkU2VydmljZS51cGxvYWREb2N1bWVudHMoZm9ybURhdGEpLnBpcGUoXG4gICAgICAgIHRhcCgoZXZlbnQ6IFVwbG9hZEV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICd1cGxvYWRQcm9ncmVzcycpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkaW5nSW5mb3MkLm5leHQoZXZlbnQgYXMgVXBsb2FkaW5nSW5mb3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3Jlc3BvbnNlJykge1xuICAgICAgICAgICAgdGhpcy50cmFja0luZGV4aW5nUHJvY2VzcyhldmVudC5ib2R5LnN0YXR1c1Rva2VuKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICB0aGlzLnVwbG9hZGluZyQubmV4dChmYWxzZSk7IC8vIFNldCB0aGUgdXBsb2FkaW5nIGZsYWcgdG8gZmFsc2UgT05MWSBpbiBjYXNlIG9mIGFuIGVycm9yLiBPdGhlcndpc2UsIGtlZXAgaXQgdHJ1ZSB1bnRpbCB0aGUgc3RhcnQgb2YgaW5kZXhpbmcgcHJvY2VzcyBpbiBvcmRlciB0byBwcmV2ZW50IGZsaWNrZXJpbmcgb2YgdGhlIFVJXG4gICAgICAgICAgdGhpcy51cGxvYWRpbmdJbmZvcyQubmV4dCh1bmRlZmluZWQpOyAvLyBDbGVhciB0aGUgdXBsb2FkaW5nIGluZm9zXG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2UuZXJyb3IoXCJFcnJvciB1cGxvYWRpbmcgZmlsZXNcIik7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIC8vIENsZWFyIHRoZSBmbG93IGluc3RhbmNlIGFmdGVyIHRoZSB1cGxvYWQgaXMgY29tcGxldGUgb3IgYW4gZXJyb3Igb2NjdXJzXG4gICAgICAgICAgdGhpcy5mbG93LmNhbmNlbCgpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVHJhY2tzIHRoZSBpbmRleGluZyBwcm9jZXNzIGZvciBhIHNpbmdsZSBkb2N1bWVudHMgdXBsb2FkIHNlc3Npb24gYnkgcG9sbGluZyB0aGUgQVBJIGZvciBpdHMgc3RhdHVzLlxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW4gLSBBIHVuaXF1ZSB0b2tlbiByZXByZXNlbnRpbmcgdGhlIHNpbmdsZSBkb2N1bWVudHMgdXBsb2FkIHNlc3Npb24uXG4gICAqXG4gICAqIEByZW1hcmtzXG4gICAqIC0gQ2xlYXJzIHRoZSB1cGxvYWRpbmcgZmxhZ3MgYW5kIHNldHMgdGhlIGluZGV4aW5nIGZsYWcgdG8gdHJ1ZSBiZWZvcmUgc3RhcnRpbmcgdGhlIHByb2Nlc3MuXG4gICAqIC0gUG9sbHMgdGhlIEFQSSBldmVyeSBzZWNvbmQgdG8gcmV0cmlldmUgdGhlIGN1cnJlbnQgaW5kZXhpbmcgc3RhdHVzLlxuICAgKiAtIFVwZGF0ZXMgdGhlIGBpbmRleGluZ0luZm9zYCBwcm9wZXJ0eSB3aXRoIHRoZSBsYXRlc3Qgc3RhdHVzLlxuICAgKiAtIFN0b3BzIHBvbGxpbmcgd2hlbiB0aGUgaW5kZXhpbmcgcHJvY2VzcyBpcyBjb21wbGV0ZWQgb3IgYW4gZXJyb3Igb2NjdXJzLlxuICAgKiAtIENsZWFucyB1cCBieSByZXNldHRpbmcgdGhlIGluZGV4aW5nIGZsYWdzIGFuZCBjbGVhcmluZyB0aGUgYGluZGV4aW5nSW5mb3NgIHByb3BlcnR5IHdoZW4gdGhlIHByb2Nlc3MgaXMgZmluYWxpemVkLlxuICAgKi9cbiAgdHJhY2tJbmRleGluZ1Byb2Nlc3ModG9rZW46IHN0cmluZykge1xuICAgIC8vIENsZWFyIHRoZSB1cGxvYWRpbmcgZmxhZ3NcbiAgICB0aGlzLnVwbG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgdGhpcy51cGxvYWRpbmdJbmZvcyQubmV4dCh1bmRlZmluZWQpO1xuICAgIC8vIFNldCB0aGUgaW5kZXhpbmcgZmxhZyB0byB0cnVlXG4gICAgdGhpcy5pbmRleGluZyQubmV4dCh0cnVlKTtcblxuICAgIC8vIENvbWJpbmUgaW1tZWRpYXRlIEFQSSBjYWxsIHdpdGggaW50ZXJ2YWwtYmFzZWQgcG9sbGluZ1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbi5hZGQoXG4gICAgICBpbnRlcnZhbCh0aGlzLnBvbGxpbmdJbnRlcnZhbCkucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKDApLCAvLyBUcmlnZ2VyIHRoZSBBUEkgY2FsbCBpbW1lZGlhdGVseVxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5kb2N1bWVudHNVcGxvYWRTZXJ2aWNlLmdldEluZGV4aW5nU3RhdHVzKHRva2VuKSksXG4gICAgICAgIHRhcCgocmVzOiBJbmRleGluZ0luZm9zKSA9PiB0aGlzLmluZGV4aW5nSW5mb3MkLm5leHQocmVzKSksXG4gICAgICAgIHRha2VXaGlsZSgocmVzcG9uc2U6IEluZGV4aW5nSW5mb3MpID0+ICFyZXNwb25zZS5pc0NvbXBsZXRlZCwgdHJ1ZSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbnNTZXJ2aWNlLmVycm9yKFwiRXJyb3IgcmV0cmlldmluZyBpbmRleGluZyBzdGF0dXNcIik7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgIC8vIENsZWFyIHRoZSBpbmRleGluZyBmbGFnc1xuICAgICAgICAgIHRoaXMuaW5kZXhpbmckLm5leHQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuaW5kZXhpbmdJbmZvcyQubmV4dCh1bmRlZmluZWQpO1xuICAgICAgICB9KVxuICAgICAgKS5zdWJzY3JpYmUoKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsY3VsYXRlcyB0aGUgaW5kZXhpbmcgcHJvZ3Jlc3MgYXMgYSBwZXJjZW50YWdlIG9mIGNvbXBsZXRlZCBkb2N1bWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBpbmZvcyAtIFRoZSBpbmRleGluZyBpbmZvcm1hdGlvbiBjb250YWluaW5nIHRoZSBsaXN0IG9mIGRvY3VtZW50cyBhbmQgdGhlaXIgc3RhdHVzZXMuXG4gICAqIEByZXR1cm5zIFRoZSBwcm9ncmVzcyBhcyBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDEsIHdoZXJlIDAgaW5kaWNhdGVzIG5vIHByb2dyZXNzIGFuZCAxIGluZGljYXRlcyBhbGwgZG9jdW1lbnRzIGFyZSBwcm9jZXNzZWQgKHByb2Nlc3NlZCBtZWFucyBlaXRoZXIgaW5kZXhlZCBvciBlcnJvcmVkKS5cbiAgICogICAgICAgICAgUmV0dXJucyAwIGlmIHRoZSBpbnB1dCBpcyBpbnZhbGlkIG9yIHRoZXJlIGFyZSBubyBkb2N1bWVudHMuXG4gICAqL1xuICBnZXRJbmRleGluZ1Byb2dyZXNzKGluZm9zOiBJbmRleGluZ0luZm9zIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcbiAgICBpZiAoIWluZm9zIHx8ICFpbmZvcy5kb2NzKSByZXR1cm4gMDtcbiAgICBjb25zdCBjb21wbGV0ZWQgPSBpbmZvcy5kb2NzLmZpbHRlcihkb2MgPT4gZG9jLnN0YXR1cyA9PT0gXCJJbmRleGVkXCIgfHwgZG9jLnN0YXR1cyA9PT0gXCJFcnJvclwiKS5sZW5ndGg7XG4gICAgY29uc3QgdG90YWwgPSBpbmZvcy5kb2NzLmxlbmd0aDtcbiAgICByZXR1cm4gY29tcGxldGVkL3RvdGFsO1xuICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgI2Zsb3c9XCJmbG93XCIgW2Zsb3dDb25maWddPVwiZmxvd0NvbmZpZ1wiPjwvbmctY29udGFpbmVyPlxuPGRpdiBjbGFzcz1cImZpbGUtdXBsb2FkLWNvbnRhaW5lclwiPlxuICA8aW5wdXRcbiAgICB0eXBlPVwiZmlsZVwiXG4gICAgZmxvd0J1dHRvblxuICAgIFtmbG93XT1cImZsb3cuZmxvd0pzXCJcbiAgICBtdWx0aXBsZVxuICAgIGhpZGRlblxuICAgICNmaWxlSW5wdXQ+XG4gIDxkaXZcbiAgICBmbG93RHJvcFxuICAgIFtmbG93XT1cImZsb3cuZmxvd0pzXCJcbiAgICAoZHJhZ2VudGVyKT1cIm9uRHJhZ2VudGVyKClcIlxuICAgIChkcmFnbGVhdmUpPVwib25EcmFnbGVhdmUoJGV2ZW50KVwiXG4gICAgKGRyb3ApPVwib25Ecm9wKClcIlxuICAgIChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiXG4gICAgY2xhc3M9XCJkcm9wem9uZVwiXG4gICAgW25nQ2xhc3NdPVwieydkcm9wem9uZS0tYWN0aXZlJzogKGRyYWdnaW5nJCB8IGFzeW5jKX1cIlxuICAgIFtoaWRkZW5dPVwiKHVwbG9hZGluZyQgfCBhc3luYykgfHwgKGluZGV4aW5nJCB8IGFzeW5jKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEoZHJhZ2dpbmckIHwgYXN5bmMpOyBlbHNlIGRyYWdnaW5nQ29udGVudFwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jbG91ZC11cGxvYWQtYWx0XCI+PC9pPlxuICAgICAgICA8c3Bhbj5EcmFnIGFuZCBkcm9wIGZpbGVzIGhlcmUgT3I8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1vcmFuZ2VcIj5DbGljayB0byBicm93c2U8L3NwYW4+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjZHJhZ2dpbmdDb250ZW50PlxuICAgICAgICA8c3Bhbj5Ecm9wIGZpbGVzIGhlcmU8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cblxuICA8ZGl2ICpuZ0lmPVwiKHVwbG9hZGluZyQgfCBhc3luYykgfHwgKGluZGV4aW5nJCB8IGFzeW5jKVwiIGNsYXNzPVwiZHJvcHpvbmUgZHJvcHpvbmUtLWFjdGl2ZVwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIodXBsb2FkaW5nJCB8IGFzeW5jKTsgZWxzZSBpbmRleGluZ1N0YXRlXCI+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1zcGlubmVyIGZhLXB1bHNlXCI+PC9pPlxuICAgICAgPHNwYW4+XG4gICAgICAgIFVwbG9hZGluZyB7eyAoZmxvdy50cmFuc2ZlcnMkIHwgYXN5bmMpIS50cmFuc2ZlcnMubGVuZ3RoIH19IGZpbGVzXG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiAqbmdJZj1cIih1cGxvYWRpbmdJbmZvcyQgfCBhc3luYykgYXMgdXBsb2FkaW5nSW5mb3NcIj57eyB1cGxvYWRpbmdJbmZvcy5wcm9ncmVzcyB8IG51bWJlcjonMS4wLTAnIH19JTwvc3Bhbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI2luZGV4aW5nU3RhdGU+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1zcGlubmVyIGZhLXB1bHNlXCI+PC9pPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluZGV4aW5nSW5mb3MkIHwgYXN5bmMgYXMgaW5kZXhpbmdJbmZvXCI+XG4gICAgICAgIDxzcGFuPkluZGV4aW5nIHt7IGluZGV4aW5nSW5mby5kb2NzLmxlbmd0aCB9fSBmaWxlczwvc3Bhbj5cbiAgICAgICAgPHNwYW4+e3sgZ2V0SW5kZXhpbmdQcm9ncmVzcyhpbmRleGluZ0luZm8pICogMTAwIHwgbnVtYmVyOicxLjAtMCcgfX0lPC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG5cbiAgPHVsICpuZ0lmPVwiZXJyb3JBbGVydHMubGVuZ3RoID4gMFwiIGNsYXNzPVwiZXJyb3ItbGlzdCBtdC0zXCI+XG4gICAgPGxpICpuZ0Zvcj1cImxldCBlcnJvciBvZiBlcnJvckFsZXJ0c1wiPlxuICAgICAge3sgZXJyb3IgfX1cbiAgICA8L2xpPlxuICA8L3VsPlxuXG4gIDxkaXYgKm5nSWY9XCIoKGZsb3cudHJhbnNmZXJzJCB8IGFzeW5jKT8udHJhbnNmZXJzPy5sZW5ndGggPiAwKSAmJiAhKHVwbG9hZGluZyQgfCBhc3luYylcIiBjbGFzcz1cImZpbGUtbGlzdCBtdC0zXCI+XG4gICAgPHVsPlxuICAgICAgPGxpICpuZ0Zvcj1cImxldCB0cmFuc2ZlciBvZiAoZmxvdy50cmFuc2ZlcnMkIHwgYXN5bmMpIS50cmFuc2ZlcnM7IHRyYWNrQnk6IHRyYWNrVHJhbnNmZXJcIj5cbiAgICAgICAgPHNxLWZvcm1hdC1pY29uIFtleHRlbnNpb25dPVwidHJhbnNmZXIuZmxvd0ZpbGUuZ2V0RXh0ZW5zaW9uKClcIiBjbGFzcz1cIm1lLTFcIj48L3NxLWZvcm1hdC1pY29uPlxuICAgICAgICA8c3BhbiBbc3FUb29sdGlwXT1cInRyYW5zZmVyLm5hbWVcIj57eyB0cmFuc2Zlci5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10cmFzaCBtcy0xXCIgKGNsaWNrKT1cImZsb3cuY2FuY2VsRmlsZSh0cmFuc2ZlcilcIiBbc3FUb29sdGlwXT1cIidDYW5jZWwnXCI+PC9pPlxuICAgICAgPC9saT5cbiAgICA8L3VsPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG10LTJcIj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saWdodCBjYW5jZWwtYnRuIG1lLTJcIlxuICAgICAgKGNsaWNrKT1cImZsb3cuY2FuY2VsKClcIlxuICAgICAgW2Rpc2FibGVkXT1cIiEoKGZsb3cudHJhbnNmZXJzJCB8IGFzeW5jKT8udHJhbnNmZXJzPy5sZW5ndGggPiAwKSB8fCAodXBsb2FkaW5nJCB8IGFzeW5jKSB8fCAoaW5kZXhpbmckIHwgYXN5bmMpXCI+XG4gICAgICBDYW5jZWxcbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwidXBsb2FkLWJ0blwiXG4gICAgICAoY2xpY2spPVwidXBsb2FkKClcIlxuICAgICAgW2Rpc2FibGVkXT1cIiEoKGZsb3cudHJhbnNmZXJzJCB8IGFzeW5jKT8udHJhbnNmZXJzPy5sZW5ndGggPiAwKSB8fCAodXBsb2FkaW5nJCB8IGFzeW5jKSB8fCAoaW5kZXhpbmckIHwgYXN5bmMpXCI+XG4gICAgICBVcGxvYWRcbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXVwbG9hZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2RvY3VtZW50cy11cGxvYWQvZG9jdW1lbnRzLXVwbG9hZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmV4cG9ydCB0eXBlIFVwbG9hZENvbmZpZyA9IHtcclxuICBkb2N1bWVudHNVcGxvYWRFbmFibGVkOiBib29sZWFuO1xyXG4gIGNvbnN0cmFpbnRzOiB7XHJcbiAgICBtYXhUb3RhbEZpbGVTaXplTUI6IG51bWJlcjtcclxuICAgIHJlbWFpbmluZ0ZpbGVTaXplTUI6IG51bWJlcjtcclxuICAgIG1heFRvdGFsRmlsZUNvdW50OiBudW1iZXI7XHJcbiAgICByZW1haW5pbmdGaWxlQ291bnQ6IG51bWJlcjtcclxuICAgIHN1cHBvcnRlZEZpbGVFeHRlbnNpb25zOiBzdHJpbmdbXVxyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVXBsb2FkUmVzcG9uc2UgPSB7XHJcbiAgc3RhdHVzVG9rZW46IHN0cmluZztcclxuICBleGVjdXRpb25UaW1lOiBzdHJpbmc7XHJcbiAgY29ubmVjdG9yUmVzcG9uc2U/OiB7XHJcbiAgICBjb2xsZWN0aW9uOiBzdHJpbmc7XHJcbiAgICBhY3Rpb246IHN0cmluZztcclxuICAgIHN0YXRzOiB7XHJcbiAgICAgIG5iRG9jVXBkYXRlZDogbnVtYmVyO1xyXG4gICAgfTtcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBVcGxvYWRpbmdJbmZvcyA9IHtcclxuICBsb2FkZWQ6IG51bWJlcjtcclxuICB0b3RhbDogbnVtYmVyO1xyXG4gIHByb2dyZXNzOiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFVwbG9hZFByb2dyZXNzRXZlbnQgPSB7IHR5cGU6ICd1cGxvYWRQcm9ncmVzcyc7IH0gJiBVcGxvYWRpbmdJbmZvcztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkUmVzcG9uc2VFdmVudCB7XHJcbiAgdHlwZTogJ3Jlc3BvbnNlJztcclxuICBib2R5OiBVcGxvYWRSZXNwb25zZTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVXBsb2FkRXZlbnQgPSBVcGxvYWRQcm9ncmVzc0V2ZW50IHwgVXBsb2FkUmVzcG9uc2VFdmVudDtcclxuXHJcbmV4cG9ydCB0eXBlIEluZGV4aW5nSW5mb3MgPSB7XHJcbiAgZG9jczoge1xyXG4gICAgaWQ6IHN0cmluZztcclxuICAgIGZpbGVOYW1lOiBzdHJpbmc7XHJcbiAgICBvcGVyYXRpb246IFwiQWRkXCIgfCBcIlVwZGF0ZVwiO1xyXG4gICAgc3RhdHVzOiBcIkluZGV4aW5nXCIgfCBcIkluZGV4ZWRcIiB8IFwiRXJyb3JcIjtcclxuICAgIHByZXZpb3VzSW5kZXhhdGlvblRpbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgICBjdXJyZW50SW5kZXhhdGlvblRpbWU6IHN0cmluZyB8IG51bGw7XHJcbiAgfVtdO1xyXG4gIGlzQ29tcGxldGVkOiBib29sZWFuO1xyXG4gIGV4ZWN1dGlvblRpbWU6IHN0cmluZztcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkZWREb2N1bWVudHMge1xyXG4gIGRvY3M6IFVwbG9hZGVkRG9jdW1lbnRbXTtcclxuICBjb3VudDogbnVtYmVyO1xyXG4gIHRvdGFsQ291bnQ6IG51bWJlcjtcclxuICBleGVjdXRpb25UaW1lOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkZWREb2N1bWVudCB7XHJcbiAgaWQ6IHN0cmluZztcclxuICBmaWxlTmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZmlsZUV4dDogc3RyaW5nO1xyXG4gIGluZGV4YXRpb25UaW1lOiBzdHJpbmc7XHJcbiAgc2l6ZTogc3RyaW5nO1xyXG4gIHNpemVEaXNwbGF5OiBzdHJpbmc7XHJcbiAgW2tleTogc3RyaW5nXTogYW55O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIGRlbGV0ZURvY3VtZW50c1Jlc3BvbnNlIHtcclxuICBkZWxldGVkQ291bnQ6IG51bWJlcjtcclxuICBleGVjdXRpb25UaW1lOiBzdHJpbmc7XHJcbn1cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXVwbG9hZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2RvY3VtZW50cy11cGxvYWQvZG9jdW1lbnRzLXVwbG9hZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgdHlwZSBVcGxvYWRDb25maWcgPSB7XG4gIGRvY3VtZW50c1VwbG9hZEVuYWJsZWQ6IGJvb2xlYW47XG4gIGNvbnN0cmFpbnRzOiB7XG4gICAgbWF4VG90YWxGaWxlU2l6ZU1COiBudW1iZXI7XG4gICAgcmVtYWluaW5nRmlsZVNpemVNQjogbnVtYmVyO1xuICAgIG1heFRvdGFsRmlsZUNvdW50OiBudW1iZXI7XG4gICAgcmVtYWluaW5nRmlsZUNvdW50OiBudW1iZXI7XG4gICAgc3VwcG9ydGVkRmlsZUV4dGVuc2lvbnM6IHN0cmluZ1tdXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVXBsb2FkUmVzcG9uc2UgPSB7XG4gIHN0YXR1c1Rva2VuOiBzdHJpbmc7XG4gIGV4ZWN1dGlvblRpbWU6IHN0cmluZztcbiAgY29ubmVjdG9yUmVzcG9uc2U/OiB7XG4gICAgY29sbGVjdGlvbjogc3RyaW5nO1xuICAgIGFjdGlvbjogc3RyaW5nO1xuICAgIHN0YXRzOiB7XG4gICAgICBuYkRvY1VwZGF0ZWQ6IG51bWJlcjtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgdHlwZSBVcGxvYWRpbmdJbmZvcyA9IHtcbiAgbG9hZGVkOiBudW1iZXI7XG4gIHRvdGFsOiBudW1iZXI7XG4gIHByb2dyZXNzOiBudW1iZXI7XG59XG5cbmV4cG9ydCB0eXBlIFVwbG9hZFByb2dyZXNzRXZlbnQgPSB7IHR5cGU6ICd1cGxvYWRQcm9ncmVzcyc7IH0gJiBVcGxvYWRpbmdJbmZvcztcblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRSZXNwb25zZUV2ZW50IHtcbiAgdHlwZTogJ3Jlc3BvbnNlJztcbiAgYm9keTogVXBsb2FkUmVzcG9uc2U7XG59XG5cbmV4cG9ydCB0eXBlIFVwbG9hZEV2ZW50ID0gVXBsb2FkUHJvZ3Jlc3NFdmVudCB8IFVwbG9hZFJlc3BvbnNlRXZlbnQ7XG5cbmV4cG9ydCB0eXBlIEluZGV4aW5nSW5mb3MgPSB7XG4gIGRvY3M6IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIGZpbGVOYW1lOiBzdHJpbmc7XG4gICAgb3BlcmF0aW9uOiBcIkFkZFwiIHwgXCJVcGRhdGVcIjtcbiAgICBzdGF0dXM6IFwiSW5kZXhpbmdcIiB8IFwiSW5kZXhlZFwiIHwgXCJFcnJvclwiO1xuICAgIHByZXZpb3VzSW5kZXhhdGlvblRpbWU6IHN0cmluZyB8IG51bGw7XG4gICAgY3VycmVudEluZGV4YXRpb25UaW1lOiBzdHJpbmcgfCBudWxsO1xuICB9W107XG4gIGlzQ29tcGxldGVkOiBib29sZWFuO1xuICBleGVjdXRpb25UaW1lOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZGVkRG9jdW1lbnRzIHtcbiAgZG9jczogVXBsb2FkZWREb2N1bWVudFtdO1xuICBjb3VudDogbnVtYmVyO1xuICB0b3RhbENvdW50OiBudW1iZXI7XG4gIGV4ZWN1dGlvblRpbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRlZERvY3VtZW50IHtcbiAgaWQ6IHN0cmluZztcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgdGl0bGU6IHN0cmluZztcbiAgZmlsZUV4dDogc3RyaW5nO1xuICBpbmRleGF0aW9uVGltZTogc3RyaW5nO1xuICBzaXplOiBzdHJpbmc7XG4gIHNpemVEaXNwbGF5OiBzdHJpbmc7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBkZWxldGVEb2N1bWVudHNSZXNwb25zZSB7XG4gIGRlbGV0ZWRDb3VudDogbnVtYmVyO1xuICBleGVjdXRpb25UaW1lOiBzdHJpbmc7XG59XG4iXX0=
@@ -286,4 +286,4 @@ DocumentsUploadService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0
286
286
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DocumentsUploadService, decorators: [{
287
287
  type: Injectable
288
288
  }] });
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXVwbG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvZG9jdW1lbnRzLXVwbG9hZC9kb2N1bWVudHMtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBeUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNySCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBR3JELE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFLRSx1Q0FBdUM7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsU0FBUyxDQUFDLENBQUM7UUFHbEUseUJBQW9CLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBMFNsQztJQXhTQzs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxXQUFvQztRQUN2QyxJQUFJLENBQUMsV0FBVztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMsV0FBVyxH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LEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FDTCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLEtBQWE7UUFDbkMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7bUhBblRVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnQHNpbmVxdWEvY29yZS9sb2dpbic7XHJcbmltcG9ydCB7IEpzb25NZXRob2RQbHVnaW5TZXJ2aWNlIH0gZnJvbSAnQHNpbmVxdWEvY29yZS93ZWItc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDaGF0U2VydmljZSB9IGZyb20gJy4uL2NoYXQuc2VydmljZSc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHRha2UgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2UsIEluZGV4aW5nSW5mb3MsIFVwbG9hZENvbmZpZywgVXBsb2FkZWREb2N1bWVudHMsIFVwbG9hZEV2ZW50IH0gZnJvbSAnLi9kb2N1bWVudHMtdXBsb2FkLm1vZGVsJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZSwgSHR0cFVwbG9hZFByb2dyZXNzRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICdAc2luZXF1YS9jb3JlL2FwcC11dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEb2N1bWVudHNVcGxvYWRTZXJ2aWNlIHtcclxuXHJcbiAgLyoqIE5hbWUgb2YgdGhlIGFzc2lzdGFudCBwbHVnaW4uICovXHJcbiAgcHVibGljIFJFUVVFU1RfVVJMOiBzdHJpbmc7XHJcbiAgLyoqIERvY3VtZW50cycgdXBsb2FkIGNvbmZpZ3VyYXRpb24uICovXHJcbiAgdXBsb2FkQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VXBsb2FkQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xyXG4gIHB1YmxpYyBjaGF0U2VydmljZTogQ2hhdFNlcnZpY2U7XHJcblxyXG4gIHB1YmxpYyBqc29uTWV0aG9kV2ViU2VydmljZSA9IGluamVjdChKc29uTWV0aG9kUGx1Z2luU2VydmljZSk7XHJcbiAgcHVibGljIGxvZ2luU2VydmljZSA9IGluamVjdChMb2dpblNlcnZpY2UpO1xyXG4gIHB1YmxpYyBhcHBTZXJ2aWNlID0gaW5qZWN0KEFwcFNlcnZpY2UpO1xyXG4gIHB1YmxpYyBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xyXG5cclxuICAvKipcclxuICAgKiBJbml0aWFsaXplcyB0aGUgZmlsZSB1cGxvYWQgc2VydmljZSB3aXRoIHRoZSBwcm92aWRlZCBjaGF0IHNlcnZpY2UgaW5zdGFuY2UuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gY2hhdFNlcnZpY2UgLSBBbiBpbnN0YW5jZSBvZiBDaGF0U2VydmljZS4gSWYgbm90IHByb3ZpZGVkLCBhbiBlcnJvciBpcyB0aHJvd24uXHJcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjaGF0U2VydmljZSBpbnN0YW5jZSBpcyBub3QgcHJvdmlkZWQgb3IgaWYgdGhlcmUgaXMgYW4gZXJyb3IgZHVyaW5nIGluaXRpYWxpemF0aW9uLlxyXG4gICAqL1xyXG4gIGluaXQoY2hhdFNlcnZpY2U6IENoYXRTZXJ2aWNlIHwgdW5kZWZpbmVkKTogdm9pZCB7XHJcbiAgICBpZiAoIWNoYXRTZXJ2aWNlKSB0aHJvdyBuZXcgRXJyb3IoJ0EgY2hhdFNlcnZpY2UgaW5zdGFuY2UgbXVzdCBiZSBwcm92aWRlZCcpO1xyXG5cclxuICAgIHRoaXMuY2hhdFNlcnZpY2UgPSBjaGF0U2VydmljZTtcclxuICAgIHRyeSB7XHJcbiAgICAgIHRoaXMuZ2V0UmVxdWVzdHNVcmwoKTtcclxuICAgICAgdGhpcy5nZXRVcGxvYWRDb25maWcoKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGZXRjaCB0aGUgZW5kcG9pbnQgdG8gdXNlIGZvciB0aGUgZmlsZSB1cGxvYWQgcmVsYXRlZCByZXF1ZXN0c1xyXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgcHJvcGVydHkgJ3Jlc3RFbmRwb2ludCcgaXMgbm90IHByb3ZpZGVkIGluIHRoZSBhc3Npc3RhbnQgY29uZmlndXJhdGlvblxyXG4gICAqL1xyXG4gIGdldFJlcXVlc3RzVXJsKCkge1xyXG4gICAgaWYgKCEhdGhpcy5jaGF0U2VydmljZS5hc3Npc3RhbnRDb25maWckLnZhbHVlIS5jb25uZWN0aW9uU2V0dGluZ3MucmVzdEVuZHBvaW50KSB7XHJcbiAgICAgIHRoaXMuUkVRVUVTVF9VUkwgPSB0aGlzLmNoYXRTZXJ2aWNlLmFzc2lzdGFudENvbmZpZyQudmFsdWUhLmNvbm5lY3Rpb25TZXR0aW5ncy5yZXN0RW5kcG9pbnQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBwcm9wZXJ0eSAncmVzdEVuZHBvaW50JyBtdXN0IGJlIHByb3ZpZGVkIHdoZW4gYXR0ZW1wdGluZyB0byB1c2UgJ1JFU1QnIGluIGFzc2lzdGFudCBpbnN0YW5jZWApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSB1cGxvYWQgY29uZmlndXJhdGlvbiBmb3IgZG9jdW1lbnRzLlxyXG4gICAqIFRoZSByZXNwb25zZSwgd2hpY2ggY29udGFpbnMgdGhlIHVwbG9hZCBjb25maWd1cmF0aW9uLCBpcyBlbWl0dGVkIHRvIHRoZSBgdXBsb2FkQ29uZmlnJGAgb2JzZXJ2YWJsZS5cclxuICAgKlxyXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbnZva2luZyB0aGUgYGRvY3VtZW50c1VwbG9hZENvbmZpZ0dldGAgYWN0aW9uLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRVcGxvYWRDb25maWcoKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBhY3Rpb246IFwiZG9jdW1lbnRzVXBsb2FkQ29uZmlnR2V0XCIsXHJcbiAgICAgIGFwcE5hbWU6IHRoaXMuYXBwU2VydmljZS5hcHBOYW1lLFxyXG4gICAgICBkZWJ1ZzogdGhpcy5jaGF0U2VydmljZS5hc3Npc3RhbnRDb25maWckLnZhbHVlIS5kZWZhdWx0VmFsdWVzLmRlYnVnXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuanNvbk1ldGhvZFdlYlNlcnZpY2UucG9zdCh0aGlzLlJFUVVFU1RfVVJMLCBkYXRhKS5waXBlKFxyXG4gICAgICB0YWtlKDEpLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgaW52b2tpbmcgZG9jdW1lbnRzVXBsb2FkQ29uZmlnR2V0OiAke2Vycm9yfWApO1xyXG4gICAgICB9KVxyXG4gICAgKS5zdWJzY3JpYmUoKHJlczogVXBsb2FkQ29uZmlnKSA9PiB0aGlzLnVwbG9hZENvbmZpZyQubmV4dChyZXMpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFVwbG9hZHMgZG9jdW1lbnRzIHRvIHRoZSBzZXJ2ZXIuXHJcbiAgICpcclxuICAgKiBUaGlzIG1ldGhvZCB0YWtlcyBhIEZvcm1EYXRhIG9iamVjdCB3aGljaCBzaG91bGQgY29udGFpbiBhbGwgZmlsZXMgdG8gYmUgdXBsb2FkZWQuXHJcbiAgICogRWFjaCBmaWxlIHNob3VsZCBiZSBhcHBlbmRlZCB0byB0aGUgRm9ybURhdGEgb2JqZWN0IHdpdGggaXRzIG9yaWdpbmFsIG5hbWUuXHJcbiAgICpcclxuICAgKiBGb3IgZXhhbXBsZTpcclxuICAgKiBgYGB0eXBlc2NyaXB0XHJcbiAgICogY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgKiBmb3JtRGF0YS5hcHBlbmQoZmlsZS5uYW1lLCBmaWxlLmZpbGUpO1xyXG4gICAqIGBgYFxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZvcm1EYXRhIC0gVGhlIEZvcm1EYXRhIG9iamVjdCBjb250YWluaW5nIHRoZSBmaWxlcyB0byBiZSB1cGxvYWRlZC5cclxuICAgKiAtIEVhY2ggZmlsZSBzaG91bGQgYmUgYXBwZW5kZWQgdG8gdGhlIEZvcm1EYXRhIG9iamVjdCB3aXRoIGl0cyBvcmlnaW5hbCBuYW1lLlxyXG4gICAqIEZvciBleGFtcGxlOlxyXG4gICAqIGBgYHR5cGVzY3JpcHRcclxuICAgKiBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAqIGZvcm1EYXRhLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUuZmlsZSk7XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZW5hYmxlUHJvZ3Jlc3MgLSAoT3B0aW9uYWwpIEEgYm9vbGVhbiBwYXJhbWV0ZXIgdGhhdCBjb250cm9scyB3aGV0aGVyIHByb2dyZXNzIHJlcG9ydGluZyBpcyBlbmFibGVkLlxyXG4gICAqIC0gRGVmYXVsdHMgdG8gYHRydWVgLlxyXG4gICAqIC0gSWYgYHRydWVgLCB0aGUgYHJlcG9ydFByb2dyZXNzYCBvcHRpb24gaXMgc2V0IGluIHRoZSByZXF1ZXN0IG9wdGlvbnMsIGVuYWJsaW5nIHRoZSB0cmFjayBvZiB1cGxvYWQgcHJvZ3Jlc3MgYmFzZWQgb24gdGhlIHVuZGVybHlpbmcgYnJvd3NlcidzIHByb2dyZXNzIGV2ZW50cy5cclxuICAgKiAtIElmIGBmYWxzZWAsIHByb2dyZXNzIGV2ZW50cyBhcmUgbm90IHJlcG9ydGVkLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGV2ZW50cyBvZiB0eXBlIGBVcGxvYWRFdmVudGA6XHJcbiAgICogLSBgVXBsb2FkUHJvZ3Jlc3NFdmVudGA6IEVtaXR0ZWQgZHVyaW5nIHRoZSB1cGxvYWQgcHJvY2VzcywgY29udGFpbmluZzpcclxuICAgKiAgIC0gKiAgYHR5cGVgOiBcInVwbG9hZFByb2dyZXNzXCIgLSBUaGUgdHlwZSBvZiB0aGUgZXZlbnQuXHJcbiAgICogICAtICogIGBsb2FkZWRgOiBudW1iZXIgLSBUaGUgbnVtYmVyIG9mIGJ5dGVzIHVwbG9hZGVkIHNvIGZhci5cclxuICAgKiAgIC0gKiAgYHRvdGFsYDogbnVtYmVyIC0gVGhlIHRvdGFsIG51bWJlciBvZiBieXRlcyB0byBiZSB1cGxvYWRlZCAoaWYgYXZhaWxhYmxlKS5cclxuICAgKiAgIC0gKiAgYHByb2dyZXNzYDogbnVtYmVyIC0gVGhlIHBlcmNlbnRhZ2Ugb2YgdXBsb2FkIHByb2dyZXNzIChjYWxjdWxhdGVkIGFzIGAobG9hZGVkIC8gdG90YWwpICogMTAwYCkuXHJcbiAgICogLSBgVXBsb2FkUmVzcG9uc2VFdmVudGA6IEVtaXR0ZWQgd2hlbiB0aGUgdXBsb2FkIGlzIGNvbXBsZXRlLCBjb250YWluaW5nOlxyXG4gICAqICAgLSAqICBgdHlwZWA6IFwicmVzcG9uc2VcIiAtIFRoZSB0eXBlIG9mIHRoZSBldmVudC5cclxuICAgKiAgIC0gKiAgYGJvZHlgOiBgVXBsb2FkUmVzcG9uc2VgIC0gVGhlIHNlcnZlcidzIHJlc3BvbnNlLCBpbmNsdWRpbmc6XHJcbiAgICogICAgIC0gKiAtICogYHN0YXR1c1Rva2VuYDogc3RyaW5nIC0gQSB0b2tlbiB0byB0cmFjayB0aGUgc3RhdHVzIG9mIHRoZSBpbmRleGluZyBwcm9jZXNzLlxyXG4gICAqICAgICAtICogLSAqICBgZXhlY3V0aW9uVGltZWA6IHN0cmluZyAtIFRoZSB0aW1lIHRha2VuIHRvIGV4ZWN1dGUgdGhlIHVwbG9hZC5cclxuICAgKiAgICAgLSAqIC0gKiAgYGNvbm5lY3RvclJlc3BvbnNlYCAob3B0aW9uYWwpOiBBZGRpdGlvbmFsIHJlc3BvbnNlIGRhdGEgZnJvbSB0aGUgY29ubmVjdG9yLCBjb250YWluaW5nOlxyXG4gICAqICAgICAgIC0gKiAtICogLSAqICBgY29sbGVjdGlvbmA6IHN0cmluZyAtIFRoZSBjb2xsZWN0aW9uIG5hbWUuXHJcbiAgICogICAgICAgLSAqIC0gKiAtICogIGBhY3Rpb25gOiBzdHJpbmcgLSBUaGUgYWN0aW9uIHBlcmZvcm1lZC5cclxuICAgKiAgICAgICAtICogLSAqIC0gKiAgYHN0YXRzYDogb2JqZWN0IC0gU3RhdGlzdGljcyBhYm91dCB0aGUgdXBsb2FkLCBpbmNsdWRpbmc6XHJcbiAgICogICAgICAgICAtICogLSAqIC0gKiAtICogYG5iRG9jVXBkYXRlZGA6IG51bWJlciAtIFRoZSBudW1iZXIgb2YgZG9jdW1lbnRzIHVwZGF0ZWQuXHJcbiAgICpcclxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgaXMgYW4gZXJyb3IgaW52b2tpbmcgdGhlIGBkb2N1bWVudHN1cGxvYWRgIGFjdGlvbi5cclxuICAgKlxyXG4gICAqIEV4YW1wbGUgdXNhZ2U6XHJcbiAgICogYGBgdHlwZXNjcmlwdFxyXG4gICAqIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgICogZm9ybURhdGEuYXBwZW5kKGZpbGUubmFtZSwgZmlsZS5maWxlKTtcclxuICAgKiB0aGlzLmRvY3VtZW50c1VwbG9hZFNlcnZpY2UudXBsb2FkRG9jdW1lbnRzKGZvcm1EYXRhKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAqICAgaWYgKGV2ZW50LnR5cGUgPT09ICd1cGxvYWRQcm9ncmVzcycpIHtcclxuICAgKiAgICAgY29uc29sZS5sb2coYFByb2dyZXNzOiAke2V2ZW50LnByb2dyZXNzfSVgKTtcclxuICAgKiAgIH0gZWxzZSBpZiAoZXZlbnQudHlwZSA9PT0gJ3Jlc3BvbnNlJykge1xyXG4gICAqICAgICBjb25zb2xlLmxvZygnVXBsb2FkIGNvbXBsZXRlOicsIGV2ZW50LmJvZHkpO1xyXG4gICAqICAgfVxyXG4gICAqIH0pO1xyXG4gICAqIGBgYFxyXG4gICAqL1xyXG4gIHB1YmxpYyB1cGxvYWREb2N1bWVudHMoZm9ybURhdGE6IEZvcm1EYXRhLCBlbmFibGVQcm9ncmVzczogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPFVwbG9hZEV2ZW50PiB7XHJcbiAgICAvLyBBZGQgdGhlIHJlcXVpcmVkIFwiZGF0YVwiIGZpZWxkIGFzIGEgSlNPTiBzdHJpbmdcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIGFjdGlvbjogXCJkb2N1bWVudHN1cGxvYWRcIixcclxuICAgICAgYXBwTmFtZTogdGhpcy5hcHBTZXJ2aWNlLmFwcE5hbWUsXHJcbiAgICAgIGRlYnVnOiB0aGlzLmNoYXRTZXJ2aWNlLmFzc2lzdGFudENvbmZpZyQudmFsdWUhLmRlZmF1bHRWYWx1ZXMuZGVidWdcclxuICAgIH07XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2RhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcblxyXG4gICAgY29uc3Qgb3B0aW9uczogYW55ICA9IHtcclxuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcclxuICAgICAgb2JzZXJ2ZTogJ2V2ZW50cycsXHJcbiAgICB9O1xyXG4gICAgaWYgKGVuYWJsZVByb2dyZXNzKSBvcHRpb25zWydyZXBvcnRQcm9ncmVzcyddID0gdHJ1ZTtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuanNvbk1ldGhvZFdlYlNlcnZpY2UubWFrZVVybCh0aGlzLlJFUVVFU1RfVVJMKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5lZWQgdG8gdXNlIHRoZSBIdHRwQ2xpZW50IGRpcmVjdGx5IHRvIGF2b2lkIHRoZSBKU09OTWV0aG9kUGx1Z2luU2VydmljZSdzIGJlaGF2aW9yXHJcbiAgICAgKiBiZWNhdXNlIGl0IGlzIGFsdGVyaW5nIHRoZSByZXF1ZXN0IGFuZCB0aHVzIG1ha2luZyBpdCB1bmFibGUgdG8gcHJvcGVybHkgc2V0IHRoZSBDb250ZW50LVR5cGUgaGVhZGVyIHdpdGggdGhlIGJvdW5kYXJ5XHJcbiAgICAgKi9cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KHVybCwgZm9ybURhdGEsIG9wdGlvbnMpLnBpcGUoXHJcbiAgICAgIGZpbHRlcigoZXZlbnQpOiBldmVudCBpcyBIdHRwVXBsb2FkUHJvZ3Jlc3NFdmVudCB8IEh0dHBSZXNwb25zZTxhbnk+ID0+XHJcbiAgICAgICAgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSB8fCAoZW5hYmxlUHJvZ3Jlc3MgJiYgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcylcclxuICAgICAgKSxcclxuICAgICAgbWFwKChldmVudCk6IFVwbG9hZEV2ZW50ID0+IHtcclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzczoge1xyXG4gICAgICAgICAgICBjb25zdCB7IGxvYWRlZCA9IDAsIHRvdGFsID0gMCB9ID0gZXZlbnQ7XHJcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICd1cGxvYWRQcm9ncmVzcycsIGxvYWRlZCwgdG90YWwsIHByb2dyZXNzOiB0b3RhbCA+IDAgPyBNYXRoLnJvdW5kKChsb2FkZWQgLyB0b3RhbCkgKiAxMDApIDogMCB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxyXG4gICAgICAgICAgICByZXR1cm4geyB0eXBlOiAncmVzcG9uc2UnLCBib2R5OiBldmVudC5ib2R5IH07XHJcbiAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJVbmV4cGVjdGVkIGV2ZW50IHR5cGVcIik7IC8vIFNob3VsZCBub3QgcmVhY2ggaGVyZSwgYnV0IGZvciB0eXBlc2NyaXB0IHNha2UuXHJcbiAgICAgICAgfVxyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGludm9raW5nIGRvY3VtZW50c3VwbG9hZDogJHtlcnJvcn1gKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgdGhlIGluZGV4aW5nIHN0YXR1cyBvZiBhIHByZWRlZmluZWQgdXBsb2FkZWQgZG9jdW1lbnQocylcclxuICAgKiBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgc3RhdHVzIHRva2VuIHJldHVybmVkIGZyb20gdGhlIHVwbG9hZCBwcm9jZXNzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHRva2VuIC0gVGhlIHN0YXR1cyB0b2tlbiB1c2VkIHRvIHRyYWNrIHRoZSBpbmRleGluZyBwcm9jZXNzLlxyXG4gICAqIEByZXR1cm5zIEFuIE9ic2VydmFibGUgdGhhdCBlbWl0cyB0aGUgc2VydmVyIHJlc3BvbnNlIG9mIHR5cGUgYEluZGV4aW5nUmVzcG9uc2VgLlxyXG4gICAqIFRoZSBgSW5kZXhpbmdSZXNwb25zZWAgb2JqZWN0IGNvbnRhaW5zOlxyXG4gICAqIC0gYGRvY3NgOiBhcnJheSAtIEFuIGFycmF5IG9mIGRvY3VtZW50IHN0YXR1cyBvYmplY3RzLCBlYWNoIGNvbnRhaW5pbmc6XHJcbiAgICogICAtICogYGlkYDogc3RyaW5nIC0gVGhlIGRvY3VtZW50IElELlxyXG4gICAqICAgLSAqIGBmaWxlTmFtZWA6IHN0cmluZyAtIFRoZSBuYW1lIG9mIHRoZSBmaWxlLlxyXG4gICAqICAgLSAqIGBvcGVyYXRpb25gOiBcIkFkZFwiIHwgXCJVcGRhdGVcIiAtIFRoZSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoZSBkb2N1bWVudC5cclxuICAgKiAgIC0gKiBgc3RhdHVzYDogXCJJbmRleGluZ1wiIHwgXCJJbmRleGVkXCIgfCBcIkVycm9yXCIgLSBUaGUgc3RhdHVzIG9mIHRoZSBkb2N1bWVudC5cclxuICAgKiAgIC0gKiBgcHJldmlvdXNJbmRleGF0aW9uVGltZWA6IHN0cmluZyB8IG51bGwgLSBUaGUgcHJldmlvdXMgaW5kZXhhdGlvbiB0aW1lLlxyXG4gICAqICAgLSAqIGBjdXJyZW50SW5kZXhhdGlvblRpbWVgOiBzdHJpbmcgfCBudWxsIC0gVGhlIGN1cnJlbnQgaW5kZXhhdGlvbiB0aW1lLlxyXG4gICAqIC0gYGV4ZWN1dGlvblRpbWVgOiBzdHJpbmcgLSBUaGUgdGltZSB0YWtlbiB0byByZXRyaWV2ZSB0aGUgaW5kZXhpbmcgc3RhdHVzLlxyXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbnZva2luZyB0aGUgYGRvY3VtZW50c1VwbG9hZFN0YXR1c2AgYWN0aW9uLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRJbmRleGluZ1N0YXR1cyh0b2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxJbmRleGluZ0luZm9zPiB7XHJcbiAgICBjb25zdCBkYXRhID0ge1xyXG4gICAgICBhY3Rpb246IFwiZG9jdW1lbnRzVXBsb2FkU3RhdHVzXCIsXHJcbiAgICAgIGFwcE5hbWU6IHRoaXMuYXBwU2VydmljZS5hcHBOYW1lLFxyXG4gICAgICBzdGF0dXNUb2tlbjogdG9rZW4sXHJcbiAgICAgIGRlYnVnOiB0aGlzLmNoYXRTZXJ2aWNlLmFzc2lzdGFudENvbmZpZyQudmFsdWUhLmRlZmF1bHRWYWx1ZXMuZGVidWdcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuanNvbk1ldGhvZFdlYlNlcnZpY2UucG9zdCh0aGlzLlJFUVVFU1RfVVJMLCBkYXRhKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgaW52b2tpbmcgZG9jdW1lbnRzVXBsb2FkU3RhdHVzOiAke2Vycm9yfWApO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGxpc3Qgb2YgdXBsb2FkZWQgZG9jdW1lbnRzLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIHtzdHJpbmdbXX0gW2NvbHVtbnNdIC0gT3B0aW9uYWwgYXJyYXkgb2YgYWRkaXRpb25hbCBpbmRleCBjb2x1bW5zIHRvIGluY2x1ZGUgZm9yIGVhY2ggZG9jdW1lbnQuXHJcbiAgICogQHBhcmFtIHtudW1iZXJ9IFtza2lwXSAtIE9wdGlvbmFsIG51bWJlciBvZiBkb2N1bWVudHMgdG8gc2tpcCBmb3IgcGFnaW5hdGlvbi4gSWYgc2V0LCBjb3VudCBhbHNvIG5lZWRzIHRvIGJlIHNldC4gTm8gc2tpcCBpZiBub3Qgc2V0LlxyXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbY291bnRdIC0gT3B0aW9uYWwgbnVtYmVyIG9mIGRvY3VtZW50cyB0byB0YWtlIGZvciBwYWdpbmF0aW9uICh1bmxpbWl0ZWQgaWYgbm90IHNldCkuXHJcbiAgICogQHJldHVybnMge09ic2VydmFibGU8VXBsb2FkZWREb2N1bWVudHM+fSBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIGxpc3Qgb2YgdXBsb2FkZWQgZG9jdW1lbnRzLlxyXG4gICAqIFRoZSBgVXBsb2FkZWREb2N1bWVudHNgIG9iamVjdCBjb250YWluczpcclxuICAgKiAtIGBkb2NzYDogYXJyYXkgLSBBbiBhcnJheSBvZiBvYmplY3RzIHJlcHJlc2VudGluZyBhIHNpbmdsZSBkb2N1bWVudCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcclxuICAgKiAgIC0gKiBgaWRgOiBzdHJpbmcgLSBBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgZG9jdW1lbnQuXHJcbiAgICogICAtICogYGZpbGVOYW1lYDogc3RyaW5nIC0gVGhlIG5hbWUgb2YgdGhlIGZpbGUuXHJcbiAgICogICAtICogYHRpdGxlYDogc3RyaW5nIC0gVGhlIHRpdGxlIG9mIHRoZSBkb2N1bWVudC5cclxuICAgKiAgIC0gKiBgZmlsZUV4dGA6IHN0cmluZyAtIFRoZSBmaWxlIGV4dGVuc2lvbiBvZiB0aGUgZG9jdW1lbnQuXHJcbiAgICogICAtICogYGluZGV4YXRpb25UaW1lYDogc3RyaW5nIC0gVGhlIHRpbWUgd2hlbiB0aGUgZG9jdW1lbnQgd2FzIGluZGV4ZWQuXHJcbiAgICogICAtICogYHNpemVgOiBudW1iZXIgLSBUaGUgc2l6ZSBvZiB0aGUgZG9jdW1lbnQuXHJcbiAgICogICAtICogYHNpemVEaXNwbGF5YDogc3RyaW5nIC0gQSBodW1hbi1yZWFkYWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZG9jdW1lbnQgc2l6ZS5cclxuICAgKiAgIC0gKiBgW2tleTogc3RyaW5nXWA6IGFueSAtIEFkZGl0aW9uYWwgY29sdW1ucyBhc2tlZCBpbiB0aGUgcmVxdWVzdCwgdmFsdWUgb2YgdGhlIGNvbHVtbiBmb3IgdGhlIGRvY3VtZW50LlxyXG4gICAqIC0gYGNvdW50YDogbnVtYmVyIC0gVGhlIGNvdW50IG9mIGRvY3VtZW50cyBpbiB0aGUgY3VycmVudCBiYXRjaCBvciBzdWJzZXQuXHJcbiAgICogLSBgdG90YWxDb3VudGA6IG51bWJlciAtIFRoZSB0b3RhbCBjb3VudCBvZiBkb2N1bWVudHMgYXZhaWxhYmxlLlxyXG4gICAqIC0gYGV4ZWN1dGlvblRpbWVgOiBzdHJpbmcgLSBUaGUgdGltZSB0YWtlbiB0byBwcm9jZXNzIHRoZSBkb2N1bWVudHMuXHJcbiAgICogQHRocm93cyB7RXJyb3J9IFRocm93cyBhbiBlcnJvciBpZiB0aGUgcmVxdWVzdCBmYWlscy5cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0RG9jdW1lbnRzTGlzdChjb2x1bW5zPzogc3RyaW5nW10sIHNraXA/OiBudW1iZXIsIGNvdW50PzogbnVtYmVyKTogT2JzZXJ2YWJsZTxVcGxvYWRlZERvY3VtZW50cz4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHtcclxuICAgICAgYWN0aW9uOiBcImRvY3VtZW50c0xpc3RcIixcclxuICAgICAgYXBwTmFtZTogdGhpcy5hcHBTZXJ2aWNlLmFwcE5hbWUsXHJcbiAgICAgIGRlYnVnOiB0aGlzLmNoYXRTZXJ2aWNlLmFzc2lzdGFudENvbmZpZyQudmFsdWUhLmRlZmF1bHRWYWx1ZXMuZGVidWdcclxuICAgIH07XHJcblxyXG4gICAgaWYgKGNvbHVtbnMpIGRhdGFbXCJjb2x1bW5zXCJdID0gY29sdW1ucztcclxuICAgIGlmIChza2lwKSBkYXRhW1wic2tpcFwiXSA9IHNraXA7XHJcbiAgICBpZiAoY291bnQpIGRhdGFbXCJjb3VudFwiXSA9IGNvdW50O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmpzb25NZXRob2RXZWJTZXJ2aWNlLnBvc3QodGhpcy5SRVFVRVNUX1VSTCwgZGF0YSkucGlwZShcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGludm9raW5nIGRvY3VtZW50c0xpc3Q6ICR7ZXJyb3J9YCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyB0aGUgdXBsb2FkZWQgZG9jdW1lbnRzIHdpdGggdGhlIHNwZWNpZmllZCBJRHMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZG9jSWRzIC0gQW4gYXJyYXkgb2YgZG9jdW1lbnQgSURzIHRvIGRlbGV0ZS5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNlcnZlciByZXNwb25zZSBvZiB0eXBlIGBkZWxldGVEb2N1bWVudHNSZXNwb25zZWAuXHJcbiAgICogVGhlIGBkZWxldGVEb2N1bWVudHNSZXNwb25zZWAgb2JqZWN0IGNvbnRhaW5zOlxyXG4gICAqIC0gYGRlbGV0ZWRDb3VudGA6IG51bWJlciAtIFRoZSBudW1iZXIgb2YgZGVsZXRlZCBkb2N1bWVudHMuXHJcbiAgICogLSBgZXhlY3V0aW9uVGltZWA6IHN0cmluZyAtIFRoZSB0aW1lIHRha2VuIHRvIGRlbGV0ZSB0aGUgZG9jdW1lbnRzLlxyXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbnZva2luZyB0aGUgYGRvY3VtZW50c0RlbGV0ZWAgYWN0aW9uLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZWxldGVEb2N1bWVudHMoZG9jSWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8ZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIGFjdGlvbjogXCJkb2N1bWVudHNEZWxldGVcIixcclxuICAgICAgZG9jSWRzLFxyXG4gICAgICBhcHBOYW1lOiB0aGlzLmFwcFNlcnZpY2UuYXBwTmFtZSxcclxuICAgICAgZGVidWc6IHRoaXMuY2hhdFNlcnZpY2UuYXNzaXN0YW50Q29uZmlnJC52YWx1ZSEuZGVmYXVsdFZhbHVlcy5kZWJ1Z1xyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5qc29uTWV0aG9kV2ViU2VydmljZS5wb3N0KHRoaXMuUkVRVUVTVF9VUkwsIGRhdGEpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBpbnZva2luZyBkb2N1bWVudHNEZWxldGU6ICR7ZXJyb3J9YCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVsZXRlcyBhbGwgdXBsb2FkZWQgZG9jdW1lbnRzLlxyXG4gICAqXHJcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzZXJ2ZXIgcmVzcG9uc2Ugb2YgdHlwZSBgZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2VgLlxyXG4gICAqIFRoZSBgZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2VgIG9iamVjdCBjb250YWluczpcclxuICAgKiAtIGBkZWxldGVkQ291bnRgOiBudW1iZXIgLSBUaGUgbnVtYmVyIG9mIGRlbGV0ZWQgZG9jdW1lbnRzLlxyXG4gICAqIC0gYGV4ZWN1dGlvblRpbWVgOiBzdHJpbmcgLSBUaGUgdGltZSB0YWtlbiB0byBkZWxldGUgdGhlIGRvY3VtZW50cy5cclxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgaXMgYW4gZXJyb3IgaW52b2tpbmcgdGhlIGBkb2N1bWVudHNEZWxldGVBbGxgIGFjdGlvbi5cclxuICAgKi9cclxuICBwdWJsaWMgZGVsZXRlQWxsRG9jdW1lbnRzKCk6IE9ic2VydmFibGU8ZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB7XHJcbiAgICAgIGFjdGlvbjogXCJkb2N1bWVudHNEZWxldGVBbGxcIixcclxuICAgICAgYXBwTmFtZTogdGhpcy5hcHBTZXJ2aWNlLmFwcE5hbWUsXHJcbiAgICAgIGRlYnVnOiB0aGlzLmNoYXRTZXJ2aWNlLmFzc2lzdGFudENvbmZpZyQudmFsdWUhLmRlZmF1bHRWYWx1ZXMuZGVidWdcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuanNvbk1ldGhvZFdlYlNlcnZpY2UucG9zdCh0aGlzLlJFUVVFU1RfVVJMLCBkYXRhKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgaW52b2tpbmcgZG9jdW1lbnRzRGVsZXRlQWxsOiAke2Vycm9yfWApO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgdGhlIGdpdmVuIGZpbGUgc2l6ZSBpbiBieXRlcyBpbnRvIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5nLlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGJ5dGVzIC0gVGhlIHNpemUgb2YgdGhlIGZpbGUgaW4gYnl0ZXMuXHJcbiAgICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBmaWxlIHNpemUgaW4gYSBodW1hbi1yZWFkYWJsZSBmb3JtYXQgKGUuZy4sIFwiMTAuMjQgS0JcIiwgXCIxLjAwIE1CXCIpLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBmb3JtYXRGaWxlU2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcclxuICAgIGlmIChieXRlcyA9PT0gMCkgcmV0dXJuIFwiMCBCeXRlc1wiO1xyXG4gICAgY29uc3QgayA9IDEwMjQ7XHJcbiAgICBjb25zdCBzaXplcyA9IFtcIkJ5dGVzXCIsIFwiS0JcIiwgXCJNQlwiLCBcIkdCXCIsIFwiVEJcIl07XHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICBOdW1iZXIucGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZCgyKSkgKyBcIiBcIiArIHNpemVzW2ldXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydHMgdGhlIGdpdmVuIGZpbGUgc2l6ZSBpbiBieXRlcyBpbnRvIG1lZ2FieXRlcy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBieXRlcyAtIFRoZSBzaXplIG9mIHRoZSBmaWxlIGluIGJ5dGVzLlxyXG4gICAqIEByZXR1cm5zIFRoZSBzaXplIG9mIHRoZSBmaWxlIGluIG1lZ2FieXRlcy5cclxuICAgKi9cclxuICBwdWJsaWMgY29udmVydEJ5dGVzVG9NQihieXRlczogbnVtYmVyKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBieXRlcyAvICgxMDI0ICogMTAyNCk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnRzLXVwbG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvZG9jdW1lbnRzLXVwbG9hZC9kb2N1bWVudHMtdXBsb2FkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXJFLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxGLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBeUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNySCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBR3JELE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFLRSx1Q0FBdUM7UUFDdkMsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBMkIsU0FBUyxDQUFDLENBQUM7UUFHbEUseUJBQW9CLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxTQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBMFNsQztJQXhTQzs7Ozs7T0FLRztJQUNILElBQUksQ0FBQyxXQUFvQztRQUN2QyxJQUFJLENBQUMsV0FBVztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMsV0FBVyxH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LEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRCxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sQ0FDTCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FDeEUsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGdCQUFnQixDQUFDLEtBQWE7UUFDbkMsT0FBTyxLQUFLLEdBQUcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7bUhBblRVLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvZ2luU2VydmljZSB9IGZyb20gJ0BzaW5lcXVhL2NvcmUvbG9naW4nO1xuaW1wb3J0IHsgSnNvbk1ldGhvZFBsdWdpblNlcnZpY2UgfSBmcm9tICdAc2luZXF1YS9jb3JlL3dlYi1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDaGF0U2VydmljZSB9IGZyb20gJy4uL2NoYXQuc2VydmljZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWxldGVEb2N1bWVudHNSZXNwb25zZSwgSW5kZXhpbmdJbmZvcywgVXBsb2FkQ29uZmlnLCBVcGxvYWRlZERvY3VtZW50cywgVXBsb2FkRXZlbnQgfSBmcm9tICcuL2RvY3VtZW50cy11cGxvYWQubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEV2ZW50VHlwZSwgSHR0cEhlYWRlcnMsIEh0dHBSZXNwb25zZSwgSHR0cFVwbG9hZFByb2dyZXNzRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnQHNpbmVxdWEvY29yZS9hcHAtdXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRzVXBsb2FkU2VydmljZSB7XG5cbiAgLyoqIE5hbWUgb2YgdGhlIGFzc2lzdGFudCBwbHVnaW4uICovXG4gIHB1YmxpYyBSRVFVRVNUX1VSTDogc3RyaW5nO1xuICAvKiogRG9jdW1lbnRzJyB1cGxvYWQgY29uZmlndXJhdGlvbi4gKi9cbiAgdXBsb2FkQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VXBsb2FkQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwdWJsaWMgY2hhdFNlcnZpY2U6IENoYXRTZXJ2aWNlO1xuXG4gIHB1YmxpYyBqc29uTWV0aG9kV2ViU2VydmljZSA9IGluamVjdChKc29uTWV0aG9kUGx1Z2luU2VydmljZSk7XG4gIHB1YmxpYyBsb2dpblNlcnZpY2UgPSBpbmplY3QoTG9naW5TZXJ2aWNlKTtcbiAgcHVibGljIGFwcFNlcnZpY2UgPSBpbmplY3QoQXBwU2VydmljZSk7XG4gIHB1YmxpYyBodHRwID0gaW5qZWN0KEh0dHBDbGllbnQpO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgZmlsZSB1cGxvYWQgc2VydmljZSB3aXRoIHRoZSBwcm92aWRlZCBjaGF0IHNlcnZpY2UgaW5zdGFuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBjaGF0U2VydmljZSAtIEFuIGluc3RhbmNlIG9mIENoYXRTZXJ2aWNlLiBJZiBub3QgcHJvdmlkZWQsIGFuIGVycm9yIGlzIHRocm93bi5cbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjaGF0U2VydmljZSBpbnN0YW5jZSBpcyBub3QgcHJvdmlkZWQgb3IgaWYgdGhlcmUgaXMgYW4gZXJyb3IgZHVyaW5nIGluaXRpYWxpemF0aW9uLlxuICAgKi9cbiAgaW5pdChjaGF0U2VydmljZTogQ2hhdFNlcnZpY2UgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZiAoIWNoYXRTZXJ2aWNlKSB0aHJvdyBuZXcgRXJyb3IoJ0EgY2hhdFNlcnZpY2UgaW5zdGFuY2UgbXVzdCBiZSBwcm92aWRlZCcpO1xuXG4gICAgdGhpcy5jaGF0U2VydmljZSA9IGNoYXRTZXJ2aWNlO1xuICAgIHRyeSB7XG4gICAgICB0aGlzLmdldFJlcXVlc3RzVXJsKCk7XG4gICAgICB0aGlzLmdldFVwbG9hZENvbmZpZygpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGZXRjaCB0aGUgZW5kcG9pbnQgdG8gdXNlIGZvciB0aGUgZmlsZSB1cGxvYWQgcmVsYXRlZCByZXF1ZXN0c1xuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHByb3BlcnR5ICdyZXN0RW5kcG9pbnQnIGlzIG5vdCBwcm92aWRlZCBpbiB0aGUgYXNzaXN0YW50IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIGdldFJlcXVlc3RzVXJsKCkge1xuICAgIGlmICghIXRoaXMuY2hhdFNlcnZpY2UuYXNzaXN0YW50Q29uZmlnJC52YWx1ZSEuY29ubmVjdGlvblNldHRpbmdzLnJlc3RFbmRwb2ludCkge1xuICAgICAgdGhpcy5SRVFVRVNUX1VSTCA9IHRoaXMuY2hhdFNlcnZpY2UuYXNzaXN0YW50Q29uZmlnJC52YWx1ZSEuY29ubmVjdGlvblNldHRpbmdzLnJlc3RFbmRwb2ludDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgcHJvcGVydHkgJ3Jlc3RFbmRwb2ludCcgbXVzdCBiZSBwcm92aWRlZCB3aGVuIGF0dGVtcHRpbmcgdG8gdXNlICdSRVNUJyBpbiBhc3Npc3RhbnQgaW5zdGFuY2VgKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSB1cGxvYWQgY29uZmlndXJhdGlvbiBmb3IgZG9jdW1lbnRzLlxuICAgKiBUaGUgcmVzcG9uc2UsIHdoaWNoIGNvbnRhaW5zIHRoZSB1cGxvYWQgY29uZmlndXJhdGlvbiwgaXMgZW1pdHRlZCB0byB0aGUgYHVwbG9hZENvbmZpZyRgIG9ic2VydmFibGUuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbnZva2luZyB0aGUgYGRvY3VtZW50c1VwbG9hZENvbmZpZ0dldGAgYWN0aW9uLlxuICAgKi9cbiAgcHVibGljIGdldFVwbG9hZENvbmZpZygpOiB2b2lkIHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgYWN0aW9uOiBcImRvY3VtZW50c1VwbG9hZENvbmZpZ0dldFwiLFxuICAgICAgYXBwTmFtZTogdGhpcy5hcHBTZXJ2aWNlLmFwcE5hbWUsXG4gICAgICBkZWJ1ZzogdGhpcy5jaGF0U2VydmljZS5hc3Npc3RhbnRDb25maWckLnZhbHVlIS5kZWZhdWx0VmFsdWVzLmRlYnVnXG4gICAgfTtcblxuICAgIHRoaXMuanNvbk1ldGhvZFdlYlNlcnZpY2UucG9zdCh0aGlzLlJFUVVFU1RfVVJMLCBkYXRhKS5waXBlKFxuICAgICAgdGFrZSgxKSxcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgaW52b2tpbmcgZG9jdW1lbnRzVXBsb2FkQ29uZmlnR2V0OiAke2Vycm9yfWApO1xuICAgICAgfSlcbiAgICApLnN1YnNjcmliZSgocmVzOiBVcGxvYWRDb25maWcpID0+IHRoaXMudXBsb2FkQ29uZmlnJC5uZXh0KHJlcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZHMgZG9jdW1lbnRzIHRvIHRoZSBzZXJ2ZXIuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIHRha2VzIGEgRm9ybURhdGEgb2JqZWN0IHdoaWNoIHNob3VsZCBjb250YWluIGFsbCBmaWxlcyB0byBiZSB1cGxvYWRlZC5cbiAgICogRWFjaCBmaWxlIHNob3VsZCBiZSBhcHBlbmRlZCB0byB0aGUgRm9ybURhdGEgb2JqZWN0IHdpdGggaXRzIG9yaWdpbmFsIG5hbWUuXG4gICAqXG4gICAqIEZvciBleGFtcGxlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAqIGZvcm1EYXRhLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUuZmlsZSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcGFyYW0gZm9ybURhdGEgLSBUaGUgRm9ybURhdGEgb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGZpbGVzIHRvIGJlIHVwbG9hZGVkLlxuICAgKiAtIEVhY2ggZmlsZSBzaG91bGQgYmUgYXBwZW5kZWQgdG8gdGhlIEZvcm1EYXRhIG9iamVjdCB3aXRoIGl0cyBvcmlnaW5hbCBuYW1lLlxuICAgKiBGb3IgZXhhbXBsZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgKiBmb3JtRGF0YS5hcHBlbmQoZmlsZS5uYW1lLCBmaWxlLmZpbGUpO1xuICAgKiBgYGBcbiAgICpcbiAgICogQHBhcmFtIGVuYWJsZVByb2dyZXNzIC0gKE9wdGlvbmFsKSBBIGJvb2xlYW4gcGFyYW1ldGVyIHRoYXQgY29udHJvbHMgd2hldGhlciBwcm9ncmVzcyByZXBvcnRpbmcgaXMgZW5hYmxlZC5cbiAgICogLSBEZWZhdWx0cyB0byBgdHJ1ZWAuXG4gICAqIC0gSWYgYHRydWVgLCB0aGUgYHJlcG9ydFByb2dyZXNzYCBvcHRpb24gaXMgc2V0IGluIHRoZSByZXF1ZXN0IG9wdGlvbnMsIGVuYWJsaW5nIHRoZSB0cmFjayBvZiB1cGxvYWQgcHJvZ3Jlc3MgYmFzZWQgb24gdGhlIHVuZGVybHlpbmcgYnJvd3NlcidzIHByb2dyZXNzIGV2ZW50cy5cbiAgICogLSBJZiBgZmFsc2VgLCBwcm9ncmVzcyBldmVudHMgYXJlIG5vdCByZXBvcnRlZC5cbiAgICpcbiAgICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB0aGF0IGVtaXRzIGV2ZW50cyBvZiB0eXBlIGBVcGxvYWRFdmVudGA6XG4gICAqIC0gYFVwbG9hZFByb2dyZXNzRXZlbnRgOiBFbWl0dGVkIGR1cmluZyB0aGUgdXBsb2FkIHByb2Nlc3MsIGNvbnRhaW5pbmc6XG4gICAqICAgLSAqICBgdHlwZWA6IFwidXBsb2FkUHJvZ3Jlc3NcIiAtIFRoZSB0eXBlIG9mIHRoZSBldmVudC5cbiAgICogICAtICogIGBsb2FkZWRgOiBudW1iZXIgLSBUaGUgbnVtYmVyIG9mIGJ5dGVzIHVwbG9hZGVkIHNvIGZhci5cbiAgICogICAtICogIGB0b3RhbGA6IG51bWJlciAtIFRoZSB0b3RhbCBudW1iZXIgb2YgYnl0ZXMgdG8gYmUgdXBsb2FkZWQgKGlmIGF2YWlsYWJsZSkuXG4gICAqICAgLSAqICBgcHJvZ3Jlc3NgOiBudW1iZXIgLSBUaGUgcGVyY2VudGFnZSBvZiB1cGxvYWQgcHJvZ3Jlc3MgKGNhbGN1bGF0ZWQgYXMgYChsb2FkZWQgLyB0b3RhbCkgKiAxMDBgKS5cbiAgICogLSBgVXBsb2FkUmVzcG9uc2VFdmVudGA6IEVtaXR0ZWQgd2hlbiB0aGUgdXBsb2FkIGlzIGNvbXBsZXRlLCBjb250YWluaW5nOlxuICAgKiAgIC0gKiAgYHR5cGVgOiBcInJlc3BvbnNlXCIgLSBUaGUgdHlwZSBvZiB0aGUgZXZlbnQuXG4gICAqICAgLSAqICBgYm9keWA6IGBVcGxvYWRSZXNwb25zZWAgLSBUaGUgc2VydmVyJ3MgcmVzcG9uc2UsIGluY2x1ZGluZzpcbiAgICogICAgIC0gKiAtICogYHN0YXR1c1Rva2VuYDogc3RyaW5nIC0gQSB0b2tlbiB0byB0cmFjayB0aGUgc3RhdHVzIG9mIHRoZSBpbmRleGluZyBwcm9jZXNzLlxuICAgKiAgICAgLSAqIC0gKiAgYGV4ZWN1dGlvblRpbWVgOiBzdHJpbmcgLSBUaGUgdGltZSB0YWtlbiB0byBleGVjdXRlIHRoZSB1cGxvYWQuXG4gICAqICAgICAtICogLSAqICBgY29ubmVjdG9yUmVzcG9uc2VgIChvcHRpb25hbCk6IEFkZGl0aW9uYWwgcmVzcG9uc2UgZGF0YSBmcm9tIHRoZSBjb25uZWN0b3IsIGNvbnRhaW5pbmc6XG4gICAqICAgICAgIC0gKiAtICogLSAqICBgY29sbGVjdGlvbmA6IHN0cmluZyAtIFRoZSBjb2xsZWN0aW9uIG5hbWUuXG4gICAqICAgICAgIC0gKiAtICogLSAqICBgYWN0aW9uYDogc3RyaW5nIC0gVGhlIGFjdGlvbiBwZXJmb3JtZWQuXG4gICAqICAgICAgIC0gKiAtICogLSAqICBgc3RhdHNgOiBvYmplY3QgLSBTdGF0aXN0aWNzIGFib3V0IHRoZSB1cGxvYWQsIGluY2x1ZGluZzpcbiAgICogICAgICAgICAtICogLSAqIC0gKiAtICogYG5iRG9jVXBkYXRlZGA6IG51bWJlciAtIFRoZSBudW1iZXIgb2YgZG9jdW1lbnRzIHVwZGF0ZWQuXG4gICAqXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSBpcyBhbiBlcnJvciBpbnZva2luZyB0aGUgYGRvY3VtZW50c3VwbG9hZGAgYWN0aW9uLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAqIGZvcm1EYXRhLmFwcGVuZChmaWxlLm5hbWUsIGZpbGUuZmlsZSk7XG4gICAqIHRoaXMuZG9jdW1lbnRzVXBsb2FkU2VydmljZS51cGxvYWREb2N1bWVudHMoZm9ybURhdGEpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAqICAgaWYgKGV2ZW50LnR5cGUgPT09ICd1cGxvYWRQcm9ncmVzcycpIHtcbiAgICogICAgIGNvbnNvbGUubG9nKGBQcm9ncmVzczogJHtldmVudC5wcm9ncmVzc30lYCk7XG4gICAqICAgfSBlbHNlIGlmIChldmVudC50eXBlID09PSAncmVzcG9uc2UnKSB7XG4gICAqICAgICBjb25zb2xlLmxvZygnVXBsb2FkIGNvbXBsZXRlOicsIGV2ZW50LmJvZHkpO1xuICAgKiAgIH1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIHVwbG9hZERvY3VtZW50cyhmb3JtRGF0YTogRm9ybURhdGEsIGVuYWJsZVByb2dyZXNzOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8VXBsb2FkRXZlbnQ+IHtcbiAgICAvLyBBZGQgdGhlIHJlcXVpcmVkIFwiZGF0YVwiIGZpZWxkIGFzIGEgSlNPTiBzdHJpbmdcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgYWN0aW9uOiBcImRvY3VtZW50c3VwbG9hZFwiLFxuICAgICAgYXBwTmFtZTogdGhpcy5hcHBTZXJ2aWNlLmFwcE5hbWUsXG4gICAgICBkZWJ1ZzogdGhpcy5jaGF0U2VydmljZS5hc3Npc3RhbnRDb25maWckLnZhbHVlIS5kZWZhdWx0VmFsdWVzLmRlYnVnXG4gICAgfTtcbiAgICBmb3JtRGF0YS5hcHBlbmQoJ2RhdGEnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XG5cbiAgICBjb25zdCBvcHRpb25zOiBhbnkgID0ge1xuICAgICAgaGVhZGVyczogbmV3IEh0dHBIZWFkZXJzKHsgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KSxcbiAgICAgIG9ic2VydmU6ICdldmVudHMnLFxuICAgIH07XG4gICAgaWYgKGVuYWJsZVByb2dyZXNzKSBvcHRpb25zWydyZXBvcnRQcm9ncmVzcyddID0gdHJ1ZTtcbiAgICBjb25zdCB1cmwgPSB0aGlzLmpzb25NZXRob2RXZWJTZXJ2aWNlLm1ha2VVcmwodGhpcy5SRVFVRVNUX1VSTCk7XG5cbiAgICAvKipcbiAgICAgKiBOZWVkIHRvIHVzZSB0aGUgSHR0cENsaWVudCBkaXJlY3RseSB0byBhdm9pZCB0aGUgSlNPTk1ldGhvZFBsdWdpblNlcnZpY2UncyBiZWhhdmlvclxuICAgICAqIGJlY2F1c2UgaXQgaXMgYWx0ZXJpbmcgdGhlIHJlcXVlc3QgYW5kIHRodXMgbWFraW5nIGl0IHVuYWJsZSB0byBwcm9wZXJseSBzZXQgdGhlIENvbnRlbnQtVHlwZSBoZWFkZXIgd2l0aCB0aGUgYm91bmRhcnlcbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55Pih1cmwsIGZvcm1EYXRhLCBvcHRpb25zKS5waXBlKFxuICAgICAgZmlsdGVyKChldmVudCk6IGV2ZW50IGlzIEh0dHBVcGxvYWRQcm9ncmVzc0V2ZW50IHwgSHR0cFJlc3BvbnNlPGFueT4gPT5cbiAgICAgICAgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5SZXNwb25zZSB8fCAoZW5hYmxlUHJvZ3Jlc3MgJiYgZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcylcbiAgICAgICksXG4gICAgICBtYXAoKGV2ZW50KTogVXBsb2FkRXZlbnQgPT4ge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LnR5cGUpIHtcbiAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6IHtcbiAgICAgICAgICAgIGNvbnN0IHsgbG9hZGVkID0gMCwgdG90YWwgPSAwIH0gPSBldmVudDtcbiAgICAgICAgICAgIHJldHVybiB7IHR5cGU6ICd1cGxvYWRQcm9ncmVzcycsIGxvYWRlZCwgdG90YWwsIHByb2dyZXNzOiB0b3RhbCA+IDAgPyBNYXRoLnJvdW5kKChsb2FkZWQgLyB0b3RhbCkgKiAxMDApIDogMCB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2U6XG4gICAgICAgICAgICByZXR1cm4geyB0eXBlOiAncmVzcG9uc2UnLCBib2R5OiBldmVudC5ib2R5IH07XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuZXhwZWN0ZWQgZXZlbnQgdHlwZVwiKTsgLy8gU2hvdWxkIG5vdCByZWFjaCBoZXJlLCBidXQgZm9yIHR5cGVzY3JpcHQgc2FrZS5cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGludm9raW5nIGRvY3VtZW50c3VwbG9hZDogJHtlcnJvcn1gKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGluZGV4aW5nIHN0YXR1cyBvZiBhIHByZWRlZmluZWQgdXBsb2FkZWQgZG9jdW1lbnQocylcbiAgICogYmFzZWQgb24gdGhlIHByb3ZpZGVkIHN0YXR1cyB0b2tlbiByZXR1cm5lZCBmcm9tIHRoZSB1cGxvYWQgcHJvY2Vzcy5cbiAgICpcbiAgICogQHBhcmFtIHRva2VuIC0gVGhlIHN0YXR1cyB0b2tlbiB1c2VkIHRvIHRyYWNrIHRoZSBpbmRleGluZyBwcm9jZXNzLlxuICAgKiBAcmV0dXJucyBBbiBPYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNlcnZlciByZXNwb25zZSBvZiB0eXBlIGBJbmRleGluZ1Jlc3BvbnNlYC5cbiAgICogVGhlIGBJbmRleGluZ1Jlc3BvbnNlYCBvYmplY3QgY29udGFpbnM6XG4gICAqIC0gYGRvY3NgOiBhcnJheSAtIEFuIGFycmF5IG9mIGRvY3VtZW50IHN0YXR1cyBvYmplY3RzLCBlYWNoIGNvbnRhaW5pbmc6XG4gICAqICAgLSAqIGBpZGA6IHN0cmluZyAtIFRoZSBkb2N1bWVudCBJRC5cbiAgICogICAtICogYGZpbGVOYW1lYDogc3RyaW5nIC0gVGhlIG5hbWUgb2YgdGhlIGZpbGUuXG4gICAqICAgLSAqIGBvcGVyYXRpb25gOiBcIkFkZFwiIHwgXCJVcGRhdGVcIiAtIFRoZSBvcGVyYXRpb24gcGVyZm9ybWVkIG9uIHRoZSBkb2N1bWVudC5cbiAgICogICAtICogYHN0YXR1c2A6IFwiSW5kZXhpbmdcIiB8IFwiSW5kZXhlZFwiIHwgXCJFcnJvclwiIC0gVGhlIHN0YXR1cyBvZiB0aGUgZG9jdW1lbnQuXG4gICAqICAgLSAqIGBwcmV2aW91c0luZGV4YXRpb25UaW1lYDogc3RyaW5nIHwgbnVsbCAtIFRoZSBwcmV2aW91cyBpbmRleGF0aW9uIHRpbWUuXG4gICAqICAgLSAqIGBjdXJyZW50SW5kZXhhdGlvblRpbWVgOiBzdHJpbmcgfCBudWxsIC0gVGhlIGN1cnJlbnQgaW5kZXhhdGlvbiB0aW1lLlxuICAgKiAtIGBleGVjdXRpb25UaW1lYDogc3RyaW5nIC0gVGhlIHRpbWUgdGFrZW4gdG8gcmV0cmlldmUgdGhlIGluZGV4aW5nIHN0YXR1cy5cbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIGlzIGFuIGVycm9yIGludm9raW5nIHRoZSBgZG9jdW1lbnRzVXBsb2FkU3RhdHVzYCBhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0SW5kZXhpbmdTdGF0dXModG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8SW5kZXhpbmdJbmZvcz4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICBhY3Rpb246IFwiZG9jdW1lbnRzVXBsb2FkU3RhdHVzXCIsXG4gICAgICBhcHBOYW1lOiB0aGlzLmFwcFNlcnZpY2UuYXBwTmFtZSxcbiAgICAgIHN0YXR1c1Rva2VuOiB0b2tlbixcbiAgICAgIGRlYnVnOiB0aGlzLmNoYXRTZXJ2aWNlLmFzc2lzdGFudENvbmZpZyQudmFsdWUhLmRlZmF1bHRWYWx1ZXMuZGVidWdcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuanNvbk1ldGhvZFdlYlNlcnZpY2UucG9zdCh0aGlzLlJFUVVFU1RfVVJMLCBkYXRhKS5waXBlKFxuICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBpbnZva2luZyBkb2N1bWVudHNVcGxvYWRTdGF0dXM6ICR7ZXJyb3J9YCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGEgbGlzdCBvZiB1cGxvYWRlZCBkb2N1bWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IFtjb2x1bW5zXSAtIE9wdGlvbmFsIGFycmF5IG9mIGFkZGl0aW9uYWwgaW5kZXggY29sdW1ucyB0byBpbmNsdWRlIGZvciBlYWNoIGRvY3VtZW50LlxuICAgKiBAcGFyYW0ge251bWJlcn0gW3NraXBdIC0gT3B0aW9uYWwgbnVtYmVyIG9mIGRvY3VtZW50cyB0byBza2lwIGZvciBwYWdpbmF0aW9uLiBJZiBzZXQsIGNvdW50IGFsc28gbmVlZHMgdG8gYmUgc2V0LiBObyBza2lwIGlmIG5vdCBzZXQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbY291bnRdIC0gT3B0aW9uYWwgbnVtYmVyIG9mIGRvY3VtZW50cyB0byB0YWtlIGZvciBwYWdpbmF0aW9uICh1bmxpbWl0ZWQgaWYgbm90IHNldCkuXG4gICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFVwbG9hZGVkRG9jdW1lbnRzPn0gQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBsaXN0IG9mIHVwbG9hZGVkIGRvY3VtZW50cy5cbiAgICogVGhlIGBVcGxvYWRlZERvY3VtZW50c2Agb2JqZWN0IGNvbnRhaW5zOlxuICAgKiAtIGBkb2NzYDogYXJyYXkgLSBBbiBhcnJheSBvZiBvYmplY3RzIHJlcHJlc2VudGluZyBhIHNpbmdsZSBkb2N1bWVudCB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAgICogICAtICogYGlkYDogc3RyaW5nIC0gQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGRvY3VtZW50LlxuICAgKiAgIC0gKiBgZmlsZU5hbWVgOiBzdHJpbmcgLSBUaGUgbmFtZSBvZiB0aGUgZmlsZS5cbiAgICogICAtICogYHRpdGxlYDogc3RyaW5nIC0gVGhlIHRpdGxlIG9mIHRoZSBkb2N1bWVudC5cbiAgICogICAtICogYGZpbGVFeHRgOiBzdHJpbmcgLSBUaGUgZmlsZSBleHRlbnNpb24gb2YgdGhlIGRvY3VtZW50LlxuICAgKiAgIC0gKiBgaW5kZXhhdGlvblRpbWVgOiBzdHJpbmcgLSBUaGUgdGltZSB3aGVuIHRoZSBkb2N1bWVudCB3YXMgaW5kZXhlZC5cbiAgICogICAtICogYHNpemVgOiBudW1iZXIgLSBUaGUgc2l6ZSBvZiB0aGUgZG9jdW1lbnQuXG4gICAqICAgLSAqIGBzaXplRGlzcGxheWA6IHN0cmluZyAtIEEgaHVtYW4tcmVhZGFibGUgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRvY3VtZW50IHNpemUuXG4gICAqICAgLSAqIGBba2V5OiBzdHJpbmddYDogYW55IC0gQWRkaXRpb25hbCBjb2x1bW5zIGFza2VkIGluIHRoZSByZXF1ZXN0LCB2YWx1ZSBvZiB0aGUgY29sdW1uIGZvciB0aGUgZG9jdW1lbnQuXG4gICAqIC0gYGNvdW50YDogbnVtYmVyIC0gVGhlIGNvdW50IG9mIGRvY3VtZW50cyBpbiB0aGUgY3VycmVudCBiYXRjaCBvciBzdWJzZXQuXG4gICAqIC0gYHRvdGFsQ291bnRgOiBudW1iZXIgLSBUaGUgdG90YWwgY291bnQgb2YgZG9jdW1lbnRzIGF2YWlsYWJsZS5cbiAgICogLSBgZXhlY3V0aW9uVGltZWA6IHN0cmluZyAtIFRoZSB0aW1lIHRha2VuIHRvIHByb2Nlc3MgdGhlIGRvY3VtZW50cy5cbiAgICogQHRocm93cyB7RXJyb3J9IFRocm93cyBhbiBlcnJvciBpZiB0aGUgcmVxdWVzdCBmYWlscy5cbiAgICovXG4gIHB1YmxpYyBnZXREb2N1bWVudHNMaXN0KGNvbHVtbnM/OiBzdHJpbmdbXSwgc2tpcD86IG51bWJlciwgY291bnQ/OiBudW1iZXIpOiBPYnNlcnZhYmxlPFVwbG9hZGVkRG9jdW1lbnRzPiB7XG4gICAgY29uc3QgZGF0YSA9IHtcbiAgICAgIGFjdGlvbjogXCJkb2N1bWVudHNMaXN0XCIsXG4gICAgICBhcHBOYW1lOiB0aGlzLmFwcFNlcnZpY2UuYXBwTmFtZSxcbiAgICAgIGRlYnVnOiB0aGlzLmNoYXRTZXJ2aWNlLmFzc2lzdGFudENvbmZpZyQudmFsdWUhLmRlZmF1bHRWYWx1ZXMuZGVidWdcbiAgICB9O1xuXG4gICAgaWYgKGNvbHVtbnMpIGRhdGFbXCJjb2x1bW5zXCJdID0gY29sdW1ucztcbiAgICBpZiAoc2tpcCkgZGF0YVtcInNraXBcIl0gPSBza2lwO1xuICAgIGlmIChjb3VudCkgZGF0YVtcImNvdW50XCJdID0gY291bnQ7XG5cbiAgICByZXR1cm4gdGhpcy5qc29uTWV0aG9kV2ViU2VydmljZS5wb3N0KHRoaXMuUkVRVUVTVF9VUkwsIGRhdGEpLnBpcGUoXG4gICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEVycm9yIGludm9raW5nIGRvY3VtZW50c0xpc3Q6ICR7ZXJyb3J9YCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogRGVsZXRlcyB0aGUgdXBsb2FkZWQgZG9jdW1lbnRzIHdpdGggdGhlIHNwZWNpZmllZCBJRHMuXG4gICAqXG4gICAqIEBwYXJhbSBkb2NJZHMgLSBBbiBhcnJheSBvZiBkb2N1bWVudCBJRHMgdG8gZGVsZXRlLlxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIHRoYXQgZW1pdHMgdGhlIHNlcnZlciByZXNwb25zZSBvZiB0eXBlIGBkZWxldGVEb2N1bWVudHNSZXNwb25zZWAuXG4gICAqIFRoZSBgZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2VgIG9iamVjdCBjb250YWluczpcbiAgICogLSBgZGVsZXRlZENvdW50YDogbnVtYmVyIC0gVGhlIG51bWJlciBvZiBkZWxldGVkIGRvY3VtZW50cy5cbiAgICogLSBgZXhlY3V0aW9uVGltZWA6IHN0cmluZyAtIFRoZSB0aW1lIHRha2VuIHRvIGRlbGV0ZSB0aGUgZG9jdW1lbnRzLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgaXMgYW4gZXJyb3IgaW52b2tpbmcgdGhlIGBkb2N1bWVudHNEZWxldGVgIGFjdGlvbi5cbiAgICovXG4gIHB1YmxpYyBkZWxldGVEb2N1bWVudHMoZG9jSWRzOiBzdHJpbmdbXSk6IE9ic2VydmFibGU8ZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2U+IHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgYWN0aW9uOiBcImRvY3VtZW50c0RlbGV0ZVwiLFxuICAgICAgZG9jSWRzLFxuICAgICAgYXBwTmFtZTogdGhpcy5hcHBTZXJ2aWNlLmFwcE5hbWUsXG4gICAgICBkZWJ1ZzogdGhpcy5jaGF0U2VydmljZS5hc3Npc3RhbnRDb25maWckLnZhbHVlIS5kZWZhdWx0VmFsdWVzLmRlYnVnXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmpzb25NZXRob2RXZWJTZXJ2aWNlLnBvc3QodGhpcy5SRVFVRVNUX1VSTCwgZGF0YSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgaW52b2tpbmcgZG9jdW1lbnRzRGVsZXRlOiAke2Vycm9yfWApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZXMgYWxsIHVwbG9hZGVkIGRvY3VtZW50cy5cbiAgICpcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSB0aGF0IGVtaXRzIHRoZSBzZXJ2ZXIgcmVzcG9uc2Ugb2YgdHlwZSBgZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2VgLlxuICAgKiBUaGUgYGRlbGV0ZURvY3VtZW50c1Jlc3BvbnNlYCBvYmplY3QgY29udGFpbnM6XG4gICAqIC0gYGRlbGV0ZWRDb3VudGA6IG51bWJlciAtIFRoZSBudW1iZXIgb2YgZGVsZXRlZCBkb2N1bWVudHMuXG4gICAqIC0gYGV4ZWN1dGlvblRpbWVgOiBzdHJpbmcgLSBUaGUgdGltZSB0YWtlbiB0byBkZWxldGUgdGhlIGRvY3VtZW50cy5cbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIGlzIGFuIGVycm9yIGludm9raW5nIHRoZSBgZG9jdW1lbnRzRGVsZXRlQWxsYCBhY3Rpb24uXG4gICAqL1xuICBwdWJsaWMgZGVsZXRlQWxsRG9jdW1lbnRzKCk6IE9ic2VydmFibGU8ZGVsZXRlRG9jdW1lbnRzUmVzcG9uc2U+IHtcbiAgICBjb25zdCBkYXRhID0ge1xuICAgICAgYWN0aW9uOiBcImRvY3VtZW50c0RlbGV0ZUFsbFwiLFxuICAgICAgYXBwTmFtZTogdGhpcy5hcHBTZXJ2aWNlLmFwcE5hbWUsXG4gICAgICBkZWJ1ZzogdGhpcy5jaGF0U2VydmljZS5hc3Npc3RhbnRDb25maWckLnZhbHVlIS5kZWZhdWx0VmFsdWVzLmRlYnVnXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmpzb25NZXRob2RXZWJTZXJ2aWNlLnBvc3QodGhpcy5SRVFVRVNUX1VSTCwgZGF0YSkucGlwZShcbiAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3IgaW52b2tpbmcgZG9jdW1lbnRzRGVsZXRlQWxsOiAke2Vycm9yfWApO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcm1hdHMgdGhlIGdpdmVuIGZpbGUgc2l6ZSBpbiBieXRlcyBpbnRvIGEgaHVtYW4tcmVhZGFibGUgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0gYnl0ZXMgLSBUaGUgc2l6ZSBvZiB0aGUgZmlsZSBpbiBieXRlcy5cbiAgICogQHJldHVybnMgQSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBmaWxlIHNpemUgaW4gYSBodW1hbi1yZWFkYWJsZSBmb3JtYXQgKGUuZy4sIFwiMTAuMjQgS0JcIiwgXCIxLjAwIE1CXCIpLlxuICAgKi9cbiAgcHVibGljIGZvcm1hdEZpbGVTaXplKGJ5dGVzOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA9PT0gMCkgcmV0dXJuIFwiMCBCeXRlc1wiO1xuICAgIGNvbnN0IGsgPSAxMDI0O1xuICAgIGNvbnN0IHNpemVzID0gW1wiQnl0ZXNcIiwgXCJLQlwiLCBcIk1CXCIsIFwiR0JcIiwgXCJUQlwiXTtcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gICAgcmV0dXJuIChcbiAgICAgIE51bWJlci5wYXJzZUZsb2F0KChieXRlcyAvIE1hdGgucG93KGssIGkpKS50b0ZpeGVkKDIpKSArIFwiIFwiICsgc2l6ZXNbaV1cbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBnaXZlbiBmaWxlIHNpemUgaW4gYnl0ZXMgaW50byBtZWdhYnl0ZXMuXG4gICAqXG4gICAqIEBwYXJhbSBieXRlcyAtIFRoZSBzaXplIG9mIHRoZSBmaWxlIGluIGJ5dGVzLlxuICAgKiBAcmV0dXJucyBUaGUgc2l6ZSBvZiB0aGUgZmlsZSBpbiBtZWdhYnl0ZXMuXG4gICAqL1xuICBwdWJsaWMgY29udmVydEJ5dGVzVG9NQihieXRlczogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gYnl0ZXMgLyAoMTAyNCAqIDEwMjQpO1xuICB9XG5cbn1cbiJdfQ==
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
20
20
  }], propDecorators: { extension: [{
21
21
  type: Input
22
22
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvZm9ybWF0LWljb24vZm9ybWF0LWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvZm9ybWF0LWljb24vZm9ybWF0LWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFXVSxpQkFBWSxHQUFHLGtCQUFrQixDQUFDO0tBUzNDO0lBTEMsV0FBVztRQUNULE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN4RCxDQUFDOztnSEFYVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixtSUNYaEMsaURBQTJDLDJDRFMvQixZQUFZOzJGQUVYLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBRVgsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBSWQsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZGVmYXVsdEZvcm1hdEljb25zIH0gZnJvbSAnLi9pY29ucyc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NxLWZvcm1hdC1pY29uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWF0LWljb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybWF0SWNvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIEBJbnB1dCgpIGV4dGVuc2lvbjogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIF9mb3JtYXRJY29ucyA9IGRlZmF1bHRGb3JtYXRJY29ucztcclxuICBcclxuICBpY29uOiBzdHJpbmc7XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgY29uc3QgaWNvbiA9IHRoaXMuZXh0ZW5zaW9uID8gdGhpcy5fZm9ybWF0SWNvbnNbdGhpcy5leHRlbnNpb25dIDogdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbj8uaWNvbiB8fCB0aGlzLl9mb3JtYXRJY29ucy5maWxlLmljb247XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c3BhbiAqbmdJZj1cImljb25cIiBjbGFzcz1cInt7aWNvbn19XCI+PC9zcGFuPiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvZm9ybWF0LWljb24vZm9ybWF0LWljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvZm9ybWF0LWljb24vZm9ybWF0LWljb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBUy9DLE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFXVSxpQkFBWSxHQUFHLGtCQUFrQixDQUFDO0tBUzNDO0lBTEMsV0FBVztRQUNULE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDNUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUN4RCxDQUFDOztnSEFYVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixtSUNYaEMsaURBQTJDLDJDRFMvQixZQUFZOzJGQUVYLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDRSxnQkFBZ0IsaUJBRVgsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUM7OEJBSWQsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlZmF1bHRGb3JtYXRJY29ucyB9IGZyb20gJy4vaWNvbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3EtZm9ybWF0LWljb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybWF0LWljb24uY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtYXRJY29uQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICBASW5wdXQoKSBleHRlbnNpb246IHN0cmluZztcblxuICBwcml2YXRlIF9mb3JtYXRJY29ucyA9IGRlZmF1bHRGb3JtYXRJY29ucztcbiAgXG4gIGljb246IHN0cmluZztcblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBjb25zdCBpY29uID0gdGhpcy5leHRlbnNpb24gPyB0aGlzLl9mb3JtYXRJY29uc1t0aGlzLmV4dGVuc2lvbl0gOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5pY29uID0gaWNvbj8uaWNvbiB8fCB0aGlzLl9mb3JtYXRJY29ucy5maWxlLmljb247XG4gIH1cblxufVxuIiwiPHNwYW4gKm5nSWY9XCJpY29uXCIgY2xhc3M9XCJ7e2ljb259fVwiPjwvc3Bhbj4iXX0=
@@ -135,4 +135,4 @@ export const defaultFormatIcons = {
135
135
  "mmp": { icon: "fas fa-file-medical", color: 'grey' },
136
136
  "mppx": { icon: "fas fa-file-medical", color: 'grey' },
137
137
  };
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9mb3JtYXQtaWNvbi9pY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBK0I7SUFDMUQsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7SUFDaEQsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ3pDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRTtJQUN4QyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ2pDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtJQUN0QyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO0lBQy9CLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTtJQUMzQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7SUFDekMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFO0lBQzFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtJQUN2QyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7SUFDdkMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtJQUN0QyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ2xDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFO0lBQ3RELGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtJQUMxQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7SUFDM0MsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFO0lBQzNDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7SUFDbkMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7SUFDbEQsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0lBQ3RDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRTtJQUU5QyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQy9CLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3hELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3pELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3pELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzFELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQ2xELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQ2xELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQ25ELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQzNELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3pELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3pELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzdELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0lBQ3ZELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQzlELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ25ELEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ25ELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3ZELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3hELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3ZELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3RELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3pELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQzFELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ25ELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ2xELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ25ELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3JELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUMvQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUN6RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUN6RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtJQUMxRCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDaEQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQzlDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0NBQ3pELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEljb25Gb3JtYXQge1xyXG4gICAgaWNvbjogc3RyaW5nO1xyXG4gICAgY29sb3I/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Rm9ybWF0SWNvbnM6IFJlY29yZDxzdHJpbmcsIEljb25Gb3JtYXQ+ID0ge1xyXG4gICAgXCJleHRyYWN0c2xvY2F0aW9uc1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYWx0XCIgfSxcclxuICAgIFwibWF0Y2hsb2NhdGlvbnNcIjogeyBpY29uOiBcImZhciBmYS1mbGFnXCIgfSxcclxuICAgIFwiZ2VvXCI6IHsgaWNvbjogXCJmYXMgZmEtbWFwLW1hcmtlci1hbHRcIiB9LFxyXG4gICAgXCJwZXJzb25cIjogeyBpY29uOiBcImZhcyBmYS11c2VyXCIgfSxcclxuICAgIFwiY29tcGFueVwiOiB7IGljb246IFwiZmFzIGZhLWJ1aWxkaW5nXCIgfSxcclxuICAgIFwidGl0bGVcIjogeyBpY29uOiBcImZhcyBmYS10YWdcIiB9LFxyXG4gICAgXCJtb2RpZmllZFwiOiB7IGljb246IFwiZmFyIGZhLWNhbGVuZGFyLWFsdFwiIH0sXHJcbiAgICBcInNpemVcIjogeyBpY29uOiBcImZhcyBmYS13ZWlnaHQtaGFuZ2luZ1wiIH0sXHJcbiAgICBcInRyZWVwYXRoXCI6IHsgaWNvbjogXCJmYXMgZmEtZm9sZGVyLW9wZW5cIiB9LFxyXG4gICAgXCJmaWxlbmFtZVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYWx0XCIgfSxcclxuICAgIFwiYXV0aG9yc1wiOiB7IGljb246IFwiZmFzIGZhLXVzZXItZWRpdFwiIH0sXHJcbiAgICBcImFjY2Vzc2xpc3RzXCI6IHsgaWNvbjogXCJmYXMgZmEtbG9ja1wiIH0sXHJcbiAgICBcImRvY3R5cGVcIjogeyBpY29uOiBcImZhciBmYS1maWxlXCIgfSxcclxuICAgIFwiZG9jdW1lbnRsYW5ndWFnZXNcIjogeyBpY29uOiBcImZhcyBmYS1nbG9iZS1hbWVyaWNhc1wiIH0sXHJcbiAgICBcImdsb2JhbHJlbGV2YW5jZVwiOiB7IGljb246IFwiZmFyIGZhLXN0YXJcIiB9LFxyXG4gICAgXCJpbmRleGF0aW9udGltZVwiOiB7IGljb246IFwiZmFzIGZhLXNlYXJjaFwiIH0sXHJcbiAgICBcImNvbmNlcHRzXCI6IHsgaWNvbjogXCJmYXIgZmEtY29tbWVudC1kb3RzXCIgfSxcclxuICAgIFwia2V5d29yZHNcIjogeyBpY29uOiBcImZhcyBmYS10YWdzXCIgfSxcclxuICAgIFwibWF0Y2hpbmdwYXJ0bmFtZXNcIjogeyBpY29uOiBcImZhcyBmYS1hbGlnbi1sZWZ0XCIgfSxcclxuICAgIFwibXNnZnJvbVwiOiB7IGljb246IFwiZmFzIGZhLWVudmVsb3BlXCIgfSxcclxuICAgIFwibXNndG9cIjogeyBpY29uOiBcImZhcyBmYS1lbnZlbG9wZS1vcGVuLXRleHRcIiB9LFxyXG5cclxuICAgIFwiZmlsZVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGVcIiB9LFxyXG4gICAgXCJodG1cIjogeyBpY29uOiBcImZhcyBmYS1nbG9iZS1ldXJvcGVcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJodG1sXCI6IHsgaWNvbjogXCJmYXMgZmEtZ2xvYmUtZXVyb3BlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwieGh0bVwiOiB7IGljb246IFwiZmFzIGZhLWdsb2JlLWV1cm9wZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcInhodG1sXCI6IHsgaWNvbjogXCJmYXMgZmEtZ2xvYmUtZXVyb3BlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwibWh0XCI6IHsgaWNvbjogXCJmYXMgZmEtZ2xvYmUtZXVyb3BlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwiZG9jXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS13b3JkXCIsIGNvbG9yOiAnIzNmM2ZjYScgfSxcclxuICAgIFwiZG9jeFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtd29yZFwiLCBjb2xvcjogJyMzZjNmY2EnIH0sXHJcbiAgICBcImRvY21cIjogeyBpY29uOiBcImZhciBmYS1maWxlLXdvcmRcIiwgY29sb3I6ICcjM2YzZmNhJyB9LFxyXG4gICAgXCJkb3RcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXdvcmRcIiwgY29sb3I6ICcjM2YzZmNhJyB9LFxyXG4gICAgXCJkb3R4XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS13b3JkXCIsIGNvbG9yOiAnIzNmM2ZjYScgfSxcclxuICAgIFwiZG90bVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtd29yZFwiLCBjb2xvcjogJyMzZjNmY2EnIH0sXHJcbiAgICBcInJ0ZlwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtd29yZFwiLCBjb2xvcjogJyMzZjNmY2EnIH0sXHJcbiAgICBcIm9kdFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtd29yZFwiLCBjb2xvcjogJ2dyZXknIH0sXHJcbiAgICBcIm90dFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtd29yZFwiLCBjb2xvcjogJ2dyZXknIH0sXHJcbiAgICBcImdkb2NcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXdvcmRcIiwgY29sb3I6ICdibHVlJyB9LFxyXG4gICAgXCJ4bHNcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAnZ3JlZW4nIH0sXHJcbiAgICBcInhsc3hcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAnZ3JlZW4nIH0sXHJcbiAgICBcInhsdFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtZXhjZWxcIiwgY29sb3I6ICdncmVlbicgfSxcclxuICAgIFwieGx0eFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtZXhjZWxcIiwgY29sb3I6ICdncmVlbicgfSxcclxuICAgIFwieGxzbVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtZXhjZWxcIiwgY29sb3I6ICdncmVlbicgfSxcclxuICAgIFwieGx0bVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtZXhjZWxcIiwgY29sb3I6ICdncmVlbicgfSxcclxuICAgIFwiZ3NoZWV0XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1leGNlbFwiLCBjb2xvcjogJ2RhcmtncmVlbicgfSxcclxuICAgIFwib2RzXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1leGNlbFwiLCBjb2xvcjogJ2xpZ2h0Z3JlZW4nIH0sXHJcbiAgICBcIm90c1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtZXhjZWxcIiwgY29sb3I6ICdsaWdodGdyZWVuJyB9LFxyXG4gICAgXCJwcHRcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBvd2VycG9pbnRcIiwgY29sb3I6ICcjZTY0YjMwJyB9LFxyXG4gICAgXCJwcHR4XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAnI2U2NGIzMCcgfSxcclxuICAgIFwicHB0bVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJyNlNjRiMzAnIH0sXHJcbiAgICBcInBwdG0yXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAnI2U2NGIzMCcgfSxcclxuICAgIFwicHBzXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAnI2U2NGIzMCcgfSxcclxuICAgIFwicHBzeFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJyNlNjRiMzAnIH0sXHJcbiAgICBcInBwc21cIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBvd2VycG9pbnRcIiwgY29sb3I6ICcjZTY0YjMwJyB9LFxyXG4gICAgXCJwb3RcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBvd2VycG9pbnRcIiwgY29sb3I6ICcjZTY0YjMwJyB9LFxyXG4gICAgXCJwb3R4XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAnI2U2NGIzMCcgfSxcclxuICAgIFwicG90bVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJyNlNjRiMzAnIH0sXHJcbiAgICBcIm9kcFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJ3JlZCcgfSxcclxuICAgIFwib3RwXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAncmVkJyB9LFxyXG4gICAgXCJnc2xpZGVzXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAnb3JhbmdlJyB9LFxyXG4gICAgXCJwZGZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBkZlwiLCBjb2xvcjogJyNlYzJlMmUnIH0sXHJcbiAgICBcImpwZ1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtaW1hZ2VcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJqcGVnXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1pbWFnZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcImJtcFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtaW1hZ2VcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJ0aWZmXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1pbWFnZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcInRpZlwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtaW1hZ2VcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJnaWZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWltYWdlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwicG5nXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1pbWFnZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcIm1wNFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJmbHZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXZpZGVvXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwic3dmXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS12aWRlb1wiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcIm10c1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJkaXZ4XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS12aWRlb1wiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcIndtdlwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJhdmlcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXZpZGVvXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwibW92XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS12aWRlb1wiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcIm1wZ1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJtcGVnXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS12aWRlb1wiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcImFzZlwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJybVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJtcDNcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWF1ZGlvXCIsIGNvbG9yOiAnbGlnaHRibHVlJyB9LFxyXG4gICAgXCJ3YXZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWF1ZGlvXCIsIGNvbG9yOiAnbGlnaHRibHVlJyB9LFxyXG4gICAgXCJvZ2dcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWF1ZGlvXCIsIGNvbG9yOiAnbGlnaHRibHVlJyB9LFxyXG4gICAgXCJ3bWFcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWF1ZGlvXCIsIGNvbG9yOiAnbGlnaHRibHVlJyB9LFxyXG4gICAgXCJhYWNcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWF1ZGlvXCIsIGNvbG9yOiAnbGlnaHRibHVlJyB9LFxyXG4gICAgXCJtM3VcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWF1ZGlvXCIsIGNvbG9yOiAnbGlnaHRibHVlJyB9LFxyXG4gICAgXCJ0eHRcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWFsdFwiLCBjb2xvcjogJyMyMDIwMjAnIH0sXHJcbiAgICBcInRleHRcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWFsdFwiLCBjb2xvcjogJyMyMDIwMjAnIH0sXHJcbiAgICBcInhtbFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcImNzXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1jb2RlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwiamF2YVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcImNwcFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcImNcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWNvZGVcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJoXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1jb2RlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwiaHBwXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1jb2RlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcclxuICAgIFwianNcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWNvZGVcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxyXG4gICAgXCJ0c1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXHJcbiAgICBcInppcFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYXJjaGl2ZVwiLCBjb2xvcjogJ3llbGxvdycgfSxcclxuICAgIFwiN3ppcFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYXJjaGl2ZVwiLCBjb2xvcjogJ3llbGxvdycgfSxcclxuICAgIFwiN3pcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWFyY2hpdmVcIiwgY29sb3I6ICd5ZWxsb3cnIH0sXHJcbiAgICBcInJhclwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYXJjaGl2ZVwiLCBjb2xvcjogJ3llbGxvdycgfSxcclxuICAgIFwiZ3pcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWFyY2hpdmVcIiwgY29sb3I6ICd5ZWxsb3cnIH0sXHJcbiAgICBcIm5vdGVzXCI6IHsgaWNvbjogXCJmYXMgZmEtZmlsZS1pbnZvaWNlXCIsIGNvbG9yOiAnb3JhbmdlJyB9LFxyXG4gICAgXCJxdWlja3JcIjogeyBpY29uOiBcImZhcyBmYS1maWxlLWludm9pY2VcIiwgY29sb3I6ICdvcmFuZ2UnIH0sXHJcbiAgICBcImVtYWlsXCI6IHsgaWNvbjogXCJmYXIgZmEtZW52ZWxvcGVcIiwgY29sb3I6ICdibGFjaycgfSxcclxuICAgIFwibWFpbFwiOiB7IGljb246IFwiZmFyIGZhLWVudmVsb3BlXCIsIGNvbG9yOiAnYmxhY2snIH0sXHJcbiAgICBcIm1zZ1wiOiB7IGljb246IFwiZmFyIGZhLWVudmVsb3BlXCIsIGNvbG9yOiAnYmxhY2snIH0sXHJcbiAgICBcIm1kYlwiOiB7IGljb246IFwiZmFyIGZhLWRhdGFiYXNlXCIsIGNvbG9yOiAncHVycGxlJyB9LFxyXG4gICAgXCJvZGJcIjogeyBpY29uOiBcImZhciBmYS1kYXRhYmFzZVwiLCBjb2xvcjogJ2RhcmtyZWQnIH0sXHJcbiAgICBcIm90YlwiOiB7IGljb246IFwiZmFyIGZhLWRhdGFiYXNlXCIsIGNvbG9yOiAnZGFya3JlZCcgfSxcclxuICAgIFwieHNuXCI6IHsgaWNvbjogXCJmYXMgZmEtZmlsZS1leGNlbFwiLCBjb2xvcjogJ3B1cnBsZScgfSxcclxuICAgIFwiZ2Zvcm1cIjogeyBpY29uOiBcImZhcyBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAncHVycGxlJyB9LFxyXG4gICAgXCJvbmVcIjogeyBpY29uOiBcImZhciBmYS1ib29rXCIsIGNvbG9yOiAncHVycGxlJyB9LFxyXG4gICAgXCJvZGZcIjogeyBpY29uOiBcImZhcyBmYS1maWxlLW1lZGljYWwtYWx0XCIsIGNvbG9yOiAnZ3JleScgfSxcclxuICAgIFwib3RmXCI6IHsgaWNvbjogXCJmYXMgZmEtZmlsZS1tZWRpY2FsLWFsdFwiLCBjb2xvcjogJ2dyZXknIH0sXHJcbiAgICBcInZzZHhcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXHJcbiAgICBcInZzeFwiOiB7IGljb246IFwiZmFyIGZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogJ3B1cnBsZScgfSxcclxuICAgIFwidnR4XCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAncHVycGxlJyB9LFxyXG4gICAgXCJ2ZHhcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXHJcbiAgICBcInZzc3hcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXHJcbiAgICBcInZzdHhcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXHJcbiAgICBcInZzZG1cIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXHJcbiAgICBcInZzc21cIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXHJcbiAgICBcInZzdG1cIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXHJcbiAgICBcInZkd1wiOiB7IGljb246IFwiZmFyIGZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogJ3B1cnBsZScgfSxcclxuICAgIFwidnNkXCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAncHVycGxlJyB9LFxyXG4gICAgXCJ2c3NcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXHJcbiAgICBcInZzdFwiOiB7IGljb246IFwiZmFyIGZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogJ3B1cnBsZScgfSxcclxuICAgIFwib2RnXCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAnb3JhbmdlJyB9LFxyXG4gICAgXCJvdGdcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdvcmFuZ2UnIH0sXHJcbiAgICBcImdkcmF3XCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAncmVkJyB9LFxyXG4gICAgXCJwdWJcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdkYXJrZ3JlZW4nIH0sXHJcbiAgICBcImxkYXBcIjogeyBpY29uOiBcImZhciBmYS11c2Vyc1wiLCBjb2xvcjogJ2Jyb3duJyB9LFxyXG4gICAgXCJhZFwiOiB7IGljb246IFwiZmFyIGZhLXVzZXJzXCIsIGNvbG9yOiAnYnJvd24nIH0sXHJcbiAgICBcIm1tcFwiOiB7IGljb246IFwiZmFzIGZhLWZpbGUtbWVkaWNhbFwiLCBjb2xvcjogJ2dyZXknIH0sXHJcbiAgICBcIm1wcHhcIjogeyBpY29uOiBcImZhcyBmYS1maWxlLW1lZGljYWxcIiwgY29sb3I6ICdncmV5JyB9LFxyXG59Il19
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hc3Npc3RhbnQvY2hhdC9mb3JtYXQtaWNvbi9pY29ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBK0I7SUFDMUQsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUU7SUFDaEQsZ0JBQWdCLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ3pDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRTtJQUN4QyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ2pDLFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtJQUN0QyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFO0lBQy9CLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRTtJQUMzQyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7SUFDekMsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixFQUFFO0lBQzFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRTtJQUN2QyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7SUFDdkMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtJQUN0QyxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQ2xDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFO0lBQ3RELGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtJQUMxQyxnQkFBZ0IsRUFBRSxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUU7SUFDM0MsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFO0lBQzNDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUU7SUFDbkMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7SUFDbEQsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO0lBQ3RDLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSwyQkFBMkIsRUFBRTtJQUU5QyxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFO0lBQy9CLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3hELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3pELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3pELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzFELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQ2xELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQ2xELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQ25ELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3JELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQzNELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3pELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ3pELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzdELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzNELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQzVELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0lBQ3ZELFNBQVMsRUFBRSxFQUFFLElBQUksRUFBRSx3QkFBd0IsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQzlELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ3hELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ25ELEdBQUcsRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ25ELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3JELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3ZELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3hELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3RELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3ZELElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3RELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3pELFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQzFELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ3BELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ25ELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQ2xELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ25ELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFO0lBQ3BELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3JELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFO0lBQ3ZELEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUMvQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUN6RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRTtJQUN6RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN4RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRTtJQUN2RCxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtJQUN0RCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUscUJBQXFCLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRTtJQUMxRCxNQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDaEQsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQzlDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0lBQ3JELE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO0NBQ3pELENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEljb25Gb3JtYXQge1xuICAgIGljb246IHN0cmluZztcbiAgICBjb2xvcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRGb3JtYXRJY29uczogUmVjb3JkPHN0cmluZywgSWNvbkZvcm1hdD4gPSB7XG4gICAgXCJleHRyYWN0c2xvY2F0aW9uc1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYWx0XCIgfSxcbiAgICBcIm1hdGNobG9jYXRpb25zXCI6IHsgaWNvbjogXCJmYXIgZmEtZmxhZ1wiIH0sXG4gICAgXCJnZW9cIjogeyBpY29uOiBcImZhcyBmYS1tYXAtbWFya2VyLWFsdFwiIH0sXG4gICAgXCJwZXJzb25cIjogeyBpY29uOiBcImZhcyBmYS11c2VyXCIgfSxcbiAgICBcImNvbXBhbnlcIjogeyBpY29uOiBcImZhcyBmYS1idWlsZGluZ1wiIH0sXG4gICAgXCJ0aXRsZVwiOiB7IGljb246IFwiZmFzIGZhLXRhZ1wiIH0sXG4gICAgXCJtb2RpZmllZFwiOiB7IGljb246IFwiZmFyIGZhLWNhbGVuZGFyLWFsdFwiIH0sXG4gICAgXCJzaXplXCI6IHsgaWNvbjogXCJmYXMgZmEtd2VpZ2h0LWhhbmdpbmdcIiB9LFxuICAgIFwidHJlZXBhdGhcIjogeyBpY29uOiBcImZhcyBmYS1mb2xkZXItb3BlblwiIH0sXG4gICAgXCJmaWxlbmFtZVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYWx0XCIgfSxcbiAgICBcImF1dGhvcnNcIjogeyBpY29uOiBcImZhcyBmYS11c2VyLWVkaXRcIiB9LFxuICAgIFwiYWNjZXNzbGlzdHNcIjogeyBpY29uOiBcImZhcyBmYS1sb2NrXCIgfSxcbiAgICBcImRvY3R5cGVcIjogeyBpY29uOiBcImZhciBmYS1maWxlXCIgfSxcbiAgICBcImRvY3VtZW50bGFuZ3VhZ2VzXCI6IHsgaWNvbjogXCJmYXMgZmEtZ2xvYmUtYW1lcmljYXNcIiB9LFxuICAgIFwiZ2xvYmFscmVsZXZhbmNlXCI6IHsgaWNvbjogXCJmYXIgZmEtc3RhclwiIH0sXG4gICAgXCJpbmRleGF0aW9udGltZVwiOiB7IGljb246IFwiZmFzIGZhLXNlYXJjaFwiIH0sXG4gICAgXCJjb25jZXB0c1wiOiB7IGljb246IFwiZmFyIGZhLWNvbW1lbnQtZG90c1wiIH0sXG4gICAgXCJrZXl3b3Jkc1wiOiB7IGljb246IFwiZmFzIGZhLXRhZ3NcIiB9LFxuICAgIFwibWF0Y2hpbmdwYXJ0bmFtZXNcIjogeyBpY29uOiBcImZhcyBmYS1hbGlnbi1sZWZ0XCIgfSxcbiAgICBcIm1zZ2Zyb21cIjogeyBpY29uOiBcImZhcyBmYS1lbnZlbG9wZVwiIH0sXG4gICAgXCJtc2d0b1wiOiB7IGljb246IFwiZmFzIGZhLWVudmVsb3BlLW9wZW4tdGV4dFwiIH0sXG5cbiAgICBcImZpbGVcIjogeyBpY29uOiBcImZhciBmYS1maWxlXCIgfSxcbiAgICBcImh0bVwiOiB7IGljb246IFwiZmFzIGZhLWdsb2JlLWV1cm9wZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJodG1sXCI6IHsgaWNvbjogXCJmYXMgZmEtZ2xvYmUtZXVyb3BlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcInhodG1cIjogeyBpY29uOiBcImZhcyBmYS1nbG9iZS1ldXJvcGVcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwieGh0bWxcIjogeyBpY29uOiBcImZhcyBmYS1nbG9iZS1ldXJvcGVcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwibWh0XCI6IHsgaWNvbjogXCJmYXMgZmEtZ2xvYmUtZXVyb3BlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcImRvY1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtd29yZFwiLCBjb2xvcjogJyMzZjNmY2EnIH0sXG4gICAgXCJkb2N4XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS13b3JkXCIsIGNvbG9yOiAnIzNmM2ZjYScgfSxcbiAgICBcImRvY21cIjogeyBpY29uOiBcImZhciBmYS1maWxlLXdvcmRcIiwgY29sb3I6ICcjM2YzZmNhJyB9LFxuICAgIFwiZG90XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS13b3JkXCIsIGNvbG9yOiAnIzNmM2ZjYScgfSxcbiAgICBcImRvdHhcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXdvcmRcIiwgY29sb3I6ICcjM2YzZmNhJyB9LFxuICAgIFwiZG90bVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtd29yZFwiLCBjb2xvcjogJyMzZjNmY2EnIH0sXG4gICAgXCJydGZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXdvcmRcIiwgY29sb3I6ICcjM2YzZmNhJyB9LFxuICAgIFwib2R0XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS13b3JkXCIsIGNvbG9yOiAnZ3JleScgfSxcbiAgICBcIm90dFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtd29yZFwiLCBjb2xvcjogJ2dyZXknIH0sXG4gICAgXCJnZG9jXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS13b3JkXCIsIGNvbG9yOiAnYmx1ZScgfSxcbiAgICBcInhsc1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtZXhjZWxcIiwgY29sb3I6ICdncmVlbicgfSxcbiAgICBcInhsc3hcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAnZ3JlZW4nIH0sXG4gICAgXCJ4bHRcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAnZ3JlZW4nIH0sXG4gICAgXCJ4bHR4XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1leGNlbFwiLCBjb2xvcjogJ2dyZWVuJyB9LFxuICAgIFwieGxzbVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtZXhjZWxcIiwgY29sb3I6ICdncmVlbicgfSxcbiAgICBcInhsdG1cIjogeyBpY29uOiBcImZhciBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAnZ3JlZW4nIH0sXG4gICAgXCJnc2hlZXRcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAnZGFya2dyZWVuJyB9LFxuICAgIFwib2RzXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1leGNlbFwiLCBjb2xvcjogJ2xpZ2h0Z3JlZW4nIH0sXG4gICAgXCJvdHNcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAnbGlnaHRncmVlbicgfSxcbiAgICBcInBwdFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJyNlNjRiMzAnIH0sXG4gICAgXCJwcHR4XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAnI2U2NGIzMCcgfSxcbiAgICBcInBwdG1cIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBvd2VycG9pbnRcIiwgY29sb3I6ICcjZTY0YjMwJyB9LFxuICAgIFwicHB0bTJcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBvd2VycG9pbnRcIiwgY29sb3I6ICcjZTY0YjMwJyB9LFxuICAgIFwicHBzXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAnI2U2NGIzMCcgfSxcbiAgICBcInBwc3hcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBvd2VycG9pbnRcIiwgY29sb3I6ICcjZTY0YjMwJyB9LFxuICAgIFwicHBzbVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJyNlNjRiMzAnIH0sXG4gICAgXCJwb3RcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBvd2VycG9pbnRcIiwgY29sb3I6ICcjZTY0YjMwJyB9LFxuICAgIFwicG90eFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJyNlNjRiMzAnIH0sXG4gICAgXCJwb3RtXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1wb3dlcnBvaW50XCIsIGNvbG9yOiAnI2U2NGIzMCcgfSxcbiAgICBcIm9kcFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJ3JlZCcgfSxcbiAgICBcIm90cFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtcG93ZXJwb2ludFwiLCBjb2xvcjogJ3JlZCcgfSxcbiAgICBcImdzbGlkZXNcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBvd2VycG9pbnRcIiwgY29sb3I6ICdvcmFuZ2UnIH0sXG4gICAgXCJwZGZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXBkZlwiLCBjb2xvcjogJyNlYzJlMmUnIH0sXG4gICAgXCJqcGdcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWltYWdlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcImpwZWdcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWltYWdlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcImJtcFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtaW1hZ2VcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwidGlmZlwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtaW1hZ2VcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwidGlmXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1pbWFnZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJnaWZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWltYWdlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcInBuZ1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtaW1hZ2VcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwibXA0XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS12aWRlb1wiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJmbHZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXZpZGVvXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcInN3ZlwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwibXRzXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS12aWRlb1wiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJkaXZ4XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS12aWRlb1wiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJ3bXZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXZpZGVvXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcImF2aVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwibW92XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS12aWRlb1wiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJtcGdcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXZpZGVvXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcIm1wZWdcIjogeyBpY29uOiBcImZhciBmYS1maWxlLXZpZGVvXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcImFzZlwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtdmlkZW9cIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwicm1cIjogeyBpY29uOiBcImZhciBmYS1maWxlLXZpZGVvXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcIm1wM1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYXVkaW9cIiwgY29sb3I6ICdsaWdodGJsdWUnIH0sXG4gICAgXCJ3YXZcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWF1ZGlvXCIsIGNvbG9yOiAnbGlnaHRibHVlJyB9LFxuICAgIFwib2dnXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1hdWRpb1wiLCBjb2xvcjogJ2xpZ2h0Ymx1ZScgfSxcbiAgICBcIndtYVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYXVkaW9cIiwgY29sb3I6ICdsaWdodGJsdWUnIH0sXG4gICAgXCJhYWNcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWF1ZGlvXCIsIGNvbG9yOiAnbGlnaHRibHVlJyB9LFxuICAgIFwibTN1XCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1hdWRpb1wiLCBjb2xvcjogJ2xpZ2h0Ymx1ZScgfSxcbiAgICBcInR4dFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYWx0XCIsIGNvbG9yOiAnIzIwMjAyMCcgfSxcbiAgICBcInRleHRcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWFsdFwiLCBjb2xvcjogJyMyMDIwMjAnIH0sXG4gICAgXCJ4bWxcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWNvZGVcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwiY3NcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWNvZGVcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwiamF2YVwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJjcHBcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWNvZGVcIiwgY29sb3I6ICcjNDU0NWJmJyB9LFxuICAgIFwiY1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJoXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1jb2RlXCIsIGNvbG9yOiAnIzQ1NDViZicgfSxcbiAgICBcImhwcFwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJqc1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJ0c1wiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtY29kZVwiLCBjb2xvcjogJyM0NTQ1YmYnIH0sXG4gICAgXCJ6aXBcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWFyY2hpdmVcIiwgY29sb3I6ICd5ZWxsb3cnIH0sXG4gICAgXCI3emlwXCI6IHsgaWNvbjogXCJmYXIgZmEtZmlsZS1hcmNoaXZlXCIsIGNvbG9yOiAneWVsbG93JyB9LFxuICAgIFwiN3pcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWFyY2hpdmVcIiwgY29sb3I6ICd5ZWxsb3cnIH0sXG4gICAgXCJyYXJcIjogeyBpY29uOiBcImZhciBmYS1maWxlLWFyY2hpdmVcIiwgY29sb3I6ICd5ZWxsb3cnIH0sXG4gICAgXCJnelwiOiB7IGljb246IFwiZmFyIGZhLWZpbGUtYXJjaGl2ZVwiLCBjb2xvcjogJ3llbGxvdycgfSxcbiAgICBcIm5vdGVzXCI6IHsgaWNvbjogXCJmYXMgZmEtZmlsZS1pbnZvaWNlXCIsIGNvbG9yOiAnb3JhbmdlJyB9LFxuICAgIFwicXVpY2tyXCI6IHsgaWNvbjogXCJmYXMgZmEtZmlsZS1pbnZvaWNlXCIsIGNvbG9yOiAnb3JhbmdlJyB9LFxuICAgIFwiZW1haWxcIjogeyBpY29uOiBcImZhciBmYS1lbnZlbG9wZVwiLCBjb2xvcjogJ2JsYWNrJyB9LFxuICAgIFwibWFpbFwiOiB7IGljb246IFwiZmFyIGZhLWVudmVsb3BlXCIsIGNvbG9yOiAnYmxhY2snIH0sXG4gICAgXCJtc2dcIjogeyBpY29uOiBcImZhciBmYS1lbnZlbG9wZVwiLCBjb2xvcjogJ2JsYWNrJyB9LFxuICAgIFwibWRiXCI6IHsgaWNvbjogXCJmYXIgZmEtZGF0YWJhc2VcIiwgY29sb3I6ICdwdXJwbGUnIH0sXG4gICAgXCJvZGJcIjogeyBpY29uOiBcImZhciBmYS1kYXRhYmFzZVwiLCBjb2xvcjogJ2RhcmtyZWQnIH0sXG4gICAgXCJvdGJcIjogeyBpY29uOiBcImZhciBmYS1kYXRhYmFzZVwiLCBjb2xvcjogJ2RhcmtyZWQnIH0sXG4gICAgXCJ4c25cIjogeyBpY29uOiBcImZhcyBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAncHVycGxlJyB9LFxuICAgIFwiZ2Zvcm1cIjogeyBpY29uOiBcImZhcyBmYS1maWxlLWV4Y2VsXCIsIGNvbG9yOiAncHVycGxlJyB9LFxuICAgIFwib25lXCI6IHsgaWNvbjogXCJmYXIgZmEtYm9va1wiLCBjb2xvcjogJ3B1cnBsZScgfSxcbiAgICBcIm9kZlwiOiB7IGljb246IFwiZmFzIGZhLWZpbGUtbWVkaWNhbC1hbHRcIiwgY29sb3I6ICdncmV5JyB9LFxuICAgIFwib3RmXCI6IHsgaWNvbjogXCJmYXMgZmEtZmlsZS1tZWRpY2FsLWFsdFwiLCBjb2xvcjogJ2dyZXknIH0sXG4gICAgXCJ2c2R4XCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAncHVycGxlJyB9LFxuICAgIFwidnN4XCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAncHVycGxlJyB9LFxuICAgIFwidnR4XCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAncHVycGxlJyB9LFxuICAgIFwidmR4XCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAncHVycGxlJyB9LFxuICAgIFwidnNzeFwiOiB7IGljb246IFwiZmFyIGZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogJ3B1cnBsZScgfSxcbiAgICBcInZzdHhcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXG4gICAgXCJ2c2RtXCI6IHsgaWNvbjogXCJmYXIgZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiAncHVycGxlJyB9LFxuICAgIFwidnNzbVwiOiB7IGljb246IFwiZmFyIGZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogJ3B1cnBsZScgfSxcbiAgICBcInZzdG1cIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXG4gICAgXCJ2ZHdcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXG4gICAgXCJ2c2RcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXG4gICAgXCJ2c3NcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXG4gICAgXCJ2c3RcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdwdXJwbGUnIH0sXG4gICAgXCJvZGdcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdvcmFuZ2UnIH0sXG4gICAgXCJvdGdcIjogeyBpY29uOiBcImZhciBmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6ICdvcmFuZ2UnIH0sXG4gICAgXCJnZHJhd1wiOiB7IGljb246IFwiZmFyIGZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogJ3JlZCcgfSxcbiAgICBcInB1YlwiOiB7IGljb246IFwiZmFyIGZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogJ2RhcmtncmVlbicgfSxcbiAgICBcImxkYXBcIjogeyBpY29uOiBcImZhciBmYS11c2Vyc1wiLCBjb2xvcjogJ2Jyb3duJyB9LFxuICAgIFwiYWRcIjogeyBpY29uOiBcImZhciBmYS11c2Vyc1wiLCBjb2xvcjogJ2Jyb3duJyB9LFxuICAgIFwibW1wXCI6IHsgaWNvbjogXCJmYXMgZmEtZmlsZS1tZWRpY2FsXCIsIGNvbG9yOiAnZ3JleScgfSxcbiAgICBcIm1wcHhcIjogeyBpY29uOiBcImZhcyBmYS1maWxlLW1lZGljYWxcIiwgY29sb3I6ICdncmV5JyB9LFxufSJdfQ==
@@ -48,13 +48,13 @@ export class InitialsAvatarComponent {
48
48
  }
49
49
  }
50
50
  InitialsAvatarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: InitialsAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
51
- InitialsAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: InitialsAvatarComponent, isStandalone: true, selector: "sq-initials-avatar", inputs: { fullName: "fullName", size: "size" }, ngImport: i0, template: "<span class=\"sq-initials-avatar\" *ngIf=\"getInitialsAndColorFromFullName(fullName) as meta\"\r\n [ngStyle]=\"{ 'background-color': meta.color }\" [style.height.rem]=\"size\" [style.width.rem]=\"size\"\r\n [style.line-height.rem]=\"size\" [style.font-size.rem]=\"size/2\">\r\n {{ meta.initials | uppercase }}\r\n</span>", styles: [".sq-initials-avatar{display:block;border-radius:50%;text-align:center;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }] });
51
+ InitialsAvatarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: InitialsAvatarComponent, isStandalone: true, selector: "sq-initials-avatar", inputs: { fullName: "fullName", size: "size" }, ngImport: i0, template: "<span class=\"sq-initials-avatar\" *ngIf=\"getInitialsAndColorFromFullName(fullName) as meta\"\n [ngStyle]=\"{ 'background-color': meta.color }\" [style.height.rem]=\"size\" [style.width.rem]=\"size\"\n [style.line-height.rem]=\"size\" [style.font-size.rem]=\"size/2\">\n {{ meta.initials | uppercase }}\n</span>", styles: [".sq-initials-avatar{display:block;border-radius:50%;text-align:center;color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }] });
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: InitialsAvatarComponent, decorators: [{
53
53
  type: Component,
54
- args: [{ selector: 'sq-initials-avatar', standalone: true, imports: [CommonModule], template: "<span class=\"sq-initials-avatar\" *ngIf=\"getInitialsAndColorFromFullName(fullName) as meta\"\r\n [ngStyle]=\"{ 'background-color': meta.color }\" [style.height.rem]=\"size\" [style.width.rem]=\"size\"\r\n [style.line-height.rem]=\"size\" [style.font-size.rem]=\"size/2\">\r\n {{ meta.initials | uppercase }}\r\n</span>", styles: [".sq-initials-avatar{display:block;border-radius:50%;text-align:center;color:#fff}\n"] }]
54
+ args: [{ selector: 'sq-initials-avatar', standalone: true, imports: [CommonModule], template: "<span class=\"sq-initials-avatar\" *ngIf=\"getInitialsAndColorFromFullName(fullName) as meta\"\n [ngStyle]=\"{ 'background-color': meta.color }\" [style.height.rem]=\"size\" [style.width.rem]=\"size\"\n [style.line-height.rem]=\"size\" [style.font-size.rem]=\"size/2\">\n {{ meta.initials | uppercase }}\n</span>", styles: [".sq-initials-avatar{display:block;border-radius:50%;text-align:center;color:#fff}\n"] }]
55
55
  }], propDecorators: { fullName: [{
56
56
  type: Input
57
57
  }], size: [{
58
58
  type: Input
59
59
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbHMtYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2luaXRpYWxzLWF2YXRhci9pbml0aWFscy1hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvaW5pdGlhbHMtYXZhdGFyL2luaXRpYWxzLWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBOzs7QUFTakMsTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQVNXLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsU0FBSSxHQUFXLEdBQUcsQ0FBQyxDQUFDLFNBQVM7S0E0Q3ZDO0lBMUNDOzs7Ozs7U0FNSztJQUNMLCtCQUErQixDQUFDLFFBQWdCLEVBQUUsUUFBZ0IsR0FBRztRQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQzdHLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLFFBQWdCLEdBQUc7UUFDM0QsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV6QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQzlCLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQ3RCLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O29IQTdDVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qiw4SENYcEMsMlVBSU8sNElES0ssWUFBWTsyRkFFWCx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFJZCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IFNhZmVDb2xvciBmcm9tICdzYWZlY29sb3InXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NxLWluaXRpYWxzLWF2YXRhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2luaXRpYWxzLWF2YXRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW5pdGlhbHMtYXZhdGFyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5pdGlhbHNBdmF0YXJDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBmdWxsTmFtZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgc2l6ZTogbnVtYmVyID0gMS41OyAvLyBpbiByZW1cclxuXHJcbiAgLyoqXHJcbiAgICAgKiBHaXZlcyBpbml0aWFscyBvZiBhIG5hbWUgYW5kIGEgc2FmZSBjb2xvciBiYWNrZ3JvdW5kIHRvIHVzZSxcclxuICAgICAqIGFzc3VtaW5nIHRleHQgY29sb3Igd2lsbCBiZSB3aGl0ZVxyXG4gICAgICogQHBhcmFtIGZ1bGxOYW1lIGZ1bGwgbmFtZSB0byBldmFsdWF0ZSBpbnRpYWxzIGZvclxyXG4gICAgICogQHBhcmFtIHNwbGl0IHN0cmluZyB0byB1c2UgaGFzIHNwbGl0dGVyIGZvciBgZnVsbE5hbWVgXHJcbiAgICAgKiBAcmV0dXJucyBhbiBgb2JqZWN0YCBjb250YWluaW5nIGluaXRpYWxzIGFuZCBjb2xvclxyXG4gICAgICovXHJcbiAgZ2V0SW5pdGlhbHNBbmRDb2xvckZyb21GdWxsTmFtZShmdWxsTmFtZTogc3RyaW5nLCBzcGxpdDogc3RyaW5nID0gJyAnKTogeyBpbml0aWFsczogc3RyaW5nOyBjb2xvcjogc3RyaW5nIH0ge1xyXG4gICAgcmV0dXJuIHsgaW5pdGlhbHM6IHRoaXMuZ2V0SW5pdGlhbHNGcm9tRnVsbE5hbWUoZnVsbE5hbWUsIHNwbGl0KSwgY29sb3I6IHRoaXMuZ2V0Q29sb3JGcm9tTmFtZShmdWxsTmFtZSkgfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVzIGluaXRpYWxzIG9mIGEgbmFtZSwgaWU6XHJcbiAgICogYGBgXHJcbiAgICogZ2V0SW5pdGlhbEZvckZ1bGxOYW1lKCdKb2huIFNub3cnKSA9PiAnSlMnXHJcbiAgICogZ2V0SW5pdGlhbEZvckZ1bGxOYW1lKCdHZXJhbHQgb2YgUml2aWEnLCAnIG9mICcpID0+ICdHUidcclxuICAgKiBgYGBcclxuICAgKiBAcGFyYW0gZnVsbE5hbWUgZnVsbCBuYW1lIHRvIGV2YWx1YXRlIGludGlhbCBmb3JcclxuICAgKiBAcGFyYW0gc3BsaXQgc3RyaW5nIHRvIHVzZSBoYXMgc3BsaXR0ZXJcclxuICAgKiBAcmV0dXJucyBzdHJpbmcgY29udGFpbmcgdGhlIGZpcnN0IGxldHRlciBvZiBzcGxpdHRlZCBuYW1lXHJcbiAgICovXHJcbiAgZ2V0SW5pdGlhbHNGcm9tRnVsbE5hbWUoZnVsbE5hbWU6IHN0cmluZywgc3BsaXQ6IHN0cmluZyA9ICcgJyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWZ1bGxOYW1lKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3QgbmFtZXMgPSBmdWxsTmFtZS5zcGxpdChzcGxpdCk7XHJcbiAgICByZXR1cm4gbmFtZXNbMF1bMF0gKyAobmFtZXNbMV0/LlswXSA/PyAnJyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIGEgcmFuZG9tIGNvbG9yIHVzaW5nIHRleHQgYXMgc2VlZFxyXG4gICAqIEBwYXJhbSB0ZXh0IHN0cmluZyB0byB1c2UgZm9yIGNvbG9yIGdlbmVyYXRpb25cclxuICAgKiBAcmV0dXJucyBzdHJpbmcgZm9ybWF0dGVkIGxpa2UgYHJnYih4eHgsIHh4eCwgeHh4KWBcclxuICAgKi9cclxuICBnZXRDb2xvckZyb21OYW1lKHRleHQ6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBzYWZlQ29sb3IgPSBuZXcgU2FmZUNvbG9yKHtcclxuICAgICAgY29sb3I6IFsyNTUsIDI1NSwgMjU1XSxcclxuICAgICAgY29udHJhc3Q6IDQuNVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHNhZmVDb2xvci5yYW5kb20odGV4dCk7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8c3BhbiBjbGFzcz1cInNxLWluaXRpYWxzLWF2YXRhclwiICpuZ0lmPVwiZ2V0SW5pdGlhbHNBbmRDb2xvckZyb21GdWxsTmFtZShmdWxsTmFtZSkgYXMgbWV0YVwiXHJcbiAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogbWV0YS5jb2xvciB9XCIgW3N0eWxlLmhlaWdodC5yZW1dPVwic2l6ZVwiIFtzdHlsZS53aWR0aC5yZW1dPVwic2l6ZVwiXHJcbiAgICBbc3R5bGUubGluZS1oZWlnaHQucmVtXT1cInNpemVcIiBbc3R5bGUuZm9udC1zaXplLnJlbV09XCJzaXplLzJcIj5cclxuICAgIHt7IG1ldGEuaW5pdGlhbHMgfCB1cHBlcmNhc2UgfX1cclxuPC9zcGFuPiJdfQ==
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbHMtYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fzc2lzdGFudC9jaGF0L2luaXRpYWxzLWF2YXRhci9pbml0aWFscy1hdmF0YXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXNzaXN0YW50L2NoYXQvaW5pdGlhbHMtYXZhdGFyL2luaXRpYWxzLWF2YXRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxTQUFTLE1BQU0sV0FBVyxDQUFBOzs7QUFTakMsTUFBTSxPQUFPLHVCQUF1QjtJQVBwQztRQVNXLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsU0FBSSxHQUFXLEdBQUcsQ0FBQyxDQUFDLFNBQVM7S0E0Q3ZDO0lBMUNDOzs7Ozs7U0FNSztJQUNMLCtCQUErQixDQUFDLFFBQWdCLEVBQUUsUUFBZ0IsR0FBRztRQUNuRSxPQUFPLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQzdHLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCx1QkFBdUIsQ0FBQyxRQUFnQixFQUFFLFFBQWdCLEdBQUc7UUFDM0QsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUV6QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxnQkFBZ0IsQ0FBQyxJQUFZO1FBQzNCLE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFDO1lBQzlCLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQ3RCLFFBQVEsRUFBRSxHQUFHO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7O29IQTdDVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qiw4SENYcEMsbVVBSU8sNElES0ssWUFBWTsyRkFFWCx1QkFBdUI7a0JBUG5DLFNBQVM7K0JBQ0Usb0JBQW9CLGNBR2xCLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQzs4QkFJZCxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgU2FmZUNvbG9yIGZyb20gJ3NhZmVjb2xvcidcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3EtaW5pdGlhbHMtYXZhdGFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2luaXRpYWxzLWF2YXRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2luaXRpYWxzLWF2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXVxufSlcbmV4cG9ydCBjbGFzcyBJbml0aWFsc0F2YXRhckNvbXBvbmVudCB7XG5cbiAgQElucHV0KCkgZnVsbE5hbWU6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSAxLjU7IC8vIGluIHJlbVxuXG4gIC8qKlxuICAgICAqIEdpdmVzIGluaXRpYWxzIG9mIGEgbmFtZSBhbmQgYSBzYWZlIGNvbG9yIGJhY2tncm91bmQgdG8gdXNlLFxuICAgICAqIGFzc3VtaW5nIHRleHQgY29sb3Igd2lsbCBiZSB3aGl0ZVxuICAgICAqIEBwYXJhbSBmdWxsTmFtZSBmdWxsIG5hbWUgdG8gZXZhbHVhdGUgaW50aWFscyBmb3JcbiAgICAgKiBAcGFyYW0gc3BsaXQgc3RyaW5nIHRvIHVzZSBoYXMgc3BsaXR0ZXIgZm9yIGBmdWxsTmFtZWBcbiAgICAgKiBAcmV0dXJucyBhbiBgb2JqZWN0YCBjb250YWluaW5nIGluaXRpYWxzIGFuZCBjb2xvclxuICAgICAqL1xuICBnZXRJbml0aWFsc0FuZENvbG9yRnJvbUZ1bGxOYW1lKGZ1bGxOYW1lOiBzdHJpbmcsIHNwbGl0OiBzdHJpbmcgPSAnICcpOiB7IGluaXRpYWxzOiBzdHJpbmc7IGNvbG9yOiBzdHJpbmcgfSB7XG4gICAgcmV0dXJuIHsgaW5pdGlhbHM6IHRoaXMuZ2V0SW5pdGlhbHNGcm9tRnVsbE5hbWUoZnVsbE5hbWUsIHNwbGl0KSwgY29sb3I6IHRoaXMuZ2V0Q29sb3JGcm9tTmFtZShmdWxsTmFtZSkgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHaXZlcyBpbml0aWFscyBvZiBhIG5hbWUsIGllOlxuICAgKiBgYGBcbiAgICogZ2V0SW5pdGlhbEZvckZ1bGxOYW1lKCdKb2huIFNub3cnKSA9PiAnSlMnXG4gICAqIGdldEluaXRpYWxGb3JGdWxsTmFtZSgnR2VyYWx0IG9mIFJpdmlhJywgJyBvZiAnKSA9PiAnR1InXG4gICAqIGBgYFxuICAgKiBAcGFyYW0gZnVsbE5hbWUgZnVsbCBuYW1lIHRvIGV2YWx1YXRlIGludGlhbCBmb3JcbiAgICogQHBhcmFtIHNwbGl0IHN0cmluZyB0byB1c2UgaGFzIHNwbGl0dGVyXG4gICAqIEByZXR1cm5zIHN0cmluZyBjb250YWluZyB0aGUgZmlyc3QgbGV0dGVyIG9mIHNwbGl0dGVkIG5hbWVcbiAgICovXG4gIGdldEluaXRpYWxzRnJvbUZ1bGxOYW1lKGZ1bGxOYW1lOiBzdHJpbmcsIHNwbGl0OiBzdHJpbmcgPSAnICcpOiBzdHJpbmcge1xuICAgIGlmICghZnVsbE5hbWUpIHJldHVybiAnJztcblxuICAgIGNvbnN0IG5hbWVzID0gZnVsbE5hbWUuc3BsaXQoc3BsaXQpO1xuICAgIHJldHVybiBuYW1lc1swXVswXSArIChuYW1lc1sxXT8uWzBdID8/ICcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgcmFuZG9tIGNvbG9yIHVzaW5nIHRleHQgYXMgc2VlZFxuICAgKiBAcGFyYW0gdGV4dCBzdHJpbmcgdG8gdXNlIGZvciBjb2xvciBnZW5lcmF0aW9uXG4gICAqIEByZXR1cm5zIHN0cmluZyBmb3JtYXR0ZWQgbGlrZSBgcmdiKHh4eCwgeHh4LCB4eHgpYFxuICAgKi9cbiAgZ2V0Q29sb3JGcm9tTmFtZSh0ZXh0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHNhZmVDb2xvciA9IG5ldyBTYWZlQ29sb3Ioe1xuICAgICAgY29sb3I6IFsyNTUsIDI1NSwgMjU1XSxcbiAgICAgIGNvbnRyYXN0OiA0LjVcbiAgICB9KTtcblxuICAgIHJldHVybiBzYWZlQ29sb3IucmFuZG9tKHRleHQpO1xuICB9XG5cbn1cbiIsIjxzcGFuIGNsYXNzPVwic3EtaW5pdGlhbHMtYXZhdGFyXCIgKm5nSWY9XCJnZXRJbml0aWFsc0FuZENvbG9yRnJvbUZ1bGxOYW1lKGZ1bGxOYW1lKSBhcyBtZXRhXCJcbiAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogbWV0YS5jb2xvciB9XCIgW3N0eWxlLmhlaWdodC5yZW1dPVwic2l6ZVwiIFtzdHlsZS53aWR0aC5yZW1dPVwic2l6ZVwiXG4gICAgW3N0eWxlLmxpbmUtaGVpZ2h0LnJlbV09XCJzaXplXCIgW3N0eWxlLmZvbnQtc2l6ZS5yZW1dPVwic2l6ZS8yXCI+XG4gICAge3sgbWV0YS5pbml0aWFscyB8IHVwcGVyY2FzZSB9fVxuPC9zcGFuPiJdfQ==