ng-configcat-publicapi-ui 4.2.0 → 4.2.2

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 (51) hide show
  1. package/esm2022/lib/_directives/input-display-normalizer.directive.mjs +4 -4
  2. package/esm2022/lib/_services/app-data-adapter.mjs +4 -4
  3. package/esm2022/lib/_services/comparison-value-list-helper.mjs +4 -4
  4. package/esm2022/lib/_services/form-generator.mjs +4 -4
  5. package/esm2022/lib/_services/messaging.service.mjs +4 -4
  6. package/esm2022/lib/_services/public-api.service.mjs +4 -4
  7. package/esm2022/lib/_services/setting-list-form-helper.mjs +4 -4
  8. package/esm2022/lib/_services/tracking.directive.mjs +4 -4
  9. package/esm2022/lib/ace-editor/ace-editor.component.mjs +4 -4
  10. package/esm2022/lib/authorization/authorization.component.mjs +4 -4
  11. package/esm2022/lib/base/base-select.component.mjs +4 -4
  12. package/esm2022/lib/base/base.component.mjs +4 -4
  13. package/esm2022/lib/configuration.mjs +4 -4
  14. package/esm2022/lib/dialogs/confirmation-dialog/confirmation-dialog.mjs +4 -4
  15. package/esm2022/lib/dialogs/delete-setting-dialog/delete-setting-dialog.component.mjs +4 -4
  16. package/esm2022/lib/dialogs/expand-dialog/expand-dialog.component.mjs +4 -4
  17. package/esm2022/lib/dialogs/info-dialog/info-dialog.mjs +4 -4
  18. package/esm2022/lib/dialogs/reason-dialog/reason-dialog.component.mjs +4 -4
  19. package/esm2022/lib/dialogs/reroute-dialog/reroute-dialog.mjs +4 -4
  20. package/esm2022/lib/dialogs/save-snackbar/save-snackbar.component.mjs +4 -4
  21. package/esm2022/lib/ng-configcat-publicapi-ui.module.mjs +5 -5
  22. package/esm2022/lib/selects/config-select/config-select.component.mjs +4 -4
  23. package/esm2022/lib/selects/environment-select/environment-select.component.mjs +4 -4
  24. package/esm2022/lib/selects/product-select/product-select.component.mjs +4 -4
  25. package/esm2022/lib/selects/setting-select/setting-select.component.mjs +4 -4
  26. package/esm2022/lib/setting-item/setting-item.component.mjs +4 -4
  27. package/esm2022/lib/setting-list/setting/rollout-percentage-items/rollout-percentage-items.component.mjs +4 -4
  28. package/esm2022/lib/setting-list/setting/rollout-rules/rollout-rules.component.mjs +4 -4
  29. package/esm2022/lib/setting-list/setting/setting.component.mjs +4 -4
  30. package/esm2022/lib/setting-list/setting/value/value.component.mjs +4 -4
  31. package/esm2022/lib/setting-list/setting-list.component.mjs +4 -4
  32. package/esm2022/lib/v2/feature-flag/date-time-picker/date-time-picker.component.mjs +4 -4
  33. package/esm2022/lib/v2/feature-flag/dependees-dialog/dependees-dialog.component.mjs +4 -4
  34. package/esm2022/lib/v2/feature-flag/evaluation-formula/evaluation-formula.component.mjs +4 -4
  35. package/esm2022/lib/v2/feature-flag/evaluation-formula/feature-flag-value/feature-flag-value.component.mjs +4 -4
  36. package/esm2022/lib/v2/feature-flag/evaluation-formula/popout-text-editor-dialog/popout-text-editor-dialog.component.mjs +4 -4
  37. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/condition-chip/condition-chip.component.mjs +4 -4
  38. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/conditions.component.mjs +4 -4
  39. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/prerequisite-flag-condition/prerequisite-flag-condition.component.mjs +4 -4
  40. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/segment-condition/segment-condition.component.mjs +4 -4
  41. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/comparator-dialog/comparator-dialog.component.mjs +4 -4
  42. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/popout-list-editor-dialog/popout-list-editor-dialog.component.mjs +4 -4
  43. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/conditions/user-condition/user-condition.component.mjs +4 -4
  44. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/percentage-options/percentage-options.component.mjs +4 -4
  45. package/esm2022/lib/v2/feature-flag/evaluation-formula/targeting-rule/targeting-rule.component.mjs +4 -4
  46. package/esm2022/lib/v2/feature-flag/feature-flag.component.mjs +4 -4
  47. package/esm2022/lib/v2/feature-flag/percentage-evaluation-attribute-dialog/percentage-evaluation-attribute-dialog.component.mjs +4 -4
  48. package/esm2022/lib/v2/feature-flag-item.component.mjs +4 -4
  49. package/fesm2022/ng-configcat-publicapi-ui.mjs +145 -145
  50. package/fesm2022/ng-configcat-publicapi-ui.mjs.map +1 -1
  51. package/package.json +4 -4
@@ -182,10 +182,10 @@ export class EvaluationFormulaComponent {
182
182
  prerequisiteIds: prerequisiteIds
183
183
  });
184
184
  }
185
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EvaluationFormulaComponent, deps: [{ token: i1.FormGenerator }], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: EvaluationFormulaComponent, selector: "app-evaluation-formula", inputs: { formGroup: "formGroup", segments: "segments", flagState: "flagState", showVariationId: "showVariationId", featureFlagLimitations: "featureFlagLimitations", canManageSegments: "canManageSegments", showPercentageEvaluationAttribute: "showPercentageEvaluationAttribute" }, outputs: { createSegmentRequested: "createSegmentRequested", manageSegmentsRequested: "manageSegmentsRequested", addSegmentConditionRequestedWithoutSegments: "addSegmentConditionRequestedWithoutSegments", changePercentageEvaluationAttributeRequested: "changePercentageEvaluationAttributeRequested", subscriptionLimitReached: "subscriptionLimitReached", prerequisiteConditionChanged: "prerequisiteConditionChanged", recalcAddButtons: "recalcAddButtons" }, ngImport: i0, template: "<div class=\"targeting-rule-outer\" *ngIf=\"flagState.addButtonRenderState.renderTopAddButtons && !flagState.readOnly\">\n <div class=\"grow vertical-center add-box pad-bottom left-align\">\n <div class=\"add-btn add-if\" [matMenuTriggerFor]=\"ormenu\" \n matTooltip=\"Add targeting rule\">+ IF</div>\n <div class=\"add-btn add-if pad-left\" (click)=\"addPercentageOptions()\" matTooltip=\"Target a percentage of users\" \n *ngIf=\"!flagState.addButtonRenderState.hasPercentageOnlyRule\">+ %</div>\n </div>\n</div>\n\n<div cdkDropList (cdkDropListDropped)=\"onDrop($event)\" [cdkDropListDisabled]=\"flagState.readOnly\" [cdkDropListSortPredicate]=\"sortPredicate()\">\n <div *ngFor=\"let targetingRule of formGroup.controls.targetingRules.controls; trackBy: trackByIndex; let i = index\">\n <div class=\"targeting-rule-outer grow\" cdkDrag [cdkDragDisabled]=\"isDragDisabled(targetingRule)\"\n [cdkDragData]=\"targetingRule\">\n <div class=\"drag-handle\">\n <div *ngIf=\"!isDragDisabled(targetingRule)\" cdkDragHandle matTooltip=\"Drag here to reorder\"\n matTooltipPosition=\"above\">\n <mat-icon>drag_indicator</mat-icon>\n </div>\n </div>\n <div class=\"white-box grow\">\n <app-targeting-rule class=\"grow\" [formGroup]=\"targetingRule\" [segments]=\"segments\"\n [flagState]=\"flagState\" [targetingRuleIndex]=\"i\"\n (removedAllRules)=\"remove(i)\" [featureFlagLimitations]=\"featureFlagLimitations\"\n (subscriptionLimitReached)=\"subscriptionLimitReachedCalled()\"\n [canManageSegments]=\"canManageSegments\" (createSegmentRequested)=\"createSegmentRequested.emit()\"\n (manageSegmentsRequested)=\"manageSegmentsRequested.emit()\"\n (addSegmentConditionRequestedWithoutSegments)=\"addSegmentConditionRequestedWithoutSegments.emit()\"\n [showPercentageEvaluationAttribute]=\"showPercentageEvaluationAttribute\"\n [percentageEvaluationAttribute]=\"formGroup.controls.percentageEvaluationAttribute.value\"\n (changePercentageEvaluationAttributeRequested)=\"changePercentageEvaluationAttributeRequested.emit()\"\n (prerequisiteConditionChanged)=\"recalcPrerequisiteReferences()\"></app-targeting-rule>\n <div class=\"delete\">\n <button type=\"button\" mat-icon-button matTooltip=\"Remove targeting rule\" (click)=\"remove(i)\"\n *ngIf=\"!flagState.readOnly\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"targeting-rule-outer\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.showAddRuleButtons && !flagState.readOnly\">\n <div class=\"grow vertical-center add-box pad-bottom pad-top center-shift\">\n <div class=\"add-btn add-if\" \n [matMenuTriggerFor]=\"ormenu\" \n matTooltip=\"Add targeting rule\" \n *ngIf=\"!flagState.readOnly\">+ OR</div>\n <div class=\"add-btn add-if pad-left\" (click)=\"addPercentageOptions()\" \n matTooltip=\"Target a percentage of users\" \n *ngIf=\"!flagState.addButtonRenderState.hasPercentageOnlyRule\">+ %</div>\n </div>\n </div>\n <div class=\"or-chip\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.showOrChip\">\n <div class=\"chip-container\">\n <mat-chip-set>\n <mat-chip disabled>OR</mat-chip>\n </mat-chip-set>\n </div>\n </div>\n <div class=\"or-chip\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.renderSeparationArea\"></div>\n </div>\n</div>\n\n<div class=\"targeting-rule-outer\">\n <div class=\"drag-handle\"></div>\n <div class=\"white-box grow side-padd vertical-center\">\n <div class=\"chip-container fixed-width\" [ngClass]=\"flagState.addButtonRenderState.hasPercentageOnlyRule ? 'fixed-width-wide' : ''\">\n <mat-chip-set matTooltipPosition=\"above\" [matTooltip]=\"getChipTooltip()\">\n <mat-chip disabled>{{getChipText()}}</mat-chip>\n </mat-chip-set>\n </div>\n <app-feature-flag-value class=\"value grow\" [flagState]=\"flagState\"\n tooltip=\"Served value\" [formGroup]=\"formGroup.controls.defaultValue\"\n [featureFlagLimitations]=\"featureFlagLimitations\"></app-feature-flag-value>\n </div>\n</div>\n\n<mat-menu #ormenu class=\"menu-long-text-or\">\n <a mat-menu-item (click)=\"addUserCondition()\"><mat-icon>track_changes</mat-icon>Add rule with user condition</a>\n <a mat-menu-item (click)=\"addSegmentCondition()\"><mat-icon>pie_chart</mat-icon>Add rule with segment condition</a>\n <div matTooltip=\"There's no other flag in the Config to select as a prerequisite.\"\n [matTooltipDisabled]=\"flagState.prerequisiteSettings.length > 0\">\n <a mat-menu-item (click)=\"addPrerequisiteFlagCondition()\" [disabled]=\"!flagState.prerequisiteSettings.length\">\n <mat-icon>account_tree</mat-icon>Add rule with flag condition (prerequisite)\n </a>\n </div>\n</mat-menu>", styles: ["html{--mdc-text-button-container-height: 28px;--mdc-filled-button-container-height: 28px;--mdc-protected-button-container-height: 28px;--mdc-outlined-button-container-height: 28px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}html{--mat-icon-button-touch-target-display: none}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.or-chip{display:flex;justify-content:center;z-index:910;min-height:30px;margin:-11px 15px -9px 0}.or-chip .mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height: 24px}.or-chip .chip-container{z-index:910;align-self:center;margin-top:0}.targeting-rule-outer{display:flex;margin-right:20px}.targeting-rule-outer .drag-handle{align-self:center;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab;min-width:16px;max-width:16px;color:gray}.targeting-rule-outer .drag-handle mat-icon{font-size:18px}.targeting-rule-outer .drag-handle:active{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}.targeting-rule-outer .white-box{background-color:#f2f4f8;display:flex;flex-wrap:wrap;border:1px solid #c9c9c9;padding:8px 0;position:relative}.targeting-rule-outer .white-box .delete{color:#b1b1b1;position:absolute;cursor:pointer;top:-16px;right:-16px;z-index:900}.targeting-rule-outer .white-box .delete mat-icon{font-size:20px;height:20px;width:20px;z-index:900;background-color:#f3f3f3;border-radius:50%}.targeting-rule-outer .white-box .chip-container{margin-top:4px}.targeting-rule-outer .vertical-center{align-items:center}.targeting-rule-outer .grow{flex-grow:1}.targeting-rule-outer .side-padd{padding-left:16px;padding-right:16px}.targeting-rule-outer .add-box{margin-left:16px;display:flex}.targeting-rule-outer .add-box .add-if{min-width:42px;padding:5px 2px 5px 0;justify-content:center;text-align:center;color:#8b8b8b;border:1px dashed rgb(168,168,168);background-color:#f2f4f8;border-radius:50px}.targeting-rule-outer .add-box .add-if:hover{background-color:#e5e8f0}.targeting-rule-outer .add-box .pad-left{margin-left:5px}.targeting-rule-outer .center-shift{margin-right:10px}.targeting-rule-outer .left-align{justify-content:left}.targeting-rule-outer .pad-bottom{margin-bottom:8px}.targeting-rule-outer .pad-top{margin-top:8px}\n", ".chip-container{display:flex;margin-top:2px;align-self:start}.chip-container.fixed-width{width:110px}.chip-container.fixed-width-wide{width:130px}.chip-container mat-chip-set{margin-top:2px;width:100%}.chip-container mat-chip-set mat-chip{width:100%;margin-top:0;margin-bottom:0;height:24px;font-size:12px;background-color:#d1e3fa;opacity:1}.chip-container .add-btn mat-chip{background-color:transparent;border:1px dashed #afaeae;color:#afaeae;cursor:pointer}.chip-container .enter-sign{color:#ccc;margin:6px 3px 0 8px}.chip-container .enter-sign mat-icon{font-size:16px;width:16px;height:16px}\n", ".add-btn{cursor:pointer;background-color:transparent;display:flex;font-size:10px;align-items:center;border:1px dashed rgb(168,168,168);color:#979797;border-radius:15px}.add-btn:hover{background-color:#ebebeb}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i7.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i10.FeatureFlagValueComponent, selector: "app-feature-flag-value", inputs: ["formGroup", "flagState", "featureFlagLimitations", "isPrerequisite", "tooltip"] }, { kind: "component", type: i11.TargetingRuleComponent, selector: "app-targeting-rule", inputs: ["formGroup", "segments", "flagState", "targetingRuleIndex", "featureFlagLimitations", "canManageSegments", "showPercentageEvaluationAttribute", "percentageEvaluationAttribute"], outputs: ["createSegmentRequested", "manageSegmentsRequested", "addSegmentConditionRequestedWithoutSegments", "removedAllRules", "subscriptionLimitReached", "changePercentageEvaluationAttributeRequested", "prerequisiteConditionChanged"] }] }); }
185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EvaluationFormulaComponent, deps: [{ token: i1.FormGenerator }], target: i0.ɵɵFactoryTarget.Component }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: EvaluationFormulaComponent, selector: "app-evaluation-formula", inputs: { formGroup: "formGroup", segments: "segments", flagState: "flagState", showVariationId: "showVariationId", featureFlagLimitations: "featureFlagLimitations", canManageSegments: "canManageSegments", showPercentageEvaluationAttribute: "showPercentageEvaluationAttribute" }, outputs: { createSegmentRequested: "createSegmentRequested", manageSegmentsRequested: "manageSegmentsRequested", addSegmentConditionRequestedWithoutSegments: "addSegmentConditionRequestedWithoutSegments", changePercentageEvaluationAttributeRequested: "changePercentageEvaluationAttributeRequested", subscriptionLimitReached: "subscriptionLimitReached", prerequisiteConditionChanged: "prerequisiteConditionChanged", recalcAddButtons: "recalcAddButtons" }, ngImport: i0, template: "<div class=\"targeting-rule-outer\" *ngIf=\"flagState.addButtonRenderState.renderTopAddButtons && !flagState.readOnly\">\n <div class=\"grow vertical-center add-box pad-bottom left-align\">\n <div class=\"add-btn add-if\" [matMenuTriggerFor]=\"ormenu\" \n matTooltip=\"Add targeting rule\">+ IF</div>\n <div class=\"add-btn add-if pad-left\" (click)=\"addPercentageOptions()\" matTooltip=\"Target a percentage of users\" \n *ngIf=\"!flagState.addButtonRenderState.hasPercentageOnlyRule\">+ %</div>\n </div>\n</div>\n\n<div cdkDropList (cdkDropListDropped)=\"onDrop($event)\" [cdkDropListDisabled]=\"flagState.readOnly\" [cdkDropListSortPredicate]=\"sortPredicate()\">\n <div *ngFor=\"let targetingRule of formGroup.controls.targetingRules.controls; trackBy: trackByIndex; let i = index\">\n <div class=\"targeting-rule-outer grow\" cdkDrag [cdkDragDisabled]=\"isDragDisabled(targetingRule)\"\n [cdkDragData]=\"targetingRule\">\n <div class=\"drag-handle\">\n <div *ngIf=\"!isDragDisabled(targetingRule)\" cdkDragHandle matTooltip=\"Drag here to reorder\"\n matTooltipPosition=\"above\">\n <mat-icon>drag_indicator</mat-icon>\n </div>\n </div>\n <div class=\"white-box grow\">\n <app-targeting-rule class=\"grow\" [formGroup]=\"targetingRule\" [segments]=\"segments\"\n [flagState]=\"flagState\" [targetingRuleIndex]=\"i\"\n (removedAllRules)=\"remove(i)\" [featureFlagLimitations]=\"featureFlagLimitations\"\n (subscriptionLimitReached)=\"subscriptionLimitReachedCalled()\"\n [canManageSegments]=\"canManageSegments\" (createSegmentRequested)=\"createSegmentRequested.emit()\"\n (manageSegmentsRequested)=\"manageSegmentsRequested.emit()\"\n (addSegmentConditionRequestedWithoutSegments)=\"addSegmentConditionRequestedWithoutSegments.emit()\"\n [showPercentageEvaluationAttribute]=\"showPercentageEvaluationAttribute\"\n [percentageEvaluationAttribute]=\"formGroup.controls.percentageEvaluationAttribute.value\"\n (changePercentageEvaluationAttributeRequested)=\"changePercentageEvaluationAttributeRequested.emit()\"\n (prerequisiteConditionChanged)=\"recalcPrerequisiteReferences()\"></app-targeting-rule>\n <div class=\"delete\">\n <button type=\"button\" mat-icon-button matTooltip=\"Remove targeting rule\" (click)=\"remove(i)\"\n *ngIf=\"!flagState.readOnly\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"targeting-rule-outer\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.showAddRuleButtons && !flagState.readOnly\">\n <div class=\"grow vertical-center add-box pad-bottom pad-top center-shift\">\n <div class=\"add-btn add-if\" \n [matMenuTriggerFor]=\"ormenu\" \n matTooltip=\"Add targeting rule\" \n *ngIf=\"!flagState.readOnly\">+ OR</div>\n <div class=\"add-btn add-if pad-left\" (click)=\"addPercentageOptions()\" \n matTooltip=\"Target a percentage of users\" \n *ngIf=\"!flagState.addButtonRenderState.hasPercentageOnlyRule\">+ %</div>\n </div>\n </div>\n <div class=\"or-chip\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.showOrChip\">\n <div class=\"chip-container\">\n <mat-chip-set>\n <mat-chip disabled>OR</mat-chip>\n </mat-chip-set>\n </div>\n </div>\n <div class=\"or-chip\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.renderSeparationArea\"></div>\n </div>\n</div>\n\n<div class=\"targeting-rule-outer\">\n <div class=\"drag-handle\"></div>\n <div class=\"white-box grow side-padd vertical-center\">\n <div class=\"chip-container fixed-width\" [ngClass]=\"flagState.addButtonRenderState.hasPercentageOnlyRule ? 'fixed-width-wide' : ''\">\n <mat-chip-set matTooltipPosition=\"above\" [matTooltip]=\"getChipTooltip()\">\n <mat-chip disabled>{{getChipText()}}</mat-chip>\n </mat-chip-set>\n </div>\n <app-feature-flag-value class=\"value grow\" [flagState]=\"flagState\"\n tooltip=\"Served value\" [formGroup]=\"formGroup.controls.defaultValue\"\n [featureFlagLimitations]=\"featureFlagLimitations\"></app-feature-flag-value>\n </div>\n</div>\n\n<mat-menu #ormenu class=\"menu-long-text-or\">\n <a mat-menu-item (click)=\"addUserCondition()\"><mat-icon>track_changes</mat-icon>Add rule with user condition</a>\n <a mat-menu-item (click)=\"addSegmentCondition()\"><mat-icon>pie_chart</mat-icon>Add rule with segment condition</a>\n <div matTooltip=\"There's no other flag in the Config to select as a prerequisite.\"\n [matTooltipDisabled]=\"flagState.prerequisiteSettings.length > 0\">\n <a mat-menu-item (click)=\"addPrerequisiteFlagCondition()\" [disabled]=\"!flagState.prerequisiteSettings.length\">\n <mat-icon>account_tree</mat-icon>Add rule with flag condition (prerequisite)\n </a>\n </div>\n</mat-menu>", styles: ["html{--mdc-text-button-container-height: 28px;--mdc-filled-button-container-height: 28px;--mdc-protected-button-container-height: 28px;--mdc-outlined-button-container-height: 28px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}html{--mat-icon-button-touch-target-display: none}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.or-chip{display:flex;justify-content:center;z-index:910;min-height:30px;margin:-11px 15px -9px 0}.or-chip .mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height: 24px}.or-chip .chip-container{z-index:910;align-self:center;margin-top:0}.targeting-rule-outer{display:flex;margin-right:20px}.targeting-rule-outer .drag-handle{align-self:center;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab;min-width:16px;max-width:16px;color:gray}.targeting-rule-outer .drag-handle mat-icon{font-size:18px}.targeting-rule-outer .drag-handle:active{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}.targeting-rule-outer .white-box{background-color:#f2f4f8;display:flex;flex-wrap:wrap;border:1px solid #c9c9c9;padding:8px 0;position:relative}.targeting-rule-outer .white-box .delete{color:#b1b1b1;position:absolute;cursor:pointer;top:-16px;right:-16px;z-index:900}.targeting-rule-outer .white-box .delete mat-icon{font-size:20px;height:20px;width:20px;z-index:900;background-color:#f3f3f3;border-radius:50%}.targeting-rule-outer .white-box .chip-container{margin-top:4px}.targeting-rule-outer .vertical-center{align-items:center}.targeting-rule-outer .grow{flex-grow:1}.targeting-rule-outer .side-padd{padding-left:16px;padding-right:16px}.targeting-rule-outer .add-box{margin-left:16px;display:flex}.targeting-rule-outer .add-box .add-if{min-width:42px;padding:5px 2px 5px 0;justify-content:center;text-align:center;color:#8b8b8b;border:1px dashed rgb(168,168,168);background-color:#f2f4f8;border-radius:50px}.targeting-rule-outer .add-box .add-if:hover{background-color:#e5e8f0}.targeting-rule-outer .add-box .pad-left{margin-left:5px}.targeting-rule-outer .center-shift{margin-right:10px}.targeting-rule-outer .left-align{justify-content:left}.targeting-rule-outer .pad-bottom{margin-bottom:8px}.targeting-rule-outer .pad-top{margin-top:8px}\n", ".chip-container{display:flex;margin-top:2px;align-self:start}.chip-container.fixed-width{width:110px}.chip-container.fixed-width-wide{width:130px}.chip-container mat-chip-set{margin-top:2px;width:100%}.chip-container mat-chip-set mat-chip{width:100%;margin-top:0;margin-bottom:0;height:24px;font-size:12px;background-color:#d1e3fa;opacity:1}.chip-container .add-btn mat-chip{background-color:transparent;border:1px dashed #afaeae;color:#afaeae;cursor:pointer}.chip-container .enter-sign{color:#ccc;margin:6px 3px 0 8px}.chip-container .enter-sign mat-icon{font-size:16px;width:16px;height:16px}\n", ".add-btn{cursor:pointer;background-color:transparent;display:flex;font-size:10px;align-items:center;border:1px dashed rgb(168,168,168);color:#979797;border-radius:15px}.add-btn:hover{background-color:#ebebeb}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i7.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i8.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i8.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i8.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i9.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i9.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i9.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i10.FeatureFlagValueComponent, selector: "app-feature-flag-value", inputs: ["formGroup", "flagState", "featureFlagLimitations", "isPrerequisite", "tooltip"] }, { kind: "component", type: i11.TargetingRuleComponent, selector: "app-targeting-rule", inputs: ["formGroup", "segments", "flagState", "targetingRuleIndex", "featureFlagLimitations", "canManageSegments", "showPercentageEvaluationAttribute", "percentageEvaluationAttribute"], outputs: ["createSegmentRequested", "manageSegmentsRequested", "addSegmentConditionRequestedWithoutSegments", "removedAllRules", "subscriptionLimitReached", "changePercentageEvaluationAttributeRequested", "prerequisiteConditionChanged"] }] }); }
187
187
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EvaluationFormulaComponent, decorators: [{
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EvaluationFormulaComponent, decorators: [{
189
189
  type: Component,
190
190
  args: [{ selector: 'app-evaluation-formula', template: "<div class=\"targeting-rule-outer\" *ngIf=\"flagState.addButtonRenderState.renderTopAddButtons && !flagState.readOnly\">\n <div class=\"grow vertical-center add-box pad-bottom left-align\">\n <div class=\"add-btn add-if\" [matMenuTriggerFor]=\"ormenu\" \n matTooltip=\"Add targeting rule\">+ IF</div>\n <div class=\"add-btn add-if pad-left\" (click)=\"addPercentageOptions()\" matTooltip=\"Target a percentage of users\" \n *ngIf=\"!flagState.addButtonRenderState.hasPercentageOnlyRule\">+ %</div>\n </div>\n</div>\n\n<div cdkDropList (cdkDropListDropped)=\"onDrop($event)\" [cdkDropListDisabled]=\"flagState.readOnly\" [cdkDropListSortPredicate]=\"sortPredicate()\">\n <div *ngFor=\"let targetingRule of formGroup.controls.targetingRules.controls; trackBy: trackByIndex; let i = index\">\n <div class=\"targeting-rule-outer grow\" cdkDrag [cdkDragDisabled]=\"isDragDisabled(targetingRule)\"\n [cdkDragData]=\"targetingRule\">\n <div class=\"drag-handle\">\n <div *ngIf=\"!isDragDisabled(targetingRule)\" cdkDragHandle matTooltip=\"Drag here to reorder\"\n matTooltipPosition=\"above\">\n <mat-icon>drag_indicator</mat-icon>\n </div>\n </div>\n <div class=\"white-box grow\">\n <app-targeting-rule class=\"grow\" [formGroup]=\"targetingRule\" [segments]=\"segments\"\n [flagState]=\"flagState\" [targetingRuleIndex]=\"i\"\n (removedAllRules)=\"remove(i)\" [featureFlagLimitations]=\"featureFlagLimitations\"\n (subscriptionLimitReached)=\"subscriptionLimitReachedCalled()\"\n [canManageSegments]=\"canManageSegments\" (createSegmentRequested)=\"createSegmentRequested.emit()\"\n (manageSegmentsRequested)=\"manageSegmentsRequested.emit()\"\n (addSegmentConditionRequestedWithoutSegments)=\"addSegmentConditionRequestedWithoutSegments.emit()\"\n [showPercentageEvaluationAttribute]=\"showPercentageEvaluationAttribute\"\n [percentageEvaluationAttribute]=\"formGroup.controls.percentageEvaluationAttribute.value\"\n (changePercentageEvaluationAttributeRequested)=\"changePercentageEvaluationAttributeRequested.emit()\"\n (prerequisiteConditionChanged)=\"recalcPrerequisiteReferences()\"></app-targeting-rule>\n <div class=\"delete\">\n <button type=\"button\" mat-icon-button matTooltip=\"Remove targeting rule\" (click)=\"remove(i)\"\n *ngIf=\"!flagState.readOnly\">\n <mat-icon>cancel</mat-icon>\n </button>\n </div>\n </div>\n </div>\n <div class=\"targeting-rule-outer\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.showAddRuleButtons && !flagState.readOnly\">\n <div class=\"grow vertical-center add-box pad-bottom pad-top center-shift\">\n <div class=\"add-btn add-if\" \n [matMenuTriggerFor]=\"ormenu\" \n matTooltip=\"Add targeting rule\" \n *ngIf=\"!flagState.readOnly\">+ OR</div>\n <div class=\"add-btn add-if pad-left\" (click)=\"addPercentageOptions()\" \n matTooltip=\"Target a percentage of users\" \n *ngIf=\"!flagState.addButtonRenderState.hasPercentageOnlyRule\">+ %</div>\n </div>\n </div>\n <div class=\"or-chip\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.showOrChip\">\n <div class=\"chip-container\">\n <mat-chip-set>\n <mat-chip disabled>OR</mat-chip>\n </mat-chip-set>\n </div>\n </div>\n <div class=\"or-chip\" *ngIf=\"flagState.addButtonRenderState.addRuleButtonTracker[i]?.renderSeparationArea\"></div>\n </div>\n</div>\n\n<div class=\"targeting-rule-outer\">\n <div class=\"drag-handle\"></div>\n <div class=\"white-box grow side-padd vertical-center\">\n <div class=\"chip-container fixed-width\" [ngClass]=\"flagState.addButtonRenderState.hasPercentageOnlyRule ? 'fixed-width-wide' : ''\">\n <mat-chip-set matTooltipPosition=\"above\" [matTooltip]=\"getChipTooltip()\">\n <mat-chip disabled>{{getChipText()}}</mat-chip>\n </mat-chip-set>\n </div>\n <app-feature-flag-value class=\"value grow\" [flagState]=\"flagState\"\n tooltip=\"Served value\" [formGroup]=\"formGroup.controls.defaultValue\"\n [featureFlagLimitations]=\"featureFlagLimitations\"></app-feature-flag-value>\n </div>\n</div>\n\n<mat-menu #ormenu class=\"menu-long-text-or\">\n <a mat-menu-item (click)=\"addUserCondition()\"><mat-icon>track_changes</mat-icon>Add rule with user condition</a>\n <a mat-menu-item (click)=\"addSegmentCondition()\"><mat-icon>pie_chart</mat-icon>Add rule with segment condition</a>\n <div matTooltip=\"There's no other flag in the Config to select as a prerequisite.\"\n [matTooltipDisabled]=\"flagState.prerequisiteSettings.length > 0\">\n <a mat-menu-item (click)=\"addPrerequisiteFlagCondition()\" [disabled]=\"!flagState.prerequisiteSettings.length\">\n <mat-icon>account_tree</mat-icon>Add rule with flag condition (prerequisite)\n </a>\n </div>\n</mat-menu>", styles: ["html{--mdc-text-button-container-height: 28px;--mdc-filled-button-container-height: 28px;--mdc-protected-button-container-height: 28px;--mdc-outlined-button-container-height: 28px;--mat-text-button-touch-target-display: none;--mat-filled-button-touch-target-display: none;--mat-protected-button-touch-target-display: none;--mat-outlined-button-touch-target-display: none}html{--mat-icon-button-touch-target-display: none}.mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 32px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:4px}.cdk-drop-list-dragging .cdk-drag{transition:transform .25s cubic-bezier(0,0,.2,1)}.cdk-drag-animating{transition:transform .3s cubic-bezier(0,0,.2,1)}.or-chip{display:flex;justify-content:center;z-index:910;min-height:30px;margin:-11px 15px -9px 0}.or-chip .mat-mdc-chip.mat-mdc-standard-chip{--mdc-chip-container-height: 24px}.or-chip .chip-container{z-index:910;align-self:center;margin-top:0}.targeting-rule-outer{display:flex;margin-right:20px}.targeting-rule-outer .drag-handle{align-self:center;cursor:move;cursor:grab;cursor:-moz-grab;cursor:-webkit-grab;min-width:16px;max-width:16px;color:gray}.targeting-rule-outer .drag-handle mat-icon{font-size:18px}.targeting-rule-outer .drag-handle:active{cursor:grabbing;cursor:-moz-grabbing;cursor:-webkit-grabbing}.targeting-rule-outer .white-box{background-color:#f2f4f8;display:flex;flex-wrap:wrap;border:1px solid #c9c9c9;padding:8px 0;position:relative}.targeting-rule-outer .white-box .delete{color:#b1b1b1;position:absolute;cursor:pointer;top:-16px;right:-16px;z-index:900}.targeting-rule-outer .white-box .delete mat-icon{font-size:20px;height:20px;width:20px;z-index:900;background-color:#f3f3f3;border-radius:50%}.targeting-rule-outer .white-box .chip-container{margin-top:4px}.targeting-rule-outer .vertical-center{align-items:center}.targeting-rule-outer .grow{flex-grow:1}.targeting-rule-outer .side-padd{padding-left:16px;padding-right:16px}.targeting-rule-outer .add-box{margin-left:16px;display:flex}.targeting-rule-outer .add-box .add-if{min-width:42px;padding:5px 2px 5px 0;justify-content:center;text-align:center;color:#8b8b8b;border:1px dashed rgb(168,168,168);background-color:#f2f4f8;border-radius:50px}.targeting-rule-outer .add-box .add-if:hover{background-color:#e5e8f0}.targeting-rule-outer .add-box .pad-left{margin-left:5px}.targeting-rule-outer .center-shift{margin-right:10px}.targeting-rule-outer .left-align{justify-content:left}.targeting-rule-outer .pad-bottom{margin-bottom:8px}.targeting-rule-outer .pad-top{margin-top:8px}\n", ".chip-container{display:flex;margin-top:2px;align-self:start}.chip-container.fixed-width{width:110px}.chip-container.fixed-width-wide{width:130px}.chip-container mat-chip-set{margin-top:2px;width:100%}.chip-container mat-chip-set mat-chip{width:100%;margin-top:0;margin-bottom:0;height:24px;font-size:12px;background-color:#d1e3fa;opacity:1}.chip-container .add-btn mat-chip{background-color:transparent;border:1px dashed #afaeae;color:#afaeae;cursor:pointer}.chip-container .enter-sign{color:#ccc;margin:6px 3px 0 8px}.chip-container .enter-sign mat-icon{font-size:16px;width:16px;height:16px}\n", ".add-btn{cursor:pointer;background-color:transparent;display:flex;font-size:10px;align-items:center;border:1px dashed rgb(168,168,168);color:#979797;border-radius:15px}.add-btn:hover{background-color:#ebebeb}\n"] }]
191
191
  }], ctorParameters: () => [{ type: i1.FormGenerator }], propDecorators: { formGroup: [{
@@ -217,4 +217,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
217
217
  }], recalcAddButtons: [{
218
218
  type: Output
219
219
  }] } });
220
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdGlvbi1mb3JtdWxhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL2V2YWx1YXRpb24tZm9ybXVsYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS9ldmFsdWF0aW9uLWZvcm11bGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsY0FBYyxFQUFZLGlCQUFpQixFQUc1QyxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBVzVCLE1BQU0sT0FBTywwQkFBMEI7SUFrQnJDLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBVHRDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUMsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QyxnREFBMkMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pFLGlEQUE0QyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEUsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBd0Is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SSxTQUFTLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUM7b0JBQ2pELGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3pHLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUM7WUFDckMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ3hELGVBQWUsRUFBRSxlQUFlO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBck1VLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDZ4QkNsQnZDLGc1S0FvRlc7OzJGRGxFRSwwQkFBMEI7a0JBVHRDLFNBQVM7K0JBQ0Usd0JBQXdCO2tGQVN6QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUNBQWlDO3NCQUF6QyxLQUFLO2dCQUVJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csMkNBQTJDO3NCQUFwRCxNQUFNO2dCQUNHLDRDQUE0QztzQkFBckQsTUFBTTtnQkFFRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csNEJBQTRCO3NCQUFyQyxNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIFVzZXJDb21wYXJhdG9yLCBJU2VnbWVudCwgU2VnbWVudENvbXBhcmF0b3IsXG4gIFVwZGF0ZVNldHRpbmdWYWx1ZUZvcm0sIFRhcmdldGluZ1J1bGVGb3JtLCBDb25kaXRpb25Gb3JtLFxuICBGb3JtR2VuZXJhdG9yLCBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucywgSVByZXJlcXVpc2l0ZUNoYW5nZWQsIElGbGFnU3RhdGVcbn0gZnJvbSAnLi4vLi4vLi4vYm9vdHN0cmFwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWV2YWx1YXRpb24tZm9ybXVsYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmFsdWF0aW9uLWZvcm11bGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9ldmFsdWF0aW9uLWZvcm11bGEuY29tcG9uZW50LnNjc3MnLFxuICAgICcuL2NoaXBzLnNjc3MnLFxuICAgICcuL2FkZC1idG4uc2NzcydcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFdmFsdWF0aW9uRm9ybXVsYUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwPFVwZGF0ZVNldHRpbmdWYWx1ZUZvcm0+O1xuICBASW5wdXQoKSBzZWdtZW50czogSVNlZ21lbnRbXTtcbiAgQElucHV0KCkgZmxhZ1N0YXRlOiBJRmxhZ1N0YXRlO1xuICBASW5wdXQoKSBzaG93VmFyaWF0aW9uSWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGZlYXR1cmVGbGFnTGltaXRhdGlvbnM6IElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zO1xuICBASW5wdXQoKSBjYW5NYW5hZ2VTZWdtZW50czogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd1BlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBjcmVhdGVTZWdtZW50UmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbWFuYWdlU2VnbWVudHNSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBhZGRTZWdtZW50Q29uZGl0aW9uUmVxdWVzdGVkV2l0aG91dFNlZ21lbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIHN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElQcmVyZXF1aXNpdGVDaGFuZ2VkPigpO1xuICBAT3V0cHV0KCkgcmVjYWxjQWRkQnV0dG9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1HZW5lcmF0b3I6IEZvcm1HZW5lcmF0b3IpIHsgfVxuXG4gIGFkZFVzZXJDb25kaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrRmVhdHVyZUZsYWdMaW1pdGF0aW9ucygpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cDxUYXJnZXRpbmdSdWxlRm9ybT4oe1xuICAgICAgY29uZGl0aW9uczogbmV3IEZvcm1BcnJheTxGb3JtR3JvdXA8Q29uZGl0aW9uRm9ybT4+KFtcbiAgICAgICAgdGhpcy5mb3JtR2VuZXJhdG9yLmdlbmVyYXRlQ29uZGl0aW9uRm9ybUdyb3VwKHtcbiAgICAgICAgICB1c2VyQ29uZGl0aW9uOiB7IGNvbXBhcmlzb25BdHRyaWJ1dGU6ICdJZGVudGlmaWVyJywgY29tcGFyYXRvcjogVXNlckNvbXBhcmF0b3IuU2Vuc2l0aXZlVGV4dEVxdWFscywgY29tcGFyaXNvblZhbHVlOiB7IHN0cmluZ1ZhbHVlOiAnJyB9IH1cbiAgICAgICAgfSwgdGhpcy5mbGFnU3RhdGUucmVhZE9ubHksIHRoaXMuZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzLCB0aGlzLmZlYXR1cmVGbGFnTGltaXRhdGlvbnMpXG4gICAgICBdKSxcbiAgICAgIHZhbHVlOiB0aGlzLmZvcm1HZW5lcmF0b3IuZ2VuZXJhdGVEZWZhdWx0VmFsdWVGb3JtR3JvdXAodGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcuc2V0dGluZ1R5cGUsIHRoaXMuZmxhZ1N0YXRlLnJlYWRPbmx5LCB0aGlzLmZlYXR1cmVGbGFnTGltaXRhdGlvbnMpXG4gICAgfSk7XG4gICAgdGhpcy5hZGRUYXJnZXRpbmdSdWxlRm9ybUdyb3VwKGZvcm1Hcm91cCk7XG4gICAgZm9ybUdyb3VwLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5yZWNhbGNBZGRCdXR0b25zLmVtaXQoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFkZFNlZ21lbnRDb25kaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrRmVhdHVyZUZsYWdMaW1pdGF0aW9ucygpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFkZFNlZ21lbnRDb25kaXRpb25SZXF1ZXN0ZWRXaXRob3V0U2VnbWVudHMuZW1pdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXA8VGFyZ2V0aW5nUnVsZUZvcm0+KHtcbiAgICAgIGNvbmRpdGlvbnM6IG5ldyBGb3JtQXJyYXk8Rm9ybUdyb3VwPENvbmRpdGlvbkZvcm0+PihbXG4gICAgICAgIHRoaXMuZm9ybUdlbmVyYXRvci5nZW5lcmF0ZUNvbmRpdGlvbkZvcm1Hcm91cCh7XG4gICAgICAgICAgc2VnbWVudENvbmRpdGlvbjogeyBjb21wYXJhdG9yOiBTZWdtZW50Q29tcGFyYXRvci5Jc0luLCBzZWdtZW50SWQ6IG51bGwgfVxuICAgICAgICB9LCB0aGlzLmZsYWdTdGF0ZS5yZWFkT25seSwgdGhpcy5mbGFnU3RhdGUucHJlcmVxdWlzaXRlU2V0dGluZ3MsIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9ucylcbiAgICAgIF0pLFxuICAgICAgdmFsdWU6IHRoaXMuZm9ybUdlbmVyYXRvci5nZW5lcmF0ZURlZmF1bHRWYWx1ZUZvcm1Hcm91cCh0aGlzLmZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5zZXR0aW5nVHlwZSwgdGhpcy5mbGFnU3RhdGUucmVhZE9ubHksIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9ucylcbiAgICB9KTtcbiAgICB0aGlzLmFkZFRhcmdldGluZ1J1bGVGb3JtR3JvdXAoZm9ybUdyb3VwKTtcbiAgICBmb3JtR3JvdXAubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLnJlY2FsY0FkZEJ1dHRvbnMuZW1pdCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYWRkUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tGZWF0dXJlRmxhZ0xpbWl0YXRpb25zKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwPFRhcmdldGluZ1J1bGVGb3JtPih7XG4gICAgICBjb25kaXRpb25zOiBuZXcgRm9ybUFycmF5PEZvcm1Hcm91cDxDb25kaXRpb25Gb3JtPj4oW1xuICAgICAgICBuZXcgRm9ybUdyb3VwPENvbmRpdGlvbkZvcm0+KHtcbiAgICAgICAgICBwcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uOiB0aGlzLmZvcm1HZW5lcmF0b3IuZ2VuZXJhdGVFbXB0eVByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25Gb3JtR3JvdXAodGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zKVxuICAgICAgICB9KVxuICAgICAgXSksXG4gICAgICB2YWx1ZTogdGhpcy5mb3JtR2VuZXJhdG9yLmdlbmVyYXRlRGVmYXVsdFZhbHVlRm9ybUdyb3VwKHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLnNldHRpbmdUeXBlLCB0aGlzLmZsYWdTdGF0ZS5yZWFkT25seSwgdGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zKVxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGFyZ2V0aW5nUnVsZUZvcm1Hcm91cChmb3JtR3JvdXApO1xuICAgIGZvcm1Hcm91cC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMucmVjYWxjQWRkQnV0dG9ucy5lbWl0KCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhZGRQZXJjZW50YWdlT3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5mbGFnU3RhdGUuYWRkQnV0dG9uUmVuZGVyU3RhdGUuaGFzUGVyY2VudGFnZU9ubHlSdWxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGhpcy5jaGVja0ZlYXR1cmVGbGFnTGltaXRhdGlvbnMoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZm9ybUdlbmVyYXRvci5nZW5lcmF0ZVRhcmdldGluZ1J1bGVXaXRoRW1wdHlQZXJjZW50YWdlT3B0aW9ucyhcbiAgICAgIHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLnNldHRpbmdUeXBlLCB0aGlzLmZsYWdTdGF0ZS5yZWFkT25seSwgdGhpcy5mbGFnU3RhdGUucHJlcmVxdWlzaXRlU2V0dGluZ3MsIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1xuICAgIClcbiAgICB0aGlzLmFkZFRhcmdldGluZ1J1bGVGb3JtR3JvdXAoZm9ybUdyb3VwKTtcbiAgICBmb3JtR3JvdXAubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLnJlY2FsY0FkZEJ1dHRvbnMuZW1pdCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYWRkVGFyZ2V0aW5nUnVsZUZvcm1Hcm91cChmb3JtR3JvdXA6IEZvcm1Hcm91cDxUYXJnZXRpbmdSdWxlRm9ybT4pIHtcbiAgICBpZiAodGhpcy5mbGFnU3RhdGUuYWRkQnV0dG9uUmVuZGVyU3RhdGUuaGFzUGVyY2VudGFnZU9ubHlSdWxlKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy50YXJnZXRpbmdSdWxlcy5pbnNlcnQodGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHMubGVuZ3RoIC0gMSwgZm9ybUdyb3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMucHVzaChmb3JtR3JvdXApO1xuICAgIH1cbiAgICB0aGlzLnJlY2FsY0FkZEJ1dHRvbnMuZW1pdCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY2hlY2tGZWF0dXJlRmxhZ0xpbWl0YXRpb25zKCkge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5jb250cm9scy50YXJnZXRpbmdSdWxlcy5sZW5ndGggPj0gdGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zLm1heFRhcmdldGluZ1J1bGVDb3VudCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25MaW1pdFJlYWNoZWQuZW1pdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyKTogYW55IHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBvbkRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPGFueT4pIHtcbiAgICBjb25zdCB0YXJnZXRpbmdSdWxlcyA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzO1xuICAgIG1vdmVJdGVtSW5BcnJheSh0YXJnZXRpbmdSdWxlcywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMucmVjYWxjQWRkQnV0dG9ucy5lbWl0KCk7XG4gIH1cblxuICBpc0RyYWdEaXNhYmxlZCh0YXJnZXRpbmdSdWxlOiBGb3JtR3JvdXA8VGFyZ2V0aW5nUnVsZUZvcm0+KSB7XG4gICAgLy8gSWYgdGhlIGxhc3QgdGFyZ2V0aW5nIHJ1bGUgaGFzIG9ubHkgcGVyY2VudGFnZSBvcHRpb25zLCB3ZSBzaG91bGQgbm90IGFsbG93IG1vdmluZyBhbnl0aGluZyBiZWZvcmUvYWZ0ZXIgaXQuXG4gICAgcmV0dXJuIHRoaXMuZmxhZ1N0YXRlLnJlYWRPbmx5IHx8IHRoaXMuZm9ybUdlbmVyYXRvci5pc1BlcmNlbnRhZ2VPbmx5VGFyZ2V0aW5nUnVsZSh0YXJnZXRpbmdSdWxlKTtcbiAgfVxuXG4gIHNvcnRQcmVkaWNhdGUoKSB7XG4gICAgcmV0dXJuIChpbmRleDogbnVtYmVyKSA9PiB0aGlzLnNvcnRQcmVkaWNhdGVGdW5jdGlvbihpbmRleCk7XG4gIH1cblxuICBzb3J0UHJlZGljYXRlRnVuY3Rpb24oaW5kZXg6IG51bWJlcikge1xuICAgIC8vIElmIHRoZSBsYXN0IHRhcmdldGluZyBydWxlIGhhcyBvbmx5IHBlcmNlbnRhZ2Ugb3B0aW9ucywgd2Ugc2hvdWxkIG5vdCBhbGxvdyBtb3ZpbmcgYW55dGhpbmcgYmVmb3JlL2FmdGVyIGl0LlxuICAgIHJldHVybiBpbmRleCA8IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzLmxlbmd0aCAtIDEgfHxcbiAgICAgICF0aGlzLmZvcm1HZW5lcmF0b3IuaXNQZXJjZW50YWdlT25seVRhcmdldGluZ1J1bGUodGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHNbaW5kZXhdKVxuICB9XG5cbiAgZ2V0Q2hpcFRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuZmxhZ1N0YXRlLmFkZEJ1dHRvblJlbmRlclN0YXRlLmhhc1BlcmNlbnRhZ2VPbmx5UnVsZSkge1xuICAgICAgICByZXR1cm4gJ1RvIHVuaWRlbnRpZmllZDonO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdUbyBhbGwgb3RoZXJzOic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICdUbyBhbGwgdXNlcnM6JztcbiAgfVxuXG4gIGdldENoaXBUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5oYXNQZXJjZW50YWdlT25seVJ1bGUpIHtcbiAgICAgICAgcmV0dXJuICdUaGlzIGZhbGxiYWNrIHZhbHVlIHdpbGwgYmUgc2VydmVkIGluIGNhc2UgdGhlIHVzZXIgY2FuXFwndCBiZSBpZGVudGlmaWVkLic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJ1RoaXMgdmFsdWUgd2lsbCBiZSBzZXJ2ZWQgdG8gYWxsIHVzZXJzIHdobyB0aGUgYWJvdmUgcnVsZXMgZG9uXFwndCBhcHBseS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJlbW92ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkRW1pdFByZXJlcXVpc2l0ZUNoYW5nZWQgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1xuICAgICAgLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzW2luZGV4XS5jb250cm9sc1xuICAgICAgLmNvbmRpdGlvbnM/LmNvbnRyb2xzXG4gICAgICAuc29tZShjID0+IGMuY29udHJvbHMucHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbik7XG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5yZWNhbGNBZGRCdXR0b25zLmVtaXQoKTtcbiAgICBpZiAoc2hvdWxkRW1pdFByZXJlcXVpc2l0ZUNoYW5nZWQpIHtcbiAgICAgIHRoaXMucmVjYWxjUHJlcmVxdWlzaXRlUmVmZXJlbmNlcygpO1xuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZENhbGxlZCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZC5lbWl0KCk7XG4gIH1cblxuICByZWNhbGNQcmVyZXF1aXNpdGVSZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXJlcXVpc2l0ZUlkcyA9IFtdXG4gICAgZm9yIChjb25zdCBydWxlIG9mIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBydWxlLmNvbnRyb2xzLmNvbmRpdGlvbnMuY29udHJvbHMpIHtcbiAgICAgICAgaWYgKGNvbmRpdGlvbi5jb250cm9scy5wcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uKSB7XG4gICAgICAgICAgcHJlcmVxdWlzaXRlSWRzLnB1c2goY29uZGl0aW9uLmNvbnRyb2xzLnByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb24uY29udHJvbHMucHJlcmVxdWlzaXRlU2V0dGluZ0lkLnZhbHVlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucHJlcmVxdWlzaXRlQ29uZGl0aW9uQ2hhbmdlZC5lbWl0KHtcbiAgICAgIHNldHRpbmdJZDogdGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcuc2V0dGluZ0lkLFxuICAgICAgcHJlcmVxdWlzaXRlSWRzOiBwcmVyZXF1aXNpdGVJZHNcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLW91dGVyXCIgKm5nSWY9XCJmbGFnU3RhdGUuYWRkQnV0dG9uUmVuZGVyU3RhdGUucmVuZGVyVG9wQWRkQnV0dG9ucyAmJiAhZmxhZ1N0YXRlLnJlYWRPbmx5XCI+XG4gICAgPGRpdiBjbGFzcz1cImdyb3cgdmVydGljYWwtY2VudGVyIGFkZC1ib3ggcGFkLWJvdHRvbSBsZWZ0LWFsaWduXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnRuIGFkZC1pZlwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcm1lbnVcIiBcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJBZGQgdGFyZ2V0aW5nIHJ1bGVcIj4rIElGPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnRuIGFkZC1pZiBwYWQtbGVmdFwiIChjbGljayk9XCJhZGRQZXJjZW50YWdlT3B0aW9ucygpXCIgbWF0VG9vbHRpcD1cIlRhcmdldCBhIHBlcmNlbnRhZ2Ugb2YgdXNlcnNcIiBcbiAgICAgICAgICAgICpuZ0lmPVwiIWZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5oYXNQZXJjZW50YWdlT25seVJ1bGVcIj4rICU8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wKCRldmVudClcIiBbY2RrRHJvcExpc3REaXNhYmxlZF09XCJmbGFnU3RhdGUucmVhZE9ubHlcIiBbY2RrRHJvcExpc3RTb3J0UHJlZGljYXRlXT1cInNvcnRQcmVkaWNhdGUoKVwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhcmdldGluZ1J1bGUgb2YgZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzOyB0cmFja0J5OiB0cmFja0J5SW5kZXg7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLW91dGVyIGdyb3dcIiBjZGtEcmFnIFtjZGtEcmFnRGlzYWJsZWRdPVwiaXNEcmFnRGlzYWJsZWQodGFyZ2V0aW5nUnVsZSlcIlxuICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cInRhcmdldGluZ1J1bGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNEcmFnRGlzYWJsZWQodGFyZ2V0aW5nUnVsZSlcIiBjZGtEcmFnSGFuZGxlIG1hdFRvb2x0aXA9XCJEcmFnIGhlcmUgdG8gcmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aGl0ZS1ib3ggZ3Jvd1wiPlxuICAgICAgICAgICAgICAgIDxhcHAtdGFyZ2V0aW5nLXJ1bGUgY2xhc3M9XCJncm93XCIgW2Zvcm1Hcm91cF09XCJ0YXJnZXRpbmdSdWxlXCIgW3NlZ21lbnRzXT1cInNlZ21lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZsYWdTdGF0ZV09XCJmbGFnU3RhdGVcIiBbdGFyZ2V0aW5nUnVsZUluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZEFsbFJ1bGVzKT1cInJlbW92ZShpKVwiIFtmZWF0dXJlRmxhZ0xpbWl0YXRpb25zXT1cImZlYXR1cmVGbGFnTGltaXRhdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAoc3Vic2NyaXB0aW9uTGltaXRSZWFjaGVkKT1cInN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZENhbGxlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Nhbk1hbmFnZVNlZ21lbnRzXT1cImNhbk1hbmFnZVNlZ21lbnRzXCIgKGNyZWF0ZVNlZ21lbnRSZXF1ZXN0ZWQpPVwiY3JlYXRlU2VnbWVudFJlcXVlc3RlZC5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAobWFuYWdlU2VnbWVudHNSZXF1ZXN0ZWQpPVwibWFuYWdlU2VnbWVudHNSZXF1ZXN0ZWQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGFkZFNlZ21lbnRDb25kaXRpb25SZXF1ZXN0ZWRXaXRob3V0U2VnbWVudHMpPVwiYWRkU2VnbWVudENvbmRpdGlvblJlcXVlc3RlZFdpdGhvdXRTZWdtZW50cy5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1BlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlXT1cInNob3dQZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZV09XCJmb3JtR3JvdXAuY29udHJvbHMucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVSZXF1ZXN0ZWQpPVwiY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVSZXF1ZXN0ZWQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQpPVwicmVjYWxjUHJlcmVxdWlzaXRlUmVmZXJlbmNlcygpXCI+PC9hcHAtdGFyZ2V0aW5nLXJ1bGU+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIlJlbW92ZSB0YXJnZXRpbmcgcnVsZVwiIChjbGljayk9XCJyZW1vdmUoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmxhZ1N0YXRlLnJlYWRPbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXRpbmctcnVsZS1vdXRlclwiICpuZ0lmPVwiZmxhZ1N0YXRlLmFkZEJ1dHRvblJlbmRlclN0YXRlLmFkZFJ1bGVCdXR0b25UcmFja2VyW2ldPy5zaG93QWRkUnVsZUJ1dHRvbnMgJiYgIWZsYWdTdGF0ZS5yZWFkT25seVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3cgdmVydGljYWwtY2VudGVyIGFkZC1ib3ggcGFkLWJvdHRvbSBwYWQtdG9wIGNlbnRlci1zaGlmdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnRuIGFkZC1pZlwiIFxuICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwib3JtZW51XCIgXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJBZGQgdGFyZ2V0aW5nIHJ1bGVcIiBcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmxhZ1N0YXRlLnJlYWRPbmx5XCI+KyBPUjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnRuIGFkZC1pZiBwYWQtbGVmdFwiIChjbGljayk9XCJhZGRQZXJjZW50YWdlT3B0aW9ucygpXCIgXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJUYXJnZXQgYSBwZXJjZW50YWdlIG9mIHVzZXJzXCIgXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5oYXNQZXJjZW50YWdlT25seVJ1bGVcIj4rICU8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9yLWNoaXBcIiAqbmdJZj1cImZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5hZGRSdWxlQnV0dG9uVHJhY2tlcltpXT8uc2hvd09yQ2hpcFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGlwLXNldD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGlwIGRpc2FibGVkPk9SPC9tYXQtY2hpcD5cbiAgICAgICAgICAgICAgICA8L21hdC1jaGlwLXNldD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9yLWNoaXBcIiAqbmdJZj1cImZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5hZGRSdWxlQnV0dG9uVHJhY2tlcltpXT8ucmVuZGVyU2VwYXJhdGlvbkFyZWFcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidGFyZ2V0aW5nLXJ1bGUtb3V0ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhZy1oYW5kbGVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwid2hpdGUtYm94IGdyb3cgc2lkZS1wYWRkIHZlcnRpY2FsLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXIgZml4ZWQtd2lkdGhcIiBbbmdDbGFzc109XCJmbGFnU3RhdGUuYWRkQnV0dG9uUmVuZGVyU3RhdGUuaGFzUGVyY2VudGFnZU9ubHlSdWxlID8gJ2ZpeGVkLXdpZHRoLXdpZGUnIDogJydcIj5cbiAgICAgICAgICAgIDxtYXQtY2hpcC1zZXQgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBbbWF0VG9vbHRpcF09XCJnZXRDaGlwVG9vbHRpcCgpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGlwIGRpc2FibGVkPnt7Z2V0Q2hpcFRleHQoKX19PC9tYXQtY2hpcD5cbiAgICAgICAgICAgIDwvbWF0LWNoaXAtc2V0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFwcC1mZWF0dXJlLWZsYWctdmFsdWUgY2xhc3M9XCJ2YWx1ZSBncm93XCIgW2ZsYWdTdGF0ZV09XCJmbGFnU3RhdGVcIlxuICAgICAgICAgICAgdG9vbHRpcD1cIlNlcnZlZCB2YWx1ZVwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmRlZmF1bHRWYWx1ZVwiXG4gICAgICAgICAgICBbZmVhdHVyZUZsYWdMaW1pdGF0aW9uc109XCJmZWF0dXJlRmxhZ0xpbWl0YXRpb25zXCI+PC9hcHAtZmVhdHVyZS1mbGFnLXZhbHVlPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxtYXQtbWVudSAjb3JtZW51IGNsYXNzPVwibWVudS1sb25nLXRleHQtb3JcIj5cbiAgICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhZGRVc2VyQ29uZGl0aW9uKClcIj48bWF0LWljb24+dHJhY2tfY2hhbmdlczwvbWF0LWljb24+QWRkIHJ1bGUgd2l0aCB1c2VyIGNvbmRpdGlvbjwvYT5cbiAgICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhZGRTZWdtZW50Q29uZGl0aW9uKClcIj48bWF0LWljb24+cGllX2NoYXJ0PC9tYXQtaWNvbj5BZGQgcnVsZSB3aXRoIHNlZ21lbnQgY29uZGl0aW9uPC9hPlxuICAgIDxkaXYgbWF0VG9vbHRpcD1cIlRoZXJlJ3Mgbm8gb3RoZXIgZmxhZyBpbiB0aGUgQ29uZmlnIHRvIHNlbGVjdCBhcyBhIHByZXJlcXVpc2l0ZS5cIlxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cImZsYWdTdGF0ZS5wcmVyZXF1aXNpdGVTZXR0aW5ncy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxhIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFkZFByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb24oKVwiIFtkaXNhYmxlZF09XCIhZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzLmxlbmd0aFwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFjY291bnRfdHJlZTwvbWF0LWljb24+QWRkIHJ1bGUgd2l0aCBmbGFnIGNvbmRpdGlvbiAocHJlcmVxdWlzaXRlKVxuICAgICAgICA8L2E+XG4gICAgPC9kaXY+XG48L21hdC1tZW51PiJdfQ==
220
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdGlvbi1mb3JtdWxhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL2V2YWx1YXRpb24tZm9ybXVsYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS9ldmFsdWF0aW9uLWZvcm11bGEuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsY0FBYyxFQUFZLGlCQUFpQixFQUc1QyxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBVzVCLE1BQU0sT0FBTywwQkFBMEI7SUFrQnJDLFlBQW9CLGFBQTRCO1FBQTVCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBVHRDLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDNUMsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QyxnREFBMkMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pFLGlEQUE0QyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEUsNkJBQXdCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QyxpQ0FBNEIsR0FBRyxJQUFJLFlBQVksRUFBd0Is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SSxTQUFTLENBQUMsUUFBUSxDQUFDLHlCQUF5QixFQUFFLENBQUM7b0JBQ2pELGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQ3pHLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxJQUFJLENBQUM7WUFDckMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTO1lBQ3hELGVBQWUsRUFBRSxlQUFlO1NBQ2pDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBck1VLDBCQUEwQjttR0FBMUIsMEJBQTBCLDZ4QkNsQnZDLGc1S0FvRlc7OzRGRGxFRSwwQkFBMEI7a0JBVHRDLFNBQVM7K0JBQ0Usd0JBQXdCO2tGQVN6QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUNBQWlDO3NCQUF6QyxLQUFLO2dCQUVJLHNCQUFzQjtzQkFBL0IsTUFBTTtnQkFDRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBQ0csMkNBQTJDO3NCQUFwRCxNQUFNO2dCQUNHLDRDQUE0QztzQkFBckQsTUFBTTtnQkFFRyx3QkFBd0I7c0JBQWpDLE1BQU07Z0JBQ0csNEJBQTRCO3NCQUFyQyxNQUFNO2dCQUNHLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWdEcm9wLCBtb3ZlSXRlbUluQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvZHJhZy1kcm9wJztcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1BcnJheSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIFVzZXJDb21wYXJhdG9yLCBJU2VnbWVudCwgU2VnbWVudENvbXBhcmF0b3IsXG4gIFVwZGF0ZVNldHRpbmdWYWx1ZUZvcm0sIFRhcmdldGluZ1J1bGVGb3JtLCBDb25kaXRpb25Gb3JtLFxuICBGb3JtR2VuZXJhdG9yLCBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucywgSVByZXJlcXVpc2l0ZUNoYW5nZWQsIElGbGFnU3RhdGVcbn0gZnJvbSAnLi4vLi4vLi4vYm9vdHN0cmFwJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWV2YWx1YXRpb24tZm9ybXVsYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ldmFsdWF0aW9uLWZvcm11bGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9ldmFsdWF0aW9uLWZvcm11bGEuY29tcG9uZW50LnNjc3MnLFxuICAgICcuL2NoaXBzLnNjc3MnLFxuICAgICcuL2FkZC1idG4uc2NzcydcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFdmFsdWF0aW9uRm9ybXVsYUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGZvcm1Hcm91cDogRm9ybUdyb3VwPFVwZGF0ZVNldHRpbmdWYWx1ZUZvcm0+O1xuICBASW5wdXQoKSBzZWdtZW50czogSVNlZ21lbnRbXTtcbiAgQElucHV0KCkgZmxhZ1N0YXRlOiBJRmxhZ1N0YXRlO1xuICBASW5wdXQoKSBzaG93VmFyaWF0aW9uSWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGZlYXR1cmVGbGFnTGltaXRhdGlvbnM6IElGZWF0dXJlRmxhZ0xpbWl0YXRpb25zO1xuICBASW5wdXQoKSBjYW5NYW5hZ2VTZWdtZW50czogYm9vbGVhbjtcbiAgQElucHV0KCkgc2hvd1BlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlOiBib29sZWFuO1xuXG4gIEBPdXRwdXQoKSBjcmVhdGVTZWdtZW50UmVxdWVzdGVkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgbWFuYWdlU2VnbWVudHNSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBhZGRTZWdtZW50Q29uZGl0aW9uUmVxdWVzdGVkV2l0aG91dFNlZ21lbnRzID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVSZXF1ZXN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpIHN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElQcmVyZXF1aXNpdGVDaGFuZ2VkPigpO1xuICBAT3V0cHV0KCkgcmVjYWxjQWRkQnV0dG9ucyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1HZW5lcmF0b3I6IEZvcm1HZW5lcmF0b3IpIHsgfVxuXG4gIGFkZFVzZXJDb25kaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrRmVhdHVyZUZsYWdMaW1pdGF0aW9ucygpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgZm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cDxUYXJnZXRpbmdSdWxlRm9ybT4oe1xuICAgICAgY29uZGl0aW9uczogbmV3IEZvcm1BcnJheTxGb3JtR3JvdXA8Q29uZGl0aW9uRm9ybT4+KFtcbiAgICAgICAgdGhpcy5mb3JtR2VuZXJhdG9yLmdlbmVyYXRlQ29uZGl0aW9uRm9ybUdyb3VwKHtcbiAgICAgICAgICB1c2VyQ29uZGl0aW9uOiB7IGNvbXBhcmlzb25BdHRyaWJ1dGU6ICdJZGVudGlmaWVyJywgY29tcGFyYXRvcjogVXNlckNvbXBhcmF0b3IuU2Vuc2l0aXZlVGV4dEVxdWFscywgY29tcGFyaXNvblZhbHVlOiB7IHN0cmluZ1ZhbHVlOiAnJyB9IH1cbiAgICAgICAgfSwgdGhpcy5mbGFnU3RhdGUucmVhZE9ubHksIHRoaXMuZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzLCB0aGlzLmZlYXR1cmVGbGFnTGltaXRhdGlvbnMpXG4gICAgICBdKSxcbiAgICAgIHZhbHVlOiB0aGlzLmZvcm1HZW5lcmF0b3IuZ2VuZXJhdGVEZWZhdWx0VmFsdWVGb3JtR3JvdXAodGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcuc2V0dGluZ1R5cGUsIHRoaXMuZmxhZ1N0YXRlLnJlYWRPbmx5LCB0aGlzLmZlYXR1cmVGbGFnTGltaXRhdGlvbnMpXG4gICAgfSk7XG4gICAgdGhpcy5hZGRUYXJnZXRpbmdSdWxlRm9ybUdyb3VwKGZvcm1Hcm91cCk7XG4gICAgZm9ybUdyb3VwLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5yZWNhbGNBZGRCdXR0b25zLmVtaXQoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIGFkZFNlZ21lbnRDb25kaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmNoZWNrRmVhdHVyZUZsYWdMaW1pdGF0aW9ucygpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2VnbWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFkZFNlZ21lbnRDb25kaXRpb25SZXF1ZXN0ZWRXaXRob3V0U2VnbWVudHMuZW1pdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXA8VGFyZ2V0aW5nUnVsZUZvcm0+KHtcbiAgICAgIGNvbmRpdGlvbnM6IG5ldyBGb3JtQXJyYXk8Rm9ybUdyb3VwPENvbmRpdGlvbkZvcm0+PihbXG4gICAgICAgIHRoaXMuZm9ybUdlbmVyYXRvci5nZW5lcmF0ZUNvbmRpdGlvbkZvcm1Hcm91cCh7XG4gICAgICAgICAgc2VnbWVudENvbmRpdGlvbjogeyBjb21wYXJhdG9yOiBTZWdtZW50Q29tcGFyYXRvci5Jc0luLCBzZWdtZW50SWQ6IG51bGwgfVxuICAgICAgICB9LCB0aGlzLmZsYWdTdGF0ZS5yZWFkT25seSwgdGhpcy5mbGFnU3RhdGUucHJlcmVxdWlzaXRlU2V0dGluZ3MsIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9ucylcbiAgICAgIF0pLFxuICAgICAgdmFsdWU6IHRoaXMuZm9ybUdlbmVyYXRvci5nZW5lcmF0ZURlZmF1bHRWYWx1ZUZvcm1Hcm91cCh0aGlzLmZsYWdTdGF0ZS5zZXR0aW5nVmFsdWUuc2V0dGluZy5zZXR0aW5nVHlwZSwgdGhpcy5mbGFnU3RhdGUucmVhZE9ubHksIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9ucylcbiAgICB9KTtcbiAgICB0aGlzLmFkZFRhcmdldGluZ1J1bGVGb3JtR3JvdXAoZm9ybUdyb3VwKTtcbiAgICBmb3JtR3JvdXAubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLnJlY2FsY0FkZEJ1dHRvbnMuZW1pdCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYWRkUHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbigpIHtcbiAgICBpZiAoIXRoaXMuY2hlY2tGZWF0dXJlRmxhZ0xpbWl0YXRpb25zKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwPFRhcmdldGluZ1J1bGVGb3JtPih7XG4gICAgICBjb25kaXRpb25zOiBuZXcgRm9ybUFycmF5PEZvcm1Hcm91cDxDb25kaXRpb25Gb3JtPj4oW1xuICAgICAgICBuZXcgRm9ybUdyb3VwPENvbmRpdGlvbkZvcm0+KHtcbiAgICAgICAgICBwcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uOiB0aGlzLmZvcm1HZW5lcmF0b3IuZ2VuZXJhdGVFbXB0eVByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb25Gb3JtR3JvdXAodGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zKVxuICAgICAgICB9KVxuICAgICAgXSksXG4gICAgICB2YWx1ZTogdGhpcy5mb3JtR2VuZXJhdG9yLmdlbmVyYXRlRGVmYXVsdFZhbHVlRm9ybUdyb3VwKHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLnNldHRpbmdUeXBlLCB0aGlzLmZsYWdTdGF0ZS5yZWFkT25seSwgdGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zKVxuICAgIH0pO1xuICAgIHRoaXMuYWRkVGFyZ2V0aW5nUnVsZUZvcm1Hcm91cChmb3JtR3JvdXApO1xuICAgIGZvcm1Hcm91cC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMucmVjYWxjQWRkQnV0dG9ucy5lbWl0KCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhZGRQZXJjZW50YWdlT3B0aW9ucygpIHtcbiAgICBpZiAodGhpcy5mbGFnU3RhdGUuYWRkQnV0dG9uUmVuZGVyU3RhdGUuaGFzUGVyY2VudGFnZU9ubHlSdWxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICghdGhpcy5jaGVja0ZlYXR1cmVGbGFnTGltaXRhdGlvbnMoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1Hcm91cCA9IHRoaXMuZm9ybUdlbmVyYXRvci5nZW5lcmF0ZVRhcmdldGluZ1J1bGVXaXRoRW1wdHlQZXJjZW50YWdlT3B0aW9ucyhcbiAgICAgIHRoaXMuZmxhZ1N0YXRlLnNldHRpbmdWYWx1ZS5zZXR0aW5nLnNldHRpbmdUeXBlLCB0aGlzLmZsYWdTdGF0ZS5yZWFkT25seSwgdGhpcy5mbGFnU3RhdGUucHJlcmVxdWlzaXRlU2V0dGluZ3MsIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9uc1xuICAgIClcbiAgICB0aGlzLmFkZFRhcmdldGluZ1J1bGVGb3JtR3JvdXAoZm9ybUdyb3VwKTtcbiAgICBmb3JtR3JvdXAubWFya0FzRGlydHkoKTtcbiAgICB0aGlzLnJlY2FsY0FkZEJ1dHRvbnMuZW1pdCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYWRkVGFyZ2V0aW5nUnVsZUZvcm1Hcm91cChmb3JtR3JvdXA6IEZvcm1Hcm91cDxUYXJnZXRpbmdSdWxlRm9ybT4pIHtcbiAgICBpZiAodGhpcy5mbGFnU3RhdGUuYWRkQnV0dG9uUmVuZGVyU3RhdGUuaGFzUGVyY2VudGFnZU9ubHlSdWxlKSB7XG4gICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy50YXJnZXRpbmdSdWxlcy5pbnNlcnQodGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHMubGVuZ3RoIC0gMSwgZm9ybUdyb3VwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMucHVzaChmb3JtR3JvdXApO1xuICAgIH1cbiAgICB0aGlzLnJlY2FsY0FkZEJ1dHRvbnMuZW1pdCgpO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY2hlY2tGZWF0dXJlRmxhZ0xpbWl0YXRpb25zKCkge1xuICAgIGlmICh0aGlzLmZvcm1Hcm91cC5jb250cm9scy50YXJnZXRpbmdSdWxlcy5sZW5ndGggPj0gdGhpcy5mZWF0dXJlRmxhZ0xpbWl0YXRpb25zLm1heFRhcmdldGluZ1J1bGVDb3VudCkge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb25MaW1pdFJlYWNoZWQuZW1pdCgpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRyYWNrQnlJbmRleChpbmRleDogbnVtYmVyKTogYW55IHtcbiAgICByZXR1cm4gaW5kZXg7XG4gIH1cblxuICBvbkRyb3AoZXZlbnQ6IENka0RyYWdEcm9wPGFueT4pIHtcbiAgICBjb25zdCB0YXJnZXRpbmdSdWxlcyA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzO1xuICAgIG1vdmVJdGVtSW5BcnJheSh0YXJnZXRpbmdSdWxlcywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcbiAgICB0aGlzLmZvcm1Hcm91cC5tYXJrQXNEaXJ0eSgpO1xuICAgIHRoaXMucmVjYWxjQWRkQnV0dG9ucy5lbWl0KCk7XG4gIH1cblxuICBpc0RyYWdEaXNhYmxlZCh0YXJnZXRpbmdSdWxlOiBGb3JtR3JvdXA8VGFyZ2V0aW5nUnVsZUZvcm0+KSB7XG4gICAgLy8gSWYgdGhlIGxhc3QgdGFyZ2V0aW5nIHJ1bGUgaGFzIG9ubHkgcGVyY2VudGFnZSBvcHRpb25zLCB3ZSBzaG91bGQgbm90IGFsbG93IG1vdmluZyBhbnl0aGluZyBiZWZvcmUvYWZ0ZXIgaXQuXG4gICAgcmV0dXJuIHRoaXMuZmxhZ1N0YXRlLnJlYWRPbmx5IHx8IHRoaXMuZm9ybUdlbmVyYXRvci5pc1BlcmNlbnRhZ2VPbmx5VGFyZ2V0aW5nUnVsZSh0YXJnZXRpbmdSdWxlKTtcbiAgfVxuXG4gIHNvcnRQcmVkaWNhdGUoKSB7XG4gICAgcmV0dXJuIChpbmRleDogbnVtYmVyKSA9PiB0aGlzLnNvcnRQcmVkaWNhdGVGdW5jdGlvbihpbmRleCk7XG4gIH1cblxuICBzb3J0UHJlZGljYXRlRnVuY3Rpb24oaW5kZXg6IG51bWJlcikge1xuICAgIC8vIElmIHRoZSBsYXN0IHRhcmdldGluZyBydWxlIGhhcyBvbmx5IHBlcmNlbnRhZ2Ugb3B0aW9ucywgd2Ugc2hvdWxkIG5vdCBhbGxvdyBtb3ZpbmcgYW55dGhpbmcgYmVmb3JlL2FmdGVyIGl0LlxuICAgIHJldHVybiBpbmRleCA8IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzLmxlbmd0aCAtIDEgfHxcbiAgICAgICF0aGlzLmZvcm1HZW5lcmF0b3IuaXNQZXJjZW50YWdlT25seVRhcmdldGluZ1J1bGUodGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHNbaW5kZXhdKVxuICB9XG5cbiAgZ2V0Q2hpcFRleHQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMuY29udHJvbHMubGVuZ3RoID4gMCkge1xuICAgICAgaWYgKHRoaXMuZmxhZ1N0YXRlLmFkZEJ1dHRvblJlbmRlclN0YXRlLmhhc1BlcmNlbnRhZ2VPbmx5UnVsZSkge1xuICAgICAgICByZXR1cm4gJ1RvIHVuaWRlbnRpZmllZDonO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdUbyBhbGwgb3RoZXJzOic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuICdUbyBhbGwgdXNlcnM6JztcbiAgfVxuXG4gIGdldENoaXBUb29sdGlwKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzLmxlbmd0aCA+IDApIHtcbiAgICAgIGlmICh0aGlzLmZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5oYXNQZXJjZW50YWdlT25seVJ1bGUpIHtcbiAgICAgICAgcmV0dXJuICdUaGlzIGZhbGxiYWNrIHZhbHVlIHdpbGwgYmUgc2VydmVkIGluIGNhc2UgdGhlIHVzZXIgY2FuXFwndCBiZSBpZGVudGlmaWVkLic7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gJ1RoaXMgdmFsdWUgd2lsbCBiZSBzZXJ2ZWQgdG8gYWxsIHVzZXJzIHdobyB0aGUgYWJvdmUgcnVsZXMgZG9uXFwndCBhcHBseS4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHJlbW92ZShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkRW1pdFByZXJlcXVpc2l0ZUNoYW5nZWQgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1xuICAgICAgLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzW2luZGV4XS5jb250cm9sc1xuICAgICAgLmNvbmRpdGlvbnM/LmNvbnRyb2xzXG4gICAgICAuc29tZShjID0+IGMuY29udHJvbHMucHJlcmVxdWlzaXRlRmxhZ0NvbmRpdGlvbik7XG4gICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMudGFyZ2V0aW5nUnVsZXMucmVtb3ZlQXQoaW5kZXgpO1xuICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLm1hcmtBc0RpcnR5KCk7XG4gICAgdGhpcy5yZWNhbGNBZGRCdXR0b25zLmVtaXQoKTtcbiAgICBpZiAoc2hvdWxkRW1pdFByZXJlcXVpc2l0ZUNoYW5nZWQpIHtcbiAgICAgIHRoaXMucmVjYWxjUHJlcmVxdWlzaXRlUmVmZXJlbmNlcygpO1xuICAgIH1cbiAgfVxuXG4gIHN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZENhbGxlZCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZC5lbWl0KCk7XG4gIH1cblxuICByZWNhbGNQcmVyZXF1aXNpdGVSZWZlcmVuY2VzKCk6IHZvaWQge1xuICAgIGNvbnN0IHByZXJlcXVpc2l0ZUlkcyA9IFtdXG4gICAgZm9yIChjb25zdCBydWxlIG9mIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvbmRpdGlvbiBvZiBydWxlLmNvbnRyb2xzLmNvbmRpdGlvbnMuY29udHJvbHMpIHtcbiAgICAgICAgaWYgKGNvbmRpdGlvbi5jb250cm9scy5wcmVyZXF1aXNpdGVGbGFnQ29uZGl0aW9uKSB7XG4gICAgICAgICAgcHJlcmVxdWlzaXRlSWRzLnB1c2goY29uZGl0aW9uLmNvbnRyb2xzLnByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb24uY29udHJvbHMucHJlcmVxdWlzaXRlU2V0dGluZ0lkLnZhbHVlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucHJlcmVxdWlzaXRlQ29uZGl0aW9uQ2hhbmdlZC5lbWl0KHtcbiAgICAgIHNldHRpbmdJZDogdGhpcy5mbGFnU3RhdGUuc2V0dGluZ1ZhbHVlLnNldHRpbmcuc2V0dGluZ0lkLFxuICAgICAgcHJlcmVxdWlzaXRlSWRzOiBwcmVyZXF1aXNpdGVJZHNcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLW91dGVyXCIgKm5nSWY9XCJmbGFnU3RhdGUuYWRkQnV0dG9uUmVuZGVyU3RhdGUucmVuZGVyVG9wQWRkQnV0dG9ucyAmJiAhZmxhZ1N0YXRlLnJlYWRPbmx5XCI+XG4gICAgPGRpdiBjbGFzcz1cImdyb3cgdmVydGljYWwtY2VudGVyIGFkZC1ib3ggcGFkLWJvdHRvbSBsZWZ0LWFsaWduXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnRuIGFkZC1pZlwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJvcm1lbnVcIiBcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJBZGQgdGFyZ2V0aW5nIHJ1bGVcIj4rIElGPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnRuIGFkZC1pZiBwYWQtbGVmdFwiIChjbGljayk9XCJhZGRQZXJjZW50YWdlT3B0aW9ucygpXCIgbWF0VG9vbHRpcD1cIlRhcmdldCBhIHBlcmNlbnRhZ2Ugb2YgdXNlcnNcIiBcbiAgICAgICAgICAgICpuZ0lmPVwiIWZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5oYXNQZXJjZW50YWdlT25seVJ1bGVcIj4rICU8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25Ecm9wKCRldmVudClcIiBbY2RrRHJvcExpc3REaXNhYmxlZF09XCJmbGFnU3RhdGUucmVhZE9ubHlcIiBbY2RrRHJvcExpc3RTb3J0UHJlZGljYXRlXT1cInNvcnRQcmVkaWNhdGUoKVwiPlxuICAgIDxkaXYgKm5nRm9yPVwibGV0IHRhcmdldGluZ1J1bGUgb2YgZm9ybUdyb3VwLmNvbnRyb2xzLnRhcmdldGluZ1J1bGVzLmNvbnRyb2xzOyB0cmFja0J5OiB0cmFja0J5SW5kZXg7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLW91dGVyIGdyb3dcIiBjZGtEcmFnIFtjZGtEcmFnRGlzYWJsZWRdPVwiaXNEcmFnRGlzYWJsZWQodGFyZ2V0aW5nUnVsZSlcIlxuICAgICAgICAgICAgW2Nka0RyYWdEYXRhXT1cInRhcmdldGluZ1J1bGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkcmFnLWhhbmRsZVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhaXNEcmFnRGlzYWJsZWQodGFyZ2V0aW5nUnVsZSlcIiBjZGtEcmFnSGFuZGxlIG1hdFRvb2x0aXA9XCJEcmFnIGhlcmUgdG8gcmVvcmRlclwiXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5kcmFnX2luZGljYXRvcjwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aGl0ZS1ib3ggZ3Jvd1wiPlxuICAgICAgICAgICAgICAgIDxhcHAtdGFyZ2V0aW5nLXJ1bGUgY2xhc3M9XCJncm93XCIgW2Zvcm1Hcm91cF09XCJ0YXJnZXRpbmdSdWxlXCIgW3NlZ21lbnRzXT1cInNlZ21lbnRzXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZsYWdTdGF0ZV09XCJmbGFnU3RhdGVcIiBbdGFyZ2V0aW5nUnVsZUluZGV4XT1cImlcIlxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlZEFsbFJ1bGVzKT1cInJlbW92ZShpKVwiIFtmZWF0dXJlRmxhZ0xpbWl0YXRpb25zXT1cImZlYXR1cmVGbGFnTGltaXRhdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAoc3Vic2NyaXB0aW9uTGltaXRSZWFjaGVkKT1cInN1YnNjcmlwdGlvbkxpbWl0UmVhY2hlZENhbGxlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Nhbk1hbmFnZVNlZ21lbnRzXT1cImNhbk1hbmFnZVNlZ21lbnRzXCIgKGNyZWF0ZVNlZ21lbnRSZXF1ZXN0ZWQpPVwiY3JlYXRlU2VnbWVudFJlcXVlc3RlZC5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAobWFuYWdlU2VnbWVudHNSZXF1ZXN0ZWQpPVwibWFuYWdlU2VnbWVudHNSZXF1ZXN0ZWQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGFkZFNlZ21lbnRDb25kaXRpb25SZXF1ZXN0ZWRXaXRob3V0U2VnbWVudHMpPVwiYWRkU2VnbWVudENvbmRpdGlvblJlcXVlc3RlZFdpdGhvdXRTZWdtZW50cy5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICBbc2hvd1BlcmNlbnRhZ2VFdmFsdWF0aW9uQXR0cmlidXRlXT1cInNob3dQZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtwZXJjZW50YWdlRXZhbHVhdGlvbkF0dHJpYnV0ZV09XCJmb3JtR3JvdXAuY29udHJvbHMucGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGUudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVSZXF1ZXN0ZWQpPVwiY2hhbmdlUGVyY2VudGFnZUV2YWx1YXRpb25BdHRyaWJ1dGVSZXF1ZXN0ZWQuZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKHByZXJlcXVpc2l0ZUNvbmRpdGlvbkNoYW5nZWQpPVwicmVjYWxjUHJlcmVxdWlzaXRlUmVmZXJlbmNlcygpXCI+PC9hcHAtdGFyZ2V0aW5nLXJ1bGU+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZVwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtaWNvbi1idXR0b24gbWF0VG9vbHRpcD1cIlJlbW92ZSB0YXJnZXRpbmcgcnVsZVwiIChjbGljayk9XCJyZW1vdmUoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmxhZ1N0YXRlLnJlYWRPbmx5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+Y2FuY2VsPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YXJnZXRpbmctcnVsZS1vdXRlclwiICpuZ0lmPVwiZmxhZ1N0YXRlLmFkZEJ1dHRvblJlbmRlclN0YXRlLmFkZFJ1bGVCdXR0b25UcmFja2VyW2ldPy5zaG93QWRkUnVsZUJ1dHRvbnMgJiYgIWZsYWdTdGF0ZS5yZWFkT25seVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdyb3cgdmVydGljYWwtY2VudGVyIGFkZC1ib3ggcGFkLWJvdHRvbSBwYWQtdG9wIGNlbnRlci1zaGlmdFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnRuIGFkZC1pZlwiIFxuICAgICAgICAgICAgICAgICAgICBbbWF0TWVudVRyaWdnZXJGb3JdPVwib3JtZW51XCIgXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJBZGQgdGFyZ2V0aW5nIHJ1bGVcIiBcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZmxhZ1N0YXRlLnJlYWRPbmx5XCI+KyBPUjwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhZGQtYnRuIGFkZC1pZiBwYWQtbGVmdFwiIChjbGljayk9XCJhZGRQZXJjZW50YWdlT3B0aW9ucygpXCIgXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJUYXJnZXQgYSBwZXJjZW50YWdlIG9mIHVzZXJzXCIgXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5oYXNQZXJjZW50YWdlT25seVJ1bGVcIj4rICU8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9yLWNoaXBcIiAqbmdJZj1cImZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5hZGRSdWxlQnV0dG9uVHJhY2tlcltpXT8uc2hvd09yQ2hpcFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoaXAtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGlwLXNldD5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGlwIGRpc2FibGVkPk9SPC9tYXQtY2hpcD5cbiAgICAgICAgICAgICAgICA8L21hdC1jaGlwLXNldD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9yLWNoaXBcIiAqbmdJZj1cImZsYWdTdGF0ZS5hZGRCdXR0b25SZW5kZXJTdGF0ZS5hZGRSdWxlQnV0dG9uVHJhY2tlcltpXT8ucmVuZGVyU2VwYXJhdGlvbkFyZWFcIj48L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwidGFyZ2V0aW5nLXJ1bGUtb3V0ZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJhZy1oYW5kbGVcIj48L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwid2hpdGUtYm94IGdyb3cgc2lkZS1wYWRkIHZlcnRpY2FsLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXIgZml4ZWQtd2lkdGhcIiBbbmdDbGFzc109XCJmbGFnU3RhdGUuYWRkQnV0dG9uUmVuZGVyU3RhdGUuaGFzUGVyY2VudGFnZU9ubHlSdWxlID8gJ2ZpeGVkLXdpZHRoLXdpZGUnIDogJydcIj5cbiAgICAgICAgICAgIDxtYXQtY2hpcC1zZXQgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIiBbbWF0VG9vbHRpcF09XCJnZXRDaGlwVG9vbHRpcCgpXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1jaGlwIGRpc2FibGVkPnt7Z2V0Q2hpcFRleHQoKX19PC9tYXQtY2hpcD5cbiAgICAgICAgICAgIDwvbWF0LWNoaXAtc2V0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGFwcC1mZWF0dXJlLWZsYWctdmFsdWUgY2xhc3M9XCJ2YWx1ZSBncm93XCIgW2ZsYWdTdGF0ZV09XCJmbGFnU3RhdGVcIlxuICAgICAgICAgICAgdG9vbHRpcD1cIlNlcnZlZCB2YWx1ZVwiIFtmb3JtR3JvdXBdPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmRlZmF1bHRWYWx1ZVwiXG4gICAgICAgICAgICBbZmVhdHVyZUZsYWdMaW1pdGF0aW9uc109XCJmZWF0dXJlRmxhZ0xpbWl0YXRpb25zXCI+PC9hcHAtZmVhdHVyZS1mbGFnLXZhbHVlPlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbjxtYXQtbWVudSAjb3JtZW51IGNsYXNzPVwibWVudS1sb25nLXRleHQtb3JcIj5cbiAgICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhZGRVc2VyQ29uZGl0aW9uKClcIj48bWF0LWljb24+dHJhY2tfY2hhbmdlczwvbWF0LWljb24+QWRkIHJ1bGUgd2l0aCB1c2VyIGNvbmRpdGlvbjwvYT5cbiAgICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJhZGRTZWdtZW50Q29uZGl0aW9uKClcIj48bWF0LWljb24+cGllX2NoYXJ0PC9tYXQtaWNvbj5BZGQgcnVsZSB3aXRoIHNlZ21lbnQgY29uZGl0aW9uPC9hPlxuICAgIDxkaXYgbWF0VG9vbHRpcD1cIlRoZXJlJ3Mgbm8gb3RoZXIgZmxhZyBpbiB0aGUgQ29uZmlnIHRvIHNlbGVjdCBhcyBhIHByZXJlcXVpc2l0ZS5cIlxuICAgICAgICBbbWF0VG9vbHRpcERpc2FibGVkXT1cImZsYWdTdGF0ZS5wcmVyZXF1aXNpdGVTZXR0aW5ncy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxhIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cImFkZFByZXJlcXVpc2l0ZUZsYWdDb25kaXRpb24oKVwiIFtkaXNhYmxlZF09XCIhZmxhZ1N0YXRlLnByZXJlcXVpc2l0ZVNldHRpbmdzLmxlbmd0aFwiPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFjY291bnRfdHJlZTwvbWF0LWljb24+QWRkIHJ1bGUgd2l0aCBmbGFnIGNvbmRpdGlvbiAocHJlcmVxdWlzaXRlKVxuICAgICAgICA8L2E+XG4gICAgPC9kaXY+XG48L21hdC1tZW51PiJdfQ==
@@ -41,10 +41,10 @@ export class FeatureFlagValueComponent {
41
41
  }
42
42
  });
43
43
  }
44
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FeatureFlagValueComponent, deps: [{ token: i1.MatDialog }, { token: i2.FormGenerator }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: FeatureFlagValueComponent, selector: "app-feature-flag-value", inputs: { formGroup: "formGroup", flagState: "flagState", featureFlagLimitations: "featureFlagLimitations", isPrerequisite: "isPrerequisite", tooltip: "tooltip" }, ngImport: i0, template: "<div class=\"targeting-rule-component smallest-form-field grow\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.stringValue\">\n <input matInput type=\"text\" [formControl]=\"formGroup.controls.stringValue\" [matTooltip]=\"tooltip\"\n placeholder=\"Add text ...\" />\n <button matSuffix class=\"expand-button\" type=\"button\" mat-icon-button matTooltip=\"Advanced editor\"\n (click)=\"expandText()\"><mat-icon>edit_note</mat-icon></button>\n <mat-error *ngIf=\"formGroup.controls.stringValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.stringValue)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.intValue\">\n <input matInput type=\"number\" [formControl]=\"formGroup.controls.intValue\"\n digitOnly digitOnlyAllowNegatives=\"true\"\n inputDisplayNormalizer [matTooltip]=\"tooltip\" placeholder=\"Add number ...\" />\n <mat-error *ngIf=\"formGroup.controls.intValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.intValue)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.doubleValue\">\n <input matInput type=\"number\" [formControl]=\"formGroup.controls.doubleValue\" inputDisplayNormalizer\n [matTooltip]=\"tooltip\" placeholder=\"Add number ...\" />\n <mat-error *ngIf=\"formGroup.controls.doubleValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.doubleValue)}}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"formGroup.controls.boolValue\" class=\"bool\" [class.readonly]=\"flagState.readOnly\">\n <label class=\"switch\" [matTooltip]=\"tooltip\">\n <input type=\"checkbox\" [formControl]=\"formGroup.controls.boolValue\" />\n <span class=\"slider round\"></span>\n </label>\n </div>\n</div>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", ".switch{position:relative;width:66px;height:30px;margin-left:4px;margin-top:0;margin-bottom:0}.switch input{display:none}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ff5252;-webkit-transition:.4s;transition:.4s;width:66px;height:30px}.slider:before{position:absolute;content:\"\";height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s}input:checked+.slider{background-color:#9acd32}input:focus+.slider{box-shadow:0 0 1px #9acd32}input:checked+.slider:before{-webkit-transform:translateX(36px);-ms-transform:translateX(36px);transform:translate(36px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.slider:after{content:\"Off\";color:#fff;display:block;position:absolute;transform:translate(-14%,-50%);top:50%;left:50%;font-size:10px;font-family:Verdana,sans-serif}input:checked+.slider:after{content:\"On\";transform:translate(-91%,-50%)}\n", ":host{display:flex;flex-grow:1}.targeting-rule-component{display:flex;flex-grow:1}.targeting-rule-component .bool{flex-grow:1;align-items:flex-end;display:flex;flex-direction:column;width:66px;height:30px}.targeting-rule-component .readonly{opacity:.6}.targeting-rule-component .expand-button{--mat-icon-button-touch-target-display: none;color:#00000070;margin-right:4px;padding:0;height:24px;width:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.targeting-rule-component .expand-button .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 28px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:2px}.targeting-rule-component .expand-button mat-icon{font-size:20px;height:20px;width:20px}.targeting-rule-component .variationId{margin:0 4px 0 5px;cursor:pointer;color:#9b9b9b;display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i10.InputDisplayNormalizerDirective, selector: "input[inputDisplayNormalizer]" }] }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureFlagValueComponent, deps: [{ token: i1.MatDialog }, { token: i2.FormGenerator }], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FeatureFlagValueComponent, selector: "app-feature-flag-value", inputs: { formGroup: "formGroup", flagState: "flagState", featureFlagLimitations: "featureFlagLimitations", isPrerequisite: "isPrerequisite", tooltip: "tooltip" }, ngImport: i0, template: "<div class=\"targeting-rule-component smallest-form-field grow\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.stringValue\">\n <input matInput type=\"text\" [formControl]=\"formGroup.controls.stringValue\" [matTooltip]=\"tooltip\"\n placeholder=\"Add text ...\" />\n <button matSuffix class=\"expand-button\" type=\"button\" mat-icon-button matTooltip=\"Advanced editor\"\n (click)=\"expandText()\"><mat-icon>edit_note</mat-icon></button>\n <mat-error *ngIf=\"formGroup.controls.stringValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.stringValue)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.intValue\">\n <input matInput type=\"number\" [formControl]=\"formGroup.controls.intValue\"\n digitOnly digitOnlyAllowNegatives=\"true\"\n inputDisplayNormalizer [matTooltip]=\"tooltip\" placeholder=\"Add number ...\" />\n <mat-error *ngIf=\"formGroup.controls.intValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.intValue)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.doubleValue\">\n <input matInput type=\"number\" [formControl]=\"formGroup.controls.doubleValue\" inputDisplayNormalizer\n [matTooltip]=\"tooltip\" placeholder=\"Add number ...\" />\n <mat-error *ngIf=\"formGroup.controls.doubleValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.doubleValue)}}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"formGroup.controls.boolValue\" class=\"bool\" [class.readonly]=\"flagState.readOnly\">\n <label class=\"switch\" [matTooltip]=\"tooltip\">\n <input type=\"checkbox\" [formControl]=\"formGroup.controls.boolValue\" />\n <span class=\"slider round\"></span>\n </label>\n </div>\n</div>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", ".switch{position:relative;width:66px;height:30px;margin-left:4px;margin-top:0;margin-bottom:0}.switch input{display:none}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ff5252;-webkit-transition:.4s;transition:.4s;width:66px;height:30px}.slider:before{position:absolute;content:\"\";height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s}input:checked+.slider{background-color:#9acd32}input:focus+.slider{box-shadow:0 0 1px #9acd32}input:checked+.slider:before{-webkit-transform:translateX(36px);-ms-transform:translateX(36px);transform:translate(36px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.slider:after{content:\"Off\";color:#fff;display:block;position:absolute;transform:translate(-14%,-50%);top:50%;left:50%;font-size:10px;font-family:Verdana,sans-serif}input:checked+.slider:after{content:\"On\";transform:translate(-91%,-50%)}\n", ":host{display:flex;flex-grow:1}.targeting-rule-component{display:flex;flex-grow:1}.targeting-rule-component .bool{flex-grow:1;align-items:flex-end;display:flex;flex-direction:column;width:66px;height:30px}.targeting-rule-component .readonly{opacity:.6}.targeting-rule-component .expand-button{--mat-icon-button-touch-target-display: none;color:#00000070;margin-right:4px;padding:0;height:24px;width:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.targeting-rule-component .expand-button .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 28px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:2px}.targeting-rule-component .expand-button mat-icon{font-size:20px;height:20px;width:20px}.targeting-rule-component .variationId{margin:0 4px 0 5px;cursor:pointer;color:#9b9b9b;display:flex;align-items:center}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i10.InputDisplayNormalizerDirective, selector: "input[inputDisplayNormalizer]" }] }); }
46
46
  }
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: FeatureFlagValueComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FeatureFlagValueComponent, decorators: [{
48
48
  type: Component,
49
49
  args: [{ selector: 'app-feature-flag-value', template: "<div class=\"targeting-rule-component smallest-form-field grow\">\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.stringValue\">\n <input matInput type=\"text\" [formControl]=\"formGroup.controls.stringValue\" [matTooltip]=\"tooltip\"\n placeholder=\"Add text ...\" />\n <button matSuffix class=\"expand-button\" type=\"button\" mat-icon-button matTooltip=\"Advanced editor\"\n (click)=\"expandText()\"><mat-icon>edit_note</mat-icon></button>\n <mat-error *ngIf=\"formGroup.controls.stringValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.stringValue)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.intValue\">\n <input matInput type=\"number\" [formControl]=\"formGroup.controls.intValue\"\n digitOnly digitOnlyAllowNegatives=\"true\"\n inputDisplayNormalizer [matTooltip]=\"tooltip\" placeholder=\"Add number ...\" />\n <mat-error *ngIf=\"formGroup.controls.intValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.intValue)}}\n </mat-error>\n </mat-form-field>\n <mat-form-field appearance=\"outline\" subscriptSizing=\"dynamic\" *ngIf=\"formGroup.controls.doubleValue\">\n <input matInput type=\"number\" [formControl]=\"formGroup.controls.doubleValue\" inputDisplayNormalizer\n [matTooltip]=\"tooltip\" placeholder=\"Add number ...\" />\n <mat-error *ngIf=\"formGroup.controls.doubleValue.invalid\">\n {{FormHelper.getErrorMessage(formGroup.controls.doubleValue)}}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"formGroup.controls.boolValue\" class=\"bool\" [class.readonly]=\"flagState.readOnly\">\n <label class=\"switch\" [matTooltip]=\"tooltip\">\n <input type=\"checkbox\" [formControl]=\"formGroup.controls.boolValue\" />\n <span class=\"slider round\"></span>\n </label>\n </div>\n</div>", styles: [".targeting-rule-line{display:flex;flex-wrap:wrap;margin:2px 0}.targeting-rule-line .wrapper-group{display:flex;flex-wrap:wrap}.targeting-rule-line .wrapper-group.grow{flex-grow:1}.targeting-rule-component{margin:2px 0;width:212px}.targeting-rule-component[hidden]{display:none}.targeting-rule-component.small{width:102px}.targeting-rule-component.grow{flex-grow:1}.targeting-rule-component.pad-right{margin-right:8px}.targeting-rule-component mat-form-field{width:100%;font-size:12px}.delete-button{margin-top:4px;color:#b1b1b1}.delete-button mat-icon{font-size:18px;height:18px;width:18px}.explanation-wrapper{display:flex;margin-top:2px}.explanation-wrapper .explanation{min-width:44px;margin-top:6px;margin-right:8px}@media (max-width: 500px){.targeting-rule-component{max-width:calc(100% - 4px);width:160px}.targeting-rule-component.small{width:78px}.targeting-rule-component.pad-right{margin-right:4px}}\n", ".switch{position:relative;width:66px;height:30px;margin-left:4px;margin-top:0;margin-bottom:0}.switch input{display:none}.slider{position:absolute;cursor:pointer;inset:0;background-color:#ff5252;-webkit-transition:.4s;transition:.4s;width:66px;height:30px}.slider:before{position:absolute;content:\"\";height:22px;width:22px;left:4px;bottom:4px;background-color:#fff;-webkit-transition:.4s;transition:.4s}input:checked+.slider{background-color:#9acd32}input:focus+.slider{box-shadow:0 0 1px #9acd32}input:checked+.slider:before{-webkit-transform:translateX(36px);-ms-transform:translateX(36px);transform:translate(36px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.slider:after{content:\"Off\";color:#fff;display:block;position:absolute;transform:translate(-14%,-50%);top:50%;left:50%;font-size:10px;font-family:Verdana,sans-serif}input:checked+.slider:after{content:\"On\";transform:translate(-91%,-50%)}\n", ":host{display:flex;flex-grow:1}.targeting-rule-component{display:flex;flex-grow:1}.targeting-rule-component .bool{flex-grow:1;align-items:flex-end;display:flex;flex-direction:column;width:66px;height:30px}.targeting-rule-component .readonly{opacity:.6}.targeting-rule-component .expand-button{--mat-icon-button-touch-target-display: none;color:#00000070;margin-right:4px;padding:0;height:24px;width:24px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.targeting-rule-component .expand-button .mat-mdc-icon-button.mat-mdc-button-base{--mdc-icon-button-state-layer-size: 28px;width:var(--mdc-icon-button-state-layer-size);height:var(--mdc-icon-button-state-layer-size);padding:2px}.targeting-rule-component .expand-button mat-icon{font-size:20px;height:20px;width:20px}.targeting-rule-component .variationId{margin:0 4px 0 5px;cursor:pointer;color:#9b9b9b;display:flex;align-items:center}\n"] }]
50
50
  }], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.FormGenerator }], propDecorators: { formGroup: [{
@@ -58,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
58
58
  }], tooltip: [{
59
59
  type: Input
60
60
  }] } });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL2ZlYXR1cmUtZmxhZy12YWx1ZS9mZWF0dXJlLWZsYWctdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvZmVhdHVyZS1mbGFnLXZhbHVlL2ZlYXR1cmUtZmxhZy12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQ0wsVUFBVSxFQUFhLFdBQVcsRUFFbkMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsK0JBQStCLEVBQThCLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7Ozs7OztBQVcvSSxNQUFNLE9BQU8seUJBQXlCO0lBU3BDLFlBQW9CLE1BQWlCLEVBQzNCLGFBQTRCO1FBRGxCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFON0IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHaEMsZUFBVSxHQUFHLFVBQVUsQ0FBQztJQUl4QixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQ2xFLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUE4QjtnQkFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLO2dCQUNoRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVE7Z0JBQ3RELFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDO2dCQUMzRyxjQUFjLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixJQUFJLE1BQU07Z0JBQzlFLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYztvQkFDOUIsQ0FBQyxDQUFDLDJJQUEySTtvQkFDN0ksQ0FBQyxDQUFDLG1IQUFtSDthQUN4SDtTQUNGLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBbkNVLHlCQUF5QjtrR0FBekIseUJBQXlCLGtPQ2xCdEMsc2lFQStCTTs7MkZEYk8seUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHdCQUF3QjswR0FTekIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBGb3JtSGVscGVyLCBWYWx1ZUZvcm0sIFNldHRpbmdUeXBlLFxuICBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucywgRm9ybUdlbmVyYXRvciwgSUZsYWdTdGF0ZVxufSBmcm9tICcuLi8uLi8uLi8uLi9ib290c3RyYXAnO1xuaW1wb3J0IHsgUG9wb3V0VGV4dEVkaXRvckRpYWxvZ0NvbXBvbmVudCwgUG9wb3V0VGV4dEVkaXRvckRpYWxvZ0RhdGEgfSBmcm9tICcuLi9wb3BvdXQtdGV4dC1lZGl0b3ItZGlhbG9nL3BvcG91dC10ZXh0LWVkaXRvci1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZlYXR1cmUtZmxhZy12YWx1ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWZsYWctdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi4vY29tcG9uZW50cy5zY3NzJyxcbiAgICAnLi4vLi4vc2xpZGVyLnNjc3MnLFxuICAgICcuL2ZlYXR1cmUtZmxhZy12YWx1ZS5jb21wb25lbnQuc2NzcydcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1ZhbHVlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXA8VmFsdWVGb3JtPjtcbiAgQElucHV0KCkgZmxhZ1N0YXRlOiBJRmxhZ1N0YXRlO1xuICBASW5wdXQoKSBmZWF0dXJlRmxhZ0xpbWl0YXRpb25zOiBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucztcbiAgQElucHV0KCkgaXNQcmVyZXF1aXNpdGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuXG4gIEZvcm1IZWxwZXIgPSBGb3JtSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBmb3JtR2VuZXJhdG9yOiBGb3JtR2VuZXJhdG9yKSB7XG4gIH1cblxuICBleHBhbmRUZXh0KCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUG9wb3V0VGV4dEVkaXRvckRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc4MDBweCcsXG4gICAgICBkYXRhOiA8UG9wb3V0VGV4dEVkaXRvckRpYWxvZ0RhdGE+e1xuICAgICAgICB2YWx1ZTogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RyaW5nVmFsdWUudmFsdWUsXG4gICAgICAgIHJlYWRPbmx5OiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdHJpbmdWYWx1ZS5kaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdG9yczogdGhpcy5mb3JtR2VuZXJhdG9yLmdldFZhbGlkYXRvcnNGb3JTZXR0aW5nVHlwZShTZXR0aW5nVHlwZS5TdHJpbmcsIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9ucyksXG4gICAgICAgIG1heFZhbHVlTGVuZ3RoOiB0aGlzLmZlYXR1cmVGbGFnTGltaXRhdGlvbnMubWF4U3RyaW5nRmxhZ1ZhbHVlTGVuZ3RoID8/IDEwMDAwMCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuaXNQcmVyZXF1aXNpdGVcbiAgICAgICAgICA/ICdNb2RpZnkgdGhlIHRleHQgd2l0aGluIHRoZSBlZGl0b3IgdG8gY2hhbmdlIHRoZSBwcmVyZXF1aXNpdGUgZmVhdHVyZSBmbGFnIGNvbXBhcmlzb24gdmFsdWUuIFRoZSBlZGl0b3Igc3VwcG9ydHMgSlNPTiBzeW50YXggaGlnaGxpZ2h0aW5nLidcbiAgICAgICAgICA6ICdNb2RpZnkgdGhlIHRleHQgd2l0aGluIHRoZSBlZGl0b3IgdG8gY2hhbmdlIHRoZSBmZWF0dXJlIGZsYWcgdmFsdWUuIFRoZSBlZGl0b3Igc3VwcG9ydHMgSlNPTiBzeW50YXggaGlnaGxpZ2h0aW5nLidcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0cmluZ1ZhbHVlLnNldFZhbHVlKGRhdGEudmFsdWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdHJpbmdWYWx1ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0cmluZ1ZhbHVlLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RyaW5nVmFsdWUubWFya0FzRGlydHkoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLWNvbXBvbmVudCBzbWFsbGVzdC1mb3JtLWZpZWxkIGdyb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMuc3RyaW5nVmFsdWVcIj5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5zdHJpbmdWYWx1ZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgdGV4dCAuLi5cIiAvPlxuICAgICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBjbGFzcz1cImV4cGFuZC1idXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJBZHZhbmNlZCBlZGl0b3JcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFRleHQoKVwiPjxtYXQtaWNvbj5lZGl0X25vdGU8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLnN0cmluZ1ZhbHVlLmludmFsaWRcIj5cbiAgICAgICAgICAgIHt7Rm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoZm9ybUdyb3VwLmNvbnRyb2xzLnN0cmluZ1ZhbHVlKX19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmludFZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5pbnRWYWx1ZVwiXG4gICAgICAgICAgICBkaWdpdE9ubHkgZGlnaXRPbmx5QWxsb3dOZWdhdGl2ZXM9XCJ0cnVlXCJcbiAgICAgICAgICAgIGlucHV0RGlzcGxheU5vcm1hbGl6ZXIgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiIHBsYWNlaG9sZGVyPVwiQWRkIG51bWJlciAuLi5cIiAvPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmludFZhbHVlLmludmFsaWRcIj5cbiAgICAgICAgICAgIHt7Rm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoZm9ybUdyb3VwLmNvbnRyb2xzLmludFZhbHVlKX19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmRvdWJsZVZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5kb3VibGVWYWx1ZVwiIGlucHV0RGlzcGxheU5vcm1hbGl6ZXJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIiBwbGFjZWhvbGRlcj1cIkFkZCBudW1iZXIgLi4uXCIgLz5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5jb250cm9scy5kb3VibGVWYWx1ZS5pbnZhbGlkXCI+XG4gICAgICAgICAgICB7e0Zvcm1IZWxwZXIuZ2V0RXJyb3JNZXNzYWdlKGZvcm1Hcm91cC5jb250cm9scy5kb3VibGVWYWx1ZSl9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXYgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMuYm9vbFZhbHVlXCIgY2xhc3M9XCJib29sXCIgW2NsYXNzLnJlYWRvbmx5XT1cImZsYWdTdGF0ZS5yZWFkT25seVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwXCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5ib29sVmFsdWVcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzbGlkZXIgcm91bmRcIj48L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1mbGFnLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbmZpZ2NhdC1wdWJsaWNhcGktdWkvc3JjL2xpYi92Mi9mZWF0dXJlLWZsYWcvZXZhbHVhdGlvbi1mb3JtdWxhL2ZlYXR1cmUtZmxhZy12YWx1ZS9mZWF0dXJlLWZsYWctdmFsdWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvZmVhdHVyZS1mbGFnLXZhbHVlL2ZlYXR1cmUtZmxhZy12YWx1ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRCxPQUFPLEVBQ0wsVUFBVSxFQUFhLFdBQVcsRUFFbkMsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsK0JBQStCLEVBQThCLE1BQU0sa0VBQWtFLENBQUM7Ozs7Ozs7Ozs7OztBQVcvSSxNQUFNLE9BQU8seUJBQXlCO0lBU3BDLFlBQW9CLE1BQWlCLEVBQzNCLGFBQTRCO1FBRGxCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQWU7UUFON0IsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFHaEMsZUFBVSxHQUFHLFVBQVUsQ0FBQztJQUl4QixDQUFDO0lBRUQsVUFBVTtRQUNSLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFO1lBQ2xFLEtBQUssRUFBRSxPQUFPO1lBQ2QsSUFBSSxFQUE4QjtnQkFDaEMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLO2dCQUNoRCxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVE7Z0JBQ3RELFVBQVUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLDJCQUEyQixDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDO2dCQUMzRyxjQUFjLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHdCQUF3QixJQUFJLE1BQU07Z0JBQzlFLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYztvQkFDOUIsQ0FBQyxDQUFDLDJJQUEySTtvQkFDN0ksQ0FBQyxDQUFDLG1IQUFtSDthQUN4SDtTQUNGLENBQUMsQ0FBQztRQUVILFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLHNCQUFzQixFQUFFLENBQUM7Z0JBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbkNVLHlCQUF5QjttR0FBekIseUJBQXlCLGtPQ2xCdEMsc2lFQStCTTs7NEZEYk8seUJBQXlCO2tCQVRyQyxTQUFTOytCQUNFLHdCQUF3QjswR0FTekIsU0FBUztzQkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLHNCQUFzQjtzQkFBOUIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQge1xuICBGb3JtSGVscGVyLCBWYWx1ZUZvcm0sIFNldHRpbmdUeXBlLFxuICBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucywgRm9ybUdlbmVyYXRvciwgSUZsYWdTdGF0ZVxufSBmcm9tICcuLi8uLi8uLi8uLi9ib290c3RyYXAnO1xuaW1wb3J0IHsgUG9wb3V0VGV4dEVkaXRvckRpYWxvZ0NvbXBvbmVudCwgUG9wb3V0VGV4dEVkaXRvckRpYWxvZ0RhdGEgfSBmcm9tICcuLi9wb3BvdXQtdGV4dC1lZGl0b3ItZGlhbG9nL3BvcG91dC10ZXh0LWVkaXRvci1kaWFsb2cuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWZlYXR1cmUtZmxhZy12YWx1ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mZWF0dXJlLWZsYWctdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi4vY29tcG9uZW50cy5zY3NzJyxcbiAgICAnLi4vLi4vc2xpZGVyLnNjc3MnLFxuICAgICcuL2ZlYXR1cmUtZmxhZy12YWx1ZS5jb21wb25lbnQuc2NzcydcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGZWF0dXJlRmxhZ1ZhbHVlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZm9ybUdyb3VwOiBGb3JtR3JvdXA8VmFsdWVGb3JtPjtcbiAgQElucHV0KCkgZmxhZ1N0YXRlOiBJRmxhZ1N0YXRlO1xuICBASW5wdXQoKSBmZWF0dXJlRmxhZ0xpbWl0YXRpb25zOiBJRmVhdHVyZUZsYWdMaW1pdGF0aW9ucztcbiAgQElucHV0KCkgaXNQcmVyZXF1aXNpdGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuXG4gIEZvcm1IZWxwZXIgPSBGb3JtSGVscGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBmb3JtR2VuZXJhdG9yOiBGb3JtR2VuZXJhdG9yKSB7XG4gIH1cblxuICBleHBhbmRUZXh0KCkge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUG9wb3V0VGV4dEVkaXRvckRpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgd2lkdGg6ICc4MDBweCcsXG4gICAgICBkYXRhOiA8UG9wb3V0VGV4dEVkaXRvckRpYWxvZ0RhdGE+e1xuICAgICAgICB2YWx1ZTogdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RyaW5nVmFsdWUudmFsdWUsXG4gICAgICAgIHJlYWRPbmx5OiB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdHJpbmdWYWx1ZS5kaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdG9yczogdGhpcy5mb3JtR2VuZXJhdG9yLmdldFZhbGlkYXRvcnNGb3JTZXR0aW5nVHlwZShTZXR0aW5nVHlwZS5TdHJpbmcsIHRoaXMuZmVhdHVyZUZsYWdMaW1pdGF0aW9ucyksXG4gICAgICAgIG1heFZhbHVlTGVuZ3RoOiB0aGlzLmZlYXR1cmVGbGFnTGltaXRhdGlvbnMubWF4U3RyaW5nRmxhZ1ZhbHVlTGVuZ3RoID8/IDEwMDAwMCxcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuaXNQcmVyZXF1aXNpdGVcbiAgICAgICAgICA/ICdNb2RpZnkgdGhlIHRleHQgd2l0aGluIHRoZSBlZGl0b3IgdG8gY2hhbmdlIHRoZSBwcmVyZXF1aXNpdGUgZmVhdHVyZSBmbGFnIGNvbXBhcmlzb24gdmFsdWUuIFRoZSBlZGl0b3Igc3VwcG9ydHMgSlNPTiBzeW50YXggaGlnaGxpZ2h0aW5nLidcbiAgICAgICAgICA6ICdNb2RpZnkgdGhlIHRleHQgd2l0aGluIHRoZSBlZGl0b3IgdG8gY2hhbmdlIHRoZSBmZWF0dXJlIGZsYWcgdmFsdWUuIFRoZSBlZGl0b3Igc3VwcG9ydHMgSlNPTiBzeW50YXggaGlnaGxpZ2h0aW5nLidcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0cmluZ1ZhbHVlLnNldFZhbHVlKGRhdGEudmFsdWUpO1xuICAgICAgICB0aGlzLmZvcm1Hcm91cC5jb250cm9scy5zdHJpbmdWYWx1ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzLnN0cmluZ1ZhbHVlLm1hcmtBc1RvdWNoZWQoKTtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAuY29udHJvbHMuc3RyaW5nVmFsdWUubWFya0FzRGlydHkoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInRhcmdldGluZy1ydWxlLWNvbXBvbmVudCBzbWFsbGVzdC1mb3JtLWZpZWxkIGdyb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCIgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMuc3RyaW5nVmFsdWVcIj5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5zdHJpbmdWYWx1ZVwiIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJBZGQgdGV4dCAuLi5cIiAvPlxuICAgICAgICA8YnV0dG9uIG1hdFN1ZmZpeCBjbGFzcz1cImV4cGFuZC1idXR0b25cIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWljb24tYnV0dG9uIG1hdFRvb2x0aXA9XCJBZHZhbmNlZCBlZGl0b3JcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImV4cGFuZFRleHQoKVwiPjxtYXQtaWNvbj5lZGl0X25vdGU8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLnN0cmluZ1ZhbHVlLmludmFsaWRcIj5cbiAgICAgICAgICAgIHt7Rm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoZm9ybUdyb3VwLmNvbnRyb2xzLnN0cmluZ1ZhbHVlKX19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmludFZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5pbnRWYWx1ZVwiXG4gICAgICAgICAgICBkaWdpdE9ubHkgZGlnaXRPbmx5QWxsb3dOZWdhdGl2ZXM9XCJ0cnVlXCJcbiAgICAgICAgICAgIGlucHV0RGlzcGxheU5vcm1hbGl6ZXIgW21hdFRvb2x0aXBdPVwidG9vbHRpcFwiIHBsYWNlaG9sZGVyPVwiQWRkIG51bWJlciAuLi5cIiAvPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmludFZhbHVlLmludmFsaWRcIj5cbiAgICAgICAgICAgIHt7Rm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoZm9ybUdyb3VwLmNvbnRyb2xzLmludFZhbHVlKX19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiICpuZ0lmPVwiZm9ybUdyb3VwLmNvbnRyb2xzLmRvdWJsZVZhbHVlXCI+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwibnVtYmVyXCIgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5kb3VibGVWYWx1ZVwiIGlucHV0RGlzcGxheU5vcm1hbGl6ZXJcbiAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRvb2x0aXBcIiBwbGFjZWhvbGRlcj1cIkFkZCBudW1iZXIgLi4uXCIgLz5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Hcm91cC5jb250cm9scy5kb3VibGVWYWx1ZS5pbnZhbGlkXCI+XG4gICAgICAgICAgICB7e0Zvcm1IZWxwZXIuZ2V0RXJyb3JNZXNzYWdlKGZvcm1Hcm91cC5jb250cm9scy5kb3VibGVWYWx1ZSl9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXYgKm5nSWY9XCJmb3JtR3JvdXAuY29udHJvbHMuYm9vbFZhbHVlXCIgY2xhc3M9XCJib29sXCIgW2NsYXNzLnJlYWRvbmx5XT1cImZsYWdTdGF0ZS5yZWFkT25seVwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2hcIiBbbWF0VG9vbHRpcF09XCJ0b29sdGlwXCI+XG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2Zvcm1Db250cm9sXT1cImZvcm1Hcm91cC5jb250cm9scy5ib29sVmFsdWVcIiAvPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzbGlkZXIgcm91bmRcIj48L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -59,14 +59,14 @@ export class PopoutTextEditorDialogComponent {
59
59
  close() {
60
60
  this.dialogRef.close();
61
61
  }
62
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PopoutTextEditorDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
63
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: PopoutTextEditorDialogComponent, selector: "app-popout-text-editor-dialog", ngImport: i0, template: "<h2 mat-dialog-title>Advanced editor</h2>\n<div mat-dialog-content class=\"container\">\n <p class=\"description\">\n {{data.description}}\n </p>\n <mat-button-toggle-group [(ngModel)]=\"format\">\n <mat-button-toggle value=\"text\">Text</mat-button-toggle>\n <mat-button-toggle value=\"json\">JSON</mat-button-toggle>\n </mat-button-toggle-group>\n\n <mat-form-field *ngIf=\"format === 'text'\" appearance=\"outline\" class=\"editor-container editor-clear\"\n subscriptSizing=\"dynamic\">\n <textarea matInput autofocus focus [formControl]=\"control\" rows=\"17\" cdkTextareaAutosize cdkAutosizeMinRows=\"17\"\n cdkAutosizeMaxRows=\"26\"></textarea>\n <mat-error *ngIf=\"control.invalid\">\n {{formHelper.getErrorMessage(control)}}\n </mat-error>\n <mat-hint *ngIf=\"data.maxValueLength && (data.maxValueLength - control.value?.length > -1)\">\n Remaining characters:\n {{data.maxValueLength - control.value?.length}}</mat-hint>\n </mat-form-field>\n\n <div class=\"editor-container\" *ngIf=\"format === 'json'\">\n <app-ace-editor [(value)]=\"jsonData\" (onChange)=\"onJsonChanged($event)\"\n [readOnly]=\"data.readOnly\"></app-ace-editor>\n <span *ngIf=\"control.invalid\" class=\"error mat-mdc-form-field-error\">\n {{formHelper.getErrorMessage(control)}}</span>\n </div>\n</div>\n<div mat-dialog-actions>\n <button *ngIf=\"!data.readOnly\" type=\"button\" mat-flat-button color=\"primary\"\n [disabled]=\"!control.touched || !control.valid\" (click)=\"set()\">Set</button>\n <button *ngIf=\"!data.readOnly\" type=\"button\" mat-stroked-button (click)=\"close()\">Cancel</button>\n <button *ngIf=\"data.readOnly\" type=\"button\" mat-stroked-button color=\"primary\" (click)=\"close()\">Close</button>\n</div>", styles: [".container{width:100%}.container .editor-container{margin:10px 0;width:100%;height:432px}.container .editor-clear{width:100%}.container .error{font-size:10px;padding:0 8px}.container .description{padding:5px 0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i7.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i8.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i8.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i9.AceEditorComponent, selector: "app-ace-editor", inputs: ["value", "readOnly"], outputs: ["valueChange", "onChange"] }] }); }
62
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PopoutTextEditorDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
63
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PopoutTextEditorDialogComponent, selector: "app-popout-text-editor-dialog", ngImport: i0, template: "<h2 mat-dialog-title>Advanced editor</h2>\n<div mat-dialog-content class=\"container\">\n <p class=\"description\">\n {{data.description}}\n </p>\n <mat-button-toggle-group [(ngModel)]=\"format\">\n <mat-button-toggle value=\"text\">Text</mat-button-toggle>\n <mat-button-toggle value=\"json\">JSON</mat-button-toggle>\n </mat-button-toggle-group>\n\n <mat-form-field *ngIf=\"format === 'text'\" appearance=\"outline\" class=\"editor-container editor-clear\"\n subscriptSizing=\"dynamic\">\n <textarea matInput autofocus focus [formControl]=\"control\" rows=\"17\" cdkTextareaAutosize cdkAutosizeMinRows=\"17\"\n cdkAutosizeMaxRows=\"26\"></textarea>\n <mat-error *ngIf=\"control.invalid\">\n {{formHelper.getErrorMessage(control)}}\n </mat-error>\n <mat-hint *ngIf=\"data.maxValueLength && (data.maxValueLength - control.value?.length > -1)\">\n Remaining characters:\n {{data.maxValueLength - control.value?.length}}</mat-hint>\n </mat-form-field>\n\n <div class=\"editor-container\" *ngIf=\"format === 'json'\">\n <app-ace-editor [(value)]=\"jsonData\" (onChange)=\"onJsonChanged($event)\"\n [readOnly]=\"data.readOnly\"></app-ace-editor>\n <span *ngIf=\"control.invalid\" class=\"error mat-mdc-form-field-error\">\n {{formHelper.getErrorMessage(control)}}</span>\n </div>\n</div>\n<div mat-dialog-actions>\n <button *ngIf=\"!data.readOnly\" type=\"button\" mat-flat-button color=\"primary\"\n [disabled]=\"!control.touched || !control.valid\" (click)=\"set()\">Set</button>\n <button *ngIf=\"!data.readOnly\" type=\"button\" mat-stroked-button (click)=\"close()\">Cancel</button>\n <button *ngIf=\"data.readOnly\" type=\"button\" mat-stroked-button color=\"primary\" (click)=\"close()\">Close</button>\n</div>", styles: [".container{width:100%}.container .editor-container{margin:10px 0;width:100%;height:432px}.container .editor-clear{width:100%}.container .error{font-size:10px;padding:0 8px}.container .description{padding:5px 0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i7.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i8.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i8.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i9.AceEditorComponent, selector: "app-ace-editor", inputs: ["value", "readOnly"], outputs: ["valueChange", "onChange"] }] }); }
64
64
  }
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PopoutTextEditorDialogComponent, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PopoutTextEditorDialogComponent, decorators: [{
66
66
  type: Component,
67
67
  args: [{ selector: 'app-popout-text-editor-dialog', template: "<h2 mat-dialog-title>Advanced editor</h2>\n<div mat-dialog-content class=\"container\">\n <p class=\"description\">\n {{data.description}}\n </p>\n <mat-button-toggle-group [(ngModel)]=\"format\">\n <mat-button-toggle value=\"text\">Text</mat-button-toggle>\n <mat-button-toggle value=\"json\">JSON</mat-button-toggle>\n </mat-button-toggle-group>\n\n <mat-form-field *ngIf=\"format === 'text'\" appearance=\"outline\" class=\"editor-container editor-clear\"\n subscriptSizing=\"dynamic\">\n <textarea matInput autofocus focus [formControl]=\"control\" rows=\"17\" cdkTextareaAutosize cdkAutosizeMinRows=\"17\"\n cdkAutosizeMaxRows=\"26\"></textarea>\n <mat-error *ngIf=\"control.invalid\">\n {{formHelper.getErrorMessage(control)}}\n </mat-error>\n <mat-hint *ngIf=\"data.maxValueLength && (data.maxValueLength - control.value?.length > -1)\">\n Remaining characters:\n {{data.maxValueLength - control.value?.length}}</mat-hint>\n </mat-form-field>\n\n <div class=\"editor-container\" *ngIf=\"format === 'json'\">\n <app-ace-editor [(value)]=\"jsonData\" (onChange)=\"onJsonChanged($event)\"\n [readOnly]=\"data.readOnly\"></app-ace-editor>\n <span *ngIf=\"control.invalid\" class=\"error mat-mdc-form-field-error\">\n {{formHelper.getErrorMessage(control)}}</span>\n </div>\n</div>\n<div mat-dialog-actions>\n <button *ngIf=\"!data.readOnly\" type=\"button\" mat-flat-button color=\"primary\"\n [disabled]=\"!control.touched || !control.valid\" (click)=\"set()\">Set</button>\n <button *ngIf=\"!data.readOnly\" type=\"button\" mat-stroked-button (click)=\"close()\">Cancel</button>\n <button *ngIf=\"data.readOnly\" type=\"button\" mat-stroked-button color=\"primary\" (click)=\"close()\">Close</button>\n</div>", styles: [".container{width:100%}.container .editor-container{margin:10px 0;width:100%;height:432px}.container .editor-clear{width:100%}.container .error{font-size:10px;padding:0 8px}.container .description{padding:5px 0}\n"] }]
68
68
  }], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
69
69
  type: Inject,
70
70
  args: [MAT_DIALOG_DATA]
71
71
  }] }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS9wb3BvdXQtdGV4dC1lZGl0b3ItZGlhbG9nL3BvcG91dC10ZXh0LWVkaXRvci1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvcG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZy9wb3BvdXQtdGV4dC1lZGl0b3ItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBZW5ELE1BQU0sT0FBTywrQkFBK0I7SUFRMUMsWUFBbUIsU0FBd0QsRUFDekMsSUFBZ0M7UUFEL0MsY0FBUyxHQUFULFNBQVMsQ0FBK0M7UUFDekMsU0FBSSxHQUFKLElBQUksQ0FBNEI7UUFMbEUsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixlQUFVLEdBQUcsVUFBVSxDQUFDO0lBS3hCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksV0FBVyxDQUM1QixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDeEQsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMvQixDQUFDO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNoRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOzhHQTVEVSwrQkFBK0IsOENBU2hDLGVBQWU7a0dBVGQsK0JBQStCLHFFQ25CNUMsbTJEQWtDTTs7MkZEZk8sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLCtCQUErQjs7MEJBYXRDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vYm9vdHN0cmFwJztcblxuZXhwb3J0IGludGVyZmFjZSBQb3BvdXRUZXh0RWRpdG9yRGlhbG9nRGF0YSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdO1xuICBtYXhWYWx1ZUxlbmd0aDogbnVtYmVyO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdXQtdGV4dC1lZGl0b3ItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBvcG91dFRleHRFZGl0b3JEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgZm9ybUNvbnRyb2xTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAganNvbkRhdGE6IHN0cmluZztcbiAgZm9ybWF0ID0gXCJ0ZXh0XCI7XG4gIGZvcm1IZWxwZXIgPSBGb3JtSGVscGVyO1xuICBjb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQb3BvdXRUZXh0RWRpdG9yRGlhbG9nQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFBvcG91dFRleHRFZGl0b3JEaWFsb2dEYXRhKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmpzb25EYXRhID0gdGhpcy5kYXRhLnZhbHVlO1xuICAgIHRoaXMuY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KFxuICAgICAgeyB2YWx1ZTogdGhpcy5kYXRhLnZhbHVlLCBkaXNhYmxlZDogdGhpcy5kYXRhLnJlYWRPbmx5IH0sXG4gICAgICB7IG5vbk51bGxhYmxlOiB0cnVlLCB2YWxpZGF0b3JzOiBbLi4udGhpcy5kYXRhLnZhbGlkYXRvcnNdIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wudmFsaWQpIHtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtQ29udHJvbFN1YnNjcmlwdGlvbiA9IHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZSwgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgaWYgKHRoaXMuanNvbkRhdGEgIT09IHZhbHVlKSB7XG4gICAgICAgIHRoaXMuanNvbkRhdGEgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uSnNvbkNoYW5nZWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZSwgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiB0cnVlIH0pO1xuICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNvbnRyb2wuZGlydHkpIHtcbiAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmZvcm1Db250cm9sU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzZXQoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2wudmFsaWQpIHtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyB2YWx1ZTogdGhpcy5jb250cm9sLnZhbHVlIH0pO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+QWR2YW5jZWQgZWRpdG9yPC9oMj5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICB7e2RhdGEuZGVzY3JpcHRpb259fVxuICAgIDwvcD5cbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgWyhuZ01vZGVsKV09XCJmb3JtYXRcIj5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwidGV4dFwiPlRleHQ8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJqc29uXCI+SlNPTjwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImZvcm1hdCA9PT0gJ3RleHQnXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImVkaXRvci1jb250YWluZXIgZWRpdG9yLWNsZWFyXCJcbiAgICAgICAgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgYXV0b2ZvY3VzIGZvY3VzIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgcm93cz1cIjE3XCIgY2RrVGV4dGFyZWFBdXRvc2l6ZSBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxN1wiXG4gICAgICAgICAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCIyNlwiPjwvdGV4dGFyZWE+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb250cm9sLmludmFsaWRcIj5cbiAgICAgICAgICAgIHt7Zm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoY29udHJvbCl9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiZGF0YS5tYXhWYWx1ZUxlbmd0aCAmJiAoZGF0YS5tYXhWYWx1ZUxlbmd0aCAtIGNvbnRyb2wudmFsdWU/Lmxlbmd0aCA+IC0xKVwiPlxuICAgICAgICAgICAgUmVtYWluaW5nIGNoYXJhY3RlcnM6XG4gICAgICAgICAgICB7e2RhdGEubWF4VmFsdWVMZW5ndGggLSBjb250cm9sLnZhbHVlPy5sZW5ndGh9fTwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCIgKm5nSWY9XCJmb3JtYXQgPT09ICdqc29uJ1wiPlxuICAgICAgICA8YXBwLWFjZS1lZGl0b3IgWyh2YWx1ZSldPVwianNvbkRhdGFcIiAob25DaGFuZ2UpPVwib25Kc29uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJkYXRhLnJlYWRPbmx5XCI+PC9hcHAtYWNlLWVkaXRvcj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmludmFsaWRcIiBjbGFzcz1cImVycm9yIG1hdC1tZGMtZm9ybS1maWVsZC1lcnJvclwiPlxuICAgICAgICAgICAge3tmb3JtSGVscGVyLmdldEVycm9yTWVzc2FnZShjb250cm9sKX19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uICpuZ0lmPVwiIWRhdGEucmVhZE9ubHlcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY29udHJvbC50b3VjaGVkIHx8ICFjb250cm9sLnZhbGlkXCIgKGNsaWNrKT1cInNldCgpXCI+U2V0PC9idXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cIiFkYXRhLnJlYWRPbmx5XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJkYXRhLnJlYWRPbmx5XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNsb3NlPC9idXR0b24+XG48L2Rpdj4iXX0=
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS9wb3BvdXQtdGV4dC1lZGl0b3ItZGlhbG9nL3BvcG91dC10ZXh0LWVkaXRvci1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvcG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZy9wb3BvdXQtdGV4dC1lZGl0b3ItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7Ozs7O0FBZW5ELE1BQU0sT0FBTywrQkFBK0I7SUFRMUMsWUFBbUIsU0FBd0QsRUFDekMsSUFBZ0M7UUFEL0MsY0FBUyxHQUFULFNBQVMsQ0FBK0M7UUFDekMsU0FBSSxHQUFKLElBQUksQ0FBNEI7UUFMbEUsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixlQUFVLEdBQUcsVUFBVSxDQUFDO0lBS3hCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksV0FBVyxDQUM1QixFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDeEQsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUMvQixDQUFDO1FBRUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNoRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDN0IsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDaEcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDeEMsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2hDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQTVEVSwrQkFBK0IsOENBU2hDLGVBQWU7bUdBVGQsK0JBQStCLHFFQ25CNUMsbTJEQWtDTTs7NEZEZk8sK0JBQStCO2tCQUwzQyxTQUFTOytCQUNFLCtCQUErQjs7MEJBYXRDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtSGVscGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vYm9vdHN0cmFwJztcblxuZXhwb3J0IGludGVyZmFjZSBQb3BvdXRUZXh0RWRpdG9yRGlhbG9nRGF0YSB7XG4gIHZhbHVlOiBzdHJpbmc7XG4gIHJlYWRPbmx5OiBib29sZWFuO1xuICB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdO1xuICBtYXhWYWx1ZUxlbmd0aDogbnVtYmVyO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3BvdXQtdGV4dC1lZGl0b3ItZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcG9wb3V0LXRleHQtZWRpdG9yLWRpYWxvZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBvcG91dFRleHRFZGl0b3JEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgZm9ybUNvbnRyb2xTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAganNvbkRhdGE6IHN0cmluZztcbiAgZm9ybWF0ID0gXCJ0ZXh0XCI7XG4gIGZvcm1IZWxwZXIgPSBGb3JtSGVscGVyO1xuICBjb250cm9sOiBGb3JtQ29udHJvbDxzdHJpbmc+O1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQb3BvdXRUZXh0RWRpdG9yRGlhbG9nQ29tcG9uZW50PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IFBvcG91dFRleHRFZGl0b3JEaWFsb2dEYXRhKSB7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmpzb25EYXRhID0gdGhpcy5kYXRhLnZhbHVlO1xuICAgIHRoaXMuY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbDxzdHJpbmc+KFxuICAgICAgeyB2YWx1ZTogdGhpcy5kYXRhLnZhbHVlLCBkaXNhYmxlZDogdGhpcy5kYXRhLnJlYWRPbmx5IH0sXG4gICAgICB7IG5vbk51bGxhYmxlOiB0cnVlLCB2YWxpZGF0b3JzOiBbLi4udGhpcy5kYXRhLnZhbGlkYXRvcnNdIH0pO1xuXG4gICAgaWYgKCF0aGlzLmNvbnRyb2wudmFsaWQpIHtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtQ29udHJvbFN1YnNjcmlwdGlvbiA9IHRoaXMuY29udHJvbC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZSwgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiB0cnVlIH0pO1xuICAgICAgdGhpcy5jb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB0aGlzLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgaWYgKHRoaXMuanNvbkRhdGEgIT09IHZhbHVlKSB7XG4gICAgICAgIHRoaXMuanNvbkRhdGEgPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG9uSnNvbkNoYW5nZWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuY29udHJvbC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSwgZW1pdEV2ZW50OiBmYWxzZSwgZW1pdE1vZGVsVG9WaWV3Q2hhbmdlOiB0cnVlIH0pO1xuICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB0aGlzLmNvbnRyb2wubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIGlmICh0aGlzLmNvbnRyb2wuZGlydHkpIHtcbiAgICAgIHRoaXMuY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLmZvcm1Db250cm9sU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBzZXQoKSB7XG4gICAgaWYgKCF0aGlzLmNvbnRyb2wudmFsaWQpIHtcbiAgICAgIHRoaXMuY29udHJvbC5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoeyB2YWx1ZTogdGhpcy5jb250cm9sLnZhbHVlIH0pO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+QWR2YW5jZWQgZWRpdG9yPC9oMj5cbjxkaXYgbWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgPHAgY2xhc3M9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICB7e2RhdGEuZGVzY3JpcHRpb259fVxuICAgIDwvcD5cbiAgICA8bWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXAgWyhuZ01vZGVsKV09XCJmb3JtYXRcIj5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwidGV4dFwiPlRleHQ8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJqc29uXCI+SlNPTjwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cblxuICAgIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImZvcm1hdCA9PT0gJ3RleHQnXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cImVkaXRvci1jb250YWluZXIgZWRpdG9yLWNsZWFyXCJcbiAgICAgICAgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgYXV0b2ZvY3VzIGZvY3VzIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgcm93cz1cIjE3XCIgY2RrVGV4dGFyZWFBdXRvc2l6ZSBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxN1wiXG4gICAgICAgICAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCIyNlwiPjwvdGV4dGFyZWE+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb250cm9sLmludmFsaWRcIj5cbiAgICAgICAgICAgIHt7Zm9ybUhlbHBlci5nZXRFcnJvck1lc3NhZ2UoY29udHJvbCl9fVxuICAgICAgICA8L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiZGF0YS5tYXhWYWx1ZUxlbmd0aCAmJiAoZGF0YS5tYXhWYWx1ZUxlbmd0aCAtIGNvbnRyb2wudmFsdWU/Lmxlbmd0aCA+IC0xKVwiPlxuICAgICAgICAgICAgUmVtYWluaW5nIGNoYXJhY3RlcnM6XG4gICAgICAgICAgICB7e2RhdGEubWF4VmFsdWVMZW5ndGggLSBjb250cm9sLnZhbHVlPy5sZW5ndGh9fTwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxkaXYgY2xhc3M9XCJlZGl0b3ItY29udGFpbmVyXCIgKm5nSWY9XCJmb3JtYXQgPT09ICdqc29uJ1wiPlxuICAgICAgICA8YXBwLWFjZS1lZGl0b3IgWyh2YWx1ZSldPVwianNvbkRhdGFcIiAob25DaGFuZ2UpPVwib25Kc29uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtyZWFkT25seV09XCJkYXRhLnJlYWRPbmx5XCI+PC9hcHAtYWNlLWVkaXRvcj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb250cm9sLmludmFsaWRcIiBjbGFzcz1cImVycm9yIG1hdC1tZGMtZm9ybS1maWVsZC1lcnJvclwiPlxuICAgICAgICAgICAge3tmb3JtSGVscGVyLmdldEVycm9yTWVzc2FnZShjb250cm9sKX19PC9zcGFuPlxuICAgIDwvZGl2PlxuPC9kaXY+XG48ZGl2IG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uICpuZ0lmPVwiIWRhdGEucmVhZE9ubHlcIiB0eXBlPVwiYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCIhY29udHJvbC50b3VjaGVkIHx8ICFjb250cm9sLnZhbGlkXCIgKGNsaWNrKT1cInNldCgpXCI+U2V0PC9idXR0b24+XG4gICAgPGJ1dHRvbiAqbmdJZj1cIiFkYXRhLnJlYWRPbmx5XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiY2xvc2UoKVwiPkNhbmNlbDwvYnV0dG9uPlxuICAgIDxidXR0b24gKm5nSWY9XCJkYXRhLnJlYWRPbmx5XCIgdHlwZT1cImJ1dHRvblwiIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiAoY2xpY2spPVwiY2xvc2UoKVwiPkNsb3NlPC9idXR0b24+XG48L2Rpdj4iXX0=
@@ -11,10 +11,10 @@ export class ConditionChipComponent {
11
11
  ? 'IF'
12
12
  : 'ELSE IF';
13
13
  }
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConditionChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: ConditionChipComponent, selector: "app-condition-chip", inputs: { targetingRuleIndex: "targetingRuleIndex", conditionIndex: "conditionIndex" }, ngImport: i0, template: "<div class=\"chip-container fixed-width\">\n <div *ngIf=\"conditionIndex > 0\" class=\"enter-sign\"><mat-icon>subdirectory_arrow_right</mat-icon></div>\n <mat-chip-set>\n <mat-chip disabled>{{chipText}}</mat-chip>\n </mat-chip-set>\n</div>", styles: [".chip-container{display:flex;margin-top:2px;align-self:start}.chip-container.fixed-width{width:110px}.chip-container.fixed-width-wide{width:130px}.chip-container mat-chip-set{margin-top:2px;width:100%}.chip-container mat-chip-set mat-chip{width:100%;margin-top:0;margin-bottom:0;height:24px;font-size:12px;background-color:#d1e3fa;opacity:1}.chip-container .add-btn mat-chip{background-color:transparent;border:1px dashed #afaeae;color:#afaeae;cursor:pointer}.chip-container .enter-sign{color:#ccc;margin:6px 3px 0 8px}.chip-container .enter-sign mat-icon{font-size:16px;width:16px;height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i3.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }] }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConditionChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ConditionChipComponent, selector: "app-condition-chip", inputs: { targetingRuleIndex: "targetingRuleIndex", conditionIndex: "conditionIndex" }, ngImport: i0, template: "<div class=\"chip-container fixed-width\">\n <div *ngIf=\"conditionIndex > 0\" class=\"enter-sign\"><mat-icon>subdirectory_arrow_right</mat-icon></div>\n <mat-chip-set>\n <mat-chip disabled>{{chipText}}</mat-chip>\n </mat-chip-set>\n</div>", styles: [".chip-container{display:flex;margin-top:2px;align-self:start}.chip-container.fixed-width{width:110px}.chip-container.fixed-width-wide{width:130px}.chip-container mat-chip-set{margin-top:2px;width:100%}.chip-container mat-chip-set mat-chip{width:100%;margin-top:0;margin-bottom:0;height:24px;font-size:12px;background-color:#d1e3fa;opacity:1}.chip-container .add-btn mat-chip{background-color:transparent;border:1px dashed #afaeae;color:#afaeae;cursor:pointer}.chip-container .enter-sign{color:#ccc;margin:6px 3px 0 8px}.chip-container .enter-sign mat-icon{font-size:16px;width:16px;height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i3.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }] }); }
16
16
  }
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ConditionChipComponent, decorators: [{
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConditionChipComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'app-condition-chip', template: "<div class=\"chip-container fixed-width\">\n <div *ngIf=\"conditionIndex > 0\" class=\"enter-sign\"><mat-icon>subdirectory_arrow_right</mat-icon></div>\n <mat-chip-set>\n <mat-chip disabled>{{chipText}}</mat-chip>\n </mat-chip-set>\n</div>", styles: [".chip-container{display:flex;margin-top:2px;align-self:start}.chip-container.fixed-width{width:110px}.chip-container.fixed-width-wide{width:130px}.chip-container mat-chip-set{margin-top:2px;width:100%}.chip-container mat-chip-set mat-chip{width:100%;margin-top:0;margin-bottom:0;height:24px;font-size:12px;background-color:#d1e3fa;opacity:1}.chip-container .add-btn mat-chip{background-color:transparent;border:1px dashed #afaeae;color:#afaeae;cursor:pointer}.chip-container .enter-sign{color:#ccc;margin:6px 3px 0 8px}.chip-container .enter-sign mat-icon{font-size:16px;width:16px;height:16px}\n"] }]
20
20
  }], propDecorators: { targetingRuleIndex: [{
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
22
22
  }], conditionIndex: [{
23
23
  type: Input
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvY29uZGl0aW9ucy9jb25kaXRpb24tY2hpcC9jb25kaXRpb24tY2hpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL2NvbmRpdGlvbi1jaGlwL2NvbmRpdGlvbi1jaGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQU96RCxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQztZQUNyQyxDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEtBQUssQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsQixDQUFDOzhHQVpVLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGtKQ1BuQyxpUUFLTTs7MkZERU8sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFNckIsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbmRpdGlvbi1jaGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmRpdGlvbi1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuLi8uLi8uLi9jaGlwcy5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDb25kaXRpb25DaGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSB0YXJnZXRpbmdSdWxlSW5kZXg6IG51bWJlcjtcbiAgQElucHV0KCkgY29uZGl0aW9uSW5kZXg6IG51bWJlcjtcbiAgY2hpcFRleHQ6IHN0cmluZztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoaXBUZXh0ID0gdGhpcy5jb25kaXRpb25JbmRleCA+IDBcbiAgICAgID8gJ0FORCdcbiAgICAgIDogdGhpcy50YXJnZXRpbmdSdWxlSW5kZXggPT09IDBcbiAgICAgICAgPyAnSUYnXG4gICAgICAgIDogJ0VMU0UgSUYnO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXIgZml4ZWQtd2lkdGhcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZGl0aW9uSW5kZXggPiAwXCIgY2xhc3M9XCJlbnRlci1zaWduXCI+PG1hdC1pY29uPnN1YmRpcmVjdG9yeV9hcnJvd19yaWdodDwvbWF0LWljb24+PC9kaXY+XG4gICAgPG1hdC1jaGlwLXNldD5cbiAgICAgICAgPG1hdC1jaGlwIGRpc2FibGVkPnt7Y2hpcFRleHR9fTwvbWF0LWNoaXA+XG4gICAgPC9tYXQtY2hpcC1zZXQ+XG48L2Rpdj4iXX0=
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLWNoaXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29uZmlnY2F0LXB1YmxpY2FwaS11aS9zcmMvbGliL3YyL2ZlYXR1cmUtZmxhZy9ldmFsdWF0aW9uLWZvcm11bGEvdGFyZ2V0aW5nLXJ1bGUvY29uZGl0aW9ucy9jb25kaXRpb24tY2hpcC9jb25kaXRpb24tY2hpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb25maWdjYXQtcHVibGljYXBpLXVpL3NyYy9saWIvdjIvZmVhdHVyZS1mbGFnL2V2YWx1YXRpb24tZm9ybXVsYS90YXJnZXRpbmctcnVsZS9jb25kaXRpb25zL2NvbmRpdGlvbi1jaGlwL2NvbmRpdGlvbi1jaGlwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7OztBQU96RCxNQUFNLE9BQU8sc0JBQXNCO0lBTWpDLFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQztZQUNyQyxDQUFDLENBQUMsS0FBSztZQUNQLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEtBQUssQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNsQixDQUFDOytHQVpVLHNCQUFzQjttR0FBdEIsc0JBQXNCLGtKQ1BuQyxpUUFLTTs7NEZERU8sc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFNckIsa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvbmRpdGlvbi1jaGlwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbmRpdGlvbi1jaGlwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuLi8uLi8uLi9jaGlwcy5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDb25kaXRpb25DaGlwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKSB0YXJnZXRpbmdSdWxlSW5kZXg6IG51bWJlcjtcbiAgQElucHV0KCkgY29uZGl0aW9uSW5kZXg6IG51bWJlcjtcbiAgY2hpcFRleHQ6IHN0cmluZztcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoaXBUZXh0ID0gdGhpcy5jb25kaXRpb25JbmRleCA+IDBcbiAgICAgID8gJ0FORCdcbiAgICAgIDogdGhpcy50YXJnZXRpbmdSdWxlSW5kZXggPT09IDBcbiAgICAgICAgPyAnSUYnXG4gICAgICAgIDogJ0VMU0UgSUYnO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY2hpcC1jb250YWluZXIgZml4ZWQtd2lkdGhcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY29uZGl0aW9uSW5kZXggPiAwXCIgY2xhc3M9XCJlbnRlci1zaWduXCI+PG1hdC1pY29uPnN1YmRpcmVjdG9yeV9hcnJvd19yaWdodDwvbWF0LWljb24+PC9kaXY+XG4gICAgPG1hdC1jaGlwLXNldD5cbiAgICAgICAgPG1hdC1jaGlwIGRpc2FibGVkPnt7Y2hpcFRleHR9fTwvbWF0LWNoaXA+XG4gICAgPC9tYXQtY2hpcC1zZXQ+XG48L2Rpdj4iXX0=