@1money/component-ui 0.0.74 → 0.0.76

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 (81) hide show
  1. package/es/components/Dialog/Dialog.js +7 -39
  2. package/es/components/Dialog/constants.d.ts +0 -3
  3. package/es/components/Dialog/constants.js +1 -4
  4. package/es/components/Dialog/style/Dialog.css +0 -21
  5. package/es/components/ProForm/ProForm.js +46 -33
  6. package/es/components/ProForm/ProFormDependency.js +6 -16
  7. package/es/components/ProForm/ProFormItem.js +5 -7
  8. package/es/components/ProForm/ProFormList.js +112 -40
  9. package/es/components/ProForm/core/constants.d.ts +2 -0
  10. package/es/components/ProForm/core/constants.js +7 -1
  11. package/es/components/ProForm/core/devWarning.d.ts +3 -0
  12. package/es/components/ProForm/core/devWarning.js +22 -0
  13. package/es/components/ProForm/core/formStore.d.ts +10 -2
  14. package/es/components/ProForm/core/formStore.js +21 -2
  15. package/es/components/ProForm/core/hooks/useForm.js +246 -103
  16. package/es/components/ProForm/core/hooks/useFormCore.js +134 -28
  17. package/es/components/ProForm/core/interface.d.ts +124 -49
  18. package/es/components/ProForm/core/runRules.d.ts +44 -12
  19. package/es/components/ProForm/core/runRules.js +584 -133
  20. package/es/components/ProForm/core/useFormItem.d.ts +6 -7
  21. package/es/components/ProForm/core/useFormItem.js +44 -22
  22. package/es/components/ProForm/core/validationError.d.ts +13 -0
  23. package/es/components/ProForm/core/validationError.js +29 -0
  24. package/es/components/ProForm/fields/ProFormCheckboxGroup.js +19 -5
  25. package/es/components/ProForm/fields/ProFormFieldSet.js +51 -12
  26. package/es/components/ProForm/fields/ProFormRadioGroup.js +8 -3
  27. package/es/components/ProForm/fields/ProFormSelect.js +13 -7
  28. package/es/components/ProForm/fields/createProFormField.js +18 -25
  29. package/es/components/ProForm/hooks/useFieldRequest.js +10 -8
  30. package/es/components/ProForm/index.d.ts +2 -1
  31. package/es/components/ProForm/index.js +4 -1
  32. package/es/components/ProForm/interface.d.ts +31 -40
  33. package/es/components/ProForm/layouts/QueryFilter.js +24 -16
  34. package/es/components/ProForm/style/ProForm.css +0 -1
  35. package/es/components/ProForm/utils.d.ts +8 -0
  36. package/es/components/ProForm/utils.js +51 -3
  37. package/es/components/Table/core/useTableSetup.js +2 -2
  38. package/es/components/Table/interface.d.ts +1 -1
  39. package/es/index.css +1 -1
  40. package/lib/components/Dialog/Dialog.js +6 -38
  41. package/lib/components/Dialog/constants.d.ts +0 -3
  42. package/lib/components/Dialog/constants.js +1 -4
  43. package/lib/components/Dialog/style/Dialog.css +0 -21
  44. package/lib/components/ProForm/ProForm.js +45 -32
  45. package/lib/components/ProForm/ProFormDependency.js +5 -15
  46. package/lib/components/ProForm/ProFormItem.js +5 -7
  47. package/lib/components/ProForm/ProFormList.js +110 -38
  48. package/lib/components/ProForm/core/constants.d.ts +2 -0
  49. package/lib/components/ProForm/core/constants.js +8 -2
  50. package/lib/components/ProForm/core/devWarning.d.ts +3 -0
  51. package/lib/components/ProForm/core/devWarning.js +29 -0
  52. package/lib/components/ProForm/core/formStore.d.ts +10 -2
  53. package/lib/components/ProForm/core/formStore.js +23 -2
  54. package/lib/components/ProForm/core/hooks/useForm.js +242 -99
  55. package/lib/components/ProForm/core/hooks/useFormCore.js +133 -27
  56. package/lib/components/ProForm/core/interface.d.ts +124 -49
  57. package/lib/components/ProForm/core/runRules.d.ts +44 -12
  58. package/lib/components/ProForm/core/runRules.js +587 -133
  59. package/lib/components/ProForm/core/useFormItem.d.ts +6 -7
  60. package/lib/components/ProForm/core/useFormItem.js +43 -21
  61. package/lib/components/ProForm/core/validationError.d.ts +13 -0
  62. package/lib/components/ProForm/core/validationError.js +36 -0
  63. package/lib/components/ProForm/fields/ProFormCheckboxGroup.js +18 -4
  64. package/lib/components/ProForm/fields/ProFormFieldSet.js +51 -12
  65. package/lib/components/ProForm/fields/ProFormRadioGroup.js +7 -2
  66. package/lib/components/ProForm/fields/ProFormSelect.js +13 -7
  67. package/lib/components/ProForm/fields/createProFormField.js +18 -25
  68. package/lib/components/ProForm/hooks/useFieldRequest.js +10 -8
  69. package/lib/components/ProForm/index.d.ts +2 -1
  70. package/lib/components/ProForm/index.js +10 -1
  71. package/lib/components/ProForm/interface.d.ts +31 -40
  72. package/lib/components/ProForm/layouts/QueryFilter.js +24 -16
  73. package/lib/components/ProForm/style/ProForm.css +0 -1
  74. package/lib/components/ProForm/utils.d.ts +8 -0
  75. package/lib/components/ProForm/utils.js +52 -3
  76. package/lib/components/Table/core/useTableSetup.js +2 -2
  77. package/lib/components/Table/interface.d.ts +1 -1
  78. package/lib/index.css +1 -1
  79. package/package.json +1 -1
  80. package/scripts/mcp-server/examples.generated.json +42 -36
  81. package/scripts/mcp-server/index.generated.json +23 -67
@@ -1,25 +1,24 @@
1
1
  import type { ReactNode } from 'react';
2
- import type { FormSize, LabelAlign, Rule, ValidateStatus } from './interface';
2
+ import type { FormRule, FormSize, LabelAlign, ValidateStatus, ValidateTriggerProp } from './interface';
3
3
  export interface UseFormItemOptions {
4
4
  name?: string;
5
- rules?: Rule[];
6
- required?: boolean;
5
+ rules?: FormRule[];
7
6
  validateStatus?: ValidateStatus;
8
7
  /** Prop name the controlled value is injected under (e.g. `checked` for Switch/Checkbox). */
9
8
  valuePropName?: string;
10
9
  /** Debounce (ms) applied to onChange-triggered validation. */
11
10
  validateDebounce?: number;
11
+ /** Item-level validateTrigger — overrides the form-level setting. */
12
+ validateTrigger?: ValidateTriggerProp;
12
13
  }
13
14
  export interface UseFormItemReturn {
14
15
  fieldValue: unknown;
15
- fieldError: string | undefined;
16
- fieldWarning: string | undefined;
16
+ fieldError: ReactNode | undefined;
17
+ fieldWarning: ReactNode | undefined;
17
18
  fieldValidating: boolean;
18
19
  validateStatus: ValidateStatus | undefined;
19
- isRequired: boolean;
20
20
  size: FormSize;
21
21
  labelAlign: LabelAlign;
22
- requiredMark: boolean;
23
22
  /**
24
23
  * Clone a form-component child injecting value/onChange/onBlur/status.
25
24
  * Form `size` cascades into size-aware controls as a default — an explicit
@@ -71,26 +71,29 @@ function useFormItem(options) {
71
71
  var name = options.name,
72
72
  _options$rules = options.rules,
73
73
  rules = _options$rules === void 0 ? [] : _options$rules,
74
- required = options.required,
75
74
  validateStatus = options.validateStatus,
76
75
  _options$valuePropNam = options.valuePropName,
77
76
  valuePropName = _options$valuePropNam === void 0 ? 'value' : _options$valuePropNam,
78
- validateDebounce = options.validateDebounce;
77
+ validateDebounce = options.validateDebounce,
78
+ itemValidateTrigger = options.validateTrigger;
79
79
  var _useProFormStable = (0, _context2.useProFormStable)(),
80
+ formInstance = _useProFormStable.formInstance,
80
81
  setFieldValue = _useProFormStable.setFieldValue,
82
+ setFieldError = _useProFormStable.setFieldError,
83
+ setFieldWarning = _useProFormStable.setFieldWarning,
81
84
  validateField = _useProFormStable.validateField,
82
85
  validateFieldAsync = _useProFormStable.validateFieldAsync,
83
86
  registerField = _useProFormStable.registerField,
84
- unregisterField = _useProFormStable.unregisterField,
87
+ retainField = _useProFormStable.retainField,
88
+ releaseField = _useProFormStable.releaseField,
85
89
  size = _useProFormStable.size,
86
90
  labelAlign = _useProFormStable.labelAlign,
87
- requiredMark = _useProFormStable.requiredMark,
88
- validateTrigger = _useProFormStable.validateTrigger,
91
+ formValidateTrigger = _useProFormStable.validateTrigger,
89
92
  formDisabled = _useProFormStable.disabled;
90
93
  var store = (0, _context2.useProFormStore)();
91
- var isRequired = Boolean(required || rules.some(function (rule) {
92
- return rule.required;
93
- }));
94
+ // The item-level validateTrigger overrides the form-level one;
95
+ // the result is the set of interactive events that validate this field.
96
+ var activeTriggers = (0, _runRules.normalizeTriggers)(itemValidateTrigger, formValidateTrigger);
94
97
  // Per-field store subscription: this item re-renders ONLY when its own
95
98
  // value/error/warning/validating slice changes — typing in a sibling field
96
99
  // produces an equal tuple and the selector short-circuits.
@@ -105,17 +108,18 @@ function useFormItem(options) {
105
108
  fieldWarning = _useStoreSelector2[2],
106
109
  fieldValidating = _useStoreSelector2[3];
107
110
  var finalStatus = validateStatus || (fieldError ? 'error' : fieldWarning ? 'warning' : undefined);
108
- // Run only the rules applicable to the given interactive trigger; rules
109
- // without an explicit validateTrigger follow the form-level setting.
111
+ // Trigger filtering needs resolved rules a function-form rule's
112
+ // validateTrigger is only known after resolving it against the live values.
110
113
  var runValidate = (0, _useEventCallback["default"])(function (value, trigger) {
111
114
  if (!name || rules.length === 0) return true;
112
- var applicable = (0, _runRules.filterRulesByTrigger)(rules, trigger, validateTrigger);
115
+ var resolved = (0, _runRules.resolveRules)(rules, store.getState().values, formInstance);
116
+ var applicable = (0, _runRules.filterRulesByTrigger)(resolved, trigger, activeTriggers, name);
113
117
  if (applicable.length === 0) return true;
114
118
  return validateField(name, applicable, value);
115
119
  });
116
120
  var runValidateAsync = (0, _useEventCallback["default"])(function (value, trigger) {
117
121
  return __awaiter(_this, void 0, void 0, /*#__PURE__*/_regenerator["default"].mark(function _callee() {
118
- var applicable;
122
+ var resolved, applicable;
119
123
  return _regenerator["default"].wrap(function (_context) {
120
124
  while (1) switch (_context.prev = _context.next) {
121
125
  case 0:
@@ -125,7 +129,8 @@ function useFormItem(options) {
125
129
  }
126
130
  return _context.abrupt("return");
127
131
  case 1:
128
- applicable = (0, _runRules.filterRulesByTrigger)(rules, trigger, validateTrigger);
132
+ resolved = (0, _runRules.resolveRules)(rules, store.getState().values, formInstance);
133
+ applicable = (0, _runRules.filterRulesByTrigger)(resolved, trigger, activeTriggers, name);
129
134
  if (!(applicable.length === 0)) {
130
135
  _context.next = 2;
131
136
  break;
@@ -193,17 +198,36 @@ function useFormItem(options) {
193
198
  }
194
199
  (_b = (_a = childCallbacksRef.current).onBlur) === null || _b === void 0 ? void 0 : (_b3 = _b).call.apply(_b3, [_a].concat(args));
195
200
  });
201
+ // A FRESH field instance must not inherit error/warning meta stamped on the
202
+ // same name by a previous, since-unmounted instance (errors outlive
203
+ // unregisterField by design — list remapping depends on that). MOUNT only:
204
+ // a NAME change must not clear, or ProFormList's meta remapping (which
205
+ // renames rows positionally) would lose the very meta it just moved.
206
+ (0, _react.useEffect)(function () {
207
+ if (name) {
208
+ setFieldError(name, null);
209
+ setFieldWarning(name, null);
210
+ }
211
+ // Mount-only by design (see above).
212
+ }, []);
213
+ // Mount-counted lifetime: releaseField removes the rules only when the LAST
214
+ // same-name instance unmounts — a memo-bailed survivor (which won't
215
+ // re-render to re-register) keeps its registration intact. Declared BEFORE
216
+ // the register effect: retain must run first so the registration below is
217
+ // classified as instance-owned.
218
+ (0, _react.useEffect)(function () {
219
+ if (!name) return;
220
+ retainField(name);
221
+ return function () {
222
+ releaseField(name);
223
+ };
224
+ }, [name]);
196
225
  // Keep the registry in sync with the LATEST rules every render (registration
197
226
  // is a cheap ref mutation): dynamic rules (e.g. required toggled by another
198
227
  // field) must be visible to submit-time validation, not just onChange.
199
228
  (0, _react.useEffect)(function () {
200
229
  if (name && registerField) registerField(name, rules);
201
230
  });
202
- (0, _react.useEffect)(function () {
203
- return function () {
204
- if (name && unregisterField) unregisterField(name);
205
- };
206
- }, [name]);
207
231
  var injectField = function injectField(child) {
208
232
  var _a;
209
233
  if (!name || ! /*#__PURE__*/_react["default"].isValidElement(child)) return child;
@@ -240,11 +264,9 @@ function useFormItem(options) {
240
264
  fieldWarning: fieldWarning,
241
265
  fieldValidating: fieldValidating,
242
266
  validateStatus: finalStatus,
243
- isRequired: isRequired,
244
267
  size: size,
245
268
  labelAlign: labelAlign,
246
- requiredMark: requiredMark,
247
269
  injectField: injectField
248
270
  };
249
271
  }
250
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2syIiwiX2NvbnRleHQyIiwiX2Zvcm1TdG9yZSIsIl9wYXRoVXRpbHMiLCJfcnVuUnVsZXMiLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiZXh0cmFjdEV2ZW50VmFsdWUiLCJ2YWx1ZVByb3BOYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX3R5cGVvZjIiLCJldmVudCIsInRhcmdldCIsInVzZUZvcm1JdGVtIiwib3B0aW9ucyIsIl90aGlzIiwibmFtZSIsIl9vcHRpb25zJHJ1bGVzIiwicnVsZXMiLCJyZXF1aXJlZCIsInZhbGlkYXRlU3RhdHVzIiwiX29wdGlvbnMkdmFsdWVQcm9wTmFtIiwidmFsaWRhdGVEZWJvdW5jZSIsIl91c2VQcm9Gb3JtU3RhYmxlIiwidXNlUHJvRm9ybVN0YWJsZSIsInNldEZpZWxkVmFsdWUiLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInVucmVnaXN0ZXJGaWVsZCIsInNpemUiLCJsYWJlbEFsaWduIiwicmVxdWlyZWRNYXJrIiwidmFsaWRhdGVUcmlnZ2VyIiwiZm9ybURpc2FibGVkIiwiZGlzYWJsZWQiLCJzdG9yZSIsInVzZVByb0Zvcm1TdG9yZSIsImlzUmVxdWlyZWQiLCJCb29sZWFuIiwic29tZSIsInJ1bGUiLCJfdXNlU3RvcmVTZWxlY3RvciIsInVzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsImluY2x1ZGVzIiwiZ2V0TmVzdGVkVmFsdWUiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ3YXJuaW5ncyIsInZhbGlkYXRpbmciLCJzaGFsbG93RXF1YWxBcnJheXMiLCJfdXNlU3RvcmVTZWxlY3RvcjIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWVsZFZhbHVlIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwidHJpZ2dlciIsImFwcGxpY2FibGUiLCJmaWx0ZXJSdWxlc0J5VHJpZ2dlciIsInJ1blZhbGlkYXRlQXN5bmMiLCJfcmVnZW5lcmF0b3IiLCJtYXJrIiwiX2NhbGxlZSIsIndyYXAiLCJfY29udGV4dCIsInByZXYiLCJhYnJ1cHQiLCJzdG9wIiwiX3VzZURlYm91bmNlZENhbGxiYWNrIiwidXNlRGVib3VuY2VkQ2FsbGJhY2siLCJkZWJvdW5jZWRWYWxpZGF0ZSIsInJ1biIsImhhbmRsZUNoYW5nZSIsInRvdWNoZWQiLCJnZXRTdGF0ZSIsInNldFN0YXRlIiwiYXNzaWduIiwiX2RlZmluZVByb3BlcnR5MiIsImhhbmRsZUJsdXIiLCJjdXJyZW50VmFsdWUiLCJjaGlsZENhbGxiYWNrc1JlZiIsInVzZVJlZiIsImluamVjdGVkT25DaGFuZ2UiLCJfYjIiLCJfYSIsIl9iIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjdXJyZW50Iiwib25DaGFuZ2UiLCJjb25jYXQiLCJpbmplY3RlZE9uQmx1ciIsIl9iMyIsIl9sZW4yIiwiX2tleTIiLCJvbkJsdXIiLCJ1c2VFZmZlY3QiLCJpbmplY3RGaWVsZCIsImNoaWxkIiwiUmVhY3QiLCJpc1ZhbGlkRWxlbWVudCIsImNoaWxkUHJvcHMiLCJwcm9wcyIsImRpc3BsYXlOYW1lIiwidHlwZSIsImlzRm9ybUNvbXBvbmVudCIsIkZPUk1fQ09NUE9ORU5UX05BTUVTIiwicGxhY2Vob2xkZXIiLCJzYWZlVmFsdWUiLCJURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTIiwiaW5qZWN0ZWRQcm9wcyIsInN0YXR1cyIsIlNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTIiwiY2xvbmVFbGVtZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsc0JBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLFNBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUlxQixTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVgsd0JBQUFXLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssUUFBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUNackIsSUFBSVcsU0FBUyxHQUFJLFVBQVEsU0FBS0EsU0FBUyxJQUFLLFVBQVVDLE9BQU8sRUFBRUMsVUFBVSxFQUFFQyxDQUFDLEVBQUVDLFNBQVMsRUFBRTtFQUNyRixTQUFTQyxLQUFLQSxDQUFDQyxLQUFLLEVBQUU7SUFBRSxPQUFPQSxLQUFLLFlBQVlILENBQUMsR0FBR0csS0FBSyxHQUFHLElBQUlILENBQUMsQ0FBQyxVQUFVSSxPQUFPLEVBQUU7TUFBRUEsT0FBTyxDQUFDRCxLQUFLLENBQUM7SUFBRSxDQUFDLENBQUM7RUFBRTtFQUMzRyxPQUFPLEtBQUtILENBQUMsS0FBS0EsQ0FBQyxHQUFHSyxPQUFPLENBQUMsRUFBRSxVQUFVRCxPQUFPLEVBQUVFLE1BQU0sRUFBRTtJQUN2RCxTQUFTQyxTQUFTQSxDQUFDSixLQUFLLEVBQUU7TUFBRSxJQUFJO1FBQUVLLElBQUksQ0FBQ1AsU0FBUyxDQUFDUSxJQUFJLENBQUNOLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU96QixDQUFDLEVBQUU7UUFBRTRCLE1BQU0sQ0FBQzVCLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDMUYsU0FBU2dDLFFBQVFBLENBQUNQLEtBQUssRUFBRTtNQUFFLElBQUk7UUFBRUssSUFBSSxDQUFDUCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUNFLEtBQUssQ0FBQyxDQUFDO01BQUUsQ0FBQyxDQUFDLE9BQU96QixDQUFDLEVBQUU7UUFBRTRCLE1BQU0sQ0FBQzVCLENBQUMsQ0FBQztNQUFFO0lBQUU7SUFDN0YsU0FBUzhCLElBQUlBLENBQUNHLE1BQU0sRUFBRTtNQUFFQSxNQUFNLENBQUNDLElBQUksR0FBR1IsT0FBTyxDQUFDTyxNQUFNLENBQUNSLEtBQUssQ0FBQyxHQUFHRCxLQUFLLENBQUNTLE1BQU0sQ0FBQ1IsS0FBSyxDQUFDLENBQUNVLElBQUksQ0FBQ04sU0FBUyxFQUFFRyxRQUFRLENBQUM7SUFBRTtJQUM3R0YsSUFBSSxDQUFDLENBQUNQLFNBQVMsR0FBR0EsU0FBUyxDQUFDYSxLQUFLLENBQUNoQixPQUFPLEVBQUVDLFVBQVUsSUFBSSxFQUFFLENBQUMsRUFBRVUsSUFBSSxDQUFDLENBQUMsQ0FBQztFQUN6RSxDQUFDLENBQUM7QUFDTixDQUFDO0FET0Q7QUNHQTtBQUNBO0FBQ0E7QUFDQTtBRERBLFNBQVNNLGlCQUFpQkEsQ0FBQ3JDLENBQVUsRUFBeUI7RUFBQSxJQUF2QnNDLGFBQWEsR0FBQUMsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQUUsU0FBQSxHQUFBRixTQUFBLE1BQUcsT0FBTztFQUM1RCxJQUFJdkMsQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFBMEMsUUFBQSxhQUFPMUMsQ0FBQyxNQUFLLFFBQVEsRUFBRSxPQUFPQSxDQUFDO0VBRWpELElBQU0yQyxLQUFLLEdBQUczQyxDQUE0QjtFQUMxQyxJQUFJc0MsYUFBYSxLQUFLLE9BQU8sSUFBSUEsYUFBYSxJQUFJSyxLQUFLLEVBQUU7SUFDdkQsT0FBT0EsS0FBSyxDQUFDTCxhQUFhLENBQUM7RUFDN0I7RUFDQSxJQUFJLFFBQVEsSUFBSUssS0FBSyxJQUFJQSxLQUFLLENBQUNDLE1BQU0sSUFBSSxJQUFBRixRQUFBLGFBQU9DLEtBQUssQ0FBQ0MsTUFBTSxNQUFLLFFBQVEsRUFBRTtJQUN6RSxJQUFNQSxNQUFNLEdBQUdELEtBQUssQ0FBQ0MsTUFBaUM7SUFDdEQsSUFBSU4sYUFBYSxJQUFJTSxNQUFNLEVBQUUsT0FBT0EsTUFBTSxDQUFDTixhQUFhLENBQUM7SUFDekQsSUFBSSxPQUFPLElBQUlNLE1BQU0sRUFBRSxPQUFPQSxNQUFNLENBQUNuQixLQUFLO0VBQzVDO0VBQ0EsT0FBT3pCLENBQUM7QUFDVjtBQStCTSxTQUFVNkMsV0FBV0EsQ0FBQ0MsT0FBMkIsRUFBQTtFQUFBLElBQUFDLEtBQUE7RUFDckQsSUFDRUMsSUFBSSxHQU1GRixPQUFPLENBTlRFLElBQUk7SUFBQUMsY0FBQSxHQU1GSCxPQUFPLENBTFRJLEtBQUs7SUFBTEEsS0FBSyxHQUFBRCxjQUFBLGNBQUcsRUFBRSxHQUFBQSxjQUFBO0lBQ1ZFLFFBQVEsR0FJTkwsT0FBTyxDQUpUSyxRQUFRO0lBQ1JDLGNBQWMsR0FHWk4sT0FBTyxDQUhUTSxjQUFjO0lBQUFDLHFCQUFBLEdBR1pQLE9BQU8sQ0FGVFIsYUFBYTtJQUFiQSxhQUFhLEdBQUFlLHFCQUFBLGNBQUcsT0FBTyxHQUFBQSxxQkFBQTtJQUN2QkMsZ0JBQWdCLEdBQ2RSLE9BQU8sQ0FEVFEsZ0JBQWdCO0VBRWxCLElBQUFDLGlCQUFBLEdBV0ksSUFBQUMsMEJBQWdCLEVBQUEsQ0FBRTtJQVZwQkMsYUFBYSxHQUFBRixpQkFBQSxDQUFiRSxhQUFhO0lBQ2JDLGFBQWEsR0FBQUgsaUJBQUEsQ0FBYkcsYUFBYTtJQUNiQyxrQkFBa0IsR0FBQUosaUJBQUEsQ0FBbEJJLGtCQUFrQjtJQUNsQkMsYUFBYSxHQUFBTCxpQkFBQSxDQUFiSyxhQUFhO0lBQ2JDLGVBQWUsR0FBQU4saUJBQUEsQ0FBZk0sZUFBZTtJQUNmQyxJQUFJLEdBQUFQLGlCQUFBLENBQUpPLElBQUk7SUFDSkMsVUFBVSxHQUFBUixpQkFBQSxDQUFWUSxVQUFVO0lBQ1ZDLFlBQVksR0FBQVQsaUJBQUEsQ0FBWlMsWUFBWTtJQUNaQyxlQUFlLEdBQUFWLGlCQUFBLENBQWZVLGVBQWU7SUFDTEMsWUFBWSxHQUFBWCxpQkFBQSxDQUF0QlksUUFBUTtFQUVWLElBQU1DLEtBQUssR0FBRyxJQUFBQyx5QkFBZSxFQUFBLENBQUU7RUFFL0IsSUFBTUMsVUFBVSxHQUFHQyxPQUFPLENBQUNwQixRQUFRLElBQUlELEtBQUssQ0FBQ3NCLElBQUksQ0FBQyxVQUFDQyxJQUFJO0lBQUEsT0FBS0EsSUFBSSxDQUFDdEIsUUFBUTtFQUFBLEVBQUMsQ0FBQztFQUMzRTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBQXVCLGlCQUFBLEdBQWdFLElBQUFDLDJCQUFnQixFQUM5RVAsS0FBSyxFQUNMLFVBQUNRLEtBQUs7TUFBQSxPQUFpRSxDQUNyRTVCLElBQUksR0FDQ0EsSUFBSSxDQUFDNkIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUFDLHlCQUFjLEVBQUNGLEtBQUssQ0FBQ0csTUFBTSxFQUFFL0IsSUFBSSxDQUFDLEdBQUc0QixLQUFLLENBQUNHLE1BQU0sQ0FBQy9CLElBQUksQ0FBQyxHQUM3RVAsU0FBUyxFQUNiTyxJQUFJLEdBQUc0QixLQUFLLENBQUNJLE1BQU0sQ0FBQ2hDLElBQUksQ0FBQyxHQUFHUCxTQUFTLEVBQ3JDTyxJQUFJLEdBQUc0QixLQUFLLENBQUNLLFFBQVEsQ0FBQ2pDLElBQUksQ0FBQyxHQUFHUCxTQUFTLEVBQ3ZDTyxJQUFJLEdBQUk0QixLQUFLLENBQUNNLFVBQVUsQ0FBQ2xDLElBQUksQ0FBQyxJQUFJLEtBQUssR0FBSSxLQUFLLENBQ2pEO0lBQUEsR0FDRG1DLDZCQUFrQixDQUNuQjtJQUFBQyxrQkFBQSxPQUFBQyxlQUFBLGFBQUFYLGlCQUFBO0lBWE1ZLFVBQVUsR0FBQUYsa0JBQUE7SUFBRUcsVUFBVSxHQUFBSCxrQkFBQTtJQUFFSSxZQUFZLEdBQUFKLGtCQUFBO0lBQUVLLGVBQWUsR0FBQUwsa0JBQUE7RUFZNUQsSUFBTU0sV0FBVyxHQUNmdEMsY0FBYyxLQUFLbUMsVUFBVSxHQUFHLE9BQU8sR0FBR0MsWUFBWSxHQUFHLFNBQVMsR0FBRy9DLFNBQVMsQ0FBQztFQUVqRjtFQUNBO0VBQ0EsSUFBTWtELFdBQVcsR0FBRyxJQUFBQyw0QkFBZ0IsRUFBQyxVQUFDbkUsS0FBYyxFQUFFb0UsT0FBd0IsRUFBSTtJQUNoRixJQUFJLENBQUM3QyxJQUFJLElBQUlFLEtBQUssQ0FBQ1YsTUFBTSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUk7SUFDNUMsSUFBTXNELFVBQVUsR0FBRyxJQUFBQyw4QkFBb0IsRUFBQzdDLEtBQUssRUFBRTJDLE9BQU8sRUFBRTVCLGVBQWUsQ0FBQztJQUN4RSxJQUFJNkIsVUFBVSxDQUFDdEQsTUFBTSxLQUFLLENBQUMsRUFBRSxPQUFPLElBQUk7SUFDeEMsT0FBT2tCLGFBQWEsQ0FBQ1YsSUFBSSxFQUFFOEMsVUFBVSxFQUFFckUsS0FBSyxDQUFDO0VBQy9DLENBQUMsQ0FBQztFQUVGLElBQU11RSxnQkFBZ0IsR0FBRyxJQUFBSiw0QkFBZ0IsRUFBQyxVQUFPbkUsS0FBYyxFQUFFb0UsT0FBd0I7SUFBQSxPQUFJMUUsU0FBQSxDQUFBNEIsS0FBQSxFQUFBLEtBQUEsQ0FBQSxFQUFBLEtBQUEsQ0FBQSxlQUFBa0QsWUFBQSxZQUFBQyxJQUFBLENBQUEsU0FBQUMsUUFBQTtNQUFBLElBQUFMLFVBQUE7TUFBQSxPQUFBRyxZQUFBLFlBQUFHLElBQUEsV0FBQUMsUUFBQTtRQUFBLGtCQUFBQSxRQUFBLENBQUFDLElBQUEsR0FBQUQsUUFBQSxDQUFBdEUsSUFBQTtVQUFBO1lBQUEsTUFDdkYsQ0FBQ2lCLElBQUksSUFBSUUsS0FBSyxDQUFDVixNQUFNLEtBQUssQ0FBQztjQUFBNkQsUUFBQSxDQUFBdEUsSUFBQTtjQUFBO1lBQUE7WUFBQSxPQUFBc0UsUUFBQSxDQUFBRSxNQUFBO1VBQUE7WUFDekJULFVBQVUsR0FBRyxJQUFBQyw4QkFBb0IsRUFBQzdDLEtBQUssRUFBRTJDLE9BQU8sRUFBRTVCLGVBQWUsQ0FBQztZQUFBLE1BQ3BFNkIsVUFBVSxDQUFDdEQsTUFBTSxLQUFLLENBQUM7Y0FBQTZELFFBQUEsQ0FBQXRFLElBQUE7Y0FBQTtZQUFBO1lBQUEsT0FBQXNFLFFBQUEsQ0FBQUUsTUFBQTtVQUFBO1lBQUFGLFFBQUEsQ0FBQXRFLElBQUE7WUFDM0IsT0FBTTRCLGtCQUFrQixDQUFDWCxJQUFJLEVBQUV2QixLQUFLLEVBQUVxRSxVQUFVLENBQUM7VUFBQTtVQUFBO1lBQUEsT0FBQU8sUUFBQSxDQUFBRyxJQUFBO1FBQUE7TUFBQSxHQUFBTCxPQUFBO0lBQUEsQ0FDbEQsRUFBQTtFQUFBLEVBQUM7RUFFRixJQUFBTSxxQkFBQSxHQUFtQyxJQUFBQyxpQ0FBb0IsRUFBQyxVQUFDakYsS0FBYyxFQUFJO01BQ3pFa0UsV0FBVyxDQUFDbEUsS0FBSyxFQUFFLFVBQVUsQ0FBQztJQUNoQyxDQUFDLEVBQUU2QixnQkFBZ0IsQ0FBQztJQUZQcUQsaUJBQWlCLEdBQUFGLHFCQUFBLENBQXRCRyxHQUFHO0VBSVgsSUFBTUMsWUFBWSxHQUFHLElBQUFqQiw0QkFBZ0IsRUFBQyxVQUFDbkUsS0FBYyxFQUFJO0lBQ3ZELElBQUl1QixJQUFJLEVBQUU7TUFDUlMsYUFBYSxDQUFDVCxJQUFJLEVBQUV2QixLQUFLLENBQUM7TUFDMUI7TUFDQTtNQUNBLElBQU1xRixPQUFPLEdBQUcxQyxLQUFLLENBQUMyQyxRQUFRLENBQUEsQ0FBRSxDQUFDRCxPQUFPO01BQ3hDLElBQUksQ0FBQ0EsT0FBTyxDQUFDOUQsSUFBSSxDQUFDLEVBQUU7UUFDbEJvQixLQUFLLENBQUM0QyxRQUFRLENBQUM7VUFBRUYsT0FBTyxFQUFBbkcsTUFBQSxDQUFBc0csTUFBQSxDQUFBdEcsTUFBQSxDQUFBc0csTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFPSCxPQUFPLENBQUEsTUFBQUksZ0JBQUEsaUJBQUdsRSxJQUFJLEVBQUcsSUFBSSxDQUFBO1FBQUUsQ0FBRSxDQUFDO01BQzNEO01BQ0EsSUFBSU0sZ0JBQWdCLElBQUlBLGdCQUFnQixHQUFHLENBQUMsRUFBRTtRQUM1Q3FELGlCQUFpQixDQUFDbEYsS0FBSyxDQUFDO01BQzFCLENBQUMsTUFBTTtRQUNMa0UsV0FBVyxDQUFDbEUsS0FBSyxFQUFFLFVBQVUsQ0FBQztNQUNoQztJQUNGO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsSUFBTTBGLFVBQVUsR0FBRyxJQUFBdkIsNEJBQWdCLEVBQUMsWUFBSztJQUN2QztJQUNBO0lBQ0E7SUFDQSxJQUFNd0IsWUFBWSxHQUFHcEUsSUFBSSxHQUNwQkEsSUFBSSxDQUFDNkIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUNqQixJQUFBQyx5QkFBYyxFQUFDVixLQUFLLENBQUMyQyxRQUFRLENBQUEsQ0FBRSxDQUFDaEMsTUFBTSxFQUFFL0IsSUFBSSxDQUFDLEdBQzdDb0IsS0FBSyxDQUFDMkMsUUFBUSxDQUFBLENBQUUsQ0FBQ2hDLE1BQU0sQ0FBQy9CLElBQUksQ0FBQyxHQUMvQlAsU0FBUztJQUNidUQsZ0JBQWdCLENBQUNvQixZQUFZLEVBQUUsUUFBUSxDQUFDO0VBQzFDLENBQUMsQ0FBQztFQUVGO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBTUMsaUJBQWlCLEdBQUcsSUFBQUMsYUFBTSxFQUc3QixDQUFBLENBQUUsQ0FBQztFQUVOLElBQU1DLGdCQUFnQixHQUFHLElBQUEzQiw0QkFBZ0IsRUFBQyxVQUFDNUYsQ0FBVSxFQUF3QjtJQUFBLElBQUF3SCxHQUFBO0lDdER2RSxJQUFJQyxFQUFFLEVBQUVDLEVBQUU7SUR1RGRiLFlBQVksQ0FBQ3hFLGlCQUFpQixDQUFDckMsQ0FBQyxFQUFFc0MsYUFBYSxDQUFDLENBQUM7SUFBQyxTQUFBcUYsSUFBQSxHQUFBcEYsU0FBQSxDQUFBQyxNQUFBLEVBRE1vRixJQUFlLE9BQUFDLEtBQUEsQ0FBQUYsSUFBQSxPQUFBQSxJQUFBLFdBQUFHLElBQUEsTUFBQUEsSUFBQSxHQUFBSCxJQUFBLEVBQUFHLElBQUE7TUFBZkYsSUFBZSxDQUFBRSxJQUFBLFFBQUF2RixTQUFBLENBQUF1RixJQUFBO0lBQUE7SUFFdkUsQ0FBQUosRUFBQSxHQUFBLENBQUFELEVBQUEsR0FBQUosaUJBQWlCLENBQUNVLE9BQU8sRUFBQ0MsUUFBUSxNQUFBLElBQUEsSUFBQU4sRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBLENBQUFGLEdBQUEsR0FBQUUsRUFBQSxFQUFBMUcsSUFBQSxDQUFBb0IsS0FBQSxDQUFBb0YsR0FBQSxHQUFBQyxFQUFBLEVBQUd6SCxDQUFDLEVBQUFpSSxNQUFBLENBQUtMLElBQUksRUFBQztFQUNsRCxDQUFDLENBQUM7RUFFRixJQUFNTSxjQUFjLEdBQUcsSUFBQXRDLDRCQUFnQixFQUFDLFlBQXVCO0lBQUEsSUFBQXVDLEdBQUE7SUN0RHpELElBQUlWLEVBQUUsRUFBRUMsRUFBRTtJRHVEZFAsVUFBVSxDQUFBLENBQUU7SUFBQyxTQUFBaUIsS0FBQSxHQUFBN0YsU0FBQSxDQUFBQyxNQUFBLEVBRDZCb0YsSUFBZSxPQUFBQyxLQUFBLENBQUFPLEtBQUEsR0FBQUMsS0FBQSxNQUFBQSxLQUFBLEdBQUFELEtBQUEsRUFBQUMsS0FBQTtNQUFmVCxJQUFlLENBQUFTLEtBQUEsSUFBQTlGLFNBQUEsQ0FBQThGLEtBQUE7SUFBQTtJQUV6RCxDQUFBWCxFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBSixpQkFBaUIsQ0FBQ1UsT0FBTyxFQUFDTyxNQUFNLE1BQUEsSUFBQSxJQUFBWixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUEsQ0FBQVMsR0FBQSxHQUFBVCxFQUFBLEVBQUExRyxJQUFBLENBQUFvQixLQUFBLENBQUErRixHQUFBLEdBQUFWLEVBQUEsRUFBQVEsTUFBQSxDQUFNTCxJQUFJLEVBQUM7RUFDN0MsQ0FBQyxDQUFDO0VBRUY7RUFDQTtFQUNBO0VBQ0EsSUFBQVcsZ0JBQVMsRUFBQyxZQUFLO0lBQ2IsSUFBSXZGLElBQUksSUFBSVksYUFBYSxFQUFFQSxhQUFhLENBQUNaLElBQUksRUFBRUUsS0FBSyxDQUFDO0VBQ3ZELENBQUMsQ0FBQztFQUVGLElBQUFxRixnQkFBUyxFQUFDLFlBQUs7SUFDYixPQUFPLFlBQUs7TUFDVixJQUFJdkYsSUFBSSxJQUFJYSxlQUFlLEVBQUVBLGVBQWUsQ0FBQ2IsSUFBSSxDQUFDO0lBQ3BELENBQUM7RUFDSCxDQUFDLEVBQUUsQ0FBQ0EsSUFBSSxDQUFDLENBQUM7RUFFVixJQUFNd0YsV0FBVyxHQUFHLFNBQWRBLFdBQVdBLENBQUlDLEtBQWdCLEVBQWU7SUN0RDlDLElBQUloQixFQUFFO0lEdURWLElBQUksQ0FBQ3pFLElBQUksSUFBSSxlQUFDMEYsaUJBQUssQ0FBQ0MsY0FBYyxDQUFDRixLQUFLLENBQUMsRUFBRSxPQUFPQSxLQUFLO0lBRXZELElBQU1HLFVBQVUsR0FBR0gsS0FBSyxDQUFDSSxLQUFnQztJQUN6RCxJQUFNQyxXQUFXLEdBQUcsQ0FBQXJCLEVBQUEsR0FBQ2dCLEtBQUssQ0FBQ00sSUFBaUMsTUFBQSxJQUFBLElBQUF0QixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRXFCLFdBQVc7SUFFekUsSUFBTUUsZUFBZSxHQUNuQkMsK0JBQW9CLENBQUNwRSxRQUFRLENBQUNpRSxXQUFrRCxDQUFDLElBQ2pGRixVQUFVLENBQUNNLFdBQVcsS0FBS3pHLFNBQVMsSUFDcENtRyxVQUFVLENBQUNuSCxLQUFLLEtBQUtnQixTQUFTLElBQzlCbUcsVUFBVSxDQUFDdEcsYUFBYSxDQUFDLEtBQUtHLFNBQVM7SUFFekMsSUFBSSxDQUFDdUcsZUFBZSxFQUFFLE9BQU9QLEtBQUs7SUFFbEMsSUFBSVUsU0FBUyxHQUFHN0QsVUFBVTtJQUMxQixJQUFJNkQsU0FBUyxLQUFLLElBQUksSUFBSUEsU0FBUyxLQUFLMUcsU0FBUyxFQUFFO01BQ2pELElBQUlILGFBQWEsS0FBSyxTQUFTLElBQUksQ0FBQyxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUN1QyxRQUFRLENBQUNpRSxXQUFXLElBQUksRUFBRSxDQUFDLEVBQUU7UUFDckZLLFNBQVMsR0FBRyxLQUFLO01BQ25CLENBQUMsTUFBTSxJQUNMQyxvQ0FBeUIsQ0FBQ3ZFLFFBQVEsQ0FBQ2lFLFdBQVcsSUFBSSxFQUFFLENBQUMsSUFDckRGLFVBQVUsQ0FBQ00sV0FBVyxLQUFLekcsU0FBUyxFQUNwQztRQUNBMEcsU0FBUyxHQUFHLEVBQUU7TUFDaEI7SUFDRixDQUFDLE1BQU0sSUFDTEMsb0NBQXlCLENBQUN2RSxRQUFRLENBQUNpRSxXQUFXLElBQUksRUFBRSxDQUFDLElBQ3JELE9BQU9LLFNBQVMsS0FBSyxRQUFRLElBQzdCLE9BQU9BLFNBQVMsS0FBSyxRQUFRLEVBQzdCO01BQ0FBLFNBQVMsR0FBRyxFQUFFO0lBQ2hCO0lBRUE5QixpQkFBaUIsQ0FBQ1UsT0FBTyxHQUFHO01BQzFCQyxRQUFRLEVBQ04sT0FBT1ksVUFBVSxDQUFDWixRQUFRLEtBQUssVUFBVSxHQUNwQ1ksVUFBVSxDQUFDWixRQUFzQyxHQUNsRHZGLFNBQVM7TUFDZjZGLE1BQU0sRUFDSixPQUFPTSxVQUFVLENBQUNOLE1BQU0sS0FBSyxVQUFVLEdBQ2xDTSxVQUFVLENBQUNOLE1BQW9DLEdBQ2hEN0Y7SUM3REosQ0Q4REg7SUFFRCxJQUFNNEcsYUFBYSxHQUFBMUksTUFBQSxDQUFBc0csTUFBQSxDQUFBdEcsTUFBQSxDQUFBc0csTUFBQSxDQUFBdEcsTUFBQSxDQUFBc0csTUFBQSxLQUFBQyxnQkFBQSxpQkFBQUEsZ0JBQUEsaUJBQUFBLGdCQUFBLGlCQUNoQjVFLGFBQWEsRUFBRzZHLFNBQVMsZUFDaEI1QixnQkFBZ0IsYUFDbEJXLGNBQWMsR0FDbEJ4QyxXQUFXLEtBQUssT0FBTyxJQUFJO01BQUU0RCxNQUFNLEVBQUU7SUFBTyxDQUFHLENBQUEsRUFHL0NwRixZQUFZLElBQUkwRSxVQUFVLENBQUN6RSxRQUFRLEtBQUsxQixTQUFTLElBQUk7TUFBRTBCLFFBQVEsRUFBRTtJQUFJLENBQUcsQ0FBQSxFQUd4RW9GLHFDQUEwQixDQUFDMUUsUUFBUSxDQUFDaUUsV0FBVyxJQUFJLEVBQUUsQ0FBQyxJQUN4REYsVUFBVSxDQUFDOUUsSUFBSSxLQUFLckIsU0FBUyxJQUFJO01BQUVxQixJQUFJLEVBQUpBO0lBQUksQ0FBRyxDQUM3QztJQUVELG9CQUFPNEUsaUJBQUssQ0FBQ2MsWUFBWSxDQUFDZixLQUFLLEVBQUVZLGFBQWEsQ0FBQztFQUNqRCxDQUFDO0VBRUQsT0FBTztJQUNML0QsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZyQyxjQUFjLEVBQUVzQyxXQUFXO0lBQzNCcEIsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZSLElBQUksRUFBSkEsSUFBSTtJQUNKQyxVQUFVLEVBQVZBLFVBQVU7SUFDVkMsWUFBWSxFQUFaQSxZQUFZO0lBQ1p3RSxXQUFXLEVBQVhBO0VDM0VBLENENEVEO0FBQ0giLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0uanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsInZhciBfX2F3YWl0ZXIgPSAodGhpcyAmJiB0aGlzLl9fYXdhaXRlcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xuICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxuICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XG4gICAgfSk7XG59O1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB1c2VEZWJvdW5jZWRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZURlYm91bmNlZENhbGxiYWNrJztcbmltcG9ydCB7IHVzZVByb0Zvcm1TdGFibGUsIHVzZVByb0Zvcm1TdG9yZSB9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgdXNlU3RvcmVTZWxlY3Rvciwgc2hhbGxvd0VxdWFsQXJyYXlzIH0gZnJvbSAnLi9mb3JtU3RvcmUnO1xuaW1wb3J0IHsgZ2V0TmVzdGVkVmFsdWUgfSBmcm9tICcuL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBmaWx0ZXJSdWxlc0J5VHJpZ2dlciB9IGZyb20gJy4vcnVuUnVsZXMnO1xuaW1wb3J0IHsgRk9STV9DT01QT05FTlRfTkFNRVMsIFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTLCBURVhUX0xJS0VfQ09NUE9ORU5UX05BTUVTLCB9IGZyb20gJy4vY29uc3RhbnRzJztcbi8qKlxuICogTm9ybWFsaXNlIGEgY2hhbmdlLWhhbmRsZXIgYXJndW1lbnQ6IHVud3JhcCBgZS50YXJnZXRbdmFsdWVQcm9wTmFtZV1gIC9cbiAqIGBlW3ZhbHVlUHJvcE5hbWVdYCAoZS5nLiBDaGVja2JveCBlbWl0cyBgeyBjaGVja2VkIH1gKSwgZWxzZSBgZS50YXJnZXQudmFsdWVgLFxuICogZWxzZSBwYXNzIHRoZSB2YWx1ZSB0aHJvdWdoIChlLmcuIFN3aXRjaCBlbWl0cyB0aGUgYm9vbGVhbiBkaXJlY3RseSkuXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RFdmVudFZhbHVlKGUsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnKSB7XG4gICAgaWYgKGUgPT09IG51bGwgfHwgdHlwZW9mIGUgIT09ICdvYmplY3QnKVxuICAgICAgICByZXR1cm4gZTtcbiAgICBjb25zdCBldmVudCA9IGU7XG4gICAgaWYgKHZhbHVlUHJvcE5hbWUgIT09ICd2YWx1ZScgJiYgdmFsdWVQcm9wTmFtZSBpbiBldmVudCkge1xuICAgICAgICByZXR1cm4gZXZlbnRbdmFsdWVQcm9wTmFtZV07XG4gICAgfVxuICAgIGlmICgndGFyZ2V0JyBpbiBldmVudCAmJiBldmVudC50YXJnZXQgJiYgdHlwZW9mIGV2ZW50LnRhcmdldCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0O1xuICAgICAgICBpZiAodmFsdWVQcm9wTmFtZSBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0W3ZhbHVlUHJvcE5hbWVdO1xuICAgICAgICBpZiAoJ3ZhbHVlJyBpbiB0YXJnZXQpXG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0LnZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbn1cbmV4cG9ydCBmdW5jdGlvbiB1c2VGb3JtSXRlbShvcHRpb25zKSB7XG4gICAgY29uc3QgeyBuYW1lLCBydWxlcyA9IFtdLCByZXF1aXJlZCwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnLCB2YWxpZGF0ZURlYm91bmNlLCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCB7IHNldEZpZWxkVmFsdWUsIHZhbGlkYXRlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYywgcmVnaXN0ZXJGaWVsZCwgdW5yZWdpc3RlckZpZWxkLCBzaXplLCBsYWJlbEFsaWduLCByZXF1aXJlZE1hcmssIHZhbGlkYXRlVHJpZ2dlciwgZGlzYWJsZWQ6IGZvcm1EaXNhYmxlZCwgfSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSBCb29sZWFuKHJlcXVpcmVkIHx8IHJ1bGVzLnNvbWUoKHJ1bGUpID0+IHJ1bGUucmVxdWlyZWQpKTtcbiAgICAvLyBQZXItZmllbGQgc3RvcmUgc3Vic2NyaXB0aW9uOiB0aGlzIGl0ZW0gcmUtcmVuZGVycyBPTkxZIHdoZW4gaXRzIG93blxuICAgIC8vIHZhbHVlL2Vycm9yL3dhcm5pbmcvdmFsaWRhdGluZyBzbGljZSBjaGFuZ2VzIOKAlCB0eXBpbmcgaW4gYSBzaWJsaW5nIGZpZWxkXG4gICAgLy8gcHJvZHVjZXMgYW4gZXF1YWwgdHVwbGUgYW5kIHRoZSBzZWxlY3RvciBzaG9ydC1jaXJjdWl0cy5cbiAgICAvLyBFcnJvcnMvd2FybmluZ3MgYXJlIHN0b3JlZCBGTEFULCBrZXllZCBieSB0aGUgZnVsbCAocG9zc2libHkgZG90dGVkKSBmaWVsZFxuICAgIC8vIG5hbWUg4oCUIG5ldmVyIHJlc29sdmUgdGhlbSBhcyBuZXN0ZWQgcGF0aHMgb3IgZG90dGVkIG5hbWVzIHdvdWxkIG1pc3MuXG4gICAgY29uc3QgW2ZpZWxkVmFsdWUsIGZpZWxkRXJyb3IsIGZpZWxkV2FybmluZywgZmllbGRWYWxpZGF0aW5nXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gW1xuICAgICAgICBuYW1lXG4gICAgICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpIDogc3RhdGUudmFsdWVzW25hbWVdKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIG5hbWUgPyBzdGF0ZS5lcnJvcnNbbmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgIG5hbWUgPyBzdGF0ZS53YXJuaW5nc1tuYW1lXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbmFtZSA/IChzdGF0ZS52YWxpZGF0aW5nW25hbWVdIHx8IGZhbHNlKSA6IGZhbHNlLFxuICAgIF0sIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3QgZmluYWxTdGF0dXMgPSB2YWxpZGF0ZVN0YXR1cyB8fCAoZmllbGRFcnJvciA/ICdlcnJvcicgOiBmaWVsZFdhcm5pbmcgPyAnd2FybmluZycgOiB1bmRlZmluZWQpO1xuICAgIC8vIFJ1biBvbmx5IHRoZSBydWxlcyBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiBpbnRlcmFjdGl2ZSB0cmlnZ2VyOyBydWxlc1xuICAgIC8vIHdpdGhvdXQgYW4gZXhwbGljaXQgdmFsaWRhdGVUcmlnZ2VyIGZvbGxvdyB0aGUgZm9ybS1sZXZlbCBzZXR0aW5nLlxuICAgIGNvbnN0IHJ1blZhbGlkYXRlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUsIHRyaWdnZXIpID0+IHtcbiAgICAgICAgaWYgKCFuYW1lIHx8IHJ1bGVzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCBhcHBsaWNhYmxlID0gZmlsdGVyUnVsZXNCeVRyaWdnZXIocnVsZXMsIHRyaWdnZXIsIHZhbGlkYXRlVHJpZ2dlcik7XG4gICAgICAgIGlmIChhcHBsaWNhYmxlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICByZXR1cm4gdmFsaWRhdGVGaWVsZChuYW1lLCBhcHBsaWNhYmxlLCB2YWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgcnVuVmFsaWRhdGVBc3luYyA9IHVzZUV2ZW50Q2FsbGJhY2soKHZhbHVlLCB0cmlnZ2VyKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGlmICghbmFtZSB8fCBydWxlcy5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBmaWx0ZXJSdWxlc0J5VHJpZ2dlcihydWxlcywgdHJpZ2dlciwgdmFsaWRhdGVUcmlnZ2VyKTtcbiAgICAgICAgaWYgKGFwcGxpY2FibGUubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB5aWVsZCB2YWxpZGF0ZUZpZWxkQXN5bmMobmFtZSwgdmFsdWUsIGFwcGxpY2FibGUpO1xuICAgIH0pKTtcbiAgICBjb25zdCB7IHJ1bjogZGVib3VuY2VkVmFsaWRhdGUgfSA9IHVzZURlYm91bmNlZENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgfSwgdmFsaWRhdGVEZWJvdW5jZSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgLy8gdG91Y2hlZCBpcyBzZXQgYnkgdGhlIHVzZXIgY2hhbmdlIHRyaWdnZXIg4oCUXG4gICAgICAgICAgICAvLyBwcm9ncmFtbWF0aWMgc2V0RmllbGRzVmFsdWUgZG9lcyBub3QgbWFyayBmaWVsZHMgdG91Y2hlZC5cbiAgICAgICAgICAgIGNvbnN0IHRvdWNoZWQgPSBzdG9yZS5nZXRTdGF0ZSgpLnRvdWNoZWQ7XG4gICAgICAgICAgICBpZiAoIXRvdWNoZWRbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICBzdG9yZS5zZXRTdGF0ZSh7IHRvdWNoZWQ6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdG91Y2hlZCksIHsgW25hbWVdOiB0cnVlIH0pIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHZhbGlkYXRlRGVib3VuY2UgJiYgdmFsaWRhdGVEZWJvdW5jZSA+IDApIHtcbiAgICAgICAgICAgICAgICBkZWJvdW5jZWRWYWxpZGF0ZSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBydW5WYWxpZGF0ZSh2YWx1ZSwgJ29uQ2hhbmdlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIC8vIFJlYWQgdGhlIExJVkUgdmFsdWUgZnJvbSB0aGUgc3RvcmUg4oCUIGEgY2hhbmdlIGNvbW1pdHRlZCBpbiB0aGUgc2FtZVxuICAgICAgICAvLyB0aWNrIChjaGFuZ2Ug4oaSIGltbWVkaWF0ZSBibHVyKSBtdXN0IGJlIHZhbGlkYXRlZCwgbm90IHRoZSByZW5kZXItdGltZVxuICAgICAgICAvLyBzbmFwc2hvdC5cbiAgICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gbmFtZVxuICAgICAgICAgICAgPyAobmFtZS5pbmNsdWRlcygnLicpXG4gICAgICAgICAgICAgICAgPyBnZXROZXN0ZWRWYWx1ZShzdG9yZS5nZXRTdGF0ZSgpLnZhbHVlcywgbmFtZSlcbiAgICAgICAgICAgICAgICA6IHN0b3JlLmdldFN0YXRlKCkudmFsdWVzW25hbWVdKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIHJ1blZhbGlkYXRlQXN5bmMoY3VycmVudFZhbHVlLCAnb25CbHVyJyk7XG4gICAgfSk7XG4gICAgLy8gTGF0ZXN0IGNoaWxkLXByb3ZpZGVkIGNhbGxiYWNrcywgY2FwdHVyZWQgYXQgaW5qZWN0RmllbGQgdGltZS4gVGhlIFNUQUJMRVxuICAgIC8vIGluamVjdGVkIGhhbmRsZXJzIGJlbG93IGRlbGVnYXRlIHRocm91Z2ggdGhpcyByZWYgaW5zdGVhZCBvZiBiZWluZ1xuICAgIC8vIHJlY3JlYXRlZCBwZXIgcmVuZGVyIOKAlCBzbyBhIG1lbW9pemVkIGZpZWxkIGNvbXBvbmVudCBzZWVzIHNoYWxsb3ctZXF1YWxcbiAgICAvLyBwcm9wcyBhY3Jvc3MgcmVuZGVycyBhbmQgY2FuIGJhaWwgb3V0IHdoaWxlIGFub3RoZXIgZmllbGQgaXMgdHlwaW5nLlxuICAgIGNvbnN0IGNoaWxkQ2FsbGJhY2tzUmVmID0gdXNlUmVmKHt9KTtcbiAgICBjb25zdCBpbmplY3RlZE9uQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygoZSwgLi4uYXJncykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBoYW5kbGVDaGFuZ2UoZXh0cmFjdEV2ZW50VmFsdWUoZSwgdmFsdWVQcm9wTmFtZSkpO1xuICAgICAgICAoX2IgPSAoX2EgPSBjaGlsZENhbGxiYWNrc1JlZi5jdXJyZW50KS5vbkNoYW5nZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIGUsIC4uLmFyZ3MpO1xuICAgIH0pO1xuICAgIGNvbnN0IGluamVjdGVkT25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoLi4uYXJncykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBoYW5kbGVCbHVyKCk7XG4gICAgICAgIChfYiA9IChfYSA9IGNoaWxkQ2FsbGJhY2tzUmVmLmN1cnJlbnQpLm9uQmx1cikgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNhbGwoX2EsIC4uLmFyZ3MpO1xuICAgIH0pO1xuICAgIC8vIEtlZXAgdGhlIHJlZ2lzdHJ5IGluIHN5bmMgd2l0aCB0aGUgTEFURVNUIHJ1bGVzIGV2ZXJ5IHJlbmRlciAocmVnaXN0cmF0aW9uXG4gICAgLy8gaXMgYSBjaGVhcCByZWYgbXV0YXRpb24pOiBkeW5hbWljIHJ1bGVzIChlLmcuIHJlcXVpcmVkIHRvZ2dsZWQgYnkgYW5vdGhlclxuICAgIC8vIGZpZWxkKSBtdXN0IGJlIHZpc2libGUgdG8gc3VibWl0LXRpbWUgdmFsaWRhdGlvbiwgbm90IGp1c3Qgb25DaGFuZ2UuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG5hbWUgJiYgcmVnaXN0ZXJGaWVsZClcbiAgICAgICAgICAgIHJlZ2lzdGVyRmllbGQobmFtZSwgcnVsZXMpO1xuICAgIH0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAobmFtZSAmJiB1bnJlZ2lzdGVyRmllbGQpXG4gICAgICAgICAgICAgICAgdW5yZWdpc3RlckZpZWxkKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lXSk7XG4gICAgY29uc3QgaW5qZWN0RmllbGQgPSAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY29uc3QgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChfYSA9IGNoaWxkLnR5cGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwbGF5TmFtZTtcbiAgICAgICAgY29uc3QgaXNGb3JtQ29tcG9uZW50ID0gRk9STV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUpIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wc1t2YWx1ZVByb3BOYW1lXSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIWlzRm9ybUNvbXBvbmVudClcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgbGV0IHNhZmVWYWx1ZSA9IGZpZWxkVmFsdWU7XG4gICAgICAgIGlmIChzYWZlVmFsdWUgPT09IG51bGwgfHwgc2FmZVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZVByb3BOYW1lID09PSAnY2hlY2tlZCcgfHwgWydDaGVja2JveCcsICdTd2l0Y2gnXS5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpIHx8XG4gICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0eXBlb2YgY2hpbGRQcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gY2hpbGRQcm9wcy5vbkNoYW5nZVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgb25CbHVyOiB0eXBlb2YgY2hpbGRQcm9wcy5vbkJsdXIgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IGNoaWxkUHJvcHMub25CbHVyXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGluamVjdGVkUHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IFt2YWx1ZVByb3BOYW1lXTogc2FmZVZhbHVlLCBvbkNoYW5nZTogaW5qZWN0ZWRPbkNoYW5nZSwgb25CbHVyOiBpbmplY3RlZE9uQmx1ciB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpLCAoZm9ybURpc2FibGVkICYmIGNoaWxkUHJvcHMuZGlzYWJsZWQgPT09IHVuZGVmaW5lZCAmJiB7IGRpc2FibGVkOiB0cnVlIH0pKSwgKFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSAmJlxuICAgICAgICAgICAgY2hpbGRQcm9wcy5zaXplID09PSB1bmRlZmluZWQgJiYgeyBzaXplIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICBmaWVsZFdhcm5pbmcsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICByZXF1aXJlZE1hcmssXG4gICAgICAgIGluamVjdEZpZWxkLFxuICAgIH07XG59Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
272
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdXNlRm9ybUl0ZW0udHMiLCJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS91c2VGb3JtSXRlbS5qcyJdLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRGVib3VuY2VkQ2FsbGJhY2syIiwiX2NvbnRleHQyIiwiX2Zvcm1TdG9yZSIsIl9wYXRoVXRpbHMiLCJfcnVuUnVsZXMiLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fYXdhaXRlciIsInRoaXNBcmciLCJfYXJndW1lbnRzIiwiUCIsImdlbmVyYXRvciIsImFkb3B0IiwidmFsdWUiLCJyZXNvbHZlIiwiUHJvbWlzZSIsInJlamVjdCIsImZ1bGZpbGxlZCIsInN0ZXAiLCJuZXh0IiwicmVqZWN0ZWQiLCJyZXN1bHQiLCJkb25lIiwidGhlbiIsImFwcGx5IiwiZXh0cmFjdEV2ZW50VmFsdWUiLCJ2YWx1ZVByb3BOYW1lIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiX3R5cGVvZjIiLCJldmVudCIsInRhcmdldCIsInVzZUZvcm1JdGVtIiwib3B0aW9ucyIsIl90aGlzIiwibmFtZSIsIl9vcHRpb25zJHJ1bGVzIiwicnVsZXMiLCJ2YWxpZGF0ZVN0YXR1cyIsIl9vcHRpb25zJHZhbHVlUHJvcE5hbSIsInZhbGlkYXRlRGVib3VuY2UiLCJpdGVtVmFsaWRhdGVUcmlnZ2VyIiwidmFsaWRhdGVUcmlnZ2VyIiwiX3VzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RhYmxlIiwiZm9ybUluc3RhbmNlIiwic2V0RmllbGRWYWx1ZSIsInNldEZpZWxkRXJyb3IiLCJzZXRGaWVsZFdhcm5pbmciLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWRhdGVGaWVsZEFzeW5jIiwicmVnaXN0ZXJGaWVsZCIsInJldGFpbkZpZWxkIiwicmVsZWFzZUZpZWxkIiwic2l6ZSIsImxhYmVsQWxpZ24iLCJmb3JtVmFsaWRhdGVUcmlnZ2VyIiwiZm9ybURpc2FibGVkIiwiZGlzYWJsZWQiLCJzdG9yZSIsInVzZVByb0Zvcm1TdG9yZSIsImFjdGl2ZVRyaWdnZXJzIiwibm9ybWFsaXplVHJpZ2dlcnMiLCJfdXNlU3RvcmVTZWxlY3RvciIsInVzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsImluY2x1ZGVzIiwiZ2V0TmVzdGVkVmFsdWUiLCJ2YWx1ZXMiLCJlcnJvcnMiLCJ3YXJuaW5ncyIsInZhbGlkYXRpbmciLCJzaGFsbG93RXF1YWxBcnJheXMiLCJfdXNlU3RvcmVTZWxlY3RvcjIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWVsZFZhbHVlIiwiZmllbGRFcnJvciIsImZpZWxkV2FybmluZyIsImZpZWxkVmFsaWRhdGluZyIsImZpbmFsU3RhdHVzIiwicnVuVmFsaWRhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwidHJpZ2dlciIsInJlc29sdmVkIiwicmVzb2x2ZVJ1bGVzIiwiZ2V0U3RhdGUiLCJhcHBsaWNhYmxlIiwiZmlsdGVyUnVsZXNCeVRyaWdnZXIiLCJydW5WYWxpZGF0ZUFzeW5jIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUiLCJ3cmFwIiwiX2NvbnRleHQiLCJwcmV2IiwiYWJydXB0Iiwic3RvcCIsIl91c2VEZWJvdW5jZWRDYWxsYmFjayIsInVzZURlYm91bmNlZENhbGxiYWNrIiwiZGVib3VuY2VkVmFsaWRhdGUiLCJydW4iLCJoYW5kbGVDaGFuZ2UiLCJ0b3VjaGVkIiwic2V0U3RhdGUiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkyIiwiaGFuZGxlQmx1ciIsImN1cnJlbnRWYWx1ZSIsImNoaWxkQ2FsbGJhY2tzUmVmIiwidXNlUmVmIiwiaW5qZWN0ZWRPbkNoYW5nZSIsIl9iMiIsIl9hIiwiX2IiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImN1cnJlbnQiLCJvbkNoYW5nZSIsImNvbmNhdCIsImluamVjdGVkT25CbHVyIiwiX2IzIiwiX2xlbjIiLCJfa2V5MiIsIm9uQmx1ciIsInVzZUVmZmVjdCIsImluamVjdEZpZWxkIiwiY2hpbGQiLCJSZWFjdCIsImlzVmFsaWRFbGVtZW50IiwiY2hpbGRQcm9wcyIsInByb3BzIiwiZGlzcGxheU5hbWUiLCJ0eXBlIiwiaXNGb3JtQ29tcG9uZW50IiwiRk9STV9DT01QT05FTlRfTkFNRVMiLCJwbGFjZWhvbGRlciIsInNhZmVWYWx1ZSIsIlRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMiLCJpbmplY3RlZFByb3BzIiwic3RhdHVzIiwiU0laRV9BV0FSRV9DT01QT05FTlRfTkFNRVMiLCJjbG9uZUVsZW1lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxzQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sU0FBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBSXFCLFNBQUFTLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxD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Q0FBRyxDQUM3QztJQUVELG9CQUFPMkUsaUJBQUssQ0FBQ2MsWUFBWSxDQUFDZixLQUFLLEVBQUVZLGFBQWEsQ0FBQztFQUNqRCxDQUFDO0VBRUQsT0FBTztJQUNMakUsVUFBVSxFQUFWQSxVQUFVO0lBQ1ZDLFVBQVUsRUFBVkEsVUFBVTtJQUNWQyxZQUFZLEVBQVpBLFlBQVk7SUFDWkMsZUFBZSxFQUFmQSxlQUFlO0lBQ2Z4QyxjQUFjLEVBQUV5QyxXQUFXO0lBQzNCekIsSUFBSSxFQUFKQSxJQUFJO0lBQ0pDLFVBQVUsRUFBVkEsVUFBVTtJQUNWd0UsV0FBVyxFQUFYQTtFQ3RGQSxDRHVGRDtBQUNIIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9jb3JlL3VzZUZvcm1JdGVtLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJ2YXIgX19hd2FpdGVyID0gKHRoaXMgJiYgdGhpcy5fX2F3YWl0ZXIpIHx8IGZ1bmN0aW9uICh0aGlzQXJnLCBfYXJndW1lbnRzLCBQLCBnZW5lcmF0b3IpIHtcbiAgICBmdW5jdGlvbiBhZG9wdCh2YWx1ZSkgeyByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBQID8gdmFsdWUgOiBuZXcgUChmdW5jdGlvbiAocmVzb2x2ZSkgeyByZXNvbHZlKHZhbHVlKTsgfSk7IH1cbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgZnVuY3Rpb24gZnVsZmlsbGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yLm5leHQodmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxuICAgICAgICBmdW5jdGlvbiByZWplY3RlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvcltcInRocm93XCJdKHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cbiAgICAgICAgc3RlcCgoZ2VuZXJhdG9yID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pKS5uZXh0KCkpO1xuICAgIH0pO1xufTtcbmltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgdXNlRGVib3VuY2VkQ2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VEZWJvdW5jZWRDYWxsYmFjayc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtU3RhYmxlLCB1c2VQcm9Gb3JtU3RvcmUgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IsIHNoYWxsb3dFcXVhbEFycmF5cyB9IGZyb20gJy4vZm9ybVN0b3JlJztcbmltcG9ydCB7IGdldE5lc3RlZFZhbHVlIH0gZnJvbSAnLi9wYXRoVXRpbHMnO1xuaW1wb3J0IHsgZmlsdGVyUnVsZXNCeVRyaWdnZXIsIG5vcm1hbGl6ZVRyaWdnZXJzLCByZXNvbHZlUnVsZXMgfSBmcm9tICcuL3J1blJ1bGVzJztcbmltcG9ydCB7IEZPUk1fQ09NUE9ORU5UX05BTUVTLCBTSVpFX0FXQVJFX0NPTVBPTkVOVF9OQU1FUywgVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUywgfSBmcm9tICcuL2NvbnN0YW50cyc7XG4vKipcbiAqIE5vcm1hbGlzZSBhIGNoYW5nZS1oYW5kbGVyIGFyZ3VtZW50OiB1bndyYXAgYGUudGFyZ2V0W3ZhbHVlUHJvcE5hbWVdYCAvXG4gKiBgZVt2YWx1ZVByb3BOYW1lXWAgKGUuZy4gQ2hlY2tib3ggZW1pdHMgYHsgY2hlY2tlZCB9YCksIGVsc2UgYGUudGFyZ2V0LnZhbHVlYCxcbiAqIGVsc2UgcGFzcyB0aGUgdmFsdWUgdGhyb3VnaCAoZS5nLiBTd2l0Y2ggZW1pdHMgdGhlIGJvb2xlYW4gZGlyZWN0bHkpLlxuICovXG5mdW5jdGlvbiBleHRyYWN0RXZlbnRWYWx1ZShlLCB2YWx1ZVByb3BOYW1lID0gJ3ZhbHVlJykge1xuICAgIGlmIChlID09PSBudWxsIHx8IHR5cGVvZiBlICE9PSAnb2JqZWN0JylcbiAgICAgICAgcmV0dXJuIGU7XG4gICAgY29uc3QgZXZlbnQgPSBlO1xuICAgIGlmICh2YWx1ZVByb3BOYW1lICE9PSAndmFsdWUnICYmIHZhbHVlUHJvcE5hbWUgaW4gZXZlbnQpIHtcbiAgICAgICAgcmV0dXJuIGV2ZW50W3ZhbHVlUHJvcE5hbWVdO1xuICAgIH1cbiAgICBpZiAoJ3RhcmdldCcgaW4gZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICYmIHR5cGVvZiBldmVudC50YXJnZXQgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldDtcbiAgICAgICAgaWYgKHZhbHVlUHJvcE5hbWUgaW4gdGFyZ2V0KVxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldFt2YWx1ZVByb3BOYW1lXTtcbiAgICAgICAgaWYgKCd2YWx1ZScgaW4gdGFyZ2V0KVxuICAgICAgICAgICAgcmV0dXJuIHRhcmdldC52YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGU7XG59XG5leHBvcnQgZnVuY3Rpb24gdXNlRm9ybUl0ZW0ob3B0aW9ucykge1xuICAgIGNvbnN0IHsgbmFtZSwgcnVsZXMgPSBbXSwgdmFsaWRhdGVTdGF0dXMsIHZhbHVlUHJvcE5hbWUgPSAndmFsdWUnLCB2YWxpZGF0ZURlYm91bmNlLCB2YWxpZGF0ZVRyaWdnZXI6IGl0ZW1WYWxpZGF0ZVRyaWdnZXIsIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHsgZm9ybUluc3RhbmNlLCBzZXRGaWVsZFZhbHVlLCBzZXRGaWVsZEVycm9yLCBzZXRGaWVsZFdhcm5pbmcsIHZhbGlkYXRlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYywgcmVnaXN0ZXJGaWVsZCwgcmV0YWluRmllbGQsIHJlbGVhc2VGaWVsZCwgc2l6ZSwgbGFiZWxBbGlnbiwgdmFsaWRhdGVUcmlnZ2VyOiBmb3JtVmFsaWRhdGVUcmlnZ2VyLCBkaXNhYmxlZDogZm9ybURpc2FibGVkLCB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgLy8gVGhlIGl0ZW0tbGV2ZWwgdmFsaWRhdGVUcmlnZ2VyIG92ZXJyaWRlcyB0aGUgZm9ybS1sZXZlbCBvbmU7XG4gICAgLy8gdGhlIHJlc3VsdCBpcyB0aGUgc2V0IG9mIGludGVyYWN0aXZlIGV2ZW50cyB0aGF0IHZhbGlkYXRlIHRoaXMgZmllbGQuXG4gICAgY29uc3QgYWN0aXZlVHJpZ2dlcnMgPSBub3JtYWxpemVUcmlnZ2VycyhpdGVtVmFsaWRhdGVUcmlnZ2VyLCBmb3JtVmFsaWRhdGVUcmlnZ2VyKTtcbiAgICAvLyBQZXItZmllbGQgc3RvcmUgc3Vic2NyaXB0aW9uOiB0aGlzIGl0ZW0gcmUtcmVuZGVycyBPTkxZIHdoZW4gaXRzIG93blxuICAgIC8vIHZhbHVlL2Vycm9yL3dhcm5pbmcvdmFsaWRhdGluZyBzbGljZSBjaGFuZ2VzIOKAlCB0eXBpbmcgaW4gYSBzaWJsaW5nIGZpZWxkXG4gICAgLy8gcHJvZHVjZXMgYW4gZXF1YWwgdHVwbGUgYW5kIHRoZSBzZWxlY3RvciBzaG9ydC1jaXJjdWl0cy5cbiAgICAvLyBFcnJvcnMvd2FybmluZ3MgYXJlIHN0b3JlZCBGTEFULCBrZXllZCBieSB0aGUgZnVsbCAocG9zc2libHkgZG90dGVkKSBmaWVsZFxuICAgIC8vIG5hbWUg4oCUIG5ldmVyIHJlc29sdmUgdGhlbSBhcyBuZXN0ZWQgcGF0aHMgb3IgZG90dGVkIG5hbWVzIHdvdWxkIG1pc3MuXG4gICAgY29uc3QgW2ZpZWxkVmFsdWUsIGZpZWxkRXJyb3IsIGZpZWxkV2FybmluZywgZmllbGRWYWxpZGF0aW5nXSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gW1xuICAgICAgICBuYW1lXG4gICAgICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJykgPyBnZXROZXN0ZWRWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpIDogc3RhdGUudmFsdWVzW25hbWVdKVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIG5hbWUgPyBzdGF0ZS5lcnJvcnNbbmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgIG5hbWUgPyBzdGF0ZS53YXJuaW5nc1tuYW1lXSA6IHVuZGVmaW5lZCxcbiAgICAgICAgbmFtZSA/IChzdGF0ZS52YWxpZGF0aW5nW25hbWVdIHx8IGZhbHNlKSA6IGZhbHNlLFxuICAgIF0sIHNoYWxsb3dFcXVhbEFycmF5cyk7XG4gICAgY29uc3QgZmluYWxTdGF0dXMgPSB2YWxpZGF0ZVN0YXR1cyB8fCAoZmllbGRFcnJvciA/ICdlcnJvcicgOiBmaWVsZFdhcm5pbmcgPyAnd2FybmluZycgOiB1bmRlZmluZWQpO1xuICAgIC8vIFRyaWdnZXIgZmlsdGVyaW5nIG5lZWRzIHJlc29sdmVkIHJ1bGVzIOKAlCBhIGZ1bmN0aW9uLWZvcm0gcnVsZSdzXG4gICAgLy8gdmFsaWRhdGVUcmlnZ2VyIGlzIG9ubHkga25vd24gYWZ0ZXIgcmVzb2x2aW5nIGl0IGFnYWluc3QgdGhlIGxpdmUgdmFsdWVzLlxuICAgIGNvbnN0IHJ1blZhbGlkYXRlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUsIHRyaWdnZXIpID0+IHtcbiAgICAgICAgaWYgKCFuYW1lIHx8IHJ1bGVzLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVSdWxlcyhydWxlcywgc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMsIGZvcm1JbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBmaWx0ZXJSdWxlc0J5VHJpZ2dlcihyZXNvbHZlZCwgdHJpZ2dlciwgYWN0aXZlVHJpZ2dlcnMsIG5hbWUpO1xuICAgICAgICBpZiAoYXBwbGljYWJsZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHZhbGlkYXRlRmllbGQobmFtZSwgYXBwbGljYWJsZSwgdmFsdWUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHJ1blZhbGlkYXRlQXN5bmMgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSwgdHJpZ2dlcikgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBpZiAoIW5hbWUgfHwgcnVsZXMubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVSdWxlcyhydWxlcywgc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMsIGZvcm1JbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBmaWx0ZXJSdWxlc0J5VHJpZ2dlcihyZXNvbHZlZCwgdHJpZ2dlciwgYWN0aXZlVHJpZ2dlcnMsIG5hbWUpO1xuICAgICAgICBpZiAoYXBwbGljYWJsZS5sZW5ndGggPT09IDApXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHlpZWxkIHZhbGlkYXRlRmllbGRBc3luYyhuYW1lLCB2YWx1ZSwgYXBwbGljYWJsZSk7XG4gICAgfSkpO1xuICAgIGNvbnN0IHsgcnVuOiBkZWJvdW5jZWRWYWxpZGF0ZSB9ID0gdXNlRGVib3VuY2VkQ2FsbGJhY2soKHZhbHVlKSA9PiB7XG4gICAgICAgIHJ1blZhbGlkYXRlKHZhbHVlLCAnb25DaGFuZ2UnKTtcbiAgICB9LCB2YWxpZGF0ZURlYm91bmNlKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgc2V0RmllbGRWYWx1ZShuYW1lLCB2YWx1ZSk7XG4gICAgICAgICAgICAvLyB0b3VjaGVkIGlzIHNldCBieSB0aGUgdXNlciBjaGFuZ2UgdHJpZ2dlciDigJRcbiAgICAgICAgICAgIC8vIHByb2dyYW1tYXRpYyBzZXRGaWVsZHNWYWx1ZSBkb2VzIG5vdCBtYXJrIGZpZWxkcyB0b3VjaGVkLlxuICAgICAgICAgICAgY29uc3QgdG91Y2hlZCA9IHN0b3JlLmdldFN0YXRlKCkudG91Y2hlZDtcbiAgICAgICAgICAgIGlmICghdG91Y2hlZFtuYW1lXSkge1xuICAgICAgICAgICAgICAgIHN0b3JlLnNldFN0YXRlKHsgdG91Y2hlZDogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0b3VjaGVkKSwgeyBbbmFtZV06IHRydWUgfSkgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodmFsaWRhdGVEZWJvdW5jZSAmJiB2YWxpZGF0ZURlYm91bmNlID4gMCkge1xuICAgICAgICAgICAgICAgIGRlYm91bmNlZFZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHJ1blZhbGlkYXRlKHZhbHVlLCAnb25DaGFuZ2UnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZUJsdXIgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgLy8gUmVhZCB0aGUgTElWRSB2YWx1ZSBmcm9tIHRoZSBzdG9yZSDigJQgYSBjaGFuZ2UgY29tbWl0dGVkIGluIHRoZSBzYW1lXG4gICAgICAgIC8vIHRpY2sgKGNoYW5nZSDihpIgaW1tZWRpYXRlIGJsdXIpIG11c3QgYmUgdmFsaWRhdGVkLCBub3QgdGhlIHJlbmRlci10aW1lXG4gICAgICAgIC8vIHNuYXBzaG90LlxuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBuYW1lXG4gICAgICAgICAgICA/IChuYW1lLmluY2x1ZGVzKCcuJylcbiAgICAgICAgICAgICAgICA/IGdldE5lc3RlZFZhbHVlKHN0b3JlLmdldFN0YXRlKCkudmFsdWVzLCBuYW1lKVxuICAgICAgICAgICAgICAgIDogc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXNbbmFtZV0pXG4gICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgcnVuVmFsaWRhdGVBc3luYyhjdXJyZW50VmFsdWUsICdvbkJsdXInKTtcbiAgICB9KTtcbiAgICAvLyBMYXRlc3QgY2hpbGQtcHJvdmlkZWQgY2FsbGJhY2tzLCBjYXB0dXJlZCBhdCBpbmplY3RGaWVsZCB0aW1lLiBUaGUgU1RBQkxFXG4gICAgLy8gaW5qZWN0ZWQgaGFuZGxlcnMgYmVsb3cgZGVsZWdhdGUgdGhyb3VnaCB0aGlzIHJlZiBpbnN0ZWFkIG9mIGJlaW5nXG4gICAgLy8gcmVjcmVhdGVkIHBlciByZW5kZXIg4oCUIHNvIGEgbWVtb2l6ZWQgZmllbGQgY29tcG9uZW50IHNlZXMgc2hhbGxvdy1lcXVhbFxuICAgIC8vIHByb3BzIGFjcm9zcyByZW5kZXJzIGFuZCBjYW4gYmFpbCBvdXQgd2hpbGUgYW5vdGhlciBmaWVsZCBpcyB0eXBpbmcuXG4gICAgY29uc3QgY2hpbGRDYWxsYmFja3NSZWYgPSB1c2VSZWYoe30pO1xuICAgIGNvbnN0IGluamVjdGVkT25DaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChlLCAuLi5hcmdzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGhhbmRsZUNoYW5nZShleHRyYWN0RXZlbnRWYWx1ZShlLCB2YWx1ZVByb3BOYW1lKSk7XG4gICAgICAgIChfYiA9IChfYSA9IGNoaWxkQ2FsbGJhY2tzUmVmLmN1cnJlbnQpLm9uQ2hhbmdlKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgZSwgLi4uYXJncyk7XG4gICAgfSk7XG4gICAgY29uc3QgaW5qZWN0ZWRPbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKCguLi5hcmdzKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGhhbmRsZUJsdXIoKTtcbiAgICAgICAgKF9iID0gKF9hID0gY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCkub25CbHVyKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSwgLi4uYXJncyk7XG4gICAgfSk7XG4gICAgLy8gQSBGUkVTSCBmaWVsZCBpbnN0YW5jZSBtdXN0IG5vdCBpbmhlcml0IGVycm9yL3dhcm5pbmcgbWV0YSBzdGFtcGVkIG9uIHRoZVxuICAgIC8vIHNhbWUgbmFtZSBieSBhIHByZXZpb3VzLCBzaW5jZS11bm1vdW50ZWQgaW5zdGFuY2UgKGVycm9ycyBvdXRsaXZlXG4gICAgLy8gdW5yZWdpc3RlckZpZWxkIGJ5IGRlc2lnbiDigJQgbGlzdCByZW1hcHBpbmcgZGVwZW5kcyBvbiB0aGF0KS4gTU9VTlQgb25seTpcbiAgICAvLyBhIE5BTUUgY2hhbmdlIG11c3Qgbm90IGNsZWFyLCBvciBQcm9Gb3JtTGlzdCdzIG1ldGEgcmVtYXBwaW5nICh3aGljaFxuICAgIC8vIHJlbmFtZXMgcm93cyBwb3NpdGlvbmFsbHkpIHdvdWxkIGxvc2UgdGhlIHZlcnkgbWV0YSBpdCBqdXN0IG1vdmVkLlxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICBzZXRGaWVsZEVycm9yKG5hbWUsIG51bGwpO1xuICAgICAgICAgICAgc2V0RmllbGRXYXJuaW5nKG5hbWUsIG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIC8vIE1vdW50LW9ubHkgYnkgZGVzaWduIChzZWUgYWJvdmUpLlxuICAgIH0sIFtdKTtcbiAgICAvLyBNb3VudC1jb3VudGVkIGxpZmV0aW1lOiByZWxlYXNlRmllbGQgcmVtb3ZlcyB0aGUgcnVsZXMgb25seSB3aGVuIHRoZSBMQVNUXG4gICAgLy8gc2FtZS1uYW1lIGluc3RhbmNlIHVubW91bnRzIOKAlCBhIG1lbW8tYmFpbGVkIHN1cnZpdm9yICh3aGljaCB3b24ndFxuICAgIC8vIHJlLXJlbmRlciB0byByZS1yZWdpc3Rlcikga2VlcHMgaXRzIHJlZ2lzdHJhdGlvbiBpbnRhY3QuIERlY2xhcmVkIEJFRk9SRVxuICAgIC8vIHRoZSByZWdpc3RlciBlZmZlY3Q6IHJldGFpbiBtdXN0IHJ1biBmaXJzdCBzbyB0aGUgcmVnaXN0cmF0aW9uIGJlbG93IGlzXG4gICAgLy8gY2xhc3NpZmllZCBhcyBpbnN0YW5jZS1vd25lZC5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIW5hbWUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIHJldGFpbkZpZWxkKG5hbWUpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgcmVsZWFzZUZpZWxkKG5hbWUpO1xuICAgICAgICB9O1xuICAgIH0sIFtuYW1lXSk7XG4gICAgLy8gS2VlcCB0aGUgcmVnaXN0cnkgaW4gc3luYyB3aXRoIHRoZSBMQVRFU1QgcnVsZXMgZXZlcnkgcmVuZGVyIChyZWdpc3RyYXRpb25cbiAgICAvLyBpcyBhIGNoZWFwIHJlZiBtdXRhdGlvbik6IGR5bmFtaWMgcnVsZXMgKGUuZy4gcmVxdWlyZWQgdG9nZ2xlZCBieSBhbm90aGVyXG4gICAgLy8gZmllbGQpIG11c3QgYmUgdmlzaWJsZSB0byBzdWJtaXQtdGltZSB2YWxpZGF0aW9uLCBub3QganVzdCBvbkNoYW5nZS5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmFtZSAmJiByZWdpc3RlckZpZWxkKVxuICAgICAgICAgICAgcmVnaXN0ZXJGaWVsZChuYW1lLCBydWxlcyk7XG4gICAgfSk7XG4gICAgY29uc3QgaW5qZWN0RmllbGQgPSAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIW5hbWUgfHwgIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgY29uc3QgY2hpbGRQcm9wcyA9IGNoaWxkLnByb3BzO1xuICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IChfYSA9IGNoaWxkLnR5cGUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNwbGF5TmFtZTtcbiAgICAgICAgY29uc3QgaXNGb3JtQ29tcG9uZW50ID0gRk9STV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUpIHx8XG4gICAgICAgICAgICBjaGlsZFByb3BzLnBsYWNlaG9sZGVyICE9PSB1bmRlZmluZWQgfHxcbiAgICAgICAgICAgIGNoaWxkUHJvcHMudmFsdWUgIT09IHVuZGVmaW5lZCB8fFxuICAgICAgICAgICAgY2hpbGRQcm9wc1t2YWx1ZVByb3BOYW1lXSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICBpZiAoIWlzRm9ybUNvbXBvbmVudClcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgbGV0IHNhZmVWYWx1ZSA9IGZpZWxkVmFsdWU7XG4gICAgICAgIGlmIChzYWZlVmFsdWUgPT09IG51bGwgfHwgc2FmZVZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZVByb3BOYW1lID09PSAnY2hlY2tlZCcgfHwgWydDaGVja2JveCcsICdTd2l0Y2gnXS5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykpIHtcbiAgICAgICAgICAgICAgICBzYWZlVmFsdWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKFRFWFRfTElLRV9DT01QT05FTlRfTkFNRVMuaW5jbHVkZXMoZGlzcGxheU5hbWUgfHwgJycpIHx8XG4gICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5wbGFjZWhvbGRlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAoVEVYVF9MSUtFX0NPTVBPTkVOVF9OQU1FUy5pbmNsdWRlcyhkaXNwbGF5TmFtZSB8fCAnJykgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzYWZlVmFsdWUgIT09ICdzdHJpbmcnICYmXG4gICAgICAgICAgICB0eXBlb2Ygc2FmZVZhbHVlICE9PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgc2FmZVZhbHVlID0gJyc7XG4gICAgICAgIH1cbiAgICAgICAgY2hpbGRDYWxsYmFja3NSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICAgIG9uQ2hhbmdlOiB0eXBlb2YgY2hpbGRQcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgICAgID8gY2hpbGRQcm9wcy5vbkNoYW5nZVxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgb25CbHVyOiB0eXBlb2YgY2hpbGRQcm9wcy5vbkJsdXIgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IGNoaWxkUHJvcHMub25CbHVyXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGluamVjdGVkUHJvcHMgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7IFt2YWx1ZVByb3BOYW1lXTogc2FmZVZhbHVlLCBvbkNoYW5nZTogaW5qZWN0ZWRPbkNoYW5nZSwgb25CbHVyOiBpbmplY3RlZE9uQmx1ciB9LCAoZmluYWxTdGF0dXMgPT09ICdlcnJvcicgJiYgeyBzdGF0dXM6ICdlcnJvcicgfSkpLCAoZm9ybURpc2FibGVkICYmIGNoaWxkUHJvcHMuZGlzYWJsZWQgPT09IHVuZGVmaW5lZCAmJiB7IGRpc2FibGVkOiB0cnVlIH0pKSwgKFNJWkVfQVdBUkVfQ09NUE9ORU5UX05BTUVTLmluY2x1ZGVzKGRpc3BsYXlOYW1lIHx8ICcnKSAmJlxuICAgICAgICAgICAgY2hpbGRQcm9wcy5zaXplID09PSB1bmRlZmluZWQgJiYgeyBzaXplIH0pKTtcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwgaW5qZWN0ZWRQcm9wcyk7XG4gICAgfTtcbiAgICByZXR1cm4ge1xuICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICBmaWVsZEVycm9yLFxuICAgICAgICBmaWVsZFdhcm5pbmcsXG4gICAgICAgIGZpZWxkVmFsaWRhdGluZyxcbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IGZpbmFsU3RhdHVzLFxuICAgICAgICBzaXplLFxuICAgICAgICBsYWJlbEFsaWduLFxuICAgICAgICBpbmplY3RGaWVsZCxcbiAgICB9O1xufSJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -0,0 +1,13 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * Rejection type of `validateFields`. Submit handlers use the `instanceof`
4
+ * check to tell a VALIDATION failure (route to `onFinishFailed` with the
5
+ * field errors) apart from a consumer `onFinish` rejection (which must NOT
6
+ * be reported as a validation failure).
7
+ */
8
+ export declare class FormValidationError extends Error {
9
+ values: Record<string, unknown>;
10
+ errors: Record<string, ReactNode>;
11
+ constructor(values: Record<string, unknown>, errors: Record<string, ReactNode>);
12
+ }
13
+ export default FormValidationError;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.FormValidationError = void 0;
8
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
14
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
15
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
16
+ /**
17
+ * Rejection type of `validateFields`. Submit handlers use the `instanceof`
18
+ * check to tell a VALIDATION failure (route to `onFinishFailed` with the
19
+ * field errors) apart from a consumer `onFinish` rejection (which must NOT
20
+ * be reported as a validation failure).
21
+ */
22
+ var FormValidationError = exports.FormValidationError = /*#__PURE__*/function (_Error) {
23
+ function FormValidationError(values, errors) {
24
+ var _this;
25
+ (0, _classCallCheck2["default"])(this, FormValidationError);
26
+ _this = _callSuper(this, FormValidationError, ['Validation failed']);
27
+ _this.name = 'FormValidationError';
28
+ _this.values = values;
29
+ _this.errors = errors;
30
+ return _this;
31
+ }
32
+ (0, _inherits2["default"])(FormValidationError, _Error);
33
+ return (0, _createClass2["default"])(FormValidationError);
34
+ }(/*#__PURE__*/(0, _wrapNativeSuper2["default"])(Error));
35
+ var _default = exports["default"] = FormValidationError;
36
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdmFsaWRhdGlvbkVycm9yLnRzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL2NvcmUvdmFsaWRhdGlvbkVycm9yLmpzIl0sIm5hbWVzIjpbIkZvcm1WYWxpZGF0aW9uRXJyb3IiLCJleHBvcnRzIiwiX0Vycm9yIiwidmFsdWVzIiwiZXJyb3JzIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2NhbGxTdXBlciIsIm5hbWUiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsIl93cmFwTmF0aXZlU3VwZXIyIiwiRXJyb3IiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBRUE7QUNEQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FESEEsSUFNYUEsbUJBQW9CLEdBQUFDLE9BQUEsQ0FBQUQsbUJBQUEsMEJBQUFFLE1BQUE7RUFJL0IsU0FBQUYsb0JBQVlHLE1BQStCLEVBQUVDLE1BQWlDLEVBQUE7SUFBQSxJQUFBQyxLQUFBO0lBQUEsSUFBQUMsZ0JBQUEsbUJBQUFOLG1CQUFBO0lBQzVFSyxLQUFBLEdBQUFFLFVBQUEsT0FBQVAsbUJBQUEsR0FBTSxtQkFBbUI7SUFDekJLLEtBQUEsQ0FBS0csSUFBSSxHQUFHLHFCQUFxQjtJQUNqQ0gsS0FBQSxDQUFLRixNQUFNLEdBQUdBLE1BQU07SUFDcEJFLEtBQUEsQ0FBS0QsTUFBTSxHQUFHQSxNQUFNO0lBQUMsT0FBQUMsS0FBQTtFQUN2QjtFQUFDLElBQUFJLFVBQUEsYUFBQVQsbUJBQUEsRUFBQUUsTUFBQTtFQUFBLFdBQUFRLGFBQUEsYUFBQVYsbUJBQUE7QUFBQSxtQkFBQVcsaUJBQUEsYUFUc0NDLEtBQUs7QUFBQSxJQUFBQyxRQUFBLEdBQUFaLE9BQUEsY0FZL0JELG1CQUFtQiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vY29yZS92YWxpZGF0aW9uRXJyb3IuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIi8qKlxuICogUmVqZWN0aW9uIHR5cGUgb2YgYHZhbGlkYXRlRmllbGRzYC4gU3VibWl0IGhhbmRsZXJzIHVzZSB0aGUgYGluc3RhbmNlb2ZgXG4gKiBjaGVjayB0byB0ZWxsIGEgVkFMSURBVElPTiBmYWlsdXJlIChyb3V0ZSB0byBgb25GaW5pc2hGYWlsZWRgIHdpdGggdGhlXG4gKiBmaWVsZCBlcnJvcnMpIGFwYXJ0IGZyb20gYSBjb25zdW1lciBgb25GaW5pc2hgIHJlamVjdGlvbiAod2hpY2ggbXVzdCBOT1RcbiAqIGJlIHJlcG9ydGVkIGFzIGEgdmFsaWRhdGlvbiBmYWlsdXJlKS5cbiAqL1xuZXhwb3J0IGNsYXNzIEZvcm1WYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gICAgY29uc3RydWN0b3IodmFsdWVzLCBlcnJvcnMpIHtcbiAgICAgICAgc3VwZXIoJ1ZhbGlkYXRpb24gZmFpbGVkJyk7XG4gICAgICAgIHRoaXMubmFtZSA9ICdGb3JtVmFsaWRhdGlvbkVycm9yJztcbiAgICAgICAgdGhpcy52YWx1ZXMgPSB2YWx1ZXM7XG4gICAgICAgIHRoaXMuZXJyb3JzID0gZXJyb3JzO1xuICAgIH1cbn1cbmV4cG9ydCBkZWZhdWx0IEZvcm1WYWxpZGF0aW9uRXJyb3I7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -4,15 +4,29 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = exports.ProFormCheckboxGroup = void 0;
7
+ var _jsxRuntime = require("react/jsx-runtime");
8
+ var _react = require("react");
7
9
  var _Checkbox = require("../../Checkbox");
8
10
  var _createProFormField = require("./createProFormField");
9
11
  var _utils = require("../utils");
12
+ function renderCheckboxGroupReadonly(value, props) {
13
+ if (!Array.isArray(value)) return (0, _utils.renderTextReadonly)(value);
14
+ if (value.length === 0) return '-';
15
+ // Labels are ReactNode — join with ', ' as element children rather than
16
+ // string-concatenating (which would collapse element labels to '').
17
+ return (0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
18
+ children: value.map(function (item, index) {
19
+ var _a;
20
+ return (0, _jsxRuntime.jsxs)(_react.Fragment, {
21
+ children: [index > 0 && ', ', (_a = (0, _utils.findOptionLabel)(props === null || props === void 0 ? void 0 : props.options, item)) !== null && _a !== void 0 ? _a : String(item)]
22
+ }, index);
23
+ })
24
+ });
25
+ }
10
26
  var ProFormCheckboxGroup = exports.ProFormCheckboxGroup = (0, _createProFormField.createProFormField)({
11
27
  component: _Checkbox.CheckboxGroup,
12
- renderReadonly: function renderReadonly(value) {
13
- return (0, _utils.renderTextReadonly)(Array.isArray(value) ? value.join(', ') : value);
14
- }
28
+ renderReadonly: renderCheckboxGroupReadonly
15
29
  });
16
30
  ProFormCheckboxGroup.displayName = 'ProFormCheckboxGroup';
17
31
  var _default = exports["default"] = ProFormCheckboxGroup;
18
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtQ2hlY2tib3hHcm91cC50c3giLCJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1DaGVja2JveEdyb3VwLmpzIl0sIm5hbWVzIjpbIl9DaGVja2JveCIsInJlcXVpcmUiLCJfY3JlYXRlUHJvRm9ybUZpZWxkIiwiX3V0aWxzIiwiUHJvRm9ybUNoZWNrYm94R3JvdXAiLCJleHBvcnRzIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiY29tcG9uZW50IiwiQ2hlY2tib3hHcm91cCIsInJlbmRlclJlYWRvbmx5IiwidmFsdWUiLCJyZW5kZXJUZXh0UmVhZG9ubHkiLCJBcnJheSIsImlzQXJyYXkiLCJqb2luIiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsU0FBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsbUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUVPLElBQU1HLG9CQUFvQixHQUFBQyxPQUFBLENBQUFELG9CQUFBLEdBQUcsSUFBQUUsc0NBQWtCLEVBQXFCO0VBQ3pFQyxTQUFTLEVBQUVDLHVCQUFhO0VBQ3hCQyxjQUFjLEVBQUUsU0FBaEJBLGNBQWNBLENBQUdDLEtBQUs7SUFBQSxPQUNwQixJQUFBQyx5QkFBa0IsRUFBQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNILEtBQUssQ0FBQyxHQUFHQSxLQUFLLENBQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBR0osS0FBSyxDQUFDO0VBQUE7QUNGdkUsQ0RHQyxDQUFDO0FBRUZOLG9CQUFvQixDQUFDVyxXQUFXLEdBQUcsc0JBQXNCO0FBQUMsSUFBQUMsUUFBQSxHQUFBWCxPQUFBLGNBRTNDRCxvQkFBb0IiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtQ2hlY2tib3hHcm91cC5qcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbCwiaW1wb3J0IHsgQ2hlY2tib3hHcm91cCB9IGZyb20gJy4uLy4uL0NoZWNrYm94JztcbmltcG9ydCB7IGNyZWF0ZVByb0Zvcm1GaWVsZCB9IGZyb20gJy4vY3JlYXRlUHJvRm9ybUZpZWxkJztcbmltcG9ydCB7IHJlbmRlclRleHRSZWFkb25seSB9IGZyb20gJy4uL3V0aWxzJztcbmV4cG9ydCBjb25zdCBQcm9Gb3JtQ2hlY2tib3hHcm91cCA9IGNyZWF0ZVByb0Zvcm1GaWVsZCh7XG4gICAgY29tcG9uZW50OiBDaGVja2JveEdyb3VwLFxuICAgIHJlbmRlclJlYWRvbmx5OiAodmFsdWUpID0+IHJlbmRlclRleHRSZWFkb25seShBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmpvaW4oJywgJykgOiB2YWx1ZSksXG59KTtcblByb0Zvcm1DaGVja2JveEdyb3VwLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1DaGVja2JveEdyb3VwJztcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1DaGVja2JveEdyb3VwOyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
32
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUNoZWNrYm94R3JvdXAuanMiLCJjb21wb25lbnRzL1Byb0Zvcm0vc3JjL2NvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUNoZWNrYm94R3JvdXAudHN4Il0sIm5hbWVzIjpbIl9qc3hSdW50aW1lIiwicmVxdWlyZSIsIl9yZWFjdCIsIl9DaGVja2JveCIsIl9jcmVhdGVQcm9Gb3JtRmllbGQiLCJfdXRpbHMiLCJyZW5kZXJDaGVja2JveEdyb3VwUmVhZG9ubHkiLCJ2YWx1ZSIsInByb3BzIiwiQXJyYXkiLCJpc0FycmF5IiwicmVuZGVyVGV4dFJlYWRvbmx5IiwibGVuZ3RoIiwiX2pzeCIsIl9GcmFnbWVudCIsImNoaWxkcmVuIiwibWFwIiwiaXRlbSIsImluZGV4IiwiX2EiLCJfanN4cyIsIkZyYWdtZW50IiwiZmluZE9wdGlvbkxhYmVsIiwib3B0aW9ucyIsIlN0cmluZyIsIlByb0Zvcm1DaGVja2JveEdyb3VwIiwiZXhwb3J0cyIsImNyZWF0ZVByb0Zvcm1GaWVsZCIsImNvbXBvbmVudCIsIkNoZWNrYm94R3JvdXAiLCJyZW5kZXJSZWFkb25seSIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLFNBQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLG1CQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFFQSxTQUFTSywyQkFBMkJBLENBQ2xDQyxLQUFjLEVBQ2RDLEtBQW1DLEVBQUE7RUFFbkMsSUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0gsS0FBSyxDQUFDLEVBQUUsT0FBTyxJQUFBSSx5QkFBa0IsRUFBQ0osS0FBSyxDQUFDO0VBQzNELElBQUlBLEtBQUssQ0FBQ0ssTUFBTSxLQUFLLENBQUMsRUFBRSxPQUFPLEdBQUc7RUFDbEM7RUFDQTtFQUNBLE9BQ0UsSUFBQUMsZUFBQSxFQUFBQyxvQkFBQSxFQUFBO0lBQUFDLFFBQUEsRUFDR1IsS0FBSyxDQUFDUyxHQUFHLENBQUMsVUFBQ0MsSUFBSSxFQUFFQyxLQUFLLEVBQUk7TURKckIsSUFBSUMsRUFBRTtNQ0lnQixPQUMxQixJQUFBQyxnQkFBQSxFQUFDQyxlQUFRLEVBQUE7UUFBQU4sUUFBQSxFQUFBLENBQ05HLEtBQUssR0FBRyxDQUFDLElBQUksSUFBSSxFQUNqQixDQUFBQyxFQUFBLEdBQUEsSUFBQUcsc0JBQWUsRUFBQ2QsS0FBSyxLQUFBLElBQUEsSUFBTEEsS0FBSyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFMQSxLQUFLLENBQUVlLE9BQU8sRUFBRU4sSUFBSSxDQUFDLE1BQUEsSUFBQSxJQUFBRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSUssTUFBTSxDQUFDUCxJQUFJLENBQUM7TUFBQSxDQUFBLEVBRnpDQyxLQUFLLENBR1Q7SUROWCxDQ09EO0VBQUMsQ0FBQSxDQUNEO0FBRVA7QUFFTyxJQUFNTyxvQkFBb0IsR0FBQUMsT0FBQSxDQUFBRCxvQkFBQSxHQUFHLElBQUFFLHNDQUFrQixFQUFxQjtFQUN6RUMsU0FBUyxFQUFFQyx1QkFBYTtFQUN4QkMsY0FBYyxFQUFFeEI7QURUbEIsQ0NVQyxDQUFDO0FBRUZtQixvQkFBb0IsQ0FBQ00sV0FBVyxHQUFHLHNCQUFzQjtBQUFDLElBQUFDLFFBQUEsR0FBQU4sT0FBQSxjQUUzQ0Qsb0JBQW9CIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUNoZWNrYm94R3JvdXAuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3hzIGFzIF9qc3hzLCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBGcmFnbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IENoZWNrYm94R3JvdXAgfSBmcm9tICcuLi8uLi9DaGVja2JveCc7XG5pbXBvcnQgeyBjcmVhdGVQcm9Gb3JtRmllbGQgfSBmcm9tICcuL2NyZWF0ZVByb0Zvcm1GaWVsZCc7XG5pbXBvcnQgeyBmaW5kT3B0aW9uTGFiZWwsIHJlbmRlclRleHRSZWFkb25seSB9IGZyb20gJy4uL3V0aWxzJztcbmZ1bmN0aW9uIHJlbmRlckNoZWNrYm94R3JvdXBSZWFkb25seSh2YWx1ZSwgcHJvcHMpIHtcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgICAgICByZXR1cm4gcmVuZGVyVGV4dFJlYWRvbmx5KHZhbHVlKTtcbiAgICBpZiAodmFsdWUubGVuZ3RoID09PSAwKVxuICAgICAgICByZXR1cm4gJy0nO1xuICAgIC8vIExhYmVscyBhcmUgUmVhY3ROb2RlIOKAlCBqb2luIHdpdGggJywgJyBhcyBlbGVtZW50IGNoaWxkcmVuIHJhdGhlciB0aGFuXG4gICAgLy8gc3RyaW5nLWNvbmNhdGVuYXRpbmcgKHdoaWNoIHdvdWxkIGNvbGxhcHNlIGVsZW1lbnQgbGFiZWxzIHRvICcnKS5cbiAgICByZXR1cm4gKF9qc3goX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiB2YWx1ZS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICByZXR1cm4gKF9qc3hzKEZyYWdtZW50LCB7IGNoaWxkcmVuOiBbaW5kZXggPiAwICYmICcsICcsIChfYSA9IGZpbmRPcHRpb25MYWJlbChwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMub3B0aW9ucywgaXRlbSkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IFN0cmluZyhpdGVtKV0gfSwgaW5kZXgpKTtcbiAgICAgICAgfSkgfSkpO1xufVxuZXhwb3J0IGNvbnN0IFByb0Zvcm1DaGVja2JveEdyb3VwID0gY3JlYXRlUHJvRm9ybUZpZWxkKHtcbiAgICBjb21wb25lbnQ6IENoZWNrYm94R3JvdXAsXG4gICAgcmVuZGVyUmVhZG9ubHk6IHJlbmRlckNoZWNrYm94R3JvdXBSZWFkb25seSxcbn0pO1xuUHJvRm9ybUNoZWNrYm94R3JvdXAuZGlzcGxheU5hbWUgPSAnUHJvRm9ybUNoZWNrYm94R3JvdXAnO1xuZXhwb3J0IGRlZmF1bHQgUHJvRm9ybUNoZWNrYm94R3JvdXA7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -10,9 +10,12 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  var _jsxRuntime = require("react/jsx-runtime");
12
12
  var _react = _interopRequireWildcard(require("react"));
13
+ var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCallback"));
13
14
  var _ProFormItem = require("../ProFormItem");
14
15
  var _context = require("../context");
15
16
  var _formStore = require("../core/formStore");
17
+ var _pathUtils = require("../core/pathUtils");
18
+ var _runRules = require("../core/runRules");
16
19
  var _classnames = _interopRequireDefault(require("../../../utils/classnames"));
17
20
  var _constants = require("../constants");
18
21
  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); }
@@ -23,7 +26,6 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
23
26
  label = props.label,
24
27
  description = props.description,
25
28
  rules = props.rules,
26
- required = props.required,
27
29
  feedback = props.feedback,
28
30
  _props$gap = props.gap,
29
31
  gap = _props$gap === void 0 ? 8 : _props$gap,
@@ -31,31 +33,69 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
31
33
  children = props.children;
32
34
  var _useProFormStable = (0, _context.useProFormStable)(),
33
35
  setFieldValue = _useProFormStable.setFieldValue,
34
- formInstance = _useProFormStable.formInstance;
36
+ formInstance = _useProFormStable.formInstance,
37
+ validateField = _useProFormStable.validateField,
38
+ validateFieldAsync = _useProFormStable.validateFieldAsync,
39
+ formValidateTrigger = _useProFormStable.validateTrigger;
35
40
  var store = (0, _context.useProFormStore)();
36
41
  // Per-field subscription: re-render only when THIS set's array changes.
42
+ // Dot-paths resolve into the nested values like everywhere else.
37
43
  var rawValue = (0, _formStore.useStoreSelector)(store, function (state) {
38
- return name ? state.values[name] : undefined;
44
+ return name ? (0, _pathUtils.resolveValue)(state.values, name) : undefined;
39
45
  });
40
46
  var value = Array.isArray(rawValue) ? rawValue : [];
47
+ // The set validates like any other field: rules filtered by the form-level
48
+ // trigger config run on slot changes/blurs against the WHOLE array value.
49
+ var runTriggerValidation = (0, _useEventCallback["default"])(function (nextValue, trigger) {
50
+ if (!name || !rules || rules.length === 0) return;
51
+ var resolved = (0, _runRules.resolveRules)(rules, store.getState().values, formInstance);
52
+ var applicable = (0, _runRules.filterRulesByTrigger)(resolved, trigger, (0, _runRules.normalizeTriggers)(undefined, formValidateTrigger), name);
53
+ if (applicable.length === 0) return;
54
+ if (trigger === 'onChange') {
55
+ validateField(name, applicable, nextValue);
56
+ } else {
57
+ validateFieldAsync(name, nextValue, applicable);
58
+ }
59
+ });
41
60
  var itemIndex = -1;
42
61
  var list = _react["default"].Children.map(children, function (child) {
43
62
  var _a;
44
63
  if (! /*#__PURE__*/_react["default"].isValidElement(child)) return child;
45
64
  itemIndex += 1;
46
65
  var index = itemIndex;
66
+ var childProps = child.props;
47
67
  return /*#__PURE__*/_react["default"].cloneElement(child, {
48
68
  // '' (not undefined) for empty slots — an input must not switch from
49
69
  // uncontrolled to controlled on its first edit.
50
70
  value: (_a = value[index]) !== null && _a !== void 0 ? _a : '',
51
71
  onChange: function onChange(val) {
52
- if (!name) return;
53
- var newValue = (0, _toConsumableArray2["default"])(value);
54
- newValue[index] = val && (0, _typeof2["default"])(val) === 'object' && 'target' in val ? val.target.value : val;
55
- setFieldValue(name, newValue);
56
- // A slot edit is a user change trigger — mark touched like any field.
57
- if (!formInstance.isFieldTouched(name)) {
58
- formInstance.setFieldTouched(name, true);
72
+ if (name) {
73
+ var newValue = (0, _toConsumableArray2["default"])(value);
74
+ newValue[index] = val && (0, _typeof2["default"])(val) === 'object' && 'target' in val ? val.target.value : val;
75
+ setFieldValue(name, newValue);
76
+ // A slot edit is a user change trigger — mark touched like any field.
77
+ if (!formInstance.isFieldTouched(name)) {
78
+ formInstance.setFieldTouched(name, true);
79
+ }
80
+ runTriggerValidation(newValue, 'onChange');
81
+ }
82
+ // CHAIN the slot child's own onChange — never overwrite it.
83
+ if (typeof childProps.onChange === 'function') {
84
+ for (var _len = arguments.length, restArgs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
85
+ restArgs[_key - 1] = arguments[_key];
86
+ }
87
+ childProps.onChange.apply(childProps, [val].concat(restArgs));
88
+ }
89
+ },
90
+ onBlur: function onBlur() {
91
+ if (name) {
92
+ // Read the LIVE value — a change committed in the same tick must be
93
+ // the one validated, not the render-time snapshot.
94
+ var current = (0, _pathUtils.resolveValue)(store.getState().values, name);
95
+ runTriggerValidation(Array.isArray(current) ? current : [], 'onBlur');
96
+ }
97
+ if (typeof childProps.onBlur === 'function') {
98
+ childProps.onBlur.apply(childProps, arguments);
59
99
  }
60
100
  }
61
101
  });
@@ -75,7 +115,6 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
75
115
  description: description,
76
116
  name: name,
77
117
  rules: rules,
78
- required: required,
79
118
  feedback: feedback,
80
119
  children: content
81
120
  });
@@ -85,4 +124,4 @@ var ProFormFieldSetBase = function ProFormFieldSetBase(props) {
85
124
  ProFormFieldSetBase.displayName = 'ProFormFieldSet';
86
125
  var ProFormFieldSet = exports.ProFormFieldSet = /*#__PURE__*/(0, _react.memo)(ProFormFieldSetBase);
87
126
  var _default = exports["default"] = ProFormFieldSet;
88
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1GaWVsZFNldC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfUHJvRm9ybUl0ZW0iLCJfY29udGV4dCIsIl9mb3JtU3RvcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiY29uY2F0IiwiQ1NTX1BSRUZJWCIsIlByb0Zvcm1GaWVsZFNldEJhc2UiLCJwcm9wcyIsIm5hbWUiLCJsYWJlbCIsImRlc2NyaXB0aW9uIiwicnVsZXMiLCJyZXF1aXJlZCIsImZlZWRiYWNrIiwiX3Byb3BzJGdhcCIsImdhcCIsInN0eWxlIiwiY2hpbGRyZW4iLCJfdXNlUHJvRm9ybVN0YWJsZSIsInVzZVByb0Zvcm1TdGFibGUiLCJzZXRGaWVsZFZhbHVlIiwiZm9ybUluc3RhbmNlIiwic3RvcmUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJyYXdWYWx1ZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInZhbHVlcyIsInVuZGVmaW5lZCIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbUluZGV4IiwibGlzdCIsIlJlYWN0IiwiQ2hpbGRyZW4iLCJtYXAiLCJjaGlsZCIsIl9hIiwiaXNWYWxpZEVsZW1lbnQiLCJpbmRleCIsImNsb25lRWxlbWVudCIsIm9uQ2hhbmdlIiwidmFsIiwibmV3VmFsdWUiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiX3R5cGVvZjIiLCJ0YXJnZXQiLCJpc0ZpZWxkVG91Y2hlZCIsInNldEZpZWxkVG91Y2hlZCIsImNvbnRlbnQiLCJfanN4IiwiY2xhc3NOYW1lIiwiYXNzaWduIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJQcm9Gb3JtSXRlbSIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybUZpZWxkU2V0IiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFlBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQVAsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUEwQyxTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVIsd0JBQUFRLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssUUFBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixD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QSxDQUNJO0VBRWxCO0VBRUEsT0FBT0EsT0FBTztBQUNoQixDQUFDO0FBRUQ1QyxtQkFBbUIsQ0FBQ21ELFdBQVcsR0FBRyxpQkFBaUI7QUFFNUMsSUFBTUMsZUFBZSxHQUFBQyxPQUFBLENBQUFELGVBQUEsZ0JBQUcsSUFBQUUsV0FBSSxFQUFDdEQsbUJBQW1CLENBQUM7QUFBQyxJQUFBdUQsUUFBQSxHQUFBRixPQUFBLGNBRTFDRCxlQUFlIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCBSZWFjdCwgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUHJvRm9ybUl0ZW0gfSBmcm9tICcuLi9Qcm9Gb3JtSXRlbSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtU3RhYmxlLCB1c2VQcm9Gb3JtU3RvcmUgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IgfSBmcm9tICcuLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IENTU19QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMoYCR7Q1NTX1BSRUZJWH0tZmllbGRzZXRgKTtcbmNvbnN0IFByb0Zvcm1GaWVsZFNldEJhc2UgPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IG5hbWUsIGxhYmVsLCBkZXNjcmlwdGlvbiwgcnVsZXMsIHJlcXVpcmVkLCBmZWVkYmFjaywgZ2FwID0gOCwgc3R5bGUsIGNoaWxkcmVuLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgeyBzZXRGaWVsZFZhbHVlLCBmb3JtSW5zdGFuY2UgfSA9IHVzZVByb0Zvcm1TdGFibGUoKTtcbiAgICBjb25zdCBzdG9yZSA9IHVzZVByb0Zvcm1TdG9yZSgpO1xuICAgIC8vIFBlci1maWVsZCBzdWJzY3JpcHRpb246IHJlLXJlbmRlciBvbmx5IHdoZW4gVEhJUyBzZXQncyBhcnJheSBjaGFuZ2VzLlxuICAgIGNvbnN0IHJhd1ZhbHVlID0gdXNlU3RvcmVTZWxlY3RvcihzdG9yZSwgKHN0YXRlKSA9PiAobmFtZSA/IHN0YXRlLnZhbHVlc1tuYW1lXSA6IHVuZGVmaW5lZCkpO1xuICAgIGNvbnN0IHZhbHVlID0gQXJyYXkuaXNBcnJheShyYXdWYWx1ZSkgPyByYXdWYWx1ZSA6IFtdO1xuICAgIGxldCBpdGVtSW5kZXggPSAtMTtcbiAgICBjb25zdCBsaXN0ID0gUmVhY3QuQ2hpbGRyZW4ubWFwKGNoaWxkcmVuLCAoY2hpbGQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIVJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkKSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgaXRlbUluZGV4ICs9IDE7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gaXRlbUluZGV4O1xuICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkLCB7XG4gICAgICAgICAgICAvLyAnJyAobm90IHVuZGVmaW5lZCkgZm9yIGVtcHR5IHNsb3RzIOKAlCBhbiBpbnB1dCBtdXN0IG5vdCBzd2l0Y2ggZnJvbVxuICAgICAgICAgICAgLy8gdW5jb250cm9sbGVkIHRvIGNvbnRyb2xsZWQgb24gaXRzIGZpcnN0IGVkaXQuXG4gICAgICAgICAgICB2YWx1ZTogKF9hID0gdmFsdWVbaW5kZXhdKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFuYW1lKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWVdO1xuICAgICAgICAgICAgICAgIG5ld1ZhbHVlW2luZGV4XSA9IHZhbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAndGFyZ2V0JyBpbiB2YWxcbiAgICAgICAgICAgICAgICAgICAgPyB2YWwudGFyZ2V0LnZhbHVlXG4gICAgICAgICAgICAgICAgICAgIDogdmFsO1xuICAgICAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgIC8vIEEgc2xvdCBlZGl0IGlzIGEgdXNlciBjaGFuZ2UgdHJpZ2dlciDigJQgbWFyayB0b3VjaGVkIGxpa2UgYW55IGZpZWxkLlxuICAgICAgICAgICAgICAgIGlmICghZm9ybUluc3RhbmNlLmlzRmllbGRUb3VjaGVkKG5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZS5zZXRGaWVsZFRvdWNoZWQobmFtZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgY29udGVudCA9IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCksIHN0eWxlOiBPYmplY3QuYXNzaWduKHsgZGlzcGxheTogJ2ZsZXgnLCBnYXAsIGFsaWduSXRlbXM6ICdmbGV4LXN0YXJ0JyB9LCBzdHlsZSksIGNoaWxkcmVuOiBsaXN0IH0pKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgICByZXR1cm4gKF9qc3goUHJvRm9ybUl0ZW0sIHsgbGFiZWw6IGxhYmVsLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIG5hbWU6IG5hbWUsIHJ1bGVzOiBydWxlcywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBmZWVkYmFjazogZmVlZGJhY2ssIGNoaWxkcmVuOiBjb250ZW50IH0pKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG59O1xuUHJvRm9ybUZpZWxkU2V0QmFzZS5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtRmllbGRTZXQnO1xuZXhwb3J0IGNvbnN0IFByb0Zvcm1GaWVsZFNldCA9IG1lbW8oUHJvRm9ybUZpZWxkU2V0QmFzZSk7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtRmllbGRTZXQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
127
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybUZpZWxkU2V0LmpzIiwiY29tcG9uZW50cy9Qcm9Gb3JtL3NyYy9jb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1GaWVsZFNldC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfUHJvRm9ybUl0ZW0iLCJfY29udGV4dCIsIl9mb3JtU3RvcmUiLCJfcGF0aFV0aWxzIiwiX3J1blJ1bGVzIiwiX2NsYXNzbmFtZXMiLCJfY29uc3RhbnRzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiY29uY2F0IiwiQ1NTX1BSRUZJWCIsIlByb0Zvcm1GaWVsZFNldEJhc2UiLCJwcm9wcyIsIm5hbWUiLCJsYWJlbCIsImRlc2NyaXB0aW9uIiwicnVsZXMiLCJmZWVkYmFjayIsIl9wcm9wcyRnYXAiLCJnYXAiLCJzdHlsZSIsImNoaWxkcmVuIiwiX3VzZVByb0Zvcm1TdGFibGUiLCJ1c2VQcm9Gb3JtU3RhYmxlIiwic2V0RmllbGRWYWx1ZSIsImZvcm1JbnN0YW5jZSIsInZhbGlkYXRlRmllbGQiLCJ2YWxpZGF0ZUZpZWxkQXN5bmMiLCJmb3JtVmFsaWRhdGVUcmlnZ2VyIiwidmFsaWRhdGVUcmlnZ2VyIiwic3RvcmUiLCJ1c2VQcm9Gb3JtU3RvcmUiLCJyYXdWYWx1ZSIsInVzZVN0b3JlU2VsZWN0b3IiLCJzdGF0ZSIsInJlc29sdmVWYWx1ZSIsInZhbHVlcyIsInVuZGVmaW5lZCIsInZhbHVlIiwiQXJyYXkiLCJpc0FycmF5IiwicnVuVHJpZ2dlclZhbGlkYXRpb24iLCJ1c2VFdmVudENhbGxiYWNrIiwibmV4dFZhbHVlIiwidHJpZ2dlciIsImxlbmd0aCIsInJlc29sdmVkIiwicmVzb2x2ZVJ1bGVzIiwiZ2V0U3RhdGUiLCJhcHBsaWNhYmxlIiwiZmlsdGVyUnVsZXNCeVRyaWdnZXIiLCJub3JtYWxpemVUcmlnZ2VycyIsIml0ZW1JbmRleCIsImxpc3QiLCJSZWFjdCIsIkNoaWxkcmVuIiwibWFwIiwiY2hpbGQiLCJfYSIsImlzVmFsaWRFbGVtZW50IiwiaW5kZXgiLCJjaGlsZFByb3BzIiwiY2xvbmVFbGVtZW50Iiwib25DaGFuZ2UiLCJ2YWwiLCJuZXdWYWx1ZSIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJfdHlwZW9mMiIsInRhcmdldCIsImlzRmllbGRUb3VjaGVkIiwic2V0RmllbGRUb3VjaGVkIiwiX2xlbiIsImFyZ3VtZW50cyIsInJlc3RBcmdzIiwiX2tleSIsImFwcGx5Iiwib25CbHVyIiwiY3VycmVudCIsImNvbnRlbnQiLCJfanN4IiwiY2xhc3NOYW1lIiwiYXNzaWduIiwiZGlzcGxheSIsImFsaWduSXRlbXMiLCJQcm9Gb3JtSXRlbSIsImRpc3BsYXlOYW1lIiwiUHJvRm9ybUZpZWxkU2V0IiwiZXhwb3J0cyIsIm1lbW8iLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFSLE9BQUE7QUFDQSxJ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RUFBQ0ssd0JBQVcsRUFBQTtNQUFDdEUsS0FBSyxFQUFFQSxLQUFLO01BQUVDLFdBQVcsRUFBRUEsV0FBVztNQUFFRixJQUFJLEVBQUVBLElBQUk7TUFBRUcsS0FBSyxFQUFFQSxLQUFLO01BQUVDLFFBQVEsRUFBRUEsUUFBUTtNQUFBSSxRQUFBLEVBQzlGeUQ7SUFBTyxDQUFBLENBQ0k7RUFFbEI7RUFFQSxPQUFPQSxPQUFPO0FBQ2hCLENBQUM7QUFFRG5FLG1CQUFtQixDQUFDMEUsV0FBVyxHQUFHLGlCQUFpQjtBQUU1QyxJQUFNQyxlQUFlLEdBQUFDLE9BQUEsQ0FBQUQsZUFBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUM3RSxtQkFBbUIsQ0FBQztBQUFDLElBQUE4RSxRQUFBLEdBQUFGLE9BQUEsY0FFMUNELGVBQWUiLCJmaWxlIjoiY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtRmllbGRTZXQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IFJlYWN0LCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgUHJvRm9ybUl0ZW0gfSBmcm9tICcuLi9Qcm9Gb3JtSXRlbSc7XG5pbXBvcnQgeyB1c2VQcm9Gb3JtU3RhYmxlLCB1c2VQcm9Gb3JtU3RvcmUgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IHVzZVN0b3JlU2VsZWN0b3IgfSBmcm9tICcuLi9jb3JlL2Zvcm1TdG9yZSc7XG5pbXBvcnQgeyByZXNvbHZlVmFsdWUgfSBmcm9tICcuLi9jb3JlL3BhdGhVdGlscyc7XG5pbXBvcnQgeyBmaWx0ZXJSdWxlc0J5VHJpZ2dlciwgbm9ybWFsaXplVHJpZ2dlcnMsIHJlc29sdmVSdWxlcyB9IGZyb20gJy4uL2NvcmUvcnVuUnVsZXMnO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBDU1NfUFJFRklYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke0NTU19QUkVGSVh9LWZpZWxkc2V0YCk7XG5jb25zdCBQcm9Gb3JtRmllbGRTZXRCYXNlID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBuYW1lLCBsYWJlbCwgZGVzY3JpcHRpb24sIHJ1bGVzLCBmZWVkYmFjaywgZ2FwID0gOCwgc3R5bGUsIGNoaWxkcmVuLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgeyBzZXRGaWVsZFZhbHVlLCBmb3JtSW5zdGFuY2UsIHZhbGlkYXRlRmllbGQsIHZhbGlkYXRlRmllbGRBc3luYywgdmFsaWRhdGVUcmlnZ2VyOiBmb3JtVmFsaWRhdGVUcmlnZ2VyLCB9ID0gdXNlUHJvRm9ybVN0YWJsZSgpO1xuICAgIGNvbnN0IHN0b3JlID0gdXNlUHJvRm9ybVN0b3JlKCk7XG4gICAgLy8gUGVyLWZpZWxkIHN1YnNjcmlwdGlvbjogcmUtcmVuZGVyIG9ubHkgd2hlbiBUSElTIHNldCdzIGFycmF5IGNoYW5nZXMuXG4gICAgLy8gRG90LXBhdGhzIHJlc29sdmUgaW50byB0aGUgbmVzdGVkIHZhbHVlcyBsaWtlIGV2ZXJ5d2hlcmUgZWxzZS5cbiAgICBjb25zdCByYXdWYWx1ZSA9IHVzZVN0b3JlU2VsZWN0b3Ioc3RvcmUsIChzdGF0ZSkgPT4gbmFtZSA/IHJlc29sdmVWYWx1ZShzdGF0ZS52YWx1ZXMsIG5hbWUpIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCB2YWx1ZSA9IEFycmF5LmlzQXJyYXkocmF3VmFsdWUpID8gcmF3VmFsdWUgOiBbXTtcbiAgICAvLyBUaGUgc2V0IHZhbGlkYXRlcyBsaWtlIGFueSBvdGhlciBmaWVsZDogcnVsZXMgZmlsdGVyZWQgYnkgdGhlIGZvcm0tbGV2ZWxcbiAgICAvLyB0cmlnZ2VyIGNvbmZpZyBydW4gb24gc2xvdCBjaGFuZ2VzL2JsdXJzIGFnYWluc3QgdGhlIFdIT0xFIGFycmF5IHZhbHVlLlxuICAgIGNvbnN0IHJ1blRyaWdnZXJWYWxpZGF0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCB0cmlnZ2VyKSA9PiB7XG4gICAgICAgIGlmICghbmFtZSB8fCAhcnVsZXMgfHwgcnVsZXMubGVuZ3RoID09PSAwKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCByZXNvbHZlZCA9IHJlc29sdmVSdWxlcyhydWxlcywgc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMsIGZvcm1JbnN0YW5jZSk7XG4gICAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBmaWx0ZXJSdWxlc0J5VHJpZ2dlcihyZXNvbHZlZCwgdHJpZ2dlciwgbm9ybWFsaXplVHJpZ2dlcnModW5kZWZpbmVkLCBmb3JtVmFsaWRhdGVUcmlnZ2VyKSwgbmFtZSk7XG4gICAgICAgIGlmIChhcHBsaWNhYmxlLmxlbmd0aCA9PT0gMClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHRyaWdnZXIgPT09ICdvbkNoYW5nZScpIHtcbiAgICAgICAgICAgIHZhbGlkYXRlRmllbGQobmFtZSwgYXBwbGljYWJsZSwgbmV4dFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHZhbGlkYXRlRmllbGRBc3luYyhuYW1lLCBuZXh0VmFsdWUsIGFwcGxpY2FibGUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgbGV0IGl0ZW1JbmRleCA9IC0xO1xuICAgIGNvbnN0IGxpc3QgPSBSZWFjdC5DaGlsZHJlbi5tYXAoY2hpbGRyZW4sIChjaGlsZCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghUmVhY3QuaXNWYWxpZEVsZW1lbnQoY2hpbGQpKVxuICAgICAgICAgICAgcmV0dXJuIGNoaWxkO1xuICAgICAgICBpdGVtSW5kZXggKz0gMTtcbiAgICAgICAgY29uc3QgaW5kZXggPSBpdGVtSW5kZXg7XG4gICAgICAgIGNvbnN0IGNoaWxkUHJvcHMgPSBjaGlsZC5wcm9wcztcbiAgICAgICAgcmV0dXJuIFJlYWN0LmNsb25lRWxlbWVudChjaGlsZCwge1xuICAgICAgICAgICAgLy8gJycgKG5vdCB1bmRlZmluZWQpIGZvciBlbXB0eSBzbG90cyDigJQgYW4gaW5wdXQgbXVzdCBub3Qgc3dpdGNoIGZyb21cbiAgICAgICAgICAgIC8vIHVuY29udHJvbGxlZCB0byBjb250cm9sbGVkIG9uIGl0cyBmaXJzdCBlZGl0LlxuICAgICAgICAgICAgdmFsdWU6IChfYSA9IHZhbHVlW2luZGV4XSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycsXG4gICAgICAgICAgICBvbkNoYW5nZTogKHZhbCwgLi4ucmVzdEFyZ3MpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IFsuLi52YWx1ZV07XG4gICAgICAgICAgICAgICAgICAgIG5ld1ZhbHVlW2luZGV4XSA9IHZhbCAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiAndGFyZ2V0JyBpbiB2YWxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdmFsLnRhcmdldC52YWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWw7XG4gICAgICAgICAgICAgICAgICAgIHNldEZpZWxkVmFsdWUobmFtZSwgbmV3VmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAvLyBBIHNsb3QgZWRpdCBpcyBhIHVzZXIgY2hhbmdlIHRyaWdnZXIg4oCUIG1hcmsgdG91Y2hlZCBsaWtlIGFueSBmaWVsZC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFmb3JtSW5zdGFuY2UuaXNGaWVsZFRvdWNoZWQobmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1JbnN0YW5jZS5zZXRGaWVsZFRvdWNoZWQobmFtZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcnVuVHJpZ2dlclZhbGlkYXRpb24obmV3VmFsdWUsICdvbkNoYW5nZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBDSEFJTiB0aGUgc2xvdCBjaGlsZCdzIG93biBvbkNoYW5nZSDigJQgbmV2ZXIgb3ZlcndyaXRlIGl0LlxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRQcm9wcy5vbkNoYW5nZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFByb3BzLm9uQ2hhbmdlKHZhbCwgLi4ucmVzdEFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkJsdXI6ICguLi5yZXN0QXJncykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlYWQgdGhlIExJVkUgdmFsdWUg4oCUIGEgY2hhbmdlIGNvbW1pdHRlZCBpbiB0aGUgc2FtZSB0aWNrIG11c3QgYmVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG9uZSB2YWxpZGF0ZWQsIG5vdCB0aGUgcmVuZGVyLXRpbWUgc25hcHNob3QuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSByZXNvbHZlVmFsdWUoc3RvcmUuZ2V0U3RhdGUoKS52YWx1ZXMsIG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBydW5UcmlnZ2VyVmFsaWRhdGlvbihBcnJheS5pc0FycmF5KGN1cnJlbnQpID8gY3VycmVudCA6IFtdLCAnb25CbHVyJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2hpbGRQcm9wcy5vbkJsdXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRQcm9wcy5vbkJsdXIoLi4ucmVzdEFyZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbnRlbnQgPSAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygpLCBzdHlsZTogT2JqZWN0LmFzc2lnbih7IGRpc3BsYXk6ICdmbGV4JywgZ2FwLCBhbGlnbkl0ZW1zOiAnZmxleC1zdGFydCcgfSwgc3R5bGUpLCBjaGlsZHJlbjogbGlzdCB9KSk7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuIChfanN4KFByb0Zvcm1JdGVtLCB7IGxhYmVsOiBsYWJlbCwgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBuYW1lOiBuYW1lLCBydWxlczogcnVsZXMsIGZlZWRiYWNrOiBmZWVkYmFjaywgY2hpbGRyZW46IGNvbnRlbnQgfSkpO1xuICAgIH1cbiAgICByZXR1cm4gY29udGVudDtcbn07XG5Qcm9Gb3JtRmllbGRTZXRCYXNlLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1GaWVsZFNldCc7XG5leHBvcnQgY29uc3QgUHJvRm9ybUZpZWxkU2V0ID0gbWVtbyhQcm9Gb3JtRmllbGRTZXRCYXNlKTtcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1GaWVsZFNldDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -7,10 +7,15 @@ exports["default"] = exports.ProFormRadioGroup = void 0;
7
7
  var _Radio = require("../../Radio");
8
8
  var _createProFormField = require("./createProFormField");
9
9
  var _utils = require("../utils");
10
+ function renderRadioReadonly(value, props) {
11
+ var _a;
12
+ if (value === null || value === undefined || value === '') return '-';
13
+ return (_a = (0, _utils.findOptionLabel)(props === null || props === void 0 ? void 0 : props.options, value)) !== null && _a !== void 0 ? _a : (0, _utils.renderTextReadonly)(value);
14
+ }
10
15
  var ProFormRadioGroup = exports.ProFormRadioGroup = (0, _createProFormField.createProFormField)({
11
16
  component: _Radio.RadioGroup,
12
- renderReadonly: _utils.renderTextReadonly
17
+ renderReadonly: renderRadioReadonly
13
18
  });
14
19
  ProFormRadioGroup.displayName = 'ProFormRadioGroup';
15
20
  var _default = exports["default"] = ProFormRadioGroup;
16
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtUmFkaW9Hcm91cC50c3giLCJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1SYWRpb0dyb3VwLmpzIl0sIm5hbWVzIjpbIl9SYWRpbyIsInJlcXVpcmUiLCJfY3JlYXRlUHJvRm9ybUZpZWxkIiwiX3V0aWxzIiwiUHJvRm9ybVJhZGlvR3JvdXAiLCJleHBvcnRzIiwiY3JlYXRlUHJvRm9ybUZpZWxkIiwiY29tcG9uZW50IiwiUmFkaW9Hcm91cCIsInJlbmRlclJlYWRvbmx5IiwicmVuZGVyVGV4dFJlYWRvbmx5IiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBRUEsSUFBQUMsbUJBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUVPLElBQU1HLGlCQUFpQixHQUFBQyxPQUFBLENBQUFELGlCQUFBLEdBQUcsSUFBQUUsc0NBQWtCLEVBQWtCO0VBQ25FQyxTQUFTLEVBQUVDLGlCQUFVO0VBQ3JCQyxjQUFjLEVBQUVDO0FDRGxCLENERUMsQ0FBQztBQUVGTixpQkFBaUIsQ0FBQ08sV0FBVyxHQUFHLG1CQUFtQjtBQUFDLElBQUFDLFFBQUEsR0FBQVAsT0FBQSxjQUVyQ0QsaUJBQWlCIiwiZmlsZSI6ImNvbXBvbmVudHMvUHJvRm9ybS9maWVsZHMvUHJvRm9ybVJhZGlvR3JvdXAuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsImltcG9ydCB7IFJhZGlvR3JvdXAgfSBmcm9tICcuLi8uLi9SYWRpbyc7XG5pbXBvcnQgeyBjcmVhdGVQcm9Gb3JtRmllbGQgfSBmcm9tICcuL2NyZWF0ZVByb0Zvcm1GaWVsZCc7XG5pbXBvcnQgeyByZW5kZXJUZXh0UmVhZG9ubHkgfSBmcm9tICcuLi91dGlscyc7XG5leHBvcnQgY29uc3QgUHJvRm9ybVJhZGlvR3JvdXAgPSBjcmVhdGVQcm9Gb3JtRmllbGQoe1xuICAgIGNvbXBvbmVudDogUmFkaW9Hcm91cCxcbiAgICByZW5kZXJSZWFkb25seTogcmVuZGVyVGV4dFJlYWRvbmx5LFxufSk7XG5Qcm9Gb3JtUmFkaW9Hcm91cC5kaXNwbGF5TmFtZSA9ICdQcm9Gb3JtUmFkaW9Hcm91cCc7XG5leHBvcnQgZGVmYXVsdCBQcm9Gb3JtUmFkaW9Hcm91cDsiXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
21
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvUHJvRm9ybS9zcmMvY29tcG9uZW50cy9Qcm9Gb3JtL2ZpZWxkcy9Qcm9Gb3JtUmFkaW9Hcm91cC50c3giLCJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1SYWRpb0dyb3VwLmpzIl0sIm5hbWVzIjpbIl9SYWRpbyIsInJlcXVpcmUiLCJfY3JlYXRlUHJvRm9ybUZpZWxkIiwiX3V0aWxzIiwicmVuZGVyUmFkaW9SZWFkb25seSIsInZhbHVlIiwicHJvcHMiLCJfYSIsInVuZGVmaW5lZCIsImZpbmRPcHRpb25MYWJlbCIsIm9wdGlvbnMiLCJyZW5kZXJUZXh0UmVhZG9ubHkiLCJQcm9Gb3JtUmFkaW9Hcm91cCIsImV4cG9ydHMiLCJjcmVhdGVQcm9Gb3JtRmllbGQiLCJjb21wb25lbnQiLCJSYWRpb0dyb3VwIiwicmVuZGVyUmVhZG9ubHkiLCJkaXNwbGF5TmFtZSIsIl9kZWZhdWx0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFFQSxJQUFBQyxtQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBRUEsU0FBU0csbUJBQW1CQSxDQUFDQyxLQUFjLEVBQUVDLEtBQWdDLEVBQUE7RUNGekUsSUFBSUMsRUFBRTtFREdSLElBQUlGLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0csU0FBUyxJQUFJSCxLQUFLLEtBQUssRUFBRSxFQUFFLE9BQU8sR0FBRztFQUNyRSxPQUFPLENBQUFFLEVBQUEsR0FBQSxJQUFBRSxzQkFBZSxFQUFDSCxLQUFLLEtBQUEsSUFBQSxJQUFMQSxLQUFLLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUxBLEtBQUssQ0FBRUksT0FBTyxFQUFFTCxLQUFLLENBQUMsTUFBQSxJQUFBLElBQUFFLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLElBQUFJLHlCQUFrQixFQUFDTixLQUFLLENBQUM7QUFDNUU7QUFFTyxJQUFNTyxpQkFBaUIsR0FBQUMsT0FBQSxDQUFBRCxpQkFBQSxHQUFHLElBQUFFLHNDQUFrQixFQUFrQjtFQUNuRUMsU0FBUyxFQUFFQyxpQkFBVTtFQUNyQkMsY0FBYyxFQUFFYjtBQ0RsQixDREVDLENBQUM7QUFFRlEsaUJBQWlCLENBQUNNLFdBQVcsR0FBRyxtQkFBbUI7QUFBQyxJQUFBQyxRQUFBLEdBQUFOLE9BQUEsY0FFckNELGlCQUFpQiIsImZpbGUiOiJjb21wb25lbnRzL1Byb0Zvcm0vZmllbGRzL1Byb0Zvcm1SYWRpb0dyb3VwLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyBSYWRpb0dyb3VwIH0gZnJvbSAnLi4vLi4vUmFkaW8nO1xuaW1wb3J0IHsgY3JlYXRlUHJvRm9ybUZpZWxkIH0gZnJvbSAnLi9jcmVhdGVQcm9Gb3JtRmllbGQnO1xuaW1wb3J0IHsgZmluZE9wdGlvbkxhYmVsLCByZW5kZXJUZXh0UmVhZG9ubHkgfSBmcm9tICcuLi91dGlscyc7XG5mdW5jdGlvbiByZW5kZXJSYWRpb1JlYWRvbmx5KHZhbHVlLCBwcm9wcykge1xuICAgIHZhciBfYTtcbiAgICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gJycpXG4gICAgICAgIHJldHVybiAnLSc7XG4gICAgcmV0dXJuIChfYSA9IGZpbmRPcHRpb25MYWJlbChwcm9wcyA9PT0gbnVsbCB8fCBwcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcHJvcHMub3B0aW9ucywgdmFsdWUpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiByZW5kZXJUZXh0UmVhZG9ubHkodmFsdWUpO1xufVxuZXhwb3J0IGNvbnN0IFByb0Zvcm1SYWRpb0dyb3VwID0gY3JlYXRlUHJvRm9ybUZpZWxkKHtcbiAgICBjb21wb25lbnQ6IFJhZGlvR3JvdXAsXG4gICAgcmVuZGVyUmVhZG9ubHk6IHJlbmRlclJhZGlvUmVhZG9ubHksXG59KTtcblByb0Zvcm1SYWRpb0dyb3VwLmRpc3BsYXlOYW1lID0gJ1Byb0Zvcm1SYWRpb0dyb3VwJztcbmV4cG9ydCBkZWZhdWx0IFByb0Zvcm1SYWRpb0dyb3VwOyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=