@talrace/ngx-noder 0.0.4 → 0.0.6

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 (93) hide show
  1. package/README.md +72 -64
  2. package/esm2022/lib/+shared/abstract/base-api.service.mjs +4 -4
  3. package/esm2022/lib/+shared/abstract/observer.component.mjs +4 -4
  4. package/esm2022/lib/+shared/add-link-dialog/add-link-dialog.component.mjs +11 -7
  5. package/esm2022/lib/+shared/confirm-dialog/confirm-dialog.component.mjs +12 -8
  6. package/esm2022/lib/+shared/editor/core/components/edges/edge.component.mjs +4 -4
  7. package/esm2022/lib/+shared/editor/core/editor.mjs +7 -14
  8. package/esm2022/lib/+shared/editor/core/helpers/rendering.helper.mjs +9 -8
  9. package/esm2022/lib/+shared/editor/core/layers/text.layer.mjs +4 -4
  10. package/esm2022/lib/+shared/editor/custom-components/external-element/external.component.mjs +4 -4
  11. package/esm2022/lib/+shared/editor/custom-components/image/components/image.component.mjs +7 -6
  12. package/esm2022/lib/+shared/editor/custom-components/image/resizer/resizer.component.mjs +4 -4
  13. package/esm2022/lib/+shared/editor/custom-components/image/services/image-api.service.mjs +4 -4
  14. package/esm2022/lib/+shared/editor/custom-components/shared/abstract/base.component.mjs +6 -4
  15. package/esm2022/lib/+shared/editor/custom-components/shared/services/component/component.service.mjs +4 -4
  16. package/esm2022/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.mjs +9 -15
  17. package/esm2022/lib/+shared/editor/custom-components/shared/services/overlay/overlay.service.mjs +4 -4
  18. package/esm2022/lib/+shared/editor/custom-components/tab/tab.component.mjs +6 -5
  19. package/esm2022/lib/+shared/editor/custom-components/table/components/table-cell.component.mjs +8 -6
  20. package/esm2022/lib/+shared/editor/custom-components/table/components/table.component.mjs +10 -8
  21. package/esm2022/lib/+shared/editor/custom-components/table/overlay-menu/overlay-menu.component.mjs +4 -4
  22. package/esm2022/lib/+shared/editor/editor.component.mjs +7 -14
  23. package/esm2022/lib/+shared/editor/editor.module.mjs +5 -8
  24. package/esm2022/lib/+shared/editor/execution/models/general-properties.model.mjs +1 -1
  25. package/esm2022/lib/+shared/editor/execution/regulator.service.mjs +18 -8
  26. package/esm2022/lib/+shared/editor/interaction/editor.service.mjs +4 -4
  27. package/esm2022/lib/+shared/editor-search/editor-search-dialog.component.mjs +4 -4
  28. package/esm2022/lib/+shared/editor-title/editor-title.component.mjs +83 -0
  29. package/esm2022/lib/+shared/editor-toolbar/color-picker/color-picker.component.mjs +5 -5
  30. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.component.mjs +78 -92
  31. package/esm2022/lib/+shared/editor-toolbar/editor-toolbar.module.mjs +15 -5
  32. package/esm2022/lib/+shared/editor-toolbar/font/font.component.mjs +5 -5
  33. package/esm2022/lib/+shared/editor-toolbar/font-size/font-size.component.mjs +5 -5
  34. package/esm2022/lib/+shared/editor-toolbar/font-style/font-style.component.mjs +5 -5
  35. package/esm2022/lib/+shared/editor-toolbar/format/format.component.mjs +5 -5
  36. package/esm2022/lib/+shared/editor-toolbar/heading/heading.component.mjs +4 -4
  37. package/esm2022/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.mjs +194 -0
  38. package/esm2022/lib/+shared/editor-toolbar/numbering/numbering.component.mjs +5 -5
  39. package/esm2022/lib/+shared/editor-toolbar/print/print.component.mjs +5 -5
  40. package/esm2022/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.mjs +126 -0
  41. package/esm2022/lib/+shared/editor-toolbar/undo-redo/undo-redo.component.mjs +5 -5
  42. package/esm2022/lib/+shared/editor-toolbar/zoom/zoom.component.mjs +4 -4
  43. package/esm2022/lib/+shared/helpers/scaling.helper.mjs +9 -0
  44. package/esm2022/lib/+shared/insert-table/insert-table.component.mjs +4 -4
  45. package/esm2022/lib/+shared/services/commands.service.mjs +4 -4
  46. package/esm2022/lib/+shared/services/custom-icon.service.mjs +4 -4
  47. package/esm2022/public-api.mjs +2 -2
  48. package/fesm2022/talrace-ngx-noder.mjs +545 -488
  49. package/fesm2022/talrace-ngx-noder.mjs.map +1 -1
  50. package/lib/+shared/add-link-dialog/add-link-dialog.component.d.ts +1 -0
  51. package/lib/+shared/confirm-dialog/confirm-dialog.component.d.ts +1 -0
  52. package/lib/+shared/editor/core/editor.d.ts +3 -3
  53. package/lib/+shared/editor/core/helpers/rendering.helper.d.ts +3 -3
  54. package/lib/+shared/editor/custom-components/shared/abstract/base.component.d.ts +3 -1
  55. package/lib/+shared/editor/custom-components/shared/services/custom-content/custom-content.service.d.ts +1 -1
  56. package/lib/+shared/editor/custom-components/table/components/table-cell.component.d.ts +2 -2
  57. package/lib/+shared/editor/custom-components/table/components/table.component.d.ts +0 -2
  58. package/lib/+shared/editor/editor.component.d.ts +1 -5
  59. package/lib/+shared/editor/editor.module.d.ts +15 -16
  60. package/lib/+shared/editor/execution/models/general-properties.model.d.ts +1 -0
  61. package/lib/+shared/editor/execution/regulator.service.d.ts +2 -2
  62. package/lib/+shared/editor-title/editor-title.component.d.ts +24 -0
  63. package/lib/+shared/editor-toolbar/editor-toolbar.component.d.ts +31 -30
  64. package/lib/+shared/editor-toolbar/editor-toolbar.module.d.ts +19 -16
  65. package/lib/+shared/editor-toolbar/menu-dropdowns/menu-dropdowns.component.d.ts +73 -0
  66. package/lib/+shared/editor-toolbar/toolbar-actions/toolbar-actions.component.d.ts +49 -0
  67. package/lib/+shared/helpers/scaling.helper.d.ts +4 -0
  68. package/package.json +1 -1
  69. package/public-api.d.ts +1 -1
  70. package/src/_ngx-noder.theme.scss +10 -8
  71. package/src/lib/+shared/add-link-dialog/_add-link-dialog.theme.scss +3 -3
  72. package/src/lib/+shared/confirm-dialog/_theme.scss +6 -6
  73. package/src/lib/+shared/editor/_editor.theme.scss +84 -15
  74. package/src/lib/+shared/editor/_theme.scss +0 -2
  75. package/src/lib/+shared/editor-title/_editor-title.theme.scss +28 -0
  76. package/src/lib/+shared/editor-toolbar/_editor-toolbar.theme.scss +1 -24
  77. package/src/lib/+shared/editor-toolbar/_theme.scss +16 -2
  78. package/src/lib/+shared/editor-toolbar/font/_font.theme.scss +12 -0
  79. package/src/lib/+shared/editor-toolbar/font-size/_font-size.theme.scss +14 -0
  80. package/src/lib/+shared/editor-toolbar/font-style/_font-style.theme.scss +21 -0
  81. package/src/lib/+shared/editor-toolbar/format/_format.theme.scss +21 -0
  82. package/src/lib/+shared/editor-toolbar/menu-dropdowns/_menu-dropdowns.theme.scss +26 -0
  83. package/src/lib/+shared/editor-toolbar/numbering/_numbering.theme.scss +52 -11
  84. package/src/lib/+shared/editor-toolbar/toolbar-actions/_toolbar-actions.theme.scss +21 -0
  85. package/src/lib/+shared/editor-toolbar/undo-redo/_undo-redo.theme.scss +16 -0
  86. package/src/lib/+shared/insert-table/_insert-table.theme.scss +9 -6
  87. package/src/scss/_mixins.scss +2 -37
  88. package/esm2022/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.mjs +0 -35
  89. package/esm2022/lib/+shared/editor-header/editor-header.component.mjs +0 -314
  90. package/lib/+shared/editor/custom-components/external-element/element-toolbar/element-toolbar.component.d.ts +0 -14
  91. package/lib/+shared/editor-header/editor-header.component.d.ts +0 -101
  92. package/src/lib/+shared/editor/custom-components/external-element/element-toolbar/_element-toolbar.theme.scss +0 -10
  93. package/src/lib/+shared/editor-header/_editor-header.theme.scss +0 -106
@@ -4,13 +4,14 @@ import { DistanceModel } from '../models/distance.model';
4
4
  import { DomHelper } from './dom.helper';
5
5
  import { FormatExtModel } from '../models/format-ext.model';
6
6
  import { HYPERLINK_FONT_COLOR, HYPERLINK_HEADING_STYLE_ID, NEW_LINE_MARKUP } from '../constants/editor.const';
7
+ import { ScalingHelper } from '../../../helpers/scaling.helper';
7
8
  import { TextStyleModel } from '../../../../models/generated/text-style.model';
8
9
  export class RenderingHelper {
9
- static createLineElement(lineInfo, numberingOffsetLeft) {
10
+ static createLineElement(lineInfo, numberingOffsetLeft, scalingRatio) {
10
11
  let lineEl = document.createElement('div');
11
12
  lineEl.className = 'ace-line';
12
13
  if (lineInfo) {
13
- const paddingLeft = lineInfo.paddingLeft - numberingOffsetLeft;
14
+ const paddingLeft = ScalingHelper.scale(lineInfo.paddingLeft - numberingOffsetLeft, scalingRatio);
14
15
  const marginLeft = paddingLeft < 0 ? paddingLeft : 0;
15
16
  lineEl.setAttribute('style',
16
17
  // eslint-disable-next-line prettier/prettier
@@ -32,12 +33,12 @@ export class RenderingHelper {
32
33
  }
33
34
  domContent.parentNode.appendChild(valueFragment);
34
35
  }
35
- static renderContentWrappedLine(domContent, splits, currentParagraph, formatsExt, distance, customContentService, customComponents, breaks = []) {
36
+ static renderContentWrappedLine(domContent, splits, currentParagraph, formatsExt, distance, customContentService, customComponents, scalingRatio, breaks = []) {
36
37
  let splitIndex = 0;
37
38
  const numberingOffsetLeft = currentParagraph.numberingData.numberingId === null
38
39
  ? 0
39
40
  : currentParagraph.numberingData.width + currentParagraph.numberingData.paddingLeft;
40
- let lineEl = RenderingHelper.createLineElement(currentParagraph.textLinesInfo[splitIndex], numberingOffsetLeft);
41
+ let lineEl = RenderingHelper.createLineElement(currentParagraph.textLinesInfo[splitIndex], numberingOffsetLeft, scalingRatio);
41
42
  domContent.parentNode.appendChild(lineEl);
42
43
  const valueFragment = DomHelper.createFragment(domContent.currentElement);
43
44
  let paragraphChars = 0;
@@ -59,7 +60,7 @@ export class RenderingHelper {
59
60
  while (paragraphChars === split && nextFragmentStartIndex !== distance.end) {
60
61
  split = splits[++splitIndex];
61
62
  const nextFragmentDocumentStartIndex = fragmentDocumentStartIndex + nextFragmentStartIndex - fragmentStartIndex;
62
- lineEl = RenderingHelper.createLineElement(currentParagraph.textLinesInfo[splitIndex], numberingOffsetLeft);
63
+ lineEl = RenderingHelper.createLineElement(currentParagraph.textLinesInfo[splitIndex], numberingOffsetLeft, scalingRatio);
63
64
  if (split > formatExt.endIndex) {
64
65
  const nextFragmentEndIndex = formatExt.content.length - 1;
65
66
  const nextFragmentDistance = new DistanceModel({ start: nextFragmentStartIndex, end: nextFragmentEndIndex });
@@ -89,7 +90,7 @@ export class RenderingHelper {
89
90
  }
90
91
  }
91
92
  }
92
- static renderNumberingMarker(paragraph, layerElement) {
93
+ static renderNumberingMarker(paragraph, layerElement, scalingRatio) {
93
94
  const markerHeight = paragraph.numberingData.height;
94
95
  const markerLineInfo = {
95
96
  paddingLeft: paragraph.numberingData.paddingLeft,
@@ -100,7 +101,7 @@ export class RenderingHelper {
100
101
  offsetAfter: 0,
101
102
  screenLine: 0
102
103
  };
103
- const numberingLineEl = this.createLineElement(markerLineInfo, 0);
104
+ const numberingLineEl = this.createLineElement(markerLineInfo, 0, scalingRatio);
104
105
  const markerFragment = DomHelper.createFragment(layerElement);
105
106
  const marker = paragraph.numberingData.marker;
106
107
  const markerExtModel = new FormatExtModel({
@@ -183,4 +184,4 @@ export class RenderingHelper {
183
184
  customContentService.componentService.attachComponent(fragment, component);
184
185
  }
185
186
  }
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvaGVscGVycy9yZW5kZXJpbmcuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSTlHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUUvRSxNQUFNLE9BQU8sZUFBZTtJQUN4QixNQUFNLENBQUMsaUJBQWlCLENBQUMsUUFBc0IsRUFBRSxtQkFBMkI7UUFDeEUsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUU5QixJQUFJLFFBQVEsRUFBRTtZQUNWLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLEdBQUcsbUJBQW1CLENBQUM7WUFDL0QsTUFBTSxVQUFVLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFckQsTUFBTSxDQUFDLFlBQVksQ0FDZixPQUFPO1lBQ1AsNkNBQTZDO1lBQzdDLGdCQUFnQixXQUFXLGFBQWEsUUFB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QWtDLEVBQ2xDLGlCQUFnQyxFQUNoQyxLQUFhLEVBQ2IsY0FBc0I7UUFFdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEdBQUcsY0FBYyxHQUFHLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNoRyxPQUFPLENBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FDSixLQUFLLEdBQUcsY0FBYyxJQUFJLE1BQU0sQ0FBQyxTQUFTLEVBQzFDLFNBQVMsRUFDVCxTQUFTLENBQUMsUUFBUSxHQUFHLDBCQUEwQixHQUFHLENBQUMsRUFDbkQsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQzNCLEdBQUcsQ0FBQyxDQUNSLENBQUM7SUFDTixDQUFDO0lBRVMsTUFBTSxDQUFDLGVBQWUsQ0FDNUIsUUFBMEIsRUFDMUIsU0FBZ0MsRUFDaEMsb0JBQTBDO1FBRTFDLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDL0UsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEJyZWFrSGVscGVyIH0gZnJvbSAnLi4vLi4vaGVscGVycy9icmVhay5oZWxwZXInO1xuaW1wb3J0IHsgQnJlYWtNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvYnJlYWsubW9kZWwnO1xuaW1wb3J0IHsgQ29udGVudFN0eWxlSGVscGVyIH0gZnJvbSAnLi9jb250ZW50LXN0eWxlLmhlbHBlcic7XG5pbXBvcnQgeyBDdXN0b21Db250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2N1c3RvbS1jb21wb25lbnRzL3NoYXJlZC9zZXJ2aWNlcy9jdXN0b20tY29udGVudC9jdXN0b20tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IERpc3RhbmNlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZGlzdGFuY2UubW9kZWwnO1xuaW1wb3J0IHsgRG9tSGVscGVyIH0gZnJvbSAnLi9kb20uaGVscGVyJztcbmltcG9ydCB7IEZvcm1hdEV4dE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm1hdC1leHQubW9kZWwnO1xuaW1wb3J0IHsgSFlQRVJMSU5LX0ZPTlRfQ09MT1IsIEhZUEVSTElOS19IRUFESU5HX1NUWUxFX0lELCBORVdfTElORV9NQVJLVVAgfSBmcm9tICcuLi9jb25zdGFudHMvZWRpdG9yLmNvbnN0JztcbmltcG9ydCB7IElDdXN0b21Db21wb25lbnRzIH0gZnJvbSAnLi4vLi4vY3VzdG9tLWNvbXBvbmVudHMvc2hhcmVkL2ludGVyZmFjZXMvY3VzdG9tLWNvbXBvbmVudHMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBhcmFncmFwaCB9IGZyb20gJy4uL3BhZ2luZy9wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgVGV4dExpbmVJbmZvIH0gZnJvbSAnLi4vcGFnaW5nL3RleHQtbGluZS1pbmZvJztcbmltcG9ydCB7IFRleHRTdHlsZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC90ZXh0LXN0eWxlLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIFJlbmRlcmluZ0hlbHBlciB7XG4gICAgc3RhdGljIGNyZWF0ZUxpbmVFbGVtZW50KGxpbmVJbmZvOiBUZXh0TGluZUluZm8sIG51bWJlcmluZ09mZnNldExlZnQ6IG51bWJlcik6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgbGV0IGxpbmVFbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBsaW5lRWwuY2xhc3NOYW1lID0gJ2FjZS1saW5lJztcblxuICAgICAgICBpZiAobGluZUluZm8pIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZGRpbmdMZWZ0ID0gbGluZUluZm8ucGFkZGluZ0xlZnQgLSBudW1iZXJpbmdPZmZzZXRMZWZ0O1xuICAgICAgICAgICAgY29uc3QgbWFyZ2luTGVmdCA9IHBhZGRpbmdMZWZ0IDwgMCA/IHBhZGRpbmdMZWZ0IDogMDtcblxuICAgICAgICAgICAgbGluZUVsLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAnc3R5bGUnLFxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmV0dGllci9wcmV0dGllclxuICAgICAgICAgICAgICAgIGBwYWRkaW5nLWxlZnQ6JHtwYWRkaW5nTGVmdH1weDtoZWlnaHQ6JHtsaW5lSW5mby5oZWlnaHQgKyBsaW5lSW5mby5vZmZzZXRBZnRlcn1weDttYXJnaW4tdG9wOiR7XG4gICAgICAgICAgICAgICAgICAgIGxpbmVJbmZvLm9mZnNldEJlZm9yZVxuICAgICAgICAgICAgICAgIH1weDttYXJnaW4tYm90dG9tOiR7bGluZUluZm8uZW5kUGFnZU9mZnNldH1weDttYXJnaW4tbGVmdDoke21hcmdpbkxlZnR9cHg7YmFja2dyb3VuZC1jb2xvcjoke2xpbmVJbmZvLmJhY2tncm91bmRDb2xvcn1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGluZUVsLnNldEF0dHJpYnV0ZSgnc2NyZWVuLWluZGV4JywgYCR7bGluZUluZm8uc2NyZWVuTGluZX1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsaW5lRWw7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlbmRlckNvbnRlbnRTaW1wbGVMaW5lKFxuICAgICAgICBkb21Db250ZW50OiB7IGN1cnJlbnRFbGVtZW50OiBIVE1MRWxlbWVudDsgcGFyZW50Tm9kZTogTm9kZSB9LFxuICAgICAgICBmb3JtYXRzRXh0OiBGb3JtYXRFeHRNb2RlbFtdLFxuICAgICAgICByb3dEaXN0YW5jZTogRGlzdGFuY2VNb2RlbCxcbiAgICAgICAgY3VzdG9tQ29udGVudFNlcnZpY2U6IEN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICBjdXN0b21Db21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgYnJlYWtzOiBCcmVha01vZGVsW10gPSBbXVxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZUZyYWdtZW50ID0gRG9tSGVscGVyLmNyZWF0ZUZyYWdtZW50KGRvbUNvbnRlbnQuY3VycmVudEVsZW1lbnQpO1xuICAgICAgICBmb3IgKGNvbnN0IGZvcm1hdEV4dCBvZiBmb3JtYXRzRXh0KSB7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCA9IHJvd0Rpc3RhbmNlLnN0YXJ0ID4gZm9ybWF0RXh0LnN0YXJ0SW5kZXggPyByb3dEaXN0YW5jZS5zdGFydCA6IGZvcm1hdEV4dC5zdGFydEluZGV4O1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnREb2N1bWVudEVuZEluZGV4ID0gZm9ybWF0RXh0LmVuZEluZGV4ID4gcm93RGlzdGFuY2UuZW5kID8gcm93RGlzdGFuY2UuZW5kIDogZm9ybWF0RXh0LmVuZEluZGV4O1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnREb2N1bWVudERpc3RhbmNlID0gbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogZnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXgsIGVuZDogZnJhZ21lbnREb2N1bWVudEVuZEluZGV4IH0pO1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnRTdGFydEluZGV4ID0gcm93RGlzdGFuY2Uuc3RhcnQgPiBmb3JtYXRFeHQuc3RhcnRJbmRleCA/IHJvd0Rpc3RhbmNlLnN0YXJ0IC0gZm9ybWF0RXh0LnN0YXJ0SW5kZXggOiAwO1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnRFbmRJbmRleCA9XG4gICAgICAgICAgICAgICAgZm9ybWF0RXh0LmVuZEluZGV4ID4gcm93RGlzdGFuY2UuZW5kID8gcm93RGlzdGFuY2UuZW5kIC0gZm9ybWF0RXh0LnN0YXJ0SW5kZXggOiBmb3JtYXRFeHQuZW5kSW5kZXggLSBmb3JtYXRFeHQuc3RhcnRJbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBmcmFnbWVudFN0YXJ0SW5kZXgsIGVuZDogZnJhZ21lbnRFbmRJbmRleCB9KTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyRm9ybWF0Q29udGVudChcbiAgICAgICAgICAgICAgICB2YWx1ZUZyYWdtZW50LFxuICAgICAgICAgICAgICAgIGZvcm1hdEV4dCxcbiAgICAgICAgICAgICAgICBmcmFnbWVudERvY3VtZW50RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgZnJhZ21lbnREaXN0YW5jZSxcbiAgICAgICAgICAgICAgICBjdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgICAgIGJyZWFrc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRvbUNvbnRlbnQucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh2YWx1ZUZyYWdtZW50KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgcmVuZGVyQ29udGVudFdyYXBwZWRMaW5lKFxuICAgICAgICBkb21Db250ZW50OiB7IGN1cnJlbnRFbGVtZW50OiBIVE1MRWxlbWVudDsgcGFyZW50Tm9kZTogTm9kZSB9LFxuICAgICAgICBzcGxpdHM6IG51bWJlcltdLFxuICAgICAgICBjdXJyZW50UGFyYWdyYXBoOiBQYXJhZ3JhcGgsXG4gICAgICAgIGZvcm1hdHNFeHQ6IEZvcm1hdEV4dE1vZGVsW10sXG4gICAgICAgIGRpc3RhbmNlOiBEaXN0YW5jZU1vZGVsLFxuICAgICAgICBjdXN0b21Db250ZW50U2VydmljZTogQ3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgIGN1c3RvbUNvbXBvbmVudHM6IElDdXN0b21Db21wb25lbnRzLFxuICAgICAgICBicmVha3M6IEJyZWFrTW9kZWxbXSA9IFtdXG4gICAgKTogdm9pZCB7XG4gICAgICAgIGxldCBzcGxpdEluZGV4ID0gMDtcbiAgICAgICAgY29uc3QgbnVtYmVyaW5nT2Zmc2V0TGVmdCA9XG4gICAgICAgICAgICBjdXJyZW50UGFyYWdyYXBoLm51bWJlcmluZ0RhdGEubnVtYmVyaW5nSWQgPT09IG51bGxcbiAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICA6IGN1cnJlbnRQYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS53aWR0aCArIGN1cnJlbnRQYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5wYWRkaW5nTGVmdDtcbiAgICAgICAgbGV0IGxpbmVFbCA9IFJlbmRlcmluZ0hlbHBlci5jcmVhdGVMaW5lRWxlbWVudChjdXJyZW50UGFyYWdyYXBoLnRleHRMaW5lc0luZm9bc3BsaXRJbmRleF0sIG51bWJlcmluZ09mZnNldExlZnQpO1xuICAgICAgICBkb21Db250ZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobGluZUVsKTtcblxuICAgICAgICBjb25zdCB2YWx1ZUZyYWdtZW50ID0gRG9tSGVscGVyLmNyZWF0ZUZyYWdtZW50KGRvbUNvbnRlbnQuY3VycmVudEVsZW1lbnQpO1xuICAgICAgICBsZXQgcGFyYWdyYXBoQ2hhcnMgPSAwO1xuICAgICAgICBsZXQgc3BsaXQgPSBzcGxpdHNbc3BsaXRJbmRleF07XG4gICAgICAgIGZvciAoY29uc3QgZm9ybWF0RXh0IG9mIGZvcm1hdHNFeHQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZVNwbGl0SW5kZXggPSBzcGxpdCA/IHNwbGl0IC0gMSA6IGRpc3RhbmNlLmVuZCAtIGRpc3RhbmNlLnN0YXJ0O1xuICAgICAgICAgICAgY29uc3QgYmVmb3JlU3BsaXREb2N1bWVudEluZGV4ID0gZGlzdGFuY2Uuc3RhcnQgKyBiZWZvcmVTcGxpdEluZGV4O1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXggPSBkaXN0YW5jZS5zdGFydCArIHBhcmFncmFwaENoYXJzO1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnREb2N1bWVudEVuZEluZGV4ID0gZm9ybWF0RXh0LmVuZEluZGV4IDwgYmVmb3JlU3BsaXREb2N1bWVudEluZGV4ID8gZm9ybWF0RXh0LmVuZEluZGV4IDogYmVmb3JlU3BsaXREb2N1bWVudEluZGV4O1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnREb2N1bWVudERpc3RhbmNlID0gbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogZnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXgsIGVuZDogZnJhZ21lbnREb2N1bWVudEVuZEluZGV4IH0pO1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnRTdGFydEluZGV4ID0gZGlzdGFuY2Uuc3RhcnQgPiBmb3JtYXRFeHQuc3RhcnRJbmRleCA/IGRpc3RhbmNlLnN0YXJ0IC0gZm9ybWF0RXh0LnN0YXJ0SW5kZXggOiAwO1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnRFbmRJbmRleCA9XG4gICAgICAgICAgICAgICAgZm9ybWF0RXh0LmVuZEluZGV4IDwgYmVmb3JlU3BsaXREb2N1bWVudEluZGV4XG4gICAgICAgICAgICAgICAgICAgID8gZnJhZ21lbnRTdGFydEluZGV4ICsgZm9ybWF0RXh0LmVuZEluZGV4IC0gZm9ybWF0RXh0LnN0YXJ0SW5kZXhcbiAgICAgICAgICAgICAgICAgICAgOiBkaXN0YW5jZS5zdGFydCArIGJlZm9yZVNwbGl0SW5kZXggLSBmb3JtYXRFeHQuc3RhcnRJbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBmcmFnbWVudFN0YXJ0SW5kZXgsIGVuZDogZnJhZ21lbnRFbmRJbmRleCB9KTtcbiAgICAgICAgICAgIHBhcmFncmFwaENoYXJzICs9IHRoaXMucmVuZGVyRm9ybWF0Q29udGVudChcbiAgICAgICAgICAgICAgICB2YWx1ZUZyYWdtZW50LFxuICAgICAgICAgICAgICAgIGZvcm1hdEV4dCxcbiAgICAgICAgICAgICAgICBmcmFnbWVudERvY3VtZW50RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgZnJhZ21lbnREaXN0YW5jZSxcbiAgICAgICAgICAgICAgICBjdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgICAgIGJyZWFrc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxpbmVFbC5hcHBlbmRDaGlsZCh2YWx1ZUZyYWdtZW50KTtcbiAgICAgICAgICAgIGxldCBuZXh0RnJhZ21lbnRTdGFydEluZGV4ID0gZnJhZ21lbnRFbmRJbmRleCArIDE7XG4gICAgICAgICAgICB3aGlsZSAocGFyYWdyYXBoQ2hhcnMgPT09IHNwbGl0ICYmIG5leHRGcmFnbWVudFN0YXJ0SW5kZXggIT09IGRpc3RhbmNlLmVuZCkge1xuICAgICAgICAgICAgICAgIHNwbGl0ID0gc3BsaXRzWysrc3BsaXRJbmRleF07XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RG9jdW1lbnRTdGFydEluZGV4ID0gZnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXggKyBuZXh0RnJhZ21lbnRTdGFydEluZGV4IC0gZnJhZ21lbnRTdGFydEluZGV4O1xuICAgICAgICAgICAgICAgIGxpbmVFbCA9IFJlbmRlcmluZ0hlbHBlci5jcmVhdGVMaW5lRWxlbWVudChjdXJyZW50UGFyYWdyYXBoLnRleHRMaW5lc0luZm9bc3BsaXRJbmRleF0sIG51bWJlcmluZ09mZnNldExlZnQpO1xuICAgICAgICAgICAgICAgIGlmIChzcGxpdCA+IGZvcm1hdEV4dC5lbmRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0RnJhZ21lbnRFbmRJbmRleCA9IGZvcm1hdEV4dC5jb250ZW50Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGcmFnbWVudERpc3RhbmNlID0gbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogbmV4dEZyYWdtZW50U3RhcnRJbmRleCwgZW5kOiBuZXh0RnJhZ21lbnRFbmRJbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RG9jdW1lbnRFbmRJbmRleCA9IG5leHRGcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCArIG5leHRGcmFnbWVudEVuZEluZGV4IC0gbmV4dEZyYWdtZW50U3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RG9jdW1lbnREaXN0YW5jZSA9IG5ldyBEaXN0YW5jZU1vZGVsKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBuZXh0RnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IG5leHRGcmFnbWVudERvY3VtZW50RW5kSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaENoYXJzICs9IHRoaXMucmVuZGVyRm9ybWF0Q29udGVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRnJhZ21lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRFeHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0RnJhZ21lbnREb2N1bWVudERpc3RhbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEZyYWdtZW50RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVsLmFwcGVuZENoaWxkKHZhbHVlRnJhZ21lbnQpO1xuICAgICAgICAgICAgICAgICAgICBkb21Db250ZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobGluZUVsKTtcblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0SW5kZXhMZW5ndGggPSBSZW5kZXJpbmdIZWxwZXIuZ2V0VGV4dEluZGV4TGVuZ3RoRm9ySW5zZXJ0KFxuICAgICAgICAgICAgICAgICAgICBmb3JtYXRFeHQsXG4gICAgICAgICAgICAgICAgICAgIG5leHRGcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgIHNwbGl0LFxuICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDaGFyc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RG9jdW1lbnRFbmRJbmRleCA9IG5leHRGcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCArIHRleHRJbmRleExlbmd0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0RnJhZ21lbnRFbmRJbmRleCA9IG5leHRGcmFnbWVudFN0YXJ0SW5kZXggKyB0ZXh0SW5kZXhMZW5ndGg7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBuZXh0RnJhZ21lbnRTdGFydEluZGV4LCBlbmQ6IG5leHRGcmFnbWVudEVuZEluZGV4IH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGcmFnbWVudERvY3VtZW50RGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBuZXh0RnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogbmV4dEZyYWdtZW50RG9jdW1lbnRFbmRJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVkQ2hhcnMgPSB0aGlzLnJlbmRlckZvcm1hdENvbnRlbnQoXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRnJhZ21lbnQsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdEV4dCxcbiAgICAgICAgICAgICAgICAgICAgbmV4dEZyYWdtZW50RG9jdW1lbnREaXN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dEZyYWdtZW50RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgICAgICAgICBicmVha3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxpbmVFbC5hcHBlbmRDaGlsZCh2YWx1ZUZyYWdtZW50KTtcbiAgICAgICAgICAgICAgICBkb21Db250ZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobGluZUVsKTtcbiAgICAgICAgICAgICAgICBuZXh0RnJhZ21lbnRTdGFydEluZGV4ICs9IHJlbmRlcmVkQ2hhcnM7XG4gICAgICAgICAgICAgICAgcGFyYWdyYXBoQ2hhcnMgKz0gcmVuZGVyZWRDaGFycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyByZW5kZXJOdW1iZXJpbmdNYXJrZXIocGFyYWdyYXBoOiBQYXJhZ3JhcGgsIGxheWVyRWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IG1hcmtlckhlaWdodCA9IHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLmhlaWdodDtcblxuICAgICAgICBjb25zdCBtYXJrZXJMaW5lSW5mbyA9IHtcbiAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiBwYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5wYWRkaW5nTGVmdCxcbiAgICAgICAgICAgIGhlaWdodDogbWFya2VySGVpZ2h0LFxuICAgICAgICAgICAgb2Zmc2V0QmVmb3JlOiAwLFxuICAgICAgICAgICAgZmlyc3RMaW5lUGFnZU9mZnNldDogMCxcbiAgICAgICAgICAgIGVuZFBhZ2VPZmZzZXQ6IDAsXG4gICAgICAgICAgICBvZmZzZXRBZnRlcjogMCxcbiAgICAgICAgICAgIHNjcmVlbkxpbmU6IDBcbiAgICAgICAgfSBhcyBUZXh0TGluZUluZm87XG4gICAgICAgIGNvbnN0IG51bWJlcmluZ0xpbmVFbCA9IHRoaXMuY3JlYXRlTGluZUVsZW1lbnQobWFya2VyTGluZUluZm8sIDApO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlckZyYWdtZW50ID0gRG9tSGVscGVyLmNyZWF0ZUZyYWdtZW50KGxheWVyRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG1hcmtlciA9IHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLm1hcmtlcjtcbiAgICAgICAgY29uc3QgbWFya2VyRXh0TW9kZWwgPSBuZXcgRm9ybWF0RXh0TW9kZWwoe1xuICAgICAgICAgICAgdGV4dFN0eWxlOiBwYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5tYXJrZXJUZXh0U3R5bGUsXG4gICAgICAgICAgICBjb250ZW50OiBtYXJrZXJcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVuZGVyVGV4dChtYXJrZXJGcmFnbWVudCwgbWFya2VyRXh0TW9kZWwsIG1hcmtlcik7XG4gICAgICAgIG51bWJlcmluZ0xpbmVFbC5hcHBlbmRDaGlsZChtYXJrZXJGcmFnbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIG51bWJlcmluZ0xpbmVFbDtcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlRGl2Q29udGFpbmVyKGNsYXNzTmFtZTogc3RyaW5nKTogSFRNTERpdkVsZW1lbnQge1xuICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNvbnRhaW5lckVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXG4gICAgICAgIHJldHVybiBjb250YWluZXJFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlbmRlckZvcm1hdENvbnRlbnQoXG4gICAgICAgIGZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50LFxuICAgICAgICBmb3JtYXRFeHQ6IEZvcm1hdEV4dE1vZGVsLFxuICAgICAgICBmcmFnbWVudERvY3VtZW50RGlzdGFuY2U6IERpc3RhbmNlTW9kZWwsXG4gICAgICAgIGZyYWdtZW50RGlzdGFuY2U6IERpc3RhbmNlTW9kZWwsXG4gICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgIGJyZWFrczogQnJlYWtNb2RlbFtdXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHRleHRGcmFnbWVudCA9IGZvcm1hdEV4dC5jb250ZW50LnN1YnN0cmluZyhmcmFnbWVudERpc3RhbmNlLnN0YXJ0LCBmcmFnbWVudERpc3RhbmNlLmVuZCArIDEpO1xuICAgICAgICBpZiAoIXRleHRGcmFnbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZXh0RnJhZ21lbnRXaXRob3V0QnJlYWtzID0gQnJlYWtIZWxwZXIucmVtb3ZlQnJlYWtNYXJrZXIoYnJlYWtzLCB0ZXh0RnJhZ21lbnQsIGZyYWdtZW50RG9jdW1lbnREaXN0YW5jZS5zdGFydCk7XG5cbiAgICAgICAgaWYgKGN1c3RvbUNvbnRlbnRTZXJ2aWNlLmlzRnJhZ21lbnRDb250YWluQ29tcG9uZW50KGN1c3RvbUNvbXBvbmVudHMsIHRleHRGcmFnbWVudCwgZnJhZ21lbnREb2N1bWVudERpc3RhbmNlKSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJUZXh0V2l0aEN1c3RvbUNvbnRlbnQoXG4gICAgICAgICAgICAgICAgZnJhZ21lbnQsXG4gICAgICAgICAgICAgICAgZm9ybWF0RXh0LFxuICAgICAgICAgICAgICAgIGZyYWdtZW50RG9jdW1lbnREaXN0YW5jZSxcbiAgICAgICAgICAgICAgICB0ZXh0RnJhZ21lbnRXaXRob3V0QnJlYWtzLFxuICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBSZW5kZXJpbmdIZWxwZXIucmVuZGVyVGV4dChmcmFnbWVudCwgZm9ybWF0RXh0LCB0ZXh0RnJhZ21lbnRXaXRob3V0QnJlYWtzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0RnJhZ21lbnQubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlbmRlclRleHRXaXRoQ3VzdG9tQ29udGVudChcbiAgICAgICAgZnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQsXG4gICAgICAgIGZvcm1hdEV4dDogRm9ybWF0RXh0TW9kZWwsXG4gICAgICAgIGZyYWdtZW50RG9jdW1lbnREaXN0YW5jZTogRGlzdGFuY2VNb2RlbCxcbiAgICAgICAgdGV4dEZyYWdtZW50OiBzdHJpbmcsXG4gICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHNcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IGN1c3RvbUNvbnRlbnRTZXJ2aWNlLmdldENvbXBvbmVudHMoY3VzdG9tQ29tcG9uZW50cywgZnJhZ21lbnREb2N1bWVudERpc3RhbmNlKTtcblxuICAgICAgICBpZiAoIWNvbXBvbmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBSZW5kZXJpbmdIZWxwZXIucmVuZGVyVGV4dChmcmFnbWVudCwgZm9ybWF0RXh0LCB0ZXh0RnJhZ21lbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG5ld1RleHRGcmFnbWVudFN0YXJ0SW5kZXggPSBmcmFnbWVudERvY3VtZW50RGlzdGFuY2Uuc3RhcnQ7XG4gICAgICAgIGxldCBuZXh0VGV4dEZyYWdtZW50ID0gdGV4dEZyYWdtZW50O1xuXG4gICAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIGNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRCZWZvcmVFbGVtZW50ID0gbmV4dFRleHRGcmFnbWVudC5zdWJzdHJpbmcoMCwgY29tcG9uZW50Lmluc3RhbmNlLmluc2VydEluZGV4IC0gbmV3VGV4dEZyYWdtZW50U3RhcnRJbmRleCk7XG4gICAgICAgICAgICBuZXh0VGV4dEZyYWdtZW50ID0gbmV4dFRleHRGcmFnbWVudC5zdWJzdHJpbmcodGV4dEJlZm9yZUVsZW1lbnQubGVuZ3RoICsgMSwgbmV4dFRleHRGcmFnbWVudC5sZW5ndGgpO1xuICAgICAgICAgICAgbmV3VGV4dEZyYWdtZW50U3RhcnRJbmRleCA9IG5ld1RleHRGcmFnbWVudFN0YXJ0SW5kZXggKyAodGV4dEJlZm9yZUVsZW1lbnQubGVuZ3RoID8gdGV4dEJlZm9yZUVsZW1lbnQubGVuZ3RoICsgMSA6IDEpO1xuXG4gICAgICAgICAgICBpZiAodGV4dEJlZm9yZUVsZW1lbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgUmVuZGVyaW5nSGVscGVyLnJlbmRlclRleHQoZnJhZ21lbnQsIGZvcm1hdEV4dCwgdGV4dEJlZm9yZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmF0dGFjaENvbXBvbmVudChmcmFnbWVudCwgY29tcG9uZW50LCBjdXN0b21Db250ZW50U2VydmljZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dFRleHRGcmFnbWVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgIFJlbmRlcmluZ0hlbHBlci5yZW5kZXJUZXh0KGZyYWdtZW50LCBmb3JtYXRFeHQsIG5leHRUZXh0RnJhZ21lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVuZGVyVGV4dChmcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCwgZm9ybWF0RXh0OiBGb3JtYXRFeHRNb2RlbCwgdGV4dEZyYWdtZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgY29uc3QgdGV4dFN0eWxlID0gbmV3IFRleHRTdHlsZU1vZGVsKHsgLi4uZm9ybWF0RXh0LnRleHRTdHlsZSB9KTtcblxuICAgICAgICBpZiAodGV4dEZyYWdtZW50ID09PSBORVdfTElORV9NQVJLVVApIHtcbiAgICAgICAgICAgIHNwYW4uY2xhc3NOYW1lID0gJ3BhcmFncmFwaC1zeW1ib2wnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5oZWFkaW5nU3R5bGVJZCA9PT0gSFlQRVJMSU5LX0hFQURJTkdfU1RZTEVfSUQpIHtcbiAgICAgICAgICAgIHRleHRTdHlsZS5mb250Q29sb3IgPSBIWVBFUkxJTktfRk9OVF9DT0xPUjtcbiAgICAgICAgICAgIHRleHRTdHlsZS51bmRlcmxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCdoeXBlcmxpbmsnKTtcbiAgICAgICAgICAgIHNwYW4ub25tb3VzZW1vdmUgPSBldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCdoeXBlcmxpbmstaG92ZXInKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzcGFuLmNsYXNzTGlzdC5yZW1vdmUoJ2h5cGVybGluay1ob3ZlcicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzcGFuLm9ubW91c2VsZWF2ZSA9ICgpID0+IHNwYW4uY2xhc3NMaXN0LnJlbW92ZSgnaHlwZXJsaW5rLWhvdmVyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gdGV4dEZyYWdtZW50O1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBDb250ZW50U3R5bGVIZWxwZXIuZ2V0VGV4dFN0eWxlc1N0cmluZyh0ZXh0U3R5bGUpKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0VGV4dEluZGV4TGVuZ3RoRm9ySW5zZXJ0KFxuICAgICAgICBmb3JtYXRFeHQ6IEZvcm1hdEV4dE1vZGVsLFxuICAgICAgICBmcmFnbWVudERvY3VtZW50U3RhcnRJbmRleDogbnVtYmVyLFxuICAgICAgICBwYXJhZ3JhcGhEaXN0YW5jZTogRGlzdGFuY2VNb2RlbCxcbiAgICAgICAgc3BsaXQ6IG51bWJlcixcbiAgICAgICAgcGFyYWdyYXBoQ2hhcnM6IG51bWJlclxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IE1hdGgubWF4KHBhcmFncmFwaERpc3RhbmNlLmVuZCAtIHBhcmFncmFwaENoYXJzIC0gcGFyYWdyYXBoRGlzdGFuY2Uuc3RhcnQsIDApO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgc3BsaXQgLSBwYXJhZ3JhcGhDaGFycyB8fCBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICAgICAgICAgIG1heExlbmd0aCxcbiAgICAgICAgICAgICAgICBmb3JtYXRFeHQuZW5kSW5kZXggLSBmcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgZm9ybWF0RXh0LmNvbnRlbnQubGVuZ3RoXG4gICAgICAgICAgICApIC0gMVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGF0aWMgYXR0YWNoQ29tcG9uZW50KFxuICAgICAgICBmcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCxcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnRSZWY8dW5rbm93bj4sXG4gICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZVxuICAgICk6IHZvaWQge1xuICAgICAgICBjdXN0b21Db250ZW50U2VydmljZS5jb21wb25lbnRTZXJ2aWNlLmF0dGFjaENvbXBvbmVudChmcmFnbWVudCwgY29tcG9uZW50KTtcbiAgICB9XG59XG4iXX0=
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyaW5nLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvaGVscGVycy9yZW5kZXJpbmcuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRzlHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFL0UsTUFBTSxPQUFPLGVBQWU7SUFDeEIsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFFBQXNCLEVBQUUsbUJBQTJCLEVBQUUsWUFBb0I7UUFDOUYsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxNQUFNLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUU5QixJQUFJLFFBQVEsRUFBRTtZQUNWLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsR0FBRyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUNsRyxNQUFNLFVBQVUsR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMs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QUUsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUM5RSxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTyxNQUFNLENBQUMsMkJBQTJCLENBQ3RDLFNBQXlCLEVBQ3pCLDBCQUFrQyxFQUNsQyxpQkFBZ0MsRUFDaEMsS0FBYSxFQUNiLGNBQXNCO1FBRXRCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxHQUFHLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEcsT0FBTyxDQUNILElBQUksQ0FBQyxHQUFHLENBQ0osS0FBSyxHQUFHLGNBQWMsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUMxQyxTQUFTLEVBQ1QsU0FBUyxDQUFDLFFBQVEsR0FBRywwQkFBMEIsR0FBRyxDQUFDLEVBQ25ELFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUMzQixHQUFHLENBQUMsQ0FDUixDQUFDO0lBQ04sQ0FBQztJQUVTLE1BQU0sQ0FBQyxlQUFlLENBQzVCLFFBQTBCLEVBQzFCLFNBQWdDLEVBQ2hDLG9CQUEwQztRQUUxQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCcmVha0hlbHBlciB9IGZyb20gJy4uLy4uL2hlbHBlcnMvYnJlYWsuaGVscGVyJztcbmltcG9ydCB7IEJyZWFrTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2JyZWFrLm1vZGVsJztcbmltcG9ydCB7IENvbnRlbnRTdHlsZUhlbHBlciB9IGZyb20gJy4vY29udGVudC1zdHlsZS5oZWxwZXInO1xuaW1wb3J0IHsgQ3VzdG9tQ29udGVudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jdXN0b20tY29tcG9uZW50cy9zaGFyZWQvc2VydmljZXMvY3VzdG9tLWNvbnRlbnQvY3VzdG9tLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBEaXN0YW5jZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2Rpc3RhbmNlLm1vZGVsJztcbmltcG9ydCB7IERvbUhlbHBlciB9IGZyb20gJy4vZG9tLmhlbHBlcic7XG5pbXBvcnQgeyBGb3JtYXRFeHRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9mb3JtYXQtZXh0Lm1vZGVsJztcbmltcG9ydCB7IEhZUEVSTElOS19GT05UX0NPTE9SLCBIWVBFUkxJTktfSEVBRElOR19TVFlMRV9JRCwgTkVXX0xJTkVfTUFSS1VQIH0gZnJvbSAnLi4vY29uc3RhbnRzL2VkaXRvci5jb25zdCc7XG5pbXBvcnQgeyBJQ3VzdG9tQ29tcG9uZW50cyB9IGZyb20gJy4uLy4uL2N1c3RvbS1jb21wb25lbnRzL3NoYXJlZC9pbnRlcmZhY2VzL2N1c3RvbS1jb21wb25lbnRzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYXJhZ3JhcGggfSBmcm9tICcuLi9wYWdpbmcvcGFyYWdyYXBoJztcbmltcG9ydCB7IFNjYWxpbmdIZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL3NjYWxpbmcuaGVscGVyJztcbmltcG9ydCB7IFRleHRMaW5lSW5mbyB9IGZyb20gJy4uL3BhZ2luZy90ZXh0LWxpbmUtaW5mbyc7XG5pbXBvcnQgeyBUZXh0U3R5bGVNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9nZW5lcmF0ZWQvdGV4dC1zdHlsZS5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBSZW5kZXJpbmdIZWxwZXIge1xuICAgIHN0YXRpYyBjcmVhdGVMaW5lRWxlbWVudChsaW5lSW5mbzogVGV4dExpbmVJbmZvLCBudW1iZXJpbmdPZmZzZXRMZWZ0OiBudW1iZXIsIHNjYWxpbmdSYXRpbzogbnVtYmVyKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBsZXQgbGluZUVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGxpbmVFbC5jbGFzc05hbWUgPSAnYWNlLWxpbmUnO1xuXG4gICAgICAgIGlmIChsaW5lSW5mbykge1xuICAgICAgICAgICAgY29uc3QgcGFkZGluZ0xlZnQgPSBTY2FsaW5nSGVscGVyLnNjYWxlKGxpbmVJbmZvLnBhZGRpbmdMZWZ0IC0gbnVtYmVyaW5nT2Zmc2V0TGVmdCwgc2NhbGluZ1JhdGlvKTtcbiAgICAgICAgICAgIGNvbnN0IG1hcmdpbkxlZnQgPSBwYWRkaW5nTGVmdCA8IDAgPyBwYWRkaW5nTGVmdCA6IDA7XG5cbiAgICAgICAgICAgIGxpbmVFbC5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgJ3N0eWxlJyxcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJldHRpZXIvcHJldHRpZXJcbiAgICAgICAgICAgICAgICBgcGFkZGluZy1sZWZ0OiR7cGFkZGluZ0xlZnR9cHg7aGVpZ2h0OiR7bGluZUluZm8uaGVpZ2h0ICsgbGluZUluZm8ub2Zmc2V0QWZ0ZXJ9cHg7bWFyZ2luLXRvcDoke1xuICAgICAgICAgICAgICAgICAgICBsaW5lSW5mby5vZmZzZXRCZWZvcmVcbiAgICAgICAgICAgICAgICB9cHg7bWFyZ2luLWJvdHRvbToke2xpbmVJbmZvLmVuZFBhZ2VPZmZzZXR9cHg7bWFyZ2luLWxlZnQ6JHttYXJnaW5MZWZ0fXB4O2JhY2tncm91bmQtY29sb3I6JHtsaW5lSW5mby5iYWNrZ3JvdW5kQ29sb3J9YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGxpbmVFbC5zZXRBdHRyaWJ1dGUoJ3NjcmVlbi1pbmRleCcsIGAke2xpbmVJbmZvLnNjcmVlbkxpbmV9YCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGluZUVsO1xuICAgIH1cblxuICAgIHN0YXRpYyByZW5kZXJDb250ZW50U2ltcGxlTGluZShcbiAgICAgICAgZG9tQ29udGVudDogeyBjdXJyZW50RWxlbWVudDogSFRNTEVsZW1lbnQ7IHBhcmVudE5vZGU6IE5vZGUgfSxcbiAgICAgICAgZm9ybWF0c0V4dDogRm9ybWF0RXh0TW9kZWxbXSxcbiAgICAgICAgcm93RGlzdGFuY2U6IERpc3RhbmNlTW9kZWwsXG4gICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgIGJyZWFrczogQnJlYWtNb2RlbFtdID0gW11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWVGcmFnbWVudCA9IERvbUhlbHBlci5jcmVhdGVGcmFnbWVudChkb21Db250ZW50LmN1cnJlbnRFbGVtZW50KTtcbiAgICAgICAgZm9yIChjb25zdCBmb3JtYXRFeHQgb2YgZm9ybWF0c0V4dCkge1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXggPSByb3dEaXN0YW5jZS5zdGFydCA+IGZvcm1hdEV4dC5zdGFydEluZGV4ID8gcm93RGlzdGFuY2Uuc3RhcnQgOiBmb3JtYXRFeHQuc3RhcnRJbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RG9jdW1lbnRFbmRJbmRleCA9IGZvcm1hdEV4dC5lbmRJbmRleCA+IHJvd0Rpc3RhbmNlLmVuZCA/IHJvd0Rpc3RhbmNlLmVuZCA6IGZvcm1hdEV4dC5lbmRJbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RG9jdW1lbnREaXN0YW5jZSA9IG5ldyBEaXN0YW5jZU1vZGVsKHsgc3RhcnQ6IGZyYWdtZW50RG9jdW1lbnRTdGFydEluZGV4LCBlbmQ6IGZyYWdtZW50RG9jdW1lbnRFbmRJbmRleCB9KTtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50U3RhcnRJbmRleCA9IHJvd0Rpc3RhbmNlLnN0YXJ0ID4gZm9ybWF0RXh0LnN0YXJ0SW5kZXggPyByb3dEaXN0YW5jZS5zdGFydCAtIGZvcm1hdEV4dC5zdGFydEluZGV4IDogMDtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RW5kSW5kZXggPVxuICAgICAgICAgICAgICAgIGZvcm1hdEV4dC5lbmRJbmRleCA+IHJvd0Rpc3RhbmNlLmVuZCA/IHJvd0Rpc3RhbmNlLmVuZCAtIGZvcm1hdEV4dC5zdGFydEluZGV4IDogZm9ybWF0RXh0LmVuZEluZGV4IC0gZm9ybWF0RXh0LnN0YXJ0SW5kZXg7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudERpc3RhbmNlID0gbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogZnJhZ21lbnRTdGFydEluZGV4LCBlbmQ6IGZyYWdtZW50RW5kSW5kZXggfSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlckZvcm1hdENvbnRlbnQoXG4gICAgICAgICAgICAgICAgdmFsdWVGcmFnbWVudCxcbiAgICAgICAgICAgICAgICBmb3JtYXRFeHQsXG4gICAgICAgICAgICAgICAgZnJhZ21lbnREb2N1bWVudERpc3RhbmNlLFxuICAgICAgICAgICAgICAgIGZyYWdtZW50RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgICAgICBicmVha3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBkb21Db250ZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodmFsdWVGcmFnbWVudCk7XG4gICAgfVxuXG4gICAgc3RhdGljIHJlbmRlckNvbnRlbnRXcmFwcGVkTGluZShcbiAgICAgICAgZG9tQ29udGVudDogeyBjdXJyZW50RWxlbWVudDogSFRNTEVsZW1lbnQ7IHBhcmVudE5vZGU6IE5vZGUgfSxcbiAgICAgICAgc3BsaXRzOiBudW1iZXJbXSxcbiAgICAgICAgY3VycmVudFBhcmFncmFwaDogUGFyYWdyYXBoLFxuICAgICAgICBmb3JtYXRzRXh0OiBGb3JtYXRFeHRNb2RlbFtdLFxuICAgICAgICBkaXN0YW5jZTogRGlzdGFuY2VNb2RlbCxcbiAgICAgICAgY3VzdG9tQ29udGVudFNlcnZpY2U6IEN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICBjdXN0b21Db21wb25lbnRzOiBJQ3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgc2NhbGluZ1JhdGlvOiBudW1iZXIsXG4gICAgICAgIGJyZWFrczogQnJlYWtNb2RlbFtdID0gW11cbiAgICApOiB2b2lkIHtcbiAgICAgICAgbGV0IHNwbGl0SW5kZXggPSAwO1xuICAgICAgICBjb25zdCBudW1iZXJpbmdPZmZzZXRMZWZ0ID1cbiAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5udW1iZXJpbmdJZCA9PT0gbnVsbFxuICAgICAgICAgICAgICAgID8gMFxuICAgICAgICAgICAgICAgIDogY3VycmVudFBhcmFncmFwaC5udW1iZXJpbmdEYXRhLndpZHRoICsgY3VycmVudFBhcmFncmFwaC5udW1iZXJpbmdEYXRhLnBhZGRpbmdMZWZ0O1xuICAgICAgICBsZXQgbGluZUVsID0gUmVuZGVyaW5nSGVscGVyLmNyZWF0ZUxpbmVFbGVtZW50KGN1cnJlbnRQYXJhZ3JhcGgudGV4dExpbmVzSW5mb1tzcGxpdEluZGV4XSwgbnVtYmVyaW5nT2Zmc2V0TGVmdCwgc2NhbGluZ1JhdGlvKTtcbiAgICAgICAgZG9tQ29udGVudC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGxpbmVFbCk7XG5cbiAgICAgICAgY29uc3QgdmFsdWVGcmFnbWVudCA9IERvbUhlbHBlci5jcmVhdGVGcmFnbWVudChkb21Db250ZW50LmN1cnJlbnRFbGVtZW50KTtcbiAgICAgICAgbGV0IHBhcmFncmFwaENoYXJzID0gMDtcbiAgICAgICAgbGV0IHNwbGl0ID0gc3BsaXRzW3NwbGl0SW5kZXhdO1xuICAgICAgICBmb3IgKGNvbnN0IGZvcm1hdEV4dCBvZiBmb3JtYXRzRXh0KSB7XG4gICAgICAgICAgICBjb25zdCBiZWZvcmVTcGxpdEluZGV4ID0gc3BsaXQgPyBzcGxpdCAtIDEgOiBkaXN0YW5jZS5lbmQgLSBkaXN0YW5jZS5zdGFydDtcbiAgICAgICAgICAgIGNvbnN0IGJlZm9yZVNwbGl0RG9jdW1lbnRJbmRleCA9IGRpc3RhbmNlLnN0YXJ0ICsgYmVmb3JlU3BsaXRJbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RG9jdW1lbnRTdGFydEluZGV4ID0gZGlzdGFuY2Uuc3RhcnQgKyBwYXJhZ3JhcGhDaGFycztcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RG9jdW1lbnRFbmRJbmRleCA9IGZvcm1hdEV4dC5lbmRJbmRleCA8IGJlZm9yZVNwbGl0RG9jdW1lbnRJbmRleCA/IGZvcm1hdEV4dC5lbmRJbmRleCA6IGJlZm9yZVNwbGl0RG9jdW1lbnRJbmRleDtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RG9jdW1lbnREaXN0YW5jZSA9IG5ldyBEaXN0YW5jZU1vZGVsKHsgc3RhcnQ6IGZyYWdtZW50RG9jdW1lbnRTdGFydEluZGV4LCBlbmQ6IGZyYWdtZW50RG9jdW1lbnRFbmRJbmRleCB9KTtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50U3RhcnRJbmRleCA9IGRpc3RhbmNlLnN0YXJ0ID4gZm9ybWF0RXh0LnN0YXJ0SW5kZXggPyBkaXN0YW5jZS5zdGFydCAtIGZvcm1hdEV4dC5zdGFydEluZGV4IDogMDtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RW5kSW5kZXggPVxuICAgICAgICAgICAgICAgIGZvcm1hdEV4dC5lbmRJbmRleCA8IGJlZm9yZVNwbGl0RG9jdW1lbnRJbmRleFxuICAgICAgICAgICAgICAgICAgICA/IGZyYWdtZW50U3RhcnRJbmRleCArIGZvcm1hdEV4dC5lbmRJbmRleCAtIGZvcm1hdEV4dC5zdGFydEluZGV4XG4gICAgICAgICAgICAgICAgICAgIDogZGlzdGFuY2Uuc3RhcnQgKyBiZWZvcmVTcGxpdEluZGV4IC0gZm9ybWF0RXh0LnN0YXJ0SW5kZXg7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudERpc3RhbmNlID0gbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogZnJhZ21lbnRTdGFydEluZGV4LCBlbmQ6IGZyYWdtZW50RW5kSW5kZXggfSk7XG4gICAgICAgICAgICBwYXJhZ3JhcGhDaGFycyArPSB0aGlzLnJlbmRlckZvcm1hdENvbnRlbnQoXG4gICAgICAgICAgICAgICAgdmFsdWVGcmFnbWVudCxcbiAgICAgICAgICAgICAgICBmb3JtYXRFeHQsXG4gICAgICAgICAgICAgICAgZnJhZ21lbnREb2N1bWVudERpc3RhbmNlLFxuICAgICAgICAgICAgICAgIGZyYWdtZW50RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgICAgICBicmVha3NcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBsaW5lRWwuYXBwZW5kQ2hpbGQodmFsdWVGcmFnbWVudCk7XG4gICAgICAgICAgICBsZXQgbmV4dEZyYWdtZW50U3RhcnRJbmRleCA9IGZyYWdtZW50RW5kSW5kZXggKyAxO1xuICAgICAgICAgICAgd2hpbGUgKHBhcmFncmFwaENoYXJzID09PSBzcGxpdCAmJiBuZXh0RnJhZ21lbnRTdGFydEluZGV4ICE9PSBkaXN0YW5jZS5lbmQpIHtcbiAgICAgICAgICAgICAgICBzcGxpdCA9IHNwbGl0c1srK3NwbGl0SW5kZXhdO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCA9IGZyYWdtZW50RG9jdW1lbnRTdGFydEluZGV4ICsgbmV4dEZyYWdtZW50U3RhcnRJbmRleCAtIGZyYWdtZW50U3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgICBsaW5lRWwgPSBSZW5kZXJpbmdIZWxwZXIuY3JlYXRlTGluZUVsZW1lbnQoY3VycmVudFBhcmFncmFwaC50ZXh0TGluZXNJbmZvW3NwbGl0SW5kZXhdLCBudW1iZXJpbmdPZmZzZXRMZWZ0LCBzY2FsaW5nUmF0aW8pO1xuICAgICAgICAgICAgICAgIGlmIChzcGxpdCA+IGZvcm1hdEV4dC5lbmRJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0RnJhZ21lbnRFbmRJbmRleCA9IGZvcm1hdEV4dC5jb250ZW50Lmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGcmFnbWVudERpc3RhbmNlID0gbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogbmV4dEZyYWdtZW50U3RhcnRJbmRleCwgZW5kOiBuZXh0RnJhZ21lbnRFbmRJbmRleCB9KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RG9jdW1lbnRFbmRJbmRleCA9IG5leHRGcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCArIG5leHRGcmFnbWVudEVuZEluZGV4IC0gbmV4dEZyYWdtZW50U3RhcnRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RG9jdW1lbnREaXN0YW5jZSA9IG5ldyBEaXN0YW5jZU1vZGVsKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBuZXh0RnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmQ6IG5leHRGcmFnbWVudERvY3VtZW50RW5kSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHBhcmFncmFwaENoYXJzICs9IHRoaXMucmVuZGVyRm9ybWF0Q29udGVudChcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRnJhZ21lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRFeHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0RnJhZ21lbnREb2N1bWVudERpc3RhbmNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dEZyYWdtZW50RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVha3NcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgbGluZUVsLmFwcGVuZENoaWxkKHZhbHVlRnJhZ21lbnQpO1xuICAgICAgICAgICAgICAgICAgICBkb21Db250ZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobGluZUVsKTtcblxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0SW5kZXhMZW5ndGggPSBSZW5kZXJpbmdIZWxwZXIuZ2V0VGV4dEluZGV4TGVuZ3RoRm9ySW5zZXJ0KFxuICAgICAgICAgICAgICAgICAgICBmb3JtYXRFeHQsXG4gICAgICAgICAgICAgICAgICAgIG5leHRGcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgZGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgIHNwbGl0LFxuICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDaGFyc1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RG9jdW1lbnRFbmRJbmRleCA9IG5leHRGcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCArIHRleHRJbmRleExlbmd0aDtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXh0RnJhZ21lbnRFbmRJbmRleCA9IG5leHRGcmFnbWVudFN0YXJ0SW5kZXggKyB0ZXh0SW5kZXhMZW5ndGg7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dEZyYWdtZW50RGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBuZXh0RnJhZ21lbnRTdGFydEluZGV4LCBlbmQ6IG5leHRGcmFnbWVudEVuZEluZGV4IH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRGcmFnbWVudERvY3VtZW50RGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0OiBuZXh0RnJhZ21lbnREb2N1bWVudFN0YXJ0SW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGVuZDogbmV4dEZyYWdtZW50RG9jdW1lbnRFbmRJbmRleFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbmRlcmVkQ2hhcnMgPSB0aGlzLnJlbmRlckZvcm1hdENvbnRlbnQoXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRnJhZ21lbnQsXG4gICAgICAgICAgICAgICAgICAgIGZvcm1hdEV4dCxcbiAgICAgICAgICAgICAgICAgICAgbmV4dEZyYWdtZW50RG9jdW1lbnREaXN0YW5jZSxcbiAgICAgICAgICAgICAgICAgICAgbmV4dEZyYWdtZW50RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgICAgICAgICBicmVha3NcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxpbmVFbC5hcHBlbmRDaGlsZCh2YWx1ZUZyYWdtZW50KTtcbiAgICAgICAgICAgICAgICBkb21Db250ZW50LnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQobGluZUVsKTtcbiAgICAgICAgICAgICAgICBuZXh0RnJhZ21lbnRTdGFydEluZGV4ICs9IHJlbmRlcmVkQ2hhcnM7XG4gICAgICAgICAgICAgICAgcGFyYWdyYXBoQ2hhcnMgKz0gcmVuZGVyZWRDaGFycztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyByZW5kZXJOdW1iZXJpbmdNYXJrZXIocGFyYWdyYXBoOiBQYXJhZ3JhcGgsIGxheWVyRWxlbWVudDogSFRNTEVsZW1lbnQsIHNjYWxpbmdSYXRpbzogbnVtYmVyKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBjb25zdCBtYXJrZXJIZWlnaHQgPSBwYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5oZWlnaHQ7XG5cbiAgICAgICAgY29uc3QgbWFya2VyTGluZUluZm8gPSB7XG4gICAgICAgICAgICBwYWRkaW5nTGVmdDogcGFyYWdyYXBoLm51bWJlcmluZ0RhdGEucGFkZGluZ0xlZnQsXG4gICAgICAgICAgICBoZWlnaHQ6IG1hcmtlckhlaWdodCxcbiAgICAgICAgICAgIG9mZnNldEJlZm9yZTogMCxcbiAgICAgICAgICAgIGZpcnN0TGluZVBhZ2VPZmZzZXQ6IDAsXG4gICAgICAgICAgICBlbmRQYWdlT2Zmc2V0OiAwLFxuICAgICAgICAgICAgb2Zmc2V0QWZ0ZXI6IDAsXG4gICAgICAgICAgICBzY3JlZW5MaW5lOiAwXG4gICAgICAgIH0gYXMgVGV4dExpbmVJbmZvO1xuICAgICAgICBjb25zdCBudW1iZXJpbmdMaW5lRWwgPSB0aGlzLmNyZWF0ZUxpbmVFbGVtZW50KG1hcmtlckxpbmVJbmZvLCAwLCBzY2FsaW5nUmF0aW8pO1xuXG4gICAgICAgIGNvbnN0IG1hcmtlckZyYWdtZW50ID0gRG9tSGVscGVyLmNyZWF0ZUZyYWdtZW50KGxheWVyRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IG1hcmtlciA9IHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLm1hcmtlcjtcbiAgICAgICAgY29uc3QgbWFya2VyRXh0TW9kZWwgPSBuZXcgRm9ybWF0RXh0TW9kZWwoe1xuICAgICAgICAgICAgdGV4dFN0eWxlOiBwYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5tYXJrZXJUZXh0U3R5bGUsXG4gICAgICAgICAgICBjb250ZW50OiBtYXJrZXJcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVuZGVyVGV4dChtYXJrZXJGcmFnbWVudCwgbWFya2VyRXh0TW9kZWwsIG1hcmtlcik7XG4gICAgICAgIG51bWJlcmluZ0xpbmVFbC5hcHBlbmRDaGlsZChtYXJrZXJGcmFnbWVudCk7XG5cbiAgICAgICAgcmV0dXJuIG51bWJlcmluZ0xpbmVFbDtcbiAgICB9XG5cbiAgICBzdGF0aWMgY3JlYXRlRGl2Q29udGFpbmVyKGNsYXNzTmFtZTogc3RyaW5nKTogSFRNTERpdkVsZW1lbnQge1xuICAgICAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIGNvbnRhaW5lckVsZW1lbnQuY2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuXG4gICAgICAgIHJldHVybiBjb250YWluZXJFbGVtZW50O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlbmRlckZvcm1hdENvbnRlbnQoXG4gICAgICAgIGZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50LFxuICAgICAgICBmb3JtYXRFeHQ6IEZvcm1hdEV4dE1vZGVsLFxuICAgICAgICBmcmFnbWVudERvY3VtZW50RGlzdGFuY2U6IERpc3RhbmNlTW9kZWwsXG4gICAgICAgIGZyYWdtZW50RGlzdGFuY2U6IERpc3RhbmNlTW9kZWwsXG4gICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgIGJyZWFrczogQnJlYWtNb2RlbFtdXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IHRleHRGcmFnbWVudCA9IGZvcm1hdEV4dC5jb250ZW50LnN1YnN0cmluZyhmcmFnbWVudERpc3RhbmNlLnN0YXJ0LCBmcmFnbWVudERpc3RhbmNlLmVuZCArIDEpO1xuICAgICAgICBpZiAoIXRleHRGcmFnbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0ZXh0RnJhZ21lbnRXaXRob3V0QnJlYWtzID0gQnJlYWtIZWxwZXIucmVtb3ZlQnJlYWtNYXJrZXIoYnJlYWtzLCB0ZXh0RnJhZ21lbnQsIGZyYWdtZW50RG9jdW1lbnREaXN0YW5jZS5zdGFydCk7XG5cbiAgICAgICAgaWYgKGN1c3RvbUNvbnRlbnRTZXJ2aWNlLmlzRnJhZ21lbnRDb250YWluQ29tcG9uZW50KGN1c3RvbUNvbXBvbmVudHMsIHRleHRGcmFnbWVudCwgZnJhZ21lbnREb2N1bWVudERpc3RhbmNlKSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJUZXh0V2l0aEN1c3RvbUNvbnRlbnQoXG4gICAgICAgICAgICAgICAgZnJhZ21lbnQsXG4gICAgICAgICAgICAgICAgZm9ybWF0RXh0LFxuICAgICAgICAgICAgICAgIGZyYWdtZW50RG9jdW1lbnREaXN0YW5jZSxcbiAgICAgICAgICAgICAgICB0ZXh0RnJhZ21lbnRXaXRob3V0QnJlYWtzLFxuICAgICAgICAgICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIGN1c3RvbUNvbXBvbmVudHNcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBSZW5kZXJpbmdIZWxwZXIucmVuZGVyVGV4dChmcmFnbWVudCwgZm9ybWF0RXh0LCB0ZXh0RnJhZ21lbnRXaXRob3V0QnJlYWtzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0ZXh0RnJhZ21lbnQubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIHJlbmRlclRleHRXaXRoQ3VzdG9tQ29udGVudChcbiAgICAgICAgZnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQsXG4gICAgICAgIGZvcm1hdEV4dDogRm9ybWF0RXh0TW9kZWwsXG4gICAgICAgIGZyYWdtZW50RG9jdW1lbnREaXN0YW5jZTogRGlzdGFuY2VNb2RlbCxcbiAgICAgICAgdGV4dEZyYWdtZW50OiBzdHJpbmcsXG4gICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgY3VzdG9tQ29tcG9uZW50czogSUN1c3RvbUNvbXBvbmVudHNcbiAgICApOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29tcG9uZW50cyA9IGN1c3RvbUNvbnRlbnRTZXJ2aWNlLmdldENvbXBvbmVudHMoY3VzdG9tQ29tcG9uZW50cywgZnJhZ21lbnREb2N1bWVudERpc3RhbmNlKTtcblxuICAgICAgICBpZiAoIWNvbXBvbmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBSZW5kZXJpbmdIZWxwZXIucmVuZGVyVGV4dChmcmFnbWVudCwgZm9ybWF0RXh0LCB0ZXh0RnJhZ21lbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG5ld1RleHRGcmFnbWVudFN0YXJ0SW5kZXggPSBmcmFnbWVudERvY3VtZW50RGlzdGFuY2Uuc3RhcnQ7XG4gICAgICAgIGxldCBuZXh0VGV4dEZyYWdtZW50ID0gdGV4dEZyYWdtZW50O1xuXG4gICAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIGNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRCZWZvcmVFbGVtZW50ID0gbmV4dFRleHRGcmFnbWVudC5zdWJzdHJpbmcoMCwgY29tcG9uZW50Lmluc3RhbmNlLmluc2VydEluZGV4IC0gbmV3VGV4dEZyYWdtZW50U3RhcnRJbmRleCk7XG4gICAgICAgICAgICBuZXh0VGV4dEZyYWdtZW50ID0gbmV4dFRleHRGcmFnbWVudC5zdWJzdHJpbmcodGV4dEJlZm9yZUVsZW1lbnQubGVuZ3RoICsgMSwgbmV4dFRleHRGcmFnbWVudC5sZW5ndGgpO1xuICAgICAgICAgICAgbmV3VGV4dEZyYWdtZW50U3RhcnRJbmRleCA9IG5ld1RleHRGcmFnbWVudFN0YXJ0SW5kZXggKyAodGV4dEJlZm9yZUVsZW1lbnQubGVuZ3RoID8gdGV4dEJlZm9yZUVsZW1lbnQubGVuZ3RoICsgMSA6IDEpO1xuXG4gICAgICAgICAgICBpZiAodGV4dEJlZm9yZUVsZW1lbnQubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgUmVuZGVyaW5nSGVscGVyLnJlbmRlclRleHQoZnJhZ21lbnQsIGZvcm1hdEV4dCwgdGV4dEJlZm9yZUVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmF0dGFjaENvbXBvbmVudChmcmFnbWVudCwgY29tcG9uZW50LCBjdXN0b21Db250ZW50U2VydmljZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobmV4dFRleHRGcmFnbWVudC5sZW5ndGgpIHtcbiAgICAgICAgICAgIFJlbmRlcmluZ0hlbHBlci5yZW5kZXJUZXh0KGZyYWdtZW50LCBmb3JtYXRFeHQsIG5leHRUZXh0RnJhZ21lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgcmVuZGVyVGV4dChmcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCwgZm9ybWF0RXh0OiBGb3JtYXRFeHRNb2RlbCwgdGV4dEZyYWdtZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgICAgY29uc3QgdGV4dFN0eWxlID0gbmV3IFRleHRTdHlsZU1vZGVsKHsgLi4uZm9ybWF0RXh0LnRleHRTdHlsZSB9KTtcblxuICAgICAgICBpZiAodGV4dEZyYWdtZW50ID09PSBORVdfTElORV9NQVJLVVApIHtcbiAgICAgICAgICAgIHNwYW4uY2xhc3NOYW1lID0gJ3BhcmFncmFwaC1zeW1ib2wnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRleHRTdHlsZS5oZWFkaW5nU3R5bGVJZCA9PT0gSFlQRVJMSU5LX0hFQURJTkdfU1RZTEVfSUQpIHtcbiAgICAgICAgICAgIHRleHRTdHlsZS5mb250Q29sb3IgPSBIWVBFUkxJTktfRk9OVF9DT0xPUjtcbiAgICAgICAgICAgIHRleHRTdHlsZS51bmRlcmxpbmUgPSB0cnVlO1xuICAgICAgICAgICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCdoeXBlcmxpbmsnKTtcbiAgICAgICAgICAgIHNwYW4ub25tb3VzZW1vdmUgPSBldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LmN0cmxLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5jbGFzc0xpc3QuYWRkKCdoeXBlcmxpbmstaG92ZXInKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzcGFuLmNsYXNzTGlzdC5yZW1vdmUoJ2h5cGVybGluay1ob3ZlcicpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBzcGFuLm9ubW91c2VsZWF2ZSA9ICgpID0+IHNwYW4uY2xhc3NMaXN0LnJlbW92ZSgnaHlwZXJsaW5rLWhvdmVyJyk7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFuLnRleHRDb250ZW50ID0gdGV4dEZyYWdtZW50O1xuICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZSgnc3R5bGUnLCBDb250ZW50U3R5bGVIZWxwZXIuZ2V0VGV4dFN0eWxlc1N0cmluZyh0ZXh0U3R5bGUpKTtcbiAgICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoc3Bhbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0VGV4dEluZGV4TGVuZ3RoRm9ySW5zZXJ0KFxuICAgICAgICBmb3JtYXRFeHQ6IEZvcm1hdEV4dE1vZGVsLFxuICAgICAgICBmcmFnbWVudERvY3VtZW50U3RhcnRJbmRleDogbnVtYmVyLFxuICAgICAgICBwYXJhZ3JhcGhEaXN0YW5jZTogRGlzdGFuY2VNb2RlbCxcbiAgICAgICAgc3BsaXQ6IG51bWJlcixcbiAgICAgICAgcGFyYWdyYXBoQ2hhcnM6IG51bWJlclxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG1heExlbmd0aCA9IE1hdGgubWF4KHBhcmFncmFwaERpc3RhbmNlLmVuZCAtIHBhcmFncmFwaENoYXJzIC0gcGFyYWdyYXBoRGlzdGFuY2Uuc3RhcnQsIDApO1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgTWF0aC5taW4oXG4gICAgICAgICAgICAgICAgc3BsaXQgLSBwYXJhZ3JhcGhDaGFycyB8fCBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICAgICAgICAgIG1heExlbmd0aCxcbiAgICAgICAgICAgICAgICBmb3JtYXRFeHQuZW5kSW5kZXggLSBmcmFnbWVudERvY3VtZW50U3RhcnRJbmRleCArIDEsXG4gICAgICAgICAgICAgICAgZm9ybWF0RXh0LmNvbnRlbnQubGVuZ3RoXG4gICAgICAgICAgICApIC0gMVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzdGF0aWMgYXR0YWNoQ29tcG9uZW50KFxuICAgICAgICBmcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCxcbiAgICAgICAgY29tcG9uZW50OiBDb21wb25lbnRSZWY8dW5rbm93bj4sXG4gICAgICAgIGN1c3RvbUNvbnRlbnRTZXJ2aWNlOiBDdXN0b21Db250ZW50U2VydmljZVxuICAgICk6IHZvaWQge1xuICAgICAgICBjdXN0b21Db250ZW50U2VydmljZS5jb21wb25lbnRTZXJ2aWNlLmF0dGFjaENvbXBvbmVudChmcmFnbWVudCwgY29tcG9uZW50KTtcbiAgICB9XG59XG4iXX0=
@@ -83,7 +83,7 @@ export class TextLayer extends EventEmitting {
83
83
  DomHelper.setStyle(paragraphCell.element.style, 'top', `${paragraphTop}px`);
84
84
  const paragraph = paragraphs[row];
85
85
  if (paragraph.numberingData.numberingId !== null) {
86
- const numberingElement = this.renderingHelper.renderNumberingMarker(paragraph, this.element);
86
+ const numberingElement = this.renderingHelper.renderNumberingMarker(paragraph, this.element, this.session.properties.scalingRatio);
87
87
  numberingElement.className = 'numberingMarker';
88
88
  paragraphCell.element.appendChild(numberingElement);
89
89
  }
@@ -108,17 +108,17 @@ export class TextLayer extends EventEmitting {
108
108
  }));
109
109
  if (splits?.length) {
110
110
  const distance = new DistanceModel({ start: startIndex, end: endIndex });
111
- this.renderingHelper.renderContentWrappedLine({ currentElement: this.element, parentNode: linesContainerElement }, splits, currentParagraph, formatsExt, distance, this.session.customContentService, this.session.customComponents, this.session.model.breaks);
111
+ this.renderingHelper.renderContentWrappedLine({ currentElement: this.element, parentNode: linesContainerElement }, splits, currentParagraph, formatsExt, distance, this.session.customContentService, this.session.customComponents, this.session.properties.scalingRatio, this.session.model.breaks);
112
112
  }
113
113
  else {
114
114
  const numberingOffsetLeft = currentParagraph.numberingData.numberingId === null
115
115
  ? 0
116
116
  : currentParagraph.numberingData.width + currentParagraph.numberingData.paddingLeft;
117
- const lastLineEl = this.renderingHelper.createLineElement(currentParagraph.textLinesInfo[0], numberingOffsetLeft);
117
+ const lastLineEl = this.renderingHelper.createLineElement(currentParagraph.textLinesInfo[0], numberingOffsetLeft, this.session.properties.scalingRatio);
118
118
  linesContainerElement.appendChild(lastLineEl);
119
119
  const rowDistance = new DistanceModel({ start: startIndex, end: endIndex });
120
120
  this.renderingHelper.renderContentSimpleLine({ currentElement: this.element, parentNode: lastLineEl }, formatsExt, rowDistance, this.session.customContentService, this.session.customComponents, this.session.model.breaks);
121
121
  }
122
122
  }
123
123
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvbGF5ZXJzL3RleHQubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sU0FBVSxTQUFRLGFBQWE7SUFTeEMsWUFBbUIsYUFBMEIsRUFBVSxrQkFBa0IsZUFBZTtRQUNwRixLQUFLLEVBQUUsQ0FBQztRQUQyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUE2SmhGLDZCQUF3QixHQUFHLENBQUMsS0FBaUQsRUFBRSxFQUFFO1lBQ3JGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQztRQTVKRSxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsMEJBQTBCLENBQUM7UUFDcEQsYUFBYSxDQUFD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QU0sbUJBQW1CLEdBQ3JCLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEtBQUssSUFBSTtnQkFDL0MsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztZQUM1RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2xILHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUM5QyxNQUFNLFdBQVcsR0FBRyxJQUFJLGFBQWEsQ0FBQyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyx1QkFBdUIsQ0FDeEMsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLEVBQ3hELFVBQVUsRUFDVixXQUFXLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsRUFDakMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUM1QixDQUFDO1NBQ0w7SUFDTCxDQUFDO0NBS0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZWxsIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jZWxsLmludGVyZmFjZSc7XG5pbXBvcnQgeyBEaXN0YW5jZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2Rpc3RhbmNlLm1vZGVsJztcbmltcG9ydCB7IERvbUhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvZG9tLmhlbHBlcic7XG5pbXBvcnQgeyBFZGl0U2Vzc2lvbiB9IGZyb20gJy4uL2VkaXQuc2Vzc2lvbic7XG5pbXBvcnQgeyBFdmVudEVtaXR0aW5nIH0gZnJvbSAnLi4vYmFzZS9ldmVudC1lbWl0dGluZyc7XG5pbXBvcnQgeyBGb3JtYXRFeHRNb2RlbCB9IGZyb20gJy4uL21vZGVscy9mb3JtYXQtZXh0Lm1vZGVsJztcbmltcG9ydCB7IEZvcm1hdFN0eWxlSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9mb3JtYXQtc3R5bGUuaGVscGVyJztcbmltcG9ydCB7IElMYXllckNvbmZpZyB9IGZyb20gJy4uL2ludGVyZmFjZXMvbGF5ZXIuY29uZmlnJztcbmltcG9ydCB7IExpbmVzIH0gZnJvbSAnLi9saW5lcyc7XG5pbXBvcnQgeyBQYXJhZ3JhcGggfSBmcm9tICcuLi9wYWdpbmcvcGFyYWdyYXBoJztcbmltcG9ydCB7IFBhcmFncmFwaEhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvcGFyYWdyYXBoLmhlbHBlcic7XG5pbXBvcnQgeyBSZW5kZXJpbmdIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL3JlbmRlcmluZy5oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgVGV4dExheWVyIGV4dGVuZHMgRXZlbnRFbWl0dGluZyB7XG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgICBsaW5lczogTGluZXM7XG5cbiAgICBzZXNzaW9uOiBFZGl0U2Vzc2lvbjtcblxuICAgIGNvbmZpZzogSUxheWVyQ29uZmlnO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmVudEVsZW1lbnQ6IEhUTUxFbGVtZW50LCBwcml2YXRlIHJlbmRlcmluZ0hlbHBlciA9IFJlbmRlcmluZ0hlbHBlcikge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gJ2FjZS1sYXllciBhY2UtdGV4dC1sYXllcic7XG4gICAgICAgIHBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5lbGVtZW50KTtcblxuICAgICAgICB0aGlzLmxpbmVzID0gbmV3IExpbmVzKHRoaXMuZWxlbWVudCk7XG4gICAgfVxuXG4gICAgc2V0U2Vzc2lvbihzZXNzaW9uOiBFZGl0U2Vzc2lvbik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZXNzaW9uKSB7XG4gICAgICAgICAgICB0aGlzLnNlc3Npb24ucGFnZXNXcmFwLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BhZ2VzQ291bnRDaGFuZ2VkJywgdGhpcy5wYWdlc0NvdW50Q2hhbmdlZEhhbmRsZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXNzaW9uID0gc2Vzc2lvbjtcbiAgICAgICAgaWYgKHNlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAuYWRkRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUud2lkdGggPSBgJHt0aGlzLnNlc3Npb24ucGFnZXNXcmFwLmNvbnRlbnRXaWR0aH1weGA7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQuc3R5bGUubWFyZ2luID0gYDAgJHt0aGlzLnNlc3Npb24ucGFnZXNXcmFwLmRvY3VtZW50TWFyZ2luLnJpZ2h0fXB4IDAgJHt0aGlzLnNlc3Npb24ucGFnZXNXcmFwLmRvY3VtZW50TWFyZ2luLmxlZnR9cHhgO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlKGNvbmZpZzogSUxheWVyQ29uZmlnKTogdm9pZCB7XG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUodGhpcy5lbGVtZW50LCAwLCAtY29uZmlnLnNjcm9sbFRvcCk7XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG5cbiAgICAgICAgd2hpbGUgKHRoaXMubGluZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmxpbmVzLnBvcCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5saW5lcy5wdXNoKHRoaXMucmVuZGVyVGV4dFBhcmFncmFwaChjb25maWcuY29udGVudFJhbmdlKSk7XG4gICAgfVxuXG4gICAgc2Nyb2xsTGluZXMoY29uZmlnOiBJTGF5ZXJDb25maWcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2xkQ29uZmlnID0gdGhpcy5jb25maWc7XG4gICAgICAgIHRoaXMuY29uZmlnID0gY29uZmlnO1xuXG4gICAgICAgIERvbUhlbHBlci50cmFuc2xhdGUodGhpcy5lbGVtZW50LCAwLCAtY29uZmlnLnNjcm9sbFRvcCk7XG5cbiAgICAgICAgY29uc3Qgb2xkTGFzdFJvdyA9IG9sZENvbmZpZyA/IG9sZENvbmZpZy5jb250ZW50UmFuZ2UuZW5kIDogLTE7XG5cbiAgICAgICAgaWYgKCFvbGRDb25maWcgfHwgb2xkTGFzdFJvdyA8IGNvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQgfHwgY29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgPCBvbGRDb25maWcuY29udGVudFJhbmdlLnN0YXJ0KSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUoY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvbGRDb25maWcuY29udGVudFJhbmdlLnN0YXJ0IDwgY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCkge1xuICAgICAgICAgICAgZm9yIChsZXQgcm93ID0gY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCAtIG9sZENvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQ7IHJvdyA+IDA7IHJvdy0tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5zaGlmdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9sZENvbmZpZy5jb250ZW50UmFuZ2UuZW5kID4gY29uZmlnLmNvbnRlbnRSYW5nZS5lbmQpIHtcbiAgICAgICAgICAgIGZvciAobGV0IHJvdyA9IG9sZENvbmZpZy5jb250ZW50UmFuZ2UuZW5kIC0gY29uZmlnLmNvbnRlbnRSYW5nZS5lbmQ7IHJvdyA+IDA7IHJvdy0tKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5saW5lcy5wb3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvbGRDb25maWcuY29udGVudFJhbmdlLnN0YXJ0ID4gY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCkge1xuICAgICAgICAgICAgY29uc3QgbGluZXMgPSB0aGlzLnJlbmRlclRleHRQYXJhZ3JhcGgoXG4gICAgICAgICAgICAgICAgbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCwgZW5kOiBvbGRDb25maWcuY29udGVudFJhbmdlLnN0YXJ0IC0gMSB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMubGluZXMudW5zaGlmdChsaW5lcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2xkQ29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgPCBjb25maWcuY29udGVudFJhbmdlLmVuZCkge1xuICAgICAgICAgICAgY29uc3QgbGluZXMgPSB0aGlzLnJlbmRlclRleHRQYXJhZ3JhcGgoXG4gICAgICAgICAgICAgICAgbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogb2xkQ29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgKyAxLCBlbmQ6IGNvbmZpZy5jb250ZW50UmFuZ2UuZW5kIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5saW5lcy5wdXNoKGxpbmVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFBhcmFncmFwaFRvcChwYXJhZ3JhcGhzOiBQYXJhZ3JhcGhbXSwgcm93OiBudW1iZXIpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5nZXRQYXJhZ3JhcGhUb3AocGFyYWdyYXBocywgcm93KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlclRleHRQYXJhZ3JhcGgocm93c0Rpc3RhbmNlOiBEaXN0YW5jZU1vZGVsKTogQ2VsbFtdIHtcbiAgICAgICAgY29uc3QgZnJhZ21lbnQ6IENlbGxbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCByb3cgPSByb3dzRGlzdGFuY2Uuc3RhcnQ7IHJvdyA8PSByb3dzRGlzdGFuY2UuZW5kOyByb3crKykge1xuICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBocyA9IHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAucGFyYWdyYXBocztcblxuICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBoQ2VsbCA9IHRoaXMubGluZXMuY3JlYXRlQ2VsbChyb3cpO1xuICAgICAgICAgICAgcGFyYWdyYXBoQ2VsbC5lbGVtZW50LmNsYXNzTmFtZSA9ICdhY2UtbGluZS1ncm91cCc7XG4gICAgICAgICAgICBEb21IZWxwZXIucmVtb3ZlQ2hpbGRyZW4ocGFyYWdyYXBoQ2VsbC5lbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFncmFwaEhlaWdodCA9IHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAuZ2V0UGFyYWdyYXBoSGVpZ2h0KHBhcmFncmFwaHMsIHJvdyk7XG4gICAgICAgICAgICBjb25zdCBwYXJhZ3JhcGhUb3AgPSB0aGlzLmdldFBhcmFncmFwaFRvcChwYXJhZ3JhcGhzLCByb3cpO1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHBhcmFncmFwaENlbGwuZWxlbWVudC5zdHlsZSwgJ2hlaWdodCcsIGAke3BhcmFncmFwaEhlaWdodH1weGApO1xuICAgICAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKHBhcmFncmFwaENlbGwuZWxlbWVudC5zdHlsZSwgJ3RvcCcsIGAke3BhcmFncmFwaFRvcH1weGApO1xuICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBoID0gcGFyYWdyYXBoc1tyb3ddO1xuICAgICAgICAgICAgaWYgKHBhcmFncmFwaC5udW1iZXJpbmdEYXRhLm51bWJlcmluZ0lkICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbnVtYmVyaW5nRWxlbWVudCA9IHRoaXMucmVuZGVyaW5nSGVscGVyLnJlbmRlck51bWJlcmluZ01hcmtlcihwYXJhZ3JhcGgsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgbnVtYmVyaW5nRWxlbWVudC5jbGFzc05hbWUgPSAnbnVtYmVyaW5nTWFya2VyJztcbiAgICAgICAgICAgICAgICBwYXJhZ3JhcGhDZWxsLmVsZW1lbnQuYXBwZW5kQ2hpbGQobnVtYmVyaW5nRWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucmVuZGVyVGV4dExpbmVzKHBhcmFncmFwaENlbGwuZWxlbWVudCwgcm93KTtcbiAgICAgICAgICAgIGZyYWdtZW50LnB1c2gocGFyYWdyYXBoQ2VsbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZnJhZ21lbnQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW5kZXJUZXh0TGluZXMocGFyZW50OiBOb2RlLCByb3c6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCBsaW5lc0NvbnRhaW5lckVsZW1lbnQgPSB0aGlzLnJlbmRlcmluZ0hlbHBlci5jcmVhdGVEaXZDb250YWluZXIoJ2xpbmVzLWNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBjdXJyZW50UGFyYWdyYXBoID0gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzW3Jvd107XG4gICAgICAgIGNvbnN0IHBhcmFncmFwaEhlaWdodCA9IFBhcmFncmFwaEhlbHBlci5nZXRQYXJhZ3JhcGhIZWlnaHQoY3VycmVudFBhcmFncmFwaC50ZXh0TGluZXNJbmZvKTtcbiAgICAgICAgRG9tSGVscGVyLnNldFN0eWxlKGxpbmVzQ29udGFpbmVyRWxlbWVudC5zdHlsZSwgJ2hlaWdodCcsIGAke3BhcmFncmFwaEhlaWdodH1weGApO1xuICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQobGluZXNDb250YWluZXJFbGVtZW50KTtcblxuICAgICAgICBjb25zdCBzdGFydEluZGV4ID0gdGhpcy5zZXNzaW9uLmRvY3VtZW50LnBvc2l0aW9uVG9JbmRleCh0aGlzLnNlc3Npb24uZG9jdW1lbnQubGluZXMsIHsgcm93LCBjb2x1bW46IDAgfSk7XG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gdGhpcy5zZXNzaW9uLmRvY3VtZW50LnBvc2l0aW9uVG9JbmRleCh0aGlzLnNlc3Npb24uZG9jdW1lbnQubGluZXMsIHsgcm93OiByb3cgKyAxLCBjb2x1bW46IDAgfSkgLSAxO1xuICAgICAgICBjb25zdCBmb3JtYXRzID0gRm9ybWF0U3R5bGVIZWxwZXIuZ2V0Rm9ybWF0c0F0UmFuZ2UodGhpcy5zZXNzaW9uLm1vZGVsLmZvcm1hdHMsIHN0YXJ0SW5kZXgsIGVuZEluZGV4KTtcbiAgICAgICAgY29uc3Qgc3BsaXRzID0gdGhpcy5zZXNzaW9uLndyYXBEYXRhW3Jvd107XG4gICAgICAgIGNvbnN0IGZvcm1hdHNFeHQgPSBmb3JtYXRzLm1hcChcbiAgICAgICAgICAgIGZvcm1hdCA9PlxuICAgICAgICAgICAgICAgIG5ldyBGb3JtYXRFeHRNb2RlbCh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZvcm1hdCxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogdGhpcy5zZXNzaW9uLm1vZGVsLmNvbnRlbnQuc3Vic3RyaW5nKGZvcm1hdC5zdGFydEluZGV4LCBmb3JtYXQuZW5kSW5kZXggKyAxKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIGlmIChzcGxpdHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBzdGFydEluZGV4LCBlbmQ6IGVuZEluZGV4IH0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJpbmdIZWxwZXIucmVuZGVyQ29udGVudFdyYXBwZWRMaW5lKFxuICAgICAgICAgICAgICAgIHsgY3VycmVudEVsZW1lbnQ6IHRoaXMuZWxlbWVudCwgcGFyZW50Tm9kZTogbGluZXNDb250YWluZXJFbGVtZW50IH0sXG4gICAgICAgICAgICAgICAgc3BsaXRzLFxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGgsXG4gICAgICAgICAgICAgICAgZm9ybWF0c0V4dCxcbiAgICAgICAgICAgICAgICBkaXN0YW5jZSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLm1vZGVsLmJyZWFrc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG51bWJlcmluZ09mZnNldExlZnQgPVxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5udW1iZXJpbmdJZCA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50UGFyYWdyYXBoLm51bWJlcmluZ0RhdGEud2lkdGggKyBjdXJyZW50UGFyYWdyYXBoLm51bWJlcmluZ0RhdGEucGFkZGluZ0xlZnQ7XG4gICAgICAgICAgICBjb25zdCBsYXN0TGluZUVsID0gdGhpcy5yZW5kZXJpbmdIZWxwZXIuY3JlYXRlTGluZUVsZW1lbnQoY3VycmVudFBhcmFncmFwaC50ZXh0TGluZXNJbmZvWzBdLCBudW1iZXJpbmdPZmZzZXRMZWZ0KTtcbiAgICAgICAgICAgIGxpbmVzQ29udGFpbmVyRWxlbWVudC5hcHBlbmRDaGlsZChsYXN0TGluZUVsKTtcbiAgICAgICAgICAgIGNvbnN0IHJvd0Rpc3RhbmNlID0gbmV3IERpc3RhbmNlTW9kZWwoeyBzdGFydDogc3RhcnRJbmRleCwgZW5kOiBlbmRJbmRleCB9KTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyaW5nSGVscGVyLnJlbmRlckNvbnRlbnRTaW1wbGVMaW5lKFxuICAgICAgICAgICAgICAgIHsgY3VycmVudEVsZW1lbnQ6IHRoaXMuZWxlbWVudCwgcGFyZW50Tm9kZTogbGFzdExpbmVFbCB9LFxuICAgICAgICAgICAgICAgIGZvcm1hdHNFeHQsXG4gICAgICAgICAgICAgICAgcm93RGlzdGFuY2UsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmN1c3RvbUNvbnRlbnRTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5jdXN0b21Db21wb25lbnRzLFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5tb2RlbC5icmVha3NcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlciA9IChldmVudDogeyBwYWdlc0NvdW50OiBudW1iZXI7IHBhZ2VIZWlnaHQ6IG51bWJlciB9KSA9PiB7XG4gICAgICAgIHRoaXMubGluZXMuc2V0U2l6ZXMoZXZlbnQucGFnZXNDb3VudCwgZXZlbnQucGFnZUhlaWdodCk7XG4gICAgfTtcbn1cbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1ub2Rlci9zcmMvbGliLytzaGFyZWQvZWRpdG9yL2NvcmUvbGF5ZXJzL3RleHQubGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzVELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRW5FLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUU5RCxNQUFNLE9BQU8sU0FBVSxTQUFRLGFBQWE7SUFTeEMsWUFBbUIsYUFBMEIsRUFBVSxrQkFBa0IsZUFBZTtRQUNwRixLQUFLLEVBQUUsQ0FBQztRQUQyQyxvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFzS2hGLDZCQUF3QixHQUFHLENBQUMsS0FBaUQsRUFBRSxFQUFFO1lBQ3JGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVELENBQUMsQ0FBQztRQXJLRSxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsMEJBQTBCLENBQUM7UUFDcEQsYUFBYSxDQUFD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QVUsQ0FBQyxZQUFZLEVBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDNUIsQ0FBQztTQUNMO2FBQU07WUFDSCxNQUFNLG1CQUFtQixHQUNyQixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsV0FBVyxLQUFLLElBQUk7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7WUFDNUYsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FDckQsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUNqQyxtQkFBbUIsRUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUN2QyxDQUFDO1lBQ0YscUJBQXFCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzlDLE1BQU0sV0FBVyxHQUFHLElBQUksYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztZQUM1RSxJQUFJLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUN4QyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFDeEQsVUFBVSxFQUNWLFdBQVcsRUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUM3QixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQzVCLENBQUM7U0FDTDtJQUNMLENBQUM7Q0FLSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENlbGwgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NlbGwuaW50ZXJmYWNlJztcbmltcG9ydCB7IERpc3RhbmNlTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvZGlzdGFuY2UubW9kZWwnO1xuaW1wb3J0IHsgRG9tSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9kb20uaGVscGVyJztcbmltcG9ydCB7IEVkaXRTZXNzaW9uIH0gZnJvbSAnLi4vZWRpdC5zZXNzaW9uJztcbmltcG9ydCB7IEV2ZW50RW1pdHRpbmcgfSBmcm9tICcuLi9iYXNlL2V2ZW50LWVtaXR0aW5nJztcbmltcG9ydCB7IEZvcm1hdEV4dE1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm1hdC1leHQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybWF0U3R5bGVIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL2Zvcm1hdC1zdHlsZS5oZWxwZXInO1xuaW1wb3J0IHsgSUxheWVyQ29uZmlnIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9sYXllci5jb25maWcnO1xuaW1wb3J0IHsgTGluZXMgfSBmcm9tICcuL2xpbmVzJztcbmltcG9ydCB7IFBhcmFncmFwaCB9IGZyb20gJy4uL3BhZ2luZy9wYXJhZ3JhcGgnO1xuaW1wb3J0IHsgUGFyYWdyYXBoSGVscGVyIH0gZnJvbSAnLi4vaGVscGVycy9wYXJhZ3JhcGguaGVscGVyJztcbmltcG9ydCB7IFJlbmRlcmluZ0hlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvcmVuZGVyaW5nLmhlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBUZXh0TGF5ZXIgZXh0ZW5kcyBFdmVudEVtaXR0aW5nIHtcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIGxpbmVzOiBMaW5lcztcblxuICAgIHNlc3Npb246IEVkaXRTZXNzaW9uO1xuXG4gICAgY29uZmlnOiBJTGF5ZXJDb25maWc7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnQsIHByaXZhdGUgcmVuZGVyaW5nSGVscGVyID0gUmVuZGVyaW5nSGVscGVyKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAnYWNlLWxheWVyIGFjZS10ZXh0LWxheWVyJztcbiAgICAgICAgcGFyZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVsZW1lbnQpO1xuXG4gICAgICAgIHRoaXMubGluZXMgPSBuZXcgTGluZXModGhpcy5lbGVtZW50KTtcbiAgICB9XG5cbiAgICBzZXRTZXNzaW9uKHNlc3Npb246IEVkaXRTZXNzaW9uKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5wYWdlc1dyYXAucmVtb3ZlRXZlbnRMaXN0ZW5lcigncGFnZXNDb3VudENoYW5nZWQnLCB0aGlzLnBhZ2VzQ291bnRDaGFuZ2VkSGFuZGxlcik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlc3Npb24gPSBzZXNzaW9uO1xuICAgICAgICBpZiAoc2Vzc2lvbikge1xuICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5hZGRFdmVudExpc3RlbmVyKCdwYWdlc0NvdW50Q2hhbmdlZCcsIHRoaXMucGFnZXNDb3VudENoYW5nZWRIYW5kbGVyKTtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS53aWR0aCA9IGAke3RoaXMuc2Vzc2lvbi5wYWdlc1dyYXAuY29udGVudFdpZHRofXB4YDtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zdHlsZS5tYXJnaW4gPSBgMCAke3RoaXMuc2Vzc2lvbi5wYWdlc1dyYXAuZG9jdW1lbnRNYXJnaW4ucmlnaHR9cHggMCAke3RoaXMuc2Vzc2lvbi5wYWdlc1dyYXAuZG9jdW1lbnRNYXJnaW4ubGVmdH1weGA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGUoY29uZmlnOiBJTGF5ZXJDb25maWcpOiB2b2lkIHtcbiAgICAgICAgRG9tSGVscGVyLnRyYW5zbGF0ZSh0aGlzLmVsZW1lbnQsIDAsIC1jb25maWcuc2Nyb2xsVG9wKTtcblxuICAgICAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZztcblxuICAgICAgICB3aGlsZSAodGhpcy5saW5lcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubGluZXMucG9wKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpbmVzLnB1c2godGhpcy5yZW5kZXJUZXh0UGFyYWdyYXBoKGNvbmZpZy5jb250ZW50UmFuZ2UpKTtcbiAgICB9XG5cbiAgICBzY3JvbGxMaW5lcyhjb25maWc6IElMYXllckNvbmZpZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBvbGRDb25maWcgPSB0aGlzLmNvbmZpZztcbiAgICAgICAgdGhpcy5jb25maWcgPSBjb25maWc7XG5cbiAgICAgICAgRG9tSGVscGVyLnRyYW5zbGF0ZSh0aGlzLmVsZW1lbnQsIDAsIC1jb25maWcuc2Nyb2xsVG9wKTtcblxuICAgICAgICBjb25zdCBvbGRMYXN0Um93ID0gb2xkQ29uZmlnID8gb2xkQ29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgOiAtMTtcblxuICAgICAgICBpZiAoIW9sZENvbmZpZyB8fCBvbGRMYXN0Um93IDwgY29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydCB8fCBjb25maWcuY29udGVudFJhbmdlLmVuZCA8IG9sZENvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShjb25maWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9sZENvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQgPCBjb25maWcuY29udGVudFJhbmdlLnN0YXJ0KSB7XG4gICAgICAgICAgICBmb3IgKGxldCByb3cgPSBjb25maWcuY29udGVudFJhbmdlLnN0YXJ0IC0gb2xkQ29uZmlnLmNvbnRlbnRSYW5nZS5zdGFydDsgcm93ID4gMDsgcm93LS0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVzLnNoaWZ0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAob2xkQ29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgPiBjb25maWcuY29udGVudFJhbmdlLmVuZCkge1xuICAgICAgICAgICAgZm9yIChsZXQgcm93ID0gb2xkQ29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgLSBjb25maWcuY29udGVudFJhbmdlLmVuZDsgcm93ID4gMDsgcm93LS0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmVzLnBvcCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKG9sZENvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQgPiBjb25maWcuY29udGVudFJhbmdlLnN0YXJ0KSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lcyA9IHRoaXMucmVuZGVyVGV4dFBhcmFncmFwaChcbiAgICAgICAgICAgICAgICBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBjb25maWcuY29udGVudFJhbmdlLnN0YXJ0LCBlbmQ6IG9sZENvbmZpZy5jb250ZW50UmFuZ2Uuc3RhcnQgLSAxIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5saW5lcy51bnNoaWZ0KGxpbmVzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvbGRDb25maWcuY29udGVudFJhbmdlLmVuZCA8IGNvbmZpZy5jb250ZW50UmFuZ2UuZW5kKSB7XG4gICAgICAgICAgICBjb25zdCBsaW5lcyA9IHRoaXMucmVuZGVyVGV4dFBhcmFncmFwaChcbiAgICAgICAgICAgICAgICBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBvbGRDb25maWcuY29udGVudFJhbmdlLmVuZCArIDEsIGVuZDogY29uZmlnLmNvbnRlbnRSYW5nZS5lbmQgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmxpbmVzLnB1c2gobGluZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5yZW1vdmVFdmVudExpc3RlbmVyKCdwYWdlc0NvdW50Q2hhbmdlZCcsIHRoaXMucGFnZXNDb3VudENoYW5nZWRIYW5kbGVyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0UGFyYWdyYXBoVG9wKHBhcmFncmFwaHM6IFBhcmFncmFwaFtdLCByb3c6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24ucGFnZXNXcmFwLmdldFBhcmFncmFwaFRvcChwYXJhZ3JhcGhzLCByb3cpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyVGV4dFBhcmFncmFwaChyb3dzRGlzdGFuY2U6IERpc3RhbmNlTW9kZWwpOiBDZWxsW10ge1xuICAgICAgICBjb25zdCBmcmFnbWVudDogQ2VsbFtdID0gW107XG4gICAgICAgIGZvciAobGV0IHJvdyA9IHJvd3NEaXN0YW5jZS5zdGFydDsgcm93IDw9IHJvd3NEaXN0YW5jZS5lbmQ7IHJvdysrKSB7XG4gICAgICAgICAgICBjb25zdCBwYXJhZ3JhcGhzID0gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5wYXJhZ3JhcGhzO1xuXG4gICAgICAgICAgICBjb25zdCBwYXJhZ3JhcGhDZWxsID0gdGhpcy5saW5lcy5jcmVhdGVDZWxsKHJvdyk7XG4gICAgICAgICAgICBwYXJhZ3JhcGhDZWxsLmVsZW1lbnQuY2xhc3NOYW1lID0gJ2FjZS1saW5lLWdyb3VwJztcbiAgICAgICAgICAgIERvbUhlbHBlci5yZW1vdmVDaGlsZHJlbihwYXJhZ3JhcGhDZWxsLmVsZW1lbnQpO1xuICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBoSGVpZ2h0ID0gdGhpcy5zZXNzaW9uLnBhZ2VzV3JhcC5nZXRQYXJhZ3JhcGhIZWlnaHQocGFyYWdyYXBocywgcm93KTtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFncmFwaFRvcCA9IHRoaXMuZ2V0UGFyYWdyYXBoVG9wKHBhcmFncmFwaHMsIHJvdyk7XG4gICAgICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUocGFyYWdyYXBoQ2VsbC5lbGVtZW50LnN0eWxlLCAnaGVpZ2h0JywgYCR7cGFyYWdyYXBoSGVpZ2h0fXB4YCk7XG4gICAgICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUocGFyYWdyYXBoQ2VsbC5lbGVtZW50LnN0eWxlLCAndG9wJywgYCR7cGFyYWdyYXBoVG9wfXB4YCk7XG4gICAgICAgICAgICBjb25zdCBwYXJhZ3JhcGggPSBwYXJhZ3JhcGhzW3Jvd107XG4gICAgICAgICAgICBpZiAocGFyYWdyYXBoLm51bWJlcmluZ0RhdGEubnVtYmVyaW5nSWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBudW1iZXJpbmdFbGVtZW50ID0gdGhpcy5yZW5kZXJpbmdIZWxwZXIucmVuZGVyTnVtYmVyaW5nTWFya2VyKFxuICAgICAgICAgICAgICAgICAgICBwYXJhZ3JhcGgsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnByb3BlcnRpZXMuc2NhbGluZ1JhdGlvXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBudW1iZXJpbmdFbGVtZW50LmNsYXNzTmFtZSA9ICdudW1iZXJpbmdNYXJrZXInO1xuICAgICAgICAgICAgICAgIHBhcmFncmFwaENlbGwuZWxlbWVudC5hcHBlbmRDaGlsZChudW1iZXJpbmdFbGVtZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJUZXh0TGluZXMocGFyYWdyYXBoQ2VsbC5lbGVtZW50LCByb3cpO1xuICAgICAgICAgICAgZnJhZ21lbnQucHVzaChwYXJhZ3JhcGhDZWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmcmFnbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbmRlclRleHRMaW5lcyhwYXJlbnQ6IE5vZGUsIHJvdzogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxpbmVzQ29udGFpbmVyRWxlbWVudCA9IHRoaXMucmVuZGVyaW5nSGVscGVyLmNyZWF0ZURpdkNvbnRhaW5lcignbGluZXMtY29udGFpbmVyJyk7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRQYXJhZ3JhcGggPSB0aGlzLnNlc3Npb24ucGFnZXNXcmFwLnBhcmFncmFwaHNbcm93XTtcbiAgICAgICAgY29uc3QgcGFyYWdyYXBoSGVpZ2h0ID0gUGFyYWdyYXBoSGVscGVyLmdldFBhcmFncmFwaEhlaWdodChjdXJyZW50UGFyYWdyYXBoLnRleHRMaW5lc0luZm8pO1xuICAgICAgICBEb21IZWxwZXIuc2V0U3R5bGUobGluZXNDb250YWluZXJFbGVtZW50LnN0eWxlLCAnaGVpZ2h0JywgYCR7cGFyYWdyYXBoSGVpZ2h0fXB4YCk7XG4gICAgICAgIHBhcmVudC5hcHBlbmRDaGlsZChsaW5lc0NvbnRhaW5lckVsZW1lbnQpO1xuXG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aGlzLnNlc3Npb24uZG9jdW1lbnQucG9zaXRpb25Ub0luZGV4KHRoaXMuc2Vzc2lvbi5kb2N1bWVudC5saW5lcywgeyByb3csIGNvbHVtbjogMCB9KTtcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSB0aGlzLnNlc3Npb24uZG9jdW1lbnQucG9zaXRpb25Ub0luZGV4KHRoaXMuc2Vzc2lvbi5kb2N1bWVudC5saW5lcywgeyByb3c6IHJvdyArIDEsIGNvbHVtbjogMCB9KSAtIDE7XG4gICAgICAgIGNvbnN0IGZvcm1hdHMgPSBGb3JtYXRTdHlsZUhlbHBlci5nZXRGb3JtYXRzQXRSYW5nZSh0aGlzLnNlc3Npb24ubW9kZWwuZm9ybWF0cywgc3RhcnRJbmRleCwgZW5kSW5kZXgpO1xuICAgICAgICBjb25zdCBzcGxpdHMgPSB0aGlzLnNlc3Npb24ud3JhcERhdGFbcm93XTtcbiAgICAgICAgY29uc3QgZm9ybWF0c0V4dCA9IGZvcm1hdHMubWFwKFxuICAgICAgICAgICAgZm9ybWF0ID0+XG4gICAgICAgICAgICAgICAgbmV3IEZvcm1hdEV4dE1vZGVsKHtcbiAgICAgICAgICAgICAgICAgICAgLi4uZm9ybWF0LFxuICAgICAgICAgICAgICAgICAgICBjb250ZW50OiB0aGlzLnNlc3Npb24ubW9kZWwuY29udGVudC5zdWJzdHJpbmcoZm9ybWF0LnN0YXJ0SW5kZXgsIGZvcm1hdC5lbmRJbmRleCArIDEpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHNwbGl0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBkaXN0YW5jZSA9IG5ldyBEaXN0YW5jZU1vZGVsKHsgc3RhcnQ6IHN0YXJ0SW5kZXgsIGVuZDogZW5kSW5kZXggfSk7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmluZ0hlbHBlci5yZW5kZXJDb250ZW50V3JhcHBlZExpbmUoXG4gICAgICAgICAgICAgICAgeyBjdXJyZW50RWxlbWVudDogdGhpcy5lbGVtZW50LCBwYXJlbnROb2RlOiBsaW5lc0NvbnRhaW5lckVsZW1lbnQgfSxcbiAgICAgICAgICAgICAgICBzcGxpdHMsXG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaCxcbiAgICAgICAgICAgICAgICBmb3JtYXRzRXh0LFxuICAgICAgICAgICAgICAgIGRpc3RhbmNlLFxuICAgICAgICAgICAgICAgIHRoaXMuc2Vzc2lvbi5jdXN0b21Db250ZW50U2VydmljZSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uY3VzdG9tQ29tcG9uZW50cyxcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24ucHJvcGVydGllcy5zY2FsaW5nUmF0aW8sXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLm1vZGVsLmJyZWFrc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IG51bWJlcmluZ09mZnNldExlZnQgPVxuICAgICAgICAgICAgICAgIGN1cnJlbnRQYXJhZ3JhcGgubnVtYmVyaW5nRGF0YS5udW1iZXJpbmdJZCA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgICAgICAgOiBjdXJyZW50UGFyYWdyYXBoLm51bWJlcmluZ0RhdGEud2lkdGggKyBjdXJyZW50UGFyYWdyYXBoLm51bWJlcmluZ0RhdGEucGFkZGluZ0xlZnQ7XG4gICAgICAgICAgICBjb25zdCBsYXN0TGluZUVsID0gdGhpcy5yZW5kZXJpbmdIZWxwZXIuY3JlYXRlTGluZUVsZW1lbnQoXG4gICAgICAgICAgICAgICAgY3VycmVudFBhcmFncmFwaC50ZXh0TGluZXNJbmZvWzBdLFxuICAgICAgICAgICAgICAgIG51bWJlcmluZ09mZnNldExlZnQsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLnByb3BlcnRpZXMuc2NhbGluZ1JhdGlvXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgbGluZXNDb250YWluZXJFbGVtZW50LmFwcGVuZENoaWxkKGxhc3RMaW5lRWwpO1xuICAgICAgICAgICAgY29uc3Qgcm93RGlzdGFuY2UgPSBuZXcgRGlzdGFuY2VNb2RlbCh7IHN0YXJ0OiBzdGFydEluZGV4LCBlbmQ6IGVuZEluZGV4IH0pO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJpbmdIZWxwZXIucmVuZGVyQ29udGVudFNpbXBsZUxpbmUoXG4gICAgICAgICAgICAgICAgeyBjdXJyZW50RWxlbWVudDogdGhpcy5lbGVtZW50LCBwYXJlbnROb2RlOiBsYXN0TGluZUVsIH0sXG4gICAgICAgICAgICAgICAgZm9ybWF0c0V4dCxcbiAgICAgICAgICAgICAgICByb3dEaXN0YW5jZSxcbiAgICAgICAgICAgICAgICB0aGlzLnNlc3Npb24uY3VzdG9tQ29udGVudFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLmN1c3RvbUNvbXBvbmVudHMsXG4gICAgICAgICAgICAgICAgdGhpcy5zZXNzaW9uLm1vZGVsLmJyZWFrc1xuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcGFnZXNDb3VudENoYW5nZWRIYW5kbGVyID0gKGV2ZW50OiB7IHBhZ2VzQ291bnQ6IG51bWJlcjsgcGFnZUhlaWdodDogbnVtYmVyIH0pID0+IHtcbiAgICAgICAgdGhpcy5saW5lcy5zZXRTaXplcyhldmVudC5wYWdlc0NvdW50LCBldmVudC5wYWdlSGVpZ2h0KTtcbiAgICB9O1xufVxuIl19
@@ -32,10 +32,10 @@ export class NoderExternalComponent extends BaseNoderComponent {
32
32
  this.editorService.changeElementStyle(new ElementModel({ ...this.content, width }));
33
33
  }
34
34
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NoderExternalComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
36
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.1", type: NoderExternalComponent, usesInheritance: true, ngImport: i0 }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderExternalComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: NoderExternalComponent, usesInheritance: true, ngImport: i0 }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NoderExternalComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderExternalComponent, decorators: [{
39
39
  type: Directive
40
40
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFJMUUsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxrQkFBa0I7SUFEdkU7O1FBTXVCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBNkI1RDtJQTNCWSxLQUFLO1FBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFUSxJQUFJO1FBQ1QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEY7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxZQUFZLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGO0lBQ0wsQ0FBQzs4R0FqQ2lCLHNCQUFzQjtrR0FBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZU5vZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRXh0ZXJuYWxTaWRlbmF2SW50ZXJmYWNlIH0gZnJvbSAnLi9leHRlcm5hbC1zaWRlbmF2LmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5vZGVyRXh0ZXJuYWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlTm9kZXJDb21wb25lbnQge1xuICAgIG92ZXJyaWRlIGNvbnRlbnQ6IEVsZW1lbnRNb2RlbDtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBzaWRlbmF2Q29tcG9uZW50OiBUeXBlPEV4dGVybmFsU2lkZW5hdkludGVyZmFjZT47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yU2VydmljZSA9IGluamVjdChFZGl0b3JTZXJ2aWNlKTtcblxuICAgIG92ZXJyaWRlIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5mb2N1cygpO1xuICAgICAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmlzVmlld09ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UudG9nZ2xlU2lkZW5hdih0cnVlLCB0aGlzLnNpZGVuYXZDb21wb25lbnQsIHRoaXMuY29udGVudCwgdGhpcy5jb250ZW50V2lkdGgpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmJsdXIoKTtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5pc1ZpZXdPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoZmFsc2UsIHRoaXMuc2lkZW5hdkNvbXBvbmVudCwgdGhpcy5jb250ZW50LCB0aGlzLmNvbnRlbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgY2hhbmdlRWxlbWVudEhlaWdodChoZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faGVpZ2h0ICE9PSBoZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VFbGVtZW50U3R5bGUobmV3IEVsZW1lbnRNb2RlbCh7IC4uLnRoaXMuY29udGVudCwgaGVpZ2h0IH0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUVsZW1lbnRXaWR0aCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl93aWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VFbGVtZW50U3R5bGUobmV3IEVsZW1lbnRNb2RlbCh7IC4uLnRoaXMuY29udGVudCwgd2lkdGggfSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvZXh0ZXJuYWwtZWxlbWVudC9leHRlcm5hbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFFeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFJMUUsTUFBTSxPQUFnQixzQkFBdUIsU0FBUSxrQkFBa0I7SUFEdkU7O1FBTXVCLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0tBNkI1RDtJQTNCWSxLQUFLO1FBQ1YsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFUSxJQUFJO1FBQ1QsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2IsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRTtZQUMvQixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQzlCLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxNQUFNLEVBQUU7WUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLFlBQVksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEY7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYTtRQUM1QixJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQUMsSUFBSSxZQUFZLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3ZGO0lBQ0wsQ0FBQzsrR0FqQ2lCLHNCQUFzQjttR0FBdEIsc0JBQXNCOzs0RkFBdEIsc0JBQXNCO2tCQUQzQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmFzZU5vZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2hhcmVkL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBFbGVtZW50TW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2VsZW1lbnQubW9kZWwnO1xuaW1wb3J0IHsgRXh0ZXJuYWxTaWRlbmF2SW50ZXJmYWNlIH0gZnJvbSAnLi9leHRlcm5hbC1zaWRlbmF2LmludGVyZmFjZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5vZGVyRXh0ZXJuYWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlTm9kZXJDb21wb25lbnQge1xuICAgIG92ZXJyaWRlIGNvbnRlbnQ6IEVsZW1lbnRNb2RlbDtcblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBzaWRlbmF2Q29tcG9uZW50OiBUeXBlPEV4dGVybmFsU2lkZW5hdkludGVyZmFjZT47XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9yU2VydmljZSA9IGluamVjdChFZGl0b3JTZXJ2aWNlKTtcblxuICAgIG92ZXJyaWRlIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICBzdXBlci5mb2N1cygpO1xuICAgICAgICBpZiAodGhpcy5lZGl0b3JTZXJ2aWNlLmlzVmlld09ubHkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVkaXRvclNlcnZpY2UudG9nZ2xlU2lkZW5hdih0cnVlLCB0aGlzLnNpZGVuYXZDb21wb25lbnQsIHRoaXMuY29udGVudCwgdGhpcy5jb250ZW50V2lkdGgpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGJsdXIoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLmJsdXIoKTtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yU2VydmljZS5pc1ZpZXdPbmx5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnRvZ2dsZVNpZGVuYXYoZmFsc2UsIHRoaXMuc2lkZW5hdkNvbXBvbmVudCwgdGhpcy5jb250ZW50LCB0aGlzLmNvbnRlbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgY2hhbmdlRWxlbWVudEhlaWdodChoZWlnaHQ6IG51bWJlcik6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faGVpZ2h0ICE9PSBoZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VFbGVtZW50U3R5bGUobmV3IEVsZW1lbnRNb2RlbCh7IC4uLnRoaXMuY29udGVudCwgaGVpZ2h0IH0pKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoYW5nZUVsZW1lbnRXaWR0aCh3aWR0aDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl93aWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuZWRpdG9yU2VydmljZS5jaGFuZ2VFbGVtZW50U3R5bGUobmV3IEVsZW1lbnRNb2RlbCh7IC4uLnRoaXMuY29udGVudCwgd2lkdGggfSkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,6 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
2
  import { BaseNoderComponent } from '../../shared/abstract/base.component';
3
3
  import { ImageInputHandler } from '../input-handler/image-input.handler';
4
+ import { ScalingHelper } from '../../../../helpers/scaling.helper';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "../services/image-api.service";
6
7
  import * as i2 from "../../../interaction/editor.service";
@@ -28,8 +29,8 @@ export class NoderImageComponent extends BaseNoderComponent {
28
29
  }
29
30
  initialize() {
30
31
  const url = this.image.content?.replace('/api/', '') ?? '';
31
- this._height = this.image.height;
32
- this._width = this.image.width;
32
+ this._height = ScalingHelper.scale(this.image.height, this.generalProperties.scalingRatio);
33
+ this._width = ScalingHelper.scale(this.image.width, this.generalProperties.scalingRatio);
33
34
  this.apiService.getFile(url).subscribe((res) => {
34
35
  const fileSource = URL.createObjectURL(res);
35
36
  const image = this.createImage(fileSource);
@@ -77,11 +78,11 @@ export class NoderImageComponent extends BaseNoderComponent {
77
78
  image.style.width = `${size.width}px`;
78
79
  image.style.height = `${size.height}px`;
79
80
  }
80
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NoderImageComponent, deps: [{ token: i0.ElementRef }, { token: i1.ImageApiService }, { token: i2.EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
81
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: NoderImageComponent, selector: "app-noder-image", usesInheritance: true, ngImport: i0, template: "<app-resizer\n *ngIf=\"isFocused\"\n class=\"resizer\"\n [isDisabled]=\"isViewOnly$ | async\"\n [size]=\"size\"\n (resizeEnd)=\"onResizeEnd($event)\"></app-resizer>\n", styles: [":host{position:relative;outline:none}.resizer{position:absolute;z-index:1}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ResizerComponent, selector: "app-resizer", inputs: ["isDisabled", "size"], outputs: ["resizeEnd"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderImageComponent, deps: [{ token: i0.ElementRef }, { token: i1.ImageApiService }, { token: i2.EditorService }], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NoderImageComponent, selector: "app-noder-image", usesInheritance: true, ngImport: i0, template: "<app-resizer\n *ngIf=\"isFocused\"\n class=\"resizer\"\n [isDisabled]=\"isViewOnly$ | async\"\n [size]=\"size\"\n (resizeEnd)=\"onResizeEnd($event)\"></app-resizer>\n", styles: [":host{position:relative;outline:none}.resizer{position:absolute;z-index:1}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ResizerComponent, selector: "app-resizer", inputs: ["isDisabled", "size"], outputs: ["resizeEnd"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
82
83
  }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: NoderImageComponent, decorators: [{
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NoderImageComponent, decorators: [{
84
85
  type: Component,
85
86
  args: [{ selector: 'app-noder-image', changeDetection: ChangeDetectionStrategy.OnPush, template: "<app-resizer\n *ngIf=\"isFocused\"\n class=\"resizer\"\n [isDisabled]=\"isViewOnly$ | async\"\n [size]=\"size\"\n (resizeEnd)=\"onResizeEnd($event)\"></app-resizer>\n", styles: [":host{position:relative;outline:none}.resizer{position:absolute;z-index:1}\n"] }]
86
87
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.ImageApiService }, { type: i2.EditorService }] });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvaW1hZ2UvY29tcG9uZW50cy9pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9pbWFnZS9jb21wb25lbnRzL2ltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7OztBQVV6RSxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsa0JBQWtCO0lBQ3ZELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE9BQXFCLENBQUM7SUFDdEMsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEdBQWU7UUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNKLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3hELENBQUM7SUFNRCxZQUFzQixVQUFtQyxFQUFVLFVBQTJCLEVBQVUsYUFBNEI7UUFDaEksS0FBSyxFQUFFLENBQUM7UUFEVSxlQUFVLEdB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YSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRSxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekIsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFTyxZQUFZLENBQUMsSUFBVTtRQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEUsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUM7UUFDdEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUM7SUFDNUMsQ0FBQzs4R0FsRlEsbUJBQW1CO2tHQUFuQixtQkFBbUIsOEVDaEJoQyx1TEFNQTs7MkZEVWEsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNJLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBCYXNlTm9kZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWJzdHJhY3QvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2ludGVyYWN0aW9uL2VkaXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IEltYWdlQXBpU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2ltYWdlLWFwaS5zZXJ2aWNlJztcbmltcG9ydCB7IEltYWdlSW5wdXRIYW5kbGVyIH0gZnJvbSAnLi4vaW5wdXQtaGFuZGxlci9pbWFnZS1pbnB1dC5oYW5kbGVyJztcbmltcG9ydCB7IEltYWdlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9tb2RlbHMvZ2VuZXJhdGVkL2ltYWdlLm1vZGVsJztcbmltcG9ydCB7IFNpemUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NpemUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC1ub2Rlci1pbWFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbWFnZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVySW1hZ2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlTm9kZXJDb21wb25lbnQge1xuICAgIGdldCBpc1ZpZXdPbmx5JCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdG9yU2VydmljZS5pc1ZpZXdPbmx5JDtcbiAgICB9XG5cbiAgICBnZXQgaW1hZ2UoKTogSW1hZ2VNb2RlbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRlbnQgYXMgSW1hZ2VNb2RlbDtcbiAgICB9XG4gICAgc2V0IGltYWdlKHZhbDogSW1hZ2VNb2RlbCkge1xuICAgICAgICB0aGlzLmNvbnRlbnQgPSB2YWw7XG4gICAgfVxuXG4gICAgZ2V0IHNpemUoKTogU2l6ZSB7XG4gICAgICAgIHJldHVybiB7IHdpZHRoOiB0aGlzLl93aWR0aCwgaGVpZ2h0OiB0aGlzLl9oZWlnaHQgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzQ2FudmFzID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGlucHV0SGFuZGxlcjogSW1hZ2VJbnB1dEhhbmRsZXI7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgYXBpU2VydmljZTogSW1hZ2VBcGlTZXJ2aWNlLCBwcml2YXRlIGVkaXRvclNlcnZpY2U6IEVkaXRvclNlcnZpY2UpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmltYWdlLmNvbnRlbnQ/LnJlcGxhY2UoJy9hcGkvJywgJycpID8/ICcnO1xuICAgICAgICB0aGlzLl9oZWlnaHQgPSB0aGlzLmltYWdlLmhlaWdodDtcbiAgICAgICAgdGhpcy5fd2lkdGggPSB0aGlzLmltYWdlLndpZHRoO1xuICAgICAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0RmlsZSh1cmwpLnN1YnNjcmliZSgocmVzOiBCbG9iKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlU291cmNlID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXMpO1xuICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSB0aGlzLmNyZWF0ZUltYWdlKGZpbGVTb3VyY2UpO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoaW1hZ2UpO1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJlbmRlcmVyVXBkYXRlZCh0aGlzLnNlc3Npb25JZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUmVzaXplRW5kKHNpemU6IFNpemUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemUoc2l6ZSk7XG4gICAgICAgIGNvbnN0IHJlc2l6ZWRJbWFnZSA9IHsgLi4udGhpcy5pbWFnZSwgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHQgfTtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmNoYW5nZUltYWdlU3R5bGUocmVzaXplZEltYWdlKTtcbiAgICB9XG5cbiAgICByZXNpemUoc2l6ZTogU2l6ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aWR0aCA9IHNpemUud2lkdGg7XG4gICAgICAgIHRoaXMuX2hlaWdodCA9IHNpemUuaGVpZ2h0O1xuICAgICAgICB0aGlzLmlzQ2FudmFzID8gdGhpcy5yZXNpemVDYW52YXMoc2l6ZSkgOiB0aGlzLnJlc2l6ZUltYWdlKHNpemUpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEhhbmRsZXIgPSBuZXcgSW1hZ2VJbnB1dEhhbmRsZXIodGhpcy5lZGl0b3JTZXJ2aWNlLCB0aGlzKTtcbiAgICAgICAgc3VwZXIuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0SGFuZGxlcj8uZGVzdHJveSgpO1xuICAgICAgICBzdXBlci5ibHVyKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRIYW5kbGVyPy5kZXN0cm95KCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVJbWFnZShmaWxlU291cmNlKTogSFRNTEltYWdlRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGltYWdlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICAgICAgaW1hZ2VFbC53aWR0aCA9IHRoaXMuX3dpZHRoO1xuICAgICAgICBpbWFnZUVsLmhlaWdodCA9IHRoaXMuX2hlaWdodDtcbiAgICAgICAgaW1hZ2VFbC5zcmMgPSBmaWxlU291cmNlO1xuICAgICAgICByZXR1cm4gaW1hZ2VFbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2l6ZUltYWdlKHNpemU6IFNpemUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICAgICAgaW1hZ2Uud2lkdGggPSBzaXplLndpZHRoO1xuICAgICAgICBpbWFnZS5oZWlnaHQgPSBzaXplLmhlaWdodDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2l6ZUNhbnZhcyhzaXplOiBTaXplKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGltYWdlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzJyk7XG4gICAgICAgIGltYWdlLnN0eWxlLndpZHRoID0gYCR7c2l6ZS53aWR0aH1weGA7XG4gICAgICAgIGltYWdlLnN0eWxlLmhlaWdodCA9IGAke3NpemUuaGVpZ2h0fXB4YDtcbiAgICB9XG59XG4iLCI8YXBwLXJlc2l6ZXJcbiAgICAqbmdJZj1cImlzRm9jdXNlZFwiXG4gICAgY2xhc3M9XCJyZXNpemVyXCJcbiAgICBbaXNEaXNhYmxlZF09XCJpc1ZpZXdPbmx5JCB8IGFzeW5jXCJcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAocmVzaXplRW5kKT1cIm9uUmVzaXplRW5kKCRldmVudClcIj48L2FwcC1yZXNpemVyPlxuIl19
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvaW1hZ2UvY29tcG9uZW50cy9pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9pbWFnZS9jb21wb25lbnRzL2ltYWdlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsTUFBTSxlQUFlLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHMUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7QUFTbkUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGtCQUFrQjtJQUN2RCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxPQUFxQixDQUFDO0lBQ3RDLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxHQUFlO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4RCxDQUFDO0lBTUQsWUFBc0IsVUFBbUMsRUFBVSxVQUEyQixF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R0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzlCLE9BQU8sQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDO1FBQ3pCLE9BQU8sT0FBTyxDQUFDO0lBQ25CLENBQUM7SUFFTyxXQUFXLENBQUMsSUFBVTtRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsS0FBSyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3pCLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU8sWUFBWSxDQUFDLElBQVU7UUFDM0IsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDO0lBQzVDLENBQUM7K0dBbEZRLG1CQUFtQjttR0FBbkIsbUJBQW1CLDhFQ2pCaEMsdUxBTUE7OzRGRFdhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDSSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQmFzZU5vZGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Fic3RyYWN0L2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmFjdGlvbi9lZGl0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBJbWFnZUFwaVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9pbWFnZS1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBJbWFnZUlucHV0SGFuZGxlciB9IGZyb20gJy4uL2lucHV0LWhhbmRsZXIvaW1hZ2UtaW5wdXQuaGFuZGxlcic7XG5pbXBvcnQgeyBJbWFnZU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vbW9kZWxzL2dlbmVyYXRlZC9pbWFnZS5tb2RlbCc7XG5pbXBvcnQgeyBTY2FsaW5nSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vaGVscGVycy9zY2FsaW5nLmhlbHBlcic7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zaXplJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtbm9kZXItaW1hZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBOb2RlckltYWdlQ29tcG9uZW50IGV4dGVuZHMgQmFzZU5vZGVyQ29tcG9uZW50IHtcbiAgICBnZXQgaXNWaWV3T25seSQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRvclNlcnZpY2UuaXNWaWV3T25seSQ7XG4gICAgfVxuXG4gICAgZ2V0IGltYWdlKCk6IEltYWdlTW9kZWwge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50IGFzIEltYWdlTW9kZWw7XG4gICAgfVxuICAgIHNldCBpbWFnZSh2YWw6IEltYWdlTW9kZWwpIHtcbiAgICAgICAgdGhpcy5jb250ZW50ID0gdmFsO1xuICAgIH1cblxuICAgIGdldCBzaXplKCk6IFNpemUge1xuICAgICAgICByZXR1cm4geyB3aWR0aDogdGhpcy5fd2lkdGgsIGhlaWdodDogdGhpcy5faGVpZ2h0IH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0NhbnZhcyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBpbnB1dEhhbmRsZXI6IEltYWdlSW5wdXRIYW5kbGVyO1xuXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIGFwaVNlcnZpY2U6IEltYWdlQXBpU2VydmljZSwgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBFZGl0b3JTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5pbWFnZS5jb250ZW50Py5yZXBsYWNlKCcvYXBpLycsICcnKSA/PyAnJztcbiAgICAgICAgdGhpcy5faGVpZ2h0ID0gU2NhbGluZ0hlbHBlci5zY2FsZSh0aGlzLmltYWdlLmhlaWdodCwgdGhpcy5nZW5lcmFsUHJvcGVydGllcy5zY2FsaW5nUmF0aW8pO1xuICAgICAgICB0aGlzLl93aWR0aCA9IFNjYWxpbmdIZWxwZXIuc2NhbGUodGhpcy5pbWFnZS53aWR0aCwgdGhpcy5nZW5lcmFsUHJvcGVydGllcy5zY2FsaW5nUmF0aW8pO1xuICAgICAgICB0aGlzLmFwaVNlcnZpY2UuZ2V0RmlsZSh1cmwpLnN1YnNjcmliZSgocmVzOiBCbG9iKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWxlU291cmNlID0gVVJMLmNyZWF0ZU9iamVjdFVSTChyZXMpO1xuICAgICAgICAgICAgY29uc3QgaW1hZ2UgPSB0aGlzLmNyZWF0ZUltYWdlKGZpbGVTb3VyY2UpO1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXBwZW5kQ2hpbGQoaW1hZ2UpO1xuICAgICAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLnJlbmRlcmVyVXBkYXRlZCh0aGlzLnNlc3Npb25JZCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uUmVzaXplRW5kKHNpemU6IFNpemUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNpemUoc2l6ZSk7XG4gICAgICAgIGNvbnN0IHJlc2l6ZWRJbWFnZSA9IHsgLi4udGhpcy5pbWFnZSwgd2lkdGg6IHNpemUud2lkdGgsIGhlaWdodDogc2l6ZS5oZWlnaHQgfTtcbiAgICAgICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmNoYW5nZUltYWdlU3R5bGUocmVzaXplZEltYWdlKTtcbiAgICB9XG5cbiAgICByZXNpemUoc2l6ZTogU2l6ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aWR0aCA9IHNpemUud2lkdGg7XG4gICAgICAgIHRoaXMuX2hlaWdodCA9IHNpemUuaGVpZ2h0O1xuICAgICAgICB0aGlzLmlzQ2FudmFzID8gdGhpcy5yZXNpemVDYW52YXMoc2l6ZSkgOiB0aGlzLnJlc2l6ZUltYWdlKHNpemUpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dEhhbmRsZXIgPSBuZXcgSW1hZ2VJbnB1dEhhbmRsZXIodGhpcy5lZGl0b3JTZXJ2aWNlLCB0aGlzKTtcbiAgICAgICAgc3VwZXIuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBvdmVycmlkZSBibHVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0SGFuZGxlcj8uZGVzdHJveSgpO1xuICAgICAgICBzdXBlci5ibHVyKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRIYW5kbGVyPy5kZXN0cm95KCk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVJbWFnZShmaWxlU291cmNlKTogSFRNTEltYWdlRWxlbWVudCB7XG4gICAgICAgIGNvbnN0IGltYWdlRWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTtcbiAgICAgICAgaW1hZ2VFbC53aWR0aCA9IHRoaXMuX3dpZHRoO1xuICAgICAgICBpbWFnZUVsLmhlaWdodCA9IHRoaXMuX2hlaWdodDtcbiAgICAgICAgaW1hZ2VFbC5zcmMgPSBmaWxlU291cmNlO1xuICAgICAgICByZXR1cm4gaW1hZ2VFbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2l6ZUltYWdlKHNpemU6IFNpemUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW1hZ2UgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICAgICAgaW1hZ2Uud2lkdGggPSBzaXplLndpZHRoO1xuICAgICAgICBpbWFnZS5oZWlnaHQgPSBzaXplLmhlaWdodDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2l6ZUNhbnZhcyhzaXplOiBTaXplKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGltYWdlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignY2FudmFzJyk7XG4gICAgICAgIGltYWdlLnN0eWxlLndpZHRoID0gYCR7c2l6ZS53aWR0aH1weGA7XG4gICAgICAgIGltYWdlLnN0eWxlLmhlaWdodCA9IGAke3NpemUuaGVpZ2h0fXB4YDtcbiAgICB9XG59XG4iLCI8YXBwLXJlc2l6ZXJcbiAgICAqbmdJZj1cImlzRm9jdXNlZFwiXG4gICAgY2xhc3M9XCJyZXNpemVyXCJcbiAgICBbaXNEaXNhYmxlZF09XCJpc1ZpZXdPbmx5JCB8IGFzeW5jXCJcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAocmVzaXplRW5kKT1cIm9uUmVzaXplRW5kKCRldmVudClcIj48L2FwcC1yZXNpemVyPlxuIl19
@@ -72,10 +72,10 @@ export class ResizerComponent {
72
72
  setPreviousCoordinate(event) {
73
73
  this.prevCoordinate = { x: event.screenX, y: event.screenY };
74
74
  }
75
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ResizerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.1", type: ResizerComponent, selector: "app-resizer", inputs: { isDisabled: "isDisabled", size: "size" }, outputs: { resizeEnd: "resizeEnd" }, host: { listeners: { "document:mousemove": "onMousemove($event)", "window:mouseup": "onMouseup()" }, properties: { "style.width.px": "this.width", "style.height.px": "this.height", "style.right.px": "this.right", "style.bottom.px": "this.bottom" } }, ngImport: i0, template: "<span\n class=\"point north-west\"\n (mousedown)=\"onStartResizing($event, Direction.NorthWest)\"></span>\n<span\n class=\"point north\"\n (mousedown)=\"onStartResizing($event, Direction.North)\"></span>\n<span\n class=\"point north-east\"\n (mousedown)=\"onStartResizing($event, Direction.NorthEast)\"></span>\n<span\n class=\"point east\"\n (mousedown)=\"onStartResizing($event, Direction.East)\"></span>\n<span\n class=\"point south-east\"\n (mousedown)=\"onStartResizing($event, Direction.SouthEast)\"></span>\n<span\n class=\"point south\"\n (mousedown)=\"onStartResizing($event, Direction.South)\"></span>\n<span\n class=\"point south-west\"\n (mousedown)=\"onStartResizing($event, Direction.SouthWest)\"></span>\n<span\n class=\"point west\"\n (mousedown)=\"onStartResizing($event, Direction.West)\"></span>\n", styles: [":host{display:block;border:1px solid #616161}.point{position:absolute;width:12px;height:12px;border:1px solid #616161;border-radius:50%;background-color:#fff}.point.north-west{top:-6px;left:-6px;cursor:nw-resize}.point.north{top:-6px;left:0;right:0;margin:auto;cursor:n-resize}.point.north-east{top:-6px;right:-6px;cursor:ne-resize}.point.east{top:0;bottom:0;right:-6px;margin:auto;cursor:e-resize}.point.south-east{bottom:-6px;right:-6px;cursor:se-resize}.point.south{bottom:-6px;left:0;right:0;margin:auto;cursor:s-resize}.point.south-west{bottom:-6px;left:-6px;cursor:sw-resize}.point.west{top:0;bottom:0;left:-6px;margin:auto;cursor:w-resize}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
75
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ResizerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ResizerComponent, selector: "app-resizer", inputs: { isDisabled: "isDisabled", size: "size" }, outputs: { resizeEnd: "resizeEnd" }, host: { listeners: { "document:mousemove": "onMousemove($event)", "window:mouseup": "onMouseup()" }, properties: { "style.width.px": "this.width", "style.height.px": "this.height", "style.right.px": "this.right", "style.bottom.px": "this.bottom" } }, ngImport: i0, template: "<span\n class=\"point north-west\"\n (mousedown)=\"onStartResizing($event, Direction.NorthWest)\"></span>\n<span\n class=\"point north\"\n (mousedown)=\"onStartResizing($event, Direction.North)\"></span>\n<span\n class=\"point north-east\"\n (mousedown)=\"onStartResizing($event, Direction.NorthEast)\"></span>\n<span\n class=\"point east\"\n (mousedown)=\"onStartResizing($event, Direction.East)\"></span>\n<span\n class=\"point south-east\"\n (mousedown)=\"onStartResizing($event, Direction.SouthEast)\"></span>\n<span\n class=\"point south\"\n (mousedown)=\"onStartResizing($event, Direction.South)\"></span>\n<span\n class=\"point south-west\"\n (mousedown)=\"onStartResizing($event, Direction.SouthWest)\"></span>\n<span\n class=\"point west\"\n (mousedown)=\"onStartResizing($event, Direction.West)\"></span>\n", styles: [":host{display:block;border:1px solid #616161}.point{position:absolute;width:12px;height:12px;border:1px solid #616161;border-radius:50%;background-color:#fff}.point.north-west{top:-6px;left:-6px;cursor:nw-resize}.point.north{top:-6px;left:0;right:0;margin:auto;cursor:n-resize}.point.north-east{top:-6px;right:-6px;cursor:ne-resize}.point.east{top:0;bottom:0;right:-6px;margin:auto;cursor:e-resize}.point.south-east{bottom:-6px;right:-6px;cursor:se-resize}.point.south{bottom:-6px;left:0;right:0;margin:auto;cursor:s-resize}.point.south-west{bottom:-6px;left:-6px;cursor:sw-resize}.point.west{top:0;bottom:0;left:-6px;margin:auto;cursor:w-resize}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
77
77
  }
78
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ResizerComponent, decorators: [{
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ResizerComponent, decorators: [{
79
79
  type: Component,
80
80
  args: [{ selector: 'app-resizer', changeDetection: ChangeDetectionStrategy.OnPush, template: "<span\n class=\"point north-west\"\n (mousedown)=\"onStartResizing($event, Direction.NorthWest)\"></span>\n<span\n class=\"point north\"\n (mousedown)=\"onStartResizing($event, Direction.North)\"></span>\n<span\n class=\"point north-east\"\n (mousedown)=\"onStartResizing($event, Direction.NorthEast)\"></span>\n<span\n class=\"point east\"\n (mousedown)=\"onStartResizing($event, Direction.East)\"></span>\n<span\n class=\"point south-east\"\n (mousedown)=\"onStartResizing($event, Direction.SouthEast)\"></span>\n<span\n class=\"point south\"\n (mousedown)=\"onStartResizing($event, Direction.South)\"></span>\n<span\n class=\"point south-west\"\n (mousedown)=\"onStartResizing($event, Direction.SouthWest)\"></span>\n<span\n class=\"point west\"\n (mousedown)=\"onStartResizing($event, Direction.West)\"></span>\n", styles: [":host{display:block;border:1px solid #616161}.point{position:absolute;width:12px;height:12px;border:1px solid #616161;border-radius:50%;background-color:#fff}.point.north-west{top:-6px;left:-6px;cursor:nw-resize}.point.north{top:-6px;left:0;right:0;margin:auto;cursor:n-resize}.point.north-east{top:-6px;right:-6px;cursor:ne-resize}.point.east{top:0;bottom:0;right:-6px;margin:auto;cursor:e-resize}.point.south-east{bottom:-6px;right:-6px;cursor:se-resize}.point.south{bottom:-6px;left:0;right:0;margin:auto;cursor:s-resize}.point.south-west{bottom:-6px;left:-6px;cursor:sw-resize}.point.west{top:0;bottom:0;left:-6px;margin:auto;cursor:w-resize}\n"] }]
81
81
  }], propDecorators: { width: [{
@@ -103,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
103
103
  type: HostListener,
104
104
  args: ['window:mouseup']
105
105
  }] } });
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9pbWFnZS9yZXNpemVyL3Jlc2l6ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvaW1hZ2UvcmVzaXplci9yZXNpemVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVE3QyxNQUFNLE9BQU8sZ0JBQWdCO0lBTjdCO1FBNEJhLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFVbEIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEMsY0FBUyxHQUFHLFNBQVMsQ0FBQztLQWtFbEM7SUFuR0csSUFDSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFDSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMs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QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFpQjtRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqRSxDQUFDOzhHQW5HUSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix1WUNmN0IsazJCQXdCQTs7MkZEVGEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs4QkFJM0MsS0FBSztzQkFEUixXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFNMUIsS0FBSztzQkFEUixXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFNckIsVUFBVTtzQkFBbEIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBUUksU0FBUztzQkFBbEIsTUFBTTtnQkFpQlAsV0FBVztzQkFEVixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW1COUMsU0FBUztzQkFEUixZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvb3JkaW5hdGUgfSBmcm9tICcuL2Nvb3JkaW5hdGUnO1xuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnLi9kaXJlY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25XcmFwcGVyIH0gZnJvbSAnLi9kaXJlY3Rpb24td3JhcHBlcic7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zaXplJztcbmltcG9ydCB7IFNpemVEZWx0YSB9IGZyb20gJy4vc2l6ZS1kZWx0YSc7XG5pbXBvcnQgeyBTaXplV3JhcHBlciB9IGZyb20gJy4vc2l6ZS13cmFwcGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcmVzaXplcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jlc2l6ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Jlc2l6ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgICBnZXQgd2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemUud2lkdGg7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKVxuICAgIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemUuaGVpZ2h0O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUucmlnaHQucHgnKVxuICAgIGdldCByaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24/LmluY2x1ZGVzV2VzdCgpID8gMCA6IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3R0b20ucHgnKVxuICAgIGdldCBib3R0b20oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaGFsZlBvaW50SGVpZ2h0ID0gNDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uPy5pbmNsdWRlc05vcnRoKCkgPyBoYWxmUG9pbnRIZWlnaHQgOiBudWxsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNpemUodmFsdWU6IFNpemUpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpcmVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc2l6ZSA9IG5ldyBTaXplV3JhcHBlcih2YWx1ZSwgeyB3aWR0aDogMSwgaGVpZ2h0OiAxIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3NpemU6IFNpemVXcmFwcGVyO1xuXG4gICAgQE91dHB1dCgpIHJlc2l6ZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2l6ZT4oKTtcblxuICAgIHJlYWRvbmx5IERpcmVjdGlvbiA9IERpcmVjdGlvbjtcblxuICAgIHByaXZhdGUgdmlydHVhbFJlY3RTaXplOiBTaXplV3JhcHBlcjtcblxuICAgIHByaXZhdGUgcHJldkNvb3JkaW5hdGU6IENvb3JkaW5hdGU7XG5cbiAgICBwcml2YXRlIGRpcmVjdGlvbjogRGlyZWN0aW9uV3JhcHBlcjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3NpemUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5pdGlhbCBzaXplIGlzIG5vdCBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gICAgb25Nb3VzZW1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpcmVjdGlvbiB8fCB0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy5nZXREZWx0YShldmVudCk7XG4gICAgICAgIHRoaXMuc2V0UHJldmlvdXNDb29yZGluYXRlKGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aW9uLmlzT3JkaW5hbCgpKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxSZWN0U2l6ZS5hcHBseURlbHRhKGRlbHRhKTtcbiAgICAgICAgICAgIHRoaXMuX3NpemUuZml0UHJvcG9ydGlvbmFsbHlUbyh0aGlzLnZpcnR1YWxSZWN0U2l6ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpcmVjdGlvbi5pc0hvcml6b250YWwoKSA/IHRoaXMudmlydHVhbFJlY3RTaXplLmFwcGx5RGVsdGFYKGRlbHRhKSA6IHRoaXMudmlydHVhbFJlY3RTaXplLmFwcGx5RGVsdGFZKGRlbHRhKTtcbiAgICAgICAgdGhpcy5fc2l6ZS5maXRUbyh0aGlzLnZpcnR1YWxSZWN0U2l6ZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1vdXNldXAnKVxuICAgIG9uTW91c2V1cCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpcmVjdGlvbiB8fCB0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZXNpemVFbmQuZW1pdCh0aGlzLl9zaXplLnRvU2l6ZSgpKTtcbiAgICB9XG5cbiAgICBvblN0YXJ0UmVzaXppbmcoZXZlbnQ6IE1vdXNlRXZlbnQsIGRpcmVjdGlvbjogRGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlydHVhbFJlY3RTaXplID0gbmV3IFNpemVXcmFwcGVyKHRoaXMuX3NpemUudG9TaXplKCkpO1xuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IG5ldyBEaXJlY3Rpb25XcmFwcGVyKGRpcmVjdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UHJldmlvdXNDb29yZGluYXRlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlbHRhKGV2ZW50OiBNb3VzZUV2ZW50KTogU2l6ZURlbHRhIHtcbiAgICAgICAgY29uc3QgcmF3RGVsdGFYID0gZXZlbnQuc2NyZWVuWCAtIHRoaXMucHJldkNvb3JkaW5hdGUueDtcbiAgICAgICAgY29uc3QgZGVsdGFYID0gdGhpcy5kaXJlY3Rpb24uaW5jbHVkZXNXZXN0KCkgPyAtcmF3RGVsdGFYIDogcmF3RGVsdGFYO1xuXG4gICAgICAgIGNvbnN0IHJhd0RlbHRhWSA9IGV2ZW50LnNjcmVlblkgLSB0aGlzLnByZXZDb29yZGluYXRlLnk7XG4gICAgICAgIGNvbnN0IGRlbHRhWSA9IHRoaXMuZGlyZWN0aW9uLmluY2x1ZGVzTm9ydGgoKSA/IC1yYXdEZWx0YVkgOiByYXdEZWx0YVk7XG5cbiAgICAgICAgcmV0dXJuIHsgZGVsdGFYLCBkZWx0YVkgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFByZXZpb3VzQ29vcmRpbmF0ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZDb29yZGluYXRlID0geyB4OiBldmVudC5zY3JlZW5YLCB5OiBldmVudC5zY3JlZW5ZIH07XG4gICAgfVxufVxuIiwiPHNwYW5cbiAgICBjbGFzcz1cInBvaW50IG5vcnRoLXdlc3RcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLk5vcnRoV2VzdClcIj48L3NwYW4+XG48c3BhblxuICAgIGNsYXNzPVwicG9pbnQgbm9ydGhcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLk5vcnRoKVwiPjwvc3Bhbj5cbjxzcGFuXG4gICAgY2xhc3M9XCJwb2ludCBub3J0aC1lYXN0XCJcbiAgICAobW91c2Vkb3duKT1cIm9uU3RhcnRSZXNpemluZygkZXZlbnQsIERpcmVjdGlvbi5Ob3J0aEVhc3QpXCI+PC9zcGFuPlxuPHNwYW5cbiAgICBjbGFzcz1cInBvaW50IGVhc3RcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLkVhc3QpXCI+PC9zcGFuPlxuPHNwYW5cbiAgICBjbGFzcz1cInBvaW50IHNvdXRoLWVhc3RcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLlNvdXRoRWFzdClcIj48L3NwYW4+XG48c3BhblxuICAgIGNsYXNzPVwicG9pbnQgc291dGhcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLlNvdXRoKVwiPjwvc3Bhbj5cbjxzcGFuXG4gICAgY2xhc3M9XCJwb2ludCBzb3V0aC13ZXN0XCJcbiAgICAobW91c2Vkb3duKT1cIm9uU3RhcnRSZXNpemluZygkZXZlbnQsIERpcmVjdGlvbi5Tb3V0aFdlc3QpXCI+PC9zcGFuPlxuPHNwYW5cbiAgICBjbGFzcz1cInBvaW50IHdlc3RcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLldlc3QpXCI+PC9zcGFuPlxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9pbWFnZS9yZXNpemVyL3Jlc2l6ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW5vZGVyL3NyYy9saWIvK3NoYXJlZC9lZGl0b3IvY3VzdG9tLWNvbXBvbmVudHMvaW1hZ2UvcmVzaXplci9yZXNpemVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVE3QyxNQUFNLE9BQU8sZ0JBQWdCO0lBTjdCO1FBNEJhLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFVbEIsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFdEMsY0FBUyxHQUFHLFNBQVMsQ0FBQztLQWtFbEM7SUFuR0csSUFDSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFDSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFDSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUMs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QyxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV2RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFpQjtRQUMzQyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqRSxDQUFDOytHQW5HUSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix1WUNmN0IsazJCQXdCQTs7NEZEVGEsZ0JBQWdCO2tCQU41QixTQUFTOytCQUNJLGFBQWEsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs4QkFJM0MsS0FBSztzQkFEUixXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFNMUIsS0FBSztzQkFEUixXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsTUFBTTtzQkFEVCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFNckIsVUFBVTtzQkFBbEIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBUUksU0FBUztzQkFBbEIsTUFBTTtnQkFpQlAsV0FBVztzQkFEVixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQW1COUMsU0FBUztzQkFEUixZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IENvb3JkaW5hdGUgfSBmcm9tICcuL2Nvb3JkaW5hdGUnO1xuaW1wb3J0IHsgRGlyZWN0aW9uIH0gZnJvbSAnLi9kaXJlY3Rpb24uZW51bSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25XcmFwcGVyIH0gZnJvbSAnLi9kaXJlY3Rpb24td3JhcHBlcic7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zaXplJztcbmltcG9ydCB7IFNpemVEZWx0YSB9IGZyb20gJy4vc2l6ZS1kZWx0YSc7XG5pbXBvcnQgeyBTaXplV3JhcHBlciB9IGZyb20gJy4vc2l6ZS13cmFwcGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtcmVzaXplcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3Jlc2l6ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3Jlc2l6ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoLnB4JylcbiAgICBnZXQgd2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemUud2lkdGg7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucHgnKVxuICAgIGdldCBoZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemUuaGVpZ2h0O1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnc3R5bGUucmlnaHQucHgnKVxuICAgIGdldCByaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXJlY3Rpb24/LmluY2x1ZGVzV2VzdCgpID8gMCA6IG51bGw7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5ib3R0b20ucHgnKVxuICAgIGdldCBib3R0b20oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgaGFsZlBvaW50SGVpZ2h0ID0gNDtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlyZWN0aW9uPy5pbmNsdWRlc05vcnRoKCkgPyBoYWxmUG9pbnRIZWlnaHQgOiBudWxsO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNpemUodmFsdWU6IFNpemUpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpcmVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fc2l6ZSA9IG5ldyBTaXplV3JhcHBlcih2YWx1ZSwgeyB3aWR0aDogMSwgaGVpZ2h0OiAxIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHByaXZhdGUgX3NpemU6IFNpemVXcmFwcGVyO1xuXG4gICAgQE91dHB1dCgpIHJlc2l6ZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8U2l6ZT4oKTtcblxuICAgIHJlYWRvbmx5IERpcmVjdGlvbiA9IERpcmVjdGlvbjtcblxuICAgIHByaXZhdGUgdmlydHVhbFJlY3RTaXplOiBTaXplV3JhcHBlcjtcblxuICAgIHByaXZhdGUgcHJldkNvb3JkaW5hdGU6IENvb3JkaW5hdGU7XG5cbiAgICBwcml2YXRlIGRpcmVjdGlvbjogRGlyZWN0aW9uV3JhcHBlcjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3NpemUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW5pdGlhbCBzaXplIGlzIG5vdCBzZXQnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50Om1vdXNlbW92ZScsIFsnJGV2ZW50J10pXG4gICAgb25Nb3VzZW1vdmUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpcmVjdGlvbiB8fCB0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlbHRhID0gdGhpcy5nZXREZWx0YShldmVudCk7XG4gICAgICAgIHRoaXMuc2V0UHJldmlvdXNDb29yZGluYXRlKGV2ZW50KTtcbiAgICAgICAgaWYgKHRoaXMuZGlyZWN0aW9uLmlzT3JkaW5hbCgpKSB7XG4gICAgICAgICAgICB0aGlzLnZpcnR1YWxSZWN0U2l6ZS5hcHBseURlbHRhKGRlbHRhKTtcbiAgICAgICAgICAgIHRoaXMuX3NpemUuZml0UHJvcG9ydGlvbmFsbHlUbyh0aGlzLnZpcnR1YWxSZWN0U2l6ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpcmVjdGlvbi5pc0hvcml6b250YWwoKSA/IHRoaXMudmlydHVhbFJlY3RTaXplLmFwcGx5RGVsdGFYKGRlbHRhKSA6IHRoaXMudmlydHVhbFJlY3RTaXplLmFwcGx5RGVsdGFZKGRlbHRhKTtcbiAgICAgICAgdGhpcy5fc2l6ZS5maXRUbyh0aGlzLnZpcnR1YWxSZWN0U2l6ZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93Om1vdXNldXAnKVxuICAgIG9uTW91c2V1cCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpcmVjdGlvbiB8fCB0aGlzLmlzRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gbnVsbDtcbiAgICAgICAgdGhpcy5yZXNpemVFbmQuZW1pdCh0aGlzLl9zaXplLnRvU2l6ZSgpKTtcbiAgICB9XG5cbiAgICBvblN0YXJ0UmVzaXppbmcoZXZlbnQ6IE1vdXNlRXZlbnQsIGRpcmVjdGlvbjogRGlyZWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGlmIChldmVudC5idXR0b24gIT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmlydHVhbFJlY3RTaXplID0gbmV3IFNpemVXcmFwcGVyKHRoaXMuX3NpemUudG9TaXplKCkpO1xuICAgICAgICB0aGlzLmRpcmVjdGlvbiA9IG5ldyBEaXJlY3Rpb25XcmFwcGVyKGRpcmVjdGlvbik7XG4gICAgICAgIHRoaXMuc2V0UHJldmlvdXNDb29yZGluYXRlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldERlbHRhKGV2ZW50OiBNb3VzZUV2ZW50KTogU2l6ZURlbHRhIHtcbiAgICAgICAgY29uc3QgcmF3RGVsdGFYID0gZXZlbnQuc2NyZWVuWCAtIHRoaXMucHJldkNvb3JkaW5hdGUueDtcbiAgICAgICAgY29uc3QgZGVsdGFYID0gdGhpcy5kaXJlY3Rpb24uaW5jbHVkZXNXZXN0KCkgPyAtcmF3RGVsdGFYIDogcmF3RGVsdGFYO1xuXG4gICAgICAgIGNvbnN0IHJhd0RlbHRhWSA9IGV2ZW50LnNjcmVlblkgLSB0aGlzLnByZXZDb29yZGluYXRlLnk7XG4gICAgICAgIGNvbnN0IGRlbHRhWSA9IHRoaXMuZGlyZWN0aW9uLmluY2x1ZGVzTm9ydGgoKSA/IC1yYXdEZWx0YVkgOiByYXdEZWx0YVk7XG5cbiAgICAgICAgcmV0dXJuIHsgZGVsdGFYLCBkZWx0YVkgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFByZXZpb3VzQ29vcmRpbmF0ZShldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnByZXZDb29yZGluYXRlID0geyB4OiBldmVudC5zY3JlZW5YLCB5OiBldmVudC5zY3JlZW5ZIH07XG4gICAgfVxufVxuIiwiPHNwYW5cbiAgICBjbGFzcz1cInBvaW50IG5vcnRoLXdlc3RcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLk5vcnRoV2VzdClcIj48L3NwYW4+XG48c3BhblxuICAgIGNsYXNzPVwicG9pbnQgbm9ydGhcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLk5vcnRoKVwiPjwvc3Bhbj5cbjxzcGFuXG4gICAgY2xhc3M9XCJwb2ludCBub3J0aC1lYXN0XCJcbiAgICAobW91c2Vkb3duKT1cIm9uU3RhcnRSZXNpemluZygkZXZlbnQsIERpcmVjdGlvbi5Ob3J0aEVhc3QpXCI+PC9zcGFuPlxuPHNwYW5cbiAgICBjbGFzcz1cInBvaW50IGVhc3RcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLkVhc3QpXCI+PC9zcGFuPlxuPHNwYW5cbiAgICBjbGFzcz1cInBvaW50IHNvdXRoLWVhc3RcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLlNvdXRoRWFzdClcIj48L3NwYW4+XG48c3BhblxuICAgIGNsYXNzPVwicG9pbnQgc291dGhcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLlNvdXRoKVwiPjwvc3Bhbj5cbjxzcGFuXG4gICAgY2xhc3M9XCJwb2ludCBzb3V0aC13ZXN0XCJcbiAgICAobW91c2Vkb3duKT1cIm9uU3RhcnRSZXNpemluZygkZXZlbnQsIERpcmVjdGlvbi5Tb3V0aFdlc3QpXCI+PC9zcGFuPlxuPHNwYW5cbiAgICBjbGFzcz1cInBvaW50IHdlc3RcIlxuICAgIChtb3VzZWRvd24pPVwib25TdGFydFJlc2l6aW5nKCRldmVudCwgRGlyZWN0aW9uLldlc3QpXCI+PC9zcGFuPlxuIl19
@@ -5,10 +5,10 @@ export class ImageApiService extends BaseApiService {
5
5
  getFile(source) {
6
6
  return this.httpGetBlob(source);
7
7
  }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ImageApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
9
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ImageApiService }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageApiService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
9
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageApiService }); }
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: ImageApiService, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ImageApiService, decorators: [{
12
12
  type: Injectable
13
13
  }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9pbWFnZS9zZXJ2aWNlcy9pbWFnZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFHdkUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQUMvQyxPQUFPLENBQUMsTUFBYztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs4R0FIUSxlQUFlO2tIQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJhc2VBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vYWJzdHJhY3QvYmFzZS1hcGkuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbWFnZUFwaVNlcnZpY2UgZXh0ZW5kcyBCYXNlQXBpU2VydmljZSB7XG4gICAgZ2V0RmlsZShzb3VyY2U6IHN0cmluZyk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwR2V0QmxvYihzb3VyY2UpO1xuICAgIH1cbn1cbiJdfQ==
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbm9kZXIvc3JjL2xpYi8rc2hhcmVkL2VkaXRvci9jdXN0b20tY29tcG9uZW50cy9pbWFnZS9zZXJ2aWNlcy9pbWFnZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7QUFHdkUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsY0FBYztJQUMvQyxPQUFPLENBQUMsTUFBYztRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FIUSxlQUFlO21IQUFmLGVBQWU7OzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEJhc2VBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vYWJzdHJhY3QvYmFzZS1hcGkuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBJbWFnZUFwaVNlcnZpY2UgZXh0ZW5kcyBCYXNlQXBpU2VydmljZSB7XG4gICAgZ2V0RmlsZShzb3VyY2U6IHN0cmluZyk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5odHRwR2V0QmxvYihzb3VyY2UpO1xuICAgIH1cbn1cbiJdfQ==