vcomply-workflow-engine 3.1.9 → 3.1.10

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.
@@ -49,10 +49,10 @@ export class BulkViewComponent {
49
49
  }
50
50
  }
51
51
  BulkViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BulkViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
52
- BulkViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BulkViewComponent, selector: "app-bulk-view", inputs: { riskBulkUpload: "riskBulkUpload", templateInfo: "templateInfo", fileName: "fileName", assessmentDaysEnable: "assessmentDaysEnable", defaultOwner: "defaultOwner", loader: "loader" }, outputs: { submitRiskBulkUpload: "submitRiskBulkUpload", cancel: "cancel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{fileName}}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"heading && i === 4\" *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\">\r\n <ng-container *ngIf=\"heading && !(heading.startsWith('Inherent')) && !(i === 4)\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" *ngFor=\"let weightAgeFactor of riskBulkUpload.weightFactors | slice : 2\">\r\n {{weightAgeFactor}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && i === 4\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" *ngFor=\"let weightAgeFactor of riskBulkUpload?.weightFactors | slice : 0: 2\">\r\n {{(weightAgeFactor.includes('*')? weightAgeFactor.replace('*', '') : weightAgeFactor)}}\r\n <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row\" *ngFor=\"let risk of riskBulkUpload.risks; let i = index\">\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">{{i+1}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">{{risk?.riskName}}\r\n <i *ngIf=\"!risk?.riskName\" class=\"icons\" [appTooltip]=\"'Risk Name must be populated.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{risk?.description}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">{{risk?.rcName}}\r\n <i *ngIf=\"!risk?.rcName\" class=\"icons\"\r\n [appTooltip]=\"'Assign this risk to a Responsibility Center.'\" placement=\"bottom-right\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{risk?.owner}}</div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">{{risk?.frequency}} \r\n <i *ngIf=\"!risk?.isValidFrequency\" class=\"icons\"\r\n [appTooltip]=\"'Set a frequency for the completion of the inherent risk assessment.'\" placement=\"bottom-right\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"false\">{{risk?.emailReminder}} </div>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"(risk?.owner && (risk?.owner == risk?.overseer))||\r\n (!risk?.owner && (defaultOwner == risk?.overseer))\">{{risk?.overseer}}\r\n <i *ngIf=\"(risk?.owner && (risk?.owner == risk?.overseer)) || (!risk?.owner && (defaultOwner == risk?.overseer)) \"\r\n class=\"icons\"\r\n [appTooltip]=\"((risk?.owner)?'The Risk Owner cannot also be the':'You cannot be a') +' Oversight of the risk. Select another user as the Oversight of this risk.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div *ngIf=\"riskBulkUpload?.header && riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\" class=\"exel-view-column\">{{risk?.mitigationPriority}}</div>\r\n <div class=\"exel-view-column\">{{risk?.mitigationPlans}}</div>\r\n <div class=\"exel-view-column\">{{risk?.riskLabel}}</div>\r\n <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\r\n {{risk?.assessmentDeadLine}}\r\n <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\r\n [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\r\n </div> -->\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.likelihood && !templateInfo?.likelihood.includes(risk?.likelihood)\">{{risk?.likelihood}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.impact && !templateInfo?.impact.includes(risk?.impact)\">{{risk?.impact}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\">\r\n {{risk?.velocity}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.vulnerability && !templateInfo?.vulnerability.includes(risk?.vulnerability)\"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\">\r\n {{risk?.vulnerability}} </div>\r\n </div>\r\n <div *ngIf=\"riskBulkUpload?.header && riskBulkUpload?.header?.includes('Do you want to apply the same risk ratings for all Responsibility Centers?')\" class=\"exel-view-column\">{{risk?.applySameRiskRating}}</div>\r\n <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\r\n <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\r\n\r\n <ng-container *ngIf=\"risk?.customTag\">\r\n <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">{{tag?.custom_tag_value}}</div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>{{finalRisks}} out of {{riskBulkUpload?.risks?.length}} risks will be added to the Risk Register.</p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\">Cancel</button>\r\n <button (click)=\"submit(false)\" [disabled]=\"finalRisks<1\" class=\"blue\">Add Risks</button>\r\n <button (click)=\"submit(true)\" *ngIf=\"showCompleteAssessmentButton\"\r\n [disabled]=\"finalRisks<1\" class=\"blue\">Add Risks And Complete Assessment</button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#FFFFFF}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0}.bulk-view-body .exel-view-row.two-column .exel-view-column,.bulk-view-body .exel-view-row.three-column .exel-view-column,.bulk-view-body .exel-view-row.four-column .exel-view-column{min-width:250px!important}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body .exel-view-column.three-column{width:750px;min-width:750px!important}.bulk-view-body .exel-view-column.four-column{width:1000px;min-width:1000px!important}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424}.bulk-view-body .exel-view-column span.required{color:#eb2424}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e5dd259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#FFFFFF}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1E5DD3}.bulk-view-footer .right button:disabled{background:#F1F1F1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i3.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] });
52
+ BulkViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: BulkViewComponent, selector: "app-bulk-view", inputs: { riskBulkUpload: "riskBulkUpload", templateInfo: "templateInfo", fileName: "fileName", assessmentDaysEnable: "assessmentDaysEnable", defaultOwner: "defaultOwner", loader: "loader" }, outputs: { submitRiskBulkUpload: "submitRiskBulkUpload", cancel: "cancel" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{fileName}}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"heading && i === 4\" *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\">\r\n <ng-container *ngIf=\"heading && !(heading.startsWith('Inherent')) && !(i === 4)\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" *ngFor=\"let weightAgeFactor of riskBulkUpload.weightFactors | slice : 2\">\r\n {{weightAgeFactor}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && i === 4\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" *ngFor=\"let weightAgeFactor of riskBulkUpload?.weightFactors | slice : 0: 2\">\r\n {{(weightAgeFactor.includes('*')? weightAgeFactor.replace('*', '') : weightAgeFactor)}}\r\n <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row\" *ngFor=\"let risk of riskBulkUpload.risks; let i = index\">\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">{{i+1}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">{{risk?.riskName}}\r\n <i *ngIf=\"!risk?.riskName\" class=\"icons\" [appTooltip]=\"'Risk Name must be populated.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{risk?.description}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">{{risk?.rcName}}\r\n <i *ngIf=\"!risk?.rcName\" class=\"icons\"\r\n [appTooltip]=\"'Assign this risk to a Responsibility Center.'\" placement=\"bottom-right\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{risk?.owner}}</div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">{{risk?.frequency}} \r\n <i *ngIf=\"!risk?.isValidFrequency\" class=\"icons\"\r\n [appTooltip]=\"'Set a frequency for the completion of the inherent risk assessment.'\" placement=\"bottom-right\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"false\">{{risk?.emailReminder}} </div>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"(risk?.owner && (risk?.owner == risk?.overseer))||\r\n (!risk?.owner && (defaultOwner == risk?.overseer))\">{{risk?.overseer}}\r\n <i *ngIf=\"(risk?.owner && (risk?.owner == risk?.overseer)) || (!risk?.owner && (defaultOwner == risk?.overseer)) \"\r\n class=\"icons\"\r\n [appTooltip]=\"((risk?.owner)?'The Risk Owner cannot also be the':'You cannot be a') +' Overseer of the risk. Select another user as the Overseer of this risk.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div *ngIf=\"riskBulkUpload?.header && riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\" class=\"exel-view-column\">{{risk?.mitigationPriority}}</div>\r\n <div class=\"exel-view-column\">{{risk?.mitigationPlans}}</div>\r\n <div class=\"exel-view-column\">{{risk?.riskLabel}}</div>\r\n <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\r\n {{risk?.assessmentDeadLine}}\r\n <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\r\n [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\r\n </div> -->\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.likelihood && !templateInfo?.likelihood.includes(risk?.likelihood)\">{{risk?.likelihood}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.impact && !templateInfo?.impact.includes(risk?.impact)\">{{risk?.impact}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\">\r\n {{risk?.velocity}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.vulnerability && !templateInfo?.vulnerability.includes(risk?.vulnerability)\"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\">\r\n {{risk?.vulnerability}} </div>\r\n </div>\r\n <div *ngIf=\"riskBulkUpload?.header && riskBulkUpload?.header?.includes('Do you want to apply the same risk ratings for all Responsibility Centers?')\" class=\"exel-view-column\">{{risk?.applySameRiskRating}}</div>\r\n <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\r\n <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\r\n\r\n <ng-container *ngIf=\"risk?.customTag\">\r\n <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">{{tag?.custom_tag_value}}</div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>{{finalRisks}} out of {{riskBulkUpload?.risks?.length}} risks will be added to the Risk Register.</p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\">Cancel</button>\r\n <button (click)=\"submit(false)\" [disabled]=\"finalRisks<1\" class=\"blue\">Add Risks</button>\r\n <button (click)=\"submit(true)\" *ngIf=\"showCompleteAssessmentButton\"\r\n [disabled]=\"finalRisks<1\" class=\"blue\">Add Risks And Complete Assessment</button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#FFFFFF}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0}.bulk-view-body .exel-view-row.two-column .exel-view-column,.bulk-view-body .exel-view-row.three-column .exel-view-column,.bulk-view-body .exel-view-row.four-column .exel-view-column{min-width:250px!important}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body .exel-view-column.three-column{width:750px;min-width:750px!important}.bulk-view-body .exel-view-column.four-column{width:1000px;min-width:1000px!important}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424}.bulk-view-body .exel-view-column span.required{color:#eb2424}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e5dd259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#FFFFFF}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1E5DD3}.bulk-view-footer .right button:disabled{background:#F1F1F1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i3.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "pipe", type: i1.SlicePipe, name: "slice" }] });
53
53
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: BulkViewComponent, decorators: [{
54
54
  type: Component,
55
- args: [{ selector: 'app-bulk-view', template: "<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{fileName}}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"heading && i === 4\" *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\">\r\n <ng-container *ngIf=\"heading && !(heading.startsWith('Inherent')) && !(i === 4)\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" *ngFor=\"let weightAgeFactor of riskBulkUpload.weightFactors | slice : 2\">\r\n {{weightAgeFactor}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && i === 4\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" *ngFor=\"let weightAgeFactor of riskBulkUpload?.weightFactors | slice : 0: 2\">\r\n {{(weightAgeFactor.includes('*')? weightAgeFactor.replace('*', '') : weightAgeFactor)}}\r\n <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row\" *ngFor=\"let risk of riskBulkUpload.risks; let i = index\">\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">{{i+1}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">{{risk?.riskName}}\r\n <i *ngIf=\"!risk?.riskName\" class=\"icons\" [appTooltip]=\"'Risk Name must be populated.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{risk?.description}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">{{risk?.rcName}}\r\n <i *ngIf=\"!risk?.rcName\" class=\"icons\"\r\n [appTooltip]=\"'Assign this risk to a Responsibility Center.'\" placement=\"bottom-right\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{risk?.owner}}</div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">{{risk?.frequency}} \r\n <i *ngIf=\"!risk?.isValidFrequency\" class=\"icons\"\r\n [appTooltip]=\"'Set a frequency for the completion of the inherent risk assessment.'\" placement=\"bottom-right\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"false\">{{risk?.emailReminder}} </div>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"(risk?.owner && (risk?.owner == risk?.overseer))||\r\n (!risk?.owner && (defaultOwner == risk?.overseer))\">{{risk?.overseer}}\r\n <i *ngIf=\"(risk?.owner && (risk?.owner == risk?.overseer)) || (!risk?.owner && (defaultOwner == risk?.overseer)) \"\r\n class=\"icons\"\r\n [appTooltip]=\"((risk?.owner)?'The Risk Owner cannot also be the':'You cannot be a') +' Oversight of the risk. Select another user as the Oversight of this risk.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div *ngIf=\"riskBulkUpload?.header && riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\" class=\"exel-view-column\">{{risk?.mitigationPriority}}</div>\r\n <div class=\"exel-view-column\">{{risk?.mitigationPlans}}</div>\r\n <div class=\"exel-view-column\">{{risk?.riskLabel}}</div>\r\n <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\r\n {{risk?.assessmentDeadLine}}\r\n <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\r\n [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\r\n </div> -->\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.likelihood && !templateInfo?.likelihood.includes(risk?.likelihood)\">{{risk?.likelihood}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.impact && !templateInfo?.impact.includes(risk?.impact)\">{{risk?.impact}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\">\r\n {{risk?.velocity}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.vulnerability && !templateInfo?.vulnerability.includes(risk?.vulnerability)\"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\">\r\n {{risk?.vulnerability}} </div>\r\n </div>\r\n <div *ngIf=\"riskBulkUpload?.header && riskBulkUpload?.header?.includes('Do you want to apply the same risk ratings for all Responsibility Centers?')\" class=\"exel-view-column\">{{risk?.applySameRiskRating}}</div>\r\n <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\r\n <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\r\n\r\n <ng-container *ngIf=\"risk?.customTag\">\r\n <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">{{tag?.custom_tag_value}}</div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>{{finalRisks}} out of {{riskBulkUpload?.risks?.length}} risks will be added to the Risk Register.</p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\">Cancel</button>\r\n <button (click)=\"submit(false)\" [disabled]=\"finalRisks<1\" class=\"blue\">Add Risks</button>\r\n <button (click)=\"submit(true)\" *ngIf=\"showCompleteAssessmentButton\"\r\n [disabled]=\"finalRisks<1\" class=\"blue\">Add Risks And Complete Assessment</button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#FFFFFF}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0}.bulk-view-body .exel-view-row.two-column .exel-view-column,.bulk-view-body .exel-view-row.three-column .exel-view-column,.bulk-view-body .exel-view-row.four-column .exel-view-column{min-width:250px!important}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body .exel-view-column.three-column{width:750px;min-width:750px!important}.bulk-view-body .exel-view-column.four-column{width:1000px;min-width:1000px!important}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424}.bulk-view-body .exel-view-column span.required{color:#eb2424}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e5dd259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#FFFFFF}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1E5DD3}.bulk-view-footer .right button:disabled{background:#F1F1F1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"] }]
55
+ args: [{ selector: 'app-bulk-view', template: "<div class=\"bulk-view\">\r\n <div class=\"bulk-view-head\">\r\n <h2 class=\"bulk-view-title\">\r\n {{fileName}}\r\n </h2>\r\n </div>\r\n <div class=\"bulk-view-body\">\r\n <div class=\"exel-view\">\r\n <div class=\"exel-view-row head\">\r\n <div class=\"exel-view-column sl-no\">#</div>\r\n <div class=\"exel-view-column\" [class.two-column]=\"heading && i === 4\" *ngFor=\"let heading of riskBulkUpload?.header; let i = index\"\r\n [class.large]=\"heading && heading.startsWith('Inherent')\">\r\n <ng-container *ngIf=\"heading && !(heading.startsWith('Inherent')) && !(i === 4)\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && heading.startsWith('Inherent')\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">Inherent Risk Assessment</div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" *ngFor=\"let weightAgeFactor of riskBulkUpload.weightFactors | slice : 2\">\r\n {{weightAgeFactor}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"heading && i === 4\">\r\n <div class=\"exel-view-row\">\r\n <div class=\"exel-view-column large\">\r\n {{(heading.includes('*')? heading.replace('*', '') : heading)}}\r\n <span *ngIf=\"heading.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" *ngFor=\"let weightAgeFactor of riskBulkUpload?.weightFactors | slice : 0: 2\">\r\n {{(weightAgeFactor.includes('*')? weightAgeFactor.replace('*', '') : weightAgeFactor)}}\r\n <span *ngIf=\"weightAgeFactor.includes('*')\" class=\"required\">*</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"exel-view-row\" *ngFor=\"let risk of riskBulkUpload.risks; let i = index\">\r\n <div class=\"exel-view-column sl-no\" [class.error]=\"!risk.isValid\">{{i+1}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.riskName\">{{risk?.riskName}}\r\n <i *ngIf=\"!risk?.riskName\" class=\"icons\" [appTooltip]=\"'Risk Name must be populated.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{risk?.description}}</div>\r\n\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.rcName\">{{risk?.rcName}}\r\n <i *ngIf=\"!risk?.rcName\" class=\"icons\"\r\n [appTooltip]=\"'Assign this risk to a Responsibility Center.'\" placement=\"bottom-right\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n\r\n <div class=\"exel-view-column\">{{risk?.owner}}</div>\r\n <div class=\"exel-view-row multi-column\" [class.two-column]=\"true\">\r\n <div class=\"exel-view-column\" [class.error]=\"!risk?.isValidFrequency\">{{risk?.frequency}} \r\n <i *ngIf=\"!risk?.isValidFrequency\" class=\"icons\"\r\n [appTooltip]=\"'Set a frequency for the completion of the inherent risk assessment.'\" placement=\"bottom-right\"\r\n type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"false\">{{risk?.emailReminder}} </div>\r\n </div>\r\n <div class=\"exel-view-column\" [class.error]=\"(risk?.owner && (risk?.owner == risk?.overseer))||\r\n (!risk?.owner && (defaultOwner == risk?.overseer))\">{{risk?.overseer}}\r\n <i *ngIf=\"(risk?.owner && (risk?.owner == risk?.overseer)) || (!risk?.owner && (defaultOwner == risk?.overseer)) \"\r\n class=\"icons\"\r\n [appTooltip]=\"((risk?.owner)?'The Risk Owner cannot also be the':'You cannot be a') +' Overseer of the risk. Select another user as the Overseer of this risk.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=true>&#xe932;</i>\r\n </div>\r\n <div *ngIf=\"riskBulkUpload?.header && riskBulkUpload?.header?.includes('Recommended Mitigation Priority')\" class=\"exel-view-column\">{{risk?.mitigationPriority}}</div>\r\n <div class=\"exel-view-column\">{{risk?.mitigationPlans}}</div>\r\n <div class=\"exel-view-column\">{{risk?.riskLabel}}</div>\r\n <!-- <div class=\"exel-view-column\" *ngIf=\"assessmentDaysEnable\" [class.error]=\"!risk?.assessmentDeadLine\">\r\n {{risk?.assessmentDeadLine}}\r\n <i *ngIf=\"!risk?.assessmentDeadLine\" class=\"icons\"\r\n [appTooltip]=\"'Set a deadline for the completion of the inherent risk assessment.'\"\r\n placement=\"bottom-right\" type=\"white\" delay=\"0\" [tooltipMandatory]=\"true\">&#xe932;</i>\r\n </div> -->\r\n <div class=\"exel-view-row multi-column\">\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.likelihood && !templateInfo?.likelihood.includes(risk?.likelihood)\">{{risk?.likelihood}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.impact && !templateInfo?.impact.includes(risk?.impact)\">{{risk?.impact}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.velocity && !templateInfo?.velocity.includes(risk?.velocity)\"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Velocity')\">\r\n {{risk?.velocity}} </div>\r\n <div class=\"exel-view-column\" [class.error]=\"risk?.vulnerability && !templateInfo?.vulnerability.includes(risk?.vulnerability)\"\r\n *ngIf=\"riskBulkUpload?.weightFactors?.includes('Vulnerability')\">\r\n {{risk?.vulnerability}} </div>\r\n </div>\r\n <div *ngIf=\"riskBulkUpload?.header && riskBulkUpload?.header?.includes('Do you want to apply the same risk ratings for all Responsibility Centers?')\" class=\"exel-view-column\">{{risk?.applySameRiskRating}}</div>\r\n <!-- <div class=\"exel-view-column\">{{risk?.customField1}}</div>\r\n <div class=\"exel-view-column\">{{risk?.customField2}}</div> -->\r\n\r\n <ng-container *ngIf=\"risk?.customTag\">\r\n <div class=\"exel-view-column\" *ngFor=\"let tag of risk?.customTag\">{{tag?.custom_tag_value}}</div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n </div>\r\n <div class=\"bulk-view-footer\">\r\n <div class=\"left\">\r\n <p>{{finalRisks}} out of {{riskBulkUpload?.risks?.length}} risks will be added to the Risk Register.</p>\r\n </div>\r\n <div class=\"right\">\r\n <button (click)=\"close()\">Cancel</button>\r\n <button (click)=\"submit(false)\" [disabled]=\"finalRisks<1\" class=\"blue\">Add Risks</button>\r\n <button (click)=\"submit(true)\" *ngIf=\"showCompleteAssessmentButton\"\r\n [disabled]=\"finalRisks<1\" class=\"blue\">Add Risks And Complete Assessment</button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::-webkit-scrollbar-thumb,::-webkit-scrollbar-thumb:hover{background:#747576;border-radius:16px}::-webkit-scrollbar{height:15px}.bulk-view{position:fixed;inset:0;z-index:11}.bulk-view-head{height:60px;padding:20px 24px;background:#161b2f;display:flex;justify-content:flex-start}.bulk-view-title{font-size:16px;line-height:20px;font-weight:400;margin:0;color:#fff}.bulk-view-body{height:calc(100vh - 110px);overflow:auto;width:100%;background:#FFFFFF}.bulk-view-body .exel-view{display:block}.bulk-view-body .exel-view-row{display:flex;width:100%}.bulk-view-body .exel-view-row.head .exel-view-column{font-weight:500;font-size:14px;min-height:26px;background:#f1f1f1;padding:0}.bulk-view-body .exel-view-row.two-column .exel-view-column,.bulk-view-body .exel-view-row.three-column .exel-view-column,.bulk-view-body .exel-view-row.four-column .exel-view-column{min-width:250px!important}.bulk-view-body .exel-view-row.multi-column .exel-view-column{width:140px;min-width:140px}.bulk-view-body .exel-view-column{width:300px;min-width:300px;padding:0 10px;border-right:1px solid #dcdcdc;border-bottom:1px solid #dcdcdc;display:flex;align-items:center;justify-content:center;text-align:center;word-break:break-all;line-height:16px;font-size:12px;color:#161b2f;flex-wrap:wrap;position:relative}.bulk-view-body .exel-view-column.two-column{width:500px;min-width:500px!important}.bulk-view-body .exel-view-column.three-column{width:750px;min-width:750px!important}.bulk-view-body .exel-view-column.four-column{width:1000px;min-width:1000px!important}.bulk-view-body .exel-view-column i.icons{position:absolute;top:8px;right:10px;cursor:pointer;color:#d93b41}.bulk-view-body .exel-view-column.large{width:100%;min-width:auto}.bulk-view-body .exel-view-column.error{border:1px solid #EB2424}.bulk-view-body .exel-view-column span.required{color:#eb2424}.bulk-view-body .exel-view-column .exel-view-row .exel-view-column{width:100%}.bulk-view-body .exel-view-column.sl-no{background:#f1f1f1;width:60px;min-width:60px;min-height:30px;font-weight:400}.bulk-view-footer{height:50px;box-shadow:0 0 15px #1e5dd259;padding:10px 20px;position:fixed;width:100%;bottom:0;display:flex;align-items:center;justify-content:space-between;background:#FFFFFF}.bulk-view-footer .left p{color:#747576;font-size:13px;font-weight:500;margin:0}.bulk-view-footer .right button{font-size:12px;background:#fff;border:1px solid #dcdcdc;color:#747576;border-radius:2px;padding:8px 18px;cursor:pointer;text-transform:uppercase}.bulk-view-footer .right button+button{margin-left:4px}.bulk-view-footer .right button.blue{color:#fff;background:#1E5DD3}.bulk-view-footer .right button:disabled{background:#F1F1F1;border-color:#f1f1f1;pointer-events:none;cursor:not-allowed;color:#747576}\n"] }]
56
56
  }], propDecorators: { riskBulkUpload: [{
57
57
  type: Input
58
58
  }], templateInfo: [{
@@ -70,4 +70,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
70
70
  }], cancel: [{
71
71
  type: Output
72
72
  }] } });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay12aWV3L2J1bGstdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstdmlldy9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBTzFGLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFZVyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0QyxlQUFVLEdBQUMsQ0FBQyxDQUFDO1FBQ2IsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO0tBNkN0QztJQTNDQyxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO2lCQUN0QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRTtZQUM3QyxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBRSxDQUFDLEVBQUM7Z0JBQy9DLElBQUcsSUFBSSxFQUFFLFVBQVUsSUFBRyxJQUFJLEVBQUUsTUFBTSxFQUFDO29CQUNqQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO2lCQUUxQzthQUNGO2lCQUFLLElBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFFLENBQUMsRUFBQztnQkFDckQsSUFBRyxJQUFJLEVBQUUsVUFBVSxJQUFHLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsRUFBQztvQkFDNUUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFFMUM7YUFDRjtpQkFBSyxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBRSxDQUFDLEVBQUM7Z0JBQ3JELElBQUcsSUFBSSxFQUFFLFVBQVUsSUFBRyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxRQUFRLElBQUcsSUFBSSxFQUFFLGFBQWEsRUFBQztvQkFDekUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFFMUM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBSUQsTUFBTSxDQUFDLGtCQUFzQjtRQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7OzhHQXZEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1VkNQOUIsbTFRQXFIQTsyRkQ5R2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7OEJBTWhCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1idWxrLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2J1bGstdmlldy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVsa1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgcmlza0J1bGtVcGxvYWQhOiBhbnk7XHJcbiAgQElucHV0KCkgdGVtcGxhdGVJbmZvITogYW55O1xyXG4gIEBJbnB1dCgpIGZpbGVOYW1lITogYW55O1xyXG4gIEBJbnB1dCgpIGFzc2Vzc21lbnREYXlzRW5hYmxlITogYW55O1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRPd25lciE6IGFueTtcclxuICBASW5wdXQoKSBsb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHN1Ym1pdFJpc2tCdWxrVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7ICBcclxuICBcclxuICBmaW5hbFJpc2tzPTA7XHJcbiAgc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMuZmluYWxSaXNrcyA9IDA7XHJcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZC5yaXNrcy5mb3JFYWNoKChyaXNrOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5maW5hbFJpc2tzICs9IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLnJpc2tzLmZvckVhY2goKHJpc2s6YW55KSA9PiB7XHJcbiAgICAgIGlmKHRoaXMucmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/Lmxlbmd0aD09NCl7XHJcbiAgICAgICAgaWYocmlzaz8ubGlrZWxpaG9vZCAmJnJpc2s/LmltcGFjdCl7XHJcbiAgICAgICAgICB0aGlzLnNob3dDb21wbGV0ZUFzc2Vzc21lbnRCdXR0b24gPSB0cnVlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMucmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/Lmxlbmd0aD09NSl7XHJcbiAgICAgICAgaWYocmlzaz8ubGlrZWxpaG9vZCAmJnJpc2s/LmltcGFjdCAmJiAocmlzaz8udmVsb2NpdHkgfHwgcmlzaz8udnVsbmVyYWJpbGl0eSkpe1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29tcGxldGVBc3Nlc3NtZW50QnV0dG9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZSBpZih0aGlzLnJpc2tCdWxrVXBsb2FkPy53ZWlnaHRGYWN0b3JzPy5sZW5ndGg9PTYpe1xyXG4gICAgICAgIGlmKHJpc2s/Lmxpa2VsaWhvb2QgJiZyaXNrPy5pbXBhY3QgJiYgcmlzaz8udmVsb2NpdHkgJiZyaXNrPy52dWxuZXJhYmlsaXR5KXtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJyaXNrQnVsa1VwbG9hZHJpc2tCdWxrVXBsb2Fkcmlza0J1bGtVcGxvYWRcIiwgdGhpcy5yaXNrQnVsa1VwbG9hZClcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc3VibWl0KGNvbXBsZXRlQXNzZXNzbWVudDphbnkpe1xyXG4gICAgdGhpcy5zdWJtaXRSaXNrQnVsa1VwbG9hZC5lbWl0KGNvbXBsZXRlQXNzZXNzbWVudCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJidWxrLXZpZXdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctaGVhZFwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImJ1bGstdmlldy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7e2ZpbGVOYW1lfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWJvZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IGhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCI+IzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJoZWFkaW5nICYmIGkgPT09IDRcIiAqbmdGb3I9XCJsZXQgaGVhZGluZyBvZiByaXNrQnVsa1VwbG9hZD8uaGVhZGVyOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGFyZ2VdPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiAhKGhlYWRpbmcuc3RhcnRzV2l0aCgnSW5oZXJlbnQnKSkgJiYgIShpID09PSA0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyhoZWFkaW5nLmluY2x1ZGVzKCcqJyk/IGhlYWRpbmcucmVwbGFjZSgnKicsICcnKSA6IGhlYWRpbmcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJoZWFkaW5nLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+SW5oZXJlbnQgUmlzayBBc3Nlc3NtZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZC53ZWlnaHRGYWN0b3JzIHwgc2xpY2UgOiAyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3ZWlnaHRBZ2VGYWN0b3J9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBpID09PSA0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGhlYWRpbmcuaW5jbHVkZXMoJyonKT8gaGVhZGluZy5yZXBsYWNlKCcqJywgJycpIDogaGVhZGluZyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGluZy5pbmNsdWRlcygnKicpXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycyB8IHNsaWNlIDogMDogMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHdlaWdodEFnZUZhY3Rvci5pbmNsdWRlcygnKicpPyB3ZWlnaHRBZ2VGYWN0b3IucmVwbGFjZSgnKicsICcnKSA6IHdlaWdodEFnZUZhY3Rvcil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid2VpZ2h0QWdlRmFjdG9yLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIiAqbmdGb3I9XCJsZXQgcmlzayBvZiByaXNrQnVsa1VwbG9hZC5yaXNrczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2suaXNWYWxpZFwiPnt7aSsxfX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8ucmlza05hbWVcIj57e3Jpc2s/LnJpc2tOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5yaXNrTmFtZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInUmlzayBOYW1lIG11c3QgYmUgcG9wdWxhdGVkLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5kZXNjcmlwdGlvbn19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2s/LnJjTmFtZVwiPnt7cmlzaz8ucmNOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5yY05hbWVcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ0Fzc2lnbiB0aGlzIHJpc2sgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuJ1wiIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/Lm93bmVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8uaXNWYWxpZEZyZXF1ZW5jeVwiPnt7cmlzaz8uZnJlcXVlbmN5fX0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJpc2s/LmlzVmFsaWRGcmVxdWVuY3lcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NldCBhIGZyZXF1ZW5jeSBmb3IgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGluaGVyZW50IHJpc2sgYXNzZXNzbWVudC4nXCIgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiZmFsc2VcIj57e3Jpc2s/LmVtYWlsUmVtaW5kZXJ9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiKHJpc2s/Lm93bmVyICYmIChyaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikpfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAoIXJpc2s/Lm93bmVyICYmIChkZWZhdWx0T3duZXIgPT0gcmlzaz8ub3ZlcnNlZXIpKVwiPnt7cmlzaz8ub3ZlcnNlZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJpc2s/Lm93bmVyICYmIChyaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikpIHx8ICghcmlzaz8ub3duZXIgJiYgKGRlZmF1bHRPd25lciA9PSByaXNrPy5vdmVyc2VlcikpIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIoKHJpc2s/Lm93bmVyKT8nVGhlIFJpc2sgT3duZXIgY2Fubm90IGFsc28gYmUgdGhlJzonWW91IGNhbm5vdCBiZSBhJykgKycgT3ZlcnNpZ2h0IG9mIHRoZSByaXNrLiBTZWxlY3QgYW5vdGhlciB1c2VyIGFzIHRoZSBPdmVyc2lnaHQgb2YgdGhpcyByaXNrLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInJpc2tCdWxrVXBsb2FkPy5oZWFkZXIgJiYgcmlza0J1bGtVcGxvYWQ/LmhlYWRlcj8uaW5jbHVkZXMoJ1JlY29tbWVuZGVkIE1pdGlnYXRpb24gUHJpb3JpdHknKVwiIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8ubWl0aWdhdGlvblByaW9yaXR5fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5taXRpZ2F0aW9uUGxhbnN9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/LnJpc2tMYWJlbH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nSWY9XCJhc3Nlc3NtZW50RGF5c0VuYWJsZVwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8uYXNzZXNzbWVudERlYWRMaW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tyaXNrPy5hc3Nlc3NtZW50RGVhZExpbmV9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJpc2s/LmFzc2Vzc21lbnREZWFkTGluZVwiIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCInU2V0IGEgZGVhZGxpbmUgZm9yIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBpbmhlcmVudCByaXNrIGFzc2Vzc21lbnQuJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/Lmxpa2VsaWhvb2QgJiYgIXRlbXBsYXRlSW5mbz8ubGlrZWxpaG9vZC5pbmNsdWRlcyhyaXNrPy5saWtlbGlob29kKVwiPnt7cmlzaz8ubGlrZWxpaG9vZH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/LmltcGFjdCAmJiAhdGVtcGxhdGVJbmZvPy5pbXBhY3QuaW5jbHVkZXMocmlzaz8uaW1wYWN0KVwiPnt7cmlzaz8uaW1wYWN0fX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwicmlzaz8udmVsb2NpdHkgJiYgIXRlbXBsYXRlSW5mbz8udmVsb2NpdHkuaW5jbHVkZXMocmlzaz8udmVsb2NpdHkpXCJcclxuICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycz8uaW5jbHVkZXMoJ1ZlbG9jaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrPy52ZWxvY2l0eX19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/LnZ1bG5lcmFiaWxpdHkgJiYgIXRlbXBsYXRlSW5mbz8udnVsbmVyYWJpbGl0eS5pbmNsdWRlcyhyaXNrPy52dWxuZXJhYmlsaXR5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/LmluY2x1ZGVzKCdWdWxuZXJhYmlsaXR5JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tyaXNrPy52dWxuZXJhYmlsaXR5fX0gPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyaXNrQnVsa1VwbG9hZD8uaGVhZGVyICYmIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXI/LmluY2x1ZGVzKCdEbyB5b3Ugd2FudCB0byBhcHBseSB0aGUgc2FtZSByaXNrIHJhdGluZ3MgZm9yIGFsbCBSZXNwb25zaWJpbGl0eSBDZW50ZXJzPycpXCIgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5hcHBseVNhbWVSaXNrUmF0aW5nfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/LmN1c3RvbUZpZWxkMX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8uY3VzdG9tRmllbGQyfX08L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJpc2s/LmN1c3RvbVRhZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHRhZyBvZiByaXNrPy5jdXN0b21UYWdcIj57e3RhZz8uY3VzdG9tX3RhZ192YWx1ZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWZvb3RlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHA+e3tmaW5hbFJpc2tzfX0gb3V0IG9mIHt7cmlza0J1bGtVcGxvYWQ/LnJpc2tzPy5sZW5ndGh9fSByaXNrcyB3aWxsIGJlIGFkZGVkIHRvIHRoZSBSaXNrIFJlZ2lzdGVyLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3VibWl0KGZhbHNlKVwiIFtkaXNhYmxlZF09XCJmaW5hbFJpc2tzPDFcIiBjbGFzcz1cImJsdWVcIj5BZGQgUmlza3M8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN1Ym1pdCh0cnVlKVwiICpuZ0lmPVwic2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpbmFsUmlza3M8MVwiIGNsYXNzPVwiYmx1ZVwiPkFkZCBSaXNrcyBBbmQgQ29tcGxldGUgQXNzZXNzbWVudDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVsay12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL3NoYXJlZENvbXBvbmVudHMvYnVsay12aWV3L2J1bGstdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92eC13b3JrZmxvdy1lbmdpbmUvc3JjL2xpYi9zaGFyZWRDb21wb25lbnRzL2J1bGstdmlldy9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBTzFGLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFZVyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWQseUJBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0QyxlQUFVLEdBQUMsQ0FBQyxDQUFDO1FBQ2IsaUNBQTRCLEdBQUcsS0FBSyxDQUFDO0tBNkN0QztJQTNDQyxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1lBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFO2dCQUM5QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO2lCQUN0QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFRLEVBQUUsRUFBRTtZQUM3QyxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBRSxDQUFDLEVBQUM7Z0JBQy9DLElBQUcsSUFBSSxFQUFFLFVBQVUsSUFBRyxJQUFJLEVBQUUsTUFBTSxFQUFDO29CQUNqQyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDO2lCQUUxQzthQUNGO2lCQUFLLElBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsTUFBTSxJQUFFLENBQUMsRUFBQztnQkFDckQsSUFBRyxJQUFJLEVBQUUsVUFBVSxJQUFHLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsRUFBQztvQkFDNUUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFFMUM7YUFDRjtpQkFBSyxJQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLE1BQU0sSUFBRSxDQUFDLEVBQUM7Z0JBQ3JELElBQUcsSUFBSSxFQUFFLFVBQVUsSUFBRyxJQUFJLEVBQUUsTUFBTSxJQUFJLElBQUksRUFBRSxRQUFRLElBQUcsSUFBSSxFQUFFLGFBQWEsRUFBQztvQkFDekUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQztpQkFFMUM7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQTtJQUNoRixDQUFDO0lBSUQsTUFBTSxDQUFDLGtCQUFzQjtRQUMzQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7OzhHQXZEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQix1VkNQOUIsaTFRQXFIQTsyRkQ5R2EsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGVBQWU7OEJBTWhCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIE9uSW5pdCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1idWxrLXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9idWxrLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2J1bGstdmlldy5jb21wb25lbnQubGVzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQnVsa1ZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25DaGFuZ2VzIHtcclxuXHJcbiAgQElucHV0KCkgcmlza0J1bGtVcGxvYWQhOiBhbnk7XHJcbiAgQElucHV0KCkgdGVtcGxhdGVJbmZvITogYW55O1xyXG4gIEBJbnB1dCgpIGZpbGVOYW1lITogYW55O1xyXG4gIEBJbnB1dCgpIGFzc2Vzc21lbnREYXlzRW5hYmxlITogYW55O1xyXG4gIEBJbnB1dCgpIGRlZmF1bHRPd25lciE6IGFueTtcclxuICBASW5wdXQoKSBsb2FkZXIgPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIHN1Ym1pdFJpc2tCdWxrVXBsb2FkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjYW5jZWwgPSBuZXcgRXZlbnRFbWl0dGVyKCk7ICBcclxuICBcclxuICBmaW5hbFJpc2tzPTA7XHJcbiAgc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIGlmICh0aGlzLnJpc2tCdWxrVXBsb2FkKSB7XHJcbiAgICAgIHRoaXMuZmluYWxSaXNrcyA9IDA7XHJcbiAgICAgICAgdGhpcy5yaXNrQnVsa1VwbG9hZC5yaXNrcy5mb3JFYWNoKChyaXNrOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChyaXNrLmlzVmFsaWQpIHtcclxuICAgICAgICAgICAgdGhpcy5maW5hbFJpc2tzICs9IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJpc2tCdWxrVXBsb2FkLnJpc2tzLmZvckVhY2goKHJpc2s6YW55KSA9PiB7XHJcbiAgICAgIGlmKHRoaXMucmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/Lmxlbmd0aD09NCl7XHJcbiAgICAgICAgaWYocmlzaz8ubGlrZWxpaG9vZCAmJnJpc2s/LmltcGFjdCl7XHJcbiAgICAgICAgICB0aGlzLnNob3dDb21wbGV0ZUFzc2Vzc21lbnRCdXR0b24gPSB0cnVlO1xyXG5cclxuICAgICAgICB9XHJcbiAgICAgIH1lbHNlIGlmKHRoaXMucmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/Lmxlbmd0aD09NSl7XHJcbiAgICAgICAgaWYocmlzaz8ubGlrZWxpaG9vZCAmJnJpc2s/LmltcGFjdCAmJiAocmlzaz8udmVsb2NpdHkgfHwgcmlzaz8udnVsbmVyYWJpbGl0eSkpe1xyXG4gICAgICAgICAgdGhpcy5zaG93Q29tcGxldGVBc3Nlc3NtZW50QnV0dG9uID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgfVxyXG4gICAgICB9ZWxzZSBpZih0aGlzLnJpc2tCdWxrVXBsb2FkPy53ZWlnaHRGYWN0b3JzPy5sZW5ndGg9PTYpe1xyXG4gICAgICAgIGlmKHJpc2s/Lmxpa2VsaWhvb2QgJiZyaXNrPy5pbXBhY3QgJiYgcmlzaz8udmVsb2NpdHkgJiZyaXNrPy52dWxuZXJhYmlsaXR5KXtcclxuICAgICAgICAgIHRoaXMuc2hvd0NvbXBsZXRlQXNzZXNzbWVudEJ1dHRvbiA9IHRydWU7XHJcblxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgY29uc29sZS5sb2coXCJyaXNrQnVsa1VwbG9hZHJpc2tCdWxrVXBsb2Fkcmlza0J1bGtVcGxvYWRcIiwgdGhpcy5yaXNrQnVsa1VwbG9hZClcclxuICB9XHJcblxyXG5cclxuXHJcbiAgc3VibWl0KGNvbXBsZXRlQXNzZXNzbWVudDphbnkpe1xyXG4gICAgdGhpcy5zdWJtaXRSaXNrQnVsa1VwbG9hZC5lbWl0KGNvbXBsZXRlQXNzZXNzbWVudCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZSgpe1xyXG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJidWxrLXZpZXdcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJidWxrLXZpZXctaGVhZFwiPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cImJ1bGstdmlldy10aXRsZVwiPlxyXG4gICAgICAgICAgICB7e2ZpbGVOYW1lfX1cclxuICAgICAgICA8L2gyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYnVsay12aWV3LWJvZHlcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IGhlYWRcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIHNsLW5vXCI+IzwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MudHdvLWNvbHVtbl09XCJoZWFkaW5nICYmIGkgPT09IDRcIiAqbmdGb3I9XCJsZXQgaGVhZGluZyBvZiByaXNrQnVsa1VwbG9hZD8uaGVhZGVyOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MubGFyZ2VdPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiAhKGhlYWRpbmcuc3RhcnRzV2l0aCgnSW5oZXJlbnQnKSkgJiYgIShpID09PSA0KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyhoZWFkaW5nLmluY2x1ZGVzKCcqJyk/IGhlYWRpbmcucmVwbGFjZSgnKicsICcnKSA6IGhlYWRpbmcpfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJoZWFkaW5nLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBoZWFkaW5nLnN0YXJ0c1dpdGgoJ0luaGVyZW50JylcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uIGxhcmdlXCI+SW5oZXJlbnQgUmlzayBBc3Nlc3NtZW50PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZC53ZWlnaHRGYWN0b3JzIHwgc2xpY2UgOiAyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t3ZWlnaHRBZ2VGYWN0b3J9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGVhZGluZyAmJiBpID09PSA0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtbiBsYXJnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KGhlYWRpbmcuaW5jbHVkZXMoJyonKT8gaGVhZGluZy5yZXBsYWNlKCcqJywgJycpIDogaGVhZGluZyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiaGVhZGluZy5pbmNsdWRlcygnKicpXCIgY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgKm5nRm9yPVwibGV0IHdlaWdodEFnZUZhY3RvciBvZiByaXNrQnVsa1VwbG9hZD8ud2VpZ2h0RmFjdG9ycyB8IHNsaWNlIDogMDogMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7KHdlaWdodEFnZUZhY3Rvci5pbmNsdWRlcygnKicpPyB3ZWlnaHRBZ2VGYWN0b3IucmVwbGFjZSgnKicsICcnKSA6IHdlaWdodEFnZUZhY3Rvcil9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid2VpZ2h0QWdlRmFjdG9yLmluY2x1ZGVzKCcqJylcIiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1yb3dcIiAqbmdGb3I9XCJsZXQgcmlzayBvZiByaXNrQnVsa1VwbG9hZC5yaXNrczsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW4gc2wtbm9cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2suaXNWYWxpZFwiPnt7aSsxfX08L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8ucmlza05hbWVcIj57e3Jpc2s/LnJpc2tOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5yaXNrTmFtZVwiIGNsYXNzPVwiaWNvbnNcIiBbYXBwVG9vbHRpcF09XCInUmlzayBOYW1lIG11c3QgYmUgcG9wdWxhdGVkLidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09dHJ1ZT4mI3hlOTMyOzwvaT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5kZXNjcmlwdGlvbn19PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2s/LnJjTmFtZVwiPnt7cmlzaz8ucmNOYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5yY05hbWVcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ0Fzc2lnbiB0aGlzIHJpc2sgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuJ1wiIHBsYWNlbWVudD1cImJvdHRvbS1yaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ3aGl0ZVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT10cnVlPiYjeGU5MzI7PC9pPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/Lm93bmVyfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctcm93IG11bHRpLWNvbHVtblwiIFtjbGFzcy50d28tY29sdW1uXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCIhcmlzaz8uaXNWYWxpZEZyZXF1ZW5jeVwiPnt7cmlzaz8uZnJlcXVlbmN5fX0gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiIXJpc2s/LmlzVmFsaWRGcmVxdWVuY3lcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NldCBhIGZyZXF1ZW5jeSBmb3IgdGhlIGNvbXBsZXRpb24gb2YgdGhlIGluaGVyZW50IHJpc2sgYXNzZXNzbWVudC4nXCIgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiZmFsc2VcIj57e3Jpc2s/LmVtYWlsUmVtaW5kZXJ9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIiBbY2xhc3MuZXJyb3JdPVwiKHJpc2s/Lm93bmVyICYmIChyaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikpfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAoIXJpc2s/Lm93bmVyICYmIChkZWZhdWx0T3duZXIgPT0gcmlzaz8ub3ZlcnNlZXIpKVwiPnt7cmlzaz8ub3ZlcnNlZXJ9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiKHJpc2s/Lm93bmVyICYmIChyaXNrPy5vd25lciA9PSByaXNrPy5vdmVyc2VlcikpIHx8ICghcmlzaz8ub3duZXIgJiYgKGRlZmF1bHRPd25lciA9PSByaXNrPy5vdmVyc2VlcikpIFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCIoKHJpc2s/Lm93bmVyKT8nVGhlIFJpc2sgT3duZXIgY2Fubm90IGFsc28gYmUgdGhlJzonWW91IGNhbm5vdCBiZSBhJykgKycgT3ZlcnNlZXIgb2YgdGhlIHJpc2suIFNlbGVjdCBhbm90aGVyIHVzZXIgYXMgdGhlIE92ZXJzZWVyIG9mIHRoaXMgcmlzay4nXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLXJpZ2h0XCIgdHlwZT1cIndoaXRlXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPXRydWU+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJyaXNrQnVsa1VwbG9hZD8uaGVhZGVyICYmIHJpc2tCdWxrVXBsb2FkPy5oZWFkZXI/LmluY2x1ZGVzKCdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFByaW9yaXR5JylcIiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/Lm1pdGlnYXRpb25Qcmlvcml0eX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8ubWl0aWdhdGlvblBsYW5zfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5yaXNrTGFiZWx9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiICpuZ0lmPVwiYXNzZXNzbWVudERheXNFbmFibGVcIiBbY2xhc3MuZXJyb3JdPVwiIXJpc2s/LmFzc2Vzc21lbnREZWFkTGluZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7cmlzaz8uYXNzZXNzbWVudERlYWRMaW5lfX1cclxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIiFyaXNrPy5hc3Nlc3NtZW50RGVhZExpbmVcIiBjbGFzcz1cImljb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2FwcFRvb2x0aXBdPVwiJ1NldCBhIGRlYWRsaW5lIGZvciB0aGUgY29tcGxldGlvbiBvZiB0aGUgaW5oZXJlbnQgcmlzayBhc3Nlc3NtZW50LidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tcmlnaHRcIiB0eXBlPVwid2hpdGVcIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMjs8L2k+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LXJvdyBtdWx0aS1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyaXNrPy5saWtlbGlob29kICYmICF0ZW1wbGF0ZUluZm8/Lmxpa2VsaWhvb2QuaW5jbHVkZXMocmlzaz8ubGlrZWxpaG9vZClcIj57e3Jpc2s/Lmxpa2VsaWhvb2R9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyaXNrPy5pbXBhY3QgJiYgIXRlbXBsYXRlSW5mbz8uaW1wYWN0LmluY2x1ZGVzKHJpc2s/LmltcGFjdClcIj57e3Jpc2s/LmltcGFjdH19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCIgW2NsYXNzLmVycm9yXT1cInJpc2s/LnZlbG9jaXR5ICYmICF0ZW1wbGF0ZUluZm8/LnZlbG9jaXR5LmluY2x1ZGVzKHJpc2s/LnZlbG9jaXR5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwicmlza0J1bGtVcGxvYWQ/LndlaWdodEZhY3RvcnM/LmluY2x1ZGVzKCdWZWxvY2l0eScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cmlzaz8udmVsb2NpdHl9fSA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiIFtjbGFzcy5lcnJvcl09XCJyaXNrPy52dWxuZXJhYmlsaXR5ICYmICF0ZW1wbGF0ZUluZm8/LnZ1bG5lcmFiaWxpdHkuaW5jbHVkZXMocmlzaz8udnVsbmVyYWJpbGl0eSlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAqbmdJZj1cInJpc2tCdWxrVXBsb2FkPy53ZWlnaHRGYWN0b3JzPy5pbmNsdWRlcygnVnVsbmVyYWJpbGl0eScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7cmlzaz8udnVsbmVyYWJpbGl0eX19IDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicmlza0J1bGtVcGxvYWQ/LmhlYWRlciAmJiByaXNrQnVsa1VwbG9hZD8uaGVhZGVyPy5pbmNsdWRlcygnRG8geW91IHdhbnQgdG8gYXBwbHkgdGhlIHNhbWUgcmlzayByYXRpbmdzIGZvciBhbGwgUmVzcG9uc2liaWxpdHkgQ2VudGVycz8nKVwiIGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiPnt7cmlzaz8uYXBwbHlTYW1lUmlza1JhdGluZ319PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJleGVsLXZpZXctY29sdW1uXCI+e3tyaXNrPy5jdXN0b21GaWVsZDF9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV4ZWwtdmlldy1jb2x1bW5cIj57e3Jpc2s/LmN1c3RvbUZpZWxkMn19PC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyaXNrPy5jdXN0b21UYWdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXhlbC12aWV3LWNvbHVtblwiICpuZ0Zvcj1cImxldCB0YWcgb2Ygcmlzaz8uY3VzdG9tVGFnXCI+e3t0YWc/LmN1c3RvbV90YWdfdmFsdWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ1bGstdmlldy1mb290ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxwPnt7ZmluYWxSaXNrc319IG91dCBvZiB7e3Jpc2tCdWxrVXBsb2FkPy5yaXNrcz8ubGVuZ3RofX0gcmlza3Mgd2lsbCBiZSBhZGRlZCB0byB0aGUgUmlzayBSZWdpc3Rlci48L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImNsb3NlKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInN1Ym1pdChmYWxzZSlcIiBbZGlzYWJsZWRdPVwiZmluYWxSaXNrczwxXCIgY2xhc3M9XCJibHVlXCI+QWRkIFJpc2tzPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJzdWJtaXQodHJ1ZSlcIiAqbmdJZj1cInNob3dDb21wbGV0ZUFzc2Vzc21lbnRCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaW5hbFJpc2tzPDFcIiBjbGFzcz1cImJsdWVcIj5BZGQgUmlza3MgQW5kIENvbXBsZXRlIEFzc2Vzc21lbnQ8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG4iXX0=