bpm-core 0.0.20 → 0.0.21

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.
@@ -1,28 +1,31 @@
1
- import { Component, CUSTOM_ELEMENTS_SCHEMA, Input, ViewChild } from '@angular/core';
2
- import { ComponentOutletIoDirective } from 'ng-dynamic-component';
1
+ import { Component, CUSTOM_ELEMENTS_SCHEMA, Input } from '@angular/core';
2
+ import { ComponentOutletIoDirective, DynamicModule } from 'ng-dynamic-component';
3
3
  import { NgClass, NgComponentOutlet, NgIf } from '@angular/common';
4
4
  import { MatExpansionModule, MatExpansionPanel } from '@angular/material/expansion';
5
5
  import { SatPopoverModule } from '@ncstate/sat-popover';
6
+ import { ProfileInfoDrop } from '../../../interfaces';
6
7
  import * as Constants from '../../../constants';
7
8
  import * as moment from 'moment';
9
+ import { ProfileSectionComponent } from "../profile-section/profile-section.component";
8
10
  import * as i0 from "@angular/core";
9
11
  import * as i1 from "../../../services";
10
12
  import * as i2 from "@angular/material/expansion";
11
- import * as i3 from "@ncstate/sat-popover";
13
+ import * as i3 from "ng-dynamic-component";
12
14
  export class FormSectionComponent {
13
15
  i18n;
14
- userType = 'receipient';
15
- popover;
16
- popoverType = 'receipient';
17
- popoverPosition = { top: 0, left: 0 };
16
+ coreService;
17
+ sidenavService;
18
+ userType = 'recipient';
19
+ // @ViewChild('popover') popover?: any;
20
+ popoverType = 'recipient';
18
21
  requestDetails;
19
22
  userPopoverInfo = {};
20
23
  section;
21
24
  form;
22
25
  lov;
23
26
  isReadOnly;
24
- isOpen;
25
- isFinalApproval;
27
+ // @Input() isOpen: boolean;
28
+ // @Input() isFinalApproval: boolean;
26
29
  controllers;
27
30
  segmentDynamicLoaderService;
28
31
  sectionFormComponent = null;
@@ -30,7 +33,7 @@ export class FormSectionComponent {
30
33
  sectionNumber;
31
34
  sectionStatusValue;
32
35
  sectionStatusKey;
33
- receipient = {
36
+ recipient = {
34
37
  isShowing: false,
35
38
  profile: null
36
39
  };
@@ -39,12 +42,14 @@ export class FormSectionComponent {
39
42
  profile: null
40
43
  };
41
44
  input;
42
- highlightFlag;
45
+ // highlightFlag: boolean;
43
46
  processingDate;
44
47
  randomID = Math.floor(Math.random() * (999999 - 100000)) + 100000;
45
- constructor(i18n) {
48
+ constructor(i18n, coreService, sidenavService) {
46
49
  this.i18n = i18n;
47
- this.highlightFlag = false;
50
+ this.coreService = coreService;
51
+ this.sidenavService = sidenavService;
52
+ // this.highlightFlag = false;
48
53
  }
49
54
  ngOnInit() {
50
55
  this.sectionFormComponent = this.segmentDynamicLoaderService.getComponent(this.section.id);
@@ -54,7 +59,6 @@ export class FormSectionComponent {
54
59
  else {
55
60
  this.sectionName = this.segmentDynamicLoaderService.getSectionName(this.section.id);
56
61
  }
57
- console.log('sectionFormComponent', this.sectionFormComponent);
58
62
  this.input = {
59
63
  isReadOnly: this.isReadOnly,
60
64
  lov: this.lov,
@@ -67,42 +71,46 @@ export class FormSectionComponent {
67
71
  .locale('en-US')
68
72
  .format('DD/MM/YYYY HH:mm:ss');
69
73
  }
70
- this.highlightFlag = this.isOpen;
74
+ // this.highlightFlag = this.isOpen;
71
75
  const x = document.querySelectorAll('#collapse' + this.sectionId());
72
76
  if (x.length > 0) {
73
77
  this.sectionNumber = x.length;
74
78
  }
75
79
  }
76
- ngOnChanges() {
77
- if (this.section.id !== 'requestDetails' &&
78
- this.section.id !== 'hrRequestDetails' &&
79
- !this.sectionStatusKey &&
80
- this.section.body.details.decision &&
81
- this.section.body.details.decision.key) {
82
- this.sectionStatusKey = this.section.body.details.decision.key;
80
+ /* ngOnChanges() {
81
+ if (
82
+ this.section.id !== 'requestDetails' &&
83
+ this.section.id !== 'hrRequestDetails' &&
84
+ !this.sectionStatusKey &&
85
+ this.section.body.details.decision &&
86
+ this.section.body.details.decision.key
87
+ ) {
88
+ this.sectionStatusKey = this.section.body.details.decision.key;
83
89
  }
84
- if (this.section.id !== 'requestDetails' &&
85
- this.section.id !== 'hrRequestDetails' &&
86
- !this.sectionStatusValue &&
87
- this.section.body.details.decision &&
88
- this.section.body.details.decision.value) {
89
- this.sectionStatusValue = this.section.body.details.decision.value;
90
+ if (
91
+ this.section.id !== 'requestDetails' &&
92
+ this.section.id !== 'hrRequestDetails' &&
93
+ !this.sectionStatusValue &&
94
+ this.section.body.details.decision &&
95
+ this.section.body.details.decision.value
96
+ ) {
97
+ this.sectionStatusValue = this.section.body.details.decision.value;
90
98
  }
91
- }
92
- ngAfterViewInit() {
93
- this.ServicesSubScriptions();
94
- }
99
+ }*/
100
+ /* ngAfterViewInit() {
101
+ this.ServicesSubScriptions();
102
+ }*/
95
103
  get isExpanded() {
96
104
  const isExpandableFromBackend = this.form?.sections?.length && this.form.sections.some(section => 'expandStage' in section?.body?.details);
97
105
  if (!isExpandableFromBackend)
98
106
  return true;
99
107
  return this.section?.body?.details?.expandStage === 'true';
100
108
  }
101
- ServicesSubScriptions() {
102
- /* this.profileRequestorService.getForm().subscribe((data) => {
103
- this.form = data;
104
- });*/
105
- }
109
+ /* public ServicesSubScriptions() {
110
+ /!* this.profileRequestorService.getForm().subscribe((data) => {
111
+ this.form = data;
112
+ });*!/
113
+ }*/
106
114
  ngAfterViewChecked() {
107
115
  this.input = {
108
116
  isReadOnly: this.isReadOnly,
@@ -115,85 +123,33 @@ export class FormSectionComponent {
115
123
  sectionId() {
116
124
  return this.section.id.split(' ').join('') + this.randomID;
117
125
  }
118
- getSectionName() {
119
- return this.section.id;
126
+ createUserProfileFromResponse(response) {
127
+ return new ProfileInfoDrop(false, response?.["Users"][0]?.employeeNumber, response?.["Users"][0]?.email, response?.["Users"][0]?.name, response?.["Users"][0]?.generalDepartment?.name, response?.["Users"][0]?.position?.name, response?.["Users"][0]?.sector?.name, response?.["Users"][0]?.department?.name, response?.["Users"][0]?.generalDepartment?.code, response?.["Users"][0]?.location, response?.["Users"][0]?.nationality?.desc, response?.["Users"][0]?.contact?.mobile, response?.["Users"][0]?.manager?.name, response?.["Users"][0]?.seniorSectorName?.name);
120
128
  }
121
- getFormStepStatus(key) {
122
- let status = 'NOT_FOUND_IN_LOV';
123
- if (this.lov.formStepStatus && this.lov.formStepStatus.options) {
124
- this.lov.formStepStatus.options.forEach((option) => {
125
- if (option.value === key) {
126
- status = option.description;
127
- }
128
- });
129
- }
130
- return status;
129
+ openOrCreateUserProfile(userData, personType) {
130
+ this.sidenavService.data = userData;
131
+ this.userPopoverInfo = userData;
132
+ this[personType].profile = userData;
133
+ this.sidenavService.publish('open', ProfileSectionComponent);
131
134
  }
132
135
  toggleSmallProfileInfo(event, personType) {
133
136
  this.userType = personType;
134
137
  event.stopPropagation();
135
- const userInfo = this[personType];
138
+ let userInfo = this[personType];
136
139
  if (userInfo.profile === null) {
137
140
  this.popoverType = personType;
138
- const userEmail = personType === 'receipient'
139
- ? this.section.header.personToThumbnail.split('=')[1]
140
- : this?.section?.header?.delegatedToThumbnail.split('=')[1];
141
- /*this.stateMachine
142
- .dispatch(Constants.STATE_MACHINE_ACTION_EMPLOYEE_PROFILE, userEmail)
143
- .then((response) => {
144
- console.log(this, response);
145
-
141
+ let userEmail = (personType === 'recipient' ? this.section.header.personToThumbnail.split('=')[1] : this?.section?.header?.delegatedToThumbnail.split('=')[1]);
142
+ this.coreService.employeeProfile(userEmail).subscribe((response) => {
146
143
  if (response) {
147
- this[personType].profile = response;
148
- this.popoverPosition = {
149
- top: 10,
150
- left:
151
- event.target.getBoundingClientRect().left +
152
- event.target.getBoundingClientRect().width / 4
153
- };
154
- this.popover.anchor = event.target;
155
- this.popover.open();
156
- this.userPopoverInfo = response;
144
+ let userData = this.createUserProfileFromResponse(response);
145
+ this.openOrCreateUserProfile(userData, personType);
157
146
  }
158
- });*/
159
- }
160
- else {
161
- this.userPopoverInfo = this[personType].profile;
162
- this.popoverPosition = {
163
- top: 10,
164
- left: event.target.getBoundingClientRect().left +
165
- event.target.getBoundingClientRect().width / 4
166
- };
167
- this.popover.anchor = event.target;
168
- this.popover.open();
169
- }
170
- }
171
- statusIconClass(status, type) {
172
- if (status) {
173
- if (status === Constants.FORM_STATUS_REJECTED ||
174
- status === Constants.FORM_STATUS_CANCELLED ||
175
- status.toLowerCase() === 'reject' ||
176
- status.toLowerCase() === 'unsatisfied' ||
177
- status.toLowerCase().includes('deny') ||
178
- status.toLowerCase().includes('reject') ||
179
- status.toLowerCase() === 'cancel') {
180
- return type === 'status?' ? 'danger' : 'close';
181
- }
182
- else if (status === Constants.FORM_STATUS_PENDING ||
183
- status.toLowerCase() === 'pending') {
184
- return type === 'status?' ? 'warning' : 'clock';
185
- }
186
- else {
187
- return type === 'status?' ? 'success' : 'check';
188
- }
147
+ });
189
148
  }
190
149
  else {
191
- return type === 'status?' ? 'success' : 'check';
150
+ this.openOrCreateUserProfile(this[personType].profile, personType);
192
151
  }
193
152
  }
194
- locationHref(hrefLink) {
195
- window.location.href = hrefLink;
196
- }
197
153
  statusClass(status) {
198
154
  if (status) {
199
155
  if (status === Constants.FORM_STATUS_REJECTED || status === Constants.FORM_STATUS_CANCELLED
@@ -228,8 +184,8 @@ export class FormSectionComponent {
228
184
  return 'check';
229
185
  }
230
186
  }
231
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, deps: [{ token: i1.CoreI18nService }], target: i0.ɵɵFactoryTarget.Component });
232
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FormSectionComponent, isStandalone: true, selector: "app-form-section", inputs: { requestDetails: "requestDetails", section: "section", form: "form", lov: "lov", isReadOnly: "isReadOnly", isOpen: "isOpen", isFinalApproval: "isFinalApproval", controllers: "controllers", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["popover"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<!-- <div class=\"panel-heading\" role=\"button\" [id]=\"sectionId()\" *ngIf=\"showHeader()\"> -->\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIconClass(sectionStatusKey,'icon')}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <ng-container *ngIf=\"(!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'receipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\"\r\n [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"\r\n alt=\"\" />\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.decision?.key\"\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\">{{ sectionStatusValue }}\r\n </ds-status>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] === 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" horizontalAlign=\"center\" verticalAlign=\"above\">\r\n <div class=\"delegate-info-popup\">\r\n <ds-avatar *ngIf=\"userType === 'receipient'\" image=\"{{section?.header?.personToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <ds-avatar *ngIf=\"userType === 'delegate'\" image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <div class=\"delegate-info mx-0\">\r\n <div class=\"fs-16 fw-medium fc-black mb-0\">{{ userPopoverInfo?.name }}</div>\r\n <div class=\"fs-12 fw-normal fc-black mb-2\">{{ userPopoverInfo?.job?.name }}</div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.work)\">{{ userPopoverInfo?.contact?.work }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.mobile)\">{{ userPopoverInfo?.contact?.mobile }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"mail-o\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <span (click)=\"locationHref('mailto:'+ userPopoverInfo?.email)\">{{ userPopoverInfo?.email }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"], dependencies: [{ kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i2.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: ComponentOutletIoDirective, selector: "[ngComponentOutletNdcDynamicInputs],[ngComponentOutletNdcDynamicOutputs]", inputs: ["ngComponentOutletNdcDynamicInputs", "ngComponentOutletNdcDynamicOutputs"], exportAs: ["ndcDynamicIo"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "component", type: i3.SatPopoverComponent, selector: "sat-popover", inputs: ["anchor", "horizontalAlign", "xAlign", "verticalAlign", "yAlign", "forceAlignment", "lockAlignment", "autoFocus", "restoreFocus", "scrollStrategy", "hasBackdrop", "interactiveClose", "openTransition", "closeTransition", "openAnimationStartAtScale", "closeAnimationEndAtScale", "backdropClass", "panelClass"], outputs: ["opened", "closed", "afterOpen", "afterClose", "backdropClicked", "overlayKeydown"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
187
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, deps: [{ token: i1.CoreI18nService }, { token: i1.CoreService }, { token: i1.SidenavService }], target: i0.ɵɵFactoryTarget.Component });
188
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: FormSectionComponent, isStandalone: true, selector: "app-form-section", inputs: { requestDetails: "requestDetails", section: "section", form: "form", lov: "lov", isReadOnly: "isReadOnly", controllers: "controllers", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, ngImport: i0, template: "<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n\r\n <ng-container *ngIf=\"(!section?.body?.details?.['stage0']?.['isStage0'] || section?.body?.details?.['stage0']?.['isStage0'] === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-user-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n Test\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"], dependencies: [{ kind: "ngmodule", type: MatExpansionModule }, { kind: "component", type: i2.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: i2.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: ComponentOutletIoDirective, selector: "[ngComponentOutletNdcDynamicInputs],[ngComponentOutletNdcDynamicOutputs]", inputs: ["ngComponentOutletNdcDynamicInputs", "ngComponentOutletNdcDynamicOutputs"], exportAs: ["ndcDynamicIo"] }, { kind: "ngmodule", type: SatPopoverModule }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: DynamicModule }, { kind: "directive", type: i3.ComponentOutletInjectorDirective, selector: "[ngComponentOutlet]", exportAs: ["ndcComponentOutletInjector"] }] });
233
189
  }
234
190
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: FormSectionComponent, decorators: [{
235
191
  type: Component,
@@ -240,12 +196,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
240
196
  NgComponentOutlet,
241
197
  ComponentOutletIoDirective,
242
198
  SatPopoverModule,
243
- NgClass
244
- ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<!-- <div class=\"panel-heading\" role=\"button\" [id]=\"sectionId()\" *ngIf=\"showHeader()\"> -->\r\n<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIconClass(sectionStatusKey,'icon')}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n <ng-container *ngIf=\"(!section?.body?.details?.stage0?.isStage0 || section?.body?.details?.stage0?.isStage0 === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'receipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\"\r\n [ngClass]=\"{'panel-ueser-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"\r\n alt=\"\" />\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.decision?.key\"\r\n status=\"{{statusIconClass(sectionStatusKey,'status')}}\">{{ sectionStatusValue }}\r\n </ds-status>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n\r\n <section class=\"border-top pt-4\">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] === 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n\r\n<sat-popover #popover [hasBackdrop]=\"true\" horizontalAlign=\"center\" verticalAlign=\"above\">\r\n <div class=\"delegate-info-popup\">\r\n <ds-avatar *ngIf=\"userType === 'receipient'\" image=\"{{section?.header?.personToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <ds-avatar *ngIf=\"userType === 'delegate'\" image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\"></ds-avatar>\r\n <div class=\"delegate-info mx-0\">\r\n <div class=\"fs-16 fw-medium fc-black mb-0\">{{ userPopoverInfo?.name }}</div>\r\n <div class=\"fs-12 fw-normal fc-black mb-2\">{{ userPopoverInfo?.job?.name }}</div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.work)\">{{ userPopoverInfo?.contact?.work }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"phone\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <bdi (click)=\"locationHref('tel:'+ userPopoverInfo?.contact?.mobile)\">{{ userPopoverInfo?.contact?.mobile }}</bdi>\r\n </div>\r\n <div class=\"user-info fc-black fs-10 mb-1\">\r\n <ds-icon icon=\"mail-o\" class=\"fs-18 fc-dark-gray\"></ds-icon>\r\n <span (click)=\"locationHref('mailto:'+ userPopoverInfo?.email)\">{{ userPopoverInfo?.email }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</sat-popover>\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"] }]
245
- }], ctorParameters: () => [{ type: i1.CoreI18nService }], propDecorators: { popover: [{
246
- type: ViewChild,
247
- args: ['popover']
248
- }], requestDetails: [{
199
+ NgClass,
200
+ DynamicModule
201
+ ], schemas: [CUSTOM_ELEMENTS_SCHEMA], template: "<mat-expansion-panel\r\n class=\"mb-4\" [expanded]=\"isExpanded\" *ngIf=\"form?.header?.status?.['key'] !== 'NEW' \" hideToggle\r\n #approvalPanel=\"matExpansionPanel\">\r\n <mat-expansion-panel-header>\r\n\r\n <div class=\"approval-panel-container\">\r\n <div class=\"d-flex gap-2 flex-grow-1 approval-panel-title\">\r\n <ds-status\r\n status=\"{{statusClass(sectionStatusKey)}}\" no-opacity icon\r\n class=\"circle-status d-none d-sm-inline-block\">\r\n <ds-icon icon=\"{{statusIcon(sectionStatusKey)}}\"></ds-icon>\r\n </ds-status>\r\n <div class=\"d-flex flex-column flex-grow-1\">\r\n <span class=\"fs-16 fw-medium m-0\"> {{ sectionName }}</span>\r\n <bdi class=\"fs-12 fc-dark-gray fw-normal line-height-1 d-block mt-1\" *ngIf=\"section.header?.processedBy\">\r\n {{ processingDate }}\r\n </bdi>\r\n </div>\r\n </div>\r\n <div class=\"approval-panel-details gap-1\">\r\n\r\n <ng-container *ngIf=\"(!section?.body?.details?.['stage0']?.['isStage0'] || section?.body?.details?.['stage0']?.['isStage0'] === 'false')\">\r\n <div\r\n class=\"d-flex align-items-center gap-3\" *ngIf=\"section?.header?.personTo;\"\r\n (click)=\"$event.stopImmediatePropagation();\">\r\n <div\r\n (click)=\"toggleSmallProfileInfo($event, 'recipient')\"\r\n class=\"d-flex align-items-center gap-2 radius-3 h-40\"\r\n [ngClass]=\"{'user-avatar-name px-0 px-md-2': !section?.header?.delegatedTo, 'p-0': section?.header?.delegatedTo}\">\r\n <ds-avatar image=\"{{section?.header?.personToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\" [ngClass]=\"{'panel-user-only': !section?.header?.delegatedTo}\"\r\n *ngIf=\"!section?.header?.delegatedTo\">{{ section?.header?.personTo }}</span>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"section?.header?.delegatedTo\" class=\"d-flex align-items-center gap-3\"\r\n (click)=\"toggleSmallProfileInfo($event, 'delegate')\">\r\n <img\r\n class=\"rotate-arrow\"\r\n alt=\"\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMSIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDIxIDEzIj48cGF0aCBkPSJNMjEsNy43NjNhMS42MjEsMS42MjEsMCwwLDEtLjQ0Ny41OTMsMS4zMDYsMS4zMDYsMCwwLDEtLjc1LjE5NGMtNy4yODQsMC04LjU2OCwwLTE1Ljg1MywwSDMuNjY5TDMuNjMsOC42Yy4wNzcuMDY0LjE1OC4xMjQuMjI5LjE5NHExLjcxLDEuNjksMy40MiwzLjM4MWExLjAyMywxLjAyMywwLDAsMSwuMjkxLDEuMDc5Ljk5Mi45OTIsMCwwLDEtLjguNzE5LDEuMDUzLDEuMDUzLDAsMCwxLTEtLjMzMVEzLjgzMSwxMS43MTksMS44ODYsOS44Yy0uNDQyLS40MzctLjg3OS0uODgxLTEuMzMtMS4zMDlBNC41NzIsNC41NzIsMCwwLDEsMCw3LjgxNFY3LjE4NUEzMC43ODMsMzAuNzgzLDAsMCwxLDIuNzMsNC4zNzFjMS0xLjAyNywyLjAzOC0yLjAyNSwzLjA2My0zLjAzMkExLjA0OSwxLjA0OSwwLDEsMSw3LjI3NywyLjgyQzYuNCwzLjcsNS41MDksNC41Nyw0LjYyNSw1LjQ0NmMtLjMyMy4zMjEtLjY0NC42NDUtLjk3My45NzYuMDg0LjA1OS4xODEuMDI3LjI3LjAyNyw3LjI1OCwwLDguNTE2LDAsMTUuNzc1LDBBMS4xMjksMS4xMjksMCwwLDEsMjEsNy4yOXYuNDcyWiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAtMC45OTkpIiBmaWxsPSIjYTU0ZWUxIi8+PC9zdmc+\"/>\r\n <div class=\"d-flex align-items-center gap-2 px-0 px-md-2 radius-3 user-avatar-name h-40\">\r\n <ds-avatar image=\"{{section?.header?.delegatedToThumbnail}}\" size=\"small\" class=\"user-avatar\"></ds-avatar>\r\n <span\r\n class=\"fs-14 fw-medium d-inline-block panel-user-name text-truncate\">{{ section?.header?.delegatedTo }}</span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ds-status\r\n class=\"main-status\" *ngIf=\"section?.body?.details?.['decision']?.key;\"\r\n status=\"{{statusClass(section?.body?.details?.['decision']?.key)}}\">{{ section?.body?.details?.['decision']?.value }}\r\n </ds-status>\r\n </div>\r\n\r\n <div class=\"approval-panel-toggle\">\r\n <ds-icon icon=\"plus-1\" class=\"fs-20 fc-coral\" *ngIf=\"!approvalPanel.expanded\"></ds-icon>\r\n <ds-icon icon=\"minus\" class=\"fs-20 fc-dark-gray\" *ngIf=\"approvalPanel.expanded\"></ds-icon>\r\n </div>\r\n\r\n </div>\r\n </mat-expansion-panel-header>\r\n <section class=\"border-top pt-4\">\r\n Test\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n </section>\r\n\r\n</mat-expansion-panel>\r\n<ng-container *ngIf=\"form?.header?.status?.['key'] == 'NEW' \">\r\n <ng-container *ngComponentOutlet=\"sectionFormComponent; ndcDynamicInputs: input\"></ng-container>\r\n</ng-container>\r\n", styles: [":host ::ng-deep .mat-expansion-panel-content{background:#fff!important}:host .mat-expansion-panel-content{background:#fff!important}:host .approval-panel-container{display:grid;grid-template-columns:40% calc(60% - 45px) 20px;grid-template-areas:\"title details toggle\";gap:.75rem;place-content:space-between;align-items:center;flex-grow:1;width:100%}@media (max-width: 991px){:host .approval-panel-container{grid-template-columns:calc(100% - 45px) 20px;grid-template-areas:\"title toggle\" \"details details\"}}:host .approval-panel-container .approval-panel-title{grid-area:title}:host .approval-panel-container .panel-user-name{max-width:120px}@media (max-width: 768px){:host .approval-panel-container .panel-user-name.panel-ueser-only{max-width:140px}:host .approval-panel-container .panel-user-name:not(.panel-ueser-only){max-width:90px}}:host .approval-panel-container .approval-panel-details{display:flex;align-items:center;justify-content:space-between;grid-area:details}:host .approval-panel-container .approval-panel-toggle{grid-area:toggle;display:flex;align-items:center;justify-content:center;width:20px}:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 25px}@media (min-width: 768px){:host ::ng-deep ds-avatar.user-avatar .avatar{--default-size: 31px;--avatar-border: 3px solid var(--light-gray)}}@media (min-width: 768px){:host ::ng-deep .user-avatar-name{padding-inline-end:1rem!important}}:host .circle-status::part(base){--status-radius: 50%;--status-size: 18px;--status-fs: 80% }:host .panel-title{min-width:40%;width:40%}@media (max-width: 576px){:host .panel-title{min-width:100%!important;width:100%!important}}:host .panel-user-status{min-width:60%;width:60%;display:flex;align-items:center;justify-content:space-between}@media (max-width: 576px){:host .panel-user-status{min-width:100%!important;width:100%!important}:host .panel-user-status .user-delegate{min-width:auto}:host .panel-user-status .main-status::part(base){--status-width: 50px}}\n"] }]
202
+ }], ctorParameters: () => [{ type: i1.CoreI18nService }, { type: i1.CoreService }, { type: i1.SidenavService }], propDecorators: { requestDetails: [{
249
203
  type: Input
250
204
  }], section: [{
251
205
  type: Input
@@ -255,10 +209,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
255
209
  type: Input
256
210
  }], isReadOnly: [{
257
211
  type: Input
258
- }], isOpen: [{
259
- type: Input
260
- }], isFinalApproval: [{
261
- type: Input
262
212
  }], controllers: [{
263
213
  type: Input
264
214
  }], segmentDynamicLoaderService: [{
@@ -268,4 +218,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
268
218
  }], sectionName: [{
269
219
  type: Input
270
220
  }] } });
271
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9hcHAtY29tcG9uZW50LXNlY3Rpb25zL2Zvcm0tc2VjdGlvbi9mb3JtLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvZm9ybS1zZWN0aW9uL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLFNBQVMsRUFBRSxzQkFBc0IsRUFBYyxLQUFLLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZJLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakUsT0FBTyxFQUFDLGtCQUFrQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFdEQsT0FBTyxLQUFLLFNBQVMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQTs7Ozs7QUFrQmhDLE1BQU0sT0FBTyxvQkFBb0I7SUFxQ3RCO0lBbkNULFFBQVEsR0FBRyxZQUFZLENBQUM7SUFDRixPQUFPLENBQU87SUFDcEMsV0FBVyxHQUFHLFlBQVksQ0FBQztJQUMzQixlQUFlLEdBQUcsRUFBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUMsQ0FBQztJQUMzQixjQUFjLENBQVU7SUFDakMsZUFBZSxH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LENBQUM7dUdBbFBVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLG1oQkMxQmpDLHN2TUFtR0EsdS9ERG5GSSxrQkFBa0IscVlBRWxCLElBQUksNkZBQ0osaUJBQWlCLG9QQUNqQiwwQkFBMEIscU9BQzFCLGdCQUFnQiwwZ0JBQ2hCLE9BQU87OzJGQUlFLG9CQUFvQjtrQkFoQmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBR2hCLElBQUksV0FDUDt3QkFDUCxrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsSUFBSTt3QkFDSixpQkFBaUI7d0JBQ2pCLDBCQUEwQjt3QkFDMUIsZ0JBQWdCO3dCQUNoQixPQUFPO3FCQUNSLFdBQ1EsQ0FBQyxzQkFBc0IsQ0FBQztvRkFLWCxPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBR1gsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdDaGVja2VkLCBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29yZUkxOG5TZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7Q29tcG9uZW50T3V0bGV0SW9EaXJlY3RpdmV9IGZyb20gJ25nLWR5bmFtaWMtY29tcG9uZW50JztcclxuaW1wb3J0IHtOZ0NsYXNzLCBOZ0NvbXBvbmVudE91dGxldCwgTmdJZn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtNYXRFeHBhbnNpb25Nb2R1bGUsIE1hdEV4cGFuc2lvblBhbmVsfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQge1NhdFBvcG92ZXJNb2R1bGV9IGZyb20gJ0BuY3N0YXRlL3NhdC1wb3BvdmVyJztcclxuaW1wb3J0IHtGb3JtLCBTZWN0aW9ufSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0ICogYXMgQ29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1mb3JtLXNlY3Rpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxyXG4gICAgTWF0RXhwYW5zaW9uUGFuZWwsXHJcbiAgICBOZ0lmLFxyXG4gICAgTmdDb21wb25lbnRPdXRsZXQsXHJcbiAgICBDb21wb25lbnRPdXRsZXRJb0RpcmVjdGl2ZSxcclxuICAgIFNhdFBvcG92ZXJNb2R1bGUsXHJcbiAgICBOZ0NsYXNzXHJcbiAgXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1TZWN0aW9uQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQsIEFmdGVyVmlld0luaXQge1xyXG4gIHVzZXJUeXBlID0gJ3JlY2VpcGllbnQnO1xyXG4gIEBWaWV3Q2hpbGQoJ3BvcG92ZXInKSBwb3BvdmVyPzogYW55O1xyXG4gIHBvcG92ZXJUeXBlID0gJ3JlY2VpcGllbnQnO1xyXG4gIHBvcG92ZXJQb3NpdGlvbiA9IHt0b3A6IDAsIGxlZnQ6IDB9O1xyXG4gIEBJbnB1dCgpIHJlcXVlc3REZXRhaWxzOiBTZWN0aW9uO1xyXG4gIHVzZXJQb3BvdmVySW5mbzogYW55ID0ge307XHJcbiAgQElucHV0KCkgc2VjdGlvbjogU2VjdGlvbjtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dCgpIGxvdjogYW55O1xyXG4gIEBJbnB1dCgpIGlzUmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgaXNPcGVuOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzRmluYWxBcHByb3ZhbDogYm9vbGVhbjtcclxuICBASW5wdXQoKSBjb250cm9sbGVyczogYW55O1xyXG4gIEBJbnB1dCgpIHNlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZTogYW55O1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25Gb3JtQ29tcG9uZW50OiBhbnkgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25OYW1lID0gJ1NFQ1RJT05fTkFNRS5yZXF1ZXN0RGV0YWlscyc7XHJcbiAgc2VjdGlvbk51bWJlcjogbnVtYmVyO1xyXG4gIHNlY3Rpb25TdGF0dXNWYWx1ZTogc3RyaW5nO1xyXG4gIHNlY3Rpb25TdGF0dXNLZXk6IHN0cmluZztcclxuICByZWNlaXBpZW50ID0ge1xyXG4gICAgaXNTaG93aW5nOiBmYWxzZSxcclxuICAgIHByb2ZpbGU6IG51bGxcclxuICB9O1xyXG4gIGRlbGVnYXRlID0ge1xyXG4gICAgaXNTaG93aW5nOiBmYWxzZSxcclxuICAgIHByb2ZpbGU6IG51bGxcclxuICB9O1xyXG4gIHB1YmxpYyBpbnB1dDtcclxuICBoaWdobGlnaHRGbGFnOiBib29sZWFuO1xyXG5cclxuICBwcm9jZXNzaW5nRGF0ZTogc3RyaW5nO1xyXG4gIHB1YmxpYyByYW5kb21JRDogbnVtYmVyID1cclxuICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg5OTk5OTkgLSAxMDAwMDApKSArIDEwMDAwMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5oaWdobGlnaHRGbGFnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2VjdGlvbkZvcm1Db21wb25lbnQgPSB0aGlzLnNlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZS5nZXRDb21wb25lbnQoXHJcbiAgICAgIHRoaXMuc2VjdGlvbi5pZFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLnN0YWdlTmFtZSkge1xyXG4gICAgICB0aGlzLnNlY3Rpb25OYW1lID0gdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5zdGFnZU5hbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlY3Rpb25OYW1lID0gdGhpcy5zZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2UuZ2V0U2VjdGlvbk5hbWUodGhpcy5zZWN0aW9uLmlkKTtcclxuICAgIH1cclxuICAgIGNvbnNvbGUubG9nKCdzZWN0aW9uRm9ybUNvbXBvbmVudCcsdGhpcy5zZWN0aW9uRm9ybUNvbXBvbmVudClcclxuXHJcbiAgICB0aGlzLmlucHV0ID0ge1xyXG4gICAgICBpc1JlYWRPbmx5OiB0aGlzLmlzUmVhZE9ubHksXHJcbiAgICAgIGxvdjogdGhpcy5sb3YsXHJcbiAgICAgIHNlY3Rpb246IHRoaXMuc2VjdGlvbixcclxuICAgICAgY29udHJvbGxlcnM6IHRoaXMuY29udHJvbGxlcnMsXHJcbiAgICAgIHJlcXVlc3REZXRhaWxzOiB0aGlzLnJlcXVlc3REZXRhaWxzXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc2VjdGlvbi5oZWFkZXIgJiYgdGhpcy5zZWN0aW9uLmhlYWRlci5wcm9jZXNzaW5nRGF0ZSkge1xyXG4gICAgICB0aGlzLnByb2Nlc3NpbmdEYXRlID0gbW9tZW50KHRoaXMuc2VjdGlvbi5oZWFkZXIucHJvY2Vzc2luZ0RhdGUpXHJcbiAgICAgICAgLmxvY2FsZSgnZW4tVVMnKVxyXG4gICAgICAgIC5mb3JtYXQoJ0REL01NL1lZWVkgSEg6bW06c3MnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmhpZ2hsaWdodEZsYWcgPSB0aGlzLmlzT3BlbjtcclxuICAgIGNvbnN0IHggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjY29sbGFwc2UnICsgdGhpcy5zZWN0aW9uSWQoKSk7XHJcbiAgICBpZiAoeC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VjdGlvbk51bWJlciA9IHgubGVuZ3RoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuc2VjdGlvbi5pZCAhPT0gJ3JlcXVlc3REZXRhaWxzJyAmJlxyXG4gICAgICB0aGlzLnNlY3Rpb24uaWQgIT09ICdoclJlcXVlc3REZXRhaWxzJyAmJlxyXG4gICAgICAhdGhpcy5zZWN0aW9uU3RhdHVzS2V5ICYmXHJcbiAgICAgIHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMuZGVjaXNpb24gJiZcclxuICAgICAgdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5kZWNpc2lvbi5rZXlcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlY3Rpb25TdGF0dXNLZXkgPSB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmRlY2lzaW9uLmtleTtcclxuICAgIH1cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5zZWN0aW9uLmlkICE9PSAncmVxdWVzdERldGFpbHMnICYmXHJcbiAgICAgIHRoaXMuc2VjdGlvbi5pZCAhPT0gJ2hyUmVxdWVzdERldGFpbHMnICYmXHJcbiAgICAgICF0aGlzLnNlY3Rpb25TdGF0dXNWYWx1ZSAmJlxyXG4gICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmRlY2lzaW9uICYmXHJcbiAgICAgIHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMuZGVjaXNpb24udmFsdWVcclxuICAgICkge1xyXG4gICAgICB0aGlzLnNlY3Rpb25TdGF0dXNWYWx1ZSA9IHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMuZGVjaXNpb24udmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLlNlcnZpY2VzU3ViU2NyaXB0aW9ucygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRXhwYW5kZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc0V4cGFuZGFibGVGcm9tQmFja2VuZCA9IHRoaXMuZm9ybT8uc2VjdGlvbnM/Lmxlbmd0aCAmJiB0aGlzLmZvcm0uc2VjdGlvbnMuc29tZShzZWN0aW9uID0+ICdleHBhbmRTdGFnZScgaW4gc2VjdGlvbj8uYm9keT8uZGV0YWlscyk7XHJcbiAgICBpZiAoIWlzRXhwYW5kYWJsZUZyb21CYWNrZW5kKSByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLnNlY3Rpb24/LmJvZHk/LmRldGFpbHM/LmV4cGFuZFN0YWdlID09PSAndHJ1ZSc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2VydmljZXNTdWJTY3JpcHRpb25zKCkge1xyXG4gICAgLyogIHRoaXMucHJvZmlsZVJlcXVlc3RvclNlcnZpY2UuZ2V0Rm9ybSgpLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IGRhdGE7XHJcbiAgICAgIH0pOyovXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XHJcbiAgICB0aGlzLmlucHV0ID0ge1xyXG4gICAgICBpc1JlYWRPbmx5OiB0aGlzLmlzUmVhZE9ubHksXHJcbiAgICAgIGxvdjogdGhpcy5sb3YsXHJcbiAgICAgIHNlY3Rpb246IHRoaXMuc2VjdGlvbixcclxuICAgICAgY29udHJvbGxlcnM6IHRoaXMuY29udHJvbGxlcnMsXHJcbiAgICAgIHNlY3Rpb25JZDogdGhpcy5zZWN0aW9uXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2VjdGlvbklkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VjdGlvbi5pZC5zcGxpdCgnICcpLmpvaW4oJycpICsgdGhpcy5yYW5kb21JRDtcclxuICB9XHJcblxyXG4gIGdldFNlY3Rpb25OYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VjdGlvbi5pZDtcclxuICB9XHJcblxyXG4gIGdldEZvcm1TdGVwU3RhdHVzKGtleTogc3RyaW5nKSB7XHJcbiAgICBsZXQgc3RhdHVzID0gJ05PVF9GT1VORF9JTl9MT1YnO1xyXG4gICAgaWYgKHRoaXMubG92LmZvcm1TdGVwU3RhdHVzICYmIHRoaXMubG92LmZvcm1TdGVwU3RhdHVzLm9wdGlvbnMpIHtcclxuICAgICAgdGhpcy5sb3YuZm9ybVN0ZXBTdGF0dXMub3B0aW9ucy5mb3JFYWNoKChvcHRpb24pID0+IHtcclxuICAgICAgICBpZiAob3B0aW9uLnZhbHVlID09PSBrZXkpIHtcclxuICAgICAgICAgIHN0YXR1cyA9IG9wdGlvbi5kZXNjcmlwdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN0YXR1cztcclxuICB9XHJcblxyXG4gIHRvZ2dsZVNtYWxsUHJvZmlsZUluZm8oZXZlbnQsIHBlcnNvblR5cGUpIHtcclxuICAgIHRoaXMudXNlclR5cGUgPSBwZXJzb25UeXBlO1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBjb25zdCB1c2VySW5mbyA9IHRoaXNbcGVyc29uVHlwZV07XHJcbiAgICBpZiAodXNlckluZm8ucHJvZmlsZSA9PT0gbnVsbCkge1xyXG4gICAgICB0aGlzLnBvcG92ZXJUeXBlID0gcGVyc29uVHlwZTtcclxuICAgICAgY29uc3QgdXNlckVtYWlsID1cclxuICAgICAgICBwZXJzb25UeXBlID09PSAncmVjZWlwaWVudCdcclxuICAgICAgICAgID8gdGhpcy5zZWN0aW9uLmhlYWRlci5wZXJzb25Ub1RodW1ibmFpbC5zcGxpdCgnPScpWzFdXHJcbiAgICAgICAgICA6IHRoaXM/LnNlY3Rpb24/LmhlYWRlcj8uZGVsZWdhdGVkVG9UaHVtYm5haWwuc3BsaXQoJz0nKVsxXTtcclxuICAgICAgLyp0aGlzLnN0YXRlTWFjaGluZVxyXG4gICAgICAgIC5kaXNwYXRjaChDb25zdGFudHMuU1RBVEVfTUFDSElORV9BQ1RJT05fRU1QTE9ZRUVfUFJPRklMRSwgdXNlckVtYWlsKVxyXG4gICAgICAgIC50aGVuKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2codGhpcywgcmVzcG9uc2UpO1xyXG5cclxuICAgICAgICAgIGlmIChyZXNwb25zZSkge1xyXG4gICAgICAgICAgICB0aGlzW3BlcnNvblR5cGVdLnByb2ZpbGUgPSByZXNwb25zZTtcclxuICAgICAgICAgICAgdGhpcy5wb3BvdmVyUG9zaXRpb24gPSB7XHJcbiAgICAgICAgICAgICAgdG9wOiAxMCxcclxuICAgICAgICAgICAgICBsZWZ0OlxyXG4gICAgICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgK1xyXG4gICAgICAgICAgICAgICAgZXZlbnQudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC8gNFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIuYW5jaG9yID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICAgICAgICB0aGlzLnBvcG92ZXIub3BlbigpO1xyXG4gICAgICAgICAgICB0aGlzLnVzZXJQb3BvdmVySW5mbyA9IHJlc3BvbnNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pOyovXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnVzZXJQb3BvdmVySW5mbyA9IHRoaXNbcGVyc29uVHlwZV0ucHJvZmlsZTtcclxuICAgICAgdGhpcy5wb3BvdmVyUG9zaXRpb24gPSB7XHJcbiAgICAgICAgdG9wOiAxMCxcclxuICAgICAgICBsZWZ0OlxyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgK1xyXG4gICAgICAgICAgZXZlbnQudGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC8gNFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnBvcG92ZXIuYW5jaG9yID0gZXZlbnQudGFyZ2V0O1xyXG4gICAgICB0aGlzLnBvcG92ZXIub3BlbigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RhdHVzSWNvbkNsYXNzKHN0YXR1czogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmIChzdGF0dXMpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHN0YXR1cyA9PT0gQ29uc3RhbnRzLkZPUk1fU1RBVFVTX1JFSkVDVEVEIHx8XHJcbiAgICAgICAgc3RhdHVzID09PSBDb25zdGFudHMuRk9STV9TVEFUVVNfQ0FOQ0VMTEVEIHx8XHJcbiAgICAgICAgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdyZWplY3QnIHx8XHJcbiAgICAgICAgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICd1bnNhdGlzZmllZCcgfHxcclxuICAgICAgICBzdGF0dXMudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnZGVueScpIHx8XHJcbiAgICAgICAgc3RhdHVzLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoJ3JlamVjdCcpIHx8XHJcbiAgICAgICAgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdjYW5jZWwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiB0eXBlID09PSAnc3RhdHVzPycgPyAnZGFuZ2VyJyA6ICdjbG9zZSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgICAgc3RhdHVzID09PSBDb25zdGFudHMuRk9STV9TVEFUVVNfUEVORElORyB8fFxyXG4gICAgICAgIHN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGVuZGluZydcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGUgPT09ICdzdGF0dXM/JyA/ICd3YXJuaW5nJyA6ICdjbG9jayc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGUgPT09ICdzdGF0dXM/JyA/ICdzdWNjZXNzJyA6ICdjaGVjayc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0eXBlID09PSAnc3RhdHVzPycgPyAnc3VjY2VzcycgOiAnY2hlY2snO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9jYXRpb25IcmVmKGhyZWZMaW5rKSB7XHJcbiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGhyZWZMaW5rO1xyXG4gIH1cclxuXHJcbiAgc3RhdHVzQ2xhc3Moc3RhdHVzOiBzdHJpbmcpIHtcclxuICAgIGlmIChzdGF0dXMpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHN0YXR1cyA9PT0gQ29uc3RhbnRzLkZPUk1fU1RBVFVTX1JFSkVDVEVEIHx8IHN0YXR1cyA9PT0gQ29uc3RhbnRzLkZPUk1fU1RBVFVTX0NBTkNFTExFRFxyXG4gICAgICAgIHx8IHN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncmVqZWN0JyB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3Vuc2F0aXNmaWVkJyB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2NhbmNlbCdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuICdkYW5nZXInO1xyXG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gQ29uc3RhbnRzLkZPUk1fU1RBVFVTX1BFTkRJTkcgfHwgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdwZW5kaW5nJykge1xyXG4gICAgICAgIHJldHVybiAnd2FybmluZyc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICdzdWNjZXNzJztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuICdzdWNjZXNzJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXR1c0ljb24oc3RhdHVzOiBzdHJpbmcpIHtcclxuICAgIGlmIChzdGF0dXMpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHN0YXR1cyA9PT0gQ29uc3RhbnRzLkZPUk1fU1RBVFVTX1JFSkVDVEVEIHx8IHN0YXR1cyA9PT0gQ29uc3RhbnRzLkZPUk1fU1RBVFVTX0NBTkNFTExFRFxyXG4gICAgICAgIHx8IHN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncmVqZWN0JyB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3Vuc2F0aXNmaWVkJyB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ2NhbmNlbCdcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuICdjbG9zZSc7XHJcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSBDb25zdGFudHMuRk9STV9TVEFUVVNfUEVORElORyB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3BlbmRpbmcnKSB7XHJcbiAgICAgICAgcmV0dXJuICdjbG9jayc7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuICdjaGVjayc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnY2hlY2snO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJwYW5lbC1oZWFkaW5nXCIgcm9sZT1cImJ1dHRvblwiIFtpZF09XCJzZWN0aW9uSWQoKVwiICpuZ0lmPVwic2hvd0hlYWRlcigpXCI+IC0tPlxyXG48bWF0LWV4cGFuc2lvbi1wYW5lbFxyXG4gIGNsYXNzPVwibWItNFwiIFtleHBhbmRlZF09XCJpc0V4cGFuZGVkXCIgKm5nSWY9XCJmb3JtPy5oZWFkZXI/LnN0YXR1cz8uWydrZXknXSAhPT0gJ05FVycgXCIgaGlkZVRvZ2dsZVxyXG4gICNhcHByb3ZhbFBhbmVsPVwibWF0RXhwYW5zaW9uUGFuZWxcIj5cclxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXBhbmVsLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0yIGZsZXgtZ3Jvdy0xIGFwcHJvdmFsLXBhbmVsLXRpdGxlXCI+XHJcbiAgICAgICAgPGRzLXN0YXR1c1xyXG4gICAgICAgICAgc3RhdHVzPVwie3tzdGF0dXNJY29uQ2xhc3Moc2VjdGlvblN0YXR1c0tleSwnc3RhdHVzJyl9fVwiIG5vLW9wYWNpdHkgaWNvblxyXG4gICAgICAgICAgY2xhc3M9XCJjaXJjbGUtc3RhdHVzIGQtbm9uZSBkLXNtLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgPGRzLWljb24gaWNvbj1cInt7c3RhdHVzSWNvbkNsYXNzKHNlY3Rpb25TdGF0dXNLZXksJ2ljb24nKX19XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvZHMtc3RhdHVzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTYgZnctbWVkaXVtIG0tMFwiPiB7eyBzZWN0aW9uTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxiZGkgY2xhc3M9XCJmcy0xMiBmYy1kYXJrLWdyYXkgZnctbm9ybWFsIGxpbmUtaGVpZ2h0LTEgZC1ibG9ja1wiICpuZ0lmPVwic2VjdGlvbi5oZWFkZXI/LnByb2Nlc3NlZEJ5XCI+XHJcbiAgICAgICAgICAgIHt7IHByb2Nlc3NpbmdEYXRlIH19XHJcbiAgICAgICAgICA8L2JkaT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC1wYW5lbC1kZXRhaWxzIGdhcC0xXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIighc2VjdGlvbj8uYm9keT8uZGV0YWlscz8uc3RhZ2UwPy5pc1N0YWdlMCB8fCBzZWN0aW9uPy5ib2R5Py5kZXRhaWxzPy5zdGFnZTA/LmlzU3RhZ2UwID09PSAnZmFsc2UnKVwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIiAqbmdJZj1cInNlY3Rpb24/LmhlYWRlcj8ucGVyc29uVG9cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1wiPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNtYWxsUHJvZmlsZUluZm8oJGV2ZW50LCAncmVjZWlwaWVudCcpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgcmFkaXVzLTMgaC00MFwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyd1c2VyLWF2YXRhci1uYW1lIHB4LTAgcHgtbWQtMic6ICFzZWN0aW9uPy5oZWFkZXI/LmRlbGVnYXRlZFRvLCAncC0wJzogc2VjdGlvbj8uaGVhZGVyPy5kZWxlZ2F0ZWRUb31cIj5cclxuICAgICAgICAgICAgICA8ZHMtYXZhdGFyIGltYWdlPVwie3tzZWN0aW9uPy5oZWFkZXI/LnBlcnNvblRvVGh1bWJuYWlsfX1cIiBzaXplPVwic21hbGxcIiBjbGFzcz1cInVzZXItYXZhdGFyXCI+PC9kcy1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZnMtMTQgZnctbWVkaXVtIGQtaW5saW5lLWJsb2NrIHBhbmVsLXVzZXItbmFtZSB0ZXh0LXRydW5jYXRlXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncGFuZWwtdWVzZXItb25seSc6ICFzZWN0aW9uPy5oZWFkZXI/LmRlbGVnYXRlZFRvfVwiXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFzZWN0aW9uPy5oZWFkZXI/LmRlbGVnYXRlZFRvXCI+e3sgc2VjdGlvbj8uaGVhZGVyPy5wZXJzb25UbyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzZWN0aW9uPy5oZWFkZXI/LmRlbGVnYXRlZFRvXCIgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU21hbGxQcm9maWxlSW5mbygkZXZlbnQsICdkZWxlZ2F0ZScpXCI+XHJcbiAgICAgICAgICAgICAgPGltZ1xyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyb3RhdGUtYXJyb3dcIlxyXG4gICAgICAgICAgICAgICAgc3JjPVwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l5TVNJZ2FHVnBaMmgwUFNJeE15SWdkbWxsZDBKdmVEMGlNQ0F3SURJeElERXpJajQ4Y0dGMGFDQmtQU0pOTWpFc055NDNOak5oTVM0Mk1qRXNNUzQyTWpFc01Dd3dMREV0TGpRME55NDFPVE1zTVM0ek1EWXNNUzR6TURZc01Dd3dMREV0TGpjMUxqRTVOR010Tnk0eU9EUXNNQzA0TGpVMk9Dd3dMVEUxTGpnMU15d3dTRE11TmpZNVRETXVOak1zT0M0Mll5NHdOemN1TURZMExqRTFPQzR4TWpRdU1qSTVMakU1TkhFeExqY3hMREV1Tmprc015NDBNaXd6TGpNNE1XRXhMakF5TXl3eExqQXlNeXd3TERBc01Td3VNamt4TERFdU1EYzVMams1TWk0NU9USXNNQ3d3TERFdExqZ3VOekU1TERFdU1EVXpMREV1TURVekxEQXNNQ3d4TFRFdExqTXpNVkV6TGpnek1Td3hNUzQzTVRrc01TNDRPRFlzT1M0NFl5MHVORFF5TFM0ME16Y3RMamczT1MwdU9EZ3hMVEV1TXpNdE1TNHpNRGxCTkM0MU56SXNOQzQxTnpJc01Dd3dMREVzTUN3M0xqZ3hORlkzTGpFNE5VRXpNQzQzT0RNc016QXVOemd6TERBc01Dd3hMREl1TnpNc05DNHpOekZqTVMweExqQXlOeXd5TGpBek9DMHlMakF5TlN3ekxqQTJNeTB6TGpBek1rRXhMakEwT1N3eExqQTBPU3d3TERFc01TdzNMakkzTnl3eUxqZ3lRell1TkN3ekxqY3NOUzQxTURrc05DNDFOeXcwTGpZeU5TdzFMalEwTm1NdExqTXlNeTR6TWpFdExqWTBOQzQyTkRVdExqazNNeTQ1TnpZdU1EZzBMakExT1M0eE9ERXVNREkzTGpJM0xqQXlOeXczTGpJMU9Dd3dMRGd1TlRFMkxEQXNNVFV1TnpjMUxEQkJNUzR4TWprc01TNHhNamtzTUN3d0xERXNNakVzTnk0eU9YWXVORGN5V2lJZ2RISmhibk5tYjNKdFBTSjBjbUZ1YzJ4aGRHVW9NQ0F0TUM0NU9Ua3BJaUJtYVd4c1BTSWpZVFUwWldVeElpOCtQQzl6ZG1jK1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIiAvPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHB4LTAgcHgtbWQtMiByYWRpdXMtMyB1c2VyLWF2YXRhci1uYW1lIGgtNDBcIj5cclxuICAgICAgICAgICAgICAgIDxkcy1hdmF0YXIgaW1hZ2U9XCJ7e3NlY3Rpb24/LmhlYWRlcj8uZGVsZWdhdGVkVG9UaHVtYm5haWx9fVwiIHNpemU9XCJzbWFsbFwiIGNsYXNzPVwidXNlci1hdmF0YXJcIj48L2RzLWF2YXRhcj5cclxuICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZnMtMTQgZnctbWVkaXVtIGQtaW5saW5lLWJsb2NrIHBhbmVsLXVzZXItbmFtZSB0ZXh0LXRydW5jYXRlXCI+e3sgc2VjdGlvbj8uaGVhZGVyPy5kZWxlZ2F0ZWRUbyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRzLXN0YXR1c1xyXG4gICAgICAgICAgICBjbGFzcz1cIm1haW4tc3RhdHVzXCIgKm5nSWY9XCJzZWN0aW9uPy5ib2R5Py5kZXRhaWxzPy5kZWNpc2lvbj8ua2V5XCJcclxuICAgICAgICAgICAgc3RhdHVzPVwie3tzdGF0dXNJY29uQ2xhc3Moc2VjdGlvblN0YXR1c0tleSwnc3RhdHVzJyl9fVwiPnt7IHNlY3Rpb25TdGF0dXNWYWx1ZSB9fVxyXG4gICAgICAgICAgPC9kcy1zdGF0dXM+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXBhbmVsLXRvZ2dsZVwiPlxyXG4gICAgICAgIDxkcy1pY29uIGljb249XCJwbHVzLTFcIiBjbGFzcz1cImZzLTIwIGZjLWNvcmFsXCIgKm5nSWY9XCIhYXBwcm92YWxQYW5lbC5leHBhbmRlZFwiPjwvZHMtaWNvbj5cclxuXHJcbiAgICAgICAgPGRzLWljb24gaWNvbj1cIm1pbnVzXCIgY2xhc3M9XCJmcy0yMCBmYy1kYXJrLWdyYXlcIiAqbmdJZj1cImFwcHJvdmFsUGFuZWwuZXhwYW5kZWRcIj48L2RzLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiYm9yZGVyLXRvcCBwdC00XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInNlY3Rpb25Gb3JtQ29tcG9uZW50OyBuZGNEeW5hbWljSW5wdXRzOiBpbnB1dFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbjwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddID09PSAnTkVXJyBcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cInNlY3Rpb25Gb3JtQ29tcG9uZW50OyBuZGNEeW5hbWljSW5wdXRzOiBpbnB1dFwiPjwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxzYXQtcG9wb3ZlciAjcG9wb3ZlciBbaGFzQmFja2Ryb3BdPVwidHJ1ZVwiIGhvcml6b250YWxBbGlnbj1cImNlbnRlclwiIHZlcnRpY2FsQWxpZ249XCJhYm92ZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkZWxlZ2F0ZS1pbmZvLXBvcHVwXCI+XHJcbiAgICA8ZHMtYXZhdGFyICpuZ0lmPVwidXNlclR5cGUgPT09ICdyZWNlaXBpZW50J1wiIGltYWdlPVwie3tzZWN0aW9uPy5oZWFkZXI/LnBlcnNvblRvVGh1bWJuYWlsfX1cIiBzaXplPVwic21hbGxcIj48L2RzLWF2YXRhcj5cclxuICAgIDxkcy1hdmF0YXIgKm5nSWY9XCJ1c2VyVHlwZSA9PT0gJ2RlbGVnYXRlJ1wiIGltYWdlPVwie3tzZWN0aW9uPy5oZWFkZXI/LmRlbGVnYXRlZFRvVGh1bWJuYWlsfX1cIiBzaXplPVwic21hbGxcIj48L2RzLWF2YXRhcj5cclxuICAgIDxkaXYgY2xhc3M9XCJkZWxlZ2F0ZS1pbmZvIG14LTBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZzLTE2IGZ3LW1lZGl1bSBmYy1ibGFjayBtYi0wXCI+e3sgdXNlclBvcG92ZXJJbmZvPy5uYW1lIH19PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmcy0xMiBmdy1ub3JtYWwgZmMtYmxhY2sgbWItMlwiPnt7IHVzZXJQb3BvdmVySW5mbz8uam9iPy5uYW1lIH19PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm8gZmMtYmxhY2sgZnMtMTAgbWItMVwiPlxyXG4gICAgICAgIDxkcy1pY29uIGljb249XCJwaG9uZVwiIGNsYXNzPVwiZnMtMTggZmMtZGFyay1ncmF5XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDxiZGkgKGNsaWNrKT1cImxvY2F0aW9uSHJlZigndGVsOicrIHVzZXJQb3BvdmVySW5mbz8uY29udGFjdD8ud29yaylcIj57eyB1c2VyUG9wb3ZlckluZm8/LmNvbnRhY3Q/LndvcmsgfX08L2JkaT5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLWluZm8gZmMtYmxhY2sgZnMtMTAgbWItMVwiPlxyXG4gICAgICAgIDxkcy1pY29uIGljb249XCJwaG9uZVwiIGNsYXNzPVwiZnMtMTggZmMtZGFyay1ncmF5XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDxiZGkgKGNsaWNrKT1cImxvY2F0aW9uSHJlZigndGVsOicrIHVzZXJQb3BvdmVySW5mbz8uY29udGFjdD8ubW9iaWxlKVwiPnt7IHVzZXJQb3BvdmVySW5mbz8uY29udGFjdD8ubW9iaWxlIH19PC9iZGk+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidXNlci1pbmZvIGZjLWJsYWNrIGZzLTEwIG1iLTFcIj5cclxuICAgICAgICA8ZHMtaWNvbiBpY29uPVwibWFpbC1vXCIgY2xhc3M9XCJmcy0xOCBmYy1kYXJrLWdyYXlcIj48L2RzLWljb24+XHJcbiAgICAgICAgPHNwYW4gKGNsaWNrKT1cImxvY2F0aW9uSHJlZignbWFpbHRvOicrIHVzZXJQb3BvdmVySW5mbz8uZW1haWwpXCI+e3sgdXNlclBvcG92ZXJJbmZvPy5lbWFpbCB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9zYXQtcG9wb3Zlcj5cclxuIl19
221
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JwbS1jb3JlL3NyYy9saWIvY29tcG9uZW50cy9hcHAtY29tcG9uZW50LXNlY3Rpb25zL2Zvcm0tc2VjdGlvbi9mb3JtLXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvZm9ybS1zZWN0aW9uL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLFNBQVMsRUFBRSxzQkFBc0IsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRTNILE9BQU8sRUFBQywwQkFBMEIsRUFBRSxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRSxPQUFPLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3RELE9BQU8sRUFBTyxlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFBO0FBQ2hDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhDQUE4QyxDQUFDOzs7OztBQW1CckYsTUFBTSxPQUFPLG9CQUFvQjtJQW9DdEI7SUFDVTtJQUNBO0lBcENuQixRQUFRLEdBQUcsV0FBVyxDQUFDO0lBQ3ZCLHVDQUF1QztJQUN2QyxXQUFXLEdBQUcsV0FBVyxD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QkFBa0IscVlBRWxCLElBQUksNkZBQ0osaUJBQWlCLG9QQUNqQiwwQkFBMEIscU9BQzFCLGdCQUFnQiwrQkFDaEIsT0FBTyxtRkFDUCxhQUFhOzsyRkFJSixvQkFBb0I7a0JBakJoQyxTQUFTOytCQUNFLGtCQUFrQixjQUdoQixJQUFJLFdBQ1A7d0JBQ1Asa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLElBQUk7d0JBQ0osaUJBQWlCO3dCQUNqQiwwQkFBMEI7d0JBQzFCLGdCQUFnQjt3QkFDaEIsT0FBTzt3QkFDUCxhQUFhO3FCQUNkLFdBQ1EsQ0FBQyxzQkFBc0IsQ0FBQzsySUFPeEIsY0FBYztzQkFBdEIsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csMkJBQTJCO3NCQUFuQyxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdDaGVja2VkLCBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29yZUkxOG5TZXJ2aWNlLCBDb3JlU2VydmljZSwgU2lkZW5hdlNlcnZpY2V9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtDb21wb25lbnRPdXRsZXRJb0RpcmVjdGl2ZSwgRHluYW1pY01vZHVsZX0gZnJvbSAnbmctZHluYW1pYy1jb21wb25lbnQnO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge01hdEV4cGFuc2lvbk1vZHVsZSwgTWF0RXhwYW5zaW9uUGFuZWx9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XHJcbmltcG9ydCB7U2F0UG9wb3Zlck1vZHVsZX0gZnJvbSAnQG5jc3RhdGUvc2F0LXBvcG92ZXInO1xyXG5pbXBvcnQge0Zvcm0sIFByb2ZpbGVJbmZvRHJvcCwgU2VjdGlvbn0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XHJcbmltcG9ydCAqIGFzIENvbnN0YW50cyBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnO1xyXG5pbXBvcnQgKiBhcyBtb21lbnQgZnJvbSAnbW9tZW50J1xyXG5pbXBvcnQge1Byb2ZpbGVTZWN0aW9uQ29tcG9uZW50fSBmcm9tIFwiLi4vcHJvZmlsZS1zZWN0aW9uL3Byb2ZpbGUtc2VjdGlvbi5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWZvcm0tc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1zZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXHJcbiAgICBNYXRFeHBhbnNpb25QYW5lbCxcclxuICAgIE5nSWYsXHJcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcclxuICAgIENvbXBvbmVudE91dGxldElvRGlyZWN0aXZlLFxyXG4gICAgU2F0UG9wb3Zlck1vZHVsZSxcclxuICAgIE5nQ2xhc3MsXHJcbiAgICBEeW5hbWljTW9kdWxlXHJcbiAgXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1TZWN0aW9uQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gIHVzZXJUeXBlID0gJ3JlY2lwaWVudCc7XHJcbiAgLy8gQFZpZXdDaGlsZCgncG9wb3ZlcicpIHBvcG92ZXI/OiBhbnk7XHJcbiAgcG9wb3ZlclR5cGUgPSAncmVjaXBpZW50JztcclxuICBASW5wdXQoKSByZXF1ZXN0RGV0YWlsczogU2VjdGlvbjtcclxuICB1c2VyUG9wb3ZlckluZm86IGFueSA9IHt9O1xyXG4gIEBJbnB1dCgpIHNlY3Rpb246IFNlY3Rpb247XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybTtcclxuICBASW5wdXQoKSBsb3Y6IGFueTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIC8vIEBJbnB1dCgpIGlzT3BlbjogYm9vbGVhbjtcclxuICAvLyBASW5wdXQoKSBpc0ZpbmFsQXBwcm92YWw6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgY29udHJvbGxlcnM6IGFueTtcclxuICBASW5wdXQoKSBzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2U6IGFueTtcclxuICBASW5wdXQoKSBzZWN0aW9uRm9ybUNvbXBvbmVudDogYW55ID0gbnVsbDtcclxuICBASW5wdXQoKSBzZWN0aW9uTmFtZSA9ICdTRUNUSU9OX05BTUUucmVxdWVzdERldGFpbHMnO1xyXG4gIHNlY3Rpb25OdW1iZXI6IG51bWJlcjtcclxuICBzZWN0aW9uU3RhdHVzVmFsdWU6IHN0cmluZztcclxuICBzZWN0aW9uU3RhdHVzS2V5OiBzdHJpbmc7XHJcbiAgcmVjaXBpZW50ID0ge1xyXG4gICAgaXNTaG93aW5nOiBmYWxzZSxcclxuICAgIHByb2ZpbGU6IG51bGxcclxuICB9O1xyXG4gIGRlbGVnYXRlID0ge1xyXG4gICAgaXNTaG93aW5nOiBmYWxzZSxcclxuICAgIHByb2ZpbGU6IG51bGxcclxuICB9O1xyXG4gIHB1YmxpYyBpbnB1dDtcclxuICAvLyBoaWdobGlnaHRGbGFnOiBib29sZWFuO1xyXG5cclxuICBwcm9jZXNzaW5nRGF0ZTogc3RyaW5nO1xyXG4gIHB1YmxpYyByYW5kb21JRDogbnVtYmVyID1cclxuICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg5OTk5OTkgLSAxMDAwMDApKSArIDEwMDAwMDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb3JlU2VydmljZTogQ29yZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNpZGVuYXZTZXJ2aWNlOiBTaWRlbmF2U2VydmljZVxyXG4gICkge1xyXG4gICAgLy8gdGhpcy5oaWdobGlnaHRGbGFnID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2VjdGlvbkZvcm1Db21wb25lbnQgPSB0aGlzLnNlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZS5nZXRDb21wb25lbnQoXHJcbiAgICAgIHRoaXMuc2VjdGlvbi5pZFxyXG4gICAgKTtcclxuICAgIGlmICh0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLnN0YWdlTmFtZSkge1xyXG4gICAgICB0aGlzLnNlY3Rpb25OYW1lID0gdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5zdGFnZU5hbWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlY3Rpb25OYW1lID0gdGhpcy5zZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2UuZ2V0U2VjdGlvbk5hbWUodGhpcy5zZWN0aW9uLmlkKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0ID0ge1xyXG4gICAgICBpc1JlYWRPbmx5OiB0aGlzLmlzUmVhZE9ubHksXHJcbiAgICAgIGxvdjogdGhpcy5sb3YsXHJcbiAgICAgIHNlY3Rpb246IHRoaXMuc2VjdGlvbixcclxuICAgICAgY29udHJvbGxlcnM6IHRoaXMuY29udHJvbGxlcnMsXHJcbiAgICAgIHJlcXVlc3REZXRhaWxzOiB0aGlzLnJlcXVlc3REZXRhaWxzXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMuc2VjdGlvbi5oZWFkZXIgJiYgdGhpcy5zZWN0aW9uLmhlYWRlci5wcm9jZXNzaW5nRGF0ZSkge1xyXG4gICAgICB0aGlzLnByb2Nlc3NpbmdEYXRlID0gbW9tZW50KHRoaXMuc2VjdGlvbi5oZWFkZXIucHJvY2Vzc2luZ0RhdGUpXHJcbiAgICAgICAgLmxvY2FsZSgnZW4tVVMnKVxyXG4gICAgICAgIC5mb3JtYXQoJ0REL01NL1lZWVkgSEg6bW06c3MnKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyB0aGlzLmhpZ2hsaWdodEZsYWcgPSB0aGlzLmlzT3BlbjtcclxuICAgIGNvbnN0IHggPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcjY29sbGFwc2UnICsgdGhpcy5zZWN0aW9uSWQoKSk7XHJcbiAgICBpZiAoeC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2VjdGlvbk51bWJlciA9IHgubGVuZ3RoO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyogIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uLmlkICE9PSAncmVxdWVzdERldGFpbHMnICYmXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uLmlkICE9PSAnaHJSZXF1ZXN0RGV0YWlscycgJiZcclxuICAgICAgICAhdGhpcy5zZWN0aW9uU3RhdHVzS2V5ICYmXHJcbiAgICAgICAgdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5kZWNpc2lvbiAmJlxyXG4gICAgICAgIHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMuZGVjaXNpb24ua2V5XHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblN0YXR1c0tleSA9IHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMuZGVjaXNpb24ua2V5O1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLnNlY3Rpb24uaWQgIT09ICdyZXF1ZXN0RGV0YWlscycgJiZcclxuICAgICAgICB0aGlzLnNlY3Rpb24uaWQgIT09ICdoclJlcXVlc3REZXRhaWxzJyAmJlxyXG4gICAgICAgICF0aGlzLnNlY3Rpb25TdGF0dXNWYWx1ZSAmJlxyXG4gICAgICAgIHRoaXMuc2VjdGlvbi5ib2R5LmRldGFpbHMuZGVjaXNpb24gJiZcclxuICAgICAgICB0aGlzLnNlY3Rpb24uYm9keS5kZXRhaWxzLmRlY2lzaW9uLnZhbHVlXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblN0YXR1c1ZhbHVlID0gdGhpcy5zZWN0aW9uLmJvZHkuZGV0YWlscy5kZWNpc2lvbi52YWx1ZTtcclxuICAgICAgfVxyXG4gICAgfSovXHJcblxyXG4gIC8qIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgICB0aGlzLlNlcnZpY2VzU3ViU2NyaXB0aW9ucygpO1xyXG4gICB9Ki9cclxuXHJcbiAgZ2V0IGlzRXhwYW5kZWQoKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBpc0V4cGFuZGFibGVGcm9tQmFja2VuZCA9IHRoaXMuZm9ybT8uc2VjdGlvbnM/Lmxlbmd0aCAmJiB0aGlzLmZvcm0uc2VjdGlvbnMuc29tZShzZWN0aW9uID0+ICdleHBhbmRTdGFnZScgaW4gc2VjdGlvbj8uYm9keT8uZGV0YWlscyk7XHJcbiAgICBpZiAoIWlzRXhwYW5kYWJsZUZyb21CYWNrZW5kKSByZXR1cm4gdHJ1ZTtcclxuICAgIHJldHVybiB0aGlzLnNlY3Rpb24/LmJvZHk/LmRldGFpbHM/LmV4cGFuZFN0YWdlID09PSAndHJ1ZSc7XHJcbiAgfVxyXG5cclxuICAvKiBwdWJsaWMgU2VydmljZXNTdWJTY3JpcHRpb25zKCkge1xyXG4gICAgIC8hKiAgdGhpcy5wcm9maWxlUmVxdWVzdG9yU2VydmljZS5nZXRGb3JtKCkuc3Vic2NyaWJlKChkYXRhKSA9PiB7XHJcbiAgICAgICAgIHRoaXMuZm9ybSA9IGRhdGE7XHJcbiAgICAgICB9KTsqIS9cclxuICAgfSovXHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIHRoaXMuaW5wdXQgPSB7XHJcbiAgICAgIGlzUmVhZE9ubHk6IHRoaXMuaXNSZWFkT25seSxcclxuICAgICAgbG92OiB0aGlzLmxvdixcclxuICAgICAgc2VjdGlvbjogdGhpcy5zZWN0aW9uLFxyXG4gICAgICBjb250cm9sbGVyczogdGhpcy5jb250cm9sbGVycyxcclxuICAgICAgc2VjdGlvbklkOiB0aGlzLnNlY3Rpb25cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzZWN0aW9uSWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZWN0aW9uLmlkLnNwbGl0KCcgJykuam9pbignJykgKyB0aGlzLnJhbmRvbUlEO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVVc2VyUHJvZmlsZUZyb21SZXNwb25zZShyZXNwb25zZTogYW55KTogUHJvZmlsZUluZm9Ecm9wIHtcclxuICAgIHJldHVybiBuZXcgUHJvZmlsZUluZm9Ecm9wKFxyXG4gICAgICBmYWxzZSxcclxuICAgICAgcmVzcG9uc2U/LltcIlVzZXJzXCJdWzBdPy5lbXBsb3llZU51bWJlcixcclxuICAgICAgcmVzcG9uc2U/LltcIlVzZXJzXCJdWzBdPy5lbWFpbCxcclxuICAgICAgcmVzcG9uc2U/LltcIlVzZXJzXCJdWzBdPy5uYW1lLFxyXG4gICAgICByZXNwb25zZT8uW1wiVXNlcnNcIl1bMF0/LmdlbmVyYWxEZXBhcnRtZW50Py5uYW1lLFxyXG4gICAgICByZXNwb25zZT8uW1wiVXNlcnNcIl1bMF0/LnBvc2l0aW9uPy5uYW1lLFxyXG4gICAgICByZXNwb25zZT8uW1wiVXNlcnNcIl1bMF0/LnNlY3Rvcj8ubmFtZSxcclxuICAgICAgcmVzcG9uc2U/LltcIlVzZXJzXCJdWzBdPy5kZXBhcnRtZW50Py5uYW1lLFxyXG4gICAgICByZXNwb25zZT8uW1wiVXNlcnNcIl1bMF0/LmdlbmVyYWxEZXBhcnRtZW50Py5jb2RlLFxyXG4gICAgICByZXNwb25zZT8uW1wiVXNlcnNcIl1bMF0/LmxvY2F0aW9uLFxyXG4gICAgICByZXNwb25zZT8uW1wiVXNlcnNcIl1bMF0/Lm5hdGlvbmFsaXR5Py5kZXNjLFxyXG4gICAgICByZXNwb25zZT8uW1wiVXNlcnNcIl1bMF0/LmNvbnRhY3Q/Lm1vYmlsZSxcclxuICAgICAgcmVzcG9uc2U/LltcIlVzZXJzXCJdWzBdPy5tYW5hZ2VyPy5uYW1lLFxyXG4gICAgICByZXNwb25zZT8uW1wiVXNlcnNcIl1bMF0/LnNlbmlvclNlY3Rvck5hbWU/Lm5hbWVcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9wZW5PckNyZWF0ZVVzZXJQcm9maWxlKHVzZXJEYXRhOiBQcm9maWxlSW5mb0Ryb3AsIHBlcnNvblR5cGU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zaWRlbmF2U2VydmljZS5kYXRhID0gdXNlckRhdGE7XHJcbiAgICB0aGlzLnVzZXJQb3BvdmVySW5mbyA9IHVzZXJEYXRhO1xyXG4gICAgdGhpc1twZXJzb25UeXBlXS5wcm9maWxlID0gdXNlckRhdGE7XHJcbiAgICB0aGlzLnNpZGVuYXZTZXJ2aWNlLnB1Ymxpc2goJ29wZW4nLCBQcm9maWxlU2VjdGlvbkNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICB0b2dnbGVTbWFsbFByb2ZpbGVJbmZvKGV2ZW50LCBwZXJzb25UeXBlKSB7XHJcbiAgICB0aGlzLnVzZXJUeXBlID0gcGVyc29uVHlwZTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgbGV0IHVzZXJJbmZvID0gdGhpc1twZXJzb25UeXBlXTtcclxuICAgIGlmICh1c2VySW5mby5wcm9maWxlID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMucG9wb3ZlclR5cGUgPSBwZXJzb25UeXBlO1xyXG4gICAgICBsZXQgdXNlckVtYWlsID0gKHBlcnNvblR5cGUgPT09ICdyZWNpcGllbnQnID8gdGhpcy5zZWN0aW9uLmhlYWRlci5wZXJzb25Ub1RodW1ibmFpbC5zcGxpdCgnPScpWzFdIDogdGhpcz8uc2VjdGlvbj8uaGVhZGVyPy5kZWxlZ2F0ZWRUb1RodW1ibmFpbC5zcGxpdCgnPScpWzFdKTtcclxuICAgICAgdGhpcy5jb3JlU2VydmljZS5lbXBsb3llZVByb2ZpbGUodXNlckVtYWlsKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzcG9uc2UpIHtcclxuICAgICAgICAgIGxldCB1c2VyRGF0YSA9IHRoaXMuY3JlYXRlVXNlclByb2ZpbGVGcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICAgICAgdGhpcy5vcGVuT3JDcmVhdGVVc2VyUHJvZmlsZSh1c2VyRGF0YSwgcGVyc29uVHlwZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMub3Blbk9yQ3JlYXRlVXNlclByb2ZpbGUodGhpc1twZXJzb25UeXBlXS5wcm9maWxlLCBwZXJzb25UeXBlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0YXR1c0NsYXNzKHN0YXR1czogc3RyaW5nKSB7XHJcbiAgICBpZiAoc3RhdHVzKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19SRUpFQ1RFRCB8fCBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19DQU5DRUxMRURcclxuICAgICAgICB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3JlamVjdCcgfHwgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICd1bnNhdGlzZmllZCcgfHwgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdjYW5jZWwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiAnZGFuZ2VyJztcclxuICAgICAgfSBlbHNlIGlmIChzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19QRU5ESU5HIHx8IHN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAncGVuZGluZycpIHtcclxuICAgICAgICByZXR1cm4gJ3dhcm5pbmcnO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnc3VjY2Vzcyc7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAnc3VjY2Vzcyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzdGF0dXNJY29uKHN0YXR1czogc3RyaW5nKSB7XHJcbiAgICBpZiAoc3RhdHVzKSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19SRUpFQ1RFRCB8fCBzdGF0dXMgPT09IENvbnN0YW50cy5GT1JNX1NUQVRVU19DQU5DRUxMRURcclxuICAgICAgICB8fCBzdGF0dXMudG9Mb3dlckNhc2UoKSA9PT0gJ3JlamVjdCcgfHwgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICd1bnNhdGlzZmllZCcgfHwgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdjYW5jZWwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHJldHVybiAnY2xvc2UnO1xyXG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gQ29uc3RhbnRzLkZPUk1fU1RBVFVTX1BFTkRJTkcgfHwgc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdwZW5kaW5nJykge1xyXG4gICAgICAgIHJldHVybiAnY2xvY2snO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAnY2hlY2snO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gJ2NoZWNrJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG1hdC1leHBhbnNpb24tcGFuZWxcclxuICBjbGFzcz1cIm1iLTRcIiBbZXhwYW5kZWRdPVwiaXNFeHBhbmRlZFwiICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/Llsna2V5J10gIT09ICdORVcnIFwiIGhpZGVUb2dnbGVcclxuICAjYXBwcm92YWxQYW5lbD1cIm1hdEV4cGFuc2lvblBhbmVsXCI+XHJcbiAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC1wYW5lbC1jb250YWluZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBnYXAtMiBmbGV4LWdyb3ctMSBhcHByb3ZhbC1wYW5lbC10aXRsZVwiPlxyXG4gICAgICAgIDxkcy1zdGF0dXNcclxuICAgICAgICAgIHN0YXR1cz1cInt7c3RhdHVzQ2xhc3Moc2VjdGlvblN0YXR1c0tleSl9fVwiIG5vLW9wYWNpdHkgaWNvblxyXG4gICAgICAgICAgY2xhc3M9XCJjaXJjbGUtc3RhdHVzIGQtbm9uZSBkLXNtLWlubGluZS1ibG9ja1wiPlxyXG4gICAgICAgICAgPGRzLWljb24gaWNvbj1cInt7c3RhdHVzSWNvbihzZWN0aW9uU3RhdHVzS2V5KX19XCI+PC9kcy1pY29uPlxyXG4gICAgICAgIDwvZHMtc3RhdHVzPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gZmxleC1ncm93LTFcIj5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnMtMTYgZnctbWVkaXVtIG0tMFwiPiB7eyBzZWN0aW9uTmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgIDxiZGkgY2xhc3M9XCJmcy0xMiBmYy1kYXJrLWdyYXkgZnctbm9ybWFsIGxpbmUtaGVpZ2h0LTEgZC1ibG9jayBtdC0xXCIgKm5nSWY9XCJzZWN0aW9uLmhlYWRlcj8ucHJvY2Vzc2VkQnlcIj5cclxuICAgICAgICAgICAge3sgcHJvY2Vzc2luZ0RhdGUgfX1cclxuICAgICAgICAgIDwvYmRpPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImFwcHJvdmFsLXBhbmVsLWRldGFpbHMgZ2FwLTFcIj5cclxuXHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIighc2VjdGlvbj8uYm9keT8uZGV0YWlscz8uWydzdGFnZTAnXT8uWydpc1N0YWdlMCddIHx8IHNlY3Rpb24/LmJvZHk/LmRldGFpbHM/Llsnc3RhZ2UwJ10/LlsnaXNTdGFnZTAnXSA9PT0gJ2ZhbHNlJylcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0zXCIgKm5nSWY9XCJzZWN0aW9uPy5oZWFkZXI/LnBlcnNvblRvO1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCIkZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XCI+XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlU21hbGxQcm9maWxlSW5mbygkZXZlbnQsICdyZWNpcGllbnQnKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHJhZGl1cy0zIGgtNDBcIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsndXNlci1hdmF0YXItbmFtZSBweC0wIHB4LW1kLTInOiAhc2VjdGlvbj8uaGVhZGVyPy5kZWxlZ2F0ZWRUbywgJ3AtMCc6IHNlY3Rpb24/LmhlYWRlcj8uZGVsZWdhdGVkVG99XCI+XHJcbiAgICAgICAgICAgICAgPGRzLWF2YXRhciBpbWFnZT1cInt7c2VjdGlvbj8uaGVhZGVyPy5wZXJzb25Ub1RodW1ibmFpbH19XCIgc2l6ZT1cInNtYWxsXCIgY2xhc3M9XCJ1c2VyLWF2YXRhclwiPjwvZHMtYXZhdGFyPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZzLTE0IGZ3LW1lZGl1bSBkLWlubGluZS1ibG9jayBwYW5lbC11c2VyLW5hbWUgdGV4dC10cnVuY2F0ZVwiIFtuZ0NsYXNzXT1cInsncGFuZWwtdXNlci1vbmx5JzogIXNlY3Rpb24/LmhlYWRlcj8uZGVsZWdhdGVkVG99XCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiIXNlY3Rpb24/LmhlYWRlcj8uZGVsZWdhdGVkVG9cIj57eyBzZWN0aW9uPy5oZWFkZXI/LnBlcnNvblRvIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAqbmdJZj1cInNlY3Rpb24/LmhlYWRlcj8uZGVsZWdhdGVkVG9cIiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTNcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTbWFsbFByb2ZpbGVJbmZvKCRldmVudCwgJ2RlbGVnYXRlJylcIj5cclxuICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInJvdGF0ZS1hcnJvd1wiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgICAgICAgICAgc3JjPVwiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQSE4yWnlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhkcFpIUm9QU0l5TVNJZ2FHVnBaMmgwUFNJeE15SWdkbWxsZDBKdmVEMGlNQ0F3SURJeElERXpJajQ4Y0dGMGFDQmtQU0pOTWpFc055NDNOak5oTVM0Mk1qRXNNUzQyTWpFc01Dd3dMREV0TGpRME55NDFPVE1zTVM0ek1EWXNNUzR6TURZc01Dd3dMREV0TGpjMUxqRTVOR010Tnk0eU9EUXNNQzA0TGpVMk9Dd3dMVEUxTGpnMU15d3dTRE11TmpZNVRETXVOak1zT0M0Mll5NHdOemN1TURZMExqRTFPQzR4TWpRdU1qSTVMakU1TkhFeExqY3hMREV1Tmprc015NDBNaXd6TGpNNE1XRXhMakF5TXl3eExqQXlNeXd3TERBc01Td3VNamt4TERFdU1EYzVMams1TWk0NU9USXNNQ3d3TERFdExqZ3VOekU1TERFdU1EVXpMREV1TURVekxEQXNNQ3d4TFRFdExqTXpNVkV6TGpnek1Td3hNUzQzTVRrc01TNDRPRFlzT1M0NFl5MHVORFF5TFM0ME16Y3RMamczT1MwdU9EZ3hMVEV1TXpNdE1TNHpNRGxCTkM0MU56SXNOQzQxTnpJc01Dd3dMREVzTUN3M0xqZ3hORlkzTGpFNE5VRXpNQzQzT0RNc016QXVOemd6TERBc01Dd3hMREl1TnpNc05DNHpOekZqTVMweExqQXlOeXd5TGpBek9DMHlMakF5TlN3ekxqQTJNeTB6TGpBek1rRXhMakEwT1N3eExqQTBPU3d3TERFc01TdzNMakkzTnl3eUxqZ3lRell1TkN3ekxqY3NOUzQxTURrc05DNDFOeXcwTGpZeU5TdzFMalEwTm1NdExqTXlNeTR6TWpFdExqWTBOQzQyTkRVdExqazNNeTQ1TnpZdU1EZzBMakExT1M0eE9ERXVNREkzTGpJM0xqQXlOeXczTGpJMU9Dd3dMRGd1TlRFMkxEQXNNVFV1TnpjMUxEQkJNUzR4TWprc01TNHhNamtzTUN3d0xERXNNakVzTnk0eU9YWXVORGN5V2lJZ2RISmhibk5tYjNKdFBTSjBjbUZ1YzJ4aGRHVW9NQ0F0TUM0NU9Ua3BJaUJtYVd4c1BTSWpZVFUwWldVeElpOCtQQzl6ZG1jK1wiLz5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiBweC0wIHB4LW1kLTIgcmFkaXVzLTMgdXNlci1hdmF0YXItbmFtZSBoLTQwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZHMtYXZhdGFyIGltYWdlPVwie3tzZWN0aW9uPy5oZWFkZXI/LmRlbGVnYXRlZFRvVGh1bWJuYWlsfX1cIiBzaXplPVwic21hbGxcIiBjbGFzcz1cInVzZXItYXZhdGFyXCI+PC9kcy1hdmF0YXI+XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImZzLTE0IGZ3LW1lZGl1bSBkLWlubGluZS1ibG9jayBwYW5lbC11c2VyLW5hbWUgdGV4dC10cnVuY2F0ZVwiPnt7IHNlY3Rpb24/LmhlYWRlcj8uZGVsZWdhdGVkVG8gfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkcy1zdGF0dXNcclxuICAgICAgICAgIGNsYXNzPVwibWFpbi1zdGF0dXNcIiAqbmdJZj1cInNlY3Rpb24/LmJvZHk/LmRldGFpbHM/LlsnZGVjaXNpb24nXT8ua2V5O1wiXHJcbiAgICAgICAgICBzdGF0dXM9XCJ7e3N0YXR1c0NsYXNzKHNlY3Rpb24/LmJvZHk/LmRldGFpbHM/LlsnZGVjaXNpb24nXT8ua2V5KX19XCI+e3sgc2VjdGlvbj8uYm9keT8uZGV0YWlscz8uWydkZWNpc2lvbiddPy52YWx1ZSB9fVxyXG4gICAgICAgIDwvZHMtc3RhdHVzPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJhcHByb3ZhbC1wYW5lbC10b2dnbGVcIj5cclxuICAgICAgICA8ZHMtaWNvbiBpY29uPVwicGx1cy0xXCIgY2xhc3M9XCJmcy0yMCBmYy1jb3JhbFwiICpuZ0lmPVwiIWFwcHJvdmFsUGFuZWwuZXhwYW5kZWRcIj48L2RzLWljb24+XHJcbiAgICAgICAgPGRzLWljb24gaWNvbj1cIm1pbnVzXCIgY2xhc3M9XCJmcy0yMCBmYy1kYXJrLWdyYXlcIiAqbmdJZj1cImFwcHJvdmFsUGFuZWwuZXhwYW5kZWRcIj48L2RzLWljb24+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcbiAgPHNlY3Rpb24gY2xhc3M9XCJib3JkZXItdG9wIHB0LTRcIj5cclxuICAgIFRlc3RcclxuICAgIDxuZy1jb250YWluZXIgICpuZ0NvbXBvbmVudE91dGxldD1cInNlY3Rpb25Gb3JtQ29tcG9uZW50OyBuZGNEeW5hbWljSW5wdXRzOiBpbnB1dFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvc2VjdGlvbj5cclxuXHJcbjwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0/LmhlYWRlcj8uc3RhdHVzPy5bJ2tleSddID09ICdORVcnIFwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwic2VjdGlvbkZvcm1Db21wb25lbnQ7IG5kY0R5bmFtaWNJbnB1dHM6IGlucHV0XCI+PC9uZy1jb250YWluZXI+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
@@ -121,7 +121,7 @@ export class WorkflowSectionComponent {
121
121
  });
122
122
  }
123
123
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, deps: [{ token: i1.CoreI18nService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
124
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: WorkflowSectionComponent, isStandalone: true, selector: "app-workflow-section", inputs: { sections: "sections", isReadOnly: "isReadOnly", isLoading: "isLoading", form: "form", contentClass: "contentClass", sectionsController: "sectionsController", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, outputs: { sectionSubmitted: "sectionSubmitted" }, viewQueries: [{ propertyName: "formStateObject", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.key !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"form?.sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"form?.sections.length > 1\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of form?.sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.key === 'NEW' \" class=\"default-box box-shadow p-4\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormSectionComponent, selector: "app-form-section", inputs: ["requestDetails", "section", "form", "lov", "isReadOnly", "isOpen", "isFinalApproval", "controllers", "segmentDynamicLoaderService", "sectionFormComponent", "sectionName"] }, { kind: "component", type: MainRequestDetailsComponent, selector: "app-main-request-details", inputs: ["section", "lov", "form"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: WorkflowSectionComponent, isStandalone: true, selector: "app-workflow-section", inputs: { sections: "sections", isReadOnly: "isReadOnly", isLoading: "isLoading", form: "form", contentClass: "contentClass", sectionsController: "sectionsController", segmentDynamicLoaderService: "segmentDynamicLoaderService", sectionFormComponent: "sectionFormComponent", sectionName: "sectionName" }, outputs: { sectionSubmitted: "sectionSubmitted" }, viewQueries: [{ propertyName: "formStateObject", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<form #f=\"ngForm\" autocomplete=\"off\">\r\n <div *ngIf=\"form?.header?.status?.key !== 'NEW' \" class=\"mt-n3\" id=\"accordion\" role=\"tablist\"\r\n aria-multiselectable=\"true\">\r\n <app-main-request-details [lov]=\"form?.lovs\" [form]=\"form\" [section]=\"form?.sections[0]\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </app-main-request-details>\r\n <header class=\"header-line fs-12 fw-medium fc-dark-gray mt-sm-5 mt-4 mb-4\" *ngIf=\"form?.sections.length > 1\">\r\n {{i18n.translate('Approvals')}}\r\n </header>\r\n <mat-accordion class=\"primary-accordion main-approval\">\r\n <ng-container *ngFor=\"let section of form?.sections; let i = index\">\r\n <app-form-section *ngIf=\"i !== 0\" class=\"app-form-section\" [segmentDynamicLoaderService]=\"segmentDynamicLoaderService\" [section]=section [lov]=\"form?.lovs\"\r\n [isReadOnly]=\"section.header.readOnly\" [form]=\"form\" [controllers]=\"sectionsController\">\r\n </app-form-section>\r\n </ng-container>\r\n </mat-accordion>\r\n </div>\r\n\r\n <section *ngIf=\"form?.header?.status?.key === 'NEW' \" class=\"default-box box-shadow p-4\">\r\n <ng-container *ngTemplateOutlet=\"contentReqDet\"></ng-container>\r\n </section>\r\n\r\n</form>\r\n\r\n\r\n<ng-template #contentReqDet><ng-content></ng-content></ng-template>\r\n", styles: ["@charset \"UTF-8\";.primary-accordion{--accordion-height: auto;--indicator-bc: transparent;--indicator-bc-active: transparent;--indicator-icon: \"\\e9bc\";--indicator-icon-active: \"\\ea34\";--indicator-color: var(--coral);--indicator-color-active: var(--dark-gray);--accordion-radius: 4px;--accordion-border-active: 1px solid var(--gray);--accordion-shadow: 0 7px 10px 0 rgba(var(--rgb-black), 3%);--accordion-shadow-active: none;--panel-padding: 1.5rem;--panel-body-padding: 0 1.5rem 1.5rem}@media (max-width: 576px){.primary-accordion{--accordion-height: 110px;--panel-padding: 1.5rem 1rem;--panel-body-padding: 0 1rem 1rem}}.primary-accordion.main-approval{position:relative}.primary-accordion.main-approval:before{content:\"\";position:absolute;top:0;bottom:0;margin:2rem;width:1px;height:calc(100% - 2rem);background-color:var(--dark-gray);z-index:0}@media (max-width: 576px){.workflow-all-btns ds-button::part(base){--btn-padding: 0 .5rem;--btn-fs: .75rem;--btn-height: var(--default-size-sm);--btn-min-width: var(--default-size-sm)}}\n"], dependencies: [{ kind: "directive", type: MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FormSectionComponent, selector: "app-form-section", inputs: ["requestDetails", "section", "form", "lov", "isReadOnly", "controllers", "segmentDynamicLoaderService", "sectionFormComponent", "sectionName"] }, { kind: "component", type: MainRequestDetailsComponent, selector: "app-main-request-details", inputs: ["section", "lov", "form"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
125
125
  }
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: WorkflowSectionComponent, decorators: [{
127
127
  type: Component,
@@ -159,4 +159,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImpor
159
159
  }], sectionName: [{
160
160
  type: Input
161
161
  }] } });
162
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC1zZWN0aW9ucy93b3JrZmxvdy1zZWN0aW9uL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvd29ya2Zsb3ctc2VjdGlvbi93b3JrZmxvdy1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sd0RBQXdELENBQUM7Ozs7QUFtQm5HLE1BQU0sT0FBTyx3QkFBd0I7SUFnQjFCO0lBQ0M7SUFoQmEsZUFBZSxDQUFTO0lBQ3JDLGdCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFELFFBQVEsQ0FBWTtJQUNwQixVQUFVLENBQVU7SUFDcEIsU0FBUyxDQUFVO0lBQ25CLElBQUks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SUFBSSxVQUFVO2dCQUN6QixJQUFJLEVBQUUsS0FBSyxJQUFJLFFBQVE7Z0JBQ3ZCLElBQUksRUFBRSxLQUFLLElBQUksUUFBUSxFQUN2QixDQUFDO2dCQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBMUhVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHloQkMzQnJDLDgyQ0EwQkEsNmtDRFRJLFlBQVksK0lBQ1osZ0JBQWdCLG9KQUNoQixJQUFJLDZGQUNKLG9CQUFvQixtUEFDcEIsMkJBQTJCLHlHQUMzQixPQUFPLGtIQUNQLFdBQVc7OzJGQUlGLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBR3ZCLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IsT0FBTzt3QkFDUCxXQUFXO3FCQUNaLGNBQ1csSUFBSTtvSEFHTyxlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLEdBQUc7Z0JBQ0osZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5nRm9ybX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0Zvcm0sIFNlY3Rpb259IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TWF0QWNjb3JkaW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQge0Zvcm1TZWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtLXNlY3Rpb24vZm9ybS1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWFpblJlcXVlc3REZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuLi9tYWluLXJlcXVlc3QtZGV0YWlscy9tYWluLXJlcXVlc3QtZGV0YWlscy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdEFjY29yZGlvbixcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ0lmLFxyXG4gICAgRm9ybVNlY3Rpb25Db21wb25lbnQsXHJcbiAgICBNYWluUmVxdWVzdERldGFpbHNDb21wb25lbnQsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93U2VjdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZicpIHB1YmxpYyBmb3JtU3RhdGVPYmplY3Q6IE5nRm9ybTtcclxuICBAT3V0cHV0KCkgc2VjdGlvblN1Ym1pdHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2VjdGlvbnM6IFNlY3Rpb25bXTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRDbGFzcyA9ICdkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNCc7XHJcbiAgc3RhcnRlZExpc3RlbmVyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VjdGlvbnNDb250cm9sbGVyOiBhbnk7XHJcbiAgc2hvd0J1dHRvbk1lbnUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2UgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25Gb3JtQ29tcG9uZW50ID0gbnVsbDtcclxuICBASW5wdXQoKSBzZWN0aW9uTmFtZSA9IGNvbnN0YW50cy5TRUNUSU9OX0lEX1JFUVVFU1RfREVUQUlMUztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbi8qICAgIF9saXN0ZW5lclNlcnZpY2UubGlzdGVuKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAncmVzZXRGb3JtJykge1xyXG4gICAgICAgIHRoaXMucmVzZXRGb3JtKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAnb25TdWJtaXQnKSB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvblNpemUgPSB0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YSA/IHJlc3VsdC5kYXRhIDogc2VjdGlvbjtcclxuICAgICAgICB0aGlzLm9uU3VibWl0KHJlc3VsdD8uYWN0aW9uLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgfSk7Ki9cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm1TdGF0ZU9iamVjdCAmJiB0aGlzLmZvcm0gJiYgIXRoaXMuc3RhcnRlZExpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMuZm9ybVN0YXRlT2JqZWN0LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXHJcbiAgICAgICAgKGZvcm0pID0+IHtcclxuICAgICAgICAgIE9iamVjdC5rZXlzKGZvcm0pLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uc1t0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDFdLmJvZHkuZGV0YWlsc1trZXldICE9PVxyXG4gICAgICAgICAgICAgIGZvcm1ba2V5XSAmJlxyXG4gICAgICAgICAgICAgIGZvcm1ba2V5XSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zW3RoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMV0uYm9keS5kZXRhaWxzW2tleV0gPVxyXG4gICAgICAgICAgICAgICAgZm9ybVtrZXldO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlY3Rpb25zQ29udHJvbGxlciA9IHRoaXMuZm9ybVN0YXRlT2JqZWN0LmNvbnRyb2xzO1xyXG4gICAgICB0aGlzLnN0YXJ0ZWRMaXN0ZW5lciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrQnV0dG9ucygpO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuLyogIGlzU3VibWl0dGluZyA9IHt9O1xyXG4gIGRpc2FibGVCdXR0b25zID0gZmFsc2U7Ki9cclxuXHJcbi8qICBvblN1Ym1pdChhY3Rpb246IGFueSwgc2VjdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBzZWN0aW9uU2l6ZSA9IHRoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMTtcclxuICAgIGxldCBzZWN0aW9uRGVjaXNpb24gPSB0aGlzLnNlY3Rpb25zW3NlY3Rpb25TaXplXS5ib2R5LmRldGFpbHMuZGVjaXNpb247XHJcbiAgICBpZiAoc2VjdGlvbkRlY2lzaW9uICYmIGFjdGlvbiA9PT0gJ1NVQk1JVCcpIHtcclxuICAgICAgc2VjdGlvbkRlY2lzaW9uID0geyBrZXk6IGFjdGlvbiB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHNlY3Rpb25EZWNpc2lvbiAmJiBhY3Rpb24gIT09ICdTVUJNSVQnKSB7XHJcbiAgICAgIHNlY3Rpb25EZWNpc2lvbiA9IHsga2V5OiBhY3Rpb24gfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdLmJvZHkuZGV0YWlscy5kZWNpc2lvbiA9IHNlY3Rpb25EZWNpc2lvbjtcclxuICAgIHRoaXMucHJvZmlsZVJlcXVlc3RlclNlcnZpY2UuaXNTdWJtaXR0aW5nW2FjdGlvbl0gPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9maWxlUmVxdWVzdGVyU2VydmljZS5kaXNhYmxlQnV0dG9ucyA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXRlTWFjaGluZVNlcnZpY2VcclxuICAgICAgLmRpc3BhdGNoKFxyXG4gICAgICAgIGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9TVUJNSVRfRk9STSxcclxuICAgICAgICBzZWN0aW9uLFxyXG4gICAgICAgIGFjdGlvblxyXG4gICAgICApXHJcbiAgICAgIC50aGVuKChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmlzU3VibWl0dGluZ1thY3Rpb25dID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmRpc2FibGVCdXR0b25zID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICBmb3JtOiBmb3JtLFxyXG4gICAgICAgICAgYWN0aW9uOiBhY3Rpb25cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblN1Ym1pdHRlZC5lbWl0KG9iaik7XHJcbiAgICAgIH0pO1xyXG4gIH0qL1xyXG5cclxuLyogIHJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybVN0YXRlT2JqZWN0LnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlc2V0UHJvcGFnYXRvci5wcm9wYWdhdGUoKTtcclxuICB9Ki9cclxuXHJcbiAgZ2V0IGlzRXhwYW5kYWJsZUZyb21CYWNrZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uc2VjdGlvbnM/Lmxlbmd0aCAmJiB0aGlzLmZvcm0uc2VjdGlvbnMuc29tZShzZWN0aW9uID0+ICdleHBhbmRTdGFnZScgaW4gc2VjdGlvbj8uYm9keT8uZGV0YWlscyk7XHJcbiAgfVxyXG5cclxuICBidXR0b25UeXBlcyh0eXBlKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnQVBQUk9WRSc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdTRU5EQkFDSyc6XHJcbiAgICAgICAgcmV0dXJuICdyZWQnO1xyXG4gICAgICBjYXNlICdSRUpFQ1QnOlxyXG4gICAgICAgIHJldHVybiAncmVkJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0J1dHRvbnMoKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5mb3JtPy5sb3ZzPy5kZWNpc2lvbj8ub3B0aW9ucztcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSkgcmV0dXJuO1xyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnQVBQUk9WRScgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnUkVKRUNUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdTRU5EQkFDSycgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnU1VCTUlUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdDQU5DRUwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbk1lbnUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gI2Y9XCJuZ0Zvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICA8ZGl2ICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/LmtleSAhPT0gJ05FVycgXCIgY2xhc3M9XCJtdC1uM1wiIGlkPVwiYWNjb3JkaW9uXCIgcm9sZT1cInRhYmxpc3RcIlxyXG4gICAgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCI+XHJcbiAgICA8YXBwLW1haW4tcmVxdWVzdC1kZXRhaWxzIFtsb3ZdPVwiZm9ybT8ubG92c1wiIFtmb3JtXT1cImZvcm1cIiBbc2VjdGlvbl09XCJmb3JtPy5zZWN0aW9uc1swXVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFJlcURldFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9hcHAtbWFpbi1yZXF1ZXN0LWRldGFpbHM+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLWxpbmUgZnMtMTIgZnctbWVkaXVtIGZjLWRhcmstZ3JheSBtdC1zbS01IG10LTQgbWItNFwiICpuZ0lmPVwiZm9ybT8uc2VjdGlvbnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICB7e2kxOG4udHJhbnNsYXRlKCdBcHByb3ZhbHMnKX19XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxtYXQtYWNjb3JkaW9uIGNsYXNzPVwicHJpbWFyeS1hY2NvcmRpb24gbWFpbi1hcHByb3ZhbFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGZvcm0/LnNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGFwcC1mb3JtLXNlY3Rpb24gKm5nSWY9XCJpICE9PSAwXCIgY2xhc3M9XCJhcHAtZm9ybS1zZWN0aW9uXCIgW3NlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZV09XCJzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2VcIiBbc2VjdGlvbl09c2VjdGlvbiBbbG92XT1cImZvcm0/LmxvdnNcIlxyXG4gICAgICAgICAgW2lzUmVhZE9ubHldPVwic2VjdGlvbi5oZWFkZXIucmVhZE9ubHlcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRyb2xsZXJzXT1cInNlY3Rpb25zQ29udHJvbGxlclwiPlxyXG4gICAgICAgIDwvYXBwLWZvcm0tc2VjdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1hY2NvcmRpb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/LmtleSA9PT0gJ05FVycgXCIgY2xhc3M9XCJkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRSZXFEZXRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG48L2Zvcm0+XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50UmVxRGV0PjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxyXG4iXX0=
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3ctc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9icG0tY29yZS9zcmMvbGliL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC1zZWN0aW9ucy93b3JrZmxvdy1zZWN0aW9uL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYnBtLWNvcmUvc3JjL2xpYi9jb21wb25lbnRzL2FwcC1jb21wb25lbnQtc2VjdGlvbnMvd29ya2Zsb3ctc2VjdGlvbi93b3JrZmxvdy1zZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLHNCQUFzQixFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEtBQUssU0FBUyxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxXQUFXLEVBQVMsTUFBTSxnQkFBZ0IsQ0FBQztBQUduRCxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sd0RBQXdELENBQUM7Ozs7QUFtQm5HLE1BQU0sT0FBTyx3QkFBd0I7SUFnQjFCO0lBQ0M7SUFoQmEsZUFBZSxDQUFTO0lBQ3JDLGdCQUFnQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzFELFFBQVEsQ0FBWTtJQUNwQixVQUFVLENBQVU7SUFDcEIsU0FBUyxDQUFVO0lBQ25CLElBQUks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SUFBSSxVQUFVO2dCQUN6QixJQUFJLEVBQUUsS0FBSyxJQUFJLFFBQVE7Z0JBQ3ZCLElBQUksRUFBRSxLQUFLLElBQUksUUFBUSxFQUN2QixDQUFDO2dCQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1lBQzdCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBMUhVLHdCQUF3QjsyRkFBeEIsd0JBQXdCLHloQkMzQnJDLDgyQ0EwQkEsNmtDRFRJLFlBQVksK0lBQ1osZ0JBQWdCLG9KQUNoQixJQUFJLDZGQUNKLG9CQUFvQixzTkFDcEIsMkJBQTJCLHlHQUMzQixPQUFPLGtIQUNQLFdBQVc7OzJGQUlGLHdCQUF3QjtrQkFqQnBDLFNBQVM7K0JBQ0Usc0JBQXNCLFdBR3ZCLENBQUMsc0JBQXNCLENBQUMsV0FDeEI7d0JBQ1AsT0FBTzt3QkFDUCxZQUFZO3dCQUNaLGdCQUFnQjt3QkFDaEIsSUFBSTt3QkFDSixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0IsT0FBTzt3QkFDUCxXQUFXO3FCQUNaLGNBQ1csSUFBSTtvSEFHTyxlQUFlO3NCQUFyQyxTQUFTO3VCQUFDLEdBQUc7Z0JBQ0osZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNFLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFFRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0ICogYXMgY29uc3RhbnRzIGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cyc7XHJcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIE5nRm9ybX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge0Zvcm0sIFNlY3Rpb259IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xyXG5pbXBvcnQge0NvcmVJMThuU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge05nQ2xhc3MsIE5nRm9yT2YsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TWF0QWNjb3JkaW9ufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xyXG5pbXBvcnQge0Zvcm1TZWN0aW9uQ29tcG9uZW50fSBmcm9tICcuLi9mb3JtLXNlY3Rpb24vZm9ybS1zZWN0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7TWFpblJlcXVlc3REZXRhaWxzQ29tcG9uZW50fSBmcm9tICcuLi9tYWluLXJlcXVlc3QtZGV0YWlscy9tYWluLXJlcXVlc3QtZGV0YWlscy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtd29ya2Zsb3ctc2VjdGlvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dvcmtmbG93LXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcclxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTmdDbGFzcyxcclxuICAgIE1hdEFjY29yZGlvbixcclxuICAgIE5nVGVtcGxhdGVPdXRsZXQsXHJcbiAgICBOZ0lmLFxyXG4gICAgRm9ybVNlY3Rpb25Db21wb25lbnQsXHJcbiAgICBNYWluUmVxdWVzdERldGFpbHNDb21wb25lbnQsXHJcbiAgICBOZ0Zvck9mLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFdvcmtmbG93U2VjdGlvbkNvbXBvbmVudCB7XHJcbiAgQFZpZXdDaGlsZCgnZicpIHB1YmxpYyBmb3JtU3RhdGVPYmplY3Q6IE5nRm9ybTtcclxuICBAT3V0cHV0KCkgc2VjdGlvblN1Ym1pdHRlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgc2VjdGlvbnM6IFNlY3Rpb25bXTtcclxuICBASW5wdXQoKSBpc1JlYWRPbmx5OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGlzTG9hZGluZzogYm9vbGVhbjtcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dCgpIGNvbnRlbnRDbGFzcyA9ICdkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNCc7XHJcbiAgc3RhcnRlZExpc3RlbmVyID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2VjdGlvbnNDb250cm9sbGVyOiBhbnk7XHJcbiAgc2hvd0J1dHRvbk1lbnUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2UgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHNlY3Rpb25Gb3JtQ29tcG9uZW50ID0gbnVsbDtcclxuICBASW5wdXQoKSBzZWN0aW9uTmFtZSA9IGNvbnN0YW50cy5TRUNUSU9OX0lEX1JFUVVFU1RfREVUQUlMUztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4bjogQ29yZUkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgKSB7XHJcbi8qICAgIF9saXN0ZW5lclNlcnZpY2UubGlzdGVuKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xyXG4gICAgICBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAncmVzZXRGb3JtJykge1xyXG4gICAgICAgIHRoaXMucmVzZXRGb3JtKCk7XHJcbiAgICAgIH0gZWxzZSBpZiAocmVzdWx0Py5mdW5jdGlvbiA9PSAnb25TdWJtaXQnKSB7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvblNpemUgPSB0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDE7XHJcbiAgICAgICAgY29uc3Qgc2VjdGlvbiA9IHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdO1xyXG4gICAgICAgIGNvbnN0IGRhdGEgPSByZXN1bHQuZGF0YSA/IHJlc3VsdC5kYXRhIDogc2VjdGlvbjtcclxuICAgICAgICB0aGlzLm9uU3VibWl0KHJlc3VsdD8uYWN0aW9uLCBkYXRhKTtcclxuICAgICAgfVxyXG4gICAgfSk7Ki9cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm1TdGF0ZU9iamVjdCAmJiB0aGlzLmZvcm0gJiYgIXRoaXMuc3RhcnRlZExpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMuZm9ybVN0YXRlT2JqZWN0LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXHJcbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXHJcbiAgICAgICAgKGZvcm0pID0+IHtcclxuICAgICAgICAgIE9iamVjdC5rZXlzKGZvcm0pLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgdGhpcy5zZWN0aW9uc1t0aGlzLnNlY3Rpb25zLmxlbmd0aCAtIDFdLmJvZHkuZGV0YWlsc1trZXldICE9PVxyXG4gICAgICAgICAgICAgIGZvcm1ba2V5XSAmJlxyXG4gICAgICAgICAgICAgIGZvcm1ba2V5XSAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICB0aGlzLnNlY3Rpb25zW3RoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMV0uYm9keS5kZXRhaWxzW2tleV0gPVxyXG4gICAgICAgICAgICAgICAgZm9ybVtrZXldO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlY3Rpb25zQ29udHJvbGxlciA9IHRoaXMuZm9ybVN0YXRlT2JqZWN0LmNvbnRyb2xzO1xyXG4gICAgICB0aGlzLnN0YXJ0ZWRMaXN0ZW5lciA9IHRydWU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNoZWNrQnV0dG9ucygpO1xyXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuLyogIGlzU3VibWl0dGluZyA9IHt9O1xyXG4gIGRpc2FibGVCdXR0b25zID0gZmFsc2U7Ki9cclxuXHJcbi8qICBvblN1Ym1pdChhY3Rpb246IGFueSwgc2VjdGlvbjogYW55KSB7XHJcbiAgICBjb25zdCBzZWN0aW9uU2l6ZSA9IHRoaXMuc2VjdGlvbnMubGVuZ3RoIC0gMTtcclxuICAgIGxldCBzZWN0aW9uRGVjaXNpb24gPSB0aGlzLnNlY3Rpb25zW3NlY3Rpb25TaXplXS5ib2R5LmRldGFpbHMuZGVjaXNpb247XHJcbiAgICBpZiAoc2VjdGlvbkRlY2lzaW9uICYmIGFjdGlvbiA9PT0gJ1NVQk1JVCcpIHtcclxuICAgICAgc2VjdGlvbkRlY2lzaW9uID0geyBrZXk6IGFjdGlvbiB9O1xyXG4gICAgfVxyXG4gICAgaWYgKHNlY3Rpb25EZWNpc2lvbiAmJiBhY3Rpb24gIT09ICdTVUJNSVQnKSB7XHJcbiAgICAgIHNlY3Rpb25EZWNpc2lvbiA9IHsga2V5OiBhY3Rpb24gfTtcclxuICAgIH1cclxuICAgIHRoaXMuc2VjdGlvbnNbc2VjdGlvblNpemVdLmJvZHkuZGV0YWlscy5kZWNpc2lvbiA9IHNlY3Rpb25EZWNpc2lvbjtcclxuICAgIHRoaXMucHJvZmlsZVJlcXVlc3RlclNlcnZpY2UuaXNTdWJtaXR0aW5nW2FjdGlvbl0gPSB0cnVlO1xyXG4gICAgdGhpcy5wcm9maWxlUmVxdWVzdGVyU2VydmljZS5kaXNhYmxlQnV0dG9ucyA9IHRydWU7XHJcbiAgICB0aGlzLnN0YXRlTWFjaGluZVNlcnZpY2VcclxuICAgICAgLmRpc3BhdGNoKFxyXG4gICAgICAgIGNvbnN0YW50cy5TVEFURV9NQUNISU5FX0FDVElPTl9TVUJNSVRfRk9STSxcclxuICAgICAgICBzZWN0aW9uLFxyXG4gICAgICAgIGFjdGlvblxyXG4gICAgICApXHJcbiAgICAgIC50aGVuKChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmlzU3VibWl0dGluZ1thY3Rpb25dID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2ZpbGVSZXF1ZXN0ZXJTZXJ2aWNlLmRpc2FibGVCdXR0b25zID0gdHJ1ZTtcclxuICAgICAgICBjb25zdCBvYmogPSB7XHJcbiAgICAgICAgICBmb3JtOiBmb3JtLFxyXG4gICAgICAgICAgYWN0aW9uOiBhY3Rpb25cclxuICAgICAgICB9O1xyXG4gICAgICAgIHRoaXMuc2VjdGlvblN1Ym1pdHRlZC5lbWl0KG9iaik7XHJcbiAgICAgIH0pO1xyXG4gIH0qL1xyXG5cclxuLyogIHJlc2V0Rm9ybSgpIHtcclxuICAgIHRoaXMuZm9ybVN0YXRlT2JqZWN0LnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlc2V0UHJvcGFnYXRvci5wcm9wYWdhdGUoKTtcclxuICB9Ki9cclxuXHJcbiAgZ2V0IGlzRXhwYW5kYWJsZUZyb21CYWNrZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybT8uc2VjdGlvbnM/Lmxlbmd0aCAmJiB0aGlzLmZvcm0uc2VjdGlvbnMuc29tZShzZWN0aW9uID0+ICdleHBhbmRTdGFnZScgaW4gc2VjdGlvbj8uYm9keT8uZGV0YWlscyk7XHJcbiAgfVxyXG5cclxuICBidXR0b25UeXBlcyh0eXBlKSB7XHJcbiAgICBzd2l0Y2ggKHR5cGUpIHtcclxuICAgICAgY2FzZSAnQVBQUk9WRSc6XHJcbiAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICBjYXNlICdTRU5EQkFDSyc6XHJcbiAgICAgICAgcmV0dXJuICdyZWQnO1xyXG4gICAgICBjYXNlICdSRUpFQ1QnOlxyXG4gICAgICAgIHJldHVybiAncmVkJztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGVja0J1dHRvbnMoKSB7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5mb3JtPy5sb3ZzPy5kZWNpc2lvbj8ub3B0aW9ucztcclxuICAgIGlmICghQXJyYXkuaXNBcnJheShvcHRpb25zKSkgcmV0dXJuO1xyXG4gICAgb3B0aW9ucy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnQVBQUk9WRScgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnUkVKRUNUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdTRU5EQkFDSycgJiZcclxuICAgICAgICBpdGVtPy52YWx1ZSAhPSAnU1VCTUlUJyAmJlxyXG4gICAgICAgIGl0ZW0/LnZhbHVlICE9ICdDQU5DRUwnXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2hvd0J1dHRvbk1lbnUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gI2Y9XCJuZ0Zvcm1cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICA8ZGl2ICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/LmtleSAhPT0gJ05FVycgXCIgY2xhc3M9XCJtdC1uM1wiIGlkPVwiYWNjb3JkaW9uXCIgcm9sZT1cInRhYmxpc3RcIlxyXG4gICAgYXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCI+XHJcbiAgICA8YXBwLW1haW4tcmVxdWVzdC1kZXRhaWxzIFtsb3ZdPVwiZm9ybT8ubG92c1wiIFtmb3JtXT1cImZvcm1cIiBbc2VjdGlvbl09XCJmb3JtPy5zZWN0aW9uc1swXVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFJlcURldFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9hcHAtbWFpbi1yZXF1ZXN0LWRldGFpbHM+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLWxpbmUgZnMtMTIgZnctbWVkaXVtIGZjLWRhcmstZ3JheSBtdC1zbS01IG10LTQgbWItNFwiICpuZ0lmPVwiZm9ybT8uc2VjdGlvbnMubGVuZ3RoID4gMVwiPlxyXG4gICAgICB7e2kxOG4udHJhbnNsYXRlKCdBcHByb3ZhbHMnKX19XHJcbiAgICA8L2hlYWRlcj5cclxuICAgIDxtYXQtYWNjb3JkaW9uIGNsYXNzPVwicHJpbWFyeS1hY2NvcmRpb24gbWFpbi1hcHByb3ZhbFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBzZWN0aW9uIG9mIGZvcm0/LnNlY3Rpb25zOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgPGFwcC1mb3JtLXNlY3Rpb24gKm5nSWY9XCJpICE9PSAwXCIgY2xhc3M9XCJhcHAtZm9ybS1zZWN0aW9uXCIgW3NlZ21lbnREeW5hbWljTG9hZGVyU2VydmljZV09XCJzZWdtZW50RHluYW1pY0xvYWRlclNlcnZpY2VcIiBbc2VjdGlvbl09c2VjdGlvbiBbbG92XT1cImZvcm0/LmxvdnNcIlxyXG4gICAgICAgICAgW2lzUmVhZE9ubHldPVwic2VjdGlvbi5oZWFkZXIucmVhZE9ubHlcIiBbZm9ybV09XCJmb3JtXCIgW2NvbnRyb2xsZXJzXT1cInNlY3Rpb25zQ29udHJvbGxlclwiPlxyXG4gICAgICAgIDwvYXBwLWZvcm0tc2VjdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L21hdC1hY2NvcmRpb24+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxzZWN0aW9uICpuZ0lmPVwiZm9ybT8uaGVhZGVyPy5zdGF0dXM/LmtleSA9PT0gJ05FVycgXCIgY2xhc3M9XCJkZWZhdWx0LWJveCBib3gtc2hhZG93IHAtNFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRSZXFEZXRcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L3NlY3Rpb24+XHJcblxyXG48L2Zvcm0+XHJcblxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50UmVxRGV0PjxuZy1jb250ZW50PjwvbmctY29udGVudD48L25nLXRlbXBsYXRlPlxyXG4iXX0=