ecabs-components 1.1.85 → 1.1.87
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 +2 -0
- package/esm2022/lib/base/adapters/date.adapter.mjs +1 -1
- package/esm2022/lib/base/consts/country-codes.mjs +1 -1
- package/esm2022/lib/base/consts/error-messages.consts.mjs +1 -1
- package/esm2022/lib/base/consts/images.consts.mjs +1 -1
- package/esm2022/lib/base/consts/input.consts.mjs +1 -1
- package/esm2022/lib/base/consts/translations.consts.mjs +1 -1
- package/esm2022/lib/base/consts/waypoint.consts.mjs +1 -1
- package/esm2022/lib/base/directives/attach-embedded-view.directive.mjs +1 -1
- package/esm2022/lib/base/directives/attach-embedded-view.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/check-permissions.directive.mjs +1 -1
- package/esm2022/lib/base/directives/check-permissions.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/date-mask.directive.mjs +1 -1
- package/esm2022/lib/base/directives/date-mask.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/digits-only.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/dom-observer.directive.mjs +1 -1
- package/esm2022/lib/base/directives/dom-observer.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/dynamic-bg-color.directive.mjs +1 -1
- package/esm2022/lib/base/directives/dynamic-bg-color.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/element-multiplier.directive.mjs +1 -1
- package/esm2022/lib/base/directives/element-multiplier.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/file-drop.directive.mjs +1 -1
- package/esm2022/lib/base/directives/file-drop.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/min-max.directive.mjs +1 -1
- package/esm2022/lib/base/directives/min-max.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/number-border.directive.mjs +1 -1
- package/esm2022/lib/base/directives/number-border.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/paginator.directive.mjs +1 -1
- package/esm2022/lib/base/directives/paginator.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/show-on-truncated.directive.mjs +1 -1
- package/esm2022/lib/base/directives/show-on-truncated.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/time-mask.directive.mjs +1 -1
- package/esm2022/lib/base/directives/time-mask.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/time-range.directive.mjs +1 -1
- package/esm2022/lib/base/directives/time-range.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/tooltip-if-truncated.directive.mjs +1 -1
- package/esm2022/lib/base/directives/tooltip-if-truncated.directive.module.mjs +1 -1
- package/esm2022/lib/base/directives/uppercase-mask.directive.mjs +1 -1
- package/esm2022/lib/base/directives/uppercase-mask.directive.module.mjs +1 -1
- package/esm2022/lib/base/element-base.mjs +1 -1
- package/esm2022/lib/base/element-wrapper/element-wrapper.component.mjs +3 -3
- package/esm2022/lib/base/element-wrapper/element-wrapper.module.mjs +1 -1
- package/esm2022/lib/base/models/bread-crumb.models.mjs +1 -1
- package/esm2022/lib/base/models/ecabs-date-picker-translations.models.mjs +1 -1
- package/esm2022/lib/base/models/element.models.mjs +1 -1
- package/esm2022/lib/base/models/header.models.mjs +1 -1
- package/esm2022/lib/base/models/phone.models.mjs +1 -1
- package/esm2022/lib/base/models/select.models.mjs +1 -1
- package/esm2022/lib/base/models/sidebar.models.mjs +1 -1
- package/esm2022/lib/base/models/slider.models.mjs +1 -1
- package/esm2022/lib/base/models/timepicker.models.mjs +1 -1
- package/esm2022/lib/base/models/user-claim.models.mjs +1 -1
- package/esm2022/lib/base/models/validation.models.mjs +1 -1
- package/esm2022/lib/base/pipes/phone-number-country-code.pipe.mjs +1 -1
- package/esm2022/lib/base/pipes/pipes.module.mjs +1 -1
- package/esm2022/lib/base/pipes/search.pipe.mjs +1 -1
- package/esm2022/lib/base/pipes/separator-append.pipe.mjs +1 -1
- package/esm2022/lib/base/pipes/truncate.pipe.mjs +1 -1
- package/esm2022/lib/base/services/ecabs-components.service.mjs +1 -1
- package/esm2022/lib/base/services/ecabs-date-picker-translations.service.mjs +1 -1
- package/esm2022/lib/base/services/header.service.mjs +1 -1
- package/esm2022/lib/base/services/unsubscribe.service.mjs +1 -1
- package/esm2022/lib/base/utils/menu-utils.mjs +1 -1
- package/esm2022/lib/base/utils/object-utils.mjs +1 -1
- package/esm2022/lib/base/utils/phone-number.utils.mjs +1 -1
- package/esm2022/lib/base/utils/select.utils.mjs +6 -0
- package/esm2022/lib/base/utils/time-mask.util.mjs +1 -1
- package/esm2022/lib/base/validation/validation.component.mjs +3 -3
- package/esm2022/lib/base/validation/validation.module.mjs +1 -1
- package/esm2022/lib/base/validators/date-range.validator.mjs +1 -1
- package/esm2022/lib/base/validators/phone-number.validator.mjs +1 -1
- package/esm2022/lib/ecabs-active-status-filter/ecabs-active-status-filter.component.mjs +3 -3
- package/esm2022/lib/ecabs-active-status-filter/ecabs-active-status-filter.module.mjs +1 -1
- package/esm2022/lib/ecabs-base-phone-input/ecabs-base-phone.component.mjs +3 -3
- package/esm2022/lib/ecabs-base-phone-input/ecabs-base-phone.module.mjs +1 -1
- package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.component.mjs +3 -3
- package/esm2022/lib/ecabs-breadcrumb/ecabs-breadcrumb.module.mjs +1 -1
- package/esm2022/lib/ecabs-button-toggle/ecabs-button-toggle.component.mjs +3 -3
- package/esm2022/lib/ecabs-button-toggle/ecabs-button-toggle.module.mjs +1 -1
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.component.mjs +3 -3
- package/esm2022/lib/ecabs-buttons/ecabs-buttons.module.mjs +1 -1
- package/esm2022/lib/ecabs-buttons-v2/ecabs-buttons-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.component.mjs +3 -3
- package/esm2022/lib/ecabs-checkbox-toggle/ecabs-checkbox-toggle.module.mjs +1 -1
- package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-checkbox-v2/ecabs-checkbox-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-chip-autocomplete/ecabs-chip-autocomplete.component.mjs +3 -3
- package/esm2022/lib/ecabs-chip-group/ecabs-chip-group.component.mjs +3 -3
- package/esm2022/lib/ecabs-chip-group/ecabs-chip-group.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-picker/components/ecabs-date-picker-header/ecabs-date-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-picker/ecabs-date-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-picker-actions/ecabs-date-picker-actions.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-range-picker/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-range-picker/ecabs-date-range-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-range-picker-v2/components/ecabs-date-range-picker-header/ecabs-date-range-picker-header-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-range-picker-v2/ecabs-date-range-picker-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-time-picker/components/ecabs-date-time-picker-header/ecabs-date-time-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-time-picker/ecabs-date-time-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-date-time-range-picker/components/ecabs-date-time-range-picker-header/ecabs-date-time-range-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-date-time-range-picker/ecabs-date-time-range-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.component.mjs +3 -3
- package/esm2022/lib/ecabs-dialog-confirm/ecabs-dialog-confirm.module.mjs +1 -1
- package/esm2022/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.component.mjs +3 -3
- package/esm2022/lib/ecabs-dialog-confirm-deletion/ecabs-dialog-confirm-deletion.module.mjs +1 -1
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.component.mjs +3 -3
- package/esm2022/lib/ecabs-dialog-message/ecabs-dialog-message.module.mjs +1 -1
- package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.component.mjs +3 -3
- package/esm2022/lib/ecabs-empty-placeholder/ecabs-empty-placeholder.module.mjs +1 -1
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.component.mjs +3 -3
- package/esm2022/lib/ecabs-expansion-panel/ecabs-expansion-panel.module.mjs +1 -1
- package/esm2022/lib/ecabs-header/ecabs-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-header/ecabs-header.module.mjs +1 -1
- package/esm2022/lib/ecabs-hint/ecabs-hint.component.mjs +3 -3
- package/esm2022/lib/ecabs-hint/ecabs-hint.module.mjs +1 -1
- package/esm2022/lib/ecabs-increment/ecabs-increment.component.mjs +3 -3
- package/esm2022/lib/ecabs-increment/ecabs-increment.module.mjs +1 -1
- package/esm2022/lib/ecabs-input/ecabs-input.component.mjs +3 -3
- package/esm2022/lib/ecabs-input/ecabs-input.module.mjs +1 -1
- package/esm2022/lib/ecabs-input-range/ecabs-input-range.component.mjs +3 -3
- package/esm2022/lib/ecabs-input-range/ecabs-input-range.module.mjs +1 -1
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.component.mjs +3 -3
- package/esm2022/lib/ecabs-language-selector/ecabs-language-selector.module.mjs +1 -1
- package/esm2022/lib/ecabs-loading/ecabs-loading.component.mjs +3 -3
- package/esm2022/lib/ecabs-loading/ecabs-loading.module.mjs +1 -1
- package/esm2022/lib/ecabs-loading/spinner/spinner.component.mjs +1 -1
- package/esm2022/lib/ecabs-logo/ecabs-logo.component.mjs +3 -3
- package/esm2022/lib/ecabs-logo/ecabs-logo.module.mjs +1 -1
- package/esm2022/lib/ecabs-menu-items/ecabs-menu-items.component.mjs +3 -3
- package/esm2022/lib/ecabs-menu-items/ecabs-menu-items.module.mjs +1 -1
- package/esm2022/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.component.mjs +3 -3
- package/esm2022/lib/ecabs-multiple-dates-picker/ecabs-multiple-dates-picker.module.mjs +1 -1
- package/esm2022/lib/ecabs-note/ecabs-note.component.mjs +3 -3
- package/esm2022/lib/ecabs-note/ecabs-note.module.mjs +1 -1
- package/esm2022/lib/ecabs-phone/ecabs-phone.component.mjs +3 -3
- package/esm2022/lib/ecabs-phone/ecabs-phone.module.mjs +1 -1
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.component.mjs +3 -3
- package/esm2022/lib/ecabs-picker-header/ecabs-picker-header.module.mjs +1 -1
- package/esm2022/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.component.mjs +3 -3
- package/esm2022/lib/ecabs-place-autocomplete/ecabs-place-autocomplete.module.mjs +1 -1
- package/esm2022/lib/ecabs-profile/ecabs-profile.component.mjs +3 -3
- package/esm2022/lib/ecabs-profile/ecabs-profile.module.mjs +1 -1
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.component.mjs +3 -3
- package/esm2022/lib/ecabs-radio-button-list/ecabs-radio-button-list.module.mjs +1 -1
- package/esm2022/lib/ecabs-segment/ecabs-segment.component.mjs +3 -3
- package/esm2022/lib/ecabs-select/ecabs-select.component.mjs +22 -7
- package/esm2022/lib/ecabs-select/ecabs-select.module.mjs +5 -1
- package/esm2022/lib/ecabs-select-icon/ecabs-select-icon.component.mjs +20 -0
- package/esm2022/lib/ecabs-select-icon/ecabs-select-icon.module.mjs +19 -0
- package/esm2022/lib/ecabs-select-v2/ecabs-select-v2.component.mjs +7 -3
- package/esm2022/lib/ecabs-select-v2/ecabs-select-v2.module.mjs +7 -3
- package/esm2022/lib/ecabs-sidebar/ecabs-sidebar.component.mjs +3 -3
- package/esm2022/lib/ecabs-sidebar/ecabs-sidebar.module.mjs +1 -1
- package/esm2022/lib/ecabs-slider/ecabs-slider.component.mjs +3 -3
- package/esm2022/lib/ecabs-slider/ecabs-slider.module.mjs +1 -1
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.component.mjs +3 -3
- package/esm2022/lib/ecabs-table/ecabs-table-filter-wrapper/ecabs-table-filter-wrapper.module.mjs +1 -1
- package/esm2022/lib/ecabs-table/ecabs-table.component.mjs +3 -3
- package/esm2022/lib/ecabs-table/ecabs-table.module.mjs +1 -1
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.component.mjs +3 -3
- package/esm2022/lib/ecabs-textarea/ecabs-textarea.module.mjs +1 -1
- package/esm2022/lib/ecabs-time-range-input-v2/config.model.mjs +1 -1
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.component.mjs +3 -3
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.module.mjs +1 -1
- package/esm2022/lib/ecabs-time-range-input-v2/ecabs-time-range-input-v2.service.mjs +1 -1
- package/esm2022/lib/ecabs-timepicker/componets/ecabs-time-list-panel/ecabs-time-list-panel.component.mjs +3 -3
- package/esm2022/lib/ecabs-timepicker/config.model.mjs +1 -1
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.component.mjs +3 -3
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.module.mjs +1 -1
- package/esm2022/lib/ecabs-timepicker/ecabs-timepicker.service.mjs +1 -1
- package/esm2022/lib/ecabs-validation/ecabs-validation.component.mjs +3 -3
- package/esm2022/lib/ecabs-validation/ecabs-validation.module.mjs +1 -1
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ecabs-components.mjs +193 -135
- package/fesm2022/ecabs-components.mjs.map +1 -1
- package/lib/base/models/select.models.d.ts +3 -0
- package/lib/base/utils/select.utils.d.ts +2 -0
- package/lib/ecabs-select/ecabs-select.component.d.ts +5 -12
- package/lib/ecabs-select/ecabs-select.module.d.ts +5 -4
- package/lib/ecabs-select-icon/ecabs-select-icon.component.d.ts +8 -0
- package/lib/ecabs-select-icon/ecabs-select-icon.module.d.ts +9 -0
- package/lib/ecabs-select-v2/ecabs-select-v2.component.d.ts +1 -0
- package/lib/ecabs-select-v2/ecabs-select-v2.module.d.ts +2 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/assets/images/nothing-here.svg +22 -22
- package/src/assets/images/promotions.svg +3 -3
- package/src/assets/styles/material/_theme.scss +100 -100
- package/src/assets/styles/material/overrides/_autocomplete.scss +34 -34
- package/src/assets/styles/material/overrides/_card.scss +55 -55
- package/src/assets/styles/material/overrides/_chip.scss +240 -240
- package/src/assets/styles/material/overrides/_datepicker.scss +178 -178
- package/src/assets/styles/material/overrides/_dialog.scss +25 -25
- package/src/assets/styles/material/overrides/_divider.scss +5 -5
- package/src/assets/styles/material/overrides/_expansion.scss +32 -32
- package/src/assets/styles/material/overrides/_form.scss +95 -95
- package/src/assets/styles/material/overrides/_icon.scss +8 -8
- package/src/assets/styles/material/overrides/_menu.scss +13 -13
- package/src/assets/styles/material/overrides/_paginator.scss +75 -75
- package/src/assets/styles/material/overrides/_phone.scss +55 -55
- package/src/assets/styles/material/overrides/_progress.scss +7 -7
- package/src/assets/styles/material/overrides/_select.scss +199 -199
- package/src/assets/styles/material/overrides/_sidebar.scss +6 -6
- package/src/assets/styles/material/overrides/_tab.scss +41 -41
- package/src/assets/styles/material/overrides/_table.scss +27 -27
- package/src/assets/styles/material/overrides/_toaster.scss +36 -36
- package/src/assets/styles/material/overrides/_toggle.scss +54 -54
- package/src/assets/styles/material/overrides/_toolbar.scss +3 -3
- package/src/assets/styles/material/overrides/_tooltip.scss +7 -7
- package/src/assets/styles/material/overrides/index.scss +22 -22
- package/src/assets/styles/scss/base/_heading.scss +17 -17
- package/src/assets/styles/scss/base/_normalize.scss +99 -99
- package/src/assets/styles/scss/base/index.scss +2 -2
- package/src/assets/styles/scss/modules/_autocomplete.scss +42 -42
- package/src/assets/styles/scss/modules/_card.scss +46 -46
- package/src/assets/styles/scss/modules/_chip.scss +64 -64
- package/src/assets/styles/scss/modules/_datepicker.scss +435 -435
- package/src/assets/styles/scss/modules/_dialog.scss +15 -15
- package/src/assets/styles/scss/modules/_divider.scss +4 -4
- package/src/assets/styles/scss/modules/_form.scss +383 -383
- package/src/assets/styles/scss/modules/_icon.scss +30 -30
- package/src/assets/styles/scss/modules/_img.scss +32 -32
- package/src/assets/styles/scss/modules/_legend.scss +64 -64
- package/src/assets/styles/scss/modules/_list.scss +17 -17
- package/src/assets/styles/scss/modules/_map.scss +221 -221
- package/src/assets/styles/scss/modules/_percentage.scss +41 -41
- package/src/assets/styles/scss/modules/_phone.scss +32 -32
- package/src/assets/styles/scss/modules/_select.scss +17 -17
- package/src/assets/styles/scss/modules/_statuses.scss +36 -36
- package/src/assets/styles/scss/modules/_tab.scss +16 -16
- package/src/assets/styles/scss/modules/_table.scss +132 -132
- package/src/assets/styles/scss/modules/_timepicker.scss +91 -91
- package/src/assets/styles/scss/modules/_toaster.scss +53 -53
- package/src/assets/styles/scss/modules/_tooltip.scss +10 -10
- package/src/assets/styles/scss/modules/drag-drop.scss +31 -31
- package/src/assets/styles/scss/modules/index.scss +23 -23
- package/src/assets/styles/scss/utilities/_fonts.scss +31 -31
- package/src/assets/styles/scss/utilities/_functions.scss +27 -27
- package/src/assets/styles/scss/utilities/_helpers.scss +14 -14
- package/src/assets/styles/scss/utilities/_variables.scss +32 -32
- package/src/assets/styles/scss/utilities/index.scss +6 -6
- package/src/assets/styles/styles.scss +5 -5
- package/src/assets/styles/tailwind/index.scss +1 -1
|
@@ -11,9 +11,10 @@ import * as i3 from "@angular/material/form-field";
|
|
|
11
11
|
import * as i4 from "@angular/material/select";
|
|
12
12
|
import * as i5 from "@angular/material/core";
|
|
13
13
|
import * as i6 from "@angular/material/tooltip";
|
|
14
|
-
import * as i7 from "
|
|
15
|
-
import * as i8 from "
|
|
16
|
-
import * as i9 from "
|
|
14
|
+
import * as i7 from "../ecabs-select-icon/ecabs-select-icon.component";
|
|
15
|
+
import * as i8 from "@angular/forms";
|
|
16
|
+
import * as i9 from "ngx-mat-select-search";
|
|
17
|
+
import * as i10 from "../base/directives/tooltip-if-truncated.directive";
|
|
17
18
|
export class EcabsSelectComponent extends EcabsElementBaseComponent {
|
|
18
19
|
injector;
|
|
19
20
|
changeDetectorRef;
|
|
@@ -57,10 +58,17 @@ export class EcabsSelectComponent extends EcabsElementBaseComponent {
|
|
|
57
58
|
return this.multiple && this.value?.length > 1
|
|
58
59
|
? `${firstChosenValue} (+${this.useSelectAllOption && this.allSelected?.selected
|
|
59
60
|
? this.value?.length - 2
|
|
60
|
-
: this.value?.length - 1}
|
|
61
|
+
: this.value?.length - 1}
|
|
61
62
|
${this.value?.length === 2 ? this.otherLabel : this.othersLabel})`
|
|
62
63
|
: firstChosenValue;
|
|
63
64
|
}
|
|
65
|
+
get triggerOption() {
|
|
66
|
+
if (this.getAllSelectedChecked()) {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const firstValue = this.val && this.multiple ? this.val[0] : this.val;
|
|
70
|
+
return this.getOption(firstValue);
|
|
71
|
+
}
|
|
64
72
|
set value(val) {
|
|
65
73
|
if (this.val !== val) {
|
|
66
74
|
this.val = val;
|
|
@@ -194,6 +202,13 @@ export class EcabsSelectComponent extends EcabsElementBaseComponent {
|
|
|
194
202
|
}
|
|
195
203
|
return '';
|
|
196
204
|
}
|
|
205
|
+
getOption(val) {
|
|
206
|
+
if (val === undefined) {
|
|
207
|
+
return undefined;
|
|
208
|
+
}
|
|
209
|
+
const source = this.useSearchOption ? this.selectedItems : this.items;
|
|
210
|
+
return source?.find((item) => item.value === val);
|
|
211
|
+
}
|
|
197
212
|
writeValue(value) {
|
|
198
213
|
this.value = value;
|
|
199
214
|
}
|
|
@@ -302,7 +317,7 @@ export class EcabsSelectComponent extends EcabsElementBaseComponent {
|
|
|
302
317
|
useExisting: EcabsSelectComponent,
|
|
303
318
|
multi: true,
|
|
304
319
|
},
|
|
305
|
-
], viewQueries: [{ propertyName: "allSelected", first: true, predicate: ["allSelected"], descendants: true }, { propertyName: "matSelectSearchComponent", first: true, predicate: MatSelectSearchComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\n <mat-select class=\"form-field__select\"\n [(ngModel)]=\"value\"\n (closed)=\"onTouch()\"\n [id]=\"name\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [disableRipple]=\"true\"\n (selectionChange)=\"onSelectionChanged($event)\"\n [matTooltip]=\"trigger\"\n ecabsTooltipIfTruncated\n [classNameTruncatedTooltip]=\"'mat-select-value'\">\n <mat-select-trigger>\n <span>{{ trigger }}</span>\n </mat-select-trigger>\n\n <mat-option *ngIf=\"useSearchOption\">\n <ngx-mat-select-search [formControl]=\"itemFilterCtrl\"\n [placeholderLabel]=\"searchFieldPlaceholder\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\">\n </ngx-mat-select-search>\n </mat-option>\n\n <mat-option *ngIf=\"useNoneOption\"\n (click)=\"toggleNone()\"\n (keydown.enter)=\"toggleNone()\">\n {{ noneLabel }}\n </mat-option>\n\n <mat-option #allSelected\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\n (click)=\"toggleAllSelection()\"\n (keydown.enter)=\"toggleAllSelection()\"\n [value]=\"selectAllValue\">\n {{ allLabel }}\n </mat-option>\n\n <mat-option *ngFor=\"let item of filteredItems$ | async\"\n [value]=\"item.value\"\n (click)=\"togglePerOne()\"\n (keydown.enter)=\"togglePerOne()\"\n [matTooltip]=\"item.label\"\n ecabsTooltipIfTruncated\n [classNameTruncatedTooltip]=\"'mdc-list-item__primary-text'\">\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</ecabs-element-wrapper>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "
|
|
320
|
+
], viewQueries: [{ propertyName: "allSelected", first: true, predicate: ["allSelected"], descendants: true }, { propertyName: "matSelectSearchComponent", first: true, predicate: MatSelectSearchComponent, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n [matTooltip]=\"trigger\"\r\n ecabsTooltipIfTruncated\r\n [classNameTruncatedTooltip]=\"'mat-select-value'\">\r\n <mat-select-trigger>\r\n <span class=\"inline-flex items-center\">\r\n <ecabs-select-icon [option]=\"triggerOption\"></ecabs-select-icon>\r\n <span>{{ trigger }}</span>\r\n </span>\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n\r\n <mat-option *ngIf=\"useNoneOption\"\r\n (click)=\"toggleNone()\"\r\n (keydown.enter)=\"toggleNone()\">\r\n {{ noneLabel }}\r\n </mat-option>\r\n\r\n <mat-option #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n (keydown.enter)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">\r\n {{ allLabel }}\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\"\r\n [value]=\"item.value\"\r\n (click)=\"togglePerOne()\"\r\n (keydown.enter)=\"togglePerOne()\"\r\n [matTooltip]=\"item.label\"\r\n ecabsTooltipIfTruncated\r\n [classNameTruncatedTooltip]=\"'mdc-list-item__primary-text'\">\r\n <span class=\"inline-flex items-center\">\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ item.label }}\r\n </span>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</ecabs-element-wrapper>\r\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i4.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i4.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i7.EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: ["option"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i9.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti", "recreateValuesArray"], outputs: ["toggleAll"] }, { kind: "directive", type: i8.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i10.EcabsTooltipIfTruncatedDirective, selector: "[matTooltip][ecabsTooltipIfTruncated]", inputs: ["classNameTruncatedTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
306
321
|
}
|
|
307
322
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectComponent, decorators: [{
|
|
308
323
|
type: Component,
|
|
@@ -312,7 +327,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
312
327
|
useExisting: EcabsSelectComponent,
|
|
313
328
|
multi: true,
|
|
314
329
|
},
|
|
315
|
-
], template: "<ecabs-element-wrapper [data]=\"getData()\">\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\n <mat-select class=\"form-field__select\"\n [(ngModel)]=\"value\"\n (closed)=\"onTouch()\"\n [id]=\"name\"\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [disableRipple]=\"true\"\n (selectionChange)=\"onSelectionChanged($event)\"\n [matTooltip]=\"trigger\"\n ecabsTooltipIfTruncated\n [classNameTruncatedTooltip]=\"'mat-select-value'\">\n <mat-select-trigger>\n <span>{{ trigger }}</span>\n </mat-select-trigger>\n\n <mat-option *ngIf=\"useSearchOption\">\n <ngx-mat-select-search [formControl]=\"itemFilterCtrl\"\n [placeholderLabel]=\"searchFieldPlaceholder\"\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\">\n </ngx-mat-select-search>\n </mat-option>\n\n <mat-option *ngIf=\"useNoneOption\"\n (click)=\"toggleNone()\"\n (keydown.enter)=\"toggleNone()\">\n {{ noneLabel }}\n </mat-option>\n\n <mat-option #allSelected\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\n (click)=\"toggleAllSelection()\"\n (keydown.enter)=\"toggleAllSelection()\"\n [value]=\"selectAllValue\">\n {{ allLabel }}\n </mat-option>\n\n <mat-option *ngFor=\"let item of filteredItems$ | async\"\n [value]=\"item.value\"\n (click)=\"togglePerOne()\"\n (keydown.enter)=\"togglePerOne()\"\n [matTooltip]=\"item.label\"\n ecabsTooltipIfTruncated\n [classNameTruncatedTooltip]=\"'mdc-list-item__primary-text'\">\n {{ item.label }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n</ecabs-element-wrapper>\n" }]
|
|
330
|
+
], template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <mat-form-field [ngClass]=\"{ disabled: useOnlyDisabledClass }\">\r\n <mat-select class=\"form-field__select\"\r\n [(ngModel)]=\"value\"\r\n (closed)=\"onTouch()\"\r\n [id]=\"name\"\r\n [multiple]=\"multiple\"\r\n [disabled]=\"disabled\"\r\n [placeholder]=\"placeholder\"\r\n [disableRipple]=\"true\"\r\n (selectionChange)=\"onSelectionChanged($event)\"\r\n [matTooltip]=\"trigger\"\r\n ecabsTooltipIfTruncated\r\n [classNameTruncatedTooltip]=\"'mat-select-value'\">\r\n <mat-select-trigger>\r\n <span class=\"inline-flex items-center\">\r\n <ecabs-select-icon [option]=\"triggerOption\"></ecabs-select-icon>\r\n <span>{{ trigger }}</span>\r\n </span>\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngIf=\"useSearchOption\">\r\n <ngx-mat-select-search [formControl]=\"itemFilterCtrl\"\r\n [placeholderLabel]=\"searchFieldPlaceholder\"\r\n [noEntriesFoundLabel]=\"noEntriesFoundLabel\">\r\n </ngx-mat-select-search>\r\n </mat-option>\r\n\r\n <mat-option *ngIf=\"useNoneOption\"\r\n (click)=\"toggleNone()\"\r\n (keydown.enter)=\"toggleNone()\">\r\n {{ noneLabel }}\r\n </mat-option>\r\n\r\n <mat-option #allSelected\r\n *ngIf=\"useSelectAllOption && showFilteredAllOption\"\r\n (click)=\"toggleAllSelection()\"\r\n (keydown.enter)=\"toggleAllSelection()\"\r\n [value]=\"selectAllValue\">\r\n {{ allLabel }}\r\n </mat-option>\r\n\r\n <mat-option *ngFor=\"let item of filteredItems$ | async\"\r\n [value]=\"item.value\"\r\n (click)=\"togglePerOne()\"\r\n (keydown.enter)=\"togglePerOne()\"\r\n [matTooltip]=\"item.label\"\r\n ecabsTooltipIfTruncated\r\n [classNameTruncatedTooltip]=\"'mdc-list-item__primary-text'\">\r\n <span class=\"inline-flex items-center\">\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ item.label }}\r\n </span>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n</ecabs-element-wrapper>\r\n" }]
|
|
316
331
|
}], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i0.DestroyRef }]; }, propDecorators: { items: [{
|
|
317
332
|
type: Input
|
|
318
333
|
}], multiple: [{
|
|
@@ -352,4 +367,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
352
367
|
type: ViewChild,
|
|
353
368
|
args: [MatSelectSearchComponent]
|
|
354
369
|
}] } });
|
|
355
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLFlBQVksRUFDWixHQUFHLEVBQ0gsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7QUFhaEUsTUFBTSxPQUFPLG9CQUNYLFNBQVEseUJBQXlCO0lBb0VkO0lBQ0E7SUFDQTtJQW5FVixLQUFLLENBQWtCO0lBQ3ZCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsYUFBYSxHQUFHLEtBQUssQ0FBQztJQUN0QixvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDN0Isc0JBQXNCLEdBQUcsUUFBUSxDQUFDO0lBQ2xDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDeEIsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBQzNCLCtCQUErQixHQUFHLElBQUksQ0FBQztJQUN2QyxjQUFjLEdBQVEsQ0FBQyxDQUFDO0lBQ3hCLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDO0lBQzFDLFNBQVMsR0FBRyxNQUFNLENBQUM7SUFDbkIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNqQixVQUFVLEdBQUcsT0FBTyxDQUFDO0lBQ3JCLFdBQVcsR0FBRyxRQUFRLENBQUM7SUFDdEIsaUJBQWlCLEdBQ3pCLElBQUksWUFBWSxFQUFVLENBQUM7SUFDbkIsZUFBZSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBRTdDLFdBQVcsQ0FBYTtJQUVsRCx3QkFBd0IsQ0FBNEI7SUFFcEQsR0FBRyxDQUFPO0lBQ1YsY0FBYyxHQUNaLElBQUksZUFBZSxDQUFrQyxFQUFFLENBQUMsQ0FBQztJQUMzRCxjQUFjLEdBQXVCLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUM5RCxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLHFCQUFxQixHQUFHLElBQUksQ0FBQztJQUM3QixhQUFhLEdBQW9DLEVBQUUsQ0FBQztJQUNwRCxnQkFBZ0IsR0FBb0MsRUFBRSxDQUFDO0lBQ3ZELGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRW5DLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsSUFBSSxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRTtZQUNoQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7U0FDdEI7UUFDRCxNQUFNLGdCQUFnQixHQUNwQixJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTlCLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxHQUFHLGdCQUFnQixNQUNqQixJQUFJLENBQUMsa0JBQWtCLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRO2dCQUNuRCxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEdBQUcsQ0FBQztnQkFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLENBQzNCO1lBQ0ksSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHO1lBQ3RFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsR0FBRztRQUNYLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUU7WUFDcEIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7WUFDZixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRUQsWUFDbUIsUUFBa0IsRUFDbEIsaUJBQW9DLEVBQ3BDLFVBQXNCO1FBRXZDLEtBQUssRUFBRSxDQUFDO1FBSlMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGVBQVUsR0FBVixVQUFVLENBQVk7SUFHekMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsT0FBTyxDQUFDO1FBRTFCLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxZQUFZLEVBQUU7WUFDL0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBRW5CLElBQ0UsSUFBSSxDQUFDLFFBQVE7Z0JBQ2IsSUFBSSxDQUFDLGtCQUFrQjtnQkFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRLEVBQzFCO2dCQUNBLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQ3JCO3dCQUNFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO3dCQUN0RCxJQUFJLENBQUMsY0FBYztxQkFDcEIsRUFDRDt3QkFDRSxTQUFTLEVBQUUsS0FBSztxQkFDakIsQ0FDRixDQUFDO2dCQUNKLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQzthQUNUO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sU0FBUyxHQUFjLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVoRSxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQTZCLENBQUM7WUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO2lCQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNqQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsb0JBQW9CLEdBQUcsYUFBYSxDQUFDO2dCQUNqRSxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVk7Z0JBQ2hDLElBQUksQ0FBQyxjQUFjO2FBQ3BCLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUNELENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUNqQixJQUFJLENBQUMsd0JBQXdCLENBQUMsbUJBQW1CO2dCQUNqRCxLQUFLO2dCQUNMLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUNyQixDQUNGLENBQUM7U0FDSDtRQUVELElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQ3BCLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWTthQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRW5DLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtnQkFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO2FBQ3pCO1FBQ0gsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNKLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsUUFBUSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUN6QixnRUFBZ0U7SUFDaEUsT0FBTyxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUV4QixrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUM3QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO29CQUN0QixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztvQkFDdEQsSUFBSSxDQUFDLGNBQWM7aUJBQ3BCLENBQUMsQ0FBQzthQUNKO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO29CQUN0QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO29CQUN2QyxJQUFJLENBQUMsY0FBYztpQkFDcEIsQ0FBQyxDQUFDO2FBQ0o7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7U0FDeEI7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3BCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7b0JBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7aUJBQzdCO2dCQUNELElBQ0UsSUFBSSxDQUFDLCtCQUErQjtvQkFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUMvQztvQkFDQSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO2lCQUMzQjthQUNGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQztJQUNyRSxDQUFDO0lBRUQsUUFBUSxDQUFDLEdBQVE7UUFDZixJQUNFLElBQUksQ0FBQyxrQkFBa0I7WUFDdkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxRQUFRO1lBQzFCLElBQUksQ0FBQyxLQUFLO1lBQ1YsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNyQjtZQUNBLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7U0FDNUI7UUFFRCxJQUFJLElBQW1DLENBQUM7UUFFeEMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDeEIsSUFBSSxJQUFJLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDdkQsd0RBQXdEO29CQUN4RCxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQzlEO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDdkMsd0RBQXdEO29CQUN4RCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUM7aUJBQ3REO2FBQ0Y7WUFFRCxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQy9CO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFXO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTztTQUNSO1FBRUQseUJBQXlCO1FBQ3pCLElBQUksTUFBTSxHQUFXLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO1FBRS9DLElBQUksQ0FBQyxNQUFNLElBQUksTUFBTSxLQUFLLEVBQUUsRUFBRTtZQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRTtnQkFDL0MsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO2FBQ25EO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMvQztZQUVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7WUFFbEMsT0FBTztTQUNSO1FBRUQsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUU5QixJQUFJLENBQUMscUJBQXFCO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDMUQsQ0FBQyxJQUFJLENBQUMsS0FBSyxZQUFZLEtBQUs7b0JBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssWUFBWSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFdkMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLE1BQU0sYUFBYSxHQUNqQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxHQUFHLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDcEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ3hEO2dCQUNILENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLGFBQWEsQ0FBQyxDQUFDLENBQUM7U0FDckU7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN0QixJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDO2dCQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUN6QixJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FDeEQ7Z0JBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FDUCxDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7WUFFekIsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNkLElBQUksSUFBSSxDQUFDLEtBQUssWUFBWSxLQUFLLEVBQUU7b0JBQy9CLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztvQkFFM0QsSUFBSSxDQUFDLFNBQVMsRUFBRTt3QkFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFOzRCQUMzQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FDekMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUMvQyxDQUFDOzRCQUVGLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dDQUNoQixhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzs2QkFDL0M7aUNBQU07Z0NBQ0wsd0RBQXdEO2dDQUN4RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztnQ0FFOUQsSUFBSSxJQUFJLEVBQUU7b0NBQ1IsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQ0FDMUI7NkJBQ0Y7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7d0JBRUgsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTs0QkFDMUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQzNCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FDeEMsQ0FBQzs0QkFFRixJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRTtnQ0FDaEIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7NkJBQ2hDO3dCQUNILENBQUMsQ0FBQyxDQUFDO3FCQUNKO2lCQUNGO3FCQUFNO29CQUNMLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUN4QyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUNwRCxDQUFDO29CQUVGLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFO3dCQUNoQixhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztxQkFDL0M7eUJBQU07d0JBQ0wsd0RBQXdEO3dCQUN4RCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBRWxFLHFDQUFxQzt3QkFDckMsSUFBSSxJQUFJLEVBQUU7NEJBQ1IsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzt5QkFDMUI7cUJBQ0Y7aUJBQ0Y7Z0JBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FDeEMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUNQLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUMxQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsS0FBSyxDQUNwRCxLQUFLLENBQUMsQ0FBQyxDQUNYLENBQUM7YUFDSDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQzthQUM3QztTQUNGO0lBQ0gsQ0FBQzt3R0EzV1Usb0JBQW9COzRGQUFwQixvQkFBb0Isc25CQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxvQkFBb0I7Z0JBQ2pDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpTEF5QlUsd0JBQXdCLDRGQ25FckMseWhFQW1EQTs7NEZEUGEsb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGNBQWMsYUFFYjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLHNCQUFzQjs0QkFDakMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0pBTVEsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVtQixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBRXhCLHdCQUF3QjtzQkFEdkIsU0FBUzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBEZXN0cm95UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBOZ0NvbnRyb2wsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRPcHRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdFNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGRlYm91bmNlVGltZSxcbiAgbWFwLFxuICBTdWJzY3JpcHRpb24sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnQgZnJvbSAnLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vYmFzZS9tb2RlbHMvc2VsZWN0Lm1vZGVscyc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2VjYWJzLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9lY2Ficy1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBFY2Fic1NlbGVjdENvbXBvbmVudCxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEVjYWJzU2VsZWN0Q29tcG9uZW50XG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCkgaXRlbXMhOiBTZWxlY3RPcHRpb25bXTtcbiAgQElucHV0KCkgbXVsdGlwbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgdXNlTm9uZU9wdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSB1c2VPbmx5RGlzYWJsZWRDbGFzcyA9IGZhbHNlO1xuICBASW5wdXQoKSBzZWFyY2hGaWVsZFBsYWNlaG9sZGVyID0gJ1NlYXJjaCc7XG4gIEBJbnB1dCgpIHVzZVNlYXJjaE9wdGlvbiA9IGZhbHNlO1xuICBASW5wdXQoKSB1c2VTZWxlY3RBbGxPcHRpb24gPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0QWxsT3B0aW9uQWZ0ZXJDaG9zZW5BbGxJdGVtcyA9IHRydWU7XG4gIEBJbnB1dCgpIHNlbGVjdEFsbFZhbHVlOiBhbnkgPSAwO1xuICBASW5wdXQoKSBub0VudHJpZXNGb3VuZExhYmVsID0gJ05vIG1hdGNoaW5nIGZvdW5kJztcbiAgQElucHV0KCkgbm9uZUxhYmVsID0gJ05vbmUnO1xuICBASW5wdXQoKSBhbGxMYWJlbCA9ICdBbGwnO1xuICBASW5wdXQoKSBvdGhlckxhYmVsID0gJ090aGVyJztcbiAgQElucHV0KCkgb3RoZXJzTGFiZWwgPSAnT3RoZXJzJztcbiAgQE91dHB1dCgpIHVwZGF0ZUZpbHRlckl0ZW1zOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQFZpZXdDaGlsZCgnYWxsU2VsZWN0ZWQnKSBhbGxTZWxlY3RlZCE6IE1hdE9wdGlvbjtcbiAgQFZpZXdDaGlsZChNYXRTZWxlY3RTZWFyY2hDb21wb25lbnQpXG4gIG1hdFNlbGVjdFNlYXJjaENvbXBvbmVudCE6IE1hdFNlbGVjdFNlYXJjaENvbXBvbmVudDtcblxuICB2YWwhOiBhbnk7XG4gIGZpbHRlcmVkSXRlbXMkOiBCZWhhdmlvclN1YmplY3Q8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXT4gPVxuICAgIG5ldyBCZWhhdmlvclN1YmplY3Q8eyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXT4oW10pO1xuICBpdGVtRmlsdGVyQ3RybDogVW50eXBlZEZvcm1Db250cm9sID0gbmV3IFVudHlwZWRGb3JtQ29udHJvbCgpO1xuICBpc0NsZWFyQWxsID0gZmFsc2U7XG4gIHNob3dGaWx0ZXJlZEFsbE9wdGlvbiA9IHRydWU7XG4gIHNlbGVjdGVkSXRlbXM6IHsgbGFiZWw6IHN0cmluZzsgdmFsdWU6IGFueSB9W10gPSBbXTtcbiAgbm90U2VsZWN0ZWRJdGVtczogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH1bXSA9IFtdO1xuICBzdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnZhbDtcbiAgfVxuXG4gIGdldCB0cmlnZ2VyKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZ2V0QWxsU2VsZWN0ZWRDaGVja2VkKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFsbExhYmVsO1xuICAgIH1cbiAgICBjb25zdCBmaXJzdENob3NlblZhbHVlID1cbiAgICAgIHRoaXMudmFsICYmIHRoaXMubXVsdGlwbGVcbiAgICAgICAgPyB0aGlzLmdldExhYmVsKHRoaXMudmFsWzBdKVxuICAgICAgICA6IHRoaXMuZ2V0TGFiZWwodGhpcy52YWwpO1xuXG4gICAgcmV0dXJuIHRoaXMubXVsdGlwbGUgJiYgdGhpcy52YWx1ZT8ubGVuZ3RoID4gMVxuICAgICAgPyBgJHtmaXJzdENob3NlblZhbHVlfSAoKyR7XG4gICAgICAgICAgdGhpcy51c2VTZWxlY3RBbGxPcHRpb24gJiYgdGhpcy5hbGxTZWxlY3RlZD8uc2VsZWN0ZWRcbiAgICAgICAgICAgID8gdGhpcy52YWx1ZT8ubGVuZ3RoIC0gMlxuICAgICAgICAgICAgOiB0aGlzLnZhbHVlPy5sZW5ndGggLSAxXG4gICAgICAgIH1cbiAgICAgICAgICAke3RoaXMudmFsdWU/Lmxlbmd0aCA9PT0gMiA/IHRoaXMub3RoZXJMYWJlbCA6IHRoaXMub3RoZXJzTGFiZWx9KWBcbiAgICAgIDogZmlyc3RDaG9zZW5WYWx1ZTtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWwpIHtcbiAgICBpZiAodGhpcy52YWwgIT09IHZhbCkge1xuICAgICAgdGhpcy52YWwgPSB2YWw7XG4gICAgICB0aGlzLnNldFNlbGVjdGVkSXRlbXMoKTtcbiAgICAgIHRoaXMub25DaGFuZ2UodmFsKTtcbiAgICAgIHRoaXMub25Ub3VjaCh2YWwpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCB7IGl0ZW1zIH0gPSBjaGFuZ2VzO1xuXG4gICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy5maWx0ZXJJdGVtcygpO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMubXVsdGlwbGUgJiZcbiAgICAgICAgdGhpcy51c2VTZWxlY3RBbGxPcHRpb24gJiZcbiAgICAgICAgdGhpcy5hbGxTZWxlY3RlZD8uc2VsZWN0ZWRcbiAgICAgICkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShcbiAgICAgICAgICAgIFtcbiAgICAgICAgICAgICAgLi4udGhpcy5maWx0ZXJlZEl0ZW1zJC52YWx1ZS5tYXAoKGl0ZW0pID0+IGl0ZW0udmFsdWUpLFxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdEFsbFZhbHVlLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfSwgMTAwKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xuXG4gICAgaWYgKG5nQ29udHJvbCkge1xuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xuICAgICAgdGhpcy5jb250cm9sLnN0YXR1c0NoYW5nZXNcbiAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMudXBkYXRlRGlzYWJsZWRTdGF0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5tYXRTZWxlY3RTZWFyY2hDb21wb25lbnQpIHtcbiAgICAgIHRoaXMubWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50Ll9zaG93Tm9FbnRyaWVzRm91bmQkID0gY29tYmluZUxhdGVzdChbXG4gICAgICAgIHRoaXMuaXRlbUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzLFxuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLFxuICAgICAgXSkucGlwZShcbiAgICAgICAgbWFwKFxuICAgICAgICAgIChbdmFsdWUsIGl0ZW1zXSkgPT5cbiAgICAgICAgICAgIHRoaXMubWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50Lm5vRW50cmllc0ZvdW5kTGFiZWwgJiZcbiAgICAgICAgICAgIHZhbHVlICYmXG4gICAgICAgICAgICBpdGVtcy5sZW5ndGggPT09IDAsXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudXBkYXRlRGlzYWJsZWRTdGF0ZSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuaXRlbUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJJdGVtcygpO1xuICAgICAgICAgIHRoaXMudXBkYXRlRmlsdGVySXRlbXMuZW1pdCh2YWx1ZSk7XG5cbiAgICAgICAgICBpZiAodGhpcy5pc0NsZWFyQWxsKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShbXSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgdGhpcy5pc0NsZWFyQWxsID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25Ub3VjaDogYW55ID0gKCkgPT4ge307XG5cbiAgdG9nZ2xlQWxsU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkLnNlbGVjdGVkKSB7XG4gICAgICBpZiAodGhpcy51c2VTZWFyY2hPcHRpb24pIHtcbiAgICAgICAgdGhpcy5jb250cm9sLnBhdGNoVmFsdWUoW1xuICAgICAgICAgIC4uLnRoaXMuZmlsdGVyZWRJdGVtcyQudmFsdWUubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKSxcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbFZhbHVlLFxuICAgICAgICBdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKFtcbiAgICAgICAgICAuLi50aGlzLml0ZW1zLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSksXG4gICAgICAgICAgdGhpcy5zZWxlY3RBbGxWYWx1ZSxcbiAgICAgICAgXSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKFtdKTtcbiAgICAgIHRoaXMuaXNDbGVhckFsbCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlUGVyT25lKCk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuYWxsU2VsZWN0ZWQuc2VsZWN0ZWQpIHtcbiAgICAgICAgICB0aGlzLmFsbFNlbGVjdGVkLmRlc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHRoaXMuc2V0QWxsT3B0aW9uQWZ0ZXJDaG9zZW5BbGxJdGVtcyAmJlxuICAgICAgICAgIHRoaXMuY29udHJvbC52YWx1ZS5sZW5ndGggPT09IHRoaXMuaXRlbXMubGVuZ3RoXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuYWxsU2VsZWN0ZWQuc2VsZWN0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuaXNDbGVhckFsbCA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlTm9uZSgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgfVxuXG4gIGdldEFsbFNlbGVjdGVkQ2hlY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hbGxTZWxlY3RlZCAhPT0gdW5kZWZpbmVkICYmIHRoaXMuYWxsU2VsZWN0ZWQuc2VsZWN0ZWQ7XG4gIH1cblxuICBnZXRMYWJlbCh2YWw6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKFxuICAgICAgdGhpcy51c2VTZWxlY3RBbGxPcHRpb24gJiZcbiAgICAgIHRoaXMuYWxsU2VsZWN0ZWQ/LnNlbGVjdGVkICYmXG4gICAgICB0aGlzLml0ZW1zICYmXG4gICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLml0ZW1zWzBdLmxhYmVsO1xuICAgIH1cblxuICAgIGxldCBpdGVtOiB7IGxhYmVsOiBzdHJpbmc7IHZhbHVlOiBhbnkgfTtcblxuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMudXNlU2VhcmNoT3B0aW9uKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvd1xuICAgICAgICAgIGl0ZW0gPSB0aGlzLnNlbGVjdGVkSXRlbXMuZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gdmFsKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgJiYgdGhpcy5pdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcbiAgICAgICAgICBpdGVtID0gdGhpcy5pdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSB2YWwpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpdGVtID8gaXRlbS5sYWJlbCA6ICcnO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2ggPSBmbjtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBmaWx0ZXJJdGVtcygpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNlbGVjdGVkSXRlbXMoKTtcblxuICAgIGlmICghdGhpcy5pdGVtcykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIGdldCB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICBsZXQgc2VhcmNoOiBzdHJpbmcgPSB0aGlzLml0ZW1GaWx0ZXJDdHJsLnZhbHVlO1xuXG4gICAgaWYgKCFzZWFyY2ggfHwgc2VhcmNoID09PSAnJykge1xuICAgICAgaWYgKHRoaXMudXNlU2VhcmNoT3B0aW9uICYmICF0aGlzLml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zJC5uZXh0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyQubmV4dCh0aGlzLml0ZW1zPy5zbGljZSgpKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5zaG93RmlsdGVyZWRBbGxPcHRpb24gPSB0cnVlO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc2VhcmNoID0gc2VhcmNoLnRvTG93ZXJDYXNlKCk7XG5cbiAgICB0aGlzLnNob3dGaWx0ZXJlZEFsbE9wdGlvbiA9XG4gICAgICB0aGlzLmFsbExhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpIHx8XG4gICAgICAodGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmXG4gICAgICAgIHRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5zZWxlY3RBbGxWYWx1ZSkpIHx8XG4gICAgICAoISh0aGlzLnZhbHVlIGluc3RhbmNlb2YgQXJyYXkpICYmIHRoaXMudmFsdWUgPT09IHRoaXMuc2VsZWN0QWxsVmFsdWUpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHRoaXMudXNlU2VhcmNoT3B0aW9uKSB7XG4gICAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID1cbiAgICAgICAgdGhpcy5ub3RTZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAwXG4gICAgICAgICAgPyB0aGlzLm5vdFNlbGVjdGVkSXRlbXMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICAgICAgICBpdGVtLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogW107XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLm5leHQoWy4uLnRoaXMuc2VsZWN0ZWRJdGVtcywgLi4uZmlsdGVyZWRJdGVtc10pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLm5leHQoXG4gICAgICAgIHRoaXMuaXRlbXM/Lmxlbmd0aCA+IDBcbiAgICAgICAgICA/IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICAgICAgICBpdGVtLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoLnRvTG93ZXJDYXNlKCkpLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogW10sXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VsZWN0ZWRJdGVtcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy51c2VTZWFyY2hPcHRpb24pIHtcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXMgPSBbXTtcblxuICAgICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgICAgaWYgKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgICAgIGNvbnN0IHNraXBTdGVwcyA9IHRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5zZWxlY3RBbGxWYWx1ZSk7XG5cbiAgICAgICAgICBpZiAoIXNraXBTdGVwcykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtcz8uZmluZEluZGV4KFxuICAgICAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS52YWx1ZSA9PT0gdmFsdWUsXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaCh0aGlzLnNlbGVjdGVkSXRlbXNbaW5kZXhdKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvd1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zPy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSB2YWx1ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKChzZWxlY3RlZEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnZhbHVlLmZpbmQoXG4gICAgICAgICAgICAgICAgKHZhbHVlKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgPT09IHZhbHVlLFxuICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWUsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaCh0aGlzLnNlbGVjdGVkSXRlbXNbaW5kZXhdKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IHRoaXMudmFsdWUpO1xuXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWRlcHRoXG4gICAgICAgICAgICBpZiAoaXRlbSkge1xuICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gWy4uLnNlbGVjdGVkSXRlbXNdO1xuICAgICAgICB0aGlzLm5vdFNlbGVjdGVkSXRlbXMgPSB0aGlzLml0ZW1zPy5maWx0ZXIoXG4gICAgICAgICAgKGl0ZW0pID0+XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgPT09IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICApID09PSAtMSxcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubm90U2VsZWN0ZWRJdGVtcyA9IHRoaXMuaXRlbXM/LnNsaWNlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxuICA8bWF0LWZvcm0tZmllbGQgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogdXNlT25seURpc2FibGVkQ2xhc3MgfVwiPlxuICAgIDxtYXQtc2VsZWN0IGNsYXNzPVwiZm9ybS1maWVsZF9fc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAoY2xvc2VkKT1cIm9uVG91Y2goKVwiXG4gICAgICAgICAgICAgICAgW2lkXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25TZWxlY3Rpb25DaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cInRyaWdnZXJcIlxuICAgICAgICAgICAgICAgIGVjYWJzVG9vbHRpcElmVHJ1bmNhdGVkXG4gICAgICAgICAgICAgICAgW2NsYXNzTmFtZVRydW5jYXRlZFRvb2x0aXBdPVwiJ21hdC1zZWxlY3QtdmFsdWUnXCI+XG4gICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxuICAgICAgICA8c3Bhbj57eyB0cmlnZ2VyIH19PC9zcGFuPlxuICAgICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XG5cbiAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwidXNlU2VhcmNoT3B0aW9uXCI+XG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW2Zvcm1Db250cm9sXT1cIml0ZW1GaWx0ZXJDdHJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJMYWJlbF09XCJzZWFyY2hGaWVsZFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9FbnRyaWVzRm91bmRMYWJlbF09XCJub0VudHJpZXNGb3VuZExhYmVsXCI+XG4gICAgICAgIDwvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoPlxuICAgICAgPC9tYXQtb3B0aW9uPlxuXG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cInVzZU5vbmVPcHRpb25cIlxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZU5vbmUoKVwiXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVOb25lKClcIj5cbiAgICAgICAge3sgbm9uZUxhYmVsIH19XG4gICAgICA8L21hdC1vcHRpb24+XG5cbiAgICAgIDxtYXQtb3B0aW9uICNhbGxTZWxlY3RlZFxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCJ1c2VTZWxlY3RBbGxPcHRpb24gJiYgc2hvd0ZpbHRlcmVkQWxsT3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVBbGxTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVBbGxTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic2VsZWN0QWxsVmFsdWVcIj5cbiAgICAgICAge3sgYWxsTGFiZWwgfX1cbiAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRJdGVtcyQgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlUGVyT25lKClcIlxuICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwidG9nZ2xlUGVyT25lKClcIlxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiaXRlbS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICBlY2Fic1Rvb2x0aXBJZlRydW5jYXRlZFxuICAgICAgICAgICAgICAgICAgW2NsYXNzTmFtZVRydW5jYXRlZFRvb2x0aXBdPVwiJ21kYy1saXN0LWl0ZW1fX3ByaW1hcnktdGV4dCdcIj5cbiAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxuICAgICAgPC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZWNhYnMtZWxlbWVudC13cmFwcGVyPlxuIl19
|
|
370
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsWUFBWSxFQUVaLEtBQUssRUFJTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLFlBQVksRUFDWixHQUFHLEVBQ0gsWUFBWSxHQUNiLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyx5QkFBeUIsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBYWhFLE1BQU0sT0FBTyxvQkFDWCxTQUFRLHlCQUF5QjtJQStFZDtJQUNBO0lBQ0E7SUE5RVYsS0FBSyxDQUFrQjtJQUN2QixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ2pCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFDdEIsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0lBQzdCLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztJQUNsQyxlQUFlLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUMzQiwrQkFBK0IsR0FBRyxJQUFJLENB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QUs7Z0JBQ0csc0JBQXNCO3NCQUE5QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLCtCQUErQjtzQkFBdkMsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFFRyxlQUFlO3NCQUF4QixNQUFNO2dCQUVtQixXQUFXO3NCQUFwQyxTQUFTO3VCQUFDLGFBQWE7Z0JBRXhCLHdCQUF3QjtzQkFEdkIsU0FBUzt1QkFBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgTmdDb250cm9sLFxyXG4gIE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0T3B0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNlbGVjdFNlYXJjaENvbXBvbmVudCB9IGZyb20gJ25neC1tYXQtc2VsZWN0LXNlYXJjaCc7XHJcbmltcG9ydCB7XHJcbiAgQmVoYXZpb3JTdWJqZWN0LFxyXG4gIGNvbWJpbmVMYXRlc3QsXHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIG1hcCxcclxuICBTdWJzY3JpcHRpb24sXHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBFY2Fic0VsZW1lbnRCYXNlQ29tcG9uZW50IGZyb20gJy4uL2Jhc2UvZWxlbWVudC1iYXNlJztcclxuaW1wb3J0IHsgU2VsZWN0T3B0aW9uIH0gZnJvbSAnLi4vYmFzZS9tb2RlbHMvc2VsZWN0Lm1vZGVscyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBFY2Fic1NlbGVjdENvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFY2Fic1NlbGVjdENvbXBvbmVudFxyXG4gIGV4dGVuZHMgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudFxyXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxyXG57XHJcbiAgQElucHV0KCkgaXRlbXMhOiBTZWxlY3RPcHRpb25bXTtcclxuICBASW5wdXQoKSBtdWx0aXBsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHVzZU5vbmVPcHRpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSB1c2VPbmx5RGlzYWJsZWRDbGFzcyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkUGxhY2Vob2xkZXIgPSAnU2VhcmNoJztcclxuICBASW5wdXQoKSB1c2VTZWFyY2hPcHRpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSB1c2VTZWxlY3RBbGxPcHRpb24gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzZXRBbGxPcHRpb25BZnRlckNob3NlbkFsbEl0ZW1zID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzZWxlY3RBbGxWYWx1ZTogYW55ID0gMDtcclxuICBASW5wdXQoKSBub0VudHJpZXNGb3VuZExhYmVsID0gJ05vIG1hdGNoaW5nIGZvdW5kJztcclxuICBASW5wdXQoKSBub25lTGFiZWwgPSAnTm9uZSc7XHJcbiAgQElucHV0KCkgYWxsTGFiZWwgPSAnQWxsJztcclxuICBASW5wdXQoKSBvdGhlckxhYmVsID0gJ090aGVyJztcclxuICBASW5wdXQoKSBvdGhlcnNMYWJlbCA9ICdPdGhlcnMnO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVGaWx0ZXJJdGVtczogRXZlbnRFbWl0dGVyPHN0cmluZz4gPVxyXG4gICAgbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYWxsU2VsZWN0ZWQnKSBhbGxTZWxlY3RlZCE6IE1hdE9wdGlvbjtcclxuICBAVmlld0NoaWxkKE1hdFNlbGVjdFNlYXJjaENvbXBvbmVudClcclxuICBtYXRTZWxlY3RTZWFyY2hDb21wb25lbnQhOiBNYXRTZWxlY3RTZWFyY2hDb21wb25lbnQ7XHJcblxyXG4gIHZhbCE6IGFueTtcclxuICBmaWx0ZXJlZEl0ZW1zJDogQmVoYXZpb3JTdWJqZWN0PFNlbGVjdE9wdGlvbltdPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8XHJcbiAgICBTZWxlY3RPcHRpb25bXVxyXG4gID4oW10pO1xyXG4gIGl0ZW1GaWx0ZXJDdHJsOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XHJcbiAgaXNDbGVhckFsbCA9IGZhbHNlO1xyXG4gIHNob3dGaWx0ZXJlZEFsbE9wdGlvbiA9IHRydWU7XHJcbiAgc2VsZWN0ZWRJdGVtczogU2VsZWN0T3B0aW9uW10gPSBbXTtcclxuICBub3RTZWxlY3RlZEl0ZW1zOiBTZWxlY3RPcHRpb25bXSA9IFtdO1xyXG4gIHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudmFsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRyaWdnZXIoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmdldEFsbFNlbGVjdGVkQ2hlY2tlZCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFsbExhYmVsO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlyc3RDaG9zZW5WYWx1ZSA9XHJcbiAgICAgIHRoaXMudmFsICYmIHRoaXMubXVsdGlwbGVcclxuICAgICAgICA/IHRoaXMuZ2V0TGFiZWwodGhpcy52YWxbMF0pXHJcbiAgICAgICAgOiB0aGlzLmdldExhYmVsKHRoaXMudmFsKTtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5tdWx0aXBsZSAmJiB0aGlzLnZhbHVlPy5sZW5ndGggPiAxXHJcbiAgICAgID8gYCR7Zmlyc3RDaG9zZW5WYWx1ZX0gKCske1xyXG4gICAgICAgICAgdGhpcy51c2VTZWxlY3RBbGxPcHRpb24gJiYgdGhpcy5hbGxTZWxlY3RlZD8uc2VsZWN0ZWRcclxuICAgICAgICAgICAgPyB0aGlzLnZhbHVlPy5sZW5ndGggLSAyXHJcbiAgICAgICAgICAgIDogdGhpcy52YWx1ZT8ubGVuZ3RoIC0gMVxyXG4gICAgICAgIH1cclxuICAgICAgICAgICR7dGhpcy52YWx1ZT8ubGVuZ3RoID09PSAyID8gdGhpcy5vdGhlckxhYmVsIDogdGhpcy5vdGhlcnNMYWJlbH0pYFxyXG4gICAgICA6IGZpcnN0Q2hvc2VuVmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXQgdHJpZ2dlck9wdGlvbigpOiBTZWxlY3RPcHRpb24gfCB1bmRlZmluZWQge1xyXG4gICAgaWYgKHRoaXMuZ2V0QWxsU2VsZWN0ZWRDaGVja2VkKCkpIHtcclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmaXJzdFZhbHVlID0gdGhpcy52YWwgJiYgdGhpcy5tdWx0aXBsZSA/IHRoaXMudmFsWzBdIDogdGhpcy52YWw7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuZ2V0T3B0aW9uKGZpcnN0VmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHZhbHVlKHZhbCkge1xyXG4gICAgaWYgKHRoaXMudmFsICE9PSB2YWwpIHtcclxuICAgICAgdGhpcy52YWwgPSB2YWw7XHJcbiAgICAgIHRoaXMuc2V0U2VsZWN0ZWRJdGVtcygpO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaCh2YWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgaXRlbXMgfSA9IGNoYW5nZXM7XHJcblxyXG4gICAgaWYgKGl0ZW1zICYmIGl0ZW1zLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmZpbHRlckl0ZW1zKCk7XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5tdWx0aXBsZSAmJlxyXG4gICAgICAgIHRoaXMudXNlU2VsZWN0QWxsT3B0aW9uICYmXHJcbiAgICAgICAgdGhpcy5hbGxTZWxlY3RlZD8uc2VsZWN0ZWRcclxuICAgICAgKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShcclxuICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgIC4uLnRoaXMuZmlsdGVyZWRJdGVtcyQudmFsdWUubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKSxcclxuICAgICAgICAgICAgICB0aGlzLnNlbGVjdEFsbFZhbHVlLFxyXG4gICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgZW1pdEV2ZW50OiBmYWxzZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSwgMTAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbmdDb250cm9sOiBOZ0NvbnRyb2wgPSB0aGlzLmluamVjdG9yLmdldChOZ0NvbnRyb2wsIG51bGwpO1xyXG5cclxuICAgIGlmIChuZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gbmdDb250cm9sLmNvbnRyb2wgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMubWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50Ll9zaG93Tm9FbnRyaWVzRm91bmQkID0gY29tYmluZUxhdGVzdChbXHJcbiAgICAgICAgdGhpcy5pdGVtRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXMsXHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zJCxcclxuICAgICAgXSkucGlwZShcclxuICAgICAgICBtYXAoXHJcbiAgICAgICAgICAoW3ZhbHVlLCBpdGVtc10pID0+XHJcbiAgICAgICAgICAgIHRoaXMubWF0U2VsZWN0U2VhcmNoQ29tcG9uZW50Lm5vRW50cmllc0ZvdW5kTGFiZWwgJiZcclxuICAgICAgICAgICAgdmFsdWUgJiZcclxuICAgICAgICAgICAgaXRlbXMubGVuZ3RoID09PSAwLFxyXG4gICAgICAgICksXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXHJcbiAgICAgIHRoaXMuaXRlbUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDIwMCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJJdGVtcygpO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJJdGVtcy5lbWl0KHZhbHVlKTtcclxuXHJcbiAgICAgICAgICBpZiAodGhpcy5pc0NsZWFyQWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKFtdLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHRoaXMuaXNDbGVhckFsbCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cclxuICBvbkNoYW5nZTogYW55ID0gKCkgPT4ge307XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxyXG4gIG9uVG91Y2g6IGFueSA9ICgpID0+IHt9O1xyXG5cclxuICB0b2dnbGVBbGxTZWxlY3Rpb24oKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hbGxTZWxlY3RlZC5zZWxlY3RlZCkge1xyXG4gICAgICBpZiAodGhpcy51c2VTZWFyY2hPcHRpb24pIHtcclxuICAgICAgICB0aGlzLmNvbnRyb2wucGF0Y2hWYWx1ZShbXHJcbiAgICAgICAgICAuLi50aGlzLmZpbHRlcmVkSXRlbXMkLnZhbHVlLm1hcCgoaXRlbSkgPT4gaXRlbS52YWx1ZSksXHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEFsbFZhbHVlLFxyXG4gICAgICAgIF0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKFtcclxuICAgICAgICAgIC4uLnRoaXMuaXRlbXMubWFwKChpdGVtKSA9PiBpdGVtLnZhbHVlKSxcclxuICAgICAgICAgIHRoaXMuc2VsZWN0QWxsVmFsdWUsXHJcbiAgICAgICAgXSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29udHJvbC5wYXRjaFZhbHVlKFtdKTtcclxuICAgICAgdGhpcy5pc0NsZWFyQWxsID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZVBlck9uZSgpOiB2b2lkIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5hbGxTZWxlY3RlZCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFsbFNlbGVjdGVkLnNlbGVjdGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmFsbFNlbGVjdGVkLmRlc2VsZWN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHRoaXMuc2V0QWxsT3B0aW9uQWZ0ZXJDaG9zZW5BbGxJdGVtcyAmJlxyXG4gICAgICAgICAgdGhpcy5jb250cm9sLnZhbHVlLmxlbmd0aCA9PT0gdGhpcy5pdGVtcy5sZW5ndGhcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMuYWxsU2VsZWN0ZWQuc2VsZWN0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLmlzQ2xlYXJBbGwgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU5vbmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBbXTtcclxuICB9XHJcblxyXG4gIGdldEFsbFNlbGVjdGVkQ2hlY2tlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFsbFNlbGVjdGVkICE9PSB1bmRlZmluZWQgJiYgdGhpcy5hbGxTZWxlY3RlZC5zZWxlY3RlZDtcclxuICB9XHJcblxyXG4gIGdldExhYmVsKHZhbDogYW55KTogc3RyaW5nIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy51c2VTZWxlY3RBbGxPcHRpb24gJiZcclxuICAgICAgdGhpcy5hbGxTZWxlY3RlZD8uc2VsZWN0ZWQgJiZcclxuICAgICAgdGhpcy5pdGVtcyAmJlxyXG4gICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDBcclxuICAgICkge1xyXG4gICAgICByZXR1cm4gdGhpcy5pdGVtc1swXS5sYWJlbDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgaXRlbTogeyBsYWJlbDogc3RyaW5nOyB2YWx1ZTogYW55IH07XHJcblxyXG4gICAgaWYgKHZhbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGlmICh0aGlzLnVzZVNlYXJjaE9wdGlvbikge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSXRlbXMgJiYgdGhpcy5zZWxlY3RlZEl0ZW1zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93XHJcbiAgICAgICAgICBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1zaGFkb3dcclxuICAgICAgICAgIGl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0udmFsdWUgPT09IHZhbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gaXRlbSA/IGl0ZW0ubGFiZWwgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXRPcHRpb24odmFsOiB1bmtub3duKTogU2VsZWN0T3B0aW9uIHwgdW5kZWZpbmVkIHtcclxuICAgIGlmICh2YWwgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMudXNlU2VhcmNoT3B0aW9uID8gdGhpcy5zZWxlY3RlZEl0ZW1zIDogdGhpcy5pdGVtcztcclxuXHJcbiAgICByZXR1cm4gc291cmNlPy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSB2YWwpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0aW9uQ2hhbmdlZCgkZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCgkZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJJdGVtcygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0U2VsZWN0ZWRJdGVtcygpO1xyXG5cclxuICAgIGlmICghdGhpcy5pdGVtcykge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZ2V0IHRoZSBzZWFyY2gga2V5d29yZFxyXG4gICAgbGV0IHNlYXJjaDogc3RyaW5nID0gdGhpcy5pdGVtRmlsdGVyQ3RybC52YWx1ZTtcclxuXHJcbiAgICBpZiAoIXNlYXJjaCB8fCBzZWFyY2ggPT09ICcnKSB7XHJcbiAgICAgIGlmICh0aGlzLnVzZVNlYXJjaE9wdGlvbiAmJiAhdGhpcy5pdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zJC5uZXh0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXNdKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMkLm5leHQodGhpcy5pdGVtcz8uc2xpY2UoKSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc2hvd0ZpbHRlcmVkQWxsT3B0aW9uID0gdHJ1ZTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBzZWFyY2ggPSBzZWFyY2gudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICB0aGlzLnNob3dGaWx0ZXJlZEFsbE9wdGlvbiA9XHJcbiAgICAgIHRoaXMuYWxsTGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSkgfHxcclxuICAgICAgKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBBcnJheSAmJlxyXG4gICAgICAgIHRoaXMudmFsdWUuaW5jbHVkZXModGhpcy5zZWxlY3RBbGxWYWx1ZSkpIHx8XHJcbiAgICAgICghKHRoaXMudmFsdWUgaW5zdGFuY2VvZiBBcnJheSkgJiYgdGhpcy52YWx1ZSA9PT0gdGhpcy5zZWxlY3RBbGxWYWx1ZSk7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICBpZiAodGhpcy51c2VTZWFyY2hPcHRpb24pIHtcclxuICAgICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9XHJcbiAgICAgICAgdGhpcy5ub3RTZWxlY3RlZEl0ZW1zPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICA/IHRoaXMubm90U2VsZWN0ZWRJdGVtcy5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgICAgICAgICAgaXRlbS5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaC50b0xvd2VyQ2FzZSgpKSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zJC5uZXh0KFsuLi50aGlzLnNlbGVjdGVkSXRlbXMsIC4uLmZpbHRlcmVkSXRlbXNdKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyQubmV4dChcclxuICAgICAgICB0aGlzLml0ZW1zPy5sZW5ndGggPiAwXHJcbiAgICAgICAgICA/IHRoaXMuaXRlbXMuZmlsdGVyKChpdGVtKSA9PlxyXG4gICAgICAgICAgICAgIGl0ZW0ubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2gudG9Mb3dlckNhc2UoKSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgIDogW10sXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFNlbGVjdGVkSXRlbXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy51c2VTZWFyY2hPcHRpb24pIHtcclxuICAgICAgY29uc3Qgc2VsZWN0ZWRJdGVtcyA9IFtdO1xyXG5cclxuICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICBpZiAodGhpcy52YWx1ZSBpbnN0YW5jZW9mIEFycmF5KSB7XHJcbiAgICAgICAgICBjb25zdCBza2lwU3RlcHMgPSB0aGlzLnZhbHVlLmluY2x1ZGVzKHRoaXMuc2VsZWN0QWxsVmFsdWUpO1xyXG5cclxuICAgICAgICAgIGlmICghc2tpcFN0ZXBzKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUuZm9yRWFjaCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtcz8uZmluZEluZGV4KFxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkSXRlbSkgPT4gc2VsZWN0ZWRJdGVtLnZhbHVlID09PSB2YWx1ZSxcclxuICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2godGhpcy5zZWxlY3RlZEl0ZW1zW2luZGV4XSk7XHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tc2hhZG93XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcz8uZmluZCgoaXRlbSkgPT4gaXRlbS52YWx1ZSA9PT0gdmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZvckVhY2goKHNlbGVjdGVkSXRlbSkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy52YWx1ZS5maW5kKFxyXG4gICAgICAgICAgICAgICAgKHZhbHVlKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgPT09IHZhbHVlLFxyXG4gICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgIGlmIChpbmRleCA9PT0gLTEpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgIChzZWxlY3RlZEl0ZW0pID0+IHNlbGVjdGVkSXRlbS52YWx1ZSA9PT0gdGhpcy52YWx1ZSxcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2godGhpcy5zZWxlY3RlZEl0ZW1zW2luZGV4XSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXNoYWRvd1xyXG4gICAgICAgICAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnZhbHVlID09PSB0aGlzLnZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtZGVwdGhcclxuICAgICAgICAgICAgaWYgKGl0ZW0pIHtcclxuICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IFsuLi5zZWxlY3RlZEl0ZW1zXTtcclxuICAgICAgICB0aGlzLm5vdFNlbGVjdGVkSXRlbXMgPSB0aGlzLml0ZW1zPy5maWx0ZXIoXHJcbiAgICAgICAgICAoaXRlbSkgPT5cclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zLmZpbmRJbmRleChcclxuICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtKSA9PiBzZWxlY3RlZEl0ZW0udmFsdWUgPT09IGl0ZW0udmFsdWUsXHJcbiAgICAgICAgICAgICkgPT09IC0xLFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5ub3RTZWxlY3RlZEl0ZW1zID0gdGhpcy5pdGVtcz8uc2xpY2UoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZWNhYnMtZWxlbWVudC13cmFwcGVyIFtkYXRhXT1cImdldERhdGEoKVwiPlxyXG4gIDxtYXQtZm9ybS1maWVsZCBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiB1c2VPbmx5RGlzYWJsZWRDbGFzcyB9XCI+XHJcbiAgICA8bWF0LXNlbGVjdCBjbGFzcz1cImZvcm0tZmllbGRfX3NlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgIChjbG9zZWQpPVwib25Ub3VjaCgpXCJcclxuICAgICAgICAgICAgICAgIFtpZF09XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblNlbGVjdGlvbkNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCJ0cmlnZ2VyXCJcclxuICAgICAgICAgICAgICAgIGVjYWJzVG9vbHRpcElmVHJ1bmNhdGVkXHJcbiAgICAgICAgICAgICAgICBbY2xhc3NOYW1lVHJ1bmNhdGVkVG9vbHRpcF09XCInbWF0LXNlbGVjdC12YWx1ZSdcIj5cclxuICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPGVjYWJzLXNlbGVjdC1pY29uIFtvcHRpb25dPVwidHJpZ2dlck9wdGlvblwiPjwvZWNhYnMtc2VsZWN0LWljb24+XHJcbiAgICAgICAgICA8c3Bhbj57eyB0cmlnZ2VyIH19PC9zcGFuPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcblxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cInVzZVNlYXJjaE9wdGlvblwiPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW2Zvcm1Db250cm9sXT1cIml0ZW1GaWx0ZXJDdHJsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cInNlYXJjaEZpZWxkUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwibm9FbnRyaWVzRm91bmRMYWJlbFwiPlxyXG4gICAgICAgIDwvbmd4LW1hdC1zZWxlY3Qtc2VhcmNoPlxyXG4gICAgICA8L21hdC1vcHRpb24+XHJcblxyXG4gICAgICA8bWF0LW9wdGlvbiAqbmdJZj1cInVzZU5vbmVPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlTm9uZSgpXCJcclxuICAgICAgICAgICAgICAgICAgKGtleWRvd24uZW50ZXIpPVwidG9nZ2xlTm9uZSgpXCI+XHJcbiAgICAgICAge3sgbm9uZUxhYmVsIH19XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgIDxtYXQtb3B0aW9uICNhbGxTZWxlY3RlZFxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cInVzZVNlbGVjdEFsbE9wdGlvbiAmJiBzaG93RmlsdGVyZWRBbGxPcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQWxsU2VsZWN0aW9uKClcIlxyXG4gICAgICAgICAgICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJ0b2dnbGVBbGxTZWxlY3Rpb24oKVwiXHJcbiAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzZWxlY3RBbGxWYWx1ZVwiPlxyXG4gICAgICAgIHt7IGFsbExhYmVsIH19XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpbHRlcmVkSXRlbXMkIHwgYXN5bmNcIlxyXG4gICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVQZXJPbmUoKVwiXHJcbiAgICAgICAgICAgICAgICAgIChrZXlkb3duLmVudGVyKT1cInRvZ2dsZVBlck9uZSgpXCJcclxuICAgICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiaXRlbS5sYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIGVjYWJzVG9vbHRpcElmVHJ1bmNhdGVkXHJcbiAgICAgICAgICAgICAgICAgIFtjbGFzc05hbWVUcnVuY2F0ZWRUb29sdGlwXT1cIidtZGMtbGlzdC1pdGVtX19wcmltYXJ5LXRleHQnXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgIDxlY2Ficy1zZWxlY3QtaWNvbiBbb3B0aW9uXT1cIml0ZW1cIj48L2VjYWJzLXNlbGVjdC1pY29uPlxyXG4gICAgICAgICAge3sgaXRlbS5sYWJlbCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZWNhYnMtZWxlbWVudC13cmFwcGVyPlxyXG4iXX0=
|
|
@@ -5,6 +5,7 @@ import { CommonModule } from '@angular/common';
|
|
|
5
5
|
import { NgModule } from '@angular/core';
|
|
6
6
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
7
7
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
8
|
+
import { EcabsSelectIconModule } from '../ecabs-select-icon/ecabs-select-icon.module';
|
|
8
9
|
import { EcabsTooltipIfTruncatedDirectiveModule } from '../base/directives/tooltip-if-truncated.directive.module';
|
|
9
10
|
import { ElementWrapperModule } from '../base/element-wrapper/element-wrapper.module';
|
|
10
11
|
import { EcabsSelectComponent } from './ecabs-select.component';
|
|
@@ -15,6 +16,7 @@ export class EcabsSelectModule {
|
|
|
15
16
|
ElementWrapperModule,
|
|
16
17
|
MatSelectModule,
|
|
17
18
|
MatTooltipModule,
|
|
19
|
+
EcabsSelectIconModule,
|
|
18
20
|
FormsModule,
|
|
19
21
|
NgxMatSelectSearchModule,
|
|
20
22
|
ReactiveFormsModule,
|
|
@@ -29,6 +31,7 @@ export class EcabsSelectModule {
|
|
|
29
31
|
ElementWrapperModule,
|
|
30
32
|
MatSelectModule,
|
|
31
33
|
MatTooltipModule,
|
|
34
|
+
EcabsSelectIconModule,
|
|
32
35
|
FormsModule,
|
|
33
36
|
NgxMatSelectSearchModule,
|
|
34
37
|
ReactiveFormsModule,
|
|
@@ -43,6 +46,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
43
46
|
ElementWrapperModule,
|
|
44
47
|
MatSelectModule,
|
|
45
48
|
MatTooltipModule,
|
|
49
|
+
EcabsSelectIconModule,
|
|
46
50
|
FormsModule,
|
|
47
51
|
NgxMatSelectSearchModule,
|
|
48
52
|
ReactiveFormsModule,
|
|
@@ -61,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
61
65
|
export function scrollFactory(overlay) {
|
|
62
66
|
return () => overlay.scrollStrategies.block();
|
|
63
67
|
}
|
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QvZWNhYnMtc2VsZWN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLGVBQWUsR0FDaEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQXVCLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV0RixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUF3QmhFLE1BQU0sT0FBTyxpQkFBaUI7d0dBQWpCLGlCQUFpQjt5R0FBakIsaUJBQWlCLGlCQXJCYixvQkFBb0IsYUFFakMsWUFBWTtZQUNaLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixXQUFXO1lBQ1gsd0JBQXdCO1lBQ3hCLG1CQUFtQjtZQUNuQixzQ0FBc0MsYUFFOUIsb0JBQW9CO3lHQVNuQixpQkFBaUIsYUFSakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxVQUFVLEVBQUUsYUFBYTtnQkFDekIsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO2FBQ2hCO1NBQ0YsWUFqQkMsWUFBWTtZQUNaLG9CQUFvQjtZQUNwQixlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLHFCQUFxQjtZQUNyQixXQUFXO1lBQ1gsd0JBQXdCO1lBQ3hCLG1CQUFtQjtZQUNuQixzQ0FBc0M7OzRGQVc3QixpQkFBaUI7a0JBdEI3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLG9CQUFvQixDQUFDO29CQUNwQyxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLFdBQVc7d0JBQ1gsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLHNDQUFzQztxQkFDdkM7b0JBQ0QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQy9CLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMEJBQTBCOzRCQUNuQyxVQUFVLEVBQUUsYUFBYTs0QkFDekIsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO3lCQUNoQjtxQkFDRjtpQkFDRjs7QUFHRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWdCO0lBQzVDLE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO0FBQ2hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ3hNYXRTZWxlY3RTZWFyY2hNb2R1bGUgfSBmcm9tICduZ3gtbWF0LXNlbGVjdC1zZWFyY2gnO1xyXG5pbXBvcnQge1xyXG4gIE1BVF9TRUxFQ1RfU0NST0xMX1NUUkFURUdZLFxyXG4gIE1hdFNlbGVjdE1vZHVsZSxcclxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBCbG9ja1Njcm9sbFN0cmF0ZWd5LCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xyXG5pbXBvcnQgeyBFY2Fic1NlbGVjdEljb25Nb2R1bGUgfSBmcm9tICcuLi9lY2Ficy1zZWxlY3QtaWNvbi9lY2Ficy1zZWxlY3QtaWNvbi5tb2R1bGUnO1xyXG5cclxuaW1wb3J0IHsgRWNhYnNUb29sdGlwSWZUcnVuY2F0ZWREaXJlY3RpdmVNb2R1bGUgfSBmcm9tICcuLi9iYXNlL2RpcmVjdGl2ZXMvdG9vbHRpcC1pZi10cnVuY2F0ZWQuZGlyZWN0aXZlLm1vZHVsZSc7XHJcbmltcG9ydCB7IEVsZW1lbnRXcmFwcGVyTW9kdWxlIH0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LXdyYXBwZXIvZWxlbWVudC13cmFwcGVyLm1vZHVsZSc7XHJcbmltcG9ydCB7IEVjYWJzU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9lY2Ficy1zZWxlY3QuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbRWNhYnNTZWxlY3RDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEVsZW1lbnRXcmFwcGVyTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcclxuICAgIEVjYWJzU2VsZWN0SWNvbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTmd4TWF0U2VsZWN0U2VhcmNoTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEVjYWJzVG9vbHRpcElmVHJ1bmNhdGVkRGlyZWN0aXZlTW9kdWxlLFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW0VjYWJzU2VsZWN0Q29tcG9uZW50XSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTUFUX1NFTEVDVF9TQ1JPTExfU1RSQVRFR1ksXHJcbiAgICAgIHVzZUZhY3Rvcnk6IHNjcm9sbEZhY3RvcnksXHJcbiAgICAgIGRlcHM6IFtPdmVybGF5XSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzU2VsZWN0TW9kdWxlIHt9XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsRmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gQmxvY2tTY3JvbGxTdHJhdGVneSB7XHJcbiAgcmV0dXJuICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import { getPhosphorSvgIcon } from '../base/utils/select.utils';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/material/icon";
|
|
6
|
+
export class EcabsSelectIconComponent {
|
|
7
|
+
svgIcon = '';
|
|
8
|
+
set option(option) {
|
|
9
|
+
this.svgIcon = getPhosphorSvgIcon(option);
|
|
10
|
+
}
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectIconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: { option: "option" }, ngImport: i0, template: "<mat-icon *ngIf=\"svgIcon\"\r\n [svgIcon]=\"svgIcon\"\r\n class=\"!w-5 !h-5 !text-xl !leading-5 mt-1 mr-2\"></mat-icon>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
13
|
+
}
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectIconComponent, decorators: [{
|
|
15
|
+
type: Component,
|
|
16
|
+
args: [{ selector: 'ecabs-select-icon', template: "<mat-icon *ngIf=\"svgIcon\"\r\n [svgIcon]=\"svgIcon\"\r\n class=\"!w-5 !h-5 !text-xl !leading-5 mt-1 mr-2\"></mat-icon>\r\n" }]
|
|
17
|
+
}], propDecorators: { option: [{
|
|
18
|
+
type: Input
|
|
19
|
+
}] } });
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0LWljb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXNlbGVjdC1pY29uL2VjYWJzLXNlbGVjdC1pY29uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QtaWNvbi9lY2Ficy1zZWxlY3QtaWNvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQU1oRSxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFFYixJQUNJLE1BQU0sQ0FBQyxNQUFnQztRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0dBTlUsd0JBQXdCOzRGQUF4Qix3QkFBd0IsdUZDUnJDLCtJQUdBOzs0RkRLYSx3QkFBd0I7a0JBSnBDLFNBQVM7K0JBQ0UsbUJBQW1COzhCQU96QixNQUFNO3NCQURULEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFNlbGVjdE9wdGlvbiB9IGZyb20gJy4uL2Jhc2UvbW9kZWxzL3NlbGVjdC5tb2RlbHMnO1xyXG5pbXBvcnQgeyBnZXRQaG9zcGhvclN2Z0ljb24gfSBmcm9tICcuLi9iYXNlL3V0aWxzL3NlbGVjdC51dGlscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjYWJzLXNlbGVjdC1pY29uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtc2VsZWN0LWljb24uY29tcG9uZW50Lmh0bWwnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNTZWxlY3RJY29uQ29tcG9uZW50IHtcclxuICBzdmdJY29uID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG9wdGlvbihvcHRpb246IFNlbGVjdE9wdGlvbiB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5zdmdJY29uID0gZ2V0UGhvc3Bob3JTdmdJY29uKG9wdGlvbik7XHJcbiAgfVxyXG59XHJcbiIsIjxtYXQtaWNvbiAqbmdJZj1cInN2Z0ljb25cIlxyXG4gICAgICAgICAgW3N2Z0ljb25dPVwic3ZnSWNvblwiXHJcbiAgICAgICAgICBjbGFzcz1cIiF3LTUgIWgtNSAhdGV4dC14bCAhbGVhZGluZy01IG10LTEgbXItMlwiPjwvbWF0LWljb24+XHJcbiJdfQ==
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { EcabsSelectIconComponent } from './ecabs-select-icon.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class EcabsSelectIconModule {
|
|
7
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
8
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectIconModule, declarations: [EcabsSelectIconComponent], imports: [CommonModule, MatIconModule], exports: [EcabsSelectIconComponent] });
|
|
9
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectIconModule, imports: [CommonModule, MatIconModule] });
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectIconModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
declarations: [EcabsSelectIconComponent],
|
|
15
|
+
imports: [CommonModule, MatIconModule],
|
|
16
|
+
exports: [EcabsSelectIconComponent],
|
|
17
|
+
}]
|
|
18
|
+
}] });
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0LWljb24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWNhYnMtY29tcG9uZW50cy9zcmMvbGliL2VjYWJzLXNlbGVjdC1pY29uL2VjYWJzLXNlbGVjdC1pY29uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBT3pFLE1BQU0sT0FBTyxxQkFBcUI7d0dBQXJCLHFCQUFxQjt5R0FBckIscUJBQXFCLGlCQUpqQix3QkFBd0IsYUFDN0IsWUFBWSxFQUFFLGFBQWEsYUFDM0Isd0JBQXdCO3lHQUV2QixxQkFBcUIsWUFIdEIsWUFBWSxFQUFFLGFBQWE7OzRGQUcxQixxQkFBcUI7a0JBTGpDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsd0JBQXdCLENBQUM7b0JBQ3hDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLHdCQUF3QixDQUFDO2lCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgRWNhYnNTZWxlY3RJY29uQ29tcG9uZW50IH0gZnJvbSAnLi9lY2Ficy1zZWxlY3QtaWNvbi5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtFY2Fic1NlbGVjdEljb25Db21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtFY2Fic1NlbGVjdEljb25Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWNhYnNTZWxlY3RJY29uTW9kdWxlIHt9XHJcbiJdfQ==
|
|
@@ -10,6 +10,7 @@ import * as i3 from "../base/element-wrapper/element-wrapper.component";
|
|
|
10
10
|
import * as i4 from "@ng-select/ng-select";
|
|
11
11
|
import * as i5 from "../ecabs-loading/spinner/spinner.component";
|
|
12
12
|
import * as i6 from "../ecabs-checkbox-toggle/ecabs-checkbox-toggle.component";
|
|
13
|
+
import * as i7 from "../ecabs-select-icon/ecabs-select-icon.component";
|
|
13
14
|
export class EcabsSelectV2Component extends EcabsElementBaseComponent {
|
|
14
15
|
ngControl;
|
|
15
16
|
destroyRef;
|
|
@@ -152,17 +153,20 @@ export class EcabsSelectV2Component extends EcabsElementBaseComponent {
|
|
|
152
153
|
this.selectionChange.emit(selected[0]);
|
|
153
154
|
}
|
|
154
155
|
}
|
|
156
|
+
asOption(item) {
|
|
157
|
+
return item;
|
|
158
|
+
}
|
|
155
159
|
initTrackBy() {
|
|
156
160
|
this.trackByFn = (item) => {
|
|
157
161
|
return item?.value;
|
|
158
162
|
};
|
|
159
163
|
}
|
|
160
164
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectV2Component, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
161
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSelectV2Component, selector: "ecabs-select-v2", inputs: { appearance: "appearance", appendTo: "appendTo", items: "items", bindLabel: "bindLabel", bindValue: "bindValue", editableSearchTerm: "editableSearchTerm", searchable: "searchable", clearable: "clearable", multiple: "multiple", notFoundText: "notFoundText", hideSelected: "hideSelected", clearOnBackspace: "clearOnBackspace", clearSearchOnAdd: "clearSearchOnAdd", trackByFn: "trackByFn", minLength: "minLength", searchPlaceholder: "searchPlaceholder", typeahead: "typeahead", closeOnSelect: "closeOnSelect", clearAllText: "clearAllText", selectAllLabel: "selectAllLabel", otherLabel: "otherLabel", othersLabel: "othersLabel" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "ngSelect", first: true, predicate: NgSelectComponent, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\n <ng-select class=\"form-field__select\"\n [appearance]=\"appearance\"\n [appendTo]=\"appendTo\"\n [labelForId]=\"name\"\n [bindLabel]=\"bindLabel || null\"\n [bindValue]=\"bindValue || null\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\n [groupBy]=\"groupByKey\"\n [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\"\n [items]=\"itemsList\"\n [multiple]=\"multiple\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n (blur)=\"onBlur()\"\n [hideSelected]=\"hideSelected\"\n [trackByFn]=\"trackByFn\"\n [minTermLength]=\"minLength\"\n [typeToSearchText]=\"searchPlaceholder\"\n [typeahead]=\"typeahead\"\n [loading]=\"loading\"\n [closeOnSelect]=\"closeOnSelect\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [editableSearchTerm]=\"editableSearchTerm\"\n (open)=\"this.isOpen = true\"\n (close)=\"this.isOpen = false\"\n (change)=\"changed($event)\"\n [notFoundText]=\"notFoundText\"\n [clearAllText]=\"clearAllText\"\n [readonly]=\"this.disabled\">\n\n <ng-
|
|
165
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: EcabsSelectV2Component, selector: "ecabs-select-v2", inputs: { appearance: "appearance", appendTo: "appendTo", items: "items", bindLabel: "bindLabel", bindValue: "bindValue", editableSearchTerm: "editableSearchTerm", searchable: "searchable", clearable: "clearable", multiple: "multiple", notFoundText: "notFoundText", hideSelected: "hideSelected", clearOnBackspace: "clearOnBackspace", clearSearchOnAdd: "clearSearchOnAdd", trackByFn: "trackByFn", minLength: "minLength", searchPlaceholder: "searchPlaceholder", typeahead: "typeahead", closeOnSelect: "closeOnSelect", clearAllText: "clearAllText", selectAllLabel: "selectAllLabel", otherLabel: "otherLabel", othersLabel: "othersLabel" }, outputs: { selectionChange: "selectionChange" }, viewQueries: [{ propertyName: "ngSelect", first: true, predicate: NgSelectComponent, descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <ng-select class=\"form-field__select\"\r\n [appearance]=\"appearance\"\r\n [appendTo]=\"appendTo\"\r\n [labelForId]=\"name\"\r\n [bindLabel]=\"bindLabel || null\"\r\n [bindValue]=\"bindValue || null\"\r\n [searchable]=\"searchable\"\r\n [clearable]=\"clearable\"\r\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\r\n [groupBy]=\"groupByKey\"\r\n [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\"\r\n [items]=\"itemsList\"\r\n [multiple]=\"multiple\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onBlur()\"\r\n [hideSelected]=\"hideSelected\"\r\n [trackByFn]=\"trackByFn\"\r\n [minTermLength]=\"minLength\"\r\n [typeToSearchText]=\"searchPlaceholder\"\r\n [typeahead]=\"typeahead\"\r\n [loading]=\"loading\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [editableSearchTerm]=\"editableSearchTerm\"\r\n (open)=\"this.isOpen = true\"\r\n (close)=\"this.isOpen = false\"\r\n (change)=\"changed($event)\"\r\n [notFoundText]=\"notFoundText\"\r\n [clearAllText]=\"clearAllText\"\r\n [readonly]=\"this.disabled\">\r\n\r\n <ng-template ng-loadingspinner-tmp>\r\n <ecabs-loading-spinner size=\"tiny\"></ecabs-loading-spinner>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"!multiple\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-label=\"label\">\r\n <span class=\"inline-flex items-center\">\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ label }}\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!!bindValue && !!bindLabel\">\r\n <ng-template ng-multi-label-tmp let-items=\"items\">\r\n <!--#Custom display of first selected item and (+1 more) pattern -->\r\n <ng-container *ngIf=\"!isOpen\">\r\n <div *ngFor=\"let item of items | slice:0:1\"\r\n class=\"inline-flex items-center\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <ecabs-select-icon [option]=\"option\"></ecabs-select-icon>\r\n <span>\r\n {{ option.label }} <span *ngIf=\"items.length > 1\">\r\n (+{{ items.length - 1 }}\r\n {{ (items?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <span class=\"inline-flex items-center\">\r\n <ecabs-checkbox *ngIf=\"multiple\"\r\n [ngModel]=\"item$.selected\"\r\n [name]=\"index\">\r\n </ecabs-checkbox>\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ item$?.['label'] }}\r\n </span>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"multiple\">\r\n <!--#Add selectAll and individual checkboxes for multiple-enabled list -->\r\n <ng-template ng-optgroup-tmp let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox [ngModel]=\"item$.selected\"\r\n [name]=\"index\"\r\n [text]=\"selectAllLabel\">\r\n </ecabs-checkbox>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n</ecabs-element-wrapper>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EcabsElementWrapperComponent, selector: "ecabs-element-wrapper", inputs: ["data", "showCloseIcon", "focusedFlag", "showPassword", "control"], outputs: ["showHidePassword", "clear", "increase", "decrease"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgOptgroupTemplateDirective, selector: "[ng-optgroup-tmp]" }, { kind: "directive", type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i4.NgMultiLabelTemplateDirective, selector: "[ng-multi-label-tmp]" }, { kind: "directive", type: i4.NgLoadingSpinnerTemplateDirective, selector: "[ng-loadingspinner-tmp]" }, { kind: "component", type: i5.EcabsSpinnerComponent, selector: "ecabs-loading-spinner", inputs: ["size"] }, { kind: "component", type: i6.EcabsCheckboxToggleComponent, selector: "ecabs-checkbox", inputs: ["type", "text", "label", "labelPosition", "indeterminate", "checked"], outputs: ["click", "changed"] }, { kind: "component", type: i7.EcabsSelectIconComponent, selector: "ecabs-select-icon", inputs: ["option"] }, { kind: "pipe", type: i2.SlicePipe, name: "slice" }] });
|
|
162
166
|
}
|
|
163
167
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: EcabsSelectV2Component, decorators: [{
|
|
164
168
|
type: Component,
|
|
165
|
-
args: [{ selector: 'ecabs-select-v2', template: "<ecabs-element-wrapper [data]=\"getData()\">\n <ng-select class=\"form-field__select\"\n [appearance]=\"appearance\"\n [appendTo]=\"appendTo\"\n [labelForId]=\"name\"\n [bindLabel]=\"bindLabel || null\"\n [bindValue]=\"bindValue || null\"\n [searchable]=\"searchable\"\n [clearable]=\"clearable\"\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\n [groupBy]=\"groupByKey\"\n [selectableGroup]=\"true\"\n [selectableGroupAsModel]=\"false\"\n [items]=\"itemsList\"\n [multiple]=\"multiple\"\n [(ngModel)]=\"value\"\n [placeholder]=\"placeholder\"\n (blur)=\"onBlur()\"\n [hideSelected]=\"hideSelected\"\n [trackByFn]=\"trackByFn\"\n [minTermLength]=\"minLength\"\n [typeToSearchText]=\"searchPlaceholder\"\n [typeahead]=\"typeahead\"\n [loading]=\"loading\"\n [closeOnSelect]=\"closeOnSelect\"\n [clearOnBackspace]=\"clearOnBackspace\"\n [editableSearchTerm]=\"editableSearchTerm\"\n (open)=\"this.isOpen = true\"\n (close)=\"this.isOpen = false\"\n (change)=\"changed($event)\"\n [notFoundText]=\"notFoundText\"\n [clearAllText]=\"clearAllText\"\n [readonly]=\"this.disabled\">\n\n <ng-
|
|
169
|
+
args: [{ selector: 'ecabs-select-v2', template: "<ecabs-element-wrapper [data]=\"getData()\">\r\n <ng-select class=\"form-field__select\"\r\n [appearance]=\"appearance\"\r\n [appendTo]=\"appendTo\"\r\n [labelForId]=\"name\"\r\n [bindLabel]=\"bindLabel || null\"\r\n [bindValue]=\"bindValue || null\"\r\n [searchable]=\"searchable\"\r\n [clearable]=\"clearable\"\r\n [clearSearchOnAdd]=\"clearSearchOnAdd\"\r\n [groupBy]=\"groupByKey\"\r\n [selectableGroup]=\"true\"\r\n [selectableGroupAsModel]=\"false\"\r\n [items]=\"itemsList\"\r\n [multiple]=\"multiple\"\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n (blur)=\"onBlur()\"\r\n [hideSelected]=\"hideSelected\"\r\n [trackByFn]=\"trackByFn\"\r\n [minTermLength]=\"minLength\"\r\n [typeToSearchText]=\"searchPlaceholder\"\r\n [typeahead]=\"typeahead\"\r\n [loading]=\"loading\"\r\n [closeOnSelect]=\"closeOnSelect\"\r\n [clearOnBackspace]=\"clearOnBackspace\"\r\n [editableSearchTerm]=\"editableSearchTerm\"\r\n (open)=\"this.isOpen = true\"\r\n (close)=\"this.isOpen = false\"\r\n (change)=\"changed($event)\"\r\n [notFoundText]=\"notFoundText\"\r\n [clearAllText]=\"clearAllText\"\r\n [readonly]=\"this.disabled\">\r\n\r\n <ng-template ng-loadingspinner-tmp>\r\n <ecabs-loading-spinner size=\"tiny\"></ecabs-loading-spinner>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"!multiple\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-label=\"label\">\r\n <span class=\"inline-flex items-center\">\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ label }}\r\n </span>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!!bindValue && !!bindLabel\">\r\n <ng-template ng-multi-label-tmp let-items=\"items\">\r\n <!--#Custom display of first selected item and (+1 more) pattern -->\r\n <ng-container *ngIf=\"!isOpen\">\r\n <div *ngFor=\"let item of items | slice:0:1\"\r\n class=\"inline-flex items-center\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <ecabs-select-icon [option]=\"option\"></ecabs-select-icon>\r\n <span>\r\n {{ option.label }} <span *ngIf=\"items.length > 1\">\r\n (+{{ items.length - 1 }}\r\n {{ (items?.length === 2 ? otherLabel : othersLabel) }})\r\n </span>\r\n </span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template ng-option-tmp let-item=\"item\" let-item$=\"item$\" let-index=\"index\">\r\n <span class=\"inline-flex items-center\">\r\n <ecabs-checkbox *ngIf=\"multiple\"\r\n [ngModel]=\"item$.selected\"\r\n [name]=\"index\">\r\n </ecabs-checkbox>\r\n <ecabs-select-icon [option]=\"item\"></ecabs-select-icon>\r\n {{ item$?.['label'] }}\r\n </span>\r\n </ng-template>\r\n\r\n <ng-container *ngIf=\"multiple\">\r\n <!--#Add selectAll and individual checkboxes for multiple-enabled list -->\r\n <ng-template ng-optgroup-tmp let-item$=\"item$\" let-index=\"index\">\r\n <ecabs-checkbox [ngModel]=\"item$.selected\"\r\n [name]=\"index\"\r\n [text]=\"selectAllLabel\">\r\n </ecabs-checkbox>\r\n </ng-template>\r\n </ng-container>\r\n </ng-select>\r\n</ecabs-element-wrapper>\r\n" }]
|
|
166
170
|
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
167
171
|
type: Optional
|
|
168
172
|
}, {
|
|
@@ -217,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
217
221
|
}], selectionChange: [{
|
|
218
222
|
type: Output
|
|
219
223
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0LXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QtdjIvZWNhYnMtc2VsZWN0LXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QtdjIvZWNhYnMtc2VsZWN0LXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLE1BQU0sRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLHlCQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQVFoRSxNQUFNLE9BQU8sc0JBQ1gsU0FBUSx5QkFBeUI7SUFpR0s7SUFDbkI7SUE5Rm5CLFFBQVEsQ0FBcUI7SUFHN0IsVUFBVSxHQUE0QixTQUFTLENBQUM7SUFHaEQsUUFBUSxHQUFHLE1BQU0sQ0FBQztJQUdsQixLQUFLLEdBQXNCLEVBQUUsQ0FBQztJQUc5QixTQUFTLEdBQUcsT0FBTyxDQUFDO0lBR3BCLFNBQVMsR0FBRyxPQUFPLENBQUM7SUFHcEIsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0lBRzNCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFHbkIsU0FBUyxHQUFHLElBQUksQ0FBQztJQUdqQixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBR2pCLFlBQVksR0FBRyxlQUFlLENBQUM7SUFH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QVM7K0JBQ0UsaUJBQWlCOzswQkFzR3hCLFFBQVE7OzBCQUFJLElBQUk7cUVBN0ZuQixRQUFRO3NCQURQLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk5QyxVQUFVO3NCQURULEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlHLGVBQWU7c0JBRHZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5nQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOZ1NlbGVjdENvbXBvbmVudCB9IGZyb20gJ0BuZy1zZWxlY3Qvbmctc2VsZWN0JztcblxuaW1wb3J0IHsgZmlsdGVyLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgRWNhYnNFbGVtZW50QmFzZUNvbXBvbmVudCBmcm9tICcuLi9iYXNlL2VsZW1lbnQtYmFzZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9iYXNlL21vZGVscy9zZWxlY3QubW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZWNhYnMtc2VsZWN0LXYyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2VjYWJzLXNlbGVjdC12Mi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2VjYWJzLXNlbGVjdC12Mi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBFY2Fic1NlbGVjdFYyQ29tcG9uZW50PFQgPSB1bmtub3duPlxuICBleHRlbmRzIEVjYWJzRWxlbWVudEJhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXRcbntcbiAgQFZpZXdDaGlsZChOZ1NlbGVjdENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgbmdTZWxlY3QhOiBOZ1NlbGVjdENvbXBvbmVudDtcblxuICBASW5wdXQoKVxuICBhcHBlYXJhbmNlOiAndW5kZXJsaW5lJyB8ICdvdXRsaW5lJyA9ICdvdXRsaW5lJztcblxuICBASW5wdXQoKVxuICBhcHBlbmRUbyA9ICdib2R5JztcblxuICBASW5wdXQoKVxuICBpdGVtczogU2VsZWN0T3B0aW9uPFQ+W10gPSBbXTtcblxuICBASW5wdXQoKVxuICBiaW5kTGFiZWwgPSAnbGFiZWwnO1xuXG4gIEBJbnB1dCgpXG4gIGJpbmRWYWx1ZSA9ICd2YWx1ZSc7XG5cbiAgQElucHV0KClcbiAgZWRpdGFibGVTZWFyY2hUZXJtID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgc2VhcmNoYWJsZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNsZWFyYWJsZSA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBub3RGb3VuZFRleHQgPSAnTm8gZGF0YSBmb3VuZCc7XG5cbiAgQElucHV0KClcbiAgaGlkZVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgY2xlYXJPbkJhY2tzcGFjZSA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGNsZWFyU2VhcmNoT25BZGQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICB0cmFja0J5Rm46ICgoaXRlbTogU2VsZWN0T3B0aW9uPFQ+KSA9PiBUIHwgdW5kZWZpbmVkKSB8IHVuZGVmaW5lZDtcblxuICBASW5wdXQoKVxuICBtaW5MZW5ndGggPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHNlYXJjaFBsYWNlaG9sZGVyID0gJyc7XG5cbiAgQElucHV0KClcbiAgdHlwZWFoZWFkOiBTdWJqZWN0PHN0cmluZz47XG5cbiAgQElucHV0KClcbiAgY2xvc2VPblNlbGVjdCA9IHRydWU7XG5cbiAgQElucHV0KClcbiAgY2xlYXJBbGxUZXh0ID0gJ0NsZWFyIGFsbCc7XG5cbiAgQElucHV0KClcbiAgc2VsZWN0QWxsTGFiZWwgPSAnQWxsJztcblxuICBASW5wdXQoKVxuICBvdGhlckxhYmVsID0gJ090aGVyJztcblxuICBASW5wdXQoKVxuICBvdGhlcnNMYWJlbCA9ICdPdGhlcnMnO1xuXG4gIEBPdXRwdXQoKVxuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFxuICAgIFNlbGVjdE9wdGlvbjxUPiB8IFNlbGVjdE9wdGlvbjxUPltdXG4gID4oKTtcblxuICB2YWw6IFQ7XG4gIGlzT3BlbiA9IGZhbHNlO1xuICBncm91cEJ5S2V5ID0gJ3NlbGVjdEFsbElkZW50aWZpZXInO1xuICBzZWxlY3RlZE11bHRpOiBTZWxlY3RPcHRpb248VD5bXSA9IFtdO1xuICBpdGVtc0xpc3Q6IFNlbGVjdE9wdGlvbjxUPltdID0gW107XG4gIGlzVHlwZUFoZWFkID0gZmFsc2U7XG5cbiAgZ2V0IHZhbHVlKCk6IFQge1xuICAgIHJldHVybiB0aGlzLnZhbDtcbiAgfVxuXG4gIHNldCB2YWx1ZSh2YWw6IFQpIHtcbiAgICBpZiAodmFsICE9PSB1bmRlZmluZWQgJiYgdGhpcy52YWwgIT09IHZhbCkge1xuICAgICAgdGhpcy52YWwgPSB2YWw7XG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIHJlYWRvbmx5IG5nQ29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZjogRGVzdHJveVJlZixcbiAgKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmICh0aGlzLm5nQ29udHJvbCkge1xuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0VHJhY2tCeSgpO1xuXG4gICAgdGhpcy5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXIgfHwgdGhpcy5sYWJlbDtcbiAgICB0aGlzLnNob3dMb2NhbExvYWRpbmcgPSBmYWxzZTsgLy8gaGlkZSBkZWZhdWx0IGxvYWRpbmcgaWNvbiBpbiBFbGVtZW50V3JhcHBlclxuXG4gICAgaWYgKHRoaXMubmdDb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLm5nQ29udHJvbC5jb250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcbiAgICAgIHRoaXMuY29udHJvbD8uc3RhdHVzQ2hhbmdlc1xuICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcblxuICAgIHRoaXMudHlwZWFoZWFkXG4gICAgICA/LnBpcGUoXG4gICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICBmaWx0ZXIoKHRlcm0pID0+ICEhdGVybSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWwpID0+IHtcbiAgICAgICAgdGhpcy5pc1R5cGVBaGVhZCA9ICEhdmFsO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgeyBpdGVtcywgbXVsdGlwbGUgfSA9IGNoYW5nZXMgPz8ge307XG5cbiAgICBpZiAoaXRlbXM/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPVxuICAgICAgICB0aGlzLnZhbCAhPSBudWxsXG4gICAgICAgICAgPyBBcnJheS5pc0FycmF5KHRoaXMudmFsKVxuICAgICAgICAgICAgPyB0aGlzLnZhbFxuICAgICAgICAgICAgOiBbdGhpcy52YWxdXG4gICAgICAgICAgOiBbXTtcbiAgICAgIHRoaXMuaXRlbXNMaXN0ID0gdGhpcy5yZWZyZXNoTXVsdGlwbGVJdGVtcyhcbiAgICAgICAgWy4uLnRoaXMuaXRlbXNdLFxuICAgICAgICBzZWxlY3RlZFZhbHVlcyBhcyBUW10sXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChtdWx0aXBsZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLmNsb3NlT25TZWxlY3QgPSB0aGlzLmNsb3NlT25TZWxlY3QgfHwgZmFsc2U7XG4gICAgICB0aGlzLmNsZWFyU2VhcmNoT25BZGQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnZhbCA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBUKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBvbkJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuaXNUeXBlQWhlYWQgJiZcbiAgICAgICF0aGlzLm5nU2VsZWN0LmlzT3BlbiAmJlxuICAgICAgdGhpcy5zZWxlY3RlZE11bHRpLmxlbmd0aFxuICAgICkge1xuICAgICAgdGhpcy5pdGVtc0xpc3QgPSB0aGlzLnNlbGVjdEFsbEZuKFsuLi50aGlzLnNlbGVjdGVkTXVsdGldKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RBbGxGbihpdGVtczogU2VsZWN0T3B0aW9uPFQ+W10pOiBTZWxlY3RPcHRpb248VD5bXSB7XG4gICAgaWYgKCEhaXRlbXM/Lmxlbmd0aCAmJiB0aGlzLm11bHRpcGxlICYmICF0aGlzLnR5cGVhaGVhZCkge1xuICAgICAgcmV0dXJuIGl0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgLi4uaXRlbSxcbiAgICAgICAgW3RoaXMuZ3JvdXBCeUtleV06ICcnLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBpdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgcmVmcmVzaE11bHRpcGxlSXRlbXMoXG4gICAgaXRlbXM6IFNlbGVjdE9wdGlvbjxUPltdLFxuICAgIHNlbGVjdGVkVmFsdWVzOiBUW10sXG4gICk6IFNlbGVjdE9wdGlvbjxUPltdIHtcbiAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiBzZWxlY3RlZFZhbHVlcz8ubGVuZ3RoKSB7XG4gICAgICBjb25zdCB2YWx1ZXNUb0NoZWNrID0gbmV3IFNldChzZWxlY3RlZFZhbHVlcyk7XG4gICAgICBjb25zdCBzZWxlY3RlZCA9IGl0ZW1zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiB2YWx1ZXNUb0NoZWNrLmhhcyh2YWx1ZSkpO1xuICAgICAgY29uc3QgdW5zZWxlY3RlZCA9IGl0ZW1zLmZpbHRlcigoeyB2YWx1ZSB9KSA9PiAhdmFsdWVzVG9DaGVjay5oYXModmFsdWUpKTtcblxuICAgICAgdGhpcy5zZWxlY3RlZE11bHRpID0gc2VsZWN0ZWQ7XG5cbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdEFsbEZuKFsuLi5zZWxlY3RlZCwgLi4udW5zZWxlY3RlZF0pO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0ZWRNdWx0aSA9IFtdO1xuXG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0QWxsRm4oaXRlbXMpO1xuICB9XG5cbiAgY2hhbmdlZCgkZXZlbnQ6IFNlbGVjdE9wdGlvbjxUPiB8IFNlbGVjdE9wdGlvbjxUPltdKTogdm9pZCB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBBcnJheS5pc0FycmF5KCRldmVudCkgPyAkZXZlbnQgOiBbJGV2ZW50XTtcblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHNlbGVjdGVkLm1hcCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSk7XG4gICAgICB0aGlzLml0ZW1zTGlzdCA9IHRoaXMucmVmcmVzaE11bHRpcGxlSXRlbXMoXG4gICAgICAgIFsuLi50aGlzLml0ZW1zXSxcbiAgICAgICAgc2VsZWN0ZWRWYWx1ZXMsXG4gICAgICApO1xuXG4gICAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLml0ZW1zLmxlbmd0aCkge1xuICAgICAgICB0aGlzLm5nU2VsZWN0LmNsb3NlKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubmdTZWxlY3QuZm9jdXMoKTtcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZE11bHRpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChzZWxlY3RlZFswXSkge1xuICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdChzZWxlY3RlZFswXSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGluaXRUcmFja0J5KCkge1xuICAgIHRoaXMudHJhY2tCeUZuID0gKGl0ZW06IFNlbGVjdE9wdGlvbjxUPikgPT4ge1xuICAgICAgcmV0dXJuIGl0ZW0/LnZhbHVlO1xuICAgIH07XG4gIH1cbn1cbiIsIjxlY2Ficy1lbGVtZW50LXdyYXBwZXIgW2RhdGFdPVwiZ2V0RGF0YSgpXCI+XG4gIDxuZy1zZWxlY3QgY2xhc3M9XCJmb3JtLWZpZWxkX19zZWxlY3RcIlxuICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxuICAgICAgICAgICAgIFthcHBlbmRUb109XCJhcHBlbmRUb1wiXG4gICAgICAgICAgICAgW2xhYmVsRm9ySWRdPVwibmFtZVwiXG4gICAgICAgICAgICAgW2JpbmRMYWJlbF09XCJiaW5kTGFiZWwgfHwgbnVsbFwiXG4gICAgICAgICAgICAgW2JpbmRWYWx1ZV09XCJiaW5kVmFsdWUgfHwgbnVsbFwiXG4gICAgICAgICAgICAgW3NlYXJjaGFibGVdPVwic2VhcmNoYWJsZVwiXG4gICAgICAgICAgICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxuICAgICAgICAgICAgIFtjbGVhclNlYXJjaE9uQWRkXT1cImNsZWFyU2VhcmNoT25BZGRcIlxuICAgICAgICAgICAgIFtncm91cEJ5XT1cImdyb3VwQnlLZXlcIlxuICAgICAgICAgICAgIFtzZWxlY3RhYmxlR3JvdXBdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgW3NlbGVjdGFibGVHcm91cEFzTW9kZWxdPVwiZmFsc2VcIlxuICAgICAgICAgICAgIFtpdGVtc109XCJpdGVtc0xpc3RcIlxuICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgICAgICAgICAgW2hpZGVTZWxlY3RlZF09XCJoaWRlU2VsZWN0ZWRcIlxuICAgICAgICAgICAgIFt0cmFja0J5Rm5dPVwidHJhY2tCeUZuXCJcbiAgICAgICAgICAgICBbbWluVGVybUxlbmd0aF09XCJtaW5MZW5ndGhcIlxuICAgICAgICAgICAgIFt0eXBlVG9TZWFyY2hUZXh0XT1cInNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICAgICBbdHlwZWFoZWFkXT1cInR5cGVhaGVhZFwiXG4gICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXG4gICAgICAgICAgICAgW2Nsb3NlT25TZWxlY3RdPVwiY2xvc2VPblNlbGVjdFwiXG4gICAgICAgICAgICAgW2NsZWFyT25CYWNrc3BhY2VdPVwiY2xlYXJPbkJhY2tzcGFjZVwiXG4gICAgICAgICAgICAgW2VkaXRhYmxlU2VhcmNoVGVybV09XCJlZGl0YWJsZVNlYXJjaFRlcm1cIlxuICAgICAgICAgICAgIChvcGVuKT1cInRoaXMuaXNPcGVuID0gdHJ1ZVwiXG4gICAgICAgICAgICAgKGNsb3NlKT1cInRoaXMuaXNPcGVuID0gZmFsc2VcIlxuICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgICAgICBbbm90Rm91bmRUZXh0XT1cIm5vdEZvdW5kVGV4dFwiXG4gICAgICAgICAgICAgW2NsZWFyQWxsVGV4dF09XCJjbGVhckFsbFRleHRcIlxuICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0aGlzLmRpc2FibGVkXCI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXR5cGVhaGVhZFwiPlxuICAgICAgPG5nLW9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtc0xpc3RcIiBbdmFsdWVdPVwiaXRlbT8udmFsdWVcIj5cbiAgICAgICAge3sgaXRlbT8ubGFiZWwgfX1cbiAgICAgIDwvbmctb3B0aW9uPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlIG5nLWxvYWRpbmdzcGlubmVyLXRtcD5cbiAgICAgIDxlY2Ficy1sb2FkaW5nLXNwaW5uZXIgc2l6ZT1cInRpbnlcIj48L2VjYWJzLWxvYWRpbmctc3Bpbm5lcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEhYmluZFZhbHVlICYmICEhYmluZExhYmVsXCI+XG4gICAgICA8bmctdGVtcGxhdGUgbmctbXVsdGktbGFiZWwtdG1wIGxldC1pdGVtcz1cIml0ZW1zXCI+XG4gICAgICAgIDwhLS0jQ3VzdG9tIGRpc3BsYXkgb2YgZmlyc3Qgc2VsZWN0ZWQgaXRlbSBhbmQgKCsxIG1vcmUpIHBhdHRlcm4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNPcGVuXCI+XG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyB8IHNsaWNlOjA6MVwiPlxuICAgICAgICAgICAge3sgaXRlbT8uWydsYWJlbCddIH19IDxzcGFuICpuZ0lmPVwiaXRlbXMubGVuZ3RoID4gMVwiPlxuICAgICAgICAgICAgKCt7eyBpdGVtcy5sZW5ndGggLSAxIH19XG4gICAgICAgICAgICB7eyAoaXRlbXM/Lmxlbmd0aCA9PT0gMiA/IG90aGVyTGFiZWwgOiBvdGhlcnNMYWJlbCkgfX0pXG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXBsZVwiPlxuICAgICAgPCEtLSNBZGQgc2VsZWN0QWxsIGFuZCBpbmRpdmlkdWFsIGNoZWNrYm94ZXMgZm9yIG11bHRpcGxlLWVuYWJsZWQgbGlzdCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRncm91cC10bXAgbGV0LWl0ZW0kPVwiaXRlbSRcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgICAgICA8ZWNhYnMtY2hlY2tib3ggW25nTW9kZWxdPVwiaXRlbSQuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwic2VsZWN0QWxsTGFiZWxcIj5cbiAgICAgICAgPC9lY2Ficy1jaGVja2JveD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtJD1cIml0ZW0kXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAgPGVjYWJzLWNoZWNrYm94IFtuZ01vZGVsXT1cIml0ZW0kLnNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImluZGV4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cIml0ZW0kPy5bJ2xhYmVsJ11cIj5cbiAgICAgICAgPC9lY2Ficy1jaGVja2JveD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctc2VsZWN0PlxuPC9lY2Ficy1lbGVtZW50LXdyYXBwZXI+XG4iXX0=
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNhYnMtc2VsZWN0LXYyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QtdjIvZWNhYnMtc2VsZWN0LXYyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VjYWJzLWNvbXBvbmVudHMvc3JjL2xpYi9lY2Ficy1zZWxlY3QtdjIvZWNhYnMtc2VsZWN0LXYyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLElBQUksRUFFSixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFNdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLE1BQU0sRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLHlCQUF5QixNQUFNLHNCQUFzQixDQUFDO0FBQzdELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7Ozs7QUFRaEUsTUFBTSxPQUFPLHNCQUNYLFNBQVEseUJBQXlCO0lBaUdLO0lBQ25CO0lBOUZuQixRQUFRLENBQXFCO0lBRzdCLFVBQVUsR0FBNEIsU0FBUyxDQUFDO0lBR2hELFFBQVEsR0FBRyxNQUFNLENBQUM7SUFHbEIsS0FBSyxHQUFzQixFQUFFLENBQUM7SUFHOUIsU0FBUyxHQUFHLE9BQU8sQ0FBQztJQUdwQixTQUFTLEdBQUcsT0FBTyxDQUFDO0lBR3BCLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJQUczQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBR25CLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFHakIsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUdqQixZQUFZLEdBQUcsZUFBZSxDQUFDO0lB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d0JBSXRCLGlCQUFpQiwwR0NuQzlCLHl2SEF5RkE7OzRGRDFEYSxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsaUJBQWlCOzswQkFzR3hCLFFBQVE7OzBCQUFJLElBQUk7cUVBN0ZuQixRQUFRO3NCQURQLFNBQVM7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUk5QyxVQUFVO3NCQURULEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sU0FBUztzQkFEUixLQUFLO2dCQUlOLFFBQVE7c0JBRFAsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixTQUFTO3NCQURSLEtBQUs7Z0JBSU4saUJBQWlCO3NCQURoQixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sV0FBVztzQkFEVixLQUFLO2dCQUlHLGVBQWU7c0JBRHZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ29tcG9uZW50LFxyXG4gIERlc3Ryb3lSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgT3V0cHV0LFxyXG4gIFNlbGYsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXHJcbiAgTmdDb250cm9sLFxyXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcclxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnQG5nLXNlbGVjdC9uZy1zZWxlY3QnO1xyXG5cclxuaW1wb3J0IHsgZmlsdGVyLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCBFY2Fic0VsZW1lbnRCYXNlQ29tcG9uZW50IGZyb20gJy4uL2Jhc2UvZWxlbWVudC1iYXNlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBTZWxlY3RPcHRpb24gfSBmcm9tICcuLi9iYXNlL21vZGVscy9zZWxlY3QubW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWNhYnMtc2VsZWN0LXYyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZWNhYnMtc2VsZWN0LXYyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9lY2Ficy1zZWxlY3QtdjIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVjYWJzU2VsZWN0VjJDb21wb25lbnQ8VCA9IHVua25vd24+XHJcbiAgZXh0ZW5kcyBFY2Fic0VsZW1lbnRCYXNlQ29tcG9uZW50XHJcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBPbkluaXRcclxue1xyXG4gIEBWaWV3Q2hpbGQoTmdTZWxlY3RDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXHJcbiAgbmdTZWxlY3QhOiBOZ1NlbGVjdENvbXBvbmVudDtcclxuXHJcbiAgQElucHV0KClcclxuICBhcHBlYXJhbmNlOiAndW5kZXJsaW5lJyB8ICdvdXRsaW5lJyA9ICdvdXRsaW5lJztcclxuXHJcbiAgQElucHV0KClcclxuICBhcHBlbmRUbyA9ICdib2R5JztcclxuXHJcbiAgQElucHV0KClcclxuICBpdGVtczogU2VsZWN0T3B0aW9uPFQ+W10gPSBbXTtcclxuXHJcbiAgQElucHV0KClcclxuICBiaW5kTGFiZWwgPSAnbGFiZWwnO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGJpbmRWYWx1ZSA9ICd2YWx1ZSc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZWRpdGFibGVTZWFyY2hUZXJtID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VhcmNoYWJsZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNsZWFyYWJsZSA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgbXVsdGlwbGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBub3RGb3VuZFRleHQgPSAnTm8gZGF0YSBmb3VuZCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgaGlkZVNlbGVjdGVkID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2xlYXJPbkJhY2tzcGFjZSA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGNsZWFyU2VhcmNoT25BZGQgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICB0cmFja0J5Rm46ICgoaXRlbTogU2VsZWN0T3B0aW9uPFQ+KSA9PiBUIHwgdW5kZWZpbmVkKSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgQElucHV0KClcclxuICBtaW5MZW5ndGggPSAwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHNlYXJjaFBsYWNlaG9sZGVyID0gJyc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdHlwZWFoZWFkOiBTdWJqZWN0PHN0cmluZz47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2xvc2VPblNlbGVjdCA9IHRydWU7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgY2xlYXJBbGxUZXh0ID0gJ0NsZWFyIGFsbCc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2VsZWN0QWxsTGFiZWwgPSAnQWxsJztcclxuXHJcbiAgQElucHV0KClcclxuICBvdGhlckxhYmVsID0gJ090aGVyJztcclxuXHJcbiAgQElucHV0KClcclxuICBvdGhlcnNMYWJlbCA9ICdPdGhlcnMnO1xyXG5cclxuICBAT3V0cHV0KClcclxuICByZWFkb25seSBzZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFxyXG4gICAgU2VsZWN0T3B0aW9uPFQ+IHwgU2VsZWN0T3B0aW9uPFQ+W11cclxuICA+KCk7XHJcblxyXG4gIHZhbDogVDtcclxuICBpc09wZW4gPSBmYWxzZTtcclxuICBncm91cEJ5S2V5ID0gJ3NlbGVjdEFsbElkZW50aWZpZXInO1xyXG4gIHNlbGVjdGVkTXVsdGk6IFNlbGVjdE9wdGlvbjxUPltdID0gW107XHJcbiAgaXRlbXNMaXN0OiBTZWxlY3RPcHRpb248VD5bXSA9IFtdO1xyXG4gIGlzVHlwZUFoZWFkID0gZmFsc2U7XHJcblxyXG4gIGdldCB2YWx1ZSgpOiBUIHtcclxuICAgIHJldHVybiB0aGlzLnZhbDtcclxuICB9XHJcblxyXG4gIHNldCB2YWx1ZSh2YWw6IFQpIHtcclxuICAgIGlmICh2YWwgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnZhbCAhPT0gdmFsKSB7XHJcbiAgICAgIHRoaXMudmFsID0gdmFsO1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgcHVibGljIHJlYWRvbmx5IG5nQ29udHJvbDogTmdDb250cm9sLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmOiBEZXN0cm95UmVmLFxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuXHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5uZ0NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5pdFRyYWNrQnkoKTtcclxuXHJcbiAgICB0aGlzLnBsYWNlaG9sZGVyID0gdGhpcy5wbGFjZWhvbGRlciB8fCB0aGlzLmxhYmVsO1xyXG4gICAgdGhpcy5zaG93TG9jYWxMb2FkaW5nID0gZmFsc2U7IC8vIGhpZGUgZGVmYXVsdCBsb2FkaW5nIGljb24gaW4gRWxlbWVudFdyYXBwZXJcclxuXHJcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5uZ0NvbnRyb2wuY29udHJvbCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgICAgIHRoaXMuY29udHJvbD8uc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVEaXNhYmxlZFN0YXRlKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZURpc2FibGVkU3RhdGUoKTtcclxuXHJcbiAgICB0aGlzLnR5cGVhaGVhZFxyXG4gICAgICA/LnBpcGUoXHJcbiAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXHJcbiAgICAgICAgZmlsdGVyKCh0ZXJtKSA9PiAhIXRlcm0pLFxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaXNUeXBlQWhlYWQgPSAhIXZhbDtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IGl0ZW1zLCBtdWx0aXBsZSB9ID0gY2hhbmdlcyA/PyB7fTtcclxuXHJcbiAgICBpZiAoaXRlbXM/LmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9XHJcbiAgICAgICAgdGhpcy52YWwgIT0gbnVsbFxyXG4gICAgICAgICAgPyBBcnJheS5pc0FycmF5KHRoaXMudmFsKVxyXG4gICAgICAgICAgICA/IHRoaXMudmFsXHJcbiAgICAgICAgICAgIDogW3RoaXMudmFsXVxyXG4gICAgICAgICAgOiBbXTtcclxuICAgICAgdGhpcy5pdGVtc0xpc3QgPSB0aGlzLnJlZnJlc2hNdWx0aXBsZUl0ZW1zKFxyXG4gICAgICAgIFsuLi50aGlzLml0ZW1zXSxcclxuICAgICAgICBzZWxlY3RlZFZhbHVlcyBhcyBUW10sXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG11bHRpcGxlPy5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgdGhpcy5jbG9zZU9uU2VsZWN0ID0gdGhpcy5jbG9zZU9uU2VsZWN0IHx8IGZhbHNlO1xyXG4gICAgICB0aGlzLmNsZWFyU2VhcmNoT25BZGQgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogVCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWwgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogVCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IFQpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgb25CbHVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQoKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuaXNUeXBlQWhlYWQgJiZcclxuICAgICAgIXRoaXMubmdTZWxlY3QuaXNPcGVuICYmXHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRNdWx0aS5sZW5ndGhcclxuICAgICkge1xyXG4gICAgICB0aGlzLml0ZW1zTGlzdCA9IHRoaXMuc2VsZWN0QWxsRm4oWy4uLnRoaXMuc2VsZWN0ZWRNdWx0aV0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2VsZWN0QWxsRm4oaXRlbXM6IFNlbGVjdE9wdGlvbjxUPltdKTogU2VsZWN0T3B0aW9uPFQ+W10ge1xyXG4gICAgaWYgKCEhaXRlbXM/Lmxlbmd0aCAmJiB0aGlzLm11bHRpcGxlICYmICF0aGlzLnR5cGVhaGVhZCkge1xyXG4gICAgICByZXR1cm4gaXRlbXMubWFwKChpdGVtKSA9PiAoe1xyXG4gICAgICAgIC4uLml0ZW0sXHJcbiAgICAgICAgW3RoaXMuZ3JvdXBCeUtleV06ICcnLFxyXG4gICAgICB9KSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWZyZXNoTXVsdGlwbGVJdGVtcyhcclxuICAgIGl0ZW1zOiBTZWxlY3RPcHRpb248VD5bXSxcclxuICAgIHNlbGVjdGVkVmFsdWVzOiBUW10sXHJcbiAgKTogU2VsZWN0T3B0aW9uPFQ+W10ge1xyXG4gICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgc2VsZWN0ZWRWYWx1ZXM/Lmxlbmd0aCkge1xyXG4gICAgICBjb25zdCB2YWx1ZXNUb0NoZWNrID0gbmV3IFNldChzZWxlY3RlZFZhbHVlcyk7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXRlbXMuZmlsdGVyKCh7IHZhbHVlIH0pID0+IHZhbHVlc1RvQ2hlY2suaGFzKHZhbHVlKSk7XHJcbiAgICAgIGNvbnN0IHVuc2VsZWN0ZWQgPSBpdGVtcy5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gIXZhbHVlc1RvQ2hlY2suaGFzKHZhbHVlKSk7XHJcblxyXG4gICAgICB0aGlzLnNlbGVjdGVkTXVsdGkgPSBzZWxlY3RlZDtcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLnNlbGVjdEFsbEZuKFsuLi5zZWxlY3RlZCwgLi4udW5zZWxlY3RlZF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRNdWx0aSA9IFtdO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnNlbGVjdEFsbEZuKGl0ZW1zKTtcclxuICB9XHJcblxyXG4gIGNoYW5nZWQoJGV2ZW50OiBTZWxlY3RPcHRpb248VD4gfCBTZWxlY3RPcHRpb248VD5bXSk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0ZWQgPSBBcnJheS5pc0FycmF5KCRldmVudCkgPyAkZXZlbnQgOiBbJGV2ZW50XTtcclxuXHJcbiAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xyXG4gICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IHNlbGVjdGVkLm1hcCgoeyB2YWx1ZSB9KSA9PiB2YWx1ZSk7XHJcbiAgICAgIHRoaXMuaXRlbXNMaXN0ID0gdGhpcy5yZWZyZXNoTXVsdGlwbGVJdGVtcyhcclxuICAgICAgICBbLi4udGhpcy5pdGVtc10sXHJcbiAgICAgICAgc2VsZWN0ZWRWYWx1ZXMsXHJcbiAgICAgICk7XHJcblxyXG4gICAgICBpZiAoc2VsZWN0ZWQubGVuZ3RoID09PSB0aGlzLml0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMubmdTZWxlY3QuY2xvc2UoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5uZ1NlbGVjdC5mb2N1cygpO1xyXG4gICAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRNdWx0aSk7XHJcblxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHNlbGVjdGVkWzBdKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoc2VsZWN0ZWRbMF0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXNPcHRpb24oaXRlbTogdW5rbm93bik6IFNlbGVjdE9wdGlvbjxUPiB7XHJcbiAgICByZXR1cm4gaXRlbSBhcyBTZWxlY3RPcHRpb248VD47XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaW5pdFRyYWNrQnkoKSB7XHJcbiAgICB0aGlzLnRyYWNrQnlGbiA9IChpdGVtOiBTZWxlY3RPcHRpb248VD4pID0+IHtcclxuICAgICAgcmV0dXJuIGl0ZW0/LnZhbHVlO1xyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIiwiPGVjYWJzLWVsZW1lbnQtd3JhcHBlciBbZGF0YV09XCJnZXREYXRhKClcIj5cclxuICA8bmctc2VsZWN0IGNsYXNzPVwiZm9ybS1maWVsZF9fc2VsZWN0XCJcclxuICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIlxyXG4gICAgICAgICAgICAgW2FwcGVuZFRvXT1cImFwcGVuZFRvXCJcclxuICAgICAgICAgICAgIFtsYWJlbEZvcklkXT1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgW2JpbmRMYWJlbF09XCJiaW5kTGFiZWwgfHwgbnVsbFwiXHJcbiAgICAgICAgICAgICBbYmluZFZhbHVlXT1cImJpbmRWYWx1ZSB8fCBudWxsXCJcclxuICAgICAgICAgICAgIFtzZWFyY2hhYmxlXT1cInNlYXJjaGFibGVcIlxyXG4gICAgICAgICAgICAgW2NsZWFyYWJsZV09XCJjbGVhcmFibGVcIlxyXG4gICAgICAgICAgICAgW2NsZWFyU2VhcmNoT25BZGRdPVwiY2xlYXJTZWFyY2hPbkFkZFwiXHJcbiAgICAgICAgICAgICBbZ3JvdXBCeV09XCJncm91cEJ5S2V5XCJcclxuICAgICAgICAgICAgIFtzZWxlY3RhYmxlR3JvdXBdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICBbc2VsZWN0YWJsZUdyb3VwQXNNb2RlbF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICBbaXRlbXNdPVwiaXRlbXNMaXN0XCJcclxuICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXHJcbiAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXHJcbiAgICAgICAgICAgICBbaGlkZVNlbGVjdGVkXT1cImhpZGVTZWxlY3RlZFwiXHJcbiAgICAgICAgICAgICBbdHJhY2tCeUZuXT1cInRyYWNrQnlGblwiXHJcbiAgICAgICAgICAgICBbbWluVGVybUxlbmd0aF09XCJtaW5MZW5ndGhcIlxyXG4gICAgICAgICAgICAgW3R5cGVUb1NlYXJjaFRleHRdPVwic2VhcmNoUGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgW3R5cGVhaGVhZF09XCJ0eXBlYWhlYWRcIlxyXG4gICAgICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZ1wiXHJcbiAgICAgICAgICAgICBbY2xvc2VPblNlbGVjdF09XCJjbG9zZU9uU2VsZWN0XCJcclxuICAgICAgICAgICAgIFtjbGVhck9uQmFja3NwYWNlXT1cImNsZWFyT25CYWNrc3BhY2VcIlxyXG4gICAgICAgICAgICAgW2VkaXRhYmxlU2VhcmNoVGVybV09XCJlZGl0YWJsZVNlYXJjaFRlcm1cIlxyXG4gICAgICAgICAgICAgKG9wZW4pPVwidGhpcy5pc09wZW4gPSB0cnVlXCJcclxuICAgICAgICAgICAgIChjbG9zZSk9XCJ0aGlzLmlzT3BlbiA9IGZhbHNlXCJcclxuICAgICAgICAgICAgIChjaGFuZ2UpPVwiY2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIFtub3RGb3VuZFRleHRdPVwibm90Rm91bmRUZXh0XCJcclxuICAgICAgICAgICAgIFtjbGVhckFsbFRleHRdPVwiY2xlYXJBbGxUZXh0XCJcclxuICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0aGlzLmRpc2FibGVkXCI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIG5nLWxvYWRpbmdzcGlubmVyLXRtcD5cclxuICAgICAgPGVjYWJzLWxvYWRpbmctc3Bpbm5lciBzaXplPVwidGlueVwiPjwvZWNhYnMtbG9hZGluZy1zcGlubmVyPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW11bHRpcGxlXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWxhYmVsPVwibGFiZWxcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgPGVjYWJzLXNlbGVjdC1pY29uIFtvcHRpb25dPVwiaXRlbVwiPjwvZWNhYnMtc2VsZWN0LWljb24+XHJcbiAgICAgICAgICB7eyBsYWJlbCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhIWJpbmRWYWx1ZSAmJiAhIWJpbmRMYWJlbFwiPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbmctbXVsdGktbGFiZWwtdG1wIGxldC1pdGVtcz1cIml0ZW1zXCI+XHJcbiAgICAgICAgPCEtLSNDdXN0b20gZGlzcGxheSBvZiBmaXJzdCBzZWxlY3RlZCBpdGVtIGFuZCAoKzEgbW9yZSkgcGF0dGVybiAtLT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzT3BlblwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcyB8IHNsaWNlOjA6MVwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc09wdGlvbihpdGVtKSBhcyBvcHRpb25cIj5cclxuICAgICAgICAgICAgICA8ZWNhYnMtc2VsZWN0LWljb24gW29wdGlvbl09XCJvcHRpb25cIj48L2VjYWJzLXNlbGVjdC1pY29uPlxyXG4gICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAge3sgb3B0aW9uLmxhYmVsIH19IDxzcGFuICpuZ0lmPVwiaXRlbXMubGVuZ3RoID4gMVwiPlxyXG4gICAgICAgICAgICAgICAgKCt7eyBpdGVtcy5sZW5ndGggLSAxIH19XHJcbiAgICAgICAgICAgICAgICB7eyAoaXRlbXM/Lmxlbmd0aCA9PT0gMiA/IG90aGVyTGFiZWwgOiBvdGhlcnNMYWJlbCkgfX0pXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlIG5nLW9wdGlvbi10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWl0ZW0kPVwiaXRlbSRcIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxlY2Ficy1jaGVja2JveCAqbmdJZj1cIm11bHRpcGxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiaXRlbSQuc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJpbmRleFwiPlxyXG4gICAgICAgIDwvZWNhYnMtY2hlY2tib3g+XHJcbiAgICAgICAgPGVjYWJzLXNlbGVjdC1pY29uIFtvcHRpb25dPVwiaXRlbVwiPjwvZWNhYnMtc2VsZWN0LWljb24+XHJcbiAgICAgICAge3sgaXRlbSQ/LlsnbGFiZWwnXSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aXBsZVwiPlxyXG4gICAgICA8IS0tI0FkZCBzZWxlY3RBbGwgYW5kIGluZGl2aWR1YWwgY2hlY2tib3hlcyBmb3IgbXVsdGlwbGUtZW5hYmxlZCBsaXN0IC0tPlxyXG4gICAgICA8bmctdGVtcGxhdGUgbmctb3B0Z3JvdXAtdG1wIGxldC1pdGVtJD1cIml0ZW0kXCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cclxuICAgICAgICA8ZWNhYnMtY2hlY2tib3ggW25nTW9kZWxdPVwiaXRlbSQuc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmFtZV09XCJpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cInNlbGVjdEFsbExhYmVsXCI+XHJcbiAgICAgICAgPC9lY2Ficy1jaGVja2JveD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctc2VsZWN0PlxyXG48L2VjYWJzLWVsZW1lbnQtd3JhcHBlcj5cclxuIl19
|