@progressio_resources/gravity-design-system 3.0.24 → 4.0.25

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 (79) hide show
  1. package/esm2022/lib/components/gravity-attach-file/gravity-attach-file.component.mjs +2 -2
  2. package/esm2022/lib/components/gravity-avatar-stack/gravity-avatar-stack.component.mjs +2 -2
  3. package/esm2022/lib/components/gravity-button/gravity-button.component.mjs +2 -2
  4. package/esm2022/lib/components/gravity-calendar/gravity-calendar.component.mjs +2 -2
  5. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker-inline.component.mjs +3 -2
  6. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-datepicker.component.mjs +3 -2
  7. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker-inline.component.mjs +3 -2
  8. package/esm2022/lib/components/gravity-calendar-v2/datepicker/bs-daterangepicker.component.mjs +3 -2
  9. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-container.component.mjs +2 -2
  10. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-inline-container.component.mjs +2 -2
  11. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-datepicker-navigation-view/bs-datepicker-navigation-view.component.mjs +2 -2
  12. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-container.component.mjs +2 -2
  13. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-daterangepicker-inline-container.component.mjs +2 -2
  14. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-datepicker-day-decorator.directive.mjs +3 -2
  15. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-days-calendar-view/bs-days-calendar-view.component.mjs +2 -2
  16. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-months-calendar-view/bs-months-calendar-view.component.mjs +2 -2
  17. package/esm2022/lib/components/gravity-calendar-v2/datepicker/components/bs-years-calendar-view/bs-years-calendar-view.component.mjs +2 -2
  18. package/esm2022/lib/components/gravity-calendar-v2/gravity-calendar-v2.component.mjs +2 -2
  19. package/esm2022/lib/components/gravity-card-button/gravity-card-button.component.mjs +2 -2
  20. package/esm2022/lib/components/gravity-card-list/gravity-card-list.component.mjs +3 -3
  21. package/esm2022/lib/components/gravity-checkbox/gravity-checkbox.component.mjs +2 -2
  22. package/esm2022/lib/components/gravity-chip/gravity-chip.component.mjs +2 -2
  23. package/esm2022/lib/components/gravity-currency/gravity-currency.component.mjs +2 -2
  24. package/esm2022/lib/components/gravity-currency-display/gravity-currency-display.component.mjs +2 -2
  25. package/esm2022/lib/components/gravity-dialog/gravity-dialog.component.mjs +2 -2
  26. package/esm2022/lib/components/gravity-dropdown-list/filter-by.pipe.mjs +3 -2
  27. package/esm2022/lib/components/gravity-dropdown-list/gravity-dropdown-list.component.mjs +3 -3
  28. package/esm2022/lib/components/gravity-dropdown-list-display/gravity-dropdown-list-display.component.mjs +2 -2
  29. package/esm2022/lib/components/gravity-editable-input/gravity-editable-input.component.mjs +2 -2
  30. package/esm2022/lib/components/gravity-generic-avatar/gravity-generic-avatar.component.mjs +2 -2
  31. package/esm2022/lib/components/gravity-icon/gravity-icon.component.mjs +3 -3
  32. package/esm2022/lib/components/gravity-icon-button/gravity-icon-button.component.mjs +2 -2
  33. package/esm2022/lib/components/gravity-link/gravity-link.component.mjs +3 -5
  34. package/esm2022/lib/components/gravity-modal/gravity-modal.component.mjs +3 -3
  35. package/esm2022/lib/components/gravity-multi-language/gravity-multi-language.component.mjs +2 -2
  36. package/esm2022/lib/components/gravity-network-pill/gravity-network-pill.component.mjs +2 -2
  37. package/esm2022/lib/components/gravity-notification/gravity-notification.component.mjs +2 -2
  38. package/esm2022/lib/components/gravity-notification-instant/gravity-notification-instant-container.component.mjs +2 -2
  39. package/esm2022/lib/components/gravity-offcanvas/gravity-offcanvas.component.mjs +2 -2
  40. package/esm2022/lib/components/gravity-radio-button/gravity-radio-button.component.mjs +2 -2
  41. package/esm2022/lib/components/gravity-status-indicator/gravity-status-indicator.component.mjs +2 -2
  42. package/esm2022/lib/components/gravity-stepper/gravity-stepper.component.mjs +2 -2
  43. package/esm2022/lib/components/gravity-switch/gravity-switch.component.mjs +3 -3
  44. package/esm2022/lib/components/gravity-tab-primary/gravity-tab-primary.component.mjs +2 -2
  45. package/esm2022/lib/components/gravity-tab-secondary/gravity-tab-secondary.component.mjs +2 -2
  46. package/esm2022/lib/components/gravity-table/gravity-table.component.mjs +2 -2
  47. package/esm2022/lib/components/gravity-text-field/gravity-text-field.component.mjs +2 -2
  48. package/esm2022/lib/components/gravity-text-field-number-only/gravity-text-field-number-only.component.mjs +2 -2
  49. package/esm2022/lib/components/gravity-tree-view/gravity-tree-view.component.mjs +2 -2
  50. package/esm2022/lib/components/gravity-tree-view/node/node-checkbox/node-checkbox.component.mjs +2 -2
  51. package/esm2022/lib/components/gravity-tree-view/node/node-name/node-name.component.mjs +2 -2
  52. package/esm2022/lib/components/gravity-tree-view/node/node-toggle/node-toggle.component.mjs +2 -2
  53. package/esm2022/lib/components/gravity-tree-view/node/node.component.mjs +2 -2
  54. package/esm2022/lib/gravity-design-system.module.mjs +1 -1
  55. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.component.mjs +2 -2
  56. package/esm2022/lib/vendor/gravity-tooltip/gravity-tooltip.directive.mjs +2 -1
  57. package/fesm2022/progressio_resources-gravity-design-system.mjs +67 -62
  58. package/fesm2022/progressio_resources-gravity-design-system.mjs.map +1 -1
  59. package/lib/components/gravity-link/gravity-link.component.d.ts +1 -2
  60. package/lib/components/gravity-switch/gravity-switch.component.d.ts +2 -0
  61. package/package.json +8 -8
  62. package/src/lib/styles/_responsive.scss +12 -11
  63. package/src/lib/styles/components/_card_highlight.scss +5 -5
  64. package/src/lib/styles/components/_datepicker.scss +14 -13
  65. package/src/lib/styles/components/_offcanvas.scss +5 -4
  66. package/src/lib/styles/components/_tables.scss +7 -7
  67. package/src/lib/styles/foundations/colors/themes/_hero.theme.scss +542 -542
  68. package/src/lib/styles/foundations/colors/tokens/_hero.tokens.scss +545 -544
  69. package/src/lib/styles/foundations/spacing/_spacing.scss +3 -1
  70. package/src/lib/styles/gravity-design-system.scss +12 -12
  71. package/src/lib/styles/overwrite/bootstrap/_bootstrap-export.scss +2 -2
  72. package/src/lib/styles/overwrite/bootstrap/_modal.scss +2 -2
  73. package/src/lib/styles/themes/_hero.scss +4 -4
  74. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.component.ts +5 -4
  75. package/src/lib/vendor/gravity-tooltip/gravity-tooltip.directive.ts +3 -2
  76. package/src/lib/assets/icon-set/gt-icon-arrow-up/gt-icon-switch-lg-24.svg +0 -10
  77. package/src/lib/assets/icon-set/gt-icon-arrow-up/gt-icon-switch-md-16.svg +0 -10
  78. package/src/lib/assets/icon-set/gt-icon-arrow-up/gt-icon-switch-sm-12.svg +0 -10
  79. package/src/lib/assets/icon-set/gt-icon-arrow-up/gt-icon-switch-xl-32.svg +0 -10
@@ -197,7 +197,7 @@ export class GravityTooltipComponent {
197
197
  }
198
198
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GravityTooltipComponent, decorators: [{
199
199
  type: Component,
200
- args: [{ selector: 'tooltip', host: { 'class': 'tooltip' }, template: "<div *ngIf=\"isThemeLight\" class=\"tooltip-arrow\"></div>\n\n<div *ngIf=\"options['contentType'] === 'template' else htmlOrStringTemplate\">\n <ng-container *ngTemplateOutlet=\"value\"></ng-container>\n</div>\n\n<ng-template #htmlOrStringTemplate>\n <div [innerHTML]=\"value\"></div>\n</ng-template>\n", styles: [":host{max-width:200px;background-color:var(--bg-tooltip-primary);color:var(--on-bg-tooltip-primary);text-align:center;border-radius:6px;padding:5px 8px;position:absolute;pointer-events:none;z-index:1000;display:block;opacity:0;transition:opacity .3s;top:0;left:0}:host.tooltip-show{opacity:1}:host.tooltip-shadow{box-shadow:0 7px 15px -5px #0006}:host.tooltip-light.tooltip-shadow{box-shadow:0 5px 15px -5px #0006}:host.tooltip:after{content:\"\";position:absolute;border-style:solid}:host.tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:var(--bg-tooltip-primary) transparent transparent transparent}:host.tooltip-top-left:after{top:100%;left:10%;margin-left:-5px;border-width:5px;border-color:var(--bg-tooltip-primary) transparent transparent transparent}:host.tooltip-top-right:after{top:100%;left:90%;margin-left:-5px;border-width:5px;border-color:var(--bg-tooltip-primary) transparent transparent transparent}:host.tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent var(--bg-tooltip-primary) transparent}:host.tooltip-bottom-left:after{bottom:100%;left:10%;margin-left:-5px;border-width:5px;border-color:transparent transparent var(--bg-tooltip-primary) transparent}:host.tooltip-bottom-right:after{bottom:100%;left:90%;margin-left:-5px;border-width:5px;border-color:transparent transparent var(--bg-tooltip-primary) transparent}:host.tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--bg-tooltip-primary)}:host.tooltip-left-top:after{top:10%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--bg-tooltip-primary)}:host.tooltip-left-bottom:after{top:90%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--bg-tooltip-primary)}:host.tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent var(--bg-tooltip-primary) transparent transparent}:host.tooltip-right-top:after{top:10%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent var(--bg-tooltip-primary) transparent transparent}:host.tooltip-right-bottom:after{top:90%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent var(--bg-tooltip-primary) transparent transparent}:host.tooltip-light:after{display:none}:host.tooltip-light{border:1px solid rgba(0,0,0,.06);background-color:#fff;color:#000}:host.tooltip-light .tooltip-arrow{position:absolute;width:10px;height:10px;transform:rotate(135deg);background-color:#00000012}:host.tooltip-light .tooltip-arrow:after{background-color:#fff;content:\"\";display:block;position:absolute;width:10px;height:10px}:host.tooltip-top.tooltip-light{margin-top:-2px}:host.tooltip-top.tooltip-light .tooltip-arrow{top:100%;left:50%;margin-top:-4px;margin-left:-5px;background:linear-gradient(to bottom left,rgba(0,0,0,.07) 50%,transparent 50%)}:host.tooltip-top.tooltip-light .tooltip-arrow:after{top:1px;right:1px}:host.tooltip-bottom.tooltip-light .tooltip-arrow{bottom:100%;left:50%;margin-bottom:-4px;margin-left:-5px;background:linear-gradient(to top right,rgba(0,0,0,.1) 50%,transparent 50%)}:host.tooltip-bottom.tooltip-light .tooltip-arrow:after{top:-1px;right:-1px}:host.tooltip-left.tooltip-light .tooltip-arrow{top:50%;left:100%;margin-top:-5px;margin-left:-4px;background:linear-gradient(to bottom right,rgba(0,0,0,.07) 50%,transparent 50%)}:host.tooltip-left.tooltip-light .tooltip-arrow:after{top:1px;right:-1px}:host.tooltip-right.tooltip-light .tooltip-arrow{top:50%;right:100%;margin-top:-5px;margin-right:-4px;background:linear-gradient(to top left,rgba(0,0,0,.07) 50%,transparent 50%)}:host.tooltip-right.tooltip-light .tooltip-arrow:after{top:-1px;right:1px}\n"] }]
200
+ args: [{ selector: 'tooltip', host: { 'class': 'tooltip' }, standalone: false, template: "<div *ngIf=\"isThemeLight\" class=\"tooltip-arrow\"></div>\n\n<div *ngIf=\"options['contentType'] === 'template' else htmlOrStringTemplate\">\n <ng-container *ngTemplateOutlet=\"value\"></ng-container>\n</div>\n\n<ng-template #htmlOrStringTemplate>\n <div [innerHTML]=\"value\"></div>\n</ng-template>\n", styles: [":host{max-width:200px;background-color:var(--bg-tooltip-primary);color:var(--on-bg-tooltip-primary);text-align:center;border-radius:6px;padding:5px 8px;position:absolute;pointer-events:none;z-index:1000;display:block;opacity:0;transition:opacity .3s;top:0;left:0}:host.tooltip-show{opacity:1}:host.tooltip-shadow{box-shadow:0 7px 15px -5px #0006}:host.tooltip-light.tooltip-shadow{box-shadow:0 5px 15px -5px #0006}:host.tooltip:after{content:\"\";position:absolute;border-style:solid}:host.tooltip-top:after{top:100%;left:50%;margin-left:-5px;border-width:5px;border-color:var(--bg-tooltip-primary) transparent transparent transparent}:host.tooltip-top-left:after{top:100%;left:10%;margin-left:-5px;border-width:5px;border-color:var(--bg-tooltip-primary) transparent transparent transparent}:host.tooltip-top-right:after{top:100%;left:90%;margin-left:-5px;border-width:5px;border-color:var(--bg-tooltip-primary) transparent transparent transparent}:host.tooltip-bottom:after{bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-color:transparent transparent var(--bg-tooltip-primary) transparent}:host.tooltip-bottom-left:after{bottom:100%;left:10%;margin-left:-5px;border-width:5px;border-color:transparent transparent var(--bg-tooltip-primary) transparent}:host.tooltip-bottom-right:after{bottom:100%;left:90%;margin-left:-5px;border-width:5px;border-color:transparent transparent var(--bg-tooltip-primary) transparent}:host.tooltip-left:after{top:50%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--bg-tooltip-primary)}:host.tooltip-left-top:after{top:10%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--bg-tooltip-primary)}:host.tooltip-left-bottom:after{top:90%;left:100%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--bg-tooltip-primary)}:host.tooltip-right:after{top:50%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent var(--bg-tooltip-primary) transparent transparent}:host.tooltip-right-top:after{top:10%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent var(--bg-tooltip-primary) transparent transparent}:host.tooltip-right-bottom:after{top:90%;right:100%;margin-top:-5px;border-width:5px;border-color:transparent var(--bg-tooltip-primary) transparent transparent}:host.tooltip-light:after{display:none}:host.tooltip-light{border:1px solid rgba(0,0,0,.06);background-color:#fff;color:#000}:host.tooltip-light .tooltip-arrow{position:absolute;width:10px;height:10px;transform:rotate(135deg);background-color:#00000012}:host.tooltip-light .tooltip-arrow:after{background-color:#fff;content:\"\";display:block;position:absolute;width:10px;height:10px}:host.tooltip-top.tooltip-light{margin-top:-2px}:host.tooltip-top.tooltip-light .tooltip-arrow{top:100%;left:50%;margin-top:-4px;margin-left:-5px;background:linear-gradient(to bottom left,rgba(0,0,0,.07) 50%,transparent 50%)}:host.tooltip-top.tooltip-light .tooltip-arrow:after{top:1px;right:1px}:host.tooltip-bottom.tooltip-light .tooltip-arrow{bottom:100%;left:50%;margin-bottom:-4px;margin-left:-5px;background:linear-gradient(to top right,rgba(0,0,0,.1) 50%,transparent 50%)}:host.tooltip-bottom.tooltip-light .tooltip-arrow:after{top:-1px;right:-1px}:host.tooltip-left.tooltip-light .tooltip-arrow{top:50%;left:100%;margin-top:-5px;margin-left:-4px;background:linear-gradient(to bottom right,rgba(0,0,0,.07) 50%,transparent 50%)}:host.tooltip-left.tooltip-light .tooltip-arrow:after{top:1px;right:-1px}:host.tooltip-right.tooltip-light .tooltip-arrow{top:50%;right:100%;margin-top:-5px;margin-right:-4px;background:linear-gradient(to top left,rgba(0,0,0,.07) 50%,transparent 50%)}:host.tooltip-right.tooltip-light .tooltip-arrow:after{top:-1px;right:1px}\n"] }]
201
201
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; }, propDecorators: { data: [{
202
202
  type: Input
203
203
  }], hostStyleTop: [{
@@ -236,4 +236,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
236
236
  }], show: [{
237
237
  type: Input
238
238
  }] } });
239
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQzs7O0FBU3ZILE1BQU0sT0FBTyx1QkFBdUI7SUFrQmxDLGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDZixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELElBQWEsSUFBSSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEs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QUM7Z0JBUzVCLElBQUk7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0b29sdGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXZpdHktdG9vbHRpcC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHsnY2xhc3MnOiAndG9vbHRpcCd9LFxuICBzdHlsZVVybHM6IFsnLi9ncmF2aXR5LXRvb2x0aXAuY29tcG9uZW50LnNhc3MnXVxufSlcblxuZXhwb3J0IGNsYXNzIEdyYXZpdHlUb29sdGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgX3Nob3c6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcblxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnRvcCcpIGhvc3RTdHlsZVRvcCE6IHN0cmluZztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5sZWZ0JykgaG9zdFN0eWxlTGVmdCE6IHN0cmluZztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS56LWluZGV4JykgaG9zdFN0eWxlWkluZGV4ITogbnVtYmVyO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnRyYW5zaXRpb24nKSBob3N0U3R5bGVUcmFuc2l0aW9uITogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJykgaG9zdFN0eWxlV2lkdGghOiBzdHJpbmc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUubWF4LXdpZHRoJykgaG9zdFN0eWxlTWF4V2lkdGghOiBzdHJpbmc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUucG9pbnRlci1ldmVudHMnKSBob3N0U3R5bGVQb2ludGVyRXZlbnRzITogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRvb2x0aXAtc2hvdycpIGhvc3RDbGFzc1Nob3chOiBib29sZWFuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRvb2x0aXAtc2hhZG93JykgaG9zdENsYXNzU2hhZG93ITogYm9vbGVhbjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy50b29sdGlwLWxpZ2h0JykgaG9zdENsYXNzTGlnaHQhOiBib29sZWFuO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ3RyYW5zaXRpb25lbmQnLCBbJyRldmVudCddKVxuICB0cmFuc2l0aW9uRW5kKCkge1xuICAgIGlmICh0aGlzLnNob3cpIHtcbiAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICB0eXBlOiAnc2hvd24nXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKSBzZXQgc2hvdyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZXRQb3NpdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLl9zaG93ID0gdGhpcy5ob3N0Q2xhc3NTaG93ID0gdmFsdWU7XG4gIH1cblxuICBnZXQgc2hvdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvdztcbiAgfVxuXG4gIGdldCBwbGFjZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5vcHRpb25zLnBsYWNlbWVudDtcbiAgfVxuXG4gIGdldCBhdXRvUGxhY2VtZW50KCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEub3B0aW9ucy5hdXRvUGxhY2VtZW50O1xuICB9XG5cbiAgZ2V0IGVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5lbGVtZW50O1xuICB9XG5cbiAgZ2V0IGVsZW1lbnRQb3NpdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmVsZW1lbnRQb3NpdGlvbjtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEub3B0aW9ucztcbiAgfVxuXG4gIGdldCB2YWx1ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLnZhbHVlO1xuICB9XG5cbiAgZ2V0IHRvb2x0aXBPZmZzZXQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTnVtYmVyKHRoaXMuZGF0YS5vcHRpb25zLm9mZnNldCk7XG4gIH1cblxuICBnZXQgaXNUaGVtZUxpZ2h0KCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnNbJ3RoZW1lJ10gPT09ICdsaWdodCc7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRDdXN0b21DbGFzcygpO1xuICAgIHRoaXMuc2V0U3R5bGVzKCk7XG4gIH1cblxuICBzZXRQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZXRIb3N0U3R5bGUodGhpcy5wbGFjZW1lbnQpKSB7XG4gICAgICB0aGlzLnNldFBsYWNlbWVudENsYXNzKHRoaXMucGxhY2VtZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgLyogSXMgdG9vbHRpcCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEgKi9cbiAgICAgIGNvbnN0IHBsYWNlbWVudHMgPSBbJ3RvcCcsICd0b3AtbGVmdCcsICd0b3AtcmlnaHQnLCAncmlnaHQnLCAncmlnaHQtdG9wJywgJ3JpZ2h0LWJvdHRvbScsICdib3R0b20nLCAnYm90dG9tLXJpZ2h0JywgJ2JvdHRvbS1sZWZ0JywgJ2xlZnQnLCAnbGVmdC10b3AnLCAnbGVmdC1ib3R0b20nXTtcbiAgICAgIGxldCBpc1BsYWNlbWVudFNldDtcblxuICAgICAgZm9yIChjb25zdCBwbGFjZW1lbnQgb2YgcGxhY2VtZW50cykge1xuICAgICAgICBpZiAodGhpcy5zZXRIb3N0U3R5bGUocGxhY2VtZW50KSkge1xuICAgICAgICAgIHRoaXMuc2V0UGxhY2VtZW50Q2xhc3MocGxhY2VtZW50KTtcbiAgICAgICAgICBpc1BsYWNlbWVudFNldCA9IHRydWU7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8qIFNldCBvcmlnaW5hbCBwbGFjZW1lbnQgKi9cbiAgICAgIGlmICghaXNQbGFjZW1lbnRTZXQpIHtcbiAgICAgICAgdGhpcy5zZXRIb3N0U3R5bGUodGhpcy5wbGFjZW1lbnQsIHRydWUpO1xuICAgICAgICB0aGlzLnNldFBsYWNlbWVudENsYXNzKHRoaXMucGxhY2VtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuXG4gIHNldFBsYWNlbWVudENsYXNzKHBsYWNlbWVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ3Rvb2x0aXAtJyArIHBsYWNlbWVudCk7XG4gIH1cblxuICBzZXRIb3N0U3R5bGUocGxhY2VtZW50OiBzdHJpbmcsIGRpc2FibGVBdXRvUGxhY2VtZW50OiBib29sZWFuID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1N2ZyA9IHRoaXMuZWxlbWVudCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQ7XG4gICAgY29uc3QgdG9vbHRpcCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGlzQ3VzdG9tUG9zaXRpb24gPSAhdGhpcy5lbGVtZW50UG9zaXRpb24ucmlnaHQ7XG5cbiAgICBsZXQgZWxlbWVudEhlaWdodCA9IGlzU3ZnID8gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCA6IHRoaXMuZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG4gICAgbGV0IGVsZW1lbnRXaWR0aCA9IGlzU3ZnID8gdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIDogdGhpcy5lbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgIGNvbnN0IHRvb2x0aXBIZWlnaHQgPSB0b29sdGlwLmNsaWVudEhlaWdodDtcbiAgICBjb25zdCB0b29sdGlwV2lkdGggPSB0b29sdGlwLmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IHNjcm9sbFkgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG5cbiAgICBpZiAoaXNDdXN0b21Qb3NpdGlvbikge1xuICAgICAgZWxlbWVudEhlaWdodCA9IDA7XG4gICAgICBlbGVtZW50V2lkdGggPSAwO1xuICAgIH1cblxuICAgIGxldCB0b3BTdHlsZTtcbiAgICBsZXQgbGVmdFN0eWxlO1xuXG4gICAgc3dpdGNoIChwbGFjZW1lbnQpIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRvcFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcCArIHNjcm9sbFkpIC0gKHRvb2x0aXBIZWlnaHQgKyB0aGlzLnRvb2x0aXBPZmZzZXQpO1xuICAgICAgICBsZWZ0U3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCAvIDIpIC0gdG9vbHRpcFdpZHRoIC8gMjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AtbGVmdCc6XG4gICAgICAgIHRvcFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcCArIHNjcm9sbFkpIC0gKHRvb2x0aXBIZWlnaHQgKyB0aGlzLnRvb2x0aXBPZmZzZXQpO1xuICAgICAgICBsZWZ0U3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCAvIDIpIC0gKHRvb2x0aXBXaWR0aCAqIDAuMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSkgLSAodG9vbHRpcEhlaWdodCArIHRoaXMudG9vbHRpcE9mZnNldCk7XG4gICAgICAgIGxlZnRTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoIC8gMikgLSAodG9vbHRpcFdpZHRoICogMC45KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20nOlxuICAgICAgICB0b3BTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi50b3AgKyBzY3JvbGxZKSArIGVsZW1lbnRIZWlnaHQgKyB0aGlzLnRvb2x0aXBPZmZzZXQ7XG4gICAgICAgIGxlZnRTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoIC8gMikgLSB0b29sdGlwV2lkdGggLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbS1sZWZ0JzpcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSkgKyBlbGVtZW50SGVpZ2h0ICsgdGhpcy50b29sdGlwT2Zmc2V0O1xuICAgICAgICBsZWZ0U3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCAvIDIpIC0gKHRvb2x0aXBXaWR0aCAqIDAuMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tLXJpZ2h0JzpcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSkgKyBlbGVtZW50SGVpZ2h0ICsgdGhpcy50b29sdGlwT2Zmc2V0O1xuICAgICAgICBsZWZ0U3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCAvIDIpIC0gKHRvb2x0aXBXaWR0aCAqIDAuOSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGVmdCc6XG4gICAgICAgIGxlZnRTdHlsZSA9IHRoaXMuZWxlbWVudFBvc2l0aW9uLmxlZnQgLSB0b29sdGlwV2lkdGggLSB0aGlzLnRvb2x0aXBPZmZzZXQ7XG4gICAgICAgIHRvcFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcCArIHNjcm9sbFkpICsgZWxlbWVudEhlaWdodCAvIDIgLSB0b29sdGlwSGVpZ2h0IC8gMjtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0LXRvcCc6XG4gICAgICAgIGxlZnRTdHlsZSA9IHRoaXMuZWxlbWVudFBvc2l0aW9uLmxlZnQgLSB0b29sdGlwV2lkdGggLSB0aGlzLnRvb2x0aXBPZmZzZXQ7XG4gICAgICAgIHRvcFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcCArIHNjcm9sbFkgKyBlbGVtZW50SGVpZ2h0IC8gMikgLSAodG9vbHRpcEhlaWdodCAqIDAuMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbGVmdC1ib3R0b20nOlxuICAgICAgICBsZWZ0U3R5bGUgPSB0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0IC0gdG9vbHRpcFdpZHRoIC0gdGhpcy50b29sdGlwT2Zmc2V0O1xuICAgICAgICB0b3BTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi50b3AgKyBzY3JvbGxZICsgZWxlbWVudEhlaWdodCAvIDIpIC0gKHRvb2x0aXBIZWlnaHQgKiAwLjkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgbGVmdFN0eWxlID0gdGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCArIHRoaXMudG9vbHRpcE9mZnNldDtcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSkgKyBlbGVtZW50SGVpZ2h0IC8gMiAtIHRvb2x0aXBIZWlnaHQgLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3JpZ2h0LXRvcCc6XG4gICAgICAgIGxlZnRTdHlsZSA9IHRoaXMuZWxlbWVudFBvc2l0aW9uLmxlZnQgKyBlbGVtZW50V2lkdGggKyB0aGlzLnRvb2x0aXBPZmZzZXQ7XG4gICAgICAgIHRvcFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcCArIHNjcm9sbFkgKyBlbGVtZW50SGVpZ2h0IC8gMikgLSAodG9vbHRpcEhlaWdodCAqIDAuMSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQtYm90dG9tJzpcbiAgICAgICAgbGVmdFN0eWxlID0gdGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCArIHRoaXMudG9vbHRpcE9mZnNldDtcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSArIGVsZW1lbnRIZWlnaHQgLyAyKSAtICh0b29sdGlwSGVpZ2h0ICogMC45KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLyogSXMgdG9vbHRpcCBvdXRzaWRlIHRoZSB2aXNpYmxlIGFyZWEgKi9cbiAgICBpZiAodGhpcy5hdXRvUGxhY2VtZW50ICYmICFkaXNhYmxlQXV0b1BsYWNlbWVudCkge1xuICAgICAgY29uc3QgdG9wRWRnZSA9IHRvcFN0eWxlO1xuICAgICAgY29uc3QgYm90dG9tRWRnZSA9IHRvcFN0eWxlICsgdG9vbHRpcEhlaWdodDtcbiAgICAgIGNvbnN0IGxlZnRFZGdlID0gbGVmdFN0eWxlO1xuICAgICAgY29uc3QgcmlnaHRFZGdlID0gbGVmdFN0eWxlICsgdG9vbHRpcFdpZHRoO1xuICAgICAgY29uc3QgYm9keUhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCArIHNjcm9sbFk7XG4gICAgICBjb25zdCBib2R5V2lkdGggPSBkb2N1bWVudC5ib2R5LmNsaWVudFdpZHRoO1xuXG4gICAgICBpZiAodG9wRWRnZSA8IDAgfHwgYm90dG9tRWRnZSA+IGJvZHlIZWlnaHQgfHwgbGVmdEVkZ2UgPCAwIHx8IHJpZ2h0RWRnZSA+IGJvZHlXaWR0aCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5ob3N0U3R5bGVUb3AgPSB0b3BTdHlsZSArICdweCc7XG4gICAgdGhpcy5ob3N0U3R5bGVMZWZ0ID0gbGVmdFN0eWxlICsgJ3B4JztcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHNldFpJbmRleCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWyd6SW5kZXgnXSAhPT0gMCkge1xuICAgICAgdGhpcy5ob3N0U3R5bGVaSW5kZXggPSB0aGlzLm9wdGlvbnNbJ3pJbmRleCddO1xuICAgIH1cbiAgfVxuXG4gIHNldFBvaW50ZXJFdmVudHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1sncG9pbnRlckV2ZW50cyddKSB7XG4gICAgICB0aGlzLmhvc3RTdHlsZVBvaW50ZXJFdmVudHMgPSB0aGlzLm9wdGlvbnNbJ3BvaW50ZXJFdmVudHMnXTtcbiAgICB9XG4gIH1cblxuICBzZXRDdXN0b21DbGFzcygpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWyd0b29sdGlwQ2xhc3MnXSkge1xuICAgICAgdGhpcy5vcHRpb25zWyd0b29sdGlwQ2xhc3MnXS5zcGxpdCgnICcpLmZvckVhY2goKGNsYXNzTmFtZTogYW55KSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZXRBbmltYXRpb25EdXJhdGlvbigpIHtcbiAgICBpZiAoTnVtYmVyKHRoaXMub3B0aW9uc1snYW5pbWF0aW9uRHVyYXRpb24nXSkgIT0gdGhpcy5vcHRpb25zWydhbmltYXRpb25EdXJhdGlvbkRlZmF1bHQnXSkge1xuICAgICAgdGhpcy5ob3N0U3R5bGVUcmFuc2l0aW9uID0gJ29wYWNpdHkgJyArIHRoaXMub3B0aW9uc1snYW5pbWF0aW9uRHVyYXRpb24nXSArICdtcyc7XG4gICAgfVxuICB9XG5cbiAgc2V0U3R5bGVzKCkge1xuICAgIHRoaXMuc2V0WkluZGV4KCk7XG4gICAgdGhpcy5zZXRQb2ludGVyRXZlbnRzKCk7XG4gICAgdGhpcy5zZXRBbmltYXRpb25EdXJhdGlvbigpO1xuXG4gICAgdGhpcy5ob3N0Q2xhc3NTaGFkb3cgPSB0aGlzLm9wdGlvbnNbJ3NoYWRvdyddO1xuICAgIHRoaXMuaG9zdENsYXNzTGlnaHQgPSB0aGlzLmlzVGhlbWVMaWdodDtcbiAgICB0aGlzLmhvc3RTdHlsZU1heFdpZHRoID0gdGhpcy5vcHRpb25zWydtYXhXaWR0aCddO1xuICAgIHRoaXMuaG9zdFN0eWxlV2lkdGggPSB0aGlzLm9wdGlvbnNbJ3dpZHRoJ10gPyB0aGlzLm9wdGlvbnNbJ3dpZHRoJ10gOiAnJztcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzVGhlbWVMaWdodFwiIGNsYXNzPVwidG9vbHRpcC1hcnJvd1wiPjwvZGl2PlxuXG48ZGl2ICpuZ0lmPVwib3B0aW9uc1snY29udGVudFR5cGUnXSA9PT0gJ3RlbXBsYXRlJyBlbHNlIGh0bWxPclN0cmluZ1RlbXBsYXRlXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ2YWx1ZVwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjaHRtbE9yU3RyaW5nVGVtcGxhdGU+XG4gIDxkaXYgW2lubmVySFRNTF09XCJ2YWx1ZVwiPjwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
239
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQzs7O0FBVXZILE1BQU0sT0FBTyx1QkFBdUI7SUFrQmxDLGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDYixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDZixJQUFJLEVBQUUsT0FBTzthQUNkLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELElBQWEsSUFBSSxDQUFDLEtBQWM7UUFDOUIsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEs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QUMsUUFBUSxDQUFDO2dCQVM1QixJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uSW5pdCwgUmVuZGVyZXIyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd0b29sdGlwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudC5odG1sJyxcbiAgICBob3N0OiB7ICdjbGFzcyc6ICd0b29sdGlwJyB9LFxuICAgIHN0eWxlVXJsczogWycuL2dyYXZpdHktdG9vbHRpcC5jb21wb25lbnQuc2FzcyddLFxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXG59KVxuXG5leHBvcnQgY2xhc3MgR3Jhdml0eVRvb2x0aXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBfc2hvdzogYm9vbGVhbiA9IGZhbHNlO1xuICBldmVudHMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQElucHV0KCkgZGF0YTogYW55O1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUudG9wJykgaG9zdFN0eWxlVG9wITogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLmxlZnQnKSBob3N0U3R5bGVMZWZ0ITogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnotaW5kZXgnKSBob3N0U3R5bGVaSW5kZXghOiBudW1iZXI7XG4gIEBIb3N0QmluZGluZygnc3R5bGUudHJhbnNpdGlvbicpIGhvc3RTdHlsZVRyYW5zaXRpb24hOiBzdHJpbmc7XG4gIEBIb3N0QmluZGluZygnc3R5bGUud2lkdGgnKSBob3N0U3R5bGVXaWR0aCE6IHN0cmluZztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgnKSBob3N0U3R5bGVNYXhXaWR0aCE6IHN0cmluZztcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpIGhvc3RTdHlsZVBvaW50ZXJFdmVudHMhOiBzdHJpbmc7XG4gIEBIb3N0QmluZGluZygnY2xhc3MudG9vbHRpcC1zaG93JykgaG9zdENsYXNzU2hvdyE6IGJvb2xlYW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MudG9vbHRpcC1zaGFkb3cnKSBob3N0Q2xhc3NTaGFkb3chOiBib29sZWFuO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnRvb2x0aXAtbGlnaHQnKSBob3N0Q2xhc3NMaWdodCE6IGJvb2xlYW47XG5cbiAgQEhvc3RMaXN0ZW5lcigndHJhbnNpdGlvbmVuZCcsIFsnJGV2ZW50J10pXG4gIHRyYW5zaXRpb25FbmQoKSB7XG4gICAgaWYgKHRoaXMuc2hvdykge1xuICAgICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICAgIHR5cGU6ICdzaG93bidcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBzaG93KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnNldFBvc2l0aW9uKCk7XG4gICAgfVxuICAgIHRoaXMuX3Nob3cgPSB0aGlzLmhvc3RDbGFzc1Nob3cgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBzaG93KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zaG93O1xuICB9XG5cbiAgZ2V0IHBsYWNlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLm9wdGlvbnMucGxhY2VtZW50O1xuICB9XG5cbiAgZ2V0IGF1dG9QbGFjZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5vcHRpb25zLmF1dG9QbGFjZW1lbnQ7XG4gIH1cblxuICBnZXQgZWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhLmVsZW1lbnQ7XG4gIH1cblxuICBnZXQgZWxlbWVudFBvc2l0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEuZWxlbWVudFBvc2l0aW9uO1xuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YS5vcHRpb25zO1xuICB9XG5cbiAgZ2V0IHZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmRhdGEudmFsdWU7XG4gIH1cblxuICBnZXQgdG9vbHRpcE9mZnNldCgpOiBudW1iZXIge1xuICAgIHJldHVybiBOdW1iZXIodGhpcy5kYXRhLm9wdGlvbnMub2Zmc2V0KTtcbiAgfVxuXG4gIGdldCBpc1RoZW1lTGlnaHQoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1sndGhlbWUnXSA9PT0gJ2xpZ2h0JztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldEN1c3RvbUNsYXNzKCk7XG4gICAgdGhpcy5zZXRTdHlsZXMoKTtcbiAgfVxuXG4gIHNldFBvc2l0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNldEhvc3RTdHlsZSh0aGlzLnBsYWNlbWVudCkpIHtcbiAgICAgIHRoaXMuc2V0UGxhY2VtZW50Q2xhc3ModGhpcy5wbGFjZW1lbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICAvKiBJcyB0b29sdGlwIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSAqL1xuICAgICAgY29uc3QgcGxhY2VtZW50cyA9IFsndG9wJywgJ3RvcC1sZWZ0JywgJ3RvcC1yaWdodCcsICdyaWdodCcsICdyaWdodC10b3AnLCAncmlnaHQtYm90dG9tJywgJ2JvdHRvbScsICdib3R0b20tcmlnaHQnLCAnYm90dG9tLWxlZnQnLCAnbGVmdCcsICdsZWZ0LXRvcCcsICdsZWZ0LWJvdHRvbSddO1xuICAgICAgbGV0IGlzUGxhY2VtZW50U2V0O1xuXG4gICAgICBmb3IgKGNvbnN0IHBsYWNlbWVudCBvZiBwbGFjZW1lbnRzKSB7XG4gICAgICAgIGlmICh0aGlzLnNldEhvc3RTdHlsZShwbGFjZW1lbnQpKSB7XG4gICAgICAgICAgdGhpcy5zZXRQbGFjZW1lbnRDbGFzcyhwbGFjZW1lbnQpO1xuICAgICAgICAgIGlzUGxhY2VtZW50U2V0ID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLyogU2V0IG9yaWdpbmFsIHBsYWNlbWVudCAqL1xuICAgICAgaWYgKCFpc1BsYWNlbWVudFNldCkge1xuICAgICAgICB0aGlzLnNldEhvc3RTdHlsZSh0aGlzLnBsYWNlbWVudCwgdHJ1ZSk7XG4gICAgICAgIHRoaXMuc2V0UGxhY2VtZW50Q2xhc3ModGhpcy5wbGFjZW1lbnQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG5cbiAgc2V0UGxhY2VtZW50Q2xhc3MocGxhY2VtZW50OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAndG9vbHRpcC0nICsgcGxhY2VtZW50KTtcbiAgfVxuXG4gIHNldEhvc3RTdHlsZShwbGFjZW1lbnQ6IHN0cmluZywgZGlzYWJsZUF1dG9QbGFjZW1lbnQ6IGJvb2xlYW4gPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzU3ZnID0gdGhpcy5lbGVtZW50IGluc3RhbmNlb2YgU1ZHRWxlbWVudDtcbiAgICBjb25zdCB0b29sdGlwID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaXNDdXN0b21Qb3NpdGlvbiA9ICF0aGlzLmVsZW1lbnRQb3NpdGlvbi5yaWdodDtcblxuICAgIGxldCBlbGVtZW50SGVpZ2h0ID0gaXNTdmcgPyB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IDogdGhpcy5lbGVtZW50Lm9mZnNldEhlaWdodDtcbiAgICBsZXQgZWxlbWVudFdpZHRoID0gaXNTdmcgPyB0aGlzLmVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggOiB0aGlzLmVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgY29uc3QgdG9vbHRpcEhlaWdodCA9IHRvb2x0aXAuY2xpZW50SGVpZ2h0O1xuICAgIGNvbnN0IHRvb2x0aXBXaWR0aCA9IHRvb2x0aXAuY2xpZW50V2lkdGg7XG4gICAgY29uc3Qgc2Nyb2xsWSA9IHdpbmRvdy5wYWdlWU9mZnNldDtcblxuICAgIGlmIChpc0N1c3RvbVBvc2l0aW9uKSB7XG4gICAgICBlbGVtZW50SGVpZ2h0ID0gMDtcbiAgICAgIGVsZW1lbnRXaWR0aCA9IDA7XG4gICAgfVxuXG4gICAgbGV0IHRvcFN0eWxlO1xuICAgIGxldCBsZWZ0U3R5bGU7XG5cbiAgICBzd2l0Y2ggKHBsYWNlbWVudCkge1xuICAgICAgY2FzZSAndG9wJzpcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSkgLSAodG9vbHRpcEhlaWdodCArIHRoaXMudG9vbHRpcE9mZnNldCk7XG4gICAgICAgIGxlZnRTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoIC8gMikgLSB0b29sdGlwV2lkdGggLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RvcC1sZWZ0JzpcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSkgLSAodG9vbHRpcEhlaWdodCArIHRoaXMudG9vbHRpcE9mZnNldCk7XG4gICAgICAgIGxlZnRTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoIC8gMikgLSAodG9vbHRpcFdpZHRoICogMC4xKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0b3AtcmlnaHQnOlxuICAgICAgICB0b3BTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi50b3AgKyBzY3JvbGxZKSAtICh0b29sdGlwSGVpZ2h0ICsgdGhpcy50b29sdGlwT2Zmc2V0KTtcbiAgICAgICAgbGVmdFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLmxlZnQgKyBlbGVtZW50V2lkdGggLyAyKSAtICh0b29sdGlwV2lkdGggKiAwLjkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgIHRvcFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcCArIHNjcm9sbFkpICsgZWxlbWVudEhlaWdodCArIHRoaXMudG9vbHRpcE9mZnNldDtcbiAgICAgICAgbGVmdFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLmxlZnQgKyBlbGVtZW50V2lkdGggLyAyKSAtIHRvb2x0aXBXaWR0aCAvIDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYm90dG9tLWxlZnQnOlxuICAgICAgICB0b3BTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi50b3AgKyBzY3JvbGxZKSArIGVsZW1lbnRIZWlnaHQgKyB0aGlzLnRvb2x0aXBPZmZzZXQ7XG4gICAgICAgIGxlZnRTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoIC8gMikgLSAodG9vbHRpcFdpZHRoICogMC4xKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgICB0b3BTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi50b3AgKyBzY3JvbGxZKSArIGVsZW1lbnRIZWlnaHQgKyB0aGlzLnRvb2x0aXBPZmZzZXQ7XG4gICAgICAgIGxlZnRTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoIC8gMikgLSAodG9vbHRpcFdpZHRoICogMC45KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgbGVmdFN0eWxlID0gdGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCAtIHRvb2x0aXBXaWR0aCAtIHRoaXMudG9vbHRpcE9mZnNldDtcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSkgKyBlbGVtZW50SGVpZ2h0IC8gMiAtIHRvb2x0aXBIZWlnaHQgLyAyO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2xlZnQtdG9wJzpcbiAgICAgICAgbGVmdFN0eWxlID0gdGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCAtIHRvb2x0aXBXaWR0aCAtIHRoaXMudG9vbHRpcE9mZnNldDtcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSArIGVsZW1lbnRIZWlnaHQgLyAyKSAtICh0b29sdGlwSGVpZ2h0ICogMC4xKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0LWJvdHRvbSc6XG4gICAgICAgIGxlZnRTdHlsZSA9IHRoaXMuZWxlbWVudFBvc2l0aW9uLmxlZnQgLSB0b29sdGlwV2lkdGggLSB0aGlzLnRvb2x0aXBPZmZzZXQ7XG4gICAgICAgIHRvcFN0eWxlID0gKHRoaXMuZWxlbWVudFBvc2l0aW9uLnRvcCArIHNjcm9sbFkgKyBlbGVtZW50SGVpZ2h0IC8gMikgLSAodG9vbHRpcEhlaWdodCAqIDAuOSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICBsZWZ0U3R5bGUgPSB0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoICsgdGhpcy50b29sdGlwT2Zmc2V0O1xuICAgICAgICB0b3BTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi50b3AgKyBzY3JvbGxZKSArIGVsZW1lbnRIZWlnaHQgLyAyIC0gdG9vbHRpcEhlaWdodCAvIDI7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAncmlnaHQtdG9wJzpcbiAgICAgICAgbGVmdFN0eWxlID0gdGhpcy5lbGVtZW50UG9zaXRpb24ubGVmdCArIGVsZW1lbnRXaWR0aCArIHRoaXMudG9vbHRpcE9mZnNldDtcbiAgICAgICAgdG9wU3R5bGUgPSAodGhpcy5lbGVtZW50UG9zaXRpb24udG9wICsgc2Nyb2xsWSArIGVsZW1lbnRIZWlnaHQgLyAyKSAtICh0b29sdGlwSGVpZ2h0ICogMC4xKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodC1ib3R0b20nOlxuICAgICAgICBsZWZ0U3R5bGUgPSB0aGlzLmVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgZWxlbWVudFdpZHRoICsgdGhpcy50b29sdGlwT2Zmc2V0O1xuICAgICAgICB0b3BTdHlsZSA9ICh0aGlzLmVsZW1lbnRQb3NpdGlvbi50b3AgKyBzY3JvbGxZICsgZWxlbWVudEhlaWdodCAvIDIpIC0gKHRvb2x0aXBIZWlnaHQgKiAwLjkpO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiBJcyB0b29sdGlwIG91dHNpZGUgdGhlIHZpc2libGUgYXJlYSAqL1xuICAgIGlmICh0aGlzLmF1dG9QbGFjZW1lbnQgJiYgIWRpc2FibGVBdXRvUGxhY2VtZW50KSB7XG4gICAgICBjb25zdCB0b3BFZGdlID0gdG9wU3R5bGU7XG4gICAgICBjb25zdCBib3R0b21FZGdlID0gdG9wU3R5bGUgKyB0b29sdGlwSGVpZ2h0O1xuICAgICAgY29uc3QgbGVmdEVkZ2UgPSBsZWZ0U3R5bGU7XG4gICAgICBjb25zdCByaWdodEVkZ2UgPSBsZWZ0U3R5bGUgKyB0b29sdGlwV2lkdGg7XG4gICAgICBjb25zdCBib2R5SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0ICsgc2Nyb2xsWTtcbiAgICAgIGNvbnN0IGJvZHlXaWR0aCA9IGRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg7XG5cbiAgICAgIGlmICh0b3BFZGdlIDwgMCB8fCBib3R0b21FZGdlID4gYm9keUhlaWdodCB8fCBsZWZ0RWRnZSA8IDAgfHwgcmlnaHRFZGdlID4gYm9keVdpZHRoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmhvc3RTdHlsZVRvcCA9IHRvcFN0eWxlICsgJ3B4JztcbiAgICB0aGlzLmhvc3RTdHlsZUxlZnQgPSBsZWZ0U3R5bGUgKyAncHgnO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgc2V0WkluZGV4KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wdGlvbnNbJ3pJbmRleCddICE9PSAwKSB7XG4gICAgICB0aGlzLmhvc3RTdHlsZVpJbmRleCA9IHRoaXMub3B0aW9uc1snekluZGV4J107XG4gICAgfVxuICB9XG5cbiAgc2V0UG9pbnRlckV2ZW50cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydwb2ludGVyRXZlbnRzJ10pIHtcbiAgICAgIHRoaXMuaG9zdFN0eWxlUG9pbnRlckV2ZW50cyA9IHRoaXMub3B0aW9uc1sncG9pbnRlckV2ZW50cyddO1xuICAgIH1cbiAgfVxuXG4gIHNldEN1c3RvbUNsYXNzKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnNbJ3Rvb2x0aXBDbGFzcyddKSB7XG4gICAgICB0aGlzLm9wdGlvbnNbJ3Rvb2x0aXBDbGFzcyddLnNwbGl0KCcgJykuZm9yRWFjaCgoY2xhc3NOYW1lOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldEFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICAgIGlmIChOdW1iZXIodGhpcy5vcHRpb25zWydhbmltYXRpb25EdXJhdGlvbiddKSAhPSB0aGlzLm9wdGlvbnNbJ2FuaW1hdGlvbkR1cmF0aW9uRGVmYXVsdCddKSB7XG4gICAgICB0aGlzLmhvc3RTdHlsZVRyYW5zaXRpb24gPSAnb3BhY2l0eSAnICsgdGhpcy5vcHRpb25zWydhbmltYXRpb25EdXJhdGlvbiddICsgJ21zJztcbiAgICB9XG4gIH1cblxuICBzZXRTdHlsZXMoKSB7XG4gICAgdGhpcy5zZXRaSW5kZXgoKTtcbiAgICB0aGlzLnNldFBvaW50ZXJFdmVudHMoKTtcbiAgICB0aGlzLnNldEFuaW1hdGlvbkR1cmF0aW9uKCk7XG5cbiAgICB0aGlzLmhvc3RDbGFzc1NoYWRvdyA9IHRoaXMub3B0aW9uc1snc2hhZG93J107XG4gICAgdGhpcy5ob3N0Q2xhc3NMaWdodCA9IHRoaXMuaXNUaGVtZUxpZ2h0O1xuICAgIHRoaXMuaG9zdFN0eWxlTWF4V2lkdGggPSB0aGlzLm9wdGlvbnNbJ21heFdpZHRoJ107XG4gICAgdGhpcy5ob3N0U3R5bGVXaWR0aCA9IHRoaXMub3B0aW9uc1snd2lkdGgnXSA/IHRoaXMub3B0aW9uc1snd2lkdGgnXSA6ICcnO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNUaGVtZUxpZ2h0XCIgY2xhc3M9XCJ0b29sdGlwLWFycm93XCI+PC9kaXY+XG5cbjxkaXYgKm5nSWY9XCJvcHRpb25zWydjb250ZW50VHlwZSddID09PSAndGVtcGxhdGUnIGVsc2UgaHRtbE9yU3RyaW5nVGVtcGxhdGVcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInZhbHVlXCI+PC9uZy1jb250YWluZXI+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNodG1sT3JTdHJpbmdUZW1wbGF0ZT5cbiAgPGRpdiBbaW5uZXJIVE1MXT1cInZhbHVlXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -355,6 +355,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
355
355
  args: [{
356
356
  selector: '[tooltip]',
357
357
  exportAs: 'tooltip',
358
+ standalone: false
358
359
  }]
359
360
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
360
361
  type: Optional
@@ -475,4 +476,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
475
476
  type: HostListener,
476
477
  args: ['click']
477
478
  }] } });
478
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUdULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBQyw0QkFBNEIsRUFBRSxjQUFjLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBZXZFLE1BQU0sT0FBTyx1QkFBdUI7SUFzQmxDLElBQXNCLE9BQU8sQ0FBQyxLQUFxQjtRQUNqRCxJQUFJLEtBQUssSUFBSSxjQUFjLEVBQUU7WUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFNRCxlQUFlO0lBQ2YsSUFBMkIsZ0NBQWdDLENBQUMsS0FBcUM7UUFDL0YsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUEwQixXQUFXLENBQUMsS0FBcUM7UUFDekUsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENB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dUJBQUMscUJBQXFCO2dCQUNKLGFBQWE7c0JBQXBDLEtBQUs7dUJBQUMsZUFBZTtnQkFDSCxRQUFRO3NCQUExQixLQUFLO3VCQUFDLFVBQVU7Z0JBMEJQLE1BQU07c0JBQWYsTUFBTTtnQkFZUCxZQUFZO3NCQUZYLFlBQVk7dUJBQUMsU0FBUzs7c0JBQ3RCLFlBQVk7dUJBQUMsWUFBWTtnQkFXMUIsWUFBWTtzQkFGWCxZQUFZO3VCQUFDLFVBQVU7O3NCQUN2QixZQUFZO3VCQUFDLFlBQVk7Z0JBUTFCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQXBwbGljYXRpb25SZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7R3Jhdml0eVRvb2x0aXBDb21wb25lbnR9IGZyb20gJy4vZ3Jhdml0eS10b29sdGlwLmNvbXBvbmVudCc7XG5pbXBvcnQge1Rvb2x0aXBPcHRpb25zU2VydmljZX0gZnJvbSAnLi9vcHRpb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtiYWNrd2FyZENvbXBhdGliaWxpdHlPcHRpb25zLCBkZWZhdWx0T3B0aW9uc30gZnJvbSAnLi9vcHRpb25zJztcbmltcG9ydCB7VG9vbHRpcE9wdGlvbnN9IGZyb20gJy4vb3B0aW9ucy5pbnRlcmZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFkQ29tcG9uZW50IHtcbiAgZGF0YTogYW55O1xuICBzaG93OiBib29sZWFuO1xuICBjbG9zZTogYm9vbGVhbjtcbiAgZXZlbnRzOiBhbnk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1t0b29sdGlwXScsXG4gIGV4cG9ydEFzOiAndG9vbHRpcCcsXG59KVxuXG5leHBvcnQgY2xhc3MgR3Jhdml0eVRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuXG4gIGhpZGVUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGRlc3Ryb3lUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGhpZGVBZnRlckNsaWNrVGltZW91dElkITogbnVtYmVyO1xuICBjcmVhdGVUaW1lb3V0SWQhOiBudW1iZXI7XG4gIHNob3dUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGNvbXBvbmVudFJlZjogYW55O1xuICBlbGVtZW50UG9zaXRpb246IGFueTtcbiAgX2lkOiBhbnk7XG4gIF9vcHRpb25zOiBhbnkgPSB7fTtcbiAgX2RlZmF1bHRPcHRpb25zOiBhbnk7XG4gIF9kZXN0cm95RGVsYXkhOiBudW1iZXI7XG4gIGNvbXBvbmVudFN1YnNjcmliZTogYW55O1xuICBfY29udGVudFR5cGU6IFwic3RyaW5nXCIgfCBcImh0bWxcIiB8IFwidGVtcGxhdGVcIiA9IFwic3RyaW5nXCI7XG4gIF9zaG93RGVsYXkhOiBudW1iZXI7XG4gIF9oaWRlRGVsYXkhOiBudW1iZXI7XG4gIF96SW5kZXghOiBudW1iZXI7XG4gIF90b29sdGlwQ2xhc3MhOiBzdHJpbmc7XG4gIF9hbmltYXRpb25EdXJhdGlvbiE6IG51bWJlcjtcbiAgX21heFdpZHRoITogc3RyaW5nO1xuXG4gIEBJbnB1dCgnb3B0aW9ucycpIHNldCBvcHRpb25zKHZhbHVlOiBUb29sdGlwT3B0aW9ucykge1xuICAgIGlmICh2YWx1ZSAmJiBkZWZhdWx0T3B0aW9ucykge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICB9XG5cbiAgQElucHV0KCd0b29sdGlwJykgdG9vbHRpcFZhbHVlITogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgQElucHV0KCdwbGFjZW1lbnQnKSBwbGFjZW1lbnQhOiBzdHJpbmc7XG4gIEBJbnB1dCgnYXV0b1BsYWNlbWVudCcpIGF1dG9QbGFjZW1lbnQhOiBib29sZWFuO1xuXG4gIC8vIENvbnRlbnQgdHlwZVxuICBASW5wdXQoJ2NvbnRlbnQtdHlwZScpIHNldCBjb250ZW50VHlwZUJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb250ZW50VHlwZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnY29udGVudFR5cGUnKSBzZXQgY29udGVudFR5cGUodmFsdWU6IFwic3RyaW5nXCIgfCBcImh0bWxcIiB8IFwidGVtcGxhdGVcIikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fY29udGVudFR5cGUgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgY29udGVudFR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRUeXBlO1xuICB9XG5cbiAgQElucHV0KCdoaWRlLWRlbGF5LW1vYmlsZScpIGhpZGVEZWxheU1vYmlsZSE6IG51bWJlcjtcbiAgQElucHV0KCdoaWRlRGVsYXlUb3VjaHNjcmVlbicpIGhpZGVEZWxheVRvdWNoc2NyZWVuITogbnVtYmVyO1xuXG4gIC8vIHotaW5kZXhcbiAgQElucHV0KCd6LWluZGV4Jykgc2V0IHpJbmRleEJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl96SW5kZXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ3pJbmRleCcpIHNldCB6SW5kZXgodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fekluZGV4ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHpJbmRleCgpIHtcbiAgICByZXR1cm4gdGhpcy5fekluZGV4O1xuICB9XG5cbiAgLy8gQW5pbWF0aW9uIGR1cmF0aW9uXG4gIEBJbnB1dCgnYW5pbWF0aW9uLWR1cmF0aW9uJykgc2V0IGFuaW1hdGlvbkR1cmF0aW9uQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdhbmltYXRpb25EdXJhdGlvbicpIHNldCBhbmltYXRpb25EdXJhdGlvbih2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9hbmltYXRpb25EdXJhdGlvbiA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBhbmltYXRpb25EdXJhdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fYW5pbWF0aW9uRHVyYXRpb247XG4gIH1cblxuXG4gIEBJbnB1dCgndHJpZ2dlcicpIHRyaWdnZXIhOiBzdHJpbmc7XG5cbiAgLy8gVG9vbHRpcCBjbGFzc1xuICBASW5wdXQoJ3Rvb2x0aXAtY2xhc3MnKSBzZXQgdG9vbHRpcENsYXNzQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Rvb2x0aXBDbGFzcyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgndG9vbHRpcENsYXNzJykgc2V0IHRvb2x0aXBDbGFzcyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl90b29sdGlwQ2xhc3MgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgdG9vbHRpcENsYXNzKCkge1xuICAgIHJldHVybiB0aGlzLl90b29sdGlwQ2xhc3M7XG4gIH1cblxuICBASW5wdXQoJ2Rpc3BsYXknKSBkaXNwbGF5ITogYm9vbGVhbjtcbiAgQElucHV0KCdkaXNwbGF5LW1vYmlsZScpIGRpc3BsYXlNb2JpbGUhOiBib29sZWFuO1xuICBASW5wdXQoJ2Rpc3BsYXlUb3VjaHNjcmVlbicpIGRpc3BsYXlUb3VjaHNjcmVlbiE6IGJvb2xlYW47XG4gIEBJbnB1dCgnc2hhZG93Jykgc2hhZG93ITogYm9vbGVhbjtcbiAgQElucHV0KCd0aGVtZScpIHRoZW1lITogXCJkYXJrXCIgfCBcImxpZ2h0XCI7XG4gIEBJbnB1dCgnb2Zmc2V0Jykgb2Zmc2V0ITogbnVtYmVyO1xuICBASW5wdXQoJ3dpZHRoJykgd2lkdGghOiBzdHJpbmc7XG5cbiAgLy8gTWF4IHdpZHRoXG4gIEBJbnB1dCgnbWF4LXdpZHRoJykgc2V0IG1heFdpZHRoQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX21heFdpZHRoID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdtYXhXaWR0aCcpIHNldCBtYXhXaWR0aCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9tYXhXaWR0aCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBtYXhXaWR0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4V2lkdGg7XG4gIH1cblxuXG4gIEBJbnB1dCgnaWQnKSBpZDogYW55O1xuXG4gIC8vIFNob3cgZGVsYXlcbiAgQElucHV0KCdzaG93LWRlbGF5Jykgc2V0IHNob3dEZWxheUJhY2t3YXJkQ29tcGF0aWJpbGl0eSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zaG93RGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ3Nob3dEZWxheScpIHNldCBzaG93RGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fc2hvd0RlbGF5ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHNob3dEZWxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0RlbGF5O1xuICB9XG5cbiAgLy8gSGlkZSBkZWxheVxuICBASW5wdXQoJ2hpZGUtZGVsYXknKSBzZXQgaGlkZURlbGF5QmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2hpZGVEZWxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnaGlkZURlbGF5Jykgc2V0IGhpZGVEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9oaWRlRGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgaGlkZURlbGF5KCkge1xuICAgIHJldHVybiB0aGlzLl9oaWRlRGVsYXk7XG4gIH1cblxuICBASW5wdXQoJ2hpZGVEZWxheUFmdGVyQ2xpY2snKSBoaWRlRGVsYXlBZnRlckNsaWNrITogbnVtYmVyO1xuICBASW5wdXQoJ3BvaW50ZXJFdmVudHMnKSBwb2ludGVyRXZlbnRzITogJ2F1dG8nIHwgJ25vbmUnO1xuICBASW5wdXQoJ3Bvc2l0aW9uJykgcG9zaXRpb24hOiB7IHRvcDogbnVtYmVyLCBsZWZ0OiBudW1iZXIgfTtcblxuICBnZXQgaXNUb29sdGlwRGVzdHJveWVkKCkge1xuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudFJlZiAmJiB0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldy5kZXN0cm95ZWQ7XG4gIH1cblxuICBnZXQgZGVzdHJveURlbGF5KCkge1xuICAgIGlmICh0aGlzLl9kZXN0cm95RGVsYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9kZXN0cm95RGVsYXk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBOdW1iZXIodGhpcy5nZXRIaWRlRGVsYXkoKSkgKyBOdW1iZXIodGhpcy5vcHRpb25zWydhbmltYXRpb25EdXJhdGlvbiddKTtcbiAgICB9XG4gIH1cblxuICBzZXQgZGVzdHJveURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9kZXN0cm95RGVsYXkgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB0b29sdGlwUG9zaXRpb24oKSB7XG4gICAgaWYgKHRoaXMub3B0aW9uc1sncG9zaXRpb24nXSkge1xuICAgICAgcmV0dXJuIHRoaXMub3B0aW9uc1sncG9zaXRpb24nXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFBvc2l0aW9uO1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoKSBldmVudHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChUb29sdGlwT3B0aW9uc1NlcnZpY2UpIHByaXZhdGUgaW5pdE9wdGlvbnM6IGFueSxcbiAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3VzaW4nKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgb25Nb3VzZUVudGVyKCkge1xuICAgIGlmICh0aGlzLmlzRGlzcGxheU9uSG92ZXIgPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNob3coKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JylcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5T25DbGljayA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICAgIHRoaXMuaGlkZUFmdGVyQ2xpY2tUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gICAgfSwgdGhpcy5vcHRpb25zWydoaWRlRGVsYXlBZnRlckNsaWNrJ10pXG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgdGhpcy5pbml0T3B0aW9ucyA9IHRoaXMucmVuYW1lUHJvcGVydGllcyh0aGlzLmluaXRPcHRpb25zKTtcbiAgICBsZXQgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLmdldFByb3BlcnRpZXMoY2hhbmdlcyk7XG4gICAgY2hhbmdlZE9wdGlvbnMgPSB0aGlzLnJlbmFtZVByb3BlcnRpZXMoY2hhbmdlZE9wdGlvbnMpO1xuXG4gICAgdGhpcy5hcHBseU9wdGlvbnNEZWZhdWx0KGRlZmF1bHRPcHRpb25zLCBjaGFuZ2VkT3B0aW9ucyk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKHtcbiAgICAgIGZhc3Q6IHRydWVcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbXBvbmVudFN1YnNjcmliZSkge1xuICAgICAgdGhpcy5jb21wb25lbnRTdWJzY3JpYmUudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRTaG93RGVsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1snc2hvd0RlbGF5J107XG4gIH1cblxuICBnZXRIaWRlRGVsYXkoKSB7XG4gICAgY29uc3QgaGlkZURlbGF5ID0gdGhpcy5vcHRpb25zWydoaWRlRGVsYXknXTtcbiAgICBjb25zdCBoaWRlRGVsYXlUb3VjaHNjcmVlbiA9IHRoaXMub3B0aW9uc1snaGlkZURlbGF5VG91Y2hzY3JlZW4nXTtcblxuICAgIHJldHVybiB0aGlzLmlzVG91Y2hTY3JlZW4gPyBoaWRlRGVsYXlUb3VjaHNjcmVlbiA6IGhpZGVEZWxheTtcbiAgfVxuXG4gIGdldFByb3BlcnRpZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGxldCBkaXJlY3RpdmVQcm9wZXJ0aWVzOiBhbnkgPSB7fTtcbiAgICBsZXQgY3VzdG9tUHJvcGVydGllczogYW55ID0ge307XG4gICAgbGV0IGFsbFByb3BlcnRpZXM6IGFueTtcblxuICAgIGZvciAodmFyIHByb3AgaW4gY2hhbmdlcykge1xuICAgICAgaWYgKHByb3AgIT09ICdvcHRpb25zJyAmJiBwcm9wICE9PSAndG9vbHRpcFZhbHVlJykge1xuICAgICAgICBkaXJlY3RpdmVQcm9wZXJ0aWVzW3Byb3BdID0gY2hhbmdlc1twcm9wXS5jdXJyZW50VmFsdWU7XG4gICAgICB9XG4gICAgICBpZiAocHJvcCA9PT0gJ29wdGlvbnMnKSB7XG4gICAgICAgIGN1c3RvbVByb3BlcnRpZXMgPSBjaGFuZ2VzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhbGxQcm9wZXJ0aWVzID0gT2JqZWN0LmFzc2lnbih7fSwgY3VzdG9tUHJvcGVydGllcywgZGlyZWN0aXZlUHJvcGVydGllcyk7XG4gICAgcmV0dXJuIGFsbFByb3BlcnRpZXM7XG4gIH1cblxuICByZW5hbWVQcm9wZXJ0aWVzKG9wdGlvbnM6IGFueSkge1xuICAgIGZvciAodmFyIHByb3AgaW4gb3B0aW9ucykge1xuICAgICAgaWYgKGJhY2t3YXJkQ29tcGF0aWJpbGl0eU9wdGlvbnNbcHJvcF0pIHtcbiAgICAgICAgb3B0aW9uc1tiYWNrd2FyZENvbXBhdGliaWxpdHlPcHRpb25zW3Byb3BdXSA9IG9wdGlvbnNbcHJvcF07XG4gICAgICAgIGRlbGV0ZSBvcHRpb25zW3Byb3BdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgZ2V0RWxlbWVudFBvc2l0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudFBvc2l0aW9uID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gIH1cblxuICBjcmVhdGVUb29sdGlwKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuICAgIHRoaXMuZ2V0RWxlbWVudFBvc2l0aW9uKCk7XG5cbiAgICB0aGlzLmNyZWF0ZVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuYXBwZW5kQ29tcG9uZW50VG9Cb2R5KEdyYXZpdHlUb29sdGlwQ29tcG9uZW50KTtcbiAgICB9LCB0aGlzLmdldFNob3dEZWxheSgpKTtcblxuICAgIHRoaXMuc2hvd1RpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd1Rvb2x0aXBFbGVtKCk7XG4gICAgfSwgdGhpcy5nZXRTaG93RGVsYXkoKSk7XG4gIH1cblxuICBkZXN0cm95VG9vbHRpcChvcHRpb25zID0ge1xuICAgIGZhc3Q6IGZhbHNlXG4gIH0pOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyVGltZW91dHMoKTtcblxuICAgIGlmICh0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCA9PSBmYWxzZSkge1xuICAgICAgdGhpcy5oaWRlVGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLmhpZGVUb29sdGlwKCk7XG4gICAgICB9LCBvcHRpb25zLmZhc3QgPyAwIDogdGhpcy5nZXRIaWRlRGVsYXkoKSk7XG5cbiAgICAgIHRoaXMuZGVzdHJveVRpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbXBvbmVudFJlZiB8fCB0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYXBwUmVmLmRldGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICAgIHR5cGU6ICdoaWRkZW4nLFxuICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgICAgICB9KTtcbiAgICAgIH0sIG9wdGlvbnMuZmFzdCA/IDAgOiB0aGlzLmRlc3Ryb3lEZWxheSk7XG4gICAgfVxuICB9XG5cbiAgc2hvd1Rvb2x0aXBFbGVtKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNob3cgPSB0cnVlO1xuICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgdHlwZTogJ3Nob3cnLFxuICAgICAgcG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uXG4gICAgfSk7XG4gIH1cblxuICBoaWRlVG9vbHRpcCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8IHRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLnNob3cgPSBmYWxzZTtcbiAgICB0aGlzLmV2ZW50cy5lbWl0KHtcbiAgICAgIHR5cGU6ICdoaWRlJyxcbiAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgIH0pO1xuICB9XG5cbiAgYXBwZW5kQ29tcG9uZW50VG9Cb2R5KGNvbXBvbmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICAgICAgLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudClcbiAgICAgIC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cbiAgICAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5kYXRhID0ge1xuICAgICAgdmFsdWU6IHRoaXMudG9vbHRpcFZhbHVlLFxuICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICBlbGVtZW50UG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uLFxuICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zXG4gICAgfVxuICAgIHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgIGNvbnN0IGRvbUVsZW0gPSAodGhpcy5jb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG4gICAgdGhpcy5jb21wb25lbnRTdWJzY3JpYmUgPSAoPEFkQ29tcG9uZW50PnRoaXMuY29tcG9uZW50UmVmLmluc3RhbmNlKS5ldmVudHMuc3Vic2NyaWJlKChldmVudDogYW55KSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUV2ZW50cyhldmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBjbGVhclRpbWVvdXRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNyZWF0ZVRpbWVvdXRJZCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuY3JlYXRlVGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zaG93VGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5oaWRlVGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5oaWRlVGltZW91dElkKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kZXN0cm95VGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5kZXN0cm95VGltZW91dElkKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNEaXNwbGF5T25Ib3ZlcigpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5J10gPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5VG91Y2hzY3JlZW4nXSA9PSBmYWxzZSAmJiB0aGlzLmlzVG91Y2hTY3JlZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT09ICdob3Zlcic7XG4gIH1cblxuICBnZXQgaXNEaXNwbGF5T25DbGljaygpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5J10gPT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zWydkaXNwbGF5VG91Y2hzY3JlZW4nXSA9PSBmYWxzZSAmJiB0aGlzLmlzVG91Y2hTY3JlZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zWyd0cmlnZ2VyJ10gPT0gJ2NsaWNrJztcblxuXG4gIH1cblxuICBnZXQgaXNUb3VjaFNjcmVlbigpIHtcbiAgICB2YXIgcHJlZml4ZXMgPSAnIC13ZWJraXQtIC1tb3otIC1vLSAtbXMtICcuc3BsaXQoJyAnKTtcbiAgICB2YXIgbXEgPSBmdW5jdGlvbiAocXVlcnk6IGFueSkge1xuICAgICAgcmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhKHF1ZXJ5KS5tYXRjaGVzO1xuICAgIH1cblxuICAgIGlmICgoJ29udG91Y2hzdGFydCcgaW4gd2luZG93KSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaW5jbHVkZSB0aGUgJ2hlYXJ0eicgYXMgYSB3YXkgdG8gaGF2ZSBhIG5vbiBtYXRjaGluZyBNUSB0byBoZWxwIHRlcm1pbmF0ZSB0aGUgam9pblxuICAgIC8vIGh0dHBzOi8vZ2l0LmlvL3Z6bkZIXG4gICAgdmFyIHF1ZXJ5ID0gWycoJywgcHJlZml4ZXMuam9pbigndG91Y2gtZW5hYmxlZCksKCcpLCAnaGVhcnR6JywgJyknXS5qb2luKCcnKTtcbiAgICByZXR1cm4gbXEocXVlcnkpO1xuICB9XG5cbiAgYXBwbHlPcHRpb25zRGVmYXVsdChkZWZhdWx0T3B0aW9uczogYW55LCBvcHRpb25zOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucywgdGhpcy5pbml0T3B0aW9ucyB8fCB7fSwgdGhpcy5vcHRpb25zLCBvcHRpb25zKTtcbiAgfVxuXG4gIGhhbmRsZUV2ZW50cyhldmVudDogYW55KSB7XG4gICAgaWYgKGV2ZW50LnR5cGUgPT09ICdzaG93bicpIHtcbiAgICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgICB0eXBlOiAnc2hvd24nLFxuICAgICAgICBwb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb25cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzaG93KCkge1xuICAgIGlmICghdGhpcy50b29sdGlwVmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8IHRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICB0aGlzLmNyZWF0ZVRvb2x0aXAoKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzVG9vbHRpcERlc3Ryb3llZCkge1xuICAgICAgdGhpcy5zaG93VG9vbHRpcEVsZW0oKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGlkZSgpIHtcbiAgICB0aGlzLmRlc3Ryb3lUb29sdGlwKCk7XG4gIH1cbn1cbiJdfQ==
479
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2dyYXZpdHktZGVzaWduLXN5c3RlbS9zcmMvbGliL3ZlbmRvci9ncmF2aXR5LXRvb2x0aXAvZ3Jhdml0eS10b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsU0FBUyxFQUdULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUVOLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUdQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ3hELE9BQU8sRUFBQyw0QkFBNEIsRUFBRSxjQUFjLEVBQUMsTUFBTSxXQUFXLENBQUM7O0FBZ0J2RSxNQUFNLE9BQU8sdUJBQXVCO0lBc0JsQyxJQUFzQixPQUFPLENBQUMsS0FBcUI7UUFDakQsSUFBSSxLQUFLLElBQUksY0FBYyxFQUFFO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBTUQsZUFBZTtJQUNmLElBQTJCLGdDQUFnQyxDQUFDLEtBQXFDO1FBQy9GLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBMEIsV0FBVyxDQUFDLEtBQXFDO1FBQ3pFLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxD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QVVZLG1CQUFtQjtzQkFBaEQsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBQ0osYUFBYTtzQkFBcEMsS0FBSzt1QkFBQyxlQUFlO2dCQUNILFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkEwQlAsTUFBTTtzQkFBZixNQUFNO2dCQVlQLFlBQVk7c0JBRlgsWUFBWTt1QkFBQyxTQUFTOztzQkFDdEIsWUFBWTt1QkFBQyxZQUFZO2dCQVcxQixZQUFZO3NCQUZYLFlBQVk7dUJBQUMsVUFBVTs7c0JBQ3ZCLFlBQVk7dUJBQUMsWUFBWTtnQkFRMUIsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcHBsaWNhdGlvblJlZixcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtHcmF2aXR5VG9vbHRpcENvbXBvbmVudH0gZnJvbSAnLi9ncmF2aXR5LXRvb2x0aXAuY29tcG9uZW50JztcbmltcG9ydCB7VG9vbHRpcE9wdGlvbnNTZXJ2aWNlfSBmcm9tICcuL29wdGlvbnMuc2VydmljZSc7XG5pbXBvcnQge2JhY2t3YXJkQ29tcGF0aWJpbGl0eU9wdGlvbnMsIGRlZmF1bHRPcHRpb25zfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHtUb29sdGlwT3B0aW9uc30gZnJvbSAnLi9vcHRpb25zLmludGVyZmFjZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRDb21wb25lbnQge1xuICBkYXRhOiBhbnk7XG4gIHNob3c6IGJvb2xlYW47XG4gIGNsb3NlOiBib29sZWFuO1xuICBldmVudHM6IGFueTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbdG9vbHRpcF0nLFxuICAgIGV4cG9ydEFzOiAndG9vbHRpcCcsXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5cbmV4cG9ydCBjbGFzcyBHcmF2aXR5VG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgaGlkZVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgZGVzdHJveVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgaGlkZUFmdGVyQ2xpY2tUaW1lb3V0SWQhOiBudW1iZXI7XG4gIGNyZWF0ZVRpbWVvdXRJZCE6IG51bWJlcjtcbiAgc2hvd1RpbWVvdXRJZCE6IG51bWJlcjtcbiAgY29tcG9uZW50UmVmOiBhbnk7XG4gIGVsZW1lbnRQb3NpdGlvbjogYW55O1xuICBfaWQ6IGFueTtcbiAgX29wdGlvbnM6IGFueSA9IHt9O1xuICBfZGVmYXVsdE9wdGlvbnM6IGFueTtcbiAgX2Rlc3Ryb3lEZWxheSE6IG51bWJlcjtcbiAgY29tcG9uZW50U3Vic2NyaWJlOiBhbnk7XG4gIF9jb250ZW50VHlwZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiID0gXCJzdHJpbmdcIjtcbiAgX3Nob3dEZWxheSE6IG51bWJlcjtcbiAgX2hpZGVEZWxheSE6IG51bWJlcjtcbiAgX3pJbmRleCE6IG51bWJlcjtcbiAgX3Rvb2x0aXBDbGFzcyE6IHN0cmluZztcbiAgX2FuaW1hdGlvbkR1cmF0aW9uITogbnVtYmVyO1xuICBfbWF4V2lkdGghOiBzdHJpbmc7XG5cbiAgQElucHV0KCdvcHRpb25zJykgc2V0IG9wdGlvbnModmFsdWU6IFRvb2x0aXBPcHRpb25zKSB7XG4gICAgaWYgKHZhbHVlICYmIGRlZmF1bHRPcHRpb25zKSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICBASW5wdXQoJ3Rvb2x0aXAnKSB0b29sdGlwVmFsdWUhOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoJ3BsYWNlbWVudCcpIHBsYWNlbWVudCE6IHN0cmluZztcbiAgQElucHV0KCdhdXRvUGxhY2VtZW50JykgYXV0b1BsYWNlbWVudCE6IGJvb2xlYW47XG5cbiAgLy8gQ29udGVudCB0eXBlXG4gIEBJbnB1dCgnY29udGVudC10eXBlJykgc2V0IGNvbnRlbnRUeXBlQmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBcInN0cmluZ1wiIHwgXCJodG1sXCIgfCBcInRlbXBsYXRlXCIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2NvbnRlbnRUeXBlID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdjb250ZW50VHlwZScpIHNldCBjb250ZW50VHlwZSh2YWx1ZTogXCJzdHJpbmdcIiB8IFwiaHRtbFwiIHwgXCJ0ZW1wbGF0ZVwiKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9jb250ZW50VHlwZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBjb250ZW50VHlwZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudFR5cGU7XG4gIH1cblxuICBASW5wdXQoJ2hpZGUtZGVsYXktbW9iaWxlJykgaGlkZURlbGF5TW9iaWxlITogbnVtYmVyO1xuICBASW5wdXQoJ2hpZGVEZWxheVRvdWNoc2NyZWVuJykgaGlkZURlbGF5VG91Y2hzY3JlZW4hOiBudW1iZXI7XG5cbiAgLy8gei1pbmRleFxuICBASW5wdXQoJ3otaW5kZXgnKSBzZXQgekluZGV4QmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3pJbmRleCA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnekluZGV4Jykgc2V0IHpJbmRleCh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl96SW5kZXggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgekluZGV4KCkge1xuICAgIHJldHVybiB0aGlzLl96SW5kZXg7XG4gIH1cblxuICAvLyBBbmltYXRpb24gZHVyYXRpb25cbiAgQElucHV0KCdhbmltYXRpb24tZHVyYXRpb24nKSBzZXQgYW5pbWF0aW9uRHVyYXRpb25CYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fYW5pbWF0aW9uRHVyYXRpb24gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ2FuaW1hdGlvbkR1cmF0aW9uJykgc2V0IGFuaW1hdGlvbkR1cmF0aW9uKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2FuaW1hdGlvbkR1cmF0aW9uID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGFuaW1hdGlvbkR1cmF0aW9uKCkge1xuICAgIHJldHVybiB0aGlzLl9hbmltYXRpb25EdXJhdGlvbjtcbiAgfVxuXG5cbiAgQElucHV0KCd0cmlnZ2VyJykgdHJpZ2dlciE6IHN0cmluZztcblxuICAvLyBUb29sdGlwIGNsYXNzXG4gIEBJbnB1dCgndG9vbHRpcC1jbGFzcycpIHNldCB0b29sdGlwQ2xhc3NCYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fdG9vbHRpcENsYXNzID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCd0b29sdGlwQ2xhc3MnKSBzZXQgdG9vbHRpcENsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Rvb2x0aXBDbGFzcyA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0b29sdGlwQ2xhc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Rvb2x0aXBDbGFzcztcbiAgfVxuXG4gIEBJbnB1dCgnZGlzcGxheScpIGRpc3BsYXkhOiBib29sZWFuO1xuICBASW5wdXQoJ2Rpc3BsYXktbW9iaWxlJykgZGlzcGxheU1vYmlsZSE6IGJvb2xlYW47XG4gIEBJbnB1dCgnZGlzcGxheVRvdWNoc2NyZWVuJykgZGlzcGxheVRvdWNoc2NyZWVuITogYm9vbGVhbjtcbiAgQElucHV0KCdzaGFkb3cnKSBzaGFkb3chOiBib29sZWFuO1xuICBASW5wdXQoJ3RoZW1lJykgdGhlbWUhOiBcImRhcmtcIiB8IFwibGlnaHRcIjtcbiAgQElucHV0KCdvZmZzZXQnKSBvZmZzZXQhOiBudW1iZXI7XG4gIEBJbnB1dCgnd2lkdGgnKSB3aWR0aCE6IHN0cmluZztcblxuICAvLyBNYXggd2lkdGhcbiAgQElucHV0KCdtYXgtd2lkdGgnKSBzZXQgbWF4V2lkdGhCYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fbWF4V2lkdGggPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ21heFdpZHRoJykgc2V0IG1heFdpZHRoKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX21heFdpZHRoID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG1heFdpZHRoKCkge1xuICAgIHJldHVybiB0aGlzLl9tYXhXaWR0aDtcbiAgfVxuXG5cbiAgQElucHV0KCdpZCcpIGlkOiBhbnk7XG5cbiAgLy8gU2hvdyBkZWxheVxuICBASW5wdXQoJ3Nob3ctZGVsYXknKSBzZXQgc2hvd0RlbGF5QmFja3dhcmRDb21wYXRpYmlsaXR5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX3Nob3dEZWxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnc2hvd0RlbGF5Jykgc2V0IHNob3dEZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLl9zaG93RGVsYXkgPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXQgc2hvd0RlbGF5KCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93RGVsYXk7XG4gIH1cblxuICAvLyBIaWRlIGRlbGF5XG4gIEBJbnB1dCgnaGlkZS1kZWxheScpIHNldCBoaWRlRGVsYXlCYWNrd2FyZENvbXBhdGliaWxpdHkodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5faGlkZURlbGF5ID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgQElucHV0KCdoaWRlRGVsYXknKSBzZXQgaGlkZURlbGF5KHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuX2hpZGVEZWxheSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBoaWRlRGVsYXkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZGVEZWxheTtcbiAgfVxuXG4gIEBJbnB1dCgnaGlkZURlbGF5QWZ0ZXJDbGljaycpIGhpZGVEZWxheUFmdGVyQ2xpY2shOiBudW1iZXI7XG4gIEBJbnB1dCgncG9pbnRlckV2ZW50cycpIHBvaW50ZXJFdmVudHMhOiAnYXV0bycgfCAnbm9uZSc7XG4gIEBJbnB1dCgncG9zaXRpb24nKSBwb3NpdGlvbiE6IHsgdG9wOiBudW1iZXIsIGxlZnQ6IG51bWJlciB9O1xuXG4gIGdldCBpc1Rvb2x0aXBEZXN0cm95ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tcG9uZW50UmVmICYmIHRoaXMuY29tcG9uZW50UmVmLmhvc3RWaWV3LmRlc3Ryb3llZDtcbiAgfVxuXG4gIGdldCBkZXN0cm95RGVsYXkoKSB7XG4gICAgaWYgKHRoaXMuX2Rlc3Ryb3lEZWxheSkge1xuICAgICAgcmV0dXJuIHRoaXMuX2Rlc3Ryb3lEZWxheTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIE51bWJlcih0aGlzLmdldEhpZGVEZWxheSgpKSArIE51bWJlcih0aGlzLm9wdGlvbnNbJ2FuaW1hdGlvbkR1cmF0aW9uJ10pO1xuICAgIH1cbiAgfVxuXG4gIHNldCBkZXN0cm95RGVsYXkodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX2Rlc3Ryb3lEZWxheSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHRvb2x0aXBQb3NpdGlvbigpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zWydwb3NpdGlvbiddKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zWydwb3NpdGlvbiddO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5lbGVtZW50UG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIGV2ZW50czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KFRvb2x0aXBPcHRpb25zU2VydmljZSkgcHJpdmF0ZSBpbml0T3B0aW9uczogYW55LFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIHByaXZhdGUgYXBwUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicpXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNEaXNwbGF5T25Ib3ZlciA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvdygpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgb25Nb3VzZUxlYXZlKCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnNbJ3RyaWdnZXInXSA9PT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5kZXN0cm95VG9vbHRpcCgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgb25DbGljaygpIHtcbiAgICBpZiAodGhpcy5pc0Rpc3BsYXlPbkNsaWNrID09IGZhbHNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zaG93KCk7XG4gICAgdGhpcy5oaWRlQWZ0ZXJDbGlja1RpbWVvdXRJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgICB9LCB0aGlzLm9wdGlvbnNbJ2hpZGVEZWxheUFmdGVyQ2xpY2snXSlcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICB0aGlzLmluaXRPcHRpb25zID0gdGhpcy5yZW5hbWVQcm9wZXJ0aWVzKHRoaXMuaW5pdE9wdGlvbnMpO1xuICAgIGxldCBjaGFuZ2VkT3B0aW9ucyA9IHRoaXMuZ2V0UHJvcGVydGllcyhjaGFuZ2VzKTtcbiAgICBjaGFuZ2VkT3B0aW9ucyA9IHRoaXMucmVuYW1lUHJvcGVydGllcyhjaGFuZ2VkT3B0aW9ucyk7XG5cbiAgICB0aGlzLmFwcGx5T3B0aW9uc0RlZmF1bHQoZGVmYXVsdE9wdGlvbnMsIGNoYW5nZWRPcHRpb25zKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoe1xuICAgICAgZmFzdDogdHJ1ZVxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuY29tcG9uZW50U3Vic2NyaWJlKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmliZS51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNob3dEZWxheSgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zWydzaG93RGVsYXknXTtcbiAgfVxuXG4gIGdldEhpZGVEZWxheSgpIHtcbiAgICBjb25zdCBoaWRlRGVsYXkgPSB0aGlzLm9wdGlvbnNbJ2hpZGVEZWxheSddO1xuICAgIGNvbnN0IGhpZGVEZWxheVRvdWNoc2NyZWVuID0gdGhpcy5vcHRpb25zWydoaWRlRGVsYXlUb3VjaHNjcmVlbiddO1xuXG4gICAgcmV0dXJuIHRoaXMuaXNUb3VjaFNjcmVlbiA/IGhpZGVEZWxheVRvdWNoc2NyZWVuIDogaGlkZURlbGF5O1xuICB9XG5cbiAgZ2V0UHJvcGVydGllcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgbGV0IGRpcmVjdGl2ZVByb3BlcnRpZXM6IGFueSA9IHt9O1xuICAgIGxldCBjdXN0b21Qcm9wZXJ0aWVzOiBhbnkgPSB7fTtcbiAgICBsZXQgYWxsUHJvcGVydGllczogYW55O1xuXG4gICAgZm9yICh2YXIgcHJvcCBpbiBjaGFuZ2VzKSB7XG4gICAgICBpZiAocHJvcCAhPT0gJ29wdGlvbnMnICYmIHByb3AgIT09ICd0b29sdGlwVmFsdWUnKSB7XG4gICAgICAgIGRpcmVjdGl2ZVByb3BlcnRpZXNbcHJvcF0gPSBjaGFuZ2VzW3Byb3BdLmN1cnJlbnRWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wID09PSAnb3B0aW9ucycpIHtcbiAgICAgICAgY3VzdG9tUHJvcGVydGllcyA9IGNoYW5nZXNbcHJvcF0uY3VycmVudFZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGFsbFByb3BlcnRpZXMgPSBPYmplY3QuYXNzaWduKHt9LCBjdXN0b21Qcm9wZXJ0aWVzLCBkaXJlY3RpdmVQcm9wZXJ0aWVzKTtcbiAgICByZXR1cm4gYWxsUHJvcGVydGllcztcbiAgfVxuXG4gIHJlbmFtZVByb3BlcnRpZXMob3B0aW9uczogYW55KSB7XG4gICAgZm9yICh2YXIgcHJvcCBpbiBvcHRpb25zKSB7XG4gICAgICBpZiAoYmFja3dhcmRDb21wYXRpYmlsaXR5T3B0aW9uc1twcm9wXSkge1xuICAgICAgICBvcHRpb25zW2JhY2t3YXJkQ29tcGF0aWJpbGl0eU9wdGlvbnNbcHJvcF1dID0gb3B0aW9uc1twcm9wXTtcbiAgICAgICAgZGVsZXRlIG9wdGlvbnNbcHJvcF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBnZXRFbGVtZW50UG9zaXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5lbGVtZW50UG9zaXRpb24gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgfVxuXG4gIGNyZWF0ZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG4gICAgdGhpcy5nZXRFbGVtZW50UG9zaXRpb24oKTtcblxuICAgIHRoaXMuY3JlYXRlVGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5hcHBlbmRDb21wb25lbnRUb0JvZHkoR3Jhdml0eVRvb2x0aXBDb21wb25lbnQpO1xuICAgIH0sIHRoaXMuZ2V0U2hvd0RlbGF5KCkpO1xuXG4gICAgdGhpcy5zaG93VGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93VG9vbHRpcEVsZW0oKTtcbiAgICB9LCB0aGlzLmdldFNob3dEZWxheSgpKTtcbiAgfVxuXG4gIGRlc3Ryb3lUb29sdGlwKG9wdGlvbnMgPSB7XG4gICAgZmFzdDogZmFsc2VcbiAgfSk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJUaW1lb3V0cygpO1xuXG4gICAgaWYgKHRoaXMuaXNUb29sdGlwRGVzdHJveWVkID09IGZhbHNlKSB7XG4gICAgICB0aGlzLmhpZGVUaW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuaGlkZVRvb2x0aXAoKTtcbiAgICAgIH0sIG9wdGlvbnMuZmFzdCA/IDAgOiB0aGlzLmdldEhpZGVEZWxheSgpKTtcblxuICAgICAgdGhpcy5kZXN0cm95VGltZW91dElkID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29tcG9uZW50UmVmIHx8IHRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5hcHBSZWYuZGV0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgIHRoaXMuY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICAgICAgdHlwZTogJ2hpZGRlbicsXG4gICAgICAgICAgcG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uXG4gICAgICAgIH0pO1xuICAgICAgfSwgb3B0aW9ucy5mYXN0ID8gMCA6IHRoaXMuZGVzdHJveURlbGF5KTtcbiAgICB9XG4gIH1cblxuICBzaG93VG9vbHRpcEVsZW0oKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhclRpbWVvdXRzKCk7XG4gICAgKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuc2hvdyA9IHRydWU7XG4gICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICB0eXBlOiAnc2hvdycsXG4gICAgICBwb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb25cbiAgICB9KTtcbiAgfVxuXG4gIGhpZGVUb29sdGlwKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYgfHwgdGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgKDxBZENvbXBvbmVudD50aGlzLmNvbXBvbmVudFJlZi5pbnN0YW5jZSkuc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuZXZlbnRzLmVtaXQoe1xuICAgICAgdHlwZTogJ2hpZGUnLFxuICAgICAgcG9zaXRpb246IHRoaXMudG9vbHRpcFBvc2l0aW9uXG4gICAgfSk7XG4gIH1cblxuICBhcHBlbmRDb21wb25lbnRUb0JvZHkoY29tcG9uZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG4gICAgICAucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KVxuICAgICAgLmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcblxuICAgICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmRhdGEgPSB7XG4gICAgICB2YWx1ZTogdGhpcy50b29sdGlwVmFsdWUsXG4gICAgICBlbGVtZW50OiB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgIGVsZW1lbnRQb3NpdGlvbjogdGhpcy50b29sdGlwUG9zaXRpb24sXG4gICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnNcbiAgICB9XG4gICAgdGhpcy5hcHBSZWYuYXR0YWNoVmlldyh0aGlzLmNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgY29uc3QgZG9tRWxlbSA9ICh0aGlzLmNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9tRWxlbSk7XG5cbiAgICB0aGlzLmNvbXBvbmVudFN1YnNjcmliZSA9ICg8QWRDb21wb25lbnQ+dGhpcy5jb21wb25lbnRSZWYuaW5zdGFuY2UpLmV2ZW50cy5zdWJzY3JpYmUoKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlRXZlbnRzKGV2ZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyVGltZW91dHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY3JlYXRlVGltZW91dElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5jcmVhdGVUaW1lb3V0SWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNob3dUaW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lb3V0SWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhpZGVUaW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhpZGVUaW1lb3V0SWQpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRlc3Ryb3lUaW1lb3V0SWQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmRlc3Ryb3lUaW1lb3V0SWQpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc0Rpc3BsYXlPbkhvdmVyKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnNbJ2Rpc3BsYXknXSA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnNbJ2Rpc3BsYXlUb3VjaHNjcmVlbiddID09IGZhbHNlICYmIHRoaXMuaXNUb3VjaFNjcmVlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm9wdGlvbnNbJ3RyaWdnZXInXSA9PT0gJ2hvdmVyJztcbiAgfVxuXG4gIGdldCBpc0Rpc3BsYXlPbkNsaWNrKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLm9wdGlvbnNbJ2Rpc3BsYXknXSA9PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wdGlvbnNbJ2Rpc3BsYXlUb3VjaHNjcmVlbiddID09IGZhbHNlICYmIHRoaXMuaXNUb3VjaFNjcmVlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm9wdGlvbnNbJ3RyaWdnZXInXSA9PSAnY2xpY2snO1xuXG5cbiAgfVxuXG4gIGdldCBpc1RvdWNoU2NyZWVuKCkge1xuICAgIHZhciBwcmVmaXhlcyA9ICcgLXdlYmtpdC0gLW1vei0gLW8tIC1tcy0gJy5zcGxpdCgnICcpO1xuICAgIHZhciBtcSA9IGZ1bmN0aW9uIChxdWVyeTogYW55KSB7XG4gICAgICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEocXVlcnkpLm1hdGNoZXM7XG4gICAgfVxuXG4gICAgaWYgKCgnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3cpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICAvLyBpbmNsdWRlIHRoZSAnaGVhcnR6JyBhcyBhIHdheSB0byBoYXZlIGEgbm9uIG1hdGNoaW5nIE1RIHRvIGhlbHAgdGVybWluYXRlIHRoZSBqb2luXG4gICAgLy8gaHR0cHM6Ly9naXQuaW8vdnpuRkhcbiAgICB2YXIgcXVlcnkgPSBbJygnLCBwcmVmaXhlcy5qb2luKCd0b3VjaC1lbmFibGVkKSwoJyksICdoZWFydHonLCAnKSddLmpvaW4oJycpO1xuICAgIHJldHVybiBtcShxdWVyeSk7XG4gIH1cblxuICBhcHBseU9wdGlvbnNEZWZhdWx0KGRlZmF1bHRPcHRpb25zOiBhbnksIG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zLCB0aGlzLmluaXRPcHRpb25zIHx8IHt9LCB0aGlzLm9wdGlvbnMsIG9wdGlvbnMpO1xuICB9XG5cbiAgaGFuZGxlRXZlbnRzKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ3Nob3duJykge1xuICAgICAgdGhpcy5ldmVudHMuZW1pdCh7XG4gICAgICAgIHR5cGU6ICdzaG93bicsXG4gICAgICAgIHBvc2l0aW9uOiB0aGlzLnRvb2x0aXBQb3NpdGlvblxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNob3coKSB7XG4gICAgaWYgKCF0aGlzLnRvb2x0aXBWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5jb21wb25lbnRSZWYgfHwgdGhpcy5pc1Rvb2x0aXBEZXN0cm95ZWQpIHtcbiAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcCgpO1xuICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNUb29sdGlwRGVzdHJveWVkKSB7XG4gICAgICB0aGlzLnNob3dUb29sdGlwRWxlbSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoaWRlKCkge1xuICAgIHRoaXMuZGVzdHJveVRvb2x0aXAoKTtcbiAgfVxufVxuIl19