@homebound/beam 4.52.0 → 4.53.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +401 -326
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +17 -1
- package/dist/index.d.ts +17 -1
- package/dist/index.js +302 -227
- package/dist/index.js.map +1 -1
- package/dist/truss.css +2 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -17243,7 +17243,8 @@ function ButtonGroup(props) {
|
|
|
17243
17243
|
const {
|
|
17244
17244
|
buttons,
|
|
17245
17245
|
disabled = false,
|
|
17246
|
-
size = "sm"
|
|
17246
|
+
size = "sm",
|
|
17247
|
+
fullWidth = false
|
|
17247
17248
|
} = props;
|
|
17248
17249
|
const tid = useTestIds(props, "buttonGroup");
|
|
17249
17250
|
return (
|
|
@@ -17251,13 +17252,16 @@ function ButtonGroup(props) {
|
|
|
17251
17252
|
/* @__PURE__ */ (0, import_jsx_runtime86.jsx)("div", { ...tid, ...(0, import_runtime65.trussProps)({
|
|
17252
17253
|
...{
|
|
17253
17254
|
display: "df",
|
|
17254
|
-
lineHeight: "lh_0"
|
|
17255
|
+
lineHeight: "lh_0",
|
|
17256
|
+
...fullWidth ? {
|
|
17257
|
+
width: "w100"
|
|
17258
|
+
} : {}
|
|
17255
17259
|
},
|
|
17256
17260
|
...sizeStyles2[size]
|
|
17257
17261
|
}), children: buttons.map(({
|
|
17258
17262
|
disabled: buttonDisabled,
|
|
17259
17263
|
...buttonProps
|
|
17260
|
-
}, i) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(GroupButton, { ...buttonProps, disabled: disabled || buttonDisabled, size, isFirst: i === 0, isLast: i === buttons.length - 1, ...tid }, i)) })
|
|
17264
|
+
}, i) => /* @__PURE__ */ (0, import_jsx_runtime86.jsx)(GroupButton, { ...buttonProps, disabled: disabled || buttonDisabled, size, isFirst: i === 0, isLast: i === buttons.length - 1, fullWidth, ...tid }, i)) })
|
|
17261
17265
|
);
|
|
17262
17266
|
}
|
|
17263
17267
|
function GroupButton(props) {
|
|
@@ -17273,6 +17277,7 @@ function GroupButton(props) {
|
|
|
17273
17277
|
tooltip,
|
|
17274
17278
|
isFirst,
|
|
17275
17279
|
isLast,
|
|
17280
|
+
fullWidth,
|
|
17276
17281
|
...otherProps
|
|
17277
17282
|
} = props;
|
|
17278
17283
|
const ariaProps = {
|
|
@@ -17294,7 +17299,15 @@ function GroupButton(props) {
|
|
|
17294
17299
|
isHovered
|
|
17295
17300
|
} = (0, import_react_aria26.useHover)(ariaProps);
|
|
17296
17301
|
const tid = useTestIds(props);
|
|
17297
|
-
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { ...(0, import_runtime65.trussProps)(
|
|
17302
|
+
return /* @__PURE__ */ (0, import_jsx_runtime86.jsx)("span", { ...(0, import_runtime65.trussProps)({
|
|
17303
|
+
...getButtonStyles2(isFirst, isLast),
|
|
17304
|
+
...{
|
|
17305
|
+
...fullWidth ? {
|
|
17306
|
+
flexGrow: "fg1",
|
|
17307
|
+
flexBasis: "fb0"
|
|
17308
|
+
} : {}
|
|
17309
|
+
}
|
|
17310
|
+
}), children: maybeTooltip({
|
|
17298
17311
|
title: resolveTooltip(disabled, tooltip),
|
|
17299
17312
|
placement: "top",
|
|
17300
17313
|
children: /* @__PURE__ */ (0, import_jsx_runtime86.jsxs)("button", { ref, ...buttonProps, ...focusProps, ...hoverProps, ...(0, import_runtime65.trussProps)({
|
|
@@ -17311,6 +17324,10 @@ function GroupButton(props) {
|
|
|
17311
17324
|
paddingLeft: "pl2",
|
|
17312
17325
|
paddingRight: "pr2",
|
|
17313
17326
|
height: "h100",
|
|
17327
|
+
...fullWidth ? {
|
|
17328
|
+
width: "w100",
|
|
17329
|
+
justifyContent: "jcc"
|
|
17330
|
+
} : {},
|
|
17314
17331
|
color: ["d_color_var", {
|
|
17315
17332
|
"--d_color": "var(--b-text-disabled)"
|
|
17316
17333
|
}],
|
|
@@ -27655,10 +27672,10 @@ function invertSpacing(value) {
|
|
|
27655
27672
|
}
|
|
27656
27673
|
|
|
27657
27674
|
// src/components/Layout/GridTableLayout/GridTableLayout.tsx
|
|
27658
|
-
var
|
|
27675
|
+
var import_react144 = __toESM(require("react"), 1);
|
|
27659
27676
|
|
|
27660
27677
|
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
27661
|
-
var
|
|
27678
|
+
var import_react127 = require("react");
|
|
27662
27679
|
|
|
27663
27680
|
// src/components/Pills/SelectionSummaryPill/SelectionSummaryPill.tsx
|
|
27664
27681
|
var import_react_aria65 = require("react-aria");
|
|
@@ -27742,7 +27759,14 @@ function EditColumnsButton(props) {
|
|
|
27742
27759
|
disabled,
|
|
27743
27760
|
columns,
|
|
27744
27761
|
api,
|
|
27745
|
-
shareColumnVisibility = false
|
|
27762
|
+
shareColumnVisibility = false,
|
|
27763
|
+
viewToggle
|
|
27764
|
+
} = props;
|
|
27765
|
+
const {
|
|
27766
|
+
sm
|
|
27767
|
+
} = useBreakpoint();
|
|
27768
|
+
const {
|
|
27769
|
+
compact = sm
|
|
27746
27770
|
} = props;
|
|
27747
27771
|
const state = (0, import_react_stately18.useMenuTriggerState)({
|
|
27748
27772
|
defaultOpen
|
|
@@ -27754,9 +27778,6 @@ function EditColumnsButton(props) {
|
|
|
27754
27778
|
isDisabled: !!disabled
|
|
27755
27779
|
}, state, buttonRef);
|
|
27756
27780
|
const tid = useTestIds(props, "columns");
|
|
27757
|
-
const {
|
|
27758
|
-
sm
|
|
27759
|
-
} = useBreakpoint();
|
|
27760
27781
|
const options = (0, import_react125.useMemo)(() => buildColumnOptions(columns, shareColumnVisibility), [columns, shareColumnVisibility]);
|
|
27761
27782
|
const selectedValues = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
27762
27783
|
const setSelectedValues = (0, import_react125.useCallback)((ids) => {
|
|
@@ -27764,7 +27785,7 @@ function EditColumnsButton(props) {
|
|
|
27764
27785
|
api.setVisibleColumns(columns.filter((column2) => column2.canHide ? ids.includes(column2.id) : true).map((c) => c.id));
|
|
27765
27786
|
}, [columns, api]);
|
|
27766
27787
|
const hasHiddenColumn = (0, import_react125.useMemo)(() => options.some((option) => option.ids.some((id) => !selectedValues.includes(id))), [options, selectedValues]);
|
|
27767
|
-
return /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(OverlayTrigger, { ...props, trigger:
|
|
27788
|
+
return /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(OverlayTrigger, { ...props, trigger: compact ? {
|
|
27768
27789
|
icon: hasHiddenColumn ? "columnsBadged" : "columns",
|
|
27769
27790
|
variant: "outline"
|
|
27770
27791
|
} : {
|
|
@@ -27786,6 +27807,7 @@ function EditColumnsButton(props) {
|
|
|
27786
27807
|
maxHeight: "maxh_512px",
|
|
27787
27808
|
boxShadow: "bshBasic h_bshHover"
|
|
27788
27809
|
}), children: [
|
|
27810
|
+
viewToggle && /* @__PURE__ */ (0, import_jsx_runtime196.jsx)("div", { className: "pt2 pb0 pr2 pl2", children: /* @__PURE__ */ (0, import_jsx_runtime196.jsx)(ButtonGroup, { ...viewToggle, size: "md", fullWidth: true, ...tid.header }) }),
|
|
27789
27811
|
/* @__PURE__ */ (0, import_jsx_runtime196.jsx)("div", { className: "dg gtc_1fr_auto g_2 pt2 pb2 pr2 pl2 fg1 mh0 oya", children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime196.jsxs)(import_react125.Fragment, { children: [
|
|
27790
27812
|
/* @__PURE__ */ (0, import_jsx_runtime196.jsxs)("div", { className: "df aic g_4px mw0 pr1", children: [
|
|
27791
27813
|
/* @__PURE__ */ (0, import_jsx_runtime196.jsx)("span", { className: "fw4 fz_14px lh_20px mw0", children: option.label }),
|
|
@@ -27866,8 +27888,9 @@ function closeMenuOnClickTooltip(tooltip, closeMenu) {
|
|
|
27866
27888
|
|
|
27867
27889
|
// src/components/Table/components/ViewToggleButton.tsx
|
|
27868
27890
|
var import_jsx_runtime197 = require("react/jsx-runtime");
|
|
27869
|
-
function ViewToggleButton({ view, onChange, defaultOpen }) {
|
|
27891
|
+
function ViewToggleButton({ view, onChange, defaultOpen, ...props }) {
|
|
27870
27892
|
const { sm } = useBreakpoint();
|
|
27893
|
+
const { compact = sm } = props;
|
|
27871
27894
|
const tid = useTestIds({}, "viewToggleButton");
|
|
27872
27895
|
const menuItems = [
|
|
27873
27896
|
{ label: "List", icon: "projects", onClick: () => onChange("list") },
|
|
@@ -27877,7 +27900,7 @@ function ViewToggleButton({ view, onChange, defaultOpen }) {
|
|
|
27877
27900
|
return /* @__PURE__ */ (0, import_jsx_runtime197.jsx)(
|
|
27878
27901
|
ButtonMenu,
|
|
27879
27902
|
{
|
|
27880
|
-
trigger:
|
|
27903
|
+
trigger: compact ? { icon, variant: "outline" } : { icon, label: "", size: "md", variant: "secondaryBlack" },
|
|
27881
27904
|
items: menuItems,
|
|
27882
27905
|
defaultOpen,
|
|
27883
27906
|
...tid
|
|
@@ -28012,6 +28035,37 @@ function filterPillsForKey(key, f, filter) {
|
|
|
28012
28035
|
}];
|
|
28013
28036
|
}
|
|
28014
28037
|
|
|
28038
|
+
// src/components/Layout/GridTableLayout/useToolbarCompact.ts
|
|
28039
|
+
var import_utils39 = require("@react-aria/utils");
|
|
28040
|
+
var import_react126 = require("react");
|
|
28041
|
+
function useToolbarCompact(enabled) {
|
|
28042
|
+
const rowRef = (0, import_react126.useRef)(null);
|
|
28043
|
+
const leftRef = (0, import_react126.useRef)(null);
|
|
28044
|
+
const rightRef = (0, import_react126.useRef)(null);
|
|
28045
|
+
const [compact, setCompact] = (0, import_react126.useState)(false);
|
|
28046
|
+
const fullSlotsWidth = (0, import_react126.useRef)(0);
|
|
28047
|
+
const measure = (0, import_react126.useCallback)(() => {
|
|
28048
|
+
const row = rowRef.current;
|
|
28049
|
+
const left = leftRef.current;
|
|
28050
|
+
const right = rightRef.current;
|
|
28051
|
+
if (!enabled || !row || !left || !right || row.clientWidth === 0) {
|
|
28052
|
+
setCompact(false);
|
|
28053
|
+
return;
|
|
28054
|
+
}
|
|
28055
|
+
if (!compact) {
|
|
28056
|
+
const gap = right.getBoundingClientRect().left - left.getBoundingClientRect().right;
|
|
28057
|
+
fullSlotsWidth.current = row.clientWidth - gap;
|
|
28058
|
+
}
|
|
28059
|
+
setCompact(row.clientWidth - fullSlotsWidth.current < toolbarMinSlotGapPx);
|
|
28060
|
+
}, [enabled, compact]);
|
|
28061
|
+
(0, import_react126.useLayoutEffect)(measure, [measure]);
|
|
28062
|
+
(0, import_utils39.useResizeObserver)({ ref: rowRef, onResize: measure });
|
|
28063
|
+
(0, import_utils39.useResizeObserver)({ ref: leftRef, onResize: measure });
|
|
28064
|
+
(0, import_utils39.useResizeObserver)({ ref: rightRef, onResize: measure });
|
|
28065
|
+
return { rowRef, leftRef, rightRef, compact };
|
|
28066
|
+
}
|
|
28067
|
+
var toolbarMinSlotGapPx = 40;
|
|
28068
|
+
|
|
28015
28069
|
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
28016
28070
|
var import_runtime129 = require("@homebound/truss/runtime");
|
|
28017
28071
|
var import_jsx_runtime200 = require("react/jsx-runtime");
|
|
@@ -28032,27 +28086,37 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
28032
28086
|
clearFilters,
|
|
28033
28087
|
searchApi,
|
|
28034
28088
|
actions,
|
|
28089
|
+
viewModeToggle,
|
|
28035
28090
|
selectionSummary = false
|
|
28036
28091
|
} = props;
|
|
28037
28092
|
const testId = useTestIds(props, "gridTableLayoutActions");
|
|
28038
28093
|
const filterTid = useTestIds({}, filterTestIdPrefix);
|
|
28094
|
+
const showEditColumns = !!(hasHideableColumns && view === "list" && columns && api);
|
|
28095
|
+
const hasRightItems = selectionSummary && !!api || !!viewModeToggle?.length || showEditColumns || !!withCardView && view !== void 0 && !!setView || !!actions?.length;
|
|
28039
28096
|
const {
|
|
28040
|
-
sm
|
|
28097
|
+
sm: smBreakpoint
|
|
28041
28098
|
} = useBreakpoint();
|
|
28099
|
+
const {
|
|
28100
|
+
rowRef,
|
|
28101
|
+
leftRef,
|
|
28102
|
+
rightRef,
|
|
28103
|
+
compact
|
|
28104
|
+
} = useToolbarCompact(!smBreakpoint && hasRightItems);
|
|
28105
|
+
const sm = smBreakpoint || compact;
|
|
28042
28106
|
const {
|
|
28043
28107
|
inModal
|
|
28044
28108
|
} = useModalContext();
|
|
28045
28109
|
const inDocumentScrollLayout = useDocumentScrollLayout();
|
|
28046
28110
|
const insetHandled = useContentInsetHandled();
|
|
28047
28111
|
const withPagePadding = inDocumentScrollLayout && !insetHandled;
|
|
28048
|
-
const [showSearch, setShowSearch] = (0,
|
|
28049
|
-
const [showFilters, setShowFilters] = (0,
|
|
28112
|
+
const [showSearch, setShowSearch] = (0, import_react127.useState)(false);
|
|
28113
|
+
const [showFilters, setShowFilters] = (0, import_react127.useState)(false);
|
|
28050
28114
|
const [{
|
|
28051
28115
|
search: initialValue
|
|
28052
28116
|
}, setQueryParams] = (0, import_use_query_params.useQueryParams)({
|
|
28053
28117
|
search: import_use_query_params.StringParam
|
|
28054
28118
|
});
|
|
28055
|
-
const [searchValue, setSearchValue] = (0,
|
|
28119
|
+
const [searchValue, setSearchValue] = (0, import_react127.useState)(inModal ? "" : initialValue || "");
|
|
28056
28120
|
const handleSearchDebounced = (0, import_use_debounce7.useDebouncedCallback)((value) => {
|
|
28057
28121
|
if (searchProps) {
|
|
28058
28122
|
searchProps.onSearch(value);
|
|
@@ -28066,9 +28130,13 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
28066
28130
|
const hasGroupBy = !!groupBy;
|
|
28067
28131
|
const controlCount = filterCount + (hasGroupBy ? 1 : 0);
|
|
28068
28132
|
const hasFilterControls = controlCount > 0;
|
|
28069
|
-
const
|
|
28070
|
-
const
|
|
28071
|
-
const
|
|
28133
|
+
const canInline = !inModal && !sm;
|
|
28134
|
+
const groupByInline = canInline && hasGroupBy;
|
|
28135
|
+
const filtersInline = canInline && filterCount > 0 && controlCount <= 2 && !!(filter && setFilter);
|
|
28136
|
+
const showFilterPanel = filterCount > 0 && !filtersInline || hasGroupBy && !groupByInline;
|
|
28137
|
+
const filterImpls = (0, import_react127.useMemo)(() => filterDefs ? buildFilterImpls(filterDefs) : {}, [filterDefs]);
|
|
28138
|
+
const activeFilterCount = (0, import_react127.useMemo)(() => filter ? getFilterPills(filterImpls, filter).length : 0, [filter, filterImpls]);
|
|
28139
|
+
const viewModeToggleInColumnsMenu = !!viewModeToggle?.length && sm && showEditColumns;
|
|
28072
28140
|
const searchTextField = /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(TextField, { label: "Search", labelStyle: "hidden", value: searchValue, onChange: (v) => {
|
|
28073
28141
|
setSearchValue(v ?? "");
|
|
28074
28142
|
handleSearchDebounced(v ?? "");
|
|
@@ -28094,7 +28162,7 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
28094
28162
|
paddingBottom: "pb3"
|
|
28095
28163
|
} : {}
|
|
28096
28164
|
}), children: [
|
|
28097
|
-
/* @__PURE__ */ (0, import_jsx_runtime200.jsxs)("div", { ...(0, import_runtime129.trussProps)({
|
|
28165
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsxs)("div", { ref: rowRef, ...(0, import_runtime129.trussProps)({
|
|
28098
28166
|
// Holds the row at the 40px button height, so a pill alone in it doesn't shift the table when it appears
|
|
28099
28167
|
...{
|
|
28100
28168
|
display: "df",
|
|
@@ -28106,28 +28174,33 @@ function GridTableLayoutActionsComponent(props) {
|
|
|
28106
28174
|
},
|
|
28107
28175
|
...withPagePadding ? pageContentPaddingX : void 0
|
|
28108
28176
|
}), ...testId.toolbar, children: [
|
|
28109
|
-
/* @__PURE__ */ (0, import_jsx_runtime200.jsxs)("div", { className: "df g_12px aic", children: [
|
|
28177
|
+
/* @__PURE__ */ (0, import_jsx_runtime200.jsxs)("div", { ref: leftRef, className: "df fs0 g_12px aic", children: [
|
|
28110
28178
|
!sm && hasSearch && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)("div", { className: "w_244px", children: searchTextField }),
|
|
28111
28179
|
sm && hasSearch && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(IconButton, { variant: "outline", icon: searchValue ? "searchBadged" : "search", label: "Search", onClick: () => setShowSearch(!showSearch), active: showSearch, ...testId.searchButton }),
|
|
28112
28180
|
sm && hasFilterControls && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(IconButton, { variant: "outline", icon: activeFilterCount > 0 ? "filterBadged" : "filter", label: "Filter", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterSmallButton }),
|
|
28113
|
-
|
|
28114
|
-
!sm &&
|
|
28181
|
+
filtersInline && filter && setFilter && buildFilterControls(filterImpls, filter, setFilter, filterTid),
|
|
28182
|
+
!sm && showFilterPanel && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Button, { label: "Filter", icon: "filter", size: "md", endAdornment: /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)("div", { className: "df aic g_1", children: [
|
|
28115
28183
|
activeFilterCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(CountBadge, { count: activeFilterCount }),
|
|
28116
28184
|
/* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Icon, { icon: showFilters ? "chevronUp" : "chevronDown" })
|
|
28117
|
-
] }), variant: "secondaryBlack", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterButton })
|
|
28185
|
+
] }), variant: "secondaryBlack", onClick: () => setShowFilters(!showFilters), active: showFilters, ...testId.filterButton }),
|
|
28186
|
+
groupByInline && groupBy && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(GroupByField, { ...groupBy }),
|
|
28187
|
+
filtersInline && activeFilterCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(Button, { label: "Clear", variant: "tertiary", onClick: () => maybeCall(clearFilters), ...filterTid.clearBtn })
|
|
28118
28188
|
] }),
|
|
28119
|
-
|
|
28189
|
+
hasRightItems && /* @__PURE__ */ (0, import_jsx_runtime200.jsxs)("div", { ref: rightRef, className: "df fs0 aic g_12px", children: [
|
|
28120
28190
|
selectionSummary && api && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(SelectionSummaryAction, { api, numberOnly: sm }),
|
|
28121
|
-
|
|
28122
|
-
|
|
28191
|
+
!!viewModeToggle?.length && !viewModeToggleInColumnsMenu && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(ButtonGroup, { size: "md", buttons: viewModeToggle, ...testId.viewModeToggle }),
|
|
28192
|
+
showEditColumns && columns && api && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(EditColumnsButton, { columns, api, shareColumnVisibility, tooltip: "Display columns", compact: sm, viewToggle: viewModeToggleInColumnsMenu ? {
|
|
28193
|
+
buttons: viewModeToggle
|
|
28194
|
+
} : void 0 }),
|
|
28195
|
+
withCardView && view !== void 0 && setView && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(ViewToggleButton, { view, onChange: setView, compact: sm }),
|
|
28123
28196
|
!!actions?.length && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(HeaderActions, { actions, ...testId.actions })
|
|
28124
28197
|
] })
|
|
28125
28198
|
] }),
|
|
28126
28199
|
sm && showSearch && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)("div", { ...(0, import_runtime129.trussProps)(withPagePadding ? pageContentPaddingX : void 0), children: searchTextField }),
|
|
28127
|
-
|
|
28200
|
+
showFilterPanel && /* @__PURE__ */ (0, import_jsx_runtime200.jsx)(FilterPanel, { isOpen: showFilters, groupBy: groupByInline ? void 0 : groupBy, filterImpls, filter, setFilter, onClear: clearFilters })
|
|
28128
28201
|
] });
|
|
28129
28202
|
}
|
|
28130
|
-
var _GridTableLayoutActions = (0,
|
|
28203
|
+
var _GridTableLayoutActions = (0, import_react127.memo)(GridTableLayoutActionsComponent);
|
|
28131
28204
|
function SelectionSummaryAction(props) {
|
|
28132
28205
|
const {
|
|
28133
28206
|
api,
|
|
@@ -28139,36 +28212,36 @@ function SelectionSummaryAction(props) {
|
|
|
28139
28212
|
}
|
|
28140
28213
|
|
|
28141
28214
|
// src/components/Layout/GridTableLayout/GridTableLayoutHost.tsx
|
|
28142
|
-
var
|
|
28143
|
-
var
|
|
28215
|
+
var import_utils41 = require("@react-aria/utils");
|
|
28216
|
+
var import_react137 = require("react");
|
|
28144
28217
|
|
|
28145
28218
|
// src/components/Layout/RightPaneLayout/DocumentScrollOverlayRightPaneLayout.tsx
|
|
28146
|
-
var
|
|
28219
|
+
var import_react135 = require("react");
|
|
28147
28220
|
var import_runtime132 = require("@homebound/truss/runtime");
|
|
28148
28221
|
|
|
28149
28222
|
// src/components/Layout/RightPaneLayout/DocumentScrollRightPane.tsx
|
|
28150
28223
|
var import_framer_motion3 = require("framer-motion");
|
|
28151
|
-
var
|
|
28224
|
+
var import_react132 = require("react");
|
|
28152
28225
|
var import_react_aria67 = require("react-aria");
|
|
28153
28226
|
var import_react_dom7 = require("react-dom");
|
|
28154
28227
|
|
|
28155
28228
|
// src/layouts/EnvironmentBannerLayout/EnvironmentBannerLayoutHeightContext.tsx
|
|
28156
|
-
var
|
|
28229
|
+
var import_react128 = require("react");
|
|
28157
28230
|
var import_jsx_runtime201 = require("react/jsx-runtime");
|
|
28158
|
-
var EnvironmentBannerLayoutHeightContext = (0,
|
|
28231
|
+
var EnvironmentBannerLayoutHeightContext = (0, import_react128.createContext)(0);
|
|
28159
28232
|
function EnvironmentBannerLayoutHeightProvider({ value, children }) {
|
|
28160
28233
|
return /* @__PURE__ */ (0, import_jsx_runtime201.jsx)(EnvironmentBannerLayoutHeightContext.Provider, { value, children });
|
|
28161
28234
|
}
|
|
28162
28235
|
function useEnvironmentBannerLayoutHeight() {
|
|
28163
|
-
return (0,
|
|
28236
|
+
return (0, import_react128.useContext)(EnvironmentBannerLayoutHeightContext);
|
|
28164
28237
|
}
|
|
28165
28238
|
|
|
28166
28239
|
// src/layouts/useScrollPinnedViewportBounds.ts
|
|
28167
|
-
var
|
|
28240
|
+
var import_react129 = require("react");
|
|
28168
28241
|
function useScrollPinnedViewportBounds(anchorRef, enabled, getPinTopPx) {
|
|
28169
|
-
const [bounds, setBounds] = (0,
|
|
28170
|
-
const getPinTopPxRef = (0,
|
|
28171
|
-
const syncBounds = (0,
|
|
28242
|
+
const [bounds, setBounds] = (0, import_react129.useState)();
|
|
28243
|
+
const getPinTopPxRef = (0, import_react129.useRef)(getPinTopPx);
|
|
28244
|
+
const syncBounds = (0, import_react129.useCallback)(() => {
|
|
28172
28245
|
const el = anchorRef.current;
|
|
28173
28246
|
if (!el) return;
|
|
28174
28247
|
const rect = el.getBoundingClientRect();
|
|
@@ -28177,10 +28250,10 @@ function useScrollPinnedViewportBounds(anchorRef, enabled, getPinTopPx) {
|
|
|
28177
28250
|
const topPx = isPinned ? pinTopPx : Math.round(rect.top);
|
|
28178
28251
|
setBounds((prev) => prev?.topPx === topPx && prev?.isPinned === isPinned ? prev : { topPx, isPinned });
|
|
28179
28252
|
}, [anchorRef]);
|
|
28180
|
-
(0,
|
|
28253
|
+
(0, import_react129.useLayoutEffect)(() => {
|
|
28181
28254
|
getPinTopPxRef.current = getPinTopPx;
|
|
28182
28255
|
}, [getPinTopPx]);
|
|
28183
|
-
(0,
|
|
28256
|
+
(0, import_react129.useLayoutEffect)(() => {
|
|
28184
28257
|
if (!enabled) {
|
|
28185
28258
|
setBounds(void 0);
|
|
28186
28259
|
return;
|
|
@@ -28202,10 +28275,10 @@ function useScrollPinnedViewportBounds(anchorRef, enabled, getPinTopPx) {
|
|
|
28202
28275
|
}
|
|
28203
28276
|
|
|
28204
28277
|
// src/components/Layout/RightPaneLayout/useRightPane.tsx
|
|
28205
|
-
var
|
|
28278
|
+
var import_react131 = require("react");
|
|
28206
28279
|
|
|
28207
28280
|
// src/components/Layout/RightPaneLayout/rightPaneStore.ts
|
|
28208
|
-
var
|
|
28281
|
+
var import_react130 = require("react");
|
|
28209
28282
|
var isOpen = false;
|
|
28210
28283
|
var content;
|
|
28211
28284
|
var discardPrompt;
|
|
@@ -28237,7 +28310,7 @@ function openInPane(opts) {
|
|
|
28237
28310
|
showInPane(opts);
|
|
28238
28311
|
}
|
|
28239
28312
|
function warnIfUnkeyed(next) {
|
|
28240
|
-
if (process.env.NODE_ENV === "production" || !(0,
|
|
28313
|
+
if (process.env.NODE_ENV === "production" || !(0, import_react130.isValidElement)(next) || next.key !== null) return;
|
|
28241
28314
|
console.warn(
|
|
28242
28315
|
"[openRightPane] Opened unkeyed content of the same type over a panel with `isDirty`, so it didn't ask and that panel's edits carry over. Key pane content per item, e.g. `<Panel key={id} />`."
|
|
28243
28316
|
);
|
|
@@ -28257,7 +28330,7 @@ function confirmDiscard(proceed) {
|
|
|
28257
28330
|
else proceed();
|
|
28258
28331
|
}
|
|
28259
28332
|
function wouldRemount(prev, next) {
|
|
28260
|
-
return !(0,
|
|
28333
|
+
return !(0, import_react130.isValidElement)(prev) || !(0, import_react130.isValidElement)(next) || prev.type !== next.type || prev.key !== next.key;
|
|
28261
28334
|
}
|
|
28262
28335
|
function clearPane() {
|
|
28263
28336
|
content = void 0;
|
|
@@ -28299,7 +28372,7 @@ function useRightPaneOpenActions() {
|
|
|
28299
28372
|
return rightPaneOpenActions;
|
|
28300
28373
|
}
|
|
28301
28374
|
function useRightPaneOpenState() {
|
|
28302
|
-
const isRightPaneOpen = (0,
|
|
28375
|
+
const isRightPaneOpen = (0, import_react131.useSyncExternalStore)(
|
|
28303
28376
|
rightPaneOpenStore.subscribe,
|
|
28304
28377
|
rightPaneOpenStore.getSnapshot,
|
|
28305
28378
|
rightPaneOpenStore.getSnapshot
|
|
@@ -28307,7 +28380,7 @@ function useRightPaneOpenState() {
|
|
|
28307
28380
|
return { ...rightPaneOpenActions, isRightPaneOpen };
|
|
28308
28381
|
}
|
|
28309
28382
|
function useRightPaneContent() {
|
|
28310
|
-
return (0,
|
|
28383
|
+
return (0, import_react131.useSyncExternalStore)(
|
|
28311
28384
|
rightPaneContentStore.subscribe,
|
|
28312
28385
|
rightPaneContentStore.getSnapshot,
|
|
28313
28386
|
rightPaneContentStore.getSnapshot
|
|
@@ -28361,25 +28434,25 @@ function DocumentScrollRightPane({
|
|
|
28361
28434
|
} = useRightPaneOpenState();
|
|
28362
28435
|
const rightPaneContent = useRightPaneContent();
|
|
28363
28436
|
const tid = useTestIds({}, "rightPaneContent");
|
|
28364
|
-
const paneRef = (0,
|
|
28365
|
-
const [keepPaneLayout, setKeepPaneLayout] = (0,
|
|
28366
|
-
const exitReleasedRef = (0,
|
|
28437
|
+
const paneRef = (0, import_react132.useRef)(null);
|
|
28438
|
+
const [keepPaneLayout, setKeepPaneLayout] = (0, import_react132.useState)(false);
|
|
28439
|
+
const exitReleasedRef = (0, import_react132.useRef)(false);
|
|
28367
28440
|
const bannerHeightPx = useEnvironmentBannerLayoutHeight();
|
|
28368
28441
|
const isFixedOverlay = !mobile;
|
|
28369
|
-
(0,
|
|
28442
|
+
(0, import_react132.useLayoutEffect)(() => {
|
|
28370
28443
|
if (isRightPaneOpen) {
|
|
28371
28444
|
setKeepPaneLayout(true);
|
|
28372
28445
|
exitReleasedRef.current = false;
|
|
28373
28446
|
}
|
|
28374
28447
|
}, [isRightPaneOpen]);
|
|
28375
28448
|
const paneLayoutActive = isRightPaneOpen || keepPaneLayout;
|
|
28376
|
-
const releaseAfterExit = (0,
|
|
28449
|
+
const releaseAfterExit = (0, import_react132.useCallback)(() => {
|
|
28377
28450
|
if (exitReleasedRef.current) return;
|
|
28378
28451
|
exitReleasedRef.current = true;
|
|
28379
28452
|
clearPane2();
|
|
28380
28453
|
setKeepPaneLayout(false);
|
|
28381
28454
|
}, [clearPane2]);
|
|
28382
|
-
(0,
|
|
28455
|
+
(0, import_react132.useLayoutEffect)(() => {
|
|
28383
28456
|
if (isRightPaneOpen || !keepPaneLayout) return;
|
|
28384
28457
|
return waitForRightPaneExit(releaseAfterExit);
|
|
28385
28458
|
}, [isRightPaneOpen, keepPaneLayout, releaseAfterExit]);
|
|
@@ -28464,10 +28537,10 @@ function DocumentScrollRightPane({
|
|
|
28464
28537
|
}
|
|
28465
28538
|
|
|
28466
28539
|
// src/components/Layout/RightPaneLayout/DocumentScrollRightPaneLayoutRoot.tsx
|
|
28467
|
-
var
|
|
28540
|
+
var import_react133 = require("react");
|
|
28468
28541
|
var import_runtime131 = require("@homebound/truss/runtime");
|
|
28469
28542
|
var import_jsx_runtime203 = require("react/jsx-runtime");
|
|
28470
|
-
var NestedRightPaneLayoutContext = (0,
|
|
28543
|
+
var NestedRightPaneLayoutContext = (0, import_react133.createContext)(false);
|
|
28471
28544
|
function DocumentScrollRightPaneLayoutRoot(props) {
|
|
28472
28545
|
const {
|
|
28473
28546
|
anchorRef,
|
|
@@ -28497,10 +28570,10 @@ function DocumentScrollRightPaneLayoutRoot(props) {
|
|
|
28497
28570
|
}
|
|
28498
28571
|
|
|
28499
28572
|
// src/components/Layout/RightPaneLayout/useDocumentScrollRightPaneAnchorRef.ts
|
|
28500
|
-
var
|
|
28573
|
+
var import_react134 = require("react");
|
|
28501
28574
|
function useDocumentScrollRightPaneAnchorRef() {
|
|
28502
|
-
const ref = (0,
|
|
28503
|
-
const setRef = (0,
|
|
28575
|
+
const ref = (0, import_react134.useRef)(null);
|
|
28576
|
+
const setRef = (0, import_react134.useCallback)((node) => {
|
|
28504
28577
|
if (!node && ref.current) {
|
|
28505
28578
|
hideRightPane();
|
|
28506
28579
|
}
|
|
@@ -28529,14 +28602,14 @@ function DocumentScrollOverlayRightPaneLayout({
|
|
|
28529
28602
|
children,
|
|
28530
28603
|
paneWidth = defaultDocumentScrollRightPaneWidth
|
|
28531
28604
|
}) {
|
|
28532
|
-
const nestedInLayout = (0,
|
|
28605
|
+
const nestedInLayout = (0, import_react135.useContext)(NestedRightPaneLayoutContext);
|
|
28533
28606
|
const {
|
|
28534
28607
|
sm
|
|
28535
28608
|
} = useBreakpoint();
|
|
28536
28609
|
const tid = useTestIds({}, "documentScrollRightPaneLayout");
|
|
28537
28610
|
const anchorRef = useDocumentScrollRightPaneAnchorRef();
|
|
28538
|
-
const spacerRef = (0,
|
|
28539
|
-
(0,
|
|
28611
|
+
const spacerRef = (0, import_react135.useRef)(null);
|
|
28612
|
+
(0, import_react135.useEffect)(() => {
|
|
28540
28613
|
if (nestedInLayout && process.env.NODE_ENV !== "production") {
|
|
28541
28614
|
console.warn("DocumentScrollOverlayRightPaneLayout is nested inside another document-scroll right-pane layout. Use a single layout (compose at the body; do not set withRightPane on both a parent and a nested layout).");
|
|
28542
28615
|
}
|
|
@@ -28570,20 +28643,20 @@ function DocumentScrollOverlayRightPaneHost(props) {
|
|
|
28570
28643
|
isRightPaneOpen
|
|
28571
28644
|
} = useRightPaneOpenState();
|
|
28572
28645
|
const paneWidthCss = documentScrollRightPaneWidthCss(paneWidth);
|
|
28573
|
-
const [keepOverlayChrome, setKeepOverlayChrome] = (0,
|
|
28574
|
-
(0,
|
|
28646
|
+
const [keepOverlayChrome, setKeepOverlayChrome] = (0, import_react135.useState)(isRightPaneOpen);
|
|
28647
|
+
(0, import_react135.useLayoutEffect)(() => {
|
|
28575
28648
|
if (isRightPaneOpen) {
|
|
28576
28649
|
setKeepOverlayChrome(true);
|
|
28577
28650
|
return;
|
|
28578
28651
|
}
|
|
28579
28652
|
return waitForRightPaneExit(() => setKeepOverlayChrome(false));
|
|
28580
28653
|
}, [isRightPaneOpen]);
|
|
28581
|
-
(0,
|
|
28654
|
+
(0, import_react135.useLayoutEffect)(() => {
|
|
28582
28655
|
const spacer = spacerRef.current;
|
|
28583
28656
|
if (!spacer) return;
|
|
28584
28657
|
spacer.style.width = isRightPaneOpen ? paneWidthCss : "0px";
|
|
28585
28658
|
}, [isRightPaneOpen, paneWidthCss, spacerRef]);
|
|
28586
|
-
(0,
|
|
28659
|
+
(0, import_react135.useLayoutEffect)(() => {
|
|
28587
28660
|
const layoutRoot = anchorRef.current;
|
|
28588
28661
|
if (!layoutRoot) return;
|
|
28589
28662
|
const openPaneWidth = keepOverlayChrome ? paneWidthCss : "0px";
|
|
@@ -28602,7 +28675,7 @@ function DocumentScrollOverlayRightPaneHost(props) {
|
|
|
28602
28675
|
|
|
28603
28676
|
// src/components/Modal/ModalFullBleed.tsx
|
|
28604
28677
|
var import_runtime133 = require("@homebound/truss/runtime");
|
|
28605
|
-
var
|
|
28678
|
+
var import_react136 = require("react");
|
|
28606
28679
|
function ModalFullBleed({
|
|
28607
28680
|
children,
|
|
28608
28681
|
omitPadding = false
|
|
@@ -28615,7 +28688,7 @@ function ModalFullBleed({
|
|
|
28615
28688
|
className,
|
|
28616
28689
|
style
|
|
28617
28690
|
} = children.props;
|
|
28618
|
-
return (0,
|
|
28691
|
+
return (0, import_react136.cloneElement)(children, (0, import_runtime133.mergeProps)(className, style, {
|
|
28619
28692
|
...{
|
|
28620
28693
|
containerType: "ctis"
|
|
28621
28694
|
},
|
|
@@ -28639,8 +28712,8 @@ function GridTableLayoutHost(props) {
|
|
|
28639
28712
|
testIds,
|
|
28640
28713
|
children
|
|
28641
28714
|
} = props;
|
|
28642
|
-
const tableWrapperRef = (0,
|
|
28643
|
-
const tableActionsRef = (0,
|
|
28715
|
+
const tableWrapperRef = (0, import_react137.useRef)(null);
|
|
28716
|
+
const tableActionsRef = (0, import_react137.useRef)(null);
|
|
28644
28717
|
const hasActions = actions !== void 0;
|
|
28645
28718
|
useSetTableActionsHeight(tableWrapperRef, tableActionsRef, host.kind !== "scrollable-parent" && hasActions);
|
|
28646
28719
|
const shared = {
|
|
@@ -28743,7 +28816,7 @@ function ActionsBar({
|
|
|
28743
28816
|
return /* @__PURE__ */ (0, import_jsx_runtime205.jsx)("div", { ref: actionsRef, ...(0, import_runtime134.trussProps)(xss), ...testIds.stickyContent, children });
|
|
28744
28817
|
}
|
|
28745
28818
|
function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
28746
|
-
const syncHeightVar = (0,
|
|
28819
|
+
const syncHeightVar = (0, import_react137.useCallback)(() => {
|
|
28747
28820
|
const tableWrapper = tableWrapperRef.current;
|
|
28748
28821
|
if (!tableWrapper) return;
|
|
28749
28822
|
if (!enabled) {
|
|
@@ -28757,11 +28830,11 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
|
28757
28830
|
tableWrapper.style.removeProperty(beamTableActionsHeightVar);
|
|
28758
28831
|
}
|
|
28759
28832
|
}, [enabled, tableActionsRef, tableWrapperRef]);
|
|
28760
|
-
(0,
|
|
28833
|
+
(0, import_utils41.useResizeObserver)({
|
|
28761
28834
|
ref: tableActionsRef,
|
|
28762
28835
|
onResize: enabled ? syncHeightVar : noop
|
|
28763
28836
|
});
|
|
28764
|
-
(0,
|
|
28837
|
+
(0, import_react137.useLayoutEffect)(() => {
|
|
28765
28838
|
syncHeightVar();
|
|
28766
28839
|
const tableWrapper = tableWrapperRef.current;
|
|
28767
28840
|
return () => {
|
|
@@ -28771,14 +28844,14 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
|
28771
28844
|
}
|
|
28772
28845
|
|
|
28773
28846
|
// src/components/Layout/GridTableLayout/QueryTable.tsx
|
|
28774
|
-
var
|
|
28847
|
+
var import_react138 = require("react");
|
|
28775
28848
|
var import_jsx_runtime206 = require("react/jsx-runtime");
|
|
28776
28849
|
function QueryTable(props) {
|
|
28777
28850
|
const { emptyFallback, query, createRows, columns, emptyState: emptyStateProp, ...others } = props;
|
|
28778
28851
|
const displayData = query.error ? void 0 : query.data ?? query.previousData;
|
|
28779
|
-
const rows = (0,
|
|
28852
|
+
const rows = (0, import_react138.useMemo)(() => createRows(displayData), [createRows, displayData]);
|
|
28780
28853
|
const fallbackMessage = query.loading ? "Loading\u2026" : query.error ? `Error: ${query.error.message}` : void 0;
|
|
28781
|
-
const emptyState = (0,
|
|
28854
|
+
const emptyState = (0, import_react138.useMemo)(() => {
|
|
28782
28855
|
if (query.loading || query.error) return void 0;
|
|
28783
28856
|
if (emptyStateProp) return emptyStateProp;
|
|
28784
28857
|
return { title: emptyFallback };
|
|
@@ -28807,10 +28880,10 @@ function useGridTableLayoutHost() {
|
|
|
28807
28880
|
}
|
|
28808
28881
|
|
|
28809
28882
|
// src/components/Layout/GridTableLayout/usePersistedTableView.ts
|
|
28810
|
-
var
|
|
28883
|
+
var import_react139 = require("react");
|
|
28811
28884
|
function usePersistedTableView(defaultView, persist) {
|
|
28812
28885
|
const storageKey = persist ? getGridTableViewStorageKey(window.location.pathname) : void 0;
|
|
28813
|
-
const [view, setView] = (0,
|
|
28886
|
+
const [view, setView] = (0, import_react139.useState)(() => {
|
|
28814
28887
|
if (!storageKey) return defaultView;
|
|
28815
28888
|
try {
|
|
28816
28889
|
return parseStoredTableView(localStorage.getItem(storageKey)) ?? defaultView;
|
|
@@ -28818,7 +28891,7 @@ function usePersistedTableView(defaultView, persist) {
|
|
|
28818
28891
|
return defaultView;
|
|
28819
28892
|
}
|
|
28820
28893
|
});
|
|
28821
|
-
const setViewAndPersist = (0,
|
|
28894
|
+
const setViewAndPersist = (0, import_react139.useCallback)(
|
|
28822
28895
|
(next) => {
|
|
28823
28896
|
setView(next);
|
|
28824
28897
|
if (storageKey) {
|
|
@@ -28845,28 +28918,28 @@ function isGridTableProps(props) {
|
|
|
28845
28918
|
}
|
|
28846
28919
|
|
|
28847
28920
|
// src/hooks/useGroupBy.ts
|
|
28848
|
-
var
|
|
28921
|
+
var import_react141 = require("react");
|
|
28849
28922
|
|
|
28850
28923
|
// src/hooks/useQueryState.ts
|
|
28851
|
-
var
|
|
28924
|
+
var import_react140 = require("react");
|
|
28852
28925
|
var import_use_query_params2 = require("use-query-params");
|
|
28853
28926
|
function useQueryState(name, initialValue) {
|
|
28854
28927
|
const [params, setParams] = (0, import_use_query_params2.useQueryParams)({ [name]: import_use_query_params2.StringParam });
|
|
28855
28928
|
const value = params[name] || initialValue;
|
|
28856
|
-
const setValue = (0,
|
|
28929
|
+
const setValue = (0, import_react140.useCallback)((value2) => setParams({ [name]: value2 }, "pushIn"), [name, setParams]);
|
|
28857
28930
|
return [value, setValue];
|
|
28858
28931
|
}
|
|
28859
28932
|
|
|
28860
28933
|
// src/hooks/useGroupBy.ts
|
|
28861
28934
|
function useGroupBy(opts) {
|
|
28862
28935
|
const { inModal } = useModalContext();
|
|
28863
|
-
const options = (0,
|
|
28936
|
+
const options = (0, import_react141.useMemo)(
|
|
28864
28937
|
() => safeEntries(opts).map(([key, value]) => ({ id: key, name: value })),
|
|
28865
28938
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
28866
28939
|
[]
|
|
28867
28940
|
);
|
|
28868
28941
|
const [queryValue, setQueryValue] = useQueryState("groupBy", options[0].id);
|
|
28869
|
-
const [localValue, setLocalValue] = (0,
|
|
28942
|
+
const [localValue, setLocalValue] = (0, import_react141.useState)(options[0].id);
|
|
28870
28943
|
return {
|
|
28871
28944
|
value: inModal ? localValue : queryValue,
|
|
28872
28945
|
setValue: inModal ? setLocalValue : setQueryValue,
|
|
@@ -28875,17 +28948,17 @@ function useGroupBy(opts) {
|
|
|
28875
28948
|
}
|
|
28876
28949
|
|
|
28877
28950
|
// src/hooks/usePersistedFilter.ts
|
|
28878
|
-
var
|
|
28951
|
+
var import_react143 = require("react");
|
|
28879
28952
|
|
|
28880
28953
|
// src/hooks/useSessionStorage.ts
|
|
28881
|
-
var
|
|
28954
|
+
var import_react142 = require("react");
|
|
28882
28955
|
function useSessionStorage(key, defaultValue) {
|
|
28883
28956
|
let hasSessionStorage = false;
|
|
28884
28957
|
try {
|
|
28885
28958
|
hasSessionStorage = !!window.sessionStorage;
|
|
28886
28959
|
} catch (e) {
|
|
28887
28960
|
}
|
|
28888
|
-
const [state, setState] = (0,
|
|
28961
|
+
const [state, setState] = (0, import_react142.useState)(() => {
|
|
28889
28962
|
if (!hasSessionStorage) {
|
|
28890
28963
|
return defaultValue;
|
|
28891
28964
|
}
|
|
@@ -28896,7 +28969,7 @@ function useSessionStorage(key, defaultValue) {
|
|
|
28896
28969
|
sessionStorage.setItem(key, JSON.stringify(defaultValue));
|
|
28897
28970
|
return defaultValue;
|
|
28898
28971
|
});
|
|
28899
|
-
const setAndSave = (0,
|
|
28972
|
+
const setAndSave = (0, import_react142.useCallback)(
|
|
28900
28973
|
(value) => {
|
|
28901
28974
|
if (hasSessionStorage && value) {
|
|
28902
28975
|
sessionStorage.setItem(key, JSON.stringify(value));
|
|
@@ -28920,12 +28993,12 @@ function getParsedStorage(key) {
|
|
|
28920
28993
|
var import_use_query_params3 = require("use-query-params");
|
|
28921
28994
|
function usePersistedFilter({ storageKey, filterDefs }) {
|
|
28922
28995
|
const { inModal } = useModalContext();
|
|
28923
|
-
const filterImpls = (0,
|
|
28996
|
+
const filterImpls = (0, import_react143.useMemo)(
|
|
28924
28997
|
() => Object.fromEntries(safeEntries(filterDefs).map(([key, def]) => [key, def(key)])),
|
|
28925
28998
|
[filterDefs]
|
|
28926
28999
|
);
|
|
28927
|
-
const filterKeys = (0,
|
|
28928
|
-
const defaultFilter = (0,
|
|
29000
|
+
const filterKeys = (0, import_react143.useMemo)(() => Object.keys(filterImpls), [filterImpls]);
|
|
29001
|
+
const defaultFilter = (0, import_react143.useMemo)(
|
|
28929
29002
|
() => Object.fromEntries(
|
|
28930
29003
|
safeEntries(filterImpls).filter(([, def]) => def.defaultValue !== void 0).map(([key, def]) => [key, def.defaultValue])
|
|
28931
29004
|
),
|
|
@@ -28937,18 +29010,18 @@ function usePersistedFilter({ storageKey, filterDefs }) {
|
|
|
28937
29010
|
dehydrateFilter(filterImpls, defaultFilter) ?? defaultFilter
|
|
28938
29011
|
);
|
|
28939
29012
|
const isQueryParamFilterValid = hasValidFilterKeys(queryParamsFilter, filterKeys);
|
|
28940
|
-
const serializedQueryParamsFilter = (0,
|
|
28941
|
-
const serializedStoredFilter = (0,
|
|
28942
|
-
const queryParamsFilterSnapshot = (0,
|
|
29013
|
+
const serializedQueryParamsFilter = (0, import_react143.useMemo)(() => JSON.stringify(queryParamsFilter), [queryParamsFilter]);
|
|
29014
|
+
const serializedStoredFilter = (0, import_react143.useMemo)(() => JSON.stringify(storedFilter), [storedFilter]);
|
|
29015
|
+
const queryParamsFilterSnapshot = (0, import_react143.useMemo)(
|
|
28943
29016
|
() => parseSerializedValue(serializedQueryParamsFilter),
|
|
28944
29017
|
[serializedQueryParamsFilter]
|
|
28945
29018
|
);
|
|
28946
|
-
const storedFilterSnapshot = (0,
|
|
28947
|
-
const hydratedQueryParamsFilter = (0,
|
|
29019
|
+
const storedFilterSnapshot = (0, import_react143.useMemo)(() => parseSerializedValue(serializedStoredFilter), [serializedStoredFilter]);
|
|
29020
|
+
const hydratedQueryParamsFilter = (0, import_react143.useMemo)(
|
|
28948
29021
|
() => isQueryParamFilterValid ? hydrateFilter(filterImpls, queryParamsFilterSnapshot) : void 0,
|
|
28949
29022
|
[filterImpls, isQueryParamFilterValid, queryParamsFilterSnapshot]
|
|
28950
29023
|
);
|
|
28951
|
-
const hydratedStoredFilter = (0,
|
|
29024
|
+
const hydratedStoredFilter = (0, import_react143.useMemo)(
|
|
28952
29025
|
() => hasValidFilterKeys(storedFilterSnapshot, filterKeys) ? hydrateFilter(filterImpls, storedFilterSnapshot) : void 0,
|
|
28953
29026
|
[filterImpls, filterKeys, storedFilterSnapshot]
|
|
28954
29027
|
);
|
|
@@ -28962,7 +29035,7 @@ function usePersistedFilter({ storageKey, filterDefs }) {
|
|
|
28962
29035
|
}
|
|
28963
29036
|
setQueryParams({ filter: dehydrated });
|
|
28964
29037
|
};
|
|
28965
|
-
(0,
|
|
29038
|
+
(0, import_react143.useEffect)(
|
|
28966
29039
|
() => {
|
|
28967
29040
|
if (inModal) return;
|
|
28968
29041
|
if (queryParamsFilter === void 0) {
|
|
@@ -29012,8 +29085,8 @@ function parseSerializedValue(value) {
|
|
|
29012
29085
|
return value === void 0 ? void 0 : JSON.parse(value);
|
|
29013
29086
|
}
|
|
29014
29087
|
function useStableValue(value) {
|
|
29015
|
-
const stableValue = (0,
|
|
29016
|
-
const stableKey = (0,
|
|
29088
|
+
const stableValue = (0, import_react143.useRef)(value);
|
|
29089
|
+
const stableKey = (0, import_react143.useRef)(JSON.stringify(value));
|
|
29017
29090
|
const nextKey = JSON.stringify(value);
|
|
29018
29091
|
if (stableKey.current !== nextKey) {
|
|
29019
29092
|
stableValue.current = value;
|
|
@@ -29029,6 +29102,7 @@ function GridTableLayoutComponent(props) {
|
|
|
29029
29102
|
tableProps,
|
|
29030
29103
|
layoutState,
|
|
29031
29104
|
actions,
|
|
29105
|
+
viewModeToggle,
|
|
29032
29106
|
selectionSummary = false,
|
|
29033
29107
|
hideEditColumns = false,
|
|
29034
29108
|
shareColumnVisibility = false,
|
|
@@ -29043,37 +29117,37 @@ function GridTableLayoutComponent(props) {
|
|
|
29043
29117
|
const insetHandled = useContentInsetHandled();
|
|
29044
29118
|
const includeColumnGutters = host.kind === "document-scroll" || host.kind === "modal";
|
|
29045
29119
|
const columns = tableProps.columns;
|
|
29046
|
-
const hasHideableColumns = (0,
|
|
29120
|
+
const hasHideableColumns = (0, import_react144.useMemo)(() => {
|
|
29047
29121
|
if (hideEditColumns) return false;
|
|
29048
29122
|
validateColumns(columns);
|
|
29049
29123
|
return columns.some((c) => c.canHide);
|
|
29050
29124
|
}, [columns, hideEditColumns]);
|
|
29051
|
-
const api = (0,
|
|
29125
|
+
const api = (0, import_react144.useMemo)(
|
|
29052
29126
|
() => tableProps.api ?? new GridTableApiImpl(),
|
|
29053
29127
|
[tableProps.api]
|
|
29054
29128
|
);
|
|
29055
29129
|
const [view, setView] = usePersistedTableView(defaultView, !!withCardView);
|
|
29056
29130
|
const clientSearch = layoutState?.search === "client" ? layoutState.searchString : void 0;
|
|
29057
|
-
const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView || actions?.length || // Rendered before anything's selected, so the pill doesn't shift the table
|
|
29131
|
+
const showTableActions = !!(layoutState?.filterDefs || layoutState?.search || hasHideableColumns || withCardView || actions?.length || viewModeToggle?.length || // Rendered before anything's selected, so the pill doesn't shift the table
|
|
29058
29132
|
selectionSummary);
|
|
29059
29133
|
const isVirtualized = tableProps.as === "virtual" || view === "card";
|
|
29060
29134
|
const visibleColumnIds = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
29061
|
-
(0,
|
|
29135
|
+
(0, import_react144.useEffect)(() => {
|
|
29062
29136
|
if (layoutState?.setVisibleColumnIds) {
|
|
29063
29137
|
layoutState.setVisibleColumnIds(visibleColumnIds);
|
|
29064
29138
|
}
|
|
29065
29139
|
}, [visibleColumnIds, layoutState]);
|
|
29066
29140
|
const visibleColumnsStorageKey = layoutState?.persistedColumnsStorageKey;
|
|
29067
|
-
const filterSearchProps = (0,
|
|
29141
|
+
const filterSearchProps = (0, import_react144.useMemo)(
|
|
29068
29142
|
() => layoutState?.search ? { onSearch: layoutState.setSearchString } : void 0,
|
|
29069
29143
|
[layoutState?.search, layoutState?.setSearchString]
|
|
29070
29144
|
);
|
|
29071
|
-
const searchApiRef = (0,
|
|
29072
|
-
const clearFilters = (0,
|
|
29145
|
+
const searchApiRef = (0, import_react144.useRef)(void 0);
|
|
29146
|
+
const clearFilters = (0, import_react144.useCallback)(() => {
|
|
29073
29147
|
layoutState?.clearFilters();
|
|
29074
29148
|
searchApiRef.current?.clear();
|
|
29075
29149
|
}, [layoutState]);
|
|
29076
|
-
const emptyState = (0,
|
|
29150
|
+
const emptyState = (0, import_react144.useMemo)(
|
|
29077
29151
|
() => composeEmptyState(tableProps, layoutState, layoutEmptyFallback, clearFilters),
|
|
29078
29152
|
[layoutEmptyFallback, layoutState, tableProps, clearFilters]
|
|
29079
29153
|
);
|
|
@@ -29095,11 +29169,12 @@ function GridTableLayoutComponent(props) {
|
|
|
29095
29169
|
clearFilters,
|
|
29096
29170
|
searchApi: searchApiRef,
|
|
29097
29171
|
actions,
|
|
29172
|
+
viewModeToggle,
|
|
29098
29173
|
selectionSummary
|
|
29099
29174
|
}
|
|
29100
29175
|
);
|
|
29101
29176
|
const cardAs = view === "card" ? "card" : void 0;
|
|
29102
|
-
const tableStyle = (0,
|
|
29177
|
+
const tableStyle = (0, import_react144.useMemo)(() => getDefaultStyle(tableProps.style, insetHandled), [tableProps.style, insetHandled]);
|
|
29103
29178
|
const tableBody = /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(import_jsx_runtime207.Fragment, { children: isGridTableProps(tableProps) ? /* @__PURE__ */ (0, import_jsx_runtime207.jsx)(
|
|
29104
29179
|
GridTable,
|
|
29105
29180
|
{
|
|
@@ -29141,7 +29216,7 @@ function GridTableLayoutComponent(props) {
|
|
|
29141
29216
|
}
|
|
29142
29217
|
);
|
|
29143
29218
|
}
|
|
29144
|
-
var GridTableLayout =
|
|
29219
|
+
var GridTableLayout = import_react144.default.memo(GridTableLayoutComponent);
|
|
29145
29220
|
function getDefaultStyle(style, insetHandled) {
|
|
29146
29221
|
if (style !== void 0 && !isGridStyleDef(style)) return style;
|
|
29147
29222
|
return { allWhite: true, ...!insetHandled && { bordered: "top" }, ...style };
|
|
@@ -29162,14 +29237,14 @@ function useGridTableLayoutState({
|
|
|
29162
29237
|
const filterFallback = { filterDefs: {}, storageKey: "unset-filter" };
|
|
29163
29238
|
const { filter, setFilter } = usePersistedFilter(persistedFilter ?? filterFallback);
|
|
29164
29239
|
const groupBy = useGroupBy(maybeGroupBy ?? { none: "none" });
|
|
29165
|
-
const [searchString, setSearchString] = (0,
|
|
29240
|
+
const [searchString, setSearchString] = (0, import_react144.useState)("");
|
|
29166
29241
|
const columnsFallback = "unset-columns";
|
|
29167
29242
|
const [visibleColumnIds, setVisibleColumnIds] = useSessionStorage(
|
|
29168
29243
|
persistedColumns?.storageKey ?? columnsFallback,
|
|
29169
29244
|
void 0
|
|
29170
29245
|
);
|
|
29171
29246
|
const filteringActive = getActiveFilterCount(filter) > 0 || !!searchString;
|
|
29172
|
-
const clearFilters = (0,
|
|
29247
|
+
const clearFilters = (0, import_react144.useCallback)(() => {
|
|
29173
29248
|
setFilter({});
|
|
29174
29249
|
setSearchString("");
|
|
29175
29250
|
}, [setFilter]);
|
|
@@ -29216,7 +29291,7 @@ function PreventBrowserScroll({
|
|
|
29216
29291
|
|
|
29217
29292
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
29218
29293
|
var import_framer_motion4 = require("framer-motion");
|
|
29219
|
-
var
|
|
29294
|
+
var import_react145 = require("react");
|
|
29220
29295
|
var import_runtime135 = require("@homebound/truss/runtime");
|
|
29221
29296
|
var import_jsx_runtime209 = require("react/jsx-runtime");
|
|
29222
29297
|
var __maybeInc22 = (inc) => {
|
|
@@ -29234,7 +29309,7 @@ function RightPaneLayout(props) {
|
|
|
29234
29309
|
clearPane: clearPane2
|
|
29235
29310
|
} = useRightPaneOpenState();
|
|
29236
29311
|
const rightPaneContent = useRightPaneContent();
|
|
29237
|
-
(0,
|
|
29312
|
+
(0, import_react145.useEffect)(() => hideRightPane, []);
|
|
29238
29313
|
return /* @__PURE__ */ (0, import_jsx_runtime209.jsx)("div", { className: "h100 df oxh", children: /* @__PURE__ */ (0, import_jsx_runtime209.jsxs)(import_jsx_runtime209.Fragment, { children: [
|
|
29239
29314
|
/* @__PURE__ */ (0, import_jsx_runtime209.jsx)("div", { ...(0, import_runtime135.trussProps)({
|
|
29240
29315
|
...{
|
|
@@ -29324,12 +29399,12 @@ function RightPaneLayout(props) {
|
|
|
29324
29399
|
}
|
|
29325
29400
|
|
|
29326
29401
|
// src/components/Layout/RightPaneLayout/RightPanePanel.tsx
|
|
29327
|
-
var
|
|
29402
|
+
var import_react147 = require("react");
|
|
29328
29403
|
var import_react_dom8 = require("react-dom");
|
|
29329
29404
|
|
|
29330
29405
|
// src/components/Layout/RightPaneLayout/internal/DeleteAction.tsx
|
|
29331
|
-
var
|
|
29332
|
-
var
|
|
29406
|
+
var import_utils43 = require("@react-aria/utils");
|
|
29407
|
+
var import_react146 = require("react");
|
|
29333
29408
|
var import_runtime136 = require("@homebound/truss/runtime");
|
|
29334
29409
|
var import_jsx_runtime210 = require("react/jsx-runtime");
|
|
29335
29410
|
function MaybeDeleteAction(props) {
|
|
@@ -29346,18 +29421,18 @@ function BulkDeleteAction(props) {
|
|
|
29346
29421
|
count,
|
|
29347
29422
|
...buttonProps
|
|
29348
29423
|
} = props;
|
|
29349
|
-
const containerRef = (0,
|
|
29350
|
-
const contentRef = (0,
|
|
29351
|
-
const [overflows, setOverflows] = (0,
|
|
29424
|
+
const containerRef = (0, import_react146.useRef)(null);
|
|
29425
|
+
const contentRef = (0, import_react146.useRef)(null);
|
|
29426
|
+
const [overflows, setOverflows] = (0, import_react146.useState)(false);
|
|
29352
29427
|
const onResize = () => {
|
|
29353
29428
|
if (!containerRef.current || !contentRef.current) return;
|
|
29354
29429
|
setOverflows(contentRef.current.offsetWidth > containerRef.current.clientWidth);
|
|
29355
29430
|
};
|
|
29356
|
-
(0,
|
|
29431
|
+
(0, import_utils43.useResizeObserver)({
|
|
29357
29432
|
ref: containerRef,
|
|
29358
29433
|
onResize
|
|
29359
29434
|
});
|
|
29360
|
-
(0,
|
|
29435
|
+
(0, import_utils43.useResizeObserver)({
|
|
29361
29436
|
ref: contentRef,
|
|
29362
29437
|
onResize
|
|
29363
29438
|
});
|
|
@@ -29415,11 +29490,11 @@ function RightPanePanel(props) {
|
|
|
29415
29490
|
const {
|
|
29416
29491
|
closeRightPane
|
|
29417
29492
|
} = useRightPaneActions();
|
|
29418
|
-
const [bannerSlot, setBannerSlot] = (0,
|
|
29493
|
+
const [bannerSlot, setBannerSlot] = (0, import_react147.useState)(null);
|
|
29419
29494
|
const {
|
|
29420
29495
|
openModal
|
|
29421
29496
|
} = useModal();
|
|
29422
|
-
(0,
|
|
29497
|
+
(0, import_react147.useEffect)(() => {
|
|
29423
29498
|
if (!isDirty) return;
|
|
29424
29499
|
return setRightPaneDiscardPrompt((proceed) => {
|
|
29425
29500
|
if (!isDirty()) return proceed();
|
|
@@ -29482,11 +29557,11 @@ function RightPaneBanner(props) {
|
|
|
29482
29557
|
const {
|
|
29483
29558
|
children
|
|
29484
29559
|
} = props;
|
|
29485
|
-
const slot = (0,
|
|
29560
|
+
const slot = (0, import_react147.useContext)(RightPaneBannerSlotContext);
|
|
29486
29561
|
if (slot === void 0) fail("RightPaneBanner must be rendered inside a RightPanePanel");
|
|
29487
29562
|
return slot ? (0, import_react_dom8.createPortal)(children, slot) : null;
|
|
29488
29563
|
}
|
|
29489
|
-
var RightPaneBannerSlotContext = (0,
|
|
29564
|
+
var RightPaneBannerSlotContext = (0, import_react147.createContext)(void 0);
|
|
29490
29565
|
|
|
29491
29566
|
// src/components/Layout/ScrollableFooter.tsx
|
|
29492
29567
|
var import_react_dom9 = require("react-dom");
|
|
@@ -29502,7 +29577,7 @@ function ScrollableFooter(props) {
|
|
|
29502
29577
|
|
|
29503
29578
|
// src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
|
|
29504
29579
|
var import_framer_motion5 = require("framer-motion");
|
|
29505
|
-
var
|
|
29580
|
+
var import_react148 = require("react");
|
|
29506
29581
|
|
|
29507
29582
|
// src/components/Layout/TableReviewLayout/SidePanel.tsx
|
|
29508
29583
|
var import_jsx_runtime213 = require("react/jsx-runtime");
|
|
@@ -29542,8 +29617,8 @@ function TableReviewLayout(props) {
|
|
|
29542
29617
|
rightPaneWidth = defaultRightPaneWidth
|
|
29543
29618
|
} = props;
|
|
29544
29619
|
const tid = useTestIds(props, "tableReviewLayout");
|
|
29545
|
-
const [isPanelVisible, setIsPanelVisible] = (0,
|
|
29546
|
-
(0,
|
|
29620
|
+
const [isPanelVisible, setIsPanelVisible] = (0, import_react148.useState)(!!panelContent);
|
|
29621
|
+
(0, import_react148.useEffect)(() => {
|
|
29547
29622
|
setIsPanelVisible(!!panelContent);
|
|
29548
29623
|
}, [panelContent]);
|
|
29549
29624
|
function handleClosePanel() {
|
|
@@ -29702,29 +29777,29 @@ function HomeboundLogo(props) {
|
|
|
29702
29777
|
}
|
|
29703
29778
|
|
|
29704
29779
|
// src/components/MaxLines.tsx
|
|
29705
|
-
var
|
|
29706
|
-
var
|
|
29780
|
+
var import_utils44 = require("@react-aria/utils");
|
|
29781
|
+
var import_react149 = require("react");
|
|
29707
29782
|
var import_runtime141 = require("@homebound/truss/runtime");
|
|
29708
29783
|
var import_jsx_runtime217 = require("react/jsx-runtime");
|
|
29709
29784
|
function MaxLines({
|
|
29710
29785
|
maxLines,
|
|
29711
29786
|
children
|
|
29712
29787
|
}) {
|
|
29713
|
-
const elRef = (0,
|
|
29714
|
-
const [hasMore, setHasMore] = (0,
|
|
29715
|
-
const [expanded, setExpanded] = (0,
|
|
29716
|
-
(0,
|
|
29788
|
+
const elRef = (0, import_react149.useRef)(null);
|
|
29789
|
+
const [hasMore, setHasMore] = (0, import_react149.useState)(false);
|
|
29790
|
+
const [expanded, setExpanded] = (0, import_react149.useState)(false);
|
|
29791
|
+
(0, import_utils44.useLayoutEffect)(() => {
|
|
29717
29792
|
if (!elRef.current) return;
|
|
29718
29793
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
29719
29794
|
}, []);
|
|
29720
|
-
(0,
|
|
29795
|
+
(0, import_react149.useEffect)(() => {
|
|
29721
29796
|
setExpanded(false);
|
|
29722
29797
|
}, [children]);
|
|
29723
|
-
const onResize = (0,
|
|
29798
|
+
const onResize = (0, import_react149.useCallback)(() => {
|
|
29724
29799
|
if (!elRef.current) return;
|
|
29725
29800
|
!expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
29726
29801
|
}, [expanded]);
|
|
29727
|
-
(0,
|
|
29802
|
+
(0, import_utils44.useResizeObserver)({
|
|
29728
29803
|
ref: elRef,
|
|
29729
29804
|
onResize
|
|
29730
29805
|
});
|
|
@@ -29834,8 +29909,8 @@ function toPageNumberSize(page) {
|
|
|
29834
29909
|
}
|
|
29835
29910
|
|
|
29836
29911
|
// src/components/ScrollShadows.tsx
|
|
29837
|
-
var
|
|
29838
|
-
var
|
|
29912
|
+
var import_utils45 = require("@react-aria/utils");
|
|
29913
|
+
var import_react150 = require("react");
|
|
29839
29914
|
var import_runtime143 = require("@homebound/truss/runtime");
|
|
29840
29915
|
var import_jsx_runtime219 = require("react/jsx-runtime");
|
|
29841
29916
|
function ScrollShadows(props) {
|
|
@@ -29853,10 +29928,10 @@ function ScrollShadows(props) {
|
|
|
29853
29928
|
if (!bgColor.includes("rgba")) {
|
|
29854
29929
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
29855
29930
|
}
|
|
29856
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
29857
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
29858
|
-
const scrollRef = (0,
|
|
29859
|
-
const [startShadowStyles, endShadowStyles] = (0,
|
|
29931
|
+
const [showStartShadow, setShowStartShadow] = (0, import_react150.useState)(false);
|
|
29932
|
+
const [showEndShadow, setShowEndShadow] = (0, import_react150.useState)(false);
|
|
29933
|
+
const scrollRef = (0, import_react150.useRef)(null);
|
|
29934
|
+
const [startShadowStyles, endShadowStyles] = (0, import_react150.useMemo)(() => {
|
|
29860
29935
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
29861
29936
|
const commonStyles = {
|
|
29862
29937
|
position: "absolute",
|
|
@@ -29907,7 +29982,7 @@ function ScrollShadows(props) {
|
|
|
29907
29982
|
}
|
|
29908
29983
|
}];
|
|
29909
29984
|
}, [horizontal, bgColor]);
|
|
29910
|
-
const updateScrollProps = (0,
|
|
29985
|
+
const updateScrollProps = (0, import_react150.useCallback)((el) => {
|
|
29911
29986
|
const {
|
|
29912
29987
|
scrollTop,
|
|
29913
29988
|
scrollHeight,
|
|
@@ -29922,8 +29997,8 @@ function ScrollShadows(props) {
|
|
|
29922
29997
|
setShowStartShadow(start > 0);
|
|
29923
29998
|
setShowEndShadow(start + boxSize < end);
|
|
29924
29999
|
}, [horizontal]);
|
|
29925
|
-
const onResize = (0,
|
|
29926
|
-
(0,
|
|
30000
|
+
const onResize = (0, import_react150.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
30001
|
+
(0, import_utils45.useResizeObserver)({
|
|
29927
30002
|
ref: scrollRef,
|
|
29928
30003
|
onResize
|
|
29929
30004
|
});
|
|
@@ -29974,12 +30049,12 @@ function ScrollShadows(props) {
|
|
|
29974
30049
|
var import_change_case8 = require("change-case");
|
|
29975
30050
|
|
|
29976
30051
|
// src/components/AppNav/AppNavGroup.tsx
|
|
29977
|
-
var
|
|
30052
|
+
var import_utils46 = require("@react-aria/utils");
|
|
29978
30053
|
var import_change_case7 = require("change-case");
|
|
29979
|
-
var
|
|
30054
|
+
var import_react153 = require("react");
|
|
29980
30055
|
|
|
29981
30056
|
// src/components/AppNav/AppNavGroupTrigger.tsx
|
|
29982
|
-
var
|
|
30057
|
+
var import_react151 = require("react");
|
|
29983
30058
|
var import_react_aria68 = require("react-aria");
|
|
29984
30059
|
var import_runtime144 = require("@homebound/truss/runtime");
|
|
29985
30060
|
var import_jsx_runtime220 = require("react/jsx-runtime");
|
|
@@ -29992,7 +30067,7 @@ function AppNavGroupTrigger(props) {
|
|
|
29992
30067
|
active = false
|
|
29993
30068
|
} = props;
|
|
29994
30069
|
const tid = useTestIds(props, "trigger");
|
|
29995
|
-
const ref = (0,
|
|
30070
|
+
const ref = (0, import_react151.useRef)(null);
|
|
29996
30071
|
const {
|
|
29997
30072
|
buttonProps,
|
|
29998
30073
|
isPressed
|
|
@@ -30013,7 +30088,7 @@ function AppNavGroupTrigger(props) {
|
|
|
30013
30088
|
focusRingStyles: focusRingStyles2,
|
|
30014
30089
|
hoverStyles: hoverStyles4,
|
|
30015
30090
|
pressedStyles: pressedStyles2
|
|
30016
|
-
} = (0,
|
|
30091
|
+
} = (0, import_react151.useMemo)(() => getNavLinkStyles("side"), []);
|
|
30017
30092
|
return /* @__PURE__ */ (0, import_jsx_runtime220.jsxs)("button", { type: "button", ...(0, import_react_aria68.mergeProps)(buttonProps, focusProps, hoverProps, tid.trigger, {
|
|
30018
30093
|
ref,
|
|
30019
30094
|
"aria-expanded": expanded,
|
|
@@ -30151,7 +30226,7 @@ function entryHasIcons(item) {
|
|
|
30151
30226
|
}
|
|
30152
30227
|
|
|
30153
30228
|
// src/components/AppNav/useAppNavGroupExpanded.ts
|
|
30154
|
-
var
|
|
30229
|
+
var import_react152 = require("react");
|
|
30155
30230
|
var APP_NAV_EXPANDED_LINK_GROUPS_STORAGE_KEY = "beam.appNav.expandedLinkGroups";
|
|
30156
30231
|
function loadStored() {
|
|
30157
30232
|
try {
|
|
@@ -30170,13 +30245,13 @@ function persistLabel(label, expanded) {
|
|
|
30170
30245
|
}
|
|
30171
30246
|
function useAppNavGroupExpanded(linkGroup) {
|
|
30172
30247
|
const { label } = linkGroup;
|
|
30173
|
-
const [userExpanded, setUserExpanded] = (0,
|
|
30248
|
+
const [userExpanded, setUserExpanded] = (0, import_react152.useState)(() => {
|
|
30174
30249
|
const stored = loadStored();
|
|
30175
30250
|
return label in stored ? stored[label] : null;
|
|
30176
30251
|
});
|
|
30177
30252
|
const hasActiveLink = appNavLinkGroupLinks(linkGroup).some((l) => l.active);
|
|
30178
30253
|
const expanded = userExpanded !== null ? userExpanded : hasActiveLink ? true : linkGroup.defaultExpanded ?? false;
|
|
30179
|
-
const onToggle = (0,
|
|
30254
|
+
const onToggle = (0, import_react152.useCallback)(() => {
|
|
30180
30255
|
const next = !expanded;
|
|
30181
30256
|
setUserExpanded(next);
|
|
30182
30257
|
persistLabel(label, next);
|
|
@@ -30211,20 +30286,20 @@ function AppNavGroupDisclosure(props) {
|
|
|
30211
30286
|
} = useAppNavGroupExpanded(linkGroup);
|
|
30212
30287
|
const tid = useTestIds(props, "linkGroup");
|
|
30213
30288
|
const navGroupId = `nav-group-${(0, import_change_case7.kebabCase)(linkGroup.label)}`;
|
|
30214
|
-
const [contentEl, setContentEl] = (0,
|
|
30215
|
-
const contentRef = (0,
|
|
30289
|
+
const [contentEl, setContentEl] = (0, import_react153.useState)(null);
|
|
30290
|
+
const contentRef = (0, import_react153.useMemo)(() => ({
|
|
30216
30291
|
current: contentEl
|
|
30217
30292
|
}), [contentEl]);
|
|
30218
|
-
const [contentHeight, setContentHeight] = (0,
|
|
30219
|
-
(0,
|
|
30293
|
+
const [contentHeight, setContentHeight] = (0, import_react153.useState)(expanded ? "auto" : "0");
|
|
30294
|
+
(0, import_react153.useEffect)(() => {
|
|
30220
30295
|
setContentHeight(expanded && contentEl ? `${contentEl.scrollHeight}px` : "0");
|
|
30221
30296
|
}, [expanded, contentEl]);
|
|
30222
|
-
const onResize = (0,
|
|
30297
|
+
const onResize = (0, import_react153.useCallback)(() => {
|
|
30223
30298
|
if (contentEl && expanded) {
|
|
30224
30299
|
setContentHeight(`${contentEl.scrollHeight}px`);
|
|
30225
30300
|
}
|
|
30226
30301
|
}, [expanded, contentEl]);
|
|
30227
|
-
(0,
|
|
30302
|
+
(0, import_utils46.useResizeObserver)({
|
|
30228
30303
|
ref: contentRef,
|
|
30229
30304
|
onResize
|
|
30230
30305
|
});
|
|
@@ -30365,7 +30440,7 @@ function AppNavItems(props) {
|
|
|
30365
30440
|
}
|
|
30366
30441
|
|
|
30367
30442
|
// src/layouts/SideNavLayout/SideNavLayoutContext.tsx
|
|
30368
|
-
var
|
|
30443
|
+
var import_react154 = require("react");
|
|
30369
30444
|
var import_jsx_runtime225 = require("react/jsx-runtime");
|
|
30370
30445
|
var SIDE_NAV_LAYOUT_STATE_STORAGE_KEY = "beam.sideNavLayout.navState";
|
|
30371
30446
|
function loadStoredNavState() {
|
|
@@ -30388,20 +30463,20 @@ function resolveInitialNavState(defaultNavState) {
|
|
|
30388
30463
|
}
|
|
30389
30464
|
return loadStoredNavState() ?? defaultNavState ?? "expanded";
|
|
30390
30465
|
}
|
|
30391
|
-
var SideNavLayoutContext = (0,
|
|
30466
|
+
var SideNavLayoutContext = (0, import_react154.createContext)(void 0);
|
|
30392
30467
|
function SideNavLayoutProvider(props) {
|
|
30393
|
-
const [navState, setNavStateInternal] = (0,
|
|
30468
|
+
const [navState, setNavStateInternal] = (0, import_react154.useState)(
|
|
30394
30469
|
() => resolveInitialNavState(props.defaultNavState)
|
|
30395
30470
|
);
|
|
30396
30471
|
const bp = useBreakpoint();
|
|
30397
|
-
const prevMdAndUp = (0,
|
|
30398
|
-
(0,
|
|
30472
|
+
const prevMdAndUp = (0, import_react154.useRef)(bp.mdAndUp);
|
|
30473
|
+
(0, import_react154.useEffect)(() => {
|
|
30399
30474
|
if (prevMdAndUp.current && !bp.mdAndUp) {
|
|
30400
30475
|
setNavStateInternal((prev) => prev === "expanded" ? "collapse" : prev);
|
|
30401
30476
|
}
|
|
30402
30477
|
prevMdAndUp.current = bp.mdAndUp;
|
|
30403
30478
|
}, [bp.mdAndUp]);
|
|
30404
|
-
const setNavState = (0,
|
|
30479
|
+
const setNavState = (0, import_react154.useCallback)((value2) => {
|
|
30405
30480
|
setNavStateInternal((prev) => {
|
|
30406
30481
|
const next = typeof value2 === "function" ? value2(prev) : value2;
|
|
30407
30482
|
if (next === "expanded" || next === "collapse") {
|
|
@@ -30413,15 +30488,15 @@ function SideNavLayoutProvider(props) {
|
|
|
30413
30488
|
return next;
|
|
30414
30489
|
});
|
|
30415
30490
|
}, []);
|
|
30416
|
-
const value = (0,
|
|
30491
|
+
const value = (0, import_react154.useMemo)(() => ({ navState, setNavState }), [navState, setNavState]);
|
|
30417
30492
|
return /* @__PURE__ */ (0, import_jsx_runtime225.jsx)(SideNavLayoutContext.Provider, { value, children: props.children });
|
|
30418
30493
|
}
|
|
30419
30494
|
function useSideNavLayoutContext() {
|
|
30420
|
-
return (0,
|
|
30495
|
+
return (0, import_react154.useContext)(SideNavLayoutContext) ?? { navState: "expanded", setNavState: () => {
|
|
30421
30496
|
} };
|
|
30422
30497
|
}
|
|
30423
30498
|
function useHasSideNavLayoutProvider() {
|
|
30424
|
-
return (0,
|
|
30499
|
+
return (0, import_react154.useContext)(SideNavLayoutContext) !== void 0;
|
|
30425
30500
|
}
|
|
30426
30501
|
|
|
30427
30502
|
// src/components/SideNav/SideNav.tsx
|
|
@@ -30482,11 +30557,11 @@ function SideNav(props) {
|
|
|
30482
30557
|
}
|
|
30483
30558
|
|
|
30484
30559
|
// src/components/Stepper.tsx
|
|
30485
|
-
var
|
|
30560
|
+
var import_react155 = require("react");
|
|
30486
30561
|
var import_react_aria69 = require("react-aria");
|
|
30487
30562
|
var import_runtime148 = require("@homebound/truss/runtime");
|
|
30488
30563
|
var import_jsx_runtime227 = require("react/jsx-runtime");
|
|
30489
|
-
var
|
|
30564
|
+
var import_react156 = require("react");
|
|
30490
30565
|
var __maybeInc26 = (inc) => {
|
|
30491
30566
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
30492
30567
|
};
|
|
@@ -30515,7 +30590,7 @@ function Stepper(props) {
|
|
|
30515
30590
|
}]
|
|
30516
30591
|
}), children: steps.map((step) => {
|
|
30517
30592
|
const isCurrent = currentStep === step.value;
|
|
30518
|
-
return /* @__PURE__ */ (0,
|
|
30593
|
+
return /* @__PURE__ */ (0, import_react156.createElement)("li", { ...(0, import_runtime148.trussProps)({
|
|
30519
30594
|
display: "df",
|
|
30520
30595
|
flexGrow: "fg1",
|
|
30521
30596
|
flexDirection: "fdc",
|
|
@@ -30564,7 +30639,7 @@ function StepButton(props) {
|
|
|
30564
30639
|
onPress: onClick,
|
|
30565
30640
|
isDisabled: disabled
|
|
30566
30641
|
};
|
|
30567
|
-
const ref = (0,
|
|
30642
|
+
const ref = (0, import_react155.useRef)(null);
|
|
30568
30643
|
const {
|
|
30569
30644
|
buttonProps,
|
|
30570
30645
|
isPressed
|
|
@@ -30674,7 +30749,7 @@ function StepIcon({
|
|
|
30674
30749
|
}
|
|
30675
30750
|
|
|
30676
30751
|
// src/components/StepperTabs/StepperTab.tsx
|
|
30677
|
-
var
|
|
30752
|
+
var import_react157 = require("react");
|
|
30678
30753
|
var import_react_aria70 = require("react-aria");
|
|
30679
30754
|
var import_runtime149 = require("@homebound/truss/runtime");
|
|
30680
30755
|
var import_jsx_runtime228 = require("react/jsx-runtime");
|
|
@@ -30693,7 +30768,7 @@ function StepperTab(props) {
|
|
|
30693
30768
|
onPress: () => onClick(value),
|
|
30694
30769
|
isDisabled: disabled || collapsed
|
|
30695
30770
|
};
|
|
30696
|
-
const ref = (0,
|
|
30771
|
+
const ref = (0, import_react157.useRef)(null);
|
|
30697
30772
|
const {
|
|
30698
30773
|
buttonProps
|
|
30699
30774
|
} = (0, import_react_aria70.useButton)(ariaProps, ref);
|
|
@@ -30830,7 +30905,7 @@ var stepperTabStyles = {
|
|
|
30830
30905
|
// src/components/StepperTabs/StepperTabs.tsx
|
|
30831
30906
|
var import_runtime150 = require("@homebound/truss/runtime");
|
|
30832
30907
|
var import_jsx_runtime229 = require("react/jsx-runtime");
|
|
30833
|
-
var
|
|
30908
|
+
var import_react158 = require("react");
|
|
30834
30909
|
function StepperTabs(props) {
|
|
30835
30910
|
const {
|
|
30836
30911
|
steps,
|
|
@@ -30860,7 +30935,7 @@ function StepperTabs(props) {
|
|
|
30860
30935
|
}), children: steps.map((step, idx) => {
|
|
30861
30936
|
const isCurrent = idx === currentStepIndex;
|
|
30862
30937
|
const isCompleted = idx < currentStepIndex;
|
|
30863
|
-
return /* @__PURE__ */ (0,
|
|
30938
|
+
return /* @__PURE__ */ (0, import_react158.createElement)("li", { ...(0, import_runtime150.trussProps)({
|
|
30864
30939
|
display: "df",
|
|
30865
30940
|
flexGrow: "fg1",
|
|
30866
30941
|
flexBasis: "fb_0",
|
|
@@ -31094,7 +31169,7 @@ function segmentWidth(count, total) {
|
|
|
31094
31169
|
}
|
|
31095
31170
|
|
|
31096
31171
|
// src/components/TableSummary/TableSummary.tsx
|
|
31097
|
-
var
|
|
31172
|
+
var import_react159 = require("react");
|
|
31098
31173
|
var import_react_aria71 = require("react-aria");
|
|
31099
31174
|
var import_runtime154 = require("@homebound/truss/runtime");
|
|
31100
31175
|
var import_jsx_runtime234 = require("react/jsx-runtime");
|
|
@@ -31154,7 +31229,7 @@ function MetricButton(props) {
|
|
|
31154
31229
|
metric,
|
|
31155
31230
|
divider
|
|
31156
31231
|
} = props;
|
|
31157
|
-
const ref = (0,
|
|
31232
|
+
const ref = (0, import_react159.useRef)(null);
|
|
31158
31233
|
const {
|
|
31159
31234
|
buttonProps
|
|
31160
31235
|
} = (0, import_react_aria71.useButton)({
|
|
@@ -31231,7 +31306,7 @@ function MetricButton(props) {
|
|
|
31231
31306
|
|
|
31232
31307
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
31233
31308
|
var import_fast_deep_equal2 = __toESM(require("fast-deep-equal"), 1);
|
|
31234
|
-
var
|
|
31309
|
+
var import_react161 = require("react");
|
|
31235
31310
|
|
|
31236
31311
|
// src/utils/inlineStyles.ts
|
|
31237
31312
|
function isInlineStyleValue(value) {
|
|
@@ -31260,14 +31335,14 @@ function restoreElementStyle(el, snapshot) {
|
|
|
31260
31335
|
}
|
|
31261
31336
|
|
|
31262
31337
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
31263
|
-
var
|
|
31264
|
-
var DnDGridContext = (0,
|
|
31338
|
+
var import_react160 = require("react");
|
|
31339
|
+
var DnDGridContext = (0, import_react160.createContext)({
|
|
31265
31340
|
dragEl: { current: void 0 },
|
|
31266
31341
|
onDragHandleKeyDown: () => {
|
|
31267
31342
|
}
|
|
31268
31343
|
});
|
|
31269
31344
|
function useDnDGridContext() {
|
|
31270
|
-
return (0,
|
|
31345
|
+
return (0, import_react160.useContext)(DnDGridContext);
|
|
31271
31346
|
}
|
|
31272
31347
|
|
|
31273
31348
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
@@ -31281,13 +31356,13 @@ function DnDGrid(props) {
|
|
|
31281
31356
|
activeItemStyles,
|
|
31282
31357
|
lockAxis
|
|
31283
31358
|
} = props;
|
|
31284
|
-
const gridEl = (0,
|
|
31285
|
-
const dragEl = (0,
|
|
31286
|
-
const cloneEl = (0,
|
|
31287
|
-
const initialOrder = (0,
|
|
31288
|
-
const styleSnapshot = (0,
|
|
31289
|
-
const reorderViaKeyboard = (0,
|
|
31290
|
-
const transformFrom = (0,
|
|
31359
|
+
const gridEl = (0, import_react161.useRef)(null);
|
|
31360
|
+
const dragEl = (0, import_react161.useRef)(void 0);
|
|
31361
|
+
const cloneEl = (0, import_react161.useRef)(void 0);
|
|
31362
|
+
const initialOrder = (0, import_react161.useRef)(void 0);
|
|
31363
|
+
const styleSnapshot = (0, import_react161.useRef)(void 0);
|
|
31364
|
+
const reorderViaKeyboard = (0, import_react161.useRef)(false);
|
|
31365
|
+
const transformFrom = (0, import_react161.useRef)({
|
|
31291
31366
|
x: 0,
|
|
31292
31367
|
y: 0
|
|
31293
31368
|
});
|
|
@@ -31295,20 +31370,20 @@ function DnDGrid(props) {
|
|
|
31295
31370
|
const activeStyles3 = activeItemStyles ?? {
|
|
31296
31371
|
boxShadow: "bshModal"
|
|
31297
31372
|
};
|
|
31298
|
-
const getGridItems = (0,
|
|
31373
|
+
const getGridItems = (0, import_react161.useCallback)(() => {
|
|
31299
31374
|
return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
|
|
31300
31375
|
}, []);
|
|
31301
|
-
const getGridItemIdOrder = (0,
|
|
31376
|
+
const getGridItemIdOrder = (0, import_react161.useCallback)(() => {
|
|
31302
31377
|
return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
|
|
31303
31378
|
}, [getGridItems]);
|
|
31304
|
-
const initReorder = (0,
|
|
31379
|
+
const initReorder = (0, import_react161.useCallback)(() => {
|
|
31305
31380
|
if (gridEl.current && dragEl.current) {
|
|
31306
31381
|
initialOrder.current = getGridItemIdOrder();
|
|
31307
31382
|
styleSnapshot.current = snapshotElementStyle(dragEl.current);
|
|
31308
31383
|
applyActiveStyles(dragEl.current, activeStyles3);
|
|
31309
31384
|
}
|
|
31310
31385
|
}, [getGridItemIdOrder, activeStyles3]);
|
|
31311
|
-
const commitReorder = (0,
|
|
31386
|
+
const commitReorder = (0, import_react161.useCallback)(() => {
|
|
31312
31387
|
if (gridEl.current && dragEl.current) {
|
|
31313
31388
|
const currentOrder = getGridItemIdOrder();
|
|
31314
31389
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) onReorder(currentOrder);
|
|
@@ -31318,7 +31393,7 @@ function DnDGrid(props) {
|
|
|
31318
31393
|
initialOrder.current = currentOrder;
|
|
31319
31394
|
}
|
|
31320
31395
|
}, [onReorder, getGridItemIdOrder]);
|
|
31321
|
-
const cancelReorder = (0,
|
|
31396
|
+
const cancelReorder = (0, import_react161.useCallback)(() => {
|
|
31322
31397
|
if (gridEl.current && dragEl.current && initialOrder.current) {
|
|
31323
31398
|
const currentOrder = getGridItemIdOrder();
|
|
31324
31399
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) {
|
|
@@ -31340,7 +31415,7 @@ function DnDGrid(props) {
|
|
|
31340
31415
|
reorderViaKeyboard.current = false;
|
|
31341
31416
|
}
|
|
31342
31417
|
}, [getGridItemIdOrder, getGridItems]);
|
|
31343
|
-
const onMove = (0,
|
|
31418
|
+
const onMove = (0, import_react161.useCallback)((e) => {
|
|
31344
31419
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
31345
31420
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
31346
31421
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
@@ -31363,7 +31438,7 @@ function DnDGrid(props) {
|
|
|
31363
31438
|
}
|
|
31364
31439
|
}
|
|
31365
31440
|
}, [lockAxis]);
|
|
31366
|
-
const onDragEnd = (0,
|
|
31441
|
+
const onDragEnd = (0, import_react161.useCallback)((e) => {
|
|
31367
31442
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
31368
31443
|
e.preventDefault();
|
|
31369
31444
|
cloneEl.current.replaceWith(dragEl.current);
|
|
@@ -31374,7 +31449,7 @@ function DnDGrid(props) {
|
|
|
31374
31449
|
removePointerDragListeners(onMove, onDragEnd);
|
|
31375
31450
|
}
|
|
31376
31451
|
}, [commitReorder, onMove]);
|
|
31377
|
-
const onDragStart = (0,
|
|
31452
|
+
const onDragStart = (0, import_react161.useCallback)((e) => {
|
|
31378
31453
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
31379
31454
|
const rect = dragEl.current.getBoundingClientRect();
|
|
31380
31455
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
@@ -31402,10 +31477,10 @@ function DnDGrid(props) {
|
|
|
31402
31477
|
addPointerDragListeners(onMove, onDragEnd);
|
|
31403
31478
|
}
|
|
31404
31479
|
}, [initReorder, onMove, onDragEnd]);
|
|
31405
|
-
(0,
|
|
31480
|
+
(0, import_react161.useEffect)(() => {
|
|
31406
31481
|
return () => removePointerDragListeners(onMove, onDragEnd);
|
|
31407
31482
|
}, [onMove, onDragEnd]);
|
|
31408
|
-
const onDragHandleKeyDown = (0,
|
|
31483
|
+
const onDragHandleKeyDown = (0, import_react161.useCallback)((e) => {
|
|
31409
31484
|
const moveHandle = e.target;
|
|
31410
31485
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
31411
31486
|
const isSpaceKey = e.key === " ";
|
|
@@ -31546,11 +31621,11 @@ function DnDGridItemHandle(props) {
|
|
|
31546
31621
|
}
|
|
31547
31622
|
|
|
31548
31623
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
31549
|
-
var
|
|
31624
|
+
var import_react162 = require("react");
|
|
31550
31625
|
function useDnDGridItem(props) {
|
|
31551
31626
|
const { id, itemRef } = props;
|
|
31552
31627
|
const { dragEl, onDragHandleKeyDown } = useDnDGridContext();
|
|
31553
|
-
const { dragItemProps, dragHandleProps } = (0,
|
|
31628
|
+
const { dragItemProps, dragHandleProps } = (0, import_react162.useMemo)(() => {
|
|
31554
31629
|
function initDraggable() {
|
|
31555
31630
|
if (itemRef.current) {
|
|
31556
31631
|
dragEl.current = itemRef.current;
|
|
@@ -32088,10 +32163,10 @@ var ToggleFilter = class extends BaseFilter {
|
|
|
32088
32163
|
};
|
|
32089
32164
|
|
|
32090
32165
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
32091
|
-
var
|
|
32166
|
+
var import_react165 = require("react");
|
|
32092
32167
|
|
|
32093
32168
|
// src/components/Grid/useResponsiveGrid.ts
|
|
32094
|
-
var
|
|
32169
|
+
var import_react163 = require("react");
|
|
32095
32170
|
var import_runtime157 = require("@homebound/truss/runtime");
|
|
32096
32171
|
var __maybeInc28 = (inc) => {
|
|
32097
32172
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
@@ -32102,7 +32177,7 @@ function useResponsiveGrid(props) {
|
|
|
32102
32177
|
gap,
|
|
32103
32178
|
columns
|
|
32104
32179
|
} = props;
|
|
32105
|
-
const gridStyles = (0,
|
|
32180
|
+
const gridStyles = (0, import_react163.useMemo)(() => {
|
|
32106
32181
|
const gapCount = columns - 1;
|
|
32107
32182
|
const totalGapWidth = gap * gapCount;
|
|
32108
32183
|
const maxColumnWidth = `calc((100% - ${totalGapWidth}px) / ${columns})`;
|
|
@@ -32125,9 +32200,9 @@ function useResponsiveGrid(props) {
|
|
|
32125
32200
|
}
|
|
32126
32201
|
|
|
32127
32202
|
// src/components/Grid/utils.ts
|
|
32128
|
-
var
|
|
32203
|
+
var import_react164 = require("react");
|
|
32129
32204
|
var gridItemDataAttribute = "data-grid-item-span";
|
|
32130
|
-
var ResponsiveGridContext = (0,
|
|
32205
|
+
var ResponsiveGridContext = (0, import_react164.createContext)(void 0);
|
|
32131
32206
|
|
|
32132
32207
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
32133
32208
|
var import_runtime158 = require("@homebound/truss/runtime");
|
|
@@ -32146,7 +32221,7 @@ function ResponsiveGrid(props) {
|
|
|
32146
32221
|
gap,
|
|
32147
32222
|
columns
|
|
32148
32223
|
});
|
|
32149
|
-
const config = (0,
|
|
32224
|
+
const config = (0, import_react165.useMemo)(() => ({
|
|
32150
32225
|
minColumnWidth,
|
|
32151
32226
|
gap,
|
|
32152
32227
|
columns
|
|
@@ -32159,14 +32234,14 @@ var import_react_aria73 = require("react-aria");
|
|
|
32159
32234
|
var import_runtime159 = require("@homebound/truss/runtime");
|
|
32160
32235
|
|
|
32161
32236
|
// src/components/Grid/useResponsiveGridItem.ts
|
|
32162
|
-
var
|
|
32237
|
+
var import_react166 = require("react");
|
|
32163
32238
|
var injectedResponsiveGridClasses = /* @__PURE__ */ new Set();
|
|
32164
32239
|
var responsiveGridStyleEl;
|
|
32165
32240
|
function useResponsiveGridItem(props) {
|
|
32166
32241
|
const { colSpan = 1, gridConfig } = props;
|
|
32167
|
-
const contextConfig = (0,
|
|
32242
|
+
const contextConfig = (0, import_react166.useContext)(ResponsiveGridContext);
|
|
32168
32243
|
const config = gridConfig ?? contextConfig;
|
|
32169
|
-
const { className, cssText } = (0,
|
|
32244
|
+
const { className, cssText } = (0, import_react166.useMemo)(() => {
|
|
32170
32245
|
if (!config || colSpan <= 1) return { className: "", cssText: "" };
|
|
32171
32246
|
const { minColumnWidth, gap } = config;
|
|
32172
32247
|
const className2 = responsiveGridItemClassName(config, colSpan);
|
|
@@ -32189,7 +32264,7 @@ function useResponsiveGridItem(props) {
|
|
|
32189
32264
|
};
|
|
32190
32265
|
}
|
|
32191
32266
|
function useResponsiveGridItemStyle(className, cssText) {
|
|
32192
|
-
(0,
|
|
32267
|
+
(0, import_react166.useEffect)(
|
|
32193
32268
|
function() {
|
|
32194
32269
|
if (!className || !cssText || typeof document === "undefined") return;
|
|
32195
32270
|
if (!responsiveGridStyleEl) {
|
|
@@ -32227,7 +32302,7 @@ function ResponsiveGridItem(props) {
|
|
|
32227
32302
|
}
|
|
32228
32303
|
|
|
32229
32304
|
// src/components/HbLoadingSpinner.tsx
|
|
32230
|
-
var
|
|
32305
|
+
var import_react167 = __toESM(require("react"), 1);
|
|
32231
32306
|
|
|
32232
32307
|
// src/components/HbLoadingSpinner.base64.ts
|
|
32233
32308
|
var HbLoadingSpinner_base64_default = "data:image/gif,GIF89a%80%00%80%00%E7%00%00%00%00%00%0D%0D%0D%16%16%16%1C%1C%1C%22%22%22%26%26%26%2A%2A%2A...222555888%3B%3B%3B%3D%3D%3D%40%40%40BBBEEEGGGIIIKKKMMMOOOQQQSSSUUUVVVXXXZZZ%5C%5C%5C%5D%5D%5D___%60%60%60bbbccceeefffhhhiiijjjlllmmmnnnpppqqqrrrsssuuuvvvwwwxxxyyyzzz%7C%7C%7C%7D%7D%7D~~~%7F%7F%7F%80%80%80%81%81%81%82%82%82%83%83%83%84%84%84%85%85%85%86%86%86%87%87%87%88%88%88%89%89%89%8A%8A%8A%8B%8B%8B%8C%8C%8C%8D%8D%8D%8E%8E%8E%8F%8F%8F%90%90%90%91%91%91%92%92%92%93%93%93%94%94%94%95%95%95%96%96%96%97%97%97%98%98%98%99%99%99%9A%9A%9A%9B%9B%9B%9C%9C%9C%9D%9D%9D%9E%9E%9E%9F%9F%9F%A0%A0%A0%A1%A1%A1%A2%A2%A2%A3%A3%A3%A4%A4%A4%A5%A5%A5%A6%A6%A6%A7%A7%A7%A8%A8%A8%A9%A9%A9%AA%AA%AA%AB%AB%AB%AC%AC%AC%AD%AD%AD%AE%AE%AE%AF%AF%AF%B0%B0%B0%B1%B1%B1%B2%B2%B2%B3%B3%B3%B4%B4%B4%B5%B5%B5%B6%B6%B6%B7%B7%B7%B8%B8%B8%B9%B9%B9%BA%BA%BA%BB%BB%BB%BC%BC%BC%BD%BD%BD%BE%BE%BE%BF%BF%BF%C0%C0%C0%C1%C1%C1%C2%C2%C2%C3%C3%C3%C4%C4%C4%C5%C5%C5%C6%C6%C6%C7%C7%C7%C8%C8%C8%C9%C9%C9%CA%CA%CA%CB%CB%CB%CC%CC%CC%CD%CD%CD%CE%CE%CE%CF%CF%CF%D0%D0%D0%D1%D1%D1%D2%D2%D2%D3%D3%D3%D4%D4%D4%D5%D5%D5%D6%D6%D6%D7%D7%D7%D8%D8%D8%D9%D9%D9%DA%DA%DA%DB%DB%DB%DC%DC%DC%DD%DD%DD%DE%DE%DE%DF%DF%DF%E0%E0%E0%E1%E1%E1%E2%E2%E2%E3%E3%E3%E4%E4%E4%E5%E5%E5%E6%E6%E6%E7%E7%E7%E8%E8%E8%E9%E9%E9%EA%EA%EA%EB%EB%EB%EC%EC%EC%ED%ED%ED%EE%EE%EE%EF%EF%EF%F0%F0%F0%F1%F1%F1%F2%F2%F2%F3%F3%F3%F4%F4%F4%F5%F5%F5%F6%F6%F6%F7%F7%F7%F8%F8%F8%F9%F9%F9%FA%FA%FA%FB%FB%FB%FC%FC%FC%FD%FD%FD%FE%FE%FE%FF%FF%FF%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%21%FF%0BNETSCAPE2.0%03%01%00%00%00%21%FE%11Created%20with%20GIMP%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%DD%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%EC7%80%80%C7%02%02%EC%0D%40%99%F2%E4%CA%92%2F%5B%E6%5B%99%B1%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%5E%CD%BA%B5%EB%D7%B0c%CB%9EM%BB%B6%ED%DB%B8s%EB%DE%CD%BB%B7%EF%DF%C0%83%D7%0E%08%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FC%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF7%03%88%1E-Z%80%E9%01%04%0A%188p%00A%82%05%0D%1EH%A8%C0%964i%D3%02P%ABn%FD%9A%01%5C%DB%A3O%EB%5EM%17x%00%DC%A8%EF%1A%3F%0E%BA%B9%F3%E7%D0%A3K%9FN%BD%BA%F5%EB%D8%B3k%DF%CE%BD%3B%CA%80%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%20%03%88%160%80%40%81%03%09%16%40%B0%D0%A1%04%8C%1EK%B0%90%89%B3%87%D0%A2H%966y%0A5%AAT%29S%A7P%A5J%A5J%D5%AA%E3%C8Y%B1Z%15U%F4h%D2%04%0C%20X%F0%80B%06%11%2Cp%14%A1%22%06%0E%9FB%8D%2A%B7m%02E%EAT%AAU%AD%5C%BD%82%05%2B%96%AC%F7%B2f%C9%9FO%D5y%00%E8%A8%19%3C%60%5D%C2%05%8F%25Y%981%87%1F%88DrI%27%A2%94%82%8A%2A%E9%AD%D7%1E%7C%F1%CD7KU%F6A%27%9D%02%0EH%80%C1%07%29%D0%10%84%13%5D%ACq%C7%20%8CL%A2%09y%A7%A8%C2J%2B%EB%C5%E2%DE%7B%12NhU%85%A5I%B7%80%03%13l%20%C2%0A7%18AE%18o%ECQ%88%23%96p%12%8A%82%E8%B5%F8b%84%F2%7D%E5%9C%00%D0%15p%A1~%11P%60%01%06%1Al%D0A%07%1E%7C%00%C2%97%21%84%29f%08%A0%95i%E6%99h%A6%A9%E6%9Al%B6%E9%E6%9Bp%C6%29%E7%9Ctf%15%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%14%03%88%160%80%80%01%04%0D%26p%40%81C%89%965w%02%25z4%C9R%A6M%9D%3C%7D%FA%04%2AT%28Q%A3F%91%22U%AAxqS%A6N%9DB%C5%1CU%AA%E7%AA%A2%ABZE%FD%E8%E8%D2%06%124%A8%00%82%05%8F%27a%E4%D6%FCI%14%E9%12%A7O%A1%88%27_%0E%9D%3A%2BV%AD%E2%BB%9A%FF%EA%15%AC%FB%B0b%E9%8F%25%AB%BF%7F%A4%A2%05%20%80i%0A%3C%60%01%08-%F8%10%05%19t%00%B2%C8%24%99t%02%CA%28%A5%24%E7%5C%2A%D3%AD%F2%5E%7C%F2%D5g%1F~%FB%F1%E7%DF%7F%00%8A%86%5D%81%07%BA%F0%83%14%0C%06%C2%08%25%9Ax%22%0A%29%16b%E8%1E%7C%1C%D2W%1F%88%FB%8D%D8%DF%2C%B2%285%DA%80%D99%60A%08.%001E%19u%0C%D2H%25%9BLX%0A%7B%D3m%98%A3%2B%3B%F2%28%A2%8F%B3%00%F9T%80%A4%99%96%00%03%0FHP%C1%05%19l%C0A%07%1Dx%E0%C1%07p%C6%F9%01%08t%D6i%27%08%21%E4%A9%E7%9E%21%80%E6%E7%9F%80%06%2A%E8%A0%84%16j%E8%A1%88%26%AA%E8%A2%8C6%9AU%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%0E%03%88%1EP%E0%00%83%0A%20%60%0C%C1%82%A6%CE%9FC%8C%1EE%9AD%A9%92%25K%970e%CA%A4I%D3%A6M%9C8u%F2D%FC%D3%27P%A0B%29%17%25j%94sR%A4JI%9F%5E%CA%94%F5S%D8%7F%8A%0E0%80%80%01%05%116%EF%A4%E0%21%A5L%1DA%8B%22U%CA%04%7C%B8%F1%E4%A1%98%3F%9F~%1D%3B%2AT%A9R%A9%DA%BF%AA%3F%AB%FF%AD%04%18%A0%2B%04%BE%F2%8A%2BA%05%20%00i%08%9C%16%02%0CFl%E1%06%1F%88%3C%B2%1Ep%9E%1C%97%9C%7C%A3%40%27%5D%7D%F7%DD%A7%1F%7F%FE%01%28%60%2B%04%BAb%E0%2B%B0%BC%92%A0%82%DE%29%00%81%06%27%E8%10E%19v%0C%D2%C8%24%98l%D2%89%86%F1%3D%17%DD%87%D8%9D%22b~%24%AE%F2%1F%2B%27%A6X%E0%8A-%0A%25%9A%00%04%98FAjFh%E1%86%1F%89Dr%89%8F%C7q%E8au%A6%D8w%E4~%AA%94%C8%E4%89%28%3E%C9%22%2Cp%C2b%D4%94%0C.%E0%80%04%15%5C%90%81%06%1Bp%E0g%07%80%06%DA%81%07%84%16Z%E8%07%88%26%AA%28%A2%204%EA%E8%A3%8E%82%26%E9%A4%94Vj%E9%A5%98f%AA%E9%A6%9Cv%EA%E9%A7%A0%86%9AU%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%08%03%88%1EP%00%C1%03%0C%26t%40%19%23%87%8F%A0C%8A%185r%F4%A86%A4H%B8%25%E9%9E4%89%92%EFJ%C0%2BY%1An%E9%92qL%982e%D2%C4%5C%D3%A6%E7%9C6q%9A%DE%A9%BA%A7%EB%D8u%8E.%DD%E0B%89%1CQ%CC%F2%D4%09%94%C8%91%24J%C2%8D_J%BE%9C9t%EA%D5%3Ba%FFD%FF%13%28P%A1%F2%87%12%C5%7F%94%FFQ%A4%04X%CA%80%03%9Ab%E0%29%A6h%17%C0%00%04%1C%C0%40%05%22%D4%B0D%18s%FC%91%C8%23%93Tb%9Cr%ED9%27%1D%7C%D8yR%DF%7D%F8%E9%C7_%7F%FE%05%28%20%81%06%1Ex%CA%8B%A7%28%28%00%01%06%28%20%C1%070%18%D1%05%1C~%20%82aq%ED%3D%F7a%7C%F2%898%E2%7D%26%A2%F8%9F%8A%04%B2%E8%E2%8B%A8D%89%CAN%DB%25%00%C1%06%2A%00%81%05%1B%7C%F8H%89%25%CB%7D%C8I%7C%F3%D9%87d%89%FB%9D%B8%E4%8AN%3E%09%A5%94R%FA%24%9A%00%A4%21%B0%C0%03%12TpA%06%19h%A0%C1%06%80%06%1A%28%07%84%16j%28%A1%1D%24%AA%E8%A2%8Bz%E0%E8%A3%90F%EA%01h%94Vj%E9%A5%98f%AA%E9%A6%9Cv%EA%E9%A7%A0%86%2A%EA%A8Y%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%03%03%04%18P%E0%40%83%0B%25r%3C%11%03gO%A0B%87%10%25%9A%AD%A86%ED%DA%B8%15%CDN%A4%BB7%EE%DD%BAy%E7%BE%1D%5C%B8%EF%E0%BF%13%D1%0C%20%80t%82%07%1AR%F8%B0%92%06%8F%A0D%8D%1EE%92%C4%BD%BB%F7%EF%E0%C3%A7%8B%1FO%DE%FB%F2%D1%05%9EkX%01%C4%CA%9A%3C%83%149%8A4i%12%A5%FB%F8%F3%EB%DF%CF%1F%BF%FD%FE%00%F27%C9y%A4%21%F0%C0%06%ECa%B1%C6%1E%850%02%89%7D%95D%18%A1%25%14JXI%85%17Z%22%21%86%16%5E8%A1%86%19n%D8%21%85%20~%18%E1y%02%10%A0%9E%0A%40d%D1%06%1F%874%22%09%25%17%5Eb%E3%8D8%E6%A8%E3%8E%3C%F6%E8%E3%8D8%89%D6%1C%01%06%400%81%05%17%60%90A%06%1A4%E9%E4%93PF%29%E5%94TV%F9%24hXf%A9%E5%96%5Cv%E9%E5%97%60%86%29%E6%98d%96i%E6%99Y%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CD%01%02%08%20%60%40A%84%0E%2C~P13%87O%A0B%87b%CB%8Em%A8P%21B%84%06%09%DA%1D%A8%F7%9F%DF%7F%FC%F4%E9%C3%87%CF%9E%3Dz%F2%E0%C1s%E7%8E%9D%E7u%EA%D0%A13G%8E%9C8p%E0%BCq%D3%A6%3B%9B5%E0%D3%FE%88Gs%C6%8C%992%2CC%8B%1Ep%80%81%85%115%96%80%81%C3%A7%90%A2F%8F%20Az%C4%FF%91%23G%8D%04%C8%08%23%8B%2C%A2%88%22%89%24%82%C8%82%87%D4f%5Bn%BC%05%02%08%20%C1%F9a%21q%C7%21%97%87r%CDE7%1Du%D6e%97%DD%1B%DD%B5%14%DA%00%05%24%E0%00%06%27%EC%20%85%19u%00%82%08~%91Hbc%248%EE%E7%DF%7F%0062%20%81%08%2A%88%88l%0E%E2F%C8n%82%F4Fa%85%C3%19%A7%21%87%CEy%08%A2u%D8%C1a%A2%00%03%94%26%01%07%2C%04%91%C5%1Az%10%B2%C8%23%92L2%09%25fNrc%8E%FD%FD%17%A0%8F%05%1A%98%A0%82%B4%15%09%21oK%06G%9C%93%7Bl%98Gs%D0IG%5Du%E9%89F%40%7B%15%880%83%12_%C4%F1%07%22%8EHB%09%25%95T%3A%29%9Aj%AE%19%89%8En%0A8%A0%9C%092H%DB%83%10%2A%B9%E4%85%C5e%98%1Cs%80z%08ShNX%12P%C0%01%09%28%B0%00%03%0C4%D0%40%06%BC%F6%EA%2B%06%C0%06%8B%C1%05%C4%16k%EC%05%16%24%ABl%B2%154%EBl%B3%14D%2Bm%B4%13Tkm%B5%12d%AB%EDg%DCv%EB%ED%B7%E0%86%2B%EE%B8%E4%96k%EE%B9%E8%A6%AB%EE%BAj%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%C9%01%02%08%20%60%40%01%84%0C%25j%24%D1%92%A6N%1FA%87%10%25%9A%8D%08%D1%A1C%85%0A%0D%12%14%28%D0%9F%3F~%F8%F0%D9%93%07%CF%1D%3Bu%E8%CC%91%03%E7%8D%9B6m%D6%A8I%83%C6L%192c%C2%84%F9%E2e%8B%96%2CX%AC%FET%A1%22%25%0A%94%27M%98%2CY%92%C4H%91%21A%80%FC%F8%D1c%87%8E%1C7j%94%14%3D%A0%00%02%07%16%8C0%83%11Z%A8q%87%20%894%F2H%24%92H%12I%24%90%3C%E2H%23%8C0%B2%08m%B8%11B%08o%80%00%D7%C7py%E4q%5Crr0%F7%06t%D2Qg%1D%19bl%E7%05%17%DEeq%85%15TLQ%1E%14N%A8%97%04%12%EE%11%21%84%7C%3E%F00Rh%A2%11p%C0%02%12p%B0%82%0FR%94A%C7%1F%884%12%C9%24TR%E9%60%24%12Nh%E1%85%B6e%B8%5B%20%1D%06%07%A2q%C9-%17Gsm%B0%91%E2%19%2B%8A%01%06w%5Ch%F1%DD%8C5Jq%5Ez%EC%F1H%C4%10%3F%FE%20Rh%02%08%D0_%02%A7%95p%C3%12%5E%C0%D1%C7%21RRR%C9%A3%95Pb%25%84YR%B8%88%22%89%D8fH%21%84%7C%19%A6pz%14wG%99r%9C%F9%9C%9A%D3%B1%89%5D%18%60x%F1%E2w%B4%E1%D1xc%8EK%28%91%C4%11F%EC%19%C4%90%82%1A%C9%40%05%20%C0%40%04%16j%E4A%08%23%91Pb%C9%25%CC%5EbI%A4%92%3A%18%A1%23Z%5E%9A%E9%21%9Bn%D8%1Bp%C1%ED%11%EA%88%CA%99x%EA%1A%2A%5E%97%5D%AB%5D%C4%18%5E%156F%F1%04%AD%EC%E1J%C4I%80%0E%40%40%01%07%24%A0%C0%02%0C0%D0%C0%BF%00%03%DC%2F%06%04%13%7C%C1%C1%07%5B%A0%B0%05%154%5C%01%05%10S0%C1%C4%13K%60q%04%18G%00%C1%C6%1B%3F%E0%F1%03%0E%84%EC%40%C0%FD%96%BC%C0%C9%27%2B%A0%B2%02%09%7C%E6%F2%CB0%C7%2C%F3%CC4%D7l%F3%CD8%E7%AC%F3%CE%3C%F7%ACV%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%C3%01%02%0C%20%60%00A%83%09%1AH%C8%10%22%25L%9B%3B%7F%0A%25b%E4%E8%91mG%8E%1A1R%94%08%D1%A1B%84%06%05%02%F4%C7%0F%9F%3Dy%EE%D8%A13%27%CE%9B6m%D6%A49c%86%8C%980%5E%BAh%C1r%A5%CA%94%28P%9A%FE0Y%92%C4%08%91%20%40%7C%F0%D0%81%C3%06%0D%191%5E%B8%60%A1%02%C5%89%12%25F%8C%00%01%C2C%87%0D%1Ah%90%C1%05%16T%80Qh%02%90%A6%80%03%14t%90%C2%0DH%60qF%1D%7F%20%E2%88%24%95Xr%C9%86%97XR%09%25%93H%12%C9%23%B91%B2Ho%86%00%27%08q%7D%EC%A1Gru%D0%21%87s%D1MW%9D%18%60x%C1%C5vVP%21E%14O4%B1%04%12F%14%21Dz%EB%B5%F7%5E%7C-%AC%A0B%0A%27%98%40%C2%08%21%F4%E7%1F%07%01bPQh%01%080%9A%01%098PA%07%28%DC%90%84%16h%D4%11H%22%8FPrI%26%9A%C4%99I%26%1D~%18%E2%88%25%9E%E8%5B%21%83%08%12%C8%1F-%EA%81%C7%1D1%CA%01%C7s%D2%A1qc%8E%3Bb%D1%E3%8FN%8CW%1E%11G%AA%C7%9E%7B3%C47%DF%93QN%29%02%08%1F%5C%B9A%06%5B%22HZ%98%15x%90%02%0Eg%AAq%87%20%EB%8BDR%09%26%9Al%C2%C9%26%9B%C8%B9%A1%87w%92%A8%9B%9E%BF%11%B2%22%A0%7C%08J%A8%8C%87F%A7%86%A2%D61%CA%A3%8FPD%3A%A4y%95%26%89i%0C04%C9%A9%94T%82%EA%1F%80%14%21%F8%E5%82%A9%AA%80%83%12%5B%AC%91%07%21%8CHr%89%26%9Ct%22o%27%9C%DC%AAI%26%98%D4y%27%24y%F6%16%EC%B0%C6%BDx%AC%A1%88%DA%D8%AC%8E%CF%FE%18%E4%90G%18%89%E4%A54d%FA%82%B6Pr%FBi%A8%1Dp%90%11%97%5E%12P%40i%09%28%B0%00%03%0D%94%EC%C0%C9%27%97%AC%F2%CA%0C%B4%EC%F2%02%16%C4%5C%60%05%15P%60%F3%048K%A0s%04%3CC%E0%F3%03%40%A7%5C%F2%CB%0B%14%AD%C0%D1%09%24%9D%00%02L%1F%E0%B4%D3%06Dm%40%01TWM%C0%D5%04%7C%A6%F5%D6%5Cw%ED%F5%D7%60%87-%F6%D8d%97m%F6%D9h%A7%ADV%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9s%C4%00%01%F6%82%0E%20%20%B4%5E%D2%A4%09%188%80%80%01%84%0A%1AD%A8%A0%01%84%09%961m%EE%FC1%B4%E8%D1%24K%972i%D2%B4i%93%A6L%99.Y%B2T%89%D2%24I%90%1E9b%B4%28%11%A2C%85%06%05%FA%E3%87%CF%9E%3Cw%EA%FE%CC%89%F3%A6%CD%9A4f%C8%8C%09%E3%85K%96%2BU%A4%40q%C2D%C9%11%22B~%F4%D8%91%C3%06%8D%180%B8%C0%82%0A%28%98%40%C2%08%21%7C%E0A%07%1Ch%90%01%06%16T%40%C1%04%12D%00%C1%03%0F4%D0%C0%02%0B%28%E0a%02%08%20%20P%00%03%0CP%C0%01%09%B8F%81%06%21%AC%60%C3%10Pla%86%1C%7B%10%B2%88%24%97h%D2%09%28%A2%8C2%0A%29%3E%8E%22%8A%28%A0%80%F2I%27%9Cpr%1C%26%974%27I%24%D2Q%97%08v%84l%D7%9D%1Ex%D8A%87%1Cp%98%97%C6%19e%88%01%86%17%5BdaE%7CP4%B1D%12F%0C%01%84%0F%3C%E4p%03%0D3%048%60%81%07%86%00%C2%82%0DfpA%84%13Vx%A1%03%1A2%D0%E1%87%00%90%A8%1A%02%0B%3C%40A%06%20%A4%20%C3%0FKdA%06%1Cz%0C%B2H%24%96l%F2I%28%A2%90R%CA%A8%A3%92%02%A4%28%A1%18%E9%09%92%C6%25g%89s%FE%D09%D2%08%23%D6%19B%88%20%DBy%07%9Ex%E4y%99%5E%18_t%A1%05%16VL%21%05%7D%F6%E1%A7%9F%0E8%D80C%0C%2F%B4%B0B%0Ax%22%A8%60%07%1B%3C%F8g%A0%12%400h%03%86r%E8a%A2%27%26%D0%40%04%17x%60B%0C%3D%24aE%18m%E0%11H%22%9Cn%E2I%A8%A3%9Ar%8A%29%FC%9AR%AA%90%A9~%B2%AA%92%99%60%C2%1C%25OJ%D7Hu%88%14r%2B%20Wf%B9%25%1Cn%B0%A1%06%98c%8C%B9%85%16%F0%C9%E7%C4%9Am%02%D1%03%0F%CC%D6%20%83%9D%2A%A4pB%09%23%88%00%C2%07%0C%3A%08%A1%84%14Z%08%01%A1%E0%8A%AB%00%00%02%A4%F8%DA%06%23%B4%90%83%11S%7C%A1F%1D%7F%20%F2H%25%9E%E2%7B%CA%29%A8D%8D%CA%D3%FC%96r%2A%AAF%B2%BA%E4%AB%CFE%B7%B0%22%D7e%B7%5D%1F%DF%857%B1%AFd%00%DBE%99%C5J%F1D%13%C9%06%A1%DF%0E%CD%D2p%B2%B4%04%9AP%82w%08%09.%B8%81%06%18l%3BA%CD%DF%86%DB%E1%88%A4%090%00%01%04%14%B0Z%02%0A%2C%C0%00%03%0D8%E0%00%86%98g%AE9%86%96wn%B9%86%A0%83%3B%F9%E8%1C%96%EE%E1%E0%83KPa%046c%FE%B9%E8%86%7F%98%00%88%21%1E%60%FB%01%06%E4%5E%C0%EE%BB3%CEx%89%C0%03%2F%C0%F0%C4%97%06%9Ag%C8%27%AF%FC%F2%CC7%EF%FC%F3%D0G%2F%FD%F4%D4Wo%FD%F5%7B%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1c%AD%01%FAF%0E%40yo%00%01%98%23%E7%0D0%A03%01%02z%03%140p%E0%80%01%BD%02%12%28%60%E0%80%81%5E%02%0F%24P%B80A%EF%81%0C%1CB%94%F0%A0w%01%8A%163t%B8%D0%1B%C1%07%91%25R%84%E8%D5p%C5%0B%994V%F4%8ExC%27%8F%1F4z%5B%0CB%B4%E8Q%1D%BD6%26%FEY%CA%B4%E9%8F%5E%1F%9EB%89%22eH%AF%10S%A7R%A9Z%A4%D7%08%2BV%ADZ5%D2%9B%C4%D5%AB%FF%8E%E8%A5D%2C%04%C6%F2%88%80%B2%24%28%CB%2B%AA%A8%92%CA%83%A8%A0r%CA%84%A6%94ba%29%A4%8C2%8A%28%A1%80%02%8A%27%9Et%C2%89%26%99%60r%89%25%95L%22I%24%8F8%C2%C8%22%89%1Cb%08%21%82%FC%E1%07%1Fz%DCa%07%1Dr%C0%D1%C6%1Ai%98A%86%18_p%A1%05%16UH%F1%04%13K%20a%C4%10%40%F4%A0%03%0E5%CC%10%83%0B%2C%A4%80B%09%24%8C%10%C2%07%1Dp%A0A%06%17TP%01%05%13D%00%C1%03%0E%B4%C6%C0%02%0A%24%90%00%02%08%94V%9A%01%05%E4%F9%D9g%00%2C%A1%E0%9F%05%C2%02%CB%7F%AE%E4%97%1F%2B%AB4%98J%84%A7T%98%21%87%A0%7C%22%E2%26%99%9CH%C9%24%91%40%E2%22%8C%87%14%22H%207%EA%81%87%1Ds%C4%F1%06%1Bj%9C%21d%18%5E%1C%99%24%14%FEM4Y%84%10%3F%F0%A0%C3%0D4%C8%00C%0B%2B%A4p%82%09%24%7C%E9A%07%1Bh%80%81%05%15L%20%81%9A%0F%B0%D9%C0%9B%0AD%3Bg%9D%A6%E5Y%C0%9E%A0-1%CB%2C%7F%CA%12%A8%A0%AF%B8Rh%2B%F7%AD%92%28%84%8Db%B8a%87%9Fx%C2%C9%26%24%A2%A8%22%8B%8DpZ%08%21%81%FC%C1%C7%1E%A3%F2%E8%23%90%AB%B6%8A%85%15SD%E1%C4%12I%3C%19%E5%94U%C6%F0%02%0B%2A%FCJ%82%08%20%80%B9A%06%18%94%89%A6%9Ak%3A%F0%2C%B4q%D2Y%27%9Ez%EE%D9%E7%B6%DC%2A%F8%ED%A0%E1%8E%5B%AE%83%8B%A6%FB%28%BB%21%8EX%A9%25%94%AC%F8H%23%8C%28%82%C8%8C%F9%F6%B1G%1Ew%D4%D1%A3%1B%00%93%C1%2A%17YXA%85%92%08%1BAD%10%3E%EC%80%83%0D3%C8%F0B%0B%2A%A0%00%AC%08_%86i%EC%05%C8%A6%19A%04%CE2%00%B2%02t%DAi%ED%B5%7Cj%8B2%A0%04%82%DB%B2%A1%88%2A%2Aa%A0%85%18%8A%02i%CD%94Z%8Ai%8B%2F%C6%E8%29%207%12%5D%07%1D%A6%A2z%C6%90_t%A1%C5%15%AF2%A1%C4%11%B3%D6%9A%83%0D4%C4%00%83%0B%BD%9EP%82%97%1F%0C%7B1%D9%C9.%DBq%03%CF.%00%27%DBmW%5B2h%05%9C%CD1%04%B8%E7%AE%FB%EE%CD%F6%EE%3B%9Bm%06%EF1%EB%AC%ABm%BC%EB%AEG%AB%BC%9Cr%E6%DEl%9B%C4%AB%9D%BC%B4%D3Rk%9A%01%D8%BF%8Dmg%DC%0F%80%D9%F7%99Q%26%FE%F8%E4k%F6%D8%F9%E8%A7%AF%FE%FA%EC%B7%EF%FE%FB%F0%C7%2F%FF%FC%F4%D7o%FF%FD%F8%DF%14%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%85%06%000xo%80%C3%87%F5%06%18%C0X%40a%BC%02%0AH.%40%40%EF%80%04%98%13%18%D0%5B%00%82g%08%0C%F4%22%D0%B0%A1%F4%04%BD%0DV%B0%60%B1%E2%83%5E%0AB%86%C8%86%A1%D7%03%97%DB%5C%8A%E8EAg%8E%EF%2Czg%1C%1A~%28%8D%5E%1E%95%2AY%B2tG%AF%10P%D0A%01%D2k%E4%94%F5S%86%F4%26a%C5%9D%95%22%BDK%5E%FE%B9%1A%DF%08%3C%2CX%AF%5E9%D2%CB%24%96%7BX%EB%F32%91%25%CB%FD%23%F6%F4%EB%DF%97%9F%3F%D6~%BC%F3%D5%E7%1F~%F4%0D%C8_%81%FF%DD%15%A0~%04%DAG%20%83%07B%08%60%7F%09%DA%B5%04%85%E0a%98%D7%85%08f%D8%E1%86%05%C6%E2J%2A%A9%A0%82%8Au%A6%94%A2b%29%A4%8C%22J%28%A1%80%F2%89%27%9Dp%B2I%26%98%5CbI%25%94H%12%C9%23%8D0%A2%08%22%87%14BH%20%7F%F8%B1G%1Ev%D4%21%07%1Cm%AC%91%86%19d%88%01F%17Z%60Q%85%14O0%B1D%12E%08%F1C%0F%3A%D8%40C%0C0%B8%B0B%0A%26%900B%08%1Ft%C0%81%06%19%5C%60A%05%14H%10%81g%0E4%C0%C0%02%0B%28%A0%40%02%08%1C%60%E8%01%06%18%20%19%01%8C%12%C0%D8%A3%02D%0A%00%87%EE%BD%87%9Ex%ADd%CA%CA%2A%AB%A8R%E2%89%29%B6%F8%E2%8C5%DE%A8c%8F%3F%069%A4%21G%FE%D1%C7%1E%FEx%D8AG%1Co%B0%A1%C6%19f%8Cq%A5%16WP%21%05%14M%28q%04%11A%F4%B0%03%0E6%CC%10%83%9A%29%9CP%C2%08%22%80%E0%01%07%1Bh%80%C1%9D%13%E8%19%C1%03%0E%FC%09%A8%A0%98%15%8A%E8d%8D%3A%FA%E8%00%91%0A0i%7F%96%A6%E7J%A6%ADl%DA%E9%A7%A7%84%EAb%8C4r%A2I%26%A7%FA%08%24%23%89%20b%24%92%AF%C6J%87%1Co%B4%A1%06%1Ae%E8%8Ae%AF%5C2%21%2C%11%40%90%89C%0D%CA2%7B%82%09oJ%DB%C1%06%19%60pA%05%D9J%00%01%B7%0Cx%0B.%02%E2%2A%BAh%B9%E7%A6%BBn%88%B1%9C%E7.%BC%DC%CDkb%BD%2C%DEK%AA%BE%FCZ%82%EA%BFC%0E%EC%2A%AC%B2%3E%A90%C3b%7C%C1%85%16V%F8%DA%E5%C4%15%EBp%F1%0Ci%AE%E9%2C%B4%1E%83%7C-%C9z%9E%DC%A7%9F%81%0E%CA%B2%A1.S%D6h%CC2s%28%E0y%97%8E%A7%29%A7%9E%96%C8%B3%A8%A1%7C%F2I%87%A9A%0F%DD%C8%22%01%1B%5Dp%1D%07C%B9%C6%19e4%8De%D4%11%0B%3BD%C5%C7%26%9Bu%0A%28%3C%1BB%D7%21%8F%9C%ED%9E%DC%F6%A92%A1-%93%BB6%DB%EAv%F6%D9%E9%A8%7B%F6%C0%EA%AC%B3%EE%C0%EB%B07%20%FB%EC%29%A7%0C%E8%ED%82%82%9B%19%CBg%1B%2A%BB%ED%DF%0E%1A%AE%B8%88%26%3A%99%DA%A3C%9An%BA%885%EF%BC%F3%81E%2F%FD%F4%D4Wo%FD%F5%D8g%AF%FD%F6%DCw%EF%FD%F7%E0%87%2F%FE%F8%E4%8B%14%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%9F%06%0007nB%01%02%02%E8%B5k0%C0%00%02%80%07%E0%D5%5B7n%80%03%0A%10%208%60%A0%00%81%01%03%0A%C7%3DPA%C2%03%07%0C%16%24%40%60%40r%DC%05%23%3Ch%B8P%B9A%01%BE%04%25%D8%80%A1%A2%04%08%07%9E%F9jx%82%04%88%0E%13%A8%0D%8E0%03%26%8B%14%1C%B9%0B%B6%D8S%07N%9A%25%C1%09%D6%60%84h%90%1F%2F%C9%07%F2%D0tI%92%237%D1%05%0A%19%15%AA%D3%26%3D%D9%01%FE%14Iu%AA%D4%28A%E1%91%B4b%B5%2A%15%A2%F0J%5E%B9j%D5j%11%7CX%B0%E47%0A%BF%24V%2C%FC%8E%F0%27%8B%2C%FF%05%98%DD%12%03%FA%F7HxL%24%18%CB%82%07%3A%08at%08%12%F8%A0%80%16N%98%5C%83%192h%21%2C%1A%06%D7%A0%7F%17f7%A2%82%1E%92%18bnL%F8%07%20%83.%C2b%60t-%FE%27%23%8C.%CE%98%5C%7F6%EA%28b%8C%3E%B2%08%24%7FC%1Eh%E3%2B%FB%1D%88_~IR%B8%24%92%FC%3D%D9%E4%8E%F8%BD%02%A5%92%F9%5D%E9d%96S%06%B7D%96%AEt%99%5B%7CV%BA%C2%08%7CV%CAwfvd%BA%12%26%9A%F2%99%19%5E%12e%B6%B2J%29x%922%8A%28%A2%84%02%CA%27%9Ex%D2%09%27%9Bh%82%C9%25%96TB%89%24%91%3C%D2%08%23%8A%24r%88%21%84%04%F2%87%1F%7C%E8%81%87%1Dt%C8%01G%1Bk%A4a%06%19b%80%E1%85%16XT%21%C5%13L%2C%91%84%11%FEC%FC%D0%83%0E7%D4%20C%0C%2F%B0%A0%C2%09%25%8C%20B%08%1Ft%C0%81%06%19%90V%01%05%12D%00%C1e%0Dd%A6%80%02%9B%29%B6%18c%05T%EB%18%60%8FA%06%19%5E%DC%E2%05%40%9B%F4%AD%C7%9E%2A%A9%A0%82%CA%29%A6%E4%D9%E7%9F%82%16%9A%C9%25%95L%C2%A8%A3%8C%24%82H%21%84%08r%E9%1Ey%DC%D1%29%1Cn%84%3Aj%18_p%91%85%15SH%01E%13J%1CA%04%10%B3%E2P%C3%0C%B8%EA%8A%82%09%24%88%00B%B0%C3bp%81%05%15L%90%EC%B2%0E4%BB%C0%02%D0J%CBXc%D6b%9B%AD%B6%DDr%FBm%9C%E1%B22n%B9%A7%A0%5B%8A%9E%EB%02%EA%9D%A1%89%CA%0B%89%A3%8BH%8A%AF%A5%7D%F0%CB%A9%A7%A0%A2a%C6%18ax%B1%05%16%08G%C1%EA%ABC%40%AC%83%C42%C0%E0%C2%0A%29%F0%3AB%08%1Bw%B0%81%06%18X%60%01%05%22%2B%CB%AC%C9%29%2Bv%00%B5%D5b%AB%ED%DD%82%C5%0C%00%FE%9D%F3%D1g%F3%2A%AB%90%7B%AE%CE%3C%FB%F9%C9%A0%85b%12t%24%908%C2H%D1%87%14%22H%20%98jZG%A7o%80zF%19%A5v%A1%C5%15%AA.%BC%04%12E%08%F1%03%0F%B4%D2%D0%F5%D7a%F7J%F6%07%1Cl%90A%DA%21%27%ABl%C9%26%A3%1C%F7%DC%2C%D7m%F7%DD1%7B%CBw%CD%E3%0A%AE%F3%CE%3D%0BJ%E8%BB%96%2C%DA%A8%E3%8A%20rH%BE%80%60%DAo%1Ds%C4%E1%06%1B%A2%92A%B0%E7VP%B1%2A%13J%90%1E%84%0F%3B%E4p%83%EA%2F%B4%B0%C2%C5%19%03%EB%81%D9%C5%AE%DD%F6%B2%0F4%D0%C0%C9%28G%3B-%CB.%7B%D9%B6%82%27%00%00%14%00%02%08L%E0%03%16%C8%40%06%3A%E0%81%10%C4%9D%FE%F4%C7%80%0Af%86%7F%BA%7BV%026%E8%3F%B9%CDme%06%60%99%067%E8A%DE%85%D0Z%D7%0A%0C%DE%F2%D6-%C2%B8%F0%850%0C%8F%0CgH%C3%1A%DA%F0%868%CC%A1%0Ew%C8%C3%1E%FA%F0%87%0D%40%0C%A2%10%87H%C4%22%1Aq%25%01%01%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%ACY%89%01%02%9C%AD%18%40%40Z%B5%00%E0%AE%5D%18%A0%80%01%02%04%06%08p%9Bv%AE%C2%00%0B%228Pp%E0%EE%00%BDr%FD%16%0CP%21%C5%08%0E%15%200Hp%20%AFb%84%1D%964%09RC%05%88%0C%13%1E%28%18p%D9%A0%860x%DA%88%B1%B2%A4G%8C%13%1E%1A%24.%0D%21%8D%25H%88%FC%D0Q%F3EJ%11%12%05J%13%2C%E0%25%14%29P%9A%285%2A%C4G%0E%94%08%C2%07%06x%02%AA%D5%AAT%A5Du%C2%24i%8F%8C%E8%03k%FEX%82%05%EBU%2BV%AAN%91%CAD%854%F8%0E%85d%C9%8AE%FE%95%ABV%A8%E64%00%0F%E0A%1EX%F2%C9G_y%84t%C0%9F%40J%CC2K%80%F3%C5rI%0E%07%0E%94%C4%82%0C%8A%22%C5l%FC%25%C1%20%2Bi%1C%10aAJ0%08%C9%87%06%85%18%E0%88%24%12%B4%84%88%29%AA%18%60%2C%8F%B48%D0%8A%02%C6%28%23%00%26%CEg%A3%8C%26%C6%02%E3%8D%00%AC%E8%23%2C%8E%00%29%24%7DE%DE%B8%84%8F%F4%ED%D8%E2%92C%3A%99%22%94%E4%25%29%23%95D%1A9d%96J%0E%08K%23F%D6%F7%0A%98J%8AI%E6%95f%86%F9%8A%7Dg%3E%B9%A6%2B%AE0b%E4%9Bq%CE%09g%2Br%2Ay%27%9EF%DE%D7%0A%9Fz%FE%D9%CA%22%7D%0AJ%E8%8DJ%08%CA%CA%A1%3C%FE%C9%CA%A2%40%26z%1E%2B%8AD%EA%E8%2A%95%DE%88%C4%A3%AC%AC%92%08%90%9Bv%EA%29%A8%8F%AE%A2%CA%A7%9A%AEb%AA%2A%88%80%AA%AA%2A%FE%A9%B4%9A%AA%2A%B0%CA%2A%23%12%A6%A6%12%2B%90G%D0%9A%0A%2A%87%00i%84%AE%A8%00%2B%EC%AF%A8%9Cb%C8%B1%C5%2A%0Bd%11%BF%9EbJ%21%CF6k%0A%29%9Dp%B2%C9%26%9Adr%89%25%95P2%89%24%91%3C%E2H%23%8B%24%82%C8%21%86%10%22%08%20%7F%F4%B1G%1Ew%D8A%87%1Cp%B4%C1%86%1Ah%981F%18_p%A1%05%16VL%11%85%13L%2C%91%84%11C%00%E1%C3%0E9%DCP%83%0C1%BC%C0%82%0A%28%98P%C2%08%22%80%F0A%07%1Ch%90%01%06%17TP%C1%04%12D%00%C1%03%0E8%D0%C0%02%0A%24%90%00%02%07%14V%00%5Ez%F1%F5%16DE%24kJ%29%A5%902%8A%28%A1%80%F2%89%27%D9n%92%09%26%E0RB.%24%8E0%92.%22%ED%0A%F2%87%1F%7C%CCk%2F%BEn%EC%7BF%19%FFz%C1E%16VP%21%05%14O0%91%C4%11D8%0C%F1%0D4%C8%00%83%0B%17g%BCq%08%20x%00%B2%FE%C8%24W%40%01%CA%2A%B3%DC%00%030%2B%10%B3%CD7%E7%95%B3%CE%0F%15q%8A%B4%40%93Bt%D1%9F%24%DD%ED%B7%95%8C%5B.%BA%EA%1ER%88%20%81%F8%21%2F%BDu%CC%01%C7%1Bm%AC%91%86%19d%00%DC%85%16WTa0%C2J%1CQ%84%10%3F%F0%A0%03%0E5%C4%FDB%0B%2B%A4pB%09%24t%AC7%07%1Bh%40%B2%05%7F%A7%1C%B8%CB%2F%1B~%B8%01%D4%27%9E%D7%5E%D8c%88%90%E3%3F%07%3D4%E5Hk%AB%09%D3%E1%92k.%23%8A%24%E29%21%81%5C%CD%87%1Exl%0DG%D7i%A0%016%18%5DlA%B6%D9O4%A10%C3n%8BX%DC%E6%C6%82%14d%8C%04%23%08%C1%07%3C%80%BC%E4a%C0%02~s%DE%CAZ68%98%CD%8Cf53%40%016%A88%EC%F1%A5%21D%80%9C%D0D%21%0A%A3UN%7C%DE%0A%D7%24%CAu%AE%A9%19%E2s%A1%CB%1A%E9%E6%10%07%D4%A9%8Eu%00%13X%ECf%C7%04%25%20%A1%08%84A%C8%DD%EEj0%83%8A%01Ox%1B%EB%D8%02%917%B2%0B0%0Fp%13t%19%E1%2Cx%C1%0Cn%F0f%87Y%DC%CE%16B%80%07%B0%ACe%60%A4%60%03%C68F%06%98%D1%8C%0BHc%1A%A5g8%99%B9%11%01p%84c%CD%E6H%BD%3A%5E%91%83x%21%C0%1C%0BS%BD%3B%E6%11gY%CC%A2%07%B3%F7%96B%1A%B2%2F%40J%A4%22%17%C9%C8F%3A%F2%91%90%8C%A4%24%27I%C9JZ%F2%92%98%CC%A4%267%C9%C9N%C6%24%20%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%2B%C4%00%5E%3F%0A%18%1B%A0l%D8%8C%04%0E%14%180%40%80%D9%B3%15%0FP%90%C0%00%C1Z%B2p%27%2AX%21%A3%84%86%08u%0B%10%18%006%EF%C3%03A%C6P%19%22%83D%06%BA%07%06%18~8%60%C9%A0%40t%C8P%11%12%83%84%06%07%92%277%1C%22%89S%25F%81%E6%90%91%12D%C5%02%D1%0DO%28JeJ%94iF%7F%E4x9%21%00%F6%C2%0C%7DZ%B5Z%95%AA%94mJ%89%AC%28%F0%AD0%01%1AU%AF%5C%B5b%B5%0AU%29Py40O%28%C0J%29X%AF%A2%FE%0Bg%A5%2AR%8D%ED%09%81h%82%05%3E%BC%F4V%A0%B2%F4Fo%B0%04%22%F6%EC%DD%BBJ%15%E75%FD%82%12%E8%F1J%2C%F8%85%F7J%2B%81%5C%F0_A%06%90%A1J%2C%10%E6%17%DD%23%2B%2CHP%00Q%88B%20~%EDu%E2%84%85%04%D5%60%09%84%1B%B6w%8A%18%04%80%28P%07%84%90%18%21%7B%AD%E0%E1%80%8A%008%80%C7%2B%B2%90X%60%21%1E%D0%28P%12%B2%E4%A8%23%2C%97%E0%E0%E3%40H%08I%A2%28Q%14v%24%00H%E8%B8%0A%1A%07%3CIP%12%2F%3AbeAQn%A8%E5%96%03%25%C1%E1%97%60%02%20f~%8D%94%F9%A3%84i%AA%29%A6%81m%96%89%84~q%82%99Dt%D21%A2%A6%99%AE%BC%A7%A7%9B%7D%0A%F7%A7%9C%EF%B5%B2%C8%9EH%087%DD%A1n%8E%C7%0A%A3e%26%E1%A8%22%88%B2b%E9%2A%89T%BA%CA%A6%99%AA%89%04u%AB%A8%D2%A9%9C%A1%AA%A2%0A%22%88%86%9AJ%2A%A8z%AA%CA%AA%FE%A8%B4%2A%27%AC%A8%1C%B2%E7%11%A9%A0%82%CA%29%86%DC%AA%EB%29%A6%F4%AA%E6%11%BB%9AbJ%21%7B%1A%01%AC%29%A5%20%AB%A6%11%C6%96B%0A%21%7B%16%C1%2C%29%A4%0CR%AD%B4%A4%8C%22%C8%B6%DD%8A%F2%AD%9AD%84%1BJ%20%7B%0E1%CA%28%A1%9C%BB%A7%10%A2%88%12%0A%28%80%EC%19D%BB%A0%7C%F2%87%BD%F9~%E2%89%1F%7B%02%91%AF%27%9D%00%AC%26%10%FEz%C2%09%1F%01%7BB%F0%26%0C%AB%F9C%27%9Dp%B2%C9%1E%7B%F6%C0%89%C5%9A%E8%91%F1%26%9Bh%82I%1E%1Fk%92%C9%25x%EC%C9%83%C9%97Xr%C7%9E%3B%9ClI%25%920%B2H%22%88%1CbH%21%84%08%12%C8%1F~%F0%B1%87%1Ex%D8Q%C7%1Cr%C0%E1F%1Bk%A8%91%86%19d%8C%11%06%18%5El%A1%05%16VP%21%05%14N0%B1D%12G%14%21D%10%3F%F0%A0%03%0E7%D40C%0C0%BC%D0%C2%0A%29%9C%60B%09%24%8C%10%02%08%1Et%C0%81%FE%06%19%60%60A%05%15L%00A%03%0A%24p%80%01%83%B55%D2%0E-WB%C9%24%92%40%F2H%236%E3%7C%08%CF%3E%03%DD%C7%1Ey%DCQ%07%1DI%C3%D1%06%1BN%9F%11u%18%5ET%9D%C5%15UL%21%C5%13M%2C%A1%04%12E%0C%11%84%0Ff%A3M%C3%DA%2F%B8%C0%02%DC%28%CCM%82%08%20%7C%90%F7%06%7C%FB%1Dx%04%0F4%B0%80%E1%82%B5%E5%E4G%3A%CC%FCx%24%91%3C%E2%88%CD%8A%E4%8C%F9%CFAs%EE9%E8q%BC1%BA%D3f%94%21%F5%17%5Dh%B1z%EB%AF%7B%3D%BB%11%B6%E3%AEC%0Ei%F3%EE%BB%0A%29%04_%C2%08%22%08%C1%07%F4%B6%B7%BE%5D%A0%02%14%98%80%04%20%E0%00%06%28%00%01%06%88%9E%5BB%A2%03%C7ANr%8Eh%C4%CD%BC%D73%F0%09%ADs%9F%93C%1CDG%3A4%40m%7D%ED%C3%9A%15%A6%10%85%27x%0DlF%18%9B%FD%F0%A76%B6%ED%2Fns%03%A0%00%F3%C6%01%E4a%E0%02%B5%7FK%E0%02%1F%C0%80%E7A0q%13%FCH%0E%28%21%89HH%AE%11%1A%B4%DC%F7%80%264%3D%8CO%84%24%5C%C3%D3N%E7%85%14Z%A1u-%8C%1D%D8jw%3B%B3%D1pm0%B8%A1%DC%FEG%3C%E3%E9%0Dy%7D%0B%E2%04%26%10%01%066%80%01%09%40%C0%E1%06%E3%96%B7p%84%00%0C%08d%20%17%40%C8B%2A%E0%90%88L%80%22%15%89%80F%3A%F2%00%90%8C%A4%01%26I%C9%08%16%E0%92%98%24%80%267%998%B6%0C%C0%92%98%14%0C%27%3B%E9I%B6%8C%E5%94%7D%2C%CB%F4%F6%C4%CAV%BA%F2%95%B0%8C%A5%2CgI%CBZ%DA%F2%96%B8%CC%A5.w%C9%CB%5E%FA%F2%97%C0%E4I%40%00%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%95g%80%00UO%0E%18%20%00kV%91%01%10%280%40%80%EB%D5%AF%1F%1Dt%B8%E0%20A%01%B3%5E%D1j%BC%10%E4%07%8B%0E%12%16%1C%20%20%40%80%5C%8D%14%BA%C8%F9%B2%C4%06%09%0C%0F%DC%FA%FD%7B%D1A%99I%8A%F6%A4%B1%12%C4%C5%07%0A%08%E22%9EX%00%0B%A7P%9A%20%0D%A2%13%86%09%0E%0F%066W%0C%D0%A4%93%AAS%A3%3AUR%C4gM%93%0A%AA%2B%C6%90%D4%8A%D5%2AT%A5%40G%F2%E3c%40%EE%89%1B%02%B5Z%EE%3B%95%A9Q%9B%C8%2C8.qA%1BU%CB%7B77%D5g%03%F5%88%04%B6%FE%90%CA%CE%7C%95%2AH3%BEGD%D2%C9%15y%ED%9A%8E%A8%87x%82%91%2B%F7%E4Y%91%2A%93z~C%0C%7C%B4%82_v%AC%A4%A2%C7%04%FE5%94%C0%19%A8%BC%C7%CA%83%88%84%90%20C%02X1%CA%80%CC%B1BI%0E%132%F4C%26%18j%07J%16%8Bu%88%10%09%86%DC%97%1F%2B%A7%C01%9D%89%08Ip%87%80%2B%AE%F2%C7%050%22d%80%18%A7%84%F8%20%23%2B%E4xP%00N%7C%F2%9Ev%9B0%21%E4A3L%A2%22%81%FA%81A%C0%92%05q%A0%1C%86%0F%A6R%87%03T%12%E4%80%1D%AB%F8%B8%8A%20%1DtY%D0%11%3Ejh%83%99%06%19q%A4%27Nh%C6%A6%40Edh%0A%19%FD%CDY%90%9B%0F%B2%B2%88%9E%08%15%D1%E7%2A%8A%00z%90%11%AB%24%BAJ%22%86%B6i%9E%2A%AA0%DA%28AE%3C%9A%0A%22%93R%AAJ%2A%A9%A0%82i%A6tr%8A%8A%A7%A0%D29%2A%2A%A7%18R%2A%00E%A0z%8A%29%FE%AA%96J%C4%AB%A6%94R%C8%AAD%D4ZJ%29%84%AC%3A%C4%AE%A4%902%08%AE%A5%902%CA%28%82%F8j%AC%28%A2%24%5B%AA%10%A3%88%12J%28%81%AC%2A%84%B4%A1%80%02%C8%AAAd%0B%CA%27%7Fp%FB%C9%B8%9E%F8%21%AE%27%9Et%D2%C7%AA%40%A4%DB%09%27%7C%B0%FB%EE%26%9B%EC%B1%EA%0F%9Cl%A2%89%26z%AC%EA%83%BE%99%60%92%C7%AA%3D%04%7C%89%25w%10%7C%B0%25%95%D8%B1%2A%0F%0CSBI%1D%AB%EEP%09%25%93HB%C7%AA%3AL%92q%24s%AC%9A%83%24%91%40%F2%88%1C%AB%E2%10%C9%23%8F8%02%C7%AA7%B4%DC%08%23n%ACjC%233%2F%D2%C6%AA50%B2%88%22%89%AC%B1%2A%0D%40%23r%88%1A%AB%CE%60%F4%21%85%A4%B1%AA%0CL%13B%88%19%AB%C6P%08%21%82%08R%C6%AA0%0C%22H%20%80%90%B1%EA%0B%60%FF%E1%87%18%AB%BA%60%B6%1F%7C%80%B1j%0Bl%EF%A1%87%17%AB%B2%B0%C7%1Ey%E0%D1%C5%FE%AA%2A%E4%91%C7%1Dv%CC%D1F%1Bl%AC%91%06%1Af%94A%06%19c%84%01%86%17%5El%A1E%16X%5Ca%05%15RD%01%85%13M0%B1%84%12H%1CQ%C4%10A%00%F1%83%0F%3C%EC%90%03%0E6%D4%40%C3%0C1%C0%00%83%0B-%B0%B0%82%0A%28%A0p%82%09%24%8C0%82%08%20%7C%E0%01%07%1A%60P%81%04%0F%2C%80%C0%5E%5D%C9y%92%0A%80%D7A%C7%1Cr%C4%01%C7%1Bm%ACa8%E2f0%EE%B8%17%5Dp%219%16VT%81%B9%14P%3C%D1%C4%12K%24%81D%11D%90%0E%04%EA%3B%E8%80%C3%0D6%BC.%03%0C%2F%D0n%7B%0A%29%D0%9D%09J%F0%BB%10%80%C0%03%1D%D8%80%06.%40%81%084%40yo%B9%CAYR%92%02%E9Q%CFzopC%F6%D4%90%863t%8F%0Cbx%5C%F8%B4%A0%85%CA%5DN%0A%E8S%9F%E7%92p%04%23%10A%08B%A8%0B%0Fx%60%3F%FC%D5%60%062%88%DD%0Bjw%BB%00%EE%AE%04%F1%BD%03%9E%F0%3A%C0%81%0Dd%80%81%11p%80%F2%C82%80%09%A6%04%05t%A8%DE%F5%06%B7%06%0E%22nqb%08%C3%17%C0GB%13Va%0A%29%EC%DC%E7%90%60%84%D1%09%C1t%A8%D3%C1%EAn%E0%3A%1C%F2%CF%05%B6S%81%0F%07%18D%03%0E%B1%88%19%C0%00%12%1F%C0%00%04%18%E0-%5DY%C9%09%E4p%3D%0Dj%EFp%89%03%E1%F7%BA%20%B9%2CX%EE%8B%99%7B%82%13%3C%07%3A%D1%0D%21%86%F3%EBA%FDX%D7%3A%1C%C6%A0%7F-X%C1%0A%E6%08%C4%DF%89%20%04C%24%A2%02%8Fh%01%0A%20%8F%01%098%00%20%9DW%12%01%20%E0%96%B8%5C%DE%01v%C9%CB%03%18%E0%97%C0%FCe%01%86I%CCb%12%E0%98%C8L%E6V%96%C9Lf%F6%A5%2F%C9Tf3%B9%D2%17%09%D2rU%D8%CC%A66%B7%C9%CDnz%F3%9B%E0%0C%A78%C7I%CEr%9A%F3%9C%E8L%A7%3A%D7%C9%CE%A1%04%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5Dj1%80S%A6%2F%05%14%280%20%00T%96%02%1CDP%40%D5%EAU%94%02%3C%B8%F8%40%81%C1%01%02%02%9E~%25Y%E2%0A%14%1C%24.8%40%405%EDZ%91%27%E4%F8Yc%C5G%0A%0D%10%12%14%10p7%24%869%9A%22%09%82%B3%85%88%0B%0F%12%0Ex-%DCq%81%1AR%A4%3AQ2D%07%8C%92%19%18%08P%F6X%E0%0B%A9U%A8Hy%AA%94%28O%99%1E%0CF%7B%FC%A1%A9%15%2B%D4%A5%40%5Db%04%C7%84%EC%8E1%22%B5%B2%7D%3BU%A9P%93%A2%88%FE%ADqC%A0%E1%C3o%ABB5%AAMl%E6%19%21%C4Q%05%9D%D5%EDU%A9%02%FEu%C0%9E%B1%80%96Q%D1%BD%7F%8FT%83%3C%C6%00M%3A%A9%9F%BFJ%13%12%F7%18a%40R%BF%AA%7F%FFQd%18%80%9FE%1A%FC%E1%DF%81%A8%D1%E1%C0%80%15-%B0%06%2A%07%AA%22a%2A%82x%C0%20E%04d%11%8A%7F%12N%08%C9%0C%17RTD%26%1DN%98J%2A%98%18%11%E2D%26%20R%E2%89%27%862%86%80%2BBtA%1E%A8%A8%92%8A%89%A8%98r%87%045B%94%00%19%A4%C0%08%23%2A%A8%14%F2A%90%0F%09%20%C5%27G%22%89d%2470%F9%10%0F%93H%29%E5%29%A7pb%05aV24B%20Hri%E6%29%A2%B0%A1%40%98%0CE0%87%29eri%8A%29%A5%ECQ%01%9B%0B%15%E0E%28g%CE9%E7%21%28%E0%A9P%00Jd%22%A7%9FtR%92%84%A0%0A%C1%D0%08%A2t%96RJ%27Z%0C%C0%28B%1A%EC%E1%A7%A4%9C%8A%02G%03%97%1E%D4%00%1C%A4pZ%0Af%A4%8C%B2%C7%06%A1%22%14%84%A9%FE%98%8D2%0A%232%B4%9A%10%10%A8%A6%3A%0A%25HLf%ABA%3F%C8%2Ak%27%5E%D0%F8%2BB%3F%88%12J%28%A2%08r%ECB%3F%84%02%CA%B4%80%3C%AB%D0%0F%D3~%F2%C9%1F%D6%26%E4%83%B6%9Ex%E2G%B7%08%F9%10n%27%9D%8CK%AEA%3Dp%E2%EE%26%7C%ACk%10%0F%9B%D4%AB%C9%1E%F2%16%C4%83%26%9Ad%92%89%1E%F9%12%B4C%26%98%5Cr%09%1E%01%0F%A4%C3%25%96XR%C9%1D%09%0B%A4C%25%95PBI%1D%11%03%90%03%25%93L%22%09%1D%19%E3%20%89%24%91D2G%C67D%02%C9%23%8F%C8%91%B1%0D%8F8%E2H%23pd%5CC%23%8D0%B2%88%1B%19%D3%B0%C8%22%8A%24%D2F%CF%89%24%82%08%22kd%3C%C3%21L%1B%92F%C62%14R%08%21%84%A0%91q%0C%83%0C%22%88%20fd%0CC%20%81%00%F2%07%19%19%BF%F0%C7%1F~%F8%21F%C6.%F8%C1%07%1F%7B%80%91q%0B%7B%E8%A1G%1E%5Ed%BCB%FE%1Ex%DCq%07%17%19%AB%60G%1D%84k%91q%0At%D01%87%1CXd%8C%82%1Cr%C4%01%87%15%19%9F%00%C7%1Bo%B8QE%C6%25%B4%D1%06%1BlH%911%09k%AC%A1F%1AQd%3CB%1Ai%9Ca%86%13%19%8B%60F%19d%90%B1D%C6%21%901%86%18a%2C%1A1%08a%80%F1%85%17Gd%FC%81%17%5Et%C1E%11%19%7B%C0%C5%16Zh%21D%C6%1Cd%81%C5%15W%FC%40%BD%15VTAE%0F%19k0%85%14%E4%EF%90q%06Q%40%F1%C4%139d%8C%81%13M4%C1%C4%12F%14Q%C4%10C%08%11D%10%3F%F4%EFC%0F%3C%E0%C1%0Ev%A0%83%1C%E4%00%077%B0A%0Dh%C0%C0%19%C8%20%06%10%84%C1%0B%5E%E0%02%17%B4%80%05%2CX%81%0AT%90%02%14x%F0%04%26%08a%09H0%82%12%8A%20%04%1F%E8%00%070P%81%084%00%01%06%40%8BZb%82%81%25%D8P%09I%40%C2%11%EAW%04%22%E4O%7F%FE%40%F8%C1%FF%00%28%40%02%1E%F0%06%09%B4A%03g%E0%40%09R%D0%82%17%5C%81%069%D8A%14%9C%E0%8A%22%24%E1%09A%E0%01%0Eh%C0%02%13p%80%02b%98%16_%BD%E4%02I%C8%E1%0E%7B%F8%C3%20%00%21%88%3F%00%E0%00uP%40%1C%20P%81%0Bd%A2%0C%1E%18%03%09B%11%83R%A4%A2%15%B1h%82%12%8C%90%84%238a%08%40%90B%0Ed%C0%02%12%10%E3Y%CA8%13%0B%F0%D0%87%40%F4%DF%FF%04X%40%03%DE%11%8F5p%60%04%9DH%C1%28n0%05%A8%FC%60%21%0F%89%C8D%86%60%91%1F%F0%80%07T%B8%81GFR%01t%29%A3%19%5BR%816%BEq%88%014b%0E%90%98%C0%1A%2C%90%06%7B%7C%A0%13%2B%D8%82%28j0%95W%04%A1%21%5B%29%02E%C22%96%B3%E4%00%076%A0%01%16Fr%010%AC%CA%0C_%12%00%02%98%F3%9C%E8L%27%01%06%C0%CEv%BA%F3%9D%F0%7C%A7%00%E6I%CFz%DA%93%9E%E8%27t%E7%3C%9D%B2%CB%8C%F9%F3%9F%00%0D%A8%40%07J%D0%82%1A%F4%A0%08M%A8B%17%CA%D0%86%3A%F4%A1%10%8D%A8D%A1%12%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05%28%29%94%85%01R%99A%24u%8A%24h%8D%0B%01O%5B%9EH%94%8A%D4TAo%B2%E8%80%905e%06%3E%ACX%A1%1A%C5%89%EA%1B-AVP%18P%96%24%038%AB%5C%B5Z%B5v%13%A4%40o%E3j%80P%A0.H%02%5EJ%B9Z%BC%B7o%A2%3Fn%B2%C4%DD%00%21A%81%00%869%FE%D0%B4Xo%2BV%AANy%22%B3%C0%82%15%C9%2B%28%5B%1E%809%F3%C5%17%90Z%B5%F2%2C%5B%AD%1D%0A%04%3D%E8P%A1%BA%C0%00%01%AD%5DK%D4%C0G%B6q%E3%AB%06%7D8H%00C%EF%DF%C1%85%3B%5C%B0%26%D5%F1%E3%8CV%2C%2C%C0%605p%E9%0E%0B%FE%7C%21%95%B6%7CyH2%1E%12%F0%1D%20%3Ax%84%3E0%ADZ%C5j%3E%7DV%9B%98%B8o%18%E0%FB%7B%8408b%DF%80%AB%8CB%86%01%16%ED%F7%9F%06~%A8%E2%E0%83%0E%A2B%87%03%FFu%F4%C0%1B%A6%A4%A2%E1%86%1A%06%E2A%85%1C%11p%05%28%1A%A2%82%0A%87%8F%D0%00%E2F%01%2C%91%89%89%26%9E%02%E3%25F%AC%B8%91%0B%8C%9C%A2%E3%8E%3A%82%22%06%826b%94%C1%1E%A5%98b%E4%91%A6%90%22%07%85A%5E%A4%80%19%A2%94%22%E5%94R%FA%C1A%93%17%0D%40%C5%26%A4t%E9e%97%8C%C4%80%E5E%40H2%CA%99h%8EB%CA%24B%8Ci%D1%08%81%88%22%E7%9Crn%E2%05%90nJT%81%1C%A0%84%E2%E7%9F%A1%7C%22G%04yN%84%40%17%9B%80%A2%E8%A2%8A%FA%D1A%A1%12%09%B0%04%25%9FTji%A5%89%CC%00%A9D5%24%D2%C9%A7%9E%84%1A%AA%24P%60%B5%E9C%1F%D8%C1%C9%AA%AC%AE%8A%09%19%FE%09%9C%FA%D0%03hd%B2%C9%AD%B8n%A2%89%1C%13%C8%1A%DE%14%94h%22l%26%C4%0A%CB%07%09%BE%F2%07%C4%22%97%5C%82%89%B3%CF%5E%82%08%10%C96%94%82%1F%96d%ABm%B6%8EDAW%B5%0AY%C0%06%25%95%94K%C9%B9%94LB%1A%B8%0A-%00F%24%93%C4%2B%EF%24%92%B4q%01%BB%0B%D5%10%C9%BE%91H%C2%2F%1F%2A%E0%CB%10%0D%8F%14l%B0%20%3C%28%28pA34%E2%C8%C3%89%3CQ%D8%C2%0C%C9%C0%C8%C5%8C%C0A%B1C1%28%E2%B1%22ml%DCP%0C%88%94%8C%08%1B%223%04%83%21%85%18b%88%1A%29%2F%F4%02%214%13%82F%CC%0A%B9%20%C8%CE%82%98%81sB-%00%22%F4%1Fd%FC%8C%10%0B~%24%ED%C7%18F%1F%B4%02%1F%7BD%1DF%D3%06%A9%90%C7%D5yxAuA%29%D8%E1%F5%1D%5DlM%10%0At%94M%87%16b%0Ft%82%1Cl%CB%81E%DA%02%99%00%C7%DCpX%017%00%25%B4%A1w%FE%1BU%DCM%C2%1A%80%AF%21%C5%DD%23%A4ax%1AQ%DC-%82%19e%98a%86%13w%870%C6%18b%88%B1%C4%DD%20%80%A1%F9%17I%DC%FD%81%17%5Et%D1%C5%11w%7B%B0%85%16%A8%13qw%07X%5C%81%05%16m%C2%BD%81%15UTa%C5%0Fwk%20%C5%EER%F4pw%06P%04%0F%85%0Ewc%D0D%13L4%81C%F1K%28%A1%C4%125%DC%7D%C1%11%D4%1F%A1%29%DC%16%10%A1%3D%11b%C2MA%10%E0%07%F1%C2%DD%13%FC%E0%C3%F9-%DC-%01%0F%3B%B4%AF%1D%DC%12%E4%80C%0E9%A4pw%046%E4o%C3%09wC0%C3%FF30%C1%DD%1E%10%83%02%C6%60%04ws%80%0B%5C%F0%02%17%84%E0n%0D%60%81%04Y%00%02%08%AA%E0%82%29%F8%10%DC%18%80%82%0E%9E%E0Q%1B%2C%81%09LP%82%0D%DCm%01%24%18%81%0AE%C0B%16%86%E0%85%2F%14A%0C%5B%28%C3%19%CE%D0%854%8C%21%0CuH%C3%1A%86%00%04%F5%1F%E8%00%070P%81%084%20%01%07%20%00p%14%16%13%05%C8%B0%87-%84%A1%0BC%20%82%11D%91%8AP%CC%21%14m%B8%C5%17%02%D1%03%1C%C8%80%05%24pD%03%10%805L%84%89%02%40%C0%C6%1F%FE%90%8D%40%04%E2%07%E0%E8E8%CE%11%8Ex%CC%23%08%DE%18G6%DE%B1%8F%1F%08%E4%07%3C%D0%81%0D%10%D1%88%080%E3%12s%92%80Az%C0%91%81%F4%80%24%1F9IAF%B2%92%8E%AC%24%26%059IIv%A0%93%93%EC%80%289%B0%01%0D%5C%60%02%10%60%00%02%7C%B3H%9C%24%60%94B%14%A5%2Cg%09KZ%8A%92%90%1C%C8%E5%2C9%60KX%E6%92%97%B5%24%25%295%20F%09%3C%60%01%ABD%A3N%FA%23%80f%3A%F3%99%D0%8C%A64%A7I%CDj%3E%F37KL%E3%DD%B6%C9%CDnz%F3%9B%E0%0C%A78%C7I%CEr%9A%F3%9C%E8L%A7%3A%D7%C9%CEv%BA%F3%9D%C2%09%08%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05X%19%E5%07%03R%99E8%C1%9A%CA%AAM%82%A7-O0z%C5%F5%D5TX%A4%AC%04%C0%8A2%03%9FV%AE%5Cu%5D%FBJ%D2%0A%B2%24%19%BCI%856%AD%5D%B5k%5B%E1y%00%F7%23%01.%A3Z%09%1E%9C%D6%14%AB%BBi%5B%8D%922%B6%AFF%1F%97XIf5%B8U%2A9%0FF8r%85v%F0%AAT%89H8%BE%E8%A2%D1%AAU%93%27%AB%DAc%81%A0%13R%83Y%A9%3A5JS%18%04%A3%25f%C8%93J%95%AA%D3%C0U%11%02q%F0%81%1D%D4%9FK%85%CA%E4%A8%0E%8B%DC%0E%17%A4%29%95%AA%BA%EF%EB%8CT%2Cl1i6%29O%95%14%FE%E99%F3%E3%2At%84%04%B6%7CB%C5%BE%BA%7BG1%1C%0E%E8%02J%14%27I%85%E8%84YBCB%E3%F3%03%ED%40%89%29%A7%14%C8%DE%29%A8%60%B2%C4%7F%0EQ%60G%26%8F%04%F2%86%16E%C0%F0%01%04%03%00%08%40%0B%89%94%E2%A1%29%04%16%F8%89%18%06T%E4%C2%1E%7C%A4A%85%0F%2Ah%00A%02%04%40%87A%1E%A3%90B%8A%87%1F%92%22%87%03%18%0D%B0C%18O%E0P%C2%05%0E%20P%C0%00%0C%3E%E5%40%1A%9F%8C%E2d%8D6%92%E2G%07%1C5%40%C3%0C%22T%C0%C0%01%04%08%10%40%92E%11%20%C5%25%A1%84%22%CA%99%A28%B9%88%0C%209%90%81%04%0B%180%80%97O%05%40%04%24%9F%7C%02%CA%9Ee%86%12%89%10%23%05%90%40%02G%D2y%94%0A%83x%A2%A8%27y%E6%89I%17%25%96%14%C0%9C_%1Ae%81%1C%9Bp%A2i%27%9Cz%B2%C9%1A%0D%A8T%29Q%09ta%89%26%9Al%A2j%A6%9C%D8%A1%81%86%FE%1D%0D%B0%84%23%97%60%92%C9%AD%99%A0%3AH%0B%B0v%84%03%21%95Tb%C9%B0%97%D4%8A%08%0F%BDr%D4%C1%1C%92L2%09%25%D0%0A%FB%88%15%05%24%AB%91%04d%3C%12%C9%B6%92t%3B%89%24g%F0e-F%07%3C%81%88%23%8E%3C%A2.%24%90D%22%C7%AB%E3%5E%14%40%0F%81%2C%C2%08%23%8D%E4%8B%EE%1Eo%C5%7B%91%0Au%20%82H%22%8A%2Cb0%23%82%10%01%A6%BF%10a0F%21%86%18r%C8%21%02%27R%88%15%B81L%D1%02T%04%22%C8%20%84%10R%08%C4%86%84%01%81%C6%14%0D%00D%1E%7F%00%12%88%C7%82%7C%9C%06%95%28K%14%C0%0Bp%F0%D1%87%1F%3C%FF%D1%B2%1Cl%D6%2CQ%07c%E4%91%87%1E%7B%A0%C8%07%1Fv%FC%20%80%D0%11%3D%20E%1Du%D8q%C7%1Dx%18%8D%C7%13%19C%ED%D0%01F%C0%21%C7%1Ct%D0A%B5%1DuX%11%81%D7%11%91%F0%06%1Cp%C71%F6%1Ca%7C%C0%B6D%22%B0%D1%86%FE%1Bo%BC%5DF%BFwG%24B%1Ak%AC%C1F%1A8d%18%B8D%21%9C%81F%1AjH%B18E%20%94a%86%19g%401%F9D%1F%8CA%C6%E7Ml.%91%07%60%84%11%86%18K%88%1EQ%07%5E%B4%FEE%12%AAC%C4%C1%16%5Cp%D1%85%11%B1%3F%B4%01%16Yh%A1%05%11%B9%3B%B4A%15VXq%05%A0%C13%94%81%14SPQ%C5%0F%C93%84%01%14QH%21E%0F%D1%2F%84A%13N%3C%01%C5%0E%D9%2Bt%C1%12%E47%91C%F8%09Y%80%04%12I%2Ca%03%FA%08UP%84%11F%1CA%03%FC%07Q%20%C4%10C%10%114%FE%04%A1%C0%0F%80%10%84%20%C0%00%80%05%99%00%0Fz%E0%03%1F%F0%0A%81%03%91%80%0Et%B0%03%1E%3C%07%82%02%89%C0%0Dp%90%03%1Dh%07%83%00%80%00%0Dj%60%83%1B%A0%00%84%00x%80%0Cf0B%13%A0%F0%010%80A%0Cd%20%1A%10%3A%A0%05.p%01%0CF%80%C2%06%AC%80%05%FE%2ChA%08z%98%02%15%A8%60%05%C4%01%21%03N%80%02%14%A4%C0%03%28%5C%00%09L%60%82%13p%20%8A%23%20A%09J%B0%01%14%2A%40%04%22%18%C1%082%E0E%10%84%E0%8Cd%04a%02%3C%F0%816%5E%00%85%09%E8%40%07%3C%E0%81%D6%80%10%01%1B%E0%80%1E%2B%80B%04h%E0%8F%1B%98%00%0A%0F%80%01%0Cd%20%03%82%04%E1%01%2Cp%81%0B%60%40%02%83%AC%40%05%18%B96%10%1A%80%02%98%AC%80%B80h%80%09L%80%02%13%E0%11%08%0B%10%01%09x2T%A3%84%40%04V%89J%0C%16%E0%01%0F%80%00%04%18%80%C2%028%00%96%B8%C4%A5%2Ce%B9%CAR%9A%D2%93%99%94%A4%24-%40LF%16%B2%90%87%CC%00%207%90G%3Dr%40%8E%1C%D8%40%06.P%81%084%20%01%07%28%D4%C2pB%00%07x%D3%9B%B9%DC%A5%2A%7B%29%81r~2%98%C3ld%23%91y%C8e6S%8E%F0%EC%80%1E5p%01%0A%CC%12%01%06%B1%E8%D2%A8zB%00%064%E0%9F%0D%F8f.c%B9Kr%9A%F3%93%C0%1Cf1%D7%89%CC%3Fj%80%99%10%8D%E6%064%80%81%0AH%C0%01%0A%C8%26%A5%B6y%93%01%2C%80%01%FE%04%E87Gz%CB%82%1A%B4%9C%BF%3Cg%26%17zLej%C0%A5%7F%3C%A4%05%260%CB%04%E4%13I%1C%ED%E8GA%CA%D3%90%8A%14%9C%B0%14g%2FW%89RO%26T%A1%EA%3C%A6R%2F%60%01%0AD%C0%01%0B0%D2F%83%F2%A5%AAZ%F5%AAX%CD%AAV%B7%EA%A5%00%08%A0%ABXE%A1X%C7J%D6%B2%9A%F5%AChM%ABZ%D7%CA%D6%B6%BA%F5%ADp%8D%AB%5C%E7J%D7%BA%DA%95m%01%01%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05T%01%C5%E7%02R%99C2%B5%9A%9A%8A%0D%82%A7-M%20Z%C5%8A%D5%D4%A9%A1%AA%04%C0%8A%12C%9ET%AB%D2v%F5%FA%15%D2%0A%B2%24%17%AC%29%95J%95%DD%B4%5C%BB~eu%E7%01%DC%8F%03%B0%7CB%85%2A%95%E1%BB%A4R%AD%FD%DA%AA%94%D8%BF%1BuH2u%EA%14%E1%C2%AAJ%BDq%20%82%D1Z%B6S%25%A9%80%7Cq%C5%A1R%A8MQ%B6l%0AO%05%82LD%E5%05%CD%B7%01i%89%17%E4%88%1AE%8A%14%EAR%A6J%01%FAp%D0A%1DU%8B%BF%8A%AAr%DB%A1%021%9DB%89%DA%CD%DB%F7%A1%14%0B%5BH%9A%CD%F8%91%89%E6%09%09%FET%B1%F4%09%14%28%E9%D4%11%BDp8%C0%0B%A9%BC%8CU%B5%B9%0A%9E%60%8DE%9D%3Ay%F2T%FE%BC%A4%23cAd%81%1Fj%81%D6J%27D%D4%07%00%0A%7Fh%B2%09%27%9C%E8%C7%DF%25%5D%18PQ%0E%99%7C%B6%D6%2A%86pp%5B%05m%5C%92I%26%9A8%08%A1%26j%D8v%11%01_%98%82%D7%2A%AA%A4r%0A%28a%14%00%17%03%5EDR%89%25%97%88H%A2%26ul%C0%D1%07%88%D8%15%E3%29%A5%84%B2%09%21%2C%3C5%C0%11%89H2%C9%24%94X%C2%E3%25%81%B4%00R%11%9C%C8X%8A%28%9DT%B2%88%1FS%2CPT%009%00%F2%C8%23%90D%22%25%25%95%14%B2%C3H%0B%BCA%CA%28%9Fd%02%09%21u%90%C1%84%06%01%02%25%82%1C%8C0%D2%88%23l%BA%C9%C8%146%96%04%82%20%9AL%92%08%1Fk%60Q%84%0C%1C4%DA%93%04a%1C%92%88%22%8B%18%8Ah%23%60%98%89R%00E%10%12%88%1Ca4%91%03%0A%FE%1AD%60%E1N%070%11H%21%86%1C%82%C8%A7%8B%2C%92%86%05-%29%C0%C4%19V%08%F1%02%08%144%80%40%01%81%D6%24%C0%0Ew%04%22%C8%20%84%14r%88%AEt%7C%07%D3%04%3A%D8%60%82%06%10%28%60%00%01%034%2B%93%0Am%F8%E1%C7%1F%80H%5B%ED%1D2%D0%14%C0%04%1BL%C0%C0%01%E4%0A%60%EEK%16p%91%87%1E%7B%F0%D1%C7%BA%81%EC%81%04%017%09%A0%40%02%05%0C%A0%EF%BE%2C5%C0%C4%1Cu%DC%81%C7%BF%01%F3a%05%03%3B%090%80%C3%10%ABT%40%0Ek%C4%21%07%1Du%D8aq%1E%5EP%00T%C8%A7%AE%40F%1Bn%C0%01%87%1C%27%F7%19%82%82%1Eup%05%1Ai%A8%B1%06%CD6%A71%03%CC%3CO%F4%00%11c%90a%C6%19i%A4%B1%06%1Bi%041k%D2%19%1Dp%03%17_%84%21%06%19e%98%01t%12%A6b%8D%91%00%27T%A1%C5%16%5Dx%D1%F5%D7O%B8lvF%1C%2CQ%85%15Xd%A1%05%FE%17%5ExA%C5%08sg%14A%0FPH1%05%15V%5C%81%85%16V%A8%20%40%E0%17%21%F0%C2%12L4%F1D%14%86SA%C5%0C%9AB%3E%11%01%26%10%81D%12KP%EE%04%14Q%D8P%B6%E7%14M%10%C4%10E%18q%04%12J0%E1%C3%04%ACc%24%C1%0F%40%BC%1E%BB%0F%19%E4.8%0F%3E%F0%FE%C3%07%8F%0B%8FQ%04%3A%EC%D0%83%0FZ%2A%9F%11%048%E4%D0%7C%93%D2c%04A%0D6T%3FZ%F6%17%3D0%03%0D5%DC%80%1D%F8%169%10%83%0C%E3%9F%80~%FA.%C0%10%C3%0C%DA%BE%3FQ%03-%B8%F0%02%0C%24%D8OQ%03%2B%60A%FE%00%E7%3F%890%00%05%2A%08%20%08%0Ah%C0%13%A0%20%05%2AX%20%03%21%B2%00%12%98%C0%81%1E%98%20D%140%82%12%5C%D0C%1At%8E%08F%40%82%12%08%29%84%0DQ%40%08F8%02%0D%A0%B0%21%09%F8%00%08V%18%BC%17.%24%01%1E%F8%80%0C1%60%C3%85%20%80%03%FE%1D%F0%80%07%80%D5%C3%84%20%60%03%1B%00%22%11%8Bx%10%04d%40%03H%94%1B%13%0Dr%00%0C%3CQ%03%B8%9B%22%15%2F%60%C5%0CdQ%8B%041%80%05.%C0%C5%08%80%B1%20%06%A0%40%05%2C%60%013%9Eq%20%06%98%00%05%D4%08%817%C2Q%02%12%90%A3_%EC%08%80%02D%00%8F%13p%00%1F%FB%08%81%08%18REv%24%C0%03%20PH%8E%F1%91%00%0Ex%C0%22%1D%99%C8%068%20%92%AB%3B%23%01%1A%60I%07d%12%8C%04%60%00%03%2C%A9%80A%0E%60%01%0B%18e%02L%89%CAT%AE%92%8F%03P%80%02RI%1F%3B%0E%20%01%09%40e-%DFxKY.%60%97g%BC%25.%15p%80A%0A%00%01%B8L%401%F9xLd%26%E0jo%14%C0%01%0E%80%00%04%40%F3%8C%D2%9C%A65%8Di%00m%22%60%9A%DEL%E60%5B%99%CAQF2%92%8C%8C%40%21%F3%28%C7%0A%B8s%8Dc%24%A3%05%2A0%01%084%40%99%E3%C3%12%80%BE%8A%22%00%03t%13%9C%D4%AC%A63e9Kr%8A%B2%93%E8d%24%04%F0%98G5%BA3%9E%F2%A4g%04%3Ci%CD%7C%05%00i%1D%2B%40%01%FC%F9%CF%80%3A3%99%045%28%27-%29%C9E%1A%F2%8F%13H%E9%1A%DFY%01%0A%D4%D3%01%0Cx%A6E%2F%CAO%8D%DA%D4%9F%00%15%E8%40%7D%D9%CAQr%F2%92%095%24%20%E7%D8R%97J%00%020Uf%C3%1Ev%94%00%D8T%A3%1C%ED%A8GA%8A%CA%82%A2%D2%A7%24%5Dd%21%85%9A%D2%09H%40%9D0U%805AFS%05%5D%F4%AChM%ABZ%D7%CAV%8C%0E%F2%ADp%8D%AB%5C%E7J%D7%BA%DA%F5%AEx%CD%AB%5E%F7%CA%D7%BE%FA%F5%AF%80%0D%AC%60%07%AB%BC%80%00%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05D%D1t%C7%02R%99%3E%26%99%3Auj%14%1A%04O%5B%8E%08D%AA%94%A9%A9%A7Pq%92%12%20%2BJ%0BqB%89%1A%D5%D5%EBTT%A8%18%A50KR%01%99M%A0%D4%AEm%FB5%2C%AASt%1C%D0%FD8%20%0A%25O%9F%40%E5%5D%3B%AA%D3%28%AFT%E1%A6%02Ev%F0F%1A%876q%EA%84Xq%A8Ni%1A%800%04%D9o%2AU%8E%E6Z%B6Xb%0F%A6L%9A4s%FE%E4%29%0E%05%82H8%81E%95%EA4%AA%3A%0DVK%A4%60%86R%25K%AFcs%E2t%87%C3A%07qJ%99%3E%AD%0A%D4%14%E1%0E%11Xi%24i%92%F1K%C9%FB%FE%94X%B8%C2Q%E4%DE%AAT%ADj4%1E%3B%C2%01I%0C9z%14%A9%3B%25K%97%FC%A8p8%60K%28%D3%E9%AD%82%CA%1AX%B9G%D0%0Ax%2C%C2H%23%F3%D57%89%21%3E%94%05Q%05%7B%98%C2%1Bz%AB%AC%D2%09%11%06%02%00%02%1B%86%20%92%88%82%0CB%A2%88%14%05TtC%25%17%06%98a%22%1D%08%17%C1%16%81%0CR%C8%21%22%2A%C2%C8%22%5E%2C%80%11%01%5D%8C%82%5E%80%AC%9C%B2%86%01t%25%B0%84%1E~%00%22%08%217%22%82%C8%19%17p%E4%81%21C%AA%B7%0A%2B%9C%04%F1%D4%006%C0%A1%C7%1E%7D%FC%11%C8%93%85%C0%D1%9EGDl%82%E1%96%AC%B4%92%C8%06F%A9%60F%1Dw%E0%A1%07%1F~%98IG%0C%23-%00%C7%29%E9%A9%C7J%9C%A6%7C1%80P%19d%01%87%1Ct%E0%99%C7%1E%7C%DCQ%04%01%26%89%B0%88%8B%87%1Ez%C9%0C%3F5%80%C4%1Al%B8%F1%E8%1Ct%D8q%87%13%09%A4%14%80%14%FE%A0h%09%27%2B%AB%FC%11%C1N%05%D4%40%C6%19i%90j%AA%1CrTq%2BK%0E%D0qZ%86%19%AA%92%8A%27P%E0%24%C0%09Y%84A%86%19%BC%AE%D1%86%1B%5C%C4%08S%0B%91%14%9A%CA_%A5%88%12%C8%075m%D0%04%17%5E%80%21-%B5ix%B1fL%04x%21%24%2A%A6%90%12%0A%27%960%D2%04%A609%D0%83%15Xh%81%EE%17%D2~A%C3%A26Y%B0G%29%A3%80%C2I%25%8E%10%92%07%18t%B6%84%00%0CPHA%05%C0Yl%E1%85%17%3E%B4%AAS%0D%8DlRI%23%83%DC%A1%06%17L%A4%90bJ%03%88pD%13Od%BC%F1%15Z%0C%21XO%04%3C%91H%CAih%B1%04%0F-%7C%A0%00J%18%F4%60D%12K0%E1D%14%1A%1B%E1TP%14p%11%F4%12%3B%B4%10%C2%05%10%24%20%00I%10%C8%00%84%10D%1C%C1%B4%D3H%84%20%E1P%1C%08%A1%03%0B%20p%BD%C0%01%05%7C%0D%12%02%26%E8%C0%83%FE%0Fc%97%9D%04%12%29%F0k%94%00%16%7C%60%C1%03%0A%D0%3D%80%00koD%40%074%DC%80%83%DE%7C%0B%21%04%0B%07%D0E%00%03s%17%B0x%E3%19%05%40%01%0B1%CC%40%83%0D%93%F3%D0%83%0B%0C%087%40%01%040%DEQ%03%25%B0%D0%C2%0B1%C8p%3A%0E1%DCf%A0%00%B2k%84%00%07%27%A0%A0%82%ED%B8%CB%00%C3%05%A0w%F8%A3%05%22%8CPB%F1%C7%BB%E0%02%07%08%3B%AF%91%00%11x%00B%08%D2%9BP%7C%0A%1C%20%A9%3DG%08t%E0%C1%07%20DO%82%09%1F%88%7C%3E%FA%1C%A8%FFA%08%22x%D0%FA%FC%1E%1D%B0A%FD%1E%E8%C0%03%9A%C7%BF%8C%1C%40%03%1B%D8%40%07%A6V%C0%FEe%00%81%1C%A8%40%03%3Fr%80%0B%60%E0%81%13%98%A0G%0C%60%01%0Bf%20%83%1A%E4%88%01%2A%D0%C1%0F%86P%84%14%A8%80%05%25p%C2%8D%14%80%02%29%B4%C0%B0Z%88%11%03L%60%02%29%84%00%0D3R%00%09H%00%87%FE%0F%D8%21F%0A%00%01%1FN%60gB%AC%08%11%23%E0C%24%26q%22%04x%00%04%22%10%81%E0%3C%91%22%04p%80%14%23%B0%BF%2BJ%24%8BZ%84%40%17%BD%08%11%024%C0%01Z%1C%23%19%1D%B2%B93%3E%C0Gk%84%C8%00%16pF%07%1C-%8E%0F%99%23%03%1A%D0%00%F9%E1%91%21zd%00%03%FC%F8G%85%E8q%01%0B%20d%21%DF%83HD%2Ar%91%06%19%80%02%1AY%20H%26d%00%09%98%E4%02%2Ai%C9%83%60R%01%A0%CC%5C%27%DF%83%80%04dR%94%A3%8C%24%02J%99%00T%A6%92%20%03X%E5%2A%CD%F7J%82%08%40%96%08%A0e-%05%22%80%03%F82%97%BB%B4%A5%01~%A9%CB%5D%0A%C0%00%C3%3C%401kyLd%D2-%98%03%11%40%01%0A%80%CC%97AS%9A%D4%7C%264%01%80Md%0A.%98%01%20%00%01%A8%F9%CD%5D%86s%9C%B0%DB%26%00%CE9%CEr%D6%92%9D%E2T%27%3C%B3%07Nq%8A%93%9E%E6%BF%24%C0%00%EE%29%CF%01%EC%D3%9E%E8%9C%A63%7DI%D0%03%AC%D2%94%A0D%E4%1E%D1%A8%C5%07%A0%B1%01%9CS%40%02%10%407%7D2.%00%185K%00%FC%09Pq%C2n%9A%D94%E8AM%99IM%EE%B1%8E%0DEcD%27j%00%CF%5D%94%80G%D9%A8%3F%FF%09P%90%86%D4%A0%24E%E8%24%05%29H%3E%F2q%A5%14m%E9%E70%0AS%A3%C8%94%A3%1D%0D%285%939%D2%92%26T%A1%9C%5B%80Dg%09%BB%A1%165%A63EjRm%9AL%91%96T%A7%9A%9C%AA2%ABj%D5%ABj%90%A8hM%ABY%D5%C9%D6%B6%BA%F5%ADp%8D%AB%5C%E7J%D7%BA%DA%F5%AEx%CD%AB%5E%F7%CA%D7%BE%FA%F5%AF%80%5Dd%40%00%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%05%20i%D4%86%02R%996%0Aa%CA%B4%E9%12%98%03O%5Bz%98S%C9%D2%A5L%9A6q%92%B4%24%40V%94%12%C8%3C%92D%A9%2B%A6%B0%9C%3Ay%22d%E2%2CI%04U%129%82%14i%12%25%AF%60%C5z%FA%E4%A9M%03%BB%1F%05%08%09%B4%88%91%A3G%91%D8Vzd%09%AE%DCO%A0.51%8BXc%8A9%87%10%25Z%D4ho%24G%5E%18p%E0c%193%A8P%87%EAv%B6%D8%C1L%A0A%85B7v%D4%88L%04%82A%24%C5%1D%FCZT%A87%0CfK%7C%20%85%CF%1F%40%82%08%15%12%BD%28%0D%86%83%0C%D2l%BA%5C%7CT%A6%27%CA%1D%FE%1A%10B%27%0F%9F%3E%7Fn%E7n%F3a%E1%89B%C4C%89%1AE%8A%14%A2%11%E1%13%0A%A8%B1%86%8E%1D%3Cz%F0%E1%07tm%88%E0%90%00U%60%82%99%7C%F4%952%0A%1A%08%E4W%D0%07%5E%BC%11%C7%1Cu%DC%91%C7%1E~%C8%21%03g%0FM%40%C7%27%0C6h%0A%26BH%08%80%05R%A4%B1F%1Bp%C8AG%1Dx%D01%04%01%15%CD%E0%08%83%A4%94R%8A%29%A7%14%C2%81r%0B%04A%86%19h%A8%C1%86%85r%C8%B1D%02%18%11%80%05%27%F3%F5%08%E4%29%A4%A4a%80%5D%06%CC%B0%05%18b%94q%86%8Bm%BC%21%C5o%1Bq%10H%83%3F%9E%82%0A%2A%99%FC%F0%94%00%23D%91%05%17%5E%84AF%19If1%E4G%40Xb%E5%29n%A6%92%CA%21%1A%18%B5%01%12TX%81%85%16%5D%7C%A1%A7%16%24%8C%A4%C0%1A%A3%B4Yh%2A%A4x1%80P%0F%E8%D0%04%14RTq%85%16xj%11%C3%A7%25%81pH%9B%FE%A8%18%AA%CA%2A%96%CC%F0%13%02%2B%1C%A1%04%13ND1%85%A3Z%DC%B0%25J%01%3C%D1%09%A1%B1%AA2%AB%2A%7F%A0%99%D3%00%1F%F80%84%11I%2C%C1%C4%13RP%B1Cr%2C9%20G%29o%A6%A2%EC%2A%AB%88B%05N%01XP%03%0F%3F%08A%84%AEK8%01%C4%041%B1%F0H%AC%E2%CE%CA%0A%2B%8F%C86%D3%03%2C%DC%90%C3%0E%3D%001m%12%40%5C7%D3%00%5D%8C%22%2B%B9%AC%B4%A2%0A%1BX%C1t%80%080%CCP%03%0E%3A%B0%1B%C4%0F%21%08p%93%05%7C%88%0Bq%2B%28%7B%92bK%04d%A0B%0B%2F%C4%40%83%0D%03%F3%60B%01%3B%E5p%89%BE%11%A3%EC%CA%22%89%A6%14%40%04%24%A0%A0%02%0B.%C0%20C%0D7%A4%10aO%04xa%CA%2A%FB%A2%8C%F2%29b%B0Z%12%03%1F%90P%C2%09%29%AC%D0%82%0B1%A8%E0%80P%1F%20Bu%CF%3E_%22%C3%5D%18%80%00%82%08%24%98%604%0B%29%D0%5BT%FE%11%9E%EC%CBv%2B%AB%E8q%D8G%04D%C0%81%07%1F%80%10%C2%08_%9Fp%81%C8G%25%A0F%2AT%93%BBJ%2A%A8l%E2DG%028%90%81%06%1Bt%80x%08tc%80%E3Y%230%A2%8A%A1%A7%982%0A%28%9D%F0%F1%27F%09P%60%01%06%19l%C0%81%E8%20%600%2Cb%01H%D1I%29%A4%84%D2I%26%948B%88%12%A7Sd%00%04%13T%60%C1%05%B8%87%9E%81%02%12%3A%C0F%27%9A%24%8FH%20x%BC%91E%D0%11%0D%C0%40%04%12L%40%81%F4%17d%80%01%B7%2A%02P%C2%1E%89%08%A2G%1Cgp%21%C5%11%274%CF%90%00%09p%C0%03%20%20%81%F4%D9%CE%02%0E%00Q%FC%00%20%00%1F%B8%21%0D_%A8B%12x0%83%14%7C%00~%09%09%C0%01%1A%D0%00%01B%20%02%E8%A3%80%03%B4%B6%40%82%2C%60%07K%00%82%0DV0%02%0E%5C%E0%01%0C1%1F%03%3A%E8%C1%088%C0%7F%254%88%03LP%02%0F%60%40%02%FE%23%8C%E1%02fHC%07%FC.%87%19d%C0%04%1E%C0%80%23%26d%00Cd%80%14%9D%88D%85%08%C0%00TD%C8%00%14%B0%80%21B%A9%8A%1F%D9%22%17%17%F0E0vD%8C%5D%2C%A3%1972%80%04%24%C0%8Bk%3Cc%02%B8%C8%80%A7%C5Q%23m%7C%E3%02%ECxG%8C%00p%8E%7B%EC%A3F%FE%C8E%3E%0A%B2%22%02%40%00%02%14%A0%80%8A%1D%D2%22%89D%80%1B%1D%F9H%8ADR%92%94%AC%A4D.%89%80%2Cj%F2%40%078%80%22%3D%F9%C9%FF%85R%94%A4%2C%A5%15%0D%10%CAN%AAr%93XD%E5%2B%23%22%80%02%B0%F2%008%9B%E5Cj%19%CB%5C%EA%B2%21W%BC%A5%2F%7F%B9%90%00%D8%12%8B%C3%24f%06%8Fi%00%1C%2A%F3%20%C6%2C%80-%9D%F9%CC%82%04%80%00%D2%2C%005%AB9%90kfs%9B%DC%04%C05%B1%A9%CDp%22d%9C%D2%04%277%C7%89MuV%93%9D%E54%A7A%E0%E9%CEg%B2%93%00%24%C1%94%A7%40%EE%99O%7D%F2S%9F%D6%1C%00%01%06%DAOy%06%60%00%02%C5%27%40%09r%D0%84%16%D4%9C%0D%15%E8C%C3%19Q%85.t%9F%08%CD%E8E1%9AQ%C8%5D4%A2%03%F0%E8B%03%20%80%8EnT%9C%25E%A8H%01J%D2%8C%BAt%A0%03%CD%A64%B1h%80c%CA%14%9F%2A%15%40%00v%AA%C0%05%924%A5%2F%85%299e%AAM%98%22%14%9F%02H%2AO%C5%C9%D4%1C%FE4%A9.M%A8P%C9i%D4%A4ZU%A7%3B%ED%E3S%A3%9AQ%82J%15%A9%21U%AAY%B2%AA%D5%ABv%94%ABQ%D5%A9Z%B1z%D2%B6%BA%F5%ADp%8D%AB%5C%E7J%D7%BA%DA%F5%AEx%CD%AB%5E%F7%CA%D7%BE%FA%F5%AF%80%0D%AC%60%B9%19%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%03%DC%B8%A3%05%02R%99%28%DA%FC%11D%28%10%14%03O%5BZ%E0%B2%87%8F%9F%40%82%0A%1D%F2%E3%23%40V%94%0D%98%D0%B9%93%C7%2BXB%86%10%29%92%F3%E1%2CI%03%3F%DA%C8%A9%C3v%8F%1F%40T%E3%2Ab%C4%E8%CB%02%BB%1F%05%BC%20%D3%06%8E%9C%B5y%F6%F4%C9%F3g%90%D8D%8B%1A%3DB%24%C4%2Cb%8D%1C%AE%A0Q%D3%E6%CDc%3Bx%EC0I%60%01%8DXD%99%1DA%8A%A4%27%C4%E7%8B%13%96%88%21s%26%CD%1A7%8E%E7%40i%40%90%86%1F%D8%8C%1C%3D%8A4i%12%19%05%B7%25%2A%C0%B1%C5K%182f%7C%97%9E%22%E1%A0%82%2C%88%18%FEi%8E%24%89R%A5FG%A2%3B%24%B0b%0A%96%EAa%C6%98%19%5D%E5%C2B%10u%1A%C9%964%A9%D2%A5L~%80%A0%5EB%01%84%B0%C4%14U%5C%A1E%17%60%88Q%C6%14%198%24%40%12%88%2C7%09%25%96%60%A2%09%26%60%1C0%60A%13%F8%C0%C4%13R%24%A8%05%17%5EXA%82D%10%A0%C1%1C%86%FFm%C2%C9%23%3C%7C%08%40%032%1C%A1%C4%12NDA%85%15YX%E1%C2%00%15%B1%10%88y%FFi%22%A3%27%7Dh%10%DD%01%26%001D%11I%2C%D1%04%14RPA%03V%17%11%F0%04%24%19%2A%C9I%27%9Fp2%06%97Y%0D%D0%01%0E%3C%FC%20D%11HX%09%05%0E%0Cp%94%81%1D%97%88%D9%89%27%A0%84%22%89%0EO%05%40%C1%0B6%E4%C0%83%0FA%10%A1%23%0F%13%80%A4%03%23%9Bl%B2%E7%27%A0%882J%20%11%16%F5%00%0A0%CC%60%03%0E%3B%F8%20%E5%0E%F6%89%94%00%19%99p%E2%09%A5%A1X%EA%89%16%FED%06%85%C0%07%2B%B8%D0%E9%A7%3A%F4%B0%C3%07%02%98%E4%C1%1F%7B%F6i%29%29%A5D%12%C3O%04%5CpB%0A%B5%C2%20C%0D7%E0%20%02%01%29%05%A0D%25%AC%8EBl%29%A5%F0%11%C1N%01%40%10%02%09%26%A0%B0B%0B%2F%C40%03%09%1E%B2%D4%C0%1A%9F%B4%3A%0A%B7%A6%9C%E2%89%1491%C0A%08%22%90%8B%82%0A%2C%B8%60B%9D0%A5%A0%C8%B0%A5%D4%7B%0A%2A%8C%94P%13%02%17p%F0%01%BF%23%94p%82%0A%258%40%D3%00YtB%AC%C2%A8%A4b%8A%1Ah%BAD%40%04%19l%D0%81%07%20%88P1%09%13xVS%05x%24%7C%CA%C2%A9%A8%A2%0A%27A%B8%24%40%03%17%5C%80%81%06%1C%B0%CC%AF%05%B1%E6d%03%25%F5%86%9C%F3%2A%AC%24%E2d%B5%08H%40A%05Bk%A0%F2%07%16%14%E0%13%01%5C%88%E2%B4%2A%AB%40%5DJ%18I%DF%E5%40%04V%5B%20t%06%1AX%D0.P%1E%1426%D4%AC%B4r%89%FE%0C%24%0D%B0%C0%03%10%B0%7D%B5%D0%16%40W%14%11%9C%E8%8Cw%2B%8C%F3A%5Cb%070%D0%80%03%10%40%20%C1%04%15T%C0%80%CCE%25%90%06%2Ae%B3%92w%2B%AE%90bEG%01%18%B0%C0%02%92%3B%008%DB%0D%F4z%D6%08%8C%2CN%BA%2B%AFD%E2pF%04%28%B0%BA%E4%93%BB%DE%40%DAg%050%85%28%A3%BB%82%FB%2B%AC%B81%F7D%03%1C%A0%80%EF%AC%B7%DE%80%D7%03%3EPG%DE%CA%BF%F2%0A%2C%B0%80%22%C4D%02%18%80%00%02%09L%EF%3B%03%0C%94%FC%E1%0B%95%90%EE%FD%F7%B0%C4%82H%05%0F%05%40%C0%01%E7%A3%9F%BE%EF%07%E0%9C%8D%00%40%800%A0by%E0%8BE%2CTA%06%E2%1Dd%00%050%80%01%F8w%BE%F4%05p%80%08%C9%40%21%BC%07%BE%FA%C5%02%14%CF%3BH%00%0A%40%C2%09R%F0%00%B2%C3%60Bz%D0%09%FA%D5%0F%08%0C%19a%09%0Fp%00%038P%85%079%40%1BX%01%3E%404D%86%FE%12%B4%21%0E%21%22%82F%84%E2q%0B%91%21%09%A95%C4%88P%C0%21J%2C%00%13%9B%E8%11%FD%95p%8AT%E4%88%FE%08%10A%ECeQ%8B%04%E0%A2%01%B0%F8%C5%8Cl1%82d%2C%E3E%CE%28E5n%84%8Dit%23E%B6%C8%C58%CAQ%22tl%E3%1D%D7%18%C6%3A%EE%91%8Fa%D4%E3%1F%E7%D8GA%0E%12%8F%85%B4%E3%21c%D8G%02%DCp%91%8Cl%24%24%11%D9%C7GN%92%40%8D%B4%E4%25E%98%C9M%E6o%00%95%F4%24%14A%19FM%8Ar%20%01%20%A5%23O%19%C3%01%90%D2%94%ACL%E5%2BY%99DW%82%12%96%A7%94%A5-i%A9%10%5D%BA%92%97%04%B2%E5%2F%81%29Ba%E2R%94%BE%3C%A6%27%7D%99Bb%12D%96%02%18%403%9D%29%90%00%08%E0%9A%D2%A4fA%ACyM%01%08%90%9A%DC%BC%E67%9D%19Noj%F3%99%DD4%E79%AB%E9%CD%00%B8s%9D%A8t%E78%C1YMx%DA%F3%9E%F8%27%CC%A7%3E%F7%C9%CF~%FA%F3%9F%00%0D%A8%40%07J%D0%82%1A%F4%A0%08M%A8B%17%CA%D0%86%3A%F4%A1%10%8D%A8D5%12%10%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%3F%03%8C%A8%D2C%01R%99%19%96p%F1%12%06%CC%0D%02O%5B%3A%E0a%25%CB%16%AAd%CC%80Y%915%25%02%18Q%A6t%FD%1A%86%CC%994k%B0X%28K%92%80%89%24N%D2%AE%05%FBv%8D%9B7I%10%D0%FD%18%60%C3%8F%24K%F2%AA%CD%C2%25%0B%98%B0p%DB%C0%91%D3FF%80%C1%1B%21%CC%10R%04Ib%BDVf%18x%D0%C4%0C%5C7p%E6%D4%B9C%26%03%E6%8B%0BV%F0%F8%C1%D9s%5E%295%12%10%2C%11f%8Dd9%AB%F3%EC%91%22%F8u%C4%02%1Fn%E8%98-%C4%08b%267%18%1C%3C%20%E4wp%3E~%EE%E00%EEP%00%86%174%94%FE%CF%1ER%24%C9%0D%07%0B1x%01~%27%0Fv%40%82%D6h%E0%9E0%80%84%14%2Fb%84%D7%D1%83v%0D%08%0E%05p%C3%1Bw%E8%81%5D%20%82%14B%88%14%06%D0W%90%02%22%AC%D0%C2%0B2%D4%A0%5C%0F6%CC%15%11%03T%B8%F7G%20%83%14rH%22~%C8%E0%20%00%07l%60%02%0A%2B%B8%00C%858%D8%C0%81%00%15%89%D0%C6%87%21%8E%B8H%23oh%88%19%01%15%8CP%C2%09%29HH%E1%0C%1F%60u%D1%00%40%F0%91%23%22%3B%3A%C2%C8%15%05%D0%25%00%04%1F%880%02%09%26%14%D9%02%0C%21%1C%C0%11%05f%88%88%88%22%8C8%02%89%24%84%CC%90%95%02%1Ax%00B%08B%9E%80%82%0A%23%2C%00%D2%0B%7B%40%D9%88%9A%92LR%89%1D%3E%0E%85%40%05%1Al%D0%C1%07tr%29B%03%23%21%60E%22%7F%AEII%25%97L%22%05%8DA%11%10%C1%05%19%24%BA%28%08%23%84%20%C1e%25e%20%07%A0%97%5E%92%89%26%FE%87%B0%F0%93%00%0BP%60%01%A8%1Ap%D0%81%07%1FL%C0%E9I%01%00%81H%A0%98%BE%BA%C9%26t%3C%B0S%00%08%400%81%AD%B8%EAZ%81%92%2B-%10%86%24%95Xb%2C%27%9ET%C2DN%A3E%20%C1%B3%15%E0j%81%980%91%F0%87%AB%9Al%D2%89%27%9F%80R%88%085%11%B0%C0%03%10D%10%C1%B3%B7VP%9CL%03H1I%BB%EF%C6%1B%CA%27d4%08%93%00%094%E0%80%03%10%E4%FB%2C%05%0B%A0Z%D3%04pl%C2m%BC%A2%8CBJ%25%3D%B8%14%C0%01%0B0%C0%80%03%F8%8A%3B%01%03%BF%E2%24%03%23%F0%82%D21%29%A5%94B%08%06%2B%11%90%C0%02%25%9F%9Cr%03%03%F8D%80%15%9A%80%12%8A%C75%9B%12%8A%17A%9B4%00%02%09%28%C0%B3%C9%0D%3C%C0%00%B5%3Fm%F0G%28%A2%D0%5C%8A%29%A7%A02%09%0C%24%09%60%40%02h%2B%205%03%0D0%A00Q%3FT%E25%D8%A8%A4%82J%1E%90%12F%C0%FE%01%07%40%1D5%CF%0B%1C%60qQ%08%90%21%CA%D7a%A7%A2%8A%2A%A0P%E1%D1%00%06%18%C07%02P%AB-8%5D%21%1CB%B7%E2%AA%AC%C2%8A%23%24h%24%40%01%05D.9%E5%09%1C%D0rY%01%40%E1I%DD%8B%7B%CEJ%2Al%A0KQ%00%03%10%40%BA%E4%7DS%DE4w%0F%C8%81J%E7%B2%B7%D2%8A%27%40L%84%3B%01%CC%93%5E%3A%DF%BF%9F%D8%82%24%AB%14%DF%8A%2B%AE%1CR%01D%020%EF%BD%F3%06%60%7D%A2%40%04%7CQ%0A%2B%AC%18%EF%CA%2B%AF%A42F%F4%08%090%40%EE%DF%93N%C0%E0%E3%13%84%C1%20%E9%AB%FF%0A%2C%9F%B0%1DBp7%3F%EF%E9%EE~%F9%5B%08%0F6%E1%BFW%FC%80%21%04%A4%1F%01%06%B0%BA%04%22%E4%00kX%C5%FA%00%D1%10%02z%AF%82%16TH%08%1A%11%8A%BC-%24%82%13%0C%A1D%B6%D7%C1%F9%E5%0E~%2A%DC%08%0Aa%18%C3%8C%CC%B0%86%1E%B9%21%0E9%A2%C3%1Dj%A4%87%A7%3E%C4%08%10%83h%91%21%12%F1v.%9C%DF%11%85%98D%10.%11%22%11T%E2%13%2B%12E%1AN1%40I%B4%E2%15%21%98%C5-%2A%AF%8B%5E%8CH%00%04%20%3F%0A%86Q%8Cd%9C%9F%13%CF8%402%CAo%8Dl4%C8%18%DD%88%BF8%D6%C7%8D%02%A8%A3%1D%DBHF%3D%EEQ%8E%01%18%A3%1F%FFH%90%CB%04r%90%84%2CH%20%13%C9%C8F%3A%F2%91%90%8C%A4%24%27I%C9JZ%F2%92%98%CC%A4%267%C9%C9Nz%F2%93%A0%0C%A5%28GI%CAR%9A%F2%94%A8L%A5%2AW%C9%CAV%BA%F2%95%B0%8C%A5%2CgI%CBZ%DA%B2%86%01%01%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%40%27%BC%10a%00%A9%CC%06%29f%D8%C8%81%E3%83%00%A7-%0F%80x%11%83%C6%0D%1D%3C%7C%E8%C8%805%25%81%0C%2A%5C%C0%90Q%E3%2B%8F%1FB%8A%DCpP%96%A4%80%09%25R%B0P%3B%A3%06%0E%1D%3D%80%0C1%A2dI%8B%02u%3F%06p%10%C2%04%0A%15-%B8J%AD%01%18%08%91%23J%98%3CY%02%221G%04%1BF%940%91bE%E4%182%3A%10H%E0%22%C8%E5%25M%A0H%A9B%24%82%E7%8B%06.%84%08%21%FA%F1%0A%17%2F%3C%20%1Eh%01H%92%25N%A2L%B1%82E%0B%8E%A6%B7%23%0E%88%E0%01D%08%11%24L%9C%80%FC%E1%C0A%02%2A%90%FEK%A1%C2%7C%8B%97%2C%27%A2%3B%0C%D0%20%03%87%EA%22D%9FH%01%02%C1%C2%07%3E%C6%5B%C9%C2%E5K%182QH%A0%9EB%0AX%90%C1%06%EF%81%80%5D%09%1E%24%B0%1E%09Q4%D7%C5%17b%94q%C6%19%3B%100%60A%05HpA%06%1A%20%08%DF%07%0DH%84%80%0E%E6%811%86%19h%A8%C1%06%19%25l%08%00%01%0EP%60%C1%87%1Ap%D0%C1%07%1E%40%10%40E%18H%F1%9F%19i%AC%D1%06%1Cr%60a%DBm%02%2C%20%C1%04%15X%80%C1%81%1Cp%20%C1U%17%09%D0%02%18D%B2%E1%06%92u%D0Q%84%86e%05%90%C0%03%11L%40A%05%17%60%10%E2%04dj%E4%80%13F%BE%11%C7%1Cu%E0%A1%C7%1B%28%60e%80%03%10D%F0%A4%8D%1FR%E0%DDG%23%8C%81%24%1Dv%E4%B1G%1F%7F%90%21%60Q%04%2C%E0%C0%03%81%0EZ%C1%04%F6%89d%C0%10p0%9A%07%1F~%00%22%C8%1FD%60%09%94%00%094%D0%C0%A5%FE%99R%40%81%02%3F%964A%17w%E8Aj%20%83%14rH%1D%24%FC%14%80%01%0B0%F0%EA%03%98%A6%C9%40%AD%27%05%20%C3%1C%90%F2%EAk%22%8A%98Q%E2N%05%28%B0%40%B1%C7%06%CA%C0%00-%25%10%85%1F%82%102%ED%22%8D%18%12DN%04%20%A0-%B7%C72%10%A7K%1D%B4A%88%21%88%24%82%EE%23%91%E0%E1AM%02%1C%80%40%02%0Ahk%AC%03%0D%0C%27%93%00D%04%82%88%22%8C8%C2%EF%24%91h%A1%B0K%01%14%80%C0%C6%04%1B%CC%C0%A16A%20%06%BA%8E%40%22%C9%24%95X%A2%88%0D%18%13%20%F0%C0%04o%BB%C0%01%CC%E2%A4B%1F%FCJBI%25%97d%A2%89%1E%16%AC%24%80%01%06%1C%20p%021%23%A0%EAN%030%C1%C8%24%94X%D2%F3%26%9CXb%C5%D2%23eL%B4%D1G%2B%80%00%B8Aa%40G%CA%98hBu%27%9F%2C%C2%02I%01%0CP%C0%DBE%BF%8C%C0%BCB%E1%A0%88%CFT%7B%F2%09%FE%28%A0%C8%C1%00Hm%13%40%C0%DB%05p%3D%B7S%07tqI%DE%7B%87%22J%26Ox%24%80%E0%82%C3m4%015%23%E5%C1%1F%9D%E8%0D%8A%E3%A3%94%82%88%08%1A%05%40y%E5p%17%909V%01%28Q%C9%E7%A2%8CBJ%29%A6%8C%82%06t%14%B5%3D%C0%E9%84%13%80%B5g%0E%B0%01J%EC%B3%9Br%0A%2A%98%F40Q%00%02%0C%E0%3C%EF%05%FC%AE%9E%0A%8C%CCN%FB%F1%A8%A4%22%08%05%10%E9%EE%FC%F3%82%83-%23A%03h%F1%C9%F5%D9%AB%A2J%29%60%88%9F%10%F3%DF%C7O%C0%00%AB%8F%2F%D0%05~%18%9F%7D%2A%AA%AC%B2%09%EE%08a%5E%F3%E2%E7%BC%FA%D9%8F%209%B0D%FAV%B1%0A%E5-D%80%03%2C%E0%01%1Br%804%98%A2%7F%7Ch%88%00%BFg%C0%09%22%04%04%89%E8%C4%B5%1E%28%80%12%96%D0%83%12%E1%9E%06M%28%80%0E%A2%F0%22%10l%E1%0B%15%C3B%17%CE0w5%BC%A1G%02%C0C%19%EA%90%23i%3Cd%9E%0D%7F%28%91%20%0E%91%88E%3C%22%12%23%A2%C4%25%3A%F1%89P%8C%A2%14%A7H%C5%2AZ%F1%8AX%CC%A2%16%B7%C8%C5.z%F1%8B%60%0C%A3%18%C7H%C62%9A%F1%8ChL%A3%1A%D7%C8%C66%BA%F1%8Dp%8C%A3%1C%E7H%C7%3A%DA%F1%8Ex%CC%A3%1E%F7%C8%C7%3E%FA%F1%8F%80%0C%A4%20%07I%C8B%1A%F2%90%88L%E4%15%03%02%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3%40%3Bdy%02%01%A9%CC%05%2F%9A%8C%B9CH%CB%01%A7-%07H0%81C%EA%1DD%95%28E%09%80%15e%00%03%102p%F5%0A%16%D4%A9G%2C%CA%96%14%60%40A%DA%B5S%DB%9Ej%E5jOS%B9%1F%03%0C%20P%F7nW%2Fu%F4%B6%82%25K%95%16%B2%807%06%100%B8%B0Z%1B%2A%0EPhS%C9%EDbY%B4jaj%11%19c%80%D3%94%09%DB%CDp%A1%00A%1F%97%F62%0E%5D%8BV%1F%07%A5%2B%9E%9E%5CY%C1%82%01%07%1B%C8Y5%BBV-%5B%B6%1C%E7%9E%B8%3B5%01%01%0B%5D%5C%02m%1C9%F2K%29%96Cl.%002%C3%01dZ%FEU%B7nk%16%9D%04%DA%1B%EE%F6%FE%10%C3%A1%E3%E4%91%9BZ%92~%21%FB%89%3FD%C5%B7%1E%09D%FD%90%05%9C%01%CB~%B6%C82%C7U%FF%7D%24%82%24%04%DAR%8A%11%09%82%C4%04%2A%0DF%D2A%84%1E1%A0%07-%04%BEb%06p%18rd%82%25%0D%82%82C%88%1C%05%A0%05%2B%04%D6%82%C8%04%28n%04%81%1F%F0%C5%B7%8A%161n%24C%27%0Db%97cF%04%08H%A0%2Cr%20%F8%A3E%19%20%D2%A0%29G%1C%89%11%10%A3T%C8%81%93%16%05%18K%87g%80H%E5D%0B6%F8%89%0D%5BV4a%8B%82%E0%16%A6D%0A%CC1%0B%817%9E9%D1%09%24%12h%C9%09nF%A4%22%8B%FB%19hd%9D%0DE%40%23%81%A5%14%C1%27D3%F0H%20%23%16%0C%EAP%90%03%EE%F7J%96%8A6%B4%01%23%04%92%B2g%A4%0A%05%11%25yC%60%FA%10%02r%C8%82%5C%21%9EFD%02%25%A8%98Y%2AD%89%AE%EA%EA%ABN%B0%C6%2A%EB%AC%B4%D6j%EB%AD%B8%E6%AA%EB%AE%BC%F6%EA%EB%AF%C0%06%2B%EC%B0%C4%16k%EC%B1%C8%26%AB%EC%B2%CC6%EB%EC%B3%D0F%2B%ED%B4%D4Vk%ED%B5%D8f%AB%ED%B6%DCv%EB%ED%B7%E0%86%2B%EE%B8%E4%96k%EE%B9%E8%A6%AB%EE%BA%D9%06%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9D%CA2%00%D5%95%01%AC%5E%3D%99%B5%EB%D6%92%5D%05%0C%200%E0k%C8%B0b%09%18%40%40%C0%EC%C7%ACi%0B%20%60%20AB%01%B7%1D%03%0C%18P%E0%80%82%07%17B%B0%00%21%00%2F%C7%01%06%124%98%C0%01%C5%0D%25RB%18%DE%28%40%01%04%0C%22b%08%A9r%06%0F%9A%0A%933%06X%D0A%85%0E%26_%E2%04r4%E9J%D9%D0%17%0B%98%28rE%8D%1ED%94%3C%95%AAD%036F%0F%5B%E8%08z%A4I%14%AAV%AF%08M%F0m%F1%00%94D%96%3E%99Z%E5%2A%D6%ACTZ%98%5B%1CQhT%AAV%B0d%FE%CD%A2U%EBR%0A%ED%14%07t%29%F5J%3C%F9Z%B6d%C99%80~%E2%85A%B2%DE%C3%B7e%CB%D4%91%FA%13%F9%20J-%FB%F1%C7_%24%1C%00%18Q%01f%C4b%E0%83%AF%9C%F1%9A%82%0E%89%20%C9%83%0F~b%03%85%101%81%0A%86%FC%D5%22%88%03%1C%3A%A4%C0%1C%B3%80h%CB%2A%D9%95%D8%D0%09%96%A8h%8B%25%27%B8%C8P%00Z%B0%A2%A2%2Cs%D0g%A3B%11%F8Q%E0%83%A5%14%F1%E3B3t%22%23%23%16%1C%99%10%01g%C0%A2b%84%13%3AY%D0%06%8C%A8H%8A%8FV%1E%14%C4%28%18%0E%D1%A5B%08%C8%21%0B%7F%85%8C%C9%10%09%94%A0B%A2%9A%0C5%09%E7%9Ct%D6i%E7%9Dx%E6%A9%E7%9E%7C%F6%E9%E7%9F%80%06%2A%E8%A0%84%16j%E8%A1%88%26%AA%E8%A2%8C6%EA%E8%A3%90F%2A%E9%A4%94Vj%E9%A5%98f%AA%E9%A6%9Cv%EA%E9%A7%A0%86%2A%EA%A8%A4%96j%EA%A9%A8%A6%AA%EA%AA%AC%B6%EA%EA%AB%03%0E%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%FE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%ACY%AD%01%02%9C%B5%98%B6%AD%DA%B5%0F%DD%A6%15%40%17n%DC%B9%02%06%0C%20P%60%80%DD%86%01%F2%EA%E5%7B%00A%02%BF%7F%15%06%D8%5B%C0%00%02%05%0D%20Pp%20%20%B1%C2%01%07%120x0%01C%07%12%28%28XN%28%40%81%04%0B%1CD%A8%90%C1%E3%88%8F%07%A3%11%2A%E8p%02F%0E%22O%B2%90YC%84%40l%83%03%3E%00Yb%25%CC%9A%3A~%0C%FD%91%F1%DB%60%84%26i%E4%EC%21%C4H%12%26O%7B%264%27%28%80G%9FD%91%2C%84q%0AU%0A%15%A90%88%B7%03%90%00g%13%28R%A7T%B1r%F5%E9%80z%826%28%A5%9A%0F%2BV%90%FB%05%1D%C0%06%2B%B1%C82%08%80%07%8D%10I%29%0E%20%88%90%05%0EF%28%E1%84%14Vh%E1%85%18f%A8%E1%86%1Cv%E8%E1%87%20%86%28%E2%88%24%96h%E2%89%28%A6%A8%E2%8A%2C%B6%E8%E2%8B0%C6%28%E3%8C4%D6h%E3%8D8%E6%A8%E3%8E%3C%F6%E8%E3%8F%40%06%29%E4%90D%16i%E4%91H%26%A9%E4%92%40%05%04%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%CE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%5E%CD%BA%B5%EB%D7%B0c%CB%9EM%DBk%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%CE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%5E%CD%BA%B5%EB%D7%B0c%CB%9EM%DBk%40%00%21%F9%04%01%04%00%FF%00%2C%00%00%00%00%80%00%80%00%00%08%CE%00%01%08%1CH%B0%A0%C1%83%08%13%2A%5C%C8%B0%A1%C3%87%10%23J%9CH%B1%A2%C5%8B%183j%DC%C8%B1%A3%C7%8F%20C%8A%1CI%B2%A4%C9%93%28S%AA%5C%C9%B2%A5%CB%970c%CA%9CI%B3%A6%CD%9B8s%EA%DC%C9%B3%A7%CF%9F%40%83%0A%1DJ%B4%A8%D1%A3H%93%2A%5D%CA%B4%A9%D3%A7P%A3J%9DJ%B5%AA%D5%ABX%B3j%DD%CA%B5%AB%D7%AF%60%C3%8A%1DK%B6%AC%D9%B3h%D3%AA%5D%CB%B6%AD%DB%B7p%E3%CA%9DK%B7%AE%DD%BBx%F3%EA%DD%CB%B7%AF%DF%BF%80%03%0B%1EL%B8%B0%E1%C3%88%13%2B%5E%CC%B8%B1%E3%C7%90%23K%9EL%B9%B2%E5%CB%983k%DE%CC%B9%B3%E7%CF%A0C%8B%1EM%BA%B4%E9%D3%A8S%AB%5E%CD%BA%B5%EB%D7%B0c%CB%9EM%DBk%40%00%3B";
|
|
@@ -32240,9 +32315,9 @@ function HbLoadingSpinner({
|
|
|
32240
32315
|
extraQuipsOnly,
|
|
32241
32316
|
iconOnly
|
|
32242
32317
|
}) {
|
|
32243
|
-
const ctx = (0,
|
|
32318
|
+
const ctx = (0, import_react167.useContext)(HbLoadingSpinnerContext);
|
|
32244
32319
|
const tid = useTestIds({}, "hbSpinner");
|
|
32245
|
-
const quip = (0,
|
|
32320
|
+
const quip = (0, import_react167.useMemo)(() => {
|
|
32246
32321
|
const allQuips = extraQuipsOnly && extraQuips.length !== 0 ? extraQuips : [...ctx.quips, ...extraQuips];
|
|
32247
32322
|
const forceQuips = extraQuips.length !== 0 || noQuips === false;
|
|
32248
32323
|
if (ctx.noQuips && !forceQuips || noQuips || allQuips.length === 0) return "Loading...";
|
|
@@ -32272,7 +32347,7 @@ function HbLoadingSpinner({
|
|
|
32272
32347
|
var dotDotDot = (str) => str.concat("...");
|
|
32273
32348
|
var HB_QUIPS_MISSION = ["Loading", "One Team", "On a Mission", "Executing Relentlessly", "Building Better", "In Service of Our Customers"].map(dotDotDot);
|
|
32274
32349
|
var HB_QUIPS_FLAVOR = ["HOM is HOW", "Scaling Massively", "#LoveIt"].map(dotDotDot);
|
|
32275
|
-
var HbLoadingSpinnerContext =
|
|
32350
|
+
var HbLoadingSpinnerContext = import_react167.default.createContext({
|
|
32276
32351
|
quips: ["Loading..."],
|
|
32277
32352
|
noQuips: false
|
|
32278
32353
|
});
|
|
@@ -32280,7 +32355,7 @@ function HbSpinnerProvider({
|
|
|
32280
32355
|
quips = [],
|
|
32281
32356
|
children
|
|
32282
32357
|
}) {
|
|
32283
|
-
const state = (0,
|
|
32358
|
+
const state = (0, import_react167.useMemo)(() => ({
|
|
32284
32359
|
quips,
|
|
32285
32360
|
noQuips: quips.length === 0
|
|
32286
32361
|
}), [quips]);
|
|
@@ -32288,12 +32363,12 @@ function HbSpinnerProvider({
|
|
|
32288
32363
|
}
|
|
32289
32364
|
|
|
32290
32365
|
// src/components/Modal/OpenModal.tsx
|
|
32291
|
-
var
|
|
32366
|
+
var import_react168 = require("react");
|
|
32292
32367
|
var import_jsx_runtime249 = require("react/jsx-runtime");
|
|
32293
32368
|
function OpenModal(props) {
|
|
32294
32369
|
const { openModal } = useModal();
|
|
32295
32370
|
const { size, children, keepOpen, aiMode } = props;
|
|
32296
|
-
(0,
|
|
32371
|
+
(0, import_react168.useEffect)(() => {
|
|
32297
32372
|
if (!keepOpen) {
|
|
32298
32373
|
openModal({ size, content: children, aiMode });
|
|
32299
32374
|
}
|
|
@@ -32307,33 +32382,33 @@ function OpenModal(props) {
|
|
|
32307
32382
|
|
|
32308
32383
|
// src/components/Navbar/NavbarMobileMenu.tsx
|
|
32309
32384
|
var import_framer_motion7 = require("framer-motion");
|
|
32310
|
-
var
|
|
32385
|
+
var import_react170 = require("react");
|
|
32311
32386
|
var import_react_aria74 = require("react-aria");
|
|
32312
32387
|
var import_react_dom11 = require("react-dom");
|
|
32313
32388
|
var import_react_router_dom7 = require("react-router-dom");
|
|
32314
32389
|
|
|
32315
32390
|
// src/layouts/NavbarLayout/MobileSubNavContext.tsx
|
|
32316
|
-
var
|
|
32391
|
+
var import_react169 = require("react");
|
|
32317
32392
|
var import_jsx_runtime250 = require("react/jsx-runtime");
|
|
32318
|
-
var MobileSubNavContext = (0,
|
|
32393
|
+
var MobileSubNavContext = (0, import_react169.createContext)(void 0);
|
|
32319
32394
|
function MobileSubNavProvider(props) {
|
|
32320
|
-
const [mobileSubNav, setMobileSubNav] = (0,
|
|
32321
|
-
const value = (0,
|
|
32395
|
+
const [mobileSubNav, setMobileSubNav] = (0, import_react169.useState)(null);
|
|
32396
|
+
const value = (0, import_react169.useMemo)(() => ({ mobileSubNav, setMobileSubNav }), [mobileSubNav]);
|
|
32322
32397
|
return /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(MobileSubNavContext.Provider, { value, children: props.children });
|
|
32323
32398
|
}
|
|
32324
32399
|
function useMobileSubNav() {
|
|
32325
|
-
return (0,
|
|
32400
|
+
return (0, import_react169.useContext)(MobileSubNavContext)?.mobileSubNav ?? null;
|
|
32326
32401
|
}
|
|
32327
32402
|
function useRegisterMobileSubNav(content2) {
|
|
32328
|
-
const ctx = (0,
|
|
32403
|
+
const ctx = (0, import_react169.useContext)(MobileSubNavContext);
|
|
32329
32404
|
const setMobileSubNav = ctx?.setMobileSubNav;
|
|
32330
32405
|
const enabled = !useBreakpoint().mdAndUp;
|
|
32331
32406
|
const { top, items, footer } = content2;
|
|
32332
|
-
(0,
|
|
32407
|
+
(0, import_react169.useLayoutEffect)(() => {
|
|
32333
32408
|
if (!setMobileSubNav || !enabled) return;
|
|
32334
32409
|
setMobileSubNav({ top, items, footer });
|
|
32335
32410
|
}, [setMobileSubNav, enabled, top, items, footer]);
|
|
32336
|
-
(0,
|
|
32411
|
+
(0, import_react169.useLayoutEffect)(() => {
|
|
32337
32412
|
if (!setMobileSubNav || !enabled) return;
|
|
32338
32413
|
return () => setMobileSubNav(null);
|
|
32339
32414
|
}, [setMobileSubNav, enabled]);
|
|
@@ -32348,8 +32423,8 @@ function NavbarMobileMenu(props) {
|
|
|
32348
32423
|
items
|
|
32349
32424
|
} = props;
|
|
32350
32425
|
const tid = useTestIds(props, "navbar");
|
|
32351
|
-
const [isOpen2, setIsOpen] = (0,
|
|
32352
|
-
const [level, setLevel] = (0,
|
|
32426
|
+
const [isOpen2, setIsOpen] = (0, import_react170.useState)(false);
|
|
32427
|
+
const [level, setLevel] = (0, import_react170.useState)("sub");
|
|
32353
32428
|
const {
|
|
32354
32429
|
pathname,
|
|
32355
32430
|
search
|
|
@@ -32359,7 +32434,7 @@ function NavbarMobileMenu(props) {
|
|
|
32359
32434
|
isDisabled: !isOpen2
|
|
32360
32435
|
});
|
|
32361
32436
|
const close = () => setIsOpen(false);
|
|
32362
|
-
(0,
|
|
32437
|
+
(0, import_react170.useEffect)(() => {
|
|
32363
32438
|
close();
|
|
32364
32439
|
}, [pathname, search]);
|
|
32365
32440
|
return /* @__PURE__ */ (0, import_jsx_runtime251.jsxs)(import_jsx_runtime251.Fragment, { children: [
|
|
@@ -32508,12 +32583,12 @@ function NavbarMobileDrawer({
|
|
|
32508
32583
|
}
|
|
32509
32584
|
|
|
32510
32585
|
// src/hooks/useContentOverflow.ts
|
|
32511
|
-
var
|
|
32586
|
+
var import_react171 = require("react");
|
|
32512
32587
|
function useContentOverflow(enabled = true) {
|
|
32513
|
-
const containerRef = (0,
|
|
32514
|
-
const contentRef = (0,
|
|
32515
|
-
const [overflows, setOverflows] = (0,
|
|
32516
|
-
const checkContentOverflow = (0,
|
|
32588
|
+
const containerRef = (0, import_react171.useRef)(null);
|
|
32589
|
+
const contentRef = (0, import_react171.useRef)(null);
|
|
32590
|
+
const [overflows, setOverflows] = (0, import_react171.useState)(false);
|
|
32591
|
+
const checkContentOverflow = (0, import_react171.useCallback)(() => {
|
|
32517
32592
|
const container = containerRef.current;
|
|
32518
32593
|
const content2 = contentRef.current;
|
|
32519
32594
|
if (!enabled || !container || !content2) {
|
|
@@ -32522,7 +32597,7 @@ function useContentOverflow(enabled = true) {
|
|
|
32522
32597
|
}
|
|
32523
32598
|
setOverflows(content2.offsetWidth > container.clientWidth);
|
|
32524
32599
|
}, [enabled]);
|
|
32525
|
-
(0,
|
|
32600
|
+
(0, import_react171.useLayoutEffect)(() => {
|
|
32526
32601
|
checkContentOverflow();
|
|
32527
32602
|
window.addEventListener("resize", checkContentOverflow);
|
|
32528
32603
|
return () => window.removeEventListener("resize", checkContentOverflow);
|
|
@@ -32609,10 +32684,10 @@ function NavbarUserMenu({
|
|
|
32609
32684
|
}
|
|
32610
32685
|
|
|
32611
32686
|
// src/components/Snackbar/useSnackbar.tsx
|
|
32612
|
-
var
|
|
32687
|
+
var import_react172 = require("react");
|
|
32613
32688
|
function useSnackbar() {
|
|
32614
32689
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
32615
|
-
const onClose = (0,
|
|
32690
|
+
const onClose = (0, import_react172.useCallback)(
|
|
32616
32691
|
(noticeId) => {
|
|
32617
32692
|
setNotices((prev) => {
|
|
32618
32693
|
let returnValue = prev;
|
|
@@ -32629,7 +32704,7 @@ function useSnackbar() {
|
|
|
32629
32704
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
32630
32705
|
[]
|
|
32631
32706
|
);
|
|
32632
|
-
const triggerNotice = (0,
|
|
32707
|
+
const triggerNotice = (0, import_react172.useCallback)(
|
|
32633
32708
|
(props) => {
|
|
32634
32709
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
32635
32710
|
let maybeTimeout;
|
|
@@ -32658,8 +32733,8 @@ function useSnackbar() {
|
|
|
32658
32733
|
},
|
|
32659
32734
|
[onClose, setNotices]
|
|
32660
32735
|
);
|
|
32661
|
-
const closeNotice = (0,
|
|
32662
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
32736
|
+
const closeNotice = (0, import_react172.useCallback)((id) => onClose(id), [onClose]);
|
|
32737
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react172.useEffect)(() => {
|
|
32663
32738
|
setOffset({ bottom });
|
|
32664
32739
|
return () => setOffset({});
|
|
32665
32740
|
}, [bottom]);
|
|
@@ -32708,7 +32783,7 @@ function simpleDataRows(data = []) {
|
|
|
32708
32783
|
|
|
32709
32784
|
// src/components/Tabs.tsx
|
|
32710
32785
|
var import_change_case9 = require("change-case");
|
|
32711
|
-
var
|
|
32786
|
+
var import_react173 = require("react");
|
|
32712
32787
|
var import_react_aria75 = require("react-aria");
|
|
32713
32788
|
var import_react_router = require("react-router");
|
|
32714
32789
|
var import_react_router_dom8 = require("react-router-dom");
|
|
@@ -32788,9 +32863,9 @@ function Tabs(props) {
|
|
|
32788
32863
|
focusProps
|
|
32789
32864
|
} = (0, import_react_aria75.useFocusRing)();
|
|
32790
32865
|
const tid = useTestIds(others, "tabs");
|
|
32791
|
-
const [active, setActive] = (0,
|
|
32792
|
-
const ref = (0,
|
|
32793
|
-
(0,
|
|
32866
|
+
const [active, setActive] = (0, import_react173.useState)(selected);
|
|
32867
|
+
const ref = (0, import_react173.useRef)(null);
|
|
32868
|
+
(0, import_react173.useEffect)(() => setActive(selected), [selected]);
|
|
32794
32869
|
function onKeyUp(e) {
|
|
32795
32870
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
32796
32871
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -32865,7 +32940,7 @@ function TabImpl(props) {
|
|
|
32865
32940
|
activeHoverStyles,
|
|
32866
32941
|
aiStyles,
|
|
32867
32942
|
activeAiStyles
|
|
32868
|
-
} = (0,
|
|
32943
|
+
} = (0, import_react173.useMemo)(() => getTabStyles(), []);
|
|
32869
32944
|
const uniqueValue = uniqueTabValue(tab);
|
|
32870
32945
|
const tid = useTestIds(others);
|
|
32871
32946
|
const tabProps = {
|
|
@@ -33025,10 +33100,10 @@ function hideTabs(props) {
|
|
|
33025
33100
|
}
|
|
33026
33101
|
|
|
33027
33102
|
// src/components/Toast/useToast.tsx
|
|
33028
|
-
var
|
|
33103
|
+
var import_react174 = require("react");
|
|
33029
33104
|
function useToast() {
|
|
33030
33105
|
const { setNotice, clear } = useToastContext();
|
|
33031
|
-
const showToast = (0,
|
|
33106
|
+
const showToast = (0, import_react174.useCallback)((props) => setNotice(props), [setNotice]);
|
|
33032
33107
|
return { showToast, clear };
|
|
33033
33108
|
}
|
|
33034
33109
|
|
|
@@ -33301,7 +33376,7 @@ var import_react_stately19 = require("react-stately");
|
|
|
33301
33376
|
var import_runtime169 = require("@homebound/truss/runtime");
|
|
33302
33377
|
|
|
33303
33378
|
// src/forms/FormSection/FormSectionChild.tsx
|
|
33304
|
-
var
|
|
33379
|
+
var import_react175 = require("react");
|
|
33305
33380
|
var import_react_aria76 = require("react-aria");
|
|
33306
33381
|
var import_runtime168 = require("@homebound/truss/runtime");
|
|
33307
33382
|
var import_jsx_runtime259 = require("react/jsx-runtime");
|
|
@@ -33318,7 +33393,7 @@ function FormSectionChild(props) {
|
|
|
33318
33393
|
group
|
|
33319
33394
|
} = props;
|
|
33320
33395
|
const tid = useTestIds(props, "formSectionChild");
|
|
33321
|
-
const itemRef = (0,
|
|
33396
|
+
const itemRef = (0, import_react175.useRef)(null);
|
|
33322
33397
|
const isDraggable = !!orderField;
|
|
33323
33398
|
const {
|
|
33324
33399
|
dragItemProps,
|
|
@@ -33360,7 +33435,7 @@ function FormSectionChildRadio(props) {
|
|
|
33360
33435
|
value,
|
|
33361
33436
|
label
|
|
33362
33437
|
} = props;
|
|
33363
|
-
const ref = (0,
|
|
33438
|
+
const ref = (0, import_react175.useRef)(null);
|
|
33364
33439
|
const {
|
|
33365
33440
|
inputProps,
|
|
33366
33441
|
isDisabled,
|
|
@@ -33386,7 +33461,7 @@ function FormSectionChildCheckbox(props) {
|
|
|
33386
33461
|
value,
|
|
33387
33462
|
label
|
|
33388
33463
|
} = props;
|
|
33389
|
-
const ref = (0,
|
|
33464
|
+
const ref = (0, import_react175.useRef)(null);
|
|
33390
33465
|
const {
|
|
33391
33466
|
inputProps,
|
|
33392
33467
|
isDisabled,
|
|
@@ -33579,12 +33654,12 @@ var railAndShellPx = centeredShellMaxPx.sm + jumpLinksRailWidthPx;
|
|
|
33579
33654
|
var jumpLinksRailReservation = `clamp(0px, 100% - ${railAndShellPx}px, ${jumpLinksRailWidthPx}px)`;
|
|
33580
33655
|
|
|
33581
33656
|
// src/layouts/FormSectionLayout/useActiveJumpLink.ts
|
|
33582
|
-
var
|
|
33657
|
+
var import_react176 = require("react");
|
|
33583
33658
|
var activationLeadPx = 120;
|
|
33584
33659
|
function useActiveJumpLink(sectionIds) {
|
|
33585
33660
|
const idsKey = sectionIds.join("\0");
|
|
33586
|
-
const [activeId, setActiveId] = (0,
|
|
33587
|
-
(0,
|
|
33661
|
+
const [activeId, setActiveId] = (0, import_react176.useState)(sectionIds[0]);
|
|
33662
|
+
(0, import_react176.useLayoutEffect)(() => {
|
|
33588
33663
|
const ids = idsKey.length === 0 ? [] : idsKey.split("\0");
|
|
33589
33664
|
if (ids.length === 0) return;
|
|
33590
33665
|
const update = () => {
|
|
@@ -33686,7 +33761,7 @@ function FormSectionLayout(props) {
|
|
|
33686
33761
|
}
|
|
33687
33762
|
|
|
33688
33763
|
// src/layouts/PageBanner/usePageBanner.tsx
|
|
33689
|
-
var
|
|
33764
|
+
var import_react177 = require("react");
|
|
33690
33765
|
|
|
33691
33766
|
// src/layouts/PageBanner/pageBannerStore.ts
|
|
33692
33767
|
var current;
|
|
@@ -33723,13 +33798,13 @@ function clearPageBanner(id) {
|
|
|
33723
33798
|
|
|
33724
33799
|
// src/layouts/PageBanner/usePageBanner.tsx
|
|
33725
33800
|
function usePageBanner(banner) {
|
|
33726
|
-
const id = (0,
|
|
33727
|
-
(0,
|
|
33801
|
+
const id = (0, import_react177.useId)();
|
|
33802
|
+
(0, import_react177.useLayoutEffect)(() => {
|
|
33728
33803
|
if (!banner) return;
|
|
33729
33804
|
setPageBanner(id, banner);
|
|
33730
33805
|
return () => clearPageBanner(id);
|
|
33731
33806
|
}, [id, banner]);
|
|
33732
|
-
(0,
|
|
33807
|
+
(0, import_react177.useEffect)(() => {
|
|
33733
33808
|
if (!banner || hasPageBannerSubscriber() || process.env.NODE_ENV === "production") return;
|
|
33734
33809
|
console.warn("[usePageBanner] No page layout above this component; the banner will not render.");
|
|
33735
33810
|
}, [banner]);
|
|
@@ -33740,11 +33815,11 @@ function PageBanner(props) {
|
|
|
33740
33815
|
}
|
|
33741
33816
|
|
|
33742
33817
|
// src/layouts/NavbarLayout/NavbarLayout.tsx
|
|
33743
|
-
var
|
|
33818
|
+
var import_react182 = require("react");
|
|
33744
33819
|
var import_runtime172 = require("@homebound/truss/runtime");
|
|
33745
33820
|
|
|
33746
33821
|
// src/layouts/useAutoHideOnScroll.ts
|
|
33747
|
-
var
|
|
33822
|
+
var import_react178 = require("react");
|
|
33748
33823
|
var THRESHOLD = 80;
|
|
33749
33824
|
function getInitialAutoHideState() {
|
|
33750
33825
|
if (typeof window === "undefined" || window.scrollY <= 0) {
|
|
@@ -33754,13 +33829,13 @@ function getInitialAutoHideState() {
|
|
|
33754
33829
|
}
|
|
33755
33830
|
function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
33756
33831
|
const initial = getInitialAutoHideState();
|
|
33757
|
-
const [state, setState] = (0,
|
|
33758
|
-
const stateRef = (0,
|
|
33759
|
-
const getTopOffsetRef = (0,
|
|
33832
|
+
const [state, setState] = (0, import_react178.useState)(initial);
|
|
33833
|
+
const stateRef = (0, import_react178.useRef)(initial);
|
|
33834
|
+
const getTopOffsetRef = (0, import_react178.useRef)(getTopOffset);
|
|
33760
33835
|
getTopOffsetRef.current = getTopOffset;
|
|
33761
|
-
const lastScrollY = (0,
|
|
33762
|
-
const lastScrollHeight = (0,
|
|
33763
|
-
(0,
|
|
33836
|
+
const lastScrollY = (0, import_react178.useRef)(Number.POSITIVE_INFINITY);
|
|
33837
|
+
const lastScrollHeight = (0, import_react178.useRef)(0);
|
|
33838
|
+
(0, import_react178.useLayoutEffect)(() => {
|
|
33764
33839
|
if (!enabled) {
|
|
33765
33840
|
stateRef.current = "resting";
|
|
33766
33841
|
lastScrollY.current = Number.POSITIVE_INFINITY;
|
|
@@ -33825,26 +33900,26 @@ function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
|
33825
33900
|
}
|
|
33826
33901
|
|
|
33827
33902
|
// src/layouts/useMeasuredHeight.ts
|
|
33828
|
-
var
|
|
33829
|
-
var
|
|
33903
|
+
var import_utils53 = require("@react-aria/utils");
|
|
33904
|
+
var import_react179 = require("react");
|
|
33830
33905
|
function useMeasuredHeight(ref, enabled) {
|
|
33831
|
-
const [height, setHeight] = (0,
|
|
33832
|
-
const syncElementHeight = (0,
|
|
33906
|
+
const [height, setHeight] = (0, import_react179.useState)(0);
|
|
33907
|
+
const syncElementHeight = (0, import_react179.useCallback)(() => {
|
|
33833
33908
|
const el = ref.current;
|
|
33834
33909
|
const next = el ? Math.round(el.getBoundingClientRect().height) : 0;
|
|
33835
33910
|
setHeight((prev) => prev === next ? prev : next);
|
|
33836
33911
|
}, [ref]);
|
|
33837
|
-
(0,
|
|
33838
|
-
(0,
|
|
33912
|
+
(0, import_utils53.useResizeObserver)({ ref, onResize: syncElementHeight });
|
|
33913
|
+
(0, import_react179.useLayoutEffect)(() => {
|
|
33839
33914
|
syncElementHeight();
|
|
33840
33915
|
}, [enabled, syncElementHeight]);
|
|
33841
33916
|
return height;
|
|
33842
33917
|
}
|
|
33843
33918
|
|
|
33844
33919
|
// src/layouts/useTransitionAfterPaint.ts
|
|
33845
|
-
var
|
|
33920
|
+
var import_react180 = require("react");
|
|
33846
33921
|
function useTransitionAfterPaint(ref, transition) {
|
|
33847
|
-
(0,
|
|
33922
|
+
(0, import_react180.useLayoutEffect)(() => {
|
|
33848
33923
|
const el = ref.current;
|
|
33849
33924
|
if (!el) return;
|
|
33850
33925
|
const id = requestAnimationFrame(() => {
|
|
@@ -33855,14 +33930,14 @@ function useTransitionAfterPaint(ref, transition) {
|
|
|
33855
33930
|
}
|
|
33856
33931
|
|
|
33857
33932
|
// src/layouts/NavbarLayout/NavbarLayoutHeightContext.tsx
|
|
33858
|
-
var
|
|
33933
|
+
var import_react181 = require("react");
|
|
33859
33934
|
var import_jsx_runtime263 = require("react/jsx-runtime");
|
|
33860
|
-
var NavbarLayoutHeightContext = (0,
|
|
33935
|
+
var NavbarLayoutHeightContext = (0, import_react181.createContext)(0);
|
|
33861
33936
|
function NavbarLayoutHeightProvider({ value, children }) {
|
|
33862
33937
|
return /* @__PURE__ */ (0, import_jsx_runtime263.jsx)(NavbarLayoutHeightContext.Provider, { value, children });
|
|
33863
33938
|
}
|
|
33864
33939
|
function useNavbarLayoutHeight() {
|
|
33865
|
-
return (0,
|
|
33940
|
+
return (0, import_react181.useContext)(NavbarLayoutHeightContext);
|
|
33866
33941
|
}
|
|
33867
33942
|
|
|
33868
33943
|
// src/layouts/NavbarLayout/NavbarLayout.tsx
|
|
@@ -33876,8 +33951,8 @@ function NavbarLayout(props) {
|
|
|
33876
33951
|
children
|
|
33877
33952
|
} = props;
|
|
33878
33953
|
const tid = useTestIds(props, "navbarLayout");
|
|
33879
|
-
const navMetricsRef = (0,
|
|
33880
|
-
const spacerRef = (0,
|
|
33954
|
+
const navMetricsRef = (0, import_react182.useRef)(null);
|
|
33955
|
+
const spacerRef = (0, import_react182.useRef)(null);
|
|
33881
33956
|
const navHeight = useMeasuredHeight(navMetricsRef, true);
|
|
33882
33957
|
const {
|
|
33883
33958
|
state: autoHideState
|
|
@@ -33903,7 +33978,7 @@ function NavbarLayout(props) {
|
|
|
33903
33978
|
const innerStyle = {
|
|
33904
33979
|
top: autoHideState === "hidden" ? `calc(${bannerTop} - ${navHeight}px)` : bannerTop
|
|
33905
33980
|
};
|
|
33906
|
-
const navbarEl = (0,
|
|
33981
|
+
const navbarEl = (0, import_react182.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime264.jsx)(Navbar, { ...navbar }), [navbar]);
|
|
33907
33982
|
return /* @__PURE__ */ (0, import_jsx_runtime264.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime264.jsx)(NavbarLayoutHeightProvider, { value: navbarOffsetPx, children: /* @__PURE__ */ (0, import_jsx_runtime264.jsx)(MobileSubNavProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime264.jsxs)("div", { ...(0, import_runtime172.mergeProps)(void 0, cssVars, {
|
|
33908
33983
|
display: "df",
|
|
33909
33984
|
flexDirection: "fdc",
|
|
@@ -33921,14 +33996,14 @@ function NavbarLayout(props) {
|
|
|
33921
33996
|
}
|
|
33922
33997
|
|
|
33923
33998
|
// src/layouts/PageHeaderLayout/PageHeaderLayout.tsx
|
|
33924
|
-
var
|
|
33999
|
+
var import_react185 = require("react");
|
|
33925
34000
|
|
|
33926
34001
|
// src/hooks/useDocumentTitle.tsx
|
|
33927
|
-
var
|
|
34002
|
+
var import_react183 = require("react");
|
|
33928
34003
|
function useDocumentTitle(...titleSegments) {
|
|
33929
34004
|
const config = useDocumentTitleConfig();
|
|
33930
34005
|
const pageTitle = joinDocumentTitleSegments(...titleSegments);
|
|
33931
|
-
(0,
|
|
34006
|
+
(0, import_react183.useLayoutEffect)(() => {
|
|
33932
34007
|
if (!config || !pageTitle || typeof document === "undefined") {
|
|
33933
34008
|
return;
|
|
33934
34009
|
}
|
|
@@ -34034,7 +34109,7 @@ function PageHeader2(props) {
|
|
|
34034
34109
|
}
|
|
34035
34110
|
|
|
34036
34111
|
// src/layouts/PageBanner/internal/usePageBannerSlot.tsx
|
|
34037
|
-
var
|
|
34112
|
+
var import_react184 = require("react");
|
|
34038
34113
|
|
|
34039
34114
|
// src/layouts/PageBanner/internal/PageBannerSlot.tsx
|
|
34040
34115
|
var import_runtime175 = require("@homebound/truss/runtime");
|
|
@@ -34072,18 +34147,18 @@ var import_jsx_runtime268 = require("react/jsx-runtime");
|
|
|
34072
34147
|
function usePageBannerSlot(bannerProp, testIds) {
|
|
34073
34148
|
const publishedBanner = usePublishedPageBanner();
|
|
34074
34149
|
const banner = publishedBanner ?? bannerProp;
|
|
34075
|
-
const metricsRef = (0,
|
|
34150
|
+
const metricsRef = (0, import_react184.useRef)(null);
|
|
34076
34151
|
const height = useMeasuredHeight(metricsRef, banner != null);
|
|
34077
34152
|
const slot = banner ? /* @__PURE__ */ (0, import_jsx_runtime268.jsx)(PageBannerSlot, { ...testIds, banner, metricsRef }) : null;
|
|
34078
34153
|
return { slot, height };
|
|
34079
34154
|
}
|
|
34080
34155
|
function usePublishedPageBanner() {
|
|
34081
|
-
const [banner, setBanner] = (0,
|
|
34082
|
-
const sync = (0,
|
|
34156
|
+
const [banner, setBanner] = (0, import_react184.useState)(pageBannerStore.getSnapshot);
|
|
34157
|
+
const sync = (0, import_react184.useCallback)(() => {
|
|
34083
34158
|
const next = pageBannerStore.getSnapshot();
|
|
34084
34159
|
setBanner((prev) => prev === next ? prev : next);
|
|
34085
34160
|
}, []);
|
|
34086
|
-
(0,
|
|
34161
|
+
(0, import_react184.useLayoutEffect)(() => {
|
|
34087
34162
|
sync();
|
|
34088
34163
|
return pageBannerStore.subscribe(sync);
|
|
34089
34164
|
}, [sync]);
|
|
@@ -34113,11 +34188,11 @@ function PageHeaderLayout(props) {
|
|
|
34113
34188
|
height: bannerHeight
|
|
34114
34189
|
} = usePageBannerSlot(bannerProp, tid);
|
|
34115
34190
|
const bannerAndNavbarHeight = useBannerAndNavbarHeight();
|
|
34116
|
-
const bannerAndNavbarHeightRef = (0,
|
|
34191
|
+
const bannerAndNavbarHeightRef = (0, import_react185.useRef)(bannerAndNavbarHeight);
|
|
34117
34192
|
bannerAndNavbarHeightRef.current = bannerAndNavbarHeight;
|
|
34118
|
-
const getBannerAndNavbarHeight = (0,
|
|
34119
|
-
const headerMetricsRef = (0,
|
|
34120
|
-
const spacerRef = (0,
|
|
34193
|
+
const getBannerAndNavbarHeight = (0, import_react185.useCallback)(() => bannerAndNavbarHeightRef.current, []);
|
|
34194
|
+
const headerMetricsRef = (0, import_react185.useRef)(null);
|
|
34195
|
+
const spacerRef = (0, import_react185.useRef)(null);
|
|
34121
34196
|
const headerHeight = useMeasuredHeight(headerMetricsRef, true);
|
|
34122
34197
|
const {
|
|
34123
34198
|
state: autoHideState
|
|
@@ -34150,7 +34225,7 @@ function PageHeaderLayout(props) {
|
|
|
34150
34225
|
const innerStyle = {
|
|
34151
34226
|
top: autoHideState === "hidden" ? `calc(${outerTop} - ${headerHeight}px)` : outerTop
|
|
34152
34227
|
};
|
|
34153
|
-
const pageHeaderEl = (0,
|
|
34228
|
+
const pageHeaderEl = (0, import_react185.useMemo)(() => /* @__PURE__ */ (0, import_jsx_runtime269.jsx)(PageHeader2, { ...pageHeader }), [pageHeader]);
|
|
34154
34229
|
return /* @__PURE__ */ (0, import_jsx_runtime269.jsx)(DocumentScrollLayoutProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime269.jsxs)("div", { ...(0, import_runtime176.mergeProps)(void 0, style, {
|
|
34155
34230
|
display: "df",
|
|
34156
34231
|
flexDirection: "fdc",
|
|
@@ -34168,7 +34243,7 @@ function PageHeaderLayout(props) {
|
|
|
34168
34243
|
}
|
|
34169
34244
|
|
|
34170
34245
|
// src/layouts/Workflow/WorkflowPageLayout.tsx
|
|
34171
|
-
var
|
|
34246
|
+
var import_react188 = require("react");
|
|
34172
34247
|
|
|
34173
34248
|
// src/components/Headers/WorkflowHeader.tsx
|
|
34174
34249
|
var import_jsx_runtime270 = require("react/jsx-runtime");
|
|
@@ -34185,7 +34260,7 @@ function WorkflowHeader(props) {
|
|
|
34185
34260
|
}
|
|
34186
34261
|
|
|
34187
34262
|
// src/layouts/Workflow/RightPaneTriggers.tsx
|
|
34188
|
-
var
|
|
34263
|
+
var import_react186 = require("react");
|
|
34189
34264
|
var import_runtime177 = require("@homebound/truss/runtime");
|
|
34190
34265
|
var import_jsx_runtime271 = require("react/jsx-runtime");
|
|
34191
34266
|
var __maybeInc36 = (inc) => {
|
|
@@ -34206,7 +34281,7 @@ function WorkflowPageRightPaneTriggers(props) {
|
|
|
34206
34281
|
} = useRightPaneActions();
|
|
34207
34282
|
const tid = useTestIds(props, "rightPaneTriggers");
|
|
34208
34283
|
const pageTriggerInsetPx = 24;
|
|
34209
|
-
const onClick = (0,
|
|
34284
|
+
const onClick = (0, import_react186.useCallback)((trigger) => {
|
|
34210
34285
|
openRightPane({
|
|
34211
34286
|
content: /* @__PURE__ */ (0, import_jsx_runtime271.jsx)(RightPanePanel, { title: trigger.label, children: trigger.content })
|
|
34212
34287
|
});
|
|
@@ -34249,18 +34324,18 @@ function WorkflowPageRightPaneTriggers(props) {
|
|
|
34249
34324
|
}
|
|
34250
34325
|
|
|
34251
34326
|
// src/layouts/Workflow/useUnsavedChangesGuard.tsx
|
|
34252
|
-
var
|
|
34327
|
+
var import_react187 = require("react");
|
|
34253
34328
|
var import_react_router_dom9 = require("react-router-dom");
|
|
34254
34329
|
var import_jsx_runtime272 = require("react/jsx-runtime");
|
|
34255
34330
|
function useUnsavedChangesGuard(options) {
|
|
34256
34331
|
const { isDirty, allowNavigation, onCancel, destructiveAction } = options;
|
|
34257
34332
|
const { openModal } = useModal();
|
|
34258
|
-
const isDirtyRef = (0,
|
|
34333
|
+
const isDirtyRef = (0, import_react187.useRef)(isDirty);
|
|
34259
34334
|
isDirtyRef.current = isDirty;
|
|
34260
|
-
const allowNavigationRef = (0,
|
|
34335
|
+
const allowNavigationRef = (0, import_react187.useRef)(allowNavigation);
|
|
34261
34336
|
allowNavigationRef.current = allowNavigation;
|
|
34262
|
-
const allowCancelNavigationRef = (0,
|
|
34263
|
-
(0,
|
|
34337
|
+
const allowCancelNavigationRef = (0, import_react187.useRef)(false);
|
|
34338
|
+
(0, import_react187.useEffect)(() => {
|
|
34264
34339
|
const onBeforeUnload = (e) => {
|
|
34265
34340
|
if (isDirtyRef.current?.()) {
|
|
34266
34341
|
e.preventDefault();
|
|
@@ -34327,7 +34402,7 @@ function useUnsavedChangesGuard(options) {
|
|
|
34327
34402
|
function UnsavedChangesNavigationModal(props) {
|
|
34328
34403
|
const { proceed, cancelNavigation } = props;
|
|
34329
34404
|
const { openModal, closeModal } = useModal();
|
|
34330
|
-
(0,
|
|
34405
|
+
(0, import_react187.useEffect)(() => {
|
|
34331
34406
|
openModal({
|
|
34332
34407
|
allowClosing: false,
|
|
34333
34408
|
content: /* @__PURE__ */ (0, import_jsx_runtime272.jsx)(ConfirmCloseModal, { title: "Leave page?", onClose: proceed, onContinue: cancelNavigation })
|
|
@@ -34417,7 +34492,7 @@ function WorkflowPageLayout(props) {
|
|
|
34417
34492
|
} });
|
|
34418
34493
|
const triggers = rightPaneTriggers ?? [];
|
|
34419
34494
|
const pageTriggers = triggers.length > 0 ? /* @__PURE__ */ (0, import_jsx_runtime274.jsx)(WorkflowPageRightPaneTriggers, { triggers }) : void 0;
|
|
34420
|
-
const headerMetricsRef = (0,
|
|
34495
|
+
const headerMetricsRef = (0, import_react188.useRef)(null);
|
|
34421
34496
|
const headerHeight = useMeasuredHeight(headerMetricsRef, true);
|
|
34422
34497
|
const headerWidth = documentScrollChromeWidth();
|
|
34423
34498
|
const outerTop = belowNavbarOffset();
|
|
@@ -34430,7 +34505,7 @@ function WorkflowPageLayout(props) {
|
|
|
34430
34505
|
}
|
|
34431
34506
|
const style = Object.keys(cssVars).length > 0 ? cssVars : void 0;
|
|
34432
34507
|
const showFooter = isMobile;
|
|
34433
|
-
(0,
|
|
34508
|
+
(0, import_react188.useLayoutEffect)(() => {
|
|
34434
34509
|
const root = document.documentElement;
|
|
34435
34510
|
const previous = root.style.getPropertyValue(beamWorkflowLayoutFooterHeightVar);
|
|
34436
34511
|
root.style.setProperty(beamWorkflowLayoutFooterHeightVar, showFooter ? `${mobileFooterHeightPx}px` : "0px");
|
|
@@ -34443,8 +34518,8 @@ function WorkflowPageLayout(props) {
|
|
|
34443
34518
|
};
|
|
34444
34519
|
}, [showFooter]);
|
|
34445
34520
|
const currentStep = stepperTabs?.currentStep;
|
|
34446
|
-
const prevStepRef = (0,
|
|
34447
|
-
(0,
|
|
34521
|
+
const prevStepRef = (0, import_react188.useRef)(currentStep);
|
|
34522
|
+
(0, import_react188.useLayoutEffect)(() => {
|
|
34448
34523
|
if (prevStepRef.current === currentStep) return;
|
|
34449
34524
|
prevStepRef.current = currentStep;
|
|
34450
34525
|
window.scrollTo({
|
|
@@ -34575,7 +34650,7 @@ function FocusedFormLayout(props) {
|
|
|
34575
34650
|
}
|
|
34576
34651
|
|
|
34577
34652
|
// src/layouts/Workflow/StepperLayout.tsx
|
|
34578
|
-
var
|
|
34653
|
+
var import_react189 = require("react");
|
|
34579
34654
|
var import_jsx_runtime276 = require("react/jsx-runtime");
|
|
34580
34655
|
function StepperLayout(props) {
|
|
34581
34656
|
const {
|
|
@@ -34593,7 +34668,7 @@ function StepperLayout(props) {
|
|
|
34593
34668
|
...headerProps
|
|
34594
34669
|
} = props;
|
|
34595
34670
|
const stepTabs = steps.map((step) => ({ ...step, value: defaultTestId(step.label) }));
|
|
34596
|
-
const [currentStep, setCurrentStep] = (0,
|
|
34671
|
+
const [currentStep, setCurrentStep] = (0, import_react189.useState)(() => getInitialStep(stepTabs, defaultStep));
|
|
34597
34672
|
const tid = useTestIds(props, "stepperLayout");
|
|
34598
34673
|
const currentIndex = hasStep(stepTabs, currentStep) ? stepTabs.findIndex((step) => step.value === currentStep) : 0;
|
|
34599
34674
|
const isFirstStep = currentIndex <= 0;
|
|
@@ -34747,7 +34822,7 @@ function FormHeading(props) {
|
|
|
34747
34822
|
FormHeading.isFormHeading = true;
|
|
34748
34823
|
|
|
34749
34824
|
// src/forms/StaticField.tsx
|
|
34750
|
-
var
|
|
34825
|
+
var import_utils54 = require("@react-aria/utils");
|
|
34751
34826
|
var import_runtime180 = require("@homebound/truss/runtime");
|
|
34752
34827
|
var import_jsx_runtime280 = require("react/jsx-runtime");
|
|
34753
34828
|
function StaticField(props) {
|
|
@@ -34761,7 +34836,7 @@ function StaticField(props) {
|
|
|
34761
34836
|
children
|
|
34762
34837
|
} = props;
|
|
34763
34838
|
const tid = useTestIds(props, typeof label === "string" ? defaultTestId(label) : "staticField");
|
|
34764
|
-
const id = (0,
|
|
34839
|
+
const id = (0, import_utils54.useId)();
|
|
34765
34840
|
return /* @__PURE__ */ (0, import_jsx_runtime280.jsxs)("div", { ...(0, import_runtime180.trussProps)({
|
|
34766
34841
|
...labelStyle === "left" ? {
|
|
34767
34842
|
display: "df",
|
|
@@ -34796,9 +34871,9 @@ function StaticField(props) {
|
|
|
34796
34871
|
}
|
|
34797
34872
|
|
|
34798
34873
|
// src/hooks/useFilter.ts
|
|
34799
|
-
var
|
|
34874
|
+
var import_react190 = require("react");
|
|
34800
34875
|
function useFilter5({ filterDefs }) {
|
|
34801
|
-
const [filter, setFilter] = (0,
|
|
34876
|
+
const [filter, setFilter] = (0, import_react190.useState)(
|
|
34802
34877
|
Object.fromEntries(
|
|
34803
34878
|
safeEntries(filterDefs).filter(([key, def]) => def(key).defaultValue !== void 0).map(([key, def]) => [key, def(key).defaultValue])
|
|
34804
34879
|
)
|
|
@@ -34807,7 +34882,7 @@ function useFilter5({ filterDefs }) {
|
|
|
34807
34882
|
}
|
|
34808
34883
|
|
|
34809
34884
|
// src/inputs/Autocomplete.tsx
|
|
34810
|
-
var
|
|
34885
|
+
var import_react191 = require("react");
|
|
34811
34886
|
var import_react_aria78 = require("react-aria");
|
|
34812
34887
|
var import_react_stately20 = require("react-stately");
|
|
34813
34888
|
var import_jsx_runtime281 = require("react/jsx-runtime");
|
|
@@ -34827,7 +34902,7 @@ function Autocomplete(props) {
|
|
|
34827
34902
|
} = props;
|
|
34828
34903
|
const { effectiveValue, proposalProps } = useAiProposal(value, proposedValue);
|
|
34829
34904
|
const disabledOptionsWithReasons = Object.fromEntries(disabledOptions?.map(disabledOptionToKeyedTuple) ?? []);
|
|
34830
|
-
const comboBoxChildren = (0,
|
|
34905
|
+
const comboBoxChildren = (0, import_react191.useCallback)(
|
|
34831
34906
|
(item) => /* @__PURE__ */ (0, import_jsx_runtime281.jsx)(import_react_stately20.Item, { textValue: getOptionLabel(item), children: getOptionMenuLabel ? getOptionMenuLabel(item) : getOptionLabel(item) }, getOptionValue(item)),
|
|
34832
34907
|
[getOptionValue, getOptionLabel, getOptionMenuLabel]
|
|
34833
34908
|
);
|
|
@@ -34852,10 +34927,10 @@ function Autocomplete(props) {
|
|
|
34852
34927
|
...others
|
|
34853
34928
|
};
|
|
34854
34929
|
const state = (0, import_react_stately20.useComboBoxState)(comboBoxProps);
|
|
34855
|
-
const inputWrapRef = (0,
|
|
34856
|
-
const inputRef = (0,
|
|
34857
|
-
const listBoxRef = (0,
|
|
34858
|
-
const popoverRef = (0,
|
|
34930
|
+
const inputWrapRef = (0, import_react191.useRef)(null);
|
|
34931
|
+
const inputRef = (0, import_react191.useRef)(null);
|
|
34932
|
+
const listBoxRef = (0, import_react191.useRef)(null);
|
|
34933
|
+
const popoverRef = (0, import_react191.useRef)(null);
|
|
34859
34934
|
const { inputProps, listBoxProps, labelProps } = (0, import_react_aria78.useComboBox)(
|
|
34860
34935
|
{
|
|
34861
34936
|
...comboBoxProps,
|
|
@@ -34923,7 +34998,7 @@ function Autocomplete(props) {
|
|
|
34923
34998
|
}
|
|
34924
34999
|
|
|
34925
35000
|
// src/inputs/ToggleButton.tsx
|
|
34926
|
-
var
|
|
35001
|
+
var import_react192 = require("react");
|
|
34927
35002
|
var import_react_aria79 = require("react-aria");
|
|
34928
35003
|
var import_react_stately21 = require("react-stately");
|
|
34929
35004
|
var import_runtime181 = require("@homebound/truss/runtime");
|
|
@@ -34938,7 +35013,7 @@ function ToggleButton(props) {
|
|
|
34938
35013
|
__storyState,
|
|
34939
35014
|
...otherProps
|
|
34940
35015
|
} = props;
|
|
34941
|
-
const [asyncInProgress, setAsyncInProgress] = (0,
|
|
35016
|
+
const [asyncInProgress, setAsyncInProgress] = (0, import_react192.useState)(false);
|
|
34942
35017
|
const isDisabled = !!disabled || asyncInProgress;
|
|
34943
35018
|
const ariaProps = {
|
|
34944
35019
|
"aria-label": label,
|
|
@@ -34957,8 +35032,8 @@ function ToggleButton(props) {
|
|
|
34957
35032
|
return result;
|
|
34958
35033
|
}
|
|
34959
35034
|
});
|
|
34960
|
-
const labelRef = (0,
|
|
34961
|
-
const ref = (0,
|
|
35035
|
+
const labelRef = (0, import_react192.useRef)(null);
|
|
35036
|
+
const ref = (0, import_react192.useRef)(null);
|
|
34962
35037
|
const tid = useTestIds(otherProps, label);
|
|
34963
35038
|
const {
|
|
34964
35039
|
isPressed: isPressedFromEvents,
|