@homebound/beam 4.59.1 → 4.60.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 +396 -288
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +296 -188
- package/dist/index.js.map +1 -1
- package/dist/truss.css +4 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -27871,7 +27871,7 @@ function invertSpacing(value) {
|
|
|
27871
27871
|
}
|
|
27872
27872
|
|
|
27873
27873
|
// src/components/Layout/GridTableLayout/GridTableLayout.tsx
|
|
27874
|
-
var
|
|
27874
|
+
var import_react145 = __toESM(require("react"), 1);
|
|
27875
27875
|
|
|
27876
27876
|
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
27877
27877
|
var import_react127 = require("react");
|
|
@@ -28412,7 +28412,7 @@ function SelectionSummaryAction(props) {
|
|
|
28412
28412
|
|
|
28413
28413
|
// src/components/Layout/GridTableLayout/GridTableLayoutHost.tsx
|
|
28414
28414
|
var import_utils41 = require("@react-aria/utils");
|
|
28415
|
-
var
|
|
28415
|
+
var import_react138 = require("react");
|
|
28416
28416
|
|
|
28417
28417
|
// src/components/Layout/RightPaneLayout/DocumentScrollOverlayRightPaneLayout.tsx
|
|
28418
28418
|
var import_react135 = require("react");
|
|
@@ -28884,6 +28884,132 @@ function ModalFullBleed({
|
|
|
28884
28884
|
}));
|
|
28885
28885
|
}
|
|
28886
28886
|
|
|
28887
|
+
// src/layouts/useAutoHideOnScroll.ts
|
|
28888
|
+
var import_react137 = require("react");
|
|
28889
|
+
var THRESHOLD = 80;
|
|
28890
|
+
var HOLD_QUIET_MS = 150;
|
|
28891
|
+
var cancelActiveHold;
|
|
28892
|
+
var holdReleaseListeners = /* @__PURE__ */ new Set();
|
|
28893
|
+
var userScrollEvents = ["wheel", "touchstart"];
|
|
28894
|
+
function holdAutoHideWhile(scroll) {
|
|
28895
|
+
cancelActiveHold?.();
|
|
28896
|
+
let quietTimer;
|
|
28897
|
+
const restartQuietTimer = () => {
|
|
28898
|
+
clearTimeout(quietTimer);
|
|
28899
|
+
quietTimer = setTimeout(release, HOLD_QUIET_MS);
|
|
28900
|
+
};
|
|
28901
|
+
const cancel = () => {
|
|
28902
|
+
clearTimeout(quietTimer);
|
|
28903
|
+
window.removeEventListener("scroll", restartQuietTimer);
|
|
28904
|
+
for (const event of userScrollEvents) window.removeEventListener(event, release);
|
|
28905
|
+
window.removeEventListener("scrollend", release);
|
|
28906
|
+
cancelActiveHold = void 0;
|
|
28907
|
+
};
|
|
28908
|
+
function release() {
|
|
28909
|
+
cancel();
|
|
28910
|
+
holdReleaseListeners.forEach((listener) => listener());
|
|
28911
|
+
}
|
|
28912
|
+
window.addEventListener("scroll", restartQuietTimer, { passive: true });
|
|
28913
|
+
for (const event of userScrollEvents) window.addEventListener(event, release, { passive: true });
|
|
28914
|
+
window.addEventListener("scrollend", release);
|
|
28915
|
+
cancelActiveHold = cancel;
|
|
28916
|
+
restartQuietTimer();
|
|
28917
|
+
scroll();
|
|
28918
|
+
}
|
|
28919
|
+
function getInitialAutoHideState() {
|
|
28920
|
+
if (typeof window === "undefined" || window.scrollY <= 0) {
|
|
28921
|
+
return "resting";
|
|
28922
|
+
}
|
|
28923
|
+
return "hidden";
|
|
28924
|
+
}
|
|
28925
|
+
function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
28926
|
+
const initial = getInitialAutoHideState();
|
|
28927
|
+
const [state, setState] = (0, import_react137.useState)(initial);
|
|
28928
|
+
const stateRef = (0, import_react137.useRef)(initial);
|
|
28929
|
+
const getTopOffsetRef = (0, import_react137.useRef)(getTopOffset);
|
|
28930
|
+
getTopOffsetRef.current = getTopOffset;
|
|
28931
|
+
const lastScrollY = (0, import_react137.useRef)(Number.POSITIVE_INFINITY);
|
|
28932
|
+
const lastScrollHeight = (0, import_react137.useRef)(0);
|
|
28933
|
+
(0, import_react137.useLayoutEffect)(() => {
|
|
28934
|
+
if (!enabled) {
|
|
28935
|
+
stateRef.current = "resting";
|
|
28936
|
+
lastScrollY.current = Number.POSITIVE_INFINITY;
|
|
28937
|
+
lastScrollHeight.current = 0;
|
|
28938
|
+
setState("resting");
|
|
28939
|
+
return;
|
|
28940
|
+
}
|
|
28941
|
+
const commit = (nextState) => {
|
|
28942
|
+
if (nextState !== stateRef.current) {
|
|
28943
|
+
stateRef.current = nextState;
|
|
28944
|
+
setState(nextState);
|
|
28945
|
+
}
|
|
28946
|
+
};
|
|
28947
|
+
const autoHideStateOnLayoutChange = (rect, topOffset) => {
|
|
28948
|
+
const nextAtTop = rect.top >= topOffset;
|
|
28949
|
+
let next = stateRef.current;
|
|
28950
|
+
if (nextAtTop) {
|
|
28951
|
+
next = "resting";
|
|
28952
|
+
} else if (rect.bottom < -THRESHOLD && next !== "revealed") {
|
|
28953
|
+
next = "hidden";
|
|
28954
|
+
}
|
|
28955
|
+
return next;
|
|
28956
|
+
};
|
|
28957
|
+
const updateAutoHideState = () => {
|
|
28958
|
+
const el = spacerRef.current;
|
|
28959
|
+
if (!el) return;
|
|
28960
|
+
const doc = document.documentElement;
|
|
28961
|
+
const currentScrollHeight = doc.scrollHeight;
|
|
28962
|
+
const scrollHeightChanged = lastScrollHeight.current !== 0 && currentScrollHeight !== lastScrollHeight.current;
|
|
28963
|
+
lastScrollHeight.current = currentScrollHeight;
|
|
28964
|
+
if (window.scrollY <= 0) {
|
|
28965
|
+
lastScrollY.current = 0;
|
|
28966
|
+
commit("resting");
|
|
28967
|
+
return;
|
|
28968
|
+
}
|
|
28969
|
+
const currentY = window.scrollY;
|
|
28970
|
+
if (cancelActiveHold) {
|
|
28971
|
+
lastScrollY.current = currentY;
|
|
28972
|
+
return;
|
|
28973
|
+
}
|
|
28974
|
+
const rect = el.getBoundingClientRect();
|
|
28975
|
+
const topOffset = getTopOffsetRef.current?.() ?? 0;
|
|
28976
|
+
if (scrollHeightChanged) {
|
|
28977
|
+
lastScrollY.current = currentY;
|
|
28978
|
+
commit(autoHideStateOnLayoutChange(rect, topOffset));
|
|
28979
|
+
return;
|
|
28980
|
+
}
|
|
28981
|
+
const dy = currentY - lastScrollY.current;
|
|
28982
|
+
lastScrollY.current = currentY;
|
|
28983
|
+
const atBottom = currentY >= doc.scrollHeight - doc.clientHeight;
|
|
28984
|
+
const nextAtTop = rect.top >= topOffset;
|
|
28985
|
+
let next = stateRef.current;
|
|
28986
|
+
if (nextAtTop) {
|
|
28987
|
+
next = "resting";
|
|
28988
|
+
} else if (rect.bottom < -THRESHOLD) {
|
|
28989
|
+
if (dy < 0 && !atBottom) next = "revealed";
|
|
28990
|
+
else if (dy > 0) next = "hidden";
|
|
28991
|
+
}
|
|
28992
|
+
commit(next);
|
|
28993
|
+
};
|
|
28994
|
+
const onHoldRelease = () => {
|
|
28995
|
+
const el = spacerRef.current;
|
|
28996
|
+
if (!el) return;
|
|
28997
|
+
lastScrollY.current = window.scrollY;
|
|
28998
|
+
lastScrollHeight.current = document.documentElement.scrollHeight;
|
|
28999
|
+
if (window.scrollY <= 0) return commit("resting");
|
|
29000
|
+
commit(autoHideStateOnLayoutChange(el.getBoundingClientRect(), getTopOffsetRef.current?.() ?? 0));
|
|
29001
|
+
};
|
|
29002
|
+
updateAutoHideState();
|
|
29003
|
+
window.addEventListener("scroll", updateAutoHideState, { passive: true });
|
|
29004
|
+
holdReleaseListeners.add(onHoldRelease);
|
|
29005
|
+
return () => {
|
|
29006
|
+
window.removeEventListener("scroll", updateAutoHideState);
|
|
29007
|
+
holdReleaseListeners.delete(onHoldRelease);
|
|
29008
|
+
};
|
|
29009
|
+
}, [enabled, spacerRef]);
|
|
29010
|
+
return { state };
|
|
29011
|
+
}
|
|
29012
|
+
|
|
28887
29013
|
// src/components/Layout/GridTableLayout/GridTableLayoutHost.tsx
|
|
28888
29014
|
var import_runtime135 = require("@homebound/truss/runtime");
|
|
28889
29015
|
var import_jsx_runtime206 = require("react/jsx-runtime");
|
|
@@ -28897,12 +29023,33 @@ function GridTableLayoutHost(props) {
|
|
|
28897
29023
|
rightPane,
|
|
28898
29024
|
isVirtualized,
|
|
28899
29025
|
testIds,
|
|
29026
|
+
scrollToTopRef,
|
|
28900
29027
|
children
|
|
28901
29028
|
} = props;
|
|
28902
|
-
const tableWrapperRef = (0,
|
|
28903
|
-
const tableActionsRef = (0,
|
|
29029
|
+
const tableWrapperRef = (0, import_react138.useRef)(null);
|
|
29030
|
+
const tableActionsRef = (0, import_react138.useRef)(null);
|
|
28904
29031
|
const hasActions = actions !== void 0;
|
|
29032
|
+
const {
|
|
29033
|
+
scrollableEl
|
|
29034
|
+
} = useScrollableParent();
|
|
28905
29035
|
useSetTableActionsHeight(tableWrapperRef, tableActionsRef, host.kind !== "scrollable-parent" && hasActions);
|
|
29036
|
+
(0, import_react138.useImperativeHandle)(scrollToTopRef, () => () => {
|
|
29037
|
+
const scrollableParent = host.kind === "scrollable-parent" ? scrollableEl?.parentElement : void 0;
|
|
29038
|
+
if (scrollableParent) {
|
|
29039
|
+
scrollableParent.scrollTo?.({
|
|
29040
|
+
top: 0,
|
|
29041
|
+
behavior: "smooth"
|
|
29042
|
+
});
|
|
29043
|
+
} else {
|
|
29044
|
+
const scrollToWrapper = () => tableWrapperRef.current?.scrollIntoView?.({
|
|
29045
|
+
behavior: "smooth",
|
|
29046
|
+
block: "start",
|
|
29047
|
+
inline: "start"
|
|
29048
|
+
});
|
|
29049
|
+
if (host.kind === "modal") scrollToWrapper();
|
|
29050
|
+
else holdAutoHideWhile(scrollToWrapper);
|
|
29051
|
+
}
|
|
29052
|
+
}, [host.kind, scrollableEl]);
|
|
28906
29053
|
const shared = {
|
|
28907
29054
|
actions,
|
|
28908
29055
|
tableWrapperRef,
|
|
@@ -28956,29 +29103,49 @@ function DocumentScrollHost(props) {
|
|
|
28956
29103
|
"--minWidth": (0, import_runtime135.maybeCssVar)(documentScrollRightPaneContentMinCss())
|
|
28957
29104
|
}]
|
|
28958
29105
|
}), children }) }) : children;
|
|
28959
|
-
return /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(
|
|
28960
|
-
|
|
28961
|
-
|
|
28962
|
-
|
|
28963
|
-
|
|
28964
|
-
"
|
|
28965
|
-
|
|
28966
|
-
|
|
28967
|
-
"
|
|
28968
|
-
|
|
28969
|
-
|
|
28970
|
-
|
|
28971
|
-
|
|
28972
|
-
|
|
28973
|
-
|
|
28974
|
-
|
|
28975
|
-
}
|
|
28976
|
-
|
|
28977
|
-
|
|
28978
|
-
|
|
28979
|
-
|
|
28980
|
-
|
|
28981
|
-
|
|
29106
|
+
return /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(
|
|
29107
|
+
"div",
|
|
29108
|
+
{
|
|
29109
|
+
ref: tableWrapperRef,
|
|
29110
|
+
...(0, import_runtime135.trussProps)({
|
|
29111
|
+
display: "df",
|
|
29112
|
+
flexDirection: "fdc",
|
|
29113
|
+
width: "wfc",
|
|
29114
|
+
minWidth: "mw100",
|
|
29115
|
+
scrollMarginTop: ["scrollMarginTop_var", {
|
|
29116
|
+
"--scrollMarginTop": (0, import_runtime135.maybeCssVar)(stickyNavAndHeaderOffset())
|
|
29117
|
+
}],
|
|
29118
|
+
scrollMarginLeft: ["scrollMarginLeft_var", {
|
|
29119
|
+
"--scrollMarginLeft": (0, import_runtime135.maybeCssVar)(documentScrollContentLeft())
|
|
29120
|
+
}]
|
|
29121
|
+
}),
|
|
29122
|
+
...actions !== void 0 ? selfTopSpaced : {},
|
|
29123
|
+
...testIds.tableWrapper,
|
|
29124
|
+
children: [
|
|
29125
|
+
/* @__PURE__ */ (0, import_jsx_runtime206.jsx)(ActionsBar, { actionsRef: tableActionsRef, xss: {
|
|
29126
|
+
transition: "transitionTop",
|
|
29127
|
+
position: "sticky",
|
|
29128
|
+
top: ["top_var", {
|
|
29129
|
+
"--top": (0, import_runtime135.maybeCssVar)(__maybeInc21(stickyNavAndHeaderOffset()))
|
|
29130
|
+
}],
|
|
29131
|
+
left: ["left_var", {
|
|
29132
|
+
"--left": (0, import_runtime135.maybeCssVar)(__maybeInc21(documentScrollChromeLeft()))
|
|
29133
|
+
}],
|
|
29134
|
+
width: ["w_var", {
|
|
29135
|
+
"--width": (0, import_runtime135.maybeCssVar)(__maybeInc21(`min(100%, ${documentScrollChromeWidth()})`))
|
|
29136
|
+
}],
|
|
29137
|
+
contain: "ctn_inline_size",
|
|
29138
|
+
zIndex: ["z_var", {
|
|
29139
|
+
"--zIndex": (0, import_runtime135.maybeCssVar)(zIndices.tableActions)
|
|
29140
|
+
}],
|
|
29141
|
+
backgroundColor: ["bgColor_var", {
|
|
29142
|
+
"--backgroundColor": "var(--b-surface)"
|
|
29143
|
+
}]
|
|
29144
|
+
}, testIds, children: actions }),
|
|
29145
|
+
tableBody
|
|
29146
|
+
]
|
|
29147
|
+
}
|
|
29148
|
+
);
|
|
28982
29149
|
}
|
|
28983
29150
|
function ScrollableParentHost(props) {
|
|
28984
29151
|
const {
|
|
@@ -29004,7 +29171,7 @@ function ActionsBar({
|
|
|
29004
29171
|
return /* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { ref: actionsRef, ...(0, import_runtime135.trussProps)(xss), ...testIds.stickyContent, children });
|
|
29005
29172
|
}
|
|
29006
29173
|
function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
29007
|
-
const syncHeightVar = (0,
|
|
29174
|
+
const syncHeightVar = (0, import_react138.useCallback)(() => {
|
|
29008
29175
|
const tableWrapper = tableWrapperRef.current;
|
|
29009
29176
|
if (!tableWrapper) return;
|
|
29010
29177
|
if (!enabled) {
|
|
@@ -29022,7 +29189,7 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
|
29022
29189
|
ref: tableActionsRef,
|
|
29023
29190
|
onResize: enabled ? syncHeightVar : noop
|
|
29024
29191
|
});
|
|
29025
|
-
(0,
|
|
29192
|
+
(0, import_react138.useLayoutEffect)(() => {
|
|
29026
29193
|
syncHeightVar();
|
|
29027
29194
|
const tableWrapper = tableWrapperRef.current;
|
|
29028
29195
|
return () => {
|
|
@@ -29032,14 +29199,14 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
|
29032
29199
|
}
|
|
29033
29200
|
|
|
29034
29201
|
// src/components/Layout/GridTableLayout/QueryTable.tsx
|
|
29035
|
-
var
|
|
29202
|
+
var import_react139 = require("react");
|
|
29036
29203
|
var import_jsx_runtime207 = require("react/jsx-runtime");
|
|
29037
29204
|
function QueryTable(props) {
|
|
29038
29205
|
const { emptyFallback, query, createRows, columns, emptyState: emptyStateProp, ...others } = props;
|
|
29039
29206
|
const displayData = query.error ? void 0 : query.data ?? query.previousData;
|
|
29040
|
-
const rows = (0,
|
|
29207
|
+
const rows = (0, import_react139.useMemo)(() => createRows(displayData), [createRows, displayData]);
|
|
29041
29208
|
const fallbackMessage = query.loading ? "Loading\u2026" : query.error ? `Error: ${query.error.message}` : void 0;
|
|
29042
|
-
const emptyState = (0,
|
|
29209
|
+
const emptyState = (0, import_react139.useMemo)(() => {
|
|
29043
29210
|
if (query.loading || query.error) return void 0;
|
|
29044
29211
|
if (emptyStateProp) return emptyStateProp;
|
|
29045
29212
|
return { title: emptyFallback };
|
|
@@ -29068,10 +29235,10 @@ function useGridTableLayoutHost() {
|
|
|
29068
29235
|
}
|
|
29069
29236
|
|
|
29070
29237
|
// src/components/Layout/GridTableLayout/usePersistedTableView.ts
|
|
29071
|
-
var
|
|
29238
|
+
var import_react140 = require("react");
|
|
29072
29239
|
function usePersistedTableView(defaultView, persist) {
|
|
29073
29240
|
const storageKey = persist ? getGridTableViewStorageKey(window.location.pathname) : void 0;
|
|
29074
|
-
const [view, setView] = (0,
|
|
29241
|
+
const [view, setView] = (0, import_react140.useState)(() => {
|
|
29075
29242
|
if (!storageKey) return defaultView;
|
|
29076
29243
|
try {
|
|
29077
29244
|
return parseStoredTableView(localStorage.getItem(storageKey)) ?? defaultView;
|
|
@@ -29079,7 +29246,7 @@ function usePersistedTableView(defaultView, persist) {
|
|
|
29079
29246
|
return defaultView;
|
|
29080
29247
|
}
|
|
29081
29248
|
});
|
|
29082
|
-
const setViewAndPersist = (0,
|
|
29249
|
+
const setViewAndPersist = (0, import_react140.useCallback)(
|
|
29083
29250
|
(next) => {
|
|
29084
29251
|
setView(next);
|
|
29085
29252
|
if (storageKey) {
|
|
@@ -29106,28 +29273,28 @@ function isGridTableProps(props) {
|
|
|
29106
29273
|
}
|
|
29107
29274
|
|
|
29108
29275
|
// src/hooks/useGroupBy.ts
|
|
29109
|
-
var
|
|
29276
|
+
var import_react142 = require("react");
|
|
29110
29277
|
|
|
29111
29278
|
// src/hooks/useQueryState.ts
|
|
29112
|
-
var
|
|
29279
|
+
var import_react141 = require("react");
|
|
29113
29280
|
var import_use_query_params2 = require("use-query-params");
|
|
29114
29281
|
function useQueryState(name, initialValue) {
|
|
29115
29282
|
const [params, setParams] = (0, import_use_query_params2.useQueryParams)({ [name]: import_use_query_params2.StringParam });
|
|
29116
29283
|
const value = params[name] || initialValue;
|
|
29117
|
-
const setValue = (0,
|
|
29284
|
+
const setValue = (0, import_react141.useCallback)((value2) => setParams({ [name]: value2 }, "pushIn"), [name, setParams]);
|
|
29118
29285
|
return [value, setValue];
|
|
29119
29286
|
}
|
|
29120
29287
|
|
|
29121
29288
|
// src/hooks/useGroupBy.ts
|
|
29122
29289
|
function useGroupBy(opts) {
|
|
29123
29290
|
const { inModal } = useModalContext();
|
|
29124
|
-
const options = (0,
|
|
29291
|
+
const options = (0, import_react142.useMemo)(
|
|
29125
29292
|
() => safeEntries(opts).map(([key, value]) => ({ id: key, name: value })),
|
|
29126
29293
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29127
29294
|
[]
|
|
29128
29295
|
);
|
|
29129
29296
|
const [queryValue, setQueryValue] = useQueryState("groupBy", options[0].id);
|
|
29130
|
-
const [localValue, setLocalValue] = (0,
|
|
29297
|
+
const [localValue, setLocalValue] = (0, import_react142.useState)(options[0].id);
|
|
29131
29298
|
return {
|
|
29132
29299
|
value: inModal ? localValue : queryValue,
|
|
29133
29300
|
setValue: inModal ? setLocalValue : setQueryValue,
|
|
@@ -29136,17 +29303,17 @@ function useGroupBy(opts) {
|
|
|
29136
29303
|
}
|
|
29137
29304
|
|
|
29138
29305
|
// src/hooks/usePersistedFilter.ts
|
|
29139
|
-
var
|
|
29306
|
+
var import_react144 = require("react");
|
|
29140
29307
|
|
|
29141
29308
|
// src/hooks/useSessionStorage.ts
|
|
29142
|
-
var
|
|
29309
|
+
var import_react143 = require("react");
|
|
29143
29310
|
function useSessionStorage(key, defaultValue) {
|
|
29144
29311
|
let hasSessionStorage = false;
|
|
29145
29312
|
try {
|
|
29146
29313
|
hasSessionStorage = !!window.sessionStorage;
|
|
29147
29314
|
} catch (e) {
|
|
29148
29315
|
}
|
|
29149
|
-
const [state, setState] = (0,
|
|
29316
|
+
const [state, setState] = (0, import_react143.useState)(() => {
|
|
29150
29317
|
if (!hasSessionStorage) {
|
|
29151
29318
|
return defaultValue;
|
|
29152
29319
|
}
|
|
@@ -29157,7 +29324,7 @@ function useSessionStorage(key, defaultValue) {
|
|
|
29157
29324
|
sessionStorage.setItem(key, JSON.stringify(defaultValue));
|
|
29158
29325
|
return defaultValue;
|
|
29159
29326
|
});
|
|
29160
|
-
const setAndSave = (0,
|
|
29327
|
+
const setAndSave = (0, import_react143.useCallback)(
|
|
29161
29328
|
(value) => {
|
|
29162
29329
|
if (hasSessionStorage && value) {
|
|
29163
29330
|
sessionStorage.setItem(key, JSON.stringify(value));
|
|
@@ -29181,12 +29348,12 @@ function getParsedStorage(key) {
|
|
|
29181
29348
|
var import_use_query_params3 = require("use-query-params");
|
|
29182
29349
|
function usePersistedFilter({ storageKey, filterDefs }) {
|
|
29183
29350
|
const { inModal } = useModalContext();
|
|
29184
|
-
const filterImpls = (0,
|
|
29351
|
+
const filterImpls = (0, import_react144.useMemo)(
|
|
29185
29352
|
() => Object.fromEntries(safeEntries(filterDefs).map(([key, def]) => [key, def(key)])),
|
|
29186
29353
|
[filterDefs]
|
|
29187
29354
|
);
|
|
29188
|
-
const filterKeys = (0,
|
|
29189
|
-
const defaultFilter = (0,
|
|
29355
|
+
const filterKeys = (0, import_react144.useMemo)(() => Object.keys(filterImpls), [filterImpls]);
|
|
29356
|
+
const defaultFilter = (0, import_react144.useMemo)(
|
|
29190
29357
|
() => Object.fromEntries(
|
|
29191
29358
|
safeEntries(filterImpls).filter(([, def]) => def.defaultValue !== void 0).map(([key, def]) => [key, def.defaultValue])
|
|
29192
29359
|
),
|
|
@@ -29198,18 +29365,18 @@ function usePersistedFilter({ storageKey, filterDefs }) {
|
|
|
29198
29365
|
dehydrateFilter(filterImpls, defaultFilter) ?? defaultFilter
|
|
29199
29366
|
);
|
|
29200
29367
|
const isQueryParamFilterValid = hasValidFilterKeys(queryParamsFilter, filterKeys);
|
|
29201
|
-
const serializedQueryParamsFilter = (0,
|
|
29202
|
-
const serializedStoredFilter = (0,
|
|
29203
|
-
const queryParamsFilterSnapshot = (0,
|
|
29368
|
+
const serializedQueryParamsFilter = (0, import_react144.useMemo)(() => JSON.stringify(queryParamsFilter), [queryParamsFilter]);
|
|
29369
|
+
const serializedStoredFilter = (0, import_react144.useMemo)(() => JSON.stringify(storedFilter), [storedFilter]);
|
|
29370
|
+
const queryParamsFilterSnapshot = (0, import_react144.useMemo)(
|
|
29204
29371
|
() => parseSerializedValue(serializedQueryParamsFilter),
|
|
29205
29372
|
[serializedQueryParamsFilter]
|
|
29206
29373
|
);
|
|
29207
|
-
const storedFilterSnapshot = (0,
|
|
29208
|
-
const hydratedQueryParamsFilter = (0,
|
|
29374
|
+
const storedFilterSnapshot = (0, import_react144.useMemo)(() => parseSerializedValue(serializedStoredFilter), [serializedStoredFilter]);
|
|
29375
|
+
const hydratedQueryParamsFilter = (0, import_react144.useMemo)(
|
|
29209
29376
|
() => isQueryParamFilterValid ? hydrateFilter(filterImpls, queryParamsFilterSnapshot) : void 0,
|
|
29210
29377
|
[filterImpls, isQueryParamFilterValid, queryParamsFilterSnapshot]
|
|
29211
29378
|
);
|
|
29212
|
-
const hydratedStoredFilter = (0,
|
|
29379
|
+
const hydratedStoredFilter = (0, import_react144.useMemo)(
|
|
29213
29380
|
() => hasValidFilterKeys(storedFilterSnapshot, filterKeys) ? hydrateFilter(filterImpls, storedFilterSnapshot) : void 0,
|
|
29214
29381
|
[filterImpls, filterKeys, storedFilterSnapshot]
|
|
29215
29382
|
);
|
|
@@ -29223,7 +29390,7 @@ function usePersistedFilter({ storageKey, filterDefs }) {
|
|
|
29223
29390
|
}
|
|
29224
29391
|
setQueryParams({ filter: dehydrated });
|
|
29225
29392
|
};
|
|
29226
|
-
(0,
|
|
29393
|
+
(0, import_react144.useEffect)(
|
|
29227
29394
|
() => {
|
|
29228
29395
|
if (inModal) return;
|
|
29229
29396
|
if (queryParamsFilter === void 0) {
|
|
@@ -29273,8 +29440,8 @@ function parseSerializedValue(value) {
|
|
|
29273
29440
|
return value === void 0 ? void 0 : JSON.parse(value);
|
|
29274
29441
|
}
|
|
29275
29442
|
function useStableValue(value) {
|
|
29276
|
-
const stableValue = (0,
|
|
29277
|
-
const stableKey = (0,
|
|
29443
|
+
const stableValue = (0, import_react144.useRef)(value);
|
|
29444
|
+
const stableKey = (0, import_react144.useRef)(JSON.stringify(value));
|
|
29278
29445
|
const nextKey = JSON.stringify(value);
|
|
29279
29446
|
if (stableKey.current !== nextKey) {
|
|
29280
29447
|
stableValue.current = value;
|
|
@@ -29297,19 +29464,20 @@ function GridTableLayoutComponent(props) {
|
|
|
29297
29464
|
withCardView,
|
|
29298
29465
|
defaultView = "list",
|
|
29299
29466
|
emptyFallback: layoutEmptyFallback,
|
|
29300
|
-
withRightPane
|
|
29467
|
+
withRightPane,
|
|
29468
|
+
scrollToTopOnFilterChange = false
|
|
29301
29469
|
} = props;
|
|
29302
29470
|
const tid = useTestIds(props);
|
|
29303
29471
|
const host = useGridTableLayoutHost();
|
|
29304
29472
|
const insetHandled = useContentInsetHandled();
|
|
29305
29473
|
const includeColumnGutters = host.kind === "document-scroll" || host.kind === "modal";
|
|
29306
29474
|
const columns = tableProps.columns;
|
|
29307
|
-
const hasHideableColumns = (0,
|
|
29475
|
+
const hasHideableColumns = (0, import_react145.useMemo)(() => {
|
|
29308
29476
|
if (hideEditColumns) return false;
|
|
29309
29477
|
validateColumns(columns);
|
|
29310
29478
|
return columns.some((c) => c.canHide);
|
|
29311
29479
|
}, [columns, hideEditColumns]);
|
|
29312
|
-
const api = (0,
|
|
29480
|
+
const api = (0, import_react145.useMemo)(
|
|
29313
29481
|
() => tableProps.api ?? new GridTableApiImpl(),
|
|
29314
29482
|
[tableProps.api]
|
|
29315
29483
|
);
|
|
@@ -29319,22 +29487,29 @@ function GridTableLayoutComponent(props) {
|
|
|
29319
29487
|
selectionSummary);
|
|
29320
29488
|
const isVirtualized = tableProps.as === "virtual" || view === "card";
|
|
29321
29489
|
const visibleColumnIds = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
29322
|
-
(0,
|
|
29490
|
+
(0, import_react145.useEffect)(() => {
|
|
29323
29491
|
if (layoutState?.setVisibleColumnIds) {
|
|
29324
29492
|
layoutState.setVisibleColumnIds(visibleColumnIds);
|
|
29325
29493
|
}
|
|
29326
29494
|
}, [visibleColumnIds, layoutState]);
|
|
29327
29495
|
const visibleColumnsStorageKey = layoutState?.persistedColumnsStorageKey;
|
|
29328
|
-
const filterSearchProps = (0,
|
|
29496
|
+
const filterSearchProps = (0, import_react145.useMemo)(
|
|
29329
29497
|
() => layoutState?.search ? { onSearch: layoutState.setSearchString } : void 0,
|
|
29330
29498
|
[layoutState?.search, layoutState?.setSearchString]
|
|
29331
29499
|
);
|
|
29332
|
-
const searchApiRef = (0,
|
|
29333
|
-
const clearFilters = (0,
|
|
29500
|
+
const searchApiRef = (0, import_react145.useRef)(void 0);
|
|
29501
|
+
const clearFilters = (0, import_react145.useCallback)(() => {
|
|
29334
29502
|
layoutState?.clearFilters();
|
|
29335
29503
|
searchApiRef.current?.clear();
|
|
29336
29504
|
}, [layoutState]);
|
|
29337
|
-
const
|
|
29505
|
+
const scrollToTopRef = (0, import_react145.useRef)(void 0);
|
|
29506
|
+
useScrollToTopOnFilterChange({
|
|
29507
|
+
enabled: scrollToTopOnFilterChange,
|
|
29508
|
+
layoutState,
|
|
29509
|
+
loading: isGridTableProps(tableProps) ? !!tableProps.loading : tableProps.query.loading,
|
|
29510
|
+
scrollToTopRef
|
|
29511
|
+
});
|
|
29512
|
+
const emptyState = (0, import_react145.useMemo)(
|
|
29338
29513
|
() => composeEmptyState(tableProps, layoutState, layoutEmptyFallback, clearFilters),
|
|
29339
29514
|
[layoutEmptyFallback, layoutState, tableProps, clearFilters]
|
|
29340
29515
|
);
|
|
@@ -29361,7 +29536,7 @@ function GridTableLayoutComponent(props) {
|
|
|
29361
29536
|
}
|
|
29362
29537
|
);
|
|
29363
29538
|
const cardAs = view === "card" ? "card" : void 0;
|
|
29364
|
-
const tableStyle = (0,
|
|
29539
|
+
const tableStyle = (0, import_react145.useMemo)(() => getDefaultStyle(tableProps.style, insetHandled), [tableProps.style, insetHandled]);
|
|
29365
29540
|
const tableBody = /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(import_jsx_runtime208.Fragment, { children: isGridTableProps(tableProps) ? /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(
|
|
29366
29541
|
GridTable,
|
|
29367
29542
|
{
|
|
@@ -29399,11 +29574,25 @@ function GridTableLayoutComponent(props) {
|
|
|
29399
29574
|
rightPane: withRightPane,
|
|
29400
29575
|
isVirtualized,
|
|
29401
29576
|
testIds: tid,
|
|
29577
|
+
scrollToTopRef,
|
|
29402
29578
|
children: tableBody
|
|
29403
29579
|
}
|
|
29404
29580
|
);
|
|
29405
29581
|
}
|
|
29406
|
-
var GridTableLayout =
|
|
29582
|
+
var GridTableLayout = import_react145.default.memo(GridTableLayoutComponent);
|
|
29583
|
+
function useScrollToTopOnFilterChange(opts) {
|
|
29584
|
+
const { enabled, layoutState, loading, scrollToTopRef } = opts;
|
|
29585
|
+
const { filter, searchString } = layoutState ?? {};
|
|
29586
|
+
const currentFiltersRef = (0, import_react145.useRef)({ filter, searchString });
|
|
29587
|
+
(0, import_react145.useEffect)(() => {
|
|
29588
|
+
const scrolledFor = currentFiltersRef.current;
|
|
29589
|
+
if (scrolledFor.filter === filter && scrolledFor.searchString === searchString) return;
|
|
29590
|
+
if (!enabled) return void (currentFiltersRef.current = { filter, searchString });
|
|
29591
|
+
if (loading) return;
|
|
29592
|
+
currentFiltersRef.current = { filter, searchString };
|
|
29593
|
+
scrollToTopRef.current?.();
|
|
29594
|
+
}, [enabled, filter, searchString, loading, scrollToTopRef]);
|
|
29595
|
+
}
|
|
29407
29596
|
function getDefaultStyle(style, insetHandled) {
|
|
29408
29597
|
if (style !== void 0 && !isGridStyleDef(style)) return style;
|
|
29409
29598
|
return { allWhite: true, ...!insetHandled && { bordered: "top" }, ...style };
|
|
@@ -29424,14 +29613,14 @@ function useGridTableLayoutState({
|
|
|
29424
29613
|
const filterFallback = { filterDefs: {}, storageKey: "unset-filter" };
|
|
29425
29614
|
const { filter, setFilter } = usePersistedFilter(persistedFilter ?? filterFallback);
|
|
29426
29615
|
const groupBy = useGroupBy(maybeGroupBy ?? { none: "none" });
|
|
29427
|
-
const [searchString, setSearchString] = (0,
|
|
29616
|
+
const [searchString, setSearchString] = (0, import_react145.useState)("");
|
|
29428
29617
|
const columnsFallback = "unset-columns";
|
|
29429
29618
|
const [visibleColumnIds, setVisibleColumnIds] = useSessionStorage(
|
|
29430
29619
|
persistedColumns?.storageKey ?? columnsFallback,
|
|
29431
29620
|
void 0
|
|
29432
29621
|
);
|
|
29433
29622
|
const filteringActive = getActiveFilterCount(filter) > 0 || !!searchString;
|
|
29434
|
-
const clearFilters = (0,
|
|
29623
|
+
const clearFilters = (0, import_react145.useCallback)(() => {
|
|
29435
29624
|
setFilter({});
|
|
29436
29625
|
setSearchString("");
|
|
29437
29626
|
}, [setFilter]);
|
|
@@ -29478,7 +29667,7 @@ function PreventBrowserScroll({
|
|
|
29478
29667
|
|
|
29479
29668
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
29480
29669
|
var import_framer_motion4 = require("framer-motion");
|
|
29481
|
-
var
|
|
29670
|
+
var import_react146 = require("react");
|
|
29482
29671
|
var import_runtime136 = require("@homebound/truss/runtime");
|
|
29483
29672
|
var import_jsx_runtime210 = require("react/jsx-runtime");
|
|
29484
29673
|
var __maybeInc22 = (inc) => {
|
|
@@ -29496,7 +29685,7 @@ function RightPaneLayout(props) {
|
|
|
29496
29685
|
clearPane: clearPane2
|
|
29497
29686
|
} = useRightPaneOpenState();
|
|
29498
29687
|
const rightPaneContent = useRightPaneContent();
|
|
29499
|
-
(0,
|
|
29688
|
+
(0, import_react146.useEffect)(() => hideRightPane, []);
|
|
29500
29689
|
return /* @__PURE__ */ (0, import_jsx_runtime210.jsx)("div", { className: "h100 df oxh", children: /* @__PURE__ */ (0, import_jsx_runtime210.jsxs)(import_jsx_runtime210.Fragment, { children: [
|
|
29501
29690
|
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)("div", { ...(0, import_runtime136.trussProps)({
|
|
29502
29691
|
...{
|
|
@@ -29586,12 +29775,12 @@ function RightPaneLayout(props) {
|
|
|
29586
29775
|
}
|
|
29587
29776
|
|
|
29588
29777
|
// src/components/Layout/RightPaneLayout/RightPanePanel.tsx
|
|
29589
|
-
var
|
|
29778
|
+
var import_react148 = require("react");
|
|
29590
29779
|
var import_react_dom8 = require("react-dom");
|
|
29591
29780
|
|
|
29592
29781
|
// src/components/Layout/RightPaneLayout/internal/DeleteAction.tsx
|
|
29593
29782
|
var import_utils43 = require("@react-aria/utils");
|
|
29594
|
-
var
|
|
29783
|
+
var import_react147 = require("react");
|
|
29595
29784
|
var import_runtime137 = require("@homebound/truss/runtime");
|
|
29596
29785
|
var import_jsx_runtime211 = require("react/jsx-runtime");
|
|
29597
29786
|
function MaybeDeleteAction(props) {
|
|
@@ -29608,9 +29797,9 @@ function BulkDeleteAction(props) {
|
|
|
29608
29797
|
count,
|
|
29609
29798
|
...buttonProps
|
|
29610
29799
|
} = props;
|
|
29611
|
-
const containerRef = (0,
|
|
29612
|
-
const contentRef = (0,
|
|
29613
|
-
const [overflows, setOverflows] = (0,
|
|
29800
|
+
const containerRef = (0, import_react147.useRef)(null);
|
|
29801
|
+
const contentRef = (0, import_react147.useRef)(null);
|
|
29802
|
+
const [overflows, setOverflows] = (0, import_react147.useState)(false);
|
|
29614
29803
|
const onResize = () => {
|
|
29615
29804
|
if (!containerRef.current || !contentRef.current) return;
|
|
29616
29805
|
setOverflows(contentRef.current.offsetWidth > containerRef.current.clientWidth);
|
|
@@ -29677,11 +29866,11 @@ function RightPanePanel(props) {
|
|
|
29677
29866
|
const {
|
|
29678
29867
|
closeRightPane
|
|
29679
29868
|
} = useRightPaneActions();
|
|
29680
|
-
const [bannerSlot, setBannerSlot] = (0,
|
|
29869
|
+
const [bannerSlot, setBannerSlot] = (0, import_react148.useState)(null);
|
|
29681
29870
|
const {
|
|
29682
29871
|
openModal
|
|
29683
29872
|
} = useModal();
|
|
29684
|
-
(0,
|
|
29873
|
+
(0, import_react148.useEffect)(() => {
|
|
29685
29874
|
if (!isDirty) return;
|
|
29686
29875
|
return setRightPaneDiscardPrompt((proceed) => {
|
|
29687
29876
|
if (!isDirty()) return proceed();
|
|
@@ -29744,11 +29933,11 @@ function RightPaneBanner(props) {
|
|
|
29744
29933
|
const {
|
|
29745
29934
|
children
|
|
29746
29935
|
} = props;
|
|
29747
|
-
const slot = (0,
|
|
29936
|
+
const slot = (0, import_react148.useContext)(RightPaneBannerSlotContext);
|
|
29748
29937
|
if (slot === void 0) fail("RightPaneBanner must be rendered inside a RightPanePanel");
|
|
29749
29938
|
return slot ? (0, import_react_dom8.createPortal)(children, slot) : null;
|
|
29750
29939
|
}
|
|
29751
|
-
var RightPaneBannerSlotContext = (0,
|
|
29940
|
+
var RightPaneBannerSlotContext = (0, import_react148.createContext)(void 0);
|
|
29752
29941
|
|
|
29753
29942
|
// src/components/Layout/ScrollableFooter.tsx
|
|
29754
29943
|
var import_react_dom9 = require("react-dom");
|
|
@@ -29764,7 +29953,7 @@ function ScrollableFooter(props) {
|
|
|
29764
29953
|
|
|
29765
29954
|
// src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
|
|
29766
29955
|
var import_framer_motion5 = require("framer-motion");
|
|
29767
|
-
var
|
|
29956
|
+
var import_react149 = require("react");
|
|
29768
29957
|
|
|
29769
29958
|
// src/components/Layout/TableReviewLayout/SidePanel.tsx
|
|
29770
29959
|
var import_jsx_runtime214 = require("react/jsx-runtime");
|
|
@@ -29804,8 +29993,8 @@ function TableReviewLayout(props) {
|
|
|
29804
29993
|
rightPaneWidth = defaultRightPaneWidth
|
|
29805
29994
|
} = props;
|
|
29806
29995
|
const tid = useTestIds(props, "tableReviewLayout");
|
|
29807
|
-
const [isPanelVisible, setIsPanelVisible] = (0,
|
|
29808
|
-
(0,
|
|
29996
|
+
const [isPanelVisible, setIsPanelVisible] = (0, import_react149.useState)(!!panelContent);
|
|
29997
|
+
(0, import_react149.useEffect)(() => {
|
|
29809
29998
|
setIsPanelVisible(!!panelContent);
|
|
29810
29999
|
}, [panelContent]);
|
|
29811
30000
|
function handleClosePanel() {
|
|
@@ -29965,24 +30154,24 @@ function HomeboundLogo(props) {
|
|
|
29965
30154
|
|
|
29966
30155
|
// src/components/MaxLines.tsx
|
|
29967
30156
|
var import_utils44 = require("@react-aria/utils");
|
|
29968
|
-
var
|
|
30157
|
+
var import_react150 = require("react");
|
|
29969
30158
|
var import_runtime142 = require("@homebound/truss/runtime");
|
|
29970
30159
|
var import_jsx_runtime218 = require("react/jsx-runtime");
|
|
29971
30160
|
function MaxLines({
|
|
29972
30161
|
maxLines,
|
|
29973
30162
|
children
|
|
29974
30163
|
}) {
|
|
29975
|
-
const elRef = (0,
|
|
29976
|
-
const [hasMore, setHasMore] = (0,
|
|
29977
|
-
const [expanded, setExpanded] = (0,
|
|
30164
|
+
const elRef = (0, import_react150.useRef)(null);
|
|
30165
|
+
const [hasMore, setHasMore] = (0, import_react150.useState)(false);
|
|
30166
|
+
const [expanded, setExpanded] = (0, import_react150.useState)(false);
|
|
29978
30167
|
(0, import_utils44.useLayoutEffect)(() => {
|
|
29979
30168
|
if (!elRef.current) return;
|
|
29980
30169
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
29981
30170
|
}, []);
|
|
29982
|
-
(0,
|
|
30171
|
+
(0, import_react150.useEffect)(() => {
|
|
29983
30172
|
setExpanded(false);
|
|
29984
30173
|
}, [children]);
|
|
29985
|
-
const onResize = (0,
|
|
30174
|
+
const onResize = (0, import_react150.useCallback)(() => {
|
|
29986
30175
|
if (!elRef.current) return;
|
|
29987
30176
|
!expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
29988
30177
|
}, [expanded]);
|
|
@@ -30097,7 +30286,7 @@ function toPageNumberSize(page) {
|
|
|
30097
30286
|
|
|
30098
30287
|
// src/components/ScrollShadows.tsx
|
|
30099
30288
|
var import_utils45 = require("@react-aria/utils");
|
|
30100
|
-
var
|
|
30289
|
+
var import_react151 = require("react");
|
|
30101
30290
|
var import_runtime144 = require("@homebound/truss/runtime");
|
|
30102
30291
|
var import_jsx_runtime220 = require("react/jsx-runtime");
|
|
30103
30292
|
function ScrollShadows(props) {
|
|
@@ -30115,10 +30304,10 @@ function ScrollShadows(props) {
|
|
|
30115
30304
|
if (!bgColor.includes("rgba")) {
|
|
30116
30305
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
30117
30306
|
}
|
|
30118
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
30119
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
30120
|
-
const scrollRef = (0,
|
|
30121
|
-
const [startShadowStyles, endShadowStyles] = (0,
|
|
30307
|
+
const [showStartShadow, setShowStartShadow] = (0, import_react151.useState)(false);
|
|
30308
|
+
const [showEndShadow, setShowEndShadow] = (0, import_react151.useState)(false);
|
|
30309
|
+
const scrollRef = (0, import_react151.useRef)(null);
|
|
30310
|
+
const [startShadowStyles, endShadowStyles] = (0, import_react151.useMemo)(() => {
|
|
30122
30311
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
30123
30312
|
const commonStyles = {
|
|
30124
30313
|
position: "absolute",
|
|
@@ -30169,7 +30358,7 @@ function ScrollShadows(props) {
|
|
|
30169
30358
|
}
|
|
30170
30359
|
}];
|
|
30171
30360
|
}, [horizontal, bgColor]);
|
|
30172
|
-
const updateScrollProps = (0,
|
|
30361
|
+
const updateScrollProps = (0, import_react151.useCallback)((el) => {
|
|
30173
30362
|
const {
|
|
30174
30363
|
scrollTop,
|
|
30175
30364
|
scrollHeight,
|
|
@@ -30184,7 +30373,7 @@ function ScrollShadows(props) {
|
|
|
30184
30373
|
setShowStartShadow(start > 0);
|
|
30185
30374
|
setShowEndShadow(start + boxSize < end);
|
|
30186
30375
|
}, [horizontal]);
|
|
30187
|
-
const onResize = (0,
|
|
30376
|
+
const onResize = (0, import_react151.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
30188
30377
|
(0, import_utils45.useResizeObserver)({
|
|
30189
30378
|
ref: scrollRef,
|
|
30190
30379
|
onResize
|
|
@@ -30238,10 +30427,10 @@ var import_change_case8 = require("change-case");
|
|
|
30238
30427
|
// src/components/AppNav/AppNavGroup.tsx
|
|
30239
30428
|
var import_utils46 = require("@react-aria/utils");
|
|
30240
30429
|
var import_change_case7 = require("change-case");
|
|
30241
|
-
var
|
|
30430
|
+
var import_react154 = require("react");
|
|
30242
30431
|
|
|
30243
30432
|
// src/components/AppNav/AppNavGroupTrigger.tsx
|
|
30244
|
-
var
|
|
30433
|
+
var import_react152 = require("react");
|
|
30245
30434
|
var import_react_aria68 = require("react-aria");
|
|
30246
30435
|
var import_runtime145 = require("@homebound/truss/runtime");
|
|
30247
30436
|
var import_jsx_runtime221 = require("react/jsx-runtime");
|
|
@@ -30254,7 +30443,7 @@ function AppNavGroupTrigger(props) {
|
|
|
30254
30443
|
active = false
|
|
30255
30444
|
} = props;
|
|
30256
30445
|
const tid = useTestIds(props, "trigger");
|
|
30257
|
-
const ref = (0,
|
|
30446
|
+
const ref = (0, import_react152.useRef)(null);
|
|
30258
30447
|
const {
|
|
30259
30448
|
buttonProps,
|
|
30260
30449
|
isPressed
|
|
@@ -30275,7 +30464,7 @@ function AppNavGroupTrigger(props) {
|
|
|
30275
30464
|
focusRingStyles: focusRingStyles2,
|
|
30276
30465
|
hoverStyles: hoverStyles4,
|
|
30277
30466
|
pressedStyles: pressedStyles2
|
|
30278
|
-
} = (0,
|
|
30467
|
+
} = (0, import_react152.useMemo)(() => getNavLinkStyles("side"), []);
|
|
30279
30468
|
return /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)("button", { type: "button", ...(0, import_react_aria68.mergeProps)(buttonProps, focusProps, hoverProps, tid.trigger, {
|
|
30280
30469
|
ref,
|
|
30281
30470
|
"aria-expanded": expanded,
|
|
@@ -30413,7 +30602,7 @@ function entryHasIcons(item) {
|
|
|
30413
30602
|
}
|
|
30414
30603
|
|
|
30415
30604
|
// src/components/AppNav/useAppNavGroupExpanded.ts
|
|
30416
|
-
var
|
|
30605
|
+
var import_react153 = require("react");
|
|
30417
30606
|
var APP_NAV_EXPANDED_LINK_GROUPS_STORAGE_KEY = "beam.appNav.expandedLinkGroups";
|
|
30418
30607
|
function loadStored() {
|
|
30419
30608
|
try {
|
|
@@ -30432,13 +30621,13 @@ function persistLabel(label, expanded) {
|
|
|
30432
30621
|
}
|
|
30433
30622
|
function useAppNavGroupExpanded(linkGroup) {
|
|
30434
30623
|
const { label } = linkGroup;
|
|
30435
|
-
const [userExpanded, setUserExpanded] = (0,
|
|
30624
|
+
const [userExpanded, setUserExpanded] = (0, import_react153.useState)(() => {
|
|
30436
30625
|
const stored = loadStored();
|
|
30437
30626
|
return label in stored ? stored[label] : null;
|
|
30438
30627
|
});
|
|
30439
30628
|
const hasActiveLink = appNavLinkGroupLinks(linkGroup).some((l) => l.active);
|
|
30440
30629
|
const expanded = userExpanded !== null ? userExpanded : hasActiveLink ? true : linkGroup.defaultExpanded ?? false;
|
|
30441
|
-
const onToggle = (0,
|
|
30630
|
+
const onToggle = (0, import_react153.useCallback)(() => {
|
|
30442
30631
|
const next = !expanded;
|
|
30443
30632
|
setUserExpanded(next);
|
|
30444
30633
|
persistLabel(label, next);
|
|
@@ -30473,15 +30662,15 @@ function AppNavGroupDisclosure(props) {
|
|
|
30473
30662
|
} = useAppNavGroupExpanded(linkGroup);
|
|
30474
30663
|
const tid = useTestIds(props, "linkGroup");
|
|
30475
30664
|
const navGroupId = `nav-group-${(0, import_change_case7.kebabCase)(linkGroup.label)}`;
|
|
30476
|
-
const [contentEl, setContentEl] = (0,
|
|
30477
|
-
const contentRef = (0,
|
|
30665
|
+
const [contentEl, setContentEl] = (0, import_react154.useState)(null);
|
|
30666
|
+
const contentRef = (0, import_react154.useMemo)(() => ({
|
|
30478
30667
|
current: contentEl
|
|
30479
30668
|
}), [contentEl]);
|
|
30480
|
-
const [contentHeight, setContentHeight] = (0,
|
|
30481
|
-
(0,
|
|
30669
|
+
const [contentHeight, setContentHeight] = (0, import_react154.useState)(expanded ? "auto" : "0");
|
|
30670
|
+
(0, import_react154.useEffect)(() => {
|
|
30482
30671
|
setContentHeight(expanded && contentEl ? `${contentEl.scrollHeight}px` : "0");
|
|
30483
30672
|
}, [expanded, contentEl]);
|
|
30484
|
-
const onResize = (0,
|
|
30673
|
+
const onResize = (0, import_react154.useCallback)(() => {
|
|
30485
30674
|
if (contentEl && expanded) {
|
|
30486
30675
|
setContentHeight(`${contentEl.scrollHeight}px`);
|
|
30487
30676
|
}
|
|
@@ -30627,7 +30816,7 @@ function AppNavItems(props) {
|
|
|
30627
30816
|
}
|
|
30628
30817
|
|
|
30629
30818
|
// src/layouts/SideNavLayout/SideNavLayoutContext.tsx
|
|
30630
|
-
var
|
|
30819
|
+
var import_react155 = require("react");
|
|
30631
30820
|
var import_jsx_runtime226 = require("react/jsx-runtime");
|
|
30632
30821
|
var SIDE_NAV_LAYOUT_STATE_STORAGE_KEY = "beam.sideNavLayout.navState";
|
|
30633
30822
|
function loadStoredNavState() {
|
|
@@ -30650,20 +30839,20 @@ function resolveInitialNavState(defaultNavState) {
|
|
|
30650
30839
|
}
|
|
30651
30840
|
return loadStoredNavState() ?? defaultNavState ?? "expanded";
|
|
30652
30841
|
}
|
|
30653
|
-
var SideNavLayoutContext = (0,
|
|
30842
|
+
var SideNavLayoutContext = (0, import_react155.createContext)(void 0);
|
|
30654
30843
|
function SideNavLayoutProvider(props) {
|
|
30655
|
-
const [navState, setNavStateInternal] = (0,
|
|
30844
|
+
const [navState, setNavStateInternal] = (0, import_react155.useState)(
|
|
30656
30845
|
() => resolveInitialNavState(props.defaultNavState)
|
|
30657
30846
|
);
|
|
30658
30847
|
const bp = useBreakpoint();
|
|
30659
|
-
const prevMdAndUp = (0,
|
|
30660
|
-
(0,
|
|
30848
|
+
const prevMdAndUp = (0, import_react155.useRef)(bp.mdAndUp);
|
|
30849
|
+
(0, import_react155.useEffect)(() => {
|
|
30661
30850
|
if (prevMdAndUp.current && !bp.mdAndUp) {
|
|
30662
30851
|
setNavStateInternal((prev) => prev === "expanded" ? "collapse" : prev);
|
|
30663
30852
|
}
|
|
30664
30853
|
prevMdAndUp.current = bp.mdAndUp;
|
|
30665
30854
|
}, [bp.mdAndUp]);
|
|
30666
|
-
const setNavState = (0,
|
|
30855
|
+
const setNavState = (0, import_react155.useCallback)((value2) => {
|
|
30667
30856
|
setNavStateInternal((prev) => {
|
|
30668
30857
|
const next = typeof value2 === "function" ? value2(prev) : value2;
|
|
30669
30858
|
if (next === "expanded" || next === "collapse") {
|
|
@@ -30675,15 +30864,15 @@ function SideNavLayoutProvider(props) {
|
|
|
30675
30864
|
return next;
|
|
30676
30865
|
});
|
|
30677
30866
|
}, []);
|
|
30678
|
-
const value = (0,
|
|
30867
|
+
const value = (0, import_react155.useMemo)(() => ({ navState, setNavState }), [navState, setNavState]);
|
|
30679
30868
|
return /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(SideNavLayoutContext.Provider, { value, children: props.children });
|
|
30680
30869
|
}
|
|
30681
30870
|
function useSideNavLayoutContext() {
|
|
30682
|
-
return (0,
|
|
30871
|
+
return (0, import_react155.useContext)(SideNavLayoutContext) ?? { navState: "expanded", setNavState: () => {
|
|
30683
30872
|
} };
|
|
30684
30873
|
}
|
|
30685
30874
|
function useHasSideNavLayoutProvider() {
|
|
30686
|
-
return (0,
|
|
30875
|
+
return (0, import_react155.useContext)(SideNavLayoutContext) !== void 0;
|
|
30687
30876
|
}
|
|
30688
30877
|
|
|
30689
30878
|
// src/components/SideNav/SideNav.tsx
|
|
@@ -30744,11 +30933,11 @@ function SideNav(props) {
|
|
|
30744
30933
|
}
|
|
30745
30934
|
|
|
30746
30935
|
// src/components/Stepper.tsx
|
|
30747
|
-
var
|
|
30936
|
+
var import_react156 = require("react");
|
|
30748
30937
|
var import_react_aria69 = require("react-aria");
|
|
30749
30938
|
var import_runtime149 = require("@homebound/truss/runtime");
|
|
30750
30939
|
var import_jsx_runtime228 = require("react/jsx-runtime");
|
|
30751
|
-
var
|
|
30940
|
+
var import_react157 = require("react");
|
|
30752
30941
|
var __maybeInc26 = (inc) => {
|
|
30753
30942
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
30754
30943
|
};
|
|
@@ -30777,7 +30966,7 @@ function Stepper(props) {
|
|
|
30777
30966
|
}]
|
|
30778
30967
|
}), children: steps.map((step) => {
|
|
30779
30968
|
const isCurrent = currentStep === step.value;
|
|
30780
|
-
return /* @__PURE__ */ (0,
|
|
30969
|
+
return /* @__PURE__ */ (0, import_react157.createElement)("li", { ...(0, import_runtime149.trussProps)({
|
|
30781
30970
|
display: "df",
|
|
30782
30971
|
flexGrow: "fg1",
|
|
30783
30972
|
flexDirection: "fdc",
|
|
@@ -30826,7 +31015,7 @@ function StepButton(props) {
|
|
|
30826
31015
|
onPress: onClick,
|
|
30827
31016
|
isDisabled: disabled
|
|
30828
31017
|
};
|
|
30829
|
-
const ref = (0,
|
|
31018
|
+
const ref = (0, import_react156.useRef)(null);
|
|
30830
31019
|
const {
|
|
30831
31020
|
buttonProps,
|
|
30832
31021
|
isPressed
|
|
@@ -30936,7 +31125,7 @@ function StepIcon({
|
|
|
30936
31125
|
}
|
|
30937
31126
|
|
|
30938
31127
|
// src/components/StepperTabs/StepperTab.tsx
|
|
30939
|
-
var
|
|
31128
|
+
var import_react158 = require("react");
|
|
30940
31129
|
var import_react_aria70 = require("react-aria");
|
|
30941
31130
|
var import_runtime150 = require("@homebound/truss/runtime");
|
|
30942
31131
|
var import_jsx_runtime229 = require("react/jsx-runtime");
|
|
@@ -30955,7 +31144,7 @@ function StepperTab(props) {
|
|
|
30955
31144
|
onPress: () => onClick(value),
|
|
30956
31145
|
isDisabled: disabled || collapsed
|
|
30957
31146
|
};
|
|
30958
|
-
const ref = (0,
|
|
31147
|
+
const ref = (0, import_react158.useRef)(null);
|
|
30959
31148
|
const {
|
|
30960
31149
|
buttonProps
|
|
30961
31150
|
} = (0, import_react_aria70.useButton)(ariaProps, ref);
|
|
@@ -31092,7 +31281,7 @@ var stepperTabStyles = {
|
|
|
31092
31281
|
// src/components/StepperTabs/StepperTabs.tsx
|
|
31093
31282
|
var import_runtime151 = require("@homebound/truss/runtime");
|
|
31094
31283
|
var import_jsx_runtime230 = require("react/jsx-runtime");
|
|
31095
|
-
var
|
|
31284
|
+
var import_react159 = require("react");
|
|
31096
31285
|
function StepperTabs(props) {
|
|
31097
31286
|
const {
|
|
31098
31287
|
steps,
|
|
@@ -31122,7 +31311,7 @@ function StepperTabs(props) {
|
|
|
31122
31311
|
}), children: steps.map((step, idx) => {
|
|
31123
31312
|
const isCurrent = idx === currentStepIndex;
|
|
31124
31313
|
const isCompleted = idx < currentStepIndex;
|
|
31125
|
-
return /* @__PURE__ */ (0,
|
|
31314
|
+
return /* @__PURE__ */ (0, import_react159.createElement)("li", { ...(0, import_runtime151.trussProps)({
|
|
31126
31315
|
display: "df",
|
|
31127
31316
|
flexGrow: "fg1",
|
|
31128
31317
|
flexBasis: "fb_0",
|
|
@@ -31356,7 +31545,7 @@ function segmentWidth(count, total) {
|
|
|
31356
31545
|
}
|
|
31357
31546
|
|
|
31358
31547
|
// src/components/TableSummary/TableSummary.tsx
|
|
31359
|
-
var
|
|
31548
|
+
var import_react160 = require("react");
|
|
31360
31549
|
var import_react_aria71 = require("react-aria");
|
|
31361
31550
|
var import_runtime155 = require("@homebound/truss/runtime");
|
|
31362
31551
|
var import_jsx_runtime235 = require("react/jsx-runtime");
|
|
@@ -31416,7 +31605,7 @@ function MetricButton(props) {
|
|
|
31416
31605
|
metric,
|
|
31417
31606
|
divider
|
|
31418
31607
|
} = props;
|
|
31419
|
-
const ref = (0,
|
|
31608
|
+
const ref = (0, import_react160.useRef)(null);
|
|
31420
31609
|
const {
|
|
31421
31610
|
buttonProps
|
|
31422
31611
|
} = (0, import_react_aria71.useButton)({
|
|
@@ -31493,7 +31682,7 @@ function MetricButton(props) {
|
|
|
31493
31682
|
|
|
31494
31683
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
31495
31684
|
var import_fast_deep_equal2 = __toESM(require("fast-deep-equal"), 1);
|
|
31496
|
-
var
|
|
31685
|
+
var import_react162 = require("react");
|
|
31497
31686
|
|
|
31498
31687
|
// src/utils/inlineStyles.ts
|
|
31499
31688
|
function isInlineStyleValue(value) {
|
|
@@ -31522,14 +31711,14 @@ function restoreElementStyle(el, snapshot) {
|
|
|
31522
31711
|
}
|
|
31523
31712
|
|
|
31524
31713
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
31525
|
-
var
|
|
31526
|
-
var DnDGridContext = (0,
|
|
31714
|
+
var import_react161 = require("react");
|
|
31715
|
+
var DnDGridContext = (0, import_react161.createContext)({
|
|
31527
31716
|
dragEl: { current: void 0 },
|
|
31528
31717
|
onDragHandleKeyDown: () => {
|
|
31529
31718
|
}
|
|
31530
31719
|
});
|
|
31531
31720
|
function useDnDGridContext() {
|
|
31532
|
-
return (0,
|
|
31721
|
+
return (0, import_react161.useContext)(DnDGridContext);
|
|
31533
31722
|
}
|
|
31534
31723
|
|
|
31535
31724
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
@@ -31543,13 +31732,13 @@ function DnDGrid(props) {
|
|
|
31543
31732
|
activeItemStyles,
|
|
31544
31733
|
lockAxis
|
|
31545
31734
|
} = props;
|
|
31546
|
-
const gridEl = (0,
|
|
31547
|
-
const dragEl = (0,
|
|
31548
|
-
const cloneEl = (0,
|
|
31549
|
-
const initialOrder = (0,
|
|
31550
|
-
const styleSnapshot = (0,
|
|
31551
|
-
const reorderViaKeyboard = (0,
|
|
31552
|
-
const transformFrom = (0,
|
|
31735
|
+
const gridEl = (0, import_react162.useRef)(null);
|
|
31736
|
+
const dragEl = (0, import_react162.useRef)(void 0);
|
|
31737
|
+
const cloneEl = (0, import_react162.useRef)(void 0);
|
|
31738
|
+
const initialOrder = (0, import_react162.useRef)(void 0);
|
|
31739
|
+
const styleSnapshot = (0, import_react162.useRef)(void 0);
|
|
31740
|
+
const reorderViaKeyboard = (0, import_react162.useRef)(false);
|
|
31741
|
+
const transformFrom = (0, import_react162.useRef)({
|
|
31553
31742
|
x: 0,
|
|
31554
31743
|
y: 0
|
|
31555
31744
|
});
|
|
@@ -31557,20 +31746,20 @@ function DnDGrid(props) {
|
|
|
31557
31746
|
const activeStyles3 = activeItemStyles ?? {
|
|
31558
31747
|
boxShadow: "bshModal"
|
|
31559
31748
|
};
|
|
31560
|
-
const getGridItems = (0,
|
|
31749
|
+
const getGridItems = (0, import_react162.useCallback)(() => {
|
|
31561
31750
|
return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
|
|
31562
31751
|
}, []);
|
|
31563
|
-
const getGridItemIdOrder = (0,
|
|
31752
|
+
const getGridItemIdOrder = (0, import_react162.useCallback)(() => {
|
|
31564
31753
|
return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
|
|
31565
31754
|
}, [getGridItems]);
|
|
31566
|
-
const initReorder = (0,
|
|
31755
|
+
const initReorder = (0, import_react162.useCallback)(() => {
|
|
31567
31756
|
if (gridEl.current && dragEl.current) {
|
|
31568
31757
|
initialOrder.current = getGridItemIdOrder();
|
|
31569
31758
|
styleSnapshot.current = snapshotElementStyle(dragEl.current);
|
|
31570
31759
|
applyActiveStyles(dragEl.current, activeStyles3);
|
|
31571
31760
|
}
|
|
31572
31761
|
}, [getGridItemIdOrder, activeStyles3]);
|
|
31573
|
-
const commitReorder = (0,
|
|
31762
|
+
const commitReorder = (0, import_react162.useCallback)(() => {
|
|
31574
31763
|
if (gridEl.current && dragEl.current) {
|
|
31575
31764
|
const currentOrder = getGridItemIdOrder();
|
|
31576
31765
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) onReorder(currentOrder);
|
|
@@ -31580,7 +31769,7 @@ function DnDGrid(props) {
|
|
|
31580
31769
|
initialOrder.current = currentOrder;
|
|
31581
31770
|
}
|
|
31582
31771
|
}, [onReorder, getGridItemIdOrder]);
|
|
31583
|
-
const cancelReorder = (0,
|
|
31772
|
+
const cancelReorder = (0, import_react162.useCallback)(() => {
|
|
31584
31773
|
if (gridEl.current && dragEl.current && initialOrder.current) {
|
|
31585
31774
|
const currentOrder = getGridItemIdOrder();
|
|
31586
31775
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) {
|
|
@@ -31602,7 +31791,7 @@ function DnDGrid(props) {
|
|
|
31602
31791
|
reorderViaKeyboard.current = false;
|
|
31603
31792
|
}
|
|
31604
31793
|
}, [getGridItemIdOrder, getGridItems]);
|
|
31605
|
-
const onMove = (0,
|
|
31794
|
+
const onMove = (0, import_react162.useCallback)((e) => {
|
|
31606
31795
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
31607
31796
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
31608
31797
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
@@ -31625,7 +31814,7 @@ function DnDGrid(props) {
|
|
|
31625
31814
|
}
|
|
31626
31815
|
}
|
|
31627
31816
|
}, [lockAxis]);
|
|
31628
|
-
const onDragEnd = (0,
|
|
31817
|
+
const onDragEnd = (0, import_react162.useCallback)((e) => {
|
|
31629
31818
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
31630
31819
|
e.preventDefault();
|
|
31631
31820
|
cloneEl.current.replaceWith(dragEl.current);
|
|
@@ -31636,7 +31825,7 @@ function DnDGrid(props) {
|
|
|
31636
31825
|
removePointerDragListeners(onMove, onDragEnd);
|
|
31637
31826
|
}
|
|
31638
31827
|
}, [commitReorder, onMove]);
|
|
31639
|
-
const onDragStart = (0,
|
|
31828
|
+
const onDragStart = (0, import_react162.useCallback)((e) => {
|
|
31640
31829
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
31641
31830
|
const rect = dragEl.current.getBoundingClientRect();
|
|
31642
31831
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
@@ -31664,10 +31853,10 @@ function DnDGrid(props) {
|
|
|
31664
31853
|
addPointerDragListeners(onMove, onDragEnd);
|
|
31665
31854
|
}
|
|
31666
31855
|
}, [initReorder, onMove, onDragEnd]);
|
|
31667
|
-
(0,
|
|
31856
|
+
(0, import_react162.useEffect)(() => {
|
|
31668
31857
|
return () => removePointerDragListeners(onMove, onDragEnd);
|
|
31669
31858
|
}, [onMove, onDragEnd]);
|
|
31670
|
-
const onDragHandleKeyDown = (0,
|
|
31859
|
+
const onDragHandleKeyDown = (0, import_react162.useCallback)((e) => {
|
|
31671
31860
|
const moveHandle = e.target;
|
|
31672
31861
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
31673
31862
|
const isSpaceKey = e.key === " ";
|
|
@@ -31808,11 +31997,11 @@ function DnDGridItemHandle(props) {
|
|
|
31808
31997
|
}
|
|
31809
31998
|
|
|
31810
31999
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
31811
|
-
var
|
|
32000
|
+
var import_react163 = require("react");
|
|
31812
32001
|
function useDnDGridItem(props) {
|
|
31813
32002
|
const { id, itemRef } = props;
|
|
31814
32003
|
const { dragEl, onDragHandleKeyDown } = useDnDGridContext();
|
|
31815
|
-
const { dragItemProps, dragHandleProps } = (0,
|
|
32004
|
+
const { dragItemProps, dragHandleProps } = (0, import_react163.useMemo)(() => {
|
|
31816
32005
|
function initDraggable() {
|
|
31817
32006
|
if (itemRef.current) {
|
|
31818
32007
|
dragEl.current = itemRef.current;
|
|
@@ -32359,10 +32548,10 @@ var ToggleFilter = class extends BaseFilter {
|
|
|
32359
32548
|
};
|
|
32360
32549
|
|
|
32361
32550
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
32362
|
-
var
|
|
32551
|
+
var import_react166 = require("react");
|
|
32363
32552
|
|
|
32364
32553
|
// src/components/Grid/useResponsiveGrid.ts
|
|
32365
|
-
var
|
|
32554
|
+
var import_react164 = require("react");
|
|
32366
32555
|
var import_runtime158 = require("@homebound/truss/runtime");
|
|
32367
32556
|
var __maybeInc28 = (inc) => {
|
|
32368
32557
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
@@ -32373,7 +32562,7 @@ function useResponsiveGrid(props) {
|
|
|
32373
32562
|
gap,
|
|
32374
32563
|
columns
|
|
32375
32564
|
} = props;
|
|
32376
|
-
const gridStyles = (0,
|
|
32565
|
+
const gridStyles = (0, import_react164.useMemo)(() => {
|
|
32377
32566
|
const gapCount = columns - 1;
|
|
32378
32567
|
const totalGapWidth = gap * gapCount;
|
|
32379
32568
|
const maxColumnWidth = `calc((100% - ${totalGapWidth}px) / ${columns})`;
|
|
@@ -32396,9 +32585,9 @@ function useResponsiveGrid(props) {
|
|
|
32396
32585
|
}
|
|
32397
32586
|
|
|
32398
32587
|
// src/components/Grid/utils.ts
|
|
32399
|
-
var
|
|
32588
|
+
var import_react165 = require("react");
|
|
32400
32589
|
var gridItemDataAttribute = "data-grid-item-span";
|
|
32401
|
-
var ResponsiveGridContext = (0,
|
|
32590
|
+
var ResponsiveGridContext = (0, import_react165.createContext)(void 0);
|
|
32402
32591
|
|
|
32403
32592
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
32404
32593
|
var import_runtime159 = require("@homebound/truss/runtime");
|
|
@@ -32417,7 +32606,7 @@ function ResponsiveGrid(props) {
|
|
|
32417
32606
|
gap,
|
|
32418
32607
|
columns
|
|
32419
32608
|
});
|
|
32420
|
-
const config = (0,
|
|
32609
|
+
const config = (0, import_react166.useMemo)(() => ({
|
|
32421
32610
|
minColumnWidth,
|
|
32422
32611
|
gap,
|
|
32423
32612
|
columns
|
|
@@ -32430,14 +32619,14 @@ var import_react_aria73 = require("react-aria");
|
|
|
32430
32619
|
var import_runtime160 = require("@homebound/truss/runtime");
|
|
32431
32620
|
|
|
32432
32621
|
// src/components/Grid/useResponsiveGridItem.ts
|
|
32433
|
-
var
|
|
32622
|
+
var import_react167 = require("react");
|
|
32434
32623
|
var injectedResponsiveGridClasses = /* @__PURE__ */ new Set();
|
|
32435
32624
|
var responsiveGridStyleEl;
|
|
32436
32625
|
function useResponsiveGridItem(props) {
|
|
32437
32626
|
const { colSpan = 1, gridConfig } = props;
|
|
32438
|
-
const contextConfig = (0,
|
|
32627
|
+
const contextConfig = (0, import_react167.useContext)(ResponsiveGridContext);
|
|
32439
32628
|
const config = gridConfig ?? contextConfig;
|
|
32440
|
-
const { className, cssText } = (0,
|
|
32629
|
+
const { className, cssText } = (0, import_react167.useMemo)(() => {
|
|
32441
32630
|
if (!config || colSpan <= 1) return { className: "", cssText: "" };
|
|
32442
32631
|
const { minColumnWidth, gap } = config;
|
|
32443
32632
|
const className2 = responsiveGridItemClassName(config, colSpan);
|
|
@@ -32460,7 +32649,7 @@ function useResponsiveGridItem(props) {
|
|
|
32460
32649
|
};
|
|
32461
32650
|
}
|
|
32462
32651
|
function useResponsiveGridItemStyle(className, cssText) {
|
|
32463
|
-
(0,
|
|
32652
|
+
(0, import_react167.useEffect)(
|
|
32464
32653
|
function() {
|
|
32465
32654
|
if (!className || !cssText || typeof document === "undefined") return;
|
|
32466
32655
|
if (!responsiveGridStyleEl) {
|
|
@@ -32498,7 +32687,7 @@ function ResponsiveGridItem(props) {
|
|
|
32498
32687
|
}
|
|
32499
32688
|
|
|
32500
32689
|
// src/components/HbLoadingSpinner.tsx
|
|
32501
|
-
var
|
|
32690
|
+
var import_react168 = __toESM(require("react"), 1);
|
|
32502
32691
|
|
|
32503
32692
|
// src/components/HbLoadingSpinner.base64.ts
|
|
32504
32693
|
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";
|
|
@@ -32511,9 +32700,9 @@ function HbLoadingSpinner({
|
|
|
32511
32700
|
extraQuipsOnly,
|
|
32512
32701
|
iconOnly
|
|
32513
32702
|
}) {
|
|
32514
|
-
const ctx = (0,
|
|
32703
|
+
const ctx = (0, import_react168.useContext)(HbLoadingSpinnerContext);
|
|
32515
32704
|
const tid = useTestIds({}, "hbSpinner");
|
|
32516
|
-
const quip = (0,
|
|
32705
|
+
const quip = (0, import_react168.useMemo)(() => {
|
|
32517
32706
|
const allQuips = extraQuipsOnly && extraQuips.length !== 0 ? extraQuips : [...ctx.quips, ...extraQuips];
|
|
32518
32707
|
const forceQuips = extraQuips.length !== 0 || noQuips === false;
|
|
32519
32708
|
if (ctx.noQuips && !forceQuips || noQuips || allQuips.length === 0) return "Loading...";
|
|
@@ -32543,7 +32732,7 @@ function HbLoadingSpinner({
|
|
|
32543
32732
|
var dotDotDot = (str) => str.concat("...");
|
|
32544
32733
|
var HB_QUIPS_MISSION = ["Loading", "One Team", "On a Mission", "Executing Relentlessly", "Building Better", "In Service of Our Customers"].map(dotDotDot);
|
|
32545
32734
|
var HB_QUIPS_FLAVOR = ["HOM is HOW", "Scaling Massively", "#LoveIt"].map(dotDotDot);
|
|
32546
|
-
var HbLoadingSpinnerContext =
|
|
32735
|
+
var HbLoadingSpinnerContext = import_react168.default.createContext({
|
|
32547
32736
|
quips: ["Loading..."],
|
|
32548
32737
|
noQuips: false
|
|
32549
32738
|
});
|
|
@@ -32551,7 +32740,7 @@ function HbSpinnerProvider({
|
|
|
32551
32740
|
quips = [],
|
|
32552
32741
|
children
|
|
32553
32742
|
}) {
|
|
32554
|
-
const state = (0,
|
|
32743
|
+
const state = (0, import_react168.useMemo)(() => ({
|
|
32555
32744
|
quips,
|
|
32556
32745
|
noQuips: quips.length === 0
|
|
32557
32746
|
}), [quips]);
|
|
@@ -32559,12 +32748,12 @@ function HbSpinnerProvider({
|
|
|
32559
32748
|
}
|
|
32560
32749
|
|
|
32561
32750
|
// src/components/Modal/OpenModal.tsx
|
|
32562
|
-
var
|
|
32751
|
+
var import_react169 = require("react");
|
|
32563
32752
|
var import_jsx_runtime250 = require("react/jsx-runtime");
|
|
32564
32753
|
function OpenModal(props) {
|
|
32565
32754
|
const { openModal } = useModal();
|
|
32566
32755
|
const { size, children, keepOpen, aiMode } = props;
|
|
32567
|
-
(0,
|
|
32756
|
+
(0, import_react169.useEffect)(() => {
|
|
32568
32757
|
if (!keepOpen) {
|
|
32569
32758
|
openModal({ size, content: children, aiMode });
|
|
32570
32759
|
}
|
|
@@ -32578,33 +32767,33 @@ function OpenModal(props) {
|
|
|
32578
32767
|
|
|
32579
32768
|
// src/components/Navbar/NavbarMobileMenu.tsx
|
|
32580
32769
|
var import_framer_motion7 = require("framer-motion");
|
|
32581
|
-
var
|
|
32770
|
+
var import_react171 = require("react");
|
|
32582
32771
|
var import_react_aria74 = require("react-aria");
|
|
32583
32772
|
var import_react_dom11 = require("react-dom");
|
|
32584
32773
|
var import_react_router_dom7 = require("react-router-dom");
|
|
32585
32774
|
|
|
32586
32775
|
// src/layouts/NavbarLayout/MobileSubNavContext.tsx
|
|
32587
|
-
var
|
|
32776
|
+
var import_react170 = require("react");
|
|
32588
32777
|
var import_jsx_runtime251 = require("react/jsx-runtime");
|
|
32589
|
-
var MobileSubNavContext = (0,
|
|
32778
|
+
var MobileSubNavContext = (0, import_react170.createContext)(void 0);
|
|
32590
32779
|
function MobileSubNavProvider(props) {
|
|
32591
|
-
const [mobileSubNav, setMobileSubNav] = (0,
|
|
32592
|
-
const value = (0,
|
|
32780
|
+
const [mobileSubNav, setMobileSubNav] = (0, import_react170.useState)(null);
|
|
32781
|
+
const value = (0, import_react170.useMemo)(() => ({ mobileSubNav, setMobileSubNav }), [mobileSubNav]);
|
|
32593
32782
|
return /* @__PURE__ */ (0, import_jsx_runtime251.jsx)(MobileSubNavContext.Provider, { value, children: props.children });
|
|
32594
32783
|
}
|
|
32595
32784
|
function useMobileSubNav() {
|
|
32596
|
-
return (0,
|
|
32785
|
+
return (0, import_react170.useContext)(MobileSubNavContext)?.mobileSubNav ?? null;
|
|
32597
32786
|
}
|
|
32598
32787
|
function useRegisterMobileSubNav(content2) {
|
|
32599
|
-
const ctx = (0,
|
|
32788
|
+
const ctx = (0, import_react170.useContext)(MobileSubNavContext);
|
|
32600
32789
|
const setMobileSubNav = ctx?.setMobileSubNav;
|
|
32601
32790
|
const enabled = !useBreakpoint().mdAndUp;
|
|
32602
32791
|
const { top, items, footer } = content2;
|
|
32603
|
-
(0,
|
|
32792
|
+
(0, import_react170.useLayoutEffect)(() => {
|
|
32604
32793
|
if (!setMobileSubNav || !enabled) return;
|
|
32605
32794
|
setMobileSubNav({ top, items, footer });
|
|
32606
32795
|
}, [setMobileSubNav, enabled, top, items, footer]);
|
|
32607
|
-
(0,
|
|
32796
|
+
(0, import_react170.useLayoutEffect)(() => {
|
|
32608
32797
|
if (!setMobileSubNav || !enabled) return;
|
|
32609
32798
|
return () => setMobileSubNav(null);
|
|
32610
32799
|
}, [setMobileSubNav, enabled]);
|
|
@@ -32619,8 +32808,8 @@ function NavbarMobileMenu(props) {
|
|
|
32619
32808
|
items
|
|
32620
32809
|
} = props;
|
|
32621
32810
|
const tid = useTestIds(props, "navbar");
|
|
32622
|
-
const [isOpen2, setIsOpen] = (0,
|
|
32623
|
-
const [level, setLevel] = (0,
|
|
32811
|
+
const [isOpen2, setIsOpen] = (0, import_react171.useState)(false);
|
|
32812
|
+
const [level, setLevel] = (0, import_react171.useState)("sub");
|
|
32624
32813
|
const {
|
|
32625
32814
|
pathname,
|
|
32626
32815
|
search
|
|
@@ -32630,7 +32819,7 @@ function NavbarMobileMenu(props) {
|
|
|
32630
32819
|
isDisabled: !isOpen2
|
|
32631
32820
|
});
|
|
32632
32821
|
const close = () => setIsOpen(false);
|
|
32633
|
-
(0,
|
|
32822
|
+
(0, import_react171.useEffect)(() => {
|
|
32634
32823
|
close();
|
|
32635
32824
|
}, [pathname, search]);
|
|
32636
32825
|
return /* @__PURE__ */ (0, import_jsx_runtime252.jsxs)(import_jsx_runtime252.Fragment, { children: [
|
|
@@ -32779,12 +32968,12 @@ function NavbarMobileDrawer({
|
|
|
32779
32968
|
}
|
|
32780
32969
|
|
|
32781
32970
|
// src/hooks/useContentOverflow.ts
|
|
32782
|
-
var
|
|
32971
|
+
var import_react172 = require("react");
|
|
32783
32972
|
function useContentOverflow(enabled = true) {
|
|
32784
|
-
const containerRef = (0,
|
|
32785
|
-
const contentRef = (0,
|
|
32786
|
-
const [overflows, setOverflows] = (0,
|
|
32787
|
-
const checkContentOverflow = (0,
|
|
32973
|
+
const containerRef = (0, import_react172.useRef)(null);
|
|
32974
|
+
const contentRef = (0, import_react172.useRef)(null);
|
|
32975
|
+
const [overflows, setOverflows] = (0, import_react172.useState)(false);
|
|
32976
|
+
const checkContentOverflow = (0, import_react172.useCallback)(() => {
|
|
32788
32977
|
const container = containerRef.current;
|
|
32789
32978
|
const content2 = contentRef.current;
|
|
32790
32979
|
if (!enabled || !container || !content2) {
|
|
@@ -32793,7 +32982,7 @@ function useContentOverflow(enabled = true) {
|
|
|
32793
32982
|
}
|
|
32794
32983
|
setOverflows(content2.offsetWidth > container.clientWidth);
|
|
32795
32984
|
}, [enabled]);
|
|
32796
|
-
(0,
|
|
32985
|
+
(0, import_react172.useLayoutEffect)(() => {
|
|
32797
32986
|
checkContentOverflow();
|
|
32798
32987
|
window.addEventListener("resize", checkContentOverflow);
|
|
32799
32988
|
return () => window.removeEventListener("resize", checkContentOverflow);
|
|
@@ -32880,10 +33069,10 @@ function NavbarUserMenu({
|
|
|
32880
33069
|
}
|
|
32881
33070
|
|
|
32882
33071
|
// src/components/Snackbar/useSnackbar.tsx
|
|
32883
|
-
var
|
|
33072
|
+
var import_react173 = require("react");
|
|
32884
33073
|
function useSnackbar() {
|
|
32885
33074
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
32886
|
-
const onClose = (0,
|
|
33075
|
+
const onClose = (0, import_react173.useCallback)(
|
|
32887
33076
|
(noticeId) => {
|
|
32888
33077
|
setNotices((prev) => {
|
|
32889
33078
|
let returnValue = prev;
|
|
@@ -32900,7 +33089,7 @@ function useSnackbar() {
|
|
|
32900
33089
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
32901
33090
|
[]
|
|
32902
33091
|
);
|
|
32903
|
-
const triggerNotice = (0,
|
|
33092
|
+
const triggerNotice = (0, import_react173.useCallback)(
|
|
32904
33093
|
(props) => {
|
|
32905
33094
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
32906
33095
|
let maybeTimeout;
|
|
@@ -32929,8 +33118,8 @@ function useSnackbar() {
|
|
|
32929
33118
|
},
|
|
32930
33119
|
[onClose, setNotices]
|
|
32931
33120
|
);
|
|
32932
|
-
const closeNotice = (0,
|
|
32933
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
33121
|
+
const closeNotice = (0, import_react173.useCallback)((id) => onClose(id), [onClose]);
|
|
33122
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react173.useEffect)(() => {
|
|
32934
33123
|
setOffset({ bottom });
|
|
32935
33124
|
return () => setOffset({});
|
|
32936
33125
|
}, [bottom]);
|
|
@@ -32979,7 +33168,7 @@ function simpleDataRows(data = []) {
|
|
|
32979
33168
|
|
|
32980
33169
|
// src/components/Tabs.tsx
|
|
32981
33170
|
var import_change_case9 = require("change-case");
|
|
32982
|
-
var
|
|
33171
|
+
var import_react174 = require("react");
|
|
32983
33172
|
var import_react_aria75 = require("react-aria");
|
|
32984
33173
|
var import_react_router = require("react-router");
|
|
32985
33174
|
var import_react_router_dom8 = require("react-router-dom");
|
|
@@ -33059,9 +33248,9 @@ function Tabs(props) {
|
|
|
33059
33248
|
focusProps
|
|
33060
33249
|
} = (0, import_react_aria75.useFocusRing)();
|
|
33061
33250
|
const tid = useTestIds(others, "tabs");
|
|
33062
|
-
const [active, setActive] = (0,
|
|
33063
|
-
const ref = (0,
|
|
33064
|
-
(0,
|
|
33251
|
+
const [active, setActive] = (0, import_react174.useState)(selected);
|
|
33252
|
+
const ref = (0, import_react174.useRef)(null);
|
|
33253
|
+
(0, import_react174.useEffect)(() => setActive(selected), [selected]);
|
|
33065
33254
|
function onKeyUp(e) {
|
|
33066
33255
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
33067
33256
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -33136,7 +33325,7 @@ function TabImpl(props) {
|
|
|
33136
33325
|
activeHoverStyles,
|
|
33137
33326
|
aiStyles,
|
|
33138
33327
|
activeAiStyles
|
|
33139
|
-
} = (0,
|
|
33328
|
+
} = (0, import_react174.useMemo)(() => getTabStyles(), []);
|
|
33140
33329
|
const uniqueValue = uniqueTabValue(tab);
|
|
33141
33330
|
const tid = useTestIds(others);
|
|
33142
33331
|
const tabProps = {
|
|
@@ -33296,10 +33485,10 @@ function hideTabs(props) {
|
|
|
33296
33485
|
}
|
|
33297
33486
|
|
|
33298
33487
|
// src/components/Toast/useToast.tsx
|
|
33299
|
-
var
|
|
33488
|
+
var import_react175 = require("react");
|
|
33300
33489
|
function useToast() {
|
|
33301
33490
|
const { setNotice, clear } = useToastContext();
|
|
33302
|
-
const showToast = (0,
|
|
33491
|
+
const showToast = (0, import_react175.useCallback)((props) => setNotice(props), [setNotice]);
|
|
33303
33492
|
return { showToast, clear };
|
|
33304
33493
|
}
|
|
33305
33494
|
|
|
@@ -33571,7 +33760,7 @@ var import_react_stately19 = require("react-stately");
|
|
|
33571
33760
|
var import_runtime170 = require("@homebound/truss/runtime");
|
|
33572
33761
|
|
|
33573
33762
|
// src/forms/FormSection/FormSectionChild.tsx
|
|
33574
|
-
var
|
|
33763
|
+
var import_react176 = require("react");
|
|
33575
33764
|
var import_react_aria76 = require("react-aria");
|
|
33576
33765
|
var import_runtime169 = require("@homebound/truss/runtime");
|
|
33577
33766
|
var import_jsx_runtime260 = require("react/jsx-runtime");
|
|
@@ -33588,7 +33777,7 @@ function FormSectionChild(props) {
|
|
|
33588
33777
|
group
|
|
33589
33778
|
} = props;
|
|
33590
33779
|
const tid = useTestIds(props, "formSectionChild");
|
|
33591
|
-
const itemRef = (0,
|
|
33780
|
+
const itemRef = (0, import_react176.useRef)(null);
|
|
33592
33781
|
const isDraggable = !!orderField;
|
|
33593
33782
|
const {
|
|
33594
33783
|
dragItemProps,
|
|
@@ -33630,7 +33819,7 @@ function FormSectionChildRadio(props) {
|
|
|
33630
33819
|
value,
|
|
33631
33820
|
label
|
|
33632
33821
|
} = props;
|
|
33633
|
-
const ref = (0,
|
|
33822
|
+
const ref = (0, import_react176.useRef)(null);
|
|
33634
33823
|
const {
|
|
33635
33824
|
inputProps,
|
|
33636
33825
|
isDisabled,
|
|
@@ -33656,7 +33845,7 @@ function FormSectionChildCheckbox(props) {
|
|
|
33656
33845
|
value,
|
|
33657
33846
|
label
|
|
33658
33847
|
} = props;
|
|
33659
|
-
const ref = (0,
|
|
33848
|
+
const ref = (0, import_react176.useRef)(null);
|
|
33660
33849
|
const {
|
|
33661
33850
|
inputProps,
|
|
33662
33851
|
isDisabled,
|
|
@@ -33849,12 +34038,12 @@ var railAndShellPx = centeredShellMaxPx.sm + jumpLinksRailWidthPx;
|
|
|
33849
34038
|
var jumpLinksRailReservation = `clamp(0px, 100% - ${railAndShellPx}px, ${jumpLinksRailWidthPx}px)`;
|
|
33850
34039
|
|
|
33851
34040
|
// src/layouts/FormSectionLayout/useActiveJumpLink.ts
|
|
33852
|
-
var
|
|
34041
|
+
var import_react177 = require("react");
|
|
33853
34042
|
var activationLeadPx = 120;
|
|
33854
34043
|
function useActiveJumpLink(sectionIds) {
|
|
33855
34044
|
const idsKey = sectionIds.join("\0");
|
|
33856
|
-
const [activeId, setActiveId] = (0,
|
|
33857
|
-
(0,
|
|
34045
|
+
const [activeId, setActiveId] = (0, import_react177.useState)(sectionIds[0]);
|
|
34046
|
+
(0, import_react177.useLayoutEffect)(() => {
|
|
33858
34047
|
const ids = idsKey.length === 0 ? [] : idsKey.split("\0");
|
|
33859
34048
|
if (ids.length === 0) return;
|
|
33860
34049
|
const update = () => {
|
|
@@ -33955,7 +34144,7 @@ function FormSectionLayout(props) {
|
|
|
33955
34144
|
}
|
|
33956
34145
|
|
|
33957
34146
|
// src/layouts/PageBanner/usePageBanner.tsx
|
|
33958
|
-
var
|
|
34147
|
+
var import_react178 = require("react");
|
|
33959
34148
|
|
|
33960
34149
|
// src/layouts/PageBanner/pageBannerStore.ts
|
|
33961
34150
|
var current;
|
|
@@ -33992,13 +34181,13 @@ function clearPageBanner(id) {
|
|
|
33992
34181
|
|
|
33993
34182
|
// src/layouts/PageBanner/usePageBanner.tsx
|
|
33994
34183
|
function usePageBanner(banner) {
|
|
33995
|
-
const id = (0,
|
|
33996
|
-
(0,
|
|
34184
|
+
const id = (0, import_react178.useId)();
|
|
34185
|
+
(0, import_react178.useLayoutEffect)(() => {
|
|
33997
34186
|
if (!banner) return;
|
|
33998
34187
|
setPageBanner(id, banner);
|
|
33999
34188
|
return () => clearPageBanner(id);
|
|
34000
34189
|
}, [id, banner]);
|
|
34001
|
-
(0,
|
|
34190
|
+
(0, import_react178.useEffect)(() => {
|
|
34002
34191
|
if (!banner || hasPageBannerSubscriber() || process.env.NODE_ENV === "production") return;
|
|
34003
34192
|
console.warn("[usePageBanner] No page layout above this component; the banner will not render.");
|
|
34004
34193
|
}, [banner]);
|
|
@@ -34012,87 +34201,6 @@ function PageBanner(props) {
|
|
|
34012
34201
|
var import_react182 = require("react");
|
|
34013
34202
|
var import_runtime173 = require("@homebound/truss/runtime");
|
|
34014
34203
|
|
|
34015
|
-
// src/layouts/useAutoHideOnScroll.ts
|
|
34016
|
-
var import_react178 = require("react");
|
|
34017
|
-
var THRESHOLD = 80;
|
|
34018
|
-
function getInitialAutoHideState() {
|
|
34019
|
-
if (typeof window === "undefined" || window.scrollY <= 0) {
|
|
34020
|
-
return "resting";
|
|
34021
|
-
}
|
|
34022
|
-
return "hidden";
|
|
34023
|
-
}
|
|
34024
|
-
function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
34025
|
-
const initial = getInitialAutoHideState();
|
|
34026
|
-
const [state, setState] = (0, import_react178.useState)(initial);
|
|
34027
|
-
const stateRef = (0, import_react178.useRef)(initial);
|
|
34028
|
-
const getTopOffsetRef = (0, import_react178.useRef)(getTopOffset);
|
|
34029
|
-
getTopOffsetRef.current = getTopOffset;
|
|
34030
|
-
const lastScrollY = (0, import_react178.useRef)(Number.POSITIVE_INFINITY);
|
|
34031
|
-
const lastScrollHeight = (0, import_react178.useRef)(0);
|
|
34032
|
-
(0, import_react178.useLayoutEffect)(() => {
|
|
34033
|
-
if (!enabled) {
|
|
34034
|
-
stateRef.current = "resting";
|
|
34035
|
-
lastScrollY.current = Number.POSITIVE_INFINITY;
|
|
34036
|
-
lastScrollHeight.current = 0;
|
|
34037
|
-
setState("resting");
|
|
34038
|
-
return;
|
|
34039
|
-
}
|
|
34040
|
-
const commit = (nextState) => {
|
|
34041
|
-
if (nextState !== stateRef.current) {
|
|
34042
|
-
stateRef.current = nextState;
|
|
34043
|
-
setState(nextState);
|
|
34044
|
-
}
|
|
34045
|
-
};
|
|
34046
|
-
const autoHideStateOnLayoutChange = (rect, topOffset) => {
|
|
34047
|
-
const nextAtTop = rect.top >= topOffset;
|
|
34048
|
-
let next = stateRef.current;
|
|
34049
|
-
if (nextAtTop) {
|
|
34050
|
-
next = "resting";
|
|
34051
|
-
} else if (rect.bottom < -THRESHOLD && next !== "revealed") {
|
|
34052
|
-
next = "hidden";
|
|
34053
|
-
}
|
|
34054
|
-
return next;
|
|
34055
|
-
};
|
|
34056
|
-
const updateAutoHideState = () => {
|
|
34057
|
-
const el = spacerRef.current;
|
|
34058
|
-
if (!el) return;
|
|
34059
|
-
const doc = document.documentElement;
|
|
34060
|
-
const currentScrollHeight = doc.scrollHeight;
|
|
34061
|
-
const scrollHeightChanged = lastScrollHeight.current !== 0 && currentScrollHeight !== lastScrollHeight.current;
|
|
34062
|
-
lastScrollHeight.current = currentScrollHeight;
|
|
34063
|
-
if (window.scrollY <= 0) {
|
|
34064
|
-
lastScrollY.current = 0;
|
|
34065
|
-
commit("resting");
|
|
34066
|
-
return;
|
|
34067
|
-
}
|
|
34068
|
-
const currentY = window.scrollY;
|
|
34069
|
-
const rect = el.getBoundingClientRect();
|
|
34070
|
-
const topOffset = getTopOffsetRef.current?.() ?? 0;
|
|
34071
|
-
if (scrollHeightChanged) {
|
|
34072
|
-
lastScrollY.current = currentY;
|
|
34073
|
-
commit(autoHideStateOnLayoutChange(rect, topOffset));
|
|
34074
|
-
return;
|
|
34075
|
-
}
|
|
34076
|
-
const dy = currentY - lastScrollY.current;
|
|
34077
|
-
lastScrollY.current = currentY;
|
|
34078
|
-
const atBottom = currentY >= doc.scrollHeight - doc.clientHeight;
|
|
34079
|
-
const nextAtTop = rect.top >= topOffset;
|
|
34080
|
-
let next = stateRef.current;
|
|
34081
|
-
if (nextAtTop) {
|
|
34082
|
-
next = "resting";
|
|
34083
|
-
} else if (rect.bottom < -THRESHOLD) {
|
|
34084
|
-
if (dy < 0 && !atBottom) next = "revealed";
|
|
34085
|
-
else if (dy > 0) next = "hidden";
|
|
34086
|
-
}
|
|
34087
|
-
commit(next);
|
|
34088
|
-
};
|
|
34089
|
-
updateAutoHideState();
|
|
34090
|
-
window.addEventListener("scroll", updateAutoHideState, { passive: true });
|
|
34091
|
-
return () => window.removeEventListener("scroll", updateAutoHideState);
|
|
34092
|
-
}, [enabled, spacerRef]);
|
|
34093
|
-
return { state };
|
|
34094
|
-
}
|
|
34095
|
-
|
|
34096
34204
|
// src/layouts/useMeasuredHeight.ts
|
|
34097
34205
|
var import_utils53 = require("@react-aria/utils");
|
|
34098
34206
|
var import_react179 = require("react");
|