@1money/component-ui 0.0.78 → 0.0.79

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.
Files changed (35) hide show
  1. package/es/components/Button/Button.js +17 -15
  2. package/es/components/Button/constants.d.ts +0 -1
  3. package/es/components/Button/constants.js +1 -2
  4. package/es/components/Button/interface.d.ts +7 -0
  5. package/es/components/Dialog/Dialog.js +54 -208
  6. package/es/components/Dialog/DialogContent.d.ts +16 -0
  7. package/es/components/Dialog/DialogContent.js +72 -0
  8. package/es/components/Dialog/DialogControls.d.ts +27 -0
  9. package/es/components/Dialog/DialogControls.js +65 -0
  10. package/es/components/Dialog/className.d.ts +12 -0
  11. package/es/components/Dialog/className.js +16 -0
  12. package/es/components/Dialog/hooks.d.ts +5 -0
  13. package/es/components/Dialog/hooks.js +69 -0
  14. package/es/components/Dialog/style/Dialog.css +2 -11
  15. package/es/components/Dialog/types.d.ts +1 -0
  16. package/es/components/Dialog/types.js +2 -0
  17. package/es/index.css +1 -1
  18. package/lib/components/Button/Button.js +17 -15
  19. package/lib/components/Button/constants.d.ts +0 -1
  20. package/lib/components/Button/constants.js +2 -3
  21. package/lib/components/Button/interface.d.ts +7 -0
  22. package/lib/components/Dialog/Dialog.js +56 -210
  23. package/lib/components/Dialog/DialogContent.d.ts +16 -0
  24. package/lib/components/Dialog/DialogContent.js +78 -0
  25. package/lib/components/Dialog/DialogControls.d.ts +27 -0
  26. package/lib/components/Dialog/DialogControls.js +72 -0
  27. package/lib/components/Dialog/className.d.ts +12 -0
  28. package/lib/components/Dialog/className.js +23 -0
  29. package/lib/components/Dialog/hooks.d.ts +5 -0
  30. package/lib/components/Dialog/hooks.js +75 -0
  31. package/lib/components/Dialog/style/Dialog.css +2 -11
  32. package/lib/components/Dialog/types.d.ts +1 -0
  33. package/lib/components/Dialog/types.js +6 -0
  34. package/lib/index.css +1 -1
  35. package/package.json +1 -1
@@ -7,14 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports["default"] = exports.Dialog = void 0;
8
8
  var _jsxRuntime = require("react/jsx-runtime");
9
9
  var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
10
- var _classnames = _interopRequireDefault(require("classnames"));
11
10
  var _react = require("react");
12
- var _Button = require("../Button");
13
- var _Icons = require("../Icons");
14
11
  var _Portal = require("../Portal");
15
- var _Typography = require("../Typography");
16
- var _ref3 = require("../../utils/ref");
12
+ var _ref = require("../../utils/ref");
13
+ var _className = require("./className");
17
14
  var _constants = require("./constants");
15
+ var _DialogContent = require("./DialogContent");
16
+ var _DialogControls = require("./DialogControls");
17
+ var _hooks = require("./hooks");
18
18
  require("./style");
19
19
  var __rest = void 0 && (void 0).__rest || function (s, e) {
20
20
  var t = {};
@@ -24,147 +24,6 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
24
24
  }
25
25
  return t;
26
26
  };
27
- var scrollLockCount = 0;
28
- var getClassName = function getClassName(prefixCls, slot, modifier) {
29
- var baseClassName = "".concat(_constants.DIALOG_NAMESPACE, "-").concat(prefixCls).concat(slot ? "-".concat(slot) : '');
30
- return modifier ? "".concat(baseClassName, "-").concat(modifier) : baseClassName;
31
- };
32
- var setBodyOverflow = function setBodyOverflow(value) {
33
- if (typeof document === 'undefined') return;
34
- document.body.style.overflow = value;
35
- };
36
- var lockBodyScroll = function lockBodyScroll() {
37
- scrollLockCount += 1;
38
- setBodyOverflow(_constants.DIALOG_DEFAULTS.overflowHidden);
39
- };
40
- var unlockBodyScroll = function unlockBodyScroll() {
41
- scrollLockCount = Math.max(0, scrollLockCount - 1);
42
- if (scrollLockCount === 0) {
43
- requestAnimationFrame(function () {
44
- if (scrollLockCount === 0) {
45
- setBodyOverflow(_constants.DIALOG_DEFAULTS.overflowReset);
46
- }
47
- });
48
- }
49
- };
50
- var useBodyScrollLock = function useBodyScrollLock(locked) {
51
- var isLockedRef = (0, _react.useRef)(false);
52
- (0, _react.useEffect)(function () {
53
- if (!locked || isLockedRef.current) return undefined;
54
- isLockedRef.current = true;
55
- lockBodyScroll();
56
- return function () {
57
- if (!isLockedRef.current) return;
58
- isLockedRef.current = false;
59
- unlockBodyScroll();
60
- };
61
- }, [locked]);
62
- };
63
- var useDialogFocus = function useDialogFocus(active, dialogRef) {
64
- var previousActiveElementRef = (0, _react.useRef)(null);
65
- (0, _react.useEffect)(function () {
66
- if (!active || typeof document === 'undefined') return undefined;
67
- previousActiveElementRef.current = document.activeElement instanceof HTMLElement ? document.activeElement : null;
68
- var frame = window.requestAnimationFrame(function () {
69
- var _a;
70
- (_a = dialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
71
- });
72
- return function () {
73
- window.cancelAnimationFrame(frame);
74
- };
75
- }, [active, dialogRef]);
76
- (0, _react.useEffect)(function () {
77
- var _a, _b;
78
- if (active) return;
79
- (_b = (_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus) === null || _b === void 0 ? void 0 : _b.call(_a);
80
- previousActiveElementRef.current = null;
81
- }, [active]);
82
- };
83
- var useEscapeClose = function useEscapeClose(enabled, onClose) {
84
- (0, _react.useEffect)(function () {
85
- if (!enabled || typeof document === 'undefined') return undefined;
86
- var handleKeyDown = function handleKeyDown(event) {
87
- if (event.key !== _constants.DIALOG_DEFAULTS.escapeKey) return;
88
- event.preventDefault();
89
- void (onClose === null || onClose === void 0 ? void 0 : onClose());
90
- };
91
- document.addEventListener(_constants.DIALOG_DEFAULTS.keydownEvent, handleKeyDown);
92
- return function () {
93
- document.removeEventListener(_constants.DIALOG_DEFAULTS.keydownEvent, handleKeyDown);
94
- };
95
- }, [enabled, onClose]);
96
- };
97
- var renderTypographyNode = function renderTypographyNode(node, renderText) {
98
- if (node == null || typeof node === 'boolean') return null;
99
- if (typeof node === 'string' || typeof node === 'number') {
100
- return renderText(node);
101
- }
102
- return node;
103
- };
104
- var renderIllustrationNode = function renderIllustrationNode(illustration) {
105
- if (!illustration) return null;
106
- if (typeof illustration === 'string') {
107
- return (0, _jsxRuntime.jsx)(_Icons.Icons, {
108
- name: illustration,
109
- size: _constants.DIALOG_DEFAULTS.illustrationSize
110
- });
111
- }
112
- return /*#__PURE__*/(0, _react.isValidElement)(illustration) ? illustration : null;
113
- };
114
- var toVoidHandler = function toVoidHandler(action) {
115
- return function () {
116
- void (action === null || action === void 0 ? void 0 : action());
117
- };
118
- };
119
- var createActionHandler = function createActionHandler(action, buttonClick) {
120
- return function (event) {
121
- buttonClick === null || buttonClick === void 0 ? void 0 : buttonClick(event);
122
- if (event.defaultPrevented || !action) return;
123
- void action();
124
- };
125
- };
126
- var renderControlButton = function renderControlButton(prefixCls, type, iconNode, onClick) {
127
- return (0, _jsxRuntime.jsx)("button", {
128
- type: _constants.DIALOG_DEFAULTS.buttonHtmlType,
129
- className: (0, _classnames["default"])(getClassName(prefixCls, _constants.DIALOG_SLOT.control), getClassName(prefixCls, _constants.DIALOG_SLOT.control, type)),
130
- "aria-label": _constants.DIALOG_CONTROL_LABELS[type],
131
- onClick: toVoidHandler(onClick),
132
- children: iconNode
133
- });
134
- };
135
- var renderActionButton = function renderActionButton(_ref) {
136
- var prefixCls = _ref.prefixCls,
137
- kind = _ref.kind,
138
- text = _ref.text,
139
- action = _ref.action,
140
- buttonProps = _ref.buttonProps;
141
- var _a;
142
- if (text == null || !action) return null;
143
- return (0, _jsxRuntime.jsx)(_Button.Button, Object.assign({}, buttonProps, {
144
- type: _constants.DIALOG_DEFAULTS.buttonHtmlType,
145
- size: _constants.DIALOG_DEFAULTS.buttonSize,
146
- color: (_a = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.color) !== null && _a !== void 0 ? _a : _constants.DIALOG_DEFAULT_BUTTON_COLORS[kind],
147
- className: (0, _classnames["default"])(getClassName(prefixCls, _constants.DIALOG_SLOT.actionButton), getClassName(prefixCls, _constants.DIALOG_SLOT.actionButton, kind), buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.className),
148
- style: buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.style,
149
- onClick: createActionHandler(action, buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.onClick),
150
- children: text
151
- }));
152
- };
153
- var resolveFooterNode = function resolveFooterNode(_ref2) {
154
- var footer = _ref2.footer,
155
- size = _ref2.size,
156
- cancelButton = _ref2.cancelButton,
157
- okButton = _ref2.okButton;
158
- if (footer === null) return null;
159
- if (typeof footer === 'function') return footer(cancelButton, okButton);
160
- if (footer !== undefined) return footer;
161
- if (!cancelButton && !okButton) return null;
162
- return size === _constants.DIALOG_SIZE.large ? (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
163
- children: [cancelButton, okButton]
164
- }) : (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
165
- children: [okButton, cancelButton]
166
- });
167
- };
168
27
  var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
169
28
  var className = props.className,
170
29
  style = props.style,
@@ -212,14 +71,11 @@ var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
212
71
  var titleId = (0, _react.useId)();
213
72
  var handleSetDialogRef = (0, _react.useCallback)(function (node) {
214
73
  dialogRef.current = node;
215
- (0, _ref3.fillRef)(ref, node);
74
+ (0, _ref.fillRef)(ref, node);
216
75
  }, [ref]);
217
76
  var handleCancel = (0, _useEventCallback["default"])(function () {
218
77
  void (onCancel === null || onCancel === void 0 ? void 0 : onCancel());
219
78
  });
220
- var handleOk = (0, _useEventCallback["default"])(function () {
221
- void (onOk === null || onOk === void 0 ? void 0 : onOk());
222
- });
223
79
  var handleBack = (0, _useEventCallback["default"])(function () {
224
80
  void (onBack === null || onBack === void 0 ? void 0 : onBack());
225
81
  });
@@ -227,56 +83,60 @@ var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
227
83
  if (!maskClosable) return;
228
84
  handleCancel();
229
85
  });
230
- useBodyScrollLock(open);
231
- useDialogFocus(open, dialogRef);
232
- useEscapeClose(open, handleCancel);
86
+ (0, _hooks.useBodyScrollLock)(open);
87
+ (0, _hooks.useDialogFocus)(open, dialogRef);
88
+ (0, _hooks.useEscapeClose)(open, handleCancel);
233
89
  var hasMedia = media != null;
234
- var closeControlNode = showCloseIcon ? renderControlButton(prefixCls, _constants.DIALOG_CONTROL_TYPE.close, closeIcon !== null && closeIcon !== void 0 ? closeIcon : (0, _jsxRuntime.jsx)(_Icons.Icons, {
235
- name: _constants.DIALOG_DEFAULT_ICONS[_constants.DIALOG_CONTROL_TYPE.close],
236
- size: _constants.DIALOG_DEFAULTS.controlIconSize
237
- }), handleCancel) : null;
238
- var backControlNode = showBackIcon ? renderControlButton(prefixCls, _constants.DIALOG_CONTROL_TYPE.back, backIcon !== null && backIcon !== void 0 ? backIcon : (0, _jsxRuntime.jsx)(_Icons.Icons, {
239
- name: _constants.DIALOG_DEFAULT_ICONS[_constants.DIALOG_CONTROL_TYPE.back],
240
- size: _constants.DIALOG_DEFAULTS.controlIconSize
241
- }), handleBack) : null;
242
- var illustrationNode = renderIllustrationNode(illustration);
243
- var titleNode = renderTypographyNode(title, function (value) {
244
- return (0, _jsxRuntime.jsx)(_Typography.TypographyHeadline, {
245
- size: "md",
246
- as: "h2",
247
- color: "default",
248
- children: value
249
- });
250
- });
251
- var childrenNode = renderTypographyNode(children, function (value) {
252
- return (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
253
- size: "md",
254
- as: "p",
255
- strong: true,
256
- color: "default-secondary",
257
- children: value
258
- });
90
+ var closeControlNode = showCloseIcon ? (0, _DialogControls.renderDialogControlButton)({
91
+ prefixCls: prefixCls,
92
+ type: _constants.DIALOG_CONTROL_TYPE.close,
93
+ icon: closeIcon,
94
+ onClick: handleCancel
95
+ }) : null;
96
+ var backControlNode = showBackIcon ? (0, _DialogControls.renderDialogControlButton)({
97
+ prefixCls: prefixCls,
98
+ type: _constants.DIALOG_CONTROL_TYPE.back,
99
+ icon: backIcon,
100
+ onClick: handleBack
101
+ }) : null;
102
+ var hasHeading = (0, _DialogContent.hasDialogHeadingContent)({
103
+ title: title,
104
+ illustration: illustration
259
105
  });
260
- var cancelButton = renderActionButton({
106
+ var headingNode = hasHeading ? (0, _jsxRuntime.jsx)(_DialogContent.DialogHeading, {
107
+ prefixCls: prefixCls,
108
+ titleId: titleId,
109
+ title: title,
110
+ illustration: illustration
111
+ }) : null;
112
+ var childrenNode = (0, _DialogContent.renderDialogBodyContent)(children);
113
+ var cancelButton = (0, _DialogControls.renderDialogActionButton)({
261
114
  prefixCls: prefixCls,
262
115
  kind: _constants.DIALOG_ACTION_KIND.cancel,
263
116
  text: cancelText,
264
117
  action: onCancel,
265
118
  buttonProps: cancelButtonProps
266
119
  });
267
- var okButton = renderActionButton({
120
+ var okButton = (0, _DialogControls.renderDialogActionButton)({
268
121
  prefixCls: prefixCls,
269
122
  kind: _constants.DIALOG_ACTION_KIND.ok,
270
123
  text: okText,
271
124
  action: onOk,
272
125
  buttonProps: okButtonProps
273
126
  });
274
- var footerNode = resolveFooterNode({
127
+ var footerNode = (0, _DialogControls.resolveDialogFooter)({
275
128
  footer: footer,
276
- size: size,
277
129
  cancelButton: cancelButton,
278
130
  okButton: okButton
279
131
  });
132
+ var panelClassName = (0, _className.getDialogPanelClassName)({
133
+ prefixCls: prefixCls,
134
+ size: size,
135
+ fullWidth: fullWidth,
136
+ fixed: fixed,
137
+ hasMedia: hasMedia,
138
+ className: className
139
+ });
280
140
  // `width` is a convenience that sets the panel's width inline, overriding the
281
141
  // `size` preset's class-level width. An explicit `style.width` still wins (it is
282
142
  // spread last). Note: `width` is not meant to be combined with `fullWidth`, whose
@@ -288,14 +148,14 @@ var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
288
148
  return (0, _jsxRuntime.jsx)(_Portal.Portal, {
289
149
  children: (0, _jsxRuntime.jsxs)("div", {
290
150
  style: rootStyle,
291
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.root),
151
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.root),
292
152
  children: [(0, _jsxRuntime.jsx)("div", {
293
153
  "aria-hidden": "true",
294
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.overlay),
154
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.overlay),
295
155
  onClick: handleOverlayClick
296
156
  }), (0, _jsxRuntime.jsx)("div", {
297
157
  style: wrapperStyle,
298
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.wrapper),
158
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.wrapper),
299
159
  children: (0, _jsxRuntime.jsxs)("div", Object.assign({}, rest, {
300
160
  ref: handleSetDialogRef,
301
161
  role: "dialog",
@@ -303,41 +163,27 @@ var DialogBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
303
163
  "aria-labelledby": title ? titleId : undefined,
304
164
  tabIndex: -1,
305
165
  style: panelStyle,
306
- className: (0, _classnames["default"])(getClassName(prefixCls), getClassName(prefixCls, undefined, size), fullWidth && getClassName(prefixCls, undefined, _constants.DIALOG_MODIFIER.fullWidth), fixed && getClassName(prefixCls, undefined, _constants.DIALOG_MODIFIER.fixed), hasMedia && getClassName(prefixCls, undefined, _constants.DIALOG_MODIFIER.withMedia), className),
166
+ className: panelClassName,
307
167
  children: [closeControlNode, hasMedia && (0, _jsxRuntime.jsx)("div", {
308
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.media),
168
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.media),
309
169
  children: media
310
170
  }), (0, _jsxRuntime.jsxs)("div", {
311
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.inner),
312
- children: [(backControlNode || fixed && (illustrationNode || titleNode)) && (0, _jsxRuntime.jsxs)("div", {
171
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.inner),
172
+ children: [(backControlNode || fixed && headingNode) && (0, _jsxRuntime.jsxs)("div", {
313
173
  style: headerStyle,
314
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.header),
315
- children: [backControlNode, fixed && illustrationNode && (0, _jsxRuntime.jsx)("div", {
316
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.illustration),
317
- children: illustrationNode
318
- }), fixed && titleNode && (0, _jsxRuntime.jsx)("div", {
319
- id: titleId,
320
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.title),
321
- children: titleNode
322
- })]
174
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.header),
175
+ children: [backControlNode, fixed && headingNode]
323
176
  }), (0, _jsxRuntime.jsxs)("div", {
324
177
  style: bodyStyle,
325
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.body),
326
- children: [!fixed && illustrationNode && (0, _jsxRuntime.jsx)("div", {
327
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.illustration),
328
- children: illustrationNode
329
- }), !fixed && titleNode && (0, _jsxRuntime.jsx)("div", {
330
- id: titleId,
331
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.title),
332
- children: titleNode
333
- }), childrenNode && (0, _jsxRuntime.jsx)("div", {
178
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.body),
179
+ children: [!fixed && headingNode, childrenNode && (0, _jsxRuntime.jsx)("div", {
334
180
  style: contentStyle,
335
- className: getClassName(prefixCls, _constants.DIALOG_SLOT.content),
181
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.content),
336
182
  children: childrenNode
337
183
  })]
338
184
  }), footerNode && (0, _jsxRuntime.jsx)("div", {
339
185
  style: footerStyle,
340
- className: (0, _classnames["default"])(getClassName(prefixCls, _constants.DIALOG_SLOT.footer), getClassName(prefixCls, _constants.DIALOG_SLOT.footer, size)),
186
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.footer),
341
187
  children: footerNode
342
188
  })]
343
189
  })]
@@ -350,4 +196,4 @@ DialogBase.displayName = 'Dialog';
350
196
  var Dialog = exports.Dialog = /*#__PURE__*/(0, _react.memo)(DialogBase);
351
197
  Dialog.displayName = 'Dialog';
352
198
  var _default = exports["default"] = Dialog;
353
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NsYXNzbmFtZXMiLCJfcmVhY3QiLCJfQnV0dG9uIiwiX0ljb25zIiwiX1BvcnRhbCIsIl9UeXBvZ3JhcGh5IiwiX3JlZjMiLCJfY29uc3RhbnRzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0IiwiRElBTE9HX05BTUVTUEFDRSIsInNldEJvZHlPdmVyZmxvdyIsInZhbHVlIiwiZG9jdW1lbnQiLCJib2R5Iiwic3R5bGUiLCJvdmVyZmxvdyIsImxvY2tCb2R5U2Nyb2xsIiwiRElBTE9HX0RFRkFVTFRTIiwib3ZlcmZsb3dIaWRkZW4iLCJ1bmxvY2tCb2R5U2Nyb2xsIiwiTWF0aCIsIm1heCIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIm92ZXJmbG93UmVzZXQiLCJ1c2VCb2R5U2Nyb2xsTG9jayIsImxvY2tlZCIsImlzTG9ja2VkUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiY3VycmVudCIsInVuZGVmaW5lZCIsInVzZURpYWxvZ0ZvY3VzIiwiYWN0aXZlIiwiZGlhbG9nUmVmIiwicHJldmlvdXNBY3RpdmVFbGVtZW50UmVmIiwiYWN0aXZlRWxlbWVudCIsIkhUTUxFbGVtZW50IiwiZnJhbWUiLCJ3aW5kb3ciLCJfYSIsImZvY3VzIiwiY2FuY2VsQW5pbWF0aW9uRnJhbWUiLCJfYiIsInVzZUVzY2FwZUNsb3NlIiwiZW5hYmxlZCIsIm9uQ2xvc2UiLCJoYW5kbGVLZXlEb3duIiwiZXZlbnQiLCJrZXkiLCJlc2NhcGVLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImFkZEV2ZW50TGlzdGVuZXIiLCJrZXlkb3duRXZlbnQiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwicmVuZGVyVHlwb2dyYXBoeU5vZGUiLCJub2RlIiwicmVuZGVyVGV4dCIsInJlbmRlcklsbHVzdHJhdGlvbk5vZGUiLCJpbGx1c3RyYXRpb24iLCJfanN4IiwiSWNvbnMiLCJuYW1lIiwic2l6ZSIsImlsbHVzdHJhdGlvblNpemUiLCJpc1ZhbGlkRWxlbWVudCIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJESUFMT0dfU0xPVCIsImNvbnRyb2wiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiQnV0dG9uIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsImFjdGlvbkJ1dHRvbiIsInJlc29sdmVGb290ZXJOb2RlIiwiX3JlZjIiLCJmb290ZXIiLCJjYW5jZWxCdXR0b24iLCJva0J1dHRvbiIsIkRJQUxPR19TSVpFIiwibGFyZ2UiLCJfanN4cyIsIl9GcmFnbWVudCIsIkRpYWxvZ0Jhc2UiLCJmb3J3YXJkUmVmIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwid2lkdGgiLCJ0aXRsZSIsIm1lZGlhIiwiY2xvc2VJY29uIiwiYmFja0ljb24iLCJvbk9rIiwib25DYW5jZWwiLCJvbkJhY2siLCJfcHJvcHMkb2tUZXh0Iiwib2tUZXh0IiwiX3Byb3BzJGNhbmNlbFRleHQiLCJjYW5jZWxUZXh0Iiwicm9vdFN0eWxlIiwid3JhcHBlclN0eWxlIiwiYm9keVN0eWxlIiwiaGVhZGVyU3R5bGUiLCJjb250ZW50U3R5bGUiLCJmb290ZXJTdHlsZSIsImNhbmNlbEJ1dHRvblByb3BzIiwib2tCdXR0b25Qcm9wcyIsInJlc3QiLCJ0aXRsZUlkIiwidXNlSWQiLCJoYW5kbGVTZXREaWFsb2dSZWYiLCJ1c2VDYWxsYmFjayIsImZpbGxSZWYiLCJoYW5kbGVDYW5jZWwiLCJ1c2VFdmVudENhbGxiYWNrIiwiaGFuZGxlT2siLCJoYW5kbGVCYWNrIiwiaGFuZGxlT3ZlcmxheUNsaWNrIiwiaGFzTWVkaWEiLCJjbG9zZUNvbnRyb2xOb2RlIiwiRElBTE9HX0NPTlRST0xfVFlQRSIsImNsb3NlIiwiRElBTE9HX0RFRkFVTFRfSUNPTlMiLCJjb250cm9sSWNvblNpemUiLCJiYWNrQ29udHJvbE5vZGUiLCJiYWNrIiwiaWxsdXN0cmF0aW9uTm9kZSIsInRpdGxlTm9kZSIsIlR5cG9ncmFwaHlIZWFkbGluZSIsImFzIiwiY2hpbGRyZW5Ob2RlIiwiVHlwb2dyYXBoeUJvZHkiLCJzdHJvbmciLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJjYW5jZWwiLCJvayIsImZvb3Rlck5vZGUiLCJwYW5lbFN0eWxlIiwiUG9ydGFsIiwicm9vdCIsIm92ZXJsYXkiLCJ3cmFwcGVyIiwicm9sZSIsInRhYkluZGV4IiwiRElBTE9HX01PRElGSUVSIiwid2l0aE1lZGlhIiwiaW5uZXIiLCJoZWFkZXIiLCJpZCIsImNvbnRlbnQiLCJkaXNwbGF5TmFtZSIsIkRpYWxvZyIsImV4cG9ydHMiLCJtZW1vIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBU0EsSUFBQUssT0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsS0FBQSxHQUFBVCxPQUFBO0FBSUEsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBZUFBLE9BQUE7QURsQ0EsSUFBSVcsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FDMkJELElBQUlXLGVBQWUsR0FBRyxDQUFDO0FBRXZCLElBQU1DLFlBQVksR0FBRyxTQUFmQSxZQUFZQSxDQUFJQyxTQUFpQixFQUFFQyxJQUFhLEVBQUVDLFFBQWlCLEVBQUk7RUFDM0UsSUFBTUMsYUFBYSxNQUFBQyxNQUFBLENBQU1DLDJCQUFnQixPQUFBRCxNQUFBLENBQUlKLFNBQVMsRUFBQUksTUFBQSxDQUFHSCxJQUFJLE9BQUFHLE1BQUEsQ0FBT0gsSUFBSSxJQUFLLEVBQUUsQ0FBRTtFQUNqRixPQUFPQyxRQUFRLE1BQUFFLE1BQUEsQ0FBTUQsYUFBYSxPQUFBQyxNQUFBLENBQUlGLFFBQVEsSUFBS0MsYUFBYTtBQUNsRSxDQUFDO0FBRUQsSUFBTUcsZUFBZSxHQUFHLFNBQWxCQSxlQUFlQSxDQUFJQyxLQUFhLEVBQUk7RUFDeEMsSUFBSSxPQUFPQyxRQUFRLEtBQUssV0FBVyxFQUFFO0VBQ3JDQSxRQUFRLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxRQUFRLEdBQUdKLEtBQUs7QUFDdEMsQ0FBQztBQUVELElBQU1LLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBQSxFQUFRO0VBQzFCZCxlQUFlLElBQUksQ0FBQztFQUNwQlEsZUFBZSxDQUFDTywwQkFBZSxDQUFDQyxjQUFjLENBQUM7QUFDakQsQ0FBQztBQUVELElBQU1DLGdCQUFnQixHQUFHLFNBQW5CQSxnQkFBZ0JBLENBQUEsRUFBUTtFQUM1QmpCLGVBQWUsR0FBR2tCLElBQUksQ0FBQ0MsR0FBRyxDQUFDLENBQUMsRUFBRW5CLGVBQWUsR0FBRyxDQUFDLENBQUM7RUFFbEQsSUFBSUEsZUFBZSxLQUFLLENBQUMsRUFBRTtJQUN6Qm9CLHFCQUFxQixDQUFDLFlBQUs7TUFDekIsSUFBSXBCLGVBQWUsS0FBSyxDQUFDLEVBQUU7UUFDekJRLGVBQWUsQ0FBQ08sMEJBQWUsQ0FBQ00sYUFBYSxDQUFDO01BQ2hEO0lBQ0YsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDO0FBRUQsSUFBTUMsaUJBQWlCLEdBQUcsU0FBcEJBLGlCQUFpQkEsQ0FBSUMsTUFBZSxFQUFJO0VBQzVDLElBQU1DLFdBQVcsR0FBRyxJQUFBQyxhQUFNLEVBQUMsS0FBSyxDQUFDO0VBRWpDLElBQUFDLGdCQUFTLEVBQUMsWUFBSztJQUNiLElBQUksQ0FBQ0gsTUFBTSxJQUFJQyxXQUFXLENBQUNHLE9BQU8sRUFBRSxPQUFPQyxTQUFTO0lBRXBESixXQUFXLENBQUNHLE9BQU8sR0FBRyxJQUFJO0lBQzFCYixjQUFjLENBQUEsQ0FBRTtJQUVoQixPQUFPLFlBQUs7TUFDVixJQUFJLENBQUNVLFdBQVcsQ0FBQ0csT0FBTyxFQUFFO01BQzFCSCxXQUFXLENBQUNHLE9BQU8sR0FBRyxLQUFLO01BQzNCVixnQkFBZ0IsQ0FBQSxDQUFFO0lBQ3BCLENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ00sTUFBTSxDQUFDLENBQUM7QUFDZCxDQUFDO0FBRUQsSUFBTU0sY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUNsQkMsTUFBZSxFQUNmQyxTQUEyQyxFQUN6QztFQUNGLElBQU1DLHdCQUF3QixHQUFHLElBQUFQLGFBQU0sRUFBcUIsSUFBSSxDQUFDO0VBRWpFLElBQUFDLGdCQUFTLEVBQUMsWUFBSztJQUNiLElBQUksQ0FBQ0ksTUFBTSxJQUFJLE9BQU9wQixRQUFRLEtBQUssV0FBVyxFQUFFLE9BQU9rQixTQUFTO0lBRWhFSSx3QkFBd0IsQ0FBQ0wsT0FBTyxHQUM5QmpCLFFBQVEsQ0FBQ3VCLGFBQWEsWUFBWUMsV0FBVyxHQUFHeEIsUUFBUSxDQUFDdUIsYUFBYSxHQUFHLElBQUk7SUFFL0UsSUFBTUUsS0FBSyxHQUFHQyxNQUFNLENBQUNoQixxQkFBcUIsQ0FBQyxZQUFLO01EMUJ4QyxJQUFJaUIsRUFBRTtNQzJCWixDQUFBQSxFQUFBLEdBQUFOLFNBQVMsQ0FBQ0osT0FBTyxNQUFBLElBQUEsSUFBQVUsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVDLEtBQUssQ0FBQSxDQUFFO0lBQzVCLENBQUMsQ0FBQztJQUVGLE9BQU8sWUFBSztNQUNWRixNQUFNLENBQUNHLG9CQUFvQixDQUFDSixLQUFLLENBQUM7SUFDcEMsQ0FBQztFQUNILENBQUMsRUFBRSxDQUFDTCxNQUFNLEVBQUVDLFNBQVMsQ0FBQyxDQUFDO0VBRXZCLElBQUFMLGdCQUFTLEVBQUMsWUFBSztJRDNCVCxJQUFJVyxFQUFFLEVBQUVHLEVBQUU7SUM0QmQsSUFBSVYsTUFBTSxFQUFFO0lBRVosQ0FBQVUsRUFBQSxHQUFBLENBQUFILEVBQUEsR0FBQUwsd0JBQXdCLENBQUNMLE9BQU8sTUFBQSxJQUFBLElBQUFVLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFQyxLQUFLLE1BQUEsSUFBQSxJQUFBRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBQTlDLElBQUEsQ0FBQTJDLEVBQUEsQ0FBSTtJQUMzQ0wsd0JBQXdCLENBQUNMLE9BQU8sR0FBRyxJQUFJO0VBQ3pDLENBQUMsRUFBRSxDQUFDRyxNQUFNLENBQUMsQ0FBQztBQUNkLENBQUM7QUFFRCxJQUFNVyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUlDLE9BQWdCLEVBQUVDLE9BQXFCLEVBQUk7RUFDakUsSUFBQWpCLGdCQUFTLEVBQUMsWUFBSztJQUNiLElBQUksQ0FBQ2dCLE9BQU8sSUFBSSxPQUFPaEMsUUFBUSxLQUFLLFdBQVcsRUFBRSxPQUFPa0IsU0FBUztJQUVqRSxJQUFNZ0IsYUFBYSxHQUFHLFNBQWhCQSxhQUFhQSxDQUFJQyxLQUFvQixFQUFJO01BQzdDLElBQUlBLEtBQUssQ0FBQ0MsR0FBRyxLQUFLL0IsMEJBQWUsQ0FBQ2dDLFNBQVMsRUFBRTtNQUM3Q0YsS0FBSyxDQUFDRyxjQUFjLENBQUEsQ0FBRTtNQUN0QixNQUFLTCxPQUFPLEtBQUEsSUFBQSxJQUFQQSxPQUFPLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVBBLE9BQU8sQ0FBQSxDQUFJLENBQUE7SUFDbEIsQ0FBQztJQUVEakMsUUFBUSxDQUFDdUMsZ0JBQWdCLENBQUNsQywwQkFBZSxDQUFDbUMsWUFBWSxFQUFFTixhQUFhLENBQUM7SUFFdEUsT0FBTyxZQUFLO01BQ1ZsQyxRQUFRLENBQUN5QyxtQkFBbUIsQ0FBQ3BDLDBCQUFlLENBQUNtQyxZQUFZLEVBQUVOLGFBQWEsQ0FBQztJQUMzRSxDQUFDO0VBQ0gsQ0FBQyxFQUFFLENBQUNGLE9BQU8sRUFBRUMsT0FBTyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELElBQU1TLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQ3hCQyxJQUFlLEVBQ2ZDLFVBQWlELEVBQy9DO0VBQ0YsSUFBSUQsSUFBSSxJQUFJLElBQUksSUFBSSxPQUFPQSxJQUFJLEtBQUssU0FBUyxFQUFFLE9BQU8sSUFBSTtFQUUxRCxJQUFJLE9BQU9BLElBQUksS0FBSyxRQUFRLElBQUksT0FBT0EsSUFBSSxLQUFLLFFBQVEsRUFBRTtJQUN4RCxPQUFPQyxVQUFVLENBQUNELElBQUksQ0FBQztFQUN6QjtFQUVBLE9BQU9BLElBQUk7QUFDYixDQUFDO0FBRUQsSUFBTUUsc0JBQXNCLEdBQUcsU0FBekJBLHNCQUFzQkEsQ0FBSUMsWUFBbUMsRUFBSTtFQUNyRSxJQUFJLENBQUNBLFlBQVksRUFBRSxPQUFPLElBQUk7RUFFOUIsSUFBSSxPQUFPQSxZQUFZLEtBQUssUUFBUSxFQUFFO0lBQ3BDLE9BQU8sSUFBQUMsZUFBQSxFQUFDQyxZQUFLLEVBQUE7TUFBQ0MsSUFBSSxFQUFFSCxZQUF3QjtNQUFFSSxJQUFJLEVBQUU3QywwQkFBZSxDQUFDOEM7SUFBZ0IsQ0FBQSxDQUFJO0VBQzFGO0VBRUEsT0FBTyxpQkFBQUMscUJBQWMsRUFBQ04sWUFBWSxDQUFDLEdBQUdBLFlBQVksR0FBRyxJQUFJO0FBQzNELENBQUM7QUFFRCxJQUFNTyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQUlDLE1BQXFCO0VBQUEsT0FBSyxZQUFLO0lBQ3BELE1BQUtBLE1BQU0sS0FBQSxJQUFBLElBQU5BLE1BQU0sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBTkEsTUFBTSxDQUFBLENBQUksQ0FBQTtFQUNqQixDQUFDO0FBQUE7QUFFRCxJQUFNQyxtQkFBbUIsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUN2QkQsTUFBcUIsRUFDckJFLFdBQW9DO0VBQUEsT0FDUCxVQUFDckIsS0FBSyxFQUFJO0lBQ3ZDcUIsV0FBVyxLQUFBLElBQUEsSUFBWEEsV0FBVyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFYQSxXQUFXLENBQUdyQixLQUFLLENBQUM7SUFFcEIsSUFBSUEsS0FBSyxDQUFDc0IsZ0JBQWdCLElBQUksQ0FBQ0gsTUFBTSxFQUFFO0lBRXZDLEtBQUtBLE1BQU0sQ0FBQSxDQUFFO0VBQ2YsQ0FBQztBQUFBO0FBRUQsSUFBTUksbUJBQW1CLEdBQUcsU0FBdEJBLG1CQUFtQkEsQ0FDdkJsRSxTQUFpQixFQUNqQm1FLElBQXVCLEVBQ3ZCQyxRQUFtQixFQUNuQkMsT0FBc0I7RUFBQSxPQUV0QixJQUFBZCxlQUFBLEVBQUEsUUFBQSxFQUFBO0lBQ0VZLElBQUksRUFBRXRELDBCQUFlLENBQUN5RCxjQUFjO0lBQ3BDQyxTQUFTLEVBQUUsSUFBQUMsc0JBQVUsRUFDbkJ6RSxZQUFZLENBQUNDLFNBQVMsRUFBRXlFLHNCQUFXLENBQUNDLE9BQU8sQ0FBQyxFQUM1QzNFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQ0MsT0FBTyxFQUFFUCxJQUFJLENBQUMsQ0FDbkQ7SUFBQSxZQUFBLEVBQ1dRLGdDQUFxQixDQUFDUixJQUFJLENBQUM7SUFDdkNFLE9BQU8sRUFBRVIsYUFBYSxDQUFDUSxPQUFPLENBQUM7SUFBQU8sUUFBQSxFQUU5QlI7RUFBUSxDQUFBLENBQ0Y7QUFBQSxDQUNWO0FBRUQsSUFBTVMsa0JBQWtCLEdBQUcsU0FBckJBLGtCQUFrQkEsQ0FBQUMsSUFBQSxFQVluQjtFQUFBLElBWEg5RSxTQUFTLEdBQUE4RSxJQUFBLENBQVQ5RSxTQUFTO0lBQ1QrRSxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtJQUNKQyxJQUFJLEdBQUFGLElBQUEsQ0FBSkUsSUFBSTtJQUNKbEIsTUFBTSxHQUFBZ0IsSUFBQSxDQUFOaEIsTUFBTTtJQUNObUIsV0FBVyxHQUFBSCxJQUFBLENBQVhHLFdBQVc7RURqRVQsSUFBSTlDLEVBQUU7RUN5RVIsSUFBSTZDLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQ2xCLE1BQU0sRUFBRSxPQUFPLElBQUk7RUFFeEMsT0FDRSxJQUFBUCxlQUFBLEVBQUMyQixjQUFNLEVBQUE3RixNQUFBLENBQUE4RixNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0RGLFdBQVcsRUFBQTtJQUNmZCxJQUFJLEVBQUV0RCwwQkFBZSxDQUFDeUQsY0FBYztJQUNwQ1osSUFBSSxFQUFFN0MsMEJBQWUsQ0FBQ3VFLFVBQVU7SUFDaENDLEtBQUssRUFBRSxDQUFBbEQsRUFBQSxHQUFBOEMsV0FBVyxLQUFBLElBQUEsSUFBWEEsV0FBVyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFYQSxXQUFXLENBQUVJLEtBQUssTUFBQSxJQUFBLElBQUFsRCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSW1ELHVDQUE0QixDQUFDUCxJQUFJLENBQUM7SUFDL0RSLFNBQVMsRUFBRSxJQUFBQyxzQkFBVSxFQUNuQnpFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQ2MsWUFBWSxDQUFDLEVBQ2pEeEYsWUFBWSxDQUFDQyxTQUFTLEVBQUV5RSxzQkFBVyxDQUFDYyxZQUFZLEVBQUVSLElBQUksQ0FBQyxFQUN2REUsV0FBVyxLQUFBLElBQUEsSUFBWEEsV0FBVyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFYQSxXQUFXLENBQUVWLFNBQVMsQ0FDdkI7SUFDRDdELEtBQUssRUFBRXVFLFdBQVcsS0FBQSxJQUFBLElBQVhBLFdBQVcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWEEsV0FBVyxDQUFFdkUsS0FBSztJQUN6QjJELE9BQU8sRUFBRU4sbUJBQW1CLENBQUNELE1BQU0sRUFBRW1CLFdBQVcsS0FBQSxJQUFBLElBQVhBLFdBQVcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBWEEsV0FBVyxDQUFFWixPQUFPLENBQUM7SUFBQU8sUUFBQSxFQUV6REk7RUFBSSxDQUFBLENBQUEsQ0FDRTtBQUViLENBQUM7QUFFRCxJQUFNUSxpQkFBaUIsR0FBRyxTQUFwQkEsaUJBQWlCQSxDQUFBQyxLQUFBLEVBVWxCO0VBQUEsSUFUSEMsTUFBTSxHQUFBRCxLQUFBLENBQU5DLE1BQU07SUFDTmhDLElBQUksR0FBQStCLEtBQUEsQ0FBSi9CLElBQUk7SUFDSmlDLFlBQVksR0FBQUYsS0FBQSxDQUFaRSxZQUFZO0lBQ1pDLFFBQVEsR0FBQUgsS0FBQSxDQUFSRyxRQUFRO0VBT1IsSUFBSUYsTUFBTSxLQUFLLElBQUksRUFBRSxPQUFPLElBQUk7RUFDaEMsSUFBSSxPQUFPQSxNQUFNLEtBQUssVUFBVSxFQUFFLE9BQU9BLE1BQU0sQ0FBQ0MsWUFBWSxFQUFFQyxRQUFRLENBQUM7RUFDdkUsSUFBSUYsTUFBTSxLQUFLaEUsU0FBUyxFQUFFLE9BQU9nRSxNQUFNO0VBQ3ZDLElBQUksQ0FBQ0MsWUFBWSxJQUFJLENBQUNDLFFBQVEsRUFBRSxPQUFPLElBQUk7RUFFM0MsT0FBT2xDLElBQUksS0FBS21DLHNCQUFXLENBQUNDLEtBQUssR0FFN0IsSUFBQUMsZ0JBQUEsRUFBQUMsb0JBQUEsRUFBQTtJQUFBcEIsUUFBQSxFQUFBLENBQ0dlLFlBQVksRUFDWkMsUUFBUTtFQUFBLENBQUEsQ0FDUixHQUdILElBQUFHLGdCQUFBLEVBQUFDLG9CQUFBLEVBQUE7SUFBQXBCLFFBQUEsRUFBQSxDQUNHZ0IsUUFBUSxFQUNSRCxZQUFZO0VBQUEsQ0FBQSxDQUVoQjtBQUNMLENBQUM7QUFFRCxJQUFNTSxVQUFVLGdCQUFHLElBQUFDLGlCQUFVLEVBQThCLFVBQUNDLEtBQUssRUFBRUMsR0FBRyxFQUFJO0VBQ3hFLElBQ0U3QixTQUFTLEdBZ0NQNEIsS0FBSyxDQWhDUDVCLFNBQVM7SUFDVDdELEtBQUssR0ErQkh5RixLQUFLLENBL0JQekYsS0FBSztJQUFBMkYsZ0JBQUEsR0ErQkhGLEtBQUssQ0E5QlBuRyxTQUFTO0lBQVRBLFNBQVMsR0FBQXFHLGdCQUFBLGNBQUdDLGdDQUFxQixHQUFBRCxnQkFBQTtJQUFBRSxXQUFBLEdBOEIvQkosS0FBSyxDQTdCUEssSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBRyxLQUFLLEdBQUFBLFdBQUE7SUFBQUUsV0FBQSxHQTZCVk4sS0FBSyxDQTVCUHpDLElBQUk7SUFBSkEsSUFBSSxHQUFBK0MsV0FBQSxjQUFHWixzQkFBVyxDQUFDYSxLQUFLLEdBQUFELFdBQUE7SUFBQUUsbUJBQUEsR0E0QnRCUixLQUFLLENBM0JQUyxZQUFZO0lBQVpBLFlBQVksR0FBQUQsbUJBQUEsY0FBRyxJQUFJLEdBQUFBLG1CQUFBO0lBQUFFLG9CQUFBLEdBMkJqQlYsS0FBSyxDQTFCUFcsYUFBYTtJQUFiQSxhQUFhLEdBQUFELG9CQUFBLGNBQUcsSUFBSSxHQUFBQSxvQkFBQTtJQUFBRSxtQkFBQSxHQTBCbEJaLEtBQUssQ0F6QlBhLFlBQVk7SUFBWkEsWUFBWSxHQUFBRCxtQkFBQSxjQUFHLEtBQUssR0FBQUEsbUJBQUE7SUFBQUUsZ0JBQUEsR0F5QmxCZCxLQUFLLENBeEJQZSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBRyxLQUFLLEdBQUFBLGdCQUFBO0lBQUFFLFlBQUEsR0F3QmZoQixLQUFLLENBdkJQaUIsS0FBSztJQUFMQSxLQUFLLEdBQUFELFlBQUEsY0FBRyxLQUFLLEdBQUFBLFlBQUE7SUFDYkUsS0FBSyxHQXNCSGxCLEtBQUssQ0F0QlBrQixLQUFLO0lBQ0xDLEtBQUssR0FxQkhuQixLQUFLLENBckJQbUIsS0FBSztJQUNMMUMsUUFBUSxHQW9CTnVCLEtBQUssQ0FwQlB2QixRQUFRO0lBQ1J0QixZQUFZLEdBbUJWNkMsS0FBSyxDQW5CUDdDLFlBQVk7SUFDWmlFLEtBQUssR0FrQkhwQixLQUFLLENBbEJQb0IsS0FBSztJQUNMQyxTQUFTLEdBaUJQckIsS0FBSyxDQWpCUHFCLFNBQVM7SUFDVEMsUUFBUSxHQWdCTnRCLEtBQUssQ0FoQlBzQixRQUFRO0lBQ1IvQixNQUFNLEdBZUpTLEtBQUssQ0FmUFQsTUFBTTtJQUNOZ0MsSUFBSSxHQWNGdkIsS0FBSyxDQWRQdUIsSUFBSTtJQUNKQyxRQUFRLEdBYU54QixLQUFLLENBYlB3QixRQUFRO0lBQ1JDLE1BQU0sR0FZSnpCLEtBQUssQ0FaUHlCLE1BQU07SUFBQUMsYUFBQSxHQVlKMUIsS0FBSyxDQVhQMkIsTUFBTTtJQUFOQSxNQUFNLEdBQUFELGFBQUEsY0FBR2hILDBCQUFlLENBQUNpSCxNQUFNLEdBQUFELGFBQUE7SUFBQUUsaUJBQUEsR0FXN0I1QixLQUFLLENBVlA2QixVQUFVO0lBQVZBLFVBQVUsR0FBQUQsaUJBQUEsY0FBR2xILDBCQUFlLENBQUNtSCxVQUFVLEdBQUFELGlCQUFBO0lBQ3ZDRSxTQUFTLEdBU1A5QixLQUFLLENBVFA4QixTQUFTO0lBQ1RDLFlBQVksR0FRVi9CLEtBQUssQ0FSUCtCLFlBQVk7SUFDWkMsU0FBUyxHQU9QaEMsS0FBSyxDQVBQZ0MsU0FBUztJQUNUQyxXQUFXLEdBTVRqQyxLQUFLLENBTlBpQyxXQUFXO0lBQ1hDLFlBQVksR0FLVmxDLEtBQUssQ0FMUGtDLFlBQVk7SUFDWkMsV0FBVyxHQUlUbkMsS0FBSyxDQUpQbUMsV0FBVztJQUNYQyxpQkFBaUIsR0FHZnBDLEtBQUssQ0FIUG9DLGlCQUFpQjtJQUNqQkMsYUFBYSxHQUVYckMsS0FBSyxDQUZQcUMsYUFBYTtJQUNWQyxJQUFJLEdBQUF6SixNQUFBLENBQ0xtSCxLQUFLLEVBakNILENBQUEsV0FBQSxFQUFBLE9BQUEsRUFBQSxXQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxjQUFBLEVBQUEsZUFBQSxFQUFBLGNBQUEsRUFBQSxXQUFBLEVBQUEsT0FBQSxFQUFBLE9BQUEsRUFBQSxPQUFBLEVBQUEsVUFBQSxFQUFBLGNBQUEsRUFBQSxPQUFBLEVBQUEsV0FBQSxFQUFBLFVBQUEsRUFBQSxRQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxRQUFBLEVBQUEsUUFBQSxFQUFBLFlBQUEsRUFBQSxXQUFBLEVBQUEsY0FBQSxFQUFBLFdBQUEsRUFBQSxhQUFBLEVBQUEsY0FBQSxFQUFBLGFBQUEsRUFBQSxtQkFBQSxFQUFBLGVBQUEsQ0FpQ0wsQ0FBUTtFQUNULElBQU10RSxTQUFTLEdBQUcsSUFBQU4sYUFBTSxFQUF3QixJQUFJLENBQUM7RUFDckQsSUFBTW1ILE9BQU8sR0FBRyxJQUFBQyxZQUFLLEVBQUEsQ0FBRTtFQUV2QixJQUFNQyxrQkFBa0IsR0FBRyxJQUFBQyxrQkFBVyxFQUFDLFVBQUMxRixJQUEyQixFQUFJO0lBQ3JFdEIsU0FBUyxDQUFDSixPQUFPLEdBQUcwQixJQUFJO0lBQ3hCLElBQUEyRixhQUFPLEVBQUMxQyxHQUFHLEVBQUVqRCxJQUFJLENBQUM7RUFDcEIsQ0FBQyxFQUFFLENBQUNpRCxHQUFHLENBQUMsQ0FBQztFQUVULElBQU0yQyxZQUFZLEdBQUcsSUFBQUMsNEJBQWdCLEVBQUMsWUFBSztJQUN6QyxNQUFLckIsUUFBUSxLQUFBLElBQUEsSUFBUkEsUUFBUSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFSQSxRQUFRLENBQUEsQ0FBSSxDQUFBO0VBQ25CLENBQUMsQ0FBQztFQUNGLElBQU1zQixRQUFRLEdBQUcsSUFBQUQsNEJBQWdCLEVBQUMsWUFBSztJQUNyQyxNQUFLdEIsSUFBSSxLQUFBLElBQUEsSUFBSkEsSUFBSSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFKQSxJQUFJLENBQUEsQ0FBSSxDQUFBO0VBQ2YsQ0FBQyxDQUFDO0VBQ0YsSUFBTXdCLFVBQVUsR0FBRyxJQUFBRiw0QkFBZ0IsRUFBQyxZQUFLO0lBQ3ZDLE1BQUtwQixNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBQSxDQUFJLENBQUE7RUFDakIsQ0FBQyxDQUFDO0VBQ0YsSUFBTXVCLGtCQUFrQixHQUFHLElBQUFILDRCQUFnQixFQUFDLFlBQUs7SUFDL0MsSUFBSSxDQUFDcEMsWUFBWSxFQUFFO0lBQ25CbUMsWUFBWSxDQUFBLENBQUU7RUFDaEIsQ0FBQyxDQUFDO0VBRUYzSCxpQkFBaUIsQ0FBQ29GLElBQUksQ0FBQztFQUN2QjdFLGNBQWMsQ0FBQzZFLElBQUksRUFBRTNFLFNBQVMsQ0FBQztFQUMvQlUsY0FBYyxDQUFDaUUsSUFBSSxFQUFFdUMsWUFBWSxDQUFDO0VBRWxDLElBQU1LLFFBQVEsR0FBRzdCLEtBQUssSUFBSSxJQUFJO0VBQzlCLElBQU04QixnQkFBZ0IsR0FBR3ZDLGFBQWEsR0FDbEM1QyxtQkFBbUIsQ0FDbkJsRSxTQUFTLEVBQ1RzSiw4QkFBbUIsQ0FBQ0MsS0FBSyxFQUN6Qi9CLFNBQVMsS0FBQSxJQUFBLElBQVRBLFNBQVMsS0FBQSxLQUFBLENBQUEsR0FBVEEsU0FBUyxHQUNQLElBQUFqRSxlQUFBLEVBQUNDLFlBQUssRUFBQTtJQUNKQyxJQUFJLEVBQUUrRiwrQkFBb0IsQ0FBQ0YsOEJBQW1CLENBQUNDLEtBQUssQ0FBQztJQUNyRDdGLElBQUksRUFBRTdDLDBCQUFlLENBQUM0STtFQUFlLENBQUEsQ0FFeEMsRUFDRFYsWUFBWSxDQUNiLEdBQ0MsSUFBSTtFQUNSLElBQU1XLGVBQWUsR0FBRzFDLFlBQVksR0FDaEM5QyxtQkFBbUIsQ0FDbkJsRSxTQUFTLEVBQ1RzSiw4QkFBbUIsQ0FBQ0ssSUFBSSxFQUN4QmxDLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxHQUNOLElBQUFsRSxlQUFBLEVBQUNDLFlBQUssRUFBQTtJQUNKQyxJQUFJLEVBQUUrRiwrQkFBb0IsQ0FBQ0YsOEJBQW1CLENBQUNLLElBQUksQ0FBQztJQUNwRGpHLElBQUksRUFBRTdDLDBCQUFlLENBQUM0STtFQUFlLENBQUEsQ0FFeEMsRUFDRFAsVUFBVSxDQUNYLEdBQ0MsSUFBSTtFQUNSLElBQU1VLGdCQUFnQixHQUFHdkcsc0JBQXNCLENBQUNDLFlBQVksQ0FBQztFQUM3RCxJQUFNdUcsU0FBUyxHQUFHM0csb0JBQW9CLENBQUNvRSxLQUFLLEVBQUUsVUFBQy9HLEtBQUs7SUFBQSxPQUNsRCxJQUFBZ0QsZUFBQSxFQUFDdUcsOEJBQWtCLEVBQUE7TUFBQ3BHLElBQUksRUFBQyxJQUFJO01BQUNxRyxFQUFFLEVBQUMsSUFBSTtNQUFDMUUsS0FBSyxFQUFDLFNBQVM7TUFBQVQsUUFBQSxFQUNsRHJFO0lBQUssQ0FBQSxDQUNhO0VBQUEsQ0FDdEIsQ0FBQztFQUNGLElBQU15SixZQUFZLEdBQUc5RyxvQkFBb0IsQ0FBQzBCLFFBQVEsRUFBRSxVQUFDckUsS0FBSztJQUFBLE9BQ3hELElBQUFnRCxlQUFBLEVBQUMwRywwQkFBYyxFQUFBO01BQUN2RyxJQUFJLEVBQUMsSUFBSTtNQUFDcUcsRUFBRSxFQUFDLEdBQUc7TUFBQ0csTUFBTSxFQUFBLElBQUE7TUFBQzdFLEtBQUssRUFBQyxtQkFBbUI7TUFBQVQsUUFBQSxFQUM5RHJFO0lBQUssQ0FBQSxDQUNTO0VBQUEsQ0FDbEIsQ0FBQztFQUNGLElBQU1vRixZQUFZLEdBQUdkLGtCQUFrQixDQUFDO0lBQ3RDN0UsU0FBUyxFQUFUQSxTQUFTO0lBQ1QrRSxJQUFJLEVBQUVvRiw2QkFBa0IsQ0FBQ0MsTUFBTTtJQUMvQnBGLElBQUksRUFBRWdELFVBQVU7SUFDaEJsRSxNQUFNLEVBQUU2RCxRQUFRO0lBQ2hCMUMsV0FBVyxFQUFFc0Q7RUQxS2IsQ0MyS0QsQ0FBQztFQUNGLElBQU0zQyxRQUFRLEdBQUdmLGtCQUFrQixDQUFDO0lBQ2xDN0UsU0FBUyxFQUFUQSxTQUFTO0lBQ1QrRSxJQUFJLEVBQUVvRiw2QkFBa0IsQ0FBQ0UsRUFBRTtJQUMzQnJGLElBQUksRUFBRThDLE1BQU07SUFDWmhFLE1BQU0sRUFBRTRELElBQUk7SUFDWnpDLFdBQVcsRUFBRXVEO0VEMUtiLENDMktELENBQUM7RUFDRixJQUFNOEIsVUFBVSxHQUFHOUUsaUJBQWlCLENBQUM7SUFDbkNFLE1BQU0sRUFBTkEsTUFBTTtJQUNOaEMsSUFBSSxFQUFKQSxJQUFJO0lBQ0ppQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsUUFBUSxFQUFSQTtFRDFLQSxDQzJLRCxDQUFDO0VBQ0Y7RUFDQTtFQUNBO0VBQ0E7RUFDQSxJQUFNMkUsVUFBVSxHQUFBbEwsTUFBQSxDQUFBOEYsTUFBQSxDQUFBO0lBQUtrQyxLQUFLLEVBQUxBO0VBQUssQ0FBQSxFQUFLM0csS0FBSyxDQUFFO0VBRXRDLElBQUksQ0FBQzhGLElBQUksRUFBRSxPQUFPLElBQUk7RUFFdEIsT0FDRSxJQUFBakQsZUFBQSxFQUFDaUgsY0FBTSxFQUFBO0lBQUE1RixRQUFBLEVBQ0wsSUFBQW1CLGdCQUFBLEVBQUEsS0FBQSxFQUFBO01BQ0VyRixLQUFLLEVBQUV1SCxTQUFTO01BQ2hCMUQsU0FBUyxFQUFFeEUsWUFBWSxDQUFDQyxTQUFTLEVBQUV5RSxzQkFBVyxDQUFDZ0csSUFBSSxDQUFDO01BQUE3RixRQUFBLEVBQUEsQ0FFcEQsSUFBQXJCLGVBQUEsRUFBQSxLQUFBLEVBQUE7UUFBQSxhQUFBLEVBQ2MsTUFBTTtRQUNsQmdCLFNBQVMsRUFBRXhFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQ2lHLE9BQU8sQ0FBQztRQUN2RHJHLE9BQU8sRUFBRThFO01BQWtCLENBQUEsQ0FDM0IsRUFDRixJQUFBNUYsZUFBQSxFQUFBLEtBQUEsRUFBQTtRQUNFN0MsS0FBSyxFQUFFd0gsWUFBWTtRQUNuQjNELFNBQVMsRUFBRXhFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQ2tHLE9BQU8sQ0FBQztRQUFBL0YsUUFBQSxFQUV2RCxJQUFBbUIsZ0JBQUEsRUFBQSxLQUFBLEVBQUExRyxNQUFBLENBQUE4RixNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ01zRCxJQUFJLEVBQUE7VUFDUnJDLEdBQUcsRUFBRXdDLGtCQUFrQjtVQUN2QmdDLElBQUksRUFBQyxRQUFRO1VBQUEsWUFBQSxFQUNGLE1BQU07VUFBQSxpQkFBQSxFQUNBdEQsS0FBSyxHQUFHb0IsT0FBTyxHQUFHaEgsU0FBUztVQUM1Q21KLFFBQVEsRUFBRSxDQUFDLENBQUM7VUFDWm5LLEtBQUssRUFBRTZKLFVBQVU7VUFDakJoRyxTQUFTLEVBQUUsSUFBQUMsc0JBQVUsRUFDbkJ6RSxZQUFZLENBQUNDLFNBQVMsQ0FBQyxFQUN2QkQsWUFBWSxDQUFDQyxTQUFTLEVBQUUwQixTQUFTLEVBQUVnQyxJQUFJLENBQUMsRUFDeEN3RCxTQUFTLElBQUluSCxZQUFZLENBQUNDLFNBQVMsRUFBRTBCLFNBQVMsRUFBRW9KLDBCQUFlLENBQUM1RCxTQUFTLENBQUMsRUFDMUVFLEtBQUssSUFBSXJILFlBQVksQ0FBQ0MsU0FBUyxFQUFFMEIsU0FBUyxFQUFFb0osMEJBQWUsQ0FBQzFELEtBQUssQ0FBQyxFQUNsRWdDLFFBQVEsSUFBSXJKLFlBQVksQ0FBQ0MsU0FBUyxFQUFFMEIsU0FBUyxFQUFFb0osMEJBQWUsQ0FBQ0MsU0FBUyxDQUFDLEVBQ3pFeEcsU0FBUyxDQUNWO1VBQUFLLFFBQUEsRUFBQSxDQUVBeUUsZ0JBQWdCLEVBQ2hCRCxRQUFRLElBQUksSUFBQTdGLGVBQUEsRUFBQSxLQUFBLEVBQUE7WUFBS2dCLFNBQVMsRUFBRXhFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQzhDLEtBQUssQ0FBQztZQUFBM0MsUUFBQSxFQUFHMkM7VUFBSyxDQUFBLENBQU8sRUFDdEYsSUFBQXhCLGdCQUFBLEVBQUEsS0FBQSxFQUFBO1lBQUt4QixTQUFTLEVBQUV4RSxZQUFZLENBQUNDLFNBQVMsRUFBRXlFLHNCQUFXLENBQUN1RyxLQUFLLENBQUM7WUFBQXBHLFFBQUEsRUFBQSxDQUN2RCxDQUFDOEUsZUFBZSxJQUFLdEMsS0FBSyxLQUFLd0MsZ0JBQWdCLElBQUlDLFNBQVMsQ0FBRSxLQUM3RCxJQUFBOUQsZ0JBQUEsRUFBQSxLQUFBLEVBQUE7Y0FDRXJGLEtBQUssRUFBRTBILFdBQVc7Y0FDbEI3RCxTQUFTLEVBQUV4RSxZQUFZLENBQUNDLFNBQVMsRUFBRXlFLHNCQUFXLENBQUN3RyxNQUFNLENBQUM7Y0FBQXJHLFFBQUEsRUFBQSxDQUVyRDhFLGVBQWUsRUFDZnRDLEtBQUssSUFBSXdDLGdCQUFnQixJQUN4QixJQUFBckcsZUFBQSxFQUFBLEtBQUEsRUFBQTtnQkFBS2dCLFNBQVMsRUFBRXhFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQ25CLFlBQVksQ0FBQztnQkFBQXNCLFFBQUEsRUFDOURnRjtjQUFnQixDQUFBLENBRXBCLEVBQ0F4QyxLQUFLLElBQUl5QyxTQUFTLElBQ2pCLElBQUF0RyxlQUFBLEVBQUEsS0FBQSxFQUFBO2dCQUFLMkgsRUFBRSxFQUFFeEMsT0FBTztnQkFBRW5FLFNBQVMsRUFBRXhFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQzZDLEtBQUssQ0FBQztnQkFBQTFDLFFBQUEsRUFDcEVpRjtjQUFTLENBQUEsQ0FFYjtZQUFBLENBQUEsQ0FFSixFQUNELElBQUE5RCxnQkFBQSxFQUFBLEtBQUEsRUFBQTtjQUNFckYsS0FBSyxFQUFFeUgsU0FBUztjQUNoQjVELFNBQVMsRUFBRXhFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQ2hFLElBQUksQ0FBQztjQUFBbUUsUUFBQSxFQUFBLENBRW5ELENBQUN3QyxLQUFLLElBQUl3QyxnQkFBZ0IsSUFDekIsSUFBQXJHLGVBQUEsRUFBQSxLQUFBLEVBQUE7Z0JBQUtnQixTQUFTLEVBQUV4RSxZQUFZLENBQUNDLFNBQVMsRUFBRXlFLHNCQUFXLENBQUNuQixZQUFZLENBQUM7Z0JBQUFzQixRQUFBLEVBQzlEZ0Y7Y0FBZ0IsQ0FBQSxDQUVwQixFQUNBLENBQUN4QyxLQUFLLElBQUl5QyxTQUFTLElBQ2xCLElBQUF0RyxlQUFBLEVBQUEsS0FBQSxFQUFBO2dCQUFLMkgsRUFBRSxFQUFFeEMsT0FBTztnQkFBRW5FLFNBQVMsRUFBRXhFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQzZDLEtBQUssQ0FBQztnQkFBQTFDLFFBQUEsRUFDcEVpRjtjQUFTLENBQUEsQ0FFYixFQUNBRyxZQUFZLElBQ1gsSUFBQXpHLGVBQUEsRUFBQSxLQUFBLEVBQUE7Z0JBQ0U3QyxLQUFLLEVBQUUySCxZQUFZO2dCQUNuQjlELFNBQVMsRUFBRXhFLFlBQVksQ0FBQ0MsU0FBUyxFQUFFeUUsc0JBQVcsQ0FBQzBHLE9BQU8sQ0FBQztnQkFBQXZHLFFBQUEsRUFFdERvRjtjQUFZLENBQUEsQ0FFaEI7WUFBQSxDQUFBLENBQ0csRUFDTE0sVUFBVSxJQUNULElBQUEvRyxlQUFBLEVBQUEsS0FBQSxFQUFBO2NBQ0U3QyxLQUFLLEVBQUU0SCxXQUFXO2NBQ2xCL0QsU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQ25CekUsWUFBWSxDQUFDQyxTQUFTLEVBQUV5RSxzQkFBVyxDQUFDaUIsTUFBTSxDQUFDLEVBQzNDM0YsWUFBWSxDQUFDQyxTQUFTLEVBQUV5RSxzQkFBVyxDQUFDaUIsTUFBTSxFQUFFaEMsSUFBSSxDQUFDLENBQ2xEO2NBQUFrQixRQUFBLEVBRUEwRjtZQUFVLENBQUEsQ0FFZDtVQUFBLENBQUEsQ0FDRztRQUFBLENBQUEsQ0FBQTtNQUNGLENBQUEsQ0FDRjtJQUFBLENBQUE7RUFDRixDQUFBLENBQ0M7QUFFYixDQUFDLENBQUM7QUFFRnJFLFVBQVUsQ0FBQ21GLFdBQVcsR0FBRyxRQUFRO0FBRTFCLElBQU1DLE1BQU0sR0FBQUMsT0FBQSxDQUFBRCxNQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ3RGLFVBQVUsQ0FBQztBQUV0Q29GLE1BQU0sQ0FBQ0QsV0FBVyxHQUFHLFFBQVE7QUFBQyxJQUFBSSxRQUFBLEdBQUFGLE9BQUEsY0FFZkQsTUFBTSIsImZpbGUiOiJjb21wb25lbnRzL0RpYWxvZy9EaWFsb2cuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBpc1ZhbGlkRWxlbWVudCwgbWVtbywgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlSWQsIHVzZVJlZiwgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuLi9CdXR0b24nO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBQb3J0YWwgfSBmcm9tICcuLi9Qb3J0YWwnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlIZWFkbGluZSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZmlsbFJlZiB9IGZyb20gJy4uLy4uL3V0aWxzL3JlZic7XG5pbXBvcnQgeyBESUFMT0dfQUNUSU9OX0tJTkQsIERJQUxPR19DT05UUk9MX0xBQkVMUywgRElBTE9HX0NPTlRST0xfVFlQRSwgRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUywgRElBTE9HX0RFRkFVTFRfSUNPTlMsIERJQUxPR19ERUZBVUxUX1BSRUZJWCwgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfTU9ESUZJRVIsIERJQUxPR19OQU1FU1BBQ0UsIERJQUxPR19TSVpFLCBESUFMT0dfU0xPVCwgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xubGV0IHNjcm9sbExvY2tDb3VudCA9IDA7XG5jb25zdCBnZXRDbGFzc05hbWUgPSAocHJlZml4Q2xzLCBzbG90LCBtb2RpZmllcikgPT4ge1xuICAgIGNvbnN0IGJhc2VDbGFzc05hbWUgPSBgJHtESUFMT0dfTkFNRVNQQUNFfS0ke3ByZWZpeENsc30ke3Nsb3QgPyBgLSR7c2xvdH1gIDogJyd9YDtcbiAgICByZXR1cm4gbW9kaWZpZXIgPyBgJHtiYXNlQ2xhc3NOYW1lfS0ke21vZGlmaWVyfWAgOiBiYXNlQ2xhc3NOYW1lO1xufTtcbmNvbnN0IHNldEJvZHlPdmVyZmxvdyA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICh0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICByZXR1cm47XG4gICAgZG9jdW1lbnQuYm9keS5zdHlsZS5vdmVyZmxvdyA9IHZhbHVlO1xufTtcbmNvbnN0IGxvY2tCb2R5U2Nyb2xsID0gKCkgPT4ge1xuICAgIHNjcm9sbExvY2tDb3VudCArPSAxO1xuICAgIHNldEJvZHlPdmVyZmxvdyhESUFMT0dfREVGQVVMVFMub3ZlcmZsb3dIaWRkZW4pO1xufTtcbmNvbnN0IHVubG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ID0gTWF0aC5tYXgoMCwgc2Nyb2xsTG9ja0NvdW50IC0gMSk7XG4gICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHNjcm9sbExvY2tDb3VudCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHNldEJvZHlPdmVyZmxvdyhESUFMT0dfREVGQVVMVFMub3ZlcmZsb3dSZXNldCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5jb25zdCB1c2VCb2R5U2Nyb2xsTG9jayA9IChsb2NrZWQpID0+IHtcbiAgICBjb25zdCBpc0xvY2tlZFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFsb2NrZWQgfHwgaXNMb2NrZWRSZWYuY3VycmVudClcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGlzTG9ja2VkUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICBsb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGlzTG9ja2VkUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHVubG9ja0JvZHlTY3JvbGwoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbG9ja2VkXSk7XG59O1xuY29uc3QgdXNlRGlhbG9nRm9jdXMgPSAoYWN0aXZlLCBkaWFsb2dSZWYpID0+IHtcbiAgICBjb25zdCBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFhY3RpdmUgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID1cbiAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCA/IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgOiBudWxsO1xuICAgICAgICBjb25zdCBmcmFtZSA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgKF9hID0gZGlhbG9nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShmcmFtZSk7XG4gICAgICAgIH07XG4gICAgfSwgW2FjdGl2ZSwgZGlhbG9nUmVmXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGFjdGl2ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgKF9iID0gKF9hID0gcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cykgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EpO1xuICAgICAgICBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCA9IG51bGw7XG4gICAgfSwgW2FjdGl2ZV0pO1xufTtcbmNvbnN0IHVzZUVzY2FwZUNsb3NlID0gKGVuYWJsZWQsIG9uQ2xvc2UpID0+IHtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVuYWJsZWQgfHwgdHlwZW9mIGRvY3VtZW50ID09PSAndW5kZWZpbmVkJylcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgIT09IERJQUxPR19ERUZBVUxUUy5lc2NhcGVLZXkpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHZvaWQgKG9uQ2xvc2UgPT09IG51bGwgfHwgb25DbG9zZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbG9zZSgpKTtcbiAgICAgICAgfTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoRElBTE9HX0RFRkFVTFRTLmtleWRvd25FdmVudCwgaGFuZGxlS2V5RG93bik7XG4gICAgICAgIH07XG4gICAgfSwgW2VuYWJsZWQsIG9uQ2xvc2VdKTtcbn07XG5jb25zdCByZW5kZXJUeXBvZ3JhcGh5Tm9kZSA9IChub2RlLCByZW5kZXJUZXh0KSA9PiB7XG4gICAgaWYgKG5vZGUgPT0gbnVsbCB8fCB0eXBlb2Ygbm9kZSA9PT0gJ2Jvb2xlYW4nKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIG5vZGUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBub2RlID09PSAnbnVtYmVyJykge1xuICAgICAgICByZXR1cm4gcmVuZGVyVGV4dChub2RlKTtcbiAgICB9XG4gICAgcmV0dXJuIG5vZGU7XG59O1xuY29uc3QgcmVuZGVySWxsdXN0cmF0aW9uTm9kZSA9IChpbGx1c3RyYXRpb24pID0+IHtcbiAgICBpZiAoIWlsbHVzdHJhdGlvbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiBpbGx1c3RyYXRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiBfanN4KEljb25zLCB7IG5hbWU6IGlsbHVzdHJhdGlvbiwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmlsbHVzdHJhdGlvblNpemUgfSk7XG4gICAgfVxuICAgIHJldHVybiBpc1ZhbGlkRWxlbWVudChpbGx1c3RyYXRpb24pID8gaWxsdXN0cmF0aW9uIDogbnVsbDtcbn07XG5jb25zdCB0b1ZvaWRIYW5kbGVyID0gKGFjdGlvbikgPT4gKCkgPT4ge1xuICAgIHZvaWQgKGFjdGlvbiA9PT0gbnVsbCB8fCBhY3Rpb24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGFjdGlvbigpKTtcbn07XG5jb25zdCBjcmVhdGVBY3Rpb25IYW5kbGVyID0gKGFjdGlvbiwgYnV0dG9uQ2xpY2spID0+IChldmVudCkgPT4ge1xuICAgIGJ1dHRvbkNsaWNrID09PSBudWxsIHx8IGJ1dHRvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25DbGljayhldmVudCk7XG4gICAgaWYgKGV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgfHwgIWFjdGlvbilcbiAgICAgICAgcmV0dXJuO1xuICAgIHZvaWQgYWN0aW9uKCk7XG59O1xuY29uc3QgcmVuZGVyQ29udHJvbEJ1dHRvbiA9IChwcmVmaXhDbHMsIHR5cGUsIGljb25Ob2RlLCBvbkNsaWNrKSA9PiAoX2pzeChcImJ1dHRvblwiLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wpLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5jb250cm9sLCB0eXBlKSksIFwiYXJpYS1sYWJlbFwiOiBESUFMT0dfQ09OVFJPTF9MQUJFTFNbdHlwZV0sIG9uQ2xpY2s6IHRvVm9pZEhhbmRsZXIob25DbGljayksIGNoaWxkcmVuOiBpY29uTm9kZSB9KSk7XG5jb25zdCByZW5kZXJBY3Rpb25CdXR0b24gPSAoeyBwcmVmaXhDbHMsIGtpbmQsIHRleHQsIGFjdGlvbiwgYnV0dG9uUHJvcHMsIH0pID0+IHtcbiAgICB2YXIgX2E7XG4gICAgaWYgKHRleHQgPT0gbnVsbCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goQnV0dG9uLCBPYmplY3QuYXNzaWduKHt9LCBidXR0b25Qcm9wcywgeyB0eXBlOiBESUFMT0dfREVGQVVMVFMuYnV0dG9uSHRtbFR5cGUsIHNpemU6IERJQUxPR19ERUZBVUxUUy5idXR0b25TaXplLCBjb2xvcjogKF9hID0gYnV0dG9uUHJvcHMgPT09IG51bGwgfHwgYnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvblByb3BzLmNvbG9yKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTW2tpbmRdLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuYWN0aW9uQnV0dG9uKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuYWN0aW9uQnV0dG9uLCBraW5kKSwgYnV0dG9uUHJvcHMgPT09IG51bGwgfHwgYnV0dG9uUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvblByb3BzLmNsYXNzTmFtZSksIHN0eWxlOiBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuc3R5bGUsIG9uQ2xpY2s6IGNyZWF0ZUFjdGlvbkhhbmRsZXIoYWN0aW9uLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMub25DbGljayksIGNoaWxkcmVuOiB0ZXh0IH0pKSk7XG59O1xuY29uc3QgcmVzb2x2ZUZvb3Rlck5vZGUgPSAoeyBmb290ZXIsIHNpemUsIGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24sIH0pID0+IHtcbiAgICBpZiAoZm9vdGVyID09PSBudWxsKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGZvb3RlciA9PT0gJ2Z1bmN0aW9uJylcbiAgICAgICAgcmV0dXJuIGZvb3RlcihjYW5jZWxCdXR0b24sIG9rQnV0dG9uKTtcbiAgICBpZiAoZm9vdGVyICE9PSB1bmRlZmluZWQpXG4gICAgICAgIHJldHVybiBmb290ZXI7XG4gICAgaWYgKCFjYW5jZWxCdXR0b24gJiYgIW9rQnV0dG9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gc2l6ZSA9PT0gRElBTE9HX1NJWkUubGFyZ2VcbiAgICAgICAgPyAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbY2FuY2VsQnV0dG9uLCBva0J1dHRvbl0gfSkpXG4gICAgICAgIDogKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW29rQnV0dG9uLCBjYW5jZWxCdXR0b25dIH0pKTtcbn07XG5jb25zdCBEaWFsb2dCYXNlID0gZm9yd2FyZFJlZigocHJvcHMsIHJlZikgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lLCBzdHlsZSwgcHJlZml4Q2xzID0gRElBTE9HX0RFRkFVTFRfUFJFRklYLCBvcGVuID0gZmFsc2UsIHNpemUgPSBESUFMT0dfU0laRS5zbWFsbCwgbWFza0Nsb3NhYmxlID0gdHJ1ZSwgc2hvd0Nsb3NlSWNvbiA9IHRydWUsIHNob3dCYWNrSWNvbiA9IGZhbHNlLCBmdWxsV2lkdGggPSBmYWxzZSwgZml4ZWQgPSBmYWxzZSwgd2lkdGgsIHRpdGxlLCBjaGlsZHJlbiwgaWxsdXN0cmF0aW9uLCBtZWRpYSwgY2xvc2VJY29uLCBiYWNrSWNvbiwgZm9vdGVyLCBvbk9rLCBvbkNhbmNlbCwgb25CYWNrLCBva1RleHQgPSBESUFMT0dfREVGQVVMVFMub2tUZXh0LCBjYW5jZWxUZXh0ID0gRElBTE9HX0RFRkFVTFRTLmNhbmNlbFRleHQsIHJvb3RTdHlsZSwgd3JhcHBlclN0eWxlLCBib2R5U3R5bGUsIGhlYWRlclN0eWxlLCBjb250ZW50U3R5bGUsIGZvb3RlclN0eWxlLCBjYW5jZWxCdXR0b25Qcm9wcywgb2tCdXR0b25Qcm9wcyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwicHJlZml4Q2xzXCIsIFwib3BlblwiLCBcInNpemVcIiwgXCJtYXNrQ2xvc2FibGVcIiwgXCJzaG93Q2xvc2VJY29uXCIsIFwic2hvd0JhY2tJY29uXCIsIFwiZnVsbFdpZHRoXCIsIFwiZml4ZWRcIiwgXCJ3aWR0aFwiLCBcInRpdGxlXCIsIFwiY2hpbGRyZW5cIiwgXCJpbGx1c3RyYXRpb25cIiwgXCJtZWRpYVwiLCBcImNsb3NlSWNvblwiLCBcImJhY2tJY29uXCIsIFwiZm9vdGVyXCIsIFwib25Pa1wiLCBcIm9uQ2FuY2VsXCIsIFwib25CYWNrXCIsIFwib2tUZXh0XCIsIFwiY2FuY2VsVGV4dFwiLCBcInJvb3RTdHlsZVwiLCBcIndyYXBwZXJTdHlsZVwiLCBcImJvZHlTdHlsZVwiLCBcImhlYWRlclN0eWxlXCIsIFwiY29udGVudFN0eWxlXCIsIFwiZm9vdGVyU3R5bGVcIiwgXCJjYW5jZWxCdXR0b25Qcm9wc1wiLCBcIm9rQnV0dG9uUHJvcHNcIl0pO1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0aXRsZUlkID0gdXNlSWQoKTtcbiAgICBjb25zdCBoYW5kbGVTZXREaWFsb2dSZWYgPSB1c2VDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICBkaWFsb2dSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGZpbGxSZWYocmVmLCBub2RlKTtcbiAgICB9LCBbcmVmXSk7XG4gICAgY29uc3QgaGFuZGxlQ2FuY2VsID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQ2FuY2VsID09PSBudWxsIHx8IG9uQ2FuY2VsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNhbmNlbCgpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbk9rID09PSBudWxsIHx8IG9uT2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT2soKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmFjayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkJhY2sgPT09IG51bGwgfHwgb25CYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJhY2soKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3ZlcmxheUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICghbWFza0Nsb3NhYmxlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBoYW5kbGVDYW5jZWwoKTtcbiAgICB9KTtcbiAgICB1c2VCb2R5U2Nyb2xsTG9jayhvcGVuKTtcbiAgICB1c2VEaWFsb2dGb2N1cyhvcGVuLCBkaWFsb2dSZWYpO1xuICAgIHVzZUVzY2FwZUNsb3NlKG9wZW4sIGhhbmRsZUNhbmNlbCk7XG4gICAgY29uc3QgaGFzTWVkaWEgPSBtZWRpYSAhPSBudWxsO1xuICAgIGNvbnN0IGNsb3NlQ29udHJvbE5vZGUgPSBzaG93Q2xvc2VJY29uXG4gICAgICAgID8gcmVuZGVyQ29udHJvbEJ1dHRvbihwcmVmaXhDbHMsIERJQUxPR19DT05UUk9MX1RZUEUuY2xvc2UsIGNsb3NlSWNvbiAhPT0gbnVsbCAmJiBjbG9zZUljb24gIT09IHZvaWQgMCA/IGNsb3NlSWNvbiA6IChfanN4KEljb25zLCB7IG5hbWU6IERJQUxPR19ERUZBVUxUX0lDT05TW0RJQUxPR19DT05UUk9MX1RZUEUuY2xvc2VdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQ2FuY2VsKVxuICAgICAgICA6IG51bGw7XG4gICAgY29uc3QgYmFja0NvbnRyb2xOb2RlID0gc2hvd0JhY2tJY29uXG4gICAgICAgID8gcmVuZGVyQ29udHJvbEJ1dHRvbihwcmVmaXhDbHMsIERJQUxPR19DT05UUk9MX1RZUEUuYmFjaywgYmFja0ljb24gIT09IG51bGwgJiYgYmFja0ljb24gIT09IHZvaWQgMCA/IGJhY2tJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrXSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmNvbnRyb2xJY29uU2l6ZSB9KSksIGhhbmRsZUJhY2spXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBpbGx1c3RyYXRpb25Ob2RlID0gcmVuZGVySWxsdXN0cmF0aW9uTm9kZShpbGx1c3RyYXRpb24pO1xuICAgIGNvbnN0IHRpdGxlTm9kZSA9IHJlbmRlclR5cG9ncmFwaHlOb2RlKHRpdGxlLCAodmFsdWUpID0+IChfanN4KFR5cG9ncmFwaHlIZWFkbGluZSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcImgyXCIsIGNvbG9yOiBcImRlZmF1bHRcIiwgY2hpbGRyZW46IHZhbHVlIH0pKSk7XG4gICAgY29uc3QgY2hpbGRyZW5Ob2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUoY2hpbGRyZW4sICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogXCJtZFwiLCBhczogXCJwXCIsIHN0cm9uZzogdHJ1ZSwgY29sb3I6IFwiZGVmYXVsdC1zZWNvbmRhcnlcIiwgY2hpbGRyZW46IHZhbHVlIH0pKSk7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcmVuZGVyQWN0aW9uQnV0dG9uKHtcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBraW5kOiBESUFMT0dfQUNUSU9OX0tJTkQuY2FuY2VsLFxuICAgICAgICB0ZXh0OiBjYW5jZWxUZXh0LFxuICAgICAgICBhY3Rpb246IG9uQ2FuY2VsLFxuICAgICAgICBidXR0b25Qcm9wczogY2FuY2VsQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5vayxcbiAgICAgICAgdGV4dDogb2tUZXh0LFxuICAgICAgICBhY3Rpb246IG9uT2ssXG4gICAgICAgIGJ1dHRvblByb3BzOiBva0J1dHRvblByb3BzLFxuICAgIH0pO1xuICAgIGNvbnN0IGZvb3Rlck5vZGUgPSByZXNvbHZlRm9vdGVyTm9kZSh7XG4gICAgICAgIGZvb3RlcixcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgY2FuY2VsQnV0dG9uLFxuICAgICAgICBva0J1dHRvbixcbiAgICB9KTtcbiAgICAvLyBgd2lkdGhgIGlzIGEgY29udmVuaWVuY2UgdGhhdCBzZXRzIHRoZSBwYW5lbCdzIHdpZHRoIGlubGluZSwgb3ZlcnJpZGluZyB0aGVcbiAgICAvLyBgc2l6ZWAgcHJlc2V0J3MgY2xhc3MtbGV2ZWwgd2lkdGguIEFuIGV4cGxpY2l0IGBzdHlsZS53aWR0aGAgc3RpbGwgd2lucyAoaXQgaXNcbiAgICAvLyBzcHJlYWQgbGFzdCkuIE5vdGU6IGB3aWR0aGAgaXMgbm90IG1lYW50IHRvIGJlIGNvbWJpbmVkIHdpdGggYGZ1bGxXaWR0aGAsIHdob3NlXG4gICAgLy8gYG1heC13aWR0aDogbm9uZWAgLyBgd2lkdGg6IDEwMCVgIHJ1bGVzIGdvdmVybiBzaXppbmcgb24gdGhlaXIgb3duLlxuICAgIGNvbnN0IHBhbmVsU3R5bGUgPSBPYmplY3QuYXNzaWduKHsgd2lkdGggfSwgc3R5bGUpO1xuICAgIGlmICghb3BlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChfanN4KFBvcnRhbCwgeyBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogcm9vdFN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnJvb3QpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm92ZXJsYXkpLCBvbkNsaWNrOiBoYW5kbGVPdmVybGF5Q2xpY2sgfSksIF9qc3goXCJkaXZcIiwgeyBzdHlsZTogd3JhcHBlclN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULndyYXBwZXIpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGhhbmRsZVNldERpYWxvZ1JlZiwgcm9sZTogXCJkaWFsb2dcIiwgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiB0aXRsZSA/IHRpdGxlSWQgOiB1bmRlZmluZWQsIHRhYkluZGV4OiAtMSwgc3R5bGU6IHBhbmVsU3R5bGUsIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBzaXplKSwgZnVsbFdpZHRoICYmIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgRElBTE9HX01PRElGSUVSLmZ1bGxXaWR0aCksIGZpeGVkICYmIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgRElBTE9HX01PRElGSUVSLmZpeGVkKSwgaGFzTWVkaWEgJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIud2l0aE1lZGlhKSwgY2xhc3NOYW1lKSwgY2hpbGRyZW46IFtjbG9zZUNvbnRyb2xOb2RlLCBoYXNNZWRpYSAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5tZWRpYSksIGNoaWxkcmVuOiBtZWRpYSB9KSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlubmVyKSwgY2hpbGRyZW46IFsoYmFja0NvbnRyb2xOb2RlIHx8IChmaXhlZCAmJiAoaWxsdXN0cmF0aW9uTm9kZSB8fCB0aXRsZU5vZGUpKSkgJiYgKF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGhlYWRlclN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmhlYWRlciksIGNoaWxkcmVuOiBbYmFja0NvbnRyb2xOb2RlLCBmaXhlZCAmJiBpbGx1c3RyYXRpb25Ob2RlICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbGx1c3RyYXRpb24pLCBjaGlsZHJlbjogaWxsdXN0cmF0aW9uTm9kZSB9KSksIGZpeGVkICYmIHRpdGxlTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGlkOiB0aXRsZUlkLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnRpdGxlKSwgY2hpbGRyZW46IHRpdGxlTm9kZSB9KSldIH0pKSwgX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogYm9keVN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmJvZHkpLCBjaGlsZHJlbjogWyFmaXhlZCAmJiBpbGx1c3RyYXRpb25Ob2RlICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbGx1c3RyYXRpb24pLCBjaGlsZHJlbjogaWxsdXN0cmF0aW9uTm9kZSB9KSksICFmaXhlZCAmJiB0aXRsZU5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBpZDogdGl0bGVJZCwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC50aXRsZSksIGNoaWxkcmVuOiB0aXRsZU5vZGUgfSkpLCBjaGlsZHJlbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogY29udGVudFN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRlbnQpLCBjaGlsZHJlbjogY2hpbGRyZW5Ob2RlIH0pKV0gfSksIGZvb3Rlck5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBzdHlsZTogZm9vdGVyU3R5bGUsIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5mb290ZXIpLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5mb290ZXIsIHNpemUpKSwgY2hpbGRyZW46IGZvb3Rlck5vZGUgfSkpXSB9KV0gfSkpIH0pXSB9KSB9KSk7XG59KTtcbkRpYWxvZ0Jhc2UuZGlzcGxheU5hbWUgPSAnRGlhbG9nJztcbmV4cG9ydCBjb25zdCBEaWFsb2cgPSBtZW1vKERpYWxvZ0Jhc2UpO1xuRGlhbG9nLmRpc3BsYXlOYW1lID0gJ0RpYWxvZyc7XG5leHBvcnQgZGVmYXVsdCBEaWFsb2c7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
199
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3VzZUV2ZW50Q2FsbGJhY2siLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX1BvcnRhbCIsIl9yZWYiLCJfY2xhc3NOYW1lIiwiX2NvbnN0YW50cyIsIl9EaWFsb2dDb250ZW50IiwiX0RpYWxvZ0NvbnRyb2xzIiwiX2hvb2tzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJEaWFsb2dCYXNlIiwiZm9yd2FyZFJlZiIsInByb3BzIiwicmVmIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzaXplIiwiRElBTE9HX1NJWkUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwid2lkdGgiLCJ0aXRsZSIsImNoaWxkcmVuIiwiaWxsdXN0cmF0aW9uIiwibWVkaWEiLCJjbG9zZUljb24iLCJiYWNrSWNvbiIsImZvb3RlciIsIm9uT2siLCJvbkNhbmNlbCIsIm9uQmFjayIsIl9wcm9wcyRva1RleHQiLCJva1RleHQiLCJESUFMT0dfREVGQVVMVFMiLCJfcHJvcHMkY2FuY2VsVGV4dCIsImNhbmNlbFRleHQiLCJyb290U3R5bGUiLCJ3cmFwcGVyU3R5bGUiLCJib2R5U3R5bGUiLCJoZWFkZXJTdHlsZSIsImNvbnRlbnRTdHlsZSIsImZvb3RlclN0eWxlIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJva0J1dHRvblByb3BzIiwicmVzdCIsImRpYWxvZ1JlZiIsInVzZVJlZiIsInRpdGxlSWQiLCJ1c2VJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsInVzZUNhbGxiYWNrIiwibm9kZSIsImN1cnJlbnQiLCJmaWxsUmVmIiwiaGFuZGxlQ2FuY2VsIiwidXNlRXZlbnRDYWxsYmFjayIsImhhbmRsZUJhY2siLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJ1c2VCb2R5U2Nyb2xsTG9jayIsInVzZURpYWxvZ0ZvY3VzIiwidXNlRXNjYXBlQ2xvc2UiLCJoYXNNZWRpYSIsImNsb3NlQ29udHJvbE5vZGUiLCJyZW5kZXJEaWFsb2dDb250cm9sQnV0dG9uIiwidHlwZSIsIkRJQUxPR19DT05UUk9MX1RZUEUiLCJjbG9zZSIsImljb24iLCJvbkNsaWNrIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImhhc0hlYWRpbmciLCJoYXNEaWFsb2dIZWFkaW5nQ29udGVudCIsImhlYWRpbmdOb2RlIiwiX2pzeCIsIkRpYWxvZ0hlYWRpbmciLCJjaGlsZHJlbk5vZGUiLCJyZW5kZXJEaWFsb2dCb2R5Q29udGVudCIsImNhbmNlbEJ1dHRvbiIsInJlbmRlckRpYWxvZ0FjdGlvbkJ1dHRvbiIsImtpbmQiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJjYW5jZWwiLCJ0ZXh0IiwiYWN0aW9uIiwiYnV0dG9uUHJvcHMiLCJva0J1dHRvbiIsIm9rIiwiZm9vdGVyTm9kZSIsInJlc29sdmVEaWFsb2dGb290ZXIiLCJwYW5lbENsYXNzTmFtZSIsImdldERpYWxvZ1BhbmVsQ2xhc3NOYW1lIiwicGFuZWxTdHlsZSIsImFzc2lnbiIsIlBvcnRhbCIsIl9qc3hzIiwiZ2V0RGlhbG9nQ2xhc3NOYW1lIiwiRElBTE9HX1NMT1QiLCJyb290Iiwib3ZlcmxheSIsIndyYXBwZXIiLCJyb2xlIiwidW5kZWZpbmVkIiwidGFiSW5kZXgiLCJpbm5lciIsImhlYWRlciIsImJvZHkiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJEaWFsb2ciLCJleHBvcnRzIiwibWVtbyIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLElBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFVBQUEsR0FBQVAsT0FBQTtBQVFBLElBQUFRLGNBQUEsR0FBQVIsT0FBQTtBQUtBLElBQUFTLGVBQUEsR0FBQVQsT0FBQTtBQUtBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUVBQSxPQUFBO0FEekJBLElBQUlXLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FB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LEVBQ3JCRyxZQUFZLElBQ1gsSUFBQUYsZUFBQSxFQUFBLEtBQUEsRUFBQTtnQkFDRTFFLEtBQUssRUFBRXdDLFlBQVk7Z0JBQ25CekMsU0FBUyxFQUFFLElBQUFpRyw2QkFBa0IsRUFBQzlGLFNBQVMsRUFBRStGLHNCQUFXLENBQUNVLE9BQU8sQ0FBQztnQkFBQXJGLFFBQUEsRUFFNURzRDtjQUFZLENBQUEsQ0FFaEI7WUFBQSxDQUFBLENBQ0csRUFDTFksVUFBVSxJQUNULElBQUFkLGVBQUEsRUFBQSxLQUFBLEVBQUE7Y0FDRTFFLEtBQUssRUFBRXlDLFdBQVc7Y0FDbEIxQyxTQUFTLEVBQUUsSUFBQWlHLDZCQUFrQixFQUFDOUYsU0FBUyxFQUFFK0Ysc0JBQVcsQ0FBQ3RFLE1BQU0sQ0FBQztjQUFBTCxRQUFBLEVBRTNEa0U7WUFBVSxDQUFBLENBRWQ7VUFBQSxDQUFBLENBQ0c7UUFBQSxDQUFBLENBQUE7TUFDRixDQUFBLENBQ0Y7SUFBQSxDQUFBO0VBQ0YsQ0FBQSxDQUNDO0FBRWIsQ0FBQyxDQUFDO0FBRUY3RixVQUFVLENBQUNpSCxXQUFXLEdBQUcsUUFBUTtBQUUxQixJQUFNQyxNQUFNLEdBQUFDLE9BQUEsQ0FBQUQsTUFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUNwSCxVQUFVLENBQUM7QUFFdENrSCxNQUFNLENBQUNELFdBQVcsR0FBRyxRQUFRO0FBQUMsSUFBQUksUUFBQSxHQUFBRixPQUFBLGNBRWZELE1BQU0iLCJmaWxlIjoiY29tcG9uZW50cy9EaWFsb2cvRGlhbG9nLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyBmb3J3YXJkUmVmLCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlSWQsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IGdldERpYWxvZ0NsYXNzTmFtZSwgZ2V0RGlhbG9nUGFuZWxDbGFzc05hbWUgfSBmcm9tICcuL2NsYXNzTmFtZSc7XG5pbXBvcnQgeyBESUFMT0dfQUNUSU9OX0tJTkQsIERJQUxPR19DT05UUk9MX1RZUEUsIERJQUxPR19ERUZBVUxUX1BSRUZJWCwgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfU0laRSwgRElBTE9HX1NMT1QsIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRGlhbG9nSGVhZGluZywgaGFzRGlhbG9nSGVhZGluZ0NvbnRlbnQsIHJlbmRlckRpYWxvZ0JvZHlDb250ZW50LCB9IGZyb20gJy4vRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgeyByZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24sIHJlbmRlckRpYWxvZ0NvbnRyb2xCdXR0b24sIHJlc29sdmVEaWFsb2dGb290ZXIsIH0gZnJvbSAnLi9EaWFsb2dDb250cm9scyc7XG5pbXBvcnQgeyB1c2VCb2R5U2Nyb2xsTG9jaywgdXNlRGlhbG9nRm9jdXMsIHVzZUVzY2FwZUNsb3NlIH0gZnJvbSAnLi9ob29rcyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgRGlhbG9nQmFzZSA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSwgc3R5bGUsIHByZWZpeENscyA9IERJQUxPR19ERUZBVUxUX1BSRUZJWCwgb3BlbiA9IGZhbHNlLCBzaXplID0gRElBTE9HX1NJWkUuc21hbGwsIG1hc2tDbG9zYWJsZSA9IHRydWUsIHNob3dDbG9zZUljb24gPSB0cnVlLCBzaG93QmFja0ljb24gPSBmYWxzZSwgZnVsbFdpZHRoID0gZmFsc2UsIGZpeGVkID0gZmFsc2UsIHdpZHRoLCB0aXRsZSwgY2hpbGRyZW4sIGlsbHVzdHJhdGlvbiwgbWVkaWEsIGNsb3NlSWNvbiwgYmFja0ljb24sIGZvb3Rlciwgb25Paywgb25DYW5jZWwsIG9uQmFjaywgb2tUZXh0ID0gRElBTE9HX0RFRkFVTFRTLm9rVGV4dCwgY2FuY2VsVGV4dCA9IERJQUxPR19ERUZBVUxUUy5jYW5jZWxUZXh0LCByb290U3R5bGUsIHdyYXBwZXJTdHlsZSwgYm9keVN0eWxlLCBoZWFkZXJTdHlsZSwgY29udGVudFN0eWxlLCBmb290ZXJTdHlsZSwgY2FuY2VsQnV0dG9uUHJvcHMsIG9rQnV0dG9uUHJvcHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcInByZWZpeENsc1wiLCBcIm9wZW5cIiwgXCJzaXplXCIsIFwibWFza0Nsb3NhYmxlXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcInNob3dCYWNrSWNvblwiLCBcImZ1bGxXaWR0aFwiLCBcImZpeGVkXCIsIFwid2lkdGhcIiwgXCJ0aXRsZVwiLCBcImNoaWxkcmVuXCIsIFwiaWxsdXN0cmF0aW9uXCIsIFwibWVkaWFcIiwgXCJjbG9zZUljb25cIiwgXCJiYWNrSWNvblwiLCBcImZvb3RlclwiLCBcIm9uT2tcIiwgXCJvbkNhbmNlbFwiLCBcIm9uQmFja1wiLCBcIm9rVGV4dFwiLCBcImNhbmNlbFRleHRcIiwgXCJyb290U3R5bGVcIiwgXCJ3cmFwcGVyU3R5bGVcIiwgXCJib2R5U3R5bGVcIiwgXCJoZWFkZXJTdHlsZVwiLCBcImNvbnRlbnRTdHlsZVwiLCBcImZvb3RlclN0eWxlXCIsIFwiY2FuY2VsQnV0dG9uUHJvcHNcIiwgXCJva0J1dHRvblByb3BzXCJdKTtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdGl0bGVJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgaGFuZGxlU2V0RGlhbG9nUmVmID0gdXNlQ2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgZGlhbG9nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBmaWxsUmVmKHJlZiwgbm9kZSk7XG4gICAgfSwgW3JlZl0pO1xuICAgIGNvbnN0IGhhbmRsZUNhbmNlbCA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkNhbmNlbCA9PT0gbnVsbCB8fCBvbkNhbmNlbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DYW5jZWwoKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlQmFjayA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2b2lkIChvbkJhY2sgPT09IG51bGwgfHwgb25CYWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJhY2soKSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlT3ZlcmxheUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICghbWFza0Nsb3NhYmxlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBoYW5kbGVDYW5jZWwoKTtcbiAgICB9KTtcbiAgICB1c2VCb2R5U2Nyb2xsTG9jayhvcGVuKTtcbiAgICB1c2VEaWFsb2dGb2N1cyhvcGVuLCBkaWFsb2dSZWYpO1xuICAgIHVzZUVzY2FwZUNsb3NlKG9wZW4sIGhhbmRsZUNhbmNlbCk7XG4gICAgY29uc3QgaGFzTWVkaWEgPSBtZWRpYSAhPSBudWxsO1xuICAgIGNvbnN0IGNsb3NlQ29udHJvbE5vZGUgPSBzaG93Q2xvc2VJY29uXG4gICAgICAgID8gcmVuZGVyRGlhbG9nQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgICAgICB0eXBlOiBESUFMT0dfQ09OVFJPTF9UWVBFLmNsb3NlLFxuICAgICAgICAgICAgaWNvbjogY2xvc2VJY29uLFxuICAgICAgICAgICAgb25DbGljazogaGFuZGxlQ2FuY2VsLFxuICAgICAgICB9KVxuICAgICAgICA6IG51bGw7XG4gICAgY29uc3QgYmFja0NvbnRyb2xOb2RlID0gc2hvd0JhY2tJY29uXG4gICAgICAgID8gcmVuZGVyRGlhbG9nQ29udHJvbEJ1dHRvbih7XG4gICAgICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgICAgICB0eXBlOiBESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2ssXG4gICAgICAgICAgICBpY29uOiBiYWNrSWNvbixcbiAgICAgICAgICAgIG9uQ2xpY2s6IGhhbmRsZUJhY2ssXG4gICAgICAgIH0pXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBoYXNIZWFkaW5nID0gaGFzRGlhbG9nSGVhZGluZ0NvbnRlbnQoeyB0aXRsZSwgaWxsdXN0cmF0aW9uIH0pO1xuICAgIGNvbnN0IGhlYWRpbmdOb2RlID0gaGFzSGVhZGluZyA/IChfanN4KERpYWxvZ0hlYWRpbmcsIHsgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIHRpdGxlSWQ6IHRpdGxlSWQsIHRpdGxlOiB0aXRsZSwgaWxsdXN0cmF0aW9uOiBpbGx1c3RyYXRpb24gfSkpIDogbnVsbDtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJEaWFsb2dCb2R5Q29udGVudChjaGlsZHJlbik7XG4gICAgY29uc3QgY2FuY2VsQnV0dG9uID0gcmVuZGVyRGlhbG9nQWN0aW9uQnV0dG9uKHtcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICBraW5kOiBESUFMT0dfQUNUSU9OX0tJTkQuY2FuY2VsLFxuICAgICAgICB0ZXh0OiBjYW5jZWxUZXh0LFxuICAgICAgICBhY3Rpb246IG9uQ2FuY2VsLFxuICAgICAgICBidXR0b25Qcm9wczogY2FuY2VsQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSByZW5kZXJEaWFsb2dBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5vayxcbiAgICAgICAgdGV4dDogb2tUZXh0LFxuICAgICAgICBhY3Rpb246IG9uT2ssXG4gICAgICAgIGJ1dHRvblByb3BzOiBva0J1dHRvblByb3BzLFxuICAgIH0pO1xuICAgIGNvbnN0IGZvb3Rlck5vZGUgPSByZXNvbHZlRGlhbG9nRm9vdGVyKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIGNvbnN0IHBhbmVsQ2xhc3NOYW1lID0gZ2V0RGlhbG9nUGFuZWxDbGFzc05hbWUoe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGZ1bGxXaWR0aCxcbiAgICAgICAgZml4ZWQsXG4gICAgICAgIGhhc01lZGlhLFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgfSk7XG4gICAgLy8gYHdpZHRoYCBpcyBhIGNvbnZlbmllbmNlIHRoYXQgc2V0cyB0aGUgcGFuZWwncyB3aWR0aCBpbmxpbmUsIG92ZXJyaWRpbmcgdGhlXG4gICAgLy8gYHNpemVgIHByZXNldCdzIGNsYXNzLWxldmVsIHdpZHRoLiBBbiBleHBsaWNpdCBgc3R5bGUud2lkdGhgIHN0aWxsIHdpbnMgKGl0IGlzXG4gICAgLy8gc3ByZWFkIGxhc3QpLiBOb3RlOiBgd2lkdGhgIGlzIG5vdCBtZWFudCB0byBiZSBjb21iaW5lZCB3aXRoIGBmdWxsV2lkdGhgLCB3aG9zZVxuICAgIC8vIGBtYXgtd2lkdGg6IG5vbmVgIC8gYHdpZHRoOiAxMDAlYCBydWxlcyBnb3Zlcm4gc2l6aW5nIG9uIHRoZWlyIG93bi5cbiAgICBjb25zdCBwYW5lbFN0eWxlID0gT2JqZWN0LmFzc2lnbih7IHdpZHRoIH0sIHN0eWxlKTtcbiAgICBpZiAoIW9wZW4pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChQb3J0YWwsIHsgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IHJvb3RTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5yb290KSwgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgXCJhcmlhLWhpZGRlblwiOiBcInRydWVcIiwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5vdmVybGF5KSwgb25DbGljazogaGFuZGxlT3ZlcmxheUNsaWNrIH0pLCBfanN4KFwiZGl2XCIsIHsgc3R5bGU6IHdyYXBwZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC53cmFwcGVyKSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgcmVmOiBoYW5kbGVTZXREaWFsb2dSZWYsIHJvbGU6IFwiZGlhbG9nXCIsIFwiYXJpYS1tb2RhbFwiOiBcInRydWVcIiwgXCJhcmlhLWxhYmVsbGVkYnlcIjogdGl0bGUgPyB0aXRsZUlkIDogdW5kZWZpbmVkLCB0YWJJbmRleDogLTEsIHN0eWxlOiBwYW5lbFN0eWxlLCBjbGFzc05hbWU6IHBhbmVsQ2xhc3NOYW1lLCBjaGlsZHJlbjogW2Nsb3NlQ29udHJvbE5vZGUsIGhhc01lZGlhICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5tZWRpYSksIGNoaWxkcmVuOiBtZWRpYSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbm5lciksIGNoaWxkcmVuOiBbKGJhY2tDb250cm9sTm9kZSB8fCAoZml4ZWQgJiYgaGVhZGluZ05vZGUpKSAmJiAoX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogaGVhZGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaGVhZGVyKSwgY2hpbGRyZW46IFtiYWNrQ29udHJvbE5vZGUsIGZpeGVkICYmIGhlYWRpbmdOb2RlXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5ib2R5KSwgY2hpbGRyZW46IFshZml4ZWQgJiYgaGVhZGluZ05vZGUsIGNoaWxkcmVuTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBjb250ZW50U3R5bGUsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udGVudCksIGNoaWxkcmVuOiBjaGlsZHJlbk5vZGUgfSkpXSB9KSwgZm9vdGVyTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBmb290ZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXREaWFsb2dDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5mb290ZXIpLCBjaGlsZHJlbjogZm9vdGVyTm9kZSB9KSldIH0pXSB9KSkgfSldIH0pIH0pKTtcbn0pO1xuRGlhbG9nQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGNvbnN0IERpYWxvZyA9IG1lbW8oRGlhbG9nQmFzZSk7XG5EaWFsb2cuZGlzcGxheU5hbWUgPSAnRGlhbG9nJztcbmV4cG9ydCBkZWZhdWx0IERpYWxvZzsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,16 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { IconName } from "../Icons";
3
+ interface DialogHeadingProps {
4
+ prefixCls: string;
5
+ titleId: string;
6
+ title?: ReactNode;
7
+ illustration?: ReactNode | IconName;
8
+ }
9
+ interface DialogHeadingContentOptions {
10
+ title?: ReactNode;
11
+ illustration?: ReactNode | IconName;
12
+ }
13
+ export declare const hasDialogHeadingContent: ({ title, illustration, }: DialogHeadingContentOptions) => boolean;
14
+ export declare const DialogHeading: ({ prefixCls, titleId, title, illustration, }: DialogHeadingProps) => import("react/jsx-runtime").JSX.Element | null;
15
+ export declare const renderDialogBodyContent: (children: ReactNode) => ReactNode;
16
+ export {};
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.renderDialogBodyContent = exports.hasDialogHeadingContent = exports.DialogHeading = void 0;
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ var _react = require("react");
9
+ var _Icons = require("../Icons");
10
+ var _Typography = require("../Typography");
11
+ var _className = require("./className");
12
+ var _constants = require("./constants");
13
+ var hasTextNode = function hasTextNode(node) {
14
+ return node != null && typeof node !== 'boolean';
15
+ };
16
+ var hasIllustrationNode = function hasIllustrationNode(illustration) {
17
+ return Boolean(illustration && (typeof illustration === 'string' || /*#__PURE__*/(0, _react.isValidElement)(illustration)));
18
+ };
19
+ var renderTypographyNode = function renderTypographyNode(node, renderText) {
20
+ if (!hasTextNode(node)) return null;
21
+ if (typeof node === 'string' || typeof node === 'number') {
22
+ return renderText(node);
23
+ }
24
+ return node;
25
+ };
26
+ var renderIllustrationNode = function renderIllustrationNode(illustration) {
27
+ if (!illustration) return null;
28
+ if (typeof illustration === 'string') {
29
+ return (0, _jsxRuntime.jsx)(_Icons.Icons, {
30
+ name: illustration,
31
+ size: _constants.DIALOG_DEFAULTS.illustrationSize
32
+ });
33
+ }
34
+ return /*#__PURE__*/(0, _react.isValidElement)(illustration) ? illustration : null;
35
+ };
36
+ var hasDialogHeadingContent = exports.hasDialogHeadingContent = function hasDialogHeadingContent(_ref) {
37
+ var title = _ref.title,
38
+ illustration = _ref.illustration;
39
+ return hasIllustrationNode(illustration) || hasTextNode(title);
40
+ };
41
+ var DialogHeading = exports.DialogHeading = function DialogHeading(_ref2) {
42
+ var prefixCls = _ref2.prefixCls,
43
+ titleId = _ref2.titleId,
44
+ title = _ref2.title,
45
+ illustration = _ref2.illustration;
46
+ var illustrationNode = renderIllustrationNode(illustration);
47
+ var titleNode = renderTypographyNode(title, function (value) {
48
+ return (0, _jsxRuntime.jsx)(_Typography.TypographyHeadline, {
49
+ size: "md",
50
+ as: "h2",
51
+ color: "default",
52
+ children: value
53
+ });
54
+ });
55
+ if (!illustrationNode && !titleNode) return null;
56
+ return (0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
57
+ children: [illustrationNode && (0, _jsxRuntime.jsx)("div", {
58
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.illustration),
59
+ children: illustrationNode
60
+ }), titleNode && (0, _jsxRuntime.jsx)("div", {
61
+ id: titleId,
62
+ className: (0, _className.getDialogClassName)(prefixCls, _constants.DIALOG_SLOT.title),
63
+ children: titleNode
64
+ })]
65
+ });
66
+ };
67
+ var renderDialogBodyContent = exports.renderDialogBodyContent = function renderDialogBodyContent(children) {
68
+ return renderTypographyNode(children, function (value) {
69
+ return (0, _jsxRuntime.jsx)(_Typography.TypographyBody, {
70
+ size: "md",
71
+ as: "p",
72
+ strong: true,
73
+ color: "default-secondary",
74
+ children: value
75
+ });
76
+ });
77
+ };
78
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0RpYWxvZy9EaWFsb2dDb250ZW50LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfSWNvbnMiLCJfVHlwb2dyYXBoeSIsIl9jbGFzc05hbWUiLCJfY29uc3RhbnRzIiwiaGFzVGV4dE5vZGUiLCJub2RlIiwiaGFzSWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIkJvb2xlYW4iLCJpc1ZhbGlkRWxlbWVudCIsInJlbmRlclR5cG9ncmFwaHlOb2RlIiwicmVuZGVyVGV4dCIsInJlbmRlcklsbHVzdHJhdGlvbk5vZGUiLCJfanN4IiwiSWNvbnMiLCJuYW1lIiwic2l6ZSIsIkRJQUxPR19ERUZBVUxUUyIsImlsbHVzdHJhdGlvblNpemUiLCJoYXNEaWFsb2dIZWFkaW5nQ29udGVudCIsImV4cG9ydHMiLCJfcmVmIiwidGl0bGUiLCJEaWFsb2dIZWFkaW5nIiwiX3JlZjIiLCJwcmVmaXhDbHMiLCJ0aXRsZUlkIiwiaWxsdXN0cmF0aW9uTm9kZSIsInRpdGxlTm9kZSIsInZhbHVlIiwiVHlwb2dyYXBoeUhlYWRsaW5lIiwiYXMiLCJjb2xvciIsImNoaWxkcmVuIiwiX2pzeHMiLCJfRnJhZ21lbnQiLCJjbGFzc05hbWUiLCJnZXREaWFsb2dDbGFzc05hbWUiLCJESUFMT0dfU0xPVCIsImlkIiwicmVuZGVyRGlhbG9nQm9keUNvbnRlbnQiLCJUeXBvZ3JhcGh5Qm9keSIsInN0cm9uZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsV0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxP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QUEsRUFBQTtNQUFLMEIsRUFBRSxFQUFFYixPQUFPO01BQUVVLFNBQVMsRUFBRSxJQUFBQyw2QkFBa0IsRUFBQ1osU0FBUyxFQUFFYSxzQkFBVyxDQUFDaEIsS0FBSyxDQUFDO01BQUFXLFFBQUEsRUFDMUVMO0lBQVMsQ0FBQSxDQUViO0VBQUEsQ0FBQSxDQUNBO0FBRVAsQ0FBQztBQUVNLElBQU1ZLHVCQUF1QixHQUFBcEIsT0FBQSxDQUFBb0IsdUJBQUEsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFJUCxRQUFtQjtFQUFBLE9BQ3pEdkIsb0JBQW9CLENBQUN1QixRQUFRLEVBQUUsVUFBQ0osS0FBSztJQUFBLE9BQ25DLElBQUFoQixlQUFBLEVBQUM0QiwwQkFBYyxFQUFBO01BQUN6QixJQUFJLEVBQUMsSUFBSTtNQUFDZSxFQUFFLEVBQUMsR0FBRztNQUFDVyxNQUFNLEVBQUEsSUFBQTtNQUFDVixLQUFLLEVBQUMsbUJBQW1CO01BQUFDLFFBQUEsRUFDOURKO0lBQUssQ0FBQSxDQUNTO0VBQUEsQ0FDbEIsQ0FBQztBQUFBIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZ0NvbnRlbnQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwgRnJhZ21lbnQgYXMgX0ZyYWdtZW50LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlIZWFkbGluZSB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgZ2V0RGlhbG9nQ2xhc3NOYW1lIH0gZnJvbSAnLi9jbGFzc05hbWUnO1xuaW1wb3J0IHsgRElBTE9HX0RFRkFVTFRTLCBESUFMT0dfU0xPVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmNvbnN0IGhhc1RleHROb2RlID0gKG5vZGUpID0+IG5vZGUgIT0gbnVsbCAmJiB0eXBlb2Ygbm9kZSAhPT0gJ2Jvb2xlYW4nO1xuY29uc3QgaGFzSWxsdXN0cmF0aW9uTm9kZSA9IChpbGx1c3RyYXRpb24pID0+IEJvb2xlYW4oaWxsdXN0cmF0aW9uICYmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJyB8fCBpc1ZhbGlkRWxlbWVudChpbGx1c3RyYXRpb24pKSk7XG5jb25zdCByZW5kZXJUeXBvZ3JhcGh5Tm9kZSA9IChub2RlLCByZW5kZXJUZXh0KSA9PiB7XG4gICAgaWYgKCFoYXNUZXh0Tm9kZShub2RlKSlcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgaWYgKHR5cGVvZiBub2RlID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygbm9kZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmV0dXJuIHJlbmRlclRleHQobm9kZSk7XG4gICAgfVxuICAgIHJldHVybiBub2RlO1xufTtcbmNvbnN0IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUgPSAoaWxsdXN0cmF0aW9uKSA9PiB7XG4gICAgaWYgKCFpbGx1c3RyYXRpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgaWxsdXN0cmF0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICByZXR1cm4gX2pzeChJY29ucywgeyBuYW1lOiBpbGx1c3RyYXRpb24sIHNpemU6IERJQUxPR19ERUZBVUxUUy5pbGx1c3RyYXRpb25TaXplIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNWYWxpZEVsZW1lbnQoaWxsdXN0cmF0aW9uKSA/IGlsbHVzdHJhdGlvbiA6IG51bGw7XG59O1xuZXhwb3J0IGNvbnN0IGhhc0RpYWxvZ0hlYWRpbmdDb250ZW50ID0gKHsgdGl0bGUsIGlsbHVzdHJhdGlvbiwgfSkgPT4gaGFzSWxsdXN0cmF0aW9uTm9kZShpbGx1c3RyYXRpb24pIHx8IGhhc1RleHROb2RlKHRpdGxlKTtcbmV4cG9ydCBjb25zdCBEaWFsb2dIZWFkaW5nID0gKHsgcHJlZml4Q2xzLCB0aXRsZUlkLCB0aXRsZSwgaWxsdXN0cmF0aW9uLCB9KSA9PiB7XG4gICAgY29uc3QgaWxsdXN0cmF0aW9uTm9kZSA9IHJlbmRlcklsbHVzdHJhdGlvbk5vZGUoaWxsdXN0cmF0aW9uKTtcbiAgICBjb25zdCB0aXRsZU5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZSh0aXRsZSwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5SGVhZGxpbmUsIHsgc2l6ZTogXCJtZFwiLCBhczogXCJoMlwiLCBjb2xvcjogXCJkZWZhdWx0XCIsIGNoaWxkcmVuOiB2YWx1ZSB9KSkpO1xuICAgIGlmICghaWxsdXN0cmF0aW9uTm9kZSAmJiAhdGl0bGVOb2RlKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3hzKF9GcmFnbWVudCwgeyBjaGlsZHJlbjogW2lsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldERpYWxvZ0NsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0RGlhbG9nQ2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKV0gfSkpO1xufTtcbmV4cG9ydCBjb25zdCByZW5kZXJEaWFsb2dCb2R5Q29udGVudCA9IChjaGlsZHJlbikgPT4gcmVuZGVyVHlwb2dyYXBoeU5vZGUoY2hpbGRyZW4sICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogXCJtZFwiLCBhczogXCJwXCIsIHN0cm9uZzogdHJ1ZSwgY29sb3I6IFwiZGVmYXVsdC1zZWNvbmRhcnlcIiwgY2hpbGRyZW46IHZhbHVlIH0pKSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,27 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ButtonProps } from "../Button";
3
+ import type { DialogActionKind, DialogControlType } from './constants';
4
+ import type { DialogProps } from './interface';
5
+ import type { DialogAction } from './types';
6
+ interface DialogControlButtonOptions {
7
+ prefixCls: string;
8
+ type: DialogControlType;
9
+ icon?: ReactNode;
10
+ onClick?: DialogAction;
11
+ }
12
+ interface DialogActionButtonOptions {
13
+ prefixCls: string;
14
+ kind: DialogActionKind;
15
+ text: ReactNode;
16
+ action?: DialogAction;
17
+ buttonProps?: Partial<ButtonProps>;
18
+ }
19
+ interface DialogFooterOptions {
20
+ footer: DialogProps['footer'];
21
+ cancelButton: ReactNode;
22
+ okButton: ReactNode;
23
+ }
24
+ export declare const renderDialogControlButton: ({ prefixCls, type, icon, onClick, }: DialogControlButtonOptions) => import("react/jsx-runtime").JSX.Element;
25
+ export declare const renderDialogActionButton: ({ prefixCls, kind, text, action, buttonProps, }: DialogActionButtonOptions) => import("react/jsx-runtime").JSX.Element | null;
26
+ export declare const resolveDialogFooter: ({ footer, cancelButton, okButton, }: DialogFooterOptions) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
27
+ export {};