@impartner/design-components 1.0.0 → 1.0.1
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.
- package/README.md +1 -1
- package/esm2020/lib/alert/alert.component.mjs +1 -1
- package/esm2020/lib/avatar/avatar.component.mjs +1 -1
- package/esm2020/lib/backdrop/backdrop.component.mjs +7 -1
- package/esm2020/lib/badge/badge.component.mjs +1 -1
- package/esm2020/lib/breadcrumb/breadcrumb.component.mjs +1 -1
- package/esm2020/lib/button/button.component.mjs +1 -1
- package/esm2020/lib/button-group/button-group.component.mjs +1 -1
- package/esm2020/lib/card-heading/card-heading.component.mjs +1 -1
- package/esm2020/lib/dropdown/components/dropdown-item/dropdown-item.component.mjs +1 -1
- package/esm2020/lib/dropdown/dropdown.component.mjs +1 -1
- package/esm2020/lib/file-upload/directives/file-drop.directive.mjs +1 -1
- package/esm2020/lib/file-upload/file-upload.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/checkbox/checkbox.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/input/input.directive.mjs +1 -1
- package/esm2020/lib/form-field/controls/radio/radio-button/radio-button.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/radio/radio-group/radio-group.directive.mjs +2 -1
- package/esm2020/lib/form-field/controls/select/option/select-option.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/select/select-model.mjs +2 -1
- package/esm2020/lib/form-field/controls/select/select.component.mjs +1 -1
- package/esm2020/lib/form-field/controls/shared/toggle/toggle.component.mjs +1 -1
- package/esm2020/lib/form-field/directives/error.directive.mjs +1 -1
- package/esm2020/lib/form-field/directives/hint.directive.mjs +1 -1
- package/esm2020/lib/form-field/shared/disabled.mixin.mjs +1 -1
- package/esm2020/lib/form-field/shared/error-state.mixin.mjs +1 -1
- package/esm2020/lib/icon/icon.component.mjs +14 -10
- package/esm2020/lib/modal/modal.component.mjs +51 -13
- package/esm2020/lib/pagination/pagination.component.mjs +1 -1
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +1 -1
- package/esm2020/lib/scrollable/scrollable.component.mjs +14 -21
- package/esm2020/lib/select-icon/select-icon.component.mjs +1 -1
- package/esm2020/lib/spinner/spinner.component.mjs +1 -1
- package/esm2020/lib/table/table.component.mjs +1 -1
- package/esm2020/lib/text-highlight/text-highlight.component.mjs +1 -1
- package/esm2020/services/interaction.service.mjs +13 -3
- package/esm2020/utilities/sanitize.mjs +3 -3
- package/fesm2015/impartner-design-components.mjs +100 -45
- package/fesm2015/impartner-design-components.mjs.map +1 -1
- package/fesm2020/impartner-design-components.mjs +97 -44
- package/fesm2020/impartner-design-components.mjs.map +1 -1
- package/lib/backdrop/backdrop.component.d.ts +5 -3
- package/lib/icon/icon.component.d.ts +6 -4
- package/lib/modal/modal.component.d.ts +32 -7
- package/lib/scrollable/scrollable.component.d.ts +3 -1
- package/package.json +2 -2
- package/services/interaction.service.d.ts +1 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
2
|
import { ComponentSize } from '../../types';
|
|
3
3
|
import { ModalTheme } from './types';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
@@ -16,10 +16,7 @@ export class ModalComponent {
|
|
|
16
16
|
constructor(_interactionService) {
|
|
17
17
|
this._interactionService = _interactionService;
|
|
18
18
|
this._interactableId = 0;
|
|
19
|
-
|
|
20
|
-
* Determines if the Modal should be shown immediately.
|
|
21
|
-
*/
|
|
22
|
-
this.show = false;
|
|
19
|
+
this._show = false;
|
|
23
20
|
/**
|
|
24
21
|
* The theme of the Modal. Affects the layout of the Modal as well as some colors.
|
|
25
22
|
*/
|
|
@@ -37,6 +34,10 @@ export class ModalComponent {
|
|
|
37
34
|
* The subject text of the Modal.
|
|
38
35
|
*/
|
|
39
36
|
this.titleText = '';
|
|
37
|
+
/**
|
|
38
|
+
* The fallback button text to accept the Modal. This is bypassed if you content-project the accept button.
|
|
39
|
+
*/
|
|
40
|
+
this.acceptText = 'OK';
|
|
40
41
|
/**
|
|
41
42
|
* Determines if the Modal should fade in/out.
|
|
42
43
|
*/
|
|
@@ -59,6 +60,12 @@ export class ModalComponent {
|
|
|
59
60
|
this.accept = new EventEmitter();
|
|
60
61
|
this._interactableId = this._interactionService.add(this);
|
|
61
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Determines if the Modal should be shown immediately.
|
|
65
|
+
*/
|
|
66
|
+
set show(show) {
|
|
67
|
+
this._show = show;
|
|
68
|
+
}
|
|
62
69
|
get interactableId() {
|
|
63
70
|
return this._interactableId;
|
|
64
71
|
}
|
|
@@ -66,7 +73,7 @@ export class ModalComponent {
|
|
|
66
73
|
return this.interactableId > 0;
|
|
67
74
|
}
|
|
68
75
|
get shown() {
|
|
69
|
-
return this.valid && this.
|
|
76
|
+
return this.valid && this._show;
|
|
70
77
|
}
|
|
71
78
|
get showWorkingIcon() {
|
|
72
79
|
return !!this.iconName && this.theme === ModalTheme.Working;
|
|
@@ -93,26 +100,46 @@ export class ModalComponent {
|
|
|
93
100
|
this._interactableId = 0;
|
|
94
101
|
}
|
|
95
102
|
handleDismiss(event) {
|
|
96
|
-
if (!this.dismissable
|
|
103
|
+
if (!this.dismissable ||
|
|
104
|
+
!!this.dismissEl?.nativeElement?.firstChild?.disabled) {
|
|
97
105
|
return;
|
|
98
106
|
}
|
|
99
|
-
this.
|
|
107
|
+
this._show = false;
|
|
100
108
|
this.dismiss.emit(event);
|
|
101
109
|
}
|
|
102
110
|
handleDeny(event) {
|
|
103
|
-
this.
|
|
111
|
+
if (!!this.denyEl?.nativeElement?.firstChild?.disabled) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this._show = false;
|
|
104
115
|
this.deny.emit(event);
|
|
105
116
|
}
|
|
106
117
|
handleAccept(event) {
|
|
107
|
-
this.
|
|
118
|
+
console.log('this.acceptEl', this.acceptEl);
|
|
119
|
+
if (!!this.acceptEl?.nativeElement?.firstChild?.disabled) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this._show = false;
|
|
108
123
|
this.accept.emit(event);
|
|
109
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Opens/shows the modal programmatically.
|
|
127
|
+
*/
|
|
128
|
+
open() {
|
|
129
|
+
this._show = true;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Closes/hides the modal programmatically.
|
|
133
|
+
*/
|
|
134
|
+
close() {
|
|
135
|
+
this._show = false;
|
|
136
|
+
}
|
|
110
137
|
}
|
|
111
138
|
ModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, deps: [{ token: i1.InteractionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
112
|
-
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ModalComponent, selector: "impdc-modal", inputs: { show: "show", theme: "theme", size: "size", iconName: "iconName", iconTheme: "iconTheme", titleText: "titleText", dismissable: "dismissable", fade: "fade", backdrop: "backdrop" }, outputs: { dismiss: "dismiss", deny: "deny", accept: "accept" }, ngImport: i0, template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button
|
|
139
|
+
ModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ModalComponent, selector: "impdc-modal", inputs: { show: "show", theme: "theme", size: "size", iconName: "iconName", iconTheme: "iconTheme", titleText: "titleText", acceptText: "acceptText", dismissable: "dismissable", fade: "fade", backdrop: "backdrop" }, outputs: { dismiss: "dismiss", deny: "deny", accept: "accept" }, viewQueries: [{ propertyName: "dismissEl", first: true, predicate: ["dismissEl"], descendants: true }, { propertyName: "denyEl", first: true, predicate: ["denyEl"], descendants: true }, { propertyName: "acceptEl", first: true, predicate: ["acceptEl"], descendants: true }], ngImport: i0, template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button\n impdcButton\n [text]=\"acceptText\"\n [theme]=\"acceptFallbackTheme\"></button>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".impdc.modal{-webkit-user-select:none;user-select:none}.impdc.modal .modal-icon{display:inline-flex;justify-content:center;align-items:center;height:40px;width:40px;color:var(--impd-color-gray-500);background:var(--impd-color-gray-100);border-radius:50%;flex-shrink:0}.impdc.modal .modal-icon .fa,.impdc.modal .modal-icon .fa-brands,.impdc.modal .modal-icon .fa-duotone,.impdc.modal .modal-icon .fa-light,.impdc.modal .modal-icon .fa-regular,.impdc.modal .modal-icon .fa-solid,.impdc.modal .modal-icon .fa-thin,.impdc.modal .modal-icon .fab,.impdc.modal .modal-icon .fad,.impdc.modal .modal-icon .fal,.impdc.modal .modal-icon .far,.impdc.modal .modal-icon .fas,.impdc.modal .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}.impdc.modal.fade.in{background-color:transparent}.impdc.modal.show{display:block;opacity:1}.impdc.modal:not(.show),.impdc.modal.hide,.impdc.modal .hide{display:none}.impdc.modal.dismissable{cursor:pointer}.impdc.modal.dismissable .modal-dialog{cursor:default}.impdc.modal .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}.impdc.modal .modal-theme-simple .modal-header,.impdc.modal .modal-theme-destructive .modal-header{border:0;padding-bottom:0}.impdc.modal .modal-theme-simple .modal-body,.impdc.modal .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}.impdc.modal .modal-theme-simple .modal-footer,.impdc.modal .modal-theme-destructive .modal-footer{border:0;padding-top:0}.impdc.modal .modal-theme-working .modal-footer{padding:calc(var(--impartner-hex-modal-padding) * .5 - var(--impartner-hex-modal-footer-gap) * .5) calc(var(--impartner-hex-modal-padding) - var(--impartner-hex-modal-footer-gap) * .5)}.impdc.modal .modal-theme-destructive .modal-content{display:grid;grid-template-areas:\"modal-icon modal-header\" \"modal-icon modal-body\" \"modal-footer modal-footer\";grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto}.impdc.modal .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}.impdc.modal .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}.impdc.modal .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}.impdc.modal .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}.impdc.modal .modal-theme-destructive .modal-icon{color:var(--impd-color-red-600);background:var(--impd-color-red-100)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[impdcButton]", inputs: ["type", "theme", "text", "disabled", "titleText", "ariaLabel"] }, { kind: "component", type: i4.IconComponent, selector: "impdc-icon, [impdc-icon]", inputs: ["name", "theme", "size"] }] });
|
|
113
140
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ModalComponent, decorators: [{
|
|
114
141
|
type: Component,
|
|
115
|
-
args: [{ selector: 'impdc-modal', template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button
|
|
142
|
+
args: [{ selector: 'impdc-modal', template: "<div\n *ngIf=\"valid\"\n class=\"impdc modal\"\n [class.fade]=\"fade\"\n [class.in]=\"fade && shown\"\n [class.show]=\"shown\"\n [class.dismissable]=\"dismissable\"\n tabindex=\"-1\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.escape)=\"handleDismiss($event); $event.stopPropagation()\"\n (keydown.enter)=\"handleAccept($event); $event.stopPropagation()\">\n <div\n class=\"modal-dialog modal-dialog-centered modal-dialog-scrollable modal-theme-{{\n theme\n }}\"\n [class.modal-sm]=\"size === 'sm'\"\n [class.modal-lg]=\"size === 'lg'\"\n [class.modal-xl]=\"size === 'xl'\"\n [class.modal-fullscreen]=\"size === 'fs'\"\n [class.modal-fullscreen-lg-down]=\"size !== 'fs'\"\n (click)=\"$event.stopPropagation()\">\n <div class=\"modal-content\">\n <div *ngIf=\"showDestructiveIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </div>\n <div #header class=\"modal-header\" [class.hide]=\"hideHeader\">\n <h3 class=\"modal-title\">\n <span *ngIf=\"showWorkingIcon\" class=\"modal-icon\">\n <span impdc-icon [name]=\"iconName\" [theme]=\"iconTheme\"></span>\n </span>\n <span>{{ titleText }}</span>\n </h3>\n <button\n impdcButton\n *ngIf=\"dismissable\"\n theme=\"close\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\"></button>\n </div>\n <div #bodyEl class=\"modal-body\">\n <ng-content></ng-content>\n </div>\n <div #footer class=\"modal-footer\">\n <span\n #dismissEl\n *ngIf=\"dismissable\"\n [class.hide]=\"!dismissEl.children.length\"\n (click)=\"handleDismiss($event); $event.stopPropagation()\">\n <ng-content select=\"[dismiss]\"></ng-content>\n </span>\n <span\n #denyEl\n [class.hide]=\"!denyEl.children.length\"\n (click)=\"handleDeny($event); $event.stopPropagation()\">\n <ng-content select=\"[deny]\"></ng-content>\n </span>\n <span\n #acceptEl\n [class.hide]=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <ng-content select=\"[accept]\"></ng-content>\n </span>\n <span\n #acceptFallbackEl\n *ngIf=\"!acceptEl.children.length\"\n (click)=\"handleAccept($event); $event.stopPropagation()\">\n <button\n impdcButton\n [text]=\"acceptText\"\n [theme]=\"acceptFallbackTheme\"></button>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".impdc.modal{-webkit-user-select:none;user-select:none}.impdc.modal .modal-icon{display:inline-flex;justify-content:center;align-items:center;height:40px;width:40px;color:var(--impd-color-gray-500);background:var(--impd-color-gray-100);border-radius:50%;flex-shrink:0}.impdc.modal .modal-icon .fa,.impdc.modal .modal-icon .fa-brands,.impdc.modal .modal-icon .fa-duotone,.impdc.modal .modal-icon .fa-light,.impdc.modal .modal-icon .fa-regular,.impdc.modal .modal-icon .fa-solid,.impdc.modal .modal-icon .fa-thin,.impdc.modal .modal-icon .fab,.impdc.modal .modal-icon .fad,.impdc.modal .modal-icon .fal,.impdc.modal .modal-icon .far,.impdc.modal .modal-icon .fas,.impdc.modal .modal-icon .fat{line-height:var(--impartner-hex-modal-title-line-height)}.impdc.modal.fade.in{background-color:transparent}.impdc.modal.show{display:block;opacity:1}.impdc.modal:not(.show),.impdc.modal.hide,.impdc.modal .hide{display:none}.impdc.modal.dismissable{cursor:pointer}.impdc.modal.dismissable .modal-dialog{cursor:default}.impdc.modal .modal-dialog{cursor:default;-webkit-user-select:auto;user-select:auto}.impdc.modal .modal-theme-simple .modal-header,.impdc.modal .modal-theme-destructive .modal-header{border:0;padding-bottom:0}.impdc.modal .modal-theme-simple .modal-body,.impdc.modal .modal-theme-destructive .modal-body{padding:calc(var(--impartner-hex-modal-padding) * .5) var(--impartner-hex-modal-padding) var(--impartner-hex-modal-padding)}.impdc.modal .modal-theme-simple .modal-footer,.impdc.modal .modal-theme-destructive .modal-footer{border:0;padding-top:0}.impdc.modal .modal-theme-working .modal-footer{padding:calc(var(--impartner-hex-modal-padding) * .5 - var(--impartner-hex-modal-footer-gap) * .5) calc(var(--impartner-hex-modal-padding) - var(--impartner-hex-modal-footer-gap) * .5)}.impdc.modal .modal-theme-destructive .modal-content{display:grid;grid-template-areas:\"modal-icon modal-header\" \"modal-icon modal-body\" \"modal-footer modal-footer\";grid-template-columns:auto 1fr;grid-template-rows:auto 1fr auto}.impdc.modal .modal-theme-destructive .modal-content>.modal-icon{grid-area:modal-icon;margin:var(--impartner-hex-modal-header-padding);margin-right:0;margin-bottom:0}.impdc.modal .modal-theme-destructive .modal-content>.modal-header{grid-area:modal-header;padding-left:16px;margin-top:8px;justify-content:unset}.impdc.modal .modal-theme-destructive .modal-content>.modal-body{grid-area:modal-body;padding-left:16px}.impdc.modal .modal-theme-destructive .modal-content>.modal-footer{grid-area:modal-footer}.impdc.modal .modal-theme-destructive .modal-icon{color:var(--impd-color-red-600);background:var(--impd-color-red-100)}\n"] }]
|
|
116
143
|
}], ctorParameters: function () { return [{ type: i1.InteractionService }]; }, propDecorators: { show: [{
|
|
117
144
|
type: Input
|
|
118
145
|
}], theme: [{
|
|
@@ -125,12 +152,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
125
152
|
type: Input
|
|
126
153
|
}], titleText: [{
|
|
127
154
|
type: Input
|
|
155
|
+
}], acceptText: [{
|
|
156
|
+
type: Input
|
|
128
157
|
}], dismissable: [{
|
|
129
158
|
type: Input
|
|
130
159
|
}], fade: [{
|
|
131
160
|
type: Input
|
|
132
161
|
}], backdrop: [{
|
|
133
162
|
type: Input
|
|
163
|
+
}], dismissEl: [{
|
|
164
|
+
type: ViewChild,
|
|
165
|
+
args: ['dismissEl', { static: false }]
|
|
166
|
+
}], denyEl: [{
|
|
167
|
+
type: ViewChild,
|
|
168
|
+
args: ['denyEl', { static: false }]
|
|
169
|
+
}], acceptEl: [{
|
|
170
|
+
type: ViewChild,
|
|
171
|
+
args: ['acceptEl', { static: false }]
|
|
134
172
|
}], dismiss: [{
|
|
135
173
|
type: Output
|
|
136
174
|
}], deny: [{
|
|
@@ -138,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
138
176
|
}], accept: [{
|
|
139
177
|
type: Output
|
|
140
178
|
}] } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQXVCLFVBQVUsRUFBZSxNQUFNLFNBQVMsQ0FBQzs7Ozs7O0FBRXZFOzs7OztHQUtHO0FBTUgsTUFBTSxPQUFPLGNBQWM7SUF3R3pCLFlBQW9CLG1CQUF1QztRQUF2Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBdkduRCxvQkFBZSxHQUFXLENBQUMsQ0FBQztRQUVwQzs7V0FFRztRQUVILFNBQUksR0FBWSxLQUFLLENBQUM7UUFFdEI7O1dBRUc7UUFFSCxVQUFLLEdBQWdCLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFFdkM7O1dBRUc7UUFFSCxTQUFJLEdBQXdCLGFBQWEsQ0FBQyxNQUFNLENBQUM7UUFRakQ7OztXQUdHO1FBRUgsY0FBUyxHQUF5QixPQUFPLENBQUM7UUFFMUM7O1dBRUc7UUFFSCxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBUXZCOztXQUVHO1FBRUgsU0FBSSxHQUFZLElBQUksQ0FBQztRQUVyQjs7V0FFRztRQUVILGFBQVEsR0FBWSxJQUFJLENBQUM7UUFFekI7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7UUFFakQ7O1dBRUc7UUFFSCxTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQXNC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S0FBSztnQkFPTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sT0FBTztzQkFETixNQUFNO2dCQU9QLElBQUk7c0JBREgsTUFBTTtnQkFPUCxNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb250QXdlc29tZUljb24sIEZvbnRBd2Vzb21lSWNvblRoZW1lIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEludGVyYWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IENvbXBvbmVudFNpemUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBCdXR0b25UaGVtZSB9IGZyb20gJy4uL2J1dHRvbic7XG5pbXBvcnQgeyBNb2RhbENvbXBvbmVudFNpemVzLCBNb2RhbFRoZW1lLCBNb2RhbFRoZW1lcyB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFRoZSBgTW9kYWxDb21wb25lbnRgIChgPGltcGRjLW1vZGFsYCkgZGlzcGxheXMgb3ZlciB0aGUgY29udGVudCBvZiB0aGUgcGFnZSB3aGVuIGEgdXNlciBhY3Rpb24gaXMgcmVxdWlyZWQuXG4gKiBUbyB1c2UsIGltcG9ydCBgTW9kYWxNb2R1bGVgIG9yIGFub3RoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyBhbmQgZXhwb3J0cyB0aGF0IG1vZHVsZSBmcm9tIGBAaW1wYXJ0bmVyL2Rlc2lnbi1jb21wb25lbnRzYC5cbiAqIGBNb2RhbE1vZHVsZWAgaW1wb3J0cyBhbmQgZXhwb3J0cyBCYWNrZHJvcE1vZHVsZSwgW0J1dHRvbk1vZHVsZV0oLi8/cGF0aD0vZG9jcy9kZXNpZ24tY29tcG9uZW50cy1idXR0b24pLFxuICogYW5kIFtJY29uTW9kdWxlXSguLz9wYXRoPS9kb2NzL2Rlc2lnbi1jb21wb25lbnRzLWljb24pLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbXBkYy1tb2RhbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21vZGFsLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2ludGVyYWN0YWJsZUlkOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBNb2RhbCBzaG91bGQgYmUgc2hvd24gaW1tZWRpYXRlbHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBzaG93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSB0aGVtZSBvZiB0aGUgTW9kYWwuIEFmZmVjdHMgdGhlIGxheW91dCBvZiB0aGUgTW9kYWwgYXMgd2VsbCBhcyBzb21lIGNvbG9ycy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHRoZW1lOiBNb2RhbFRoZW1lcyA9IE1vZGFsVGhlbWUuU2ltcGxlO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgTW9kYWwuXG4gICAqL1xuICBASW5wdXQoKVxuICBzaXplOiBNb2RhbENvbXBvbmVudFNpemVzID0gQ29tcG9uZW50U2l6ZS5NZWRpdW07XG5cbiAgLyoqXG4gICAqIFRoZSBGb250IEF3ZXNvbWUgNSBpY29uIG5hbWUuIE9ubHkgc3VwcG9ydGVkIHdoZW4gdGhlIHRoZW1lIGlzIFdvcmtpbmcgb3IgRGVzdHJ1Y3RpdmUuXG4gICAqL1xuICBASW5wdXQoKVxuICBpY29uTmFtZT86IEZvbnRBd2Vzb21lSWNvbjtcblxuICAvKipcbiAgICogVGhlIEZvbnQgQXdlc29tZSA1IGljb24gc3R5bGUuIEZld2VyIGljb25zIHN1cHBvcnQgdGhlIFJlZ3VsYXIgdGhlbWUgYW5kIHdpbGwgZmFsbGJhY2sgdG8gU29saWRcbiAgICogaWYgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGljb25UaGVtZTogRm9udEF3ZXNvbWVJY29uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgc3ViamVjdCB0ZXh0IG9mIHRoZSBNb2RhbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHRpdGxlVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgTW9kYWwgdG8gYmUgZGlzbWlzc2VkLiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIGBhY2NlcHRgIGFuZCBgZGVueWAuIElmIGEgTW9kYWwgaXMgbWVhbnQgdG8gYmUgcmUtb3BlbmVkIGZyZXF1ZW50bHkgaXQgc2hvdWxkIGJlIGRpc21pc3NhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZGlzbWlzc2FibGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBNb2RhbCBzaG91bGQgZmFkZSBpbi9vdXQuXG4gICAqL1xuICBASW5wdXQoKVxuICBmYWRlOiBib29sZWFuID0gdHJ1ZTtcblxuICAvKipcbiAgICogU2hvd3MgYSBiYWNrZHJvcCBiZWhpbmQgdGhlIE1vZGFsLlxuICAgKi9cbiAgQElucHV0KClcbiAgYmFja2Ryb3A6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIE1vZGFsIGNvbnRlbnQgaXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBFdmVudD4oKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBNb2RhbCBjb250ZW50IGlzIGRlbmllZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBkZW55ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50IHwgRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgTW9kYWwgY29udGVudCBpcyBhY2NlcHRlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBhY2NlcHQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBFdmVudD4oKTtcblxuICBnZXQgaW50ZXJhY3RhYmxlSWQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5faW50ZXJhY3RhYmxlSWQ7XG4gIH1cblxuICBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaW50ZXJhY3RhYmxlSWQgPiAwO1xuICB9XG5cbiAgZ2V0IHNob3duKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnZhbGlkICYmIHRoaXMuc2hvdztcbiAgfVxuXG4gIGdldCBzaG93V29ya2luZ0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pY29uTmFtZSAmJiB0aGlzLnRoZW1lID09PSBNb2RhbFRoZW1lLldvcmtpbmc7XG4gIH1cblxuICBnZXQgc2hvd0Rlc3RydWN0aXZlSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmljb25OYW1lICYmIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuRGVzdHJ1Y3RpdmU7XG4gIH1cblxuICBnZXQgYWNjZXB0RmFsbGJhY2tUaGVtZSgpOiBCdXR0b25UaGVtZSB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuRGVzdHJ1Y3RpdmUgPyAnZGFuZ2VyJyA6ICdwcmltYXJ5JztcbiAgfVxuXG4gIGdldCBoaWRlSGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50aXRsZVRleHQgJiYgIXRoaXMuZGlzbWlzc2FibGU7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pbnRlcmFjdGlvblNlcnZpY2U6IEludGVyYWN0aW9uU2VydmljZSkge1xuICAgIHRoaXMuX2ludGVyYWN0YWJsZUlkID0gdGhpcy5faW50ZXJhY3Rpb25TZXJ2aWNlLmFkZCh0aGlzKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc21pc3NhYmxlID09PSB1bmRlZmluZWQgJiYgdGhpcy50aGVtZSA9PT0gTW9kYWxUaGVtZS5Xb3JraW5nKSB7XG4gICAgICB0aGlzLmRpc21pc3NhYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pY29uTmFtZSA9PT0gdW5kZWZpbmVkICYmIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuRGVzdHJ1Y3RpdmUpIHtcbiAgICAgIHRoaXMuaWNvbk5hbWUgPSAnZXhjbGFtYXRpb24tdHJpYW5nbGUnO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2ludGVyYWN0aW9uU2VydmljZS5yZW1vdmUodGhpcy5pbnRlcmFjdGFibGVJZCk7XG4gICAgdGhpcy5faW50ZXJhY3RhYmxlSWQgPSAwO1xuICB9XG5cbiAgaGFuZGxlRGlzbWlzcyhldmVudDogTW91c2VFdmVudCB8IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc21pc3NhYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuZGlzbWlzcy5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGhhbmRsZURlbnkoZXZlbnQ6IE1vdXNlRXZlbnQgfCBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuZGVueS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIGhhbmRsZUFjY2VwdChldmVudDogTW91c2VFdmVudCB8IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zaG93ID0gZmFsc2U7XG4gICAgdGhpcy5hY2NlcHQuZW1pdChldmVudCk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJ2YWxpZFwiXG4gIGNsYXNzPVwiaW1wZGMgbW9kYWxcIlxuICBbY2xhc3MuZmFkZV09XCJmYWRlXCJcbiAgW2NsYXNzLmluXT1cImZhZGUgJiYgc2hvd25cIlxuICBbY2xhc3Muc2hvd109XCJzaG93blwiXG4gIFtjbGFzcy5kaXNtaXNzYWJsZV09XCJkaXNtaXNzYWJsZVwiXG4gIHRhYmluZGV4PVwiLTFcIlxuICAoY2xpY2spPVwiaGFuZGxlRGlzbWlzcygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAoa2V5ZG93bi5lc2NhcGUpPVwiaGFuZGxlRGlzbWlzcygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVBY2NlcHQoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1kaWFsb2ctY2VudGVyZWQgbW9kYWwtZGlhbG9nLXNjcm9sbGFibGUgbW9kYWwtdGhlbWUte3tcbiAgICAgIHRoZW1lXG4gICAgfX1cIlxuICAgIFtjbGFzcy5tb2RhbC1zbV09XCJzaXplID09PSAnc20nXCJcbiAgICBbY2xhc3MubW9kYWwtbGddPVwic2l6ZSA9PT0gJ2xnJ1wiXG4gICAgW2NsYXNzLm1vZGFsLXhsXT1cInNpemUgPT09ICd4bCdcIlxuICAgIFtjbGFzcy5tb2RhbC1mdWxsc2NyZWVuXT1cInNpemUgPT09ICdmcydcIlxuICAgIFtjbGFzcy5tb2RhbC1mdWxsc2NyZWVuLWxnLWRvd25dPVwic2l6ZSAhPT0gJ2ZzJ1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd0Rlc3RydWN0aXZlSWNvblwiIGNsYXNzPVwibW9kYWwtaWNvblwiPlxuICAgICAgICA8c3BhbiBpbXBkYy1pY29uIFtuYW1lXT1cImljb25OYW1lXCIgW3RoZW1lXT1cImljb25UaGVtZVwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAjaGVhZGVyIGNsYXNzPVwibW9kYWwtaGVhZGVyXCIgW2NsYXNzLmhpZGVdPVwiaGlkZUhlYWRlclwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd1dvcmtpbmdJY29uXCIgY2xhc3M9XCJtb2RhbC1pY29uXCI+XG4gICAgICAgICAgICA8c3BhbiBpbXBkYy1pY29uIFtuYW1lXT1cImljb25OYW1lXCIgW3RoZW1lXT1cImljb25UaGVtZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4+e3sgdGl0bGVUZXh0IH19PC9zcGFuPlxuICAgICAgICA8L2gzPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICAqbmdJZj1cImRpc21pc3NhYmxlXCJcbiAgICAgICAgICB0aGVtZT1cImNsb3NlXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGlzbWlzcygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAjYm9keUVsIGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgI2Zvb3RlciBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNkaXNtaXNzRWxcbiAgICAgICAgICAqbmdJZj1cImRpc21pc3NhYmxlXCJcbiAgICAgICAgICBbY2xhc3MuaGlkZV09XCIhZGlzbWlzc0VsLmNoaWxkcmVuLmxlbmd0aFwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Rpc21pc3NdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgI2RlbnlFbFxuICAgICAgICAgIFtjbGFzcy5oaWRlXT1cIiFkZW55RWwuY2hpbGRyZW4ubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGVueSgkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGVueV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAjYWNjZXB0RWxcbiAgICAgICAgICBbY2xhc3MuaGlkZV09XCIhYWNjZXB0RWwuY2hpbGRyZW4ubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQWNjZXB0KCRldmVudCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY2NlcHRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgI2FjY2VwdEZhbGxiYWNrRWxcbiAgICAgICAgICAqbmdJZj1cIiFhY2NlcHRFbC5jaGlsZHJlbi5sZW5ndGhcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVBY2NlcHQoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPGJ1dHRvbiBpbXBkY0J1dHRvbiB0ZXh0PVwiT0tcIiBbdGhlbWVdPVwiYWNjZXB0RmFsbGJhY2tUaGVtZVwiPjwvYnV0dG9uPlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGVzaWduLWNvbXBvbmVudHMvc3JjL2xpYi9tb2RhbC9tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL21vZGFsL21vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFNUMsT0FBTyxFQUF1QixVQUFVLEVBQWUsTUFBTSxTQUFTLENBQUM7Ozs7OztBQUV2RTs7Ozs7R0FLRztBQU1ILE1BQU0sT0FBTyxjQUFjO0lBdUd6QixZQUFvQixtQkFBdUM7UUFBdkMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQXRHbkQsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsVUFBSyxHQUFHLEtBQUssQ0FBQztRQVV0Qjs7V0FFRztRQUVILFVBQUssR0FBZ0IsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUV2Qzs7V0FFRztRQUVILFNBQUksR0FBd0IsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQVFqRDs7O1dBR0c7UUFFSCxjQUFTLEdBQXlCLE9BQU8sQ0FBQztRQUUxQzs7V0FFRztRQUVILGNBQVMsR0FBRyxFQUFFLENBQUM7UUFFZjs7V0FFRztRQUVILGVBQVUsR0FBRyxJQUFJLENBQUM7UUFRbEI7O1dBRUc7UUFFSCxTQUFJLEdBQUcsSUFBSSxDQUFDO1FBRVo7O1dBRUc7UUFFSCxhQUFRLEdBQUcsSUFBSSxDQUFDO1FBb0JoQjs7V0FFRztRQUVILFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUVqRDs7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RWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9udEF3ZXNvbWVJY29uLCBGb250QXdlc29tZUljb25UaGVtZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBJbnRlcmFjdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQnV0dG9uVGhlbWUgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnRTaXplcywgTW9kYWxUaGVtZSwgTW9kYWxUaGVtZXMgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBUaGUgYE1vZGFsQ29tcG9uZW50YCAoYDxpbXBkYy1tb2RhbGApIGRpc3BsYXlzIG92ZXIgdGhlIGNvbnRlbnQgb2YgdGhlIHBhZ2Ugd2hlbiBhIHVzZXIgYWN0aW9uIGlzIHJlcXVpcmVkLlxuICogVG8gdXNlLCBpbXBvcnQgYE1vZGFsTW9kdWxlYCBvciBhbm90aGVyIG1vZHVsZSB0aGF0IGltcG9ydHMgYW5kIGV4cG9ydHMgdGhhdCBtb2R1bGUgZnJvbSBgQGltcGFydG5lci9kZXNpZ24tY29tcG9uZW50c2AuXG4gKiBgTW9kYWxNb2R1bGVgIGltcG9ydHMgYW5kIGV4cG9ydHMgQmFja2Ryb3BNb2R1bGUsIFtCdXR0b25Nb2R1bGVdKC4vP3BhdGg9L2RvY3MvZGVzaWduLWNvbXBvbmVudHMtYnV0dG9uKSxcbiAqIGFuZCBbSWNvbk1vZHVsZV0oLi8/cGF0aD0vZG9jcy9kZXNpZ24tY29tcG9uZW50cy1pY29uKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1vZGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9pbnRlcmFjdGFibGVJZCA9IDA7XG4gIHByaXZhdGUgX3Nob3cgPSBmYWxzZTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiB0aGUgTW9kYWwgc2hvdWxkIGJlIHNob3duIGltbWVkaWF0ZWx5LlxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHNob3coc2hvdzogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3cgPSBzaG93O1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSB0aGVtZSBvZiB0aGUgTW9kYWwuIEFmZmVjdHMgdGhlIGxheW91dCBvZiB0aGUgTW9kYWwgYXMgd2VsbCBhcyBzb21lIGNvbG9ycy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHRoZW1lOiBNb2RhbFRoZW1lcyA9IE1vZGFsVGhlbWUuU2ltcGxlO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgTW9kYWwuXG4gICAqL1xuICBASW5wdXQoKVxuICBzaXplOiBNb2RhbENvbXBvbmVudFNpemVzID0gQ29tcG9uZW50U2l6ZS5NZWRpdW07XG5cbiAgLyoqXG4gICAqIFRoZSBGb250IEF3ZXNvbWUgNSBpY29uIG5hbWUuIE9ubHkgc3VwcG9ydGVkIHdoZW4gdGhlIHRoZW1lIGlzIFdvcmtpbmcgb3IgRGVzdHJ1Y3RpdmUuXG4gICAqL1xuICBASW5wdXQoKVxuICBpY29uTmFtZT86IEZvbnRBd2Vzb21lSWNvbjtcblxuICAvKipcbiAgICogVGhlIEZvbnQgQXdlc29tZSA1IGljb24gc3R5bGUuIEZld2VyIGljb25zIHN1cHBvcnQgdGhlIFJlZ3VsYXIgdGhlbWUgYW5kIHdpbGwgZmFsbGJhY2sgdG8gU29saWRcbiAgICogaWYgbm90IHN1cHBvcnRlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGljb25UaGVtZTogRm9udEF3ZXNvbWVJY29uVGhlbWUgPSAnbGlnaHQnO1xuXG4gIC8qKlxuICAgKiBUaGUgc3ViamVjdCB0ZXh0IG9mIHRoZSBNb2RhbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHRpdGxlVGV4dCA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgZmFsbGJhY2sgYnV0dG9uIHRleHQgdG8gYWNjZXB0IHRoZSBNb2RhbC4gVGhpcyBpcyBieXBhc3NlZCBpZiB5b3UgY29udGVudC1wcm9qZWN0IHRoZSBhY2NlcHQgYnV0dG9uLlxuICAgKi9cbiAgQElucHV0KClcbiAgYWNjZXB0VGV4dCA9ICdPSyc7XG5cbiAgLyoqXG4gICAqIEFsbG93cyB0aGUgTW9kYWwgdG8gYmUgZGlzbWlzc2VkLiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIGBhY2NlcHRgIGFuZCBgZGVueWAuIElmIGEgTW9kYWwgaXMgbWVhbnQgdG8gYmUgcmUtb3BlbmVkIGZyZXF1ZW50bHkgaXQgc2hvdWxkIGJlIGRpc21pc3NhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgZGlzbWlzc2FibGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIHRoZSBNb2RhbCBzaG91bGQgZmFkZSBpbi9vdXQuXG4gICAqL1xuICBASW5wdXQoKVxuICBmYWRlID0gdHJ1ZTtcblxuICAvKipcbiAgICogU2hvd3MgYSBiYWNrZHJvcCBiZWhpbmQgdGhlIE1vZGFsLlxuICAgKi9cbiAgQElucHV0KClcbiAgYmFja2Ryb3AgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBDb250YWlucyB0aGUgZGlzbWlzcyBidXR0b24gY29udGVudCBwcm9qZWN0aW9uLlxuICAgKi9cbiAgQFZpZXdDaGlsZCgnZGlzbWlzc0VsJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIGRpc21pc3NFbCE6IEVsZW1lbnRSZWY7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5zIHRoZSBkZW55IGJ1dHRvbiBjb250ZW50IHByb2plY3Rpb24uXG4gICAqL1xuICBAVmlld0NoaWxkKCdkZW55RWwnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgZGVueUVsITogRWxlbWVudFJlZjtcblxuICAvKipcbiAgICogQ29udGFpbnMgdGhlIGFjY2VwdCBidXR0b24gY29udGVudCBwcm9qZWN0aW9uLlxuICAgKi9cbiAgQFZpZXdDaGlsZCgnYWNjZXB0RWwnLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgYWNjZXB0RWwhOiBFbGVtZW50UmVmO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIE1vZGFsIGNvbnRlbnQgaXMgZGlzbWlzc2VkLlxuICAgKi9cbiAgQE91dHB1dCgpXG4gIGRpc21pc3MgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBFdmVudD4oKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBNb2RhbCBjb250ZW50IGlzIGRlbmllZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBkZW55ID0gbmV3IEV2ZW50RW1pdHRlcjxNb3VzZUV2ZW50IHwgRXZlbnQ+KCk7XG5cbiAgLyoqXG4gICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgTW9kYWwgY29udGVudCBpcyBhY2NlcHRlZC5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBhY2NlcHQgPSBuZXcgRXZlbnRFbWl0dGVyPE1vdXNlRXZlbnQgfCBFdmVudD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9pbnRlcmFjdGlvblNlcnZpY2U6IEludGVyYWN0aW9uU2VydmljZSkge1xuICAgIHRoaXMuX2ludGVyYWN0YWJsZUlkID0gdGhpcy5faW50ZXJhY3Rpb25TZXJ2aWNlLmFkZCh0aGlzKTtcbiAgfVxuXG4gIGdldCBpbnRlcmFjdGFibGVJZCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9pbnRlcmFjdGFibGVJZDtcbiAgfVxuXG4gIGdldCB2YWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pbnRlcmFjdGFibGVJZCA+IDA7XG4gIH1cblxuICBnZXQgc2hvd24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudmFsaWQgJiYgdGhpcy5fc2hvdztcbiAgfVxuXG4gIGdldCBzaG93V29ya2luZ0ljb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pY29uTmFtZSAmJiB0aGlzLnRoZW1lID09PSBNb2RhbFRoZW1lLldvcmtpbmc7XG4gIH1cblxuICBnZXQgc2hvd0Rlc3RydWN0aXZlSWNvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmljb25OYW1lICYmIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuRGVzdHJ1Y3RpdmU7XG4gIH1cblxuICBnZXQgYWNjZXB0RmFsbGJhY2tUaGVtZSgpOiBCdXR0b25UaGVtZSB7XG4gICAgcmV0dXJuIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuRGVzdHJ1Y3RpdmUgPyAnZGFuZ2VyJyA6ICdwcmltYXJ5JztcbiAgfVxuXG4gIGdldCBoaWRlSGVhZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy50aXRsZVRleHQgJiYgIXRoaXMuZGlzbWlzc2FibGU7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNtaXNzYWJsZSA9PT0gdW5kZWZpbmVkICYmIHRoaXMudGhlbWUgPT09IE1vZGFsVGhlbWUuV29ya2luZykge1xuICAgICAgdGhpcy5kaXNtaXNzYWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaWNvbk5hbWUgPT09IHVuZGVmaW5lZCAmJiB0aGlzLnRoZW1lID09PSBNb2RhbFRoZW1lLkRlc3RydWN0aXZlKSB7XG4gICAgICB0aGlzLmljb25OYW1lID0gJ2V4Y2xhbWF0aW9uLXRyaWFuZ2xlJztcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9pbnRlcmFjdGlvblNlcnZpY2UucmVtb3ZlKHRoaXMuaW50ZXJhY3RhYmxlSWQpO1xuICAgIHRoaXMuX2ludGVyYWN0YWJsZUlkID0gMDtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEaXNtaXNzKGV2ZW50OiBNb3VzZUV2ZW50IHwgRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5kaXNtaXNzYWJsZSB8fFxuICAgICAgISF0aGlzLmRpc21pc3NFbD8ubmF0aXZlRWxlbWVudD8uZmlyc3RDaGlsZD8uZGlzYWJsZWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuZGlzbWlzcy5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVEZW55KGV2ZW50OiBNb3VzZUV2ZW50IHwgRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoISF0aGlzLmRlbnlFbD8ubmF0aXZlRWxlbWVudD8uZmlyc3RDaGlsZD8uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuZGVueS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVBY2NlcHQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBFdmVudCk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKCd0aGlzLmFjY2VwdEVsJywgdGhpcy5hY2NlcHRFbCk7XG4gICAgaWYgKCEhdGhpcy5hY2NlcHRFbD8ubmF0aXZlRWxlbWVudD8uZmlyc3RDaGlsZD8uZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fc2hvdyA9IGZhbHNlO1xuICAgIHRoaXMuYWNjZXB0LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zL3Nob3dzIHRoZSBtb2RhbCBwcm9ncmFtbWF0aWNhbGx5LlxuICAgKi9cbiAgb3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9zaG93ID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMvaGlkZXMgdGhlIG1vZGFsIHByb2dyYW1tYXRpY2FsbHkuXG4gICAqL1xuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9zaG93ID0gZmFsc2U7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJ2YWxpZFwiXG4gIGNsYXNzPVwiaW1wZGMgbW9kYWxcIlxuICBbY2xhc3MuZmFkZV09XCJmYWRlXCJcbiAgW2NsYXNzLmluXT1cImZhZGUgJiYgc2hvd25cIlxuICBbY2xhc3Muc2hvd109XCJzaG93blwiXG4gIFtjbGFzcy5kaXNtaXNzYWJsZV09XCJkaXNtaXNzYWJsZVwiXG4gIHRhYmluZGV4PVwiLTFcIlxuICAoY2xpY2spPVwiaGFuZGxlRGlzbWlzcygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAoa2V5ZG93bi5lc2NhcGUpPVwiaGFuZGxlRGlzbWlzcygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxuICAoa2V5ZG93bi5lbnRlcik9XCJoYW5kbGVBY2NlcHQoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cIm1vZGFsLWRpYWxvZyBtb2RhbC1kaWFsb2ctY2VudGVyZWQgbW9kYWwtZGlhbG9nLXNjcm9sbGFibGUgbW9kYWwtdGhlbWUte3tcbiAgICAgIHRoZW1lXG4gICAgfX1cIlxuICAgIFtjbGFzcy5tb2RhbC1zbV09XCJzaXplID09PSAnc20nXCJcbiAgICBbY2xhc3MubW9kYWwtbGddPVwic2l6ZSA9PT0gJ2xnJ1wiXG4gICAgW2NsYXNzLm1vZGFsLXhsXT1cInNpemUgPT09ICd4bCdcIlxuICAgIFtjbGFzcy5tb2RhbC1mdWxsc2NyZWVuXT1cInNpemUgPT09ICdmcydcIlxuICAgIFtjbGFzcy5tb2RhbC1mdWxsc2NyZWVuLWxnLWRvd25dPVwic2l6ZSAhPT0gJ2ZzJ1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwic2hvd0Rlc3RydWN0aXZlSWNvblwiIGNsYXNzPVwibW9kYWwtaWNvblwiPlxuICAgICAgICA8c3BhbiBpbXBkYy1pY29uIFtuYW1lXT1cImljb25OYW1lXCIgW3RoZW1lXT1cImljb25UaGVtZVwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAjaGVhZGVyIGNsYXNzPVwibW9kYWwtaGVhZGVyXCIgW2NsYXNzLmhpZGVdPVwiaGlkZUhlYWRlclwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJtb2RhbC10aXRsZVwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwic2hvd1dvcmtpbmdJY29uXCIgY2xhc3M9XCJtb2RhbC1pY29uXCI+XG4gICAgICAgICAgICA8c3BhbiBpbXBkYy1pY29uIFtuYW1lXT1cImljb25OYW1lXCIgW3RoZW1lXT1cImljb25UaGVtZVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPHNwYW4+e3sgdGl0bGVUZXh0IH19PC9zcGFuPlxuICAgICAgICA8L2gzPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICAqbmdJZj1cImRpc21pc3NhYmxlXCJcbiAgICAgICAgICB0aGVtZT1cImNsb3NlXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGlzbWlzcygkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAjYm9keUVsIGNsYXNzPVwibW9kYWwtYm9keVwiPlxuICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgI2Zvb3RlciBjbGFzcz1cIm1vZGFsLWZvb3RlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgICNkaXNtaXNzRWxcbiAgICAgICAgICAqbmdJZj1cImRpc21pc3NhYmxlXCJcbiAgICAgICAgICBbY2xhc3MuaGlkZV09XCIhZGlzbWlzc0VsLmNoaWxkcmVuLmxlbmd0aFwiXG4gICAgICAgICAgKGNsaWNrKT1cImhhbmRsZURpc21pc3MoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Rpc21pc3NdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgI2RlbnlFbFxuICAgICAgICAgIFtjbGFzcy5oaWRlXT1cIiFkZW55RWwuY2hpbGRyZW4ubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlRGVueSgkZXZlbnQpOyAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGVueV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICAjYWNjZXB0RWxcbiAgICAgICAgICBbY2xhc3MuaGlkZV09XCIhYWNjZXB0RWwuY2hpbGRyZW4ubGVuZ3RoXCJcbiAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlQWNjZXB0KCRldmVudCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlthY2NlcHRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgI2FjY2VwdEZhbGxiYWNrRWxcbiAgICAgICAgICAqbmdJZj1cIiFhY2NlcHRFbC5jaGlsZHJlbi5sZW5ndGhcIlxuICAgICAgICAgIChjbGljayk9XCJoYW5kbGVBY2NlcHQoJGV2ZW50KTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgICAgIFt0ZXh0XT1cImFjY2VwdFRleHRcIlxuICAgICAgICAgICAgW3RoZW1lXT1cImFjY2VwdEZhbGxiYWNrVGhlbWVcIj48L2J1dHRvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -131,4 +131,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
131
131
|
}], goToPage: [{
|
|
132
132
|
type: Output
|
|
133
133
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUzQzs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU1VLGFBQVEsR0FDZCxrRUFBa0UsQ0FBQztRQUVyRTs7V0FFRztRQUVJLFNBQUksR0FBVyxDQUFDLENBQUM7UUFFeEI7O1dBRUc7UUFFSSxZQUFPLEdBQVcsRUFBRSxDQUFDO1FBRTVCOztXQUVHO1FBRUksVUFBSyxHQUFXLENBQUMsQ0FBQztRQWtCekI7O1dBRUc7UUFDdUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0ErRmpFO0lBbEhDOzs7T0FHRztJQUNILElBQ1csT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzNCLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLElBQUksQ0FBQyxlQUFlLE1BQU0sQ0FBQzthQUM5RCxPQUFPLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxJQUFJLENBQUMsY0FBYyxNQUFNLENBQUM7YUFDNUQsT0FBTyxD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QUVNLGFBQWEsQ0FBQyxJQUFxQjtRQUN4QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTztTQUNSO1FBRUQsSUFBSSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUU7WUFDekIsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDckM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBRTlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEMsQ0FBQzs7aUhBdklVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLG9NQ2JoQyx3b0VBeUVBOzRGRDVEYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UseUNBQXlDOzhCQVk1QyxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsT0FBTztzQkFEYixLQUFLO2dCQU9DLEtBQUs7c0JBRFgsS0FBSztnQkFRSyxPQUFPO3NCQURqQixLQUFLO2dCQWVvQixRQUFRO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNhbml0aXplIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcblxuLyoqXG4gKiBUaGUgYFBhZ2luYXRpb25Db21wb25lbnRgIChgPGltcGRjLXBhZ2luYXRpb25gIG9yIGA8ZGl2IGltcGRjLXBhZ2luYXRpb25gKSBpcyBhIGNvbnRyb2wgZm9yIHBhZ2VkIGNvbnRlbnQgc3VjaCBhcyB0YWJsZXMgb3IgbGlzdHMuXG4gKiBUbyB1c2UsIGltcG9ydCBgUGFnaW5hdGlvbk1vZHVsZWAgb3IgYW5vdGhlciBtb2R1bGUgdGhhdCBpbXBvcnRzIGFuZCBleHBvcnRzIHRoYXQgbW9kdWxlIGZyb20gYEBpbXBhcnRuZXIvZGVzaWduLWNvbXBvbmVudHNgLlxuICogYE1vZGFsTW9kdWxlYCBpbXBvcnRzIGFuZCBleHBvcnRzIEltcGRjRm9ybXNNb2R1bGUgYW5kIFtCdXR0b25Nb2R1bGVdKC4vP3BhdGg9L2RvY3MvZGVzaWduLWNvbXBvbmVudHMtYnV0dG9uKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtcGFnaW5hdGlvbiwgZGl2W2ltcGRjLXBhZ2luYXRpb25dJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgX3N1bW1hcnk6IHN0cmluZyA9XG4gICAgJ1Nob3dpbmcge2ZpcnN0UGFnZVJlc3VsdH0gdG8ge2xhc3RQYWdlUmVzdWx0fSBvZiB7dG90YWx9IHJlc3VsdHMnO1xuXG4gIC8qKlxuICAgKiBUaGUgY3VycmVudCBwYWdlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2U6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgaXRlbXMgc2hvd24gcGVyIHBhZ2UuIEl0ZW1zIGFyZSBjb21tb25seSBkaXNwbGF5ZWQgYXMgcm93cyBpbiBhIHRhYmxlLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHBlclBhZ2U6IG51bWJlciA9IDEwO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRvdGFsOiBudW1iZXIgPSAwO1xuXG4gIC8qKlxuICAgKiBBIGZvcm1hdHRhYmxlIHRleHQgc3VtbWFyeSBvZiBwYWdpbmF0aW9uIGRhdGEuIGB7Zmlyc3RQYWdlUmVzdWx0fWAgVGhlIGZpcnN0IGl0ZW0gd2l0aGluIHRoZSBjdXJyZW50IHBhZ2UuXG4gICAqIGB7bGFzdFBhZ2VSZXN1bHR9YCBUaGUgbGFzdCBpdGVtIHdpdGhpbiB0aGUgY3VycmVudCBwYWdlLiBge3RvdGFsfWAgVGhlIHRvdGFsIG51bWJlciBvZiBpdGVtcy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgc3VtbWFyeShzdW1tYXJ5OiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zdW1tYXJ5ID0gc3VtbWFyeTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3VtbWFyeSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzYW5pdGl6ZSh0aGlzLl9zdW1tYXJ5KVxuICAgICAgLnJlcGxhY2UoJ3tmaXJzdFBhZ2VSZXN1bHR9JywgYDxiPiR7dGhpcy5maXJzdFBhZ2VSZXN1bHR9PC9iPmApXG4gICAgICAucmVwbGFjZSgne2xhc3RQYWdlUmVzdWx0fScsIGA8Yj4ke3RoaXMubGFzdFBhZ2VSZXN1bHR9PC9iPmApXG4gICAgICAucmVwbGFjZSgne3RvdGFsfScsIGA8Yj4ke3RoaXMudG90YWx9PC9iPmApO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgcGFnZSBudW1iZXIgaXMgY2hhbmdlZCwgc3BlY2lmeWluZyB0aGUgdGFyZ2V0IHBhZ2UgbnVtYmVyLlxuICAgKi9cbiAgQE91dHB1dCgpIHB1YmxpYyByZWFkb25seSBnb1RvUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHB1YmxpYyBnZXQgdG90YWxQYWdlcygpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnRvdGFsIDwgMSB8fCB0aGlzLnBlclBhZ2UgPCAxKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50b3RhbCA8IHRoaXMucGVyUGFnZSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy5wZXJQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlyc3RQYWdlUmVzdWx0KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMudG90YWwgPCAxIHx8IHRoaXMucGFnZSA8IDEgfHwgdGhpcy5wZXJQYWdlIDwgMSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFnZSA9PT0gMSkge1xuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFnZSA+IE1hdGguY2VpbCh0aGlzLnRvdGFsIC8gdGhpcy5wZXJQYWdlKSkge1xuICAgICAgcmV0dXJuIHRoaXMudG90YWw7XG4gICAgfVxuXG4gICAgcmV0dXJuICh0aGlzLnBhZ2UgLSAxKSAqIHRoaXMucGVyUGFnZSArIDE7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGxhc3RQYWdlUmVzdWx0KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMudG90YWwgPD0gMCB8fCB0aGlzLnBhZ2UgPCAxIHx8IHRoaXMucGVyUGFnZSA8IDEpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2UgPT09IDEpIHtcbiAgICAgIGlmICh0aGlzLnRvdGFsIDwgdGhpcy5wZXJQYWdlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGVyUGFnZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50b3RhbCA8IHRoaXMucGVyUGFnZSAqIHRoaXMucGFnZSkge1xuICAgICAgcmV0dXJuIHRoaXMudG90YWw7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnBlclBhZ2UgKiB0aGlzLnBhZ2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdvVG9QcmV2aW91c1BhZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFnZSA8PSAxKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5wYWdlIC0gMTtcbiAgICB0aGlzLnBhZ2UgPSBwcmV2aW91c1BhZ2U7XG5cbiAgICB0aGlzLmdvVG9QYWdlLmVtaXQocHJldmlvdXNQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvTmV4dFBhZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFnZSA+PSB0aGlzLnRvdGFsUGFnZXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0UGFnZSA9IHRoaXMucGFnZSArIDE7XG4gICAgdGhpcy5wYWdlID0gbmV4dFBhZ2U7XG5cbiAgICB0aGlzLmdvVG9QYWdlLmVtaXQobmV4dFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdvVG9FeGFjdFBhZ2VGcm9tRXZlbnQoeyB0YXJnZXQgfTogRm9jdXNFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZ29Ub0V4YWN0UGFnZSgodGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpPy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub0V4YWN0UGFnZShwYWdlOiBudW1iZXIgfCBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXBhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgYWxsb3dlZFBhZ2VOdW1iZXIgPSBOdW1iZXIocGFnZSk7XG5cbiAgICBpZiAoYWxsb3dlZFBhZ2VOdW1iZXIgPCAwKSB7XG4gICAgICBhbGxvd2VkUGFnZU51bWJlciA9IDE7XG4gICAgfVxuXG4gICAgaWYgKGFsbG93ZWRQYWdlTnVtYmVyID4gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICBhbGxvd2VkUGFnZU51bWJlciA9IHRoaXMudG90YWxQYWdlcztcbiAgICB9XG5cbiAgICB0aGlzLnBhZ2UgPSBhbGxvd2VkUGFnZU51bWJlcjtcblxuICAgIHRoaXMuZ29Ub1BhZ2UuZW1pdChhbGxvd2VkUGFnZU51bWJlcik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwibW9iaWxlLXBhZ2luYXRpb25cIj5cbiAgICA8YnV0dG9uXG4gICAgICBpbXBkY0J1dHRvblxuICAgICAgdGhlbWU9XCJzZWNvbmRhcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPD0gMVwiXG4gICAgICAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCI+XG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+XG4gICAgPC9idXR0b24+XG4gICAgPGJ1dHRvblxuICAgICAgaW1wZGNCdXR0b25cbiAgICAgIHRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJwYWdlID09PSB0b3RhbFBhZ2VzXCJcbiAgICAgIChjbGljayk9XCJnb1RvTmV4dFBhZ2UoKVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1yaWdodFwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRlc2t0b3AtcGFnaW5hdGlvblwiPlxuICAgIDxkaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cInN1bW1hcnlcIiBbaW5uZXJIVE1MXT1cInN1bW1hcnlcIj48L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInBhZ2luYXRpb24tYWN0aW9uc1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBpbXBkY0J1dHRvblxuICAgICAgICB0aGVtZT1cInNlY29uZGFyeVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJGaXJzdCBQYWdlXCJcbiAgICAgICAgY2xhc3M9XCJwYWdpbmF0aW9uLWZpcnN0LWxhc3QtYnRuc1wiXG4gICAgICAgIChjbGljayk9XCJnb1RvRXhhY3RQYWdlKDEpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPD0gMVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnQgZmlyc3RcIj48L2k+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tbGVmdFwiPjwvaT5cbiAgICAgICAgPCEtLSAxIC0tPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGltcGRjQnV0dG9uXG4gICAgICAgIHRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgY2xhc3M9XCJwcmV2aW91c1wiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJQcmV2aW91c1wiXG4gICAgICAgIChjbGljayk9XCJnb1RvUHJldmlvdXNQYWdlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicGFnZSA8PSAxXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tbGVmdFwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGRpdiBjbGFzcz1cInBhZ2UtY2hhbmdlXCI+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGltcGRjSW5wdXRcbiAgICAgICAgICBtYXhsZW5ndGg9XCI0XCJcbiAgICAgICAgICBbdmFsdWVdPVwicGFnZVwiXG4gICAgICAgICAgKGJsdXIpPVwiZ29Ub0V4YWN0UGFnZUZyb21FdmVudCgkZXZlbnQpXCIgLz5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b3RhbC1wYWdlc1wiPiAvIHt7IHRvdGFsUGFnZXMgfX0gPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGltcGRjQnV0dG9uXG4gICAgICAgIHRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIk5leHRcIlxuICAgICAgICAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicGFnZSA9PT0gdG90YWxQYWdlc1wiPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPlxuICAgICAgPC9idXR0b24+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGltcGRjQnV0dG9uXG4gICAgICAgIHRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgY2xhc3M9XCJwYWdpbmF0aW9uLWZpcnN0LWxhc3QtYnRuc1wiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJMYXN0IFBhZ2VcIlxuICAgICAgICAoY2xpY2spPVwiZ29Ub0V4YWN0UGFnZSh0b3RhbFBhZ2VzKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJwYWdlID09PSB0b3RhbFBhZ2VzXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHQgbGFzdFwiPjwvaT5cbiAgICAgICAgPCEtLSB7eyB0b3RhbFBhZ2VzIH19IC0tPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUUzQzs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU1VLGFBQVEsR0FDZCxrRUFBa0UsQ0FBQztRQUVyRTs7V0FFRztRQUVJLFNBQUksR0FBRyxDQUFDLENBQUM7UUFFaEI7O1dBRUc7UUFFSSxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRXBCOztXQUVHO1FBRUksVUFBSyxHQUFHLENBQUMsQ0FBQztRQWtCakI7O1dBRUc7UUFDdUIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0ErRmpFO0lBbEhDOzs7T0FHRztJQUNILElBQ1csT0FBTyxDQUFDLE9BQWU7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzNCLE9BQU8sQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLElBQUksQ0FBQyxlQUFlLE1BQU0sQ0FBQzthQUM5RCxPQUFPLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxJQUFJLENBQUMsY0FBYyxNQUFNLENBQUM7YUFDNUQsT0FBTyxD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QUVNLGFBQWEsQ0FBQyxJQUFxQjtRQUN4QyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1QsT0FBTztTQUNSO1FBRUQsSUFBSSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckMsSUFBSSxpQkFBaUIsR0FBRyxDQUFDLEVBQUU7WUFDekIsaUJBQWlCLEdBQUcsQ0FBQyxDQUFDO1NBQ3ZCO1FBRUQsSUFBSSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3ZDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7U0FDckM7UUFFRCxJQUFJLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO1FBRTlCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDeEMsQ0FBQzs7aUhBdklVLG1CQUFtQjtxR0FBbkIsbUJBQW1CLG9NQ2JoQyx3b0VBeUVBOzRGRDVEYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UseUNBQXlDOzhCQVk1QyxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsT0FBTztzQkFEYixLQUFLO2dCQU9DLEtBQUs7c0JBRFgsS0FBSztnQkFRSyxPQUFPO3NCQURqQixLQUFLO2dCQWVvQixRQUFRO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNhbml0aXplIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzJztcblxuLyoqXG4gKiBUaGUgYFBhZ2luYXRpb25Db21wb25lbnRgIChgPGltcGRjLXBhZ2luYXRpb25gIG9yIGA8ZGl2IGltcGRjLXBhZ2luYXRpb25gKSBpcyBhIGNvbnRyb2wgZm9yIHBhZ2VkIGNvbnRlbnQgc3VjaCBhcyB0YWJsZXMgb3IgbGlzdHMuXG4gKiBUbyB1c2UsIGltcG9ydCBgUGFnaW5hdGlvbk1vZHVsZWAgb3IgYW5vdGhlciBtb2R1bGUgdGhhdCBpbXBvcnRzIGFuZCBleHBvcnRzIHRoYXQgbW9kdWxlIGZyb20gYEBpbXBhcnRuZXIvZGVzaWduLWNvbXBvbmVudHNgLlxuICogYE1vZGFsTW9kdWxlYCBpbXBvcnRzIGFuZCBleHBvcnRzIEltcGRjRm9ybXNNb2R1bGUgYW5kIFtCdXR0b25Nb2R1bGVdKC4vP3BhdGg9L2RvY3MvZGVzaWduLWNvbXBvbmVudHMtYnV0dG9uKS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtcGFnaW5hdGlvbiwgZGl2W2ltcGRjLXBhZ2luYXRpb25dJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFnaW5hdGlvbkNvbXBvbmVudCB7XG4gIHByaXZhdGUgX3N1bW1hcnkgPVxuICAgICdTaG93aW5nIHtmaXJzdFBhZ2VSZXN1bHR9IHRvIHtsYXN0UGFnZVJlc3VsdH0gb2Yge3RvdGFsfSByZXN1bHRzJztcblxuICAvKipcbiAgICogVGhlIGN1cnJlbnQgcGFnZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlID0gMDtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBpdGVtcyBzaG93biBwZXIgcGFnZS4gSXRlbXMgYXJlIGNvbW1vbmx5IGRpc3BsYXllZCBhcyByb3dzIGluIGEgdGFibGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGVyUGFnZSA9IDEwO1xuXG4gIC8qKlxuICAgKiBUaGUgdG90YWwgbnVtYmVyIG9mIGl0ZW1zLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHRvdGFsID0gMDtcblxuICAvKipcbiAgICogQSBmb3JtYXR0YWJsZSB0ZXh0IHN1bW1hcnkgb2YgcGFnaW5hdGlvbiBkYXRhLiBge2ZpcnN0UGFnZVJlc3VsdH1gIFRoZSBmaXJzdCBpdGVtIHdpdGhpbiB0aGUgY3VycmVudCBwYWdlLlxuICAgKiBge2xhc3RQYWdlUmVzdWx0fWAgVGhlIGxhc3QgaXRlbSB3aXRoaW4gdGhlIGN1cnJlbnQgcGFnZS4gYHt0b3RhbH1gIFRoZSB0b3RhbCBudW1iZXIgb2YgaXRlbXMuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN1bW1hcnkoc3VtbWFyeTogc3RyaW5nKSB7XG4gICAgdGhpcy5fc3VtbWFyeSA9IHN1bW1hcnk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN1bW1hcnkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc2FuaXRpemUodGhpcy5fc3VtbWFyeSlcbiAgICAgIC5yZXBsYWNlKCd7Zmlyc3RQYWdlUmVzdWx0fScsIGA8Yj4ke3RoaXMuZmlyc3RQYWdlUmVzdWx0fTwvYj5gKVxuICAgICAgLnJlcGxhY2UoJ3tsYXN0UGFnZVJlc3VsdH0nLCBgPGI+JHt0aGlzLmxhc3RQYWdlUmVzdWx0fTwvYj5gKVxuICAgICAgLnJlcGxhY2UoJ3t0b3RhbH0nLCBgPGI+JHt0aGlzLnRvdGFsfTwvYj5gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0dGVkIHdoZW4gdGhlIHBhZ2UgbnVtYmVyIGlzIGNoYW5nZWQsIHNwZWNpZnlpbmcgdGhlIHRhcmdldCBwYWdlIG51bWJlci5cbiAgICovXG4gIEBPdXRwdXQoKSBwdWJsaWMgcmVhZG9ubHkgZ29Ub1BhZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBwdWJsaWMgZ2V0IHRvdGFsUGFnZXMoKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy50b3RhbCA8IDEgfHwgdGhpcy5wZXJQYWdlIDwgMSkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG90YWwgPCB0aGlzLnBlclBhZ2UpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIHJldHVybiBNYXRoLmNlaWwodGhpcy50b3RhbCAvIHRoaXMucGVyUGFnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpcnN0UGFnZVJlc3VsdCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnRvdGFsIDwgMSB8fCB0aGlzLnBhZ2UgPCAxIHx8IHRoaXMucGVyUGFnZSA8IDEpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2UgPT09IDEpIHtcbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBhZ2UgPiBNYXRoLmNlaWwodGhpcy50b3RhbCAvIHRoaXMucGVyUGFnZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xuICAgIH1cblxuICAgIHJldHVybiAodGhpcy5wYWdlIC0gMSkgKiB0aGlzLnBlclBhZ2UgKyAxO1xuICB9XG5cbiAgcHVibGljIGdldCBsYXN0UGFnZVJlc3VsdCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLnRvdGFsIDw9IDAgfHwgdGhpcy5wYWdlIDwgMSB8fCB0aGlzLnBlclBhZ2UgPCAxKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wYWdlID09PSAxKSB7XG4gICAgICBpZiAodGhpcy50b3RhbCA8IHRoaXMucGVyUGFnZSkge1xuICAgICAgICByZXR1cm4gdGhpcy50b3RhbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlclBhZ2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudG90YWwgPCB0aGlzLnBlclBhZ2UgKiB0aGlzLnBhZ2UpIHtcbiAgICAgIHJldHVybiB0aGlzLnRvdGFsO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wZXJQYWdlICogdGhpcy5wYWdlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnb1RvUHJldmlvdXNQYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhZ2UgPD0gMSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXZpb3VzUGFnZSA9IHRoaXMucGFnZSAtIDE7XG4gICAgdGhpcy5wYWdlID0gcHJldmlvdXNQYWdlO1xuXG4gICAgdGhpcy5nb1RvUGFnZS5lbWl0KHByZXZpb3VzUGFnZSk7XG4gIH1cblxuICBwdWJsaWMgZ29Ub05leHRQYWdlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhZ2UgPj0gdGhpcy50b3RhbFBhZ2VzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgbmV4dFBhZ2UgPSB0aGlzLnBhZ2UgKyAxO1xuICAgIHRoaXMucGFnZSA9IG5leHRQYWdlO1xuXG4gICAgdGhpcy5nb1RvUGFnZS5lbWl0KG5leHRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvRXhhY3RQYWdlRnJvbUV2ZW50KHsgdGFyZ2V0IH06IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmdvVG9FeGFjdFBhZ2UoKHRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KT8udmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGdvVG9FeGFjdFBhZ2UocGFnZTogbnVtYmVyIHwgc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFwYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGFsbG93ZWRQYWdlTnVtYmVyID0gTnVtYmVyKHBhZ2UpO1xuXG4gICAgaWYgKGFsbG93ZWRQYWdlTnVtYmVyIDwgMCkge1xuICAgICAgYWxsb3dlZFBhZ2VOdW1iZXIgPSAxO1xuICAgIH1cblxuICAgIGlmIChhbGxvd2VkUGFnZU51bWJlciA+IHRoaXMudG90YWxQYWdlcykge1xuICAgICAgYWxsb3dlZFBhZ2VOdW1iZXIgPSB0aGlzLnRvdGFsUGFnZXM7XG4gICAgfVxuXG4gICAgdGhpcy5wYWdlID0gYWxsb3dlZFBhZ2VOdW1iZXI7XG5cbiAgICB0aGlzLmdvVG9QYWdlLmVtaXQoYWxsb3dlZFBhZ2VOdW1iZXIpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnaW5hdGlvbi1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cIm1vYmlsZS1wYWdpbmF0aW9uXCI+XG4gICAgPGJ1dHRvblxuICAgICAgaW1wZGNCdXR0b25cbiAgICAgIHRoZW1lPVwic2Vjb25kYXJ5XCJcbiAgICAgIFtkaXNhYmxlZF09XCJwYWdlIDw9IDFcIlxuICAgICAgKGNsaWNrKT1cImdvVG9QcmV2aW91c1BhZ2UoKVwiPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1sZWZ0XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b25cbiAgICAgIGltcGRjQnV0dG9uXG4gICAgICB0aGVtZT1cInNlY29uZGFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwicGFnZSA9PT0gdG90YWxQYWdlc1wiXG4gICAgICAoY2xpY2spPVwiZ29Ub05leHRQYWdlKClcIj5cbiAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHRcIj48L2k+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJkZXNrdG9wLXBhZ2luYXRpb25cIj5cbiAgICA8ZGl2PlxuICAgICAgPHNwYW4gY2xhc3M9XCJzdW1tYXJ5XCIgW2lubmVySFRNTF09XCJzdW1tYXJ5XCI+PC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLWFjdGlvbnNcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgaW1wZGNCdXR0b25cbiAgICAgICAgdGhlbWU9XCJzZWNvbmRhcnlcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiRmlyc3QgUGFnZVwiXG4gICAgICAgIGNsYXNzPVwicGFnaW5hdGlvbi1maXJzdC1sYXN0LWJ0bnNcIlxuICAgICAgICAoY2xpY2spPVwiZ29Ub0V4YWN0UGFnZSgxKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJwYWdlIDw9IDFcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1sZWZ0IGZpcnN0XCI+PC9pPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+XG4gICAgICAgIDwhLS0gMSAtLT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBpbXBkY0J1dHRvblxuICAgICAgICB0aGVtZT1cInNlY29uZGFyeVwiXG4gICAgICAgIGNsYXNzPVwicHJldmlvdXNcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiUHJldmlvdXNcIlxuICAgICAgICAoY2xpY2spPVwiZ29Ub1ByZXZpb3VzUGFnZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPD0gMVwiPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnRcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwYWdlLWNoYW5nZVwiPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICBpbXBkY0lucHV0XG4gICAgICAgICAgbWF4bGVuZ3RoPVwiNFwiXG4gICAgICAgICAgW3ZhbHVlXT1cInBhZ2VcIlxuICAgICAgICAgIChibHVyKT1cImdvVG9FeGFjdFBhZ2VGcm9tRXZlbnQoJGV2ZW50KVwiIC8+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidG90YWwtcGFnZXNcIj4gLyB7eyB0b3RhbFBhZ2VzIH19IDwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGJ1dHRvblxuICAgICAgICBpbXBkY0J1dHRvblxuICAgICAgICB0aGVtZT1cInNlY29uZGFyeVwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJOZXh0XCJcbiAgICAgICAgKGNsaWNrKT1cImdvVG9OZXh0UGFnZSgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInBhZ2UgPT09IHRvdGFsUGFnZXNcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1yaWdodFwiPjwvaT5cbiAgICAgIDwvYnV0dG9uPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBpbXBkY0J1dHRvblxuICAgICAgICB0aGVtZT1cInNlY29uZGFyeVwiXG4gICAgICAgIGNsYXNzPVwicGFnaW5hdGlvbi1maXJzdC1sYXN0LWJ0bnNcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiTGFzdCBQYWdlXCJcbiAgICAgICAgKGNsaWNrKT1cImdvVG9FeGFjdFBhZ2UodG90YWxQYWdlcylcIlxuICAgICAgICBbZGlzYWJsZWRdPVwicGFnZSA9PT0gdG90YWxQYWdlc1wiPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLXJpZ2h0XCI+PC9pPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLXJpZ2h0IGxhc3RcIj48L2k+XG4gICAgICAgIDwhLS0ge3sgdG90YWxQYWdlcyB9fSAtLT5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
32
32
|
}], progressPercentage: [{
|
|
33
33
|
type: Input
|
|
34
34
|
}] } });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Rlc2lnbi1jb21wb25lbnRzL3NyYy9saWIvcHJvZ3Jlc3MtYmFyL3Byb2dyZXNzLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Byb2dyZXNzLWJhci9wcm9ncmVzcy1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRWpEOzs7R0FHRztBQU1ILE1BQU0sT0FBTyxvQkFBb0I7SUFtQi9CO1FBbEJBOztXQUVHO1FBRUksY0FBUyxHQUFHLEVBQUUsQ0FBQztRQUV0Qjs7V0FFRztRQUVJLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFFdkI7O1dBRUc7UUFFSSx1QkFBa0IsR0FBRyxDQUFDLENBQUM7SUFFZixDQUFDOztrSEFuQkwsb0JBQW9CO3NHQUFwQixvQkFBb0Isa0tDWGpDLDhkQW1CQTs0RkRSYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usb0JBQW9COzBFQVN2QixTQUFTO3NCQURmLEtBQUs7Z0JBT0MsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxrQkFBa0I7c0JBRHhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVGhlIGBQcm9ncmVzc0JhckNvbXBvbmVudGAgKGA8aW1wZGMtcHJvZ3Jlc3MtYmFyYCkgaXMgYSBkaXNwbGF5LW9ubHkgc2xpZGVyIHRvIHNob3cgcHJvZ3Jlc3MuXG4gKiBUbyB1c2UsIGltcG9ydCBgUHJvZ3Jlc3NCYXJNb2R1bGVgIG9yIGFub3RoZXIgbW9kdWxlIHRoYXQgaW1wb3J0cyBhbmQgZXhwb3J0cyB0aGF0IG1vZHVsZSBmcm9tIGBAaW1wYXJ0bmVyL2Rlc2lnbi1jb21wb25lbnRzYC5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW1wZGMtcHJvZ3Jlc3MtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2dyZXNzLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLWJhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFRoZSBsZWZ0L3N1YmplY3QgdGV4dCBvZiB0aGUgUHJvZ3Jlc3MgQmFyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGxhYmVsVGV4dCA9ICcnO1xuXG4gIC8qKlxuICAgKiBUaGUgcmlnaHQvc3RhdHVzIHRleHQgb2YgdGhlIFByb2dyZXNzIEJhci5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGF0dXNUZXh0ID0gJyc7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXJyZW50IHZhbHVlIG9mIHRoZSBQcm9ncmVzcyBCYXIgcmVwcmVzZW50ZWQgYXMgYSBudW1iZXIgYmV0d2VlbiAwIGFuZCAxMDAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcHJvZ3Jlc3NQZXJjZW50YWdlID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy10ZXh0XCI+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtbGVmdFwiPlxuICAgICAge3sgbGFiZWxUZXh0IH19XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInRleHQtcmlnaHRcIj5cbiAgICAgIHt7IHN0YXR1c1RleHQgfX1cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJiYXItYmdcIj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImJhclwiXG4gICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxuICAgICAgW3N0eWxlLndpZHRoLiVdPVwicHJvZ3Jlc3NQZXJjZW50YWdlXCJcbiAgICAgIFthdHRyLmFyaWEtdmFsdWVub3ddPVwicHJvZ3Jlc3NQZXJjZW50YWdlXCJcbiAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcbiAgICAgIGFyaWEtdmFsdWVtYXg9XCIxMDBcIj48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -9,8 +9,10 @@ import * as i2 from "../size-detection/directive/size-detector.directive";
|
|
|
9
9
|
* `ScrollableModule` also imports and exports [BrandingModule](./?path=/docs/design-components-directives-impdcbranded).
|
|
10
10
|
*/
|
|
11
11
|
export class ScrollableComponent {
|
|
12
|
-
constructor(_cd) {
|
|
12
|
+
constructor(_cd, _hostElementRef) {
|
|
13
13
|
this._cd = _cd;
|
|
14
|
+
this._hostElementRef = _hostElementRef;
|
|
15
|
+
this.GET_ANCESTOR_BG_SEARCH_DEPTH = 64;
|
|
14
16
|
/**
|
|
15
17
|
* The base amount to scroll.
|
|
16
18
|
*/
|
|
@@ -54,12 +56,11 @@ export class ScrollableComponent {
|
|
|
54
56
|
this._cd.detectChanges();
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
|
-
this._getBackgroundColorForButtons();
|
|
58
59
|
}
|
|
59
60
|
ngAfterViewInit() {
|
|
60
61
|
this._width = this.contentRef?.nativeElement.width;
|
|
61
|
-
this._getBackgroundColorForButtons();
|
|
62
62
|
this._cd.detectChanges();
|
|
63
|
+
Promise.resolve().then(() => this._getBackgroundColorForButtons());
|
|
63
64
|
}
|
|
64
65
|
async scroll(direction) {
|
|
65
66
|
if (!this._contentElement) {
|
|
@@ -118,29 +119,21 @@ export class ScrollableComponent {
|
|
|
118
119
|
return promise;
|
|
119
120
|
}
|
|
120
121
|
_getBackgroundColorForButtons() {
|
|
121
|
-
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
const projectedElementCollection = this.contentRef.nativeElement.children;
|
|
125
|
-
if (!projectedElementCollection || !projectedElementCollection.length) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
const firstElement = projectedElementCollection[0];
|
|
129
|
-
let backgroundColor = this._getBackGroundColor(firstElement);
|
|
122
|
+
let backgroundColor = this._getBackGroundColor(this._hostElementRef.nativeElement);
|
|
130
123
|
if (!backgroundColor) {
|
|
131
124
|
backgroundColor = this._getAncestorBackgroundColor();
|
|
132
125
|
}
|
|
133
|
-
this._scrollableBgColor
|
|
126
|
+
if (this._scrollableBgColor !== backgroundColor) {
|
|
127
|
+
this._scrollableBgColor = backgroundColor;
|
|
128
|
+
this._cd.detectChanges();
|
|
129
|
+
}
|
|
134
130
|
}
|
|
135
131
|
_getAncestorBackgroundColor() {
|
|
136
|
-
if (!this.contentRef) {
|
|
137
|
-
return null;
|
|
138
|
-
}
|
|
139
132
|
let result = {
|
|
140
|
-
parent: this.
|
|
133
|
+
parent: this._hostElementRef.nativeElement.parentElement,
|
|
141
134
|
backgroundColor: null
|
|
142
135
|
};
|
|
143
|
-
let count =
|
|
136
|
+
let count = this.GET_ANCESTOR_BG_SEARCH_DEPTH;
|
|
144
137
|
function getParentBackgroundColor(currentContext, getBackgroundColor) {
|
|
145
138
|
const result = { parent: null, backgroundColor: null };
|
|
146
139
|
if (currentContext && currentContext.parent) {
|
|
@@ -171,12 +164,12 @@ export class ScrollableComponent {
|
|
|
171
164
|
return element.style.backgroundColor;
|
|
172
165
|
}
|
|
173
166
|
}
|
|
174
|
-
ScrollableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
167
|
+
ScrollableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
168
|
ScrollableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: ScrollableComponent, selector: "impdc-scrollable, div[impdc-scrollable]", inputs: { scrollUnit: "scrollUnit", clickScrollMultiplier: "clickScrollMultiplier" }, host: { properties: { "style.--impdc-scrollable-bg": "this._scrollableBgColor" } }, viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true }, { propertyName: "contentRef", first: true, predicate: ["content"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"impdc-scrollable\"\n #container\n impdcSizeDetector\n (resized)=\"widthChanged($event)\">\n <a class=\"impdc-scrollable-left\" (click)=\"scroll(-1)\" *ngIf=\"canScrollLeft\">\n <i class=\"fas fa-chevron-left default\"></i>\n </a>\n <div #content class=\"content-container\">\n <ng-content></ng-content>\n </div>\n <a class=\"impdc-scrollable-right\" (click)=\"scroll(1)\" *ngIf=\"canScrollRight\">\n <i class=\"fas fa-chevron-right default\"></i>\n </a>\n</div>\n", styles: [".impdc-scrollable{position:relative;overflow-y:hidden}.impdc-scrollable .impdc-scrollable-base,.impdc-scrollable .impdc-scrollable-right,.impdc-scrollable .impdc-scrollable-left{position:absolute;top:0px;bottom:0px;display:flex;align-items:center;text-align:center;width:6.9rem;z-index:1;color:var(--impd-color-motion-blue-600, #01606d)}.impdc-scrollable .impdc-scrollable-left{justify-content:left;padding-left:1.5rem;background-image:linear-gradient(to right,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .impdc-scrollable-right{right:0;padding-right:1.5rem;justify-content:right;background-image:linear-gradient(to left,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .content-container{overflow-x:hidden;-webkit-overflow-scrolling:touch;white-space:nowrap}:host(.branded) .impdc-scrollable .impdc-scrollable-left,:host(.branded) .impdc-scrollable .impdc-scrollable-right{color:var(--px-primary-color, var(--impd-color-motion-blue-600, #01606d))}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.SizeDetectorDirective, selector: "[impdcSizeDetector]", outputs: ["resized"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
176
169
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: ScrollableComponent, decorators: [{
|
|
177
170
|
type: Component,
|
|
178
171
|
args: [{ selector: 'impdc-scrollable, div[impdc-scrollable]', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"impdc-scrollable\"\n #container\n impdcSizeDetector\n (resized)=\"widthChanged($event)\">\n <a class=\"impdc-scrollable-left\" (click)=\"scroll(-1)\" *ngIf=\"canScrollLeft\">\n <i class=\"fas fa-chevron-left default\"></i>\n </a>\n <div #content class=\"content-container\">\n <ng-content></ng-content>\n </div>\n <a class=\"impdc-scrollable-right\" (click)=\"scroll(1)\" *ngIf=\"canScrollRight\">\n <i class=\"fas fa-chevron-right default\"></i>\n </a>\n</div>\n", styles: [".impdc-scrollable{position:relative;overflow-y:hidden}.impdc-scrollable .impdc-scrollable-base,.impdc-scrollable .impdc-scrollable-right,.impdc-scrollable .impdc-scrollable-left{position:absolute;top:0px;bottom:0px;display:flex;align-items:center;text-align:center;width:6.9rem;z-index:1;color:var(--impd-color-motion-blue-600, #01606d)}.impdc-scrollable .impdc-scrollable-left{justify-content:left;padding-left:1.5rem;background-image:linear-gradient(to right,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .impdc-scrollable-right{right:0;padding-right:1.5rem;justify-content:right;background-image:linear-gradient(to left,var(--impdc-scrollable-bg, #fff) 50%,rgba(255,255,255,.0001) 86.46%)}.impdc-scrollable .content-container{overflow-x:hidden;-webkit-overflow-scrolling:touch;white-space:nowrap}:host(.branded) .impdc-scrollable .impdc-scrollable-left,:host(.branded) .impdc-scrollable .impdc-scrollable-right{color:var(--px-primary-color, var(--impd-color-motion-blue-600, #01606d))}\n"] }]
|
|
179
|
-
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { scrollUnit: [{
|
|
172
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }]; }, propDecorators: { scrollUnit: [{
|
|
180
173
|
type: Input
|
|
181
174
|
}], clickScrollMultiplier: [{
|
|
182
175
|
type: Input
|
|
@@ -190,4 +183,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
190
183
|
type: ViewChild,
|
|
191
184
|
args: ['content', { static: false }]
|
|
192
185
|
}] } });
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7OztBQUd2Qjs7Ozs7R0FLRztBQU9ILE1BQU0sT0FBTyxtQkFBbUI7SUEyRDlCLFlBQW9CLEdBQXNCO1FBQXRCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBMUQxQzs7V0FFRztRQUVJLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFL0I7O1dBRUc7UUFFSSwwQkFBcUIsR0FBRyxDQUFDLENBQUM7UUFHekIsdUJBQWtCLEdBQWtCLElBQUksQ0FBQztRQXFCekMsV0FBTSxHQUFXLENBQUMsQ0FBQztJQXdCa0IsQ0FBQztJQTNDOUMsSUFBVyxhQUFhO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUNMLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcs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QyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9DLElBQUksdUJBQXVCLEtBQUssa0JBQWtCLEVBQUU7WUFDbEQsT0FBTyx1QkFBdUIsQ0FBQztTQUNoQztRQUVELE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUM7SUFDdkMsQ0FBQzs7aUhBbE9VLG1CQUFtQjtxR0FBbkIsbUJBQW1CLGlkQzFCaEMsbWZBZUE7NEZEV2EsbUJBQW1CO2tCQU4vQixTQUFTOytCQUNFLHlDQUF5QyxtQkFHbEMsdUJBQXVCLENBQUMsTUFBTTt3R0FPeEMsVUFBVTtzQkFEaEIsS0FBSztnQkFPQyxxQkFBcUI7c0JBRDNCLEtBQUs7Z0JBSUUsa0JBQWtCO3NCQUR6QixXQUFXO3VCQUFDLDZCQUE2QjtnQkF5Qm5DLFlBQVk7c0JBRGxCLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFZbEMsVUFBVTtzQkFEaEIsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRWxlbWVudFNpemUgfSBmcm9tICcuLi9zaXplLWRldGVjdGlvbic7XG5cbi8qKlxuICogVGhlIGBTY3JvbGxhYmxlQ29tcG9uZW50YCAoYDxpbXBkYy1zY3JvbGxhYmxlYCBvciBgPGRpdiBpbXBkYy1zY3JvbGxhYmxlYCkgaXMgYSBjb250YWluZXIgdGhhdCBoaWRlcyBpdGVtcyB0aGF0IHdvdWxkbid0IGZpdFxuICogd2l0aCBhcnJvd3Mgb24gdGhlIGxlZnQgYW5kIHJpZ2h0IHRvIHNsaWRlIGJldHdlZW4gdGhlbS5cbiAqIFRvIHVzZSwgaW1wb3J0IGBTY3JvbGxhYmxlTW9kdWxlYCBvciBhbm90aGVyIG1vZHVsZSB0aGF0IGltcG9ydHMgYW5kIGV4cG9ydHMgdGhhdCBtb2R1bGUgZnJvbSBgQGltcGFydG5lci9kZXNpZ24tY29tcG9uZW50c2AuXG4gKiBgU2Nyb2xsYWJsZU1vZHVsZWAgYWxzbyBpbXBvcnRzIGFuZCBleHBvcnRzIFtCcmFuZGluZ01vZHVsZV0oLi8/cGF0aD0vZG9jcy9kZXNpZ24tY29tcG9uZW50cy1kaXJlY3RpdmVzLWltcGRjYnJhbmRlZCkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2ltcGRjLXNjcm9sbGFibGUsIGRpdltpbXBkYy1zY3JvbGxhYmxlXScsXG4gIHRlbXBsYXRlVXJsOiAnLi9zY3JvbGxhYmxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2Nyb2xsYWJsZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxhYmxlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIGFtb3VudCB0byBzY3JvbGwuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2Nyb2xsVW5pdDogbnVtYmVyID0gMjA7XG5cbiAgLyoqXG4gICAqIFVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgc2Nyb2xsVW5pdGAgdG8gZGV0ZXJtaW5lIGhvdyBmYXIgdGhlIFNjcm9sbGFibGUgc2Nyb2xscyB3aGVuIGRpcmVjdGlvbmFsIGFycm93cyBhcmUgY2xpY2tlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjbGlja1Njcm9sbE11bHRpcGxpZXIgPSA1O1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS1pbXBkYy1zY3JvbGxhYmxlLWJnJylcbiAgcHJpdmF0ZSBfc2Nyb2xsYWJsZUJnQ29sb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgY2FuU2Nyb2xsTGVmdCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGguZmxvb3IodGhpcy5fY29udGVudEVsZW1lbnQuc2Nyb2xsTGVmdCkgPiAwO1xuICB9XG5cbiAgcHVibGljIGdldCBjYW5TY3JvbGxSaWdodCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIE1hdGguY2VpbCh0aGlzLl9jb250ZW50RWxlbWVudC5zY3JvbGxMZWZ0ICsgdGhpcy5fd2lkdGgpIDxcbiAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LnNjcm9sbFdpZHRoXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3dpZHRoOiBudW1iZXIgPSAwO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgY29udGFpbmVyUmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgZ2V0IF9jb250YWluZXJFbGVtZW50KCk6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCB7XG4gICAgaWYgKCF0aGlzLmNvbnRhaW5lclJlZikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29udGFpbmVyUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAVmlld0NoaWxkKCdjb250ZW50JywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBjb250ZW50UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgZ2V0IF9jb250ZW50RWxlbWVudCgpOiBIVE1MRGl2RWxlbWVudCB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb250ZW50UmVmKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snc2Nyb2xsVW5pdCddIHx8IGNoYW5nZXNbJ2NsaWNrU2Nyb2xsTXVsdGlwbGllciddKSB7XG4gICAgICBpZiAodGhpcy5fY29udGFpbmVyRWxlbWVudCkge1xuICAgICAgICB0aGlzLl93aWR0aCA9IHRoaXMuX2NvbnRhaW5lckVsZW1lbnQ/LmNsaWVudFdpZHRoO1xuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuX2dldEJhY2tncm91bmRDb2xvckZvckJ1dHRvbnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fd2lkdGggPSB0aGlzLmNvbnRlbnRSZWY/Lm5hdGl2ZUVsZW1lbnQud2lkdGg7XG4gICAgdGhpcy5fZ2V0QmFja2dyb3VuZENvbG9yRm9yQnV0dG9ucygpO1xuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzY3JvbGwoZGlyZWN0aW9uOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHBpeGVscyA9IGRpcmVjdGlvbiAqIHRoaXMuc2Nyb2xsVW5pdCAqIHRoaXMuY2xpY2tTY3JvbGxNdWx0aXBsaWVyO1xuICAgIGxldCBwb3NpdGlvbiA9IDA7XG5cbiAgICBpZiAoIXBpeGVscykge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gMSkge1xuICAgICAgICBwb3NpdGlvbiA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwb3NpdGlvbiA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LnNjcm9sbExlZnQgKyBwaXhlbHM7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5fc2Nyb2xsVG9Qb3NpdGlvbih0aGlzLl9jb250ZW50RWxlbWVudCwgcG9zaXRpb24pO1xuXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHdpZHRoQ2hhbmdlZChlbGVtZW50U2l6ZTogSUVsZW1lbnRTaXplKTogdm9pZCB7XG4gICAgaWYgKCFlbGVtZW50U2l6ZSB8fCAhZWxlbWVudFNpemUud2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fd2lkdGggPSBlbGVtZW50U2l6ZS53aWR0aDtcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zY3JvbGxUb1Bvc2l0aW9uKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQsIHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICBwb3NpdGlvbiA9IE1hdGgucm91bmQocG9zaXRpb24pO1xuXG4gICAgaWYgKGNvbnRhaW5lci5zY3JvbGxMZWZ0ID09PSBwb3NpdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCByZXNvbHZlRm46ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZDtcbiAgICBsZXQgc2Nyb2xsTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gICAgbGV0IHRpbWVvdXRJZDogYW55O1xuXG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgcmVzb2x2ZUZuID0gcmVzb2x2ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGZpbmlzaGVkID0gKCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjcm9sbExpc3RlbmVyKTtcbiAgICAgIHJlc29sdmVGbihudWxsKTtcbiAgICB9O1xuXG4gICAgc2Nyb2xsTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcblxuICAgICAgLy8gc2Nyb2xsIGlzIGZpbmlzaGVkIHdoZW4gZWl0aGVyIHRoZSBwb3NpdGlvbiBoYXMgYmVlbiByZWFjaGVkLCBvciAxMDBtcyBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIGxhc3Qgc2Nyb2xsIGV2ZW50XG4gICAgICBpZiAoY29udGFpbmVyLnNjcm9sbExlZnQgPT09IHBvc2l0aW9uKSB7XG4gICAgICAgIGZpbmlzaGVkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGZpbmlzaGVkLCAxMDApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgc2Nyb2xsTGlzdGVuZXIpO1xuXG4gICAgY29udGFpbmVyLnNjcm9sbFRvKHtcbiAgICAgIGxlZnQ6IHBvc2l0aW9uLFxuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEJhY2tncm91bmRDb2xvckZvckJ1dHRvbnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmNvbnRlbnRSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9qZWN0ZWRFbGVtZW50Q29sbGVjdGlvbjogSFRNTENvbGxlY3Rpb24gPVxuICAgICAgdGhpcy5jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2hpbGRyZW47XG5cbiAgICBpZiAoIXByb2plY3RlZEVsZW1lbnRDb2xsZWN0aW9uIHx8ICFwcm9qZWN0ZWRFbGVtZW50Q29sbGVjdGlvbi5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmaXJzdEVsZW1lbnQgPSBwcm9qZWN0ZWRFbGVtZW50Q29sbGVjdGlvblswXSBhcyBIVE1MRWxlbWVudDtcbiAgICBsZXQgYmFja2dyb3VuZENvbG9yOiBzdHJpbmcgfCBudWxsID0gdGhpcy5fZ2V0QmFja0dyb3VuZENvbG9yKGZpcnN0RWxlbWVudCk7XG5cbiAgICBpZiAoIWJhY2tncm91bmRDb2xvcikge1xuICAgICAgYmFja2dyb3VuZENvbG9yID0gdGhpcy5fZ2V0QW5jZXN0b3JCYWNrZ3JvdW5kQ29sb3IoKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zY3JvbGxhYmxlQmdDb2xvciA9IGJhY2tncm91bmRDb2xvcjtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEFuY2VzdG9yQmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb250ZW50UmVmKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB0eXBlIHBhcmVudEJnUmVzdWx0ID0ge1xuICAgICAgcGFyZW50OiBIVE1MRWxlbWVudCB8IG51bGw7XG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyB8IG51bGw7XG4gICAgfTtcblxuICAgIGxldCByZXN1bHQ6IHBhcmVudEJnUmVzdWx0ID0ge1xuICAgICAgcGFyZW50OiAodGhpcy5jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQsXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IG51bGxcbiAgICB9O1xuXG4gICAgbGV0IGNvdW50ID0gNjtcblxuICAgIGZ1bmN0aW9uIGdldFBhcmVudEJhY2tncm91bmRDb2xvcihcbiAgICAgIGN1cnJlbnRDb250ZXh0OiBwYXJlbnRCZ1Jlc3VsdCxcbiAgICAgIGdldEJhY2tncm91bmRDb2xvcjogKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiBzdHJpbmcgfCBudWxsXG4gICAgKTogcGFyZW50QmdSZXN1bHQge1xuICAgICAgY29uc3QgcmVzdWx0OiBwYXJlbnRCZ1Jlc3VsdCA9IHsgcGFyZW50OiBudWxsLCBiYWNrZ3JvdW5kQ29sb3I6IG51bGwgfTtcbiAgICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBjdXJyZW50Q29udGV4dC5wYXJlbnQpIHtcbiAgICAgICAgcmVzdWx0LmJhY2tncm91bmRDb2xvciA9IGdldEJhY2tncm91bmRDb2xvcihjdXJyZW50Q29udGV4dC5wYXJlbnQpO1xuXG4gICAgICAgIGlmICghcmVzdWx0LmJhY2tncm91bmRDb2xvcikge1xuICAgICAgICAgIHJlc3VsdC5wYXJlbnQgPSBjdXJyZW50Q29udGV4dC5wYXJlbnQucGFyZW50RWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHdoaWxlIChjb3VudCA+IDApIHtcbiAgICAgIGlmIChyZXN1bHQuYmFja2dyb3VuZENvbG9yKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVzdWx0ID0gZ2V0UGFyZW50QmFja2dyb3VuZENvbG9yKHJlc3VsdCwgdGhpcy5fZ2V0QmFja0dyb3VuZENvbG9yKTtcblxuICAgICAgaWYgKCFyZXN1bHQucGFyZW50KSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgY291bnQgPSBjb3VudCAtIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdC5iYWNrZ3JvdW5kQ29sb3I7XG4gIH1cblxuICBwcml2YXRlIF9nZXRCYWNrR3JvdW5kQ29sb3IoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBjb21wdXRlZEJhY2tncm91bmRDb2xvciA9XG4gICAgICBnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpWydiYWNrZ3JvdW5kQ29sb3InXTtcblxuICAgIGlmIChjb21wdXRlZEJhY2tncm91bmRDb2xvciAhPT0gJ3JnYmEoMCwgMCwgMCwgMCknKSB7XG4gICAgICByZXR1cm4gY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuXG4gICAgcmV0dXJuIGVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENvbG9yO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiaW1wZGMtc2Nyb2xsYWJsZVwiXG4gICNjb250YWluZXJcbiAgaW1wZGNTaXplRGV0ZWN0b3JcbiAgKHJlc2l6ZWQpPVwid2lkdGhDaGFuZ2VkKCRldmVudClcIj5cbiAgPGEgY2xhc3M9XCJpbXBkYy1zY3JvbGxhYmxlLWxlZnRcIiAoY2xpY2spPVwic2Nyb2xsKC0xKVwiICpuZ0lmPVwiY2FuU2Nyb2xsTGVmdFwiPlxuICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tbGVmdCBkZWZhdWx0XCI+PC9pPlxuICA8L2E+XG4gIDxkaXYgI2NvbnRlbnQgY2xhc3M9XCJjb250ZW50LWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxhIGNsYXNzPVwiaW1wZGMtc2Nyb2xsYWJsZS1yaWdodFwiIChjbGljayk9XCJzY3JvbGwoMSlcIiAqbmdJZj1cImNhblNjcm9sbFJpZ2h0XCI+XG4gICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1yaWdodCBkZWZhdWx0XCI+PC9pPlxuICA8L2E+XG48L2Rpdj5cbiJdfQ==
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsYWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kZXNpZ24tY29tcG9uZW50cy9zcmMvbGliL3Njcm9sbGFibGUvc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUdMLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQzs7OztBQUd2Qjs7Ozs7R0FLRztBQU9ILE1BQU0sT0FBTyxtQkFBbUI7SUE0RDlCLFlBQ1UsR0FBc0IsRUFDYixlQUEyQjtRQURwQyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUNiLG9CQUFlLEdBQWYsZUFBZSxDQUFZO1FBN0Q3QixpQ0FBNEIsR0FBRyxFQUFFLENBQUM7UUFDbkQ7O1dBRUc7UUFFSSxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXZCOztXQUVHO1FBRUksMEJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBR3pCLHVCQUFrQixHQUFrQixJQUFJLENBQUM7UUFxQnpDLFdBQU0sR0FBRyxDQUFDLENBQUM7SUEyQmhCLENBQUM7SUE5Q0osSUFBVyxhQUFhO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3pCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN6QixPQUFPLEtBQUssQ0FBQztTQUNkO1FB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QUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDO0lBQ3ZDLENBQUM7O2lIQTNOVSxtQkFBbUI7cUdBQW5CLG1CQUFtQixpZEMxQmhDLG1mQWVBOzRGRFdhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSx5Q0FBeUMsbUJBR2xDLHVCQUF1QixDQUFDLE1BQU07aUlBUXhDLFVBQVU7c0JBRGhCLEtBQUs7Z0JBT0MscUJBQXFCO3NCQUQzQixLQUFLO2dCQUlFLGtCQUFrQjtzQkFEekIsV0FBVzt1QkFBQyw2QkFBNkI7Z0JBeUJuQyxZQUFZO3NCQURsQixTQUFTO3VCQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBWWxDLFVBQVU7c0JBRGhCLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUVsZW1lbnRTaXplIH0gZnJvbSAnLi4vc2l6ZS1kZXRlY3Rpb24nO1xuXG4vKipcbiAqIFRoZSBgU2Nyb2xsYWJsZUNvbXBvbmVudGAgKGA8aW1wZGMtc2Nyb2xsYWJsZWAgb3IgYDxkaXYgaW1wZGMtc2Nyb2xsYWJsZWApIGlzIGEgY29udGFpbmVyIHRoYXQgaGlkZXMgaXRlbXMgdGhhdCB3b3VsZG4ndCBmaXRcbiAqIHdpdGggYXJyb3dzIG9uIHRoZSBsZWZ0IGFuZCByaWdodCB0byBzbGlkZSBiZXR3ZWVuIHRoZW0uXG4gKiBUbyB1c2UsIGltcG9ydCBgU2Nyb2xsYWJsZU1vZHVsZWAgb3IgYW5vdGhlciBtb2R1bGUgdGhhdCBpbXBvcnRzIGFuZCBleHBvcnRzIHRoYXQgbW9kdWxlIGZyb20gYEBpbXBhcnRuZXIvZGVzaWduLWNvbXBvbmVudHNgLlxuICogYFNjcm9sbGFibGVNb2R1bGVgIGFsc28gaW1wb3J0cyBhbmQgZXhwb3J0cyBbQnJhbmRpbmdNb2R1bGVdKC4vP3BhdGg9L2RvY3MvZGVzaWduLWNvbXBvbmVudHMtZGlyZWN0aXZlcy1pbXBkY2JyYW5kZWQpLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbXBkYy1zY3JvbGxhYmxlLCBkaXZbaW1wZGMtc2Nyb2xsYWJsZV0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2Nyb2xsYWJsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Njcm9sbGFibGUuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgU2Nyb2xsYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgR0VUX0FOQ0VTVE9SX0JHX1NFQVJDSF9ERVBUSCA9IDY0O1xuICAvKipcbiAgICogVGhlIGJhc2UgYW1vdW50IHRvIHNjcm9sbC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzY3JvbGxVbml0ID0gMjA7XG5cbiAgLyoqXG4gICAqIFVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBgc2Nyb2xsVW5pdGAgdG8gZGV0ZXJtaW5lIGhvdyBmYXIgdGhlIFNjcm9sbGFibGUgc2Nyb2xscyB3aGVuIGRpcmVjdGlvbmFsIGFycm93cyBhcmUgY2xpY2tlZC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjbGlja1Njcm9sbE11bHRpcGxpZXIgPSA1O1xuXG4gIEBIb3N0QmluZGluZygnc3R5bGUuLS1pbXBkYy1zY3JvbGxhYmxlLWJnJylcbiAgcHJpdmF0ZSBfc2Nyb2xsYWJsZUJnQ29sb3I6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgY2FuU2Nyb2xsTGVmdCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGguZmxvb3IodGhpcy5fY29udGVudEVsZW1lbnQuc2Nyb2xsTGVmdCkgPiAwO1xuICB9XG5cbiAgcHVibGljIGdldCBjYW5TY3JvbGxSaWdodCgpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIE1hdGguY2VpbCh0aGlzLl9jb250ZW50RWxlbWVudC5zY3JvbGxMZWZ0ICsgdGhpcy5fd2lkdGgpIDxcbiAgICAgIHRoaXMuX2NvbnRlbnRFbGVtZW50LnNjcm9sbFdpZHRoXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX3dpZHRoID0gMDtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSlcbiAgcHVibGljIGNvbnRhaW5lclJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGdldCBfY29udGFpbmVyRWxlbWVudCgpOiBIVE1MRGl2RWxlbWVudCB8IG51bGwge1xuICAgIGlmICghdGhpcy5jb250YWluZXJSZWYpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmNvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBwdWJsaWMgY29udGVudFJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGdldCBfY29udGVudEVsZW1lbnQoKTogSFRNTERpdkVsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAoIXRoaXMuY29udGVudFJlZikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuY29udGVudFJlZi5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2hvc3RFbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydzY3JvbGxVbml0J10gfHwgY2hhbmdlc1snY2xpY2tTY3JvbGxNdWx0aXBsaWVyJ10pIHtcbiAgICAgIGlmICh0aGlzLl9jb250YWluZXJFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX3dpZHRoID0gdGhpcy5fY29udGFpbmVyRWxlbWVudD8uY2xpZW50V2lkdGg7XG4gICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3dpZHRoID0gdGhpcy5jb250ZW50UmVmPy5uYXRpdmVFbGVtZW50LndpZHRoO1xuICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcblxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5fZ2V0QmFja2dyb3VuZENvbG9yRm9yQnV0dG9ucygpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzY3JvbGwoZGlyZWN0aW9uOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuX2NvbnRlbnRFbGVtZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHBpeGVscyA9IGRpcmVjdGlvbiAqIHRoaXMuc2Nyb2xsVW5pdCAqIHRoaXMuY2xpY2tTY3JvbGxNdWx0aXBsaWVyO1xuICAgIGxldCBwb3NpdGlvbiA9IDA7XG5cbiAgICBpZiAoIXBpeGVscykge1xuICAgICAgaWYgKGRpcmVjdGlvbiA9PT0gMSkge1xuICAgICAgICBwb3NpdGlvbiA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwb3NpdGlvbiA9IHRoaXMuX2NvbnRlbnRFbGVtZW50LnNjcm9sbExlZnQgKyBwaXhlbHM7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5fc2Nyb2xsVG9Qb3NpdGlvbih0aGlzLl9jb250ZW50RWxlbWVudCwgcG9zaXRpb24pO1xuXG4gICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHdpZHRoQ2hhbmdlZChlbGVtZW50U2l6ZTogSUVsZW1lbnRTaXplKTogdm9pZCB7XG4gICAgaWYgKCFlbGVtZW50U2l6ZSB8fCAhZWxlbWVudFNpemUud2lkdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fd2lkdGggPSBlbGVtZW50U2l6ZS53aWR0aDtcbiAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zY3JvbGxUb1Bvc2l0aW9uKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQsIHBvc2l0aW9uOiBudW1iZXIpIHtcbiAgICBwb3NpdGlvbiA9IE1hdGgucm91bmQocG9zaXRpb24pO1xuXG4gICAgaWYgKGNvbnRhaW5lci5zY3JvbGxMZWZ0ID09PSBwb3NpdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCByZXNvbHZlRm46ICh2YWx1ZTogdW5rbm93bikgPT4gdm9pZDtcbiAgICBsZXQgc2Nyb2xsTGlzdGVuZXI6ICgpID0+IHZvaWQ7XG4gICAgbGV0IHRpbWVvdXRJZDogYW55O1xuXG4gICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgcmVzb2x2ZUZuID0gcmVzb2x2ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGZpbmlzaGVkID0gKCkgPT4ge1xuICAgICAgY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHNjcm9sbExpc3RlbmVyKTtcbiAgICAgIHJlc29sdmVGbihudWxsKTtcbiAgICB9O1xuXG4gICAgc2Nyb2xsTGlzdGVuZXIgPSAoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcblxuICAgICAgLy8gc2Nyb2xsIGlzIGZpbmlzaGVkIHdoZW4gZWl0aGVyIHRoZSBwb3NpdGlvbiBoYXMgYmVlbiByZWFjaGVkLCBvciAxMDBtcyBoYXZlIGVsYXBzZWQgc2luY2UgdGhlIGxhc3Qgc2Nyb2xsIGV2ZW50XG4gICAgICBpZiAoY29udGFpbmVyLnNjcm9sbExlZnQgPT09IHBvc2l0aW9uKSB7XG4gICAgICAgIGZpbmlzaGVkKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KGZpbmlzaGVkLCAxMDApO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgc2Nyb2xsTGlzdGVuZXIpO1xuXG4gICAgY29udGFpbmVyLnNjcm9sbFRvKHtcbiAgICAgIGxlZnQ6IHBvc2l0aW9uLFxuICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnXG4gICAgfSk7XG5cbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEJhY2tncm91bmRDb2xvckZvckJ1dHRvbnMoKTogdm9pZCB7XG4gICAgbGV0IGJhY2tncm91bmRDb2xvciA9IHRoaXMuX2dldEJhY2tHcm91bmRDb2xvcihcbiAgICAgIHRoaXMuX2hvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuXG4gICAgaWYgKCFiYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIGJhY2tncm91bmRDb2xvciA9IHRoaXMuX2dldEFuY2VzdG9yQmFja2dyb3VuZENvbG9yKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3Njcm9sbGFibGVCZ0NvbG9yICE9PSBiYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgIHRoaXMuX3Njcm9sbGFibGVCZ0NvbG9yID0gYmFja2dyb3VuZENvbG9yO1xuICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldEFuY2VzdG9yQmFja2dyb3VuZENvbG9yKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHR5cGUgcGFyZW50QmdSZXN1bHQgPSB7XG4gICAgICBwYXJlbnQ6IEhUTUxFbGVtZW50IHwgbnVsbDtcbiAgICAgIGJhY2tncm91bmRDb2xvcjogc3RyaW5nIHwgbnVsbDtcbiAgICB9O1xuXG4gICAgbGV0IHJlc3VsdDogcGFyZW50QmdSZXN1bHQgPSB7XG4gICAgICBwYXJlbnQ6IHRoaXMuX2hvc3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50RWxlbWVudCxcbiAgICAgIGJhY2tncm91bmRDb2xvcjogbnVsbFxuICAgIH07XG5cbiAgICBsZXQgY291bnQgPSB0aGlzLkdFVF9BTkNFU1RPUl9CR19TRUFSQ0hfREVQVEg7XG5cbiAgICBmdW5jdGlvbiBnZXRQYXJlbnRCYWNrZ3JvdW5kQ29sb3IoXG4gICAgICBjdXJyZW50Q29udGV4dDogcGFyZW50QmdSZXN1bHQsXG4gICAgICBnZXRCYWNrZ3JvdW5kQ29sb3I6IChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4gc3RyaW5nIHwgbnVsbFxuICAgICk6IHBhcmVudEJnUmVzdWx0IHtcbiAgICAgIGNvbnN0IHJlc3VsdDogcGFyZW50QmdSZXN1bHQgPSB7IHBhcmVudDogbnVsbCwgYmFja2dyb3VuZENvbG9yOiBudWxsIH07XG4gICAgICBpZiAoY3VycmVudENvbnRleHQgJiYgY3VycmVudENvbnRleHQucGFyZW50KSB7XG4gICAgICAgIHJlc3VsdC5iYWNrZ3JvdW5kQ29sb3IgPSBnZXRCYWNrZ3JvdW5kQ29sb3IoY3VycmVudENvbnRleHQucGFyZW50KTtcblxuICAgICAgICBpZiAoIXJlc3VsdC5iYWNrZ3JvdW5kQ29sb3IpIHtcbiAgICAgICAgICByZXN1bHQucGFyZW50ID0gY3VycmVudENvbnRleHQucGFyZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICB3aGlsZSAoY291bnQgPiAwKSB7XG4gICAgICBpZiAocmVzdWx0LmJhY2tncm91bmRDb2xvcikge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlc3VsdCA9IGdldFBhcmVudEJhY2tncm91bmRDb2xvcihyZXN1bHQsIHRoaXMuX2dldEJhY2tHcm91bmRDb2xvcik7XG5cbiAgICAgIGlmICghcmVzdWx0LnBhcmVudCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGNvdW50ID0gY291bnQgLSAxO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQuYmFja2dyb3VuZENvbG9yO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0QmFja0dyb3VuZENvbG9yKGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogc3RyaW5nIHwgbnVsbCB7XG4gICAgY29uc3QgY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3IgPVxuICAgICAgZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KVsnYmFja2dyb3VuZENvbG9yJ107XG5cbiAgICBpZiAoY29tcHV0ZWRCYWNrZ3JvdW5kQ29sb3IgIT09ICdyZ2JhKDAsIDAsIDAsIDApJykge1xuICAgICAgcmV0dXJuIGNvbXB1dGVkQmFja2dyb3VuZENvbG9yO1xuICAgIH1cblxuICAgIHJldHVybiBlbGVtZW50LnN0eWxlLmJhY2tncm91bmRDb2xvcjtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImltcGRjLXNjcm9sbGFibGVcIlxuICAjY29udGFpbmVyXG4gIGltcGRjU2l6ZURldGVjdG9yXG4gIChyZXNpemVkKT1cIndpZHRoQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDxhIGNsYXNzPVwiaW1wZGMtc2Nyb2xsYWJsZS1sZWZ0XCIgKGNsaWNrKT1cInNjcm9sbCgtMSlcIiAqbmdJZj1cImNhblNjcm9sbExlZnRcIj5cbiAgICA8aSBjbGFzcz1cImZhcyBmYS1jaGV2cm9uLWxlZnQgZGVmYXVsdFwiPjwvaT5cbiAgPC9hPlxuICA8ZGl2ICNjb250ZW50IGNsYXNzPVwiY29udGVudC1jb250YWluZXJcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8YSBjbGFzcz1cImltcGRjLXNjcm9sbGFibGUtcmlnaHRcIiAoY2xpY2spPVwic2Nyb2xsKDEpXCIgKm5nSWY9XCJjYW5TY3JvbGxSaWdodFwiPlxuICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tcmlnaHQgZGVmYXVsdFwiPjwvaT5cbiAgPC9hPlxuPC9kaXY+XG4iXX0=
|