@1money/component-ui 0.0.69 → 0.0.71
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/es/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +3 -2
- package/es/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +2 -2
- package/es/business/Select/Network/NetworkSelect.js +2 -2
- package/es/components/Accordion/Accordion.js +3 -2
- package/es/components/Calendar/Calendar.js +3 -2
- package/es/components/Carousel/Carousel.js +3 -2
- package/es/components/Checkbox/BaseCheckbox.js +3 -2
- package/es/components/Checkbox/Checkbox.js +2 -2
- package/es/components/Checkbox/CheckboxGroup.js +3 -2
- package/es/components/CoachMark/CoachMark.js +3 -2
- package/es/components/Copy/Copy.js +2 -2
- package/es/components/Dialog/Dialog.js +2 -2
- package/es/components/Drawer/Drawer.js +2 -2
- package/es/components/Icons/Wrapper.js +6 -4
- package/es/components/Icons/constants.d.ts +11 -0
- package/es/components/Icons/constants.js +32 -0
- package/es/components/Icons/index.d.ts +2 -0
- package/es/components/Icons/index.js +2 -1
- package/es/components/Icons/interface.d.ts +8 -1
- package/es/components/Input/Amount/Amount.js +2 -2
- package/es/components/Input/Input/Input.js +3 -2
- package/es/components/Input/Mask/Mask.js +3 -2
- package/es/components/Input/OTP/OTP.js +3 -2
- package/es/components/Input/Password/Password.js +3 -2
- package/es/components/Input/Search/Search.js +3 -2
- package/es/components/Input/TextArea/TextArea.js +3 -2
- package/es/components/Input/Trade/Trade.js +2 -2
- package/es/components/Input/useAmountInput.js +4 -2
- package/es/components/Input/useSyncRef.js +2 -2
- package/es/components/Navigation/Nav.js +2 -2
- package/es/components/Navigation/Navigation.js +5 -2
- package/es/components/Pagination/Pagination.js +2 -2
- package/es/components/Pagination/usePagination.js +3 -2
- package/es/components/Popconfirm/Popconfirm.js +2 -2
- package/es/components/Portal/Portal.js +2 -2
- package/es/components/ProForm/ProForm.js +6 -3
- package/es/components/ProForm/ProFormGroup.js +2 -2
- package/es/components/ProForm/ProFormList.js +3 -2
- package/es/components/ProForm/Submitter.js +2 -2
- package/es/components/ProForm/core/constants.d.ts +6 -0
- package/es/components/ProForm/core/constants.js +7 -1
- package/es/components/ProForm/core/hooks/useForm.js +25 -195
- package/es/components/ProForm/core/hooks/useFormCore.js +14 -142
- package/es/components/ProForm/core/pathUtils.d.ts +6 -0
- package/es/components/ProForm/core/pathUtils.js +59 -0
- package/es/components/ProForm/core/runRules.d.ts +13 -0
- package/es/components/ProForm/core/runRules.js +186 -0
- package/es/components/ProForm/core/useFormItem.js +10 -28
- package/es/components/ProForm/fields/createProFormField.js +43 -57
- package/es/components/ProForm/hooks/useFieldRequest.js +7 -5
- package/es/components/ProForm/layouts/QueryFilter.js +3 -2
- package/es/components/ProForm/layouts/useOverlayForm.js +23 -21
- package/es/components/ProForm/utils.d.ts +2 -2
- package/es/components/ProForm/utils.js +5 -51
- package/es/components/ProTable/ProTable.js +3 -2
- package/es/components/ProTable/core/useAwaitableReload.js +3 -2
- package/es/components/ProTable/useFetchData.js +4 -2
- package/es/components/Radio/Radio.js +3 -2
- package/es/components/Radio/RadioGroup.js +3 -2
- package/es/components/ResizeObserver/useResizeObserver.js +2 -2
- package/es/components/Segment/Segment.js +4 -2
- package/es/components/Select/Select.js +3 -2
- package/es/components/Select/SelectCustom.js +2 -2
- package/es/components/Select/useSelectShell.js +3 -2
- package/es/components/Slider/Slider.js +3 -2
- package/es/components/Switch/Switch.js +3 -2
- package/es/components/Table/Table.js +14 -28
- package/es/components/Table/VirtualTable.js +18 -28
- package/es/components/Table/core/columnUtil.d.ts +9 -0
- package/es/components/Table/core/columnUtil.js +34 -0
- package/es/components/Table/core/useTableColumns.d.ts +4 -13
- package/es/components/Table/core/useTableColumns.js +55 -24
- package/es/components/Table/core/useTableDataPipeline.d.ts +11 -16
- package/es/components/Table/core/useTableDataPipeline.js +66 -73
- package/es/components/Table/core/useTableExpand.js +3 -2
- package/es/components/Table/core/useTableSelection.js +7 -4
- package/es/components/Table/core/useTableSetup.js +4 -2
- package/es/components/Table/features/ExpandTrigger.d.ts +9 -3
- package/es/components/Table/features/ExpandTrigger.js +14 -8
- package/es/components/Table/features/FilterTrigger.js +21 -17
- package/es/components/Table/features/SelectionColumn.d.ts +11 -6
- package/es/components/Table/features/SelectionColumn.js +12 -5
- package/es/components/Table/features/SortTrigger.d.ts +4 -2
- package/es/components/Table/features/SortTrigger.js +8 -3
- package/es/components/Table/internal/kernel/Body/MeasureCell.js +2 -2
- package/es/components/Table/internal/kernel/Cell/index.js +2 -2
- package/es/components/Table/internal/kernel/Table.js +3 -3
- package/es/components/Table/internal/kernel/VirtualTable/index.js +2 -2
- package/es/components/Table/internal/kernel/hooks/useRowInfo.js +2 -2
- package/es/components/Table/internal/kernel/selector-context/context.js +3 -3
- package/es/components/Table/renderers/HeaderCell.js +3 -2
- package/es/components/Table/renderers/TableShell.d.ts +13 -0
- package/es/components/Table/renderers/TableShell.js +25 -0
- package/es/components/Table/style/Table.css +3 -0
- package/es/components/Tabs/Tabs.js +4 -2
- package/es/components/Tooltip/Tooltip.js +3 -2
- package/es/components/Tour/Tour.js +3 -2
- package/es/components/Trigger/Trigger.js +3 -2
- package/es/components/Typography/Typography.js +2 -2
- package/es/components/Typography/useTypographyEnhancements.js +3 -2
- package/es/components/Upload/Upload.js +2 -2
- package/es/components/Upload/UploadFileBar.js +2 -2
- package/es/components/VirtualList/VirtualList.js +3 -2
- package/es/components/VirtualList/hooks/useMobileTouchMove.js +2 -2
- package/es/components/VirtualList/hooks/useScrollTo.js +2 -2
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/lib/business/Dialog/VerificationDialog/hooks/useOtpVerification.js +9 -8
- package/lib/business/Dialog/VerificationDialog/hooks/useResendCountdown.js +3 -3
- package/lib/business/Select/Network/NetworkSelect.js +3 -3
- package/lib/components/Accordion/Accordion.js +5 -4
- package/lib/components/Calendar/Calendar.js +6 -5
- package/lib/components/Carousel/Carousel.js +5 -4
- package/lib/components/Checkbox/BaseCheckbox.js +5 -4
- package/lib/components/Checkbox/Checkbox.js +3 -3
- package/lib/components/Checkbox/CheckboxGroup.js +7 -6
- package/lib/components/CoachMark/CoachMark.js +7 -6
- package/lib/components/Copy/Copy.js +3 -3
- package/lib/components/Dialog/Dialog.js +6 -6
- package/lib/components/Drawer/Drawer.js +10 -10
- package/lib/components/Icons/Wrapper.js +6 -4
- package/lib/components/Icons/constants.d.ts +11 -0
- package/lib/components/Icons/constants.js +38 -0
- package/lib/components/Icons/index.d.ts +2 -0
- package/lib/components/Icons/index.js +10 -2
- package/lib/components/Icons/interface.d.ts +8 -1
- package/lib/components/Input/Amount/Amount.js +6 -5
- package/lib/components/Input/Input/Input.js +7 -6
- package/lib/components/Input/Mask/Mask.js +9 -8
- package/lib/components/Input/OTP/OTP.js +9 -8
- package/lib/components/Input/Password/Password.js +6 -5
- package/lib/components/Input/Search/Search.js +8 -7
- package/lib/components/Input/TextArea/TextArea.js +5 -4
- package/lib/components/Input/Trade/Trade.js +5 -4
- package/lib/components/Input/useAmountInput.js +13 -11
- package/lib/components/Input/useSyncRef.js +4 -3
- package/lib/components/Navigation/Nav.js +3 -3
- package/lib/components/Navigation/Navigation.js +10 -7
- package/lib/components/Pagination/Pagination.js +4 -3
- package/lib/components/Pagination/usePagination.js +7 -6
- package/lib/components/Popconfirm/Popconfirm.js +3 -3
- package/lib/components/Portal/Portal.js +4 -4
- package/lib/components/ProForm/ProForm.js +14 -11
- package/lib/components/ProForm/ProFormGroup.js +3 -3
- package/lib/components/ProForm/ProFormList.js +10 -9
- package/lib/components/ProForm/Submitter.js +4 -4
- package/lib/components/ProForm/core/constants.d.ts +6 -0
- package/lib/components/ProForm/core/constants.js +8 -2
- package/lib/components/ProForm/core/hooks/useForm.js +36 -206
- package/lib/components/ProForm/core/hooks/useFormCore.js +32 -160
- package/lib/components/ProForm/core/pathUtils.d.ts +6 -0
- package/lib/components/ProForm/core/pathUtils.js +68 -0
- package/lib/components/ProForm/core/runRules.d.ts +13 -0
- package/lib/components/ProForm/core/runRules.js +194 -0
- package/lib/components/ProForm/core/useFormItem.js +15 -33
- package/lib/components/ProForm/fields/createProFormField.js +42 -56
- package/lib/components/ProForm/hooks/useFieldRequest.js +9 -7
- package/lib/components/ProForm/layouts/QueryFilter.js +8 -7
- package/lib/components/ProForm/layouts/useOverlayForm.js +27 -27
- package/lib/components/ProForm/utils.d.ts +2 -2
- package/lib/components/ProForm/utils.js +20 -55
- package/lib/components/ProTable/ProTable.js +10 -9
- package/lib/components/ProTable/core/useAwaitableReload.js +6 -5
- package/lib/components/ProTable/useFetchData.js +15 -13
- package/lib/components/Radio/Radio.js +6 -5
- package/lib/components/Radio/RadioGroup.js +5 -4
- package/lib/components/ResizeObserver/useResizeObserver.js +4 -3
- package/lib/components/Segment/Segment.js +7 -5
- package/lib/components/Select/Select.js +23 -22
- package/lib/components/Select/SelectCustom.js +8 -8
- package/lib/components/Select/useSelectShell.js +5 -4
- package/lib/components/Slider/Slider.js +6 -5
- package/lib/components/Switch/Switch.js +5 -4
- package/lib/components/Table/Table.js +13 -27
- package/lib/components/Table/VirtualTable.js +17 -27
- package/lib/components/Table/core/columnUtil.d.ts +9 -0
- package/lib/components/Table/core/columnUtil.js +42 -0
- package/lib/components/Table/core/useTableColumns.d.ts +4 -13
- package/lib/components/Table/core/useTableColumns.js +57 -26
- package/lib/components/Table/core/useTableDataPipeline.d.ts +11 -16
- package/lib/components/Table/core/useTableDataPipeline.js +73 -80
- package/lib/components/Table/core/useTableExpand.js +6 -5
- package/lib/components/Table/core/useTableSelection.js +13 -10
- package/lib/components/Table/core/useTableSetup.js +8 -5
- package/lib/components/Table/features/ExpandTrigger.d.ts +9 -3
- package/lib/components/Table/features/ExpandTrigger.js +14 -8
- package/lib/components/Table/features/FilterTrigger.js +21 -17
- package/lib/components/Table/features/SelectionColumn.d.ts +11 -6
- package/lib/components/Table/features/SelectionColumn.js +12 -5
- package/lib/components/Table/features/SortTrigger.d.ts +4 -2
- package/lib/components/Table/features/SortTrigger.js +8 -3
- package/lib/components/Table/internal/kernel/Body/MeasureCell.js +3 -3
- package/lib/components/Table/internal/kernel/Cell/index.js +4 -4
- package/lib/components/Table/internal/kernel/Table.js +7 -6
- package/lib/components/Table/internal/kernel/VirtualTable/index.js +4 -4
- package/lib/components/Table/internal/kernel/hooks/useRowInfo.js +3 -3
- package/lib/components/Table/internal/kernel/selector-context/context.js +6 -5
- package/lib/components/Table/renderers/HeaderCell.js +3 -2
- package/lib/components/Table/renderers/TableShell.d.ts +13 -0
- package/lib/components/Table/renderers/TableShell.js +31 -0
- package/lib/components/Table/style/Table.css +3 -0
- package/lib/components/Tabs/Tabs.js +7 -5
- package/lib/components/Tooltip/Tooltip.js +5 -4
- package/lib/components/Tour/Tour.js +7 -6
- package/lib/components/Trigger/Trigger.js +5 -4
- package/lib/components/Typography/Typography.js +5 -4
- package/lib/components/Typography/useTypographyEnhancements.js +8 -7
- package/lib/components/Upload/Upload.js +5 -4
- package/lib/components/Upload/UploadFileBar.js +4 -3
- package/lib/components/VirtualList/VirtualList.js +8 -7
- package/lib/components/VirtualList/hooks/useMobileTouchMove.js +4 -3
- package/lib/components/VirtualList/hooks/useScrollTo.js +3 -3
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +2 -2
- package/scripts/mcp-server/examples.generated.json +12 -6
- package/scripts/mcp-server/index.generated.json +45 -3
|
@@ -27,9 +27,10 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
|
|
|
27
27
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
28
28
|
});
|
|
29
29
|
};
|
|
30
|
-
import { useState, useCallback, useRef } from 'react';
|
|
31
30
|
import React from 'react';
|
|
32
|
-
import
|
|
31
|
+
import useControlledState from '@1money/hooks/useControlledState';
|
|
32
|
+
import useDebouncedCallback from '@1money/hooks/useDebouncedCallback';
|
|
33
|
+
import useEventCallback from '@1money/hooks/useEventCallback';
|
|
33
34
|
export function useOverlayForm(options, onFinish) {
|
|
34
35
|
var _this = this;
|
|
35
36
|
var controlledOpen = options.open,
|
|
@@ -38,26 +39,29 @@ export function useOverlayForm(options, onFinish) {
|
|
|
38
39
|
_options$autoClose = options.autoClose,
|
|
39
40
|
autoClose = _options$autoClose === void 0 ? true : _options$autoClose,
|
|
40
41
|
submitTimeout = options.submitTimeout;
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
if (!isControlled) {
|
|
50
|
-
setInternalOpen(nextOpen);
|
|
51
|
-
}
|
|
42
|
+
// Controlled when `controlledOpen` is passed, internal otherwise — and always
|
|
43
|
+
// forward the change to `onOpenChange`.
|
|
44
|
+
var _useControlledState = useControlledState(false, controlledOpen),
|
|
45
|
+
_useControlledState2 = _slicedToArray(_useControlledState, 2),
|
|
46
|
+
mergedOpen = _useControlledState2[0],
|
|
47
|
+
setMergedOpen = _useControlledState2[1];
|
|
48
|
+
var setOpen = useEventCallback(function (nextOpen) {
|
|
49
|
+
setMergedOpen(nextOpen);
|
|
52
50
|
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(nextOpen);
|
|
53
|
-
}
|
|
51
|
+
});
|
|
52
|
+
// Deferred auto-close after submit. `cancel` clears any pending close (e.g.
|
|
53
|
+
// when the overlay is hidden first); the timer is also auto-cancelled on
|
|
54
|
+
// unmount.
|
|
55
|
+
var _useDebouncedCallback = useDebouncedCallback(function () {
|
|
56
|
+
return setOpen(false);
|
|
57
|
+
}, submitTimeout),
|
|
58
|
+
scheduleClose = _useDebouncedCallback.run,
|
|
59
|
+
cancelScheduledClose = _useDebouncedCallback.cancel;
|
|
54
60
|
var handleShow = useEventCallback(function () {
|
|
55
61
|
setOpen(true);
|
|
56
62
|
});
|
|
57
63
|
var handleHide = useEventCallback(function () {
|
|
58
|
-
|
|
59
|
-
clearTimeout(timeoutRef.current);
|
|
60
|
-
}
|
|
64
|
+
cancelScheduledClose();
|
|
61
65
|
setOpen(false);
|
|
62
66
|
});
|
|
63
67
|
var handleFinish = useEventCallback(function (values) {
|
|
@@ -70,9 +74,7 @@ export function useOverlayForm(options, onFinish) {
|
|
|
70
74
|
case 1:
|
|
71
75
|
if (autoClose) {
|
|
72
76
|
if (submitTimeout && submitTimeout > 0) {
|
|
73
|
-
|
|
74
|
-
setOpen(false);
|
|
75
|
-
}, submitTimeout);
|
|
77
|
+
scheduleClose();
|
|
76
78
|
} else {
|
|
77
79
|
setOpen(false);
|
|
78
80
|
}
|
|
@@ -104,4 +106,4 @@ export function useOverlayForm(options, onFinish) {
|
|
|
104
106
|
};
|
|
105
107
|
}
|
|
106
108
|
export default useOverlayForm;
|
|
107
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9sYXlvdXRzL3VzZU92ZXJsYXlGb3JtLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS50cyJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJSZWFjdCIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRXZlbnRDYWxsYmFjayIsInVzZU92ZXJsYXlGb3JtIiwib3B0aW9ucyIsIm9uRmluaXNoIiwiX3RoaXMiLCJjb250cm9sbGVkT3BlbiIsIm9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJ0cmlnZ2VyIiwiX29wdGlvbnMkYXV0b0Nsb3NlIiwiYXV0b0Nsb3NlIiwic3VibWl0VGltZW91dCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwibWVyZ2VkT3BlbiIsInNldE1lcmdlZE9wZW4iLCJzZXRPcGVuIiwibmV4dE9wZW4iLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2siLCJzY2hlZHVsZUNsb3NlIiwicnVuIiwiY2FuY2VsU2NoZWR1bGVkQ2xvc2UiLCJjYW5jZWwiLCJoYW5kbGVTaG93IiwiaGFuZGxlSGlkZSIsImhhbmRsZUZpbmlzaCIsInZhbHVlcyIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdG9wIiwidHJpZ2dlck5vZGUiLCJjbG9uZUVsZW1lbnQiLCJvbkNsaWNrIiwiX2EiLCJvcmlnaW5hbE9uQ2xpY2siLCJwcm9wcyIsImFyZ3VtZW50cyJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxTQUFTLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU0MsUUFBUUEsQ0FBQ1IsS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUM7TUFBRSxDQUFDLENBQUMsT0FBT08sQ0FBQyxFQUFFO1FBQUVKLE1BQU0sQ0FBQ0ksQ0FBQyxDQUFDO01BQUU7SUFBRTtJQUM3RixTQUFTRixJQUFJQSxDQUFDSSxNQUFNLEVBQUU7TUFBRUEsTUFBTSxDQUFDQyxJQUFJLEdBQUdULE9BQU8sQ0FBQ1EsTUFBTSxDQUFDVCxLQUFLLENBQUMsR0FBR0QsS0FBSyxDQUFDVSxNQUFNLENBQUNULEtBQUssQ0FBQyxDQUFDVyxJQUFJLENBQUNQLFNBQVMsRUFBRUksUUFBUSxDQUFDO0lBQUU7SUFDN0dILElBQUksQ0FBQyxDQUFDUCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ2MsS0FBSyxDQUFDakIsT0FBTyxFQUFFQyxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUVVLElBQUksQ0FBQyxDQUFDLENBQUM7RUFDekUsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQ1BELE9BQU9PLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU9DLGtCQUFrQixNQUFNLGtDQUFrQztBQUNqRSxPQUFPQyxvQkFBb0IsTUFBTSxvQ0FBb0M7QUFDckUsT0FBT0MsZ0JBQWdCLE1BQU0sZ0NBQWdDO0FBa0I3RCxPQUFNLFNBQVVDLGNBQWNBLENBQzVCQyxPQUE4QixFQUM5QkMsUUFBb0UsRUFBQTtFQUFBLElBQUFDLEtBQUE7RUFFcEUsSUFDUUMsY0FBYyxHQUtsQkgsT0FBTyxDQUxUSSxJQUFJO0lBQ0pDLFlBQVksR0FJVkwsT0FBTyxDQUpUSyxZQUFZO0lBQ1pDLE9BQU8sR0FHTE4sT0FBTyxDQUhUTSxPQUFPO0lBQUFDLGtCQUFBLEdBR0xQLE9BQU8sQ0FGVFEsU0FBUztJQUFUQSxTQUFTLEdBQUFELGtCQUFBLGNBQUcsSUFBSSxHQUFBQSxrQkFBQTtJQUNoQkUsYUFBYSxHQUNYVCxPQUFPLENBRFRTLGFBQWE7RUFHZjtFQUNBO0VBQ0EsSUFBQUMsbUJBQUEsR0FBb0NkLGtCQUFrQixDQUFDLEtBQUssRUFBRU8sY0FBYyxDQUFDO0lBQUFRLG9CQUFBLEdBQUFDLGNBQUEsQ0FBQUYsbUJBQUE7SUFBdEVHLFVBQVUsR0FBQUYsb0JBQUE7SUFBRUcsYUFBYSxHQUFBSCxvQkFBQTtFQUVoQyxJQUFNSSxPQUFPLEdBQUdqQixnQkFBZ0IsQ0FBQyxVQUFDa0IsUUFBaUIsRUFBSTtJQUNyREYsYUFBYSxDQUFDRSxRQUFRLENBQUM7SUFDdkJYLFlBQVksS0FBQSxJQUFBLElBQVpBLFlBQVksS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWkEsWUFBWSxDQUFHVyxRQUFRLENBQUM7RUFDMUIsQ0FBQyxDQUFDO0VBRUY7RUFDQTtFQUNBO0VBQ0EsSUFBQUMscUJBQUEsR0FBNkRwQixvQkFBb0IsQ0FDL0U7TUFBQSxPQUFNa0IsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUFBLEdBQ3BCTixhQUFhLENBQ2Q7SUFIWVMsYUFBYSxHQUFBRCxxQkFBQSxDQUFsQkUsR0FBRztJQUF5QkMsb0JBQW9CLEdBQUFILHFCQUFBLENBQTVCSSxNQUFNO0VBS2xDLElBQU1DLFVBQVUsR0FBR3hCLGdCQUFnQixDQUFDLFlBQUs7SUFDdkNpQixPQUFPLENBQUMsSUFBSSxDQUFDO0VBQ2YsQ0FBQyxDQUFDO0VBRUYsSUFBTVEsVUFBVSxHQUFHekIsZ0JBQWdCLENBQUMsWUFBSztJQUN2Q3NCLG9CQUFvQixDQUFBLENBQUU7SUFDdEJMLE9BQU8sQ0FBQyxLQUFLLENBQUM7RUFDaEIsQ0FBQyxDQUFDO0VBRUYsSUFBTVMsWUFBWSxHQUFHMUIsZ0JBQWdCLENBQUMsVUFBTzJCLE1BQStCO0lBQUEsT0FBSWpELFNBQUEsQ0FBQTBCLEtBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsZUFBQXdCLG1CQUFBLENBQUFDLElBQUEsQ0FBQSxTQUFBQyxRQUFBO01BQUEsT0FBQUYsbUJBQUEsQ0FBQUcsSUFBQSxXQUFBQyxRQUFBO1FBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUExQyxJQUFBO1VBQUE7WUFBQTBDLFFBQUEsQ0FBQTFDLElBQUE7WUFDOUUsT0FBTWEsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUd3QixNQUFNLENBQUM7VUFBQTtZQUV4QixJQUFJakIsU0FBUyxFQUFFO2NBQ2IsSUFBSUMsYUFBYSxJQUFJQSxhQUFhLEdBQUcsQ0FBQyxFQUFFO2dCQUN0Q1MsYUFBYSxDQUFBLENBQUU7Y0FDakIsQ0FBQyxNQUFNO2dCQUNMSCxPQUFPLENBQUMsS0FBSyxDQUFDO2NBQ2hCO1lBQ0Y7VUFBQztVQUFBO1lBQUEsT0FBQWUsUUFBQSxDQUFBRSxJQUFBO1FBQUE7TUFBQSxHQUFBSixPQUFBO0lBQUEsQ0FDRixFQUFBO0VBQUEsRUFBQztFQUVGO0VBQ0EsSUFBTUssV0FBVyxHQUFHM0IsT0FBTyxnQkFDdkJYLEtBQUssQ0FBQ3VDLFlBQVksQ0FBQzVCLE9BQXNELEVBQUU7SUFDekU2QixPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBQSxFQUF5QjtNRDNCeEIsSUFBSUMsRUFBRTtNQzRCWmQsVUFBVSxDQUFBLENBQUU7TUFDWixJQUFNZSxlQUFlLEdBQUcsQ0FBQUQsRUFBQSxHQUFDOUIsT0FBTyxDQUFDZ0MsS0FBaUMsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRCxPQUFPO01BQzNFLElBQUksT0FBT0UsZUFBZSxLQUFLLFVBQVUsRUFBRTtRQUN4Q0EsZUFBNkMsQ0FBQTNDLEtBQUEsU0FBQTZDLFNBQVEsQ0FBQztNQUN6RDtJQUNGO0VEMUJBLENDMkJELENBQUMsR0FDRixJQUFJO0VBRVIsT0FBTztJQUNMMUIsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZvQixXQUFXLEVBQVhBLFdBQVc7SUFDWFQsWUFBWSxFQUFaQSxZQUFZO0lBQ1pELFVBQVUsRUFBVkEsVUFBVTtJQUNWRCxVQUFVLEVBQVZBO0VEM0JBLENDNEJEO0FBQ0g7QUFFQSxlQUFldkIsY0FBYyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vbGF5b3V0cy91c2VPdmVybGF5Rm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VDb250cm9sbGVkU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VDb250cm9sbGVkU3RhdGUnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmV4cG9ydCBmdW5jdGlvbiB1c2VPdmVybGF5Rm9ybShvcHRpb25zLCBvbkZpbmlzaCkge1xuICAgIGNvbnN0IHsgb3BlbjogY29udHJvbGxlZE9wZW4sIG9uT3BlbkNoYW5nZSwgdHJpZ2dlciwgYXV0b0Nsb3NlID0gdHJ1ZSwgc3VibWl0VGltZW91dCwgfSA9IG9wdGlvbnM7XG4gICAgLy8gQ29udHJvbGxlZCB3aGVuIGBjb250cm9sbGVkT3BlbmAgaXMgcGFzc2VkLCBpbnRlcm5hbCBvdGhlcndpc2Ug4oCUIGFuZCBhbHdheXNcbiAgICAvLyBmb3J3YXJkIHRoZSBjaGFuZ2UgdG8gYG9uT3BlbkNoYW5nZWAuXG4gICAgY29uc3QgW21lcmdlZE9wZW4sIHNldE1lcmdlZE9wZW5dID0gdXNlQ29udHJvbGxlZFN0YXRlKGZhbHNlLCBjb250cm9sbGVkT3Blbik7XG4gICAgY29uc3Qgc2V0T3BlbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldE1lcmdlZE9wZW4obmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIC8vIERlZmVycmVkIGF1dG8tY2xvc2UgYWZ0ZXIgc3VibWl0LiBgY2FuY2VsYCBjbGVhcnMgYW55IHBlbmRpbmcgY2xvc2UgKGUuZy5cbiAgICAvLyB3aGVuIHRoZSBvdmVybGF5IGlzIGhpZGRlbiBmaXJzdCk7IHRoZSB0aW1lciBpcyBhbHNvIGF1dG8tY2FuY2VsbGVkIG9uXG4gICAgLy8gdW5tb3VudC5cbiAgICBjb25zdCB7IHJ1bjogc2NoZWR1bGVDbG9zZSwgY2FuY2VsOiBjYW5jZWxTY2hlZHVsZWRDbG9zZSB9ID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soKCkgPT4gc2V0T3BlbihmYWxzZSksIHN1Ym1pdFRpbWVvdXQpO1xuICAgIGNvbnN0IGhhbmRsZVNob3cgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgc2V0T3Blbih0cnVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVIaWRlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGNhbmNlbFNjaGVkdWxlZENsb3NlKCk7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUZpbmlzaCA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlcykgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICB5aWVsZCAob25GaW5pc2ggPT09IG51bGwgfHwgb25GaW5pc2ggPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoKHZhbHVlcykpO1xuICAgICAgICBpZiAoYXV0b0Nsb3NlKSB7XG4gICAgICAgICAgICBpZiAoc3VibWl0VGltZW91dCAmJiBzdWJtaXRUaW1lb3V0ID4gMCkge1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlQ2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIENsb25lIHRyaWdnZXIgd2l0aCBvbkNsaWNrIGhhbmRsZXJcbiAgICBjb25zdCB0cmlnZ2VyTm9kZSA9IHRyaWdnZXJcbiAgICAgICAgPyBSZWFjdC5jbG9uZUVsZW1lbnQodHJpZ2dlciwge1xuICAgICAgICAgICAgb25DbGljazogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgaGFuZGxlU2hvdygpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbmFsT25DbGljayA9IChfYSA9IHRyaWdnZXIucHJvcHMpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vbkNsaWNrO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxPbkNsaWNrID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsT25DbGljayguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgbWVyZ2VkT3BlbixcbiAgICAgICAgdHJpZ2dlck5vZGUsXG4gICAgICAgIGhhbmRsZUZpbmlzaCxcbiAgICAgICAgaGFuZGxlSGlkZSxcbiAgICAgICAgaGFuZGxlU2hvdyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlT3ZlcmxheUZvcm07IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import type { ButtonProps } from "../Button";
|
|
3
|
+
import { getNestedValue, setNestedValue } from './core/pathUtils';
|
|
3
4
|
import type { ProFormFieldTransformFn, ProFormValueEnumObj } from './interface';
|
|
5
|
+
export { getNestedValue, setNestedValue };
|
|
4
6
|
export declare function stableSerialize(value: unknown): string;
|
|
5
7
|
export declare function renderTextReadonly(value: unknown): ReactNode;
|
|
6
8
|
export declare function renderBooleanReadonly(value: unknown): ReactNode;
|
|
7
9
|
export declare function renderNumericReadonly(value: unknown): ReactNode;
|
|
8
|
-
export declare function getNestedValue(obj: Record<string, unknown>, path: string): unknown;
|
|
9
|
-
export declare function setNestedValue(obj: Record<string, unknown>, path: string, value: unknown): Record<string, unknown>;
|
|
10
10
|
export declare function resolveWidth(width: 'sm' | 'md' | 'lg' | 'xl' | number): number;
|
|
11
11
|
export declare function extractButtonProps(config: false | Partial<ButtonProps> | undefined): {
|
|
12
12
|
disabled: boolean;
|
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
3
|
-
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
4
2
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
5
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
6
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
7
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
8
3
|
var __rest = this && this.__rest || function (s, e) {
|
|
9
4
|
var t = {};
|
|
10
5
|
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
|
|
@@ -14,6 +9,10 @@ var __rest = this && this.__rest || function (s, e) {
|
|
|
14
9
|
return t;
|
|
15
10
|
};
|
|
16
11
|
import { WIDTH_SIZE_MAP } from './constants';
|
|
12
|
+
import { getNestedValue, setNestedValue } from './core/pathUtils';
|
|
13
|
+
// Re-exported for consumers that import the nested-path helpers from `./utils`
|
|
14
|
+
// (ProFormDependency, ProFormList). Canonical definitions live in core/pathUtils.
|
|
15
|
+
export { getNestedValue, setNestedValue };
|
|
17
16
|
// ---------------------------------------------------------------------------
|
|
18
17
|
// stableSerialize — deterministic deep serialization for params comparison
|
|
19
18
|
// ---------------------------------------------------------------------------
|
|
@@ -47,51 +46,6 @@ export function renderNumericReadonly(value) {
|
|
|
47
46
|
return String(num);
|
|
48
47
|
}
|
|
49
48
|
// ---------------------------------------------------------------------------
|
|
50
|
-
// Nested path utilities
|
|
51
|
-
// ---------------------------------------------------------------------------
|
|
52
|
-
export function getNestedValue(obj, path) {
|
|
53
|
-
var keys = path.split('.');
|
|
54
|
-
var current = obj;
|
|
55
|
-
var _iterator = _createForOfIteratorHelper(keys),
|
|
56
|
-
_step;
|
|
57
|
-
try {
|
|
58
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
59
|
-
var key = _step.value;
|
|
60
|
-
if (current === null || current === undefined || _typeof(current) !== 'object') {
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
63
|
-
current = current[key];
|
|
64
|
-
}
|
|
65
|
-
} catch (err) {
|
|
66
|
-
_iterator.e(err);
|
|
67
|
-
} finally {
|
|
68
|
-
_iterator.f();
|
|
69
|
-
}
|
|
70
|
-
return current;
|
|
71
|
-
}
|
|
72
|
-
export function setNestedValue(obj, path, value) {
|
|
73
|
-
var keys = path.split('.');
|
|
74
|
-
if (keys.length === 1) return Object.assign(Object.assign({}, obj), _defineProperty({}, path, value));
|
|
75
|
-
var result = Object.assign({}, obj);
|
|
76
|
-
var current = result;
|
|
77
|
-
for (var i = 0; i < keys.length - 1; i++) {
|
|
78
|
-
var key = keys[i];
|
|
79
|
-
var nextKey = keys[i + 1];
|
|
80
|
-
var isNextArray = /^\d+$/.test(nextKey);
|
|
81
|
-
if (current[key] === undefined || current[key] === null) {
|
|
82
|
-
current[key] = isNextArray ? [] : {};
|
|
83
|
-
}
|
|
84
|
-
if (Array.isArray(current[key])) {
|
|
85
|
-
current[key] = _toConsumableArray(current[key]);
|
|
86
|
-
} else {
|
|
87
|
-
current[key] = Object.assign({}, current[key]);
|
|
88
|
-
}
|
|
89
|
-
current = current[key];
|
|
90
|
-
}
|
|
91
|
-
current[keys[keys.length - 1]] = value;
|
|
92
|
-
return result;
|
|
93
|
-
}
|
|
94
|
-
// ---------------------------------------------------------------------------
|
|
95
49
|
// resolveWidth — convert named width to px or pass through number
|
|
96
50
|
// ---------------------------------------------------------------------------
|
|
97
51
|
export function resolveWidth(width) {
|
|
@@ -208,4 +162,4 @@ export function valueEnumToOptions(valueEnum) {
|
|
|
208
162
|
};
|
|
209
163
|
});
|
|
210
164
|
}
|
|
211
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIldJRFRIX1NJWkVfTUFQIiwic3RhYmxlU2VyaWFsaXplIiwidmFsdWUiLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJfdHlwZW9mIiwiSlNPTiIsInN0cmluZ2lmeSIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImpvaW4iLCJrZXlzIiwic29ydCIsImsiLCJyZW5kZXJUZXh0UmVhZG9ubHkiLCJyZW5kZXJCb29sZWFuUmVhZG9ubHkiLCJyZW5kZXJOdW1lcmljUmVhZG9ubHkiLCJudW0iLCJOdW1iZXIiLCJpc05hTiIsImdldE5lc3RlZFZhbHVlIiwib2JqIiwicGF0aCIsInNwbGl0IiwiY3VycmVudCIsIl9pdGVyYXRvciIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX3N0ZXAiLCJuIiwiZG9uZSIsImtleSIsImVyciIsImYiLCJzZXROZXN0ZWRWYWx1ZSIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eSIsInJlc3VsdCIsIm5leHRLZXkiLCJpc05leHRBcnJheSIsInRlc3QiLCJfdG9Db25zdW1hYmxlQXJyYXkiLCJyZXNvbHZlV2lkdGgiLCJ3aWR0aCIsIl9hIiwibWQiLCJleHRyYWN0QnV0dG9uUHJvcHMiLCJjb25maWciLCJkaXNhYmxlZCIsInJlc3QiLCJfY29uZmlnJGRpc2FibGVkIiwiaXNQbGFpbk9iamVjdCIsInRyYW5zZm9ybVN1Ym1pdFZhbHVlcyIsInZhbHVlcyIsInRyYW5zZm9ybXMiLCJmb3JFYWNoIiwibmFtZSIsInRyYW5zZm9ybUZuIiwicmF3VmFsdWUiLCJ0cmFuc2Zvcm1lZCIsImRvdEluZGV4IiwibGFzdEluZGV4T2YiLCJwYXJlbnRQYXRoIiwic2xpY2UiLCJwYXJlbnQiLCJjaGlsZEtleSIsIm9taXROaWxWYWx1ZXMiLCJfaSIsIl9PYmplY3Qka2V5cyIsInYiLCJjbGVhbmVkIiwidmFsdWVFbnVtVG9PcHRpb25zIiwidmFsdWVFbnVtIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5IiwibGFiZWwiLCJ0ZXh0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlOLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDTyxvQkFBb0IsQ0FBQ0wsSUFBSSxDQUFD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RyxDQUFDLENBQUM7TUFDaEMsSUFBSTlFLE1BQU0sQ0FBQ3FCLElBQUksQ0FBQzBELE9BQU8sQ0FBQyxDQUFDeEUsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUNuQ3VDLE1BQU0sQ0FBQ04sR0FBRyxDQUFDLEdBQUd1QyxPQUFPO01BQ3ZCO0lBQ0YsQ0FBQyxNQUFNO01BQ0xqQyxNQUFNLENBQUNOLEdBQUcsQ0FBQyxHQUFHc0MsQ0FBQztJQUNqQjtFQUNGO0VBQ0EsT0FBT2hDLE1BQU07QUFDZjtBQVdBLE9BQU0sU0FBVWtDLGtCQUFrQkEsQ0FDaENDLFNBQThCLEVBQUE7RUFFOUIsT0FBT2pGLE1BQU0sQ0FBQ2tGLE9BQU8sQ0FBQ0QsU0FBUyxDQUFDLENBQUM5RCxHQUFHLENBQUMsVUFBQWdFLElBQUEsRUFBa0I7SUFBQSxJQUFBQyxLQUFBLEdBQUFDLGNBQUEsQ0FBQUYsSUFBQTtNQUFoQjNDLEdBQUcsR0FBQTRDLEtBQUE7TUFBRTVCLE1BQU0sR0FBQTRCLEtBQUE7SUFDaEQsSUFBSSxPQUFPNUIsTUFBTSxLQUFLLFFBQVEsRUFBRTtNQUM5QixPQUFPO1FBQUU4QixLQUFLLEVBQUU5QixNQUFNO1FBQUU3QyxLQUFLLEVBQUU2QjtNQUFHLENBQUU7SUFDdEM7SUFDQSxPQUFPO01BQUU4QyxLQUFLLEVBQUU5QixNQUFNLENBQUMrQixJQUFJO01BQUU1RSxLQUFLLEVBQUU2QixHQUFHO01BQUVpQixRQUFRLEVBQUVELE1BQU0sQ0FBQ0M7SUFBUSxDQUFFO0VBQ3RFLENBQUMsQ0FBQztBQUNKIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IFdJRFRIX1NJWkVfTUFQIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBzdGFibGVTZXJpYWxpemUg4oCUIGRldGVybWluaXN0aWMgZGVlcCBzZXJpYWxpemF0aW9uIGZvciBwYXJhbXMgY29tcGFyaXNvblxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gc3RhYmxlU2VyaWFsaXplKHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gJ1snICsgdmFsdWUubWFwKHN0YWJsZVNlcmlhbGl6ZSkuam9pbignLCcpICsgJ10nO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsdWUpLnNvcnQoKTtcbiAgICByZXR1cm4gKCd7JyArXG4gICAgICAgIGtleXNcbiAgICAgICAgICAgIC5tYXAoKGspID0+IEpTT04uc3RyaW5naWZ5KGspICtcbiAgICAgICAgICAgICc6JyArXG4gICAgICAgICAgICBzdGFibGVTZXJpYWxpemUodmFsdWVba10pKVxuICAgICAgICAgICAgLmpvaW4oJywnKSArXG4gICAgICAgICd9Jyk7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJlYWRvbmx5IHJlbmRlcmVyc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyVGV4dFJlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckJvb2xlYW5SZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIHJldHVybiB2YWx1ZSA/ICdZZXMnIDogJ05vJztcbn1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJOdW1lcmljUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpXG4gICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgIGNvbnN0IG51bSA9IE51bWJlcih2YWx1ZSk7XG4gICAgaWYgKE51bWJlci5pc05hTihudW0pKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIHJldHVybiBTdHJpbmcobnVtKTtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gTmVzdGVkIHBhdGggdXRpbGl0aWVzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXN0ZWRWYWx1ZShvYmosIHBhdGgpIHtcbiAgICBjb25zdCBrZXlzID0gcGF0aC5zcGxpdCgnLicpO1xuICAgIGxldCBjdXJyZW50ID0gb2JqO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMpIHtcbiAgICAgICAgaWYgKGN1cnJlbnQgPT09IG51bGwgfHwgY3VycmVudCA9PT0gdW5kZWZpbmVkIHx8IHR5cGVvZiBjdXJyZW50ICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICAgIH1cbiAgICByZXR1cm4gY3VycmVudDtcbn1cbmV4cG9ydCBmdW5jdGlvbiBzZXROZXN0ZWRWYWx1ZShvYmosIHBhdGgsIHZhbHVlKSB7XG4gICAgY29uc3Qga2V5cyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBpZiAoa2V5cy5sZW5ndGggPT09IDEpXG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG9iaiksIHsgW3BhdGhdOiB2YWx1ZSB9KTtcbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBvYmopO1xuICAgIGxldCBjdXJyZW50ID0gcmVzdWx0O1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgY29uc3Qga2V5ID0ga2V5c1tpXTtcbiAgICAgICAgY29uc3QgbmV4dEtleSA9IGtleXNbaSArIDFdO1xuICAgICAgICBjb25zdCBpc05leHRBcnJheSA9IC9eXFxkKyQvLnRlc3QobmV4dEtleSk7XG4gICAgICAgIGlmIChjdXJyZW50W2tleV0gPT09IHVuZGVmaW5lZCB8fCBjdXJyZW50W2tleV0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IGlzTmV4dEFycmF5ID8gW10gOiB7fTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShjdXJyZW50W2tleV0pKSB7XG4gICAgICAgICAgICBjdXJyZW50W2tleV0gPSBbLi4uY3VycmVudFtrZXldXTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRba2V5XSk7XG4gICAgICAgIH1cbiAgICAgICAgY3VycmVudCA9IGN1cnJlbnRba2V5XTtcbiAgICB9XG4gICAgY3VycmVudFtrZXlzW2tleXMubGVuZ3RoIC0gMV1dID0gdmFsdWU7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gcmVzb2x2ZVdpZHRoIOKAlCBjb252ZXJ0IG5hbWVkIHdpZHRoIHRvIHB4IG9yIHBhc3MgdGhyb3VnaCBudW1iZXJcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVXaWR0aCh3aWR0aCkge1xuICAgIHZhciBfYTtcbiAgICBpZiAodHlwZW9mIHdpZHRoID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIHdpZHRoO1xuICAgIHJldHVybiAoX2EgPSBXSURUSF9TSVpFX01BUFt3aWR0aF0pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFdJRFRIX1NJWkVfTUFQLm1kO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBleHRyYWN0QnV0dG9uUHJvcHMg4oCUIHNhZmVseSBleHRyYWN0IHByb3BzIGZyb20gYnV0dG9uIGNvbmZpZ1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdEJ1dHRvblByb3BzKGNvbmZpZykge1xuICAgIGlmIChjb25maWcgPT09IGZhbHNlIHx8IGNvbmZpZyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiB7IGRpc2FibGVkOiBmYWxzZSwgcmVzdDoge30gfTtcbiAgICB9XG4gICAgY29uc3QgeyBkaXNhYmxlZCA9IGZhbHNlIH0gPSBjb25maWcsIHJlc3QgPSBfX3Jlc3QoY29uZmlnLCBbXCJkaXNhYmxlZFwiXSk7XG4gICAgcmV0dXJuIHsgZGlzYWJsZWQsIHJlc3QgfTtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gdHJhbnNmb3JtU3VibWl0VmFsdWVzIOKAlCBhcHBseSByZWdpc3RlcmVkIGZpZWxkIHRyYW5zZm9ybXMgdG8gZm9ybSB2YWx1ZXNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZnVuY3Rpb24gaXNQbGFpbk9iamVjdCh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXModmFsdWVzLCB0cmFuc2Zvcm1zKSB7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRyYW5zZm9ybXMpO1xuICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgcmV0dXJuIHZhbHVlcztcbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCB2YWx1ZXMpO1xuICAgIC8vIFByb2Nlc3MgdHJhbnNmb3JtcyBpbiBzb3J0ZWQga2V5IG9yZGVyIGZvciBkZXRlcm1pbmlzbVxuICAgIGtleXMuc29ydCgpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtRm4gPSB0cmFuc2Zvcm1zW25hbWVdO1xuICAgICAgICBpZiAodHlwZW9mIHRyYW5zZm9ybUZuICE9PSAnZnVuY3Rpb24nKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByYXdWYWx1ZSA9IGdldE5lc3RlZFZhbHVlKHJlc3VsdCwgbmFtZSk7XG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkID0gdHJhbnNmb3JtRm4ocmF3VmFsdWUsIG5hbWUsIHJlc3VsdCk7XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHRyYW5zZm9ybWVkKSkge1xuICAgICAgICAgICAgLy8gSWYgdHJhbnNmb3JtIHJldHVybnMgYW4gb2JqZWN0LCBkZWxldGUgb3JpZ2luYWwga2V5IGFuZCBtZXJnZSB0byBwYXJlbnRcbiAgICAgICAgICAgIGNvbnN0IGRvdEluZGV4ID0gbmFtZS5sYXN0SW5kZXhPZignLicpO1xuICAgICAgICAgICAgaWYgKGRvdEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgICAgIC8vIFRvcC1sZXZlbCBmaWVsZCDigJQgZGVsZXRlIG9yaWdpbmFsIGFuZCBtZXJnZSBhdCByb290XG4gICAgICAgICAgICAgICAgZGVsZXRlIHJlc3VsdFtuYW1lXTtcbiAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gTmVzdGVkIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGludG8gcGFyZW50IG9iamVjdFxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBuYW1lLnNsaWNlKDAsIGRvdEluZGV4KTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnQgPSBnZXROZXN0ZWRWYWx1ZShyZXN1bHQsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHBhcmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRLZXkgPSBuYW1lLnNsaWNlKGRvdEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJlbnRbY2hpbGRLZXldO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBhcmVudCwgdHJhbnNmb3JtZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIC8vIFByaW1pdGl2ZSB2YWx1ZSDigJQgcmVwbGFjZSBpbi1wbGFjZVxuICAgICAgICAgICAgY29uc3Qga2V5cyA9IG5hbWUuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChrZXlzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtuYW1lXSA9IHRyYW5zZm9ybWVkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgbGV0IGN1cnJlbnQgPSByZXN1bHQ7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBrZXlzW2ldO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzUGxhaW5PYmplY3QoY3VycmVudFtrZXldKSAmJiAhQXJyYXkuaXNBcnJheShjdXJyZW50W2tleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50W2tleV0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjdXJyZW50ID0gY3VycmVudFtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjdXJyZW50W2tleXNba2V5cy5sZW5ndGggLSAxXV0gPSB0cmFuc2Zvcm1lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIG9taXROaWxWYWx1ZXMg4oCUIHJlY3Vyc2l2ZWx5IHJlbW92ZSBudWxsIC8gdW5kZWZpbmVkIC8gJycgZnJvbSBvYmplY3Rcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuZXhwb3J0IGZ1bmN0aW9uIG9taXROaWxWYWx1ZXModmFsdWVzKSB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModmFsdWVzKSkge1xuICAgICAgICBjb25zdCB2ID0gdmFsdWVzW2tleV07XG4gICAgICAgIGlmICh2ID09PSBudWxsIHx8IHYgPT09IHVuZGVmaW5lZCB8fCB2ID09PSAnJylcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBpZiAoaXNQbGFpbk9iamVjdCh2KSkge1xuICAgICAgICAgICAgY29uc3QgY2xlYW5lZCA9IG9taXROaWxWYWx1ZXModik7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2xlYW5lZCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdFtrZXldID0gY2xlYW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRW51bVRvT3B0aW9ucyh2YWx1ZUVudW0pIHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXModmFsdWVFbnVtKS5tYXAoKFtrZXksIGNvbmZpZ10pID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBjb25maWcgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4geyBsYWJlbDogY29uZmlnLCB2YWx1ZToga2V5IH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgbGFiZWw6IGNvbmZpZy50ZXh0LCB2YWx1ZToga2V5LCBkaXNhYmxlZDogY29uZmlnLmRpc2FibGVkIH07XG4gICAgfSk7XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
165
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS91dGlscy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvUHJvRm9ybS91dGlscy50cyJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIldJRFRIX1NJWkVfTUFQIiwiZ2V0TmVzdGVkVmFsdWUiLCJzZXROZXN0ZWRWYWx1ZSIsInN0YWJsZVNlcmlhbGl6ZSIsInZhbHVlIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwiX3R5cGVvZiIsIkpTT04iLCJzdHJpbmdpZnkiLCJBcnJheSIsImlzQXJyYXkiLCJtYXAiLCJqb2luIiwia2V5cyIsInNvcnQiLCJrIiwicmVuZGVyVGV4dFJlYWRvbmx5IiwicmVuZGVyQm9vbGVhblJlYWRvbmx5IiwicmVuZGVyTnVtZXJpY1JlYWRvbmx5IiwibnVtIiwiTnVtYmVyIiwiaXNOYU4iLCJyZXNvbHZlV2lkdGgiLCJ3aWR0aCIsIl9hIiwibWQiLCJleHRyYWN0QnV0dG9uUHJvcHMiLCJjb25maWciLCJkaXNhYmxlZCIsInJlc3QiLCJfY29uZmlnJGRpc2FibGVkIiwiaXNQbGFpbk9iamVjdCIsInRyYW5zZm9ybVN1Ym1pdFZhbHVlcyIsInZhbHVlcyIsInRyYW5zZm9ybXMiLCJyZXN1bHQiLCJhc3NpZ24iLCJmb3JFYWNoIiwibmFtZSIsInRyYW5zZm9ybUZuIiwicmF3VmFsdWUiLCJ0cmFuc2Zvcm1lZCIsImRvdEluZGV4IiwibGFzdEluZGV4T2YiLCJwYXJlbnRQYXRoIiwic2xpY2UiLCJwYXJlbnQiLCJjaGlsZEtleSIsInNwbGl0IiwiY3VycmVudCIsImtleSIsIm9taXROaWxWYWx1ZXMiLCJfaSIsIl9PYmplY3Qka2V5cyIsInYiLCJjbGVhbmVkIiwidmFsdWVFbnVtVG9PcHRpb25zIiwidmFsdWVFbnVtIiwiZW50cmllcyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5IiwibGFiZWwiLCJ0ZXh0Il0sIm1hcHBpbmdzIjoiOztBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVBQzFFUixDQUFDLENBQUNDLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBR1YsQ0FBQyxDQUFDRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0osT0FBT1IsQ0FBQztBQUNaLENBQUM7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QUFHLENBQUMsRUFBRTtRQUNuQ3NDLE1BQU0sQ0FBQ2UsR0FBRyxDQUFDLEdBQUdLLE9BQU87TUFDdkI7SUFDRixDQUFDLE1BQU07TUFDTHBCLE1BQU0sQ0FBQ2UsR0FBRyxDQUFDLEdBQUdJLENBQUM7SUFDakI7RUFDRjtFQUNBLE9BQU9uQixNQUFNO0FBQ2Y7QUFXQSxPQUFNLFNBQVVxQixrQkFBa0JBLENBQ2hDQyxTQUE4QixFQUFBO0VBRTlCLE9BQU9uRSxNQUFNLENBQUNvRSxPQUFPLENBQUNELFNBQVMsQ0FBQyxDQUFDOUMsR0FBRyxDQUFDLFVBQUFnRCxJQUFBLEVBQWtCO0lBQUEsSUFBQUMsS0FBQSxHQUFBQyxjQUFBLENBQUFGLElBQUE7TUFBaEJULEdBQUcsR0FBQVUsS0FBQTtNQUFFakMsTUFBTSxHQUFBaUMsS0FBQTtJQUNoRCxJQUFJLE9BQU9qQyxNQUFNLEtBQUssUUFBUSxFQUFFO01BQzlCLE9BQU87UUFBRW1DLEtBQUssRUFBRW5DLE1BQU07UUFBRXhCLEtBQUssRUFBRStDO01BQUcsQ0FBRTtJQUN0QztJQUNBLE9BQU87TUFBRVksS0FBSyxFQUFFbkMsTUFBTSxDQUFDb0MsSUFBSTtNQUFFNUQsS0FBSyxFQUFFK0MsR0FBRztNQUFFdEIsUUFBUSxFQUFFRCxNQUFNLENBQUNDO0lBQVEsQ0FBRTtFQUN0RSxDQUFDLENBQUM7QUFDSiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vdXRpbHMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBXSURUSF9TSVpFX01BUCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlLCBzZXROZXN0ZWRWYWx1ZSB9IGZyb20gJy4vY29yZS9wYXRoVXRpbHMnO1xuLy8gUmUtZXhwb3J0ZWQgZm9yIGNvbnN1bWVycyB0aGF0IGltcG9ydCB0aGUgbmVzdGVkLXBhdGggaGVscGVycyBmcm9tIGAuL3V0aWxzYFxuLy8gKFByb0Zvcm1EZXBlbmRlbmN5LCBQcm9Gb3JtTGlzdCkuIENhbm9uaWNhbCBkZWZpbml0aW9ucyBsaXZlIGluIGNvcmUvcGF0aFV0aWxzLlxuZXhwb3J0IHsgZ2V0TmVzdGVkVmFsdWUsIHNldE5lc3RlZFZhbHVlIH07XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIHN0YWJsZVNlcmlhbGl6ZSDigJQgZGV0ZXJtaW5pc3RpYyBkZWVwIHNlcmlhbGl6YXRpb24gZm9yIHBhcmFtcyBjb21wYXJpc29uXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBzdGFibGVTZXJpYWxpemUodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAnWycgKyB2YWx1ZS5tYXAoc3RhYmxlU2VyaWFsaXplKS5qb2luKCcsJykgKyAnXSc7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSkuc29ydCgpO1xuICAgIHJldHVybiAoJ3snICtcbiAgICAgICAga2V5c1xuICAgICAgICAgICAgLm1hcCgoaykgPT4gSlNPTi5zdHJpbmdpZnkoaykgK1xuICAgICAgICAgICAgJzonICtcbiAgICAgICAgICAgIHN0YWJsZVNlcmlhbGl6ZSh2YWx1ZVtrXSkpXG4gICAgICAgICAgICAuam9pbignLCcpICtcbiAgICAgICAgJ30nKTtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmVhZG9ubHkgcmVuZGVyZXJzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiByZW5kZXJUZXh0UmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG59XG5leHBvcnQgZnVuY3Rpb24gcmVuZGVyQm9vbGVhblJlYWRvbmx5KHZhbHVlKSB7XG4gICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIHZhbHVlID8gJ1llcycgOiAnTm8nO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlck51bWVyaWNSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJylcbiAgICAgICAgcmV0dXJuICctJztcbiAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJylcbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG4gICAgY29uc3QgbnVtID0gTnVtYmVyKHZhbHVlKTtcbiAgICBpZiAoTnVtYmVyLmlzTmFOKG51bSkpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIFN0cmluZyhudW0pO1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyByZXNvbHZlV2lkdGgg4oCUIGNvbnZlcnQgbmFtZWQgd2lkdGggdG8gcHggb3IgcGFzcyB0aHJvdWdoIG51bWJlclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVdpZHRoKHdpZHRoKSB7XG4gICAgdmFyIF9hO1xuICAgIGlmICh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInKVxuICAgICAgICByZXR1cm4gd2lkdGg7XG4gICAgcmV0dXJuIChfYSA9IFdJRFRIX1NJWkVfTUFQW3dpZHRoXSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogV0lEVEhfU0laRV9NQVAubWQ7XG59XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIGV4dHJhY3RCdXR0b25Qcm9wcyDigJQgc2FmZWx5IGV4dHJhY3QgcHJvcHMgZnJvbSBidXR0b24gY29uZmlnXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0QnV0dG9uUHJvcHMoY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZyA9PT0gZmFsc2UgfHwgY29uZmlnID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHsgZGlzYWJsZWQ6IGZhbHNlLCByZXN0OiB7fSB9O1xuICAgIH1cbiAgICBjb25zdCB7IGRpc2FibGVkID0gZmFsc2UgfSA9IGNvbmZpZywgcmVzdCA9IF9fcmVzdChjb25maWcsIFtcImRpc2FibGVkXCJdKTtcbiAgICByZXR1cm4geyBkaXNhYmxlZCwgcmVzdCB9O1xufVxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMg4oCUIGFwcGx5IHJlZ2lzdGVyZWQgZmllbGQgdHJhbnNmb3JtcyB0byBmb3JtIHZhbHVlc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5mdW5jdGlvbiBpc1BsYWluT2JqZWN0KHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyh2YWx1ZXMsIHRyYW5zZm9ybXMpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModHJhbnNmb3Jtcyk7XG4gICAgaWYgKGtleXMubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gdmFsdWVzO1xuICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5hc3NpZ24oe30sIHZhbHVlcyk7XG4gICAgLy8gUHJvY2VzcyB0cmFuc2Zvcm1zIGluIHNvcnRlZCBrZXkgb3JkZXIgZm9yIGRldGVybWluaXNtXG4gICAga2V5cy5zb3J0KCkuZm9yRWFjaCgobmFtZSkgPT4ge1xuICAgICAgICBjb25zdCB0cmFuc2Zvcm1GbiA9IHRyYW5zZm9ybXNbbmFtZV07XG4gICAgICAgIGlmICh0eXBlb2YgdHJhbnNmb3JtRm4gIT09ICdmdW5jdGlvbicpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlID0gZ2V0TmVzdGVkVmFsdWUocmVzdWx0LCBuYW1lKTtcbiAgICAgICAgY29uc3QgdHJhbnNmb3JtZWQgPSB0cmFuc2Zvcm1GbihyYXdWYWx1ZSwgbmFtZSwgcmVzdWx0KTtcbiAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodHJhbnNmb3JtZWQpKSB7XG4gICAgICAgICAgICAvLyBJZiB0cmFuc2Zvcm0gcmV0dXJucyBhbiBvYmplY3QsIGRlbGV0ZSBvcmlnaW5hbCBrZXkgYW5kIG1lcmdlIHRvIHBhcmVudFxuICAgICAgICAgICAgY29uc3QgZG90SW5kZXggPSBuYW1lLmxhc3RJbmRleE9mKCcuJyk7XG4gICAgICAgICAgICBpZiAoZG90SW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgLy8gVG9wLWxldmVsIGZpZWxkIOKAlCBkZWxldGUgb3JpZ2luYWwgYW5kIG1lcmdlIGF0IHJvb3RcbiAgICAgICAgICAgICAgICBkZWxldGUgcmVzdWx0W25hbWVdO1xuICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBOZXN0ZWQgZmllbGQg4oCUIGRlbGV0ZSBvcmlnaW5hbCBhbmQgbWVyZ2UgaW50byBwYXJlbnQgb2JqZWN0XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IG5hbWUuc2xpY2UoMCwgZG90SW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IGdldE5lc3RlZFZhbHVlKHJlc3VsdCwgcGFyZW50UGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QocGFyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZEtleSA9IG5hbWUuc2xpY2UoZG90SW5kZXggKyAxKTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHBhcmVudFtjaGlsZEtleV07XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyZW50LCB0cmFuc2Zvcm1lZCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgLy8gUHJpbWl0aXZlIHZhbHVlIOKAlCByZXBsYWNlIGluLXBsYWNlXG4gICAgICAgICAgICBjb25zdCBrZXlzID0gbmFtZS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W25hbWVdID0gdHJhbnNmb3JtZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZXQgY3VycmVudCA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGtleXMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IGtleXNbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNQbGFpbk9iamVjdChjdXJyZW50W2tleV0pICYmICFBcnJheS5pc0FycmF5KGN1cnJlbnRba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRba2V5XSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50W2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGN1cnJlbnRba2V5c1trZXlzLmxlbmd0aCAtIDFdXSA9IHRyYW5zZm9ybWVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gb21pdE5pbFZhbHVlcyDigJQgcmVjdXJzaXZlbHkgcmVtb3ZlIG51bGwgLyB1bmRlZmluZWQgLyAnJyBmcm9tIG9iamVjdFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gb21pdE5pbFZhbHVlcyh2YWx1ZXMpIHtcbiAgICBjb25zdCByZXN1bHQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh2YWx1ZXMpKSB7XG4gICAgICAgIGNvbnN0IHYgPSB2YWx1ZXNba2V5XTtcbiAgICAgICAgaWYgKHYgPT09IG51bGwgfHwgdiA9PT0gdW5kZWZpbmVkIHx8IHYgPT09ICcnKVxuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgIGlmIChpc1BsYWluT2JqZWN0KHYpKSB7XG4gICAgICAgICAgICBjb25zdCBjbGVhbmVkID0gb21pdE5pbFZhbHVlcyh2KTtcbiAgICAgICAgICAgIGlmIChPYmplY3Qua2V5cyhjbGVhbmVkKS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBjbGVhbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSB2O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG59XG5leHBvcnQgZnVuY3Rpb24gdmFsdWVFbnVtVG9PcHRpb25zKHZhbHVlRW51bSkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyh2YWx1ZUVudW0pLm1hcCgoW2tleSwgY29uZmlnXSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGNvbmZpZyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB7IGxhYmVsOiBjb25maWcsIHZhbHVlOiBrZXkgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBsYWJlbDogY29uZmlnLnRleHQsIHZhbHVlOiBrZXksIGRpc2FibGVkOiBjb25maWcuZGlzYWJsZWQgfTtcbiAgICB9KTtcbn0iLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -30,7 +30,8 @@ var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, gene
|
|
|
30
30
|
};
|
|
31
31
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
32
32
|
import { memo, useImperativeHandle, useMemo, useRef } from 'react';
|
|
33
|
-
import
|
|
33
|
+
import useMemoizedFn from '@1money/hooks/useMemoizedFn';
|
|
34
|
+
import useSafeState from '@1money/hooks/useSafeState';
|
|
34
35
|
import { Pagination } from '../Pagination';
|
|
35
36
|
import { Table } from '../Table';
|
|
36
37
|
import { QueryFilter } from '../ProForm';
|
|
@@ -306,4 +307,4 @@ function ProTableInner(props) {
|
|
|
306
307
|
}
|
|
307
308
|
export var ProTable = /*#__PURE__*/memo(ProTableInner);
|
|
308
309
|
export default ProTable;
|
|
309
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlTWVtb2l6ZWRGbiIsInVzZVNhZmVTdGF0ZSIsIlBhZ2luYXRpb24iLCJUYWJsZSIsIlF1ZXJ5RmlsdGVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJDU1NfUFJFRklYIiwiREVGQVVMVF9DVVJSRU5UIiwiREVGQVVMVF9QQUdFX1NJWkUiLCJERUZBVUxUX1RFWFQiLCJ1c2VGZXRjaERhdGEiLCJnZW5Db2x1bW5zIiwiYXBwbHlTZWFyY2hUcmFuc2Zvcm1zIiwiZ2VuU2VhcmNoRmllbGRzIiwicmVhZFVybFZhbHVlcyIsInN5bmNUb1VybCIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsImtleSIsIlByb1RhYmxlSW5uZXIiLCJwcm9wcyIsIl90aGlzIiwiX2EiLCJfYiIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJjb2x1bW5zIiwicmVxdWVzdCIsImNvbnRyb2xsZWREYXRhIiwiZGF0YVNvdXJjZSIsImNvbnRyb2xsZWRMb2FkaW5nIiwibG9hZGluZyIsImRlZmF1bHREYXRhIiwibWFudWFsUmVxdWVzdCIsImRlYm91bmNlVGltZSIsInBvc3REYXRhIiwicG9sbGluZyIsImJlZm9yZVNlYXJjaFN1Ym1pdCIsImNvbHVtbkVtcHR5VGV4dCIsInNlYXJjaEZvcm1SZW5kZXIiLCJfcHJvcHMkcGFnaW5hdGlvbiIsInBhZ2luYXRpb24iLCJfcHJvcHMkc2VhcmNoIiwicm93U2VsZWN0aW9uIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiYWN0aW9uUmVmIiwib25Mb2FkIiwib25Mb2FkaW5nQ2hhbmdlIiwib25SZXF1ZXN0RXJyb3IiLCJvbkNoYW5nZSIsInJvd0tleSIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsImJvcmRlcmVkIiwic2Nyb2xsIiwic3RpY2t5IiwiZXhwYW5kYWJsZSIsImVtcHR5IiwidGFibGVMYXlvdXQiLCJyb3dDbGFzc05hbWUiLCJvblJvdyIsInN1bW1hcnkiLCJmb290ZXIiLCJjbGFzc2VzIiwidGFibGVDb2x1bW5zIiwic2VhcmNoQ2ZnIiwidW5kZWZpbmVkIiwiX3VzZU1lbW8iLCJzZWFyY2hGaWVsZHMiLCJmaWVsZHMiLCJzZWFyY2hJbml0aWFsVmFsdWVzIiwiaW5pdGlhbFZhbHVlcyIsInNlYXJjaEZpZWxkTmFtZXMiLCJuYW1lcyIsImhhc1NlYXJjaCIsImxlbmd0aCIsIm1lcmdlZEluaXRpYWxWYWx1ZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlYXJjaFBhcmFtcyIsInNldFNlYXJjaFBhcmFtcyIsImZvcm1SZWYiLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic29ydCIsInNldFNvcnQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VTYWZlU3RhdGU2IiwiZmlsdGVyIiwic2V0RmlsdGVyIiwicGFnaW5hdGVkIiwiZGVmYXVsdFBhZ2VTaXplIiwicGFnZVNpemUiLCJkZWZhdWx0Q3VycmVudCIsImN1cnJlbnQiLCJtYW51YWwiLCJfdXNlRmV0Y2hEYXRhIiwiZmV0Y2hlZERhdGEiLCJmZXRjaExvYWRpbmciLCJwYWdlSW5mbyIsInNldFBhZ2VJbmZvIiwicmVsb2FkIiwicmVzZXQiLCJoYW5kbGVTZWFyY2hGaW5pc2giLCJ2YWx1ZXMiLCJwZXJDb2x1bW4iLCJmaW5hbFBhcmFtcyIsImhhbmRsZVNlYXJjaFJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVUYWJsZUNoYW5nZSIsIm1ldGEiLCJzb3J0ZXIiLCJfbWV0YSRzb3J0ZXIiLCJjb2x1bW5LZXkiLCJvcmRlciIsIl9kZWZpbmVQcm9wZXJ0eSIsIlN0cmluZyIsImZpbHRlcnMiLCJoYW5kbGVQYWdlQ2hhbmdlIiwicGFnZSIsImN1cnJlbnREYXRhU291cmNlIiwiYWN0aW9uIiwicmVsb2FkQW5kUmVzdCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdG9wIiwic2VhcmNoTm9kZSIsInNlYXJjaEZvcm0iLCJkZWZhdWx0Q29sbGFwc2VkIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwic2VhcmNoQ29uZmlnIiwic2VhcmNoVGV4dCIsInJlc2V0VGV4dCIsIm9uRmluaXNoIiwib25SZXNldCIsImNoaWxkcmVuIiwidG90YWwiLCJQcm9UYWJsZSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtBLENBQUMsR0FBR0ssT0FBTyxDQUFDLEVBQUUsVUFBVUQsT0FBTyxFQUFFRSxNQUFN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LElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBS3NDLFNBQVMsRUFBRXVDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFBQWdGLFFBQUEsRUFDbkM3SixJQUFBLENBQUNTLFVBQVUsRUFBQTtVQUNUcUosS0FBSyxFQUFFMUMsUUFBUSxDQUFDMEMsS0FBSztVQUNyQi9DLE9BQU8sRUFBRUssUUFBUSxDQUFDTCxPQUFPO1VBQ3pCRixRQUFRLEVBQUVPLFFBQVEsQ0FBQ1AsUUFBUTtVQUMzQjlDLFFBQVEsRUFBRXdFO1FBQWdCLENBQUE7TUFDMUIsQ0FBQSxDQUVMO0lBQUEsQ0FBQSxDQUNHO0VBQUEsQ0FBQSxDQUNGO0FBRVY7QUFFQSxPQUFPLElBQU13QixRQUFRLGdCQUFHNUosSUFBSSxDQUFDNEIsYUFBYSxDQUF5QjtBQUVuRSxlQUFlZ0ksUUFBUSIsImZpbGUiOiJjb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgdXNlTWVtbywgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlTWVtb2l6ZWRGbiwgdXNlU2FmZVN0YXRlIH0gZnJvbSAnQDFtb25leS9ob29rcyc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vUGFnaW5hdGlvbic7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4uL1RhYmxlJztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVyIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfQ1VSUkVOVCwgREVGQVVMVF9QQUdFX1NJWkUsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZUZldGNoRGF0YSB9IGZyb20gJy4vdXNlRmV0Y2hEYXRhJztcbmltcG9ydCB7IGdlbkNvbHVtbnMgfSBmcm9tICcuL2NvcmUvZ2VuQ29sdW1ucyc7XG5pbXBvcnQgeyBhcHBseVNlYXJjaFRyYW5zZm9ybXMsIGdlblNlYXJjaEZpZWxkcyB9IGZyb20gJy4vY29yZS9nZW5TZWFyY2hGaWVsZHMnO1xuLyoqIFJlYWQgdGhlIGN1cnJlbnQgVVJMIHF1ZXJ5IHN0cmluZyBpbnRvIHNlYXJjaCB2YWx1ZXMsIGFwcGx5aW5nIHRoZSBgJ2dldCdgIHRyYW5zZm9ybS4gKi9cbmZ1bmN0aW9uIHJlYWRVcmxWYWx1ZXMoc3luY1RvVXJsKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicgPyBzeW5jVG9VcmwocGFyYW1zLCAnZ2V0JykgOiBwYXJhbXM7XG59XG5mdW5jdGlvbiBQcm9UYWJsZUlubmVyKHByb3BzKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IHByZWZpeENscyA9IENTU19QUkVGSVgsIGNsYXNzTmFtZSwgY29sdW1ucywgcmVxdWVzdCwgcGFyYW1zLCBkYXRhU291cmNlOiBjb250cm9sbGVkRGF0YSwgbG9hZGluZzogY29udHJvbGxlZExvYWRpbmcsIGRlZmF1bHREYXRhLCBtYW51YWxSZXF1ZXN0LCBkZWJvdW5jZVRpbWUsIHBvc3REYXRhLCBwb2xsaW5nLCBiZWZvcmVTZWFyY2hTdWJtaXQsIGNvbHVtbkVtcHR5VGV4dCwgc2VhcmNoRm9ybVJlbmRlciwgcGFnaW5hdGlvbiA9IHt9LCBzZWFyY2ggPSB7fSwgcm93U2VsZWN0aW9uLCBzaXplID0gJ3NtYWxsJywgYWN0aW9uUmVmLCBvbkxvYWQsIG9uTG9hZGluZ0NoYW5nZSwgb25SZXF1ZXN0RXJyb3IsIG9uQ2hhbmdlLCByb3dLZXksIHZhcmlhbnQgPSAnc3Ryb2tlJywgYm9yZGVyZWQsIHNjcm9sbCwgc3RpY2t5LCBleHBhbmRhYmxlLCBlbXB0eSwgdGFibGVMYXlvdXQsIHJvd0NsYXNzTmFtZSwgb25Sb3csIHN1bW1hcnksIGZvb3RlciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgdGFibGVDb2x1bW5zID0gdXNlTWVtbygoKSA9PiBnZW5Db2x1bW5zKGNvbHVtbnMsIGNvbHVtbkVtcHR5VGV4dCksIFtjb2x1bW5zLCBjb2x1bW5FbXB0eVRleHRdKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gKGF1dG8tZ2VuZXJhdGVkIGZyb20gY29sdW1ucykg4pSA4pSAXG4gICAgY29uc3Qgc2VhcmNoQ2ZnID0gc2VhcmNoID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHNlYXJjaDtcbiAgICBjb25zdCB7IGZpZWxkczogc2VhcmNoRmllbGRzLCBpbml0aWFsVmFsdWVzOiBzZWFyY2hJbml0aWFsVmFsdWVzLCBuYW1lczogc2VhcmNoRmllbGROYW1lcyB9ID0gdXNlTWVtbygoKSA9PiBnZW5TZWFyY2hGaWVsZHMoY29sdW1ucyksIFtjb2x1bW5zXSk7XG4gICAgY29uc3QgaGFzU2VhcmNoID0gc2VhcmNoICE9PSBmYWxzZSAmJiBzZWFyY2hGaWVsZHMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBzeW5jVG9VcmwgPSBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuc3luY1RvVXJsO1xuICAgIC8vIFNlZWQgaW5pdGlhbCB2YWx1ZXMgKGFuZCB0aGUgZmlyc3QgcmVxdWVzdCkgZnJvbSB0aGUgVVJMIHdoZW4gc3luY1RvVXJsIGlzIG9uLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IChzeW5jVG9VcmwgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNlYXJjaEluaXRpYWxWYWx1ZXMpLCByZWFkVXJsVmFsdWVzKHN5bmNUb1VybCkpIDogc2VhcmNoSW5pdGlhbFZhbHVlcyksIFxuICAgIC8vIG1vdW50LW9ubHkgc25hcHNob3Qgb2YgdGhlIFVSTFxuICAgIFtzZWFyY2hJbml0aWFsVmFsdWVzXSk7XG4gICAgY29uc3QgW3NlYXJjaFBhcmFtcywgc2V0U2VhcmNoUGFyYW1zXSA9IHVzZVNhZmVTdGF0ZSgoKSA9PiBtZXJnZWRJbml0aWFsVmFsdWVzKTtcbiAgICBjb25zdCBmb3JtUmVmID0gdXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgLy8g4pSA4pSAIHNlcnZlciBzb3J0IC8gZmlsdGVyIOKUgOKUgFxuICAgIGNvbnN0IFtzb3J0LCBzZXRTb3J0XSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgY29uc3QgW2ZpbHRlciwgc2V0RmlsdGVyXSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgLy8g4pSA4pSAIHBhZ2luYXRpb24gY29uZmlnIOKUgOKUgFxuICAgIGNvbnN0IHBhZ2luYXRlZCA9IHBhZ2luYXRpb24gIT09IGZhbHNlO1xuICAgIGNvbnN0IGRlZmF1bHRQYWdlU2l6ZSA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdFBhZ2VTaXplKSB8fCAocGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLnBhZ2VTaXplKSB8fCBERUZBVUxUX1BBR0VfU0laRTtcbiAgICBjb25zdCBkZWZhdWx0Q3VycmVudCA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdEN1cnJlbnQpIHx8IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uY3VycmVudCkgfHwgREVGQVVMVF9DVVJSRU5UO1xuICAgIGNvbnN0IG1hbnVhbCA9IGNvbnRyb2xsZWREYXRhICE9PSB1bmRlZmluZWQgfHwgIXJlcXVlc3Q7XG4gICAgY29uc3QgeyBkYXRhU291cmNlOiBmZXRjaGVkRGF0YSwgbG9hZGluZzogZmV0Y2hMb2FkaW5nLCBwYWdlSW5mbywgc2V0UGFnZUluZm8sIHJlbG9hZCwgcmVzZXQgfSA9IHVzZUZldGNoRGF0YSh7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIG1hbnVhbCxcbiAgICAgICAgbWFudWFsUmVxdWVzdCxcbiAgICAgICAgZGVib3VuY2VUaW1lLFxuICAgICAgICBwb3N0RGF0YSxcbiAgICAgICAgcG9sbGluZyxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBkZWZhdWx0RGF0YSxcbiAgICAgICAgcGFnaW5hdGVkLFxuICAgICAgICBkZWZhdWx0Q3VycmVudCxcbiAgICAgICAgZGVmYXVsdFBhZ2VTaXplLFxuICAgICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICAgIHNvcnQsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICAgb25Mb2FkLFxuICAgICAgICBvbkxvYWRpbmdDaGFuZ2UsXG4gICAgICAgIG9uUmVxdWVzdEVycm9yLFxuICAgIH0pO1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBjb250cm9sbGVkRGF0YSAhPT0gbnVsbCAmJiBjb250cm9sbGVkRGF0YSAhPT0gdm9pZCAwID8gY29udHJvbGxlZERhdGEgOiBmZXRjaGVkRGF0YTtcbiAgICBjb25zdCBsb2FkaW5nID0gY29udHJvbGxlZExvYWRpbmcgIT09IG51bGwgJiYgY29udHJvbGxlZExvYWRpbmcgIT09IHZvaWQgMCA/IGNvbnRyb2xsZWRMb2FkaW5nIDogKG1hbnVhbCA/IGZhbHNlIDogZmV0Y2hMb2FkaW5nKTtcbiAgICAvLyDilIDilIAgaGFuZGxlcnMg4pSA4pSAXG4gICAgY29uc3QgaGFuZGxlU2VhcmNoRmluaXNoID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHBlckNvbHVtbiA9IGFwcGx5U2VhcmNoVHJhbnNmb3Jtcyh2YWx1ZXMsIGNvbHVtbnMpO1xuICAgICAgICBjb25zdCBmaW5hbFBhcmFtcyA9IGJlZm9yZVNlYXJjaFN1Ym1pdCA/IGJlZm9yZVNlYXJjaFN1Ym1pdChwZXJDb2x1bW4pIDogcGVyQ29sdW1uO1xuICAgICAgICBzZXRTZWFyY2hQYXJhbXMoZmluYWxQYXJhbXMpO1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IGRlZmF1bHRDdXJyZW50IH0pO1xuICAgICAgICB2b2lkIHJlbG9hZCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaFJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgLy8gVXNlIHRoZSBhcnJheSBmb3JtIChgcmVzZXRGaWVsZHMobmFtZXMpYCkg4oCUIHRoZSBuby1hcmcgZm9ybSByZS1pbnZva2VzIHRoZVxuICAgICAgICAvLyBmb3JtJ3Mgb3duIGBvblJlc2V0YCwgd2hpY2ggbG9vcHMgYmFjayBoZXJlIGFuZCByZWN1cnNlcyBpbmZpbml0ZWx5LlxuICAgICAgICAoX2EgPSBmb3JtUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldEZpZWxkcyhzZWFyY2hGaWVsZE5hbWVzKTtcbiAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHt9KTtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgdm9pZCByZWxvYWQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IHVzZU1lbW9pemVkRm4oKG1ldGEpID0+IHtcbiAgICAgICAgaWYgKG1ldGEuc29ydGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbHVtbktleSwgb3JkZXIgfSA9IG1ldGEuc29ydGVyO1xuICAgICAgICAgICAgc2V0U29ydChjb2x1bW5LZXkgJiYgb3JkZXIgPyB7IFtTdHJpbmcoY29sdW1uS2V5KV06IG9yZGVyIH0gOiB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGEuZmlsdGVycylcbiAgICAgICAgICAgIHNldEZpbHRlcihtZXRhLmZpbHRlcnMpO1xuICAgICAgICBpZiAobWV0YS5zb3J0ZXIgfHwgbWV0YS5maWx0ZXJzKVxuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG1ldGEpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVBhZ2VDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChwYWdlLCBwYWdlU2l6ZSkgPT4ge1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0pO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2Uoe1xuICAgICAgICAgICAgY3VycmVudERhdGFTb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBhY3Rpb246ICdwYWdpbmF0ZScsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBpbXBlcmF0aXZlIGhhbmRsZSDilIDilIBcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGFjdGlvblJlZiwgKCkgPT4gKHtcbiAgICAgICAgcmVsb2FkOiAoKSA9PiByZWxvYWQoKSxcbiAgICAgICAgcmVsb2FkQW5kUmVzdDogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgICAgIHlpZWxkIHJlbG9hZCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGZvcm1SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc2V0RmllbGRzKHNlYXJjaEZpZWxkTmFtZXMpO1xuICAgICAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHNlYXJjaEluaXRpYWxWYWx1ZXMpO1xuICAgICAgICAgICAgc2V0U29ydCh7fSk7XG4gICAgICAgICAgICBzZXRGaWx0ZXIoe30pO1xuICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldFBhZ2VJbmZvLFxuICAgIH0pKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gbm9kZSAob25seSBidWlsdCB3aGVuIHRoZXJlIGFyZSBzZWFyY2hhYmxlIGNvbHVtbnMpIOKUgOKUgFxuICAgIGxldCBzZWFyY2hOb2RlID0gbnVsbDtcbiAgICBpZiAoaGFzU2VhcmNoKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEZvcm0gPSAoX2pzeChRdWVyeUZpbHRlciwgeyBmb3JtUmVmOiBmb3JtUmVmLCBzaXplOiBcInNtYWxsXCIsIGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGRlZmF1bHRDb2xsYXBzZWQ6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5kZWZhdWx0Q29sbGFwc2VkLCBkZWZhdWx0Q29sc051bWJlcjogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmRlZmF1bHRDb2xzTnVtYmVyLCBsYWJlbFdpZHRoOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcubGFiZWxXaWR0aCwgc3luY1RvVXJsOiBzeW5jVG9VcmwsIHNlYXJjaENvbmZpZzoge1xuICAgICAgICAgICAgICAgIHNlYXJjaFRleHQ6IChfYSA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoLFxuICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogKF9iID0gc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLnJlc2V0VGV4dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULnJlc2V0LFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgfSwgb25GaW5pc2g6IGhhbmRsZVNlYXJjaEZpbmlzaCwgb25SZXNldDogaGFuZGxlU2VhcmNoUmVzZXQsIGNoaWxkcmVuOiBzZWFyY2hGaWVsZHMgfSkpO1xuICAgICAgICBzZWFyY2hOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NlYXJjaCcpLCBjaGlsZHJlbjogc2VhcmNoRm9ybVJlbmRlciA/IHNlYXJjaEZvcm1SZW5kZXIoc2VhcmNoRm9ybSkgOiBzZWFyY2hGb3JtIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbc2VhcmNoTm9kZSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRhaW5lcicpLCBjaGlsZHJlbjogW19qc3goVGFibGUsIHsgcm93S2V5OiByb3dLZXksIGNvbHVtbnM6IHRhYmxlQ29sdW1ucywgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSwgbG9hZGluZzogbG9hZGluZywgc2l6ZTogc2l6ZSwgcGFnaW5hdGlvbjogZmFsc2UsIHJvd1NlbGVjdGlvbjogcm93U2VsZWN0aW9uLCBvbkNoYW5nZTogaGFuZGxlVGFibGVDaGFuZ2UsIHZhcmlhbnQ6IHZhcmlhbnQsIGJvcmRlcmVkOiBib3JkZXJlZCwgc2Nyb2xsOiBzY3JvbGwsIHN0aWNreTogc3RpY2t5LCBleHBhbmRhYmxlOiBleHBhbmRhYmxlLCBlbXB0eTogZW1wdHksIHRhYmxlTGF5b3V0OiB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lOiByb3dDbGFzc05hbWUsIG9uUm93OiBvblJvdywgc3VtbWFyeTogc3VtbWFyeSwgZm9vdGVyOiBmb290ZXIgfSksIHBhZ2luYXRlZCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFnaW5hdGlvbicpLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwYWdlSW5mby50b3RhbCwgY3VycmVudDogcGFnZUluZm8uY3VycmVudCwgcGFnZVNpemU6IHBhZ2VJbmZvLnBhZ2VTaXplLCBvbkNoYW5nZTogaGFuZGxlUGFnZUNoYW5nZSB9KSB9KSldIH0pXSB9KSk7XG59XG5leHBvcnQgY29uc3QgUHJvVGFibGUgPSBtZW1vKFByb1RhYmxlSW5uZXIpO1xuZXhwb3J0IGRlZmF1bHQgUHJvVGFibGU7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
310
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb1RhYmxlL1Byb1RhYmxlLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZUltcGVyYXRpdmVIYW5kbGUiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlTWVtb2l6ZWRGbiIsInVzZVNhZmVTdGF0ZSIsIlBhZ2luYXRpb24iLCJUYWJsZSIsIlF1ZXJ5RmlsdGVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJDU1NfUFJFRklYIiwiREVGQVVMVF9DVVJSRU5UIiwiREVGQVVMVF9QQUdFX1NJWkUiLCJERUZBVUxUX1RFWFQiLCJ1c2VGZXRjaERhdGEiLCJnZW5Db2x1bW5zIiwiYXBwbHlTZWFyY2hUcmFuc2Zvcm1zIiwiZ2VuU2VhcmNoRmllbGRzIiwicmVhZFVybFZhbHVlcyIsInN5bmNUb1VybCIsIndpbmRvdyIsInBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImxvY2F0aW9uIiwic2VhcmNoIiwiZm9yRWFjaCIsImtleSIsIlByb1RhYmxlSW5uZXIiLCJwcm9wcyIsIl90aGlzIiwiX2EiLCJfYiIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJjbGFzc05hbWUiLCJjb2x1bW5zIiwicmVxdWVzdCIsImNvbnRyb2xsZWREYXRhIiwiZGF0YVNvdXJjZSIsImNvbnRyb2xsZWRMb2FkaW5nIiwibG9hZGluZyIsImRlZmF1bHREYXRhIiwibWFudWFsUmVxdWVzdCIsImRlYm91bmNlVGltZSIsInBvc3REYXRhIiwicG9sbGluZyIsImJlZm9yZVNlYXJjaFN1Ym1pdCIsImNvbHVtbkVtcHR5VGV4dCIsInNlYXJjaEZvcm1SZW5kZXIiLCJfcHJvcHMkcGFnaW5hdGlvbiIsInBhZ2luYXRpb24iLCJfcHJvcHMkc2VhcmNoIiwicm93U2VsZWN0aW9uIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiYWN0aW9uUmVmIiwib25Mb2FkIiwib25Mb2FkaW5nQ2hhbmdlIiwib25SZXF1ZXN0RXJyb3IiLCJvbkNoYW5nZSIsInJvd0tleSIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsImJvcmRlcmVkIiwic2Nyb2xsIiwic3RpY2t5IiwiZXhwYW5kYWJsZSIsImVtcHR5IiwidGFibGVMYXlvdXQiLCJyb3dDbGFzc05hbWUiLCJvblJvdyIsInN1bW1hcnkiLCJmb290ZXIiLCJjbGFzc2VzIiwidGFibGVDb2x1bW5zIiwic2VhcmNoQ2ZnIiwidW5kZWZpbmVkIiwiX3VzZU1lbW8iLCJzZWFyY2hGaWVsZHMiLCJmaWVsZHMiLCJzZWFyY2hJbml0aWFsVmFsdWVzIiwiaW5pdGlhbFZhbHVlcyIsInNlYXJjaEZpZWxkTmFtZXMiLCJuYW1lcyIsImhhc1NlYXJjaCIsImxlbmd0aCIsIm1lcmdlZEluaXRpYWxWYWx1ZXMiLCJPYmplY3QiLCJhc3NpZ24iLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNlYXJjaFBhcmFtcyIsInNldFNlYXJjaFBhcmFtcyIsImZvcm1SZWYiLCJfdXNlU2FmZVN0YXRlMyIsIl91c2VTYWZlU3RhdGU0Iiwic29ydCIsInNldFNvcnQiLCJfdXNlU2FmZVN0YXRlNSIsIl91c2VTYWZlU3RhdGU2IiwiZmlsdGVyIiwic2V0RmlsdGVyIiwicGFnaW5hdGVkIiwiZGVmYXVsdFBhZ2VTaXplIiwicGFnZVNpemUiLCJkZWZhdWx0Q3VycmVudCIsImN1cnJlbnQiLCJtYW51YWwiLCJfdXNlRmV0Y2hEYXRhIiwiZmV0Y2hlZERhdGEiLCJmZXRjaExvYWRpbmciLCJwYWdlSW5mbyIsInNldFBhZ2VJbmZvIiwicmVsb2FkIiwicmVzZXQiLCJoYW5kbGVTZWFyY2hGaW5pc2giLCJ2YWx1ZXMiLCJwZXJDb2x1bW4iLCJmaW5hbFBhcmFtcyIsImhhbmRsZVNlYXJjaFJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVUYWJsZUNoYW5nZSIsIm1ldGEiLCJzb3J0ZXIiLCJfbWV0YSRzb3J0ZXIiLCJjb2x1bW5LZXkiLCJvcmRlciIsIl9kZWZpbmVQcm9wZXJ0eSIsIlN0cmluZyIsImZpbHRlcnMiLCJoYW5kbGVQYWdlQ2hhbmdlIiwicGFnZSIsImN1cnJlbnREYXRhU291cmNlIiwiYWN0aW9uIiwicmVsb2FkQW5kUmVzdCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJzdG9wIiwic2VhcmNoTm9kZSIsInNlYXJjaEZvcm0iLCJkZWZhdWx0Q29sbGFwc2VkIiwiZGVmYXVsdENvbHNOdW1iZXIiLCJsYWJlbFdpZHRoIiwic2VhcmNoQ29uZmlnIiwic2VhcmNoVGV4dCIsInJlc2V0VGV4dCIsIm9uRmluaXNoIiwib25SZXNldCIsImNoaWxkcmVuIiwidG90YWwiLCJQcm9UYWJsZSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtBLENBQUMsR0FBR0ssT0FBTyxDQUFDLEVBQUUsVUFBVUQsT0FBTyxFQUFFRSxNQUFNLEVBQUU7SUFDdkQsU0FBU0MsU0FBU0EsQ0FBQ0osS0FBSyxFQUFFO01BQUUsSUFBSTtRQUFFSyxJQUFJLENBQUNQLFNBQVMsQ0FBQ1EsSUFBSSxDQUFDTixLQUFLLENBQUMsQ0FBQztNQUFFLENBQUMsQ0FBQyxPQUFPTyxDQUFDLEVBQUU7UUFBRUosTUFBTSxDQUFDSSxDQUFDLENBQUM7TUFBRTtJQUFFO0lBQzFGLFNBQVNDLFFBQVFBLENBQUNSLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU9PLENBQUMsRUFBRTtRQUFFSixNQUFNLENBQUNJLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDN0YsU0FBU0YsSUFBSUEsQ0FBQ0ksTUFBTSxFQUFFO01BQUVBLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHVCxPQUFPLENBQUNRLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDLEdBQUdELEtBQUssQ0FBQ1UsTUFBTSxDQUFDVCxLQUFLLENBQUMsQ0FBQ1csSUFBSSxDQUFDUCxTQUFTLEVBQUVJLFFBQVEsQ0FBQztJQUFFO0lBQzdHSCxJQUFJLENBQUMsQ0FBQ1AsU0FBUyxHQUFHQSxTQUFTLENBQUNjLEtBQUssQ0FBQ2pCLE9BQU8sRUFBRUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFVSxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBQ3pFLENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRCxTQUFTTyxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDVDlELFNBQVNDLElBQUksRUFBRUMsbUJBQW1CLEVBQUVDLE9BQU8sRUFBRUMsTUFBTSxRQUFRLE9BQU87QUFFbEUsT0FBT0MsYUFBYSxNQUFNLDZCQUE2QjtBQUN2RCxPQUFPQyxZQUFZLE1BQU0sNEJBQTRCO0FBQ3JELFNBQVNDLFVBQVUsUUFBUSxlQUFlO0FBQzFDLFNBQVNDLEtBQUssUUFBUSxVQUFVO0FBRWhDLFNBQVNDLFdBQVcsUUFBUSxZQUFZO0FBRXhDLFNBQVNDLE9BQU8sSUFBSUMsVUFBVSxRQUFRLHdCQUF3QjtBQUM5RCxTQUFTQyxVQUFVLEVBQUVDLGVBQWUsRUFBRUMsaUJBQWlCLEVBQUVDLFlBQVksUUFBUSxhQUFhO0FBQzFGLFNBQVNDLFlBQVksUUFBUSxnQkFBZ0I7QUFDN0MsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxTQUFTQyxxQkFBcUIsRUFBRUMsZUFBZSxRQUFRLHdCQUF3QjtBQVMvRTtBQUNBLFNBQVNDLGFBQWFBLENBQUNDLFNBQW9CLEVBQUE7RUFDekMsSUFBSSxPQUFPQyxNQUFNLEtBQUssV0FBVyxFQUFFLE9BQU8sQ0FBQSxDQUFFO0VBQzVDLElBQU1DLE1BQU0sR0FBMkIsQ0FBQSxDQUFFO0VBQ3pDLElBQUlDLGVBQWUsQ0FBQ0YsTUFBTSxDQUFDRyxRQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDQyxPQUFPLENBQUMsVUFBQzNDLEtBQUssRUFBRTRDLEdBQUcsRUFBSTtJQUNqRUwsTUFBTSxDQUFDSyxHQUFHLENBQUMsR0FBRzVDLEtBQUs7RUFDckIsQ0FBQyxDQUFDO0VBQ0YsT0FBTyxPQUFPcUMsU0FBUyxLQUFLLFVBQVUsR0FBR0EsU0FBUyxDQUFDRSxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQUdBLE1BQU07QUFDNUU7QUFFQSxTQUFTTSxhQUFhQSxDQUdwQkMsS0FBK0IsRUFBQTtFQUFBLElBQUFDLEtBQUE7RURIN0IsSUFBSUMsRUFBRSxFQUFFQyxFQUFFO0VDSVosSUFBQUMsZ0JBQUEsR0FxQ0lKLEtBQUssQ0FwQ1BLLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHdEIsVUFBVSxHQUFBc0IsZ0JBQUE7SUFDdEJFLFNBQVMsR0FtQ1BOLEtBQUssQ0FuQ1BNLFNBQVM7SUFDVEMsT0FBTyxHQWtDTFAsS0FBSyxDQWxDUE8sT0FBTztJQUNQQyxPQUFPLEdBaUNMUixLQUFLLENBakNQUSxPQUFPO0lBQ1BmLE1BQU0sR0FnQ0pPLEtBQUssQ0FoQ1BQLE1BQU07SUFDTWdCLGNBQWMsR0ErQnhCVCxLQUFLLENBL0JQVSxVQUFVO0lBQ0RDLGlCQUFpQixHQThCeEJYLEtBQUssQ0E5QlBZLE9BQU87SUFDUEMsV0FBVyxHQTZCVGIsS0FBSyxDQTdCUGEsV0FBVztJQUNYQyxhQUFhLEdBNEJYZCxLQUFLLENBNUJQYyxhQUFhO0lBQ2JDLFlBQVksR0EyQlZmLEtBQUssQ0EzQlBlLFlBQVk7SUFDWkMsUUFBUSxHQTBCTmhCLEtBQUssQ0ExQlBnQixRQUFRO0lBQ1JDLE9BQU8sR0F5QkxqQixLQUFLLENBekJQaUIsT0FBTztJQUNQQyxrQkFBa0IsR0F3QmhCbEIsS0FBSyxDQXhCUGtCLGtCQUFrQjtJQUNsQkMsZUFBZSxHQXVCYm5CLEtBQUssQ0F2QlBtQixlQUFlO0lBQ2ZDLGdCQUFnQixHQXNCZHBCLEtBQUssQ0F0QlBvQixnQkFBZ0I7SUFBQUMsaUJBQUEsR0FzQmRyQixLQUFLLENBckJQc0IsVUFBVTtJQUFWQSxVQUFVLEdBQUFELGlCQUFBLGNBQUcsQ0FBQSxDQUFFLEdBQUFBLGlCQUFBO0lBQUFFLGFBQUEsR0FxQmJ2QixLQUFLLENBcEJQSixNQUFNO0lBQU5BLE1BQU0sR0FBQTJCLGFBQUEsY0FBRyxDQUFBLENBQUUsR0FBQUEsYUFBQTtJQUNYQyxZQUFZLEdBbUJWeEIsS0FBSyxDQW5CUHdCLFlBQVk7SUFBQUMsV0FBQSxHQW1CVnpCLEtBQUssQ0FsQlAwQixJQUFJO0lBQUpBLElBQUksR0FBQUQsV0FBQSxjQUFHLE9BQU8sR0FBQUEsV0FBQTtJQUNkRSxTQUFTLEdBaUJQM0IsS0FBSyxDQWpCUDJCLFNBQVM7SUFDVEMsTUFBTSxHQWdCSjVCLEtBQUssQ0FoQlA0QixNQUFNO0lBQ05DLGVBQWUsR0FlYjdCLEtBQUssQ0FmUDZCLGVBQWU7SUFDZkMsY0FBYyxHQWNaOUIsS0FBSyxDQWRQOEIsY0FBYztJQUNkQyxRQUFRLEdBYU4vQixLQUFLLENBYlArQixRQUFRO0lBQ1JDLE1BQU0sR0FZSmhDLEtBQUssQ0FaUGdDLE1BQU07SUFBQUMsY0FBQSxHQVlKakMsS0FBSyxDQVhQa0MsT0FBTztJQUFQQSxPQUFPLEdBQUFELGNBQUEsY0FBRyxRQUFRLEdBQUFBLGNBQUE7SUFDbEJFLFFBQVEsR0FVTm5DLEtBQUssQ0FWUG1DLFFBQVE7SUFDUkMsTUFBTSxHQVNKcEMsS0FBSyxDQVRQb0MsTUFBTTtJQUNOQyxNQUFNLEdBUUpyQyxLQUFLLENBUlBxQyxNQUFNO0lBQ05DLFVBQVUsR0FPUnRDLEtBQUssQ0FQUHNDLFVBQVU7SUFDVkMsS0FBSyxHQU1IdkMsS0FBSyxDQU5QdUMsS0FBSztJQUNMQyxXQUFXLEdBS1R4QyxLQUFLLENBTFB3QyxXQUFXO0lBQ1hDLFlBQVksR0FJVnpDLEtBQUssQ0FKUHlDLFlBQVk7SUFDWkMsS0FBSyxHQUdIMUMsS0FBSyxDQUhQMEMsS0FBSztJQUNMQyxPQUFPLEdBRUwzQyxLQUFLLENBRlAyQyxPQUFPO0lBQ1BDLE1BQU0sR0FDSjVDLEtBQUssQ0FEUDRDLE1BQU07RUFHUixJQUFNQyxPQUFPLEdBQUdoRSxVQUFVLENBQUN3QixTQUFTLENBQUM7RUFFckMsSUFBTXlDLFlBQVksR0FBR3pFLE9BQU8sQ0FBQztJQUFBLE9BQU1jLFVBQVUsQ0FBQ29CLE9BQU8sRUFBRVksZUFBZSxDQUFDO0VBQUEsR0FBRSxDQUFDWixPQUFPLEVBQUVZLGVBQWUsQ0FBQyxDQUFDO0VBRXBHO0VBQ0EsSUFBTTRCLFNBQVMsR0FBR25ELE1BQU0sS0FBSyxLQUFLLEdBQUdvRCxTQUFTLEdBQUdwRCxNQUFNO0VBQ3ZELElBQUFxRCxRQUFBLEdBQThGNUUsT0FBTyxDQUNuRztNQUFBLE9BQU1nQixlQUFlLENBQUNrQixPQUFPLENBQUM7SUFBQSxHQUM5QixDQUFDQSxPQUFPLENBQUMsQ0FDVjtJQUhlMkMsWUFBWSxHQUFBRCxRQUFBLENBQXBCRSxNQUFNO0lBQStCQyxtQkFBbUIsR0FBQUgsUUFBQSxDQUFsQ0ksYUFBYTtJQUE4QkMsZ0JBQWdCLEdBQUFMLFFBQUEsQ0FBdkJNLEtBQUs7RUFJdkUsSUFBTUMsU0FBUyxHQUFHNUQsTUFBTSxLQUFLLEtBQUssSUFBSXNELFlBQVksQ0FBQ08sTUFBTSxHQUFHLENBQUM7RUFDN0QsSUFBTWxFLFNBQVMsR0FBR3dELFNBQVMsS0FBQSxJQUFBLElBQVRBLFNBQVMsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVEEsU0FBUyxDQUFFeEQsU0FBUztFQUN0QztFQUNBLElBQU1tRSxtQkFBbUIsR0FBR3JGLE9BQU8sQ0FDakM7SUFBQSxPQUFPa0IsU0FBUyxHQUFFb0UsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFNUixtQkFBbUIsQ0FBQSxFQUFLOUQsYUFBYSxDQUFDQyxTQUFTLENBQUMsQ0FBQSxHQUFLNkQsbUJBQW1CO0VBQUEsQ0FBQztFQUNqRztFQUNBLENBQUNBLG1CQUFtQixDQUFDLENBQ3RCO0VBQ0QsSUFBQVMsYUFBQSxHQUF3Q3JGLFlBQVksQ0FBMEI7TUFBQSxPQUFNa0YsbUJBQW1CO0lBQUEsRUFBQztJQUFBSSxjQUFBLEdBQUFDLGNBQUEsQ0FBQUYsYUFBQTtJQUFqR0csWUFBWSxHQUFBRixjQUFBO0lBQUVHLGVBQWUsR0FBQUgsY0FBQTtFQUNwQyxJQUFNSSxPQUFPLEdBQUc1RixNQUFNLENBQXNCMEUsU0FBUyxDQUFDO0VBRXREO0VBQ0EsSUFBQW1CLGNBQUEsR0FBd0IzRixZQUFZLENBQW9CLENBQUEsQ0FBRSxDQUFDO0lBQUE0RixjQUFBLEdBQUFMLGNBQUEsQ0FBQUksY0FBQTtJQUFwREUsSUFBSSxHQUFBRCxjQUFBO0lBQUVFLE9BQU8sR0FBQUYsY0FBQTtFQUNwQixJQUFBRyxjQUFBLEdBQTRCL0YsWUFBWSxDQUFzQixDQUFBLENBQUUsQ0FBQztJQUFBZ0csY0FBQSxHQUFBVCxjQUFBLENBQUFRLGNBQUE7SUFBMURFLE1BQU0sR0FBQUQsY0FBQTtJQUFFRSxTQUFTLEdBQUFGLGNBQUE7RUFFeEI7RUFDQSxJQUFNRyxTQUFTLEdBQUdyRCxVQUFVLEtBQUssS0FBSztFQUN0QyxJQUFNc0QsZUFBZSxHQUFJdEQsVUFBVSxJQUFJQSxVQUFVLENBQUNzRCxlQUFlLElBQU10RCxVQUFVLElBQUlBLFVBQVUsQ0FBQ3VELFFBQVMsSUFBSTdGLGlCQUFpQjtFQUM5SCxJQUFNOEYsY0FBYyxHQUFJeEQsVUFBVSxJQUFJQSxVQUFVLENBQUN3RCxjQUFjLElBQU14RCxVQUFVLElBQUlBLFVBQVUsQ0FBQ3lELE9BQVEsSUFBSWhHLGVBQWU7RUFFekgsSUFBTWlHLE1BQU0sR0FBR3ZFLGNBQWMsS0FBS3VDLFNBQVMsSUFBSSxDQUFDeEMsT0FBTztFQUV2RCxJQUFBeUUsYUFBQSxHQUFpRy9GLFlBQVksQ0FDM0c7TUFDRXNCLE9BQU8sRUFBUEEsT0FBTztNQUNQd0UsTUFBTSxFQUFOQSxNQUFNO01BQ05sRSxhQUFhLEVBQWJBLGFBQWE7TUFDYkMsWUFBWSxFQUFaQSxZQUFZO01BQ1pDLFFBQVEsRUFBUkEsUUFBUTtNQUNSQyxPQUFPLEVBQVBBLE9BQU87TUFDUHhCLE1BQU0sRUFBTkEsTUFBTTtNQUNOb0IsV0FBVyxFQUFYQSxXQUFXO01BQ1g4RCxTQUFTLEVBQVRBLFNBQVM7TUFDVEcsY0FBYyxFQUFkQSxjQUFjO01BQ2RGLGVBQWUsRUFBZkEsZUFBZTtNQUNmWixZQUFZLEVBQVpBLFlBQVk7TUFDWkssSUFBSSxFQUFKQSxJQUFJO01BQ0pJLE1BQU0sRUFBTkEsTUFBTTtNQUNON0MsTUFBTSxFQUFOQSxNQUFNO01BQ05DLGVBQWUsRUFBZkEsZUFBZTtNQUNmQyxjQUFjLEVBQWRBO0lEcERGLENDcURDLENBQ0Y7SUFwQm1Cb0QsV0FBVyxHQUFBRCxhQUFBLENBQXZCdkUsVUFBVTtJQUF3QnlFLFlBQVksR0FBQUYsYUFBQSxDQUFyQnJFLE9BQU87SUFBZ0J3RSxRQUFRLEdBQUFILGFBQUEsQ0FBUkcsUUFBUTtJQUFFQyxXQUFXLEdBQUFKLGFBQUEsQ0FBWEksV0FBVztJQUFFQyxPQUFNLEdBQUFMLGFBQUEsQ0FBTkssTUFBTTtJQUFFQyxNQUFLLEdBQUFOLGFBQUEsQ0FBTE0sS0FBSztFQXNCNUYsSUFBTTdFLFVBQVUsR0FBR0QsY0FBYyxLQUFBLElBQUEsSUFBZEEsY0FBYyxLQUFBLEtBQUEsQ0FBQSxHQUFkQSxjQUFjLEdBQUl5RSxXQUFXO0VBQ2hELElBQU10RSxPQUFPLEdBQUdELGlCQUFpQixLQUFBLElBQUEsSUFBakJBLGlCQUFpQixLQUFBLEtBQUEsQ0FBQSxHQUFqQkEsaUJBQWlCLEdBQUtxRSxNQUFNLEdBQUcsS0FBSyxHQUFHRyxZQUFhO0VBRXBFO0VBQ0EsSUFBTUssa0JBQWtCLEdBQUdqSCxhQUFhLENBQUMsVUFBQ2tILE1BQStCLEVBQUk7SUFDM0UsSUFBTUMsU0FBUyxHQUFHdEcscUJBQXFCLENBQUNxRyxNQUFNLEVBQUVsRixPQUFPLENBQUM7SUFDeEQsSUFBTW9GLFdBQVcsR0FBR3pFLGtCQUFrQixHQUFHQSxrQkFBa0IsQ0FBQ3dFLFNBQVMsQ0FBQyxHQUFHQSxTQUFTO0lBQ2xGekIsZUFBZSxDQUFDMEIsV0FBVyxDQUFDO0lBQzVCTixXQUFXLENBQUM7TUFBRU4sT0FBTyxFQUFFRDtJQUFjLENBQUUsQ0FBQztJQUN4QyxLQUFLUSxPQUFNLENBQUEsQ0FBRTtFQUNmLENBQUMsQ0FBQztFQUNGLElBQU1NLGlCQUFpQixHQUFHckgsYUFBYSxDQUFDLFlBQUs7SUR2RHZDLElBQUkyQixFQUFFO0lDd0RWO0lBQ0E7SUFDQSxDQUFBQSxFQUFBLEdBQUFnRSxPQUFPLENBQUNhLE9BQU8sTUFBQSxJQUFBLElBQUE3RSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRTJGLFdBQVcsQ0FBQ3ZDLGdCQUFnQixDQUFDO0lBQzlDVyxlQUFlLENBQUMsQ0FBQSxDQUFFLENBQUM7SUFDbkJvQixXQUFXLENBQUM7TUFBRU4sT0FBTyxFQUFFRDtJQUFjLENBQUUsQ0FBQztJQUN4QyxLQUFLUSxPQUFNLENBQUEsQ0FBRTtFQUNmLENBQUMsQ0FBQztFQUVGLElBQU1RLGlCQUFpQixHQUFHdkgsYUFBYSxDQUFDLFVBQUN3SCxJQUF3QixFQUFJO0lBQ25FLElBQUlBLElBQUksQ0FBQ0MsTUFBTSxFQUFFO01BQ2YsSUFBQUMsWUFBQSxHQUE2QkYsSUFBSSxDQUFDQyxNQUFNO1FBQWhDRSxTQUFTLEdBQUFELFlBQUEsQ0FBVEMsU0FBUztRQUFFQyxLQUFLLEdBQUFGLFlBQUEsQ0FBTEUsS0FBSztNQUN4QjdCLE9BQU8sQ0FBQzRCLFNBQVMsSUFBSUMsS0FBSyxHQUFBQyxlQUFBLEtBQU1DLE1BQU0sQ0FBQ0gsU0FBUyxDQUFDLEVBQUdDLEtBQUssSUFBSyxDQUFBLENBQUUsQ0FBQztJQUNuRTtJQUNBLElBQUlKLElBQUksQ0FBQ08sT0FBTyxFQUFFNUIsU0FBUyxDQUFDcUIsSUFBSSxDQUFDTyxPQUE4QixDQUFDO0lBQ2hFLElBQUlQLElBQUksQ0FBQ0MsTUFBTSxJQUFJRCxJQUFJLENBQUNPLE9BQU8sRUFBRWpCLFdBQVcsQ0FBQztNQUFFTixPQUFPLEVBQUVEO0lBQWMsQ0FBRSxDQUFDO0lBQ3pFL0MsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUdnRSxJQUFJLENBQUM7RUFDbEIsQ0FBQyxDQUFDO0VBRUYsSUFBTVEsZ0JBQWdCLEdBQUdoSSxhQUFhLENBQUMsVUFBQ2lJLElBQVksRUFBRTNCLFFBQWdCLEVBQUk7SUFDeEVRLFdBQVcsQ0FBQztNQUFFTixPQUFPLEVBQUV5QixJQUFJO01BQUUzQixRQUFRLEVBQVJBO0lBQVEsQ0FBRSxDQUFDO0lBQ3hDOUMsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUc7TUFDVDBFLGlCQUFpQixFQUFFL0YsVUFBVTtNQUM3QmdHLE1BQU0sRUFBRSxVQUFVO01BQ2xCcEYsVUFBVSxFQUFFO1FBQUV5RCxPQUFPLEVBQUV5QixJQUFJO1FBQUUzQixRQUFRLEVBQVJBO01BQVE7SUR0RG5DLENDdURILENBQUM7RUFDSixDQUFDLENBQUM7RUFFRjtFQUNBekcsbUJBQW1CLENBQUN1RCxTQUFTLEVBQUU7SUFBQSxPQUEwQjtNQUN2RDJELE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFBO1FBQUEsT0FBUUEsT0FBTSxDQUFBLENBQUU7TUFBQTtNQUN0QnFCLGFBQWEsRUFBRSxTQUFmQSxhQUFhQSxDQUFBO1FBQUEsT0FBYS9KLFNBQUEsQ0FBQXFELEtBQUEsRUFBQSxLQUFBLENBQUEsRUFBQSxLQUFBLENBQUEsZUFBQTJHLG1CQUFBLENBQUFDLElBQUEsQ0FBQSxTQUFBQyxRQUFBO1VBQUEsT0FBQUYsbUJBQUEsQ0FBQUcsSUFBQSxXQUFBQyxRQUFBO1lBQUEsa0JBQUFBLFFBQUEsQ0FBQUMsSUFBQSxHQUFBRCxRQUFBLENBQUF4SixJQUFBO2NBQUE7Z0JBQ3hCNkgsV0FBVyxDQUFDO2tCQUFFTixPQUFPLEVBQUVEO2dCQUFjLENBQUUsQ0FBQztnQkFBQ2tDLFFBQUEsQ0FBQXhKLElBQUE7Z0JBQ3pDLE9BQU04SCxPQUFNLENBQUEsQ0FBRTtjQUFBO2NBQUE7Z0JBQUEsT0FBQTBCLFFBQUEsQ0FBQUUsSUFBQTtZQUFBO1VBQUEsR0FBQUosT0FBQTtRQUFBLENBQ2YsRUFBQTtNQUFBO01BQ0R2QixLQUFLLEVBQUUsU0FBUEEsS0FBS0EsQ0FBQSxFQUFPO1FEdkRKLElBQUlyRixFQUFFO1FDd0RaLENBQUFBLEVBQUEsR0FBQWdFLE9BQU8sQ0FBQ2EsT0FBTyxNQUFBLElBQUEsSUFBQTdFLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFMkYsV0FBVyxDQUFDdkMsZ0JBQWdCLENBQUM7UUFDOUNXLGVBQWUsQ0FBQ2IsbUJBQW1CLENBQUM7UUFDcENrQixPQUFPLENBQUMsQ0FBQSxDQUFFLENBQUM7UUFDWEksU0FBUyxDQUFDLENBQUEsQ0FBRSxDQUFDO1FBQ2JhLE1BQUssQ0FBQSxDQUFFO1FBQ1AsS0FBS0QsT0FBTSxDQUFBLENBQUU7TUFDZixDQUFDO01BQ0RELFdBQVcsRUFBWEE7SUR0REEsQ0N1REQ7RUFBQSxDQUFDLENBQUM7RUFFSDtFQUNBLElBQUk4QixVQUFVLEdBQWMsSUFBSTtFQUNoQyxJQUFJM0QsU0FBUyxFQUFFO0lBQ2IsSUFBTTRELFVBQVUsR0FDZHBKLElBQUEsQ0FBQ1csV0FBVyxFQUFBO01BQ1Z1RixPQUFPLEVBQUVBLE9BQU87TUFDaEJ4QyxJQUFJLEVBQUMsT0FBTztNQUNaMkIsYUFBYSxFQUFFSyxtQkFBbUI7TUFDbEMyRCxnQkFBZ0IsRUFBRXRFLFNBQVMsS0FBQSxJQUFBLElBQVRBLFNBQVMsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVEEsU0FBUyxDQUFFc0UsZ0JBQWdCO01BQzdDQyxpQkFBaUIsRUFBRXZFLFNBQVMsS0FBQSxJQUFBLElBQVRBLFNBQVMsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVEEsU0FBUyxDQUFFdUUsaUJBQWlCO01BQy9DQyxVQUFVLEVBQUV4RSxTQUFTLEtBQUEsSUFBQSxJQUFUQSxTQUFTLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVRBLFNBQVMsQ0FBRXdFLFVBQVU7TUFDakNoSSxTQUFTLEVBQUVBLFNBQVM7TUFDcEJpSSxZQUFZLEVBQUU7UUFDWkMsVUFBVSxFQUFFLENBQUF2SCxFQUFBLEdBQUE2QyxTQUFTLEtBQUEsSUFBQSxJQUFUQSxTQUFTLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVRBLFNBQVMsQ0FBRTBFLFVBQVUsTUFBQSxJQUFBLElBQUF2SCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSWpCLFlBQVksQ0FBQ1csTUFBTTtRQUN4RDhILFNBQVMsRUFBRSxDQUFBdkgsRUFBQSxHQUFBNEMsU0FBUyxLQUFBLElBQUEsSUFBVEEsU0FBUyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFUQSxTQUFTLENBQUUyRSxTQUFTLE1BQUEsSUFBQSxJQUFBdkgsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlsQixZQUFZLENBQUNzRyxLQUFLO1FBQ3JEN0QsSUFBSSxFQUFFO01EaEVKLENDaUVIO01BQ0RpRyxRQUFRLEVBQUVuQyxrQkFBa0I7TUFDNUJvQyxPQUFPLEVBQUVoQyxpQkFBaUI7TUFBQWlDLFFBQUEsRUFFekIzRTtJQUFZLENBQUEsQ0FFaEI7SUFDRGlFLFVBQVUsR0FDUm5KLElBQUEsQ0FBQSxLQUFBLEVBQUE7TUFBS3NDLFNBQVMsRUFBRXVDLE9BQU8sQ0FBQyxRQUFRLENBQUM7TUFBQWdGLFFBQUEsRUFBR3pHLGdCQUFnQixHQUFHQSxnQkFBZ0IsQ0FBQ2dHLFVBQVUsQ0FBQyxHQUFHQTtJQUFVLENBQUEsQ0FDakc7RUFDSDtFQUVBLE9BQ0VsSixLQUFBLENBQUEsS0FBQSxFQUFBO0lBQUtvQyxTQUFTLEVBQUV1QyxPQUFPLENBQUNHLFNBQVMsRUFBRTFDLFNBQVMsQ0FBQztJQUFBdUgsUUFBQSxFQUFBLENBQzFDVixVQUFVLEVBRVhqSixLQUFBLENBQUEsS0FBQSxFQUFBO01BQUtvQyxTQUFTLEVBQUV1QyxPQUFPLENBQUMsV0FBVyxDQUFDO01BQUFnRixRQUFBLEVBQUEsQ0FDbEM3SixJQUFBLENBQUNVLEtBQUssRUFBQTtRQUNKc0QsTUFBTSxFQUFFQSxNQUFNO1FBQ2R6QixPQUFPLEVBQUV1QyxZQUFZO1FBQ3JCcEMsVUFBVSxFQUFFQSxVQUFVO1FBQ3RCRSxPQUFPLEVBQUVBLE9BQU87UUFDaEJjLElBQUksRUFBRUEsSUFBSTtRQUNWSixVQUFVLEVBQUUsS0FBSztRQUNqQkUsWUFBWSxFQUFFQSxZQUFZO1FBQzFCTyxRQUFRLEVBQUUrRCxpQkFBaUI7UUFDM0I1RCxPQUFPLEVBQUVBLE9BQU87UUFDaEJDLFFBQVEsRUFBRUEsUUFBUTtRQUNsQkMsTUFBTSxFQUFFQSxNQUFNO1FBQ2RDLE1BQU0sRUFBRUEsTUFBTTtRQUNkQyxVQUFVLEVBQUVBLFVBQVU7UUFDdEJDLEtBQUssRUFBRUEsS0FBSztRQUNaQyxXQUFXLEVBQUVBLFdBQVc7UUFDeEJDLFlBQVksRUFBRUEsWUFBWTtRQUMxQkMsS0FBSyxFQUFFQSxLQUFLO1FBQ1pDLE9BQU8sRUFBRUEsT0FBTztRQUNoQkMsTUFBTSxFQUFFQTtNQUFNLENBQUEsQ0FDZCxFQUVEK0IsU0FBUyxJQUNSM0csSUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLc0MsU0FBUyxFQUFFdUMsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUFBZ0YsUUFBQSxFQUNuQzdKLElBQUEsQ0FBQ1MsVUFBVSxFQUFBO1VBQ1RxSixLQUFLLEVBQUUxQyxRQUFRLENBQUMwQyxLQUFLO1VBQ3JCL0MsT0FBTyxFQUFFSyxRQUFRLENBQUNMLE9BQU87VUFDekJGLFFBQVEsRUFBRU8sUUFBUSxDQUFDUCxRQUFRO1VBQzNCOUMsUUFBUSxFQUFFd0U7UUFBZ0IsQ0FBQTtNQUMxQixDQUFBLENBRUw7SUFBQSxDQUFBLENBQ0c7RUFBQSxDQUFBLENBQ0Y7QUFFVjtBQUVBLE9BQU8sSUFBTXdCLFFBQVEsZ0JBQUc1SixJQUFJLENBQUM0QixhQUFhLENBQXlCO0FBRW5FLGVBQWVnSSxRQUFRIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvVGFibGUvUHJvVGFibGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VJbXBlcmF0aXZlSGFuZGxlLCB1c2VNZW1vLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IHVzZVNhZmVTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZVNhZmVTdGF0ZSc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uIH0gZnJvbSAnLi4vUGFnaW5hdGlvbic7XG5pbXBvcnQgeyBUYWJsZSB9IGZyb20gJy4uL1RhYmxlJztcbmltcG9ydCB7IFF1ZXJ5RmlsdGVyIH0gZnJvbSAnLi4vUHJvRm9ybSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfQ1VSUkVOVCwgREVGQVVMVF9QQUdFX1NJWkUsIERFRkFVTFRfVEVYVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHVzZUZldGNoRGF0YSB9IGZyb20gJy4vdXNlRmV0Y2hEYXRhJztcbmltcG9ydCB7IGdlbkNvbHVtbnMgfSBmcm9tICcuL2NvcmUvZ2VuQ29sdW1ucyc7XG5pbXBvcnQgeyBhcHBseVNlYXJjaFRyYW5zZm9ybXMsIGdlblNlYXJjaEZpZWxkcyB9IGZyb20gJy4vY29yZS9nZW5TZWFyY2hGaWVsZHMnO1xuLyoqIFJlYWQgdGhlIGN1cnJlbnQgVVJMIHF1ZXJ5IHN0cmluZyBpbnRvIHNlYXJjaCB2YWx1ZXMsIGFwcGx5aW5nIHRoZSBgJ2dldCdgIHRyYW5zZm9ybS4gKi9cbmZ1bmN0aW9uIHJlYWRVcmxWYWx1ZXMoc3luY1RvVXJsKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm4ge307XG4gICAgY29uc3QgcGFyYW1zID0ge307XG4gICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5mb3JFYWNoKCh2YWx1ZSwga2V5KSA9PiB7XG4gICAgICAgIHBhcmFtc1trZXldID0gdmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHR5cGVvZiBzeW5jVG9VcmwgPT09ICdmdW5jdGlvbicgPyBzeW5jVG9VcmwocGFyYW1zLCAnZ2V0JykgOiBwYXJhbXM7XG59XG5mdW5jdGlvbiBQcm9UYWJsZUlubmVyKHByb3BzKSB7XG4gICAgdmFyIF9hLCBfYjtcbiAgICBjb25zdCB7IHByZWZpeENscyA9IENTU19QUkVGSVgsIGNsYXNzTmFtZSwgY29sdW1ucywgcmVxdWVzdCwgcGFyYW1zLCBkYXRhU291cmNlOiBjb250cm9sbGVkRGF0YSwgbG9hZGluZzogY29udHJvbGxlZExvYWRpbmcsIGRlZmF1bHREYXRhLCBtYW51YWxSZXF1ZXN0LCBkZWJvdW5jZVRpbWUsIHBvc3REYXRhLCBwb2xsaW5nLCBiZWZvcmVTZWFyY2hTdWJtaXQsIGNvbHVtbkVtcHR5VGV4dCwgc2VhcmNoRm9ybVJlbmRlciwgcGFnaW5hdGlvbiA9IHt9LCBzZWFyY2ggPSB7fSwgcm93U2VsZWN0aW9uLCBzaXplID0gJ3NtYWxsJywgYWN0aW9uUmVmLCBvbkxvYWQsIG9uTG9hZGluZ0NoYW5nZSwgb25SZXF1ZXN0RXJyb3IsIG9uQ2hhbmdlLCByb3dLZXksIHZhcmlhbnQgPSAnc3Ryb2tlJywgYm9yZGVyZWQsIHNjcm9sbCwgc3RpY2t5LCBleHBhbmRhYmxlLCBlbXB0eSwgdGFibGVMYXlvdXQsIHJvd0NsYXNzTmFtZSwgb25Sb3csIHN1bW1hcnksIGZvb3RlciwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgdGFibGVDb2x1bW5zID0gdXNlTWVtbygoKSA9PiBnZW5Db2x1bW5zKGNvbHVtbnMsIGNvbHVtbkVtcHR5VGV4dCksIFtjb2x1bW5zLCBjb2x1bW5FbXB0eVRleHRdKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gKGF1dG8tZ2VuZXJhdGVkIGZyb20gY29sdW1ucykg4pSA4pSAXG4gICAgY29uc3Qgc2VhcmNoQ2ZnID0gc2VhcmNoID09PSBmYWxzZSA/IHVuZGVmaW5lZCA6IHNlYXJjaDtcbiAgICBjb25zdCB7IGZpZWxkczogc2VhcmNoRmllbGRzLCBpbml0aWFsVmFsdWVzOiBzZWFyY2hJbml0aWFsVmFsdWVzLCBuYW1lczogc2VhcmNoRmllbGROYW1lcyB9ID0gdXNlTWVtbygoKSA9PiBnZW5TZWFyY2hGaWVsZHMoY29sdW1ucyksIFtjb2x1bW5zXSk7XG4gICAgY29uc3QgaGFzU2VhcmNoID0gc2VhcmNoICE9PSBmYWxzZSAmJiBzZWFyY2hGaWVsZHMubGVuZ3RoID4gMDtcbiAgICBjb25zdCBzeW5jVG9VcmwgPSBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcuc3luY1RvVXJsO1xuICAgIC8vIFNlZWQgaW5pdGlhbCB2YWx1ZXMgKGFuZCB0aGUgZmlyc3QgcmVxdWVzdCkgZnJvbSB0aGUgVVJMIHdoZW4gc3luY1RvVXJsIGlzIG9uLlxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXMgPSB1c2VNZW1vKCgpID0+IChzeW5jVG9VcmwgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHNlYXJjaEluaXRpYWxWYWx1ZXMpLCByZWFkVXJsVmFsdWVzKHN5bmNUb1VybCkpIDogc2VhcmNoSW5pdGlhbFZhbHVlcyksIFxuICAgIC8vIG1vdW50LW9ubHkgc25hcHNob3Qgb2YgdGhlIFVSTFxuICAgIFtzZWFyY2hJbml0aWFsVmFsdWVzXSk7XG4gICAgY29uc3QgW3NlYXJjaFBhcmFtcywgc2V0U2VhcmNoUGFyYW1zXSA9IHVzZVNhZmVTdGF0ZSgoKSA9PiBtZXJnZWRJbml0aWFsVmFsdWVzKTtcbiAgICBjb25zdCBmb3JtUmVmID0gdXNlUmVmKHVuZGVmaW5lZCk7XG4gICAgLy8g4pSA4pSAIHNlcnZlciBzb3J0IC8gZmlsdGVyIOKUgOKUgFxuICAgIGNvbnN0IFtzb3J0LCBzZXRTb3J0XSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgY29uc3QgW2ZpbHRlciwgc2V0RmlsdGVyXSA9IHVzZVNhZmVTdGF0ZSh7fSk7XG4gICAgLy8g4pSA4pSAIHBhZ2luYXRpb24gY29uZmlnIOKUgOKUgFxuICAgIGNvbnN0IHBhZ2luYXRlZCA9IHBhZ2luYXRpb24gIT09IGZhbHNlO1xuICAgIGNvbnN0IGRlZmF1bHRQYWdlU2l6ZSA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdFBhZ2VTaXplKSB8fCAocGFnaW5hdGlvbiAmJiBwYWdpbmF0aW9uLnBhZ2VTaXplKSB8fCBERUZBVUxUX1BBR0VfU0laRTtcbiAgICBjb25zdCBkZWZhdWx0Q3VycmVudCA9IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uZGVmYXVsdEN1cnJlbnQpIHx8IChwYWdpbmF0aW9uICYmIHBhZ2luYXRpb24uY3VycmVudCkgfHwgREVGQVVMVF9DVVJSRU5UO1xuICAgIGNvbnN0IG1hbnVhbCA9IGNvbnRyb2xsZWREYXRhICE9PSB1bmRlZmluZWQgfHwgIXJlcXVlc3Q7XG4gICAgY29uc3QgeyBkYXRhU291cmNlOiBmZXRjaGVkRGF0YSwgbG9hZGluZzogZmV0Y2hMb2FkaW5nLCBwYWdlSW5mbywgc2V0UGFnZUluZm8sIHJlbG9hZCwgcmVzZXQgfSA9IHVzZUZldGNoRGF0YSh7XG4gICAgICAgIHJlcXVlc3QsXG4gICAgICAgIG1hbnVhbCxcbiAgICAgICAgbWFudWFsUmVxdWVzdCxcbiAgICAgICAgZGVib3VuY2VUaW1lLFxuICAgICAgICBwb3N0RGF0YSxcbiAgICAgICAgcG9sbGluZyxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBkZWZhdWx0RGF0YSxcbiAgICAgICAgcGFnaW5hdGVkLFxuICAgICAgICBkZWZhdWx0Q3VycmVudCxcbiAgICAgICAgZGVmYXVsdFBhZ2VTaXplLFxuICAgICAgICBzZWFyY2hQYXJhbXMsXG4gICAgICAgIHNvcnQsXG4gICAgICAgIGZpbHRlcixcbiAgICAgICAgb25Mb2FkLFxuICAgICAgICBvbkxvYWRpbmdDaGFuZ2UsXG4gICAgICAgIG9uUmVxdWVzdEVycm9yLFxuICAgIH0pO1xuICAgIGNvbnN0IGRhdGFTb3VyY2UgPSBjb250cm9sbGVkRGF0YSAhPT0gbnVsbCAmJiBjb250cm9sbGVkRGF0YSAhPT0gdm9pZCAwID8gY29udHJvbGxlZERhdGEgOiBmZXRjaGVkRGF0YTtcbiAgICBjb25zdCBsb2FkaW5nID0gY29udHJvbGxlZExvYWRpbmcgIT09IG51bGwgJiYgY29udHJvbGxlZExvYWRpbmcgIT09IHZvaWQgMCA/IGNvbnRyb2xsZWRMb2FkaW5nIDogKG1hbnVhbCA/IGZhbHNlIDogZmV0Y2hMb2FkaW5nKTtcbiAgICAvLyDilIDilIAgaGFuZGxlcnMg4pSA4pSAXG4gICAgY29uc3QgaGFuZGxlU2VhcmNoRmluaXNoID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHBlckNvbHVtbiA9IGFwcGx5U2VhcmNoVHJhbnNmb3Jtcyh2YWx1ZXMsIGNvbHVtbnMpO1xuICAgICAgICBjb25zdCBmaW5hbFBhcmFtcyA9IGJlZm9yZVNlYXJjaFN1Ym1pdCA/IGJlZm9yZVNlYXJjaFN1Ym1pdChwZXJDb2x1bW4pIDogcGVyQ29sdW1uO1xuICAgICAgICBzZXRTZWFyY2hQYXJhbXMoZmluYWxQYXJhbXMpO1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IGRlZmF1bHRDdXJyZW50IH0pO1xuICAgICAgICB2b2lkIHJlbG9hZCgpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaFJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgLy8gVXNlIHRoZSBhcnJheSBmb3JtIChgcmVzZXRGaWVsZHMobmFtZXMpYCkg4oCUIHRoZSBuby1hcmcgZm9ybSByZS1pbnZva2VzIHRoZVxuICAgICAgICAvLyBmb3JtJ3Mgb3duIGBvblJlc2V0YCwgd2hpY2ggbG9vcHMgYmFjayBoZXJlIGFuZCByZWN1cnNlcyBpbmZpbml0ZWx5LlxuICAgICAgICAoX2EgPSBmb3JtUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5yZXNldEZpZWxkcyhzZWFyY2hGaWVsZE5hbWVzKTtcbiAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHt9KTtcbiAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgdm9pZCByZWxvYWQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUYWJsZUNoYW5nZSA9IHVzZU1lbW9pemVkRm4oKG1ldGEpID0+IHtcbiAgICAgICAgaWYgKG1ldGEuc29ydGVyKSB7XG4gICAgICAgICAgICBjb25zdCB7IGNvbHVtbktleSwgb3JkZXIgfSA9IG1ldGEuc29ydGVyO1xuICAgICAgICAgICAgc2V0U29ydChjb2x1bW5LZXkgJiYgb3JkZXIgPyB7IFtTdHJpbmcoY29sdW1uS2V5KV06IG9yZGVyIH0gOiB7fSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG1ldGEuZmlsdGVycylcbiAgICAgICAgICAgIHNldEZpbHRlcihtZXRhLmZpbHRlcnMpO1xuICAgICAgICBpZiAobWV0YS5zb3J0ZXIgfHwgbWV0YS5maWx0ZXJzKVxuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG1ldGEpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVBhZ2VDaGFuZ2UgPSB1c2VNZW1vaXplZEZuKChwYWdlLCBwYWdlU2l6ZSkgPT4ge1xuICAgICAgICBzZXRQYWdlSW5mbyh7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0pO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2Uoe1xuICAgICAgICAgICAgY3VycmVudERhdGFTb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICBhY3Rpb246ICdwYWdpbmF0ZScsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiB7IGN1cnJlbnQ6IHBhZ2UsIHBhZ2VTaXplIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBpbXBlcmF0aXZlIGhhbmRsZSDilIDilIBcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKGFjdGlvblJlZiwgKCkgPT4gKHtcbiAgICAgICAgcmVsb2FkOiAoKSA9PiByZWxvYWQoKSxcbiAgICAgICAgcmVsb2FkQW5kUmVzdDogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgc2V0UGFnZUluZm8oeyBjdXJyZW50OiBkZWZhdWx0Q3VycmVudCB9KTtcbiAgICAgICAgICAgIHlpZWxkIHJlbG9hZCgpO1xuICAgICAgICB9KSxcbiAgICAgICAgcmVzZXQ6ICgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIChfYSA9IGZvcm1SZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnJlc2V0RmllbGRzKHNlYXJjaEZpZWxkTmFtZXMpO1xuICAgICAgICAgICAgc2V0U2VhcmNoUGFyYW1zKHNlYXJjaEluaXRpYWxWYWx1ZXMpO1xuICAgICAgICAgICAgc2V0U29ydCh7fSk7XG4gICAgICAgICAgICBzZXRGaWx0ZXIoe30pO1xuICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICAgIHZvaWQgcmVsb2FkKCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNldFBhZ2VJbmZvLFxuICAgIH0pKTtcbiAgICAvLyDilIDilIAgc2VhcmNoIGZvcm0gbm9kZSAob25seSBidWlsdCB3aGVuIHRoZXJlIGFyZSBzZWFyY2hhYmxlIGNvbHVtbnMpIOKUgOKUgFxuICAgIGxldCBzZWFyY2hOb2RlID0gbnVsbDtcbiAgICBpZiAoaGFzU2VhcmNoKSB7XG4gICAgICAgIGNvbnN0IHNlYXJjaEZvcm0gPSAoX2pzeChRdWVyeUZpbHRlciwgeyBmb3JtUmVmOiBmb3JtUmVmLCBzaXplOiBcInNtYWxsXCIsIGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsIGRlZmF1bHRDb2xsYXBzZWQ6IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5kZWZhdWx0Q29sbGFwc2VkLCBkZWZhdWx0Q29sc051bWJlcjogc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLmRlZmF1bHRDb2xzTnVtYmVyLCBsYWJlbFdpZHRoOiBzZWFyY2hDZmcgPT09IG51bGwgfHwgc2VhcmNoQ2ZnID09PSB2b2lkIDAgPyB2b2lkIDAgOiBzZWFyY2hDZmcubGFiZWxXaWR0aCwgc3luY1RvVXJsOiBzeW5jVG9VcmwsIHNlYXJjaENvbmZpZzoge1xuICAgICAgICAgICAgICAgIHNlYXJjaFRleHQ6IChfYSA9IHNlYXJjaENmZyA9PT0gbnVsbCB8fCBzZWFyY2hDZmcgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHNlYXJjaENmZy5zZWFyY2hUZXh0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBERUZBVUxUX1RFWFQuc2VhcmNoLFxuICAgICAgICAgICAgICAgIHJlc2V0VGV4dDogKF9iID0gc2VhcmNoQ2ZnID09PSBudWxsIHx8IHNlYXJjaENmZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2VhcmNoQ2ZnLnJlc2V0VGV4dCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogREVGQVVMVF9URVhULnJlc2V0LFxuICAgICAgICAgICAgICAgIHNpemU6ICdtZWRpdW0nLFxuICAgICAgICAgICAgfSwgb25GaW5pc2g6IGhhbmRsZVNlYXJjaEZpbmlzaCwgb25SZXNldDogaGFuZGxlU2VhcmNoUmVzZXQsIGNoaWxkcmVuOiBzZWFyY2hGaWVsZHMgfSkpO1xuICAgICAgICBzZWFyY2hOb2RlID0gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NlYXJjaCcpLCBjaGlsZHJlbjogc2VhcmNoRm9ybVJlbmRlciA/IHNlYXJjaEZvcm1SZW5kZXIoc2VhcmNoRm9ybSkgOiBzZWFyY2hGb3JtIH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcyh1bmRlZmluZWQsIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbc2VhcmNoTm9kZSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbnRhaW5lcicpLCBjaGlsZHJlbjogW19qc3goVGFibGUsIHsgcm93S2V5OiByb3dLZXksIGNvbHVtbnM6IHRhYmxlQ29sdW1ucywgZGF0YVNvdXJjZTogZGF0YVNvdXJjZSwgbG9hZGluZzogbG9hZGluZywgc2l6ZTogc2l6ZSwgcGFnaW5hdGlvbjogZmFsc2UsIHJvd1NlbGVjdGlvbjogcm93U2VsZWN0aW9uLCBvbkNoYW5nZTogaGFuZGxlVGFibGVDaGFuZ2UsIHZhcmlhbnQ6IHZhcmlhbnQsIGJvcmRlcmVkOiBib3JkZXJlZCwgc2Nyb2xsOiBzY3JvbGwsIHN0aWNreTogc3RpY2t5LCBleHBhbmRhYmxlOiBleHBhbmRhYmxlLCBlbXB0eTogZW1wdHksIHRhYmxlTGF5b3V0OiB0YWJsZUxheW91dCwgcm93Q2xhc3NOYW1lOiByb3dDbGFzc05hbWUsIG9uUm93OiBvblJvdywgc3VtbWFyeTogc3VtbWFyeSwgZm9vdGVyOiBmb290ZXIgfSksIHBhZ2luYXRlZCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFnaW5hdGlvbicpLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwYWdlSW5mby50b3RhbCwgY3VycmVudDogcGFnZUluZm8uY3VycmVudCwgcGFnZVNpemU6IHBhZ2VJbmZvLnBhZ2VTaXplLCBvbkNoYW5nZTogaGFuZGxlUGFnZUNoYW5nZSB9KSB9KSldIH0pXSB9KSk7XG59XG5leHBvcnQgY29uc3QgUHJvVGFibGUgPSBtZW1vKFByb1RhYmxlSW5uZXIpO1xuZXhwb3J0IGRlZmF1bHQgUHJvVGFibGU7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import { useRef } from 'react';
|
|
3
|
-
import
|
|
3
|
+
import useMemoizedFn from '@1money/hooks/useMemoizedFn';
|
|
4
|
+
import useSafeState from '@1money/hooks/useSafeState';
|
|
4
5
|
/**
|
|
5
6
|
* Bridges imperative, awaitable reloads onto a reactive (effect-driven) fetch.
|
|
6
7
|
*
|
|
@@ -36,4 +37,4 @@ export function useAwaitableReload() {
|
|
|
36
37
|
settle: settle
|
|
37
38
|
};
|
|
38
39
|
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvVGFibGUvc3JjL2NvbXBvbmVudHMvUHJvVGFibGUvY29yZS91c2VBd2FpdGFibGVSZWxvYWQudHMiLCJjb21wb25lbnRzL1Byb1RhYmxlL2NvcmUvdXNlQXdhaXRhYmxlUmVsb2FkLmpzIl0sIm5hbWVzIjpbInVzZVJlZiIsInVzZU1lbW9pemVkRm4iLCJ1c2VTYWZlU3RhdGUiLCJ1c2VBd2FpdGFibGVSZWxvYWQiLCJfdXNlU2FmZVN0YXRlIiwiX3VzZVNhZmVTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInRva2VuIiwic2V0VG9rZW4iLCJyZXNvbHZlcnNSZWYiLCJyZXF1ZXN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJjdXJyZW50IiwicHVzaCIsInZhbHVlIiwic2V0dGxlIiwicmVzb2x2ZXJzIiwiZm9yRWFjaCJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLE1BQU0sUUFBUSxPQUFPO0FBQzlCLE9BQU9DLGFBQWEsTUFBTSw2QkFBNkI7QUFDdkQsT0FBT0MsWUFBWSxNQUFNLDRCQUE0QjtBQVdyRDtBQ1RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEV0EsT0FBTSxTQUFVQyxrQkFBa0JBLENBQUEsRUFBQTtFQUNoQyxJQUFBQyxhQUFBLEdBQTBCRixZQUFZLENBQUMsQ0FBQyxDQUFDO0lBQUFHLGNBQUEsR0FBQUMsY0FBQSxDQUFBRixhQUFBO0lBQWxDRyxLQUFLLEdBQUFGLGNBQUE7SUFBRUcsUUFBUSxHQUFBSCxjQUFBO0VBQ3RCLElBQU1JLFlBQVksR0FBR1QsTUFBTSxDQUFvQixFQUFFLENBQUM7RUFFbEQsSUFBTVUsT0FBTyxHQUFHVCxhQUFhLENBQzNCO0lBQUEsT0FDRSxJQUFJVSxPQUFPLENBQU8sVUFBQ0MsT0FBTyxFQUFJO01BQzVCSCxZQUFZLENBQUNJLE9BQU8sQ0FBQ0MsSUFBSSxDQUFDRixPQUFPLENBQUM7TUFDbENKLFFBQVEsQ0FBQyxVQUFDTyxLQUFLO1FBQUEsT0FBS0EsS0FBSyxHQUFHLENBQUM7TUFBQSxFQUFDO0lBQ2hDLENBQUMsQ0FBQztFQUFBLEVBQ0w7RUFFRCxJQUFNQyxNQUFNLEdBQUdmLGFBQWEsQ0FBQyxZQUFLO0lBQ2hDLElBQU1nQixTQUFTLEdBQUdSLFlBQVksQ0FBQ0ksT0FBTztJQUN0Q0osWUFBWSxDQUFDSSxPQUFPLEdBQUcsRUFBRTtJQUN6QkksU0FBUyxDQUFDQyxPQUFPLENBQUMsVUFBQ04sT0FBTztNQUFBLE9BQUtBLE9BQU8sQ0FBQSxDQUFFO0lBQUEsRUFBQztFQUMzQyxDQUFDLENBQUM7RUFFRixPQUFPO0lBQUVMLEtBQUssRUFBTEEsS0FBSztJQUFFRyxPQUFPLEVBQVBBLE9BQU87SUFBRU0sTUFBTSxFQUFOQTtFQUFNLENBQUU7QUFDbkMiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9UYWJsZS9jb3JlL3VzZUF3YWl0YWJsZVJlbG9hZC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VTYWZlU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VTYWZlU3RhdGUnO1xuLyoqXG4gKiBCcmlkZ2VzIGltcGVyYXRpdmUsIGF3YWl0YWJsZSByZWxvYWRzIG9udG8gYSByZWFjdGl2ZSAoZWZmZWN0LWRyaXZlbikgZmV0Y2guXG4gKlxuICogYHJlcXVlc3QoKWAgYnVtcHMgYHRva2VuYCAod2hpY2ggdGhlIGNvbnN1bWluZyBlZmZlY3QgZGVwZW5kcyBvbikgYW5kIHJldHVybnMgYVxuICogcHJvbWlzZTsgdGhlIGVmZmVjdCBjYWxscyBgc2V0dGxlKClgIG9uY2UgdGhlIGZldGNoIGl0IHRyaWdnZXJlZCBmaW5pc2hlcyxcbiAqIHJlc29sdmluZyB0aGF0IHByb21pc2UuIFRoaXMga2VlcHMgYSBzaW5nbGUsIGZyZXNoLWNsb3N1cmUgZmV0Y2ggcGF0aCB3aGlsZVxuICogc3RpbGwgbGV0dGluZyBjYWxsZXJzIGBhd2FpdGAgYSByZWxvYWQg4oCUIG5vIHN0YWxlIHJlZnMsIG5vIGR1cGxpY2F0ZSBmZXRjaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlQXdhaXRhYmxlUmVsb2FkKCkge1xuICAgIGNvbnN0IFt0b2tlbiwgc2V0VG9rZW5dID0gdXNlU2FmZVN0YXRlKDApO1xuICAgIGNvbnN0IHJlc29sdmVyc1JlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHtcbiAgICAgICAgcmVzb2x2ZXJzUmVmLmN1cnJlbnQucHVzaChyZXNvbHZlKTtcbiAgICAgICAgc2V0VG9rZW4oKHZhbHVlKSA9PiB2YWx1ZSArIDEpO1xuICAgIH0pKTtcbiAgICBjb25zdCBzZXR0bGUgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZXJzID0gcmVzb2x2ZXJzUmVmLmN1cnJlbnQ7XG4gICAgICAgIHJlc29sdmVyc1JlZi5jdXJyZW50ID0gW107XG4gICAgICAgIHJlc29sdmVycy5mb3JFYWNoKChyZXNvbHZlKSA9PiByZXNvbHZlKCkpO1xuICAgIH0pO1xuICAgIHJldHVybiB7IHRva2VuLCByZXF1ZXN0LCBzZXR0bGUgfTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|