@ultraviolet/ui 2.0.0 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ActionBar/index.cjs +3 -3
- package/dist/components/ActionBar/index.js +3 -3
- package/dist/components/Alert/index.cjs +20 -20
- package/dist/components/Alert/index.js +21 -21
- package/dist/components/Avatar/constants.cjs +10 -10
- package/dist/components/Avatar/constants.d.ts +9 -9
- package/dist/components/Avatar/constants.js +10 -10
- package/dist/components/Avatar/index.cjs +10 -10
- package/dist/components/Avatar/index.js +10 -10
- package/dist/components/Badge/index.cjs +2 -2
- package/dist/components/Badge/index.js +2 -2
- package/dist/components/Banner/index.cjs +21 -21
- package/dist/components/Banner/index.js +21 -21
- package/dist/components/BarChart/Tooltip.cjs +4 -4
- package/dist/components/BarChart/Tooltip.js +4 -4
- package/dist/components/BarChart/index.cjs +4 -4
- package/dist/components/BarChart/index.js +4 -4
- package/dist/components/BarStack/index.cjs +5 -5
- package/dist/components/BarStack/index.js +5 -5
- package/dist/components/Breadcrumbs/components/Item.cjs +4 -4
- package/dist/components/Breadcrumbs/components/Item.js +4 -4
- package/dist/components/Bullet/index.cjs +15 -15
- package/dist/components/Bullet/index.d.ts +3 -3
- package/dist/components/Bullet/index.js +15 -15
- package/dist/components/Button/index.cjs +14 -14
- package/dist/components/Button/index.d.ts +2 -2
- package/dist/components/Button/index.js +14 -14
- package/dist/components/Card/index.cjs +8 -8
- package/dist/components/Card/index.js +8 -8
- package/dist/components/Carousel/index.cjs +13 -13
- package/dist/components/Carousel/index.js +13 -13
- package/dist/components/Checkbox/index.cjs +18 -18
- package/dist/components/Checkbox/index.js +18 -18
- package/dist/components/CheckboxGroup/index.cjs +10 -10
- package/dist/components/CheckboxGroup/index.js +10 -10
- package/dist/components/Chip/ChipIcon.cjs +3 -3
- package/dist/components/Chip/ChipIcon.js +3 -3
- package/dist/components/Chip/index.cjs +5 -5
- package/dist/components/Chip/index.d.ts +1 -1
- package/dist/components/Chip/index.js +5 -5
- package/dist/components/CopyButton/index.cjs +2 -2
- package/dist/components/CopyButton/index.js +2 -2
- package/dist/components/DateInput/Context.cjs +10 -10
- package/dist/components/DateInput/Context.js +10 -10
- package/dist/components/DateInput/components/CalendarContent.cjs +7 -7
- package/dist/components/DateInput/components/CalendarContent.js +7 -7
- package/dist/components/DateInput/components/CalendarDaily.cjs +18 -18
- package/dist/components/DateInput/components/CalendarDaily.js +18 -18
- package/dist/components/DateInput/components/CalendarMonthly.cjs +16 -16
- package/dist/components/DateInput/components/CalendarMonthly.js +16 -16
- package/dist/components/DateInput/components/Popup.cjs +2 -2
- package/dist/components/DateInput/components/Popup.js +2 -2
- package/dist/components/DateInput/index.cjs +30 -30
- package/dist/components/DateInput/index.js +30 -30
- package/dist/components/Dialog/components/Button.cjs +1 -1
- package/dist/components/Dialog/components/Button.js +1 -1
- package/dist/components/Dialog/components/CancelButton.cjs +1 -1
- package/dist/components/Dialog/components/CancelButton.js +1 -1
- package/dist/components/Dialog/components/Text.cjs +1 -1
- package/dist/components/Dialog/components/Text.js +1 -1
- package/dist/components/Dialog/index.cjs +4 -4
- package/dist/components/Dialog/index.d.ts +5 -5
- package/dist/components/Dialog/index.js +4 -4
- package/dist/components/Drawer/index.cjs +15 -15
- package/dist/components/Drawer/index.d.ts +2 -2
- package/dist/components/Drawer/index.js +15 -15
- package/dist/components/EmptyState/index.cjs +17 -17
- package/dist/components/EmptyState/index.d.ts +2 -2
- package/dist/components/EmptyState/index.js +17 -17
- package/dist/components/Expandable/index.cjs +8 -8
- package/dist/components/Expandable/index.js +8 -8
- package/dist/components/ExpandableCard/components/Title.cjs +1 -1
- package/dist/components/ExpandableCard/components/Title.js +1 -1
- package/dist/components/ExpandableCard/index.cjs +18 -18
- package/dist/components/ExpandableCard/index.js +18 -18
- package/dist/components/GlobalAlert/GlobalAlertLink.cjs +1 -1
- package/dist/components/GlobalAlert/GlobalAlertLink.js +1 -1
- package/dist/components/GlobalAlert/index.cjs +8 -8
- package/dist/components/GlobalAlert/index.js +8 -8
- package/dist/components/InfiniteScroll/index.cjs +2 -2
- package/dist/components/InfiniteScroll/index.js +2 -2
- package/dist/components/Label/index.cjs +8 -8
- package/dist/components/Label/index.js +8 -8
- package/dist/components/LineChart/CustomLegend.cjs +20 -20
- package/dist/components/LineChart/CustomLegend.js +20 -20
- package/dist/components/LineChart/Tooltip.cjs +4 -4
- package/dist/components/LineChart/Tooltip.js +4 -4
- package/dist/components/LineChart/index.cjs +8 -8
- package/dist/components/LineChart/index.js +8 -8
- package/dist/components/Link/index.cjs +7 -7
- package/dist/components/Link/index.d.ts +1 -1
- package/dist/components/Link/index.js +7 -7
- package/dist/components/List/Cell.cjs +2 -2
- package/dist/components/List/Cell.js +2 -2
- package/dist/components/List/HeaderCell.cjs +5 -5
- package/dist/components/List/HeaderCell.js +5 -5
- package/dist/components/List/HeaderRow.cjs +4 -4
- package/dist/components/List/HeaderRow.js +4 -4
- package/dist/components/List/ListContext.cjs +7 -7
- package/dist/components/List/ListContext.js +7 -7
- package/dist/components/List/Row.cjs +12 -12
- package/dist/components/List/Row.js +12 -12
- package/dist/components/List/SelectBar.cjs +1 -1
- package/dist/components/List/SelectBar.js +1 -1
- package/dist/components/List/SkeletonRows.cjs +3 -3
- package/dist/components/List/SkeletonRows.js +3 -3
- package/dist/components/List/index.cjs +6 -6
- package/dist/components/List/index.d.ts +7 -7
- package/dist/components/List/index.js +6 -6
- package/dist/components/Loader/index.cjs +13 -13
- package/dist/components/Loader/index.d.ts +3 -3
- package/dist/components/Loader/index.js +13 -13
- package/dist/components/Menu/MenuContent.cjs +13 -13
- package/dist/components/Menu/MenuContent.js +13 -13
- package/dist/components/Menu/MenuProvider.cjs +5 -5
- package/dist/components/Menu/MenuProvider.js +5 -5
- package/dist/components/Menu/components/Group.cjs +3 -3
- package/dist/components/Menu/components/Group.js +3 -3
- package/dist/components/Menu/components/Item.cjs +11 -11
- package/dist/components/Menu/components/Item.js +11 -11
- package/dist/components/Menu/constants.cjs +2 -2
- package/dist/components/Menu/constants.d.ts +2 -2
- package/dist/components/Menu/constants.js +2 -2
- package/dist/components/Menu/index.cjs +5 -5
- package/dist/components/Menu/index.d.ts +6 -6
- package/dist/components/Menu/index.js +5 -5
- package/dist/components/Meter/index.cjs +6 -6
- package/dist/components/Meter/index.js +6 -6
- package/dist/components/Modal/ModalContent.cjs +7 -7
- package/dist/components/Modal/ModalContent.js +7 -7
- package/dist/components/Modal/ModalProvider.cjs +2 -2
- package/dist/components/Modal/ModalProvider.js +2 -2
- package/dist/components/Modal/components/Dialog.cjs +8 -8
- package/dist/components/Modal/components/Dialog.js +8 -8
- package/dist/components/Modal/components/Disclosure.cjs +6 -6
- package/dist/components/Modal/components/Disclosure.js +6 -6
- package/dist/components/Modal/index.cjs +3 -3
- package/dist/components/Modal/index.js +3 -3
- package/dist/components/Notice/index.cjs +3 -3
- package/dist/components/Notice/index.js +3 -3
- package/dist/components/Notification/index.cjs +6 -6
- package/dist/components/Notification/index.js +6 -6
- package/dist/components/NumberInput/index.cjs +21 -21
- package/dist/components/NumberInput/index.d.ts +2 -2
- package/dist/components/NumberInput/index.js +21 -21
- package/dist/components/Pagination/PaginationButtons.cjs +8 -8
- package/dist/components/Pagination/PaginationButtons.js +8 -8
- package/dist/components/Pagination/PerPage.cjs +13 -13
- package/dist/components/Pagination/PerPage.js +13 -13
- package/dist/components/Pagination/index.cjs +2 -2
- package/dist/components/Pagination/index.js +2 -2
- package/dist/components/PasswordCheck/index.cjs +3 -3
- package/dist/components/PasswordCheck/index.js +3 -3
- package/dist/components/PieChart/Legends.cjs +13 -13
- package/dist/components/PieChart/Legends.js +13 -13
- package/dist/components/PieChart/Tooltip.cjs +7 -7
- package/dist/components/PieChart/Tooltip.js +7 -7
- package/dist/components/PieChart/index.cjs +8 -8
- package/dist/components/PieChart/index.js +8 -8
- package/dist/components/Popover/index.cjs +9 -9
- package/dist/components/Popover/index.d.ts +2 -2
- package/dist/components/Popover/index.js +9 -9
- package/dist/components/Popup/helpers.cjs +21 -21
- package/dist/components/Popup/helpers.d.ts +2 -2
- package/dist/components/Popup/helpers.js +21 -21
- package/dist/components/Popup/index.cjs +9 -9
- package/dist/components/Popup/index.js +9 -9
- package/dist/components/ProgressBar/index.cjs +9 -9
- package/dist/components/ProgressBar/index.js +9 -9
- package/dist/components/Radio/index.cjs +12 -12
- package/dist/components/Radio/index.js +12 -12
- package/dist/components/RadioGroup/index.cjs +9 -9
- package/dist/components/RadioGroup/index.js +9 -9
- package/dist/components/Row/index.cjs +2 -2
- package/dist/components/Row/index.js +2 -2
- package/dist/components/SearchInput/Key.cjs +7 -7
- package/dist/components/SearchInput/Key.d.ts +5 -5
- package/dist/components/SearchInput/Key.js +7 -7
- package/dist/components/SearchInput/KeyGroup.cjs +2 -2
- package/dist/components/SearchInput/KeyGroup.js +2 -2
- package/dist/components/SearchInput/index.cjs +5 -5
- package/dist/components/SearchInput/index.js +5 -5
- package/dist/components/SelectInput/Dropdown.cjs +39 -39
- package/dist/components/SelectInput/Dropdown.js +39 -39
- package/dist/components/SelectInput/DropdownOption.cjs +18 -18
- package/dist/components/SelectInput/DropdownOption.js +18 -18
- package/dist/components/SelectInput/SearchBarDropdown.cjs +6 -6
- package/dist/components/SelectInput/SearchBarDropdown.js +6 -6
- package/dist/components/SelectInput/SelectBar.cjs +32 -32
- package/dist/components/SelectInput/SelectBar.js +32 -32
- package/dist/components/SelectInput/SelectInputProvider.cjs +42 -42
- package/dist/components/SelectInput/SelectInputProvider.js +42 -42
- package/dist/components/SelectInput/index.cjs +7 -7
- package/dist/components/SelectInput/index.js +7 -7
- package/dist/components/SelectInput/types.cjs +3 -3
- package/dist/components/SelectInput/types.d.ts +2 -2
- package/dist/components/SelectInput/types.js +3 -3
- package/dist/components/SelectableCard/index.cjs +18 -18
- package/dist/components/SelectableCard/index.js +18 -18
- package/dist/components/SelectableCardGroup/index.cjs +7 -7
- package/dist/components/SelectableCardGroup/index.js +7 -7
- package/dist/components/SelectableCardOptionGroup/Provider.cjs +4 -4
- package/dist/components/SelectableCardOptionGroup/Provider.js +4 -4
- package/dist/components/SelectableCardOptionGroup/components/Image.cjs +2 -2
- package/dist/components/SelectableCardOptionGroup/components/Image.js +2 -2
- package/dist/components/SelectableCardOptionGroup/components/Option.cjs +13 -13
- package/dist/components/SelectableCardOptionGroup/components/Option.d.ts +1 -1
- package/dist/components/SelectableCardOptionGroup/components/Option.js +13 -13
- package/dist/components/SelectableCardOptionGroup/index.cjs +6 -6
- package/dist/components/SelectableCardOptionGroup/index.js +6 -6
- package/dist/components/Separator/index.cjs +6 -6
- package/dist/components/Separator/index.js +6 -6
- package/dist/components/Skeleton/index.cjs +4 -4
- package/dist/components/Skeleton/index.js +4 -4
- package/dist/components/Slider/components/DoubleSlider.cjs +22 -22
- package/dist/components/Slider/components/DoubleSlider.js +22 -22
- package/dist/components/Slider/components/Options.cjs +3 -3
- package/dist/components/Slider/components/Options.js +3 -3
- package/dist/components/Slider/components/SingleSlider.cjs +13 -13
- package/dist/components/Slider/components/SingleSlider.js +13 -13
- package/dist/components/Slider/index.cjs +7 -7
- package/dist/components/Slider/index.js +7 -7
- package/dist/components/Snippet/index.cjs +14 -14
- package/dist/components/Snippet/index.js +14 -14
- package/dist/components/Status/index.cjs +4 -4
- package/dist/components/Status/index.js +4 -4
- package/dist/components/StepList/index.cjs +5 -5
- package/dist/components/StepList/index.js +5 -5
- package/dist/components/Stepper/Step.cjs +10 -10
- package/dist/components/Stepper/Step.js +10 -10
- package/dist/components/Stepper/StepperProvider.cjs +10 -10
- package/dist/components/Stepper/StepperProvider.js +10 -10
- package/dist/components/Stepper/index.cjs +7 -7
- package/dist/components/Stepper/index.js +7 -7
- package/dist/components/SwitchButton/FocusOverlay.cjs +3 -3
- package/dist/components/SwitchButton/FocusOverlay.js +3 -3
- package/dist/components/SwitchButton/Option.cjs +4 -4
- package/dist/components/SwitchButton/Option.js +4 -4
- package/dist/components/SwitchButton/index.cjs +12 -12
- package/dist/components/SwitchButton/index.js +12 -12
- package/dist/components/Table/Cell.cjs +2 -2
- package/dist/components/Table/Cell.js +2 -2
- package/dist/components/Table/HeaderCell.cjs +6 -6
- package/dist/components/Table/HeaderCell.js +6 -6
- package/dist/components/Table/HeaderRow.cjs +2 -2
- package/dist/components/Table/HeaderRow.js +2 -2
- package/dist/components/Table/Row.cjs +9 -9
- package/dist/components/Table/Row.js +9 -9
- package/dist/components/Table/SelectBar.cjs +1 -1
- package/dist/components/Table/SelectBar.js +1 -1
- package/dist/components/Table/SkeletonRows.cjs +3 -3
- package/dist/components/Table/SkeletonRows.js +3 -3
- package/dist/components/Table/TableContext.cjs +3 -3
- package/dist/components/Table/TableContext.js +3 -3
- package/dist/components/Table/index.cjs +9 -9
- package/dist/components/Table/index.d.ts +12 -12
- package/dist/components/Table/index.js +9 -9
- package/dist/components/Tabs/Tab.cjs +10 -10
- package/dist/components/Tabs/Tab.js +10 -10
- package/dist/components/Tabs/TabMenu.cjs +8 -8
- package/dist/components/Tabs/TabMenu.js +8 -8
- package/dist/components/Tabs/TabMenuItem.cjs +3 -3
- package/dist/components/Tabs/TabMenuItem.js +3 -3
- package/dist/components/Tabs/index.cjs +7 -7
- package/dist/components/Tabs/index.js +7 -7
- package/dist/components/Tag/index.cjs +10 -10
- package/dist/components/Tag/index.js +10 -10
- package/dist/components/TagInput/index.cjs +14 -14
- package/dist/components/TagInput/index.js +14 -14
- package/dist/components/TagList/index.cjs +16 -16
- package/dist/components/TagList/index.js +16 -16
- package/dist/components/Text/index.cjs +2 -2
- package/dist/components/Text/index.js +2 -2
- package/dist/components/TextArea/index.cjs +13 -13
- package/dist/components/TextArea/index.js +13 -13
- package/dist/components/TextInput/index.cjs +30 -30
- package/dist/components/TextInput/index.d.ts +2 -2
- package/dist/components/TextInput/index.js +30 -30
- package/dist/components/TimeInput/constants.cjs +2 -2
- package/dist/components/TimeInput/constants.d.ts +2 -2
- package/dist/components/TimeInput/constants.js +2 -2
- package/dist/components/TimeInput/index.cjs +18 -18
- package/dist/components/TimeInput/index.js +19 -19
- package/dist/components/Toaster/components/Button.cjs +1 -1
- package/dist/components/Toaster/components/Button.js +1 -1
- package/dist/components/Toaster/index.cjs +4 -4
- package/dist/components/Toaster/index.js +4 -4
- package/dist/components/Toggle/index.cjs +11 -11
- package/dist/components/Toggle/index.js +11 -11
- package/dist/components/ToggleGroup/index.cjs +9 -9
- package/dist/components/ToggleGroup/index.js +9 -9
- package/dist/components/Tooltip/index.cjs +2 -2
- package/dist/components/Tooltip/index.js +2 -2
- package/dist/components/UnitInput/index.cjs +15 -15
- package/dist/components/UnitInput/index.d.ts +1 -1
- package/dist/components/UnitInput/index.js +15 -15
- package/dist/components/VerificationCode/index.cjs +8 -8
- package/dist/components/VerificationCode/index.js +8 -8
- package/dist/components/index.d.ts +3 -3
- package/dist/helpers/nivoTheme.cjs +2 -2
- package/dist/helpers/nivoTheme.d.ts +2 -2
- package/dist/helpers/nivoTheme.js +2 -2
- package/dist/index.cjs +112 -112
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/theme/index.d.ts +12 -12
- package/dist/utils/index.d.ts +3 -3
- package/package.json +4 -4
|
@@ -44,7 +44,7 @@ const StyledPopup = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "pro
|
|
|
44
44
|
positions,
|
|
45
45
|
reverseAnimation,
|
|
46
46
|
animationDuration
|
|
47
|
-
}) => /* @__PURE__ */ css(animationDuration, "ms ", !reverseAnimation ? animation(positions) : exitAnimation(positions), " forwards;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyledPopup;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RjRFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgcG9wdXBSZWY6IGlubmVyUG9wdXBSZWYsXG4gICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldDogcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3Bvc2l0aW9uc10pXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgb25CbHVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICBvbkZvY3VzPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgIG9uS2V5RG93bj8uKGV2ZW50KVxuICAgICAgICAgIH19XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC13aWR0aD17Y29udGFpbmVyRnVsbFdpZHRofVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9e2FyaWFIYXNQb3B1cH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"), ';}&[data-has-arrow="true"]{&::after{content:" ";position:absolute;top:', ({
|
|
47
|
+
}) => /* @__PURE__ */ css(animationDuration, "ms ", !reverseAnimation ? animation(positions) : exitAnimation(positions), " forwards;" + (process.env.NODE_ENV === "production" ? "" : ";label:StyledPopup;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RjRFIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0OiBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3Bvc2l0aW9uc10pXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9e2NvbnRhaW5lckZ1bGxXaWR0aH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBvbktleURvd24/LihldmVudClcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0ZWQ9e2FuaW1hdGlvbkR1cmF0aW9uID4gMCAmJiAhbWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICAgICAgICBkYXRhLXZpc2libGUtaW4tZG9tPXtcbiAgICAgICAgICAgICAgICAgICFkeW5hbWljRG9tUmVuZGVyaW5nID8gdmlzaWJsZUluRG9tIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBpc0RpYWxvZz17cm9sZSA9PT0gJ2RpYWxvZyd9XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIHJlZj17aW5uZXJQb3B1cFJlZn1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIHJvbGU9e3JvbGV9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"), ';}&[data-has-arrow="true"]{&::after{content:" ";position:absolute;top:', ({
|
|
48
48
|
positions
|
|
49
49
|
}) => positions.arrowTop, "px;left:", ({
|
|
50
50
|
positions
|
|
@@ -54,7 +54,7 @@ const StyledPopup = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "pro
|
|
|
54
54
|
positions
|
|
55
55
|
}) => positions.rotate, "deg);margin-left:-", DEFAULT_ARROW_WIDTH, "px;border-width:", DEFAULT_ARROW_WIDTH, "px;border-style:solid;border-color:", ({
|
|
56
56
|
theme
|
|
57
|
-
}) => theme.colors.neutral.backgroundStronger, ' transparent transparent transparent;pointer-events:none;}}&[data-visible-in-dom="false"]{display:none;}' + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRW9CIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgcG9wdXBSZWY6IGlubmVyUG9wdXBSZWYsXG4gICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldDogcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3Bvc2l0aW9uc10pXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgb25CbHVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICBvbkZvY3VzPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgIG9uS2V5RG93bj8uKGV2ZW50KVxuICAgICAgICAgIH19XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC13aWR0aD17Y29udGFpbmVyRnVsbFdpZHRofVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9e2FyaWFIYXNQb3B1cH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"));
|
|
57
|
+
}) => theme.colors.neutral.backgroundStronger, ' transparent transparent transparent;pointer-events:none;}}&[data-visible-in-dom="false"]{display:none;}' + (process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRW9CIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0OiBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3Bvc2l0aW9uc10pXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9e2NvbnRhaW5lckZ1bGxXaWR0aH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBvbktleURvd24/LihldmVudClcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0ZWQ9e2FuaW1hdGlvbkR1cmF0aW9uID4gMCAmJiAhbWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICAgICAgICBkYXRhLXZpc2libGUtaW4tZG9tPXtcbiAgICAgICAgICAgICAgICAgICFkeW5hbWljRG9tUmVuZGVyaW5nID8gdmlzaWJsZUluRG9tIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBpc0RpYWxvZz17cm9sZSA9PT0gJ2RpYWxvZyd9XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIHJlZj17aW5uZXJQb3B1cFJlZn1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIHJvbGU9e3JvbGV9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */"));
|
|
58
58
|
const StyledChildrenContainer = /* @__PURE__ */ _styled("div", process.env.NODE_ENV === "production" ? {
|
|
59
59
|
target: "e4h1g860"
|
|
60
60
|
} : {
|
|
@@ -65,7 +65,7 @@ const StyledChildrenContainer = /* @__PURE__ */ _styled("div", process.env.NODE_
|
|
|
65
65
|
styles: 'display:inherit;&[data-container-full-height="true"]{height:100%;}&[data-container-full-width="true"]{width:100%;}'
|
|
66
66
|
} : {
|
|
67
67
|
name: "1e1nei5",
|
|
68
|
-
styles: 'display:inherit;&[data-container-full-height="true"]{height:100%;}&[data-container-full-width="true"]{width:100%;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvSGlEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG4gIGNvbXB1dGVQb3NpdGlvbnMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGNoaWxkcmVuUmVmLFxuICAgICAgICAgICAgcGxhY2VtZW50LFxuICAgICAgICAgICAgcG9wdXBSZWY6IGlubmVyUG9wdXBSZWYsXG4gICAgICAgICAgICBwb3B1cFBvcnRhbFRhcmdldDogcG9wdXBQb3J0YWxUYXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3Bvc2l0aW9uc10pXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgb25CbHVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICBvbkZvY3VzPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgICBvbktleURvd249e2V2ZW50ID0+IHtcbiAgICAgICAgICAgIG9uS2V5RG93bj8uKGV2ZW50KVxuICAgICAgICAgIH19XG4gICAgICAgICAgZGF0YS1jb250YWluZXItZnVsbC13aWR0aD17Y29udGFpbmVyRnVsbFdpZHRofVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGFyaWEtaGFzcG9wdXA9e2FyaWFIYXNQb3B1cH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgcmVmPXtpbm5lclBvcHVwUmVmfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIG1heFdpZHRoPXttYXhXaWR0aH1cbiAgICAgICAgICAgICAgICBtYXhIZWlnaHQ9e21heEhlaWdodH1cbiAgICAgICAgICAgICAgICByb2xlPXtyb2xlfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkfVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtzdG9wQ2xpY2tQcm9wYWdhdGlvbn1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJFbnRlcj17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcH1cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJMZWF2ZT17IWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgaXNEaWFsb2c9e3JvbGUgPT09ICdkaWFsb2cnfVxuICAgICAgICAgICAgICAgIGRhdGEtdmlzaWJsZS1pbi1kb209e1xuICAgICAgICAgICAgICAgICAgIWR5bmFtaWNEb21SZW5kZXJpbmcgPyB2aXNpYmxlSW5Eb20gOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZGF0YS1hbmltYXRlZD17YW5pbWF0aW9uRHVyYXRpb24gPiAwICYmICFtYXhIZWlnaHR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */',
|
|
68
|
+
styles: 'display:inherit;&[data-container-full-height="true"]{height:100%;}&[data-container-full-width="true"]{width:100%;}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvSGlEIiwiZmlsZSI6Ii9ob21lL3J1bm5lci93b3JrL3VsdHJhdmlvbGV0L3VsdHJhdmlvbGV0L3BhY2thZ2VzL3VpL3NyYy9jb21wb25lbnRzL1BvcHVwL2luZGV4LnRzeCIsInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCdcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJ1xuaW1wb3J0IHR5cGUge1xuICBIVE1MQXR0cmlidXRlcyxcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBSZWFjdE5vZGUsXG4gIFJlZixcbiAgUmVmT2JqZWN0LFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7XG4gIGZvcndhcmRSZWYsXG4gIHN0YXJ0VHJhbnNpdGlvbixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUVmZmVjdCxcbiAgdXNlSWQsXG4gIHVzZUltcGVyYXRpdmVIYW5kbGUsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgY3JlYXRlUG9ydGFsIH0gZnJvbSAncmVhY3QtZG9tJ1xuaW1wb3J0IHsgaXNDbGllbnRTaWRlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pc0NsaWVudFNpZGUnXG5pbXBvcnQgdHlwZSB7IFBvc2l0aW9uc1R5cGUgfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgeyBhbmltYXRpb24sIGV4aXRBbmltYXRpb24gfSBmcm9tICcuL2FuaW1hdGlvbnMnXG5pbXBvcnQgdHlwZSB7IFBvcHVwQWxpZ24sIFBvcHVwUGxhY2VtZW50IH0gZnJvbSAnLi9oZWxwZXJzJ1xuaW1wb3J0IHtcbiAgY29tcHV0ZVBvc2l0aW9ucyxcbiAgREVGQVVMVF9BUlJPV19XSURUSCxcbiAgREVGQVVMVF9QT1NJVElPTlMsXG59IGZyb20gJy4vaGVscGVycydcblxuY29uc3QgREVGQVVMVF9BTklNQVRJT05fRFVSQVRJT04gPSAyMzAgLy8gaW4gbXNcbmNvbnN0IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04gPSAyMDAgLy8gaW4gbXNcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9XG5cbnR5cGUgU3R5bGVkUG9wdXBQcm9wcyA9IHtcbiAgbWF4V2lkdGg6IG51bWJlciB8IHN0cmluZ1xuICBwb3NpdGlvbnM6IFBvc2l0aW9uc1R5cGVcbiAgcmV2ZXJzZUFuaW1hdGlvbjogYm9vbGVhblxuICBtYXhIZWlnaHQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgYW5pbWF0aW9uRHVyYXRpb24/OiBudW1iZXJcbiAgaXNEaWFsb2c6IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBUaGlzIGV2ZW50IGhhbmRsZSBhbGxvdyB1cyB0byBub3QgYnViYmxlIHRoZSBldmVudCB0byBkb2N1bWVudC5ib2R5IGxpa2UgdGhpcyByZWFjdC1zZWxlY3Qgd29ya3MgZmluZVxuICovXG5jb25zdCBzdG9wQ2xpY2tQcm9wYWdhdGlvbjogTW91c2VFdmVudEhhbmRsZXIgPSBldmVudCA9PiB7XG4gIGV2ZW50Lm5hdGl2ZUV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpXG59XG5cbmNvbnN0IFN0eWxlZFBvcHVwID0gc3R5bGVkKCdkaXYnLCB7XG4gIHNob3VsZEZvcndhcmRQcm9wOiBwcm9wID0+XG4gICAgIVtcbiAgICAgICdtYXhXaWR0aCcsXG4gICAgICAncG9zaXRpb25zJyxcbiAgICAgICdyZXZlcnNlQW5pbWF0aW9uJyxcbiAgICAgICdtYXhIZWlnaHQnLFxuICAgICAgJ2FuaW1hdGlvbkR1cmF0aW9uJyxcbiAgICAgICdpc0RpYWxvZycsXG4gICAgXS5pbmNsdWRlcyhwcm9wKSxcbn0pPFN0eWxlZFBvcHVwUHJvcHM+YFxuICBiYWNrZ3JvdW5kOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLmJhY2tncm91bmRTdHJvbmdlcn07XG4gIGNvbG9yOiAkeyh7IHRoZW1lIH0pID0+IHRoZW1lLmNvbG9ycy5uZXV0cmFsLnRleHRTdHJvbmdlcn07XG4gIGJvcmRlci1yYWRpdXM6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUucmFkaWkuZGVmYXVsdH07XG4gIHBhZGRpbmc6ICR7KHsgdGhlbWUgfSkgPT4gYCR7dGhlbWUuc3BhY2VbJzAuNSddfSAke3RoZW1lLnNwYWNlWycxJ119YH07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBtYXgtd2lkdGg6ICR7KHsgbWF4V2lkdGggfSkgPT5cbiAgICB0eXBlb2YgbWF4V2lkdGggPT09ICdudW1iZXInID8gYCR7bWF4V2lkdGh9cHhgIDogbWF4V2lkdGh9O1xuICBtYXgtaGVpZ2h0OiAkeyh7IG1heEhlaWdodCB9KSA9PlxuICAgIHR5cGVvZiBtYXhIZWlnaHQgPT09ICdudW1iZXInID8gYCR7bWF4SGVpZ2h0fXB4YCA6IG1heEhlaWdodH07XG4gIG92ZXJmbG93OiAkeyh7IG1heEhlaWdodCB9KSA9PiAobWF4SGVpZ2h0ID8gJ2F1dG8nIDogdW5kZWZpbmVkKX07XG4gIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGZvbnQtc2l6ZTogMC44cmVtO1xuICBpbnNldDogMCBhdXRvIGF1dG8gMDtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICB6LWluZGV4OiAxO1xuICB0cmFuc2Zvcm06ICR7KHsgcG9zaXRpb25zIH0pID0+IHBvc2l0aW9ucy5wb3B1cFBvc2l0aW9ufTtcblxuICAmW2RhdGEtYW5pbWF0ZWQ9XCJ0cnVlXCJdIHtcbiAgICBhbmltYXRpb246ICR7KHsgcG9zaXRpb25zLCByZXZlcnNlQW5pbWF0aW9uLCBhbmltYXRpb25EdXJhdGlvbiB9KSA9PiBjc3NgXG4gICAgICAke2FuaW1hdGlvbkR1cmF0aW9ufW1zICR7XG4gICAgICAgICFyZXZlcnNlQW5pbWF0aW9uID8gYW5pbWF0aW9uKHBvc2l0aW9ucykgOiBleGl0QW5pbWF0aW9uKHBvc2l0aW9ucylcbiAgICAgIH0gZm9yd2FyZHNcbiAgICBgfTtcbiAgfVxuXG4gICZbZGF0YS1oYXMtYXJyb3c9XCJ0cnVlXCJdIHtcbiAgICAmOjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VG9wfXB4O1xuICAgICAgbGVmdDogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93TGVmdH1weDtcbiAgICAgIHRyYW5zZm9ybTogJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLmFycm93VHJhbnNmb3JtfVxuICAgICAgICByb3RhdGUoJHsoeyBwb3NpdGlvbnMgfSkgPT4gcG9zaXRpb25zLnJvdGF0ZX1kZWcpO1xuICAgICAgbWFyZ2luLWxlZnQ6IC0ke0RFRkFVTFRfQVJST1dfV0lEVEh9cHg7XG4gICAgICBib3JkZXItd2lkdGg6ICR7REVGQVVMVF9BUlJPV19XSURUSH1weDtcbiAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgICBib3JkZXItY29sb3I6ICR7KHsgdGhlbWUgfSkgPT4gdGhlbWUuY29sb3JzLm5ldXRyYWwuYmFja2dyb3VuZFN0cm9uZ2VyfVxuICAgICAgICB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICZbZGF0YS12aXNpYmxlLWluLWRvbT1cImZhbHNlXCJdIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRDaGlsZHJlbkNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGluaGVyaXQ7XG5cblxuICAmW2RhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PVwidHJ1ZVwiXSB7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICB9XG5cbiAgJltkYXRhLWNvbnRhaW5lci1mdWxsLXdpZHRoPVwidHJ1ZVwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cbmBcblxudHlwZSBQb3B1cFByb3BzID0ge1xuICAvKipcbiAgICogSWQgaXMgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHNldC4gSXQgaXMgdXNlZCBmb3IgYXNzb2NpYXRpbmcgcG9wdXAgd3JhcHBlciB3aXRoIHBvcHVwIHBvcnRhbC5cbiAgICovXG4gIGlkPzogc3RyaW5nXG4gIGNoaWxkcmVuOlxuICAgIHwgUmVhY3ROb2RlXG4gICAgfCAoKHJlbmRlclByb3BzOiB7XG4gICAgICAgIGNsYXNzTmFtZT86IHN0cmluZ1xuICAgICAgICBvbkJsdXI6ICgpID0+IHZvaWRcbiAgICAgICAgb25Gb2N1czogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJFbnRlcjogKCkgPT4gdm9pZFxuICAgICAgICBvblBvaW50ZXJMZWF2ZTogKCkgPT4gdm9pZFxuICAgICAgICByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gICAgICB9KSA9PiBSZWFjdE5vZGUpXG4gIG1heFdpZHRoPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKlxuICAgKiBgYXV0b2AgcGxhY2VtZW50IHdpbGwgY2hhbmdlIHRoZSBwb3NpdGlvbiBvZiB0aGUgcG9wdXAgaWYgaXQgZG9lc24ndCBmaXQgaW4gdGhlIHZpZXdwb3J0LlxuICAgKi9cbiAgcGxhY2VtZW50PzogUG9wdXBQbGFjZW1lbnRcbiAgLyoqXG4gICAqIEFsaWduIHRoZSBwb3B1cCB0byB0aGUgc3RhcnQgb3IgY2VudGVyIG9mIHRoZSBjaGlsZHJlbi5cbiAgICovXG4gIGFsaWduPzogUG9wdXBBbGlnblxuICAvKipcbiAgICogQ29udGVudCBvZiB0aGUgcG9wdXAsIHByZWZlcmFibHkgdGV4dCBpbnNpZGUuXG4gICAqL1xuICB0ZXh0PzogUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYHdpZHRoOiAxMDAlYCB0byB0aGUgcG9wdXAgY29udGFpbmVyLlxuICAgKi9cbiAgY29udGFpbmVyRnVsbFdpZHRoPzogYm9vbGVhblxuICAvKipcbiAgICogSXQgd2lsbCBhZGQgYGhlaWdodDogMTAwJWAgdG8gdGhlIHBvcHVwIGNvbnRhaW5lci5cbiAgICovXG4gIGNvbnRhaW5lckZ1bGxIZWlnaHQ/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJdCB3aWxsIGZvcmNlIGRpc3BsYXkgcG9wdXAuIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3UgbmVlZCB0byBhbHdheXMgZGlzcGxheSB0aGUgcG9wdXAgd2l0aG91dCBob3ZlciBuZWVkZWQuXG4gICAqL1xuICB2aXNpYmxlPzogYm9vbGVhblxuICBpbm5lclJlZj86IFJlZjxIVE1MRGl2RWxlbWVudCB8IG51bGw+XG4gIHJvbGU/OiBzdHJpbmdcbiAgJ2RhdGEtdGVzdGlkJz86IHN0cmluZ1xuICBoYXNBcnJvdz86IGJvb2xlYW5cbiAgb25DbG9zZT86ICgpID0+IHZvaWRcbiAgdGFiSW5kZXg/OiBudW1iZXJcbiAgb25LZXlEb3duPzogS2V5Ym9hcmRFdmVudEhhbmRsZXJcbiAgJ2FyaWEtaGFzcG9wdXAnPzogSFRNTEF0dHJpYnV0ZXM8SFRNTERpdkVsZW1lbnQ+WydhcmlhLWhhc3BvcHVwJ11cbiAgaGlkZU9uQ2xpY2tPdXRzaWRlPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgeW91IHNldCBkZWJvdW5jZVRpbWUgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIG5vdCBkZWJvdW5jZSB0aGUgaG92ZXIgZXZlbnQgYW5kIHdpbGwgYmUgZGlzcGxheWVkIGluc3RhbnRseS5cbiAgICogSWYgc2V0IHRvIDAgaXQgd2lsbCBkaXNhYmxlIGRlYm91bmNlLlxuICAgKi9cbiAgZGVib3VuY2VEZWxheT86IG51bWJlclxuICAvKipcbiAgICogSWYgeW91IHNldCBhIG1heCBoZWlnaHQga2VlcCBpbiBtaW5kIHRoYXQgdGhlIGFuaW1hdGlvbiBpcyBkaXNhYmxlZCwgb3IgaXQgd2lsbCBub3Qgd29yayBwcm9wZXJseSBvbiBzb21lIGJyb3dzZXJzLlxuICAgKi9cbiAgbWF4SGVpZ2h0Pzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKlxuICAgKiBXaWxsIHJlbW92ZSB0aGUgYW5pbWF0aW9uIG9uIHRoZSBwb3B1cCBpZiBzZXQgdG8gZmFsc2UuXG4gICAqL1xuICBkaXNhYmxlQW5pbWF0aW9uPzogYm9vbGVhblxuICAvKipcbiAgICogQnkgZGVmYXVsdCwgdGhlIHBvcnRhbCB0YXJnZXQgaXMgY2hpbGRyZW4gY29udGFpbmVyIG9yIGRvY3VtZW50LmJvZHkgaWYgY2hpbGRyZW4gaXMgYSBmdW5jdGlvbi4gWW91IGNhbiBvdmVycmlkZSB0aGlzXG4gICAqIGJlaGF2aW9yIGJ5IHNldHRpbmcgYSBwb3J0YWxUYXJnZXQgcHJvcC5cbiAgICovXG4gIHBvcnRhbFRhcmdldD86IEhUTUxFbGVtZW50XG4gIC8qKlxuICAgKiBJZiB5b3Ugc2V0IHRoaXMgdG8gdHJ1ZSwgdGhlIHBvcHVwIHdpbGwgYmUgcmVuZGVyZWQgaW4gdGhlIERPTSBvbmx5IHdoZW4gaXQgaXMgdmlzaWJsZS5cbiAgICogV2hlbiBzZXQgdG8gZmFsc2UsIHRoZSBwb3B1cCB3aWxsIGFsd2F5cyBiZSByZW5kZXJlZCBpbiB0aGUgRE9NLiBCeSBkZWZhdWx0IHRoaXMgdmFsdWUgaXMgc2V0IHRvIGB0cnVlYCwgaWYgZm9yIHNvbWVcbiAgICogcmVhc29uIHlvdSBuZWVkIHRvIGRpc2FibGUgaXQsIHlvdSBjYW4gc2V0IGl0IHRvIGBmYWxzZWAuXG4gICAqL1xuICBkeW5hbWljRG9tUmVuZGVyaW5nPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBleHBlcmltZW50YWwgVGhpcyBjb21wb25lbnQgaXMgZXhwZXJpbWVudGFsIGFuZCBtYXkgYmUgc3ViamVjdCB0byBicmVha2luZyBjaGFuZ2VzIGluIHRoZSBmdXR1cmUuXG4gKi9cbmV4cG9ydCBjb25zdCBQb3B1cCA9IGZvcndhcmRSZWYoXG4gIChcbiAgICB7XG4gICAgICBjaGlsZHJlbixcbiAgICAgIHRleHQgPSAnJyxcbiAgICAgIHBsYWNlbWVudCA9ICdhdXRvJyxcbiAgICAgIGFsaWduID0gJ2NlbnRlcicsXG4gICAgICBpZCxcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIGNvbnRhaW5lckZ1bGxXaWR0aCxcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBtYXhXaWR0aCA9ICcxNC41cmVtJyxcbiAgICAgIG1heEhlaWdodCxcbiAgICAgIHZpc2libGUsXG4gICAgICBpbm5lclJlZixcbiAgICAgIHJvbGUgPSAncG9wdXAnLFxuICAgICAgJ2RhdGEtdGVzdGlkJzogZGF0YVRlc3RJZCxcbiAgICAgIGhhc0Fycm93ID0gdHJ1ZSxcbiAgICAgIG9uQ2xvc2UsXG4gICAgICB0YWJJbmRleCA9IDAsXG4gICAgICBvbktleURvd24sXG4gICAgICAnYXJpYS1oYXNwb3B1cCc6IGFyaWFIYXNQb3B1cCxcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSA9IGZhbHNlLFxuICAgICAgZGVib3VuY2VEZWxheSA9IERFRkFVTFRfREVCT1VOQ0VfRFVSQVRJT04sXG4gICAgICBkaXNhYmxlQW5pbWF0aW9uID0gZmFsc2UsXG4gICAgICBwb3J0YWxUYXJnZXQsXG4gICAgICBkeW5hbWljRG9tUmVuZGVyaW5nID0gdHJ1ZSxcbiAgICB9OiBQb3B1cFByb3BzLFxuICAgIHJlZjogUmVmPEhUTUxEaXZFbGVtZW50PixcbiAgKSA9PiB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShpbm5lclJlZiwgKCkgPT4gY2hpbGRyZW5SZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IGlubmVyUG9wdXBSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpXG4gICAgdXNlSW1wZXJhdGl2ZUhhbmRsZShyZWYsICgpID0+IGlubmVyUG9wdXBSZWYuY3VycmVudCBhcyBIVE1MRGl2RWxlbWVudClcblxuICAgIGNvbnN0IHRpbWVyID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pih1bmRlZmluZWQpXG4gICAgY29uc3QgcG9wdXBQb3J0YWxUYXJnZXQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChwb3J0YWxUYXJnZXQpIHJldHVybiBwb3J0YWxUYXJnZXRcblxuICAgICAgaWYgKHJvbGUgPT09ICdkaWFsb2cnKSB7XG4gICAgICAgIGlmIChjaGlsZHJlblJlZi5jdXJyZW50KSByZXR1cm4gY2hpbGRyZW5SZWYuY3VycmVudFxuICAgICAgICBpZiAoaXNDbGllbnRTaWRlKSByZXR1cm4gZG9jdW1lbnQuYm9keVxuXG4gICAgICAgIHJldHVybiBudWxsXG4gICAgICB9XG5cbiAgICAgIC8vIFdlIGNoZWNrIGlmIHdpbmRvdyBleGlzdHMgZm9yIFNTUlxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3BvcnRhbFRhcmdldCwgcm9sZSwgY2hpbGRyZW5SZWYuY3VycmVudF0pXG5cbiAgICAvLyBUaGVyZSBhcmUgc29tZSBpc3N1ZSB3aGVuIG1peGluZyBhbmltYXRpb24gYW5kIG1heEhlaWdodCBvbiBzb21lIGJyb3dzZXJzLCBzbyB3ZSBkaXNhYmxlIGFuaW1hdGlvbiBpZiBtYXhIZWlnaHQgaXMgc2V0LlxuICAgIGNvbnN0IGFuaW1hdGlvbkR1cmF0aW9uID1cbiAgICAgIGRpc2FibGVBbmltYXRpb24gfHwgbWF4SGVpZ2h0ID8gMCA6IERFRkFVTFRfQU5JTUFUSU9OX0RVUkFUSU9OXG5cbiAgICAvLyBEZWJvdW5jZSB0aW1lciB3aWxsIGJlIHVzZWQgdG8gcHJldmVudCB0aGUgcG9wdXAgZnJvbSBmbGlja2VyaW5nIHdoZW4gdGhlIHVzZXIgbW92ZXMgdGhlIG1vdXNlIG91dCBhbmQgaW4gdGhlIGNoaWxkcmVuIGVsZW1lbnQuXG4gICAgY29uc3QgZGVib3VuY2VUaW1lciA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBzZXRUaW1lb3V0Pj4odW5kZWZpbmVkKVxuICAgIGNvbnN0IFt2aXNpYmxlSW5Eb20sIHNldFZpc2libGVJbkRvbV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcmV2ZXJzZUFuaW1hdGlvbiwgc2V0UmV2ZXJzZUFuaW1hdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgICBjb25zdCBbcG9zaXRpb25zLCBzZXRQb3NpdGlvbnNdID0gdXNlU3RhdGU8UG9zaXRpb25zVHlwZT4oe1xuICAgICAgLi4uREVGQVVMVF9QT1NJVElPTlMsXG4gICAgfSlcbiAgICBjb25zdCB1bmlxdWVJZCA9IHVzZUlkKClcbiAgICBjb25zdCBnZW5lcmF0ZWRJZCA9IGlkID8/IHVuaXF1ZUlkXG4gICAgY29uc3QgaXNDb250cm9sbGVkID0gdmlzaWJsZSAhPT0gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKGNoaWxkcmVuUmVmLmN1cnJlbnQgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIHNldFBvc2l0aW9ucyhcbiAgICAgICAgICBjb21wdXRlUG9zaXRpb25zKHtcbiAgICAgICAgICAgIGFsaWduLFxuICAgICAgICAgICAgY2hpbGRyZW5SZWYsXG4gICAgICAgICAgICBoYXNBcnJvdyxcbiAgICAgICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0OiBwb3B1cFBvcnRhbFRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgIHBvcHVwUmVmOiBpbm5lclBvcHVwUmVmLFxuICAgICAgICAgIH0pLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSwgW2hhc0Fycm93LCBwbGFjZW1lbnQsIHBvcHVwUG9ydGFsVGFyZ2V0LCBhbGlnbl0pXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIHdlIG5lZWQgdG8gcmVjb21wdXRlIHBvc2l0aW9ucyBvZiBwb3B1cCBkdWUgdG8gd2luZG93IHNjcm9sbCBvciByZXNpemUuXG4gICAgICovXG4gICAgY29uc3Qgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIC8vIFdlIHJlbW92ZSBhbmltYXRpb24gb24gc2Nyb2xsIG9yIHRoZSBhbmltYXRpb24gd2lsbCByZXN0YXJ0IG9uIGV2ZXJ5IHNjcm9sbFxuICAgICAgaWYgKGlubmVyUG9wdXBSZWYuY3VycmVudCkge1xuICAgICAgICBpbm5lclBvcHVwUmVmLmN1cnJlbnQuc3R5bGUuYW5pbWF0aW9uID0gJ25vbmUnXG4gICAgICB9XG5cbiAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuICAgIH0sIFtnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLCBpbm5lclBvcHVwUmVmXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byByZW1vdmUgcG9wdXAgcG9ydGFsIGZyb20gRE9NIGFuZCByZW1vdmUgZXZlbnQgbGlzdGVuZXIgdG8gaXQuXG4gICAgICovXG4gICAgY29uc3QgdW5tb3VudFBvcHVwRnJvbURvbSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldFZpc2libGVJbkRvbShmYWxzZSlcbiAgICAgIHNldFJldmVyc2VBbmltYXRpb24oZmFsc2UpXG5cbiAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgIH0sIFtvbldpbmRvd0NoYW5nZURldGVjdGVkXSlcblxuICAgIC8qKlxuICAgICAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gd2UgbmVlZCB0byBoaWRlIHBvcHVwLiBBIHRpbWVvdXQgaXMgc2V0IHRvIGFsbG93IGFuaW1hdGlvbiBlbmQsIHRoZW4gcmVtb3ZlXG4gICAgICogcG9wdXAgZnJvbSBkb20uXG4gICAgICovXG4gICAgY29uc3QgY2xvc2VQb3B1cCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGNvbnN0IGNsb3NlRnVuY3Rpb24gPSAoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICAgIHNldFJldmVyc2VBbmltYXRpb24odHJ1ZSlcblxuICAgICAgICAgIHRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIG9uQ2xvc2U/LigpXG4gICAgICAgICAgICB1bm1vdW50UG9wdXBGcm9tRG9tKClcbiAgICAgICAgICB9LCBhbmltYXRpb25EdXJhdGlvbilcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkNsb3NlPy4oKVxuICAgICAgICAgIHVubW91bnRQb3B1cEZyb21Eb20oKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZGlzYWJsZUFuaW1hdGlvbikge1xuICAgICAgICBkZWJvdW5jZVRpbWVyLmN1cnJlbnQgPSBzZXRUaW1lb3V0KFxuICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIGNsb3NlRnVuY3Rpb24oKVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVib3VuY2VEZWxheSAmJiAhZGlzYWJsZUFuaW1hdGlvbiA/IGRlYm91bmNlRGVsYXkgOiAwLFxuICAgICAgICApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUZ1bmN0aW9uKClcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhbmltYXRpb25EdXJhdGlvbixcbiAgICAgIGRpc2FibGVBbmltYXRpb24sXG4gICAgICBkZWJvdW5jZURlbGF5LFxuICAgICAgb25DbG9zZSxcbiAgICAgIHVubW91bnRQb3B1cEZyb21Eb20sXG4gICAgXSlcblxuICAgIC8qKlxuICAgICAqIFdoZW4gbW91c2UgaG92ZXIgb3Igc3RvcCBob3ZlcmluZyBjaGlsZHJlbiB0aGlzIGZ1bmN0aW9uIGRpc3BsYXkgb3IgaGlkZSBwb3B1cC4gQSB0aW1lb3V0IGlzIHNldCB0byBhbGxvdyBhbmltYXRpb25cbiAgICAgKiBlbmQsIHRoZW4gcmVtb3ZlIHBvcHVwIGZyb20gZG9tLlxuICAgICAqL1xuICAgIGNvbnN0IG9uUG9pbnRlckV2ZW50ID0gdXNlQ2FsbGJhY2soXG4gICAgICAoaXNWaXNpYmxlOiBib29sZWFuKSA9PiAoKSA9PiB7XG4gICAgICAgIC8vIElmIHRoZXJlIGlzIGEgZGVib3VuY2VEZWxheSBhbmQgdGhlIHBvcHVwIGlzIG5vdCB2aXNpYmxlLCB3ZSBjbGVhciB0aGUgZGVib3VuY2UgdGltZXJcbiAgICAgICAgaWYgKCF2aXNpYmxlICYmIGRlYm91bmNlRGVsYXkgPiAwICYmIGRlYm91bmNlVGltZXIuY3VycmVudCkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJvdW5jZVRpbWVyLmN1cnJlbnQpXG4gICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIHVubW91bnQgdGhlIHBvcHVwXG4gICAgICAgIC8vIFRoZXJlIGlzIGRlYm91bmNlIGluIG9yZGVyIHRvIGF2b2lkIHBvcHVwIHRvIGZsaWNrZXIgd2hlbiB3ZSBtb3ZlIHRoZSBtb3VzZSBmcm9tIGNoaWxkcmVuIHRvIHBvcHVwXG4gICAgICAgIC8vIFRpbWVyIGlzIHVzZWQgdG8gZm9sbG93IHRoZSBhbmltYXRpb24gZHVyYXRpb25cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50ICYmICFkZWJvdW5jZVRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgfSBlbHNlIGlmIChpc1Zpc2libGUpIHtcbiAgICAgICAgICAvLyBUaGlzIGNvbmRpdGlvbiBpcyBmb3Igd2hlbiB3ZSB3YW50IHRvIG1vdW50IHRoZSBwb3B1cFxuICAgICAgICAgIC8vIElmIHRoZSB0aW1lciBleGlzdHMgaXQgbWVhbnMgdGhlIHBvcHVwIHdhcyBhYm91dCB0byB1bW91bnQsIGJ1dCB3ZSBob3ZlcmVkIHRoZSBjaGlsZHJlbiBhZ2FpbixcbiAgICAgICAgICAvLyBzbyB3ZSBjbGVhciB0aGUgdGltZXIgYW5kIHRoZSBwb3B1cCB3aWxsIG5vdCBiZSB1bm1vdW50ZWRcbiAgICAgICAgICBpZiAodGltZXIuY3VycmVudCkge1xuICAgICAgICAgICAgc2V0UmV2ZXJzZUFuaW1hdGlvbihmYWxzZSlcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lci5jdXJyZW50KVxuICAgICAgICAgICAgdGltZXIuY3VycmVudCA9IHVuZGVmaW5lZFxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBBbmQgaGVyZSBpcyB3aGVuIHdlIGN1cnJlbnRseSBhcmUgaW4gYSBkZWJvdW5jZSB0aW1lciwgaXQgbWVhbnMgcG9wdXAgd2FzIGhvdmVyZWQgZHVyaW5nXG4gICAgICAgICAgLy8gdGhhdCBwZXJpb2QsIGFuZCBzbyB3ZSBjYW4gY2xlYXIgZGVib3VuY2UgdGltZXJcbiAgICAgICAgICBpZiAoZGVib3VuY2VUaW1lci5jdXJyZW50KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQoZGVib3VuY2VUaW1lci5jdXJyZW50KVxuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWJvdW5jZURlbGF5ID4gMCkge1xuICAgICAgICAgICAgZGVib3VuY2VUaW1lci5jdXJyZW50ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHNldFZpc2libGVJbkRvbSh0cnVlKVxuICAgICAgICAgICAgfSwgZGVib3VuY2VEZWxheSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3RhcnRUcmFuc2l0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgc2V0VmlzaWJsZUluRG9tKHRydWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtjbG9zZVBvcHVwLCBkZWJvdW5jZURlbGF5LCB2aXNpYmxlXSxcbiAgICApXG5cbiAgICAvKipcbiAgICAgKiBPbmNlIHBvcHVwIGlzIHZpc2libGUgaW4gdGhlIGRvbSB3ZSBjYW4gY29tcHV0ZSBwb3NpdGlvbnMsIHRoZW4gc2V0IGl0IHZpc2libGUgb24gc2NyZWVuIGFuZCBhZGQgZXZlbnQgdG9cbiAgICAgKiByZWNvbXB1dGUgcG9zaXRpb25zIG9uIHNjcm9sbCBvciBzY3JlZW4gcmVzaXplLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmlzaWJsZUluRG9tKSB7XG4gICAgICAgIGdlbmVyYXRlUG9wdXBQb3NpdGlvbnMoKVxuXG4gICAgICAgIGlmIChwb3B1cFBvcnRhbFRhcmdldCA9PT0gZG9jdW1lbnQuYm9keSkge1xuICAgICAgICAgIC8vIFdlIHdhbnQgdG8gZGV0ZWN0IHNjcm9sbCBhbmQgcmVzaXplIGluIG9yZGVyIHRvIHJlY29tcHV0ZSBwb3NpdGlvbnMgb2YgcG9wdXBcbiAgICAgICAgICAvLyBBZGRpbmcgdHJ1ZSBhcyB0aGlyZCBwYXJhbWV0ZXIgdG8gZXZlbnQgbGlzdGVuZXIgd2lsbCBkZXRlY3QgbmVzdGVkIHNjcm9sbHMuXG4gICAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIG9uV2luZG93Q2hhbmdlRGV0ZWN0ZWQsIHRydWUpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCBvbldpbmRvd0NoYW5nZURldGVjdGVkLCB0cnVlKVxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCwgdHJ1ZSlcbiAgICAgICAgaWYgKHRpbWVyLmN1cnJlbnQpIHtcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZXIuY3VycmVudClcbiAgICAgICAgICB0aW1lci5jdXJyZW50ID0gdW5kZWZpbmVkXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBnZW5lcmF0ZVBvcHVwUG9zaXRpb25zLFxuICAgICAgb25XaW5kb3dDaGFuZ2VEZXRlY3RlZCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIG1heFdpZHRoLFxuICAgICAgcG9wdXBQb3J0YWxUYXJnZXQsXG4gICAgXSlcblxuICAgIC8vIFRoaXMgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBwb3NpdGlvbnMgYXJlIGNvbXB1dGVkIGFuZCBwb3B1cCBpcyB2aXNpYmxlIGluIHRoZSBkb20uXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2aXNpYmxlSW5Eb20gJiYgaW5uZXJQb3B1cFJlZi5jdXJyZW50KSB7XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudC5zdHlsZS5vcGFjaXR5ID0gJzEnXG4gICAgICB9XG4gICAgICAvLyBveGxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QvZXhoYXVzdGl2ZS1kZXBzXG4gICAgfSwgW3Bvc2l0aW9uc10pXG5cbiAgICAvKipcbiAgICAgKiBJZiBwb3B1cCBoYXMgYHZpc2libGVgIHByb3AgaXQgbWVhbnMgdGhlIHBvcHVwIGlzIG1hbnVhbGx5IGNvbnRyb2xsZWQgdGhyb3VnaCB0aGlzIHByb3AuXG4gICAgICogSW4gdGhpcyBjYXMgd2UgZG9uJ3Qgd2FudCB0byBkaXNwbGF5IHBvcHVwIG9uIGhvdmVyLCBidXQgb25seSB3aGVuIGB2aXNpYmxlYCBpcyB0cnVlLlxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoaXNDb250cm9sbGVkKSB7XG4gICAgICAgIG9uUG9pbnRlckV2ZW50KHZpc2libGUpKClcbiAgICAgIH1cbiAgICB9LCBbaXNDb250cm9sbGVkLCBvblBvaW50ZXJFdmVudCwgdmlzaWJsZV0pXG5cbiAgICAvLyBIYW5kbGUgaGlkZSBvbiBlc2MgcHJlc3MgYW5kIGhpZGUgb24gY2xpY2sgb3V0c2lkZVxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBoYW5kbGVFc2NQcmVzcyA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICAgIGNsb3NlUG9wdXAoKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBwb3B1cEN1cnJlbnQgPSBpbm5lclBvcHVwUmVmLmN1cnJlbnRcbiAgICAgICAgY29uc3QgY2hpbGRyZW5DdXJyZW50ID0gY2hpbGRyZW5SZWYuY3VycmVudFxuXG4gICAgICAgIGlmIChwb3B1cEN1cnJlbnQgJiYgaGlkZU9uQ2xpY2tPdXRzaWRlICYmICFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICAgICAgICBldmVudC50YXJnZXQgIT09IHBvcHVwQ3VycmVudCAmJlxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0ICE9PSBjaGlsZHJlbkN1cnJlbnQgJiZcbiAgICAgICAgICAgICFjaGlsZHJlbkN1cnJlbnQ/LmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcHVwQ3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICBjbG9zZVBvcHVwKClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh2aXNpYmxlSW5Eb20pIHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdrZXl1cCcsIGhhbmRsZUVzY1ByZXNzKVxuICAgICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGFuZGxlQ2xpY2tPdXRzaWRlKVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywgaGFuZGxlRXNjUHJlc3MpXG4gICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCBoYW5kbGVDbGlja091dHNpZGUpXG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgY2xvc2VQb3B1cCxcbiAgICAgIHZpc2libGVJbkRvbSxcbiAgICAgIGlubmVyUG9wdXBSZWYsXG4gICAgICBjaGlsZHJlblJlZixcbiAgICAgIGhpZGVPbkNsaWNrT3V0c2lkZSxcbiAgICBdKVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBldmVudCB3aWxsIG9jY3VyIG9ubHkgZm9yIGRpYWxvZyBhbmQgd2lsbCB0cmFwIGZvY3VzIGluc2lkZSB0aGUgZGlhbG9nLlxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUZvY3VzVHJhcDogS2V5Ym9hcmRFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgICBjb25zdCBpc1RhYlByZXNzZWQgPSBldmVudC5rZXkgPT09ICdUYWInXG4gICAgICBpZiAoIWlzVGFiUHJlc3NlZCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG5cbiAgICAgIGNvbnN0IGZvY3VzYWJsZUVscyA9XG4gICAgICAgIGlubmVyUG9wdXBSZWYuY3VycmVudD8ucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAnYVtocmVmXTpub3QoW2Rpc2FibGVkXSksIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyxcbiAgICAgICAgKSA/PyBbXVxuXG4gICAgICAvLyBIYW5kbGUgY2FzZSB3aGVuIG5vIGludGVyYWN0aXZlIGVsZW1lbnQgYXJlIHdpdGhpbiB0aGUgbW9kYWwgKGluY2x1ZGluZyBjbG9zZSBpY29uKVxuICAgICAgaWYgKGZvY3VzYWJsZUVscy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZUVsID0gZm9jdXNhYmxlRWxzWzBdIGFzIEhUTUxFbGVtZW50XG4gICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWwgPSBmb2N1c2FibGVFbHNbXG4gICAgICAgIGZvY3VzYWJsZUVscy5sZW5ndGggLSAxXG4gICAgICBdIGFzIEhUTUxFbGVtZW50XG5cbiAgICAgIGlmIChldmVudC5zaGlmdEtleSkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gZmlyc3RGb2N1c2FibGVFbCB8fFxuICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgICApIHtcbiAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gbGFzdEZvY3VzYWJsZUVsIHx8XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGlubmVyUG9wdXBSZWYuY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwuZm9jdXMoKVxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICB9XG4gICAgfSwgW10pXG5cbiAgICAvKipcbiAgICAgKiBXaWxsIHJlbmRlciBjaGlsZHJlbiBjb25kaXRpb25hbGx5IGlmIGNoaWxkcmVuIGlzIGEgZnVuY3Rpb24gb3Igbm90LlxuICAgICAqL1xuICAgIGNvbnN0IHJlbmRlckNoaWxkcmVuID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gY2hpbGRyZW4oe1xuICAgICAgICAgIG9uQmx1cjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgb25Gb2N1czogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJFbnRlcjogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KHRydWUpIDogbm9vcCxcbiAgICAgICAgICBvblBvaW50ZXJMZWF2ZTogIWlzQ29udHJvbGxlZCA/IG9uUG9pbnRlckV2ZW50KGZhbHNlKSA6IG5vb3AsXG4gICAgICAgICAgcmVmOiBjaGlsZHJlblJlZixcbiAgICAgICAgfSlcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENoaWxkcmVuQ29udGFpbmVyXG4gICAgICAgICAgYXJpYS1jb250cm9scz17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17Z2VuZXJhdGVkSWR9XG4gICAgICAgICAgYXJpYS1oYXNwb3B1cD17YXJpYUhhc1BvcHVwfVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtaGVpZ2h0PXtjb250YWluZXJGdWxsSGVpZ2h0fVxuICAgICAgICAgIGRhdGEtY29udGFpbmVyLWZ1bGwtd2lkdGg9e2NvbnRhaW5lckZ1bGxXaWR0aH1cbiAgICAgICAgICBvbkJsdXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgIG9uRm9jdXM9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgb25LZXlEb3duPXtldmVudCA9PiB7XG4gICAgICAgICAgICBvbktleURvd24/LihldmVudClcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9uUG9pbnRlckVudGVyPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQodHJ1ZSkgOiBub29wfVxuICAgICAgICAgIG9uUG9pbnRlckxlYXZlPXshaXNDb250cm9sbGVkID8gb25Qb2ludGVyRXZlbnQoZmFsc2UpIDogbm9vcH1cbiAgICAgICAgICByZWY9e2NoaWxkcmVuUmVmfVxuICAgICAgICAgIHRhYkluZGV4PXt0YWJJbmRleH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9TdHlsZWRDaGlsZHJlbkNvbnRhaW5lcj5cbiAgICAgIClcbiAgICB9LCBbXG4gICAgICBhcmlhSGFzUG9wdXAsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIGNvbnRhaW5lckZ1bGxIZWlnaHQsXG4gICAgICBjb250YWluZXJGdWxsV2lkdGgsXG4gICAgICBnZW5lcmF0ZWRJZCxcbiAgICAgIGlzQ29udHJvbGxlZCxcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIG9uUG9pbnRlckV2ZW50LFxuICAgICAgdGFiSW5kZXgsXG4gICAgXSlcblxuICAgIGNvbnN0IHNob3VsZFJlbmRlciA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgaWYgKCFkeW5hbWljRG9tUmVuZGVyaW5nKSB7XG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgICB9XG5cbiAgICAgIGlmIChkeW5hbWljRG9tUmVuZGVyaW5nICYmIHZpc2libGVJbkRvbSkge1xuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9LCBbZHluYW1pY0RvbVJlbmRlcmluZywgdmlzaWJsZUluRG9tXSlcblxuICAgIGlmICghdGV4dCkge1xuICAgICAgaWYgKHR5cGVvZiBjaGlsZHJlbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gY2hpbGRyZW5cbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge3JlbmRlckNoaWxkcmVuKCl9XG4gICAgICAgIHtzaG91bGRSZW5kZXJcbiAgICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgICAgPFN0eWxlZFBvcHVwXG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uRHVyYXRpb249e2FuaW1hdGlvbkR1cmF0aW9ufVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgIGRhdGEtYW5pbWF0ZWQ9e2FuaW1hdGlvbkR1cmF0aW9uID4gMCAmJiAhbWF4SGVpZ2h0fVxuICAgICAgICAgICAgICAgIGRhdGEtaGFzLWFycm93PXtoYXNBcnJvd31cbiAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZH1cbiAgICAgICAgICAgICAgICBkYXRhLXZpc2libGUtaW4tZG9tPXtcbiAgICAgICAgICAgICAgICAgICFkeW5hbWljRG9tUmVuZGVyaW5nID8gdmlzaWJsZUluRG9tIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlkPXtnZW5lcmF0ZWRJZH1cbiAgICAgICAgICAgICAgICBpc0RpYWxvZz17cm9sZSA9PT0gJ2RpYWxvZyd9XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0PXttYXhIZWlnaHR9XG4gICAgICAgICAgICAgICAgbWF4V2lkdGg9e21heFdpZHRofVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3N0b3BDbGlja1Byb3BhZ2F0aW9ufVxuICAgICAgICAgICAgICAgIG9uS2V5RG93bj17cm9sZSA9PT0gJ2RpYWxvZycgPyBoYW5kbGVGb2N1c1RyYXAgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRW50ZXI9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudCh0cnVlKSA6IG5vb3B9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyTGVhdmU9eyFpc0NvbnRyb2xsZWQgPyBvblBvaW50ZXJFdmVudChmYWxzZSkgOiBub29wfVxuICAgICAgICAgICAgICAgIHBvc2l0aW9ucz17cG9zaXRpb25zfVxuICAgICAgICAgICAgICAgIHJlZj17aW5uZXJQb3B1cFJlZn1cbiAgICAgICAgICAgICAgICByZXZlcnNlQW5pbWF0aW9uPXtyZXZlcnNlQW5pbWF0aW9ufVxuICAgICAgICAgICAgICAgIHJvbGU9e3JvbGV9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGV4dH1cbiAgICAgICAgICAgICAgPC9TdHlsZWRQb3B1cD4sXG4gICAgICAgICAgICAgIHBvcHVwUG9ydGFsVGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgKVxuICAgICAgICAgIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfSxcbilcbiJdfQ== */',
|
|
69
69
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
70
70
|
});
|
|
71
71
|
const Popup = forwardRef(({
|
|
@@ -124,12 +124,12 @@ const Popup = forwardRef(({
|
|
|
124
124
|
const generatePopupPositions = useCallback(() => {
|
|
125
125
|
if (childrenRef.current && innerPopupRef.current) {
|
|
126
126
|
setPositions(computePositions({
|
|
127
|
+
align,
|
|
127
128
|
childrenRef,
|
|
129
|
+
hasArrow,
|
|
128
130
|
placement,
|
|
129
|
-
popupRef: innerPopupRef,
|
|
130
131
|
popupPortalTarget,
|
|
131
|
-
|
|
132
|
-
align
|
|
132
|
+
popupRef: innerPopupRef
|
|
133
133
|
}));
|
|
134
134
|
}
|
|
135
135
|
}, [hasArrow, placement, popupPortalTarget, align]);
|
|
@@ -280,9 +280,9 @@ const Popup = forwardRef(({
|
|
|
280
280
|
ref: childrenRef
|
|
281
281
|
});
|
|
282
282
|
}
|
|
283
|
-
return /* @__PURE__ */ jsx(StyledChildrenContainer, { "aria-
|
|
283
|
+
return /* @__PURE__ */ jsx(StyledChildrenContainer, { "aria-controls": generatedId, "aria-describedby": generatedId, "aria-haspopup": ariaHasPopup, "data-container-full-height": containerFullHeight, "data-container-full-width": containerFullWidth, onBlur: !isControlled ? onPointerEvent(false) : noop, onFocus: !isControlled ? onPointerEvent(true) : noop, onKeyDown: (event) => {
|
|
284
284
|
onKeyDown?.(event);
|
|
285
|
-
},
|
|
285
|
+
}, onPointerEnter: !isControlled ? onPointerEvent(true) : noop, onPointerLeave: !isControlled ? onPointerEvent(false) : noop, ref: childrenRef, tabIndex, children });
|
|
286
286
|
}, [ariaHasPopup, children, containerFullHeight, containerFullWidth, generatedId, isControlled, onKeyDown, onPointerEvent, tabIndex]);
|
|
287
287
|
const shouldRender = useMemo(() => {
|
|
288
288
|
if (!dynamicDomRendering) {
|
|
@@ -301,7 +301,7 @@ const Popup = forwardRef(({
|
|
|
301
301
|
}
|
|
302
302
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
303
303
|
renderChildren(),
|
|
304
|
-
shouldRender ? createPortal(/* @__PURE__ */ jsx(StyledPopup, {
|
|
304
|
+
shouldRender ? createPortal(/* @__PURE__ */ jsx(StyledPopup, { animationDuration, className, "data-animated": animationDuration > 0 && !maxHeight, "data-has-arrow": hasArrow, "data-testid": dataTestId, "data-visible-in-dom": !dynamicDomRendering ? visibleInDom : void 0, id: generatedId, isDialog: role === "dialog", maxHeight, maxWidth, onClick: stopClickPropagation, onKeyDown: role === "dialog" ? handleFocusTrap : void 0, onPointerEnter: !isControlled ? onPointerEvent(true) : noop, onPointerLeave: !isControlled ? onPointerEvent(false) : noop, positions, ref: innerPopupRef, reverseAnimation, role, children: text }), popupPortalTarget) : null
|
|
305
305
|
] });
|
|
306
306
|
});
|
|
307
307
|
export {
|