vcomply-workflow-engine 3.4.25 → 3.4.27

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.
@@ -148,10 +148,12 @@ export class LogAnIssueComponent {
148
148
  },
149
149
  ISSUE_RC: {
150
150
  panelTitle: 'Select Responsibility Center',
151
- floatingTextSingular: 'Responsibilty center selected',
151
+ floatingTextSingular: 'Responsibility center selected',
152
+ floatingTextPlural: 'Responsibility centers selected',
152
153
  searchPlaceholder: 'Search Responsibility Center',
153
154
  searchEnabled: true,
154
155
  noDataText: 'No Responsibility Centers Found',
156
+ selectAllEnabled: true,
155
157
  },
156
158
  ISSUE_WHO: {
157
159
  panelTitle: 'Select User',
@@ -211,12 +213,6 @@ export class LogAnIssueComponent {
211
213
  this.fetchUserList();
212
214
  this.fetchCategoryList();
213
215
  this.fetchRCList();
214
- // this.authService.getOrganizationDetails().subscribe((res: any) => {
215
- // if (!res.enable_riskclass) {
216
- // this.hiddenList.push('RISK_CLASSIFICATION');
217
- // }
218
- // });
219
- // commented the above API since Risk Classification should be displayed by default in log an issue form
220
216
  }
221
217
  ngAfterViewInit() {
222
218
  this.changeDeterctorRef.detectChanges();
@@ -374,7 +370,7 @@ export class LogAnIssueComponent {
374
370
  }
375
371
  }
376
372
  /**
377
- * Removes error from the fiels with error to remove the error messag from the UI
373
+ * Removes error from the fields with error to remove the error messag from the UI
378
374
  * @param errorKey error Identifier used to show error in specific fields.
379
375
  */
380
376
  removeError(errorKey) {
@@ -856,8 +852,8 @@ export class LogAnIssueComponent {
856
852
  ? this.listData.categoryList.filter((e) => e.category_id === issueData?.category_id)
857
853
  : [],
858
854
  issueCustomTag: issueData?.custom_tags ?? [],
859
- issueRC: issueData?.rc_id
860
- ? this.listData.rcList.filter((e) => e.rc_id === issueData?.rc_id)
855
+ issueRC: issueData?.rc_id?.length
856
+ ? this.listData.rcList.filter((e) => issueData?.rc_id?.includes(e?.rc_id))
861
857
  : [],
862
858
  recommendedActionsAttachments: issueData?.recommendation?.length
863
859
  ? issueData?.recommendation[0]?.attachments
@@ -894,20 +890,9 @@ export class LogAnIssueComponent {
894
890
  this.logIssueForm.issueRC?.length > 0
895
891
  ? (this.isRCPreSelected = true)
896
892
  : (this.isRCPreSelected = false);
897
- // issueData.linkage_object?.source === 'GLOBAL'? this.isRCMandatory = true : this.isRCMandatory = false;
898
893
  issueData.linkage_object?.source === 'GLOBAL' && issueData?.rc_id
899
894
  ? (this.isRCPreSelected = false)
900
895
  : (this.isRCPreSelected = true);
901
- // if(issueData.linkage_object?.compliance?.ids?.length){
902
- // this.logIssueForm.linkedControlRisk = issueData.linkage_object?.compliance?.ids??[],
903
- // this.logIssueForm.linkageType = 'RESPONSIBILITY'
904
- // this.isRiskControlVisible = true;
905
- // }
906
- // if(issueData.linkage_object?.risk?.ids?.length){
907
- // this.logIssueForm.linkedControlRisk = issueData.linkage_object?.risk?.ids??[],
908
- // this.logIssueForm.linkageType = 'RISK';
909
- // this.isRiskControlVisible = true;
910
- // }
911
896
  }
912
897
  this.setOptionalField(issueData);
913
898
  }
@@ -997,10 +982,10 @@ export class LogAnIssueComponent {
997
982
  }
998
983
  }
999
984
  LogAnIssueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LogAnIssueComponent, deps: [{ token: i1.LogIssueService }, { token: i2.AuthService }, { token: i3.UiKitService }, { token: i4.SnackBarService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1000
- LogAnIssueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LogAnIssueComponent, selector: "app-log-an-issue", inputs: { openedFrom: "openedFrom", issueId: "issueId", reponsibilityData: "reponsibilityData", issueDetails: "issueDetails", mode: "mode", config: "config", responsibilitiesData: "responsibilitiesData" }, outputs: { pickerChanged: "pickerChanged", populateOption: "populateOption", closeWorkflow: "closeWorkflow", modeChange: "modeChange", disconnectRefresh: "disconnectRefresh" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- <p>log-an-issue works!</p> -->\r\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\r\n <div class=\"form-group-row\" *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Linked to</label>\r\n <div class=\"selected\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt full-width\" [appTooltip]=\"reponsibilityData?.responsibilityName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{reponsibilityData?.responsibilityName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{reponsibilityData?.responsibilityName}}</span>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\" *ngIf=\"['AUDIT_WORKROOM','VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(openedFrom)\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue linked with</label>\r\n <div class=\"selected\"><div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"issueDetails?.auditPlanName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{issueDetails?.auditPlanName}}</span>\r\n </div>\r\n \r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{issueDetails?.auditPlanName}}</span>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\" *ngIf=\"['VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(openedFrom) || isRiskControlVisible\" [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_CONTROL_RISK' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0 \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length === 0 || activeField === 'ISSUE_CONTROL_RISK' \" />\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0 && activeField !== 'ISSUE_CONTROL_RISK'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Select a control or risk</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.linkedControlRisk || logIssueForm?.linkedControlRisk?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_CONTROL_RISK','ISSUE_CONTROL_RISK')\" type=\"text\" placeholder=\"Select a control or risk.\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe90d;</i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div> -->\r\n <button class=\"edit\" *ngIf=\"activeField !=='ISSUE_CONTROL_RISK'\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CONTROL_RISK','ISSUE_CONTROL_RISK')\"><i class=\"icons\">&#xe90c;</i>Edit</button>\r\n </div>\r\n </div>\r\n <div class=\"vx-form-group\" *ngFor=\"let tag of logIssueForm.issueCustomTag|keyvalue\">\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{tag?.value?.custom_tag_name}}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.value?.custom_tag_name\" [(ngModel)]=\"tag.value.custom_tag_value\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Issue Title -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TITLE' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Title <span class=\"required\">*</span>\r\n </label>\r\n <input type=\"text\" placeholder=\"Add a name for this issue\" [(ngModel)]=\"logIssueForm.issueName\"\r\n (focusin)=\"setActiveFieldSelector('ISSUE_TITLE','ISSUE_TITLE')\"\r\n (keyup)=\"logIssueForm.issueName?.trim()?.length > 0 ? removeError('issueName'): null\"\r\n (focusout)=\"setActiveFieldSelector('','')\" *ngIf=\"logIssueForm.issueName =='' || activeSelector === 'ISSUE_TITLE'\">\r\n <div class=\"selected\" *ngIf=\"logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\">\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{logIssueForm.issueName}}</span>\r\n </div>\r\n <button class=\"edit\" (click)=\"setActiveFieldSelector('ISSUE_TITLE','ISSUE_TITLE')\" type=\"button\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">Enter a name for this issue.</p>\r\n <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[0]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'ISSUE_DESCRIPTION')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [editorConfig]=\"{mode: 'prime',file:false,\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description'}\" [(ngModel)]=\"logIssueForm.issueDescription\"\r\n (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION',$event)\" (clickOutside)=\"checkDescription()\"></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- issue type start-->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TITLE' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left checked\">\r\n <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Issue Type\r\n </label>\r\n <app-cs-radio class=\"main-filed\" name=\"issue-type\" [checked]=\"logIssueForm?.issueType === 'issue'\"\r\n (checkedEvent)=\"setIssueType('issue')\">Issue\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n <app-cs-radio class=\"main-filed\" name=\"issue-type\" [checked]=\"logIssueForm?.issueType === 'incident'\"\r\n (checkedEvent)=\"setIssueType('incident')\">Incident\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Category -->\r\n <div class=\"form-group-row\" [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_CATEGORY' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0 \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.issueCategory?.length === 0 || activeField === 'ISSUE_CATEGORY' \" />\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueCategory?.length > 0 && activeField !== 'ISSUE_CATEGORY'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Category</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueCategory || logIssueForm?.issueCategory?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_CATEGORY','ISSUE_CATEGORY')\" type=\"text\" placeholder=\"Select a category for this issue\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe90d;</i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div> -->\r\n <button class=\"edit\" *ngIf=\"activeField !=='ISSUE_CATEGORY'\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CATEGORY','ISSUE_CATEGORY')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueCategory')\">Select an issue category.</p>\r\n </div>\r\n <div class=\"vx-form-group\" *ngFor=\"let tag of logIssueForm.issueCustomTag\">\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{tag?.name}}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div class=\"form-group-row\" *ngIf=\"isRCVisible\" [class.active]=\"false\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_RC' && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueRC?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\" alt=\"\" *ngIf=\"logIssueForm?.issueRC?.length === 0\">\r\n\r\n <svg class=\"checkIcon\" *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Responsibility Center\r\n <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\r\n </label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_RC','ISSUE_RC')\" type=\"text\" placeholder=\"Select Responsibility Center(s)\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"!isRCPreSelected\" (click)=\"deleteItem('ISSUE_RC',logIssueForm?.issueRC[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueRC[0]?.item_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" *ngIf=\"!isRCPreSelected\" (click)=\"deleteItem('ISSUE_RC',logIssueForm?.issueRC[0])\">&#xe90d;</i>{{logIssueForm?.issueRC[0]?.item_name}}</span>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_RC' && !isRCPreSelected\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_RC','ISSUE_RC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">Select the Responsibility Center associated with this issue.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_WHO' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\" alt=\"im\"\r\n *ngIf=\"(logIssueForm?.entrustTo?.length === 0 && !logIssueForm?.isAssignToMyself) || activeField === 'ISSUE_WHO' \">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm?.entrustTo?.length > 0 || logIssueForm?.isAssignToMyself ) && activeField !== 'ISSUE_WHO'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Who? <span class=\"required\">*</span></label>\r\n <div class=\"select\" [class.disabled]=\"logIssueForm?.isAssignToMyself\"\r\n *ngIf=\"!logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_WHO','ISSUE_WHO')\" [disabled]=\"logIssueForm?.isAssignToMyself\" type=\"text\" placeholder=\"Who is responsible for completing the responsibility?\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe90d;</i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_WHO'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_WHO','ISSUE_WHO')\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">Select the person responsible for resolving this issue.</p>\r\n <div class=\"switch-row align-right\" [class.disabled]=\"activeField === 'ISSUE_WHO'\">\r\n <app-cs-switch [disabled]=\"activeField === 'ISSUE_WHO'\" [(ngValue)]=\"logIssueForm.isAssignToMyself\" (ngValueChange)=\"assignMyself($event)\">OR ASSIGN TO MYSELF</app-cs-switch>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Maximun Time to Resolve -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_DATE_TIME' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\" alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME' \">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Maximum Time to Resolve <span class=\"required\">*</span></label>\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input type=\"text\" readonly placeholder=\"Set a deadline.\"\r\n [value]=\"logIssueForm.issueDueDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker();\">\r\n <i class=\"icons\">&#xe92d;</i>\r\n <dp-date-picker #datePicker (onSelect)=\"datePickerOverlay = false;closeDatePicker($event);removeError('issueDueDate')\" [config]=\"dateConfig\"\r\n [(ngModel)]=\"logIssueForm.issueDueDate\" >\r\n </dp-date-picker>\r\n <div class=\"vx-overlay\" (click)=\"closeDatePicker($event)\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n\r\n <div class=\"picker-group\">\r\n\r\n <input [ngxTimepicker]=\"dailyTime\" (mouseover)=\"setCurrentTime()\" [(ngModel)]=\"logIssueForm.issueDueTime\" [value]=\"logIssueForm.issueDueTime\" readonly\r\n class=\"time\" aria-label=\"12hr format\" placeholder=\"Select Time\"\r\n type=\"text\" [min]=\"currentTime\" readonly>\r\n <i class=\"icons\">&#xe955;</i>\r\n <ngx-material-timepicker (opened)=\"setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME')\"\r\n (closed)=\"setActiveFieldSelector('','')\" #dailyTime [defaultTime]=\"'11:59 pm'\">\r\n </ngx-material-timepicker>\r\n </div>\r\n\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueDueDate')\">Select the date by which this issue needs to be resolved.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recommended Actions -->\r\n <div class=\"form-group-row\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recommended-action.svg\" alt=\"im\" *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length>0\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Recommended Actions <span class=\"required\">*</span></label>\r\n <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[1]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'RECOMMENDED_ACTIONS')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [(ngModel)]=\"logIssueForm.issueRecommendation\" [editorConfig]=\"{mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:true,\r\n placeholder: 'Recommended actions'}\" (ngModelChange)=\"logIssueForm?.issueRecommendation?.trim()?.length > 0 ? removeError('issueRecommendation'):null\"\r\n (clickOutside)=\"checkDescription()\" (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS',$event)\"></vcomply-editor>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRecommendation')\">Specify the recommended actions to resolve this issue.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\" -->\r\n <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\r\n \r\n <!-- Risk Classification -->\r\n <div class=\"form-group-row\" id=\"risk_classification\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issueRiskRating\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueRiskRating\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label class=\"low\" *ngFor=\" let class of riskClassification\" [ngClass]=\"[class.class]\">\r\n <input type=\"radio\" name=\"classification\" [value]=\"class.value\"\r\n [checked]=\"logIssueForm?.issueRiskRating === class.value\"\r\n [(ngModel)]=\"logIssueForm.issueRiskRating\">\r\n <span>{{class.name}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Exception Type -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg\" alt=\"im\" *ngIf=\"logIssueForm?.exceptionType === null\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.exceptionType > -1\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Exception Type</label>\r\n <app-cs-radio class=\"main-filed\" [value]=\"1\" name=\"exception-type\" [checked]=\"logIssueForm?.exceptionType === 1\"\r\n (checkedEvent)=\"setException(1)\">Design Exception\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n <app-cs-radio class=\"main-filed\" [value]=\"2\" name=\"exception-type\" [checked]=\"logIssueForm?.exceptionType === 2\"\r\n (checkedEvent)=\"setException(2)\">Effectiveness Exception\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" [class.active]=\"activeField === 'ISSUE_TYPE'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TYPE' && sideSelectorElements.includes(activeField)\"\r\n *ngIf=\"additionalOptionStatus.ISSUE_TYPE\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueType?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.issueType?.length === 0 || activeField === 'ISSUE_TYPE' \">\r\n\r\n <svg class=\"checkIcon\" *ngIf=\"logIssueForm?.issueType?.length > 0 && activeField !== 'ISSUE_TYPE'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Type</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueType || logIssueForm?.issueType?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_TYPE','ISSUE_TYPE')\" type=\"text\"\r\n placeholder=\"Select the Issue Type associated with this issue.\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueType?.length > 0\">\r\n <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\"\r\n (click)=\"deleteItem('ISSUE_TYPE',logIssueForm?.issueType[0])\">&#xe90d;</i>{{logIssueForm?.issueType[0]?.issue_type_name}}</span>\r\n </div>\r\n <button *ngIf=\"activeField !=='ISSUE_TYPE'\" class=\"edit\" type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_TYPE','ISSUE_TYPE')\"><i\r\n class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Priority -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.PRIORITY\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issuePriority\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issuePriority > 0\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Priority</label>\r\n <div class=\"classification\">\r\n <label *ngFor=\" let priority of riskPrority\" [ngClass]=\"[priority.class]\">\r\n <input type=\"radio\" name=\"classification-priority\" [value]=\"priority.value\"\r\n [checked]=\"logIssueForm?.issuePriority === priority.value\"\r\n [(ngModel)]=\"logIssueForm.issuePriority\">\r\n <span>{{priority.name}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Associated Risks -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Associated Risks </label>\r\n <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[2]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'ASSOCIATED_RISKS')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [(ngModel)]=\"logIssueForm.issueAssociatedRisk\" [editorConfig]=\"{mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:false,\r\n placeholder: 'Associated Risks'}\" (clickOutside)=\"checkDescription()\" (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS',$event)\"></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" [class.active]=\"false\" *ngIf=\"additionalOptionStatus.OVERSIGHT\"\r\n [class.disabled]=\"activeField && !(['ISSUE_CC','ISSUE_FCC'].includes(activeField)) && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\"\r\n [class.checked]=\"logIssueForm?.issueCCUsers?.length > 0 || logIssueForm?.failureCCUsers?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\" alt=\"\"\r\n *ngIf=\"(logIssueForm?.issueCCUsers?.length === 0 && logIssueForm?.failureCCUsers?.length === 0)|| activeField === 'ISSUE_CC'|| activeField === 'ISSUE_FCC' \">\r\n\r\n <svg class=\"checkIcon\"\r\n *ngIf=\"logIssueForm?.issueCCUsers?.length > 0 || logIssueForm?.failureCCUsers?.length > 0 && activeField !== 'ISSUE_CC'|| activeField !== 'ISSUE_FCC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Oversight</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueCCUsers || logIssueForm?.issueCCUsers?.length === 0\">\r\n <input type=\"text\" (click)=\"setActiveFieldSelector('ISSUE_CC','ISSUE_CC')\" placeholder=\"Who should have oversight of this issue?\" readonly>\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"CC.popover()\" placement=\"right\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_CC'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CC','ISSUE_CC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.failureCCUsers || logIssueForm?.failureCCUsers?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_FCC','ISSUE_FCC')\" type=\"text\" placeholder=\"Who should be notified if the issue is not resolved?\" readonly>\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"FCC.popover()\" placement=\"right\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_FCC'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_FCC','ISSUE_FCC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n </div>\r\n <app-popover #CC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let cc of logIssueForm?.issueCCUsers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',cc)\">&#xe90d;</i>\r\n {{cc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #FCC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let fcc of logIssueForm?.failureCCUsers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',fcc)\">&#xe90d;</i>\r\n {{fcc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Evidence -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.EVIDENCE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"true\">\r\n <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Evidence</label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\">Do you want evidence of completion of the issue to be uploaded?</span>\r\n <div class=\"radio-group\">\r\n <app-cs-radio [name]=\"'file-evidence'\" [value]=\"1\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 1\" (checkedEvent)=\"setEvidence(1)\">Yes\r\n </app-cs-radio>\r\n <app-cs-radio [name]=\"'file-evidence'\" [value]=\"0\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 0\" (checkedEvent)=\"setEvidence(0)\">No\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_CATGORY\" [itemsList]=\"listData?.categoryList\"\r\n [selectedItems]=\"logIssueForm.issueCategory\" [identifierKey]=\"'category_id'\"\r\n [displayKey]=\"'category_name'\" *ngIf=\"activeSelector==='ISSUE_CATEGORY'\"\r\n (saveList)=\"selectorAction($event,'ISSUE_CATEGORY')\" (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\">\r\n</app-radio-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_RC\" [itemsList]=\"listData?.rcList\"\r\n [selectedItems]=\"logIssueForm.issueRC\" [identifierKey]=\"'rc_id'\" [displayKey]=\"'rc_name'\"\r\n *ngIf=\"activeSelector==='ISSUE_RC'\" (saveList)=\"selectorAction($event,'ISSUE_RC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_RC')\"></app-radio-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_WHO\" [itemsList]=\"listData?.userList\" [twoColumn]=\"true\"\r\n [selectedItems]=\"logIssueForm.entrustTo\" [identifierKey]=\"'employee_id'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_WHO'\" (saveList)=\"selectorAction($event,'ISSUE_WHO')\"\r\n (closeList)=\"fieldDeselector('ISSUE_WHO')\"></app-radio-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_TYPE\" [itemsList]=\"listData?.issueTypeList\"\r\n [selectedItems]=\"logIssueForm.issueType\" [identifierKey]=\"'issue_id'\" [displayKey]=\"'issue_type_name'\"\r\n *ngIf=\"activeSelector==='ISSUE_TYPE'\" (saveList)=\"selectorAction($event,'ISSUE_TYPE')\"\r\n (closeList)=\"fieldDeselector('ISSUE_TYPE')\"></app-radio-list>\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_CC\" [twoColumn]=\"true\"\r\n [itemsList]=\"listData.userList|userFilter:'employee_email':logIssueForm.entrustTo:{'employee_email':currentUser?.email}\"\r\n [selectedItems]=\"logIssueForm.issueCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_CC'\" (saveList)=\"selectorAction($event,'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\"></app-checkbox-list>\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_FCC\" [twoColumn]=\"true\"\r\n [itemsList]=\"listData.userList|userFilter:'employee_email':logIssueForm.entrustTo:{'employee_email':currentUser?.email}\"\r\n [selectedItems]=\"logIssueForm.failureCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_FCC'\" (saveList)=\"selectorAction($event,'ISSUE_FCC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_FCC')\"></app-checkbox-list>\r\n\r\n<app-responsibility-risk-selector [loading]=\"isRiskControlLoading\" *ngIf=\"activeSelector==='ISSUE_CONTROL_RISK'\"\r\n (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\" (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\r\n (saveList)=\"selectorAction($event,'ISSUE_CONTROL_RISK')\"\r\n[activeEntity]=\"logIssueForm?.linkageType\" [listItems]=\"listData?.linkageList\" [selectedItems]=\"logIssueForm?.linkedControlRisk\"></app-responsibility-risk-selector>\r\n\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"message\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\">\r\n</app-smiley-dialog-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .log-an-issue{position:relative}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#ffffff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#ffffff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#ffffff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#ffffff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#ffffff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#ffffff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#ffffff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#ffffff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#ffffff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}\n"], dependencies: [{ kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i6.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "component", type: i9.CsSwitchComponent, selector: "app-cs-switch", inputs: ["disabled", "ngValue", "value", "tooltipMessage", "position"], outputs: ["ngValueChange"] }, { kind: "directive", type: i10.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i11.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i12.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i13.LineLoaderComponent, selector: "app-line-loader", inputs: ["loaderHeight"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i14.NgxMaterialTimepickerComponent, selector: "ngx-material-timepicker", inputs: ["ESC", "hoursOnly", "ngxMaterialTimepickerTheme", "format", "minutesGap", "cancelBtnTmpl", "editableHintTmpl", "confirmBtnTmpl", "enableKeyboardInput", "preventOverlayClick", "disableAnimation", "appendToInput", "defaultTime", "timepickerClass", "theme", "min", "max"], outputs: ["timeSet", "opened", "closed", "hourSelected", "timeChanged"] }, { kind: "directive", type: i14.TimepickerDirective, selector: "[ngxTimepicker]", inputs: ["format", "value", "min", "max", "ngxTimepicker", "disabled", "disableClick"] }, { kind: "component", type: i15.DatePickerComponent, selector: "dp-date-picker", inputs: ["mode", "placeholder", "disabled", "config", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "component", type: i16.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i17.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "directive", type: i18.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: i19.CheckboxListComponent, selector: "app-checkbox-list", inputs: ["itemsList", "selectedItems", "identifierKey", "displayKey", "tooltipKey", "config", "twoColumn"], outputs: ["closeList", "saveList"] }, { kind: "component", type: i20.RadioListComponent, selector: "app-radio-list", inputs: ["itemsList", "selectedItems", "identifierKey", "displayKey", "tooltipKey", "config", "twoColumn"], outputs: ["closeList", "saveList"] }, { kind: "directive", type: i21.ScrollInViewDirective, selector: "[appScrollInView]", inputs: ["appScrollInView"] }, { kind: "component", type: i22.ResponsibilityRiskSelectorComponent, selector: "app-responsibility-risk-selector", inputs: ["activeEntity", "listItems", "selectedItems", "loading"], outputs: ["fetchList", "closeList", "saveList"] }, { kind: "pipe", type: i7.SlicePipe, name: "slice" }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: i7.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i23.SpaceBreakerPipe, name: "spaceBreaker" }, { kind: "pipe", type: i24.UserFilterPipe, name: "userFilter" }] });
985
+ LogAnIssueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: LogAnIssueComponent, selector: "app-log-an-issue", inputs: { openedFrom: "openedFrom", issueId: "issueId", reponsibilityData: "reponsibilityData", issueDetails: "issueDetails", mode: "mode", config: "config", responsibilitiesData: "responsibilitiesData" }, outputs: { pickerChanged: "pickerChanged", populateOption: "populateOption", closeWorkflow: "closeWorkflow", modeChange: "modeChange", disconnectRefresh: "disconnectRefresh" }, viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- <p>log-an-issue works!</p> -->\r\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\r\n <div class=\"form-group-row\" *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Linked to</label>\r\n <div class=\"selected\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt full-width\" [appTooltip]=\"reponsibilityData?.responsibilityName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{reponsibilityData?.responsibilityName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{reponsibilityData?.responsibilityName}}</span>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\" *ngIf=\"['AUDIT_WORKROOM','VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(openedFrom)\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue linked with</label>\r\n <div class=\"selected\"><div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"issueDetails?.auditPlanName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{issueDetails?.auditPlanName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{issueDetails?.auditPlanName}}</span>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\" *ngIf=\"['VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(openedFrom) || isRiskControlVisible\" [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_CONTROL_RISK' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0 \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length === 0 || activeField === 'ISSUE_CONTROL_RISK' \" />\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0 && activeField !== 'ISSUE_CONTROL_RISK'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Select a control or risk</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.linkedControlRisk || logIssueForm?.linkedControlRisk?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_CONTROL_RISK','ISSUE_CONTROL_RISK')\" type=\"text\" placeholder=\"Select a control or risk.\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe90d;</i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div> -->\r\n <button class=\"edit\" *ngIf=\"activeField !=='ISSUE_CONTROL_RISK'\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CONTROL_RISK','ISSUE_CONTROL_RISK')\"><i class=\"icons\">&#xe90c;</i>Edit</button>\r\n </div>\r\n </div>\r\n <div class=\"vx-form-group\" *ngFor=\"let tag of logIssueForm.issueCustomTag|keyvalue\">\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{tag?.value?.custom_tag_name}}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.value?.custom_tag_name\" [(ngModel)]=\"tag.value.custom_tag_value\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Issue Title -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TITLE' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Title <span class=\"required\">*</span>\r\n </label>\r\n <input type=\"text\" placeholder=\"Add a name for this issue\" [(ngModel)]=\"logIssueForm.issueName\"\r\n (focusin)=\"setActiveFieldSelector('ISSUE_TITLE','ISSUE_TITLE')\"\r\n (keyup)=\"logIssueForm.issueName?.trim()?.length > 0 ? removeError('issueName'): null\"\r\n (focusout)=\"setActiveFieldSelector('','')\" *ngIf=\"logIssueForm.issueName =='' || activeSelector === 'ISSUE_TITLE'\">\r\n <div class=\"selected\" *ngIf=\"logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\">\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{logIssueForm.issueName}}</span>\r\n </div>\r\n <button class=\"edit\" (click)=\"setActiveFieldSelector('ISSUE_TITLE','ISSUE_TITLE')\" type=\"button\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">Enter a name for this issue.</p>\r\n <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[0]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'ISSUE_DESCRIPTION')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [editorConfig]=\"{mode: 'prime',file:false,\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description'}\" [(ngModel)]=\"logIssueForm.issueDescription\"\r\n (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION',$event)\" (clickOutside)=\"checkDescription()\"></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- issue type start-->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TITLE' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left checked\">\r\n <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Issue Type\r\n </label>\r\n <app-cs-radio class=\"main-filed\" name=\"issue-type\" [checked]=\"logIssueForm?.issueType === 'issue'\"\r\n (checkedEvent)=\"setIssueType('issue')\">Issue\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n <app-cs-radio class=\"main-filed\" name=\"issue-type\" [checked]=\"logIssueForm?.issueType === 'incident'\"\r\n (checkedEvent)=\"setIssueType('incident')\">Incident\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Category -->\r\n <div class=\"form-group-row\" [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_CATEGORY' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0 \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.issueCategory?.length === 0 || activeField === 'ISSUE_CATEGORY' \" />\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueCategory?.length > 0 && activeField !== 'ISSUE_CATEGORY'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Category</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueCategory || logIssueForm?.issueCategory?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_CATEGORY','ISSUE_CATEGORY')\" type=\"text\" placeholder=\"Select a category for this issue\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe90d;</i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div> -->\r\n <button class=\"edit\" *ngIf=\"activeField !=='ISSUE_CATEGORY'\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CATEGORY','ISSUE_CATEGORY')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueCategory')\">Select an issue category.</p>\r\n </div>\r\n <div class=\"vx-form-group\" *ngFor=\"let tag of logIssueForm.issueCustomTag\">\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{tag?.name}}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div class=\"form-group-row\" *ngIf=\"isRCVisible\" [class.active]=\"false\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_RC' && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueRC?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\" alt=\"\" *ngIf=\"logIssueForm?.issueRC?.length === 0\">\r\n\r\n <svg class=\"checkIcon\" *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Responsibility Center\r\n <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\r\n </label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_RC','ISSUE_RC')\" type=\"text\" placeholder=\"Select Responsibility Center(s)\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"!isRCPreSelected\" (click)=\"deleteItem('ISSUE_RC',logIssueForm?.issueRC[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueRC[0]?.item_name}}</span>\r\n <button *ngIf=\"logIssueForm?.issueRC?.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"RC.popover()\" placement=\"right\">+{{logIssueForm?.issueRC?.slice(1)?.length}}</button>\r\n </div>\r\n <button *ngIf=\"activeField !=='ISSUE_RC' && !isRCPreSelected\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_RC','ISSUE_RC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">Select the Responsibility Center associated with this issue.</p>\r\n </div>\r\n <app-popover #RC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let rc of logIssueForm?.issueRC | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_RC',rc)\">&#xe90d;</i>\r\n {{rc?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_WHO' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\" alt=\"im\"\r\n *ngIf=\"(logIssueForm?.entrustTo?.length === 0 && !logIssueForm?.isAssignToMyself) || activeField === 'ISSUE_WHO' \">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm?.entrustTo?.length > 0 || logIssueForm?.isAssignToMyself ) && activeField !== 'ISSUE_WHO'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Who? <span class=\"required\">*</span></label>\r\n <div class=\"select\" [class.disabled]=\"logIssueForm?.isAssignToMyself\"\r\n *ngIf=\"!logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_WHO','ISSUE_WHO')\" [disabled]=\"logIssueForm?.isAssignToMyself\" type=\"text\" placeholder=\"Who is responsible for completing the responsibility?\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe90d;</i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_WHO'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_WHO','ISSUE_WHO')\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">Select the person responsible for resolving this issue.</p>\r\n <div class=\"switch-row align-right\" [class.disabled]=\"activeField === 'ISSUE_WHO'\">\r\n <app-cs-switch [disabled]=\"activeField === 'ISSUE_WHO'\" [(ngValue)]=\"logIssueForm.isAssignToMyself\" (ngValueChange)=\"assignMyself($event)\">OR ASSIGN TO MYSELF</app-cs-switch>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Maximun Time to Resolve -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_DATE_TIME' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\" alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME' \">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Maximum Time to Resolve <span class=\"required\">*</span></label>\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input type=\"text\" readonly placeholder=\"Set a deadline.\"\r\n [value]=\"logIssueForm.issueDueDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker();\">\r\n <i class=\"icons\">&#xe92d;</i>\r\n <dp-date-picker #datePicker (onSelect)=\"datePickerOverlay = false;closeDatePicker($event);removeError('issueDueDate')\" [config]=\"dateConfig\"\r\n [(ngModel)]=\"logIssueForm.issueDueDate\" >\r\n </dp-date-picker>\r\n <div class=\"vx-overlay\" (click)=\"closeDatePicker($event)\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n\r\n <div class=\"picker-group\">\r\n\r\n <input [ngxTimepicker]=\"dailyTime\" (mouseover)=\"setCurrentTime()\" [(ngModel)]=\"logIssueForm.issueDueTime\" [value]=\"logIssueForm.issueDueTime\" readonly\r\n class=\"time\" aria-label=\"12hr format\" placeholder=\"Select Time\"\r\n type=\"text\" [min]=\"currentTime\" readonly>\r\n <i class=\"icons\">&#xe955;</i>\r\n <ngx-material-timepicker (opened)=\"setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME')\"\r\n (closed)=\"setActiveFieldSelector('','')\" #dailyTime [defaultTime]=\"'11:59 pm'\">\r\n </ngx-material-timepicker>\r\n </div>\r\n\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueDueDate')\">Select the date by which this issue needs to be resolved.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recommended Actions -->\r\n <div class=\"form-group-row\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recommended-action.svg\" alt=\"im\" *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length>0\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Recommended Actions <span class=\"required\">*</span></label>\r\n <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[1]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'RECOMMENDED_ACTIONS')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [(ngModel)]=\"logIssueForm.issueRecommendation\" [editorConfig]=\"{mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:true,\r\n placeholder: 'Recommended actions'}\" (ngModelChange)=\"logIssueForm?.issueRecommendation?.trim()?.length > 0 ? removeError('issueRecommendation'):null\"\r\n (clickOutside)=\"checkDescription()\" (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS',$event)\"></vcomply-editor>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRecommendation')\">Specify the recommended actions to resolve this issue.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\" -->\r\n <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\r\n\r\n <!-- Risk Classification -->\r\n <div class=\"form-group-row\" id=\"risk_classification\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issueRiskRating\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueRiskRating\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label class=\"low\" *ngFor=\" let class of riskClassification\" [ngClass]=\"[class.class]\">\r\n <input type=\"radio\" name=\"classification\" [value]=\"class.value\"\r\n [checked]=\"logIssueForm?.issueRiskRating === class.value\"\r\n [(ngModel)]=\"logIssueForm.issueRiskRating\">\r\n <span>{{class.name}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Exception Type -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg\" alt=\"im\" *ngIf=\"logIssueForm?.exceptionType === null\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.exceptionType > -1\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Exception Type</label>\r\n <app-cs-radio class=\"main-filed\" [value]=\"1\" name=\"exception-type\" [checked]=\"logIssueForm?.exceptionType === 1\"\r\n (checkedEvent)=\"setException(1)\">Design Exception\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n <app-cs-radio class=\"main-filed\" [value]=\"2\" name=\"exception-type\" [checked]=\"logIssueForm?.exceptionType === 2\"\r\n (checkedEvent)=\"setException(2)\">Effectiveness Exception\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Priority -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.PRIORITY\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issuePriority\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issuePriority > 0\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Priority</label>\r\n <div class=\"classification\">\r\n <label *ngFor=\" let priority of riskPrority\" [ngClass]=\"[priority.class]\">\r\n <input type=\"radio\" name=\"classification-priority\" [value]=\"priority.value\"\r\n [checked]=\"logIssueForm?.issuePriority === priority.value\"\r\n [(ngModel)]=\"logIssueForm.issuePriority\">\r\n <span>{{priority.name}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Associated Risks -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Associated Risks </label>\r\n <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[2]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'ASSOCIATED_RISKS')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [(ngModel)]=\"logIssueForm.issueAssociatedRisk\" [editorConfig]=\"{mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:false,\r\n placeholder: 'Associated Risks'}\" (clickOutside)=\"checkDescription()\" (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS',$event)\"></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" [class.active]=\"false\" *ngIf=\"additionalOptionStatus.OVERSIGHT\"\r\n [class.disabled]=\"activeField && !(['ISSUE_CC','ISSUE_FCC'].includes(activeField)) && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\"\r\n [class.checked]=\"logIssueForm?.issueCCUsers?.length > 0 || logIssueForm?.failureCCUsers?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\" alt=\"\"\r\n *ngIf=\"(logIssueForm?.issueCCUsers?.length === 0 && logIssueForm?.failureCCUsers?.length === 0)|| activeField === 'ISSUE_CC'|| activeField === 'ISSUE_FCC' \">\r\n\r\n <svg class=\"checkIcon\"\r\n *ngIf=\"logIssueForm?.issueCCUsers?.length > 0 || logIssueForm?.failureCCUsers?.length > 0 && activeField !== 'ISSUE_CC'|| activeField !== 'ISSUE_FCC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Oversight</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueCCUsers || logIssueForm?.issueCCUsers?.length === 0\">\r\n <input type=\"text\" (click)=\"setActiveFieldSelector('ISSUE_CC','ISSUE_CC')\" placeholder=\"Who should have oversight of this issue?\" readonly>\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"CC.popover()\" placement=\"right\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_CC'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CC','ISSUE_CC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.failureCCUsers || logIssueForm?.failureCCUsers?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_FCC','ISSUE_FCC')\" type=\"text\" placeholder=\"Who should be notified if the issue is not resolved?\" readonly>\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"FCC.popover()\" placement=\"right\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_FCC'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_FCC','ISSUE_FCC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n </div>\r\n <app-popover #CC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let cc of logIssueForm?.issueCCUsers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',cc)\">&#xe90d;</i>\r\n {{cc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #FCC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let fcc of logIssueForm?.failureCCUsers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',fcc)\">&#xe90d;</i>\r\n {{fcc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Evidence -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.EVIDENCE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"true\">\r\n <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Evidence</label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\">Do you want evidence of completion of the issue to be uploaded?</span>\r\n <div class=\"radio-group\">\r\n <app-cs-radio [name]=\"'file-evidence'\" [value]=\"1\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 1\" (checkedEvent)=\"setEvidence(1)\">Yes\r\n </app-cs-radio>\r\n <app-cs-radio [name]=\"'file-evidence'\" [value]=\"0\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 0\" (checkedEvent)=\"setEvidence(0)\">No\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_CATGORY\" [itemsList]=\"listData?.categoryList\"\r\n [selectedItems]=\"logIssueForm.issueCategory\" [identifierKey]=\"'category_id'\"\r\n [displayKey]=\"'category_name'\" *ngIf=\"activeSelector==='ISSUE_CATEGORY'\"\r\n (saveList)=\"selectorAction($event,'ISSUE_CATEGORY')\" (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\">\r\n</app-radio-list>\r\n\r\n<!-- <app-radio-list [config]=\"selectorConfig?.ISSUE_RC\" [itemsList]=\"listData?.rcList\"\r\n [selectedItems]=\"logIssueForm.issueRC\" [identifierKey]=\"'rc_id'\" [displayKey]=\"'rc_name'\"\r\n *ngIf=\"activeSelector==='ISSUE_RC'\" (saveList)=\"selectorAction($event,'ISSUE_RC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_RC')\"></app-radio-list> -->\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_RC\" [twoColumn]=\"true\"\r\n[itemsList]=\"listData?.rcList\" [selectedItems]=\"logIssueForm?.issueRC\" [identifierKey]=\"'rc_id'\" [displayKey]=\"'rc_name'\" [tooltipKey]=\"'rc_name'\" *ngIf=\"activeSelector==='ISSUE_RC'\" (saveList)=\"selectorAction($event,'ISSUE_RC')\"\r\n(closeList)=\"fieldDeselector('ISSUE_RC')\"></app-checkbox-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_WHO\" [itemsList]=\"listData?.userList\" [twoColumn]=\"true\"\r\n [selectedItems]=\"logIssueForm.entrustTo\" [identifierKey]=\"'employee_id'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_WHO'\" (saveList)=\"selectorAction($event,'ISSUE_WHO')\"\r\n (closeList)=\"fieldDeselector('ISSUE_WHO')\"></app-radio-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_TYPE\" [itemsList]=\"listData?.issueTypeList\"\r\n [selectedItems]=\"logIssueForm.issueType\" [identifierKey]=\"'issue_id'\" [displayKey]=\"'issue_type_name'\"\r\n *ngIf=\"activeSelector==='ISSUE_TYPE'\" (saveList)=\"selectorAction($event,'ISSUE_TYPE')\"\r\n (closeList)=\"fieldDeselector('ISSUE_TYPE')\"></app-radio-list>\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_CC\" [twoColumn]=\"true\"\r\n [itemsList]=\"listData.userList|userFilter:'employee_email':logIssueForm.entrustTo:{'employee_email':currentUser?.email}\"\r\n [selectedItems]=\"logIssueForm.issueCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_CC'\" (saveList)=\"selectorAction($event,'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\"></app-checkbox-list>\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_FCC\" [twoColumn]=\"true\"\r\n [itemsList]=\"listData.userList|userFilter:'employee_email':logIssueForm.entrustTo:{'employee_email':currentUser?.email}\"\r\n [selectedItems]=\"logIssueForm.failureCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_FCC'\" (saveList)=\"selectorAction($event,'ISSUE_FCC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_FCC')\"></app-checkbox-list>\r\n\r\n<app-responsibility-risk-selector [loading]=\"isRiskControlLoading\" *ngIf=\"activeSelector==='ISSUE_CONTROL_RISK'\"\r\n (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\" (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\r\n (saveList)=\"selectorAction($event,'ISSUE_CONTROL_RISK')\"\r\n[activeEntity]=\"logIssueForm?.linkageType\" [listItems]=\"listData?.linkageList\" [selectedItems]=\"logIssueForm?.linkedControlRisk\"></app-responsibility-risk-selector>\r\n\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"message\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\">\r\n</app-smiley-dialog-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .log-an-issue{position:relative}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#ffffff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#ffffff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#ffffff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#ffffff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#ffffff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#ffffff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#ffffff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#ffffff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#ffffff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}\n"], dependencies: [{ kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i6.MarxEditorComponent, selector: "vcomply-editor", inputs: ["editorConfig"], outputs: ["comment", "sendSavedFiles", "popup"] }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "component", type: i9.CsSwitchComponent, selector: "app-cs-switch", inputs: ["disabled", "ngValue", "value", "tooltipMessage", "position"], outputs: ["ngValueChange"] }, { kind: "directive", type: i10.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i11.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"] }, { kind: "directive", type: i12.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "component", type: i13.LineLoaderComponent, selector: "app-line-loader", inputs: ["loaderHeight"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i14.NgxMaterialTimepickerComponent, selector: "ngx-material-timepicker", inputs: ["ESC", "hoursOnly", "ngxMaterialTimepickerTheme", "format", "minutesGap", "cancelBtnTmpl", "editableHintTmpl", "confirmBtnTmpl", "enableKeyboardInput", "preventOverlayClick", "disableAnimation", "appendToInput", "defaultTime", "timepickerClass", "theme", "min", "max"], outputs: ["timeSet", "opened", "closed", "hourSelected", "timeChanged"] }, { kind: "directive", type: i14.TimepickerDirective, selector: "[ngxTimepicker]", inputs: ["format", "value", "min", "max", "ngxTimepicker", "disabled", "disableClick"] }, { kind: "component", type: i15.DatePickerComponent, selector: "dp-date-picker", inputs: ["mode", "placeholder", "disabled", "config", "displayDate", "theme", "minDate", "maxDate", "minTime", "maxTime"], outputs: ["open", "close", "onChange", "onGoToCurrent", "onLeftNav", "onRightNav", "onSelect"] }, { kind: "component", type: i16.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i17.SmileyDialogInlineComponent, selector: "app-smiley-dialog-inline", inputs: ["message", "actionButtons"], outputs: ["action", "closeSmiley"] }, { kind: "directive", type: i18.ClickOutsideDirective, selector: "[clickOutside]", outputs: ["clickOutside"] }, { kind: "component", type: i19.CheckboxListComponent, selector: "app-checkbox-list", inputs: ["itemsList", "selectedItems", "identifierKey", "displayKey", "tooltipKey", "config", "twoColumn"], outputs: ["closeList", "saveList"] }, { kind: "component", type: i20.RadioListComponent, selector: "app-radio-list", inputs: ["itemsList", "selectedItems", "identifierKey", "displayKey", "tooltipKey", "config", "twoColumn"], outputs: ["closeList", "saveList"] }, { kind: "directive", type: i21.ScrollInViewDirective, selector: "[appScrollInView]", inputs: ["appScrollInView"] }, { kind: "component", type: i22.ResponsibilityRiskSelectorComponent, selector: "app-responsibility-risk-selector", inputs: ["activeEntity", "listItems", "selectedItems", "loading"], outputs: ["fetchList", "closeList", "saveList"] }, { kind: "pipe", type: i7.SlicePipe, name: "slice" }, { kind: "pipe", type: i7.DatePipe, name: "date" }, { kind: "pipe", type: i7.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i23.SpaceBreakerPipe, name: "spaceBreaker" }, { kind: "pipe", type: i24.UserFilterPipe, name: "userFilter" }] });
1001
986
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: LogAnIssueComponent, decorators: [{
1002
987
  type: Component,
1003
- args: [{ selector: 'app-log-an-issue', template: "<!-- <p>log-an-issue works!</p> -->\r\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\r\n <div class=\"form-group-row\" *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Linked to</label>\r\n <div class=\"selected\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt full-width\" [appTooltip]=\"reponsibilityData?.responsibilityName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{reponsibilityData?.responsibilityName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{reponsibilityData?.responsibilityName}}</span>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\" *ngIf=\"['AUDIT_WORKROOM','VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(openedFrom)\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue linked with</label>\r\n <div class=\"selected\"><div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"issueDetails?.auditPlanName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{issueDetails?.auditPlanName}}</span>\r\n </div>\r\n \r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{issueDetails?.auditPlanName}}</span>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\" *ngIf=\"['VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(openedFrom) || isRiskControlVisible\" [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_CONTROL_RISK' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0 \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length === 0 || activeField === 'ISSUE_CONTROL_RISK' \" />\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0 && activeField !== 'ISSUE_CONTROL_RISK'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Select a control or risk</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.linkedControlRisk || logIssueForm?.linkedControlRisk?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_CONTROL_RISK','ISSUE_CONTROL_RISK')\" type=\"text\" placeholder=\"Select a control or risk.\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe90d;</i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div> -->\r\n <button class=\"edit\" *ngIf=\"activeField !=='ISSUE_CONTROL_RISK'\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CONTROL_RISK','ISSUE_CONTROL_RISK')\"><i class=\"icons\">&#xe90c;</i>Edit</button>\r\n </div>\r\n </div>\r\n <div class=\"vx-form-group\" *ngFor=\"let tag of logIssueForm.issueCustomTag|keyvalue\">\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{tag?.value?.custom_tag_name}}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.value?.custom_tag_name\" [(ngModel)]=\"tag.value.custom_tag_value\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Issue Title -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TITLE' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Title <span class=\"required\">*</span>\r\n </label>\r\n <input type=\"text\" placeholder=\"Add a name for this issue\" [(ngModel)]=\"logIssueForm.issueName\"\r\n (focusin)=\"setActiveFieldSelector('ISSUE_TITLE','ISSUE_TITLE')\"\r\n (keyup)=\"logIssueForm.issueName?.trim()?.length > 0 ? removeError('issueName'): null\"\r\n (focusout)=\"setActiveFieldSelector('','')\" *ngIf=\"logIssueForm.issueName =='' || activeSelector === 'ISSUE_TITLE'\">\r\n <div class=\"selected\" *ngIf=\"logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\">\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{logIssueForm.issueName}}</span>\r\n </div>\r\n <button class=\"edit\" (click)=\"setActiveFieldSelector('ISSUE_TITLE','ISSUE_TITLE')\" type=\"button\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">Enter a name for this issue.</p>\r\n <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[0]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'ISSUE_DESCRIPTION')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [editorConfig]=\"{mode: 'prime',file:false,\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description'}\" [(ngModel)]=\"logIssueForm.issueDescription\"\r\n (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION',$event)\" (clickOutside)=\"checkDescription()\"></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- issue type start-->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TITLE' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left checked\">\r\n <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Issue Type\r\n </label>\r\n <app-cs-radio class=\"main-filed\" name=\"issue-type\" [checked]=\"logIssueForm?.issueType === 'issue'\"\r\n (checkedEvent)=\"setIssueType('issue')\">Issue\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n <app-cs-radio class=\"main-filed\" name=\"issue-type\" [checked]=\"logIssueForm?.issueType === 'incident'\"\r\n (checkedEvent)=\"setIssueType('incident')\">Incident\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Category -->\r\n <div class=\"form-group-row\" [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_CATEGORY' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0 \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.issueCategory?.length === 0 || activeField === 'ISSUE_CATEGORY' \" />\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueCategory?.length > 0 && activeField !== 'ISSUE_CATEGORY'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Category</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueCategory || logIssueForm?.issueCategory?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_CATEGORY','ISSUE_CATEGORY')\" type=\"text\" placeholder=\"Select a category for this issue\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe90d;</i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div> -->\r\n <button class=\"edit\" *ngIf=\"activeField !=='ISSUE_CATEGORY'\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CATEGORY','ISSUE_CATEGORY')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueCategory')\">Select an issue category.</p>\r\n </div>\r\n <div class=\"vx-form-group\" *ngFor=\"let tag of logIssueForm.issueCustomTag\">\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{tag?.name}}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div class=\"form-group-row\" *ngIf=\"isRCVisible\" [class.active]=\"false\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_RC' && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueRC?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\" alt=\"\" *ngIf=\"logIssueForm?.issueRC?.length === 0\">\r\n\r\n <svg class=\"checkIcon\" *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Responsibility Center\r\n <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\r\n </label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_RC','ISSUE_RC')\" type=\"text\" placeholder=\"Select Responsibility Center(s)\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"!isRCPreSelected\" (click)=\"deleteItem('ISSUE_RC',logIssueForm?.issueRC[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueRC[0]?.item_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" *ngIf=\"!isRCPreSelected\" (click)=\"deleteItem('ISSUE_RC',logIssueForm?.issueRC[0])\">&#xe90d;</i>{{logIssueForm?.issueRC[0]?.item_name}}</span>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_RC' && !isRCPreSelected\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_RC','ISSUE_RC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">Select the Responsibility Center associated with this issue.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_WHO' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\" alt=\"im\"\r\n *ngIf=\"(logIssueForm?.entrustTo?.length === 0 && !logIssueForm?.isAssignToMyself) || activeField === 'ISSUE_WHO' \">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm?.entrustTo?.length > 0 || logIssueForm?.isAssignToMyself ) && activeField !== 'ISSUE_WHO'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Who? <span class=\"required\">*</span></label>\r\n <div class=\"select\" [class.disabled]=\"logIssueForm?.isAssignToMyself\"\r\n *ngIf=\"!logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_WHO','ISSUE_WHO')\" [disabled]=\"logIssueForm?.isAssignToMyself\" type=\"text\" placeholder=\"Who is responsible for completing the responsibility?\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe90d;</i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_WHO'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_WHO','ISSUE_WHO')\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">Select the person responsible for resolving this issue.</p>\r\n <div class=\"switch-row align-right\" [class.disabled]=\"activeField === 'ISSUE_WHO'\">\r\n <app-cs-switch [disabled]=\"activeField === 'ISSUE_WHO'\" [(ngValue)]=\"logIssueForm.isAssignToMyself\" (ngValueChange)=\"assignMyself($event)\">OR ASSIGN TO MYSELF</app-cs-switch>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Maximun Time to Resolve -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_DATE_TIME' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\" alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME' \">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Maximum Time to Resolve <span class=\"required\">*</span></label>\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input type=\"text\" readonly placeholder=\"Set a deadline.\"\r\n [value]=\"logIssueForm.issueDueDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker();\">\r\n <i class=\"icons\">&#xe92d;</i>\r\n <dp-date-picker #datePicker (onSelect)=\"datePickerOverlay = false;closeDatePicker($event);removeError('issueDueDate')\" [config]=\"dateConfig\"\r\n [(ngModel)]=\"logIssueForm.issueDueDate\" >\r\n </dp-date-picker>\r\n <div class=\"vx-overlay\" (click)=\"closeDatePicker($event)\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n\r\n <div class=\"picker-group\">\r\n\r\n <input [ngxTimepicker]=\"dailyTime\" (mouseover)=\"setCurrentTime()\" [(ngModel)]=\"logIssueForm.issueDueTime\" [value]=\"logIssueForm.issueDueTime\" readonly\r\n class=\"time\" aria-label=\"12hr format\" placeholder=\"Select Time\"\r\n type=\"text\" [min]=\"currentTime\" readonly>\r\n <i class=\"icons\">&#xe955;</i>\r\n <ngx-material-timepicker (opened)=\"setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME')\"\r\n (closed)=\"setActiveFieldSelector('','')\" #dailyTime [defaultTime]=\"'11:59 pm'\">\r\n </ngx-material-timepicker>\r\n </div>\r\n\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueDueDate')\">Select the date by which this issue needs to be resolved.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recommended Actions -->\r\n <div class=\"form-group-row\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recommended-action.svg\" alt=\"im\" *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length>0\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Recommended Actions <span class=\"required\">*</span></label>\r\n <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[1]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'RECOMMENDED_ACTIONS')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [(ngModel)]=\"logIssueForm.issueRecommendation\" [editorConfig]=\"{mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:true,\r\n placeholder: 'Recommended actions'}\" (ngModelChange)=\"logIssueForm?.issueRecommendation?.trim()?.length > 0 ? removeError('issueRecommendation'):null\"\r\n (clickOutside)=\"checkDescription()\" (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS',$event)\"></vcomply-editor>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRecommendation')\">Specify the recommended actions to resolve this issue.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\" -->\r\n <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\r\n \r\n <!-- Risk Classification -->\r\n <div class=\"form-group-row\" id=\"risk_classification\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issueRiskRating\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueRiskRating\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label class=\"low\" *ngFor=\" let class of riskClassification\" [ngClass]=\"[class.class]\">\r\n <input type=\"radio\" name=\"classification\" [value]=\"class.value\"\r\n [checked]=\"logIssueForm?.issueRiskRating === class.value\"\r\n [(ngModel)]=\"logIssueForm.issueRiskRating\">\r\n <span>{{class.name}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Exception Type -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg\" alt=\"im\" *ngIf=\"logIssueForm?.exceptionType === null\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.exceptionType > -1\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Exception Type</label>\r\n <app-cs-radio class=\"main-filed\" [value]=\"1\" name=\"exception-type\" [checked]=\"logIssueForm?.exceptionType === 1\"\r\n (checkedEvent)=\"setException(1)\">Design Exception\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n <app-cs-radio class=\"main-filed\" [value]=\"2\" name=\"exception-type\" [checked]=\"logIssueForm?.exceptionType === 2\"\r\n (checkedEvent)=\"setException(2)\">Effectiveness Exception\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" [class.active]=\"activeField === 'ISSUE_TYPE'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TYPE' && sideSelectorElements.includes(activeField)\"\r\n *ngIf=\"additionalOptionStatus.ISSUE_TYPE\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueType?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.issueType?.length === 0 || activeField === 'ISSUE_TYPE' \">\r\n\r\n <svg class=\"checkIcon\" *ngIf=\"logIssueForm?.issueType?.length > 0 && activeField !== 'ISSUE_TYPE'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Type</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueType || logIssueForm?.issueType?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_TYPE','ISSUE_TYPE')\" type=\"text\"\r\n placeholder=\"Select the Issue Type associated with this issue.\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueType?.length > 0\">\r\n <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\"\r\n (click)=\"deleteItem('ISSUE_TYPE',logIssueForm?.issueType[0])\">&#xe90d;</i>{{logIssueForm?.issueType[0]?.issue_type_name}}</span>\r\n </div>\r\n <button *ngIf=\"activeField !=='ISSUE_TYPE'\" class=\"edit\" type=\"button\"\r\n (click)=\"setActiveFieldSelector('ISSUE_TYPE','ISSUE_TYPE')\"><i\r\n class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n <!-- Priority -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.PRIORITY\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issuePriority\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issuePriority > 0\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Priority</label>\r\n <div class=\"classification\">\r\n <label *ngFor=\" let priority of riskPrority\" [ngClass]=\"[priority.class]\">\r\n <input type=\"radio\" name=\"classification-priority\" [value]=\"priority.value\"\r\n [checked]=\"logIssueForm?.issuePriority === priority.value\"\r\n [(ngModel)]=\"logIssueForm.issuePriority\">\r\n <span>{{priority.name}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Associated Risks -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Associated Risks </label>\r\n <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[2]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'ASSOCIATED_RISKS')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [(ngModel)]=\"logIssueForm.issueAssociatedRisk\" [editorConfig]=\"{mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:false,\r\n placeholder: 'Associated Risks'}\" (clickOutside)=\"checkDescription()\" (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS',$event)\"></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" [class.active]=\"false\" *ngIf=\"additionalOptionStatus.OVERSIGHT\"\r\n [class.disabled]=\"activeField && !(['ISSUE_CC','ISSUE_FCC'].includes(activeField)) && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\"\r\n [class.checked]=\"logIssueForm?.issueCCUsers?.length > 0 || logIssueForm?.failureCCUsers?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\" alt=\"\"\r\n *ngIf=\"(logIssueForm?.issueCCUsers?.length === 0 && logIssueForm?.failureCCUsers?.length === 0)|| activeField === 'ISSUE_CC'|| activeField === 'ISSUE_FCC' \">\r\n\r\n <svg class=\"checkIcon\"\r\n *ngIf=\"logIssueForm?.issueCCUsers?.length > 0 || logIssueForm?.failureCCUsers?.length > 0 && activeField !== 'ISSUE_CC'|| activeField !== 'ISSUE_FCC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Oversight</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueCCUsers || logIssueForm?.issueCCUsers?.length === 0\">\r\n <input type=\"text\" (click)=\"setActiveFieldSelector('ISSUE_CC','ISSUE_CC')\" placeholder=\"Who should have oversight of this issue?\" readonly>\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"CC.popover()\" placement=\"right\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_CC'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CC','ISSUE_CC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.failureCCUsers || logIssueForm?.failureCCUsers?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_FCC','ISSUE_FCC')\" type=\"text\" placeholder=\"Who should be notified if the issue is not resolved?\" readonly>\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"FCC.popover()\" placement=\"right\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_FCC'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_FCC','ISSUE_FCC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n </div>\r\n <app-popover #CC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let cc of logIssueForm?.issueCCUsers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',cc)\">&#xe90d;</i>\r\n {{cc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #FCC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let fcc of logIssueForm?.failureCCUsers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',fcc)\">&#xe90d;</i>\r\n {{fcc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Evidence -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.EVIDENCE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"true\">\r\n <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Evidence</label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\">Do you want evidence of completion of the issue to be uploaded?</span>\r\n <div class=\"radio-group\">\r\n <app-cs-radio [name]=\"'file-evidence'\" [value]=\"1\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 1\" (checkedEvent)=\"setEvidence(1)\">Yes\r\n </app-cs-radio>\r\n <app-cs-radio [name]=\"'file-evidence'\" [value]=\"0\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 0\" (checkedEvent)=\"setEvidence(0)\">No\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_CATGORY\" [itemsList]=\"listData?.categoryList\"\r\n [selectedItems]=\"logIssueForm.issueCategory\" [identifierKey]=\"'category_id'\"\r\n [displayKey]=\"'category_name'\" *ngIf=\"activeSelector==='ISSUE_CATEGORY'\"\r\n (saveList)=\"selectorAction($event,'ISSUE_CATEGORY')\" (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\">\r\n</app-radio-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_RC\" [itemsList]=\"listData?.rcList\"\r\n [selectedItems]=\"logIssueForm.issueRC\" [identifierKey]=\"'rc_id'\" [displayKey]=\"'rc_name'\"\r\n *ngIf=\"activeSelector==='ISSUE_RC'\" (saveList)=\"selectorAction($event,'ISSUE_RC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_RC')\"></app-radio-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_WHO\" [itemsList]=\"listData?.userList\" [twoColumn]=\"true\"\r\n [selectedItems]=\"logIssueForm.entrustTo\" [identifierKey]=\"'employee_id'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_WHO'\" (saveList)=\"selectorAction($event,'ISSUE_WHO')\"\r\n (closeList)=\"fieldDeselector('ISSUE_WHO')\"></app-radio-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_TYPE\" [itemsList]=\"listData?.issueTypeList\"\r\n [selectedItems]=\"logIssueForm.issueType\" [identifierKey]=\"'issue_id'\" [displayKey]=\"'issue_type_name'\"\r\n *ngIf=\"activeSelector==='ISSUE_TYPE'\" (saveList)=\"selectorAction($event,'ISSUE_TYPE')\"\r\n (closeList)=\"fieldDeselector('ISSUE_TYPE')\"></app-radio-list>\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_CC\" [twoColumn]=\"true\"\r\n [itemsList]=\"listData.userList|userFilter:'employee_email':logIssueForm.entrustTo:{'employee_email':currentUser?.email}\"\r\n [selectedItems]=\"logIssueForm.issueCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_CC'\" (saveList)=\"selectorAction($event,'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\"></app-checkbox-list>\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_FCC\" [twoColumn]=\"true\"\r\n [itemsList]=\"listData.userList|userFilter:'employee_email':logIssueForm.entrustTo:{'employee_email':currentUser?.email}\"\r\n [selectedItems]=\"logIssueForm.failureCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_FCC'\" (saveList)=\"selectorAction($event,'ISSUE_FCC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_FCC')\"></app-checkbox-list>\r\n\r\n<app-responsibility-risk-selector [loading]=\"isRiskControlLoading\" *ngIf=\"activeSelector==='ISSUE_CONTROL_RISK'\"\r\n (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\" (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\r\n (saveList)=\"selectorAction($event,'ISSUE_CONTROL_RISK')\"\r\n[activeEntity]=\"logIssueForm?.linkageType\" [listItems]=\"listData?.linkageList\" [selectedItems]=\"logIssueForm?.linkedControlRisk\"></app-responsibility-risk-selector>\r\n\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"message\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\">\r\n</app-smiley-dialog-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .log-an-issue{position:relative}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#ffffff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#ffffff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#ffffff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#ffffff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#ffffff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#ffffff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#ffffff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#ffffff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#ffffff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}\n"] }]
988
+ args: [{ selector: 'app-log-an-issue', template: "<!-- <p>log-an-issue works!</p> -->\r\n<div class=\"log-an-issue\" *ngIf=\"!showSmiley\">\r\n <div class=\"form-group-row\" *ngIf=\"['COMPLIANCE_WORKROOM'].includes(openedFrom)\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Linked to</label>\r\n <div class=\"selected\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt full-width\" [appTooltip]=\"reponsibilityData?.responsibilityName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{reponsibilityData?.responsibilityName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{reponsibilityData?.responsibilityName}}</span>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\" *ngIf=\"['AUDIT_WORKROOM','VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(openedFrom)\">\r\n <div class=\"left\" [class.checked]=\"false\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue linked with</label>\r\n <div class=\"selected\"><div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"issueDetails?.auditPlanName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{issueDetails?.auditPlanName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\">{{issueDetails?.auditPlanName}}</span>\r\n </div> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"form-group-row\" *ngIf=\"['VIEW_AUDIT_EXECUTION_SUMMARY','EXECUTE_AUDIT_PLAN'].includes(openedFrom) || isRiskControlVisible\" [class.active]=\"activeField === 'ISSUE_CONTROL_RISK'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_CONTROL_RISK' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.linkedControlRisk?.length > 0 \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length === 0 || activeField === 'ISSUE_CONTROL_RISK' \" />\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0 && activeField !== 'ISSUE_CONTROL_RISK'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Select a control or risk</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.linkedControlRisk || logIssueForm?.linkedControlRisk?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_CONTROL_RISK','ISSUE_CONTROL_RISK')\" type=\"text\" placeholder=\"Select a control or risk.\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.linkedControlRisk?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.linkedControlRisk[0]?.itemControlName\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CONTROL_RISK',logIssueForm?.linkedControlRisk[0])\">&#xe90d;</i>{{logIssueForm?.linkedControlRisk[0]?.itemControlName}}</span>\r\n </div> -->\r\n <button class=\"edit\" *ngIf=\"activeField !=='ISSUE_CONTROL_RISK'\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CONTROL_RISK','ISSUE_CONTROL_RISK')\"><i class=\"icons\">&#xe90c;</i>Edit</button>\r\n </div>\r\n </div>\r\n <div class=\"vx-form-group\" *ngFor=\"let tag of logIssueForm.issueCustomTag|keyvalue\">\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{tag?.value?.custom_tag_name}}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.value?.custom_tag_name\" [(ngModel)]=\"tag.value.custom_tag_value\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <!-- Issue Title -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TITLE' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueName.trim().length\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm.issueName.trim().length && activeField !== 'ISSUE_TITLE'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Title <span class=\"required\">*</span>\r\n </label>\r\n <input type=\"text\" placeholder=\"Add a name for this issue\" [(ngModel)]=\"logIssueForm.issueName\"\r\n (focusin)=\"setActiveFieldSelector('ISSUE_TITLE','ISSUE_TITLE')\"\r\n (keyup)=\"logIssueForm.issueName?.trim()?.length > 0 ? removeError('issueName'): null\"\r\n (focusout)=\"setActiveFieldSelector('','')\" *ngIf=\"logIssueForm.issueName =='' || activeSelector === 'ISSUE_TITLE'\">\r\n <div class=\"selected\" *ngIf=\"logIssueForm.issueName.length && activeSelector !== 'ISSUE_TITLE'\">\r\n <div class=\"chip-container\">\r\n <span class=\"value\">{{logIssueForm.issueName}}</span>\r\n </div>\r\n <button class=\"edit\" (click)=\"setActiveFieldSelector('ISSUE_TITLE','ISSUE_TITLE')\" type=\"button\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueName')\">Enter a name for this issue.</p>\r\n <ng-container *ngIf=\"AttachmentTrack[0]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[0]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.issueDescriptionAttachements?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.issueDescriptionAttachements\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'ISSUE_DESCRIPTION')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [editorConfig]=\"{mode: 'prime',file:false,\r\n colorPalette: true,\r\n link: true,\r\n placeholder: 'Description'}\" [(ngModel)]=\"logIssueForm.issueDescription\"\r\n (sendSavedFiles)=\"selectFile('ISSUE_DESCRIPTION',$event)\" (clickOutside)=\"checkDescription()\"></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- issue type start-->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_TITLE' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left checked\">\r\n <!-- <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/what.svg\" alt=\"name\"\r\n *ngIf=\"!logIssueForm.issueName.trim().length || activeField === 'ISSUE_TITLE'\"> -->\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">\r\n Issue Type\r\n </label>\r\n <app-cs-radio class=\"main-filed\" name=\"issue-type\" [checked]=\"logIssueForm?.issueType === 'issue'\"\r\n (checkedEvent)=\"setIssueType('issue')\">Issue\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n <app-cs-radio class=\"main-filed\" name=\"issue-type\" [checked]=\"logIssueForm?.issueType === 'incident'\"\r\n (checkedEvent)=\"setIssueType('incident')\">Incident\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Issue Category -->\r\n <div class=\"form-group-row\" [class.active]=\"activeField === 'ISSUE_CATEGORY'\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_CATEGORY' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueCategory?.length > 0 \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/category.svg\" alt=\"\"\r\n *ngIf=\"logIssueForm?.issueCategory?.length === 0 || activeField === 'ISSUE_CATEGORY' \" />\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueCategory?.length > 0 && activeField !== 'ISSUE_CATEGORY'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Issue Category</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueCategory || logIssueForm?.issueCategory?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_CATEGORY','ISSUE_CATEGORY')\" type=\"text\" placeholder=\"Select a category for this issue\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCategory?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueCategory[0]?.category_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CATEGORY',logIssueForm?.issueCategory[0])\">&#xe90d;</i>{{logIssueForm?.issueCategory[0]?.category_name}}</span>\r\n </div> -->\r\n <button class=\"edit\" *ngIf=\"activeField !=='ISSUE_CATEGORY'\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CATEGORY','ISSUE_CATEGORY')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueCategory')\">Select an issue category.</p>\r\n </div>\r\n <div class=\"vx-form-group\" *ngFor=\"let tag of logIssueForm.issueCustomTag\">\r\n <!-- {{logIssueForm.issueCustomTag|json}} -->\r\n <label class=\"vx-control-panel\">{{tag?.name}}</label>\r\n <input type=\"text\" [placeholder]=\"tag?.name\" [(ngModel)]=\"tag.value\">\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Responsibility Center -->\r\n <div class=\"form-group-row\" *ngIf=\"isRCVisible\" [class.active]=\"false\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_RC' && sideSelectorElements.includes(activeField)\"\r\n >\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueRC?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg\" alt=\"\" *ngIf=\"logIssueForm?.issueRC?.length === 0\">\r\n\r\n <svg class=\"checkIcon\" *ngIf=\"logIssueForm?.issueRC?.length > 0 && activeField !== 'ISSUE_RC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Responsibility Center\r\n <span class=\"required\" *ngIf=\"isRCMandatory\">*</span>\r\n </label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueRC || logIssueForm?.issueRC?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_RC','ISSUE_RC')\" type=\"text\" placeholder=\"Select Responsibility Center(s)\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueRC?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" *ngIf=\"!isRCPreSelected\" (click)=\"deleteItem('ISSUE_RC',logIssueForm?.issueRC[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueRC[0]?.item_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueRC[0]?.item_name}}</span>\r\n <button *ngIf=\"logIssueForm?.issueRC?.length > 1\" class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"RC.popover()\" placement=\"right\">+{{logIssueForm?.issueRC?.slice(1)?.length}}</button>\r\n </div>\r\n <button *ngIf=\"activeField !=='ISSUE_RC' && !isRCPreSelected\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_RC','ISSUE_RC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRC')\">Select the Responsibility Center associated with this issue.</p>\r\n </div>\r\n <app-popover #RC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let rc of logIssueForm?.issueRC | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_RC',rc)\">&#xe90d;</i>\r\n {{rc?.item_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Who -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_WHO' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.entrustTo?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg\" alt=\"im\"\r\n *ngIf=\"(logIssueForm?.entrustTo?.length === 0 && !logIssueForm?.isAssignToMyself) || activeField === 'ISSUE_WHO' \">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm?.entrustTo?.length > 0 || logIssueForm?.isAssignToMyself ) && activeField !== 'ISSUE_WHO'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Who? <span class=\"required\">*</span></label>\r\n <div class=\"select\" [class.disabled]=\"logIssueForm?.isAssignToMyself\"\r\n *ngIf=\"!logIssueForm?.entrustTo || logIssueForm?.entrustTo?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_WHO','ISSUE_WHO')\" [disabled]=\"logIssueForm?.isAssignToMyself\" type=\"text\" placeholder=\"Who is responsible for completing the responsibility?\" readonly>\r\n </div>\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.entrustTo?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.entrustTo[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_WHO',logIssueForm?.entrustTo[0])\">&#xe90d;</i>{{logIssueForm?.entrustTo[0]?.employee_name}}</span>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_WHO'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_WHO','ISSUE_WHO')\"><i class=\"icons\">&#xe9ba;</i> Edit</button>\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('entrustTo')\">Select the person responsible for resolving this issue.</p>\r\n <div class=\"switch-row align-right\" [class.disabled]=\"activeField === 'ISSUE_WHO'\">\r\n <app-cs-switch [disabled]=\"activeField === 'ISSUE_WHO'\" [(ngValue)]=\"logIssueForm.isAssignToMyself\" (ngValueChange)=\"assignMyself($event)\">OR ASSIGN TO MYSELF</app-cs-switch>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Maximun Time to Resolve -->\r\n <div class=\"form-group-row\"\r\n [class.disabled]=\"activeField && activeField !== 'ISSUE_DATE_TIME' && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issueDueDate \">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/when.svg\" alt=\"im\"\r\n *ngIf=\"!logIssueForm?.issueDueDate || activeField === 'ISSUE_DATE_TIME' \">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueDueDate && activeField !== 'ISSUE_DATE_TIME'\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Maximum Time to Resolve <span class=\"required\">*</span></label>\r\n <div class=\"date-time-picker\">\r\n <div class=\"picker-group\">\r\n <input type=\"text\" readonly placeholder=\"Set a deadline.\"\r\n [value]=\"logIssueForm.issueDueDate | date: 'dd MMM yyyy'\" (click)=\"openDatePicker();\">\r\n <i class=\"icons\">&#xe92d;</i>\r\n <dp-date-picker #datePicker (onSelect)=\"datePickerOverlay = false;closeDatePicker($event);removeError('issueDueDate')\" [config]=\"dateConfig\"\r\n [(ngModel)]=\"logIssueForm.issueDueDate\" >\r\n </dp-date-picker>\r\n <div class=\"vx-overlay\" (click)=\"closeDatePicker($event)\" *ngIf=\"datePickerOverlay\"></div>\r\n </div>\r\n\r\n <div class=\"picker-group\">\r\n\r\n <input [ngxTimepicker]=\"dailyTime\" (mouseover)=\"setCurrentTime()\" [(ngModel)]=\"logIssueForm.issueDueTime\" [value]=\"logIssueForm.issueDueTime\" readonly\r\n class=\"time\" aria-label=\"12hr format\" placeholder=\"Select Time\"\r\n type=\"text\" [min]=\"currentTime\" readonly>\r\n <i class=\"icons\">&#xe955;</i>\r\n <ngx-material-timepicker (opened)=\"setActiveFieldSelector('ISSUE_DATE_TIME', 'ISSUE_DATE_TIME')\"\r\n (closed)=\"setActiveFieldSelector('','')\" #dailyTime [defaultTime]=\"'11:59 pm'\">\r\n </ngx-material-timepicker>\r\n </div>\r\n\r\n </div>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueDueDate')\">Select the date by which this issue needs to be resolved.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Recommended Actions -->\r\n <div class=\"form-group-row\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRecommendation\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recommended-action.svg\" alt=\"im\" *ngIf=\"!(logIssueForm.issueRecommendation | spaceBreaker).length\">\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"(logIssueForm.issueRecommendation | spaceBreaker).length>0\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Recommended Actions <span class=\"required\">*</span></label>\r\n <ng-container *ngIf=\"AttachmentTrack[1]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[1]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n <app-line-loader [loaderHeight]=\"2\"></app-line-loader>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.recommendedActionsAttachments?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.recommendedActionsAttachments\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'RECOMMENDED_ACTIONS')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [(ngModel)]=\"logIssueForm.issueRecommendation\" [editorConfig]=\"{mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:true,\r\n placeholder: 'Recommended actions'}\" (ngModelChange)=\"logIssueForm?.issueRecommendation?.trim()?.length > 0 ? removeError('issueRecommendation'):null\"\r\n (clickOutside)=\"checkDescription()\" (sendSavedFiles)=\"selectFile('RECOMMENDED_ACTIONS',$event)\"></vcomply-editor>\r\n <p class=\"error-message\" *ngIf=\"fieldsWithError.includes('issueRecommendation')\">Specify the recommended actions to resolve this issue.</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- *ngIf=\"!hiddenList.includes('RISK_CLASSIFICATION')\" [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\" -->\r\n <!-- removed the above condition since Risk Classification should be displayed by default in log an issue form -->\r\n\r\n <!-- Risk Classification -->\r\n <div class=\"form-group-row\" id=\"risk_classification\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueRiskRating\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issueRiskRating\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueRiskRating\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Risk Classification</label>\r\n <div class=\"classification\">\r\n <label class=\"low\" *ngFor=\" let class of riskClassification\" [ngClass]=\"[class.class]\">\r\n <input type=\"radio\" name=\"classification\" [value]=\"class.value\"\r\n [checked]=\"logIssueForm?.issueRiskRating === class.value\"\r\n [(ngModel)]=\"logIssueForm.issueRiskRating\">\r\n <span>{{class.name}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Exception Type -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.EXCEPTION_TYPE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.exceptionType > -1\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/exception-type.svg\" alt=\"im\" *ngIf=\"logIssueForm?.exceptionType === null\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.exceptionType > -1\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Exception Type</label>\r\n <app-cs-radio class=\"main-filed\" [value]=\"1\" name=\"exception-type\" [checked]=\"logIssueForm?.exceptionType === 1\"\r\n (checkedEvent)=\"setException(1)\">Design Exception\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n <app-cs-radio class=\"main-filed\" [value]=\"2\" name=\"exception-type\" [checked]=\"logIssueForm?.exceptionType === 2\"\r\n (checkedEvent)=\"setException(2)\">Effectiveness Exception\r\n <!-- <i class=\"icons\">&#xe91f;</i> -->\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Priority -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.PRIORITY\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm?.issuePriority\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issuePriority\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issuePriority > 0\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Priority</label>\r\n <div class=\"classification\">\r\n <label *ngFor=\" let priority of riskPrority\" [ngClass]=\"[priority.class]\">\r\n <input type=\"radio\" name=\"classification-priority\" [value]=\"priority.value\"\r\n [checked]=\"logIssueForm?.issuePriority === priority.value\"\r\n [(ngModel)]=\"logIssueForm.issuePriority\">\r\n <span>{{priority.name}}</span>\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Associated Risks -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.ASSOCIATED_RISKS\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"logIssueForm.issueAssociatedRisk\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\" alt=\"im\" *ngIf=\"!logIssueForm?.issueAssociatedRisk.trim().length\">\r\n\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\"\r\n *ngIf=\"logIssueForm?.issueAssociatedRisk.trim().length\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Associated Risks </label>\r\n <ng-container *ngIf=\"AttachmentTrack[2]?.length > 0 \">\r\n <div class=\"file-list\" *ngFor=\"let uploadingFile of AttachmentTrack[2]\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{uploadingFile}}</span>\r\n <!-- <button>\r\n <i class=\"icons\">&#xe90d;</i>\r\n </button> -->\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"logIssueForm?.associatedRisksAttachments?.length > 0\">\r\n <div class=\"file-list\" *ngFor=\"let file of logIssueForm?.associatedRisksAttachments\">\r\n <div class=\"file-container\">\r\n <span class=\"file-name\">{{file?.name}}</span>\r\n <button>\r\n <i class=\"icons\" (click)=\"deleteFile(file,'ASSOCIATED_RISKS')\">&#xe90d;</i>\r\n </button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <vcomply-editor [(ngModel)]=\"logIssueForm.issueAssociatedRisk\" [editorConfig]=\"{mode: 'prime',\r\n colorPalette: true,\r\n link: true,\r\n file:false,\r\n placeholder: 'Associated Risks'}\" (clickOutside)=\"checkDescription()\" (sendSavedFiles)=\"selectFile('ASSOCIATED_RISKS',$event)\"></vcomply-editor>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Overseer -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" [class.active]=\"false\" *ngIf=\"additionalOptionStatus.OVERSIGHT\"\r\n [class.disabled]=\"activeField && !(['ISSUE_CC','ISSUE_FCC'].includes(activeField)) && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\"\r\n [class.checked]=\"logIssueForm?.issueCCUsers?.length > 0 || logIssueForm?.failureCCUsers?.length > 0\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg\" alt=\"\"\r\n *ngIf=\"(logIssueForm?.issueCCUsers?.length === 0 && logIssueForm?.failureCCUsers?.length === 0)|| activeField === 'ISSUE_CC'|| activeField === 'ISSUE_FCC' \">\r\n\r\n <svg class=\"checkIcon\"\r\n *ngIf=\"logIssueForm?.issueCCUsers?.length > 0 || logIssueForm?.failureCCUsers?.length > 0 && activeField !== 'ISSUE_CC'|| activeField !== 'ISSUE_FCC'\"\r\n xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Oversight</label>\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.issueCCUsers || logIssueForm?.issueCCUsers?.length === 0\">\r\n <input type=\"text\" (click)=\"setActiveFieldSelector('ISSUE_CC','ISSUE_CC')\" placeholder=\"Who should have oversight of this issue?\" readonly>\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.issueCCUsers[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"CC.popover()\" placement=\"right\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',logIssueForm?.issueCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.issueCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.issueCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"CC.popover()\" placement=\"right\">+{{logIssueForm?.issueCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_CC'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_CC','ISSUE_CC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n\r\n <div class=\"select\" *ngIf=\"!logIssueForm?.failureCCUsers || logIssueForm?.failureCCUsers?.length === 0\">\r\n <input (click)=\"setActiveFieldSelector('ISSUE_FCC','ISSUE_FCC')\" type=\"text\" placeholder=\"Who should be notified if the issue is not resolved?\" readonly>\r\n </div>\r\n\r\n <div class=\"selected\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 0\">\r\n <div class=\"chipContainer vx-d-flex vx-align-center vx-pl-2 vx-pr-2\">\r\n <i class=\"icons cross vx-fs-10 vx-paragraph-txt vx-mr-1\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe9ae;</i>\r\n <span class=\"chipName vx-fs-11 vx-label-txt\" [appTooltip]=\"logIssueForm?.failureCCUsers[0]?.employee_name\" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"false\">{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"countBtn vx-fs-9 vx-fw-500 vx-txt-white vx-d-flex vx-align-center vx-justify-center vx-lh-4\" appPopover (click)=\"FCC.popover()\" placement=\"right\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div>\r\n\r\n <!-- <div class=\"chip-container\">\r\n <span class=\"chip\"><i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',logIssueForm?.failureCCUsers[0])\">&#xe90d;</i>{{logIssueForm?.failureCCUsers[0]?.employee_name}}</span>\r\n <button class=\"count\" *ngIf=\"logIssueForm?.failureCCUsers?.length > 1\" type=\"button\" appPopover (click)=\"FCC.popover()\" placement=\"right\">+{{logIssueForm?.failureCCUsers?.slice(1).length}}</button>\r\n </div> -->\r\n <button *ngIf=\"activeField !=='ISSUE_FCC'\" class=\"edit\" type=\"button\" (click)=\"setActiveFieldSelector('ISSUE_FCC','ISSUE_FCC')\"><i class=\"icons\">&#xe9ba;</i>Edit</button>\r\n </div>\r\n </div>\r\n <app-popover #CC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let cc of logIssueForm?.issueCCUsers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_CC',cc)\">&#xe90d;</i>\r\n {{cc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n <app-popover #FCC [dontCloseonClick]=\"true\">\r\n <div class=\"wf-action-list\">\r\n <ul class=\"action-item\">\r\n <li *ngFor=\"let fcc of logIssueForm?.failureCCUsers | slice: 1; let j = index\">\r\n <div class=\"avatar-card\">\r\n <span class=\"value\">\r\n <i class=\"icons\" (click)=\"deleteItem('ISSUE_FCC',fcc)\">&#xe90d;</i>\r\n {{fcc?.employee_name }}\r\n </span>\r\n </div>\r\n </li>\r\n </ul>\r\n </div>\r\n </app-popover>\r\n </div>\r\n </div>\r\n\r\n <!-- Evidence -->\r\n <div [appScrollInView]=\"scrollToBottom\" class=\"form-group-row\" *ngIf=\"additionalOptionStatus.EVIDENCE\"\r\n [class.disabled]=\"activeField && sideSelectorElements.includes(activeField)\">\r\n <div class=\"left\" [class.checked]=\"true\">\r\n <!-- <img src=\"https://cdn.v-comply.com/format-evidence.svg\" alt=\"im\"> -->\r\n <svg class=\"checkIcon\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 52 52\">\r\n <circle class=\"checkIcon__circle\" cx=\"26\" cy=\"26\" r=\"25\" fill=\"none\" />\r\n <path class=\"checkIcon__check\" fill=\"none\" d=\"M14.1 27.2l7.1 7.2 16.7-16.8\" />\r\n </svg>\r\n </div>\r\n <div class=\"right\">\r\n <div class=\"vx-form-group\">\r\n <label class=\"vx-control-panel\">Evidence</label>\r\n <div class=\"upload-format\">\r\n <span class=\"text\">Do you want evidence of completion of the issue to be uploaded?</span>\r\n <div class=\"radio-group\">\r\n <app-cs-radio [name]=\"'file-evidence'\" [value]=\"1\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 1\" (checkedEvent)=\"setEvidence(1)\">Yes\r\n </app-cs-radio>\r\n <app-cs-radio [name]=\"'file-evidence'\" [value]=\"0\"\r\n [checked]=\"logIssueForm?.evidenceRequired === 0\" (checkedEvent)=\"setEvidence(0)\">No\r\n </app-cs-radio>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<app-loader-inline *ngIf=\"loader\"></app-loader-inline>\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_CATGORY\" [itemsList]=\"listData?.categoryList\"\r\n [selectedItems]=\"logIssueForm.issueCategory\" [identifierKey]=\"'category_id'\"\r\n [displayKey]=\"'category_name'\" *ngIf=\"activeSelector==='ISSUE_CATEGORY'\"\r\n (saveList)=\"selectorAction($event,'ISSUE_CATEGORY')\" (closeList)=\"fieldDeselector('ISSUE_CATEGORY')\">\r\n</app-radio-list>\r\n\r\n<!-- <app-radio-list [config]=\"selectorConfig?.ISSUE_RC\" [itemsList]=\"listData?.rcList\"\r\n [selectedItems]=\"logIssueForm.issueRC\" [identifierKey]=\"'rc_id'\" [displayKey]=\"'rc_name'\"\r\n *ngIf=\"activeSelector==='ISSUE_RC'\" (saveList)=\"selectorAction($event,'ISSUE_RC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_RC')\"></app-radio-list> -->\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_RC\" [twoColumn]=\"true\"\r\n[itemsList]=\"listData?.rcList\" [selectedItems]=\"logIssueForm?.issueRC\" [identifierKey]=\"'rc_id'\" [displayKey]=\"'rc_name'\" [tooltipKey]=\"'rc_name'\" *ngIf=\"activeSelector==='ISSUE_RC'\" (saveList)=\"selectorAction($event,'ISSUE_RC')\"\r\n(closeList)=\"fieldDeselector('ISSUE_RC')\"></app-checkbox-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_WHO\" [itemsList]=\"listData?.userList\" [twoColumn]=\"true\"\r\n [selectedItems]=\"logIssueForm.entrustTo\" [identifierKey]=\"'employee_id'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_WHO'\" (saveList)=\"selectorAction($event,'ISSUE_WHO')\"\r\n (closeList)=\"fieldDeselector('ISSUE_WHO')\"></app-radio-list>\r\n\r\n<app-radio-list [config]=\"selectorConfig?.ISSUE_TYPE\" [itemsList]=\"listData?.issueTypeList\"\r\n [selectedItems]=\"logIssueForm.issueType\" [identifierKey]=\"'issue_id'\" [displayKey]=\"'issue_type_name'\"\r\n *ngIf=\"activeSelector==='ISSUE_TYPE'\" (saveList)=\"selectorAction($event,'ISSUE_TYPE')\"\r\n (closeList)=\"fieldDeselector('ISSUE_TYPE')\"></app-radio-list>\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_CC\" [twoColumn]=\"true\"\r\n [itemsList]=\"listData.userList|userFilter:'employee_email':logIssueForm.entrustTo:{'employee_email':currentUser?.email}\"\r\n [selectedItems]=\"logIssueForm.issueCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_CC'\" (saveList)=\"selectorAction($event,'ISSUE_CC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_CC')\"></app-checkbox-list>\r\n\r\n<app-checkbox-list [config]=\"selectorConfig?.ISSUE_FCC\" [twoColumn]=\"true\"\r\n [itemsList]=\"listData.userList|userFilter:'employee_email':logIssueForm.entrustTo:{'employee_email':currentUser?.email}\"\r\n [selectedItems]=\"logIssueForm.failureCCUsers\" [identifierKey]=\"'employee_email'\" [displayKey]=\"'employee_name'\" [tooltipKey]=\"'employee_email'\"\r\n *ngIf=\"activeSelector==='ISSUE_FCC'\" (saveList)=\"selectorAction($event,'ISSUE_FCC')\"\r\n (closeList)=\"fieldDeselector('ISSUE_FCC')\"></app-checkbox-list>\r\n\r\n<app-responsibility-risk-selector [loading]=\"isRiskControlLoading\" *ngIf=\"activeSelector==='ISSUE_CONTROL_RISK'\"\r\n (closeList)=\"fieldDeselector('ISSUE_CONTROL_RISK')\" (fetchList)=\"getLinkage(issueDetails?.auditObjId, $event)\"\r\n (saveList)=\"selectorAction($event,'ISSUE_CONTROL_RISK')\"\r\n[activeEntity]=\"logIssueForm?.linkageType\" [listItems]=\"listData?.linkageList\" [selectedItems]=\"logIssueForm?.linkedControlRisk\"></app-responsibility-risk-selector>\r\n\r\n<app-smiley-dialog-inline\r\n *ngIf=\"showSmiley\"\r\n [message]=\"message\"\r\n [actionButtons]=\"actionButtons\"\r\n (action)=\"action($event)\"\r\n (closeSmiley)=\"closeSmiley($event)\">\r\n</app-smiley-dialog-inline>\r\n", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";::ng-deep .log-an-issue{position:relative}\n", "@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";::-webkit-scrollbar-track{background-color:#f1f1f1;position:absolute}::-webkit-scrollbar{width:3px;height:3px;background-color:transparent;position:absolute}::-webkit-scrollbar-thumb{border-radius:3px;background-color:#dbdbdb;position:absolute}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}button{font-family:Poppins,sans-serif}::ng-deep input.textField{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;font-size:13px;color:#747576;padding:8px 12px;position:relative;height:2.5rem;width:100%;transition:all .2s ease-in-out}::ng-deep input.textField::placeholder{font-size:13px;color:#747576}::ng-deep input.textField:hover,::ng-deep input.textField:focus{outline:none;border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectBoxEnable:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#747576;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .selectBoxEnable:hover,::ng-deep .selectBoxEnable:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectBoxEnable.disabled{background:#f1f1f1;pointer-events:none;opacity:1}::ng-deep .selectBoxEnable.withBtn:after{display:none}::ng-deep .selectBoxEnable.withBtn button.setBtn{background:transparent;border-radius:0;border:none;min-width:98px}::ng-deep .selectBoxSuccess{background:#f8f8f8;border-radius:.25rem;border:1px solid #f1f1f1;min-height:2.5rem;position:relative}::ng-deep .selectBoxSuccess .selectBoxText{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:22rem}::ng-deep .selectBoxSuccess button{background:transparent;border-radius:0;border:none}::ng-deep .selectBoxSuccess button.deleteBtn{color:#d93b41}::ng-deep .selectBoxSuccess .level-left{border-right:1px solid #f1f1f1;height:2.375rem;width:5rem}::ng-deep .selectBoxSuccess .level-left .level-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:4.5rem}::ng-deep .chipContainer{background:#fff;border-radius:.125rem;box-shadow:0 0 2px #1e5dd340;height:1.5rem}::ng-deep .chipContainer .cross{cursor:pointer;min-width:16px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;background:transparent;border-radius:2px;margin-left:-4px}::ng-deep .chipContainer .cross:hover{background:#f1f1f1}::ng-deep .chipContainer .chipName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:6rem}::ng-deep .chipContainer .chipName.no-width{max-width:unset}::ng-deep .chipContainer .chipName.full-width{max-width:25rem}::ng-deep .chipContainer button.countBtn{background:#1e5dd3;border-radius:1.25rem;border:none;min-width:1.5rem;height:1rem;margin:0 0 0 .5rem;padding:0 .25rem}::ng-deep .chipContainer button.countBtn.greenBg{background:#34aa44}::ng-deep .workflowLavel{background:#f1f1f1;border-radius:.125rem;color:#042e7d;min-width:1rem;height:1rem}::ng-deep .reviewSelection{border-radius:.25rem;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep .reviewSelection:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .selectButton{background:#fff;border-radius:.25rem;border:1px solid #dbdbdb;cursor:pointer;height:2.5rem;position:relative;transition:all .2s ease-in-out}::ng-deep .selectButton:hover,::ng-deep .selectButton:focus{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep button.createNewBtn{background:transparent;border-radius:0;border:none}::ng-deep .vx-form-group{display:block;position:relative;margin-bottom:20px}::ng-deep .vx-form-group:after{content:\"\";display:block;clear:both}::ng-deep .vx-form-group .select{position:relative}::ng-deep .vx-form-group .select:after{border-bottom-style:solid;border-bottom-width:1px;border-right-style:solid;border-right-width:1px;border-color:#707070;content:\"\";display:inline-block;right:12px;position:absolute;top:calc(50% - 4px);width:5px;height:5px;transform:rotate(45deg)}::ng-deep .vx-form-group .select input{cursor:pointer;padding-right:30px!important}::ng-deep .vx-form-group .select .custom-input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;outline:none;padding:3px 12px;line-height:16px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;cursor:pointer}::ng-deep .vx-form-group .select .custom-input:empty:not(:focus):before{content:attr(aria-placeholder);line-height:16px;font-size:13px;width:94%;display:block;pointer-events:none;opacity:.8}::ng-deep .vx-form-group .select .custom-input:hover{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .select .custom-input.frequency-custom-input{padding-right:108px;display:flex;align-items:center}::ng-deep .vx-form-group .select+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .select+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .select+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .select~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .select~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .select.button-sec:after{display:none}::ng-deep .vx-form-group .select.button-sec button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;position:absolute;top:12px;right:8px;padding:0;margin:0}::ng-deep .vx-form-group .select+.vx-control-panel{margin-top:8px}::ng-deep .vx-form-group .select+.selected{margin-top:8px}::ng-deep .vx-form-group .select.select{margin-top:8px}::ng-deep .vx-form-group .upload-format{border:1px solid #dbdbdb;border-radius:4px;padding:8px 12px;display:block}::ng-deep .vx-form-group .upload-format span.text{line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:block;margin-bottom:6px}::ng-deep .vx-form-group .upload-format .radio-group{display:flex}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio{display:inline-block}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;margin-left:8px}::ng-deep .vx-form-group .upload-format .radio-group app-cs-radio+app-cs-radio{margin-left:12px}::ng-deep .vx-form-group .upload-format~.upload-format{margin-top:4px}::ng-deep .vx-form-group .form-tab{display:flex;justify-content:flex-start}::ng-deep .vx-form-group .form-tab button{background:transparent;color:#161b2f;font-size:11px;line-height:16px;text-transform:uppercase;cursor:pointer;padding:8px 8px 8px 0;border:none;outline:none;font-weight:500}::ng-deep .vx-form-group .form-tab button:disabled{opacity:.5;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .form-tab button+button{padding:8px}::ng-deep .vx-form-group .form-tab button.active{color:#1e5dd3}::ng-deep .vx-form-group .tab-group{border:1px solid #dbdbdb;border-radius:4px;padding:0;display:block;position:relative;transition:all .2s ease-in-out}::ng-deep .vx-form-group .tab-group:hover{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group .tab-group .upload-file{padding:16px 62px 16px 24px;display:flex;align-items:center;justify-content:space-between}::ng-deep .vx-form-group .tab-group .upload-file .image{width:80px}::ng-deep .vx-form-group .tab-group .upload-file .browse span{display:inline-block;font-size:12px;color:#747576;line-height:16px;padding:0 4px}::ng-deep .vx-form-group .tab-group .upload-file .browse .label{font-size:11px;color:#1e5dd3;line-height:16px;font-weight:600;text-transform:uppercase;margin:0;padding:0}::ng-deep .vx-form-group .tab-group .upload-file .browse .label input{opacity:0;position:absolute;margin:0;padding:0;inset:0;cursor:pointer;width:100%}::ng-deep .vx-form-group .tab-group.active{border-color:#1e5dd3}::ng-deep .vx-form-group .tab-group.uploaded{margin-top:4px}::ng-deep .vx-form-group .tab-group.uploaded .upload-file{padding:8px 0!important;text-align:center}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .image{display:none}::ng-deep .vx-form-group .tab-group.uploaded .upload-file .browse{width:100%;text-align:center}::ng-deep .vx-form-group .tab-group+label.vx-form-group{margin-top:8px;margin-bottom:4px}::ng-deep .vx-form-group .file-list{background:#fbfbfb;border:1px solid #f1f1f1;border-radius:4px;padding:12px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;position:relative}::ng-deep .vx-form-group .file-list span.file-name{color:#747576;line-height:16px;font-size:11px;font-weight:400;cursor:pointer;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .vx-form-group .file-list .button-group{display:flex}::ng-deep .vx-form-group .file-list button{font-size:12px;color:#eb2424;cursor:pointer;display:flex;padding:0;border:none;outline:none;background:transparent}::ng-deep .vx-form-group .file-list button.edit{color:#1e5dd3}::ng-deep .vx-form-group .file-list button+button{margin-left:16px}::ng-deep .vx-form-group .file-list+.file-list{margin-top:4px}::ng-deep .vx-form-group .file-list .file-container{display:flex;justify-content:space-between;width:100%}::ng-deep .vx-form-group .file-list.policy{background:#ffffff}::ng-deep .vx-form-group .file-list cs-select{position:relative;margin-top:8px;width:100%}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group input.value{height:32px!important;font-size:13px!important}::ng-deep .vx-form-group .file-list cs-select .selection-wrap .input-group i{right:12px!important;top:12px!important}::ng-deep .vx-form-group .file-list app-line-loader{display:block;position:absolute;left:10px;right:10px;bottom:0}::ng-deep .vx-form-group label.vx-control-panel{color:#161b2f;font-size:11px;font-weight:500;line-height:16px;margin-bottom:8px;display:block;text-transform:uppercase;text-align:left}::ng-deep .vx-form-group label.vx-control-panel.custom-tag{font-size:10px}::ng-deep .vx-form-group label.vx-control-panel.vx-mt-8{margin-top:8px}::ng-deep .vx-form-group label.vx-control-panel span.required{color:#eb2424;font-size:14px;font-weight:500;position:relative;top:-2px}::ng-deep .vx-form-group label.vx-control-panel .button{background:transparent;border:none;display:inline-flex;float:right;color:#1e5dd3;text-transform:uppercase;font-weight:600;cursor:pointer;font-size:11px;padding:0;margin:0}::ng-deep .vx-form-group label.vx-control-panel app-cs-switch{float:right;display:block}::ng-deep .vx-form-group label.vx-control-panel i{margin-left:8px;font-size:12px;color:#1e5dd3;cursor:pointer;position:relative;top:1px}::ng-deep .vx-form-group label.vx-control-panel i.depreciation-icon{color:#e4b700;font-size:16px;position:relative;top:3px}::ng-deep .vx-form-group label.vx-control-panel .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .vx-form-group input[type=text],::ng-deep .vx-form-group .input{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;outline:none;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{color:#747576;font-weight:400}::ng-deep .vx-form-group input[type=text]:focus,::ng-deep .vx-form-group .input:focus,::ng-deep .vx-form-group input[type=text]:hover,::ng-deep .vx-form-group .input:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group input[type=text].error,::ng-deep .vx-form-group .input.error{border-color:#eb2424;color:#eb2424;margin-bottom:4px}::ng-deep .vx-form-group input[type=text].error:focus,::ng-deep .vx-form-group .input.error:focus{box-shadow:0 0 5px #d31e1e45}::ng-deep .vx-form-group input[type=text]:disabled,::ng-deep .vx-form-group .input:disabled{background:#f1f1f1;cursor:not-allowed;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group input[type=text]:disabled:hover,::ng-deep .vx-form-group .input:disabled:hover{border-color:#dbdbdb;box-shadow:none}::ng-deep .vx-form-group input[type=text] span.text,::ng-deep .vx-form-group .input span.text{font-size:13px;color:#747576;font-weight:400;display:block;width:100%}::ng-deep .vx-form-group input[type=text] .input-group,::ng-deep .vx-form-group .input .input-group{display:flex;align-items:center}::ng-deep .vx-form-group input[type=text] .input-group.counter,::ng-deep .vx-form-group .input .input-group.counter{min-width:96px;width:96px}::ng-deep .vx-form-group input[type=text] .input-group.counter button,::ng-deep .vx-form-group .input .input-group.counter button{height:24px;width:24px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#747576;font-size:8px;cursor:pointer;outline:none}::ng-deep .vx-form-group input[type=text] .input-group.counter input,::ng-deep .vx-form-group .input .input-group.counter input{-webkit-appearance:textfield;-moz-appearance:textfield;height:24px;width:calc(100% - 48px);border:1px solid #f1f1f1;outline:none;padding:0 6px;text-align:center}::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-inner-spin-button,::ng-deep .vx-form-group input[type=text] .input-group.counter input::-webkit-outer-spin-button,::ng-deep .vx-form-group .input .input-group.counter input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}::ng-deep .vx-form-group input[type=text]+.file-list,::ng-deep .vx-form-group .input+.file-list{margin-top:8px}::ng-deep .vx-form-group input[type=text]::placeholder,::ng-deep .vx-form-group .input::placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]:-ms-input-placeholder,::ng-deep .vx-form-group .input:-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group input[type=text]::-ms-input-placeholder,::ng-deep .vx-form-group .input::-ms-input-placeholder{font-size:13px}::ng-deep .vx-form-group .classification{height:40px;border-radius:4px;border:1px solid #dbdbdb;background:#ffffff;padding:8px 12px;display:flex;justify-content:space-between}::ng-deep .vx-form-group .classification label{margin:0 4px 0 0;width:100%;position:relative;z-index:1}::ng-deep .vx-form-group .classification label span{display:block;width:100%;height:24px;border:1px solid #f1f1f1;border-radius:2px;line-height:24px;font-size:10px;text-align:center;color:#747576;font-weight:500;position:relative;text-transform:uppercase}::ng-deep .vx-form-group .classification label span:before{height:2px;content:\"\";top:0;right:0;left:0;border-radius:2px;position:absolute;transition:all .2s ease-in-out}::ng-deep .vx-form-group .classification label input{opacity:0;position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;cursor:pointer;z-index:1}::ng-deep .vx-form-group .classification label input:checked+span{color:#fff}::ng-deep .vx-form-group .classification label input:checked+span:before{bottom:0;height:100%;z-index:-1}::ng-deep .vx-form-group .classification label.low span:before{background:#34aa44}::ng-deep .vx-form-group .classification label.low-med span:before{background:#f2bf19}::ng-deep .vx-form-group .classification label.med-high span:before{background:#f29619}::ng-deep .vx-form-group .classification label.high span:before{background:#eb2424}::ng-deep .vx-form-group .classification label:last-of-type{margin-right:0}::ng-deep .vx-form-group .input{display:flex;align-items:center}::ng-deep .vx-form-group .selected{height:40px;border-radius:4px;border:1px solid #f1f1f1;background:#fbfbfb;outline:none;padding:8px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%;display:flex;align-items:center;position:relative;justify-content:space-between}::ng-deep .vx-form-group .selected.first-field{z-index:2}::ng-deep .vx-form-group .selected .chip-container{display:flex;width:calc(100% - 60px);align-items:center}::ng-deep .vx-form-group .selected .chip-container.checkpoints{width:calc(100% - 120px)}::ng-deep .vx-form-group .selected .chip-container span.chip{background:#ffffff;border-radius:2px;box-shadow:0 0 3px #1e5dd31a;height:24px;padding:0 8px;color:#1e5dd3;font-size:12px;display:block;width:auto;max-width:100%;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:24px}::ng-deep .vx-form-group .selected .chip-container span.chip.disabled{background:#f1f1f1;box-shadow:none;color:#747576;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .selected .chip-container span.chip i{font-weight:400;margin-right:8px;cursor:pointer;font-size:10px;position:relative;top:1px}::ng-deep .vx-form-group .selected .chip-container span.chip span.step{background:#1e5dd3;border-radius:2px;color:#fff;font-size:9px;line-height:14px;padding:0 4px;font-weight:400;text-align:center;min-width:auto;margin-right:4px}::ng-deep .vx-form-group .selected .chip-container span.chip+span.chip{margin-left:4px}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question{display:flex;align-items:center;justify-content:space-between;width:100%}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.value{color:#1e5dd3;font-size:12px;font-weight:400;line-height:24px;padding:0;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:calc(100% - 80px)}::ng-deep .vx-form-group .selected .chip-container span.chip.with-question span.label{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:9px;font-weight:600;text-transform:uppercase;padding-left:4px;padding-right:4px;line-height:12px;margin-left:8px}::ng-deep .vx-form-group .selected .chip-container span.value{color:#747576;font-size:13px;line-height:20px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:calc(100% - 52px);padding:0 4px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text{color:#747576;font-size:10px;font-weight:500;padding:0 8px;width:122px;line-height:14px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first{position:relative;min-width:162px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text.first:before{background:#f1f1f1;content:\"\";position:absolute;top:0;right:0;height:calc(100% + 12px);width:1px}::ng-deep .vx-form-group .selected .chip-container span.checkpoint-point-text .no{color:#1e5dd3}::ng-deep .vx-form-group .selected .chip-container.plus span.chip{max-width:calc(50% - 35px)}::ng-deep .vx-form-group .selected .chip-container.more-one span.chip{max-width:50%}::ng-deep .vx-form-group .selected .chip-container .chip-inner{background:#fff;border-radius:2px;box-shadow:0 2px 4px #1e5dd31a;line-height:24px;padding:0 4px 0 8px;display:flex;align-items:center}::ng-deep .vx-form-group .selected .chip-container .chip-inner .chip{background:transparent;border-radius:0;box-shadow:none;height:auto;line-height:unset;padding:0;color:#747576;max-width:100px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count{border-radius:20px;height:16px;padding:0 6px;border:none;font-size:9px;line-height:16px;margin-left:4px;min-width:20px}::ng-deep .vx-form-group .selected .chip-container .chip-inner button.count.user{background:#34aa44}::ng-deep .vx-form-group .selected .chip-container .chip-inner i.cross{cursor:pointer;position:relative;top:1px;font-size:8px}::ng-deep .vx-form-group .selected button.count{background:#1e5dd3;border-radius:2px;height:24px;padding:0 8px;border:1px solid #1e5dd3;cursor:pointer;outline:none;color:#fff;font:13px;font-weight:500;line-height:20px;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit{border:none;border-radius:0;background:transparent;outline:none;cursor:pointer;display:block;font-size:11px;font-weight:600;color:#1e5dd3;text-transform:uppercase;white-space:nowrap;margin-left:8px}::ng-deep .vx-form-group .selected button.edit i{font-weight:400;font-size:8px;margin-right:4px}::ng-deep .vx-form-group .selected button.close-btn{background:transparent;border:none;padding:0;margin-left:8px;font-size:10px;color:#c7381b;display:flex;align-items:center}::ng-deep .vx-form-group .selected .workflow-label{min-width:92px;padding:4px;text-align:center;margin-left:-8px;margin-right:8px;border-right:1px solid #f1f1f1}::ng-deep .vx-form-group .selected .workflow-label p{margin:0;display:block;text-transform:uppercase}::ng-deep .vx-form-group .selected .workflow-label p.title{font-size:9px;line-height:12px;color:#161b2f;font-weight:500}::ng-deep .vx-form-group .selected .workflow-label p.description{font-size:11px;line-height:16px;color:#161b2f;font-weight:600}::ng-deep .vx-form-group .selected .workflow-label+.chip-container{width:calc(100% - 148px)}::ng-deep .vx-form-group .selected+.selected{margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .selected+app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:5px;text-transform:uppercase}::ng-deep .vx-form-group .selected+app-cs-switch.who-toggle label.cs-switch span.value{color:#747576}::ng-deep .vx-form-group .selected+app-cs-radio{margin-top:8px!important}::ng-deep .vx-form-group .selected~app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;font-weight:500;color:#707070}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group .selected~app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group .selected.readOnly{pointer-events:none}::ng-deep .vx-form-group .selected span.chip{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .vx-form-group .select-list{position:absolute;background:#ffffff;box-shadow:0 0 5px #1e5dd345;top:100%;right:0;left:0;z-index:2}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item{width:100%;padding:12px 16px}::ng-deep .vx-form-group .select-list .vx-radio-group label.vx-radio-item:hover{background:#f8f8f8}::ng-deep .vx-form-group vcomply-editor{margin-top:8px;display:block}::ng-deep .vx-form-group vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block{min-height:60px;padding:11px 15px;max-height:100px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ul li{list-style:disc}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol{padding:0 0 0 10px;margin-top:0}::ng-deep .vx-form-group vcomply-editor .editor-container .editable-block ol li{list-style:decimal}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools{z-index:1;border-top:1px solid #dbdbdb;transition:none;border-radius:0 0 3px 3px;position:static}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep .vx-form-group vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:focus-within .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor .editor-container:hover{border-color:#1e5dd3!important;box-shadow:0 3px 6px #1e5dd31a}::ng-deep .vx-form-group vcomply-editor .editor-container:hover .editor-tools{border-color:#1e5dd3!important}::ng-deep .vx-form-group vcomply-editor+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group app-cs-switch label.cs-switch span.value{font-size:11px;color:#747576;text-transform:uppercase}::ng-deep .vx-form-group app-cs-switch+app-cs-switch{margin-top:8px}::ng-deep .vx-form-group .date-time-picker{display:flex;justify-content:space-between;height:40px;border-radius:4px;border:1px solid #dbdbdb;padding:11px 0;background:#ffffff}::ng-deep .vx-form-group .date-time-picker:focus-within{border-color:#1e5dd3;box-shadow:0 0 5px #1e5dd345}::ng-deep .vx-form-group .date-time-picker .picker-group{width:50%;position:relative;display:flex;align-items:center}::ng-deep .vx-form-group .date-time-picker .picker-group:first-of-type{border-right:1px solid #dbdbdb}::ng-deep .vx-form-group .date-time-picker .picker-group:only-of-type{border:none;width:100%}::ng-deep .vx-form-group .date-time-picker .picker-group input{height:38px;background:transparent;line-height:38px;font-size:13px;color:#747576;transition:all .2s ease-in-out;width:100%;font-weight:400;border:none;padding:0 12px 0 34px;outline:none}::ng-deep .vx-form-group .date-time-picker .picker-group input:focus,::ng-deep .vx-form-group .date-time-picker .picker-group input:hover{box-shadow:none;border:none}::ng-deep .vx-form-group .date-time-picker .picker-group input::placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input:-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group input::-ms-input-placeholder{color:#999;font-size:13px}::ng-deep .vx-form-group .date-time-picker .picker-group i{display:flex;justify-content:center;align-items:center;height:16px;width:12px;position:absolute;left:12px;top:0;color:#747576;font-size:12px;pointer-events:none}::ng-deep .vx-form-group app-cs-radio.main-filed{margin-top:4px;display:block;width:100%}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item{width:100%;position:relative}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.radio{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value{font-size:11px;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0;max-width:100%;color:#707070}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item span.value i{font-size:12px;color:#1e5dd3}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item svg{position:absolute;top:8px;left:12px}::ng-deep .vx-form-group app-cs-radio.main-filed label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}::ng-deep .vx-form-group app-cs-radio.disabled{pointer-events:none;opacity:.5;filter:grayscale(1);background:#f1f1f1}::ng-deep .vx-form-group .switch-row{display:flex}::ng-deep .vx-form-group .switch-row app-cs-switch{display:block;margin-top:8px}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value{white-space:nowrap;margin-right:0;text-transform:uppercase;color:#747576!important}::ng-deep .vx-form-group .switch-row app-cs-switch label.cs-switch span.value i{display:inline-flex;font-size:11px;cursor:pointer;color:#1e5dd3;align-items:center;line-height:16px;margin:0 4px}::ng-deep .vx-form-group .switch-row app-cs-switch+app-cs-switch{margin-left:8px}::ng-deep .vx-form-group .switch-row.align-right{justify-content:flex-end}::ng-deep .vx-form-group .switch-row.align-right label.cs-switch span.value{margin-right:8px}::ng-deep .vx-form-group .risk-type-field{background:#f8f8f8;border:1px solid #dbdbdb;border-radius:4px;height:40px;display:flex;align-items:center;padding:4px;position:relative;z-index:1}::ng-deep .vx-form-group .risk-type-field .type-item{width:50%;position:relative}::ng-deep .vx-form-group .risk-type-field .type-item button{background:transparent;border:none;border-radius:0;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase;width:100%;height:32px;padding:0 12px;text-align:left}::ng-deep .vx-form-group .risk-type-field .type-item button.disabled{background:transparent!important;color:#dbdbdb!important;filter:unset!important;opacity:unset!important;pointer-events:none;-webkit-user-select:none;user-select:none}::ng-deep .vx-form-group .risk-type-field .type-item .info{color:#1e5dd3;font-size:12px;position:absolute;top:10px;right:12px;cursor:pointer}::ng-deep .vx-form-group .risk-type-field .type-item.active button{color:#1e5dd3!important}::ng-deep .vx-form-group .risk-type-field .type-item:nth-child(2).active~.background-glider{transform:translate(100%)}::ng-deep .vx-form-group .risk-type-field .background-glider{background:#fff;border-radius:4px;box-shadow:0 1px 3px #161b2f26;position:absolute;display:flex;width:208px;height:32px;z-index:-1;transition:.25s ease-out}.left{width:36px;height:36px;margin-top:26px;margin-left:-58px;margin-right:20px;display:flex;justify-content:center;align-items:center;position:relative;z-index:10;border-radius:50%}.left.deadline-completed{margin-top:18px}.left.checked{background:transparent}.left img{width:36px}.left .checkIcon{width:32px;height:32px;background:#ffffff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin-top:0}.left .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}.left .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}.right{width:100%}.right span.indicator{position:absolute;top:36px;left:-16px;font-size:12px;color:#f0b819;cursor:pointer}.form-group-row{display:flex;position:relative;transition:all .2s ease-in-out}.form-group-row.disabled{-webkit-user-select:none;user-select:none;pointer-events:none;filter:grayscale(1);z-index:2}.form-group-row.disabled .left{position:relative}.form-group-row.disabled .left:before{content:\"\";position:absolute;inset:2px 0 0 2px;background:#ffffff;opacity:.7;border-radius:50%;width:32px;height:32px}.form-group-row.disabled .right{opacity:.3}.form-group-row.active{pointer-events:none;filter:grayscale(0);z-index:2;opacity:1}.form-group-row.active .right .vx-form-group input,.form-group-row.active .right .vx-form-group .custom-input,.form-group-row.active .right .vx-form-group .selectBoxEnable{border-color:#1e5dd3;box-shadow:0 3px 6px #1e5dd31a}.form-group-row.active .right .vx-form-group .selectBoxEnable.disabled{border-color:#dbdbdb;box-shadow:none}::ng-deep .radio-group-selector app-cs-radio{margin-top:4px;display:block;width:100%}::ng-deep .radio-group-selector app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .radio-group-selector app-cs-radio label.radio-item .radio,::ng-deep .radio-group-selector app-cs-radio label.radio-item .radiomark{position:absolute!important;top:9px;left:12px}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value{font-size:11px!important;text-transform:uppercase;border:1px solid #dbdbdb;border-radius:4px;padding:8px 8px 8px 36px;width:100%;display:flex;justify-content:space-between;margin:0!important;max-width:100%!important;font-weight:500!important;color:#707070!important}::ng-deep .radio-group-selector app-cs-radio label.radio-item .value i{font-size:12px;color:#1e5dd3}::ng-deep .radio-group-selector app-cs-radio label.radio-item input:checked~span.value{background:#eefcf0;border-color:#34aa44}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}::ng-deep .wf-action-list{width:220px}::ng-deep .wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}::ng-deep .wf-action-list ul.action-item{display:block}::ng-deep .wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}::ng-deep .wf-action-list ul.action-item li button{color:#6e717e;text-align:left;text-decoration:none;cursor:pointer;background:transparent;font-size:12px;text-transform:capitalize;display:flex;width:100%;padding:7.5px 11px;border:none}::ng-deep .wf-action-list ul.action-item li button i{font-size:16px;margin-right:10px;color:#1e5dd3}::ng-deep .wf-action-list ul.action-item li button:hover{background:#f3f3f3}::ng-deep .wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.within-con{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}::ng-deep .wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}::ng-deep .wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image{display:block}::ng-deep .wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}::ng-deep .wf-action-list ul.action-item li .chip-item{color:#1e5dd3;padding:10px;display:flex;align-items:center}::ng-deep .wf-action-list ul.action-item li .chip-item i{color:#747576;margin-right:7px;font-size:10px;cursor:pointer;display:inline-flex}::ng-deep .wf-action-list ul.action-item li .chip-item span{display:block;width:auto;max-width:calc(100% - 17px);font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .wf-action-list ul.action-item li .chip-item span.chip-block{display:block;width:100%}::ng-deep .wf-action-list ul.action-item li .chip-item span.id{font-size:9px}::ng-deep .wf-action-list ul.action-item li .within{display:flex;align-items:center;justify-content:flex-start}::ng-deep .wf-action-list ul.action-item li .within .block{background:#f1f1f1;border-radius:2px;padding:0 2px;line-height:14px;font-size:9px;font-weight:500;color:#042e7d;margin-right:6px;display:block;text-transform:uppercase}::ng-deep .wf-action-list ul.action-item li .within .data{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#747576;font-size:11px;font-weight:400;line-height:17px}::ng-deep .wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}p.error-message{font-size:11px;font-weight:400;color:#eb2424;line-height:16px;margin-top:8px;margin-bottom:0}.edit-loader{position:absolute;top:-3px;left:-3px;width:46px;height:46px;transform:rotate(180deg)}.circular-loader{animation:rotate 2s linear infinite;height:100%;transform-origin:center center;width:100%;position:absolute;top:0;left:0;margin:auto}.loader-path{stroke-dasharray:150,200;stroke-dashoffset:-10;animation:dash 1.5s ease-in-out infinite;stroke-linecap:round}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35}to{stroke-dasharray:89,200;stroke-dashoffset:-124}}::ng-deep .dropdown{position:fixed;background:#ffffff;box-shadow:0 3px 6px #00000029;padding:24px 0;z-index:9;max-height:calc(100vh - 200px);overflow:auto}::ng-deep .dropdown ul.dropdown-list{padding:0 20px;margin:0;display:block}::ng-deep .dropdown ul.dropdown-list li{list-style:none}::ng-deep .dropdown ul.dropdown-list li app-cs-radio{display:flex}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item{width:100%;position:relative}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.radio{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item span.value{padding:11px 12px 11px 32px;width:100%;border:1px solid #bcbcbc;border-radius:4px;margin-left:0;max-width:100%}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item svg{position:absolute;top:12px;left:12px}::ng-deep .dropdown ul.dropdown-list li app-cs-radio label.radio-item input[type=radio]:checked~span.value{background:#e8feeb;border-color:#34aa44}::ng-deep .dropdown ul.dropdown-list li+li{margin-top:8px}app-smiley-dialog{position:relative;z-index:10}app-smiley-dialog-inline{position:absolute;top:-3px;right:0;bottom:0;z-index:999;width:520px;height:calc(100vh + 3px)}::ng-deep .vx-overlay{position:fixed;z-index:3;inset:0}dp-date-picker{width:100%;position:fixed!important;z-index:14;top:-40px;left:0}dp-date-picker input{width:100%;border:none;opacity:0;pointer-events:none}dp-date-picker input:focus{outline:none}dp-date-picker .dp-popup{width:412px;box-shadow:0 0 20px #161b2f26;background-color:#fff;border-radius:4px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both}dp-date-picker .dp-popup dp-day-calendar,dp-date-picker .dp-popup dp-month-calendar{width:100%;pointer-events:auto}dp-date-picker .dp-popup dp-day-calendar button,dp-date-picker .dp-popup dp-month-calendar button{background:transparent;border:none;outline:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right{width:40px;height:40px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:14px}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-left:hover,dp-date-picker .dp-popup dp-day-calendar button.dp-calendar-nav-right:hover,dp-date-picker .dp-popup dp-month-calendar button.dp-calendar-nav-right:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn{display:none}dp-date-picker .dp-popup dp-day-calendar button.dp-current-location-btn:before,dp-date-picker .dp-popup dp-month-calendar button.dp-current-location-btn:before{content:\"\";height:10px;width:10px;border-radius:50%;background:#000000;display:inline-flex}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week{display:flex;justify-content:space-around}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays .dp-calendar-weekday,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week .dp-calendar-weekday,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week .dp-calendar-weekday{width:52px;border-left:none;border-bottom-color:#fff;color:#747576;font-size:11px;font-weight:600;text-transform:uppercase}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button{width:40px;height:40px;border-radius:50%;display:inline-flex;justify-content:center;align-items:center}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button:hover,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button:hover,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button:hover{background-color:#f3f3f3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-selected,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-selected,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-selected{background:#1e5dd3}dp-date-picker .dp-popup dp-day-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-weekdays button.dp-current-day,dp-date-picker .dp-popup dp-day-calendar .dp-calendar-week button.dp-current-day,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-week button.dp-current-day{border:1px solid rgba(0,0,0,.38);color:#1e5dd3;background-color:#fff}dp-date-picker .dp-popup dp-day-calendar .dp-day-calendar-container,dp-date-picker .dp-popup dp-month-calendar .dp-day-calendar-container{padding:20px;border-radius:2px}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container{display:flex;margin:0 0 20px;border:none}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-nav-container .dp-nav-header button,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-nav-container .dp-nav-header button{color:#000;font-size:17px;font-weight:500;margin:0 0 0 12px;padding:0}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container{width:80px;display:flex}dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-left button,dp-date-picker .dp-popup dp-day-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button,dp-date-picker .dp-popup dp-month-calendar .dp-nav-btns-container .dp-calendar-nav-container-right button{margin:0!important}dp-date-picker .dp-popup dp-day-calendar .dp-calendar-wrapper,dp-date-picker .dp-popup dp-month-calendar .dp-calendar-wrapper{border:none}dp-date-picker .dp-open+div{position:fixed!important;inset:0!important;display:flex;justify-content:center;align-items:center;z-index:99;pointer-events:none;background:rgba(0,0,0,.3)}@keyframes slide-bottom{0%{transform:translateY(-100px)}to{transform:translateY(0)}}::ng-deep span.file{display:block;width:20px;min-width:20px;border-radius:0 0 2px 2px;border:1px solid transparent;border-color:#747576;position:relative;margin-right:5px;border-top:none;margin-top:5px;background:#ffffff}::ng-deep span.file.table{margin-right:8px;width:18px;min-width:18px}::ng-deep span.file.table i{font-size:8px}::ng-deep span.file.table .format{height:8px;font-size:7px;line-height:8px;font-weight:400}::ng-deep span.file:before{position:absolute;border-radius:0;top:-4px;right:-1px;content:\"\";height:4px;width:4px;display:block;background:linear-gradient(45deg,#747576 0%,#747576 1%,#747576 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file:after{height:4px;left:-1px;right:3px;border-top:1px solid;border-right:none;border-left:1px solid;content:\"\";top:-4px;position:absolute;border-radius:2px 0 0;background:#ffffff}::ng-deep span.file .format{height:10px;font-size:6px;text-transform:uppercase;background:transparent;font-weight:600;text-align:center;display:block;line-height:10px}::ng-deep span.file i{font-size:10px;height:10px;display:flex;align-items:center;justify-content:center;color:#dbdbdb}::ng-deep span.file.docx{width:22px!important}::ng-deep span.file.pdf,::ng-deep span.file.template{border-color:#f31c39}::ng-deep span.file.pdf:before,::ng-deep span.file.template:before{background:linear-gradient(45deg,#f31c39 0%,#f31c39 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#f31c39\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.pdf:after,::ng-deep span.file.template:after{border-color:#f31c39}::ng-deep span.file.pdf .format,::ng-deep span.file.template .format{color:#f31c39}::ng-deep span.file.xlsx,::ng-deep span.file.xls,::ng-deep span.file.css,::ng-deep span.file.scss,::ng-deep span.file.less{border-color:#34aa44}::ng-deep span.file.xlsx:before,::ng-deep span.file.xls:before,::ng-deep span.file.css:before,::ng-deep span.file.scss:before,::ng-deep span.file.less:before{background:linear-gradient(45deg,#34aa44 0%,#34aa44 1%,#34aa44 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.xlsx:after,::ng-deep span.file.xls:after,::ng-deep span.file.css:after,::ng-deep span.file.scss:after,::ng-deep span.file.less:after{border-color:#34aa44;color:#34aa44}::ng-deep span.file.xlsx .format,::ng-deep span.file.xls .format,::ng-deep span.file.css .format,::ng-deep span.file.scss .format,::ng-deep span.file.less .format{color:#34aa44}::ng-deep span.file.doc,::ng-deep span.file.docx,::ng-deep span.file.psd{border-color:#1e5dd3}::ng-deep span.file.doc:before,::ng-deep span.file.docx:before,::ng-deep span.file.psd:before{background:linear-gradient(45deg,#1e5dd3 0%,#1e5dd3 1%,#1e5dd3 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.doc:after,::ng-deep span.file.docx:after,::ng-deep span.file.psd:after{border-color:#1e5dd3}::ng-deep span.file.doc .format,::ng-deep span.file.docx .format,::ng-deep span.file.psd .format{color:#1e5dd3}::ng-deep span.file.ppt,::ng-deep span.file.ai,::ng-deep span.file.html,::ng-deep span.file.jpg,::ng-deep span.file.jpeg,::ng-deep span.file.png{border-color:#f6882f}::ng-deep span.file.ppt:before,::ng-deep span.file.ai:before,::ng-deep span.file.html:before,::ng-deep span.file.jpg:before,::ng-deep span.file.jpeg:before,::ng-deep span.file.png:before{background:linear-gradient(45deg,#f6882f 0%,#f6882f 1%,#f6882f 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.ppt:after,::ng-deep span.file.ai:after,::ng-deep span.file.html:after,::ng-deep span.file.jpg:after,::ng-deep span.file.jpeg:after,::ng-deep span.file.png:after{border-color:#f6882f}::ng-deep span.file.ppt .format,::ng-deep span.file.ai .format,::ng-deep span.file.html .format,::ng-deep span.file.jpg .format,::ng-deep span.file.jpeg .format,::ng-deep span.file.png .format{color:#f6882f}::ng-deep span.file.php{border-color:#7aa6f7}::ng-deep span.file.php:before{background:linear-gradient(45deg,#7aa6f7 0%,#7aa6f7 1%,#7aa6f7 50%,rgba(41,137,216,0) 51%,rgba(125,185,232,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\"#34aa44\",endColorstr=\"#007db9e8\",GradientType=1)}::ng-deep span.file.php:after{border-color:#7aa6f7}::ng-deep span.file.php .format{color:#7aa6f7}::ng-deep ngx-material-timepicker-container .timepicker-backdrop-overlay{background-color:#0000000d!important;z-index:9999999999!important}::ng-deep ngx-material-timepicker-container .timepicker-overlay{z-index:9999999999!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker{width:232px!important;border-radius:2px!important;box-shadow:0 4px 30px #161b2f26!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header{background-color:#fff!important;padding:0!important;border-radius:2px 2px 0 0}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container{display:block!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time{color:#000!important;width:150px!important;margin:0 auto;line-height:60px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control{font-size:40px;background-color:transparent!important;color:#000!important;font-weight:600;text-align:right;caret-color:transparent;outline:none;font-family:Poppins;line-height:56px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:focus,::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control .timepicker-dial__control:hover{background-color:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time ngx-material-timepicker-dial-control:last-of-type .timepicker-dial__control{text-align:left}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__time span{padding:0 8px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period{display:flex!important;width:182px;margin:0 auto!important;background:#f1f1f1;padding:4px 10px;border-radius:20px;position:relative}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period:before{background:#f1f1f1;content:\"\";position:absolute;top:15px;left:-25px;width:calc(100% + 50px);height:2px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period{flex-direction:unset!important;position:relative;z-index:1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:after{content:\"\";position:absolute;right:-12px;top:0;border-left:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period:before{content:\"\";position:absolute;left:-18px;top:0;border-right:solid 14px #f1f1f1;border-bottom:solid 12px transparent;border-top:solid 12px transparent;z-index:-1}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button{font-size:11px;background-color:transparent;padding:0;border-radius:20px;color:#747576;font-weight:600;font-family:Poppins;width:84px;height:24px}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button.timepicker-dial__item_active{background:#fff!important;color:#1e5dd3!important;box-shadow:0 1px 2px #dbdbdb}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__header .timepicker-dial__container .timepicker-dial__period .timepicker-period button+button{margin-left:0!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face{width:200px!important;height:200px!important;padding:10px!important;background:transparent!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer{height:92px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span{color:#000}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number--outer span.active{color:#fff}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand{height:80px!important;top:calc(50% - 80px)!important;background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__number>span.active{background-color:#1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .clock-face .clock-face__clock-hand_minute:before{border:4px solid #1e5dd3!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions{display:flex!important;padding:10px 0 0!important;background:#fff!important;justify-content:space-around!important;border-radius:0 0 2px 2px!important;overflow:hidden}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div:first-child ngx-material-timepicker-button button.timepicker-button{background:#f8f8f8;color:#1e5dd3}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button{line-height:28px!important;width:100%;background:#1e5dd3;color:#fff;border-radius:0!important;height:32px!important;width:116px!important}::ng-deep ngx-material-timepicker-container ngx-material-timepicker-content .timepicker .timepicker__main-content .timepicker__actions div ngx-material-timepicker-button button.timepicker-button span{font-weight:500!important;font-size:11px;font-family:Poppins}::ng-deep vcomply-editor{display:block}::ng-deep vcomply-editor .editor-container{border-radius:4px;border:1px solid #dbdbdb;transition:all .2s ease-in-out}::ng-deep vcomply-editor .editor-container:hover,::ng-deep vcomply-editor .editor-container:focus-within{border:1px solid #1e5dd3;box-shadow:0 3px 6px #1e5dd31a}::ng-deep vcomply-editor .editor-container mention-list ul li a{font-size:16px!important}::ng-deep vcomply-editor .editor-container .editable-block{background:#fff;min-height:60px;padding:8px 12px;line-height:20px;font-size:13px;color:#747576;font-weight:400;transition:all .2s ease-in-out;width:100%}::ng-deep vcomply-editor .editor-container .editable-block:before{color:#747576!important}::ng-deep vcomply-editor .editor-container .editor-tools{border-top:1px solid #dbdbdb;border-radius:0 0 3px 3px}::ng-deep vcomply-editor .editor-container .editor-tools:hover{border-color:#1e5dd3}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button{height:22px!important;width:22px!important;padding:0 5px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button svg{height:22px;width:12px}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col button.submit{width:80px!important;line-height:22px;justify-content:center}::ng-deep vcomply-editor .editor-container .editor-tools app-editor-menu .editor-menu .col .popover.small ul.option-list li button{width:100%!important;height:auto!important}::ng-deep marx-modal .popup-modal-background{background-color:#161b2fcc!important}::ng-deep .within-box{background:#f1f1f1;border-radius:.125rem;color:#042e7d}::ng-deep .within-value{overflow:hidden;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;word-break:break-word}\n"] }]
1004
989
  }], ctorParameters: function () { return [{ type: i1.LogIssueService }, { type: i2.AuthService }, { type: i3.UiKitService }, { type: i4.SnackBarService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { openedFrom: [{
1005
990
  type: Input
1006
991
  }], issueId: [{
@@ -1029,4 +1014,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1029
1014
  type: ViewChild,
1030
1015
  args: ['datePicker']
1031
1016
  }] } });
1032
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuLWlzc3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR25DLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPbkMsTUFBTSxPQUFPLG1CQUFtQjtJQTBMOUIsWUFDVSxVQUEyQixFQUMzQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixRQUF5QixFQUN6QixrQkFBcUM7UUFKckMsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQTVMdEMsc0JBQWlCLEdBQUc7WUFDM0IsNEJBQTRCO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixJQUFJLEVBQUUsSUFBSTtZQUNWLHNCQUFzQixFQUFFLEVBQUU7U0FDM0IsQ0FBQztRQUNPLGlCQUFZLEdBQUc7WUFDdEIsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsSUFBSSxFQUFFLElB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SUFDSCxDQUFDOztnSEFyb0NVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHNqQkN6QmhDLDZ2aERBNnJCQTsyRkRwcUJhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxrQkFBa0I7eU5BS25CLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFPRyxZQUFZO3NCQUFwQixLQUFLO2dCQU1HLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUVrQixVQUFVO3NCQUFsQyxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ0lzc3VlU2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL2xvZy1pc3N1ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBFZGl0b3JDb25maWcgfSBmcm9tICd2Y29tcGx5LWVkaXRvcic7XHJcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICduZzItZGF0ZS1waWNrZXInO1xyXG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBVaUtpdFNlcnZpY2UgfSBmcm9tICcuLi93b3JrZmxvdy1zZXJ2aWNlcy91aS1raXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFNuYWNrQmFyU2VydmljZSB9IGZyb20gJy4uL3VpLWtpdC9zbmFjay1iYXIvc25hY2stYmFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xyXG5pbXBvcnQgeyBJc3N1ZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL2lzc3VlLWRhdGEnO1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1sb2ctYW4taXNzdWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9sb2ctYW4taXNzdWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQubGVzcycsICcuLi9mb3Jtcy5sZXNzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dBbklzc3VlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIEBJbnB1dCgpIG9wZW5lZEZyb20hOiBhbnk7XHJcbiAgQElucHV0KCkgaXNzdWVJZCE6IGFueTtcclxuICBASW5wdXQoKSByZXBvbnNpYmlsaXR5RGF0YSA9IHtcclxuICAgIC8vIG9ubHkgdXNlZCBieSBsb2cgYW4gaXNzdWVcclxuICAgIHJlc3BvbnNpYmlsaXR5SWQ6IG51bGwsXHJcbiAgICByZXNwb25zaWJpbGl0eU5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICAgIHJlc3BvbnNpYmlsaXR5T2JqZWN0SWQ6ICcnLFxyXG4gIH07XHJcbiAgQElucHV0KCkgaXNzdWVEZXRhaWxzID0ge1xyXG4gICAgYXVkaXRQbGFuSWQ6IG51bGwsXHJcbiAgICBhdWRpdFBsYW5OYW1lOiAnJyxcclxuICAgIHJjSWQ6IG51bGwsXHJcbiAgICBhdWRpdE9iaklkOiBudWxsLFxyXG4gIH07XHJcbiAgQElucHV0KCkgbW9kZSA9ICdDUkVBVEUnO1xyXG4gIEBJbnB1dCgpIGNvbmZpZyE6IElzc3VlQ29uZmlndXJhdGlvbjtcclxuICBASW5wdXQoKSByZXNwb25zaWJpbGl0aWVzRGF0YTogYW55O1xyXG4gIEBPdXRwdXQoKSBwaWNrZXJDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwb3B1bGF0ZU9wdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgY2xvc2VXb3JrZmxvdyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgbW9kZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZGlzY29ubmVjdFJlZnJlc2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgY3VycmVudFVzZXIhOiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXIhOiBEYXRlUGlja2VyQ29tcG9uZW50O1xyXG4gIHNjcm9sbFRvQm90dG9tID0gZmFsc2U7XHJcbiAgZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICBzaG93RGF0ZUVycm9yID0gZmFsc2U7XHJcbiAgc2VsZWN0ZWREYXRlOiBhbnk7XHJcbiAgc2hvd1NtaWxleSA9IGZhbHNlO1xyXG4gIGxvYWRlciA9IGZhbHNlO1xyXG4gIHNtaWxleU1lc3NhZ2UgPSBgVGhlIGlzc3VlIGhhcyBiZWVuIHJlcG9ydGVkLmA7XHJcbiAgaXNzdWVEYXRhITogYW55O1xyXG4gIGlzUmlza0NvbnRyb2xMb2FkaW5nID0gZmFsc2U7XHJcbiAgYWN0aW9uQnV0dG9ucyA9IFtcclxuICAgIHsgYnV0dG9uVGV4dDogJ1JlcG9ydCBNb3JlIElzc3VlcycsIGNsYXNzOiAnd2hpdGUtYnRuJywgaWQ6ICdhZGRNb3JlJyB9LFxyXG4gICAgeyBidXR0b25UZXh0OiAnVmlldyBJc3N1ZScsIGNsYXNzOiAnYmx1ZS1idG4nLCBpZDogJ3ZpZXdJc3N1ZScgfSxcclxuICBdO1xyXG4gIGNyZWF0ZWREYXRhITogYW55O1xyXG4gIGRlc2NyaXB0aW9uOiBFZGl0b3JDb25maWcgPSB7XHJcbiAgICAvLyBtb2RlOiAncHJpbWUnLFxyXG4gICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgbGluazogdHJ1ZSxcclxuICAgIHBsYWNlaG9sZGVyOiAnRGVzY3JpcHRpb24nLFxyXG4gIH07XHJcblxyXG4gIGRhdGVDb25maWcgPSB7XHJcbiAgICBkaXNhYmxlS2V5cHJlc3M6IHRydWUsXHJcbiAgICBmb3JtYXQ6ICdERCBNTU0gWVlZWScsXHJcbiAgICB1blNlbGVjdE9uQ2xpY2s6IHRydWUsXHJcbiAgICBvcGVuT25DbGljazogZmFsc2UsXHJcbiAgICBvcGVuT25Gb2N1czogZmFsc2UsXHJcbiAgICBtaW46IG5ldyBEYXRlKCkuZ2V0RGF0ZSgpLnRvU3RyaW5nKCksXHJcbiAgfTtcclxuICBsaXN0RGF0YTogYW55ID0ge1xyXG4gICAgaXNzdWVUeXBlTGlzdDogW10sXHJcbiAgICB1c2VyTGlzdDogW10sXHJcbiAgICBjYXRlZ29yeUxpc3Q6IFtdLFxyXG4gICAgcmNMaXN0OiBbXSxcclxuICAgIGxpbmthZ2VMaXN0OiBbXSxcclxuICB9O1xyXG5cclxuICBnZXQgbWVzc2FnZSgpIHtcclxuICAgIHJldHVybiB0aGlzLm1vZGUgPT09ICdFRElUJ1xyXG4gICAgICA/ICcgVGhlIElzc3VlIGhhcyBiZWVuIHVwZGF0ZWQuJ1xyXG4gICAgICA6IHRoaXMuc21pbGV5TWVzc2FnZTtcclxuICB9XHJcblxyXG4gIGxvZ0lzc3VlRm9ybTogYW55ID0ge1xyXG4gICAgaXNzdWVOYW1lOiAnJyxcclxuICAgIGV2aWRlbmNlUmVxdWlyZWQ6IDAsXHJcbiAgICBpc3N1ZURlc2NyaXB0aW9uOiAnJyxcclxuICAgIGlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM6IFtdLFxyXG4gICAgaXNzdWVDYXRlZ29yeTogW10sXHJcbiAgICBpc3N1ZUN1c3RvbVRhZzogW10sXHJcbiAgICBpc3N1ZVJDOiBbXSxcclxuICAgIGlzc3VlVHlwZTogJ2lzc3VlJyxcclxuICAgIGlzQXNzaWduVG9NeXNlbGY6IGZhbHNlLFxyXG4gICAgZW50cnVzdFRvOiBbXSxcclxuICAgIGlzc3VlRHVlRGF0ZTogJycsXHJcbiAgICBpc3N1ZUR1ZVRpbWU6ICcxMTo1OSBwbScsXHJcbiAgICBleGNlcHRpb25UeXBlOiAxLFxyXG4gICAgaXNzdWVSaXNrUmF0aW5nOiAxLFxyXG4gICAgaXNzdWVQcmlvcml0eTogMSxcclxuICAgIGlzc3VlUmVjb21tZW5kYXRpb246ICcnLFxyXG4gICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IFtdLFxyXG4gICAgaXNzdWVBc3NvY2lhdGVkUmlzazogJycsXHJcbiAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICBpc3N1ZUNDVXNlcnM6IFtdLFxyXG4gICAgZmFpbHVyZUNDVXNlcnM6IFtdLFxyXG4gICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgbGlua2FnZVR5cGU6ICdSSVNLJyxcclxuICB9O1xyXG4gIEF0dGFjaG1lbnRUcmFjazogYW55ID0gW1tdLCBbXSwgW11dO1xyXG4gIGFkZGl0aW9uYWxPcHRpb25TdGF0dXM6IGFueSA9IHtcclxuICAgIEVYQ0VQVElPTl9UWVBFOiBmYWxzZSxcclxuICAgIEVWSURFTkNFOiBmYWxzZSxcclxuICAgIFBSSU9SSVRZOiBmYWxzZSxcclxuICAgIElTU1VFX1RZUEU6IGZhbHNlLFxyXG4gICAgQVNTT0NJQVRFRF9SSVNLUzogZmFsc2UsXHJcbiAgICBPVkVSU0lHSFQ6IGZhbHNlLFxyXG4gIH07XHJcbiAgcmlza0NsYXNzaWZpY2F0aW9uID0gW1xyXG4gICAgeyBuYW1lOiAnTE9XJywgdmFsdWU6IDEsIGNsYXNzOiAnbG93JyB9LFxyXG4gICAgeyBuYW1lOiAnTE9XLU1lZGl1bScsIHZhbHVlOiAyLCBjbGFzczogJ2xvdy1tZWQnIH0sXHJcbiAgICB7IG5hbWU6ICdNZWRpdW0tSGlnaCcsIHZhbHVlOiAzLCBjbGFzczogJ21lZC1oaWdoJyB9LFxyXG4gICAgeyBuYW1lOiAnSGlnaCcsIHZhbHVlOiA0LCBjbGFzczogJ2hpZ2gnIH0sXHJcbiAgXTtcclxuICByaXNrUHJvcml0eSA9IFtcclxuICAgIHsgbmFtZTogJ0xPVycsIHZhbHVlOiAxLCBjbGFzczogJ2xvdycgfSxcclxuICAgIHsgbmFtZTogJ01FRElVTScsIHZhbHVlOiAyLCBjbGFzczogJ2xvdy1tZWQnIH0sXHJcbiAgICB7IG5hbWU6ICdISUdIJywgdmFsdWU6IDMsIGNsYXNzOiAnaGlnaCcgfSxcclxuICBdO1xyXG5cclxuICBzaWRlU2VsZWN0b3JFbGVtZW50czogYW55ID0gW1xyXG4gICAgJ0lTU1VFX0NBVEVHT1JZJyxcclxuICAgICdJU1NVRV9SQycsXHJcbiAgICAnSVNTVUVfV0hPJyxcclxuICAgICdJU1NVRV9UWVBFJyxcclxuICAgICdJU1NVRV9DQycsXHJcbiAgICAnSVNTVUVfRkNDJyxcclxuICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gIF07XHJcbiAgc2VsZWN0b3JDb25maWcgPSB7XHJcbiAgICBJU1NVRV9DQVRHT1JZOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgSXNzdWUgQ2F0ZWdvcnknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ0NhdGVnb3J5IHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggSXNzdWUgQ2F0ZWdvcnknLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gQ2F0ZWdvcmllcyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfUkM6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1Jlc3BvbnNpYmlsdHkgY2VudGVyIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX1dITzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IFVzZXInLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1VzZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBVc2VyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFVzZXJzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9UWVBFOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgSXNzdWUgVHlwZScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnSXNzdWUgVHlwZSBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIElzc3VlIFR5cGUnLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gSXNzdWUgVHlwZXMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX0NDOiB7XHJcbiAgICAgIHBhbmVsVGl0bGU6ICdTZWxlY3QgdXNlcihzKScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnVXNlciBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFVzZXInLFxyXG4gICAgICBzZWFyY2hFbmFibGVkOiB0cnVlLFxyXG4gICAgICBzZWxlY3RBbGxFbmFibGVkOiB0cnVlLFxyXG4gICAgICBub0RhdGFUZXh0OiAnTm8gVXNlcnMgRm91bmQnLFxyXG4gICAgfSxcclxuICAgIElTU1VFX0ZDQzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IHVzZXIocyknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1VzZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBVc2VyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFVzZXJzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgZmllbGRzV2l0aEVycm9yOiBhbnkgPSBbXTtcclxuICAvLyBoaWRkZW5MaXN0OiBhbnlbXSA9IFtdO1xyXG5cclxuICBhY3RpdmVGaWVsZCA9ICcnO1xyXG4gIGFjdGl2ZVNlbGVjdG9yID0gJyc7XHJcbiAgbGlzdExvYWRpbmdTdGF0dXM6IGFueSA9IFtdO1xyXG4gIGN1cnJlbnRUaW1lID0gJyc7XHJcbiAgLyoqXHJcbiAgICogaXNSQ1ByZVNlbGVjdGVkLGlzUkNWaXNpYmxlIGFyZSB2YXJpYWJsZSB1c2VkIHRvIHNldCB0aGUgdmlzaWJpbGl0eSBvZiByYyBmaWVsZCBhbmQgZWRpdCBidXR0b24gaW4gY2VydGFpbiBjb25kaXRpb25zXHJcbiAgICovXHJcbiAgaXNSQ1ByZVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgaXNSQ1Zpc2libGUgPSB0cnVlO1xyXG4gIGlzUkNNYW5kYXRvcnkgPSBmYWxzZTtcclxuICBkYXRhRm9yRWRpdCE6IGFueTtcclxuICBpc1Jpc2tDb250cm9sVmlzaWJsZSA9IGZhbHNlO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBsb2dTZXJ2aWNlOiBMb2dJc3N1ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgdWlLaXRTZXJ2aWNlOiBVaUtpdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNuYWNrQmFyOiBTbmFja0JhclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNoYW5nZURldGVyY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICApIHt9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gICAgdGhpcy5zZXRVc2VyRGV0YWlscygpO1xyXG4gICAgdGhpcy5mZXRjaElzc3VlVHlwZXMoKTtcclxuICAgIHRoaXMuZmV0Y2hVc2VyTGlzdCgpO1xyXG4gICAgdGhpcy5mZXRjaENhdGVnb3J5TGlzdCgpO1xyXG4gICAgdGhpcy5mZXRjaFJDTGlzdCgpO1xyXG4gICAgLy8gdGhpcy5hdXRoU2VydmljZS5nZXRPcmdhbml6YXRpb25EZXRhaWxzKCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgLy8gICBpZiAoIXJlcy5lbmFibGVfcmlza2NsYXNzKSB7XHJcbiAgICAvLyAgICAgdGhpcy5oaWRkZW5MaXN0LnB1c2goJ1JJU0tfQ0xBU1NJRklDQVRJT04nKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gfSk7XHJcbiAgICAvLyBjb21tZW50ZWQgdGhlIGFib3ZlIEFQSSBzaW5jZSBSaXNrIENsYXNzaWZpY2F0aW9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgYnkgZGVmYXVsdCBpbiBsb2cgYW4gaXNzdWUgZm9ybVxyXG4gIH1cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmNoYW5nZURldGVyY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB0aGlzLmZldGNoQ29udHJvbFJpc2tzKCk7XHJcbiAgICB0aGlzLmRlY2lkZVJDbWFuZGF0b3J5KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcclxuICAgIHRoaXMuY3VycmVudFRpbWUgPSB0aGlzLmdldEN1cnJlbnRUaW1lKCk7XHJcbiAgfVxyXG5cclxuICBkZWNpZGVSQ21hbmRhdG9yeSgpIHtcclxuICAgIHRoaXMuaXNSQ01hbmRhdG9yeSA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0Q3VycmVudFRpbWUoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gIH1cclxuICBnZXRDdXJyZW50VGltZSgpIHtcclxuICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRvZGF5LmdldERhdGUoKSA9PT0gbmV3IERhdGUodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlKS5nZXREYXRlKClcclxuICAgICkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdG9kYXkuZ2V0SG91cnMoKSA8IDEyICYmXHJcbiAgICAgICAgdG9kYXkuZ2V0TWludXRlcygpIDwgNTkgJiZcclxuICAgICAgICB0b2RheS5nZXRTZWNvbmRzKCkgPCA1OVxyXG4gICAgICApIHtcclxuICAgICAgICByZXR1cm4gYCR7XHJcbiAgICAgICAgICB0b2RheS5nZXRIb3VycygpIDwgMTAgPyAnMCcgKyB0b2RheS5nZXRIb3VycygpIDogdG9kYXkuZ2V0SG91cnMoKVxyXG4gICAgICAgIH06JHtcclxuICAgICAgICAgIHRvZGF5LmdldE1pbnV0ZXMoKSA8IDEwXHJcbiAgICAgICAgICAgID8gJzAnICsgdG9kYXkuZ2V0TWludXRlcygpXHJcbiAgICAgICAgICAgIDogdG9kYXkuZ2V0TWludXRlcygpXHJcbiAgICAgICAgfSBhbWA7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIGAke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0SG91cnMoKSAtIDEyIDwgMTBcclxuICAgICAgICAgICAgPyAnMCcgKyAodG9kYXkuZ2V0SG91cnMoKSAtIDEyKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldEhvdXJzKCkgLSAxMlxyXG4gICAgICAgIH06JHtcclxuICAgICAgICAgIHRvZGF5LmdldE1pbnV0ZXMoKSA8IDEwXHJcbiAgICAgICAgICAgID8gJzAnICsgdG9kYXkuZ2V0TWludXRlcygpXHJcbiAgICAgICAgICAgIDogdG9kYXkuZ2V0TWludXRlcygpXHJcbiAgICAgICAgfSBwbWA7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnMDA6MDAgYW0nO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRVc2VyRGV0YWlscygpIHtcclxuICAgIHRoaXMuY3VycmVudFVzZXIgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldFVzZXJEZXRhaWxzKCkudXNlcjtcclxuICB9XHJcbiAgZmV0Y2hJc3N1ZVR5cGVzKCkge1xyXG4gICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRJc3N1ZVR5cGVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzBdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmlzc3VlVHlwZUxpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzBdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBmZXRjaFVzZXJMaXN0KCkge1xyXG4gICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1sxXSA9IGZhbHNlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldE9yZ1Blb3BsZSgpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1sxXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmZXRjaENhdGVnb3J5TGlzdCgpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMl0gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRJc3N1ZUNhdGVnb3JpZXMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMl0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0ID0gcmVzPy5kYXRhO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0ID0gdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgKGU6IGFueSkgPT4gZT8uY2F0ZWdvcnlfbmFtZSAhPT0gJ1VuY2F0ZWdvcml6ZWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMl0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmZXRjaFJDTGlzdCgpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbM10gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRSZXNwb25zaWJpbGl0eUNlbnRlckxpc3QoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbM10gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEucmNMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgICAgdGhpcy5zZXRTZWxlY3RlZFJDKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1szXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNldFNlbGVjdGVkUkMoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucmVwb25zaWJpbGl0eURhdGE/LnJjSWQgJiZcclxuICAgICAgdGhpcy5vcGVuZWRGcm9tID09PSAnQ09NUExJQU5DRV9XT1JLUk9PTSdcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5yZXBvbnNpYmlsaXR5RGF0YS5yY0lkXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLnJjTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+IGUucmNfaWQgPT09IHRoaXMucmVwb25zaWJpbGl0eURhdGEucmNJZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW107XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZCAmJlxyXG4gICAgICBbXHJcbiAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsXHJcbiAgICAgICAgJ0VYRUNVVEVfQVVESVRfUExBTicsXHJcbiAgICAgIF0uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMgPSB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YS5yY0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAoZTogYW55KSA9PiBlLnJjX2lkID09PSB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZFxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIDogW107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgISh0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkIHx8IHRoaXMuaXNzdWVEZXRhaWxzPy5yY0lkKSAmJlxyXG4gICAgICBbXHJcbiAgICAgICAgJ0NPTVBMSUFOQ0VfV09SS1JPT00nLFxyXG4gICAgICAgICdBVURJVF9XT1JLUk9PTScsXHJcbiAgICAgICAgJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLFxyXG4gICAgICAgICdFWEVDVVRFX0FVRElUX1BMQU4nLFxyXG4gICAgICBdLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLmlzUkNWaXNpYmxlID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUkNWaXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZldGNoQ29udHJvbFJpc2tzKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICBbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCAnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMoXHJcbiAgICAgICAgdGhpcy5vcGVuZWRGcm9tXHJcbiAgICAgIClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmdldExpbmthZ2UoXHJcbiAgICAgICAgdGhpcy5pc3N1ZURldGFpbHM/LmF1ZGl0T2JqSWQsXHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2FnZVR5cGVcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldExpbmthZ2UoYXVkaXRJZDogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaXNSaXNrQ29udHJvbExvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmdldENvbnRyb2xSaXNrKGF1ZGl0SWQsIHR5cGUpPy5zdWJzY3JpYmUoXHJcbiAgICAgIChkYXRhOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0ID0gWy4uLnRoaXMubGlzdERhdGEubGlua2FnZUxpc3QsIC4uLmRhdGFdO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEubGlua2FnZUxpc3QgPSB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LmZpbHRlcihcclxuICAgICAgICAgICh0aGluZzogYW55LCBpbmRleDogYW55LCBzZWxmOiBhbnkpID0+XHJcbiAgICAgICAgICAgIGluZGV4ID09PVxyXG4gICAgICAgICAgICBzZWxmLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAodDogYW55KSA9PlxyXG4gICAgICAgICAgICAgICAgdC5pdGVtSWQgPT09IHRoaW5nLml0ZW1JZCAmJiB0Lml0ZW1UeXBlID09PSB0aGluZy5pdGVtVHlwZVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmlzUmlza0NvbnRyb2xMb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc1Jpc2tDb250cm9sTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBUaGlzIGZ1bmN0aW9qIGNoZWNrIHdlYXRoZXIgYWxsIHRoZSByZXF1aXJlZCBsaXN0cyBhcmUgbG9hZGVkXHJcbiAgICogSWYgbG9hZGVkIGhpZGVzIHRoZSBsb2FkZXIgb3RoZXJ3aXNlIHNob3dzIHRoZSBsb2FkZXIuXHJcbiAgICovXHJcbiAgY2hlY2tBbGxMaXN0TG9hZGVkKCkge1xyXG4gICAgaWYgKHRoaXMubGlzdExvYWRpbmdTdGF0dXMuaW5jbHVkZXMoZmFsc2UpKSB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgICAgdGhpcy5mZXRjaElzc3VlRGV0YWlscygpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFJlbW92ZXMgZXJyb3IgZnJvbSB0aGUgZmllbHMgd2l0aCBlcnJvciB0byByZW1vdmUgdGhlIGVycm9yIG1lc3NhZyBmcm9tIHRoZSBVSVxyXG4gICAqIEBwYXJhbSBlcnJvcktleSBlcnJvciBJZGVudGlmaWVyIHVzZWQgdG8gc2hvdyBlcnJvciBpbiBzcGVjaWZpYyBmaWVsZHMuXHJcbiAgICovXHJcbiAgcmVtb3ZlRXJyb3IoZXJyb3JLZXk6IHN0cmluZykge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZpZWxkc1dpdGhFcnJvci5pbmRleE9mKGVycm9yS2V5KTtcclxuICAgIGlmIChpbmRleCA+IC0xKSB7XHJcbiAgICAgIHRoaXMuZmllbGRzV2l0aEVycm9yLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG9wZW5EYXRlUGlja2VyKCkge1xyXG4gICAgdGhpcy5kYXRlUGlja2VyLmFwaS5vcGVuKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gdHJ1ZTtcclxuICAgIHRoaXMuc2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfREFURV9USU1FJywgJ0lTU1VFX0RBVEVfVElNRScpO1xyXG4gIH1cclxuICBjbG9zZURhdGVQaWNrZXIoZXZ0OiBhbnkpIHtcclxuICAgIGlmICghZXZ0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmIChldnQ/LmRhdGU/Ll9kKSB7XHJcbiAgICAgIGxldCBtb250aEFycmF5ID0gW1xyXG4gICAgICAgICdKYW4nLFxyXG4gICAgICAgICdGZWInLFxyXG4gICAgICAgICdNYXInLFxyXG4gICAgICAgICdBcHInLFxyXG4gICAgICAgICdKdW4nLFxyXG4gICAgICAgICdKdWwnLFxyXG4gICAgICAgICdBdWcnLFxyXG4gICAgICAgICdTZXAnLFxyXG4gICAgICAgICdPY3QnLFxyXG4gICAgICAgICdOb3YnLFxyXG4gICAgICAgICdEZWMnLFxyXG4gICAgICBdO1xyXG4gICAgICBjb25zdCBkYXRlVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/Ll9kKS5nZXREYXRlKCk7XHJcbiAgICAgIGNvbnN0IG1vbnRoVmFsdWUgPSBtb250aEFycmF5W25ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldE1vbnRoKCldO1xyXG4gICAgICBjb25zdCB5ZWFyVmFsdWUgPSBuZXcgRGF0ZShldnQ/LmRhdGU/Ll9kKS5nZXRGdWxsWWVhcigpO1xyXG4gICAgICBjb25zdCBkYXRlU3RyID0gYCR7ZGF0ZVZhbHVlfSAke21vbnRoVmFsdWV9ICR7eWVhclZhbHVlfWA7XHJcbiAgICAgIGlmIChldnQ/LmRhdGU/Ll9kICE9PSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGU/Ll9kKSB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lID0gJzExOjU5IFBNJztcclxuICAgICAgICB0aGlzLnNldEN1cnJlbnRUaW1lKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChldnQ/LmRhdGU/Ll9kKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSA9IGV2dD8uZGF0ZT8uX2Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVQaWNrZXIuYXBpLmNsb3NlKCk7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXJPdmVybGF5ID0gZmFsc2U7XHJcbiAgICB0aGlzLnNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJycsICcnKTtcclxuICB9XHJcblxyXG4gIHNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoYWN0aXZlRmllbGQ6IHN0cmluZywgYWN0aXZlU2VsZWN0b3I/OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuYWN0aXZlRmllbGQgPSBhY3RpdmVGaWVsZDtcclxuICAgIGFjdGl2ZVNlbGVjdG9yXHJcbiAgICAgID8gKHRoaXMuYWN0aXZlU2VsZWN0b3IgPSBhY3RpdmVTZWxlY3RvcilcclxuICAgICAgOiAodGhpcy5hY3RpdmVTZWxlY3RvciA9ICcnKTtcclxuICAgIGNvbnN0IHNsaWRlclR5cGUgPSBbXHJcbiAgICAgICdJU1NVRV9SQycsXHJcbiAgICAgICdJU1NVRV9DQVRFR09SWScsXHJcbiAgICAgICdJU1NVRV9UWVBFJyxcclxuICAgICAgJ0lTU1VFX0NDJyxcclxuICAgICAgJ0lTU1VFX0ZDQycsXHJcbiAgICAgICdJU1NVRV9XSE8nLFxyXG4gICAgICAnSVNTVUVfQ09OVFJPTF9SSVNLJyxcclxuICAgIF07XHJcbiAgICBpZiAoc2xpZGVyVHlwZS5pbmNsdWRlcyhhY3RpdmVGaWVsZCkpIHtcclxuICAgICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQodHJ1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWVsZERlc2VsZWN0b3IodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJyc7XHJcbiAgICB0aGlzLmFjdGl2ZUZpZWxkID0gJyc7XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RvckFjdGlvbihldnQ6IGFueSwgdHlwZTogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfQ0FURUdPUlknOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeSA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS5jYXRlZ29yeUxpc3QsXHJcbiAgICAgICAgICAnY2F0ZWdvcnlfaWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBpZiAoZXZ0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKCdpc3N1ZUNhdGVnb3J5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY3VzdG9tX3RhZ3M/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgY29uc3QgdGFnOiBhbnkgPSBbXTtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jdXN0b21fdGFncy5mb3JFYWNoKFxyXG4gICAgICAgICAgICAoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgdGFnLnB1c2goeyBuYW1lOiBlbGVtZW50LCB2YWx1ZTogJycgfSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyA9IHRhZztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWcgPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgLy9bXCJpc3N1ZU5hbWVcIiwgXCJpc3N1ZUNhdGVnb3J5XCIsIFwiaXNzdWVSQ1wiLCBcImVudHJ1c3RUb1wiLCBcImlzc3VlRHVlRGF0ZVwiLCBcImlzc3VlUmVjb21tZW5kYXRpb25cIl1cclxuICAgICAgY2FzZSAnSVNTVUVfUkMnOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS5yY0xpc3QsXHJcbiAgICAgICAgICAncmNfaWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBpZiAoZXZ0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKCdpc3N1ZVJDJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1dITyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8gPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAnZW1wbG95ZWVfaWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG9bMF0/Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IHRydWU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzQXNzaWduVG9NeXNlbGYgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgaWYgKGV2dD8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVFcnJvcignZW50cnVzdFRvJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1RZUEUnOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmlzc3VlVHlwZUxpc3QsXHJcbiAgICAgICAgICAnaXNzdWVfaWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9DQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnMgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAnZW1wbG95ZWVfZW1haWwnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9GQ0MnOiB7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnMgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAnZW1wbG95ZWVfZW1haWwnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG5cclxuICAgICAgY2FzZSAnSVNTVUVfQ09OVFJPTF9SSVNLJzpcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rZWRDb250cm9sUmlzayA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCxcclxuICAgICAgICAgICdpdGVtSWQnXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5saW5rYWdlVHlwZSA9XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1UeXBlO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5waWNrZXJDaGFuZ2VkLmVtaXQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlSXRlbSh0eXBlOiBhbnksIGVsZW1lbnQ6IGFueSkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NBVEVHT1JZJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnkuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5jYXRlZ29yeV9pZCA9PT0gZWxlbWVudC5jYXRlZ29yeV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ2F0ZWdvcnkuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1JDJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5yY19pZCA9PT0gZWxlbWVudC5yY19pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1dITyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8uZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5lbXBsb3llZV9pZCA9PT0gZWxlbWVudC5lbXBsb3llZV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUby5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IGZhbHNlO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX1RZUEUnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uaXNzdWVfaWQgPT09IGVsZW1lbnQuaXNzdWVfaWRcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NDJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2Vycy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2VtYWlsID09PSBlbGVtZW50LmVtcGxveWVlX2VtYWlsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9GQ0MnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnMuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5lbXBsb3llZV9lbWFpbCA9PT0gZWxlbWVudC5lbXBsb3llZV9lbWFpbFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmZhaWx1cmVDQ1VzZXJzLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdJU1NVRV9DT05UUk9MX1JJU0snOlxyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uaXRlbUlkID09PSBlbGVtZW50Lml0ZW1JZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbiAgYXNzaWduTXlzZWxmKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2VudHJ1c3RUbycpO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvID0gW107XHJcbiAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvID0gdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgKGVtcGxpc3Q6IGFueSkgPT4gZW1wbGlzdC5teV9tZW1iZXJfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2V0RXhjZXB0aW9uKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZXhjZXB0aW9uVHlwZSA9IHR5cGU7XHJcbiAgfVxyXG4gIHNldEV2aWRlbmNlKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uZXZpZGVuY2VSZXF1aXJlZCA9IHR5cGU7XHJcbiAgfVxyXG4gIHNldElzc3VlVHlwZSh0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZSA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICBhZGRNb3JlSW5mbyhldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNbZXZlbnQuY29kZV0gPSBldmVudC5jaGVja2VkO1xyXG4gICAgdGhpcy5zY3JvbGxUb0JvdHRvbSA9IHRydWU7XHJcbiAgfVxyXG4gIGlkVG9BcnJheShzZWxlY3RlZEl0ZW1zOiBhbnksIGxpc3RJdGVtczogYW55LCBmaWx0ZXJrZXk6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZEl0ZW1zO1xyXG4gICAgY29uc3QgbGlzdCA9IGxpc3RJdGVtcztcclxuICAgIGNvbnN0IGtleSA9IGZpbHRlcmtleTtcclxuICAgIGNvbnN0IHggPSBsaXN0LmZpbHRlcigoZWw6IGFueSkgPT4gc2VsZWN0ZWQuaW5jbHVkZXMoZWxba2V5XSkpO1xyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG4gIC8vL0NvZGUgYmV0d2VlbiA1MDMgdG8gNjA4IGNhbiBiZSBvcHRpbWl6ZWQgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uXHJcbiAgc2VsZWN0RmlsZSh0eXBlOiBzdHJpbmcsIGZpbGVzOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1tpXS5maWxlLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1swXS5wdXNoKG5hbWUpO1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGZpbGVzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrWzFdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXNbaV0uZmlsZSwgdHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbMl0ucHVzaChuYW1lKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCB0cmFja0luZGV4ID0gMDtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICB0cmFja0luZGV4ID0gMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIHRyYWNrSW5kZXggPSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgdHJhY2tJbmRleCA9IDI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcbiAgICBjb25zdCBkZXN0aW5hdGlvblN0cmluZyA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uSWQoKS50b1N0cmluZygpO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLnVwbG9hZEZpbGVzKGZvcm1EYXRhLCBkZXN0aW5hdGlvblN0cmluZyArICcvJykuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLmluZGV4T2YoZmlsZT8ubmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5pbmRleE9mKGZpbGUubmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZmlsZUluZGV4ID0gLTE7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8uc3BsaWNlKGZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICBmaWxlSW5kZXggPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/LnNwbGljZShmaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChjdXJyZW50RmlsZXM6IGFueSkgPT4gY3VycmVudEZpbGVzLm9yZ19maWxlID09PSBmaWxlLm9yZ19maWxlXHJcbiAgICAgICAgICApID8/IC0xO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkSXNzdWUoKSB7XHJcbiAgICBjb25zdCBmb3JtID0gY2xvbmVEZWVwKHRoaXMubG9nSXNzdWVGb3JtKTtcclxuICAgIGlmIChmb3JtLmlzQXNzaWduVG9NeXNlbGYpIHtcclxuICAgICAgZm9ybS5lbnRydXN0VG8gPSB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAoZW1wbGlzdDogYW55KSA9PiBlbXBsaXN0Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzV2l0aEVycm9yID0gW107XHJcbiAgICB0aGlzLmZpZWxkc1dpdGhFcnJvciA9IHRoaXMubG9nU2VydmljZS52YWxpZGF0ZShcclxuICAgICAgZm9ybSxcclxuICAgICAgdGhpcy5vcGVuZWRGcm9tLFxyXG4gICAgICB0aGlzLmlzUkNNYW5kYXRvcnlcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5maWVsZHNXaXRoRXJyb3IubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBQQVlMT0FEID0gdGhpcy5sb2dTZXJ2aWNlLnBheWxvYWRCdWlsZGVyKFxyXG4gICAgICBmb3JtLFxyXG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0NSRUFURScpIHtcclxuICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdCA9IHtcclxuICAgICAgICBzb3VyY2U6IHRoaXMub3BlbmVkRnJvbSxcclxuICAgICAgICB0eXBlOiAnJyxcclxuICAgICAgICB0eXBlX2lkOiAwLFxyXG4gICAgICAgIHNvdXJjZV9pZDogMCxcclxuICAgICAgICBzb3VyY2Vfb2JqZWN0X2lkOiAnJyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nICYmXHJcbiAgICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlJZFxyXG4gICAgICApIHtcclxuICAgICAgICBQQVlMT0FELmxpbmthZ2Vfb2JqZWN0ID0ge1xyXG4gICAgICAgICAgc291cmNlX2lkOiB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eUlkLFxyXG4gICAgICAgICAgdHlwZTogJycsXHJcbiAgICAgICAgICB0eXBlX2lkOiAwLFxyXG4gICAgICAgICAgc291cmNlOiB0aGlzLm9wZW5lZEZyb20sXHJcbiAgICAgICAgICBzb3VyY2Vfb2JqZWN0X2lkOiB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU9iamVjdElkLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICAgIHRoaXMub3BlbmVkRnJvbVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmthZ2VUeXBlICYmXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2subGVuZ3RoID4gMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBbJ1JJU0snLCAnUkVTUE9OU0lCSUxJVFknXS5pbmNsdWRlcyh0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdC5zb3VyY2VfaWQgPVxyXG4gICAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAgICdFWEVDVVRFX0FVRElUX1BMQU4nLFxyXG4gICAgICAgIF0uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKVxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAodGhpcy5pc3N1ZURldGFpbHMuYXVkaXRQbGFuSWQpIHtcclxuICAgICAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3Quc291cmNlX2lkID0gdGhpcy5pc3N1ZURldGFpbHMuYXVkaXRQbGFuSWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIFBBWUxPQUQuSXNzdWVMaW5rYWdlID0gdGhpcy5kYXRhRm9yRWRpdD8ubGlua2FnZV9vYmplY3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5sb2dTZXJ2aWNlLnVwZGF0ZUlzc3VlKFBBWUxPQUQsIHRoaXMuaXNzdWVJZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5zbWlsZXlNZXNzYWdlID0gYFRoZSBpc3N1ZSBoYXMgYmVlbiB1cGRhdGVkLmA7XHJcbiAgICAgICAgICB0aGlzLmlzc3VlRGF0YSA9IHJlcztcclxuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcclxuICAgICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXHJcbiAgICAgICAgICAgICdhbGVydCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdDUkVBVEUnIHx8IHRoaXMubW9kZSA9PT0gJycgfHwgIXRoaXMubW9kZSkge1xyXG4gICAgICB0aGlzLmxvZ1NlcnZpY2UuY3JlYXRlSXNzdWUoUEFZTE9BRCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc3N1ZURhdGEgPSByZXM7XHJcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXHJcbiAgICAgICAgICAgICdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nLFxyXG4gICAgICAgICAgICAnYWxlcnQnXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2xvc2VTbWlsZXkoZXZ0PzogYW55KSB7XHJcbiAgICB0aGlzLnJlc2V0SXNzdWVGb3JtKCk7XHJcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgIHRoaXMuY2xvc2VXb3JrRmxvdyh0aGlzLmlzc3VlRGF0YSwgZmFsc2UpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDbG9zZXMgd29ya2Zsb3cgZW5naW5lXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqIEBwYXJhbSBjb25maXJtXHJcbiAgICovXHJcbiAgY2xvc2VXb3JrRmxvdyhldnQ6IGFueSwgY29uZmlybTogYW55KSB7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dCwgY29uZmlybSB9KTtcclxuICB9XHJcbiAgYWN0aW9uKGV2dDogYW55KSB7XHJcbiAgICBpZiAoZXZ0ID09PSAnYWRkTW9yZScpIHtcclxuICAgICAgdGhpcy5yZXNldElzc3VlRm9ybSgpO1xyXG4gICAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgICAvLyB0aGlzLmNsb3NlV29ya0Zsb3codGhpcy5pc3N1ZURhdGEsIGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoZXZ0ID09PSAndmlld0lzc3VlJykge1xyXG4gICAgICB0aGlzLnZpZXdJc3N1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmlld0lzc3VlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsICs9ICcvaXNzdWUvaXNzdWUtd29ya3Jvb20vJyArIHRoaXMuaXNzdWVEYXRhPy5faWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgKz0gJy9hdWRpdC9pc3N1ZS9pc3N1ZS13b3Jrcm9vbS8nICsgdGhpcy5pc3N1ZURhdGE/Ll9pZDtcclxuICAgIH1cclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUG9wdWxhdGUgdGhlIHRpY2ttYXJrIG9mIG9wdGlvbmFsIGZpZWxkc1xyXG4gICAqL1xyXG4gIHBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKSB7XHJcbiAgICBjb25zdCBhY3RpdmF0ZWRPcHRpb25zID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XHJcbiAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNba2V5XSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGFjdGl2YXRlZE9wdGlvbnMucHVzaChrZXkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZldGNocyBpc3N1ZSBkZXRhaWxzIHdoZW4gaW4gZWRpdCBtb2RlIGJhc2VkIG9uIHRoZSBpbnB1dCBpZCBwYXNzZWRcclxuICAgKi9cclxuICBmZXRjaElzc3VlRGV0YWlscygpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRJc3N1ZURldGFpbHModGhpcy5pc3N1ZUlkKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRm9ybShkYXRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBQb3B1bGF0ZXMgdGhlIGlzc3VlIGZvcm0gd2hlbiBpbiBlZGl0IG1vZGVcclxuICAgKiBAcGFyYW0gaXNzdWVEYXRhIGlzc3VlIGRhdGEgZmV0Y2hlZCBmcm9tIEFQSVxyXG4gICAqL1xyXG4gIGFzeW5jIHBvcHVsYXRlRm9ybShpc3N1ZURhdGE6IGFueSkge1xyXG4gICAgdGhpcy5kYXRhRm9yRWRpdCA9IGlzc3VlRGF0YTtcclxuICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgY29uc3QgaXNzdWVEdWVEYXRlID0gaXNzdWVEYXRhLmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZS5zcGxpdCgnLScpO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0gPSB7XHJcbiAgICAgIGlzc3VlTmFtZTogaXNzdWVEYXRhLnRpdGxlID8/ICcnLFxyXG4gICAgICBldmlkZW5jZVJlcXVpcmVkOiBpc3N1ZURhdGE/LmV2aWRlbmNlPy5ldmlkZW5jZV9mbGFnID8/IDAsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb246IGlzc3VlRGF0YT8uZGVzY3JpcHRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5kZXNjcmlwdGlvblswXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM6IGlzc3VlRGF0YT8uZGVzY3JpcHRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5kZXNjcmlwdGlvblswXT8uYXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBpc3N1ZUNhdGVnb3J5OiBpc3N1ZURhdGE/LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+IGUuY2F0ZWdvcnlfaWQgPT09IGlzc3VlRGF0YT8uY2F0ZWdvcnlfaWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBpc3N1ZUN1c3RvbVRhZzogaXNzdWVEYXRhPy5jdXN0b21fdGFncyA/PyBbXSxcclxuICAgICAgaXNzdWVSQzogaXNzdWVEYXRhPy5yY19pZFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YS5yY0xpc3QuZmlsdGVyKChlOiBhbnkpID0+IGUucmNfaWQgPT09IGlzc3VlRGF0YT8ucmNfaWQpXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvblswXT8uYXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICAgIGlzQXNzaWduVG9NeXNlbGY6XHJcbiAgICAgICAgaXNzdWVEYXRhPy5hc3NpZ25lZV9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZCA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOlxyXG4gICAgICAgIGlzc3VlRGF0YT8uYXNzaWduZWVfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgICAgID8gW11cclxuICAgICAgICAgIDogdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5teV9tZW1iZXJfaWQgPT09IGlzc3VlRGF0YT8uYXNzaWduZWVfaWRcclxuICAgICAgICAgICAgKSxcclxuICAgICAgaXNzdWVEdWVEYXRlOiBpc3N1ZURhdGE/LmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZVxyXG4gICAgICAgID8gbW9tZW50KGAke2lzc3VlRHVlRGF0ZVswXX0tJHtpc3N1ZUR1ZURhdGVbMV19LSR7aXNzdWVEdWVEYXRlWzJdfWApXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiB0aGlzLmxvZ1NlcnZpY2UuY29udmVydEZyb20yNFRvMTJGb3JtYXQoXHJcbiAgICAgICAgaXNzdWVEYXRhLmZyZXF1ZW5jeV9kZXRhaWxzLmZyZXF1ZW5jeV90aW1lXHJcbiAgICAgICksXHJcbiAgICAgIGV4Y2VwdGlvblR5cGU6IGlzc3VlRGF0YS5leGNlcHRpb25fdHlwZSA/PyAxLFxyXG4gICAgICBpc3N1ZVJpc2tSYXRpbmc6IGlzc3VlRGF0YS5yaXNrX2NsYXNzID8/IDEsXHJcbiAgICAgIGlzc3VlUHJpb3JpdHk6IGlzc3VlRGF0YS5wcmlvcml0eSA/PyAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb25bMF0/LnRleHRcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlzaz8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlza1swXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5jY19lbWFpbC5sZW5ndGhcclxuICAgICAgICA/IGF3YWl0IHRoaXMuZ2VuZXJhdGVPdmVyc2Vlckxpc3QoXHJcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlcj8uY2NfZW1haWxcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBmYWlsdXJlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aFxyXG4gICAgICAgID8gYXdhaXQgdGhpcy5nZW5lcmF0ZU92ZXJzZWVyTGlzdChcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgICBsaW5rYWdlVHlwZTogJ1JFU1BPTlNJQklMSVRZJyxcclxuICAgICAgaXNzdWVUeXBlOiBpc3N1ZURhdGEuaXNzdWVUeXBlID8gaXNzdWVEYXRhLmlzc3VlVHlwZSA6ICdpc3N1ZScsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkM/Lmxlbmd0aCA+IDBcclxuICAgICAgICA/ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpXHJcbiAgICAgICAgOiAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgICAgIC8vIGlzc3VlRGF0YS5saW5rYWdlX29iamVjdD8uc291cmNlID09PSAnR0xPQkFMJz8gdGhpcy5pc1JDTWFuZGF0b3J5ID0gdHJ1ZSA6IHRoaXMuaXNSQ01hbmRhdG9yeSA9IGZhbHNlO1xyXG4gICAgICBpc3N1ZURhdGEubGlua2FnZV9vYmplY3Q/LnNvdXJjZSA9PT0gJ0dMT0JBTCcgJiYgaXNzdWVEYXRhPy5yY19pZFxyXG4gICAgICAgID8gKHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gZmFsc2UpXHJcbiAgICAgICAgOiAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSB0cnVlKTtcclxuICAgICAgLy8gaWYoaXNzdWVEYXRhLmxpbmthZ2Vfb2JqZWN0Py5jb21wbGlhbmNlPy5pZHM/Lmxlbmd0aCl7XHJcbiAgICAgIC8vICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2sgPSBpc3N1ZURhdGEubGlua2FnZV9vYmplY3Q/LmNvbXBsaWFuY2U/Lmlkcz8/W10sXHJcbiAgICAgIC8vICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2FnZVR5cGUgPSAnUkVTUE9OU0lCSUxJVFknXHJcbiAgICAgIC8vICAgdGhpcy5pc1Jpc2tDb250cm9sVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIC8vIH1cclxuICAgICAgLy8gaWYoaXNzdWVEYXRhLmxpbmthZ2Vfb2JqZWN0Py5yaXNrPy5pZHM/Lmxlbmd0aCl7XHJcbiAgICAgIC8vICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2sgPSBpc3N1ZURhdGEubGlua2FnZV9vYmplY3Q/LnJpc2s/Lmlkcz8/W10sXHJcbiAgICAgIC8vICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2FnZVR5cGUgPSAnUklTSyc7XHJcbiAgICAgIC8vICAgdGhpcy5pc1Jpc2tDb250cm9sVmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIC8vIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2V0T3B0aW9uYWxGaWVsZChpc3N1ZURhdGEpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIG9wdGlvbmFsIGZpZWxkc1xyXG4gICAqIEBwYXJhbSBpc3N1ZURhdGEgIGlzc3VlIGRhdGEgZmV0Y2hlZCBmcm9tIEFQSVxyXG4gICAqL1xyXG4gIHNldE9wdGlvbmFsRmllbGQoaXNzdWVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cyA9IHtcclxuICAgICAgRVhDRVBUSU9OX1RZUEU6IGlzc3VlRGF0YS5leGNlcHRpb25fdHlwZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgRVZJREVOQ0U6IGlzc3VlRGF0YS5ldmlkZW5jZS5ldmlkZW5jZV9mbGFnID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBQUklPUklUWTogaXNzdWVEYXRhLnByaW9yaXR5ID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBJU1NVRV9UWVBFOiBmYWxzZSxcclxuICAgICAgQVNTT0NJQVRFRF9SSVNLUzogaXNzdWVEYXRhLmFzc29jaWF0ZWRfcmlzay5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YS5hc3NvY2lhdGVkX3Jpc2tbMF0udGV4dC5sZW5ndGhcclxuICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgOiBmYWxzZVxyXG4gICAgICAgIDogZmFsc2UsXHJcbiAgICAgIE9WRVJTSUdIVDpcclxuICAgICAgICBpc3N1ZURhdGEub3ZlcnNlZXIuY2NfZW1haWwubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlci5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgOiBmYWxzZSxcclxuICAgIH07XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGxpc3Qgb2Ygc2VsZWN0ZWQgb3ZlcnNlZXJcclxuICAgKiBAcGFyYW0gYWxsVXNlckxpc3QgbGlzdCBvZiBhbGwgdXNlcnMgaW4gdGhlIG9yZ2FuemF0aW9uXHJcbiAgICogQHBhcmFtIG92ZXJzZWVyTGlzdCAgbGl0IG9mIHRoZSBvdmVyc2VlciB0aGF0IG5lZWRzIHRvIGJlIGZpbHRlcmVkXHJcbiAgICogQHJldHVybnMgIGxpc3Qgb2YgYXJyYXkgY29udGFpbmluZyB0aGUgdXNlcnMgb2JqZWN0c1xyXG4gICAqL1xyXG4gIGdlbmVyYXRlT3ZlcnNlZXJMaXN0KGFsbFVzZXJMaXN0OiBhbnksIG92ZXJzZWVyTGlzdDogYW55KSB7XHJcbiAgICByZXR1cm4gb3ZlcnNlZXJMaXN0Lm1hcCgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvdW5kVXNlciA9IGFsbFVzZXJMaXN0LmZpbmQoXHJcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5teV9tZW1iZXJfaWQgPT09IHVzZXIubWVtYmVyX2lkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChmb3VuZFVzZXIpIHtcclxuICAgICAgICByZXR1cm4gZm91bmRVc2VyO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVzZXRzIGlzc3VlIGZvcm1cclxuICAgKi9cclxuICByZXNldElzc3VlRm9ybSgpIHtcclxuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtID0ge1xyXG4gICAgICBpc3N1ZU5hbWU6ICcnLFxyXG4gICAgICBldmlkZW5jZVJlcXVpcmVkOiAwLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50czogW10sXHJcbiAgICAgIHJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgICAgYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBpc3N1ZUNhdGVnb3J5OiBbXSxcclxuICAgICAgaXNzdWVDdXN0b21UYWc6IFtdLFxyXG4gICAgICBpc3N1ZVJDOiBbXSxcclxuICAgICAgaXNzdWVUeXBlOiAnaXNzdWUnLFxyXG4gICAgICBpc0Fzc2lnblRvTXlzZWxmOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOiBbXSxcclxuICAgICAgaXNzdWVEdWVEYXRlOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiAnMTE6NTkgUE0nLFxyXG4gICAgICBleGNlcHRpb25UeXBlOiAxLFxyXG4gICAgICBpc3N1ZVJpc2tSYXRpbmc6IDEsXHJcbiAgICAgIGlzc3VlUHJpb3JpdHk6IDEsXHJcbiAgICAgIGlzc3VlUmVjb21tZW5kYXRpb246ICcnLFxyXG4gICAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiAnJyxcclxuICAgICAgaXNzdWVDQ1VzZXJzOiBbXSxcclxuICAgICAgZmFpbHVyZUNDVXNlcnM6IFtdLFxyXG4gICAgfTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cykpIHtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2tleV0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMuc21pbGV5TWVzc2FnZSA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQuYDtcclxuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5tb2RlQ2hhbmdlLmVtaXQodGhpcy5tb2RlKTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFJDKCk7XHJcbiAgfVxyXG4gIGNoZWNrRGVzY3JpcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbiA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gPSAnJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+bG9nLWFuLWlzc3VlIHdvcmtzITwvcD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJsb2ctYW4taXNzdWVcIiAqbmdJZj1cIiFzaG93U21pbGV5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAqbmdJZj1cIlsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkxpbmtlZCB0bzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCBmdWxsLXdpZHRoXCIgW2FwcFRvb2x0aXBdPVwicmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj57e3JlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj57e3JlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICpuZ0lmPVwiWydBVURJVF9XT1JLUk9PTScsJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPklzc3VlIGxpbmtlZCB3aXRoPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiPjxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIiBbYXBwVG9vbHRpcF09XCJpc3N1ZURldGFpbHM/LmF1ZGl0UGxhbk5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tpc3N1ZURldGFpbHM/LmF1ZGl0UGxhbk5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPnt7aXNzdWVEZXRhaWxzPy5hdWRpdFBsYW5OYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICpuZ0lmPVwiWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywnRVhFQ1VURV9BVURJVF9QTEFOJ10uaW5jbHVkZXMob3BlbmVkRnJvbSkgfHwgaXNSaXNrQ29udHJvbFZpc2libGVcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJ1wiXHJcbiAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfQ09OVFJPTF9SSVNLJyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDAgXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2Z1wiIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA9PT0gMCB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0NPTlRST0xfUklTSycgXCIgLz5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2s/Lmxlbmd0aCA+IDAgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DT05UUk9MX1JJU0snXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5TZWxlY3QgYSBjb250cm9sIG9yIHJpc2s8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2sgfHwgbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snLCdJU1NVRV9DT05UUk9MX1JJU0snKVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBjb250cm9sIG9yIHJpc2suXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NPTlRST0xfUklTSycsbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXSlcIj4mI3hlOWFlOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIiBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DT05UUk9MX1JJU0snLGxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdPy5pdGVtQ29udHJvbE5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXRcIiAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSdJU1NVRV9DT05UUk9MX1JJU0snXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snLCdJU1NVRV9DT05UUk9MX1JJU0snKVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBjOzwvaT5FZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCIgKm5nRm9yPVwibGV0IHRhZyBvZiBsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWd8a2V5dmFsdWVcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0ge3tsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWd8anNvbn19IC0tPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7dGFnPy52YWx1ZT8uY3VzdG9tX3RhZ19uYW1lfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInRhZz8udmFsdWU/LmN1c3RvbV90YWdfbmFtZVwiIFsobmdNb2RlbCldPVwidGFnLnZhbHVlLmN1c3RvbV90YWdfdmFsdWVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcblxyXG4gICAgPCEtLSBJc3N1ZSBUaXRsZSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doYXQuc3ZnXCIgYWx0PVwibmFtZVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGggfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9USVRMRSdcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+SXNzdWUgVGl0bGUgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJBZGQgYSBuYW1lIGZvciB0aGlzIGlzc3VlXCIgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAoZm9jdXNpbik9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9USVRMRScsJ0lTU1VFX1RJVExFJylcIlxyXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cCk9XCJsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lPy50cmltKCk/Lmxlbmd0aCA+IDAgPyByZW1vdmVFcnJvcignaXNzdWVOYW1lJyk6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChmb2N1c291dCk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCcnLCcnKVwiICAqbmdJZj1cImxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUgPT0nJyB8fCBhY3RpdmVTZWxlY3RvciA9PT0gJ0lTU1VFX1RJVExFJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZS5sZW5ndGggJiYgYWN0aXZlU2VsZWN0b3IgIT09ICdJU1NVRV9USVRMRSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57e2xvZ0lzc3VlRm9ybS5pc3N1ZU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImVkaXRcIiAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1RJVExFJywnSVNTVUVfVElUTEUnKVwiIHR5cGU9XCJidXR0b25cIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+IEVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVOYW1lJylcIj5FbnRlciBhIG5hbWUgZm9yIHRoaXMgaXNzdWUuPC9wPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1swXT8ubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0XCIgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzBdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57e3VwbG9hZGluZ0ZpbGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWxpbmUtbG9hZGVyIFtsb2FkZXJIZWlnaHRdPVwiMlwiPjwvYXBwLWxpbmUtbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdFwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3tmaWxlPy5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCdJU1NVRV9ERVNDUklQVElPTicpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDx2Y29tcGx5LWVkaXRvciBbZWRpdG9yQ29uZmlnXT1cInttb2RlOiAncHJpbWUnLGZpbGU6ZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICdEZXNjcmlwdGlvbid9XCIgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvblwiXHJcbiAgICAgICAgICAgICAgICAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnSVNTVUVfREVTQ1JJUFRJT04nLCRldmVudClcIiAoY2xpY2tPdXRzaWRlKT1cImNoZWNrRGVzY3JpcHRpb24oKVwiPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBpc3N1ZSB0eXBlIHN0YXJ0LS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RJVExFJyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdCBjaGVja2VkXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX1RJVExFJ1wiPiAtLT5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5cclxuICAgICAgICAgICAgICAgIElzc3VlIFR5cGVcclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gY2xhc3M9XCJtYWluLWZpbGVkXCIgbmFtZT1cImlzc3VlLXR5cGVcIiAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGUgPT09ICdpc3N1ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldElzc3VlVHlwZSgnaXNzdWUnKVwiPklzc3VlXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIGNsYXNzPVwibWFpbi1maWxlZFwiIG5hbWU9XCJpc3N1ZS10eXBlXCIgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGUgPT09ICdpbmNpZGVudCdcIlxyXG4gICAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldElzc3VlVHlwZSgnaW5jaWRlbnQnKVwiPkluY2lkZW50XHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gSXNzdWUgQ2F0ZWdvcnkgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0FURUdPUlknXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWScgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA+IDAgXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NhdGVnb3J5LnN2Z1wiIGFsdD1cIlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID09PSAwIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0FURUdPUlknIFwiIC8+XHJcblxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA+IDAgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQVRFR09SWSdcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPklzc3VlIENhdGVnb3J5PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnkgfHwgbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NBVEVHT1JZJywnSVNTVUVfQ0FURUdPUlknKVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYSBjYXRlZ29yeSBmb3IgdGhpcyBpc3N1ZVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NBVEVHT1JZJyxsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0FURUdPUlknLGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXT8uY2F0ZWdvcnlfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09J0lTU1VFX0NBVEVHT1JZJ1wiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0FURUdPUlknLCdJU1NVRV9DQVRFR09SWScpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlQ2F0ZWdvcnknKVwiPlNlbGVjdCBhbiBpc3N1ZSBjYXRlZ29yeS48L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiICpuZ0Zvcj1cImxldCB0YWcgb2YgbG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnXCI+XHJcbiAgICAgICAgICAgICAgICA8IS0tIHt7bG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnfGpzb259fSAtLT5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj57e3RhZz8ubmFtZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFtwbGFjZWhvbGRlcl09XCJ0YWc/Lm5hbWVcIiBbKG5nTW9kZWwpXT1cInRhZy52YWx1ZVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gUmVzcG9uc2liaWxpdHkgQ2VudGVyIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgKm5nSWY9XCJpc1JDVmlzaWJsZVwiIFtjbGFzcy5hY3RpdmVdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1JDJyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnXCIgYWx0PVwiXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA9PT0gMFwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAwICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfUkMnXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5SZXNwb25zaWJpbGl0eSBDZW50ZXJcclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiICpuZ0lmPVwiaXNSQ01hbmRhdG9yeVwiPio8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVSQyB8fCBsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfUkMnLCdJU1NVRV9SQycpXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBSZXNwb25zaWJpbGl0eSBDZW50ZXIocylcIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiICpuZ0lmPVwiIWlzUkNQcmVTZWxlY3RlZFwiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9SQycsbG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdKVwiPiYjeGU5YWU7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1swXT8uaXRlbV9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdPy5pdGVtX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiICpuZ0lmPVwiIWlzUkNQcmVTZWxlY3RlZFwiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9SQycsbG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdPy5pdGVtX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSdJU1NVRV9SQycgJiYgIWlzUkNQcmVTZWxlY3RlZFwiIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfUkMnLCdJU1NVRV9SQycpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlUkMnKVwiPlNlbGVjdCB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIGFzc29jaWF0ZWQgd2l0aCB0aGlzIGlzc3VlLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFdobyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfV0hPJyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doby5zdmdcIiBhbHQ9XCJpbVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIihsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID09PSAwICYmICFsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGYpIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJyBcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIihsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMCB8fCBsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGYgKSAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1dITydcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPldobz8gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiBbY2xhc3MuZGlzYWJsZWRdPVwibG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbyB8fCBsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9XSE8nLCdJU1NVRV9XSE8nKVwiIFtkaXNhYmxlZF09XCJsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGZcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiV2hvIGlzIHJlc3BvbnNpYmxlIGZvciBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eT9cIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1dITycsbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0/LmVtcGxveWVlX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1dITycsbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09J0lTU1VFX1dITydcIiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1dITycsJ0lTU1VFX1dITycpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdlbnRydXN0VG8nKVwiPlNlbGVjdCB0aGUgcGVyc29uIHJlc3BvbnNpYmxlIGZvciByZXNvbHZpbmcgdGhpcyBpc3N1ZS48L3A+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLXJvdyBhbGlnbi1yaWdodFwiIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX1dITydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXN3aXRjaCBbZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXCIgWyhuZ1ZhbHVlKV09XCJsb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZlwiIChuZ1ZhbHVlQ2hhbmdlKT1cImFzc2lnbk15c2VsZigkZXZlbnQpXCI+T1IgQVNTSUdOIFRPIE1ZU0VMRjwvYXBwLWNzLXN3aXRjaD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE1heGltdW4gVGltZSB0byBSZXNvbHZlIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9EQVRFX1RJTUUnICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doZW4uc3ZnXCIgYWx0PVwiaW1cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9EQVRFX1RJTUUnIFwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9EQVRFX1RJTUUnXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5NYXhpbXVtIFRpbWUgdG8gUmVzb2x2ZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtdGltZS1waWNrZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IHBsYWNlaG9sZGVyPVwiU2V0IGEgZGVhZGxpbmUuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUgIHwgZGF0ZTogJ2RkIE1NTSB5eXl5J1wiIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjZGF0ZVBpY2tlciAob25TZWxlY3QpPVwiZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtjbG9zZURhdGVQaWNrZXIoJGV2ZW50KTtyZW1vdmVFcnJvcignaXNzdWVEdWVEYXRlJylcIiAgIFtjb25maWddPVwiZGF0ZUNvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGVcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1vdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCIgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyLWdyb3VwXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25neFRpbWVwaWNrZXJdPVwiZGFpbHlUaW1lXCIgKG1vdXNlb3Zlcik9XCJzZXRDdXJyZW50VGltZSgpXCIgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lXCIgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lXCIgYXJpYS1sYWJlbD1cIjEyaHIgZm9ybWF0XCIgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiAgW21pbl09XCJjdXJyZW50VGltZVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciAgKG9wZW5lZCk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9EQVRFX1RJTUUnLCAnSVNTVUVfREFURV9USU1FJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlZCk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCcnLCcnKVwiICNkYWlseVRpbWUgW2RlZmF1bHRUaW1lXT1cIicxMTo1OSBwbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtbWF0ZXJpYWwtdGltZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZUR1ZURhdGUnKVwiPlNlbGVjdCB0aGUgZGF0ZSBieSB3aGljaCB0aGlzIGlzc3VlIG5lZWRzIHRvIGJlIHJlc29sdmVkLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFJlY29tbWVuZGVkIEFjdGlvbnMgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb25cIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjb21tZW5kZWQtYWN0aW9uLnN2Z1wiIGFsdD1cImltXCIgKm5nSWY9XCIhKGxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uIHwgc3BhY2VCcmVha2VyKS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uIHwgc3BhY2VCcmVha2VyKS5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmVjb21tZW5kZWQgQWN0aW9ucyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1sxXT8ubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdFwiICpuZ0Zvcj1cImxldCB1cGxvYWRpbmdGaWxlIG9mIEF0dGFjaG1lbnRUcmFja1sxXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57e3VwbG9hZGluZ0ZpbGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7ZmlsZT8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCdSRUNPTU1FTkRFRF9BQ1RJT05TJylcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDx2Y29tcGx5LWVkaXRvciBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uXCIgW2VkaXRvckNvbmZpZ109XCJ7bW9kZTogJ3ByaW1lJyxcclxuICAgICAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaWxlOnRydWUsXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1JlY29tbWVuZGVkIGFjdGlvbnMnfVwiIChuZ01vZGVsQ2hhbmdlKT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSZWNvbW1lbmRhdGlvbj8udHJpbSgpPy5sZW5ndGggPiAwID8gcmVtb3ZlRXJyb3IoJ2lzc3VlUmVjb21tZW5kYXRpb24nKTpudWxsXCJcclxuICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCIgKHNlbmRTYXZlZEZpbGVzKT1cInNlbGVjdEZpbGUoJ1JFQ09NTUVOREVEX0FDVElPTlMnLCRldmVudClcIj48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVwiPlNwZWNpZnkgdGhlIHJlY29tbWVuZGVkIGFjdGlvbnMgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tICpuZ0lmPVwiIWhpZGRlbkxpc3QuaW5jbHVkZXMoJ1JJU0tfQ0xBU1NJRklDQVRJT04nKVwiICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiIC0tPlxyXG4gICAgPCEtLSByZW1vdmVkIHRoZSBhYm92ZSBjb25kaXRpb24gc2luY2UgUmlzayBDbGFzc2lmaWNhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkIGJ5IGRlZmF1bHQgaW4gbG9nIGFuIGlzc3VlIGZvcm0gLS0+XHJcbiAgICBcclxuICAgIDwhLS0gUmlzayBDbGFzc2lmaWNhdGlvbiAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIGlkPVwicmlza19jbGFzc2lmaWNhdGlvblwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlUmlza1JhdGluZ1wiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yaXNrcy5zdmdcIiBhbHQ9XCJpbVwiICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVSaXNrUmF0aW5nXCI+XHJcblxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUmlza1JhdGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJpc2sgQ2xhc3NpZmljYXRpb248L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwibG93XCIgKm5nRm9yPVwiIGxldCBjbGFzcyBvZiByaXNrQ2xhc3NpZmljYXRpb25cIiBbbmdDbGFzc109XCJbY2xhc3MuY2xhc3NdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiBuYW1lPVwiY2xhc3NpZmljYXRpb25cIiBbdmFsdWVdPVwiY2xhc3MudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJpc2tSYXRpbmcgPT09IGNsYXNzLnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlUmlza1JhdGluZ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2NsYXNzLm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFeGNlcHRpb24gVHlwZSAtLT5cclxuICAgIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVhDRVBUSU9OX1RZUEVcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA+IC0xXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2V4Y2VwdGlvbi10eXBlLnN2Z1wiIGFsdD1cImltXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IG51bGxcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA+IC0xXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5FeGNlcHRpb24gVHlwZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIGNsYXNzPVwibWFpbi1maWxlZFwiIFt2YWx1ZV09XCIxXCIgbmFtZT1cImV4Y2VwdGlvbi10eXBlXCIgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID09PSAxXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cInNldEV4Y2VwdGlvbigxKVwiPkRlc2lnbiBFeGNlcHRpb25cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gY2xhc3M9XCJtYWluLWZpbGVkXCIgW3ZhbHVlXT1cIjJcIiBuYW1lPVwiZXhjZXB0aW9uLXR5cGVcIiBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IDJcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXhjZXB0aW9uKDIpXCI+RWZmZWN0aXZlbmVzcyBFeGNlcHRpb25cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT4gLS0+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImFjdGl2ZUZpZWxkID09PSAnSVNTVUVfVFlQRSdcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1RZUEUnICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgICAgICAgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLklTU1VFX1RZUEVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVUeXBlPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2lzc3VlLXR5cGUuc3ZnXCIgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGU/Lmxlbmd0aCA9PT0gMCB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX1RZUEUnIFwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGU/Lmxlbmd0aCA+IDAgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9UWVBFJ1wiXHJcbiAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+SXNzdWUgVHlwZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGUgfHwgbG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGU/Lmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfVFlQRScsJ0lTU1VFX1RZUEUnKVwiIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdGhlIElzc3VlIFR5cGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgaXNzdWUuXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGU/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1RZUEUnLGxvZ0lzc3VlRm9ybT8uaXNzdWVUeXBlWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZVR5cGVbMF0/Lmlzc3VlX3R5cGVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0nSVNTVUVfVFlQRSdcIiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1RZUEUnLCdJU1NVRV9UWVBFJylcIj48aVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPkVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuXHJcbiAgICA8IS0tIFByaW9yaXR5IC0tPlxyXG4gICAgPGRpdiBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCIgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5QUklPUklUWVwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5XCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2Z1wiIGFsdD1cImltXCIgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVByaW9yaXR5XCI+XHJcblxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHkgPiAwXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Qcmlvcml0eTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xhc3NpZmljYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgKm5nRm9yPVwiIGxldCBwcmlvcml0eSBvZiByaXNrUHJvcml0eVwiIFtuZ0NsYXNzXT1cIltwcmlvcml0eS5jbGFzc11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJjbGFzc2lmaWNhdGlvbi1wcmlvcml0eVwiIFt2YWx1ZV09XCJwcmlvcml0eS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHkgPT09IHByaW9yaXR5LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlUHJpb3JpdHlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3twcmlvcml0eS5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQXNzb2NpYXRlZCBSaXNrcyAtLT5cclxuICAgIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuQVNTT0NJQVRFRF9SSVNLU1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlQXNzb2NpYXRlZFJpc2tcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzb2NpYXRlZC1yaXNrcy5zdmdcIiBhbHQ9XCJpbVwiICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVBc3NvY2lhdGVkUmlzay50cmltKCkubGVuZ3RoXCI+XHJcblxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQXNzb2NpYXRlZFJpc2sudHJpbSgpLmxlbmd0aFwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+QXNzb2NpYXRlZCBSaXNrcyA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1syXT8ubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdFwiICpuZ0Zvcj1cImxldCB1cGxvYWRpbmdGaWxlIG9mIEF0dGFjaG1lbnRUcmFja1syXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57e3VwbG9hZGluZ0ZpbGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdFwiICpuZ0Zvcj1cImxldCBmaWxlIG9mIGxvZ0lzc3VlRm9ybT8uYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZmlsZS1uYW1lXCI+e3tmaWxlPy5uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsJ0FTU09DSUFURURfUklTS1MnKVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHZjb21wbHktZWRpdG9yIFsobmdNb2RlbCldPVwibG9nSXNzdWVGb3JtLmlzc3VlQXNzb2NpYXRlZFJpc2tcIiBbZWRpdG9yQ29uZmlnXT1cInttb2RlOiAncHJpbWUnLFxyXG4gICAgICAgICAgICAgICAgY29sb3JQYWxldHRlOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgbGluazogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGZpbGU6ZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0Fzc29jaWF0ZWQgUmlza3MnfVwiIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCIgKHNlbmRTYXZlZEZpbGVzKT1cInNlbGVjdEZpbGUoJ0FTU09DSUFURURfUklTS1MnLCRldmVudClcIj48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gT3ZlcnNlZXIgLS0+XHJcbiAgICA8ZGl2IFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5PVkVSU0lHSFRcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiAhKFsnSVNTVUVfQ0MnLCdJU1NVRV9GQ0MnXS5pbmNsdWRlcyhhY3RpdmVGaWVsZCkpICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCJcclxuICAgICAgICAgICAgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDAgfHwgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnXCIgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPT09IDAgJiYgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID09PSAwKXx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ0MnfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9GQ0MnIFwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwIHx8IGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDAgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DQyd8fCAgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9GQ0MnXCJcclxuICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5PdmVyc2lnaHQ8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzIHx8IGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0MnLCdJU1NVRV9DQycpXCIgcGxhY2Vob2xkZXI9XCJXaG8gc2hvdWxkIGhhdmUgb3ZlcnNpZ2h0IG9mIHRoaXMgaXNzdWU/XCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0MnLGxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdKVwiPiYjeGU5YWU7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJDQy5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIj4re3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQycsbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5sZW5ndGggPiAxXCIgdHlwZT1cImJ1dHRvblwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIkNDLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7bG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0nSVNTVUVfQ0MnXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQycsJ0lTU1VFX0NDJylcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnMgfHwgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9GQ0MnLCdJU1NVRV9GQ0MnKVwiIHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJXaG8gc2hvdWxkIGJlIG5vdGlmaWVkIGlmIHRoZSBpc3N1ZSBpcyBub3QgcmVzb2x2ZWQ/XCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLGxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj57e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50QnRuIHZ4LWZzLTkgdngtZnctNTAwIHZ4LXR4dC13aGl0ZSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktY2VudGVyIHZ4LWxoLTRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJGQ0MucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIj4re3tsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvdW50XCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAxXCIgdHlwZT1cImJ1dHRvblwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIkZDQy5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPit7e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0nSVNTVUVfRkNDJ1wiIGNsYXNzPVwiZWRpdFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfRkNDJywnSVNTVUVfRkNDJylcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLXBvcG92ZXIgI0NDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgY2Mgb2YgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnMgfCBzbGljZTogMTsgbGV0IGogPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NDJyxjYylcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjYz8uZW1wbG95ZWVfbmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cclxuICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNGQ0MgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBmY2Mgb2YgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2VycyB8IHNsaWNlOiAxOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfRkNDJyxmY2MpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZmNjPy5lbXBsb3llZV9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBFdmlkZW5jZSAtLT5cclxuICAgIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAqbmdJZj1cImFkZGl0aW9uYWxPcHRpb25TdGF0dXMuRVZJREVOQ0VcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cInRydWVcIj5cclxuICAgICAgICAgICAgPCEtLSA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9mb3JtYXQtZXZpZGVuY2Uuc3ZnXCIgYWx0PVwiaW1cIj4gLS0+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+RXZpZGVuY2U8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVwbG9hZC1mb3JtYXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHRcIj5EbyB5b3Ugd2FudCBldmlkZW5jZSBvZiBjb21wbGV0aW9uIG9mIHRoZSBpc3N1ZSB0byBiZSB1cGxvYWRlZD88L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gW25hbWVdPVwiJ2ZpbGUtZXZpZGVuY2UnXCIgW3ZhbHVlXT1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5ldmlkZW5jZVJlcXVpcmVkID09PSAxXCIgKGNoZWNrZWRFdmVudCk9XCJzZXRFdmlkZW5jZSgxKVwiPlllc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbbmFtZV09XCInZmlsZS1ldmlkZW5jZSdcIiBbdmFsdWVdPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV2aWRlbmNlUmVxdWlyZWQgPT09IDBcIiAoY2hlY2tlZEV2ZW50KT1cInNldEV2aWRlbmNlKDApXCI+Tm9cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hcHAtY3MtcmFkaW8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJsb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxyXG48YXBwLXJhZGlvLWxpc3QgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfQ0FUR09SWVwiIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/LmNhdGVnb3J5TGlzdFwiXHJcbiAgICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeVwiIFtpZGVudGlmaWVyS2V5XT1cIidjYXRlZ29yeV9pZCdcIlxyXG4gICAgW2Rpc3BsYXlLZXldPVwiJ2NhdGVnb3J5X25hbWUnXCIgKm5nSWY9XCJhY3RpdmVTZWxlY3Rvcj09PSdJU1NVRV9DQVRFR09SWSdcIlxyXG4gICAgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwnSVNTVUVfQ0FURUdPUlknKVwiIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DQVRFR09SWScpXCI+XHJcbjwvYXBwLXJhZGlvLWxpc3Q+XHJcblxyXG48YXBwLXJhZGlvLWxpc3QgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfUkNcIiBbaXRlbXNMaXN0XT1cImxpc3REYXRhPy5yY0xpc3RcIlxyXG4gICAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmlzc3VlUkNcIiBbaWRlbnRpZmllcktleV09XCIncmNfaWQnXCIgW2Rpc3BsYXlLZXldPVwiJ3JjX25hbWUnXCJcclxuICAgICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3I9PT0nSVNTVUVfUkMnXCIgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwnSVNTVUVfUkMnKVwiXHJcbiAgICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfUkMnKVwiPjwvYXBwLXJhZGlvLWxpc3Q+XHJcblxyXG48YXBwLXJhZGlvLWxpc3QgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfV0hPXCIgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8udXNlckxpc3RcIiBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gICAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmVudHJ1c3RUb1wiIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9pZCdcIiBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIiBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAgICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3I9PT0nSVNTVUVfV0hPJ1wiIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsJ0lTU1VFX1dITycpXCJcclxuICAgIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9XSE8nKVwiPjwvYXBwLXJhZGlvLWxpc3Q+XHJcblxyXG48YXBwLXJhZGlvLWxpc3QgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfVFlQRVwiIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/Lmlzc3VlVHlwZUxpc3RcIlxyXG4gICAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmlzc3VlVHlwZVwiIFtpZGVudGlmaWVyS2V5XT1cIidpc3N1ZV9pZCdcIiBbZGlzcGxheUtleV09XCInaXNzdWVfdHlwZV9uYW1lJ1wiXHJcbiAgICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J0lTU1VFX1RZUEUnXCIgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwnSVNTVUVfVFlQRScpXCJcclxuICAgIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9UWVBFJylcIj48L2FwcC1yYWRpby1saXN0PlxyXG5cclxuPGFwcC1jaGVja2JveC1saXN0IFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX0NDXCIgW3R3b0NvbHVtbl09XCJ0cnVlXCJcclxuICAgIFtpdGVtc0xpc3RdPVwibGlzdERhdGEudXNlckxpc3R8dXNlckZpbHRlcjonZW1wbG95ZWVfZW1haWwnOmxvZ0lzc3VlRm9ybS5lbnRydXN0VG86eydlbXBsb3llZV9lbWFpbCc6Y3VycmVudFVzZXI/LmVtYWlsfVwiXHJcbiAgICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzXCIgW2lkZW50aWZpZXJLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiIFtkaXNwbGF5S2V5XT1cIidlbXBsb3llZV9uYW1lJ1wiIFt0b29sdGlwS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIlxyXG4gICAgKm5nSWY9XCJhY3RpdmVTZWxlY3Rvcj09PSdJU1NVRV9DQydcIiAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCdJU1NVRV9DQycpXCJcclxuICAgIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DQycpXCI+PC9hcHAtY2hlY2tib3gtbGlzdD5cclxuXHJcbjxhcHAtY2hlY2tib3gtbGlzdCBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9GQ0NcIiBbdHdvQ29sdW1uXT1cInRydWVcIlxyXG4gICAgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YS51c2VyTGlzdHx1c2VyRmlsdGVyOidlbXBsb3llZV9lbWFpbCc6bG9nSXNzdWVGb3JtLmVudHJ1c3RUbzp7J2VtcGxveWVlX2VtYWlsJzpjdXJyZW50VXNlcj8uZW1haWx9XCJcclxuICAgIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2Vyc1wiIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIiBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIiBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAgICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3I9PT0nSVNTVUVfRkNDJ1wiIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsJ0lTU1VFX0ZDQycpXCJcclxuICAgIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9GQ0MnKVwiPjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcblxyXG48YXBwLXJlc3BvbnNpYmlsaXR5LXJpc2stc2VsZWN0b3IgW2xvYWRpbmddPVwiaXNSaXNrQ29udHJvbExvYWRpbmdcIiAgKm5nSWY9XCJhY3RpdmVTZWxlY3Rvcj09PSdJU1NVRV9DT05UUk9MX1JJU0snXCJcclxuIChjbG9zZUxpc3QpPVwiZmllbGREZXNlbGVjdG9yKCdJU1NVRV9DT05UUk9MX1JJU0snKVwiIChmZXRjaExpc3QpPVwiZ2V0TGlua2FnZShpc3N1ZURldGFpbHM/LmF1ZGl0T2JqSWQsICRldmVudClcIlxyXG4gKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwnSVNTVUVfQ09OVFJPTF9SSVNLJylcIlxyXG5bYWN0aXZlRW50aXR5XT1cImxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGVcIiBbbGlzdEl0ZW1zXT1cImxpc3REYXRhPy5saW5rYWdlTGlzdFwiIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tcIj48L2FwcC1yZXNwb25zaWJpbGl0eS1yaXNrLXNlbGVjdG9yPlxyXG5cclxuPGFwcC1zbWlsZXktZGlhbG9nLWlubGluZVxyXG4gICAgKm5nSWY9XCJzaG93U21pbGV5XCJcclxuICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gICAgW2FjdGlvbkJ1dHRvbnNdPVwiYWN0aW9uQnV0dG9uc1wiXHJcbiAgICAoYWN0aW9uKT1cImFjdGlvbigkZXZlbnQpXCJcclxuICAgIChjbG9zZVNtaWxleSk9XCJjbG9zZVNtaWxleSgkZXZlbnQpXCI+XHJcbjwvYXBwLXNtaWxleS1kaWFsb2ctaW5saW5lPlxyXG4iXX0=
1017
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuLWlzc3VlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Z4LXdvcmtmbG93LWVuZ2luZS9zcmMvbGliL2xvZy1hbi1pc3N1ZS9sb2ctYW4taXNzdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbG9nLWFuLWlzc3VlL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsR0FJVixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR25DLE9BQU8sTUFBTSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPbkMsTUFBTSxPQUFPLG1CQUFtQjtJQTRMOUIsWUFDVSxVQUEyQixFQUMzQixXQUF3QixFQUN4QixZQUEwQixFQUMxQixRQUF5QixFQUN6QixrQkFBcUM7UUFKckMsZUFBVSxHQUFWLFVBQVUsQ0FBaUI7UUFDM0IsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDekIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQTlMdEMsc0JBQWlCLEdBQUc7WUFDM0IsNEJBQTRCO1lBQzVCLGdCQUFnQixFQUFFLElBQUk7WUFDdEIsa0JBQWtCLEVBQUUsRUFBRTtZQUN0QixJQUFJLEVBQUUsSUFBSTtZQUNWLHNCQUFzQixFQUFFLEVBQUU7U0FDM0IsQ0FBQztRQUNPLGlCQUFZLEdBQUc7WUFDdEIsV0FBVyxFQUFFLElBQUk7WUFDakIsYUFBYSxFQUFFLEVBQUU7WUFDakIsSUFBSSxFQUFFLElB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O3NCQUFmLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQU9HLFlBQVk7c0JBQXBCLEtBQUs7Z0JBTUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxpQkFBaUI7c0JBQTFCLE1BQU07Z0JBRWtCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9nSXNzdWVTZXJ2aWNlIH0gZnJvbSAnLi4vd29ya2Zsb3ctc2VydmljZXMvbG9nLWlzc3VlLnNlcnZpY2UnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEVkaXRvckNvbmZpZyB9IGZyb20gJ3Zjb21wbHktZWRpdG9yJztcclxuaW1wb3J0IHsgRGF0ZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJ25nMi1kYXRlLXBpY2tlcic7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcbmltcG9ydCB7IFVpS2l0U2VydmljZSB9IGZyb20gJy4uL3dvcmtmbG93LXNlcnZpY2VzL3VpLWtpdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnLi4vdWkta2l0L3NuYWNrLWJhci9zbmFjay1iYXIuc2VydmljZSc7XHJcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50L21vbWVudCc7XHJcbmltcG9ydCB7IElzc3VlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvaXNzdWUtZGF0YSc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWxvZy1hbi1pc3N1ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvZy1hbi1pc3N1ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9nLWFuLWlzc3VlLmNvbXBvbmVudC5sZXNzJywgJy4uL2Zvcm1zLmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ0FuSXNzdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQElucHV0KCkgb3BlbmVkRnJvbSE6IGFueTtcclxuICBASW5wdXQoKSBpc3N1ZUlkITogYW55O1xyXG4gIEBJbnB1dCgpIHJlcG9uc2liaWxpdHlEYXRhID0ge1xyXG4gICAgLy8gb25seSB1c2VkIGJ5IGxvZyBhbiBpc3N1ZVxyXG4gICAgcmVzcG9uc2liaWxpdHlJZDogbnVsbCxcclxuICAgIHJlc3BvbnNpYmlsaXR5TmFtZTogJycsXHJcbiAgICByY0lkOiBudWxsLFxyXG4gICAgcmVzcG9uc2liaWxpdHlPYmplY3RJZDogJycsXHJcbiAgfTtcclxuICBASW5wdXQoKSBpc3N1ZURldGFpbHMgPSB7XHJcbiAgICBhdWRpdFBsYW5JZDogbnVsbCxcclxuICAgIGF1ZGl0UGxhbk5hbWU6ICcnLFxyXG4gICAgcmNJZDogbnVsbCxcclxuICAgIGF1ZGl0T2JqSWQ6IG51bGwsXHJcbiAgfTtcclxuICBASW5wdXQoKSBtb2RlID0gJ0NSRUFURSc7XHJcbiAgQElucHV0KCkgY29uZmlnITogSXNzdWVDb25maWd1cmF0aW9uO1xyXG4gIEBJbnB1dCgpIHJlc3BvbnNpYmlsaXRpZXNEYXRhOiBhbnk7XHJcbiAgQE91dHB1dCgpIHBpY2tlckNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHBvcHVsYXRlT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBjbG9zZVdvcmtmbG93ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBtb2RlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBkaXNjb25uZWN0UmVmcmVzaCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBjdXJyZW50VXNlciE6IGFueTtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJykgZGF0ZVBpY2tlciE6IERhdGVQaWNrZXJDb21wb25lbnQ7XHJcbiAgc2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcclxuICBkYXRlUGlja2VyT3ZlcmxheSA9IGZhbHNlO1xyXG4gIHNob3dEYXRlRXJyb3IgPSBmYWxzZTtcclxuICBzZWxlY3RlZERhdGU6IGFueTtcclxuICBzaG93U21pbGV5ID0gZmFsc2U7XHJcbiAgbG9hZGVyID0gZmFsc2U7XHJcbiAgc21pbGV5TWVzc2FnZSA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQuYDtcclxuICBpc3N1ZURhdGEhOiBhbnk7XHJcbiAgaXNSaXNrQ29udHJvbExvYWRpbmcgPSBmYWxzZTtcclxuICBhY3Rpb25CdXR0b25zID0gW1xyXG4gICAgeyBidXR0b25UZXh0OiAnUmVwb3J0IE1vcmUgSXNzdWVzJywgY2xhc3M6ICd3aGl0ZS1idG4nLCBpZDogJ2FkZE1vcmUnIH0sXHJcbiAgICB7IGJ1dHRvblRleHQ6ICdWaWV3IElzc3VlJywgY2xhc3M6ICdibHVlLWJ0bicsIGlkOiAndmlld0lzc3VlJyB9LFxyXG4gIF07XHJcbiAgY3JlYXRlZERhdGEhOiBhbnk7XHJcbiAgZGVzY3JpcHRpb246IEVkaXRvckNvbmZpZyA9IHtcclxuICAgIC8vIG1vZGU6ICdwcmltZScsXHJcbiAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICBsaW5rOiB0cnVlLFxyXG4gICAgcGxhY2Vob2xkZXI6ICdEZXNjcmlwdGlvbicsXHJcbiAgfTtcclxuXHJcbiAgZGF0ZUNvbmZpZyA9IHtcclxuICAgIGRpc2FibGVLZXlwcmVzczogdHJ1ZSxcclxuICAgIGZvcm1hdDogJ0REIE1NTSBZWVlZJyxcclxuICAgIHVuU2VsZWN0T25DbGljazogdHJ1ZSxcclxuICAgIG9wZW5PbkNsaWNrOiBmYWxzZSxcclxuICAgIG9wZW5PbkZvY3VzOiBmYWxzZSxcclxuICAgIG1pbjogbmV3IERhdGUoKS5nZXREYXRlKCkudG9TdHJpbmcoKSxcclxuICB9O1xyXG4gIGxpc3REYXRhOiBhbnkgPSB7XHJcbiAgICBpc3N1ZVR5cGVMaXN0OiBbXSxcclxuICAgIHVzZXJMaXN0OiBbXSxcclxuICAgIGNhdGVnb3J5TGlzdDogW10sXHJcbiAgICByY0xpc3Q6IFtdLFxyXG4gICAgbGlua2FnZUxpc3Q6IFtdLFxyXG4gIH07XHJcblxyXG4gIGdldCBtZXNzYWdlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ0VESVQnXHJcbiAgICAgID8gJyBUaGUgSXNzdWUgaGFzIGJlZW4gdXBkYXRlZC4nXHJcbiAgICAgIDogdGhpcy5zbWlsZXlNZXNzYWdlO1xyXG4gIH1cclxuXHJcbiAgbG9nSXNzdWVGb3JtOiBhbnkgPSB7XHJcbiAgICBpc3N1ZU5hbWU6ICcnLFxyXG4gICAgZXZpZGVuY2VSZXF1aXJlZDogMCxcclxuICAgIGlzc3VlRGVzY3JpcHRpb246ICcnLFxyXG4gICAgaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50czogW10sXHJcbiAgICBpc3N1ZUNhdGVnb3J5OiBbXSxcclxuICAgIGlzc3VlQ3VzdG9tVGFnOiBbXSxcclxuICAgIGlzc3VlUkM6IFtdLFxyXG4gICAgaXNzdWVUeXBlOiAnaXNzdWUnLFxyXG4gICAgaXNBc3NpZ25Ub015c2VsZjogZmFsc2UsXHJcbiAgICBlbnRydXN0VG86IFtdLFxyXG4gICAgaXNzdWVEdWVEYXRlOiAnJyxcclxuICAgIGlzc3VlRHVlVGltZTogJzExOjU5IHBtJyxcclxuICAgIGV4Y2VwdGlvblR5cGU6IDEsXHJcbiAgICBpc3N1ZVJpc2tSYXRpbmc6IDEsXHJcbiAgICBpc3N1ZVByaW9yaXR5OiAxLFxyXG4gICAgaXNzdWVSZWNvbW1lbmRhdGlvbjogJycsXHJcbiAgICByZWNvbW1lbmRlZEFjdGlvbnNBdHRhY2htZW50czogW10sXHJcbiAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiAnJyxcclxuICAgIGFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgIGlzc3VlQ0NVc2VyczogW10sXHJcbiAgICBmYWlsdXJlQ0NVc2VyczogW10sXHJcbiAgICBsaW5rZWRDb250cm9sUmlzazogW10sXHJcbiAgICBsaW5rYWdlVHlwZTogJ1JJU0snLFxyXG4gIH07XHJcbiAgQXR0YWNobWVudFRyYWNrOiBhbnkgPSBbW10sIFtdLCBbXV07XHJcbiAgYWRkaXRpb25hbE9wdGlvblN0YXR1czogYW55ID0ge1xyXG4gICAgRVhDRVBUSU9OX1RZUEU6IGZhbHNlLFxyXG4gICAgRVZJREVOQ0U6IGZhbHNlLFxyXG4gICAgUFJJT1JJVFk6IGZhbHNlLFxyXG4gICAgSVNTVUVfVFlQRTogZmFsc2UsXHJcbiAgICBBU1NPQ0lBVEVEX1JJU0tTOiBmYWxzZSxcclxuICAgIE9WRVJTSUdIVDogZmFsc2UsXHJcbiAgfTtcclxuICByaXNrQ2xhc3NpZmljYXRpb24gPSBbXHJcbiAgICB7IG5hbWU6ICdMT1cnLCB2YWx1ZTogMSwgY2xhc3M6ICdsb3cnIH0sXHJcbiAgICB7IG5hbWU6ICdMT1ctTWVkaXVtJywgdmFsdWU6IDIsIGNsYXNzOiAnbG93LW1lZCcgfSxcclxuICAgIHsgbmFtZTogJ01lZGl1bS1IaWdoJywgdmFsdWU6IDMsIGNsYXNzOiAnbWVkLWhpZ2gnIH0sXHJcbiAgICB7IG5hbWU6ICdIaWdoJywgdmFsdWU6IDQsIGNsYXNzOiAnaGlnaCcgfSxcclxuICBdO1xyXG4gIHJpc2tQcm9yaXR5ID0gW1xyXG4gICAgeyBuYW1lOiAnTE9XJywgdmFsdWU6IDEsIGNsYXNzOiAnbG93JyB9LFxyXG4gICAgeyBuYW1lOiAnTUVESVVNJywgdmFsdWU6IDIsIGNsYXNzOiAnbG93LW1lZCcgfSxcclxuICAgIHsgbmFtZTogJ0hJR0gnLCB2YWx1ZTogMywgY2xhc3M6ICdoaWdoJyB9LFxyXG4gIF07XHJcblxyXG4gIHNpZGVTZWxlY3RvckVsZW1lbnRzOiBhbnkgPSBbXHJcbiAgICAnSVNTVUVfQ0FURUdPUlknLFxyXG4gICAgJ0lTU1VFX1JDJyxcclxuICAgICdJU1NVRV9XSE8nLFxyXG4gICAgJ0lTU1VFX1RZUEUnLFxyXG4gICAgJ0lTU1VFX0NDJyxcclxuICAgICdJU1NVRV9GQ0MnLFxyXG4gICAgJ0lTU1VFX0NPTlRST0xfUklTSycsXHJcbiAgXTtcclxuICBzZWxlY3RvckNvbmZpZyA9IHtcclxuICAgIElTU1VFX0NBVEdPUlk6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBJc3N1ZSBDYXRlZ29yeScsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnQ2F0ZWdvcnkgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBJc3N1ZSBDYXRlZ29yeScsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBDYXRlZ29yaWVzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9SQzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IFJlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgIGZsb2F0aW5nVGV4dFNpbmd1bGFyOiAnUmVzcG9uc2liaWxpdHkgY2VudGVyIHNlbGVjdGVkJyxcclxuICAgICAgZmxvYXRpbmdUZXh0UGx1cmFsOiAnUmVzcG9uc2liaWxpdHkgY2VudGVycyBzZWxlY3RlZCcsXHJcbiAgICAgIHNlYXJjaFBsYWNlaG9sZGVyOiAnU2VhcmNoIFJlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIEZvdW5kJyxcclxuICAgICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9XSE86IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCBVc2VyJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggVXNlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBVc2VycyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gICAgSVNTVUVfVFlQRToge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IElzc3VlIFR5cGUnLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ0lzc3VlIFR5cGUgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBJc3N1ZSBUeXBlJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIElzc3VlIFR5cGVzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9DQzoge1xyXG4gICAgICBwYW5lbFRpdGxlOiAnU2VsZWN0IHVzZXIocyknLFxyXG4gICAgICBmbG9hdGluZ1RleHRTaW5ndWxhcjogJ1VzZXIgc2VsZWN0ZWQnLFxyXG4gICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ1NlYXJjaCBVc2VyJyxcclxuICAgICAgc2VhcmNoRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgc2VsZWN0QWxsRW5hYmxlZDogdHJ1ZSxcclxuICAgICAgbm9EYXRhVGV4dDogJ05vIFVzZXJzIEZvdW5kJyxcclxuICAgIH0sXHJcbiAgICBJU1NVRV9GQ0M6IHtcclxuICAgICAgcGFuZWxUaXRsZTogJ1NlbGVjdCB1c2VyKHMpJyxcclxuICAgICAgZmxvYXRpbmdUZXh0U2luZ3VsYXI6ICdVc2VyIHNlbGVjdGVkJyxcclxuICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdTZWFyY2ggVXNlcicsXHJcbiAgICAgIHNlYXJjaEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIHNlbGVjdEFsbEVuYWJsZWQ6IHRydWUsXHJcbiAgICAgIG5vRGF0YVRleHQ6ICdObyBVc2VycyBGb3VuZCcsXHJcbiAgICB9LFxyXG4gIH07XHJcblxyXG4gIGZpZWxkc1dpdGhFcnJvcjogYW55ID0gW107XHJcbiAgLy8gaGlkZGVuTGlzdDogYW55W10gPSBbXTtcclxuXHJcbiAgYWN0aXZlRmllbGQgPSAnJztcclxuICBhY3RpdmVTZWxlY3RvciA9ICcnO1xyXG4gIGxpc3RMb2FkaW5nU3RhdHVzOiBhbnkgPSBbXTtcclxuICBjdXJyZW50VGltZSA9ICcnO1xyXG4gIC8qKlxyXG4gICAqIGlzUkNQcmVTZWxlY3RlZCxpc1JDVmlzaWJsZSBhcmUgdmFyaWFibGUgdXNlZCB0byBzZXQgdGhlIHZpc2liaWxpdHkgb2YgcmMgZmllbGQgYW5kIGVkaXQgYnV0dG9uIGluIGNlcnRhaW4gY29uZGl0aW9uc1xyXG4gICAqL1xyXG4gIGlzUkNQcmVTZWxlY3RlZCA9IGZhbHNlO1xyXG4gIGlzUkNWaXNpYmxlID0gdHJ1ZTtcclxuICBpc1JDTWFuZGF0b3J5ID0gZmFsc2U7XHJcbiAgZGF0YUZvckVkaXQhOiBhbnk7XHJcbiAgaXNSaXNrQ29udHJvbFZpc2libGUgPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbG9nU2VydmljZTogTG9nSXNzdWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHVpS2l0U2VydmljZTogVWlLaXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzbmFja0JhcjogU25hY2tCYXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlcmN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgKSB7fVxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICAgIHRoaXMuc2V0VXNlckRldGFpbHMoKTtcclxuICAgIHRoaXMuZmV0Y2hJc3N1ZVR5cGVzKCk7XHJcbiAgICB0aGlzLmZldGNoVXNlckxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hDYXRlZ29yeUxpc3QoKTtcclxuICAgIHRoaXMuZmV0Y2hSQ0xpc3QoKTtcclxuICB9XHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlcmN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5mZXRjaENvbnRyb2xSaXNrcygpO1xyXG4gICAgdGhpcy5kZWNpZGVSQ21hbmRhdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRUaW1lID0gdGhpcy5nZXRDdXJyZW50VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgZGVjaWRlUkNtYW5kYXRvcnkoKSB7XHJcbiAgICB0aGlzLmlzUkNNYW5kYXRvcnkgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldEN1cnJlbnRUaW1lKCkge1xyXG4gICAgdGhpcy5jdXJyZW50VGltZSA9IHRoaXMuZ2V0Q3VycmVudFRpbWUoKTtcclxuICB9XHJcbiAgZ2V0Q3VycmVudFRpbWUoKSB7XHJcbiAgICBsZXQgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKFxyXG4gICAgICB0b2RheS5nZXREYXRlKCkgPT09IG5ldyBEYXRlKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZSkuZ2V0RGF0ZSgpXHJcbiAgICApIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRvZGF5LmdldEhvdXJzKCkgPCAxMiAmJlxyXG4gICAgICAgIHRvZGF5LmdldE1pbnV0ZXMoKSA8IDU5ICYmXHJcbiAgICAgICAgdG9kYXkuZ2V0U2Vjb25kcygpIDwgNTlcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke1xyXG4gICAgICAgICAgdG9kYXkuZ2V0SG91cnMoKSA8IDEwID8gJzAnICsgdG9kYXkuZ2V0SG91cnMoKSA6IHRvZGF5LmdldEhvdXJzKClcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gYW1gO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiBgJHtcclxuICAgICAgICAgIHRvZGF5LmdldEhvdXJzKCkgLSAxMiA8IDEwXHJcbiAgICAgICAgICAgID8gJzAnICsgKHRvZGF5LmdldEhvdXJzKCkgLSAxMilcclxuICAgICAgICAgICAgOiB0b2RheS5nZXRIb3VycygpIC0gMTJcclxuICAgICAgICB9OiR7XHJcbiAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCkgPCAxMFxyXG4gICAgICAgICAgICA/ICcwJyArIHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgICAgICA6IHRvZGF5LmdldE1pbnV0ZXMoKVxyXG4gICAgICAgIH0gcG1gO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJzAwOjAwIGFtJztcclxuICAgIH1cclxuICB9XHJcbiAgc2V0VXNlckRldGFpbHMoKSB7XHJcbiAgICB0aGlzLmN1cnJlbnRVc2VyID0gdGhpcy5hdXRoU2VydmljZS5nZXRVc2VyRGV0YWlscygpLnVzZXI7XHJcbiAgfVxyXG4gIGZldGNoSXNzdWVUeXBlcygpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMF0gPSBmYWxzZTtcclxuICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVUeXBlcygpLnN1YnNjcmliZShcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5pc3N1ZVR5cGVMaXN0ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcjogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0TG9hZGluZ1N0YXR1c1swXSA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgZmV0Y2hVc2VyTGlzdCgpIHtcclxuICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRPcmdQZW9wbGUoKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbMV0gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QgPSByZXM7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzFdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hDYXRlZ29yeUxpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0SXNzdWVDYXRlZ29yaWVzKCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCA9IHJlcz8uZGF0YTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCA9IHRoaXMubGlzdERhdGEuY2F0ZWdvcnlMaXN0LmZpbHRlcihcclxuICAgICAgICAgIChlOiBhbnkpID0+IGU/LmNhdGVnb3J5X25hbWUgIT09ICdVbmNhdGVnb3JpemVkJ1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jaGVja0FsbExpc3RMb2FkZWQoKTtcclxuICAgICAgfSxcclxuICAgICAgKGVycm9yOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzJdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmV0Y2hSQ0xpc3QoKSB7XHJcbiAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gZmFsc2U7XHJcbiAgICB0aGlzLmxvZ1NlcnZpY2UuZ2V0UmVzcG9uc2liaWxpdHlDZW50ZXJMaXN0KCkuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLmxpc3RMb2FkaW5nU3RhdHVzWzNdID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLnJjTGlzdCA9IHJlcztcclxuICAgICAgICB0aGlzLmNoZWNrQWxsTGlzdExvYWRlZCgpO1xyXG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRSQygpO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMubGlzdExvYWRpbmdTdGF0dXNbM10gPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBbGxMaXN0TG9hZGVkKCk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWxlY3RlZFJDKCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yY0lkICYmXHJcbiAgICAgIHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQyA9IHRoaXMucmVwb25zaWJpbGl0eURhdGEucmNJZFxyXG4gICAgICAgID8gdGhpcy5saXN0RGF0YS5yY0xpc3QuZmlsdGVyKFxyXG4gICAgICAgICAgICAoZTogYW55KSA9PiBlLnJjX2lkID09PSB0aGlzLnJlcG9uc2liaWxpdHlEYXRhLnJjSWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdO1xyXG4gICAgfSBlbHNlIGlmIChcclxuICAgICAgdGhpcy5pc3N1ZURldGFpbHM/LnJjSWQgJiZcclxuICAgICAgW1xyXG4gICAgICAgICdBVURJVF9XT1JLUk9PTScsXHJcbiAgICAgICAgJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLFxyXG4gICAgICAgICdFWEVDVVRFX0FVRElUX1BMQU4nLFxyXG4gICAgICBdLmluY2x1ZGVzKHRoaXMub3BlbmVkRnJvbSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5pc3N1ZURldGFpbHM/LnJjSWRcclxuICAgICAgICA/IHRoaXMubGlzdERhdGEucmNMaXN0LmZpbHRlcihcclxuICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5yY19pZCA9PT0gdGhpcy5pc3N1ZURldGFpbHM/LnJjSWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNSQ1ByZVNlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgICEodGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmNJZCB8fCB0aGlzLmlzc3VlRGV0YWlscz8ucmNJZCkgJiZcclxuICAgICAgW1xyXG4gICAgICAgICdDT01QTElBTkNFX1dPUktST09NJyxcclxuICAgICAgICAnQVVESVRfV09SS1JPT00nLFxyXG4gICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAnRVhFQ1VURV9BVURJVF9QTEFOJyxcclxuICAgICAgXS5pbmNsdWRlcyh0aGlzLm9wZW5lZEZyb20pXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1JDVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pc1JDVmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmZXRjaENvbnRyb2xSaXNrcygpIHtcclxuICAgIGlmIChcclxuICAgICAgWydWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJywgJ0VYRUNVVEVfQVVESVRfUExBTiddLmluY2x1ZGVzKFxyXG4gICAgICAgIHRoaXMub3BlbmVkRnJvbVxyXG4gICAgICApXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5nZXRMaW5rYWdlKFxyXG4gICAgICAgIHRoaXMuaXNzdWVEZXRhaWxzPy5hdWRpdE9iaklkLFxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmthZ2VUeXBlXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRMaW5rYWdlKGF1ZGl0SWQ6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzUmlza0NvbnRyb2xMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRDb250cm9sUmlzayhhdWRpdElkLCB0eXBlKT8uc3Vic2NyaWJlKFxyXG4gICAgICAoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdCA9IFsuLi50aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LCAuLi5kYXRhXTtcclxuICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0ID0gdGhpcy5saXN0RGF0YS5saW5rYWdlTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAodGhpbmc6IGFueSwgaW5kZXg6IGFueSwgc2VsZjogYW55KSA9PlxyXG4gICAgICAgICAgICBpbmRleCA9PT1cclxuICAgICAgICAgICAgc2VsZi5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgICAgKHQ6IGFueSkgPT5cclxuICAgICAgICAgICAgICAgIHQuaXRlbUlkID09PSB0aGluZy5pdGVtSWQgJiYgdC5pdGVtVHlwZSA9PT0gdGhpbmcuaXRlbVR5cGVcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5pc1Jpc2tDb250cm9sTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgICAoZXJyb3I6IGFueSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNSaXNrQ29udHJvbExvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVGhpcyBmdW5jdGlvaiBjaGVjayB3ZWF0aGVyIGFsbCB0aGUgcmVxdWlyZWQgbGlzdHMgYXJlIGxvYWRlZFxyXG4gICAqIElmIGxvYWRlZCBoaWRlcyB0aGUgbG9hZGVyIG90aGVyd2lzZSBzaG93cyB0aGUgbG9hZGVyLlxyXG4gICAqL1xyXG4gIGNoZWNrQWxsTGlzdExvYWRlZCgpIHtcclxuICAgIGlmICh0aGlzLmxpc3RMb2FkaW5nU3RhdHVzLmluY2x1ZGVzKGZhbHNlKSkge1xyXG4gICAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdFRElUJykge1xyXG4gICAgICAgIHRoaXMuZmV0Y2hJc3N1ZURldGFpbHMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBSZW1vdmVzIGVycm9yIGZyb20gdGhlIGZpZWxkcyB3aXRoIGVycm9yIHRvIHJlbW92ZSB0aGUgZXJyb3IgbWVzc2FnIGZyb20gdGhlIFVJXHJcbiAgICogQHBhcmFtIGVycm9yS2V5IGVycm9yIElkZW50aWZpZXIgdXNlZCB0byBzaG93IGVycm9yIGluIHNwZWNpZmljIGZpZWxkcy5cclxuICAgKi9cclxuICByZW1vdmVFcnJvcihlcnJvcktleTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmllbGRzV2l0aEVycm9yLmluZGV4T2YoZXJyb3JLZXkpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5maWVsZHNXaXRoRXJyb3Iuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcbiAgb3BlbkRhdGVQaWNrZXIoKSB7XHJcbiAgICB0aGlzLmRhdGVQaWNrZXIuYXBpLm9wZW4oKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9EQVRFX1RJTUUnLCAnSVNTVUVfREFURV9USU1FJyk7XHJcbiAgfVxyXG4gIGNsb3NlRGF0ZVBpY2tlcihldnQ6IGFueSkge1xyXG4gICAgaWYgKCFldnQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uX2QpIHtcclxuICAgICAgbGV0IG1vbnRoQXJyYXkgPSBbXHJcbiAgICAgICAgJ0phbicsXHJcbiAgICAgICAgJ0ZlYicsXHJcbiAgICAgICAgJ01hcicsXHJcbiAgICAgICAgJ0FwcicsXHJcbiAgICAgICAgJ0p1bicsXHJcbiAgICAgICAgJ0p1bCcsXHJcbiAgICAgICAgJ0F1ZycsXHJcbiAgICAgICAgJ1NlcCcsXHJcbiAgICAgICAgJ09jdCcsXHJcbiAgICAgICAgJ05vdicsXHJcbiAgICAgICAgJ0RlYycsXHJcbiAgICAgIF07XHJcbiAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldERhdGUoKTtcclxuICAgICAgY29uc3QgbW9udGhWYWx1ZSA9IG1vbnRoQXJyYXlbbmV3IERhdGUoZXZ0Py5kYXRlPy5fZCkuZ2V0TW9udGgoKV07XHJcbiAgICAgIGNvbnN0IHllYXJWYWx1ZSA9IG5ldyBEYXRlKGV2dD8uZGF0ZT8uX2QpLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgIGNvbnN0IGRhdGVTdHIgPSBgJHtkYXRlVmFsdWV9ICR7bW9udGhWYWx1ZX0gJHt5ZWFyVmFsdWV9YDtcclxuICAgICAgaWYgKGV2dD8uZGF0ZT8uX2QgIT09IHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRHVlRGF0ZT8uX2QpIHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWUgPSAnMTE6NTkgUE0nO1xyXG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFRpbWUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGV2dD8uZGF0ZT8uX2QpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEdWVEYXRlID0gZXZ0Py5kYXRlPy5fZDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVBpY2tlci5hcGkuY2xvc2UoKTtcclxuICAgIHRoaXMuZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtcclxuICAgIHRoaXMuc2V0QWN0aXZlRmllbGRTZWxlY3RvcignJywgJycpO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlRmllbGRTZWxlY3RvcihhY3RpdmVGaWVsZDogc3RyaW5nLCBhY3RpdmVTZWxlY3Rvcj86IHN0cmluZykge1xyXG4gICAgdGhpcy5hY3RpdmVGaWVsZCA9IGFjdGl2ZUZpZWxkO1xyXG4gICAgYWN0aXZlU2VsZWN0b3JcclxuICAgICAgPyAodGhpcy5hY3RpdmVTZWxlY3RvciA9IGFjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICA6ICh0aGlzLmFjdGl2ZVNlbGVjdG9yID0gJycpO1xyXG4gICAgY29uc3Qgc2xpZGVyVHlwZSA9IFtcclxuICAgICAgJ0lTU1VFX1JDJyxcclxuICAgICAgJ0lTU1VFX0NBVEVHT1JZJyxcclxuICAgICAgJ0lTU1VFX1RZUEUnLFxyXG4gICAgICAnSVNTVUVfQ0MnLFxyXG4gICAgICAnSVNTVUVfRkNDJyxcclxuICAgICAgJ0lTU1VFX1dITycsXHJcbiAgICAgICdJU1NVRV9DT05UUk9MX1JJU0snLFxyXG4gICAgXTtcclxuICAgIGlmIChzbGlkZXJUeXBlLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKSkge1xyXG4gICAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdCh0cnVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZpZWxkRGVzZWxlY3Rvcih0eXBlOiBhbnkpIHtcclxuICAgIHRoaXMuYWN0aXZlU2VsZWN0b3IgPSAnJztcclxuICAgIHRoaXMuYWN0aXZlRmllbGQgPSAnJztcclxuICAgIHRoaXMucGlja2VyQ2hhbmdlZC5lbWl0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdG9yQWN0aW9uKGV2dDogYW55LCB0eXBlOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9DQVRFR09SWSc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5ID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdCxcclxuICAgICAgICAgICdjYXRlZ29yeV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2lzc3VlQ2F0ZWdvcnknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jdXN0b21fdGFncz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICBjb25zdCB0YWc6IGFueSA9IFtdO1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmN1c3RvbV90YWdzLmZvckVhY2goXHJcbiAgICAgICAgICAgIChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICB0YWcucHVzaCh7IG5hbWU6IGVsZW1lbnQsIHZhbHVlOiAnJyB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ3VzdG9tVGFnID0gdGFnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZyA9IFtdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICAvL1tcImlzc3VlTmFtZVwiLCBcImlzc3VlQ2F0ZWdvcnlcIiwgXCJpc3N1ZVJDXCIsIFwiZW50cnVzdFRvXCIsIFwiaXNzdWVEdWVEYXRlXCIsIFwiaXNzdWVSZWNvbW1lbmRhdGlvblwiXVxyXG4gICAgICBjYXNlICdJU1NVRV9SQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVJDID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLnJjTGlzdCxcclxuICAgICAgICAgICdyY19pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGlmIChldnQ/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIHRoaXMucmVtb3ZlRXJyb3IoJ2lzc3VlUkMnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfV0hPJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUbyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUb1swXT8ubXlfbWVtYmVyX2lkID09PSB0aGlzLmN1cnJlbnRVc2VyLmlkXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZiA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpZWxkRGVzZWxlY3Rvcih0eXBlKTtcclxuICAgICAgICBpZiAoZXZ0Py5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICB0aGlzLnJlbW92ZUVycm9yKCdlbnRydXN0VG8nKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfVFlQRSc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUgPSB0aGlzLmlkVG9BcnJheShcclxuICAgICAgICAgIGV2dCxcclxuICAgICAgICAgIHRoaXMubGlzdERhdGEuaXNzdWVUeXBlTGlzdCxcclxuICAgICAgICAgICdpc3N1ZV9pZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NDJzoge1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2VycyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0ZDQyc6IHtcclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2VycyA9IHRoaXMuaWRUb0FycmF5KFxyXG4gICAgICAgICAgZXZ0LFxyXG4gICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICdlbXBsb3llZV9lbWFpbCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmllbGREZXNlbGVjdG9yKHR5cGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjYXNlICdJU1NVRV9DT05UUk9MX1JJU0snOlxyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmtlZENvbnRyb2xSaXNrID0gdGhpcy5pZFRvQXJyYXkoXHJcbiAgICAgICAgICBldnQsXHJcbiAgICAgICAgICB0aGlzLmxpc3REYXRhLmxpbmthZ2VMaXN0LFxyXG4gICAgICAgICAgJ2l0ZW1JZCdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmxpbmthZ2VUeXBlID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbVR5cGU7XHJcbiAgICAgICAgdGhpcy5maWVsZERlc2VsZWN0b3IodHlwZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICB0aGlzLnBpY2tlckNoYW5nZWQuZW1pdChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVJdGVtKHR5cGU6IGFueSwgZWxlbWVudDogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfQ0FURUdPUlknOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeS5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmNhdGVnb3J5X2lkID09PSBlbGVtZW50LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDYXRlZ29yeS5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfUkMnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLnJjX2lkID09PSBlbGVtZW50LnJjX2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVSQy5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfV0hPJzoge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMubG9nSXNzdWVGb3JtLmVudHJ1c3RUby5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2lkID09PSBlbGVtZW50LmVtcGxveWVlX2lkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZW50cnVzdFRvLnNwbGljZShpdGVtSW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc0Fzc2lnblRvTXlzZWxmID0gZmFsc2U7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfVFlQRSc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGUuZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pc3N1ZV9pZCA9PT0gZWxlbWVudC5pc3N1ZV9pZFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGl0ZW1JbmRleCAhPT0gLTEpIHtcclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlVHlwZS5zcGxpY2UoaXRlbUluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnSVNTVUVfQ0MnOiB7XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVDQ1VzZXJzLmZpbmRJbmRleChcclxuICAgICAgICAgIChpdGVtOiBhbnkpID0+IGl0ZW0uZW1wbG95ZWVfZW1haWwgPT09IGVsZW1lbnQuZW1wbG95ZWVfZW1haWxcclxuICAgICAgICApO1xyXG4gICAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUNDVXNlcnMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0ZDQyc6IHtcclxuICAgICAgICBjb25zdCBpdGVtSW5kZXggPSB0aGlzLmxvZ0lzc3VlRm9ybS5mYWlsdXJlQ0NVc2Vycy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAoaXRlbTogYW55KSA9PiBpdGVtLmVtcGxveWVlX2VtYWlsID09PSBlbGVtZW50LmVtcGxveWVlX2VtYWlsXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnMuc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0lTU1VFX0NPTlRST0xfUklTSyc6XHJcbiAgICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2suZmluZEluZGV4KFxyXG4gICAgICAgICAgKGl0ZW06IGFueSkgPT4gaXRlbS5pdGVtSWQgPT09IGVsZW1lbnQuaXRlbUlkXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ubGlua2VkQ29udHJvbFJpc2suc3BsaWNlKGl0ZW1JbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuICBhc3NpZ25NeXNlbGYoZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5yZW1vdmVFcnJvcignZW50cnVzdFRvJyk7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8gPSBbXTtcclxuICAgIGlmIChldmVudCkge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5lbnRydXN0VG8gPSB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAoZW1wbGlzdDogYW55KSA9PiBlbXBsaXN0Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRFeGNlcHRpb24odHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5leGNlcHRpb25UeXBlID0gdHlwZTtcclxuICB9XHJcbiAgc2V0RXZpZGVuY2UodHlwZTogYW55KSB7XHJcbiAgICB0aGlzLmxvZ0lzc3VlRm9ybS5ldmlkZW5jZVJlcXVpcmVkID0gdHlwZTtcclxuICB9XHJcbiAgc2V0SXNzdWVUeXBlKHR5cGU6IGFueSkge1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVUeXBlID0gdHlwZTtcclxuICB9XHJcblxyXG4gIGFkZE1vcmVJbmZvKGV2ZW50OiBhbnkpIHtcclxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1c1tldmVudC5jb2RlXSA9IGV2ZW50LmNoZWNrZWQ7XHJcbiAgICB0aGlzLnNjcm9sbFRvQm90dG9tID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGlkVG9BcnJheShzZWxlY3RlZEl0ZW1zOiBhbnksIGxpc3RJdGVtczogYW55LCBmaWx0ZXJrZXk6IGFueSkge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBzZWxlY3RlZEl0ZW1zO1xyXG4gICAgY29uc3QgbGlzdCA9IGxpc3RJdGVtcztcclxuICAgIGNvbnN0IGtleSA9IGZpbHRlcmtleTtcclxuICAgIGNvbnN0IHggPSBsaXN0LmZpbHRlcigoZWw6IGFueSkgPT4gc2VsZWN0ZWQuaW5jbHVkZXMoZWxba2V5XSkpO1xyXG4gICAgcmV0dXJuIHg7XHJcbiAgfVxyXG4gIC8vL0NvZGUgYmV0d2VlbiA1MDMgdG8gNjA4IGNhbiBiZSBvcHRpbWl6ZWQgdG8gcmVtb3ZlIGR1cGxpY2F0aW9uXHJcbiAgc2VsZWN0RmlsZSh0eXBlOiBzdHJpbmcsIGZpbGVzOiBhbnkpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBmaWxlcy5sZW5ndGggLSAxOyBpKyspIHtcclxuICAgICAgICAgIGNvbnN0IG5hbWUgPSBmaWxlc1tpXS5maWxlLm5hbWUgPz8gJyc7XHJcbiAgICAgICAgICB0aGlzLkF0dGFjaG1lbnRUcmFja1swXS5wdXNoKG5hbWUpO1xyXG4gICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGVzW2ldLmZpbGUsIHR5cGUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGZpbGVzLmxlbmd0aCAtIDE7IGkrKykge1xyXG4gICAgICAgICAgY29uc3QgbmFtZSA9IGZpbGVzW2ldLmZpbGUubmFtZSA/PyAnJztcclxuICAgICAgICAgIHRoaXMuQXR0YWNobWVudFRyYWNrWzFdLnB1c2gobmFtZSk7XHJcbiAgICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXNbaV0uZmlsZSwgdHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gZmlsZXMubGVuZ3RoIC0gMTsgaSsrKSB7XHJcbiAgICAgICAgICBjb25zdCBuYW1lID0gZmlsZXNbaV0uZmlsZS5uYW1lID8/ICcnO1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbMl0ucHVzaChuYW1lKTtcclxuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlc1tpXS5maWxlLCB0eXBlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGxldCB0cmFja0luZGV4ID0gMDtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdJU1NVRV9ERVNDUklQVElPTic6IHtcclxuICAgICAgICB0cmFja0luZGV4ID0gMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgICBjYXNlICdSRUNPTU1FTkRFRF9BQ1RJT05TJzoge1xyXG4gICAgICAgIHRyYWNrSW5kZXggPSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgdHJhY2tJbmRleCA9IDI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSk7XHJcbiAgICBjb25zdCBkZXN0aW5hdGlvblN0cmluZyA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0T3JnYW5pemF0aW9uSWQoKS50b1N0cmluZygpO1xyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLnVwbG9hZEZpbGVzKGZvcm1EYXRhLCBkZXN0aW5hdGlvblN0cmluZyArICcvJykuc3Vic2NyaWJlKFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuQXR0YWNobWVudFRyYWNrW3RyYWNrSW5kZXhdLmluZGV4T2YoZmlsZT8ubmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHMucHVzaChyZXMpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNhc2UgJ1JFQ09NTUVOREVEX0FDVElPTlMnOiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzLnB1c2gocmVzKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjYXNlICdBU1NPQ0lBVEVEX1JJU0tTJzoge1xyXG4gICAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cy5wdXNoKHJlcyk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLkF0dGFjaG1lbnRUcmFja1t0cmFja0luZGV4XS5pbmRleE9mKGZpbGUubmFtZSk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgdGhpcy5BdHRhY2htZW50VHJhY2tbdHJhY2tJbmRleF0uc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKGZpbGU6IGFueSwgdHlwZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgZmlsZUluZGV4ID0gLTE7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnSVNTVUVfREVTQ1JJUFRJT04nOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50cz8uc3BsaWNlKGZpbGVJbmRleCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgICAgY2FzZSAnUkVDT01NRU5ERURfQUNUSU9OUyc6IHtcclxuICAgICAgICBmaWxlSW5kZXggPVxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/LmZpbmRJbmRleChcclxuICAgICAgICAgICAgKGN1cnJlbnRGaWxlczogYW55KSA9PiBjdXJyZW50RmlsZXMub3JnX2ZpbGUgPT09IGZpbGUub3JnX2ZpbGVcclxuICAgICAgICAgICkgPz8gLTE7XHJcbiAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0ucmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM/LnNwbGljZShmaWxlSW5kZXgsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcbiAgICAgIGNhc2UgJ0FTU09DSUFURURfUklTS1MnOiB7XHJcbiAgICAgICAgZmlsZUluZGV4ID1cclxuICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChjdXJyZW50RmlsZXM6IGFueSkgPT4gY3VycmVudEZpbGVzLm9yZ19maWxlID09PSBmaWxlLm9yZ19maWxlXHJcbiAgICAgICAgICApID8/IC0xO1xyXG4gICAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmFzc29jaWF0ZWRSaXNrc0F0dGFjaG1lbnRzPy5zcGxpY2UoZmlsZUluZGV4LCAxKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkSXNzdWUoKSB7XHJcbiAgICBjb25zdCBmb3JtID0gY2xvbmVEZWVwKHRoaXMubG9nSXNzdWVGb3JtKTtcclxuICAgIGlmIChmb3JtLmlzQXNzaWduVG9NeXNlbGYpIHtcclxuICAgICAgZm9ybS5lbnRydXN0VG8gPSB0aGlzLmxpc3REYXRhLnVzZXJMaXN0LmZpbHRlcihcclxuICAgICAgICAoZW1wbGlzdDogYW55KSA9PiBlbXBsaXN0Lm15X21lbWJlcl9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzV2l0aEVycm9yID0gW107XHJcbiAgICB0aGlzLmZpZWxkc1dpdGhFcnJvciA9IHRoaXMubG9nU2VydmljZS52YWxpZGF0ZShcclxuICAgICAgZm9ybSxcclxuICAgICAgdGhpcy5vcGVuZWRGcm9tLFxyXG4gICAgICB0aGlzLmlzUkNNYW5kYXRvcnlcclxuICAgICk7XHJcbiAgICBpZiAodGhpcy5maWVsZHNXaXRoRXJyb3IubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBQQVlMT0FEID0gdGhpcy5sb2dTZXJ2aWNlLnBheWxvYWRCdWlsZGVyKFxyXG4gICAgICBmb3JtLFxyXG4gICAgICB0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNcclxuICAgICk7XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0NSRUFURScpIHtcclxuICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdCA9IHtcclxuICAgICAgICBzb3VyY2U6IHRoaXMub3BlbmVkRnJvbSxcclxuICAgICAgICB0eXBlOiAnJyxcclxuICAgICAgICB0eXBlX2lkOiAwLFxyXG4gICAgICAgIHNvdXJjZV9pZDogMCxcclxuICAgICAgICBzb3VyY2Vfb2JqZWN0X2lkOiAnJyxcclxuICAgICAgfTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMub3BlbmVkRnJvbSA9PT0gJ0NPTVBMSUFOQ0VfV09SS1JPT00nICYmXHJcbiAgICAgICAgdGhpcy5yZXBvbnNpYmlsaXR5RGF0YT8ucmVzcG9uc2liaWxpdHlJZFxyXG4gICAgICApIHtcclxuICAgICAgICBQQVlMT0FELmxpbmthZ2Vfb2JqZWN0ID0ge1xyXG4gICAgICAgICAgc291cmNlX2lkOiB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eUlkLFxyXG4gICAgICAgICAgdHlwZTogJycsXHJcbiAgICAgICAgICB0eXBlX2lkOiAwLFxyXG4gICAgICAgICAgc291cmNlOiB0aGlzLm9wZW5lZEZyb20sXHJcbiAgICAgICAgICBzb3VyY2Vfb2JqZWN0X2lkOiB0aGlzLnJlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU9iamVjdElkLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIFsnVklFV19BVURJVF9FWEVDVVRJT05fU1VNTUFSWScsICdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhcclxuICAgICAgICAgIHRoaXMub3BlbmVkRnJvbVxyXG4gICAgICAgIClcclxuICAgICAgKSB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0/LmxpbmthZ2VUeXBlICYmXHJcbiAgICAgICAgICB0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2subGVuZ3RoID4gMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBbJ1JJU0snLCAnUkVTUE9OU0lCSUxJVFknXS5pbmNsdWRlcyh0aGlzLmxvZ0lzc3VlRm9ybT8ubGlua2FnZVR5cGUpXHJcbiAgICAgICAgICApIHtcclxuICAgICAgICAgICAgUEFZTE9BRC5saW5rYWdlX29iamVjdC5zb3VyY2VfaWQgPVxyXG4gICAgICAgICAgICAgIHRoaXMubG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXT8uaXRlbUlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgW1xyXG4gICAgICAgICAgJ0FVRElUX1dPUktST09NJyxcclxuICAgICAgICAgICdWSUVXX0FVRElUX0VYRUNVVElPTl9TVU1NQVJZJyxcclxuICAgICAgICAgICdFWEVDVVRFX0FVRElUX1BMQU4nLFxyXG4gICAgICAgIF0uaW5jbHVkZXModGhpcy5vcGVuZWRGcm9tKVxyXG4gICAgICApIHtcclxuICAgICAgICBpZiAodGhpcy5pc3N1ZURldGFpbHMuYXVkaXRQbGFuSWQpIHtcclxuICAgICAgICAgIFBBWUxPQUQubGlua2FnZV9vYmplY3Quc291cmNlX2lkID0gdGhpcy5pc3N1ZURldGFpbHMuYXVkaXRQbGFuSWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIFBBWUxPQUQuSXNzdWVMaW5rYWdlID0gdGhpcy5kYXRhRm9yRWRpdD8ubGlua2FnZV9vYmplY3Q7XHJcbiAgICB9XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IHRydWU7XHJcbiAgICBpZiAodGhpcy5tb2RlID09PSAnRURJVCcpIHtcclxuICAgICAgdGhpcy5sb2dTZXJ2aWNlLnVwZGF0ZUlzc3VlKFBBWUxPQUQsIHRoaXMuaXNzdWVJZCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgLy8gdGhpcy5zbWlsZXlNZXNzYWdlID0gYFRoZSBpc3N1ZSBoYXMgYmVlbiB1cGRhdGVkLmA7XHJcbiAgICAgICAgICB0aGlzLmlzc3VlRGF0YSA9IHJlcztcclxuICAgICAgICAgIHRoaXMuc2hvd1NtaWxleSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc1NtaWxleU9uID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc25hY2tCYXIuc2hvdyhcclxuICAgICAgICAgICAgJ09PUFMhIFNvbWV0aGluZyB3ZW50IHdyb25nIGFuZCB0aGUgcGFnZSBjb3VsZCBub3QgYmUgbG9hZGVkLiBDb3VsZCB5b3UgcGxlYXNlIHRyeSBvbmUgbW9yZSB0aW1lPycsXHJcbiAgICAgICAgICAgICdhbGVydCdcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLm1vZGUgPT09ICdDUkVBVEUnIHx8IHRoaXMubW9kZSA9PT0gJycgfHwgIXRoaXMubW9kZSkge1xyXG4gICAgICB0aGlzLmxvZ1NlcnZpY2UuY3JlYXRlSXNzdWUoUEFZTE9BRCkuc3Vic2NyaWJlKFxyXG4gICAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5pc3N1ZURhdGEgPSByZXM7XHJcbiAgICAgICAgICB0aGlzLnNob3dTbWlsZXkgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlciA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNMb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNuYWNrQmFyLnNob3coXHJcbiAgICAgICAgICAgICdPT1BTISBTb21ldGhpbmcgd2VudCB3cm9uZyBhbmQgdGhlIHBhZ2UgY291bGQgbm90IGJlIGxvYWRlZC4gQ291bGQgeW91IHBsZWFzZSB0cnkgb25lIG1vcmUgdGltZT8nLFxyXG4gICAgICAgICAgICAnYWxlcnQnXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgY2xvc2VTbWlsZXkoZXZ0PzogYW55KSB7XHJcbiAgICB0aGlzLnJlc2V0SXNzdWVGb3JtKCk7XHJcbiAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzU21pbGV5T24gPSBmYWxzZTtcclxuICAgIHRoaXMuY2xvc2VXb3JrRmxvdyh0aGlzLmlzc3VlRGF0YSwgZmFsc2UpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBDbG9zZXMgd29ya2Zsb3cgZW5naW5lXHJcbiAgICogQHBhcmFtIGV2dFxyXG4gICAqIEBwYXJhbSBjb25maXJtXHJcbiAgICovXHJcbiAgY2xvc2VXb3JrRmxvdyhldnQ6IGFueSwgY29uZmlybTogYW55KSB7XHJcbiAgICB0aGlzLmNsb3NlV29ya2Zsb3cuZW1pdCh7IGV2dCwgY29uZmlybSB9KTtcclxuICB9XHJcbiAgYWN0aW9uKGV2dDogYW55KSB7XHJcbiAgICBpZiAoZXZ0ID09PSAnYWRkTW9yZScpIHtcclxuICAgICAgdGhpcy5yZXNldElzc3VlRm9ybSgpO1xyXG4gICAgICB0aGlzLnNob3dTbWlsZXkgPSBmYWxzZTtcclxuICAgICAgdGhpcy51aUtpdFNlcnZpY2UuaXNTbWlsZXlPbiA9IGZhbHNlO1xyXG4gICAgICAvLyB0aGlzLmNsb3NlV29ya0Zsb3codGhpcy5pc3N1ZURhdGEsIGZhbHNlKTtcclxuICAgIH0gZWxzZSBpZiAoZXZ0ID09PSAndmlld0lzc3VlJykge1xyXG4gICAgICB0aGlzLnZpZXdJc3N1ZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdmlld0lzc3VlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNjb25uZWN0UmVmcmVzaC5lbWl0KGZhbHNlKTtcclxuICAgIGxldCB1cmw6IHN0cmluZztcclxuICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdC5zdGFydHNXaXRoKCdsb2NhbGhvc3QnKSkge1xyXG4gICAgICB1cmwgPSAnaHR0cDovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHVybCA9ICdodHRwczovLycgKyB3aW5kb3cubG9jYXRpb24uaG9zdDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAod2luZG93LmxvY2F0aW9uLmhvc3Quc3RhcnRzV2l0aCgnbG9jYWxob3N0JykpIHtcclxuICAgICAgdXJsICs9ICcvaXNzdWUvaXNzdWUtd29ya3Jvb20vJyArIHRoaXMuaXNzdWVEYXRhPy5faWQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB1cmwgKz0gJy9hdWRpdC9pc3N1ZS9pc3N1ZS13b3Jrcm9vbS8nICsgdGhpcy5pc3N1ZURhdGE/Ll9pZDtcclxuICAgIH1cclxuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUG9wdWxhdGUgdGhlIHRpY2ttYXJrIG9mIG9wdGlvbmFsIGZpZWxkc1xyXG4gICAqL1xyXG4gIHBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKSB7XHJcbiAgICBjb25zdCBhY3RpdmF0ZWRPcHRpb25zID0gW107XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXMpKSB7XHJcbiAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxPcHRpb25TdGF0dXNba2V5XSA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIGFjdGl2YXRlZE9wdGlvbnMucHVzaChrZXkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uLmVtaXQoYWN0aXZhdGVkT3B0aW9ucyk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEZldGNocyBpc3N1ZSBkZXRhaWxzIHdoZW4gaW4gZWRpdCBtb2RlIGJhc2VkIG9uIHRoZSBpbnB1dCBpZCBwYXNzZWRcclxuICAgKi9cclxuICBmZXRjaElzc3VlRGV0YWlscygpIHtcclxuICAgIHRoaXMubG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMudWlLaXRTZXJ2aWNlLmlzTG9hZGVyID0gdHJ1ZTtcclxuICAgIHRoaXMubG9nU2VydmljZS5nZXRJc3N1ZURldGFpbHModGhpcy5pc3N1ZUlkKS5zdWJzY3JpYmUoKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnBvcHVsYXRlRm9ybShkYXRhKTtcclxuICAgIH0pO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBQb3B1bGF0ZXMgdGhlIGlzc3VlIGZvcm0gd2hlbiBpbiBlZGl0IG1vZGVcclxuICAgKiBAcGFyYW0gaXNzdWVEYXRhIGlzc3VlIGRhdGEgZmV0Y2hlZCBmcm9tIEFQSVxyXG4gICAqL1xyXG4gIGFzeW5jIHBvcHVsYXRlRm9ybShpc3N1ZURhdGE6IGFueSkge1xyXG4gICAgdGhpcy5kYXRhRm9yRWRpdCA9IGlzc3VlRGF0YTtcclxuICAgIHRoaXMubG9hZGVyID0gZmFsc2U7XHJcbiAgICB0aGlzLnVpS2l0U2VydmljZS5pc0xvYWRlciA9IGZhbHNlO1xyXG4gICAgY29uc3QgaXNzdWVEdWVEYXRlID0gaXNzdWVEYXRhLmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZS5zcGxpdCgnLScpO1xyXG4gICAgdGhpcy5sb2dJc3N1ZUZvcm0gPSB7XHJcbiAgICAgIGlzc3VlTmFtZTogaXNzdWVEYXRhLnRpdGxlID8/ICcnLFxyXG4gICAgICBldmlkZW5jZVJlcXVpcmVkOiBpc3N1ZURhdGE/LmV2aWRlbmNlPy5ldmlkZW5jZV9mbGFnID8/IDAsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb246IGlzc3VlRGF0YT8uZGVzY3JpcHRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5kZXNjcmlwdGlvblswXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM6IGlzc3VlRGF0YT8uZGVzY3JpcHRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5kZXNjcmlwdGlvblswXT8uYXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBpc3N1ZUNhdGVnb3J5OiBpc3N1ZURhdGE/LmNhdGVnb3J5X2lkXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLmNhdGVnb3J5TGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgIChlOiBhbnkpID0+IGUuY2F0ZWdvcnlfaWQgPT09IGlzc3VlRGF0YT8uY2F0ZWdvcnlfaWRcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBpc3N1ZUN1c3RvbVRhZzogaXNzdWVEYXRhPy5jdXN0b21fdGFncyA/PyBbXSxcclxuICAgICAgaXNzdWVSQzogaXNzdWVEYXRhPy5yY19pZD8ubGVuZ3RoXHJcbiAgICAgICAgPyB0aGlzLmxpc3REYXRhLnJjTGlzdC5maWx0ZXIoKGU6IGFueSkgPT5cclxuICAgICAgICAgICAgaXNzdWVEYXRhPy5yY19pZD8uaW5jbHVkZXMoZT8ucmNfaWQpXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgcmVjb21tZW5kZWRBY3Rpb25zQXR0YWNobWVudHM6IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb24/Lmxlbmd0aFxyXG4gICAgICAgID8gaXNzdWVEYXRhPy5yZWNvbW1lbmRhdGlvblswXT8uYXR0YWNobWVudHNcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBhc3NvY2lhdGVkUmlza3NBdHRhY2htZW50czogW10sXHJcbiAgICAgIGlzQXNzaWduVG9NeXNlbGY6XHJcbiAgICAgICAgaXNzdWVEYXRhPy5hc3NpZ25lZV9pZCA9PT0gdGhpcy5jdXJyZW50VXNlci5pZCA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOlxyXG4gICAgICAgIGlzc3VlRGF0YT8uYXNzaWduZWVfaWQgPT09IHRoaXMuY3VycmVudFVzZXIuaWRcclxuICAgICAgICAgID8gW11cclxuICAgICAgICAgIDogdGhpcy5saXN0RGF0YS51c2VyTGlzdC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgKGU6IGFueSkgPT4gZS5teV9tZW1iZXJfaWQgPT09IGlzc3VlRGF0YT8uYXNzaWduZWVfaWRcclxuICAgICAgICAgICAgKSxcclxuICAgICAgaXNzdWVEdWVEYXRlOiBpc3N1ZURhdGE/LmZyZXF1ZW5jeV9kZXRhaWxzPy5mcmVxdWVuY3lfZGF0ZVxyXG4gICAgICAgID8gbW9tZW50KGAke2lzc3VlRHVlRGF0ZVswXX0tJHtpc3N1ZUR1ZURhdGVbMV19LSR7aXNzdWVEdWVEYXRlWzJdfWApXHJcbiAgICAgICAgOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiB0aGlzLmxvZ1NlcnZpY2UuY29udmVydEZyb20yNFRvMTJGb3JtYXQoXHJcbiAgICAgICAgaXNzdWVEYXRhLmZyZXF1ZW5jeV9kZXRhaWxzLmZyZXF1ZW5jeV90aW1lXHJcbiAgICAgICksXHJcbiAgICAgIGV4Y2VwdGlvblR5cGU6IGlzc3VlRGF0YS5leGNlcHRpb25fdHlwZSA/PyAxLFxyXG4gICAgICBpc3N1ZVJpc2tSYXRpbmc6IGlzc3VlRGF0YS5yaXNrX2NsYXNzID8/IDEsXHJcbiAgICAgIGlzc3VlUHJpb3JpdHk6IGlzc3VlRGF0YS5wcmlvcml0eSA/PyAxLFxyXG4gICAgICBpc3N1ZVJlY29tbWVuZGF0aW9uOiBpc3N1ZURhdGE/LnJlY29tbWVuZGF0aW9uPy5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YT8ucmVjb21tZW5kYXRpb25bMF0/LnRleHRcclxuICAgICAgICA6ICcnLFxyXG4gICAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlzaz8ubGVuZ3RoXHJcbiAgICAgICAgPyBpc3N1ZURhdGE/LmFzc29jaWF0ZWRfcmlza1swXT8udGV4dFxyXG4gICAgICAgIDogJycsXHJcbiAgICAgIGlzc3VlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5jY19lbWFpbC5sZW5ndGhcclxuICAgICAgICA/IGF3YWl0IHRoaXMuZ2VuZXJhdGVPdmVyc2Vlckxpc3QoXHJcbiAgICAgICAgICAgIHRoaXMubGlzdERhdGEudXNlckxpc3QsXHJcbiAgICAgICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlcj8uY2NfZW1haWxcclxuICAgICAgICAgIClcclxuICAgICAgICA6IFtdLFxyXG4gICAgICBmYWlsdXJlQ0NVc2VyczogaXNzdWVEYXRhLm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aFxyXG4gICAgICAgID8gYXdhaXQgdGhpcy5nZW5lcmF0ZU92ZXJzZWVyTGlzdChcclxuICAgICAgICAgICAgdGhpcy5saXN0RGF0YS51c2VyTGlzdCxcclxuICAgICAgICAgICAgaXNzdWVEYXRhLm92ZXJzZWVyPy5mYWlsdXJlX2NjX2VtYWlsXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgOiBbXSxcclxuICAgICAgbGlua2VkQ29udHJvbFJpc2s6IFtdLFxyXG4gICAgICBsaW5rYWdlVHlwZTogJ1JFU1BPTlNJQklMSVRZJyxcclxuICAgICAgaXNzdWVUeXBlOiBpc3N1ZURhdGEuaXNzdWVUeXBlID8gaXNzdWVEYXRhLmlzc3VlVHlwZSA6ICdpc3N1ZScsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMubW9kZSA9PT0gJ0VESVQnKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUkM/Lmxlbmd0aCA+IDBcclxuICAgICAgICA/ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpXHJcbiAgICAgICAgOiAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSk7XHJcbiAgICAgIGlzc3VlRGF0YS5saW5rYWdlX29iamVjdD8uc291cmNlID09PSAnR0xPQkFMJyAmJiBpc3N1ZURhdGE/LnJjX2lkXHJcbiAgICAgICAgPyAodGhpcy5pc1JDUHJlU2VsZWN0ZWQgPSBmYWxzZSlcclxuICAgICAgICA6ICh0aGlzLmlzUkNQcmVTZWxlY3RlZCA9IHRydWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRPcHRpb25hbEZpZWxkKGlzc3VlRGF0YSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB2aXNpYmlsaXR5IG9mIG9wdGlvbmFsIGZpZWxkc1xyXG4gICAqIEBwYXJhbSBpc3N1ZURhdGEgIGlzc3VlIGRhdGEgZmV0Y2hlZCBmcm9tIEFQSVxyXG4gICAqL1xyXG4gIHNldE9wdGlvbmFsRmllbGQoaXNzdWVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cyA9IHtcclxuICAgICAgRVhDRVBUSU9OX1RZUEU6IGlzc3VlRGF0YS5leGNlcHRpb25fdHlwZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgRVZJREVOQ0U6IGlzc3VlRGF0YS5ldmlkZW5jZS5ldmlkZW5jZV9mbGFnID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBQUklPUklUWTogaXNzdWVEYXRhLnByaW9yaXR5ID8gdHJ1ZSA6IGZhbHNlLFxyXG4gICAgICBJU1NVRV9UWVBFOiBmYWxzZSxcclxuICAgICAgQVNTT0NJQVRFRF9SSVNLUzogaXNzdWVEYXRhLmFzc29jaWF0ZWRfcmlzay5sZW5ndGhcclxuICAgICAgICA/IGlzc3VlRGF0YS5hc3NvY2lhdGVkX3Jpc2tbMF0udGV4dC5sZW5ndGhcclxuICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgOiBmYWxzZVxyXG4gICAgICAgIDogZmFsc2UsXHJcbiAgICAgIE9WRVJTSUdIVDpcclxuICAgICAgICBpc3N1ZURhdGEub3ZlcnNlZXIuY2NfZW1haWwubGVuZ3RoID4gMCB8fFxyXG4gICAgICAgIGlzc3VlRGF0YS5vdmVyc2Vlci5mYWlsdXJlX2NjX2VtYWlsLmxlbmd0aCA+IDBcclxuICAgICAgICAgID8gdHJ1ZVxyXG4gICAgICAgICAgOiBmYWxzZSxcclxuICAgIH07XHJcbiAgICB0aGlzLnBvcHVsYXRlT3B0aW9uYWxGaWVsZHMoKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGxpc3Qgb2Ygc2VsZWN0ZWQgb3ZlcnNlZXJcclxuICAgKiBAcGFyYW0gYWxsVXNlckxpc3QgbGlzdCBvZiBhbGwgdXNlcnMgaW4gdGhlIG9yZ2FuemF0aW9uXHJcbiAgICogQHBhcmFtIG92ZXJzZWVyTGlzdCAgbGl0IG9mIHRoZSBvdmVyc2VlciB0aGF0IG5lZWRzIHRvIGJlIGZpbHRlcmVkXHJcbiAgICogQHJldHVybnMgIGxpc3Qgb2YgYXJyYXkgY29udGFpbmluZyB0aGUgdXNlcnMgb2JqZWN0c1xyXG4gICAqL1xyXG4gIGdlbmVyYXRlT3ZlcnNlZXJMaXN0KGFsbFVzZXJMaXN0OiBhbnksIG92ZXJzZWVyTGlzdDogYW55KSB7XHJcbiAgICByZXR1cm4gb3ZlcnNlZXJMaXN0Lm1hcCgodXNlcjogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZvdW5kVXNlciA9IGFsbFVzZXJMaXN0LmZpbmQoXHJcbiAgICAgICAgKGVsZW1lbnQ6IGFueSkgPT4gZWxlbWVudC5teV9tZW1iZXJfaWQgPT09IHVzZXIubWVtYmVyX2lkXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChmb3VuZFVzZXIpIHtcclxuICAgICAgICByZXR1cm4gZm91bmRVc2VyO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogUmVzZXRzIGlzc3VlIGZvcm1cclxuICAgKi9cclxuICByZXNldElzc3VlRm9ybSgpIHtcclxuICAgIHRoaXMuc2Nyb2xsVG9Cb3R0b20gPSBmYWxzZTtcclxuICAgIHRoaXMubG9nSXNzdWVGb3JtID0ge1xyXG4gICAgICBpc3N1ZU5hbWU6ICcnLFxyXG4gICAgICBldmlkZW5jZVJlcXVpcmVkOiAwLFxyXG4gICAgICBpc3N1ZURlc2NyaXB0aW9uOiAnJyxcclxuICAgICAgaXNzdWVEZXNjcmlwdGlvbkF0dGFjaGVtZW50czogW10sXHJcbiAgICAgIHJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzOiBbXSxcclxuICAgICAgYXNzb2NpYXRlZFJpc2tzQXR0YWNobWVudHM6IFtdLFxyXG4gICAgICBpc3N1ZUNhdGVnb3J5OiBbXSxcclxuICAgICAgaXNzdWVDdXN0b21UYWc6IFtdLFxyXG4gICAgICBpc3N1ZVJDOiBbXSxcclxuICAgICAgaXNzdWVUeXBlOiAnaXNzdWUnLFxyXG4gICAgICBpc0Fzc2lnblRvTXlzZWxmOiBmYWxzZSxcclxuICAgICAgZW50cnVzdFRvOiBbXSxcclxuICAgICAgaXNzdWVEdWVEYXRlOiAnJyxcclxuICAgICAgaXNzdWVEdWVUaW1lOiAnMTE6NTkgUE0nLFxyXG4gICAgICBleGNlcHRpb25UeXBlOiAxLFxyXG4gICAgICBpc3N1ZVJpc2tSYXRpbmc6IDEsXHJcbiAgICAgIGlzc3VlUHJpb3JpdHk6IDEsXHJcbiAgICAgIGlzc3VlUmVjb21tZW5kYXRpb246ICcnLFxyXG4gICAgICBpc3N1ZUFzc29jaWF0ZWRSaXNrOiAnJyxcclxuICAgICAgaXNzdWVDQ1VzZXJzOiBbXSxcclxuICAgICAgZmFpbHVyZUNDVXNlcnM6IFtdLFxyXG4gICAgfTtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHRoaXMuYWRkaXRpb25hbE9wdGlvblN0YXR1cykpIHtcclxuICAgICAgdGhpcy5hZGRpdGlvbmFsT3B0aW9uU3RhdHVzW2tleV0gPSBmYWxzZTtcclxuICAgIH1cclxuICAgIC8vIHRoaXMuc21pbGV5TWVzc2FnZSA9IGBUaGUgaXNzdWUgaGFzIGJlZW4gcmVwb3J0ZWQuYDtcclxuICAgIHRoaXMubW9kZSA9ICdDUkVBVEUnO1xyXG4gICAgdGhpcy5tb2RlQ2hhbmdlLmVtaXQodGhpcy5tb2RlKTtcclxuICAgIHRoaXMucG9wdWxhdGVPcHRpb25hbEZpZWxkcygpO1xyXG4gICAgdGhpcy5zZXRTZWxlY3RlZFJDKCk7XHJcbiAgfVxyXG4gIGNoZWNrRGVzY3JpcHRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbiA9PSAnPGJyPicpIHtcclxuICAgICAgdGhpcy5sb2dJc3N1ZUZvcm0uaXNzdWVEZXNjcmlwdGlvbiA9ICcnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gPT0gJzxicj4nKSB7XHJcbiAgICAgIHRoaXMubG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb24gPSAnJztcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrID09ICc8YnI+Jykge1xyXG4gICAgICB0aGlzLmxvZ0lzc3VlRm9ybS5pc3N1ZUFzc29jaWF0ZWRSaXNrID0gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gPHA+bG9nLWFuLWlzc3VlIHdvcmtzITwvcD4gLS0+XHJcbjxkaXYgY2xhc3M9XCJsb2ctYW4taXNzdWVcIiAqbmdJZj1cIiFzaG93U21pbGV5XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAqbmdJZj1cIlsnQ09NUExJQU5DRV9XT1JLUk9PTSddLmluY2x1ZGVzKG9wZW5lZEZyb20pXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkxpbmtlZCB0bzwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCBmdWxsLXdpZHRoXCIgW2FwcFRvb2x0aXBdPVwicmVwb25zaWJpbGl0eURhdGE/LnJlc3BvbnNpYmlsaXR5TmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj57e3JlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj57e3JlcG9uc2liaWxpdHlEYXRhPy5yZXNwb25zaWJpbGl0eU5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICpuZ0lmPVwiWydBVURJVF9XT1JLUk9PTScsJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPklzc3VlIGxpbmtlZCB3aXRoPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiPjxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIiBbYXBwVG9vbHRpcF09XCJpc3N1ZURldGFpbHM/LmF1ZGl0UGxhbk5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tpc3N1ZURldGFpbHM/LmF1ZGl0UGxhbk5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+e3tpc3N1ZURldGFpbHM/LmF1ZGl0UGxhbk5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgKm5nSWY9XCJbJ1ZJRVdfQVVESVRfRVhFQ1VUSU9OX1NVTU1BUlknLCdFWEVDVVRFX0FVRElUX1BMQU4nXS5pbmNsdWRlcyhvcGVuZWRGcm9tKSB8fCBpc1Jpc2tDb250cm9sVmlzaWJsZVwiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DT05UUk9MX1JJU0snXCJcclxuICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9DT05UUk9MX1JJU0snICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCIgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID09PSAwIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfQ09OVFJPTF9SSVNLJyBcIiAvPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzaz8ubGVuZ3RoID4gMCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NPTlRST0xfUklTSydcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlNlbGVjdCBhIGNvbnRyb2wgb3IgcmlzazwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlzayB8fCBsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycsJ0lTU1VFX0NPTlRST0xfUklTSycpXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIGNvbnRyb2wgb3Igcmlzay5cIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ09OVFJPTF9SSVNLJyxsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrWzBdKVwiPiYjeGU5YWU7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBOYW1lIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dFwiIFthcHBUb29sdGlwXT1cImxvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1Db250cm9sTmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZmFsc2VcIj57e2xvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1Db250cm9sTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NPTlRST0xfUklTSycsbG9nSXNzdWVGb3JtPy5saW5rZWRDb250cm9sUmlza1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8ubGlua2VkQ29udHJvbFJpc2tbMF0/Lml0ZW1Db250cm9sTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09J0lTU1VFX0NPTlRST0xfUklTSydcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NPTlRST0xfUklTSycsJ0lTU1VFX0NPTlRST0xfUklTSycpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGM7PC9pPkVkaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIiAqbmdGb3I9XCJsZXQgdGFnIG9mIGxvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZ3xrZXl2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPCEtLSB7e2xvZ0lzc3VlRm9ybS5pc3N1ZUN1c3RvbVRhZ3xqc29ufX0gLS0+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+e3t0YWc/LnZhbHVlPy5jdXN0b21fdGFnX25hbWV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBbcGxhY2Vob2xkZXJdPVwidGFnPy52YWx1ZT8uY3VzdG9tX3RhZ19uYW1lXCIgWyhuZ01vZGVsKV09XCJ0YWcudmFsdWUuY3VzdG9tX3RhZ192YWx1ZVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8IS0tIElzc3VlIFRpdGxlIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9USVRMRScgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLnRyaW0oKS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvd2hhdC5zdmdcIiBhbHQ9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWUudHJpbSgpLmxlbmd0aCB8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX1RJVExFJ1wiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Jc3N1ZSBUaXRsZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIkFkZCBhIG5hbWUgZm9yIHRoaXMgaXNzdWVcIiBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIChmb2N1c2luKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1RJVExFJywnSVNTVUVfVElUTEUnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwKT1cImxvZ0lzc3VlRm9ybS5pc3N1ZU5hbWU/LnRyaW0oKT8ubGVuZ3RoID4gMCA/IHJlbW92ZUVycm9yKCdpc3N1ZU5hbWUnKTogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGZvY3Vzb3V0KT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJycsJycpXCIgICpuZ0lmPVwibG9nSXNzdWVGb3JtLmlzc3VlTmFtZSA9PScnIHx8IGFjdGl2ZVNlbGVjdG9yID09PSAnSVNTVUVfVElUTEUnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0uaXNzdWVOYW1lLmxlbmd0aCAmJiBhY3RpdmVTZWxlY3RvciAhPT0gJ0lTU1VFX1RJVExFJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7bG9nSXNzdWVGb3JtLmlzc3VlTmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiZWRpdFwiICAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfVElUTEUnLCdJU1NVRV9USVRMRScpXCIgdHlwZT1cImJ1dHRvblwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT4gRWRpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZU5hbWUnKVwiPkVudGVyIGEgbmFtZSBmb3IgdGhpcyBpc3N1ZS48L3A+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzBdPy5sZW5ndGggPiAwIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdGb3I9XCJsZXQgdXBsb2FkaW5nRmlsZSBvZiBBdHRhY2htZW50VHJhY2tbMF1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7dXBsb2FkaW5nRmlsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlRGVzY3JpcHRpb25BdHRhY2hlbWVudHM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0XCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgbG9nSXNzdWVGb3JtPy5pc3N1ZURlc2NyaXB0aW9uQXR0YWNoZW1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57e2ZpbGU/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVGaWxlKGZpbGUsJ0lTU1VFX0RFU0NSSVBUSU9OJylcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHZjb21wbHktZWRpdG9yIFtlZGl0b3JDb25maWddPVwie21vZGU6ICdwcmltZScsZmlsZTpmYWxzZSxcclxuICAgICAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ0Rlc2NyaXB0aW9uJ31cIiBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZURlc2NyaXB0aW9uXCJcclxuICAgICAgICAgICAgICAgIChzZW5kU2F2ZWRGaWxlcyk9XCJzZWxlY3RGaWxlKCdJU1NVRV9ERVNDUklQVElPTicsJGV2ZW50KVwiIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCI+PC92Y29tcGx5LWVkaXRvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIGlzc3VlIHR5cGUgc3RhcnQtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfVElUTEUnICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0IGNoZWNrZWRcIj5cclxuICAgICAgICAgICAgPCEtLSA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aGF0LnN2Z1wiIGFsdD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtLmlzc3VlTmFtZS50cmltKCkubGVuZ3RoIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfVElUTEUnXCI+IC0tPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlxyXG4gICAgICAgICAgICAgICAgSXNzdWUgVHlwZVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBjbGFzcz1cIm1haW4tZmlsZWRcIiBuYW1lPVwiaXNzdWUtdHlwZVwiICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlVHlwZSA9PT0gJ2lzc3VlJ1wiXHJcbiAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0SXNzdWVUeXBlKCdpc3N1ZScpXCI+SXNzdWVcclxuICAgICAgICAgICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZjs8L2k+IC0tPlxyXG4gICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gY2xhc3M9XCJtYWluLWZpbGVkXCIgbmFtZT1cImlzc3VlLXR5cGVcIiBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlVHlwZSA9PT0gJ2luY2lkZW50J1wiXHJcbiAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0SXNzdWVUeXBlKCdpbmNpZGVudCcpXCI+SW5jaWRlbnRcclxuICAgICAgICAgICAgICAgICAgPCEtLSA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZjs8L2k+IC0tPlxyXG4gICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBJc3N1ZSBDYXRlZ29yeSAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiIFtjbGFzcy5hY3RpdmVdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DQVRFR09SWSdcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnXCIgYWx0PVwiXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPT09IDAgfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DQVRFR09SWScgXCIgLz5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeT8ubGVuZ3RoID4gMCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NBVEVHT1JZJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+SXNzdWUgQ2F0ZWdvcnk8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdFwiICpuZ0lmPVwiIWxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeSB8fCBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnk/Lmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCAoY2xpY2spPVwic2V0QWN0aXZlRmllbGRTZWxlY3RvcignSVNTVUVfQ0FURUdPUlknLCdJU1NVRV9DQVRFR09SWScpXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBhIGNhdGVnb3J5IGZvciB0aGlzIGlzc3VlXCIgcmVhZG9ubHk+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5Py5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXBDb250YWluZXIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1wbC0yIHZ4LXByLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyBjcm9zcyB2eC1mcy0xMCB2eC1wYXJhZ3JhcGgtdHh0IHZ4LW1yLTFcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0FURUdPUlknLGxvZ0lzc3VlRm9ybT8uaXNzdWVDYXRlZ29yeVswXSlcIj4mI3hlOWFlOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIiBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmNhdGVnb3J5X25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ2F0ZWdvcnlbMF0/LmNhdGVnb3J5X25hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwXCI+PGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQVRFR09SWScsbG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5pc3N1ZUNhdGVnb3J5WzBdPy5jYXRlZ29yeV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJlZGl0XCIgKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0nSVNTVUVfQ0FURUdPUlknXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQVRFR09SWScsJ0lTU1VFX0NBVEVHT1JZJylcIj48aSBjbGFzcz1cImljb25zXCI+JiN4ZTliYTs8L2k+RWRpdDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZpZWxkc1dpdGhFcnJvci5pbmNsdWRlcygnaXNzdWVDYXRlZ29yeScpXCI+U2VsZWN0IGFuIGlzc3VlIGNhdGVnb3J5LjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCIgKm5nRm9yPVwibGV0IHRhZyBvZiBsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWdcIj5cclxuICAgICAgICAgICAgICAgIDwhLS0ge3tsb2dJc3N1ZUZvcm0uaXNzdWVDdXN0b21UYWd8anNvbn19IC0tPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPnt7dGFnPy5uYW1lfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgW3BsYWNlaG9sZGVyXT1cInRhZz8ubmFtZVwiIFsobmdNb2RlbCldPVwidGFnLnZhbHVlXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiAqbmdJZj1cImlzUkNWaXNpYmxlXCIgW2NsYXNzLmFjdGl2ZV09XCJmYWxzZVwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfUkMnICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmdcIiBhbHQ9XCJcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID09PSAwXCI+XHJcblxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/Lmxlbmd0aCA+IDAgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9SQydcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlJlc3BvbnNpYmlsaXR5IENlbnRlclxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCIgKm5nSWY9XCJpc1JDTWFuZGF0b3J5XCI+Kjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVJDIHx8IGxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9SQycsJ0lTU1VFX1JDJylcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFJlc3BvbnNpYmlsaXR5IENlbnRlcihzKVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0ZWRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKm5nSWY9XCIhaXNSQ1ByZVNlbGVjdGVkXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1JDJyxsb2dJc3N1ZUZvcm0/Lmlzc3VlUkNbMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDWzBdPy5pdGVtX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tsb2dJc3N1ZUZvcm0/Lmlzc3VlUkNbMF0/Lml0ZW1fbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZVJDPy5sZW5ndGggPiAxXCIgY2xhc3M9XCJjb3VudEJ0biB2eC1mcy05IHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlciB2eC1saC00XCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiUkMucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tsb2dJc3N1ZUZvcm0/Lmlzc3VlUkM/LnNsaWNlKDEpPy5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJhY3RpdmVGaWVsZCAhPT0nSVNTVUVfUkMnICYmICFpc1JDUHJlU2VsZWN0ZWRcIiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1JDJywnSVNTVUVfUkMnKVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZVJDJylcIj5TZWxlY3QgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBhc3NvY2lhdGVkIHdpdGggdGhpcyBpc3N1ZS48L3A+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLXBvcG92ZXIgI1JDIFtkb250Q2xvc2VvbkNsaWNrXT1cInRydWVcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgcmMgb2YgbG9nSXNzdWVGb3JtPy5pc3N1ZVJDIHwgc2xpY2U6IDE7IGxldCBqID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9SQycscmMpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e3JjPy5pdGVtX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFdobyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIGFjdGl2ZUZpZWxkICE9PSAnSVNTVUVfV0hPJyAmJiBzaWRlU2VsZWN0b3JFbGVtZW50cy5pbmNsdWRlcyhhY3RpdmVGaWVsZClcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiIFtjbGFzcy5jaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZW50cnVzdFRvPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doby5zdmdcIiBhbHQ9XCJpbVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIihsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID09PSAwICYmICFsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGYpIHx8IGFjdGl2ZUZpZWxkID09PSAnSVNTVUVfV0hPJyBcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIihsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMCB8fCBsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGYgKSAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX1dITydcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPldobz8gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RcIiBbY2xhc3MuZGlzYWJsZWRdPVwibG9nSXNzdWVGb3JtPy5pc0Fzc2lnblRvTXlzZWxmXCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbyB8fCBsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID09PSAwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9XSE8nLCdJU1NVRV9XSE8nKVwiIFtkaXNhYmxlZF09XCJsb2dJc3N1ZUZvcm0/LmlzQXNzaWduVG9NeXNlbGZcIiB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiV2hvIGlzIHJlc3BvbnNpYmxlIGZvciBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eT9cIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdGVkXCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUbz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1dITycsbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0/LmVtcGxveWVlX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX1dITycsbG9nSXNzdWVGb3JtPy5lbnRydXN0VG9bMF0pXCI+JiN4ZTkwZDs8L2k+e3tsb2dJc3N1ZUZvcm0/LmVudHJ1c3RUb1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiYWN0aXZlRmllbGQgIT09J0lTU1VFX1dITydcIiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX1dITycsJ0lTU1VFX1dITycpXCI+PGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5YmE7PC9pPiBFZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdlbnRydXN0VG8nKVwiPlNlbGVjdCB0aGUgcGVyc29uIHJlc3BvbnNpYmxlIGZvciByZXNvbHZpbmcgdGhpcyBpc3N1ZS48L3A+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3dpdGNoLXJvdyBhbGlnbi1yaWdodFwiIFtjbGFzcy5kaXNhYmxlZF09XCJhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX1dITydcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXN3aXRjaCBbZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgPT09ICdJU1NVRV9XSE8nXCIgWyhuZ1ZhbHVlKV09XCJsb2dJc3N1ZUZvcm0uaXNBc3NpZ25Ub015c2VsZlwiIChuZ1ZhbHVlQ2hhbmdlKT1cImFzc2lnbk15c2VsZigkZXZlbnQpXCI+T1IgQVNTSUdOIFRPIE1ZU0VMRjwvYXBwLWNzLXN3aXRjaD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIE1heGltdW4gVGltZSB0byBSZXNvbHZlIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9EQVRFX1RJTUUnICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3doZW4uc3ZnXCIgYWx0PVwiaW1cIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9EQVRFX1RJTUUnIFwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUR1ZURhdGUgJiYgYWN0aXZlRmllbGQgIT09ICdJU1NVRV9EQVRFX1RJTUUnXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5NYXhpbXVtIFRpbWUgdG8gUmVzb2x2ZSA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRhdGUtdGltZS1waWNrZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IHBsYWNlaG9sZGVyPVwiU2V0IGEgZGVhZGxpbmUuXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGUgIHwgZGF0ZTogJ2RkIE1NTSB5eXl5J1wiIChjbGljayk9XCJvcGVuRGF0ZVBpY2tlcigpO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTkyZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkcC1kYXRlLXBpY2tlciAjZGF0ZVBpY2tlciAob25TZWxlY3QpPVwiZGF0ZVBpY2tlck92ZXJsYXkgPSBmYWxzZTtjbG9zZURhdGVQaWNrZXIoJGV2ZW50KTtyZW1vdmVFcnJvcignaXNzdWVEdWVEYXRlJylcIiAgIFtjb25maWddPVwiZGF0ZUNvbmZpZ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZURhdGVcIiA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZHAtZGF0ZS1waWNrZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1vdmVybGF5XCIgKGNsaWNrKT1cImNsb3NlRGF0ZVBpY2tlcigkZXZlbnQpXCIgKm5nSWY9XCJkYXRlUGlja2VyT3ZlcmxheVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGlja2VyLWdyb3VwXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW25neFRpbWVwaWNrZXJdPVwiZGFpbHlUaW1lXCIgKG1vdXNlb3Zlcik9XCJzZXRDdXJyZW50VGltZSgpXCIgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVEdWVUaW1lXCIgW3ZhbHVlXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUR1ZVRpbWVcIiByZWFkb25seVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0aW1lXCIgYXJpYS1sYWJlbD1cIjEyaHIgZm9ybWF0XCIgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IFRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIiAgW21pbl09XCJjdXJyZW50VGltZVwiIHJlYWRvbmx5PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCI+JiN4ZTk1NTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtbWF0ZXJpYWwtdGltZXBpY2tlciAgKG9wZW5lZCk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9EQVRFX1RJTUUnLCAnSVNTVUVfREFURV9USU1FJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlZCk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCcnLCcnKVwiICNkYWlseVRpbWUgW2RlZmF1bHRUaW1lXT1cIicxMTo1OSBwbSdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZ3gtbWF0ZXJpYWwtdGltZXBpY2tlcj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiICpuZ0lmPVwiZmllbGRzV2l0aEVycm9yLmluY2x1ZGVzKCdpc3N1ZUR1ZURhdGUnKVwiPlNlbGVjdCB0aGUgZGF0ZSBieSB3aGljaCB0aGlzIGlzc3VlIG5lZWRzIHRvIGJlIHJlc29sdmVkLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFJlY29tbWVuZGVkIEFjdGlvbnMgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtLmlzc3VlUmVjb21tZW5kYXRpb25cIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjb21tZW5kZWQtYWN0aW9uLnN2Z1wiIGFsdD1cImltXCIgKm5nSWY9XCIhKGxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uIHwgc3BhY2VCcmVha2VyKS5sZW5ndGhcIj5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uIHwgc3BhY2VCcmVha2VyKS5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgPGNpcmNsZSBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCIgY3g9XCIyNlwiIGN5PVwiMjZcIiByPVwiMjVcIiBmaWxsPVwibm9uZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIiBmaWxsPVwibm9uZVwiIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCIgLz5cclxuICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmVjb21tZW5kZWQgQWN0aW9ucyA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIkF0dGFjaG1lbnRUcmFja1sxXT8ubGVuZ3RoID4gMCBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtbGlzdFwiICpuZ0Zvcj1cImxldCB1cGxvYWRpbmdGaWxlIG9mIEF0dGFjaG1lbnRUcmFja1sxXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57e3VwbG9hZGluZ0ZpbGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxhcHAtbGluZS1sb2FkZXIgW2xvYWRlckhlaWdodF09XCIyXCI+PC9hcHAtbGluZS1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxlLWxpc3RcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiBsb2dJc3N1ZUZvcm0/LnJlY29tbWVuZGVkQWN0aW9uc0F0dGFjaG1lbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7ZmlsZT8ubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlRmlsZShmaWxlLCdSRUNPTU1FTkRFRF9BQ1RJT05TJylcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICAgIDx2Y29tcGx5LWVkaXRvciBbKG5nTW9kZWwpXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJlY29tbWVuZGF0aW9uXCIgW2VkaXRvckNvbmZpZ109XCJ7bW9kZTogJ3ByaW1lJyxcclxuICAgICAgICAgICAgICAgIGNvbG9yUGFsZXR0ZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIGxpbms6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBmaWxlOnRydWUsXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogJ1JlY29tbWVuZGVkIGFjdGlvbnMnfVwiIChuZ01vZGVsQ2hhbmdlKT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSZWNvbW1lbmRhdGlvbj8udHJpbSgpPy5sZW5ndGggPiAwID8gcmVtb3ZlRXJyb3IoJ2lzc3VlUmVjb21tZW5kYXRpb24nKTpudWxsXCJcclxuICAgICAgICAgICAgICAgIChjbGlja091dHNpZGUpPVwiY2hlY2tEZXNjcmlwdGlvbigpXCIgKHNlbmRTYXZlZEZpbGVzKT1cInNlbGVjdEZpbGUoJ1JFQ09NTUVOREVEX0FDVElPTlMnLCRldmVudClcIj48L3Zjb21wbHktZWRpdG9yPlxyXG4gICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWVsZHNXaXRoRXJyb3IuaW5jbHVkZXMoJ2lzc3VlUmVjb21tZW5kYXRpb24nKVwiPlNwZWNpZnkgdGhlIHJlY29tbWVuZGVkIGFjdGlvbnMgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLjwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tICpuZ0lmPVwiIWhpZGRlbkxpc3QuaW5jbHVkZXMoJ1JJU0tfQ0xBU1NJRklDQVRJT04nKVwiICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiIC0tPlxyXG4gICAgPCEtLSByZW1vdmVkIHRoZSBhYm92ZSBjb25kaXRpb24gc2luY2UgUmlzayBDbGFzc2lmaWNhdGlvbiBzaG91bGQgYmUgZGlzcGxheWVkIGJ5IGRlZmF1bHQgaW4gbG9nIGFuIGlzc3VlIGZvcm0gLS0+XHJcblxyXG4gICAgPCEtLSBSaXNrIENsYXNzaWZpY2F0aW9uIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgaWQ9XCJyaXNrX2NsYXNzaWZpY2F0aW9uXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSaXNrUmF0aW5nXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2Z1wiIGFsdD1cImltXCIgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZVJpc2tSYXRpbmdcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSaXNrUmF0aW5nXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mb3JtLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ2eC1jb250cm9sLXBhbmVsXCI+UmlzayBDbGFzc2lmaWNhdGlvbjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xhc3NpZmljYXRpb25cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsb3dcIiAqbmdGb3I9XCIgbGV0IGNsYXNzIG9mIHJpc2tDbGFzc2lmaWNhdGlvblwiIFtuZ0NsYXNzXT1cIltjbGFzcy5jbGFzc11cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIG5hbWU9XCJjbGFzc2lmaWNhdGlvblwiIFt2YWx1ZV09XCJjbGFzcy52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUmlza1JhdGluZyA9PT0gY2xhc3MudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVSaXNrUmF0aW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7Y2xhc3MubmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIEV4Y2VwdGlvbiBUeXBlIC0tPlxyXG4gICAgPGRpdiBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCIgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5FWENFUFRJT05fVFlQRVwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID4gLTFcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnXCIgYWx0PVwiaW1cIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA9PT0gbnVsbFwiPlxyXG5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5leGNlcHRpb25UeXBlID4gLTFcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPkV4Y2VwdGlvbiBUeXBlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxhcHAtY3MtcmFkaW8gY2xhc3M9XCJtYWluLWZpbGVkXCIgW3ZhbHVlXT1cIjFcIiBuYW1lPVwiZXhjZXB0aW9uLXR5cGVcIiBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV4Y2VwdGlvblR5cGUgPT09IDFcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwic2V0RXhjZXB0aW9uKDEpXCI+RGVzaWduIEV4Y2VwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBjbGFzcz1cIm1haW4tZmlsZWRcIiBbdmFsdWVdPVwiMlwiIG5hbWU9XCJleGNlcHRpb24tdHlwZVwiIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXhjZXB0aW9uVHlwZSA9PT0gMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoZWNrZWRFdmVudCk9XCJzZXRFeGNlcHRpb24oMilcIj5FZmZlY3RpdmVuZXNzIEV4Y2VwdGlvblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MWY7PC9pPiAtLT5cclxuICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gUHJpb3JpdHkgLS0+XHJcbiAgICA8ZGl2IFthcHBTY3JvbGxJblZpZXddPVwic2Nyb2xsVG9Cb3R0b21cIiBjbGFzcz1cImZvcm0tZ3JvdXAtcm93XCIgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLlBSSU9SSVRZXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHlcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcHJpb3JpdHkuc3ZnXCIgYWx0PVwiaW1cIiAqbmdJZj1cIiFsb2dJc3N1ZUZvcm0/Lmlzc3VlUHJpb3JpdHlcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eSA+IDBcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPlByaW9yaXR5PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbGFzc2lmaWNhdGlvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCAqbmdGb3I9XCIgbGV0IHByaW9yaXR5IG9mIHJpc2tQcm9yaXR5XCIgW25nQ2xhc3NdPVwiW3ByaW9yaXR5LmNsYXNzXVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgbmFtZT1cImNsYXNzaWZpY2F0aW9uLXByaW9yaXR5XCIgW3ZhbHVlXT1cInByaW9yaXR5LnZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVQcmlvcml0eSA9PT0gcHJpb3JpdHkudmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVQcmlvcml0eVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e3ByaW9yaXR5Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBBc3NvY2lhdGVkIFJpc2tzIC0tPlxyXG4gICAgPGRpdiBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCIgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5BU1NPQ0lBVEVEX1JJU0tTXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiYWN0aXZlRmllbGQgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIiBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlza1wiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3NvY2lhdGVkLXJpc2tzLnN2Z1wiIGFsdD1cImltXCIgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUFzc29jaWF0ZWRSaXNrLnRyaW0oKS5sZW5ndGhcIj5cclxuXHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjaGVja0ljb25cIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgdmlld0JveD1cIjAgMCA1MiA1MlwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uaXNzdWVBc3NvY2lhdGVkUmlzay50cmltKCkubGVuZ3RoXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5Bc3NvY2lhdGVkIFJpc2tzIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiQXR0YWNobWVudFRyYWNrWzJdPy5sZW5ndGggPiAwIFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0XCIgKm5nRm9yPVwibGV0IHVwbG9hZGluZ0ZpbGUgb2YgQXR0YWNobWVudFRyYWNrWzJdXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZpbGUtbmFtZVwiPnt7dXBsb2FkaW5nRmlsZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50cz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmlsZS1saXN0XCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgbG9nSXNzdWVGb3JtPy5hc3NvY2lhdGVkUmlza3NBdHRhY2htZW50c1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGUtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlLW5hbWVcIj57e2ZpbGU/Lm5hbWV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUZpbGUoZmlsZSwnQVNTT0NJQVRFRF9SSVNLUycpXCI+JiN4ZTkwZDs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8dmNvbXBseS1lZGl0b3IgWyhuZ01vZGVsKV09XCJsb2dJc3N1ZUZvcm0uaXNzdWVBc3NvY2lhdGVkUmlza1wiIFtlZGl0b3JDb25maWddPVwie21vZGU6ICdwcmltZScsXHJcbiAgICAgICAgICAgICAgICBjb2xvclBhbGV0dGU6IHRydWUsXHJcbiAgICAgICAgICAgICAgICBsaW5rOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgZmlsZTpmYWxzZSxcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiAnQXNzb2NpYXRlZCBSaXNrcyd9XCIgKGNsaWNrT3V0c2lkZSk9XCJjaGVja0Rlc2NyaXB0aW9uKClcIiAoc2VuZFNhdmVkRmlsZXMpPVwic2VsZWN0RmlsZSgnQVNTT0NJQVRFRF9SSVNLUycsJGV2ZW50KVwiPjwvdmNvbXBseS1lZGl0b3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBPdmVyc2VlciAtLT5cclxuICAgIDxkaXYgW2FwcFNjcm9sbEluVmlld109XCJzY3JvbGxUb0JvdHRvbVwiIGNsYXNzPVwiZm9ybS1ncm91cC1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cImZhbHNlXCIgKm5nSWY9XCJhZGRpdGlvbmFsT3B0aW9uU3RhdHVzLk9WRVJTSUdIVFwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmICEoWydJU1NVRV9DQycsJ0lTU1VFX0ZDQyddLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKSkgJiYgc2lkZVNlbGVjdG9yRWxlbWVudHMuaW5jbHVkZXMoYWN0aXZlRmllbGQpXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIlxyXG4gICAgICAgICAgICBbY2xhc3MuY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMCB8fCBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmdcIiBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIobG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMCAmJiBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPT09IDApfHwgYWN0aXZlRmllbGQgPT09ICdJU1NVRV9DQyd8fCBhY3RpdmVGaWVsZCA9PT0gJ0lTU1VFX0ZDQycgXCI+XHJcblxyXG4gICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2hlY2tJY29uXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDAgfHwgbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMCAmJiBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0NDJ3x8ICBhY3RpdmVGaWVsZCAhPT0gJ0lTU1VFX0ZDQydcIlxyXG4gICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNTIgNTJcIj5cclxuICAgICAgICAgICAgICAgIDxjaXJjbGUgY2xhc3M9XCJjaGVja0ljb25fX2NpcmNsZVwiIGN4PVwiMjZcIiBjeT1cIjI2XCIgcj1cIjI1XCIgZmlsbD1cIm5vbmVcIiAvPlxyXG4gICAgICAgICAgICAgICAgPHBhdGggY2xhc3M9XCJjaGVja0ljb25fX2NoZWNrXCIgZmlsbD1cIm5vbmVcIiBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiIC8+XHJcbiAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyaWdodFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZm9ybS1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidngtY29udHJvbC1wYW5lbFwiPk92ZXJzaWdodDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnMgfHwgbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9DQycsJ0lTU1VFX0NDJylcIiBwbGFjZWhvbGRlcj1cIldobyBzaG91bGQgaGF2ZSBvdmVyc2lnaHQgb2YgdGhpcyBpc3N1ZT9cIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcENvbnRhaW5lciB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LXBsLTIgdngtcHItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTEwIHZ4LXBhcmFncmFwaC10eHQgdngtbXItMVwiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9DQycsbG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0pXCI+JiN4ZTlhZTs8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcE5hbWUgdngtZnMtMTEgdngtbGFiZWwtdHh0XCIgW2FwcFRvb2x0aXBdPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnNbMF0/LmVtcGxveWVlX25hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCI+e3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIkNDLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCIgKm5nSWY9XCJsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiPit7e2xvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzPy5zbGljZSgxKS5sZW5ndGh9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjaGlwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoaXBcIj48aSBjbGFzcz1cImljb25zXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0NDJyxsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vyc1swXSlcIj4mI3hlOTBkOzwvaT57e2xvZ0lzc3VlRm9ybT8uaXNzdWVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJjb3VudFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5pc3N1ZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIiB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiQ0MucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIj4re3tsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSdJU1NVRV9DQydcIiBjbGFzcz1cImVkaXRcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0NDJywnSVNTVUVfQ0MnKVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCIgKm5nSWY9XCIhbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2VycyB8fCBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzPy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgKGNsaWNrKT1cInNldEFjdGl2ZUZpZWxkU2VsZWN0b3IoJ0lTU1VFX0ZDQycsJ0lTU1VFX0ZDQycpXCIgdHlwZT1cInRleHRcIiBwbGFjZWhvbGRlcj1cIldobyBzaG91bGQgYmUgbm90aWZpZWQgaWYgdGhlIGlzc3VlIGlzIG5vdCByZXNvbHZlZD9cIiByZWFkb25seT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RlZFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGlwQ29udGFpbmVyIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtcGwtMiB2eC1wci0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTAgdngtcGFyYWdyYXBoLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cImRlbGV0ZUl0ZW0oJ0lTU1VFX0ZDQycsbG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXSlcIj4mI3hlOWFlOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjaGlwTmFtZSB2eC1mcy0xMSB2eC1sYWJlbC10eHRcIiBbYXBwVG9vbHRpcF09XCJsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdPy5lbXBsb3llZV9uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiPnt7bG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRCdG4gdngtZnMtOSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXIgdngtbGgtNFwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cIkZDQy5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiICpuZ0lmPVwibG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8ubGVuZ3RoID4gMVwiPit7e2xvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/LnNsaWNlKDEpLmxlbmd0aH19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hpcFwiPjxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfRkNDJyxsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzWzBdKVwiPiYjeGU5MGQ7PC9pPnt7bG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vyc1swXT8uZW1wbG95ZWVfbmFtZX19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY291bnRcIiAqbmdJZj1cImxvZ0lzc3VlRm9ybT8uZmFpbHVyZUNDVXNlcnM/Lmxlbmd0aCA+IDFcIiB0eXBlPVwiYnV0dG9uXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwiRkNDLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+K3t7bG9nSXNzdWVGb3JtPy5mYWlsdXJlQ0NVc2Vycz8uc2xpY2UoMSkubGVuZ3RofX08L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImFjdGl2ZUZpZWxkICE9PSdJU1NVRV9GQ0MnXCIgY2xhc3M9XCJlZGl0XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZXRBY3RpdmVGaWVsZFNlbGVjdG9yKCdJU1NVRV9GQ0MnLCdJU1NVRV9GQ0MnKVwiPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOWJhOzwvaT5FZGl0PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjQ0MgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndmLWFjdGlvbi1saXN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBjYyBvZiBsb2dJc3N1ZUZvcm0/Lmlzc3VlQ0NVc2VycyB8IHNsaWNlOiAxOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnNcIiAoY2xpY2spPVwiZGVsZXRlSXRlbSgnSVNTVUVfQ0MnLGNjKVwiPiYjeGU5MGQ7PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2NjPy5lbXBsb3llZV9uYW1lIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxyXG4gICAgICAgICAgICA8YXBwLXBvcG92ZXIgI0ZDQyBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJhY3Rpb24taXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgKm5nRm9yPVwibGV0IGZjYyBvZiBsb2dJc3N1ZUZvcm0/LmZhaWx1cmVDQ1VzZXJzIHwgc2xpY2U6IDE7IGxldCBqID0gaW5kZXhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItY2FyZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29uc1wiIChjbGljayk9XCJkZWxldGVJdGVtKCdJU1NVRV9GQ0MnLGZjYylcIj4mI3hlOTBkOzwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tmY2M/LmVtcGxveWVlX25hbWUgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIEV2aWRlbmNlIC0tPlxyXG4gICAgPGRpdiBbYXBwU2Nyb2xsSW5WaWV3XT1cInNjcm9sbFRvQm90dG9tXCIgY2xhc3M9XCJmb3JtLWdyb3VwLXJvd1wiICpuZ0lmPVwiYWRkaXRpb25hbE9wdGlvblN0YXR1cy5FVklERU5DRVwiXHJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFjdGl2ZUZpZWxkICYmIHNpZGVTZWxlY3RvckVsZW1lbnRzLmluY2x1ZGVzKGFjdGl2ZUZpZWxkKVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCIgW2NsYXNzLmNoZWNrZWRdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICA8IS0tIDxpbWcgc3JjPVwiaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2Zvcm1hdC1ldmlkZW5jZS5zdmdcIiBhbHQ9XCJpbVwiPiAtLT5cclxuICAgICAgICAgICAgPHN2ZyBjbGFzcz1cImNoZWNrSWNvblwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDUyIDUyXCI+XHJcbiAgICAgICAgICAgICAgICA8Y2lyY2xlIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIiBjeD1cIjI2XCIgY3k9XCIyNlwiIHI9XCIyNVwiIGZpbGw9XCJub25lXCIgLz5cclxuICAgICAgICAgICAgICAgIDxwYXRoIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiIGZpbGw9XCJub25lXCIgZD1cIk0xNC4xIDI3LjJsNy4xIDcuMiAxNi43LTE2LjhcIiAvPlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWZvcm0tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInZ4LWNvbnRyb2wtcGFuZWxcIj5FdmlkZW5jZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWZvcm1hdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dFwiPkRvIHlvdSB3YW50IGV2aWRlbmNlIG9mIGNvbXBsZXRpb24gb2YgdGhlIGlzc3VlIHRvIGJlIHVwbG9hZGVkPzwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmFkaW8tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyBbbmFtZV09XCInZmlsZS1ldmlkZW5jZSdcIiBbdmFsdWVdPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJsb2dJc3N1ZUZvcm0/LmV2aWRlbmNlUmVxdWlyZWQgPT09IDFcIiAoY2hlY2tlZEV2ZW50KT1cInNldEV2aWRlbmNlKDEpXCI+WWVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYXBwLWNzLXJhZGlvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvIFtuYW1lXT1cIidmaWxlLWV2aWRlbmNlJ1wiIFt2YWx1ZV09XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImxvZ0lzc3VlRm9ybT8uZXZpZGVuY2VSZXF1aXJlZCA9PT0gMFwiIChjaGVja2VkRXZlbnQpPVwic2V0RXZpZGVuY2UoMClcIj5Ob1xyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2FwcC1jcy1yYWRpbz5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cImxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XHJcbjxhcHAtcmFkaW8tbGlzdCBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9DQVRHT1JZXCIgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8uY2F0ZWdvcnlMaXN0XCJcclxuICAgIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZUNhdGVnb3J5XCIgW2lkZW50aWZpZXJLZXldPVwiJ2NhdGVnb3J5X2lkJ1wiXHJcbiAgICBbZGlzcGxheUtleV09XCInY2F0ZWdvcnlfbmFtZSdcIiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J0lTU1VFX0NBVEVHT1JZJ1wiXHJcbiAgICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCdJU1NVRV9DQVRFR09SWScpXCIgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX0NBVEVHT1JZJylcIj5cclxuPC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjwhLS0gPGFwcC1yYWRpby1saXN0IFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1JDXCIgW2l0ZW1zTGlzdF09XCJsaXN0RGF0YT8ucmNMaXN0XCJcclxuICAgIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVJDXCIgW2lkZW50aWZpZXJLZXldPVwiJ3JjX2lkJ1wiIFtkaXNwbGF5S2V5XT1cIidyY19uYW1lJ1wiXHJcbiAgICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J0lTU1VFX1JDJ1wiIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsJ0lTU1VFX1JDJylcIlxyXG4gICAgKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX1JDJylcIj48L2FwcC1yYWRpby1saXN0PiAtLT5cclxuXHJcbjxhcHAtY2hlY2tib3gtbGlzdCBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9SQ1wiIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbltpdGVtc0xpc3RdPVwibGlzdERhdGE/LnJjTGlzdFwiIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybT8uaXNzdWVSQ1wiIFtpZGVudGlmaWVyS2V5XT1cIidyY19pZCdcIiBbZGlzcGxheUtleV09XCIncmNfbmFtZSdcIiBbdG9vbHRpcEtleV09XCIncmNfbmFtZSdcIiAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J0lTU1VFX1JDJ1wiICAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCdJU1NVRV9SQycpXCJcclxuKGNsb3NlTGlzdCk9XCJmaWVsZERlc2VsZWN0b3IoJ0lTU1VFX1JDJylcIj48L2FwcC1jaGVja2JveC1saXN0PlxyXG5cclxuPGFwcC1yYWRpby1saXN0IFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1dIT1wiIFtpdGVtc0xpc3RdPVwibGlzdERhdGE/LnVzZXJMaXN0XCIgW3R3b0NvbHVtbl09XCJ0cnVlXCJcclxuICAgIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5lbnRydXN0VG9cIiBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfaWQnXCIgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCIgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J0lTU1VFX1dITydcIiAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCdJU1NVRV9XSE8nKVwiXHJcbiAgICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfV0hPJylcIj48L2FwcC1yYWRpby1saXN0PlxyXG5cclxuPGFwcC1yYWRpby1saXN0IFtjb25maWddPVwic2VsZWN0b3JDb25maWc/LklTU1VFX1RZUEVcIiBbaXRlbXNMaXN0XT1cImxpc3REYXRhPy5pc3N1ZVR5cGVMaXN0XCJcclxuICAgIFtzZWxlY3RlZEl0ZW1zXT1cImxvZ0lzc3VlRm9ybS5pc3N1ZVR5cGVcIiBbaWRlbnRpZmllcktleV09XCInaXNzdWVfaWQnXCIgW2Rpc3BsYXlLZXldPVwiJ2lzc3VlX3R5cGVfbmFtZSdcIlxyXG4gICAgKm5nSWY9XCJhY3RpdmVTZWxlY3Rvcj09PSdJU1NVRV9UWVBFJ1wiIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsJ0lTU1VFX1RZUEUnKVwiXHJcbiAgICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfVFlQRScpXCI+PC9hcHAtcmFkaW8tbGlzdD5cclxuXHJcbjxhcHAtY2hlY2tib3gtbGlzdCBbY29uZmlnXT1cInNlbGVjdG9yQ29uZmlnPy5JU1NVRV9DQ1wiIFt0d29Db2x1bW5dPVwidHJ1ZVwiXHJcbiAgICBbaXRlbXNMaXN0XT1cImxpc3REYXRhLnVzZXJMaXN0fHVzZXJGaWx0ZXI6J2VtcGxveWVlX2VtYWlsJzpsb2dJc3N1ZUZvcm0uZW50cnVzdFRvOnsnZW1wbG95ZWVfZW1haWwnOmN1cnJlbnRVc2VyPy5lbWFpbH1cIlxyXG4gICAgW3NlbGVjdGVkSXRlbXNdPVwibG9nSXNzdWVGb3JtLmlzc3VlQ0NVc2Vyc1wiIFtpZGVudGlmaWVyS2V5XT1cIidlbXBsb3llZV9lbWFpbCdcIiBbZGlzcGxheUtleV09XCInZW1wbG95ZWVfbmFtZSdcIiBbdG9vbHRpcEtleV09XCInZW1wbG95ZWVfZW1haWwnXCJcclxuICAgICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3I9PT0nSVNTVUVfQ0MnXCIgKHNhdmVMaXN0KT1cInNlbGVjdG9yQWN0aW9uKCRldmVudCwnSVNTVUVfQ0MnKVwiXHJcbiAgICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ0MnKVwiPjwvYXBwLWNoZWNrYm94LWxpc3Q+XHJcblxyXG48YXBwLWNoZWNrYm94LWxpc3QgW2NvbmZpZ109XCJzZWxlY3RvckNvbmZpZz8uSVNTVUVfRkNDXCIgW3R3b0NvbHVtbl09XCJ0cnVlXCJcclxuICAgIFtpdGVtc0xpc3RdPVwibGlzdERhdGEudXNlckxpc3R8dXNlckZpbHRlcjonZW1wbG95ZWVfZW1haWwnOmxvZ0lzc3VlRm9ybS5lbnRydXN0VG86eydlbXBsb3llZV9lbWFpbCc6Y3VycmVudFVzZXI/LmVtYWlsfVwiXHJcbiAgICBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0uZmFpbHVyZUNDVXNlcnNcIiBbaWRlbnRpZmllcktleV09XCInZW1wbG95ZWVfZW1haWwnXCIgW2Rpc3BsYXlLZXldPVwiJ2VtcGxveWVlX25hbWUnXCIgW3Rvb2x0aXBLZXldPVwiJ2VtcGxveWVlX2VtYWlsJ1wiXHJcbiAgICAqbmdJZj1cImFjdGl2ZVNlbGVjdG9yPT09J0lTU1VFX0ZDQydcIiAoc2F2ZUxpc3QpPVwic2VsZWN0b3JBY3Rpb24oJGV2ZW50LCdJU1NVRV9GQ0MnKVwiXHJcbiAgICAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfRkNDJylcIj48L2FwcC1jaGVja2JveC1saXN0PlxyXG5cclxuPGFwcC1yZXNwb25zaWJpbGl0eS1yaXNrLXNlbGVjdG9yIFtsb2FkaW5nXT1cImlzUmlza0NvbnRyb2xMb2FkaW5nXCIgICpuZ0lmPVwiYWN0aXZlU2VsZWN0b3I9PT0nSVNTVUVfQ09OVFJPTF9SSVNLJ1wiXHJcbiAoY2xvc2VMaXN0KT1cImZpZWxkRGVzZWxlY3RvcignSVNTVUVfQ09OVFJPTF9SSVNLJylcIiAoZmV0Y2hMaXN0KT1cImdldExpbmthZ2UoaXNzdWVEZXRhaWxzPy5hdWRpdE9iaklkLCAkZXZlbnQpXCJcclxuIChzYXZlTGlzdCk9XCJzZWxlY3RvckFjdGlvbigkZXZlbnQsJ0lTU1VFX0NPTlRST0xfUklTSycpXCJcclxuW2FjdGl2ZUVudGl0eV09XCJsb2dJc3N1ZUZvcm0/LmxpbmthZ2VUeXBlXCIgW2xpc3RJdGVtc109XCJsaXN0RGF0YT8ubGlua2FnZUxpc3RcIiBbc2VsZWN0ZWRJdGVtc109XCJsb2dJc3N1ZUZvcm0/LmxpbmtlZENvbnRyb2xSaXNrXCI+PC9hcHAtcmVzcG9uc2liaWxpdHktcmlzay1zZWxlY3Rvcj5cclxuXHJcbjxhcHAtc21pbGV5LWRpYWxvZy1pbmxpbmVcclxuICAgICpuZ0lmPVwic2hvd1NtaWxleVwiXHJcbiAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICAgIFthY3Rpb25CdXR0b25zXT1cImFjdGlvbkJ1dHRvbnNcIlxyXG4gICAgKGFjdGlvbik9XCJhY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAoY2xvc2VTbWlsZXkpPVwiY2xvc2VTbWlsZXkoJGV2ZW50KVwiPlxyXG48L2FwcC1zbWlsZXktZGlhbG9nLWlubGluZT5cclxuIl19