@rangertechnologies/ngnxt 2.1.164 → 2.1.166
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/environments/version.mjs +2 -2
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +5 -4
- package/esm2022/lib/nxt-app.module.mjs +5 -3
- package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +14 -27
- package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +139 -19
- package/esm2022/lib/services/pdf-designer.service.mjs +11 -7
- package/esm2022/public-api.mjs +5 -1
- package/fesm2022/rangertechnologies-ngnxt.mjs +171 -57
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/nxt-app.module.d.ts +1 -1
- package/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.d.ts +154 -0
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
- package/rangertechnologies-ngnxt-2.1.166.tgz +0 -0
- package/rangertechnologies-ngnxt-2.1.164.tgz +0 -0
|
@@ -207,8 +207,13 @@ export class PdfDesignerService {
|
|
|
207
207
|
}
|
|
208
208
|
downloadElement() {
|
|
209
209
|
this.pdfElements.forEach(element => {
|
|
210
|
-
|
|
211
|
-
|
|
210
|
+
//AP-02JUN25 - Set a default value for 'date' type elements if no value is provided
|
|
211
|
+
const defaultDate = 'date';
|
|
212
|
+
if (element.type === 'date' && !element.value) {
|
|
213
|
+
element.value = defaultDate;
|
|
214
|
+
}
|
|
215
|
+
if (element.type === 'text' || 'input') {
|
|
216
|
+
element.value = (element.question || element.value || '').replace(/\\n/g, '\n');
|
|
212
217
|
}
|
|
213
218
|
if (element.subText && typeof element.subText === 'object') {
|
|
214
219
|
element.subText = JSON.stringify(element.subText);
|
|
@@ -233,12 +238,14 @@ export class PdfDesignerService {
|
|
|
233
238
|
convertToPdfLayout(input) {
|
|
234
239
|
const result = { content: [] };
|
|
235
240
|
const items = input[this.unique_id];
|
|
241
|
+
// AP-02JUN25 - Define nxtType for each item
|
|
236
242
|
const styleProps = (item) => ({
|
|
237
243
|
fontSize: item.fontSize || 14,
|
|
238
244
|
bold: item.fontStyle === 'bold' || item.fontWeight >= 700,
|
|
239
245
|
italics: item.fontStyle === 'italic',
|
|
240
246
|
alignment: item.alignItems || '',
|
|
241
|
-
margin: item.margin || [0, 0, 0, 0]
|
|
247
|
+
margin: item.margin || [0, 0, 0, 0],
|
|
248
|
+
nxtType: item.type || '',
|
|
242
249
|
});
|
|
243
250
|
const processItems = (items) => {
|
|
244
251
|
const rows = [];
|
|
@@ -252,9 +259,6 @@ export class PdfDesignerService {
|
|
|
252
259
|
currentRow = { columns: [] };
|
|
253
260
|
currentWidth = 0;
|
|
254
261
|
}
|
|
255
|
-
// if (item.type === 'text') {
|
|
256
|
-
// element.text = (item.question || item.value || '').replace(/\\n/g, '\n');
|
|
257
|
-
// }
|
|
258
262
|
if (item.type === "Space") {
|
|
259
263
|
currentRow.columns.push({ width, text: '', ...styleProps(item) });
|
|
260
264
|
}
|
|
@@ -386,4 +390,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
386
390
|
providedIn: 'root'
|
|
387
391
|
}]
|
|
388
392
|
}], ctorParameters: () => [{ type: i1.HttpClient }] });
|
|
389
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWRlc2lnbmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvc2VydmljZXMvcGRmLWRlc2lnbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFPbkQsTUFBTSxPQUFPLGtCQUFrQjtJQWdCVDtJQWZaLFdBQVcsR0FBVSxFQUFFLENBQUM7SUFDeEIsa0JBQWtCLEdBQUcsSUFBSSxlQUFlLENBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEQsc0JBQXNCLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxtQkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNyRCxnQkFBZ0IsR0FBNEIsSUFBSSxDQUFDO0lBQ3pELEdBQUcsQ0FBTTtJQUNULFNBQVMsQ0FBTTtJQUNmLFFBQVEsQ0FBUTtJQUVoQixZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5RCxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0QsY0FBYyxDQUFNO0lBQ3BCLGlCQUFpQixDQUFNO0lBRXZCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDbEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztJQUNILENBQUM7SUFDRCxhQUFhLENBQUMsR0FBUTtRQUNwQixtQ0FBbUM7UUFDbkMsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksUUFBUSxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsNENBQTRDO1FBQ3hDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUMzQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssS0FBSyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUMvQyxDQUFDLFFBQVEsRUFBRSxFQUFFO29CQUNYLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLDJDQUEyQztnQkFDMUYsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ1IsT0FBTyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3JDLENBQUMsQ0FDRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxRQUFRLENBQUE7UUFDOUIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUE7UUFFZCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUMsMENBQTBDO1lBQzFDLDhEQUE4RDtZQUM5RCxJQUFJO1lBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx5Q0FBeUM7SUFDekMsWUFBWSxDQUFDLE9BQWU7UUFDMUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSx3Q0FBd0MsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUEsMkNBQTJDO0lBQzNDLGdCQUFnQjtRQUNmLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUN2QixNQUFNLEtBQUssR0FBRyxrRUFBa0UsQ0FBQztRQUNqRixJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDWixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDNUIsRUFBRSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDL0QsQ0FBQztRQUNELE9BQU8sTUFBTSxHQUFDLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLEdBQUcsR0FBRztZQUNQLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUU7WUFDcEIsT0FBTyxFQUFFLFVBQVU7U0FDdEIsQ0FBQTtJQUNILENBQUM7SUFDRCx3Q0FBd0M7SUFDeEMsYUFBYTtRQUNYLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxzQ0FBc0M7SUFDdEMsbUJBQW1CO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxTQUEyQjtRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQ0FBZ0M7SUFDaEMsVUFBVSxDQUFDLE9BQVk7UUFFckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELCtCQUErQjtJQUMvQixlQUFlLENBQUMsT0FBWSxFQUFFLEdBQVE7UUFDcEMseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYztZQUFFLE9BQU87UUFDakMsdUJBQXVCO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUV6QyxxREFBcUQ7UUFDckQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV6RSxrREFBa0Q7UUFDbEQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDN0UsSUFBSSxjQUFjLEdBQUc7WUFDbkIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztZQUM1QixXQUFXLEVBQUUsS0FBSztZQUNsQixhQUFhLEVBQUUsS0FBSztZQUNwQixZQUFZLEVBQUUsS0FBSztZQUNuQixZQUFZLEVBQUUsSUFBSTtZQUNsQixTQUFTLEVBQUUsS0FBSztZQUNoQixlQUFlLEVBQUUsS0FBSztZQUN0QixZQUFZLEVBQUUsS0FBSztZQUNuQixTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDdkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEVBQUU7U0FDL0IsQ0FBQTtRQUNELElBQUksVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUV6RSxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pCLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQzVGLENBQUM7UUFFRCxpQ0FBaUM7UUFDakMsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN0QyxvQkFBb0I7UUFDcEIsNERBQTREO0lBQzlELENBQUM7SUFFRCxhQUFhLENBQUMsS0FBYSxFQUFFLE9BQXFCO1FBQ2hELE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRztnQkFDaEIsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUNsQixHQUFHLE9BQU87YUFDWCxDQUFDO1lBQ0YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBRUQsSUFBSSxLQUFLLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xELE1BQU0sY0FBYyxHQUFHO2dCQUNyQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUMxQixHQUFHLE9BQU87YUFDWCxDQUFDO1lBQ0EsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDcEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztnQkFDckQsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3hELENBQUM7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLGNBQWMsQ0FBQztZQUN6QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztJQUNELFdBQVcsQ0FBQyxLQUFVO1FBQ3BCLCtEQUErRDtRQUMvRCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUNELGtCQUFrQixDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQTtJQUMvQixDQUFDO0lBQ0QsMkNBQTJDO0lBQzNDLHVCQUF1QixDQUFDLEtBQVUsRUFBRSxLQUFVO1FBQzVDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM3QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQzVDLENBQUM7UUFDRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3hKLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLEVBQUUsZ0JBQWdCLENBQUE7UUFDcEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBQ0QsMEJBQTBCLENBQUMsS0FBYSxFQUFFLEtBQVU7UUFDbEQsa0NBQWtDO1FBQ2xDLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU5QyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFDLDZCQUE2QjtZQUM3QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDekcsMkJBQTJCO1lBQzNCLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUE7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFDRCwyQ0FBMkM7SUFDM0Msb0JBQW9CO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFDRCxhQUFhLENBQUMsS0FBVTtRQUN0QiwrQ0FBK0M7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3RDLEdBQUcsT0FBTztTQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUNELG1CQUFtQjtRQUNqQiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRSxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUMxQyxPQUFPLENBQUMsY0FBYyxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsMkNBQTJDO0lBQzNDLE9BQU87UUFDTCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVILGVBQWU7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxRCxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDM0QsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsSUFBSSxPQUFPLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDbEMsT0FBTyxPQUFPLENBQUMscUJBQXFCLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFeEQsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUMvQyxHQUFHLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLE9BQU8sR0FBRyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLEVBQUUsQ0FBQztvQkFDckQsR0FBRyxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBVTtRQUMzQixNQUFNLE1BQU0sR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztRQUMvQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBDLE1BQU0sVUFBVSxHQUFHLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUU7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRztZQUN6RCxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsS0FBSyxRQUFRO1lBQ3BDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDaEMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDcEMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsQ0FBQyxLQUFZLEVBQVMsRUFBRTtZQUMzQyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDaEIsSUFBSSxVQUFVLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDakMsSUFBSSxZQUFZLEdBQUcsQ0FBQyxDQUFDO1lBRXJCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDO2dCQUNoQyxJQUFJLE9BQU8sR0FBUSxFQUFFLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO2dCQUVsRCxJQUFJLFlBQVksR0FBRyxLQUFLLEdBQUcsR0FBRyxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3RCLFVBQVUsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDN0IsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDbkIsQ0FBQztnQkFDRCw4QkFBOEI7Z0JBQzlCLDhFQUE4RTtnQkFDOUUsSUFBSTtnQkFDSixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQzFCLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUVwRSxDQUFDO3FCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztvQkFDaEMsT0FBTyxDQUFDLE1BQU0sR0FBRzt3QkFDZjs0QkFDRSxJQUFJLEVBQUUsTUFBTTs0QkFDWixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDOzRCQUNoQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDOzRCQUNoQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxHQUFHOzRCQUNsQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxDQUFDOzRCQUNoQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDOzRCQUM5QixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsSUFBSSxTQUFTO3lCQUN2QztxQkFDRixDQUFDO29CQUNGLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUVuQyxDQUFDO3FCQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNwRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsSUFBSSxFQUFFLENBQUM7b0JBQ3BHLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFFcEQsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDdEIsVUFBVSxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDO3dCQUM3QixZQUFZLEdBQUcsQ0FBQyxDQUFDO29CQUNuQixDQUFDO29CQUNELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQztnQkFFOUIsQ0FBQztxQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQ2pDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO29CQUMzQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3RELE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUN4RCxNQUFNLGNBQWMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUV4RCxNQUFNLElBQUksR0FBWSxFQUFFLENBQUM7b0JBRXpCLGdCQUFnQjtvQkFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDaEMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLO3dCQUNmLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztxQkFDcEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFTCxjQUFjO29CQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ2hDLElBQUksRUFBRSxHQUFHLENBQUMsT0FBTzt3QkFDakIsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDO3FCQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUVMLGVBQWU7b0JBQ2YsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO3dCQUM3QixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQzt3QkFDNUUsR0FBRyxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7d0JBQ2pFLEdBQUcsQ0FBQyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUNuRSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNqQixDQUFDLENBQUMsQ0FBQztvQkFFSCxPQUFPLEdBQUc7d0JBQ1IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRzt3QkFDeEIsS0FBSyxFQUFFOzRCQUNMLElBQUk7NEJBQ0osTUFBTSxFQUFFLElBQUksS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7eUJBQzFDO3dCQUNELE1BQU0sRUFBRSxzQkFBc0I7d0JBQzlCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztxQkFDcEIsQ0FBQztvQkFDRixVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFbkMsQ0FBQztxQkFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQ2pDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUN0QixLQUFLO3dCQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUU7d0JBQzNCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO3dCQUM1QyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUM7cUJBQ3BCLENBQUMsQ0FBQztnQkFFTCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7b0JBQzdCLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO3dCQUN0QixLQUFLO3dCQUNMLElBQUksRUFBRSxHQUFHO3dCQUNULEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztxQkFDcEIsQ0FBQyxDQUFDO2dCQUNMLENBQUM7Z0JBRUQsWUFBWSxJQUFJLEtBQUssQ0FBQztnQkFFdEIsSUFBSSxZQUFZLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3RCLFVBQVUsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsQ0FBQztvQkFDN0IsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDbkIsQ0FBQztZQUNILENBQUM7WUFFRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hCLENBQUM7WUFFRCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FBQztRQUVGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDQyx3Q0FBd0M7SUFDeEMsbUJBQW1CLENBQUMsZUFBc0I7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQUcsZUFBZSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUNELDBCQUEwQjtJQUMxQix1REFBdUQ7SUFDdkQsc0JBQXNCLENBQUMsRUFBTztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLEVBQUU7WUFDeEMsSUFBSSxPQUFPLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELGdDQUFnQztJQUNoQyxhQUFhLENBQUMsS0FBVSxFQUFFLE9BQVk7UUFDcEMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEIsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQTtZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztZQUM1QixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7d0dBNVpVLGtCQUFrQjs0R0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVsZW1lbnRDb21wb25lbnQgfSBmcm9tICcuLi9wYWdlcy9idWlsZGVyL2VsZW1lbnQvZWxlbWVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGRmRGVzaWduZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBwZGZFbGVtZW50czogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBwZGZFbGVtZW50c1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueVtdPihbXSk7XG4gIHByaXZhdGUgc2VsZWN0ZWRFbGVtZW50U3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigtMSk7XG4gIHByaXZhdGUgc2VsZWN0SGVhZGVyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8YW55PihudWxsKTtcbiAgcHJpdmF0ZSBlbGVtZW50Q29tcG9uZW50OiBFbGVtZW50Q29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG4gIHBkZjogYW55O1xuICB1bmlxdWVfaWQ6IGFueTtcbiAgdGVtcEVsZW06IGFueVtdO1xuXG4gIHBkZkVsZW1lbnRzJCA9IHRoaXMucGRmRWxlbWVudHNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICBzZWxlY3RlZEVsZW1lbnQkID0gdGhpcy5zZWxlY3RlZEVsZW1lbnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICBzZWxlY3RIZWFkZXJTdWJqZWN0JCA9IHRoaXMuc2VsZWN0SGVhZGVyU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgY3VycmVudEVsZW1lbnQ6IGFueTtcbiAgc2VsZWN0VGFibGVDb2x1bW46IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHtcbiAgICAvLyBMb2FkIHNhdmVkIGVsZW1lbnRzIGZyb20gbG9jYWxTdG9yYWdlXG4gICAgdGhpcy5wZGZFbGVtZW50cyA9IFtdO1xuICAgIGNvbnN0IHNhdmVkUGRmRWxlbWVudHMgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgncGRmRWxlbWVudHMnKTtcbiAgICBpZiAoc2F2ZWRQZGZFbGVtZW50cykge1xuICAgICAgdGhpcy5wZGZFbGVtZW50cyA9IEpTT04ucGFyc2Uoc2F2ZWRQZGZFbGVtZW50cyk7XG4gICAgICB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLnBkZkVsZW1lbnRzXSk7XG4gICAgfVxuICB9XG4gIGludGlhbGl6ZUJvb2socGRmOiBhbnkpIHtcbiAgICAvLyAgLSBHZXQgdGhlIHVuaXF1ZSBpZCBpbiB0aGUgcGRmIFxuICAgIHRoaXMudW5pcXVlX2lkID0gT2JqZWN0LmtleXMocGRmKVswXTtcbiAgICBsZXQgdGVtcGJvb2sgPSBwZGZbdGhpcy51bmlxdWVfaWRdO1xuLy8gU0tTMjhNQVIyNSB1cGRhdGUgbmVzdGVkIHBkZiBRdWVzdGlvbnNNYXBcbiAgICB0ZW1wYm9vay5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBpZiAoZWxlbWVudC50eXBlID09PSBcInBkZlwiICYmIGVsZW1lbnQucGRmUmVmZXJlbmNlKSB7XG4gICAgICAgIHRoaXMuZ2V0UmVmUWJEYXRhKGVsZW1lbnQucGRmUmVmZXJlbmNlKS5zdWJzY3JpYmUoXG4gICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBlbGVtZW50WydwZGZSZWZlcmVuY2VRdWVzdGlvbnMnXSA9IHJlc3BvbnNlOyAvLyBBc3NpZ24gcmVzcG9uc2UgdG8gcGRmUmVmZXJlbmNlUXVlc3Rpb25zXG4gICAgICAgICAgfSxcbiAgICAgICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJBUEkgRXJyb3I6XCIsIGVycm9yKTtcbiAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcGRmW3RoaXMudW5pcXVlX2lkXSA9IHRlbXBib29rXG4gICAgdGhpcy5wZGYgPSBwZGZcblxuICAgIHRoaXMucGRmW3RoaXMudW5pcXVlX2lkXT8uZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIC8vIGlmICh0aGlzLnBkZi5zcU9wdGlvbnM/LltlbGVtZW50LmlkXSkge1xuICAgICAgLy8gICBlbGVtZW50Lm9wdGlvbnMgPSB0aGlzLnBkZi5zcU9wdGlvbnNbZWxlbWVudC5pZF0ub3B0aW9ucztcbiAgICAgIC8vIH1cbiAgICAgIHRoaXMuYWRkRWxlbWVudChlbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vU0tTMjhNQVIyNSBGdW5jdGlvbiB0byBmZXRjaCByZWZxYiBkYXRhXG4gIGdldFJlZlFiRGF0YShyZWZxYmlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PGFueT4oYGh0dHBzOi8vZGV2LWFwaS52YWxhcmhyLmNvbS9ueHQ/bmFtZT0ke3JlZnFiaWR9YCk7XG4gIH1cblxuICAgLy9BUC0xN0FQUjI1IEZ1bmN0aW9uIHRvIGdlbmVyYXRlIHVuaXF1ZSBpZFxuICAgYWRkRWxlbWVudFdpdGhJZCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9ICduZ254dCc7IFxuICAgIGNvbnN0IGNoYXJzID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8nO1xuICAgIGxldCBpZCA9ICcnO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTE7IGkrKykge1xuICAgICAgaWQgKz0gY2hhcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJzLmxlbmd0aCkpO1xuICAgIH1cbiAgICByZXR1cm4gcHJlZml4K2lkO1xuICB9XG5cbiAgbmV3Qm9vaygpIHtcbiAgICB0aGlzLnVuaXF1ZV9pZCA9IHRoaXMuYWRkRWxlbWVudFdpdGhJZCgpO1xuICAgIHRoaXMucGRmID0ge1xuICAgICAgICBbdGhpcy51bmlxdWVfaWRdOiBbXSxcbiAgICAgICAgJ3RpdGxlJzogJ1VudGl0bGVkJyxcbiAgICB9XG4gIH1cbiAgLy8gQVAgMjZGRUIyNSAtIGNsZWFyIHRoZSBmb3JtIGVsZW1lbnRzIFxuICBjbGVhckVsZW1lbnRzKCkge1xuICAgIHRoaXMucGRmRWxlbWVudHMgPSBbXTtcbiAgICB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLnBkZkVsZW1lbnRzXSk7XG4gIH1cbiAgLy8gR2V0IHRoZSBlbGVtZW50IGNvbXBvbmVudCByZWZlcmVuY2VcbiAgZ2V0RWxlbWVudENvbXBvbmVudCgpOiBFbGVtZW50Q29tcG9uZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudENvbXBvbmVudDtcbiAgfVxuXG4gIHNldEVsZW1lbnRDb21wb25lbnQoY29tcG9uZW50OiBFbGVtZW50Q29tcG9uZW50KSB7XG4gICAgdGhpcy5lbGVtZW50Q29tcG9uZW50ID0gY29tcG9uZW50O1xuICB9XG5cbiAgLy8gQWRkIGEgbmV3IGVsZW1lbnQgdG8gdGhlIGZvcm1cbiAgYWRkRWxlbWVudChlbGVtZW50OiBhbnkpOiB2b2lkIHtcbiAgICBcbiAgICB0aGlzLnBkZkVsZW1lbnRzLnB1c2goZWxlbWVudCk7XG4gICAgdGhpcy5wZGZFbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5wZGZFbGVtZW50c10pO1xuICB9XG4gIC8vIFNLUzEzTUFSMjUgYWRkIHRhYmxlIGVsZW1lbnRcbiAgYWRkVGFibGVFbGVtZW50KGVsZW1lbnQ6IGFueSwgaW5kIDphbnkpIHtcbiAgICAvL1NLUzEzTUFSMjUgRW5zdXJlIGN1cnJlbnRFbGVtZW50IGV4aXN0c1xuICAgIGlmICghdGhpcy5jdXJyZW50RWxlbWVudCkgcmV0dXJuO1xuICAgIC8vIENsb25lIGVsZW1lbnRzIGFycmF5XG4gICAgY29uc3QgZWxlbWVudHMgPSBbLi4udGhpcy5nZXRFbGVtZW50cygpXTtcblxuICAgIC8vIFNLUzEzTUFSMjUgRmluZCB0aGUgZWxlbWVudCBhbmQgdXBkYXRlIGl0cyBjb2x1bW5zXG4gICAgY29uc3QgaW5kZXggPSBlbGVtZW50cy5maW5kSW5kZXgoZWwgPT4gZWwuaWQgPT09IHRoaXMuY3VycmVudEVsZW1lbnQuaWQpO1xuXG4gICAgLy8gQ2xvbmUgY29sdW1ucyBhcnJheSB0byB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICBjb25zdCB1cGRhdGVkQ29sdW1ucyA9IFsuLi4odGhpcy5wZGZFbGVtZW50c1tpbmRleF0uY29sdW1ucyB8fCBbXSksIGVsZW1lbnRdO1xuICAgIGxldCB0ZW1wRmllbGRzTWV0YSA9IHtcbiAgICAgICdsYWJlbCc6IGVsZW1lbnQubGFiZWwsXG4gICAgICAnYXBpTmFtZSc6IGVsZW1lbnQuZmllbGROYW1lLFxuICAgICAgXCJpc2RlbGV0ZWRcIjogZmFsc2UsXG4gICAgICBcIm9yZGVyYnlmbGFnXCI6IGZhbHNlLFxuICAgICAgXCJmaWx0ZXJmbGFnXCI6IGZhbHNlLFxuICAgICAgXCJvdXRwdXRGbGFnXCI6IHRydWUsXG4gICAgICBcImlzY2hpbGRcIjogZmFsc2UsXG4gICAgICBcInJlc3VsdGFudGZsYWdcIjogZmFsc2UsXG4gICAgICBcInNlYXJjaGZsYWdcIjogZmFsc2UsXG4gICAgICBcImZsZFR5cGVcIjogZWxlbWVudC50eXBlLFxuICAgICAgXCJyZWFkT25seVwiOiBmYWxzZSxcbiAgICAgIFwidW5pcXVlSWRlbnRpZmllclwiOiBlbGVtZW50LmlkXG4gICAgfVxuICAgIGxldCBmaWVsZHNNZXRhID0gWy4uLnRoaXMucGRmRWxlbWVudHNbaW5kZXhdLmZpZWxkc01ldGEsIHRlbXBGaWVsZHNNZXRhXTtcblxuICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgIGVsZW1lbnRzW2luZGV4XSA9IHsgLi4uZWxlbWVudHNbaW5kZXhdLCBjb2x1bW5zOiB1cGRhdGVkQ29sdW1ucywgZmllbGRzTWV0YTogZmllbGRzTWV0YSB9O1xuICAgIH1cblxuICAgIC8vIEVtaXQgdGhlIHVwZGF0ZWQgZm9ybSBlbGVtZW50c1xuICAgIC8vIHRoaXMucGRmRWxlbWVudHNTdWJqZWN0Lm5leHQoZWxlbWVudHMpO1xuICAgIHRoaXMucGRmRWxlbWVudHMgPSBlbGVtZW50cztcbiAgICB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi5lbGVtZW50c10pO1xuICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50U3ViamVjdC5uZXh0KGluZCk7XG4gICAgLy8gTG9nIGZvciBkZWJ1Z2dpbmdcbiAgICAvLyBjb25zb2xlLmxvZyhcIlVwZGF0ZWQgZm9ybSBlbGVtZW50czpcIiwgIHRoaXMucGRmRWxlbWVudHMpO1xuICB9XG5cbiAgdXBkYXRlRWxlbWVudChpbmRleDogbnVtYmVyLCB1cGRhdGVzOiBQYXJ0aWFsPGFueT4pIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IFsuLi50aGlzLmdldEVsZW1lbnRzKCldO1xuICAgIGlmIChlbGVtZW50c1tpbmRleF0pIHtcbiAgICAgIGVsZW1lbnRzW2luZGV4XSA9IHtcbiAgICAgICAgLi4uZWxlbWVudHNbaW5kZXhdLFxuICAgICAgICAuLi51cGRhdGVzLFxuICAgICAgfTtcbiAgICAgIHRoaXMucGRmRWxlbWVudHNTdWJqZWN0Lm5leHQoZWxlbWVudHMpO1xuICAgIH1cblxuICAgIGlmIChpbmRleCA+PSAwICYmIGluZGV4IDwgdGhpcy5wZGZFbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IHVwZGF0ZWRFbGVtZW50ID0ge1xuICAgICAgICAuLi50aGlzLnBkZkVsZW1lbnRzW2luZGV4XSxcbiAgICAgICAgLi4udXBkYXRlc1xuICAgICAgfTtcbiAgICAgICAgaWYgKGVsZW1lbnRzW2luZGV4XSkge1xuICAgICAgICAgIGVsZW1lbnRzW2luZGV4XSA9IHsgLi4uZWxlbWVudHNbaW5kZXhdLCAuLi51cGRhdGVzIH07XG4gICAgICAgICAgdGhpcy5wZGZFbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgICAgICAgIHRoaXMucGRmRWxlbWVudHNTdWJqZWN0Lm5leHQoWy4uLnRoaXMucGRmRWxlbWVudHNdKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5wZGZFbGVtZW50c1tpbmRleF0gPSB1cGRhdGVkRWxlbWVudDtcbiAgICAgIHRoaXMucGRmRWxlbWVudHNTdWJqZWN0Lm5leHQoWy4uLnRoaXMucGRmRWxlbWVudHNdKTtcbiAgICB9XG4gIH1cbiAgdXBkYXRlVGl0bGUoZXZlbnQ6IGFueSkge1xuICAgIC8vQVAtMTBNQVIyNSBVcGRhdGVzIHRoZSB0aXRsZSBvZiB0aGUgZmlyc3QgcmVjb3JkIGluIHRoZSBwZGYgIFxuICAgIHRoaXMucGRmLnRpdGxlID0gZXZlbnQ7XG4gIH1cbiAgc2V0U2VsZWN0ZWRFbGVtZW50KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudFN1YmplY3QubmV4dChpbmRleCk7XG4gICAgdGhpcy5jdXJyZW50RWxlbWVudCA9IHRoaXMucGRmRWxlbWVudHNbaW5kZXhdXG4gICAgdGhpcy5zZWxlY3RUYWJsZUNvbHVtbiA9IG51bGxcbiAgfVxuICAvLyBTS1MxOU1BUjI1IHNldCB0aGUgc2VsZWN0ZWQgdGFibGUgY29sdW1uXG4gIHNldFNlbGVjdGVkVGFibGVFbGVtZW50KGluZGV4OiBhbnksIGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0gdGhpcy5wZGZFbGVtZW50c1tpbmRleF1cbiAgICBpZiAodGhpcy5jdXJyZW50RWxlbWVudD8udHlwZSA9PT0gJ1RhYmxlJykge1xuICAgIH1cbiAgICBjb25zdCBmb3VuZEl0ZW0gPSB0aGlzLmN1cnJlbnRFbGVtZW50Py50eXBlID09PSAnVGFibGUnID8gdGhpcy5jdXJyZW50RWxlbWVudFsnZmllbGRzTWV0YSddLmZpbmQoaXRlbSA9PiBpdGVtWydhcGlOYW1lJ10gPT09IGV2ZW50Py5jb2x1bW4pIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuc2VsZWN0VGFibGVDb2x1bW4gPSBmb3VuZEl0ZW0/LnVuaXF1ZUlkZW50aWZpZXJcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudFN1YmplY3QubmV4dChpbmRleCk7XG4gIH1cbiAgcmVtb3ZlU2VsZWN0ZWRUYWJsZUVsZW1lbnQoaW5kZXg6IG51bWJlciwgZXZlbnQ6IGFueSkge1xuICAgIC8vIGNvbnNvbGUubG9nKFwiZGRkXCIsaW5kZXgsIGV2ZW50KVxuICAgIHRoaXMuY3VycmVudEVsZW1lbnQgPSB0aGlzLnBkZkVsZW1lbnRzW2luZGV4XTtcblxuICAgIGlmICh0aGlzLmN1cnJlbnRFbGVtZW50Py50eXBlID09PSAnVGFibGUnKSB7XG4gICAgICAvLyBGaW5kIHRoZSBpbmRleCBvZiB0aGUgaXRlbVxuICAgICAgY29uc3QgaXRlbUluZGV4ID0gdGhpcy5jdXJyZW50RWxlbWVudFsnZmllbGRzTWV0YSddLmZpbmRJbmRleChpdGVtID0+IGl0ZW1bJ2FwaU5hbWUnXSA9PT0gZXZlbnQ/LmNvbHVtbik7XG4gICAgICAvLyBSZW1vdmUgdGhlIGl0ZW0gaWYgZm91bmRcbiAgICAgIGlmIChpdGVtSW5kZXggIT09IC0xKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEVsZW1lbnRbJ2ZpZWxkc01ldGEnXS5zcGxpY2UoaXRlbUluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3RUYWJsZUNvbHVtbiA9IG51bGxcbiAgICB0aGlzLmVsZW1lbnRVcGRhdGUoaW5kZXgsIHRoaXMuY3VycmVudEVsZW1lbnQpXG4gIH1cbiAgLy8gU0tTMTlNQVIyNSBnZXQgdGhlIHNlbGVjdGVkIHRhYmxlIGNvbHVtblxuICBnZXRTZWxlY3RUYWJsZUNvbHVtbigpIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RUYWJsZUNvbHVtbjtcbiAgfVxuICBzZWxlY3RIZWFkaW5nKGV2ZW50OiBhbnkpIHtcbiAgICAvL0FQLTEwTUFSMjUgRW1pdHMgdGhlIHNlbGVjdGVkIGhlYWRpbmcgZXZlbnQgIFxuICAgIHRoaXMuc2VsZWN0SGVhZGVyU3ViamVjdC5uZXh0KGV2ZW50KTtcbiAgfVxuXG4gIGdldEVsZW1lbnRzKCk6IGFueVtdIHtcbiAgICByZXR1cm4gdGhpcy5wZGZFbGVtZW50cy5tYXAoZWxlbWVudCA9PiAoe1xuICAgICAgLi4uZWxlbWVudFxuICAgIH0pKTtcbiAgfVxuICBzb3J0RWxlbWVudHNCeU9yZGVyKCk6IHZvaWQge1xuICAgIC8vQVAtMTBNQVIyNSBTb3J0IGVsZW1lbnRzIGJ5IGN1cnJlbnQgb3JkZXJcbiAgICB0aGlzLnBkZkVsZW1lbnRzLnNvcnQoKGEsIGIpID0+IGEucXVlc3Rpb25OdW1iZXIgLSBiLnF1ZXN0aW9uTnVtYmVyKTtcbiAgICB0aGlzLnBkZkVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQsIGluZGV4KSA9PiB7XG4gICAgICBlbGVtZW50LnF1ZXN0aW9uTnVtYmVyID0gaW5kZXggKyAxO1xuICAgIH0pO1xuICAgIHRoaXMucGRmRWxlbWVudHNTdWJqZWN0Lm5leHQoWy4uLnRoaXMucGRmRWxlbWVudHNdKTtcbiAgfVxuICAvL0FQLTEwTUFSMjUgUmV0dXJucyB0aGUgY3VycmVudCBwZGYgZGF0YSAgXG4gIGdldEJvb2soKSB7XG4gICAgcmV0dXJuIHRoaXMucGRmO1xuICB9XG5cbmRvd25sb2FkRWxlbWVudCgpIHtcbiAgdGhpcy5wZGZFbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgZWxlbWVudC52YWx1ZSA9IGVsZW1lbnQucXVlc3Rpb24gfHwgZWxlbWVudC52YWx1ZSB8fCAnJztcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQuc3ViVGV4dCAmJiB0eXBlb2YgZWxlbWVudC5zdWJUZXh0ID09PSAnb2JqZWN0Jykge1xuICAgICAgZWxlbWVudC5zdWJUZXh0ID0gSlNPTi5zdHJpbmdpZnkoZWxlbWVudC5zdWJUZXh0KTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQucGRmUmVmZXJlbmNlUXVlc3Rpb25zKSB7XG4gICAgICBkZWxldGUgZWxlbWVudC5wZGZSZWZlcmVuY2VRdWVzdGlvbnM7XG4gICAgfVxuICB9KTtcblxuICB0aGlzLnBkZlt0aGlzLnVuaXF1ZV9pZF0gPSB0aGlzLnBkZkVsZW1lbnRzO1xuICB0aGlzLnBkZlsncGRmSnNvbiddID0gdGhpcy5jb252ZXJ0VG9QZGZMYXlvdXQodGhpcy5wZGYpO1xuXG4gIC8vIFNjYWxlIHdpZHRocyBmb3IgY29sdW1uc1xuICB0aGlzLnBkZj8ucGRmSnNvbj8uY29udGVudD8uZm9yRWFjaCgocm93OiBhbnkpID0+IHtcbiAgICByb3cuY29sdW1ucz8uZm9yRWFjaCgoY29sOiBhbnkpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgY29sLndpZHRoID09PSAnbnVtYmVyJyAmJiBjb2wud2lkdGggPCA1MjApIHtcbiAgICAgICAgY29sLndpZHRoID0gY29sLndpZHRoICogNS4yO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcblxuICBjb25zb2xlLmxvZygncGRmJywgdGhpcy5wZGYucGRmSnNvbik7XG4gIHJldHVybiB0aGlzLnBkZjtcbn1cblxuY29udmVydFRvUGRmTGF5b3V0KGlucHV0OiBhbnkpOiBhbnkge1xuICBjb25zdCByZXN1bHQgPSB7IGNvbnRlbnQ6IFtdIH07XG4gIGNvbnN0IGl0ZW1zID0gaW5wdXRbdGhpcy51bmlxdWVfaWRdO1xuXG4gIGNvbnN0IHN0eWxlUHJvcHMgPSAoaXRlbTogYW55KSA9PiAoe1xuICAgIGZvbnRTaXplOiBpdGVtLmZvbnRTaXplIHx8IDE0LFxuICAgIGJvbGQ6IGl0ZW0uZm9udFN0eWxlID09PSAnYm9sZCcgfHwgaXRlbS5mb250V2VpZ2h0ID49IDcwMCxcbiAgICBpdGFsaWNzOiBpdGVtLmZvbnRTdHlsZSA9PT0gJ2l0YWxpYycsXG4gICAgYWxpZ25tZW50OiBpdGVtLmFsaWduSXRlbXMgfHwgJycsXG4gICAgbWFyZ2luOiBpdGVtLm1hcmdpbiB8fCBbMCwgMCwgMCwgMF1cbiAgfSk7XG5cbiAgY29uc3QgcHJvY2Vzc0l0ZW1zID0gKGl0ZW1zOiBhbnlbXSk6IGFueVtdID0+IHtcbiAgICBjb25zdCByb3dzID0gW107XG4gICAgbGV0IGN1cnJlbnRSb3cgPSB7IGNvbHVtbnM6IFtdIH07XG4gICAgbGV0IGN1cnJlbnRXaWR0aCA9IDA7XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gaXRlbS53aWR0aCB8fCAxMDA7XG4gICAgICBsZXQgZWxlbWVudDogYW55ID0geyB3aWR0aCwgLi4uc3R5bGVQcm9wcyhpdGVtKSB9O1xuXG4gICAgICBpZiAoY3VycmVudFdpZHRoICsgd2lkdGggPiAxMDApIHtcbiAgICAgICAgcm93cy5wdXNoKGN1cnJlbnRSb3cpO1xuICAgICAgICBjdXJyZW50Um93ID0geyBjb2x1bW5zOiBbXSB9O1xuICAgICAgICBjdXJyZW50V2lkdGggPSAwO1xuICAgICAgfVxuICAgICAgLy8gaWYgKGl0ZW0udHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAvLyAgIGVsZW1lbnQudGV4dCA9IChpdGVtLnF1ZXN0aW9uIHx8IGl0ZW0udmFsdWUgfHwgJycpLnJlcGxhY2UoL1xcXFxuL2csICdcXG4nKTtcbiAgICAgIC8vIH1cbiAgICAgIGlmIChpdGVtLnR5cGUgPT09IFwiU3BhY2VcIikge1xuICAgICAgICBjdXJyZW50Um93LmNvbHVtbnMucHVzaCh7IHdpZHRoLCB0ZXh0OiAnJywgLi4uc3R5bGVQcm9wcyhpdGVtKSB9KTtcblxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdMaW5lJykge1xuICAgICAgICBlbGVtZW50LmNhbnZhcyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0eXBlOiAnbGluZScsXG4gICAgICAgICAgICB4MTogaXRlbS54MSA/PyAwLFxuICAgICAgICAgICAgeTE6IGl0ZW0ueTEgPz8gMCxcbiAgICAgICAgICAgIHgyOiBpdGVtLngyID8/IDUyMCxcbiAgICAgICAgICAgIHkyOiBpdGVtLnkyID8/IDAsXG4gICAgICAgICAgICBsaW5lV2lkdGg6IGl0ZW0ubGluZVdpZHRoID8/IDEsXG4gICAgICAgICAgICBsaW5lQ29sb3I6IGl0ZW0ubGluZUNvbG9yID8/ICcjMDAwMDAwJ1xuICAgICAgICAgIH1cbiAgICAgICAgXTtcbiAgICAgICAgY3VycmVudFJvdy5jb2x1bW5zLnB1c2goZWxlbWVudCk7XG5cbiAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSBcIlBkZlwiICYmIGl0ZW0ucGRmUmVmZXJlbmNlKSB7XG4gICAgICAgIGNvbnN0IG5lc3RlZFF1ZXN0aW9ucyA9IGlucHV0W3RoaXMudW5pcXVlX2lkXS5maW5kKHEgPT4gcS5pZCA9PT0gaXRlbS5wZGZSZWZlcmVuY2UpPy5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgY29uc3QgbmVzdGVkQ29udGVudCA9IHByb2Nlc3NJdGVtcyhuZXN0ZWRRdWVzdGlvbnMpO1xuXG4gICAgICAgIGlmIChjdXJyZW50Um93LmNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJvd3MucHVzaChjdXJyZW50Um93KTtcbiAgICAgICAgICBjdXJyZW50Um93ID0geyBjb2x1bW5zOiBbXSB9O1xuICAgICAgICAgIGN1cnJlbnRXaWR0aCA9IDA7XG4gICAgICAgIH1cbiAgICAgICAgcm93cy5wdXNoKC4uLm5lc3RlZENvbnRlbnQpO1xuXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ1RhYmxlJykge1xuICAgICAgICBjb25zdCB0YWJsZUNvbHVtbnMgPSBpdGVtLmZpZWxkc01ldGEgfHwgW107XG4gICAgICAgIGNvbnN0IHZpc2libGVDb3VudCA9IE1hdGgubWluKDMsIHRhYmxlQ29sdW1ucy5sZW5ndGgpO1xuICAgICAgICBjb25zdCBtYWluQ29sdW1ucyA9IHRhYmxlQ29sdW1ucy5zbGljZSgwLCB2aXNpYmxlQ291bnQpO1xuICAgICAgICBjb25zdCBzdW1tYXJ5Q29sdW1ucyA9IHRhYmxlQ29sdW1ucy5zbGljZSh2aXNpYmxlQ291bnQpO1xuXG4gICAgICAgIGNvbnN0IGJvZHk6IGFueVtdW10gPSBbXTtcblxuICAgICAgICAvLyBUYWJsZSBoZWFkZXJzXG4gICAgICAgIGJvZHkucHVzaChtYWluQ29sdW1ucy5tYXAoY29sID0+ICh7XG4gICAgICAgICAgdGV4dDogY29sLmxhYmVsLFxuICAgICAgICAgIC4uLnN0eWxlUHJvcHMoaXRlbSlcbiAgICAgICAgfSkpKTtcblxuICAgICAgICAvLyBGaWVsZCBuYW1lc1xuICAgICAgICBib2R5LnB1c2gobWFpbkNvbHVtbnMubWFwKGNvbCA9PiAoe1xuICAgICAgICAgIHRleHQ6IGNvbC5hcGlOYW1lLFxuICAgICAgICAgIC4uLnN0eWxlUHJvcHMoaXRlbSlcbiAgICAgICAgfSkpKTtcblxuICAgICAgICAvLyBTdW1tYXJ5IHJvd3NcbiAgICAgICAgc3VtbWFyeUNvbHVtbnMuZm9yRWFjaCgoY29sKSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93ID0gbmV3IEFycmF5KHZpc2libGVDb3VudCkuZmlsbCh7IHRleHQ6ICcnLCAuLi5zdHlsZVByb3BzKGl0ZW0pIH0pO1xuICAgICAgICAgIHJvd1t2aXNpYmxlQ291bnQgLSAyXSA9IHsgdGV4dDogY29sLmxhYmVsLCAuLi5zdHlsZVByb3BzKGl0ZW0pIH07XG4gICAgICAgICAgcm93W3Zpc2libGVDb3VudCAtIDFdID0geyB0ZXh0OiBjb2wuYXBpTmFtZSwgLi4uc3R5bGVQcm9wcyhpdGVtKSB9O1xuICAgICAgICAgIGJvZHkucHVzaChyb3cpO1xuICAgICAgICB9KTtcblxuICAgICAgICBlbGVtZW50ID0ge1xuICAgICAgICAgIHdpZHRoOiBpdGVtLndpZHRoIHx8IDUyMCxcbiAgICAgICAgICB0YWJsZToge1xuICAgICAgICAgICAgYm9keSxcbiAgICAgICAgICAgIHdpZHRoczogbmV3IEFycmF5KHZpc2libGVDb3VudCkuZmlsbCgnKicpXG4gICAgICAgICAgfSxcbiAgICAgICAgICBsYXlvdXQ6ICdsaWdodEhvcml6b250YWxMaW5lcycsXG4gICAgICAgICAgLi4uc3R5bGVQcm9wcyhpdGVtKVxuICAgICAgICB9O1xuICAgICAgICBjdXJyZW50Um93LmNvbHVtbnMucHVzaChlbGVtZW50KTtcblxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09ICdpbWFnZScpIHtcbiAgICAgICAgY3VycmVudFJvdy5jb2x1bW5zLnB1c2goe1xuICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgIGltYWdlOiBpdGVtLmltYWdlRGF0YSB8fCAnJyxcbiAgICAgICAgICBmaXQ6IFtpdGVtLndpZHRoIHx8IDEwMCwgaXRlbS5oZWlnaHQgfHwgMTAwXSxcbiAgICAgICAgICAuLi5zdHlsZVByb3BzKGl0ZW0pXG4gICAgICAgIH0pO1xuXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB2YWwgPSBpdGVtLnZhbHVlIHx8ICcnO1xuICAgICAgICBjdXJyZW50Um93LmNvbHVtbnMucHVzaCh7XG4gICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgdGV4dDogdmFsLFxuICAgICAgICAgIC4uLnN0eWxlUHJvcHMoaXRlbSlcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGN1cnJlbnRXaWR0aCArPSB3aWR0aDtcblxuICAgICAgaWYgKGN1cnJlbnRXaWR0aCA9PT0gMTAwKSB7XG4gICAgICAgIHJvd3MucHVzaChjdXJyZW50Um93KTtcbiAgICAgICAgY3VycmVudFJvdyA9IHsgY29sdW1uczogW10gfTtcbiAgICAgICAgY3VycmVudFdpZHRoID0gMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY3VycmVudFJvdy5jb2x1bW5zLmxlbmd0aCA+IDApIHtcbiAgICAgIHJvd3MucHVzaChjdXJyZW50Um93KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm93cztcbiAgfTtcblxuICByZXN1bHQuY29udGVudCA9IHByb2Nlc3NJdGVtcyhpdGVtcyk7XG4gIHJldHVybiByZXN1bHQ7XG59XG4gIC8vIEFQLTA2TUFSMjUgLSBFbGVtZW50IG5ldyBvcmRlciB1cGRhdGVcbiAgdXBkYXRlRWxlbWVudHNPcmRlcih1cGRhdGVkRWxlbWVudHM6IGFueVtdKTogdm9pZCB7XG4gICAgdGhpcy5wZGZFbGVtZW50cyA9IFsuLi51cGRhdGVkRWxlbWVudHNdO1xuICAgIHRoaXMucGRmRWxlbWVudHNTdWJqZWN0Lm5leHQodGhpcy5wZGZFbGVtZW50cyk7XG4gIH1cbiAgLy8gUmVtb3ZlIGFuIGVsZW1lbnQgYnkgSURcbiAgLy8gU2F2ZSBlbGVtZW50cyB0byBsb2NhbFN0b3JhZ2UgYW5kIHVwZGF0ZSB0aGUgc3ViamVjdFxuICByZW1vdmVFbGVtZW50Q29tcG9uZW50KGlkOiBhbnkpIHtcbiAgICB0aGlzLnRlbXBFbGVtID0gW107XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRTdWJqZWN0Lm5leHQobnVsbCk7XG4gICAgdGhpcy5jdXJyZW50RWxlbWVudCA9IHt9XG4gICAgdGhpcy5wZGZFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgIGlmIChlbGVtZW50LmlkICE9PSBpZCkge1xuICAgICAgICB0aGlzLnRlbXBFbGVtLnB1c2goZWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5wZGZFbGVtZW50cyA9IHRoaXMudGVtcEVsZW07XG4gICAgdGhpcy5wZGZFbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5wZGZFbGVtZW50c10pO1xuICB9XG4gIC8vIFNLUzE5TUFSMjUgdXBkYXRlIHRoZSBlbGVtZW50XG4gIGVsZW1lbnRVcGRhdGUoaW5kZXg6IGFueSwgZWxlbWVudDogYW55KSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBbLi4udGhpcy5nZXRFbGVtZW50cygpXTtcbiAgICBpZiAoZWxlbWVudHNbaW5kZXhdKSB7XG4gICAgICBlbGVtZW50c1tpbmRleF0gPSBlbGVtZW50XG4gICAgICB0aGlzLnBkZkVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgICB0aGlzLnNvcnRFbGVtZW50c0J5T3JkZXIoKTtcbiAgICAgIHRoaXMucGRmRWxlbWVudHNTdWJqZWN0Lm5leHQoWy4uLmVsZW1lbnRzXSk7XG4gICAgICB0aGlzLnNlbGVjdGVkRWxlbWVudFN1YmplY3QubmV4dChpbmRleCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
393
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLWRlc2lnbmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvc2VydmljZXMvcGRmLWRlc2lnbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFPbkQsTUFBTSxPQUFPLGtCQUFrQjtJQWdCVDtJQWZaLFdBQVcsR0FBVSxFQUFFLENBQUM7SUFDeEIsa0JBQWtCLEdBQUcsSUFBSSxlQUFlLENBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEQsc0JBQXNCLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxtQkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBTSxJQUFJLENBQUMsQ0FBQztJQUNyRCxnQkFBZ0IsR0FBNEIsSUFBSSxDQUFDO0lBQ3pELEdBQUcsQ0FBTTtJQUNULFNBQVMsQ0FBTTtJQUNmLFFBQVEsQ0FBUTtJQUVoQixZQUFZLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELGdCQUFnQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5RCxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0QsY0FBYyxDQUFNO0lBQ3BCLGlCQUFpQixDQUFNO0lBRXZCLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDbEMsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sZ0JBQWdCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM3RCxJQUFJLGdCQUFnQixF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QUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFDRCxnQ0FBZ0M7SUFDaEMsYUFBYSxDQUFDLEtBQVUsRUFBRSxPQUFZO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUN6QyxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BCLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxPQUFPLENBQUE7WUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxRQUFRLENBQUM7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFDLENBQUM7SUFDSCxDQUFDO3dHQS9aVSxrQkFBa0I7NEdBQWxCLGtCQUFrQixjQUZqQixNQUFNOzs0RkFFUCxrQkFBa0I7a0JBSDlCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBFbGVtZW50Q29tcG9uZW50IH0gZnJvbSAnLi4vcGFnZXMvYnVpbGRlci9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50JztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBkZkRlc2lnbmVyU2VydmljZSB7XG4gIHByaXZhdGUgcGRmRWxlbWVudHM6IGFueVtdID0gW107XG4gIHByaXZhdGUgcGRmRWxlbWVudHNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4oW10pO1xuICBwcml2YXRlIHNlbGVjdGVkRWxlbWVudFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oLTEpO1xuICBwcml2YXRlIHNlbGVjdEhlYWRlclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbCk7XG4gIHByaXZhdGUgZWxlbWVudENvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCB8IG51bGwgPSBudWxsO1xuICBwZGY6IGFueTtcbiAgdW5pcXVlX2lkOiBhbnk7XG4gIHRlbXBFbGVtOiBhbnlbXTtcblxuICBwZGZFbGVtZW50cyQgPSB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgc2VsZWN0ZWRFbGVtZW50JCA9IHRoaXMuc2VsZWN0ZWRFbGVtZW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgc2VsZWN0SGVhZGVyU3ViamVjdCQgPSB0aGlzLnNlbGVjdEhlYWRlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIGN1cnJlbnRFbGVtZW50OiBhbnk7XG4gIHNlbGVjdFRhYmxlQ29sdW1uOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50KSB7XG4gICAgLy8gTG9hZCBzYXZlZCBlbGVtZW50cyBmcm9tIGxvY2FsU3RvcmFnZVxuICAgIHRoaXMucGRmRWxlbWVudHMgPSBbXTtcbiAgICBjb25zdCBzYXZlZFBkZkVsZW1lbnRzID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BkZkVsZW1lbnRzJyk7XG4gICAgaWYgKHNhdmVkUGRmRWxlbWVudHMpIHtcbiAgICAgIHRoaXMucGRmRWxlbWVudHMgPSBKU09OLnBhcnNlKHNhdmVkUGRmRWxlbWVudHMpO1xuICAgICAgdGhpcy5wZGZFbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5wZGZFbGVtZW50c10pO1xuICAgIH1cbiAgfVxuICBpbnRpYWxpemVCb29rKHBkZjogYW55KSB7XG4gICAgLy8gIC0gR2V0IHRoZSB1bmlxdWUgaWQgaW4gdGhlIHBkZiBcbiAgICB0aGlzLnVuaXF1ZV9pZCA9IE9iamVjdC5rZXlzKHBkZilbMF07XG4gICAgbGV0IHRlbXBib29rID0gcGRmW3RoaXMudW5pcXVlX2lkXTtcbi8vIFNLUzI4TUFSMjUgdXBkYXRlIG5lc3RlZCBwZGYgUXVlc3Rpb25zTWFwXG4gICAgdGVtcGJvb2suZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gXCJwZGZcIiAmJiBlbGVtZW50LnBkZlJlZmVyZW5jZSkge1xuICAgICAgICB0aGlzLmdldFJlZlFiRGF0YShlbGVtZW50LnBkZlJlZmVyZW5jZSkuc3Vic2NyaWJlKFxuICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgZWxlbWVudFsncGRmUmVmZXJlbmNlUXVlc3Rpb25zJ10gPSByZXNwb25zZTsgLy8gQXNzaWduIHJlc3BvbnNlIHRvIHBkZlJlZmVyZW5jZVF1ZXN0aW9uc1xuICAgICAgICAgIH0sXG4gICAgICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiQVBJIEVycm9yOlwiLCBlcnJvcik7XG4gICAgICAgICAgfVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHBkZlt0aGlzLnVuaXF1ZV9pZF0gPSB0ZW1wYm9va1xuICAgIHRoaXMucGRmID0gcGRmXG5cbiAgICB0aGlzLnBkZlt0aGlzLnVuaXF1ZV9pZF0/LmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAvLyBpZiAodGhpcy5wZGYuc3FPcHRpb25zPy5bZWxlbWVudC5pZF0pIHtcbiAgICAgIC8vICAgZWxlbWVudC5vcHRpb25zID0gdGhpcy5wZGYuc3FPcHRpb25zW2VsZW1lbnQuaWRdLm9wdGlvbnM7XG4gICAgICAvLyB9XG4gICAgICB0aGlzLmFkZEVsZW1lbnQoZWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICAvL1NLUzI4TUFSMjUgRnVuY3Rpb24gdG8gZmV0Y2ggcmVmcWIgZGF0YVxuICBnZXRSZWZRYkRhdGEocmVmcWJpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxhbnk+KGBodHRwczovL2Rldi1hcGkudmFsYXJoci5jb20vbnh0P25hbWU9JHtyZWZxYmlkfWApO1xuICB9XG5cbiAgIC8vQVAtMTdBUFIyNSBGdW5jdGlvbiB0byBnZW5lcmF0ZSB1bmlxdWUgaWRcbiAgIGFkZEVsZW1lbnRXaXRoSWQoKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXggPSAnbmdueHQnOyBcbiAgICBjb25zdCBjaGFycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fJztcbiAgICBsZXQgaWQgPSAnJztcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDExOyBpKyspIHtcbiAgICAgIGlkICs9IGNoYXJzLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBjaGFycy5sZW5ndGgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHByZWZpeCtpZDtcbiAgfVxuXG4gIG5ld0Jvb2soKSB7XG4gICAgdGhpcy51bmlxdWVfaWQgPSB0aGlzLmFkZEVsZW1lbnRXaXRoSWQoKTtcbiAgICB0aGlzLnBkZiA9IHtcbiAgICAgICAgW3RoaXMudW5pcXVlX2lkXTogW10sXG4gICAgICAgICd0aXRsZSc6ICdVbnRpdGxlZCcsXG4gICAgfVxuICB9XG4gIC8vIEFQIDI2RkVCMjUgLSBjbGVhciB0aGUgZm9ybSBlbGVtZW50cyBcbiAgY2xlYXJFbGVtZW50cygpIHtcbiAgICB0aGlzLnBkZkVsZW1lbnRzID0gW107XG4gICAgdGhpcy5wZGZFbGVtZW50c1N1YmplY3QubmV4dChbLi4udGhpcy5wZGZFbGVtZW50c10pO1xuICB9XG4gIC8vIEdldCB0aGUgZWxlbWVudCBjb21wb25lbnQgcmVmZXJlbmNlXG4gIGdldEVsZW1lbnRDb21wb25lbnQoKTogRWxlbWVudENvbXBvbmVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRDb21wb25lbnQ7XG4gIH1cblxuICBzZXRFbGVtZW50Q29tcG9uZW50KGNvbXBvbmVudDogRWxlbWVudENvbXBvbmVudCkge1xuICAgIHRoaXMuZWxlbWVudENvbXBvbmVudCA9IGNvbXBvbmVudDtcbiAgfVxuXG4gIC8vIEFkZCBhIG5ldyBlbGVtZW50IHRvIHRoZSBmb3JtXG4gIGFkZEVsZW1lbnQoZWxlbWVudDogYW55KTogdm9pZCB7XG4gICAgXG4gICAgdGhpcy5wZGZFbGVtZW50cy5wdXNoKGVsZW1lbnQpO1xuICAgIHRoaXMucGRmRWxlbWVudHNTdWJqZWN0Lm5leHQoWy4uLnRoaXMucGRmRWxlbWVudHNdKTtcbiAgfVxuICAvLyBTS1MxM01BUjI1IGFkZCB0YWJsZSBlbGVtZW50XG4gIGFkZFRhYmxlRWxlbWVudChlbGVtZW50OiBhbnksIGluZCA6YW55KSB7XG4gICAgLy9TS1MxM01BUjI1IEVuc3VyZSBjdXJyZW50RWxlbWVudCBleGlzdHNcbiAgICBpZiAoIXRoaXMuY3VycmVudEVsZW1lbnQpIHJldHVybjtcbiAgICAvLyBDbG9uZSBlbGVtZW50cyBhcnJheVxuICAgIGNvbnN0IGVsZW1lbnRzID0gWy4uLnRoaXMuZ2V0RWxlbWVudHMoKV07XG5cbiAgICAvLyBTS1MxM01BUjI1IEZpbmQgdGhlIGVsZW1lbnQgYW5kIHVwZGF0ZSBpdHMgY29sdW1uc1xuICAgIGNvbnN0IGluZGV4ID0gZWxlbWVudHMuZmluZEluZGV4KGVsID0+IGVsLmlkID09PSB0aGlzLmN1cnJlbnRFbGVtZW50LmlkKTtcblxuICAgIC8vIENsb25lIGNvbHVtbnMgYXJyYXkgdG8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgY29uc3QgdXBkYXRlZENvbHVtbnMgPSBbLi4uKHRoaXMucGRmRWxlbWVudHNbaW5kZXhdLmNvbHVtbnMgfHwgW10pLCBlbGVtZW50XTtcbiAgICBsZXQgdGVtcEZpZWxkc01ldGEgPSB7XG4gICAgICAnbGFiZWwnOiBlbGVtZW50LmxhYmVsLFxuICAgICAgJ2FwaU5hbWUnOiBlbGVtZW50LmZpZWxkTmFtZSxcbiAgICAgIFwiaXNkZWxldGVkXCI6IGZhbHNlLFxuICAgICAgXCJvcmRlcmJ5ZmxhZ1wiOiBmYWxzZSxcbiAgICAgIFwiZmlsdGVyZmxhZ1wiOiBmYWxzZSxcbiAgICAgIFwib3V0cHV0RmxhZ1wiOiB0cnVlLFxuICAgICAgXCJpc2NoaWxkXCI6IGZhbHNlLFxuICAgICAgXCJyZXN1bHRhbnRmbGFnXCI6IGZhbHNlLFxuICAgICAgXCJzZWFyY2hmbGFnXCI6IGZhbHNlLFxuICAgICAgXCJmbGRUeXBlXCI6IGVsZW1lbnQudHlwZSxcbiAgICAgIFwicmVhZE9ubHlcIjogZmFsc2UsXG4gICAgICBcInVuaXF1ZUlkZW50aWZpZXJcIjogZWxlbWVudC5pZFxuICAgIH1cbiAgICBsZXQgZmllbGRzTWV0YSA9IFsuLi50aGlzLnBkZkVsZW1lbnRzW2luZGV4XS5maWVsZHNNZXRhLCB0ZW1wRmllbGRzTWV0YV07XG5cbiAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICBlbGVtZW50c1tpbmRleF0gPSB7IC4uLmVsZW1lbnRzW2luZGV4XSwgY29sdW1uczogdXBkYXRlZENvbHVtbnMsIGZpZWxkc01ldGE6IGZpZWxkc01ldGEgfTtcbiAgICB9XG5cbiAgICAvLyBFbWl0IHRoZSB1cGRhdGVkIGZvcm0gZWxlbWVudHNcbiAgICAvLyB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KGVsZW1lbnRzKTtcbiAgICB0aGlzLnBkZkVsZW1lbnRzID0gZWxlbWVudHM7XG4gICAgdGhpcy5wZGZFbGVtZW50c1N1YmplY3QubmV4dChbLi4uZWxlbWVudHNdKTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudFN1YmplY3QubmV4dChpbmQpO1xuICAgIC8vIExvZyBmb3IgZGVidWdnaW5nXG4gICAgLy8gY29uc29sZS5sb2coXCJVcGRhdGVkIGZvcm0gZWxlbWVudHM6XCIsICB0aGlzLnBkZkVsZW1lbnRzKTtcbiAgfVxuXG4gIHVwZGF0ZUVsZW1lbnQoaW5kZXg6IG51bWJlciwgdXBkYXRlczogUGFydGlhbDxhbnk+KSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBbLi4udGhpcy5nZXRFbGVtZW50cygpXTtcbiAgICBpZiAoZWxlbWVudHNbaW5kZXhdKSB7XG4gICAgICBlbGVtZW50c1tpbmRleF0gPSB7XG4gICAgICAgIC4uLmVsZW1lbnRzW2luZGV4XSxcbiAgICAgICAgLi4udXBkYXRlcyxcbiAgICAgIH07XG4gICAgICB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KGVsZW1lbnRzKTtcbiAgICB9XG5cbiAgICBpZiAoaW5kZXggPj0gMCAmJiBpbmRleCA8IHRoaXMucGRmRWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCB1cGRhdGVkRWxlbWVudCA9IHtcbiAgICAgICAgLi4udGhpcy5wZGZFbGVtZW50c1tpbmRleF0sXG4gICAgICAgIC4uLnVwZGF0ZXNcbiAgICAgIH07XG4gICAgICAgIGlmIChlbGVtZW50c1tpbmRleF0pIHtcbiAgICAgICAgICBlbGVtZW50c1tpbmRleF0gPSB7IC4uLmVsZW1lbnRzW2luZGV4XSwgLi4udXBkYXRlcyB9O1xuICAgICAgICAgIHRoaXMucGRmRWxlbWVudHMgPSBlbGVtZW50cztcbiAgICAgICAgICB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLnBkZkVsZW1lbnRzXSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucGRmRWxlbWVudHNbaW5kZXhdID0gdXBkYXRlZEVsZW1lbnQ7XG4gICAgICB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLnBkZkVsZW1lbnRzXSk7XG4gICAgfVxuICB9XG4gIHVwZGF0ZVRpdGxlKGV2ZW50OiBhbnkpIHtcbiAgICAvL0FQLTEwTUFSMjUgVXBkYXRlcyB0aGUgdGl0bGUgb2YgdGhlIGZpcnN0IHJlY29yZCBpbiB0aGUgcGRmICBcbiAgICB0aGlzLnBkZi50aXRsZSA9IGV2ZW50O1xuICB9XG4gIHNldFNlbGVjdGVkRWxlbWVudChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRTdWJqZWN0Lm5leHQoaW5kZXgpO1xuICAgIHRoaXMuY3VycmVudEVsZW1lbnQgPSB0aGlzLnBkZkVsZW1lbnRzW2luZGV4XVxuICAgIHRoaXMuc2VsZWN0VGFibGVDb2x1bW4gPSBudWxsXG4gIH1cbiAgLy8gU0tTMTlNQVIyNSBzZXQgdGhlIHNlbGVjdGVkIHRhYmxlIGNvbHVtblxuICBzZXRTZWxlY3RlZFRhYmxlRWxlbWVudChpbmRleDogYW55LCBldmVudDogYW55KSB7XG4gICAgdGhpcy5jdXJyZW50RWxlbWVudCA9IHRoaXMucGRmRWxlbWVudHNbaW5kZXhdXG4gICAgaWYgKHRoaXMuY3VycmVudEVsZW1lbnQ/LnR5cGUgPT09ICdUYWJsZScpIHtcbiAgICB9XG4gICAgY29uc3QgZm91bmRJdGVtID0gdGhpcy5jdXJyZW50RWxlbWVudD8udHlwZSA9PT0gJ1RhYmxlJyA/IHRoaXMuY3VycmVudEVsZW1lbnRbJ2ZpZWxkc01ldGEnXS5maW5kKGl0ZW0gPT4gaXRlbVsnYXBpTmFtZSddID09PSBldmVudD8uY29sdW1uKSA6IHVuZGVmaW5lZDtcbiAgICB0aGlzLnNlbGVjdFRhYmxlQ29sdW1uID0gZm91bmRJdGVtPy51bmlxdWVJZGVudGlmaWVyXG4gICAgdGhpcy5zZWxlY3RlZEVsZW1lbnRTdWJqZWN0Lm5leHQoaW5kZXgpO1xuICB9XG4gIHJlbW92ZVNlbGVjdGVkVGFibGVFbGVtZW50KGluZGV4OiBudW1iZXIsIGV2ZW50OiBhbnkpIHtcbiAgICAvLyBjb25zb2xlLmxvZyhcImRkZFwiLGluZGV4LCBldmVudClcbiAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0gdGhpcy5wZGZFbGVtZW50c1tpbmRleF07XG5cbiAgICBpZiAodGhpcy5jdXJyZW50RWxlbWVudD8udHlwZSA9PT0gJ1RhYmxlJykge1xuICAgICAgLy8gRmluZCB0aGUgaW5kZXggb2YgdGhlIGl0ZW1cbiAgICAgIGNvbnN0IGl0ZW1JbmRleCA9IHRoaXMuY3VycmVudEVsZW1lbnRbJ2ZpZWxkc01ldGEnXS5maW5kSW5kZXgoaXRlbSA9PiBpdGVtWydhcGlOYW1lJ10gPT09IGV2ZW50Py5jb2x1bW4pO1xuICAgICAgLy8gUmVtb3ZlIHRoZSBpdGVtIGlmIGZvdW5kXG4gICAgICBpZiAoaXRlbUluZGV4ICE9PSAtMSkge1xuICAgICAgICB0aGlzLmN1cnJlbnRFbGVtZW50WydmaWVsZHNNZXRhJ10uc3BsaWNlKGl0ZW1JbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0VGFibGVDb2x1bW4gPSBudWxsXG4gICAgdGhpcy5lbGVtZW50VXBkYXRlKGluZGV4LCB0aGlzLmN1cnJlbnRFbGVtZW50KVxuICB9XG4gIC8vIFNLUzE5TUFSMjUgZ2V0IHRoZSBzZWxlY3RlZCB0YWJsZSBjb2x1bW5cbiAgZ2V0U2VsZWN0VGFibGVDb2x1bW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0VGFibGVDb2x1bW47XG4gIH1cbiAgc2VsZWN0SGVhZGluZyhldmVudDogYW55KSB7XG4gICAgLy9BUC0xME1BUjI1IEVtaXRzIHRoZSBzZWxlY3RlZCBoZWFkaW5nIGV2ZW50ICBcbiAgICB0aGlzLnNlbGVjdEhlYWRlclN1YmplY3QubmV4dChldmVudCk7XG4gIH1cblxuICBnZXRFbGVtZW50cygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMucGRmRWxlbWVudHMubWFwKGVsZW1lbnQgPT4gKHtcbiAgICAgIC4uLmVsZW1lbnRcbiAgICB9KSk7XG4gIH1cbiAgc29ydEVsZW1lbnRzQnlPcmRlcigpOiB2b2lkIHtcbiAgICAvL0FQLTEwTUFSMjUgU29ydCBlbGVtZW50cyBieSBjdXJyZW50IG9yZGVyXG4gICAgdGhpcy5wZGZFbGVtZW50cy5zb3J0KChhLCBiKSA9PiBhLnF1ZXN0aW9uTnVtYmVyIC0gYi5xdWVzdGlvbk51bWJlcik7XG4gICAgdGhpcy5wZGZFbGVtZW50cy5mb3JFYWNoKChlbGVtZW50LCBpbmRleCkgPT4ge1xuICAgICAgZWxlbWVudC5xdWVzdGlvbk51bWJlciA9IGluZGV4ICsgMTtcbiAgICB9KTtcbiAgICB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLnBkZkVsZW1lbnRzXSk7XG4gIH1cbiAgLy9BUC0xME1BUjI1IFJldHVybnMgdGhlIGN1cnJlbnQgcGRmIGRhdGEgIFxuICBnZXRCb29rKCkge1xuICAgIHJldHVybiB0aGlzLnBkZjtcbiAgfVxuXG5kb3dubG9hZEVsZW1lbnQoKSB7XG4gIHRoaXMucGRmRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAvL0FQLTAySlVOMjUgLSBTZXQgYSBkZWZhdWx0IHZhbHVlIGZvciAnZGF0ZScgdHlwZSBlbGVtZW50cyBpZiBubyB2YWx1ZSBpcyBwcm92aWRlZFxuICAgIGNvbnN0IGRlZmF1bHREYXRlID0gJ2RhdGUnXG4gICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gJ2RhdGUnICYmICFlbGVtZW50LnZhbHVlKSB7XG4gICAgICBlbGVtZW50LnZhbHVlID0gZGVmYXVsdERhdGU7XG4gICAgfVxuICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICd0ZXh0JyB8fCAnaW5wdXQnKSB7XG4gICAgICBlbGVtZW50LnZhbHVlID0gKGVsZW1lbnQucXVlc3Rpb24gfHwgZWxlbWVudC52YWx1ZSB8fCAnJykucmVwbGFjZSgvXFxcXG4vZywgJ1xcbicpO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5zdWJUZXh0ICYmIHR5cGVvZiBlbGVtZW50LnN1YlRleHQgPT09ICdvYmplY3QnKSB7XG4gICAgICBlbGVtZW50LnN1YlRleHQgPSBKU09OLnN0cmluZ2lmeShlbGVtZW50LnN1YlRleHQpO1xuICAgIH1cbiAgICBpZiAoZWxlbWVudC5wZGZSZWZlcmVuY2VRdWVzdGlvbnMpIHtcbiAgICAgIGRlbGV0ZSBlbGVtZW50LnBkZlJlZmVyZW5jZVF1ZXN0aW9ucztcbiAgICB9XG4gIH0pO1xuXG4gIHRoaXMucGRmW3RoaXMudW5pcXVlX2lkXSA9IHRoaXMucGRmRWxlbWVudHM7XG4gIHRoaXMucGRmWydwZGZKc29uJ10gPSB0aGlzLmNvbnZlcnRUb1BkZkxheW91dCh0aGlzLnBkZik7XG5cbiAgLy8gU2NhbGUgd2lkdGhzIGZvciBjb2x1bW5zXG4gIHRoaXMucGRmPy5wZGZKc29uPy5jb250ZW50Py5mb3JFYWNoKChyb3c6IGFueSkgPT4ge1xuICAgIHJvdy5jb2x1bW5zPy5mb3JFYWNoKChjb2w6IGFueSkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjb2wud2lkdGggPT09ICdudW1iZXInICYmIGNvbC53aWR0aCA8IDUyMCkge1xuICAgICAgICBjb2wud2lkdGggPSBjb2wud2lkdGggKiA1LjI7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xuXG4gIGNvbnNvbGUubG9nKCdwZGYnLCB0aGlzLnBkZi5wZGZKc29uKTtcbiAgcmV0dXJuIHRoaXMucGRmO1xufVxuXG5jb252ZXJ0VG9QZGZMYXlvdXQoaW5wdXQ6IGFueSk6IGFueSB7XG4gIGNvbnN0IHJlc3VsdCA9IHsgY29udGVudDogW10gfTtcbiAgY29uc3QgaXRlbXMgPSBpbnB1dFt0aGlzLnVuaXF1ZV9pZF07XG4vLyBBUC0wMkpVTjI1IC0gRGVmaW5lIG54dFR5cGUgZm9yIGVhY2ggaXRlbSBcbiAgY29uc3Qgc3R5bGVQcm9wcyA9IChpdGVtOiBhbnkpID0+ICh7XG4gICAgZm9udFNpemU6IGl0ZW0uZm9udFNpemUgfHwgMTQsXG4gICAgYm9sZDogaXRlbS5mb250U3R5bGUgPT09ICdib2xkJyB8fCBpdGVtLmZvbnRXZWlnaHQgPj0gNzAwLFxuICAgIGl0YWxpY3M6IGl0ZW0uZm9udFN0eWxlID09PSAnaXRhbGljJyxcbiAgICBhbGlnbm1lbnQ6IGl0ZW0uYWxpZ25JdGVtcyB8fCAnJyxcbiAgICBtYXJnaW46IGl0ZW0ubWFyZ2luIHx8IFswLCAwLCAwLCAwXSxcbiAgICBueHRUeXBlOiBpdGVtLnR5cGUgfHwgJycsXG4gIH0pO1xuXG4gIGNvbnN0IHByb2Nlc3NJdGVtcyA9IChpdGVtczogYW55W10pOiBhbnlbXSA9PiB7XG4gICAgY29uc3Qgcm93cyA9IFtdO1xuICAgIGxldCBjdXJyZW50Um93ID0geyBjb2x1bW5zOiBbXSB9O1xuICAgIGxldCBjdXJyZW50V2lkdGggPSAwO1xuXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBjb25zdCB3aWR0aCA9IGl0ZW0ud2lkdGggfHwgMTAwO1xuICAgICAgbGV0IGVsZW1lbnQ6IGFueSA9IHsgd2lkdGgsIC4uLnN0eWxlUHJvcHMoaXRlbSkgfTtcblxuICAgICAgaWYgKGN1cnJlbnRXaWR0aCArIHdpZHRoID4gMTAwKSB7XG4gICAgICAgIHJvd3MucHVzaChjdXJyZW50Um93KTtcbiAgICAgICAgY3VycmVudFJvdyA9IHsgY29sdW1uczogW10gfTtcbiAgICAgICAgY3VycmVudFdpZHRoID0gMDtcbiAgICAgIH0gICAgIFxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gXCJTcGFjZVwiKSB7XG4gICAgICAgIGN1cnJlbnRSb3cuY29sdW1ucy5wdXNoKHsgd2lkdGgsIHRleHQ6ICcnLCAuLi5zdHlsZVByb3BzKGl0ZW0pIH0pO1xuXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ0xpbmUnKSB7XG4gICAgICAgIGVsZW1lbnQuY2FudmFzID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHR5cGU6ICdsaW5lJyxcbiAgICAgICAgICAgIHgxOiBpdGVtLngxID8/IDAsXG4gICAgICAgICAgICB5MTogaXRlbS55MSA/PyAwLFxuICAgICAgICAgICAgeDI6IGl0ZW0ueDIgPz8gNTIwLFxuICAgICAgICAgICAgeTI6IGl0ZW0ueTIgPz8gMCxcbiAgICAgICAgICAgIGxpbmVXaWR0aDogaXRlbS5saW5lV2lkdGggPz8gMSxcbiAgICAgICAgICAgIGxpbmVDb2xvcjogaXRlbS5saW5lQ29sb3IgPz8gJyMwMDAwMDAnXG4gICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgICBjdXJyZW50Um93LmNvbHVtbnMucHVzaChlbGVtZW50KTtcblxuICAgICAgfSBlbHNlIGlmIChpdGVtLnR5cGUgPT09IFwiUGRmXCIgJiYgaXRlbS5wZGZSZWZlcmVuY2UpIHtcbiAgICAgICAgY29uc3QgbmVzdGVkUXVlc3Rpb25zID0gaW5wdXRbdGhpcy51bmlxdWVfaWRdLmZpbmQocSA9PiBxLmlkID09PSBpdGVtLnBkZlJlZmVyZW5jZSk/LmNoaWxkcmVuIHx8IFtdO1xuICAgICAgICBjb25zdCBuZXN0ZWRDb250ZW50ID0gcHJvY2Vzc0l0ZW1zKG5lc3RlZFF1ZXN0aW9ucyk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRSb3cuY29sdW1ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgcm93cy5wdXNoKGN1cnJlbnRSb3cpO1xuICAgICAgICAgIGN1cnJlbnRSb3cgPSB7IGNvbHVtbnM6IFtdIH07XG4gICAgICAgICAgY3VycmVudFdpZHRoID0gMDtcbiAgICAgICAgfVxuICAgICAgICByb3dzLnB1c2goLi4ubmVzdGVkQ29udGVudCk7XG5cbiAgICAgIH0gZWxzZSBpZiAoaXRlbS50eXBlID09PSAnVGFibGUnKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlQ29sdW1ucyA9IGl0ZW0uZmllbGRzTWV0YSB8fCBbXTtcbiAgICAgICAgY29uc3QgdmlzaWJsZUNvdW50ID0gTWF0aC5taW4oMywgdGFibGVDb2x1bW5zLmxlbmd0aCk7XG4gICAgICAgIGNvbnN0IG1haW5Db2x1bW5zID0gdGFibGVDb2x1bW5zLnNsaWNlKDAsIHZpc2libGVDb3VudCk7XG4gICAgICAgIGNvbnN0IHN1bW1hcnlDb2x1bW5zID0gdGFibGVDb2x1bW5zLnNsaWNlKHZpc2libGVDb3VudCk7XG5cbiAgICAgICAgY29uc3QgYm9keTogYW55W11bXSA9IFtdO1xuXG4gICAgICAgIC8vIFRhYmxlIGhlYWRlcnNcbiAgICAgICAgYm9keS5wdXNoKG1haW5Db2x1bW5zLm1hcChjb2wgPT4gKHtcbiAgICAgICAgICB0ZXh0OiBjb2wubGFiZWwsXG4gICAgICAgICAgLi4uc3R5bGVQcm9wcyhpdGVtKVxuICAgICAgICB9KSkpO1xuXG4gICAgICAgIC8vIEZpZWxkIG5hbWVzXG4gICAgICAgIGJvZHkucHVzaChtYWluQ29sdW1ucy5tYXAoY29sID0+ICh7XG4gICAgICAgICAgdGV4dDogY29sLmFwaU5hbWUsXG4gICAgICAgICAgLi4uc3R5bGVQcm9wcyhpdGVtKVxuICAgICAgICB9KSkpO1xuXG4gICAgICAgIC8vIFN1bW1hcnkgcm93c1xuICAgICAgICBzdW1tYXJ5Q29sdW1ucy5mb3JFYWNoKChjb2wpID0+IHtcbiAgICAgICAgICBjb25zdCByb3cgPSBuZXcgQXJyYXkodmlzaWJsZUNvdW50KS5maWxsKHsgdGV4dDogJycsIC4uLnN0eWxlUHJvcHMoaXRlbSkgfSk7XG4gICAgICAgICAgcm93W3Zpc2libGVDb3VudCAtIDJdID0geyB0ZXh0OiBjb2wubGFiZWwsIC4uLnN0eWxlUHJvcHMoaXRlbSkgfTtcbiAgICAgICAgICByb3dbdmlzaWJsZUNvdW50IC0gMV0gPSB7IHRleHQ6IGNvbC5hcGlOYW1lLCAuLi5zdHlsZVByb3BzKGl0ZW0pIH07XG4gICAgICAgICAgYm9keS5wdXNoKHJvdyk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVsZW1lbnQgPSB7XG4gICAgICAgICAgd2lkdGg6IGl0ZW0ud2lkdGggfHwgNTIwLFxuICAgICAgICAgIHRhYmxlOiB7XG4gICAgICAgICAgICBib2R5LFxuICAgICAgICAgICAgd2lkdGhzOiBuZXcgQXJyYXkodmlzaWJsZUNvdW50KS5maWxsKCcqJylcbiAgICAgICAgICB9LFxuICAgICAgICAgIGxheW91dDogJ2xpZ2h0SG9yaXpvbnRhbExpbmVzJyxcbiAgICAgICAgICAuLi5zdHlsZVByb3BzKGl0ZW0pXG4gICAgICAgIH07XG4gICAgICAgIGN1cnJlbnRSb3cuY29sdW1ucy5wdXNoKGVsZW1lbnQpO1xuXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0udHlwZSA9PT0gJ2ltYWdlJykge1xuICAgICAgICBjdXJyZW50Um93LmNvbHVtbnMucHVzaCh7XG4gICAgICAgICAgd2lkdGgsXG4gICAgICAgICAgaW1hZ2U6IGl0ZW0uaW1hZ2VEYXRhIHx8ICcnLFxuICAgICAgICAgIGZpdDogW2l0ZW0ud2lkdGggfHwgMTAwLCBpdGVtLmhlaWdodCB8fCAxMDBdLFxuICAgICAgICAgIC4uLnN0eWxlUHJvcHMoaXRlbSlcbiAgICAgICAgfSk7XG5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IGl0ZW0udmFsdWUgfHwgJyc7XG4gICAgICAgIGN1cnJlbnRSb3cuY29sdW1ucy5wdXNoKHtcbiAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICB0ZXh0OiB2YWwsXG4gICAgICAgICAgLi4uc3R5bGVQcm9wcyhpdGVtKVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY3VycmVudFdpZHRoICs9IHdpZHRoO1xuXG4gICAgICBpZiAoY3VycmVudFdpZHRoID09PSAxMDApIHtcbiAgICAgICAgcm93cy5wdXNoKGN1cnJlbnRSb3cpO1xuICAgICAgICBjdXJyZW50Um93ID0geyBjb2x1bW5zOiBbXSB9O1xuICAgICAgICBjdXJyZW50V2lkdGggPSAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjdXJyZW50Um93LmNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgcm93cy5wdXNoKGN1cnJlbnRSb3cpO1xuICAgIH1cblxuICAgIHJldHVybiByb3dzO1xuICB9O1xuXG4gIHJlc3VsdC5jb250ZW50ID0gcHJvY2Vzc0l0ZW1zKGl0ZW1zKTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiAgLy8gQVAtMDZNQVIyNSAtIEVsZW1lbnQgbmV3IG9yZGVyIHVwZGF0ZVxuICB1cGRhdGVFbGVtZW50c09yZGVyKHVwZGF0ZWRFbGVtZW50czogYW55W10pOiB2b2lkIHtcbiAgICB0aGlzLnBkZkVsZW1lbnRzID0gWy4uLnVwZGF0ZWRFbGVtZW50c107XG4gICAgdGhpcy5wZGZFbGVtZW50c1N1YmplY3QubmV4dCh0aGlzLnBkZkVsZW1lbnRzKTtcbiAgfVxuICAvLyBSZW1vdmUgYW4gZWxlbWVudCBieSBJRFxuICAvLyBTYXZlIGVsZW1lbnRzIHRvIGxvY2FsU3RvcmFnZSBhbmQgdXBkYXRlIHRoZSBzdWJqZWN0XG4gIHJlbW92ZUVsZW1lbnRDb21wb25lbnQoaWQ6IGFueSkge1xuICAgIHRoaXMudGVtcEVsZW0gPSBbXTtcbiAgICB0aGlzLnNlbGVjdGVkRWxlbWVudFN1YmplY3QubmV4dChudWxsKTtcbiAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0ge31cbiAgICB0aGlzLnBkZkVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgaWYgKGVsZW1lbnQuaWQgIT09IGlkKSB7XG4gICAgICAgIHRoaXMudGVtcEVsZW0ucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnBkZkVsZW1lbnRzID0gdGhpcy50ZW1wRWxlbTtcbiAgICB0aGlzLnBkZkVsZW1lbnRzU3ViamVjdC5uZXh0KFsuLi50aGlzLnBkZkVsZW1lbnRzXSk7XG4gIH1cbiAgLy8gU0tTMTlNQVIyNSB1cGRhdGUgdGhlIGVsZW1lbnRcbiAgZWxlbWVudFVwZGF0ZShpbmRleDogYW55LCBlbGVtZW50OiBhbnkpIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IFsuLi50aGlzLmdldEVsZW1lbnRzKCldO1xuICAgIGlmIChlbGVtZW50c1tpbmRleF0pIHtcbiAgICAgIGVsZW1lbnRzW2luZGV4XSA9IGVsZW1lbnRcbiAgICAgIHRoaXMucGRmRWxlbWVudHMgPSBlbGVtZW50cztcbiAgICAgIHRoaXMuc29ydEVsZW1lbnRzQnlPcmRlcigpO1xuICAgICAgdGhpcy5wZGZFbGVtZW50c1N1YmplY3QubmV4dChbLi4uZWxlbWVudHNdKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRFbGVtZW50U3ViamVjdC5uZXh0KGluZGV4KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -29,4 +29,8 @@ export * from './lib/components/button/nxt-button.component';
|
|
|
29
29
|
// AP-29MAY25 export pdf-designer
|
|
30
30
|
export * from './lib/pages/pdfDesigner/pdf-designer/pdf-designer.component';
|
|
31
31
|
export * from './lib/pages/pdfDesigner/pdf-properties/pdf-properties.component';
|
|
32
|
-
|
|
32
|
+
// AP-02JUN25 export textarea ,input, date components
|
|
33
|
+
export * from './lib/components/custom-text-area/custom-text-area.component';
|
|
34
|
+
export * from './lib/components/custom-input/custom-input.component';
|
|
35
|
+
export * from './lib/components/custom-date/custom-date.component';
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQseURBQXlEO0FBQ3pELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELG1DQUFtQztBQUNuQywyQkFBMkI7QUFDM0IsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxnRUFBZ0U7QUFDaEUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSxjQUFjLHdEQUF3RCxDQUFDO0FBQ3ZFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx3REFBd0QsQ0FBQztBQUN2RSwrQkFBK0I7QUFDL0IsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxpQ0FBaUM7QUFDakMsY0FBYyw2REFBNkQsQ0FBQztBQUM1RSxjQUFjLGlFQUFpRSxDQUFDO0FBRWhGLHFEQUFxRDtBQUNyRCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyxvREFBb0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbnh0LWFwcFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL254dC1hcHAuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ueHQtYXBwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9ueHQtYXBwLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9xdWVzdGlvbm5haXJlL3F1ZXN0aW9ubmFpcmUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2VzL2Jvb2tsZXQvYm9va2xldC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZXMvcXVlc3Rpb25ib29rL3F1ZXN0aW9uYm9vay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZXMvc3VtbWFyeS1wYWdlL3N1bW1hcnktcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvc2FsZXNmb3JjZS5zZXJ2aWNlJztcbi8vIEhBLTExLTAxLTIwMjQgV2UgbmVlZCB0aGVzZSBiZWxvdyBsaW5lcyB0byB3b3JrIHB1YmxpY1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaTE4bi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaTE4bi5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2VzL2J1aWxkZXIvZWxlbWVudC9lbGVtZW50LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9idWlsZGVyL21lbnUvbWVudS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGFnZXMvYnVpbGRlci9wcm9wZXJ0aWVzL3Byb3BlcnRpZXMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BhZ2VzL2J1aWxkZXIvZm9ybS9mb3JtLmNvbXBvbmVudCc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9zdHlsZS5jc3MnO1xuLy8gU0tTMjBGRUIyNSBueHQgZGF0YXRhYmxlXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGF0YWJsZS9kYXRhdGFibGUuY29tcG9uZW50Jztcbi8vIEFQLTA3QVBSMjUgTnh0R3JvdXBDYXJkLE54dEdyb3VwSW5mbyxOeHRJbmZvQ2FyZCxOeHRJbWFnZUNhcmRcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY2FyZHMvZ3JvdXAtY2FyZC9ncm91cC1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmRzL2dyb3VwLWluZm8vZ3JvdXAtaW5mby5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJkcy9pbmZvLWNhcmQvaW5mby1jYXJkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmRzL2ltYWdlLWNhcmQvaW1hZ2UtY2FyZC5jb21wb25lbnQnO1xuLy8gQVAtMjhNQVkyNSBleHBvcnQgbnh0IGJ1dHRvblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9idXR0b24vbnh0LWJ1dHRvbi5jb21wb25lbnQnO1xuLy8gQVAtMjlNQVkyNSBleHBvcnQgcGRmLWRlc2lnbmVyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9wZGZEZXNpZ25lci9wZGYtZGVzaWduZXIvcGRmLWRlc2lnbmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wYWdlcy9wZGZEZXNpZ25lci9wZGYtcHJvcGVydGllcy9wZGYtcHJvcGVydGllcy5jb21wb25lbnQnO1xuXG4vLyBBUC0wMkpVTjI1IGV4cG9ydCB0ZXh0YXJlYSAsaW5wdXQsIGRhdGUgY29tcG9uZW50c1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jdXN0b20tdGV4dC1hcmVhL2N1c3RvbS10ZXh0LWFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jdXN0b20tZGF0ZS9jdXN0b20tZGF0ZS5jb21wb25lbnQnOyJdfQ==
|