@1money/component-ui 0.0.99 → 0.0.100
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/business/Dialog/VerificationDialog/VerificationDialog.js +38 -39
- package/es/business/Dialog/variants/LoadingDialog.js +17 -17
- package/es/business/Filter/DateRange/DateRange.js +14 -14
- package/es/business/Select/Country/CountrySelect.js +71 -40
- package/es/business/Select/Country/interface.d.ts +31 -15
- package/es/business/Select/Country/style/CountrySelect.css +33 -0
- package/es/business/Select/Country/style/css.js +2 -0
- package/es/business/Select/Country/style/index.d.ts +1 -0
- package/es/business/Select/Country/style/index.js +2 -0
- package/es/business/shared/formCore/useSubmitAction.js +19 -19
- package/es/components/Icons/Illustrations.js +15 -15
- package/es/components/Notification/NotificationStatic.js +27 -32
- package/es/components/ProForm/ProForm.js +47 -51
- package/es/components/ProForm/Submitter.js +8 -8
- package/es/components/ProForm/core/hooks/useForm.js +77 -88
- package/es/components/ProForm/core/runRules.js +56 -61
- package/es/components/ProForm/hooks/useFieldRequest.js +19 -19
- package/es/components/ProForm/layouts/useOverlayForm.js +9 -11
- package/es/components/ProTable/ProTable.js +8 -8
- package/es/components/ProTable/useFetchData.js +23 -23
- package/es/components/Select/SelectOptionContent.js +8 -1
- package/es/components/Select/interface.d.ts +9 -0
- package/es/components/Select/interface.js +1 -1
- package/es/components/Select/style/Select.css +7 -0
- package/es/components/Spinner/Spinner.js +11 -11
- package/es/components/Table/internal/kernel/Table.js +8 -8
- package/es/index.css +1 -1
- package/lib/business/Dialog/BaseDialog/BaseDialog.js +2 -3
- package/lib/business/Dialog/Descriptions/Descriptions.js +2 -3
- package/lib/business/Dialog/DetailsDialog/DetailsDialog.js +2 -3
- package/lib/business/Dialog/FormDialog/FormDialog.js +2 -3
- package/lib/business/Dialog/VerificationDialog/VerificationDialog.js +39 -41
- package/lib/business/Dialog/variants/LoadingDialog.js +18 -19
- package/lib/business/FieldList/index.js +2 -3
- package/lib/business/Filter/DateRange/DateRange.js +14 -14
- package/lib/business/Select/Country/CountrySelect.js +71 -40
- package/lib/business/Select/Country/interface.d.ts +31 -15
- package/lib/business/Select/Country/style/CountrySelect.css +33 -0
- package/lib/business/Select/Country/style/css.js +4 -0
- package/lib/business/Select/Country/style/index.d.ts +1 -0
- package/lib/business/Select/Country/style/index.js +4 -0
- package/lib/business/shared/formCore/useSubmitAction.js +19 -19
- package/lib/components/Accordion/Accordion.js +2 -3
- package/lib/components/Accordion/index.js +2 -3
- package/lib/components/ActionBar/ActionBar.js +2 -3
- package/lib/components/Alert/Alert.js +2 -3
- package/lib/components/Alert/index.js +2 -3
- package/lib/components/Button/Button.js +2 -3
- package/lib/components/Button/index.js +2 -3
- package/lib/components/Calendar/Calendar.js +2 -3
- package/lib/components/Calendar/index.js +2 -3
- package/lib/components/Carousel/Carousel.js +2 -3
- package/lib/components/Carousel/index.js +2 -3
- package/lib/components/Cell/Cell.js +2 -3
- package/lib/components/Cell/index.js +2 -3
- package/lib/components/Checkbox/BaseCheckbox.js +2 -3
- package/lib/components/Checkbox/Checkbox.js +2 -3
- package/lib/components/Checkbox/CheckboxGroup.js +2 -3
- package/lib/components/Checkbox/index.js +2 -3
- package/lib/components/CoachMark/CoachMark.js +2 -3
- package/lib/components/CoachMark/index.js +2 -3
- package/lib/components/Copy/Clipboard.js +2 -3
- package/lib/components/Copy/Copy.js +2 -3
- package/lib/components/Copy/index.js +2 -3
- package/lib/components/Dialog/index.js +2 -3
- package/lib/components/Divider/Divider.js +2 -3
- package/lib/components/Drawer/Drawer.js +2 -3
- package/lib/components/Empty/Empty.js +2 -3
- package/lib/components/Empty/index.js +2 -3
- package/lib/components/Flex/Flex.js +2 -3
- package/lib/components/FormLayout/FormLayout.js +2 -3
- package/lib/components/Grid/Col.js +2 -3
- package/lib/components/Grid/Row.js +2 -3
- package/lib/components/Icons/Illustrations.js +15 -15
- package/lib/components/Icons/Logo.js +2 -3
- package/lib/components/Icons/Wrapper.js +2 -3
- package/lib/components/Icons/index.js +2 -3
- package/lib/components/Input/Amount/Amount.js +2 -3
- package/lib/components/Input/Amount/index.js +2 -3
- package/lib/components/Input/FieldShell/FieldShell.js +2 -3
- package/lib/components/Input/FieldShell/index.js +2 -3
- package/lib/components/Input/Input/Input.js +2 -3
- package/lib/components/Input/Input/index.js +2 -3
- package/lib/components/Input/Mask/Mask.js +2 -3
- package/lib/components/Input/Mask/index.js +2 -3
- package/lib/components/Input/OTP/index.js +2 -3
- package/lib/components/Input/Password/Password.js +2 -3
- package/lib/components/Input/Password/index.js +2 -3
- package/lib/components/Input/Search/Search.js +2 -3
- package/lib/components/Input/Search/index.js +2 -3
- package/lib/components/Input/TextArea/TextArea.js +2 -3
- package/lib/components/Input/TextArea/index.js +2 -3
- package/lib/components/Input/Trade/Trade.js +2 -3
- package/lib/components/Input/Trade/index.js +2 -3
- package/lib/components/Input/index.js +2 -3
- package/lib/components/Link/Link.js +2 -3
- package/lib/components/Link/index.js +2 -3
- package/lib/components/Navigation/Nav.js +2 -3
- package/lib/components/Navigation/Navigation.js +2 -3
- package/lib/components/Navigation/NavigationStepper.js +2 -3
- package/lib/components/Navigation/index.js +2 -3
- package/lib/components/Notification/Notification.js +2 -3
- package/lib/components/Notification/NotificationStatic.js +28 -34
- package/lib/components/Notification/index.js +2 -3
- package/lib/components/Pagination/Pagination.js +2 -3
- package/lib/components/Pagination/index.js +2 -3
- package/lib/components/PanelLayout/PanelLayout.js +2 -3
- package/lib/components/Popconfirm/Popconfirm.js +2 -3
- package/lib/components/Popconfirm/index.js +2 -3
- package/lib/components/Portal/index.js +2 -3
- package/lib/components/ProForm/ProForm.js +48 -53
- package/lib/components/ProForm/ProFormDependency.js +2 -3
- package/lib/components/ProForm/ProFormItem.js +2 -3
- package/lib/components/ProForm/Submitter.js +8 -8
- package/lib/components/ProForm/core/devWarning.js +2 -3
- package/lib/components/ProForm/core/hooks/useForm.js +78 -90
- package/lib/components/ProForm/core/runRules.js +56 -61
- package/lib/components/ProForm/core/useFormItem.js +2 -3
- package/lib/components/ProForm/fields/ProFormFieldSet.js +2 -3
- package/lib/components/ProForm/hooks/useFieldRequest.js +19 -19
- package/lib/components/ProForm/layouts/QueryFilter.js +2 -3
- package/lib/components/ProForm/layouts/useOverlayForm.js +10 -13
- package/lib/components/ProTable/ProTable.js +8 -8
- package/lib/components/ProTable/index.js +2 -3
- package/lib/components/ProTable/useFetchData.js +23 -23
- package/lib/components/Progress/Progress.js +2 -3
- package/lib/components/Progress/index.js +2 -3
- package/lib/components/Radio/Radio.js +2 -3
- package/lib/components/Radio/RadioGroup.js +2 -3
- package/lib/components/Radio/index.js +2 -3
- package/lib/components/ResizeObserver/Collection.js +2 -3
- package/lib/components/ResizeObserver/ResizeObserver.js +2 -3
- package/lib/components/ResizeObserver/SingleObserver/index.js +2 -3
- package/lib/components/ResizeObserver/useResizeObserver.js +2 -3
- package/lib/components/ResizeObserver/utils/reactUtil.js +2 -3
- package/lib/components/Segment/Segment.js +2 -3
- package/lib/components/Segment/index.js +2 -3
- package/lib/components/Select/Select.js +2 -3
- package/lib/components/Select/SelectCustom.js +2 -3
- package/lib/components/Select/SelectOptionContent.js +8 -1
- package/lib/components/Select/interface.d.ts +9 -0
- package/lib/components/Select/interface.js +1 -1
- package/lib/components/Select/style/Select.css +7 -0
- package/lib/components/Skeleton/Skeleton.js +2 -3
- package/lib/components/Skeleton/index.js +2 -3
- package/lib/components/Slider/Slider.js +2 -3
- package/lib/components/Slider/index.js +2 -3
- package/lib/components/Space/Space.js +2 -3
- package/lib/components/Spinner/Spinner.js +12 -13
- package/lib/components/Spinner/index.js +2 -3
- package/lib/components/Step/Step.js +2 -3
- package/lib/components/Step/index.js +2 -3
- package/lib/components/Switch/Switch.js +2 -3
- package/lib/components/Switch/index.js +2 -3
- package/lib/components/Table/core/useTableSetup.js +2 -3
- package/lib/components/Table/internal/index.js +2 -3
- package/lib/components/Table/internal/kernel/Body/BodyRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/ExpandedRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/MeasureCell.js +2 -3
- package/lib/components/Table/internal/kernel/Body/MeasureRow.js +2 -3
- package/lib/components/Table/internal/kernel/Body/index.js +2 -3
- package/lib/components/Table/internal/kernel/Cell/index.js +2 -3
- package/lib/components/Table/internal/kernel/Cell/useCellRender.js +2 -3
- package/lib/components/Table/internal/kernel/ColGroup.js +2 -3
- package/lib/components/Table/internal/kernel/FixedHolder/index.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/Cell.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/Row.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/SummaryContext.js +2 -3
- package/lib/components/Table/internal/kernel/Footer/index.js +2 -3
- package/lib/components/Table/internal/kernel/Header/Header.js +2 -3
- package/lib/components/Table/internal/kernel/Header/HeaderRow.js +2 -3
- package/lib/components/Table/internal/kernel/Panel/index.js +2 -3
- package/lib/components/Table/internal/kernel/Table.js +9 -10
- package/lib/components/Table/internal/kernel/VirtualTable/BodyGrid.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/BodyLine.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/VirtualCell.js +2 -3
- package/lib/components/Table/internal/kernel/VirtualTable/index.js +2 -3
- package/lib/components/Table/internal/kernel/context/PerfContext.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useColumns/index.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useColumns/useWidthColumns.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useExpand.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useFixedInfo.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useFlattenRecords.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useHover.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useRenderTimes.js +2 -3
- package/lib/components/Table/internal/kernel/hooks/useSticky.js +2 -3
- package/lib/components/Table/internal/kernel/index.js +2 -3
- package/lib/components/Table/internal/kernel/selector-context/Immutable.js +2 -3
- package/lib/components/Table/internal/kernel/selector-context/context.js +2 -3
- package/lib/components/Table/internal/kernel/stickyScrollBar.js +2 -3
- package/lib/components/Table/internal/kernel/utils/expandUtil.js +2 -3
- package/lib/components/Table/internal/kernel/utils/useMemo.js +2 -3
- package/lib/components/Tabs/Tabs.js +2 -3
- package/lib/components/Tabs/index.js +2 -3
- package/lib/components/Tag/Tag.js +2 -3
- package/lib/components/Tag/index.js +2 -3
- package/lib/components/Tooltip/Tooltip.js +2 -3
- package/lib/components/Tooltip/index.js +2 -3
- package/lib/components/Tour/index.js +2 -3
- package/lib/components/Trigger/Trigger.js +2 -3
- package/lib/components/Typography/index.js +2 -3
- package/lib/components/Typography/utils.js +2 -3
- package/lib/components/Upload/Upload.js +2 -3
- package/lib/components/Upload/UploadFileBar.js +2 -3
- package/lib/components/Upload/index.js +2 -3
- package/lib/components/VirtualList/Filler.js +2 -3
- package/lib/components/VirtualList/Item.js +2 -3
- package/lib/components/VirtualList/ScrollBar.js +2 -3
- package/lib/components/VirtualList/VirtualList.js +2 -3
- package/lib/components/VirtualList/hooks/useChildren.js +2 -3
- package/lib/components/VirtualList/hooks/useDiffItem.js +2 -3
- package/lib/components/VirtualList/hooks/useGetSize.js +2 -3
- package/lib/components/VirtualList/hooks/useHeights.js +2 -3
- package/lib/components/VirtualList/hooks/useScrollDrag.js +2 -3
- package/lib/components/VirtualList/hooks/useScrollTo.js +2 -3
- package/lib/index.css +1 -1
- package/lib/stories/docs/ComponentDocsPage.js +2 -3
- package/package.json +23 -17
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
3
|
-
|
|
3
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
4
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
4
5
|
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
5
6
|
function adopt(value) {
|
|
6
7
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -203,54 +204,54 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
203
204
|
// Re-entry guard: a second submit while one is in flight is ignored (the
|
|
204
205
|
// ref catches two calls in the same tick).
|
|
205
206
|
var wrappedHandleSubmit = useEventCallback(function (e) {
|
|
206
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/
|
|
207
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
|
|
207
208
|
var _a, _b, _c, epoch, validatedValues, pipelined, result, _t;
|
|
208
|
-
return
|
|
209
|
-
while (1) switch (_context.
|
|
209
|
+
return _regenerator().w(function (_context) {
|
|
210
|
+
while (1) switch (_context.p = _context.n) {
|
|
210
211
|
case 0:
|
|
211
212
|
e === null || e === void 0 ? void 0 : e.preventDefault();
|
|
212
213
|
if (!submittingRef.current) {
|
|
213
|
-
_context.
|
|
214
|
+
_context.n = 1;
|
|
214
215
|
break;
|
|
215
216
|
}
|
|
216
|
-
return _context.
|
|
217
|
+
return _context.a(2);
|
|
217
218
|
case 1:
|
|
218
219
|
submittingRef.current = true;
|
|
219
220
|
setSubmitting(true);
|
|
220
221
|
(_a = onLoadingChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onLoadingChangeRef, true);
|
|
221
222
|
epoch = resetEpochRef.current;
|
|
222
|
-
_context.
|
|
223
|
-
_context.
|
|
223
|
+
_context.p = 2;
|
|
224
|
+
_context.n = 3;
|
|
224
225
|
return formInstance.validateFields();
|
|
225
226
|
case 3:
|
|
226
|
-
validatedValues = _context.
|
|
227
|
+
validatedValues = _context.v;
|
|
227
228
|
if (!(epoch !== resetEpochRef.current)) {
|
|
228
|
-
_context.
|
|
229
|
+
_context.n = 4;
|
|
229
230
|
break;
|
|
230
231
|
}
|
|
231
|
-
return _context.
|
|
232
|
+
return _context.a(2);
|
|
232
233
|
case 4:
|
|
233
234
|
pipelined = applyPipeline(validatedValues);
|
|
234
|
-
_context.
|
|
235
|
+
_context.n = 5;
|
|
235
236
|
return (_b = onFinishRef.current) === null || _b === void 0 ? void 0 : _b.call(onFinishRef, pipelined);
|
|
236
237
|
case 5:
|
|
237
|
-
result = _context.
|
|
238
|
+
result = _context.v;
|
|
238
239
|
// Sync the URL unless onFinish explicitly returned false (a throw above
|
|
239
240
|
// also skips — a failed submit must not pollute the URL), and only if
|
|
240
241
|
// the user did NOT reset the form while the submit was in flight.
|
|
241
242
|
if (result !== false && epoch === resetEpochRef.current) {
|
|
242
243
|
onUrlSyncFinish(pipelined);
|
|
243
244
|
}
|
|
244
|
-
_context.
|
|
245
|
+
_context.n = 8;
|
|
245
246
|
break;
|
|
246
247
|
case 6:
|
|
247
|
-
_context.
|
|
248
|
-
_t = _context
|
|
248
|
+
_context.p = 6;
|
|
249
|
+
_t = _context.v;
|
|
249
250
|
if (!(epoch !== resetEpochRef.current)) {
|
|
250
|
-
_context.
|
|
251
|
+
_context.n = 7;
|
|
251
252
|
break;
|
|
252
253
|
}
|
|
253
|
-
return _context.
|
|
254
|
+
return _context.a(2);
|
|
254
255
|
case 7:
|
|
255
256
|
// Only a VALIDATION failure routes to onFinishFailed. An exception out
|
|
256
257
|
// of the consumer's own onFinish is not a validation result: the submit
|
|
@@ -265,14 +266,13 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
265
266
|
console.error('[ProForm] onFinish threw during submit:', _t);
|
|
266
267
|
}
|
|
267
268
|
case 8:
|
|
268
|
-
_context.
|
|
269
|
+
_context.p = 8;
|
|
269
270
|
submittingRef.current = false;
|
|
270
271
|
setSubmitting(false);
|
|
271
272
|
(_c = onLoadingChangeRef.current) === null || _c === void 0 ? void 0 : _c.call(onLoadingChangeRef, false);
|
|
272
|
-
return _context.
|
|
273
|
+
return _context.f(8);
|
|
273
274
|
case 9:
|
|
274
|
-
|
|
275
|
-
return _context.stop();
|
|
275
|
+
return _context.a(2);
|
|
276
276
|
}
|
|
277
277
|
}, _callee, null, [[2, 6, 8, 9]]);
|
|
278
278
|
}));
|
|
@@ -294,33 +294,30 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
294
294
|
return setNestedValue({}, name, resolveValue(formatted, name));
|
|
295
295
|
},
|
|
296
296
|
validateFieldsReturnFormatValue: function validateFieldsReturnFormatValue() {
|
|
297
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/
|
|
297
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee2() {
|
|
298
298
|
var vals, errors, _t2;
|
|
299
|
-
return
|
|
300
|
-
while (1) switch (_context2.
|
|
299
|
+
return _regenerator().w(function (_context2) {
|
|
300
|
+
while (1) switch (_context2.p = _context2.n) {
|
|
301
301
|
case 0:
|
|
302
|
-
_context2.
|
|
303
|
-
_context2.
|
|
302
|
+
_context2.p = 0;
|
|
303
|
+
_context2.n = 1;
|
|
304
304
|
return formInstance.validateFields();
|
|
305
305
|
case 1:
|
|
306
|
-
vals = _context2.
|
|
307
|
-
return _context2.
|
|
306
|
+
vals = _context2.v;
|
|
307
|
+
return _context2.a(2, {
|
|
308
308
|
success: true,
|
|
309
309
|
values: applyPipeline(vals)
|
|
310
310
|
});
|
|
311
311
|
case 2:
|
|
312
|
-
_context2.
|
|
313
|
-
_t2 = _context2
|
|
312
|
+
_context2.p = 2;
|
|
313
|
+
_t2 = _context2.v;
|
|
314
314
|
// validateFields rejects with an Error carrying the field errors map
|
|
315
315
|
// (same shape wrappedHandleSubmit consumes above).
|
|
316
316
|
errors = _t2.errors;
|
|
317
|
-
return _context2.
|
|
317
|
+
return _context2.a(2, {
|
|
318
318
|
success: false,
|
|
319
319
|
errors: errors !== null && errors !== void 0 ? errors : {}
|
|
320
320
|
});
|
|
321
|
-
case 3:
|
|
322
|
-
case "end":
|
|
323
|
-
return _context2.stop();
|
|
324
321
|
}
|
|
325
322
|
}, _callee2, null, [[0, 2]]);
|
|
326
323
|
}));
|
|
@@ -362,32 +359,32 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
362
359
|
// a newer request already (or will) set.
|
|
363
360
|
var stale = false;
|
|
364
361
|
var fetchData = function fetchData() {
|
|
365
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/
|
|
362
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee3() {
|
|
366
363
|
var requestFn, data, _t3;
|
|
367
|
-
return
|
|
368
|
-
while (1) switch (_context3.
|
|
364
|
+
return _regenerator().w(function (_context3) {
|
|
365
|
+
while (1) switch (_context3.p = _context3.n) {
|
|
369
366
|
case 0:
|
|
370
367
|
requestFn = requestRef.current;
|
|
371
368
|
if (requestFn) {
|
|
372
|
-
_context3.
|
|
369
|
+
_context3.n = 1;
|
|
373
370
|
break;
|
|
374
371
|
}
|
|
375
|
-
return _context3.
|
|
372
|
+
return _context3.a(2);
|
|
376
373
|
case 1:
|
|
377
374
|
setRequestLoading(true);
|
|
378
|
-
_context3.
|
|
379
|
-
_context3.
|
|
375
|
+
_context3.p = 2;
|
|
376
|
+
_context3.n = 3;
|
|
380
377
|
return requestFn(params);
|
|
381
378
|
case 3:
|
|
382
|
-
data = _context3.
|
|
379
|
+
data = _context3.v;
|
|
383
380
|
if (!stale && data && _typeof(data) === 'object') {
|
|
384
381
|
formInstance.setFieldsValue(data);
|
|
385
382
|
}
|
|
386
|
-
_context3.
|
|
383
|
+
_context3.n = 5;
|
|
387
384
|
break;
|
|
388
385
|
case 4:
|
|
389
|
-
_context3.
|
|
390
|
-
_t3 = _context3
|
|
386
|
+
_context3.p = 4;
|
|
387
|
+
_t3 = _context3.v;
|
|
391
388
|
// A failed request must not escape as an unhandled rejection — the
|
|
392
389
|
// form keeps its initialValues and the failure is surfaced on the
|
|
393
390
|
// console (mirrors the field-level useFieldRequest handling).
|
|
@@ -395,17 +392,16 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
395
392
|
console.error('[ProForm] request failed:', _t3);
|
|
396
393
|
}
|
|
397
394
|
case 5:
|
|
398
|
-
_context3.
|
|
395
|
+
_context3.p = 5;
|
|
399
396
|
if (!stale) {
|
|
400
397
|
setRequestLoading(false);
|
|
401
398
|
// Only a NON-superseded settle initializes the form: a stale
|
|
402
399
|
// request's data was discarded, so its values must not be reported.
|
|
403
400
|
fireInit();
|
|
404
401
|
}
|
|
405
|
-
return _context3.
|
|
402
|
+
return _context3.f(5);
|
|
406
403
|
case 6:
|
|
407
|
-
|
|
408
|
-
return _context3.stop();
|
|
404
|
+
return _context3.a(2);
|
|
409
405
|
}
|
|
410
406
|
}, _callee3, null, [[2, 4, 5, 6]]);
|
|
411
407
|
}));
|
|
@@ -511,4 +507,4 @@ var ProFormBase = function ProFormBase(props) {
|
|
|
511
507
|
ProFormBase.displayName = 'ProForm';
|
|
512
508
|
export var ProForm = /*#__PURE__*/memo(ProFormBase);
|
|
513
509
|
export default ProForm;
|
|
514
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwiZSIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsIl9fcmVzdCIsInMiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJGb3JtQ29udHJvbFNpemVDb250ZXh0IiwiUm93IiwidXNlRm9ybSIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiUHJvRm9ybVN0YXRlQ29udGV4dCIsIlN1Ym1pdHRlciIsIkNTU19QUkVGSVgiLCJERUZBVUxUX0NPTF9TUEFOIiwic3RhYmxlU2VyaWFsaXplIiwidHJhbnNmb3JtU3VibWl0VmFsdWVzIiwib21pdE5pbFZhbHVlcyIsImZvcm1hdERhdGVWYWx1ZXMiLCJ1c2VTaGFsbG93U3RhYmxlIiwidXNlVXJsU3luYyIsInJlc29sdmVWYWx1ZSIsInNldE5lc3RlZFZhbHVlIiwiRm9ybVZhbGlkYXRpb25FcnJvciIsImNsYXNzZXMiLCJmb3JtQ2xhc3NlcyIsIkRFRkFVTFRfQ09MX1BST1BTIiwic3BhbiIsIlByb0Zvcm1CYXNlIiwicHJvcHMiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN1Ym1pdHRlciIsIl9wcm9wcyRtb2RlIiwibW9kZSIsIl9wcm9wcyRncmlkIiwiZ3JpZCIsImNvbFByb3BzIiwicm93UHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJyZXF1ZXN0IiwicGFyYW1zIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJvbkluaXQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJzeW5jVG9VcmwiLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImV4dHJhVXJsUGFyYW1zIiwiX3Byb3BzJGF1dG9Gb2N1c0ZpcnN0IiwiYXV0b0ZvY3VzRmlyc3RJbnB1dCIsImZvcm1Db21wb25lbnRUeXBlIiwiZm9ybVJlZiIsIl9wcm9wcyRvbWl0TmlsIiwib21pdE5pbCIsIl9wcm9wcyRkYXRlRm9ybWF0dGVyIiwiZGF0ZUZvcm1hdHRlciIsImZpZWxkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibGF5b3V0IiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdmFsaWRhdGVUcmlnZ2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsIl91c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwicmVxdWVzdExvYWRpbmciLCJzZXRSZXF1ZXN0TG9hZGluZyIsIl91c2VTYWZlU3RhdGUzIiwiX3VzZVNhZmVTdGF0ZTQiLCJzdWJtaXR0aW5nIiwic2V0U3VibWl0dGluZyIsInN1Ym1pdHRpbmdSZWYiLCJpc0xvYWRpbmciLCJ0cmFuc2Zvcm1LZXlSZWYiLCJ2YWx1ZVR5cGVSZWYiLCJyZWdpc3RlclRyYW5zZm9ybSIsIm5hbWUiLCJmbiIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwidW5kZWZpbmVkIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ2YWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwib25GaW5pc2hSZWYiLCJvbkluaXRSZWYiLCJvbkxvYWRpbmdDaGFuZ2VSZWYiLCJhcHBseVBpcGVsaW5lIiwidmFsdWVzIiwiZm9ybWF0VmFsdWVzS2VlcE5pbCIsIl91c2VVcmxTeW5jIiwidXJsSW5pdGlhbFZhbHVlcyIsIm9uVXJsU3luY0ZpbmlzaCIsIm9uVXJsU3luY1Jlc2V0IiwibWVyZ2VkSW5pdGlhbFZhbHVlc1JlZiIsImFzc2lnbiIsIm1lcmdlZEluaXRpYWxWYWx1ZXMiLCJyZXNldEVwb2NoUmVmIiwiZmlyZUZvcm1SZXNldCIsImZpbmFsVmFsdWVzIiwiZm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzVmFsdWUiLCJfdXNlRm9ybSIsImludGVybmFscyIsInN0b3JlIiwid3JhcHBlZEhhbmRsZVN1Ym1pdCIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJtYXJrIiwiX2NhbGxlZSIsIl9hIiwiX2IiLCJfYyIsImVwb2NoIiwidmFsaWRhdGVkVmFsdWVzIiwicGlwZWxpbmVkIiwiX3QiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwicHJldmVudERlZmF1bHQiLCJhYnJ1cHQiLCJ2YWxpZGF0ZUZpZWxkcyIsInNlbnQiLCJlcnJvcnMiLCJjb25zb2xlIiwiZXJyb3IiLCJmaW5pc2giLCJzdG9wIiwicHJvRm9ybUZvcm1JbnN0YW5jZSIsImdldEZpZWxkc0Zvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZSIsImdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3QiLCJmb3JtYXR0ZWQiLCJ2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlIiwiX2NhbGxlZTIiLCJ2YWxzIiwiX3QyIiwiX2NvbnRleHQyIiwic3VjY2VzcyIsInN1Ym1pdEZvcm0iLCJyZXF1ZXN0UmVmIiwiaGFzUmVxdWVzdCIsInNlcmlhbGl6ZWRQYXJhbXMiLCJpbml0RmlyZWRSZWYiLCJmaXJlSW5pdCIsInN0YWxlIiwiZmV0Y2hEYXRhIiwiX2NhbGxlZTMiLCJyZXF1ZXN0Rm4iLCJkYXRhIiwiX3QzIiwiX2NvbnRleHQzIiwiX3R5cGVvZiIsInNldEZpZWxkc1ZhbHVlIiwiZm9ybUVsUmVmIiwiZmlyc3RJbnB1dCIsInF1ZXJ5U2VsZWN0b3IiLCJmb2N1cyIsInN0YWJsZUZpZWxkUHJvcHMiLCJzdGFibGVGb3JtSXRlbVByb3BzIiwic3RhYmxlQ29sUHJvcHMiLCJzdGFibGVMYXlvdXQiLCJzdGFibGVWYWx1ZSIsInNldEZpZWxkVmFsdWUiLCJzZXRGaWVsZEVycm9yIiwic2V0RmllbGRXYXJuaW5nIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInJldGFpbkZpZWxkIiwicmVsZWFzZUZpZWxkIiwiV3JhcHBlckNvbXBvbmVudCIsIndyYXBwZXJQcm9wcyIsImhhbmRsZVN1Ym1pdHRlclJlc2V0Iiwic3VibWl0dGVyTm9kZSIsIlByb3ZpZGVyIiwicmVmIiwib25TdWJtaXQiLCJoYW5kbGVSZXNldCIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybSJdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsSUFBSUEsU0FBUyxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLFNBQVMsSUFBSyxVQUFVQyxPQUFPLEVBQUVDLFVBQVUsRUFBRUMsQ0FBQyxFQUFFQyxTQUFTLEVBQUU7RUFDckYsU0FBU0MsS0FBS0EsQ0FBQ0MsS0FBSyxFQUFFO0lBQUUsT0FBT0EsS0FBSyxZQUFZSCxDQUFDLEdBQUdHLEtBQUssR0FBRyxJQUFJSCxDQUFDLENBQUMsVUFBVUksT0FBTyxFQUFFO01BQUVBLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDO0lBQUUsQ0FBQyxDQUFDO0VBQUU7RUFDM0csT0FBTyxLQUFLSCxDQUFDLEtBQUtB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LGdCQUFHdk0sSUFBSSxDQUFDaUMsV0FBVyxDQUE0QjtBQUVuRSxlQUFlc0ssT0FBTyIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vUHJvRm9ybS5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xudmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiwgRnJhZ21lbnQgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTGF0ZXN0IGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTGF0ZXN0JztcbmltcG9ydCB1c2VTYWZlU3RhdGUgZnJvbSAnQDFtb25leS9ob29rcy91c2VTYWZlU3RhdGUnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IEZvcm1Db250cm9sU2l6ZUNvbnRleHQgfSBmcm9tICcuLi9Gb3JtTGF5b3V0L2NvbnRleHQnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vR3JpZCc7XG5pbXBvcnQgeyB1c2VGb3JtIH0gZnJvbSAnLi9jb3JlL2hvb2tzL3VzZUZvcm0nO1xuaW1wb3J0IHsgUHJvRm9ybVN0YWJsZUNvbnRleHQsIFByb0Zvcm1TdGF0ZUNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IHsgU3VibWl0dGVyIH0gZnJvbSAnLi9TdWJtaXR0ZXInO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9DT0xfU1BBTiB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IHN0YWJsZVNlcmlhbGl6ZSwgdHJhbnNmb3JtU3VibWl0VmFsdWVzLCBvbWl0TmlsVmFsdWVzLCBmb3JtYXREYXRlVmFsdWVzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyB1c2VTaGFsbG93U3RhYmxlIH0gZnJvbSAnLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyB1c2VVcmxTeW5jIH0gZnJvbSAnLi9ob29rcy91c2VVcmxTeW5jJztcbmltcG9ydCB7IHJlc29sdmVWYWx1ZSwgc2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL2NvcmUvcGF0aFV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuL2NvcmUvdmFsaWRhdGlvbkVycm9yJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKENTU19QUkVGSVgpO1xuY29uc3QgZm9ybUNsYXNzZXMgPSBjbGFzc25hbWVzKCdmb3JtJyk7XG5jb25zdCBERUZBVUxUX0NPTF9QUk9QUyA9IHsgc3BhbjogREVGQVVMVF9DT0xfU1BBTiB9O1xuY29uc3QgUHJvRm9ybUJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBjbGFzc05hbWUsIHN1Ym1pdHRlciwgbW9kZSA9ICdlZGl0JywgZ3JpZCA9IGZhbHNlLCBjb2xQcm9wcywgcm93UHJvcHMsIGxvYWRpbmcgPSBmYWxzZSwgcmVxdWVzdCwgcGFyYW1zLCBpbml0aWFsVmFsdWVzLCBvbkZpbmlzaCwgb25GaW5pc2hGYWlsZWQsIG9uVmFsdWVzQ2hhbmdlLCBvblJlc2V0LCBvbkluaXQsIG9uTG9hZGluZ0NoYW5nZSwgc3luY1RvVXJsLCBzeW5jVG9VcmxBc0ltcG9ydGFudCA9IGZhbHNlLCBleHRyYVVybFBhcmFtcywgYXV0b0ZvY3VzRmlyc3RJbnB1dCA9IGZhbHNlLCBmb3JtQ29tcG9uZW50VHlwZSwgZm9ybVJlZiwgb21pdE5pbCA9IHRydWUsIGRhdGVGb3JtYXR0ZXIgPSAnc3RyaW5nJywgZmllbGRQcm9wcywgZm9ybUl0ZW1Qcm9wcywgbGF5b3V0LCBzaXplID0gJ2xhcmdlJywgbGFiZWxBbGlnbiA9ICdsZWZ0JywgZGlzYWJsZWQgPSBmYWxzZSwgdmFsaWRhdGVUcmlnZ2VyID0gJ29uQ2hhbmdlJywgcHJlZml4Q2xzOiBfcHJlZml4Q2xzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2hpbGRyZW5cIiwgXCJjbGFzc05hbWVcIiwgXCJzdWJtaXR0ZXJcIiwgXCJtb2RlXCIsIFwiZ3JpZFwiLCBcImNvbFByb3BzXCIsIFwicm93UHJvcHNcIiwgXCJsb2FkaW5nXCIsIFwicmVxdWVzdFwiLCBcInBhcmFtc1wiLCBcImluaXRpYWxWYWx1ZXNcIiwgXCJvbkZpbmlzaFwiLCBcIm9uRmluaXNoRmFpbGVkXCIsIFwib25WYWx1ZXNDaGFuZ2VcIiwgXCJvblJlc2V0XCIsIFwib25Jbml0XCIsIFwib25Mb2FkaW5nQ2hhbmdlXCIsIFwic3luY1RvVXJsXCIsIFwic3luY1RvVXJsQXNJbXBvcnRhbnRcIiwgXCJleHRyYVVybFBhcmFtc1wiLCBcImF1dG9Gb2N1c0ZpcnN0SW5wdXRcIiwgXCJmb3JtQ29tcG9uZW50VHlwZVwiLCBcImZvcm1SZWZcIiwgXCJvbWl0TmlsXCIsIFwiZGF0ZUZvcm1hdHRlclwiLCBcImZpZWxkUHJvcHNcIiwgXCJmb3JtSXRlbVByb3BzXCIsIFwibGF5b3V0XCIsIFwic2l6ZVwiLCBcImxhYmVsQWxpZ25cIiwgXCJkaXNhYmxlZFwiLCBcInZhbGlkYXRlVHJpZ2dlclwiLCBcInByZWZpeENsc1wiXSk7XG4gICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCBzZXRSZXF1ZXN0TG9hZGluZ10gPSB1c2VTYWZlU3RhdGUoZmFsc2UpO1xuICAgIC8vIHVzZVNhZmVTdGF0ZSBmb3IgdGhlIFJFTkRFUkVEIHN1Ym1pdHRpbmcgc3RhdGUgKGl0cyBzZXR0ZXIgaXMgdW5tb3VudC1zYWZlXG4gICAgLy8g4oCUIHRoZSBmaW5hbGx5IGJlbG93IHJ1bnMgYWZ0ZXIgYXdhaXRpbmcgb25GaW5pc2gsIHdoZW4gdGhlIHR5cGljYWxcbiAgICAvLyBzdWJtaXQtdGhlbi1jbG9zZSBmbG93IG1heSBhbHJlYWR5IGhhdmUgdW5tb3VudGVkIHRoZSBmb3JtIG9uIFJlYWN0XG4gICAgLy8gMTYvMTcpLiBUaGUgcmVmIGlzIHRoZSBzeW5jaHJvbm91cyByZS1lbnRyeSBndWFyZDsgQDFtb25leS9ob29rcyBoYXMgbm9cbiAgICAvLyBzaW5nbGUgaG9vayB0aGF0IGlzIGJvdGggdW5tb3VudC1zYWZlIGFuZCBzeW5jaHJvbm91c2x5IHJlYWRhYmxlLlxuICAgIGNvbnN0IFtzdWJtaXR0aW5nLCBzZXRTdWJtaXR0aW5nXSA9IHVzZVNhZmVTdGF0ZShmYWxzZSk7XG4gICAgY29uc3Qgc3VibWl0dGluZ1JlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgaXNMb2FkaW5nID0gbG9hZGluZyB8fCByZXF1ZXN0TG9hZGluZyB8fCBzdWJtaXR0aW5nO1xuICAgIC8vIOKUgOKUgCBUcmFuc2Zvcm0gLyB2YWx1ZVR5cGUgcmVnaXN0cmllcyDilIDilIBcbiAgICBjb25zdCB0cmFuc2Zvcm1LZXlSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHZhbHVlVHlwZVJlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgcmVnaXN0ZXJUcmFuc2Zvcm0gPSB1c2VNZW1vaXplZEZuKChuYW1lLCBmbikgPT4ge1xuICAgICAgICB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudFtuYW1lXSA9IGZuO1xuICAgIH0pO1xuICAgIC8vIFRoZSBvcHRpb25hbCBzZWNvbmQgYXJndW1lbnQgZ3VhcmRzIHJlbW92YWw6IGRlbGV0ZSBvbmx5IHdoZW4gdGhlIHJlZ2lzdHJ5XG4gICAgLy8gc3RpbGwgaG9sZHMgdGhlIENBTExFUidTIHJlZ2lzdHJhdGlvbiwgc28gYW4gdW5tb3VudGluZyBpbnN0YW5jZSBjYW4gbmV2ZXJcbiAgICAvLyB3aXBlIGEgc2FtZS1uYW1lIHNpYmxpbmcncyBvciBzdWNjZXNzb3IncyBlbnRyeS5cbiAgICBjb25zdCB1bnJlZ2lzdGVyVHJhbnNmb3JtID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZm4pID0+IHtcbiAgICAgICAgaWYgKGZuID09PSB1bmRlZmluZWQgfHwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV0gPT09IGZuKSB7XG4gICAgICAgICAgICBkZWxldGUgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZWdpc3RlclZhbHVlVHlwZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlVHlwZSkgPT4ge1xuICAgICAgICB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXSA9IHZhbHVlVHlwZTtcbiAgICB9KTtcbiAgICBjb25zdCB1bnJlZ2lzdGVyVmFsdWVUeXBlID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgdmFsdWVUeXBlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZVR5cGUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZVR5cGVSZWYuY3VycmVudFtuYW1lXSA9PT0gdmFsdWVUeXBlKSB7XG4gICAgICAgICAgICBkZWxldGUgdmFsdWVUeXBlUmVmLmN1cnJlbnRbbmFtZV07XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBvbkZpbmlzaFJlZiA9IHVzZUxhdGVzdChvbkZpbmlzaCk7XG4gICAgY29uc3Qgb25Jbml0UmVmID0gdXNlTGF0ZXN0KG9uSW5pdCk7XG4gICAgY29uc3Qgb25Mb2FkaW5nQ2hhbmdlUmVmID0gdXNlTGF0ZXN0KG9uTG9hZGluZ0NoYW5nZSk7XG4gICAgLy8gU3VibWl0IHBpcGVsaW5lOiBkYXRlcyDihpIgZmllbGQgdHJhbnNmb3JtcyDihpIgb21pdE5pbFxuICAgIGNvbnN0IGFwcGx5UGlwZWxpbmUgPSB1c2VNZW1vaXplZEZuKCh2YWx1ZXMpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVSZWYuY3VycmVudCk7XG4gICAgICAgIHJlc3VsdCA9IHRyYW5zZm9ybVN1Ym1pdFZhbHVlcyhyZXN1bHQsIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50KTtcbiAgICAgICAgaWYgKG9taXROaWwpXG4gICAgICAgICAgICByZXN1bHQgPSBvbWl0TmlsVmFsdWVzKHJlc3VsdCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSk7XG4gICAgLy8gU2FtZSBwaXBlbGluZSBXSVRIT1VUIG9taXROaWwg4oCUIHNpbmdsZS1maWVsZCByZWFkZXJzIG11c3Qgbm90IHNlZSBhIGZpZWxkXG4gICAgLy8gdmFuaXNoIGp1c3QgYmVjYXVzZSBpdHMgY3VycmVudCB2YWx1ZSBpcyBlbXB0eS5cbiAgICBjb25zdCBmb3JtYXRWYWx1ZXNLZWVwTmlsID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGZvcm1hdERhdGVWYWx1ZXModmFsdWVzLCBkYXRlRm9ybWF0dGVyLCB2YWx1ZVR5cGVSZWYuY3VycmVudCk7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMocmVzdWx0LCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudCk7XG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIFVSTCBzeW5jIChzeW5jVG9VcmwgLyBzeW5jVG9VcmxBc0ltcG9ydGFudCAvIGV4dHJhVXJsUGFyYW1zKSDilIDilIBcbiAgICBjb25zdCB7IHVybEluaXRpYWxWYWx1ZXMsIG9uVXJsU3luY0ZpbmlzaCwgb25VcmxTeW5jUmVzZXQgfSA9IHVzZVVybFN5bmMoe1xuICAgICAgICBzeW5jVG9VcmwsXG4gICAgICAgIGV4dHJhVXJsUGFyYW1zLFxuICAgIH0pO1xuICAgIC8vIGluaXRpYWxWYWx1ZXMgaXMgTU9VTlQtT05MWSAoZG9jdW1lbnRlZCBjb250cmFjdDsgdXNlRm9ybUNvcmUgcmUtZnJlZXplc1xuICAgIC8vIGFzIGEgc2FmZXR5IG5ldCkg4oCUIGNvbXB1dGUgdGhlIFVSTCBtZXJnZSBvbmNlIHNvIHRoZSBmcmVlemUgaXMgdmlzaWJsZVxuICAgIC8vIHdoZXJlIHRoZSBwcm9wcyBlbnRlciwgaW5zdGVhZCBvZiByZWNvbXB1dGluZyBkZWFkIHNwcmVhZHMgcGVyIHJlbmRlci5cbiAgICBjb25zdCBtZXJnZWRJbml0aWFsVmFsdWVzUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGlmIChtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQgPT09IG51bGwpIHtcbiAgICAgICAgbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID0gc3luY1RvVXJsXG4gICAgICAgICAgICA/IChzeW5jVG9VcmxBc0ltcG9ydGFudFxuICAgICAgICAgICAgICAgID8gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBpbml0aWFsVmFsdWVzKSwgdXJsSW5pdGlhbFZhbHVlcykgOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHVybEluaXRpYWxWYWx1ZXMpLCBpbml0aWFsVmFsdWVzKSlcbiAgICAgICAgICAgIDogKGluaXRpYWxWYWx1ZXMgIT09IG51bGwgJiYgaW5pdGlhbFZhbHVlcyAhPT0gdm9pZCAwID8gaW5pdGlhbFZhbHVlcyA6IHt9KTtcbiAgICB9XG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlcyA9IG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudDtcbiAgICAvLyBCdW1wZWQgb24gZXZlcnkgcmVzZXQg4oCUIGFuIGluLWZsaWdodCBzdWJtaXQgY2FwdHVyZXMgaXQgYW5kIGFib3J0cyB3aGVuXG4gICAgLy8gaXQgY2hhbmdlZCB1bmRlcm5lYXRoICh0aGUgdXNlciBkaXNjYXJkZWQgdGhlIHN1Ym1pc3Npb24ncyB2YWx1ZXMpLlxuICAgIGNvbnN0IHJlc2V0RXBvY2hSZWYgPSB1c2VSZWYoMCk7XG4gICAgLy8gUmVzZXQgY2hhaW46IGZvcm0tbGV2ZWwgb25SZXNldCByZWNlaXZlcyB0aGUgKHBvc3QtcmVzZXQpIGZvcm1hdHRlZFxuICAgIC8vIHZhbHVlcywgdGhlbiB0aGUgZm9ybSdzIG93biBVUkwgcGFyYW1zIGFyZSBjbGVhcmVkLiB1c2VNZW1vaXplZEZuIGRlZmVyc1xuICAgIC8vIGV4ZWN1dGlvbiB0byBldmVudCB0aW1lLCB3aGVuIGBmb3JtSW5zdGFuY2VgIChjcmVhdGVkIGp1c3QgYmVsb3cpIGV4aXN0cy5cbiAgICBjb25zdCBmaXJlRm9ybVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHJlc2V0RXBvY2hSZWYuY3VycmVudCArPSAxO1xuICAgICAgICBjb25zdCBmaW5hbFZhbHVlcyA9IGFwcGx5UGlwZWxpbmUoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpO1xuICAgICAgICBvblJlc2V0ID09PSBudWxsIHx8IG9uUmVzZXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uUmVzZXQoZmluYWxWYWx1ZXMpO1xuICAgICAgICBvblVybFN5bmNSZXNldCgpO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBGb3JtIGVuZ2luZSAodXNlRm9ybSB3aXRoIGFzeW5jIHZhbGlkYXRpb24pIOKUgOKUgFxuICAgIGNvbnN0IHsgZm9ybUluc3RhbmNlLCBpbnRlcm5hbHMsIHN0b3JlIH0gPSB1c2VGb3JtKHtcbiAgICAgICAgaW5pdGlhbFZhbHVlczogbWVyZ2VkSW5pdGlhbFZhbHVlcyxcbiAgICAgICAgb25WYWx1ZXNDaGFuZ2UsXG4gICAgICAgIG9uUmVzZXQ6IGZpcmVGb3JtUmVzZXQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgfSk7XG4gICAgLy8g4pSA4pSAIEFzeW5jIHN1Ym1pdCB3aXRoIHRyYW5zZm9ybSBwaXBlbGluZSDilIDilIBcbiAgICAvLyBSZS1lbnRyeSBndWFyZDogYSBzZWNvbmQgc3VibWl0IHdoaWxlIG9uZSBpcyBpbiBmbGlnaHQgaXMgaWdub3JlZCAodGhlXG4gICAgLy8gcmVmIGNhdGNoZXMgdHdvIGNhbGxzIGluIHRoZSBzYW1lIHRpY2spLlxuICAgIGNvbnN0IHdyYXBwZWRIYW5kbGVTdWJtaXQgPSB1c2VFdmVudENhbGxiYWNrKChlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBpZiAoc3VibWl0dGluZ1JlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBzdWJtaXR0aW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBzZXRTdWJtaXR0aW5nKHRydWUpO1xuICAgICAgICAoX2EgPSBvbkxvYWRpbmdDaGFuZ2VSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwob25Mb2FkaW5nQ2hhbmdlUmVmLCB0cnVlKTtcbiAgICAgICAgY29uc3QgZXBvY2ggPSByZXNldEVwb2NoUmVmLmN1cnJlbnQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZGF0ZWRWYWx1ZXMgPSB5aWVsZCBmb3JtSW5zdGFuY2UudmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgIC8vIEEgcmVzZXQgZHVyaW5nIChhc3luYykgdmFsaWRhdGlvbiBkaXNjYXJkcyB0aGlzIHN1Ym1pc3Npb24gZW50aXJlbHk6XG4gICAgICAgICAgICAvLyB2YWxpZGF0ZUZpZWxkcyByZS1yZWFkcyB0aGUgbGl2ZSBzdG9yZSwgc28gcHJvY2VlZGluZyB3b3VsZCBoYW5kXG4gICAgICAgICAgICAvLyBvbkZpbmlzaCB0aGUgUE9TVC1yZXNldCB2YWx1ZXMuXG4gICAgICAgICAgICBpZiAoZXBvY2ggIT09IHJlc2V0RXBvY2hSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBjb25zdCBwaXBlbGluZWQgPSBhcHBseVBpcGVsaW5lKHZhbGlkYXRlZFZhbHVlcyk7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSB5aWVsZCAoKF9iID0gb25GaW5pc2hSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwob25GaW5pc2hSZWYsIHBpcGVsaW5lZCkpO1xuICAgICAgICAgICAgLy8gU3luYyB0aGUgVVJMIHVubGVzcyBvbkZpbmlzaCBleHBsaWNpdGx5IHJldHVybmVkIGZhbHNlIChhIHRocm93IGFib3ZlXG4gICAgICAgICAgICAvLyBhbHNvIHNraXBzIOKAlCBhIGZhaWxlZCBzdWJtaXQgbXVzdCBub3QgcG9sbHV0ZSB0aGUgVVJMKSwgYW5kIG9ubHkgaWZcbiAgICAgICAgICAgIC8vIHRoZSB1c2VyIGRpZCBOT1QgcmVzZXQgdGhlIGZvcm0gd2hpbGUgdGhlIHN1Ym1pdCB3YXMgaW4gZmxpZ2h0LlxuICAgICAgICAgICAgaWYgKHJlc3VsdCAhPT0gZmFsc2UgJiYgZXBvY2ggPT09IHJlc2V0RXBvY2hSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIG9uVXJsU3luY0ZpbmlzaChwaXBlbGluZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIC8vIEEgcmVzZXQgZHVyaW5nIHZhbGlkYXRpb24gYWxzbyBpbnZhbGlkYXRlcyB0aGUgRkFJTFVSRSBjYWxsYmFjayDigJRcbiAgICAgICAgICAgIC8vIHRoZSBlcnJvciBjYXJyaWVzIHBvc3QtcmVzZXQgdmFsdWVzIGZvciBhIGRpc2NhcmRlZCBzdWJtaXNzaW9uLlxuICAgICAgICAgICAgLy8gKEZpZWxkIGVycm9ycyBmcm9tIHRoZSBkZWFkIHZhbGlkYXRpb24gYXJlIHN1cHByZXNzZWQgYnkgdGhlXG4gICAgICAgICAgICAvLyBwZXItZmllbGQgdmFsaWRhdGlvbiBlcG9jaHM6IHJlc2V0RmllbGRzIGludmFsaWRhdGVzIGluLWZsaWdodCBydW5zLilcbiAgICAgICAgICAgIGlmIChlcG9jaCAhPT0gcmVzZXRFcG9jaFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIC8vIE9ubHkgYSBWQUxJREFUSU9OIGZhaWx1cmUgcm91dGVzIHRvIG9uRmluaXNoRmFpbGVkLiBBbiBleGNlcHRpb24gb3V0XG4gICAgICAgICAgICAvLyBvZiB0aGUgY29uc3VtZXIncyBvd24gb25GaW5pc2ggaXMgbm90IGEgdmFsaWRhdGlvbiByZXN1bHQ6IHRoZSBzdWJtaXRcbiAgICAgICAgICAgIC8vIGZhaWxzIChVUkwgdW50b3VjaGVkLCBvdmVybGF5IHN0YXlzIG9wZW4pIGFuZCB0aGUgZXJyb3IgaXMgc3VyZmFjZWRcbiAgICAgICAgICAgIC8vIG9uIHRoZSBjb25zb2xlIGluc3RlYWQgb2YgYmVpbmcgbWlzcmVwb3J0ZWQgd2l0aCBhbiBlbXB0eSBwYXlsb2FkLlxuICAgICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEZvcm1WYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgICAgICAgICAgICBvbkZpbmlzaEZhaWxlZCA9PT0gbnVsbCB8fCBvbkZpbmlzaEZhaWxlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25GaW5pc2hGYWlsZWQoeyB2YWx1ZXM6IGVyci52YWx1ZXMsIGVycm9yczogZXJyLmVycm9ycyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tQcm9Gb3JtXSBvbkZpbmlzaCB0aHJldyBkdXJpbmcgc3VibWl0OicsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmluYWxseSB7XG4gICAgICAgICAgICBzdWJtaXR0aW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFN1Ym1pdHRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgKF9jID0gb25Mb2FkaW5nQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5jYWxsKG9uTG9hZGluZ0NoYW5nZVJlZiwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSkpO1xuICAgIC8vIOKUgOKUgCBQcm9Gb3JtIGluc3RhbmNlOiBzdXBlcnNldCBvZiBGb3JtSW5zdGFuY2Ug4pSA4pSAXG4gICAgY29uc3QgcHJvRm9ybUZvcm1JbnN0YW5jZSA9IHVzZU1lbW8oKCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZm9ybUluc3RhbmNlKSwgeyBnZXRGaWVsZHNGb3JtYXRWYWx1ZTogKCkgPT4gYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIGdldEZpZWxkRm9ybWF0VmFsdWU6ICgobmFtZSkgPT4gcmVzb2x2ZVZhbHVlKGZvcm1hdFZhbHVlc0tlZXBOaWwoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpLCBuYW1lKSksIGdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3Q6IChuYW1lKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWQgPSBmb3JtYXRWYWx1ZXNLZWVwTmlsKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKTtcbiAgICAgICAgICAgIGlmICghbmFtZSlcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgICAgICAgICAgLy8gQSBuZXN0ZWQgb2JqZWN0IGNhcnJ5aW5nIE9OTFkgdGhlIHJlcXVlc3RlZCBsZWFmIOKAlCBub3QgdGhlIHdob2xlXG4gICAgICAgICAgICAvLyB0b3AtbGV2ZWwgc3VidHJlZSB0aGUgcGF0aCBoYXBwZW5zIHRvIGxpdmUgaW4uXG4gICAgICAgICAgICByZXR1cm4gc2V0TmVzdGVkVmFsdWUoe30sIG5hbWUsIHJlc29sdmVWYWx1ZShmb3JtYXR0ZWQsIG5hbWUpKTtcbiAgICAgICAgfSwgdmFsaWRhdGVGaWVsZHNSZXR1cm5Gb3JtYXRWYWx1ZTogKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHMgPSB5aWVsZCBmb3JtSW5zdGFuY2UudmFsaWRhdGVGaWVsZHMoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiB0cnVlLCB2YWx1ZXM6IGFwcGx5UGlwZWxpbmUodmFscykgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAvLyB2YWxpZGF0ZUZpZWxkcyByZWplY3RzIHdpdGggYW4gRXJyb3IgY2FycnlpbmcgdGhlIGZpZWxkIGVycm9ycyBtYXBcbiAgICAgICAgICAgICAgICAvLyAoc2FtZSBzaGFwZSB3cmFwcGVkSGFuZGxlU3VibWl0IGNvbnN1bWVzIGFib3ZlKS5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGVycm9ycyB9ID0gZXJyO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN1Y2Nlc3M6IGZhbHNlLCBlcnJvcnM6IGVycm9ycyAhPT0gbnVsbCAmJiBlcnJvcnMgIT09IHZvaWQgMCA/IGVycm9ycyA6IHt9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pLCBzdWJtaXRGb3JtOiB3cmFwcGVkSGFuZGxlU3VibWl0IH0pKSwgW2Zvcm1JbnN0YW5jZSwgYXBwbHlQaXBlbGluZSwgd3JhcHBlZEhhbmRsZVN1Ym1pdF0pO1xuICAgIC8vIOKUgOKUgCBTeW5jIHRvIGZvcm1SZWYgcHJvcCDilIDilIBcbiAgICAvLyBUaGUgY2xlYW51cCBjbGVhcnMgdGhlIHJlZiBvbiB1bm1vdW50OiBhIGhhbmRsZSB0byBhbiB1bm1vdW50ZWQgZm9ybVxuICAgIC8vIHZhbGlkYXRlcyBhbiBlbXB0eSBmaWVsZCBzdG9yZSBhbmQgcmVwb3J0cyBmYWtlIHN1Y2Nlc3MsIHNvIGNvbnN1bWVyc1xuICAgIC8vIChhbmQgdGhlIGJ1c2luZXNzLXNoZWxsIHJlbGF5IHJlZnMpIG11c3Qgb2JzZXJ2ZSBgdW5kZWZpbmVkYCBpbnN0ZWFkLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZm9ybVJlZilcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGZvcm1SZWYuY3VycmVudCA9IHByb0Zvcm1Gb3JtSW5zdGFuY2U7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoZm9ybVJlZi5jdXJyZW50ID09PSBwcm9Gb3JtRm9ybUluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgZm9ybVJlZi5jdXJyZW50ID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtmb3JtUmVmLCBwcm9Gb3JtRm9ybUluc3RhbmNlXSk7XG4gICAgLy8g4pSA4pSAIHJlcXVlc3QgLyBwYXJhbXMgYXV0by1sb2FkIOKUgOKUgFxuICAgIGNvbnN0IHJlcXVlc3RSZWYgPSB1c2VMYXRlc3QocmVxdWVzdCk7XG4gICAgY29uc3QgaGFzUmVxdWVzdCA9ICEhcmVxdWVzdDtcbiAgICBjb25zdCBzZXJpYWxpemVkUGFyYW1zID0gdXNlTWVtbygoKSA9PiBzdGFibGVTZXJpYWxpemUocGFyYW1zKSwgW3BhcmFtc10pO1xuICAgIC8vIG9uSW5pdCBmaXJlcyBleGFjdGx5IG9uY2U6IGFmdGVyIHRoZSBGSVJTVCByZXF1ZXN0IHJlc29sdmVzIHdoZW4gYVxuICAgIC8vIHJlcXVlc3QgaXMgY29uZmlndXJlZCwgb3RoZXJ3aXNlIHJpZ2h0IGFmdGVyIG1vdW50LlxuICAgIGNvbnN0IGluaXRGaXJlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgZmlyZUluaXQgPSB1c2VNZW1vaXplZEZuKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoaW5pdEZpcmVkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGluaXRGaXJlZFJlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgKF9hID0gb25Jbml0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uSW5pdFJlZiwgYXBwbHlQaXBlbGluZShmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSksIHByb0Zvcm1Gb3JtSW5zdGFuY2UpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIC8vIFN0YWxlbmVzcyBndWFyZDogaWYgcGFyYW1zIGNoYW5nZSBhZ2FpbiBiZWZvcmUgdGhpcyBmZXRjaCByZXNvbHZlcywgdGhlXG4gICAgICAgIC8vIGNsZWFudXAgbWFya3MgaXQgc3RhbGUgc28gdGhlIGxhdGUgcmVzcG9uc2UgY2FuJ3Qgb3ZlcndyaXRlIHRoZSB2YWx1ZXNcbiAgICAgICAgLy8gYSBuZXdlciByZXF1ZXN0IGFscmVhZHkgKG9yIHdpbGwpIHNldC5cbiAgICAgICAgbGV0IHN0YWxlID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGZldGNoRGF0YSA9ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3QgcmVxdWVzdEZuID0gcmVxdWVzdFJlZi5jdXJyZW50O1xuICAgICAgICAgICAgaWYgKCFyZXF1ZXN0Rm4pXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCByZXF1ZXN0Rm4ocGFyYW1zKTtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlICYmIGRhdGEgJiYgdHlwZW9mIGRhdGEgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZS5zZXRGaWVsZHNWYWx1ZShkYXRhKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gQSBmYWlsZWQgcmVxdWVzdCBtdXN0IG5vdCBlc2NhcGUgYXMgYW4gdW5oYW5kbGVkIHJlamVjdGlvbiDigJQgdGhlXG4gICAgICAgICAgICAgICAgLy8gZm9ybSBrZWVwcyBpdHMgaW5pdGlhbFZhbHVlcyBhbmQgdGhlIGZhaWx1cmUgaXMgc3VyZmFjZWQgb24gdGhlXG4gICAgICAgICAgICAgICAgLy8gY29uc29sZSAobWlycm9ycyB0aGUgZmllbGQtbGV2ZWwgdXNlRmllbGRSZXF1ZXN0IGhhbmRsaW5nKS5cbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tQcm9Gb3JtXSByZXF1ZXN0IGZhaWxlZDonLCBlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgICAgIGlmICghc3RhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0UmVxdWVzdExvYWRpbmcoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IGEgTk9OLXN1cGVyc2VkZWQgc2V0dGxlIGluaXRpYWxpemVzIHRoZSBmb3JtOiBhIHN0YWxlXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlcXVlc3QncyBkYXRhIHdhcyBkaXNjYXJkZWQsIHNvIGl0cyB2YWx1ZXMgbXVzdCBub3QgYmUgcmVwb3J0ZWQuXG4gICAgICAgICAgICAgICAgICAgIGZpcmVJbml0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHJlcXVlc3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgZmV0Y2hEYXRhKCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBmaXJlSW5pdCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBzdGFsZSA9IHRydWU7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFJlLWZldGNoIHdoZW4gcGFyYW1zIGNoYW5nZSBieSBWQUxVRSAoZGVwZW5kaW5nIG9uIHRoZSByYXcgYHBhcmFtc2BcbiAgICAgICAgLy8gcmVmZXJlbmNlIHdvdWxkIHJlLXJ1biBvbiBldmVyeSByZW5kZXIgZm9yIGlubGluZSBvYmplY3QgbGl0ZXJhbHMgYW5kLFxuICAgICAgICAvLyBjb21iaW5lZCB3aXRoIHRoZSBsb2FkaW5nIHNldFN0YXRlLCBsb29wIGZvcmV2ZXIpIOKAlCBhbmQgd2hlbiBgcmVxdWVzdGBcbiAgICAgICAgLy8gZmlyc3QgYmVjb21lcyBkZWZpbmVkIChlLmcuIGJlaGluZCBhIGZlYXR1cmUgZmxhZyksIG1pcnJvcmluZ1xuICAgICAgICAvLyB1c2VGaWVsZFJlcXVlc3QuIGZpcmVJbml0J3Mgb25jZS1ndWFyZCBrZWVwcyBvbkluaXQgZnJvbSByZS1maXJpbmcuXG4gICAgfSwgW3NlcmlhbGl6ZWRQYXJhbXMsIGhhc1JlcXVlc3RdKTtcbiAgICAvLyDilIDilIAgYXV0b0ZvY3VzRmlyc3RJbnB1dCDilIDilIBcbiAgICBjb25zdCBmb3JtRWxSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWF1dG9Gb2N1c0ZpcnN0SW5wdXQgfHwgbW9kZSA9PT0gJ3JlYWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBmaXJzdElucHV0ID0gKF9hID0gZm9ybUVsUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5xdWVyeVNlbGVjdG9yKCdpbnB1dDpub3QoW3R5cGU9XCJoaWRkZW5cIl0pOm5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pJyk7XG4gICAgICAgIGZpcnN0SW5wdXQgPT09IG51bGwgfHwgZmlyc3RJbnB1dCA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmlyc3RJbnB1dC5mb2N1cygpO1xuICAgICAgICAvLyBNb3VudC1vbmx5IGJ5IGRlc2lnbi5cbiAgICB9LCBbXSk7XG4gICAgLy8g4pSA4pSAIFNwbGl0IGNvbnRleHQg4pSA4pSAXG4gICAgLy8gRm9ybS1sZXZlbCBwcm9wIGJhZ3MgYXJlIG9mdGVuIGlubGluZSBsaXRlcmFsczoga2VlcCB0aGVpciBpZGVudGl0eVxuICAgIC8vIHN0YWJsZSB3aGlsZSBzaGFsbG93LWVxdWFsIHNvIHRoZSBzdGFibGUgc2xpY2UgZG9lc24ndCBjaHVybiBwZXIgcmVuZGVyLlxuICAgIGNvbnN0IHN0YWJsZUZpZWxkUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGZpZWxkUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUZvcm1JdGVtUHJvcHMgPSB1c2VTaGFsbG93U3RhYmxlKGZvcm1JdGVtUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUNvbFByb3BzID0gdXNlU2hhbGxvd1N0YWJsZShjb2xQcm9wcyk7XG4gICAgY29uc3Qgc3RhYmxlTGF5b3V0ID0gdXNlU2hhbGxvd1N0YWJsZShsYXlvdXQpO1xuICAgIC8vIFN0YWJsZSBzbGljZTogY29uZmlndXJhdGlvbiArIGlkZW50aXR5LXN0YWJsZSBkaXNwYXRjaGVycy9pbnN0YW5jZS5cbiAgICAvLyBDaGFuZ2VzIG9ubHkgd2hlbiBmb3JtLWxldmVsIHByb3BzIGNoYW5nZSDigJQgTk9UIG9uIGtleXN0cm9rZXMsIHNvXG4gICAgLy8gc3Vic2NyaWJlcnMgbGlrZSBTdWJtaXR0ZXIgYW5kIHRoZSBmaWVsZCBmYWN0b3JpZXMgc2tpcCB0aG9zZSByZW5kZXJzLlxuICAgIGNvbnN0IHN0YWJsZVZhbHVlID0gdXNlTWVtbygoKSA9PiAoe1xuICAgICAgICBmb3JtSW5zdGFuY2U6IHByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gICAgICAgIHNldEZpZWxkVmFsdWU6IGludGVybmFscy5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBzZXRGaWVsZEVycm9yOiBpbnRlcm5hbHMuc2V0RmllbGRFcnJvcixcbiAgICAgICAgc2V0RmllbGRXYXJuaW5nOiBpbnRlcm5hbHMuc2V0RmllbGRXYXJuaW5nLFxuICAgICAgICB2YWxpZGF0ZUZpZWxkQXN5bmM6IGludGVybmFscy52YWxpZGF0ZUZpZWxkQXN5bmMsXG4gICAgICAgIHJlZ2lzdGVyRmllbGQ6IGludGVybmFscy5yZWdpc3RlckZpZWxkLFxuICAgICAgICB1bnJlZ2lzdGVyRmllbGQ6IGludGVybmFscy51bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIHJldGFpbkZpZWxkOiBpbnRlcm5hbHMucmV0YWluRmllbGQsXG4gICAgICAgIHJlbGVhc2VGaWVsZDogaW50ZXJuYWxzLnJlbGVhc2VGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgLy8gU3VibWl0dGluZy9sb2FkaW5nIGRvZXMgTk9UIGRpc2FibGUgZmllbGRzIOKAlCBvbmx5IHRoZVxuICAgICAgICAvLyBleHBsaWNpdCBgZGlzYWJsZWRgIHByb3AgZG9lcy4gS2VlcGluZyBpc0xvYWRpbmcgb3V0IG9mIHRoaXMgc2xpY2VcbiAgICAgICAgLy8gbWVhbnMgYSBzdWJtaXQgY3ljbGUgbm8gbG9uZ2VyIHJlLXJlbmRlcnMgZXZlcnkgZmllbGQgc2hlbGwuXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgICAgIC8vIFByb0Zvcm0gc3BlY2lmaWNzXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGdyaWQsXG4gICAgICAgIGNvbFByb3BzOiBzdGFibGVDb2xQcm9wcyAhPT0gbnVsbCAmJiBzdGFibGVDb2xQcm9wcyAhPT0gdm9pZCAwID8gc3RhYmxlQ29sUHJvcHMgOiBERUZBVUxUX0NPTF9QUk9QUyxcbiAgICAgICAgcmVnaXN0ZXJUcmFuc2Zvcm06IHJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICB1bnJlZ2lzdGVyVHJhbnNmb3JtOiB1bnJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICByZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgdW5yZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgZmllbGRQcm9wczogc3RhYmxlRmllbGRQcm9wcyxcbiAgICAgICAgZm9ybUl0ZW1Qcm9wczogc3RhYmxlRm9ybUl0ZW1Qcm9wcyxcbiAgICAgICAgbGF5b3V0OiBzdGFibGVMYXlvdXQsXG4gICAgICAgIGZvcm1Db21wb25lbnRUeXBlLFxuICAgIH0pLCBbXG4gICAgICAgIHByb0Zvcm1Gb3JtSW5zdGFuY2UsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZFZhbHVlLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRFcnJvcixcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkV2FybmluZyxcbiAgICAgICAgaW50ZXJuYWxzLnZhbGlkYXRlRmllbGRBc3luYyxcbiAgICAgICAgaW50ZXJuYWxzLnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGludGVybmFscy51bnJlZ2lzdGVyRmllbGQsXG4gICAgICAgIGludGVybmFscy5yZXRhaW5GaWVsZCxcbiAgICAgICAgaW50ZXJuYWxzLnJlbGVhc2VGaWVsZCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbGFiZWxBbGlnbixcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHZhbGlkYXRlVHJpZ2dlcixcbiAgICAgICAgbW9kZSxcbiAgICAgICAgZ3JpZCxcbiAgICAgICAgc3RhYmxlQ29sUHJvcHMsXG4gICAgICAgIHJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICB1bnJlZ2lzdGVyVHJhbnNmb3JtLFxuICAgICAgICByZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgdW5yZWdpc3RlclZhbHVlVHlwZSxcbiAgICAgICAgc3RhYmxlRmllbGRQcm9wcyxcbiAgICAgICAgc3RhYmxlRm9ybUl0ZW1Qcm9wcyxcbiAgICAgICAgc3RhYmxlTGF5b3V0LFxuICAgICAgICBmb3JtQ29tcG9uZW50VHlwZSxcbiAgICBdKTtcbiAgICBjb25zdCBXcmFwcGVyQ29tcG9uZW50ID0gZ3JpZCA/IFJvdyA6IEZyYWdtZW50O1xuICAgIGNvbnN0IHdyYXBwZXJQcm9wcyA9IGdyaWQgPyBPYmplY3QuYXNzaWduKHt9LCByb3dQcm9wcykgOiB7fTtcbiAgICAvLyBSZXNldCBjYWxsYmFjayBjaGFpbjogdGhlIFN1Ym1pdHRlciByZXNldHMgdGhlIHZhbHVlcyBmaXJzdCwgdGhlbiB0aGVcbiAgICAvLyBzdWJtaXR0ZXItbGV2ZWwgb25SZXNldCwgdGhlbiB0aGUgZm9ybS1sZXZlbCBvblJlc2V0ICh3aXRoIGZpbmFsVmFsdWVzKVxuICAgIC8vIGFuZCB0aGUgVVJMIGNsZWFudXAg4oCUIGZpcmVkIGV4YWN0bHkgb25jZSBwZXIgcmVzZXQgYWN0aW9uLlxuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdHRlclJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKHR5cGVvZiBzdWJtaXR0ZXIgPT09ICdvYmplY3QnKVxuICAgICAgICAgICAgKF9hID0gc3VibWl0dGVyLm9uUmVzZXQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdHRlcik7XG4gICAgICAgIGZpcmVGb3JtUmVzZXQoKTtcbiAgICB9KTtcbiAgICBjb25zdCBzdWJtaXR0ZXJOb2RlID0gc3VibWl0dGVyICE9PSBmYWxzZSAmJiBtb2RlICE9PSAncmVhZCcgPyAoX2pzeChTdWJtaXR0ZXIsIE9iamVjdC5hc3NpZ24oe30sICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JyA/IHN1Ym1pdHRlciA6IHt9KSwgeyBvblJlc2V0OiBoYW5kbGVTdWJtaXR0ZXJSZXNldCwgbG9hZGluZzogaXNMb2FkaW5nIH0pKSkgOiBudWxsO1xuICAgIHJldHVybiAoX2pzeChQcm9Gb3JtU3RhYmxlQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc3RhYmxlVmFsdWUsIGNoaWxkcmVuOiBfanN4KFByb0Zvcm1TdGF0ZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHN0b3JlLCBjaGlsZHJlbjogX2pzeChGb3JtQ29udHJvbFNpemVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzaXplLCBjaGlsZHJlbjogX2pzeHMoXCJmb3JtXCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBmb3JtRWxSZWYsIGNsYXNzTmFtZTogZm9ybUNsYXNzZXModW5kZWZpbmVkLCBqb2luQ2xzKGNsYXNzZXMoKSwgY2xhc3NOYW1lKSksIG9uU3VibWl0OiB3cmFwcGVkSGFuZGxlU3VibWl0LCBvblJlc2V0OiBpbnRlcm5hbHMuaGFuZGxlUmVzZXQsIGNoaWxkcmVuOiBbX2pzeChXcmFwcGVyQ29tcG9uZW50LCBPYmplY3QuYXNzaWduKHt9LCB3cmFwcGVyUHJvcHMsIHsgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSwgc3VibWl0dGVyTm9kZV0gfSkpIH0pIH0pIH0pKTtcbn07XG5Qcm9Gb3JtQmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtJztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtID0gbWVtbyhQcm9Gb3JtQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
510
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9Qcm9Gb3JtLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0udHN4Il0sIm5hbWVzIjpbImUiLCJ0IiwiciIsIlN5bWJvbCIsIm4iLCJpdGVyYXRvciIsIm8iLCJ0b1N0cmluZ1RhZyIsImkiLCJjIiwicHJvdG90eXBlIiwiR2VuZXJhdG9yIiwidSIsIk9iamVjdCIsImNyZWF0ZSIsIl9yZWdlbmVyYXRvckRlZmluZTIiLCJmIiwicCIsInkiLCJHIiwidiIsImEiLCJkIiwiYmluZCIsImxlbmd0aCIsImwiLCJUeXBlRXJyb3IiLCJjYWxsIiwiZG9uZSIsInZhbHVlIiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsImdldFByb3RvdHlwZU9mIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJkaXNwbGF5TmFtZSIsIl9yZWdlbmVyYXRvciIsInciLCJtIiwiZGVmaW5lUHJvcGVydHkiLCJfcmVnZW5lcmF0b3JEZWZpbmUiLCJfaW52b2tlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJ0aGVuIiwiYXBwbHkiLCJfX3Jlc3QiLCJzIiwiaGFzT3duUHJvcGVydHkiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiUmVhY3QiLCJtZW1vIiwidXNlRWZmZWN0IiwidXNlTWVtbyIsInVzZVJlZiIsIkZyYWdtZW50IiwidXNlTGF0ZXN0IiwidXNlU2FmZVN0YXRlIiwidXNlTWVtb2l6ZWRGbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJGb3JtQ29udHJvbFNpemVDb250ZXh0IiwiUm93IiwidXNlRm9ybSIsIlByb0Zvcm1TdGFibGVDb250ZXh0IiwiUHJvRm9ybVN0YXRlQ29udGV4dCIsIlN1Ym1pdHRlciIsIkNTU19QUkVGSVgiLCJERUZBVUxUX0NPTF9TUEFOIiwic3RhYmxlU2VyaWFsaXplIiwidHJhbnNmb3JtU3VibWl0VmFsdWVzIiwib21pdE5pbFZhbHVlcyIsImZvcm1hdERhdGVWYWx1ZXMiLCJ1c2VTaGFsbG93U3RhYmxlIiwidXNlVXJsU3luYyIsInJlc29sdmVWYWx1ZSIsInNldE5lc3RlZFZhbHVlIiwiRm9ybVZhbGlkYXRpb25FcnJvciIsImNsYXNzZXMiLCJmb3JtQ2xhc3NlcyIsIkRFRkFVTFRfQ09MX1BST1BTIiwic3BhbiIsIlByb0Zvcm1CYXNlIiwicHJvcHMiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN1Ym1pdHRlciIsIl9wcm9wcyRtb2RlIiwibW9kZSIsIl9wcm9wcyRncmlkIiwiZ3JpZCIsImNvbFByb3BzIiwicm93UHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJyZXF1ZXN0IiwicGFyYW1zIiwiaW5pdGlhbFZhbHVlcyIsIm9uRmluaXNoIiwib25GaW5pc2hGYWlsZWQiLCJvblZhbHVlc0NoYW5nZSIsIm9uUmVzZXQiLCJvbkluaXQiLCJvbkxvYWRpbmdDaGFuZ2UiLCJzeW5jVG9VcmwiLCJfcHJvcHMkc3luY1RvVXJsQXNJbXAiLCJzeW5jVG9VcmxBc0ltcG9ydGFudCIsImV4dHJhVXJsUGFyYW1zIiwiX3Byb3BzJGF1dG9Gb2N1c0ZpcnN0IiwiYXV0b0ZvY3VzRmlyc3RJbnB1dCIsImZvcm1Db21wb25lbnRUeXBlIiwiZm9ybVJlZiIsIl9wcm9wcyRvbWl0TmlsIiwib21pdE5pbCIsIl9wcm9wcyRkYXRlRm9ybWF0dGVyIiwiZGF0ZUZvcm1hdHRlciIsImZpZWxkUHJvcHMiLCJmb3JtSXRlbVByb3BzIiwibGF5b3V0IiwiX3Byb3BzJHNpemUiLCJzaXplIiwiX3Byb3BzJGxhYmVsQWxpZ24iLCJsYWJlbEFsaWduIiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJfcHJvcHMkdmFsaWRhdGVUcmlnZ2UiLCJ2YWxpZGF0ZVRyaWdnZXIiLCJfcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsIl91c2VTYWZlU3RhdGUiLCJfdXNlU2FmZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwicmVxdWVzdExvYWRpbmciLCJzZXRSZXF1ZXN0TG9hZGluZyIsIl91c2VTYWZlU3RhdGUzIiwiX3VzZVNhZmVTdGF0ZTQiLCJzdWJtaXR0aW5nIiwic2V0U3VibWl0dGluZyIsInN1Ym1pdHRpbmdSZWYiLCJpc0xvYWRpbmciLCJ0cmFuc2Zvcm1LZXlSZWYiLCJ2YWx1ZVR5cGVSZWYiLCJyZWdpc3RlclRyYW5zZm9ybSIsIm5hbWUiLCJmbiIsImN1cnJlbnQiLCJ1bnJlZ2lzdGVyVHJhbnNmb3JtIiwidW5kZWZpbmVkIiwicmVnaXN0ZXJWYWx1ZVR5cGUiLCJ2YWx1ZVR5cGUiLCJ1bnJlZ2lzdGVyVmFsdWVUeXBlIiwib25GaW5pc2hSZWYiLCJvbkluaXRSZWYiLCJvbkxvYWRpbmdDaGFuZ2VSZWYiLCJhcHBseVBpcGVsaW5lIiwidmFsdWVzIiwiZm9ybWF0VmFsdWVzS2VlcE5pbCIsIl91c2VVcmxTeW5jIiwidXJsSW5pdGlhbFZhbHVlcyIsIm9uVXJsU3luY0ZpbmlzaCIsIm9uVXJsU3luY1Jlc2V0IiwibWVyZ2VkSW5pdGlhbFZhbHVlc1JlZiIsImFzc2lnbiIsIm1lcmdlZEluaXRpYWxWYWx1ZXMiLCJyZXNldEVwb2NoUmVmIiwiZmlyZUZvcm1SZXNldCIsImZpbmFsVmFsdWVzIiwiZm9ybUluc3RhbmNlIiwiZ2V0RmllbGRzVmFsdWUiLCJfdXNlRm9ybSIsImludGVybmFscyIsInN0b3JlIiwid3JhcHBlZEhhbmRsZVN1Ym1pdCIsIl9jYWxsZWUiLCJfYSIsIl9iIiwiX2MiLCJlcG9jaCIsInZhbGlkYXRlZFZhbHVlcyIsInBpcGVsaW5lZCIsIl90IiwiX2NvbnRleHQiLCJwcmV2ZW50RGVmYXVsdCIsInZhbGlkYXRlRmllbGRzIiwiZXJyb3JzIiwiY29uc29sZSIsImVycm9yIiwicHJvRm9ybUZvcm1JbnN0YW5jZSIsImdldEZpZWxkc0Zvcm1hdFZhbHVlIiwiZ2V0RmllbGRGb3JtYXRWYWx1ZSIsImdldEZpZWxkRm9ybWF0VmFsdWVPYmplY3QiLCJmb3JtYXR0ZWQiLCJ2YWxpZGF0ZUZpZWxkc1JldHVybkZvcm1hdFZhbHVlIiwiX2NhbGxlZTIiLCJ2YWxzIiwiX3QyIiwiX2NvbnRleHQyIiwic3VjY2VzcyIsInN1Ym1pdEZvcm0iLCJyZXF1ZXN0UmVmIiwiaGFzUmVxdWVzdCIsInNlcmlhbGl6ZWRQYXJhbXMiLCJpbml0RmlyZWRSZWYiLCJmaXJlSW5pdCIsInN0YWxlIiwiZmV0Y2hEYXRhIiwiX2NhbGxlZTMiLCJyZXF1ZXN0Rm4iLCJkYXRhIiwiX3QzIiwiX2NvbnRleHQzIiwiX3R5cGVvZiIsInNldEZpZWxkc1ZhbHVlIiwiZm9ybUVsUmVmIiwiZmlyc3RJbnB1dCIsInF1ZXJ5U2VsZWN0b3IiLCJmb2N1cyIsInN0YWJsZUZpZWxkUHJvcHMiLCJzdGFibGVGb3JtSXRlbVByb3BzIiwic3RhYmxlQ29sUHJvcHMiLCJzdGFibGVMYXlvdXQiLCJzdGFibGVWYWx1ZSIsInNldEZpZWxkVmFsdWUiLCJzZXRGaWVsZEVycm9yIiwic2V0RmllbGRXYXJuaW5nIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInJldGFpbkZpZWxkIiwicmVsZWFzZUZpZWxkIiwiV3JhcHBlckNvbXBvbmVudCIsIndyYXBwZXJQcm9wcyIsImhhbmRsZVN1Ym1pdHRlclJlc2V0Iiwic3VibWl0dGVyTm9kZSIsIlByb3ZpZGVyIiwicmVmIiwib25TdWJtaXQiLCJoYW5kbGVSZXNldCIsIlByb0Zvcm0iXSwibWFwcGluZ3MiOiI7OzBCQUNBLHVLQUFB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QUFDMkssUUFBUSxFQUFBO0lBQUNyTyxLQUFLLEVBQUV3TixXQUFXO0lBQUExSSxRQUFBLEVBRy9DdkMsSUFBQSxDQUFDb0IsbUJBQW1CLENBQUMwSyxRQUFRLEVBQUE7TUFBQ3JPLEtBQUssRUFBRXNLLEtBQUs7TUFBQXhGLFFBQUEsRUFNeEN2QyxJQUFBLENBQUNnQixzQkFBc0IsQ0FBQzhLLFFBQVEsRUFBQTtRQUFDck8sS0FBSyxFQUFFa0gsSUFBSTtRQUFBcEMsUUFBQSxFQUM1Q3JDLEtBQUEsQ0FBQSxNQUFBLEVBQUF6RCxNQUFBLENBQUE2SyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ01sQyxJQUFJLEVBQUE7VUFDUjJHLEdBQUcsRUFBRXRCLFNBQVM7VUFDZGpJLFNBQVMsRUFBRU4sV0FBVyxDQUFDcUUsU0FBUyxFQUFFeEYsT0FBTyxDQUFDa0IsT0FBTyxDQUFBLENBQUUsRUFBRU8sU0FBUyxDQUFDLENBQUM7VUFDaEV3SixRQUFRLEVBQUVoRSxtQkFBbUI7VUFDN0J4RSxPQUFPLEVBQUVzRSxTQUFTLENBQUNtRSxXQUFXO1VBQUExSixRQUFBLEVBQUEsQ0FFOUJ2QyxJQUFBLENBQUMwTCxnQkFBZ0IsRUFBQWpQLE1BQUEsQ0FBQTZLLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBS3FFLFlBQVksRUFBQTtZQUFBcEosUUFBQSxFQUFHQTtVQUFRLENBQUEsQ0FBQSxDQUFvQixFQUNoRXNKLGFBQWE7UUFBQSxDQUFBLENBQUE7TUFDVCxDQUFBO0lBQzJCLENBQUE7RUFDTCxDQUFBLENBQ0Q7QUFFcEMsQ0FBQztBQUVEeEosV0FBVyxDQUFDdEUsV0FBVyxHQUFHLFNBQVM7QUFhbkMsT0FBTyxJQUFNbU8sT0FBTyxnQkFBRzlMLElBQUksQ0FBQ2lDLFdBQVcsQ0FBNEI7QUFFbkUsZUFBZTZKLE9BQU8iLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL1Byb0Zvcm0uanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbnZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIEZyYWdtZW50IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUxhdGVzdCBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUxhdGVzdCc7XG5pbXBvcnQgdXNlU2FmZVN0YXRlIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlU2FmZVN0YXRlJztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbFNpemVDb250ZXh0IH0gZnJvbSAnLi4vRm9ybUxheW91dC9jb250ZXh0JztcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uL0dyaWQnO1xuaW1wb3J0IHsgdXNlRm9ybSB9IGZyb20gJy4vY29yZS9ob29rcy91c2VGb3JtJztcbmltcG9ydCB7IFByb0Zvcm1TdGFibGVDb250ZXh0LCBQcm9Gb3JtU3RhdGVDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IFN1Ym1pdHRlciB9IGZyb20gJy4vU3VibWl0dGVyJztcbmltcG9ydCB7IENTU19QUkVGSVgsIERFRkFVTFRfQ09MX1NQQU4gfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBzdGFibGVTZXJpYWxpemUsIHRyYW5zZm9ybVN1Ym1pdFZhbHVlcywgb21pdE5pbFZhbHVlcywgZm9ybWF0RGF0ZVZhbHVlcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgdXNlU2hhbGxvd1N0YWJsZSB9IGZyb20gJy4vY29yZS9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgdXNlVXJsU3luYyB9IGZyb20gJy4vaG9va3MvdXNlVXJsU3luYyc7XG5pbXBvcnQgeyByZXNvbHZlVmFsdWUsIHNldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi9jb3JlL3ZhbGlkYXRpb25FcnJvcic7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhDU1NfUFJFRklYKTtcbmNvbnN0IGZvcm1DbGFzc2VzID0gY2xhc3NuYW1lcygnZm9ybScpO1xuY29uc3QgREVGQVVMVF9DT0xfUFJPUFMgPSB7IHNwYW46IERFRkFVTFRfQ09MX1NQQU4gfTtcbmNvbnN0IFByb0Zvcm1CYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjaGlsZHJlbiwgY2xhc3NOYW1lLCBzdWJtaXR0ZXIsIG1vZGUgPSAnZWRpdCcsIGdyaWQgPSBmYWxzZSwgY29sUHJvcHMsIHJvd1Byb3BzLCBsb2FkaW5nID0gZmFsc2UsIHJlcXVlc3QsIHBhcmFtcywgaW5pdGlhbFZhbHVlcywgb25GaW5pc2gsIG9uRmluaXNoRmFpbGVkLCBvblZhbHVlc0NoYW5nZSwgb25SZXNldCwgb25Jbml0LCBvbkxvYWRpbmdDaGFuZ2UsIHN5bmNUb1VybCwgc3luY1RvVXJsQXNJbXBvcnRhbnQgPSBmYWxzZSwgZXh0cmFVcmxQYXJhbXMsIGF1dG9Gb2N1c0ZpcnN0SW5wdXQgPSBmYWxzZSwgZm9ybUNvbXBvbmVudFR5cGUsIGZvcm1SZWYsIG9taXROaWwgPSB0cnVlLCBkYXRlRm9ybWF0dGVyID0gJ3N0cmluZycsIGZpZWxkUHJvcHMsIGZvcm1JdGVtUHJvcHMsIGxheW91dCwgc2l6ZSA9ICdsYXJnZScsIGxhYmVsQWxpZ24gPSAnbGVmdCcsIGRpc2FibGVkID0gZmFsc2UsIHZhbGlkYXRlVHJpZ2dlciA9ICdvbkNoYW5nZScsIHByZWZpeENsczogX3ByZWZpeENscyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNoaWxkcmVuXCIsIFwiY2xhc3NOYW1lXCIsIFwic3VibWl0dGVyXCIsIFwibW9kZVwiLCBcImdyaWRcIiwgXCJjb2xQcm9wc1wiLCBcInJvd1Byb3BzXCIsIFwibG9hZGluZ1wiLCBcInJlcXVlc3RcIiwgXCJwYXJhbXNcIiwgXCJpbml0aWFsVmFsdWVzXCIsIFwib25GaW5pc2hcIiwgXCJvbkZpbmlzaEZhaWxlZFwiLCBcIm9uVmFsdWVzQ2hhbmdlXCIsIFwib25SZXNldFwiLCBcIm9uSW5pdFwiLCBcIm9uTG9hZGluZ0NoYW5nZVwiLCBcInN5bmNUb1VybFwiLCBcInN5bmNUb1VybEFzSW1wb3J0YW50XCIsIFwiZXh0cmFVcmxQYXJhbXNcIiwgXCJhdXRvRm9jdXNGaXJzdElucHV0XCIsIFwiZm9ybUNvbXBvbmVudFR5cGVcIiwgXCJmb3JtUmVmXCIsIFwib21pdE5pbFwiLCBcImRhdGVGb3JtYXR0ZXJcIiwgXCJmaWVsZFByb3BzXCIsIFwiZm9ybUl0ZW1Qcm9wc1wiLCBcImxheW91dFwiLCBcInNpemVcIiwgXCJsYWJlbEFsaWduXCIsIFwiZGlzYWJsZWRcIiwgXCJ2YWxpZGF0ZVRyaWdnZXJcIiwgXCJwcmVmaXhDbHNcIl0pO1xuICAgIGNvbnN0IFtyZXF1ZXN0TG9hZGluZywgc2V0UmVxdWVzdExvYWRpbmddID0gdXNlU2FmZVN0YXRlKGZhbHNlKTtcbiAgICAvLyB1c2VTYWZlU3RhdGUgZm9yIHRoZSBSRU5ERVJFRCBzdWJtaXR0aW5nIHN0YXRlIChpdHMgc2V0dGVyIGlzIHVubW91bnQtc2FmZVxuICAgIC8vIOKAlCB0aGUgZmluYWxseSBiZWxvdyBydW5zIGFmdGVyIGF3YWl0aW5nIG9uRmluaXNoLCB3aGVuIHRoZSB0eXBpY2FsXG4gICAgLy8gc3VibWl0LXRoZW4tY2xvc2UgZmxvdyBtYXkgYWxyZWFkeSBoYXZlIHVubW91bnRlZCB0aGUgZm9ybSBvbiBSZWFjdFxuICAgIC8vIDE2LzE3KS4gVGhlIHJlZiBpcyB0aGUgc3luY2hyb25vdXMgcmUtZW50cnkgZ3VhcmQ7IEAxbW9uZXkvaG9va3MgaGFzIG5vXG4gICAgLy8gc2luZ2xlIGhvb2sgdGhhdCBpcyBib3RoIHVubW91bnQtc2FmZSBhbmQgc3luY2hyb25vdXNseSByZWFkYWJsZS5cbiAgICBjb25zdCBbc3VibWl0dGluZywgc2V0U3VibWl0dGluZ10gPSB1c2VTYWZlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHN1Ym1pdHRpbmdSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IGxvYWRpbmcgfHwgcmVxdWVzdExvYWRpbmcgfHwgc3VibWl0dGluZztcbiAgICAvLyDilIDilIAgVHJhbnNmb3JtIC8gdmFsdWVUeXBlIHJlZ2lzdHJpZXMg4pSA4pSAXG4gICAgY29uc3QgdHJhbnNmb3JtS2V5UmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCB2YWx1ZVR5cGVSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IHJlZ2lzdGVyVHJhbnNmb3JtID0gdXNlTWVtb2l6ZWRGbigobmFtZSwgZm4pID0+IHtcbiAgICAgICAgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnRbbmFtZV0gPSBmbjtcbiAgICB9KTtcbiAgICAvLyBUaGUgb3B0aW9uYWwgc2Vjb25kIGFyZ3VtZW50IGd1YXJkcyByZW1vdmFsOiBkZWxldGUgb25seSB3aGVuIHRoZSByZWdpc3RyeVxuICAgIC8vIHN0aWxsIGhvbGRzIHRoZSBDQUxMRVInUyByZWdpc3RyYXRpb24sIHNvIGFuIHVubW91bnRpbmcgaW5zdGFuY2UgY2FuIG5ldmVyXG4gICAgLy8gd2lwZSBhIHNhbWUtbmFtZSBzaWJsaW5nJ3Mgb3Igc3VjY2Vzc29yJ3MgZW50cnkuXG4gICAgY29uc3QgdW5yZWdpc3RlclRyYW5zZm9ybSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIGZuKSA9PiB7XG4gICAgICAgIGlmIChmbiA9PT0gdW5kZWZpbmVkIHx8IHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdID09PSBmbikge1xuICAgICAgICAgICAgZGVsZXRlIHRyYW5zZm9ybUtleVJlZi5jdXJyZW50W25hbWVdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgcmVnaXN0ZXJWYWx1ZVR5cGUgPSB1c2VNZW1vaXplZEZuKChuYW1lLCB2YWx1ZVR5cGUpID0+IHtcbiAgICAgICAgdmFsdWVUeXBlUmVmLmN1cnJlbnRbbmFtZV0gPSB2YWx1ZVR5cGU7XG4gICAgfSk7XG4gICAgY29uc3QgdW5yZWdpc3RlclZhbHVlVHlwZSA9IHVzZU1lbW9pemVkRm4oKG5hbWUsIHZhbHVlVHlwZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWVUeXBlID09PSB1bmRlZmluZWQgfHwgdmFsdWVUeXBlUmVmLmN1cnJlbnRbbmFtZV0gPT09IHZhbHVlVHlwZSkge1xuICAgICAgICAgICAgZGVsZXRlIHZhbHVlVHlwZVJlZi5jdXJyZW50W25hbWVdO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3Qgb25GaW5pc2hSZWYgPSB1c2VMYXRlc3Qob25GaW5pc2gpO1xuICAgIGNvbnN0IG9uSW5pdFJlZiA9IHVzZUxhdGVzdChvbkluaXQpO1xuICAgIGNvbnN0IG9uTG9hZGluZ0NoYW5nZVJlZiA9IHVzZUxhdGVzdChvbkxvYWRpbmdDaGFuZ2UpO1xuICAgIC8vIFN1Ym1pdCBwaXBlbGluZTogZGF0ZXMg4oaSIGZpZWxkIHRyYW5zZm9ybXMg4oaSIG9taXROaWxcbiAgICBjb25zdCBhcHBseVBpcGVsaW5lID0gdXNlTWVtb2l6ZWRGbigodmFsdWVzKSA9PiB7XG4gICAgICAgIGxldCByZXN1bHQgPSBmb3JtYXREYXRlVmFsdWVzKHZhbHVlcywgZGF0ZUZvcm1hdHRlciwgdmFsdWVUeXBlUmVmLmN1cnJlbnQpO1xuICAgICAgICByZXN1bHQgPSB0cmFuc2Zvcm1TdWJtaXRWYWx1ZXMocmVzdWx0LCB0cmFuc2Zvcm1LZXlSZWYuY3VycmVudCk7XG4gICAgICAgIGlmIChvbWl0TmlsKVxuICAgICAgICAgICAgcmVzdWx0ID0gb21pdE5pbFZhbHVlcyhyZXN1bHQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pO1xuICAgIC8vIFNhbWUgcGlwZWxpbmUgV0lUSE9VVCBvbWl0TmlsIOKAlCBzaW5nbGUtZmllbGQgcmVhZGVycyBtdXN0IG5vdCBzZWUgYSBmaWVsZFxuICAgIC8vIHZhbmlzaCBqdXN0IGJlY2F1c2UgaXRzIGN1cnJlbnQgdmFsdWUgaXMgZW1wdHkuXG4gICAgY29uc3QgZm9ybWF0VmFsdWVzS2VlcE5pbCA9IHVzZU1lbW9pemVkRm4oKHZhbHVlcykgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBmb3JtYXREYXRlVmFsdWVzKHZhbHVlcywgZGF0ZUZvcm1hdHRlciwgdmFsdWVUeXBlUmVmLmN1cnJlbnQpO1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtU3VibWl0VmFsdWVzKHJlc3VsdCwgdHJhbnNmb3JtS2V5UmVmLmN1cnJlbnQpO1xuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBVUkwgc3luYyAoc3luY1RvVXJsIC8gc3luY1RvVXJsQXNJbXBvcnRhbnQgLyBleHRyYVVybFBhcmFtcykg4pSA4pSAXG4gICAgY29uc3QgeyB1cmxJbml0aWFsVmFsdWVzLCBvblVybFN5bmNGaW5pc2gsIG9uVXJsU3luY1Jlc2V0IH0gPSB1c2VVcmxTeW5jKHtcbiAgICAgICAgc3luY1RvVXJsLFxuICAgICAgICBleHRyYVVybFBhcmFtcyxcbiAgICB9KTtcbiAgICAvLyBpbml0aWFsVmFsdWVzIGlzIE1PVU5ULU9OTFkgKGRvY3VtZW50ZWQgY29udHJhY3Q7IHVzZUZvcm1Db3JlIHJlLWZyZWV6ZXNcbiAgICAvLyBhcyBhIHNhZmV0eSBuZXQpIOKAlCBjb21wdXRlIHRoZSBVUkwgbWVyZ2Ugb25jZSBzbyB0aGUgZnJlZXplIGlzIHZpc2libGVcbiAgICAvLyB3aGVyZSB0aGUgcHJvcHMgZW50ZXIsIGluc3RlYWQgb2YgcmVjb21wdXRpbmcgZGVhZCBzcHJlYWRzIHBlciByZW5kZXIuXG4gICAgY29uc3QgbWVyZ2VkSW5pdGlhbFZhbHVlc1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBpZiAobWVyZ2VkSW5pdGlhbFZhbHVlc1JlZi5jdXJyZW50ID09PSBudWxsKSB7XG4gICAgICAgIG1lcmdlZEluaXRpYWxWYWx1ZXNSZWYuY3VycmVudCA9IHN5bmNUb1VybFxuICAgICAgICAgICAgPyAoc3luY1RvVXJsQXNJbXBvcnRhbnRcbiAgICAgICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgaW5pdGlhbFZhbHVlcyksIHVybEluaXRpYWxWYWx1ZXMpIDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB1cmxJbml0aWFsVmFsdWVzKSwgaW5pdGlhbFZhbHVlcykpXG4gICAgICAgICAgICA6IChpbml0aWFsVmFsdWVzICE9PSBudWxsICYmIGluaXRpYWxWYWx1ZXMgIT09IHZvaWQgMCA/IGluaXRpYWxWYWx1ZXMgOiB7fSk7XG4gICAgfVxuICAgIGNvbnN0IG1lcmdlZEluaXRpYWxWYWx1ZXMgPSBtZXJnZWRJbml0aWFsVmFsdWVzUmVmLmN1cnJlbnQ7XG4gICAgLy8gQnVtcGVkIG9uIGV2ZXJ5IHJlc2V0IOKAlCBhbiBpbi1mbGlnaHQgc3VibWl0IGNhcHR1cmVzIGl0IGFuZCBhYm9ydHMgd2hlblxuICAgIC8vIGl0IGNoYW5nZWQgdW5kZXJuZWF0aCAodGhlIHVzZXIgZGlzY2FyZGVkIHRoZSBzdWJtaXNzaW9uJ3MgdmFsdWVzKS5cbiAgICBjb25zdCByZXNldEVwb2NoUmVmID0gdXNlUmVmKDApO1xuICAgIC8vIFJlc2V0IGNoYWluOiBmb3JtLWxldmVsIG9uUmVzZXQgcmVjZWl2ZXMgdGhlIChwb3N0LXJlc2V0KSBmb3JtYXR0ZWRcbiAgICAvLyB2YWx1ZXMsIHRoZW4gdGhlIGZvcm0ncyBvd24gVVJMIHBhcmFtcyBhcmUgY2xlYXJlZC4gdXNlTWVtb2l6ZWRGbiBkZWZlcnNcbiAgICAvLyBleGVjdXRpb24gdG8gZXZlbnQgdGltZSwgd2hlbiBgZm9ybUluc3RhbmNlYCAoY3JlYXRlZCBqdXN0IGJlbG93KSBleGlzdHMuXG4gICAgY29uc3QgZmlyZUZvcm1SZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICByZXNldEVwb2NoUmVmLmN1cnJlbnQgKz0gMTtcbiAgICAgICAgY29uc3QgZmluYWxWYWx1ZXMgPSBhcHBseVBpcGVsaW5lKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KGZpbmFsVmFsdWVzKTtcbiAgICAgICAgb25VcmxTeW5jUmVzZXQoKTtcbiAgICB9KTtcbiAgICAvLyDilIDilIAgRm9ybSBlbmdpbmUgKHVzZUZvcm0gd2l0aCBhc3luYyB2YWxpZGF0aW9uKSDilIDilIBcbiAgICBjb25zdCB7IGZvcm1JbnN0YW5jZSwgaW50ZXJuYWxzLCBzdG9yZSB9ID0gdXNlRm9ybSh7XG4gICAgICAgIGluaXRpYWxWYWx1ZXM6IG1lcmdlZEluaXRpYWxWYWx1ZXMsXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlLFxuICAgICAgICBvblJlc2V0OiBmaXJlRm9ybVJlc2V0LFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgIH0pO1xuICAgIC8vIOKUgOKUgCBBc3luYyBzdWJtaXQgd2l0aCB0cmFuc2Zvcm0gcGlwZWxpbmUg4pSA4pSAXG4gICAgLy8gUmUtZW50cnkgZ3VhcmQ6IGEgc2Vjb25kIHN1Ym1pdCB3aGlsZSBvbmUgaXMgaW4gZmxpZ2h0IGlzIGlnbm9yZWQgKHRoZVxuICAgIC8vIHJlZiBjYXRjaGVzIHR3byBjYWxscyBpbiB0aGUgc2FtZSB0aWNrKS5cbiAgICBjb25zdCB3cmFwcGVkSGFuZGxlU3VibWl0ID0gdXNlRXZlbnRDYWxsYmFjaygoZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgaWYgKHN1Ym1pdHRpbmdSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgc3VibWl0dGluZ1JlZi5jdXJyZW50ID0gdHJ1ZTtcbiAgICAgICAgc2V0U3VibWl0dGluZyh0cnVlKTtcbiAgICAgICAgKF9hID0gb25Mb2FkaW5nQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uTG9hZGluZ0NoYW5nZVJlZiwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IGVwb2NoID0gcmVzZXRFcG9jaFJlZi5jdXJyZW50O1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWRhdGVkVmFsdWVzID0geWllbGQgZm9ybUluc3RhbmNlLnZhbGlkYXRlRmllbGRzKCk7XG4gICAgICAgICAgICAvLyBBIHJlc2V0IGR1cmluZyAoYXN5bmMpIHZhbGlkYXRpb24gZGlzY2FyZHMgdGhpcyBzdWJtaXNzaW9uIGVudGlyZWx5OlxuICAgICAgICAgICAgLy8gdmFsaWRhdGVGaWVsZHMgcmUtcmVhZHMgdGhlIGxpdmUgc3RvcmUsIHNvIHByb2NlZWRpbmcgd291bGQgaGFuZFxuICAgICAgICAgICAgLy8gb25GaW5pc2ggdGhlIFBPU1QtcmVzZXQgdmFsdWVzLlxuICAgICAgICAgICAgaWYgKGVwb2NoICE9PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgY29uc3QgcGlwZWxpbmVkID0gYXBwbHlQaXBlbGluZSh2YWxpZGF0ZWRWYWx1ZXMpO1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgKChfYiA9IG9uRmluaXNoUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKG9uRmluaXNoUmVmLCBwaXBlbGluZWQpKTtcbiAgICAgICAgICAgIC8vIFN5bmMgdGhlIFVSTCB1bmxlc3Mgb25GaW5pc2ggZXhwbGljaXRseSByZXR1cm5lZCBmYWxzZSAoYSB0aHJvdyBhYm92ZVxuICAgICAgICAgICAgLy8gYWxzbyBza2lwcyDigJQgYSBmYWlsZWQgc3VibWl0IG11c3Qgbm90IHBvbGx1dGUgdGhlIFVSTCksIGFuZCBvbmx5IGlmXG4gICAgICAgICAgICAvLyB0aGUgdXNlciBkaWQgTk9UIHJlc2V0IHRoZSBmb3JtIHdoaWxlIHRoZSBzdWJtaXQgd2FzIGluIGZsaWdodC5cbiAgICAgICAgICAgIGlmIChyZXN1bHQgIT09IGZhbHNlICYmIGVwb2NoID09PSByZXNldEVwb2NoUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBvblVybFN5bmNGaW5pc2gocGlwZWxpbmVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAvLyBBIHJlc2V0IGR1cmluZyB2YWxpZGF0aW9uIGFsc28gaW52YWxpZGF0ZXMgdGhlIEZBSUxVUkUgY2FsbGJhY2sg4oCUXG4gICAgICAgICAgICAvLyB0aGUgZXJyb3IgY2FycmllcyBwb3N0LXJlc2V0IHZhbHVlcyBmb3IgYSBkaXNjYXJkZWQgc3VibWlzc2lvbi5cbiAgICAgICAgICAgIC8vIChGaWVsZCBlcnJvcnMgZnJvbSB0aGUgZGVhZCB2YWxpZGF0aW9uIGFyZSBzdXBwcmVzc2VkIGJ5IHRoZVxuICAgICAgICAgICAgLy8gcGVyLWZpZWxkIHZhbGlkYXRpb24gZXBvY2hzOiByZXNldEZpZWxkcyBpbnZhbGlkYXRlcyBpbi1mbGlnaHQgcnVucy4pXG4gICAgICAgICAgICBpZiAoZXBvY2ggIT09IHJlc2V0RXBvY2hSZWYuY3VycmVudClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAvLyBPbmx5IGEgVkFMSURBVElPTiBmYWlsdXJlIHJvdXRlcyB0byBvbkZpbmlzaEZhaWxlZC4gQW4gZXhjZXB0aW9uIG91dFxuICAgICAgICAgICAgLy8gb2YgdGhlIGNvbnN1bWVyJ3Mgb3duIG9uRmluaXNoIGlzIG5vdCBhIHZhbGlkYXRpb24gcmVzdWx0OiB0aGUgc3VibWl0XG4gICAgICAgICAgICAvLyBmYWlscyAoVVJMIHVudG91Y2hlZCwgb3ZlcmxheSBzdGF5cyBvcGVuKSBhbmQgdGhlIGVycm9yIGlzIHN1cmZhY2VkXG4gICAgICAgICAgICAvLyBvbiB0aGUgY29uc29sZSBpbnN0ZWFkIG9mIGJlaW5nIG1pc3JlcG9ydGVkIHdpdGggYW4gZW1wdHkgcGF5bG9hZC5cbiAgICAgICAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBGb3JtVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICAgICAgICAgICAgb25GaW5pc2hGYWlsZWQgPT09IG51bGwgfHwgb25GaW5pc2hGYWlsZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRmluaXNoRmFpbGVkKHsgdmFsdWVzOiBlcnIudmFsdWVzLCBlcnJvcnM6IGVyci5lcnJvcnMgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbUHJvRm9ybV0gb25GaW5pc2ggdGhyZXcgZHVyaW5nIHN1Ym1pdDonLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZpbmFsbHkge1xuICAgICAgICAgICAgc3VibWl0dGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICBzZXRTdWJtaXR0aW5nKGZhbHNlKTtcbiAgICAgICAgICAgIChfYyA9IG9uTG9hZGluZ0NoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuY2FsbChvbkxvYWRpbmdDaGFuZ2VSZWYsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0pKTtcbiAgICAvLyDilIDilIAgUHJvRm9ybSBpbnN0YW5jZTogc3VwZXJzZXQgb2YgRm9ybUluc3RhbmNlIOKUgOKUgFxuICAgIGNvbnN0IHByb0Zvcm1Gb3JtSW5zdGFuY2UgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZvcm1JbnN0YW5jZSksIHsgZ2V0RmllbGRzRm9ybWF0VmFsdWU6ICgpID0+IGFwcGx5UGlwZWxpbmUoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpLCBnZXRGaWVsZEZvcm1hdFZhbHVlOiAoKG5hbWUpID0+IHJlc29sdmVWYWx1ZShmb3JtYXRWYWx1ZXNLZWVwTmlsKGZvcm1JbnN0YW5jZS5nZXRGaWVsZHNWYWx1ZSgpKSwgbmFtZSkpLCBnZXRGaWVsZEZvcm1hdFZhbHVlT2JqZWN0OiAobmFtZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gZm9ybWF0VmFsdWVzS2VlcE5pbChmb3JtSW5zdGFuY2UuZ2V0RmllbGRzVmFsdWUoKSk7XG4gICAgICAgICAgICBpZiAoIW5hbWUpXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZvcm1hdHRlZDtcbiAgICAgICAgICAgIC8vIEEgbmVzdGVkIG9iamVjdCBjYXJyeWluZyBPTkxZIHRoZSByZXF1ZXN0ZWQgbGVhZiDigJQgbm90IHRoZSB3aG9sZVxuICAgICAgICAgICAgLy8gdG9wLWxldmVsIHN1YnRyZWUgdGhlIHBhdGggaGFwcGVucyB0byBsaXZlIGluLlxuICAgICAgICAgICAgcmV0dXJuIHNldE5lc3RlZFZhbHVlKHt9LCBuYW1lLCByZXNvbHZlVmFsdWUoZm9ybWF0dGVkLCBuYW1lKSk7XG4gICAgICAgIH0sIHZhbGlkYXRlRmllbGRzUmV0dXJuRm9ybWF0VmFsdWU6ICgpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxzID0geWllbGQgZm9ybUluc3RhbmNlLnZhbGlkYXRlRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogdHJ1ZSwgdmFsdWVzOiBhcHBseVBpcGVsaW5lKHZhbHMpIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgLy8gdmFsaWRhdGVGaWVsZHMgcmVqZWN0cyB3aXRoIGFuIEVycm9yIGNhcnJ5aW5nIHRoZSBmaWVsZCBlcnJvcnMgbWFwXG4gICAgICAgICAgICAgICAgLy8gKHNhbWUgc2hhcGUgd3JhcHBlZEhhbmRsZVN1Ym1pdCBjb25zdW1lcyBhYm92ZSkuXG4gICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMgfSA9IGVycjtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiBmYWxzZSwgZXJyb3JzOiBlcnJvcnMgIT09IG51bGwgJiYgZXJyb3JzICE9PSB2b2lkIDAgPyBlcnJvcnMgOiB7fSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KSwgc3VibWl0Rm9ybTogd3JhcHBlZEhhbmRsZVN1Ym1pdCB9KSksIFtmb3JtSW5zdGFuY2UsIGFwcGx5UGlwZWxpbmUsIHdyYXBwZWRIYW5kbGVTdWJtaXRdKTtcbiAgICAvLyDilIDilIAgU3luYyB0byBmb3JtUmVmIHByb3Ag4pSA4pSAXG4gICAgLy8gVGhlIGNsZWFudXAgY2xlYXJzIHRoZSByZWYgb24gdW5tb3VudDogYSBoYW5kbGUgdG8gYW4gdW5tb3VudGVkIGZvcm1cbiAgICAvLyB2YWxpZGF0ZXMgYW4gZW1wdHkgZmllbGQgc3RvcmUgYW5kIHJlcG9ydHMgZmFrZSBzdWNjZXNzLCBzbyBjb25zdW1lcnNcbiAgICAvLyAoYW5kIHRoZSBidXNpbmVzcy1zaGVsbCByZWxheSByZWZzKSBtdXN0IG9ic2VydmUgYHVuZGVmaW5lZGAgaW5zdGVhZC5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWZvcm1SZWYpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICBmb3JtUmVmLmN1cnJlbnQgPSBwcm9Gb3JtRm9ybUluc3RhbmNlO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvcm1SZWYuY3VycmVudCA9PT0gcHJvRm9ybUZvcm1JbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgIGZvcm1SZWYuY3VycmVudCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbZm9ybVJlZiwgcHJvRm9ybUZvcm1JbnN0YW5jZV0pO1xuICAgIC8vIOKUgOKUgCByZXF1ZXN0IC8gcGFyYW1zIGF1dG8tbG9hZCDilIDilIBcbiAgICBjb25zdCByZXF1ZXN0UmVmID0gdXNlTGF0ZXN0KHJlcXVlc3QpO1xuICAgIGNvbnN0IGhhc1JlcXVlc3QgPSAhIXJlcXVlc3Q7XG4gICAgY29uc3Qgc2VyaWFsaXplZFBhcmFtcyA9IHVzZU1lbW8oKCkgPT4gc3RhYmxlU2VyaWFsaXplKHBhcmFtcyksIFtwYXJhbXNdKTtcbiAgICAvLyBvbkluaXQgZmlyZXMgZXhhY3RseSBvbmNlOiBhZnRlciB0aGUgRklSU1QgcmVxdWVzdCByZXNvbHZlcyB3aGVuIGFcbiAgICAvLyByZXF1ZXN0IGlzIGNvbmZpZ3VyZWQsIG90aGVyd2lzZSByaWdodCBhZnRlciBtb3VudC5cbiAgICBjb25zdCBpbml0RmlyZWRSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IGZpcmVJbml0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGluaXRGaXJlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpbml0RmlyZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIChfYSA9IG9uSW5pdFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkluaXRSZWYsIGFwcGx5UGlwZWxpbmUoZm9ybUluc3RhbmNlLmdldEZpZWxkc1ZhbHVlKCkpLCBwcm9Gb3JtRm9ybUluc3RhbmNlKTtcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBTdGFsZW5lc3MgZ3VhcmQ6IGlmIHBhcmFtcyBjaGFuZ2UgYWdhaW4gYmVmb3JlIHRoaXMgZmV0Y2ggcmVzb2x2ZXMsIHRoZVxuICAgICAgICAvLyBjbGVhbnVwIG1hcmtzIGl0IHN0YWxlIHNvIHRoZSBsYXRlIHJlc3BvbnNlIGNhbid0IG92ZXJ3cml0ZSB0aGUgdmFsdWVzXG4gICAgICAgIC8vIGEgbmV3ZXIgcmVxdWVzdCBhbHJlYWR5IChvciB3aWxsKSBzZXQuXG4gICAgICAgIGxldCBzdGFsZSA9IGZhbHNlO1xuICAgICAgICBjb25zdCBmZXRjaERhdGEgPSAoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcXVlc3RGbiA9IHJlcXVlc3RSZWYuY3VycmVudDtcbiAgICAgICAgICAgIGlmICghcmVxdWVzdEZuKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIHNldFJlcXVlc3RMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgcmVxdWVzdEZuKHBhcmFtcyk7XG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSAmJiBkYXRhICYmIHR5cGVvZiBkYXRhID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgICAgICBmb3JtSW5zdGFuY2Uuc2V0RmllbGRzVmFsdWUoZGF0YSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgIC8vIEEgZmFpbGVkIHJlcXVlc3QgbXVzdCBub3QgZXNjYXBlIGFzIGFuIHVuaGFuZGxlZCByZWplY3Rpb24g4oCUIHRoZVxuICAgICAgICAgICAgICAgIC8vIGZvcm0ga2VlcHMgaXRzIGluaXRpYWxWYWx1ZXMgYW5kIHRoZSBmYWlsdXJlIGlzIHN1cmZhY2VkIG9uIHRoZVxuICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUgKG1pcnJvcnMgdGhlIGZpZWxkLWxldmVsIHVzZUZpZWxkUmVxdWVzdCBoYW5kbGluZykuXG4gICAgICAgICAgICAgICAgaWYgKCFzdGFsZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdbUHJvRm9ybV0gcmVxdWVzdCBmYWlsZWQ6JywgZXJyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgICBpZiAoIXN0YWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFJlcXVlc3RMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gT25seSBhIE5PTi1zdXBlcnNlZGVkIHNldHRsZSBpbml0aWFsaXplcyB0aGUgZm9ybTogYSBzdGFsZVxuICAgICAgICAgICAgICAgICAgICAvLyByZXF1ZXN0J3MgZGF0YSB3YXMgZGlzY2FyZGVkLCBzbyBpdHMgdmFsdWVzIG11c3Qgbm90IGJlIHJlcG9ydGVkLlxuICAgICAgICAgICAgICAgICAgICBmaXJlSW5pdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXF1ZXN0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGZldGNoRGF0YSgpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZmlyZUluaXQoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgc3RhbGUgPSB0cnVlO1xuICAgICAgICB9O1xuICAgICAgICAvLyBSZS1mZXRjaCB3aGVuIHBhcmFtcyBjaGFuZ2UgYnkgVkFMVUUgKGRlcGVuZGluZyBvbiB0aGUgcmF3IGBwYXJhbXNgXG4gICAgICAgIC8vIHJlZmVyZW5jZSB3b3VsZCByZS1ydW4gb24gZXZlcnkgcmVuZGVyIGZvciBpbmxpbmUgb2JqZWN0IGxpdGVyYWxzIGFuZCxcbiAgICAgICAgLy8gY29tYmluZWQgd2l0aCB0aGUgbG9hZGluZyBzZXRTdGF0ZSwgbG9vcCBmb3JldmVyKSDigJQgYW5kIHdoZW4gYHJlcXVlc3RgXG4gICAgICAgIC8vIGZpcnN0IGJlY29tZXMgZGVmaW5lZCAoZS5nLiBiZWhpbmQgYSBmZWF0dXJlIGZsYWcpLCBtaXJyb3JpbmdcbiAgICAgICAgLy8gdXNlRmllbGRSZXF1ZXN0LiBmaXJlSW5pdCdzIG9uY2UtZ3VhcmQga2VlcHMgb25Jbml0IGZyb20gcmUtZmlyaW5nLlxuICAgIH0sIFtzZXJpYWxpemVkUGFyYW1zLCBoYXNSZXF1ZXN0XSk7XG4gICAgLy8g4pSA4pSAIGF1dG9Gb2N1c0ZpcnN0SW5wdXQg4pSA4pSAXG4gICAgY29uc3QgZm9ybUVsUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFhdXRvRm9jdXNGaXJzdElucHV0IHx8IG1vZGUgPT09ICdyZWFkJylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgZmlyc3RJbnB1dCA9IChfYSA9IGZvcm1FbFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EucXVlcnlTZWxlY3RvcignaW5wdXQ6bm90KFt0eXBlPVwiaGlkZGVuXCJdKTpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhOm5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKScpO1xuICAgICAgICBmaXJzdElucHV0ID09PSBudWxsIHx8IGZpcnN0SW5wdXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpcnN0SW5wdXQuZm9jdXMoKTtcbiAgICAgICAgLy8gTW91bnQtb25seSBieSBkZXNpZ24uXG4gICAgfSwgW10pO1xuICAgIC8vIOKUgOKUgCBTcGxpdCBjb250ZXh0IOKUgOKUgFxuICAgIC8vIEZvcm0tbGV2ZWwgcHJvcCBiYWdzIGFyZSBvZnRlbiBpbmxpbmUgbGl0ZXJhbHM6IGtlZXAgdGhlaXIgaWRlbnRpdHlcbiAgICAvLyBzdGFibGUgd2hpbGUgc2hhbGxvdy1lcXVhbCBzbyB0aGUgc3RhYmxlIHNsaWNlIGRvZXNuJ3QgY2h1cm4gcGVyIHJlbmRlci5cbiAgICBjb25zdCBzdGFibGVGaWVsZFByb3BzID0gdXNlU2hhbGxvd1N0YWJsZShmaWVsZFByb3BzKTtcbiAgICBjb25zdCBzdGFibGVGb3JtSXRlbVByb3BzID0gdXNlU2hhbGxvd1N0YWJsZShmb3JtSXRlbVByb3BzKTtcbiAgICBjb25zdCBzdGFibGVDb2xQcm9wcyA9IHVzZVNoYWxsb3dTdGFibGUoY29sUHJvcHMpO1xuICAgIGNvbnN0IHN0YWJsZUxheW91dCA9IHVzZVNoYWxsb3dTdGFibGUobGF5b3V0KTtcbiAgICAvLyBTdGFibGUgc2xpY2U6IGNvbmZpZ3VyYXRpb24gKyBpZGVudGl0eS1zdGFibGUgZGlzcGF0Y2hlcnMvaW5zdGFuY2UuXG4gICAgLy8gQ2hhbmdlcyBvbmx5IHdoZW4gZm9ybS1sZXZlbCBwcm9wcyBjaGFuZ2Ug4oCUIE5PVCBvbiBrZXlzdHJva2VzLCBzb1xuICAgIC8vIHN1YnNjcmliZXJzIGxpa2UgU3VibWl0dGVyIGFuZCB0aGUgZmllbGQgZmFjdG9yaWVzIHNraXAgdGhvc2UgcmVuZGVycy5cbiAgICBjb25zdCBzdGFibGVWYWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHtcbiAgICAgICAgZm9ybUluc3RhbmNlOiBwcm9Gb3JtRm9ybUluc3RhbmNlLFxuICAgICAgICBzZXRGaWVsZFZhbHVlOiBpbnRlcm5hbHMuc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgc2V0RmllbGRFcnJvcjogaW50ZXJuYWxzLnNldEZpZWxkRXJyb3IsXG4gICAgICAgIHNldEZpZWxkV2FybmluZzogaW50ZXJuYWxzLnNldEZpZWxkV2FybmluZyxcbiAgICAgICAgdmFsaWRhdGVGaWVsZEFzeW5jOiBpbnRlcm5hbHMudmFsaWRhdGVGaWVsZEFzeW5jLFxuICAgICAgICByZWdpc3RlckZpZWxkOiBpbnRlcm5hbHMucmVnaXN0ZXJGaWVsZCxcbiAgICAgICAgdW5yZWdpc3RlckZpZWxkOiBpbnRlcm5hbHMudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICByZXRhaW5GaWVsZDogaW50ZXJuYWxzLnJldGFpbkZpZWxkLFxuICAgICAgICByZWxlYXNlRmllbGQ6IGludGVybmFscy5yZWxlYXNlRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIC8vIFN1Ym1pdHRpbmcvbG9hZGluZyBkb2VzIE5PVCBkaXNhYmxlIGZpZWxkcyDigJQgb25seSB0aGVcbiAgICAgICAgLy8gZXhwbGljaXQgYGRpc2FibGVkYCBwcm9wIGRvZXMuIEtlZXBpbmcgaXNMb2FkaW5nIG91dCBvZiB0aGlzIHNsaWNlXG4gICAgICAgIC8vIG1lYW5zIGEgc3VibWl0IGN5Y2xlIG5vIGxvbmdlciByZS1yZW5kZXJzIGV2ZXJ5IGZpZWxkIHNoZWxsLlxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgdmFsaWRhdGVUcmlnZ2VyLFxuICAgICAgICAvLyBQcm9Gb3JtIHNwZWNpZmljc1xuICAgICAgICBtb2RlLFxuICAgICAgICBncmlkLFxuICAgICAgICBjb2xQcm9wczogc3RhYmxlQ29sUHJvcHMgIT09IG51bGwgJiYgc3RhYmxlQ29sUHJvcHMgIT09IHZvaWQgMCA/IHN0YWJsZUNvbFByb3BzIDogREVGQVVMVF9DT0xfUFJPUFMsXG4gICAgICAgIHJlZ2lzdGVyVHJhbnNmb3JtOiByZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgdW5yZWdpc3RlclRyYW5zZm9ybTogdW5yZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgcmVnaXN0ZXJWYWx1ZVR5cGUsXG4gICAgICAgIHVucmVnaXN0ZXJWYWx1ZVR5cGUsXG4gICAgICAgIGZpZWxkUHJvcHM6IHN0YWJsZUZpZWxkUHJvcHMsXG4gICAgICAgIGZvcm1JdGVtUHJvcHM6IHN0YWJsZUZvcm1JdGVtUHJvcHMsXG4gICAgICAgIGxheW91dDogc3RhYmxlTGF5b3V0LFxuICAgICAgICBmb3JtQ29tcG9uZW50VHlwZSxcbiAgICB9KSwgW1xuICAgICAgICBwcm9Gb3JtRm9ybUluc3RhbmNlLFxuICAgICAgICBpbnRlcm5hbHMuc2V0RmllbGRWYWx1ZSxcbiAgICAgICAgaW50ZXJuYWxzLnNldEZpZWxkRXJyb3IsXG4gICAgICAgIGludGVybmFscy5zZXRGaWVsZFdhcm5pbmcsXG4gICAgICAgIGludGVybmFscy52YWxpZGF0ZUZpZWxkQXN5bmMsXG4gICAgICAgIGludGVybmFscy5yZWdpc3RlckZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMudW5yZWdpc3RlckZpZWxkLFxuICAgICAgICBpbnRlcm5hbHMucmV0YWluRmllbGQsXG4gICAgICAgIGludGVybmFscy5yZWxlYXNlRmllbGQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICB2YWxpZGF0ZVRyaWdnZXIsXG4gICAgICAgIG1vZGUsXG4gICAgICAgIGdyaWQsXG4gICAgICAgIHN0YWJsZUNvbFByb3BzLFxuICAgICAgICByZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgdW5yZWdpc3RlclRyYW5zZm9ybSxcbiAgICAgICAgcmVnaXN0ZXJWYWx1ZVR5cGUsXG4gICAgICAgIHVucmVnaXN0ZXJWYWx1ZVR5cGUsXG4gICAgICAgIHN0YWJsZUZpZWxkUHJvcHMsXG4gICAgICAgIHN0YWJsZUZvcm1JdGVtUHJvcHMsXG4gICAgICAgIHN0YWJsZUxheW91dCxcbiAgICAgICAgZm9ybUNvbXBvbmVudFR5cGUsXG4gICAgXSk7XG4gICAgY29uc3QgV3JhcHBlckNvbXBvbmVudCA9IGdyaWQgPyBSb3cgOiBGcmFnbWVudDtcbiAgICBjb25zdCB3cmFwcGVyUHJvcHMgPSBncmlkID8gT2JqZWN0LmFzc2lnbih7fSwgcm93UHJvcHMpIDoge307XG4gICAgLy8gUmVzZXQgY2FsbGJhY2sgY2hhaW46IHRoZSBTdWJtaXR0ZXIgcmVzZXRzIHRoZSB2YWx1ZXMgZmlyc3QsIHRoZW4gdGhlXG4gICAgLy8gc3VibWl0dGVyLWxldmVsIG9uUmVzZXQsIHRoZW4gdGhlIGZvcm0tbGV2ZWwgb25SZXNldCAod2l0aCBmaW5hbFZhbHVlcylcbiAgICAvLyBhbmQgdGhlIFVSTCBjbGVhbnVwIOKAlCBmaXJlZCBleGFjdGx5IG9uY2UgcGVyIHJlc2V0IGFjdGlvbi5cbiAgICBjb25zdCBoYW5kbGVTdWJtaXR0ZXJSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICh0eXBlb2Ygc3VibWl0dGVyID09PSAnb2JqZWN0JylcbiAgICAgICAgICAgIChfYSA9IHN1Ym1pdHRlci5vblJlc2V0KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChzdWJtaXR0ZXIpO1xuICAgICAgICBmaXJlRm9ybVJlc2V0KCk7XG4gICAgfSk7XG4gICAgY29uc3Qgc3VibWl0dGVyTm9kZSA9IHN1Ym1pdHRlciAhPT0gZmFsc2UgJiYgbW9kZSAhPT0gJ3JlYWQnID8gKF9qc3goU3VibWl0dGVyLCBPYmplY3QuYXNzaWduKHt9LCAodHlwZW9mIHN1Ym1pdHRlciA9PT0gJ29iamVjdCcgPyBzdWJtaXR0ZXIgOiB7fSksIHsgb25SZXNldDogaGFuZGxlU3VibWl0dGVyUmVzZXQsIGxvYWRpbmc6IGlzTG9hZGluZyB9KSkpIDogbnVsbDtcbiAgICByZXR1cm4gKF9qc3goUHJvRm9ybVN0YWJsZUNvbnRleHQuUHJvdmlkZXIsIHsgdmFsdWU6IHN0YWJsZVZhbHVlLCBjaGlsZHJlbjogX2pzeChQcm9Gb3JtU3RhdGVDb250ZXh0LlByb3ZpZGVyLCB7IHZhbHVlOiBzdG9yZSwgY2hpbGRyZW46IF9qc3goRm9ybUNvbnRyb2xTaXplQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogc2l6ZSwgY2hpbGRyZW46IF9qc3hzKFwiZm9ybVwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogZm9ybUVsUmVmLCBjbGFzc05hbWU6IGZvcm1DbGFzc2VzKHVuZGVmaW5lZCwgam9pbkNscyhjbGFzc2VzKCksIGNsYXNzTmFtZSkpLCBvblN1Ym1pdDogd3JhcHBlZEhhbmRsZVN1Ym1pdCwgb25SZXNldDogaW50ZXJuYWxzLmhhbmRsZVJlc2V0LCBjaGlsZHJlbjogW19qc3goV3JhcHBlckNvbXBvbmVudCwgT2JqZWN0LmFzc2lnbih7fSwgd3JhcHBlclByb3BzLCB7IGNoaWxkcmVuOiBjaGlsZHJlbiB9KSksIHN1Ym1pdHRlck5vZGVdIH0pKSB9KSB9KSB9KSk7XG59O1xuUHJvRm9ybUJhc2UuZGlzcGxheU5hbWUgPSAnUHJvRm9ybSc7XG5leHBvcnQgY29uc3QgUHJvRm9ybSA9IG1lbW8oUHJvRm9ybUJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
2
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
2
3
|
var __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {
|
|
3
4
|
function adopt(value) {
|
|
4
5
|
return value instanceof P ? value : new P(function (resolve) {
|
|
@@ -48,16 +49,15 @@ var SubmitterBase = function SubmitterBase(props) {
|
|
|
48
49
|
loading = _props$loading === void 0 ? false : _props$loading;
|
|
49
50
|
var form = useFormInstance();
|
|
50
51
|
var handleSubmit = useMemoizedFn(function () {
|
|
51
|
-
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/
|
|
52
|
-
return
|
|
53
|
-
while (1) switch (_context.
|
|
52
|
+
return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regenerator().m(function _callee() {
|
|
53
|
+
return _regenerator().w(function (_context) {
|
|
54
|
+
while (1) switch (_context.n) {
|
|
54
55
|
case 0:
|
|
55
56
|
onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit();
|
|
56
|
-
_context.
|
|
57
|
+
_context.n = 1;
|
|
57
58
|
return form.submitForm();
|
|
58
59
|
case 1:
|
|
59
|
-
|
|
60
|
-
return _context.stop();
|
|
60
|
+
return _context.a(2);
|
|
61
61
|
}
|
|
62
62
|
}, _callee);
|
|
63
63
|
}));
|
|
@@ -124,4 +124,4 @@ var SubmitterBase = function SubmitterBase(props) {
|
|
|
124
124
|
SubmitterBase.displayName = 'Submitter';
|
|
125
125
|
export var Submitter = /*#__PURE__*/memo(SubmitterBase);
|
|
126
126
|
export default Submitter;
|
|
127
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsImUiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwibWVtbyIsInVzZU1lbW8iLCJ1c2VNZW1vaXplZEZuIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJ1c2VGb3JtSW5zdGFuY2UiLCJCdXR0b24iLCJDU1NfUFJFRklYIiwiREVGQVVMVF9URVhUIiwiY2xhc3NlcyIsImNvbmNhdCIsIlN1Ym1pdHRlckJhc2UiLCJwcm9wcyIsIl9wcm9wcyRzdWJtaXRUZXh0Iiwic3VibWl0VGV4dCIsInN1Ym1pdCIsIl9wcm9wcyRyZXNldFRleHQiLCJyZXNldFRleHQiLCJyZXNldCIsInJlbmRlciIsIm9uU3VibWl0Iiwib25SZXNldCIsInN1Ym1pdEJ1dHRvblByb3BzIiwicmVzZXRCdXR0b25Qcm9wcyIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsImZvcm0iLCJoYW5kbGVTdWJtaXQiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2Iiwic3VibWl0Rm9ybSIsInN0b3AiLCJoYW5kbGVSZXNldCIsInJlc2V0RmllbGRzIiwiaGFuZGxlUmVzZXRDbGljayIsIl9hIiwib25DbGljayIsImNhbGwiLCJoYW5kbGVTdWJtaXRDbGljayIsInJlc2V0QnV0dG9uIiwiT2JqZWN0IiwiYXNzaWduIiwidHlwZSIsImNvbG9yIiwiY2hpbGRyZW4iLCJz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aXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbyB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VNZW1vaXplZEZuIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlTWVtb2l6ZWRGbic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUZvcm1JbnN0YW5jZSB9IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgQ1NTX1BSRUZJWCwgREVGQVVMVF9URVhUIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tc3VibWl0dGVyYCk7XG5jb25zdCBTdWJtaXR0ZXJCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBzdWJtaXRUZXh0ID0gREVGQVVMVF9URVhULnN1Ym1pdCwgcmVzZXRUZXh0ID0gREVGQVVMVF9URVhULnJlc2V0LCByZW5kZXIsIG9uU3VibWl0LCBvblJlc2V0LCBzdWJtaXRCdXR0b25Qcm9wcywgcmVzZXRCdXR0b25Qcm9wcywgbG9hZGluZyA9IGZhbHNlLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZm9ybSA9IHVzZUZvcm1JbnN0YW5jZSgpO1xuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdCA9IHVzZU1lbW9pemVkRm4oKCkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIG9uU3VibWl0ID09PSBudWxsIHx8IG9uU3VibWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblN1Ym1pdCgpO1xuICAgICAgICB5aWVsZCBmb3JtLnN1Ym1pdEZvcm0oKTtcbiAgICB9KSk7XG4gICAgLy8gUmVzZXQgdGhlIHZhbHVlcyBGSVJTVCwgdGhlbiBmaXJlIHRoZSBjYWxsYmFjayBjaGFpbixcbiAgICAvLyBzbyBvblJlc2V0IG9ic2VydmVzIHRoZSBhbHJlYWR5LXJlc2V0IHN0YXRlLiByZXNldEZpZWxkcygpIGl0c2VsZiBpcyBhXG4gICAgLy8gcHVyZSBzdGF0ZSBBUEkgYW5kIGZpcmVzIG5vIGNhbGxiYWNrcy5cbiAgICBjb25zdCBoYW5kbGVSZXNldCA9IHVzZU1lbW9pemVkRm4oKCkgPT4ge1xuICAgICAgICBmb3JtLnJlc2V0RmllbGRzKCk7XG4gICAgICAgIG9uUmVzZXQgPT09IG51bGwgfHwgb25SZXNldCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25SZXNldCgpO1xuICAgIH0pO1xuICAgIC8vIEJ1dHRvbiBvbkNsaWNrIGNoYWlucyB0aGUgY29uc3VtZXIncyByZXNldEJ1dHRvblByb3BzLm9uQ2xpY2sgKG1pcnJvcmluZ1xuICAgIC8vIGhhbmRsZVN1Ym1pdENsaWNrKS4gT3ZlcmxheSBjbG9zZSBkb2VzIE5PVCBkZXBlbmQgb24gdGhpcyDigJQgaXQgcmlkZXMgdGhlXG4gICAgLy8gZm9ybS1sZXZlbCBvblJlc2V0IGNoYW5uZWwgaW4gRGlhbG9nRm9ybS9EcmF3ZXJGb3JtLlxuICAgIGNvbnN0IGhhbmRsZVJlc2V0Q2xpY2sgPSB1c2VNZW1vaXplZEZuKChlKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaGFuZGxlUmVzZXQoKTtcbiAgICAgICAgKF9hID0gcmVzZXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCByZXNldEJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNldEJ1dHRvblByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHJlc2V0QnV0dG9uUHJvcHMsIGUpO1xuICAgIH0pO1xuICAgIC8vIFRoZSBkZWZhdWx0IHN1Ym1pdCBidXR0b24ga2VlcHMgdHlwZT1cInN1Ym1pdFwiIHNvIHRoZSBhY3R1YWwgc3VibWlzc2lvblxuICAgIC8vIGZsb3dzIHRocm91Z2ggdGhlIDxmb3JtPiBvblN1Ym1pdCBoYW5kbGVyIGV4YWN0bHkgb25jZSDigJQgdGhpcyBjbGlja1xuICAgIC8vIGhhbmRsZXIgb25seSBmaXJlcyB0aGUgdXNlcidzIG9uU3VibWl0IGNhbGxiYWNrIChwbHVzIGFueSBvbkNsaWNrIHRoZXlcbiAgICAvLyBwYXNzZWQgdmlhIHN1Ym1pdEJ1dHRvblByb3BzKS5cbiAgICBjb25zdCBoYW5kbGVTdWJtaXRDbGljayA9IHVzZU1lbW9pemVkRm4oKGUpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBvblN1Ym1pdCA9PT0gbnVsbCB8fCBvblN1Ym1pdCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TdWJtaXQoKTtcbiAgICAgICAgKF9hID0gc3VibWl0QnV0dG9uUHJvcHMgPT09IG51bGwgfHwgc3VibWl0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHN1Ym1pdEJ1dHRvblByb3BzLm9uQ2xpY2spID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKHN1Ym1pdEJ1dHRvblByb3BzLCBlKTtcbiAgICB9KTtcbiAgICBjb25zdCByZXNldEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJidXR0b25cIiwgY29sb3I6IFwic2Vjb25kYXJ5XCIgfSwgcmVzZXRCdXR0b25Qcm9wcywgeyBvbkNsaWNrOiBoYW5kbGVSZXNldENsaWNrLCBjaGlsZHJlbjogcmVzZXRUZXh0IH0pLCBcInJlc2V0XCIpKSwgW3Jlc2V0VGV4dCwgcmVzZXRCdXR0b25Qcm9wcywgaGFuZGxlUmVzZXRDbGlja10pO1xuICAgIGNvbnN0IHN1Ym1pdEJ1dHRvbiA9IHVzZU1lbW8oKCkgPT4gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHsgdHlwZTogXCJzdWJtaXRcIiwgY29sb3I6IFwicHJpbWFyeVwiLCBsb2FkaW5nOiBsb2FkaW5nIH0sIHN1Ym1pdEJ1dHRvblByb3BzLCB7IG9uQ2xpY2s6IGhhbmRsZVN1Ym1pdENsaWNrLCBjaGlsZHJlbjogc3VibWl0VGV4dCB9KSwgXCJzdWJtaXRcIikpLCBbc3VibWl0VGV4dCwgc3VibWl0QnV0dG9uUHJvcHMsIGxvYWRpbmcsIGhhbmRsZVN1Ym1pdENsaWNrXSk7XG4gICAgY29uc3QgZG9tID0gW3Jlc2V0QnV0dG9uLCBzdWJtaXRCdXR0b25dO1xuICAgIGlmIChyZW5kZXIpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiByZW5kZXIoeyBmb3JtLCBzdWJtaXQ6IGhhbmRsZVN1Ym1pdCwgcmVzZXQ6IGhhbmRsZVJlc2V0IH0sIGRvbSkgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIGNoaWxkcmVuOiBbcmVzZXRCdXR0b24sIHN1Ym1pdEJ1dHRvbl0gfSkpO1xufTtcblN1Ym1pdHRlckJhc2UuZGlzcGxheU5hbWUgPSAnU3VibWl0dGVyJztcbmV4cG9ydCBjb25zdCBTdWJtaXR0ZXIgPSBtZW1vKFN1Ym1pdHRlckJhc2UpO1xuZXhwb3J0IGRlZmF1bHQgU3VibWl0dGVyOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vU3VibWl0dGVyLnRzeCJdLCJuYW1lcyI6WyJlIiwidCIsInIiLCJTeW1ib2wiLCJuIiwiaXRlcmF0b3IiLCJvIiwidG9TdHJpbmdUYWciLCJpIiwiYyIsInByb3RvdHlwZSIsIkdlbmVyYXRvciIsInUiLCJPYmplY3QiLCJjcmVhdGUiLCJfcmVnZW5lcmF0b3JEZWZpbmUyIiwiZiIsInAiLCJ5IiwiRyIsInYiLCJhIiwiZCIsImJpbmQiLCJsZW5ndGgiLCJsIiwiVHlwZUVycm9yIiwiY2FsbCIsImRvbmUiLCJ2YWx1ZSIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJnZXRQcm90b3R5cGVPZiIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiZGlzcGxheU5hbWUiLCJfcmVnZW5lcmF0b3IiLCJ3IiwibSIsImRlZmluZVByb3BlcnR5IiwiX3JlZ2VuZXJhdG9yRGVmaW5lIiwiX2ludm9rZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwidGhlbiIsImFwcGx5IiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VNZW1vIiwidXNlTWVtb2l6ZWRGbiIsImRlZmF1bHQiLCJjbGFzc25hbWVzIiwidXNlRm9ybUluc3RhbmNlIiwiQnV0dG9uIiwiQ1NTX1BSRUZJWCIsIkRFRkFVTFRfVEVYVCIsImNsYXNzZXMiLCJjb25jYXQiLCJTdWJtaXR0ZXJCYXNlIiwicHJvcHMiLCJfcHJvcHMkc3VibWl0VGV4dCIsInN1Ym1pdFRleHQiLCJzdWJtaXQiLCJfcHJvcHMkcmVzZXRUZXh0IiwicmVzZXRUZXh0IiwicmVzZXQiLCJyZW5kZXIiLCJvblN1Ym1pdCIsIm9uUmVzZXQiLCJzdWJtaXRCdXR0b25Qcm9wcyIsInJlc2V0QnV0dG9uUHJvcHMiLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJmb3JtIiwiaGFuZGxlU3VibWl0IiwiX2NhbGxlZSIsIl9jb250ZXh0Iiwic3VibWl0Rm9ybSIsImhhbmRsZVJlc2V0IiwicmVzZXRGaWVsZHMiLCJoYW5kbGVSZXNldENsaWNrIiwiX2EiLCJvbkNsaWNrIiwiaGFuZGxlU3VibWl0Q2xpY2siLCJyZXNldEJ1dHRvbiIsImFzc2lnbiIsInR5cGUiLCJjb2xvciIsImNoaWxkcmVuIiwic3VibWl0QnV0dG9uIiwiZG9tIiwiY2xhc3NOYW1lIiwiU3VibWl0dGVyIl0sIm1hcHBpbmdzIjoiMEJBQ0EsdUtBQUFBLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLHdCQUFBQyxNQUFBLEdBQUFBLE1BQUEsT0FBQUMsQ0FBQSxHQUFBRixDQUFBLENBQUFHLFFBQUEsa0JBQUFDLENBQUEsR0FBQUosQ0FBQSxDQUFBSyxXQUFBLDhCQUFBQyxFQUFBTixDQUFBLEVBQUFFLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLFFBQUFDLENBQUEsR0FBQUwsQ0FBQSxJQUFBQSxDQUFBLENBQUFNLFNBQUEsWUFBQUMsU0FBQSxHQUFBUCxDQUFBLEdBQUFPLFNBQUEsRUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsQ0FBQUwsQ0FBQSxDQUFBQyxTQUFBLFVBQUFLLG1CQUFBLENBQUFILENBQUEsdUJBQUFWLENBQUEsRUFBQUUsQ0FBQSxFQUFBRSxDQUFBLFFBQUFFLENBQUEsRUFBQUMsQ0FBQSxFQUFBRyxDQUFBLEVBQUFJLENBQUEsTUFBQUMsQ0FBQSxHQUFBWCxDQUFBLFFBQUFZLENBQUEsT0FBQUMsQ0FBQSxLQUFBRixDQUFBLEtBQUFiLENBQUEsS0FBQWdCLENBQUEsRUFBQXBC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QUE7TUFDckJhLE9BQU8sRUFBRUMsaUJBQWlCO01BQUFLLFFBQUEsRUFFekIzQjtJQUFVLENBQUEsQ0FBQSxFQVBQLFFBQVEsQ0FRTDtFQUFBLENBQ1YsRUFDRCxDQUFDQSxVQUFVLEVBQUVRLGlCQUFpQixFQUFFRyxPQUFPLEVBQUVXLGlCQUFpQixDQUFDLENBQzVEO0VBRUQsSUFBTU8sR0FBRyxHQUFtQixDQUFDTixXQUFXLEVBQUVLLFlBQVksQ0FBbUI7RUFFekUsSUFBSXZCLE1BQU0sRUFBRTtJQUNWLE9BQ0V0QixJQUFBLENBQUEsS0FBQSxFQUFBO01BQUsrQyxTQUFTLEVBQUVuQyxPQUFPLENBQUEsQ0FBRTtNQUFBZ0MsUUFBQSxFQUN0QnRCLE1BQU0sQ0FBQztRQUFFTyxJQUFJLEVBQUpBLElBQUk7UUFBRVgsTUFBTSxFQUFFWSxZQUFZO1FBQUVULEtBQUssRUFBRWE7TUFBVyxDQUFFLEVBQUVZLEdBQUc7SUFBQyxDQUFBLENBQzVEO0VBRVY7RUFFQSxPQUNFNUMsS0FBQSxDQUFBLEtBQUEsRUFBQTtJQUFLNkMsU0FBUyxFQUFFbkMsT0FBTyxDQUFBLENBQUU7SUFBQWdDLFFBQUEsRUFBQSxDQUN0QkosV0FBVyxFQUNYSyxZQUFZO0VBQUEsQ0FBQSxDQUNUO0FBRVYsQ0FBQztBQUVEL0IsYUFBYSxDQUFDekMsV0FBVyxHQUFHLFdBQVc7QUFFdkMsT0FBTyxJQUFNMkUsU0FBUyxnQkFBRzdDLElBQUksQ0FBQ1csYUFBYSxDQUFDO0FBRTVDLGVBQWVrQyxTQUFTIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9TdWJtaXR0ZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlRm9ybUluc3RhbmNlIH0gZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBDU1NfUFJFRklYLCBERUZBVUxUX1RFWFQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5jb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtDU1NfUFJFRklYfS1zdWJtaXR0ZXJgKTtcbmNvbnN0IFN1Ym1pdHRlckJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHN1Ym1pdFRleHQgPSBERUZBVUxUX1RFWFQuc3VibWl0LCByZXNldFRleHQgPSBERUZBVUxUX1RFWFQucmVzZXQsIHJlbmRlciwgb25TdWJtaXQsIG9uUmVzZXQsIHN1Ym1pdEJ1dHRvblByb3BzLCByZXNldEJ1dHRvblByb3BzLCBsb2FkaW5nID0gZmFsc2UsIH0gPSBwcm9wcztcbiAgICBjb25zdCBmb3JtID0gdXNlRm9ybUluc3RhbmNlKCk7XG4gICAgY29uc3QgaGFuZGxlU3VibWl0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgb25TdWJtaXQgPT09IG51bGwgfHwgb25TdWJtaXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU3VibWl0KCk7XG4gICAgICAgIHlpZWxkIGZvcm0uc3VibWl0Rm9ybSgpO1xuICAgIH0pKTtcbiAgICAvLyBSZXNldCB0aGUgdmFsdWVzIEZJUlNULCB0aGVuIGZpcmUgdGhlIGNhbGxiYWNrIGNoYWluLFxuICAgIC8vIHNvIG9uUmVzZXQgb2JzZXJ2ZXMgdGhlIGFscmVhZHktcmVzZXQgc3RhdGUuIHJlc2V0RmllbGRzKCkgaXRzZWxmIGlzIGFcbiAgICAvLyBwdXJlIHN0YXRlIEFQSSBhbmQgZmlyZXMgbm8gY2FsbGJhY2tzLlxuICAgIGNvbnN0IGhhbmRsZVJlc2V0ID0gdXNlTWVtb2l6ZWRGbigoKSA9PiB7XG4gICAgICAgIGZvcm0ucmVzZXRGaWVsZHMoKTtcbiAgICAgICAgb25SZXNldCA9PT0gbnVsbCB8fCBvblJlc2V0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblJlc2V0KCk7XG4gICAgfSk7XG4gICAgLy8gQnV0dG9uIG9uQ2xpY2sgY2hhaW5zIHRoZSBjb25zdW1lcidzIHJlc2V0QnV0dG9uUHJvcHMub25DbGljayAobWlycm9yaW5nXG4gICAgLy8gaGFuZGxlU3VibWl0Q2xpY2spLiBPdmVybGF5IGNsb3NlIGRvZXMgTk9UIGRlcGVuZCBvbiB0aGlzIOKAlCBpdCByaWRlcyB0aGVcbiAgICAvLyBmb3JtLWxldmVsIG9uUmVzZXQgY2hhbm5lbCBpbiBEaWFsb2dGb3JtL0RyYXdlckZvcm0uXG4gICAgY29uc3QgaGFuZGxlUmVzZXRDbGljayA9IHVzZU1lbW9pemVkRm4oKGUpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBoYW5kbGVSZXNldCgpO1xuICAgICAgICAoX2EgPSByZXNldEJ1dHRvblByb3BzID09PSBudWxsIHx8IHJlc2V0QnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlc2V0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwocmVzZXRCdXR0b25Qcm9wcywgZSk7XG4gICAgfSk7XG4gICAgLy8gVGhlIGRlZmF1bHQgc3VibWl0IGJ1dHRvbiBrZWVwcyB0eXBlPVwic3VibWl0XCIgc28gdGhlIGFjdHVhbCBzdWJtaXNzaW9uXG4gICAgLy8gZmxvd3MgdGhyb3VnaCB0aGUgPGZvcm0+IG9uU3VibWl0IGhhbmRsZXIgZXhhY3RseSBvbmNlIOKAlCB0aGlzIGNsaWNrXG4gICAgLy8gaGFuZGxlciBvbmx5IGZpcmVzIHRoZSB1c2VyJ3Mgb25TdWJtaXQgY2FsbGJhY2sgKHBsdXMgYW55IG9uQ2xpY2sgdGhleVxuICAgIC8vIHBhc3NlZCB2aWEgc3VibWl0QnV0dG9uUHJvcHMpLlxuICAgIGNvbnN0IGhhbmRsZVN1Ym1pdENsaWNrID0gdXNlTWVtb2l6ZWRGbigoZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIG9uU3VibWl0ID09PSBudWxsIHx8IG9uU3VibWl0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvblN1Ym1pdCgpO1xuICAgICAgICAoX2EgPSBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBzdWJtaXRCdXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogc3VibWl0QnV0dG9uUHJvcHMub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoc3VibWl0QnV0dG9uUHJvcHMsIGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJlc2V0QnV0dG9uID0gdXNlTWVtbygoKSA9PiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcImJ1dHRvblwiLCBjb2xvcjogXCJzZWNvbmRhcnlcIiB9LCByZXNldEJ1dHRvblByb3BzLCB7IG9uQ2xpY2s6IGhhbmRsZVJlc2V0Q2xpY2ssIGNoaWxkcmVuOiByZXNldFRleHQgfSksIFwicmVzZXRcIikpLCBbcmVzZXRUZXh0LCByZXNldEJ1dHRvblByb3BzLCBoYW5kbGVSZXNldENsaWNrXSk7XG4gICAgY29uc3Qgc3VibWl0QnV0dG9uID0gdXNlTWVtbygoKSA9PiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oeyB0eXBlOiBcInN1Ym1pdFwiLCBjb2xvcjogXCJwcmltYXJ5XCIsIGxvYWRpbmc6IGxvYWRpbmcgfSwgc3VibWl0QnV0dG9uUHJvcHMsIHsgb25DbGljazogaGFuZGxlU3VibWl0Q2xpY2ssIGNoaWxkcmVuOiBzdWJtaXRUZXh0IH0pLCBcInN1Ym1pdFwiKSksIFtzdWJtaXRUZXh0LCBzdWJtaXRCdXR0b25Qcm9wcywgbG9hZGluZywgaGFuZGxlU3VibWl0Q2xpY2tdKTtcbiAgICBjb25zdCBkb20gPSBbcmVzZXRCdXR0b24sIHN1Ym1pdEJ1dHRvbl07XG4gICAgaWYgKHJlbmRlcikge1xuICAgICAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoKSwgY2hpbGRyZW46IHJlbmRlcih7IGZvcm0sIHN1Ym1pdDogaGFuZGxlU3VibWl0LCByZXNldDogaGFuZGxlUmVzZXQgfSwgZG9tKSB9KSk7XG4gICAgfVxuICAgIHJldHVybiAoX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoKSwgY2hpbGRyZW46IFtyZXNldEJ1dHRvbiwgc3VibWl0QnV0dG9uXSB9KSk7XG59O1xuU3VibWl0dGVyQmFzZS5kaXNwbGF5TmFtZSA9ICdTdWJtaXR0ZXInO1xuZXhwb3J0IGNvbnN0IFN1Ym1pdHRlciA9IG1lbW8oU3VibWl0dGVyQmFzZSk7XG5leHBvcnQgZGVmYXVsdCBTdWJtaXR0ZXI7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|