@angular/material 13.0.0-rc.0 → 13.0.0
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/autocomplete/autocomplete_public_index.d.ts +4 -0
- package/autocomplete/index.d.ts +5 -1
- package/autocomplete/package.json +2 -2
- package/autocomplete/testing/autocomplete-harness.d.ts +4 -4
- package/badge/badge_public_index.d.ts +4 -0
- package/badge/index.d.ts +5 -1
- package/badge/package.json +2 -2
- package/bottom-sheet/bottom-sheet_public_index.d.ts +4 -0
- package/bottom-sheet/index.d.ts +5 -1
- package/bottom-sheet/package.json +2 -2
- package/button/button_public_index.d.ts +4 -0
- package/button/index.d.ts +5 -1
- package/button/package.json +2 -2
- package/button-toggle/button-toggle_public_index.d.ts +4 -0
- package/button-toggle/index.d.ts +5 -1
- package/button-toggle/package.json +2 -2
- package/card/card_public_index.d.ts +4 -0
- package/card/index.d.ts +5 -1
- package/card/package.json +2 -2
- package/checkbox/checkbox_public_index.d.ts +4 -0
- package/checkbox/index.d.ts +5 -1
- package/checkbox/package.json +2 -2
- package/chips/chips_public_index.d.ts +4 -0
- package/chips/index.d.ts +5 -1
- package/chips/package.json +2 -2
- package/core/common-behaviors/index.d.ts +1 -1
- package/core/core_public_index.d.ts +4 -0
- package/core/index.d.ts +5 -1
- package/core/package.json +2 -2
- package/datepicker/datepicker_public_index.d.ts +4 -0
- package/datepicker/index.d.ts +5 -1
- package/datepicker/package.json +2 -2
- package/dialog/dialog_public_index.d.ts +4 -0
- package/dialog/index.d.ts +5 -1
- package/dialog/package.json +2 -2
- package/divider/divider_public_index.d.ts +4 -0
- package/divider/index.d.ts +5 -1
- package/divider/package.json +2 -2
- package/esm2020/autocomplete/autocomplete-module.mjs +6 -19
- package/esm2020/autocomplete/autocomplete-origin.mjs +7 -7
- package/esm2020/autocomplete/autocomplete-trigger.mjs +36 -31
- package/esm2020/autocomplete/autocomplete.mjs +15 -15
- package/esm2020/autocomplete/autocomplete_public_index.mjs +5 -0
- package/esm2020/autocomplete/index.mjs +6 -2
- package/esm2020/autocomplete/testing/autocomplete-harness.mjs +7 -8
- package/esm2020/badge/badge-module.mjs +6 -13
- package/esm2020/badge/badge.mjs +16 -8
- package/esm2020/badge/badge_public_index.mjs +5 -0
- package/esm2020/badge/index.mjs +6 -2
- package/esm2020/badge/testing/badge-harness.mjs +2 -3
- package/esm2020/bottom-sheet/bottom-sheet-animations.mjs +2 -2
- package/esm2020/bottom-sheet/bottom-sheet-container.mjs +8 -6
- package/esm2020/bottom-sheet/bottom-sheet-module.mjs +6 -16
- package/esm2020/bottom-sheet/bottom-sheet-ref.mjs +10 -4
- package/esm2020/bottom-sheet/bottom-sheet.mjs +12 -11
- package/esm2020/bottom-sheet/bottom-sheet_public_index.mjs +5 -0
- package/esm2020/bottom-sheet/index.mjs +6 -2
- package/esm2020/bottom-sheet/testing/bottom-sheet-harness.mjs +1 -1
- package/esm2020/button/button-module.mjs +8 -25
- package/esm2020/button/button.mjs +7 -7
- package/esm2020/button/button_public_index.mjs +5 -0
- package/esm2020/button/index.mjs +6 -2
- package/esm2020/button/public-api.mjs +1 -1
- package/esm2020/button/testing/button-harness.mjs +2 -3
- package/esm2020/button-toggle/button-toggle-module.mjs +5 -5
- package/esm2020/button-toggle/button-toggle.mjs +31 -19
- package/esm2020/button-toggle/button-toggle_public_index.mjs +5 -0
- package/esm2020/button-toggle/index.mjs +6 -2
- package/esm2020/button-toggle/public-api.mjs +1 -1
- package/esm2020/button-toggle/testing/button-toggle-group-harness-filters.mjs +1 -1
- package/esm2020/button-toggle/testing/button-toggle-group-harness.mjs +3 -3
- package/esm2020/button-toggle/testing/button-toggle-harness.mjs +2 -2
- package/esm2020/card/card-module.mjs +32 -10
- package/esm2020/card/card.mjs +56 -56
- package/esm2020/card/card_public_index.mjs +5 -0
- package/esm2020/card/index.mjs +6 -2
- package/esm2020/card/public-api.mjs +1 -1
- package/esm2020/card/testing/card-harness.mjs +1 -1
- package/esm2020/checkbox/checkbox-config.mjs +2 -2
- package/esm2020/checkbox/checkbox-module.mjs +10 -16
- package/esm2020/checkbox/checkbox-required-validator.mjs +7 -7
- package/esm2020/checkbox/checkbox.mjs +35 -17
- package/esm2020/checkbox/checkbox_public_index.mjs +5 -0
- package/esm2020/checkbox/index.mjs +6 -2
- package/esm2020/checkbox/public-api.mjs +1 -1
- package/esm2020/checkbox/testing/checkbox-harness.mjs +3 -3
- package/esm2020/chips/chip-default-options.mjs +1 -1
- package/esm2020/chips/chip-input.mjs +21 -11
- package/esm2020/chips/chip-list.mjs +32 -17
- package/esm2020/chips/chip-text-control.mjs +1 -1
- package/esm2020/chips/chip.mjs +40 -31
- package/esm2020/chips/chips-module.mjs +12 -12
- package/esm2020/chips/chips_public_index.mjs +5 -0
- package/esm2020/chips/index.mjs +6 -2
- package/esm2020/chips/testing/chip-harness.mjs +2 -2
- package/esm2020/chips/testing/chip-input-harness.mjs +2 -2
- package/esm2020/chips/testing/chip-list-harness.mjs +5 -5
- package/esm2020/chips/testing/chip-listbox-harness.mjs +1 -1
- package/esm2020/chips/testing/chip-option-harness.mjs +1 -1
- package/esm2020/core/animation/animation.mjs +1 -1
- package/esm2020/core/common-behaviors/color.mjs +4 -2
- package/esm2020/core/common-behaviors/common-module.mjs +14 -9
- package/esm2020/core/common-behaviors/constructor.mjs +1 -1
- package/esm2020/core/common-behaviors/disable-ripple.mjs +7 -3
- package/esm2020/core/common-behaviors/disabled.mjs +7 -3
- package/esm2020/core/common-behaviors/error-state.mjs +1 -1
- package/esm2020/core/common-behaviors/index.mjs +1 -1
- package/esm2020/core/common-behaviors/initialized.mjs +1 -1
- package/esm2020/core/common-behaviors/tabindex.mjs +4 -2
- package/esm2020/core/core_public_index.mjs +5 -0
- package/esm2020/core/datetime/date-adapter.mjs +4 -4
- package/esm2020/core/datetime/date-formats.mjs +1 -1
- package/esm2020/core/datetime/index.mjs +10 -14
- package/esm2020/core/datetime/native-date-adapter.mjs +6 -6
- package/esm2020/core/datetime/native-date-formats.mjs +2 -2
- package/esm2020/core/error/error-options.mjs +7 -7
- package/esm2020/core/index.mjs +6 -2
- package/esm2020/core/line/line.mjs +10 -10
- package/esm2020/core/option/index.mjs +6 -6
- package/esm2020/core/option/optgroup.mjs +8 -8
- package/esm2020/core/option/option-parent.mjs +1 -1
- package/esm2020/core/option/option.mjs +22 -12
- package/esm2020/core/ripple/index.mjs +5 -5
- package/esm2020/core/ripple/ripple-ref.mjs +1 -1
- package/esm2020/core/ripple/ripple-renderer.mjs +8 -8
- package/esm2020/core/ripple/ripple.mjs +13 -9
- package/esm2020/core/selection/index.mjs +6 -6
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +4 -4
- package/esm2020/core/testing/optgroup-harness.mjs +2 -3
- package/esm2020/core/testing/option-harness.mjs +2 -2
- package/esm2020/core/version.mjs +1 -1
- package/esm2020/datepicker/calendar-body.mjs +11 -7
- package/esm2020/datepicker/calendar.mjs +46 -32
- package/esm2020/datepicker/date-range-input-parts.mjs +31 -28
- package/esm2020/datepicker/date-range-input.mjs +26 -15
- package/esm2020/datepicker/date-range-picker.mjs +5 -5
- package/esm2020/datepicker/date-range-selection-strategy.mjs +4 -4
- package/esm2020/datepicker/date-selection-model.mjs +15 -14
- package/esm2020/datepicker/datepicker-actions.mjs +13 -13
- package/esm2020/datepicker/datepicker-animations.mjs +6 -6
- package/esm2020/datepicker/datepicker-base.mjs +42 -39
- package/esm2020/datepicker/datepicker-errors.mjs +1 -1
- package/esm2020/datepicker/datepicker-input-base.mjs +23 -18
- package/esm2020/datepicker/datepicker-input.mjs +18 -12
- package/esm2020/datepicker/datepicker-intl.mjs +4 -4
- package/esm2020/datepicker/datepicker-module.mjs +9 -18
- package/esm2020/datepicker/datepicker-toggle.mjs +15 -14
- package/esm2020/datepicker/datepicker.mjs +5 -5
- package/esm2020/datepicker/datepicker_public_index.mjs +5 -0
- package/esm2020/datepicker/index.mjs +6 -2
- package/esm2020/datepicker/month-view.mjs +40 -26
- package/esm2020/datepicker/multi-year-view.mjs +29 -19
- package/esm2020/datepicker/testing/calendar-cell-harness.mjs +1 -1
- package/esm2020/datepicker/testing/calendar-harness.mjs +1 -1
- package/esm2020/datepicker/testing/date-range-input-harness.mjs +4 -5
- package/esm2020/datepicker/testing/datepicker-input-harness-base.mjs +4 -4
- package/esm2020/datepicker/testing/datepicker-input-harness.mjs +1 -1
- package/esm2020/datepicker/testing/datepicker-toggle-harness.mjs +1 -1
- package/esm2020/datepicker/testing/datepicker-trigger-harness-base.mjs +2 -2
- package/esm2020/datepicker/year-view.mjs +32 -19
- package/esm2020/dialog/dialog-animations.mjs +2 -2
- package/esm2020/dialog/dialog-config.mjs +1 -1
- package/esm2020/dialog/dialog-container.mjs +14 -11
- package/esm2020/dialog/dialog-content-directives.mjs +16 -16
- package/esm2020/dialog/dialog-module.mjs +8 -24
- package/esm2020/dialog/dialog-ref.mjs +10 -5
- package/esm2020/dialog/dialog.mjs +25 -22
- package/esm2020/dialog/dialog_public_index.mjs +5 -0
- package/esm2020/dialog/index.mjs +6 -2
- package/esm2020/dialog/testing/dialog-harness.mjs +3 -3
- package/esm2020/divider/divider-module.mjs +5 -5
- package/esm2020/divider/divider.mjs +17 -9
- package/esm2020/divider/divider_public_index.mjs +5 -0
- package/esm2020/divider/index.mjs +6 -2
- package/esm2020/divider/testing/divider-harness-filters.mjs +1 -1
- package/esm2020/divider/testing/divider-harness.mjs +1 -1
- package/esm2020/expansion/accordion-base.mjs +1 -1
- package/esm2020/expansion/accordion.mjs +21 -13
- package/esm2020/expansion/expansion-animations.mjs +2 -2
- package/esm2020/expansion/expansion-module.mjs +5 -5
- package/esm2020/expansion/expansion-panel-content.mjs +5 -5
- package/esm2020/expansion/expansion-panel-header.mjs +21 -29
- package/esm2020/expansion/expansion-panel.mjs +16 -12
- package/esm2020/expansion/expansion_public_index.mjs +5 -0
- package/esm2020/expansion/index.mjs +6 -2
- package/esm2020/expansion/testing/accordion-harness.mjs +1 -1
- package/esm2020/expansion/testing/expansion-harness-filters.mjs +1 -1
- package/esm2020/expansion/testing/expansion-harness.mjs +3 -3
- package/esm2020/form-field/error.mjs +4 -4
- package/esm2020/form-field/form-field-animations.mjs +2 -2
- package/esm2020/form-field/form-field-control.mjs +4 -4
- package/esm2020/form-field/form-field-module.mjs +7 -31
- package/esm2020/form-field/form-field.mjs +47 -35
- package/esm2020/form-field/form-field_public_index.mjs +5 -0
- package/esm2020/form-field/hint.mjs +4 -4
- package/esm2020/form-field/index.mjs +6 -2
- package/esm2020/form-field/label.mjs +5 -5
- package/esm2020/form-field/placeholder.mjs +5 -5
- package/esm2020/form-field/prefix.mjs +4 -4
- package/esm2020/form-field/suffix.mjs +4 -4
- package/esm2020/form-field/testing/form-field-harness.mjs +12 -9
- package/esm2020/grid-list/grid-list-module.mjs +8 -8
- package/esm2020/grid-list/grid-list.mjs +26 -15
- package/esm2020/grid-list/grid-list_public_index.mjs +5 -0
- package/esm2020/grid-list/grid-tile.mjs +32 -24
- package/esm2020/grid-list/index.mjs +6 -2
- package/esm2020/grid-list/testing/grid-list-harness-filters.mjs +1 -1
- package/esm2020/grid-list/testing/grid-list-harness.mjs +9 -5
- package/esm2020/grid-list/testing/grid-tile-harness.mjs +1 -1
- package/esm2020/grid-list/tile-coordinator.mjs +5 -3
- package/esm2020/grid-list/tile-styler.mjs +7 -6
- package/esm2020/icon/fake-svgs.mjs +2 -2
- package/esm2020/icon/icon-module.mjs +5 -5
- package/esm2020/icon/icon-registry.mjs +9 -9
- package/esm2020/icon/icon.mjs +30 -20
- package/esm2020/icon/icon_public_index.mjs +5 -0
- package/esm2020/icon/index.mjs +6 -2
- package/esm2020/icon/public-api.mjs +1 -1
- package/esm2020/icon/testing/fake-icon-registry.mjs +9 -9
- package/esm2020/icon/testing/icon-harness-filters.mjs +1 -1
- package/esm2020/icon/testing/icon-harness.mjs +2 -2
- package/esm2020/icon/testing/index.mjs +6 -2
- package/esm2020/icon/testing/testing_public_index.mjs +5 -0
- package/esm2020/icon/trusted-types.mjs +1 -1
- package/esm2020/input/index.mjs +6 -2
- package/esm2020/input/input-module.mjs +6 -16
- package/esm2020/input/input-value-accessor.mjs +1 -1
- package/esm2020/input/input.mjs +48 -22
- package/esm2020/input/input_public_index.mjs +5 -0
- package/esm2020/input/public-api.mjs +1 -1
- package/esm2020/input/testing/input-harness.mjs +6 -6
- package/esm2020/input/testing/native-option-harness.mjs +3 -3
- package/esm2020/input/testing/native-select-harness.mjs +4 -4
- package/esm2020/list/index.mjs +6 -2
- package/esm2020/list/list-module.mjs +7 -7
- package/esm2020/list/list.mjs +28 -27
- package/esm2020/list/list_public_index.mjs +5 -0
- package/esm2020/list/public-api.mjs +1 -1
- package/esm2020/list/selection-list.mjs +40 -21
- package/esm2020/list/testing/action-list-harness.mjs +1 -1
- package/esm2020/list/testing/list-harness-base.mjs +12 -5
- package/esm2020/list/testing/list-harness.mjs +1 -1
- package/esm2020/list/testing/list-item-harness-base.mjs +5 -7
- package/esm2020/list/testing/nav-list-harness.mjs +2 -3
- package/esm2020/list/testing/selection-list-harness.mjs +9 -9
- package/esm2020/menu/index.mjs +6 -2
- package/esm2020/menu/menu-animations.mjs +7 -7
- package/esm2020/menu/menu-content.mjs +7 -7
- package/esm2020/menu/menu-errors.mjs +1 -1
- package/esm2020/menu/menu-item.mjs +4 -4
- package/esm2020/menu/menu-module.mjs +8 -21
- package/esm2020/menu/menu-panel.mjs +1 -1
- package/esm2020/menu/menu-trigger.mjs +31 -22
- package/esm2020/menu/menu.mjs +33 -30
- package/esm2020/menu/menu_public_index.mjs +5 -0
- package/esm2020/menu/public-api.mjs +2 -2
- package/esm2020/menu/testing/menu-harness.mjs +4 -5
- package/esm2020/paginator/index.mjs +6 -2
- package/esm2020/paginator/paginator-intl.mjs +6 -8
- package/esm2020/paginator/paginator-module.mjs +6 -22
- package/esm2020/paginator/paginator.mjs +30 -19
- package/esm2020/paginator/paginator_public_index.mjs +5 -0
- package/esm2020/paginator/public-api.mjs +1 -1
- package/esm2020/paginator/testing/paginator-harness-filters.mjs +1 -1
- package/esm2020/paginator/testing/paginator-harness.mjs +2 -2
- package/esm2020/progress-bar/index.mjs +6 -2
- package/esm2020/progress-bar/progress-bar-module.mjs +5 -5
- package/esm2020/progress-bar/progress-bar.mjs +23 -18
- package/esm2020/progress-bar/progress-bar_public_index.mjs +5 -0
- package/esm2020/progress-bar/public-api.mjs +1 -1
- package/esm2020/progress-bar/testing/progress-bar-harness.mjs +1 -1
- package/esm2020/progress-spinner/index.mjs +6 -2
- package/esm2020/progress-spinner/progress-spinner-module.mjs +7 -17
- package/esm2020/progress-spinner/progress-spinner.mjs +16 -14
- package/esm2020/progress-spinner/progress-spinner_public_index.mjs +5 -0
- package/esm2020/progress-spinner/testing/progress-spinner-harness.mjs +2 -2
- package/esm2020/radio/index.mjs +6 -2
- package/esm2020/radio/public-api.mjs +1 -1
- package/esm2020/radio/radio-module.mjs +5 -5
- package/esm2020/radio/radio.mjs +52 -36
- package/esm2020/radio/radio_public_index.mjs +5 -0
- package/esm2020/radio/testing/radio-harness.mjs +3 -4
- package/esm2020/select/index.mjs +6 -2
- package/esm2020/select/public-api.mjs +2 -2
- package/esm2020/select/select-animations.mjs +7 -7
- package/esm2020/select/select-module.mjs +8 -21
- package/esm2020/select/select.mjs +70 -53
- package/esm2020/select/select_public_index.mjs +5 -0
- package/esm2020/select/testing/select-harness.mjs +9 -6
- package/esm2020/sidenav/drawer-animations.mjs +3 -3
- package/esm2020/sidenav/drawer.mjs +79 -43
- package/esm2020/sidenav/index.mjs +6 -2
- package/esm2020/sidenav/sidenav-module.mjs +7 -20
- package/esm2020/sidenav/sidenav.mjs +39 -23
- package/esm2020/sidenav/sidenav_public_index.mjs +5 -0
- package/esm2020/sidenav/testing/drawer-container-harness.mjs +1 -1
- package/esm2020/sidenav/testing/drawer-content-harness.mjs +1 -1
- package/esm2020/sidenav/testing/drawer-harness.mjs +2 -3
- package/esm2020/sidenav/testing/sidenav-container-harness.mjs +1 -1
- package/esm2020/sidenav/testing/sidenav-content-harness.mjs +1 -1
- package/esm2020/sidenav/testing/sidenav-harness.mjs +2 -3
- package/esm2020/slide-toggle/index.mjs +6 -2
- package/esm2020/slide-toggle/slide-toggle-config.mjs +2 -2
- package/esm2020/slide-toggle/slide-toggle-module.mjs +11 -16
- package/esm2020/slide-toggle/slide-toggle-required-validator.mjs +7 -7
- package/esm2020/slide-toggle/slide-toggle.mjs +19 -13
- package/esm2020/slide-toggle/slide-toggle_public_index.mjs +5 -0
- package/esm2020/slide-toggle/testing/slide-toggle-harness.mjs +3 -3
- package/esm2020/slider/index.mjs +6 -2
- package/esm2020/slider/public-api.mjs +1 -1
- package/esm2020/slider/slider-module.mjs +5 -5
- package/esm2020/slider/slider.mjs +52 -33
- package/esm2020/slider/slider_public_index.mjs +5 -0
- package/esm2020/slider/testing/slider-harness.mjs +6 -2
- package/esm2020/snack-bar/index.mjs +6 -2
- package/esm2020/snack-bar/simple-snack-bar.mjs +4 -4
- package/esm2020/snack-bar/snack-bar-animations.mjs +3 -3
- package/esm2020/snack-bar/snack-bar-container.mjs +5 -5
- package/esm2020/snack-bar/snack-bar-module.mjs +6 -22
- package/esm2020/snack-bar/snack-bar-ref.mjs +1 -1
- package/esm2020/snack-bar/snack-bar.mjs +14 -11
- package/esm2020/snack-bar/snack-bar_public_index.mjs +5 -0
- package/esm2020/snack-bar/testing/snack-bar-harness.mjs +5 -6
- package/esm2020/sort/index.mjs +6 -2
- package/esm2020/sort/sort-animations.mjs +11 -26
- package/esm2020/sort/sort-header-intl.mjs +5 -5
- package/esm2020/sort/sort-header.mjs +32 -29
- package/esm2020/sort/sort-module.mjs +6 -6
- package/esm2020/sort/sort.mjs +19 -12
- package/esm2020/sort/sort_public_index.mjs +5 -0
- package/esm2020/sort/testing/sort-harness-filters.mjs +1 -1
- package/esm2020/sort/testing/sort-harness.mjs +1 -1
- package/esm2020/sort/testing/sort-header-harness.mjs +1 -1
- package/esm2020/stepper/index.mjs +6 -2
- package/esm2020/stepper/step-content.mjs +5 -5
- package/esm2020/stepper/step-header.mjs +5 -5
- package/esm2020/stepper/step-label.mjs +4 -4
- package/esm2020/stepper/stepper-animations.mjs +4 -4
- package/esm2020/stepper/stepper-button.mjs +9 -9
- package/esm2020/stepper/stepper-icon.mjs +4 -4
- package/esm2020/stepper/stepper-intl.mjs +5 -5
- package/esm2020/stepper/stepper-module.mjs +5 -5
- package/esm2020/stepper/stepper.mjs +25 -21
- package/esm2020/stepper/stepper_public_index.mjs +5 -0
- package/esm2020/stepper/testing/step-harness-filters.mjs +1 -1
- package/esm2020/stepper/testing/step-harness.mjs +1 -1
- package/esm2020/stepper/testing/stepper-button-harnesses.mjs +3 -5
- package/esm2020/stepper/testing/stepper-harness.mjs +5 -5
- package/esm2020/table/cell.mjs +33 -29
- package/esm2020/table/index.mjs +6 -2
- package/esm2020/table/row.mjs +23 -23
- package/esm2020/table/table-data-source.mjs +30 -21
- package/esm2020/table/table-module.mjs +8 -15
- package/esm2020/table/table.mjs +10 -14
- package/esm2020/table/table_public_index.mjs +5 -0
- package/esm2020/table/testing/cell-harness.mjs +6 -3
- package/esm2020/table/testing/row-harness.mjs +2 -2
- package/esm2020/table/testing/table-harness-filters.mjs +1 -1
- package/esm2020/table/testing/table-harness.mjs +3 -3
- package/esm2020/table/text-column.mjs +4 -4
- package/esm2020/tabs/index.mjs +6 -2
- package/esm2020/tabs/ink-bar.mjs +5 -5
- package/esm2020/tabs/paginated-tab-header.mjs +19 -12
- package/esm2020/tabs/public-api.mjs +2 -2
- package/esm2020/tabs/tab-body.mjs +16 -16
- package/esm2020/tabs/tab-content.mjs +5 -6
- package/esm2020/tabs/tab-group.mjs +48 -33
- package/esm2020/tabs/tab-header.mjs +13 -9
- package/esm2020/tabs/tab-label-wrapper.mjs +5 -5
- package/esm2020/tabs/tab-label.mjs +4 -4
- package/esm2020/tabs/tab-nav-bar/tab-nav-bar.mjs +31 -21
- package/esm2020/tabs/tab.mjs +10 -6
- package/esm2020/tabs/tabs-animations.mjs +5 -5
- package/esm2020/tabs/tabs-module.mjs +5 -5
- package/esm2020/tabs/tabs_public_index.mjs +5 -0
- package/esm2020/tabs/testing/tab-group-harness.mjs +2 -3
- package/esm2020/tabs/testing/tab-harness.mjs +2 -3
- package/esm2020/tabs/testing/tab-link-harness.mjs +2 -3
- package/esm2020/toolbar/index.mjs +6 -2
- package/esm2020/toolbar/public-api.mjs +1 -1
- package/esm2020/toolbar/testing/toolbar-harness.mjs +3 -4
- package/esm2020/toolbar/toolbar-module.mjs +5 -5
- package/esm2020/toolbar/toolbar.mjs +7 -7
- package/esm2020/toolbar/toolbar_public_index.mjs +5 -0
- package/esm2020/tooltip/index.mjs +6 -2
- package/esm2020/tooltip/tooltip-animations.mjs +3 -3
- package/esm2020/tooltip/tooltip-module.mjs +7 -20
- package/esm2020/tooltip/tooltip.mjs +67 -42
- package/esm2020/tooltip/tooltip_public_index.mjs +5 -0
- package/esm2020/tree/data-source/flat-data-source.mjs +4 -2
- package/esm2020/tree/data-source/nested-data-source.mjs +8 -5
- package/esm2020/tree/index.mjs +6 -2
- package/esm2020/tree/node.mjs +26 -22
- package/esm2020/tree/outlet.mjs +14 -10
- package/esm2020/tree/padding.mjs +17 -9
- package/esm2020/tree/public-api.mjs +1 -1
- package/esm2020/tree/testing/node-harness.mjs +1 -1
- package/esm2020/tree/testing/tree-harness-filters.mjs +1 -1
- package/esm2020/tree/testing/tree-harness.mjs +2 -2
- package/esm2020/tree/toggle.mjs +8 -6
- package/esm2020/tree/tree-module.mjs +6 -6
- package/esm2020/tree/tree.mjs +4 -4
- package/esm2020/tree/tree_public_index.mjs +5 -0
- package/expansion/expansion_public_index.d.ts +4 -0
- package/expansion/index.d.ts +5 -1
- package/expansion/package.json +2 -2
- package/fesm2015/autocomplete/testing.mjs +2 -3
- package/fesm2015/autocomplete/testing.mjs.map +1 -1
- package/fesm2015/autocomplete.mjs +67 -67
- package/fesm2015/autocomplete.mjs.map +1 -1
- package/fesm2015/badge/testing.mjs +1 -2
- package/fesm2015/badge/testing.mjs.map +1 -1
- package/fesm2015/badge.mjs +28 -19
- package/fesm2015/badge.mjs.map +1 -1
- package/fesm2015/bottom-sheet/testing.mjs.map +1 -1
- package/fesm2015/bottom-sheet.mjs +41 -34
- package/fesm2015/bottom-sheet.mjs.map +1 -1
- package/fesm2015/button/testing.mjs +1 -2
- package/fesm2015/button/testing.mjs.map +1 -1
- package/fesm2015/button-toggle/testing.mjs.map +1 -1
- package/fesm2015/button-toggle.mjs +41 -21
- package/fesm2015/button-toggle.mjs.map +1 -1
- package/fesm2015/button.mjs +21 -30
- package/fesm2015/button.mjs.map +1 -1
- package/fesm2015/card/testing.mjs.map +1 -1
- package/fesm2015/card.mjs +94 -64
- package/fesm2015/card.mjs.map +1 -1
- package/fesm2015/checkbox/testing.mjs +2 -2
- package/fesm2015/checkbox/testing.mjs.map +1 -1
- package/fesm2015/checkbox.mjs +56 -36
- package/fesm2015/checkbox.mjs.map +1 -1
- package/fesm2015/chips/testing.mjs +2 -2
- package/fesm2015/chips/testing.mjs.map +1 -1
- package/fesm2015/chips.mjs +107 -65
- package/fesm2015/chips.mjs.map +1 -1
- package/fesm2015/core/testing.mjs +1 -2
- package/fesm2015/core/testing.mjs.map +1 -1
- package/fesm2015/core.mjs +134 -99
- package/fesm2015/core.mjs.map +1 -1
- package/fesm2015/datepicker/testing.mjs +5 -6
- package/fesm2015/datepicker/testing.mjs.map +1 -1
- package/fesm2015/datepicker.mjs +355 -271
- package/fesm2015/datepicker.mjs.map +1 -1
- package/fesm2015/dialog/testing.mjs +2 -2
- package/fesm2015/dialog/testing.mjs.map +1 -1
- package/fesm2015/dialog.mjs +75 -72
- package/fesm2015/dialog.mjs.map +1 -1
- package/fesm2015/divider/testing.mjs.map +1 -1
- package/fesm2015/divider.mjs +28 -12
- package/fesm2015/divider.mjs.map +1 -1
- package/fesm2015/expansion/testing.mjs.map +1 -1
- package/fesm2015/expansion.mjs +71 -59
- package/fesm2015/expansion.mjs.map +1 -1
- package/fesm2015/form-field/testing.mjs +5 -2
- package/fesm2015/form-field/testing.mjs.map +1 -1
- package/fesm2015/form-field.mjs +83 -87
- package/fesm2015/form-field.mjs.map +1 -1
- package/fesm2015/grid-list/testing.mjs +8 -4
- package/fesm2015/grid-list/testing.mjs.map +1 -1
- package/fesm2015/grid-list.mjs +80 -50
- package/fesm2015/grid-list.mjs.map +1 -1
- package/fesm2015/icon/testing.mjs +16 -8
- package/fesm2015/icon/testing.mjs.map +1 -1
- package/fesm2015/icon.mjs +49 -31
- package/fesm2015/icon.mjs.map +1 -1
- package/fesm2015/input/testing.mjs +8 -8
- package/fesm2015/input/testing.mjs.map +1 -1
- package/fesm2015/input.mjs +59 -35
- package/fesm2015/input.mjs.map +1 -1
- package/fesm2015/list/testing.mjs +17 -13
- package/fesm2015/list/testing.mjs.map +1 -1
- package/fesm2015/list.mjs +77 -50
- package/fesm2015/list.mjs.map +1 -1
- package/fesm2015/menu/testing.mjs +1 -2
- package/fesm2015/menu/testing.mjs.map +1 -1
- package/fesm2015/menu.mjs +92 -85
- package/fesm2015/menu.mjs.map +1 -1
- package/fesm2015/paginator/testing.mjs +1 -1
- package/fesm2015/paginator/testing.mjs.map +1 -1
- package/fesm2015/paginator.mjs +46 -45
- package/fesm2015/paginator.mjs.map +1 -1
- package/fesm2015/progress-bar/testing.mjs.map +1 -1
- package/fesm2015/progress-bar.mjs +34 -21
- package/fesm2015/progress-bar.mjs.map +1 -1
- package/fesm2015/progress-spinner/testing.mjs +1 -1
- package/fesm2015/progress-spinner/testing.mjs.map +1 -1
- package/fesm2015/progress-spinner.mjs +29 -29
- package/fesm2015/progress-spinner.mjs.map +1 -1
- package/fesm2015/radio/testing.mjs +1 -2
- package/fesm2015/radio/testing.mjs.map +1 -1
- package/fesm2015/radio.mjs +63 -39
- package/fesm2015/radio.mjs.map +1 -1
- package/fesm2015/select/testing.mjs +4 -1
- package/fesm2015/select/testing.mjs.map +1 -1
- package/fesm2015/select.mjs +89 -77
- package/fesm2015/select.mjs.map +1 -1
- package/fesm2015/sidenav/testing.mjs +2 -4
- package/fesm2015/sidenav/testing.mjs.map +1 -1
- package/fesm2015/sidenav.mjs +130 -83
- package/fesm2015/sidenav.mjs.map +1 -1
- package/fesm2015/slide-toggle/testing.mjs +2 -2
- package/fesm2015/slide-toggle/testing.mjs.map +1 -1
- package/fesm2015/slide-toggle.mjs +40 -31
- package/fesm2015/slide-toggle.mjs.map +1 -1
- package/fesm2015/slider/testing.mjs +5 -1
- package/fesm2015/slider/testing.mjs.map +1 -1
- package/fesm2015/slider.mjs +62 -35
- package/fesm2015/slider.mjs.map +1 -1
- package/fesm2015/snack-bar/testing.mjs +1 -2
- package/fesm2015/snack-bar/testing.mjs.map +1 -1
- package/fesm2015/snack-bar.mjs +35 -40
- package/fesm2015/snack-bar.mjs.map +1 -1
- package/fesm2015/sort/testing.mjs.map +1 -1
- package/fesm2015/sort.mjs +74 -70
- package/fesm2015/sort.mjs.map +1 -1
- package/fesm2015/stepper/testing.mjs +6 -8
- package/fesm2015/stepper/testing.mjs.map +1 -1
- package/fesm2015/stepper.mjs +65 -53
- package/fesm2015/stepper.mjs.map +1 -1
- package/fesm2015/table/testing.mjs +7 -4
- package/fesm2015/table/testing.mjs.map +1 -1
- package/fesm2015/table.mjs +106 -96
- package/fesm2015/table.mjs.map +1 -1
- package/fesm2015/tabs/testing.mjs +3 -6
- package/fesm2015/tabs/testing.mjs.map +1 -1
- package/fesm2015/tabs.mjs +161 -114
- package/fesm2015/tabs.mjs.map +1 -1
- package/fesm2015/toolbar/testing.mjs +2 -3
- package/fesm2015/toolbar/testing.mjs.map +1 -1
- package/fesm2015/toolbar.mjs +18 -10
- package/fesm2015/toolbar.mjs.map +1 -1
- package/fesm2015/tooltip.mjs +82 -62
- package/fesm2015/tooltip.mjs.map +1 -1
- package/fesm2015/tree/testing.mjs +1 -1
- package/fesm2015/tree/testing.mjs.map +1 -1
- package/fesm2015/tree.mjs +85 -54
- package/fesm2015/tree.mjs.map +1 -1
- package/fesm2020/autocomplete/testing.mjs +5 -6
- package/fesm2020/autocomplete/testing.mjs.map +1 -1
- package/fesm2020/autocomplete.mjs +67 -67
- package/fesm2020/autocomplete.mjs.map +1 -1
- package/fesm2020/badge/testing.mjs +1 -2
- package/fesm2020/badge/testing.mjs.map +1 -1
- package/fesm2020/badge.mjs +28 -19
- package/fesm2020/badge.mjs.map +1 -1
- package/fesm2020/bottom-sheet/testing.mjs.map +1 -1
- package/fesm2020/bottom-sheet.mjs +41 -34
- package/fesm2020/bottom-sheet.mjs.map +1 -1
- package/fesm2020/button/testing.mjs +1 -2
- package/fesm2020/button/testing.mjs.map +1 -1
- package/fesm2020/button-toggle/testing.mjs +3 -3
- package/fesm2020/button-toggle/testing.mjs.map +1 -1
- package/fesm2020/button-toggle.mjs +41 -21
- package/fesm2020/button-toggle.mjs.map +1 -1
- package/fesm2020/button.mjs +21 -30
- package/fesm2020/button.mjs.map +1 -1
- package/fesm2020/card/testing.mjs.map +1 -1
- package/fesm2020/card.mjs +94 -64
- package/fesm2020/card.mjs.map +1 -1
- package/fesm2020/checkbox/testing.mjs +2 -2
- package/fesm2020/checkbox/testing.mjs.map +1 -1
- package/fesm2020/checkbox.mjs +56 -36
- package/fesm2020/checkbox.mjs.map +1 -1
- package/fesm2020/chips/testing.mjs +6 -6
- package/fesm2020/chips/testing.mjs.map +1 -1
- package/fesm2020/chips.mjs +107 -65
- package/fesm2020/chips.mjs.map +1 -1
- package/fesm2020/core/testing.mjs +2 -3
- package/fesm2020/core/testing.mjs.map +1 -1
- package/fesm2020/core.mjs +135 -100
- package/fesm2020/core.mjs.map +1 -1
- package/fesm2020/datepicker/testing.mjs +6 -7
- package/fesm2020/datepicker/testing.mjs.map +1 -1
- package/fesm2020/datepicker.mjs +355 -271
- package/fesm2020/datepicker.mjs.map +1 -1
- package/fesm2020/dialog/testing.mjs +2 -2
- package/fesm2020/dialog/testing.mjs.map +1 -1
- package/fesm2020/dialog.mjs +75 -72
- package/fesm2020/dialog.mjs.map +1 -1
- package/fesm2020/divider/testing.mjs.map +1 -1
- package/fesm2020/divider.mjs +28 -12
- package/fesm2020/divider.mjs.map +1 -1
- package/fesm2020/expansion/testing.mjs +2 -2
- package/fesm2020/expansion/testing.mjs.map +1 -1
- package/fesm2020/expansion.mjs +71 -59
- package/fesm2020/expansion.mjs.map +1 -1
- package/fesm2020/form-field/testing.mjs +10 -7
- package/fesm2020/form-field/testing.mjs.map +1 -1
- package/fesm2020/form-field.mjs +83 -87
- package/fesm2020/form-field.mjs.map +1 -1
- package/fesm2020/grid-list/testing.mjs +8 -4
- package/fesm2020/grid-list/testing.mjs.map +1 -1
- package/fesm2020/grid-list.mjs +80 -50
- package/fesm2020/grid-list.mjs.map +1 -1
- package/fesm2020/icon/testing.mjs +17 -9
- package/fesm2020/icon/testing.mjs.map +1 -1
- package/fesm2020/icon.mjs +49 -31
- package/fesm2020/icon.mjs.map +1 -1
- package/fesm2020/input/testing.mjs +10 -10
- package/fesm2020/input/testing.mjs.map +1 -1
- package/fesm2020/input.mjs +59 -35
- package/fesm2020/input.mjs.map +1 -1
- package/fesm2020/list/testing.mjs +23 -19
- package/fesm2020/list/testing.mjs.map +1 -1
- package/fesm2020/list.mjs +79 -51
- package/fesm2020/list.mjs.map +1 -1
- package/fesm2020/menu/testing.mjs +3 -4
- package/fesm2020/menu/testing.mjs.map +1 -1
- package/fesm2020/menu.mjs +92 -85
- package/fesm2020/menu.mjs.map +1 -1
- package/fesm2020/paginator/testing.mjs +1 -1
- package/fesm2020/paginator/testing.mjs.map +1 -1
- package/fesm2020/paginator.mjs +46 -45
- package/fesm2020/paginator.mjs.map +1 -1
- package/fesm2020/progress-bar/testing.mjs.map +1 -1
- package/fesm2020/progress-bar.mjs +34 -21
- package/fesm2020/progress-bar.mjs.map +1 -1
- package/fesm2020/progress-spinner/testing.mjs +1 -1
- package/fesm2020/progress-spinner/testing.mjs.map +1 -1
- package/fesm2020/progress-spinner.mjs +29 -29
- package/fesm2020/progress-spinner.mjs.map +1 -1
- package/fesm2020/radio/testing.mjs +2 -3
- package/fesm2020/radio/testing.mjs.map +1 -1
- package/fesm2020/radio.mjs +63 -39
- package/fesm2020/radio.mjs.map +1 -1
- package/fesm2020/select/testing.mjs +8 -5
- package/fesm2020/select/testing.mjs.map +1 -1
- package/fesm2020/select.mjs +89 -77
- package/fesm2020/select.mjs.map +1 -1
- package/fesm2020/sidenav/testing.mjs +2 -4
- package/fesm2020/sidenav/testing.mjs.map +1 -1
- package/fesm2020/sidenav.mjs +130 -83
- package/fesm2020/sidenav.mjs.map +1 -1
- package/fesm2020/slide-toggle/testing.mjs +2 -2
- package/fesm2020/slide-toggle/testing.mjs.map +1 -1
- package/fesm2020/slide-toggle.mjs +40 -31
- package/fesm2020/slide-toggle.mjs.map +1 -1
- package/fesm2020/slider/testing.mjs +5 -1
- package/fesm2020/slider/testing.mjs.map +1 -1
- package/fesm2020/slider.mjs +62 -35
- package/fesm2020/slider.mjs.map +1 -1
- package/fesm2020/snack-bar/testing.mjs +4 -5
- package/fesm2020/snack-bar/testing.mjs.map +1 -1
- package/fesm2020/snack-bar.mjs +35 -40
- package/fesm2020/snack-bar.mjs.map +1 -1
- package/fesm2020/sort/testing.mjs.map +1 -1
- package/fesm2020/sort.mjs +75 -72
- package/fesm2020/sort.mjs.map +1 -1
- package/fesm2020/stepper/testing.mjs +6 -8
- package/fesm2020/stepper/testing.mjs.map +1 -1
- package/fesm2020/stepper.mjs +65 -53
- package/fesm2020/stepper.mjs.map +1 -1
- package/fesm2020/table/testing.mjs +7 -4
- package/fesm2020/table/testing.mjs.map +1 -1
- package/fesm2020/table.mjs +106 -96
- package/fesm2020/table.mjs.map +1 -1
- package/fesm2020/tabs/testing.mjs +3 -6
- package/fesm2020/tabs/testing.mjs.map +1 -1
- package/fesm2020/tabs.mjs +161 -114
- package/fesm2020/tabs.mjs.map +1 -1
- package/fesm2020/toolbar/testing.mjs +2 -3
- package/fesm2020/toolbar/testing.mjs.map +1 -1
- package/fesm2020/toolbar.mjs +18 -10
- package/fesm2020/toolbar.mjs.map +1 -1
- package/fesm2020/tooltip.mjs +82 -62
- package/fesm2020/tooltip.mjs.map +1 -1
- package/fesm2020/tree/testing.mjs +1 -1
- package/fesm2020/tree/testing.mjs.map +1 -1
- package/fesm2020/tree.mjs +85 -54
- package/fesm2020/tree.mjs.map +1 -1
- package/form-field/form-field_public_index.d.ts +4 -0
- package/form-field/index.d.ts +5 -1
- package/form-field/package.json +2 -2
- package/grid-list/grid-list_public_index.d.ts +4 -0
- package/grid-list/index.d.ts +5 -1
- package/grid-list/package.json +2 -2
- package/grid-list/testing/grid-list-harness.d.ts +1 -1
- package/icon/icon-registry.d.ts +1 -1
- package/icon/icon_public_index.d.ts +4 -0
- package/icon/index.d.ts +5 -1
- package/icon/package.json +2 -2
- package/icon/testing/index.d.ts +5 -1
- package/icon/testing/package.json +2 -2
- package/icon/testing/testing_public_index.d.ts +4 -0
- package/input/_input-theme.scss +8 -6
- package/input/index.d.ts +5 -1
- package/input/input.d.ts +2 -0
- package/input/input_public_index.d.ts +4 -0
- package/input/package.json +2 -2
- package/list/index.d.ts +5 -1
- package/list/list_public_index.d.ts +4 -0
- package/list/package.json +2 -2
- package/list/testing/list-harness-base.d.ts +2 -2
- package/menu/index.d.ts +5 -1
- package/menu/menu_public_index.d.ts +4 -0
- package/menu/package.json +2 -2
- package/menu/public-api.d.ts +1 -1
- package/menu/testing/menu-harness.d.ts +2 -2
- package/package.json +79 -79
- package/paginator/index.d.ts +5 -1
- package/paginator/package.json +2 -2
- package/paginator/paginator_public_index.d.ts +4 -0
- package/prebuilt-themes/deeppurple-amber.css +1 -1
- package/prebuilt-themes/indigo-pink.css +1 -1
- package/prebuilt-themes/pink-bluegrey.css +1 -1
- package/prebuilt-themes/purple-green.css +1 -1
- package/progress-bar/index.d.ts +5 -1
- package/progress-bar/package.json +2 -2
- package/progress-bar/progress-bar_public_index.d.ts +4 -0
- package/progress-spinner/index.d.ts +5 -1
- package/progress-spinner/package.json +2 -2
- package/progress-spinner/progress-spinner_public_index.d.ts +4 -0
- package/radio/index.d.ts +5 -1
- package/radio/package.json +2 -2
- package/radio/radio_public_index.d.ts +4 -0
- package/radio/testing/radio-harness.d.ts +2 -2
- package/schematics/ng-add/index.js +3 -3
- package/schematics/ng-add/index.mjs +3 -3
- package/schematics/ng-add/package-config.js +4 -2
- package/schematics/ng-add/package-config.mjs +4 -2
- package/schematics/ng-add/setup-project.js +2 -3
- package/schematics/ng-add/setup-project.mjs +2 -3
- package/schematics/ng-add/theming/create-custom-theme.js +1 -1
- package/schematics/ng-add/theming/create-custom-theme.mjs +1 -1
- package/schematics/ng-add/theming/theming.js +6 -6
- package/schematics/ng-add/theming/theming.mjs +6 -6
- package/schematics/ng-generate/address-form/index.js +2 -2
- package/schematics/ng-generate/address-form/index.mjs +2 -2
- package/schematics/ng-generate/dashboard/index.js +2 -2
- package/schematics/ng-generate/dashboard/index.mjs +2 -2
- package/schematics/ng-generate/navigation/index.js +2 -2
- package/schematics/ng-generate/navigation/index.mjs +2 -2
- package/schematics/ng-generate/table/index.js +3 -3
- package/schematics/ng-generate/table/index.mjs +3 -3
- package/schematics/ng-generate/tree/index.js +2 -2
- package/schematics/ng-generate/tree/index.mjs +2 -2
- package/schematics/ng-update/data/class-names.js +6 -8
- package/schematics/ng-update/data/class-names.mjs +6 -8
- package/schematics/ng-update/data/constructor-checks.js +33 -32
- package/schematics/ng-update/data/constructor-checks.mjs +33 -32
- package/schematics/ng-update/data/css-selectors.js +11 -9
- package/schematics/ng-update/data/css-selectors.mjs +11 -9
- package/schematics/ng-update/data/element-selectors.js +6 -4
- package/schematics/ng-update/data/element-selectors.mjs +6 -4
- package/schematics/ng-update/data/input-names.js +31 -23
- package/schematics/ng-update/data/input-names.mjs +31 -23
- package/schematics/ng-update/data/method-call-checks.js +10 -6
- package/schematics/ng-update/data/method-call-checks.mjs +10 -6
- package/schematics/ng-update/data/property-names.js +62 -50
- package/schematics/ng-update/data/property-names.mjs +62 -50
- package/schematics/ng-update/data/symbol-removal.js +6 -6
- package/schematics/ng-update/data/symbol-removal.mjs +6 -6
- package/schematics/ng-update/index.js +1 -1
- package/schematics/ng-update/index.mjs +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/find-main-module.js +5 -3
- package/schematics/ng-update/migrations/hammer-gestures-v9/find-main-module.mjs +5 -3
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.d.ts +4 -2
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.js +68 -33
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-gestures-migration.mjs +68 -33
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-template-check.js +38 -7
- package/schematics/ng-update/migrations/hammer-gestures-v9/hammer-template-check.mjs +38 -7
- package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.js +28 -14
- package/schematics/ng-update/migrations/hammer-gestures-v9/import-manager.mjs +28 -14
- package/schematics/ng-update/migrations/hammer-gestures-v9/remove-array-element.js +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/remove-array-element.mjs +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/remove-element-from-html.js +1 -1
- package/schematics/ng-update/migrations/hammer-gestures-v9/remove-element-from-html.mjs +1 -1
- package/schematics/ng-update/migrations/misc-checks/misc-class-inheritance.js +3 -2
- package/schematics/ng-update/migrations/misc-checks/misc-class-inheritance.mjs +3 -2
- package/schematics/ng-update/migrations/misc-checks/misc-class-names.js +1 -1
- package/schematics/ng-update/migrations/misc-checks/misc-class-names.mjs +1 -1
- package/schematics/ng-update/migrations/misc-checks/misc-imports.js +6 -3
- package/schematics/ng-update/migrations/misc-checks/misc-imports.mjs +6 -3
- package/schematics/ng-update/migrations/misc-checks/misc-property-names.js +1 -1
- package/schematics/ng-update/migrations/misc-checks/misc-property-names.mjs +1 -1
- package/schematics/ng-update/migrations/misc-checks/misc-template.js +7 -13
- package/schematics/ng-update/migrations/misc-checks/misc-template.mjs +7 -13
- package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor-migration.js +1 -1
- package/schematics/ng-update/migrations/misc-ripples-v7/ripple-speed-factor-migration.mjs +1 -1
- package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.js +3 -2
- package/schematics/ng-update/migrations/package-imports-v8/secondary-entry-points-migration.mjs +3 -2
- package/schematics/ng-update/migrations/theming-api-v12/config.js +59 -10
- package/schematics/ng-update/migrations/theming-api-v12/config.mjs +59 -10
- package/schematics/ng-update/migrations/theming-api-v12/migration.js +19 -11
- package/schematics/ng-update/migrations/theming-api-v12/migration.mjs +19 -11
- package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.d.ts +2 -2
- package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.js +7 -4
- package/schematics/ng-update/migrations/theming-api-v12/theming-api-migration.mjs +7 -4
- package/schematics/ng-update/typescript/module-specifiers.js +3 -3
- package/schematics/ng-update/typescript/module-specifiers.mjs +3 -3
- package/select/index.d.ts +5 -1
- package/select/package.json +2 -2
- package/select/public-api.d.ts +1 -1
- package/select/select_public_index.d.ts +4 -0
- package/select/testing/select-harness.d.ts +4 -4
- package/sidenav/index.d.ts +5 -1
- package/sidenav/package.json +2 -2
- package/sidenav/sidenav_public_index.d.ts +4 -0
- package/slide-toggle/index.d.ts +5 -1
- package/slide-toggle/package.json +2 -2
- package/slide-toggle/slide-toggle_public_index.d.ts +4 -0
- package/slider/index.d.ts +5 -1
- package/slider/package.json +2 -2
- package/slider/slider_public_index.d.ts +4 -0
- package/snack-bar/index.d.ts +5 -1
- package/snack-bar/package.json +2 -2
- package/snack-bar/snack-bar_public_index.d.ts +4 -0
- package/sort/index.d.ts +5 -1
- package/sort/package.json +2 -2
- package/sort/sort_public_index.d.ts +4 -0
- package/stepper/index.d.ts +5 -1
- package/stepper/package.json +2 -2
- package/stepper/stepper_public_index.d.ts +4 -0
- package/table/index.d.ts +5 -1
- package/table/package.json +2 -2
- package/table/table-data-source.d.ts +3 -3
- package/table/table_public_index.d.ts +4 -0
- package/table/testing/row-harness.d.ts +2 -2
- package/table/testing/table-harness.d.ts +4 -4
- package/tabs/_tabs-theme.scss +6 -2
- package/tabs/index.d.ts +5 -1
- package/tabs/package.json +2 -2
- package/tabs/public-api.d.ts +1 -1
- package/tabs/tab-content.d.ts +2 -3
- package/tabs/tabs_public_index.d.ts +4 -0
- package/toolbar/index.d.ts +5 -1
- package/toolbar/package.json +2 -2
- package/toolbar/toolbar_public_index.d.ts +4 -0
- package/tooltip/index.d.ts +5 -1
- package/tooltip/package.json +2 -2
- package/tooltip/tooltip_public_index.d.ts +4 -0
- package/tree/index.d.ts +5 -1
- package/tree/package.json +2 -2
- package/tree/tree_public_index.d.ts +4 -0
|
@@ -36,11 +36,42 @@ exports.materialMixins = {
|
|
|
36
36
|
};
|
|
37
37
|
// The component themes all follow the same pattern so we can spare ourselves some typing.
|
|
38
38
|
[
|
|
39
|
-
'option',
|
|
40
|
-
'
|
|
41
|
-
'
|
|
42
|
-
'
|
|
43
|
-
'
|
|
39
|
+
'option',
|
|
40
|
+
'optgroup',
|
|
41
|
+
'pseudo-checkbox',
|
|
42
|
+
'autocomplete',
|
|
43
|
+
'badge',
|
|
44
|
+
'bottom-sheet',
|
|
45
|
+
'button',
|
|
46
|
+
'button-toggle',
|
|
47
|
+
'card',
|
|
48
|
+
'checkbox',
|
|
49
|
+
'chips',
|
|
50
|
+
'divider',
|
|
51
|
+
'table',
|
|
52
|
+
'datepicker',
|
|
53
|
+
'dialog',
|
|
54
|
+
'grid-list',
|
|
55
|
+
'icon',
|
|
56
|
+
'input',
|
|
57
|
+
'list',
|
|
58
|
+
'menu',
|
|
59
|
+
'paginator',
|
|
60
|
+
'progress-bar',
|
|
61
|
+
'progress-spinner',
|
|
62
|
+
'radio',
|
|
63
|
+
'select',
|
|
64
|
+
'sidenav',
|
|
65
|
+
'slide-toggle',
|
|
66
|
+
'slider',
|
|
67
|
+
'stepper',
|
|
68
|
+
'sort',
|
|
69
|
+
'tabs',
|
|
70
|
+
'toolbar',
|
|
71
|
+
'tooltip',
|
|
72
|
+
'snack-bar',
|
|
73
|
+
'form-field',
|
|
74
|
+
'tree',
|
|
44
75
|
].forEach(name => {
|
|
45
76
|
exports.materialMixins[`mat-${name}-theme`] = `${name}-theme`;
|
|
46
77
|
exports.materialMixins[`mat-${name}-color`] = `${name}-color`;
|
|
@@ -70,10 +101,28 @@ exports.materialVariables = {
|
|
|
70
101
|
};
|
|
71
102
|
// The palettes all follow the same pattern.
|
|
72
103
|
[
|
|
73
|
-
'red',
|
|
74
|
-
'
|
|
75
|
-
'
|
|
76
|
-
|
|
104
|
+
'red',
|
|
105
|
+
'pink',
|
|
106
|
+
'indigo',
|
|
107
|
+
'purple',
|
|
108
|
+
'deep-purple',
|
|
109
|
+
'blue',
|
|
110
|
+
'light-blue',
|
|
111
|
+
'cyan',
|
|
112
|
+
'teal',
|
|
113
|
+
'green',
|
|
114
|
+
'light-green',
|
|
115
|
+
'lime',
|
|
116
|
+
'yellow',
|
|
117
|
+
'amber',
|
|
118
|
+
'orange',
|
|
119
|
+
'deep-orange',
|
|
120
|
+
'brown',
|
|
121
|
+
'grey',
|
|
122
|
+
'gray',
|
|
123
|
+
'blue-grey',
|
|
124
|
+
'blue-gray',
|
|
125
|
+
].forEach(name => (exports.materialVariables[`mat-${name}`] = `${name}-palette`));
|
|
77
126
|
/** Mapping of CDK variables that should be renamed. */
|
|
78
127
|
exports.cdkVariables = {
|
|
79
128
|
'cdk-z-index-overlay-container': 'overlay-container-z-index',
|
|
@@ -206,4 +255,4 @@ exports.unprefixedRemovedVariables = {
|
|
|
206
255
|
'light-dividers': 'rgba(white, 0.12)',
|
|
207
256
|
'light-focused': 'rgba(white, 0.12)',
|
|
208
257
|
};
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvdGhlbWluZy1hcGktdjEyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCx5REFBeUQ7QUFDNUMsUUFBQSxjQUFjLEdBQTJCO0lBQ3BELFVBQVUsRUFBRSxNQUFNO0lBQ2xCLGdCQUFnQixFQUFFLFlBQVk7SUFDOUIsZ0JBQWdCLEVBQUUsWUFBWTtJQUM5Qix3QkFBd0IsRUFBRSxzQkFBc0I7SUFDaEQsNkJBQTZCLEVBQUUsNEJBQTRCO0lBQzNELHdCQUF3QixFQUFFLHNCQUFzQjtJQUNoRCxxQkFBcUIsRUFBRSxzQkFBc0I7SUFDN0MsZ0NBQWdDLEVBQUUsa0JBQWtCO0lBQ3BELGVBQWUsRUFBRSxXQUFXO0lBQzVCLDJCQUEyQixFQUFFLHVCQUF1QjtJQUNwRCwwQkFBMEIsRUFBRSxzQkFBc0I7SUFDbEQsWUFBWSxFQUFFLFFBQVE7SUFDdEIsa0JBQWtCLEVBQUUsY0FBYztJQUNsQyxrQkFBa0IsRUFBRSxjQUFjO0lBQ2xDLDZCQUE2QixFQUFFLHlCQUF5QjtJQUN4RCxtQ0FBbUMsRUFBRSwrQkFBK0I7SUFDcEUsbUNBQW1DLEVBQUUsK0JBQStCO0lBQ3BFLG9CQUFvQixFQUFFLGdCQUFnQjtJQUN0Qyw0RkFBNEY7SUFDNUYsZ0dBQWdHO0lBQ2hHLDJCQUEyQixFQUFFLGlCQUFpQjtJQUM5QywyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsZ0NBQWdDLEVBQUUsc0JBQXNCO0NBQ3pELENBQUM7QUFFRiwwRkFBMEY7QUFDMUY7SUFDRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVE7SUFDMUYsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVB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QW1DLEVBQUUsZ0NBQWdDO0lBQ3JFLG1CQUFtQixFQUFFLDBDQUEwQztJQUMvRCx1QkFBdUIsRUFBRSxNQUFNO0lBQy9CLDhCQUE4QixFQUFFLFFBQVE7SUFDeEMsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxrQkFBa0IsRUFBRSxtQkFBbUI7SUFDdkMsa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLGtCQUFrQixFQUFFLG1CQUFtQjtJQUN2QyxrQkFBa0IsRUFBRSxtQkFBbUI7SUFDdkMsaUJBQWlCLEVBQUUsbUJBQW1CO0lBQ3RDLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxtQkFBbUIsRUFBRSxtQkFBbUI7SUFDeEMscUJBQXFCLEVBQUUsbUJBQW1CO0lBQzFDLG9CQUFvQixFQUFFLG1CQUFtQjtJQUN6QyxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLGNBQWMsRUFBRSxtQkFBbUI7SUFDbkMsb0JBQW9CLEVBQUUsT0FBTztJQUM3QixzQkFBc0IsRUFBRSxrQkFBa0I7SUFDMUMscUJBQXFCLEVBQUUsa0JBQWtCO0lBQ3pDLGdCQUFnQixFQUFFLG1CQUFtQjtJQUNyQyxlQUFlLEVBQUUsbUJBQW1CO0NBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqIE1hcHBpbmcgb2YgTWF0ZXJpYWwgbWl4aW5zIHRoYXQgc2hvdWxkIGJlIHJlbmFtZWQuICovXG5leHBvcnQgY29uc3QgbWF0ZXJpYWxNaXhpbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdtYXQtY29yZSc6ICdjb3JlJyxcbiAgJ21hdC1jb3JlLWNvbG9yJzogJ2NvcmUtY29sb3InLFxuICAnbWF0LWNvcmUtdGhlbWUnOiAnY29yZS10aGVtZScsXG4gICdhbmd1bGFyLW1hdGVyaWFsLXRoZW1lJzogJ2FsbC1jb21wb25lbnQtdGhlbWVzJyxcbiAgJ2FuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSc6ICdhbGwtY29tcG9uZW50LXR5cG9ncmFwaGllcycsXG4gICdhbmd1bGFyLW1hdGVyaWFsLWNvbG9yJzogJ2FsbC1jb21wb25lbnQtY29sb3JzJyxcbiAgJ21hdC1iYXNlLXR5cG9ncmFwaHknOiAndHlwb2dyYXBoeS1oaWVyYXJjaHknLFxuICAnbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzJzogJ3R5cG9ncmFwaHktbGV2ZWwnLFxuICAnbWF0LWVsZXZhdGlvbic6ICdlbGV2YXRpb24nLFxuICAnbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbic6ICdvdmVycmlkYWJsZS1lbGV2YXRpb24nLFxuICAnbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uJzogJ2VsZXZhdGlvbi10cmFuc2l0aW9uJyxcbiAgJ21hdC1yaXBwbGUnOiAncmlwcGxlJyxcbiAgJ21hdC1yaXBwbGUtY29sb3InOiAncmlwcGxlLWNvbG9yJyxcbiAgJ21hdC1yaXBwbGUtdGhlbWUnOiAncmlwcGxlLXRoZW1lJyxcbiAgJ21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycyc6ICdzdHJvbmctZm9jdXMtaW5kaWNhdG9ycycsXG4gICdtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3InOiAnc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3InLFxuICAnbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lJzogJ3N0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lJyxcbiAgJ21hdC1mb250LXNob3J0aGFuZCc6ICdmb250LXNob3J0aGFuZCcsXG4gIC8vIFRoZSBleHBhbnNpb24gcGFuZWwgaXMgYSBzcGVjaWFsIGNhc2UsIGJlY2F1c2UgdGhlIHBhY2thZ2UgaXMgY2FsbGVkIGBleHBhbnNpb25gLCBidXQgdGhlXG4gIC8vIG1peGlucyB3ZXJlIHByZWZpeGVkIHdpdGggYGV4cGFuc2lvbi1wYW5lbGAuIFRoaXMgd2FzIGNvcnJlY3RlZCBieSB0aGUgU2FzcyBtb2R1bGUgbWlncmF0aW9uLlxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSc6ICdleHBhbnNpb24tdGhlbWUnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1jb2xvcic6ICdleHBhbnNpb24tY29sb3InLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5JzogJ2V4cGFuc2lvbi10eXBvZ3JhcGh5Jyxcbn07XG5cbi8vIFRoZSBjb21wb25lbnQgdGhlbWVzIGFsbCBmb2xsb3cgdGhlIHNhbWUgcGF0dGVybiBzbyB3ZSBjYW4gc3BhcmUgb3Vyc2VsdmVzIHNvbWUgdHlwaW5nLlxuW1xuICAnb3B0aW9uJywgJ29wdGdyb3VwJywgJ3BzZXVkby1jaGVja2JveCcsICdhdXRvY29tcGxldGUnLCAnYmFkZ2UnLCAnYm90dG9tLXNoZWV0JywgJ2J1dHRvbicsXG4gICdidXR0b24tdG9nZ2xlJywgJ2NhcmQnLCAnY2hlY2tib3gnLCAnY2hpcHMnLCAnZGl2aWRlcicsICd0YWJsZScsICdkYXRlcGlja2VyJywgJ2RpYWxvZycsXG4gICdncmlkLWxpc3QnLCAnaWNvbicsICdpbnB1dCcsICdsaXN0JywgJ21lbnUnLCAncGFnaW5hdG9yJywgJ3Byb2dyZXNzLWJhcicsICdwcm9ncmVzcy1zcGlubmVyJyxcbiAgJ3JhZGlvJywgJ3NlbGVjdCcsICdzaWRlbmF2JywgJ3NsaWRlLXRvZ2dsZScsICdzbGlkZXInLCAnc3RlcHBlcicsICdzb3J0JywgJ3RhYnMnLCAndG9vbGJhcicsXG4gICd0b29sdGlwJywgJ3NuYWNrLWJhcicsICdmb3JtLWZpZWxkJywgJ3RyZWUnXG5dLmZvckVhY2gobmFtZSA9PiB7XG4gIG1hdGVyaWFsTWl4aW5zW2BtYXQtJHtuYW1lfS10aGVtZWBdID0gYCR7bmFtZX0tdGhlbWVgO1xuICBtYXRlcmlhbE1peGluc1tgbWF0LSR7bmFtZX0tY29sb3JgXSA9IGAke25hbWV9LWNvbG9yYDtcbiAgbWF0ZXJpYWxNaXhpbnNbYG1hdC0ke25hbWV9LXR5cG9ncmFwaHlgXSA9IGAke25hbWV9LXR5cG9ncmFwaHlgO1xufSk7XG5cbi8qKiBNYXBwaW5nIG9mIE1hdGVyaWFsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IG1hdGVyaWFsRnVuY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnbWF0LWNvbG9yJzogJ2dldC1jb2xvci1mcm9tLXBhbGV0dGUnLFxuICAnbWF0LWNvbnRyYXN0JzogJ2dldC1jb250cmFzdC1jb2xvci1mcm9tLXBhbGV0dGUnLFxuICAnbWF0LXBhbGV0dGUnOiAnZGVmaW5lLXBhbGV0dGUnLFxuICAnbWF0LWRhcmstdGhlbWUnOiAnZGVmaW5lLWRhcmstdGhlbWUnLFxuICAnbWF0LWxpZ2h0LXRoZW1lJzogJ2RlZmluZS1saWdodC10aGVtZScsXG4gICdtYXQtdHlwb2dyYXBoeS1sZXZlbCc6ICdkZWZpbmUtdHlwb2dyYXBoeS1sZXZlbCcsXG4gICdtYXQtdHlwb2dyYXBoeS1jb25maWcnOiAnZGVmaW5lLXR5cG9ncmFwaHktY29uZmlnJyxcbiAgJ21hdC1mb250LXNpemUnOiAnZm9udC1zaXplJyxcbiAgJ21hdC1saW5lLWhlaWdodCc6ICdsaW5lLWhlaWdodCcsXG4gICdtYXQtZm9udC13ZWlnaHQnOiAnZm9udC13ZWlnaHQnLFxuICAnbWF0LWxldHRlci1zcGFjaW5nJzogJ2xldHRlci1zcGFjaW5nJyxcbiAgJ21hdC1mb250LWZhbWlseSc6ICdmb250LWZhbWlseScsXG59O1xuXG4vKiogTWFwcGluZyBvZiBNYXRlcmlhbCB2YXJpYWJsZXMgdGhhdCBzaG91bGQgYmUgcmVuYW1lZC4gKi9cbmV4cG9ydCBjb25zdCBtYXRlcmlhbFZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ21hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kJzogJ2xpZ2h0LXRoZW1lLWJhY2tncm91bmQtcGFsZXR0ZScsXG4gICdtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kJzogJ2RhcmstdGhlbWUtYmFja2dyb3VuZC1wYWxldHRlJyxcbiAgJ21hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kJzogJ2xpZ2h0LXRoZW1lLWZvcmVncm91bmQtcGFsZXR0ZScsXG4gICdtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kJzogJ2RhcmstdGhlbWUtZm9yZWdyb3VuZC1wYWxldHRlJyxcbn07XG5cbi8vIFRoZSBwYWxldHRlcyBhbGwgZm9sbG93IHRoZSBzYW1lIHBhdHRlcm4uXG5bXG4gICdyZWQnLCAncGluaycsICdpbmRpZ28nLCAncHVycGxlJywgJ2RlZXAtcHVycGxlJywgJ2JsdWUnLCAnbGlnaHQtYmx1ZScsICdjeWFuJywgJ3RlYWwnLCAnZ3JlZW4nLFxuICAnbGlnaHQtZ3JlZW4nLCAnbGltZScsICd5ZWxsb3cnLCAnYW1iZXInLCAnb3JhbmdlJywgJ2RlZXAtb3JhbmdlJywgJ2Jyb3duJywgJ2dyZXknLCAnZ3JheScsXG4gICdibHVlLWdyZXknLCAnYmx1ZS1ncmF5J1xuXS5mb3JFYWNoKG5hbWUgPT4gbWF0ZXJpYWxWYXJpYWJsZXNbYG1hdC0ke25hbWV9YF0gPSBgJHtuYW1lfS1wYWxldHRlYCk7XG5cbi8qKiBNYXBwaW5nIG9mIENESyB2YXJpYWJsZXMgdGhhdCBzaG91bGQgYmUgcmVuYW1lZC4gKi9cbmV4cG9ydCBjb25zdCBjZGtWYXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcic6ICdvdmVybGF5LWNvbnRhaW5lci16LWluZGV4JyxcbiAgJ2Nkay16LWluZGV4LW92ZXJsYXknOiAnb3ZlcmxheS16LWluZGV4JyxcbiAgJ2Nkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3AnOiAnb3ZlcmxheS1iYWNrZHJvcC16LWluZGV4JyxcbiAgJ2Nkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZCc6ICdvdmVybGF5LWJhY2tkcm9wLWNvbG9yJyxcbn07XG5cbi8qKiBNYXBwaW5nIG9mIENESyBtaXhpbnMgdGhhdCBzaG91bGQgYmUgcmVuYW1lZC4gKi9cbmV4cG9ydCBjb25zdCBjZGtNaXhpbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdjZGstb3ZlcmxheSc6ICdvdmVybGF5JyxcbiAgJ2Nkay1hMTF5JzogJ2ExMXktdmlzdWFsbHktaGlkZGVuJyxcbiAgJ2Nkay1oaWdoLWNvbnRyYXN0JzogJ2hpZ2gtY29udHJhc3QnLFxuICAnY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3InOiAndGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvcicsXG4gIC8vIFRoaXMgb25lIHdhcyBzcGxpdCB1cCBpbnRvIHR3byBtaXhpbnMgd2hpY2ggaXMgdHJpY2tpZXIgdG9cbiAgLy8gbWlncmF0ZSBzbyBmb3Igbm93IHdlIGZvcndhcmQgdG8gdGhlIGRlcHJlY2F0ZWQgdmFyaWFudC5cbiAgJ2Nkay10ZXh0LWZpZWxkJzogJ3RleHQtZmllbGQnLFxufTtcblxuLyoqXG4gKiBNYXRlcmlhbCB2YXJpYWJsZXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWMgQVBJXG4gKiBhbmQgd2hpY2ggc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggdGhlaXIgdmFsdWVzLlxuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlZE1hdGVyaWFsVmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAvLyBOb3RlOiB0aGVyZSdzIGFsc28gYSB1c2FnZSBvZiBhIHZhcmlhYmxlIGNhbGxlZCBgJHBpYCwgYnV0IHRoZSBuYW1lIGlzIHNob3J0IGVub3VnaCB0aGF0XG4gIC8vIGl0IG1hdGNoZXMgdGhpbmdzIGxpa2UgYCRtYXQtcGlua2AuIERvbid0IG1pZ3JhdGUgaXQgc2luY2UgaXQncyB1bmxpa2VseSB0byBiZSB1c2VkLlxuICAnbWF0LXhzbWFsbCc6ICdtYXgtd2lkdGg6IDU5OXB4JyxcbiAgJ21hdC1zbWFsbCc6ICdtYXgtd2lkdGg6IDk1OXB4JyxcbiAgJ21hdC10b2dnbGUtcGFkZGluZyc6ICc4cHgnLFxuICAnbWF0LXRvZ2dsZS1zaXplJzogJzIwcHgnLFxuICAnbWF0LWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKScsXG4gICdtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKScsXG4gICdtYXQtZmFzdC1vdXQtbGluZWFyLWluLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKScsXG4gICdtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24nOiAnMjgwbXMnLFxuICAnbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpJyxcbiAgJ21hdC1lbGV2YXRpb24tY29sb3InOiAnIzAwMCcsXG4gICdtYXQtZWxldmF0aW9uLW9wYWNpdHknOiAnMScsXG4gICdtYXQtZWxldmF0aW9uLXByZWZpeCc6IGAnbWF0LWVsZXZhdGlvbi16J2AsXG4gICdtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHknOiAnMC4xJyxcbiAgJ21hdC1iYWRnZS1mb250LXNpemUnOiAnMTJweCcsXG4gICdtYXQtYmFkZ2UtZm9udC13ZWlnaHQnOiAnNjAwJyxcbiAgJ21hdC1iYWRnZS1kZWZhdWx0LXNpemUnOiAnMjJweCcsXG4gICdtYXQtYmFkZ2Utc21hbGwtc2l6ZSc6ICcxNnB4JyxcbiAgJ21hdC1iYWRnZS1sYXJnZS1zaXplJzogJzI4cHgnLFxuICAnbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtbWluaW11bS1oZWlnaHQnOiAnMjRweCcsXG4gICdtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1tYXhpbXVtLWhlaWdodCc6ICc0OHB4JyxcbiAgJ21hdC1jaGlwLXJlbW92ZS1mb250LXNpemUnOiAnMThweCcsXG4gICdtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoJzogJzFweCcsXG4gICdtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCc6ICcwLjYnLFxuICAnbWF0LWRhdGVwaWNrZXItcmFuZ2UtZmFkZS1hbW91bnQnOiAnMC4yJyxcbiAgJ21hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50JzogJzAuMicsXG4gICdtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemUnOiAnMTNweCcsXG4gICdtYXQtY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemUnOiAnMTFweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtaGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1pbmltdW0taGVpZ2h0JzogJzM2cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1heGltdW0taGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtaGVpZ2h0JzogJzY0cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWluaW11bS1oZWlnaHQnOiAnNDhweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1tYXhpbXVtLWhlaWdodCc6ICc2NHB4JyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRyYW5zaXRpb24nOiAnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKScsXG4gICdtYXQtbWVudS1zaWRlLXBhZGRpbmcnOiAnMTZweCcsXG4gICdtZW51LW1lbnUtaXRlbS1oZWlnaHQnOiAnNDhweCcsXG4gICdtZW51LW1lbnUtaWNvbi1tYXJnaW4nOiAnMTZweCcsXG4gICdtYXQtcGFnaW5hdG9yLWhlaWdodCc6ICc1NnB4JyxcbiAgJ21hdC1wYWdpbmF0b3ItbWluaW11bS1oZWlnaHQnOiAnNDBweCcsXG4gICdtYXQtcGFnaW5hdG9yLW1heGltdW0taGVpZ2h0JzogJzU2cHgnLFxuICAnbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodCc6ICc3MnB4JyxcbiAgJ21hdC1zdGVwcGVyLWhlYWRlci1taW5pbXVtLWhlaWdodCc6ICc0MnB4JyxcbiAgJ21hdC1zdGVwcGVyLWhlYWRlci1tYXhpbXVtLWhlaWdodCc6ICc3MnB4JyxcbiAgJ21hdC1zdGVwcGVyLWxhYmVsLWhlYWRlci1oZWlnaHQnOiAnMjRweCcsXG4gICdtYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20tdG9wLWdhcCc6ICcxNnB4JyxcbiAgJ21hdC1zdGVwcGVyLWxhYmVsLW1pbi13aWR0aCc6ICc1MHB4JyxcbiAgJ21hdC12ZXJ0aWNhbC1zdGVwcGVyLWNvbnRlbnQtbWFyZ2luJzogJzM2cHgnLFxuICAnbWF0LXN0ZXBwZXItc2lkZS1nYXAnOiAnMjRweCcsXG4gICdtYXQtc3RlcHBlci1saW5lLXdpZHRoJzogJzFweCcsXG4gICdtYXQtc3RlcHBlci1saW5lLWdhcCc6ICc4cHgnLFxuICAnbWF0LXN0ZXAtc3ViLWxhYmVsLWZvbnQtc2l6ZSc6ICcxMnB4JyxcbiAgJ21hdC1zdGVwLWhlYWRlci1pY29uLXNpemUnOiAnMTZweCcsXG4gICdtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodCc6ICc0NHB4JyxcbiAgJ21hdC10b29sYmFyLWhlaWdodC1kZXNrdG9wJzogJzY0cHgnLFxuICAnbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtZGVza3RvcCc6ICc2NHB4JyxcbiAgJ21hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0LWRlc2t0b3AnOiAnNDRweCcsXG4gICdtYXQtdG9vbGJhci1oZWlnaHQtbW9iaWxlJzogJzU2cHgnLFxuICAnbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtbW9iaWxlJzogJzU2cHgnLFxuICAnbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtbW9iaWxlJzogJzQ0cHgnLFxuICAnbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCc6ICcyMnB4JyxcbiAgJ21hdC10b29sdGlwLWZvbnQtc2l6ZSc6ICcxMHB4JyxcbiAgJ21hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmcnOiAnNnB4JyxcbiAgJ21hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodCc6ICczMHB4JyxcbiAgJ21hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplJzogJzE0cHgnLFxuICAnbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nJzogJzhweCcsXG4gICdtYXQtdHJlZS1ub2RlLWhlaWdodCc6ICc0OHB4JyxcbiAgJ21hdC10cmVlLW5vZGUtbWluaW11bS1oZWlnaHQnOiAnMjRweCcsXG4gICdtYXQtdHJlZS1ub2RlLW1heGltdW0taGVpZ2h0JzogJzQ4cHgnLFxufTtcblxuLyoqXG4gKiBNYXRlcmlhbCB2YXJpYWJsZXMgKip3aXRob3V0IGEgYG1hdC1gIHByZWZpeCoqIHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcHVibGljIEFQSVxuICogYW5kIHdoaWNoIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIHRoZWlyIHZhbHVlcy4gVGhlc2Ugc2hvdWxkIGJlIG1pZ3JhdGVkIG9ubHkgd2hlbiB0aGVyZSdzIGFcbiAqIE1hdGVyaWFsIGltcG9ydCwgYmVjYXVzZSB0aGVpciBuYW1lcyBjb3VsZCBjb25mbGljdCB3aXRoIG90aGVyIHZhcmlhYmxlcyBpbiB0aGUgdXNlcidzIGFwcC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVucHJlZml4ZWRSZW1vdmVkVmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnei1pbmRleC1mYWInOiAnMjAnLFxuICAnei1pbmRleC1kcmF3ZXInOiAnMTAwJyxcbiAgJ2Vhc2UtaW4tb3V0LWN1cnZlLWZ1bmN0aW9uJzogJ2N1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKScsXG4gICdzd2lmdC1lYXNlLW91dC1kdXJhdGlvbic6ICc0MDBtcycsXG4gICdzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknLFxuICAnc3dpZnQtZWFzZS1vdXQnOiAnYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJyxcbiAgJ3N3aWZ0LWVhc2UtaW4tZHVyYXRpb24nOiAnMzAwbXMnLFxuICAnc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMiknLFxuICAnc3dpZnQtZWFzZS1pbic6ICdhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMiknLFxuICAnc3dpZnQtZWFzZS1pbi1vdXQtZHVyYXRpb24nOiAnNTAwbXMnLFxuICAnc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uJzogJ2N1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKScsXG4gICdzd2lmdC1lYXNlLWluLW91dCc6ICdhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyxcbiAgJ3N3aWZ0LWxpbmVhci1kdXJhdGlvbic6ICc4MG1zJyxcbiAgJ3N3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb24nOiAnbGluZWFyJyxcbiAgJ3N3aWZ0LWxpbmVhcic6ICdhbGwgODBtcyBsaW5lYXInLFxuICAnYmxhY2stODctb3BhY2l0eSc6ICdyZ2JhKGJsYWNrLCAwLjg3KScsXG4gICd3aGl0ZS04Ny1vcGFjaXR5JzogJ3JnYmEod2hpdGUsIDAuODcpJyxcbiAgJ2JsYWNrLTEyLW9wYWNpdHknOiAncmdiYShibGFjaywgMC4xMiknLFxuICAnd2hpdGUtMTItb3BhY2l0eSc6ICdyZ2JhKHdoaXRlLCAwLjEyKScsXG4gICdibGFjay02LW9wYWNpdHknOiAncmdiYShibGFjaywgMC4wNiknLFxuICAnd2hpdGUtNi1vcGFjaXR5JzogJ3JnYmEod2hpdGUsIDAuMDYpJyxcbiAgJ2RhcmstcHJpbWFyeS10ZXh0JzogJ3JnYmEoYmxhY2ssIDAuODcpJyxcbiAgJ2Rhcmstc2Vjb25kYXJ5LXRleHQnOiAncmdiYShibGFjaywgMC41NCknLFxuICAnZGFyay1kaXNhYmxlZC10ZXh0JzogJ3JnYmEoYmxhY2ssIDAuMzgpJyxcbiAgJ2RhcmstZGl2aWRlcnMnOiAncmdiYShibGFjaywgMC4xMiknLFxuICAnZGFyay1mb2N1c2VkJzogJ3JnYmEoYmxhY2ssIDAuMTIpJyxcbiAgJ2xpZ2h0LXByaW1hcnktdGV4dCc6ICd3aGl0ZScsXG4gICdsaWdodC1zZWNvbmRhcnktdGV4dCc6ICdyZ2JhKHdoaXRlLCAwLjcpJyxcbiAgJ2xpZ2h0LWRpc2FibGVkLXRleHQnOiAncmdiYSh3aGl0ZSwgMC41KScsXG4gICdsaWdodC1kaXZpZGVycyc6ICdyZ2JhKHdoaXRlLCAwLjEyKScsXG4gICdsaWdodC1mb2N1c2VkJzogJ3JnYmEod2hpdGUsIDAuMTIpJyxcbn07XG4iXX0=
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvdGhlbWluZy1hcGktdjEyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCx5REFBeUQ7QUFDNUMsUUFBQSxjQUFjLEdBQTJCO0lBQ3BELFVBQVUsRUFBRSxNQUFNO0lBQ2xCLGdCQUFnQixFQUFFLFlBQVk7SUFDOUIsZ0JBQWdCLEVBQUUsWUFBWTtJQUM5Qix3QkFBd0IsRUFBRSxzQkFBc0I7SUFDaEQsNkJBQTZCLEVBQUUsNEJBQTRCO0lBQzNELHdCQUF3QixFQUFFLHNCQUFzQjtJQUNoRCxxQkFBcUIsRUFBRSxzQkFBc0I7SUFDN0MsZ0NBQWdDLEVBQUUsa0JBQWtCO0lBQ3BELGVBQWUsRUFBRSxXQUFXO0lBQzVCLDJCQUEyQixFQUFFLHVCQUF1QjtJQUNwRCwwQkFBMEIsRUFBRSxzQkFBc0I7SUFDbEQsWUFBWSxFQUFFLFFBQVE7SUFDdEIsa0JBQWtCLEVBQUUsY0FBYztJQUNsQyxrQkFBa0IsRUFBRSxjQUFjO0lBQ2xDLDZCQUE2QixFQUFFLHlCQUF5QjtJQUN4RCxtQ0FBbUMsRUFBRSwrQkFBK0I7SUFDcEUsbUNBQW1DLEVBQUUsK0JBQStCO0lBQ3BFLG9CQUFvQixFQUFFLGdCQUFnQjtJQUN0Qyw0RkFBNEY7SUFDNUYsZ0dBQWdHO0lBQ2hHLDJCQUEyQixFQUFFLGlCQUFpQjtJQUM5QywyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsZ0NBQWdDLEVBQUUsc0JBQXNCO0NBQ3pELENBQUM7QUFFRiwwRkFBMEY7QUFDMUY7SUFDRSxRQUFRO0lBQ1IsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsT0FBTztJQUNQLGNBQWM7SUFDZCxRQUFRO0lBQ1IsZUFBZTtJQUNmLE1BQU07SUFDTixVQUFVO0lB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LG1DQUFtQyxFQUFFLGdDQUFnQztJQUNyRSxtQkFBbUIsRUFBRSwwQ0FBMEM7SUFDL0QsdUJBQXVCLEVBQUUsTUFBTTtJQUMvQiw4QkFBOEIsRUFBRSxRQUFRO0lBQ3hDLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLGtCQUFrQixFQUFFLG1CQUFtQjtJQUN2QyxrQkFBa0IsRUFBRSxtQkFBbUI7SUFDdkMsa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMsbUJBQW1CLEVBQUUsbUJBQW1CO0lBQ3hDLHFCQUFxQixFQUFFLG1CQUFtQjtJQUMxQyxvQkFBb0IsRUFBRSxtQkFBbUI7SUFDekMsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxjQUFjLEVBQUUsbUJBQW1CO0lBQ25DLG9CQUFvQixFQUFFLE9BQU87SUFDN0Isc0JBQXNCLEVBQUUsa0JBQWtCO0lBQzFDLHFCQUFxQixFQUFFLGtCQUFrQjtJQUN6QyxnQkFBZ0IsRUFBRSxtQkFBbUI7SUFDckMsZUFBZSxFQUFFLG1CQUFtQjtDQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKiBNYXBwaW5nIG9mIE1hdGVyaWFsIG1peGlucyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IG1hdGVyaWFsTWl4aW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnbWF0LWNvcmUnOiAnY29yZScsXG4gICdtYXQtY29yZS1jb2xvcic6ICdjb3JlLWNvbG9yJyxcbiAgJ21hdC1jb3JlLXRoZW1lJzogJ2NvcmUtdGhlbWUnLFxuICAnYW5ndWxhci1tYXRlcmlhbC10aGVtZSc6ICdhbGwtY29tcG9uZW50LXRoZW1lcycsXG4gICdhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHknOiAnYWxsLWNvbXBvbmVudC10eXBvZ3JhcGhpZXMnLFxuICAnYW5ndWxhci1tYXRlcmlhbC1jb2xvcic6ICdhbGwtY29tcG9uZW50LWNvbG9ycycsXG4gICdtYXQtYmFzZS10eXBvZ3JhcGh5JzogJ3R5cG9ncmFwaHktaGllcmFyY2h5JyxcbiAgJ21hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcyc6ICd0eXBvZ3JhcGh5LWxldmVsJyxcbiAgJ21hdC1lbGV2YXRpb24nOiAnZWxldmF0aW9uJyxcbiAgJ21hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24nOiAnb3ZlcnJpZGFibGUtZWxldmF0aW9uJyxcbiAgJ21hdC1lbGV2YXRpb24tdHJhbnNpdGlvbic6ICdlbGV2YXRpb24tdHJhbnNpdGlvbicsXG4gICdtYXQtcmlwcGxlJzogJ3JpcHBsZScsXG4gICdtYXQtcmlwcGxlLWNvbG9yJzogJ3JpcHBsZS1jb2xvcicsXG4gICdtYXQtcmlwcGxlLXRoZW1lJzogJ3JpcHBsZS10aGVtZScsXG4gICdtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMnOiAnc3Ryb25nLWZvY3VzLWluZGljYXRvcnMnLFxuICAnbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yJzogJ3N0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yJyxcbiAgJ21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSc6ICdzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZScsXG4gICdtYXQtZm9udC1zaG9ydGhhbmQnOiAnZm9udC1zaG9ydGhhbmQnLFxuICAvLyBUaGUgZXhwYW5zaW9uIHBhbmVsIGlzIGEgc3BlY2lhbCBjYXNlLCBiZWNhdXNlIHRoZSBwYWNrYWdlIGlzIGNhbGxlZCBgZXhwYW5zaW9uYCwgYnV0IHRoZVxuICAvLyBtaXhpbnMgd2VyZSBwcmVmaXhlZCB3aXRoIGBleHBhbnNpb24tcGFuZWxgLiBUaGlzIHdhcyBjb3JyZWN0ZWQgYnkgdGhlIFNhc3MgbW9kdWxlIG1pZ3JhdGlvbi5cbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUnOiAnZXhwYW5zaW9uLXRoZW1lJyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtY29sb3InOiAnZXhwYW5zaW9uLWNvbG9yJyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSc6ICdleHBhbnNpb24tdHlwb2dyYXBoeScsXG59O1xuXG4vLyBUaGUgY29tcG9uZW50IHRoZW1lcyBhbGwgZm9sbG93IHRoZSBzYW1lIHBhdHRlcm4gc28gd2UgY2FuIHNwYXJlIG91cnNlbHZlcyBzb21lIHR5cGluZy5cbltcbiAgJ29wdGlvbicsXG4gICdvcHRncm91cCcsXG4gICdwc2V1ZG8tY2hlY2tib3gnLFxuICAnYXV0b2NvbXBsZXRlJyxcbiAgJ2JhZGdlJyxcbiAgJ2JvdHRvbS1zaGVldCcsXG4gICdidXR0b24nLFxuICAnYnV0dG9uLXRvZ2dsZScsXG4gICdjYXJkJyxcbiAgJ2NoZWNrYm94JyxcbiAgJ2NoaXBzJyxcbiAgJ2RpdmlkZXInLFxuICAndGFibGUnLFxuICAnZGF0ZXBpY2tlcicsXG4gICdkaWFsb2cnLFxuICAnZ3JpZC1saXN0JyxcbiAgJ2ljb24nLFxuICAnaW5wdXQnLFxuICAnbGlzdCcsXG4gICdtZW51JyxcbiAgJ3BhZ2luYXRvcicsXG4gICdwcm9ncmVzcy1iYXInLFxuICAncHJvZ3Jlc3Mtc3Bpbm5lcicsXG4gICdyYWRpbycsXG4gICdzZWxlY3QnLFxuICAnc2lkZW5hdicsXG4gICdzbGlkZS10b2dnbGUnLFxuICAnc2xpZGVyJyxcbiAgJ3N0ZXBwZXInLFxuICAnc29ydCcsXG4gICd0YWJzJyxcbiAgJ3Rvb2xiYXInLFxuICAndG9vbHRpcCcsXG4gICdzbmFjay1iYXInLFxuICAnZm9ybS1maWVsZCcsXG4gICd0cmVlJyxcbl0uZm9yRWFjaChuYW1lID0+IHtcbiAgbWF0ZXJpYWxNaXhpbnNbYG1hdC0ke25hbWV9LXRoZW1lYF0gPSBgJHtuYW1lfS10aGVtZWA7XG4gIG1hdGVyaWFsTWl4aW5zW2BtYXQtJHtuYW1lfS1jb2xvcmBdID0gYCR7bmFtZX0tY29sb3JgO1xuICBtYXRlcmlhbE1peGluc1tgbWF0LSR7bmFtZX0tdHlwb2dyYXBoeWBdID0gYCR7bmFtZX0tdHlwb2dyYXBoeWA7XG59KTtcblxuLyoqIE1hcHBpbmcgb2YgTWF0ZXJpYWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHJlbmFtZWQuICovXG5leHBvcnQgY29uc3QgbWF0ZXJpYWxGdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdtYXQtY29sb3InOiAnZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZScsXG4gICdtYXQtY29udHJhc3QnOiAnZ2V0LWNvbnRyYXN0LWNvbG9yLWZyb20tcGFsZXR0ZScsXG4gICdtYXQtcGFsZXR0ZSc6ICdkZWZpbmUtcGFsZXR0ZScsXG4gICdtYXQtZGFyay10aGVtZSc6ICdkZWZpbmUtZGFyay10aGVtZScsXG4gICdtYXQtbGlnaHQtdGhlbWUnOiAnZGVmaW5lLWxpZ2h0LXRoZW1lJyxcbiAgJ21hdC10eXBvZ3JhcGh5LWxldmVsJzogJ2RlZmluZS10eXBvZ3JhcGh5LWxldmVsJyxcbiAgJ21hdC10eXBvZ3JhcGh5LWNvbmZpZyc6ICdkZWZpbmUtdHlwb2dyYXBoeS1jb25maWcnLFxuICAnbWF0LWZvbnQtc2l6ZSc6ICdmb250LXNpemUnLFxuICAnbWF0LWxpbmUtaGVpZ2h0JzogJ2xpbmUtaGVpZ2h0JyxcbiAgJ21hdC1mb250LXdlaWdodCc6ICdmb250LXdlaWdodCcsXG4gICdtYXQtbGV0dGVyLXNwYWNpbmcnOiAnbGV0dGVyLXNwYWNpbmcnLFxuICAnbWF0LWZvbnQtZmFtaWx5JzogJ2ZvbnQtZmFtaWx5Jyxcbn07XG5cbi8qKiBNYXBwaW5nIG9mIE1hdGVyaWFsIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IG1hdGVyaWFsVmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQnOiAnbGlnaHQtdGhlbWUtYmFja2dyb3VuZC1wYWxldHRlJyxcbiAgJ21hdC1kYXJrLXRoZW1lLWJhY2tncm91bmQnOiAnZGFyay10aGVtZS1iYWNrZ3JvdW5kLXBhbGV0dGUnLFxuICAnbWF0LWxpZ2h0LXRoZW1lLWZvcmVncm91bmQnOiAnbGlnaHQtdGhlbWUtZm9yZWdyb3VuZC1wYWxldHRlJyxcbiAgJ21hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQnOiAnZGFyay10aGVtZS1mb3JlZ3JvdW5kLXBhbGV0dGUnLFxufTtcblxuLy8gVGhlIHBhbGV0dGVzIGFsbCBmb2xsb3cgdGhlIHNhbWUgcGF0dGVybi5cbltcbiAgJ3JlZCcsXG4gICdwaW5rJyxcbiAgJ2luZGlnbycsXG4gICdwdXJwbGUnLFxuICAnZGVlcC1wdXJwbGUnLFxuICAnYmx1ZScsXG4gICdsaWdodC1ibHVlJyxcbiAgJ2N5YW4nLFxuICAndGVhbCcsXG4gICdncmVlbicsXG4gICdsaWdodC1ncmVlbicsXG4gICdsaW1lJyxcbiAgJ3llbGxvdycsXG4gICdhbWJlcicsXG4gICdvcmFuZ2UnLFxuICAnZGVlcC1vcmFuZ2UnLFxuICAnYnJvd24nLFxuICAnZ3JleScsXG4gICdncmF5JyxcbiAgJ2JsdWUtZ3JleScsXG4gICdibHVlLWdyYXknLFxuXS5mb3JFYWNoKG5hbWUgPT4gKG1hdGVyaWFsVmFyaWFibGVzW2BtYXQtJHtuYW1lfWBdID0gYCR7bmFtZX0tcGFsZXR0ZWApKTtcblxuLyoqIE1hcHBpbmcgb2YgQ0RLIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IGNka1ZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ2Nkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyJzogJ292ZXJsYXktY29udGFpbmVyLXotaW5kZXgnLFxuICAnY2RrLXotaW5kZXgtb3ZlcmxheSc6ICdvdmVybGF5LXotaW5kZXgnLFxuICAnY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcCc6ICdvdmVybGF5LWJhY2tkcm9wLXotaW5kZXgnLFxuICAnY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kJzogJ292ZXJsYXktYmFja2Ryb3AtY29sb3InLFxufTtcblxuLyoqIE1hcHBpbmcgb2YgQ0RLIG1peGlucyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IGNka01peGluczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ2Nkay1vdmVybGF5JzogJ292ZXJsYXknLFxuICAnY2RrLWExMXknOiAnYTExeS12aXN1YWxseS1oaWRkZW4nLFxuICAnY2RrLWhpZ2gtY29udHJhc3QnOiAnaGlnaC1jb250cmFzdCcsXG4gICdjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvcic6ICd0ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yJyxcbiAgLy8gVGhpcyBvbmUgd2FzIHNwbGl0IHVwIGludG8gdHdvIG1peGlucyB3aGljaCBpcyB0cmlja2llciB0b1xuICAvLyBtaWdyYXRlIHNvIGZvciBub3cgd2UgZm9yd2FyZCB0byB0aGUgZGVwcmVjYXRlZCB2YXJpYW50LlxuICAnY2RrLXRleHQtZmllbGQnOiAndGV4dC1maWVsZCcsXG59O1xuXG4vKipcbiAqIE1hdGVyaWFsIHZhcmlhYmxlcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIHB1YmxpYyBBUElcbiAqIGFuZCB3aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGVpciB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVkTWF0ZXJpYWxWYXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIC8vIE5vdGU6IHRoZXJlJ3MgYWxzbyBhIHVzYWdlIG9mIGEgdmFyaWFibGUgY2FsbGVkIGAkcGlgLCBidXQgdGhlIG5hbWUgaXMgc2hvcnQgZW5vdWdoIHRoYXRcbiAgLy8gaXQgbWF0Y2hlcyB0aGluZ3MgbGlrZSBgJG1hdC1waW5rYC4gRG9uJ3QgbWlncmF0ZSBpdCBzaW5jZSBpdCdzIHVubGlrZWx5IHRvIGJlIHVzZWQuXG4gICdtYXQteHNtYWxsJzogJ21heC13aWR0aDogNTk5cHgnLFxuICAnbWF0LXNtYWxsJzogJ21heC13aWR0aDogOTU5cHgnLFxuICAnbWF0LXRvZ2dsZS1wYWRkaW5nJzogJzhweCcsXG4gICdtYXQtdG9nZ2xlLXNpemUnOiAnMjBweCcsXG4gICdtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpJyxcbiAgJ21hdC1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpJyxcbiAgJ21hdC1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uJzogJ2N1YmljLWJlemllcigwLjQsIDAsIDEsIDEpJyxcbiAgJ21hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbic6ICcyODBtcycsXG4gICdtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJzogJ2N1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSknLFxuICAnbWF0LWVsZXZhdGlvbi1jb2xvcic6ICcjMDAwJyxcbiAgJ21hdC1lbGV2YXRpb24tb3BhY2l0eSc6ICcxJyxcbiAgJ21hdC1lbGV2YXRpb24tcHJlZml4JzogYCdtYXQtZWxldmF0aW9uLXonYCxcbiAgJ21hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSc6ICcwLjEnLFxuICAnbWF0LWJhZGdlLWZvbnQtc2l6ZSc6ICcxMnB4JyxcbiAgJ21hdC1iYWRnZS1mb250LXdlaWdodCc6ICc2MDAnLFxuICAnbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSc6ICcyMnB4JyxcbiAgJ21hdC1iYWRnZS1zbWFsbC1zaXplJzogJzE2cHgnLFxuICAnbWF0LWJhZGdlLWxhcmdlLXNpemUnOiAnMjhweCcsXG4gICdtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1oZWlnaHQnOiAnNDhweCcsXG4gICdtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1taW5pbXVtLWhlaWdodCc6ICcyNHB4JyxcbiAgJ21hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1heGltdW0taGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZSc6ICcxOHB4JyxcbiAgJ21hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGgnOiAnMXB4JyxcbiAgJ21hdC1kYXRlcGlja2VyLXNlbGVjdGVkLWZhZGUtYW1vdW50JzogJzAuNicsXG4gICdtYXQtZGF0ZXBpY2tlci1yYW5nZS1mYWRlLWFtb3VudCc6ICcwLjInLFxuICAnbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQnOiAnMC4yJyxcbiAgJ21hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZSc6ICcxM3B4JyxcbiAgJ21hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZSc6ICcxMXB4JyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1oZWlnaHQnOiAnNDhweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWluaW11bS1oZWlnaHQnOiAnMzZweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWF4aW11bS1oZWlnaHQnOiAnNDhweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1oZWlnaHQnOiAnNjRweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1taW5pbXVtLWhlaWdodCc6ICc0OHB4JyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1heGltdW0taGVpZ2h0JzogJzY0cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdHJhbnNpdGlvbic6ICcyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpJyxcbiAgJ21hdC1tZW51LXNpZGUtcGFkZGluZyc6ICcxNnB4JyxcbiAgJ21lbnUtbWVudS1pdGVtLWhlaWdodCc6ICc0OHB4JyxcbiAgJ21lbnUtbWVudS1pY29uLW1hcmdpbic6ICcxNnB4JyxcbiAgJ21hdC1wYWdpbmF0b3ItaGVpZ2h0JzogJzU2cHgnLFxuICAnbWF0LXBhZ2luYXRvci1taW5pbXVtLWhlaWdodCc6ICc0MHB4JyxcbiAgJ21hdC1wYWdpbmF0b3ItbWF4aW11bS1oZWlnaHQnOiAnNTZweCcsXG4gICdtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0JzogJzcycHgnLFxuICAnbWF0LXN0ZXBwZXItaGVhZGVyLW1pbmltdW0taGVpZ2h0JzogJzQycHgnLFxuICAnbWF0LXN0ZXBwZXItaGVhZGVyLW1heGltdW0taGVpZ2h0JzogJzcycHgnLFxuICAnbWF0LXN0ZXBwZXItbGFiZWwtaGVhZGVyLWhlaWdodCc6ICcyNHB4JyxcbiAgJ21hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbS10b3AtZ2FwJzogJzE2cHgnLFxuICAnbWF0LXN0ZXBwZXItbGFiZWwtbWluLXdpZHRoJzogJzUwcHgnLFxuICAnbWF0LXZlcnRpY2FsLXN0ZXBwZXItY29udGVudC1tYXJnaW4nOiAnMzZweCcsXG4gICdtYXQtc3RlcHBlci1zaWRlLWdhcCc6ICcyNHB4JyxcbiAgJ21hdC1zdGVwcGVyLWxpbmUtd2lkdGgnOiAnMXB4JyxcbiAgJ21hdC1zdGVwcGVyLWxpbmUtZ2FwJzogJzhweCcsXG4gICdtYXQtc3RlcC1zdWItbGFiZWwtZm9udC1zaXplJzogJzEycHgnLFxuICAnbWF0LXN0ZXAtaGVhZGVyLWljb24tc2l6ZSc6ICcxNnB4JyxcbiAgJ21hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0JzogJzQ0cHgnLFxuICAnbWF0LXRvb2xiYXItaGVpZ2h0LWRlc2t0b3AnOiAnNjRweCcsXG4gICdtYXQtdG9vbGJhci1tYXhpbXVtLWhlaWdodC1kZXNrdG9wJzogJzY0cHgnLFxuICAnbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtZGVza3RvcCc6ICc0NHB4JyxcbiAgJ21hdC10b29sYmFyLWhlaWdodC1tb2JpbGUnOiAnNTZweCcsXG4gICdtYXQtdG9vbGJhci1tYXhpbXVtLWhlaWdodC1tb2JpbGUnOiAnNTZweCcsXG4gICdtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1tb2JpbGUnOiAnNDRweCcsXG4gICdtYXQtdG9vbHRpcC10YXJnZXQtaGVpZ2h0JzogJzIycHgnLFxuICAnbWF0LXRvb2x0aXAtZm9udC1zaXplJzogJzEwcHgnLFxuICAnbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZyc6ICc2cHgnLFxuICAnbWF0LXRvb2x0aXAtaGFuZHNldC10YXJnZXQtaGVpZ2h0JzogJzMwcHgnLFxuICAnbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUnOiAnMTRweCcsXG4gICdtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmcnOiAnOHB4JyxcbiAgJ21hdC10cmVlLW5vZGUtaGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LXRyZWUtbm9kZS1taW5pbXVtLWhlaWdodCc6ICcyNHB4JyxcbiAgJ21hdC10cmVlLW5vZGUtbWF4aW11bS1oZWlnaHQnOiAnNDhweCcsXG59O1xuXG4vKipcbiAqIE1hdGVyaWFsIHZhcmlhYmxlcyAqKndpdGhvdXQgYSBgbWF0LWAgcHJlZml4KiogdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWMgQVBJXG4gKiBhbmQgd2hpY2ggc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggdGhlaXIgdmFsdWVzLiBUaGVzZSBzaG91bGQgYmUgbWlncmF0ZWQgb25seSB3aGVuIHRoZXJlJ3MgYVxuICogTWF0ZXJpYWwgaW1wb3J0LCBiZWNhdXNlIHRoZWlyIG5hbWVzIGNvdWxkIGNvbmZsaWN0IHdpdGggb3RoZXIgdmFyaWFibGVzIGluIHRoZSB1c2VyJ3MgYXBwLlxuICovXG5leHBvcnQgY29uc3QgdW5wcmVmaXhlZFJlbW92ZWRWYXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICd6LWluZGV4LWZhYic6ICcyMCcsXG4gICd6LWluZGV4LWRyYXdlcic6ICcxMDAnLFxuICAnZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyxcbiAgJ3N3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uJzogJzQwMG1zJyxcbiAgJ3N3aWZ0LWVhc2Utb3V0LXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsXG4gICdzd2lmdC1lYXNlLW91dCc6ICdhbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknLFxuICAnc3dpZnQtZWFzZS1pbi1kdXJhdGlvbic6ICczMDBtcycsXG4gICdzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKScsXG4gICdzd2lmdC1lYXNlLWluJzogJ2FsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKScsXG4gICdzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbic6ICc1MDBtcycsXG4gICdzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyxcbiAgJ3N3aWZ0LWVhc2UtaW4tb3V0JzogJ2FsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSknLFxuICAnc3dpZnQtbGluZWFyLWR1cmF0aW9uJzogJzgwbXMnLFxuICAnc3dpZnQtbGluZWFyLXRpbWluZy1mdW5jdGlvbic6ICdsaW5lYXInLFxuICAnc3dpZnQtbGluZWFyJzogJ2FsbCA4MG1zIGxpbmVhcicsXG4gICdibGFjay04Ny1vcGFjaXR5JzogJ3JnYmEoYmxhY2ssIDAuODcpJyxcbiAgJ3doaXRlLTg3LW9wYWNpdHknOiAncmdiYSh3aGl0ZSwgMC44NyknLFxuICAnYmxhY2stMTItb3BhY2l0eSc6ICdyZ2JhKGJsYWNrLCAwLjEyKScsXG4gICd3aGl0ZS0xMi1vcGFjaXR5JzogJ3JnYmEod2hpdGUsIDAuMTIpJyxcbiAgJ2JsYWNrLTYtb3BhY2l0eSc6ICdyZ2JhKGJsYWNrLCAwLjA2KScsXG4gICd3aGl0ZS02LW9wYWNpdHknOiAncmdiYSh3aGl0ZSwgMC4wNiknLFxuICAnZGFyay1wcmltYXJ5LXRleHQnOiAncmdiYShibGFjaywgMC44NyknLFxuICAnZGFyay1zZWNvbmRhcnktdGV4dCc6ICdyZ2JhKGJsYWNrLCAwLjU0KScsXG4gICdkYXJrLWRpc2FibGVkLXRleHQnOiAncmdiYShibGFjaywgMC4zOCknLFxuICAnZGFyay1kaXZpZGVycyc6ICdyZ2JhKGJsYWNrLCAwLjEyKScsXG4gICdkYXJrLWZvY3VzZWQnOiAncmdiYShibGFjaywgMC4xMiknLFxuICAnbGlnaHQtcHJpbWFyeS10ZXh0JzogJ3doaXRlJyxcbiAgJ2xpZ2h0LXNlY29uZGFyeS10ZXh0JzogJ3JnYmEod2hpdGUsIDAuNyknLFxuICAnbGlnaHQtZGlzYWJsZWQtdGV4dCc6ICdyZ2JhKHdoaXRlLCAwLjUpJyxcbiAgJ2xpZ2h0LWRpdmlkZXJzJzogJ3JnYmEod2hpdGUsIDAuMTIpJyxcbiAgJ2xpZ2h0LWZvY3VzZWQnOiAncmdiYSh3aGl0ZSwgMC4xMiknLFxufTtcbiJdfQ==
|
|
@@ -36,11 +36,42 @@ exports.materialMixins = {
|
|
|
36
36
|
};
|
|
37
37
|
// The component themes all follow the same pattern so we can spare ourselves some typing.
|
|
38
38
|
[
|
|
39
|
-
'option',
|
|
40
|
-
'
|
|
41
|
-
'
|
|
42
|
-
'
|
|
43
|
-
'
|
|
39
|
+
'option',
|
|
40
|
+
'optgroup',
|
|
41
|
+
'pseudo-checkbox',
|
|
42
|
+
'autocomplete',
|
|
43
|
+
'badge',
|
|
44
|
+
'bottom-sheet',
|
|
45
|
+
'button',
|
|
46
|
+
'button-toggle',
|
|
47
|
+
'card',
|
|
48
|
+
'checkbox',
|
|
49
|
+
'chips',
|
|
50
|
+
'divider',
|
|
51
|
+
'table',
|
|
52
|
+
'datepicker',
|
|
53
|
+
'dialog',
|
|
54
|
+
'grid-list',
|
|
55
|
+
'icon',
|
|
56
|
+
'input',
|
|
57
|
+
'list',
|
|
58
|
+
'menu',
|
|
59
|
+
'paginator',
|
|
60
|
+
'progress-bar',
|
|
61
|
+
'progress-spinner',
|
|
62
|
+
'radio',
|
|
63
|
+
'select',
|
|
64
|
+
'sidenav',
|
|
65
|
+
'slide-toggle',
|
|
66
|
+
'slider',
|
|
67
|
+
'stepper',
|
|
68
|
+
'sort',
|
|
69
|
+
'tabs',
|
|
70
|
+
'toolbar',
|
|
71
|
+
'tooltip',
|
|
72
|
+
'snack-bar',
|
|
73
|
+
'form-field',
|
|
74
|
+
'tree',
|
|
44
75
|
].forEach(name => {
|
|
45
76
|
exports.materialMixins[`mat-${name}-theme`] = `${name}-theme`;
|
|
46
77
|
exports.materialMixins[`mat-${name}-color`] = `${name}-color`;
|
|
@@ -70,10 +101,28 @@ exports.materialVariables = {
|
|
|
70
101
|
};
|
|
71
102
|
// The palettes all follow the same pattern.
|
|
72
103
|
[
|
|
73
|
-
'red',
|
|
74
|
-
'
|
|
75
|
-
'
|
|
76
|
-
|
|
104
|
+
'red',
|
|
105
|
+
'pink',
|
|
106
|
+
'indigo',
|
|
107
|
+
'purple',
|
|
108
|
+
'deep-purple',
|
|
109
|
+
'blue',
|
|
110
|
+
'light-blue',
|
|
111
|
+
'cyan',
|
|
112
|
+
'teal',
|
|
113
|
+
'green',
|
|
114
|
+
'light-green',
|
|
115
|
+
'lime',
|
|
116
|
+
'yellow',
|
|
117
|
+
'amber',
|
|
118
|
+
'orange',
|
|
119
|
+
'deep-orange',
|
|
120
|
+
'brown',
|
|
121
|
+
'grey',
|
|
122
|
+
'gray',
|
|
123
|
+
'blue-grey',
|
|
124
|
+
'blue-gray',
|
|
125
|
+
].forEach(name => (exports.materialVariables[`mat-${name}`] = `${name}-palette`));
|
|
77
126
|
/** Mapping of CDK variables that should be renamed. */
|
|
78
127
|
exports.cdkVariables = {
|
|
79
128
|
'cdk-z-index-overlay-container': 'overlay-container-z-index',
|
|
@@ -206,4 +255,4 @@ exports.unprefixedRemovedVariables = {
|
|
|
206
255
|
'light-dividers': 'rgba(white, 0.12)',
|
|
207
256
|
'light-focused': 'rgba(white, 0.12)',
|
|
208
257
|
};
|
|
209
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvdGhlbWluZy1hcGktdjEyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCx5REFBeUQ7QUFDNUMsUUFBQSxjQUFjLEdBQTJCO0lBQ3BELFVBQVUsRUFBRSxNQUFNO0lBQ2xCLGdCQUFnQixFQUFFLFlBQVk7SUFDOUIsZ0JBQWdCLEVBQUUsWUFBWTtJQUM5Qix3QkFBd0IsRUFBRSxzQkFBc0I7SUFDaEQsNkJBQTZCLEVBQUUsNEJBQTRCO0lBQzNELHdCQUF3QixFQUFFLHNCQUFzQjtJQUNoRCxxQkFBcUIsRUFBRSxzQkFBc0I7SUFDN0MsZ0NBQWdDLEVBQUUsa0JBQWtCO0lBQ3BELGVBQWUsRUFBRSxXQUFXO0lBQzVCLDJCQUEyQixFQUFFLHVCQUF1QjtJQUNwRCwwQkFBMEIsRUFBRSxzQkFBc0I7SUFDbEQsWUFBWSxFQUFFLFFBQVE7SUFDdEIsa0JBQWtCLEVBQUUsY0FBYztJQUNsQyxrQkFBa0IsRUFBRSxjQUFjO0lBQ2xDLDZCQUE2QixFQUFFLHlCQUF5QjtJQUN4RCxtQ0FBbUMsRUFBRSwrQkFBK0I7SUFDcEUsbUNBQW1DLEVBQUUsK0JBQStCO0lBQ3BFLG9CQUFvQixFQUFFLGdCQUFnQjtJQUN0Qyw0RkFBNEY7SUFDNUYsZ0dBQWdHO0lBQ2hHLDJCQUEyQixFQUFFLGlCQUFpQjtJQUM5QywyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsZ0NBQWdDLEVBQUUsc0JBQXNCO0NBQ3pELENBQUM7QUFFRiwwRkFBMEY7QUFDMUY7SUFDRSxRQUFRLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVE7SUFDMUYsZUFBZSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVB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QW1DLEVBQUUsZ0NBQWdDO0lBQ3JFLG1CQUFtQixFQUFFLDBDQUEwQztJQUMvRCx1QkFBdUIsRUFBRSxNQUFNO0lBQy9CLDhCQUE4QixFQUFFLFFBQVE7SUFDeEMsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxrQkFBa0IsRUFBRSxtQkFBbUI7SUFDdkMsa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLGtCQUFrQixFQUFFLG1CQUFtQjtJQUN2QyxrQkFBa0IsRUFBRSxtQkFBbUI7SUFDdkMsaUJBQWlCLEVBQUUsbUJBQW1CO0lBQ3RDLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxtQkFBbUIsRUFBRSxtQkFBbUI7SUFDeEMscUJBQXFCLEVBQUUsbUJBQW1CO0lBQzFDLG9CQUFvQixFQUFFLG1CQUFtQjtJQUN6QyxlQUFlLEVBQUUsbUJBQW1CO0lBQ3BDLGNBQWMsRUFBRSxtQkFBbUI7SUFDbkMsb0JBQW9CLEVBQUUsT0FBTztJQUM3QixzQkFBc0IsRUFBRSxrQkFBa0I7SUFDMUMscUJBQXFCLEVBQUUsa0JBQWtCO0lBQ3pDLGdCQUFnQixFQUFFLG1CQUFtQjtJQUNyQyxlQUFlLEVBQUUsbUJBQW1CO0NBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqIE1hcHBpbmcgb2YgTWF0ZXJpYWwgbWl4aW5zIHRoYXQgc2hvdWxkIGJlIHJlbmFtZWQuICovXG5leHBvcnQgY29uc3QgbWF0ZXJpYWxNaXhpbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdtYXQtY29yZSc6ICdjb3JlJyxcbiAgJ21hdC1jb3JlLWNvbG9yJzogJ2NvcmUtY29sb3InLFxuICAnbWF0LWNvcmUtdGhlbWUnOiAnY29yZS10aGVtZScsXG4gICdhbmd1bGFyLW1hdGVyaWFsLXRoZW1lJzogJ2FsbC1jb21wb25lbnQtdGhlbWVzJyxcbiAgJ2FuZ3VsYXItbWF0ZXJpYWwtdHlwb2dyYXBoeSc6ICdhbGwtY29tcG9uZW50LXR5cG9ncmFwaGllcycsXG4gICdhbmd1bGFyLW1hdGVyaWFsLWNvbG9yJzogJ2FsbC1jb21wb25lbnQtY29sb3JzJyxcbiAgJ21hdC1iYXNlLXR5cG9ncmFwaHknOiAndHlwb2dyYXBoeS1oaWVyYXJjaHknLFxuICAnbWF0LXR5cG9ncmFwaHktbGV2ZWwtdG8tc3R5bGVzJzogJ3R5cG9ncmFwaHktbGV2ZWwnLFxuICAnbWF0LWVsZXZhdGlvbic6ICdlbGV2YXRpb24nLFxuICAnbWF0LW92ZXJyaWRhYmxlLWVsZXZhdGlvbic6ICdvdmVycmlkYWJsZS1lbGV2YXRpb24nLFxuICAnbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uJzogJ2VsZXZhdGlvbi10cmFuc2l0aW9uJyxcbiAgJ21hdC1yaXBwbGUnOiAncmlwcGxlJyxcbiAgJ21hdC1yaXBwbGUtY29sb3InOiAncmlwcGxlLWNvbG9yJyxcbiAgJ21hdC1yaXBwbGUtdGhlbWUnOiAncmlwcGxlLXRoZW1lJyxcbiAgJ21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycyc6ICdzdHJvbmctZm9jdXMtaW5kaWNhdG9ycycsXG4gICdtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3InOiAnc3Ryb25nLWZvY3VzLWluZGljYXRvcnMtY29sb3InLFxuICAnbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lJzogJ3N0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLXRoZW1lJyxcbiAgJ21hdC1mb250LXNob3J0aGFuZCc6ICdmb250LXNob3J0aGFuZCcsXG4gIC8vIFRoZSBleHBhbnNpb24gcGFuZWwgaXMgYSBzcGVjaWFsIGNhc2UsIGJlY2F1c2UgdGhlIHBhY2thZ2UgaXMgY2FsbGVkIGBleHBhbnNpb25gLCBidXQgdGhlXG4gIC8vIG1peGlucyB3ZXJlIHByZWZpeGVkIHdpdGggYGV4cGFuc2lvbi1wYW5lbGAuIFRoaXMgd2FzIGNvcnJlY3RlZCBieSB0aGUgU2FzcyBtb2R1bGUgbWlncmF0aW9uLlxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC10aGVtZSc6ICdleHBhbnNpb24tdGhlbWUnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1jb2xvcic6ICdleHBhbnNpb24tY29sb3InLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC10eXBvZ3JhcGh5JzogJ2V4cGFuc2lvbi10eXBvZ3JhcGh5Jyxcbn07XG5cbi8vIFRoZSBjb21wb25lbnQgdGhlbWVzIGFsbCBmb2xsb3cgdGhlIHNhbWUgcGF0dGVybiBzbyB3ZSBjYW4gc3BhcmUgb3Vyc2VsdmVzIHNvbWUgdHlwaW5nLlxuW1xuICAnb3B0aW9uJywgJ29wdGdyb3VwJywgJ3BzZXVkby1jaGVja2JveCcsICdhdXRvY29tcGxldGUnLCAnYmFkZ2UnLCAnYm90dG9tLXNoZWV0JywgJ2J1dHRvbicsXG4gICdidXR0b24tdG9nZ2xlJywgJ2NhcmQnLCAnY2hlY2tib3gnLCAnY2hpcHMnLCAnZGl2aWRlcicsICd0YWJsZScsICdkYXRlcGlja2VyJywgJ2RpYWxvZycsXG4gICdncmlkLWxpc3QnLCAnaWNvbicsICdpbnB1dCcsICdsaXN0JywgJ21lbnUnLCAncGFnaW5hdG9yJywgJ3Byb2dyZXNzLWJhcicsICdwcm9ncmVzcy1zcGlubmVyJyxcbiAgJ3JhZGlvJywgJ3NlbGVjdCcsICdzaWRlbmF2JywgJ3NsaWRlLXRvZ2dsZScsICdzbGlkZXInLCAnc3RlcHBlcicsICdzb3J0JywgJ3RhYnMnLCAndG9vbGJhcicsXG4gICd0b29sdGlwJywgJ3NuYWNrLWJhcicsICdmb3JtLWZpZWxkJywgJ3RyZWUnXG5dLmZvckVhY2gobmFtZSA9PiB7XG4gIG1hdGVyaWFsTWl4aW5zW2BtYXQtJHtuYW1lfS10aGVtZWBdID0gYCR7bmFtZX0tdGhlbWVgO1xuICBtYXRlcmlhbE1peGluc1tgbWF0LSR7bmFtZX0tY29sb3JgXSA9IGAke25hbWV9LWNvbG9yYDtcbiAgbWF0ZXJpYWxNaXhpbnNbYG1hdC0ke25hbWV9LXR5cG9ncmFwaHlgXSA9IGAke25hbWV9LXR5cG9ncmFwaHlgO1xufSk7XG5cbi8qKiBNYXBwaW5nIG9mIE1hdGVyaWFsIGZ1bmN0aW9ucyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IG1hdGVyaWFsRnVuY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnbWF0LWNvbG9yJzogJ2dldC1jb2xvci1mcm9tLXBhbGV0dGUnLFxuICAnbWF0LWNvbnRyYXN0JzogJ2dldC1jb250cmFzdC1jb2xvci1mcm9tLXBhbGV0dGUnLFxuICAnbWF0LXBhbGV0dGUnOiAnZGVmaW5lLXBhbGV0dGUnLFxuICAnbWF0LWRhcmstdGhlbWUnOiAnZGVmaW5lLWRhcmstdGhlbWUnLFxuICAnbWF0LWxpZ2h0LXRoZW1lJzogJ2RlZmluZS1saWdodC10aGVtZScsXG4gICdtYXQtdHlwb2dyYXBoeS1sZXZlbCc6ICdkZWZpbmUtdHlwb2dyYXBoeS1sZXZlbCcsXG4gICdtYXQtdHlwb2dyYXBoeS1jb25maWcnOiAnZGVmaW5lLXR5cG9ncmFwaHktY29uZmlnJyxcbiAgJ21hdC1mb250LXNpemUnOiAnZm9udC1zaXplJyxcbiAgJ21hdC1saW5lLWhlaWdodCc6ICdsaW5lLWhlaWdodCcsXG4gICdtYXQtZm9udC13ZWlnaHQnOiAnZm9udC13ZWlnaHQnLFxuICAnbWF0LWxldHRlci1zcGFjaW5nJzogJ2xldHRlci1zcGFjaW5nJyxcbiAgJ21hdC1mb250LWZhbWlseSc6ICdmb250LWZhbWlseScsXG59O1xuXG4vKiogTWFwcGluZyBvZiBNYXRlcmlhbCB2YXJpYWJsZXMgdGhhdCBzaG91bGQgYmUgcmVuYW1lZC4gKi9cbmV4cG9ydCBjb25zdCBtYXRlcmlhbFZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ21hdC1saWdodC10aGVtZS1iYWNrZ3JvdW5kJzogJ2xpZ2h0LXRoZW1lLWJhY2tncm91bmQtcGFsZXR0ZScsXG4gICdtYXQtZGFyay10aGVtZS1iYWNrZ3JvdW5kJzogJ2RhcmstdGhlbWUtYmFja2dyb3VuZC1wYWxldHRlJyxcbiAgJ21hdC1saWdodC10aGVtZS1mb3JlZ3JvdW5kJzogJ2xpZ2h0LXRoZW1lLWZvcmVncm91bmQtcGFsZXR0ZScsXG4gICdtYXQtZGFyay10aGVtZS1mb3JlZ3JvdW5kJzogJ2RhcmstdGhlbWUtZm9yZWdyb3VuZC1wYWxldHRlJyxcbn07XG5cbi8vIFRoZSBwYWxldHRlcyBhbGwgZm9sbG93IHRoZSBzYW1lIHBhdHRlcm4uXG5bXG4gICdyZWQnLCAncGluaycsICdpbmRpZ28nLCAncHVycGxlJywgJ2RlZXAtcHVycGxlJywgJ2JsdWUnLCAnbGlnaHQtYmx1ZScsICdjeWFuJywgJ3RlYWwnLCAnZ3JlZW4nLFxuICAnbGlnaHQtZ3JlZW4nLCAnbGltZScsICd5ZWxsb3cnLCAnYW1iZXInLCAnb3JhbmdlJywgJ2RlZXAtb3JhbmdlJywgJ2Jyb3duJywgJ2dyZXknLCAnZ3JheScsXG4gICdibHVlLWdyZXknLCAnYmx1ZS1ncmF5J1xuXS5mb3JFYWNoKG5hbWUgPT4gbWF0ZXJpYWxWYXJpYWJsZXNbYG1hdC0ke25hbWV9YF0gPSBgJHtuYW1lfS1wYWxldHRlYCk7XG5cbi8qKiBNYXBwaW5nIG9mIENESyB2YXJpYWJsZXMgdGhhdCBzaG91bGQgYmUgcmVuYW1lZC4gKi9cbmV4cG9ydCBjb25zdCBjZGtWYXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdjZGstei1pbmRleC1vdmVybGF5LWNvbnRhaW5lcic6ICdvdmVybGF5LWNvbnRhaW5lci16LWluZGV4JyxcbiAgJ2Nkay16LWluZGV4LW92ZXJsYXknOiAnb3ZlcmxheS16LWluZGV4JyxcbiAgJ2Nkay16LWluZGV4LW92ZXJsYXktYmFja2Ryb3AnOiAnb3ZlcmxheS1iYWNrZHJvcC16LWluZGV4JyxcbiAgJ2Nkay1vdmVybGF5LWRhcmstYmFja2Ryb3AtYmFja2dyb3VuZCc6ICdvdmVybGF5LWJhY2tkcm9wLWNvbG9yJyxcbn07XG5cbi8qKiBNYXBwaW5nIG9mIENESyBtaXhpbnMgdGhhdCBzaG91bGQgYmUgcmVuYW1lZC4gKi9cbmV4cG9ydCBjb25zdCBjZGtNaXhpbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdjZGstb3ZlcmxheSc6ICdvdmVybGF5JyxcbiAgJ2Nkay1hMTF5JzogJ2ExMXktdmlzdWFsbHktaGlkZGVuJyxcbiAgJ2Nkay1oaWdoLWNvbnRyYXN0JzogJ2hpZ2gtY29udHJhc3QnLFxuICAnY2RrLXRleHQtZmllbGQtYXV0b2ZpbGwtY29sb3InOiAndGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvcicsXG4gIC8vIFRoaXMgb25lIHdhcyBzcGxpdCB1cCBpbnRvIHR3byBtaXhpbnMgd2hpY2ggaXMgdHJpY2tpZXIgdG9cbiAgLy8gbWlncmF0ZSBzbyBmb3Igbm93IHdlIGZvcndhcmQgdG8gdGhlIGRlcHJlY2F0ZWQgdmFyaWFudC5cbiAgJ2Nkay10ZXh0LWZpZWxkJzogJ3RleHQtZmllbGQnLFxufTtcblxuLyoqXG4gKiBNYXRlcmlhbCB2YXJpYWJsZXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWMgQVBJXG4gKiBhbmQgd2hpY2ggc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggdGhlaXIgdmFsdWVzLlxuICovXG5leHBvcnQgY29uc3QgcmVtb3ZlZE1hdGVyaWFsVmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAvLyBOb3RlOiB0aGVyZSdzIGFsc28gYSB1c2FnZSBvZiBhIHZhcmlhYmxlIGNhbGxlZCBgJHBpYCwgYnV0IHRoZSBuYW1lIGlzIHNob3J0IGVub3VnaCB0aGF0XG4gIC8vIGl0IG1hdGNoZXMgdGhpbmdzIGxpa2UgYCRtYXQtcGlua2AuIERvbid0IG1pZ3JhdGUgaXQgc2luY2UgaXQncyB1bmxpa2VseSB0byBiZSB1c2VkLlxuICAnbWF0LXhzbWFsbCc6ICdtYXgtd2lkdGg6IDU5OXB4JyxcbiAgJ21hdC1zbWFsbCc6ICdtYXgtd2lkdGg6IDk1OXB4JyxcbiAgJ21hdC10b2dnbGUtcGFkZGluZyc6ICc4cHgnLFxuICAnbWF0LXRvZ2dsZS1zaXplJzogJzIwcHgnLFxuICAnbWF0LWxpbmVhci1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMC4xKScsXG4gICdtYXQtZmFzdC1vdXQtc2xvdy1pbi10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKScsXG4gICdtYXQtZmFzdC1vdXQtbGluZWFyLWluLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC40LCAwLCAxLCAxKScsXG4gICdtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tZHVyYXRpb24nOiAnMjgwbXMnLFxuICAnbWF0LWVsZXZhdGlvbi10cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpJyxcbiAgJ21hdC1lbGV2YXRpb24tY29sb3InOiAnIzAwMCcsXG4gICdtYXQtZWxldmF0aW9uLW9wYWNpdHknOiAnMScsXG4gICdtYXQtZWxldmF0aW9uLXByZWZpeCc6IGAnbWF0LWVsZXZhdGlvbi16J2AsXG4gICdtYXQtcmlwcGxlLWNvbG9yLW9wYWNpdHknOiAnMC4xJyxcbiAgJ21hdC1iYWRnZS1mb250LXNpemUnOiAnMTJweCcsXG4gICdtYXQtYmFkZ2UtZm9udC13ZWlnaHQnOiAnNjAwJyxcbiAgJ21hdC1iYWRnZS1kZWZhdWx0LXNpemUnOiAnMjJweCcsXG4gICdtYXQtYmFkZ2Utc21hbGwtc2l6ZSc6ICcxNnB4JyxcbiAgJ21hdC1iYWRnZS1sYXJnZS1zaXplJzogJzI4cHgnLFxuICAnbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtaGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LWJ1dHRvbi10b2dnbGUtc3RhbmRhcmQtbWluaW11bS1oZWlnaHQnOiAnMjRweCcsXG4gICdtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1tYXhpbXVtLWhlaWdodCc6ICc0OHB4JyxcbiAgJ21hdC1jaGlwLXJlbW92ZS1mb250LXNpemUnOiAnMThweCcsXG4gICdtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC10b2RheS1ib3gtc2hhZG93LXdpZHRoJzogJzFweCcsXG4gICdtYXQtZGF0ZXBpY2tlci1zZWxlY3RlZC1mYWRlLWFtb3VudCc6ICcwLjYnLFxuICAnbWF0LWRhdGVwaWNrZXItcmFuZ2UtZmFkZS1hbW91bnQnOiAnMC4yJyxcbiAgJ21hdC1kYXRlcGlja2VyLXRvZGF5LWZhZGUtYW1vdW50JzogJzAuMicsXG4gICdtYXQtY2FsZW5kYXItYm9keS1mb250LXNpemUnOiAnMTNweCcsXG4gICdtYXQtY2FsZW5kYXItd2Vla2RheS10YWJsZS1mb250LXNpemUnOiAnMTFweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtaGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1pbmltdW0taGVpZ2h0JzogJzM2cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItY29sbGFwc2VkLW1heGltdW0taGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtaGVpZ2h0JzogJzY0cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItZXhwYW5kZWQtbWluaW11bS1oZWlnaHQnOiAnNDhweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1tYXhpbXVtLWhlaWdodCc6ICc2NHB4JyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLXRyYW5zaXRpb24nOiAnMjI1bXMgY3ViaWMtYmV6aWVyKDAuNCwgMCwgMC4yLCAxKScsXG4gICdtYXQtbWVudS1zaWRlLXBhZGRpbmcnOiAnMTZweCcsXG4gICdtZW51LW1lbnUtaXRlbS1oZWlnaHQnOiAnNDhweCcsXG4gICdtZW51LW1lbnUtaWNvbi1tYXJnaW4nOiAnMTZweCcsXG4gICdtYXQtcGFnaW5hdG9yLWhlaWdodCc6ICc1NnB4JyxcbiAgJ21hdC1wYWdpbmF0b3ItbWluaW11bS1oZWlnaHQnOiAnNDBweCcsXG4gICdtYXQtcGFnaW5hdG9yLW1heGltdW0taGVpZ2h0JzogJzU2cHgnLFxuICAnbWF0LXN0ZXBwZXItaGVhZGVyLWhlaWdodCc6ICc3MnB4JyxcbiAgJ21hdC1zdGVwcGVyLWhlYWRlci1taW5pbXVtLWhlaWdodCc6ICc0MnB4JyxcbiAgJ21hdC1zdGVwcGVyLWhlYWRlci1tYXhpbXVtLWhlaWdodCc6ICc3MnB4JyxcbiAgJ21hdC1zdGVwcGVyLWxhYmVsLWhlYWRlci1oZWlnaHQnOiAnMjRweCcsXG4gICdtYXQtc3RlcHBlci1sYWJlbC1wb3NpdGlvbi1ib3R0b20tdG9wLWdhcCc6ICcxNnB4JyxcbiAgJ21hdC1zdGVwcGVyLWxhYmVsLW1pbi13aWR0aCc6ICc1MHB4JyxcbiAgJ21hdC12ZXJ0aWNhbC1zdGVwcGVyLWNvbnRlbnQtbWFyZ2luJzogJzM2cHgnLFxuICAnbWF0LXN0ZXBwZXItc2lkZS1nYXAnOiAnMjRweCcsXG4gICdtYXQtc3RlcHBlci1saW5lLXdpZHRoJzogJzFweCcsXG4gICdtYXQtc3RlcHBlci1saW5lLWdhcCc6ICc4cHgnLFxuICAnbWF0LXN0ZXAtc3ViLWxhYmVsLWZvbnQtc2l6ZSc6ICcxMnB4JyxcbiAgJ21hdC1zdGVwLWhlYWRlci1pY29uLXNpemUnOiAnMTZweCcsXG4gICdtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodCc6ICc0NHB4JyxcbiAgJ21hdC10b29sYmFyLWhlaWdodC1kZXNrdG9wJzogJzY0cHgnLFxuICAnbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtZGVza3RvcCc6ICc2NHB4JyxcbiAgJ21hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0LWRlc2t0b3AnOiAnNDRweCcsXG4gICdtYXQtdG9vbGJhci1oZWlnaHQtbW9iaWxlJzogJzU2cHgnLFxuICAnbWF0LXRvb2xiYXItbWF4aW11bS1oZWlnaHQtbW9iaWxlJzogJzU2cHgnLFxuICAnbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtbW9iaWxlJzogJzQ0cHgnLFxuICAnbWF0LXRvb2x0aXAtdGFyZ2V0LWhlaWdodCc6ICcyMnB4JyxcbiAgJ21hdC10b29sdGlwLWZvbnQtc2l6ZSc6ICcxMHB4JyxcbiAgJ21hdC10b29sdGlwLXZlcnRpY2FsLXBhZGRpbmcnOiAnNnB4JyxcbiAgJ21hdC10b29sdGlwLWhhbmRzZXQtdGFyZ2V0LWhlaWdodCc6ICczMHB4JyxcbiAgJ21hdC10b29sdGlwLWhhbmRzZXQtZm9udC1zaXplJzogJzE0cHgnLFxuICAnbWF0LXRvb2x0aXAtaGFuZHNldC12ZXJ0aWNhbC1wYWRkaW5nJzogJzhweCcsXG4gICdtYXQtdHJlZS1ub2RlLWhlaWdodCc6ICc0OHB4JyxcbiAgJ21hdC10cmVlLW5vZGUtbWluaW11bS1oZWlnaHQnOiAnMjRweCcsXG4gICdtYXQtdHJlZS1ub2RlLW1heGltdW0taGVpZ2h0JzogJzQ4cHgnLFxufTtcblxuLyoqXG4gKiBNYXRlcmlhbCB2YXJpYWJsZXMgKip3aXRob3V0IGEgYG1hdC1gIHByZWZpeCoqIHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgcHVibGljIEFQSVxuICogYW5kIHdoaWNoIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoIHRoZWlyIHZhbHVlcy4gVGhlc2Ugc2hvdWxkIGJlIG1pZ3JhdGVkIG9ubHkgd2hlbiB0aGVyZSdzIGFcbiAqIE1hdGVyaWFsIGltcG9ydCwgYmVjYXVzZSB0aGVpciBuYW1lcyBjb3VsZCBjb25mbGljdCB3aXRoIG90aGVyIHZhcmlhYmxlcyBpbiB0aGUgdXNlcidzIGFwcC5cbiAqL1xuZXhwb3J0IGNvbnN0IHVucHJlZml4ZWRSZW1vdmVkVmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnei1pbmRleC1mYWInOiAnMjAnLFxuICAnei1pbmRleC1kcmF3ZXInOiAnMTAwJyxcbiAgJ2Vhc2UtaW4tb3V0LWN1cnZlLWZ1bmN0aW9uJzogJ2N1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKScsXG4gICdzd2lmdC1lYXNlLW91dC1kdXJhdGlvbic6ICc0MDBtcycsXG4gICdzd2lmdC1lYXNlLW91dC10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknLFxuICAnc3dpZnQtZWFzZS1vdXQnOiAnYWxsIDQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJyxcbiAgJ3N3aWZ0LWVhc2UtaW4tZHVyYXRpb24nOiAnMzAwbXMnLFxuICAnc3dpZnQtZWFzZS1pbi10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMiknLFxuICAnc3dpZnQtZWFzZS1pbic6ICdhbGwgMzAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMiknLFxuICAnc3dpZnQtZWFzZS1pbi1vdXQtZHVyYXRpb24nOiAnNTAwbXMnLFxuICAnc3dpZnQtZWFzZS1pbi1vdXQtdGltaW5nLWZ1bmN0aW9uJzogJ2N1YmljLWJlemllcigwLjM1LCAwLCAwLjI1LCAxKScsXG4gICdzd2lmdC1lYXNlLWluLW91dCc6ICdhbGwgNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyxcbiAgJ3N3aWZ0LWxpbmVhci1kdXJhdGlvbic6ICc4MG1zJyxcbiAgJ3N3aWZ0LWxpbmVhci10aW1pbmctZnVuY3Rpb24nOiAnbGluZWFyJyxcbiAgJ3N3aWZ0LWxpbmVhcic6ICdhbGwgODBtcyBsaW5lYXInLFxuICAnYmxhY2stODctb3BhY2l0eSc6ICdyZ2JhKGJsYWNrLCAwLjg3KScsXG4gICd3aGl0ZS04Ny1vcGFjaXR5JzogJ3JnYmEod2hpdGUsIDAuODcpJyxcbiAgJ2JsYWNrLTEyLW9wYWNpdHknOiAncmdiYShibGFjaywgMC4xMiknLFxuICAnd2hpdGUtMTItb3BhY2l0eSc6ICdyZ2JhKHdoaXRlLCAwLjEyKScsXG4gICdibGFjay02LW9wYWNpdHknOiAncmdiYShibGFjaywgMC4wNiknLFxuICAnd2hpdGUtNi1vcGFjaXR5JzogJ3JnYmEod2hpdGUsIDAuMDYpJyxcbiAgJ2RhcmstcHJpbWFyeS10ZXh0JzogJ3JnYmEoYmxhY2ssIDAuODcpJyxcbiAgJ2Rhcmstc2Vjb25kYXJ5LXRleHQnOiAncmdiYShibGFjaywgMC41NCknLFxuICAnZGFyay1kaXNhYmxlZC10ZXh0JzogJ3JnYmEoYmxhY2ssIDAuMzgpJyxcbiAgJ2RhcmstZGl2aWRlcnMnOiAncmdiYShibGFjaywgMC4xMiknLFxuICAnZGFyay1mb2N1c2VkJzogJ3JnYmEoYmxhY2ssIDAuMTIpJyxcbiAgJ2xpZ2h0LXByaW1hcnktdGV4dCc6ICd3aGl0ZScsXG4gICdsaWdodC1zZWNvbmRhcnktdGV4dCc6ICdyZ2JhKHdoaXRlLCAwLjcpJyxcbiAgJ2xpZ2h0LWRpc2FibGVkLXRleHQnOiAncmdiYSh3aGl0ZSwgMC41KScsXG4gICdsaWdodC1kaXZpZGVycyc6ICdyZ2JhKHdoaXRlLCAwLjEyKScsXG4gICdsaWdodC1mb2N1c2VkJzogJ3JnYmEod2hpdGUsIDAuMTIpJyxcbn07XG4iXX0=
|
|
258
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvdGhlbWluZy1hcGktdjEyL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCx5REFBeUQ7QUFDNUMsUUFBQSxjQUFjLEdBQTJCO0lBQ3BELFVBQVUsRUFBRSxNQUFNO0lBQ2xCLGdCQUFnQixFQUFFLFlBQVk7SUFDOUIsZ0JBQWdCLEVBQUUsWUFBWTtJQUM5Qix3QkFBd0IsRUFBRSxzQkFBc0I7SUFDaEQsNkJBQTZCLEVBQUUsNEJBQTRCO0lBQzNELHdCQUF3QixFQUFFLHNCQUFzQjtJQUNoRCxxQkFBcUIsRUFBRSxzQkFBc0I7SUFDN0MsZ0NBQWdDLEVBQUUsa0JBQWtCO0lBQ3BELGVBQWUsRUFBRSxXQUFXO0lBQzVCLDJCQUEyQixFQUFFLHVCQUF1QjtJQUNwRCwwQkFBMEIsRUFBRSxzQkFBc0I7SUFDbEQsWUFBWSxFQUFFLFFBQVE7SUFDdEIsa0JBQWtCLEVBQUUsY0FBYztJQUNsQyxrQkFBa0IsRUFBRSxjQUFjO0lBQ2xDLDZCQUE2QixFQUFFLHlCQUF5QjtJQUN4RCxtQ0FBbUMsRUFBRSwrQkFBK0I7SUFDcEUsbUNBQW1DLEVBQUUsK0JBQStCO0lBQ3BFLG9CQUFvQixFQUFFLGdCQUFnQjtJQUN0Qyw0RkFBNEY7SUFDNUYsZ0dBQWdHO0lBQ2hHLDJCQUEyQixFQUFFLGlCQUFpQjtJQUM5QywyQkFBMkIsRUFBRSxpQkFBaUI7SUFDOUMsZ0NBQWdDLEVBQUUsc0JBQXNCO0NBQ3pELENBQUM7QUFFRiwwRkFBMEY7QUFDMUY7SUFDRSxRQUFRO0lBQ1IsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsT0FBTztJQUNQLGNBQWM7SUFDZCxRQUFRO0lBQ1IsZUFBZTtJQUNmLE1BQU07SUFDTixVQUFVO0lB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LG1DQUFtQyxFQUFFLGdDQUFnQztJQUNyRSxtQkFBbUIsRUFBRSwwQ0FBMEM7SUFDL0QsdUJBQXVCLEVBQUUsTUFBTTtJQUMvQiw4QkFBOEIsRUFBRSxRQUFRO0lBQ3hDLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLGtCQUFrQixFQUFFLG1CQUFtQjtJQUN2QyxrQkFBa0IsRUFBRSxtQkFBbUI7SUFDdkMsa0JBQWtCLEVBQUUsbUJBQW1CO0lBQ3ZDLGlCQUFpQixFQUFFLG1CQUFtQjtJQUN0QyxpQkFBaUIsRUFBRSxtQkFBbUI7SUFDdEMsbUJBQW1CLEVBQUUsbUJBQW1CO0lBQ3hDLHFCQUFxQixFQUFFLG1CQUFtQjtJQUMxQyxvQkFBb0IsRUFBRSxtQkFBbUI7SUFDekMsZUFBZSxFQUFFLG1CQUFtQjtJQUNwQyxjQUFjLEVBQUUsbUJBQW1CO0lBQ25DLG9CQUFvQixFQUFFLE9BQU87SUFDN0Isc0JBQXNCLEVBQUUsa0JBQWtCO0lBQzFDLHFCQUFxQixFQUFFLGtCQUFrQjtJQUN6QyxnQkFBZ0IsRUFBRSxtQkFBbUI7SUFDckMsZUFBZSxFQUFFLG1CQUFtQjtDQUNyQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKiBNYXBwaW5nIG9mIE1hdGVyaWFsIG1peGlucyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IG1hdGVyaWFsTWl4aW5zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnbWF0LWNvcmUnOiAnY29yZScsXG4gICdtYXQtY29yZS1jb2xvcic6ICdjb3JlLWNvbG9yJyxcbiAgJ21hdC1jb3JlLXRoZW1lJzogJ2NvcmUtdGhlbWUnLFxuICAnYW5ndWxhci1tYXRlcmlhbC10aGVtZSc6ICdhbGwtY29tcG9uZW50LXRoZW1lcycsXG4gICdhbmd1bGFyLW1hdGVyaWFsLXR5cG9ncmFwaHknOiAnYWxsLWNvbXBvbmVudC10eXBvZ3JhcGhpZXMnLFxuICAnYW5ndWxhci1tYXRlcmlhbC1jb2xvcic6ICdhbGwtY29tcG9uZW50LWNvbG9ycycsXG4gICdtYXQtYmFzZS10eXBvZ3JhcGh5JzogJ3R5cG9ncmFwaHktaGllcmFyY2h5JyxcbiAgJ21hdC10eXBvZ3JhcGh5LWxldmVsLXRvLXN0eWxlcyc6ICd0eXBvZ3JhcGh5LWxldmVsJyxcbiAgJ21hdC1lbGV2YXRpb24nOiAnZWxldmF0aW9uJyxcbiAgJ21hdC1vdmVycmlkYWJsZS1lbGV2YXRpb24nOiAnb3ZlcnJpZGFibGUtZWxldmF0aW9uJyxcbiAgJ21hdC1lbGV2YXRpb24tdHJhbnNpdGlvbic6ICdlbGV2YXRpb24tdHJhbnNpdGlvbicsXG4gICdtYXQtcmlwcGxlJzogJ3JpcHBsZScsXG4gICdtYXQtcmlwcGxlLWNvbG9yJzogJ3JpcHBsZS1jb2xvcicsXG4gICdtYXQtcmlwcGxlLXRoZW1lJzogJ3JpcHBsZS10aGVtZScsXG4gICdtYXQtc3Ryb25nLWZvY3VzLWluZGljYXRvcnMnOiAnc3Ryb25nLWZvY3VzLWluZGljYXRvcnMnLFxuICAnbWF0LXN0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yJzogJ3N0cm9uZy1mb2N1cy1pbmRpY2F0b3JzLWNvbG9yJyxcbiAgJ21hdC1zdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZSc6ICdzdHJvbmctZm9jdXMtaW5kaWNhdG9ycy10aGVtZScsXG4gICdtYXQtZm9udC1zaG9ydGhhbmQnOiAnZm9udC1zaG9ydGhhbmQnLFxuICAvLyBUaGUgZXhwYW5zaW9uIHBhbmVsIGlzIGEgc3BlY2lhbCBjYXNlLCBiZWNhdXNlIHRoZSBwYWNrYWdlIGlzIGNhbGxlZCBgZXhwYW5zaW9uYCwgYnV0IHRoZVxuICAvLyBtaXhpbnMgd2VyZSBwcmVmaXhlZCB3aXRoIGBleHBhbnNpb24tcGFuZWxgLiBUaGlzIHdhcyBjb3JyZWN0ZWQgYnkgdGhlIFNhc3MgbW9kdWxlIG1pZ3JhdGlvbi5cbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtdGhlbWUnOiAnZXhwYW5zaW9uLXRoZW1lJyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtY29sb3InOiAnZXhwYW5zaW9uLWNvbG9yJyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtdHlwb2dyYXBoeSc6ICdleHBhbnNpb24tdHlwb2dyYXBoeScsXG59O1xuXG4vLyBUaGUgY29tcG9uZW50IHRoZW1lcyBhbGwgZm9sbG93IHRoZSBzYW1lIHBhdHRlcm4gc28gd2UgY2FuIHNwYXJlIG91cnNlbHZlcyBzb21lIHR5cGluZy5cbltcbiAgJ29wdGlvbicsXG4gICdvcHRncm91cCcsXG4gICdwc2V1ZG8tY2hlY2tib3gnLFxuICAnYXV0b2NvbXBsZXRlJyxcbiAgJ2JhZGdlJyxcbiAgJ2JvdHRvbS1zaGVldCcsXG4gICdidXR0b24nLFxuICAnYnV0dG9uLXRvZ2dsZScsXG4gICdjYXJkJyxcbiAgJ2NoZWNrYm94JyxcbiAgJ2NoaXBzJyxcbiAgJ2RpdmlkZXInLFxuICAndGFibGUnLFxuICAnZGF0ZXBpY2tlcicsXG4gICdkaWFsb2cnLFxuICAnZ3JpZC1saXN0JyxcbiAgJ2ljb24nLFxuICAnaW5wdXQnLFxuICAnbGlzdCcsXG4gICdtZW51JyxcbiAgJ3BhZ2luYXRvcicsXG4gICdwcm9ncmVzcy1iYXInLFxuICAncHJvZ3Jlc3Mtc3Bpbm5lcicsXG4gICdyYWRpbycsXG4gICdzZWxlY3QnLFxuICAnc2lkZW5hdicsXG4gICdzbGlkZS10b2dnbGUnLFxuICAnc2xpZGVyJyxcbiAgJ3N0ZXBwZXInLFxuICAnc29ydCcsXG4gICd0YWJzJyxcbiAgJ3Rvb2xiYXInLFxuICAndG9vbHRpcCcsXG4gICdzbmFjay1iYXInLFxuICAnZm9ybS1maWVsZCcsXG4gICd0cmVlJyxcbl0uZm9yRWFjaChuYW1lID0+IHtcbiAgbWF0ZXJpYWxNaXhpbnNbYG1hdC0ke25hbWV9LXRoZW1lYF0gPSBgJHtuYW1lfS10aGVtZWA7XG4gIG1hdGVyaWFsTWl4aW5zW2BtYXQtJHtuYW1lfS1jb2xvcmBdID0gYCR7bmFtZX0tY29sb3JgO1xuICBtYXRlcmlhbE1peGluc1tgbWF0LSR7bmFtZX0tdHlwb2dyYXBoeWBdID0gYCR7bmFtZX0tdHlwb2dyYXBoeWA7XG59KTtcblxuLyoqIE1hcHBpbmcgb2YgTWF0ZXJpYWwgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHJlbmFtZWQuICovXG5leHBvcnQgY29uc3QgbWF0ZXJpYWxGdW5jdGlvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICdtYXQtY29sb3InOiAnZ2V0LWNvbG9yLWZyb20tcGFsZXR0ZScsXG4gICdtYXQtY29udHJhc3QnOiAnZ2V0LWNvbnRyYXN0LWNvbG9yLWZyb20tcGFsZXR0ZScsXG4gICdtYXQtcGFsZXR0ZSc6ICdkZWZpbmUtcGFsZXR0ZScsXG4gICdtYXQtZGFyay10aGVtZSc6ICdkZWZpbmUtZGFyay10aGVtZScsXG4gICdtYXQtbGlnaHQtdGhlbWUnOiAnZGVmaW5lLWxpZ2h0LXRoZW1lJyxcbiAgJ21hdC10eXBvZ3JhcGh5LWxldmVsJzogJ2RlZmluZS10eXBvZ3JhcGh5LWxldmVsJyxcbiAgJ21hdC10eXBvZ3JhcGh5LWNvbmZpZyc6ICdkZWZpbmUtdHlwb2dyYXBoeS1jb25maWcnLFxuICAnbWF0LWZvbnQtc2l6ZSc6ICdmb250LXNpemUnLFxuICAnbWF0LWxpbmUtaGVpZ2h0JzogJ2xpbmUtaGVpZ2h0JyxcbiAgJ21hdC1mb250LXdlaWdodCc6ICdmb250LXdlaWdodCcsXG4gICdtYXQtbGV0dGVyLXNwYWNpbmcnOiAnbGV0dGVyLXNwYWNpbmcnLFxuICAnbWF0LWZvbnQtZmFtaWx5JzogJ2ZvbnQtZmFtaWx5Jyxcbn07XG5cbi8qKiBNYXBwaW5nIG9mIE1hdGVyaWFsIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IG1hdGVyaWFsVmFyaWFibGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAnbWF0LWxpZ2h0LXRoZW1lLWJhY2tncm91bmQnOiAnbGlnaHQtdGhlbWUtYmFja2dyb3VuZC1wYWxldHRlJyxcbiAgJ21hdC1kYXJrLXRoZW1lLWJhY2tncm91bmQnOiAnZGFyay10aGVtZS1iYWNrZ3JvdW5kLXBhbGV0dGUnLFxuICAnbWF0LWxpZ2h0LXRoZW1lLWZvcmVncm91bmQnOiAnbGlnaHQtdGhlbWUtZm9yZWdyb3VuZC1wYWxldHRlJyxcbiAgJ21hdC1kYXJrLXRoZW1lLWZvcmVncm91bmQnOiAnZGFyay10aGVtZS1mb3JlZ3JvdW5kLXBhbGV0dGUnLFxufTtcblxuLy8gVGhlIHBhbGV0dGVzIGFsbCBmb2xsb3cgdGhlIHNhbWUgcGF0dGVybi5cbltcbiAgJ3JlZCcsXG4gICdwaW5rJyxcbiAgJ2luZGlnbycsXG4gICdwdXJwbGUnLFxuICAnZGVlcC1wdXJwbGUnLFxuICAnYmx1ZScsXG4gICdsaWdodC1ibHVlJyxcbiAgJ2N5YW4nLFxuICAndGVhbCcsXG4gICdncmVlbicsXG4gICdsaWdodC1ncmVlbicsXG4gICdsaW1lJyxcbiAgJ3llbGxvdycsXG4gICdhbWJlcicsXG4gICdvcmFuZ2UnLFxuICAnZGVlcC1vcmFuZ2UnLFxuICAnYnJvd24nLFxuICAnZ3JleScsXG4gICdncmF5JyxcbiAgJ2JsdWUtZ3JleScsXG4gICdibHVlLWdyYXknLFxuXS5mb3JFYWNoKG5hbWUgPT4gKG1hdGVyaWFsVmFyaWFibGVzW2BtYXQtJHtuYW1lfWBdID0gYCR7bmFtZX0tcGFsZXR0ZWApKTtcblxuLyoqIE1hcHBpbmcgb2YgQ0RLIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IGNka1ZhcmlhYmxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ2Nkay16LWluZGV4LW92ZXJsYXktY29udGFpbmVyJzogJ292ZXJsYXktY29udGFpbmVyLXotaW5kZXgnLFxuICAnY2RrLXotaW5kZXgtb3ZlcmxheSc6ICdvdmVybGF5LXotaW5kZXgnLFxuICAnY2RrLXotaW5kZXgtb3ZlcmxheS1iYWNrZHJvcCc6ICdvdmVybGF5LWJhY2tkcm9wLXotaW5kZXgnLFxuICAnY2RrLW92ZXJsYXktZGFyay1iYWNrZHJvcC1iYWNrZ3JvdW5kJzogJ292ZXJsYXktYmFja2Ryb3AtY29sb3InLFxufTtcblxuLyoqIE1hcHBpbmcgb2YgQ0RLIG1peGlucyB0aGF0IHNob3VsZCBiZSByZW5hbWVkLiAqL1xuZXhwb3J0IGNvbnN0IGNka01peGluczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgJ2Nkay1vdmVybGF5JzogJ292ZXJsYXknLFxuICAnY2RrLWExMXknOiAnYTExeS12aXN1YWxseS1oaWRkZW4nLFxuICAnY2RrLWhpZ2gtY29udHJhc3QnOiAnaGlnaC1jb250cmFzdCcsXG4gICdjZGstdGV4dC1maWVsZC1hdXRvZmlsbC1jb2xvcic6ICd0ZXh0LWZpZWxkLWF1dG9maWxsLWNvbG9yJyxcbiAgLy8gVGhpcyBvbmUgd2FzIHNwbGl0IHVwIGludG8gdHdvIG1peGlucyB3aGljaCBpcyB0cmlja2llciB0b1xuICAvLyBtaWdyYXRlIHNvIGZvciBub3cgd2UgZm9yd2FyZCB0byB0aGUgZGVwcmVjYXRlZCB2YXJpYW50LlxuICAnY2RrLXRleHQtZmllbGQnOiAndGV4dC1maWVsZCcsXG59O1xuXG4vKipcbiAqIE1hdGVyaWFsIHZhcmlhYmxlcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIHB1YmxpYyBBUElcbiAqIGFuZCB3aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCB0aGVpciB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVkTWF0ZXJpYWxWYXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIC8vIE5vdGU6IHRoZXJlJ3MgYWxzbyBhIHVzYWdlIG9mIGEgdmFyaWFibGUgY2FsbGVkIGAkcGlgLCBidXQgdGhlIG5hbWUgaXMgc2hvcnQgZW5vdWdoIHRoYXRcbiAgLy8gaXQgbWF0Y2hlcyB0aGluZ3MgbGlrZSBgJG1hdC1waW5rYC4gRG9uJ3QgbWlncmF0ZSBpdCBzaW5jZSBpdCdzIHVubGlrZWx5IHRvIGJlIHVzZWQuXG4gICdtYXQteHNtYWxsJzogJ21heC13aWR0aDogNTk5cHgnLFxuICAnbWF0LXNtYWxsJzogJ21heC13aWR0aDogOTU5cHgnLFxuICAnbWF0LXRvZ2dsZS1wYWRkaW5nJzogJzhweCcsXG4gICdtYXQtdG9nZ2xlLXNpemUnOiAnMjBweCcsXG4gICdtYXQtbGluZWFyLW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAwLjEpJyxcbiAgJ21hdC1mYXN0LW91dC1zbG93LWluLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpJyxcbiAgJ21hdC1mYXN0LW91dC1saW5lYXItaW4tdGltaW5nLWZ1bmN0aW9uJzogJ2N1YmljLWJlemllcigwLjQsIDAsIDEsIDEpJyxcbiAgJ21hdC1lbGV2YXRpb24tdHJhbnNpdGlvbi1kdXJhdGlvbic6ICcyODBtcycsXG4gICdtYXQtZWxldmF0aW9uLXRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uJzogJ2N1YmljLWJlemllcigwLjQsIDAsIDAuMiwgMSknLFxuICAnbWF0LWVsZXZhdGlvbi1jb2xvcic6ICcjMDAwJyxcbiAgJ21hdC1lbGV2YXRpb24tb3BhY2l0eSc6ICcxJyxcbiAgJ21hdC1lbGV2YXRpb24tcHJlZml4JzogYCdtYXQtZWxldmF0aW9uLXonYCxcbiAgJ21hdC1yaXBwbGUtY29sb3Itb3BhY2l0eSc6ICcwLjEnLFxuICAnbWF0LWJhZGdlLWZvbnQtc2l6ZSc6ICcxMnB4JyxcbiAgJ21hdC1iYWRnZS1mb250LXdlaWdodCc6ICc2MDAnLFxuICAnbWF0LWJhZGdlLWRlZmF1bHQtc2l6ZSc6ICcyMnB4JyxcbiAgJ21hdC1iYWRnZS1zbWFsbC1zaXplJzogJzE2cHgnLFxuICAnbWF0LWJhZGdlLWxhcmdlLXNpemUnOiAnMjhweCcsXG4gICdtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1oZWlnaHQnOiAnNDhweCcsXG4gICdtYXQtYnV0dG9uLXRvZ2dsZS1zdGFuZGFyZC1taW5pbXVtLWhlaWdodCc6ICcyNHB4JyxcbiAgJ21hdC1idXR0b24tdG9nZ2xlLXN0YW5kYXJkLW1heGltdW0taGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LWNoaXAtcmVtb3ZlLWZvbnQtc2l6ZSc6ICcxOHB4JyxcbiAgJ21hdC1kYXRlcGlja2VyLXNlbGVjdGVkLXRvZGF5LWJveC1zaGFkb3ctd2lkdGgnOiAnMXB4JyxcbiAgJ21hdC1kYXRlcGlja2VyLXNlbGVjdGVkLWZhZGUtYW1vdW50JzogJzAuNicsXG4gICdtYXQtZGF0ZXBpY2tlci1yYW5nZS1mYWRlLWFtb3VudCc6ICcwLjInLFxuICAnbWF0LWRhdGVwaWNrZXItdG9kYXktZmFkZS1hbW91bnQnOiAnMC4yJyxcbiAgJ21hdC1jYWxlbmRhci1ib2R5LWZvbnQtc2l6ZSc6ICcxM3B4JyxcbiAgJ21hdC1jYWxlbmRhci13ZWVrZGF5LXRhYmxlLWZvbnQtc2l6ZSc6ICcxMXB4JyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWNvbGxhcHNlZC1oZWlnaHQnOiAnNDhweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWluaW11bS1oZWlnaHQnOiAnMzZweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1jb2xsYXBzZWQtbWF4aW11bS1oZWlnaHQnOiAnNDhweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1oZWlnaHQnOiAnNjRweCcsXG4gICdtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlci1leHBhbmRlZC1taW5pbXVtLWhlaWdodCc6ICc0OHB4JyxcbiAgJ21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyLWV4cGFuZGVkLW1heGltdW0taGVpZ2h0JzogJzY0cHgnLFxuICAnbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXItdHJhbnNpdGlvbic6ICcyMjVtcyBjdWJpYy1iZXppZXIoMC40LCAwLCAwLjIsIDEpJyxcbiAgJ21hdC1tZW51LXNpZGUtcGFkZGluZyc6ICcxNnB4JyxcbiAgJ21lbnUtbWVudS1pdGVtLWhlaWdodCc6ICc0OHB4JyxcbiAgJ21lbnUtbWVudS1pY29uLW1hcmdpbic6ICcxNnB4JyxcbiAgJ21hdC1wYWdpbmF0b3ItaGVpZ2h0JzogJzU2cHgnLFxuICAnbWF0LXBhZ2luYXRvci1taW5pbXVtLWhlaWdodCc6ICc0MHB4JyxcbiAgJ21hdC1wYWdpbmF0b3ItbWF4aW11bS1oZWlnaHQnOiAnNTZweCcsXG4gICdtYXQtc3RlcHBlci1oZWFkZXItaGVpZ2h0JzogJzcycHgnLFxuICAnbWF0LXN0ZXBwZXItaGVhZGVyLW1pbmltdW0taGVpZ2h0JzogJzQycHgnLFxuICAnbWF0LXN0ZXBwZXItaGVhZGVyLW1heGltdW0taGVpZ2h0JzogJzcycHgnLFxuICAnbWF0LXN0ZXBwZXItbGFiZWwtaGVhZGVyLWhlaWdodCc6ICcyNHB4JyxcbiAgJ21hdC1zdGVwcGVyLWxhYmVsLXBvc2l0aW9uLWJvdHRvbS10b3AtZ2FwJzogJzE2cHgnLFxuICAnbWF0LXN0ZXBwZXItbGFiZWwtbWluLXdpZHRoJzogJzUwcHgnLFxuICAnbWF0LXZlcnRpY2FsLXN0ZXBwZXItY29udGVudC1tYXJnaW4nOiAnMzZweCcsXG4gICdtYXQtc3RlcHBlci1zaWRlLWdhcCc6ICcyNHB4JyxcbiAgJ21hdC1zdGVwcGVyLWxpbmUtd2lkdGgnOiAnMXB4JyxcbiAgJ21hdC1zdGVwcGVyLWxpbmUtZ2FwJzogJzhweCcsXG4gICdtYXQtc3RlcC1zdWItbGFiZWwtZm9udC1zaXplJzogJzEycHgnLFxuICAnbWF0LXN0ZXAtaGVhZGVyLWljb24tc2l6ZSc6ICcxNnB4JyxcbiAgJ21hdC10b29sYmFyLW1pbmltdW0taGVpZ2h0JzogJzQ0cHgnLFxuICAnbWF0LXRvb2xiYXItaGVpZ2h0LWRlc2t0b3AnOiAnNjRweCcsXG4gICdtYXQtdG9vbGJhci1tYXhpbXVtLWhlaWdodC1kZXNrdG9wJzogJzY0cHgnLFxuICAnbWF0LXRvb2xiYXItbWluaW11bS1oZWlnaHQtZGVza3RvcCc6ICc0NHB4JyxcbiAgJ21hdC10b29sYmFyLWhlaWdodC1tb2JpbGUnOiAnNTZweCcsXG4gICdtYXQtdG9vbGJhci1tYXhpbXVtLWhlaWdodC1tb2JpbGUnOiAnNTZweCcsXG4gICdtYXQtdG9vbGJhci1taW5pbXVtLWhlaWdodC1tb2JpbGUnOiAnNDRweCcsXG4gICdtYXQtdG9vbHRpcC10YXJnZXQtaGVpZ2h0JzogJzIycHgnLFxuICAnbWF0LXRvb2x0aXAtZm9udC1zaXplJzogJzEwcHgnLFxuICAnbWF0LXRvb2x0aXAtdmVydGljYWwtcGFkZGluZyc6ICc2cHgnLFxuICAnbWF0LXRvb2x0aXAtaGFuZHNldC10YXJnZXQtaGVpZ2h0JzogJzMwcHgnLFxuICAnbWF0LXRvb2x0aXAtaGFuZHNldC1mb250LXNpemUnOiAnMTRweCcsXG4gICdtYXQtdG9vbHRpcC1oYW5kc2V0LXZlcnRpY2FsLXBhZGRpbmcnOiAnOHB4JyxcbiAgJ21hdC10cmVlLW5vZGUtaGVpZ2h0JzogJzQ4cHgnLFxuICAnbWF0LXRyZWUtbm9kZS1taW5pbXVtLWhlaWdodCc6ICcyNHB4JyxcbiAgJ21hdC10cmVlLW5vZGUtbWF4aW11bS1oZWlnaHQnOiAnNDhweCcsXG59O1xuXG4vKipcbiAqIE1hdGVyaWFsIHZhcmlhYmxlcyAqKndpdGhvdXQgYSBgbWF0LWAgcHJlZml4KiogdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoZSBwdWJsaWMgQVBJXG4gKiBhbmQgd2hpY2ggc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGggdGhlaXIgdmFsdWVzLiBUaGVzZSBzaG91bGQgYmUgbWlncmF0ZWQgb25seSB3aGVuIHRoZXJlJ3MgYVxuICogTWF0ZXJpYWwgaW1wb3J0LCBiZWNhdXNlIHRoZWlyIG5hbWVzIGNvdWxkIGNvbmZsaWN0IHdpdGggb3RoZXIgdmFyaWFibGVzIGluIHRoZSB1c2VyJ3MgYXBwLlxuICovXG5leHBvcnQgY29uc3QgdW5wcmVmaXhlZFJlbW92ZWRWYXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICd6LWluZGV4LWZhYic6ICcyMCcsXG4gICd6LWluZGV4LWRyYXdlcic6ICcxMDAnLFxuICAnZWFzZS1pbi1vdXQtY3VydmUtZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyxcbiAgJ3N3aWZ0LWVhc2Utb3V0LWR1cmF0aW9uJzogJzQwMG1zJyxcbiAgJ3N3aWZ0LWVhc2Utb3V0LXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC4yNSwgMC44LCAwLjI1LCAxKScsXG4gICdzd2lmdC1lYXNlLW91dCc6ICdhbGwgNDAwbXMgY3ViaWMtYmV6aWVyKDAuMjUsIDAuOCwgMC4yNSwgMSknLFxuICAnc3dpZnQtZWFzZS1pbi1kdXJhdGlvbic6ICczMDBtcycsXG4gICdzd2lmdC1lYXNlLWluLXRpbWluZy1mdW5jdGlvbic6ICdjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKScsXG4gICdzd2lmdC1lYXNlLWluJzogJ2FsbCAzMDBtcyBjdWJpYy1iZXppZXIoMC41NSwgMCwgMC41NSwgMC4yKScsXG4gICdzd2lmdC1lYXNlLWluLW91dC1kdXJhdGlvbic6ICc1MDBtcycsXG4gICdzd2lmdC1lYXNlLWluLW91dC10aW1pbmctZnVuY3Rpb24nOiAnY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJyxcbiAgJ3N3aWZ0LWVhc2UtaW4tb3V0JzogJ2FsbCA1MDBtcyBjdWJpYy1iZXppZXIoMC4zNSwgMCwgMC4yNSwgMSknLFxuICAnc3dpZnQtbGluZWFyLWR1cmF0aW9uJzogJzgwbXMnLFxuICAnc3dpZnQtbGluZWFyLXRpbWluZy1mdW5jdGlvbic6ICdsaW5lYXInLFxuICAnc3dpZnQtbGluZWFyJzogJ2FsbCA4MG1zIGxpbmVhcicsXG4gICdibGFjay04Ny1vcGFjaXR5JzogJ3JnYmEoYmxhY2ssIDAuODcpJyxcbiAgJ3doaXRlLTg3LW9wYWNpdHknOiAncmdiYSh3aGl0ZSwgMC44NyknLFxuICAnYmxhY2stMTItb3BhY2l0eSc6ICdyZ2JhKGJsYWNrLCAwLjEyKScsXG4gICd3aGl0ZS0xMi1vcGFjaXR5JzogJ3JnYmEod2hpdGUsIDAuMTIpJyxcbiAgJ2JsYWNrLTYtb3BhY2l0eSc6ICdyZ2JhKGJsYWNrLCAwLjA2KScsXG4gICd3aGl0ZS02LW9wYWNpdHknOiAncmdiYSh3aGl0ZSwgMC4wNiknLFxuICAnZGFyay1wcmltYXJ5LXRleHQnOiAncmdiYShibGFjaywgMC44NyknLFxuICAnZGFyay1zZWNvbmRhcnktdGV4dCc6ICdyZ2JhKGJsYWNrLCAwLjU0KScsXG4gICdkYXJrLWRpc2FibGVkLXRleHQnOiAncmdiYShibGFjaywgMC4zOCknLFxuICAnZGFyay1kaXZpZGVycyc6ICdyZ2JhKGJsYWNrLCAwLjEyKScsXG4gICdkYXJrLWZvY3VzZWQnOiAncmdiYShibGFjaywgMC4xMiknLFxuICAnbGlnaHQtcHJpbWFyeS10ZXh0JzogJ3doaXRlJyxcbiAgJ2xpZ2h0LXNlY29uZGFyeS10ZXh0JzogJ3JnYmEod2hpdGUsIDAuNyknLFxuICAnbGlnaHQtZGlzYWJsZWQtdGV4dCc6ICdyZ2JhKHdoaXRlLCAwLjUpJyxcbiAgJ2xpZ2h0LWRpdmlkZXJzJzogJ3JnYmEod2hpdGUsIDAuMTIpJyxcbiAgJ2xpZ2h0LWZvY3VzZWQnOiAncmdiYSh3aGl0ZSwgMC4xMiknLFxufTtcbiJdfQ==
|
|
@@ -10,7 +10,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
10
10
|
exports.migrateFileContent = void 0;
|
|
11
11
|
const config_1 = require("./config");
|
|
12
12
|
/** Possible pairs of comment characters in a Sass file. */
|
|
13
|
-
const commentPairs = new Map([
|
|
13
|
+
const commentPairs = new Map([
|
|
14
|
+
['/*', '*/'],
|
|
15
|
+
['//', '\n'],
|
|
16
|
+
]);
|
|
14
17
|
/** Prefix for the placeholder that will be used to escape comments. */
|
|
15
18
|
const commentPlaceholderStart = '__<<ngThemingMigrationEscapedComment';
|
|
16
19
|
/** Suffix for the comment escape placeholder. */
|
|
@@ -70,7 +73,7 @@ function detectImports(content, prefix, excludedImports) {
|
|
|
70
73
|
const imports = [];
|
|
71
74
|
const pattern = new RegExp(`@(import|use) +['"]~?${escapeRegExp(prefix)}.*['"].*;?\n`, 'g');
|
|
72
75
|
let match = null;
|
|
73
|
-
while (match = pattern.exec(content)) {
|
|
76
|
+
while ((match = pattern.exec(content))) {
|
|
74
77
|
const [fullImport, type] = match;
|
|
75
78
|
if (excludedImports === null || excludedImports === void 0 ? void 0 : excludedImports.test(fullImport)) {
|
|
76
79
|
continue;
|
|
@@ -157,16 +160,17 @@ function insertUseStatement(content, importPath, namespace, commentPlaceholders)
|
|
|
157
160
|
// One special case is if the file starts with a license header which we want to preserve on top.
|
|
158
161
|
if (content.trim().startsWith(commentPlaceholderStart)) {
|
|
159
162
|
const commentStartIndex = content.indexOf(commentPlaceholderStart);
|
|
160
|
-
newImportIndex =
|
|
161
|
-
commentPlaceholderEnd.length;
|
|
163
|
+
newImportIndex =
|
|
164
|
+
content.indexOf(commentPlaceholderEnd, commentStartIndex + 1) + commentPlaceholderEnd.length;
|
|
162
165
|
// If the leading comment doesn't end with a newline,
|
|
163
166
|
// we need to insert the import at the next line.
|
|
164
167
|
if (!commentPlaceholders[content.slice(commentStartIndex, newImportIndex)].endsWith('\n')) {
|
|
165
168
|
newImportIndex = Math.max(newImportIndex, content.indexOf('\n', newImportIndex) + 1);
|
|
166
169
|
}
|
|
167
170
|
}
|
|
168
|
-
return content.slice(0, newImportIndex) +
|
|
169
|
-
|
|
171
|
+
return (content.slice(0, newImportIndex) +
|
|
172
|
+
`@use '${importPath}' as ${namespace};\n` +
|
|
173
|
+
content.slice(newImportIndex));
|
|
170
174
|
}
|
|
171
175
|
/** Formats a migration key as a Sass mixin invocation. */
|
|
172
176
|
function mixinKeyFormatter(namespace, name) {
|
|
@@ -217,12 +221,16 @@ function extractNamespaceFromUseStatement(fullImport) {
|
|
|
217
221
|
const asIndex = fullImport.indexOf(asExpression, closeQuoteIndex);
|
|
218
222
|
// If we found an ` as ` expression, we consider the rest of the text as the namespace.
|
|
219
223
|
if (asIndex > -1) {
|
|
220
|
-
return fullImport
|
|
224
|
+
return fullImport
|
|
225
|
+
.slice(asIndex + asExpression.length)
|
|
226
|
+
.split(';')[0]
|
|
227
|
+
.trim();
|
|
221
228
|
}
|
|
222
229
|
// Otherwise the namespace is the name of the file that is being imported.
|
|
223
230
|
const lastSlashIndex = fullImport.lastIndexOf('/', closeQuoteIndex);
|
|
224
231
|
if (lastSlashIndex > -1) {
|
|
225
|
-
const fileName = fullImport
|
|
232
|
+
const fileName = fullImport
|
|
233
|
+
.slice(lastSlashIndex + 1, closeQuoteIndex)
|
|
226
234
|
// Sass allows for leading underscores to be omitted and it technically supports .scss.
|
|
227
235
|
.replace(/^_|(\.import)?\.scss$|\.import$/g, '');
|
|
228
236
|
// Sass ignores `/index` and infers the namespace as the next segment in the path.
|
|
@@ -262,7 +270,7 @@ function escapeComments(content) {
|
|
|
262
270
|
let commentCounter = 0;
|
|
263
271
|
let [openIndex, closeIndex] = findComment(content);
|
|
264
272
|
while (openIndex > -1 && closeIndex > -1) {
|
|
265
|
-
const placeholder = commentPlaceholderStart +
|
|
273
|
+
const placeholder = commentPlaceholderStart + commentCounter++ + commentPlaceholderEnd;
|
|
266
274
|
placeholders[placeholder] = content.slice(openIndex, closeIndex);
|
|
267
275
|
content = content.slice(0, openIndex) + placeholder + content.slice(closeIndex);
|
|
268
276
|
[openIndex, closeIndex] = findComment(content);
|
|
@@ -286,7 +294,7 @@ function findComment(content) {
|
|
|
286
294
|
}
|
|
287
295
|
/** Restores the comments that have been escaped by `escapeComments`. */
|
|
288
296
|
function restoreComments(content, placeholders) {
|
|
289
|
-
Object.keys(placeholders).forEach(key => content = content.replace(key, placeholders[key]));
|
|
297
|
+
Object.keys(placeholders).forEach(key => (content = content.replace(key, placeholders[key])));
|
|
290
298
|
return content;
|
|
291
299
|
}
|
|
292
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvdGhlbWluZy1hcGktdjEyL21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxxQ0FRa0I7QUFlbEIsMkRBQTJEO0FBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFpQixDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUzRSx1RUFBdUU7QUFDdkUsTUFBTSx1QkFBdUIsR0FBRyxzQ0FBc0MsQ0FBQztBQUV2RSxpREFBaUQ7QUFDakQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUM7QUFFckM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxXQUFtQixFQUNuQixpQkFBeUIsRUFDekIsWUFBb0IsRUFDcEIscUJBQTZCLEVBQzdCLGdCQUF3QixFQUN4Qix1QkFBcUMsRUFBRSxFQUN2QyxlQUF3QjtJQUN6RCxJQUFJLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBQyxHQUFHLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRCxNQUFNLGVBQWUsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ25GLE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBRXpFLHdFQUF3RTtJQUN4RSx5RUFBeUU7SUFDekUsT0FBTyxHQUFHLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDakYsT0FBTyxHQUFHLHNCQUFzQixDQUM1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LFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzVFO0tBQ0Y7SUFFRCxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixDQUFDO0FBRUQsd0VBQXdFO0FBQ3hFLFNBQVMsZUFBZSxDQUFDLE9BQWUsRUFBRSxZQUFvQztJQUM1RSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVGLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtcbiAgbWF0ZXJpYWxNaXhpbnMsXG4gIG1hdGVyaWFsRnVuY3Rpb25zLFxuICBtYXRlcmlhbFZhcmlhYmxlcyxcbiAgY2RrTWl4aW5zLFxuICBjZGtWYXJpYWJsZXMsXG4gIHJlbW92ZWRNYXRlcmlhbFZhcmlhYmxlcyxcbiAgdW5wcmVmaXhlZFJlbW92ZWRWYXJpYWJsZXNcbn0gZnJvbSAnLi9jb25maWcnO1xuXG4vKiogVGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBmb3IgaW1wb3J0cyBhbmQgbmFtZXNwYWNlcyBpbiBhIGZpbGUuICovXG5pbnRlcmZhY2UgRGV0ZWN0SW1wb3J0UmVzdWx0IHtcbiAgaW1wb3J0czogc3RyaW5nW107XG4gIG5hbWVzcGFjZXM6IHN0cmluZ1tdO1xufVxuXG4vKiogQWRkaXRpb24gbWl4aW4gYW5kIGZ1bmN0aW9uIG5hbWVzIHRoYXQgY2FuIGJlIHVwZGF0ZWQgd2hlbiBpbnZva2luZyBtaWdyYXRpb24gZGlyZWN0bHkuICovXG5pbnRlcmZhY2UgRXh0cmFTeW1ib2xzIHtcbiAgbWl4aW5zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZnVuY3Rpb25zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqIFBvc3NpYmxlIHBhaXJzIG9mIGNvbW1lbnQgY2hhcmFjdGVycyBpbiBhIFNhc3MgZmlsZS4gKi9cbmNvbnN0IGNvbW1lbnRQYWlycyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtbJy8qJywgJyovJ10sIFsnLy8nLCAnXFxuJ11dKTtcblxuLyoqIFByZWZpeCBmb3IgdGhlIHBsYWNlaG9sZGVyIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGVzY2FwZSBjb21tZW50cy4gKi9cbmNvbnN0IGNvbW1lbnRQbGFjZWhvbGRlclN0YXJ0ID0gJ19fPDxuZ1RoZW1pbmdNaWdyYXRpb25Fc2NhcGVkQ29tbWVudCc7XG5cbi8qKiBTdWZmaXggZm9yIHRoZSBjb21tZW50IGVzY2FwZSBwbGFjZWhvbGRlci4gKi9cbmNvbnN0IGNvbW1lbnRQbGFjZWhvbGRlckVuZCA9ICc+Pl9fJztcblxuLyoqXG4gKiBNaWdyYXRlcyB0aGUgY29udGVudCBvZiBhIGZpbGUgdG8gdGhlIG5ldyB0aGVtaW5nIEFQSS4gTm90ZSB0aGF0IHRoaXMgbWlncmF0aW9uIGlzIHVzaW5nIHBsYWluXG4gKiBzdHJpbmcgbWFuaXB1bGF0aW9uLCByYXRoZXIgdGhhbiB0aGUgQVNUIGZyb20gUG9zdENTUyBhbmQgdGhlIHNjaGVtYXRpY3Mgc3RyaW5nIG1hbmlwdWxhdGlvblxuICogQVBJcywgYmVjYXVzZSBpdCBhbGxvd3MgdXMgdG8gcnVuIGl0IGluc2lkZSBnMyBhbmQgdG8gYXZvaWQgaW50cm9kdWNpbmcgbmV3IGRlcGVuZGVuY2llcy5cbiAqIEBwYXJhbSBmaWxlQ29udGVudCBDb250ZW50IG9mIHRoZSBmaWxlLlxuICogQHBhcmFtIG9sZE1hdGVyaWFsUHJlZml4IFByZWZpeCB3aXRoIHdoaWNoIHRoZSBvbGQgTWF0ZXJpYWwgaW1wb3J0cyBzaG91bGQgc3RhcnQuXG4gKiAgIEhhcyB0byBlbmQgd2l0aCBhIHNsYXNoLiBFLmcuIGlmIGBAaW1wb3J0ICdAYW5ndWxhci9tYXRlcmlhbC90aGVtaW5nJ2Agc2hvdWxkIGJlXG4gKiAgIG1hdGNoZWQsIHRoZSBwcmVmaXggd291bGQgYmUgYEBhbmd1bGFyL21hdGVyaWFsL2AuXG4gKiBAcGFyYW0gb2xkQ2RrUHJlZml4IFByZWZpeCB3aXRoIHdoaWNoIHRoZSBvbGQgQ0RLIGltcG9ydHMgc2hvdWxkIHN0YXJ0LlxuICogICBIYXMgdG8gZW5kIHdpdGggYSBzbGFzaC4gRS5nLiBpZiBgQGltcG9ydCAnQGFuZ3VsYXIvY2RrL292ZXJsYXknYCBzaG91bGQgYmVcbiAqICAgbWF0Y2hlZCwgdGhlIHByZWZpeCB3b3VsZCBiZSBgQGFuZ3VsYXIvY2RrL2AuXG4gKiBAcGFyYW0gbmV3TWF0ZXJpYWxJbXBvcnRQYXRoIE5ldyBpbXBvcnQgdG8gdGhlIE1hdGVyaWFsIHRoZW1pbmcgQVBJIChlLmcuIGBAYW5ndWxhci9tYXRlcmlhbGApLlxuICogQHBhcmFtIG5ld0Nka0ltcG9ydFBhdGggTmV3IGltcG9ydCB0byB0aGUgQ0RLIFNhc3MgQVBJcyAoZS5nLiBgQGFuZ3VsYXIvY2RrYCkuXG4gKiBAcGFyYW0gZXhjbHVkZWRJbXBvcnRzIFBhdHRlcm4gdGhhdCBjYW4gYmUgdXNlZCB0byBleGNsdWRlIGltcG9ydHMgZnJvbSBiZWluZyBwcm9jZXNzZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtaWdyYXRlRmlsZUNvbnRlbnQoZmlsZUNvbnRlbnQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkTWF0ZXJpYWxQcmVmaXg6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkQ2RrUHJlZml4OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld01hdGVyaWFsSW1wb3J0UGF0aDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdDZGtJbXBvcnRQYXRoOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhTWF0ZXJpYWxTeW1ib2xzOiBFeHRyYVN5bWJvbHMgPSB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZWRJbXBvcnRzPzogUmVnRXhwKTogc3RyaW5nIHtcbiAgbGV0IHtjb250ZW50LCBwbGFjZWhvbGRlcnN9ID0gZXNjYXBlQ29tbWVudHMoZmlsZUNvbnRlbnQpO1xuICBjb25zdCBtYXRlcmlhbFJlc3VsdHMgPSBkZXRlY3RJbXBvcnRzKGNvbnRlbnQsIG9sZE1hdGVyaWFsUHJlZml4LCBleGNsdWRlZEltcG9ydHMpO1xuICBjb25zdCBjZGtSZXN1bHRzID0gZGV0ZWN0SW1wb3J0cyhjb250ZW50LCBvbGRDZGtQcmVmaXgsIGV4Y2x1ZGVkSW1wb3J0cyk7XG5cbiAgLy8gVHJ5IHRvIG1pZ3JhdGUgdGhlIHN5bWJvbHMgZXZlbiBpZiB0aGVyZSBhcmUgbm8gaW1wb3J0cy4gVGhpcyBpcyB1c2VkXG4gIC8vIHRvIGNvdmVyIHRoZSBjYXNlIHdoZXJlIHRoZSBDb21wb25lbnRzIHN5bWJvbHMgd2VyZSB1c2VkIHRyYW5zaXRpdmVseS5cbiAgY29udGVudCA9IG1pZ3JhdGVDZGtTeW1ib2xzKGNvbnRlbnQsIG5ld0Nka0ltcG9ydFBhdGgsIHBsYWNlaG9sZGVycywgY2RrUmVzdWx0cyk7XG4gIGNvbnRlbnQgPSBtaWdyYXRlTWF0ZXJpYWxTeW1ib2xzKFxuICAgICAgY29udGVudCwgbmV3TWF0ZXJpYWxJbXBvcnRQYXRoLCBtYXRlcmlhbFJlc3VsdHMsIHBsYWNlaG9sZGVycywgZXh0cmFNYXRlcmlhbFN5bWJvbHMpO1xuICBjb250ZW50ID0gcmVwbGFjZVJlbW92ZWRWYXJpYWJsZXMoY29udGVudCwgcmVtb3ZlZE1hdGVyaWFsVmFyaWFibGVzKTtcblxuICAvLyBXZSBjYW4gYXNzdW1lIHRoYXQgdGhlIG1pZ3JhdGlvbiBoYXMgdGFrZW4gY2FyZSBvZiBhbnkgQ29tcG9uZW50cyBzeW1ib2xzIHRoYXQgd2VyZVxuICAvLyBpbXBvcnRlZCB0cmFuc2l0aXZlbHkgc28gd2UgY2FuIGFsd2F5cyBkcm9wIHRoZSBvbGQgaW1wb3J0cy4gV2UgYWxzbyBhc3N1bWUgdGhhdCBpbXBvcnRzXG4gIC8vIHRvIHRoZSBuZXcgZW50cnkgcG9pbnRzIGhhdmUgYmVlbiBhZGRlZCBhbHJlYWR5LlxuICBpZiAobWF0ZXJpYWxSZXN1bHRzLmltcG9ydHMubGVuZ3RoKSB7XG4gICAgY29udGVudCA9IHJlcGxhY2VSZW1vdmVkVmFyaWFibGVzKGNvbnRlbnQsIHVucHJlZml4ZWRSZW1vdmVkVmFyaWFibGVzKTtcbiAgICBjb250ZW50ID0gcmVtb3ZlU3RyaW5ncyhjb250ZW50LCBtYXRlcmlhbFJlc3VsdHMuaW1wb3J0cyk7XG4gIH1cblxuICBpZiAoY2RrUmVzdWx0cy5pbXBvcnRzLmxlbmd0aCkge1xuICAgIGNvbnRlbnQgPSByZW1vdmVTdHJpbmdzKGNvbnRlbnQsIGNka1Jlc3VsdHMuaW1wb3J0cyk7XG4gIH1cblxuICByZXR1cm4gcmVzdG9yZUNvbW1lbnRzKGNvbnRlbnQsIHBsYWNlaG9sZGVycyk7XG59XG5cbi8qKlxuICogQ291bnRzIHRoZSBudW1iZXIgb2YgaW1wb3J0cyB3aXRoIGEgc3BlY2lmaWMgcHJlZml4IGFuZCBleHRyYWN0cyB0aGVpciBuYW1lc3BhY2VzLlxuICogQHBhcmFtIGNvbnRlbnQgRmlsZSBjb250ZW50IGluIHdoaWNoIHRvIGxvb2sgZm9yIGltcG9ydHMuXG4gKiBAcGFyYW0gcHJlZml4IFByZWZpeCB0aGF0IHRoZSBpbXBvcnRzIHNob3VsZCBzdGFydCB3aXRoLlxuICogQHBhcmFtIGV4Y2x1ZGVkSW1wb3J0cyBQYXR0ZXJuIHRoYXQgY2FuIGJlIHVzZWQgdG8gZXhjbHVkZSBpbXBvcnRzIGZyb20gYmVpbmcgcHJvY2Vzc2VkLlxuICovXG5mdW5jdGlvbiBkZXRlY3RJbXBvcnRzKGNvbnRlbnQ6IHN0cmluZywgcHJlZml4OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgIGV4Y2x1ZGVkSW1wb3J0cz86IFJlZ0V4cCk6IERldGVjdEltcG9ydFJlc3VsdCB7XG4gIGlmIChwcmVmaXhbcHJlZml4Lmxlbmd0aCAtIDFdICE9PSAnLycpIHtcbiAgICAvLyBTb21lIG9mIHRoZSBsb2dpYyBmdXJ0aGVyIGRvd24gbWFrZXMgYXNzdW1wdGlvbnMgYWJvdXQgdGhlIGltcG9ydCBkZXB0aC5cbiAgICB0aHJvdyBFcnJvcihgUHJlZml4IFwiJHtwcmVmaXh9XCIgaGFzIHRvIGVuZCBpbiBhIHNsYXNoLmApO1xuICB9XG5cbiAgLy8gTGlzdCBvZiBgQHVzZWAgbmFtZXNwYWNlcyBmcm9tIHdoaWNoIEFuZ3VsYXIgQ0RLL01hdGVyaWFsIEFQSXMgbWF5IGJlIHJlZmVyZW5jZWQuXG4gIC8vIFNpbmNlIHdlIGtub3cgdGhhdCB0aGUgbGlicmFyeSBkb2Vzbid0IGhhdmUgYW55IG5hbWUgY29sbGlzaW9ucywgd2UgY2FuIHRyZWF0IGFsbCBvZiB0aGVzZVxuICAvLyBuYW1lc3BhY2VzIGFzIGVxdWl2YWxlbnQuXG4gIGNvbnN0IG5hbWVzcGFjZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGltcG9ydHM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IHBhdHRlcm4gPSBuZXcgUmVnRXhwKGBAKGltcG9ydHx1c2UpICtbJ1wiXX4/JHtlc2NhcGVSZWdFeHAocHJlZml4KX0uKlsnXCJdLio7P1xcbmAsICdnJyk7XG4gIGxldCBtYXRjaDogUmVnRXhwRXhlY0FycmF5IHwgbnVsbCA9IG51bGw7XG5cbiAgd2hpbGUgKG1hdGNoID0gcGF0dGVybi5leGVjKGNvbnRlbnQpKSB7XG4gICAgY29uc3QgW2Z1bGxJbXBvcnQsIHR5cGVdID0gbWF0Y2g7XG5cbiAgICBpZiAoZXhjbHVkZWRJbXBvcnRzPy50ZXN0KGZ1bGxJbXBvcnQpKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZSA9PT0gJ3VzZScpIHtcbiAgICAgIGNvbnN0IG5hbWVzcGFjZSA9IGV4dHJhY3ROYW1lc3BhY2VGcm9tVXNlU3RhdGVtZW50KGZ1bGxJbXBvcnQpO1xuXG4gICAgICBpZiAobmFtZXNwYWNlcy5pbmRleE9mKG5hbWVzcGFjZSkgPT09IC0xKSB7XG4gICAgICAgIG5hbWVzcGFjZXMucHVzaChuYW1lc3BhY2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGltcG9ydHMucHVzaChmdWxsSW1wb3J0KTtcbiAgfVxuXG4gIHJldHVybiB7aW1wb3J0cywgbmFtZXNwYWNlc307XG59XG5cbi8qKiBNaWdyYXRlcyB0aGUgTWF0ZXJpYWwgc3ltYm9scyBpbiBhIGZpbGUuICovXG5mdW5jdGlvbiBtaWdyYXRlTWF0ZXJpYWxTeW1ib2xzKGNvbnRlbnQ6IHN0cmluZywgaW1wb3J0UGF0aDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlY3RlZEltcG9ydHM6IERldGVjdEltcG9ydFJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudFBsYWNlaG9sZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFNYXRlcmlhbFN5bWJvbHM6IEV4dHJhU3ltYm9scyA9IHt9KTogc3RyaW5nIHtcbiAgY29uc3QgaW5pdGlhbENvbnRlbnQgPSBjb250ZW50O1xuICBjb25zdCBuYW1lc3BhY2UgPSAnbWF0JztcblxuICAvLyBNaWdyYXRlIHRoZSBtaXhpbnMuXG4gIGNvbnN0IG1peGluc1RvVXBkYXRlID0gey4uLm1hdGVyaWFsTWl4aW5zLCAuLi5leHRyYU1hdGVyaWFsU3ltYm9scy5taXhpbnN9O1xuICBjb250ZW50ID0gcmVuYW1lU3ltYm9scyhjb250ZW50LCBtaXhpbnNUb1VwZGF0ZSwgZGV0ZWN0ZWRJbXBvcnRzLm5hbWVzcGFjZXMsIG1peGluS2V5Rm9ybWF0dGVyLFxuICAgIGdldE1peGluVmFsdWVGb3JtYXR0ZXIobmFtZXNwYWNlKSk7XG5cbiAgLy8gTWlncmF0ZSB0aGUgZnVuY3Rpb25zLlxuICBjb25zdCBmdW5jdGlvbnNUb1VwZGF0ZSA9IHsuLi5tYXRlcmlhbEZ1bmN0aW9ucywgLi4uZXh0cmFNYXRlcmlhbFN5bWJvbHMuZnVuY3Rpb25zfTtcbiAgY29udGVudCA9IHJlbmFtZVN5bWJvbHMoY29udGVudCwgZnVuY3Rpb25zVG9VcGRhdGUsIGRldGVjdGVkSW1wb3J0cy5uYW1lc3BhY2VzLFxuICAgIGZ1bmN0aW9uS2V5Rm9ybWF0dGVyLCBnZXRGdW5jdGlvblZhbHVlRm9ybWF0dGVyKG5hbWVzcGFjZSkpO1xuXG4gIC8vIE1pZ3JhdGUgdGhlIHZhcmlhYmxlcy5cbiAgY29uc3QgdmFyaWFibGVzVG9VcGRhdGUgPSB7Li4ubWF0ZXJpYWxWYXJpYWJsZXMsIC4uLmV4dHJhTWF0ZXJpYWxTeW1ib2xzLnZhcmlhYmxlc307XG4gIGNvbnRlbnQgPSByZW5hbWVTeW1ib2xzKGNvbnRlbnQsIHZhcmlhYmxlc1RvVXBkYXRlLCBkZXRlY3RlZEltcG9ydHMubmFtZXNwYWNlcyxcbiAgICB2YXJpYWJsZUtleUZvcm1hdHRlciwgZ2V0VmFyaWFibGVWYWx1ZUZvcm1hdHRlcihuYW1lc3BhY2UpKTtcblxuICBpZiAoY29udGVudCAhPT0gaW5pdGlhbENvbnRlbnQpIHtcbiAgICAvLyBBZGQgYW4gaW1wb3J0IHRvIHRoZSBuZXcgQVBJIG9ubHkgaWYgYW55IG9mIHRoZSBBUElzIHdlcmUgYmVpbmcgdXNlZC5cbiAgICBjb250ZW50ID0gaW5zZXJ0VXNlU3RhdGVtZW50KGNvbnRlbnQsIGltcG9ydFBhdGgsIG5hbWVzcGFjZSwgY29tbWVudFBsYWNlaG9sZGVycyk7XG4gIH1cblxuICByZXR1cm4gY29udGVudDtcbn1cblxuLyoqIE1pZ3JhdGVzIHRoZSBDREsgc3ltYm9scyBpbiBhIGZpbGUuICovXG5mdW5jdGlvbiBtaWdyYXRlQ2RrU3ltYm9scyhjb250ZW50OiBzdHJpbmcsIGltcG9ydFBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRQbGFjZWhvbGRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlY3RlZEltcG9ydHM6IERldGVjdEltcG9ydFJlc3VsdCk6IHN0cmluZyB7XG4gIGNvbnN0IGluaXRpYWxDb250ZW50ID0gY29udGVudDtcbiAgY29uc3QgbmFtZXNwYWNlID0gJ2Nkayc7XG5cbiAgLy8gTWlncmF0ZSB0aGUgbWl4aW5zLlxuICBjb250ZW50ID0gcmVuYW1lU3ltYm9scyhjb250ZW50LCBjZGtNaXhpbnMsIGRldGVjdGVkSW1wb3J0cy5uYW1lc3BhY2VzLCBtaXhpbktleUZvcm1hdHRlcixcbiAgICBnZXRNaXhpblZhbHVlRm9ybWF0dGVyKG5hbWVzcGFjZSkpO1xuXG4gIC8vIE1pZ3JhdGUgdGhlIHZhcmlhYmxlcy5cbiAgY29udGVudCA9IHJlbmFtZVN5bWJvbHMoY29udGVudCwgY2RrVmFyaWFibGVzLCBkZXRlY3RlZEltcG9ydHMubmFtZXNwYWNlcywgdmFyaWFibGVLZXlGb3JtYXR0ZXIsXG4gICAgZ2V0VmFyaWFibGVWYWx1ZUZvcm1hdHRlcihuYW1lc3BhY2UpKTtcblxuICAvLyBQcmV2aW91c2x5IHRoZSBDREsgc3ltYm9scyB3ZXJlIGV4cG9zZWQgdGhyb3VnaCBgbWF0ZXJpYWwvdGhlbWluZ2AsIGJ1dCBub3cgd2UgaGF2ZSBhXG4gIC8vIGRlZGljYXRlZCBlbnRyeXBvaW50IGZvciB0aGUgQ0RLLiBPbmx5IGFkZCBhbiBpbXBvcnQgZm9yIGl0IGlmIGFueSBvZiB0aGUgc3ltYm9scyBhcmUgdXNlZC5cbiAgaWYgKGNvbnRlbnQgIT09IGluaXRpYWxDb250ZW50KSB7XG4gICAgY29udGVudCA9IGluc2VydFVzZVN0YXRlbWVudChjb250ZW50LCBpbXBvcnRQYXRoLCBuYW1lc3BhY2UsIGNvbW1lbnRQbGFjZWhvbGRlcnMpO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbi8qKlxuICogUmVuYW1lcyBhbGwgU2FzcyBzeW1ib2xzIGluIGEgZmlsZSBiYXNlZCBvbiBhIHByZS1kZWZpbmVkIG1hcHBpbmcuXG4gKiBAcGFyYW0gY29udGVudCBDb250ZW50IG9mIGEgZmlsZSB0byBiZSBtaWdyYXRlZC5cbiAqIEBwYXJhbSBtYXBwaW5nIE1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHRoZWlyIHJlcGxhY2VtZW50cy5cbiAqIEBwYXJhbSBuYW1lc3BhY2VzIE5hbWVzIHRvIGl0ZXJhdGUgb3ZlciBhbmQgcGFzcyB0byBnZXRLZXlQYXR0ZXJuLlxuICogQHBhcmFtIGdldEtleVBhdHRlcm4gRnVuY3Rpb24gdXNlZCB0byB0dXJuIGVhY2ggb2YgdGhlIGtleXMgaW50byBhIHJlZ2V4LlxuICogQHBhcmFtIGZvcm1hdFZhbHVlIEZvcm1hdHMgdGhlIHZhbHVlIHRoYXQgd2lsbCByZXBsYWNlIGFueSBtYXRjaGVzIG9mIHRoZSBwYXR0ZXJuIHJldHVybmVkIGJ5XG4gKiAgYGdldEtleVBhdHRlcm5gLlxuICovXG5mdW5jdGlvbiByZW5hbWVTeW1ib2xzKGNvbnRlbnQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgbWFwcGluZzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlczogc3RyaW5nW10sXG4gICAgICAgICAgICAgICAgICAgICAgIGdldEtleVBhdHRlcm46IChuYW1lc3BhY2U6IHN0cmluZ3xudWxsLCBrZXk6IHN0cmluZykgPT4gUmVnRXhwLFxuICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXRWYWx1ZTogKGtleTogc3RyaW5nKSA9PiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBUaGUgbnVsbCBhdCB0aGUgZW5kIGlzIHNvIHRoYXQgd2UgbWFrZSBvbmUgbGFzdCBwYXNzIHRvIGNvdmVyIG5vbi1uYW1lc3BhY2VkIHN5bWJvbHMuXG4gIFsuLi5uYW1lc3BhY2VzLnNsaWNlKCksIG51bGxdLmZvckVhY2gobmFtZXNwYWNlID0+IHtcbiAgICBPYmplY3Qua2V5cyhtYXBwaW5nKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCBwYXR0ZXJuID0gZ2V0S2V5UGF0dGVybihuYW1lc3BhY2UsIGtleSk7XG5cbiAgICAgIC8vIFNhbml0eSBjaGVjayBzaW5jZSBub24tZ2xvYmFsIHJlZ2V4ZXMgd2lsbCBvbmx5IHJlcGxhY2UgdGhlIGZpcnN0IG1hdGNoLlxuICAgICAgaWYgKHBhdHRlcm4uZmxhZ3MuaW5kZXhPZignZycpID09PSAtMSkge1xuICAgICAgICB0aHJvdyBFcnJvcignUmVwbGFjZW1lbnQgcGF0dGVybiBtdXN0IGJlIGdsb2JhbC4nKTtcbiAgICAgIH1cblxuICAgICAgY29udGVudCA9IGNvbnRlbnQucmVwbGFjZShwYXR0ZXJuLCBmb3JtYXRWYWx1ZShtYXBwaW5nW2tleV0pKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG5cbi8qKiBJbnNlcnRzIGFuIGBAdXNlYCBzdGF0ZW1lbnQgaW4gYSBzdHJpbmcuICovXG5mdW5jdGlvbiBpbnNlcnRVc2VTdGF0ZW1lbnQoY29udGVudDogc3RyaW5nLCBpbXBvcnRQYXRoOiBzdHJpbmcsIG5hbWVzcGFjZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRQbGFjZWhvbGRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAvLyBJZiB0aGUgY29udGVudCBhbHJlYWR5IGhhcyB0aGUgYEB1c2VgIGltcG9ydCwgd2UgZG9uJ3QgbmVlZCB0byBhZGQgYW55dGhpbmcuXG4gIGlmIChuZXcgUmVnRXhwKGBAdXNlICtbJ1wiXSR7aW1wb3J0UGF0aH1bJ1wiXWAsICdnJykudGVzdChjb250ZW50KSkge1xuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgLy8gU2FzcyB3aWxsIHRocm93IGFuIGVycm9yIGlmIGFuIGBAdXNlYCBzdGF0ZW1lbnQgY29tZXMgYWZ0ZXIgYW5vdGhlciBzdGF0ZW1lbnQuIFRoZSBzYWZlc3Qgd2F5XG4gIC8vIHRvIGVuc3VyZSB0aGF0IHdlIGNvbmZvcm0gdG8gdGhhdCByZXF1aXJlbWVudCBpcyBieSBhbHdheXMgaW5zZXJ0aW5nIG91ciBpbXBvcnRzIGF0IHRoZSB0b3BcbiAgLy8gb2YgdGhlIGZpbGUuIERldGVjdGluZyB3aGVyZSB0aGUgdXNlcidzIGNvbnRlbnQgc3RhcnRzIGlzIHRyaWNreSwgYmVjYXVzZSB0aGVyZSBhcmUgbWFueVxuICAvLyBkaWZmZXJlbnQga2luZHMgb2Ygc3ludGF4IHdlJ2QgaGF2ZSB0byBhY2NvdW50IGZvci4gT25lIGFwcHJvYWNoIGlzIHRvIGZpbmQgdGhlIGZpcnN0IGBAaW1wb3J0YFxuICAvLyBhbmQgaW5zZXJ0IGJlZm9yZSBpdCwgYnV0IHRoZSBwcm9ibGVtIGlzIHRoYXQgU2FzcyBhbGxvd3MgYEBpbXBvcnRgIHRvIGJlIHBsYWNlZCBhbnl3aGVyZS5cbiAgbGV0IG5ld0ltcG9ydEluZGV4ID0gMDtcblxuICAvLyBPbmUgc3BlY2lhbCBjYXNlIGlzIGlmIHRoZSBmaWxlIHN0YXJ0cyB3aXRoIGEgbGljZW5zZSBoZWFkZXIgd2hpY2ggd2Ugd2FudCB0byBwcmVzZXJ2ZSBvbiB0b3AuXG4gIGlmIChjb250ZW50LnRyaW0oKS5zdGFydHNXaXRoKGNvbW1lbnRQbGFjZWhvbGRlclN0YXJ0KSkge1xuICAgIGNvbnN0IGNvbW1lbnRTdGFydEluZGV4ID0gY29udGVudC5pbmRleE9mKGNvbW1lbnRQbGFjZWhvbGRlclN0YXJ0KTtcbiAgICBuZXdJbXBvcnRJbmRleCA9IGNvbnRlbnQuaW5kZXhPZihjb21tZW50UGxhY2Vob2xkZXJFbmQsIGNvbW1lbnRTdGFydEluZGV4ICsgMSkgK1xuICAgICAgICBjb21tZW50UGxhY2Vob2xkZXJFbmQubGVuZ3RoO1xuICAgIC8vIElmIHRoZSBsZWFkaW5nIGNvbW1lbnQgZG9lc24ndCBlbmQgd2l0aCBhIG5ld2xpbmUsXG4gICAgLy8gd2UgbmVlZCB0byBpbnNlcnQgdGhlIGltcG9ydCBhdCB0aGUgbmV4dCBsaW5lLlxuICAgIGlmICghY29tbWVudFBsYWNlaG9sZGVyc1tjb250ZW50LnNsaWNlKGNvbW1lbnRTdGFydEluZGV4LCBuZXdJbXBvcnRJbmRleCldLmVuZHNXaXRoKCdcXG4nKSkge1xuICAgICAgbmV3SW1wb3J0SW5kZXggPSBNYXRoLm1heChuZXdJbXBvcnRJbmRleCwgY29udGVudC5pbmRleE9mKCdcXG4nLCBuZXdJbXBvcnRJbmRleCkgKyAxKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29udGVudC5zbGljZSgwLCBuZXdJbXBvcnRJbmRleCkgKyBgQHVzZSAnJHtpbXBvcnRQYXRofScgYXMgJHtuYW1lc3BhY2V9O1xcbmAgK1xuICAgICAgICAgY29udGVudC5zbGljZShuZXdJbXBvcnRJbmRleCk7XG59XG5cbi8qKiBGb3JtYXRzIGEgbWlncmF0aW9uIGtleSBhcyBhIFNhc3MgbWl4aW4gaW52b2NhdGlvbi4gKi9cbmZ1bmN0aW9uIG1peGluS2V5Rm9ybWF0dGVyKG5hbWVzcGFjZTogc3RyaW5nfG51bGwsIG5hbWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gIC8vIE5vdGUgdGhhdCBhZGRpbmcgYSBgKGAgYXQgdGhlIGVuZCBvZiB0aGUgcGF0dGVybiB3b3VsZCBiZSBtb3JlIGFjY3VyYXRlLCBidXQgbWl4aW5cbiAgLy8gaW52b2NhdGlvbnMgZG9uJ3QgbmVjZXNzYXJpbHkgaGF2ZSB0byBpbmNsdWRlIHRoZSBwYXJlbnRoZXNlcy4gV2UgY291bGQgYWRkIGBbKDtdYCxcbiAgLy8gYnV0IHRoZW4gd2Ugd29uJ3Qga25vdyB3aGljaCBjaGFyYWN0ZXIgdG8gaW5jbHVkZSBpbiB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nLlxuICByZXR1cm4gbmV3IFJlZ0V4cChgQGluY2x1ZGUgKyR7ZXNjYXBlUmVnRXhwKChuYW1lc3BhY2UgPyBuYW1lc3BhY2UgKyAnLicgOiAnJykgKyBuYW1lKX1gLCAnZycpO1xufVxuXG4vKiogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGEgU2FzcyBtaXhpbiByZXBsYWNlbWVudC4gKi9cbmZ1bmN0aW9uIGdldE1peGluVmFsdWVGb3JtYXR0ZXIobmFtZXNwYWNlOiBzdHJpbmcpOiAobmFtZTogc3RyaW5nKSA9PiBzdHJpbmcge1xuICAvLyBOb3RlIHRoYXQgYWRkaW5nIGEgYChgIGF0IHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4gd291bGQgYmUgbW9yZSBhY2N1cmF0ZSxcbiAgLy8gYnV0IG1peGluIGludm9jYXRpb25zIGRvbid0IG5lY2Vzc2FyaWx5IGhhdmUgdG8gaW5jbHVkZSB0aGUgcGFyZW50aGVzZXMuXG4gIHJldHVybiBuYW1lID0+IGBAaW5jbHVkZSAke25hbWVzcGFjZX0uJHtuYW1lfWA7XG59XG5cbi8qKiBGb3JtYXRzIGEgbWlncmF0aW9uIGtleSBhcyBhIFNhc3MgZnVuY3Rpb24gaW52b2NhdGlvbi4gKi9cbmZ1bmN0aW9uIGZ1bmN0aW9uS2V5Rm9ybWF0dGVyKG5hbWVzcGFjZTogc3RyaW5nfG51bGwsIG5hbWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGVzY2FwZVJlZ0V4cChgJHtuYW1lc3BhY2UgPyBuYW1lc3BhY2UgKyAnLicgOiAnJ30ke25hbWV9KGApO1xuICByZXR1cm4gbmV3IFJlZ0V4cChgKD88IVstX2EtekEtWjAtOV0pJHtmdW5jdGlvbk5hbWV9YCwgJ2cnKTtcbn1cblxuLyoqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBhIFNhc3MgZnVuY3Rpb24gcmVwbGFjZW1lbnQuICovXG5mdW5jdGlvbiBnZXRGdW5jdGlvblZhbHVlRm9ybWF0dGVyKG5hbWVzcGFjZTogc3RyaW5nKTogKG5hbWU6IHN0cmluZykgPT4gc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUgPT4gYCR7bmFtZXNwYWNlfS4ke25hbWV9KGA7XG59XG5cbi8qKiBGb3JtYXRzIGEgbWlncmF0aW9uIGtleSBhcyBhIFNhc3MgdmFyaWFibGUuICovXG5mdW5jdGlvbiB2YXJpYWJsZUtleUZvcm1hdHRlcihuYW1lc3BhY2U6IHN0cmluZ3xudWxsLCBuYW1lOiBzdHJpbmcpOiBSZWdFeHAge1xuICBjb25zdCB2YXJpYWJsZU5hbWUgPSBlc2NhcGVSZWdFeHAoYCR7bmFtZXNwYWNlID8gbmFtZXNwYWNlICsgJy4nIDogJyd9JCR7bmFtZX1gKTtcbiAgcmV0dXJuIG5ldyBSZWdFeHAoYCR7dmFyaWFibGVOYW1lfSg/IVstX2EtekEtWjAtOV0pYCwgJ2cnKTtcbn1cblxuLyoqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBhIFNhc3MgdmFyaWFibGUgcmVwbGFjZW1lbnQuICovXG5mdW5jdGlvbiBnZXRWYXJpYWJsZVZhbHVlRm9ybWF0dGVyKG5hbWVzcGFjZTogc3RyaW5nKTogKG5hbWU6IHN0cmluZykgPT4gc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUgPT4gYCR7bmFtZXNwYWNlfS4kJHtuYW1lfWA7XG59XG5cbi8qKiBFc2NhcGVzIHNwZWNpYWwgcmVnZXggY2hhcmFjdGVycyBpbiBhIHN0cmluZy4gKi9cbmZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdHIucmVwbGFjZSgvKFsuKis/Xj0hOiR7fSgpfFtcXF1cXC9cXFxcXSkvZywgJ1xcXFwkMScpO1xufVxuXG4vKiogUmVtb3ZlcyBhbGwgc3RyaW5ncyBmcm9tIGFub3RoZXIgc3RyaW5nLiAqL1xuZnVuY3Rpb24gcmVtb3ZlU3RyaW5ncyhjb250ZW50OiBzdHJpbmcsIHRvUmVtb3ZlOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiB0b1JlbW92ZVxuICAgIC5yZWR1Y2UoKGFjY3VtdWxhdG9yLCBjdXJyZW50KSA9PiBhY2N1bXVsYXRvci5yZXBsYWNlKGN1cnJlbnQsICcnKSwgY29udGVudClcbiAgICAucmVwbGFjZSgvXlxccysvLCAnJyk7XG59XG5cbi8qKiBQYXJzZXMgb3V0IHRoZSBuYW1lc3BhY2UgZnJvbSBhIFNhc3MgYEB1c2VgIHN0YXRlbWVudC4gKi9cbmZ1bmN0aW9uIGV4dHJhY3ROYW1lc3BhY2VGcm9tVXNlU3RhdGVtZW50KGZ1bGxJbXBvcnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGNsb3NlUXVvdGVJbmRleCA9IE1hdGgubWF4KGZ1bGxJbXBvcnQubGFzdEluZGV4T2YoYFwiYCksIGZ1bGxJbXBvcnQubGFzdEluZGV4T2YoYCdgKSk7XG5cbiAgaWYgKGNsb3NlUXVvdGVJbmRleCA+IC0xKSB7XG4gICAgY29uc3QgYXNFeHByZXNzaW9uID0gJ2FzICc7XG4gICAgY29uc3QgYXNJbmRleCA9IGZ1bGxJbXBvcnQuaW5kZXhPZihhc0V4cHJlc3Npb24sIGNsb3NlUXVvdGVJbmRleCk7XG5cbiAgICAvLyBJZiB3ZSBmb3VuZCBhbiBgIGFzIGAgZXhwcmVzc2lvbiwgd2UgY29uc2lkZXIgdGhlIHJlc3Qgb2YgdGhlIHRleHQgYXMgdGhlIG5hbWVzcGFjZS5cbiAgICBpZiAoYXNJbmRleCA+IC0xKSB7XG4gICAgICByZXR1cm4gZnVsbEltcG9ydC5zbGljZShhc0luZGV4ICsgYXNFeHByZXNzaW9uLmxlbmd0aCkuc3BsaXQoJzsnKVswXS50cmltKCk7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlIHRoZSBuYW1lc3BhY2UgaXMgdGhlIG5hbWUgb2YgdGhlIGZpbGUgdGhhdCBpcyBiZWluZyBpbXBvcnRlZC5cbiAgICBjb25zdCBsYXN0U2xhc2hJbmRleCA9IGZ1bGxJbXBvcnQubGFzdEluZGV4T2YoJy8nLCBjbG9zZVF1b3RlSW5kZXgpO1xuXG4gICAgaWYgKGxhc3RTbGFzaEluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IGZpbGVOYW1lID0gZnVsbEltcG9ydC5zbGljZShsYXN0U2xhc2hJbmRleCArIDEsIGNsb3NlUXVvdGVJbmRleClcbiAgICAgICAgLy8gU2FzcyBhbGxvd3MgZm9yIGxlYWRpbmcgdW5kZXJzY29yZXMgdG8gYmUgb21pdHRlZCBhbmQgaXQgdGVjaG5pY2FsbHkgc3VwcG9ydHMgLnNjc3MuXG4gICAgICAgIC5yZXBsYWNlKC9eX3woXFwuaW1wb3J0KT9cXC5zY3NzJHxcXC5pbXBvcnQkL2csICcnKTtcblxuICAgICAgLy8gU2FzcyBpZ25vcmVzIGAvaW5kZXhgIGFuZCBpbmZlcnMgdGhlIG5hbWVzcGFjZSBhcyB0aGUgbmV4dCBzZWdtZW50IGluIHRoZSBwYXRoLlxuICAgICAgaWYgKGZpbGVOYW1lID09PSAnaW5kZXgnKSB7XG4gICAgICAgIGNvbnN0IG5leHRTbGFzaEluZGV4ID0gZnVsbEltcG9ydC5sYXN0SW5kZXhPZignLycsIGxhc3RTbGFzaEluZGV4IC0gMSk7XG5cbiAgICAgICAgaWYgKG5leHRTbGFzaEluZGV4ID4gLTEpIHtcbiAgICAgICAgICByZXR1cm4gZnVsbEltcG9ydC5zbGljZShuZXh0U2xhc2hJbmRleCArIDEsIGxhc3RTbGFzaEluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZpbGVOYW1lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRocm93IEVycm9yKGBDb3VsZCBub3QgZXh0cmFjdCBuYW1lc3BhY2UgZnJvbSBpbXBvcnQgXCIke2Z1bGxJbXBvcnR9XCIuYCk7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgdmFyaWFibGVzIHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgd2l0aCB0aGVpciB2YWx1ZXMuXG4gKiBAcGFyYW0gY29udGVudCBDb250ZW50IG9mIHRoZSBmaWxlIHRvIGJlIG1pZ3JhdGVkLlxuICogQHBhcmFtIHZhcmlhYmxlcyBNYXBwaW5nIGJldHdlZW4gdmFyaWFibGUgbmFtZXMgYW5kIHRoZWlyIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gcmVwbGFjZVJlbW92ZWRWYXJpYWJsZXMoY29udGVudDogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICBPYmplY3Qua2V5cyh2YXJpYWJsZXMpLmZvckVhY2godmFyaWFibGVOYW1lID0+IHtcbiAgICAvLyBOb3RlIHRoYXQgdGhlIHBhdHRlcm4gdXNlcyBhIG5lZ2F0aXZlIGxvb2thaGVhZCB0byBleGNsdWRlXG4gICAgLy8gdmFyaWFibGUgYXNzaWdubWVudHMsIGJlY2F1c2UgdGhleSBjYW4ndCBiZSBtaWdyYXRlZC5cbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFwkJHtlc2NhcGVSZWdFeHAodmFyaWFibGVOYW1lKX0oPyFcXFxccys6fDopYCwgJ2cnKTtcbiAgICBjb250ZW50ID0gY29udGVudC5yZXBsYWNlKHJlZ2V4LCB2YXJpYWJsZXNbdmFyaWFibGVOYW1lXSk7XG4gIH0pO1xuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG5cbi8qKlxuICogUmVwbGFjZXMgYWxsIG9mIHRoZSBjb21tZW50cyBpbiBhIFNhc3MgZmlsZSB3aXRoIHBsYWNlaG9sZGVycyBhbmRcbiAqIHJldHVybnMgdGhlIGxpc3Qgb2YgcGxhY2Vob2xkZXJzIHNvIHRoZXkgY2FuIGJlIHJlc3RvcmVkIGxhdGVyLlxuICovXG5mdW5jdGlvbiBlc2NhcGVDb21tZW50cyhjb250ZW50OiBzdHJpbmcpOiB7Y29udGVudDogc3RyaW5nLCBwbGFjZWhvbGRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz59IHtcbiAgY29uc3QgcGxhY2Vob2xkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gIGxldCBjb21tZW50Q291bnRlciA9IDA7XG4gIGxldCBbb3BlbkluZGV4LCBjbG9zZUluZGV4XSA9IGZpbmRDb21tZW50KGNvbnRlbnQpO1xuXG4gIHdoaWxlIChvcGVuSW5kZXggPiAtMSAmJiBjbG9zZUluZGV4ID4gLTEpIHtcbiAgICBjb25zdCBwbGFjZWhvbGRlciA9IGNvbW1lbnRQbGFjZWhvbGRlclN0YXJ0ICsgKGNvbW1lbnRDb3VudGVyKyspICsgY29tbWVudFBsYWNlaG9sZGVyRW5kO1xuICAgIHBsYWNlaG9sZGVyc1twbGFjZWhvbGRlcl0gPSBjb250ZW50LnNsaWNlKG9wZW5JbmRleCwgY2xvc2VJbmRleCk7XG4gICAgY29udGVudCA9IGNvbnRlbnQuc2xpY2UoMCwgb3BlbkluZGV4KSArIHBsYWNlaG9sZGVyICsgY29udGVudC5zbGljZShjbG9zZUluZGV4KTtcbiAgICBbb3BlbkluZGV4LCBjbG9zZUluZGV4XSA9IGZpbmRDb21tZW50KGNvbnRlbnQpO1xuICB9XG5cbiAgcmV0dXJuIHtjb250ZW50LCBwbGFjZWhvbGRlcnN9O1xufVxuXG4vKiogRmluZHMgdGhlIHN0YXJ0IGFuZCBlbmQgaW5kZXggb2YgYSBjb21tZW50IGluIGEgZmlsZS4gKi9cbmZ1bmN0aW9uIGZpbmRDb21tZW50KGNvbnRlbnQ6IHN0cmluZyk6IFtvcGVuSW5kZXg6IG51bWJlciwgY2xvc2VJbmRleDogbnVtYmVyXSB7XG4gIC8vIEFkZCBhbiBleHRyYSBuZXcgbGluZSBhdCB0aGUgZW5kIHNvIHRoYXQgd2UgY2FuIGNvcnJlY3RseSBjYXB0dXJlIHNpbmdsZS1saW5lIGNvbW1lbnRzXG4gIC8vIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuIEl0IGRvZXNuJ3QgcmVhbGx5IG1hdHRlciB0aGF0IHRoZSBlbmQgaW5kZXggd2lsbCBiZSBvdXQgb2YgYm91bmRzLFxuICAvLyBiZWNhdXNlIGBTdHJpbmcucHJvdG90eXBlLnNsaWNlYCB3aWxsIGNsYW1wIGl0IHRvIHRoZSBzdHJpbmcgbGVuZ3RoLlxuICBjb250ZW50ICs9ICdcXG4nO1xuXG4gIGZvciAoY29uc3QgW29wZW4sIGNsb3NlXSBvZiBjb21tZW50UGFpcnMuZW50cmllcygpKSB7XG4gICAgY29uc3Qgb3BlbkluZGV4ID0gY29udGVudC5pbmRleE9mKG9wZW4pO1xuXG4gICAgaWYgKG9wZW5JbmRleCA+IC0xKSB7XG4gICAgICBjb25zdCBjbG9zZUluZGV4ID0gY29udGVudC5pbmRleE9mKGNsb3NlLCBvcGVuSW5kZXggKyAxKTtcbiAgICAgIHJldHVybiBjbG9zZUluZGV4ID4gLTEgPyBbb3BlbkluZGV4LCBjbG9zZUluZGV4ICsgY2xvc2UubGVuZ3RoXSA6IFstMSwgLTFdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBbLTEsIC0xXTtcbn1cblxuLyoqIFJlc3RvcmVzIHRoZSBjb21tZW50cyB0aGF0IGhhdmUgYmVlbiBlc2NhcGVkIGJ5IGBlc2NhcGVDb21tZW50c2AuICovXG5mdW5jdGlvbiByZXN0b3JlQ29tbWVudHMoY29udGVudDogc3RyaW5nLCBwbGFjZWhvbGRlcnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICBPYmplY3Qua2V5cyhwbGFjZWhvbGRlcnMpLmZvckVhY2goa2V5ID0+IGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2Uoa2V5LCBwbGFjZWhvbGRlcnNba2V5XSkpO1xuICByZXR1cm4gY29udGVudDtcbn1cbiJdfQ==
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21hdGVyaWFsL3NjaGVtYXRpY3MvbmctdXBkYXRlL21pZ3JhdGlvbnMvdGhlbWluZy1hcGktdjEyL21pZ3JhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCxxQ0FRa0I7QUFlbEIsMkRBQTJEO0FBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxDQUFpQjtJQUMzQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7SUFDWixDQUFDLElBQUksRUFBRSxJQUFJLENBQUM7Q0FDYixDQUFDLENBQUM7QUFFSCx1RUFBdUU7QUFDdkUsTUFBTSx1QkFBdUIsR0FBRyxzQ0FBc0MsQ0FBQztBQUV2RSxpREFBaUQ7QUFDakQsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUM7QUFFckM7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsV0FBbUIsRUFDbkIsaUJBQXlCLEVBQ3pCLFlBQW9CLEVBQ3BCLHFCQUE2QixFQUM3QixnQkFBd0IsRUFDeEIsdUJBQXFDLEVBQUUsRUFDdkMsZUFBd0I7SUFFeEIsSUFBSSxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUMsR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUQsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUNuRixNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUV6RSx3RUFBd0U7SUFDeEUseUVBQXlFO0lBQ3pFLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pGLE9BQU8sR0FBRyxzQkFBc0IsQ0FD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QUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekQsT0FBTyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1RTtLQUNGO0lBRUQsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVELHdFQUF3RTtBQUN4RSxTQUFTLGVBQWUsQ0FBQyxPQUFlLEVBQUUsWUFBb0M7SUFDNUUsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUYsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge1xuICBtYXRlcmlhbE1peGlucyxcbiAgbWF0ZXJpYWxGdW5jdGlvbnMsXG4gIG1hdGVyaWFsVmFyaWFibGVzLFxuICBjZGtNaXhpbnMsXG4gIGNka1ZhcmlhYmxlcyxcbiAgcmVtb3ZlZE1hdGVyaWFsVmFyaWFibGVzLFxuICB1bnByZWZpeGVkUmVtb3ZlZFZhcmlhYmxlcyxcbn0gZnJvbSAnLi9jb25maWcnO1xuXG4vKiogVGhlIHJlc3VsdCBvZiBhIHNlYXJjaCBmb3IgaW1wb3J0cyBhbmQgbmFtZXNwYWNlcyBpbiBhIGZpbGUuICovXG5pbnRlcmZhY2UgRGV0ZWN0SW1wb3J0UmVzdWx0IHtcbiAgaW1wb3J0czogc3RyaW5nW107XG4gIG5hbWVzcGFjZXM6IHN0cmluZ1tdO1xufVxuXG4vKiogQWRkaXRpb24gbWl4aW4gYW5kIGZ1bmN0aW9uIG5hbWVzIHRoYXQgY2FuIGJlIHVwZGF0ZWQgd2hlbiBpbnZva2luZyBtaWdyYXRpb24gZGlyZWN0bHkuICovXG5pbnRlcmZhY2UgRXh0cmFTeW1ib2xzIHtcbiAgbWl4aW5zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgZnVuY3Rpb25zPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgdmFyaWFibGVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqIFBvc3NpYmxlIHBhaXJzIG9mIGNvbW1lbnQgY2hhcmFjdGVycyBpbiBhIFNhc3MgZmlsZS4gKi9cbmNvbnN0IGNvbW1lbnRQYWlycyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KFtcbiAgWycvKicsICcqLyddLFxuICBbJy8vJywgJ1xcbiddLFxuXSk7XG5cbi8qKiBQcmVmaXggZm9yIHRoZSBwbGFjZWhvbGRlciB0aGF0IHdpbGwgYmUgdXNlZCB0byBlc2NhcGUgY29tbWVudHMuICovXG5jb25zdCBjb21tZW50UGxhY2Vob2xkZXJTdGFydCA9ICdfXzw8bmdUaGVtaW5nTWlncmF0aW9uRXNjYXBlZENvbW1lbnQnO1xuXG4vKiogU3VmZml4IGZvciB0aGUgY29tbWVudCBlc2NhcGUgcGxhY2Vob2xkZXIuICovXG5jb25zdCBjb21tZW50UGxhY2Vob2xkZXJFbmQgPSAnPj5fXyc7XG5cbi8qKlxuICogTWlncmF0ZXMgdGhlIGNvbnRlbnQgb2YgYSBmaWxlIHRvIHRoZSBuZXcgdGhlbWluZyBBUEkuIE5vdGUgdGhhdCB0aGlzIG1pZ3JhdGlvbiBpcyB1c2luZyBwbGFpblxuICogc3RyaW5nIG1hbmlwdWxhdGlvbiwgcmF0aGVyIHRoYW4gdGhlIEFTVCBmcm9tIFBvc3RDU1MgYW5kIHRoZSBzY2hlbWF0aWNzIHN0cmluZyBtYW5pcHVsYXRpb25cbiAqIEFQSXMsIGJlY2F1c2UgaXQgYWxsb3dzIHVzIHRvIHJ1biBpdCBpbnNpZGUgZzMgYW5kIHRvIGF2b2lkIGludHJvZHVjaW5nIG5ldyBkZXBlbmRlbmNpZXMuXG4gKiBAcGFyYW0gZmlsZUNvbnRlbnQgQ29udGVudCBvZiB0aGUgZmlsZS5cbiAqIEBwYXJhbSBvbGRNYXRlcmlhbFByZWZpeCBQcmVmaXggd2l0aCB3aGljaCB0aGUgb2xkIE1hdGVyaWFsIGltcG9ydHMgc2hvdWxkIHN0YXJ0LlxuICogICBIYXMgdG8gZW5kIHdpdGggYSBzbGFzaC4gRS5nLiBpZiBgQGltcG9ydCAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGhlbWluZydgIHNob3VsZCBiZVxuICogICBtYXRjaGVkLCB0aGUgcHJlZml4IHdvdWxkIGJlIGBAYW5ndWxhci9tYXRlcmlhbC9gLlxuICogQHBhcmFtIG9sZENka1ByZWZpeCBQcmVmaXggd2l0aCB3aGljaCB0aGUgb2xkIENESyBpbXBvcnRzIHNob3VsZCBzdGFydC5cbiAqICAgSGFzIHRvIGVuZCB3aXRoIGEgc2xhc2guIEUuZy4gaWYgYEBpbXBvcnQgJ0Bhbmd1bGFyL2Nkay9vdmVybGF5J2Agc2hvdWxkIGJlXG4gKiAgIG1hdGNoZWQsIHRoZSBwcmVmaXggd291bGQgYmUgYEBhbmd1bGFyL2Nkay9gLlxuICogQHBhcmFtIG5ld01hdGVyaWFsSW1wb3J0UGF0aCBOZXcgaW1wb3J0IHRvIHRoZSBNYXRlcmlhbCB0aGVtaW5nIEFQSSAoZS5nLiBgQGFuZ3VsYXIvbWF0ZXJpYWxgKS5cbiAqIEBwYXJhbSBuZXdDZGtJbXBvcnRQYXRoIE5ldyBpbXBvcnQgdG8gdGhlIENESyBTYXNzIEFQSXMgKGUuZy4gYEBhbmd1bGFyL2Nka2ApLlxuICogQHBhcmFtIGV4Y2x1ZGVkSW1wb3J0cyBQYXR0ZXJuIHRoYXQgY2FuIGJlIHVzZWQgdG8gZXhjbHVkZSBpbXBvcnRzIGZyb20gYmVpbmcgcHJvY2Vzc2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWlncmF0ZUZpbGVDb250ZW50KFxuICBmaWxlQ29udGVudDogc3RyaW5nLFxuICBvbGRNYXRlcmlhbFByZWZpeDogc3RyaW5nLFxuICBvbGRDZGtQcmVmaXg6IHN0cmluZyxcbiAgbmV3TWF0ZXJpYWxJbXBvcnRQYXRoOiBzdHJpbmcsXG4gIG5ld0Nka0ltcG9ydFBhdGg6IHN0cmluZyxcbiAgZXh0cmFNYXRlcmlhbFN5bWJvbHM6IEV4dHJhU3ltYm9scyA9IHt9LFxuICBleGNsdWRlZEltcG9ydHM/OiBSZWdFeHAsXG4pOiBzdHJpbmcge1xuICBsZXQge2NvbnRlbnQsIHBsYWNlaG9sZGVyc30gPSBlc2NhcGVDb21tZW50cyhmaWxlQ29udGVudCk7XG4gIGNvbnN0IG1hdGVyaWFsUmVzdWx0cyA9IGRldGVjdEltcG9ydHMoY29udGVudCwgb2xkTWF0ZXJpYWxQcmVmaXgsIGV4Y2x1ZGVkSW1wb3J0cyk7XG4gIGNvbnN0IGNka1Jlc3VsdHMgPSBkZXRlY3RJbXBvcnRzKGNvbnRlbnQsIG9sZENka1ByZWZpeCwgZXhjbHVkZWRJbXBvcnRzKTtcblxuICAvLyBUcnkgdG8gbWlncmF0ZSB0aGUgc3ltYm9scyBldmVuIGlmIHRoZXJlIGFyZSBubyBpbXBvcnRzLiBUaGlzIGlzIHVzZWRcbiAgLy8gdG8gY292ZXIgdGhlIGNhc2Ugd2hlcmUgdGhlIENvbXBvbmVudHMgc3ltYm9scyB3ZXJlIHVzZWQgdHJhbnNpdGl2ZWx5LlxuICBjb250ZW50ID0gbWlncmF0ZUNka1N5bWJvbHMoY29udGVudCwgbmV3Q2RrSW1wb3J0UGF0aCwgcGxhY2Vob2xkZXJzLCBjZGtSZXN1bHRzKTtcbiAgY29udGVudCA9IG1pZ3JhdGVNYXRlcmlhbFN5bWJvbHMoXG4gICAgY29udGVudCxcbiAgICBuZXdNYXRlcmlhbEltcG9ydFBhdGgsXG4gICAgbWF0ZXJpYWxSZXN1bHRzLFxuICAgIHBsYWNlaG9sZGVycyxcbiAgICBleHRyYU1hdGVyaWFsU3ltYm9scyxcbiAgKTtcbiAgY29udGVudCA9IHJlcGxhY2VSZW1vdmVkVmFyaWFibGVzKGNvbnRlbnQsIHJlbW92ZWRNYXRlcmlhbFZhcmlhYmxlcyk7XG5cbiAgLy8gV2UgY2FuIGFzc3VtZSB0aGF0IHRoZSBtaWdyYXRpb24gaGFzIHRha2VuIGNhcmUgb2YgYW55IENvbXBvbmVudHMgc3ltYm9scyB0aGF0IHdlcmVcbiAgLy8gaW1wb3J0ZWQgdHJhbnNpdGl2ZWx5IHNvIHdlIGNhbiBhbHdheXMgZHJvcCB0aGUgb2xkIGltcG9ydHMuIFdlIGFsc28gYXNzdW1lIHRoYXQgaW1wb3J0c1xuICAvLyB0byB0aGUgbmV3IGVudHJ5IHBvaW50cyBoYXZlIGJlZW4gYWRkZWQgYWxyZWFkeS5cbiAgaWYgKG1hdGVyaWFsUmVzdWx0cy5pbXBvcnRzLmxlbmd0aCkge1xuICAgIGNvbnRlbnQgPSByZXBsYWNlUmVtb3ZlZFZhcmlhYmxlcyhjb250ZW50LCB1bnByZWZpeGVkUmVtb3ZlZFZhcmlhYmxlcyk7XG4gICAgY29udGVudCA9IHJlbW92ZVN0cmluZ3MoY29udGVudCwgbWF0ZXJpYWxSZXN1bHRzLmltcG9ydHMpO1xuICB9XG5cbiAgaWYgKGNka1Jlc3VsdHMuaW1wb3J0cy5sZW5ndGgpIHtcbiAgICBjb250ZW50ID0gcmVtb3ZlU3RyaW5ncyhjb250ZW50LCBjZGtSZXN1bHRzLmltcG9ydHMpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3RvcmVDb21tZW50cyhjb250ZW50LCBwbGFjZWhvbGRlcnMpO1xufVxuXG4vKipcbiAqIENvdW50cyB0aGUgbnVtYmVyIG9mIGltcG9ydHMgd2l0aCBhIHNwZWNpZmljIHByZWZpeCBhbmQgZXh0cmFjdHMgdGhlaXIgbmFtZXNwYWNlcy5cbiAqIEBwYXJhbSBjb250ZW50IEZpbGUgY29udGVudCBpbiB3aGljaCB0byBsb29rIGZvciBpbXBvcnRzLlxuICogQHBhcmFtIHByZWZpeCBQcmVmaXggdGhhdCB0aGUgaW1wb3J0cyBzaG91bGQgc3RhcnQgd2l0aC5cbiAqIEBwYXJhbSBleGNsdWRlZEltcG9ydHMgUGF0dGVybiB0aGF0IGNhbiBiZSB1c2VkIHRvIGV4Y2x1ZGUgaW1wb3J0cyBmcm9tIGJlaW5nIHByb2Nlc3NlZC5cbiAqL1xuZnVuY3Rpb24gZGV0ZWN0SW1wb3J0cyhcbiAgY29udGVudDogc3RyaW5nLFxuICBwcmVmaXg6IHN0cmluZyxcbiAgZXhjbHVkZWRJbXBvcnRzPzogUmVnRXhwLFxuKTogRGV0ZWN0SW1wb3J0UmVzdWx0IHtcbiAgaWYgKHByZWZpeFtwcmVmaXgubGVuZ3RoIC0gMV0gIT09ICcvJykge1xuICAgIC8vIFNvbWUgb2YgdGhlIGxvZ2ljIGZ1cnRoZXIgZG93biBtYWtlcyBhc3N1bXB0aW9ucyBhYm91dCB0aGUgaW1wb3J0IGRlcHRoLlxuICAgIHRocm93IEVycm9yKGBQcmVmaXggXCIke3ByZWZpeH1cIiBoYXMgdG8gZW5kIGluIGEgc2xhc2guYCk7XG4gIH1cblxuICAvLyBMaXN0IG9mIGBAdXNlYCBuYW1lc3BhY2VzIGZyb20gd2hpY2ggQW5ndWxhciBDREsvTWF0ZXJpYWwgQVBJcyBtYXkgYmUgcmVmZXJlbmNlZC5cbiAgLy8gU2luY2Ugd2Uga25vdyB0aGF0IHRoZSBsaWJyYXJ5IGRvZXNuJ3QgaGF2ZSBhbnkgbmFtZSBjb2xsaXNpb25zLCB3ZSBjYW4gdHJlYXQgYWxsIG9mIHRoZXNlXG4gIC8vIG5hbWVzcGFjZXMgYXMgZXF1aXZhbGVudC5cbiAgY29uc3QgbmFtZXNwYWNlczogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgaW1wb3J0czogc3RyaW5nW10gPSBbXTtcbiAgY29uc3QgcGF0dGVybiA9IG5ldyBSZWdFeHAoYEAoaW1wb3J0fHVzZSkgK1snXCJdfj8ke2VzY2FwZVJlZ0V4cChwcmVmaXgpfS4qWydcIl0uKjs/XFxuYCwgJ2cnKTtcbiAgbGV0IG1hdGNoOiBSZWdFeHBFeGVjQXJyYXkgfCBudWxsID0gbnVsbDtcblxuICB3aGlsZSAoKG1hdGNoID0gcGF0dGVybi5leGVjKGNvbnRlbnQpKSkge1xuICAgIGNvbnN0IFtmdWxsSW1wb3J0LCB0eXBlXSA9IG1hdGNoO1xuXG4gICAgaWYgKGV4Y2x1ZGVkSW1wb3J0cz8udGVzdChmdWxsSW1wb3J0KSkge1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgaWYgKHR5cGUgPT09ICd1c2UnKSB7XG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBleHRyYWN0TmFtZXNwYWNlRnJvbVVzZVN0YXRlbWVudChmdWxsSW1wb3J0KTtcblxuICAgICAgaWYgKG5hbWVzcGFjZXMuaW5kZXhPZihuYW1lc3BhY2UpID09PSAtMSkge1xuICAgICAgICBuYW1lc3BhY2VzLnB1c2gobmFtZXNwYWNlKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbXBvcnRzLnB1c2goZnVsbEltcG9ydCk7XG4gIH1cblxuICByZXR1cm4ge2ltcG9ydHMsIG5hbWVzcGFjZXN9O1xufVxuXG4vKiogTWlncmF0ZXMgdGhlIE1hdGVyaWFsIHN5bWJvbHMgaW4gYSBmaWxlLiAqL1xuZnVuY3Rpb24gbWlncmF0ZU1hdGVyaWFsU3ltYm9scyhcbiAgY29udGVudDogc3RyaW5nLFxuICBpbXBvcnRQYXRoOiBzdHJpbmcsXG4gIGRldGVjdGVkSW1wb3J0czogRGV0ZWN0SW1wb3J0UmVzdWx0LFxuICBjb21tZW50UGxhY2Vob2xkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICBleHRyYU1hdGVyaWFsU3ltYm9sczogRXh0cmFTeW1ib2xzID0ge30sXG4pOiBzdHJpbmcge1xuICBjb25zdCBpbml0aWFsQ29udGVudCA9IGNvbnRlbnQ7XG4gIGNvbnN0IG5hbWVzcGFjZSA9ICdtYXQnO1xuXG4gIC8vIE1pZ3JhdGUgdGhlIG1peGlucy5cbiAgY29uc3QgbWl4aW5zVG9VcGRhdGUgPSB7Li4ubWF0ZXJpYWxNaXhpbnMsIC4uLmV4dHJhTWF0ZXJpYWxTeW1ib2xzLm1peGluc307XG4gIGNvbnRlbnQgPSByZW5hbWVTeW1ib2xzKFxuICAgIGNvbnRlbnQsXG4gICAgbWl4aW5zVG9VcGRhdGUsXG4gICAgZGV0ZWN0ZWRJbXBvcnRzLm5hbWVzcGFjZXMsXG4gICAgbWl4aW5LZXlGb3JtYXR0ZXIsXG4gICAgZ2V0TWl4aW5WYWx1ZUZvcm1hdHRlcihuYW1lc3BhY2UpLFxuICApO1xuXG4gIC8vIE1pZ3JhdGUgdGhlIGZ1bmN0aW9ucy5cbiAgY29uc3QgZnVuY3Rpb25zVG9VcGRhdGUgPSB7Li4ubWF0ZXJpYWxGdW5jdGlvbnMsIC4uLmV4dHJhTWF0ZXJpYWxTeW1ib2xzLmZ1bmN0aW9uc307XG4gIGNvbnRlbnQgPSByZW5hbWVTeW1ib2xzKFxuICAgIGNvbnRlbnQsXG4gICAgZnVuY3Rpb25zVG9VcGRhdGUsXG4gICAgZGV0ZWN0ZWRJbXBvcnRzLm5hbWVzcGFjZXMsXG4gICAgZnVuY3Rpb25LZXlGb3JtYXR0ZXIsXG4gICAgZ2V0RnVuY3Rpb25WYWx1ZUZvcm1hdHRlcihuYW1lc3BhY2UpLFxuICApO1xuXG4gIC8vIE1pZ3JhdGUgdGhlIHZhcmlhYmxlcy5cbiAgY29uc3QgdmFyaWFibGVzVG9VcGRhdGUgPSB7Li4ubWF0ZXJpYWxWYXJpYWJsZXMsIC4uLmV4dHJhTWF0ZXJpYWxTeW1ib2xzLnZhcmlhYmxlc307XG4gIGNvbnRlbnQgPSByZW5hbWVTeW1ib2xzKFxuICAgIGNvbnRlbnQsXG4gICAgdmFyaWFibGVzVG9VcGRhdGUsXG4gICAgZGV0ZWN0ZWRJbXBvcnRzLm5hbWVzcGFjZXMsXG4gICAgdmFyaWFibGVLZXlGb3JtYXR0ZXIsXG4gICAgZ2V0VmFyaWFibGVWYWx1ZUZvcm1hdHRlcihuYW1lc3BhY2UpLFxuICApO1xuXG4gIGlmIChjb250ZW50ICE9PSBpbml0aWFsQ29udGVudCkge1xuICAgIC8vIEFkZCBhbiBpbXBvcnQgdG8gdGhlIG5ldyBBUEkgb25seSBpZiBhbnkgb2YgdGhlIEFQSXMgd2VyZSBiZWluZyB1c2VkLlxuICAgIGNvbnRlbnQgPSBpbnNlcnRVc2VTdGF0ZW1lbnQoY29udGVudCwgaW1wb3J0UGF0aCwgbmFtZXNwYWNlLCBjb21tZW50UGxhY2Vob2xkZXJzKTtcbiAgfVxuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG4vKiogTWlncmF0ZXMgdGhlIENESyBzeW1ib2xzIGluIGEgZmlsZS4gKi9cbmZ1bmN0aW9uIG1pZ3JhdGVDZGtTeW1ib2xzKFxuICBjb250ZW50OiBzdHJpbmcsXG4gIGltcG9ydFBhdGg6IHN0cmluZyxcbiAgY29tbWVudFBsYWNlaG9sZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgZGV0ZWN0ZWRJbXBvcnRzOiBEZXRlY3RJbXBvcnRSZXN1bHQsXG4pOiBzdHJpbmcge1xuICBjb25zdCBpbml0aWFsQ29udGVudCA9IGNvbnRlbnQ7XG4gIGNvbnN0IG5hbWVzcGFjZSA9ICdjZGsnO1xuXG4gIC8vIE1pZ3JhdGUgdGhlIG1peGlucy5cbiAgY29udGVudCA9IHJlbmFtZVN5bWJvbHMoXG4gICAgY29udGVudCxcbiAgICBjZGtNaXhpbnMsXG4gICAgZGV0ZWN0ZWRJbXBvcnRzLm5hbWVzcGFjZXMsXG4gICAgbWl4aW5LZXlGb3JtYXR0ZXIsXG4gICAgZ2V0TWl4aW5WYWx1ZUZvcm1hdHRlcihuYW1lc3BhY2UpLFxuICApO1xuXG4gIC8vIE1pZ3JhdGUgdGhlIHZhcmlhYmxlcy5cbiAgY29udGVudCA9IHJlbmFtZVN5bWJvbHMoXG4gICAgY29udGVudCxcbiAgICBjZGtWYXJpYWJsZXMsXG4gICAgZGV0ZWN0ZWRJbXBvcnRzLm5hbWVzcGFjZXMsXG4gICAgdmFyaWFibGVLZXlGb3JtYXR0ZXIsXG4gICAgZ2V0VmFyaWFibGVWYWx1ZUZvcm1hdHRlcihuYW1lc3BhY2UpLFxuICApO1xuXG4gIC8vIFByZXZpb3VzbHkgdGhlIENESyBzeW1ib2xzIHdlcmUgZXhwb3NlZCB0aHJvdWdoIGBtYXRlcmlhbC90aGVtaW5nYCwgYnV0IG5vdyB3ZSBoYXZlIGFcbiAgLy8gZGVkaWNhdGVkIGVudHJ5cG9pbnQgZm9yIHRoZSBDREsuIE9ubHkgYWRkIGFuIGltcG9ydCBmb3IgaXQgaWYgYW55IG9mIHRoZSBzeW1ib2xzIGFyZSB1c2VkLlxuICBpZiAoY29udGVudCAhPT0gaW5pdGlhbENvbnRlbnQpIHtcbiAgICBjb250ZW50ID0gaW5zZXJ0VXNlU3RhdGVtZW50KGNvbnRlbnQsIGltcG9ydFBhdGgsIG5hbWVzcGFjZSwgY29tbWVudFBsYWNlaG9sZGVycyk7XG4gIH1cblxuICByZXR1cm4gY29udGVudDtcbn1cblxuLyoqXG4gKiBSZW5hbWVzIGFsbCBTYXNzIHN5bWJvbHMgaW4gYSBmaWxlIGJhc2VkIG9uIGEgcHJlLWRlZmluZWQgbWFwcGluZy5cbiAqIEBwYXJhbSBjb250ZW50IENvbnRlbnQgb2YgYSBmaWxlIHRvIGJlIG1pZ3JhdGVkLlxuICogQHBhcmFtIG1hcHBpbmcgTWFwcGluZyBiZXR3ZWVuIHN5bWJvbCBuYW1lcyBhbmQgdGhlaXIgcmVwbGFjZW1lbnRzLlxuICogQHBhcmFtIG5hbWVzcGFjZXMgTmFtZXMgdG8gaXRlcmF0ZSBvdmVyIGFuZCBwYXNzIHRvIGdldEtleVBhdHRlcm4uXG4gKiBAcGFyYW0gZ2V0S2V5UGF0dGVybiBGdW5jdGlvbiB1c2VkIHRvIHR1cm4gZWFjaCBvZiB0aGUga2V5cyBpbnRvIGEgcmVnZXguXG4gKiBAcGFyYW0gZm9ybWF0VmFsdWUgRm9ybWF0cyB0aGUgdmFsdWUgdGhhdCB3aWxsIHJlcGxhY2UgYW55IG1hdGNoZXMgb2YgdGhlIHBhdHRlcm4gcmV0dXJuZWQgYnlcbiAqICBgZ2V0S2V5UGF0dGVybmAuXG4gKi9cbmZ1bmN0aW9uIHJlbmFtZVN5bWJvbHMoXG4gIGNvbnRlbnQ6IHN0cmluZyxcbiAgbWFwcGluZzogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgbmFtZXNwYWNlczogc3RyaW5nW10sXG4gIGdldEtleVBhdHRlcm46IChuYW1lc3BhY2U6IHN0cmluZyB8IG51bGwsIGtleTogc3RyaW5nKSA9PiBSZWdFeHAsXG4gIGZvcm1hdFZhbHVlOiAoa2V5OiBzdHJpbmcpID0+IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIC8vIFRoZSBudWxsIGF0IHRoZSBlbmQgaXMgc28gdGhhdCB3ZSBtYWtlIG9uZSBsYXN0IHBhc3MgdG8gY292ZXIgbm9uLW5hbWVzcGFjZWQgc3ltYm9scy5cbiAgWy4uLm5hbWVzcGFjZXMuc2xpY2UoKSwgbnVsbF0uZm9yRWFjaChuYW1lc3BhY2UgPT4ge1xuICAgIE9iamVjdC5rZXlzKG1hcHBpbmcpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHBhdHRlcm4gPSBnZXRLZXlQYXR0ZXJuKG5hbWVzcGFjZSwga2V5KTtcblxuICAgICAgLy8gU2FuaXR5IGNoZWNrIHNpbmNlIG5vbi1nbG9iYWwgcmVnZXhlcyB3aWxsIG9ubHkgcmVwbGFjZSB0aGUgZmlyc3QgbWF0Y2guXG4gICAgICBpZiAocGF0dGVybi5mbGFncy5pbmRleE9mKCdnJykgPT09IC0xKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdSZXBsYWNlbWVudCBwYXR0ZXJuIG11c3QgYmUgZ2xvYmFsLicpO1xuICAgICAgfVxuXG4gICAgICBjb250ZW50ID0gY29udGVudC5yZXBsYWNlKHBhdHRlcm4sIGZvcm1hdFZhbHVlKG1hcHBpbmdba2V5XSkpO1xuICAgIH0pO1xuICB9KTtcblxuICByZXR1cm4gY29udGVudDtcbn1cblxuLyoqIEluc2VydHMgYW4gYEB1c2VgIHN0YXRlbWVudCBpbiBhIHN0cmluZy4gKi9cbmZ1bmN0aW9uIGluc2VydFVzZVN0YXRlbWVudChcbiAgY29udGVudDogc3RyaW5nLFxuICBpbXBvcnRQYXRoOiBzdHJpbmcsXG4gIG5hbWVzcGFjZTogc3RyaW5nLFxuICBjb21tZW50UGxhY2Vob2xkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogc3RyaW5nIHtcbiAgLy8gSWYgdGhlIGNvbnRlbnQgYWxyZWFkeSBoYXMgdGhlIGBAdXNlYCBpbXBvcnQsIHdlIGRvbid0IG5lZWQgdG8gYWRkIGFueXRoaW5nLlxuICBpZiAobmV3IFJlZ0V4cChgQHVzZSArWydcIl0ke2ltcG9ydFBhdGh9WydcIl1gLCAnZycpLnRlc3QoY29udGVudCkpIHtcbiAgICByZXR1cm4gY29udGVudDtcbiAgfVxuXG4gIC8vIFNhc3Mgd2lsbCB0aHJvdyBhbiBlcnJvciBpZiBhbiBgQHVzZWAgc3RhdGVtZW50IGNvbWVzIGFmdGVyIGFub3RoZXIgc3RhdGVtZW50LiBUaGUgc2FmZXN0IHdheVxuICAvLyB0byBlbnN1cmUgdGhhdCB3ZSBjb25mb3JtIHRvIHRoYXQgcmVxdWlyZW1lbnQgaXMgYnkgYWx3YXlzIGluc2VydGluZyBvdXIgaW1wb3J0cyBhdCB0aGUgdG9wXG4gIC8vIG9mIHRoZSBmaWxlLiBEZXRlY3Rpbmcgd2hlcmUgdGhlIHVzZXIncyBjb250ZW50IHN0YXJ0cyBpcyB0cmlja3ksIGJlY2F1c2UgdGhlcmUgYXJlIG1hbnlcbiAgLy8gZGlmZmVyZW50IGtpbmRzIG9mIHN5bnRheCB3ZSdkIGhhdmUgdG8gYWNjb3VudCBmb3IuIE9uZSBhcHByb2FjaCBpcyB0byBmaW5kIHRoZSBmaXJzdCBgQGltcG9ydGBcbiAgLy8gYW5kIGluc2VydCBiZWZvcmUgaXQsIGJ1dCB0aGUgcHJvYmxlbSBpcyB0aGF0IFNhc3MgYWxsb3dzIGBAaW1wb3J0YCB0byBiZSBwbGFjZWQgYW55d2hlcmUuXG4gIGxldCBuZXdJbXBvcnRJbmRleCA9IDA7XG5cbiAgLy8gT25lIHNwZWNpYWwgY2FzZSBpcyBpZiB0aGUgZmlsZSBzdGFydHMgd2l0aCBhIGxpY2Vuc2UgaGVhZGVyIHdoaWNoIHdlIHdhbnQgdG8gcHJlc2VydmUgb24gdG9wLlxuICBpZiAoY29udGVudC50cmltKCkuc3RhcnRzV2l0aChjb21tZW50UGxhY2Vob2xkZXJTdGFydCkpIHtcbiAgICBjb25zdCBjb21tZW50U3RhcnRJbmRleCA9IGNvbnRlbnQuaW5kZXhPZihjb21tZW50UGxhY2Vob2xkZXJTdGFydCk7XG4gICAgbmV3SW1wb3J0SW5kZXggPVxuICAgICAgY29udGVudC5pbmRleE9mKGNvbW1lbnRQbGFjZWhvbGRlckVuZCwgY29tbWVudFN0YXJ0SW5kZXggKyAxKSArIGNvbW1lbnRQbGFjZWhvbGRlckVuZC5sZW5ndGg7XG4gICAgLy8gSWYgdGhlIGxlYWRpbmcgY29tbWVudCBkb2Vzbid0IGVuZCB3aXRoIGEgbmV3bGluZSxcbiAgICAvLyB3ZSBuZWVkIHRvIGluc2VydCB0aGUgaW1wb3J0IGF0IHRoZSBuZXh0IGxpbmUuXG4gICAgaWYgKCFjb21tZW50UGxhY2Vob2xkZXJzW2NvbnRlbnQuc2xpY2UoY29tbWVudFN0YXJ0SW5kZXgsIG5ld0ltcG9ydEluZGV4KV0uZW5kc1dpdGgoJ1xcbicpKSB7XG4gICAgICBuZXdJbXBvcnRJbmRleCA9IE1hdGgubWF4KG5ld0ltcG9ydEluZGV4LCBjb250ZW50LmluZGV4T2YoJ1xcbicsIG5ld0ltcG9ydEluZGV4KSArIDEpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgY29udGVudC5zbGljZSgwLCBuZXdJbXBvcnRJbmRleCkgK1xuICAgIGBAdXNlICcke2ltcG9ydFBhdGh9JyBhcyAke25hbWVzcGFjZX07XFxuYCArXG4gICAgY29udGVudC5zbGljZShuZXdJbXBvcnRJbmRleClcbiAgKTtcbn1cblxuLyoqIEZvcm1hdHMgYSBtaWdyYXRpb24ga2V5IGFzIGEgU2FzcyBtaXhpbiBpbnZvY2F0aW9uLiAqL1xuZnVuY3Rpb24gbWl4aW5LZXlGb3JtYXR0ZXIobmFtZXNwYWNlOiBzdHJpbmcgfCBudWxsLCBuYW1lOiBzdHJpbmcpOiBSZWdFeHAge1xuICAvLyBOb3RlIHRoYXQgYWRkaW5nIGEgYChgIGF0IHRoZSBlbmQgb2YgdGhlIHBhdHRlcm4gd291bGQgYmUgbW9yZSBhY2N1cmF0ZSwgYnV0IG1peGluXG4gIC8vIGludm9jYXRpb25zIGRvbid0IG5lY2Vzc2FyaWx5IGhhdmUgdG8gaW5jbHVkZSB0aGUgcGFyZW50aGVzZXMuIFdlIGNvdWxkIGFkZCBgWyg7XWAsXG4gIC8vIGJ1dCB0aGVuIHdlIHdvbid0IGtub3cgd2hpY2ggY2hhcmFjdGVyIHRvIGluY2x1ZGUgaW4gdGhlIHJlcGxhY2VtZW50IHN0cmluZy5cbiAgcmV0dXJuIG5ldyBSZWdFeHAoYEBpbmNsdWRlICske2VzY2FwZVJlZ0V4cCgobmFtZXNwYWNlID8gbmFtZXNwYWNlICsgJy4nIDogJycpICsgbmFtZSl9YCwgJ2cnKTtcbn1cblxuLyoqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBhIFNhc3MgbWl4aW4gcmVwbGFjZW1lbnQuICovXG5mdW5jdGlvbiBnZXRNaXhpblZhbHVlRm9ybWF0dGVyKG5hbWVzcGFjZTogc3RyaW5nKTogKG5hbWU6IHN0cmluZykgPT4gc3RyaW5nIHtcbiAgLy8gTm90ZSB0aGF0IGFkZGluZyBhIGAoYCBhdCB0aGUgZW5kIG9mIHRoZSBwYXR0ZXJuIHdvdWxkIGJlIG1vcmUgYWNjdXJhdGUsXG4gIC8vIGJ1dCBtaXhpbiBpbnZvY2F0aW9ucyBkb24ndCBuZWNlc3NhcmlseSBoYXZlIHRvIGluY2x1ZGUgdGhlIHBhcmVudGhlc2VzLlxuICByZXR1cm4gbmFtZSA9PiBgQGluY2x1ZGUgJHtuYW1lc3BhY2V9LiR7bmFtZX1gO1xufVxuXG4vKiogRm9ybWF0cyBhIG1pZ3JhdGlvbiBrZXkgYXMgYSBTYXNzIGZ1bmN0aW9uIGludm9jYXRpb24uICovXG5mdW5jdGlvbiBmdW5jdGlvbktleUZvcm1hdHRlcihuYW1lc3BhY2U6IHN0cmluZyB8IG51bGwsIG5hbWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGVzY2FwZVJlZ0V4cChgJHtuYW1lc3BhY2UgPyBuYW1lc3BhY2UgKyAnLicgOiAnJ30ke25hbWV9KGApO1xuICByZXR1cm4gbmV3IFJlZ0V4cChgKD88IVstX2EtekEtWjAtOV0pJHtmdW5jdGlvbk5hbWV9YCwgJ2cnKTtcbn1cblxuLyoqIFJldHVybnMgYSBmdW5jdGlvbiB0aGF0IGNhbiBiZSB1c2VkIHRvIGZvcm1hdCBhIFNhc3MgZnVuY3Rpb24gcmVwbGFjZW1lbnQuICovXG5mdW5jdGlvbiBnZXRGdW5jdGlvblZhbHVlRm9ybWF0dGVyKG5hbWVzcGFjZTogc3RyaW5nKTogKG5hbWU6IHN0cmluZykgPT4gc3RyaW5nIHtcbiAgcmV0dXJuIG5hbWUgPT4gYCR7bmFtZXNwYWNlfS4ke25hbWV9KGA7XG59XG5cbi8qKiBGb3JtYXRzIGEgbWlncmF0aW9uIGtleSBhcyBhIFNhc3MgdmFyaWFibGUuICovXG5mdW5jdGlvbiB2YXJpYWJsZUtleUZvcm1hdHRlcihuYW1lc3BhY2U6IHN0cmluZyB8IG51bGwsIG5hbWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gIGNvbnN0IHZhcmlhYmxlTmFtZSA9IGVzY2FwZVJlZ0V4cChgJHtuYW1lc3BhY2UgPyBuYW1lc3BhY2UgKyAnLicgOiAnJ30kJHtuYW1lfWApO1xuICByZXR1cm4gbmV3IFJlZ0V4cChgJHt2YXJpYWJsZU5hbWV9KD8hWy1fYS16QS1aMC05XSlgLCAnZycpO1xufVxuXG4vKiogUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9ybWF0IGEgU2FzcyB2YXJpYWJsZSByZXBsYWNlbWVudC4gKi9cbmZ1bmN0aW9uIGdldFZhcmlhYmxlVmFsdWVGb3JtYXR0ZXIobmFtZXNwYWNlOiBzdHJpbmcpOiAobmFtZTogc3RyaW5nKSA9PiBzdHJpbmcge1xuICByZXR1cm4gbmFtZSA9PiBgJHtuYW1lc3BhY2V9LiQke25hbWV9YDtcbn1cblxuLyoqIEVzY2FwZXMgc3BlY2lhbCByZWdleCBjaGFyYWN0ZXJzIGluIGEgc3RyaW5nLiAqL1xuZnVuY3Rpb24gZXNjYXBlUmVnRXhwKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oWy4qKz9ePSE6JHt9KCl8W1xcXVxcL1xcXFxdKS9nLCAnXFxcXCQxJyk7XG59XG5cbi8qKiBSZW1vdmVzIGFsbCBzdHJpbmdzIGZyb20gYW5vdGhlciBzdHJpbmcuICovXG5mdW5jdGlvbiByZW1vdmVTdHJpbmdzKGNvbnRlbnQ6IHN0cmluZywgdG9SZW1vdmU6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIHRvUmVtb3ZlXG4gICAgLnJlZHVjZSgoYWNjdW11bGF0b3IsIGN1cnJlbnQpID0+IGFjY3VtdWxhdG9yLnJlcGxhY2UoY3VycmVudCwgJycpLCBjb250ZW50KVxuICAgIC5yZXBsYWNlKC9eXFxzKy8sICcnKTtcbn1cblxuLyoqIFBhcnNlcyBvdXQgdGhlIG5hbWVzcGFjZSBmcm9tIGEgU2FzcyBgQHVzZWAgc3RhdGVtZW50LiAqL1xuZnVuY3Rpb24gZXh0cmFjdE5hbWVzcGFjZUZyb21Vc2VTdGF0ZW1lbnQoZnVsbEltcG9ydDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgY2xvc2VRdW90ZUluZGV4ID0gTWF0aC5tYXgoZnVsbEltcG9ydC5sYXN0SW5kZXhPZihgXCJgKSwgZnVsbEltcG9ydC5sYXN0SW5kZXhPZihgJ2ApKTtcblxuICBpZiAoY2xvc2VRdW90ZUluZGV4ID4gLTEpIHtcbiAgICBjb25zdCBhc0V4cHJlc3Npb24gPSAnYXMgJztcbiAgICBjb25zdCBhc0luZGV4ID0gZnVsbEltcG9ydC5pbmRleE9mKGFzRXhwcmVzc2lvbiwgY2xvc2VRdW90ZUluZGV4KTtcblxuICAgIC8vIElmIHdlIGZvdW5kIGFuIGAgYXMgYCBleHByZXNzaW9uLCB3ZSBjb25zaWRlciB0aGUgcmVzdCBvZiB0aGUgdGV4dCBhcyB0aGUgbmFtZXNwYWNlLlxuICAgIGlmIChhc0luZGV4ID4gLTEpIHtcbiAgICAgIHJldHVybiBmdWxsSW1wb3J0XG4gICAgICAgIC5zbGljZShhc0luZGV4ICsgYXNFeHByZXNzaW9uLmxlbmd0aClcbiAgICAgICAgLnNwbGl0KCc7JylbMF1cbiAgICAgICAgLnRyaW0oKTtcbiAgICB9XG5cbiAgICAvLyBPdGhlcndpc2UgdGhlIG5hbWVzcGFjZSBpcyB0aGUgbmFtZSBvZiB0aGUgZmlsZSB0aGF0IGlzIGJlaW5nIGltcG9ydGVkLlxuICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gZnVsbEltcG9ydC5sYXN0SW5kZXhPZignLycsIGNsb3NlUXVvdGVJbmRleCk7XG5cbiAgICBpZiAobGFzdFNsYXNoSW5kZXggPiAtMSkge1xuICAgICAgY29uc3QgZmlsZU5hbWUgPSBmdWxsSW1wb3J0XG4gICAgICAgIC5zbGljZShsYXN0U2xhc2hJbmRleCArIDEsIGNsb3NlUXVvdGVJbmRleClcbiAgICAgICAgLy8gU2FzcyBhbGxvd3MgZm9yIGxlYWRpbmcgdW5kZXJzY29yZXMgdG8gYmUgb21pdHRlZCBhbmQgaXQgdGVjaG5pY2FsbHkgc3VwcG9ydHMgLnNjc3MuXG4gICAgICAgIC5yZXBsYWNlKC9eX3woXFwuaW1wb3J0KT9cXC5zY3NzJHxcXC5pbXBvcnQkL2csICcnKTtcblxuICAgICAgLy8gU2FzcyBpZ25vcmVzIGAvaW5kZXhgIGFuZCBpbmZlcnMgdGhlIG5hbWVzcGFjZSBhcyB0aGUgbmV4dCBzZWdtZW50IGluIHRoZSBwYXRoLlxuICAgICAgaWYgKGZpbGVOYW1lID09PSAnaW5kZXgnKSB7XG4gICAgICAgIGNvbnN0IG5leHRTbGFzaEluZGV4ID0gZnVsbEltcG9ydC5sYXN0SW5kZXhPZignLycsIGxhc3RTbGFzaEluZGV4IC0gMSk7XG5cbiAgICAgICAgaWYgKG5leHRTbGFzaEluZGV4ID4gLTEpIHtcbiAgICAgICAgICByZXR1cm4gZnVsbEltcG9ydC5zbGljZShuZXh0U2xhc2hJbmRleCArIDEsIGxhc3RTbGFzaEluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZpbGVOYW1lO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRocm93IEVycm9yKGBDb3VsZCBub3QgZXh0cmFjdCBuYW1lc3BhY2UgZnJvbSBpbXBvcnQgXCIke2Z1bGxJbXBvcnR9XCIuYCk7XG59XG5cbi8qKlxuICogUmVwbGFjZXMgdmFyaWFibGVzIHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgd2l0aCB0aGVpciB2YWx1ZXMuXG4gKiBAcGFyYW0gY29udGVudCBDb250ZW50IG9mIHRoZSBmaWxlIHRvIGJlIG1pZ3JhdGVkLlxuICogQHBhcmFtIHZhcmlhYmxlcyBNYXBwaW5nIGJldHdlZW4gdmFyaWFibGUgbmFtZXMgYW5kIHRoZWlyIHZhbHVlcy5cbiAqL1xuZnVuY3Rpb24gcmVwbGFjZVJlbW92ZWRWYXJpYWJsZXMoY29udGVudDogc3RyaW5nLCB2YXJpYWJsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICBPYmplY3Qua2V5cyh2YXJpYWJsZXMpLmZvckVhY2godmFyaWFibGVOYW1lID0+IHtcbiAgICAvLyBOb3RlIHRoYXQgdGhlIHBhdHRlcm4gdXNlcyBhIG5lZ2F0aXZlIGxvb2thaGVhZCB0byBleGNsdWRlXG4gICAgLy8gdmFyaWFibGUgYXNzaWdubWVudHMsIGJlY2F1c2UgdGhleSBjYW4ndCBiZSBtaWdyYXRlZC5cbiAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYFxcXFwkJHtlc2NhcGVSZWdFeHAodmFyaWFibGVOYW1lKX0oPyFcXFxccys6fDopYCwgJ2cnKTtcbiAgICBjb250ZW50ID0gY29udGVudC5yZXBsYWNlKHJlZ2V4LCB2YXJpYWJsZXNbdmFyaWFibGVOYW1lXSk7XG4gIH0pO1xuXG4gIHJldHVybiBjb250ZW50O1xufVxuXG4vKipcbiAqIFJlcGxhY2VzIGFsbCBvZiB0aGUgY29tbWVudHMgaW4gYSBTYXNzIGZpbGUgd2l0aCBwbGFjZWhvbGRlcnMgYW5kXG4gKiByZXR1cm5zIHRoZSBsaXN0IG9mIHBsYWNlaG9sZGVycyBzbyB0aGV5IGNhbiBiZSByZXN0b3JlZCBsYXRlci5cbiAqL1xuZnVuY3Rpb24gZXNjYXBlQ29tbWVudHMoY29udGVudDogc3RyaW5nKToge2NvbnRlbnQ6IHN0cmluZzsgcGxhY2Vob2xkZXJzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+fSB7XG4gIGNvbnN0IHBsYWNlaG9sZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICBsZXQgY29tbWVudENvdW50ZXIgPSAwO1xuICBsZXQgW29wZW5JbmRleCwgY2xvc2VJbmRleF0gPSBmaW5kQ29tbWVudChjb250ZW50KTtcblxuICB3aGlsZSAob3BlbkluZGV4ID4gLTEgJiYgY2xvc2VJbmRleCA+IC0xKSB7XG4gICAgY29uc3QgcGxhY2Vob2xkZXIgPSBjb21tZW50UGxhY2Vob2xkZXJTdGFydCArIGNvbW1lbnRDb3VudGVyKysgKyBjb21tZW50UGxhY2Vob2xkZXJFbmQ7XG4gICAgcGxhY2Vob2xkZXJzW3BsYWNlaG9sZGVyXSA9IGNvbnRlbnQuc2xpY2Uob3BlbkluZGV4LCBjbG9zZUluZGV4KTtcbiAgICBjb250ZW50ID0gY29udGVudC5zbGljZSgwLCBvcGVuSW5kZXgpICsgcGxhY2Vob2xkZXIgKyBjb250ZW50LnNsaWNlKGNsb3NlSW5kZXgpO1xuICAgIFtvcGVuSW5kZXgsIGNsb3NlSW5kZXhdID0gZmluZENvbW1lbnQoY29udGVudCk7XG4gIH1cblxuICByZXR1cm4ge2NvbnRlbnQsIHBsYWNlaG9sZGVyc307XG59XG5cbi8qKiBGaW5kcyB0aGUgc3RhcnQgYW5kIGVuZCBpbmRleCBvZiBhIGNvbW1lbnQgaW4gYSBmaWxlLiAqL1xuZnVuY3Rpb24gZmluZENvbW1lbnQoY29udGVudDogc3RyaW5nKTogW29wZW5JbmRleDogbnVtYmVyLCBjbG9zZUluZGV4OiBudW1iZXJdIHtcbiAgLy8gQWRkIGFuIGV4dHJhIG5ldyBsaW5lIGF0IHRoZSBlbmQgc28gdGhhdCB3ZSBjYW4gY29ycmVjdGx5IGNhcHR1cmUgc2luZ2xlLWxpbmUgY29tbWVudHNcbiAgLy8gYXQgdGhlIGVuZCBvZiB0aGUgZmlsZS4gSXQgZG9lc24ndCByZWFsbHkgbWF0dGVyIHRoYXQgdGhlIGVuZCBpbmRleCB3aWxsIGJlIG91dCBvZiBib3VuZHMsXG4gIC8vIGJlY2F1c2UgYFN0cmluZy5wcm90b3R5cGUuc2xpY2VgIHdpbGwgY2xhbXAgaXQgdG8gdGhlIHN0cmluZyBsZW5ndGguXG4gIGNvbnRlbnQgKz0gJ1xcbic7XG5cbiAgZm9yIChjb25zdCBbb3BlbiwgY2xvc2VdIG9mIGNvbW1lbnRQYWlycy5lbnRyaWVzKCkpIHtcbiAgICBjb25zdCBvcGVuSW5kZXggPSBjb250ZW50LmluZGV4T2Yob3Blbik7XG5cbiAgICBpZiAob3BlbkluZGV4ID4gLTEpIHtcbiAgICAgIGNvbnN0IGNsb3NlSW5kZXggPSBjb250ZW50LmluZGV4T2YoY2xvc2UsIG9wZW5JbmRleCArIDEpO1xuICAgICAgcmV0dXJuIGNsb3NlSW5kZXggPiAtMSA/IFtvcGVuSW5kZXgsIGNsb3NlSW5kZXggKyBjbG9zZS5sZW5ndGhdIDogWy0xLCAtMV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFstMSwgLTFdO1xufVxuXG4vKiogUmVzdG9yZXMgdGhlIGNvbW1lbnRzIHRoYXQgaGF2ZSBiZWVuIGVzY2FwZWQgYnkgYGVzY2FwZUNvbW1lbnRzYC4gKi9cbmZ1bmN0aW9uIHJlc3RvcmVDb21tZW50cyhjb250ZW50OiBzdHJpbmcsIHBsYWNlaG9sZGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPik6IHN0cmluZyB7XG4gIE9iamVjdC5rZXlzKHBsYWNlaG9sZGVycykuZm9yRWFjaChrZXkgPT4gKGNvbnRlbnQgPSBjb250ZW50LnJlcGxhY2Uoa2V5LCBwbGFjZWhvbGRlcnNba2V5XSkpKTtcbiAgcmV0dXJuIGNvbnRlbnQ7XG59XG4iXX0=
|