@gnwebsoft/ui 4.0.13 → 4.0.15

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 (54) hide show
  1. package/dist/{chunk-QATCBGCZ.cjs → chunk-3CHF3PN3.cjs} +10 -4
  2. package/dist/chunk-5S2NCVG3.cjs +2384 -0
  3. package/dist/chunk-6PMJWQ4R.cjs +1 -1
  4. package/dist/chunk-LUW7V5GI.cjs +1 -1
  5. package/dist/chunk-ML5UQCRH.js +2535 -0
  6. package/dist/chunk-MVPLBJRK.cjs +1 -1
  7. package/dist/chunk-XTPFOURJ.cjs +1 -1
  8. package/dist/chunk-Y3QTSDLJ.cjs +1 -1
  9. package/dist/chunk-Y7B4RYYD.js +2384 -0
  10. package/dist/core/components/LabelText/LabelText.d.ts.map +1 -1
  11. package/dist/core/index.cjs +3 -3
  12. package/dist/core/index.d.ts +0 -1
  13. package/dist/core/index.d.ts.map +1 -1
  14. package/dist/core/index.js +1 -1
  15. package/dist/hooks/index.cjs +1 -1
  16. package/dist/index.cjs +4 -6
  17. package/dist/index.js +4 -6
  18. package/dist/types/AsyncSelectPayload.d.ts +4 -4
  19. package/dist/types/AsyncSelectPayload.d.ts.map +1 -1
  20. package/dist/types/OptionItem.d.ts +0 -9
  21. package/dist/types/OptionItem.d.ts.map +1 -1
  22. package/dist/types/index.cjs +1 -1
  23. package/dist/utils/index.cjs +1 -1
  24. package/dist/wrappers/AsyncMultiSelect/AsyncMultiSelect.d.ts.map +1 -1
  25. package/dist/wrappers/AsyncMultiSelect/types.d.ts +5 -5
  26. package/dist/wrappers/AsyncMultiSelect/types.d.ts.map +1 -1
  27. package/dist/wrappers/AsyncSelect/index.d.ts.map +1 -1
  28. package/dist/wrappers/AsyncSelect/types.d.ts +2 -1
  29. package/dist/wrappers/AsyncSelect/types.d.ts.map +1 -1
  30. package/dist/wrappers/CheckboxGroup/CheckboxGroup.d.ts +10 -10
  31. package/dist/wrappers/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
  32. package/dist/wrappers/CheckboxGroup/index.d.ts +2 -2
  33. package/dist/wrappers/CheckboxGroup/index.d.ts.map +1 -1
  34. package/dist/wrappers/Field/index.d.ts +3 -3
  35. package/dist/wrappers/SelectCascadeElement/SelectCascadeElement.d.ts +1 -1
  36. package/dist/wrappers/SelectCascadeElement/SelectCascadeElement.d.ts.map +1 -1
  37. package/dist/wrappers/SelectElement/SelectElement.d.ts +5 -64
  38. package/dist/wrappers/SelectElement/SelectElement.d.ts.map +1 -1
  39. package/dist/wrappers/SelectMultiElement/SelectMultiElement.d.ts +2 -1
  40. package/dist/wrappers/SelectMultiElement/SelectMultiElement.d.ts.map +1 -1
  41. package/dist/wrappers/index.cjs +3 -5
  42. package/dist/wrappers/index.d.ts +0 -1
  43. package/dist/wrappers/index.d.ts.map +1 -1
  44. package/dist/wrappers/index.js +3 -5
  45. package/package.json +1 -1
  46. package/dist/chunk-6SIBDHHA.js +0 -2529
  47. package/dist/chunk-7GUBRAV7.cjs +0 -2450
  48. package/dist/chunk-CXNQVZRD.js +0 -2450
  49. package/dist/wrappers/AsyncMultiSelect2/AsyncMultiSelect2.d.ts +0 -8
  50. package/dist/wrappers/AsyncMultiSelect2/AsyncMultiSelect2.d.ts.map +0 -1
  51. package/dist/wrappers/AsyncMultiSelect2/index.d.ts +0 -3
  52. package/dist/wrappers/AsyncMultiSelect2/index.d.ts.map +0 -1
  53. package/dist/wrappers/AsyncMultiSelect2/types.d.ts +0 -29
  54. package/dist/wrappers/AsyncMultiSelect2/types.d.ts.map +0 -1
@@ -1,2450 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
-
3
-
4
- var _chunkY3QTSDLJcjs = require('./chunk-Y3QTSDLJ.cjs');
5
-
6
-
7
- var _chunkLUW7V5GIcjs = require('./chunk-LUW7V5GI.cjs');
8
-
9
- // src/wrappers/types/common.ts
10
- function isValidOption(value) {
11
- return typeof value === "object" && value !== null && "Label" in value && "Value" in value && typeof value.Label === "string" && (typeof value.Value === "string" || typeof value.Value === "number" || typeof value.Value === "boolean");
12
- }
13
- function normalizeOptions(options, labelField = "Label", valueField = "Value") {
14
- return options.map((option) => ({
15
- Label: String(_nullishCoalesce(option[labelField], () => ( ""))),
16
- Value: option[valueField],
17
- disabled: Boolean(option.disabled)
18
- }));
19
- }
20
-
21
- // src/wrappers/AsyncMultiSelect/AsyncMultiSelect.tsx
22
-
23
-
24
-
25
-
26
-
27
- var _material = require('@mui/material');
28
- var _match = require('autosuggest-highlight/match'); var _match2 = _interopRequireDefault(_match);
29
- var _parse = require('autosuggest-highlight/parse'); var _parse2 = _interopRequireDefault(_parse);
30
- var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash);
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
- var _react = require('react'); var React5 = _interopRequireWildcard(_react);
39
- var _reacthookform = require('react-hook-form');
40
- var _jsxruntime = require('react/jsx-runtime');
41
- var Component = function AsyncSelectMultiElement(props) {
42
- const {
43
- name,
44
- disabled,
45
- control,
46
- placeholder,
47
- initialValues,
48
- label,
49
- queryFn,
50
- variant,
51
- labelField = "Label",
52
- valueField = "Value",
53
- ...rest
54
- } = props;
55
- const {
56
- field,
57
- fieldState: { error }
58
- } = _reacthookform.useController.call(void 0, {
59
- name,
60
- control
61
- });
62
- const multiSelectRef = _react.useRef.call(void 0, null);
63
- const [selectedOptions, setSelectedOptions] = _react.useState.call(void 0, []);
64
- const [inputValue, setInputValue] = _react.useState.call(void 0, "");
65
- const [options, setOptions] = _react.useState.call(void 0, []);
66
- const [loading, setLoading] = _react.useState.call(void 0, false);
67
- const initialValuesLoaded = _react.useRef.call(void 0,
68
- !(initialValues && initialValues.length > 0)
69
- );
70
- const inputValue2 = _react.useMemo.call(void 0, () => inputValue, [inputValue]);
71
- const setInputValue2 = _react.useCallback.call(void 0,
72
- (inputValue3) => setInputValue(inputValue3),
73
- []
74
- );
75
- const fetchData = _react.useMemo.call(void 0,
76
- () => _lodash.debounce.call(void 0,
77
- (payload, callback) => {
78
- queryFn(payload).then((c) => callback(c));
79
- },
80
- 400
81
- ),
82
- [queryFn]
83
- );
84
- const fillOptions = _react.useCallback.call(void 0,
85
- (results) => {
86
- let newOptions = [];
87
- if (selectedOptions) {
88
- newOptions = [...selectedOptions];
89
- }
90
- if (results) {
91
- const newlyAdded = _lodash2.default.differenceBy(
92
- results,
93
- selectedOptions,
94
- (c) => c[valueField]
95
- );
96
- newOptions = [...newOptions, ...newlyAdded];
97
- }
98
- setOptions(newOptions);
99
- setLoading(false);
100
- },
101
- [selectedOptions, valueField]
102
- );
103
- _react.useEffect.call(void 0, () => {
104
- if (initialValuesLoaded.current) return void 0;
105
- let active = true;
106
- const payload = {
107
- query: null,
108
- initialValues
109
- };
110
- setLoading(true);
111
- fetchData(payload, (results) => {
112
- if (active && results) {
113
- setSelectedOptions([...results]);
114
- field.onChange([...results.map((c) => c[valueField])]);
115
- initialValuesLoaded.current = true;
116
- setLoading(false);
117
- }
118
- });
119
- return () => {
120
- active = false;
121
- };
122
- }, [initialValues, fetchData, field, valueField]);
123
- _react.useEffect.call(void 0, () => {
124
- let active = true;
125
- if (inputValue2 === "" || initialValuesLoaded.current === false) {
126
- setOptions(selectedOptions ? [...selectedOptions] : []);
127
- return void 0;
128
- }
129
- setLoading(true);
130
- const payload = {
131
- query: inputValue2,
132
- initialValues: null
133
- };
134
- fetchData(payload, (results) => {
135
- if (active) {
136
- fillOptions(results);
137
- }
138
- });
139
- return () => {
140
- active = false;
141
- };
142
- }, [initialValues, inputValue2, fetchData, selectedOptions, fillOptions]);
143
- const handleChange = (_2, newSelectedOptions, reason) => {
144
- if (reason === "clear" || newSelectedOptions.length === 0) {
145
- setSelectedOptions([]);
146
- field.onChange([]);
147
- } else if (reason === "selectOption" || reason === "removeOption") {
148
- setSelectedOptions(newSelectedOptions);
149
- field.onChange(newSelectedOptions.map((c) => c[valueField]));
150
- }
151
- setOptions([]);
152
- };
153
- const getOptionValue = (option) => {
154
- return option ? String(option[valueField]) : "";
155
- };
156
- const getOptionLabel = (option) => {
157
- return option ? String(option[labelField]) : "";
158
- };
159
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
160
- _material.Autocomplete,
161
- {
162
- ref: multiSelectRef,
163
- multiple: true,
164
- loading,
165
- getOptionLabel,
166
- getOptionKey: getOptionValue,
167
- isOptionEqualToValue: (option, val) => getOptionValue(option) === getOptionValue(val),
168
- options,
169
- value: selectedOptions,
170
- disabled,
171
- filterSelectedOptions: true,
172
- onChange: handleChange,
173
- onInputChange: (_2, newInputValue) => {
174
- setInputValue2(newInputValue);
175
- },
176
- renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
177
- _material.TextField,
178
- {
179
- ...params,
180
- label,
181
- error: !!error,
182
- helperText: error ? error.message : "",
183
- placeholder,
184
- slotProps: {
185
- input: {
186
- ...params.InputProps,
187
- endAdornment: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
188
- loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.CircularProgress, { color: "inherit", size: 20 }) : null,
189
- params.InputProps.endAdornment
190
- ] })
191
- }
192
- },
193
- variant: variant ? variant : "outlined"
194
- }
195
- ),
196
- renderOption: (props2, option, state) => {
197
- const { key, ...optionProps } = props2;
198
- const optionLabel = getOptionLabel(option);
199
- const matches = _match2.default.call(void 0, optionLabel, state.inputValue, { insideWords: true });
200
- const parts = _parse2.default.call(void 0, optionLabel, matches);
201
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { ...optionProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { children: parts.map((part, index) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
202
- "span",
203
- {
204
- style: {
205
- fontWeight: part.highlight ? 700 : 400
206
- },
207
- children: part.text
208
- },
209
- index
210
- )) }) }, key);
211
- },
212
- ...rest
213
- }
214
- );
215
- };
216
- var AsyncSelectMultiElement2 = ({
217
- gridProps,
218
- ...props
219
- }) => {
220
- if (gridProps) {
221
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
222
- _material.Grid,
223
- {
224
- ...{ size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }, ...gridProps },
225
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
226
- Component,
227
- {
228
- ...props
229
- }
230
- )
231
- }
232
- );
233
- }
234
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component, { ...props });
235
- };
236
- AsyncSelectMultiElement2.displayName = "AsyncSelectMulti";
237
-
238
- // src/wrappers/AsyncMultiSelect2/AsyncMultiSelect2.tsx
239
-
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
- var initialState = {
250
- options: [],
251
- selectedOptions: [],
252
- inputValue: "",
253
- loading: false,
254
- initialLoaded: false
255
- };
256
- function componentReducer(state, action) {
257
- switch (action.type) {
258
- case "SET_OPTIONS":
259
- return { ...state, options: action.payload, loading: false };
260
- case "SET_SELECTED_OPTIONS":
261
- return { ...state, selectedOptions: action.payload };
262
- case "SET_INPUT_VALUE":
263
- return { ...state, inputValue: action.payload };
264
- case "SET_LOADING":
265
- return { ...state, loading: action.payload };
266
- case "SET_INITIAL_LOADED":
267
- return { ...state, initialLoaded: action.payload };
268
- case "RESET_OPTIONS":
269
- return { ...state, options: state.selectedOptions };
270
- default:
271
- return state;
272
- }
273
- }
274
- var AsyncMultiSelect2Component = ({
275
- name,
276
- control,
277
- placeholder,
278
- initialValues,
279
- label,
280
- queryFn,
281
- variant = "outlined",
282
- disabled = false,
283
- debounceMs = 400,
284
- loadingText = "Loading...",
285
- noOptionsText = "No options",
286
- renderInput,
287
- ...rest
288
- }) => {
289
- const [state, dispatch] = _react.useReducer.call(void 0, componentReducer, initialState);
290
- const {
291
- field,
292
- fieldState: { error }
293
- } = _reacthookform.useController.call(void 0, {
294
- name,
295
- control
296
- });
297
- const debouncedFetch = _react.useMemo.call(void 0,
298
- () => _lodash.debounce.call(void 0, async (payload) => {
299
- try {
300
- const results = await queryFn(payload);
301
- const mergedOptions = [
302
- ...state.selectedOptions,
303
- ...results.filter(
304
- (option) => !state.selectedOptions.some(
305
- (selected) => selected.value === option.value
306
- )
307
- )
308
- ];
309
- dispatch({ type: "SET_OPTIONS", payload: mergedOptions });
310
- } catch (_error) {
311
- dispatch({ type: "SET_LOADING", payload: false });
312
- }
313
- }, debounceMs),
314
- [queryFn, state.selectedOptions, debounceMs]
315
- );
316
- _react.useEffect.call(void 0, () => {
317
- if (!_optionalChain([initialValues, 'optionalAccess', _3 => _3.length]) || state.initialLoaded) return;
318
- dispatch({ type: "SET_LOADING", payload: true });
319
- const payload = {
320
- query: null,
321
- initialValues
322
- };
323
- queryFn(payload).then((results) => {
324
- if (results) {
325
- dispatch({ type: "SET_SELECTED_OPTIONS", payload: results });
326
- dispatch({ type: "SET_OPTIONS", payload: results });
327
- dispatch({ type: "SET_INITIAL_LOADED", payload: true });
328
- field.onChange(results.map((option) => option.value));
329
- }
330
- dispatch({ type: "SET_LOADING", payload: false });
331
- }).catch((_error) => {
332
- dispatch({ type: "SET_LOADING", payload: false });
333
- });
334
- }, [initialValues, state.initialLoaded, queryFn, field]);
335
- _react.useEffect.call(void 0, () => {
336
- if (!state.initialLoaded) return;
337
- if (state.inputValue === "") {
338
- dispatch({ type: "RESET_OPTIONS" });
339
- return;
340
- }
341
- dispatch({ type: "SET_LOADING", payload: true });
342
- const payload = {
343
- query: state.inputValue,
344
- initialValues: null
345
- };
346
- debouncedFetch(payload);
347
- }, [state.inputValue, state.initialLoaded, debouncedFetch]);
348
- const handleChange = _react.useCallback.call(void 0,
349
- (event, newValue) => {
350
- dispatch({ type: "SET_SELECTED_OPTIONS", payload: newValue });
351
- field.onChange(newValue.map((option) => option.value));
352
- },
353
- [field]
354
- );
355
- const handleInputChange = _react.useCallback.call(void 0,
356
- (event, newInputValue) => {
357
- dispatch({ type: "SET_INPUT_VALUE", payload: newInputValue });
358
- },
359
- []
360
- );
361
- const isOptionEqualToValue = _react.useCallback.call(void 0,
362
- (option, value) => option.value === value.value,
363
- []
364
- );
365
- const getOptionLabel = _react.useCallback.call(void 0, (option) => option.label, []);
366
- const defaultRenderInput = _react.useCallback.call(void 0,
367
- (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
368
- _material.TextField,
369
- {
370
- ...params,
371
- label,
372
- placeholder,
373
- variant,
374
- error: !!error,
375
- helperText: _optionalChain([error, 'optionalAccess', _4 => _4.message]),
376
- slotProps: {
377
- input: {
378
- ...params.InputProps,
379
- endAdornment: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
380
- state.loading && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.CircularProgress, { color: "inherit", size: 20 }),
381
- params.InputProps.endAdornment
382
- ] })
383
- }
384
- }
385
- }
386
- ),
387
- [
388
- label,
389
- placeholder,
390
- variant,
391
- error,
392
- state.loading
393
- ]
394
- );
395
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
396
- _material.Autocomplete,
397
- {
398
- multiple: true,
399
- options: state.options,
400
- value: state.selectedOptions,
401
- loading: state.loading,
402
- disabled,
403
- isOptionEqualToValue,
404
- getOptionLabel,
405
- filterSelectedOptions: true,
406
- onChange: handleChange,
407
- onInputChange: handleInputChange,
408
- loadingText,
409
- noOptionsText,
410
- renderInput: renderInput || defaultRenderInput,
411
- ...rest
412
- }
413
- );
414
- };
415
- var AsyncMultiSelect2 = ({
416
- gridProps = {},
417
- ...props
418
- }) => {
419
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, AsyncMultiSelect2Component, { ...props }) });
420
- };
421
- AsyncMultiSelect2.displayName = "AsyncMultiSelect2";
422
-
423
- // src/wrappers/CheckboxElement/CheckboxElement.tsx
424
-
425
-
426
-
427
-
428
-
429
-
430
-
431
-
432
-
433
-
434
- var Component2 = function CheckboxElement(props) {
435
- const {
436
- name,
437
- control,
438
- label,
439
- labelProps,
440
- helperText,
441
- parseError,
442
- transform,
443
- disabled,
444
- onChange: customOnChange,
445
- ...rest
446
- } = props;
447
- const {
448
- field,
449
- fieldState: { error }
450
- } = _reacthookform.useController.call(void 0, {
451
- name,
452
- control,
453
- disabled
454
- });
455
- if (field.value == null || field.value == void 0) {
456
- field.onChange(false);
457
- }
458
- const customOutputTransform = _optionalChain([transform, 'optionalAccess', _5 => _5.output]);
459
- const { value, onChange } = _chunkY3QTSDLJcjs.useTransform.call(void 0, {
460
- value: field.value,
461
- onChange: field.onChange,
462
- transform: {
463
- input: typeof _optionalChain([transform, 'optionalAccess', _6 => _6.input]) === "function" ? transform.input : (value2) => !!value2,
464
- output: typeof customOutputTransform === "function" ? (eventOrValue, _value) => {
465
- const event = eventOrValue;
466
- const checked = _value;
467
- return customOutputTransform(event, checked);
468
- } : (eventOrValue, _value) => {
469
- const checked = _value;
470
- return checked;
471
- }
472
- }
473
- });
474
- const handleChange = (event, checked) => {
475
- onChange(event, checked);
476
- if (typeof customOnChange === "function") {
477
- customOnChange(event, checked);
478
- }
479
- };
480
- const displayError = error ? typeof parseError === "function" ? parseError(error) : error.message : null;
481
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _material.FormControl, { error: !!error, disabled, children: [
482
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormGroup, { row: true, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
483
- _material.FormControlLabel,
484
- {
485
- label: label || "",
486
- ...labelProps,
487
- disabled,
488
- control: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
489
- _material.Checkbox,
490
- {
491
- ...rest,
492
- color: rest.color || "primary",
493
- checked: value,
494
- disabled,
495
- onChange: handleChange,
496
- ref: field.ref
497
- }
498
- )
499
- }
500
- ) }),
501
- (displayError || helperText) && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormHelperText, { error: !!error, children: displayError || helperText })
502
- ] });
503
- };
504
- var CheckboxElement2 = ({
505
- gridProps = {},
506
- ...props
507
- }) => {
508
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component2, { ...props }) });
509
- };
510
-
511
- // src/wrappers/CheckboxGroup/CheckboxGroup.tsx
512
-
513
-
514
-
515
-
516
-
517
-
518
-
519
-
520
-
521
-
522
-
523
- var Component3 = function CheckboxGroup(props) {
524
- const { name, control, labelProps, options, ...rest } = props;
525
- const {
526
- field,
527
- fieldState: { error }
528
- } = _reacthookform.useController.call(void 0, {
529
- name,
530
- control,
531
- disabled: rest.disabled
532
- });
533
- const [selectedValues, setSelectedValues] = _react.useState.call(void 0,
534
- options.filter((c) => _optionalChain([field, 'access', _7 => _7.value, 'optionalAccess', _8 => _8.includes, 'call', _9 => _9(c.Value)])).map((c) => c.Value) || []
535
- );
536
- _react.useEffect.call(void 0, () => {
537
- field.onChange(selectedValues ? [...selectedValues] : []);
538
- }, [selectedValues, field]);
539
- const handleChange = _react.useCallback.call(void 0, (event) => {
540
- const value = Number.parseInt(event.target.value, 10);
541
- if (Number.isNaN(value)) {
542
- return;
543
- }
544
- if (event.target.checked) {
545
- setSelectedValues((prev) => [...prev, value]);
546
- } else {
547
- setSelectedValues((prev) => prev.filter((item) => item !== value));
548
- }
549
- }, []);
550
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _material.FormControl, { error: !!error, children: [
551
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormGroup, { row: true, children: options.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
552
- _material.FormControlLabel,
553
- {
554
- label: option.Label,
555
- ...labelProps,
556
- control: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
557
- _material.Checkbox,
558
- {
559
- ...rest,
560
- color: rest.color || "primary",
561
- value: option.Value,
562
- checked: selectedValues.includes(option.Value),
563
- onChange: handleChange
564
- }
565
- )
566
- },
567
- `${option.Value}`
568
- )) }),
569
- error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormHelperText, { error: !!error, children: error.message })
570
- ] });
571
- };
572
- var CheckboxGroup2 = ({
573
- gridProps = {},
574
- ...props
575
- }) => {
576
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component3, { ...props }) });
577
- };
578
- CheckboxGroup2.displayName = "CheckboxGroup";
579
-
580
- // src/wrappers/DatePickerElement/DatePickerElement.tsx
581
-
582
-
583
-
584
- // src/wrappers/DatePickerElement/DatePickerElementCore.tsx
585
-
586
- var _xdatepickers = require('@mui/x-date-pickers');
587
-
588
-
589
-
590
- // src/wrappers/DatePickerElement/hooks/useDatePickerValue.ts
591
- var _internals = require('@mui/x-date-pickers/internals');
592
-
593
- function readDatePickerValueAsDate(adapter, value) {
594
- if (value === null || value === void 0) {
595
- return null;
596
- }
597
- if (typeof value === "string") {
598
- if (value === "") {
599
- return null;
600
- }
601
- const parsedDate = adapter.utils.date(value);
602
- return parsedDate;
603
- }
604
- return value;
605
- }
606
- function useDatePickerValue(options) {
607
- const { field, transform } = options;
608
- const adapter = _internals.useLocalizationContext.call(void 0, );
609
- const value = _react.useMemo.call(void 0, () => {
610
- if (typeof _optionalChain([transform, 'optionalAccess', _10 => _10.input]) === "function") {
611
- return transform.input(field.value);
612
- }
613
- return readDatePickerValueAsDate(adapter, field.value);
614
- }, [field.value, _optionalChain([transform, 'optionalAccess', _11 => _11.input]), adapter]);
615
- const onChange = _react.useCallback.call(void 0,
616
- (newValue, context) => {
617
- if (typeof _optionalChain([transform, 'optionalAccess', _12 => _12.output]) === "function") {
618
- const transformedValue = transform.output(newValue, context);
619
- field.onChange(transformedValue);
620
- } else {
621
- field.onChange(newValue);
622
- }
623
- },
624
- // eslint-disable-next-line react-hooks/exhaustive-deps
625
- [field.onChange, _optionalChain([transform, 'optionalAccess', _13 => _13.output])]
626
- );
627
- return {
628
- value,
629
- onChange
630
- };
631
- }
632
-
633
- // src/wrappers/DatePickerElement/hooks/useDatePickerValidation.ts
634
-
635
- var DEFAULT_ERROR_MESSAGES = {
636
- invalidDate: "Please enter a valid date",
637
- minDate: "Date must be after the minimum allowed date",
638
- maxDate: "Date must be before the maximum allowed date",
639
- disabledDate: "This date is not allowed",
640
- required: "This field is required"
641
- };
642
- function useDatePickerValidation(options) {
643
- const { fieldState, validation, parseError, value } = options;
644
- const validationResult = _react.useMemo.call(void 0, () => {
645
- const { error: fieldError, invalid } = fieldState;
646
- let currentError = fieldError;
647
- if (!fieldError && value && validation) {
648
- const { minDate, maxDate, shouldDisableDate, errorMessages } = validation;
649
- if (minDate && value < minDate) {
650
- currentError = {
651
- type: "minDate",
652
- message: _optionalChain([errorMessages, 'optionalAccess', _14 => _14.minDate]) || DEFAULT_ERROR_MESSAGES.minDate
653
- };
654
- } else if (maxDate && value > maxDate) {
655
- currentError = {
656
- type: "maxDate",
657
- message: _optionalChain([errorMessages, 'optionalAccess', _15 => _15.maxDate]) || DEFAULT_ERROR_MESSAGES.maxDate
658
- };
659
- } else if (shouldDisableDate && shouldDisableDate(value)) {
660
- currentError = {
661
- type: "disabledDate",
662
- message: _optionalChain([errorMessages, 'optionalAccess', _16 => _16.disabledDate]) || DEFAULT_ERROR_MESSAGES.disabledDate
663
- };
664
- }
665
- }
666
- const hasError = Boolean(currentError);
667
- return {
668
- hasError,
669
- error: currentError,
670
- invalid: invalid || hasError
671
- };
672
- }, [fieldState, validation, value]);
673
- const errorMessage = _react.useMemo.call(void 0, () => {
674
- if (!validationResult.error) {
675
- return null;
676
- }
677
- if (parseError) {
678
- return parseError(validationResult.error);
679
- }
680
- if (typeof validationResult.error === "string") {
681
- return validationResult.error;
682
- }
683
- if ("message" in validationResult.error && validationResult.error.message) {
684
- return validationResult.error.message;
685
- }
686
- if ("type" in validationResult.error) {
687
- const errorType = validationResult.error.type;
688
- switch (errorType) {
689
- case "required":
690
- return DEFAULT_ERROR_MESSAGES.required;
691
- case "minDate":
692
- return DEFAULT_ERROR_MESSAGES.minDate;
693
- case "maxDate":
694
- return DEFAULT_ERROR_MESSAGES.maxDate;
695
- case "disabledDate":
696
- return DEFAULT_ERROR_MESSAGES.disabledDate;
697
- case "invalidDate":
698
- default:
699
- return DEFAULT_ERROR_MESSAGES.invalidDate;
700
- }
701
- }
702
- return DEFAULT_ERROR_MESSAGES.invalidDate;
703
- }, [validationResult.error, parseError]);
704
- return {
705
- ...validationResult,
706
- errorMessage
707
- };
708
- }
709
-
710
- // src/wrappers/DatePickerElement/hooks/useDatePickerStyles.ts
711
-
712
-
713
- function useDatePickerStyles(options = {}) {
714
- const { disabled, hasError, loading, textReadOnly, sx: customSx } = options;
715
- const theme = _material.useTheme.call(void 0, );
716
- const computedSx = _react.useMemo.call(void 0, () => {
717
- const baseStyles = {
718
- // Input field styling
719
- "& .MuiOutlinedInput-root": {
720
- backgroundColor: disabled ? theme.palette.action.disabledBackground : "transparent",
721
- // Transition for smooth state changes
722
- transition: theme.transitions.create([
723
- "background-color",
724
- "border-color",
725
- "color"
726
- ], {
727
- duration: theme.transitions.duration.short
728
- }),
729
- // Error state styling
730
- ...hasError && {
731
- borderColor: theme.palette.error.main,
732
- "&:hover": {
733
- borderColor: theme.palette.error.main
734
- },
735
- "&.Mui-focused": {
736
- borderColor: theme.palette.error.main,
737
- boxShadow: `0 0 0 2px ${theme.palette.error.main}25`
738
- // 25 is 15% opacity in hex
739
- }
740
- },
741
- // Loading state styling
742
- ...loading && {
743
- opacity: 0.7,
744
- pointerEvents: "none"
745
- }
746
- },
747
- // Input element styling
748
- "& .MuiInputBase-input": {
749
- cursor: disabled ? "not-allowed" : textReadOnly ? "pointer" : "text",
750
- // Read-only specific styling
751
- ...textReadOnly && !disabled && {
752
- cursor: "pointer",
753
- userSelect: "none",
754
- caretColor: "transparent"
755
- // Hide text cursor in read-only mode
756
- },
757
- // Loading state
758
- ...loading && {
759
- cursor: "wait"
760
- }
761
- },
762
- // Required field asterisk styling
763
- "& .MuiInputLabel-asterisk": {
764
- color: theme.palette.error.main,
765
- fontSize: "1.2em"
766
- },
767
- // Label styling with better contrast
768
- "& .MuiInputLabel-root": {
769
- color: hasError ? theme.palette.error.main : theme.palette.text.secondary,
770
- // Ensure proper contrast for disabled state
771
- ...disabled && {
772
- color: theme.palette.text.disabled
773
- }
774
- },
775
- // Helper text styling
776
- "& .MuiFormHelperText-root": {
777
- marginLeft: theme.spacing(1),
778
- marginRight: theme.spacing(1),
779
- // Error state
780
- ...hasError && {
781
- color: theme.palette.error.main
782
- }
783
- },
784
- // Calendar icon styling
785
- "& .MuiInputAdornment-root": {
786
- color: disabled ? theme.palette.action.disabled : hasError ? theme.palette.error.main : theme.palette.action.active
787
- },
788
- // Focus ring for accessibility
789
- "& .MuiOutlinedInput-root.Mui-focused": {
790
- outline: `2px solid ${theme.palette.primary.main}50`,
791
- // 50 is 31% opacity
792
- outlineOffset: "2px"
793
- },
794
- // Enhanced contrast for dark themes
795
- ...theme.palette.mode === "dark" && {
796
- "& .MuiOutlinedInput-root": {
797
- borderWidth: 2
798
- }
799
- }
800
- };
801
- return customSx ? [baseStyles, customSx] : baseStyles;
802
- }, [
803
- theme,
804
- disabled,
805
- hasError,
806
- loading,
807
- textReadOnly,
808
- customSx
809
- ]);
810
- const className = _react.useMemo.call(void 0, () => {
811
- const classes = [];
812
- if (disabled) classes.push("DatePickerElement--disabled");
813
- if (hasError) classes.push("DatePickerElement--error");
814
- if (loading) classes.push("DatePickerElement--loading");
815
- if (textReadOnly) classes.push("DatePickerElement--readOnly");
816
- return classes.length > 0 ? classes.join(" ") : void 0;
817
- }, [disabled, hasError, loading, textReadOnly]);
818
- return {
819
- sx: computedSx,
820
- className
821
- };
822
- }
823
-
824
- // src/wrappers/DatePickerElement/DatePickerElementCore.tsx
825
-
826
- var DatePickerElementCore = _react.forwardRef.call(void 0,
827
- (props, ref) => {
828
- const {
829
- name,
830
- required = false,
831
- control,
832
- parseError,
833
- transform,
834
- validation,
835
- label,
836
- placeholder,
837
- textReadOnly = false,
838
- helperText,
839
- inputProps = {},
840
- slotProps = {},
841
- datePickerProps = {},
842
- variant = "outlined",
843
- loading = false,
844
- LoadingComponent,
845
- ...restProps
846
- } = props;
847
- const {
848
- disabled,
849
- inputRef: externalInputRef,
850
- onClose,
851
- ...restDatePickerProps
852
- } = datePickerProps;
853
- const { field, fieldState } = _reacthookform.useController.call(void 0, {
854
- name,
855
- control,
856
- defaultValue: null
857
- // Let react-hook-form handle the default value typing
858
- });
859
- const { value, onChange: onValueChange } = useDatePickerValue({
860
- field,
861
- transform
862
- });
863
- const { hasError, errorMessage, invalid } = useDatePickerValidation({
864
- fieldState,
865
- validation,
866
- parseError,
867
- value
868
- });
869
- const { className } = useDatePickerStyles({
870
- disabled,
871
- hasError,
872
- loading,
873
- textReadOnly
874
- });
875
- const handleInputRef = _material.useForkRef.call(void 0, field.ref, externalInputRef);
876
- const handleChange = _react.useCallback.call(void 0,
877
- (newValue, context) => {
878
- onValueChange(newValue, context);
879
- },
880
- [onValueChange]
881
- );
882
- const handleClose = _react.useCallback.call(void 0,
883
- (...args) => {
884
- field.onBlur();
885
- if (onClose) {
886
- onClose(...args);
887
- }
888
- },
889
- // eslint-disable-next-line react-hooks/exhaustive-deps
890
- [field.onBlur, onClose]
891
- );
892
- const handleTextFieldBlur = _react.useCallback.call(void 0,
893
- (event) => {
894
- field.onBlur();
895
- if (typeof inputProps.onBlur === "function") {
896
- inputProps.onBlur(event);
897
- }
898
- },
899
- // eslint-disable-next-line react-hooks/exhaustive-deps
900
- [field.onBlur, inputProps.onBlur]
901
- );
902
- const memoizedSlotProps = _react.useMemo.call(void 0,
903
- () => ({
904
- ...slotProps,
905
- actionBar: {
906
- actions: ["clear", "today", "cancel", "accept"],
907
- ...slotProps.actionBar
908
- },
909
- textField: {
910
- ...inputProps,
911
- required,
912
- placeholder,
913
- fullWidth: true,
914
- variant,
915
- onBlur: handleTextFieldBlur,
916
- error: hasError,
917
- helperText: hasError ? errorMessage : helperText,
918
- inputProps: {
919
- readOnly: textReadOnly,
920
- "aria-invalid": invalid,
921
- "aria-describedby": hasError ? `${name}-error` : void 0,
922
- ...inputProps.inputProps
923
- },
924
- // Add loading indicator if provided
925
- ...loading && LoadingComponent && {
926
- InputProps: {
927
- endAdornment: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, LoadingComponent, {}),
928
- ...inputProps.InputProps
929
- }
930
- },
931
- ...slotProps.textField
932
- }
933
- }),
934
- [
935
- slotProps,
936
- inputProps,
937
- required,
938
- placeholder,
939
- variant,
940
- handleTextFieldBlur,
941
- hasError,
942
- errorMessage,
943
- helperText,
944
- textReadOnly,
945
- invalid,
946
- name,
947
- loading,
948
- LoadingComponent
949
- ]
950
- );
951
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
952
- _xdatepickers.DatePicker,
953
- {
954
- ...restProps,
955
- ...restDatePickerProps,
956
- ref,
957
- name,
958
- value,
959
- onChange: handleChange,
960
- onClose: handleClose,
961
- inputRef: handleInputRef,
962
- label,
963
- disabled,
964
- className,
965
- slotProps: memoizedSlotProps,
966
- "aria-invalid": invalid,
967
- "aria-describedby": hasError ? `${name}-error` : void 0
968
- }
969
- );
970
- }
971
- );
972
- DatePickerElementCore.displayName = "DatePickerElementCore";
973
-
974
- // src/wrappers/DatePickerElement/DatePickerElement.tsx
975
-
976
- var DatePickerElement = _react.forwardRef.call(void 0, (props, ref) => {
977
- const {
978
- gridProps = { size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 } },
979
- ...coreProps
980
- } = props;
981
- if (gridProps === false) {
982
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
983
- DatePickerElementCore,
984
- {
985
- ref,
986
- ...coreProps
987
- }
988
- );
989
- }
990
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
991
- _material.Grid,
992
- {
993
- ref,
994
- ...gridProps,
995
- children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
996
- DatePickerElementCore,
997
- {
998
- ...coreProps
999
- }
1000
- )
1001
- }
1002
- );
1003
- });
1004
- DatePickerElement.displayName = "DatePickerElement";
1005
-
1006
- // src/wrappers/DatePickerElement/utils.ts
1007
- function isValidDate(value) {
1008
- if (value === null || value === void 0) {
1009
- return false;
1010
- }
1011
- if (value instanceof Date) {
1012
- return !isNaN(value.getTime());
1013
- }
1014
- if (typeof value === "object" && value !== null) {
1015
- if ("isValid" in value && typeof value.isValid === "function") {
1016
- return value.isValid();
1017
- }
1018
- if ("isValid" in value && typeof value.isValid === "boolean") {
1019
- return value.isValid;
1020
- }
1021
- }
1022
- return false;
1023
- }
1024
- function isParsableDateString(value) {
1025
- if (typeof value !== "string" || value === "") {
1026
- return false;
1027
- }
1028
- const isoDateRegex = /^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d{3})?(?:Z|[+-]\d{2}:\d{2})?)?$/;
1029
- if (isoDateRegex.test(value)) {
1030
- return true;
1031
- }
1032
- const parsed = new Date(value);
1033
- return !isNaN(parsed.getTime());
1034
- }
1035
- function createDateInputTransform(adapter) {
1036
- return (value) => {
1037
- if (value === null || value === void 0) {
1038
- return null;
1039
- }
1040
- if (typeof value === "string") {
1041
- if (value === "") {
1042
- return null;
1043
- }
1044
- try {
1045
- const parsed = adapter.utils.date(value);
1046
- return isValidDate(parsed) ? parsed : null;
1047
- } catch (e2) {
1048
- return null;
1049
- }
1050
- }
1051
- if (isValidDate(value)) {
1052
- return value;
1053
- }
1054
- return null;
1055
- };
1056
- }
1057
- function createDateOutputTransform(format) {
1058
- return (value) => {
1059
- if (value === null || value === void 0) {
1060
- return null;
1061
- }
1062
- if (!isValidDate(value)) {
1063
- return null;
1064
- }
1065
- if (!format) {
1066
- return value;
1067
- }
1068
- try {
1069
- if (value instanceof Date) {
1070
- if (format === "iso") {
1071
- return value.toISOString();
1072
- }
1073
- if (format === "date-only") {
1074
- return value.toISOString().split("T")[0];
1075
- }
1076
- }
1077
- if (typeof value.format === "function") {
1078
- return value.format(format);
1079
- }
1080
- if (typeof value.format === "function") {
1081
- return value.format(format);
1082
- }
1083
- if (typeof value.toFormat === "function") {
1084
- return value.toFormat(format);
1085
- }
1086
- return value;
1087
- } catch (e3) {
1088
- return null;
1089
- }
1090
- };
1091
- }
1092
- function createDefaultDatePickerConfig() {
1093
- return {
1094
- // Default slot props for consistent behavior
1095
- slotProps: {
1096
- actionBar: {
1097
- actions: ["clear", "today", "cancel", "accept"]
1098
- },
1099
- textField: {
1100
- fullWidth: true,
1101
- variant: "outlined"
1102
- }
1103
- },
1104
- // Default grid props for layout consistency
1105
- gridProps: {
1106
- size: { xs: 12, sm: 12, md: 12, lg: 12, xl: 12 }
1107
- },
1108
- // Default validation configuration
1109
- validation: {
1110
- errorMessages: {
1111
- invalidDate: "Please enter a valid date",
1112
- minDate: "Date must be after the minimum allowed date",
1113
- maxDate: "Date must be before the maximum allowed date",
1114
- disabledDate: "This date is not allowed"
1115
- }
1116
- }
1117
- };
1118
- }
1119
- function extractErrorMessage(error) {
1120
- if (error === null || error === void 0) {
1121
- return "";
1122
- }
1123
- if (typeof error === "string") {
1124
- return error;
1125
- }
1126
- if (typeof error === "object" && error !== null) {
1127
- if ("message" in error && typeof error.message === "string") {
1128
- return error.message;
1129
- }
1130
- if ("type" in error && typeof error.type === "string") {
1131
- const errorType = error.type;
1132
- switch (errorType) {
1133
- case "invalidDate":
1134
- return "Please enter a valid date";
1135
- case "minDate":
1136
- return "Date is too early";
1137
- case "maxDate":
1138
- return "Date is too late";
1139
- case "disabledDate":
1140
- return "This date is not available";
1141
- default:
1142
- return "Invalid date selection";
1143
- }
1144
- }
1145
- }
1146
- return "Invalid input";
1147
- }
1148
- function createStableKey(config) {
1149
- try {
1150
- return JSON.stringify(config, (key, value) => {
1151
- if (typeof value === "object" && value !== null && !Array.isArray(value)) {
1152
- const sorted = {};
1153
- Object.keys(value).sort().forEach((k) => {
1154
- sorted[k] = value[k];
1155
- });
1156
- return sorted;
1157
- }
1158
- return value;
1159
- });
1160
- } catch (e4) {
1161
- return Object.keys(config).sort().join("-");
1162
- }
1163
- }
1164
-
1165
- // src/wrappers/PasswordElement/PasswordElement.tsx
1166
- var _Visibility = require('@mui/icons-material/Visibility'); var _Visibility2 = _interopRequireDefault(_Visibility);
1167
- var _VisibilityOff = require('@mui/icons-material/VisibilityOff'); var _VisibilityOff2 = _interopRequireDefault(_VisibilityOff);
1168
-
1169
-
1170
-
1171
-
1172
-
1173
-
1174
-
1175
-
1176
-
1177
-
1178
- var Component4 = function PasswordEl(props) {
1179
- const {
1180
- iconColor,
1181
- renderIcon = (password2) => password2 ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _Visibility2.default, {}) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _VisibilityOff2.default, {}),
1182
- slotProps,
1183
- name,
1184
- control,
1185
- inputRef,
1186
- onBlur,
1187
- ...rest
1188
- } = props;
1189
- const [password, setPassword] = _react.useState.call(void 0, true);
1190
- const endAdornment = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.InputAdornment, { position: "end", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1191
- _material.IconButton,
1192
- {
1193
- onMouseDown: (e) => e.preventDefault(),
1194
- onClick: () => setPassword(!password),
1195
- tabIndex: -1,
1196
- color: _nullishCoalesce(iconColor, () => ( "default")),
1197
- children: renderIcon(password)
1198
- }
1199
- ) });
1200
- const {
1201
- field,
1202
- fieldState: { error }
1203
- } = _reacthookform.useController.call(void 0, {
1204
- name,
1205
- control
1206
- });
1207
- const handleInputRef = _material.useForkRef.call(void 0, field.ref, inputRef);
1208
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1209
- _material.TextField,
1210
- {
1211
- ...rest,
1212
- inputRef: handleInputRef,
1213
- type: password ? "password" : "text",
1214
- value: _nullishCoalesce(field.value, () => ( "")),
1215
- fullWidth: true,
1216
- variant: _nullishCoalesce(rest.variant, () => ( "outlined")),
1217
- onChange: (event) => {
1218
- field.onChange(event);
1219
- if (typeof rest.onChange === "function") {
1220
- rest.onChange(event);
1221
- }
1222
- },
1223
- onBlur: (event) => {
1224
- field.onBlur();
1225
- if (typeof onBlur === "function") {
1226
- onBlur(event);
1227
- }
1228
- },
1229
- ...typeof slotProps === "undefined" ? {
1230
- InputProps: {
1231
- endAdornment
1232
- }
1233
- } : {
1234
- slotProps: {
1235
- ...slotProps,
1236
- input: {
1237
- endAdornment,
1238
- ..._optionalChain([slotProps, 'optionalAccess', _17 => _17.input])
1239
- }
1240
- }
1241
- },
1242
- error: !!error,
1243
- helperText: error ? error.message : ""
1244
- }
1245
- );
1246
- };
1247
- var PasswordElement = ({
1248
- gridProps = {},
1249
- ...props
1250
- }) => {
1251
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component4, { ...props }) });
1252
- };
1253
-
1254
- // src/wrappers/RadioButtonGroup/RadioButtonGroup.tsx
1255
-
1256
-
1257
-
1258
-
1259
-
1260
-
1261
-
1262
-
1263
-
1264
-
1265
-
1266
- var Component5 = function RadioButtonGroup(props) {
1267
- const {
1268
- options,
1269
- label,
1270
- name,
1271
- labelKey = "label",
1272
- valueKey = "id",
1273
- disabledKey = "disabled",
1274
- required,
1275
- emptyOptionLabel,
1276
- returnObject,
1277
- row = true,
1278
- control,
1279
- type,
1280
- labelProps,
1281
- disabled,
1282
- formLabelProps,
1283
- radioProps,
1284
- transform,
1285
- ...rest
1286
- } = props;
1287
- const {
1288
- field,
1289
- fieldState: { error }
1290
- } = _reacthookform.useController.call(void 0, {
1291
- name,
1292
- disabled,
1293
- control
1294
- });
1295
- const { value, onChange } = _chunkY3QTSDLJcjs.useTransform.call(void 0, {
1296
- value: field.value,
1297
- onChange: field.onChange,
1298
- transform: {
1299
- input: typeof _optionalChain([transform, 'optionalAccess', _18 => _18.input]) === "function" ? transform.input : (value2) => {
1300
- return value2 || "";
1301
- },
1302
- output: typeof _optionalChain([transform, 'optionalAccess', _19 => _19.output]) === "function" ? _optionalChain([transform, 'optionalAccess', _20 => _20.output]) : (_event, value2) => {
1303
- if (value2 && type === "number") {
1304
- return Number(value2);
1305
- }
1306
- if (value2 && type === "boolean") {
1307
- return Boolean(value2);
1308
- }
1309
- return value2;
1310
- }
1311
- }
1312
- });
1313
- const onRadioChange = (event, radioValue) => {
1314
- const returnValue = returnObject ? options.find((option) => option[valueKey] === radioValue) : radioValue;
1315
- onChange(event, returnValue);
1316
- if (typeof rest.onChange === "function") {
1317
- rest.onChange(returnValue);
1318
- }
1319
- };
1320
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _material.FormControl, { error: !!error, children: [
1321
- label && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormLabel, { ...formLabelProps, required, error: !!error, children: label }),
1322
- /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _material.RadioGroup, { onChange: onRadioChange, name, row, value, children: [
1323
- emptyOptionLabel && /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1324
- _material.FormControlLabel,
1325
- {
1326
- ...labelProps,
1327
- control: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1328
- _material.Radio,
1329
- {
1330
- ...radioProps,
1331
- checked: !value
1332
- }
1333
- ),
1334
- label: emptyOptionLabel,
1335
- value: ""
1336
- }
1337
- ),
1338
- options.map((option) => {
1339
- const optionKey = option[valueKey];
1340
- const optionDisabled = option[disabledKey] || false;
1341
- let val = returnObject ? _optionalChain([value, 'optionalAccess', _21 => _21[valueKey]]) : value;
1342
- if (type === "number" && val !== void 0) {
1343
- val = Number(val);
1344
- } else if (type === "boolean" && val !== void 0) {
1345
- val = Boolean(val);
1346
- }
1347
- const isChecked = val === optionKey;
1348
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1349
- _material.FormControlLabel,
1350
- {
1351
- ...labelProps,
1352
- control: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1353
- _material.Radio,
1354
- {
1355
- ...radioProps,
1356
- disabled: disabled || optionDisabled,
1357
- checked: isChecked
1358
- }
1359
- ),
1360
- value: optionKey,
1361
- label: option[labelKey]
1362
- },
1363
- String(optionKey)
1364
- );
1365
- })
1366
- ] }),
1367
- error && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.FormHelperText, { children: error.message })
1368
- ] });
1369
- };
1370
- var RadioButtonGroup2 = ({
1371
- gridProps = {},
1372
- ...props
1373
- }) => {
1374
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1375
- Component5,
1376
- {
1377
- ...props
1378
- }
1379
- ) });
1380
- };
1381
- RadioButtonGroup2.displayName = "RadioButtonGroup";
1382
-
1383
- // src/wrappers/SelectCascadeElement/SelectCascadeElement.tsx
1384
-
1385
-
1386
-
1387
-
1388
- var Component6 = function SelectCascadeElement(props) {
1389
- const {
1390
- labelField = "Label",
1391
- valueField = "Value",
1392
- name,
1393
- onBlur,
1394
- onChange,
1395
- disabled,
1396
- options: optionsInput,
1397
- control,
1398
- loading = false,
1399
- placeholder,
1400
- label,
1401
- dependsOn,
1402
- textFieldProps = {},
1403
- variant,
1404
- isEdit = false,
1405
- ...rest
1406
- } = props;
1407
- const { required, ...restTextProps } = textFieldProps;
1408
- const options = _react.useMemo.call(void 0, () => optionsInput || [], [optionsInput]);
1409
- const getOptionKey = _react.useCallback.call(void 0,
1410
- (option) => {
1411
- if (typeof option === "string" || typeof option === "number")
1412
- return option;
1413
- const key = option ? option[valueField] : void 0;
1414
- return key !== void 0 && key !== null ? String(key) : "";
1415
- },
1416
- [valueField]
1417
- );
1418
- const getOptionLabel = _react.useCallback.call(void 0,
1419
- (option) => {
1420
- if (typeof option === "string") return option;
1421
- return option ? String(option[labelField]) : "";
1422
- },
1423
- [labelField]
1424
- );
1425
- const isOptionEqualToValue = (option, value) => getOptionKey(option) === getOptionKey(value);
1426
- const {
1427
- field,
1428
- fieldState: { error }
1429
- } = _reacthookform.useController.call(void 0, {
1430
- name,
1431
- control
1432
- });
1433
- const { field: dependentField } = _reacthookform.useController.call(void 0, {
1434
- name: dependsOn,
1435
- control
1436
- });
1437
- const parentValueRef = _react.useRef.call(void 0, _nullishCoalesce(dependentField.value, () => ( null)));
1438
- const hasAutoSelected = _react.useRef.call(void 0, false);
1439
- _react.useEffect.call(void 0, () => {
1440
- if (_optionalChain([parentValueRef, 'optionalAccess', _22 => _22.current]) !== dependentField.value) {
1441
- hasAutoSelected.current = false;
1442
- }
1443
- if (!!field.value && _optionalChain([parentValueRef, 'optionalAccess', _23 => _23.current]) !== dependentField.value) {
1444
- field.onChange(null);
1445
- }
1446
- }, [dependentField.value]);
1447
- _react.useEffect.call(void 0, () => {
1448
- if (!isEdit && !disabled && options.length === 1 && !!dependentField.value && !hasAutoSelected.current && field.value == null) {
1449
- field.onChange(getOptionKey(options[0]));
1450
- hasAutoSelected.current = true;
1451
- }
1452
- console.log(
1453
- !isEdit,
1454
- !disabled,
1455
- options.length === 1,
1456
- !!dependentField.value,
1457
- !hasAutoSelected,
1458
- field.value
1459
- );
1460
- }, [
1461
- options,
1462
- field.value,
1463
- field.onChange,
1464
- hasAutoSelected,
1465
- isEdit,
1466
- disabled,
1467
- field,
1468
- getOptionKey,
1469
- dependentField.onChange
1470
- ]);
1471
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1472
- _material.Autocomplete,
1473
- {
1474
- ...rest,
1475
- value: options.map((option) => getOptionKey(option) === field.value ? option : null).find(Boolean) || null,
1476
- loading,
1477
- options,
1478
- getOptionKey,
1479
- getOptionLabel,
1480
- isOptionEqualToValue,
1481
- ref: field.ref,
1482
- disabled: dependentField.value == null || disabled,
1483
- onChange: (event, newValue, reason) => {
1484
- field.onChange(newValue ? getOptionKey(newValue) : null);
1485
- if (onChange && typeof onChange === "function") {
1486
- onChange(event, newValue, reason);
1487
- }
1488
- },
1489
- onBlur: (event) => {
1490
- field.onBlur();
1491
- if (typeof onBlur === "function") {
1492
- onBlur(event);
1493
- }
1494
- },
1495
- fullWidth: true,
1496
- renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1497
- _material.TextField,
1498
- {
1499
- ...params,
1500
- ...restTextProps,
1501
- fullWidth: true,
1502
- error: !!error,
1503
- required: required || options.length == 0,
1504
- helperText: error ? error.message : "",
1505
- placeholder,
1506
- label,
1507
- variant: variant ? variant : "outlined"
1508
- }
1509
- )
1510
- }
1511
- );
1512
- };
1513
- var SelectCascadeElement2 = ({
1514
- gridProps = {},
1515
- ...props
1516
- }) => {
1517
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component6, { ...props }) });
1518
- };
1519
- SelectCascadeElement2.displayName = "SelectCascadeElement";
1520
-
1521
- // src/wrappers/SelectElement/SelectElement.tsx
1522
-
1523
-
1524
-
1525
-
1526
-
1527
-
1528
-
1529
-
1530
-
1531
- var Component7 = function SelectElement(props) {
1532
- const {
1533
- name,
1534
- control,
1535
- onChange,
1536
- isEdit,
1537
- options: optionsInput,
1538
- label,
1539
- variant,
1540
- disabled,
1541
- labelKey = "Label",
1542
- valueKey = "Value",
1543
- placeholder,
1544
- textFieldProps = {},
1545
- ...rest
1546
- } = props;
1547
- const { required, ...restTextProps } = textFieldProps;
1548
- const options = _react.useMemo.call(void 0, () => optionsInput || [], [optionsInput]);
1549
- const ignoreAutoSelectRef = _react.useRef.call(void 0, null);
1550
- const {
1551
- field,
1552
- fieldState: { error }
1553
- } = _reacthookform.useController.call(void 0, {
1554
- name,
1555
- control
1556
- });
1557
- const getOptionValue = _react.useCallback.call(void 0,
1558
- (option) => {
1559
- if (typeof option === "string") return option;
1560
- return option ? option[valueKey] : null;
1561
- },
1562
- [valueKey]
1563
- );
1564
- const getOptionLabel = _react.useCallback.call(void 0,
1565
- (option) => {
1566
- if (typeof option === "string") return option;
1567
- return option ? String(option[labelKey]) : "";
1568
- },
1569
- [labelKey]
1570
- );
1571
- const handleChange = (event, newValue, reason) => {
1572
- const option = newValue;
1573
- if (reason === "clear" && options.length === 1) {
1574
- ignoreAutoSelectRef.current = getOptionValue(options[0]);
1575
- } else {
1576
- ignoreAutoSelectRef.current = null;
1577
- }
1578
- field.onChange(option ? getOptionValue(option) : null);
1579
- _optionalChain([onChange, 'optionalCall', _24 => _24(event, newValue, reason)]);
1580
- };
1581
- _react.useEffect.call(void 0, () => {
1582
- if (!isEdit && options.length === 1 && (field.value == null || field.value == void 0 || field.value === "")) {
1583
- const defaultOption = options[0];
1584
- const defaultValue = getOptionValue(defaultOption);
1585
- if (ignoreAutoSelectRef.current !== defaultValue) {
1586
- field.onChange(defaultValue);
1587
- }
1588
- }
1589
- }, [options]);
1590
- const autocompleteValue = _react.useMemo.call(void 0,
1591
- () => _nullishCoalesce(options.find((option) => getOptionValue(option) === field.value), () => ( null)),
1592
- [field.value, options, getOptionValue]
1593
- );
1594
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1595
- _material.Autocomplete,
1596
- {
1597
- ...rest,
1598
- filterSelectedOptions: false,
1599
- options,
1600
- value: autocompleteValue,
1601
- onChange: handleChange,
1602
- disabled: disabled || options.length == 0,
1603
- getOptionLabel: (option) => getOptionLabel(option),
1604
- ref: field.ref,
1605
- isOptionEqualToValue: (option, value) => getOptionValue(option) === getOptionValue(value),
1606
- renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1607
- _material.TextField,
1608
- {
1609
- ...params,
1610
- ...restTextProps,
1611
- fullWidth: true,
1612
- required,
1613
- error: !!error,
1614
- helperText: error ? error.message : "",
1615
- label,
1616
- placeholder,
1617
- variant: variant ? variant : "outlined"
1618
- }
1619
- )
1620
- }
1621
- );
1622
- };
1623
- var SelectElement2 = ({
1624
- gridProps = {},
1625
- ...props
1626
- }) => {
1627
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component7, { ...props }) });
1628
- };
1629
- SelectElement2.displayName = "SelectElement";
1630
-
1631
- // src/wrappers/SelectMultiElement/SelectMultiElement.tsx
1632
- var _CheckBox = require('@mui/icons-material/CheckBox'); var _CheckBox2 = _interopRequireDefault(_CheckBox);
1633
- var _CheckBoxOutlineBlank = require('@mui/icons-material/CheckBoxOutlineBlank'); var _CheckBoxOutlineBlank2 = _interopRequireDefault(_CheckBoxOutlineBlank);
1634
-
1635
-
1636
-
1637
-
1638
-
1639
-
1640
-
1641
-
1642
-
1643
-
1644
- var Component8 = function SelectMultiElement(props) {
1645
- const {
1646
- name,
1647
- control,
1648
- onBlur,
1649
- disabled,
1650
- options: optionsInput,
1651
- loading = false,
1652
- placeholder,
1653
- label,
1654
- variant,
1655
- labelField = "Label",
1656
- valueField = "Value",
1657
- ...rest
1658
- } = props;
1659
- const options = _react.useMemo.call(void 0, () => optionsInput || [], [optionsInput]);
1660
- const {
1661
- field,
1662
- fieldState: { error }
1663
- } = _reacthookform.useController.call(void 0, {
1664
- name,
1665
- control
1666
- });
1667
- const getOptionValue = (option) => {
1668
- if (typeof option === "string") return option;
1669
- return option ? option[valueField] : null;
1670
- };
1671
- const getOptionLabel = (option) => {
1672
- if (typeof option === "string") return option;
1673
- return option ? String(option[labelField]) : "";
1674
- };
1675
- const selectedValue = field.value && Array.isArray(field.value) ? options.filter((option) => field.value.includes(getOptionValue(option))) : [];
1676
- const handleChange = (_2, selectedOptions, reason) => {
1677
- if (reason === "clear") {
1678
- field.onChange([]);
1679
- } else if (reason === "selectOption" || reason === "removeOption") {
1680
- const newValues = selectedOptions.map((option) => getOptionValue(option));
1681
- field.onChange(newValues);
1682
- }
1683
- };
1684
- const icon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _CheckBoxOutlineBlank2.default, { fontSize: "small" });
1685
- const checkedIcon = /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _CheckBox2.default, { fontSize: "small" });
1686
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1687
- _material.Autocomplete,
1688
- {
1689
- multiple: true,
1690
- value: selectedValue,
1691
- loading,
1692
- options,
1693
- getOptionLabel,
1694
- isOptionEqualToValue: (option, value) => getOptionValue(option) === getOptionValue(value),
1695
- filterSelectedOptions: true,
1696
- disableCloseOnSelect: true,
1697
- ref: field.ref,
1698
- disabled: _nullishCoalesce(_nullishCoalesce(disabled, () => ( field.disabled)), () => ( options.length == 0)),
1699
- onChange: handleChange,
1700
- onBlur: (event) => {
1701
- field.onBlur();
1702
- if (typeof onBlur === "function") {
1703
- onBlur(event);
1704
- }
1705
- },
1706
- fullWidth: true,
1707
- renderOption: (props1, option, { selected }) => {
1708
- const { key, ...optionProps } = props1;
1709
- return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "li", { ...optionProps, children: [
1710
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1711
- _material.Checkbox,
1712
- {
1713
- icon,
1714
- checkedIcon,
1715
- checked: selected
1716
- }
1717
- ),
1718
- getOptionLabel(option)
1719
- ] }, key);
1720
- },
1721
- renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1722
- _material.TextField,
1723
- {
1724
- ...params,
1725
- label,
1726
- error: !!error,
1727
- helperText: error ? error.message : "",
1728
- placeholder,
1729
- slotProps: {
1730
- input: {
1731
- ...params.InputProps,
1732
- endAdornment: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
1733
- loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.CircularProgress, { color: "inherit", size: 20 }) : null,
1734
- params.InputProps.endAdornment
1735
- ] })
1736
- }
1737
- },
1738
- variant: variant ? variant : "outlined"
1739
- }
1740
- ),
1741
- ...rest
1742
- }
1743
- );
1744
- };
1745
- var SelectMultiElement2 = ({
1746
- gridProps = {},
1747
- ...props
1748
- }) => {
1749
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component8, { ...props }) });
1750
- };
1751
- SelectMultiElement2.displayName = "SelectMultiElement";
1752
-
1753
- // src/wrappers/TextFieldElement/TextFieldElement.tsx
1754
-
1755
-
1756
-
1757
- var Component9 = function TextFieldElement(props) {
1758
- const {
1759
- parseError,
1760
- name,
1761
- control,
1762
- component: TextFieldComponent = _material.TextField,
1763
- transform,
1764
- fieldType = "text",
1765
- // Default to text type
1766
- defaultValue,
1767
- label,
1768
- placeholder,
1769
- textFieldProps = {},
1770
- variant,
1771
- onChange: customOnChange,
1772
- enableWarnings = process.env.NODE_ENV === "development",
1773
- ...rest
1774
- } = props;
1775
- const {
1776
- type,
1777
- required,
1778
- helperText,
1779
- inputRef,
1780
- onInput,
1781
- onBlur,
1782
- disabled,
1783
- ...restTextProps
1784
- } = textFieldProps;
1785
- const {
1786
- field,
1787
- fieldState: { error }
1788
- } = _reacthookform.useController.call(void 0, {
1789
- name,
1790
- control
1791
- });
1792
- const { value, onChange } = _chunkY3QTSDLJcjs.useEnhancedTransform.call(void 0,
1793
- {
1794
- value: field.value,
1795
- onChange: field.onChange,
1796
- transform: transform ? {
1797
- input: transform.input,
1798
- output: transform.output
1799
- } : void 0,
1800
- fieldType: !transform ? type === "number" ? "number" : fieldType : void 0,
1801
- // Auto-detect number type
1802
- defaultValue,
1803
- enableWarnings
1804
- }
1805
- );
1806
- const handleInputRef = _material.useForkRef.call(void 0, field.ref, inputRef);
1807
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1808
- TextFieldComponent,
1809
- {
1810
- ...rest,
1811
- ...restTextProps,
1812
- name: field.name,
1813
- value,
1814
- onChange: (event) => {
1815
- const input = event.target.value;
1816
- if (input === "") {
1817
- field.onChange(null);
1818
- } else {
1819
- onChange(event);
1820
- }
1821
- if (typeof customOnChange === "function") {
1822
- customOnChange(event);
1823
- }
1824
- return;
1825
- },
1826
- onBlur: (event) => {
1827
- field.onBlur();
1828
- if (typeof onBlur === "function") {
1829
- onBlur(event);
1830
- }
1831
- },
1832
- onInput: (event) => {
1833
- if (typeof onInput === "function") {
1834
- onInput(event);
1835
- }
1836
- },
1837
- disabled,
1838
- label,
1839
- placeholder,
1840
- fullWidth: true,
1841
- required,
1842
- type,
1843
- error: !!error,
1844
- helperText: error ? parseError ? parseError(error) : error.message : helperText,
1845
- inputRef: handleInputRef,
1846
- variant: variant ? variant : "outlined"
1847
- }
1848
- );
1849
- };
1850
- var TextFieldElement2 = ({
1851
- gridProps = {},
1852
- ...props
1853
- }) => {
1854
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component9, { ...props }) });
1855
- };
1856
-
1857
- // src/wrappers/TimePickerElement/TimePickerElement.tsx
1858
-
1859
-
1860
-
1861
-
1862
-
1863
- var Component10 = function TimePickerElement(props) {
1864
- const {
1865
- name,
1866
- required,
1867
- inputProps,
1868
- control,
1869
- textReadOnly,
1870
- label,
1871
- placeholder,
1872
- slotProps,
1873
- timePickerProps = {},
1874
- transform,
1875
- ...rest
1876
- } = props;
1877
- const adapter = _internals.useLocalizationContext.call(void 0, );
1878
- const { disabled, inputRef, onClose, ...restTimePickerProps } = timePickerProps;
1879
- const {
1880
- field,
1881
- fieldState: { error }
1882
- } = _reacthookform.useController.call(void 0, {
1883
- name,
1884
- control,
1885
- defaultValue: null
1886
- });
1887
- const { value, onChange } = _chunkY3QTSDLJcjs.useTransform.call(void 0, {
1888
- value: field.value,
1889
- onChange: field.onChange,
1890
- transform: {
1891
- input: typeof _optionalChain([transform, 'optionalAccess', _25 => _25.input]) === "function" ? transform.input : (newValue) => _chunkLUW7V5GIcjs.readValueAsDate.call(void 0, adapter, newValue),
1892
- output: (eventOrValue, value2) => {
1893
- const actualValue = value2 !== void 0 ? value2 : eventOrValue;
1894
- if (actualValue === null) return null;
1895
- return actualValue;
1896
- }
1897
- }
1898
- });
1899
- const handleInputRef = _material.useForkRef.call(void 0, field.ref, inputRef);
1900
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
1901
- _xdatepickers.TimePicker,
1902
- {
1903
- ...rest,
1904
- ...restTimePickerProps,
1905
- ...field,
1906
- value,
1907
- label,
1908
- disabled,
1909
- ...timePickerProps,
1910
- inputRef: handleInputRef,
1911
- onClose: (...args) => {
1912
- field.onBlur();
1913
- if (onClose) {
1914
- onClose(...args);
1915
- }
1916
- },
1917
- onChange: (newValue, context) => {
1918
- onChange(newValue, context);
1919
- if (typeof timePickerProps.onChange === "function") {
1920
- timePickerProps.onChange(newValue, context);
1921
- }
1922
- },
1923
- slotProps: {
1924
- ...slotProps,
1925
- actionBar: {
1926
- actions: ["clear", "cancel", "accept"]
1927
- },
1928
- textField: {
1929
- ...inputProps,
1930
- required,
1931
- placeholder,
1932
- fullWidth: true,
1933
- onBlur: (event) => {
1934
- field.onBlur();
1935
- if (typeof _optionalChain([inputProps, 'optionalAccess', _26 => _26.onBlur]) === "function") {
1936
- inputProps.onBlur(event);
1937
- }
1938
- },
1939
- error: !!error,
1940
- helperText: error ? error.message : _optionalChain([inputProps, 'optionalAccess', _27 => _27.helperText]) || rest.helperText,
1941
- inputProps: {
1942
- readOnly: !!textReadOnly,
1943
- ..._optionalChain([inputProps, 'optionalAccess', _28 => _28.inputProps])
1944
- }
1945
- }
1946
- }
1947
- }
1948
- );
1949
- };
1950
- var TimePickerElement2 = ({
1951
- gridProps = {},
1952
- ...props
1953
- }) => {
1954
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component10, { ...props }) });
1955
- };
1956
- TimePickerElement2.displayName = "TimePickerElement";
1957
-
1958
- // src/wrappers/AsyncSelect/index.tsx
1959
-
1960
-
1961
-
1962
-
1963
-
1964
-
1965
- var _utils = require('@mui/material/utils');
1966
-
1967
-
1968
-
1969
-
1970
-
1971
-
1972
-
1973
-
1974
-
1975
-
1976
-
1977
-
1978
-
1979
- var Component11 = function AsyncSelectElement(props) {
1980
- const {
1981
- name,
1982
- disabled,
1983
- control,
1984
- placeholder,
1985
- initialValue,
1986
- label,
1987
- queryFn,
1988
- variant,
1989
- labelField = "Label",
1990
- valueField = "Value",
1991
- ...rest
1992
- } = props;
1993
- const {
1994
- field,
1995
- fieldState: { error }
1996
- } = _reacthookform.useController.call(void 0, {
1997
- name,
1998
- control
1999
- });
2000
- const [loading, setLoading] = _react.useState.call(void 0, false);
2001
- const [selectedOption, setSelectedOption] = _react.useState.call(void 0, null);
2002
- const [inputValue, setInputValue] = _react.useState.call(void 0, "");
2003
- const inputValue2 = _react.useMemo.call(void 0, () => inputValue, [inputValue]);
2004
- const setInputValue2 = _react.useCallback.call(void 0,
2005
- (newValue) => setInputValue(newValue),
2006
- []
2007
- );
2008
- const [options, setOptions] = _react.useState.call(void 0, []);
2009
- const initialValueLoaded = _react.useRef.call(void 0,
2010
- !initialValue ? true : !(initialValue != null)
2011
- );
2012
- const fieldValue = _react.useRef.call(void 0, field.value);
2013
- const fetchData = _react.useMemo.call(void 0,
2014
- () => _utils.debounce.call(void 0,
2015
- (payload, callback) => {
2016
- queryFn(payload).then((c) => callback(c));
2017
- },
2018
- 400
2019
- ),
2020
- [queryFn]
2021
- );
2022
- const fillOptions = _react.useCallback.call(void 0,
2023
- (results) => {
2024
- let newOptions = [];
2025
- if (selectedOption) {
2026
- newOptions = [selectedOption];
2027
- }
2028
- if (results) {
2029
- newOptions = [...newOptions, ...results];
2030
- }
2031
- setOptions(newOptions);
2032
- setLoading(false);
2033
- },
2034
- [selectedOption]
2035
- );
2036
- _react.useEffect.call(void 0, () => {
2037
- if (initialValueLoaded.current) return void 0;
2038
- let active = true;
2039
- const payload = {
2040
- query: null,
2041
- initialValue
2042
- };
2043
- setLoading(true);
2044
- fetchData(payload, (results) => {
2045
- if (active) {
2046
- if (!!results && results.length > 0) {
2047
- fillOptions(_optionalChain([results, 'optionalAccess', _29 => _29.filter, 'call', _30 => _30((c) => c[valueField] == initialValue)]));
2048
- setSelectedOption(results[0]);
2049
- field.onChange(results[0][valueField]);
2050
- fieldValue.current = results[0][valueField];
2051
- }
2052
- initialValueLoaded.current = true;
2053
- setLoading(false);
2054
- }
2055
- });
2056
- return () => {
2057
- active = false;
2058
- };
2059
- }, [initialValue, fetchData, field, fillOptions, valueField]);
2060
- React5.useEffect(() => {
2061
- let active = true;
2062
- if (inputValue2 === "" || initialValueLoaded.current === false) {
2063
- setOptions(selectedOption ? [selectedOption] : []);
2064
- setLoading(false);
2065
- return void 0;
2066
- }
2067
- if (fieldValue.current) {
2068
- if (field.value === fieldValue.current) {
2069
- return void 0;
2070
- }
2071
- }
2072
- setLoading(true);
2073
- const payload = {
2074
- query: inputValue2,
2075
- initialValue: null
2076
- };
2077
- fetchData(payload, (results) => {
2078
- if (active) {
2079
- fillOptions(results);
2080
- }
2081
- });
2082
- return () => {
2083
- active = false;
2084
- };
2085
- }, [
2086
- initialValue,
2087
- inputValue2,
2088
- fetchData,
2089
- field.value,
2090
- fillOptions,
2091
- selectedOption
2092
- ]);
2093
- const selectRef = _react.useRef.call(void 0, null);
2094
- const handleChange = (_2, newSelectedOption, reason) => {
2095
- if (reason === "clear") {
2096
- setSelectedOption(null);
2097
- field.onChange(null);
2098
- setLoading(false);
2099
- } else if (reason === "selectOption" || reason === "removeOption") {
2100
- if (newSelectedOption) {
2101
- setSelectedOption(newSelectedOption);
2102
- field.onChange(newSelectedOption[valueField]);
2103
- fieldValue.current = newSelectedOption[valueField];
2104
- setLoading(false);
2105
- }
2106
- }
2107
- setOptions([]);
2108
- setLoading(false);
2109
- };
2110
- _react.useEffect.call(void 0, () => {
2111
- if (!field.value) {
2112
- setInputValue("");
2113
- setSelectedOption(null);
2114
- setLoading(false);
2115
- }
2116
- }, [field.value]);
2117
- const getOptionValue = (option) => {
2118
- return option ? String(option[valueField]) : "";
2119
- };
2120
- const getOptionLabel = (option) => {
2121
- return option ? String(option[labelField]) : "";
2122
- };
2123
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2124
- _material.Autocomplete,
2125
- {
2126
- ...rest,
2127
- ref: selectRef,
2128
- fullWidth: true,
2129
- loading,
2130
- getOptionLabel,
2131
- getOptionKey: getOptionValue,
2132
- isOptionEqualToValue: (option, value) => getOptionValue(option) === getOptionValue(value),
2133
- autoComplete: true,
2134
- disabled,
2135
- includeInputInList: true,
2136
- options,
2137
- filterOptions: (x) => x,
2138
- value: selectedOption,
2139
- filterSelectedOptions: true,
2140
- onChange: handleChange,
2141
- onInputChange: (_2, newInputValue) => {
2142
- setInputValue2(newInputValue);
2143
- },
2144
- noOptionsText: "Type Something...",
2145
- renderInput: (params) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2146
- _material.TextField,
2147
- {
2148
- ...params,
2149
- label,
2150
- error: !!error,
2151
- helperText: error ? error.message : "",
2152
- placeholder,
2153
- slotProps: {
2154
- input: {
2155
- ...params.InputProps,
2156
- endAdornment: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _react.Fragment, { children: [
2157
- loading ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.CircularProgress, { color: "inherit", size: 20 }) : null,
2158
- params.InputProps.endAdornment
2159
- ] })
2160
- }
2161
- },
2162
- variant: variant ? variant : "outlined"
2163
- }
2164
- ),
2165
- renderOption: (renderProps, option) => {
2166
- const { key, ...optionProps } = renderProps;
2167
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "li", { ...optionProps, children: option[labelField] }, key);
2168
- }
2169
- }
2170
- );
2171
- };
2172
- var AsyncSelectElement2 = ({
2173
- gridProps = {},
2174
- ...props
2175
- }) => {
2176
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2177
- Component11,
2178
- {
2179
- ...props
2180
- }
2181
- ) });
2182
- };
2183
- AsyncSelectElement2.displayName = "AsyncSelectElement";
2184
-
2185
- // src/wrappers/NumberFieldElement/NumberFieldElement.tsx
2186
-
2187
-
2188
-
2189
- var Component12 = function NumberFieldElement(props) {
2190
- const {
2191
- parseError,
2192
- name,
2193
- control,
2194
- component: TextFieldComponent = _material.TextField,
2195
- transform,
2196
- fieldType = "text",
2197
- // Default to text type
2198
- defaultValue,
2199
- label,
2200
- placeholder,
2201
- textFieldProps = {},
2202
- variant,
2203
- onChange: customOnChange,
2204
- enableWarnings = process.env.NODE_ENV === "development",
2205
- ...rest
2206
- } = props;
2207
- const {
2208
- type = "number",
2209
- required,
2210
- helperText,
2211
- inputRef,
2212
- onInput,
2213
- onBlur,
2214
- disabled,
2215
- ...restTextProps
2216
- } = textFieldProps;
2217
- const {
2218
- field,
2219
- fieldState: { error }
2220
- } = _reacthookform.useController.call(void 0, {
2221
- name,
2222
- control
2223
- });
2224
- const { value, onChange } = _chunkY3QTSDLJcjs.useEnhancedTransform.call(void 0,
2225
- {
2226
- value: field.value,
2227
- onChange: field.onChange,
2228
- transform: transform ? {
2229
- input: transform.input,
2230
- output: transform.output
2231
- } : void 0,
2232
- fieldType: !transform ? type === "number" ? "number" : fieldType : void 0,
2233
- // Auto-detect number type
2234
- defaultValue,
2235
- enableWarnings
2236
- }
2237
- );
2238
- const handleInputRef = _material.useForkRef.call(void 0, field.ref, inputRef);
2239
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2240
- TextFieldComponent,
2241
- {
2242
- ...rest,
2243
- ...restTextProps,
2244
- name: field.name,
2245
- value,
2246
- onChange: (event) => {
2247
- const input = event.target.value;
2248
- if (input === "") {
2249
- field.onChange(null);
2250
- }
2251
- onChange(event);
2252
- if (typeof customOnChange === "function") {
2253
- customOnChange(event);
2254
- }
2255
- },
2256
- onBlur: (event) => {
2257
- field.onBlur();
2258
- if (typeof onBlur === "function") {
2259
- onBlur(event);
2260
- }
2261
- },
2262
- onInput: (event) => {
2263
- if (typeof onInput === "function") {
2264
- onInput(event);
2265
- }
2266
- },
2267
- onWheel: (e) => {
2268
- e.target.blur();
2269
- },
2270
- onKeyDown: (e) => {
2271
- if (["e", "E", "ArrowDown", "ArrowUp"].includes(e.key)) {
2272
- e.preventDefault();
2273
- }
2274
- },
2275
- disabled,
2276
- label,
2277
- placeholder,
2278
- fullWidth: true,
2279
- required,
2280
- type,
2281
- error: !!error,
2282
- helperText: error ? parseError ? parseError(error) : error.message : helperText,
2283
- inputRef: handleInputRef,
2284
- variant: variant ? variant : "outlined"
2285
- }
2286
- );
2287
- };
2288
- var NumberFieldElement2 = ({
2289
- gridProps = {},
2290
- ...props
2291
- }) => {
2292
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component12, { ...props }) });
2293
- };
2294
-
2295
- // src/wrappers/OTPInputElement/OTPInputElement.tsx
2296
-
2297
-
2298
-
2299
- var _muionetimepasswordinput = require('mui-one-time-password-input');
2300
-
2301
-
2302
- // src/wrappers/OTPInputElement/HelperText.tsx
2303
- var _FormHelperText = require('@mui/material/FormHelperText'); var _FormHelperText2 = _interopRequireDefault(_FormHelperText);
2304
-
2305
- function HelperText({
2306
- sx,
2307
- helperText,
2308
- errorMessage,
2309
- disableGutters,
2310
- ...other
2311
- }) {
2312
- if (errorMessage || helperText) {
2313
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2314
- _FormHelperText2.default,
2315
- {
2316
- error: !!errorMessage,
2317
- sx: [
2318
- {
2319
- mx: disableGutters ? 0 : 1.75
2320
- },
2321
- ...Array.isArray(sx) ? sx : [sx]
2322
- ],
2323
- ...other,
2324
- children: errorMessage || helperText
2325
- }
2326
- );
2327
- }
2328
- return null;
2329
- }
2330
-
2331
- // src/wrappers/OTPInputElement/OTPInputElement.tsx
2332
-
2333
- var Component13 = function OTPInputElement(props) {
2334
- const {
2335
- // parseError,
2336
- name,
2337
- control,
2338
- slotProps,
2339
- helperText,
2340
- maxSize = 56,
2341
- placeholder = "-",
2342
- ...rest
2343
- } = props;
2344
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2345
- _reacthookform.Controller,
2346
- {
2347
- name,
2348
- control,
2349
- render: ({ field, fieldState: { error } }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
2350
- _material.Box,
2351
- {
2352
- ..._optionalChain([slotProps, 'optionalAccess', _31 => _31.wrapper]),
2353
- sx: [
2354
- {
2355
- display: "flex",
2356
- justifyContent: "center",
2357
- [`& .${_material.inputBaseClasses.input}`]: {
2358
- p: 0,
2359
- height: "auto",
2360
- aspectRatio: "1/1",
2361
- maxWidth: maxSize
2362
- }
2363
- },
2364
- ...Array.isArray(_optionalChain([slotProps, 'optionalAccess', _32 => _32.wrapper, 'optionalAccess', _33 => _33.sx])) ? _nullishCoalesce(_optionalChain([slotProps, 'optionalAccess', _34 => _34.wrapper, 'optionalAccess', _35 => _35.sx]), () => ( [])) : [_optionalChain([slotProps, 'optionalAccess', _36 => _36.wrapper, 'optionalAccess', _37 => _37.sx])]
2365
- ],
2366
- children: [
2367
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2368
- _muionetimepasswordinput.MuiOtpInput,
2369
- {
2370
- ...field,
2371
- autoFocus: true,
2372
- gap: 1.5,
2373
- length: 4,
2374
- TextFieldsProps: {
2375
- placeholder,
2376
- error: !!error,
2377
- ..._optionalChain([slotProps, 'optionalAccess', _38 => _38.textfield])
2378
- },
2379
- ...rest
2380
- }
2381
- ),
2382
- /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
2383
- HelperText,
2384
- {
2385
- ..._optionalChain([slotProps, 'optionalAccess', _39 => _39.helperText]),
2386
- errorMessage: _optionalChain([error, 'optionalAccess', _40 => _40.message]),
2387
- helperText
2388
- }
2389
- )
2390
- ]
2391
- }
2392
- )
2393
- }
2394
- );
2395
- };
2396
- var OTPInputElement2 = ({
2397
- gridProps = {},
2398
- ...props
2399
- }) => {
2400
- return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _material.Grid, { size: 12, ...gridProps, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, Component13, { ...props }) });
2401
- };
2402
-
2403
- // src/wrappers/Field/index.ts
2404
- var Field = {
2405
- Text: TextFieldElement2,
2406
- Number: NumberFieldElement2,
2407
- Checkbox: CheckboxElement2,
2408
- Date: DatePickerElement,
2409
- RadioGroup: RadioButtonGroup2,
2410
- Password: PasswordElement,
2411
- Time: TimePickerElement2,
2412
- Select: SelectElement2,
2413
- SelectMulti: SelectMultiElement2,
2414
- SelectCascade: SelectCascadeElement2,
2415
- AsyncSelect: AsyncSelectElement2,
2416
- AsyncMultiSelect: AsyncMultiSelect2,
2417
- CheckboxGroup: CheckboxGroup2,
2418
- OTPInput: OTPInputElement2
2419
- };
2420
-
2421
-
2422
-
2423
-
2424
-
2425
-
2426
-
2427
-
2428
-
2429
-
2430
-
2431
-
2432
-
2433
-
2434
-
2435
-
2436
-
2437
-
2438
-
2439
-
2440
-
2441
-
2442
-
2443
-
2444
-
2445
-
2446
-
2447
-
2448
-
2449
- exports.isValidOption = isValidOption; exports.normalizeOptions = normalizeOptions; exports.AsyncSelectMultiElement = AsyncSelectMultiElement2; exports.AsyncMultiSelect2 = AsyncMultiSelect2; exports.CheckboxElement = CheckboxElement2; exports.CheckboxGroup = CheckboxGroup2; exports.readDatePickerValueAsDate = readDatePickerValueAsDate; exports.useDatePickerValue = useDatePickerValue; exports.useDatePickerValidation = useDatePickerValidation; exports.useDatePickerStyles = useDatePickerStyles; exports.DatePickerElementCore = DatePickerElementCore; exports.DatePickerElement = DatePickerElement; exports.isValidDate = isValidDate; exports.isParsableDateString = isParsableDateString; exports.createDateInputTransform = createDateInputTransform; exports.createDateOutputTransform = createDateOutputTransform; exports.createDefaultDatePickerConfig = createDefaultDatePickerConfig; exports.extractErrorMessage = extractErrorMessage; exports.createStableKey = createStableKey; exports.PasswordElement = PasswordElement; exports.RadioButtonGroup = RadioButtonGroup2; exports.SelectCascadeElement = SelectCascadeElement2; exports.SelectElement = SelectElement2; exports.SelectMultiElement = SelectMultiElement2; exports.TextFieldElement = TextFieldElement2; exports.TimePickerElement = TimePickerElement2; exports.Field = Field;
2450
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImQ6XFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXGNodW5rLTdHVUJSQVY3LmNqcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtBQUNFO0FBQ0E7QUFDRix3REFBNkI7QUFDN0I7QUFDRTtBQUNGLHdEQUE2QjtBQUM3QjtBQUNBO0FBQ0EsU0FBUyxhQUFhLENBQUMsS0FBSyxFQUFFO0FBQzlCLEVBQUUsT0FBTyxPQUFPLE1BQU0sSUFBSSxTQUFTLEdBQUcsTUFBTSxJQUFJLEtBQUssR0FBRyxRQUFRLEdBQUcsTUFBTSxHQUFHLFFBQVEsR0FBRyxNQUFNLEdBQUcsT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLFNBQVMsR0FBRyxDQUFDLE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxTQUFTLEdBQUcsT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLFNBQVMsR0FBRyxPQUFPLEtBQUssQ0FBQyxNQUFNLElBQUksU0FBUyxDQUFDO0FBQzNPO0FBQ0EsU0FBUyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFO0FBQy9FLEVBQUUsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQztBQUNsQyxJQUFJLEtBQUssRUFBRSxNQUFNLGtCQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUUsVUFBRyxJQUFFLENBQUM7QUFDM0MsSUFBSSxLQUFLLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQztBQUM3QixJQUFJLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLFFBQVE7QUFDckMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDRix5Q0FBc0I7QUFDdEIsa0dBQStDO0FBQy9DLGtHQUErQztBQUMvQyxnRkFBb0M7QUFDcEM7QUFDRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDRiw0RUFBYztBQUNkLGdEQUErQztBQUMvQywrQ0FBNkM7QUFDN0MsSUFBSSxVQUFVLEVBQUUsU0FBUyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUU7QUFDeEQsRUFBRSxNQUFNO0FBQ1IsSUFBSSxJQUFJO0FBQ1IsSUFBSSxRQUFRO0FBQ1osSUFBSSxPQUFPO0FBQ1gsSUFBSSxXQUFXO0FBQ2YsSUFBSSxhQUFhO0FBQ2pCLElBQUksS0FBSztBQUNULElBQUksT0FBTztBQUNYLElBQUksT0FBTztBQUNYLElBQUksV0FBVyxFQUFFLE9BQU87QUFDeEIsSUFBSSxXQUFXLEVBQUUsT0FBTztBQUN4QixJQUFJLEdBQUc7QUFDUCxFQUFFLEVBQUUsRUFBRSxLQUFLO0FBQ1gsRUFBRSxNQUFNO0FBQ1IsSUFBSSxLQUFLO0FBQ1QsSUFBSSxVQUFVLEVBQUUsRUFBRSxNQUFNO0FBQ3hCLEVBQUUsRUFBRSxFQUFFLDBDQUFhO0FBQ25CLElBQUksSUFBSTtBQUNSLElBQUk7QUFDSixFQUFFLENBQUMsQ0FBQztBQUNKLEVBQUUsTUFBTSxlQUFlLEVBQUUsMkJBQU0sSUFBSyxDQUFDO0FBQ3JDLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLDZCQUFRLENBQUUsQ0FBQyxDQUFDO0FBQzVELEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsRUFBRSw2QkFBUSxFQUFHLENBQUM7QUFDbEQsRUFBRSxNQUFNLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLDZCQUFRLENBQUUsQ0FBQyxDQUFDO0FBQzVDLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSw2QkFBUSxLQUFNLENBQUM7QUFDL0MsRUFBRSxNQUFNLG9CQUFvQixFQUFFLDJCQUFNO0FBQ3BDLElBQUksQ0FBQyxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLENBQUM7QUFDL0MsRUFBRSxDQUFDO0FBQ0gsRUFBRSxNQUFNLFlBQVksRUFBRSw0QkFBTyxDQUFFLEVBQUUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUM3RCxFQUFFLE1BQU0sZUFBZSxFQUFFLGdDQUFXO0FBQ3BDLElBQUksQ0FBQyxXQUFXLEVBQUUsR0FBRyxhQUFhLENBQUMsV0FBVyxDQUFDO0FBQy9DLElBQUksQ0FBQztBQUNMLEVBQUUsQ0FBQztBQUNILEVBQUUsTUFBTSxVQUFVLEVBQUUsNEJBQU87QUFDM0IsSUFBSSxDQUFDLEVBQUUsR0FBRyw4QkFBUTtBQUNsQixNQUFNLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHO0FBQzdCLFFBQVEsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqRCxNQUFNLENBQUM7QUFDUCxNQUFNO0FBQ04sSUFBSSxDQUFDO0FBQ0wsSUFBSSxDQUFDLE9BQU87QUFDWixFQUFFLENBQUM7QUFDSCxFQUFFLE1BQU0sWUFBWSxFQUFFLGdDQUFXO0FBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRztBQUNqQixNQUFNLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztBQUN6QixNQUFNLEdBQUcsQ0FBQyxlQUFlLEVBQUU7QUFDM0IsUUFBUSxXQUFXLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQztBQUN6QyxNQUFNO0FBQ04sTUFBTSxHQUFHLENBQUMsT0FBTyxFQUFFO0FBQ25CLFFBQVEsTUFBTSxXQUFXLEVBQUUsZ0JBQUMsQ0FBQyxZQUFZO0FBQ3pDLFVBQVUsT0FBTztBQUNqQixVQUFVLGVBQWU7QUFDekIsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVO0FBQzdCLFFBQVEsQ0FBQztBQUNULFFBQVEsV0FBVyxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxVQUFVLENBQUM7QUFDbkQsTUFBTTtBQUNOLE1BQU0sVUFBVSxDQUFDLFVBQVUsQ0FBQztBQUM1QixNQUFNLFVBQVUsQ0FBQyxLQUFLLENBQUM7QUFDdkIsSUFBSSxDQUFDO0FBQ0wsSUFBSSxDQUFDLGVBQWUsRUFBRSxVQUFVO0FBQ2hDLEVBQUUsQ0FBQztBQUNILEVBQUUsOEJBQVMsQ0FBRSxFQUFFLEdBQUc7QUFDbEIsSUFBSSxHQUFHLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sS0FBSyxDQUFDO0FBQ2xELElBQUksSUFBSSxPQUFPLEVBQUUsSUFBSTtBQUNyQixJQUFJLE1BQU0sUUFBUSxFQUFFO0FBQ3BCLE1BQU0sS0FBSyxFQUFFLElBQUk7QUFDakIsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQztBQUNwQixJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRztBQUNwQyxNQUFNLEdBQUcsQ0FBQyxPQUFPLEdBQUcsT0FBTyxFQUFFO0FBQzdCLFFBQVEsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0FBQ3hDLFFBQVEsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDOUQsUUFBUSxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSTtBQUMxQyxRQUFRLFVBQVUsQ0FBQyxLQUFLLENBQUM7QUFDekIsTUFBTTtBQUNOLElBQUksQ0FBQyxDQUFDO0FBQ04sSUFBSSxPQUFPLENBQUMsRUFBRSxHQUFHO0FBQ2pCLE1BQU0sT0FBTyxFQUFFLEtBQUs7QUFDcEIsSUFBSSxDQUFDO0FBQ0wsRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztBQUNuRCxFQUFFLDhCQUFTLENBQUUsRUFBRSxHQUFHO0FBQ2xCLElBQUksSUFBSSxPQUFPLEVBQUUsSUFBSTtBQUNyQixJQUFJLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsSUFBSSxLQUFLLEVBQUU7QUFDckUsTUFBTSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdELE1BQU0sT0FBTyxLQUFLLENBQUM7QUFDbkIsSUFBSTtBQUNKLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQztBQUNwQixJQUFJLE1BQU0sUUFBUSxFQUFFO0FBQ3BCLE1BQU0sS0FBSyxFQUFFLFdBQVc7QUFDeEIsTUFBTSxhQUFhLEVBQUU7QUFDckIsSUFBSSxDQUFDO0FBQ0wsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUc7QUFDcEMsTUFBTSxHQUFHLENBQUMsTUFBTSxFQUFFO0FBQ2xCLFFBQVEsV0FBVyxDQUFDLE9BQU8sQ0FBQztBQUM1QixNQUFNO0FBQ04sSUFBSSxDQUFDLENBQUM7QUFDTixJQUFJLE9BQU8sQ0FBQyxFQUFFLEdBQUc7QUFDakIsTUFBTSxPQUFPLEVBQUUsS0FBSztBQUNwQixJQUFJLENBQUM7QUFDTCxFQUFFLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUMzRSxFQUFFLE1BQU0sYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxHQUFHO0FBQzNELElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxRQUFRLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxJQUFJLENBQUMsRUFBRTtBQUMvRCxNQUFNLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzVCLE1BQU0sS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN4QixJQUFJLEVBQUUsS0FBSyxHQUFHLENBQUMsT0FBTyxJQUFJLGVBQWUsR0FBRyxPQUFPLElBQUksY0FBYyxFQUFFO0FBQ3ZFLE1BQU0sa0JBQWtCLENBQUMsa0JBQWtCLENBQUM7QUFDNUMsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ2xFLElBQUk7QUFDSixJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNsQixFQUFFLENBQUM7QUFDSCxFQUFFLE1BQU0sZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUc7QUFDckMsSUFBSSxPQUFPLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtBQUNuRCxFQUFFLENBQUM7QUFDSCxFQUFFLE1BQU0sZUFBZSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUc7QUFDckMsSUFBSSxPQUFPLE9BQU8sRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRTtBQUNuRCxFQUFFLENBQUM7QUFDSCxFQUFFLHVCQUF1Qiw2QkFBRztBQUM1QixJQUFJLHNCQUFZO0FBQ2hCLElBQUk7QUFDSixNQUFNLEdBQUcsRUFBRSxjQUFjO0FBQ3pCLE1BQU0sUUFBUSxFQUFFLElBQUk7QUFDcEIsTUFBTSxPQUFPO0FBQ2IsTUFBTSxjQUFjO0FBQ3BCLE1BQU0sWUFBWSxFQUFFLGNBQWM7QUFDbEMsTUFBTSxvQkFBb0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLElBQUksY0FBYyxDQUFDLEdBQUcsQ0FBQztBQUMzRixNQUFNLE9BQU87QUFDYixNQUFNLEtBQUssRUFBRSxlQUFlO0FBQzVCLE1BQU0sUUFBUTtBQUNkLE1BQU0scUJBQXFCLEVBQUUsSUFBSTtBQUNqQyxNQUFNLFFBQVEsRUFBRSxZQUFZO0FBQzVCLE1BQU0sYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxHQUFHO0FBQzVDLFFBQVEsY0FBYyxDQUFDLGFBQWEsQ0FBQztBQUNyQyxNQUFNLENBQUM7QUFDUCxNQUFNLFdBQVcsRUFBRSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsNkJBQUc7QUFDbEQsUUFBUSxtQkFBUztBQUNqQixRQUFRO0FBQ1IsVUFBVSxHQUFHLE1BQU07QUFDbkIsVUFBVSxLQUFLO0FBQ2YsVUFBVSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7QUFDeEIsVUFBVSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRTtBQUNoRCxVQUFVLFdBQVc7QUFDckIsVUFBVSxTQUFTLEVBQUU7QUFDckIsWUFBWSxLQUFLLEVBQUU7QUFDbkIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxVQUFVO0FBQ2xDLGNBQWMsWUFBWSxrQkFBa0IsOEJBQUksZUFBUyxFQUFFLEVBQUUsUUFBUSxFQUFFO0FBQ3ZFLGdCQUFnQixRQUFRLGtCQUFrQiw2QkFBRywwQkFBaUIsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSTtBQUN0RyxnQkFBZ0IsTUFBTSxDQUFDLFVBQVUsQ0FBQztBQUNsQyxjQUFjLEVBQUUsQ0FBQztBQUNqQixZQUFZO0FBQ1osVUFBVSxDQUFDO0FBQ1gsVUFBVSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRTtBQUN2QyxRQUFRO0FBQ1IsTUFBTSxDQUFDO0FBQ1AsTUFBTSxZQUFZLEVBQUUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHO0FBQy9DLFFBQVEsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLFlBQVksRUFBRSxFQUFFLE1BQU07QUFDOUMsUUFBUSxNQUFNLFlBQVksRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDO0FBQ2xELFFBQVEsTUFBTSxRQUFRLEVBQUUsNkJBQUssV0FBWSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsRUFBRSxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbkYsUUFBUSxNQUFNLE1BQU0sRUFBRSw2QkFBSyxXQUFZLEVBQUUsT0FBTyxDQUFDO0FBQ2pELFFBQVEsdUJBQXVCLDZCQUFHLElBQUssRUFBRSxFQUFFLEdBQUcsV0FBVyxFQUFFLFFBQVEsa0JBQWtCLDZCQUFHLEtBQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsNkJBQUc7QUFDMUosVUFBVSxNQUFNO0FBQ2hCLFVBQVU7QUFDVixZQUFZLEtBQUssRUFBRTtBQUNuQixjQUFjLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRTtBQUNqRCxZQUFZLENBQUM7QUFDYixZQUFZLFFBQVEsRUFBRSxJQUFJLENBQUM7QUFDM0IsVUFBVSxDQUFDO0FBQ1gsVUFBVTtBQUNWLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsR0FBRyxDQUFDO0FBQ3JCLE1BQU0sQ0FBQztBQUNQLE1BQU0sR0FBRztBQUNULElBQUk7QUFDSixFQUFFLENBQUM7QUFDSCxDQUFDO0FBQ0QsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO0FBQ2hDLEVBQUUsU0FBUztBQUNYLEVBQUUsR0FBRztBQUNMLENBQUMsRUFBRSxHQUFHO0FBQ04sRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFO0FBQ2pCLElBQUksdUJBQXVCLDZCQUFHO0FBQzlCLE1BQU0sY0FBSTtBQUNWLE1BQU07QUFDTixRQUFRLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQztBQUM3RSxRQUFRLFFBQVEsa0JBQWtCLDZCQUFHO0FBQ3JDLFVBQVUsU0FBUztBQUNuQixVQUFVO0FBQ1YsWUFBWSxHQUFHO0FBQ2YsVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSxDQUFDO0FBQ0wsRUFBRTtBQUNGLEVBQUUsdUJBQXVCLDZCQUFHLFNBQVUsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUNELHdCQUF3QixDQUFDLFlBQVksRUFBRSxrQkFBa0I7QUFDekQ7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxhQUFhLEVBQUU7QUFDbkIsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ2IsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO0FBQ3JCLEVBQUUsVUFBVSxFQUFFLEVBQUU7QUFDaEIsRUFBRSxPQUFPLEVBQUUsS0FBSztBQUNoQixFQUFFLGFBQWEsRUFBRTtBQUNqQixDQUFDO0FBQ0QsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFO0FBQ3pDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUU7QUFDdkIsSUFBSSxLQUFLLGFBQWE7QUFDdEIsTUFBTSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQztBQUNsRSxJQUFJLEtBQUssc0JBQXNCO0FBQy9CLE1BQU0sT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLGVBQWUsRUFBRSxNQUFNLENBQUMsUUFBUSxDQUFDO0FBQzFELElBQUksS0FBSyxpQkFBaUI7QUFDMUIsTUFBTSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDckQsSUFBSSxLQUFLLGFBQWE7QUFDdEIsTUFBTSxPQUFPLEVBQUUsR0FBRyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUM7QUFDbEQsSUFBSSxLQUFLLG9CQUFvQjtBQUM3QixNQUFNLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQztBQUN4RCxJQUFJLEtBQUssZUFBZTtBQUN4QixNQUFNLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixDQUFDO0FBQ3pELElBQUksT0FBTztBQUNYLE1BQU0sT0FBTyxLQUFLO0FBQ2xCLEVBQUU7QUFDRjtBQUNBLElBQUksMkJBQTJCLEVBQUUsQ0FBQztBQUNsQyxFQUFFLElBQUk7QUFDTixFQUFFLE9BQU87QUFDVCxFQUFFLFdBQVc7QUFDYixFQUFFLGFBQWE7QUFDZixFQUFFLEtBQUs7QUFDUCxFQUFFLE9BQU87QUFDVCxFQUFFLFFBQVEsRUFBRSxVQUFVO0FBQ3RCLEVBQUUsU0FBUyxFQUFFLEtBQUs7QUFDbEIsRUFBRSxXQUFXLEVBQUUsR0FBRztBQUNsQixFQUFFLFlBQVksRUFBRSxZQUFZO0FBQzVCLEVBQUUsY0FBYyxFQUFFLFlBQVk7QUFDOUIsRUFBRSxXQUFXO0FBQ2IsRUFBRSxHQUFHO0FBQ0wsQ0FBQyxFQUFFLEdBQUc7QUFDTixFQUFFLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLEVBQUUsK0JBQVUsZ0JBQWlCLEVBQUUsWUFBWSxDQUFDO0FBQ3RFLEVBQUUsTUFBTTtBQUNSLElBQUksS0FBSztBQUNULElBQUksVUFBVSxFQUFFLEVBQUUsTUFBTTtBQUN4QixFQUFFLEVBQUUsRUFBRSwwQ0FBYztBQUNwQixJQUFJLElBQUk7QUFDUixJQUFJO0FBQ0osRUFBRSxDQUFDLENBQUM7QUFDSixFQUFFLE1BQU0sZUFBZSxFQUFFLDRCQUFRO0FBQ2pDLElBQUksQ0FBQyxFQUFFLEdBQUcsOEJBQVMsTUFBTyxDQUFDLE9BQU8sRUFBRSxHQUFHO0FBQ3ZDLE1BQU0sSUFBSTtBQUNWLFFBQVEsTUFBTSxRQUFRLEVBQUUsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDO0FBQzlDLFFBQVEsTUFBTSxjQUFjLEVBQUU7QUFDOUIsVUFBVSxHQUFHLEtBQUssQ0FBQyxlQUFlO0FBQ2xDLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTTtBQUMzQixZQUFZLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUk7QUFDbkQsY0FBYyxDQUFDLFFBQVEsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDO0FBQ3RELFlBQVk7QUFDWixVQUFVO0FBQ1YsUUFBUSxDQUFDO0FBQ1QsUUFBUSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxjQUFjLENBQUMsQ0FBQztBQUNqRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRTtBQUN2QixRQUFRLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3pELE1BQU07QUFDTixJQUFJLENBQUMsRUFBRSxVQUFVLENBQUM7QUFDbEIsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsZUFBZSxFQUFFLFVBQVU7QUFDL0MsRUFBRSxDQUFDO0FBQ0gsRUFBRSw4QkFBVSxDQUFFLEVBQUUsR0FBRztBQUNuQixJQUFJLEdBQUcsQ0FBQyxpQkFBQyxhQUFhLDZCQUFFLFNBQU8sR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLE1BQU07QUFDN0QsSUFBSSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNwRCxJQUFJLE1BQU0sUUFBUSxFQUFFO0FBQ3BCLE1BQU0sS0FBSyxFQUFFLElBQUk7QUFDakIsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHO0FBQ3ZDLE1BQU0sR0FBRyxDQUFDLE9BQU8sRUFBRTtBQUNuQixRQUFRLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDcEUsUUFBUSxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUMzRCxRQUFRLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDL0QsUUFBUSxLQUFLLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0QsTUFBTTtBQUNOLE1BQU0sUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkQsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRztBQUN6QixNQUFNLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZELElBQUksQ0FBQyxDQUFDO0FBQ04sRUFBRSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUQsRUFBRSw4QkFBVSxDQUFFLEVBQUUsR0FBRztBQUNuQixJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsTUFBTTtBQUNwQyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRTtBQUNqQyxNQUFNLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQ3pDLE1BQU0sTUFBTTtBQUNaLElBQUk7QUFDSixJQUFJLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3BELElBQUksTUFBTSxRQUFRLEVBQUU7QUFDcEIsTUFBTSxLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVU7QUFDN0IsTUFBTSxhQUFhLEVBQUU7QUFDckIsSUFBSSxDQUFDO0FBQ0wsSUFBSSxjQUFjLENBQUMsT0FBTyxDQUFDO0FBQzNCLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsYUFBYSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzdELEVBQUUsTUFBTSxhQUFhLEVBQUUsZ0NBQVk7QUFDbkMsSUFBSSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsR0FBRztBQUN6QixNQUFNLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxzQkFBc0IsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDbkUsTUFBTSxLQUFLLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDNUQsSUFBSSxDQUFDO0FBQ0wsSUFBSSxDQUFDLEtBQUs7QUFDVixFQUFFLENBQUM7QUFDSCxFQUFFLE1BQU0sa0JBQWtCLEVBQUUsZ0NBQVk7QUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsR0FBRztBQUM5QixNQUFNLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7QUFDbkUsSUFBSSxDQUFDO0FBQ0wsSUFBSSxDQUFDO0FBQ0wsRUFBRSxDQUFDO0FBQ0gsRUFBRSxNQUFNLHFCQUFxQixFQUFFLGdDQUFZO0FBQzNDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsS0FBSztBQUNuRCxJQUFJLENBQUM7QUFDTCxFQUFFLENBQUM7QUFDSCxFQUFFLE1BQU0sZUFBZSxFQUFFLGdDQUFZLENBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNuRSxFQUFFLE1BQU0sbUJBQW1CLEVBQUUsZ0NBQVk7QUFDekMsSUFBSSxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsNkJBQUk7QUFDcEMsTUFBTSxtQkFBVTtBQUNoQixNQUFNO0FBQ04sUUFBUSxHQUFHLE1BQU07QUFDakIsUUFBUSxLQUFLO0FBQ2IsUUFBUSxXQUFXO0FBQ25CLFFBQVEsT0FBTztBQUNmLFFBQVEsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO0FBQ3RCLFFBQVEsVUFBVSxrQkFBRSxLQUFLLDZCQUFFLFNBQU87QUFDbEMsUUFBUSxTQUFTLEVBQUU7QUFDbkIsVUFBVSxLQUFLLEVBQUU7QUFDakIsWUFBWSxHQUFHLE1BQU0sQ0FBQyxVQUFVO0FBQ2hDLFlBQVksWUFBWSxrQkFBa0IsOEJBQUssb0JBQVUsRUFBRSxFQUFFLFFBQVEsRUFBRTtBQUN2RSxjQUFjLEtBQUssQ0FBQyxRQUFRLG1CQUFtQiw2QkFBSSwwQkFBa0IsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RHLGNBQWMsTUFBTSxDQUFDLFVBQVUsQ0FBQztBQUNoQyxZQUFZLEVBQUUsQ0FBQztBQUNmLFVBQVU7QUFDVixRQUFRO0FBQ1IsTUFBTTtBQUNOLElBQUksQ0FBQztBQUNMLElBQUk7QUFDSixNQUFNLEtBQUs7QUFDWCxNQUFNLFdBQVc7QUFDakIsTUFBTSxPQUFPO0FBQ2IsTUFBTSxLQUFLO0FBQ1gsTUFBTSxLQUFLLENBQUM7QUFDWixJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0gsRUFBRSx1QkFBdUIsNkJBQUk7QUFDN0IsSUFBSSxzQkFBYTtBQUNqQixJQUFJO0FBQ0osTUFBTSxRQUFRLEVBQUUsSUFBSTtBQUNwQixNQUFNLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztBQUM1QixNQUFNLEtBQUssRUFBRSxLQUFLLENBQUMsZUFBZTtBQUNsQyxNQUFNLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztBQUM1QixNQUFNLFFBQVE7QUFDZCxNQUFNLG9CQUFvQjtBQUMxQixNQUFNLGNBQWM7QUFDcEIsTUFBTSxxQkFBcUIsRUFBRSxJQUFJO0FBQ2pDLE1BQU0sUUFBUSxFQUFFLFlBQVk7QUFDNUIsTUFBTSxhQUFhLEVBQUUsaUJBQWlCO0FBQ3RDLE1BQU0sV0FBVztBQUNqQixNQUFNLGFBQWE7QUFDbkIsTUFBTSxXQUFXLEVBQUUsWUFBWSxHQUFHLGtCQUFrQjtBQUNwRCxNQUFNLEdBQUc7QUFDVCxJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0gsQ0FBQztBQUNELElBQUksa0JBQWtCLEVBQUUsQ0FBQztBQUN6QixFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7QUFDaEIsRUFBRSxHQUFHO0FBQ0wsQ0FBQyxFQUFFLEdBQUc7QUFDTixFQUFFLHVCQUF1Qiw2QkFBSSxjQUFNLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUFFLFFBQVEsa0JBQWtCLDZCQUFJLDBCQUEyQixFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDMUksQ0FBQztBQUNELGlCQUFpQixDQUFDLFlBQVksRUFBRSxtQkFBbUI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0EsSUFBSSxXQUFXLEVBQUUsU0FBUyxlQUFlLENBQUMsS0FBSyxFQUFFO0FBQ2pELEVBQUUsTUFBTTtBQUNSLElBQUksSUFBSTtBQUNSLElBQUksT0FBTztBQUNYLElBQUksS0FBSztBQUNULElBQUksVUFBVTtBQUNkLElBQUksVUFBVTtBQUNkLElBQUksVUFBVTtBQUNkLElBQUksU0FBUztBQUNiLElBQUksUUFBUTtBQUNaLElBQUksUUFBUSxFQUFFLGNBQWM7QUFDNUIsSUFBSSxHQUFHO0FBQ1AsRUFBRSxFQUFFLEVBQUUsS0FBSztBQUNYLEVBQUUsTUFBTTtBQUNSLElBQUksS0FBSztBQUNULElBQUksVUFBVSxFQUFFLEVBQUUsTUFBTTtBQUN4QixFQUFFLEVBQUUsRUFBRSwwQ0FBYztBQUNwQixJQUFJLElBQUk7QUFDUixJQUFJLE9BQU87QUFDWCxJQUFJO0FBQ0osRUFBRSxDQUFDLENBQUM7QUFDSixFQUFFLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxFQUFFO0FBQ3BELElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7QUFDekIsRUFBRTtBQUNGLEVBQUUsTUFBTSxzQkFBc0Isa0JBQUUsU0FBUyw2QkFBRSxRQUFNO0FBQ2pELEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRSw0Q0FBWTtBQUMxQyxJQUFJLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztBQUN0QixJQUFJLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtBQUM1QixJQUFJLFNBQVMsRUFBRTtBQUNmLE1BQU0sS0FBSyxFQUFFLHVCQUFPLFNBQVMsNkJBQUUsUUFBTSxJQUFJLFdBQVcsRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE1BQU07QUFDNUYsTUFBTSxNQUFNLEVBQUUsT0FBTyxzQkFBc0IsSUFBSSxXQUFXLEVBQUUsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLEdBQUc7QUFDdEYsUUFBUSxNQUFNLE1BQU0sRUFBRSxZQUFZO0FBQ2xDLFFBQVEsTUFBTSxRQUFRLEVBQUUsTUFBTTtBQUM5QixRQUFRLE9BQU8scUJBQXFCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztBQUNwRCxNQUFNLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRztBQUNwQyxRQUFRLE1BQU0sUUFBUSxFQUFFLE1BQU07QUFDOUIsUUFBUSxPQUFPLE9BQU87QUFDdEIsTUFBTTtBQUNOLElBQUk7QUFDSixFQUFFLENBQUMsQ0FBQztBQUNKLEVBQUUsTUFBTSxhQUFhLEVBQUUsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUc7QUFDM0MsSUFBSSxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztBQUM1QixJQUFJLEdBQUcsQ0FBQyxPQUFPLGVBQWUsSUFBSSxVQUFVLEVBQUU7QUFDOUMsTUFBTSxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQztBQUNwQyxJQUFJO0FBQ0osRUFBRSxDQUFDO0FBQ0gsRUFBRSxNQUFNLGFBQWEsRUFBRSxNQUFNLEVBQUUsT0FBTyxXQUFXLElBQUksV0FBVyxFQUFFLFVBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUk7QUFDMUcsRUFBRSx1QkFBdUIsOEJBQUsscUJBQVksRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUU7QUFDbEYsb0JBQW9CLDZCQUFJLG1CQUFVLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsa0JBQWtCLDZCQUFJO0FBQy9FLE1BQU0sMEJBQWdCO0FBQ3RCLE1BQU07QUFDTixRQUFRLEtBQUssRUFBRSxNQUFNLEdBQUcsRUFBRTtBQUMxQixRQUFRLEdBQUcsVUFBVTtBQUNyQixRQUFRLFFBQVE7QUFDaEIsUUFBUSxPQUFPLGtCQUFrQiw2QkFBSTtBQUNyQyxVQUFVLGtCQUFRO0FBQ2xCLFVBQVU7QUFDVixZQUFZLEdBQUcsSUFBSTtBQUNuQixZQUFZLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVM7QUFDMUMsWUFBWSxPQUFPLEVBQUUsS0FBSztBQUMxQixZQUFZLFFBQVE7QUFDcEIsWUFBWSxRQUFRLEVBQUUsWUFBWTtBQUNsQyxZQUFZLEdBQUcsRUFBRSxLQUFLLENBQUM7QUFDdkIsVUFBVTtBQUNWLFFBQVE7QUFDUixNQUFNO0FBQ04sSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNSLElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxFQUFFLG1CQUFtQiw2QkFBSSx3QkFBZSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLGFBQWEsR0FBRyxXQUFXLENBQUM7QUFDakksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNOLENBQUM7QUFDRCxJQUFJLGlCQUFpQixFQUFFLENBQUM7QUFDeEIsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0FBQ2hCLEVBQUUsR0FBRztBQUNMLENBQUMsRUFBRSxHQUFHO0FBQ04sRUFBRSx1QkFBdUIsNkJBQUksY0FBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLFNBQVMsRUFBRSxRQUFRLGtCQUFrQiw2QkFBSSxVQUFXLEVBQUUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUMxSCxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLFdBQVcsRUFBRSxTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUU7QUFDL0MsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLEVBQUUsS0FBSztBQUMvRCxFQUFFLE1BQU07QUFDUixJQUFJLEtBQUs7QUFDVCxJQUFJLFVBQVUsRUFBRSxFQUFFLE1BQU07QUFDeEIsRUFBRSxFQUFFLEVBQUUsMENBQWM7QUFDcEIsSUFBSSxJQUFJO0FBQ1IsSUFBSSxPQUFPO0FBQ1gsSUFBSSxRQUFRLEVBQUUsSUFBSSxDQUFDO0FBQ25CLEVBQUUsQ0FBQyxDQUFDO0FBQ0osRUFBRSxNQUFNLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsNkJBQVM7QUFDdkQsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLG1CQUFHLEtBQUsscUJBQUMsS0FBSyw2QkFBRSxRQUFRLG1CQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDO0FBQ2xGLEVBQUUsQ0FBQztBQUNILEVBQUUsOEJBQVUsQ0FBRSxFQUFFLEdBQUc7QUFDbkIsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsRUFBRSxDQUFDLEdBQUcsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDN0IsRUFBRSxNQUFNLGFBQWEsRUFBRSxnQ0FBWSxDQUFFLEtBQUssRUFBRSxHQUFHO0FBQy9DLElBQUksTUFBTSxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7QUFDekQsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtBQUM3QixNQUFNLE1BQU07QUFDWixJQUFJO0FBQ0osSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7QUFDOUIsTUFBTSxpQkFBaUIsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDbkQsSUFBSSxFQUFFLEtBQUs7QUFDWCxNQUFNLGlCQUFpQixDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsQ0FBQztBQUN4RSxJQUFJO0FBQ0osRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDUixFQUFFLHVCQUF1Qiw4QkFBSyxxQkFBYSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFO0FBQ3pFLG9CQUFvQiw2QkFBSSxtQkFBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxtQkFBbUIsNkJBQUk7QUFDeEcsTUFBTSwwQkFBaUI7QUFDdkIsTUFBTTtBQUNOLFFBQVEsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO0FBQzNCLFFBQVEsR0FBRyxVQUFVO0FBQ3JCLFFBQVEsT0FBTyxrQkFBa0IsNkJBQUk7QUFDckMsVUFBVSxrQkFBUztBQUNuQixVQUFVO0FBQ1YsWUFBWSxHQUFHLElBQUk7QUFDbkIsWUFBWSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTO0FBQzFDLFlBQVksS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO0FBQy9CLFlBQVksT0FBTyxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUMxRCxZQUFZLFFBQVEsRUFBRTtBQUN0QixVQUFVO0FBQ1YsUUFBUTtBQUNSLE1BQU0sQ0FBQztBQUNQLE1BQU0sQ0FBQyxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0E7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0E7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0E7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0E7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxjQUFBO0FBQ0EsY0FBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0E7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLG9CQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsWUFBQTtBQUNBLGNBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBO0FBQ0EsZ0JBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0Esb0JBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSwwQkFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBO0FBQ0EsY0FBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0E7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsWUFBQTtBQUNBLGNBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLFlBQUE7QUFDQSxjQUFBO0FBQ0EsY0FBQTtBQUNBLGdCQUFBO0FBQ0EsZ0JBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0E7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsVUFBQTtBQUNBLFVBQUE7QUFDQSxZQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxjQUFBO0FBQ0EsZ0JBQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBO0FBQ0EsZ0JBQUE7QUFDQSxjQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0EsVUFBQTtBQUNBLDRCQUFBO0FBQ0EsY0FBQTtBQUNBLGNBQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBO0FBQ0EsZ0JBQUE7QUFDQSxnQkFBQTtBQUNBLGdCQUFBO0FBQ0Esa0JBQUE7QUFDQSxrQkFBQTtBQUNBLGtCQUFBO0FBQ0EsZ0JBQUE7QUFDQSxnQkFBQTtBQUNBLGNBQUE7QUFDQSxZQUFBO0FBQ0EsNEJBQUE7QUFDQSxjQUFBO0FBQ0EsY0FBQTtBQUNBLGdCQUFBO0FBQ0EsZ0JBQUE7QUFDQSxnQkFBQTtBQUNBLGNBQUE7QUFDQSxZQUFBO0FBQ0EsVUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiRDpcXFByb2plY3RzXFxHTldlYlNvZnQuVUlcXHBhY2thZ2VzXFx1aVxcZGlzdFxcY2h1bmstN0dVQlJBVjcuY2pzIiwic291cmNlc0NvbnRlbnQiOltudWxsXX0=