@onepercentio/one-ui 0.28.5 → 0.28.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AdaptiveButton/AdaptiveButton.js +12 -8
- package/dist/components/AdaptiveButton/index.js +2 -2
- package/dist/components/AdaptiveContainer/AdaptiveContainer.d.ts +2 -2
- package/dist/components/AdaptiveContainer/AdaptiveContainer.js +58 -30
- package/dist/components/AdaptiveContainer/AdaptiveContainer.module.scss +2 -2
- package/dist/components/AdaptiveContainer/index.js +2 -2
- package/dist/components/AdaptiveDialog/AdaptiveDialog.js +8 -9
- package/dist/components/AdaptiveDialog/index.js +2 -2
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.js +19 -18
- package/dist/components/AdaptiveSidebar/AdaptiveSidebar.sample.js +2 -2
- package/dist/components/AdaptiveSidebar/index.js +2 -2
- package/dist/components/AnchoredTooltip/AnchoredTooltip.d.ts +1 -1
- package/dist/components/AnchoredTooltip/AnchoredTooltip.js +20 -21
- package/dist/components/AnchoredTooltip/index.js +2 -2
- package/dist/components/AnimatedEntrance/AnimatedEntrance.js +9 -11
- package/dist/components/AnimatedEntrance/index.js +2 -3
- package/dist/components/AsyncWrapper/AsyncWrapper.js +2 -2
- package/dist/components/AsyncWrapper/index.js +2 -2
- package/dist/components/Avatar/Avatar.js +5 -6
- package/dist/components/Avatar/index.js +2 -2
- package/dist/components/BucketFill/BucketFill.js +6 -7
- package/dist/components/BucketFill/index.js +2 -2
- package/dist/components/Button/Button.js +13 -15
- package/dist/components/Button/index.js +2 -2
- package/dist/components/Card/Card.js +3 -3
- package/dist/components/Card/index.js +2 -2
- package/dist/components/Chart/Chart.logic.js +2 -2
- package/dist/components/Chart/Chart.types.js +1 -1
- package/dist/components/Chart/Chart.view.js +7 -8
- package/dist/components/Chart/index.js +2 -2
- package/dist/components/CheckBox/CheckBox.js +17 -14
- package/dist/components/CheckBox/index.js +2 -2
- package/dist/components/CodeInput/CodeInput.js +5 -6
- package/dist/components/CodeInput/index.js +2 -2
- package/dist/components/Collapsable/Collapsable.js +33 -29
- package/dist/components/Collapsable/index.js +2 -2
- package/dist/components/Countdown/Countdown.js +7 -8
- package/dist/components/Countdown/index.js +2 -2
- package/dist/components/CurrencyInput/CurrencyInput.hook.js +2 -2
- package/dist/components/CurrencyInput/CurrencyInput.js +14 -11
- package/dist/components/CurrencyInput/index.js +2 -2
- package/dist/components/Divider/Divider.js +3 -3
- package/dist/components/Divider/index.js +2 -2
- package/dist/components/EmailInput/EmailInput.js +5 -7
- package/dist/components/EmailInput/index.js +2 -3
- package/dist/components/FadeIn/FadeIn.js +16 -15
- package/dist/components/FadeIn/index.js +2 -2
- package/dist/components/FileInput/FileInput.js +11 -10
- package/dist/components/FileInput/View/BigFactory/BigFactory.js +3 -3
- package/dist/components/FileInput/View/BigFactory/index.js +2 -2
- package/dist/components/FileInput/View/Compact/Compact.js +7 -9
- package/dist/components/FileInput/View/Compact/index.js +2 -3
- package/dist/components/FileInput/View/View.types.js +1 -1
- package/dist/components/FileInput/index.js +2 -2
- package/dist/components/FlowController/FlowController.d.ts +1 -1
- package/dist/components/FlowController/FlowController.js +3 -3
- package/dist/components/FlowController/index.js +2 -2
- package/dist/components/Form/Form.js +16 -16
- package/dist/components/Form/index.js +2 -2
- package/dist/components/Form/v2/Form.hook.js +16 -21
- package/dist/components/Form/v2/Form.js +11 -10
- package/dist/components/Form/v2/Form.types.js +6 -11
- package/dist/components/Form/v2/FormField/Extensions/DateField/DateField.js +4 -4
- package/dist/components/Form/v2/FormField/Extensions/DateField/index.js +2 -2
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.js +3 -4
- package/dist/components/Form/v2/FormField/Extensions/PhoneField/index.js +2 -2
- package/dist/components/Form/v2/FormField/FormField.js +13 -9
- package/dist/components/Form/v2/FormField/FormField.types.js +2 -3
- package/dist/components/Form/v2/FormField/index.js +2 -2
- package/dist/components/Form/v2/index.js +2 -2
- package/dist/components/Freeze/Freeze.js +2 -2
- package/dist/components/Freeze/index.js +2 -2
- package/dist/components/HSForms/HSForms.js +5 -16
- package/dist/components/HSForms/index.js +2 -2
- package/dist/components/Header/Header.js +8 -9
- package/dist/components/Header/index.js +2 -2
- package/dist/components/HeaderCloseBtn/HeaderCloseBtn.js +3 -3
- package/dist/components/HeaderCloseBtn/index.js +2 -2
- package/dist/components/InfinityScroll/InfinityScroll.js +14 -13
- package/dist/components/InfinityScroll/index.js +2 -2
- package/dist/components/Input/Input.js +24 -24
- package/dist/components/Input/index.js +2 -2
- package/dist/components/InstantCounter/InstantCounter.js +3 -5
- package/dist/components/InstantCounter/index.js +2 -2
- package/dist/components/LavaLamp/LavaLamp.data.js +3 -4
- package/dist/components/LavaLamp/LavaLamp.js +11 -12
- package/dist/components/LavaLamp/index.js +2 -2
- package/dist/components/LavaLamp/v2/LavaLamp.js +9 -9
- package/dist/components/LinkToId/LinkToId.js +2 -2
- package/dist/components/LinkToId/index.js +2 -3
- package/dist/components/Loader/Loader.js +10 -7
- package/dist/components/Loader/index.js +2 -2
- package/dist/components/LoaderDotsIndicator/LoaderDotsIndicator.js +2 -3
- package/dist/components/LoaderDotsIndicator/index.js +2 -2
- package/dist/components/LoopableVideo/LoopableVideo.js +11 -8
- package/dist/components/LoopableVideo/index.js +2 -2
- package/dist/components/MainGrid/MainGrid.js +4 -6
- package/dist/components/MainGrid/index.js +2 -2
- package/dist/components/MutableHamburgerButton/MutableHamburgerButton.js +13 -10
- package/dist/components/MutableHamburgerButton/index.js +2 -2
- package/dist/components/Notification/Notification.js +3 -3
- package/dist/components/Notification/index.js +2 -2
- package/dist/components/OrderableList/OrderableList.js +47 -44
- package/dist/components/OrderableList/index.js +2 -2
- package/dist/components/PaginationIndicator/PaginationIndicator.js +23 -26
- package/dist/components/PaginationIndicator/index.js +2 -2
- package/dist/components/Parallax/Parallax.js +25 -24
- package/dist/components/Parallax/index.js +2 -2
- package/dist/components/Parallax/math/helpers.js +2 -3
- package/dist/components/PasswordInput/PasswordInput.js +5 -7
- package/dist/components/PasswordInput/index.js +2 -2
- package/dist/components/PingPongText/PingPongText.js +7 -9
- package/dist/components/PingPongText/index.js +2 -2
- package/dist/components/PixelatedScan/PixelatedScan.js +19 -16
- package/dist/components/PixelatedScan/index.js +2 -2
- package/dist/components/Portal/Portal.js +14 -13
- package/dist/components/Portal/index.js +2 -3
- package/dist/components/ProgressBar/ProgressBar.js +28 -25
- package/dist/components/ProgressBar/index.js +2 -3
- package/dist/components/ProgressTexts/ProgressTexts.js +3 -3
- package/dist/components/ProgressTexts/index.js +2 -2
- package/dist/components/Radio/Radio.js +17 -14
- package/dist/components/Radio/index.js +2 -2
- package/dist/components/SectionContainer/SectionContainer.d.ts +1 -1
- package/dist/components/SectionContainer/SectionContainer.js +7 -9
- package/dist/components/SectionContainer/index.js +2 -2
- package/dist/components/Select/Select.js +24 -23
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Skeleton/Skeleton.js +5 -5
- package/dist/components/Skeleton/index.js +2 -2
- package/dist/components/Spacing/Spacing.js +4 -5
- package/dist/components/Spacing/index.js +2 -2
- package/dist/components/StaticScroller/StaticScroller.js +12 -11
- package/dist/components/StaticScroller/index.js +2 -2
- package/dist/components/Switch/Switch.js +14 -11
- package/dist/components/Switch/index.js +2 -2
- package/dist/components/Table/Table.js +5 -6
- package/dist/components/Table/index.js +2 -2
- package/dist/components/Tabs/Tabs.js +6 -8
- package/dist/components/Tabs/index.js +2 -2
- package/dist/components/Text/Text.js +14 -13
- package/dist/components/Text/index.js +2 -2
- package/dist/components/Transition/MasksFactory/DiagonalReveal.js +11 -11
- package/dist/components/Transition/MasksFactory/DiagonalSquareToBalls.js +16 -17
- package/dist/components/Transition/MasksFactory/PhysicsSquares.js +5 -5
- package/dist/components/Transition/MasksFactory/SquareToBalls.js +15 -16
- package/dist/components/Transition/MasksFactory/utils.js +1 -1
- package/dist/components/Transition/Transition.js +45 -48
- package/dist/components/Transition/index.js +2 -3
- package/dist/components/UncontrolledTransition/UncontrolledTransition.js +37 -39
- package/dist/components/UncontrolledTransition/UncontrolledTransition.sample.js +4 -5
- package/dist/components/UncontrolledTransition/index.js +2 -3
- package/dist/components/WalletConnectionWrapper/WalletConnectionWrapper.js +8 -11
- package/dist/components/WalletConnectionWrapper/index.js +2 -3
- package/dist/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.js +3 -4
- package/dist/components/utilitary/ScrollAndFocusLock/index.js +2 -2
- package/dist/context/AsyncProcess.js +12 -10
- package/dist/context/ContextAsyncControl.js +10 -7
- package/dist/context/CustomBrowserRouter.js +5 -6
- package/dist/context/OneUIProvider.d.ts +3 -2
- package/dist/context/OneUIProvider.js +7 -28
- package/dist/hooks/logs/useDependencyChangeDetection.js +2 -2
- package/dist/hooks/logs/useIsMounting.js +1 -1
- package/dist/hooks/persistence/useLocalStorage.js +1 -1
- package/dist/hooks/shims/ObjectWatchShim.js +1 -1
- package/dist/hooks/ui/useAdaptiveImage.js +3 -4
- package/dist/hooks/ui/useAlternating.js +1 -1
- package/dist/hooks/ui/useBreakpoint.js +2 -2
- package/dist/hooks/ui/useCustomScrollbar.js +2 -2
- package/dist/hooks/ui/useEffectIf.js +1 -1
- package/dist/hooks/ui/useMouseHover.js +2 -2
- package/dist/hooks/ui/usePaginationControls.js +26 -21
- package/dist/hooks/ui/useSnapToViewport.js +6 -6
- package/dist/hooks/ui/useTilt.js +7 -5
- package/dist/hooks/ui/useZoomable.js +8 -9
- package/dist/hooks/useAsyncControl.js +28 -32
- package/dist/hooks/useContainedRepositioning.js +6 -6
- package/dist/hooks/useCustomHistory.js +8 -4
- package/dist/hooks/useElementFit.js +2 -2
- package/dist/hooks/useFirestoreWatch.js +1 -1
- package/dist/hooks/useForm.js +9 -6
- package/dist/hooks/useFreeze.d.ts +1 -1
- package/dist/hooks/useFreeze.js +2 -2
- package/dist/hooks/useHero.js +36 -33
- package/dist/hooks/useIntersection.js +1 -1
- package/dist/hooks/useMergeRefs.js +1 -1
- package/dist/hooks/useObserve.js +1 -1
- package/dist/hooks/usePagination.js +21 -12
- package/dist/hooks/usePooledOperation.js +2 -2
- package/dist/hooks/usePooling.js +1 -1
- package/dist/hooks/useRebound.js +1 -1
- package/dist/hooks/useShortIntl.ai.md +5 -0
- package/dist/hooks/useShortIntl.js +19 -19
- package/dist/hooks/utility/useAsyncMemo.js +12 -8
- package/dist/hooks/utility/useDepChange.js +1 -1
- package/dist/hooks/utility/useEvents.js +1 -1
- package/dist/hooks/utility/useImmediate.js +2 -2
- package/dist/hooks/utility/useManualInit.js +2 -2
- package/dist/hooks/utility/useModule.js +1 -1
- package/dist/hooks/utility/useQuery.js +1 -1
- package/dist/hooks/utility/useUniqueEffect.js +1 -1
- package/dist/index.js +1 -1
- package/dist/models/DebugLogger.js +2 -2
- package/dist/models/GenericContract.js +2 -3
- package/dist/models/Orbs.js +1 -1
- package/dist/reac-app-env.d.js +1 -1
- package/dist/storybookUtils/index.js +2 -2
- package/dist/type-utils.js +1 -1
- package/dist/types.js +1 -1
- package/dist/utility.d.js +1 -1
- package/dist/utils/blockchain.js +1 -1
- package/dist/utils/flatten.js +3 -3
- package/dist/utils/formatters.js +3 -4
- package/dist/utils/html.utils.js +1 -1
- package/dist/utils/ownEvent.js +1 -1
- package/dist/utils/test.js +3 -3
- package/package.json +20 -12
- package/src_ai/components/UncontrolledTransition/UncontrolledTransition.ai.ts +0 -35
- package/src_ai/hooks/ui/useAlternating.ai.ts +0 -15
- package/src_ai/hooks/useHero.ai.ts +0 -18
- package/src_ai/types.ts +0 -10
|
@@ -6,10 +6,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.TransitionAnimationTypes = void 0;
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _TransitionModule = _interopRequireDefault(require("./Transition.module.scss"));
|
|
9
|
-
|
|
10
|
-
function
|
|
11
|
-
function _interopRequireWildcard(
|
|
12
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (
|
|
9
|
+
const _excluded = ["step", "contentStyle", "contentClassName", "children", "className", "onDiscardStep", "lockTransitionWidth", "lockTransitionHeight"];
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
13
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
14
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
15
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18
|
+
function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
|
|
19
|
+
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
13
20
|
function TransitionClasses(type) {
|
|
14
21
|
switch (type) {
|
|
15
22
|
case TransitionAnimationTypes.COIN_FLIP:
|
|
@@ -80,16 +87,16 @@ timestamp, toRemoveKeys) {
|
|
|
80
87
|
}
|
|
81
88
|
function _Transition(_ref, _containerRef) {
|
|
82
89
|
let {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
step,
|
|
91
|
+
contentStyle,
|
|
92
|
+
contentClassName = "",
|
|
93
|
+
children,
|
|
94
|
+
className,
|
|
95
|
+
onDiscardStep,
|
|
96
|
+
lockTransitionWidth = false,
|
|
97
|
+
lockTransitionHeight = false
|
|
98
|
+
} = _ref,
|
|
99
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
93
100
|
const containerRef = (0, _react.useMemo)(() => _containerRef || /*#__PURE__*/(0, _react.createRef)(), [_containerRef]);
|
|
94
101
|
const preTransitionDetails = (0, _react.useRef)({
|
|
95
102
|
transformOrigin: "initial"
|
|
@@ -125,8 +132,8 @@ function _Transition(_ref, _containerRef) {
|
|
|
125
132
|
};
|
|
126
133
|
}
|
|
127
134
|
const key = ((_children$step3 = children[step]) === null || _children$step3 === void 0 ? void 0 : _children$step3.key) || step;
|
|
128
|
-
if (prevStep.current !== step && lockTransitionWidth) containerRef.current.style.width =
|
|
129
|
-
if (prevStep.current !== step && lockTransitionHeight) containerRef.current.style.height =
|
|
135
|
+
if (prevStep.current !== step && lockTransitionWidth) containerRef.current.style.width = "".concat(containerRef.current.clientWidth, "px");
|
|
136
|
+
if (prevStep.current !== step && lockTransitionHeight) containerRef.current.style.height = "".concat(containerRef.current.clientHeight, "px");
|
|
130
137
|
const transitionMask = props.transitionType === TransitionAnimationTypes.MASK ? props.maskFactory(containerRef.current) : "";
|
|
131
138
|
const insertedAt = Date.now();
|
|
132
139
|
|
|
@@ -140,18 +147,17 @@ function _Transition(_ref, _containerRef) {
|
|
|
140
147
|
const [FirstNextScreen, ...restOfScreens] = screensBeforeChangingStep.filter(a => (a === null || a === void 0 ? void 0 : a.associatedKey) !== String(key));
|
|
141
148
|
if (FirstNextScreen) {
|
|
142
149
|
Object.assign(FirstNextScreen.externalProps, {
|
|
143
|
-
style: {
|
|
144
|
-
...contentStyle,
|
|
150
|
+
style: _objectSpread(_objectSpread({}, contentStyle), {}, {
|
|
145
151
|
WebkitMaskImage: transitionMask
|
|
146
|
-
},
|
|
147
|
-
className:
|
|
152
|
+
}),
|
|
153
|
+
className: "".concat(transitionClasses.backward.elementExiting)
|
|
148
154
|
});
|
|
149
155
|
}
|
|
150
156
|
function animationEndListener(event) {
|
|
151
157
|
var _enteringScreenRef$cu, _enteringScreenRef$cu2;
|
|
152
158
|
if (event.target !== event.currentTarget) return;
|
|
153
159
|
const isAnimationFromExpectedState = (_enteringScreenRef$cu = enteringScreenRef.current) === null || _enteringScreenRef$cu === void 0 ? void 0 : _enteringScreenRef$cu.classList.contains(transitionClasses.backward.elementEntering);
|
|
154
|
-
(_enteringScreenRef$cu2 = enteringScreenRef.current) === null || _enteringScreenRef$cu2 === void 0
|
|
160
|
+
(_enteringScreenRef$cu2 = enteringScreenRef.current) === null || _enteringScreenRef$cu2 === void 0 || _enteringScreenRef$cu2.classList.remove(transitionClasses.backward.elementEntering);
|
|
155
161
|
setChildrenWrappers(screensAfterTheCurrentStepEntered => {
|
|
156
162
|
if (onDiscardStep) {
|
|
157
163
|
if (isAnimationFromExpectedState) onDiscardStep(prevKeyToRemove, insertedAt);
|
|
@@ -168,10 +174,8 @@ function _Transition(_ref, _containerRef) {
|
|
|
168
174
|
const propsContainer = {
|
|
169
175
|
ref: enteringScreenRef,
|
|
170
176
|
key,
|
|
171
|
-
className:
|
|
172
|
-
style: {
|
|
173
|
-
...contentStyle
|
|
174
|
-
},
|
|
177
|
+
className: "".concat(transitionClasses.backward.elementEntering, " ").concat(contentClassName),
|
|
178
|
+
style: _objectSpread({}, contentStyle),
|
|
175
179
|
onAnimationEnd: animationEndListener
|
|
176
180
|
};
|
|
177
181
|
const newWrapper = ChildrenWrapperFactory(_ref3 => {
|
|
@@ -192,15 +196,14 @@ function _Transition(_ref, _containerRef) {
|
|
|
192
196
|
const nextScreenRef = /*#__PURE__*/(0, _react.createRef)();
|
|
193
197
|
if (lastWrapper) {
|
|
194
198
|
Object.assign(lastWrapper.externalProps, {
|
|
195
|
-
style: {
|
|
196
|
-
...contentStyle,
|
|
199
|
+
style: _objectSpread(_objectSpread({}, contentStyle), {}, {
|
|
197
200
|
WebkitMaskImage: transitionMask
|
|
198
|
-
},
|
|
199
|
-
className:
|
|
201
|
+
}),
|
|
202
|
+
className: "".concat(contentClassName, " ").concat(transitionClasses.forward.elementExiting),
|
|
200
203
|
onAnimationEnd: e => {
|
|
201
204
|
var _nextScreenRef$curren;
|
|
202
205
|
if (e.target !== e.currentTarget) return;
|
|
203
|
-
if (transitionClasses.forward.elementEntering) (_nextScreenRef$curren = nextScreenRef.current) === null || _nextScreenRef$curren === void 0
|
|
206
|
+
if (transitionClasses.forward.elementEntering) (_nextScreenRef$curren = nextScreenRef.current) === null || _nextScreenRef$curren === void 0 || _nextScreenRef$curren.classList.remove(transitionClasses.forward.elementEntering);
|
|
204
207
|
if (onDiscardStep) onDiscardStep(prevKeyToRemove, insertedAt);
|
|
205
208
|
setChildrenWrappers(screensAfterTheCurrentStepEntered => {
|
|
206
209
|
const nextState = screensAfterTheCurrentStepEntered.filter(s => {
|
|
@@ -215,10 +218,8 @@ function _Transition(_ref, _containerRef) {
|
|
|
215
218
|
const propsContainer = {
|
|
216
219
|
ref: nextScreenRef,
|
|
217
220
|
key,
|
|
218
|
-
style: {
|
|
219
|
-
|
|
220
|
-
},
|
|
221
|
-
className: `${contentClassName} ${transitionClasses.forward.elementEntering}`
|
|
221
|
+
style: _objectSpread({}, contentStyle),
|
|
222
|
+
className: "".concat(contentClassName, " ").concat(transitionClasses.forward.elementEntering)
|
|
222
223
|
};
|
|
223
224
|
const newWrapper = ChildrenWrapperFactory(_ref4 => {
|
|
224
225
|
let {
|
|
@@ -239,7 +240,7 @@ function _Transition(_ref, _containerRef) {
|
|
|
239
240
|
}, [childrenWrappers.length !== 1]);
|
|
240
241
|
(0, _react.useEffect)(() => {
|
|
241
242
|
if (props.transitionType === TransitionAnimationTypes.POP_FROM_ELEMENT_ID && "elementId" in props) {
|
|
242
|
-
const element = document.querySelector(
|
|
243
|
+
const element = document.querySelector("#".concat(props.elementId));
|
|
243
244
|
if (element) {
|
|
244
245
|
const {
|
|
245
246
|
clientWidth,
|
|
@@ -249,9 +250,9 @@ function _Transition(_ref, _containerRef) {
|
|
|
249
250
|
const offsetY = element.clientTop + element.offsetTop + element.clientHeight / 2;
|
|
250
251
|
const percentX = offsetX * 100 / clientWidth;
|
|
251
252
|
const percentY = offsetY * 100 / clientHeight;
|
|
252
|
-
preTransitionDetails.current.transformOrigin =
|
|
253
|
+
preTransitionDetails.current.transformOrigin = "".concat(percentX, "% ").concat(percentY, "%");
|
|
253
254
|
Object.assign(containerRef.current.style, {
|
|
254
|
-
transformOrigin:
|
|
255
|
+
transformOrigin: "".concat(percentX, "% ").concat(percentY, "%")
|
|
255
256
|
});
|
|
256
257
|
}
|
|
257
258
|
} else {
|
|
@@ -261,9 +262,7 @@ function _Transition(_ref, _containerRef) {
|
|
|
261
262
|
containerRef.current.style.overflow = "";
|
|
262
263
|
}
|
|
263
264
|
}, [childrenWrappers.length]);
|
|
264
|
-
const propsToSpread = {
|
|
265
|
-
...props
|
|
266
|
-
};
|
|
265
|
+
const propsToSpread = _objectSpread({}, props);
|
|
267
266
|
delete propsToSpread.transitionType;
|
|
268
267
|
delete propsToSpread.config;
|
|
269
268
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("section", _extends({}, propsToSpread, {
|
|
@@ -282,19 +281,19 @@ function _Transition(_ref, _containerRef) {
|
|
|
282
281
|
const offsetY = clientY - offsetTop;
|
|
283
282
|
const percentX = offsetX * 100 / clientWidth;
|
|
284
283
|
const percentY = offsetY * 100 / clientHeight;
|
|
285
|
-
if (props.transitionType === TransitionAnimationTypes.POP_FROM_ELEMENT_ID || props.transitionType === TransitionAnimationTypes.POP_FROM_CLICK_ORIGIN) preTransitionDetails.current.transformOrigin =
|
|
284
|
+
if (props.transitionType === TransitionAnimationTypes.POP_FROM_ELEMENT_ID || props.transitionType === TransitionAnimationTypes.POP_FROM_CLICK_ORIGIN) preTransitionDetails.current.transformOrigin = "".concat(percentX, "% ").concat(percentY, "%");
|
|
286
285
|
if (props.onClick) props.onClick(e);
|
|
287
286
|
},
|
|
288
287
|
ref: containerRef,
|
|
289
|
-
className:
|
|
288
|
+
className: "".concat(_TransitionModule.default.section, " ").concat(className)
|
|
290
289
|
}), childrenWrappers.map(Wrapper => {
|
|
291
290
|
const childToRender = children.find((a, i) => ((a === null || a === void 0 ? void 0 : a.key) || i) === (Wrapper === null || Wrapper === void 0 ? void 0 : Wrapper.associatedKey));
|
|
292
291
|
return /*#__PURE__*/_react.default.createElement(Wrapper, {
|
|
293
|
-
key:
|
|
292
|
+
key: "".concat(Wrapper.associatedKey, " ").concat(Wrapper.createdAt)
|
|
294
293
|
}, /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, childToRender));
|
|
295
294
|
})));
|
|
296
295
|
}
|
|
297
|
-
let TransitionAnimationTypes = /*#__PURE__*/function (TransitionAnimationTypes) {
|
|
296
|
+
let TransitionAnimationTypes = exports.TransitionAnimationTypes = /*#__PURE__*/function (TransitionAnimationTypes) {
|
|
298
297
|
TransitionAnimationTypes[TransitionAnimationTypes["SLIDE"] = 0] = "SLIDE";
|
|
299
298
|
TransitionAnimationTypes[TransitionAnimationTypes["POP_FROM_CLICK_ORIGIN"] = 1] = "POP_FROM_CLICK_ORIGIN";
|
|
300
299
|
TransitionAnimationTypes[TransitionAnimationTypes["POP_FROM_ELEMENT_ID"] = 2] = "POP_FROM_ELEMENT_ID";
|
|
@@ -307,8 +306,6 @@ let TransitionAnimationTypes = /*#__PURE__*/function (TransitionAnimationTypes)
|
|
|
307
306
|
/**
|
|
308
307
|
* Handles the transition between multiple children and recycling of elements
|
|
309
308
|
**/
|
|
310
|
-
exports.TransitionAnimationTypes = TransitionAnimationTypes;
|
|
311
309
|
const Transition = /*#__PURE__*/(0, _react.forwardRef)(_Transition);
|
|
312
|
-
var _default = Transition;
|
|
313
|
-
exports.default = _default;
|
|
314
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVHJhbnNpdGlvbk1vZHVsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiX2V4dGVuZHMiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImFwcGx5IiwiVHJhbnNpdGlvbkNsYXNzZXMiLCJ0eXBlIiwiVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzIiwiQ09JTl9GTElQIiwiYmFja3dhcmQiLCJlbGVtZW50RXhpdGluZyIsIlN0eWxlcyIsImZsaXBCb3R0b21VcE91dCIsImVsZW1lbnRFbnRlcmluZyIsImZsaXBCb3R0b21VcEluIiwiZm9yd2FyZCIsIkZBREUiLCJmYWRlT3V0QWJzb2x1dGUiLCJmYWRlSW5EZWxheWVkIiwiU0xJREUiLCJlbnRyYW5jZUxlZnQiLCJleGl0TGVmdCIsIlBPUF9GUk9NX0NMSUNLX09SSUdJTiIsIlBPUF9GUk9NX0VMRU1FTlRfSUQiLCJmYWRlSW4iLCJzY2FsZU91dCIsInNjYWxlSW4iLCJmYWRlT3V0IiwiTUFTSyIsInN0dWJFbnRlcmluZyIsInN0dWIiLCJDaGlsZHJlbldyYXBwZXJGYWN0b3J5IiwiZnVuYyIsImV4dGVybmFsUHJvcHNDb250YWluZXIiLCJ0aW1lc3RhbXAiLCJ0b1JlbW92ZUtleXMiLCJjcmVhdGVkQXQiLCJhc3NvY2lhdGVkS2V5IiwiZXh0ZXJuYWxQcm9wcyIsIl9UcmFuc2l0aW9uIiwiX3JlZiIsIl9jb250YWluZXJSZWYiLCJzdGVwIiwiY29udGVudFN0eWxlIiwiY29udGVudENsYXNzTmFtZSIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwib25EaXNjYXJkU3RlcCIsImxvY2tUcmFuc2l0aW9uV2lkdGgiLCJsb2NrVHJhbnNpdGlvbkhlaWdodCIsInByb3BzIiwiY29udGFpbmVyUmVmIiwidXNlTWVtbyIsImNyZWF0ZVJlZiIsInByZVRyYW5zaXRpb25EZXRhaWxzIiwidXNlUmVmIiwidHJhbnNmb3JtT3JpZ2luIiwiY2hpbGRyZW5XcmFwcGVycyIsInNldENoaWxkcmVuV3JhcHBlcnMiLCJ1c2VTdGF0ZSIsIl9jaGlsZHJlbiRzdGVwIiwiU3RyaW5nIiwic3R5bGUiLCJfcmVmMiIsImNyZWF0ZUVsZW1lbnQiLCJEYXRlIiwibm93IiwicHJldlN0ZXAiLCJwcmV2Q2hpbGQiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiX2NoaWxkcmVuJHN0ZXAyIiwiX3ByZXZDaGlsZCRjdXJyZW50IiwiX2NoaWxkcmVuJHN0ZXAzIiwib3ZlcmZsb3ciLCJ0cmFuc2l0aW9uQ2xhc3NlcyIsInRyYW5zaXRpb25UeXBlIiwiQ1VTVE9NIiwiY29uZmlnIiwid2lkdGgiLCJjbGllbnRXaWR0aCIsImhlaWdodCIsImNsaWVudEhlaWdodCIsInRyYW5zaXRpb25NYXNrIiwibWFza0ZhY3RvcnkiLCJpbnNlcnRlZEF0IiwiX3ByZXZDaGlsZCRjdXJyZW50MiIsInN0ZXBUb1JlbW92ZSIsInByZXZLZXlUb1JlbW92ZSIsInNjcmVlbnNCZWZvcmVDaGFuZ2luZ1N0ZXAiLCJlbnRlcmluZ1NjcmVlblJlZiIsIkZpcnN0TmV4dFNjcmVlbiIsInJlc3RPZlNjcmVlbnMiLCJmaWx0ZXIiLCJhIiwiV2Via2l0TWFza0ltYWdlIiwiYW5pbWF0aW9uRW5kTGlzdGVuZXIiLCJldmVudCIsIl9lbnRlcmluZ1NjcmVlblJlZiRjdSIsIl9lbnRlcmluZ1NjcmVlblJlZiRjdTIiLCJjdXJyZW50VGFyZ2V0IiwiaXNBbmltYXRpb25Gcm9tRXhwZWN0ZWRTdGF0ZSIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwicmVtb3ZlIiwic2NyZWVuc0FmdGVyVGhlQ3VycmVudFN0ZXBFbnRlcmVkIiwiZm9yRWFjaCIsInMiLCJfRmlyc3ROZXh0U2NyZWVuJHRvUmUiLCJzaG91bGRLZWVwIiwic29tZSIsImsiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicHJvcHNDb250YWluZXIiLCJyZWYiLCJvbkFuaW1hdGlvbkVuZCIsIm5ld1dyYXBwZXIiLCJfcmVmMyIsIkZyYWdtZW50IiwiX3ByZXZDaGlsZCRjdXJyZW50MyIsInN0ZXBUb0RlbGV0ZSIsImxhc3RJbmRleCIsImxhc3RXcmFwcGVyIiwibmV4dFNjcmVlblJlZiIsImUiLCJfbmV4dFNjcmVlblJlZiRjdXJyZW4iLCJuZXh0U3RhdGUiLCJzaG91bGRNYW50YWluIiwiX3JlZjQiLCJzbGljZSIsImVsZW1lbnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJlbGVtZW50SWQiLCJvZmZzZXRYIiwiY2xpZW50TGVmdCIsIm9mZnNldExlZnQiLCJvZmZzZXRZIiwiY2xpZW50VG9wIiwib2Zmc2V0VG9wIiwicGVyY2VudFgiLCJwZXJjZW50WSIsInByb3BzVG9TcHJlYWQiLCJvbkNsaWNrIiwiY2xpZW50WCIsImNsaWVudFkiLCJzZWN0aW9uIiwibWFwIiwiV3JhcHBlciIsImNoaWxkVG9SZW5kZXIiLCJmaW5kIiwiZXhwb3J0cyIsIlRyYW5zaXRpb24iLCJmb3J3YXJkUmVmIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UcmFuc2l0aW9uL1RyYW5zaXRpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICBBbmltYXRpb25FdmVudCxcbiAgY3JlYXRlUmVmLFxuICBDU1NQcm9wZXJ0aWVzLFxuICBEZXRhaWxlZEhUTUxQcm9wcyxcbiAgRm9yd2FyZGVkUmVmLFxuICBmb3J3YXJkUmVmLFxuICBLZXksXG4gIE11dGFibGVSZWZPYmplY3QsXG4gIFJlYWN0RWxlbWVudCxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBTdHlsZXMgZnJvbSBcIi4vVHJhbnNpdGlvbi5tb2R1bGUuc2Nzc1wiO1xuXG5leHBvcnQgdHlwZSBUcmFuc2l0aW9uVHlwZURlZmluaXRpb25zID1cbiAgfCB7XG4gICAgICB0cmFuc2l0aW9uVHlwZT86XG4gICAgICAgIHwgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLlNMSURFXG4gICAgICAgIHwgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLlBPUF9GUk9NX0NMSUNLX09SSUdJTlxuICAgICAgICB8IFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5GQURFXG4gICAgICAgIHwgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLkNPSU5fRkxJUDtcbiAgICB9XG4gIHwge1xuICAgICAgdHJhbnNpdGlvblR5cGU/OiBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuUE9QX0ZST01fRUxFTUVOVF9JRDtcbiAgICAgIGVsZW1lbnRJZDogc3RyaW5nO1xuICAgIH1cbiAgfCB7XG4gICAgICB0cmFuc2l0aW9uVHlwZT86IFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5NQVNLO1xuICAgICAgLyoqXG4gICAgICAgKiBJdCBwcm92aWRlcyB0aGUgdHJhbnNpdGlvbiBjb250YWluZXIgc28geW91IGNhbiBjcmVhdGUgYSBkeW5hbWljIHN2ZyB0byBtYXNrIHdpdGhcbiAgICAgICAqL1xuICAgICAgbWFza0ZhY3Rvcnk6IChjb250YWluZXI6IEhUTUxEaXZFbGVtZW50KSA9PiBzdHJpbmc7XG4gICAgfVxuICB8IHtcbiAgICAgIHRyYW5zaXRpb25UeXBlPzogVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLkNVU1RPTTtcbiAgICAgIGNvbmZpZzogUmV0dXJuVHlwZTx0eXBlb2YgVHJhbnNpdGlvbkNsYXNzZXM+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIFRyYW5zaXRpb25Qcm9wcyA9IHtcbiAgc3RlcDogbnVtYmVyO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNvbnRlbnRTdHlsZT86IFJlYWN0LkNTU1Byb3BlcnRpZXM7XG4gIGNvbnRlbnRDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNoaWxkcmVuOiAoUmVhY3QuUmVhY3RFbGVtZW50IHwgdW5kZWZpbmVkKVtdO1xuICBvbkRpc2NhcmRTdGVwPzogKGRpc2NhcmRlZEtleTogUmVhY3QuS2V5LCBzdGFydGVkQW5pbWF0aW9uQXQ6IG51bWJlcikgPT4gdm9pZDtcbiAgbG9ja1RyYW5zaXRpb25XaWR0aD86IGJvb2xlYW47XG4gIGxvY2tUcmFuc2l0aW9uSGVpZ2h0PzogYm9vbGVhbjtcbn0gJiBUcmFuc2l0aW9uVHlwZURlZmluaXRpb25zICZcbiAgT21pdDxcbiAgICBEZXRhaWxlZEhUTUxQcm9wczxSZWFjdC5IVE1MQXR0cmlidXRlczxIVE1MRGl2RWxlbWVudD4sIGFueT4sXG4gICAgXCJjbGFzc05hbWVcIiB8IFwiY2hpbGRyZW5cIlxuICA+O1xuXG5mdW5jdGlvbiBUcmFuc2l0aW9uQ2xhc3NlcyhcbiAgdHlwZTogTm9uTnVsbGFibGU8XG4gICAgRXhjbHVkZTxUcmFuc2l0aW9uUHJvcHNbXCJ0cmFuc2l0aW9uVHlwZVwiXSwgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLkNVU1RPTT5cbiAgPlxuKToge1xuICAvKipcbiAgICogQXBwbGllZCB0byB0aGUgZWxlbWVudCB0aGF0IHdhcyBub3QgdmlzaWJsZSBhbmQgaXMgbm93IGVudGVyaW5nIHRoZSBzY3JlZW5cbiAgICovXG4gIGJhY2t3YXJkOiB7XG4gICAgZWxlbWVudEVudGVyaW5nOiBzdHJpbmc7XG4gICAgZWxlbWVudEV4aXRpbmc6IHN0cmluZztcbiAgfTtcbiAgLyoqXG4gICAqIEFwcGxpZWQgdG8gdGhlIGVsZW1lbnQgdGhhdCB3YXMgdmlzaWJsZSBhbmQgbm93IGlzIGV4aXRpbmcgdGhlIHNjcmVlblxuICAgKi9cbiAgZm9yd2FyZDoge1xuICAgIGVsZW1lbnRFbnRlcmluZzogc3RyaW5nO1xuICAgIGVsZW1lbnRFeGl0aW5nOiBzdHJpbmc7XG4gIH07XG59IHtcbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuQ09JTl9GTElQOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYmFja3dhcmQ6IHtcbiAgICAgICAgICBlbGVtZW50RXhpdGluZzogU3R5bGVzLmZsaXBCb3R0b21VcE91dCxcbiAgICAgICAgICBlbGVtZW50RW50ZXJpbmc6IFN0eWxlcy5mbGlwQm90dG9tVXBJbixcbiAgICAgICAgfSxcbiAgICAgICAgZm9yd2FyZDoge1xuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBTdHlsZXMuZmxpcEJvdHRvbVVwT3V0LFxuICAgICAgICAgIGVsZW1lbnRFbnRlcmluZzogU3R5bGVzLmZsaXBCb3R0b21VcEluLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5GQURFOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYmFja3dhcmQ6IHtcbiAgICAgICAgICBlbGVtZW50RXhpdGluZzogU3R5bGVzLmZhZGVPdXRBYnNvbHV0ZSxcbiAgICAgICAgICBlbGVtZW50RW50ZXJpbmc6IFN0eWxlcy5mYWRlSW5EZWxheWVkLFxuICAgICAgICB9LFxuICAgICAgICBmb3J3YXJkOiB7XG4gICAgICAgICAgZWxlbWVudEV4aXRpbmc6IFN0eWxlcy5mYWRlT3V0QWJzb2x1dGUsXG4gICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuZmFkZUluRGVsYXllZCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuU0xJREU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYWNrd2FyZDoge1xuICAgICAgICAgIGVsZW1lbnRFbnRlcmluZzogU3R5bGVzLmVudHJhbmNlTGVmdCxcbiAgICAgICAgICBlbGVtZW50RXhpdGluZzogXCJcIixcbiAgICAgICAgfSxcbiAgICAgICAgZm9yd2FyZDoge1xuICAgICAgICAgIGVsZW1lbnRFbnRlcmluZzogXCJcIixcbiAgICAgICAgICBlbGVtZW50RXhpdGluZzogU3R5bGVzLmV4aXRMZWZ0LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5QT1BfRlJPTV9DTElDS19PUklHSU46XG4gICAgY2FzZSBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuUE9QX0ZST01fRUxFTUVOVF9JRDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhY2t3YXJkOiB7XG4gICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuZmFkZUluLFxuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBTdHlsZXMuc2NhbGVPdXQsXG4gICAgICAgIH0sXG4gICAgICAgIGZvcndhcmQ6IHtcbiAgICAgICAgICBlbGVtZW50RW50ZXJpbmc6IFN0eWxlcy5zY2FsZUluLFxuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBTdHlsZXMuZmFkZU91dCxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgY2FzZSBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuTUFTSzpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhY2t3YXJkOiB7XG4gICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuc3R1YkVudGVyaW5nLFxuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBTdHlsZXMuc3R1YixcbiAgICAgICAgfSxcbiAgICAgICAgZm9yd2FyZDoge1xuICAgICAgICAgIGVsZW1lbnRFbnRlcmluZzogU3R5bGVzLnN0dWJFbnRlcmluZyxcbiAgICAgICAgICBlbGVtZW50RXhpdGluZzogU3R5bGVzLnN0dWIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICB9XG59XG5cbnR5cGUgQ2hpbGRyZW5XcmFwcGVyID0gKChwcm9wczoge1xuICBjaGlsZHJlbjogVHJhbnNpdGlvblByb3BzW1wiY2hpbGRyZW5cIl1bbnVtYmVyXTtcbn0pID0+IFJlYWN0RWxlbWVudCkgJiB7XG4gIGNyZWF0ZWRBdDogbnVtYmVyO1xuICBhc3NvY2lhdGVkS2V5OiBLZXk7XG4gIHRvUmVtb3ZlS2V5cz86IEtleVtdO1xuICBleHRlcm5hbFByb3BzOiB7IFtrOiBzdHJpbmddOiBhbnkgfTtcbn07XG5cbmZ1bmN0aW9uIENoaWxkcmVuV3JhcHBlckZhY3RvcnkoXG4gIGZ1bmM6IChwOiB7IGNoaWxkcmVuOiBUcmFuc2l0aW9uUHJvcHNbXCJjaGlsZHJlblwiXSB9KSA9PiBSZWFjdEVsZW1lbnQsXG4gIGtleTogS2V5LFxuICBleHRlcm5hbFByb3BzQ29udGFpbmVyOiB7IFtrOiBzdHJpbmddOiBhbnkgfSxcbiAgLyoqIFRoaXMgaXMgdXNlZCB0byBwcmV2ZW50IG5ld2VyIFwiZHVwbGljYXRlZFwiIGtleXMgZnJvbSBiZWluZyByZW1vdmVkIGFmdGVyIHRoZSBuZXcgZWxlbWVudCBmaW5pc2hlZCBhbmltYXRpb24gKi9cbiAgdGltZXN0YW1wOiBudW1iZXIsXG4gIHRvUmVtb3ZlS2V5cz86IEtleVtdXG4pOiBDaGlsZHJlbldyYXBwZXIge1xuICAoZnVuYyBhcyBhbnkpLmNyZWF0ZWRBdCA9IHRpbWVzdGFtcDtcbiAgKGZ1bmMgYXMgYW55KS5hc3NvY2lhdGVkS2V5ID0ga2V5O1xuICAoZnVuYyBhcyBhbnkpLnRvUmVtb3ZlS2V5cyA9IHRvUmVtb3ZlS2V5cztcbiAgKGZ1bmMgYXMgYW55KS5leHRlcm5hbFByb3BzID0gZXh0ZXJuYWxQcm9wc0NvbnRhaW5lcjtcbiAgcmV0dXJuIGZ1bmMgYXMgdW5rbm93biBhcyBDaGlsZHJlbldyYXBwZXI7XG59XG5mdW5jdGlvbiBfVHJhbnNpdGlvbihcbiAge1xuICAgIHN0ZXAsXG4gICAgY29udGVudFN0eWxlLFxuICAgIGNvbnRlbnRDbGFzc05hbWUgPSBcIlwiLFxuICAgIGNoaWxkcmVuLFxuICAgIGNsYXNzTmFtZSxcbiAgICBvbkRpc2NhcmRTdGVwLFxuICAgIGxvY2tUcmFuc2l0aW9uV2lkdGggPSBmYWxzZSxcbiAgICBsb2NrVHJhbnNpdGlvbkhlaWdodCA9IGZhbHNlLFxuICAgIC4uLnByb3BzXG4gIH06IFRyYW5zaXRpb25Qcm9wcyxcbiAgX2NvbnRhaW5lclJlZjogRm9yd2FyZGVkUmVmPEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbikge1xuICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICAoX2NvbnRhaW5lclJlZiBhcyBNdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD4pIHx8IGNyZWF0ZVJlZigpLFxuICAgIFtfY29udGFpbmVyUmVmXVxuICApO1xuICBjb25zdCBwcmVUcmFuc2l0aW9uRGV0YWlscyA9IHVzZVJlZjxDU1NQcm9wZXJ0aWVzPih7XG4gICAgdHJhbnNmb3JtT3JpZ2luOiBcImluaXRpYWxcIixcbiAgfSk7XG4gIGNvbnN0IFtjaGlsZHJlbldyYXBwZXJzLCBzZXRDaGlsZHJlbldyYXBwZXJzXSA9IHVzZVN0YXRlPFxuICAgIChDaGlsZHJlbldyYXBwZXIgfCB1bmRlZmluZWQpW11cbiAgPigoKSA9PiB7XG4gICAgY29uc3QgZXh0ZXJuYWxQcm9wcyA9IHtcbiAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJ0cmFuc2l0aW9uLWNvbnRhaW5lclwiLFxuICAgICAga2V5OiBTdHJpbmcoY2hpbGRyZW5bc3RlcF0/LmtleSB8fCBzdGVwKSxcbiAgICAgIHN0eWxlOiBjb250ZW50U3R5bGUsXG4gICAgICBjbGFzc05hbWU6IGNvbnRlbnRDbGFzc05hbWUsXG4gICAgfTtcbiAgICBjb25zdCBmdW5jID0gQ2hpbGRyZW5XcmFwcGVyRmFjdG9yeShcbiAgICAgICh7IGNoaWxkcmVuIH0pID0+IDxkaXYgey4uLmV4dGVybmFsUHJvcHN9PntjaGlsZHJlbn08L2Rpdj4sXG4gICAgICBjaGlsZHJlbltzdGVwXSEua2V5IHx8IHN0ZXAsXG4gICAgICBleHRlcm5hbFByb3BzLFxuICAgICAgRGF0ZS5ub3coKSxcbiAgICAgIFtdXG4gICAgKTtcbiAgICByZXR1cm4gW2Z1bmNdO1xuICB9KTtcblxuICBjb25zdCBwcmV2U3RlcCA9IHVzZVJlZihzdGVwKTtcbiAgY29uc3QgcHJldkNoaWxkID0gdXNlUmVmKGNoaWxkcmVuW3N0ZXBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4gKCkgPT4ge1xuICAgIHByZXZDaGlsZC5jdXJyZW50ID0gY2hpbGRyZW5bc3RlcF07XG4gIH0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLnN0eWxlLm92ZXJmbG93ID0gXCJoaWRkZW5cIjtcbiAgICBjb25zdCB0cmFuc2l0aW9uQ2xhc3NlcyA9XG4gICAgICBwcm9wcy50cmFuc2l0aW9uVHlwZSA9PT0gVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLkNVU1RPTVxuICAgICAgICA/IHByb3BzLmNvbmZpZ1xuICAgICAgICA6IFRyYW5zaXRpb25DbGFzc2VzKFxuICAgICAgICAgICAgcHJvcHMudHJhbnNpdGlvblR5cGUgfHwgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLlNMSURFXG4gICAgICAgICAgKTtcblxuICAgIGlmIChcbiAgICAgIHByZXZDaGlsZC5jdXJyZW50ICE9PSBudWxsICYmXG4gICAgICBjaGlsZHJlbltzdGVwXT8ua2V5ID09PSBwcmV2Q2hpbGQuY3VycmVudD8ua2V5IC8vIEknbSByZW5kZXJpbmcgdGhlIHNhbWUgc2NyZWVuXG4gICAgKSB7XG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBwcmV2U3RlcC5jdXJyZW50ID0gc3RlcDtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3Qga2V5ID0gY2hpbGRyZW5bc3RlcF0/LmtleSB8fCBzdGVwO1xuXG4gICAgaWYgKHByZXZTdGVwLmN1cnJlbnQgIT09IHN0ZXAgJiYgbG9ja1RyYW5zaXRpb25XaWR0aClcbiAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50IS5zdHlsZS53aWR0aCA9IGAke1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudCEuY2xpZW50V2lkdGhcbiAgICAgIH1weGA7XG5cbiAgICBpZiAocHJldlN0ZXAuY3VycmVudCAhPT0gc3RlcCAmJiBsb2NrVHJhbnNpdGlvbkhlaWdodClcbiAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50IS5zdHlsZS5oZWlnaHQgPSBgJHtcbiAgICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLmNsaWVudEhlaWdodFxuICAgICAgfXB4YDtcbiAgICBjb25zdCB0cmFuc2l0aW9uTWFzayA9XG4gICAgICBwcm9wcy50cmFuc2l0aW9uVHlwZSA9PT0gVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLk1BU0tcbiAgICAgICAgPyBwcm9wcy5tYXNrRmFjdG9yeShjb250YWluZXJSZWYuY3VycmVudCEpXG4gICAgICAgIDogXCJcIjtcbiAgICBjb25zdCBpbnNlcnRlZEF0ID0gRGF0ZS5ub3coKTtcblxuICAgIC8qKiBUaGlzIHJ1bnMgb24gYmFja3dhcmRzICovXG4gICAgaWYgKHByZXZTdGVwLmN1cnJlbnQgPiBzdGVwKSB7XG4gICAgICBjb25zdCBzdGVwVG9SZW1vdmUgPSBwcmV2U3RlcC5jdXJyZW50O1xuICAgICAgY29uc3QgcHJldktleVRvUmVtb3ZlID0gcHJldkNoaWxkLmN1cnJlbnQ/LmtleSB8fCBzdGVwVG9SZW1vdmU7XG4gICAgICBzZXRDaGlsZHJlbldyYXBwZXJzKChzY3JlZW5zQmVmb3JlQ2hhbmdpbmdTdGVwKSA9PiB7XG4gICAgICAgIGNvbnN0IGVudGVyaW5nU2NyZWVuUmVmID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICAgICAgICBjb25zdCBbRmlyc3ROZXh0U2NyZWVuLCAuLi5yZXN0T2ZTY3JlZW5zXSA9XG4gICAgICAgICAgc2NyZWVuc0JlZm9yZUNoYW5naW5nU3RlcC5maWx0ZXIoXG4gICAgICAgICAgICAoYSkgPT4gYT8uYXNzb2NpYXRlZEtleSAhPT0gU3RyaW5nKGtleSlcbiAgICAgICAgICApO1xuXG4gICAgICAgIGlmIChGaXJzdE5leHRTY3JlZW4pIHtcbiAgICAgICAgICBPYmplY3QuYXNzaWduKEZpcnN0TmV4dFNjcmVlbi5leHRlcm5hbFByb3BzLCB7XG4gICAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwidHJhbnNpdGlvbi1jb250YWluZXJcIixcbiAgICAgICAgICAgIHN0eWxlOiB7IC4uLmNvbnRlbnRTdHlsZSwgV2Via2l0TWFza0ltYWdlOiB0cmFuc2l0aW9uTWFzayB9LFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBgJHt0cmFuc2l0aW9uQ2xhc3Nlcy5iYWNrd2FyZC5lbGVtZW50RXhpdGluZ31gLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGZ1bmN0aW9uIGFuaW1hdGlvbkVuZExpc3RlbmVyKGV2ZW50OiBBbmltYXRpb25FdmVudDxIVE1MRGl2RWxlbWVudD4pIHtcbiAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICE9PSBldmVudC5jdXJyZW50VGFyZ2V0KSByZXR1cm47XG5cbiAgICAgICAgICBjb25zdCBpc0FuaW1hdGlvbkZyb21FeHBlY3RlZFN0YXRlID1cbiAgICAgICAgICAgIGVudGVyaW5nU2NyZWVuUmVmLmN1cnJlbnQ/LmNsYXNzTGlzdC5jb250YWlucyhcbiAgICAgICAgICAgICAgdHJhbnNpdGlvbkNsYXNzZXMuYmFja3dhcmQuZWxlbWVudEVudGVyaW5nXG4gICAgICAgICAgICApO1xuICAgICAgICAgIGVudGVyaW5nU2NyZWVuUmVmLmN1cnJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgICAgICB0cmFuc2l0aW9uQ2xhc3Nlcy5iYWNrd2FyZC5lbGVtZW50RW50ZXJpbmdcbiAgICAgICAgICApO1xuICAgICAgICAgIHNldENoaWxkcmVuV3JhcHBlcnMoKHNjcmVlbnNBZnRlclRoZUN1cnJlbnRTdGVwRW50ZXJlZCkgPT4ge1xuICAgICAgICAgICAgaWYgKG9uRGlzY2FyZFN0ZXApIHtcbiAgICAgICAgICAgICAgaWYgKGlzQW5pbWF0aW9uRnJvbUV4cGVjdGVkU3RhdGUpXG4gICAgICAgICAgICAgICAgb25EaXNjYXJkU3RlcChwcmV2S2V5VG9SZW1vdmUsIGluc2VydGVkQXQpO1xuICAgICAgICAgICAgICBpZiAoRmlyc3ROZXh0U2NyZWVuICYmIEZpcnN0TmV4dFNjcmVlbi50b1JlbW92ZUtleXMpXG4gICAgICAgICAgICAgICAgRmlyc3ROZXh0U2NyZWVuLnRvUmVtb3ZlS2V5cy5mb3JFYWNoKG9uRGlzY2FyZFN0ZXApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHNjcmVlbnNBZnRlclRoZUN1cnJlbnRTdGVwRW50ZXJlZC5maWx0ZXIoKHMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3Qgc2hvdWxkS2VlcCA9XG4gICAgICAgICAgICAgICAgKHM/LmFzc29jaWF0ZWRLZXkgIT09IFN0cmluZyhwcmV2S2V5VG9SZW1vdmUpICYmXG4gICAgICAgICAgICAgICAgICAhRmlyc3ROZXh0U2NyZWVuPy50b1JlbW92ZUtleXM/LnNvbWUoXG4gICAgICAgICAgICAgICAgICAgIChrKSA9PiBTdHJpbmcoaykgPT09IFN0cmluZyhzPy5hc3NvY2lhdGVkS2V5KVxuICAgICAgICAgICAgICAgICAgKSkgfHxcbiAgICAgICAgICAgICAgICBzIS5jcmVhdGVkQXQhID4gaW5zZXJ0ZWRBdDtcbiAgICAgICAgICAgICAgcmV0dXJuIHNob3VsZEtlZXA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBldmVudC5jdXJyZW50VGFyZ2V0LnJlbW92ZUV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBcImFuaW1hdGlvbmVuZFwiLFxuICAgICAgICAgICAgYW5pbWF0aW9uRW5kTGlzdGVuZXIgYXMgYW55XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9wc0NvbnRhaW5lciA9IHtcbiAgICAgICAgICByZWY6IGVudGVyaW5nU2NyZWVuUmVmLFxuICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJ0cmFuc2l0aW9uLWNvbnRhaW5lclwiLFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICBjbGFzc05hbWU6IGAke3RyYW5zaXRpb25DbGFzc2VzLmJhY2t3YXJkLmVsZW1lbnRFbnRlcmluZ30gJHtjb250ZW50Q2xhc3NOYW1lfWAsXG4gICAgICAgICAgc3R5bGU6IHtcbiAgICAgICAgICAgIC4uLmNvbnRlbnRTdHlsZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9uQW5pbWF0aW9uRW5kOiBhbmltYXRpb25FbmRMaXN0ZW5lcixcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbmV3V3JhcHBlciA9IENoaWxkcmVuV3JhcHBlckZhY3RvcnkoXG4gICAgICAgICAgKHsgY2hpbGRyZW4gfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIDxkaXYgey4uLnByb3BzQ29udGFpbmVyfT57Y2hpbGRyZW59PC9kaXY+O1xuICAgICAgICAgIH0sXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHByb3BzQ29udGFpbmVyLFxuICAgICAgICAgIGluc2VydGVkQXQsXG4gICAgICAgICAgW3ByZXZLZXlUb1JlbW92ZSwgLi4uKEZpcnN0TmV4dFNjcmVlbj8udG9SZW1vdmVLZXlzIHx8IFtdKV1cbiAgICAgICAgKTtcbiAgICAgICAgaWYgKEZpcnN0TmV4dFNjcmVlbilcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmV3V3JhcHBlcixcbiAgICAgICAgICAgIEZpcnN0TmV4dFNjcmVlbiB8fFxuICAgICAgICAgICAgICBDaGlsZHJlbldyYXBwZXJGYWN0b3J5KFxuICAgICAgICAgICAgICAgICgpID0+IDxSZWFjdC5GcmFnbWVudCAvPixcbiAgICAgICAgICAgICAgICBcIlwiLFxuICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgIGluc2VydGVkQXRcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIC4uLnJlc3RPZlNjcmVlbnMsXG4gICAgICAgICAgXTtcbiAgICAgICAgZWxzZSByZXR1cm4gW25ld1dyYXBwZXJdO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChwcmV2U3RlcC5jdXJyZW50IDwgc3RlcCkge1xuICAgICAgY29uc3Qgc3RlcFRvRGVsZXRlID0gcHJldlN0ZXAuY3VycmVudDtcbiAgICAgIGNvbnN0IHByZXZLZXlUb1JlbW92ZSA9IFN0cmluZyhwcmV2Q2hpbGQuY3VycmVudD8ua2V5IHx8IHN0ZXBUb0RlbGV0ZSk7XG4gICAgICBzZXRDaGlsZHJlbldyYXBwZXJzKChzY3JlZW5zQmVmb3JlQ2hhbmdpbmdTdGVwKSA9PiB7XG4gICAgICAgIGNvbnN0IGxhc3RJbmRleCA9IHNjcmVlbnNCZWZvcmVDaGFuZ2luZ1N0ZXAubGVuZ3RoIC0gMTtcbiAgICAgICAgY29uc3QgbGFzdFdyYXBwZXIgPSBzY3JlZW5zQmVmb3JlQ2hhbmdpbmdTdGVwW2xhc3RJbmRleF07XG4gICAgICAgIGNvbnN0IG5leHRTY3JlZW5SZWYgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gICAgICAgIGlmIChsYXN0V3JhcHBlcikge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24obGFzdFdyYXBwZXIuZXh0ZXJuYWxQcm9wcywge1xuICAgICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcInRyYW5zaXRpb24tY29udGFpbmVyXCIsXG4gICAgICAgICAgICBzdHlsZTogeyAuLi5jb250ZW50U3R5bGUsIFdlYmtpdE1hc2tJbWFnZTogdHJhbnNpdGlvbk1hc2sgfSxcbiAgICAgICAgICAgIGNsYXNzTmFtZTogYCR7Y29udGVudENsYXNzTmFtZX0gJHt0cmFuc2l0aW9uQ2xhc3Nlcy5mb3J3YXJkLmVsZW1lbnRFeGl0aW5nfWAsXG4gICAgICAgICAgICBvbkFuaW1hdGlvbkVuZDogKGU6IEFuaW1hdGlvbkV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChlLnRhcmdldCAhPT0gZS5jdXJyZW50VGFyZ2V0KSByZXR1cm47XG4gICAgICAgICAgICAgIGlmICh0cmFuc2l0aW9uQ2xhc3Nlcy5mb3J3YXJkLmVsZW1lbnRFbnRlcmluZylcbiAgICAgICAgICAgICAgICBuZXh0U2NyZWVuUmVmLmN1cnJlbnQ/LmNsYXNzTGlzdC5yZW1vdmUoXG4gICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uQ2xhc3Nlcy5mb3J3YXJkLmVsZW1lbnRFbnRlcmluZ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIGlmIChvbkRpc2NhcmRTdGVwKSBvbkRpc2NhcmRTdGVwKHByZXZLZXlUb1JlbW92ZSwgaW5zZXJ0ZWRBdCk7XG4gICAgICAgICAgICAgIHNldENoaWxkcmVuV3JhcHBlcnMoKHNjcmVlbnNBZnRlclRoZUN1cnJlbnRTdGVwRW50ZXJlZCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5leHRTdGF0ZSA9IHNjcmVlbnNBZnRlclRoZUN1cnJlbnRTdGVwRW50ZXJlZC5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAocykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzaG91bGRNYW50YWluID1cbiAgICAgICAgICAgICAgICAgICAgICBzPy5hc3NvY2lhdGVkS2V5ICE9PSBTdHJpbmcocHJldktleVRvUmVtb3ZlKSB8fFxuICAgICAgICAgICAgICAgICAgICAgIHMuY3JlYXRlZEF0ID4gaW5zZXJ0ZWRBdDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNob3VsZE1hbnRhaW47XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV4dFN0YXRlO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcHJvcHNDb250YWluZXIgPSB7XG4gICAgICAgICAgcmVmOiBuZXh0U2NyZWVuUmVmLFxuICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJ0cmFuc2l0aW9uLWNvbnRhaW5lclwiLFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgLi4uY29udGVudFN0eWxlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xhc3NOYW1lOiBgJHtjb250ZW50Q2xhc3NOYW1lfSAke3RyYW5zaXRpb25DbGFzc2VzLmZvcndhcmQuZWxlbWVudEVudGVyaW5nfWAsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG5ld1dyYXBwZXIgPSBDaGlsZHJlbldyYXBwZXJGYWN0b3J5KFxuICAgICAgICAgICh7IGNoaWxkcmVuIH0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IHsuLi5wcm9wc0NvbnRhaW5lcn0+e2NoaWxkcmVufTwvZGl2PjtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGtleSxcbiAgICAgICAgICBwcm9wc0NvbnRhaW5lcixcbiAgICAgICAgICBpbnNlcnRlZEF0XG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgLi4uc2NyZWVuc0JlZm9yZUNoYW5naW5nU3RlcC5zbGljZSgwLCBsYXN0SW5kZXgpLFxuICAgICAgICAgIGxhc3RXcmFwcGVyIHx8XG4gICAgICAgICAgICBDaGlsZHJlbldyYXBwZXJGYWN0b3J5KFxuICAgICAgICAgICAgICAoKSA9PiA8UmVhY3QuRnJhZ21lbnQgLz4sXG4gICAgICAgICAgICAgIFwiZmFsbGJhY2tcIixcbiAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgIGluc2VydGVkQXRcbiAgICAgICAgICAgICksXG4gICAgICAgICAgbmV3V3JhcHBlcixcbiAgICAgICAgXTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgcHJldlN0ZXAuY3VycmVudCA9IHN0ZXA7XG4gICAgfTtcbiAgfSwgW3N0ZXBdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChjaGlsZHJlbldyYXBwZXJzLmxlbmd0aCA9PT0gMSAmJiBsb2NrVHJhbnNpdGlvbldpZHRoKVxuICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLnN0eWxlLndpZHRoID0gXCJcIjtcbiAgICBpZiAoY2hpbGRyZW5XcmFwcGVycy5sZW5ndGggPT09IDEgJiYgbG9ja1RyYW5zaXRpb25IZWlnaHQpXG4gICAgICBjb250YWluZXJSZWYuY3VycmVudCEuc3R5bGUuaGVpZ2h0ID0gXCJcIjtcbiAgfSwgW2NoaWxkcmVuV3JhcHBlcnMubGVuZ3RoICE9PSAxXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoXG4gICAgICBwcm9wcy50cmFuc2l0aW9uVHlwZSA9PT0gVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLlBPUF9GUk9NX0VMRU1FTlRfSUQgJiZcbiAgICAgIFwiZWxlbWVudElkXCIgaW4gcHJvcHNcbiAgICApIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgICBgIyR7cHJvcHMuZWxlbWVudElkfWBcbiAgICAgICkgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHsgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9ID0gY29udGFpbmVyUmVmLmN1cnJlbnQhO1xuXG4gICAgICAgIGNvbnN0IG9mZnNldFggPVxuICAgICAgICAgIGVsZW1lbnQuY2xpZW50TGVmdCArIGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQuY2xpZW50V2lkdGggLyAyO1xuICAgICAgICBjb25zdCBvZmZzZXRZID1cbiAgICAgICAgICBlbGVtZW50LmNsaWVudFRvcCArIGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5jbGllbnRIZWlnaHQgLyAyO1xuICAgICAgICBjb25zdCBwZXJjZW50WCA9IChvZmZzZXRYICogMTAwKSAvIGNsaWVudFdpZHRoO1xuICAgICAgICBjb25zdCBwZXJjZW50WSA9IChvZmZzZXRZICogMTAwKSAvIGNsaWVudEhlaWdodDtcbiAgICAgICAgcHJlVHJhbnNpdGlvbkRldGFpbHMuY3VycmVudC50cmFuc2Zvcm1PcmlnaW4gPSBgJHtwZXJjZW50WH0lICR7cGVyY2VudFl9JWA7XG5cbiAgICAgICAgT2JqZWN0LmFzc2lnbihjb250YWluZXJSZWYuY3VycmVudCEuc3R5bGUsIHtcbiAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW46IGAke3BlcmNlbnRYfSUgJHtwZXJjZW50WX0lYCxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5hc3NpZ24oY29udGFpbmVyUmVmLmN1cnJlbnQhLnN0eWxlLCBwcmVUcmFuc2l0aW9uRGV0YWlscy5jdXJyZW50KTtcbiAgICB9XG5cbiAgICBpZiAoY2hpbGRyZW5XcmFwcGVycy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50IS5zdHlsZS5vdmVyZmxvdyA9IFwiXCI7XG4gICAgfVxuICB9LCBbY2hpbGRyZW5XcmFwcGVycy5sZW5ndGhdKTtcblxuICBjb25zdCBwcm9wc1RvU3ByZWFkID0geyAuLi5wcm9wcyB9IGFzIGFueTtcbiAgZGVsZXRlIHByb3BzVG9TcHJlYWQudHJhbnNpdGlvblR5cGU7XG4gIGRlbGV0ZSBwcm9wc1RvU3ByZWFkLmNvbmZpZztcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8c2VjdGlvblxuICAgICAgICB7Li4ucHJvcHNUb1NwcmVhZH1cbiAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBjdXJyZW50VGFyZ2V0OiB7IG9mZnNldFRvcCwgb2Zmc2V0TGVmdCwgY2xpZW50V2lkdGgsIGNsaWVudEhlaWdodCB9LFxuICAgICAgICAgICAgY2xpZW50WCxcbiAgICAgICAgICAgIGNsaWVudFksXG4gICAgICAgICAgfSA9IGU7XG4gICAgICAgICAgY29uc3Qgb2Zmc2V0WCA9IGNsaWVudFggLSBvZmZzZXRMZWZ0O1xuICAgICAgICAgIGNvbnN0IG9mZnNldFkgPSBjbGllbnRZIC0gb2Zmc2V0VG9wO1xuICAgICAgICAgIGNvbnN0IHBlcmNlbnRYID0gKG9mZnNldFggKiAxMDApIC8gY2xpZW50V2lkdGg7XG4gICAgICAgICAgY29uc3QgcGVyY2VudFkgPSAob2Zmc2V0WSAqIDEwMCkgLyBjbGllbnRIZWlnaHQ7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBwcm9wcy50cmFuc2l0aW9uVHlwZSA9PT1cbiAgICAgICAgICAgICAgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLlBPUF9GUk9NX0VMRU1FTlRfSUQgfHxcbiAgICAgICAgICAgIHByb3BzLnRyYW5zaXRpb25UeXBlID09PVxuICAgICAgICAgICAgICBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuUE9QX0ZST01fQ0xJQ0tfT1JJR0lOXG4gICAgICAgICAgKVxuICAgICAgICAgICAgcHJlVHJhbnNpdGlvbkRldGFpbHMuY3VycmVudC50cmFuc2Zvcm1PcmlnaW4gPSBgJHtwZXJjZW50WH0lICR7cGVyY2VudFl9JWA7XG4gICAgICAgICAgaWYgKHByb3BzLm9uQ2xpY2spIHByb3BzLm9uQ2xpY2soZSBhcyBhbnkpO1xuICAgICAgICB9fVxuICAgICAgICBkYXRhLXRlc3RpZD1cInRyYW5zaXRpb24tY29udHJvbGxlclwiXG4gICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICBjbGFzc05hbWU9e2Ake1N0eWxlcy5zZWN0aW9ufSAke2NsYXNzTmFtZX1gfVxuICAgICAgPlxuICAgICAgICB7KGNoaWxkcmVuV3JhcHBlcnMgYXMgQ2hpbGRyZW5XcmFwcGVyW10pLm1hcCgoV3JhcHBlcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGNoaWxkVG9SZW5kZXIgPSBjaGlsZHJlbi5maW5kKFxuICAgICAgICAgICAgKGEsIGkpID0+IChhPy5rZXkgfHwgaSkgPT09IFdyYXBwZXI/LmFzc29jaWF0ZWRLZXlcbiAgICAgICAgICApO1xuICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8V3JhcHBlciBrZXk9e2Ake1dyYXBwZXIhLmFzc29jaWF0ZWRLZXl9ICR7V3JhcHBlci5jcmVhdGVkQXR9YH0+XG4gICAgICAgICAgICAgIDw+e2NoaWxkVG9SZW5kZXJ9PC8+XG4gICAgICAgICAgICA8L1dyYXBwZXI+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L3NlY3Rpb24+XG4gICAgPC8+XG4gICk7XG59XG5cbmV4cG9ydCBlbnVtIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcyB7XG4gIFNMSURFLFxuICBQT1BfRlJPTV9DTElDS19PUklHSU4sXG4gIFBPUF9GUk9NX0VMRU1FTlRfSUQsXG4gIEZBREUsXG4gIENPSU5fRkxJUCxcbiAgTUFTSyxcbiAgQ1VTVE9NLFxufVxuXG4vKipcbiAqIEhhbmRsZXMgdGhlIHRyYW5zaXRpb24gYmV0d2VlbiBtdWx0aXBsZSBjaGlsZHJlbiBhbmQgcmVjeWNsaW5nIG9mIGVsZW1lbnRzXG4gKiovXG5jb25zdCBUcmFuc2l0aW9uID0gZm9yd2FyZFJlZihfVHJhbnNpdGlvbik7XG5leHBvcnQgZGVmYXVsdCBUcmFuc2l0aW9uO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFlQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQThDLFNBQUFFLHVCQUFBQyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQUcseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVIsd0JBQUFJLEdBQUEsRUFBQUksV0FBQSxTQUFBQSxXQUFBLElBQUFKLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFRLEtBQUEsR0FBQUwsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBVCxHQUFBLFlBQUFRLEtBQUEsQ0FBQUUsR0FBQSxDQUFBVixHQUFBLFNBQUFXLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBaEIsR0FBQSxRQUFBZ0IsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBbkIsR0FBQSxFQUFBZ0IsR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWYsR0FBQSxFQUFBZ0IsR0FBQSxjQUFBSSxJQUFBLEtBQUFBLElBQUEsQ0FBQVYsR0FBQSxJQUFBVSxJQUFBLENBQUFDLEdBQUEsS0FBQVIsTUFBQSxDQUFBQyxjQUFBLENBQUFILE1BQUEsRUFBQUssR0FBQSxFQUFBSSxJQUFBLFlBQUFULE1BQUEsQ0FBQUssR0FBQSxJQUFBaEIsR0FBQSxDQUFBZ0IsR0FBQSxTQUFBTCxNQUFBLENBQUFULE9BQUEsR0FBQUYsR0FBQSxNQUFBUSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBckIsR0FBQSxFQUFBVyxNQUFBLFlBQUFBLE1BQUE7QUFBQSxTQUFBVyxTQUFBLElBQUFBLFFBQUEsR0FBQVQsTUFBQSxDQUFBVSxNQUFBLEdBQUFWLE1BQUEsQ0FBQVUsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLE1BQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBRixDQUFBLFVBQUFHLE1BQUEsR0FBQUYsU0FBQSxDQUFBRCxDQUFBLFlBQUFWLEdBQUEsSUFBQWEsTUFBQSxRQUFBaEIsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBVSxNQUFBLEVBQUFiLEdBQUEsS0FBQVMsTUFBQSxDQUFBVCxHQUFBLElBQUFhLE1BQUEsQ0FBQWIsR0FBQSxnQkFBQVMsTUFBQSxZQUFBSCxRQUFBLENBQUFRLEtBQUEsT0FBQUgsU0FBQTtBQXlDOUMsU0FBU0ksaUJBQWlCQSxDQUN4QkMsSUFFQyxFQWdCRDtFQUNBLFFBQVFBLElBQUk7SUFDVixLQUFLQyx3QkFBd0IsQ0FBQ0MsU0FBUztNQUNyQyxPQUFPO1FBQ0xDLFFBQVEsRUFBRTtVQUNSQyxjQUFjLEVBQUVDLHlCQUFNLENBQUNDLGVBQWU7VUFDdENDLGVBQWUsRUFBRUYseUJBQU0sQ0FBQ0c7UUFDMUIsQ0FBQztRQUNEQyxPQUFPLEVBQUU7VUFDUEwsY0FBYyxFQUFFQyx5QkFBTSxDQUFDQyxlQUFlO1VBQ3RDQyxlQUFlLEVBQUVGLHlCQUFNLENBQUNHO1FBQzFCO01BQ0YsQ0FBQztJQUNILEtBQUtQLHdCQUF3QixDQUFDUyxJQUFJO01BQ2hDLE9BQU87UUFDTFAsUUFBUSxFQUFFO1VBQ1JDLGNBQWMsRUFBRUMseUJBQU0sQ0FBQ00sZUFBZTtVQUN0Q0osZUFBZSxFQUFFRix5QkFBTSxDQUFDTztRQUMxQixDQUFDO1FBQ0RILE9BQU8sRUFBRTtVQUNQTCxjQUFjLEVBQUVDLHlCQUFNLENBQUNNLGVBQWU7VUFDdENKLGVBQWUsRUFBRUYseUJBQU0sQ0FBQ087UUFDMUI7TUFDRixDQUFDO0lBQ0gsS0FBS1gsd0JBQXdCLENBQUNZLEtBQUs7TUFDakMsT0FBTztRQUNMVixRQUFRLEVBQUU7VUFDUkksZUFBZSxFQUFFRix5QkFBTSxDQUFDUyxZQUFZO1VBQ3BDVixjQUFjLEVBQUU7UUFDbEIsQ0FBQztRQUNESyxPQUFPLEVBQUU7VUFDUEYsZUFBZSxFQUFFLEVBQUU7VUFDbkJILGNBQWMsRUFBRUMseUJBQU0sQ0FBQ1U7UUFDekI7TUFDRixDQUFDO0lBQ0gsS0FBS2Qsd0JBQXdCLENBQUNlLHFCQUFxQjtJQUNuRCxLQUFLZix3QkFBd0IsQ0FBQ2dCLG1CQUFtQjtNQUMvQyxPQUFPO1FBQ0xkLFFBQVEsRUFBRTtVQUNSSSxlQUFlLEVBQUVGLHlCQUFNLENBQUNhLE1BQU07VUFDOUJkLGNBQWMsRUFBRUMseUJBQU0sQ0FBQ2M7UUFDekIsQ0FBQztRQUNEVixPQUFPLEVBQUU7VUFDUEYsZUFBZSxFQUFFRix5QkFBTSxDQUFDZSxPQUFPO1VBQy9CaEIsY0FBYyxFQUFFQyx5QkFBTSxDQUFDZ0I7UUFDekI7TUFDRixDQUFDO0lBQ0gsS0FBS3BCLHdCQUF3QixDQUFDcUIsSUFBSTtNQUNoQyxPQUFPO1FBQ0xuQixRQUFRLEVBQUU7VUFDUkksZUFBZSxFQUFFRix5QkFBTSxDQUFDa0IsWUFBWTtVQUNwQ25CLGNBQWMsRUFBRUMseUJBQU0sQ0FBQ21CO1FBQ3pCLENBQUM7UUFDRGYsT0FBTyxFQUFFO1VBQ1BGLGVBQWUsRUFBRUYseUJBQU0sQ0FBQ2tCLFlBQVk7VUFDcENuQixjQUFjLEVBQUVDLHlCQUFNLENBQUNtQjtRQUN6QjtNQUNGLENBQUM7RUFDTDtBQUNGO0FBV0EsU0FBU0Msc0JBQXNCQSxDQUM3QkMsSUFBb0UsRUFDcEUxQyxHQUFRLEVBQ1IyQyxzQkFBNEMsRUFDNUM7QUFDQUMsU0FBaUIsRUFDakJDLFlBQW9CLEVBQ0g7RUFDaEJILElBQUksQ0FBU0ksU0FBUyxHQUFHRixTQUFTO0VBQ2xDRixJQUFJLENBQVNLLGFBQWEsR0FBRy9DLEdBQUc7RUFDaEMwQyxJQUFJLENBQVNHLFlBQVksR0FBR0EsWUFBWTtFQUN4Q0gsSUFBSSxDQUFTTSxhQUFhLEdBQUdMLHNCQUFzQjtFQUNwRCxPQUFPRCxJQUFJO0FBQ2I7QUFDQSxTQUFTTyxXQUFXQSxDQUFBQyxJQUFBLEVBWWxCQyxhQUFrRCxFQUNsRDtFQUFBLElBWkE7SUFDRUMsSUFBSTtJQUNKQyxZQUFZO0lBQ1pDLGdCQUFnQixHQUFHLEVBQUU7SUFDckJDLFFBQVE7SUFDUkMsU0FBUztJQUNUQyxhQUFhO0lBQ2JDLG1CQUFtQixHQUFHLEtBQUs7SUFDM0JDLG9CQUFvQixHQUFHLEtBQUs7SUFDNUIsR0FBR0M7RUFDWSxDQUFDLEdBQUFWLElBQUE7RUFHbEIsTUFBTVcsWUFBWSxHQUFHLElBQUFDLGNBQU8sRUFDMUIsTUFDR1gsYUFBYSxpQkFBZ0QsSUFBQVksZ0JBQVMsRUFBQyxDQUFDLEVBQzNFLENBQUNaLGFBQWEsQ0FDaEIsQ0FBQztFQUNELE1BQU1hLG9CQUFvQixHQUFHLElBQUFDLGFBQU0sRUFBZ0I7SUFDakRDLGVBQWUsRUFBRTtFQUNuQixDQUFDLENBQUM7RUFDRixNQUFNLENBQUNDLGdCQUFnQixFQUFFQyxtQkFBbUIsQ0FBQyxHQUFHLElBQUFDLGVBQVEsRUFFdEQsTUFBTTtJQUFBLElBQUFDLGNBQUE7SUFDTixNQUFNdEIsYUFBYSxHQUFHO01BRXBCaEQsR0FBRyxFQUFFdUUsTUFBTSxDQUFDLEVBQUFELGNBQUEsR0FBQWYsUUFBUSxDQUFDSCxJQUFJLENBQUMsY0FBQWtCLGNBQUEsdUJBQWRBLGNBQUEsQ0FBZ0J0RSxHQUFHLEtBQUlvRCxJQUFJLENBQUM7TUFDeENvQixLQUFLLEVBQUVuQixZQUFZO01BQ25CRyxTQUFTLEVBQUVGO0lBQ2IsQ0FBQztJQUNELE1BQU1aLElBQUksR0FBR0Qsc0JBQXNCLENBQ2pDZ0MsS0FBQTtNQUFBLElBQUM7UUFBRWxCO01BQVMsQ0FBQyxHQUFBa0IsS0FBQTtNQUFBLG9CQUFLOUYsTUFBQSxDQUFBTyxPQUFBLENBQUF3RixhQUFBLFFBQVMxQixhQUFhLEVBQUdPLFFBQWMsQ0FBQztJQUFBLEdBQzFEQSxRQUFRLENBQUNILElBQUksQ0FBQyxDQUFFcEQsR0FBRyxJQUFJb0QsSUFBSSxFQUMzQkosYUFBYSxFQUNiMkIsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQyxFQUNWLEVBQ0YsQ0FBQztJQUNELE9BQU8sQ0FBQ2xDLElBQUksQ0FBQztFQUNmLENBQUMsQ0FBQztFQUVGLE1BQU1tQyxRQUFRLEdBQUcsSUFBQVosYUFBTSxFQUFDYixJQUFJLENBQUM7RUFDN0IsTUFBTTBCLFNBQVMsR0FBRyxJQUFBYixhQUFNLEVBQUNWLFFBQVEsQ0FBQ0gsSUFBSSxDQUFDLENBQUM7RUFFeEMsSUFBQTJCLGdCQUFTLEVBQUMsTUFBTSxNQUFNO0lBQ3BCRCxTQUFTLENBQUNFLE9BQU8sR0FBR3pCLFFBQVEsQ0FBQ0gsSUFBSSxDQUFDO0VBQ3BDLENBQUMsQ0FBQztFQUVGLElBQUEyQixnQkFBUyxFQUFDLE1BQU07SUFBQSxJQUFBRSxlQUFBLEVBQUFDLGtCQUFBLEVBQUFDLGVBQUE7SUFDZHRCLFlBQVksQ0FBQ21CLE9BQU8sQ0FBRVIsS0FBSyxDQUFDWSxRQUFRLEdBQUcsUUFBUTtJQUMvQyxNQUFNQyxpQkFBaUIsR0FDckJ6QixLQUFLLENBQUMwQixjQUFjLEtBQUtyRSx3QkFBd0IsQ0FBQ3NFLE1BQU0sR0FDcEQzQixLQUFLLENBQUM0QixNQUFNLEdBQ1p6RSxpQkFBaUIsQ0FDZjZDLEtBQUssQ0FBQzBCLGNBQWMsSUFBSXJFLHdCQUF3QixDQUFDWSxLQUNuRCxDQUFDO0lBRVAsSUFDRWlELFNBQVMsQ0FBQ0UsT0FBTyxLQUFLLElBQUksSUFDMUIsRUFBQUMsZUFBQSxHQUFBMUIsUUFBUSxDQUFDSCxJQUFJLENBQUMsY0FBQTZCLGVBQUEsdUJBQWRBLGVBQUEsQ0FBZ0JqRixHQUFHLFFBQUFrRixrQkFBQSxHQUFLSixTQUFTLENBQUNFLE9BQU8sY0FBQUUsa0JBQUEsdUJBQWpCQSxrQkFBQSxDQUFtQmxGLEdBQUcsRUFBQztJQUFBLEVBQy9DO01BQ0EsT0FBTyxNQUFNO1FBQ1g2RSxRQUFRLENBQUNHLE9BQU8sR0FBRzVCLElBQUk7TUFDekIsQ0FBQztJQUNIO0lBRUEsTUFBTXBELEdBQUcsR0FBRyxFQUFBbUYsZUFBQSxHQUFBNUIsUUFBUSxDQUFDSCxJQUFJLENBQUMsY0FBQStCLGVBQUEsdUJBQWRBLGVBQUEsQ0FBZ0JuRixHQUFHLEtBQUlvRCxJQUFJO0lBRXZDLElBQUl5QixRQUFRLENBQUNHLE9BQU8sS0FBSzVCLElBQUksSUFBSU0sbUJBQW1CLEVBQ2xERyxZQUFZLENBQUNtQixPQUFPLENBQUVSLEtBQUssQ0FBQ2lCLEtBQUssR0FBSSxHQUNuQzVCLFlBQVksQ0FBQ21CLE9BQU8sQ0FBRVUsV0FDdkIsSUFBRztJQUVOLElBQUliLFFBQVEsQ0FBQ0csT0FBTyxLQUFLNUIsSUFBSSxJQUFJTyxvQkFBb0IsRUFDbkRFLFlBQVksQ0FBQ21CLE9BQU8sQ0FBRVIsS0FBSyxDQUFDbUIsTUFBTSxHQUFJLEdBQ3BDOUIsWUFBWSxDQUFDbUIsT0FBTyxDQUFFWSxZQUN2QixJQUFHO0lBQ04sTUFBTUMsY0FBYyxHQUNsQmpDLEtBQUssQ0FBQzBCLGNBQWMsS0FBS3JFLHdCQUF3QixDQUFDcUIsSUFBSSxHQUNsRHNCLEtBQUssQ0FBQ2tDLFdBQVcsQ0FBQ2pDLFlBQVksQ0FBQ21CLE9BQVEsQ0FBQyxHQUN4QyxFQUFFO0lBQ1IsTUFBTWUsVUFBVSxHQUFHcEIsSUFBSSxDQUFDQyxHQUFHLENBQUMsQ0FBQzs7SUFFN0I7SUFDQSxJQUFJQyxRQUFRLENBQUNHLE9BQU8sR0FBRzVCLElBQUksRUFBRTtNQUFBLElBQUE0QyxtQkFBQTtNQUMzQixNQUFNQyxZQUFZLEdBQUdwQixRQUFRLENBQUNHLE9BQU87TUFDckMsTUFBTWtCLGVBQWUsR0FBRyxFQUFBRixtQkFBQSxHQUFBbEIsU0FBUyxDQUFDRSxPQUFPLGNBQUFnQixtQkFBQSx1QkFBakJBLG1CQUFBLENBQW1CaEcsR0FBRyxLQUFJaUcsWUFBWTtNQUM5RDdCLG1CQUFtQixDQUFFK0IseUJBQXlCLElBQUs7UUFDakQsTUFBTUMsaUJBQWlCLGdCQUFHLElBQUFyQyxnQkFBUyxFQUFpQixDQUFDO1FBQ3JELE1BQU0sQ0FBQ3NDLGVBQWUsRUFBRSxHQUFHQyxhQUFhLENBQUMsR0FDdkNILHlCQUF5QixDQUFDSSxNQUFNLENBQzdCQyxDQUFDLElBQUssQ0FBQUEsQ0FBQyxhQUFEQSxDQUFDLHVCQUFEQSxDQUFDLENBQUV6RCxhQUFhLE1BQUt3QixNQUFNLENBQUN2RSxHQUFHLENBQ3hDLENBQUM7UUFFSCxJQUFJcUcsZUFBZSxFQUFFO1VBQ25CeEcsTUFBTSxDQUFDVSxNQUFNLENBQUM4RixlQUFlLENBQUNyRCxhQUFhLEVBQUU7WUFFM0N3QixLQUFLLEVBQUU7Y0FBRSxHQUFHbkIsWUFBWTtjQUFFb0QsZUFBZSxFQUFFWjtZQUFlLENBQUM7WUFDM0RyQyxTQUFTLEVBQUcsR0FBRTZCLGlCQUFpQixDQUFDbEUsUUFBUSxDQUFDQyxjQUFlO1VBQzFELENBQUMsQ0FBQztRQUNKO1FBQ0EsU0FBU3NGLG9CQUFvQkEsQ0FBQ0MsS0FBcUMsRUFBRTtVQUFBLElBQUFDLHFCQUFBLEVBQUFDLHNCQUFBO1VBQ25FLElBQUlGLEtBQUssQ0FBQ2xHLE1BQU0sS0FBS2tHLEtBQUssQ0FBQ0csYUFBYSxFQUFFO1VBRTFDLE1BQU1DLDRCQUE0QixJQUFBSCxxQkFBQSxHQUNoQ1IsaUJBQWlCLENBQUNwQixPQUFPLGNBQUE0QixxQkFBQSx1QkFBekJBLHFCQUFBLENBQTJCSSxTQUFTLENBQUNDLFFBQVEsQ0FDM0M1QixpQkFBaUIsQ0FBQ2xFLFFBQVEsQ0FBQ0ksZUFDN0IsQ0FBQztVQUNILENBQUFzRixzQkFBQSxHQUFBVCxpQkFBaUIsQ0FBQ3BCLE9BQU8sY0FBQTZCLHNCQUFBLHVCQUF6QkEsc0JBQUEsQ0FBMkJHLFNBQVMsQ0FBQ0UsTUFBTSxDQUN6QzdCLGlCQUFpQixDQUFDbEUsUUFBUSxDQUFDSSxlQUM3QixDQUFDO1VBQ0Q2QyxtQkFBbUIsQ0FBRStDLGlDQUFpQyxJQUFLO1lBQ3pELElBQUkxRCxhQUFhLEVBQUU7Y0FDakIsSUFBSXNELDRCQUE0QixFQUM5QnRELGFBQWEsQ0FBQ3lDLGVBQWUsRUFBRUgsVUFBVSxDQUFDO2NBQzVDLElBQUlNLGVBQWUsSUFBSUEsZUFBZSxDQUFDeEQsWUFBWSxFQUNqRHdELGVBQWUsQ0FBQ3hELFlBQVksQ0FBQ3VFLE9BQU8sQ0FBQzNELGFBQWEsQ0FBQztZQUN2RDtZQUNBLE9BQU8wRCxpQ0FBaUMsQ0FBQ1osTUFBTSxDQUFFYyxDQUFDLElBQUs7Y0FBQSxJQUFBQyxxQkFBQTtjQUNyRCxNQUFNQyxVQUFVLEdBQ2IsQ0FBQUYsQ0FBQyxhQUFEQSxDQUFDLHVCQUFEQSxDQUFDLENBQUV0RSxhQUFhLE1BQUt3QixNQUFNLENBQUMyQixlQUFlLENBQUMsSUFDM0MsRUFBQ0csZUFBZSxhQUFmQSxlQUFlLGdCQUFBaUIscUJBQUEsR0FBZmpCLGVBQWUsQ0FBRXhELFlBQVksY0FBQXlFLHFCQUFBLGVBQTdCQSxxQkFBQSxDQUErQkUsSUFBSSxDQUNqQ0MsQ0FBQyxJQUFLbEQsTUFBTSxDQUFDa0QsQ0FBQyxDQUFDLEtBQUtsRCxNQUFNLENBQUM4QyxDQUFDLGFBQURBLENBQUMsdUJBQURBLENBQUMsQ0FBRXRFLGFBQWEsQ0FDOUMsQ0FBQyxLQUNIc0UsQ0FBQyxDQUFFdkUsU0FBUyxHQUFJaUQsVUFBVTtjQUM1QixPQUFPd0IsVUFBVTtZQUNuQixDQUFDLENBQUM7VUFDSixDQUFDLENBQUM7VUFDRlosS0FBSyxDQUFDRyxhQUFhLENBQUNZLG1CQUFtQixDQUNyQyxjQUFjLEVBQ2RoQixvQkFDRixDQUFDO1FBQ0g7UUFDQSxNQUFNaUIsY0FBYyxHQUFHO1VBQ3JCQyxHQUFHLEVBQUV4QixpQkFBaUI7VUFFdEJwRyxHQUFHO1VBQ0h3RCxTQUFTLEVBQUcsR0FBRTZCLGlCQUFpQixDQUFDbEUsUUFBUSxDQUFDSSxlQUFnQixJQUFHK0IsZ0JBQWlCLEVBQUM7VUFDOUVrQixLQUFLLEVBQUU7WUFDTCxHQUFHbkI7VUFDTCxDQUFDO1VBQ0R3RSxjQUFjLEVBQUVuQjtRQUNsQixDQUFDO1FBQ0QsTUFBTW9CLFVBQVUsR0FBR3JGLHNCQUFzQixDQUN2Q3NGLEtBQUEsSUFBa0I7VUFBQSxJQUFqQjtZQUFFeEU7VUFBUyxDQUFDLEdBQUF3RSxLQUFBO1VBQ1gsb0JBQU9wSixNQUFBLENBQUFPLE9BQUEsQ0FBQXdGLGFBQUEsUUFBU2lELGNBQWMsRUFBR3BFLFFBQWMsQ0FBQztRQUNsRCxDQUFDLEVBQ0R2RCxHQUFHLEVBQ0gySCxjQUFjLEVBQ2Q1QixVQUFVLEVBQ1YsQ0FBQ0csZUFBZSxFQUFFLElBQUksQ0FBQUcsZUFBZSxhQUFmQSxlQUFlLHVCQUFmQSxlQUFlLENBQUV4RCxZQUFZLEtBQUksRUFBRSxDQUFDLENBQzVELENBQUM7UUFDRCxJQUFJd0QsZUFBZSxFQUNqQixPQUFPLENBQ0x5QixVQUFVLEVBQ1Z6QixlQUFlLElBQ2I1RCxzQkFBc0IsQ0FDcEIsbUJBQU05RCxNQUFBLENBQUFPLE9BQUEsQ0FBQXdGLGFBQUEsQ0FBQy9GLE1BQUEsQ0FBQU8sT0FBSyxDQUFDOEksUUFBUSxNQUFFLENBQUMsRUFDeEIsRUFBRSxFQUNGLENBQUMsQ0FBQyxFQUNGakMsVUFDRixDQUFDLEVBQ0gsR0FBR08sYUFBYSxDQUNqQixDQUFDLEtBQ0MsT0FBTyxDQUFDd0IsVUFBVSxDQUFDO01BQzFCLENBQUMsQ0FBQztJQUNKLENBQUMsTUFBTSxJQUFJakQsUUFBUSxDQUFDRyxPQUFPLEdBQUc1QixJQUFJLEVBQUU7TUFBQSxJQUFBNkUsbUJBQUE7TUFDbEMsTUFBTUMsWUFBWSxHQUFHckQsUUFBUSxDQUFDRyxPQUFPO01BQ3JDLE1BQU1rQixlQUFlLEdBQUczQixNQUFNLENBQUMsRUFBQTBELG1CQUFBLEdBQUFuRCxTQUFTLENBQUNFLE9BQU8sY0FBQWlELG1CQUFBLHVCQUFqQkEsbUJBQUEsQ0FBbUJqSSxHQUFHLEtBQUlrSSxZQUFZLENBQUM7TUFDdEU5RCxtQkFBbUIsQ0FBRStCLHlCQUF5QixJQUFLO1FBQ2pELE1BQU1nQyxTQUFTLEdBQUdoQyx5QkFBeUIsQ0FBQ3ZGLE1BQU0sR0FBRyxDQUFDO1FBQ3RELE1BQU13SCxXQUFXLEdBQUdqQyx5QkFBeUIsQ0FBQ2dDLFNBQVMsQ0FBQztRQUN4RCxNQUFNRSxhQUFhLGdCQUFHLElBQUF0RSxnQkFBUyxFQUFpQixDQUFDO1FBQ2pELElBQUlxRSxXQUFXLEVBQUU7VUFDZnZJLE1BQU0sQ0FBQ1UsTUFBTSxDQUFDNkgsV0FBVyxDQUFDcEYsYUFBYSxFQUFFO1lBRXZDd0IsS0FBSyxFQUFFO2NBQUUsR0FBR25CLFlBQVk7Y0FBRW9ELGVBQWUsRUFBRVo7WUFBZSxDQUFDO1lBQzNEckMsU0FBUyxFQUFHLEdBQUVGLGdCQUFpQixJQUFHK0IsaUJBQWlCLENBQUM1RCxPQUFPLENBQUNMLGNBQWUsRUFBQztZQUM1RXlHLGNBQWMsRUFBR1MsQ0FBaUIsSUFBSztjQUFBLElBQUFDLHFCQUFBO2NBQ3JDLElBQUlELENBQUMsQ0FBQzdILE1BQU0sS0FBSzZILENBQUMsQ0FBQ3hCLGFBQWEsRUFBRTtjQUNsQyxJQUFJekIsaUJBQWlCLENBQUM1RCxPQUFPLENBQUNGLGVBQWUsRUFDM0MsQ0FBQWdILHFCQUFBLEdBQUFGLGFBQWEsQ0FBQ3JELE9BQU8sY0FBQXVELHFCQUFBLHVCQUFyQkEscUJBQUEsQ0FBdUJ2QixTQUFTLENBQUNFLE1BQU0sQ0FDckM3QixpQkFBaUIsQ0FBQzVELE9BQU8sQ0FBQ0YsZUFDNUIsQ0FBQztjQUNILElBQUlrQyxhQUFhLEVBQUVBLGFBQWEsQ0FBQ3lDLGVBQWUsRUFBRUgsVUFBVSxDQUFDO2NBQzdEM0IsbUJBQW1CLENBQUUrQyxpQ0FBaUMsSUFBSztnQkFDekQsTUFBTXFCLFNBQVMsR0FBR3JCLGlDQUFpQyxDQUFDWixNQUFNLENBQ3ZEYyxDQUFDLElBQUs7a0JBQ0wsTUFBTW9CLGFBQWEsR0FDakIsQ0FBQXBCLENBQUMsYUFBREEsQ0FBQyx1QkFBREEsQ0FBQyxDQUFFdEUsYUFBYSxNQUFLd0IsTUFBTSxDQUFDMkIsZUFBZSxDQUFDLElBQzVDbUIsQ0FBQyxDQUFDdkUsU0FBUyxHQUFHaUQsVUFBVTtrQkFDMUIsT0FBTzBDLGFBQWE7Z0JBQ3RCLENBQ0YsQ0FBQztnQkFDRCxPQUFPRCxTQUFTO2NBQ2xCLENBQUMsQ0FBQztZQUNKO1VBQ0YsQ0FBQyxDQUFDO1FBQ0o7UUFDQSxNQUFNYixjQUFjLEdBQUc7VUFDckJDLEdBQUcsRUFBRVMsYUFBYTtVQUVsQnJJLEdBQUc7VUFDSHdFLEtBQUssRUFBRTtZQUNMLEdBQUduQjtVQUNMLENBQUM7VUFDREcsU0FBUyxFQUFHLEdBQUVGLGdCQUFpQixJQUFHK0IsaUJBQWlCLENBQUM1RCxPQUFPLENBQUNGLGVBQWdCO1FBQzlFLENBQUM7UUFDRCxNQUFNdUcsVUFBVSxHQUFHckYsc0JBQXNCLENBQ3ZDaUcsS0FBQSxJQUFrQjtVQUFBLElBQWpCO1lBQUVuRjtVQUFTLENBQUMsR0FBQW1GLEtBQUE7VUFDWCxvQkFBTy9KLE1BQUEsQ0FBQU8sT0FBQSxDQUFBd0YsYUFBQSxRQUFTaUQsY0FBYyxFQUFHcEUsUUFBYyxDQUFDO1FBQ2xELENBQUMsRUFDRHZELEdBQUcsRUFDSDJILGNBQWMsRUFDZDVCLFVBQ0YsQ0FBQztRQUNELE9BQU8sQ0FDTCxHQUFHSSx5QkFBeUIsQ0FBQ3dDLEtBQUssQ0FBQyxDQUFDLEVBQUVSLFNBQVMsQ0FBQyxFQUNoREMsV0FBVyxJQUNUM0Ysc0JBQXNCLENBQ3BCLG1CQUFNOUQsTUFBQSxDQUFBTyxPQUFBLENBQUF3RixhQUFBLENBQUMvRixNQUFBLENBQUFPLE9BQUssQ0FBQzhJLFFBQVEsTUFBRSxDQUFDLEVBQ3hCLFVBQVUsRUFDVixDQUFDLENBQUMsRUFDRmpDLFVBQ0YsQ0FBQyxFQUNIK0IsVUFBVSxDQUNYO01BQ0gsQ0FBQyxDQUFDO0lBQ0o7SUFDQSxPQUFPLE1BQU07TUFDWGpELFFBQVEsQ0FBQ0csT0FBTyxHQUFHNUIsSUFBSTtJQUN6QixDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNBLElBQUksQ0FBQyxDQUFDO0VBRVYsSUFBQTJCLGdCQUFTLEVBQUMsTUFBTTtJQUNkLElBQUlaLGdCQUFnQixDQUFDdkQsTUFBTSxLQUFLLENBQUMsSUFBSThDLG1CQUFtQixFQUN0REcsWUFBWSxDQUFDbUIsT0FBTyxDQUFFUixLQUFLLENBQUNpQixLQUFLLEdBQUcsRUFBRTtJQUN4QyxJQUFJdEIsZ0JBQWdCLENBQUN2RCxNQUFNLEtBQUssQ0FBQyxJQUFJK0Msb0JBQW9CLEVBQ3ZERSxZQUFZLENBQUNtQixPQUFPLENBQUVSLEtBQUssQ0FBQ21CLE1BQU0sR0FBRyxFQUFFO0VBQzNDLENBQUMsRUFBRSxDQUFDeEIsZ0JBQWdCLENBQUN2RCxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7RUFFbkMsSUFBQW1FLGdCQUFTLEVBQUMsTUFBTTtJQUNkLElBQ0VuQixLQUFLLENBQUMwQixjQUFjLEtBQUtyRSx3QkFBd0IsQ0FBQ2dCLG1CQUFtQixJQUNyRSxXQUFXLElBQUkyQixLQUFLLEVBQ3BCO01BQ0EsTUFBTWdGLE9BQU8sR0FBR0MsUUFBUSxDQUFDQyxhQUFhLENBQ25DLElBQUdsRixLQUFLLENBQUNtRixTQUFVLEVBQ3RCLENBQW1CO01BRW5CLElBQUlILE9BQU8sRUFBRTtRQUNYLE1BQU07VUFBRWxELFdBQVc7VUFBRUU7UUFBYSxDQUFDLEdBQUcvQixZQUFZLENBQUNtQixPQUFRO1FBRTNELE1BQU1nRSxPQUFPLEdBQ1hKLE9BQU8sQ0FBQ0ssVUFBVSxHQUFHTCxPQUFPLENBQUNNLFVBQVUsR0FBR04sT0FBTyxDQUFDbEQsV0FBVyxHQUFHLENBQUM7UUFDbkUsTUFBTXlELE9BQU8sR0FDWFAsT0FBTyxDQUFDUSxTQUFTLEdBQUdSLE9BQU8sQ0FBQ1MsU0FBUyxHQUFHVCxPQUFPLENBQUNoRCxZQUFZLEdBQUcsQ0FBQztRQUNsRSxNQUFNMEQsUUFBUSxHQUFJTixPQUFPLEdBQUcsR0FBRyxHQUFJdEQsV0FBVztRQUM5QyxNQUFNNkQsUUFBUSxHQUFJSixPQUFPLEdBQUcsR0FBRyxHQUFJdkQsWUFBWTtRQUMvQzVCLG9CQUFvQixDQUFDZ0IsT0FBTyxDQUFDZCxlQUFlLEdBQUksR0FBRW9GLFFBQVMsS0FBSUMsUUFBUyxHQUFFO1FBRTFFMUosTUFBTSxDQUFDVSxNQUFNLENBQUNzRCxZQUFZLENBQUNtQixPQUFPLENBQUVSLEtBQUssRUFBRTtVQUN6Q04sZUFBZSxFQUFHLEdBQUVvRixRQUFTLEtBQUlDLFFBQVM7UUFDNUMsQ0FBQyxDQUFDO01BQ0o7SUFDRixDQUFDLE1BQU07TUFDTDFKLE1BQU0sQ0FBQ1UsTUFBTSxDQUFDc0QsWUFBWSxDQUFDbUIsT0FBTyxDQUFFUixLQUFLLEVBQUVSLG9CQUFvQixDQUFDZ0IsT0FBTyxDQUFDO0lBQzFFO0lBRUEsSUFBSWIsZ0JBQWdCLENBQUN2RCxNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ2pDaUQsWUFBWSxDQUFDbUIsT0FBTyxDQUFFUixLQUFLLENBQUNZLFFBQVEsR0FBRyxFQUFFO0lBQzNDO0VBQ0YsQ0FBQyxFQUFFLENBQUNqQixnQkFBZ0IsQ0FBQ3ZELE1BQU0sQ0FBQyxDQUFDO0VBRTdCLE1BQU00SSxhQUFhLEdBQUc7SUFBRSxHQUFHNUY7RUFBTSxDQUFRO0VBQ3pDLE9BQU80RixhQUFhLENBQUNsRSxjQUFjO0VBQ25DLE9BQU9rRSxhQUFhLENBQUNoRSxNQUFNO0VBRTNCLG9CQUNFN0csTUFBQSxDQUFBTyxPQUFBLENBQUF3RixhQUFBLENBQUEvRixNQUFBLENBQUFPLE9BQUEsQ0FBQThJLFFBQUEscUJBQ0VySixNQUFBLENBQUFPLE9BQUEsQ0FBQXdGLGFBQUEsWUFBQXBFLFFBQUEsS0FDTWtKLGFBQWE7SUFDakJDLE9BQU8sRUFBR25CLENBQUMsSUFBSztNQUNkLE1BQU07UUFDSnhCLGFBQWEsRUFBRTtVQUFFdUMsU0FBUztVQUFFSCxVQUFVO1VBQUV4RCxXQUFXO1VBQUVFO1FBQWEsQ0FBQztRQUNuRThELE9BQU87UUFDUEM7TUFDRixDQUFDLEdBQUdyQixDQUFDO01BQ0wsTUFBTVUsT0FBTyxHQUFHVSxPQUFPLEdBQUdSLFVBQVU7TUFDcEMsTUFBTUMsT0FBTyxHQUFHUSxPQUFPLEdBQUdOLFNBQVM7TUFDbkMsTUFBTUMsUUFBUSxHQUFJTixPQUFPLEdBQUcsR0FBRyxHQUFJdEQsV0FBVztNQUM5QyxNQUFNNkQsUUFBUSxHQUFJSixPQUFPLEdBQUcsR0FBRyxHQUFJdkQsWUFBWTtNQUUvQyxJQUNFaEMsS0FBSyxDQUFDMEIsY0FBYyxLQUNsQnJFLHdCQUF3QixDQUFDZ0IsbUJBQW1CLElBQzlDMkIsS0FBSyxDQUFDMEIsY0FBYyxLQUNsQnJFLHdCQUF3QixDQUFDZSxxQkFBcUIsRUFFaERnQyxvQkFBb0IsQ0FBQ2dCLE9BQU8sQ0FBQ2QsZUFBZSxHQUFJLEdBQUVvRixRQUFTLEtBQUlDLFFBQVMsR0FBRTtNQUM1RSxJQUFJM0YsS0FBSyxDQUFDNkYsT0FBTyxFQUFFN0YsS0FBSyxDQUFDNkYsT0FBTyxDQUFDbkIsQ0FBUSxDQUFDO0lBQzVDLENBQUU7SUFFRlYsR0FBRyxFQUFFL0QsWUFBYTtJQUNsQkwsU0FBUyxFQUFHLEdBQUVuQyx5QkFBTSxDQUFDdUksT0FBUSxJQUFHcEcsU0FBVTtFQUFFLElBRTFDVyxnQkFBZ0IsQ0FBdUIwRixHQUFHLENBQUVDLE9BQU8sSUFBSztJQUN4RCxNQUFNQyxhQUFhLEdBQUd4RyxRQUFRLENBQUN5RyxJQUFJLENBQ2pDLENBQUN4RCxDQUFDLEVBQUU5RixDQUFDLEtBQUssQ0FBQyxDQUFBOEYsQ0FBQyxhQUFEQSxDQUFDLHVCQUFEQSxDQUFDLENBQUV4RyxHQUFHLEtBQUlVLENBQUMsT0FBTW9KLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFL0csYUFBYSxDQUNwRCxDQUFDO0lBQ0Qsb0JBQ0VwRSxNQUFBLENBQUFPLE9BQUEsQ0FBQXdGLGFBQUEsQ0FBQ29GLE9BQU87TUFBQzlKLEdBQUcsRUFBRyxHQUFFOEosT0FBTyxDQUFFL0csYUFBYyxJQUFHK0csT0FBTyxDQUFDaEgsU0FBVTtJQUFFLGdCQUM3RG5FLE1BQUEsQ0FBQU8sT0FBQSxDQUFBd0YsYUFBQSxDQUFBL0YsTUFBQSxDQUFBTyxPQUFBLENBQUE4SSxRQUFBLFFBQUcrQixhQUFnQixDQUNaLENBQUM7RUFFZCxDQUFDLENBQ00sQ0FDVCxDQUFDO0FBRVA7QUFBQyxJQUVXOUksd0JBQXdCLDBCQUF4QkEsd0JBQXdCO0VBQXhCQSx3QkFBd0IsQ0FBeEJBLHdCQUF3QjtFQUF4QkEsd0JBQXdCLENBQXhCQSx3QkFBd0I7RUFBeEJBLHdCQUF3QixDQUF4QkEsd0JBQXdCO0VBQXhCQSx3QkFBd0IsQ0FBeEJBLHdCQUF3QjtFQUF4QkEsd0JBQXdCLENBQXhCQSx3QkFBd0I7RUFBeEJBLHdCQUF3QixDQUF4QkEsd0JBQXdCO0VBQXhCQSx3QkFBd0IsQ0FBeEJBLHdCQUF3QjtFQUFBLE9BQXhCQSx3QkFBd0I7QUFBQTtBQVVwQztBQUNBO0FBQ0E7QUFGQWdKLE9BQUEsQ0FBQWhKLHdCQUFBLEdBQUFBLHdCQUFBO0FBR0EsTUFBTWlKLFVBQVUsZ0JBQUcsSUFBQUMsaUJBQVUsRUFBQ2xILFdBQVcsQ0FBQztBQUFDLElBQUFtSCxRQUFBLEdBQzVCRixVQUFVO0FBQUFELE9BQUEsQ0FBQS9LLE9BQUEsR0FBQWtMLFFBQUEifQ==
|
|
310
|
+
var _default = exports.default = Transition;
|
|
311
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfVHJhbnNpdGlvbk1vZHVsZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZXhjbHVkZWQiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImluZGV4T2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIlRyYW5zaXRpb25DbGFzc2VzIiwidHlwZSIsIlRyYW5zaXRpb25BbmltYXRpb25UeXBlcyIsIkNPSU5fRkxJUCIsImJhY2t3YXJkIiwiZWxlbWVudEV4aXRpbmciLCJTdHlsZXMiLCJmbGlwQm90dG9tVXBPdXQiLCJlbGVtZW50RW50ZXJpbmciLCJmbGlwQm90dG9tVXBJbiIsImZvcndhcmQiLCJGQURFIiwiZmFkZU91dEFic29sdXRlIiwiZmFkZUluRGVsYXllZCIsIlNMSURFIiwiZW50cmFuY2VMZWZ0IiwiZXhpdExlZnQiLCJQT1BfRlJPTV9DTElDS19PUklHSU4iLCJQT1BfRlJPTV9FTEVNRU5UX0lEIiwiZmFkZUluIiwic2NhbGVPdXQiLCJzY2FsZUluIiwiZmFkZU91dCIsIk1BU0siLCJzdHViRW50ZXJpbmciLCJzdHViIiwiQ2hpbGRyZW5XcmFwcGVyRmFjdG9yeSIsImZ1bmMiLCJrZXkiLCJleHRlcm5hbFByb3BzQ29udGFpbmVyIiwidGltZXN0YW1wIiwidG9SZW1vdmVLZXlzIiwiY3JlYXRlZEF0IiwiYXNzb2NpYXRlZEtleSIsImV4dGVybmFsUHJvcHMiLCJfVHJhbnNpdGlvbiIsIl9yZWYiLCJfY29udGFpbmVyUmVmIiwic3RlcCIsImNvbnRlbnRTdHlsZSIsImNvbnRlbnRDbGFzc05hbWUiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsIm9uRGlzY2FyZFN0ZXAiLCJsb2NrVHJhbnNpdGlvbldpZHRoIiwibG9ja1RyYW5zaXRpb25IZWlnaHQiLCJwcm9wcyIsImNvbnRhaW5lclJlZiIsInVzZU1lbW8iLCJjcmVhdGVSZWYiLCJwcmVUcmFuc2l0aW9uRGV0YWlscyIsInVzZVJlZiIsInRyYW5zZm9ybU9yaWdpbiIsImNoaWxkcmVuV3JhcHBlcnMiLCJzZXRDaGlsZHJlbldyYXBwZXJzIiwidXNlU3RhdGUiLCJfY2hpbGRyZW4kc3RlcCIsInN0eWxlIiwiX3JlZjIiLCJjcmVhdGVFbGVtZW50IiwiRGF0ZSIsIm5vdyIsInByZXZTdGVwIiwicHJldkNoaWxkIiwidXNlRWZmZWN0IiwiY3VycmVudCIsIl9jaGlsZHJlbiRzdGVwMiIsIl9wcmV2Q2hpbGQkY3VycmVudCIsIl9jaGlsZHJlbiRzdGVwMyIsIm92ZXJmbG93IiwidHJhbnNpdGlvbkNsYXNzZXMiLCJ0cmFuc2l0aW9uVHlwZSIsIkNVU1RPTSIsImNvbmZpZyIsIndpZHRoIiwiY29uY2F0IiwiY2xpZW50V2lkdGgiLCJoZWlnaHQiLCJjbGllbnRIZWlnaHQiLCJ0cmFuc2l0aW9uTWFzayIsIm1hc2tGYWN0b3J5IiwiaW5zZXJ0ZWRBdCIsIl9wcmV2Q2hpbGQkY3VycmVudDIiLCJzdGVwVG9SZW1vdmUiLCJwcmV2S2V5VG9SZW1vdmUiLCJzY3JlZW5zQmVmb3JlQ2hhbmdpbmdTdGVwIiwiZW50ZXJpbmdTY3JlZW5SZWYiLCJGaXJzdE5leHRTY3JlZW4iLCJyZXN0T2ZTY3JlZW5zIiwiYSIsIldlYmtpdE1hc2tJbWFnZSIsImFuaW1hdGlvbkVuZExpc3RlbmVyIiwiZXZlbnQiLCJfZW50ZXJpbmdTY3JlZW5SZWYkY3UiLCJfZW50ZXJpbmdTY3JlZW5SZWYkY3UyIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImlzQW5pbWF0aW9uRnJvbUV4cGVjdGVkU3RhdGUiLCJjbGFzc0xpc3QiLCJjb250YWlucyIsInJlbW92ZSIsInNjcmVlbnNBZnRlclRoZUN1cnJlbnRTdGVwRW50ZXJlZCIsInMiLCJfRmlyc3ROZXh0U2NyZWVuJHRvUmUiLCJzaG91bGRLZWVwIiwic29tZSIsImsiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicHJvcHNDb250YWluZXIiLCJyZWYiLCJvbkFuaW1hdGlvbkVuZCIsIm5ld1dyYXBwZXIiLCJfcmVmMyIsIkZyYWdtZW50IiwiX3ByZXZDaGlsZCRjdXJyZW50MyIsInN0ZXBUb0RlbGV0ZSIsImxhc3RJbmRleCIsImxhc3RXcmFwcGVyIiwibmV4dFNjcmVlblJlZiIsIl9uZXh0U2NyZWVuUmVmJGN1cnJlbiIsIm5leHRTdGF0ZSIsInNob3VsZE1hbnRhaW4iLCJfcmVmNCIsInNsaWNlIiwiZWxlbWVudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImVsZW1lbnRJZCIsIm9mZnNldFgiLCJjbGllbnRMZWZ0Iiwib2Zmc2V0TGVmdCIsIm9mZnNldFkiLCJjbGllbnRUb3AiLCJvZmZzZXRUb3AiLCJwZXJjZW50WCIsInBlcmNlbnRZIiwicHJvcHNUb1NwcmVhZCIsIm9uQ2xpY2siLCJjbGllbnRYIiwiY2xpZW50WSIsInNlY3Rpb24iLCJtYXAiLCJXcmFwcGVyIiwiY2hpbGRUb1JlbmRlciIsImZpbmQiLCJleHBvcnRzIiwiVHJhbnNpdGlvbiIsImZvcndhcmRSZWYiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RyYW5zaXRpb24vVHJhbnNpdGlvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7XG4gIEFuaW1hdGlvbkV2ZW50LFxuICBjcmVhdGVSZWYsXG4gIENTU1Byb3BlcnRpZXMsXG4gIERldGFpbGVkSFRNTFByb3BzLFxuICBGb3J3YXJkZWRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIEtleSxcbiAgTXV0YWJsZVJlZk9iamVjdCxcbiAgUmVhY3RFbGVtZW50LFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFN0eWxlcyBmcm9tIFwiLi9UcmFuc2l0aW9uLm1vZHVsZS5zY3NzXCI7XG5cbmV4cG9ydCB0eXBlIFRyYW5zaXRpb25UeXBlRGVmaW5pdGlvbnMgPVxuICB8IHtcbiAgICAgIHRyYW5zaXRpb25UeXBlPzpcbiAgICAgICAgfCBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuU0xJREVcbiAgICAgICAgfCBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuUE9QX0ZST01fQ0xJQ0tfT1JJR0lOXG4gICAgICAgIHwgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLkZBREVcbiAgICAgICAgfCBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuQ09JTl9GTElQO1xuICAgIH1cbiAgfCB7XG4gICAgICB0cmFuc2l0aW9uVHlwZT86IFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5QT1BfRlJPTV9FTEVNRU5UX0lEO1xuICAgICAgZWxlbWVudElkOiBzdHJpbmc7XG4gICAgfVxuICB8IHtcbiAgICAgIHRyYW5zaXRpb25UeXBlPzogVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLk1BU0s7XG4gICAgICAvKipcbiAgICAgICAqIEl0IHByb3ZpZGVzIHRoZSB0cmFuc2l0aW9uIGNvbnRhaW5lciBzbyB5b3UgY2FuIGNyZWF0ZSBhIGR5bmFtaWMgc3ZnIHRvIG1hc2sgd2l0aFxuICAgICAgICovXG4gICAgICBtYXNrRmFjdG9yeTogKGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQpID0+IHN0cmluZztcbiAgICB9XG4gIHwge1xuICAgICAgdHJhbnNpdGlvblR5cGU/OiBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuQ1VTVE9NO1xuICAgICAgY29uZmlnOiBSZXR1cm5UeXBlPHR5cGVvZiBUcmFuc2l0aW9uQ2xhc3Nlcz47XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgVHJhbnNpdGlvblByb3BzID0ge1xuICBzdGVwOiBudW1iZXI7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgY29udGVudFN0eWxlPzogUmVhY3QuQ1NTUHJvcGVydGllcztcbiAgY29udGVudENsYXNzTmFtZT86IHN0cmluZztcbiAgY2hpbGRyZW46IChSZWFjdC5SZWFjdEVsZW1lbnQgfCB1bmRlZmluZWQpW107XG4gIG9uRGlzY2FyZFN0ZXA/OiAoZGlzY2FyZGVkS2V5OiBSZWFjdC5LZXksIHN0YXJ0ZWRBbmltYXRpb25BdDogbnVtYmVyKSA9PiB2b2lkO1xuICBsb2NrVHJhbnNpdGlvbldpZHRoPzogYm9vbGVhbjtcbiAgbG9ja1RyYW5zaXRpb25IZWlnaHQ/OiBib29sZWFuO1xufSAmIFRyYW5zaXRpb25UeXBlRGVmaW5pdGlvbnMgJlxuICBPbWl0PFxuICAgIERldGFpbGVkSFRNTFByb3BzPFJlYWN0LkhUTUxBdHRyaWJ1dGVzPEhUTUxEaXZFbGVtZW50PiwgYW55PixcbiAgICBcImNsYXNzTmFtZVwiIHwgXCJjaGlsZHJlblwiXG4gID47XG5cbmZ1bmN0aW9uIFRyYW5zaXRpb25DbGFzc2VzKFxuICB0eXBlOiBOb25OdWxsYWJsZTxcbiAgICBFeGNsdWRlPFRyYW5zaXRpb25Qcm9wc1tcInRyYW5zaXRpb25UeXBlXCJdLCBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuQ1VTVE9NPlxuICA+XG4pOiB7XG4gIC8qKlxuICAgKiBBcHBsaWVkIHRvIHRoZSBlbGVtZW50IHRoYXQgd2FzIG5vdCB2aXNpYmxlIGFuZCBpcyBub3cgZW50ZXJpbmcgdGhlIHNjcmVlblxuICAgKi9cbiAgYmFja3dhcmQ6IHtcbiAgICBlbGVtZW50RW50ZXJpbmc6IHN0cmluZztcbiAgICBlbGVtZW50RXhpdGluZzogc3RyaW5nO1xuICB9O1xuICAvKipcbiAgICogQXBwbGllZCB0byB0aGUgZWxlbWVudCB0aGF0IHdhcyB2aXNpYmxlIGFuZCBub3cgaXMgZXhpdGluZyB0aGUgc2NyZWVuXG4gICAqL1xuICBmb3J3YXJkOiB7XG4gICAgZWxlbWVudEVudGVyaW5nOiBzdHJpbmc7XG4gICAgZWxlbWVudEV4aXRpbmc6IHN0cmluZztcbiAgfTtcbn0ge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5DT0lOX0ZMSVA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYWNrd2FyZDoge1xuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBTdHlsZXMuZmxpcEJvdHRvbVVwT3V0LFxuICAgICAgICAgIGVsZW1lbnRFbnRlcmluZzogU3R5bGVzLmZsaXBCb3R0b21VcEluLFxuICAgICAgICB9LFxuICAgICAgICBmb3J3YXJkOiB7XG4gICAgICAgICAgZWxlbWVudEV4aXRpbmc6IFN0eWxlcy5mbGlwQm90dG9tVXBPdXQsXG4gICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuZmxpcEJvdHRvbVVwSW4sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLkZBREU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYWNrd2FyZDoge1xuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBTdHlsZXMuZmFkZU91dEFic29sdXRlLFxuICAgICAgICAgIGVsZW1lbnRFbnRlcmluZzogU3R5bGVzLmZhZGVJbkRlbGF5ZWQsXG4gICAgICAgIH0sXG4gICAgICAgIGZvcndhcmQ6IHtcbiAgICAgICAgICBlbGVtZW50RXhpdGluZzogU3R5bGVzLmZhZGVPdXRBYnNvbHV0ZSxcbiAgICAgICAgICBlbGVtZW50RW50ZXJpbmc6IFN0eWxlcy5mYWRlSW5EZWxheWVkLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5TTElERTpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGJhY2t3YXJkOiB7XG4gICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuZW50cmFuY2VMZWZ0LFxuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBcIlwiLFxuICAgICAgICB9LFxuICAgICAgICBmb3J3YXJkOiB7XG4gICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBcIlwiLFxuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBTdHlsZXMuZXhpdExlZnQsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIGNhc2UgVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzLlBPUF9GUk9NX0NMSUNLX09SSUdJTjpcbiAgICBjYXNlIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5QT1BfRlJPTV9FTEVNRU5UX0lEOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYmFja3dhcmQ6IHtcbiAgICAgICAgICBlbGVtZW50RW50ZXJpbmc6IFN0eWxlcy5mYWRlSW4sXG4gICAgICAgICAgZWxlbWVudEV4aXRpbmc6IFN0eWxlcy5zY2FsZU91dCxcbiAgICAgICAgfSxcbiAgICAgICAgZm9yd2FyZDoge1xuICAgICAgICAgIGVsZW1lbnRFbnRlcmluZzogU3R5bGVzLnNjYWxlSW4sXG4gICAgICAgICAgZWxlbWVudEV4aXRpbmc6IFN0eWxlcy5mYWRlT3V0LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICBjYXNlIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5NQVNLOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYmFja3dhcmQ6IHtcbiAgICAgICAgICBlbGVtZW50RW50ZXJpbmc6IFN0eWxlcy5zdHViRW50ZXJpbmcsXG4gICAgICAgICAgZWxlbWVudEV4aXRpbmc6IFN0eWxlcy5zdHViLFxuICAgICAgICB9LFxuICAgICAgICBmb3J3YXJkOiB7XG4gICAgICAgICAgZWxlbWVudEVudGVyaW5nOiBTdHlsZXMuc3R1YkVudGVyaW5nLFxuICAgICAgICAgIGVsZW1lbnRFeGl0aW5nOiBTdHlsZXMuc3R1YixcbiAgICAgICAgfSxcbiAgICAgIH07XG4gIH1cbn1cblxudHlwZSBDaGlsZHJlbldyYXBwZXIgPSAoKHByb3BzOiB7XG4gIGNoaWxkcmVuOiBUcmFuc2l0aW9uUHJvcHNbXCJjaGlsZHJlblwiXVtudW1iZXJdO1xufSkgPT4gUmVhY3RFbGVtZW50KSAmIHtcbiAgY3JlYXRlZEF0OiBudW1iZXI7XG4gIGFzc29jaWF0ZWRLZXk6IEtleTtcbiAgdG9SZW1vdmVLZXlzPzogS2V5W107XG4gIGV4dGVybmFsUHJvcHM6IHsgW2s6IHN0cmluZ106IGFueSB9O1xufTtcblxuZnVuY3Rpb24gQ2hpbGRyZW5XcmFwcGVyRmFjdG9yeShcbiAgZnVuYzogKHA6IHsgY2hpbGRyZW46IFRyYW5zaXRpb25Qcm9wc1tcImNoaWxkcmVuXCJdIH0pID0+IFJlYWN0RWxlbWVudCxcbiAga2V5OiBLZXksXG4gIGV4dGVybmFsUHJvcHNDb250YWluZXI6IHsgW2s6IHN0cmluZ106IGFueSB9LFxuICAvKiogVGhpcyBpcyB1c2VkIHRvIHByZXZlbnQgbmV3ZXIgXCJkdXBsaWNhdGVkXCIga2V5cyBmcm9tIGJlaW5nIHJlbW92ZWQgYWZ0ZXIgdGhlIG5ldyBlbGVtZW50IGZpbmlzaGVkIGFuaW1hdGlvbiAqL1xuICB0aW1lc3RhbXA6IG51bWJlcixcbiAgdG9SZW1vdmVLZXlzPzogS2V5W11cbik6IENoaWxkcmVuV3JhcHBlciB7XG4gIChmdW5jIGFzIGFueSkuY3JlYXRlZEF0ID0gdGltZXN0YW1wO1xuICAoZnVuYyBhcyBhbnkpLmFzc29jaWF0ZWRLZXkgPSBrZXk7XG4gIChmdW5jIGFzIGFueSkudG9SZW1vdmVLZXlzID0gdG9SZW1vdmVLZXlzO1xuICAoZnVuYyBhcyBhbnkpLmV4dGVybmFsUHJvcHMgPSBleHRlcm5hbFByb3BzQ29udGFpbmVyO1xuICByZXR1cm4gZnVuYyBhcyB1bmtub3duIGFzIENoaWxkcmVuV3JhcHBlcjtcbn1cbmZ1bmN0aW9uIF9UcmFuc2l0aW9uKFxuICB7XG4gICAgc3RlcCxcbiAgICBjb250ZW50U3R5bGUsXG4gICAgY29udGVudENsYXNzTmFtZSA9IFwiXCIsXG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIG9uRGlzY2FyZFN0ZXAsXG4gICAgbG9ja1RyYW5zaXRpb25XaWR0aCA9IGZhbHNlLFxuICAgIGxvY2tUcmFuc2l0aW9uSGVpZ2h0ID0gZmFsc2UsXG4gICAgLi4ucHJvcHNcbiAgfTogVHJhbnNpdGlvblByb3BzLFxuICBfY29udGFpbmVyUmVmOiBGb3J3YXJkZWRSZWY8SFRNTERpdkVsZW1lbnQgfCBudWxsPlxuKSB7XG4gIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIChfY29udGFpbmVyUmVmIGFzIE11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPikgfHwgY3JlYXRlUmVmKCksXG4gICAgW19jb250YWluZXJSZWZdXG4gICk7XG4gIGNvbnN0IHByZVRyYW5zaXRpb25EZXRhaWxzID0gdXNlUmVmPENTU1Byb3BlcnRpZXM+KHtcbiAgICB0cmFuc2Zvcm1PcmlnaW46IFwiaW5pdGlhbFwiLFxuICB9KTtcbiAgY29uc3QgW2NoaWxkcmVuV3JhcHBlcnMsIHNldENoaWxkcmVuV3JhcHBlcnNdID0gdXNlU3RhdGU8XG4gICAgKENoaWxkcmVuV3JhcHBlciB8IHVuZGVmaW5lZClbXVxuICA+KCgpID0+IHtcbiAgICBjb25zdCBleHRlcm5hbFByb3BzID0ge1xuICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcInRyYW5zaXRpb24tY29udGFpbmVyXCIsXG4gICAgICBrZXk6IFN0cmluZyhjaGlsZHJlbltzdGVwXT8ua2V5IHx8IHN0ZXApLFxuICAgICAgc3R5bGU6IGNvbnRlbnRTdHlsZSxcbiAgICAgIGNsYXNzTmFtZTogY29udGVudENsYXNzTmFtZSxcbiAgICB9O1xuICAgIGNvbnN0IGZ1bmMgPSBDaGlsZHJlbldyYXBwZXJGYWN0b3J5KFxuICAgICAgKHsgY2hpbGRyZW4gfSkgPT4gPGRpdiB7Li4uZXh0ZXJuYWxQcm9wc30+e2NoaWxkcmVufTwvZGl2PixcbiAgICAgIGNoaWxkcmVuW3N0ZXBdIS5rZXkgfHwgc3RlcCxcbiAgICAgIGV4dGVybmFsUHJvcHMsXG4gICAgICBEYXRlLm5vdygpLFxuICAgICAgW11cbiAgICApO1xuICAgIHJldHVybiBbZnVuY107XG4gIH0pO1xuXG4gIGNvbnN0IHByZXZTdGVwID0gdXNlUmVmKHN0ZXApO1xuICBjb25zdCBwcmV2Q2hpbGQgPSB1c2VSZWYoY2hpbGRyZW5bc3RlcF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiAoKSA9PiB7XG4gICAgcHJldkNoaWxkLmN1cnJlbnQgPSBjaGlsZHJlbltzdGVwXTtcbiAgfSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb250YWluZXJSZWYuY3VycmVudCEuc3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiO1xuICAgIGNvbnN0IHRyYW5zaXRpb25DbGFzc2VzID1cbiAgICAgIHByb3BzLnRyYW5zaXRpb25UeXBlID09PSBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuQ1VTVE9NXG4gICAgICAgID8gcHJvcHMuY29uZmlnXG4gICAgICAgIDogVHJhbnNpdGlvbkNsYXNzZXMoXG4gICAgICAgICAgICBwcm9wcy50cmFuc2l0aW9uVHlwZSB8fCBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuU0xJREVcbiAgICAgICAgICApO1xuXG4gICAgaWYgKFxuICAgICAgcHJldkNoaWxkLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICAgIGNoaWxkcmVuW3N0ZXBdPy5rZXkgPT09IHByZXZDaGlsZC5jdXJyZW50Py5rZXkgLy8gSSdtIHJlbmRlcmluZyB0aGUgc2FtZSBzY3JlZW5cbiAgICApIHtcbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHByZXZTdGVwLmN1cnJlbnQgPSBzdGVwO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBrZXkgPSBjaGlsZHJlbltzdGVwXT8ua2V5IHx8IHN0ZXA7XG5cbiAgICBpZiAocHJldlN0ZXAuY3VycmVudCAhPT0gc3RlcCAmJiBsb2NrVHJhbnNpdGlvbldpZHRoKVxuICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLnN0eWxlLndpZHRoID0gYCR7XG4gICAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50IS5jbGllbnRXaWR0aFxuICAgICAgfXB4YDtcblxuICAgIGlmIChwcmV2U3RlcC5jdXJyZW50ICE9PSBzdGVwICYmIGxvY2tUcmFuc2l0aW9uSGVpZ2h0KVxuICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLnN0eWxlLmhlaWdodCA9IGAke1xuICAgICAgICBjb250YWluZXJSZWYuY3VycmVudCEuY2xpZW50SGVpZ2h0XG4gICAgICB9cHhgO1xuICAgIGNvbnN0IHRyYW5zaXRpb25NYXNrID1cbiAgICAgIHByb3BzLnRyYW5zaXRpb25UeXBlID09PSBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuTUFTS1xuICAgICAgICA/IHByb3BzLm1hc2tGYWN0b3J5KGNvbnRhaW5lclJlZi5jdXJyZW50ISlcbiAgICAgICAgOiBcIlwiO1xuICAgIGNvbnN0IGluc2VydGVkQXQgPSBEYXRlLm5vdygpO1xuXG4gICAgLyoqIFRoaXMgcnVucyBvbiBiYWNrd2FyZHMgKi9cbiAgICBpZiAocHJldlN0ZXAuY3VycmVudCA+IHN0ZXApIHtcbiAgICAgIGNvbnN0IHN0ZXBUb1JlbW92ZSA9IHByZXZTdGVwLmN1cnJlbnQ7XG4gICAgICBjb25zdCBwcmV2S2V5VG9SZW1vdmUgPSBwcmV2Q2hpbGQuY3VycmVudD8ua2V5IHx8IHN0ZXBUb1JlbW92ZTtcbiAgICAgIHNldENoaWxkcmVuV3JhcHBlcnMoKHNjcmVlbnNCZWZvcmVDaGFuZ2luZ1N0ZXApID0+IHtcbiAgICAgICAgY29uc3QgZW50ZXJpbmdTY3JlZW5SZWYgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gICAgICAgIGNvbnN0IFtGaXJzdE5leHRTY3JlZW4sIC4uLnJlc3RPZlNjcmVlbnNdID1cbiAgICAgICAgICBzY3JlZW5zQmVmb3JlQ2hhbmdpbmdTdGVwLmZpbHRlcihcbiAgICAgICAgICAgIChhKSA9PiBhPy5hc3NvY2lhdGVkS2V5ICE9PSBTdHJpbmcoa2V5KVxuICAgICAgICAgICk7XG5cbiAgICAgICAgaWYgKEZpcnN0TmV4dFNjcmVlbikge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oRmlyc3ROZXh0U2NyZWVuLmV4dGVybmFsUHJvcHMsIHtcbiAgICAgICAgICAgIFwiZGF0YS10ZXN0aWRcIjogXCJ0cmFuc2l0aW9uLWNvbnRhaW5lclwiLFxuICAgICAgICAgICAgc3R5bGU6IHsgLi4uY29udGVudFN0eWxlLCBXZWJraXRNYXNrSW1hZ2U6IHRyYW5zaXRpb25NYXNrIH0sXG4gICAgICAgICAgICBjbGFzc05hbWU6IGAke3RyYW5zaXRpb25DbGFzc2VzLmJhY2t3YXJkLmVsZW1lbnRFeGl0aW5nfWAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgZnVuY3Rpb24gYW5pbWF0aW9uRW5kTGlzdGVuZXIoZXZlbnQ6IEFuaW1hdGlvbkV2ZW50PEhUTUxEaXZFbGVtZW50Pikge1xuICAgICAgICAgIGlmIChldmVudC50YXJnZXQgIT09IGV2ZW50LmN1cnJlbnRUYXJnZXQpIHJldHVybjtcblxuICAgICAgICAgIGNvbnN0IGlzQW5pbWF0aW9uRnJvbUV4cGVjdGVkU3RhdGUgPVxuICAgICAgICAgICAgZW50ZXJpbmdTY3JlZW5SZWYuY3VycmVudD8uY2xhc3NMaXN0LmNvbnRhaW5zKFxuICAgICAgICAgICAgICB0cmFuc2l0aW9uQ2xhc3Nlcy5iYWNrd2FyZC5lbGVtZW50RW50ZXJpbmdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgZW50ZXJpbmdTY3JlZW5SZWYuY3VycmVudD8uY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgICAgIHRyYW5zaXRpb25DbGFzc2VzLmJhY2t3YXJkLmVsZW1lbnRFbnRlcmluZ1xuICAgICAgICAgICk7XG4gICAgICAgICAgc2V0Q2hpbGRyZW5XcmFwcGVycygoc2NyZWVuc0FmdGVyVGhlQ3VycmVudFN0ZXBFbnRlcmVkKSA9PiB7XG4gICAgICAgICAgICBpZiAob25EaXNjYXJkU3RlcCkge1xuICAgICAgICAgICAgICBpZiAoaXNBbmltYXRpb25Gcm9tRXhwZWN0ZWRTdGF0ZSlcbiAgICAgICAgICAgICAgICBvbkRpc2NhcmRTdGVwKHByZXZLZXlUb1JlbW92ZSwgaW5zZXJ0ZWRBdCk7XG4gICAgICAgICAgICAgIGlmIChGaXJzdE5leHRTY3JlZW4gJiYgRmlyc3ROZXh0U2NyZWVuLnRvUmVtb3ZlS2V5cylcbiAgICAgICAgICAgICAgICBGaXJzdE5leHRTY3JlZW4udG9SZW1vdmVLZXlzLmZvckVhY2gob25EaXNjYXJkU3RlcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2NyZWVuc0FmdGVyVGhlQ3VycmVudFN0ZXBFbnRlcmVkLmZpbHRlcigocykgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBzaG91bGRLZWVwID1cbiAgICAgICAgICAgICAgICAocz8uYXNzb2NpYXRlZEtleSAhPT0gU3RyaW5nKHByZXZLZXlUb1JlbW92ZSkgJiZcbiAgICAgICAgICAgICAgICAgICFGaXJzdE5leHRTY3JlZW4/LnRvUmVtb3ZlS2V5cz8uc29tZShcbiAgICAgICAgICAgICAgICAgICAgKGspID0+IFN0cmluZyhrKSA9PT0gU3RyaW5nKHM/LmFzc29jaWF0ZWRLZXkpXG4gICAgICAgICAgICAgICAgICApKSB8fFxuICAgICAgICAgICAgICAgIHMhLmNyZWF0ZWRBdCEgPiBpbnNlcnRlZEF0O1xuICAgICAgICAgICAgICByZXR1cm4gc2hvdWxkS2VlcDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgICAgIFwiYW5pbWF0aW9uZW5kXCIsXG4gICAgICAgICAgICBhbmltYXRpb25FbmRMaXN0ZW5lciBhcyBhbnlcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHByb3BzQ29udGFpbmVyID0ge1xuICAgICAgICAgIHJlZjogZW50ZXJpbmdTY3JlZW5SZWYsXG4gICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcInRyYW5zaXRpb24tY29udGFpbmVyXCIsXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIGNsYXNzTmFtZTogYCR7dHJhbnNpdGlvbkNsYXNzZXMuYmFja3dhcmQuZWxlbWVudEVudGVyaW5nfSAke2NvbnRlbnRDbGFzc05hbWV9YCxcbiAgICAgICAgICBzdHlsZToge1xuICAgICAgICAgICAgLi4uY29udGVudFN0eWxlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25BbmltYXRpb25FbmQ6IGFuaW1hdGlvbkVuZExpc3RlbmVyLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBuZXdXcmFwcGVyID0gQ2hpbGRyZW5XcmFwcGVyRmFjdG9yeShcbiAgICAgICAgICAoeyBjaGlsZHJlbiB9KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gPGRpdiB7Li4ucHJvcHNDb250YWluZXJ9PntjaGlsZHJlbn08L2Rpdj47XG4gICAgICAgICAgfSxcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgcHJvcHNDb250YWluZXIsXG4gICAgICAgICAgaW5zZXJ0ZWRBdCxcbiAgICAgICAgICBbcHJldktleVRvUmVtb3ZlLCAuLi4oRmlyc3ROZXh0U2NyZWVuPy50b1JlbW92ZUtleXMgfHwgW10pXVxuICAgICAgICApO1xuICAgICAgICBpZiAoRmlyc3ROZXh0U2NyZWVuKVxuICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBuZXdXcmFwcGVyLFxuICAgICAgICAgICAgRmlyc3ROZXh0U2NyZWVuIHx8XG4gICAgICAgICAgICAgIENoaWxkcmVuV3JhcHBlckZhY3RvcnkoXG4gICAgICAgICAgICAgICAgKCkgPT4gPFJlYWN0LkZyYWdtZW50IC8+LFxuICAgICAgICAgICAgICAgIFwiXCIsXG4gICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgaW5zZXJ0ZWRBdFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgLi4ucmVzdE9mU2NyZWVucyxcbiAgICAgICAgICBdO1xuICAgICAgICBlbHNlIHJldHVybiBbbmV3V3JhcHBlcl07XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHByZXZTdGVwLmN1cnJlbnQgPCBzdGVwKSB7XG4gICAgICBjb25zdCBzdGVwVG9EZWxldGUgPSBwcmV2U3RlcC5jdXJyZW50O1xuICAgICAgY29uc3QgcHJldktleVRvUmVtb3ZlID0gU3RyaW5nKHByZXZDaGlsZC5jdXJyZW50Py5rZXkgfHwgc3RlcFRvRGVsZXRlKTtcbiAgICAgIHNldENoaWxkcmVuV3JhcHBlcnMoKHNjcmVlbnNCZWZvcmVDaGFuZ2luZ1N0ZXApID0+IHtcbiAgICAgICAgY29uc3QgbGFzdEluZGV4ID0gc2NyZWVuc0JlZm9yZUNoYW5naW5nU3RlcC5sZW5ndGggLSAxO1xuICAgICAgICBjb25zdCBsYXN0V3JhcHBlciA9IHNjcmVlbnNCZWZvcmVDaGFuZ2luZ1N0ZXBbbGFzdEluZGV4XTtcbiAgICAgICAgY29uc3QgbmV4dFNjcmVlblJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgICAgICAgaWYgKGxhc3RXcmFwcGVyKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihsYXN0V3JhcHBlci5leHRlcm5hbFByb3BzLCB7XG4gICAgICAgICAgICBcImRhdGEtdGVzdGlkXCI6IFwidHJhbnNpdGlvbi1jb250YWluZXJcIixcbiAgICAgICAgICAgIHN0eWxlOiB7IC4uLmNvbnRlbnRTdHlsZSwgV2Via2l0TWFza0ltYWdlOiB0cmFuc2l0aW9uTWFzayB9LFxuICAgICAgICAgICAgY2xhc3NOYW1lOiBgJHtjb250ZW50Q2xhc3NOYW1lfSAke3RyYW5zaXRpb25DbGFzc2VzLmZvcndhcmQuZWxlbWVudEV4aXRpbmd9YCxcbiAgICAgICAgICAgIG9uQW5pbWF0aW9uRW5kOiAoZTogQW5pbWF0aW9uRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0ICE9PSBlLmN1cnJlbnRUYXJnZXQpIHJldHVybjtcbiAgICAgICAgICAgICAgaWYgKHRyYW5zaXRpb25DbGFzc2VzLmZvcndhcmQuZWxlbWVudEVudGVyaW5nKVxuICAgICAgICAgICAgICAgIG5leHRTY3JlZW5SZWYuY3VycmVudD8uY2xhc3NMaXN0LnJlbW92ZShcbiAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb25DbGFzc2VzLmZvcndhcmQuZWxlbWVudEVudGVyaW5nXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgaWYgKG9uRGlzY2FyZFN0ZXApIG9uRGlzY2FyZFN0ZXAocHJldktleVRvUmVtb3ZlLCBpbnNlcnRlZEF0KTtcbiAgICAgICAgICAgICAgc2V0Q2hpbGRyZW5XcmFwcGVycygoc2NyZWVuc0FmdGVyVGhlQ3VycmVudFN0ZXBFbnRlcmVkKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dFN0YXRlID0gc2NyZWVuc0FmdGVyVGhlQ3VycmVudFN0ZXBFbnRlcmVkLmZpbHRlcihcbiAgICAgICAgICAgICAgICAgIChzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNob3VsZE1hbnRhaW4gPVxuICAgICAgICAgICAgICAgICAgICAgIHM/LmFzc29jaWF0ZWRLZXkgIT09IFN0cmluZyhwcmV2S2V5VG9SZW1vdmUpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgcy5jcmVhdGVkQXQgPiBpbnNlcnRlZEF0O1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2hvdWxkTWFudGFpbjtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXh0U3RhdGU7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwcm9wc0NvbnRhaW5lciA9IHtcbiAgICAgICAgICByZWY6IG5leHRTY3JlZW5SZWYsXG4gICAgICAgICAgXCJkYXRhLXRlc3RpZFwiOiBcInRyYW5zaXRpb24tY29udGFpbmVyXCIsXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAuLi5jb250ZW50U3R5bGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBjbGFzc05hbWU6IGAke2NvbnRlbnRDbGFzc05hbWV9ICR7dHJhbnNpdGlvbkNsYXNzZXMuZm9yd2FyZC5lbGVtZW50RW50ZXJpbmd9YCxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgbmV3V3JhcHBlciA9IENoaWxkcmVuV3JhcHBlckZhY3RvcnkoXG4gICAgICAgICAgKHsgY2hpbGRyZW4gfSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIDxkaXYgey4uLnByb3BzQ29udGFpbmVyfT57Y2hpbGRyZW59PC9kaXY+O1xuICAgICAgICAgIH0sXG4gICAgICAgICAga2V5LFxuICAgICAgICAgIHByb3BzQ29udGFpbmVyLFxuICAgICAgICAgIGluc2VydGVkQXRcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAuLi5zY3JlZW5zQmVmb3JlQ2hhbmdpbmdTdGVwLnNsaWNlKDAsIGxhc3RJbmRleCksXG4gICAgICAgICAgbGFzdFdyYXBwZXIgfHxcbiAgICAgICAgICAgIENoaWxkcmVuV3JhcHBlckZhY3RvcnkoXG4gICAgICAgICAgICAgICgpID0+IDxSZWFjdC5GcmFnbWVudCAvPixcbiAgICAgICAgICAgICAgXCJmYWxsYmFja1wiLFxuICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgaW5zZXJ0ZWRBdFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICBuZXdXcmFwcGVyLFxuICAgICAgICBdO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBwcmV2U3RlcC5jdXJyZW50ID0gc3RlcDtcbiAgICB9O1xuICB9LCBbc3RlcF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKGNoaWxkcmVuV3JhcHBlcnMubGVuZ3RoID09PSAxICYmIGxvY2tUcmFuc2l0aW9uV2lkdGgpXG4gICAgICBjb250YWluZXJSZWYuY3VycmVudCEuc3R5bGUud2lkdGggPSBcIlwiO1xuICAgIGlmIChjaGlsZHJlbldyYXBwZXJzLmxlbmd0aCA9PT0gMSAmJiBsb2NrVHJhbnNpdGlvbkhlaWdodClcbiAgICAgIGNvbnRhaW5lclJlZi5jdXJyZW50IS5zdHlsZS5oZWlnaHQgPSBcIlwiO1xuICB9LCBbY2hpbGRyZW5XcmFwcGVycy5sZW5ndGggIT09IDFdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmIChcbiAgICAgIHByb3BzLnRyYW5zaXRpb25UeXBlID09PSBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuUE9QX0ZST01fRUxFTUVOVF9JRCAmJlxuICAgICAgXCJlbGVtZW50SWRcIiBpbiBwcm9wc1xuICAgICkge1xuICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgIGAjJHtwcm9wcy5lbGVtZW50SWR9YFxuICAgICAgKSBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgeyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0IH0gPSBjb250YWluZXJSZWYuY3VycmVudCE7XG5cbiAgICAgICAgY29uc3Qgb2Zmc2V0WCA9XG4gICAgICAgICAgZWxlbWVudC5jbGllbnRMZWZ0ICsgZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5jbGllbnRXaWR0aCAvIDI7XG4gICAgICAgIGNvbnN0IG9mZnNldFkgPVxuICAgICAgICAgIGVsZW1lbnQuY2xpZW50VG9wICsgZWxlbWVudC5vZmZzZXRUb3AgKyBlbGVtZW50LmNsaWVudEhlaWdodCAvIDI7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRYID0gKG9mZnNldFggKiAxMDApIC8gY2xpZW50V2lkdGg7XG4gICAgICAgIGNvbnN0IHBlcmNlbnRZID0gKG9mZnNldFkgKiAxMDApIC8gY2xpZW50SGVpZ2h0O1xuICAgICAgICBwcmVUcmFuc2l0aW9uRGV0YWlscy5jdXJyZW50LnRyYW5zZm9ybU9yaWdpbiA9IGAke3BlcmNlbnRYfSUgJHtwZXJjZW50WX0lYDtcblxuICAgICAgICBPYmplY3QuYXNzaWduKGNvbnRhaW5lclJlZi5jdXJyZW50IS5zdHlsZSwge1xuICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbjogYCR7cGVyY2VudFh9JSAke3BlcmNlbnRZfSVgLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgT2JqZWN0LmFzc2lnbihjb250YWluZXJSZWYuY3VycmVudCEuc3R5bGUsIHByZVRyYW5zaXRpb25EZXRhaWxzLmN1cnJlbnQpO1xuICAgIH1cblxuICAgIGlmIChjaGlsZHJlbldyYXBwZXJzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgY29udGFpbmVyUmVmLmN1cnJlbnQhLnN0eWxlLm92ZXJmbG93ID0gXCJcIjtcbiAgICB9XG4gIH0sIFtjaGlsZHJlbldyYXBwZXJzLmxlbmd0aF0pO1xuXG4gIGNvbnN0IHByb3BzVG9TcHJlYWQgPSB7IC4uLnByb3BzIH0gYXMgYW55O1xuICBkZWxldGUgcHJvcHNUb1NwcmVhZC50cmFuc2l0aW9uVHlwZTtcbiAgZGVsZXRlIHByb3BzVG9TcHJlYWQuY29uZmlnO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxzZWN0aW9uXG4gICAgICAgIHsuLi5wcm9wc1RvU3ByZWFkfVxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIGN1cnJlbnRUYXJnZXQ6IHsgb2Zmc2V0VG9wLCBvZmZzZXRMZWZ0LCBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0IH0sXG4gICAgICAgICAgICBjbGllbnRYLFxuICAgICAgICAgICAgY2xpZW50WSxcbiAgICAgICAgICB9ID0gZTtcbiAgICAgICAgICBjb25zdCBvZmZzZXRYID0gY2xpZW50WCAtIG9mZnNldExlZnQ7XG4gICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IGNsaWVudFkgLSBvZmZzZXRUb3A7XG4gICAgICAgICAgY29uc3QgcGVyY2VudFggPSAob2Zmc2V0WCAqIDEwMCkgLyBjbGllbnRXaWR0aDtcbiAgICAgICAgICBjb25zdCBwZXJjZW50WSA9IChvZmZzZXRZICogMTAwKSAvIGNsaWVudEhlaWdodDtcblxuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHByb3BzLnRyYW5zaXRpb25UeXBlID09PVxuICAgICAgICAgICAgICBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMuUE9QX0ZST01fRUxFTUVOVF9JRCB8fFxuICAgICAgICAgICAgcHJvcHMudHJhbnNpdGlvblR5cGUgPT09XG4gICAgICAgICAgICAgIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcy5QT1BfRlJPTV9DTElDS19PUklHSU5cbiAgICAgICAgICApXG4gICAgICAgICAgICBwcmVUcmFuc2l0aW9uRGV0YWlscy5jdXJyZW50LnRyYW5zZm9ybU9yaWdpbiA9IGAke3BlcmNlbnRYfSUgJHtwZXJjZW50WX0lYDtcbiAgICAgICAgICBpZiAocHJvcHMub25DbGljaykgcHJvcHMub25DbGljayhlIGFzIGFueSk7XG4gICAgICAgIH19XG4gICAgICAgIGRhdGEtdGVzdGlkPVwidHJhbnNpdGlvbi1jb250cm9sbGVyXCJcbiAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgIGNsYXNzTmFtZT17YCR7U3R5bGVzLnNlY3Rpb259ICR7Y2xhc3NOYW1lfWB9XG4gICAgICA+XG4gICAgICAgIHsoY2hpbGRyZW5XcmFwcGVycyBhcyBDaGlsZHJlbldyYXBwZXJbXSkubWFwKChXcmFwcGVyKSA9PiB7XG4gICAgICAgICAgY29uc3QgY2hpbGRUb1JlbmRlciA9IGNoaWxkcmVuLmZpbmQoXG4gICAgICAgICAgICAoYSwgaSkgPT4gKGE/LmtleSB8fCBpKSA9PT0gV3JhcHBlcj8uYXNzb2NpYXRlZEtleVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxXcmFwcGVyIGtleT17YCR7V3JhcHBlciEuYXNzb2NpYXRlZEtleX0gJHtXcmFwcGVyLmNyZWF0ZWRBdH1gfT5cbiAgICAgICAgICAgICAgPD57Y2hpbGRUb1JlbmRlcn08Lz5cbiAgICAgICAgICAgIDwvV3JhcHBlcj5cbiAgICAgICAgICApO1xuICAgICAgICB9KX1cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8Lz5cbiAgKTtcbn1cblxuZXhwb3J0IGVudW0gVHJhbnNpdGlvbkFuaW1hdGlvblR5cGVzIHtcbiAgU0xJREUsXG4gIFBPUF9GUk9NX0NMSUNLX09SSUdJTixcbiAgUE9QX0ZST01fRUxFTUVOVF9JRCxcbiAgRkFERSxcbiAgQ09JTl9GTElQLFxuICBNQVNLLFxuICBDVVNUT00sXG59XG5cbi8qKlxuICogSGFuZGxlcyB0aGUgdHJhbnNpdGlvbiBiZXR3ZWVuIG11bHRpcGxlIGNoaWxkcmVuIGFuZCByZWN5Y2xpbmcgb2YgZWxlbWVudHNcbiAqKi9cbmNvbnN0IFRyYW5zaXRpb24gPSBmb3J3YXJkUmVmKF9UcmFuc2l0aW9uKTtcbmV4cG9ydCBkZWZhdWx0IFRyYW5zaXRpb247XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQWVBLElBQUFD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
|
|
@@ -16,6 +16,5 @@ Object.defineProperty(exports, "default", {
|
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
var _Transition = _interopRequireWildcard(require("./Transition"));
|
|
19
|
-
function
|
|
20
|
-
|
|
21
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHJhbnNpdGlvbiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9UcmFuc2l0aW9uL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0LCBUcmFuc2l0aW9uQW5pbWF0aW9uVHlwZXMgfSBmcm9tIFwiLi9UcmFuc2l0aW9uXCI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQWlFLFNBQUFDLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFILHdCQUFBTyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVgsR0FBQSxRQUFBVyxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFkLEdBQUEsRUFBQVcsR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVYsR0FBQSxFQUFBVyxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFYLEdBQUEsQ0FBQVcsR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUYsR0FBQSxNQUFBRyxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBaEIsR0FBQSxFQUFBTSxNQUFBLFlBQUFBLE1BQUEifQ==
|
|
19
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVHJhbnNpdGlvbiIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImRlZmF1bHQiLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL1RyYW5zaXRpb24vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQsIFRyYW5zaXRpb25BbmltYXRpb25UeXBlcyB9IGZyb20gXCIuL1RyYW5zaXRpb25cIjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFBaUUsU0FBQUQsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxNQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFKLHVCQUFBLFlBQUFBLENBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxRQUFBQyxPQUFBLEVBQUFWLENBQUEsaUJBQUFBLENBQUEsdUJBQUFBLENBQUEseUJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsZ0JBQUFQLENBQUEsSUFBQUQsQ0FBQSxnQkFBQUMsQ0FBQSxPQUFBYSxjQUFBLENBQUFDLElBQUEsQ0FBQWYsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsSUFBQUQsQ0FBQSxHQUFBVSxNQUFBLENBQUFDLGNBQUEsS0FBQUQsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbEIsQ0FBQSxFQUFBQyxDQUFBLE9BQUFNLENBQUEsQ0FBQUssR0FBQSxJQUFBTCxDQUFBLENBQUFNLEdBQUEsSUFBQVAsQ0FBQSxDQUFBRSxDQUFBLEVBQUFQLENBQUEsRUFBQU0sQ0FBQSxJQUFBQyxDQUFBLENBQUFQLENBQUEsSUFBQUQsQ0FBQSxDQUFBQyxDQUFBLFdBQUFPLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBIiwiaWdub3JlTGlzdCI6W119
|