tango-app-ui-store-builder 1.2.8 → 1.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/esm2022/lib/components/manage-store-plano/manage-store-plano.component.mjs +34 -12
  2. package/esm2022/lib/components/manage-store-plano/verification-feedback/zone-editable-fixture/zone-editable-fixture.component.mjs +90 -8
  3. package/esm2022/lib/components/manage-store-plano/zone-verification-feedback/zone-verification-feedback.component.mjs +3 -3
  4. package/esm2022/lib/components/onboard-store-plano/onboard-store-plano.component.mjs +19 -3
  5. package/esm2022/lib/components/plano-tools/allow-edit/allow-edit.component.mjs +14 -4
  6. package/esm2022/lib/components/plano-tools/delete-floor/delete-floor.component.mjs +252 -0
  7. package/esm2022/lib/components/plano-tools/tools-parent/tools-parent.component.mjs +3 -3
  8. package/esm2022/lib/components/planogram/plano-details-parent/plano-details-parent.component.mjs +8 -3
  9. package/esm2022/lib/components/planogram/plano-overview/plano-overview.component.mjs +21 -5
  10. package/esm2022/lib/components/planogram/plano-table/plano-table.component.mjs +5 -4
  11. package/esm2022/lib/components/popups/publish-plano-modal/publish-plano-modal.component.mjs +10 -4
  12. package/esm2022/lib/components/store-plano/store-plano.component.mjs +9 -2
  13. package/esm2022/lib/interfaces/planogram.interface.mjs +1 -1
  14. package/esm2022/lib/services/store-builder.service.mjs +12 -3
  15. package/esm2022/lib/tango-store-builder-routing.module.mjs +6 -1
  16. package/esm2022/lib/tango-store-builder.module.mjs +4 -1
  17. package/fesm2022/tango-app-ui-store-builder.mjs +462 -41
  18. package/fesm2022/tango-app-ui-store-builder.mjs.map +1 -1
  19. package/lib/components/manage-store-plano/manage-store-plano.component.d.ts +3 -1
  20. package/lib/components/manage-store-plano/verification-feedback/zone-editable-fixture/zone-editable-fixture.component.d.ts +14 -1
  21. package/lib/components/onboard-store-plano/onboard-store-plano.component.d.ts +2 -0
  22. package/lib/components/plano-tools/allow-edit/allow-edit.component.d.ts +2 -0
  23. package/lib/components/plano-tools/delete-floor/delete-floor.component.d.ts +85 -0
  24. package/lib/components/planogram/plano-details-parent/plano-details-parent.component.d.ts +2 -0
  25. package/lib/components/planogram/plano-overview/plano-overview.component.d.ts +1 -0
  26. package/lib/components/popups/publish-plano-modal/publish-plano-modal.component.d.ts +2 -0
  27. package/lib/interfaces/planogram.interface.d.ts +1 -0
  28. package/lib/services/store-builder.service.d.ts +15 -2
  29. package/lib/tango-store-builder.module.d.ts +59 -58
  30. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm9ncmFtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9pbnRlcmZhY2VzL3BsYW5vZ3JhbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGxhbm9MaXN0IHtcclxuICBfaWQ6IHN0cmluZztcclxuICBzdG9yZU5hbWU6IHN0cmluZztcclxuICBsYXlvdXROYW1lOiBzdHJpbmc7XHJcbiAgc3RvcmVJZD86IHN0cmluZztcclxuICBzdGF0dXM/OiBzdHJpbmc7XHJcbiAgY291bnRyeT86c3RyaW5nO1xyXG4gIGNpdHk/OnN0cmluZztcclxuICBsYXlvdXREZXRhaWxzPzogYW55O1xyXG4gIHBsYW5vQ29tcGxldGlvbj86IG51bWJlcjtcclxuICBmaXh0dXJlQ291bnQ/OiBudW1iZXI7XHJcbiAgdm1Db3VudD86IG51bWJlcjtcclxuICBmaXh0dXJlQ2FwYWNpdHk/OiBudW1iZXI7XHJcbiAgZmxvb3JJZD86IHN0cmluZztcclxuICBsYXlvdXRDb3VudDogbnVtYmVyO1xyXG4gIGxhc3RVcGRhdGU/OiBEYXRlIHwgc3RyaW5nO1xyXG4gIC8vIFtaT05FLVZFUklGSUNBVElPTl0gYWRkaXRpdmUgZmllbGRzXHJcbiAgem9uZVRhc2s/OiBhbnlbXTtcclxuICB6b25lRGV0YWlscz86IHtcclxuICAgIHpvbmVDb3VudD86IG51bWJlcjtcclxuICAgIHpvbmVQZW5kaW5nPzogbnVtYmVyO1xyXG4gICAgem9uZUFwcHJvdmVkPzogbnVtYmVyO1xyXG4gICAgem9uZVN0YXR1cz86IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBsYW5vUm9sbG91dExpc3Qge1xyXG4gIHBsYW5vSWQ6IHN0cmluZztcclxuICBmbG9vcklkOiBzdHJpbmc7XHJcbiAgZmxvb3JOYW1lOiBzdHJpbmc7XHJcbiAgbGF5b3V0TmFtZTogc3RyaW5nO1xyXG4gIGNvdW50cnk6IHN0cmluZztcclxuICBjaXR5OiBzdHJpbmc7XHJcbiAgbGF5b3V0Q291bnQ6bnVtYmVyO1xyXG4gIHN0b3JlSWQ6IHN0cmluZztcclxuICBzdG9yZU5hbWU6IHN0cmluZztcclxuICBmaXh0dXJlQ291bnQ6IG51bWJlcjsgLy9tZXJjaFxyXG4gIHZtQ291bnQ6IG51bWJlcjtcclxuICB0YXNrRGV0YWlsczogYW55W107XHJcbiAgZml4dHVyZVN0YXR1czogc3RyaW5nO1xyXG4gIHZtU3RhdHVzOiBzdHJpbmc7XHJcbiAgbGFzdFVwZGF0ZT86IERhdGUgfCBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGxhbm9ncmFtVGFibGVMaXN0IHtcclxuICBfaWQ6IHN0cmluZztcclxuICBwbGFub0lkOiBzdHJpbmc7XHJcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XHJcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XHJcbiAgZmxvb3JOYW1lOiBzdHJpbmc7XHJcbiAgbGF5b3V0TmFtZTogc3RyaW5nO1xyXG4gIHBsYW5vUHJvZ3Jlc3M6IG51bWJlcjtcclxuICBzdGF0dXM6IHN0cmluZztcclxuICBzdG9yZUlkOiBzdHJpbmc7XHJcbiAgc3RvcmVOYW1lOiBzdHJpbmc7XHJcbiAgbXVsdGlwbGVGbG9vcj86IGJvb2xlYW47XHJcbiAgZmxvb3JOdW1iZXI6IG51bWJlcjtcclxuICBtZXJjaENvbXBsaWFuY2U/OiBudW1iZXI7XHJcbiAgc3RvcmVJbmZvPzogU3RvcmVJbmZvO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JlSW5mbyB7XHJcbiAgY2l0eT86IHN0cmluZztcclxuICBjb3VudHJ5Pzogc3RyaW5nO1xyXG4gIHN0YXRlPzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbm9ncmFtLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi9pbnRlcmZhY2VzL3BsYW5vZ3JhbS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgUGxhbm9MaXN0IHtcclxuICBfaWQ6IHN0cmluZztcclxuICBzdG9yZU5hbWU6IHN0cmluZztcclxuICBsYXlvdXROYW1lOiBzdHJpbmc7XHJcbiAgc3RvcmVJZD86IHN0cmluZztcclxuICBzdGF0dXM/OiBzdHJpbmc7XHJcbiAgY291bnRyeT86c3RyaW5nO1xyXG4gIGNpdHk/OnN0cmluZztcclxuICBsYXlvdXREZXRhaWxzPzogYW55O1xyXG4gIHBsYW5vQ29tcGxldGlvbj86IG51bWJlcjtcclxuICBmaXh0dXJlQ291bnQ/OiBudW1iZXI7XHJcbiAgdm1Db3VudD86IG51bWJlcjtcclxuICBmaXh0dXJlQ2FwYWNpdHk/OiBudW1iZXI7XHJcbiAgZmxvb3JJZD86IHN0cmluZztcclxuICBsYXlvdXRDb3VudDogbnVtYmVyO1xyXG4gIGxhc3RVcGRhdGU/OiBEYXRlIHwgc3RyaW5nO1xyXG4gIC8vIFtaT05FLVZFUklGSUNBVElPTl0gYWRkaXRpdmUgZmllbGRzXHJcbiAgem9uZVRhc2s/OiBhbnlbXTtcclxuICB6b25lRGV0YWlscz86IHtcclxuICAgIHpvbmVDb3VudD86IG51bWJlcjtcclxuICAgIHpvbmVQZW5kaW5nPzogbnVtYmVyO1xyXG4gICAgem9uZUFwcHJvdmVkPzogbnVtYmVyO1xyXG4gICAgem9uZVN0YXR1cz86IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFBsYW5vUm9sbG91dExpc3Qge1xyXG4gIHBsYW5vSWQ6IHN0cmluZztcclxuICBmbG9vcklkOiBzdHJpbmc7XHJcbiAgZmxvb3JOYW1lOiBzdHJpbmc7XHJcbiAgbGF5b3V0TmFtZTogc3RyaW5nO1xyXG4gIGNvdW50cnk6IHN0cmluZztcclxuICBjaXR5OiBzdHJpbmc7XHJcbiAgbGF5b3V0Q291bnQ6bnVtYmVyO1xyXG4gIHN0b3JlSWQ6IHN0cmluZztcclxuICBzdG9yZU5hbWU6IHN0cmluZztcclxuICBmaXh0dXJlQ291bnQ6IG51bWJlcjsgLy9tZXJjaFxyXG4gIHZtQ291bnQ6IG51bWJlcjtcclxuICB0YXNrRGV0YWlsczogYW55W107XHJcbiAgZml4dHVyZVN0YXR1czogc3RyaW5nO1xyXG4gIHZtU3RhdHVzOiBzdHJpbmc7XHJcbiAgbGFzdFVwZGF0ZT86IERhdGUgfCBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUGxhbm9ncmFtVGFibGVMaXN0IHtcclxuICBfaWQ6IHN0cmluZztcclxuICBwbGFub0lkOiBzdHJpbmc7XHJcbiAgY3JlYXRlZEF0OiBzdHJpbmc7XHJcbiAgdXBkYXRlZEF0OiBzdHJpbmc7XHJcbiAgZmxvb3JOYW1lOiBzdHJpbmc7XHJcbiAgbGF5b3V0TmFtZTogc3RyaW5nO1xyXG4gIHBsYW5vUHJvZ3Jlc3M6IG51bWJlcjtcclxuICBzdGF0dXM6IHN0cmluZztcclxuICBzdG9yZUlkOiBzdHJpbmc7XHJcbiAgc3RvcmVOYW1lOiBzdHJpbmc7XHJcbiAgbXVsdGlwbGVGbG9vcj86IGJvb2xlYW47XHJcbiAgZmxvb3JOdW1iZXI6IG51bWJlcjtcclxuICBtZXJjaENvbXBsaWFuY2U/OiBudW1iZXI7XHJcbiAgY3JlYXRlZEJ5TmFtZT86c3RyaW5nO1xyXG4gIHN0b3JlSW5mbz86IFN0b3JlSW5mbztcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTdG9yZUluZm8ge1xyXG4gIGNpdHk/OiBzdHJpbmc7XHJcbiAgY291bnRyeT86IHN0cmluZztcclxuICBzdGF0ZT86IHN0cmluZztcclxufVxyXG4iXX0=
@@ -79,6 +79,12 @@ export class StoreBuilderService {
79
79
  deleteFloor(data) {
80
80
  return this.http.post(`${this.storeBuilderApiUrl}/deleteFloor`, data);
81
81
  }
82
+ getFloorDeleteImpact(data) {
83
+ return this.http.post(`${this.storeBuilderApiUrl}/getFloorDeleteImpact`, data);
84
+ }
85
+ deleteFloorCascade(data) {
86
+ return this.http.post(`${this.storeBuilderApiUrl}/deleteFloorCascade`, data);
87
+ }
82
88
  addFloor(data) {
83
89
  return this.http.post(`${this.storeBuilderApiUrl}/updateFloor`, data);
84
90
  }
@@ -265,6 +271,9 @@ export class StoreBuilderService {
265
271
  params: { header },
266
272
  });
267
273
  }
274
+ getTemplateGroupList() {
275
+ return this.http.get(`${this.storeBuilderApiUrl}/task/getTemplateGroupList`);
276
+ }
268
277
  updateFixtureComplianceStatus(data) {
269
278
  return this.http.post(`${this.storeBuilderApiUrl}/managePlano/updateFixtureStatus`, data);
270
279
  }
@@ -578,8 +587,8 @@ export class StoreBuilderService {
578
587
  getActiveVmRuleForStore(storeId, clientId) {
579
588
  return this.http.get(`${this.storeBuilderApiUrl}/vmAllocationEngine/getActiveRuleForStore`, { params: { storeId, clientId } });
580
589
  }
581
- getFixtureNumbersByStore(storeName, clientId) {
582
- return this.http.get(`${this.storeBuilderApiUrl}/task/getFixtureNumbersByStore`, { params: { storeName, clientId } });
590
+ getFixtureNumbersByStore(storeName, clientId, taskType = "fixture") {
591
+ return this.http.get(`${this.storeBuilderApiUrl}/task/getFixtureNumbersByStore`, { params: { storeName, clientId, taskType } });
583
592
  }
584
593
  allowEditWithoutRemovingResponse(data) {
585
594
  return this.http.post(`${this.storeBuilderApiUrl}/task/allowEditWithoutRemovingResponse`, data);
@@ -638,4 +647,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
638
647
  providedIn: "root",
639
648
  }]
640
649
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
641
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQzs7OztBQUU3QixNQUFNLFVBQVUsR0FDZCxpRkFBaUYsQ0FBQztBQUNwRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFLaEMsTUFBTSxPQUFPLG1CQUFtQjtJQVdwQjtJQUNBO0lBWFYsV0FBVyxDQUFTO0lBQ3BCLGtCQUFrQixDQUFTO0lBQzNCLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQVM7SUFFdEIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQ1UsSUFBZ0IsRUFDaEIsRUFBc0I7UUFEdEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUU5QixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25FLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFH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QUFXLENBQUMsU0FBaUI7UUFDM0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0Isd0JBQXdCLEVBQUU7WUFDdkUsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFO1NBQ3RCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxJQVNqQjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxJQUluQjtRQUNDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ25CLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixzQkFBc0IsRUFDaEQsSUFBSSxDQUNMLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQzt3R0E1dENVLG1CQUFtQjs0R0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzRGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gXCJ0YW5nby1hcHAtdWktZ2xvYmFsXCI7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0ICogYXMgRmlsZVNhdmVyIGZyb20gXCJmaWxlLXNhdmVyXCI7XHJcbmltcG9ydCAqIGFzIFhMU1ggZnJvbSBcInhsc3hcIjtcclxuXHJcbmNvbnN0IEVYQ0VMX1RZUEUgPVxyXG4gIFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOFwiO1xyXG5jb25zdCBFWENFTF9FWFRFTlNJT04gPSBcIi54bHN4XCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9yZUJ1aWxkZXJTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBzdG9yZUFwaVVybDogc3RyaW5nO1xyXG4gIHN0b3JlQnVpbGRlckFwaVVybDogc3RyaW5nO1xyXG4gIHRyYWZmaWNBcGlVcmw6IHN0cmluZztcclxuICB0aWNrZXRzQXBpVXJsOiBzdHJpbmc7XHJcblxyXG4gIGRyb3BEb3duVHJpZ2dlciA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgZ3M6IEdsb2JhbFN0YXRlU2VydmljZSxcclxuICApIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnN0b3JlQnVpbGRlckFwaVVybCA9IGVudi5zdG9yZUJ1aWxkZXJVcmw7XHJcbiAgICAgICAgdGhpcy5zdG9yZUFwaVVybCA9IGVudi5zdG9yZUFwaVVybDtcclxuICAgICAgICB0aGlzLnRyYWZmaWNBcGlVcmwgPSBlbnYudHJhZmZpY0FwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlbnYudGlja2V0c0FwaVVybDtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZXhwb3J0QXNFeGNlbEZpbGUoanNvbjogYW55W10sIGV4Y2VsRmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgd29ya3NoZWV0OiBYTFNYLldvcmtTaGVldCA9IFhMU1gudXRpbHMuanNvbl90b19zaGVldChqc29uKTtcclxuICAgIGNvbnN0IHdvcmtib29rOiBYTFNYLldvcmtCb29rID0ge1xyXG4gICAgICBTaGVldHM6IHsgZGF0YTogd29ya3NoZWV0IH0sXHJcbiAgICAgIFNoZWV0TmFtZXM6IFtcImRhdGFcIl0sXHJcbiAgICB9O1xyXG4gICAgY29uc3QgZXhjZWxCdWZmZXI6IGFueSA9IFhMU1gud3JpdGUod29ya2Jvb2ssIHtcclxuICAgICAgYm9va1R5cGU6IFwieGxzeFwiLFxyXG4gICAgICB0eXBlOiBcImFycmF5XCIsXHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2F2ZUFzRXhjZWxGaWxlKGV4Y2VsQnVmZmVyLCBleGNlbEZpbGVOYW1lKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlQXNFeGNlbEZpbGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICB0eXBlOiBFWENFTF9UWVBFLFxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgXCJsaXN0XCIgKyBFWENFTF9FWFRFTlNJT04pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVBc1RlbXBsYXRlKGJ1ZmZlcjogYW55LCBmaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBkYXRhOiBCbG9iID0gbmV3IEJsb2IoW2J1ZmZlcl0sIHtcclxuICAgICAgdHlwZTogRVhDRUxfVFlQRSxcclxuICAgIH0pO1xyXG4gICAgRmlsZVNhdmVyLnNhdmVBcyhkYXRhLCBmaWxlTmFtZSArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG5cclxuICBsYXlvdXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZUxheW91dExpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9zdG9yZUluZnJhTGlzdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlTGF5b3V0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9jcmVhdGVTdG9yZUxheW91dGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlQW5kU3VibWl0TGF5b3V0VGFzayhzdG9yZU5hbWU6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zY3JpcHQvY3JlYXRlTGF5b3V0YCwge1xyXG4gICAgICBzdG9yZU5hbWU6IFtzdG9yZU5hbWVdLFxyXG4gICAgICBjbGllbnRJZCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQnVsa1VwbG9hZChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBsb2FkQnVsa1N0b3JlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFubyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc3RvcmVMYXlvdXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc3RvcmVGaXh0dXJlc2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmxvb3IoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2RlbGV0ZUZsb29yYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBhZGRGbG9vcihkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBkYXRlRmxvb3JgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZsb29yTGF5b3V0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVTdG9yZUxheW91dGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZURldGFpbHNgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwbG9hZEZpbGVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpbGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3JlbW92ZUZpbGVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVBsYW5vU3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVTdGF0dXNgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUxheW91dChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZGVsZXRlU3RvcmVMYXlvdXQvJHtkYXRhfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRGV0YWlsZWREaXN0YW5jZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwZGF0ZURlYXRhaWxlZERpc3RhbmNlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRlcnRGaXh0dXJlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cHNlcnRGaXh0dXJlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICAvLyBGaXh0dXJlIExpYnJhcnlcclxuICBjcmVhdGVGaXh0dXJlTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9jcmVhdGVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlTGlicmFyeURldGFpbHMoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZml4dHVyZURldGFpbHNgLFxyXG4gICAgICB7IHBhcmFtczogeyBmaXh0dXJlSWQ6IGlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlU2l6ZUxpc3QoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZml4dHVyZVNpemVMaXN0YCxcclxuICAgICAgeyBwYXJhbXM6IHsgY2xpZW50SWQ6IGlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlTGlicmFyeUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZml4dHVyZUxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVMaWJyYXJ5TGlzdFRvRXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVMaWJyYXJ5KGRhdGE6IGFueSwgaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3VwZGF0ZUZpeHR1cmUvJHtpZH1gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGR1cGxpY2F0ZUZpeHR1cmVMaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2R1cGxpY2F0ZUZpeHR1cmVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpeHR1cmVMaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2RlbGV0ZUZpeHR1cmVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGJ1bGtBY3Rpb25GaXh0dXJlTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlQnVsa1VwbG9hZGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZU5hbWVMaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVOYW1lTGlzdGAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IGNsaWVudElkOiBpZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZUxpYk5hbWVMaXN0KGlkOiBzdHJpbmcsIHN0YXR1cz86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZml4dHVyZUxpYk5hbWVMaXN0YCxcclxuICAgICAgeyBwYXJhbXM6IHsgY2xpZW50SWQ6IGlkLCAuLi4oc3RhdHVzID8geyBzdGF0dXMgfSA6IHt9KSB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gVk0gTGlicmFyeVxyXG4gIGdldFZtTGlicmFyeURldGFpbHMoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZ2V0Vm1EZXRhaWxzYCxcclxuICAgICAge1xyXG4gICAgICAgIHBhcmFtczogeyB2bUlkOiBpZCB9LFxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZtTGlicmFyeUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZ2V0Vm1MaWJMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWbUxpYnJhcnlMaXN0VG9FeHBvcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZ2V0Vm1MaWJMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFkZFVwZGF0ZVZtTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9hZGRVcGRhdGVWbWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlVm1MaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2R1cGxpY2F0ZVZtTGliYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVWbUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZGVsZXRlVm1MaWJgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGJ1bGtBY3Rpb25WbUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdm1CdWxrVXBsb2FkYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWTU5hbWVMaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdm1OYW1lTGlzdGAsIHtcclxuICAgICAgcGFyYW1zOiB7IGNsaWVudElkOiBpZCB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyAgVm1UeXBlc1xyXG4gIGdldFZtVHlwZXNMaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFZtVHlwZUxpc3RgLFxyXG4gICAgICB7XHJcbiAgICAgICAgcGFyYW1zOiB7IGNsaWVudElkOiBpZCB9LFxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG1hbmFnZVZtVHlwZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9hZGRWbVR5cGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZFZtVHlwZUltYWdlKGZvcm1EYXRhOiBhbnksIGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS91cGxvYWRWbXR5cGVJbWFnZS8ke2lkfWAsXHJcbiAgICAgIGZvcm1EYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEJyYW5kIGxpc3RcclxuICBnZXRCcmFuZExpc3QoaWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldEJyYW5kTGlzdGAsXHJcbiAgICAgIHtcclxuICAgICAgICBjbGllbnRJZDogaWQsXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYnJhbmRFeHBvcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZ2V0QnJhbmRMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRml4dHVyZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3N0b3JlRml4dHVyZXNWMmAsIHtcclxuICAgICAgLi4uZGF0YSxcclxuICAgICAgLy8gc3RhdHVzOiBbXCJjb21wbGV0ZWRcIl0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vIGdldE9uYm9hcmRTdG9yZUZpeHR1cmVzKGRhdGE6IGFueSkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZUZpeHR1cmVzVjJgLCB7XHJcbiAgLy8gICAgIC4uLmRhdGEsXHJcbiAgLy8gICAgIHN0YXR1czogW1wiZHJhZnRcIiwgXCJhbGxvY2F0aW9uUGVuZGluZ1wiXSxcclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gRml4dHVyZSBUZW1wbGF0ZXNcclxuICBnZXRGaXh0dXJlVGVtcGxhdGVMaXN0T2xkKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2dldFRlbXBsYXRlTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZVRlbXBsYXRlTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9tYXN0ZXJUZW1wbGF0ZUxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRlbXBsYXRlQ2hpbGRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3RlbXBsYXRlQ2hpbGRMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlVGVtcGxhdGVMaXN0VG9FeHBvcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvZ2V0VGVtcGxhdGVMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVUZW1wbGF0ZURldGFpbHMoaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvZ2V0VGVtcGxhdGVEZXRhaWxzYCxcclxuICAgICAgeyBwYXJhbXM6IHsgdGVtcGxhdGVJZDogaWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUZpeHR1cmVUZW1wbGF0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9jcmVhdGVUZW1wbGF0ZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuICByZXBsYWNlRml4dHVyZURldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvcmVwbGFjZUZpeHR1cmVEZXRhaWxzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaXh0dXJlVGVtcGxhdGUoZGF0YTogYW55LCBpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvdXBkYXRlVGVtcGxhdGUvJHtpZH1gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGR1cGxpY2F0ZUZpeHR1cmVUZW1wbGF0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9kdXBsaWNhdGVUZW1wbGF0ZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRml4dHVyZVRlbXBsYXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2RlbGV0ZVRlbXBsYXRlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaXh0dXJlU3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlRml4dHVyZVN0YXR1c2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQXBwcm92YWxTdGF0dXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVBcHByb3ZhbFN0YXR1c2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVGaXh0dXJlc2ZlZWRiYWNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0U3RvcmVGaXh0dXJlc2ZlZWRiYWNrYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdG9yZVBsYW5vKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlU3RvcmVQbGFub2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVGZWVkYmFjayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldHBsYW5vRmVlZGJhY2tgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFJvbGxvdXRGZWVkYmFjayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFJvbGxvdXRGZWVkYmFja3YyYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRab25lVmVyaWZpY2F0aW9uRmVlZGJhY2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRab25lVmVyaWZpY2F0aW9uRmVlZGJhY2tgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVpvbmVWZXJpZmljYXRpb25TdGF0dXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVab25lVmVyaWZpY2F0aW9uU3RhdHVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRIZWFkZXJzTGlzdChzdG9yZUlkPzogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9nZXRIZWFkZXJMaXN0YCwgXHJcbiAgICAgIC8vIHsgICAgICBwYXJhbXM6IHsgc3RvcmVJZDogc3RvcmVJZCA/PyBcIlwiIH0gICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBJRExpc3QoaGVhZGVyOiBzdHJpbmcgPSBcIm90aGVyc1wiKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9nZXRQSURMaXN0YCwge1xyXG4gICAgICBwYXJhbXM6IHsgaGVhZGVyIH0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVDb21wbGlhbmNlU3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlRml4dHVyZVN0YXR1c2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWRkVXBkYXRlQnJhbmQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvYWRkVXBkYXRlQnJhbmRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEJyYW5kKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3VwbG9hZEJyYW5kTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnJhbmRNZXRhRGF0YShjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZ2V0QnJhbmRNZXRhRGF0YWAsXHJcbiAgICAgIHsgY2xpZW50SWQgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVCcmFuZE1ldGFEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3VwZGF0ZUJyYW5kTWV0YURhdGFgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVRhc2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdXBkYXRlVGFza2NvbmZpZ2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFza0NvbmZpZyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFRhc2tDb25maWc/Y2xpZW50SWQ9JHtkYXRhfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3RvcmVGaXh0dXJlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlU3RvcmVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBTdG9yZVxyXG4gIGdldFBsYW5vTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRPbmJvYXJkUGxhbm9MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL29uYm9hcmRQbGFub0xpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vTGlzdEV4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaXN0YCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0T25ib2FyZFBsYW5vTGlzdEV4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9vbmJvYXJkUGxhbm9MaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICAge1xyXG4gICAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vQ2FyZHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQ2FyZHNgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vUm9sbG91dExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vUm9sbG91dExpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFJvbGxvdXRMaXN0RXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub1JvbGxvdXRMaXN0YCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9ncmFtTGlzdEV4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0UGxhbm9ncmFtTGlzdGAsIGRhdGEsIHtcclxuICAgICAgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVRhc2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svY3JlYXRlVGFza2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlR2xvYmFsQ29tbWVudChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZUdsb2JhbENvbW1lbnRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFsbFRlbXBsYXRlcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9nZXRBbGxUZW1wbGF0ZXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcbiAgYXNzaWdlZFRlbXBsYXRlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2Fzc2lnZWRUZW1wbGF0ZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuICBUZW1wbGF0ZVN0b3Jlc0xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvVGVtcGxhdGVTdG9yZXNMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUYXNrSW5mbyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFza0RldGFpbHM/cGxhbm9JZD0ke2RhdGEucGxhbm9JZH0mZmxvb3JJZD0ke2RhdGEuZmxvb3JJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVUZW1wbGF0ZShpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9nZXRUZW1wbGF0ZWAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHRlbXBsYXRlSWQ6IGlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSb2xsb3V0VGFza0luZm8oZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFJvbGxvdXRUYXNrRGV0YWlscz9wbGFub0lkPSR7ZGF0YS5wbGFub0lkfSZmbG9vcklkPSR7ZGF0YS5mbG9vcklkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmV2b2tlVGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9yZXZva2VUYXNrYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVSb2xsb3V0U3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlUm9sbG91dFN0YXR1c2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGVBc3NpZ25MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3RlbXBsYXRlQXNzaWduTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGVtcGxhdGVUcmVlTGlzdChwYXJhbXM6IHtcclxuICAgIG1hc3RlcklkPzogc3RyaW5nO1xyXG4gICAgc3RvcmVJZD86IHN0cmluZztcclxuICAgIGNsaWVudElkPzogc3RyaW5nO1xyXG4gICAgdGVtcGxhdGVHcm91cE5hbWVzPzogc3RyaW5nW107XHJcbiAgICBmaXh0dXJlTmFtZXM/OiBzdHJpbmdbXTtcclxuICAgIHN0b3JlTmFtZXM/OiBzdHJpbmdbXTtcclxuICB9KSB7XHJcbiAgICBsZXQgcXVlcnlQYXJ0czogc3RyaW5nW10gPSBbXTtcclxuICAgIGlmIChwYXJhbXMubWFzdGVySWQpIHF1ZXJ5UGFydHMucHVzaChgbWFzdGVySWQ9JHtwYXJhbXMubWFzdGVySWR9YCk7XHJcbiAgICBlbHNlIGlmIChwYXJhbXMuc3RvcmVJZCkgcXVlcnlQYXJ0cy5wdXNoKGBzdG9yZUlkPSR7cGFyYW1zLnN0b3JlSWR9YCk7XHJcbiAgICBlbHNlIGlmIChwYXJhbXMuY2xpZW50SWQpIHF1ZXJ5UGFydHMucHVzaChgY2xpZW50SWQ9JHtwYXJhbXMuY2xpZW50SWR9YCk7XHJcblxyXG4gICAgaWYgKHBhcmFtcy50ZW1wbGF0ZUdyb3VwTmFtZXM/Lmxlbmd0aClcclxuICAgICAgcXVlcnlQYXJ0cy5wdXNoKFxyXG4gICAgICAgIGB0ZW1wbGF0ZUdyb3VwTmFtZXM9JHtwYXJhbXMudGVtcGxhdGVHcm91cE5hbWVzLmpvaW4oXCIsXCIpfWAsXHJcbiAgICAgICk7XHJcbiAgICBpZiAocGFyYW1zLmZpeHR1cmVOYW1lcz8ubGVuZ3RoKVxyXG4gICAgICBxdWVyeVBhcnRzLnB1c2goYGZpeHR1cmVOYW1lcz0ke3BhcmFtcy5maXh0dXJlTmFtZXMuam9pbihcIixcIil9YCk7XHJcbiAgICBpZiAocGFyYW1zLnN0b3JlTmFtZXM/Lmxlbmd0aClcclxuICAgICAgcXVlcnlQYXJ0cy5wdXNoKGBzdG9yZU5hbWVzPSR7cGFyYW1zLnN0b3JlTmFtZXMuam9pbihcIixcIil9YCk7XHJcblxyXG4gICAgbGV0IHF1ZXJ5U3RyaW5nID0gcXVlcnlQYXJ0cy5sZW5ndGggPyBgPyR7cXVlcnlQYXJ0cy5qb2luKFwiJlwiKX1gIDogXCJcIjtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS90ZW1wbGF0ZVRyZWVMaXN0JHtxdWVyeVN0cmluZ31gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRyZWVGaWx0ZXJPcHRpb25zKGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3RyZWVGaWx0ZXJPcHRpb25zP2NsaWVudElkPSR7Y2xpZW50SWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZVZlcnNpb25MaXN0KHRlbXBsYXRlSWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvdGVtcGxhdGVWZXJzaW9uTGlzdD90ZW1wbGF0ZUlkPSR7dGVtcGxhdGVJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVBaURldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldEZpeHR1cmVBSURldGFpbHM/Zml4dHVyZUlkPSR7ZGF0YX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVTaGVsZkRldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlU2hlbGZEZXRhaWxzdjJgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vZ3JhbUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFBsYW5vZ3JhbUxpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vZ3JhbUNvbXBsaWFuY2VEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vY2FsY3VsYXRlQ29tcGxpYW5jZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZHVjdE1hcHBpbmcoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVQcm9kdWN0TWFwcGluZ2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q291bnRyaWVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyQ291bnRyeV92MmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVnaW9ucyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRyYWZmaWNBcGlVcmx9L2hlYWRlckxvY2F0aW9uc192MmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9TdG9yZVZpZGVvUGFyYW1zKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0UGxhbm9TdG9yZVZpZGVvUGFyYW1zYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaXNoKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vY3JlYXRlUmV2aXNpb25gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFJldmlzaW9uTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFJldmlzaW9uc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVQbGFubyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFJldmlzaW9uRGF0YWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0QWN0aXZlUmV2aXNpb24oZGF0YToge1xyXG4gICAgcmV2aXNpb25JZDogc3RyaW5nO1xyXG4gICAgcGxhbm9JZDogc3RyaW5nO1xyXG4gICAgZmxvb3JJZDogc3RyaW5nO1xyXG4gICAgc2VuZFZlcmlmaWNhdGlvblRhc2s6IGJvb2xlYW47XHJcbiAgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vc2V0QWN0aXZlUmV2aXNpb25gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVJldmlzaW9uTmFtZShkYXRhOiB7IHJldmlzaW9uSWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZVJldmlzaW9uTmFtZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0U3RhZ2luZ0ZsYWcoZGF0YTogeyByZXZpc2lvbklkOiBzdHJpbmc7IGlzU3RhZ2luZzogYm9vbGVhbiB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9zZXRTdGFnaW5nRmxhZ2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2hlbGZEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zaGVsZlByb2R1Y3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vU3RvcmVMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRQbGFub1N0b3JlTGlzdD9jbGllbnRJZD0ke2RhdGF9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxTdG9yZXMoY2xpZW50SWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRBbGxTdG9yZXM/Y2xpZW50SWQ9JHtjbGllbnRJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRmxvb3JzTGlzdChzdG9yZUlkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0U3RvcmVGbG9vcnNMaXN0P3N0b3JlSWQ9JHtzdG9yZUlkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlUGxhbm9Gcm9tQ0FEKFxyXG4gICAgZmlsZTogRmlsZSxcclxuICAgIHN0b3JlSWQ6IHN0cmluZyxcclxuICAgIHN0b3JlTmFtZTogc3RyaW5nLFxyXG4gICAgZmxvb3JOdW1iZXI6IG51bWJlcixcclxuICApIHtcclxuICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG4gICAgZm9ybURhdGEuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZChcInN0b3JlSWRcIiwgc3RvcmVJZCk7XHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJmbG9vck51bWJlclwiLCBmbG9vck51bWJlci50b1N0cmluZygpKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZChcInN0b3JlTmFtZVwiLCBzdG9yZU5hbWUpO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9jcmVhdGVQbGFub0Zyb21DQURgLFxyXG4gICAgICBmb3JtRGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVFbXB0eVBsYW5vKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL2NyZWF0ZUVtcHR5UGxhbm9gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFsbFBsYW5vSWRzKGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2NyaXB0L2dldEFsbFBsYW5vSWRzTT9jbGllbnRJZD0ke2NsaWVudElkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEZpeHR1cmVBaShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZmluZEZpeHR1cmVBSWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZmluZEZpeHR1cmUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2ZpbmRGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXBsYWNlRml4dHVyZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvcmVwbGFjZUZpeHR1cmVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFJlcGxhY2VCcmFuZExpc3QoY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRSZXBsYWNlQnJhbmRMaXN0YCxcclxuICAgICAgeyBjbGllbnRJZCB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFJlcGxhY2VWbUxpc3QoY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRSZXBsYWNlVm1MaXN0YCxcclxuICAgICAgeyBjbGllbnRJZCB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vSWQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2dldFBsYW5vSWRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS91cGRhdGVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhcHByb3ZlUGxhbm9MYXlvdXQoZmxvb3JJZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vYXBwcm92ZVBsYW5vTGF5b3V0YCxcclxuICAgICAgeyBmbG9vcklkOiBmbG9vcklkIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0TUJRU2hlZXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zY3JpcHQvZ2V0UGxhbm9FeGNlbGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRQbGFub09yZGVyU2hlZXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zY3JpcHQvZ2V0UGxhbm9PcmRlckV4Y2VsYCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIEFzeW5jL1MzIHZhcmlhbnRzOiBzZXJ2ZXIgcXVldWVzIHRoZSBqb2IsIHJldHVybnMgMjAyIHdpdGggeyBqb2JJZCB9LCBhbmRcclxuICAvLyBzYXZlcyB0aGUgRXhjZWwgdG8gUzMuIFVzZSBnZXRQbGFub0V4cG9ydEpvYihqb2JJZCkgdG8gcG9sbCBzdGF0dXMuXHJcbiAgZXhwb3J0TUJRU2hlZXRBc3luYyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9nZXRQbGFub0V4Y2VsYCxcclxuICAgICAgeyAuLi5kYXRhLCBzYXZlVG9TMzogdHJ1ZSB9LFxyXG4gICAgICB7IG9ic2VydmU6IFwicmVzcG9uc2VcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFBsYW5vT3JkZXJTaGVldEFzeW5jKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2NyaXB0L2dldFBsYW5vT3JkZXJFeGNlbGAsXHJcbiAgICAgIHsgLi4uZGF0YSwgc2F2ZVRvUzM6IHRydWUgfSxcclxuICAgICAgeyBvYnNlcnZlOiBcInJlc3BvbnNlXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub0V4cG9ydEpvYihqb2JJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9nZXRQbGFub0V4cG9ydEpvYi8ke2VuY29kZVVSSUNvbXBvbmVudChcclxuICAgICAgICBqb2JJZCxcclxuICAgICAgKX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJ1bkFsb2NhdGlvbihkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9ydW5BbG9jYXRpb25gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEl2bUNvbnZlcnNpb25BbGlhcygpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL2l2bUNvbnZlcnNpb25BbGlhc2AsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsRmluZFJlcGxhY2VEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRBbGxGaW5kUmVwbGFjZURhdGFgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpbmRSZXBsYWNlRGF0YUJ5SWQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2dldEZpbmRSZXBsYWNlRGF0YUJ5SWRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNhdmVBc0RyYWZ0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9zYXZlQXNEcmFmdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVPckNsdXN0ZXJMaXN0KGRhdGE6IHsgc2VhcmNoTW9kZTogXCJzdG9yZVwiIHwgXCJjbHVzdGVyXCIgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9nZXRTdG9yZU9yQ2x1c3Rlckxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGJhdGNoRmluZFJlcGxhY2UoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2JhdGNoRmluZFJlcGxhY2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFwcHJvdmVSZXBsYWNlKGRhdGE6IHtcclxuICAgIGZpbmRSZXBsYWNlSWQ6IHN0cmluZztcclxuICAgIHN0b3Jlcz86IGFueVtdO1xyXG4gICAgc2NoZWR1bGU/OiBib29sZWFuO1xyXG4gICAgc2NoZWR1bGVEYXRlPzogc3RyaW5nIHwgbnVsbDtcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2FwcHJvdmVSZXBsYWNlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVCYXRjaFByb2dyZXNzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS91cGRhdGVCYXRjaFByb2dyZXNzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxGaW5kUmVwbGFjZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvY2FuY2VsRmluZFJlcGxhY2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpbmRSZXBsYWNlQWkoZGF0YTogeyBpZDogc3RyaW5nIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZGVsZXRlRmluZFJlcGxhY2VBaWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmV2b2tlRmluZFJlcGxhY2UoZGF0YTogeyBmaW5kUmVwbGFjZUlkOiBzdHJpbmcgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9yZXZva2VGaW5kUmVwbGFjZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlU3RvcmUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUFwaVVybH0vY3JlYXRlLXN0b3JlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBzcG9jRW1haWxDaGVjayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9zcG9jRW1haWxDaGVja2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlSW5mcmFUaWNrZXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9jcmVhdGVUaWNrZXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEZvb3RmYWxsRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldEZpeHR1cmVGb290ZmFsbGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG9wUGVyZm9ybWluZ1pvbmVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0VG9wUGVyZm9ybWluZ1pvbmVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUVuZ2FnZXJzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRTdG9yZUVuZ2FnZXJzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVFbmdhZ2VycyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFN0b3JlRml4dHVyZUVuZ2FnZXJzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVGb290ZmFsbChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFN0b3JlRml4dHVyZUZvb3RmYWxsYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBWTSBBbGxvY2F0aW9uIEVuZ2luZVxyXG4gIGdldFZtUnVsZUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZ2V0UnVsZUxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFZtUnVsZURldGFpbHMocnVsZUlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2dldFJ1bGVEZXRhaWxzYCxcclxuICAgICAgeyBwYXJhbXM6IHsgcnVsZUlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVWbVJ1bGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvY3JlYXRlUnVsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVm1SdWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL3VwZGF0ZVJ1bGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVZtUnVsZShydWxlSWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5kZWxldGUoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZGVsZXRlUnVsZS8ke3J1bGVJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFjdGl2YXRlVm1SdWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2FjdGl2YXRlUnVsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVhY3RpdmF0ZVZtUnVsZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9kZWFjdGl2YXRlUnVsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZHVwbGljYXRlVm1SdWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2R1cGxpY2F0ZVJ1bGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFzc2lnblZtUnVsZVN0b3JlcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9hc3NpZ25TdG9yZXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFjdGl2ZVZtUnVsZUZvclN0b3JlKHN0b3JlSWQ6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZ2V0QWN0aXZlUnVsZUZvclN0b3JlYCxcclxuICAgICAgeyBwYXJhbXM6IHsgc3RvcmVJZCwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVOdW1iZXJzQnlTdG9yZShzdG9yZU5hbWU6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2dldEZpeHR1cmVOdW1iZXJzQnlTdG9yZWAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHN0b3JlTmFtZSwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFsbG93RWRpdFdpdGhvdXRSZW1vdmluZ1Jlc3BvbnNlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9hbGxvd0VkaXRXaXRob3V0UmVtb3ZpbmdSZXNwb25zZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZURldGFpbHNCeVN0b3JlKHN0b3JlTmFtZTogc3RyaW5nLCBjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svZ2V0Rml4dHVyZURldGFpbHNCeVN0b3JlYCxcclxuICAgICAgeyBwYXJhbXM6IHsgc3RvcmVOYW1lLCBjbGllbnRJZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZVR5cGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL3VwZGF0ZUZpeHR1cmVUeXBlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVzRm9yUmVvcmRlcihzdG9yZU5hbWU6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRTdG9yZUZpeHR1cmVzRm9yUmVvcmRlcmAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHN0b3JlTmFtZSwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlb3JkZXJTdG9yZUZpeHR1cmVOdW1iZXJzKGRhdGE6IHsgc3RvcmVOYW1lOiBzdHJpbmc7IGNsaWVudElkOiBzdHJpbmcgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcmVvcmRlclN0b3JlRml4dHVyZU51bWJlcnNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVOdW1iZXJNYW51YWwoZGF0YToge1xyXG4gICAgZml4dHVyZUlkOiBzdHJpbmc7XHJcbiAgICBmaXh0dXJlTnVtYmVyPzogbnVtYmVyO1xyXG4gICAgYXNzb2NpYXRlZEVsZW1lbnRGaXh0dXJlTnVtYmVyPzogbnVtYmVyO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwZGF0ZUZpeHR1cmVOdW1iZXJNYW51YWxgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVRhc2tGb3JTdG9yZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2RlbGV0ZVRhc2tGb3JTdG9yZXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZsb29yc1dpdGhTdGF0dXMoc3RvcmVOYW1lOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9nZXRGbG9vcnNXaXRoU3RhdHVzYCxcclxuICAgICAgeyBwYXJhbXM6IHsgc3RvcmVOYW1lLCBjbGllbnRJZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbW92ZVN0b3JlQnVja2V0KGRhdGE6IHtcclxuICAgIGZsb29ySWQ6IHN0cmluZztcclxuICAgIHRhcmdldFN0YXR1czogXCJkcmFmdFwiIHwgXCJhbGxvY2F0aW9uUGVuZGluZ1wiIHwgXCJjb21wbGV0ZWRcIjtcclxuICAgIGNsZWFyTGF5b3V0VGFza3M6IGJvb2xlYW47XHJcbiAgICBjbGVhckZpeHR1cmVUYXNrczogYm9vbGVhbjtcclxuICAgIGNsZWFyWm9uZVRhc2tzOiBib29sZWFuO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svbW92ZVN0b3JlQnVja2V0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzd2FwRml4dHVyZVRlbXBsYXRlKGRhdGE6IHtcclxuICAgIGRhdGE6IHsgc3RvcmVOYW1lOiBzdHJpbmc7IGZpeHR1cmVOdW1iZXI6IG51bWJlcjsgdGVtcGxhdGVOYW1lOiBzdHJpbmcgfVtdO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9zd2FwRml4dHVyZVRlbXBsYXRlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub0RhdGFTY2hlbWEoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0UGxhbm9EYXRhU2NoZW1hYCk7XHJcbiAgfVxyXG5cclxuICBnZXRDYWRGaWxlcyhzdG9yZU5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9jYWRGaWxlc2AsIHtcclxuICAgICAgcGFyYW1zOiB7IHN0b3JlTmFtZSB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBydW5QbGFub0RhdGFRdWVyeShkYXRhOiB7XHJcbiAgICBjbGllbnRJZDogc3RyaW5nO1xyXG4gICAgc3RvcmVOYW1lczogc3RyaW5nW107XHJcbiAgICBmaWx0ZXJzOiB7IGZpZWxkOiBzdHJpbmc7IG9wZXJhdG9yOiBzdHJpbmc7IHZhbHVlOiBhbnkgfVtdO1xyXG4gICAgZmlsdGVyQ29tYmluYXRvcjogXCJBTkRcIiB8IFwiT1JcIjtcclxuICAgIHNlbGVjdGlvbk1vZGU6IFwiYWxsXCIgfCBcImZpcnN0TlwiO1xyXG4gICAgbGltaXRQZXJTdG9yZT86IG51bWJlcjtcclxuICAgIGNvbHVtbnM6IHsga2V5OiBzdHJpbmc7IGxhYmVsPzogc3RyaW5nIH1bXTtcclxuICAgIGluY2x1ZGVOb3RGb3VuZFJvd3M/OiBib29sZWFuO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcnVuUGxhbm9EYXRhUXVlcnlgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHJ1blZtUGxhY2VtZW50UXVlcnkoZGF0YToge1xyXG4gICAgY2xpZW50SWQ6IHN0cmluZztcclxuICAgIHN0b3JlTmFtZXM6IHN0cmluZ1tdO1xyXG4gICAgdm1OYW1lOiBzdHJpbmc7XHJcbiAgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcnVuVm1QbGFjZW1lbnRRdWVyeWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
650
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtYnVpbGRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tc3RvcmUtYnVpbGRlci9zcmMvbGliL3NlcnZpY2VzL3N0b3JlLWJ1aWxkZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXRELE9BQU8sRUFBRSxlQUFlLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzRCxPQUFPLEtBQUssU0FBUyxNQUFNLFlBQVksQ0FBQztBQUN4QyxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQzs7OztBQUU3QixNQUFNLFVBQVUsR0FDZCxpRkFBaUYsQ0FBQztBQUNwRixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUM7QUFLaEMsTUFBTSxPQUFPLG1CQUFtQjtJQVdwQjtJQUNBO0lBWFYsV0FBVyxDQUFTO0lBQ3BCLGtCQUFrQixDQUFTO0lBQzNCLGFBQWEsQ0FBUztJQUN0QixhQUFhLENBQVM7SUFFdEIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBRTFDLFlBQ1UsSUFBZ0IsRUFDaEIsRUFBc0I7UUFEdEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNoQixPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUU5QixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25FLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsV0FBVyxHQUFH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QW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgKiBhcyBGaWxlU2F2ZXIgZnJvbSBcImZpbGUtc2F2ZXJcIjtcclxuaW1wb3J0ICogYXMgWExTWCBmcm9tIFwieGxzeFwiO1xyXG5cclxuY29uc3QgRVhDRUxfVFlQRSA9XHJcbiAgXCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04XCI7XHJcbmNvbnN0IEVYQ0VMX0VYVEVOU0lPTiA9IFwiLnhsc3hcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3JlQnVpbGRlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHN0b3JlQXBpVXJsOiBzdHJpbmc7XHJcbiAgc3RvcmVCdWlsZGVyQXBpVXJsOiBzdHJpbmc7XHJcbiAgdHJhZmZpY0FwaVVybDogc3RyaW5nO1xyXG4gIHRpY2tldHNBcGlVcmw6IHN0cmluZztcclxuXHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKTtcclxuXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICkge1xyXG4gICAgdGhpcy5ncy5lbnZpcm9ubWVudC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMuc3RvcmVCdWlsZGVyQXBpVXJsID0gZW52LnN0b3JlQnVpbGRlclVybDtcclxuICAgICAgICB0aGlzLnN0b3JlQXBpVXJsID0gZW52LnN0b3JlQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9IGVudi50cmFmZmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudGlja2V0c0FwaVVybCA9IGVudi50aWNrZXRzQXBpVXJsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBleHBvcnRBc0V4Y2VsRmlsZShqc29uOiBhbnlbXSwgZXhjZWxGaWxlTmFtZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCB3b3Jrc2hlZXQ6IFhMU1guV29ya1NoZWV0ID0gWExTWC51dGlscy5qc29uX3RvX3NoZWV0KGpzb24pO1xyXG4gICAgY29uc3Qgd29ya2Jvb2s6IFhMU1guV29ya0Jvb2sgPSB7XHJcbiAgICAgIFNoZWV0czogeyBkYXRhOiB3b3Jrc2hlZXQgfSxcclxuICAgICAgU2hlZXROYW1lczogW1wiZGF0YVwiXSxcclxuICAgIH07XHJcbiAgICBjb25zdCBleGNlbEJ1ZmZlcjogYW55ID0gWExTWC53cml0ZSh3b3JrYm9vaywge1xyXG4gICAgICBib29rVHlwZTogXCJ4bHN4XCIsXHJcbiAgICAgIHR5cGU6IFwiYXJyYXlcIixcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zYXZlQXNFeGNlbEZpbGUoZXhjZWxCdWZmZXIsIGV4Y2VsRmlsZU5hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNhdmVBc0V4Y2VsRmlsZShidWZmZXI6IGFueSwgZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF0YTogQmxvYiA9IG5ldyBCbG9iKFtidWZmZXJdLCB7XHJcbiAgICAgIHR5cGU6IEVYQ0VMX1RZUEUsXHJcbiAgICB9KTtcclxuICAgIEZpbGVTYXZlci5zYXZlQXMoZGF0YSwgZmlsZU5hbWUgKyBcImxpc3RcIiArIEVYQ0VMX0VYVEVOU0lPTik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2F2ZUFzVGVtcGxhdGUoYnVmZmVyOiBhbnksIGZpbGVOYW1lOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRhdGE6IEJsb2IgPSBuZXcgQmxvYihbYnVmZmVyXSwge1xyXG4gICAgICB0eXBlOiBFWENFTF9UWVBFLFxyXG4gICAgfSk7XHJcbiAgICBGaWxlU2F2ZXIuc2F2ZUFzKGRhdGEsIGZpbGVOYW1lICsgRVhDRUxfRVhURU5TSU9OKTtcclxuICB9XHJcblxyXG4gIGxheW91dExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3N0b3JlTGF5b3V0TGlzdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3N0b3JlSW5mcmFMaXN0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVMYXlvdXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2NyZWF0ZVN0b3JlTGF5b3V0YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVBbmRTdWJtaXRMYXlvdXRUYXNrKHN0b3JlTmFtZTogc3RyaW5nLCBjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9jcmVhdGVMYXlvdXRgLCB7XHJcbiAgICAgIHN0b3JlTmFtZTogW3N0b3JlTmFtZV0sXHJcbiAgICAgIGNsaWVudElkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBCdWxrVXBsb2FkKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGxvYWRCdWxrU3RvcmVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZUxheW91dGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9EZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZUZpeHR1cmVzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGbG9vcihkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZGVsZXRlRmxvb3JgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldEZsb29yRGVsZXRlSW1wYWN0KGRhdGE6IHsgZmxvb3JJZDogc3RyaW5nIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldEZsb29yRGVsZXRlSW1wYWN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGbG9vckNhc2NhZGUoZGF0YTogeyBmbG9vcklkOiBzdHJpbmc7IGNvbmZpcm1MYXN0Rmxvb3I/OiBib29sZWFuIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2RlbGV0ZUZsb29yQ2FzY2FkZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWRkRmxvb3IoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwZGF0ZUZsb29yYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGbG9vckxheW91dChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBkYXRlU3RvcmVMYXlvdXRgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc3RvcmVEZXRhaWxzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRGaWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGxvYWRGaWxlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9yZW1vdmVGaWxlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQbGFub1N0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBkYXRlU3RhdHVzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVMYXlvdXQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2RlbGV0ZVN0b3JlTGF5b3V0LyR7ZGF0YX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZURldGFpbGVkRGlzdGFuY2UoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVEZWF0YWlsZWREaXN0YW5jZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkZXJ0Rml4dHVyZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdXBzZXJ0Rml4dHVyZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgLy8gRml4dHVyZSBMaWJyYXJ5XHJcbiAgY3JlYXRlRml4dHVyZUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvY3JlYXRlRml4dHVyZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZUxpYnJhcnlEZXRhaWxzKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVEZXRhaWxzYCxcclxuICAgICAgeyBwYXJhbXM6IHsgZml4dHVyZUlkOiBpZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZVNpemVMaXN0KGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVTaXplTGlzdGAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IGNsaWVudElkOiBpZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZUxpYnJhcnlMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlTGlicmFyeUxpc3RUb0V4cG9ydChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaXh0dXJlTGlicmFyeShkYXRhOiBhbnksIGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS91cGRhdGVGaXh0dXJlLyR7aWR9YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkdXBsaWNhdGVGaXh0dXJlTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9kdXBsaWNhdGVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVGaXh0dXJlTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9kZWxldGVGaXh0dXJlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBidWxrQWN0aW9uRml4dHVyZUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZml4dHVyZUJ1bGtVcGxvYWRgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVOYW1lTGlzdChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9maXh0dXJlTmFtZUxpc3RgLFxyXG4gICAgICB7IHBhcmFtczogeyBjbGllbnRJZDogaWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVMaWJOYW1lTGlzdChpZDogc3RyaW5nLCBzdGF0dXM/OiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2ZpeHR1cmVMaWJOYW1lTGlzdGAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IGNsaWVudElkOiBpZCwgLi4uKHN0YXR1cyA/IHsgc3RhdHVzIH0gOiB7fSkgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIFZNIExpYnJhcnlcclxuICBnZXRWbUxpYnJhcnlEZXRhaWxzKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFZtRGV0YWlsc2AsXHJcbiAgICAgIHtcclxuICAgICAgICBwYXJhbXM6IHsgdm1JZDogaWQgfSxcclxuICAgICAgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRWbUxpYnJhcnlMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFZtTGliTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vm1MaWJyYXJ5TGlzdFRvRXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldFZtTGliTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhZGRVcGRhdGVWbUxpYnJhcnkoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvYWRkVXBkYXRlVm1gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGR1cGxpY2F0ZVZtTGlicmFyeShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9kdXBsaWNhdGVWbUxpYmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlVm1MaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2RlbGV0ZVZtTGliYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBidWxrQWN0aW9uVm1MaWJyYXJ5KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3ZtQnVsa1VwbG9hZGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vk1OYW1lTGlzdChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L3ZtTmFtZUxpc3RgLCB7XHJcbiAgICAgIHBhcmFtczogeyBjbGllbnRJZDogaWQgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gIFZtVHlwZXNcclxuICBnZXRWbVR5cGVzTGlzdChpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRWbVR5cGVMaXN0YCxcclxuICAgICAge1xyXG4gICAgICAgIHBhcmFtczogeyBjbGllbnRJZDogaWQgfSxcclxuICAgICAgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBtYW5hZ2VWbVR5cGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvYWRkVm1UeXBlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGxvYWRWbVR5cGVJbWFnZShmb3JtRGF0YTogYW55LCBpZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdXBsb2FkVm10eXBlSW1hZ2UvJHtpZH1gLFxyXG4gICAgICBmb3JtRGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvLyBCcmFuZCBsaXN0XHJcbiAgZ2V0QnJhbmRMaXN0KGlkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRCcmFuZExpc3RgLFxyXG4gICAgICB7XHJcbiAgICAgICAgY2xpZW50SWQ6IGlkLFxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGJyYW5kRXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9MaWJyYXJ5L2dldEJyYW5kTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZUZpeHR1cmVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zdG9yZUZpeHR1cmVzVjJgLCB7XHJcbiAgICAgIC4uLmRhdGEsXHJcbiAgICAgIC8vIHN0YXR1czogW1wiY29tcGxldGVkXCJdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvLyBnZXRPbmJvYXJkU3RvcmVGaXh0dXJlcyhkYXRhOiBhbnkpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc3RvcmVGaXh0dXJlc1YyYCwge1xyXG4gIC8vICAgICAuLi5kYXRhLFxyXG4gIC8vICAgICBzdGF0dXM6IFtcImRyYWZ0XCIsIFwiYWxsb2NhdGlvblBlbmRpbmdcIl0sXHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vIEZpeHR1cmUgVGVtcGxhdGVzXHJcbiAgZ2V0Rml4dHVyZVRlbXBsYXRlTGlzdE9sZChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9nZXRUZW1wbGF0ZUxpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVUZW1wbGF0ZUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvbWFzdGVyVGVtcGxhdGVMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZUNoaWxkTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS90ZW1wbGF0ZUNoaWxkTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZVRlbXBsYXRlTGlzdFRvRXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2dldFRlbXBsYXRlTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGaXh0dXJlVGVtcGxhdGVEZXRhaWxzKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2dldFRlbXBsYXRlRGV0YWlsc2AsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHRlbXBsYXRlSWQ6IGlkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVGaXh0dXJlVGVtcGxhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvY3JlYXRlVGVtcGxhdGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVwbGFjZUZpeHR1cmVEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3JlcGxhY2VGaXh0dXJlRGV0YWlsc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZVRlbXBsYXRlKGRhdGE6IGFueSwgaWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3VwZGF0ZVRlbXBsYXRlLyR7aWR9YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkdXBsaWNhdGVGaXh0dXJlVGVtcGxhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvZHVwbGljYXRlVGVtcGxhdGVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUZpeHR1cmVUZW1wbGF0ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9kZWxldGVUZW1wbGF0ZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZVN0YXR1cyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZUZpeHR1cmVTdGF0dXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUFwcHJvdmFsU3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlQXBwcm92YWxTdGF0dXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRml4dHVyZXNmZWVkYmFjayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL2dldFN0b3JlRml4dHVyZXNmZWVkYmFja2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU3RvcmVQbGFubyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3VwZGF0ZVN0b3JlUGxhbm9gLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRmVlZGJhY2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRwbGFub0ZlZWRiYWNrYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRSb2xsb3V0RmVlZGJhY2soZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRSb2xsb3V0RmVlZGJhY2t2MmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Wm9uZVZlcmlmaWNhdGlvbkZlZWRiYWNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0Wm9uZVZlcmlmaWNhdGlvbkZlZWRiYWNrYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVab25lVmVyaWZpY2F0aW9uU3RhdHVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlWm9uZVZlcmlmaWNhdGlvblN0YXR1c2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SGVhZGVyc0xpc3Qoc3RvcmVJZD86IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svZ2V0SGVhZGVyTGlzdGAsIFxyXG4gICAgICAvLyB7ICAgICAgcGFyYW1zOiB7IHN0b3JlSWQ6IHN0b3JlSWQgPz8gXCJcIiB9ICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRQSURMaXN0KGhlYWRlcjogc3RyaW5nID0gXCJvdGhlcnNcIikge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svZ2V0UElETGlzdGAsIHtcclxuICAgICAgcGFyYW1zOiB7IGhlYWRlciB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZUdyb3VwTGlzdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9nZXRUZW1wbGF0ZUdyb3VwTGlzdGAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZUNvbXBsaWFuY2VTdGF0dXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVGaXh0dXJlU3RhdHVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBhZGRVcGRhdGVCcmFuZChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9hZGRVcGRhdGVCcmFuZGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBsb2FkQnJhbmQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdXBsb2FkQnJhbmRMaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRCcmFuZE1ldGFEYXRhKGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS9nZXRCcmFuZE1ldGFEYXRhYCxcclxuICAgICAgeyBjbGllbnRJZCB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUJyYW5kTWV0YURhdGEoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvdXBkYXRlQnJhbmRNZXRhRGF0YWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vTGlicmFyeS91cGRhdGVUYXNrY29uZmlnYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUYXNrQ29uZmlnKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpYnJhcnkvZ2V0VGFza0NvbmZpZz9jbGllbnRJZD0ke2RhdGF9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVTdG9yZUZpeHR1cmUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVTdG9yZUZpeHR1cmVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIFN0b3JlXHJcbiAgZ2V0UGxhbm9MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldE9uYm9hcmRQbGFub0xpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vb25ib2FyZFBsYW5vTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9MaXN0RXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0xpc3RgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRPbmJvYXJkUGxhbm9MaXN0RXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL29uYm9hcmRQbGFub0xpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7XHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIsXHJcbiAgICAgIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9DYXJkcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9DYXJkc2AsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9Sb2xsb3V0TGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9Sb2xsb3V0TGlzdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Um9sbG91dExpc3RFeHBvcnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vUm9sbG91dExpc3RgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub2dyYW1MaXN0RXhwb3J0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRQbGFub2dyYW1MaXN0YCwgZGF0YSwge1xyXG4gICAgICByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIixcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlVGFzayhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9jcmVhdGVUYXNrYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVHbG9iYWxDb21tZW50KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlR2xvYmFsQ29tbWVudGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsVGVtcGxhdGVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2dldEFsbFRlbXBsYXRlc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuICBhc3NpZ2VkVGVtcGxhdGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvYXNzaWdlZFRlbXBsYXRlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG4gIFRlbXBsYXRlU3RvcmVzTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS9UZW1wbGF0ZVN0b3Jlc0xpc3RgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRhc2tJbmZvKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrRGV0YWlscz9wbGFub0lkPSR7ZGF0YS5wbGFub0lkfSZmbG9vcklkPSR7ZGF0YS5mbG9vcklkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZVRlbXBsYXRlKGlkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL2dldFRlbXBsYXRlYCxcclxuICAgICAgeyBwYXJhbXM6IHsgdGVtcGxhdGVJZDogaWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFJvbGxvdXRUYXNrSW5mbyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0Um9sbG91dFRhc2tEZXRhaWxzP3BsYW5vSWQ9JHtkYXRhLnBsYW5vSWR9JmZsb29ySWQ9JHtkYXRhLmZsb29ySWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXZva2VUYXNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL3Jldm9rZVRhc2tgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVJvbGxvdXRTdGF0dXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby91cGRhdGVSb2xsb3V0U3RhdHVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZUFzc2lnbkxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvdGVtcGxhdGVBc3NpZ25MaXN0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUZW1wbGF0ZVRyZWVMaXN0KHBhcmFtczoge1xyXG4gICAgbWFzdGVySWQ/OiBzdHJpbmc7XHJcbiAgICBzdG9yZUlkPzogc3RyaW5nO1xyXG4gICAgY2xpZW50SWQ/OiBzdHJpbmc7XHJcbiAgICB0ZW1wbGF0ZUdyb3VwTmFtZXM/OiBzdHJpbmdbXTtcclxuICAgIGZpeHR1cmVOYW1lcz86IHN0cmluZ1tdO1xyXG4gICAgc3RvcmVOYW1lcz86IHN0cmluZ1tdO1xyXG4gIH0pIHtcclxuICAgIGxldCBxdWVyeVBhcnRzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgaWYgKHBhcmFtcy5tYXN0ZXJJZCkgcXVlcnlQYXJ0cy5wdXNoKGBtYXN0ZXJJZD0ke3BhcmFtcy5tYXN0ZXJJZH1gKTtcclxuICAgIGVsc2UgaWYgKHBhcmFtcy5zdG9yZUlkKSBxdWVyeVBhcnRzLnB1c2goYHN0b3JlSWQ9JHtwYXJhbXMuc3RvcmVJZH1gKTtcclxuICAgIGVsc2UgaWYgKHBhcmFtcy5jbGllbnRJZCkgcXVlcnlQYXJ0cy5wdXNoKGBjbGllbnRJZD0ke3BhcmFtcy5jbGllbnRJZH1gKTtcclxuXHJcbiAgICBpZiAocGFyYW1zLnRlbXBsYXRlR3JvdXBOYW1lcz8ubGVuZ3RoKVxyXG4gICAgICBxdWVyeVBhcnRzLnB1c2goXHJcbiAgICAgICAgYHRlbXBsYXRlR3JvdXBOYW1lcz0ke3BhcmFtcy50ZW1wbGF0ZUdyb3VwTmFtZXMuam9pbihcIixcIil9YCxcclxuICAgICAgKTtcclxuICAgIGlmIChwYXJhbXMuZml4dHVyZU5hbWVzPy5sZW5ndGgpXHJcbiAgICAgIHF1ZXJ5UGFydHMucHVzaChgZml4dHVyZU5hbWVzPSR7cGFyYW1zLmZpeHR1cmVOYW1lcy5qb2luKFwiLFwiKX1gKTtcclxuICAgIGlmIChwYXJhbXMuc3RvcmVOYW1lcz8ubGVuZ3RoKVxyXG4gICAgICBxdWVyeVBhcnRzLnB1c2goYHN0b3JlTmFtZXM9JHtwYXJhbXMuc3RvcmVOYW1lcy5qb2luKFwiLFwiKX1gKTtcclxuXHJcbiAgICBsZXQgcXVlcnlTdHJpbmcgPSBxdWVyeVBhcnRzLmxlbmd0aCA/IGA/JHtxdWVyeVBhcnRzLmpvaW4oXCImXCIpfWAgOiBcIlwiO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZml4dHVyZVRlbXBsYXRlL3RlbXBsYXRlVHJlZUxpc3Qke3F1ZXJ5U3RyaW5nfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VHJlZUZpbHRlck9wdGlvbnMoY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9maXh0dXJlVGVtcGxhdGUvdHJlZUZpbHRlck9wdGlvbnM/Y2xpZW50SWQ9JHtjbGllbnRJZH1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRlbXBsYXRlVmVyc2lvbkxpc3QodGVtcGxhdGVJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVUZW1wbGF0ZS90ZW1wbGF0ZVZlcnNpb25MaXN0P3RlbXBsYXRlSWQ9JHt0ZW1wbGF0ZUlkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZUFpRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0Rml4dHVyZUFJRGV0YWlscz9maXh0dXJlSWQ9JHtkYXRhfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZVNoZWxmRGV0YWlscyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2ZpeHR1cmVTaGVsZkRldGFpbHN2MmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9ncmFtTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0UGxhbm9ncmFtTGlzdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9ncmFtQ29tcGxpYW5jZURldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9jYWxjdWxhdGVDb21wbGlhbmNlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVQcm9kdWN0TWFwcGluZyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3VwZGF0ZVByb2R1Y3RNYXBwaW5nYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRDb3VudHJpZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJDb3VudHJ5X3YyYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZWdpb25zKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudHJhZmZpY0FwaVVybH0vaGVhZGVyTG9jYXRpb25zX3YyYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRQbGFub1N0b3JlVmlkZW9QYXJhbXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9nZXRQbGFub1N0b3JlVmlkZW9QYXJhbXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHB1Ymxpc2goZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9jcmVhdGVSZXZpc2lvbmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmV2aXNpb25MaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0UmV2aXNpb25zYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZVBsYW5vKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vZ2V0UmV2aXNpb25EYXRhYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRBY3RpdmVSZXZpc2lvbihkYXRhOiB7XHJcbiAgICByZXZpc2lvbklkOiBzdHJpbmc7XHJcbiAgICBwbGFub0lkOiBzdHJpbmc7XHJcbiAgICBmbG9vcklkOiBzdHJpbmc7XHJcbiAgICBzZW5kVmVyaWZpY2F0aW9uVGFzazogYm9vbGVhbjtcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9tYW5hZ2VQbGFuby9zZXRBY3RpdmVSZXZpc2lvbmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlUmV2aXNpb25OYW1lKGRhdGE6IHsgcmV2aXNpb25JZDogc3RyaW5nOyBuYW1lOiBzdHJpbmcgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vbWFuYWdlUGxhbm8vdXBkYXRlUmV2aXNpb25OYW1lYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRTdGFnaW5nRmxhZyhkYXRhOiB7IHJldmlzaW9uSWQ6IHN0cmluZzsgaXNTdGFnaW5nOiBib29sZWFuIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L21hbmFnZVBsYW5vL3NldFN0YWdpbmdGbGFnYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTaGVsZkRldGFpbHMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NoZWxmUHJvZHVjdGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9TdG9yZUxpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFBsYW5vU3RvcmVMaXN0P2NsaWVudElkPSR7ZGF0YX1gLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEFsbFN0b3JlcyhjbGllbnRJZDogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldEFsbFN0b3Jlcz9jbGllbnRJZD0ke2NsaWVudElkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVGbG9vcnNMaXN0KHN0b3JlSWQ6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRTdG9yZUZsb29yc0xpc3Q/c3RvcmVJZD0ke3N0b3JlSWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVQbGFub0Zyb21DQUQoXHJcbiAgICBmaWxlOiBGaWxlLFxyXG4gICAgc3RvcmVJZDogc3RyaW5nLFxyXG4gICAgc3RvcmVOYW1lOiBzdHJpbmcsXHJcbiAgICBmbG9vck51bWJlcjogbnVtYmVyLFxyXG4gICkge1xyXG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuXHJcbiAgICBmb3JtRGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKFwic3RvcmVJZFwiLCBzdG9yZUlkKTtcclxuICAgIGZvcm1EYXRhLmFwcGVuZChcImZsb29yTnVtYmVyXCIsIGZsb29yTnVtYmVyLnRvU3RyaW5nKCkpO1xyXG4gICAgZm9ybURhdGEuYXBwZW5kKFwic3RvcmVOYW1lXCIsIHN0b3JlTmFtZSk7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL2NyZWF0ZVBsYW5vRnJvbUNBRGAsXHJcbiAgICAgIGZvcm1EYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUVtcHR5UGxhbm8oZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vY3JlYXRlRW1wdHlQbGFub2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWxsUGxhbm9JZHMoY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zY3JpcHQvZ2V0QWxsUGxhbm9JZHNNP2NsaWVudElkPSR7Y2xpZW50SWR9YCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmaW5kRml4dHVyZUFpKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9maW5kRml4dHVyZUFJYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBmaW5kRml4dHVyZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZmluZEZpeHR1cmVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlcGxhY2VGaXh0dXJlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9yZXBsYWNlRml4dHVyZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVwbGFjZUJyYW5kTGlzdChjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2dldFJlcGxhY2VCcmFuZExpc3RgLFxyXG4gICAgICB7IGNsaWVudElkIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UmVwbGFjZVZtTGlzdChjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2dldFJlcGxhY2VWbUxpc3RgLFxyXG4gICAgICB7IGNsaWVudElkIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9JZChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZ2V0UGxhbm9JZGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlRml4dHVyZURhdGEoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL3VwZGF0ZUZpeHR1cmVgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGFwcHJvdmVQbGFub0xheW91dChmbG9vcklkOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L29uYm9hcmRQbGFuby9hcHByb3ZlUGxhbm9MYXlvdXRgLFxyXG4gICAgICB7IGZsb29ySWQ6IGZsb29ySWQgfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRNQlFTaGVldChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9nZXRQbGFub0V4Y2VsYCxcclxuICAgICAgZGF0YSxcclxuICAgICAgeyByZXNwb25zZVR5cGU6IFwiYXJyYXlidWZmZXJcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydFBsYW5vT3JkZXJTaGVldChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3NjcmlwdC9nZXRQbGFub09yZGVyRXhjZWxgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gQXN5bmMvUzMgdmFyaWFudHM6IHNlcnZlciBxdWV1ZXMgdGhlIGpvYiwgcmV0dXJucyAyMDIgd2l0aCB7IGpvYklkIH0sIGFuZFxyXG4gIC8vIHNhdmVzIHRoZSBFeGNlbCB0byBTMy4gVXNlIGdldFBsYW5vRXhwb3J0Sm9iKGpvYklkKSB0byBwb2xsIHN0YXR1cy5cclxuICBleHBvcnRNQlFTaGVldEFzeW5jKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2NyaXB0L2dldFBsYW5vRXhjZWxgLFxyXG4gICAgICB7IC4uLmRhdGEsIHNhdmVUb1MzOiB0cnVlIH0sXHJcbiAgICAgIHsgb2JzZXJ2ZTogXCJyZXNwb25zZVwiIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0UGxhbm9PcmRlclNoZWV0QXN5bmMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zY3JpcHQvZ2V0UGxhbm9PcmRlckV4Y2VsYCxcclxuICAgICAgeyAuLi5kYXRhLCBzYXZlVG9TMzogdHJ1ZSB9LFxyXG4gICAgICB7IG9ic2VydmU6IFwicmVzcG9uc2VcIiB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFBsYW5vRXhwb3J0Sm9iKGpvYklkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vc2NyaXB0L2dldFBsYW5vRXhwb3J0Sm9iLyR7ZW5jb2RlVVJJQ29tcG9uZW50KFxyXG4gICAgICAgIGpvYklkLFxyXG4gICAgICApfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcnVuQWxvY2F0aW9uKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vb25ib2FyZFBsYW5vL3J1bkFsb2NhdGlvbmAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0SXZtQ29udmVyc2lvbkFsaWFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vaXZtQ29udmVyc2lvbkFsaWFzYCxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxGaW5kUmVwbGFjZURhdGEoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2dldEFsbEZpbmRSZXBsYWNlRGF0YWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0RmluZFJlcGxhY2VEYXRhQnlJZChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvZ2V0RmluZFJlcGxhY2VEYXRhQnlJZGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUFzRHJhZnQoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL3NhdmVBc0RyYWZ0YCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZU9yQ2x1c3Rlckxpc3QoZGF0YTogeyBzZWFyY2hNb2RlOiBcInN0b3JlXCIgfCBcImNsdXN0ZXJcIiB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL2dldFN0b3JlT3JDbHVzdGVyTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYmF0Y2hGaW5kUmVwbGFjZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvYmF0Y2hGaW5kUmVwbGFjZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXBwcm92ZVJlcGxhY2UoZGF0YToge1xyXG4gICAgZmluZFJlcGxhY2VJZDogc3RyaW5nO1xyXG4gICAgc3RvcmVzPzogYW55W107XHJcbiAgICBzY2hlZHVsZT86IGJvb2xlYW47XHJcbiAgICBzY2hlZHVsZURhdGU/OiBzdHJpbmcgfCBudWxsO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3BsYW5vQUkvYXBwcm92ZVJlcGxhY2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUJhdGNoUHJvZ3Jlc3MoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL3VwZGF0ZUJhdGNoUHJvZ3Jlc3NgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbEZpbmRSZXBsYWNlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9jYW5jZWxGaW5kUmVwbGFjZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlRmluZFJlcGxhY2VBaShkYXRhOiB7IGlkOiBzdHJpbmcgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vcGxhbm9BSS9kZWxldGVGaW5kUmVwbGFjZUFpYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZXZva2VGaW5kUmVwbGFjZShkYXRhOiB7IGZpbmRSZXBsYWNlSWQ6IHN0cmluZyB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9wbGFub0FJL3Jldm9rZUZpbmRSZXBsYWNlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTdG9yZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnN0b3JlQXBpVXJsfS9jcmVhdGUtc3RvcmVgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIHNwb2NFbWFpbENoZWNrKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuc3RvcmVBcGlVcmx9L3Nwb2NFbWFpbENoZWNrYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVJbmZyYVRpY2tldChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2NyZWF0ZVRpY2tldGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9vdGZhbGxEZXRhaWxzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0Rml4dHVyZUZvb3RmYWxsYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUb3BQZXJmb3JtaW5nWm9uZXMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9nZXRUb3BQZXJmb3JtaW5nWm9uZXNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRW5nYWdlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFN0b3JlRW5nYWdlcnNgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRml4dHVyZUVuZ2FnZXJzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0U3RvcmVGaXh0dXJlRW5nYWdlcnNgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFN0b3JlRml4dHVyZUZvb3RmYWxsKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0U3RvcmVGaXh0dXJlRm9vdGZhbGxgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIFZNIEFsbG9jYXRpb24gRW5naW5lXHJcbiAgZ2V0Vm1SdWxlTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9nZXRSdWxlTGlzdGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Vm1SdWxlRGV0YWlscyhydWxlSWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZ2V0UnVsZURldGFpbHNgLFxyXG4gICAgICB7IHBhcmFtczogeyBydWxlSWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZVZtUnVsZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9jcmVhdGVSdWxlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVWbVJ1bGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvdXBkYXRlUnVsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlVm1SdWxlKHJ1bGVJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9kZWxldGVSdWxlLyR7cnVsZUlkfWAsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWN0aXZhdGVWbVJ1bGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvYWN0aXZhdGVSdWxlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWFjdGl2YXRlVm1SdWxlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2RlYWN0aXZhdGVSdWxlYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkdXBsaWNhdGVWbVJ1bGUoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS92bUFsbG9jYXRpb25FbmdpbmUvZHVwbGljYXRlUnVsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYXNzaWduVm1SdWxlU3RvcmVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdm1BbGxvY2F0aW9uRW5naW5lL2Fzc2lnblN0b3Jlc2AsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0QWN0aXZlVm1SdWxlRm9yU3RvcmUoc3RvcmVJZDogc3RyaW5nLCBjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3ZtQWxsb2NhdGlvbkVuZ2luZS9nZXRBY3RpdmVSdWxlRm9yU3RvcmVgLFxyXG4gICAgICB7IHBhcmFtczogeyBzdG9yZUlkLCBjbGllbnRJZCB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rml4dHVyZU51bWJlcnNCeVN0b3JlKFxyXG4gICAgc3RvcmVOYW1lOiBzdHJpbmcsXHJcbiAgICBjbGllbnRJZDogc3RyaW5nLFxyXG4gICAgdGFza1R5cGU6IFwiZml4dHVyZVwiIHwgXCJ6b25lVmVyaWZpY2F0aW9uXCIgPSBcImZpeHR1cmVcIixcclxuICApIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9nZXRGaXh0dXJlTnVtYmVyc0J5U3RvcmVgLFxyXG4gICAgICB7IHBhcmFtczogeyBzdG9yZU5hbWUsIGNsaWVudElkLCB0YXNrVHlwZSB9IH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgYWxsb3dFZGl0V2l0aG91dFJlbW92aW5nUmVzcG9uc2UoZGF0YToge1xyXG4gICAgc3RvcmVOYW1lczogc3RyaW5nW107XHJcbiAgICBjbGllbnRJZDogc3RyaW5nO1xyXG4gICAgdGFza1R5cGU6IFwiZml4dHVyZVwiIHwgXCJ6b25lVmVyaWZpY2F0aW9uXCI7XHJcbiAgICBmaXh0dXJlTnVtYmVycz86IG51bWJlcltdO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svYWxsb3dFZGl0V2l0aG91dFJlbW92aW5nUmVzcG9uc2VgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEZpeHR1cmVEZXRhaWxzQnlTdG9yZShzdG9yZU5hbWU6IHN0cmluZywgY2xpZW50SWQ6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL2dldEZpeHR1cmVEZXRhaWxzQnlTdG9yZWAsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHN0b3JlTmFtZSwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpeHR1cmVUeXBlKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay91cGRhdGVGaXh0dXJlVHlwZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0U3RvcmVGaXh0dXJlc0ZvclJlb3JkZXIoc3RvcmVOYW1lOiBzdHJpbmcsIGNsaWVudElkOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vZ2V0U3RvcmVGaXh0dXJlc0ZvclJlb3JkZXJgLFxyXG4gICAgICB7IHBhcmFtczogeyBzdG9yZU5hbWUsIGNsaWVudElkIH0gfSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICByZW9yZGVyU3RvcmVGaXh0dXJlTnVtYmVycyhkYXRhOiB7IHN0b3JlTmFtZTogc3RyaW5nOyBjbGllbnRJZDogc3RyaW5nIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Jlb3JkZXJTdG9yZUZpeHR1cmVOdW1iZXJzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaXh0dXJlTnVtYmVyTWFudWFsKGRhdGE6IHtcclxuICAgIGZpeHR1cmVJZDogc3RyaW5nO1xyXG4gICAgZml4dHVyZU51bWJlcj86IG51bWJlcjtcclxuICAgIGFzc29jaWF0ZWRFbGVtZW50Rml4dHVyZU51bWJlcj86IG51bWJlcjtcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS91cGRhdGVGaXh0dXJlTnVtYmVyTWFudWFsYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVUYXNrRm9yU3RvcmVzKGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLnN0b3JlQnVpbGRlckFwaVVybH0vdGFzay9kZWxldGVUYXNrRm9yU3RvcmVzYCxcclxuICAgICAgZGF0YSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRGbG9vcnNXaXRoU3RhdHVzKHN0b3JlTmFtZTogc3RyaW5nLCBjbGllbnRJZDogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3Rhc2svZ2V0Rmxvb3JzV2l0aFN0YXR1c2AsXHJcbiAgICAgIHsgcGFyYW1zOiB7IHN0b3JlTmFtZSwgY2xpZW50SWQgfSB9LFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG1vdmVTdG9yZUJ1Y2tldChkYXRhOiB7XHJcbiAgICBmbG9vcklkOiBzdHJpbmc7XHJcbiAgICB0YXJnZXRTdGF0dXM6IFwiZHJhZnRcIiB8IFwiYWxsb2NhdGlvblBlbmRpbmdcIiB8IFwiY29tcGxldGVkXCI7XHJcbiAgICBjbGVhckxheW91dFRhc2tzOiBib29sZWFuO1xyXG4gICAgY2xlYXJGaXh0dXJlVGFza3M6IGJvb2xlYW47XHJcbiAgICBjbGVhclpvbmVUYXNrczogYm9vbGVhbjtcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS90YXNrL21vdmVTdG9yZUJ1Y2tldGAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc3dhcEZpeHR1cmVUZW1wbGF0ZShkYXRhOiB7XHJcbiAgICBkYXRhOiB7IHN0b3JlTmFtZTogc3RyaW5nOyBmaXh0dXJlTnVtYmVyOiBudW1iZXI7IHRlbXBsYXRlTmFtZTogc3RyaW5nIH1bXTtcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoXHJcbiAgICAgIGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9zY3JpcHQvc3dhcEZpeHR1cmVUZW1wbGF0ZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGxhbm9EYXRhU2NoZW1hKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L2dldFBsYW5vRGF0YVNjaGVtYWApO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2FkRmlsZXMoc3RvcmVOYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuc3RvcmVCdWlsZGVyQXBpVXJsfS9vbmJvYXJkUGxhbm8vY2FkRmlsZXNgLCB7XHJcbiAgICAgIHBhcmFtczogeyBzdG9yZU5hbWUgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcnVuUGxhbm9EYXRhUXVlcnkoZGF0YToge1xyXG4gICAgY2xpZW50SWQ6IHN0cmluZztcclxuICAgIHN0b3JlTmFtZXM6IHN0cmluZ1tdO1xyXG4gICAgZmlsdGVyczogeyBmaWVsZDogc3RyaW5nOyBvcGVyYXRvcjogc3RyaW5nOyB2YWx1ZTogYW55IH1bXTtcclxuICAgIGZpbHRlckNvbWJpbmF0b3I6IFwiQU5EXCIgfCBcIk9SXCI7XHJcbiAgICBzZWxlY3Rpb25Nb2RlOiBcImFsbFwiIHwgXCJmaXJzdE5cIjtcclxuICAgIGxpbWl0UGVyU3RvcmU/OiBudW1iZXI7XHJcbiAgICBjb2x1bW5zOiB7IGtleTogc3RyaW5nOyBsYWJlbD86IHN0cmluZyB9W107XHJcbiAgICBpbmNsdWRlTm90Rm91bmRSb3dzPzogYm9vbGVhbjtcclxuICB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3J1blBsYW5vRGF0YVF1ZXJ5YCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBydW5WbVBsYWNlbWVudFF1ZXJ5KGRhdGE6IHtcclxuICAgIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgICBzdG9yZU5hbWVzOiBzdHJpbmdbXTtcclxuICAgIHZtTmFtZTogc3RyaW5nO1xyXG4gIH0pIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy5zdG9yZUJ1aWxkZXJBcGlVcmx9L3J1blZtUGxhY2VtZW50UXVlcnlgLFxyXG4gICAgICBkYXRhLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -45,6 +45,7 @@ import { OnboardStorePlanoComponent } from "./components/onboard-store-plano/onb
45
45
  import { CadRenderComponent } from "./components/plano-tools/cad-render/cad-render.component";
46
46
  import { AllowEditComponent } from "./components/plano-tools/allow-edit/allow-edit.component";
47
47
  import { DeleteTaskComponent } from "./components/plano-tools/delete-task/delete-task.component";
48
+ import { DeleteFloorComponent } from "./components/plano-tools/delete-floor/delete-floor.component";
48
49
  import { UpdateFixtureTypeComponent } from "./components/plano-tools/update-fixture-type/update-fixture-type.component";
49
50
  import { PlanoDataExportComponent } from "./components/plano-tools/plano-data-export/plano-data-export.component";
50
51
  import { StoreExportsComponent } from "./components/plano-tools/store-exports/store-exports.component";
@@ -232,6 +233,10 @@ const routes = [
232
233
  path: "delete-task",
233
234
  component: DeleteTaskComponent,
234
235
  },
236
+ {
237
+ path: "delete-floor",
238
+ component: DeleteFloorComponent,
239
+ },
235
240
  {
236
241
  path: "update-fixture-type",
237
242
  component: UpdateFixtureTypeComponent,
@@ -305,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
305
310
  exports: [RouterModule],
306
311
  }]
307
312
  }] });
308
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tc3RvcmUtYnVpbGRlci1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi90YW5nby1zdG9yZS1idWlsZGVyLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVGQUF1RixDQUFDO0FBQ3RJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFN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XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTGF5b3V0QnVpbGRlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbGF5b3V0LWJ1aWxkZXIvbGF5b3V0LWJ1aWxkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZUxheW91dENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY3JlYXRlLWxheW91dC9jcmVhdGUtbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBMYXlvdXRTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9sYXlvdXQtc3VtbWFyeS9sYXlvdXQtc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVMYXlvdXRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvc3RvcmUtbGF5b3V0LXRhYmxlL3N0b3JlLWxheW91dC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdG9yZS1idWlsZGVyL3N0b3JlLWJ1aWxkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZVN0b3JlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGUtc3RvcmUvY3JlYXRlLXN0b3JlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBMYXlvdXRFbGVtZW50c0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbGF5b3V0LWVsZW1lbnRzL2xheW91dC1lbGVtZW50cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVmlzdWFsaXplVm1EYXRhQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy92aXN1YWxpemUtdm0tZGF0YS92aXN1YWxpemUtdm0tZGF0YS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWFuYWdlU3RvcmVQbGFub0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXN0b3JlLXBsYW5vL21hbmFnZS1zdG9yZS1wbGFuby5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL2ZpeHR1cmUtdGVtcGxhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpeHR1cmVUZW1wbGF0ZVRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlLXRhYmxlL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRlbXBsYXRlQmFzaWNEZXRhaWxzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLWJhc2ljLWRldGFpbHMvdGVtcGxhdGUtYmFzaWMtZGV0YWlscy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVWbXNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUvdGVtcGxhdGUtdm1zL3RlbXBsYXRlLXZtcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVTdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLXN1bW1hcnkvdGVtcGxhdGUtc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVQcm9kdWN0c0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZml4dHVyZS10ZW1wbGF0ZS90ZW1wbGF0ZS1wcm9kdWN0cy90ZW1wbGF0ZS1wcm9kdWN0cy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9MaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L3BsYW5vLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpeHR1cmVMaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L2ZpeHR1cmUtbGlicmFyeS9maXh0dXJlLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFZtTGlicmFyeUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tbGlicmFyeS92bS1saWJyYXJ5L3ZtLWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFByb2R1Y3RMaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L3Byb2R1Y3QtbGlicmFyeS9wcm9kdWN0LWxpYnJhcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vQ29uZmlndXJhdGlvbnNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLWNvbmZpZ3VyYXRpb25zL3BsYW5vLWNvbmZpZ3VyYXRpb25zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDcmVhdGVGaXh0dXJlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGUtZml4dHVyZS9jcmVhdGUtZml4dHVyZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ3JlYXRlVm1Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NyZWF0ZS12bS9jcmVhdGUtdm0uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZVByb2R1Y3RDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0L2NyZWF0ZS1wcm9kdWN0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBjYW5EZWFjdGl2YXRlR3VhcmQgfSBmcm9tIFwiLi9mdW5jdGlvbnMvZXhpdC5ndWFyZFwiO1xyXG5pbXBvcnQgeyBQbGFub1JvbGxvdXRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL3JvbGxvdXQtdGFibGUvcm9sbG91dC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9WZXJpZmljYXRpb25UYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL3ZlcmlmaWNhdGlvbi10YWJsZS92ZXJpZmljYXRpb24tdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1hbmFnZVBsYW5vQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9tYW5hZ2UtcGxhbm8vbWFuYWdlLXBsYW5vLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub1JvbGxvdXRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL21hbmFnZS1zdG9yZS1wbGFuby9wbGFuby1yb2xsb3V0L3BsYW5vLXJvbGxvdXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFRlbXBsYXRlQXNzaWduU3RvcmVzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLWFzc2lnbi1zdG9yZXMvdGVtcGxhdGUtYXNzaWduLXN0b3Jlcy5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRmluZEFuZFJlcGxhY2VDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUvZmluZC1hbmQtcmVwbGFjZS9maW5kLWFuZC1yZXBsYWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub0J1aWxkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3BsYW5vLWJ1aWxkZXIvcGxhbm8tYnVpbGRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9NaWdyYXRlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9wbGFuby1taWdyYXRlL3BsYW5vLW1pZ3JhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vZ3JhbS9wbGFuby10YWJsZS9wbGFuby10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVG9vbHNQYXJlbnRDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3Rvb2xzLXBhcmVudC90b29scy1wYXJlbnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vRGV0YWlsc1BhcmVudENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLWRldGFpbHMtcGFyZW50L3BsYW5vLWRldGFpbHMtcGFyZW50LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVXBkYXRlQWlDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdXBkYXRlLWFpL2NvbGxlY3Rpb24tdXBkYXRlLWFpLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaW5kUmVwbGFjZVRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXVwZGF0ZS1haS9maW5kLXJlcGxhY2UtdGFibGUvZmluZC1yZXBsYWNlLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaW5kUmVwbGFjZUxheW91dENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29sbGVjdGlvbi11cGRhdGUtYWkvZmluZC1yZXBsYWNlLWxheW91dC9maW5kLXJlcGxhY2UtbGF5b3V0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQcmVwYXJlVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdXBkYXRlLWFpL2ZpbmQtcmVwbGFjZS1sYXlvdXQvcHJlcGFyZS10ZW1wbGF0ZS9wcmVwYXJlLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBSZXZpZXdSZXBsYWNlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXVwZGF0ZS1haS9maW5kLXJlcGxhY2UtbGF5b3V0L3Jldmlldy1yZXBsYWNlL3Jldmlldy1yZXBsYWNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub09uYm9hcmRUYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXBsYW5vL29uYm9hcmQtdGFibGUvb25ib2FyZC10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgT25ib2FyZFN0b3JlUGxhbm9Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL29uYm9hcmQtc3RvcmUtcGxhbm8vb25ib2FyZC1zdG9yZS1wbGFuby5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ2FkUmVuZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9jYWQtcmVuZGVyL2NhZC1yZW5kZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEFsbG93RWRpdENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvYWxsb3ctZWRpdC9hbGxvdy1lZGl0LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZWxldGVUYXNrQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9kZWxldGUtdGFzay9kZWxldGUtdGFzay5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVXBkYXRlRml4dHVyZVR5cGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3VwZGF0ZS1maXh0dXJlLXR5cGUvdXBkYXRlLWZpeHR1cmUtdHlwZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9EYXRhRXhwb3J0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9wbGFuby1kYXRhLWV4cG9ydC9wbGFuby1kYXRhLWV4cG9ydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVFeHBvcnRzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9zdG9yZS1leHBvcnRzL3N0b3JlLWV4cG9ydHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1vZGlmeUZpeHR1cmVOdW1iZXJzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9tb2RpZnktZml4dHVyZS1udW1iZXJzL21vZGlmeS1maXh0dXJlLW51bWJlcnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN3YXBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvc3dhcC10ZW1wbGF0ZS9zd2FwLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNb3ZlQnVja2V0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9tb3ZlLWJ1Y2tldC9tb3ZlLWJ1Y2tldC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ2FkRmlsZXNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL2NhZC1maWxlcy9jYWQtZmlsZXMuY29tcG9uZW50XCI7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiBcImxheW91dC1idWlsZGVyXCIsXHJcbiAgICBjb21wb25lbnQ6IExheW91dEJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJjcmVhdGVcIixcclxuICAgICAgICBjb21wb25lbnQ6IENyZWF0ZUxheW91dENvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwic3VtbWFyeVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogTGF5b3V0U3VtbWFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImxheW91dC1lbGVtZW50c1wiLFxyXG4gICAgY29tcG9uZW50OiBMYXlvdXRFbGVtZW50c0NvbXBvbmVudCxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwidmlzdWFsaXplLXZtc1wiLFxyXG4gICAgY29tcG9uZW50OiBWaXN1YWxpemVWbURhdGFDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLWJ1aWxkZXJcIixcclxuICAgIGNvbXBvbmVudDogU3RvcmVCdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiY3JlYXRlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBDcmVhdGVTdG9yZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLWxheW91dFwiLFxyXG4gICAgY29tcG9uZW50OiBTdG9yZUxheW91dFRhYmxlQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2UtcGxhbm9ncmFtc1wiLFxyXG4gICAgY29tcG9uZW50OiBNYW5hZ2VQbGFub0NvbXBvbmVudCxcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIm9uYm9hcmRcIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vT25ib2FyZFRhYmxlQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJ2ZXJpZmljYXRpb25cIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vVmVyaWZpY2F0aW9uVGFibGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInJvbGxvdXRcIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vUm9sbG91dFRhYmxlQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJcIixcclxuICAgICAgICByZWRpcmVjdFRvOiBcInZlcmlmaWNhdGlvblwiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2UtcGxhbm9ncmFtXCIsXHJcbiAgICBjb21wb25lbnQ6IE1hbmFnZVN0b3JlUGxhbm9Db21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcIm9uYm9hcmQtcGxhbm9ncmFtXCIsXHJcbiAgICBjb21wb25lbnQ6IE9uYm9hcmRTdG9yZVBsYW5vQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJmaXh0dXJlLXRlbXBsYXRlc1wiLFxyXG4gICAgY29tcG9uZW50OiBGaXh0dXJlVGVtcGxhdGVUYWJsZUNvbXBvbmVudCxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiZmluZEFuZFJlcGxhY2VcIixcclxuICAgIGNvbXBvbmVudDogRmluZEFuZFJlcGxhY2VDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImZpeHR1cmUtdGVtcGxhdGVcIixcclxuICAgIGNvbXBvbmVudDogRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgY2FuRGVhY3RpdmF0ZTogW2NhbkRlYWN0aXZhdGVHdWFyZF0sXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJiYXNpYy1kZXRhaWxzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBUZW1wbGF0ZUJhc2ljRGV0YWlsc0NvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwicHJvZHVjdHNcIixcclxuICAgICAgICBjb21wb25lbnQ6IFRlbXBsYXRlUHJvZHVjdHNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInZtc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVtcGxhdGVWbXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInN1bW1hcnlcIixcclxuICAgICAgICBjb21wb25lbnQ6IFRlbXBsYXRlU3VtbWFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYXNzaWduLXN0b3Jlc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVtcGxhdGVBc3NpZ25TdG9yZXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIHJlZGlyZWN0VG86IFwiYmFzaWMtZGV0YWlsc1wiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJsaWJyYXJ5XCIsXHJcbiAgICBjb21wb25lbnQ6IFBsYW5vTGlicmFyeUNvbXBvbmVudCxcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImZpeHR1cmVzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBGaXh0dXJlTGlicmFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwidm1zXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBWbUxpYnJhcnlDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInByb2R1Y3RzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TGlicmFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgICAgcmVkaXJlY3RUbzogXCJmaXh0dXJlc1wiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJjcmVhdGUtbGlicmFyeS1maXh0dXJlXCIsXHJcbiAgICBjb21wb25lbnQ6IENyZWF0ZUZpeHR1cmVDb21wb25lbnQsXHJcbiAgICBjYW5EZWFjdGl2YXRlOiBbY2FuRGVhY3RpdmF0ZUd1YXJkXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiY3JlYXRlLWxpYnJhcnktdm1cIixcclxuICAgIGNvbXBvbmVudDogQ3JlYXRlVm1Db21wb25lbnQsXHJcbiAgICBjYW5EZWFjdGl2YXRlOiBbY2FuRGVhY3RpdmF0ZUd1YXJkXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiY3JlYXRlLWxpYnJhcnktcHJvZHVjdFwiLFxyXG4gICAgY29tcG9uZW50OiBDcmVhdGVQcm9kdWN0Q29tcG9uZW50LFxyXG4gICAgY2FuRGVhY3RpdmF0ZTogW2NhbkRlYWN0aXZhdGVHdWFyZF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImNvbmZpZ1wiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub0NvbmZpZ3VyYXRpb25zQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2Utcm9sbG91dFwiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub1JvbGxvdXRDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInBsYW5vLXRvb2xzXCIsXHJcbiAgICBjb21wb25lbnQ6IFRvb2xzUGFyZW50Q29tcG9uZW50LFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYnVpbGRlclwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUGxhbm9CdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJtaWdyYXRlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQbGFub01pZ3JhdGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImNhZC1yZW5kZXJcIixcclxuICAgICAgICBjb21wb25lbnQ6IENhZFJlbmRlckNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYWxsb3ctZWRpdFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogQWxsb3dFZGl0Q29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJkZWxldGUtdGFza1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogRGVsZXRlVGFza0NvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwidXBkYXRlLWZpeHR1cmUtdHlwZVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVXBkYXRlRml4dHVyZVR5cGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIm1vZGlmeS1maXh0dXJlLW51bWJlcnNcIixcclxuICAgICAgICBjb21wb25lbnQ6IE1vZGlmeUZpeHR1cmVOdW1iZXJzQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJkYXRhLWV4cG9ydFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUGxhbm9EYXRhRXhwb3J0Q29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJzdG9yZS1leHBvcnRzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBTdG9yZUV4cG9ydHNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInN3YXAtdGVtcGxhdGVcIixcclxuICAgICAgICBjb21wb25lbnQ6IFN3YXBUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwibW92ZS1idWNrZXRcIixcclxuICAgICAgICBjb21wb25lbnQ6IE1vdmVCdWNrZXRDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImNhZC1maWxlc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogQ2FkRmlsZXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJzdG9yZS1wbGFub2dyYW1zXCIsXHJcbiAgICBjb21wb25lbnQ6IFBsYW5vVGFibGVDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLXBsYW5vZ3JhbVwiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub0RldGFpbHNQYXJlbnRDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImZpbmQtcmVwbGFjZS10YWJsZVwiLFxyXG4gICAgY29tcG9uZW50OiBGaW5kUmVwbGFjZVRhYmxlQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJmaW5kLXJlcGxhY2VcIixcclxuICAgIGNvbXBvbmVudDogRmluZFJlcGxhY2VMYXlvdXRDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJwcmVwYXJlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQcmVwYXJlVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInJldmlld1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUmV2aWV3UmVwbGFjZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImNvbGxlY3Rpb24tdXBkYXRlLWFpXCIsXHJcbiAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25VcGRhdGVBaUNvbXBvbmVudCxcclxuICB9LFxyXG5dO1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb1N0b3JlQnVpbGRlclJvdXRpbmdNb2R1bGUge31cclxuIl19
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tc3RvcmUtYnVpbGRlci1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLWJ1aWxkZXIvc3JjL2xpYi90YW5nby1zdG9yZS1idWlsZGVyLXJvdXRpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHNFQUFzRSxDQUFDO0FBQ3JILE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHVGQUF1RixDQUFDO0FBQ3RJLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1FQUFtRSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFN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Q3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBMYXlvdXRCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9sYXlvdXQtYnVpbGRlci9sYXlvdXQtYnVpbGRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ3JlYXRlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jcmVhdGUtbGF5b3V0L2NyZWF0ZS1sYXlvdXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IExheW91dFN1bW1hcnlDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2xheW91dC1zdW1tYXJ5L2xheW91dC1zdW1tYXJ5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdG9yZUxheW91dFRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zdG9yZS1sYXlvdXQtdGFibGUvc3RvcmUtbGF5b3V0LXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTdG9yZUJ1aWxkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3N0b3JlLWJ1aWxkZXIvc3RvcmUtYnVpbGRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ3JlYXRlU3RvcmVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NyZWF0ZS1zdG9yZS9jcmVhdGUtc3RvcmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IExheW91dEVsZW1lbnRzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9sYXlvdXQtZWxlbWVudHMvbGF5b3V0LWVsZW1lbnRzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBWaXN1YWxpemVWbURhdGFDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3Zpc3VhbGl6ZS12bS1kYXRhL3Zpc3VhbGl6ZS12bS1kYXRhLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNYW5hZ2VTdG9yZVBsYW5vQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9tYW5hZ2Utc3RvcmUtcGxhbm8vbWFuYWdlLXN0b3JlLXBsYW5vLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaXh0dXJlVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUvZml4dHVyZS10ZW1wbGF0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRml4dHVyZVRlbXBsYXRlVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUtdGFibGUvZml4dHVyZS10ZW1wbGF0ZS10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVCYXNpY0RldGFpbHNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUvdGVtcGxhdGUtYmFzaWMtZGV0YWlscy90ZW1wbGF0ZS1iYXNpYy1kZXRhaWxzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVZtc0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZml4dHVyZS10ZW1wbGF0ZS90ZW1wbGF0ZS12bXMvdGVtcGxhdGUtdm1zLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVN1bW1hcnlDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUvdGVtcGxhdGUtc3VtbWFyeS90ZW1wbGF0ZS1zdW1tYXJ5LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVByb2R1Y3RzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9maXh0dXJlLXRlbXBsYXRlL3RlbXBsYXRlLXByb2R1Y3RzL3RlbXBsYXRlLXByb2R1Y3RzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub0xpYnJhcnlDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLWxpYnJhcnkvcGxhbm8tbGlicmFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgRml4dHVyZUxpYnJhcnlDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLWxpYnJhcnkvZml4dHVyZS1saWJyYXJ5L2ZpeHR1cmUtbGlicmFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVm1MaWJyYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby1saWJyYXJ5L3ZtLWxpYnJhcnkvdm0tbGlicmFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUHJvZHVjdExpYnJhcnlDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLWxpYnJhcnkvcHJvZHVjdC1saWJyYXJ5L3Byb2R1Y3QtbGlicmFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9Db25maWd1cmF0aW9uc0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tY29uZmlndXJhdGlvbnMvcGxhbm8tY29uZmlndXJhdGlvbnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENyZWF0ZUZpeHR1cmVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NyZWF0ZS1maXh0dXJlL2NyZWF0ZS1maXh0dXJlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDcmVhdGVWbUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY3JlYXRlLXZtL2NyZWF0ZS12bS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY3JlYXRlLXByb2R1Y3QvY3JlYXRlLXByb2R1Y3QuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IGNhbkRlYWN0aXZhdGVHdWFyZCB9IGZyb20gXCIuL2Z1bmN0aW9ucy9leGl0Lmd1YXJkXCI7XHJcbmltcG9ydCB7IFBsYW5vUm9sbG91dFRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9tYW5hZ2UtcGxhbm8vcm9sbG91dC10YWJsZS9yb2xsb3V0LXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub1ZlcmlmaWNhdGlvblRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9tYW5hZ2UtcGxhbm8vdmVyaWZpY2F0aW9uLXRhYmxlL3ZlcmlmaWNhdGlvbi10YWJsZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTWFuYWdlUGxhbm9Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL21hbmFnZS1wbGFuby9tYW5hZ2UtcGxhbm8uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vUm9sbG91dENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbWFuYWdlLXN0b3JlLXBsYW5vL3BsYW5vLXJvbGxvdXQvcGxhbm8tcm9sbG91dC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVGVtcGxhdGVBc3NpZ25TdG9yZXNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2ZpeHR1cmUtdGVtcGxhdGUvdGVtcGxhdGUtYXNzaWduLXN0b3Jlcy90ZW1wbGF0ZS1hc3NpZ24tc3RvcmVzLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGaW5kQW5kUmVwbGFjZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvZml4dHVyZS10ZW1wbGF0ZS10YWJsZS9maW5kLWFuZC1yZXBsYWNlL2ZpbmQtYW5kLXJlcGxhY2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vQnVpbGRlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvcGxhbm8tYnVpbGRlci9wbGFuby1idWlsZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBQbGFub01pZ3JhdGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3BsYW5vLW1pZ3JhdGUvcGxhbm8tbWlncmF0ZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9UYWJsZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm9ncmFtL3BsYW5vLXRhYmxlL3BsYW5vLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBUb29sc1BhcmVudENvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvdG9vbHMtcGFyZW50L3Rvb2xzLXBhcmVudC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9EZXRhaWxzUGFyZW50Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFub2dyYW0vcGxhbm8tZGV0YWlscy1wYXJlbnQvcGxhbm8tZGV0YWlscy1wYXJlbnQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25VcGRhdGVBaUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29sbGVjdGlvbi11cGRhdGUtYWkvY29sbGVjdGlvbi11cGRhdGUtYWkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpbmRSZXBsYWNlVGFibGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdXBkYXRlLWFpL2ZpbmQtcmVwbGFjZS10YWJsZS9maW5kLXJlcGxhY2UtdGFibGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZpbmRSZXBsYWNlTGF5b3V0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9jb2xsZWN0aW9uLXVwZGF0ZS1haS9maW5kLXJlcGxhY2UtbGF5b3V0L2ZpbmQtcmVwbGFjZS1sYXlvdXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFByZXBhcmVUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29sbGVjdGlvbi11cGRhdGUtYWkvZmluZC1yZXBsYWNlLWxheW91dC9wcmVwYXJlLXRlbXBsYXRlL3ByZXBhcmUtdGVtcGxhdGUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFJldmlld1JlcGxhY2VDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdXBkYXRlLWFpL2ZpbmQtcmVwbGFjZS1sYXlvdXQvcmV2aWV3LXJlcGxhY2UvcmV2aWV3LXJlcGxhY2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFBsYW5vT25ib2FyZFRhYmxlQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9tYW5hZ2UtcGxhbm8vb25ib2FyZC10YWJsZS9vbmJvYXJkLXRhYmxlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBPbmJvYXJkU3RvcmVQbGFub0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvb25ib2FyZC1zdG9yZS1wbGFuby9vbmJvYXJkLXN0b3JlLXBsYW5vLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBDYWRSZW5kZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL2NhZC1yZW5kZXIvY2FkLXJlbmRlci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQWxsb3dFZGl0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9hbGxvdy1lZGl0L2FsbG93LWVkaXQuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IERlbGV0ZVRhc2tDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL2RlbGV0ZS10YXNrL2RlbGV0ZS10YXNrLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBEZWxldGVGbG9vckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvZGVsZXRlLWZsb29yL2RlbGV0ZS1mbG9vci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgVXBkYXRlRml4dHVyZVR5cGVDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL3VwZGF0ZS1maXh0dXJlLXR5cGUvdXBkYXRlLWZpeHR1cmUtdHlwZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgUGxhbm9EYXRhRXhwb3J0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9wbGFuby1kYXRhLWV4cG9ydC9wbGFuby1kYXRhLWV4cG9ydC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU3RvcmVFeHBvcnRzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9zdG9yZS1leHBvcnRzL3N0b3JlLWV4cG9ydHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IE1vZGlmeUZpeHR1cmVOdW1iZXJzQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9tb2RpZnktZml4dHVyZS1udW1iZXJzL21vZGlmeS1maXh0dXJlLW51bWJlcnMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFN3YXBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvcGxhbm8tdG9vbHMvc3dhcC10ZW1wbGF0ZS9zd2FwLXRlbXBsYXRlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBNb3ZlQnVja2V0Q29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9wbGFuby10b29scy9tb3ZlLWJ1Y2tldC9tb3ZlLWJ1Y2tldC5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgQ2FkRmlsZXNDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3BsYW5vLXRvb2xzL2NhZC1maWxlcy9jYWQtZmlsZXMuY29tcG9uZW50XCI7XHJcblxyXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcclxuICB7XHJcbiAgICBwYXRoOiBcImxheW91dC1idWlsZGVyXCIsXHJcbiAgICBjb21wb25lbnQ6IExheW91dEJ1aWxkZXJDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJjcmVhdGVcIixcclxuICAgICAgICBjb21wb25lbnQ6IENyZWF0ZUxheW91dENvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwic3VtbWFyeVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogTGF5b3V0U3VtbWFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImxheW91dC1lbGVtZW50c1wiLFxyXG4gICAgY29tcG9uZW50OiBMYXlvdXRFbGVtZW50c0NvbXBvbmVudCxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwidmlzdWFsaXplLXZtc1wiLFxyXG4gICAgY29tcG9uZW50OiBWaXN1YWxpemVWbURhdGFDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLWJ1aWxkZXJcIixcclxuICAgIGNvbXBvbmVudDogU3RvcmVCdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiY3JlYXRlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBDcmVhdGVTdG9yZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLWxheW91dFwiLFxyXG4gICAgY29tcG9uZW50OiBTdG9yZUxheW91dFRhYmxlQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2UtcGxhbm9ncmFtc1wiLFxyXG4gICAgY29tcG9uZW50OiBNYW5hZ2VQbGFub0NvbXBvbmVudCxcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIm9uYm9hcmRcIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vT25ib2FyZFRhYmxlQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJ2ZXJpZmljYXRpb25cIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vVmVyaWZpY2F0aW9uVGFibGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInJvbGxvdXRcIixcclxuICAgICAgICBjb21wb25lbnQ6IFBsYW5vUm9sbG91dFRhYmxlQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJcIixcclxuICAgICAgICByZWRpcmVjdFRvOiBcInZlcmlmaWNhdGlvblwiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2UtcGxhbm9ncmFtXCIsXHJcbiAgICBjb21wb25lbnQ6IE1hbmFnZVN0b3JlUGxhbm9Db21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcIm9uYm9hcmQtcGxhbm9ncmFtXCIsXHJcbiAgICBjb21wb25lbnQ6IE9uYm9hcmRTdG9yZVBsYW5vQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJmaXh0dXJlLXRlbXBsYXRlc1wiLFxyXG4gICAgY29tcG9uZW50OiBGaXh0dXJlVGVtcGxhdGVUYWJsZUNvbXBvbmVudCxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiZmluZEFuZFJlcGxhY2VcIixcclxuICAgIGNvbXBvbmVudDogRmluZEFuZFJlcGxhY2VDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImZpeHR1cmUtdGVtcGxhdGVcIixcclxuICAgIGNvbXBvbmVudDogRml4dHVyZVRlbXBsYXRlQ29tcG9uZW50LFxyXG4gICAgY2FuRGVhY3RpdmF0ZTogW2NhbkRlYWN0aXZhdGVHdWFyZF0sXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJiYXNpYy1kZXRhaWxzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBUZW1wbGF0ZUJhc2ljRGV0YWlsc0NvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwicHJvZHVjdHNcIixcclxuICAgICAgICBjb21wb25lbnQ6IFRlbXBsYXRlUHJvZHVjdHNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInZtc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVtcGxhdGVWbXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInN1bW1hcnlcIixcclxuICAgICAgICBjb21wb25lbnQ6IFRlbXBsYXRlU3VtbWFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYXNzaWduLXN0b3Jlc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVGVtcGxhdGVBc3NpZ25TdG9yZXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIlwiLFxyXG4gICAgICAgIHJlZGlyZWN0VG86IFwiYmFzaWMtZGV0YWlsc1wiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJsaWJyYXJ5XCIsXHJcbiAgICBjb21wb25lbnQ6IFBsYW5vTGlicmFyeUNvbXBvbmVudCxcclxuICAgIGNoaWxkcmVuOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImZpeHR1cmVzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBGaXh0dXJlTGlicmFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwidm1zXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBWbUxpYnJhcnlDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInByb2R1Y3RzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0TGlicmFyeUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiXCIsXHJcbiAgICAgICAgcmVkaXJlY3RUbzogXCJmaXh0dXJlc1wiLFxyXG4gICAgICAgIHBhdGhNYXRjaDogXCJmdWxsXCIsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJjcmVhdGUtbGlicmFyeS1maXh0dXJlXCIsXHJcbiAgICBjb21wb25lbnQ6IENyZWF0ZUZpeHR1cmVDb21wb25lbnQsXHJcbiAgICBjYW5EZWFjdGl2YXRlOiBbY2FuRGVhY3RpdmF0ZUd1YXJkXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiY3JlYXRlLWxpYnJhcnktdm1cIixcclxuICAgIGNvbXBvbmVudDogQ3JlYXRlVm1Db21wb25lbnQsXHJcbiAgICBjYW5EZWFjdGl2YXRlOiBbY2FuRGVhY3RpdmF0ZUd1YXJkXSxcclxuICB9LFxyXG4gIHtcclxuICAgIHBhdGg6IFwiY3JlYXRlLWxpYnJhcnktcHJvZHVjdFwiLFxyXG4gICAgY29tcG9uZW50OiBDcmVhdGVQcm9kdWN0Q29tcG9uZW50LFxyXG4gICAgY2FuRGVhY3RpdmF0ZTogW2NhbkRlYWN0aXZhdGVHdWFyZF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImNvbmZpZ1wiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub0NvbmZpZ3VyYXRpb25zQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJtYW5hZ2Utcm9sbG91dFwiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub1JvbGxvdXRDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInBsYW5vLXRvb2xzXCIsXHJcbiAgICBjb21wb25lbnQ6IFRvb2xzUGFyZW50Q29tcG9uZW50LFxyXG4gICAgY2hpbGRyZW46IFtcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYnVpbGRlclwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUGxhbm9CdWlsZGVyQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJtaWdyYXRlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQbGFub01pZ3JhdGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImNhZC1yZW5kZXJcIixcclxuICAgICAgICBjb21wb25lbnQ6IENhZFJlbmRlckNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiYWxsb3ctZWRpdFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogQWxsb3dFZGl0Q29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJkZWxldGUtdGFza1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogRGVsZXRlVGFza0NvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwiZGVsZXRlLWZsb29yXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBEZWxldGVGbG9vckNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwidXBkYXRlLWZpeHR1cmUtdHlwZVwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogVXBkYXRlRml4dHVyZVR5cGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcIm1vZGlmeS1maXh0dXJlLW51bWJlcnNcIixcclxuICAgICAgICBjb21wb25lbnQ6IE1vZGlmeUZpeHR1cmVOdW1iZXJzQ29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJkYXRhLWV4cG9ydFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUGxhbm9EYXRhRXhwb3J0Q29tcG9uZW50LFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJzdG9yZS1leHBvcnRzXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBTdG9yZUV4cG9ydHNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInN3YXAtdGVtcGxhdGVcIixcclxuICAgICAgICBjb21wb25lbnQ6IFN3YXBUZW1wbGF0ZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHBhdGg6IFwibW92ZS1idWNrZXRcIixcclxuICAgICAgICBjb21wb25lbnQ6IE1vdmVCdWNrZXRDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcImNhZC1maWxlc1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogQ2FkRmlsZXNDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICBdLFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJzdG9yZS1wbGFub2dyYW1zXCIsXHJcbiAgICBjb21wb25lbnQ6IFBsYW5vVGFibGVDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcInN0b3JlLXBsYW5vZ3JhbVwiLFxyXG4gICAgY29tcG9uZW50OiBQbGFub0RldGFpbHNQYXJlbnRDb21wb25lbnQsXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImZpbmQtcmVwbGFjZS10YWJsZVwiLFxyXG4gICAgY29tcG9uZW50OiBGaW5kUmVwbGFjZVRhYmxlQ29tcG9uZW50LFxyXG4gIH0sXHJcbiAge1xyXG4gICAgcGF0aDogXCJmaW5kLXJlcGxhY2VcIixcclxuICAgIGNvbXBvbmVudDogRmluZFJlcGxhY2VMYXlvdXRDb21wb25lbnQsXHJcbiAgICBjaGlsZHJlbjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcGF0aDogXCJwcmVwYXJlXCIsXHJcbiAgICAgICAgY29tcG9uZW50OiBQcmVwYXJlVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwYXRoOiBcInJldmlld1wiLFxyXG4gICAgICAgIGNvbXBvbmVudDogUmV2aWV3UmVwbGFjZUNvbXBvbmVudCxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfSxcclxuICB7XHJcbiAgICBwYXRoOiBcImNvbGxlY3Rpb24tdXBkYXRlLWFpXCIsXHJcbiAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25VcGRhdGVBaUNvbXBvbmVudCxcclxuICB9LFxyXG5dO1xyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXHJcbiAgZXhwb3J0czogW1JvdXRlck1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYW5nb1N0b3JlQnVpbGRlclJvdXRpbmdNb2R1bGUge31cclxuIl19