@1money/component-ui 0.0.71 → 0.0.73

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 (75) hide show
  1. package/es/components/ProForm/ProForm.d.ts +10 -2
  2. package/es/components/ProForm/ProForm.js +55 -22
  3. package/es/components/ProForm/ProFormDependency.js +4 -1
  4. package/es/components/ProForm/ProFormItem.js +73 -36
  5. package/es/components/ProForm/SchemaForm.d.ts +7 -0
  6. package/es/components/ProForm/SchemaForm.js +103 -0
  7. package/es/components/ProForm/Submitter.js +12 -2
  8. package/es/components/ProForm/context.d.ts +22 -3
  9. package/es/components/ProForm/context.js +49 -10
  10. package/es/components/ProForm/core/constants.d.ts +2 -1
  11. package/es/components/ProForm/core/constants.js +3 -6
  12. package/es/components/ProForm/core/hooks/useForm.js +155 -131
  13. package/es/components/ProForm/core/hooks/useFormCore.js +73 -39
  14. package/es/components/ProForm/core/interface.d.ts +33 -12
  15. package/es/components/ProForm/core/runRules.d.ts +16 -6
  16. package/es/components/ProForm/core/runRules.js +94 -47
  17. package/es/components/ProForm/core/useFormItem.d.ts +10 -1
  18. package/es/components/ProForm/core/useFormItem.js +101 -39
  19. package/es/components/ProForm/fields/ProFormDatePicker.js +4 -1
  20. package/es/components/ProForm/fields/createProFormField.js +50 -31
  21. package/es/components/ProForm/index.d.ts +11 -4
  22. package/es/components/ProForm/index.js +7 -2
  23. package/es/components/ProForm/interface.d.ts +89 -14
  24. package/es/components/ProForm/layouts/DialogForm.d.ts +5 -1
  25. package/es/components/ProForm/layouts/DialogForm.js +2 -1
  26. package/es/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  27. package/es/components/ProForm/layouts/DrawerForm.js +2 -1
  28. package/es/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  29. package/es/components/ProForm/layouts/QueryFilter.js +77 -12
  30. package/es/components/ProForm/style/ProForm.css +6 -0
  31. package/es/components/ProForm/utils.d.ts +12 -1
  32. package/es/components/ProForm/utils.js +70 -21
  33. package/es/components/Tooltip/style/Tooltip.css +1 -0
  34. package/es/index.css +1 -1
  35. package/es/index.d.ts +2 -2
  36. package/es/index.js +2 -2
  37. package/lib/components/ProForm/ProForm.d.ts +10 -2
  38. package/lib/components/ProForm/ProForm.js +53 -20
  39. package/lib/components/ProForm/ProFormDependency.js +4 -1
  40. package/lib/components/ProForm/ProFormItem.js +72 -34
  41. package/lib/components/ProForm/SchemaForm.d.ts +7 -0
  42. package/lib/components/ProForm/SchemaForm.js +110 -0
  43. package/lib/components/ProForm/Submitter.js +12 -2
  44. package/lib/components/ProForm/context.d.ts +22 -3
  45. package/lib/components/ProForm/context.js +49 -10
  46. package/lib/components/ProForm/core/constants.d.ts +2 -1
  47. package/lib/components/ProForm/core/constants.js +4 -7
  48. package/lib/components/ProForm/core/hooks/useForm.js +154 -130
  49. package/lib/components/ProForm/core/hooks/useFormCore.js +72 -38
  50. package/lib/components/ProForm/core/interface.d.ts +33 -12
  51. package/lib/components/ProForm/core/runRules.d.ts +16 -6
  52. package/lib/components/ProForm/core/runRules.js +95 -47
  53. package/lib/components/ProForm/core/useFormItem.d.ts +10 -1
  54. package/lib/components/ProForm/core/useFormItem.js +100 -38
  55. package/lib/components/ProForm/fields/ProFormDatePicker.js +4 -1
  56. package/lib/components/ProForm/fields/createProFormField.js +50 -31
  57. package/lib/components/ProForm/index.d.ts +11 -4
  58. package/lib/components/ProForm/index.js +16 -1
  59. package/lib/components/ProForm/interface.d.ts +89 -14
  60. package/lib/components/ProForm/layouts/DialogForm.d.ts +5 -1
  61. package/lib/components/ProForm/layouts/DialogForm.js +2 -1
  62. package/lib/components/ProForm/layouts/DrawerForm.d.ts +5 -1
  63. package/lib/components/ProForm/layouts/DrawerForm.js +2 -1
  64. package/lib/components/ProForm/layouts/QueryFilter.d.ts +5 -2
  65. package/lib/components/ProForm/layouts/QueryFilter.js +77 -12
  66. package/lib/components/ProForm/style/ProForm.css +6 -0
  67. package/lib/components/ProForm/utils.d.ts +12 -1
  68. package/lib/components/ProForm/utils.js +73 -21
  69. package/lib/components/Tooltip/style/Tooltip.css +1 -0
  70. package/lib/index.css +1 -1
  71. package/lib/index.d.ts +2 -2
  72. package/lib/index.js +13 -1
  73. package/package.json +1 -1
  74. package/scripts/mcp-server/examples.generated.json +54 -0
  75. package/scripts/mcp-server/index.generated.json +1212 -80
@@ -7,11 +7,14 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.useFormItem = useFormItem;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
12
  var _react = _interopRequireWildcard(require("react"));
12
13
  var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
14
+ var _useDebouncedCallback2 = _interopRequireDefault(require("@1money/hooks/useDebouncedCallback"));
13
15
  var _context2 = require("../context");
14
16
  var _pathUtils = require("./pathUtils");
17
+ var _runRules = require("./runRules");
15
18
  var _constants = require("./constants");
16
19
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
20
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
@@ -42,9 +45,24 @@ var __awaiter = void 0 && (void 0).__awaiter || function (thisArg, _arguments, P
42
45
  step((generator = generator.apply(thisArg, _arguments || [])).next());
43
46
  });
44
47
  };
45
- /** Normalise a change-handler argument: unwrap `e.target.value`, else pass the value through. */
48
+ /**
49
+ * Normalise a change-handler argument: unwrap `e.target[valuePropName]` /
50
+ * `e[valuePropName]` (e.g. Checkbox emits `{ checked }`), else `e.target.value`,
51
+ * else pass the value through (e.g. Switch emits the boolean directly).
52
+ */
46
53
  function extractEventValue(e) {
47
- return e && (0, _typeof2["default"])(e) === 'object' && 'target' in e ? e.target.value : e;
54
+ var valuePropName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'value';
55
+ if (e === null || (0, _typeof2["default"])(e) !== 'object') return e;
56
+ var event = e;
57
+ if (valuePropName !== 'value' && valuePropName in event) {
58
+ return event[valuePropName];
59
+ }
60
+ if ('target' in event && event.target && (0, _typeof2["default"])(event.target) === 'object') {
61
+ var target = event.target;
62
+ if (valuePropName in target) return target[valuePropName];
63
+ if ('value' in target) return target.value;
64
+ }
65
+ return e;
48
66
  }
49
67
  function useFormItem(options) {
50
68
  var _this = this;
@@ -52,10 +70,14 @@ function useFormItem(options) {
52
70
  _options$rules = options.rules,
53
71
  rules = _options$rules === void 0 ? [] : _options$rules,
54
72
  required = options.required,
55
- validateStatus = options.validateStatus;
73
+ validateStatus = options.validateStatus,
74
+ _options$valuePropNam = options.valuePropName,
75
+ valuePropName = _options$valuePropNam === void 0 ? 'value' : _options$valuePropNam,
76
+ validateDebounce = options.validateDebounce;
56
77
  var ctx = (0, _context2.useProFormContext)();
57
78
  var values = ctx.values,
58
79
  errors = ctx.errors,
80
+ warnings = ctx.warnings,
59
81
  validating = ctx.validating,
60
82
  setFieldValue = ctx.setFieldValue,
61
83
  validateField = ctx.validateField,
@@ -70,42 +92,95 @@ function useFormItem(options) {
70
92
  return rule.required;
71
93
  }));
72
94
  var fieldValue = name ? name.includes('.') ? (0, _pathUtils.getNestedValue)(values, name) : values[name] : undefined;
73
- var fieldError = name ? name.includes('.') ? (0, _pathUtils.getNestedValue)(errors, name) : errors[name] : undefined;
95
+ // Errors/warnings are stored FLAT, keyed by the full (possibly dotted) field
96
+ // name — never resolve them as nested paths or dotted names would miss.
97
+ var fieldError = name ? errors[name] : undefined;
98
+ var fieldWarning = name ? warnings[name] : undefined;
74
99
  var fieldValidating = name ? validating[name] || false : false;
75
- var finalStatus = validateStatus || (fieldError ? 'error' : undefined);
76
- var runValidate = (0, _useEventCallback["default"])(function (value) {
77
- if (name && rules.length > 0) return validateField(name, rules, value);
78
- return true;
100
+ var finalStatus = validateStatus || (fieldError ? 'error' : fieldWarning ? 'warning' : undefined);
101
+ // Run only the rules applicable to the given interactive trigger; rules
102
+ // without an explicit validateTrigger follow the form-level setting.
103
+ var runValidate = (0, _useEventCallback["default"])(function (value, trigger) {
104
+ if (!name || rules.length === 0) return true;
105
+ var applicable = (0, _runRules.filterRulesByTrigger)(rules, trigger, validateTrigger);
106
+ if (applicable.length === 0) return true;
107
+ return validateField(name, applicable, value);
79
108
  });
80
- var runValidateAsync = (0, _useEventCallback["default"])(function (value) {
109
+ var runValidateAsync = (0, _useEventCallback["default"])(function (value, trigger) {
81
110
  return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
111
+ var applicable;
82
112
  return _regenerator["default"].wrap(function (_context) {
83
113
  while (1) switch (_context.prev = _context.next) {
84
114
  case 0:
85
- if (!(name && rules.length > 0)) {
115
+ if (!(!name || rules.length === 0)) {
86
116
  _context.next = 1;
87
117
  break;
88
118
  }
89
- _context.next = 1;
90
- return validateFieldAsync(name, value, rules);
119
+ return _context.abrupt("return");
91
120
  case 1:
121
+ applicable = (0, _runRules.filterRulesByTrigger)(rules, trigger, validateTrigger);
122
+ if (!(applicable.length === 0)) {
123
+ _context.next = 2;
124
+ break;
125
+ }
126
+ return _context.abrupt("return");
127
+ case 2:
128
+ _context.next = 3;
129
+ return validateFieldAsync(name, value, applicable);
130
+ case 3:
92
131
  case "end":
93
132
  return _context.stop();
94
133
  }
95
134
  }, _callee);
96
135
  }));
97
136
  });
137
+ var _useDebouncedCallback = (0, _useDebouncedCallback2["default"])(function (value) {
138
+ runValidate(value, 'onChange');
139
+ }, validateDebounce),
140
+ debouncedValidate = _useDebouncedCallback.run;
98
141
  var handleChange = (0, _useEventCallback["default"])(function (value) {
99
142
  if (name) {
100
143
  setFieldValue(name, value);
101
- if (validateTrigger === 'onChange') runValidate(value);
144
+ if (validateDebounce && validateDebounce > 0) {
145
+ debouncedValidate(value);
146
+ } else {
147
+ runValidate(value, 'onChange');
148
+ }
102
149
  }
103
150
  });
104
151
  var handleBlur = (0, _useEventCallback["default"])(function () {
105
- if (validateTrigger === 'onBlur') runValidateAsync(fieldValue);
152
+ runValidateAsync(fieldValue, 'onBlur');
153
+ });
154
+ // Latest child-provided callbacks, captured at injectField time. The STABLE
155
+ // injected handlers below delegate through this ref instead of being
156
+ // recreated per render — so a memoized field component sees shallow-equal
157
+ // props across renders and can bail out while another field is typing.
158
+ var childCallbacksRef = (0, _react.useRef)({});
159
+ var injectedOnChange = (0, _useEventCallback["default"])(function (e) {
160
+ var _b2;
161
+ var _a, _b;
162
+ handleChange(extractEventValue(e, valuePropName));
163
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
164
+ args[_key - 1] = arguments[_key];
165
+ }
166
+ (_b = (_a = childCallbacksRef.current).onChange) === null || _b === void 0 ? void 0 : (_b2 = _b).call.apply(_b2, [_a, e].concat(args));
167
+ });
168
+ var injectedOnBlur = (0, _useEventCallback["default"])(function () {
169
+ var _b3;
170
+ var _a, _b;
171
+ handleBlur();
172
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
173
+ args[_key2] = arguments[_key2];
174
+ }
175
+ (_b = (_a = childCallbacksRef.current).onBlur) === null || _b === void 0 ? void 0 : (_b3 = _b).call.apply(_b3, [_a].concat(args));
106
176
  });
177
+ // Keep the registry in sync with the LATEST rules every render (registration
178
+ // is a cheap ref mutation): dynamic rules (e.g. required toggled by another
179
+ // field) must be visible to submit-time validation, not just onChange.
107
180
  (0, _react.useEffect)(function () {
108
181
  if (name && registerField) registerField(name, rules);
182
+ });
183
+ (0, _react.useEffect)(function () {
109
184
  return function () {
110
185
  if (name && unregisterField) unregisterField(name);
111
186
  };
@@ -115,37 +190,23 @@ function useFormItem(options) {
115
190
  if (!name || ! /*#__PURE__*/_react["default"].isValidElement(child)) return child;
116
191
  var childProps = child.props;
117
192
  var displayName = (_a = child.type) === null || _a === void 0 ? void 0 : _a.displayName;
118
- var isFormComponent = _constants.FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined;
193
+ var isFormComponent = _constants.FORM_COMPONENT_NAMES.includes(displayName) || childProps.placeholder !== undefined || childProps.value !== undefined || childProps[valuePropName] !== undefined;
119
194
  if (!isFormComponent) return child;
120
195
  var safeValue = fieldValue;
121
196
  if (safeValue === null || safeValue === undefined) {
122
- if (_constants.TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') || childProps.placeholder !== undefined) {
123
- safeValue = '';
124
- } else if (['Checkbox', 'Switch'].includes(displayName || '')) {
197
+ if (valuePropName === 'checked' || ['Checkbox', 'Switch'].includes(displayName || '')) {
125
198
  safeValue = false;
199
+ } else if (_constants.TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') || childProps.placeholder !== undefined) {
200
+ safeValue = '';
126
201
  }
127
202
  } else if (_constants.TEXT_LIKE_COMPONENT_NAMES.includes(displayName || '') && typeof safeValue !== 'string' && typeof safeValue !== 'number') {
128
203
  safeValue = '';
129
204
  }
130
- var injectedProps = Object.assign({
131
- value: safeValue,
132
- onChange: function onChange(e) {
133
- handleChange(extractEventValue(e));
134
- if (typeof childProps.onChange === 'function') {
135
- for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
136
- args[_key - 1] = arguments[_key];
137
- }
138
- childProps.onChange.apply(childProps, [e].concat(args));
139
- }
140
- },
141
- onBlur: function onBlur() {
142
- handleBlur();
143
- if (typeof childProps.onBlur === 'function') {
144
- childProps.onBlur.apply(childProps, arguments);
145
- }
146
- },
147
- size: childProps.size || size
148
- }, finalStatus === 'error' && {
205
+ childCallbacksRef.current = {
206
+ onChange: typeof childProps.onChange === 'function' ? childProps.onChange : undefined,
207
+ onBlur: typeof childProps.onBlur === 'function' ? childProps.onBlur : undefined
208
+ };
209
+ var injectedProps = Object.assign((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, valuePropName, safeValue), "onChange", injectedOnChange), "onBlur", injectedOnBlur), finalStatus === 'error' && {
149
210
  status: 'error'
150
211
  });
151
212
  return /*#__PURE__*/_react["default"].cloneElement(child, injectedProps);
@@ -153,6 +214,7 @@ function useFormItem(options) {
153
214
  return {
154
215
  fieldValue: fieldValue,
155
216
  fieldError: fieldError,
217
+ fieldWarning: fieldWarning,
156
218
  fieldValidating: fieldValidating,
157
219
  validateStatus: finalStatus,
158
220
  isRequired: isRequired,
@@ -162,4 +224,4 @@ function useFormItem(options) {
162
224
  injectField: injectField
163
225
  };
164
226
  }
165
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29udGV4dDIiLCJfcGF0aFV0aWxzIiwiX2NvbnN0YW50cyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfX2F3YWl0ZXIiLCJ0aGlzQXJnIiwiX2FyZ3VtZW50cyIsIlAiLCJnZW5lcmF0b3IiLCJhZG9wdCIsInZhbHVlIiwicmVzb2x2ZSIsIlByb21pc2UiLCJyZWplY3QiLCJmdWxmaWxsZWQiLCJzdGVwIiwibmV4dCIsInJlamVjdGVkIiwicmVzdWx0IiwiZG9uZSIsInRoZW4iLCJhcHBseSIsImV4dHJhY3RFdmVudFZhbHVlIiwiX3R5cGVvZjIiLCJ0YXJnZXQiLCJ1c2VGb3JtSXRlbSIsIm9wdGlvbnMiLCJfdGhpcyIsIm5hbWUiLCJfb3B0aW9ucyRydWxlcyIsInJ1bGVzIiwicmVxdWlyZWQiLCJ2YWxpZGF0ZVN0YXR1cyIsImN0eCIsInVzZVByb0Zvcm1Db250ZXh0IiwidmFsdWVzIiwiZXJyb3JzIiwidmFsaWRhdGluZyIsInNldEZpZWxkVmFsdWUiLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwidmFsaWRhdGVUcmlnZ2VyIiwiaXNSZXF1aXJlZCIsIkJvb2xlYW4iLCJzb21lIiwicnVsZSIsImZpZWxkVmFsdWUiLCJpbmNsdWRlcyIsImdldE5lc3RlZFZhbHVlIiwidW5kZWZpbmVkIiwiZmllbGRFcnJvciIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwibGVuZ3RoIiwicnVuVmFsaWRhdGVBc3luYyIsIl9yZWdlbmVyYXRvciIsIm1hcmsiLCJfY2FsbGVlIiwid3JhcCIsIl9jb250ZXh0IiwicHJldiIsInN0b3AiLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVCbHVyIiwidXNlRWZmZWN0IiwiaW5qZWN0RmllbGQiLCJjaGlsZCIsIl9hIiwiUmVhY3QiLCJpc1ZhbGlkRWxlbWVudCIsImNoaWxkUHJvcHMiLCJwcm9wcyIsImRpc3BsYXlOYW1lIiwidHlwZSIsImlzRm9ybUNvbXBvbmVudCIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwicGxhY2Vob2xkZXIiLCJzYWZlVmFsdWUiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIiwiaW5qZWN0ZWRQcm9wcyIsImFzc2lnbiIsIm9uQ2hhbmdlIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJvbkJsdXIiLCJzdGF0dXMiLCJjbG9uZUVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQThFLFNBQUFNLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFE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YSxDQUFDO0VBQ2pELENBQUM7RUFFRCxPQUFPO0lBQ0xuQyxVQUFVLEVBQVZBLFVBQVU7SUFDVkksVUFBVSxFQUFWQSxVQUFVO0lBQ1ZDLGVBQWUsRUFBZkEsZUFBZTtJQUNmeEIsY0FBYyxFQUFFeUIsV0FBVztJQUMzQlYsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZKLElBQUksRUFBSkEsSUFBSTtJQUNKQyxVQUFVLEVBQVZBLFVBQVU7SUFDVkMsWUFBWSxFQUFaQSxZQUFZO0lBQ1oyQixXQUFXLEVBQVhBO0VDMUNBLENEMkNEO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtQ29udGV4dCB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBGT1JNX0NPTVBPTkVOVF9OQU1FUywgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKiBOb3JtYWxpc2UgYSBjaGFuZ2UtaGFuZGxlciBhcmd1bWVudDogdW53cmFwIGBlLnRhcmdldC52YWx1ZWAsIGVsc2UgcGFzcyB0aGUgdmFsdWUgdGhyb3VnaC4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudFZhbHVlKGUpIHtcbiAgICByZXR1cm4gZSAmJiB0eXBlb2YgZSA9PT0gJ29iamVjdCcgJiYgJ3RhcmdldCcgaW4gZVxuICAgICAgICA/IGUudGFyZ2V0LnZhbHVlXG4gICAgICAgIDogZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtSXRlbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBuYW1lLCBydWxlcyA9IFtdLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgY3R4ID0gdXNlUHJvRm9ybUNvbnRleHQoKTtcbiAgICBjb25zdCB7IHZhbHVlcywgZXJyb3JzLCB2YWxpZGF0aW5nLCBzZXRGaWVsZFZhbHVlLCB2YWxpZGF0ZUZpZWxkLCB2YWxpZGF0ZUZpZWxkQXN5bmMsIHJlZ2lzdGVyRmllbGQsIHVucmVnaXN0ZXJGaWVsZCwgc2l6ZSwgbGFiZWxBbGlnbiwgcmVxdWlyZWRNYXJrLCB2YWxpZGF0ZVRyaWdnZXIsIH0gPSBjdHg7XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IEJvb2xlYW4ocmVxdWlyZWQgfHwgcnVsZXMuc29tZSgocnVsZSkgPT4gcnVsZS5yZXF1aXJlZCkpO1xuICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBuYW1lXG4gICAgICAgID8gKG5hbWUuaW5jbHVkZXMoJy4nKSA/IGdldE5lc3RlZFZhbHVlKHZhbHVlcywgbmFtZSkgOiB2YWx1ZXNbbmFtZV0pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpZWxkRXJyb3IgPSBuYW1lXG4gICAgICAgID8gKG5hbWUuaW5jbHVkZXMoJy4nKVxuICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZShlcnJvcnMsIG5hbWUpXG4gICAgICAgICAgICA6IGVycm9yc1tuYW1lXSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmllbGRWYWxpZGF0aW5nID0gbmFtZSA/ICh2YWxpZGF0aW5nW25hbWVdIHx8IGZhbHNlKSA6IGZhbHNlO1xuICAgIGNvbnN0IGZpbmFsU3RhdHVzID0gdmFsaWRhdGVTdGF0dXMgfHwgKGZpZWxkRXJyb3IgPyAnZXJyb3InIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBydW5WYWxpZGF0ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChuYW1lICYmIHJ1bGVzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICByZXR1cm4gdmFsaWRhdGVGaWVsZChuYW1lLCBydWxlcywgdmFsdWUpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9KTtcbiAgICBjb25zdCBydW5WYWxpZGF0ZUFzeW5jID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcnVsZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgeWllbGQgdmFsaWRhdGVGaWVsZEFzeW5jKG5hbWUsIHZhbHVlLCBydWxlcyk7XG4gICAgICAgIH1cbiAgICB9KSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRlVHJpZ2dlciA9PT0gJ29uQ2hhbmdlJylcbiAgICAgICAgICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGlmICh2YWxpZGF0ZVRyaWdnZXIgPT09ICdvbkJsdXInKVxuICAgICAgICAgICAgcnVuVmFsaWRhdGVBc3luYyhmaWVsZFZhbHVlKTtcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmFtZSAmJiByZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgcmVnaXN0ZXJGaWVsZChuYW1lLCBydWxlcyk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZSAmJiB1bnJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lXSk7XG4gICAgY29uc3QgaW5qZWN0RmllbGQgPSAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY29uc3QgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChfYSA9IGNoaWxkLnR5cGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwbGF5TmFtZTtcbiAgICAgICAgY29uc3QgaXNGb3JtQ29tcG9uZW50ID0gRk9STV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUpIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFpc0Zvcm1Db21wb25lbnQpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGxldCBzYWZlVmFsdWUgPSBmaWVsZFZhbHVlO1xuICAgICAgICBpZiAoc2FmZVZhbHVlID09PSBudWxsIHx8IHNhZmVWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgfHxcbiAgICAgICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSAnJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKFsnQ2hlY2tib3gnLCAnU3dpdGNoJ10uaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5qZWN0ZWRQcm9wcyA9IE9iamVjdC5hc3NpZ24oeyB2YWx1ZTogc2FmZVZhbHVlLCBvbkNoYW5nZTogKGUsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVDaGFuZ2UoZXh0cmFjdEV2ZW50VmFsdWUoZSkpO1xuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRQcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BzLm9uQ2hhbmdlKGUsIC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG9uQmx1cjogKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjaGlsZFByb3BzLm9uQmx1ciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BzLm9uQmx1ciguLi5hcmdzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LCBzaXplOiBjaGlsZFByb3BzLnNpemUgfHwgc2l6ZSB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBpbmplY3RlZFByb3BzKTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgIGZpZWxkRXJyb3IsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
227
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2syIiwiX2NvbnRleHQyIiwiX3BhdGhVdGlscyIsIl9ydW5SdWxlcyIsIl9jb25zdGFudHMiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX19hd2FpdGVyIiwidGhpc0FyZyIsIl9hcmd1bWVudHMiLCJQIiwiZ2VuZXJhdG9yIiwiYWRvcHQiLCJ2YWx1ZSIsInJlc29sdmUiLCJQcm9taXNlIiwicmVqZWN0IiwiZnVsZmlsbGVkIiwic3RlcCIsIm5leHQiLCJyZWplY3RlZCIsInJlc3VsdCIsImRvbmUiLCJ0aGVuIiwiYXBwbHkiLCJleHRyYWN0RXZlbnRWYWx1ZSIsInZhbHVlUHJvcE5hbWUiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfdHlwZW9mMiIsImV2ZW50IiwidGFyZ2V0IiwidXNlRm9ybUl0ZW0iLCJvcHRpb25zIiwiX3RoaXMiLCJuYW1lIiwiX29wdGlvbnMkcnVsZXMiLCJydWxlcyIsInJlcXVpcmVkIiwidmFsaWRhdGVTdGF0dXMiLCJfb3B0aW9ucyR2YWx1ZVByb3BOYW0iLCJ2YWxpZGF0ZURlYm91bmNlIiwiY3R4IiwidXNlUHJvRm9ybUNvbnRleHQiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ3YXJuaW5ncyIsInZhbGlkYXRpbmciLCJzZXRGaWVsZFZhbHVlIiwidmFsaWRhdGVGaWVsZCIsInZhbGlkYXRlRmllbGRBc3luYyIsInJlZ2lzdGVyRmllbGQiLCJ1bnJlZ2lzdGVyRmllbGQiLCJzaXplIiwibGFiZWxBbGlnbiIsInJlcXVpcmVkTWFyayIsInZhbGlkYXRlVHJpZ2dlciIsImlzUmVxdWlyZWQiLCJCb29sZWFuIiwic29tZSIsInJ1bGUiLCJmaWVsZFZhbHVlIiwiaW5jbHVkZXMiLCJnZXROZXN0ZWRWYWx1ZSIsImZpZWxkRXJyb3IiLCJmaWVsZFdhcm5pbmciLCJmaWVsZFZhbGlkYXRpbmciLCJmaW5hbFN0YXR1cyIsInJ1blZhbGlkYXRlIiwidXNlRXZlbnRDYWxsYmFjayIsInRyaWdnZXIiLCJhcHBsaWNhYmxlIiwiZmlsdGVyUnVsZXNCeVRyaWdnZXIiLCJydW5WYWxpZGF0ZUFzeW5jIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic3RvcCIsIl91c2VEZWJvdW5jZWRDYWxsYmFjayIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiZGVib3VuY2VkVmFsaWRhdGUiLCJydW4iLCJoYW5kbGVDaGFuZ2UiLCJoYW5kbGVCbHVyIiwiY2hpbGRDYWxsYmFja3NSZWYiLCJ1c2VSZWYiLCJpbmplY3RlZE9uQ2hhbmdlIiwiX2IyIiwiX2EiLCJfYiIsIl9sZW4iLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY3VycmVudCIsIm9uQ2hhbmdlIiwiY29uY2F0IiwiaW5qZWN0ZWRPbkJsdXIiLCJfYjMiLCJfbGVuMiIsIl9rZXkyIiwib25CbHVyIiwidXNlRWZmZWN0IiwiaW5qZWN0RmllbGQiLCJjaGlsZCIsIlJlYWN0IiwiaXNWYWxpZEVsZW1lbnQiLCJjaGlsZFByb3BzIiwicHJvcHMiLCJkaXNwbGF5TmFtZSIsInR5cGUiLCJpc0Zvcm1Db21wb25lbnQiLCJGT1JNX0NPTVBPTkVOVF9OQU1FUyIsInBsYWNlaG9sZGVyIiwic2FmZVZhbHVlIiwiVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUyIsImluamVjdGVkUHJvcHMiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkyIiwic3RhdHVzIiwiY2xvbmVFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxzQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sU0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sVUFBQSxHQUFBUCxPQUFBO0FBQThFLFNBQUFRLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBVix3QkFBQVUsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxRQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FB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QUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2YzQixjQUFjLEVBQUU0QixXQUFXO0lBQzNCVixVQUFVLEVBQVZBLFVBQVU7SUFDVkosSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWm9ELFdBQVcsRUFBWEE7RUNoRUEsQ0RpRUQ7QUFDSCIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwidmFyIF9fYXdhaXRlciA9ICh0aGlzICYmIHRoaXMuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG5pbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHsgdXNlUHJvRm9ybUNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyUnVsZXNCeVRyaWdnZXIgfSBmcm9tICcuL3J1blJ1bGVzJztcbmltcG9ydCB7IEZPUk1fQ09NUE9ORU5UX05BTUVTLCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuLyoqXG4gKiBOb3JtYWxpc2UgYSBjaGFuZ2UtaGFuZGxlciBhcmd1bWVudDogdW53cmFwIGBlLnRhcmdldFt2YWx1ZVByb3BOYW1lXWAgL1xuICogYGVbdmFsdWVQcm9wTmFtZV1gIChlLmcuIENoZWNrYm94IGVtaXRzIGB7IGNoZWNrZWQgfWApLCBlbHNlIGBlLnRhcmdldC52YWx1ZWAsXG4gKiBlbHNlIHBhc3MgdGhlIHZhbHVlIHRocm91Z2ggKGUuZy4gU3dpdGNoIGVtaXRzIHRoZSBib29sZWFuIGRpcmVjdGx5KS5cbiAqL1xuZnVuY3Rpb24gZXh0cmFjdEV2ZW50VmFsdWUoZSwgdmFsdWVQcm9wTmFtZSA9ICd2YWx1ZScpIHtcbiAgICBpZiAoZSA9PT0gbnVsbCB8fCB0eXBlb2YgZSAhPT0gJ29iamVjdCcpXG4gICAgICAgIHJldHVybiBlO1xuICAgIGNvbnN0IGV2ZW50ID0gZTtcbiAgICBpZiAodmFsdWVQcm9wTmFtZSAhPT0gJ3ZhbHVlJyAmJiB2YWx1ZVByb3BOYW1lIGluIGV2ZW50KSB7XG4gICAgICAgIHJldHVybiBldmVudFt2YWx1ZVByb3BOYW1lXTtcbiAgICB9XG4gICAgaWYgKCd0YXJnZXQnIGluIGV2ZW50ICYmIGV2ZW50LnRhcmdldCAmJiB0eXBlb2YgZXZlbnQudGFyZ2V0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQ7XG4gICAgICAgIGlmICh2YWx1ZVByb3BOYW1lIGluIHRhcmdldClcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXRbdmFsdWVQcm9wTmFtZV07XG4gICAgICAgIGlmICgndmFsdWUnIGluIHRhcmdldClcbiAgICAgICAgICAgIHJldHVybiB0YXJnZXQudmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBlO1xufVxuZXhwb3J0IGZ1bmN0aW9uIHVzZUZvcm1JdGVtKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IG5hbWUsIHJ1bGVzID0gW10sIHJlcXVpcmVkLCB2YWxpZGF0ZVN0YXR1cywgdmFsdWVQcm9wTmFtZSA9ICd2YWx1ZScsIHZhbGlkYXRlRGVib3VuY2UsIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IGN0eCA9IHVzZVByb0Zvcm1Db250ZXh0KCk7XG4gICAgY29uc3QgeyB2YWx1ZXMsIGVycm9ycywgd2FybmluZ3MsIHZhbGlkYXRpbmcsIHNldEZpZWxkVmFsdWUsIHZhbGlkYXRlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYywgcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBzaXplLCBsYWJlbEFsaWduLCByZXF1aXJlZE1hcmssIHZhbGlkYXRlVHJpZ2dlciwgfSA9IGN0eDtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gQm9vbGVhbihyZXF1aXJlZCB8fCBydWxlcy5zb21lKChydWxlKSA9PiBydWxlLnJlcXVpcmVkKSk7XG4gICAgY29uc3QgZmllbGRWYWx1ZSA9IG5hbWVcbiAgICAgICAgPyAobmFtZS5pbmNsdWRlcygnLicpID8gZ2V0TmVzdGVkVmFsdWUodmFsdWVzLCBuYW1lKSA6IHZhbHVlc1tuYW1lXSlcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgLy8gRXJyb3JzL3dhcm5pbmdzIGFyZSBzdG9yZWQgRkxBVCwga2V5ZWQgYnkgdGhlIGZ1bGwgKHBvc3NpYmx5IGRvdHRlZCkgZmllbGRcbiAgICAvLyBuYW1lIOKAlCBuZXZlciByZXNvbHZlIHRoZW0gYXMgbmVzdGVkIHBhdGhzIG9yIGRvdHRlZCBuYW1lcyB3b3VsZCBtaXNzLlxuICAgIGNvbnN0IGZpZWxkRXJyb3IgPSBuYW1lID8gZXJyb3JzW25hbWVdIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZpZWxkV2FybmluZyA9IG5hbWUgPyB3YXJuaW5nc1tuYW1lXSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBmaWVsZFZhbGlkYXRpbmcgPSBuYW1lID8gKHZhbGlkYXRpbmdbbmFtZV0gfHwgZmFsc2UpIDogZmFsc2U7XG4gICAgY29uc3QgZmluYWxTdGF0dXMgPSB2YWxpZGF0ZVN0YXR1cyB8fCAoZmllbGRFcnJvciA/ICdlcnJvcicgOiBmaWVsZFdhcm5pbmcgPyAnd2FybmluZycgOiB1bmRlZmluZWQpO1xuICAgIC8vIFJ1biBvbmx5IHRoZSBydWxlcyBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiBpbnRlcmFjdGl2ZSB0cmlnZ2VyOyBydWxlc1xuICAgIC8vIHdpdGhvdXQgYW4gZXhwbGljaXQgdmFsaWRhdGVUcmlnZ2VyIGZvbGxvdyB0aGUgZm9ybS1sZXZlbCBzZXR0aW5nLlxuICAgIGNvbnN0IHJ1blZhbGlkYXRlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUsIHRyaWdnZXIpID0+IHtcbiAgICAgICAgaWYgKCFuYW1lIHx8IHJ1bGVzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocnVsZXMsIHRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgIGlmIChhcHBsaWNhYmxlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVGaWVsZChuYW1lLCBhcHBsaWNhYmxlLCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGVBc3luYyA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlLCB0cmlnZ2VyKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghbmFtZSB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBmaWx0ZXJSdWxlc0J5VHJpZ2dlcihydWxlcywgdHJpZ2dlciwgdmFsaWRhdGVUcmlnZ2VyKTtcbiAgICAgICAgaWYgKGFwcGxpY2FibGUubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB5aWVsZCB2YWxpZGF0ZUZpZWxkQXN5bmMobmFtZSwgdmFsdWUsIGFwcGxpY2FibGUpO1xuICAgIH0pKTtcbiAgICBjb25zdCB7IHJ1bjogZGVib3VuY2VkVmFsaWRhdGUgfSA9IHVzZURlYm91bmNlZENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgfSwgdmFsaWRhdGVEZWJvdW5jZSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgaWYgKHZhbGlkYXRlRGVib3VuY2UgJiYgdmFsaWRhdGVEZWJvdW5jZSA+IDApIHtcbiAgICAgICAgICAgICAgICBkZWJvdW5jZWRWYWxpZGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHJ1blZhbGlkYXRlQXN5bmMoZmllbGRWYWx1ZSwgJ29uQmx1cicpO1xuICAgIH0pO1xuICAgIC8vIExhdGVzdCBjaGlsZC1wcm92aWRlZCBjYWxsYmFja3MsIGNhcHR1cmVkIGF0IGluamVjdEZpZWxkIHRpbWUuIFRoZSBTVEFCTEVcbiAgICAvLyBpbmplY3RlZCBoYW5kbGVycyBiZWxvdyBkZWxlZ2F0ZSB0aHJvdWdoIHRoaXMgcmVmIGluc3RlYWQgb2YgYmVpbmdcbiAgICAvLyByZWNyZWF0ZWQgcGVyIHJlbmRlciDigJQgc28gYSBtZW1vaXplZCBmaWVsZCBjb21wb25lbnQgc2VlcyBzaGFsbG93LWVxdWFsXG4gICAgLy8gcHJvcHMgYWNyb3NzIHJlbmRlcnMgYW5kIGNhbiBiYWlsIG91dCB3aGlsZSBhbm90aGVyIGZpZWxkIGlzIHR5cGluZy5cbiAgICBjb25zdCBjaGlsZENhbGxiYWNrc1JlZiA9IHVzZVJlZih7fSk7XG4gICAgY29uc3QgaW5qZWN0ZWRPbkNoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKGUsIC4uLmFyZ3MpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaGFuZGxlQ2hhbmdlKGV4dHJhY3RFdmVudFZhbHVlKGUsIHZhbHVlUHJvcE5hbWUpKTtcbiAgICAgICAgKF9iID0gKF9hID0gY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCkub25DaGFuZ2UpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCBlLCAuLi5hcmdzKTtcbiAgICB9KTtcbiAgICBjb25zdCBpbmplY3RlZE9uQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaGFuZGxlQmx1cigpO1xuICAgICAgICAoX2IgPSAoX2EgPSBjaGlsZENhbGxiYWNrc1JlZi5jdXJyZW50KS5vbkJsdXIpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jYWxsKF9hLCAuLi5hcmdzKTtcbiAgICB9KTtcbiAgICAvLyBLZWVwIHRoZSByZWdpc3RyeSBpbiBzeW5jIHdpdGggdGhlIExBVEVTVCBydWxlcyBldmVyeSByZW5kZXIgKHJlZ2lzdHJhdGlvblxuICAgIC8vIGlzIGEgY2hlYXAgcmVmIG11dGF0aW9uKTogZHluYW1pYyBydWxlcyAoZS5nLiByZXF1aXJlZCB0b2dnbGVkIGJ5IGFub3RoZXJcbiAgICAvLyBmaWVsZCkgbXVzdCBiZSB2aXNpYmxlIHRvIHN1Ym1pdC10aW1lIHZhbGlkYXRpb24sIG5vdCBqdXN0IG9uQ2hhbmdlLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChuYW1lICYmIHJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICByZWdpc3RlckZpZWxkKG5hbWUsIHJ1bGVzKTtcbiAgICB9KTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYgKG5hbWUgJiYgdW5yZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgICAgIHVucmVnaXN0ZXJGaWVsZChuYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbbmFtZV0pO1xuICAgIGNvbnN0IGluamVjdEZpZWxkID0gKGNoaWxkKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFSZWFjdC5pc1ZhbGlkRWxlbWVudChjaGlsZCkpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGNvbnN0IGNoaWxkUHJvcHMgPSBjaGlsZC5wcm9wcztcbiAgICAgICAgY29uc3QgZGlzcGxheU5hbWUgPSAoX2EgPSBjaGlsZC50eXBlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzcGxheU5hbWU7XG4gICAgICAgIGNvbnN0IGlzRm9ybUNvbXBvbmVudCA9IEZPUk1fQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lKSB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnZhbHVlICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHNbdmFsdWVQcm9wTmFtZV0gIT09IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKCFpc0Zvcm1Db21wb25lbnQpXG4gICAgICAgICAgICByZXR1cm4gY2hpbGQ7XG4gICAgICAgIGxldCBzYWZlVmFsdWUgPSBmaWVsZFZhbHVlO1xuICAgICAgICBpZiAoc2FmZVZhbHVlID09PSBudWxsIHx8IHNhZmVWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBpZiAodmFsdWVQcm9wTmFtZSA9PT0gJ2NoZWNrZWQnIHx8IFsnQ2hlY2tib3gnLCAnU3dpdGNoJ10uaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSB8fFxuICAgICAgICAgICAgICAgIGNoaWxkUHJvcHMucGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHNhZmVWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnc3RyaW5nJyAmJlxuICAgICAgICAgICAgdHlwZW9mIHNhZmVWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHNhZmVWYWx1ZSA9ICcnO1xuICAgICAgICB9XG4gICAgICAgIGNoaWxkQ2FsbGJhY2tzUmVmLmN1cnJlbnQgPSB7XG4gICAgICAgICAgICBvbkNoYW5nZTogdHlwZW9mIGNoaWxkUHJvcHMub25DaGFuZ2UgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IGNoaWxkUHJvcHMub25DaGFuZ2VcbiAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIG9uQmx1cjogdHlwZW9mIGNoaWxkUHJvcHMub25CbHVyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyBjaGlsZFByb3BzLm9uQmx1clxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBpbmplY3RlZFByb3BzID0gT2JqZWN0LmFzc2lnbih7IFt2YWx1ZVByb3BOYW1lXTogc2FmZVZhbHVlLCBvbkNoYW5nZTogaW5qZWN0ZWRPbkNoYW5nZSwgb25CbHVyOiBpbmplY3RlZE9uQmx1ciB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpO1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCBpbmplY3RlZFByb3BzKTtcbiAgICB9O1xuICAgIHJldHVybiB7XG4gICAgICAgIGZpZWxkVmFsdWUsXG4gICAgICAgIGZpZWxkRXJyb3IsXG4gICAgICAgIGZpZWxkV2FybmluZyxcbiAgICAgICAgZmllbGRWYWxpZGF0aW5nLFxuICAgICAgICB2YWxpZGF0ZVN0YXR1czogZmluYWxTdGF0dXMsXG4gICAgICAgIGlzUmVxdWlyZWQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGxhYmVsQWxpZ24sXG4gICAgICAgIHJlcXVpcmVkTWFyayxcbiAgICAgICAgaW5qZWN0RmllbGQsXG4gICAgfTtcbn0iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -22,8 +22,11 @@ function renderDateReadonly(value) {
22
22
  }
23
23
  var ProFormDatePicker = exports.ProFormDatePicker = (0, _createProFormField.createProFormField)({
24
24
  component: _Calendar.Calendar,
25
+ // Registers into the form's valueType registry so dateFormatter formats this
26
+ // field as a date; pass valueType="dateTime" per field for time-of-day output.
27
+ valueType: 'date',
25
28
  renderReadonly: renderDateReadonly
26
29
  });
27
30
  ProFormDatePicker.displayName = 'ProFormDatePicker';
28
31
  var _default = exports["default"] = ProFormDatePicker;
29
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtRGF0ZVBpY2tlci50c3giLCJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1EYXRlUGlja2VyLmpzIl0sIm5hbWVzIjpbIl9DYWxlbmRhciIsInJlcXVpcmUiLCJfY3JlYXRlUHJvRm9ybUZpZWxkIiwicmVuZGVyRGF0ZVJlYWRvbmx5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwidiIsIm1hcCIsImQiLCJqb2luIiwiU3RyaW5nIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJleHBvcnRzIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiY29tcG9uZW50IiwiQ2FsZW5kYXIiLCJyZW5kZXJSZWFkb25seSIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFELE9BQUE7QUFFQSxTQUFTRSxrQkFBa0JBLENBQUNDLEtBQWMsRUFBQTtFQUN4QyxJQUFJQSxLQUFLLEtBQUssSUFBSSxJQUFJQSxLQUFLLEtBQUtDLFNBQVMsRUFBRSxPQUFPLEdBQUc7RUFFckQsSUFBSUQsS0FBSyxZQUFZRSxJQUFJLEVBQUU7SUFDekIsT0FBT0YsS0FBSyxDQUFDRyxrQkFBa0IsQ0FBQSxDQUFFO0VBQ25DO0VBRUEsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNMLEtBQUssQ0FBQyxFQUFFO0lBQ3hCLE9BQU9BLEtBQUssQ0FDVE0sTUFBTSxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFnQkEsQ0FBQyxZQUFZTCxJQUFJO0lBQUEsRUFBQyxDQUMzQ00sR0FBRyxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFLQSxDQUFDLENBQUNOLGtCQUFrQixDQUFBLENBQUU7SUFBQSxFQUFDLENBQ2xDTyxJQUFJLENBQUMsS0FBSyxDQUFDO0VBQ2hCO0VBRUEsT0FBT0MsTUFBTSxDQUFDWCxLQUFLLENBQUM7QUFDdEI7QUFFTyxJQUFNWSxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLElBQUFFLHNDQUFrQixFQUFnQjtFQUNqRUMsU0FBUyxFQUFFQyxrQkFBUTtFQUNuQkMsY0FBYyxFQUFFbEI7QUNKbEIsQ0RLQyxDQUFDO0FBRUZhLGlCQUFpQixDQUFDTSxXQUFXLEdBQUcsbUJBQW1CO0FBQUMsSUFBQUMsUUFBQSxHQUFBTixPQUFBLGNBRXJDRCxpQkFBaUIiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtRGF0ZVBpY2tlci5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgQ2FsZW5kYXIgfSBmcm9tICcuLi8uLi9DYWxlbmRhcic7XG5pbXBvcnQgeyBjcmVhdGVQcm9Gb3JtRmllbGQgfSBmcm9tICcuL2NyZWF0ZVByb0Zvcm1GaWVsZCc7XG5mdW5jdGlvbiByZW5kZXJEYXRlUmVhZG9ubHkodmFsdWUpIHtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuICctJztcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZS50b0xvY2FsZURhdGVTdHJpbmcoKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgIHJldHVybiB2YWx1ZVxuICAgICAgICAgICAgLmZpbHRlcigodikgPT4gdiBpbnN0YW5jZW9mIERhdGUpXG4gICAgICAgICAgICAubWFwKChkKSA9PiBkLnRvTG9jYWxlRGF0ZVN0cmluZygpKVxuICAgICAgICAgICAgLmpvaW4oJyB+ICcpO1xuICAgIH1cbiAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cbmV4cG9ydCBjb25zdCBQcm9Gb3JtRGF0ZVBpY2tlciA9IGNyZWF0ZVByb0Zvcm1GaWVsZCh7XG4gICAgY29tcG9uZW50OiBDYWxlbmRhcixcbiAgICByZW5kZXJSZWFkb25seTogcmVuZGVyRGF0ZVJlYWRvbmx5LFxufSk7XG5Qcm9Gb3JtRGF0ZVBpY2tlci5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtRGF0ZVBpY2tlcic7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtRGF0ZVBpY2tlcjsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
32
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtRGF0ZVBpY2tlci50c3giLCJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1EYXRlUGlja2VyLmpzIl0sIm5hbWVzIjpbIl9DYWxlbmRhciIsInJlcXVpcmUiLCJfY3JlYXRlUHJvRm9ybUZpZWxkIiwicmVuZGVyRGF0ZVJlYWRvbmx5IiwidmFsdWUiLCJ1bmRlZmluZWQiLCJEYXRlIiwidG9Mb2NhbGVEYXRlU3RyaW5nIiwiQXJyYXkiLCJpc0FycmF5IiwiZmlsdGVyIiwidiIsIm1hcCIsImQiLCJqb2luIiwiU3RyaW5nIiwiUHJvRm9ybURhdGVQaWNrZXIiLCJleHBvcnRzIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiY29tcG9uZW50IiwiQ2FsZW5kYXIiLCJ2YWx1ZVR5cGUiLCJyZW5kZXJSZWFkb25seSIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFNBQUEsR0FBQUMsT0FBQTtBQUVBLElBQUFDLG1CQUFBLEdBQUFELE9BQUE7QUFFQSxTQUFTRSxrQkFBa0JBLENBQUNDLEtBQWMsRUFBQTtFQUN4QyxJQUFJQSxLQUFLLEtBQUssSUFBSSxJQUFJQSxLQUFLLEtBQUtDLFNBQVMsRUFBRSxPQUFPLEdBQUc7RUFFckQsSUFBSUQsS0FBSyxZQUFZRSxJQUFJLEVBQUU7SUFDekIsT0FBT0YsS0FBSyxDQUFDRyxrQkFBa0IsQ0FBQSxDQUFFO0VBQ25DO0VBRUEsSUFBSUMsS0FBSyxDQUFDQyxPQUFPLENBQUNMLEtBQUssQ0FBQyxFQUFFO0lBQ3hCLE9BQU9BLEtBQUssQ0FDVE0sTUFBTSxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFnQkEsQ0FBQyxZQUFZTCxJQUFJO0lBQUEsRUFBQyxDQUMzQ00sR0FBRyxDQUFDLFVBQUNDLENBQUM7TUFBQSxPQUFLQSxDQUFDLENBQUNOLGtCQUFrQixDQUFBLENBQUU7SUFBQSxFQUFDLENBQ2xDTyxJQUFJLENBQUMsS0FBSyxDQUFDO0VBQ2hCO0VBRUEsT0FBT0MsTUFBTSxDQUFDWCxLQUFLLENBQUM7QUFDdEI7QUFFTyxJQUFNWSxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLElBQUFFLHNDQUFrQixFQUFnQjtFQUNqRUMsU0FBUyxFQUFFQyxrQkFBUTtFQUNuQjtFQUNBO0VBQ0FDLFNBQVMsRUFBRSxNQUFNO0VBQ2pCQyxjQUFjLEVBQUVuQjtBQ0psQixDREtDLENBQUM7QUFFRmEsaUJBQWlCLENBQUNPLFdBQVcsR0FBRyxtQkFBbUI7QUFBQyxJQUFBQyxRQUFBLEdBQUFQLE9BQUEsY0FFckNELGlCQUFpQiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1EYXRlUGlja2VyLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyBDYWxlbmRhciB9IGZyb20gJy4uLy4uL0NhbGVuZGFyJztcbmltcG9ydCB7IGNyZWF0ZVByb0Zvcm1GaWVsZCB9IGZyb20gJy4vY3JlYXRlUHJvRm9ybUZpZWxkJztcbmZ1bmN0aW9uIHJlbmRlckRhdGVSZWFkb25seSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnRvTG9jYWxlRGF0ZVN0cmluZygpO1xuICAgIH1cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAuZmlsdGVyKCh2KSA9PiB2IGluc3RhbmNlb2YgRGF0ZSlcbiAgICAgICAgICAgIC5tYXAoKGQpID0+IGQudG9Mb2NhbGVEYXRlU3RyaW5nKCkpXG4gICAgICAgICAgICAuam9pbignIH4gJyk7XG4gICAgfVxuICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xufVxuZXhwb3J0IGNvbnN0IFByb0Zvcm1EYXRlUGlja2VyID0gY3JlYXRlUHJvRm9ybUZpZWxkKHtcbiAgICBjb21wb25lbnQ6IENhbGVuZGFyLFxuICAgIC8vIFJlZ2lzdGVycyBpbnRvIHRoZSBmb3JtJ3MgdmFsdWVUeXBlIHJlZ2lzdHJ5IHNvIGRhdGVGb3JtYXR0ZXIgZm9ybWF0cyB0aGlzXG4gICAgLy8gZmllbGQgYXMgYSBkYXRlOyBwYXNzIHZhbHVlVHlwZT1cImRhdGVUaW1lXCIgcGVyIGZpZWxkIGZvciB0aW1lLW9mLWRheSBvdXRwdXQuXG4gICAgdmFsdWVUeXBlOiAnZGF0ZScsXG4gICAgcmVuZGVyUmVhZG9ubHk6IHJlbmRlckRhdGVSZWFkb25seSxcbn0pO1xuUHJvRm9ybURhdGVQaWNrZXIuZGlzcGxheU5hbWUgPSAnUHJvRm9ybURhdGVQaWNrZXInO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybURhdGVQaWNrZXI7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -12,6 +12,7 @@ var _react = require("react");
12
12
  var _useDebouncedCallback2 = _interopRequireDefault(require("@1money/hooks/useDebouncedCallback"));
13
13
  var _ProFormItem = require("../ProFormItem");
14
14
  var _ProFormDependency = require("../ProFormDependency");
15
+ var _context = require("../context");
15
16
  var _useFieldRequest3 = require("../hooks/useFieldRequest");
16
17
  var _utils = require("../utils");
17
18
  var __rest = void 0 && (void 0).__rest || function (s, e) {
@@ -27,40 +28,55 @@ var __rest = void 0 && (void 0).__rest || function (s, e) {
27
28
  // ---------------------------------------------------------------------------
28
29
  function createProFormField(config) {
29
30
  var Component = config.component,
31
+ valuePropName = config.valuePropName,
32
+ defaultValueType = config.valueType,
30
33
  mapProps = config.mapProps,
31
34
  renderReadonly = config.renderReadonly;
35
+ // Memo boundary around the wrapped control: combined with the stable
36
+ // injected handlers from useFormItem, fields whose value didn't change can
37
+ // bail out while another field in the form is typing. displayName must be
38
+ // carried over — injectField uses it to recognize form controls.
39
+ var MemoizedComponent = /*#__PURE__*/(0, _react.memo)(Component);
40
+ MemoizedComponent.displayName = Component.displayName || Component.name;
32
41
  // Inner component — handles mode, request, valueEnum, debounce, render
33
42
  var InnerField = function InnerField(props) {
34
- var _a;
35
- var _b = props,
36
- name = _b.name,
37
- label = _b.label,
38
- description = _b.description,
39
- rules = _b.rules,
40
- required = _b.required,
41
- feedback = _b.feedback,
42
- validateStatus = _b.validateStatus,
43
- colon = _b.colon,
44
- readonly = _b.readonly,
45
- modeProp = _b.mode,
46
- hidden = _b.hidden,
47
- colProps = _b.colProps,
48
- fieldProps = _b.fieldProps,
49
- placeholder = _b.placeholder,
50
- disabled = _b.disabled,
51
- width = _b.width,
52
- transform = _b.transform,
53
- convertValue = _b.convertValue,
54
- _deps = _b.dependencies,
55
- request = _b.request,
56
- params = _b.params,
57
- valueEnum = _b.valueEnum,
58
- debounceTime = _b.debounceTime,
59
- dependenciesValues = _b.dependenciesValues,
60
- rest = __rest(_b, ["name", "label", "description", "rules", "required", "feedback", "validateStatus", "colon", "readonly", "mode", "hidden", "colProps", "fieldProps", "placeholder", "disabled", "width", "transform", "convertValue", "dependencies", "request", "params", "valueEnum", "debounceTime", "dependenciesValues"]);
43
+ var _a, _b;
44
+ var _c = props,
45
+ name = _c.name,
46
+ label = _c.label,
47
+ description = _c.description,
48
+ rules = _c.rules,
49
+ required = _c.required,
50
+ feedback = _c.feedback,
51
+ validateStatus = _c.validateStatus,
52
+ colon = _c.colon,
53
+ readonly = _c.readonly,
54
+ modeProp = _c.mode,
55
+ hidden = _c.hidden,
56
+ colProps = _c.colProps,
57
+ fieldProps = _c.fieldProps,
58
+ placeholder = _c.placeholder,
59
+ disabled = _c.disabled,
60
+ width = _c.width,
61
+ transform = _c.transform,
62
+ convertValue = _c.convertValue,
63
+ _deps = _c.dependencies,
64
+ request = _c.request,
65
+ params = _c.params,
66
+ valueEnum = _c.valueEnum,
67
+ debounceTime = _c.debounceTime,
68
+ validateDebounce = _c.validateDebounce,
69
+ valueType = _c.valueType,
70
+ dependenciesValues = _c.dependenciesValues,
71
+ rest = __rest(_c, ["name", "label", "description", "rules", "required", "feedback", "validateStatus", "colon", "readonly", "mode", "hidden", "colProps", "fieldProps", "placeholder", "disabled", "width", "transform", "convertValue", "dependencies", "request", "params", "valueEnum", "debounceTime", "validateDebounce", "valueType", "dependenciesValues"]);
61
72
 
62
73
  // Mode resolution: explicit mode > legacy readonly > ctx.mode (ProFormItem)
63
74
  var resolvedMode = modeProp !== null && modeProp !== void 0 ? modeProp : readonly !== undefined ? readonly ? 'read' : 'edit' : undefined;
75
+ // Form-level fieldProps (lowest priority after mapProps defaults).
76
+ // Stable slice only — the field shell must NOT re-render per keystroke;
77
+ // value/error reactivity lives inside ProFormItem.
78
+ var _useProFormStable = (0, _context.useProFormStable)(),
79
+ contextFieldProps = _useProFormStable.fieldProps;
64
80
  // ── Field-level request ──
65
81
  var mergedRequestParams = dependenciesValues ? Object.assign(Object.assign({}, params), dependenciesValues) : params;
66
82
  var _useFieldRequest = (0, _useFieldRequest3.useFieldRequest)(request, mergedRequestParams),
@@ -74,7 +90,7 @@ function createProFormField(config) {
74
90
  // over mapped, matching the spread order below). useDebouncedCallback reads
75
91
  // the latest callback internally, so the wrapper never goes stale and the
76
92
  // pending call is auto-cancelled on unmount.
77
- var userOnChange = (_a = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.onChange) !== null && _a !== void 0 ? _a : mapped === null || mapped === void 0 ? void 0 : mapped.onChange;
93
+ var userOnChange = (_b = (_a = fieldProps === null || fieldProps === void 0 ? void 0 : fieldProps.onChange) !== null && _a !== void 0 ? _a : contextFieldProps === null || contextFieldProps === void 0 ? void 0 : contextFieldProps.onChange) !== null && _b !== void 0 ? _b : mapped === null || mapped === void 0 ? void 0 : mapped.onChange;
78
94
  var _useDebouncedCallback = (0, _useDebouncedCallback2["default"])(function () {
79
95
  return userOnChange === null || userOnChange === void 0 ? void 0 : userOnChange.apply(void 0, arguments);
80
96
  }, debounceTime),
@@ -92,7 +108,7 @@ function createProFormField(config) {
92
108
  if (requestOptions.length > 0) {
93
109
  mergedOptions = requestOptions;
94
110
  }
95
- var componentProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mapped), fieldProps || {}), mergedOptions !== undefined ? {
111
+ var componentProps = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, mapped), contextFieldProps || {}), fieldProps || {}), mergedOptions !== undefined ? {
96
112
  options: mergedOptions
97
113
  } : {}), requestLoading ? {
98
114
  loading: true
@@ -122,10 +138,13 @@ function createProFormField(config) {
122
138
  colProps: colProps,
123
139
  transform: transform,
124
140
  convertValue: convertValue,
141
+ valuePropName: valuePropName,
142
+ validateDebounce: validateDebounce,
143
+ valueType: valueType !== null && valueType !== void 0 ? valueType : defaultValueType,
125
144
  readonlyRender: renderReadonly ? function (value) {
126
145
  return renderReadonly(value);
127
146
  } : undefined,
128
- children: (0, _jsxRuntime.jsx)(Component, Object.assign({}, componentProps))
147
+ children: (0, _jsxRuntime.jsx)(MemoizedComponent, Object.assign({}, componentProps))
129
148
  });
130
149
  };
131
150
  // Outer component — handles auto-wrapping with ProFormDependency
@@ -147,4 +166,4 @@ function createProFormField(config) {
147
166
  return MemoizedField;
148
167
  }
149
168
  var _default = exports["default"] = createProFormField;
150
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3VzZURlYm91bmNlZENhbGxiYWNrMiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfUHJvRm9ybUl0ZW0iLCJfUHJvRm9ybURlcGVuZGVuY3kiLCJfdXNlRmllbGRSZXF1ZXN0MyIsIl91dGlscyIsIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiY29uZmlnIiwiQ29tcG9uZW50IiwiY29tcG9uZW50IiwibWFwUHJvcHMiLCJyZW5kZXJSZWFkb25seSIsIklubmVyRmllbGQiLCJwcm9wcyIsIl9hIiwiX2IiLCJuYW1lIiwibGFiZWwiLCJkZXNjcmlwdGlvbiIsInJ1bGVzIiwicmVxdWlyZWQiLCJmZWVkYmFjayIsInZhbGlkYXRlU3RhdHVzIiwiY29sb24iLCJyZWFkb25seSIsIm1vZGVQcm9wIiwibW9kZSIsImhpZGRlbiIsImNvbFByb3BzIiwiZmllbGRQcm9wcyIsInBsYWNlaG9sZGVyIiwiZGlzYWJsZWQiLCJ3aWR0aCIsInRyYW5zZm9ybSIsImNvbnZlcnRWYWx1ZSIsIl9kZXBzIiwiZGVwZW5kZW5jaWVzIiwicmVxdWVzdCIsInBhcmFtcyIsInZhbHVlRW51bSIsImRlYm91bmNlVGltZSIsImRlcGVuZGVuY2llc1ZhbHVlcyIsInJlc3QiLCJyZXNvbHZlZE1vZGUiLCJ1bmRlZmluZWQiLCJtZXJnZWRSZXF1ZXN0UGFyYW1zIiwiYXNzaWduIiwiX3VzZUZpZWxkUmVxdWVzdCIsInVzZUZpZWxkUmVxdWVzdCIsIl91c2VGaWVsZFJlcXVlc3QyIiwiX3NsaWNlZFRvQXJyYXkyIiwicmVxdWVzdExvYWRpbmciLCJyZXF1ZXN0T3B0aW9ucyIsIm1hcHBlZCIsInVzZXJPbkNoYW5nZSIsIm9uQ2hhbmdlIiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJhcHBseSIsImFyZ3VtZW50cyIsImRlYm91bmNlZE9uQ2hhbmdlIiwicnVuIiwid2lkdGhTdHlsZSIsInJlc29sdmVXaWR0aCIsImZpZWxkU3R5bGUiLCJzdHlsZSIsIm1lcmdlZFN0eWxlIiwibWVyZ2VkT3B0aW9ucyIsIm9wdGlvbnMiLCJ2YWx1ZUVudW1Ub09wdGlvbnMiLCJjb21wb25lbnRQcm9wcyIsImxvYWRpbmciLCJfanN4IiwiUHJvRm9ybUl0ZW0iLCJyZWFkb25seVJlbmRlciIsInZhbHVlIiwiY2hpbGRyZW4iLCJQcm9Gb3JtRmllbGRDb21wb25lbnQiLCJQcm9Gb3JtRGVwZW5kZW5jeSIsImRlcFZhbHVlcyIsIk1lbW9pemVkRmllbGQiLCJtZW1vIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFFQSxJQUFBRSxzQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssa0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGlCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUROQSxJQUFJUSxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJ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QUEsQ0FBSTtRQUFBO01BQ3pELENBQUEsQ0FDaUI7SUFFeEI7SUFFQSxPQUFPLElBQUFQLGVBQUEsRUFBQzVELFVBQVUsRUFBQWYsTUFBQSxDQUFBaUQsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLakMsS0FBSyxDQUFBLENBQUk7RUFDbEMsQ0FBQztFQUVELElBQU1tRSxhQUFhLGdCQUFHLElBQUFDLFdBQUksRUFBQ0oscUJBQXFCLENBQUM7RUFDakQsT0FBT0csYUFBYTtBQUN0QjtBQUFDLElBQUFFLFFBQUEsR0FBQUMsT0FBQSxjQUVjN0Usa0JBQWtCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRGVib3VuY2VkQ2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VEZWJvdW5jZWRDYWxsYmFjayc7XG5pbXBvcnQgeyBQcm9Gb3JtSXRlbSB9IGZyb20gJy4uL1Byb0Zvcm1JdGVtJztcbmltcG9ydCB7IFByb0Zvcm1EZXBlbmRlbmN5IH0gZnJvbSAnLi4vUHJvRm9ybURlcGVuZGVuY3knO1xuaW1wb3J0IHsgdXNlRmllbGRSZXF1ZXN0IH0gZnJvbSAnLi4vaG9va3MvdXNlRmllbGRSZXF1ZXN0JztcbmltcG9ydCB7IHJlc29sdmVXaWR0aCwgdmFsdWVFbnVtVG9PcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMnO1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyBjcmVhdGVQcm9Gb3JtRmllbGQg4oCUIGZhY3RvcnkgdGhhdCBwcm9kdWNlcyBhIFByb0Zvcm0tYXdhcmUgZmllbGQgY29tcG9uZW50XG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQcm9Gb3JtRmllbGQoY29uZmlnKSB7XG4gICAgY29uc3QgeyBjb21wb25lbnQ6IENvbXBvbmVudCwgbWFwUHJvcHMsIHJlbmRlclJlYWRvbmx5LCB9ID0gY29uZmlnO1xuICAgIC8vIElubmVyIGNvbXBvbmVudCDigJQgaGFuZGxlcyBtb2RlLCByZXF1ZXN0LCB2YWx1ZUVudW0sIGRlYm91bmNlLCByZW5kZXJcbiAgICBjb25zdCBJbm5lckZpZWxkID0gKHByb3BzKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgX2IgPSBwcm9wcywgeyBuYW1lLCBsYWJlbCwgZGVzY3JpcHRpb24sIHJ1bGVzLCByZXF1aXJlZCwgZmVlZGJhY2ssIHZhbGlkYXRlU3RhdHVzLCBjb2xvbiwgcmVhZG9ubHksIG1vZGU6IG1vZGVQcm9wLCBoaWRkZW4sIGNvbFByb3BzLCBmaWVsZFByb3BzLCBwbGFjZWhvbGRlciwgZGlzYWJsZWQsIHdpZHRoLCB0cmFuc2Zvcm0sIGNvbnZlcnRWYWx1ZSwgXG4gICAgICAgIC8vIEZpZWxkLWxldmVsIGZlYXR1cmVzXG4gICAgICAgIGRlcGVuZGVuY2llczogX2RlcHMsIHJlcXVlc3QsIHBhcmFtcywgdmFsdWVFbnVtLCBkZWJvdW5jZVRpbWUsIGRlcGVuZGVuY2llc1ZhbHVlcyB9ID0gX2IsIHJlc3QgPSBfX3Jlc3QoX2IsIFtcIm5hbWVcIiwgXCJsYWJlbFwiLCBcImRlc2NyaXB0aW9uXCIsIFwicnVsZXNcIiwgXCJyZXF1aXJlZFwiLCBcImZlZWRiYWNrXCIsIFwidmFsaWRhdGVTdGF0dXNcIiwgXCJjb2xvblwiLCBcInJlYWRvbmx5XCIsIFwibW9kZVwiLCBcImhpZGRlblwiLCBcImNvbFByb3BzXCIsIFwiZmllbGRQcm9wc1wiLCBcInBsYWNlaG9sZGVyXCIsIFwiZGlzYWJsZWRcIiwgXCJ3aWR0aFwiLCBcInRyYW5zZm9ybVwiLCBcImNvbnZlcnRWYWx1ZVwiLCBcImRlcGVuZGVuY2llc1wiLCBcInJlcXVlc3RcIiwgXCJwYXJhbXNcIiwgXCJ2YWx1ZUVudW1cIiwgXCJkZWJvdW5jZVRpbWVcIiwgXCJkZXBlbmRlbmNpZXNWYWx1ZXNcIl0pO1xuICAgICAgICAvLyBNb2RlIHJlc29sdXRpb246IGV4cGxpY2l0IG1vZGUgPiBsZWdhY3kgcmVhZG9ubHkgPiBjdHgubW9kZSAoUHJvRm9ybUl0ZW0pXG4gICAgICAgIGNvbnN0IHJlc29sdmVkTW9kZSA9IG1vZGVQcm9wICE9PSBudWxsICYmIG1vZGVQcm9wICE9PSB2b2lkIDAgPyBtb2RlUHJvcCA6IChyZWFkb25seSAhPT0gdW5kZWZpbmVkID8gKHJlYWRvbmx5ID8gJ3JlYWQnIDogJ2VkaXQnKSA6IHVuZGVmaW5lZCk7XG4gICAgICAgIC8vIOKUgOKUgCBGaWVsZC1sZXZlbCByZXF1ZXN0IOKUgOKUgFxuICAgICAgICBjb25zdCBtZXJnZWRSZXF1ZXN0UGFyYW1zID0gZGVwZW5kZW5jaWVzVmFsdWVzXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyYW1zKSwgZGVwZW5kZW5jaWVzVmFsdWVzKSA6IHBhcmFtcztcbiAgICAgICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCByZXF1ZXN0T3B0aW9uc10gPSB1c2VGaWVsZFJlcXVlc3QocmVxdWVzdCwgbWVyZ2VkUmVxdWVzdFBhcmFtcyk7XG4gICAgICAgIC8vIEJ1aWxkIHRoZSBmaWVsZCBjaGlsZFxuICAgICAgICBjb25zdCBtYXBwZWQgPSBtYXBQcm9wcyA/IG1hcFByb3BzKHJlc3QpIDoge307XG4gICAgICAgIC8vIOKUgOKUgCBEZWJvdW5jZSBvbkNoYW5nZSDilIDilIBcbiAgICAgICAgLy8gVGhlIGVmZmVjdGl2ZSBvbkNoYW5nZSBpcyB3aGF0ZXZlciBlbmRzIHVwIG9uIHRoZSBmaWVsZCAoZmllbGRQcm9wcyB3aW5zXG4gICAgICAgIC8vIG92ZXIgbWFwcGVkLCBtYXRjaGluZyB0aGUgc3ByZWFkIG9yZGVyIGJlbG93KS4gdXNlRGVib3VuY2VkQ2FsbGJhY2sgcmVhZHNcbiAgICAgICAgLy8gdGhlIGxhdGVzdCBjYWxsYmFjayBpbnRlcm5hbGx5LCBzbyB0aGUgd3JhcHBlciBuZXZlciBnb2VzIHN0YWxlIGFuZCB0aGVcbiAgICAgICAgLy8gcGVuZGluZyBjYWxsIGlzIGF1dG8tY2FuY2VsbGVkIG9uIHVubW91bnQuXG4gICAgICAgIGNvbnN0IHVzZXJPbkNoYW5nZSA9ICgoX2EgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub25DaGFuZ2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG1hcHBlZCA9PT0gbnVsbCB8fCBtYXBwZWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG1hcHBlZC5vbkNoYW5nZSk7XG4gICAgICAgIGNvbnN0IHsgcnVuOiBkZWJvdW5jZWRPbkNoYW5nZSB9ID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soKC4uLmFyZ3MpID0+IHVzZXJPbkNoYW5nZSA9PT0gbnVsbCB8fCB1c2VyT25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHVzZXJPbkNoYW5nZSguLi5hcmdzKSwgZGVib3VuY2VUaW1lKTtcbiAgICAgICAgY29uc3Qgd2lkdGhTdHlsZSA9IHdpZHRoICE9PSB1bmRlZmluZWQgPyB7IHdpZHRoOiByZXNvbHZlV2lkdGgod2lkdGgpIH0gOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IGZpZWxkU3R5bGUgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMuc3R5bGU7XG4gICAgICAgIGNvbnN0IG1lcmdlZFN0eWxlID0gd2lkdGhTdHlsZVxuICAgICAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIChmaWVsZFN0eWxlIHx8IHt9KSksIHdpZHRoU3R5bGUpIDogZmllbGRTdHlsZTtcbiAgICAgICAgLy8gTWVyZ2UgdmFsdWVFbnVtICsgcmVxdWVzdCBvcHRpb25zIGludG8gZmllbGRQcm9wcy5vcHRpb25zXG4gICAgICAgIGxldCBtZXJnZWRPcHRpb25zID0gZmllbGRQcm9wcyA9PT0gbnVsbCB8fCBmaWVsZFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBmaWVsZFByb3BzLm9wdGlvbnM7XG4gICAgICAgIGlmICh2YWx1ZUVudW0pIHtcbiAgICAgICAgICAgIG1lcmdlZE9wdGlvbnMgPSB2YWx1ZUVudW1Ub09wdGlvbnModmFsdWVFbnVtKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxdWVzdE9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbWVyZ2VkT3B0aW9ucyA9IHJlcXVlc3RPcHRpb25zO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFByb3BzID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgbWFwcGVkKSwgKGZpZWxkUHJvcHMgfHwge30pKSwgKG1lcmdlZE9wdGlvbnMgIT09IHVuZGVmaW5lZCA/IHsgb3B0aW9uczogbWVyZ2VkT3B0aW9ucyB9IDoge30pKSwgKHJlcXVlc3RMb2FkaW5nID8geyBsb2FkaW5nOiB0cnVlIH0gOiB7fSkpLCAocGxhY2Vob2xkZXIgIT09IHVuZGVmaW5lZCA/IHsgcGxhY2Vob2xkZXIgfSA6IHt9KSksIChkaXNhYmxlZCAhPT0gdW5kZWZpbmVkID8geyBkaXNhYmxlZCB9IDoge30pKSwgKG1lcmdlZFN0eWxlID8geyBzdHlsZTogbWVyZ2VkU3R5bGUgfSA6IHt9KSk7XG4gICAgICAgIC8vIFdpcmUgZGVib3VuY2UuIFRoZSB3cmFwcGVyIGZvcndhcmRzIHRvIHRoZSBsYXRlc3QgdXNlciBvbkNoYW5nZSB2aWFcbiAgICAgICAgLy8gYG9uQ2hhbmdlTGF0ZXN0YCwgc28gbm8gbmVlZCB0byBzdGFzaCBpdCBvbiBhIHJlZiBoZXJlLlxuICAgICAgICBpZiAoZGVib3VuY2VUaW1lICYmIGRlYm91bmNlVGltZSA+IDApIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFByb3BzLm9uQ2hhbmdlID0gZGVib3VuY2VkT25DaGFuZ2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChfanN4KFByb0Zvcm1JdGVtLCB7IG5hbWU6IG5hbWUsIGxhYmVsOiBsYWJlbCwgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBydWxlczogcnVsZXMsIHJlcXVpcmVkOiByZXF1aXJlZCwgZmVlZGJhY2s6IGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1czogdmFsaWRhdGVTdGF0dXMsIGNvbG9uOiBjb2xvbiwgaGlkZGVuOiBoaWRkZW4sIG1vZGU6IHJlc29sdmVkTW9kZSwgY29sUHJvcHM6IGNvbFByb3BzLCB0cmFuc2Zvcm06IHRyYW5zZm9ybSwgY29udmVydFZhbHVlOiBjb252ZXJ0VmFsdWUsIHJlYWRvbmx5UmVuZGVyOiByZW5kZXJSZWFkb25seSA/ICh2YWx1ZSkgPT4gcmVuZGVyUmVhZG9ubHkodmFsdWUpIDogdW5kZWZpbmVkLCBjaGlsZHJlbjogX2pzeChDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIGNvbXBvbmVudFByb3BzKSkgfSkpO1xuICAgIH07XG4gICAgLy8gT3V0ZXIgY29tcG9uZW50IOKAlCBoYW5kbGVzIGF1dG8td3JhcHBpbmcgd2l0aCBQcm9Gb3JtRGVwZW5kZW5jeVxuICAgIGNvbnN0IFByb0Zvcm1GaWVsZENvbXBvbmVudCA9IChwcm9wcykgPT4ge1xuICAgICAgICBjb25zdCB7IGRlcGVuZGVuY2llcyB9ID0gcHJvcHM7XG4gICAgICAgIGlmIChkZXBlbmRlbmNpZXMgJiYgZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeChQcm9Gb3JtRGVwZW5kZW5jeSwgeyBuYW1lOiBkZXBlbmRlbmNpZXMsIGNoaWxkcmVuOiAoZGVwVmFsdWVzKSA9PiAoX2pzeChJbm5lckZpZWxkLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywgeyBkZXBlbmRlbmNpZXNWYWx1ZXM6IGRlcFZhbHVlcyB9KSkpIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX2pzeChJbm5lckZpZWxkLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcykpO1xuICAgIH07XG4gICAgY29uc3QgTWVtb2l6ZWRGaWVsZCA9IG1lbW8oUHJvRm9ybUZpZWxkQ29tcG9uZW50KTtcbiAgICByZXR1cm4gTWVtb2l6ZWRGaWVsZDtcbn1cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVByb0Zvcm1GaWVsZDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
169
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvY3JlYXRlUHJvRm9ybUZpZWxkLmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3VzZURlYm91bmNlZENhbGxiYWNrMiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfUHJvRm9ybUl0ZW0iLCJfUHJvRm9ybURlcGVuZGVuY3kiLCJfY29udGV4dCIsIl91c2VGaWVsZFJlcXVlc3QzIiwiX3V0aWxzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJjcmVhdGVQcm9Gb3JtRmllbGQiLCJjb25maWciLCJDb21wb25lbnQiLCJjb21wb25lbnQiLCJ2YWx1ZVByb3BOYW1lIiwiZGVmYXVsdFZhbHVlVHlwZSIsInZhbHVlVHlwZSIsIm1hcFByb3BzIiwicmVuZGVyUmVhZG9ubHkiLCJNZW1vaXplZENvbXBvbmVudCIsIm1lbW8iLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJJbm5lckZpZWxkIiwicHJvcHMiLCJfYSIsIl9iIiwiX2MiLCJsYWJlbCIsImRlc2NyaXB0aW9uIiwicnVsZXMiLCJyZXF1aXJlZCIsImZlZWRiYWNrIiwidmFsaWRhdGVTdGF0dXMiLCJjb2xvbiIsInJlYWRvbmx5IiwibW9kZVByb3AiLCJtb2RlIiwiaGlkZGVuIiwiY29sUHJvcHMiLCJmaWVsZFByb3BzIiwicGxhY2Vob2xkZXIiLCJkaXNhYmxlZCIsIndpZHRoIiwidHJhbnNmb3JtIiwiY29udmVydFZhbHVlIiwiX2RlcHMiLCJkZXBlbmRlbmNpZXMiLCJyZXF1ZXN0IiwicGFyYW1zIiwidmFsdWVFbnVtIiwiZGVib3VuY2VUaW1lIiwidmFsaWRhdGVEZWJvdW5jZSIsImRlcGVuZGVuY2llc1ZhbHVlcyIsInJlc3QiLCJyZXNvbHZlZE1vZGUiLCJ1bmRlZmluZWQiLCJfdXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdGFibGUiLCJjb250ZXh0RmllbGRQcm9wcyIsIm1lcmdlZFJlcXVlc3RQYXJhbXMiLCJhc3NpZ24iLCJfdXNlRmllbGRSZXF1ZXN0IiwidXNlRmllbGRSZXF1ZXN0IiwiX3VzZUZpZWxkUmVxdWVzdDIiLCJfc2xpY2VkVG9BcnJheTIiLCJyZXF1ZXN0TG9hZGluZyIsInJlcXVlc3RPcHRpb25zIiwibWFwcGVkIiwidXNlck9uQ2hhbmdlIiwib25DaGFuZ2UiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2siLCJ1c2VEZWJvdW5jZWRDYWxsYmFjayIsImFwcGx5IiwiYXJndW1lbnRzIiwiZGVib3VuY2VkT25DaGFuZ2UiLCJydW4iLCJ3aWR0aFN0eWxlIiwicmVzb2x2ZVdpZHRoIiwiZmllbGRTdHlsZSIsInN0eWxlIiwibWVyZ2VkU3R5bGUiLCJtZXJnZWRPcHRpb25zIiwib3B0aW9ucyIsInZhbHVlRW51bVRvT3B0aW9ucyIsImNvbXBvbmVudFByb3BzIiwibG9hZGluZyIsIl9qc3giLCJQcm9Gb3JtSXRlbSIsInJlYWRvbmx5UmVuZGVyIiwidmFsdWUiLCJjaGlsZHJlbiIsIlByb0Zvcm1GaWVsZENvbXBvbmVudCIsIlByb0Zvcm1EZXBlbmRlbmN5IiwiZGVwVmFsdWVzIiwiTWVtb2l6ZWRGaWVsZCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBRUEsSUFBQUUsc0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGtCQUFBLEdBQUFMLE9BQUE7QUFD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QUFBdEIsTUFBQSxDQUFBNEQsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLckMsS0FBSyxFQUFBO1lBQUU2QixrQkFBa0IsRUFBRXlDO1VBQVMsQ0FBQSxDQUFBLENBQUk7UUFBQTtNQUN6RCxDQUFBLENBQ2lCO0lBRXhCO0lBRUEsT0FBTyxJQUFBUCxlQUFBLEVBQUNoRSxVQUFVLEVBQUF0QixNQUFBLENBQUE0RCxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQUtyQyxLQUFLLENBQUEsQ0FBSTtFQUNsQyxDQUFDO0VBRUQsSUFBTXVFLGFBQWEsZ0JBQUcsSUFBQTNFLFdBQUksRUFBQ3dFLHFCQUFxQixDQUFDO0VBQ2pELE9BQU9HLGFBQWE7QUFDdEI7QUFBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsY0FFY3ZGLGtCQUFrQiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL2NyZWF0ZVByb0Zvcm1GaWVsZC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZURlYm91bmNlZENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRGVib3VuY2VkQ2FsbGJhY2snO1xuaW1wb3J0IHsgUHJvRm9ybUl0ZW0gfSBmcm9tICcuLi9Qcm9Gb3JtSXRlbSc7XG5pbXBvcnQgeyBQcm9Gb3JtRGVwZW5kZW5jeSB9IGZyb20gJy4uL1Byb0Zvcm1EZXBlbmRlbmN5JztcbmltcG9ydCB7IHVzZVByb0Zvcm1TdGFibGUgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZUZpZWxkUmVxdWVzdCB9IGZyb20gJy4uL2hvb2tzL3VzZUZpZWxkUmVxdWVzdCc7XG5pbXBvcnQgeyByZXNvbHZlV2lkdGgsIHZhbHVlRW51bVRvT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzJztcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gY3JlYXRlUHJvRm9ybUZpZWxkIOKAlCBmYWN0b3J5IHRoYXQgcHJvZHVjZXMgYSBQcm9Gb3JtLWF3YXJlIGZpZWxkIGNvbXBvbmVudFxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUHJvRm9ybUZpZWxkKGNvbmZpZykge1xuICAgIGNvbnN0IHsgY29tcG9uZW50OiBDb21wb25lbnQsIHZhbHVlUHJvcE5hbWUsIHZhbHVlVHlwZTogZGVmYXVsdFZhbHVlVHlwZSwgbWFwUHJvcHMsIHJlbmRlclJlYWRvbmx5LCB9ID0gY29uZmlnO1xuICAgIC8vIE1lbW8gYm91bmRhcnkgYXJvdW5kIHRoZSB3cmFwcGVkIGNvbnRyb2w6IGNvbWJpbmVkIHdpdGggdGhlIHN0YWJsZVxuICAgIC8vIGluamVjdGVkIGhhbmRsZXJzIGZyb20gdXNlRm9ybUl0ZW0sIGZpZWxkcyB3aG9zZSB2YWx1ZSBkaWRuJ3QgY2hhbmdlIGNhblxuICAgIC8vIGJhaWwgb3V0IHdoaWxlIGFub3RoZXIgZmllbGQgaW4gdGhlIGZvcm0gaXMgdHlwaW5nLiBkaXNwbGF5TmFtZSBtdXN0IGJlXG4gICAgLy8gY2FycmllZCBvdmVyIOKAlCBpbmplY3RGaWVsZCB1c2VzIGl0IHRvIHJlY29nbml6ZSBmb3JtIGNvbnRyb2xzLlxuICAgIGNvbnN0IE1lbW9pemVkQ29tcG9uZW50ID0gbWVtbyhDb21wb25lbnQpO1xuICAgIE1lbW9pemVkQ29tcG9uZW50LmRpc3BsYXlOYW1lID1cbiAgICAgICAgQ29tcG9uZW50LmRpc3BsYXlOYW1lIHx8IENvbXBvbmVudC5uYW1lO1xuICAgIC8vIElubmVyIGNvbXBvbmVudCDigJQgaGFuZGxlcyBtb2RlLCByZXF1ZXN0LCB2YWx1ZUVudW0sIGRlYm91bmNlLCByZW5kZXJcbiAgICBjb25zdCBJbm5lckZpZWxkID0gKHByb3BzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IF9jID0gcHJvcHMsIHsgbmFtZSwgbGFiZWwsIGRlc2NyaXB0aW9uLCBydWxlcywgcmVxdWlyZWQsIGZlZWRiYWNrLCB2YWxpZGF0ZVN0YXR1cywgY29sb24sIHJlYWRvbmx5LCBtb2RlOiBtb2RlUHJvcCwgaGlkZGVuLCBjb2xQcm9wcywgZmllbGRQcm9wcywgcGxhY2Vob2xkZXIsIGRpc2FibGVkLCB3aWR0aCwgdHJhbnNmb3JtLCBjb252ZXJ0VmFsdWUsIFxuICAgICAgICAvLyBGaWVsZC1sZXZlbCBmZWF0dXJlc1xuICAgICAgICBkZXBlbmRlbmNpZXM6IF9kZXBzLCByZXF1ZXN0LCBwYXJhbXMsIHZhbHVlRW51bSwgZGVib3VuY2VUaW1lLCB2YWxpZGF0ZURlYm91bmNlLCB2YWx1ZVR5cGUsIGRlcGVuZGVuY2llc1ZhbHVlcyB9ID0gX2MsIHJlc3QgPSBfX3Jlc3QoX2MsIFtcIm5hbWVcIiwgXCJsYWJlbFwiLCBcImRlc2NyaXB0aW9uXCIsIFwicnVsZXNcIiwgXCJyZXF1aXJlZFwiLCBcImZlZWRiYWNrXCIsIFwidmFsaWRhdGVTdGF0dXNcIiwgXCJjb2xvblwiLCBcInJlYWRvbmx5XCIsIFwibW9kZVwiLCBcImhpZGRlblwiLCBcImNvbFByb3BzXCIsIFwiZmllbGRQcm9wc1wiLCBcInBsYWNlaG9sZGVyXCIsIFwiZGlzYWJsZWRcIiwgXCJ3aWR0aFwiLCBcInRyYW5zZm9ybVwiLCBcImNvbnZlcnRWYWx1ZVwiLCBcImRlcGVuZGVuY2llc1wiLCBcInJlcXVlc3RcIiwgXCJwYXJhbXNcIiwgXCJ2YWx1ZUVudW1cIiwgXCJkZWJvdW5jZVRpbWVcIiwgXCJ2YWxpZGF0ZURlYm91bmNlXCIsIFwidmFsdWVUeXBlXCIsIFwiZGVwZW5kZW5jaWVzVmFsdWVzXCJdKTtcbiAgICAgICAgLy8gTW9kZSByZXNvbHV0aW9uOiBleHBsaWNpdCBtb2RlID4gbGVnYWN5IHJlYWRvbmx5ID4gY3R4Lm1vZGUgKFByb0Zvcm1JdGVtKVxuICAgICAgICBjb25zdCByZXNvbHZlZE1vZGUgPSBtb2RlUHJvcCAhPT0gbnVsbCAmJiBtb2RlUHJvcCAhPT0gdm9pZCAwID8gbW9kZVByb3AgOiAocmVhZG9ubHkgIT09IHVuZGVmaW5lZCA/IChyZWFkb25seSA/ICdyZWFkJyA6ICdlZGl0JykgOiB1bmRlZmluZWQpO1xuICAgICAgICAvLyBGb3JtLWxldmVsIGZpZWxkUHJvcHMgKGxvd2VzdCBwcmlvcml0eSBhZnRlciBtYXBQcm9wcyBkZWZhdWx0cykuXG4gICAgICAgIC8vIFN0YWJsZSBzbGljZSBvbmx5IOKAlCB0aGUgZmllbGQgc2hlbGwgbXVzdCBOT1QgcmUtcmVuZGVyIHBlciBrZXlzdHJva2U7XG4gICAgICAgIC8vIHZhbHVlL2Vycm9yIHJlYWN0aXZpdHkgbGl2ZXMgaW5zaWRlIFByb0Zvcm1JdGVtLlxuICAgICAgICBjb25zdCB7IGZpZWxkUHJvcHM6IGNvbnRleHRGaWVsZFByb3BzIH0gPSB1c2VQcm9Gb3JtU3RhYmxlKCk7XG4gICAgICAgIC8vIOKUgOKUgCBGaWVsZC1sZXZlbCByZXF1ZXN0IOKUgOKUgFxuICAgICAgICBjb25zdCBtZXJnZWRSZXF1ZXN0UGFyYW1zID0gZGVwZW5kZW5jaWVzVmFsdWVzXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgcGFyYW1zKSwgZGVwZW5kZW5jaWVzVmFsdWVzKSA6IHBhcmFtcztcbiAgICAgICAgY29uc3QgW3JlcXVlc3RMb2FkaW5nLCByZXF1ZXN0T3B0aW9uc10gPSB1c2VGaWVsZFJlcXVlc3QocmVxdWVzdCwgbWVyZ2VkUmVxdWVzdFBhcmFtcyk7XG4gICAgICAgIC8vIEJ1aWxkIHRoZSBmaWVsZCBjaGlsZFxuICAgICAgICBjb25zdCBtYXBwZWQgPSBtYXBQcm9wcyA/IG1hcFByb3BzKHJlc3QpIDoge307XG4gICAgICAgIC8vIOKUgOKUgCBEZWJvdW5jZSBvbkNoYW5nZSDilIDilIBcbiAgICAgICAgLy8gVGhlIGVmZmVjdGl2ZSBvbkNoYW5nZSBpcyB3aGF0ZXZlciBlbmRzIHVwIG9uIHRoZSBmaWVsZCAoZmllbGRQcm9wcyB3aW5zXG4gICAgICAgIC8vIG92ZXIgbWFwcGVkLCBtYXRjaGluZyB0aGUgc3ByZWFkIG9yZGVyIGJlbG93KS4gdXNlRGVib3VuY2VkQ2FsbGJhY2sgcmVhZHNcbiAgICAgICAgLy8gdGhlIGxhdGVzdCBjYWxsYmFjayBpbnRlcm5hbGx5LCBzbyB0aGUgd3JhcHBlciBuZXZlciBnb2VzIHN0YWxlIGFuZCB0aGVcbiAgICAgICAgLy8gcGVuZGluZyBjYWxsIGlzIGF1dG8tY2FuY2VsbGVkIG9uIHVubW91bnQuXG4gICAgICAgIGNvbnN0IHVzZXJPbkNoYW5nZSA9ICgoX2IgPSAoX2EgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub25DaGFuZ2UpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGNvbnRleHRGaWVsZFByb3BzID09PSBudWxsIHx8IGNvbnRleHRGaWVsZFByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb250ZXh0RmllbGRQcm9wcy5vbkNoYW5nZSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogbWFwcGVkID09PSBudWxsIHx8IG1hcHBlZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbWFwcGVkLm9uQ2hhbmdlKTtcbiAgICAgICAgY29uc3QgeyBydW46IGRlYm91bmNlZE9uQ2hhbmdlIH0gPSB1c2VEZWJvdW5jZWRDYWxsYmFjaygoLi4uYXJncykgPT4gdXNlck9uQ2hhbmdlID09PSBudWxsIHx8IHVzZXJPbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdXNlck9uQ2hhbmdlKC4uLmFyZ3MpLCBkZWJvdW5jZVRpbWUpO1xuICAgICAgICBjb25zdCB3aWR0aFN0eWxlID0gd2lkdGggIT09IHVuZGVmaW5lZCA/IHsgd2lkdGg6IHJlc29sdmVXaWR0aCh3aWR0aCkgfSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmllbGRTdHlsZSA9IGZpZWxkUHJvcHMgPT09IG51bGwgfHwgZmllbGRQcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogZmllbGRQcm9wcy5zdHlsZTtcbiAgICAgICAgY29uc3QgbWVyZ2VkU3R5bGUgPSB3aWR0aFN0eWxlXG4gICAgICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKGZpZWxkU3R5bGUgfHwge30pKSwgd2lkdGhTdHlsZSkgOiBmaWVsZFN0eWxlO1xuICAgICAgICAvLyBNZXJnZSB2YWx1ZUVudW0gKyByZXF1ZXN0IG9wdGlvbnMgaW50byBmaWVsZFByb3BzLm9wdGlvbnNcbiAgICAgICAgbGV0IG1lcmdlZE9wdGlvbnMgPSBmaWVsZFByb3BzID09PSBudWxsIHx8IGZpZWxkUHJvcHMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGZpZWxkUHJvcHMub3B0aW9ucztcbiAgICAgICAgaWYgKHZhbHVlRW51bSkge1xuICAgICAgICAgICAgbWVyZ2VkT3B0aW9ucyA9IHZhbHVlRW51bVRvT3B0aW9ucyh2YWx1ZUVudW0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChyZXF1ZXN0T3B0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBtZXJnZWRPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29tcG9uZW50UHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIG1hcHBlZCksIChjb250ZXh0RmllbGRQcm9wcyB8fCB7fSkpLCAoZmllbGRQcm9wcyB8fCB7fSkpLCAobWVyZ2VkT3B0aW9ucyAhPT0gdW5kZWZpbmVkID8geyBvcHRpb25zOiBtZXJnZWRPcHRpb25zIH0gOiB7fSkpLCAocmVxdWVzdExvYWRpbmcgPyB7IGxvYWRpbmc6IHRydWUgfSA6IHt9KSksIChwbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkID8geyBwbGFjZWhvbGRlciB9IDoge30pKSwgKGRpc2FibGVkICE9PSB1bmRlZmluZWQgPyB7IGRpc2FibGVkIH0gOiB7fSkpLCAobWVyZ2VkU3R5bGUgPyB7IHN0eWxlOiBtZXJnZWRTdHlsZSB9IDoge30pKTtcbiAgICAgICAgLy8gV2lyZSBkZWJvdW5jZS4gVGhlIHdyYXBwZXIgZm9yd2FyZHMgdG8gdGhlIGxhdGVzdCB1c2VyIG9uQ2hhbmdlIHZpYVxuICAgICAgICAvLyBgb25DaGFuZ2VMYXRlc3RgLCBzbyBubyBuZWVkIHRvIHN0YXNoIGl0IG9uIGEgcmVmIGhlcmUuXG4gICAgICAgIGlmIChkZWJvdW5jZVRpbWUgJiYgZGVib3VuY2VUaW1lID4gMCkge1xuICAgICAgICAgICAgY29tcG9uZW50UHJvcHMub25DaGFuZ2UgPSBkZWJvdW5jZWRPbkNoYW5nZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybUl0ZW0sIHsgbmFtZTogbmFtZSwgbGFiZWw6IGxhYmVsLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIHJ1bGVzOiBydWxlcywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBmZWVkYmFjazogZmVlZGJhY2ssIHZhbGlkYXRlU3RhdHVzOiB2YWxpZGF0ZVN0YXR1cywgY29sb246IGNvbG9uLCBoaWRkZW46IGhpZGRlbiwgbW9kZTogcmVzb2x2ZWRNb2RlLCBjb2xQcm9wczogY29sUHJvcHMsIHRyYW5zZm9ybTogdHJhbnNmb3JtLCBjb252ZXJ0VmFsdWU6IGNvbnZlcnRWYWx1ZSwgdmFsdWVQcm9wTmFtZTogdmFsdWVQcm9wTmFtZSwgdmFsaWRhdGVEZWJvdW5jZTogdmFsaWRhdGVEZWJvdW5jZSwgdmFsdWVUeXBlOiB2YWx1ZVR5cGUgIT09IG51bGwgJiYgdmFsdWVUeXBlICE9PSB2b2lkIDAgPyB2YWx1ZVR5cGUgOiBkZWZhdWx0VmFsdWVUeXBlLCByZWFkb25seVJlbmRlcjogcmVuZGVyUmVhZG9ubHkgPyAodmFsdWUpID0+IHJlbmRlclJlYWRvbmx5KHZhbHVlKSA6IHVuZGVmaW5lZCwgY2hpbGRyZW46IF9qc3goTWVtb2l6ZWRDb21wb25lbnQsIE9iamVjdC5hc3NpZ24oe30sIGNvbXBvbmVudFByb3BzKSkgfSkpO1xuICAgIH07XG4gICAgLy8gT3V0ZXIgY29tcG9uZW50IOKAlCBoYW5kbGVzIGF1dG8td3JhcHBpbmcgd2l0aCBQcm9Gb3JtRGVwZW5kZW5jeVxuICAgIGNvbnN0IFByb0Zvcm1GaWVsZENvbXBvbmVudCA9IChwcm9wcykgPT4ge1xuICAgICAgICBjb25zdCB7IGRlcGVuZGVuY2llcyB9ID0gcHJvcHM7XG4gICAgICAgIGlmIChkZXBlbmRlbmNpZXMgJiYgZGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeChQcm9Gb3JtRGVwZW5kZW5jeSwgeyBuYW1lOiBkZXBlbmRlbmNpZXMsIGNoaWxkcmVuOiAoZGVwVmFsdWVzKSA9PiAoX2pzeChJbm5lckZpZWxkLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcywgeyBkZXBlbmRlbmNpZXNWYWx1ZXM6IGRlcFZhbHVlcyB9KSkpIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX2pzeChJbm5lckZpZWxkLCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcykpO1xuICAgIH07XG4gICAgY29uc3QgTWVtb2l6ZWRGaWVsZCA9IG1lbW8oUHJvRm9ybUZpZWxkQ29tcG9uZW50KTtcbiAgICByZXR1cm4gTWVtb2l6ZWRGaWVsZDtcbn1cbmV4cG9ydCBkZWZhdWx0IGNyZWF0ZVByb0Zvcm1GaWVsZDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -1,15 +1,19 @@
1
1
  import { ProFormItem } from './ProFormItem';
2
2
  import type { FormInstance, UseFormConfig } from './core/interface';
3
3
  import './style';
4
- declare const ProForm: import("react").NamedExoticComponent<import("./interface").ProFormProps> & {
4
+ declare const ProForm: import("./ProForm").ProFormComponent & {
5
5
  Item: import("react").NamedExoticComponent<import("./interface").ProFormItemProps>;
6
- useForm: (config?: UseFormConfig) => [FormInstance];
7
- useInstance: () => import("./interface").ProFormFormInstance;
6
+ useForm: <Values = Record<string, unknown>>(config?: UseFormConfig<Values>) => [FormInstance<Values>];
7
+ useInstance: <Values = Record<string, unknown>>() => import("./interface").ProFormFormInstance<Values>;
8
8
  useContext: () => import("./interface").ProFormContextValue;
9
+ useWatch: import("./context").UseFormWatch;
9
10
  Dependency: import("react").NamedExoticComponent<import("./interface").ProFormDependencyProps>;
10
11
  List: import("react").NamedExoticComponent<import("./interface").ProFormListProps>;
11
12
  Group: import("react").NamedExoticComponent<import("./interface").ProFormGroupProps>;
12
13
  FieldSet: import("react").NamedExoticComponent<import("./interface").ProFormFieldSetProps>;
14
+ SchemaForm: (<Values = Record<string, unknown>>(props: import("./interface").SchemaFormProps<Values>) => import("react").ReactElement | null) & {
15
+ displayName?: string;
16
+ };
13
17
  Submitter: import("react").NamedExoticComponent<import("./Submitter").SubmitterInternalProps>;
14
18
  Text: import("react").FC<import("./interface").ProFormFieldProps<import("../Input").InputProps>>;
15
19
  Password: import("react").FC<import("./interface").ProFormFieldProps<import("../Input").InputPasswordProps>>;
@@ -29,10 +33,13 @@ export { createProFormField, ProFormText, ProFormPassword, ProFormTextArea, ProF
29
33
  export { ProFormDependency } from './ProFormDependency';
30
34
  export { ProFormList } from './ProFormList';
31
35
  export { ProFormGroup } from './ProFormGroup';
36
+ export { SchemaForm } from './SchemaForm';
32
37
  export { DrawerForm } from './layouts/DrawerForm';
33
38
  export { DialogForm } from './layouts/DialogForm';
34
39
  export { QueryFilter } from './layouts/QueryFilter';
35
- export type { ProFormProps, ProFormItemProps, ProFormFieldProps, ProFormContextValue, ProFormFormInstance, ProFormFieldTransformFn, ProFormFieldConvertValueFn, ProFormValueEnumObj, ProFormRequestOption, ProFormValueType, FormListContextValue, ProFormColProps, ProFormFieldSetProps, ProFormGroupProps, SubmitterProps, ProFormDependencyProps, ProFormListProps, ProFormListAction, DrawerFormProps, DialogFormProps, QueryFilterProps, CreateProFormFieldConfig, } from './interface';
40
+ export { useFormWatch } from './context';
41
+ export type { UseFormWatch } from './context';
42
+ export type { ProFormProps, ProFormItemProps, ProFormItemSharedProps, ProFormFieldProps, ProFormContextValue, ProFormStableContextValue, ProFormStateContextValue, ProFormFormInstance, ProFormFieldTransformFn, ProFormFieldConvertValueFn, ProFormDateFormatter, ProFormValueEnumObj, ProFormRequestOption, ProFormValueType, FormListContextValue, ProFormColProps, ProFormFieldSetProps, ProFormGroupProps, SubmitterProps, ProFormDependencyProps, ProFormListProps, ProFormListAction, DrawerFormProps, DialogFormProps, QueryFilterProps, CreateProFormFieldConfig, ProFormSchemaColumn, ProFormSchemaValueType, SchemaFormProps, } from './interface';
36
43
  export { CSS_PREFIX, WIDTH_SIZE_MAP, DEFAULT_COL_SPAN, DEFAULT_TEXT, PROFORM_MODES } from './constants';
37
44
  export type { ProFormMode } from './constants';
38
45
  export type { FormInstance, FormCoreInstance, Rule, ValidateTrigger, ValidateStatus, FormLayout, FormSize, LabelAlign, UseFormConfig, UseFormReturn, UseFormInternals, } from './core/interface';