@ardium-ui/ui 4.1.1 → 4.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -25
- package/esm2022/lib/_internal/boolean-component.mjs +1 -1
- package/esm2022/lib/_internal/clear-button/clear-button.component.mjs +3 -3
- package/esm2022/lib/_internal/clear-button/clear-button.module.mjs +1 -1
- package/esm2022/lib/_internal/disablable-component.mjs +1 -1
- package/esm2022/lib/_internal/focusable-component.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/dropdown-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simple-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/item-storages/simplest-item-storage.mjs +1 -1
- package/esm2022/lib/_internal/models/pagination.model.mjs +1 -1
- package/esm2022/lib/_internal/models/queue.mjs +1 -1
- package/esm2022/lib/_internal/public-api.mjs +1 -1
- package/esm2022/lib/_internal/selectable-list-component.mjs +1 -1
- package/esm2022/lib/badge/badge.defaults.mjs +1 -1
- package/esm2022/lib/badge/badge.directive.mjs +1 -1
- package/esm2022/lib/badge/badge.module.mjs +1 -1
- package/esm2022/lib/badge/badge.types.mjs +1 -1
- package/esm2022/lib/badge/index.mjs +1 -1
- package/esm2022/lib/buttons/_button-base.defaults.mjs +1 -1
- package/esm2022/lib/buttons/button/button.component.mjs +3 -3
- package/esm2022/lib/buttons/button/button.defaults.mjs +1 -1
- package/esm2022/lib/buttons/button/button.module.mjs +1 -1
- package/esm2022/lib/buttons/button/index.mjs +1 -1
- package/esm2022/lib/buttons/fab/fab.component.mjs +3 -3
- package/esm2022/lib/buttons/fab/fab.defaults.mjs +1 -1
- package/esm2022/lib/buttons/fab/fab.module.mjs +1 -1
- package/esm2022/lib/buttons/fab/index.mjs +1 -1
- package/esm2022/lib/buttons/general-button.types.mjs +1 -1
- package/esm2022/lib/buttons/icon-button/icon-button.component.mjs +3 -3
- package/esm2022/lib/buttons/icon-button/icon-button.defaults.mjs +1 -1
- package/esm2022/lib/buttons/icon-button/icon-button.module.mjs +1 -1
- package/esm2022/lib/buttons/icon-button/index.mjs +1 -1
- package/esm2022/lib/calendar/calendar.component.mjs +1 -1
- package/esm2022/lib/calendar/calendar.defaults.mjs +1 -1
- package/esm2022/lib/calendar/calendar.types.mjs +1 -1
- package/esm2022/lib/calendar/views/days-view/days-view.component.mjs +1 -1
- package/esm2022/lib/calendar/views/days-view/days-view.helpers.mjs +1 -1
- package/esm2022/lib/calendar/views/months-view/months-view.component.mjs +1 -1
- package/esm2022/lib/calendar/views/months-view/months-view.helpers.mjs +1 -1
- package/esm2022/lib/calendar/views/years-view/years-view.component.mjs +1 -1
- package/esm2022/lib/calendar/views/years-view/years-view.helpers.mjs +1 -1
- package/esm2022/lib/card/card.children.mjs +3 -3
- package/esm2022/lib/card/card.component.mjs +1 -1
- package/esm2022/lib/card/card.defaults.mjs +1 -1
- package/esm2022/lib/card/card.module.mjs +1 -1
- package/esm2022/lib/card/card.types.mjs +1 -1
- package/esm2022/lib/card/index.mjs +1 -1
- package/esm2022/lib/checkbox/checkbox.defaults.mjs +1 -1
- package/esm2022/lib/checkbox/index.mjs +1 -1
- package/esm2022/lib/checkbox-list/checkbox-list.defaults.mjs +1 -1
- package/esm2022/lib/checkbox-list/checkbox-list.types.mjs +1 -1
- package/esm2022/lib/checkbox-list/index.mjs +1 -1
- package/esm2022/lib/chip/chip.component.mjs +3 -3
- package/esm2022/lib/chip/chip.defaults.mjs +1 -1
- package/esm2022/lib/chip/chip.module.mjs +1 -1
- package/esm2022/lib/chip/deletable-chip/deletable-chip.component.mjs +3 -3
- package/esm2022/lib/chip/deletable-chip/deletable-chip.defaults.mjs +1 -1
- package/esm2022/lib/chip/index.mjs +1 -1
- package/esm2022/lib/chip/selectable-chip/selectable-chip.component.mjs +3 -3
- package/esm2022/lib/chip/selectable-chip/selectable-chip.defaults.mjs +1 -1
- package/esm2022/lib/color/color-display/color-display.component.mjs +3 -3
- package/esm2022/lib/color/color-display/color-display.defaults.mjs +1 -1
- package/esm2022/lib/color/color-display/color-display.module.mjs +1 -1
- package/esm2022/lib/color/color-display/color-display.types.mjs +1 -1
- package/esm2022/lib/color/color-display/index.mjs +1 -1
- package/esm2022/lib/dialog/dialog.component.mjs +3 -3
- package/esm2022/lib/dialog/dialog.defaults.mjs +1 -1
- package/esm2022/lib/dialog/dialog.directives.mjs +1 -1
- package/esm2022/lib/dialog/dialog.module.mjs +1 -1
- package/esm2022/lib/dialog/index.mjs +1 -1
- package/esm2022/lib/divider/divider.component.mjs +1 -1
- package/esm2022/lib/divider/divider.defaults.mjs +1 -1
- package/esm2022/lib/divider/divider.module.mjs +1 -1
- package/esm2022/lib/divider/index.mjs +1 -1
- package/esm2022/lib/dropdown-panel/dropdown-panel.component.mjs +3 -3
- package/esm2022/lib/dropdown-panel/dropdown-panel.defaults.mjs +1 -1
- package/esm2022/lib/dropdown-panel/dropdown-panel.module.mjs +1 -1
- package/esm2022/lib/dropdown-panel/dropdown-panel.types.mjs +1 -1
- package/esm2022/lib/dropdown-panel/index.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.component.mjs +14 -23
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.defaults.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.directives.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/file-drop-area.module.mjs +1 -1
- package/esm2022/lib/file-inputs/file-drop-area/index.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input/file-input.component.mjs +30 -36
- package/esm2022/lib/file-inputs/file-input/file-input.defaults.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input/file-input.directives.mjs +14 -1
- package/esm2022/lib/file-inputs/file-input/file-input.module.mjs +40 -7
- package/esm2022/lib/file-inputs/file-input/index.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input-base.defaults.mjs +1 -1
- package/esm2022/lib/file-inputs/file-input-base.mjs +21 -5
- package/esm2022/lib/file-inputs/file-input-types.mjs +1 -1
- package/esm2022/lib/form-field/error/error.component.mjs +1 -1
- package/esm2022/lib/form-field/error/error.directive.mjs +1 -1
- package/esm2022/lib/form-field/form-field.module.mjs +1 -1
- package/esm2022/lib/form-field/hint/hint.component.mjs +1 -1
- package/esm2022/lib/form-field/hint/hint.directive.mjs +1 -1
- package/esm2022/lib/form-field/horizontal-form-field.component.mjs +1 -1
- package/esm2022/lib/form-field-frame/form-field-frame.component.mjs +3 -3
- package/esm2022/lib/form-field-frame/form-field-frame.defaults.mjs +1 -1
- package/esm2022/lib/form-field-frame/form-field-frame.directives.mjs +1 -1
- package/esm2022/lib/form-field-frame/form-field-frame.module.mjs +1 -1
- package/esm2022/lib/form-field-frame/index.mjs +1 -1
- package/esm2022/lib/icon/icon.component.mjs +3 -3
- package/esm2022/lib/icon/icon.defaults.mjs +1 -1
- package/esm2022/lib/icon/icon.module.mjs +1 -1
- package/esm2022/lib/icon/icon.pipe.mjs +1 -1
- package/esm2022/lib/icon/index.mjs +1 -1
- package/esm2022/lib/inputs/date-input/date-input.defaults.mjs +1 -1
- package/esm2022/lib/inputs/date-input/date-input.serializers.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.defaults.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.model.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.module.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/digit-input.utils.mjs +1 -1
- package/esm2022/lib/inputs/digit-input/index.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.defaults.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.model.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/hex-input.module.mjs +1 -1
- package/esm2022/lib/inputs/hex-input/index.mjs +1 -1
- package/esm2022/lib/inputs/input/index.mjs +1 -1
- package/esm2022/lib/inputs/input/input.component.mjs +3 -3
- package/esm2022/lib/inputs/input/input.defaults.mjs +1 -1
- package/esm2022/lib/inputs/input/input.directives.mjs +1 -1
- package/esm2022/lib/inputs/input-transformers.mjs +1 -1
- package/esm2022/lib/inputs/input-types.mjs +1 -1
- package/esm2022/lib/inputs/input-utils.mjs +1 -1
- package/esm2022/lib/inputs/number-input/index.mjs +1 -1
- package/esm2022/lib/inputs/number-input/number-input.defaults.mjs +1 -1
- package/esm2022/lib/inputs/number-input/number-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/number-input/number-input.module.mjs +1 -1
- package/esm2022/lib/inputs/password-input/index.mjs +1 -1
- package/esm2022/lib/inputs/password-input/password-input.component.mjs +3 -3
- package/esm2022/lib/inputs/password-input/password-input.defaults.mjs +1 -1
- package/esm2022/lib/inputs/password-input/password-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/password-input/password-input.module.mjs +1 -1
- package/esm2022/lib/inputs/password-input/password-input.types.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/index.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/simple-input.component.mjs +3 -3
- package/esm2022/lib/inputs/simple-input/simple-input.defaults.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/simple-input.directives.mjs +1 -1
- package/esm2022/lib/inputs/simple-input/simple-input.module.mjs +1 -1
- package/esm2022/lib/kbd/index.mjs +1 -1
- package/esm2022/lib/kbd/kbd.component.mjs +3 -3
- package/esm2022/lib/kbd/kbd.defaults.mjs +1 -1
- package/esm2022/lib/kbd/kbd.directive.mjs +1 -1
- package/esm2022/lib/kbd/kbd.module.mjs +1 -1
- package/esm2022/lib/kbd/kbd.pipe.mjs +1 -1
- package/esm2022/lib/kbd-shortcut/index.mjs +1 -1
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.component.mjs +3 -3
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.defaults.mjs +1 -1
- package/esm2022/lib/kbd-shortcut/kbd-shortcut.module.mjs +1 -1
- package/esm2022/lib/modal/modal.component.mjs +1 -1
- package/esm2022/lib/modal/modal.directives.mjs +1 -1
- package/esm2022/lib/modal/modal.module.mjs +1 -1
- package/esm2022/lib/option/index.mjs +1 -1
- package/esm2022/lib/option/option.component.mjs +1 -1
- package/esm2022/lib/option/option.module.mjs +1 -1
- package/esm2022/lib/progress-bar/index.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.component.mjs +3 -3
- package/esm2022/lib/progress-bar/progress-bar.defaults.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.directive.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.module.mjs +1 -1
- package/esm2022/lib/progress-bar/progress-bar.types.mjs +1 -1
- package/esm2022/lib/progress-circle/index.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.component.mjs +3 -3
- package/esm2022/lib/progress-circle/progress-circle.defaults.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.directive.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.module.mjs +1 -1
- package/esm2022/lib/progress-circle/progress-circle.types.mjs +1 -1
- package/esm2022/lib/radio/index.mjs +1 -1
- package/esm2022/lib/radio/radio/radio.component.mjs +3 -3
- package/esm2022/lib/radio/radio/radio.defaults.mjs +1 -1
- package/esm2022/lib/radio/radio-group.component.mjs +1 -1
- package/esm2022/lib/radio/radio.module.mjs +1 -1
- package/esm2022/lib/search-functions.mjs +1 -1
- package/esm2022/lib/segment/index.mjs +1 -1
- package/esm2022/lib/segment/segment.component.mjs +3 -3
- package/esm2022/lib/segment/segment.defaults.mjs +1 -1
- package/esm2022/lib/segment/segment.directives.mjs +1 -1
- package/esm2022/lib/segment/segment.module.mjs +1 -1
- package/esm2022/lib/segment/segment.types.mjs +1 -1
- package/esm2022/lib/select/index.mjs +1 -1
- package/esm2022/lib/select/select.defaults.mjs +1 -1
- package/esm2022/lib/select/select.directive.mjs +1 -1
- package/esm2022/lib/select/select.module.mjs +1 -1
- package/esm2022/lib/select/select.types.mjs +1 -1
- package/esm2022/lib/slide-toggle/index.mjs +1 -1
- package/esm2022/lib/slide-toggle/slide-toggle.component.mjs +3 -3
- package/esm2022/lib/slide-toggle/slide-toggle.defaults.mjs +1 -1
- package/esm2022/lib/slide-toggle/slide-toggle.module.mjs +1 -1
- package/esm2022/lib/slide-toggle/slide-toggle.types.mjs +1 -1
- package/esm2022/lib/slider/abstract-slider.mjs +1 -1
- package/esm2022/lib/slider/index.mjs +1 -1
- package/esm2022/lib/slider/range-slider/range-slider.component.mjs +3 -3
- package/esm2022/lib/slider/range-slider/range-slider.module.mjs +1 -1
- package/esm2022/lib/slider/slider.component.mjs +1 -1
- package/esm2022/lib/slider/slider.defaults.mjs +1 -1
- package/esm2022/lib/slider/slider.directive.mjs +1 -1
- package/esm2022/lib/slider/slider.module.mjs +1 -1
- package/esm2022/lib/slider/slider.types.mjs +1 -1
- package/esm2022/lib/snackbar/index.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar-ref.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.component.mjs +3 -3
- package/esm2022/lib/snackbar/snackbar.service.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.token.mjs +1 -1
- package/esm2022/lib/snackbar/snackbar.types.mjs +1 -1
- package/esm2022/lib/spinner/index.mjs +1 -1
- package/esm2022/lib/spinner/spinner.component.mjs +3 -3
- package/esm2022/lib/spinner/spinner.defaults.mjs +1 -1
- package/esm2022/lib/spinner/spinner.module.mjs +1 -1
- package/esm2022/lib/star/rating-display/rating-display.component.mjs +1 -1
- package/esm2022/lib/star/rating-display/rating-display.defaults.mjs +1 -1
- package/esm2022/lib/star/rating-display/rating-display.directives.mjs +1 -1
- package/esm2022/lib/star/rating-display/rating-display.types.mjs +1 -1
- package/esm2022/lib/star/rating-input/rating-input.component.mjs +1 -1
- package/esm2022/lib/star/rating-input/rating-input.defaults.mjs +1 -1
- package/esm2022/lib/star/rating-input/rating-input.module.mjs +1 -1
- package/esm2022/lib/star/star-button/star-button.component.mjs +3 -3
- package/esm2022/lib/star/star-button/star-button.defaults.mjs +1 -1
- package/esm2022/lib/star/star-button/star-button.module.mjs +1 -1
- package/esm2022/lib/star/star.component.mjs +3 -3
- package/esm2022/lib/star/star.defaults.mjs +1 -1
- package/esm2022/lib/star/star.types.mjs +1 -1
- package/esm2022/lib/statebox/index.mjs +1 -1
- package/esm2022/lib/statebox/statebox.component.mjs +3 -3
- package/esm2022/lib/statebox/statebox.defaults.mjs +1 -1
- package/esm2022/lib/statebox/statebox.module.mjs +1 -1
- package/esm2022/lib/statebox/statebox.types.mjs +1 -1
- package/esm2022/lib/tabber/index.mjs +1 -1
- package/esm2022/lib/tabber/tab/tab.component.mjs +3 -3
- package/esm2022/lib/tabber/tab/tab.defaults.mjs +1 -1
- package/esm2022/lib/tabber/tabber.component.mjs +3 -3
- package/esm2022/lib/tabber/tabber.defaults.mjs +1 -1
- package/esm2022/lib/tabber/tabber.module.mjs +1 -1
- package/esm2022/lib/table/index.mjs +1 -1
- package/esm2022/lib/table/table-item-storage.mjs +1 -1
- package/esm2022/lib/table/table.component.mjs +3 -3
- package/esm2022/lib/table/table.defaults.mjs +1 -1
- package/esm2022/lib/table/table.directives.mjs +1 -1
- package/esm2022/lib/table/table.module.mjs +1 -1
- package/esm2022/lib/table/table.types.mjs +1 -1
- package/esm2022/lib/table/utils.mjs +1 -1
- package/esm2022/lib/table-from-csv/index.mjs +1 -1
- package/esm2022/lib/table-from-csv/table-from-csv.component.mjs +3 -3
- package/esm2022/lib/table-from-csv/table-from-csv.defaults.mjs +1 -1
- package/esm2022/lib/table-from-csv/table-from-csv.module.mjs +1 -1
- package/esm2022/lib/table-pagination/index.mjs +1 -1
- package/esm2022/lib/table-pagination/table-pagination.component.mjs +3 -3
- package/esm2022/lib/table-pagination/table-pagination.defaults.mjs +1 -1
- package/esm2022/lib/table-pagination/table-pagination.module.mjs +1 -1
- package/esm2022/lib/table-pagination/table-pagination.types.mjs +1 -1
- package/esm2022/lib/text-list/text-list.module.mjs +1 -1
- package/esm2022/lib/text-list/text-list.pipe.mjs +1 -1
- package/esm2022/lib/types/alignment.types.mjs +1 -1
- package/esm2022/lib/types/button.types.mjs +1 -1
- package/esm2022/lib/types/colors.types.mjs +1 -1
- package/esm2022/lib/types/item-storage.types.mjs +1 -1
- package/esm2022/lib/types/theming.types.mjs +1 -1
- package/esm2022/lib/types/utility.types.mjs +1 -1
- package/fesm2022/ardium-ui-ui.mjs +175 -130
- package/fesm2022/ardium-ui-ui.mjs.map +1 -1
- package/lib/file-inputs/file-drop-area/file-drop-area.component.d.ts +4 -4
- package/lib/file-inputs/file-input/file-input.component.d.ts +9 -8
- package/lib/file-inputs/file-input/file-input.directives.d.ts +6 -0
- package/lib/file-inputs/file-input/file-input.module.d.ts +6 -5
- package/lib/file-inputs/file-input-base.d.ts +2 -2
- package/lib/file-inputs/file-input-types.d.ts +1 -1
- package/package.json +1 -1
- package/themes/_variables.scss +121 -121
- package/themes/default/_clear-button.scss +73 -73
- package/themes/default/_coloring.scss +137 -137
- package/themes/default/_dropdown-arrow.scss +12 -12
- package/themes/default/badge.scss +94 -94
- package/themes/default/buttons/button.scss +79 -79
- package/themes/default/buttons/fab.scss +81 -81
- package/themes/default/buttons/icon-button.scss +62 -62
- package/themes/default/calendar-OLD.scss +183 -183
- package/themes/default/card.scss +135 -135
- package/themes/default/checkbox-list.scss +83 -83
- package/themes/default/checkbox.scss +109 -109
- package/themes/default/chips.scss +200 -200
- package/themes/default/color-display.scss +41 -41
- package/themes/default/color-picker.scss +111 -111
- package/themes/default/core.scss +102 -102
- package/themes/default/dialog.scss +16 -16
- package/themes/default/divider.scss +13 -13
- package/themes/default/dropdown-panel.scss +45 -45
- package/themes/default/file-drop-area.scss +162 -162
- package/themes/default/inputs/_shared.scss +50 -50
- package/themes/default/inputs/color-input.scss +46 -46
- package/themes/default/inputs/file-input.scss +79 -79
- package/themes/default/inputs/hex-input.scss +27 -27
- package/themes/default/inputs/number-input.scss +131 -131
- package/themes/default/inputs/password-input.scss +43 -43
- package/themes/default/inputs/search-bar.scss +19 -19
- package/themes/default/kbd-shortcut.scss +13 -13
- package/themes/default/kbd.scss +21 -21
- package/themes/default/modal.scss +94 -94
- package/themes/default/progress-bar.scss +166 -166
- package/themes/default/progress-circle.scss +56 -56
- package/themes/default/radio.scss +112 -112
- package/themes/default/segment.scss +355 -355
- package/themes/default/select.scss +259 -259
- package/themes/default/slide-toggle.scss +151 -151
- package/themes/default/slider.scss +224 -224
- package/themes/default/snackbar.scss +58 -58
- package/themes/default/spinner.scss +21 -21
- package/themes/default/stars.scss +85 -85
- package/themes/default/statebox.scss +109 -109
- package/themes/default/tabber.scss +89 -89
- package/themes/default/table-pagination.scss +56 -56
- package/themes/default/table.scss +423 -423
|
@@ -52,4 +52,4 @@ export const FabSize = {
|
|
|
52
52
|
Standard: 'standard',
|
|
53
53
|
Small: 'small',
|
|
54
54
|
};
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1idXR0b24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2J1dHRvbnMvZ2VuZXJhbC1idXR0b24udHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzlCOztPQUVHO0lBQ0gsV0FBVyxFQUFFLGFBQWE7SUFDMUI7O09BRUc7SUFDSCxNQUFNLEVBQUUsUUFBUTtJQUNoQjs7T0FFRztJQUNILFlBQVksRUFBRSxlQUFlO0lBQzdCOztPQUVHO0lBQ0gsUUFBUSxFQUFFLFVBQVU7SUFDcEI7Ozs7T0FJRztJQUNILGNBQWMsRUFBRSxpQkFBaUI7SUFDakM7O09BRUc7SUFDSCxJQUFJLEVBQUUsTUFBTTtDQUNKLENBQUM7QUFHWCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDM0I7O09BRUc7SUFDSCxPQUFPLEVBQUUsU0FBUztJQUNsQjs7T0FFRztJQUNILElBQUksRUFBRSxNQUFNO0lBQ1o7O09BRUc7SUFDSCxLQUFLLEVBQUUsT0FBTztDQUNOLENBQUM7QUFHWDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNyQixRQUFRLEVBQUUsVUFBVTtJQUNwQixLQUFLLEVBQUUsT0FBTztDQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogR2VuZXJhbCBidXR0b24gYXBwZWFyYW5jZS4gQ29udHJvbHMgd2hpY2ggcGFydHMgb2YgdGhlIGJ1dHRvbiBjYW4gYmUgY29sb3JlZC5cclxuICpcclxuICogQHNlZSB7QGxpbmsgQnV0dG9uQ29sb3JpbmdNb2RlfVxyXG4gKi9cclxuZXhwb3J0IGNvbnN0IEJ1dHRvbkFwcGVhcmFuY2UgPSB7XHJcbiAgLyoqXHJcbiAgICogTm8gYm9yZGVyIGFuZCBubyBiYWNrZ3JvdW5kLiBUZXh0IGFuZCBpY29uIGFyZSBjb2xvcmVkLlxyXG4gICAqL1xyXG4gIFRyYW5zcGFyZW50OiAndHJhbnNwYXJlbnQnLFxyXG4gIC8qKlxyXG4gICAqIE5vIGJvcmRlciwgYnV0IHdpdGggdGV4dCBzaGFkb3cuIFRleHQsIGljb24sIGFuZCBiYWNrZ3JvdW5kIGFyZSBjb2xvcmVkLlxyXG4gICAqL1xyXG4gIFJhaXNlZDogJ3JhaXNlZCcsXHJcbiAgLyoqXHJcbiAgICogTm8gYm9yZGVyLCBidXQgd2l0aCB0ZXh0IHNoYWRvdy4gV2hpdGUgYmFja2dyb3VuZC4gVGV4dCBhbmQgaWNvbiBhcmUgY29sb3JlZC5cclxuICAgKi9cclxuICBSYWlzZWRTdHJvbmc6ICdyYWlzZWQtc3Ryb25nJyxcclxuICAvKipcclxuICAgKiBXaGl0ZSBiYWNrZ3JvdW5kLiBUZXh0IGFuZCBpY29uIGFyZSBjb2xvcmVkLlxyXG4gICAqL1xyXG4gIE91dGxpbmVkOiAnb3V0bGluZWQnLFxyXG4gIC8qKlxyXG4gICAqIFdoaXRlIGJhY2tncm91bmQuIFRleHQsIGljb24sIGFuZCBib3JkZXIgbWF5IGJlIGNvbG9yZWQuXHJcbiAgICpcclxuICAgKiBCYWNrZ3JvdW5kIGJlY29tZXMgY29sb3JlZCBvbiBob3Zlci9mb2N1cy5cclxuICAgKi9cclxuICBPdXRsaW5lZFN0cm9uZzogJ291dGxpbmVkLXN0cm9uZycsXHJcbiAgLyoqXHJcbiAgICogTm8gYm9yZGVyLiBUZXh0LCBpY29uLCBhbmQgYmFja2dyb3VuZCBhcmUgY29sb3JlZC5cclxuICAgKi9cclxuICBGbGF0OiAnZmxhdCcsXHJcbn0gYXMgY29uc3Q7XHJcbmV4cG9ydCB0eXBlIEJ1dHRvbkFwcGVhcmFuY2UgPSAodHlwZW9mIEJ1dHRvbkFwcGVhcmFuY2UpW2tleW9mIHR5cGVvZiBCdXR0b25BcHBlYXJhbmNlXTtcclxuXHJcbmV4cG9ydCBjb25zdCBCdXR0b25WYXJpYW50ID0ge1xyXG4gIC8qKlxyXG4gICAqIEJhc2ljLCByZWN0YW5ndWxhciBidXR0b24uXHJcbiAgICovXHJcbiAgUm91bmRlZDogJ3JvdW5kZWQnLFxyXG4gIC8qKlxyXG4gICAqIFBpbGwtc2hhcGVkIGJ1dHRvbi5cclxuICAgKi9cclxuICBQaWxsOiAncGlsbCcsXHJcbiAgLyoqXHJcbiAgICogQmFzaWMsIHJlY3Rhbmd1bGFyIGJ1dHRvbiB3aXRoIHNoYXJwIGNvcm5lcnMuXHJcbiAgICovXHJcbiAgU2hhcnA6ICdzaGFycCcsXHJcbn0gYXMgY29uc3Q7XHJcbmV4cG9ydCB0eXBlIEJ1dHRvblZhcmlhbnQgPSAodHlwZW9mIEJ1dHRvblZhcmlhbnQpW2tleW9mIHR5cGVvZiBCdXR0b25WYXJpYW50XTtcclxuXHJcbi8qKlxyXG4gKiAqKkYqKmxvYXRpbmcgKipBKipjdGlvbiAqKkIqKnV0dG9uIHNpemUuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgRmFiU2l6ZSA9IHtcclxuICBTdGFuZGFyZDogJ3N0YW5kYXJkJyxcclxuICBTbWFsbDogJ3NtYWxsJyxcclxufSBhcyBjb25zdDtcclxuZXhwb3J0IHR5cGUgRmFiU2l6ZSA9ICh0eXBlb2YgRmFiU2l6ZSlba2V5b2YgdHlwZW9mIEZhYlNpemVdO1xyXG4iXX0=
|
|
@@ -25,15 +25,15 @@ export class ArdiumIconButtonComponent extends _FocusableComponentBase {
|
|
|
25
25
|
].join(' '));
|
|
26
26
|
}
|
|
27
27
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumIconButtonComponent, deps: [{ token: ARD_ICON_BUTTON_DEFAULTS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ArdiumIconButtonComponent, selector: "ard-icon-button", inputs: { wrapperClasses: { classPropertyName: "wrapperClasses", publicName: "wrapperClasses", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, lightColoring: { classPropertyName: "lightColoring", publicName: "lightColoring", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, pointerEventsWhenDisabled: { classPropertyName: "pointerEventsWhenDisabled", publicName: "pointerEventsWhenDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ard-button-with-pointer-events-when-disabled": "pointerEventsWhenDisabled()" } }, usesInheritance: true, ngImport: i0, template: "<button\n class=\"ard-icon-button\"\n [type]=\"type()\"\n [ngClass]=\"ngClasses()\"\n [tabindex]=\"tabIndex()\"\n (focus)=\"focusEvent.emit($event)\"\n (blur)=\"blurEvent.emit($event)\"\n>\n <div class=\"ard-focus-overlay\"></div>\n <div class=\"ard-button-content\">\n <ng-content></ng-content>\n </div>\n</button>\n", styles: [".ard-icon-button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.ard-icon-button .ard-button-content{max-height:100%;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: ArdiumIconButtonComponent, selector: "ard-icon-button", inputs: { wrapperClasses: { classPropertyName: "wrapperClasses", publicName: "wrapperClasses", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, lightColoring: { classPropertyName: "lightColoring", publicName: "lightColoring", isSignal: true, isRequired: false, transformFunction: null }, compact: { classPropertyName: "compact", publicName: "compact", isSignal: true, isRequired: false, transformFunction: null }, pointerEventsWhenDisabled: { classPropertyName: "pointerEventsWhenDisabled", publicName: "pointerEventsWhenDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.ard-button-with-pointer-events-when-disabled": "pointerEventsWhenDisabled()" } }, usesInheritance: true, ngImport: i0, template: "<button\r\n class=\"ard-icon-button\"\r\n [type]=\"type()\"\r\n [ngClass]=\"ngClasses()\"\r\n [tabindex]=\"tabIndex()\"\r\n (focus)=\"focusEvent.emit($event)\"\r\n (blur)=\"blurEvent.emit($event)\"\r\n>\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</button>\r\n", styles: [".ard-icon-button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.ard-icon-button .ard-button-content{max-height:100%;display:flex;align-items:center;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
29
29
|
}
|
|
30
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ArdiumIconButtonComponent, decorators: [{
|
|
31
31
|
type: Component,
|
|
32
32
|
args: [{ selector: 'ard-icon-button', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
33
33
|
'[class.ard-button-with-pointer-events-when-disabled]': 'pointerEventsWhenDisabled()',
|
|
34
|
-
}, template: "<button\n class=\"ard-icon-button\"\n [type]=\"type()\"\n [ngClass]=\"ngClasses()\"\n [tabindex]=\"tabIndex()\"\n (focus)=\"focusEvent.emit($event)\"\n (blur)=\"blurEvent.emit($event)\"\n>\n <div class=\"ard-focus-overlay\"></div>\n <div class=\"ard-button-content\">\n <ng-content></ng-content>\n </div>\n</button>\n", styles: [".ard-icon-button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.ard-icon-button .ard-button-content{max-height:100%;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
34
|
+
}, template: "<button\r\n class=\"ard-icon-button\"\r\n [type]=\"type()\"\r\n [ngClass]=\"ngClasses()\"\r\n [tabindex]=\"tabIndex()\"\r\n (focus)=\"focusEvent.emit($event)\"\r\n (blur)=\"blurEvent.emit($event)\"\r\n>\r\n <div class=\"ard-focus-overlay\"></div>\r\n <div class=\"ard-button-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n</button>\r\n", styles: [".ard-icon-button{display:flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden;position:relative}.ard-icon-button .ard-button-content{max-height:100%;display:flex;align-items:center;justify-content:center}\n"] }]
|
|
35
35
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
36
36
|
type: Inject,
|
|
37
37
|
args: [ARD_ICON_BUTTON_DEFAULTS]
|
|
38
38
|
}] }] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9idXR0b25zL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvYnV0dG9ucy9pY29uLWJ1dHRvbi9pY29uLWJ1dHRvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsd0JBQXdCLEVBQXlCLE1BQU0sd0JBQXdCLENBQUM7OztBQVl6RixNQUFNLE9BQU8seUJBQTBCLFNBQVEsdUJBQXVCO0lBRXBFLFlBQThDLFFBQStCO1FBQzNFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUdULG1CQUFjLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRW5DLFNBQUksR0FBRyxLQUFLLENBQWEsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV2RCxtQkFBbUI7UUFDVixVQUFLLEdBQUcsS0FBSyxDQUFpQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXBELGtCQUFhLEdBQUcsS0FBSyxDQUFlLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2hILFlBQU8sR0FBRyxLQUFLLENBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFcEcsOEJBQXlCLEdBQUcsS0FBSyxDQUFlLElBQUksQ0FBQyxTQUFTLENBQUMseUJBQXlCLEVBQUU7WUFDakcsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVNLGNBQVMsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQ2pDO1lBQ0UsNEJBQTRCO1lBQzVCLGFBQWEsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkUsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRTtTQUNwQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDWixDQUFDO0lBdkJGLENBQUM7K0dBSlUseUJBQXlCLGtCQUVoQix3QkFBd0I7bUdBRmpDLHlCQUF5QiwyZ0NDakJ0QyxxV0FhQTs7NEZESWEseUJBQXlCO2tCQVZyQyxTQUFTOytCQUNFLGlCQUFpQixpQkFHWixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLHNEQUFzRCxFQUFFLDZCQUE2QjtxQkFDdEY7OzBCQUlZLE1BQU07MkJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBWaWV3RW5jYXBzdWxhdGlvbiwgY29tcHV0ZWQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgX0ZvY3VzYWJsZUNvbXBvbmVudEJhc2UgfSBmcm9tICcuLi8uLi9faW50ZXJuYWwvZm9jdXNhYmxlLWNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi90eXBlcy9idXR0b24udHlwZXMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciB9IGZyb20gJy4uLy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XHJcbmltcG9ydCB7IEFSRF9JQ09OX0JVVFRPTl9ERUZBVUxUUywgQXJkSWNvbkJ1dHRvbkRlZmF1bHRzIH0gZnJvbSAnLi9pY29uLWJ1dHRvbi5kZWZhdWx0cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1pY29uLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pY29uLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaG9zdDoge1xyXG4gICAgJ1tjbGFzcy5hcmQtYnV0dG9uLXdpdGgtcG9pbnRlci1ldmVudHMtd2hlbi1kaXNhYmxlZF0nOiAncG9pbnRlckV2ZW50c1doZW5EaXNhYmxlZCgpJyxcclxuICB9LFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtSWNvbkJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIF9Gb2N1c2FibGVDb21wb25lbnRCYXNlIHtcclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgX0RFRkFVTFRTITogQXJkSWNvbkJ1dHRvbkRlZmF1bHRzO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX0lDT05fQlVUVE9OX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkSWNvbkJ1dHRvbkRlZmF1bHRzKSB7XHJcbiAgICBzdXBlcihkZWZhdWx0cyk7XHJcbiAgfVxyXG5cclxuICByZWFkb25seSB3cmFwcGVyQ2xhc3NlcyA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cclxuICByZWFkb25seSB0eXBlID0gaW5wdXQ8QnV0dG9uVHlwZT4odGhpcy5fREVGQVVMVFMudHlwZSk7XHJcblxyXG4gIC8vISBidXR0b24gc2V0dGluZ3NcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5jb2xvcik7XHJcblxyXG4gIHJlYWRvbmx5IGxpZ2h0Q29sb3JpbmcgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmxpZ2h0Q29sb3JpbmcsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuICByZWFkb25seSBjb21wYWN0ID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5jb21wYWN0LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodikgfSk7XHJcblxyXG4gIHJlYWRvbmx5IHBvaW50ZXJFdmVudHNXaGVuRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBhbnk+KHRoaXMuX0RFRkFVTFRTLnBvaW50ZXJFdmVudHNXaGVuRGlzYWJsZWQsIHtcclxuICAgIHRyYW5zZm9ybTogdiA9PiBjb2VyY2VCb29sZWFuUHJvcGVydHkodiksXHJcbiAgfSk7XHJcblxyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+XHJcbiAgICBbXHJcbiAgICAgICdhcmQtYXBwZWFyYW5jZS10cmFuc3BhcmVudCcsXHJcbiAgICAgIGBhcmQtY29sb3ItJHt0aGlzLmRpc2FibGVkKCkgPyBDb21wb25lbnRDb2xvci5Ob25lIDogdGhpcy5jb2xvcigpfWAsXHJcbiAgICAgIHRoaXMubGlnaHRDb2xvcmluZygpID8gYGFyZC1saWdodC1jb2xvcmluZ2AgOiAnJyxcclxuICAgICAgdGhpcy5jb21wYWN0KCkgPyAnYXJkLWNvbXBhY3QnIDogJycsXHJcbiAgICBdLmpvaW4oJyAnKVxyXG4gICk7XHJcbn1cclxuIiwiPGJ1dHRvblxyXG4gIGNsYXNzPVwiYXJkLWljb24tYnV0dG9uXCJcclxuICBbdHlwZV09XCJ0eXBlKClcIlxyXG4gIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcclxuICBbdGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgKGZvY3VzKT1cImZvY3VzRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuICAoYmx1cik9XCJibHVyRXZlbnQuZW1pdCgkZXZlbnQpXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtZm9jdXMtb3ZlcmxheVwiPjwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtYnV0dG9uLWNvbnRlbnRcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuPC9idXR0b24+XHJcbiJdfQ==
|
|
@@ -6,4 +6,4 @@ export const ARD_ICON_BUTTON_DEFAULTS = new InjectionToken('ard-icon-button-defa
|
|
|
6
6
|
export function provideIconButtonDefaults(config) {
|
|
7
7
|
return { provide: ARD_ICON_BUTTON_DEFAULTS, useValue: { ..._simpleButtonDefaults, ...config } };
|
|
8
8
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24uZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2J1dHRvbnMvaWNvbi1idXR0b24vaWNvbi1idXR0b24uZGVmYXVsdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQXlCLE1BQU0sMEJBQTBCLENBQUM7QUFJeEYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxjQUFjLENBQXdCLDBCQUEwQixFQUFFO0lBQzVHLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxxQkFBcUI7Q0FDckMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE1BQXNDO0lBQzlFLE9BQU8sRUFBRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsUUFBUSxFQUFFLEVBQUUsR0FBRyxxQkFBcUIsRUFBRSxHQUFHLE1BQU0sRUFBRSxFQUFFLENBQUM7QUFDbEcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBfc2ltcGxlQnV0dG9uRGVmYXVsdHMsIF9TaW1wbGVCdXR0b25EZWZhdWx0cyB9IGZyb20gJy4uL19idXR0b24tYmFzZS5kZWZhdWx0cyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFyZEljb25CdXR0b25EZWZhdWx0cyBleHRlbmRzIF9TaW1wbGVCdXR0b25EZWZhdWx0cyB7fVxyXG5cclxuZXhwb3J0IGNvbnN0IEFSRF9JQ09OX0JVVFRPTl9ERUZBVUxUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcmRJY29uQnV0dG9uRGVmYXVsdHM+KCdhcmQtaWNvbi1idXR0b24tZGVmYXVsdHMnLCB7XHJcbiAgZmFjdG9yeTogKCkgPT4gX3NpbXBsZUJ1dHRvbkRlZmF1bHRzLFxyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlSWNvbkJ1dHRvbkRlZmF1bHRzKGNvbmZpZzogUGFydGlhbDxBcmRJY29uQnV0dG9uRGVmYXVsdHM+KTogUHJvdmlkZXIge1xyXG4gIHJldHVybiB7IHByb3ZpZGU6IEFSRF9JQ09OX0JVVFRPTl9ERUZBVUxUUywgdXNlVmFsdWU6IHsgLi4uX3NpbXBsZUJ1dHRvbkRlZmF1bHRzLCAuLi5jb25maWcgfSB9O1xyXG59XHJcbiJdfQ==
|
|
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
15
15
|
exports: [ArdiumIconButtonComponent],
|
|
16
16
|
}]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1idXR0b24ubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9idXR0b25zL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFPcEUsTUFBTSxPQUFPLHNCQUFzQjsrR0FBdEIsc0JBQXNCO2dIQUF0QixzQkFBc0IsaUJBSmxCLHlCQUF5QixhQUM5QixZQUFZLGFBQ1oseUJBQXlCO2dIQUV4QixzQkFBc0IsWUFIdkIsWUFBWTs7NEZBR1gsc0JBQXNCO2tCQUxsQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHlCQUF5QixDQUFDO29CQUN6QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRSxDQUFDLHlCQUF5QixDQUFDO2lCQUNyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFyZGl1bUljb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW0FyZGl1bUljb25CdXR0b25Db21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtBcmRpdW1JY29uQnV0dG9uQ29tcG9uZW50XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFyZGl1bUljb25CdXR0b25Nb2R1bGUge31cclxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export * from './icon-button.component';
|
|
2
2
|
export * from './icon-button.defaults';
|
|
3
3
|
export * from './icon-button.module';
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2J1dHRvbnMvaWNvbi1idXR0b24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsc0JBQXNCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ljb24tYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaWNvbi1idXR0b24uZGVmYXVsdHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ljb24tYnV0dG9uLm1vZHVsZSc7XHJcbiJdfQ==
|
|
@@ -447,4 +447,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
447
447
|
type: HostListener,
|
|
448
448
|
args: ['document:keydown']
|
|
449
449
|
}] } });
|
|
450
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkUsT0FBTyxFQUFFLHFCQUFxQixFQUF1QixNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFFTCxlQUFlLEdBU2hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7QUFFekUsTUFBTSxL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eUNBdWJ6QyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUtsQyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIGNvbnRlbnRDaGlsZCxcbiAgZWZmZWN0LFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgaW5wdXQsXG4gIG1vZGVsLFxuICBvdXRwdXQsXG4gIHNpZ25hbCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBjb2VyY2VEYXRlUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFyZGl1bS11aS9kZXZraXQnO1xuaW1wb3J0IHsgcm91bmRGcm9tWmVybyB9IGZyb20gJ21vcmUtcm91bmRpbmcnO1xuaW1wb3J0IHsgaXNEZWZpbmVkLCBpc051bGwgfSBmcm9tICdzaW1wbGUtYm9vbCc7XG5pbXBvcnQgeyBfTmdNb2RlbENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9faW50ZXJuYWwvbmdtb2RlbC1jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xuaW1wb3J0IHsgQVJEX0NBTEVOREFSX0RFRkFVTFRTLCBBcmRDYWxlbmRhckRlZmF1bHRzIH0gZnJvbSAnLi9jYWxlbmRhci5kZWZhdWx0cyc7XG5pbXBvcnQge1xuICBBcmRDYWxlbmRhckZpbHRlckZuLFxuICBBcmRDYWxlbmRhclZpZXcsXG4gIENhbGVuZGFyRGF5Q29udGV4dCxcbiAgQ2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQsXG4gIENhbGVuZGFyRmxvYXRpbmdNb250aENvbnRleHQsXG4gIENhbGVuZGFyTW9udGhDb250ZXh0LFxuICBDYWxlbmRhck1vbnRoc1ZpZXdIZWFkZXJDb250ZXh0LFxuICBDYWxlbmRhcldlZWtkYXlDb250ZXh0LFxuICBDYWxlbmRhclllYXJDb250ZXh0LFxuICBDYWxlbmRhclllYXJzVmlld0hlYWRlckNvbnRleHQsXG59IGZyb20gJy4vY2FsZW5kYXIudHlwZXMnO1xuaW1wb3J0IHsgaXNEYXlPdXRPZlJhbmdlIH0gZnJvbSAnLi92aWV3cy9kYXlzLXZpZXcvZGF5cy12aWV3LmhlbHBlcnMnO1xuaW1wb3J0IHsgaXNNb250aE91dE9mUmFuZ2UgfSBmcm9tICcuL3ZpZXdzL21vbnRocy12aWV3L21vbnRocy12aWV3LmhlbHBlcnMnO1xuaW1wb3J0IHsgaXNZZWFyT3V0T2ZSYW5nZSB9IGZyb20gJy4vdmlld3MveWVhcnMtdmlldy95ZWFycy12aWV3LmhlbHBlcnMnO1xuXG5jb25zdCBUT0RBWSA9IG5ldyBEYXRlKCk7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEFyZGl1bUNhbGVuZGFyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFyZGl1bUNhbGVuZGFyQ29tcG9uZW50IGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnRCYXNlIHtcbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9ERUZBVUxUUyE6IEFyZENhbGVuZGFyRGVmYXVsdHM7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX0NBTEVOREFSX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkQ2FsZW5kYXJEZWZhdWx0cykge1xuICAgIHN1cGVyKGRlZmF1bHRzKTtcblxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSgpOyAvLyB0cmlnZ2VyIGVmZmVjdFxuICAgICAgdGhpcy5fZW1pdENoYW5nZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8hIGFwcGVhcmFuY2VcbiAgcmVhZG9ubHkgY29sb3IgPSBpbnB1dDxDb21wb25lbnRDb2xvcj4odGhpcy5fREVGQVVMVFMuY29sb3IpO1xuXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpOiBzdHJpbmcgPT4gW2BhcmQtY29sb3ItJHt0aGlzLmNvbG9yKCl9YF0uam9pbignICcpKTtcblxuICAvLyEgYWN0aXZlIHZpZXdcbiAgcmVhZG9ubHkgYWN0aXZlVmlldyA9IG1vZGVsPEFyZENhbGVuZGFyVmlldz4odGhpcy5fREVGQVVMVFMuYWN0aXZlVmlldyk7XG4gIHJlYWRvbmx5IGFjdGl2ZVllYXIgPSBtb2RlbDxudW1iZXI+KHRoaXMuX0RFRkFVTFRTLmFjdGl2ZVllYXIpO1xuICByZWFkb25seSBhY3RpdmVNb250aCA9IG1vZGVsPG51bWJlcj4odGhpcy5fREVGQVVMVFMuYWN0aXZlTW9udGgpO1xuXG4gIHJlYWRvbmx5IGZpcnN0V2Vla2RheSA9IGlucHV0PG51bWJlciwgYW55Pih0aGlzLl9ERUZBVUxUUy5maXJzdFdlZWtkYXksIHtcbiAgICB0cmFuc2Zvcm06IHYgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5maXJzdFdlZWtkYXkpO1xuICAgICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHZhbHVlKSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIG5ldyBFcnJvcihgQVJELU5GMjAwMUE6IFtmaXJzdFdlZWtkYXldIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBnb3QgXCIke3ZhbHVlfVwiLiBVc2luZyBkZWZhdWx0IHZhbHVlIGluc3RlYWQuYClcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX0RFRkFVTFRTLmZpcnN0V2Vla2RheTtcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZSA8IDAgfHwgdmFsdWUgPiA2KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICAgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEFSRC1ORjIwMDFCOiBbZmlyc3RXZWVrZGF5XSBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNiwgZ290IFwiJHt2YWx1ZX1cIi4gVXNpbmcgbW9kdWxvIG9wZXJhdG9yIHRvIGFkanVzdCB0aGUgdmFsdWUuYFxuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB2YWx1ZSAlIDc7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgbXVsdGlwbGVZZWFyUGFnZUNoYW5nZU1vZGlmaWVyID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm11bHRpcGxlWWVhclBhZ2VDaGFuZ2VNb2RpZmllciwge1xuICAgIHRyYW5zZm9ybTogdiA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGNvZXJjZU51bWJlclByb3BlcnR5KHYsIHRoaXMuX0RFRkFVTFRTLm11bHRpcGxlWWVhclBhZ2VDaGFuZ2VNb2RpZmllcik7XG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodmFsdWUpIHx8IHZhbHVlIDwgMSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgIG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBBUkQtTkYyMDAyOiBbbXVsdGlwbGVZZWFyUGFnZUNoYW5nZU1vZGlmaWVyXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgZ290IFwiJHt2YWx1ZX1cIi4gVXNpbmcgZGVmYXVsdCB2YWx1ZSBpbnN0ZWFkLmBcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB0aGlzLl9ERUZBVUxUUy5tdWx0aXBsZVllYXJQYWdlQ2hhbmdlTW9kaWZpZXI7XG4gICAgICB9XG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgYXV0b0ZvY3VzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5hdXRvRm9jdXMsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcblxuICBvblRyaWdnZXJPcGVuRGF5c1ZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVWaWV3LnNldChBcmRDYWxlbmRhclZpZXcuRGF5cyk7XG4gIH1cbiAgb25UcmlnZ2VyT3Blbk1vbnRoc1ZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmVWaWV3LnNldChBcmRDYWxlbmRhclZpZXcuTW9udGhzKTtcbiAgfVxuICBvblRyaWdnZXJPcGVuWWVhcnNWaWV3KCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZlVmlldy5zZXQoQXJkQ2FsZW5kYXJWaWV3LlllYXJzKTtcbiAgfVxuXG4gIC8vISB2YWx1ZVxuICByZWFkb25seSBzZWxlY3RlZERhdGUgPSBtb2RlbDxEYXRlIHwgbnVsbD4obnVsbCwgeyBhbGlhczogJ3NlbGVjdGVkJyB9KTtcblxuICByZWFkb25seSB5ZWFyU2VsZWN0ID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgbW9udGhTZWxlY3QgPSBvdXRwdXQ8bnVtYmVyPigpO1xuXG4gIHJlYWRvbmx5IG1pbiA9IGlucHV0PERhdGUgfCBudWxsLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm1pbiwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlRGF0ZVByb3BlcnR5KHYsIHRoaXMuX0RFRkFVTFRTLm1pbikgfSk7XG4gIHJlYWRvbmx5IG1heCA9IGlucHV0PERhdGUgfCBudWxsLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm1heCwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlRGF0ZVByb3BlcnR5KHYsIHRoaXMuX0RFRkFVTFRTLm1heCkgfSk7XG5cbiAgcmVhZG9ubHkgZmlsdGVyID0gaW5wdXQ8QXJkQ2FsZW5kYXJGaWx0ZXJGbiB8IG51bGw+KHRoaXMuX0RFRkFVTFRTLmZpbHRlcik7XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodiBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnNldCh2KTtcbiAgICB9IGVsc2UgaWYgKCFpc0RlZmluZWQodikpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnNldChudWxsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihuZXcgRXJyb3IoYEFSRC1ORjIwMDM6IDxhcmQtY2FsZW5kYXI+IFt3cml0ZVZhbHVlXSBleHBlY3RlZCBhIERhdGUgb3IgbnVsbCwgZ290IFwiJHt2fVwiLmApKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2VSZWdpc3RlcmVkPy4odGhpcy5zZWxlY3RlZERhdGUoKSk7XG4gIH1cblxuICAvLyEgc2VsZWN0aW5nIGRheXNcbiAgaXNEYXlTZWxlY3RlZChkYXk6IG51bWJlciB8IERhdGUgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGRheSBpbnN0YW5jZW9mIERhdGUpIGRheSA9IGRheS5nZXREYXRlKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlKCkgIT09IG51bGwgJiZcbiAgICAgIHRoaXMuYWN0aXZlWWVhcigpID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRGdWxsWWVhcigpICYmXG4gICAgICB0aGlzLmFjdGl2ZU1vbnRoKCkgPT09IHRoaXMuc2VsZWN0ZWREYXRlKCk/LmdldE1vbnRoKCkgJiZcbiAgICAgIGRheSA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKT8uZ2V0RGF0ZSgpXG4gICAgKTtcbiAgfVxuICBpc0RheU91dE9mUmFuZ2UoZGF5OiBudW1iZXIsIG1vbnRoOiBudW1iZXIgPSB0aGlzLmFjdGl2ZU1vbnRoKCksIHllYXI6IG51bWJlciA9IHRoaXMuYWN0aXZlWWVhcigpKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaXNEYXlPdXRPZlJhbmdlKGRheSwgbW9udGgsIHllYXIsIHRoaXMubWluKCksIHRoaXMubWF4KCkpO1xuICB9XG4gIHJlYWRvbmx5IGlzRGF5RmlsdGVyZWRPdXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIChkYXk6IG51bWJlciwgbW9udGg6IG51bWJlciA9IHRoaXMuYWN0aXZlTW9udGgoKSwgeWVhcjogbnVtYmVyID0gdGhpcy5hY3RpdmVZZWFyKCkpOiBib29sZWFuID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmlsdGVyKCk7XG4gICAgICByZXR1cm4gZmlsdGVyPy4obmV3IERhdGUoeWVhciwgbW9udGgsIGRheSkpID8/IGZhbHNlO1xuICAgIH07XG4gIH0pO1xuICBzZWxlY3REYXkoZGF5OiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzRGF5U2VsZWN0ZWQoZGF5KSkgcmV0dXJuO1xuICAgIGlmIChpc051bGwoZGF5KSkge1xuICAgICAgaWYgKCFpc0RlZmluZWQodGhpcy5zZWxlY3RlZERhdGUoKSkpIHJldHVybjtcblxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUuc2V0KG51bGwpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChkYXkgaW5zdGFuY2VvZiBEYXRlKSBkYXkgPSBkYXkuZ2V0RGF0ZSgpO1xuICAgIGlmICgoZGF5ICYmIHRoaXMuaXNEYXlPdXRPZlJhbmdlKGRheSkpIHx8IHRoaXMuaXNEYXlGaWx0ZXJlZE91dCgpKGRheSkpIHJldHVybjtcblxuICAgIHRoaXMuc2VsZWN0ZWREYXRlLnNldChuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCBkYXksIDAsIDAsIDAsIDApKTtcbiAgfVxuICBzZWxlY3RDdXJyZW50bHlIaWdobGlnaHRlZERheSgpOiB2b2lkIHtcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLmhpZ2hsaWdodGVkRGF5KCkpKSByZXR1cm47XG5cbiAgICB0aGlzLnNlbGVjdERheSh0aGlzLmhpZ2hsaWdodGVkRGF5KCkpO1xuICB9XG5cbiAgLy8hIGhpZ2hsaWdodGluZyBkYXlzXG4gIHByaXZhdGUgcmVhZG9ubHkgX19oaWdobGlnaHRlZERheSA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWREYXkgPSB0aGlzLl9faGlnaGxpZ2h0ZWREYXkuYXNSZWFkb25seSgpO1xuXG4gIHNldEhpZ2hsaWdodGVkRGF5KGRheTogbnVtYmVyIHwgbnVsbCwgbW9udGg6IG51bWJlciA9IHRoaXMuYWN0aXZlTW9udGgoKSwgeWVhcjogbnVtYmVyID0gdGhpcy5hY3RpdmVZZWFyKCkpOiB2b2lkIHtcbiAgICBpZiAoaXNOdWxsKGRheSkpIHtcbiAgICAgIHRoaXMuX19oaWdobGlnaHRlZERheS51cGRhdGUoKCkgPT4gZGF5KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpO1xuICAgIGNvbnN0IG91dE9mUmFuZ2UgPSB0aGlzLmlzRGF5T3V0T2ZSYW5nZShkYXksIG1vbnRoLCB5ZWFyKTtcblxuICAgIGlmIChvdXRPZlJhbmdlID09PSAtMSkge1xuICAgICAgdGhpcy5faGlnaGxpZ2h0TWluRGF5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChvdXRPZlJhbmdlID09PSAxKSB7XG4gICAgICB0aGlzLl9oaWdobGlnaHRNYXhEYXkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9faGlnaGxpZ2h0ZWREYXkudXBkYXRlKCgpID0+IGRhdGUuZ2V0RGF0ZSgpKTtcblxuICAgIGlmIChkYXRlLmdldEZ1bGxZZWFyKCkgIT09IHRoaXMuYWN0aXZlWWVhcigpKSB7XG4gICAgICB0aGlzLmFjdGl2ZVllYXIuc2V0KGRhdGUuZ2V0RnVsbFllYXIoKSk7XG4gICAgfVxuICAgIGlmIChkYXRlLmdldE1vbnRoKCkgIT09IHRoaXMuYWN0aXZlTW9udGgoKSkge1xuICAgICAgdGhpcy5hY3RpdmVNb250aC5zZXQoZGF0ZS5nZXRNb250aCgpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oaWdobGlnaHRNaW5EYXkoKTogdm9pZCB7XG4gICAgY29uc3QgbWluID0gdGhpcy5taW4oKTtcbiAgICBpZiAoIWlzRGVmaW5lZChtaW4pKSByZXR1cm47XG5cbiAgICB0aGlzLmFjdGl2ZVllYXIuc2V0KG1pbi5nZXRGdWxsWWVhcigpKTtcbiAgICB0aGlzLmFjdGl2ZU1vbnRoLnNldChtaW4uZ2V0TW9udGgoKSk7XG4gICAgdGhpcy5fX2hpZ2hsaWdodGVkRGF5LnNldChtaW4uZ2V0RGF0ZSgpKTtcbiAgfVxuICBwcml2YXRlIF9oaWdobGlnaHRNYXhEYXkoKTogdm9pZCB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5tYXgoKTtcbiAgICBpZiAoIWlzRGVmaW5lZChtYXgpKSByZXR1cm47XG5cbiAgICB0aGlzLmFjdGl2ZVllYXIuc2V0KG1heC5nZXRGdWxsWWVhcigpKTtcbiAgICB0aGlzLmFjdGl2ZU1vbnRoLnNldChtYXguZ2V0TW9udGgoKSk7XG4gICAgdGhpcy5fX2hpZ2hsaWdodGVkRGF5LnNldChtYXguZ2V0RGF0ZSgpKTtcbiAgfVxuXG4gIGhpZ2hsaWdodE5leHREYXkob2Zmc2V0ID0gMSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnREYXkgPSB0aGlzLmhpZ2hsaWdodGVkRGF5KCk7XG4gICAgY29uc3QgbmV3RGF5ID0gaXNEZWZpbmVkKGN1cnJlbnREYXkpID8gY3VycmVudERheSArIG9mZnNldCA6IDE7XG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZERheShuZXdEYXkpO1xuICB9XG4gIGhpZ2hsaWdodFByZXZpb3VzRGF5KG9mZnNldCA9IDEpOiB2b2lkIHtcbiAgICB0aGlzLmhpZ2hsaWdodE5leHREYXkob2Zmc2V0ICogLTEpO1xuICB9XG4gIGhpZ2hsaWdodEZpcnN0RGF5KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWREYXkoMSk7XG4gIH1cbiAgaGlnaGxpZ2h0TGFzdERheSgpOiB2b2lkIHtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhcigpLCB0aGlzLmFjdGl2ZU1vbnRoKCkgKyAxLCAwKS5nZXREYXRlKCk7XG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZERheShkYXlzSW5Nb250aCk7XG4gIH1cbiAgaGlnaGxpZ2h0U2FtZURheU5leHRNb250aCgpOiB2b2lkIHtcbiAgICBjb25zdCBtb250aCA9IHRoaXMuYWN0aXZlTW9udGgoKTtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5hY3RpdmVZZWFyKCk7XG4gICAgY29uc3QgbmV3TW9udGggPSBtb250aCArIDE7XG4gICAgY29uc3QgbmV3WWVhciA9IHllYXIgKyBNYXRoLmZsb29yKG5ld01vbnRoIC8gMTIpO1xuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWREYXkodGhpcy5oaWdobGlnaHRlZERheSgpLCBuZXdNb250aCAlIDEyLCBuZXdZZWFyKTtcbiAgfVxuICBoaWdobGlnaHRTYW1lRGF5UHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICBjb25zdCBtb250aCA9IHRoaXMuYWN0aXZlTW9udGgoKTtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5hY3RpdmVZZWFyKCk7XG4gICAgY29uc3QgbmV3TW9udGggPSBtb250aCAtIDE7XG4gICAgY29uc3QgbmV3WWVhciA9IHllYXIgKyBNYXRoLmZsb29yKG5ld01vbnRoIC8gMTIpO1xuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWREYXkodGhpcy5oaWdobGlnaHRlZERheSgpLCBuZXdNb250aCAlIDEyLCBuZXdZZWFyKTtcbiAgfVxuICBoaWdobGlnaHRTYW1lRGF5TmV4dFllYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZERheSh0aGlzLmhpZ2hsaWdodGVkRGF5KCksIHRoaXMuYWN0aXZlTW9udGgoKSwgdGhpcy5hY3RpdmVZZWFyKCkgKyAxKTtcbiAgfVxuICBoaWdobGlnaHRTYW1lRGF5UHJldmlvdXNZZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWREYXkodGhpcy5oaWdobGlnaHRlZERheSgpLCB0aGlzLmFjdGl2ZU1vbnRoKCksIHRoaXMuYWN0aXZlWWVhcigpIC0gMSk7XG4gIH1cblxuICAvLyEgc2VsZWN0aW5nIG1vbnRoc1xuICBpc01vbnRoU2VsZWN0ZWQobW9udGg6IG51bWJlciB8IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAobW9udGggaW5zdGFuY2VvZiBEYXRlKSBtb250aCA9IG1vbnRoLmdldE1vbnRoKCk7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlKCkgIT09IG51bGwgJiZcbiAgICAgIHRoaXMuYWN0aXZlWWVhcigpID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRGdWxsWWVhcigpICYmXG4gICAgICBtb250aCA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKT8uZ2V0TW9udGgoKVxuICAgICk7XG4gIH1cbiAgaXNNb250aE91dE9mUmFuZ2UobW9udGg6IG51bWJlciwgeWVhcjogbnVtYmVyID0gdGhpcy5hY3RpdmVZZWFyKCkpOiBudW1iZXIge1xuICAgIHJldHVybiBpc01vbnRoT3V0T2ZSYW5nZShtb250aCwgeWVhciwgdGhpcy5taW4oKSwgdGhpcy5tYXgoKSk7XG4gIH1cbiAgY2hhbmdlTW9udGgobmV3TW9udGg6IG51bWJlciB8IG51bGwpOiBib29sZWFuIHtcbiAgICBpZiAoaXNOdWxsKG5ld01vbnRoKSkge1xuICAgICAgdGhpcy5hY3RpdmVNb250aC5zZXQoVE9EQVkuZ2V0TW9udGgoKSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc01vbnRoT3V0T2ZSYW5nZShuZXdNb250aCkpIHJldHVybiBmYWxzZTtcblxuICAgIGlmIChuZXdNb250aCA+IDExKSB7XG4gICAgICB0aGlzLmFjdGl2ZU1vbnRoLnNldCgwKTtcbiAgICAgIHRoaXMuYWN0aXZlWWVhci51cGRhdGUodiA9PiB2ICsgMSk7XG4gICAgfSBlbHNlIGlmIChuZXdNb250aCA8IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlTW9udGguc2V0KDExKTtcbiAgICAgIHRoaXMuYWN0aXZlWWVhci51cGRhdGUodiA9PiB2IC0gMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWN0aXZlTW9udGguc2V0KG5ld01vbnRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBzZWxlY3RNb250aChuZXdNb250aDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChpc051bGwobmV3TW9udGgpIHx8IHRoaXMuaXNNb250aE91dE9mUmFuZ2UobmV3TW9udGgpKSByZXR1cm47XG5cbiAgICBjb25zdCB3YXNTdWNjZXNzZnVsID0gdGhpcy5jaGFuZ2VNb250aChuZXdNb250aCk7XG4gICAgaWYgKCF3YXNTdWNjZXNzZnVsKSByZXR1cm47XG5cbiAgICB0aGlzLmFjdGl2ZVZpZXcuc2V0KEFyZENhbGVuZGFyVmlldy5EYXlzKTtcbiAgICB0aGlzLm1vbnRoU2VsZWN0LmVtaXQobmV3TW9udGgpO1xuICB9XG4gIHNlbGVjdEN1cnJlbnRseUhpZ2hsaWdodGVkTW9udGgoKTogdm9pZCB7XG4gICAgaWYgKCFpc0RlZmluZWQodGhpcy5oaWdobGlnaHRlZE1vbnRoKCkpKSByZXR1cm47XG5cbiAgICB0aGlzLnNlbGVjdE1vbnRoKHRoaXMuaGlnaGxpZ2h0ZWRNb250aCgpISk7XG4gIH1cblxuICAvLyEgaGlnaGxpZ2h0aW5nIG1vbnRoc1xuICBwcml2YXRlIHJlYWRvbmx5IF9faGlnaGxpZ2h0ZWRNb250aCA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWRNb250aCA9IHRoaXMuX19oaWdobGlnaHRlZE1vbnRoLmFzUmVhZG9ubHkoKTtcblxuICBzZXRIaWdobGlnaHRlZE1vbnRoKG1vbnRoOiBudW1iZXIgfCBudWxsLCB5ZWFyOiBudW1iZXIgPSB0aGlzLmFjdGl2ZVllYXIoKSk6IHZvaWQge1xuICAgIGlmIChpc051bGwobW9udGgpKSB7XG4gICAgICB0aGlzLl9faGlnaGxpZ2h0ZWRNb250aC51cGRhdGUoKCkgPT4gbW9udGgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDE1KTtcbiAgICBjb25zdCBvdXRPZlJhbmdlID0gdGhpcy5pc01vbnRoT3V0T2ZSYW5nZShtb250aCwgeWVhcik7XG5cbiAgICBpZiAob3V0T2ZSYW5nZSA9PT0gLTEpIHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE1pbk1vbnRoKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChvdXRPZlJhbmdlID09PSAxKSB7XG4gICAgICB0aGlzLl9oaWdobGlnaHRNYXhNb250aCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX19oaWdobGlnaHRlZE1vbnRoLnVwZGF0ZSgoKSA9PiBkYXRlLmdldE1vbnRoKCkpO1xuXG4gICAgaWYgKGRhdGUuZ2V0RnVsbFllYXIoKSAhPT0gdGhpcy5hY3RpdmVZZWFyKCkpIHtcbiAgICAgIHRoaXMuYWN0aXZlWWVhci5zZXQoZGF0ZS5nZXRGdWxsWWVhcigpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oaWdobGlnaHRNaW5Nb250aCgpOiB2b2lkIHtcbiAgICBjb25zdCBtaW4gPSB0aGlzLm1pbigpO1xuICAgIGlmICghaXNEZWZpbmVkKG1pbikpIHJldHVybjtcblxuICAgIHRoaXMuYWN0aXZlWWVhci5zZXQobWluLmdldEZ1bGxZZWFyKCkpO1xuICAgIHRoaXMuX19oaWdobGlnaHRlZE1vbnRoLnNldChtaW4uZ2V0TW9udGgoKSk7XG4gIH1cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0TWF4TW9udGgoKTogdm9pZCB7XG4gICAgY29uc3QgbWF4ID0gdGhpcy5tYXgoKTtcbiAgICBpZiAoIWlzRGVmaW5lZChtYXgpKSByZXR1cm47XG5cbiAgICB0aGlzLmFjdGl2ZVllYXIuc2V0KG1heC5nZXRGdWxsWWVhcigpKTtcbiAgICB0aGlzLl9faGlnaGxpZ2h0ZWRNb250aC5zZXQobWF4LmdldE1vbnRoKCkpO1xuICB9XG5cbiAgaGlnaGxpZ2h0TmV4dE1vbnRoKG9mZnNldCA9IDEpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50TW9udGggPSB0aGlzLmhpZ2hsaWdodGVkTW9udGgoKTtcbiAgICBjb25zdCBuZXdNb250aCA9IGlzRGVmaW5lZChjdXJyZW50TW9udGgpID8gY3VycmVudE1vbnRoICsgb2Zmc2V0IDogMDtcbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkTW9udGgobmV3TW9udGgpO1xuICB9XG4gIGhpZ2hsaWdodFByZXZpb3VzTW9udGgob2Zmc2V0ID0gMSk6IHZvaWQge1xuICAgIHRoaXMuaGlnaGxpZ2h0TmV4dE1vbnRoKG9mZnNldCAqIC0xKTtcbiAgfVxuICBoaWdobGlnaHRGaXJzdE1vbnRoKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRNb250aCgwKTtcbiAgfVxuICBoaWdobGlnaHRMYXN0TW9udGgoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZE1vbnRoKDExKTtcbiAgfVxuICBoaWdobGlnaHRTYW1lTW9udGhOZXh0WWVhcihtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRNb250aCh0aGlzLmhpZ2hsaWdodGVkTW9udGgoKSwgdGhpcy5hY3RpdmVZZWFyKCkgKyAobXVsdGlwbGUgPyAxMCA6IDEpKTtcbiAgfVxuICBoaWdobGlnaHRTYW1lTW9udGhQcmV2aW91c1llYXIobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkTW9udGgodGhpcy5oaWdobGlnaHRlZE1vbnRoKCksIHRoaXMuYWN0aXZlWWVhcigpIC0gKG11bHRpcGxlID8gMTAgOiAxKSk7XG4gIH1cblxuICAvLyEgc2VsZWN0aW5nIHllYXJzXG4gIGlzWWVhclNlbGVjdGVkKHllYXI6IG51bWJlciB8IERhdGUpOiBib29sZWFuIHtcbiAgICBpZiAoeWVhciBpbnN0YW5jZW9mIERhdGUpIHllYXIgPSB5ZWFyLmdldEZ1bGxZZWFyKCk7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWREYXRlKCkgIT09IG51bGwgJiYgeWVhciA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKT8uZ2V0RnVsbFllYXIoKTtcbiAgfVxuICBpc1llYXJPdXRPZlJhbmdlKHllYXI6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGlzWWVhck91dE9mUmFuZ2UoeWVhciwgdGhpcy5taW4oKSwgdGhpcy5tYXgoKSk7XG4gIH1cbiAgY2hhbmdlWWVhcih5ZWFyOiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzTnVsbCh5ZWFyKSkge1xuICAgICAgdGhpcy5hY3RpdmVZZWFyLnNldChUT0RBWS5nZXRGdWxsWWVhcigpKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzWWVhck91dE9mUmFuZ2UoeWVhcikpIHJldHVybiBmYWxzZTtcblxuICAgIHRoaXMuYWN0aXZlWWVhci5zZXQoeWVhcik7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBzZWxlY3RZZWFyKHllYXI6IG51bWJlciB8IERhdGUgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKGlzTnVsbCh5ZWFyKSkgcmV0dXJuO1xuICAgIGlmICh5ZWFyIGluc3RhbmNlb2YgRGF0ZSkgeWVhciA9IHllYXIuZ2V0RnVsbFllYXIoKTtcblxuICAgIGNvbnN0IHdhc1N1Y2Nlc3NmdWwgPSB0aGlzLmNoYW5nZVllYXIoeWVhcik7XG4gICAgaWYgKCF3YXNTdWNjZXNzZnVsKSByZXR1cm47XG5cbiAgICB0aGlzLmFjdGl2ZVZpZXcuc2V0KEFyZENhbGVuZGFyVmlldy5Nb250aHMpO1xuICAgIHRoaXMueWVhclNlbGVjdC5lbWl0KHllYXIpO1xuICB9XG4gIHNlbGVjdEN1cnJlbnRseUhpZ2hsaWdodGVkWWVhcigpOiB2b2lkIHtcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLmhpZ2hsaWdodGVkWWVhcigpKSkgcmV0dXJuO1xuXG4gICAgdGhpcy5zZWxlY3RZZWFyKHRoaXMuaGlnaGxpZ2h0ZWRZZWFyKCkhKTtcbiAgfVxuXG4gIC8vISBoaWdobGlnaHRpbmcgeWVhcnNcbiAgcHJpdmF0ZSByZWFkb25seSBfX2hpZ2hsaWdodGVkWWVhciA9IHNpZ25hbDxudW1iZXIgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWRZZWFyID0gdGhpcy5fX2hpZ2hsaWdodGVkWWVhci5hc1JlYWRvbmx5KCk7XG5cbiAgcmVhZG9ubHkgY3VycmVudFllYXJSYW5nZVN0YXJ0ID0gc2lnbmFsPG51bWJlcj4oVE9EQVkuZ2V0RnVsbFllYXIoKSAtIChUT0RBWS5nZXRGdWxsWWVhcigpICUgNCkgLSA4KTsgLy8gY3VycmVudCB5ZWFyIGFsd2F5cyBpbiAzcmQgcm93XG5cbiAgc2V0SGlnaGxpZ2h0ZWRZZWFyKHllYXI6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoaXNOdWxsKHllYXIpKSB7XG4gICAgICB0aGlzLl9faGlnaGxpZ2h0ZWRZZWFyLnVwZGF0ZSgoKSA9PiB5ZWFyKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIDApO1xuICAgIGNvbnN0IG91dE9mUmFuZ2UgPSB0aGlzLmlzWWVhck91dE9mUmFuZ2UoeWVhcik7XG5cbiAgICBpZiAob3V0T2ZSYW5nZSA9PT0gLTEpIHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE1pblllYXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG91dE9mUmFuZ2UgPT09IDEpIHtcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE1heFllYXIoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xuICAgIHRoaXMuX19oaWdobGlnaHRlZFllYXIudXBkYXRlKCgpID0+IG5ld1llYXIpO1xuXG4gICAgaWYgKG5ld1llYXIgPCB0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydCgpIHx8IG5ld1llYXIgPj0gdGhpcy5jdXJyZW50WWVhclJhbmdlU3RhcnQoKSArIDI0KSB7XG4gICAgICAvLyByb3VuZCB0aGUgb2Zmc2V0IGF3YXkgZnJvbSB6ZXJvOiAwLjEgLT4gMSwgLTAuMSAtPiAtMVxuICAgICAgLy8gdGhpcyBpcyB0byBlbnN1cmUgdGhlIHJhbmdlIHN0YXJ0IGlzIGFsd2F5cyBzaGlmdGVkIGJ5IDI0IHllYXJzXG4gICAgICBjb25zdCBvZmZzZXQgPSByb3VuZEZyb21aZXJvKChuZXdZZWFyIC0gdGhpcy5jdXJyZW50WWVhclJhbmdlU3RhcnQoKSkgLyAyNCk7XG4gICAgICB0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydC51cGRhdGUodiA9PiB2ICsgb2Zmc2V0ICogMjQpO1xuICAgIH1cbiAgfVxuXG4gIGNoYW5nZVllYXJzVmlld1BhZ2Uob2Zmc2V0OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCBuZXdZZWFyUmFuZ2VTdGFydCA9IHRoaXMuY3VycmVudFllYXJSYW5nZVN0YXJ0KCkgKyBvZmZzZXQgKiAyNDtcbiAgICB0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydC5zZXQobmV3WWVhclJhbmdlU3RhcnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0TWluWWVhcigpOiB2b2lkIHtcbiAgICBjb25zdCBtaW4gPSB0aGlzLm1pbigpO1xuICAgIGlmICghaXNEZWZpbmVkKG1pbikpIHJldHVybjtcblxuICAgIHRoaXMuX19oaWdobGlnaHRlZFllYXIuc2V0KG1pbi5nZXRGdWxsWWVhcigpKTtcbiAgfVxuICBwcml2YXRlIF9oaWdobGlnaHRNYXhZZWFyKCk6IHZvaWQge1xuICAgIGNvbnN0IG1heCA9IHRoaXMubWF4KCk7XG4gICAgaWYgKCFpc0RlZmluZWQobWF4KSkgcmV0dXJuO1xuXG4gICAgdGhpcy5fX2hpZ2hsaWdodGVkWWVhci5zZXQobWF4LmdldEZ1bGxZZWFyKCkpO1xuICB9XG5cbiAgaGlnaGxpZ2h0TmV4dFllYXIob2Zmc2V0ID0gMSk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gdGhpcy5oaWdobGlnaHRlZFllYXIoKTtcbiAgICBjb25zdCBuZXdZZWFyID0gaXNEZWZpbmVkKGN1cnJlbnRZZWFyKSA/IGN1cnJlbnRZZWFyICsgb2Zmc2V0IDogbnVsbDtcbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkWWVhcihuZXdZZWFyKTtcbiAgfVxuICBoaWdobGlnaHRQcmV2aW91c1llYXIob2Zmc2V0ID0gMSk6IHZvaWQge1xuICAgIHRoaXMuaGlnaGxpZ2h0TmV4dFllYXIob2Zmc2V0ICogLTEpO1xuICB9XG4gIGhpZ2hsaWdodEZpcnN0WWVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkWWVhcih0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydCgpKTtcbiAgfVxuICBoaWdobGlnaHRMYXN0WWVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkWWVhcih0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydCgpICsgMjMpOyAvLyAyNCB5ZWFycyBwZXIgcGFnZVxuICB9XG4gIGhpZ2hsaWdodFNhbWVZZWFyTmV4dFBhZ2UobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5oaWdobGlnaHRlZFllYXIoKSA/PyB0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydCgpO1xuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRZZWFyKHllYXIgKyAobXVsdGlwbGUgPyA2MCA6IDI0KSk7XG4gIH1cbiAgaGlnaGxpZ2h0U2FtZVllYXJQcmV2aW91c1BhZ2UobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5oaWdobGlnaHRlZFllYXIoKSA/PyB0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydCgpO1xuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRZZWFyKHllYXIgLSAobXVsdGlwbGUgPyA2MCA6IDI0KSk7XG4gIH1cblxuICAvLyEgaW50ZXJuYWxzXG4gIHJlYWRvbmx5IF9pc1VzaW5nS2V5Ym9hcmQgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnKVxuICBvbkRvY3VtZW50TW91c2Vtb3ZlKCk6IHZvaWQge1xuICAgIHRoaXMuX2lzVXNpbmdLZXlib2FyZC5zZXQoZmFsc2UpO1xuICB9XG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nKVxuICBvbkRvY3VtZW50S2V5ZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLl9pc1VzaW5nS2V5Ym9hcmQuc2V0KHRydWUpO1xuICB9XG5cbiAgLy8hIHRlbXBsYXRlc1xuICByZWFkb25seSB5ZWFyc1ZpZXdIZWFkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjxDYWxlbmRhclllYXJzVmlld0hlYWRlckNvbnRleHQ+PihUZW1wbGF0ZVJlZik7XG4gIHJlYWRvbmx5IG1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjxDYWxlbmRhck1vbnRoc1ZpZXdIZWFkZXJDb250ZXh0Pj4oVGVtcGxhdGVSZWYpO1xuICByZWFkb25seSBkYXlzVmlld0hlYWRlclRlbXBsYXRlID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0Pj4oVGVtcGxhdGVSZWYpO1xuICByZWFkb25seSBmbG9hdGluZ01vbnRoVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dD4+KFRlbXBsYXRlUmVmKTtcbiAgcmVhZG9ubHkgeWVhclRlbXBsYXRlID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPENhbGVuZGFyWWVhckNvbnRleHQ+PihUZW1wbGF0ZVJlZik7XG4gIHJlYWRvbmx5IG1vbnRoVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJNb250aENvbnRleHQ+PihUZW1wbGF0ZVJlZik7XG4gIHJlYWRvbmx5IGRheVRlbXBsYXRlID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPENhbGVuZGFyRGF5Q29udGV4dD4+KFRlbXBsYXRlUmVmKTtcbiAgcmVhZG9ubHkgd2Vla2RheVRlbXBsYXRlID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPENhbGVuZGFyV2Vla2RheUNvbnRleHQ+PihUZW1wbGF0ZVJlZik7XG59XG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJhcmQtY2FsZW5kYXJcIlxyXG4gIFtuZ0NsYXNzXT1cIm5nQ2xhc3NlcygpXCJcclxuPlxyXG4gIEBzd2l0Y2ggKGFjdGl2ZVZpZXcoKSkge1xyXG4gICAgQGNhc2UgKCdkYXlzJykge1xyXG4gICAgICA8YXJkLWRheXMtdmlld1xyXG4gICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHkoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgICAgIFthdXRvRm9jdXNdPVwiYXV0b0ZvY3VzKClcIlxyXG4gICAgICAgIFtfaXNVc2luZ0tleWJvYXJkXT1cIl9pc1VzaW5nS2V5Ym9hcmQoKVwiXHJcbiAgICAgICAgW2FjdGl2ZU1vbnRoXT1cImFjdGl2ZU1vbnRoKClcIlxyXG4gICAgICAgIFthY3RpdmVZZWFyXT1cImFjdGl2ZVllYXIoKVwiXHJcbiAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGUoKVwiXHJcbiAgICAgICAgW2ZpcnN0V2Vla2RheV09XCJmaXJzdFdlZWtkYXkoKVwiXHJcbiAgICAgICAgW2hpZ2hsaWdodGVkRGF5XT1cImhpZ2hsaWdodGVkRGF5KClcIlxyXG4gICAgICAgIFttaW5dPVwibWluKClcIlxyXG4gICAgICAgIFttYXhdPVwibWF4KClcIlxyXG4gICAgICAgIFtpc0RheUZpbHRlcmVkT3V0XT1cImlzRGF5RmlsdGVyZWRPdXQoKVwiXHJcbiAgICAgICAgW2RheXNWaWV3SGVhZGVyVGVtcGxhdGVdPVwiZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZSgpXCJcclxuICAgICAgICBbZmxvYXRpbmdNb250aFRlbXBsYXRlXT1cImZsb2F0aW5nTW9udGhUZW1wbGF0ZSgpXCJcclxuICAgICAgICBbd2Vla2RheVRlbXBsYXRlXT1cIndlZWtkYXlUZW1wbGF0ZSgpXCJcclxuICAgICAgICBbZGF5VGVtcGxhdGVdPVwiZGF5VGVtcGxhdGUoKVwiXHJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VyT3Blbk1vbnRoc1ZpZXcpPVwib25UcmlnZ2VyT3Blbk1vbnRoc1ZpZXcoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJPcGVuWWVhcnNWaWV3KT1cIm9uVHJpZ2dlck9wZW5ZZWFyc1ZpZXcoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJDaGFuZ2VNb250aCk9XCJjaGFuZ2VNb250aCgkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckNoYW5nZVllYXIpPVwiY2hhbmdlWWVhcigkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodERheSk9XCJzZXRIaWdobGlnaHRlZERheSgkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodEZpcnN0RGF5KT1cImhpZ2hsaWdodEZpcnN0RGF5KClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0TGFzdERheSk9XCJoaWdobGlnaHRMYXN0RGF5KClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0TmV4dERheSk9XCJoaWdobGlnaHROZXh0RGF5KCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0UHJldmlvdXNEYXkpPVwiaGlnaGxpZ2h0UHJldmlvdXNEYXkoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRTYW1lRGF5TmV4dFBhZ2UpPVwiJGV2ZW50ID8gaGlnaGxpZ2h0U2FtZURheU5leHRZZWFyKCkgOiBoaWdobGlnaHRTYW1lRGF5TmV4dE1vbnRoKClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0U2FtZURheVByZXZpb3VzUGFnZSk9XCIkZXZlbnQgPyBoaWdobGlnaHRTYW1lRGF5UHJldmlvdXNZZWFyKCkgOiBoaWdobGlnaHRTYW1lRGF5UHJldmlvdXNNb250aCgpXCJcclxuICAgICAgICAodHJpZ2dlclNlbGVjdERheSk9XCJzZWxlY3REYXkoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcbiAgICB9XHJcbiAgICBAY2FzZSAoJ21vbnRocycpIHtcclxuICAgICAgPGFyZC1tb250aHMtdmlld1xyXG4gICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHkoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgICAgIFthdXRvRm9jdXNdPVwiYXV0b0ZvY3VzKClcIlxyXG4gICAgICAgIFtfaXNVc2luZ0tleWJvYXJkXT1cIl9pc1VzaW5nS2V5Ym9hcmQoKVwiXHJcbiAgICAgICAgW2NvbG9yXT1cImNvbG9yKClcIlxyXG4gICAgICAgIFthY3RpdmVNb250aF09XCJhY3RpdmVNb250aCgpXCJcclxuICAgICAgICBbYWN0aXZlWWVhcl09XCJhY3RpdmVZZWFyKClcIlxyXG4gICAgICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlKClcIlxyXG4gICAgICAgIFttaW5dPVwibWluKClcIlxyXG4gICAgICAgIFttYXhdPVwibWF4KClcIlxyXG4gICAgICAgIFtoaWdobGlnaHRlZE1vbnRoXT1cImhpZ2hsaWdodGVkTW9udGgoKVwiXHJcbiAgICAgICAgW21vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZV09XCJtb250aHNWaWV3SGVhZGVyVGVtcGxhdGUoKVwiXHJcbiAgICAgICAgW21vbnRoVGVtcGxhdGVdPVwibW9udGhUZW1wbGF0ZSgpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJPcGVuRGF5c1ZpZXcpPVwib25UcmlnZ2VyT3BlbkRheXNWaWV3KClcIlxyXG4gICAgICAgICh0cmlnZ2VyT3BlblllYXJzVmlldyk9XCJvblRyaWdnZXJPcGVuWWVhcnNWaWV3KClcIlxyXG4gICAgICAgICh0cmlnZ2VDaGFuZ2VZZWFyKT1cImNoYW5nZVllYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJTZWxlY3RNb250aCk9XCJzZWxlY3RNb250aCgkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodE1vbnRoKT1cInNldEhpZ2hsaWdodGVkTW9udGgoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRGaXJzdE1vbnRoKT1cImhpZ2hsaWdodEZpcnN0TW9udGgoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRMYXN0TW9udGgpPVwiaGlnaGxpZ2h0TGFzdE1vbnRoKClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0TmV4dE1vbnRoKT1cImhpZ2hsaWdodE5leHRNb250aCgkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodFByZXZpb3VzTW9udGgpPVwiaGlnaGxpZ2h0UHJldmlvdXNNb250aCgkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodFNhbWVNb250aE5leHRQYWdlKT1cImhpZ2hsaWdodFNhbWVNb250aE5leHRZZWFyKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0U2FtZU1vbnRoUHJldmlvdXNQYWdlKT1cImhpZ2hsaWdodFNhbWVNb250aFByZXZpb3VzWWVhcigkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICAgIEBjYXNlICgneWVhcnMnKSB7XHJcbiAgICAgIDxhcmQteWVhcnMtdmlld1xyXG4gICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHkoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgICAgIFthdXRvRm9jdXNdPVwiYXV0b0ZvY3VzKClcIlxyXG4gICAgICAgIFtfaXNVc2luZ0tleWJvYXJkXT1cIl9pc1VzaW5nS2V5Ym9hcmQoKVwiXHJcbiAgICAgICAgW2hpZ2hsaWdodGVkWWVhcl09XCJoaWdobGlnaHRlZFllYXIoKVwiXHJcbiAgICAgICAgW2N1cnJlbnRZZWFyUmFuZ2VTdGFydF09XCJjdXJyZW50WWVhclJhbmdlU3RhcnQoKVwiXHJcbiAgICAgICAgW2FjdGl2ZVllYXJdPVwiYWN0aXZlWWVhcigpXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZSgpXCJcclxuICAgICAgICBbbWluXT1cIm1pbigpXCJcclxuICAgICAgICBbbWF4XT1cIm1heCgpXCJcclxuICAgICAgICBbeWVhcnNWaWV3SGVhZGVyVGVtcGxhdGVdPVwieWVhcnNWaWV3SGVhZGVyVGVtcGxhdGUoKVwiXHJcbiAgICAgICAgW3llYXJUZW1wbGF0ZV09XCJ5ZWFyVGVtcGxhdGUoKVwiXHJcbiAgICAgICAgKGZvY3VzKT1cIm9uRm9jdXMoJGV2ZW50KVwiXHJcbiAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VyT3BlbkRheXNWaWV3KT1cIm9uVHJpZ2dlck9wZW5EYXlzVmlldygpXCJcclxuICAgICAgICAodHJpZ2dlck9wZW5Nb250aHNWaWV3KT1cIm9uVHJpZ2dlck9wZW5Nb250aHNWaWV3KClcIlxyXG4gICAgICAgICh0cmlnZ2VyU2VsZWN0WWVhcik9XCJzZWxlY3RZZWFyKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VyQ2hhbmdlWWVhcnNWaWV3UGFnZSk9XCJjaGFuZ2VZZWFyc1ZpZXdQYWdlKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0WWVhcik9XCJzZXRIaWdobGlnaHRlZFllYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRGaXJzdFllYXIpPVwiaGlnaGxpZ2h0Rmlyc3RZZWFyKClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0TGFzdFllYXIpPVwiaGlnaGxpZ2h0TGFzdFllYXIoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHROZXh0WWVhcik9XCJoaWdobGlnaHROZXh0WWVhcigkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodFByZXZpb3VzWWVhcik9XCJoaWdobGlnaHRQcmV2aW91c1llYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRTYW1lWWVhck5leHRQYWdlKT1cImhpZ2hsaWdodFNhbWVZZWFyTmV4dFBhZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRTYW1lWWVhclByZXZpb3VzUGFnZSk9XCJoaWdobGlnaHRTYW1lWWVhclByZXZpb3VzUGFnZSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixZQUFZLEVBQ1osTUFBTSxFQUNOLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixXQUFXLEVBQ1gsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFdkUsT0FBTyxFQUFFLHFCQUFxQixFQUF1QixNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFFTCxlQUFlLEdBU2hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7QUFFekUsTUFBTSxL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eUNBdWJ6QyxtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsb0JBQW9CO2dCQUtsQyxpQkFBaUI7c0JBRGhCLFlBQVk7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgY29tcHV0ZWQsXHJcbiAgY29udGVudENoaWxkLFxyXG4gIGVmZmVjdCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbmplY3QsXHJcbiAgaW5wdXQsXHJcbiAgbW9kZWwsXHJcbiAgb3V0cHV0LFxyXG4gIHNpZ25hbCxcclxuICBUZW1wbGF0ZVJlZixcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlRGF0ZVByb3BlcnR5LCBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0BhcmRpdW0tdWkvZGV2a2l0JztcclxuaW1wb3J0IHsgcm91bmRGcm9tWmVybyB9IGZyb20gJ21vcmUtcm91bmRpbmcnO1xyXG5pbXBvcnQgeyBpc0RlZmluZWQsIGlzTnVsbCB9IGZyb20gJ3NpbXBsZS1ib29sJztcclxuaW1wb3J0IHsgX05nTW9kZWxDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vX2ludGVybmFsL25nbW9kZWwtY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29tcG9uZW50Q29sb3IgfSBmcm9tICcuLi90eXBlcy9jb2xvcnMudHlwZXMnO1xyXG5pbXBvcnQgeyBBUkRfQ0FMRU5EQVJfREVGQVVMVFMsIEFyZENhbGVuZGFyRGVmYXVsdHMgfSBmcm9tICcuL2NhbGVuZGFyLmRlZmF1bHRzJztcclxuaW1wb3J0IHtcclxuICBBcmRDYWxlbmRhckZpbHRlckZuLFxyXG4gIEFyZENhbGVuZGFyVmlldyxcclxuICBDYWxlbmRhckRheUNvbnRleHQsXHJcbiAgQ2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQsXHJcbiAgQ2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dCxcclxuICBDYWxlbmRhck1vbnRoQ29udGV4dCxcclxuICBDYWxlbmRhck1vbnRoc1ZpZXdIZWFkZXJDb250ZXh0LFxyXG4gIENhbGVuZGFyV2Vla2RheUNvbnRleHQsXHJcbiAgQ2FsZW5kYXJZZWFyQ29udGV4dCxcclxuICBDYWxlbmRhclllYXJzVmlld0hlYWRlckNvbnRleHQsXHJcbn0gZnJvbSAnLi9jYWxlbmRhci50eXBlcyc7XHJcbmltcG9ydCB7IGlzRGF5T3V0T2ZSYW5nZSB9IGZyb20gJy4vdmlld3MvZGF5cy12aWV3L2RheXMtdmlldy5oZWxwZXJzJztcclxuaW1wb3J0IHsgaXNNb250aE91dE9mUmFuZ2UgfSBmcm9tICcuL3ZpZXdzL21vbnRocy12aWV3L21vbnRocy12aWV3LmhlbHBlcnMnO1xyXG5pbXBvcnQgeyBpc1llYXJPdXRPZlJhbmdlIH0gZnJvbSAnLi92aWV3cy95ZWFycy12aWV3L3llYXJzLXZpZXcuaGVscGVycyc7XHJcblxyXG5jb25zdCBUT0RBWSA9IG5ldyBEYXRlKCk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FyZC1jYWxlbmRhcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jYWxlbmRhci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBcmRpdW1DYWxlbmRhckNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXJkaXVtQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBfTmdNb2RlbENvbXBvbmVudEJhc2Uge1xyXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfREVGQVVMVFMhOiBBcmRDYWxlbmRhckRlZmF1bHRzO1xyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoQVJEX0NBTEVOREFSX0RFRkFVTFRTKSBkZWZhdWx0czogQXJkQ2FsZW5kYXJEZWZhdWx0cykge1xyXG4gICAgc3VwZXIoZGVmYXVsdHMpO1xyXG5cclxuICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlKCk7IC8vIHRyaWdnZXIgZWZmZWN0XHJcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2UoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8hIGFwcGVhcmFuY2VcclxuICByZWFkb25seSBjb2xvciA9IGlucHV0PENvbXBvbmVudENvbG9yPih0aGlzLl9ERUZBVUxUUy5jb2xvcik7XHJcblxyXG4gIHJlYWRvbmx5IG5nQ2xhc3NlcyA9IGNvbXB1dGVkKCgpOiBzdHJpbmcgPT4gW2BhcmQtY29sb3ItJHt0aGlzLmNvbG9yKCl9YF0uam9pbignICcpKTtcclxuXHJcbiAgLy8hIGFjdGl2ZSB2aWV3XHJcbiAgcmVhZG9ubHkgYWN0aXZlVmlldyA9IG1vZGVsPEFyZENhbGVuZGFyVmlldz4odGhpcy5fREVGQVVMVFMuYWN0aXZlVmlldyk7XHJcbiAgcmVhZG9ubHkgYWN0aXZlWWVhciA9IG1vZGVsPG51bWJlcj4odGhpcy5fREVGQVVMVFMuYWN0aXZlWWVhcik7XHJcbiAgcmVhZG9ubHkgYWN0aXZlTW9udGggPSBtb2RlbDxudW1iZXI+KHRoaXMuX0RFRkFVTFRTLmFjdGl2ZU1vbnRoKTtcclxuXHJcbiAgcmVhZG9ubHkgZmlyc3RXZWVrZGF5ID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLmZpcnN0V2Vla2RheSwge1xyXG4gICAgdHJhbnNmb3JtOiB2ID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5maXJzdFdlZWtkYXkpO1xyXG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodmFsdWUpKSB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihcclxuICAgICAgICAgIG5ldyBFcnJvcihgQVJELU5GMjAwMUE6IFtmaXJzdFdlZWtkYXldIG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyLCBnb3QgXCIke3ZhbHVlfVwiLiBVc2luZyBkZWZhdWx0IHZhbHVlIGluc3RlYWQuYClcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9ERUZBVUxUUy5maXJzdFdlZWtkYXk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IDYpIHtcclxuICAgICAgICBjb25zb2xlLmVycm9yKFxyXG4gICAgICAgICAgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICBgQVJELU5GMjAwMUI6IFtmaXJzdFdlZWtkYXldIG11c3QgYmUgYmV0d2VlbiAwIGFuZCA2LCBnb3QgXCIke3ZhbHVlfVwiLiBVc2luZyBtb2R1bG8gb3BlcmF0b3IgdG8gYWRqdXN0IHRoZSB2YWx1ZS5gXHJcbiAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdmFsdWUgJSA3O1xyXG4gICAgfSxcclxuICB9KTtcclxuXHJcbiAgcmVhZG9ubHkgbXVsdGlwbGVZZWFyUGFnZUNoYW5nZU1vZGlmaWVyID0gaW5wdXQ8bnVtYmVyLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm11bHRpcGxlWWVhclBhZ2VDaGFuZ2VNb2RpZmllciwge1xyXG4gICAgdHJhbnNmb3JtOiB2ID0+IHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2LCB0aGlzLl9ERUZBVUxUUy5tdWx0aXBsZVllYXJQYWdlQ2hhbmdlTW9kaWZpZXIpO1xyXG4gICAgICBpZiAoIU51bWJlci5pc0ludGVnZXIodmFsdWUpIHx8IHZhbHVlIDwgMSkge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXHJcbiAgICAgICAgICBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgIGBBUkQtTkYyMDAyOiBbbXVsdGlwbGVZZWFyUGFnZUNoYW5nZU1vZGlmaWVyXSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlciwgZ290IFwiJHt2YWx1ZX1cIi4gVXNpbmcgZGVmYXVsdCB2YWx1ZSBpbnN0ZWFkLmBcclxuICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9ERUZBVUxUUy5tdWx0aXBsZVllYXJQYWdlQ2hhbmdlTW9kaWZpZXI7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfSxcclxuICB9KTtcclxuXHJcbiAgcmVhZG9ubHkgYXV0b0ZvY3VzID0gaW5wdXQ8Ym9vbGVhbiwgYW55Pih0aGlzLl9ERUZBVUxUUy5hdXRvRm9jdXMsIHsgdHJhbnNmb3JtOiB2ID0+IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2KSB9KTtcclxuXHJcbiAgb25UcmlnZ2VyT3BlbkRheXNWaWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVWaWV3LnNldChBcmRDYWxlbmRhclZpZXcuRGF5cyk7XHJcbiAgfVxyXG4gIG9uVHJpZ2dlck9wZW5Nb250aHNWaWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVWaWV3LnNldChBcmRDYWxlbmRhclZpZXcuTW9udGhzKTtcclxuICB9XHJcbiAgb25UcmlnZ2VyT3BlblllYXJzVmlldygpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlVmlldy5zZXQoQXJkQ2FsZW5kYXJWaWV3LlllYXJzKTtcclxuICB9XHJcblxyXG4gIC8vISB2YWx1ZVxyXG4gIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZSA9IG1vZGVsPERhdGUgfCBudWxsPihudWxsLCB7IGFsaWFzOiAnc2VsZWN0ZWQnIH0pO1xyXG5cclxuICByZWFkb25seSB5ZWFyU2VsZWN0ID0gb3V0cHV0PG51bWJlcj4oKTtcclxuICByZWFkb25seSBtb250aFNlbGVjdCA9IG91dHB1dDxudW1iZXI+KCk7XHJcblxyXG4gIHJlYWRvbmx5IG1pbiA9IGlucHV0PERhdGUgfCBudWxsLCBhbnk+KHRoaXMuX0RFRkFVTFRTLm1pbiwgeyB0cmFuc2Zvcm06IHYgPT4gY29lcmNlRGF0ZVByb3BlcnR5KHYsIHRoaXMuX0RFRkFVTFRTLm1pbikgfSk7XHJcbiAgcmVhZG9ubHkgbWF4ID0gaW5wdXQ8RGF0ZSB8IG51bGwsIGFueT4odGhpcy5fREVGQVVMVFMubWF4LCB7IHRyYW5zZm9ybTogdiA9PiBjb2VyY2VEYXRlUHJvcGVydHkodiwgdGhpcy5fREVGQVVMVFMubWF4KSB9KTtcclxuXHJcbiAgcmVhZG9ubHkgZmlsdGVyID0gaW5wdXQ8QXJkQ2FsZW5kYXJGaWx0ZXJGbiB8IG51bGw+KHRoaXMuX0RFRkFVTFRTLmZpbHRlcik7XHJcblxyXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodjogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodiBpbnN0YW5jZW9mIERhdGUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZERhdGUuc2V0KHYpO1xyXG4gICAgfSBlbHNlIGlmICghaXNEZWZpbmVkKHYpKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWREYXRlLnNldChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IobmV3IEVycm9yKGBBUkQtTkYyMDAzOiA8YXJkLWNhbGVuZGFyPiBbd3JpdGVWYWx1ZV0gZXhwZWN0ZWQgYSBEYXRlIG9yIG51bGwsIGdvdCBcIiR7dn1cIi5gKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2VtaXRDaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZVJlZ2lzdGVyZWQ/Lih0aGlzLnNlbGVjdGVkRGF0ZSgpKTtcclxuICB9XHJcblxyXG4gIC8vISBzZWxlY3RpbmcgZGF5c1xyXG4gIGlzRGF5U2VsZWN0ZWQoZGF5OiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGRheSBpbnN0YW5jZW9mIERhdGUpIGRheSA9IGRheS5nZXREYXRlKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSgpICE9PSBudWxsICYmXHJcbiAgICAgIHRoaXMuYWN0aXZlWWVhcigpID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRGdWxsWWVhcigpICYmXHJcbiAgICAgIHRoaXMuYWN0aXZlTW9udGgoKSA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKT8uZ2V0TW9udGgoKSAmJlxyXG4gICAgICBkYXkgPT09IHRoaXMuc2VsZWN0ZWREYXRlKCk/LmdldERhdGUoKVxyXG4gICAgKTtcclxuICB9XHJcbiAgaXNEYXlPdXRPZlJhbmdlKGRheTogbnVtYmVyLCBtb250aDogbnVtYmVyID0gdGhpcy5hY3RpdmVNb250aCgpLCB5ZWFyOiBudW1iZXIgPSB0aGlzLmFjdGl2ZVllYXIoKSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gaXNEYXlPdXRPZlJhbmdlKGRheSwgbW9udGgsIHllYXIsIHRoaXMubWluKCksIHRoaXMubWF4KCkpO1xyXG4gIH1cclxuICByZWFkb25seSBpc0RheUZpbHRlcmVkT3V0ID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIChkYXk6IG51bWJlciwgbW9udGg6IG51bWJlciA9IHRoaXMuYWN0aXZlTW9udGgoKSwgeWVhcjogbnVtYmVyID0gdGhpcy5hY3RpdmVZZWFyKCkpOiBib29sZWFuID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXIoKTtcclxuICAgICAgcmV0dXJuIGZpbHRlcj8uKG5ldyBEYXRlKHllYXIsIG1vbnRoLCBkYXkpKSA/PyBmYWxzZTtcclxuICAgIH07XHJcbiAgfSk7XHJcbiAgc2VsZWN0RGF5KGRheTogbnVtYmVyIHwgRGF0ZSB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmlzRGF5U2VsZWN0ZWQoZGF5KSkgcmV0dXJuO1xyXG4gICAgaWYgKGlzTnVsbChkYXkpKSB7XHJcbiAgICAgIGlmICghaXNEZWZpbmVkKHRoaXMuc2VsZWN0ZWREYXRlKCkpKSByZXR1cm47XHJcblxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZS5zZXQobnVsbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZGF5IGluc3RhbmNlb2YgRGF0ZSkgZGF5ID0gZGF5LmdldERhdGUoKTtcclxuICAgIGlmICgoZGF5ICYmIHRoaXMuaXNEYXlPdXRPZlJhbmdlKGRheSkpIHx8IHRoaXMuaXNEYXlGaWx0ZXJlZE91dCgpKGRheSkpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZS5zZXQobmV3IERhdGUodGhpcy5hY3RpdmVZZWFyKCksIHRoaXMuYWN0aXZlTW9udGgoKSwgZGF5LCAwLCAwLCAwLCAwKSk7XHJcbiAgfVxyXG4gIHNlbGVjdEN1cnJlbnRseUhpZ2hsaWdodGVkRGF5KCk6IHZvaWQge1xyXG4gICAgaWYgKCFpc0RlZmluZWQodGhpcy5oaWdobGlnaHRlZERheSgpKSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0RGF5KHRoaXMuaGlnaGxpZ2h0ZWREYXkoKSk7XHJcbiAgfVxyXG5cclxuICAvLyEgaGlnaGxpZ2h0aW5nIGRheXNcclxuICBwcml2YXRlIHJlYWRvbmx5IF9faGlnaGxpZ2h0ZWREYXkgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWREYXkgPSB0aGlzLl9faGlnaGxpZ2h0ZWREYXkuYXNSZWFkb25seSgpO1xyXG5cclxuICBzZXRIaWdobGlnaHRlZERheShkYXk6IG51bWJlciB8IG51bGwsIG1vbnRoOiBudW1iZXIgPSB0aGlzLmFjdGl2ZU1vbnRoKCksIHllYXI6IG51bWJlciA9IHRoaXMuYWN0aXZlWWVhcigpKTogdm9pZCB7XHJcbiAgICBpZiAoaXNOdWxsKGRheSkpIHtcclxuICAgICAgdGhpcy5fX2hpZ2hsaWdodGVkRGF5LnVwZGF0ZSgoKSA9PiBkYXkpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIGRheSk7XHJcbiAgICBjb25zdCBvdXRPZlJhbmdlID0gdGhpcy5pc0RheU91dE9mUmFuZ2UoZGF5LCBtb250aCwgeWVhcik7XHJcblxyXG4gICAgaWYgKG91dE9mUmFuZ2UgPT09IC0xKSB7XHJcbiAgICAgIHRoaXMuX2hpZ2hsaWdodE1pbkRheSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAob3V0T2ZSYW5nZSA9PT0gMSkge1xyXG4gICAgICB0aGlzLl9oaWdobGlnaHRNYXhEYXkoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX19oaWdobGlnaHRlZERheS51cGRhdGUoKCkgPT4gZGF0ZS5nZXREYXRlKCkpO1xyXG5cclxuICAgIGlmIChkYXRlLmdldEZ1bGxZZWFyKCkgIT09IHRoaXMuYWN0aXZlWWVhcigpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlWWVhci5zZXQoZGF0ZS5nZXRGdWxsWWVhcigpKTtcclxuICAgIH1cclxuICAgIGlmIChkYXRlLmdldE1vbnRoKCkgIT09IHRoaXMuYWN0aXZlTW9udGgoKSkge1xyXG4gICAgICB0aGlzLmFjdGl2ZU1vbnRoLnNldChkYXRlLmdldE1vbnRoKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGlnaGxpZ2h0TWluRGF5KCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWluID0gdGhpcy5taW4oKTtcclxuICAgIGlmICghaXNEZWZpbmVkKG1pbikpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmFjdGl2ZVllYXIuc2V0KG1pbi5nZXRGdWxsWWVhcigpKTtcclxuICAgIHRoaXMuYWN0aXZlTW9udGguc2V0KG1pbi5nZXRNb250aCgpKTtcclxuICAgIHRoaXMuX19oaWdobGlnaHRlZERheS5zZXQobWluLmdldERhdGUoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodE1heERheSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IG1heCA9IHRoaXMubWF4KCk7XHJcbiAgICBpZiAoIWlzRGVmaW5lZChtYXgpKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5hY3RpdmVZZWFyLnNldChtYXguZ2V0RnVsbFllYXIoKSk7XHJcbiAgICB0aGlzLmFjdGl2ZU1vbnRoLnNldChtYXguZ2V0TW9udGgoKSk7XHJcbiAgICB0aGlzLl9faGlnaGxpZ2h0ZWREYXkuc2V0KG1heC5nZXREYXRlKCkpO1xyXG4gIH1cclxuXHJcbiAgaGlnaGxpZ2h0TmV4dERheShvZmZzZXQgPSAxKTogdm9pZCB7XHJcbiAgICBjb25zdCBjdXJyZW50RGF5ID0gdGhpcy5oaWdobGlnaHRlZERheSgpO1xyXG4gICAgY29uc3QgbmV3RGF5ID0gaXNEZWZpbmVkKGN1cnJlbnREYXkpID8gY3VycmVudERheSArIG9mZnNldCA6IDE7XHJcbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkRGF5KG5ld0RheSk7XHJcbiAgfVxyXG4gIGhpZ2hsaWdodFByZXZpb3VzRGF5KG9mZnNldCA9IDEpOiB2b2lkIHtcclxuICAgIHRoaXMuaGlnaGxpZ2h0TmV4dERheShvZmZzZXQgKiAtMSk7XHJcbiAgfVxyXG4gIGhpZ2hsaWdodEZpcnN0RGF5KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZERheSgxKTtcclxuICB9XHJcbiAgaGlnaGxpZ2h0TGFzdERheSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRheXNJbk1vbnRoID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyKCksIHRoaXMuYWN0aXZlTW9udGgoKSArIDEsIDApLmdldERhdGUoKTtcclxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWREYXkoZGF5c0luTW9udGgpO1xyXG4gIH1cclxuICBoaWdobGlnaHRTYW1lRGF5TmV4dE1vbnRoKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbW9udGggPSB0aGlzLmFjdGl2ZU1vbnRoKCk7XHJcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5hY3RpdmVZZWFyKCk7XHJcbiAgICBjb25zdCBuZXdNb250aCA9IG1vbnRoICsgMTtcclxuICAgIGNvbnN0IG5ld1llYXIgPSB5ZWFyICsgTWF0aC5mbG9vcihuZXdNb250aCAvIDEyKTtcclxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWREYXkodGhpcy5oaWdobGlnaHRlZERheSgpLCBuZXdNb250aCAlIDEyLCBuZXdZZWFyKTtcclxuICB9XHJcbiAgaGlnaGxpZ2h0U2FtZURheVByZXZpb3VzTW9udGgoKTogdm9pZCB7XHJcbiAgICBjb25zdCBtb250aCA9IHRoaXMuYWN0aXZlTW9udGgoKTtcclxuICAgIGNvbnN0IHllYXIgPSB0aGlzLmFjdGl2ZVllYXIoKTtcclxuICAgIGNvbnN0IG5ld01vbnRoID0gbW9udGggLSAxO1xyXG4gICAgY29uc3QgbmV3WWVhciA9IHllYXIgKyBNYXRoLmZsb29yKG5ld01vbnRoIC8gMTIpO1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZERheSh0aGlzLmhpZ2hsaWdodGVkRGF5KCksIG5ld01vbnRoICUgMTIsIG5ld1llYXIpO1xyXG4gIH1cclxuICBoaWdobGlnaHRTYW1lRGF5TmV4dFllYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkRGF5KHRoaXMuaGlnaGxpZ2h0ZWREYXkoKSwgdGhpcy5hY3RpdmVNb250aCgpLCB0aGlzLmFjdGl2ZVllYXIoKSArIDEpO1xyXG4gIH1cclxuICBoaWdobGlnaHRTYW1lRGF5UHJldmlvdXNZZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZERheSh0aGlzLmhpZ2hsaWdodGVkRGF5KCksIHRoaXMuYWN0aXZlTW9udGgoKSwgdGhpcy5hY3RpdmVZZWFyKCkgLSAxKTtcclxuICB9XHJcblxyXG4gIC8vISBzZWxlY3RpbmcgbW9udGhzXHJcbiAgaXNNb250aFNlbGVjdGVkKG1vbnRoOiBudW1iZXIgfCBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAobW9udGggaW5zdGFuY2VvZiBEYXRlKSBtb250aCA9IG1vbnRoLmdldE1vbnRoKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSgpICE9PSBudWxsICYmXHJcbiAgICAgIHRoaXMuYWN0aXZlWWVhcigpID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRGdWxsWWVhcigpICYmXHJcbiAgICAgIG1vbnRoID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRNb250aCgpXHJcbiAgICApO1xyXG4gIH1cclxuICBpc01vbnRoT3V0T2ZSYW5nZShtb250aDogbnVtYmVyLCB5ZWFyOiBudW1iZXIgPSB0aGlzLmFjdGl2ZVllYXIoKSk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gaXNNb250aE91dE9mUmFuZ2UobW9udGgsIHllYXIsIHRoaXMubWluKCksIHRoaXMubWF4KCkpO1xyXG4gIH1cclxuICBjaGFuZ2VNb250aChuZXdNb250aDogbnVtYmVyIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGlzTnVsbChuZXdNb250aCkpIHtcclxuICAgICAgdGhpcy5hY3RpdmVNb250aC5zZXQoVE9EQVkuZ2V0TW9udGgoKSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzTW9udGhPdXRPZlJhbmdlKG5ld01vbnRoKSkgcmV0dXJuIGZhbHNlO1xyXG5cclxuICAgIGlmIChuZXdNb250aCA+IDExKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlTW9udGguc2V0KDApO1xyXG4gICAgICB0aGlzLmFjdGl2ZVllYXIudXBkYXRlKHYgPT4gdiArIDEpO1xyXG4gICAgfSBlbHNlIGlmIChuZXdNb250aCA8IDApIHtcclxuICAgICAgdGhpcy5hY3RpdmVNb250aC5zZXQoMTEpO1xyXG4gICAgICB0aGlzLmFjdGl2ZVllYXIudXBkYXRlKHYgPT4gdiAtIDEpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5hY3RpdmVNb250aC5zZXQobmV3TW9udGgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBzZWxlY3RNb250aChuZXdNb250aDogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKGlzTnVsbChuZXdNb250aCkgfHwgdGhpcy5pc01vbnRoT3V0T2ZSYW5nZShuZXdNb250aCkpIHJldHVybjtcclxuXHJcbiAgICBjb25zdCB3YXNTdWNjZXNzZnVsID0gdGhpcy5jaGFuZ2VNb250aChuZXdNb250aCk7XHJcbiAgICBpZiAoIXdhc1N1Y2Nlc3NmdWwpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmFjdGl2ZVZpZXcuc2V0KEFyZENhbGVuZGFyVmlldy5EYXlzKTtcclxuICAgIHRoaXMubW9udGhTZWxlY3QuZW1pdChuZXdNb250aCk7XHJcbiAgfVxyXG4gIHNlbGVjdEN1cnJlbnRseUhpZ2hsaWdodGVkTW9udGgoKTogdm9pZCB7XHJcbiAgICBpZiAoIWlzRGVmaW5lZCh0aGlzLmhpZ2hsaWdodGVkTW9udGgoKSkpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnNlbGVjdE1vbnRoKHRoaXMuaGlnaGxpZ2h0ZWRNb250aCgpISk7XHJcbiAgfVxyXG5cclxuICAvLyEgaGlnaGxpZ2h0aW5nIG1vbnRoc1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX19oaWdobGlnaHRlZE1vbnRoID0gc2lnbmFsPG51bWJlciB8IG51bGw+KG51bGwpO1xyXG4gIHJlYWRvbmx5IGhpZ2hsaWdodGVkTW9udGggPSB0aGlzLl9faGlnaGxpZ2h0ZWRNb250aC5hc1JlYWRvbmx5KCk7XHJcblxyXG4gIHNldEhpZ2hsaWdodGVkTW9udGgobW9udGg6IG51bWJlciB8IG51bGwsIHllYXI6IG51bWJlciA9IHRoaXMuYWN0aXZlWWVhcigpKTogdm9pZCB7XHJcbiAgICBpZiAoaXNOdWxsKG1vbnRoKSkge1xyXG4gICAgICB0aGlzLl9faGlnaGxpZ2h0ZWRNb250aC51cGRhdGUoKCkgPT4gbW9udGgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDE1KTtcclxuICAgIGNvbnN0IG91dE9mUmFuZ2UgPSB0aGlzLmlzTW9udGhPdXRPZlJhbmdlKG1vbnRoLCB5ZWFyKTtcclxuXHJcbiAgICBpZiAob3V0T2ZSYW5nZSA9PT0gLTEpIHtcclxuICAgICAgdGhpcy5faGlnaGxpZ2h0TWluTW9udGgoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKG91dE9mUmFuZ2UgPT09IDEpIHtcclxuICAgICAgdGhpcy5faGlnaGxpZ2h0TWF4TW9udGgoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuX19oaWdobGlnaHRlZE1vbnRoLnVwZGF0ZSgoKSA9PiBkYXRlLmdldE1vbnRoKCkpO1xyXG5cclxuICAgIGlmIChkYXRlLmdldEZ1bGxZZWFyKCkgIT09IHRoaXMuYWN0aXZlWWVhcigpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlWWVhci5zZXQoZGF0ZS5nZXRGdWxsWWVhcigpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodE1pbk1vbnRoKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWluID0gdGhpcy5taW4oKTtcclxuICAgIGlmICghaXNEZWZpbmVkKG1pbikpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmFjdGl2ZVllYXIuc2V0KG1pbi5nZXRGdWxsWWVhcigpKTtcclxuICAgIHRoaXMuX19oaWdobGlnaHRlZE1vbnRoLnNldChtaW4uZ2V0TW9udGgoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodE1heE1vbnRoKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWF4ID0gdGhpcy5tYXgoKTtcclxuICAgIGlmICghaXNEZWZpbmVkKG1heCkpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmFjdGl2ZVllYXIuc2V0KG1heC5nZXRGdWxsWWVhcigpKTtcclxuICAgIHRoaXMuX19oaWdobGlnaHRlZE1vbnRoLnNldChtYXguZ2V0TW9udGgoKSk7XHJcbiAgfVxyXG5cclxuICBoaWdobGlnaHROZXh0TW9udGgob2Zmc2V0ID0gMSk6IHZvaWQge1xyXG4gICAgY29uc3QgY3VycmVudE1vbnRoID0gdGhpcy5oaWdobGlnaHRlZE1vbnRoKCk7XHJcbiAgICBjb25zdCBuZXdNb250aCA9IGlzRGVmaW5lZChjdXJyZW50TW9udGgpID8gY3VycmVudE1vbnRoICsgb2Zmc2V0IDogMDtcclxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRNb250aChuZXdNb250aCk7XHJcbiAgfVxyXG4gIGhpZ2hsaWdodFByZXZpb3VzTW9udGgob2Zmc2V0ID0gMSk6IHZvaWQge1xyXG4gICAgdGhpcy5oaWdobGlnaHROZXh0TW9udGgob2Zmc2V0ICogLTEpO1xyXG4gIH1cclxuICBoaWdobGlnaHRGaXJzdE1vbnRoKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZE1vbnRoKDApO1xyXG4gIH1cclxuICBoaWdobGlnaHRMYXN0TW9udGgoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldEhpZ2hsaWdodGVkTW9udGgoMTEpO1xyXG4gIH1cclxuICBoaWdobGlnaHRTYW1lTW9udGhOZXh0WWVhcihtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZE1vbnRoKHRoaXMuaGlnaGxpZ2h0ZWRNb250aCgpLCB0aGlzLmFjdGl2ZVllYXIoKSArIChtdWx0aXBsZSA/IDEwIDogMSkpO1xyXG4gIH1cclxuICBoaWdobGlnaHRTYW1lTW9udGhQcmV2aW91c1llYXIobXVsdGlwbGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRNb250aCh0aGlzLmhpZ2hsaWdodGVkTW9udGgoKSwgdGhpcy5hY3RpdmVZZWFyKCkgLSAobXVsdGlwbGUgPyAxMCA6IDEpKTtcclxuICB9XHJcblxyXG4gIC8vISBzZWxlY3RpbmcgeWVhcnNcclxuICBpc1llYXJTZWxlY3RlZCh5ZWFyOiBudW1iZXIgfCBEYXRlKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoeWVhciBpbnN0YW5jZW9mIERhdGUpIHllYXIgPSB5ZWFyLmdldEZ1bGxZZWFyKCk7XHJcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZERhdGUoKSAhPT0gbnVsbCAmJiB5ZWFyID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRGdWxsWWVhcigpO1xyXG4gIH1cclxuICBpc1llYXJPdXRPZlJhbmdlKHllYXI6IG51bWJlcik6IG51bWJlciB7XHJcbiAgICByZXR1cm4gaXNZZWFyT3V0T2ZSYW5nZSh5ZWFyLCB0aGlzLm1pbigpLCB0aGlzLm1heCgpKTtcclxuICB9XHJcbiAgY2hhbmdlWWVhcih5ZWFyOiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoaXNOdWxsKHllYXIpKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlWWVhci5zZXQoVE9EQVkuZ2V0RnVsbFllYXIoKSk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzWWVhck91dE9mUmFuZ2UoeWVhcikpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICB0aGlzLmFjdGl2ZVllYXIuc2V0KHllYXIpO1xyXG5cclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuICBzZWxlY3RZZWFyKHllYXI6IG51bWJlciB8IERhdGUgfCBudWxsKTogdm9pZCB7XHJcbiAgICBpZiAoaXNOdWxsKHllYXIpKSByZXR1cm47XHJcbiAgICBpZiAoeWVhciBpbnN0YW5jZW9mIERhdGUpIHllYXIgPSB5ZWFyLmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgY29uc3Qgd2FzU3VjY2Vzc2Z1bCA9IHRoaXMuY2hhbmdlWWVhcih5ZWFyKTtcclxuICAgIGlmICghd2FzU3VjY2Vzc2Z1bCkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuYWN0aXZlVmlldy5zZXQoQXJkQ2FsZW5kYXJWaWV3Lk1vbnRocyk7XHJcbiAgICB0aGlzLnllYXJTZWxlY3QuZW1pdCh5ZWFyKTtcclxuICB9XHJcbiAgc2VsZWN0Q3VycmVudGx5SGlnaGxpZ2h0ZWRZZWFyKCk6IHZvaWQge1xyXG4gICAgaWYgKCFpc0RlZmluZWQodGhpcy5oaWdobGlnaHRlZFllYXIoKSkpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnNlbGVjdFllYXIodGhpcy5oaWdobGlnaHRlZFllYXIoKSEpO1xyXG4gIH1cclxuXHJcbiAgLy8hIGhpZ2hsaWdodGluZyB5ZWFyc1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgX19oaWdobGlnaHRlZFllYXIgPSBzaWduYWw8bnVtYmVyIHwgbnVsbD4obnVsbCk7XHJcbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWRZZWFyID0gdGhpcy5fX2hpZ2hsaWdodGVkWWVhci5hc1JlYWRvbmx5KCk7XHJcblxyXG4gIHJlYWRvbmx5IGN1cnJlbnRZZWFyUmFuZ2VTdGFydCA9IHNpZ25hbDxudW1iZXI+KFRPREFZLmdldEZ1bGxZZWFyKCkgLSAoVE9EQVkuZ2V0RnVsbFllYXIoKSAlIDQpIC0gOCk7IC8vIGN1cnJlbnQgeWVhciBhbHdheXMgaW4gM3JkIHJvd1xyXG5cclxuICBzZXRIaWdobGlnaHRlZFllYXIoeWVhcjogbnVtYmVyIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKGlzTnVsbCh5ZWFyKSkge1xyXG4gICAgICB0aGlzLl9faGlnaGxpZ2h0ZWRZZWFyLnVwZGF0ZSgoKSA9PiB5ZWFyKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHllYXIsIDApO1xyXG4gICAgY29uc3Qgb3V0T2ZSYW5nZSA9IHRoaXMuaXNZZWFyT3V0T2ZSYW5nZSh5ZWFyKTtcclxuXHJcbiAgICBpZiAob3V0T2ZSYW5nZSA9PT0gLTEpIHtcclxuICAgICAgdGhpcy5faGlnaGxpZ2h0TWluWWVhcigpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAob3V0T2ZSYW5nZSA9PT0gMSkge1xyXG4gICAgICB0aGlzLl9oaWdobGlnaHRNYXhZZWFyKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBuZXdZZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgdGhpcy5fX2hpZ2hsaWdodGVkWWVhci51cGRhdGUoKCkgPT4gbmV3WWVhcik7XHJcblxyXG4gICAgaWYgKG5ld1llYXIgPCB0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydCgpIHx8IG5ld1llYXIgPj0gdGhpcy5jdXJyZW50WWVhclJhbmdlU3RhcnQoKSArIDI0KSB7XHJcbiAgICAgIC8vIHJvdW5kIHRoZSBvZmZzZXQgYXdheSBmcm9tIHplcm86IDAuMSAtPiAxLCAtMC4xIC0+IC0xXHJcbiAgICAgIC8vIHRoaXMgaXMgdG8gZW5zdXJlIHRoZSByYW5nZSBzdGFydCBpcyBhbHdheXMgc2hpZnRlZCBieSAyNCB5ZWFyc1xyXG4gICAgICBjb25zdCBvZmZzZXQgPSByb3VuZEZyb21aZXJvKChuZXdZZWFyIC0gdGhpcy5jdXJyZW50WWVhclJhbmdlU3RhcnQoKSkgLyAyNCk7XHJcbiAgICAgIHRoaXMuY3VycmVudFllYXJSYW5nZVN0YXJ0LnVwZGF0ZSh2ID0+IHYgKyBvZmZzZXQgKiAyNCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaGFuZ2VZZWFyc1ZpZXdQYWdlKG9mZnNldDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBuZXdZZWFyUmFuZ2VTdGFydCA9IHRoaXMuY3VycmVudFllYXJSYW5nZVN0YXJ0KCkgKyBvZmZzZXQgKiAyNDtcclxuICAgIHRoaXMuY3VycmVudFllYXJSYW5nZVN0YXJ0LnNldChuZXdZZWFyUmFuZ2VTdGFydCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWdobGlnaHRNaW5ZZWFyKCk6IHZvaWQge1xyXG4gICAgY29uc3QgbWluID0gdGhpcy5taW4oKTtcclxuICAgIGlmICghaXNEZWZpbmVkKG1pbikpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9faGlnaGxpZ2h0ZWRZZWFyLnNldChtaW4uZ2V0RnVsbFllYXIoKSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2hpZ2hsaWdodE1heFllYXIoKTogdm9pZCB7XHJcbiAgICBjb25zdCBtYXggPSB0aGlzLm1heCgpO1xyXG4gICAgaWYgKCFpc0RlZmluZWQobWF4KSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMuX19oaWdobGlnaHRlZFllYXIuc2V0KG1heC5nZXRGdWxsWWVhcigpKTtcclxuICB9XHJcblxyXG4gIGhpZ2hsaWdodE5leHRZZWFyKG9mZnNldCA9IDEpOiB2b2lkIHtcclxuICAgIGNvbnN0IGN1cnJlbnRZZWFyID0gdGhpcy5oaWdobGlnaHRlZFllYXIoKTtcclxuICAgIGNvbnN0IG5ld1llYXIgPSBpc0RlZmluZWQoY3VycmVudFllYXIpID8gY3VycmVudFllYXIgKyBvZmZzZXQgOiBudWxsO1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZFllYXIobmV3WWVhcik7XHJcbiAgfVxyXG4gIGhpZ2hsaWdodFByZXZpb3VzWWVhcihvZmZzZXQgPSAxKTogdm9pZCB7XHJcbiAgICB0aGlzLmhpZ2hsaWdodE5leHRZZWFyKG9mZnNldCAqIC0xKTtcclxuICB9XHJcbiAgaGlnaGxpZ2h0Rmlyc3RZZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZFllYXIodGhpcy5jdXJyZW50WWVhclJhbmdlU3RhcnQoKSk7XHJcbiAgfVxyXG4gIGhpZ2hsaWdodExhc3RZZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZFllYXIodGhpcy5jdXJyZW50WWVhclJhbmdlU3RhcnQoKSArIDIzKTsgLy8gMjQgeWVhcnMgcGVyIHBhZ2VcclxuICB9XHJcbiAgaGlnaGxpZ2h0U2FtZVllYXJOZXh0UGFnZShtdWx0aXBsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgY29uc3QgeWVhciA9IHRoaXMuaGlnaGxpZ2h0ZWRZZWFyKCkgPz8gdGhpcy5jdXJyZW50WWVhclJhbmdlU3RhcnQoKTtcclxuICAgIHRoaXMuc2V0SGlnaGxpZ2h0ZWRZZWFyKHllYXIgKyAobXVsdGlwbGUgPyA2MCA6IDI0KSk7XHJcbiAgfVxyXG4gIGhpZ2hsaWdodFNhbWVZZWFyUHJldmlvdXNQYWdlKG11bHRpcGxlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5oaWdobGlnaHRlZFllYXIoKSA/PyB0aGlzLmN1cnJlbnRZZWFyUmFuZ2VTdGFydCgpO1xyXG4gICAgdGhpcy5zZXRIaWdobGlnaHRlZFllYXIoeWVhciAtIChtdWx0aXBsZSA/IDYwIDogMjQpKTtcclxuICB9XHJcblxyXG4gIC8vISBpbnRlcm5hbHNcclxuICByZWFkb25seSBfaXNVc2luZ0tleWJvYXJkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDptb3VzZW1vdmUnKVxyXG4gIG9uRG9jdW1lbnRNb3VzZW1vdmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pc1VzaW5nS2V5Ym9hcmQuc2V0KGZhbHNlKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicpXHJcbiAgb25Eb2N1bWVudEtleWRvd24oKTogdm9pZCB7XHJcbiAgICB0aGlzLl9pc1VzaW5nS2V5Ym9hcmQuc2V0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHRlbXBsYXRlc1xyXG4gIHJlYWRvbmx5IHllYXJzVmlld0hlYWRlclRlbXBsYXRlID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPENhbGVuZGFyWWVhcnNWaWV3SGVhZGVyQ29udGV4dD4+KFRlbXBsYXRlUmVmKTtcclxuICByZWFkb25seSBtb250aHNWaWV3SGVhZGVyVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJNb250aHNWaWV3SGVhZGVyQ29udGV4dD4+KFRlbXBsYXRlUmVmKTtcclxuICByZWFkb25seSBkYXlzVmlld0hlYWRlclRlbXBsYXRlID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0Pj4oVGVtcGxhdGVSZWYpO1xyXG4gIHJlYWRvbmx5IGZsb2F0aW5nTW9udGhUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjxDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0Pj4oVGVtcGxhdGVSZWYpO1xyXG4gIHJlYWRvbmx5IHllYXJUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjxDYWxlbmRhclllYXJDb250ZXh0Pj4oVGVtcGxhdGVSZWYpO1xyXG4gIHJlYWRvbmx5IG1vbnRoVGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJNb250aENvbnRleHQ+PihUZW1wbGF0ZVJlZik7XHJcbiAgcmVhZG9ubHkgZGF5VGVtcGxhdGUgPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJEYXlDb250ZXh0Pj4oVGVtcGxhdGVSZWYpO1xyXG4gIHJlYWRvbmx5IHdlZWtkYXlUZW1wbGF0ZSA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjxDYWxlbmRhcldlZWtkYXlDb250ZXh0Pj4oVGVtcGxhdGVSZWYpO1xyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImFyZC1jYWxlbmRhclwiXHJcbiAgW25nQ2xhc3NdPVwibmdDbGFzc2VzKClcIlxyXG4+XHJcbiAgQHN3aXRjaCAoYWN0aXZlVmlldygpKSB7XHJcbiAgICBAY2FzZSAoJ2RheXMnKSB7XHJcbiAgICAgIDxhcmQtZGF5cy12aWV3XHJcbiAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgICAgW2F1dG9Gb2N1c109XCJhdXRvRm9jdXMoKVwiXHJcbiAgICAgICAgW19pc1VzaW5nS2V5Ym9hcmRdPVwiX2lzVXNpbmdLZXlib2FyZCgpXCJcclxuICAgICAgICBbYWN0aXZlTW9udGhdPVwiYWN0aXZlTW9udGgoKVwiXHJcbiAgICAgICAgW2FjdGl2ZVllYXJdPVwiYWN0aXZlWWVhcigpXCJcclxuICAgICAgICBbc2VsZWN0ZWREYXRlXT1cInNlbGVjdGVkRGF0ZSgpXCJcclxuICAgICAgICBbZmlyc3RXZWVrZGF5XT1cImZpcnN0V2Vla2RheSgpXCJcclxuICAgICAgICBbaGlnaGxpZ2h0ZWREYXldPVwiaGlnaGxpZ2h0ZWREYXkoKVwiXHJcbiAgICAgICAgW21pbl09XCJtaW4oKVwiXHJcbiAgICAgICAgW21heF09XCJtYXgoKVwiXHJcbiAgICAgICAgW2lzRGF5RmlsdGVyZWRPdXRdPVwiaXNEYXlGaWx0ZXJlZE91dCgpXCJcclxuICAgICAgICBbZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZV09XCJkYXlzVmlld0hlYWRlclRlbXBsYXRlKClcIlxyXG4gICAgICAgIFtmbG9hdGluZ01vbnRoVGVtcGxhdGVdPVwiZmxvYXRpbmdNb250aFRlbXBsYXRlKClcIlxyXG4gICAgICAgIFt3ZWVrZGF5VGVtcGxhdGVdPVwid2Vla2RheVRlbXBsYXRlKClcIlxyXG4gICAgICAgIFtkYXlUZW1wbGF0ZV09XCJkYXlUZW1wbGF0ZSgpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJPcGVuTW9udGhzVmlldyk9XCJvblRyaWdnZXJPcGVuTW9udGhzVmlldygpXCJcclxuICAgICAgICAodHJpZ2dlck9wZW5ZZWFyc1ZpZXcpPVwib25UcmlnZ2VyT3BlblllYXJzVmlldygpXCJcclxuICAgICAgICAodHJpZ2dlckNoYW5nZU1vbnRoKT1cImNoYW5nZU1vbnRoKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VyQ2hhbmdlWWVhcik9XCJjaGFuZ2VZZWFyKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0RGF5KT1cInNldEhpZ2hsaWdodGVkRGF5KCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0Rmlyc3REYXkpPVwiaGlnaGxpZ2h0Rmlyc3REYXkoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRMYXN0RGF5KT1cImhpZ2hsaWdodExhc3REYXkoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHROZXh0RGF5KT1cImhpZ2hsaWdodE5leHREYXkoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRQcmV2aW91c0RheSk9XCJoaWdobGlnaHRQcmV2aW91c0RheSgkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlOZXh0UGFnZSk9XCIkZXZlbnQgPyBoaWdobGlnaHRTYW1lRGF5TmV4dFllYXIoKSA6IGhpZ2hsaWdodFNhbWVEYXlOZXh0TW9udGgoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRTYW1lRGF5UHJldmlvdXNQYWdlKT1cIiRldmVudCA/IGhpZ2hsaWdodFNhbWVEYXlQcmV2aW91c1llYXIoKSA6IGhpZ2hsaWdodFNhbWVEYXlQcmV2aW91c01vbnRoKClcIlxyXG4gICAgICAgICh0cmlnZ2VyU2VsZWN0RGF5KT1cInNlbGVjdERheSgkZXZlbnQpXCJcclxuICAgICAgLz5cclxuICAgIH1cclxuICAgIEBjYXNlICgnbW9udGhzJykge1xyXG4gICAgICA8YXJkLW1vbnRocy12aWV3XHJcbiAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgICAgW2F1dG9Gb2N1c109XCJhdXRvRm9jdXMoKVwiXHJcbiAgICAgICAgW19pc1VzaW5nS2V5Ym9hcmRdPVwiX2lzVXNpbmdLZXlib2FyZCgpXCJcclxuICAgICAgICBbY29sb3JdPVwiY29sb3IoKVwiXHJcbiAgICAgICAgW2FjdGl2ZU1vbnRoXT1cImFjdGl2ZU1vbnRoKClcIlxyXG4gICAgICAgIFthY3RpdmVZZWFyXT1cImFjdGl2ZVllYXIoKVwiXHJcbiAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzZWxlY3RlZERhdGUoKVwiXHJcbiAgICAgICAgW21pbl09XCJtaW4oKVwiXHJcbiAgICAgICAgW21heF09XCJtYXgoKVwiXHJcbiAgICAgICAgW2hpZ2hsaWdodGVkTW9udGhdPVwiaGlnaGxpZ2h0ZWRNb250aCgpXCJcclxuICAgICAgICBbbW9udGhzVmlld0hlYWRlclRlbXBsYXRlXT1cIm1vbnRoc1ZpZXdIZWFkZXJUZW1wbGF0ZSgpXCJcclxuICAgICAgICBbbW9udGhUZW1wbGF0ZV09XCJtb250aFRlbXBsYXRlKClcIlxyXG4gICAgICAgIChmb2N1cyk9XCJvbkZvY3VzKCRldmVudClcIlxyXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlck9wZW5EYXlzVmlldyk9XCJvblRyaWdnZXJPcGVuRGF5c1ZpZXcoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJPcGVuWWVhcnNWaWV3KT1cIm9uVHJpZ2dlck9wZW5ZZWFyc1ZpZXcoKVwiXHJcbiAgICAgICAgKHRyaWdnZUNoYW5nZVllYXIpPVwiY2hhbmdlWWVhcigkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlclNlbGVjdE1vbnRoKT1cInNlbGVjdE1vbnRoKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0TW9udGgpPVwic2V0SGlnaGxpZ2h0ZWRNb250aCgkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodEZpcnN0TW9udGgpPVwiaGlnaGxpZ2h0Rmlyc3RNb250aCgpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodExhc3RNb250aCk9XCJoaWdobGlnaHRMYXN0TW9udGgoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHROZXh0TW9udGgpPVwiaGlnaGxpZ2h0TmV4dE1vbnRoKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0UHJldmlvdXNNb250aCk9XCJoaWdobGlnaHRQcmV2aW91c01vbnRoKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0U2FtZU1vbnRoTmV4dFBhZ2UpPVwiaGlnaGxpZ2h0U2FtZU1vbnRoTmV4dFllYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRTYW1lTW9udGhQcmV2aW91c1BhZ2UpPVwiaGlnaGxpZ2h0U2FtZU1vbnRoUHJldmlvdXNZZWFyKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgfVxyXG4gICAgQGNhc2UgKCd5ZWFycycpIHtcclxuICAgICAgPGFyZC15ZWFycy12aWV3XHJcbiAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgIFtyZWFkT25seV09XCJyZWFkb25seSgpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQoKVwiXHJcbiAgICAgICAgW2F1dG9Gb2N1c109XCJhdXRvRm9jdXMoKVwiXHJcbiAgICAgICAgW19pc1VzaW5nS2V5Ym9hcmRdPVwiX2lzVXNpbmdLZXlib2FyZCgpXCJcclxuICAgICAgICBbaGlnaGxpZ2h0ZWRZZWFyXT1cImhpZ2hsaWdodGVkWWVhcigpXCJcclxuICAgICAgICBbY3VycmVudFllYXJSYW5nZVN0YXJ0XT1cImN1cnJlbnRZZWFyUmFuZ2VTdGFydCgpXCJcclxuICAgICAgICBbYWN0aXZlWWVhcl09XCJhY3RpdmVZZWFyKClcIlxyXG4gICAgICAgIFtzZWxlY3RlZERhdGVdPVwic2VsZWN0ZWREYXRlKClcIlxyXG4gICAgICAgIFttaW5dPVwibWluKClcIlxyXG4gICAgICAgIFttYXhdPVwibWF4KClcIlxyXG4gICAgICAgIFt5ZWFyc1ZpZXdIZWFkZXJUZW1wbGF0ZV09XCJ5ZWFyc1ZpZXdIZWFkZXJUZW1wbGF0ZSgpXCJcclxuICAgICAgICBbeWVhclRlbXBsYXRlXT1cInllYXJUZW1wbGF0ZSgpXCJcclxuICAgICAgICAoZm9jdXMpPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJPcGVuRGF5c1ZpZXcpPVwib25UcmlnZ2VyT3BlbkRheXNWaWV3KClcIlxyXG4gICAgICAgICh0cmlnZ2VyT3Blbk1vbnRoc1ZpZXcpPVwib25UcmlnZ2VyT3Blbk1vbnRoc1ZpZXcoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJTZWxlY3RZZWFyKT1cInNlbGVjdFllYXIoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJDaGFuZ2VZZWFyc1ZpZXdQYWdlKT1cImNoYW5nZVllYXJzVmlld1BhZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRZZWFyKT1cInNldEhpZ2hsaWdodGVkWWVhcigkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodEZpcnN0WWVhcik9XCJoaWdobGlnaHRGaXJzdFllYXIoKVwiXHJcbiAgICAgICAgKHRyaWdnZXJIaWdobGlnaHRMYXN0WWVhcik9XCJoaWdobGlnaHRMYXN0WWVhcigpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodE5leHRZZWFyKT1cImhpZ2hsaWdodE5leHRZZWFyKCRldmVudClcIlxyXG4gICAgICAgICh0cmlnZ2VySGlnaGxpZ2h0UHJldmlvdXNZZWFyKT1cImhpZ2hsaWdodFByZXZpb3VzWWVhcigkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodFNhbWVZZWFyTmV4dFBhZ2UpPVwiaGlnaGxpZ2h0U2FtZVllYXJOZXh0UGFnZSgkZXZlbnQpXCJcclxuICAgICAgICAodHJpZ2dlckhpZ2hsaWdodFNhbWVZZWFyUHJldmlvdXNQYWdlKT1cImhpZ2hsaWdodFNhbWVZZWFyUHJldmlvdXNQYWdlKCRldmVudClcIlxyXG4gICAgICAvPlxyXG4gICAgfVxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -23,4 +23,4 @@ export const ARD_CALENDAR_DEFAULTS = new InjectionToken('ard-calendar-defaults',
|
|
|
23
23
|
export function provideCalendarDefaults(config) {
|
|
24
24
|
return { provide: ARD_CALENDAR_DEFAULTS, useValue: { ..._calendarDefaults, ...config } };
|
|
25
25
|
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLmRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBTyxFQUFFLHlCQUF5QixFQUE2QixNQUFNLGdDQUFnQyxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQXVCLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBZXhFLE1BQU0saUJBQWlCLEdBQXdCO0lBQzdDLEdBQUcseUJBQXlCO0lBQzVCLEtBQUssRUFBRSxjQUFjLENBQUMsT0FBTztJQUM3QixVQUFVLEVBQUUsZUFBZSxDQUFDLElBQUk7SUFDaEMsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO0lBQ3BDLFdBQVcsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxZQUFZLEVBQUUsQ0FBQztJQUNmLDhCQUE4QixFQUFFLENBQUM7SUFDakMsU0FBUyxFQUFFLEtBQUs7SUFDaEIsR0FBRyxFQUFFLElBQUk7SUFDVCxHQUFHLEVBQUUsSUFBSTtJQUNULE1BQU0sRUFBRSxJQUFJO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLElBQUksY0FBYyxDQUFzQix1QkFBdUIsRUFBRTtJQUNwRyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNkLEdBQUcsaUJBQWlCO0tBQ3JCLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBb0M7SUFDMUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsRUFBRSxHQUFHLGlCQUFpQixFQUFFLEdBQUcsTUFBTSxFQUFFLEVBQUUsQ0FBQztBQUMzRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IF9uZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMsIF9OZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMgfSBmcm9tICcuLi9faW50ZXJuYWwvbmdtb2RlbC1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb2xvciB9IGZyb20gJy4uL3R5cGVzL2NvbG9ycy50eXBlcyc7XHJcbmltcG9ydCB7IEFyZENhbGVuZGFyRmlsdGVyRm4sIEFyZENhbGVuZGFyVmlldyB9IGZyb20gJy4vY2FsZW5kYXIudHlwZXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBcmRDYWxlbmRhckRlZmF1bHRzIGV4dGVuZHMgX05nTW9kZWxDb21wb25lbnREZWZhdWx0cyB7XHJcbiAgY29sb3I6IENvbXBvbmVudENvbG9yO1xyXG4gIGFjdGl2ZVZpZXc6IEFyZENhbGVuZGFyVmlldztcclxuICBhY3RpdmVZZWFyOiBudW1iZXI7XHJcbiAgYWN0aXZlTW9udGg6IG51bWJlcjtcclxuICBmaXJzdFdlZWtkYXk6IG51bWJlcjtcclxuICBtdWx0aXBsZVllYXJQYWdlQ2hhbmdlTW9kaWZpZXI6IG51bWJlcjtcclxuICBhdXRvRm9jdXM6IGJvb2xlYW47XHJcbiAgbWluOiBEYXRlIHwgbnVsbDtcclxuICBtYXg6IERhdGUgfCBudWxsO1xyXG4gIGZpbHRlcjogQXJkQ2FsZW5kYXJGaWx0ZXJGbiB8IG51bGw7XHJcbn1cclxuXHJcbmNvbnN0IF9jYWxlbmRhckRlZmF1bHRzOiBBcmRDYWxlbmRhckRlZmF1bHRzID0ge1xyXG4gIC4uLl9uZ01vZGVsQ29tcG9uZW50RGVmYXVsdHMsXHJcbiAgY29sb3I6IENvbXBvbmVudENvbG9yLlByaW1hcnksXHJcbiAgYWN0aXZlVmlldzogQXJkQ2FsZW5kYXJWaWV3LkRheXMsXHJcbiAgYWN0aXZlWWVhcjogbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLFxyXG4gIGFjdGl2ZU1vbnRoOiBuZXcgRGF0ZSgpLmdldE1vbnRoKCksXHJcbiAgZmlyc3RXZWVrZGF5OiAxLFxyXG4gIG11bHRpcGxlWWVhclBhZ2VDaGFuZ2VNb2RpZmllcjogNSxcclxuICBhdXRvRm9jdXM6IGZhbHNlLFxyXG4gIG1pbjogbnVsbCxcclxuICBtYXg6IG51bGwsXHJcbiAgZmlsdGVyOiBudWxsLFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFSRF9DQUxFTkRBUl9ERUZBVUxUUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxBcmRDYWxlbmRhckRlZmF1bHRzPignYXJkLWNhbGVuZGFyLWRlZmF1bHRzJywge1xyXG4gIGZhY3Rvcnk6ICgpID0+ICh7XHJcbiAgICAuLi5fY2FsZW5kYXJEZWZhdWx0cyxcclxuICB9KSxcclxufSk7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNhbGVuZGFyRGVmYXVsdHMoY29uZmlnOiBQYXJ0aWFsPEFyZENhbGVuZGFyRGVmYXVsdHM+KTogUHJvdmlkZXIge1xyXG4gIHJldHVybiB7IHByb3ZpZGU6IEFSRF9DQUxFTkRBUl9ERUZBVUxUUywgdXNlVmFsdWU6IHsgLi4uX2NhbGVuZGFyRGVmYXVsdHMsIC4uLmNvbmZpZyB9IH07XHJcbn1cclxuIl19
|
|
@@ -3,4 +3,4 @@ export const ArdCalendarView = {
|
|
|
3
3
|
Months: 'months',
|
|
4
4
|
Years: 'years',
|
|
5
5
|
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyLnR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0NBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBBcmRDYWxlbmRhclZpZXcgPSB7XHJcbiAgRGF5czogJ2RheXMnLFxyXG4gIE1vbnRoczogJ21vbnRocycsXHJcbiAgWWVhcnM6ICd5ZWFycycsXHJcbn0gYXMgY29uc3Q7XHJcbmV4cG9ydCB0eXBlIEFyZENhbGVuZGFyVmlldyA9ICh0eXBlb2YgQXJkQ2FsZW5kYXJWaWV3KVtrZXlvZiB0eXBlb2YgQXJkQ2FsZW5kYXJWaWV3XTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlIHtcclxuICBsb3c6IERhdGU7XHJcbiAgaGlnaDogRGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBZZWFyUmFuZ2Uge1xyXG4gIGxvdzogbnVtYmVyO1xyXG4gIGhpZ2g6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQXJkQ2FsZW5kYXJGaWx0ZXJGbiA9IChkYXRlOiBEYXRlKSA9PiBib29sZWFuO1xyXG5cclxuLy8hIHRlbXBsYXRlIGNvbnRleHRzXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJZZWFyc1ZpZXdIZWFkZXJDb250ZXh0IHtcclxuICBuZXh0UGFnZTogKCkgPT4gdm9pZDtcclxuICBwcmV2UGFnZTogKCkgPT4gdm9pZDtcclxuICBvcGVuTW9udGhzVmlldzogKCkgPT4gdm9pZDtcclxuICBvcGVuRGF5c1ZpZXc6ICgpID0+IHZvaWQ7XHJcbiAgY2FuR29Ub05leHRQYWdlOiBib29sZWFuO1xyXG4gIGNhbkdvVG9QcmV2aW91c1BhZ2U6IGJvb2xlYW47XHJcbiAgeWVhclJhbmdlOiBZZWFyUmFuZ2U7XHJcbiAgZGF0ZVJhbmdlOiBEYXRlUmFuZ2U7XHJcbiAgJGltcGxpY2l0OiBEYXRlUmFuZ2U7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJNb250aHNWaWV3SGVhZGVyQ29udGV4dCB7XHJcbiAgbmV4dFBhZ2U6ICgpID0+IHZvaWQ7XHJcbiAgcHJldlBhZ2U6ICgpID0+IHZvaWQ7XHJcbiAgb3BlbkRheXNWaWV3OiAoKSA9PiB2b2lkO1xyXG4gIG9wZW5ZZWFyc1ZpZXc6ICgpID0+IHZvaWQ7XHJcbiAgY2FuR29Ub05leHRQYWdlOiBib29sZWFuO1xyXG4gIGNhbkdvVG9QcmV2aW91c1BhZ2U6IGJvb2xlYW47XHJcbiAgeWVhcjogbnVtYmVyO1xyXG4gIGRhdGU6IERhdGU7XHJcbiAgJGltcGxpY2l0OiBudW1iZXI7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQge1xyXG4gIG5leHRNb250aDogKCkgPT4gdm9pZDtcclxuICBwcmV2TW9udGg6ICgpID0+IHZvaWQ7XHJcbiAgbmV4dFllYXI6ICgpID0+IHZvaWQ7XHJcbiAgcHJldlllYXI6ICgpID0+IHZvaWQ7XHJcbiAgb3BlblllYXJzVmlldzogKCkgPT4gdm9pZDtcclxuICBvcGVuTW9udGhzVmlldzogKCkgPT4gdm9pZDtcclxuICBjYW5Hb1RvTmV4dFBhZ2U6IGJvb2xlYW47XHJcbiAgY2FuR29Ub1ByZXZpb3VzUGFnZTogYm9vbGVhbjtcclxuICB5ZWFyOiBudW1iZXI7XHJcbiAgbW9udGg6IG51bWJlcjtcclxuICAkaW1wbGljaXQ6IERhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJXZWVrZGF5Q29udGV4dCB7XHJcbiAgZGF5SW5kZXg6IG51bWJlcjtcclxuICBkYXRlOiBEYXRlO1xyXG4gICRpbXBsaWNpdDogRGF0ZTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0IHtcclxuICBtb250aDogbnVtYmVyO1xyXG4gIGRhdGU6IERhdGU7XHJcbiAgJGltcGxpY2l0OiBEYXRlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyWWVhckNvbnRleHQge1xyXG4gIHZhbHVlOiBudW1iZXI7XHJcbiAgZGF0ZTogRGF0ZTtcclxuICAkaW1wbGljaXQ6IERhdGU7XHJcbiAgc2VsZWN0OiAoeWVhcjogbnVtYmVyKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyTW9udGhDb250ZXh0IHtcclxuICBtb250aDogbnVtYmVyO1xyXG4gIGRhdGU6IERhdGU7XHJcbiAgJGltcGxpY2l0OiBEYXRlO1xyXG4gIHNlbGVjdDogKG1vbnRoOiBudW1iZXIgfCBEYXRlKSA9PiB2b2lkO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyRGF5Q29udGV4dCB7XHJcbiAgdmFsdWU6IG51bWJlcjtcclxuICBkYXRlOiBEYXRlO1xyXG4gICRpbXBsaWNpdDogbnVtYmVyO1xyXG4gIHNlbGVjdDogKGRheTogbnVtYmVyIHwgRGF0ZSkgPT4gdm9pZDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhckFjdGlvbkJ1dHRvbnNDb250ZXh0IHtcclxuICBjYW5jZWw6ICgpID0+IHZvaWQ7XHJcbiAgYXBwbHk6ICgpID0+IHZvaWQ7XHJcbiAgcmVzZXQ6ICgpID0+IHZvaWQ7XHJcbn1cclxuIl19
|
|
@@ -279,4 +279,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
279
279
|
type: HostListener,
|
|
280
280
|
args: ['mousemove']
|
|
281
281
|
}] } });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvdmlld3MvZGF5cy12aWV3L2RheXMtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL3ZpZXdzL2RheXMtdmlldy9kYXlzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUVSLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBRWxGLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFFekIsU0FBUyxVQUFVLENBQUMsSUFBWTtJQUM5QixPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBUUQsTUFBTSxPQUFPLGlCQUFpQjtJQU45QjtRQU9XLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUNyQyxhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBRXJDLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFFdEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDLFFB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U0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBWS9DLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBDYWxlbmRhckRheUNvbnRleHQsXG4gIENhbGVuZGFyRGF5c1ZpZXdIZWFkZXJDb250ZXh0LFxuICBDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0LFxuICBDYWxlbmRhcldlZWtkYXlDb250ZXh0LFxufSBmcm9tICcuLi8uLi9jYWxlbmRhci50eXBlcyc7XG5pbXBvcnQgeyBpc01vbnRoT3V0T2ZSYW5nZSB9IGZyb20gJy4uL21vbnRocy12aWV3L21vbnRocy12aWV3LmhlbHBlcnMnO1xuaW1wb3J0IHsgZ2V0Q2FsZW5kYXJEYXlEYXRhLCBnZXRDYWxlbmRhcldlZWtkYXlBcnJheSB9IGZyb20gJy4vZGF5cy12aWV3LmhlbHBlcnMnO1xuXG5jb25zdCBUT0RBWSA9IG5ldyBEYXRlKCk7XG5cbmZ1bmN0aW9uIGlzTGVhcFllYXIoeWVhcjogbnVtYmVyKTogYm9vbGVhbiB7XG4gIHJldHVybiAoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCkgfHwgeWVhciAlIDQwMCA9PT0gMDtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXJkLWRheXMtdmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXlzLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF5cy12aWV3LmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERheXNWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHJlYWRvbmx5IHRhYkluZGV4ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICByZWFkb25seSByZWFkT25seSA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSBhdXRvRm9jdXMgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IF9pc1VzaW5nS2V5Ym9hcmQgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScpXG4gIG9uTW91c2VNb3ZlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc1VzaW5nS2V5Ym9hcmQoKSkgcmV0dXJuO1xuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRGF5KCkpIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KG51bGwpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5hdXRvRm9jdXMoKSkgcmV0dXJuO1xuICAgIHRoaXMuZm9jdXMoKTtcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHREYXkuZW1pdCgxKTtcbiAgfVxuXG4gIC8vISBhY3RpdmUgeWVhci9tb250aFxuICByZWFkb25seSBhY3RpdmVZZWFyID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyPigpO1xuICByZWFkb25seSBhY3RpdmVNb250aCA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcblxuICByZWFkb25seSBzZWxlY3RlZERhdGUgPSBpbnB1dC5yZXF1aXJlZDxEYXRlIHwgbnVsbD4oKTtcblxuICByZWFkb25seSBtaW4gPSBpbnB1dC5yZXF1aXJlZDxEYXRlIHwgbnVsbD4oKTtcbiAgcmVhZG9ubHkgbWF4ID0gaW5wdXQucmVxdWlyZWQ8RGF0ZSB8IG51bGw+KCk7XG5cbiAgcmVhZG9ubHkgaXNEYXlGaWx0ZXJlZE91dCA9IGlucHV0LnJlcXVpcmVkPChkYXk6IG51bWJlciwgbW9udGg/OiBudW1iZXIsIHllYXI/OiBudW1iZXIpID0+IGJvb2xlYW4+KCk7XG5cbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWREYXkgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXIgfCBudWxsPigpO1xuXG4gIC8vISBmb2N1c2luZ1xuICByZWFkb25seSBmb2N1c2FibGVFbGVtZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZm9jdXNhYmxlRWxlbWVudCcpO1xuXG4gIGZvY3VzKCk6IHZvaWQge1xuICAgIHRoaXMuZm9jdXNhYmxlRWxlbWVudCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgfVxuXG4gIC8vISBjYWxlbmRhciBkYXRhXG4gIHJlYWRvbmx5IGZpcnN0V2Vla2RheSA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcblxuICByZWFkb25seSBhY3RpdmVDYWxlbmRhckRhdGEgPSBjb21wdXRlZCgoKSA9PlxuICAgIGdldENhbGVuZGFyRGF5RGF0YSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCB0aGlzLmZpcnN0V2Vla2RheSgpLCB0aGlzLm1pbigpLCB0aGlzLm1heCgpKVxuICApO1xuICByZWFkb25seSByZXNlcnZlVG9wUm93ID0gY29tcHV0ZWQ8Ym9vbGVhbj4oKCkgPT4gdGhpcy5hY3RpdmVDYWxlbmRhckRhdGEoKS5sZWFkaW5nU3BhY2VzIDwgMyk7XG5cbiAgcmVhZG9ubHkgd2Vla2RheUFycmF5ID0gY29tcHV0ZWQoKCkgPT4gZ2V0Q2FsZW5kYXJXZWVrZGF5QXJyYXkodGhpcy5maXJzdFdlZWtkYXkoKSkpO1xuXG4gIGlzRGF5U2VsZWN0ZWQoZGF5OiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmIChkYXkgaW5zdGFuY2VvZiBEYXRlKSBkYXkgPSBkYXkuZ2V0RGF0ZSgpO1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSgpICE9PSBudWxsICYmXG4gICAgICB0aGlzLmFjdGl2ZVllYXIoKSA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKT8uZ2V0RnVsbFllYXIoKSAmJlxuICAgICAgdGhpcy5hY3RpdmVNb250aCgpID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRNb250aCgpICYmXG4gICAgICBkYXkgPT09IHRoaXMuc2VsZWN0ZWREYXRlKCk/LmdldERhdGUoKVxuICAgICk7XG4gIH1cblxuICByZWFkb25seSBjdXJyZW50QXJpYUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGRheSA9IHRoaXMuaGlnaGxpZ2h0ZWREYXkoKTtcbiAgICBpZiAoZGF5ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCBkYXkpLnRvTG9jYWxlRGF0ZVN0cmluZyh1bmRlZmluZWQsIHtcbiAgICAgIHdlZWtkYXk6ICdsb25nJyxcbiAgICAgIHllYXI6ICdudW1lcmljJyxcbiAgICAgIG1vbnRoOiAnbG9uZycsXG4gICAgICBkYXk6ICdudW1lcmljJyxcbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8hIG91dHB1dHNcbiAgcmVhZG9ubHkgdHJpZ2dlck9wZW5ZZWFyc1ZpZXcgPSBvdXRwdXQ8dm9pZD4oKTtcbiAgcmVhZG9ubHkgdHJpZ2dlck9wZW5Nb250aHNWaWV3ID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgdHJpZ2dlclNlbGVjdERheSA9IG91dHB1dDxudW1iZXIgfCBudWxsPigpO1xuICByZWFkb25seSB0cmlnZ2VyQ2hhbmdlTW9udGggPSBvdXRwdXQ8bnVtYmVyIHwgbnVsbD4oKTtcbiAgcmVhZG9ubHkgdHJpZ2dlckNoYW5nZVllYXIgPSBvdXRwdXQ8bnVtYmVyIHwgbnVsbD4oKTtcblxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0RGF5ID0gb3V0cHV0PG51bWJlciB8IG51bGw+KCk7XG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHROZXh0RGF5ID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgdHJpZ2dlckhpZ2hsaWdodFByZXZpb3VzRGF5ID0gb3V0cHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgdHJpZ2dlckhpZ2hsaWdodEZpcnN0RGF5ID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHRMYXN0RGF5ID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHRTYW1lRGF5UHJldmlvdXNQYWdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHRTYW1lRGF5TmV4dFBhZ2UgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSBmb2N1c0V2ZW50ID0gb3V0cHV0PEZvY3VzRXZlbnQ+KHsgYWxpYXM6ICdmb2N1cycgfSk7XG4gIHJlYWRvbmx5IGJsdXJFdmVudCA9IG91dHB1dDxGb2N1c0V2ZW50Pih7IGFsaWFzOiAnYmx1cicgfSk7XG5cbiAgb25DYWxlbmRhckRheU1vdXNlb3ZlcihkYXk6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faXNVc2luZ0tleWJvYXJkKCkpIHJldHVybjtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMucmVhZE9ubHkoKSkgcmV0dXJuO1xuICAgIGlmIChkYXkgJiYgdGhpcy5pc0RheUZpbHRlcmVkT3V0KCkoZGF5KSkgcmV0dXJuO1xuXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0RGF5LmVtaXQoZGF5KTtcbiAgfVxuICBvbkNhbGVuZGFyRGF5Q2xpY2soZGF5OiBudW1iZXIgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcbiAgICBpZiAoZGF5ID09PSBudWxsKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaXNEYXlGaWx0ZXJlZE91dCgpKGRheSkpIHJldHVybjtcblxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KGRheSk7XG4gICAgdGhpcy5mb2N1cygpO1xuICAgIHRoaXMudHJpZ2dlclNlbGVjdERheS5lbWl0KGRheSk7XG4gIH1cbiAgb25EYXlHcmlkRm9jdXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHRGaXJzdERheS5lbWl0KCk7XG4gIH1cbiAgb25EYXlHcmlkQmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMucmVhZE9ubHkoKSkgcmV0dXJuO1xuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KG51bGwpO1xuICB9XG4gIG9uRGF5R3JpZENsaWNrKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5yZWFkT25seSgpKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaGlnaGxpZ2h0ZWREYXkoKSAhPT0gbnVsbCkgcmV0dXJuO1xuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodEZpcnN0RGF5LmVtaXQoKTtcbiAgfVxuXG4gIC8vISBoZWxwZXJzXG4gIGlzRGF5VG9kYXkoZGF5OiBudW1iZXIgfCBudWxsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlWWVhcigpID09PSBUT0RBWS5nZXRGdWxsWWVhcigpICYmIHRoaXMuYWN0aXZlTW9udGgoKSA9PT0gVE9EQVkuZ2V0TW9udGgoKSAmJiBkYXkgPT09IFRPREFZLmdldERhdGUoKTtcbiAgfVxuICBpc01vbnRoT3V0T2ZSYW5nZShtb250aDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gaXNNb250aE91dE9mUmFuZ2UobW9udGgsIHRoaXMuYWN0aXZlWWVhcigpLCB0aGlzLm1pbigpLCB0aGlzLm1heCgpKTtcbiAgfVxuXG4gIC8vISBrZXlib2FyZCBjb250cm9sc1xuICBvbk1haW5HcmlkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5yZWFkT25seSgpKSByZXR1cm47XG4gICAgc3dpdGNoIChldmVudC5jb2RlKSB7XG4gICAgICBjYXNlICdTcGFjZSc6XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIHRoaXMuX29uRW50ZXJQcmVzcyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgIHRoaXMuX29uQXJyb3dVcFByZXNzKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICB0aGlzLl9vbkFycm93RG93blByZXNzKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICB0aGlzLl9vbkFycm93TGVmdFByZXNzKGV2ZW50KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgdGhpcy5fb25BcnJvd1JpZ2h0UHJlc3MoZXZlbnQpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0hvbWUnOlxuICAgICAgICB0aGlzLl9vbkhvbWVQcmVzcyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgdGhpcy5fb25FbmRQcmVzcyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUGFnZVVwJzpcbiAgICAgICAgdGhpcy5fb25QYWdlVXBQcmVzcyhldmVudCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnUGFnZURvd24nOlxuICAgICAgICB0aGlzLl9vblBhZ2VEb3duUHJlc3MoZXZlbnQpO1xuICAgICAgICBicmVhaztcblxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuICAvL3NlbGVjdCBjdXJyZW50bHkgc2VsZWN0ZWQgZW50cnlcbiAgcHJpdmF0ZSBfb25FbnRlclByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMudHJpZ2dlclNlbGVjdERheS5lbWl0KHRoaXMuaGlnaGxpZ2h0ZWREYXkoKSk7XG4gIH1cbiAgLy9oaWdobGlnaHQgdGhlIGVudHJ5IG9uZSBsaW5lIGJlbG93XG4gIHByaXZhdGUgX29uQXJyb3dEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0TmV4dERheS5lbWl0KDcpO1xuICB9XG4gIC8vaGlnaGxpZ2h0IHRoZSBlbnRyeSBvbmUgbGluZSBhYm92ZVxuICBwcml2YXRlIF9vbkFycm93VXBQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHRQcmV2aW91c0RheS5lbWl0KDcpO1xuICB9XG4gIC8vaGlnaGxpZ2h0IG5leHQgZW50cnlcbiAgcHJpdmF0ZSBfb25BcnJvd1JpZ2h0UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0TmV4dERheS5lbWl0KDEpO1xuICB9XG4gIC8vaGlnaGxpZ2h0IHByZXZpb3VzIGVudHJ5XG4gIHByaXZhdGUgX29uQXJyb3dMZWZ0UHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0UHJldmlvdXNEYXkuZW1pdCgxKTtcbiAgfVxuICAvL2hpZ2hsaWdodCBmaXJzdCBlbnRyeSBvbiB0aGUgcGFnZVxuICBwcml2YXRlIF9vbkhvbWVQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHRGaXJzdERheS5lbWl0KCk7XG4gIH1cbiAgLy9oaWdobGlnaHQgbGFzdCBlbnRyeSBvbiB0aGUgcGFnZVxuICBwcml2YXRlIF9vbkVuZFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodExhc3REYXkuZW1pdCgpO1xuICB9XG4gIC8vYWxvbmU6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG9uIHRoZSBuZXh0IHBhZ2VcbiAgLy93aXRoIGFsdDogaGlnaGxpZ2h0IHNhbWUgZW50cnkgbXVsdGlwbGUgcGFnZXMgYWZ0ZXIgKDEyIHBhZ2VzKVxuICBwcml2YXRlIF9vblBhZ2VEb3duUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0U2FtZURheU5leHRQYWdlLmVtaXQoZXZlbnQuYWx0S2V5KTtcbiAgfVxuICAvL2Fsb25lOiBoaWdobGlnaHQgc2FtZSBlbnRyeSBvbiB0aGUgcHJldmlvdXMgcGFnZVxuICAvL3dpdGggYWx0OiBoaWdobGlnaHQgc2FtZSBlbnRyeSBtdWx0aXBsZSBwYWdlcyBiZWZvcmUgKDEyIHBhZ2VzKVxuICBwcml2YXRlIF9vblBhZ2VVcFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlQcmV2aW91c1BhZ2UuZW1pdChldmVudC5hbHRLZXkpO1xuICB9XG5cbiAgLy8hIHRlbXBsYXRlc1xuICByZWFkb25seSBkYXlzVmlld0hlYWRlclRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQ+IHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSBmbG9hdGluZ01vbnRoVGVtcGxhdGUgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0PiB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgd2Vla2RheVRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJXZWVrZGF5Q29udGV4dD4gfCB1bmRlZmluZWQ+KCk7XG4gIHJlYWRvbmx5IGRheVRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJEYXlDb250ZXh0PiB8IHVuZGVmaW5lZD4oKTtcblxuICAvLyEgdGVtcGxhdGUgY29udGV4dHNcbiAgcmVhZG9ubHkgZGF5c1ZpZXdIZWFkZXJDb250ZXh0ID0gY29tcHV0ZWQ8Q2FsZW5kYXJEYXlzVmlld0hlYWRlckNvbnRleHQ+KCgpID0+ICh7XG4gICAgbmV4dE1vbnRoOiAoKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXJDaGFuZ2VNb250aC5lbWl0KHRoaXMuYWN0aXZlTW9udGgoKSArIDEpO1xuICAgIH0sXG4gICAgcHJldk1vbnRoOiAoKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXJDaGFuZ2VNb250aC5lbWl0KHRoaXMuYWN0aXZlTW9udGgoKSAtIDEpO1xuICAgIH0sXG4gICAgbmV4dFllYXI6ICgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZVllYXIuZW1pdCh0aGlzLmFjdGl2ZVllYXIoKSArIDEpO1xuICAgIH0sXG4gICAgcHJldlllYXI6ICgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZVllYXIuZW1pdCh0aGlzLmFjdGl2ZVllYXIoKSAtIDEpO1xuICAgIH0sXG4gICAgb3BlblllYXJzVmlldzogKCkgPT4ge1xuICAgICAgdGhpcy50cmlnZ2VyT3BlblllYXJzVmlldy5lbWl0KCk7XG4gICAgfSxcbiAgICBvcGVuTW9udGhzVmlldzogKCkgPT4ge1xuICAgICAgdGhpcy50cmlnZ2VyT3Blbk1vbnRoc1ZpZXcuZW1pdCgpO1xuICAgIH0sXG4gICAgY2FuR29Ub05leHRQYWdlOiAhdGhpcy5pc01vbnRoT3V0T2ZSYW5nZSh0aGlzLmFjdGl2ZU1vbnRoKCkgKyAxKSxcbiAgICBjYW5Hb1RvUHJldmlvdXNQYWdlOiAhdGhpcy5pc01vbnRoT3V0T2ZSYW5nZSh0aGlzLmFjdGl2ZU1vbnRoKCkgLSAxKSxcbiAgICB5ZWFyOiB0aGlzLmFjdGl2ZVllYXIoKSxcbiAgICBtb250aDogdGhpcy5hY3RpdmVNb250aCgpLFxuICAgICRpbXBsaWNpdDogbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyKCksIHRoaXMuYWN0aXZlTW9udGgoKSwgMSwgMCwgMCwgMCwgMCksXG4gIH0pKTtcblxuICByZWFkb25seSB3ZWVrZGF5Q29udGV4dCA9IGNvbXB1dGVkPChkYXlJbmRleDogbnVtYmVyKSA9PiBDYWxlbmRhcldlZWtkYXlDb250ZXh0PigoKSA9PiAoZGF5SW5kZXg6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgxOTcwLCAwLCA0ICsgZGF5SW5kZXgpO1xuICAgIHJldHVybiB7XG4gICAgICBkYXlJbmRleCxcbiAgICAgIGRhdGUsXG4gICAgICAkaW1wbGljaXQ6IGRhdGUsXG4gICAgfTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgZmxvYXRpbmdNb250aENvbnRleHQgPSBjb21wdXRlZDxDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0PigoKSA9PiB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhcigpLCB0aGlzLmFjdGl2ZU1vbnRoKCksIDEsIDAsIDAsIDAsIDApO1xuICAgIHJldHVybiB7XG4gICAgICBtb250aDogdGhpcy5hY3RpdmVNb250aCgpLFxuICAgICAgZGF0ZSxcbiAgICAgICRpbXBsaWNpdDogZGF0ZSxcbiAgICB9O1xuICB9KTtcblxuICByZWFkb25seSBkYXlDb250ZXh0ID0gY29tcHV0ZWQ8KGRheTogbnVtYmVyKSA9PiBDYWxlbmRhckRheUNvbnRleHQ+KCgpID0+IChkYXk6IG51bWJlcikgPT4ge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCBkYXkpO1xuICAgIHJldHVybiB7XG4gICAgICB2YWx1ZTogZGF5LFxuICAgICAgZGF0ZSxcbiAgICAgICRpbXBsaWNpdDogZGF5LFxuICAgICAgc2VsZWN0OiAoZGF5T3JEYXRlOiBudW1iZXIgfCBEYXRlKSA9PiB7XG4gICAgICAgIHRoaXMudHJpZ2dlclNlbGVjdERheS5lbWl0KGRheU9yRGF0ZSBpbnN0YW5jZW9mIERhdGUgPyBkYXlPckRhdGUuZ2V0RGF0ZSgpIDogZGF5T3JEYXRlKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgfSk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXJkLWRheXMtdmlld1wiPlxyXG4gIEBpZiAoIXJlYWRPbmx5KCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX3RvcC10b29sYmFyXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICNkZWZhdWx0RGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZVxyXG4gICAgICAgIGxldC1jdXJyRGF0ZVxyXG4gICAgICAgIGxldC1uZXh0TW9udGg9XCJuZXh0TW9udGhcIlxyXG4gICAgICAgIGxldC1wcmV2TW9udGg9XCJwcmV2TW9udGhcIlxyXG4gICAgICAgIGxldC1jYW5Hb1RvTmV4dE1vbnRoPVwiY2FuR29Ub05leHRQYWdlXCJcclxuICAgICAgICBsZXQtY2FuR29Ub1ByZXZpb3VzTW9udGg9XCJjYW5Hb1RvUHJldmlvdXNQYWdlXCJcclxuICAgICAgICBsZXQtb3BlblllYXJzVmlldz1cIm9wZW5ZZWFyc1ZpZXdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fY2FsZW5kYXItaGVhZGVyXCI+XHJcbiAgICAgICAgICA8YXJkLWJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9faGVhZGVyLWJ1dHRvblwiXHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJwaWxsXCJcclxuICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlblllYXJzVmlldygpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY3VyckRhdGUgfCBkYXRlOiAnTU1NIFlZWVknIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZHJvcGRvd24tYXJyb3dcIj48L2Rpdj5cclxuICAgICAgICAgIDwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX2Fycm93c1wiPlxyXG4gICAgICAgICAgICA8YXJkLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZNb250aCgpXCJcclxuICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb1RvUHJldmlvdXNNb250aFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8YXJkLWljb24+Y2hldnJvbl9sZWZ0PC9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPC9hcmQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxhcmQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJub25lXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dE1vbnRoKClcIlxyXG4gICAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkdvVG9OZXh0TW9udGhcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGFyZC1pY29uPmNoZXZyb25fcmlnaHQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8L2FyZC1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZSgpIHx8IGRlZmF1bHREYXlzVmlld0hlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZGF5c1ZpZXdIZWFkZXJDb250ZXh0KClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX3dlZWtkYXlzXCI+XHJcbiAgICA8bmctdGVtcGxhdGVcclxuICAgICAgI2RlZmF1bHRXZWVrZGF5VGVtcGxhdGVcclxuICAgICAgbGV0LWRhdGVcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fd2Vla2RheVwiPnt7IGRhdGUgfCBkYXRlOiAnRUVFRUUnIH19PC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgQGZvciAod2Vla2RheUluZGV4IG9mIHdlZWtkYXlBcnJheSgpOyB0cmFjayB3ZWVrZGF5SW5kZXgpIHtcclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwid2Vla2RheVRlbXBsYXRlKCkgfHwgZGVmYXVsdFdlZWtkYXlUZW1wbGF0ZVwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIndlZWtkYXlDb250ZXh0KCkod2Vla2RheUluZGV4KVwiXHJcbiAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZGF5cy1ncmlkXCJcclxuICAgIFtjbGFzcy5hcmQtcmVzZXJ2ZS10b3Atcm93XT1cInJlc2VydmVUb3BSb3coKVwiXHJcbiAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICBbYXJpYUxhYmVsXT1cImN1cnJlbnRBcmlhTGFiZWwoKVwiXHJcbiAgICAoZm9jdXMpPVwiZm9jdXNFdmVudC5lbWl0KCRldmVudClcIlxyXG4gICAgKGZvY3VzKT1cIm9uRGF5R3JpZEZvY3VzKClcIlxyXG4gICAgKGJsdXIpPVwiYmx1ckV2ZW50LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoYmx1cik9XCJvbkRheUdyaWRCbHVyKClcIlxyXG4gICAgKGNsaWNrKT1cIm9uRGF5R3JpZENsaWNrKClcIlxyXG4gICAgKGtleWRvd24pPVwib25NYWluR3JpZEtleWRvd24oJGV2ZW50KVwiXHJcbiAgICByb2xlPVwiZ3JpZFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZmxvYXRpbmctbW9udGhcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgI2RlZmF1bHRGbG9hdGluZ01vbnRoVGVtcGxhdGVcclxuICAgICAgICBsZXQtZGF0ZVxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZGF0ZSB8IGRhdGU6ICdMTEwnIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmbG9hdGluZ01vbnRoVGVtcGxhdGUoKSB8fCBkZWZhdWx0RmxvYXRpbmdNb250aFRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZmxvYXRpbmdNb250aENvbnRleHQoKVwiXHJcbiAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICBAZm9yICh3ZWVrIG9mIGFjdGl2ZUNhbGVuZGFyRGF0YSgpLmFycmF5OyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgQGZvciAoZGF5IG9mIHdlZWs7IHRyYWNrIGRheSA/IGRheSA6IGFjdGl2ZUNhbGVuZGFyRGF0YSgpLmxlYWRpbmdTcGFjZXMgLSAkaW5kZXgpIHtcclxuICAgICAgICBAaWYgKGRheSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZW50cnkgYXJkLWNhbGVuZGFyX19lbnRyeS1lbXB0eVwiPjwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZW50cnlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1oaWdobGlnaHRlZF09XCJoaWdobGlnaHRlZERheSgpID09PSBkYXkudmFsdWVcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1kaXNhYmxlZF09XCJkYXkuZGlzYWJsZWQgfHwgaXNEYXlGaWx0ZXJlZE91dCgpKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1zZWxlY3RlZF09XCJpc0RheVNlbGVjdGVkKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLXRvZGF5XT1cImlzRGF5VG9kYXkoZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNhbGVuZGFyRGF5Q2xpY2soZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChtb3VzZW1vdmUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJvbkNhbGVuZGFyRGF5TW91c2VvdmVyKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyX19lbnRyeS1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgI2RlZmF1bHREYXlUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICBsZXQtZGF5XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGRheSB9fVxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkYXlUZW1wbGF0ZSgpIHx8IGRlZmF1bHREYXlUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJkYXlDb250ZXh0KCkoZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NyYy9saWIvY2FsZW5kYXIvdmlld3MvZGF5cy12aWV3L2RheXMtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NhbGVuZGFyL3ZpZXdzL2RheXMtdmlldy9kYXlzLXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUVSLFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQU92QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBRWxGLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7QUFFekIsU0FBUyxVQUFVLENBQUMsSUFBWTtJQUM5QixPQUFPLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxHQUFHLEdBQUcsS0FBSyxDQUFDLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztBQUNsRSxDQUFDO0FBUUQsTUFBTSxPQUFPLGlCQUFpQjtJQU45QjtRQU9XLGFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFDcEMsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQVcsQ0FBQztRQUNyQyxhQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBRXJDLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFXLENBQUM7UUFFdEMscUJBQWdCLEdBQUcsS0FBSyxDQUFDLFFB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U0FBUzsrQkFDRSxlQUFlLG1CQUdSLHVCQUF1QixDQUFDLE1BQU07OEJBWS9DLFdBQVc7c0JBRFYsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBjb21wdXRlZCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBpbnB1dCxcclxuICBvdXRwdXQsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgdmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENhbGVuZGFyRGF5Q29udGV4dCxcclxuICBDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dCxcclxuICBDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0LFxyXG4gIENhbGVuZGFyV2Vla2RheUNvbnRleHQsXHJcbn0gZnJvbSAnLi4vLi4vY2FsZW5kYXIudHlwZXMnO1xyXG5pbXBvcnQgeyBpc01vbnRoT3V0T2ZSYW5nZSB9IGZyb20gJy4uL21vbnRocy12aWV3L21vbnRocy12aWV3LmhlbHBlcnMnO1xyXG5pbXBvcnQgeyBnZXRDYWxlbmRhckRheURhdGEsIGdldENhbGVuZGFyV2Vla2RheUFycmF5IH0gZnJvbSAnLi9kYXlzLXZpZXcuaGVscGVycyc7XHJcblxyXG5jb25zdCBUT0RBWSA9IG5ldyBEYXRlKCk7XHJcblxyXG5mdW5jdGlvbiBpc0xlYXBZZWFyKHllYXI6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gIHJldHVybiAoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCkgfHwgeWVhciAlIDQwMCA9PT0gMDtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcmQtZGF5cy12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF5cy12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZGF5cy12aWV3LmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERheXNWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgcmVhZG9ubHkgdGFiSW5kZXggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgcmVhZE9ubHkgPSBpbnB1dC5yZXF1aXJlZDxib29sZWFuPigpO1xyXG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgcmVhZG9ubHkgYXV0b0ZvY3VzID0gaW5wdXQucmVxdWlyZWQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgcmVhZG9ubHkgX2lzVXNpbmdLZXlib2FyZCA9IGlucHV0LnJlcXVpcmVkPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbW92ZScpXHJcbiAgb25Nb3VzZU1vdmUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5faXNVc2luZ0tleWJvYXJkKCkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRGF5KCkpIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KG51bGwpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmF1dG9Gb2N1cygpKSByZXR1cm47XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHREYXkuZW1pdCgxKTtcclxuICB9XHJcblxyXG4gIC8vISBhY3RpdmUgeWVhci9tb250aFxyXG4gIHJlYWRvbmx5IGFjdGl2ZVllYXIgPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgYWN0aXZlTW9udGggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZSA9IGlucHV0LnJlcXVpcmVkPERhdGUgfCBudWxsPigpO1xyXG5cclxuICByZWFkb25seSBtaW4gPSBpbnB1dC5yZXF1aXJlZDxEYXRlIHwgbnVsbD4oKTtcclxuICByZWFkb25seSBtYXggPSBpbnB1dC5yZXF1aXJlZDxEYXRlIHwgbnVsbD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgaXNEYXlGaWx0ZXJlZE91dCA9IGlucHV0LnJlcXVpcmVkPChkYXk6IG51bWJlciwgbW9udGg/OiBudW1iZXIsIHllYXI/OiBudW1iZXIpID0+IGJvb2xlYW4+KCk7XHJcblxyXG4gIHJlYWRvbmx5IGhpZ2hsaWdodGVkRGF5ID0gaW5wdXQucmVxdWlyZWQ8bnVtYmVyIHwgbnVsbD4oKTtcclxuXHJcbiAgLy8hIGZvY3VzaW5nXHJcbiAgcmVhZG9ubHkgZm9jdXNhYmxlRWxlbWVudCA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oJ2ZvY3VzYWJsZUVsZW1lbnQnKTtcclxuXHJcbiAgZm9jdXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzYWJsZUVsZW1lbnQoKS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICAvLyEgY2FsZW5kYXIgZGF0YVxyXG4gIHJlYWRvbmx5IGZpcnN0V2Vla2RheSA9IGlucHV0LnJlcXVpcmVkPG51bWJlcj4oKTtcclxuXHJcbiAgcmVhZG9ubHkgYWN0aXZlQ2FsZW5kYXJEYXRhID0gY29tcHV0ZWQoKCkgPT5cclxuICAgIGdldENhbGVuZGFyRGF5RGF0YSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCB0aGlzLmZpcnN0V2Vla2RheSgpLCB0aGlzLm1pbigpLCB0aGlzLm1heCgpKVxyXG4gICk7XHJcbiAgcmVhZG9ubHkgcmVzZXJ2ZVRvcFJvdyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHRoaXMuYWN0aXZlQ2FsZW5kYXJEYXRhKCkubGVhZGluZ1NwYWNlcyA8IDMpO1xyXG5cclxuICByZWFkb25seSB3ZWVrZGF5QXJyYXkgPSBjb21wdXRlZCgoKSA9PiBnZXRDYWxlbmRhcldlZWtkYXlBcnJheSh0aGlzLmZpcnN0V2Vla2RheSgpKSk7XHJcblxyXG4gIGlzRGF5U2VsZWN0ZWQoZGF5OiBudW1iZXIgfCBEYXRlIHwgbnVsbCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKGRheSBpbnN0YW5jZW9mIERhdGUpIGRheSA9IGRheS5nZXREYXRlKCk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICB0aGlzLnNlbGVjdGVkRGF0ZSgpICE9PSBudWxsICYmXHJcbiAgICAgIHRoaXMuYWN0aXZlWWVhcigpID09PSB0aGlzLnNlbGVjdGVkRGF0ZSgpPy5nZXRGdWxsWWVhcigpICYmXHJcbiAgICAgIHRoaXMuYWN0aXZlTW9udGgoKSA9PT0gdGhpcy5zZWxlY3RlZERhdGUoKT8uZ2V0TW9udGgoKSAmJlxyXG4gICAgICBkYXkgPT09IHRoaXMuc2VsZWN0ZWREYXRlKCk/LmdldERhdGUoKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHJlYWRvbmx5IGN1cnJlbnRBcmlhTGFiZWwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBkYXkgPSB0aGlzLmhpZ2hsaWdodGVkRGF5KCk7XHJcbiAgICBpZiAoZGF5ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5hY3RpdmVNb250aCgpLCBkYXkpLnRvTG9jYWxlRGF0ZVN0cmluZyh1bmRlZmluZWQsIHtcclxuICAgICAgd2Vla2RheTogJ2xvbmcnLFxyXG4gICAgICB5ZWFyOiAnbnVtZXJpYycsXHJcbiAgICAgIG1vbnRoOiAnbG9uZycsXHJcbiAgICAgIGRheTogJ251bWVyaWMnLFxyXG4gICAgfSk7XHJcbiAgfSk7XHJcblxyXG4gIC8vISBvdXRwdXRzXHJcbiAgcmVhZG9ubHkgdHJpZ2dlck9wZW5ZZWFyc1ZpZXcgPSBvdXRwdXQ8dm9pZD4oKTtcclxuICByZWFkb25seSB0cmlnZ2VyT3Blbk1vbnRoc1ZpZXcgPSBvdXRwdXQ8dm9pZD4oKTtcclxuXHJcbiAgcmVhZG9ubHkgdHJpZ2dlclNlbGVjdERheSA9IG91dHB1dDxudW1iZXIgfCBudWxsPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJDaGFuZ2VNb250aCA9IG91dHB1dDxudW1iZXIgfCBudWxsPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJDaGFuZ2VZZWFyID0gb3V0cHV0PG51bWJlciB8IG51bGw+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHREYXkgPSBvdXRwdXQ8bnVtYmVyIHwgbnVsbD4oKTtcclxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0TmV4dERheSA9IG91dHB1dDxudW1iZXI+KCk7XHJcbiAgcmVhZG9ubHkgdHJpZ2dlckhpZ2hsaWdodFByZXZpb3VzRGF5ID0gb3V0cHV0PG51bWJlcj4oKTtcclxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0Rmlyc3REYXkgPSBvdXRwdXQ8dm9pZD4oKTtcclxuICByZWFkb25seSB0cmlnZ2VySGlnaGxpZ2h0TGFzdERheSA9IG91dHB1dDx2b2lkPigpO1xyXG4gIHJlYWRvbmx5IHRyaWdnZXJIaWdobGlnaHRTYW1lRGF5UHJldmlvdXNQYWdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcbiAgcmVhZG9ubHkgdHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlOZXh0UGFnZSA9IG91dHB1dDxib29sZWFuPigpO1xyXG5cclxuICByZWFkb25seSBmb2N1c0V2ZW50ID0gb3V0cHV0PEZvY3VzRXZlbnQ+KHsgYWxpYXM6ICdmb2N1cycgfSk7XHJcbiAgcmVhZG9ubHkgYmx1ckV2ZW50ID0gb3V0cHV0PEZvY3VzRXZlbnQ+KHsgYWxpYXM6ICdibHVyJyB9KTtcclxuXHJcbiAgb25DYWxlbmRhckRheU1vdXNlb3ZlcihkYXk6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLl9pc1VzaW5nS2V5Ym9hcmQoKSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcclxuICAgIGlmIChkYXkgJiYgdGhpcy5pc0RheUZpbHRlcmVkT3V0KCkoZGF5KSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KGRheSk7XHJcbiAgfVxyXG4gIG9uQ2FsZW5kYXJEYXlDbGljayhkYXk6IG51bWJlciB8IG51bGwpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5yZWFkT25seSgpKSByZXR1cm47XHJcbiAgICBpZiAoZGF5ID09PSBudWxsKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy5pc0RheUZpbHRlcmVkT3V0KCkoZGF5KSkgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodERheS5lbWl0KGRheSk7XHJcbiAgICB0aGlzLmZvY3VzKCk7XHJcbiAgICB0aGlzLnRyaWdnZXJTZWxlY3REYXkuZW1pdChkYXkpO1xyXG4gIH1cclxuICBvbkRheUdyaWRGb2N1cygpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKCkgfHwgdGhpcy5yZWFkT25seSgpKSByZXR1cm47XHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHRGaXJzdERheS5lbWl0KCk7XHJcbiAgfVxyXG4gIG9uRGF5R3JpZEJsdXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpIHx8IHRoaXMucmVhZE9ubHkoKSkgcmV0dXJuO1xyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0RGF5LmVtaXQobnVsbCk7XHJcbiAgfVxyXG4gIG9uRGF5R3JpZENsaWNrKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmhpZ2hsaWdodGVkRGF5KCkgIT09IG51bGwpIHJldHVybjtcclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodEZpcnN0RGF5LmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8vISBoZWxwZXJzXHJcbiAgaXNEYXlUb2RheShkYXk6IG51bWJlciB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZVllYXIoKSA9PT0gVE9EQVkuZ2V0RnVsbFllYXIoKSAmJiB0aGlzLmFjdGl2ZU1vbnRoKCkgPT09IFRPREFZLmdldE1vbnRoKCkgJiYgZGF5ID09PSBUT0RBWS5nZXREYXRlKCk7XHJcbiAgfVxyXG4gIGlzTW9udGhPdXRPZlJhbmdlKG1vbnRoOiBudW1iZXIpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIGlzTW9udGhPdXRPZlJhbmdlKG1vbnRoLCB0aGlzLmFjdGl2ZVllYXIoKSwgdGhpcy5taW4oKSwgdGhpcy5tYXgoKSk7XHJcbiAgfVxyXG5cclxuICAvLyEga2V5Ym9hcmQgY29udHJvbHNcclxuICBvbk1haW5HcmlkS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQoKSB8fCB0aGlzLnJlYWRPbmx5KCkpIHJldHVybjtcclxuICAgIHN3aXRjaCAoZXZlbnQuY29kZSkge1xyXG4gICAgICBjYXNlICdTcGFjZSc6XHJcbiAgICAgIGNhc2UgJ0VudGVyJzpcclxuICAgICAgICB0aGlzLl9vbkVudGVyUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdBcnJvd1VwJzpcclxuICAgICAgICB0aGlzLl9vbkFycm93VXBQcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XHJcbiAgICAgICAgdGhpcy5fb25BcnJvd0Rvd25QcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XHJcbiAgICAgICAgdGhpcy5fb25BcnJvd0xlZnRQcmVzcyhldmVudCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ0Fycm93UmlnaHQnOlxyXG4gICAgICAgIHRoaXMuX29uQXJyb3dSaWdodFByZXNzKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnSG9tZSc6XHJcbiAgICAgICAgdGhpcy5fb25Ib21lUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdFbmQnOlxyXG4gICAgICAgIHRoaXMuX29uRW5kUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdQYWdlVXAnOlxyXG4gICAgICAgIHRoaXMuX29uUGFnZVVwUHJlc3MoZXZlbnQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdQYWdlRG93bic6XHJcbiAgICAgICAgdGhpcy5fb25QYWdlRG93blByZXNzKGV2ZW50KTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gIH1cclxuICAvL3NlbGVjdCBjdXJyZW50bHkgc2VsZWN0ZWQgZW50cnlcclxuICBwcml2YXRlIF9vbkVudGVyUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy50cmlnZ2VyU2VsZWN0RGF5LmVtaXQodGhpcy5oaWdobGlnaHRlZERheSgpKTtcclxuICB9XHJcbiAgLy9oaWdobGlnaHQgdGhlIGVudHJ5IG9uZSBsaW5lIGJlbG93XHJcbiAgcHJpdmF0ZSBfb25BcnJvd0Rvd25QcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHROZXh0RGF5LmVtaXQoNyk7XHJcbiAgfVxyXG4gIC8vaGlnaGxpZ2h0IHRoZSBlbnRyeSBvbmUgbGluZSBhYm92ZVxyXG4gIHByaXZhdGUgX29uQXJyb3dVcFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodFByZXZpb3VzRGF5LmVtaXQoNyk7XHJcbiAgfVxyXG4gIC8vaGlnaGxpZ2h0IG5leHQgZW50cnlcclxuICBwcml2YXRlIF9vbkFycm93UmlnaHRQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHROZXh0RGF5LmVtaXQoMSk7XHJcbiAgfVxyXG4gIC8vaGlnaGxpZ2h0IHByZXZpb3VzIGVudHJ5XHJcbiAgcHJpdmF0ZSBfb25BcnJvd0xlZnRQcmVzcyhldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICB0aGlzLnRyaWdnZXJIaWdobGlnaHRQcmV2aW91c0RheS5lbWl0KDEpO1xyXG4gIH1cclxuICAvL2hpZ2hsaWdodCBmaXJzdCBlbnRyeSBvbiB0aGUgcGFnZVxyXG4gIHByaXZhdGUgX29uSG9tZVByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodEZpcnN0RGF5LmVtaXQoKTtcclxuICB9XHJcbiAgLy9oaWdobGlnaHQgbGFzdCBlbnRyeSBvbiB0aGUgcGFnZVxyXG4gIHByaXZhdGUgX29uRW5kUHJlc3MoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG4gICAgdGhpcy50cmlnZ2VySGlnaGxpZ2h0TGFzdERheS5lbWl0KCk7XHJcbiAgfVxyXG4gIC8vYWxvbmU6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG9uIHRoZSBuZXh0IHBhZ2VcclxuICAvL3dpdGggYWx0OiBoaWdobGlnaHQgc2FtZSBlbnRyeSBtdWx0aXBsZSBwYWdlcyBhZnRlciAoMTIgcGFnZXMpXHJcbiAgcHJpdmF0ZSBfb25QYWdlRG93blByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlOZXh0UGFnZS5lbWl0KGV2ZW50LmFsdEtleSk7XHJcbiAgfVxyXG4gIC8vYWxvbmU6IGhpZ2hsaWdodCBzYW1lIGVudHJ5IG9uIHRoZSBwcmV2aW91cyBwYWdlXHJcbiAgLy93aXRoIGFsdDogaGlnaGxpZ2h0IHNhbWUgZW50cnkgbXVsdGlwbGUgcGFnZXMgYmVmb3JlICgxMiBwYWdlcylcclxuICBwcml2YXRlIF9vblBhZ2VVcFByZXNzKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgIHRoaXMudHJpZ2dlckhpZ2hsaWdodFNhbWVEYXlQcmV2aW91c1BhZ2UuZW1pdChldmVudC5hbHRLZXkpO1xyXG4gIH1cclxuXHJcbiAgLy8hIHRlbXBsYXRlc1xyXG4gIHJlYWRvbmx5IGRheXNWaWV3SGVhZGVyVGVtcGxhdGUgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dD4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgcmVhZG9ubHkgZmxvYXRpbmdNb250aFRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJGbG9hdGluZ01vbnRoQ29udGV4dD4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgcmVhZG9ubHkgd2Vla2RheVRlbXBsYXRlID0gaW5wdXQucmVxdWlyZWQ8VGVtcGxhdGVSZWY8Q2FsZW5kYXJXZWVrZGF5Q29udGV4dD4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgcmVhZG9ubHkgZGF5VGVtcGxhdGUgPSBpbnB1dC5yZXF1aXJlZDxUZW1wbGF0ZVJlZjxDYWxlbmRhckRheUNvbnRleHQ+IHwgdW5kZWZpbmVkPigpO1xyXG5cclxuICAvLyEgdGVtcGxhdGUgY29udGV4dHNcclxuICByZWFkb25seSBkYXlzVmlld0hlYWRlckNvbnRleHQgPSBjb21wdXRlZDxDYWxlbmRhckRheXNWaWV3SGVhZGVyQ29udGV4dD4oKCkgPT4gKHtcclxuICAgIG5leHRNb250aDogKCkgPT4ge1xyXG4gICAgICB0aGlzLnRyaWdnZXJDaGFuZ2VNb250aC5lbWl0KHRoaXMuYWN0aXZlTW9udGgoKSArIDEpO1xyXG4gICAgfSxcclxuICAgIHByZXZNb250aDogKCkgPT4ge1xyXG4gICAgICB0aGlzLnRyaWdnZXJDaGFuZ2VNb250aC5lbWl0KHRoaXMuYWN0aXZlTW9udGgoKSAtIDEpO1xyXG4gICAgfSxcclxuICAgIG5leHRZZWFyOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZVllYXIuZW1pdCh0aGlzLmFjdGl2ZVllYXIoKSArIDEpO1xyXG4gICAgfSxcclxuICAgIHByZXZZZWFyOiAoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJpZ2dlckNoYW5nZVllYXIuZW1pdCh0aGlzLmFjdGl2ZVllYXIoKSAtIDEpO1xyXG4gICAgfSxcclxuICAgIG9wZW5ZZWFyc1ZpZXc6ICgpID0+IHtcclxuICAgICAgdGhpcy50cmlnZ2VyT3BlblllYXJzVmlldy5lbWl0KCk7XHJcbiAgICB9LFxyXG4gICAgb3Blbk1vbnRoc1ZpZXc6ICgpID0+IHtcclxuICAgICAgdGhpcy50cmlnZ2VyT3Blbk1vbnRoc1ZpZXcuZW1pdCgpO1xyXG4gICAgfSxcclxuICAgIGNhbkdvVG9OZXh0UGFnZTogIXRoaXMuaXNNb250aE91dE9mUmFuZ2UodGhpcy5hY3RpdmVNb250aCgpICsgMSksXHJcbiAgICBjYW5Hb1RvUHJldmlvdXNQYWdlOiAhdGhpcy5pc01vbnRoT3V0T2ZSYW5nZSh0aGlzLmFjdGl2ZU1vbnRoKCkgLSAxKSxcclxuICAgIHllYXI6IHRoaXMuYWN0aXZlWWVhcigpLFxyXG4gICAgbW9udGg6IHRoaXMuYWN0aXZlTW9udGgoKSxcclxuICAgICRpbXBsaWNpdDogbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyKCksIHRoaXMuYWN0aXZlTW9udGgoKSwgMSwgMCwgMCwgMCwgMCksXHJcbiAgfSkpO1xyXG5cclxuICByZWFkb25seSB3ZWVrZGF5Q29udGV4dCA9IGNvbXB1dGVkPChkYXlJbmRleDogbnVtYmVyKSA9PiBDYWxlbmRhcldlZWtkYXlDb250ZXh0PigoKSA9PiAoZGF5SW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKDE5NzAsIDAsIDQgKyBkYXlJbmRleCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkYXlJbmRleCxcclxuICAgICAgZGF0ZSxcclxuICAgICAgJGltcGxpY2l0OiBkYXRlLFxyXG4gICAgfTtcclxuICB9KTtcclxuXHJcbiAgcmVhZG9ubHkgZmxvYXRpbmdNb250aENvbnRleHQgPSBjb21wdXRlZDxDYWxlbmRhckZsb2F0aW5nTW9udGhDb250ZXh0PigoKSA9PiB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy5hY3RpdmVZZWFyKCksIHRoaXMuYWN0aXZlTW9udGgoKSwgMSwgMCwgMCwgMCwgMCk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBtb250aDogdGhpcy5hY3RpdmVNb250aCgpLFxyXG4gICAgICBkYXRlLFxyXG4gICAgICAkaW1wbGljaXQ6IGRhdGUsXHJcbiAgICB9O1xyXG4gIH0pO1xyXG5cclxuICByZWFkb25seSBkYXlDb250ZXh0ID0gY29tcHV0ZWQ8KGRheTogbnVtYmVyKSA9PiBDYWxlbmRhckRheUNvbnRleHQ+KCgpID0+IChkYXk6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuYWN0aXZlWWVhcigpLCB0aGlzLmFjdGl2ZU1vbnRoKCksIGRheSk7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB2YWx1ZTogZGF5LFxyXG4gICAgICBkYXRlLFxyXG4gICAgICAkaW1wbGljaXQ6IGRheSxcclxuICAgICAgc2VsZWN0OiAoZGF5T3JEYXRlOiBudW1iZXIgfCBEYXRlKSA9PiB7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyU2VsZWN0RGF5LmVtaXQoZGF5T3JEYXRlIGluc3RhbmNlb2YgRGF0ZSA/IGRheU9yRGF0ZS5nZXREYXRlKCkgOiBkYXlPckRhdGUpO1xyXG4gICAgICB9LFxyXG4gICAgfTtcclxuICB9KTtcclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiYXJkLWRheXMtdmlld1wiPlxyXG4gIEBpZiAoIXJlYWRPbmx5KCkpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX3RvcC10b29sYmFyXCI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICNkZWZhdWx0RGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZVxyXG4gICAgICAgIGxldC1jdXJyRGF0ZVxyXG4gICAgICAgIGxldC1uZXh0TW9udGg9XCJuZXh0TW9udGhcIlxyXG4gICAgICAgIGxldC1wcmV2TW9udGg9XCJwcmV2TW9udGhcIlxyXG4gICAgICAgIGxldC1jYW5Hb1RvTmV4dE1vbnRoPVwiY2FuR29Ub05leHRQYWdlXCJcclxuICAgICAgICBsZXQtY2FuR29Ub1ByZXZpb3VzTW9udGg9XCJjYW5Hb1RvUHJldmlvdXNQYWdlXCJcclxuICAgICAgICBsZXQtb3BlblllYXJzVmlldz1cIm9wZW5ZZWFyc1ZpZXdcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fY2FsZW5kYXItaGVhZGVyXCI+XHJcbiAgICAgICAgICA8YXJkLWJ1dHRvblxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9faGVhZGVyLWJ1dHRvblwiXHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJwaWxsXCJcclxuICAgICAgICAgICAgW3RhYkluZGV4XT1cInRhYkluZGV4KClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlblllYXJzVmlldygpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY3VyckRhdGUgfCBkYXRlOiAnTU1NIFlZWVknIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtZHJvcGRvd24tYXJyb3dcIj48L2Rpdj5cclxuICAgICAgICAgIDwvYXJkLWJ1dHRvbj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX2Fycm93c1wiPlxyXG4gICAgICAgICAgICA8YXJkLWljb24tYnV0dG9uXHJcbiAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgIGNvbG9yPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZNb250aCgpXCJcclxuICAgICAgICAgICAgICBbdGFiSW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFjYW5Hb1RvUHJldmlvdXNNb250aFwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8YXJkLWljb24+Y2hldnJvbl9sZWZ0PC9hcmQtaWNvbj5cclxuICAgICAgICAgICAgPC9hcmQtaWNvbi1idXR0b24+XHJcbiAgICAgICAgICAgIDxhcmQtaWNvbi1idXR0b25cclxuICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxyXG4gICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgY29sb3I9XCJub25lXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dE1vbnRoKClcIlxyXG4gICAgICAgICAgICAgIFt0YWJJbmRleF09XCJ0YWJJbmRleCgpXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWNhbkdvVG9OZXh0TW9udGhcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGFyZC1pY29uPmNoZXZyb25fcmlnaHQ8L2FyZC1pY29uPlxyXG4gICAgICAgICAgICA8L2FyZC1pY29uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGF5c1ZpZXdIZWFkZXJUZW1wbGF0ZSgpIHx8IGRlZmF1bHREYXlzVmlld0hlYWRlclRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZGF5c1ZpZXdIZWFkZXJDb250ZXh0KClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG4gIDxkaXYgY2xhc3M9XCJhcmQtY2FsZW5kYXJfX3dlZWtkYXlzXCI+XHJcbiAgICA8bmctdGVtcGxhdGVcclxuICAgICAgI2RlZmF1bHRXZWVrZGF5VGVtcGxhdGVcclxuICAgICAgbGV0LWRhdGVcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fd2Vla2RheVwiPnt7IGRhdGUgfCBkYXRlOiAnRUVFRUUnIH19PC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgQGZvciAod2Vla2RheUluZGV4IG9mIHdlZWtkYXlBcnJheSgpOyB0cmFjayB3ZWVrZGF5SW5kZXgpIHtcclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwid2Vla2RheVRlbXBsYXRlKCkgfHwgZGVmYXVsdFdlZWtkYXlUZW1wbGF0ZVwiXHJcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIndlZWtkYXlDb250ZXh0KCkod2Vla2RheUluZGV4KVwiXHJcbiAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgICNmb2N1c2FibGVFbGVtZW50XHJcbiAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZGF5cy1ncmlkXCJcclxuICAgIFtjbGFzcy5hcmQtcmVzZXJ2ZS10b3Atcm93XT1cInJlc2VydmVUb3BSb3coKVwiXHJcbiAgICBbdGFiaW5kZXhdPVwidGFiSW5kZXgoKVwiXHJcbiAgICBbYXJpYUxhYmVsXT1cImN1cnJlbnRBcmlhTGFiZWwoKVwiXHJcbiAgICAoZm9jdXMpPVwiZm9jdXNFdmVudC5lbWl0KCRldmVudClcIlxyXG4gICAgKGZvY3VzKT1cIm9uRGF5R3JpZEZvY3VzKClcIlxyXG4gICAgKGJsdXIpPVwiYmx1ckV2ZW50LmVtaXQoJGV2ZW50KVwiXHJcbiAgICAoYmx1cik9XCJvbkRheUdyaWRCbHVyKClcIlxyXG4gICAgKGNsaWNrKT1cIm9uRGF5R3JpZENsaWNrKClcIlxyXG4gICAgKGtleWRvd24pPVwib25NYWluR3JpZEtleWRvd24oJGV2ZW50KVwiXHJcbiAgICByb2xlPVwiZ3JpZFwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZmxvYXRpbmctbW9udGhcIj5cclxuICAgICAgPG5nLXRlbXBsYXRlXHJcbiAgICAgICAgI2RlZmF1bHRGbG9hdGluZ01vbnRoVGVtcGxhdGVcclxuICAgICAgICBsZXQtZGF0ZVxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZGF0ZSB8IGRhdGU6ICdMTEwnIHwgdXBwZXJjYXNlIH19XHJcbiAgICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmbG9hdGluZ01vbnRoVGVtcGxhdGUoKSB8fCBkZWZhdWx0RmxvYXRpbmdNb250aFRlbXBsYXRlXCJcclxuICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwiZmxvYXRpbmdNb250aENvbnRleHQoKVwiXHJcbiAgICAgID48L25nLXRlbXBsYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICBAZm9yICh3ZWVrIG9mIGFjdGl2ZUNhbGVuZGFyRGF0YSgpLmFycmF5OyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgQGZvciAoZGF5IG9mIHdlZWs7IHRyYWNrIGRheSA/IGRheSA6IGFjdGl2ZUNhbGVuZGFyRGF0YSgpLmxlYWRpbmdTcGFjZXMgLSAkaW5kZXgpIHtcclxuICAgICAgICBAaWYgKGRheSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZW50cnkgYXJkLWNhbGVuZGFyX19lbnRyeS1lbXB0eVwiPjwvZGl2PlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImFyZC1jYWxlbmRhcl9fZW50cnlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1oaWdobGlnaHRlZF09XCJoaWdobGlnaHRlZERheSgpID09PSBkYXkudmFsdWVcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1kaXNhYmxlZF09XCJkYXkuZGlzYWJsZWQgfHwgaXNEYXlGaWx0ZXJlZE91dCgpKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyX19lbnRyeS1zZWxlY3RlZF09XCJpc0RheVNlbGVjdGVkKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYXJkLWNhbGVuZGFyLXRvZGF5XT1cImlzRGF5VG9kYXkoZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbkNhbGVuZGFyRGF5Q2xpY2soZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChtb3VzZW1vdmUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJvbkNhbGVuZGFyRGF5TW91c2VvdmVyKGRheS52YWx1ZSlcIlxyXG4gICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWNhbGVuZGFyX19lbnRyeS1idXR0b25cIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWZvY3VzLW92ZXJsYXlcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJkLWJ1dHRvbi1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgICAgICAgI2RlZmF1bHREYXlUZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICBsZXQtZGF5XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGRheSB9fVxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJkYXlUZW1wbGF0ZSgpIHx8IGRlZmF1bHREYXlUZW1wbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJkYXlDb250ZXh0KCkoZGF5LnZhbHVlKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|