@talrace/ngx-noder 0.0.10 → 0.0.11

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 (28) hide show
  1. package/esm2022/lib/apart-components/editor-title/editor-title.component.mjs +6 -3
  2. package/esm2022/lib/apart-components/editor-title-mobile/editor-title-mobile.component.mjs +3 -3
  3. package/esm2022/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.mjs +20 -5
  4. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component.mjs +1 -1
  5. package/esm2022/lib/apart-components/editor-toolbar/editor-toolbar.module.mjs +13 -3
  6. package/esm2022/lib/editor/components/shared/abstract/base.component.mjs +3 -3
  7. package/esm2022/lib/editor/display/layers/text.layer.mjs +4 -3
  8. package/esm2022/lib/editor/execution/editor.mjs +34 -3
  9. package/esm2022/lib/editor/execution/regulator.service.mjs +6 -5
  10. package/esm2022/lib/editor/interaction/editor.service.mjs +8 -1
  11. package/esm2022/lib/models/generated/link-data.model.mjs +1 -1
  12. package/esm2022/public-api.mjs +4 -1
  13. package/fesm2022/talrace-ngx-noder.mjs +298 -231
  14. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  15. package/lib/apart-components/editor-title/editor-title.component.d.ts +2 -1
  16. package/lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component.d.ts +6 -1
  17. package/lib/apart-components/editor-toolbar/editor-toolbar.module.d.ts +1 -1
  18. package/lib/editor/execution/editor.d.ts +2 -0
  19. package/lib/editor/interaction/editor.service.d.ts +3 -0
  20. package/lib/models/generated/link-data.model.d.ts +2 -0
  21. package/package.json +1 -1
  22. package/public-api.d.ts +3 -0
  23. package/src/assets/fonts/nc-iconfont.eot +0 -0
  24. package/src/assets/fonts/nc-iconfont.scss +183 -0
  25. package/src/assets/fonts/nc-iconfont.svg +1 -53
  26. package/src/assets/fonts/nc-iconfont.ttf +0 -0
  27. package/src/assets/fonts/nc-iconfont.woff +0 -0
  28. package/src/assets/fonts/nc-iconfont.css +0 -339
@@ -45,7 +45,8 @@ export class RegulatorService {
45
45
  header: model.marginHeader > 0 ? model.marginHeader : 0,
46
46
  footer: model.marginFooter > 0 ? model.marginFooter : 0
47
47
  });
48
- const edges = new Edges(this.componentService, model.headers, model.footers, pageMargin, pageWidth, sessionId, properties);
48
+ const edgesMargins = new MarginModel({ ...pageMargin, top: pageMargin.header, bottom: pageMargin.footer });
49
+ const edges = new Edges(this.componentService, model.headers, model.footers, edgesMargins, pageWidth, sessionId, properties);
49
50
  properties.numberingInfo = {};
50
51
  const customComponents = { images: [], tables: [], tabs: [], customElements: [], edges: edges };
51
52
  const displayData = new DisplayData(model, properties, sessionId, pageMargin, DocumentInfo.pagesSpace, pageWidth, model.pageHeight, customComponents, this.customContentService, this.editorService);
@@ -98,7 +99,7 @@ export class RegulatorService {
98
99
  this.setCurrentSession(this.mainSession);
99
100
  }
100
101
  setCustomSessionAsCurrent(sessionId, edgeEditingPage = null) {
101
- if (sessionId === this.currentSession.sessionId) {
102
+ if (sessionId === this.currentSession.sessionId && this.currentSession.source.edgeEditPage !== edgeEditingPage) {
102
103
  this.currentSession.source.edgeEditPage = edgeEditingPage;
103
104
  this.mainSession.renderer.renderer.textLayer.edgeEditingPageUpdated(edgeEditingPage);
104
105
  return;
@@ -190,10 +191,10 @@ export class RegulatorService {
190
191
  return result;
191
192
  }
192
193
  toggleEdgeEditMode(edgeEditingPage = null) {
193
- this.edgeEditingPage = edgeEditingPage;
194
- if (!this.mainSession.session.customComponents.edges) {
194
+ if (!this.mainSession.session.customComponents.edges || this.edgeEditingPage === edgeEditingPage) {
195
195
  return;
196
196
  }
197
+ this.edgeEditingPage = edgeEditingPage;
197
198
  this.mainSession.session.customComponents.edges.toggleEditMode(!!this.edgeEditingPage);
198
199
  this.mainSession.renderer.renderer.textLayer.edgeEditingPageUpdated(edgeEditingPage);
199
200
  }
@@ -203,4 +204,4 @@ export class RegulatorService {
203
204
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RegulatorService, decorators: [{
204
205
  type: Injectable
205
206
  }], ctorParameters: () => [{ type: i1.CustomContentService }, { type: i2.EditorService }, { type: i3.ComponentService }] });
206
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVndWxhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZXhlY3V0aW9uL3JlZ3VsYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xFLE9BQU8sRUFB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QUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFO1lBQ2xELE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQTRCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUM5RyxDQUFDOytHQXRSUSxnQkFBZ0I7bUhBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ2VsbFNlc3Npb25Tb3VyY2VNb2RlbCB9IGZyb20gJy4vdGFyZ2V0aW5nL2NlbGwtc2Vzc2lvbi1zb3VyY2UubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50U2VydmljZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2hhcmVkL3NlcnZpY2VzL2NvbXBvbmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEN1c3RvbUNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zaGFyZWQvc2VydmljZXMvY3VzdG9tLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBERUZBVUxUX0VER0VfTUFYX0hFSUdIVF9NVUxUSVBMSUVSLCBERUZBVUxUX1RPT0xCQVJfU1RZTEVTIH0gZnJvbSAnLi4vY29udGVudC9jb25zdGFudHMvZWRpdG9yLmNvbnN0JztcbmltcG9ydCB7IERpc3BsYXlEYXRhIH0gZnJvbSAnLi4vY29udGVudC9kaXNwbGF5LWRhdGEvZGlzcGxheS1kYXRhJztcbmltcG9ydCB7IERvY3VtZW50SW5mbyB9IGZyb20gJy4uL2NvbnRlbnQvY29uc3RhbnRzL2RvY3VtZW50LWluZm8uY29uc3QnO1xuaW1wb3J0IHsgRG9jeE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9kb2N4Lm1vZGVsJztcbmltcG9ydCB7IEVkZ2VzIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlcy9lZGdlcyc7XG5pbXBvcnQgeyBFZGdlU2Vzc2lvblNvdXJjZU1vZGVsIH0gZnJvbSAnLi90YXJnZXRpbmcvZWRnZS1zZXNzaW9uLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBFZGdlVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRnZXMvZWRnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi9lZGl0LnNlc3Npb24nO1xuaW1wb3J0IHsgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCB9IGZyb20gJy4uL2NvbnRlbnQvZGlzcGxheS1kYXRhL2dlbmVyYWwtcHJvcGVydGllcy5tb2RlbCc7XG5pbXBvcnQgeyBJQ3VzdG9tQ29tcG9uZW50cyB9IGZyb20gJy4uL2NvbXBvbmVudHMvc2hhcmVkL2N1c3RvbS1jb21wb25lbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNYWluU2Vzc2lvblNvdXJjZU1vZGVsIH0gZnJvbSAnLi90YXJnZXRpbmcvbWFpbi1zZXNzaW9uLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBNYXJnaW5Nb2RlbCB9IGZyb20gJy4uL2NvbnRlbnQvbWFyZ2luLm1vZGVsJztcbmltcG9ydCB7IE5vZGVyRWRnZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRnZXMvZWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm9kZXJUYWJsZUNlbGxDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL3RhYmxlL2NvbXBvbmVudHMvdGFibGUtY2VsbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZVR5cGUgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkZ2VzL3BhZ2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IFJlbmRlcmVyIH0gZnJvbSAnLi4vZGlzcGxheS9yZW5kZXJlcic7XG5pbXBvcnQgeyBTY2FsaW5nSGVscGVyIH0gZnJvbSAnLi4vY29udGVudC9oZWxwZXJzL3NjYWxpbmcuaGVscGVyJztcbmltcG9ydCB7IFNjcm9sbEJhciB9IGZyb20gJy4uL2dhZGdldHMvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFNlbGVjdGlvbiB9IGZyb20gJy4uL3Bvc2l0aW9uaW5nL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBTZXNzaW9uTW9kZWwgfSBmcm9tICcuL3RhcmdldGluZy9zZXNzaW9uLm1vZGVsJztcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhYmxlLm1vZGVsJztcbmltcG9ydCB7IFRhcmdldE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90YXJnZXQubW9kZWwnO1xuaW1wb3J0IHsgVGFyZ2V0VHlwZSB9IGZyb20gJy4uL29wZXJhdGlvbnMvZW51bXMvdGFyZ2V0LXR5cGUuZW51bSc7XG5pbXBvcnQgeyBWaXJ0dWFsUmVuZGVyZXIgfSBmcm9tICcuLi9kaXNwbGF5L3ZpcnR1YWwucmVuZGVyZXInO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmVndWxhdG9yU2VydmljZSB7XG4gICAgbWFpblNlc3Npb246IFNlc3Npb25Nb2RlbDtcblxuICAgIHNlc3Npb25zOiBTZXNzaW9uTW9kZWxbXSA9IFtdO1xuXG4gICAgY3VycmVudFNlc3Npb246IFNlc3Npb25Nb2RlbDtcblxuICAgIHNlbGVjdGlvbjogU2VsZWN0aW9uO1xuXG4gICAgc2Vzc2lvbklkSW5jcmVtZW50ID0gMDtcblxuICAgIGVkZ2VFZGl0aW5nUGFnZTogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjdXN0b21Db250ZW50U2VydmljZTogQ3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWRpdG9yU2VydmljZTogRWRpdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb21wb25lbnRTZXJ2aWNlOiBDb21wb25lbnRTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgYWRkTWFpblNlc3Npb24obW9kZWw6IERvY3hNb2RlbCwgcGFnZVdpZHRoOiBudW1iZXIsIHNjYWxpbmdSYXRpbzogbnVtYmVyLCBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlc3Npb25JZCA9ICsrdGhpcy5zZXNzaW9uSWRJbmNyZW1lbnQ7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBuZXcgR2VuZXJhbFByb3BlcnRpZXNNb2RlbCh7XG4gICAgICAgICAgICBudW1iZXJpbmdzOiBtb2RlbC5udW1iZXJpbmdzLFxuICAgICAgICAgICAgZGVmYXVsdFRhYldpZHRoOiBTY2FsaW5nSGVscGVyLnNjYWxlKG1vZGVsLmRlZmF1bHRUYWJXaWR0aCwgc2NhbGluZ1JhdGlvKSxcbiAgICAgICAgICAgIG1heEVkZ2VIZWlnaHQ6IG1vZGVsLnBhZ2VIZWlnaHQgKiBERUZBVUxUX0VER0VfTUFYX0hFSUdIVF9NVUxUSVBMSUVSLFxuICAgICAgICAgICAgc2NhbGluZ1JhdGlvLFxuICAgICAgICAgICAgbnVtYmVyaW5nSW5mbzoge31cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHBhZ2VNYXJnaW4gPSBuZXcgTWFyZ2luTW9kZWwoe1xuICAgICAgICAgICAgbGVmdDogU2NhbGluZ0hlbHBlci5zY2FsZShtb2RlbC5tYXJnaW5MZWZ0LCBzY2FsaW5nUmF0aW8pLFxuICAgICAgICAgICAgcmlnaHQ6IFNjYWxpbmdIZWxwZXIuc2NhbGUobW9kZWwubWFyZ2luUmlnaHQsIHNjYWxpbmdSYXRpbyksXG4gICAgICAgICAgICB0b3A6IG1vZGVsLm1hcmdpblRvcCA+IDAgPyBtb2RlbC5tYXJnaW5Ub3AgOiAwLFxuICAgICAgICAgICAgYm90dG9tOiBtb2RlbC5tYXJnaW5Cb3R0b20gPiAwID8gbW9kZWwubWFyZ2luQm90dG9tIDogMCxcbiAgICAgICAgICAgIGhlYWRlcjogbW9kZWwubWFyZ2luSGVhZGVyID4gMCA/IG1vZGVsLm1hcmdpbkhlYWRlciA6IDAsXG4gICAgICAgICAgICBmb290ZXI6IG1vZGVsLm1hcmdpbkZvb3RlciA+IDAgPyBtb2RlbC5tYXJnaW5Gb290ZXIgOiAwXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBlZGdlcyA9IG5ldyBFZGdlcyh0aGlzLmNvbXBvbmVudFNlcnZpY2UsIG1vZGVsLmhlYWRlcnMsIG1vZGVsLmZvb3RlcnMsIHBhZ2VNYXJnaW4sIHBhZ2VXaWR0aCwgc2Vzc2lvbklkLCBwcm9wZXJ0aWVzKTtcbiAgICAgICAgcHJvcGVydGllcy5udW1iZXJpbmdJbmZvID0ge307XG4gICAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudHMgPSB7IGltYWdlczogW10sIHRhYmxlczogW10sIHRhYnM6IFtdLCBjdXN0b21FbGVtZW50czogW10sIGVkZ2VzOiBlZGdlcyB9IGFzIElDdXN0b21Db21wb25lbnRzO1xuICAgICAgICBjb25zdCBkaXNwbGF5RGF0YSA9IG5ldyBEaXNwbGF5RGF0YShcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIHBhZ2VNYXJnaW4sXG4gICAgICAgICAgICBEb2N1bWVudEluZm8ucGFnZXNTcGFjZSxcbiAgICAgICAgICAgIHBhZ2VXaWR0aCxcbiAgICAgICAgICAgIG1vZGVsLnBhZ2VIZWlnaHQsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzY3JvbGxCYXIgPSBuZXcgU2Nyb2xsQmFyKGNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQpO1xuICAgICAgICBjb25zdCBtYWluU2Vzc2lvbiA9IG5ldyBFZGl0U2Vzc2lvbihcbiAgICAgICAgICAgIGRpc3BsYXlEYXRhLFxuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24sXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgICdtYWluJyxcbiAgICAgICAgICAgIHNjcm9sbEJhclxuICAgICAgICApO1xuICAgICAgICBkaXNwbGF5RGF0YS51cGRhdGVOZXh0TGluZUluZGV4ZXMoMCwgZGlzcGxheURhdGEucGFyYWdyYXBocy5sZW5ndGggLSAxKTtcbiAgICAgICAgY29uc3QgdmlydHVhbFJlbmRlcmVyID0gbmV3IFZpcnR1YWxSZW5kZXJlcihjb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5lZGl0b3JTZXJ2aWNlLCBtYWluU2Vzc2lvbiwgc2Nyb2xsQmFyKTtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnN0eWxlcyA9IERFRkFVTFRfVE9PTEJBUl9TVFlMRVMoKTtcbiAgICAgICAgdGhpcy5tYWluU2Vzc2lvbiA9IG5ldyBTZXNzaW9uTW9kZWwobWFpblNlc3Npb24sIHZpcnR1YWxSZW5kZXJlciwgc2Vzc2lvbklkLCBudWxsLCBuZXcgTWFpblNlc3Npb25Tb3VyY2VNb2RlbCgpKTtcbiAgICAgICAgdGhpcy5zZXNzaW9ucy5wdXNoKHRoaXMubWFpblNlc3Npb24pO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uID0gdGhpcy5tYWluU2Vzc2lvbjtcbiAgICB9XG5cbiAgICBhZGRDZWxsU2Vzc2lvbihcbiAgICAgICAgdGFibGU6IFRhYmxlTW9kZWwsXG4gICAgICAgIG1hcmdpbnM6IE1hcmdpbk1vZGVsLFxuICAgICAgICBjb21wb25lbnQ6IE5vZGVyVGFibGVDZWxsQ29tcG9uZW50LFxuICAgICAgICBwcm9wZXJ0aWVzOiBHZW5lcmFsUHJvcGVydGllc01vZGVsXG4gICAgKTogU2Vzc2lvbk1vZGVsIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gKyt0aGlzLnNlc3Npb25JZEluY3JlbWVudDtcbiAgICAgICAgY29uc3QgY3VzdG9tQ29tcG9uZW50cyA9IHsgaW1hZ2VzOiBbXSwgdGFibGVzOiBbXSwgdGFiczogW10sIGN1c3RvbUVsZW1lbnRzOiBbXSwgZWRnZXM6IG51bGwgfSBhcyBJQ3VzdG9tQ29tcG9uZW50cztcbiAgICAgICAgY29uc3QgZGlzcGxheURhdGEgPSBuZXcgRGlzcGxheURhdGEoXG4gICAgICAgICAgICBjb21wb25lbnQuY2VsbCxcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICBtYXJnaW5zLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGNvbXBvbmVudC53aWR0aCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gbmV3IEVkaXRTZXNzaW9uKFxuICAgICAgICAgICAgZGlzcGxheURhdGEsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgY29tcG9uZW50LmNlbGwsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbixcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgJ2NlbGwnXG4gICAgICAgICk7XG4gICAgICAgIGRpc3BsYXlEYXRhLmNvbnRlbnRXaWR0aCA9IGRpc3BsYXlEYXRhLmNvbnRlbnRXaWR0aCA9PT0gMCA/IDEgOiBkaXNwbGF5RGF0YS5jb250ZW50V2lkdGg7XG4gICAgICAgIGRpc3BsYXlEYXRhLnVwZGF0ZU5leHRMaW5lSW5kZXhlcygwLCBkaXNwbGF5RGF0YS5wYXJhZ3JhcGhzLmxlbmd0aCAtIDEpO1xuICAgICAgICBjb25zdCByZW5kZXJlciA9IG5ldyBSZW5kZXJlcihjb21wb25lbnQuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZWRpdG9yU2VydmljZSwgc2Vzc2lvbik7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBDZWxsU2Vzc2lvblNvdXJjZU1vZGVsKHRhYmxlLCBjb21wb25lbnQpO1xuICAgICAgICBjb25zdCBuZXdTZXNzaW9uID0gbmV3IFNlc3Npb25Nb2RlbChzZXNzaW9uLCByZW5kZXJlciwgc2Vzc2lvbklkLCBjb21wb25lbnQucGFyZW50U2Vzc2lvbklkLCBzb3VyY2UpO1xuICAgICAgICBuZXdTZXNzaW9uLnJlbmRlcmVyLnVwZGF0ZVRleHQoKTtcbiAgICAgICAgdGhpcy5zZXNzaW9ucy5wdXNoKG5ld1Nlc3Npb24pO1xuICAgICAgICByZXR1cm4gbmV3U2Vzc2lvbjtcbiAgICB9XG5cbiAgICBhZGRFZGdlU2Vzc2lvbihjb21wb25lbnQ6IE5vZGVyRWRnZUNvbXBvbmVudCk6IFNlc3Npb25Nb2RlbCB7XG4gICAgICAgIGNvbnN0IHNlc3Npb25JZCA9ICsrdGhpcy5zZXNzaW9uSWRJbmNyZW1lbnQ7XG4gICAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudHMgPSB7IGltYWdlczogW10sIHRhYmxlczogW10sIHRhYnM6IFtdLCBjdXN0b21FbGVtZW50czogW10sIGVkZ2VzOiBudWxsIH0gYXMgSUN1c3RvbUNvbXBvbmVudHM7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlEYXRhID0gbmV3IERpc3BsYXlEYXRhKFxuICAgICAgICAgICAgY29tcG9uZW50Lm1vZGVsLFxuICAgICAgICAgICAgY29tcG9uZW50LmdlbmVyYWxQcm9wZXJ0aWVzLFxuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgY29tcG9uZW50Lm1hcmdpbnMsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgY29tcG9uZW50LndpZHRoLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSBuZXcgRWRpdFNlc3Npb24oXG4gICAgICAgICAgICBkaXNwbGF5RGF0YSxcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICBjb21wb25lbnQubW9kZWwsXG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbixcbiAgICAgICAgICAgIGNvbXBvbmVudC5nZW5lcmFsUHJvcGVydGllcyxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZSxcbiAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICAnZWRnZSdcbiAgICAgICAgKTtcbiAgICAgICAgZGlzcGxheURhdGEudXBkYXRlTmV4dExpbmVJbmRleGVzKDAsIGRpc3BsYXlEYXRhLnBhcmFncmFwaHMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVyID0gbmV3IFJlbmRlcmVyKGNvbXBvbmVudC5jb250YWluZXIubmF0aXZlRWxlbWVudCwgdGhpcy5lZGl0b3JTZXJ2aWNlLCBzZXNzaW9uKTtcbiAgICAgICAgY29uc3Qgc291cmNlID0gbmV3IEVkZ2VTZXNzaW9uU291cmNlTW9kZWwoY29tcG9uZW50Lm1vZGVsLnBhZ2VUeXBlIGFzIFBhZ2VUeXBlLCBjb21wb25lbnQudHlwZSk7XG4gICAgICAgIGNvbnN0IG5ld1Nlc3Npb24gPSBuZXcgU2Vzc2lvbk1vZGVsKHNlc3Npb24sIHJlbmRlcmVyLCBzZXNzaW9uSWQsIGNvbXBvbmVudC5wYXJlbnRTZXNzaW9uSWQsIHNvdXJjZSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnMucHVzaChuZXdTZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIG5ld1Nlc3Npb247XG4gICAgfVxuXG4gICAgcmVtb3ZlU2Vzc2lvbihzZXNzaW9uSWQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2Vzc2lvbnMuZmluZEluZGV4KHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnNbaW5kZXhdLnNlc3Npb24uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnNlc3Npb25zW2luZGV4XS5yZW5kZXJlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG5cbiAgICBzZXRNYWluU2Vzc2lvbkFzQ3VycmVudCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWFpblNlc3Npb24uc2Vzc2lvbklkID09PSB0aGlzLmN1cnJlbnRTZXNzaW9uLnNlc3Npb25JZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9nZ2xlRWRnZUVkaXRNb2RlKCk7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFNlc3Npb24odGhpcy5tYWluU2Vzc2lvbik7XG4gICAgfVxuXG4gICAgc2V0Q3VzdG9tU2Vzc2lvbkFzQ3VycmVudChzZXNzaW9uSWQ6IG51bWJlciwgZWRnZUVkaXRpbmdQYWdlOiBudW1iZXIgfCBudWxsID0gbnVsbCk6IHZvaWQge1xuICAgICAgICBpZiAoc2Vzc2lvbklkID09PSB0aGlzLmN1cnJlbnRTZXNzaW9uLnNlc3Npb25JZCkge1xuICAgICAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbi5zb3VyY2UuZWRnZUVkaXRQYWdlID0gZWRnZUVkaXRpbmdQYWdlO1xuICAgICAgICAgICAgKHRoaXMubWFpblNlc3Npb24ucmVuZGVyZXIgYXMgVmlydHVhbFJlbmRlcmVyKS5yZW5kZXJlci50ZXh0TGF5ZXIuZWRnZUVkaXRpbmdQYWdlVXBkYXRlZChlZGdlRWRpdGluZ1BhZ2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudG9nZ2xlRWRnZUVkaXRNb2RlKGVkZ2VFZGl0aW5nUGFnZSk7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFNlc3Npb25CeUlkKHNlc3Npb25JZCk7XG4gICAgfVxuXG4gICAgc2V0VGFyZ2V0ZWRTZXNzaW9uQXNDdXJyZW50KHRhcmdldHM6IFRhcmdldE1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ZWRTZXNzaW9uID0gdGhpcy5nZXRUYXJnZXRlZFNlc3Npb24odGFyZ2V0cyk7XG4gICAgICAgIGlmICh0YXJnZXRlZFNlc3Npb24uc2Vzc2lvbklkID09PSB0aGlzLmN1cnJlbnRTZXNzaW9uLnNlc3Npb25JZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gdGFyZ2V0ZWRTZXNzaW9uLnNlc3Npb25JZCk7XG4gICAgICAgIGNvbnN0IGVkZ2VFZGl0UGFnZSA9IHRhcmdldHMubGVuZ3RoID8gdGFyZ2V0c1t0YXJnZXRzLmxlbmd0aCAtIDFdLmVkZ2VFZGl0UGFnZSA6IG51bGw7XG4gICAgICAgIHRoaXMudG9nZ2xlRWRnZUVkaXRNb2RlKGVkZ2VFZGl0UGFnZSk7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFNlc3Npb24oc2Vzc2lvbik7XG4gICAgfVxuXG4gICAgc2V0Q3VycmVudFNlc3Npb25CeUlkKHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5zZXNzaW9ucy5maW5kSW5kZXgoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbklkKTtcbiAgICAgICAgdGhpcy5zZXRDdXJyZW50U2Vzc2lvbih0aGlzLnNlc3Npb25zW2luZGV4XSk7XG4gICAgfVxuXG4gICAgc2V0Q3VycmVudFNlc3Npb24oc2Vzc2lvbjogU2Vzc2lvbk1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24ucmVuZGVyZXIuaGlkZUN1cnNvcigpO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uLnJlbmRlcmVyLnVwZGF0ZVNlbGVjdGlvbih0aGlzLnNlbGVjdGlvbi5yYW5nZSk7XG4gICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24gPSBzZXNzaW9uO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uLnJlbmRlcmVyLnNob3dDdXJzb3IoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbi5zb3VyY2UuZWRnZUVkaXRQYWdlID0gdGhpcy5lZGdlRWRpdGluZ1BhZ2U7XG4gICAgfVxuXG4gICAgZ2V0U2Vzc2lvbihzZXNzaW9uSWQ6IG51bWJlcik6IEVkaXRTZXNzaW9uIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbnMuZmluZCh4ID0+IHguc2Vzc2lvbklkID09PSBzZXNzaW9uSWQpO1xuICAgICAgICByZXR1cm4gc2Vzc2lvbi5zZXNzaW9uO1xuICAgIH1cblxuICAgIHNldFNlbGVjdGlvbihzZWxlY3Rpb246IFNlbGVjdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbiA9IHNlbGVjdGlvbjtcbiAgICB9XG5cbiAgICBjbGVhckFsbFNlc3Npb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlc3Npb25zLmZvckVhY2goc2Vzc2lvbiA9PiB7XG4gICAgICAgICAgICBzZXNzaW9uLnNlc3Npb24uZGVzdHJveSgpO1xuICAgICAgICAgICAgc2Vzc2lvbi5yZW5kZXJlci5kZXN0cm95KCk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlc3Npb25zID0gW107XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFNlc3Npb25UYXJnZXRzKCk6IFRhcmdldE1vZGVsW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRUYXJnZXRzKHRoaXMuY3VycmVudFNlc3Npb24pO1xuICAgIH1cblxuICAgIGdldFRhcmdldHMoc2Vzc2lvbjogU2Vzc2lvbk1vZGVsKTogVGFyZ2V0TW9kZWxbXSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdDogVGFyZ2V0TW9kZWxbXSA9IFtdO1xuICAgICAgICBsZXQgcGFyZW50U2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbnMuZmluZCh4ID0+IHguc2Vzc2lvbklkID09PSBzZXNzaW9uLnBhcmVudFNlc3Npb25JZCk7XG4gICAgICAgIHdoaWxlIChwYXJlbnRTZXNzaW9uKSB7XG4gICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBzZXNzaW9uLnNvdXJjZS5nZXRUYXJnZXQoKTtcbiAgICAgICAgICAgIHJlc3VsdC5zcGxpY2UoMCwgMCwgdGFyZ2V0KTtcbiAgICAgICAgICAgIHNlc3Npb24gPSBwYXJlbnRTZXNzaW9uO1xuICAgICAgICAgICAgcGFyZW50U2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbnMuZmluZCh4ID0+IHguc2Vzc2lvbklkID09PSBwYXJlbnRTZXNzaW9uLnBhcmVudFNlc3Npb25JZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBnZXRFZGdlVGFyZ2V0KHNlc3Npb25JZDogbnVtYmVyKTogVGFyZ2V0TW9kZWwgfCBudWxsIHtcbiAgICAgICAgbGV0IHNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbklkKTtcbiAgICAgICAgbGV0IHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB3aGlsZSAocGFyZW50U2Vzc2lvbikge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gc2Vzc2lvbi5zb3VyY2UuZ2V0VGFyZ2V0KCk7XG4gICAgICAgICAgICBpZiAodGFyZ2V0LnR5cGUgPT09IFRhcmdldFR5cGUuRWRnZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNlc3Npb24gPSBwYXJlbnRTZXNzaW9uO1xuICAgICAgICAgICAgcGFyZW50U2Vzc2lvbiA9IHRoaXMuc2Vzc2lvbnMuZmluZCh4ID0+IHguc2Vzc2lvbklkID09PSBwYXJlbnRTZXNzaW9uLnBhcmVudFNlc3Npb25JZCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBnZXRUYXJnZXRlZFNlc3Npb24odGFyZ2V0czogVGFyZ2V0TW9kZWxbXSk6IEVkaXRTZXNzaW9uIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IHRoaXMubWFpblNlc3Npb24uc2Vzc2lvbjtcbiAgICAgICAgZm9yIChjb25zdCB0YXJnZXQgb2YgdGFyZ2V0cykge1xuICAgICAgICAgICAgc3dpdGNoICh0YXJnZXQudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgVGFyZ2V0VHlwZS5Eb2N1bWVudDpcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBUYXJnZXRUeXBlLlRhYmxlQ2VsbDoge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0YWJsZSA9IHJlc3VsdC5jdXN0b21Db21wb25lbnRzLnRhYmxlcy5maW5kKHggPT4geC5pbnN0YW5jZS5jb250ZW50Lmluc2VydEluZGV4ID09PSB0YXJnZXQudGFibGVDZWxsLmluc2VydEluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdGFibGUuaW5zdGFuY2UuZ2V0Q2VsbFNlc3Npb24odGFyZ2V0LnRhYmxlQ2VsbC5yb3csIHRhcmdldC50YWJsZUNlbGwuY29sdW1uKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhc2UgVGFyZ2V0VHlwZS5FZGdlOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVkZ2UgPSByZXN1bHQuY3VzdG9tQ29tcG9uZW50cy5lZGdlcy5nZXRDb21wb25lbnRCeVBhZ2VUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmVkZ2VEYXRhLnBhZ2VUeXBlIGFzIFBhZ2VUeXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmVkZ2VEYXRhLnR5cGUgYXMgRWRnZVR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gZWRnZS5pbnN0YW5jZS5lZGdlU2Vzc2lvbi5zZXNzaW9uO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICB0b2dnbGVFZGdlRWRpdE1vZGUoZWRnZUVkaXRpbmdQYWdlOiBudW1iZXIgfCBudWxsID0gbnVsbCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkZ2VFZGl0aW5nUGFnZSA9IGVkZ2VFZGl0aW5nUGFnZTtcbiAgICAgICAgaWYgKCF0aGlzLm1haW5TZXNzaW9uLnNlc3Npb24uY3VzdG9tQ29tcG9uZW50cy5lZGdlcykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYWluU2Vzc2lvbi5zZXNzaW9uLmN1c3RvbUNvbXBvbmVudHMuZWRnZXMudG9nZ2xlRWRpdE1vZGUoISF0aGlzLmVkZ2VFZGl0aW5nUGFnZSk7XG4gICAgICAgICh0aGlzLm1haW5TZXNzaW9uLnJlbmRlcmVyIGFzIFZpcnR1YWxSZW5kZXJlcikucmVuZGVyZXIudGV4dExheWVyLmVkZ2VFZGl0aW5nUGFnZVVwZGF0ZWQoZWRnZUVkaXRpbmdQYWdlKTtcbiAgICB9XG59XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVndWxhdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvZXhlY3V0aW9uL3JlZ3VsYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDL0csT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDbEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUl0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFHekQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xFLE9BQU8sRUFB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R0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7b0JBQzNDLE1BQU07aUJBQ1Q7YUFDSjtTQUNKO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELGtCQUFrQixDQUFDLGtCQUFpQyxJQUFJO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxlQUFlLEVBQUU7WUFDOUYsT0FBTztTQUNWO1FBRUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBNEIsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzlHLENBQUM7K0dBdlJRLGdCQUFnQjttSEFBaEIsZ0JBQWdCOzs0RkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBDZWxsU2Vzc2lvblNvdXJjZU1vZGVsIH0gZnJvbSAnLi90YXJnZXRpbmcvY2VsbC1zZXNzaW9uLXNvdXJjZS5tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zaGFyZWQvc2VydmljZXMvY29tcG9uZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3VzdG9tQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jdXN0b20tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERFRkFVTFRfRURHRV9NQVhfSEVJR0hUX01VTFRJUExJRVIsIERFRkFVTFRfVE9PTEJBUl9TVFlMRVMgfSBmcm9tICcuLi9jb250ZW50L2NvbnN0YW50cy9lZGl0b3IuY29uc3QnO1xuaW1wb3J0IHsgRGlzcGxheURhdGEgfSBmcm9tICcuLi9jb250ZW50L2Rpc3BsYXktZGF0YS9kaXNwbGF5LWRhdGEnO1xuaW1wb3J0IHsgRG9jdW1lbnRJbmZvIH0gZnJvbSAnLi4vY29udGVudC9jb25zdGFudHMvZG9jdW1lbnQtaW5mby5jb25zdCc7XG5pbXBvcnQgeyBEb2N4TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2RvY3gubW9kZWwnO1xuaW1wb3J0IHsgRWRnZXMgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkZ2VzL2VkZ2VzJztcbmltcG9ydCB7IEVkZ2VTZXNzaW9uU291cmNlTW9kZWwgfSBmcm9tICcuL3RhcmdldGluZy9lZGdlLXNlc3Npb24tc291cmNlLm1vZGVsJztcbmltcG9ydCB7IEVkZ2VUeXBlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlcy9lZGdlLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBFZGl0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgRWRpdFNlc3Npb24gfSBmcm9tICcuL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBHZW5lcmFsUHJvcGVydGllc01vZGVsIH0gZnJvbSAnLi4vY29udGVudC9kaXNwbGF5LWRhdGEvZ2VuZXJhbC1wcm9wZXJ0aWVzLm1vZGVsJztcbmltcG9ydCB7IElDdXN0b21Db21wb25lbnRzIH0gZnJvbSAnLi4vY29tcG9uZW50cy9zaGFyZWQvY3VzdG9tLWNvbXBvbmVudHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1haW5TZXNzaW9uU291cmNlTW9kZWwgfSBmcm9tICcuL3RhcmdldGluZy9tYWluLXNlc3Npb24tc291cmNlLm1vZGVsJztcbmltcG9ydCB7IE1hcmdpbk1vZGVsIH0gZnJvbSAnLi4vY29udGVudC9tYXJnaW4ubW9kZWwnO1xuaW1wb3J0IHsgTm9kZXJFZGdlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50cy9lZGdlcy9lZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvdGFibGUvY29tcG9uZW50cy90YWJsZS1jZWxsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRnZXMvcGFnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgUmVuZGVyZXIgfSBmcm9tICcuLi9kaXNwbGF5L3JlbmRlcmVyJztcbmltcG9ydCB7IFNjYWxpbmdIZWxwZXIgfSBmcm9tICcuLi9jb250ZW50L2hlbHBlcnMvc2NhbGluZy5oZWxwZXInO1xuaW1wb3J0IHsgU2Nyb2xsQmFyIH0gZnJvbSAnLi4vZ2FkZ2V0cy9zY3JvbGxiYXInO1xuaW1wb3J0IHsgU2VsZWN0aW9uIH0gZnJvbSAnLi4vcG9zaXRpb25pbmcvc2VsZWN0aW9uJztcbmltcG9ydCB7IFNlc3Npb25Nb2RlbCB9IGZyb20gJy4vdGFyZ2V0aW5nL3Nlc3Npb24ubW9kZWwnO1xuaW1wb3J0IHsgVGFibGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGFibGUubW9kZWwnO1xuaW1wb3J0IHsgVGFyZ2V0TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL3RhcmdldC5tb2RlbCc7XG5pbXBvcnQgeyBUYXJnZXRUeXBlIH0gZnJvbSAnLi4vb3BlcmF0aW9ucy9lbnVtcy90YXJnZXQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFZpcnR1YWxSZW5kZXJlciB9IGZyb20gJy4uL2Rpc3BsYXkvdmlydHVhbC5yZW5kZXJlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWd1bGF0b3JTZXJ2aWNlIHtcbiAgICBtYWluU2Vzc2lvbjogU2Vzc2lvbk1vZGVsO1xuXG4gICAgc2Vzc2lvbnM6IFNlc3Npb25Nb2RlbFtdID0gW107XG5cbiAgICBjdXJyZW50U2Vzc2lvbjogU2Vzc2lvbk1vZGVsO1xuXG4gICAgc2VsZWN0aW9uOiBTZWxlY3Rpb247XG5cbiAgICBzZXNzaW9uSWRJbmNyZW1lbnQgPSAwO1xuXG4gICAgZWRnZUVkaXRpbmdQYWdlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbXBvbmVudFNlcnZpY2U6IENvbXBvbmVudFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICBhZGRNYWluU2Vzc2lvbihtb2RlbDogRG9jeE1vZGVsLCBwYWdlV2lkdGg6IG51bWJlciwgc2NhbGluZ1JhdGlvOiBudW1iZXIsIGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbklkID0gKyt0aGlzLnNlc3Npb25JZEluY3JlbWVudDtcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IG5ldyBHZW5lcmFsUHJvcGVydGllc01vZGVsKHtcbiAgICAgICAgICAgIG51bWJlcmluZ3M6IG1vZGVsLm51bWJlcmluZ3MsXG4gICAgICAgICAgICBkZWZhdWx0VGFiV2lkdGg6IFNjYWxpbmdIZWxwZXIuc2NhbGUobW9kZWwuZGVmYXVsdFRhYldpZHRoLCBzY2FsaW5nUmF0aW8pLFxuICAgICAgICAgICAgbWF4RWRnZUhlaWdodDogbW9kZWwucGFnZUhlaWdodCAqIERFRkFVTFRfRURHRV9NQVhfSEVJR0hUX01VTFRJUExJRVIsXG4gICAgICAgICAgICBzY2FsaW5nUmF0aW8sXG4gICAgICAgICAgICBudW1iZXJpbmdJbmZvOiB7fVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcGFnZU1hcmdpbiA9IG5ldyBNYXJnaW5Nb2RlbCh7XG4gICAgICAgICAgICBsZWZ0OiBTY2FsaW5nSGVscGVyLnNjYWxlKG1vZGVsLm1hcmdpbkxlZnQsIHNjYWxpbmdSYXRpbyksXG4gICAgICAgICAgICByaWdodDogU2NhbGluZ0hlbHBlci5zY2FsZShtb2RlbC5tYXJnaW5SaWdodCwgc2NhbGluZ1JhdGlvKSxcbiAgICAgICAgICAgIHRvcDogbW9kZWwubWFyZ2luVG9wID4gMCA/IG1vZGVsLm1hcmdpblRvcCA6IDAsXG4gICAgICAgICAgICBib3R0b206IG1vZGVsLm1hcmdpbkJvdHRvbSA+IDAgPyBtb2RlbC5tYXJnaW5Cb3R0b20gOiAwLFxuICAgICAgICAgICAgaGVhZGVyOiBtb2RlbC5tYXJnaW5IZWFkZXIgPiAwID8gbW9kZWwubWFyZ2luSGVhZGVyIDogMCxcbiAgICAgICAgICAgIGZvb3RlcjogbW9kZWwubWFyZ2luRm9vdGVyID4gMCA/IG1vZGVsLm1hcmdpbkZvb3RlciA6IDBcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGVkZ2VzTWFyZ2lucyA9IG5ldyBNYXJnaW5Nb2RlbCh7IC4uLnBhZ2VNYXJnaW4sIHRvcDogcGFnZU1hcmdpbi5oZWFkZXIsIGJvdHRvbTogcGFnZU1hcmdpbi5mb290ZXIgfSk7XG4gICAgICAgIGNvbnN0IGVkZ2VzID0gbmV3IEVkZ2VzKHRoaXMuY29tcG9uZW50U2VydmljZSwgbW9kZWwuaGVhZGVycywgbW9kZWwuZm9vdGVycywgZWRnZXNNYXJnaW5zLCBwYWdlV2lkdGgsIHNlc3Npb25JZCwgcHJvcGVydGllcyk7XG4gICAgICAgIHByb3BlcnRpZXMubnVtYmVyaW5nSW5mbyA9IHt9O1xuICAgICAgICBjb25zdCBjdXN0b21Db21wb25lbnRzID0geyBpbWFnZXM6IFtdLCB0YWJsZXM6IFtdLCB0YWJzOiBbXSwgY3VzdG9tRWxlbWVudHM6IFtdLCBlZGdlczogZWRnZXMgfSBhcyBJQ3VzdG9tQ29tcG9uZW50cztcbiAgICAgICAgY29uc3QgZGlzcGxheURhdGEgPSBuZXcgRGlzcGxheURhdGEoXG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIHByb3BlcnRpZXMsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICBwYWdlTWFyZ2luLFxuICAgICAgICAgICAgRG9jdW1lbnRJbmZvLnBhZ2VzU3BhY2UsXG4gICAgICAgICAgICBwYWdlV2lkdGgsXG4gICAgICAgICAgICBtb2RlbC5wYWdlSGVpZ2h0LFxuICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2Nyb2xsQmFyID0gbmV3IFNjcm9sbEJhcihjb250YWluZXIubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50KTtcbiAgICAgICAgY29uc3QgbWFpblNlc3Npb24gPSBuZXcgRWRpdFNlc3Npb24oXG4gICAgICAgICAgICBkaXNwbGF5RGF0YSxcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uLFxuICAgICAgICAgICAgcHJvcGVydGllcyxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZSxcbiAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICAnbWFpbicsXG4gICAgICAgICAgICBzY3JvbGxCYXJcbiAgICAgICAgKTtcbiAgICAgICAgZGlzcGxheURhdGEudXBkYXRlTmV4dExpbmVJbmRleGVzKDAsIGRpc3BsYXlEYXRhLnBhcmFncmFwaHMubGVuZ3RoIC0gMSk7XG4gICAgICAgIGNvbnN0IHZpcnR1YWxSZW5kZXJlciA9IG5ldyBWaXJ0dWFsUmVuZGVyZXIoY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZWRpdG9yU2VydmljZSwgbWFpblNlc3Npb24sIHNjcm9sbEJhcik7XG4gICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5zdHlsZXMgPSBERUZBVUxUX1RPT0xCQVJfU1RZTEVTKCk7XG4gICAgICAgIHRoaXMubWFpblNlc3Npb24gPSBuZXcgU2Vzc2lvbk1vZGVsKG1haW5TZXNzaW9uLCB2aXJ0dWFsUmVuZGVyZXIsIHNlc3Npb25JZCwgbnVsbCwgbmV3IE1haW5TZXNzaW9uU291cmNlTW9kZWwoKSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnMucHVzaCh0aGlzLm1haW5TZXNzaW9uKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbiA9IHRoaXMubWFpblNlc3Npb247XG4gICAgfVxuXG4gICAgYWRkQ2VsbFNlc3Npb24oXG4gICAgICAgIHRhYmxlOiBUYWJsZU1vZGVsLFxuICAgICAgICBtYXJnaW5zOiBNYXJnaW5Nb2RlbCxcbiAgICAgICAgY29tcG9uZW50OiBOb2RlclRhYmxlQ2VsbENvbXBvbmVudCxcbiAgICAgICAgcHJvcGVydGllczogR2VuZXJhbFByb3BlcnRpZXNNb2RlbFxuICAgICk6IFNlc3Npb25Nb2RlbCB7XG4gICAgICAgIGNvbnN0IHNlc3Npb25JZCA9ICsrdGhpcy5zZXNzaW9uSWRJbmNyZW1lbnQ7XG4gICAgICAgIGNvbnN0IGN1c3RvbUNvbXBvbmVudHMgPSB7IGltYWdlczogW10sIHRhYmxlczogW10sIHRhYnM6IFtdLCBjdXN0b21FbGVtZW50czogW10sIGVkZ2VzOiBudWxsIH0gYXMgSUN1c3RvbUNvbXBvbmVudHM7XG4gICAgICAgIGNvbnN0IGRpc3BsYXlEYXRhID0gbmV3IERpc3BsYXlEYXRhKFxuICAgICAgICAgICAgY29tcG9uZW50LmNlbGwsXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgbWFyZ2lucyxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBjb21wb25lbnQud2lkdGgsXG4gICAgICAgICAgICAwLFxuICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgIHRoaXMuY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2VcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbiA9IG5ldyBFZGl0U2Vzc2lvbihcbiAgICAgICAgICAgIGRpc3BsYXlEYXRhLFxuICAgICAgICAgICAgc2Vzc2lvbklkLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIGNvbXBvbmVudC5jZWxsLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24sXG4gICAgICAgICAgICBwcm9wZXJ0aWVzLFxuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLFxuICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgICdjZWxsJ1xuICAgICAgICApO1xuICAgICAgICBkaXNwbGF5RGF0YS5jb250ZW50V2lkdGggPSBkaXNwbGF5RGF0YS5jb250ZW50V2lkdGggPT09IDAgPyAxIDogZGlzcGxheURhdGEuY29udGVudFdpZHRoO1xuICAgICAgICBkaXNwbGF5RGF0YS51cGRhdGVOZXh0TGluZUluZGV4ZXMoMCwgZGlzcGxheURhdGEucGFyYWdyYXBocy5sZW5ndGggLSAxKTtcbiAgICAgICAgY29uc3QgcmVuZGVyZXIgPSBuZXcgUmVuZGVyZXIoY29tcG9uZW50LmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCB0aGlzLmVkaXRvclNlcnZpY2UsIHNlc3Npb24pO1xuICAgICAgICBjb25zdCBzb3VyY2UgPSBuZXcgQ2VsbFNlc3Npb25Tb3VyY2VNb2RlbCh0YWJsZSwgY29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgbmV3U2Vzc2lvbiA9IG5ldyBTZXNzaW9uTW9kZWwoc2Vzc2lvbiwgcmVuZGVyZXIsIHNlc3Npb25JZCwgY29tcG9uZW50LnBhcmVudFNlc3Npb25JZCwgc291cmNlKTtcbiAgICAgICAgbmV3U2Vzc2lvbi5yZW5kZXJlci51cGRhdGVUZXh0KCk7XG4gICAgICAgIHRoaXMuc2Vzc2lvbnMucHVzaChuZXdTZXNzaW9uKTtcbiAgICAgICAgcmV0dXJuIG5ld1Nlc3Npb247XG4gICAgfVxuXG4gICAgYWRkRWRnZVNlc3Npb24oY29tcG9uZW50OiBOb2RlckVkZ2VDb21wb25lbnQpOiBTZXNzaW9uTW9kZWwge1xuICAgICAgICBjb25zdCBzZXNzaW9uSWQgPSArK3RoaXMuc2Vzc2lvbklkSW5jcmVtZW50O1xuICAgICAgICBjb25zdCBjdXN0b21Db21wb25lbnRzID0geyBpbWFnZXM6IFtdLCB0YWJsZXM6IFtdLCB0YWJzOiBbXSwgY3VzdG9tRWxlbWVudHM6IFtdLCBlZGdlczogbnVsbCB9IGFzIElDdXN0b21Db21wb25lbnRzO1xuICAgICAgICBjb25zdCBkaXNwbGF5RGF0YSA9IG5ldyBEaXNwbGF5RGF0YShcbiAgICAgICAgICAgIGNvbXBvbmVudC5tb2RlbCxcbiAgICAgICAgICAgIGNvbXBvbmVudC5nZW5lcmFsUHJvcGVydGllcyxcbiAgICAgICAgICAgIHNlc3Npb25JZCxcbiAgICAgICAgICAgIGNvbXBvbmVudC5tYXJnaW5zLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGNvbXBvbmVudC53aWR0aCxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgdGhpcy5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBzZXNzaW9uID0gbmV3IEVkaXRTZXNzaW9uKFxuICAgICAgICAgICAgZGlzcGxheURhdGEsXG4gICAgICAgICAgICBzZXNzaW9uSWQsXG4gICAgICAgICAgICB0aGlzLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgY29tcG9uZW50Lm1vZGVsLFxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24sXG4gICAgICAgICAgICBjb21wb25lbnQuZ2VuZXJhbFByb3BlcnRpZXMsXG4gICAgICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UsXG4gICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgJ2VkZ2UnXG4gICAgICAgICk7XG4gICAgICAgIGRpc3BsYXlEYXRhLnVwZGF0ZU5leHRMaW5lSW5kZXhlcygwLCBkaXNwbGF5RGF0YS5wYXJhZ3JhcGhzLmxlbmd0aCAtIDEpO1xuICAgICAgICBjb25zdCByZW5kZXJlciA9IG5ldyBSZW5kZXJlcihjb21wb25lbnQuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZWRpdG9yU2VydmljZSwgc2Vzc2lvbik7XG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IG5ldyBFZGdlU2Vzc2lvblNvdXJjZU1vZGVsKGNvbXBvbmVudC5tb2RlbC5wYWdlVHlwZSBhcyBQYWdlVHlwZSwgY29tcG9uZW50LnR5cGUpO1xuICAgICAgICBjb25zdCBuZXdTZXNzaW9uID0gbmV3IFNlc3Npb25Nb2RlbChzZXNzaW9uLCByZW5kZXJlciwgc2Vzc2lvbklkLCBjb21wb25lbnQucGFyZW50U2Vzc2lvbklkLCBzb3VyY2UpO1xuICAgICAgICB0aGlzLnNlc3Npb25zLnB1c2gobmV3U2Vzc2lvbik7XG4gICAgICAgIHJldHVybiBuZXdTZXNzaW9uO1xuICAgIH1cblxuICAgIHJlbW92ZVNlc3Npb24oc2Vzc2lvbklkOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnNlc3Npb25zLmZpbmRJbmRleCh4ID0+IHguc2Vzc2lvbklkID09PSBzZXNzaW9uSWQpO1xuICAgICAgICB0aGlzLnNlc3Npb25zW2luZGV4XS5zZXNzaW9uLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5zZXNzaW9uc1tpbmRleF0ucmVuZGVyZXIuZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnNlc3Npb25zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgc2V0TWFpblNlc3Npb25Bc0N1cnJlbnQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1haW5TZXNzaW9uLnNlc3Npb25JZCA9PT0gdGhpcy5jdXJyZW50U2Vzc2lvbi5zZXNzaW9uSWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvZ2dsZUVkZ2VFZGl0TW9kZSgpO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRTZXNzaW9uKHRoaXMubWFpblNlc3Npb24pO1xuICAgIH1cblxuICAgIHNldEN1c3RvbVNlc3Npb25Bc0N1cnJlbnQoc2Vzc2lvbklkOiBudW1iZXIsIGVkZ2VFZGl0aW5nUGFnZTogbnVtYmVyIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKHNlc3Npb25JZCA9PT0gdGhpcy5jdXJyZW50U2Vzc2lvbi5zZXNzaW9uSWQgJiYgdGhpcy5jdXJyZW50U2Vzc2lvbi5zb3VyY2UuZWRnZUVkaXRQYWdlICE9PSBlZGdlRWRpdGluZ1BhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24uc291cmNlLmVkZ2VFZGl0UGFnZSA9IGVkZ2VFZGl0aW5nUGFnZTtcbiAgICAgICAgICAgICh0aGlzLm1haW5TZXNzaW9uLnJlbmRlcmVyIGFzIFZpcnR1YWxSZW5kZXJlcikucmVuZGVyZXIudGV4dExheWVyLmVkZ2VFZGl0aW5nUGFnZVVwZGF0ZWQoZWRnZUVkaXRpbmdQYWdlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvZ2dsZUVkZ2VFZGl0TW9kZShlZGdlRWRpdGluZ1BhZ2UpO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRTZXNzaW9uQnlJZChzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIHNldFRhcmdldGVkU2Vzc2lvbkFzQ3VycmVudCh0YXJnZXRzOiBUYXJnZXRNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldGVkU2Vzc2lvbiA9IHRoaXMuZ2V0VGFyZ2V0ZWRTZXNzaW9uKHRhcmdldHMpO1xuICAgICAgICBpZiAodGFyZ2V0ZWRTZXNzaW9uLnNlc3Npb25JZCA9PT0gdGhpcy5jdXJyZW50U2Vzc2lvbi5zZXNzaW9uSWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzZXNzaW9uID0gdGhpcy5zZXNzaW9ucy5maW5kKHggPT4geC5zZXNzaW9uSWQgPT09IHRhcmdldGVkU2Vzc2lvbi5zZXNzaW9uSWQpO1xuICAgICAgICBjb25zdCBlZGdlRWRpdFBhZ2UgPSB0YXJnZXRzLmxlbmd0aCA/IHRhcmdldHNbdGFyZ2V0cy5sZW5ndGggLSAxXS5lZGdlRWRpdFBhZ2UgOiBudWxsO1xuICAgICAgICB0aGlzLnRvZ2dsZUVkZ2VFZGl0TW9kZShlZGdlRWRpdFBhZ2UpO1xuICAgICAgICB0aGlzLnNldEN1cnJlbnRTZXNzaW9uKHNlc3Npb24pO1xuICAgIH1cblxuICAgIHNldEN1cnJlbnRTZXNzaW9uQnlJZChzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2Vzc2lvbnMuZmluZEluZGV4KHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgICAgIHRoaXMuc2V0Q3VycmVudFNlc3Npb24odGhpcy5zZXNzaW9uc1tpbmRleF0pO1xuICAgIH1cblxuICAgIHNldEN1cnJlbnRTZXNzaW9uKHNlc3Npb246IFNlc3Npb25Nb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5jbGVhclNlbGVjdGlvbigpO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uLnJlbmRlcmVyLmhpZGVDdXJzb3IoKTtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbi5yZW5kZXJlci51cGRhdGVTZWxlY3Rpb24odGhpcy5zZWxlY3Rpb24ucmFuZ2UpO1xuICAgICAgICB0aGlzLmN1cnJlbnRTZXNzaW9uID0gc2Vzc2lvbjtcbiAgICAgICAgdGhpcy5jdXJyZW50U2Vzc2lvbi5yZW5kZXJlci5zaG93Q3Vyc29yKCk7XG4gICAgICAgIHRoaXMuY3VycmVudFNlc3Npb24uc291cmNlLmVkZ2VFZGl0UGFnZSA9IHRoaXMuZWRnZUVkaXRpbmdQYWdlO1xuICAgIH1cblxuICAgIGdldFNlc3Npb24oc2Vzc2lvbklkOiBudW1iZXIpOiBFZGl0U2Vzc2lvbiB7XG4gICAgICAgIGNvbnN0IHNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbklkKTtcbiAgICAgICAgcmV0dXJuIHNlc3Npb24uc2Vzc2lvbjtcbiAgICB9XG5cbiAgICBzZXRTZWxlY3Rpb24oc2VsZWN0aW9uOiBTZWxlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24gPSBzZWxlY3Rpb247XG4gICAgfVxuXG4gICAgY2xlYXJBbGxTZXNzaW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXNzaW9ucy5mb3JFYWNoKHNlc3Npb24gPT4ge1xuICAgICAgICAgICAgc2Vzc2lvbi5zZXNzaW9uLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHNlc3Npb24ucmVuZGVyZXIuZGVzdHJveSgpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zZXNzaW9ucyA9IFtdO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRTZXNzaW9uVGFyZ2V0cygpOiBUYXJnZXRNb2RlbFtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VGFyZ2V0cyh0aGlzLmN1cnJlbnRTZXNzaW9uKTtcbiAgICB9XG5cbiAgICBnZXRUYXJnZXRzKHNlc3Npb246IFNlc3Npb25Nb2RlbCk6IFRhcmdldE1vZGVsW10ge1xuICAgICAgICBjb25zdCByZXN1bHQ6IFRhcmdldE1vZGVsW10gPSBbXTtcbiAgICAgICAgbGV0IHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gc2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB3aGlsZSAocGFyZW50U2Vzc2lvbikge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0ID0gc2Vzc2lvbi5zb3VyY2UuZ2V0VGFyZ2V0KCk7XG4gICAgICAgICAgICByZXN1bHQuc3BsaWNlKDAsIDAsIHRhcmdldCk7XG4gICAgICAgICAgICBzZXNzaW9uID0gcGFyZW50U2Vzc2lvbjtcbiAgICAgICAgICAgIHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gcGFyZW50U2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgZ2V0RWRnZVRhcmdldChzZXNzaW9uSWQ6IG51bWJlcik6IFRhcmdldE1vZGVsIHwgbnVsbCB7XG4gICAgICAgIGxldCBzZXNzaW9uID0gdGhpcy5zZXNzaW9ucy5maW5kKHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb25JZCk7XG4gICAgICAgIGxldCBwYXJlbnRTZXNzaW9uID0gdGhpcy5zZXNzaW9ucy5maW5kKHggPT4geC5zZXNzaW9uSWQgPT09IHNlc3Npb24ucGFyZW50U2Vzc2lvbklkKTtcbiAgICAgICAgd2hpbGUgKHBhcmVudFNlc3Npb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldCA9IHNlc3Npb24uc291cmNlLmdldFRhcmdldCgpO1xuICAgICAgICAgICAgaWYgKHRhcmdldC50eXBlID09PSBUYXJnZXRUeXBlLkVkZ2UpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzZXNzaW9uID0gcGFyZW50U2Vzc2lvbjtcbiAgICAgICAgICAgIHBhcmVudFNlc3Npb24gPSB0aGlzLnNlc3Npb25zLmZpbmQoeCA9PiB4LnNlc3Npb25JZCA9PT0gcGFyZW50U2Vzc2lvbi5wYXJlbnRTZXNzaW9uSWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZ2V0VGFyZ2V0ZWRTZXNzaW9uKHRhcmdldHM6IFRhcmdldE1vZGVsW10pOiBFZGl0U2Vzc2lvbiB7XG4gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm1haW5TZXNzaW9uLnNlc3Npb247XG4gICAgICAgIGZvciAoY29uc3QgdGFyZ2V0IG9mIHRhcmdldHMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAodGFyZ2V0LnR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIFRhcmdldFR5cGUuRG9jdW1lbnQ6XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgVGFyZ2V0VHlwZS5UYWJsZUNlbGw6IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGFibGUgPSByZXN1bHQuY3VzdG9tQ29tcG9uZW50cy50YWJsZXMuZmluZCh4ID0+IHguaW5zdGFuY2UuY29udGVudC5pbnNlcnRJbmRleCA9PT0gdGFyZ2V0LnRhYmxlQ2VsbC5pbnNlcnRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRhYmxlLmluc3RhbmNlLmdldENlbGxTZXNzaW9uKHRhcmdldC50YWJsZUNlbGwucm93LCB0YXJnZXQudGFibGVDZWxsLmNvbHVtbik7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYXNlIFRhcmdldFR5cGUuRWRnZToge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlZGdlID0gcmVzdWx0LmN1c3RvbUNvbXBvbmVudHMuZWRnZXMuZ2V0Q29tcG9uZW50QnlQYWdlVHlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5lZGdlRGF0YS5wYWdlVHlwZSBhcyBQYWdlVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5lZGdlRGF0YS50eXBlIGFzIEVkZ2VUeXBlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGVkZ2UuaW5zdGFuY2UuZWRnZVNlc3Npb24uc2Vzc2lvbjtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgdG9nZ2xlRWRnZUVkaXRNb2RlKGVkZ2VFZGl0aW5nUGFnZTogbnVtYmVyIHwgbnVsbCA9IG51bGwpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLm1haW5TZXNzaW9uLnNlc3Npb24uY3VzdG9tQ29tcG9uZW50cy5lZGdlcyB8fCB0aGlzLmVkZ2VFZGl0aW5nUGFnZSA9PT0gZWRnZUVkaXRpbmdQYWdlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVkZ2VFZGl0aW5nUGFnZSA9IGVkZ2VFZGl0aW5nUGFnZTtcbiAgICAgICAgdGhpcy5tYWluU2Vzc2lvbi5zZXNzaW9uLmN1c3RvbUNvbXBvbmVudHMuZWRnZXMudG9nZ2xlRWRpdE1vZGUoISF0aGlzLmVkZ2VFZGl0aW5nUGFnZSk7XG4gICAgICAgICh0aGlzLm1haW5TZXNzaW9uLnJlbmRlcmVyIGFzIFZpcnR1YWxSZW5kZXJlcikucmVuZGVyZXIudGV4dExheWVyLmVkZ2VFZGl0aW5nUGFnZVVwZGF0ZWQoZWRnZUVkaXRpbmdQYWdlKTtcbiAgICB9XG59XG4iXX0=
@@ -50,6 +50,7 @@ export class EditorService {
50
50
  this._updateEdges$ = new Subject();
51
51
  this._insertText$ = new Subject();
52
52
  this._blurCustomComponent$ = new Subject();
53
+ this._removeCustomElementsData$ = new Subject();
53
54
  }
54
55
  set styles(value) {
55
56
  this._styles$.next({ ...value });
@@ -210,6 +211,9 @@ export class EditorService {
210
211
  get blurCustomComponent$() {
211
212
  return this._blurCustomComponent$.asObservable();
212
213
  }
214
+ get removeCustomElementsData$() {
215
+ return this._removeCustomElementsData$.asObservable();
216
+ }
213
217
  setIsViewOnly(value) {
214
218
  this._isViewOnly = value;
215
219
  this._isViewOnly$.next(value);
@@ -337,10 +341,13 @@ export class EditorService {
337
341
  blurCustomComponent() {
338
342
  this._blurCustomComponent$.next();
339
343
  }
344
+ removeCustomElementsData(elements) {
345
+ this._removeCustomElementsData$.next(elements);
346
+ }
340
347
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
341
348
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorService }); }
342
349
  }
343
350
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: EditorService, decorators: [{
344
351
  type: Injectable
345
352
  }] });
346
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQVdqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7QUFTeEcsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFXWSxhQUFRLEdBQW9DLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQVFwRixpQkFBWSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM3RSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQixvQkFBZSxHQUE0QixJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUszRSxtQkFBYyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVEvRSxrQkFBYSxHQUFnRCxJQUFJLGVBQWUsQ0FDcEYsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN6QyxDQUFDO1FBS00sb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBMEQsQ0FBQztRQVF4Rix1QkFBa0IsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQVE5RCxvQkFBZSxHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQVF2RSxzQkFBaUIsR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFRN0UsY0FBUyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBS3JELG9CQUFlLEdBQTRCLElBQUksT0FBTyxFQUFrQixDQUFDO1FBS3pFLHlCQUFvQixHQUFpQyxJ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QUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQzsrR0FwY1EsYUFBYTttSEFBYixhQUFhOzs0RkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJyZWFrVHlwZXMgfSBmcm9tICcuLi9nYWRnZXRzL3BhZ2UtYnJlYWsvYnJlYWstdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBFZGdlVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudHMvZWRnZXMvZWRnZS10eXBlLmVudW0nO1xuaW1wb3J0IHsgRWxlbWVudERhdGFNb2RlbCB9IGZyb20gJy4uL2NvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9tb2RlbHMvZWxlbWVudC1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEVsZW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvZWxlbWVudC5tb2RlbCc7XG5pbXBvcnQgeyBFeHRlcm5hbFNpZGVuYXZJbnRlcmZhY2UgfSBmcm9tICcuLi9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwtc2lkZW5hdi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSW1hZ2VEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2ltYWdlLWRhdGEubW9kZWwnO1xuaW1wb3J0IHsgSW1hZ2VNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvaW1hZ2UubW9kZWwnO1xuaW1wb3J0IHsgSVRvb2xiYXJTdHlsZXMgfSBmcm9tICcuLi9jb250ZW50L2Rpc3BsYXktZGF0YS90b29sYmFyLXN0eWxlcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTnVtYmVyaW5nTGV2ZWxNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvbnVtYmVyaW5nLWxldmVsLm1vZGVsJztcbmltcG9ydCB7IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsIH0gZnJvbSAnLi4vLi4vZWRpdG9yL2dhZGdldHMvaGlzdG9yeS9vcGVyYXRpb25zLWhpc3RvcnktaW5mby5tb2RlbCc7XG5pbXBvcnQgeyBQYXJhZ3JhcGhTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9wYXJhZ3JhcGgtc3R5bGUubW9kZWwnO1xuaW1wb3J0IHsgUmVwbGFjZSB9IGZyb20gJy4uL2dhZGdldHMvc2VhcmNoL3JlcGxhY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9yZXNpemUtdGFibGUtY29sdW1ucy5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hJdGVyYXRpb24gfSBmcm9tICcuLi9nYWRnZXRzL3NlYXJjaC9zZWFyY2gtaXRlcmF0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZWFyY2hPcHRpb25zIH0gZnJvbSAnLi4vZ2FkZ2V0cy9zZWFyY2gvc2VhcmNoJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVkaXRvclNlcnZpY2Uge1xuICAgIHNldCBzdHlsZXModmFsdWU6IElUb29sYmFyU3R5bGVzKSB7XG4gICAgICAgIHRoaXMuX3N0eWxlcyQubmV4dCh7IC4uLnZhbHVlIH0pO1xuICAgIH1cbiAgICBnZXQgc3R5bGVzKCk6IElUb29sYmFyU3R5bGVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlcyQudmFsdWU7XG4gICAgfVxuICAgIGdldCBzdHlsZXMkKCk6IE9ic2VydmFibGU8SVRvb2xiYXJTdHlsZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0eWxlcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3N0eWxlcyQ6IEJlaGF2aW9yU3ViamVjdDxJVG9vbGJhclN0eWxlcz4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElUb29sYmFyU3R5bGVzPih7fSk7XG5cbiAgICBnZXQgaXNWaWV3T25seSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZpZXdPbmx5JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgZ2V0IGlzVmlld09ubHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1ZpZXdPbmx5O1xuICAgIH1cbiAgICBwcml2YXRlIF9pc1ZpZXdPbmx5JDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfaXNWaWV3T25seSA9IGZhbHNlO1xuXG4gICAgZ2V0IGNsaXBib2FyZERhdGEkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGlwYm9hcmREYXRhJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2xpcGJvYXJkRGF0YSQ6IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcblxuICAgIGdldCBoYXNTZWxlY3Rpb24kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzU2VsZWN0aW9uJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaGFzU2VsZWN0aW9uJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBzZXQgaGlzdG9yeUluZm8odmFsdWU6IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsKSB7XG4gICAgICAgIHRoaXMuX2hpc3RvcnlJbmZvJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IGhpc3RvcnlJbmZvJCgpOiBPYnNlcnZhYmxlPE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaXN0b3J5SW5mbyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hpc3RvcnlJbmZvJDogQmVoYXZpb3JTdWJqZWN0PE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8T3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWw+KFxuICAgICAgICBuZXcgT3BlcmF0aW9uc0hpc3RvcnlJbmZvTW9kZWwoLTEsIC0xKVxuICAgICk7XG5cbiAgICBnZXQgdG9nZ2xlU2lkZW5hdiQoKTogT2JzZXJ2YWJsZTx7IG9wZW46IGJvb2xlYW47IGNvbXBvbmVudDogVHlwZTxhbnk+OyBkYXRhPzogb2JqZWN0IH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvZ2dsZVNpZGVuYXYkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF90b2dnbGVTaWRlbmF2JCA9IG5ldyBTdWJqZWN0PHsgb3BlbjogYm9vbGVhbjsgY29tcG9uZW50OiBUeXBlPGFueT47IGRhdGE/OiBvYmplY3QgfT4oKTtcblxuICAgIHNldCBvcGVuU2VhcmNoRGlhbG9nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX29wZW5TZWFyY2hEaWFsb2ckLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgb3BlblNlYXJjaERpYWxvZyQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVuU2VhcmNoRGlhbG9nJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfb3BlblNlYXJjaERpYWxvZyQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgc2V0IHNlYXJjaE9wdGlvbnModmFsdWU6IFNlYXJjaE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoT3B0aW9ucyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzZWFyY2hPcHRpb25zJCgpOiBPYnNlcnZhYmxlPFNlYXJjaE9wdGlvbnM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaE9wdGlvbnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZWFyY2hPcHRpb25zJDogU3ViamVjdDxTZWFyY2hPcHRpb25zPiA9IG5ldyBTdWJqZWN0PFNlYXJjaE9wdGlvbnM+KCk7XG5cbiAgICBzZXQgc2VhcmNoSXRlcmF0aW9uKHZhbHVlOiBTZWFyY2hJdGVyYXRpb24pIHtcbiAgICAgICAgdGhpcy5fc2VhcmNoSXRlcmF0aW9uJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHNlYXJjaEl0ZXJhdGlvbiQoKTogT2JzZXJ2YWJsZTxTZWFyY2hJdGVyYXRpb24+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlYXJjaEl0ZXJhdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NlYXJjaEl0ZXJhdGlvbiQ6IFN1YmplY3Q8U2VhcmNoSXRlcmF0aW9uPiA9IG5ldyBTdWJqZWN0PFNlYXJjaEl0ZXJhdGlvbj4oKTtcblxuICAgIHNldCByZXBsYWNlKHZhbHVlOiBSZXBsYWNlKSB7XG4gICAgICAgIHRoaXMuX3JlcGxhY2UkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgcmVwbGFjZSQoKTogT2JzZXJ2YWJsZTxSZXBsYWNlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXBsYWNlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVwbGFjZSQ6IFN1YmplY3Q8UmVwbGFjZT4gPSBuZXcgU3ViamVjdDxSZXBsYWNlPigpO1xuXG4gICAgZ2V0IHNldFRleHRTdHlsZXMkKCk6IE9ic2VydmFibGU8VGV4dFN0eWxlTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldFRleHRTdHlsZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZXRUZXh0U3R5bGVzJDogU3ViamVjdDxUZXh0U3R5bGVNb2RlbD4gPSBuZXcgU3ViamVjdDxUZXh0U3R5bGVNb2RlbD4oKTtcblxuICAgIGdldCBzZXRQYXJhZ3JhcGhTdHlsZXMkKCk6IE9ic2VydmFibGU8UGFyYWdyYXBoU3R5bGVNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2V0UGFyYWdyYXBoU3R5bGVzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0UGFyYWdyYXBoU3R5bGVzJDogU3ViamVjdDxQYXJhZ3JhcGhTdHlsZU1vZGVsPiA9IG5ldyBTdWJqZWN0PFBhcmFncmFwaFN0eWxlTW9kZWw+KCk7XG5cbiAgICBnZXQgc2V0TnVtYmVyaW5nVGVtcGxhdGVUeXBlJCgpOiBPYnNlcnZhYmxlPE51bWJlcmluZ0xldmVsTW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2V0TnVtYmVyaW5nVGVtcGxhdGVUeXBlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0TnVtYmVyaW5nVGVtcGxhdGVUeXBlJDogU3ViamVjdDxOdW1iZXJpbmdMZXZlbE1vZGVsW10+ID0gbmV3IFN1YmplY3Q8TnVtYmVyaW5nTGV2ZWxNb2RlbFtdPigpO1xuXG4gICAgZ2V0IHJlbW92ZU51bWJlcmluZ3MkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlTnVtYmVyaW5ncyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZU51bWJlcmluZ3MkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBzZXRJbWFnZVN0eWxlJCgpOiBPYnNlcnZhYmxlPEltYWdlTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZUltYWdlU3R5bGUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VJbWFnZVN0eWxlJCA9IG5ldyBTdWJqZWN0PEltYWdlTW9kZWw+KCk7XG5cbiAgICBnZXQgY2hhbmdlRWxlbWVudFN0eWxlJCgpOiBPYnNlcnZhYmxlPEVsZW1lbnRNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hhbmdlRWxlbWVudFN0eWxlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hhbmdlRWxlbWVudFN0eWxlJCA9IG5ldyBTdWJqZWN0PEVsZW1lbnRNb2RlbD4oKTtcblxuICAgIGdldCBjcmVhdGVDdXN0b21Db21wb25lbnQkKCk6IE9ic2VydmFibGU8RWxlbWVudERhdGFNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlQ3VzdG9tQ29tcG9uZW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY3JlYXRlQ3VzdG9tQ29tcG9uZW50JDogU3ViamVjdDxFbGVtZW50RGF0YU1vZGVsPiA9IG5ldyBTdWJqZWN0PEVsZW1lbnREYXRhTW9kZWw+KCk7XG5cbiAgICBnZXQgaW5zZXJ0QnJlYWskKCk6IE9ic2VydmFibGU8QnJlYWtUeXBlcz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0QnJlYWskLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pbnNlcnRCcmVhayQ6IFN1YmplY3Q8QnJlYWtUeXBlcz4gPSBuZXcgU3ViamVjdDxCcmVha1R5cGVzPigpO1xuXG4gICAgZ2V0IGluc2VydEltYWdlJCgpOiBPYnNlcnZhYmxlPEltYWdlRGF0YU1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRJbWFnZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydEltYWdlJCA9IG5ldyBTdWJqZWN0PEltYWdlRGF0YU1vZGVsPigpO1xuXG4gICAgZ2V0IGluc2VydExpbmskKCk6IE9ic2VydmFibGU8eyB0ZXh0OiBzdHJpbmc7IGxpbms6IHN0cmluZyB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRMaW5rJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0TGluayQgPSBuZXcgU3ViamVjdDx7IHRleHQ6IHN0cmluZzsgbGluazogc3RyaW5nIH0+KCk7XG5cbiAgICBnZXQgZW5kTW91c2VQcmVzcyQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbmRNb3VzZVByZXNzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZW5kTW91c2VQcmVzcyQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGRpc2FibGVTZWxlY3Rpb24kKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZVNlbGVjdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2Rpc2FibGVTZWxlY3Rpb24kOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBjaGFuZ2VkVGFibGVTaXplJCgpOiBPYnNlcnZhYmxlPHsgaW5zZXJ0SW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2hhbmdlZFRhYmxlU2l6ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoYW5nZWRUYWJsZVNpemUkID0gbmV3IFN1YmplY3Q8eyBpbnNlcnRJbmRleDogbnVtYmVyOyBzZXNzaW9uSWQ6IG51bWJlciB9PigpO1xuXG4gICAgZ2V0IGluc2VydFRhYmxlUm93cyQoKTogT2JzZXJ2YWJsZTx7XG4gICAgICAgIGluc2VydEluZGV4OiBudW1iZXI7XG4gICAgICAgIHJvd3NDb3VudDogbnVtYmVyO1xuICAgICAgICB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgICAgICBpbmhlcml0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXI7XG4gICAgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0VGFibGVSb3dzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0VGFibGVSb3dzJCA9IG5ldyBTdWJqZWN0PHtcbiAgICAgICAgaW5zZXJ0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgcm93c0NvdW50OiBudW1iZXI7XG4gICAgICAgIHRhcmdldEluZGV4OiBudW1iZXI7XG4gICAgICAgIGluaGVyaXRJbmRleDogbnVtYmVyO1xuICAgICAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgZ2V0IGluc2VydFRhYmxlQ29sdW1ucyQoKTogT2JzZXJ2YWJsZTx7XG4gICAgICAgIGluc2VydEluZGV4OiBudW1iZXI7XG4gICAgICAgIGNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgICAgICB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgICAgICBpbmhlcml0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXI7XG4gICAgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0VGFibGVDb2x1bW5zJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0VGFibGVDb2x1bW5zJCA9IG5ldyBTdWJqZWN0PHtcbiAgICAgICAgaW5zZXJ0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgY29sdW1uc0NvdW50OiBudW1iZXI7XG4gICAgICAgIHRhcmdldEluZGV4OiBudW1iZXI7XG4gICAgICAgIGluaGVyaXRJbmRleDogbnVtYmVyO1xuICAgICAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgZ2V0IHJlbW92ZVRhYmxlUm93cyQoKTogT2JzZXJ2YWJsZTx7IGluc2VydEluZGV4OiBudW1iZXI7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlVGFibGVSb3dzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVtb3ZlVGFibGVSb3dzJCA9IG5ldyBTdWJqZWN0PHsgaW5zZXJ0SW5kZXg6IG51bWJlcjsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyBzZXNzaW9uSWQ6IG51bWJlciB9PigpO1xuXG4gICAgZ2V0IHJlbW92ZVRhYmxlQ29sdW1ucyQoKTogT2JzZXJ2YWJsZTx7IGluc2VydEluZGV4OiBudW1iZXI7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlVGFibGVDb2x1bW5zJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVtb3ZlVGFibGVDb2x1bW5zJCA9IG5ldyBTdWJqZWN0PHsgaW5zZXJ0SW5kZXg6IG51bWJlcjsgc3RhcnRJbmRleDogbnVtYmVyOyBlbmRJbmRleDogbnVtYmVyOyBzZXNzaW9uSWQ6IG51bWJlciB9PigpO1xuXG4gICAgZ2V0IHJlbW92ZUltYWdlJCgpOiBPYnNlcnZhYmxlPHsgaW5zZXJ0SW5kZXg6IG51bWJlciB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW1vdmVJbWFnZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZUltYWdlJCA9IG5ldyBTdWJqZWN0PHsgaW5zZXJ0SW5kZXg6IG51bWJlciB9PigpO1xuXG4gICAgZ2V0IHJlc2l6ZVRhYmxlQ29sdW1ucyQoKTogT2JzZXJ2YWJsZTx7XG4gICAgICAgIHJlc2l6ZVRhYmxlQ29sdW1uczogUmVzaXplVGFibGVDb2x1bW5zTW9kZWw7XG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyO1xuICAgIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc2l6ZVRhYmxlQ29sdW1ucyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Jlc2l6ZVRhYmxlQ29sdW1ucyQgPSBuZXcgU3ViamVjdDx7XG4gICAgICAgIHJlc2l6ZVRhYmxlQ29sdW1uczogUmVzaXplVGFibGVDb2x1bW5zTW9kZWw7XG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyO1xuICAgIH0+KCk7XG5cbiAgICBnZXQgaW5zZXJ0VGFibGUkKCk6IE9ic2VydmFibGU8eyByb3dzOiBudW1iZXI7IGNvbHVtbnM6IG51bWJlciB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRUYWJsZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydFRhYmxlJCA9IG5ldyBTdWJqZWN0PHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfT4oKTtcblxuICAgIGdldCByZW5kZXJlclVwZGF0ZWQkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW5kZXJlclVwZGF0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW5kZXJlclVwZGF0ZWQkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgZ2V0IGVkZ2VFbGVtZW50Q29weVVwZGF0ZWQkKCk6IE9ic2VydmFibGU8eyBuZXdFbGVtZW50Q29weTogSFRNTEVsZW1lbnQ7IHBhZ2U6IG51bWJlciB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGdlRWxlbWVudENvcHlVcGRhdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfZWRnZUVsZW1lbnRDb3B5VXBkYXRlZCQgPSBuZXcgU3ViamVjdDx7XG4gICAgICAgIG5ld0VsZW1lbnRDb3B5OiBIVE1MRWxlbWVudDtcbiAgICAgICAgcGFnZTogbnVtYmVyO1xuICAgIH0+KCk7XG5cbiAgICBnZXQgY2hhbmdlZEVkZ2VIZWlnaHQkKCk6IE9ic2VydmFibGU8RWRnZVR5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRFZGdlSGVpZ2h0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hhbmdlZEVkZ2VIZWlnaHQkOiBTdWJqZWN0PEVkZ2VUeXBlPiA9IG5ldyBTdWJqZWN0PEVkZ2VUeXBlPigpO1xuXG4gICAgZ2V0IHJlZG8kKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVkbyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlZG8kID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCB1bmRvJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VuZG8kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF91bmRvJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgcHJpbnQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJpbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9wcmludCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGN1dFNlbGVjdGVkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1dFNlbGVjdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY3V0U2VsZWN0ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBjb3B5U2VsZWN0ZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29weVNlbGVjdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY29weVNlbGVjdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgcGFzdGVGcm9tQ2xpcGJvYXJkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bhc3RlRnJvbUNsaXBib2FyZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3Bhc3RlRnJvbUNsaXBib2FyZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHNlbGVjdEFsbCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RBbGwkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZWxlY3RBbGwkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCByZW1vdmVTZWxlY3RlZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZW1vdmVTZWxlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZVNlbGVjdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQga2V5RG93biQoKTogT2JzZXJ2YWJsZTxLZXlib2FyZEV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9rZXlEb3duJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfa2V5RG93biQgPSBuZXcgU3ViamVjdDxLZXlib2FyZEV2ZW50PigpO1xuXG4gICAgZ2V0IHVwZGF0ZUVkZ2VzJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdXBkYXRlRWRnZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF91cGRhdGVFZGdlcyQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgICBnZXQgaW5zZXJ0VGV4dCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc2VydFRleHQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pbnNlcnRUZXh0JCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICAgIGdldCBibHVyQ3VzdG9tQ29tcG9uZW50JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JsdXJDdXN0b21Db21wb25lbnQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9ibHVyQ3VzdG9tQ29tcG9uZW50JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBzZXRJc1ZpZXdPbmx5KHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzVmlld09ubHkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5faXNWaWV3T25seSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgc2V0SGFzU2VsZWN0aW9uKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2hhc1NlbGVjdGlvbiQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgc2V0Q2xpcGJvYXJkRGF0YSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NsaXBib2FyZERhdGEkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldFRleHRTdHlsZXModmFsdWU6IFRleHRTdHlsZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldFRleHRTdHlsZXMkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldFBhcmFncmFwaFN0eWxlcyh2YWx1ZTogUGFyYWdyYXBoU3R5bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRQYXJhZ3JhcGhTdHlsZXMkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldE51bWJlcmluZ1RlbXBsYXRlVHlwZSh2YWx1ZTogTnVtYmVyaW5nTGV2ZWxNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NldE51bWJlcmluZ1RlbXBsYXRlVHlwZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlTnVtYmVyaW5ncygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlTnVtYmVyaW5ncyQubmV4dCgpO1xuICAgIH1cblxuICAgIGNoYW5nZUltYWdlU3R5bGUodmFsdWU6IEltYWdlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlSW1hZ2VTdHlsZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgY2hhbmdlRWxlbWVudFN0eWxlKHZhbHVlOiBFbGVtZW50TW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2hhbmdlRWxlbWVudFN0eWxlJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBjcmVhdGVDdXN0b21Db21wb25lbnQobW9kZWw6IEVsZW1lbnREYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3JlYXRlQ3VzdG9tQ29tcG9uZW50JC5uZXh0KG1vZGVsKTtcbiAgICB9XG5cbiAgICBpbnNlcnRCcmVhayh2YWx1ZTogQnJlYWtUeXBlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRCcmVhayQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaW5zZXJ0SW1hZ2UoaW1hZ2VEYXRhOiBJbWFnZURhdGFNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRJbWFnZSQubmV4dChpbWFnZURhdGEpO1xuICAgIH1cblxuICAgIGluc2VydExpbmsodGV4dDogc3RyaW5nLCBsaW5rOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0TGluayQubmV4dCh7IHRleHQsIGxpbmsgfSk7XG4gICAgfVxuXG4gICAgZW5kTW91c2VQcmVzcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZW5kTW91c2VQcmVzcyQubmV4dCgpO1xuICAgIH1cblxuICAgIGRpc2FibGVTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVTZWxlY3Rpb24kLm5leHQoKTtcbiAgICB9XG5cbiAgICBvcGVuRWxlbWVudFNpZGVuYXYoY29tcG9uZW50OiBUeXBlPEV4dGVybmFsU2lkZW5hdkludGVyZmFjZT4sIG1vZGVsOiBFbGVtZW50TW9kZWwsIGNvbnRlbnRXaWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RvZ2dsZVNpZGVuYXYkLm5leHQoeyBvcGVuOiB0cnVlLCBjb21wb25lbnQsIGRhdGE6IHsgbW9kZWwsIGNvbnRlbnRXaWR0aCB9IH0pO1xuICAgIH1cblxuICAgIG9wZW5TaWRlbmF2KGNvbXBvbmVudDogVHlwZTxhbnk+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RvZ2dsZVNpZGVuYXYkLm5leHQoeyBvcGVuOiB0cnVlLCBjb21wb25lbnQgfSk7XG4gICAgfVxuXG4gICAgY2xvc2VTaWRlbmF2KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90b2dnbGVTaWRlbmF2JC5uZXh0KHsgb3BlbjogZmFsc2UsIGNvbXBvbmVudDogbnVsbCB9KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VkVGFibGVTaXplKGluc2VydEluZGV4OiBudW1iZXIsIHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZWRUYWJsZVNpemUkLm5leHQoeyBpbnNlcnRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIGluc2VydFRhYmxlUm93cyhpbnNlcnRJbmRleDogbnVtYmVyLCByb3dzQ291bnQ6IG51bWJlciwgdGFyZ2V0SW5kZXg6IG51bWJlciwgaW5oZXJpdEluZGV4OiBudW1iZXIsIHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luc2VydFRhYmxlUm93cyQubmV4dCh7IGluc2VydEluZGV4LCByb3dzQ291bnQsIHRhcmdldEluZGV4LCBpbmhlcml0SW5kZXgsIHNlc3Npb25JZCB9KTtcbiAgICB9XG5cbiAgICBpbnNlcnRUYWJsZUNvbHVtbnMoaW5zZXJ0SW5kZXg6IG51bWJlciwgY29sdW1uc0NvdW50OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIsIGluaGVyaXRJbmRleDogbnVtYmVyLCBzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUYWJsZUNvbHVtbnMkLm5leHQoeyBpbnNlcnRJbmRleCwgY29sdW1uc0NvdW50LCB0YXJnZXRJbmRleCwgaW5oZXJpdEluZGV4LCBzZXNzaW9uSWQgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlVGFibGVSb3dzKGluc2VydEluZGV4OiBudW1iZXIsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlVGFibGVSb3dzJC5uZXh0KHsgaW5zZXJ0SW5kZXgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCBzZXNzaW9uSWQgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlVGFibGVDb2x1bW5zKGluc2VydEluZGV4OiBudW1iZXIsIHN0YXJ0SW5kZXg6IG51bWJlciwgZW5kSW5kZXg6IG51bWJlciwgc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlVGFibGVDb2x1bW5zJC5uZXh0KHsgaW5zZXJ0SW5kZXgsIHN0YXJ0SW5kZXgsIGVuZEluZGV4LCBzZXNzaW9uSWQgfSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlSW1hZ2UoaW5zZXJ0SW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVJbWFnZSQubmV4dCh7IGluc2VydEluZGV4IH0pO1xuICAgIH1cblxuICAgIHJlc2l6ZVRhYmxlQ29sdW1ucyhyZXNpemVUYWJsZUNvbHVtbnM6IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsLCBzZXNzaW9uSWQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9yZXNpemVUYWJsZUNvbHVtbnMkLm5leHQoe1xuICAgICAgICAgICAgcmVzaXplVGFibGVDb2x1bW5zLFxuICAgICAgICAgICAgc2Vzc2lvbklkXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGluc2VydFRhYmxlKHRhYmxlRGF0YTogeyByb3dzOiBudW1iZXI7IGNvbHVtbnM6IG51bWJlciB9KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luc2VydFRhYmxlJC5uZXh0KHRhYmxlRGF0YSk7XG4gICAgfVxuXG4gICAgcmVuZGVyZXJVcGRhdGVkKHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyVXBkYXRlZCQubmV4dChzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIGVkZ2VFbGVtZW50Q29weVVwZGF0ZWQobmV3RWxlbWVudENvcHksIHBhZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWRnZUVsZW1lbnRDb3B5VXBkYXRlZCQubmV4dCh7IG5ld0VsZW1lbnRDb3B5LCBwYWdlIH0pO1xuICAgIH1cblxuICAgIGNoYW5nZWRFZGdlSGVpZ2h0KHR5cGU6IEVkZ2VUeXBlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZWRFZGdlSGVpZ2h0JC5uZXh0KHR5cGUpO1xuICAgIH1cblxuICAgIHVuZG8oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3VuZG8kLm5leHQoKTtcbiAgICB9XG5cbiAgICByZWRvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZWRvJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcHJpbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3ByaW50JC5uZXh0KCk7XG4gICAgfVxuXG4gICAgY3V0U2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2N1dFNlbGVjdGVkJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgY29weVNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb3B5U2VsZWN0ZWQkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwYXN0ZUZyb21DbGlwYm9hcmQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Bhc3RlRnJvbUNsaXBib2FyZCQubmV4dCgpO1xuICAgIH1cblxuICAgIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0QWxsJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcmVtb3ZlU2VsZWN0ZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVNlbGVjdGVkJC5uZXh0KCk7XG4gICAgfVxuXG4gICAga2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlEb3duJC5uZXh0KGV2ZW50KTtcbiAgICB9XG5cbiAgICB1cGRhdGVFZGdlcyhzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl91cGRhdGVFZGdlcyQubmV4dChzZXNzaW9uSWQpO1xuICAgIH1cblxuICAgIGluc2VydFRleHQodGV4dDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luc2VydFRleHQkLm5leHQodGV4dCk7XG4gICAgfVxuXG4gICAgYmx1ckN1c3RvbUNvbXBvbmVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fYmx1ckN1c3RvbUNvbXBvbmVudCQubmV4dCgpO1xuICAgIH1cbn1cbiJdfQ==
353
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi9lZGl0b3IvaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQVdqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQzs7QUFTeEcsTUFBTSxPQUFPLGFBQWE7SUFEMUI7UUFXWSxhQUFRLEdBQW9DLElBQUksZUFBZSxDQUFpQixFQUFFLENBQUMsQ0FBQztRQVFwRixpQkFBWSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUM3RSxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUtwQixvQkFBZSxHQUE0QixJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUszRSxtQkFBYyxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQVEvRSxrQkFBYSxHQUFnRCxJQUFJLGVBQWUsQ0FDcEYsSUFBSSwwQkFBMEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUN6QyxDQUFDO1FBS00sb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBMEQsQ0FBQztRQVF4Rix1QkFBa0IsR0FBcUIsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQVE5RCxvQkFBZSxHQUEyQixJQUFJLE9BQU8sRUFBaUIsQ0FBQztRQVF2RSxzQkFBaUIsR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7UUFRN0UsY0FBUyxHQUFxQixJQUFJLE9BQU8sRUFBVyxDQUFDO1FBS3JELG9CQUFlLEdBQTRCLElBQUksT0FBTyxFQUFrQixDQUFDO1FBS3pFLHlCQUFvQixHQUFpQyxJ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QUFDLFNBQWlCO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBWTtRQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCx3QkFBd0IsQ0FBQyxRQUF3QjtRQUM3QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ25ELENBQUM7K0dBN2NRLGFBQWE7bUhBQWIsYUFBYTs7NEZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCcmVha1R5cGVzIH0gZnJvbSAnLi4vZ2FkZ2V0cy9wYWdlLWJyZWFrL2JyZWFrLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRWRnZVR5cGUgfSBmcm9tICcuLi9jb21wb25lbnRzL2VkZ2VzL2VkZ2UtdHlwZS5lbnVtJztcbmltcG9ydCB7IEVsZW1lbnREYXRhTW9kZWwgfSBmcm9tICcuLi9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2VsZW1lbnQtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRXh0ZXJuYWxTaWRlbmF2SW50ZXJmYWNlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L2V4dGVybmFsLXNpZGVuYXYuaW50ZXJmYWNlJztcbmltcG9ydCB7IEltYWdlRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbWFnZS1kYXRhLm1vZGVsJztcbmltcG9ydCB7IEltYWdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2ltYWdlLm1vZGVsJztcbmltcG9ydCB7IElUb29sYmFyU3R5bGVzIH0gZnJvbSAnLi4vY29udGVudC9kaXNwbGF5LWRhdGEvdG9vbGJhci1zdHlsZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IE51bWJlcmluZ0xldmVsTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL251bWJlcmluZy1sZXZlbC5tb2RlbCc7XG5pbXBvcnQgeyBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCB9IGZyb20gJy4uLy4uL2VkaXRvci9nYWRnZXRzL2hpc3Rvcnkvb3BlcmF0aW9ucy1oaXN0b3J5LWluZm8ubW9kZWwnO1xuaW1wb3J0IHsgUGFyYWdyYXBoU3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmltcG9ydCB7IFJlcGxhY2UgfSBmcm9tICcuLi9nYWRnZXRzL3NlYXJjaC9yZXBsYWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvcmVzaXplLXRhYmxlLWNvbHVtbnMubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoSXRlcmF0aW9uIH0gZnJvbSAnLi4vZ2FkZ2V0cy9zZWFyY2gvc2VhcmNoLWl0ZXJhdGlvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoT3B0aW9ucyB9IGZyb20gJy4uL2dhZGdldHMvc2VhcmNoL3NlYXJjaCc7XG5pbXBvcnQgeyBUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGV4dC1zdHlsZS5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFZGl0b3JTZXJ2aWNlIHtcbiAgICBzZXQgc3R5bGVzKHZhbHVlOiBJVG9vbGJhclN0eWxlcykge1xuICAgICAgICB0aGlzLl9zdHlsZXMkLm5leHQoeyAuLi52YWx1ZSB9KTtcbiAgICB9XG4gICAgZ2V0IHN0eWxlcygpOiBJVG9vbGJhclN0eWxlcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZXMkLnZhbHVlO1xuICAgIH1cbiAgICBnZXQgc3R5bGVzJCgpOiBPYnNlcnZhYmxlPElUb29sYmFyU3R5bGVzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdHlsZXMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zdHlsZXMkOiBCZWhhdmlvclN1YmplY3Q8SVRvb2xiYXJTdHlsZXM+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJVG9vbGJhclN0eWxlcz4oe30pO1xuXG4gICAgZ2V0IGlzVmlld09ubHkkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaWV3T25seSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIGdldCBpc1ZpZXdPbmx5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaWV3T25seTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaXNWaWV3T25seSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHByaXZhdGUgX2lzVmlld09ubHkgPSBmYWxzZTtcblxuICAgIGdldCBjbGlwYm9hcmREYXRhJCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xpcGJvYXJkRGF0YSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NsaXBib2FyZERhdGEkOiBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignJyk7XG5cbiAgICBnZXQgaGFzU2VsZWN0aW9uJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1NlbGVjdGlvbiQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc1NlbGVjdGlvbiQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgc2V0IGhpc3RvcnlJbmZvKHZhbHVlOiBPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbCkge1xuICAgICAgICB0aGlzLl9oaXN0b3J5SW5mbyQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBoaXN0b3J5SW5mbyQoKTogT2JzZXJ2YWJsZTxPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGlzdG9yeUluZm8kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oaXN0b3J5SW5mbyQ6IEJlaGF2aW9yU3ViamVjdDxPcGVyYXRpb25zSGlzdG9yeUluZm9Nb2RlbD4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsPihcbiAgICAgICAgbmV3IE9wZXJhdGlvbnNIaXN0b3J5SW5mb01vZGVsKC0xLCAtMSlcbiAgICApO1xuXG4gICAgZ2V0IHRvZ2dsZVNpZGVuYXYkKCk6IE9ic2VydmFibGU8eyBvcGVuOiBib29sZWFuOyBjb21wb25lbnQ6IFR5cGU8YW55PjsgZGF0YT86IG9iamVjdCB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl90b2dnbGVTaWRlbmF2JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdG9nZ2xlU2lkZW5hdiQgPSBuZXcgU3ViamVjdDx7IG9wZW46IGJvb2xlYW47IGNvbXBvbmVudDogVHlwZTxhbnk+OyBkYXRhPzogb2JqZWN0IH0+KCk7XG5cbiAgICBzZXQgb3BlblNlYXJjaERpYWxvZyh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9vcGVuU2VhcmNoRGlhbG9nJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IG9wZW5TZWFyY2hEaWFsb2ckKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlblNlYXJjaERpYWxvZyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX29wZW5TZWFyY2hEaWFsb2ckOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICAgIHNldCBzZWFyY2hPcHRpb25zKHZhbHVlOiBTZWFyY2hPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX3NlYXJjaE9wdGlvbnMkLm5leHQodmFsdWUpO1xuICAgIH1cbiAgICBnZXQgc2VhcmNoT3B0aW9ucyQoKTogT2JzZXJ2YWJsZTxTZWFyY2hPcHRpb25zPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hPcHRpb25zJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2VhcmNoT3B0aW9ucyQ6IFN1YmplY3Q8U2VhcmNoT3B0aW9ucz4gPSBuZXcgU3ViamVjdDxTZWFyY2hPcHRpb25zPigpO1xuXG4gICAgc2V0IHNlYXJjaEl0ZXJhdGlvbih2YWx1ZTogU2VhcmNoSXRlcmF0aW9uKSB7XG4gICAgICAgIHRoaXMuX3NlYXJjaEl0ZXJhdGlvbiQubmV4dCh2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBzZWFyY2hJdGVyYXRpb24kKCk6IE9ic2VydmFibGU8U2VhcmNoSXRlcmF0aW9uPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWFyY2hJdGVyYXRpb24kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZWFyY2hJdGVyYXRpb24kOiBTdWJqZWN0PFNlYXJjaEl0ZXJhdGlvbj4gPSBuZXcgU3ViamVjdDxTZWFyY2hJdGVyYXRpb24+KCk7XG5cbiAgICBzZXQgcmVwbGFjZSh2YWx1ZTogUmVwbGFjZSkge1xuICAgICAgICB0aGlzLl9yZXBsYWNlJC5uZXh0KHZhbHVlKTtcbiAgICB9XG4gICAgZ2V0IHJlcGxhY2UkKCk6IE9ic2VydmFibGU8UmVwbGFjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVwbGFjZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlcGxhY2UkOiBTdWJqZWN0PFJlcGxhY2U+ID0gbmV3IFN1YmplY3Q8UmVwbGFjZT4oKTtcblxuICAgIGdldCBzZXRUZXh0U3R5bGVzJCgpOiBPYnNlcnZhYmxlPFRleHRTdHlsZU1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZXRUZXh0U3R5bGVzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0VGV4dFN0eWxlcyQ6IFN1YmplY3Q8VGV4dFN0eWxlTW9kZWw+ID0gbmV3IFN1YmplY3Q8VGV4dFN0eWxlTW9kZWw+KCk7XG5cbiAgICBnZXQgc2V0UGFyYWdyYXBoU3R5bGVzJCgpOiBPYnNlcnZhYmxlPFBhcmFncmFwaFN0eWxlTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldFBhcmFncmFwaFN0eWxlcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NldFBhcmFncmFwaFN0eWxlcyQ6IFN1YmplY3Q8UGFyYWdyYXBoU3R5bGVNb2RlbD4gPSBuZXcgU3ViamVjdDxQYXJhZ3JhcGhTdHlsZU1vZGVsPigpO1xuXG4gICAgZ2V0IHNldE51bWJlcmluZ1RlbXBsYXRlVHlwZSQoKTogT2JzZXJ2YWJsZTxOdW1iZXJpbmdMZXZlbE1vZGVsW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NldE51bWJlcmluZ1RlbXBsYXRlVHlwZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NldE51bWJlcmluZ1RlbXBsYXRlVHlwZSQ6IFN1YmplY3Q8TnVtYmVyaW5nTGV2ZWxNb2RlbFtdPiA9IG5ldyBTdWJqZWN0PE51bWJlcmluZ0xldmVsTW9kZWxbXT4oKTtcblxuICAgIGdldCByZW1vdmVOdW1iZXJpbmdzJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW92ZU51bWJlcmluZ3MkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW1vdmVOdW1iZXJpbmdzJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgc2V0SW1hZ2VTdHlsZSQoKTogT2JzZXJ2YWJsZTxJbWFnZU1vZGVsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VJbWFnZVN0eWxlJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfY2hhbmdlSW1hZ2VTdHlsZSQgPSBuZXcgU3ViamVjdDxJbWFnZU1vZGVsPigpO1xuXG4gICAgZ2V0IGNoYW5nZUVsZW1lbnRTdHlsZSQoKTogT2JzZXJ2YWJsZTxFbGVtZW50TW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZUVsZW1lbnRTdHlsZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoYW5nZUVsZW1lbnRTdHlsZSQgPSBuZXcgU3ViamVjdDxFbGVtZW50TW9kZWw+KCk7XG5cbiAgICBnZXQgY3JlYXRlQ3VzdG9tQ29tcG9uZW50JCgpOiBPYnNlcnZhYmxlPEVsZW1lbnREYXRhTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NyZWF0ZUN1c3RvbUNvbXBvbmVudCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NyZWF0ZUN1c3RvbUNvbXBvbmVudCQ6IFN1YmplY3Q8RWxlbWVudERhdGFNb2RlbD4gPSBuZXcgU3ViamVjdDxFbGVtZW50RGF0YU1vZGVsPigpO1xuXG4gICAgZ2V0IGluc2VydEJyZWFrJCgpOiBPYnNlcnZhYmxlPEJyZWFrVHlwZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc2VydEJyZWFrJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0QnJlYWskOiBTdWJqZWN0PEJyZWFrVHlwZXM+ID0gbmV3IFN1YmplY3Q8QnJlYWtUeXBlcz4oKTtcblxuICAgIGdldCBpbnNlcnRJbWFnZSQoKTogT2JzZXJ2YWJsZTxJbWFnZURhdGFNb2RlbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0SW1hZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pbnNlcnRJbWFnZSQgPSBuZXcgU3ViamVjdDxJbWFnZURhdGFNb2RlbD4oKTtcblxuICAgIGdldCBpbnNlcnRMaW5rJCgpOiBPYnNlcnZhYmxlPHsgdGV4dDogc3RyaW5nOyBsaW5rOiBzdHJpbmcgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0TGluayQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydExpbmskID0gbmV3IFN1YmplY3Q8eyB0ZXh0OiBzdHJpbmc7IGxpbms6IHN0cmluZyB9PigpO1xuXG4gICAgZ2V0IGVuZE1vdXNlUHJlc3MkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5kTW91c2VQcmVzcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2VuZE1vdXNlUHJlc3MkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBkaXNhYmxlU2VsZWN0aW9uJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVTZWxlY3Rpb24kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9kaXNhYmxlU2VsZWN0aW9uJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgY2hhbmdlZFRhYmxlU2l6ZSQoKTogT2JzZXJ2YWJsZTx7IGluc2VydEluZGV4OiBudW1iZXI7IHNlc3Npb25JZDogbnVtYmVyIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NoYW5nZWRUYWJsZVNpemUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9jaGFuZ2VkVGFibGVTaXplJCA9IG5ldyBTdWJqZWN0PHsgaW5zZXJ0SW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4oKTtcblxuICAgIGdldCBpbnNlcnRUYWJsZVJvd3MkKCk6IE9ic2VydmFibGU8e1xuICAgICAgICBpbnNlcnRJbmRleDogbnVtYmVyO1xuICAgICAgICByb3dzQ291bnQ6IG51bWJlcjtcbiAgICAgICAgdGFyZ2V0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgaW5oZXJpdEluZGV4OiBudW1iZXI7XG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyO1xuICAgIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc2VydFRhYmxlUm93cyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydFRhYmxlUm93cyQgPSBuZXcgU3ViamVjdDx7XG4gICAgICAgIGluc2VydEluZGV4OiBudW1iZXI7XG4gICAgICAgIHJvd3NDb3VudDogbnVtYmVyO1xuICAgICAgICB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgICAgICBpbmhlcml0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXI7XG4gICAgfT4oKTtcblxuICAgIGdldCBpbnNlcnRUYWJsZUNvbHVtbnMkKCk6IE9ic2VydmFibGU8e1xuICAgICAgICBpbnNlcnRJbmRleDogbnVtYmVyO1xuICAgICAgICBjb2x1bW5zQ291bnQ6IG51bWJlcjtcbiAgICAgICAgdGFyZ2V0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgaW5oZXJpdEluZGV4OiBudW1iZXI7XG4gICAgICAgIHNlc3Npb25JZDogbnVtYmVyO1xuICAgIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc2VydFRhYmxlQ29sdW1ucyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2luc2VydFRhYmxlQ29sdW1ucyQgPSBuZXcgU3ViamVjdDx7XG4gICAgICAgIGluc2VydEluZGV4OiBudW1iZXI7XG4gICAgICAgIGNvbHVtbnNDb3VudDogbnVtYmVyO1xuICAgICAgICB0YXJnZXRJbmRleDogbnVtYmVyO1xuICAgICAgICBpbmhlcml0SW5kZXg6IG51bWJlcjtcbiAgICAgICAgc2Vzc2lvbklkOiBudW1iZXI7XG4gICAgfT4oKTtcblxuICAgIGdldCByZW1vdmVUYWJsZVJvd3MkKCk6IE9ic2VydmFibGU8eyBpbnNlcnRJbmRleDogbnVtYmVyOyBzdGFydEluZGV4OiBudW1iZXI7IGVuZEluZGV4OiBudW1iZXI7IHNlc3Npb25JZDogbnVtYmVyIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW92ZVRhYmxlUm93cyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZVRhYmxlUm93cyQgPSBuZXcgU3ViamVjdDx7IGluc2VydEluZGV4OiBudW1iZXI7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4oKTtcblxuICAgIGdldCByZW1vdmVUYWJsZUNvbHVtbnMkKCk6IE9ic2VydmFibGU8eyBpbnNlcnRJbmRleDogbnVtYmVyOyBzdGFydEluZGV4OiBudW1iZXI7IGVuZEluZGV4OiBudW1iZXI7IHNlc3Npb25JZDogbnVtYmVyIH0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlbW92ZVRhYmxlQ29sdW1ucyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX3JlbW92ZVRhYmxlQ29sdW1ucyQgPSBuZXcgU3ViamVjdDx7IGluc2VydEluZGV4OiBudW1iZXI7IHN0YXJ0SW5kZXg6IG51bWJlcjsgZW5kSW5kZXg6IG51bWJlcjsgc2Vzc2lvbklkOiBudW1iZXIgfT4oKTtcblxuICAgIGdldCByZW1vdmVJbWFnZSQoKTogT2JzZXJ2YWJsZTx7IGluc2VydEluZGV4OiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlSW1hZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW1vdmVJbWFnZSQgPSBuZXcgU3ViamVjdDx7IGluc2VydEluZGV4OiBudW1iZXIgfT4oKTtcblxuICAgIGdldCByZXNpemVUYWJsZUNvbHVtbnMkKCk6IE9ic2VydmFibGU8e1xuICAgICAgICByZXNpemVUYWJsZUNvbHVtbnM6IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsO1xuICAgICAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbiAgICB9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXNpemVUYWJsZUNvbHVtbnMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZXNpemVUYWJsZUNvbHVtbnMkID0gbmV3IFN1YmplY3Q8e1xuICAgICAgICByZXNpemVUYWJsZUNvbHVtbnM6IFJlc2l6ZVRhYmxlQ29sdW1uc01vZGVsO1xuICAgICAgICBzZXNzaW9uSWQ6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgZ2V0IGluc2VydFRhYmxlJCgpOiBPYnNlcnZhYmxlPHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zZXJ0VGFibGUkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9pbnNlcnRUYWJsZSQgPSBuZXcgU3ViamVjdDx7IHJvd3M6IG51bWJlcjsgY29sdW1uczogbnVtYmVyIH0+KCk7XG5cbiAgICBnZXQgcmVuZGVyZXJVcGRhdGVkJCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVuZGVyZXJVcGRhdGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVuZGVyZXJVcGRhdGVkJCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcblxuICAgIGdldCBlZGdlRWxlbWVudENvcHlVcGRhdGVkJCgpOiBPYnNlcnZhYmxlPHsgbmV3RWxlbWVudENvcHk6IEhUTUxFbGVtZW50OyBwYWdlOiBudW1iZXIgfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRnZUVsZW1lbnRDb3B5VXBkYXRlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2VkZ2VFbGVtZW50Q29weVVwZGF0ZWQkID0gbmV3IFN1YmplY3Q8e1xuICAgICAgICBuZXdFbGVtZW50Q29weTogSFRNTEVsZW1lbnQ7XG4gICAgICAgIHBhZ2U6IG51bWJlcjtcbiAgICB9PigpO1xuXG4gICAgZ2V0IGNoYW5nZWRFZGdlSGVpZ2h0JCgpOiBPYnNlcnZhYmxlPEVkZ2VUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaGFuZ2VkRWRnZUhlaWdodCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NoYW5nZWRFZGdlSGVpZ2h0JDogU3ViamVjdDxFZGdlVHlwZT4gPSBuZXcgU3ViamVjdDxFZGdlVHlwZT4oKTtcblxuICAgIGdldCByZWRvJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JlZG8kLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZWRvJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgdW5kbyQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl91bmRvJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdW5kbyQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHByaW50JCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ByaW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcHJpbnQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBjdXRTZWxlY3RlZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXRTZWxlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2N1dFNlbGVjdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgY29weVNlbGVjdGVkJCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvcHlTZWxlY3RlZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2NvcHlTZWxlY3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHBhc3RlRnJvbUNsaXBib2FyZCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXN0ZUZyb21DbGlwYm9hcmQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9wYXN0ZUZyb21DbGlwYm9hcmQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBzZWxlY3RBbGwkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0QWxsJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2VsZWN0QWxsJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgcmVtb3ZlU2VsZWN0ZWQkKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlU2VsZWN0ZWQkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9yZW1vdmVTZWxlY3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IGtleURvd24kKCk6IE9ic2VydmFibGU8S2V5Ym9hcmRFdmVudD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fa2V5RG93biQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2tleURvd24kID0gbmV3IFN1YmplY3Q8S2V5Ym9hcmRFdmVudD4oKTtcblxuICAgIGdldCB1cGRhdGVFZGdlcyQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZUVkZ2VzJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfdXBkYXRlRWRnZXMkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgZ2V0IGluc2VydFRleHQkKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnNlcnRUZXh0JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfaW5zZXJ0VGV4dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBnZXQgYmx1ckN1c3RvbUNvbXBvbmVudCQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ibHVyQ3VzdG9tQ29tcG9uZW50JC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfYmx1ckN1c3RvbUNvbXBvbmVudCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgZ2V0IHJlbW92ZUN1c3RvbUVsZW1lbnRzRGF0YSQoKTogT2JzZXJ2YWJsZTxFbGVtZW50TW9kZWxbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVtb3ZlQ3VzdG9tRWxlbWVudHNEYXRhJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmVtb3ZlQ3VzdG9tRWxlbWVudHNEYXRhJCA9IG5ldyBTdWJqZWN0PEVsZW1lbnRNb2RlbFtdPigpO1xuXG4gICAgc2V0SXNWaWV3T25seSh2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1ZpZXdPbmx5ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2lzVmlld09ubHkkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldEhhc1NlbGVjdGlvbih2YWx1ZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9oYXNTZWxlY3Rpb24kLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHNldENsaXBib2FyZERhdGEodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGlwYm9hcmREYXRhJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRUZXh0U3R5bGVzKHZhbHVlOiBUZXh0U3R5bGVNb2RlbCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRUZXh0U3R5bGVzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXRQYXJhZ3JhcGhTdHlsZXModmFsdWU6IFBhcmFncmFwaFN0eWxlTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2V0UGFyYWdyYXBoU3R5bGVzJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBzZXROdW1iZXJpbmdUZW1wbGF0ZVR5cGUodmFsdWU6IE51bWJlcmluZ0xldmVsTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXROdW1iZXJpbmdUZW1wbGF0ZVR5cGUkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIHJlbW92ZU51bWJlcmluZ3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZU51bWJlcmluZ3MkLm5leHQoKTtcbiAgICB9XG5cbiAgICBjaGFuZ2VJbWFnZVN0eWxlKHZhbHVlOiBJbWFnZU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZUltYWdlU3R5bGUkLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGNoYW5nZUVsZW1lbnRTdHlsZSh2YWx1ZTogRWxlbWVudE1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NoYW5nZUVsZW1lbnRTdHlsZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgY3JlYXRlQ3VzdG9tQ29tcG9uZW50KG1vZGVsOiBFbGVtZW50RGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZUN1c3RvbUNvbXBvbmVudCQubmV4dChtb2RlbCk7XG4gICAgfVxuXG4gICAgaW5zZXJ0QnJlYWsodmFsdWU6IEJyZWFrVHlwZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0QnJlYWskLm5leHQodmFsdWUpO1xuICAgIH1cblxuICAgIGluc2VydEltYWdlKGltYWdlRGF0YTogSW1hZ2VEYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0SW1hZ2UkLm5leHQoaW1hZ2VEYXRhKTtcbiAgICB9XG5cbiAgICBpbnNlcnRMaW5rKHRleHQ6IHN0cmluZywgbGluazogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2luc2VydExpbmskLm5leHQoeyB0ZXh0LCBsaW5rIH0pO1xuICAgIH1cblxuICAgIGVuZE1vdXNlUHJlc3MoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VuZE1vdXNlUHJlc3MkLm5leHQoKTtcbiAgICB9XG5cbiAgICBkaXNhYmxlU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kaXNhYmxlU2VsZWN0aW9uJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgb3BlbkVsZW1lbnRTaWRlbmF2KGNvbXBvbmVudDogVHlwZTxFeHRlcm5hbFNpZGVuYXZJbnRlcmZhY2U+LCBtb2RlbDogRWxlbWVudE1vZGVsLCBjb250ZW50V2lkdGg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl90b2dnbGVTaWRlbmF2JC5uZXh0KHsgb3BlbjogdHJ1ZSwgY29tcG9uZW50LCBkYXRhOiB7IG1vZGVsLCBjb250ZW50V2lkdGggfSB9KTtcbiAgICB9XG5cbiAgICBvcGVuU2lkZW5hdihjb21wb25lbnQ6IFR5cGU8YW55Pik6IHZvaWQge1xuICAgICAgICB0aGlzLl90b2dnbGVTaWRlbmF2JC5uZXh0KHsgb3BlbjogdHJ1ZSwgY29tcG9uZW50IH0pO1xuICAgIH1cblxuICAgIGNsb3NlU2lkZW5hdigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG9nZ2xlU2lkZW5hdiQubmV4dCh7IG9wZW46IGZhbHNlLCBjb21wb25lbnQ6IG51bGwgfSk7XG4gICAgfVxuXG4gICAgY2hhbmdlZFRhYmxlU2l6ZShpbnNlcnRJbmRleDogbnVtYmVyLCBzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VkVGFibGVTaXplJC5uZXh0KHsgaW5zZXJ0SW5kZXgsIHNlc3Npb25JZCB9KTtcbiAgICB9XG5cbiAgICBpbnNlcnRUYWJsZVJvd3MoaW5zZXJ0SW5kZXg6IG51bWJlciwgcm93c0NvdW50OiBudW1iZXIsIHRhcmdldEluZGV4OiBudW1iZXIsIGluaGVyaXRJbmRleDogbnVtYmVyLCBzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUYWJsZVJvd3MkLm5leHQoeyBpbnNlcnRJbmRleCwgcm93c0NvdW50LCB0YXJnZXRJbmRleCwgaW5oZXJpdEluZGV4LCBzZXNzaW9uSWQgfSk7XG4gICAgfVxuXG4gICAgaW5zZXJ0VGFibGVDb2x1bW5zKGluc2VydEluZGV4OiBudW1iZXIsIGNvbHVtbnNDb3VudDogbnVtYmVyLCB0YXJnZXRJbmRleDogbnVtYmVyLCBpbmhlcml0SW5kZXg6IG51bWJlciwgc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faW5zZXJ0VGFibGVDb2x1bW5zJC5uZXh0KHsgaW5zZXJ0SW5kZXgsIGNvbHVtbnNDb3VudCwgdGFyZ2V0SW5kZXgsIGluaGVyaXRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVRhYmxlUm93cyhpbnNlcnRJbmRleDogbnVtYmVyLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRhYmxlUm93cyQubmV4dCh7IGluc2VydEluZGV4LCBzdGFydEluZGV4LCBlbmRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZVRhYmxlQ29sdW1ucyhpbnNlcnRJbmRleDogbnVtYmVyLCBzdGFydEluZGV4OiBudW1iZXIsIGVuZEluZGV4OiBudW1iZXIsIHNlc3Npb25JZDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZVRhYmxlQ29sdW1ucyQubmV4dCh7IGluc2VydEluZGV4LCBzdGFydEluZGV4LCBlbmRJbmRleCwgc2Vzc2lvbklkIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZUltYWdlKGluc2VydEluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlSW1hZ2UkLm5leHQoeyBpbnNlcnRJbmRleCB9KTtcbiAgICB9XG5cbiAgICByZXNpemVUYWJsZUNvbHVtbnMocmVzaXplVGFibGVDb2x1bW5zOiBSZXNpemVUYWJsZUNvbHVtbnNNb2RlbCwgc2Vzc2lvbklkOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fcmVzaXplVGFibGVDb2x1bW5zJC5uZXh0KHtcbiAgICAgICAgICAgIHJlc2l6ZVRhYmxlQ29sdW1ucyxcbiAgICAgICAgICAgIHNlc3Npb25JZFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpbnNlcnRUYWJsZSh0YWJsZURhdGE6IHsgcm93czogbnVtYmVyOyBjb2x1bW5zOiBudW1iZXIgfSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUYWJsZSQubmV4dCh0YWJsZURhdGEpO1xuICAgIH1cblxuICAgIHJlbmRlcmVyVXBkYXRlZChzZXNzaW9uSWQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW5kZXJlclVwZGF0ZWQkLm5leHQoc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBlZGdlRWxlbWVudENvcHlVcGRhdGVkKG5ld0VsZW1lbnRDb3B5LCBwYWdlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VkZ2VFbGVtZW50Q29weVVwZGF0ZWQkLm5leHQoeyBuZXdFbGVtZW50Q29weSwgcGFnZSB9KTtcbiAgICB9XG5cbiAgICBjaGFuZ2VkRWRnZUhlaWdodCh0eXBlOiBFZGdlVHlwZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jaGFuZ2VkRWRnZUhlaWdodCQubmV4dCh0eXBlKTtcbiAgICB9XG5cbiAgICB1bmRvKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl91bmRvJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcmVkbygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVkbyQubmV4dCgpO1xuICAgIH1cblxuICAgIHByaW50KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wcmludCQubmV4dCgpO1xuICAgIH1cblxuICAgIGN1dFNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXRTZWxlY3RlZCQubmV4dCgpO1xuICAgIH1cblxuICAgIGNvcHlTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY29weVNlbGVjdGVkJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgcGFzdGVGcm9tQ2xpcGJvYXJkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9wYXN0ZUZyb21DbGlwYm9hcmQkLm5leHQoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdEFsbCQubmV4dCgpO1xuICAgIH1cblxuICAgIHJlbW92ZVNlbGVjdGVkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9yZW1vdmVTZWxlY3RlZCQubmV4dCgpO1xuICAgIH1cblxuICAgIGtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5RG93biQubmV4dChldmVudCk7XG4gICAgfVxuXG4gICAgdXBkYXRlRWRnZXMoc2Vzc2lvbklkOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlRWRnZXMkLm5leHQoc2Vzc2lvbklkKTtcbiAgICB9XG5cbiAgICBpbnNlcnRUZXh0KHRleHQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbnNlcnRUZXh0JC5uZXh0KHRleHQpO1xuICAgIH1cblxuICAgIGJsdXJDdXN0b21Db21wb25lbnQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2JsdXJDdXN0b21Db21wb25lbnQkLm5leHQoKTtcbiAgICB9XG5cbiAgICByZW1vdmVDdXN0b21FbGVtZW50c0RhdGEoZWxlbWVudHM6IEVsZW1lbnRNb2RlbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbW92ZUN1c3RvbUVsZW1lbnRzRGF0YSQubmV4dChlbGVtZW50cyk7XG4gICAgfVxufVxuIl19
@@ -5,4 +5,4 @@ export class LinkDataModel {
5
5
  }
6
6
  }
7
7
  }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvbW9kZWxzL2dlbmVyYXRlZC9saW5rLWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGFBQWE7SUFJdEIsWUFDSSxNQUErQjtRQUUvQixJQUFJLE1BQU0sRUFBRTtZQUdSLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQy9CO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIExpbmtEYXRhTW9kZWwge1xuICAgIHB1YmxpYyBsaW5rOiBzdHJpbmc7XG4gICAgcHVibGljIHRleHQ6IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgZmllbGRzPzogUGFydGlhbDxMaW5rRGF0YU1vZGVsPikge1xuXG4gICAgICAgIGlmIChmaWVsZHMpIHtcblxuXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGZpZWxkcyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay1kYXRhLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvbW9kZWxzL2dlbmVyYXRlZC9saW5rLWRhdGEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFBbUIsTUFBK0I7UUFDOUMsSUFBSSxNQUFNLEVBQUU7WUFDUixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1hdE1vZGVsIH0gZnJvbSAnLi9mb3JtYXQubW9kZWwnO1xuXG5leHBvcnQgY2xhc3MgTGlua0RhdGFNb2RlbCB7XG4gICAgcHVibGljIGZvcm1hdHM6IEZvcm1hdE1vZGVsW107XG4gICAgcHVibGljIGxpbms6IHN0cmluZztcbiAgICBwdWJsaWMgdGV4dDogc3RyaW5nO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZpZWxkcz86IFBhcnRpYWw8TGlua0RhdGFNb2RlbD4pIHtcbiAgICAgICAgaWYgKGZpZWxkcykge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLCBmaWVsZHMpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -21,6 +21,9 @@ export * from './lib/editor/editor.module';
21
21
  export * from './lib/apart-components/editor-title-mobile/editor-title-mobile.component';
22
22
  export * from './lib/apart-components/editor-title/editor-title.component';
23
23
  export * from './lib/apart-components/editor-search/editor-search-dialog.component';
24
+ export * from './lib/apart-components/editor-toolbar/components/menu-dropdowns-mobile/menu-dropdowns-mobile.component';
25
+ export * from './lib/apart-components/editor-toolbar/components/menu-dropdowns/menu-dropdowns.component';
26
+ export * from './lib/apart-components/editor-toolbar/components/toolbar-actions/toolbar-actions.component';
24
27
  export * from './lib/apart-components/editor-toolbar/editor-mobile-toolbar/editor-mobile-toolbar.component';
25
28
  export * from './lib/apart-components/editor-toolbar/editor-toolbar.module';
26
29
  export * from './lib/apart-components/editor-toolbar/editor-toolbar/editor-toolbar.component';
@@ -47,4 +50,4 @@ export * from './lib/models/generated/operation.model';
47
50
  export * from './lib/models/generated/paragraph-style.model';
48
51
  export * from './lib/models/generated/revision.model';
49
52
  export * from './lib/models/generated/text-style.model';
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvREFBb0QsQ0FBQztBQUVuRSxjQUFjLDREQUE0RCxDQUFDO0FBRTNFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxxRUFBcUUsQ0FBQztBQUVwRixjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywyREFBMkQsQ0FBQztBQUUxRSxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGNBQWMsNERBQTRELENBQUM7QUFFM0UsY0FBYyxpREFBaUQsQ0FBQztBQUVoRSxjQUFjLDBDQUEwQyxDQUFDO0FBRXpELGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDREQUE0RCxDQUFDO0FBRTNFLGNBQWMscUVBQXFFLENBQUM7QUFFcEYsY0FBYyw2RkFBNkYsQ0FBQztBQUM1RyxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyx3RUFBd0UsQ0FBQztBQUV2RixjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsZ0VBQWdFLENBQUM7QUFFL0UsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2NvbnRlbnQvY29uc3RhbnRzL2RvY3VtZW50LWluZm8uY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2NvbnRlbnQvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9nYWRnZXRzL3BhZ2UtYnJlYWsvYnJlYWstdHlwZXMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9lZGdlcy9wYWdlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9leGVjdXRpb24vaGVscGVycy9kb20uaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9leGVjdXRpb24vaGVscGVycy9mb3JtYXQtc3R5bGUuaGVscGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2NvbnRlbnQvZGlzcGxheS1kYXRhL3Rvb2xiYXItc3R5bGVzLmludGVyZmFjZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2VsZW1lbnQtZGF0YS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L21vZGVscy9leHRlcm5hbC1lbGVtZW50Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwtZWxlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwtc2lkZW5hdi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9pbWFnZS9pbWFnZS1hcGkuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL3NoYXJlZC9hYnN0cmFjdC9iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9zaGFyZWQvYWJzdHJhY3QvZGVzdHJveS5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvZ2FkZ2V0cy9oaXN0b3J5L29wZXJhdGlvbnMtaGlzdG9yeS1pbmZvLm1vZGVsJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL29wZXJhdGlvbnMvZW51bXMvY29tbWFuZC10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2VkaXRvci5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10aXRsZS1tb2JpbGUvZWRpdG9yLXRpdGxlLW1vYmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBhcnQtY29tcG9uZW50cy9lZGl0b3ItdGl0bGUvZWRpdG9yLXRpdGxlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXNlYXJjaC9lZGl0b3Itc2VhcmNoLWRpYWxvZy5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL2VkaXRvci1tb2JpbGUtdG9vbGJhci9lZGl0b3ItbW9iaWxlLXRvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvZWRpdG9yLXRvb2xiYXIubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvZWRpdG9yLXRvb2xiYXIvZWRpdG9yLXRvb2xiYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvc2hhcmVkL2VudW1zL2FsaWdubWVudC5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXRvb2xiYXIvc2hhcmVkL2VudW1zL2VkaXRvci10b29sYmFyLW1vZGUuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL3NoYXJlZC9zZXJ2aWNlcy9lZGl0b3ItdG9vbGJhci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvdGV4dC1mb3JtYXQtbW9iaWxlL3RleHQtZm9ybWF0LW1vYmlsZS5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvaW50ZXJhY3Rpb24vbW9kZS5lbnVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL3JldmlzaW9uLmhlbHBlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvYWRkLWxpbmstZGlhbG9nL2FkZC1saW5rLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBhcnQtY29tcG9uZW50cy9hZGQtbGluay1tb2JpbGUvYWRkLWxpbmstbW9iaWxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9vcGVyYXRpb25zL2NvbW1hbmRzLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVkL2NvbW1hbmQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9kb2N1bWVudC1uYW1lLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvZG9jdW1lbnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9kb2N4Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvZWxlbWVudC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVkL2ZpbGUtc291cmNlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvaW1hZ2UtZGF0YS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVkL2xhc3QtZG9jdW1lbnQtcmV2aXNpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9udW1iZXJpbmctbGV2ZWwubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9vcGVyYXRpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9wYXJhZ3JhcGgtc3R5bGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9yZXZpc2lvbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVkL3RleHQtc3R5bGUubW9kZWwnO1xuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvREFBb0QsQ0FBQztBQUVuRSxjQUFjLDREQUE0RCxDQUFDO0FBRTNFLGNBQWMsb0VBQW9FLENBQUM7QUFDbkYsY0FBYyx3RUFBd0UsQ0FBQztBQUN2RixjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYyxxRUFBcUUsQ0FBQztBQUVwRixjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLGNBQWMsd0RBQXdELENBQUM7QUFDdkUsY0FBYywyREFBMkQsQ0FBQztBQUUxRSxjQUFjLHlDQUF5QyxDQUFDO0FBRXhELGNBQWMsNERBQTRELENBQUM7QUFFM0UsY0FBYyxpREFBaUQsQ0FBQztBQUVoRSxjQUFjLDBDQUEwQyxDQUFDO0FBRXpELGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDREQUE0RCxDQUFDO0FBRTNFLGNBQWMscUVBQXFFLENBQUM7QUFFcEYsY0FBYyx3R0FBd0csQ0FBQztBQUN2SCxjQUFjLDBGQUEwRixDQUFDO0FBQ3pHLGNBQWMsNEZBQTRGLENBQUM7QUFDM0csY0FBYyw2RkFBNkYsQ0FBQztBQUM1RyxjQUFjLDZEQUE2RCxDQUFDO0FBQzVFLGNBQWMsK0VBQStFLENBQUM7QUFDOUYsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDZFQUE2RSxDQUFDO0FBQzVGLGNBQWMsOEVBQThFLENBQUM7QUFDN0YsY0FBYyx3RUFBd0UsQ0FBQztBQUV2RixjQUFjLG9DQUFvQyxDQUFDO0FBRW5ELGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyxrRUFBa0UsQ0FBQztBQUNqRixjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsZ0VBQWdFLENBQUM7QUFFL0UsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlDQUF5QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2NvbnRlbnQvY29uc3RhbnRzL2RvY3VtZW50LWluZm8uY29uc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2NvbnRlbnQvY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9nYWRnZXRzL3BhZ2UtYnJlYWsvYnJlYWstdHlwZXMuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9lZGdlcy9wYWdlLXR5cGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9leGVjdXRpb24vaGVscGVycy9kb20uaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9leGVjdXRpb24vaGVscGVycy9mb3JtYXQtc3R5bGUuaGVscGVyJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2NvbnRlbnQvZGlzcGxheS1kYXRhL3Rvb2xiYXItc3R5bGVzLmludGVyZmFjZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvbW9kZWxzL2VsZW1lbnQtZGF0YS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9leHRlcm5hbC1lbGVtZW50L21vZGVscy9leHRlcm5hbC1lbGVtZW50Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwtZWxlbWVudC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL2V4dGVybmFsLWVsZW1lbnQvZXh0ZXJuYWwtc2lkZW5hdi5pbnRlcmZhY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9pbWFnZS9pbWFnZS1hcGkuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9jb21wb25lbnRzL3NoYXJlZC9hYnN0cmFjdC9iYXNlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9zaGFyZWQvYWJzdHJhY3QvZGVzdHJveS5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvaW50ZXJhY3Rpb24vZWRpdG9yLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvZ2FkZ2V0cy9oaXN0b3J5L29wZXJhdGlvbnMtaGlzdG9yeS1pbmZvLm1vZGVsJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL29wZXJhdGlvbnMvZW51bXMvY29tbWFuZC10eXBlLmVudW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2VkaXRvci5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10aXRsZS1tb2JpbGUvZWRpdG9yLXRpdGxlLW1vYmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBhcnQtY29tcG9uZW50cy9lZGl0b3ItdGl0bGUvZWRpdG9yLXRpdGxlLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvZWRpdG9yLXNlYXJjaC9lZGl0b3Itc2VhcmNoLWRpYWxvZy5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL2NvbXBvbmVudHMvbWVudS1kcm9wZG93bnMtbW9iaWxlL21lbnUtZHJvcGRvd25zLW1vYmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBhcnQtY29tcG9uZW50cy9lZGl0b3ItdG9vbGJhci9jb21wb25lbnRzL21lbnUtZHJvcGRvd25zL21lbnUtZHJvcGRvd25zLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL2NvbXBvbmVudHMvdG9vbGJhci1hY3Rpb25zL3Rvb2xiYXItYWN0aW9ucy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBhcnQtY29tcG9uZW50cy9lZGl0b3ItdG9vbGJhci9lZGl0b3ItbW9iaWxlLXRvb2xiYXIvZWRpdG9yLW1vYmlsZS10b29sYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL2VkaXRvci10b29sYmFyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL2VkaXRvci10b29sYmFyL2VkaXRvci10b29sYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL3NoYXJlZC9lbnVtcy9hbGlnbm1lbnQuZW51bSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2VkaXRvci10b29sYmFyL3NoYXJlZC9lbnVtcy9lZGl0b3ItdG9vbGJhci1tb2RlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBhcnQtY29tcG9uZW50cy9lZGl0b3ItdG9vbGJhci9zaGFyZWQvc2VydmljZXMvZWRpdG9yLXRvb2xiYXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL3RleHQtZm9ybWF0LW1vYmlsZS90ZXh0LWZvcm1hdC1tb2JpbGUuY29tcG9uZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZWRpdG9yL2ludGVyYWN0aW9uL21vZGUuZW51bSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VkaXRvci9yZXZpc2lvbi5oZWxwZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcGFydC1jb21wb25lbnRzL2FkZC1saW5rLWRpYWxvZy9hZGQtbGluay1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2FwYXJ0LWNvbXBvbmVudHMvYWRkLWxpbmstbW9iaWxlL2FkZC1saW5rLW1vYmlsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBhcnQtY29tcG9uZW50cy9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lZGl0b3Ivb3BlcmF0aW9ucy9jb21tYW5kcy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9jb21tYW5kLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvZG9jdW1lbnQtbmFtZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVkL2RvY3VtZW50Lm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvZG9jeC5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9maWxlLXNvdXJjZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvZ2VuZXJhdGVkL2ltYWdlLWRhdGEubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC9sYXN0LWRvY3VtZW50LXJldmlzaW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvbnVtYmVyaW5nLWxldmVsLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvb3BlcmF0aW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvcGFyYWdyYXBoLXN0eWxlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9nZW5lcmF0ZWQvcmV2aXNpb24ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcbiJdfQ==