vcomply-workflow-engine 6.1.44 → 6.1.46
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.
- package/esm2022/lib/sharedComponents/frequency/frequency-on-completion-of/frequency-on-completion-of.component.mjs +2 -2
- package/esm2022/lib/sharedComponents/frequency/frequency-responsibility-list/frequency-responsibility-list.component.mjs +6 -6
- package/esm2022/lib/sharedComponents/frequency/frequency.service.mjs +3 -3
- package/esm2022/lib/sharedComponents/risk-classification/risk-classification.component.mjs +1 -1
- package/esm2022/lib/ui-kit/avatar-v2/avatar-v2.component.mjs +4 -4
- package/esm2022/lib/workflow-compliance/workflow-compliance.component.mjs +6 -5
- package/fesm2022/vcomply-workflow-engine.mjs +16 -15
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -114,7 +114,7 @@ export class FrequencyOnCompletionOfComponent {
|
|
|
114
114
|
dueAfter: this.onCompletionOfInput,
|
|
115
115
|
responsibility: this.selectedResponsibilityDetails?.responsibility?.id,
|
|
116
116
|
assignee: this.selectedResponsibilityDetails?.responsibility?.assigneeDetails[0]?.assignee,
|
|
117
|
-
|
|
117
|
+
responsibilityCenter: this.selectedResponsibilityDetails?.responsibility?.assigneeDetails[0]?.responsibilityCenter
|
|
118
118
|
};
|
|
119
119
|
console.log(this.frequencyInfo, "frequencyInfo");
|
|
120
120
|
this.frequencyDetails.emit(this.frequencyInfo);
|
|
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
161
161
|
}], radioForm: [{
|
|
162
162
|
type: Output
|
|
163
163
|
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLGdDQUFnQztJQTBCM0MsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QjdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsaUJBQVksR0FBVyxZQUFZLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLGlDQUE0QixHQUFlLEVBQUUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsMkJBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FB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Z0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLGdDQUFnQzt1R0FLakMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFhRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0ksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQvbW9tZW50JztcbmltcG9ydCB7IGVsZW1lbnRBdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IERFRkFVTFRfVElNRSB9IGZyb20gJy4uLy4uLy4uL2NvbnN0YW50cy90aW1lLmNvbnN0YW50cyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLmNvbXBvbmVudC5sZXNzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZyZXF1ZW5jeU9uQ29tcGxldGlvbk9mQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgbW9kZTogYW55ID0gJyc7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgREVGQVVMVF9USU1FOiBzdHJpbmcgPSBERUZBVUxUX1RJTUU7XG4gIG9uQ29tcGxldGlvbk9mSW5wdXQgPSAxO1xuICBvbkNvbXBsZXRpb25PZldpbmRvdyA9IDM7XG4gIG9uQ29tcGxldGlvbk9mRmFpbGVkID0gNTtcbiAgb25Db21wbGV0aW9uT2ZUaW1lID0gREVGQVVMVF9USU1FO1xuICBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OiBBcnJheTxhbnk+ID0gW107XG4gIGlzTGlmZWN5Y2xlTW9kaWZpZWQgPSBmYWxzZTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IDA7XG4gIHBsYWNlaG9sZGVyID0gJ0xvYWRpbmcuLi4nO1xuICBmcmVxdWVuY3lJbmZvOiBhbnk7XG4gIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzOiBhbnkgPSB7fTtcblxuICBASW5wdXQoKSBzdGFydERhdGUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbiAgQElucHV0KCkgZnJlcXVlbmN5RGF0YTogYW55O1xuICBsaWZlY3ljbGVEZXRhaWxzOiBhbnkgPSAnMDAwMC0wMC0wMH5+MCc7XG5cbiAgQE91dHB1dCgpIGZyZXF1ZW5jeURldGFpbHMgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJhZGlvRm9ybSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBvcGVuUmFkaW86IGJvb2xlYW4gPSBmYWxzZTtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBiYWNrQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG4gIGlzU2VsZWN0ZWREYXRhOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZiA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX2ZyZXF1ZW5jeV9vbl9jb21wbGV0aW9uX29mJ1xuICAgICk7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvID0gT2JqZWN0LmFzc2lnbih0aGlzLmZyZXF1ZW5jeVNlcnZpY2UuZnJlcXVlbmN5SW5mbyk7XG4gICAgdGhpcy5nZXRDb21wbGV0aW9uUmVwb3J0cygpO1xuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gICAgdGhpcy5pc1NlbGVjdGVkRGF0YSA9IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcbiAgICAgID8gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyk/Lmxlbmd0aCA+IDBcbiAgICAgIDogZmFsc2U7XG4gIH1cblxuICBwb3B1bGF0ZUZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lTZWxlY3RlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+Jyk7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID0gcGFyc2VJbnQoZnJlcXVlbmN5U2VsZWN0ZWRbM10pO1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkO1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZXaW5kb3cgPSB0aGlzLmZyZXF1ZW5jeURhdGEud2luZG93O1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZUaW1lID0gdGhpcy5mcmVxdWVuY3lEYXRhLmZhaWxlZFRpbWU7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9IHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eS5maW5kKFxuICAgICAgKHJlczogYW55KSA9PiByZXMuUmVwb3J0SWQgPT09IHRoaXMuZnJlcXVlbmN5RGF0YS5zZWxlY3RlZFJlcG9ydFxuICAgICk7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIG9uVGltZUNoYW5nZWQoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZUaW1lID0gZXZlbnQ7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgfVxuXG4gIG9uVmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudC50eXBlID09PSAnY29tcGxldGVkJykge1xuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdyA9IGV2ZW50LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mRmFpbGVkID0gZXZlbnQudmFsdWU7XG4gICAgfVxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gIH1cblxuICBvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zb2xlLmxvZyhldmVudCwgXCJldmVudFwiKTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0gZXZlbnQ7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgfVxuXG4gIGdldENvbXBsZXRpb25SZXBvcnRzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSA9IDA7XG4gICAgdGhpcy5wbGFjZWhvbGRlciA9ICdTZWxlY3QgYSBSZXNwb25zaWJpbGl0eSc7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5ID0gW107XG5cbiAgICBpZiAodGhpcy5mcmVxdWVuY3lEYXRhPy5vbkNvbXBsZXRpb25SZXBvcnREZXRhaWxzKSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkucHVzaChcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhPy5vbkNvbXBsZXRpb25SZXBvcnREZXRhaWxzXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuICE9ICcnICYmXG4gICAgICBwYXJzZUludCh0aGlzLmZyZXF1ZW5jeURhdGEucGF0dGVybi5zcGxpdCgnficpWzBdKSA9PT0gNlxuICAgICkge1xuICAgICAgdGhpcy5wb3B1bGF0ZUZyZXF1ZW5jeSgpO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0VmFsdWVDaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA9IE51bWJlcihldmVudC50YXJnZXQudmFsdWUpO1xuICAgIGlmICh0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPCAxKSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSAxO1xuICAgIH1cbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCkge1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wbGFjZWhvbGRlciA9XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgK1xuICAgICAgJyAnICtcbiAgICAgICh0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPiAxID8gJ2RheXMnIDogJ2RheScpICtcbiAgICAgICcgYWZ0ZXIgY29tcGxldGlvbiBvZiAnICtcbiAgICAgICh0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkgJiZcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZVxuICAgICAgICA/IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZVxuICAgICAgICA6ICcnKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucGF0dGVybiA9XG4gICAgICA2ICsgJ34nICsgJzAnICsgJ34nICsgJzAnICsgJ34nICsgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5jYXNlID0gJ29uX2NvbXBsZXRlJztcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkQWZ0ZXIgPSB0aGlzLm9uQ29tcGxldGlvbk9mRmFpbGVkO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby53aW5kb3cgPSB0aGlzLm9uQ29tcGxldGlvbk9mV2luZG93O1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby50aW1lSW4xMmhyID0gdGhpcy5vbkNvbXBsZXRpb25PZlRpbWU7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjI0SHIgPSB0aGlzLmZyZXF1ZW5jeVNlcnZpY2UudGltZUZyb20xMmhUbzI0aChcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZUaW1lXG4gICAgKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8uZmFpbGVkX3RpbWVfdXRjID0gMDtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ub25Db21wbGV0aW9uID0ge1xuICAgICAgZHVlQWZ0ZXI6IHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCxcbiAgICAgIHJlc3BvbnNpYmlsaXR5OiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8uaWQsXG4gICAgICBhc3NpZ25lZTogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlsc1swXT8uYXNzaWduZWUsXG4gICAgICByYzogdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlsc1swXT8ucmVzcG9uc2liaWxpdHlDZW50ZXJcbiAgICB9XG4gICAgY29uc29sZS5sb2codGhpcy5mcmVxdWVuY3lJbmZvLCBcImZyZXF1ZW5jeUluZm9cIik7XG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcbiAgfVxuXG4gIG9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQgPT09ICdiYWNrVG9PbkNvbXBsZXRpb24nKSB7XG4gICAgICB0aGlzLmJhY2tCdXR0b24gPSB0cnVlO1xuICAgICAgdGhpcy5vcGVuUmFkaW8gPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuUmFkaW8gPSB0cnVlO1xuICAgICAgdGhpcy5iYWNrQnV0dG9uID0gZmFsc2U7XG4gICAgfVxuICAgIHRoaXMucmFkaW9Gb3JtLmVtaXQodGhpcy5vcGVuUmFkaW8pO1xuICB9XG5cbiAgcmVtb3ZlKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPSB7fTtcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxuICAgICAgOiBmYWxzZTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8ucmVwb3J0SWQgPSAwO1xuICAgIHRoaXMuZnJlcXVlbmN5RGV0YWlscy5lbWl0KHRoaXMuZnJlcXVlbmN5SW5mbyk7XG4gIH1cblxuICB0aW1lU2VsZWN0aW9uKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gZXZlbnQuc2VsZWN0ZWRWYWx1ZTtcbiAgICB0aGlzLm9uVGltZUNoYW5nZWQoc2VsZWN0ZWRWYWx1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvblwiICpuZ0lmPVwibW9kZSAhPT0gJ3BvbGljeScgfHwgYmFja0J1dHRvblwiPlxuICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlxuICAgIERVRSBEQVRFIEZSRVFVRU5DWTpcbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvbi1pbm5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvbi10b3AgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgIDxpbnB1dCBjbGFzcz1cImNvdW50TnVtXCIgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZJbnB1dFwiIChjaGFuZ2UpPVwiaW5wdXRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIiBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCIgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMyB2eC1wYXJhZ3JhcGgtdHh0XCI+ZGF5IGFmdGVyIGNvbXBsZXRpb24gb2Y8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LWNvbXBsZXRpb24tYm90dG9tIHZ4LXAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHQgdngtdHQtdXBwZXJjYXNlIHZ4LW1iLTFcIj5cbiAgICAgICAgUkVTUE9OU0lCSUxJVFlcbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8udGl0bGVcIlxuICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cInBsYWNlaG9sZGVyID09PSAnTG9hZGluZy4uLidcIlxuICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3QtYm94IHZ4LWZzLTExIHZ4LXBhcmFncmFwaC10eHQgdngtcC0yIHZ4LXBsLTMgdngtcHItMyB2eC1tci0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuIHZ4LXctMTAwXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuUmFkaW9SZXNwb25zaWJpbGl0eSgkZXZlbnQpXCI+XG4gICAgICAgICAgICB7e1xuICAgICAgICAgICAgcGxhY2Vob2xkZXIgPT09IFwiTG9hZGluZy4uLlwiXG4gICAgICAgICAgICA/IFwiTG9hZGluZy4uLlwiXG4gICAgICAgICAgICA6IFwiU2VsZWN0IGEgUmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4mI3hlOWU4OzwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZSBhcyByZXNwTmFtZVwiXG4gICAgICAgICAgICBjbGFzcz1cImFmdGVyLXNlbGVjdC1ib3ggdngtcC0xIHZ4LW1yLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtdy0xMDBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWxlY3QtY2hpcCB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0IHZ4LXAtMSB2eC1wbC0yIHZ4LXByLTIgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIGNyb3NzIHZ4LWZzLTE0IHZ4LW1yLTFcIiAoY2xpY2spPVwicmVtb3ZlKClcIj4mI3hlOWFlOzwvaT5cbiAgICAgICAgICAgICAgPHNwYW4gW2FwcFRvb2x0aXBdPVwicmVzcE5hbWVcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57e1xuICAgICAgICAgICAgICAgIHJlc3BOYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGNsYXNzPVwiZWRpdC1idG4gdngtZnMtMTEgdngtZnctNTAwIHZ4LXR4dC1ibHVlIHZ4LXR0LXVwcGVyY2FzZSB2eC1wLTAgdngtcGwtMSB2eC1wci0xIHZ4LW0tMCB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1tci0xXCIgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj4mI3hlOTBjOzwvaT5cbiAgICAgICAgICAgICAgRURJVFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGFwcC1mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdCAqbmdJZj1cIm9wZW5SYWRpb1wiIFtmZWF0dXJlXT1cImZlYXR1cmVcIiBbc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNdPVwiXG4gICAgICAgICAgICAgIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID8gc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgOiB7fVxuICAgICAgICAgICAgXCIgKGJhY2tCdXR0b24pPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAoc2VsZWN0ZWRSZXNwb25zaWJpbGl0eSk9XCJvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKCRldmVudClcIj48L2FwcC1mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtcGlja2VyLWdyb3VwIHZ4LWQtZmxleFwiICpuZ0lmPVwiIW9wZW5SYWRpb1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0aW1lLWZpZWxkXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwidGltZVBpY2tlci5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiaW5wdXRcIiBbcGxhY2Vob2xkZXJdPVwib25Db21wbGV0aW9uT2ZUaW1lIHwgdXBwZXJjYXNlXCIgcmVhZG9ubHkgLz5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbG9jay1pY29uIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMiB2eC1wYXJhZ3JhcGgtdHh0XCI+JiN4ZTk1NTs8L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YXBwLXBvcG92ZXIgI3RpbWVQaWNrZXIgW2RvbnRDbG9zZW9uQ2xpY2tdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPGFwcC10aW1lLXBpY2tlciBbdGltZV09XCJvbkNvbXBsZXRpb25PZlRpbWVcIiAob25UaW1lU2VsZWN0aW9uKT1cIlxuICAgICAgICAgICAgICAgIHRpbWVTZWxlY3Rpb24oJGV2ZW50KTsgdGltZVBpY2tlci5jbG9zZVBvcG92ZXIoJ3RvcCcpXG4gICAgICAgICAgICAgIFwiPjwvYXBwLXRpbWUtcGlja2VyPlxuICAgICAgICAgIDwvYXBwLXBvcG92ZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZSBbaWRdPVwiM1wiIFtwYWdlTmFtZV09XCInb25Db21wbGV0aW9uJ1wiIFttb2RlXT1cIm1vZGVcIiBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXG4gICAgW2NvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mV2luZG93XCIgW25vdENvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mRmFpbGVkXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxuPC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJtb2RlID09PSAncG9saWN5J1wiIGNsYXNzPVwiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2ZcIj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLW1lc3NhZ2VcIj5cbiAgICA8aW5wdXQgdHlwZT1cIm51bWJlclwiIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZJbnB1dFwiIChjaGFuZ2UpPVwiaW5wdXRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIG9ua2V5ZG93bj1cInJldHVybiBldmVudC5rZXlDb2RlICE9PSAxOTBcIiBtaW49XCIwXCIgb25pbnB1dD1cInRoaXMudmFsdWUgPSBNYXRoLmFicyh0aGlzLnZhbHVlKVwiIC8+XG4gICAgPHA+e3sgb25Db21wbGV0aW9uT2ZJbnB1dCA+IDEgPyBcImRheXNcIiA6IFwiZGF5XCIgfX0gYWZ0ZXIgY29tcGxldGlvbiBvZjwvcD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZi1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwicmVzcG9uc2liaWxpdHlcIj5cbiAgICAgIDxjcy1zZWxlY3QgW2NsYXNzLmRpc2FibGVkXT1cInBsYWNlaG9sZGVyID09PSAnTG9hZGluZy4uLidcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlZCk9XCJvblJlc3BvbnNpYmlsaXR5U2VsZWN0aW9uKCRldmVudClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgICAgPGNzLW9wdGlvbiAqbmdGb3I9XCJcbiAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5O1xuICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgIFwiIFt2YWx1ZV09XCJyZXNwb25zaWJpbGl0eVwiIFtvcHRpb25Ub29sdGlwXT1cInJlc3BvbnNpYmlsaXR5Py5SZXBvcnROYW1lXCI+e3sgcmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWVcbiAgICAgICAgICB9fTwvY3Mtb3B0aW9uPlxuICAgICAgPC9jcy1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRpbWVcIj5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHJlYWRvbmx5IGFyaWEtbGFiZWw9XCIxMmhyIGZvcm1hdFwiIFsobmdNb2RlbCldPVwib25Db21wbGV0aW9uT2ZUaW1lXCIgcGxhY2Vob2xkZXI9XCJTZWxlY3QgVGltZVwiIC8+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8YXBwLWZyZXF1ZW5jeS1kdWUtZGF0ZSBbaWRdPVwiM1wiIFtwYWdlTmFtZV09XCInb25Db21wbGV0aW9uJ1wiIFttb2RlXT1cIm1vZGVcIiBbaXNEZWFjdGl2YXRlZF09XCJmYWxzZVwiXG4gICAgW2NvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mV2luZG93XCIgW25vdENvbXBsZXRlZFZhbHVlXT1cIm9uQ29tcGxldGlvbk9mRmFpbGVkXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCI+PC9hcHAtZnJlcXVlbmN5LWR1ZS1kYXRlPlxuPC9kaXY+Il19
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YvZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFPakUsTUFBTSxPQUFPLGdDQUFnQztJQTBCM0MsWUFBb0IsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUF6QjdDLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFeEIsaUJBQVksR0FBVyxZQUFZLENBQUM7UUFDcEMsd0JBQW1CLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLHlCQUFvQixHQUFHLENBQUMsQ0FBQztRQUN6Qix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIsdUJBQWtCLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLGlDQUE0QixHQUFlLEVBQUUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsMkJBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FB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TyxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsZ0NBQWdDO3VHQUtqQyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQWFHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFHSSxnQkFBZ0I7c0JBQXpCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZyZXF1ZW5jeVNlcnZpY2UgfSBmcm9tICcuLi9mcmVxdWVuY3kuc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudC9tb21lbnQnO1xuaW1wb3J0IHsgZWxlbWVudEF0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgREVGQVVMVF9USU1FIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL3RpbWUuY29uc3RhbnRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YuY29tcG9uZW50Lmxlc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRnJlcXVlbmN5T25Db21wbGV0aW9uT2ZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBtb2RlOiBhbnkgPSAnJztcbiAgQElucHV0KCkgZmVhdHVyZTogYW55O1xuICBERUZBVUxUX1RJTUU6IHN0cmluZyA9IERFRkFVTFRfVElNRTtcbiAgb25Db21wbGV0aW9uT2ZJbnB1dCA9IDE7XG4gIG9uQ29tcGxldGlvbk9mV2luZG93ID0gMztcbiAgb25Db21wbGV0aW9uT2ZGYWlsZWQgPSA1O1xuICBvbkNvbXBsZXRpb25PZlRpbWUgPSBERUZBVUxUX1RJTUU7XG4gIG9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHk6IEFycmF5PGFueT4gPSBbXTtcbiAgaXNMaWZlY3ljbGVNb2RpZmllZCA9IGZhbHNlO1xuICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gMDtcbiAgcGxhY2Vob2xkZXIgPSAnTG9hZGluZy4uLic7XG4gIGZyZXF1ZW5jeUluZm86IGFueTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM6IGFueSA9IHt9O1xuXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZSA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICBASW5wdXQoKSBmcmVxdWVuY3lEYXRhOiBhbnk7XG4gIGxpZmVjeWNsZURldGFpbHM6IGFueSA9ICcwMDAwLTAwLTAwfn4wJztcblxuICBAT3V0cHV0KCkgZnJlcXVlbmN5RGV0YWlscyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmFkaW9Gb3JtID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIG9wZW5SYWRpbzogYm9vbGVhbiA9IGZhbHNlO1xuICBmZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mOiBhbnk7XG4gIGJhY2tCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNTZWxlY3RlZERhdGE6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZyZXF1ZW5jeVNlcnZpY2U6IEZyZXF1ZW5jeVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlRmxhZ19vbl9jb21wbGV0aW9uX29mID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfZnJlcXVlbmN5X29uX2NvbXBsZXRpb25fb2YnXG4gICAgKTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8gPSBPYmplY3QuYXNzaWduKHRoaXMuZnJlcXVlbmN5U2VydmljZS5mcmVxdWVuY3lJbmZvKTtcbiAgICB0aGlzLmdldENvbXBsZXRpb25SZXBvcnRzKCk7XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgICB0aGlzLmlzU2VsZWN0ZWREYXRhID0gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgPyBPYmplY3Qua2V5cyh0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzKT8ubGVuZ3RoID4gMFxuICAgICAgOiBmYWxzZTtcbiAgfVxuXG4gIHBvcHVsYXRlRnJlcXVlbmN5KCkge1xuICAgIGNvbnN0IGZyZXF1ZW5jeVNlbGVjdGVkID0gdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4uc3BsaXQoJ34nKTtcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQgPSBwYXJzZUludChmcmVxdWVuY3lTZWxlY3RlZFszXSk7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZkZhaWxlZCA9IHRoaXMuZnJlcXVlbmN5RGF0YS5mYWlsZWQ7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZldpbmRvdyA9IHRoaXMuZnJlcXVlbmN5RGF0YS53aW5kb3c7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSB0aGlzLmZyZXF1ZW5jeURhdGEuZmFpbGVkVGltZTtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzID0gdGhpcy5vbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5LmZpbmQoXG4gICAgICAocmVzOiBhbnkpID0+IHJlcy5SZXBvcnRJZCA9PT0gdGhpcy5mcmVxdWVuY3lEYXRhLnNlbGVjdGVkUmVwb3J0XG4gICAgKTtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICAgIHRoaXMuaXNTZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXG4gICAgICA6IGZhbHNlO1xuICB9XG5cbiAgb25UaW1lQ2hhbmdlZChldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWUgPSBldmVudDtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgb25WYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICB0aGlzLm9uQ29tcGxldGlvbk9mV2luZG93ID0gZXZlbnQudmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQgPSBldmVudC52YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5nZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKTtcbiAgfVxuXG4gIG9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnNvbGUubG9nKGV2ZW50LCBcImV2ZW50XCIpO1xuICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPSBldmVudDtcbiAgICB0aGlzLmdldE9uQ29tcGxldGlvbkZyZXF1ZW5jeSgpO1xuICB9XG5cbiAgZ2V0Q29tcGxldGlvblJlcG9ydHMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5ID0gMDtcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gJ1NlbGVjdCBhIFJlc3BvbnNpYmlsaXR5JztcbiAgICB0aGlzLm9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHkgPSBbXTtcblxuICAgIGlmICh0aGlzLmZyZXF1ZW5jeURhdGE/Lm9uQ29tcGxldGlvblJlcG9ydERldGFpbHMpIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eS5wdXNoKFxuICAgICAgICB0aGlzLmZyZXF1ZW5jeURhdGE/Lm9uQ29tcGxldGlvblJlcG9ydERldGFpbHNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdGhpcy5mcmVxdWVuY3lEYXRhLnBhdHRlcm4gIT0gJycgJiZcbiAgICAgIHBhcnNlSW50KHRoaXMuZnJlcXVlbmN5RGF0YS5wYXR0ZXJuLnNwbGl0KCd+JylbMF0pID09PSA2XG4gICAgKSB7XG4gICAgICB0aGlzLnBvcHVsYXRlRnJlcXVlbmN5KCk7XG4gICAgfVxuICB9XG5cbiAgaW5wdXRWYWx1ZUNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5vbkNvbXBsZXRpb25PZklucHV0ID0gTnVtYmVyKGV2ZW50LnRhcmdldC52YWx1ZSk7XG4gICAgaWYgKHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA8IDEpIHtcbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA9IDE7XG4gICAgfVxuICAgIHRoaXMuZ2V0T25Db21wbGV0aW9uRnJlcXVlbmN5KCk7XG4gIH1cblxuICBnZXRPbkNvbXBsZXRpb25GcmVxdWVuY3koKSB7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnBsYWNlaG9sZGVyID1cbiAgICAgIHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCArXG4gICAgICAnICcgK1xuICAgICAgKHRoaXMub25Db21wbGV0aW9uT2ZJbnB1dCA+IDEgPyAnZGF5cycgOiAnZGF5JykgK1xuICAgICAgJyBhZnRlciBjb21wbGV0aW9uIG9mICcgK1xuICAgICAgKHRoaXMub25Db21wbGV0aW9uT2ZSZXNwb25zaWJpbGl0eSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlXG4gICAgICAgIDogJycpO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5wYXR0ZXJuID1cbiAgICAgIDYgKyAnficgKyAnMCcgKyAnficgKyAnMCcgKyAnficgKyB0aGlzLm9uQ29tcGxldGlvbk9mSW5wdXQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLmNhc2UgPSAnb25fY29tcGxldGUnO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRBZnRlciA9IHRoaXMub25Db21wbGV0aW9uT2ZGYWlsZWQ7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLndpbmRvdyA9IHRoaXMub25Db21wbGV0aW9uT2ZXaW5kb3c7XG4gICAgdGhpcy5mcmVxdWVuY3lJbmZvLnRpbWVJbjEyaHIgPSB0aGlzLm9uQ29tcGxldGlvbk9mVGltZTtcbiAgICB0aGlzLmZyZXF1ZW5jeUluZm8udGltZUluMjRIciA9IHRoaXMuZnJlcXVlbmN5U2VydmljZS50aW1lRnJvbTEyaFRvMjRoKFxuICAgICAgdGhpcy5vbkNvbXBsZXRpb25PZlRpbWVcbiAgICApO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5mYWlsZWRfdGltZV91dGMgPSAwO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5vbkNvbXBsZXRpb24gPSB7XG4gICAgICBkdWVBZnRlcjogdGhpcy5vbkNvbXBsZXRpb25PZklucHV0LFxuICAgICAgcmVzcG9uc2liaWxpdHk6IHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py5pZCxcbiAgICAgIGFzc2lnbmVlOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzWzBdPy5hc3NpZ25lZSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzPy5yZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzWzBdPy5yZXNwb25zaWJpbGl0eUNlbnRlclxuICAgIH1cbiAgICBjb25zb2xlLmxvZyh0aGlzLmZyZXF1ZW5jeUluZm8sIFwiZnJlcXVlbmN5SW5mb1wiKTtcbiAgICB0aGlzLmZyZXF1ZW5jeURldGFpbHMuZW1pdCh0aGlzLmZyZXF1ZW5jeUluZm8pO1xuICB9XG5cbiAgb3BlblJhZGlvUmVzcG9uc2liaWxpdHkoZXZlbnQ6IGFueSkge1xuICAgIGlmIChldmVudCA9PT0gJ2JhY2tUb09uQ29tcGxldGlvbicpIHtcbiAgICAgIHRoaXMuYmFja0J1dHRvbiA9IHRydWU7XG4gICAgICB0aGlzLm9wZW5SYWRpbyA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5SYWRpbyA9IHRydWU7XG4gICAgICB0aGlzLmJhY2tCdXR0b24gPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5yYWRpb0Zvcm0uZW1pdCh0aGlzLm9wZW5SYWRpbyk7XG4gIH1cblxuICByZW1vdmUoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA9IHt9O1xuICAgIHRoaXMuaXNTZWxlY3RlZERhdGEgPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICA/IE9iamVjdC5rZXlzKHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMpPy5sZW5ndGggPiAwXG4gICAgICA6IGZhbHNlO1xuICAgIHRoaXMuZnJlcXVlbmN5SW5mby5yZXBvcnRJZCA9IDA7XG4gICAgdGhpcy5mcmVxdWVuY3lEZXRhaWxzLmVtaXQodGhpcy5mcmVxdWVuY3lJbmZvKTtcbiAgfVxuXG4gIHRpbWVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IHNlbGVjdGVkVmFsdWUgPSBldmVudC5zZWxlY3RlZFZhbHVlO1xuICAgIHRoaXMub25UaW1lQ2hhbmdlZChzZWxlY3RlZFZhbHVlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uXCIgKm5nSWY9XCJtb2RlICE9PSAncG9saWN5JyB8fCBiYWNrQnV0dG9uXCI+XG4gIDxkaXYgY2xhc3M9XCJ2eC1mcy0xMSB2eC1mdy01MDAgdngtbGFiZWwtdHh0IHZ4LXR0LXVwcGVyY2FzZSB2eC1tYi0xXCI+XG4gICAgRFVFIERBVEUgRlJFUVVFTkNZOlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uLWlubmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1jb21wbGV0aW9uLXRvcCB2eC1wLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgPGlucHV0IGNsYXNzPVwiY291bnROdW1cIiB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZklucHV0XCIgKGNoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICBvbmtleWRvd249XCJyZXR1cm4gZXZlbnQua2V5Q29kZSAhPT0gMTkwXCIgbWluPVwiMFwiIG9uaW5wdXQ9XCJ0aGlzLnZhbHVlID0gTWF0aC5hYnModGhpcy52YWx1ZSlcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTEzIHZ4LXBhcmFncmFwaC10eHRcIj5kYXkgYWZ0ZXIgY29tcGxldGlvbiBvZjwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktY29tcGxldGlvbi1ib3R0b20gdngtcC0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTEgdngtZnctNTAwIHZ4LWxhYmVsLXR4dCB2eC10dC11cHBlcmNhc2UgdngtbWItMVwiPlxuICAgICAgICBSRVNQT05TSUJJTElUWVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGFpbmVyPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM/LnJlc3BvbnNpYmlsaXR5Py50aXRsZVwiXG4gICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInNlbGVjdC1ib3ggdngtZnMtMTEgdngtcGFyYWdyYXBoLXR4dCB2eC1wLTIgdngtcGwtMyB2eC1wci0zIHZ4LW1yLTMgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWJldHdlZW4gdngtdy0xMDBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5SYWRpb1Jlc3BvbnNpYmlsaXR5KCRldmVudClcIj5cbiAgICAgICAgICAgIHt7XG4gICAgICAgICAgICBwbGFjZWhvbGRlciA9PT0gXCJMb2FkaW5nLi4uXCJcbiAgICAgICAgICAgID8gXCJMb2FkaW5nLi4uXCJcbiAgICAgICAgICAgIDogXCJTZWxlY3QgYSBSZXNwb25zaWJpbGl0eVwiXG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMFwiPiYjeGU5ZTg7PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8ucmVzcG9uc2liaWxpdHk/LnRpdGxlIGFzIHJlc3BOYW1lXCJcbiAgICAgICAgICAgIGNsYXNzPVwiYWZ0ZXItc2VsZWN0LWJveCB2eC1wLTEgdngtbXItMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlbiB2eC13LTEwMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1jaGlwIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHQgdngtcC0xIHZ4LXBsLTIgdngtcHItMiB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgY3Jvc3MgdngtZnMtMTQgdngtbXItMVwiIChjbGljayk9XCJyZW1vdmUoKVwiPiYjeGU5YWU7PC9pPlxuICAgICAgICAgICAgICA8c3BhbiBbYXBwVG9vbHRpcF09XCJyZXNwTmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPnt7XG4gICAgICAgICAgICAgICAgcmVzcE5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWJ0biB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LWJsdWUgdngtdHQtdXBwZXJjYXNlIHZ4LXAtMCB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LW1yLTFcIiAoY2xpY2spPVwib3BlblJhZGlvUmVzcG9uc2liaWxpdHkoJGV2ZW50KVwiPiYjeGU5MGM7PC9pPlxuICAgICAgICAgICAgICBFRElUXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8YXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0ICpuZ0lmPVwib3BlblJhZGlvXCIgW2ZlYXR1cmVdPVwiZmVhdHVyZVwiIFtzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc109XCJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHMgPyBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyA6IHt9XG4gICAgICAgICAgICBcIiAoYmFja0J1dHRvbik9XCJvcGVuUmFkaW9SZXNwb25zaWJpbGl0eSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWxlY3RlZFJlc3BvbnNpYmlsaXR5KT1cIm9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oJGV2ZW50KVwiPjwvYXBwLWZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGltZS1waWNrZXItZ3JvdXAgdngtZC1mbGV4XCIgKm5nSWY9XCIhb3BlblJhZGlvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRpbWUtZmllbGRcIiBhcHBQb3BvdmVyIChjbGljayk9XCJ0aW1lUGlja2VyLnBvcG92ZXIoKVwiIHBsYWNlbWVudD1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJpbnB1dFwiIFtwbGFjZWhvbGRlcl09XCJvbkNvbXBsZXRpb25PZlRpbWUgfCB1cHBlcmNhc2VcIiByZWFkb25seSAvPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsb2NrLWljb24gdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb25zIHZ4LWZzLTEyIHZ4LXBhcmFncmFwaC10eHRcIj4mI3hlOTU1OzwvaT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxhcHAtcG9wb3ZlciAjdGltZVBpY2tlciBbZG9udENsb3Nlb25DbGlja109XCJ0cnVlXCI+XG4gICAgICAgICAgICA8YXBwLXRpbWUtcGlja2VyIFt0aW1lXT1cIm9uQ29tcGxldGlvbk9mVGltZVwiIChvblRpbWVTZWxlY3Rpb24pPVwiXG4gICAgICAgICAgICAgICAgdGltZVNlbGVjdGlvbigkZXZlbnQpOyB0aW1lUGlja2VyLmNsb3NlUG9wb3ZlcigndG9wJylcbiAgICAgICAgICAgICAgXCI+PC9hcHAtdGltZS1waWNrZXI+XG4gICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlIFtpZF09XCIzXCIgW3BhZ2VOYW1lXT1cIidvbkNvbXBsZXRpb24nXCIgW21vZGVdPVwibW9kZVwiIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcbiAgICBbY29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZXaW5kb3dcIiBbbm90Q29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZGYWlsZWRcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIm1vZGUgPT09ICdwb2xpY3knXCIgY2xhc3M9XCJmcmVxdWVuY3ktb24tY29tcGxldGlvbi1vZlwiPlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LW9uLWNvbXBsZXRpb24tb2YtbWVzc2FnZVwiPlxuICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZklucHV0XCIgKGNoYW5nZSk9XCJpbnB1dFZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgb25rZXlkb3duPVwicmV0dXJuIGV2ZW50LmtleUNvZGUgIT09IDE5MFwiIG1pbj1cIjBcIiBvbmlucHV0PVwidGhpcy52YWx1ZSA9IE1hdGguYWJzKHRoaXMudmFsdWUpXCIgLz5cbiAgICA8cD57eyBvbkNvbXBsZXRpb25PZklucHV0ID4gMSA/IFwiZGF5c1wiIDogXCJkYXlcIiB9fSBhZnRlciBjb21wbGV0aW9uIG9mPC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1vbi1jb21wbGV0aW9uLW9mLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJyZXNwb25zaWJpbGl0eVwiPlxuICAgICAgPGNzLXNlbGVjdCBbY2xhc3MuZGlzYWJsZWRdPVwicGxhY2Vob2xkZXIgPT09ICdMb2FkaW5nLi4uJ1wiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHNcIlxuICAgICAgICAodmFsdWVDaGFuZ2VkKT1cIm9uUmVzcG9uc2liaWxpdHlTZWxlY3Rpb24oJGV2ZW50KVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiPlxuICAgICAgICA8Y3Mtb3B0aW9uICpuZ0Zvcj1cIlxuICAgICAgICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5IG9mIG9uQ29tcGxldGlvbk9mUmVzcG9uc2liaWxpdHk7XG4gICAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgICAgXCIgW3ZhbHVlXT1cInJlc3BvbnNpYmlsaXR5XCIgW29wdGlvblRvb2x0aXBdPVwicmVzcG9uc2liaWxpdHk/LlJlcG9ydE5hbWVcIj57eyByZXNwb25zaWJpbGl0eT8uUmVwb3J0TmFtZVxuICAgICAgICAgIH19PC9jcy1vcHRpb24+XG4gICAgICA8L2NzLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwidGltZVwiPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcmVhZG9ubHkgYXJpYS1sYWJlbD1cIjEyaHIgZm9ybWF0XCIgWyhuZ01vZGVsKV09XCJvbkNvbXBsZXRpb25PZlRpbWVcIiBwbGFjZWhvbGRlcj1cIlNlbGVjdCBUaW1lXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxhcHAtZnJlcXVlbmN5LWR1ZS1kYXRlIFtpZF09XCIzXCIgW3BhZ2VOYW1lXT1cIidvbkNvbXBsZXRpb24nXCIgW21vZGVdPVwibW9kZVwiIFtpc0RlYWN0aXZhdGVkXT1cImZhbHNlXCJcbiAgICBbY29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZXaW5kb3dcIiBbbm90Q29tcGxldGVkVmFsdWVdPVwib25Db21wbGV0aW9uT2ZGYWlsZWRcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIj48L2FwcC1mcmVxdWVuY3ktZHVlLWRhdGU+XG48L2Rpdj4iXX0=
|
|
@@ -230,7 +230,7 @@ export class FrequencyResponsibilityListComponent {
|
|
|
230
230
|
const users = this.mapShortNames(responsibility.users, this.mapShortName);
|
|
231
231
|
const userMap = this.buildMap(users);
|
|
232
232
|
const rcMap = this.buildMap(responsibility.responsibilityCenters);
|
|
233
|
-
return (responsibility.responsibilities || []).map((item) => this.mapResponsibilityItem(item, userMap, rcMap));
|
|
233
|
+
return (responsibility.responsibilities || []).map((item) => this.mapResponsibilityItem(item, userMap, rcMap, users));
|
|
234
234
|
}
|
|
235
235
|
// Helper methods below:
|
|
236
236
|
mapShortNames(users, mapShortName) {
|
|
@@ -256,12 +256,12 @@ export class FrequencyResponsibilityListComponent {
|
|
|
256
256
|
const ids = Array.isArray(assignee.responsibilityCenter) ? assignee.responsibilityCenter : [assignee.responsibilityCenter];
|
|
257
257
|
return ids.map((id) => rcMap.get(id)).filter(Boolean);
|
|
258
258
|
}
|
|
259
|
-
mapResponsibilityItem(item, userMap, rcMap) {
|
|
259
|
+
mapResponsibilityItem(item, userMap, rcMap, users) {
|
|
260
260
|
const assigneeDetails = (item.assigneeDetails || [])
|
|
261
261
|
.filter((ad) => ad.status && ad.status.toLowerCase() === 'active')
|
|
262
262
|
.map((ad) => ({
|
|
263
263
|
...ad,
|
|
264
|
-
assigneeInfo: this.mapAssigneeUsers(ad, item.assignees?.activeUserId || [], userMap),
|
|
264
|
+
assigneeInfo: users ?? this.mapAssigneeUsers(ad, item.assignees?.activeUserId || [], userMap),
|
|
265
265
|
responsibilityCenterInfo: this.mapResponsibilityCenters(ad, item.responsibilityCenters || [], rcMap),
|
|
266
266
|
}));
|
|
267
267
|
return {
|
|
@@ -281,11 +281,11 @@ export class FrequencyResponsibilityListComponent {
|
|
|
281
281
|
this.selectedResponsibilityValues = event;
|
|
282
282
|
}
|
|
283
283
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyResponsibilityListComponent, deps: [{ token: i1.FrequencyService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
284
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: { onCompletionOfResponsibility: "onCompletionOfResponsibility", feature: "feature", selectedResponsibilityDetails: "selectedResponsibilityDetails" }, outputs: { backButton: "backButton", selectedResponsibility: "selectedResponsibility" }, ngImport: i0, template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\"></i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\"></i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <app-pagination *ngIf=\"!responsibilityLoader && responsibilitiesData?.total_pages > 1\"\n [start]=\"responsibilitiesData?.responsibilities_from\" [end]=\"responsibilitiesData?.responsibilities_to\"\n [total]=\"responsibilitiesData?.total_responsibilities\" [pageCount]=\"responsibilitiesData?.total_pages\"\n [currentPage]=\"responsibilityCurrentPage\" (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\"\n [class.with-rc]=\"isOnCompletionRc\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\"\n *ngIf=\"isOnCompletionRc\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <div class=\"table-row\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1\n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1\n }}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityId?.includes(\n responsibility?.ReportId\n )\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{ responsibility?.ControlId }} {{ responsibility?.title }}\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails[0]?.responsibilityCenterInfo as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container *ngIf=\"assigneeDetails?.length > 1; else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\"></i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> </i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:15rem;min-width:15rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:2rem;min-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i5.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i6.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i7.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i9.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i10.PaginationComponentUI, selector: "app-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i11.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i12.SubResponsibilityComponent, selector: "lib-sub-responsibility", inputs: ["responsibility", "srNo"], outputs: ["onCompletionChange"] }] }); }
|
|
284
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: FrequencyResponsibilityListComponent, selector: "app-frequency-responsibility-list", inputs: { onCompletionOfResponsibility: "onCompletionOfResponsibility", feature: "feature", selectedResponsibilityDetails: "selectedResponsibilityDetails" }, outputs: { backButton: "backButton", selectedResponsibility: "selectedResponsibility" }, ngImport: i0, template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\"></i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\"></i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <app-pagination *ngIf=\"!responsibilityLoader && responsibilitiesData?.total_pages > 1\"\n [start]=\"responsibilitiesData?.responsibilities_from\" [end]=\"responsibilitiesData?.responsibilities_to\"\n [total]=\"responsibilitiesData?.total_responsibilities\" [pageCount]=\"responsibilitiesData?.total_pages\"\n [currentPage]=\"responsibilityCurrentPage\" (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\"\n [class.with-rc]=\"isOnCompletionRc\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\"\n *ngIf=\"isOnCompletionRc\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <div class=\"table-row\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1\n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1\n }}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityId?.includes(\n responsibility?.ReportId\n )\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{ responsibility?.ControlId }} {{ responsibility?.title }}\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails[0]?.responsibilityCenterInfo as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container *ngIf=\"assigneeDetails?.length > 1; else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\"></i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> </i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:15rem;min-width:15rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:2rem;min-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"], dependencies: [{ kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.CsRadioComponent, selector: "app-cs-radio", inputs: ["disabled", "readonly", "name", "checked", "value", "oneLine"], outputs: ["checkedEvent"] }, { kind: "directive", type: i5.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i6.PopoverComponent, selector: "app-popover", inputs: ["dontCloseonClick"], outputs: ["closePopoverEvent"] }, { kind: "directive", type: i7.PopoverDirective, selector: "[appPopover]", inputs: ["refrence", "placement"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i8.NoDataComponent, selector: "app-no-data", inputs: ["action", "noDataImage", "noDataText", "noDataButton", "noDataSecButton", "altText", "smallButton", "button"], outputs: ["buttonAction"] }, { kind: "component", type: i9.LoaderInlineComponent, selector: "app-loader-inline" }, { kind: "component", type: i10.PaginationComponentUI, selector: "app-pagination", inputs: ["activeAlphabet", "pageCount", "start", "end", "total", "currentPage"], outputs: ["selectedPage", "selectedAlphabet"] }, { kind: "component", type: i11.FloatingBarComponent, selector: "app-floating-bar", inputs: ["selectedData", "selectedGroups", "displayElementKey", "elementId", "singularText", "pluralText", "showNextButton", "showFrequencyText", "showWorkflow", "workflowText", "currentFrequency", "isDisabled", "workflowList", "selectedWorkflow", "workflowPlaceHolder", "mode", "defaultSelected", "groupsEnabled", "isResponsibility", "nonRemovableUsersList", "removePosition"], outputs: ["closeEvent", "deleteEvent", "closeList", "deleteGroupEvent", "workflowTypeChanged"] }, { kind: "component", type: i12.SubResponsibilityComponent, selector: "lib-sub-responsibility", inputs: ["responsibility", "srNo"], outputs: ["onCompletionChange"] }] }); }
|
|
285
285
|
}
|
|
286
286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: FrequencyResponsibilityListComponent, decorators: [{
|
|
287
287
|
type: Component,
|
|
288
|
-
args: [{ selector: 'app-frequency-responsibility-list', template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\"></i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\"></i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <app-pagination *ngIf=\"!responsibilityLoader && responsibilitiesData?.total_pages > 1\"\n [start]=\"responsibilitiesData?.responsibilities_from\" [end]=\"responsibilitiesData?.responsibilities_to\"\n [total]=\"responsibilitiesData?.total_responsibilities\" [pageCount]=\"responsibilitiesData?.total_pages\"\n [currentPage]=\"responsibilityCurrentPage\" (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\"\n [class.with-rc]=\"isOnCompletionRc\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\"\n *ngIf=\"isOnCompletionRc\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <div class=\"table-row\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1\n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1\n }}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityId?.includes(\n responsibility?.ReportId\n )\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{ responsibility?.ControlId }} {{ responsibility?.title }}\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails[0]?.responsibilityCenterInfo as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container *ngIf=\"assigneeDetails?.length > 1; else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\"></i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> </i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:15rem;min-width:15rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:2rem;min-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"] }]
|
|
288
|
+
args: [{ selector: 'app-frequency-responsibility-list', template: "<div class=\"frequency-responsibility-list\" [class.animate]=\"animation\">\n <div class=\"frequency-responsibility-list-head vx-p-3 vx-d-flex vx-align-center vx-justify-between\">\n <div class=\"vx-d-flex vx-align-center\">\n <i class=\"icons arrow vx-fs-16 vx-label-txt vx-mr-1\" (click)=\"back()\"></i>\n <div class=\"vx-fs-14 vx-fw-500 vx-label-txt\">Select a Responsibility</div>\n </div>\n </div>\n <div class=\"frequency-responsibility-list-body\">\n <!-- <app-loader-inline *ngIf=\"othersCount === 0\"></app-loader-inline> -->\n\n <div class=\"frequency-responsibility-list-search vx-mb-2\">\n <i class=\"icons vx-fs-12\"></i>\n <input type=\"text\" [(ngModel)]=\"responsibilitySearchText\" (keyup.enter)=\"search()\"\n placeholder=\"Search Responsibilities\" />\n </div>\n <app-pagination *ngIf=\"!responsibilityLoader && responsibilitiesData?.total_pages > 1\"\n [start]=\"responsibilitiesData?.responsibilities_from\" [end]=\"responsibilitiesData?.responsibilities_to\"\n [total]=\"responsibilitiesData?.total_responsibilities\" [pageCount]=\"responsibilitiesData?.total_pages\"\n [currentPage]=\"responsibilityCurrentPage\" (selectedPage)=\"responsibilityPageChange($event)\">\n </app-pagination>\n <app-loader-inline *ngIf=\"responsibilityLoader\"></app-loader-inline>\n <div class=\"frequency-responsibility-list-mid vx-mb-4\" [class.with-pagination]=\"\n !responsibilityLoader && responsibilitiesData?.total_pages > 1\n \">\n <app-no-data *ngIf=\"\n responsibilitiesData?.responsibilities?.length === 0 &&\n !responsibilityLoader\n \" [noDataImage]=\"ASSETS.search_data\" [noDataText]=\"'No Data to Display'\"></app-no-data>\n <ng-container *ngIf=\"\n responsibilitiesData?.responsibilities?.length > 0 &&\n !responsibilityLoader\n \">\n <div class=\"table-header\">\n <div class=\"table-row\">\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n #\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility\"\n [class.with-rc]=\"isOnCompletionRc\">\n RESPONSIBILITIES\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\"\n *ngIf=\"isOnCompletionRc\">\n RESPONSIBILITY CENTER\n </div>\n <div\n class=\"table-column vx-fs-11 vx-fw-500 vx-lh-5 vx-tt-uppercase vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\">\n </div>\n </div>\n </div>\n <div class=\"table-body\">\n <!-- when click on radio then active class should be true -->\n <ng-container *ngFor=\"\n let responsibility of responsibilitiesData?.responsibilities;\n let i = index\n \">\n <div class=\"table-row\" [class.active]=\"\n selectedResponsibilityValues?.responsibility?.id === responsibility?.id\n \" [class.with-sub-responsibility]=\"openedResponsibility.includes(responsibility?.id)\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails as assigneeDetails\">\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center serial\">\n <div class=\"sr-no\" [appTooltip]=\"\n responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1\n \" placement=\"bottom\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n responsibilitiesData?.page * responsibilitiesData?.limit -\n responsibilitiesData?.limit +\n i +\n 1\n }}\n </div>\n <app-cs-radio *ngIf=\"assigneeDetails?.length === 1\" [name]=\"'onCompletion'\" [checked]=\"\n selectedResponsibilityId?.includes(\n responsibility?.ReportId\n )\n \"\n (checkedEvent)=\"onCompletionChange({eachAssignee: assigneeDetails[0], responsibility})\"></app-cs-radio>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility with-rc\">\n\n <div class=\"value vx-fs-12 vx-label-txt vx-pr-5\" [appTooltip]=\"responsibility?.title\"\n placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{ responsibility?.ControlId }} {{ responsibility?.title }}\n </div>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center responsibility-center\">\n <ng-container *ngIf=\"responsibility?.assigneeDetails[0]?.responsibilityCenterInfo as rc\">\n <div class=\"program-inner vx-d-block\">\n <div class=\"program-value vx-fs-11 vx-label-txt vx-pr-5\" [appTooltip]=\"\n rc?.length\n ? rc[0]?.name\n : '--'\n \" placement=\"bottom-left\" delay=\"0\" type=\"black\" [tooltipMandatory]=\"true\">\n {{\n rc?.length\n ? rc[0]?.name\n : \"--\"\n }}\n </div>\n <ng-container *ngIf=\"\n rc?.length \n \">\n </ng-container>\n </div>\n <button *ngIf=\"rc?.length > 1\" appPopover (click)=\"rcPopup.popover()\" placement=\"right\"\n class=\"program-count vx-fs-11 vx-fw-500 vx-txt-white vx-p-0 vx-pl-1 vx-pr-1 vx-m-0 vx-d-flex vx-align-center vx-justify-center\">\n +{{ rc?.length - 1 }}\n </button>\n <app-popover #rcPopup>\n <div class=\"wf-action-list\">\n <ul class=\"action-item\">\n <li *ngFor=\"\n let data of rc?.slice(\n 1,\n rc?.length\n )\n \">\n <div class=\"avatar-card\">\n <div class=\"vx-d-block vx-w-100\">\n <span class=\"value\" [appTooltip]=\"data?.name\" placement=\"bottom-left\" delay=\"0\"\n type=\"black\" [tooltipMandatory]=\"true\">{{ data?.name }}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n </app-popover>\n </ng-container>\n </div>\n\n <div class=\"table-column vx-pl-1 vx-pr-1 vx-d-flex vx-align-center action\"\n (click)=\"onToggleResponsibility(responsibility)\">\n <ng-container *ngIf=\"assigneeDetails?.length > 1; else closeIcon\">\n <i *ngIf=\"\n openedResponsibility.includes(responsibility.id);\n else closeIcon\n \" class=\"icons vx-fs-10\"></i>\n <ng-template #closeIcon>\n <i class=\"icons vx-fs-10\"> </i>\n </ng-template>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <lib-sub-responsibility *ngIf=\"openedResponsibility.includes(responsibility.id)\"\n [responsibility]=\"responsibility\"\n (onCompletionChange)=\"onCompletionChange($event)\"></lib-sub-responsibility>\n </ng-container>\n </div>\n </ng-container>\n </div>\n <app-floating-bar [selectedData]=\"[selectedResponsibilityValues?.responsibility]\" [displayElementKey]=\"'title'\"\n (closeList)=\"back()\" (closeEvent)=\"save($event)\" (deleteEvent)=\"deleteItem($event)\"\n [isDisabled]=\"!selectedResponsibilityValues?.responsibility?.id\"></app-floating-bar>\n </div>\n</div>", styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/mixin/mixin.css\";@import\"https://cdn.v-comply.com/design-system/css/header/header.css\";@import\"https://cdn.v-comply.com/design-system/css/display/display.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-right.css\";@import\"https://cdn.v-comply.com/design-system/css/alignment/alignment.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/button/button.css\";@import\"https://cdn.v-comply.com/design-system/css/color/color.css\";@import\"https://cdn.v-comply.com/design-system/css/popover/popover.css\";@import\"https://cdn.v-comply.com/design-system/css/width/width.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-top.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-bottom.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-left.css\";@import\"https://cdn.v-comply.com/design-system/css/padding/padding-right.css\";@import\"https://cdn.v-comply.com/design-system/css/table-card/table-card.css\";::ng-deep .frequency-responsibility-list{border-top:3px solid #1e5dd3;position:fixed;top:0;right:32.5rem;bottom:0;left:0}::ng-deep .frequency-responsibility-list.animate{animation:animate-right .2s cubic-bezier(.25,.46,.45,.94) both}::ng-deep .frequency-responsibility-list-head{background:#fbfbfb;border-bottom:1px solid #f1f1f1;height:2.75rem}::ng-deep .frequency-responsibility-list-head .arrow{cursor:pointer}::ng-deep .frequency-responsibility-list-body{background:#fff;height:calc(100% - 2.75rem);padding:1.5rem .75rem 1.5rem 2rem}::ng-deep .frequency-responsibility-list-body app-pagination .wk-pagination-sec-ds{border-radius:0;padding:0 0 .5rem}::ng-deep .frequency-responsibility-list-body app-floating-bar .floating-bar{padding:0;position:relative;left:-1rem;width:calc(100% + 2rem)}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar{padding-left:0!important;padding-right:0!important}::ng-deep .frequency-responsibility-list-body app-floating-bar .userGroup-floating-bar .userGroup-floating-bar-container .left .chip span{max-width:240px}::ng-deep .frequency-responsibility-list-search{position:relative}::ng-deep .frequency-responsibility-list-search input{height:2.75rem;line-height:1.5rem;padding:.75rem .75rem .75rem 2.5rem;outline:none;border:1px solid #7475763F;border-radius:.25rem;width:100%;font-size:14px;color:#747576}::ng-deep .frequency-responsibility-list-search input::placeholder{color:#747576;opacity:1}::ng-deep .frequency-responsibility-list-search i{position:absolute;left:1rem;top:1rem;pointer-events:none;color:#f1f1f1}::ng-deep .frequency-responsibility-list-mid{height:calc(100% - 8rem);overflow:auto}::ng-deep .frequency-responsibility-list-mid::-webkit-scrollbar-track{background-color:#fff}::ng-deep .frequency-responsibility-list-mid.with-pagination{height:calc(100% - 10rem)}::ng-deep .frequency-responsibility-list-mid .table-header{background:#fff;position:sticky;top:0;z-index:1}::ng-deep .frequency-responsibility-list-mid .table-header .table-column{color:#161b2f!important;line-height:.75rem!important;min-height:1.875rem!important}::ng-deep .frequency-responsibility-list-mid .table-body{position:relative}::ng-deep .frequency-responsibility-list-mid .table-body .table-row{background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;margin-bottom:.25rem}::ng-deep .frequency-responsibility-list-mid .table-body .table-row:hover .table-column.serial .sr-no,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.active .table-column.serial .sr-no{opacity:0}::ng-deep .frequency-responsibility-list-mid .table-body .table-row:hover .table-column.serial app-cs-radio,::ng-deep .frequency-responsibility-list-mid .table-body .table-row.active .table-column.serial app-cs-radio{opacity:1}::ng-deep .frequency-responsibility-list-mid .table-body .table-row lib-sub-responsibility{position:relative;top:2.5rem;left:0;width:100%;z-index:1;background:#fff;border-radius:.25rem;border:1px solid #f1f1f1;padding:.5rem}::ng-deep .frequency-responsibility-list-mid .table-row{display:flex;justify-content:space-between;position:relative}::ng-deep .frequency-responsibility-list-mid .table-row .table-column{color:#747576;min-height:2.5rem;position:relative;width:100%}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial{width:2rem;max-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial .sr-no{width:1rem;background:#f8f8f8;writing-mode:vertical-lr;color:#747576;font-size:.625rem;font-weight:500;display:flex;height:2.5rem;align-items:center;justify-content:center;position:relative;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio{position:absolute;top:.75rem;left:.5rem;width:1rem;height:1rem;opacity:0;transition:all .2s ease-in-out}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.serial app-cs-radio .radio-item{position:absolute}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility{width:calc(100% - 19rem);min-width:calc(100% - 19rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility .value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center{width:15rem;min-width:15rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-inner{max-width:calc(100% - 2rem)}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center .program-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.responsibility-center button.program-count{background:#1e5dd3;border-radius:.125rem;border:none;min-width:1.5rem;height:1.25rem}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action{width:2rem;min-width:2rem;justify-content:center}::ng-deep .frequency-responsibility-list-mid .table-row .table-column.action.active{cursor:pointer}::ng-deep .frequency-responsibility-list-mid .table-row.with-sub-responsibility{background:#f9f9fa;margin-bottom:0}@keyframes animate-right{0%{transform:translate(5px);opacity:0}to{transform:translate(0);opacity:1}}.wf-action-list{width:220px}.wf-action-list ul{padding:0;margin:0;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#fff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;max-height:220px;overflow:auto}.wf-action-list ul.action-item{display:block}.wf-action-list ul.action-item li{list-style:none;border:none;border-bottom:1px solid #f1f1f1;display:block;width:100%;padding:0;background:transparent;border-radius:0;margin:0;height:auto;justify-content:flex-start;box-shadow:none}.wf-action-list ul.action-item li .avatar-card{display:flex;align-items:center;width:100%;padding:7.5px}.wf-action-list ul.action-item li .avatar-card.within-con{display:block}.wf-action-list ul.action-item li .avatar-card .avatar{height:24px;width:24px!important;overflow:hidden;background:#1e5dd3;color:#fff;font-size:10px;display:inline-flex;margin-right:5px;border-radius:50%;align-items:center;justify-content:center;text-transform:uppercase}.wf-action-list ul.action-item li .avatar-card .avatar img{width:100%}.wf-action-list ul.action-item li .avatar-card .avatar+span.value{width:calc(100% - 29px)}.wf-action-list ul.action-item li .avatar-card span.value{width:100%;color:#6e717e;text-decoration:none;background:transparent;font-size:12px;text-transform:capitalize;display:block;font-weight:400;text-align-last:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}.wf-action-list ul.action-item li .avatar-card span.value i{font-size:8px;color:#747576;cursor:pointer;margin-right:5px}.wf-action-list ul.action-item li .avatar-card.no-image{display:block}.wf-action-list ul.action-item li .avatar-card.no-image span.value{width:100%;display:block}.wf-action-list ul.action-item li:first-child{animation:action-list-open .25s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(2){animation:action-list-open .35s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(3){animation:action-list-open .45s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(4){animation:action-list-open .55s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(5){animation:action-list-open .65s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(6){animation:action-list-open .75s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(7){animation:action-list-open .85s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(8){animation:action-list-open .95s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(9){animation:action-list-open 1.05s cubic-bezier(.25,.46,.45,.94) both}.wf-action-list ul.action-item li:nth-child(10){animation:action-list-open 1.15s cubic-bezier(.25,.46,.45,.94) both}@keyframes action-list-open{0%{transform:translateY(50px)}to{transform:translateY(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"] }]
|
|
289
289
|
}], ctorParameters: function () { return [{ type: i1.FrequencyService }]; }, propDecorators: { onCompletionOfResponsibility: [{
|
|
290
290
|
type: Input
|
|
291
291
|
}], feature: [{
|
|
@@ -297,4 +297,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
297
297
|
}], selectedResponsibility: [{
|
|
298
298
|
type: Output
|
|
299
299
|
}] } });
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBTzdELE1BQU0sT0FBTyxvQ0FBb0M7SUE4RC9DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBM0Q3QyxrQ0FBNkIsR0FBUSxFQUFFLENBQUM7UUFDakQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ04sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCx5QkFBb0IsR0FBUSxFQUFFLENBQUM7UUFDL0IseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLDZCQUF3QixHQUFRLEVBQUUsQ0FBQztRQUVuQyxlQUFVLEdBQUcsQ0FBQyxDQUFD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QUM7SUFDSixDQUFDO0lBRUgsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFHLFNBQVMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUU7UUFDRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFBO0lBQzNDLENBQUM7K0dBelRVLG9DQUFvQzttR0FBcEMsb0NBQW9DLGdVQ1RqRCx5alJBbUtNOzs0RkQxSk8sb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNFLG1DQUFtQzt1R0FLcEMsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lSZXNwb25zaWJpbGl0eUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OiBhbnk7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQElucHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM6IGFueSA9IFtdO1xuICBhbmltYXRpb24gPSBmYWxzZTtcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBAT3V0cHV0KCkgYmFja0J1dHRvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVzcG9uc2liaWxpdHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHJlc3BvbnNpYmlsaXRpZXNEYXRhOiBhbnkgPSB7fTtcbiAgcmVzcG9uc2liaWxpdHlMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUlkOiBhbnkgPSBbXTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlczogYW55O1xuICBjdXJyZW50VGFiID0gMTtcbiAgcmVzcG9uc2liaWxpdHlUYWJzOiBhbnkgPSBbXG4gICAgeyBuYW1lOiAnUkVHVUxBVElPTlMnLCB0eXBlOiAxIH0sXG4gICAgeyBuYW1lOiAnU1RBTkRBUkRTJywgdHlwZTogMiB9LFxuICAgIHsgbmFtZTogJ0lOVEVSTkFMIENPTlRST0xTJywgdHlwZTogMyB9LFxuICAgIHsgbmFtZTogJ09USEVSUycsIHR5cGU6IDAgfSxcbiAgXTtcbiAgcmVzcG9uc2liaWxpdHlUYWJDb3VudCA9IHtcbiAgICByZWd1bGF0aW9uQ291bnQ6IDAsXG4gICAgc3RhbmRhcmRDb3VudDogMCxcbiAgICBpbnRlcm5hbENvdW50OiAwLFxuICAgIG90aGVyc0NvdW50OiAwLFxuICB9O1xuICByZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xuICByZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICBpc1ZhbGlkT2JqID0gZmFsc2U7XG5cbiAgcmVzcG9uc2liaWxpdHlQYXlsb2FkID0ge1xuICAgIHR5cGU6ICdhY3RpdmUnLFxuICAgIHBhZ2luYXRpb25UeXBlOiAnbGFyZ2UnLFxuICAgIGE6ICcnLFxuICAgIHNlYXJjaFRleHQ6ICcnLFxuICAgIGZpbHRlckRhdGE6IHtcbiAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgcmlza0lkczogW10sXG4gICAgICByZXZpZXdlcklkOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBbXSxcbiAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgIGVudHJ1c3RlZFRvOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgY29tcGxpYW5jZVR5cGU6IFsxXSxcbiAgICB9LFxuICAgIHBhZ2VObzogMSxcbiAgICBzb3J0T2JqOiB7XG4gICAgICBzb3J0Qnk6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgfSxcbiAgICBwYWdlTmFtZTogJ292ZXJ2aWV3JyxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdHlMaXN0OiBhbnk7XG4gIHJlZ3VsYXRpb25Db3VudDogYW55ID0gMDtcbiAgc3RhbmRhcmRzQ291bnQ6IGFueSA9IDA7XG4gIGludGVybmFsc0NvdW50OiBhbnkgPSAwO1xuICBvdGhlcnNDb3VudDogYW55ID0gMDtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBpc09uQ29tcGxldGlvblJjOiBib29sZWFuID0gZmFsc2U7XG4gIGNsb3NlOiBhbnk7XG4gIG9wZW5lZFJlc3BvbnNpYmlsaXR5OiBhbnlbXSA9IFtdO1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZlYXR1cmVGbGFnSW5pdGlhbGl6YXRpb24oKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscykge1xuICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWRbMF0gPSBPYmplY3Qua2V5cyhcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgKT8ubGVuZ3RoXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8uUmVwb3J0SWRcbiAgICAgICAgOiBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9IE9iamVjdC5rZXlzKFxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICApPy5sZW5ndGhcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICAgIDoge307XG4gICAgICB0aGlzLmlzVmFsaWRPYmogPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICAgID8gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyk/Lmxlbmd0aCA+IDBcbiAgICAgICAgOiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gICAgLy90aGlzLnNldFJlc3BvbnNpYmlsaXRpZXNDb3VudCgpO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLmJhY2tCdXR0b24uZW1pdCgnYmFja1RvT25Db21wbGV0aW9uJyk7XG4gIH1cblxuICBmaWx0ZXJCeVJlc3BvbnNpYmlsaXR5VHlwZSh0eXBlOiBudW1iZXIpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5maWx0ZXJEYXRhLmNvbXBsaWFuY2VUeXBlID0gW107XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuZmlsdGVyRGF0YS5jb21wbGlhbmNlVHlwZS5wdXNoKHR5cGUpO1xuICAgIHRoaXMuZnJlcXVlbmN5U2VydmljZVxuICAgICAgPy5nZXRSZXNwb25zaWJpbGl0eUxpc3QodGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdCA9IHJlc1swXTtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2liaWxpdHlMaXN0KSB7XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIHRoaXMub3RoZXJzQ291bnQgPVxuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMaXN0Wyd0b3RhbF9yZXNwb25zaWJpbGl0aWVzJ107XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICB0aGlzLnJlZ3VsYXRpb25Db3VudCA9XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxpc3RbJ3RvdGFsX3Jlc3BvbnNpYmlsaXRpZXMnXTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHRoaXMuc3RhbmRhcmRzQ291bnQgPVxuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMaXN0Wyd0b3RhbF9yZXNwb25zaWJpbGl0aWVzJ107XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICB0aGlzLmludGVybmFsc0NvdW50ID1cbiAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdFsndG90YWxfcmVzcG9uc2liaWxpdGllcyddO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBnZXRSZXNwb25zaWJpbGl0eUxpc3QoKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IHRydWU7XG4gICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlXG4gICAgICA/LmdldFJlc3BvbnNpYmlsaXR5TGlzdCh0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGEgPSByZXM/LmRhdGE7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGFbJ3Jlc3BvbnNpYmlsaXRpZXMnXSA9IHRoaXMubWFwUmVzcG9uc2liaWxpdHlEYXRhKCB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhKVxuXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGEsIFwicmVzcG9uc2VcIilcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IGZhbHNlO1xuICAgICAgfSwgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IGZhbHNlO1xuICAgICAgICBjb25zb2xlLmxvZyh7IGVycm9yIH0sIFwiRXJyb3IgaW4gZ2V0dGluZyByZXNwb25zaWJpbGl0eSBsaXN0XCIpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXNwb25zaWJpbGl0eVBhZ2VDaGFuZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gcGFnZU51bWJlcjtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5wYWdlTm8gPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuc2VhcmNoVGV4dCA9IHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0O1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gIH1cblxuXG4gIGRlbGV0ZUl0ZW0oaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzID0ge307XG4gICAgdGhpcy5pc1ZhbGlkT2JqID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQgPSBbXTtcbiAgfVxuICBzYXZlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmJhY2tCdXR0b24uZW1pdCgnYmFja1RvT25Db21wbGV0aW9uJyk7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5LmVtaXQodGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzKTtcbiAgfVxuXG4gIG9uQ2xpY2tUYWJDaGFuZ2UodGFiOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRUYWIgPSB0YWI/LnR5cGU7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuZmlsdGVyRGF0YS5jb21wbGlhbmNlVHlwZSA9IFt0aGlzLmN1cnJlbnRUYWJdO1xuICAgIC8vIHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0ID0gJyc7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5wYWdlTm8gPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuc2VhcmNoVGV4dCA9IHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0O1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gIH1cblxuICBzZWFyY2goKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuc2VhcmNoVGV4dCA9IHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0O1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gICAgdGhpcy5zZXRSZXNwb25zaWJpbGl0aWVzQ291bnQoKTtcbiAgfVxuXG4gIHNldFJlc3BvbnNpYmlsaXRpZXNDb3VudCgpIHtcbiAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZCkpO1xuICAgIHBheWxvYWQuZmlsdGVyRGF0YS5jb21wbGlhbmNlVHlwZSA9IFswLCAxLCAyLCAzXTtcbiAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2VcbiAgICAgID8uZ2V0UmVzcG9uc2liaWxpdGllc0NvdW50KHBheWxvYWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5VGFiQ291bnQucmVndWxhdGlvbkNvdW50ID0gcmVzPy5yZWd1bGF0aW9uX2NvdW50O1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5VGFiQ291bnQuc3RhbmRhcmRDb3VudCA9IHJlcz8uc3RhbmRhcmRfY291bnQ7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlUYWJDb3VudC5pbnRlcm5hbENvdW50ID0gcmVzPy5pbnRlcm5hbF9jb3VudDtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eVRhYkNvdW50Lm90aGVyc0NvdW50ID0gcmVzPy5vdGhlcnNfY291bnQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBpbml0aWFsaXplIGFsbCB0aGUgRmVhdHVyZSBmbGFnIGJhc2VkIHZhcmlhYmxlc1xuICBmZWF0dXJlRmxhZ0luaXRpYWxpemF0aW9uKCkge1xuICAgIHRoaXMuZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZiA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX2ZyZXF1ZW5jeV9vbl9jb21wbGV0aW9uX29mJ1xuICAgICk7XG4gICAgdGhpcy5pc09uQ29tcGxldGlvblJjID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfb25fY29tcGxldGlvbl9yYydcbiAgICApO1xuICB9XG5cbiAgXG4gIG9uVG9nZ2xlUmVzcG9uc2liaWxpdHkocmVzcG9uc2liaWxpdHk6IGFueSkge1xuICAgIGlmKHRoaXMub3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuaWQpKSB7XG4gICAgICB0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5ID0gdGhpcy5vcGVuZWRSZXNwb25zaWJpbGl0eS5maWx0ZXIoKGlkOiBhbnkpID0+IGlkICE9PSByZXNwb25zaWJpbGl0eS5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbmVkUmVzcG9uc2liaWxpdHkucHVzaChyZXNwb25zaWJpbGl0eS5pZCk7XG4gICAgfVxuICB9XG5cbiAgLy8gbWFwUmVzcG9uc2liaWxpdHlEYXRhKHJlc3BvbnNpYmlsaXR5OiBhbnkpIHtcbiAgLy8gICBjb25zdCBtYXBwZWREYXRhOiBhbnlbXSA9IFtdO1xuICAvLyAgIHJlc3BvbnNpYmlsaXR5LnVzZXJzID0gcmVzcG9uc2liaWxpdHk/LnVzZXJzPy5tYXAoKHVzZXI6IGFueSkgPT4ge1xuICAvLyAgICAgdXNlci5zaG9ydE5hbWUgPSB0aGlzLm1hcFNob3J0TmFtZSh1c2VyPy5uYW1lKTtcbiAgLy8gICAgIHJldHVybiB1c2VyXG4gIC8vICAgfSkgfHwgW107XG4gIC8vICAgcmVzcG9uc2liaWxpdHk/LnJlc3BvbnNpYmlsaXRpZXM/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAvLyAgICAgaXRlbS5hc3NpZ25lZURldGFpbHMgPSBpdGVtPy5hc3NpZ25lZURldGFpbHM/LmZpbHRlcigoZWFjaEFzc2lnbmVlOiBhbnkpID0+IGVhY2hBc3NpZ25lZT8uc3RhdHVzPy50b0xvd2VyQ2FzZSgpID09PSAnYWN0aXZlJyk7XG4gIC8vICAgICBjb25zdCBhc3NpZ25lZURldGFpbHMgPSBpdGVtPy5hc3NpZ25lZURldGFpbHM/Lm1hcCgoZWFjaEFzc2lnbmVlOiBhbnkpID0+IHtcbiAgLy8gICAgICAgaWYoIWVhY2hBc3NpZ25lZT8uYXNzaWduZWUpIHtcbiAgLy8gICAgICAgICBlYWNoQXNzaWduZWUuYXNzaWduZWUgPSByZXNwb25zaWJpbGl0eT8udXNlcnMuZmlsdGVyKCh1c2VyOiBhbnkpID0+IGl0ZW0/LmFzc2lnbmVlcy5hY3RpdmVVc2VySWQ/LmluY2x1ZGVzKHVzZXI/LmlkKSk7XG4gIC8vICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgZWFjaEFzc2lnbmVlLmFzc2lnbmVlID0gW3Jlc3BvbnNpYmlsaXR5Py51c2Vycy5maW5kKCh1c2VyOiBhbnkpID0+IGVhY2hBc3NpZ25lZT8uYXNzaWduZWUgPT09IHVzZXI/LmlkKV07XG5cbiAgLy8gICAgICAgfVxuICAvLyAgICAgICBpZighZWFjaEFzc2lnbmVlPy5yZXNwb25zaWJpbGl0eUNlbnRlcikge1xuICAvLyAgICAgICAgIGVhY2hBc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlciA9IHJlc3BvbnNpYmlsaXR5Py5yZXNwb25zaWJpbGl0eUNlbnRlcnMuZmlsdGVyKChyYzogYW55KSA9PiBpdGVtPy5yZXNwb25zaWJpbGl0eUNlbnRlcnM/LmluY2x1ZGVzKHJjPy5pZCkpO1xuICAvLyAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgIGVhY2hBc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlciA9IFtyZXNwb25zaWJpbGl0eT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzLmZpbmQoKHJjOiBhbnkpID0+IGVhY2hBc3NpZ25lZT8ucmVzcG9uc2liaWxpdHlDZW50ZXIgPT09IHJjPy5pZCldO1xuXG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgcmV0dXJuIGVhY2hBc3NpZ25lZTtcbiAgLy8gICAgIH0pO1xuXG4gIC8vICAgICBjb25zdCBkYXRhID0ge1xuICAvLyAgICAgICB0aXRsZTogaXRlbT8udGl0bGUsXG4gIC8vICAgICAgIGFzc2lnbmVlRGV0YWlsczogYXNzaWduZWVEZXRhaWxzLFxuICAvLyAgICAgICBpZDogaXRlbT8uaWQsXG4gIC8vICAgICB9XG4gIC8vICAgICBtYXBwZWREYXRhLnB1c2goZGF0YSApO1xuICAvLyAgIH0pXG5cblxuICAvLyAgIHJldHVybiBtYXBwZWREYXRhO1xuICAvLyB9XG5cbiAgICAvLyBNYWluIG1ldGhvZCBleHBvc2VkIG91dHNpZGVcbiAgICBwdWJsaWMgbWFwUmVzcG9uc2liaWxpdHlEYXRhKHJlc3BvbnNpYmlsaXR5OiBhbnkpOiBhbnlbXSB7XG4gICAgICBpZiAoIXJlc3BvbnNpYmlsaXR5KSByZXR1cm4gW107XG4gIFxuICAgICAgY29uc3QgdXNlcnMgPSB0aGlzLm1hcFNob3J0TmFtZXMocmVzcG9uc2liaWxpdHkudXNlcnMsIHRoaXMubWFwU2hvcnROYW1lKTtcbiAgICAgIGNvbnN0IHVzZXJNYXAgPSB0aGlzLmJ1aWxkTWFwKHVzZXJzKTtcbiAgICAgIGNvbnN0IHJjTWFwID0gdGhpcy5idWlsZE1hcChyZXNwb25zaWJpbGl0eS5yZXNwb25zaWJpbGl0eUNlbnRlcnMpO1xuICBcbiAgICAgIHJldHVybiAocmVzcG9uc2liaWxpdHkucmVzcG9uc2liaWxpdGllcyB8fCBbXSkubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgIHRoaXMubWFwUmVzcG9uc2liaWxpdHlJdGVtKGl0ZW0sIHVzZXJNYXAsIHJjTWFwKVxuICAgICAgKTtcbiAgICB9XG4gIFxuICAgIC8vIEhlbHBlciBtZXRob2RzIGJlbG93OlxuICBcbiAgICBwcml2YXRlIG1hcFNob3J0TmFtZXModXNlcnM6IGFueVtdLCBtYXBTaG9ydE5hbWU6IChuYW1lOiBzdHJpbmcpID0+IHN0cmluZyk6IGFueVtdIHtcbiAgICAgIHJldHVybiAodXNlcnMgfHwgW10pLm1hcCh1c2VyID0+ICh7XG4gICAgICAgIC4uLnVzZXIsXG4gICAgICAgIHNob3J0TmFtZTogbWFwU2hvcnROYW1lKHVzZXIubmFtZSksXG4gICAgICB9KSk7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIGJ1aWxkTWFwKGFycjogYW55W10pOiBNYXA8c3RyaW5nLCBhbnk+IHtcbiAgICAgIHJldHVybiBuZXcgTWFwKChhcnIgfHwgW10pLm1hcChpdGVtID0+IFtpdGVtLmlkLCBpdGVtXSkpO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBtYXBBc3NpZ25lZVVzZXJzKGFzc2lnbmVlOiBhbnksIGFjdGl2ZVVzZXJJZHM6IHN0cmluZ1tdLCB1c2VyTWFwOiBNYXA8c3RyaW5nLCBhbnk+KTogYW55W10ge1xuICAgICAgaWYgKCFhc3NpZ25lZS5hc3NpZ25lZSkge1xuICAgICAgICByZXR1cm4gKGFjdGl2ZVVzZXJJZHMgfHwgW10pLm1hcChpZCA9PiB1c2VyTWFwLmdldChpZCkpLmZpbHRlcihCb29sZWFuKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoYXNzaWduZWUuYXNzaWduZWUpID8gYXNzaWduZWUuYXNzaWduZWUgOiBbYXNzaWduZWUuYXNzaWduZWVdO1xuICAgICAgcmV0dXJuIGlkcy5tYXAoKGlkOiBhbnkpID0+IHVzZXJNYXAuZ2V0KChpZCkpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIG1hcFJlc3BvbnNpYmlsaXR5Q2VudGVycyhhc3NpZ25lZTogYW55LCBpdGVtUkNJZHM6IHN0cmluZ1tdLCByY01hcDogTWFwPHN0cmluZywgYW55Pik6IGFueVtdIHtcbiAgICAgIGlmICghYXNzaWduZWUucmVzcG9uc2liaWxpdHlDZW50ZXIpIHtcbiAgICAgICAgcmV0dXJuIChpdGVtUkNJZHMgfHwgW10pLm1hcChpZCA9PiByY01hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB9XG4gICAgICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyKSA/IGFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyIDogW2Fzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyXTtcbiAgICAgIHJldHVybiBpZHMubWFwKChpZDogYW55KSA9PiByY01hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgfVxuICBcbiAgICBwcml2YXRlIG1hcFJlc3BvbnNpYmlsaXR5SXRlbShpdGVtOiBhbnksIHVzZXJNYXA6IE1hcDxzdHJpbmcsIGFueT4sIHJjTWFwOiBNYXA8c3RyaW5nLCBhbnk+KTogYW55IHtcbiAgICAgIGNvbnN0IGFzc2lnbmVlRGV0YWlscyA9IChpdGVtLmFzc2lnbmVlRGV0YWlscyB8fCBbXSlcbiAgICAgICAgLmZpbHRlcigoYWQ6IGFueSkgPT4gYWQuc3RhdHVzICYmIGFkLnN0YXR1cy50b0xvd2VyQ2FzZSgpID09PSAnYWN0aXZlJylcbiAgICAgICAgLm1hcCgoYWQ6IGFueSkgPT4gKHtcbiAgICAgICAgICAuLi5hZCxcbiAgICAgICAgICBhc3NpZ25lZUluZm86IHRoaXMubWFwQXNzaWduZWVVc2VycyhhZCwgaXRlbS5hc3NpZ25lZXM/LmFjdGl2ZVVzZXJJZCB8fCBbXSwgdXNlck1hcCksXG4gICAgICAgICAgcmVzcG9uc2liaWxpdHlDZW50ZXJJbmZvOiB0aGlzLm1hcFJlc3BvbnNpYmlsaXR5Q2VudGVycyhhZCwgaXRlbS5yZXNwb25zaWJpbGl0eUNlbnRlcnMgfHwgW10sIHJjTWFwKSxcbiAgICAgICAgfSkpO1xuICBcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICB0aXRsZTogaXRlbS50aXRsZSxcbiAgICAgICAgYXNzaWduZWVEZXRhaWxzLFxuICAgICAgfTtcbiAgICB9XG4gIFxuICBtYXBTaG9ydE5hbWUobmFtZTogc3RyaW5nKSB7XG4gICAgY29uc3QgbmFtZUFycmF5ID0gbmFtZT8uc3BsaXQoJyAnKTtcbiAgICBpZihuYW1lQXJyYXk/Lmxlbmd0aCA+IDEpIHtcbiAgICAgIHJldHVybiBuYW1lQXJyYXlbMF0/LmNoYXJBdCgwKSArIG5hbWVBcnJheVtuYW1lQXJyYXk/Lmxlbmd0aCAtIDFdPy5jaGFyQXQoMCk7XG4gICAgfVxuICAgIHJldHVybiBuYW1lQXJyYXlbMF0/LmNoYXJBdCgwKSArIG5hbWVBcnJheVswXT8uY2hhckF0KDEpPy50b1VwcGVyQ2FzZSgpO1xuICB9XG5cbiAgb25Db21wbGV0aW9uQ2hhbmdlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXMgPSBldmVudFxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3RcIiBbY2xhc3MuYW5pbWF0ZV09XCJhbmltYXRpb25cIj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LWhlYWQgdngtcC0zIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgPGRpdiBjbGFzcz1cInZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXJcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgYXJyb3cgdngtZnMtMTYgdngtbGFiZWwtdHh0IHZ4LW1yLTFcIiAoY2xpY2spPVwiYmFjaygpXCI+JiN4ZTkxZDs8L2k+XG4gICAgICA8ZGl2IGNsYXNzPVwidngtZnMtMTQgdngtZnctNTAwIHZ4LWxhYmVsLXR4dFwiPlNlbGVjdCBhIFJlc3BvbnNpYmlsaXR5PC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QtYm9keVwiPlxuICAgIDwhLS0gPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwib3RoZXJzQ291bnQgPT09IDBcIj48L2FwcC1sb2FkZXItaW5saW5lPiAtLT5cblxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1zZWFyY2ggdngtbWItMlwiPlxuICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMlwiPiYjeGU5MGI7PC9pPlxuICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJyZXNwb25zaWJpbGl0eVNlYXJjaFRleHRcIiAoa2V5dXAuZW50ZXIpPVwic2VhcmNoKClcIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBSZXNwb25zaWJpbGl0aWVzXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLXBhZ2luYXRpb24gKm5nSWY9XCIhcmVzcG9uc2liaWxpdHlMb2FkZXIgJiYgcmVzcG9uc2liaWxpdGllc0RhdGE/LnRvdGFsX3BhZ2VzID4gMVwiXG4gICAgICBbc3RhcnRdPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXNfZnJvbVwiIFtlbmRdPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXNfdG9cIlxuICAgICAgW3RvdGFsXT1cInJlc3BvbnNpYmlsaXRpZXNEYXRhPy50b3RhbF9yZXNwb25zaWJpbGl0aWVzXCIgW3BhZ2VDb3VudF09XCJyZXNwb25zaWJpbGl0aWVzRGF0YT8udG90YWxfcGFnZXNcIlxuICAgICAgW2N1cnJlbnRQYWdlXT1cInJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2VcIiAoc2VsZWN0ZWRQYWdlKT1cInJlc3BvbnNpYmlsaXR5UGFnZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgPC9hcHAtcGFnaW5hdGlvbj5cbiAgICA8YXBwLWxvYWRlci1pbmxpbmUgKm5nSWY9XCJyZXNwb25zaWJpbGl0eUxvYWRlclwiPjwvYXBwLWxvYWRlci1pbmxpbmU+XG4gICAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LW1pZCB2eC1tYi00XCIgW2NsYXNzLndpdGgtcGFnaW5hdGlvbl09XCJcbiAgICAgICAgIXJlc3BvbnNpYmlsaXR5TG9hZGVyICYmIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy50b3RhbF9wYWdlcyA+IDFcbiAgICAgIFwiPlxuICAgICAgPGFwcC1uby1kYXRhICpuZ0lmPVwiXG4gICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LnJlc3BvbnNpYmlsaXRpZXM/Lmxlbmd0aCA9PT0gMCAmJlxuICAgICAgICAgICFyZXNwb25zaWJpbGl0eUxvYWRlclxuICAgICAgICBcIiBbbm9EYXRhSW1hZ2VdPVwiQVNTRVRTLnNlYXJjaF9kYXRhXCIgW25vRGF0YVRleHRdPVwiJ05vIERhdGEgdG8gRGlzcGxheSdcIj48L2FwcC1uby1kYXRhPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlxuICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzPy5sZW5ndGggPiAwICYmXG4gICAgICAgICAgIXJlc3BvbnNpYmlsaXR5TG9hZGVyXG4gICAgICAgIFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtaGVhZGVyXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLXJvd1wiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCI+XG4gICAgICAgICAgICAgICNcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgICAgICBbY2xhc3Mud2l0aC1yY109XCJpc09uQ29tcGxldGlvblJjXCI+XG4gICAgICAgICAgICAgIFJFU1BPTlNJQklMSVRJRVNcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHktY2VudGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc09uQ29tcGxldGlvblJjXCI+XG4gICAgICAgICAgICAgIFJFU1BPTlNJQklMSVRZIENFTlRFUlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC1saC01IHZ4LXR0LXVwcGVyY2FzZSB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhY3Rpb25cIj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWJvZHlcIj5cbiAgICAgICAgICA8IS0tIHdoZW4gY2xpY2sgb24gcmFkaW8gdGhlbiBhY3RpdmUgY2xhc3Mgc2hvdWxkIGJlIHRydWUgLS0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgbGV0IHJlc3BvbnNpYmlsaXR5IG9mIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzO1xuICAgICAgICAgICAgICBsZXQgaSA9IGluZGV4XG4gICAgICAgICAgICBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIiBbY2xhc3MuYWN0aXZlXT1cIlxuICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5Py5pZCA9PT0gcmVzcG9uc2liaWxpdHk/LmlkXG4gICAgICAgICAgICAgIFwiIFtjbGFzcy53aXRoLXN1Yi1yZXNwb25zaWJpbGl0eV09XCJvcGVuZWRSZXNwb25zaWJpbGl0eS5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eT8uaWQpXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzIGFzIGFzc2lnbmVlRGV0YWlsc1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgc2VyaWFsXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Itbm9cIiBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0aWVzRGF0YT8ucGFnZSAqIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5saW1pdCAtXG4gICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LmxpbWl0ICtcbiAgICAgICAgICAgICAgICAgICAgICBpICtcbiAgICAgICAgICAgICAgICAgICAgICAxXG4gICAgICAgICAgICAgICAgICAgIFwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3tcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LnBhZ2UgKiByZXNwb25zaWJpbGl0aWVzRGF0YT8ubGltaXQgLVxuICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0aWVzRGF0YT8ubGltaXQgK1xuICAgICAgICAgICAgICAgICAgICBpICtcbiAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8YXBwLWNzLXJhZGlvICpuZ0lmPVwiYXNzaWduZWVEZXRhaWxzPy5sZW5ndGggPT09IDFcIiBbbmFtZV09XCInb25Db21wbGV0aW9uJ1wiIFtjaGVja2VkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkUmVzcG9uc2liaWxpdHlJZD8uaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zaWJpbGl0eT8uUmVwb3J0SWRcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIChjaGVja2VkRXZlbnQpPVwib25Db21wbGV0aW9uQ2hhbmdlKHtlYWNoQXNzaWduZWU6IGFzc2lnbmVlRGV0YWlsc1swXSwgcmVzcG9uc2liaWxpdHl9KVwiPjwvYXBwLWNzLXJhZGlvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eSB3aXRoLXJjXCI+XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2YWx1ZSB2eC1mcy0xMiB2eC1sYWJlbC10eHQgdngtcHItNVwiIFthcHBUb29sdGlwXT1cInJlc3BvbnNpYmlsaXR5Py50aXRsZVwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCIgdHlwZT1cImJsYWNrXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyByZXNwb25zaWJpbGl0eT8uQ29udHJvbElkIH19IHt7IHJlc3BvbnNpYmlsaXR5Py50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInJlc3BvbnNpYmlsaXR5Py5hc3NpZ25lZURldGFpbHNbMF0/LnJlc3BvbnNpYmlsaXR5Q2VudGVySW5mbyBhcyByY1wiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3JhbS1pbm5lciB2eC1kLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyYW0tdmFsdWUgdngtZnMtMTEgdngtbGFiZWwtdHh0IHZ4LXByLTVcIiBbYXBwVG9vbHRpcF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJjPy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPyByY1swXT8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICA6ICctLSdcbiAgICAgICAgICAgICAgICAgICAgICBcIiBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHJjWzBdPy5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiLS1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoIFxuICAgICAgICAgICAgICAgICAgICAgIFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInJjPy5sZW5ndGggPiAxXCIgYXBwUG9wb3ZlciAoY2xpY2spPVwicmNQb3B1cC5wb3BvdmVyKClcIiBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwcm9ncmFtLWNvdW50IHZ4LWZzLTExIHZ4LWZ3LTUwMCB2eC10eHQtd2hpdGUgdngtcC0wIHZ4LXBsLTEgdngtcHItMSB2eC1tLTAgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciB2eC1qdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICt7eyByYz8ubGVuZ3RoIC0gMSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPGFwcC1wb3BvdmVyICNyY1BvcHVwPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3Zi1hY3Rpb24tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYWN0aW9uLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRhIG9mIHJjPy5zbGljZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyLWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWJsb2NrIHZ4LXctMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIiBbYXBwVG9vbHRpcF09XCJkYXRhPy5uYW1lXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj57eyBkYXRhPy5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2FwcC1wb3BvdmVyPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIGFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVSZXNwb25zaWJpbGl0eShyZXNwb25zaWJpbGl0eSlcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc3NpZ25lZURldGFpbHM/Lmxlbmd0aCA+IDE7IGVsc2UgY2xvc2VJY29uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuZWRSZXNwb25zaWJpbGl0eS5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eS5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGNsb3NlSWNvblxuICAgICAgICAgICAgICAgICAgICAgIFwiIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4mI3hlOWU3OzwvaT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjbG9zZUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJpY29ucyB2eC1mcy0xMFwiPiAmI3hlOWU4OzwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGxpYi1zdWItcmVzcG9uc2liaWxpdHkgKm5nSWY9XCJvcGVuZWRSZXNwb25zaWJpbGl0eS5pbmNsdWRlcyhyZXNwb25zaWJpbGl0eS5pZClcIlxuICAgICAgICAgICAgICBbcmVzcG9uc2liaWxpdHldPVwicmVzcG9uc2liaWxpdHlcIlxuICAgICAgICAgICAgICAob25Db21wbGV0aW9uQ2hhbmdlKT1cIm9uQ29tcGxldGlvbkNoYW5nZSgkZXZlbnQpXCI+PC9saWItc3ViLXJlc3BvbnNpYmlsaXR5PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICAgIDxhcHAtZmxvYXRpbmctYmFyIFtzZWxlY3RlZERhdGFdPVwiW3NlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5XVwiIFtkaXNwbGF5RWxlbWVudEtleV09XCIndGl0bGUnXCJcbiAgICAgIChjbG9zZUxpc3QpPVwiYmFjaygpXCIgKGNsb3NlRXZlbnQpPVwic2F2ZSgkZXZlbnQpXCIgKGRlbGV0ZUV2ZW50KT1cImRlbGV0ZUl0ZW0oJGV2ZW50KVwiXG4gICAgICBbaXNEaXNhYmxlZF09XCIhc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcz8ucmVzcG9uc2liaWxpdHk/LmlkXCI+PC9hcHAtZmxvYXRpbmctYmFyPlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvc2hhcmVkQ29tcG9uZW50cy9mcmVxdWVuY3kvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QvZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBTzdELE1BQU0sT0FBTyxvQ0FBb0M7SUE4RC9DLFlBQW9CLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBM0Q3QyxrQ0FBNkIsR0FBUSxFQUFFLENBQUM7UUFDakQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ04sZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsMkJBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RCx5QkFBb0IsR0FBUSxFQUFFLENBQUM7UUFDL0IseUJBQW9CLEdBQVksS0FBSyxDQUFDO1FBQ3RDLDZCQUF3QixHQUFRLEVBQUUsQ0FBQztRQUVuQyxlQUFVLEdBQUcsQ0FBQyxDQUFD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LENBQUMsS0FBSztZQUNqQixlQUFlO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUgsWUFBWSxDQUFDLElBQVk7UUFDdkIsTUFBTSxTQUFTLEdBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuQyxJQUFHLFNBQVMsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsU0FBUyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDOUU7UUFDRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVTtRQUMzQixJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFBO0lBQzNDLENBQUM7K0dBelRVLG9DQUFvQzttR0FBcEMsb0NBQW9DLGdVQ1RqRCx5alJBbUtNOzs0RkQxSk8sb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNFLG1DQUFtQzt1R0FLcEMsNEJBQTRCO3NCQUFwQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyw2QkFBNkI7c0JBQXJDLEtBQUs7Z0JBR0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGcmVxdWVuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vZnJlcXVlbmN5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGcmVxdWVuY3lSZXNwb25zaWJpbGl0eUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBvbkNvbXBsZXRpb25PZlJlc3BvbnNpYmlsaXR5OiBhbnk7XG4gIEBJbnB1dCgpIGZlYXR1cmU6IGFueTtcbiAgQElucHV0KCkgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eURldGFpbHM6IGFueSA9IFtdO1xuICBhbmltYXRpb24gPSBmYWxzZTtcbiAgQVNTRVRTID0gQVNTRVRTO1xuICBAT3V0cHV0KCkgYmFja0J1dHRvbiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkUmVzcG9uc2liaWxpdHkgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIHJlc3BvbnNpYmlsaXRpZXNEYXRhOiBhbnkgPSB7fTtcbiAgcmVzcG9uc2liaWxpdHlMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eUlkOiBhbnkgPSBbXTtcbiAgc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlczogYW55O1xuICBjdXJyZW50VGFiID0gMTtcbiAgcmVzcG9uc2liaWxpdHlUYWJzOiBhbnkgPSBbXG4gICAgeyBuYW1lOiAnUkVHVUxBVElPTlMnLCB0eXBlOiAxIH0sXG4gICAgeyBuYW1lOiAnU1RBTkRBUkRTJywgdHlwZTogMiB9LFxuICAgIHsgbmFtZTogJ0lOVEVSTkFMIENPTlRST0xTJywgdHlwZTogMyB9LFxuICAgIHsgbmFtZTogJ09USEVSUycsIHR5cGU6IDAgfSxcbiAgXTtcbiAgcmVzcG9uc2liaWxpdHlUYWJDb3VudCA9IHtcbiAgICByZWd1bGF0aW9uQ291bnQ6IDAsXG4gICAgc3RhbmRhcmRDb3VudDogMCxcbiAgICBpbnRlcm5hbENvdW50OiAwLFxuICAgIG90aGVyc0NvdW50OiAwLFxuICB9O1xuICByZXNwb25zaWJpbGl0eVNlYXJjaFRleHQ6IHN0cmluZyA9ICcnO1xuICByZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlOiBudW1iZXIgPSAxO1xuICBpc1ZhbGlkT2JqID0gZmFsc2U7XG5cbiAgcmVzcG9uc2liaWxpdHlQYXlsb2FkID0ge1xuICAgIHR5cGU6ICdhY3RpdmUnLFxuICAgIHBhZ2luYXRpb25UeXBlOiAnbGFyZ2UnLFxuICAgIGE6ICcnLFxuICAgIHNlYXJjaFRleHQ6ICcnLFxuICAgIGZpbHRlckRhdGE6IHtcbiAgICAgIGFwcExpc3Q6IFtdLFxuICAgICAgcmlza0lkczogW10sXG4gICAgICByZXZpZXdlcklkOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVyOiBbXSxcbiAgICAgIGVudHJ1c3RlZEJ5OiBbXSxcbiAgICAgIGVudHJ1c3RlZFRvOiBbXSxcbiAgICAgIHJlc3BvbnNpYmlsaXR5Q2F0ZWdvcnk6IFtdLFxuICAgICAgY29tcGxpYW5jZVR5cGU6IFsxXSxcbiAgICB9LFxuICAgIHBhZ2VObzogMSxcbiAgICBzb3J0T2JqOiB7XG4gICAgICBzb3J0Qnk6ICcnLFxuICAgICAgdHlwZTogJycsXG4gICAgfSxcbiAgICBwYWdlTmFtZTogJ292ZXJ2aWV3JyxcbiAgfTtcbiAgcmVzcG9uc2liaWxpdHlMaXN0OiBhbnk7XG4gIHJlZ3VsYXRpb25Db3VudDogYW55ID0gMDtcbiAgc3RhbmRhcmRzQ291bnQ6IGFueSA9IDA7XG4gIGludGVybmFsc0NvdW50OiBhbnkgPSAwO1xuICBvdGhlcnNDb3VudDogYW55ID0gMDtcbiAgZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZjogYW55O1xuICBpc09uQ29tcGxldGlvblJjOiBib29sZWFuID0gZmFsc2U7XG4gIGNsb3NlOiBhbnk7XG4gIG9wZW5lZFJlc3BvbnNpYmlsaXR5OiBhbnlbXSA9IFtdO1xuXG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcmVxdWVuY3lTZXJ2aWNlOiBGcmVxdWVuY3lTZXJ2aWNlKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZlYXR1cmVGbGFnSW5pdGlhbGl6YXRpb24oKTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscykge1xuICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWRbMF0gPSBPYmplY3Qua2V5cyhcbiAgICAgICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlsc1xuICAgICAgKT8ubGVuZ3RoXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscz8uUmVwb3J0SWRcbiAgICAgICAgOiBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRSZXNwb25zaWJpbGl0eVZhbHVlcyA9IE9iamVjdC5rZXlzKFxuICAgICAgICB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICApPy5sZW5ndGhcbiAgICAgICAgPyB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICAgIDoge307XG4gICAgICB0aGlzLmlzVmFsaWRPYmogPSB0aGlzLnNlbGVjdGVkUmVzcG9uc2liaWxpdHlEZXRhaWxzXG4gICAgICAgID8gT2JqZWN0LmtleXModGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5RGV0YWlscyk/Lmxlbmd0aCA+IDBcbiAgICAgICAgOiBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5hbmltYXRpb24gPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hbmltYXRpb24gPSBmYWxzZTtcbiAgICB9LCAzMDApO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gICAgLy90aGlzLnNldFJlc3BvbnNpYmlsaXRpZXNDb3VudCgpO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLmJhY2tCdXR0b24uZW1pdCgnYmFja1RvT25Db21wbGV0aW9uJyk7XG4gIH1cblxuICBmaWx0ZXJCeVJlc3BvbnNpYmlsaXR5VHlwZSh0eXBlOiBudW1iZXIpIHtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5maWx0ZXJEYXRhLmNvbXBsaWFuY2VUeXBlID0gW107XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuZmlsdGVyRGF0YS5jb21wbGlhbmNlVHlwZS5wdXNoKHR5cGUpO1xuICAgIHRoaXMuZnJlcXVlbmN5U2VydmljZVxuICAgICAgPy5nZXRSZXNwb25zaWJpbGl0eUxpc3QodGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdCA9IHJlc1swXTtcbiAgICAgICAgaWYgKHRoaXMucmVzcG9uc2liaWxpdHlMaXN0KSB7XG4gICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIHRoaXMub3RoZXJzQ291bnQgPVxuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMaXN0Wyd0b3RhbF9yZXNwb25zaWJpbGl0aWVzJ107XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgICB0aGlzLnJlZ3VsYXRpb25Db3VudCA9XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxpc3RbJ3RvdGFsX3Jlc3BvbnNpYmlsaXRpZXMnXTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgICAgIHRoaXMuc3RhbmRhcmRzQ291bnQgPVxuICAgICAgICAgICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlMaXN0Wyd0b3RhbF9yZXNwb25zaWJpbGl0aWVzJ107XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgICB0aGlzLmludGVybmFsc0NvdW50ID1cbiAgICAgICAgICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5TGlzdFsndG90YWxfcmVzcG9uc2liaWxpdGllcyddO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBnZXRSZXNwb25zaWJpbGl0eUxpc3QoKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IHRydWU7XG4gICAgdGhpcy5mcmVxdWVuY3lTZXJ2aWNlXG4gICAgICA/LmdldFJlc3BvbnNpYmlsaXR5TGlzdCh0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZClcbiAgICAgIC5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGEgPSByZXM/LmRhdGE7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGFbJ3Jlc3BvbnNpYmlsaXRpZXMnXSA9IHRoaXMubWFwUmVzcG9uc2liaWxpdHlEYXRhKCB0aGlzLnJlc3BvbnNpYmlsaXRpZXNEYXRhKVxuXG4gICAgICAgIGNvbnNvbGUubG9nKHRoaXMucmVzcG9uc2liaWxpdGllc0RhdGEsIFwicmVzcG9uc2VcIilcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IGZhbHNlO1xuICAgICAgfSwgKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eUxvYWRlciA9IGZhbHNlO1xuICAgICAgICBjb25zb2xlLmxvZyh7IGVycm9yIH0sIFwiRXJyb3IgaW4gZ2V0dGluZyByZXNwb25zaWJpbGl0eSBsaXN0XCIpO1xuICAgICAgfSk7XG4gIH1cblxuICByZXNwb25zaWJpbGl0eVBhZ2VDaGFuZ2UocGFnZU51bWJlcjogbnVtYmVyKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gcGFnZU51bWJlcjtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5wYWdlTm8gPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuc2VhcmNoVGV4dCA9IHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0O1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gIH1cblxuXG4gIGRlbGV0ZUl0ZW0oaXRlbTogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzID0ge307XG4gICAgdGhpcy5pc1ZhbGlkT2JqID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQgPSBbXTtcbiAgfVxuICBzYXZlKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmJhY2tCdXR0b24uZW1pdCgnYmFja1RvT25Db21wbGV0aW9uJyk7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5LmVtaXQodGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzKTtcbiAgfVxuXG4gIG9uQ2xpY2tUYWJDaGFuZ2UodGFiOiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRUYWIgPSB0YWI/LnR5cGU7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuZmlsdGVyRGF0YS5jb21wbGlhbmNlVHlwZSA9IFt0aGlzLmN1cnJlbnRUYWJdO1xuICAgIC8vIHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0ID0gJyc7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlID0gMTtcbiAgICB0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZC5wYWdlTm8gPSB0aGlzLnJlc3BvbnNpYmlsaXR5Q3VycmVudFBhZ2U7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuc2VhcmNoVGV4dCA9IHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0O1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gIH1cblxuICBzZWFyY2goKSB7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQuc2VhcmNoVGV4dCA9IHRoaXMucmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0O1xuICAgIHRoaXMucmVzcG9uc2liaWxpdHlDdXJyZW50UGFnZSA9IDE7XG4gICAgdGhpcy5yZXNwb25zaWJpbGl0eVBheWxvYWQucGFnZU5vID0gdGhpcy5yZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlO1xuICAgIHRoaXMuZ2V0UmVzcG9uc2liaWxpdHlMaXN0KCk7XG4gICAgdGhpcy5zZXRSZXNwb25zaWJpbGl0aWVzQ291bnQoKTtcbiAgfVxuXG4gIHNldFJlc3BvbnNpYmlsaXRpZXNDb3VudCgpIHtcbiAgICBjb25zdCBwYXlsb2FkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnJlc3BvbnNpYmlsaXR5UGF5bG9hZCkpO1xuICAgIHBheWxvYWQuZmlsdGVyRGF0YS5jb21wbGlhbmNlVHlwZSA9IFswLCAxLCAyLCAzXTtcbiAgICB0aGlzLmZyZXF1ZW5jeVNlcnZpY2VcbiAgICAgID8uZ2V0UmVzcG9uc2liaWxpdGllc0NvdW50KHBheWxvYWQpXG4gICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5VGFiQ291bnQucmVndWxhdGlvbkNvdW50ID0gcmVzPy5yZWd1bGF0aW9uX2NvdW50O1xuICAgICAgICB0aGlzLnJlc3BvbnNpYmlsaXR5VGFiQ291bnQuc3RhbmRhcmRDb3VudCA9IHJlcz8uc3RhbmRhcmRfY291bnQ7XG4gICAgICAgIHRoaXMucmVzcG9uc2liaWxpdHlUYWJDb3VudC5pbnRlcm5hbENvdW50ID0gcmVzPy5pbnRlcm5hbF9jb3VudDtcbiAgICAgICAgdGhpcy5yZXNwb25zaWJpbGl0eVRhYkNvdW50Lm90aGVyc0NvdW50ID0gcmVzPy5vdGhlcnNfY291bnQ7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBpbml0aWFsaXplIGFsbCB0aGUgRmVhdHVyZSBmbGFnIGJhc2VkIHZhcmlhYmxlc1xuICBmZWF0dXJlRmxhZ0luaXRpYWxpemF0aW9uKCkge1xuICAgIHRoaXMuZmVhdHVyZUZsYWdfb25fY29tcGxldGlvbl9vZiA9IHRoaXMuZmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX2ZyZXF1ZW5jeV9vbl9jb21wbGV0aW9uX29mJ1xuICAgICk7XG4gICAgdGhpcy5pc09uQ29tcGxldGlvblJjID0gdGhpcy5mZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoXG4gICAgICAnZmZfb25fY29tcGxldGlvbl9yYydcbiAgICApO1xuICB9XG5cbiAgXG4gIG9uVG9nZ2xlUmVzcG9uc2liaWxpdHkocmVzcG9uc2liaWxpdHk6IGFueSkge1xuICAgIGlmKHRoaXMub3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuaWQpKSB7XG4gICAgICB0aGlzLm9wZW5lZFJlc3BvbnNpYmlsaXR5ID0gdGhpcy5vcGVuZWRSZXNwb25zaWJpbGl0eS5maWx0ZXIoKGlkOiBhbnkpID0+IGlkICE9PSByZXNwb25zaWJpbGl0eS5pZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbmVkUmVzcG9uc2liaWxpdHkucHVzaChyZXNwb25zaWJpbGl0eS5pZCk7XG4gICAgfVxuICB9XG5cbiAgLy8gbWFwUmVzcG9uc2liaWxpdHlEYXRhKHJlc3BvbnNpYmlsaXR5OiBhbnkpIHtcbiAgLy8gICBjb25zdCBtYXBwZWREYXRhOiBhbnlbXSA9IFtdO1xuICAvLyAgIHJlc3BvbnNpYmlsaXR5LnVzZXJzID0gcmVzcG9uc2liaWxpdHk/LnVzZXJzPy5tYXAoKHVzZXI6IGFueSkgPT4ge1xuICAvLyAgICAgdXNlci5zaG9ydE5hbWUgPSB0aGlzLm1hcFNob3J0TmFtZSh1c2VyPy5uYW1lKTtcbiAgLy8gICAgIHJldHVybiB1c2VyXG4gIC8vICAgfSkgfHwgW107XG4gIC8vICAgcmVzcG9uc2liaWxpdHk/LnJlc3BvbnNpYmlsaXRpZXM/LmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xuICAvLyAgICAgaXRlbS5hc3NpZ25lZURldGFpbHMgPSBpdGVtPy5hc3NpZ25lZURldGFpbHM/LmZpbHRlcigoZWFjaEFzc2lnbmVlOiBhbnkpID0+IGVhY2hBc3NpZ25lZT8uc3RhdHVzPy50b0xvd2VyQ2FzZSgpID09PSAnYWN0aXZlJyk7XG4gIC8vICAgICBjb25zdCBhc3NpZ25lZURldGFpbHMgPSBpdGVtPy5hc3NpZ25lZURldGFpbHM/Lm1hcCgoZWFjaEFzc2lnbmVlOiBhbnkpID0+IHtcbiAgLy8gICAgICAgaWYoIWVhY2hBc3NpZ25lZT8uYXNzaWduZWUpIHtcbiAgLy8gICAgICAgICBlYWNoQXNzaWduZWUuYXNzaWduZWUgPSByZXNwb25zaWJpbGl0eT8udXNlcnMuZmlsdGVyKCh1c2VyOiBhbnkpID0+IGl0ZW0/LmFzc2lnbmVlcy5hY3RpdmVVc2VySWQ/LmluY2x1ZGVzKHVzZXI/LmlkKSk7XG4gIC8vICAgICAgIH0gZWxzZSB7XG4gIC8vICAgICAgICAgZWFjaEFzc2lnbmVlLmFzc2lnbmVlID0gW3Jlc3BvbnNpYmlsaXR5Py51c2Vycy5maW5kKCh1c2VyOiBhbnkpID0+IGVhY2hBc3NpZ25lZT8uYXNzaWduZWUgPT09IHVzZXI/LmlkKV07XG5cbiAgLy8gICAgICAgfVxuICAvLyAgICAgICBpZighZWFjaEFzc2lnbmVlPy5yZXNwb25zaWJpbGl0eUNlbnRlcikge1xuICAvLyAgICAgICAgIGVhY2hBc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlciA9IHJlc3BvbnNpYmlsaXR5Py5yZXNwb25zaWJpbGl0eUNlbnRlcnMuZmlsdGVyKChyYzogYW55KSA9PiBpdGVtPy5yZXNwb25zaWJpbGl0eUNlbnRlcnM/LmluY2x1ZGVzKHJjPy5pZCkpO1xuICAvLyAgICAgICB9IGVsc2Uge1xuICAvLyAgICAgICAgIGVhY2hBc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlciA9IFtyZXNwb25zaWJpbGl0eT8ucmVzcG9uc2liaWxpdHlDZW50ZXJzLmZpbmQoKHJjOiBhbnkpID0+IGVhY2hBc3NpZ25lZT8ucmVzcG9uc2liaWxpdHlDZW50ZXIgPT09IHJjPy5pZCldO1xuXG4gIC8vICAgICAgIH1cbiAgLy8gICAgICAgcmV0dXJuIGVhY2hBc3NpZ25lZTtcbiAgLy8gICAgIH0pO1xuXG4gIC8vICAgICBjb25zdCBkYXRhID0ge1xuICAvLyAgICAgICB0aXRsZTogaXRlbT8udGl0bGUsXG4gIC8vICAgICAgIGFzc2lnbmVlRGV0YWlsczogYXNzaWduZWVEZXRhaWxzLFxuICAvLyAgICAgICBpZDogaXRlbT8uaWQsXG4gIC8vICAgICB9XG4gIC8vICAgICBtYXBwZWREYXRhLnB1c2goZGF0YSApO1xuICAvLyAgIH0pXG5cblxuICAvLyAgIHJldHVybiBtYXBwZWREYXRhO1xuICAvLyB9XG5cbiAgICAvLyBNYWluIG1ldGhvZCBleHBvc2VkIG91dHNpZGVcbiAgICBwdWJsaWMgbWFwUmVzcG9uc2liaWxpdHlEYXRhKHJlc3BvbnNpYmlsaXR5OiBhbnkpOiBhbnlbXSB7XG4gICAgICBpZiAoIXJlc3BvbnNpYmlsaXR5KSByZXR1cm4gW107XG4gIFxuICAgICAgY29uc3QgdXNlcnMgPSB0aGlzLm1hcFNob3J0TmFtZXMocmVzcG9uc2liaWxpdHkudXNlcnMsIHRoaXMubWFwU2hvcnROYW1lKTtcbiAgICAgIGNvbnN0IHVzZXJNYXAgPSB0aGlzLmJ1aWxkTWFwKHVzZXJzKTtcbiAgICAgIGNvbnN0IHJjTWFwID0gdGhpcy5idWlsZE1hcChyZXNwb25zaWJpbGl0eS5yZXNwb25zaWJpbGl0eUNlbnRlcnMpO1xuICBcbiAgICAgIHJldHVybiAocmVzcG9uc2liaWxpdHkucmVzcG9uc2liaWxpdGllcyB8fCBbXSkubWFwKChpdGVtOiBhbnkpID0+XG4gICAgICAgIHRoaXMubWFwUmVzcG9uc2liaWxpdHlJdGVtKGl0ZW0sIHVzZXJNYXAsIHJjTWFwLCB1c2VycylcbiAgICAgICk7XG4gICAgfVxuICBcbiAgICAvLyBIZWxwZXIgbWV0aG9kcyBiZWxvdzpcbiAgXG4gICAgcHJpdmF0ZSBtYXBTaG9ydE5hbWVzKHVzZXJzOiBhbnlbXSwgbWFwU2hvcnROYW1lOiAobmFtZTogc3RyaW5nKSA9PiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgICByZXR1cm4gKHVzZXJzIHx8IFtdKS5tYXAodXNlciA9PiAoe1xuICAgICAgICAuLi51c2VyLFxuICAgICAgICBzaG9ydE5hbWU6IG1hcFNob3J0TmFtZSh1c2VyLm5hbWUpLFxuICAgICAgfSkpO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBidWlsZE1hcChhcnI6IGFueVtdKTogTWFwPHN0cmluZywgYW55PiB7XG4gICAgICByZXR1cm4gbmV3IE1hcCgoYXJyIHx8IFtdKS5tYXAoaXRlbSA9PiBbaXRlbS5pZCwgaXRlbV0pKTtcbiAgICB9XG4gIFxuICAgIHByaXZhdGUgbWFwQXNzaWduZWVVc2Vycyhhc3NpZ25lZTogYW55LCBhY3RpdmVVc2VySWRzOiBzdHJpbmdbXSwgdXNlck1hcDogTWFwPHN0cmluZywgYW55Pik6IGFueVtdIHtcbiAgICAgIGlmICghYXNzaWduZWUuYXNzaWduZWUpIHtcbiAgICAgICAgcmV0dXJuIChhY3RpdmVVc2VySWRzIHx8IFtdKS5tYXAoaWQgPT4gdXNlck1hcC5nZXQoaWQpKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgICB9XG4gICAgICBjb25zdCBpZHMgPSBBcnJheS5pc0FycmF5KGFzc2lnbmVlLmFzc2lnbmVlKSA/IGFzc2lnbmVlLmFzc2lnbmVlIDogW2Fzc2lnbmVlLmFzc2lnbmVlXTtcbiAgICAgIHJldHVybiBpZHMubWFwKChpZDogYW55KSA9PiB1c2VyTWFwLmdldCgoaWQpKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBtYXBSZXNwb25zaWJpbGl0eUNlbnRlcnMoYXNzaWduZWU6IGFueSwgaXRlbVJDSWRzOiBzdHJpbmdbXSwgcmNNYXA6IE1hcDxzdHJpbmcsIGFueT4pOiBhbnlbXSB7XG4gICAgICBpZiAoIWFzc2lnbmVlLnJlc3BvbnNpYmlsaXR5Q2VudGVyKSB7XG4gICAgICAgIHJldHVybiAoaXRlbVJDSWRzIHx8IFtdKS5tYXAoaWQgPT4gcmNNYXAuZ2V0KGlkKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgICAgfVxuICAgICAgY29uc3QgaWRzID0gQXJyYXkuaXNBcnJheShhc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlcikgPyBhc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlciA6IFthc3NpZ25lZS5yZXNwb25zaWJpbGl0eUNlbnRlcl07XG4gICAgICByZXR1cm4gaWRzLm1hcCgoaWQ6IGFueSkgPT4gcmNNYXAuZ2V0KGlkKSkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIH1cbiAgXG4gICAgcHJpdmF0ZSBtYXBSZXNwb25zaWJpbGl0eUl0ZW0oaXRlbTogYW55LCB1c2VyTWFwOiBNYXA8c3RyaW5nLCBhbnk+LCByY01hcDogTWFwPHN0cmluZywgYW55PiwgdXNlcnM/OiBhbnkpOiBhbnkge1xuICAgICAgY29uc3QgYXNzaWduZWVEZXRhaWxzID0gKGl0ZW0uYXNzaWduZWVEZXRhaWxzIHx8IFtdKVxuICAgICAgICAuZmlsdGVyKChhZDogYW55KSA9PiBhZC5zdGF0dXMgJiYgYWQuc3RhdHVzLnRvTG93ZXJDYXNlKCkgPT09ICdhY3RpdmUnKVxuICAgICAgICAubWFwKChhZDogYW55KSA9PiAoe1xuICAgICAgICAgIC4uLmFkLFxuICAgICAgICAgIGFzc2lnbmVlSW5mbzogdXNlcnM/PyB0aGlzLm1hcEFzc2lnbmVlVXNlcnMoYWQsIGl0ZW0uYXNzaWduZWVzPy5hY3RpdmVVc2VySWQgfHwgW10sIHVzZXJNYXApLFxuICAgICAgICAgIHJlc3BvbnNpYmlsaXR5Q2VudGVySW5mbzogdGhpcy5tYXBSZXNwb25zaWJpbGl0eUNlbnRlcnMoYWQsIGl0ZW0ucmVzcG9uc2liaWxpdHlDZW50ZXJzIHx8IFtdLCByY01hcCksXG4gICAgICAgIH0pKTtcbiAgXG4gICAgICByZXR1cm4ge1xuICAgICAgICBpZDogaXRlbS5pZCxcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXG4gICAgICAgIGFzc2lnbmVlRGV0YWlscyxcbiAgICAgIH07XG4gICAgfVxuICBcbiAgbWFwU2hvcnROYW1lKG5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IG5hbWVBcnJheSA9IG5hbWU/LnNwbGl0KCcgJyk7XG4gICAgaWYobmFtZUFycmF5Py5sZW5ndGggPiAxKSB7XG4gICAgICByZXR1cm4gbmFtZUFycmF5WzBdPy5jaGFyQXQoMCkgKyBuYW1lQXJyYXlbbmFtZUFycmF5Py5sZW5ndGggLSAxXT8uY2hhckF0KDApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZUFycmF5WzBdPy5jaGFyQXQoMCkgKyBuYW1lQXJyYXlbMF0/LmNoYXJBdCgxKT8udG9VcHBlckNhc2UoKTtcbiAgfVxuXG4gIG9uQ29tcGxldGlvbkNoYW5nZShldmVudDogYW55KSB7XG4gICAgdGhpcy5zZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzID0gZXZlbnRcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0XCIgW2NsYXNzLmFuaW1hdGVdPVwiYW5pbWF0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1oZWFkIHZ4LXAtMyB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHZ4LWp1c3RpZnktYmV0d2VlblwiPlxuICAgIDxkaXYgY2xhc3M9XCJ2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyXCI+XG4gICAgICA8aSBjbGFzcz1cImljb25zIGFycm93IHZ4LWZzLTE2IHZ4LWxhYmVsLXR4dCB2eC1tci0xXCIgKGNsaWNrKT1cImJhY2soKVwiPiYjeGU5MWQ7PC9pPlxuICAgICAgPGRpdiBjbGFzcz1cInZ4LWZzLTE0IHZ4LWZ3LTUwMCB2eC1sYWJlbC10eHRcIj5TZWxlY3QgYSBSZXNwb25zaWJpbGl0eTwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZyZXF1ZW5jeS1yZXNwb25zaWJpbGl0eS1saXN0LWJvZHlcIj5cbiAgICA8IS0tIDxhcHAtbG9hZGVyLWlubGluZSAqbmdJZj1cIm90aGVyc0NvdW50ID09PSAwXCI+PC9hcHAtbG9hZGVyLWlubGluZT4gLS0+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZnJlcXVlbmN5LXJlc3BvbnNpYmlsaXR5LWxpc3Qtc2VhcmNoIHZ4LW1iLTJcIj5cbiAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTJcIj4mI3hlOTBiOzwvaT5cbiAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwicmVzcG9uc2liaWxpdHlTZWFyY2hUZXh0XCIgKGtleXVwLmVudGVyKT1cInNlYXJjaCgpXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggUmVzcG9uc2liaWxpdGllc1wiIC8+XG4gICAgPC9kaXY+XG4gICAgPGFwcC1wYWdpbmF0aW9uICpuZ0lmPVwiIXJlc3BvbnNpYmlsaXR5TG9hZGVyICYmIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy50b3RhbF9wYWdlcyA+IDFcIlxuICAgICAgW3N0YXJ0XT1cInJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzX2Zyb21cIiBbZW5kXT1cInJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzX3RvXCJcbiAgICAgIFt0b3RhbF09XCJyZXNwb25zaWJpbGl0aWVzRGF0YT8udG90YWxfcmVzcG9uc2liaWxpdGllc1wiIFtwYWdlQ291bnRdPVwicmVzcG9uc2liaWxpdGllc0RhdGE/LnRvdGFsX3BhZ2VzXCJcbiAgICAgIFtjdXJyZW50UGFnZV09XCJyZXNwb25zaWJpbGl0eUN1cnJlbnRQYWdlXCIgKHNlbGVjdGVkUGFnZSk9XCJyZXNwb25zaWJpbGl0eVBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDwvYXBwLXBhZ2luYXRpb24+XG4gICAgPGFwcC1sb2FkZXItaW5saW5lICpuZ0lmPVwicmVzcG9uc2liaWxpdHlMb2FkZXJcIj48L2FwcC1sb2FkZXItaW5saW5lPlxuICAgIDxkaXYgY2xhc3M9XCJmcmVxdWVuY3ktcmVzcG9uc2liaWxpdHktbGlzdC1taWQgdngtbWItNFwiIFtjbGFzcy53aXRoLXBhZ2luYXRpb25dPVwiXG4gICAgICAgICFyZXNwb25zaWJpbGl0eUxvYWRlciAmJiByZXNwb25zaWJpbGl0aWVzRGF0YT8udG90YWxfcGFnZXMgPiAxXG4gICAgICBcIj5cbiAgICAgIDxhcHAtbm8tZGF0YSAqbmdJZj1cIlxuICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5yZXNwb25zaWJpbGl0aWVzPy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAhcmVzcG9uc2liaWxpdHlMb2FkZXJcbiAgICAgICAgXCIgW25vRGF0YUltYWdlXT1cIkFTU0VUUy5zZWFyY2hfZGF0YVwiIFtub0RhdGFUZXh0XT1cIidObyBEYXRhIHRvIERpc3BsYXknXCI+PC9hcHAtbm8tZGF0YT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJcbiAgICAgICAgICByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcz8ubGVuZ3RoID4gMCAmJlxuICAgICAgICAgICFyZXNwb25zaWJpbGl0eUxvYWRlclxuICAgICAgICBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWhlYWRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1yb3dcIj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAjXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgW2NsYXNzLndpdGgtcmNdPVwiaXNPbkNvbXBsZXRpb25SY1wiPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUSUVTXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtZnMtMTEgdngtZnctNTAwIHZ4LWxoLTUgdngtdHQtdXBwZXJjYXNlIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHJlc3BvbnNpYmlsaXR5LWNlbnRlclwiXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNPbkNvbXBsZXRpb25SY1wiPlxuICAgICAgICAgICAgICBSRVNQT05TSUJJTElUWSBDRU5URVJcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1mcy0xMSB2eC1mdy01MDAgdngtbGgtNSB2eC10dC11cHBlcmNhc2UgdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgYWN0aW9uXCI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1ib2R5XCI+XG4gICAgICAgICAgPCEtLSB3aGVuIGNsaWNrIG9uIHJhZGlvIHRoZW4gYWN0aXZlIGNsYXNzIHNob3VsZCBiZSB0cnVlIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwiXG4gICAgICAgICAgICAgIGxldCByZXNwb25zaWJpbGl0eSBvZiByZXNwb25zaWJpbGl0aWVzRGF0YT8ucmVzcG9uc2liaWxpdGllcztcbiAgICAgICAgICAgICAgbGV0IGkgPSBpbmRleFxuICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtcm93XCIgW2NsYXNzLmFjdGl2ZV09XCJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eT8uaWQgPT09IHJlc3BvbnNpYmlsaXR5Py5pZFxuICAgICAgICAgICAgICBcIiBbY2xhc3Mud2l0aC1zdWItcmVzcG9uc2liaWxpdHldPVwib3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHk/LmlkKVwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVzcG9uc2liaWxpdHk/LmFzc2lnbmVlRGV0YWlscyBhcyBhc3NpZ25lZURldGFpbHNcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGFibGUtY29sdW1uIHZ4LXBsLTEgdngtcHItMSB2eC1kLWZsZXggdngtYWxpZ24tY2VudGVyIHNlcmlhbFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNyLW5vXCIgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LnBhZ2UgKiByZXNwb25zaWJpbGl0aWVzRGF0YT8ubGltaXQgLVxuICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5saW1pdCArXG4gICAgICAgICAgICAgICAgICAgICAgaSArXG4gICAgICAgICAgICAgICAgICAgICAgMVxuICAgICAgICAgICAgICAgICAgICBcIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgIHt7XG4gICAgICAgICAgICAgICAgICAgIHJlc3BvbnNpYmlsaXRpZXNEYXRhPy5wYWdlICogcmVzcG9uc2liaWxpdGllc0RhdGE/LmxpbWl0IC1cbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdGllc0RhdGE/LmxpbWl0ICtcbiAgICAgICAgICAgICAgICAgICAgaSArXG4gICAgICAgICAgICAgICAgICAgIDFcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGFwcC1jcy1yYWRpbyAqbmdJZj1cImFzc2lnbmVlRGV0YWlscz8ubGVuZ3RoID09PSAxXCIgW25hbWVdPVwiJ29uQ29tcGxldGlvbidcIiBbY2hlY2tlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFJlc3BvbnNpYmlsaXR5SWQ/LmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2liaWxpdHk/LlJlcG9ydElkXG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAoY2hlY2tlZEV2ZW50KT1cIm9uQ29tcGxldGlvbkNoYW5nZSh7ZWFjaEFzc2lnbmVlOiBhc3NpZ25lZURldGFpbHNbMF0sIHJlc3BvbnNpYmlsaXR5fSlcIj48L2FwcC1jcy1yYWRpbz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJsZS1jb2x1bW4gdngtcGwtMSB2eC1wci0xIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgcmVzcG9uc2liaWxpdHkgd2l0aC1yY1wiPlxuXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidmFsdWUgdngtZnMtMTIgdngtbGFiZWwtdHh0IHZ4LXByLTVcIiBbYXBwVG9vbHRpcF09XCJyZXNwb25zaWJpbGl0eT8udGl0bGVcIlxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiIGRlbGF5PVwiMFwiIHR5cGU9XCJibGFja1wiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgcmVzcG9uc2liaWxpdHk/LkNvbnRyb2xJZCB9fSB7eyByZXNwb25zaWJpbGl0eT8udGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciByZXNwb25zaWJpbGl0eS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXNwb25zaWJpbGl0eT8uYXNzaWduZWVEZXRhaWxzWzBdPy5yZXNwb25zaWJpbGl0eUNlbnRlckluZm8gYXMgcmNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyYW0taW5uZXIgdngtZC1ibG9ja1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmFtLXZhbHVlIHZ4LWZzLTExIHZ4LWxhYmVsLXR4dCB2eC1wci01XCIgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByYz8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gcmNbMF0/Lm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnLS0nXG4gICAgICAgICAgICAgICAgICAgICAgXCIgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIiBkZWxheT1cIjBcIiB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e1xuICAgICAgICAgICAgICAgICAgICAgICAgcmM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgPyByY1swXT8ubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcIi0tXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmM/Lmxlbmd0aCBcbiAgICAgICAgICAgICAgICAgICAgICBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJyYz8ubGVuZ3RoID4gMVwiIGFwcFBvcG92ZXIgKGNsaWNrKT1cInJjUG9wdXAucG9wb3ZlcigpXCIgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3JhbS1jb3VudCB2eC1mcy0xMSB2eC1mdy01MDAgdngtdHh0LXdoaXRlIHZ4LXAtMCB2eC1wbC0xIHZ4LXByLTEgdngtbS0wIHZ4LWQtZmxleCB2eC1hbGlnbi1jZW50ZXIgdngtanVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAre3sgcmM/Lmxlbmd0aCAtIDEgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxhcHAtcG9wb3ZlciAjcmNQb3B1cD5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2YtYWN0aW9uLWxpc3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImFjdGlvbi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSBvZiByYz8uc2xpY2UoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmM/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhci1jYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidngtZC1ibG9jayB2eC13LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCIgW2FwcFRvb2x0aXBdPVwiZGF0YT8ubmFtZVwiIHBsYWNlbWVudD1cImJvdHRvbS1sZWZ0XCIgZGVsYXk9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYmxhY2tcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+e3sgZGF0YT8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9hcHAtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRhYmxlLWNvbHVtbiB2eC1wbC0xIHZ4LXByLTEgdngtZC1mbGV4IHZ4LWFsaWduLWNlbnRlciBhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9nZ2xlUmVzcG9uc2liaWxpdHkocmVzcG9uc2liaWxpdHkpXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNzaWduZWVEZXRhaWxzPy5sZW5ndGggPiAxOyBlbHNlIGNsb3NlSWNvblwiPlxuICAgICAgICAgICAgICAgICAgICA8aSAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuaWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjbG9zZUljb25cbiAgICAgICAgICAgICAgICAgICAgICBcIiBjbGFzcz1cImljb25zIHZ4LWZzLTEwXCI+JiN4ZTllNzs8L2k+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VJY29uPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbnMgdngtZnMtMTBcIj4gJiN4ZTllODs8L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxsaWItc3ViLXJlc3BvbnNpYmlsaXR5ICpuZ0lmPVwib3BlbmVkUmVzcG9uc2liaWxpdHkuaW5jbHVkZXMocmVzcG9uc2liaWxpdHkuaWQpXCJcbiAgICAgICAgICAgICAgW3Jlc3BvbnNpYmlsaXR5XT1cInJlc3BvbnNpYmlsaXR5XCJcbiAgICAgICAgICAgICAgKG9uQ29tcGxldGlvbkNoYW5nZSk9XCJvbkNvbXBsZXRpb25DaGFuZ2UoJGV2ZW50KVwiPjwvbGliLXN1Yi1yZXNwb25zaWJpbGl0eT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8YXBwLWZsb2F0aW5nLWJhciBbc2VsZWN0ZWREYXRhXT1cIltzZWxlY3RlZFJlc3BvbnNpYmlsaXR5VmFsdWVzPy5yZXNwb25zaWJpbGl0eV1cIiBbZGlzcGxheUVsZW1lbnRLZXldPVwiJ3RpdGxlJ1wiXG4gICAgICAoY2xvc2VMaXN0KT1cImJhY2soKVwiIChjbG9zZUV2ZW50KT1cInNhdmUoJGV2ZW50KVwiIChkZWxldGVFdmVudCk9XCJkZWxldGVJdGVtKCRldmVudClcIlxuICAgICAgW2lzRGlzYWJsZWRdPVwiIXNlbGVjdGVkUmVzcG9uc2liaWxpdHlWYWx1ZXM/LnJlc3BvbnNpYmlsaXR5Py5pZFwiPjwvYXBwLWZsb2F0aW5nLWJhcj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
|