@homebound/beam 4.59.0 → 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 +476 -301
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +376 -201
- package/dist/index.js.map +1 -1
- package/dist/truss.css +4 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -20609,9 +20609,20 @@ function useMenuSelectField(props) {
|
|
|
20609
20609
|
() => menuTree ? menuTree.orderedKeys.filter((key) => disabledKeySet.has(menuTree.nodes.get(key).valueKey)) : disabledKeys,
|
|
20610
20610
|
[menuTree, disabledKeySet, disabledKeys]
|
|
20611
20611
|
);
|
|
20612
|
+
const rememberedSelectedRef = (0, import_react85.useRef)(/* @__PURE__ */ new Map());
|
|
20613
|
+
syncRememberedOptions(rememberedSelectedRef.current, values, optionsByKey);
|
|
20612
20614
|
const selectedOptions = (0, import_react85.useMemo)(
|
|
20613
|
-
() =>
|
|
20614
|
-
|
|
20615
|
+
() => resolveSelectedOptions(
|
|
20616
|
+
values,
|
|
20617
|
+
menuTree,
|
|
20618
|
+
selectedKeys,
|
|
20619
|
+
optionsByKey,
|
|
20620
|
+
rememberedSelectedRef.current,
|
|
20621
|
+
getOptionValue
|
|
20622
|
+
),
|
|
20623
|
+
// getOptionValue is typically an inline lambda
|
|
20624
|
+
// oxlint-disable-next-line react-hooks/exhaustive-deps
|
|
20625
|
+
[values, optionsByKey, menuTree, selectedKeys]
|
|
20615
20626
|
);
|
|
20616
20627
|
const dottedKeys = (0, import_react85.useMemo)(
|
|
20617
20628
|
() => new Set(mixedValues?.map(valueToKey).filter((key) => optionsByKey.has(key) && !selectedKeys.has(key))),
|
|
@@ -20653,9 +20664,8 @@ function useMenuSelectField(props) {
|
|
|
20653
20664
|
const valueKey = key === void 0 ? void 0 : menuTree.nodes.get(key)?.valueKey;
|
|
20654
20665
|
if (valueKey === void 0) return;
|
|
20655
20666
|
const next2 = toggleTreeSelection(menuTree, selectedKeys, valueKey, added !== void 0, disabledKeySet);
|
|
20656
|
-
const nextOptions = selectedTreeOptions(menuTree, next2);
|
|
20657
20667
|
proposalProps.onUserEdit?.();
|
|
20658
|
-
|
|
20668
|
+
commitTree(next2);
|
|
20659
20669
|
return;
|
|
20660
20670
|
}
|
|
20661
20671
|
if (!multiple) {
|
|
@@ -20670,16 +20680,17 @@ function useMenuSelectField(props) {
|
|
|
20670
20680
|
close({ restoreFocus: true });
|
|
20671
20681
|
return;
|
|
20672
20682
|
}
|
|
20673
|
-
const next = values.filter((
|
|
20683
|
+
const next = values.filter((value) => {
|
|
20684
|
+
const key = valueToKey(value);
|
|
20685
|
+
if (!optionsByKey.has(key)) return true;
|
|
20686
|
+
return keys.has(key);
|
|
20687
|
+
});
|
|
20674
20688
|
for (const k of keys) {
|
|
20675
20689
|
const opt = optionsByKey.get(String(k));
|
|
20676
20690
|
if (opt !== void 0 && !selectedKeys.has(String(k))) next.push(getOptionValue(opt));
|
|
20677
20691
|
}
|
|
20678
20692
|
proposalProps.onUserEdit?.();
|
|
20679
|
-
onCommit(
|
|
20680
|
-
next,
|
|
20681
|
-
next.map((v) => optionsByKey.get(valueToKey(v))).filter((o) => o !== void 0)
|
|
20682
|
-
);
|
|
20693
|
+
onCommit(next, optionsForValues(next));
|
|
20683
20694
|
}
|
|
20684
20695
|
const collectionItems = (0, import_react85.useMemo)(() => {
|
|
20685
20696
|
if (treeRows) {
|
|
@@ -20891,14 +20902,35 @@ function useMenuSelectField(props) {
|
|
|
20891
20902
|
proposalProps.onUserEdit?.();
|
|
20892
20903
|
if (menuTree) {
|
|
20893
20904
|
const toggledKeys = toggleTreeSelection(menuTree, selectedKeys, key, false, disabledKeySet);
|
|
20894
|
-
|
|
20895
|
-
onCommit(toggledOptions.map(getOptionValue), toggledOptions);
|
|
20905
|
+
commitTree(toggledKeys, key);
|
|
20896
20906
|
return;
|
|
20897
20907
|
}
|
|
20898
20908
|
const next = values.filter((value) => valueToKey(value) !== key);
|
|
20909
|
+
onCommit(next, optionsForValues(next));
|
|
20910
|
+
}
|
|
20911
|
+
function optionsForValues(next) {
|
|
20912
|
+
return next.flatMap((value) => {
|
|
20913
|
+
const option = optionForKey(valueToKey(value), optionsByKey, rememberedSelectedRef.current);
|
|
20914
|
+
return option ? [option] : [];
|
|
20915
|
+
});
|
|
20916
|
+
}
|
|
20917
|
+
function commitTree(nextKeys, clearedKey) {
|
|
20918
|
+
if (!menuTree) return;
|
|
20919
|
+
const selectedInTree = selectedTreeOptions(menuTree, nextKeys);
|
|
20920
|
+
const valueKeysInTree = new Set(menuTree.orderedKeys.map((rowKey) => menuTree.nodes.get(rowKey).valueKey));
|
|
20921
|
+
const seen = /* @__PURE__ */ new Set();
|
|
20922
|
+
const keptSelections = values.flatMap((value) => {
|
|
20923
|
+
const key = valueToKey(value);
|
|
20924
|
+
if (valueKeysInTree.has(key) || key === clearedKey || seen.has(key)) return [];
|
|
20925
|
+
const option = optionForKey(key, optionsByKey, rememberedSelectedRef.current);
|
|
20926
|
+
if (!option) return [];
|
|
20927
|
+
seen.add(key);
|
|
20928
|
+
return [option];
|
|
20929
|
+
});
|
|
20930
|
+
const nextOptions = [...selectedInTree, ...keptSelections];
|
|
20899
20931
|
onCommit(
|
|
20900
|
-
|
|
20901
|
-
|
|
20932
|
+
nextOptions.map((option) => getOptionValue(option)),
|
|
20933
|
+
nextOptions
|
|
20902
20934
|
);
|
|
20903
20935
|
}
|
|
20904
20936
|
const triggerProps = {
|
|
@@ -20964,6 +20996,41 @@ function useMenuSelectField(props) {
|
|
|
20964
20996
|
}
|
|
20965
20997
|
};
|
|
20966
20998
|
}
|
|
20999
|
+
function syncRememberedOptions(remembered, values, optionsByKey) {
|
|
21000
|
+
const selected = /* @__PURE__ */ new Set();
|
|
21001
|
+
for (const value of values) {
|
|
21002
|
+
const key = valueToKey(value);
|
|
21003
|
+
selected.add(key);
|
|
21004
|
+
const option = optionsByKey.get(key);
|
|
21005
|
+
if (option) remembered.set(key, option);
|
|
21006
|
+
}
|
|
21007
|
+
for (const key of remembered.keys()) {
|
|
21008
|
+
if (!selected.has(key)) remembered.delete(key);
|
|
21009
|
+
}
|
|
21010
|
+
}
|
|
21011
|
+
function optionForKey(key, optionsByKey, remembered) {
|
|
21012
|
+
return optionsByKey.get(key) ?? remembered.get(key);
|
|
21013
|
+
}
|
|
21014
|
+
function resolveSelectedOptions(values, menuTree, selectedKeys, optionsByKey, remembered, getOptionValue) {
|
|
21015
|
+
if (!menuTree) {
|
|
21016
|
+
return values.flatMap((value) => {
|
|
21017
|
+
const option = optionForKey(valueToKey(value), optionsByKey, remembered);
|
|
21018
|
+
return option ? [option] : [];
|
|
21019
|
+
});
|
|
21020
|
+
}
|
|
21021
|
+
const selectedInTree = selectedTreeOptions(menuTree, selectedKeys);
|
|
21022
|
+
const seen = new Set(selectedInTree.map((option) => valueToKey(getOptionValue(option))));
|
|
21023
|
+
const keptSelections = [];
|
|
21024
|
+
for (const value of values) {
|
|
21025
|
+
const key = valueToKey(value);
|
|
21026
|
+
if (seen.has(key)) continue;
|
|
21027
|
+
const option = optionForKey(key, optionsByKey, remembered);
|
|
21028
|
+
if (!option) continue;
|
|
21029
|
+
seen.add(key);
|
|
21030
|
+
keptSelections.push(option);
|
|
21031
|
+
}
|
|
21032
|
+
return [...selectedInTree, ...keptSelections];
|
|
21033
|
+
}
|
|
20967
21034
|
function labelsFor(values, options, getOptionValue, getOptionLabel) {
|
|
20968
21035
|
const keys = new Set(values.map(valueToKey));
|
|
20969
21036
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -27804,7 +27871,7 @@ function invertSpacing(value) {
|
|
|
27804
27871
|
}
|
|
27805
27872
|
|
|
27806
27873
|
// src/components/Layout/GridTableLayout/GridTableLayout.tsx
|
|
27807
|
-
var
|
|
27874
|
+
var import_react145 = __toESM(require("react"), 1);
|
|
27808
27875
|
|
|
27809
27876
|
// src/components/Layout/GridTableLayout/GridTableLayoutActions.tsx
|
|
27810
27877
|
var import_react127 = require("react");
|
|
@@ -28345,7 +28412,7 @@ function SelectionSummaryAction(props) {
|
|
|
28345
28412
|
|
|
28346
28413
|
// src/components/Layout/GridTableLayout/GridTableLayoutHost.tsx
|
|
28347
28414
|
var import_utils41 = require("@react-aria/utils");
|
|
28348
|
-
var
|
|
28415
|
+
var import_react138 = require("react");
|
|
28349
28416
|
|
|
28350
28417
|
// src/components/Layout/RightPaneLayout/DocumentScrollOverlayRightPaneLayout.tsx
|
|
28351
28418
|
var import_react135 = require("react");
|
|
@@ -28817,6 +28884,132 @@ function ModalFullBleed({
|
|
|
28817
28884
|
}));
|
|
28818
28885
|
}
|
|
28819
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
|
+
|
|
28820
29013
|
// src/components/Layout/GridTableLayout/GridTableLayoutHost.tsx
|
|
28821
29014
|
var import_runtime135 = require("@homebound/truss/runtime");
|
|
28822
29015
|
var import_jsx_runtime206 = require("react/jsx-runtime");
|
|
@@ -28830,12 +29023,33 @@ function GridTableLayoutHost(props) {
|
|
|
28830
29023
|
rightPane,
|
|
28831
29024
|
isVirtualized,
|
|
28832
29025
|
testIds,
|
|
29026
|
+
scrollToTopRef,
|
|
28833
29027
|
children
|
|
28834
29028
|
} = props;
|
|
28835
|
-
const tableWrapperRef = (0,
|
|
28836
|
-
const tableActionsRef = (0,
|
|
29029
|
+
const tableWrapperRef = (0, import_react138.useRef)(null);
|
|
29030
|
+
const tableActionsRef = (0, import_react138.useRef)(null);
|
|
28837
29031
|
const hasActions = actions !== void 0;
|
|
29032
|
+
const {
|
|
29033
|
+
scrollableEl
|
|
29034
|
+
} = useScrollableParent();
|
|
28838
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]);
|
|
28839
29053
|
const shared = {
|
|
28840
29054
|
actions,
|
|
28841
29055
|
tableWrapperRef,
|
|
@@ -28889,29 +29103,49 @@ function DocumentScrollHost(props) {
|
|
|
28889
29103
|
"--minWidth": (0, import_runtime135.maybeCssVar)(documentScrollRightPaneContentMinCss())
|
|
28890
29104
|
}]
|
|
28891
29105
|
}), children }) }) : children;
|
|
28892
|
-
return /* @__PURE__ */ (0, import_jsx_runtime206.jsxs)(
|
|
28893
|
-
|
|
28894
|
-
|
|
28895
|
-
|
|
28896
|
-
|
|
28897
|
-
"
|
|
28898
|
-
|
|
28899
|
-
|
|
28900
|
-
"
|
|
28901
|
-
|
|
28902
|
-
|
|
28903
|
-
|
|
28904
|
-
|
|
28905
|
-
|
|
28906
|
-
|
|
28907
|
-
|
|
28908
|
-
}
|
|
28909
|
-
|
|
28910
|
-
|
|
28911
|
-
|
|
28912
|
-
|
|
28913
|
-
|
|
28914
|
-
|
|
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
|
+
);
|
|
28915
29149
|
}
|
|
28916
29150
|
function ScrollableParentHost(props) {
|
|
28917
29151
|
const {
|
|
@@ -28937,7 +29171,7 @@ function ActionsBar({
|
|
|
28937
29171
|
return /* @__PURE__ */ (0, import_jsx_runtime206.jsx)("div", { ref: actionsRef, ...(0, import_runtime135.trussProps)(xss), ...testIds.stickyContent, children });
|
|
28938
29172
|
}
|
|
28939
29173
|
function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
28940
|
-
const syncHeightVar = (0,
|
|
29174
|
+
const syncHeightVar = (0, import_react138.useCallback)(() => {
|
|
28941
29175
|
const tableWrapper = tableWrapperRef.current;
|
|
28942
29176
|
if (!tableWrapper) return;
|
|
28943
29177
|
if (!enabled) {
|
|
@@ -28955,7 +29189,7 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
|
28955
29189
|
ref: tableActionsRef,
|
|
28956
29190
|
onResize: enabled ? syncHeightVar : noop
|
|
28957
29191
|
});
|
|
28958
|
-
(0,
|
|
29192
|
+
(0, import_react138.useLayoutEffect)(() => {
|
|
28959
29193
|
syncHeightVar();
|
|
28960
29194
|
const tableWrapper = tableWrapperRef.current;
|
|
28961
29195
|
return () => {
|
|
@@ -28965,14 +29199,14 @@ function useSetTableActionsHeight(tableWrapperRef, tableActionsRef, enabled) {
|
|
|
28965
29199
|
}
|
|
28966
29200
|
|
|
28967
29201
|
// src/components/Layout/GridTableLayout/QueryTable.tsx
|
|
28968
|
-
var
|
|
29202
|
+
var import_react139 = require("react");
|
|
28969
29203
|
var import_jsx_runtime207 = require("react/jsx-runtime");
|
|
28970
29204
|
function QueryTable(props) {
|
|
28971
29205
|
const { emptyFallback, query, createRows, columns, emptyState: emptyStateProp, ...others } = props;
|
|
28972
29206
|
const displayData = query.error ? void 0 : query.data ?? query.previousData;
|
|
28973
|
-
const rows = (0,
|
|
29207
|
+
const rows = (0, import_react139.useMemo)(() => createRows(displayData), [createRows, displayData]);
|
|
28974
29208
|
const fallbackMessage = query.loading ? "Loading\u2026" : query.error ? `Error: ${query.error.message}` : void 0;
|
|
28975
|
-
const emptyState = (0,
|
|
29209
|
+
const emptyState = (0, import_react139.useMemo)(() => {
|
|
28976
29210
|
if (query.loading || query.error) return void 0;
|
|
28977
29211
|
if (emptyStateProp) return emptyStateProp;
|
|
28978
29212
|
return { title: emptyFallback };
|
|
@@ -29001,10 +29235,10 @@ function useGridTableLayoutHost() {
|
|
|
29001
29235
|
}
|
|
29002
29236
|
|
|
29003
29237
|
// src/components/Layout/GridTableLayout/usePersistedTableView.ts
|
|
29004
|
-
var
|
|
29238
|
+
var import_react140 = require("react");
|
|
29005
29239
|
function usePersistedTableView(defaultView, persist) {
|
|
29006
29240
|
const storageKey = persist ? getGridTableViewStorageKey(window.location.pathname) : void 0;
|
|
29007
|
-
const [view, setView] = (0,
|
|
29241
|
+
const [view, setView] = (0, import_react140.useState)(() => {
|
|
29008
29242
|
if (!storageKey) return defaultView;
|
|
29009
29243
|
try {
|
|
29010
29244
|
return parseStoredTableView(localStorage.getItem(storageKey)) ?? defaultView;
|
|
@@ -29012,7 +29246,7 @@ function usePersistedTableView(defaultView, persist) {
|
|
|
29012
29246
|
return defaultView;
|
|
29013
29247
|
}
|
|
29014
29248
|
});
|
|
29015
|
-
const setViewAndPersist = (0,
|
|
29249
|
+
const setViewAndPersist = (0, import_react140.useCallback)(
|
|
29016
29250
|
(next) => {
|
|
29017
29251
|
setView(next);
|
|
29018
29252
|
if (storageKey) {
|
|
@@ -29039,28 +29273,28 @@ function isGridTableProps(props) {
|
|
|
29039
29273
|
}
|
|
29040
29274
|
|
|
29041
29275
|
// src/hooks/useGroupBy.ts
|
|
29042
|
-
var
|
|
29276
|
+
var import_react142 = require("react");
|
|
29043
29277
|
|
|
29044
29278
|
// src/hooks/useQueryState.ts
|
|
29045
|
-
var
|
|
29279
|
+
var import_react141 = require("react");
|
|
29046
29280
|
var import_use_query_params2 = require("use-query-params");
|
|
29047
29281
|
function useQueryState(name, initialValue) {
|
|
29048
29282
|
const [params, setParams] = (0, import_use_query_params2.useQueryParams)({ [name]: import_use_query_params2.StringParam });
|
|
29049
29283
|
const value = params[name] || initialValue;
|
|
29050
|
-
const setValue = (0,
|
|
29284
|
+
const setValue = (0, import_react141.useCallback)((value2) => setParams({ [name]: value2 }, "pushIn"), [name, setParams]);
|
|
29051
29285
|
return [value, setValue];
|
|
29052
29286
|
}
|
|
29053
29287
|
|
|
29054
29288
|
// src/hooks/useGroupBy.ts
|
|
29055
29289
|
function useGroupBy(opts) {
|
|
29056
29290
|
const { inModal } = useModalContext();
|
|
29057
|
-
const options = (0,
|
|
29291
|
+
const options = (0, import_react142.useMemo)(
|
|
29058
29292
|
() => safeEntries(opts).map(([key, value]) => ({ id: key, name: value })),
|
|
29059
29293
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
29060
29294
|
[]
|
|
29061
29295
|
);
|
|
29062
29296
|
const [queryValue, setQueryValue] = useQueryState("groupBy", options[0].id);
|
|
29063
|
-
const [localValue, setLocalValue] = (0,
|
|
29297
|
+
const [localValue, setLocalValue] = (0, import_react142.useState)(options[0].id);
|
|
29064
29298
|
return {
|
|
29065
29299
|
value: inModal ? localValue : queryValue,
|
|
29066
29300
|
setValue: inModal ? setLocalValue : setQueryValue,
|
|
@@ -29069,17 +29303,17 @@ function useGroupBy(opts) {
|
|
|
29069
29303
|
}
|
|
29070
29304
|
|
|
29071
29305
|
// src/hooks/usePersistedFilter.ts
|
|
29072
|
-
var
|
|
29306
|
+
var import_react144 = require("react");
|
|
29073
29307
|
|
|
29074
29308
|
// src/hooks/useSessionStorage.ts
|
|
29075
|
-
var
|
|
29309
|
+
var import_react143 = require("react");
|
|
29076
29310
|
function useSessionStorage(key, defaultValue) {
|
|
29077
29311
|
let hasSessionStorage = false;
|
|
29078
29312
|
try {
|
|
29079
29313
|
hasSessionStorage = !!window.sessionStorage;
|
|
29080
29314
|
} catch (e) {
|
|
29081
29315
|
}
|
|
29082
|
-
const [state, setState] = (0,
|
|
29316
|
+
const [state, setState] = (0, import_react143.useState)(() => {
|
|
29083
29317
|
if (!hasSessionStorage) {
|
|
29084
29318
|
return defaultValue;
|
|
29085
29319
|
}
|
|
@@ -29090,7 +29324,7 @@ function useSessionStorage(key, defaultValue) {
|
|
|
29090
29324
|
sessionStorage.setItem(key, JSON.stringify(defaultValue));
|
|
29091
29325
|
return defaultValue;
|
|
29092
29326
|
});
|
|
29093
|
-
const setAndSave = (0,
|
|
29327
|
+
const setAndSave = (0, import_react143.useCallback)(
|
|
29094
29328
|
(value) => {
|
|
29095
29329
|
if (hasSessionStorage && value) {
|
|
29096
29330
|
sessionStorage.setItem(key, JSON.stringify(value));
|
|
@@ -29114,12 +29348,12 @@ function getParsedStorage(key) {
|
|
|
29114
29348
|
var import_use_query_params3 = require("use-query-params");
|
|
29115
29349
|
function usePersistedFilter({ storageKey, filterDefs }) {
|
|
29116
29350
|
const { inModal } = useModalContext();
|
|
29117
|
-
const filterImpls = (0,
|
|
29351
|
+
const filterImpls = (0, import_react144.useMemo)(
|
|
29118
29352
|
() => Object.fromEntries(safeEntries(filterDefs).map(([key, def]) => [key, def(key)])),
|
|
29119
29353
|
[filterDefs]
|
|
29120
29354
|
);
|
|
29121
|
-
const filterKeys = (0,
|
|
29122
|
-
const defaultFilter = (0,
|
|
29355
|
+
const filterKeys = (0, import_react144.useMemo)(() => Object.keys(filterImpls), [filterImpls]);
|
|
29356
|
+
const defaultFilter = (0, import_react144.useMemo)(
|
|
29123
29357
|
() => Object.fromEntries(
|
|
29124
29358
|
safeEntries(filterImpls).filter(([, def]) => def.defaultValue !== void 0).map(([key, def]) => [key, def.defaultValue])
|
|
29125
29359
|
),
|
|
@@ -29131,18 +29365,18 @@ function usePersistedFilter({ storageKey, filterDefs }) {
|
|
|
29131
29365
|
dehydrateFilter(filterImpls, defaultFilter) ?? defaultFilter
|
|
29132
29366
|
);
|
|
29133
29367
|
const isQueryParamFilterValid = hasValidFilterKeys(queryParamsFilter, filterKeys);
|
|
29134
|
-
const serializedQueryParamsFilter = (0,
|
|
29135
|
-
const serializedStoredFilter = (0,
|
|
29136
|
-
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)(
|
|
29137
29371
|
() => parseSerializedValue(serializedQueryParamsFilter),
|
|
29138
29372
|
[serializedQueryParamsFilter]
|
|
29139
29373
|
);
|
|
29140
|
-
const storedFilterSnapshot = (0,
|
|
29141
|
-
const hydratedQueryParamsFilter = (0,
|
|
29374
|
+
const storedFilterSnapshot = (0, import_react144.useMemo)(() => parseSerializedValue(serializedStoredFilter), [serializedStoredFilter]);
|
|
29375
|
+
const hydratedQueryParamsFilter = (0, import_react144.useMemo)(
|
|
29142
29376
|
() => isQueryParamFilterValid ? hydrateFilter(filterImpls, queryParamsFilterSnapshot) : void 0,
|
|
29143
29377
|
[filterImpls, isQueryParamFilterValid, queryParamsFilterSnapshot]
|
|
29144
29378
|
);
|
|
29145
|
-
const hydratedStoredFilter = (0,
|
|
29379
|
+
const hydratedStoredFilter = (0, import_react144.useMemo)(
|
|
29146
29380
|
() => hasValidFilterKeys(storedFilterSnapshot, filterKeys) ? hydrateFilter(filterImpls, storedFilterSnapshot) : void 0,
|
|
29147
29381
|
[filterImpls, filterKeys, storedFilterSnapshot]
|
|
29148
29382
|
);
|
|
@@ -29156,7 +29390,7 @@ function usePersistedFilter({ storageKey, filterDefs }) {
|
|
|
29156
29390
|
}
|
|
29157
29391
|
setQueryParams({ filter: dehydrated });
|
|
29158
29392
|
};
|
|
29159
|
-
(0,
|
|
29393
|
+
(0, import_react144.useEffect)(
|
|
29160
29394
|
() => {
|
|
29161
29395
|
if (inModal) return;
|
|
29162
29396
|
if (queryParamsFilter === void 0) {
|
|
@@ -29206,8 +29440,8 @@ function parseSerializedValue(value) {
|
|
|
29206
29440
|
return value === void 0 ? void 0 : JSON.parse(value);
|
|
29207
29441
|
}
|
|
29208
29442
|
function useStableValue(value) {
|
|
29209
|
-
const stableValue = (0,
|
|
29210
|
-
const stableKey = (0,
|
|
29443
|
+
const stableValue = (0, import_react144.useRef)(value);
|
|
29444
|
+
const stableKey = (0, import_react144.useRef)(JSON.stringify(value));
|
|
29211
29445
|
const nextKey = JSON.stringify(value);
|
|
29212
29446
|
if (stableKey.current !== nextKey) {
|
|
29213
29447
|
stableValue.current = value;
|
|
@@ -29230,19 +29464,20 @@ function GridTableLayoutComponent(props) {
|
|
|
29230
29464
|
withCardView,
|
|
29231
29465
|
defaultView = "list",
|
|
29232
29466
|
emptyFallback: layoutEmptyFallback,
|
|
29233
|
-
withRightPane
|
|
29467
|
+
withRightPane,
|
|
29468
|
+
scrollToTopOnFilterChange = false
|
|
29234
29469
|
} = props;
|
|
29235
29470
|
const tid = useTestIds(props);
|
|
29236
29471
|
const host = useGridTableLayoutHost();
|
|
29237
29472
|
const insetHandled = useContentInsetHandled();
|
|
29238
29473
|
const includeColumnGutters = host.kind === "document-scroll" || host.kind === "modal";
|
|
29239
29474
|
const columns = tableProps.columns;
|
|
29240
|
-
const hasHideableColumns = (0,
|
|
29475
|
+
const hasHideableColumns = (0, import_react145.useMemo)(() => {
|
|
29241
29476
|
if (hideEditColumns) return false;
|
|
29242
29477
|
validateColumns(columns);
|
|
29243
29478
|
return columns.some((c) => c.canHide);
|
|
29244
29479
|
}, [columns, hideEditColumns]);
|
|
29245
|
-
const api = (0,
|
|
29480
|
+
const api = (0, import_react145.useMemo)(
|
|
29246
29481
|
() => tableProps.api ?? new GridTableApiImpl(),
|
|
29247
29482
|
[tableProps.api]
|
|
29248
29483
|
);
|
|
@@ -29252,22 +29487,29 @@ function GridTableLayoutComponent(props) {
|
|
|
29252
29487
|
selectionSummary);
|
|
29253
29488
|
const isVirtualized = tableProps.as === "virtual" || view === "card";
|
|
29254
29489
|
const visibleColumnIds = useComputed(() => api.getVisibleColumnIds(), [api]);
|
|
29255
|
-
(0,
|
|
29490
|
+
(0, import_react145.useEffect)(() => {
|
|
29256
29491
|
if (layoutState?.setVisibleColumnIds) {
|
|
29257
29492
|
layoutState.setVisibleColumnIds(visibleColumnIds);
|
|
29258
29493
|
}
|
|
29259
29494
|
}, [visibleColumnIds, layoutState]);
|
|
29260
29495
|
const visibleColumnsStorageKey = layoutState?.persistedColumnsStorageKey;
|
|
29261
|
-
const filterSearchProps = (0,
|
|
29496
|
+
const filterSearchProps = (0, import_react145.useMemo)(
|
|
29262
29497
|
() => layoutState?.search ? { onSearch: layoutState.setSearchString } : void 0,
|
|
29263
29498
|
[layoutState?.search, layoutState?.setSearchString]
|
|
29264
29499
|
);
|
|
29265
|
-
const searchApiRef = (0,
|
|
29266
|
-
const clearFilters = (0,
|
|
29500
|
+
const searchApiRef = (0, import_react145.useRef)(void 0);
|
|
29501
|
+
const clearFilters = (0, import_react145.useCallback)(() => {
|
|
29267
29502
|
layoutState?.clearFilters();
|
|
29268
29503
|
searchApiRef.current?.clear();
|
|
29269
29504
|
}, [layoutState]);
|
|
29270
|
-
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)(
|
|
29271
29513
|
() => composeEmptyState(tableProps, layoutState, layoutEmptyFallback, clearFilters),
|
|
29272
29514
|
[layoutEmptyFallback, layoutState, tableProps, clearFilters]
|
|
29273
29515
|
);
|
|
@@ -29294,7 +29536,7 @@ function GridTableLayoutComponent(props) {
|
|
|
29294
29536
|
}
|
|
29295
29537
|
);
|
|
29296
29538
|
const cardAs = view === "card" ? "card" : void 0;
|
|
29297
|
-
const tableStyle = (0,
|
|
29539
|
+
const tableStyle = (0, import_react145.useMemo)(() => getDefaultStyle(tableProps.style, insetHandled), [tableProps.style, insetHandled]);
|
|
29298
29540
|
const tableBody = /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(import_jsx_runtime208.Fragment, { children: isGridTableProps(tableProps) ? /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(
|
|
29299
29541
|
GridTable,
|
|
29300
29542
|
{
|
|
@@ -29332,11 +29574,25 @@ function GridTableLayoutComponent(props) {
|
|
|
29332
29574
|
rightPane: withRightPane,
|
|
29333
29575
|
isVirtualized,
|
|
29334
29576
|
testIds: tid,
|
|
29577
|
+
scrollToTopRef,
|
|
29335
29578
|
children: tableBody
|
|
29336
29579
|
}
|
|
29337
29580
|
);
|
|
29338
29581
|
}
|
|
29339
|
-
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
|
+
}
|
|
29340
29596
|
function getDefaultStyle(style, insetHandled) {
|
|
29341
29597
|
if (style !== void 0 && !isGridStyleDef(style)) return style;
|
|
29342
29598
|
return { allWhite: true, ...!insetHandled && { bordered: "top" }, ...style };
|
|
@@ -29357,14 +29613,14 @@ function useGridTableLayoutState({
|
|
|
29357
29613
|
const filterFallback = { filterDefs: {}, storageKey: "unset-filter" };
|
|
29358
29614
|
const { filter, setFilter } = usePersistedFilter(persistedFilter ?? filterFallback);
|
|
29359
29615
|
const groupBy = useGroupBy(maybeGroupBy ?? { none: "none" });
|
|
29360
|
-
const [searchString, setSearchString] = (0,
|
|
29616
|
+
const [searchString, setSearchString] = (0, import_react145.useState)("");
|
|
29361
29617
|
const columnsFallback = "unset-columns";
|
|
29362
29618
|
const [visibleColumnIds, setVisibleColumnIds] = useSessionStorage(
|
|
29363
29619
|
persistedColumns?.storageKey ?? columnsFallback,
|
|
29364
29620
|
void 0
|
|
29365
29621
|
);
|
|
29366
29622
|
const filteringActive = getActiveFilterCount(filter) > 0 || !!searchString;
|
|
29367
|
-
const clearFilters = (0,
|
|
29623
|
+
const clearFilters = (0, import_react145.useCallback)(() => {
|
|
29368
29624
|
setFilter({});
|
|
29369
29625
|
setSearchString("");
|
|
29370
29626
|
}, [setFilter]);
|
|
@@ -29411,7 +29667,7 @@ function PreventBrowserScroll({
|
|
|
29411
29667
|
|
|
29412
29668
|
// src/components/Layout/RightPaneLayout/RightPaneLayout.tsx
|
|
29413
29669
|
var import_framer_motion4 = require("framer-motion");
|
|
29414
|
-
var
|
|
29670
|
+
var import_react146 = require("react");
|
|
29415
29671
|
var import_runtime136 = require("@homebound/truss/runtime");
|
|
29416
29672
|
var import_jsx_runtime210 = require("react/jsx-runtime");
|
|
29417
29673
|
var __maybeInc22 = (inc) => {
|
|
@@ -29429,7 +29685,7 @@ function RightPaneLayout(props) {
|
|
|
29429
29685
|
clearPane: clearPane2
|
|
29430
29686
|
} = useRightPaneOpenState();
|
|
29431
29687
|
const rightPaneContent = useRightPaneContent();
|
|
29432
|
-
(0,
|
|
29688
|
+
(0, import_react146.useEffect)(() => hideRightPane, []);
|
|
29433
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: [
|
|
29434
29690
|
/* @__PURE__ */ (0, import_jsx_runtime210.jsx)("div", { ...(0, import_runtime136.trussProps)({
|
|
29435
29691
|
...{
|
|
@@ -29519,12 +29775,12 @@ function RightPaneLayout(props) {
|
|
|
29519
29775
|
}
|
|
29520
29776
|
|
|
29521
29777
|
// src/components/Layout/RightPaneLayout/RightPanePanel.tsx
|
|
29522
|
-
var
|
|
29778
|
+
var import_react148 = require("react");
|
|
29523
29779
|
var import_react_dom8 = require("react-dom");
|
|
29524
29780
|
|
|
29525
29781
|
// src/components/Layout/RightPaneLayout/internal/DeleteAction.tsx
|
|
29526
29782
|
var import_utils43 = require("@react-aria/utils");
|
|
29527
|
-
var
|
|
29783
|
+
var import_react147 = require("react");
|
|
29528
29784
|
var import_runtime137 = require("@homebound/truss/runtime");
|
|
29529
29785
|
var import_jsx_runtime211 = require("react/jsx-runtime");
|
|
29530
29786
|
function MaybeDeleteAction(props) {
|
|
@@ -29541,9 +29797,9 @@ function BulkDeleteAction(props) {
|
|
|
29541
29797
|
count,
|
|
29542
29798
|
...buttonProps
|
|
29543
29799
|
} = props;
|
|
29544
|
-
const containerRef = (0,
|
|
29545
|
-
const contentRef = (0,
|
|
29546
|
-
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);
|
|
29547
29803
|
const onResize = () => {
|
|
29548
29804
|
if (!containerRef.current || !contentRef.current) return;
|
|
29549
29805
|
setOverflows(contentRef.current.offsetWidth > containerRef.current.clientWidth);
|
|
@@ -29610,11 +29866,11 @@ function RightPanePanel(props) {
|
|
|
29610
29866
|
const {
|
|
29611
29867
|
closeRightPane
|
|
29612
29868
|
} = useRightPaneActions();
|
|
29613
|
-
const [bannerSlot, setBannerSlot] = (0,
|
|
29869
|
+
const [bannerSlot, setBannerSlot] = (0, import_react148.useState)(null);
|
|
29614
29870
|
const {
|
|
29615
29871
|
openModal
|
|
29616
29872
|
} = useModal();
|
|
29617
|
-
(0,
|
|
29873
|
+
(0, import_react148.useEffect)(() => {
|
|
29618
29874
|
if (!isDirty) return;
|
|
29619
29875
|
return setRightPaneDiscardPrompt((proceed) => {
|
|
29620
29876
|
if (!isDirty()) return proceed();
|
|
@@ -29677,11 +29933,11 @@ function RightPaneBanner(props) {
|
|
|
29677
29933
|
const {
|
|
29678
29934
|
children
|
|
29679
29935
|
} = props;
|
|
29680
|
-
const slot = (0,
|
|
29936
|
+
const slot = (0, import_react148.useContext)(RightPaneBannerSlotContext);
|
|
29681
29937
|
if (slot === void 0) fail("RightPaneBanner must be rendered inside a RightPanePanel");
|
|
29682
29938
|
return slot ? (0, import_react_dom8.createPortal)(children, slot) : null;
|
|
29683
29939
|
}
|
|
29684
|
-
var RightPaneBannerSlotContext = (0,
|
|
29940
|
+
var RightPaneBannerSlotContext = (0, import_react148.createContext)(void 0);
|
|
29685
29941
|
|
|
29686
29942
|
// src/components/Layout/ScrollableFooter.tsx
|
|
29687
29943
|
var import_react_dom9 = require("react-dom");
|
|
@@ -29697,7 +29953,7 @@ function ScrollableFooter(props) {
|
|
|
29697
29953
|
|
|
29698
29954
|
// src/components/Layout/TableReviewLayout/TableReviewLayout.tsx
|
|
29699
29955
|
var import_framer_motion5 = require("framer-motion");
|
|
29700
|
-
var
|
|
29956
|
+
var import_react149 = require("react");
|
|
29701
29957
|
|
|
29702
29958
|
// src/components/Layout/TableReviewLayout/SidePanel.tsx
|
|
29703
29959
|
var import_jsx_runtime214 = require("react/jsx-runtime");
|
|
@@ -29737,8 +29993,8 @@ function TableReviewLayout(props) {
|
|
|
29737
29993
|
rightPaneWidth = defaultRightPaneWidth
|
|
29738
29994
|
} = props;
|
|
29739
29995
|
const tid = useTestIds(props, "tableReviewLayout");
|
|
29740
|
-
const [isPanelVisible, setIsPanelVisible] = (0,
|
|
29741
|
-
(0,
|
|
29996
|
+
const [isPanelVisible, setIsPanelVisible] = (0, import_react149.useState)(!!panelContent);
|
|
29997
|
+
(0, import_react149.useEffect)(() => {
|
|
29742
29998
|
setIsPanelVisible(!!panelContent);
|
|
29743
29999
|
}, [panelContent]);
|
|
29744
30000
|
function handleClosePanel() {
|
|
@@ -29898,24 +30154,24 @@ function HomeboundLogo(props) {
|
|
|
29898
30154
|
|
|
29899
30155
|
// src/components/MaxLines.tsx
|
|
29900
30156
|
var import_utils44 = require("@react-aria/utils");
|
|
29901
|
-
var
|
|
30157
|
+
var import_react150 = require("react");
|
|
29902
30158
|
var import_runtime142 = require("@homebound/truss/runtime");
|
|
29903
30159
|
var import_jsx_runtime218 = require("react/jsx-runtime");
|
|
29904
30160
|
function MaxLines({
|
|
29905
30161
|
maxLines,
|
|
29906
30162
|
children
|
|
29907
30163
|
}) {
|
|
29908
|
-
const elRef = (0,
|
|
29909
|
-
const [hasMore, setHasMore] = (0,
|
|
29910
|
-
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);
|
|
29911
30167
|
(0, import_utils44.useLayoutEffect)(() => {
|
|
29912
30168
|
if (!elRef.current) return;
|
|
29913
30169
|
setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
29914
30170
|
}, []);
|
|
29915
|
-
(0,
|
|
30171
|
+
(0, import_react150.useEffect)(() => {
|
|
29916
30172
|
setExpanded(false);
|
|
29917
30173
|
}, [children]);
|
|
29918
|
-
const onResize = (0,
|
|
30174
|
+
const onResize = (0, import_react150.useCallback)(() => {
|
|
29919
30175
|
if (!elRef.current) return;
|
|
29920
30176
|
!expanded && setHasMore(elRef.current.scrollHeight > elRef.current.clientHeight);
|
|
29921
30177
|
}, [expanded]);
|
|
@@ -30030,7 +30286,7 @@ function toPageNumberSize(page) {
|
|
|
30030
30286
|
|
|
30031
30287
|
// src/components/ScrollShadows.tsx
|
|
30032
30288
|
var import_utils45 = require("@react-aria/utils");
|
|
30033
|
-
var
|
|
30289
|
+
var import_react151 = require("react");
|
|
30034
30290
|
var import_runtime144 = require("@homebound/truss/runtime");
|
|
30035
30291
|
var import_jsx_runtime220 = require("react/jsx-runtime");
|
|
30036
30292
|
function ScrollShadows(props) {
|
|
@@ -30048,10 +30304,10 @@ function ScrollShadows(props) {
|
|
|
30048
30304
|
if (!bgColor.includes("rgba")) {
|
|
30049
30305
|
throw new Error("ScrollShadows: bgColor prop must be in the format 'rgba(255, 255, 255, 1)'");
|
|
30050
30306
|
}
|
|
30051
|
-
const [showStartShadow, setShowStartShadow] = (0,
|
|
30052
|
-
const [showEndShadow, setShowEndShadow] = (0,
|
|
30053
|
-
const scrollRef = (0,
|
|
30054
|
-
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)(() => {
|
|
30055
30311
|
const transparentBgColor = bgColor.replace(/,1\)$/, ",0)");
|
|
30056
30312
|
const commonStyles = {
|
|
30057
30313
|
position: "absolute",
|
|
@@ -30102,7 +30358,7 @@ function ScrollShadows(props) {
|
|
|
30102
30358
|
}
|
|
30103
30359
|
}];
|
|
30104
30360
|
}, [horizontal, bgColor]);
|
|
30105
|
-
const updateScrollProps = (0,
|
|
30361
|
+
const updateScrollProps = (0, import_react151.useCallback)((el) => {
|
|
30106
30362
|
const {
|
|
30107
30363
|
scrollTop,
|
|
30108
30364
|
scrollHeight,
|
|
@@ -30117,7 +30373,7 @@ function ScrollShadows(props) {
|
|
|
30117
30373
|
setShowStartShadow(start > 0);
|
|
30118
30374
|
setShowEndShadow(start + boxSize < end);
|
|
30119
30375
|
}, [horizontal]);
|
|
30120
|
-
const onResize = (0,
|
|
30376
|
+
const onResize = (0, import_react151.useCallback)(() => scrollRef.current && updateScrollProps(scrollRef.current), [updateScrollProps]);
|
|
30121
30377
|
(0, import_utils45.useResizeObserver)({
|
|
30122
30378
|
ref: scrollRef,
|
|
30123
30379
|
onResize
|
|
@@ -30171,10 +30427,10 @@ var import_change_case8 = require("change-case");
|
|
|
30171
30427
|
// src/components/AppNav/AppNavGroup.tsx
|
|
30172
30428
|
var import_utils46 = require("@react-aria/utils");
|
|
30173
30429
|
var import_change_case7 = require("change-case");
|
|
30174
|
-
var
|
|
30430
|
+
var import_react154 = require("react");
|
|
30175
30431
|
|
|
30176
30432
|
// src/components/AppNav/AppNavGroupTrigger.tsx
|
|
30177
|
-
var
|
|
30433
|
+
var import_react152 = require("react");
|
|
30178
30434
|
var import_react_aria68 = require("react-aria");
|
|
30179
30435
|
var import_runtime145 = require("@homebound/truss/runtime");
|
|
30180
30436
|
var import_jsx_runtime221 = require("react/jsx-runtime");
|
|
@@ -30187,7 +30443,7 @@ function AppNavGroupTrigger(props) {
|
|
|
30187
30443
|
active = false
|
|
30188
30444
|
} = props;
|
|
30189
30445
|
const tid = useTestIds(props, "trigger");
|
|
30190
|
-
const ref = (0,
|
|
30446
|
+
const ref = (0, import_react152.useRef)(null);
|
|
30191
30447
|
const {
|
|
30192
30448
|
buttonProps,
|
|
30193
30449
|
isPressed
|
|
@@ -30208,7 +30464,7 @@ function AppNavGroupTrigger(props) {
|
|
|
30208
30464
|
focusRingStyles: focusRingStyles2,
|
|
30209
30465
|
hoverStyles: hoverStyles4,
|
|
30210
30466
|
pressedStyles: pressedStyles2
|
|
30211
|
-
} = (0,
|
|
30467
|
+
} = (0, import_react152.useMemo)(() => getNavLinkStyles("side"), []);
|
|
30212
30468
|
return /* @__PURE__ */ (0, import_jsx_runtime221.jsxs)("button", { type: "button", ...(0, import_react_aria68.mergeProps)(buttonProps, focusProps, hoverProps, tid.trigger, {
|
|
30213
30469
|
ref,
|
|
30214
30470
|
"aria-expanded": expanded,
|
|
@@ -30346,7 +30602,7 @@ function entryHasIcons(item) {
|
|
|
30346
30602
|
}
|
|
30347
30603
|
|
|
30348
30604
|
// src/components/AppNav/useAppNavGroupExpanded.ts
|
|
30349
|
-
var
|
|
30605
|
+
var import_react153 = require("react");
|
|
30350
30606
|
var APP_NAV_EXPANDED_LINK_GROUPS_STORAGE_KEY = "beam.appNav.expandedLinkGroups";
|
|
30351
30607
|
function loadStored() {
|
|
30352
30608
|
try {
|
|
@@ -30365,13 +30621,13 @@ function persistLabel(label, expanded) {
|
|
|
30365
30621
|
}
|
|
30366
30622
|
function useAppNavGroupExpanded(linkGroup) {
|
|
30367
30623
|
const { label } = linkGroup;
|
|
30368
|
-
const [userExpanded, setUserExpanded] = (0,
|
|
30624
|
+
const [userExpanded, setUserExpanded] = (0, import_react153.useState)(() => {
|
|
30369
30625
|
const stored = loadStored();
|
|
30370
30626
|
return label in stored ? stored[label] : null;
|
|
30371
30627
|
});
|
|
30372
30628
|
const hasActiveLink = appNavLinkGroupLinks(linkGroup).some((l) => l.active);
|
|
30373
30629
|
const expanded = userExpanded !== null ? userExpanded : hasActiveLink ? true : linkGroup.defaultExpanded ?? false;
|
|
30374
|
-
const onToggle = (0,
|
|
30630
|
+
const onToggle = (0, import_react153.useCallback)(() => {
|
|
30375
30631
|
const next = !expanded;
|
|
30376
30632
|
setUserExpanded(next);
|
|
30377
30633
|
persistLabel(label, next);
|
|
@@ -30406,15 +30662,15 @@ function AppNavGroupDisclosure(props) {
|
|
|
30406
30662
|
} = useAppNavGroupExpanded(linkGroup);
|
|
30407
30663
|
const tid = useTestIds(props, "linkGroup");
|
|
30408
30664
|
const navGroupId = `nav-group-${(0, import_change_case7.kebabCase)(linkGroup.label)}`;
|
|
30409
|
-
const [contentEl, setContentEl] = (0,
|
|
30410
|
-
const contentRef = (0,
|
|
30665
|
+
const [contentEl, setContentEl] = (0, import_react154.useState)(null);
|
|
30666
|
+
const contentRef = (0, import_react154.useMemo)(() => ({
|
|
30411
30667
|
current: contentEl
|
|
30412
30668
|
}), [contentEl]);
|
|
30413
|
-
const [contentHeight, setContentHeight] = (0,
|
|
30414
|
-
(0,
|
|
30669
|
+
const [contentHeight, setContentHeight] = (0, import_react154.useState)(expanded ? "auto" : "0");
|
|
30670
|
+
(0, import_react154.useEffect)(() => {
|
|
30415
30671
|
setContentHeight(expanded && contentEl ? `${contentEl.scrollHeight}px` : "0");
|
|
30416
30672
|
}, [expanded, contentEl]);
|
|
30417
|
-
const onResize = (0,
|
|
30673
|
+
const onResize = (0, import_react154.useCallback)(() => {
|
|
30418
30674
|
if (contentEl && expanded) {
|
|
30419
30675
|
setContentHeight(`${contentEl.scrollHeight}px`);
|
|
30420
30676
|
}
|
|
@@ -30560,7 +30816,7 @@ function AppNavItems(props) {
|
|
|
30560
30816
|
}
|
|
30561
30817
|
|
|
30562
30818
|
// src/layouts/SideNavLayout/SideNavLayoutContext.tsx
|
|
30563
|
-
var
|
|
30819
|
+
var import_react155 = require("react");
|
|
30564
30820
|
var import_jsx_runtime226 = require("react/jsx-runtime");
|
|
30565
30821
|
var SIDE_NAV_LAYOUT_STATE_STORAGE_KEY = "beam.sideNavLayout.navState";
|
|
30566
30822
|
function loadStoredNavState() {
|
|
@@ -30583,20 +30839,20 @@ function resolveInitialNavState(defaultNavState) {
|
|
|
30583
30839
|
}
|
|
30584
30840
|
return loadStoredNavState() ?? defaultNavState ?? "expanded";
|
|
30585
30841
|
}
|
|
30586
|
-
var SideNavLayoutContext = (0,
|
|
30842
|
+
var SideNavLayoutContext = (0, import_react155.createContext)(void 0);
|
|
30587
30843
|
function SideNavLayoutProvider(props) {
|
|
30588
|
-
const [navState, setNavStateInternal] = (0,
|
|
30844
|
+
const [navState, setNavStateInternal] = (0, import_react155.useState)(
|
|
30589
30845
|
() => resolveInitialNavState(props.defaultNavState)
|
|
30590
30846
|
);
|
|
30591
30847
|
const bp = useBreakpoint();
|
|
30592
|
-
const prevMdAndUp = (0,
|
|
30593
|
-
(0,
|
|
30848
|
+
const prevMdAndUp = (0, import_react155.useRef)(bp.mdAndUp);
|
|
30849
|
+
(0, import_react155.useEffect)(() => {
|
|
30594
30850
|
if (prevMdAndUp.current && !bp.mdAndUp) {
|
|
30595
30851
|
setNavStateInternal((prev) => prev === "expanded" ? "collapse" : prev);
|
|
30596
30852
|
}
|
|
30597
30853
|
prevMdAndUp.current = bp.mdAndUp;
|
|
30598
30854
|
}, [bp.mdAndUp]);
|
|
30599
|
-
const setNavState = (0,
|
|
30855
|
+
const setNavState = (0, import_react155.useCallback)((value2) => {
|
|
30600
30856
|
setNavStateInternal((prev) => {
|
|
30601
30857
|
const next = typeof value2 === "function" ? value2(prev) : value2;
|
|
30602
30858
|
if (next === "expanded" || next === "collapse") {
|
|
@@ -30608,15 +30864,15 @@ function SideNavLayoutProvider(props) {
|
|
|
30608
30864
|
return next;
|
|
30609
30865
|
});
|
|
30610
30866
|
}, []);
|
|
30611
|
-
const value = (0,
|
|
30867
|
+
const value = (0, import_react155.useMemo)(() => ({ navState, setNavState }), [navState, setNavState]);
|
|
30612
30868
|
return /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(SideNavLayoutContext.Provider, { value, children: props.children });
|
|
30613
30869
|
}
|
|
30614
30870
|
function useSideNavLayoutContext() {
|
|
30615
|
-
return (0,
|
|
30871
|
+
return (0, import_react155.useContext)(SideNavLayoutContext) ?? { navState: "expanded", setNavState: () => {
|
|
30616
30872
|
} };
|
|
30617
30873
|
}
|
|
30618
30874
|
function useHasSideNavLayoutProvider() {
|
|
30619
|
-
return (0,
|
|
30875
|
+
return (0, import_react155.useContext)(SideNavLayoutContext) !== void 0;
|
|
30620
30876
|
}
|
|
30621
30877
|
|
|
30622
30878
|
// src/components/SideNav/SideNav.tsx
|
|
@@ -30677,11 +30933,11 @@ function SideNav(props) {
|
|
|
30677
30933
|
}
|
|
30678
30934
|
|
|
30679
30935
|
// src/components/Stepper.tsx
|
|
30680
|
-
var
|
|
30936
|
+
var import_react156 = require("react");
|
|
30681
30937
|
var import_react_aria69 = require("react-aria");
|
|
30682
30938
|
var import_runtime149 = require("@homebound/truss/runtime");
|
|
30683
30939
|
var import_jsx_runtime228 = require("react/jsx-runtime");
|
|
30684
|
-
var
|
|
30940
|
+
var import_react157 = require("react");
|
|
30685
30941
|
var __maybeInc26 = (inc) => {
|
|
30686
30942
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
30687
30943
|
};
|
|
@@ -30710,7 +30966,7 @@ function Stepper(props) {
|
|
|
30710
30966
|
}]
|
|
30711
30967
|
}), children: steps.map((step) => {
|
|
30712
30968
|
const isCurrent = currentStep === step.value;
|
|
30713
|
-
return /* @__PURE__ */ (0,
|
|
30969
|
+
return /* @__PURE__ */ (0, import_react157.createElement)("li", { ...(0, import_runtime149.trussProps)({
|
|
30714
30970
|
display: "df",
|
|
30715
30971
|
flexGrow: "fg1",
|
|
30716
30972
|
flexDirection: "fdc",
|
|
@@ -30759,7 +31015,7 @@ function StepButton(props) {
|
|
|
30759
31015
|
onPress: onClick,
|
|
30760
31016
|
isDisabled: disabled
|
|
30761
31017
|
};
|
|
30762
|
-
const ref = (0,
|
|
31018
|
+
const ref = (0, import_react156.useRef)(null);
|
|
30763
31019
|
const {
|
|
30764
31020
|
buttonProps,
|
|
30765
31021
|
isPressed
|
|
@@ -30869,7 +31125,7 @@ function StepIcon({
|
|
|
30869
31125
|
}
|
|
30870
31126
|
|
|
30871
31127
|
// src/components/StepperTabs/StepperTab.tsx
|
|
30872
|
-
var
|
|
31128
|
+
var import_react158 = require("react");
|
|
30873
31129
|
var import_react_aria70 = require("react-aria");
|
|
30874
31130
|
var import_runtime150 = require("@homebound/truss/runtime");
|
|
30875
31131
|
var import_jsx_runtime229 = require("react/jsx-runtime");
|
|
@@ -30888,7 +31144,7 @@ function StepperTab(props) {
|
|
|
30888
31144
|
onPress: () => onClick(value),
|
|
30889
31145
|
isDisabled: disabled || collapsed
|
|
30890
31146
|
};
|
|
30891
|
-
const ref = (0,
|
|
31147
|
+
const ref = (0, import_react158.useRef)(null);
|
|
30892
31148
|
const {
|
|
30893
31149
|
buttonProps
|
|
30894
31150
|
} = (0, import_react_aria70.useButton)(ariaProps, ref);
|
|
@@ -31025,7 +31281,7 @@ var stepperTabStyles = {
|
|
|
31025
31281
|
// src/components/StepperTabs/StepperTabs.tsx
|
|
31026
31282
|
var import_runtime151 = require("@homebound/truss/runtime");
|
|
31027
31283
|
var import_jsx_runtime230 = require("react/jsx-runtime");
|
|
31028
|
-
var
|
|
31284
|
+
var import_react159 = require("react");
|
|
31029
31285
|
function StepperTabs(props) {
|
|
31030
31286
|
const {
|
|
31031
31287
|
steps,
|
|
@@ -31055,7 +31311,7 @@ function StepperTabs(props) {
|
|
|
31055
31311
|
}), children: steps.map((step, idx) => {
|
|
31056
31312
|
const isCurrent = idx === currentStepIndex;
|
|
31057
31313
|
const isCompleted = idx < currentStepIndex;
|
|
31058
|
-
return /* @__PURE__ */ (0,
|
|
31314
|
+
return /* @__PURE__ */ (0, import_react159.createElement)("li", { ...(0, import_runtime151.trussProps)({
|
|
31059
31315
|
display: "df",
|
|
31060
31316
|
flexGrow: "fg1",
|
|
31061
31317
|
flexBasis: "fb_0",
|
|
@@ -31289,7 +31545,7 @@ function segmentWidth(count, total) {
|
|
|
31289
31545
|
}
|
|
31290
31546
|
|
|
31291
31547
|
// src/components/TableSummary/TableSummary.tsx
|
|
31292
|
-
var
|
|
31548
|
+
var import_react160 = require("react");
|
|
31293
31549
|
var import_react_aria71 = require("react-aria");
|
|
31294
31550
|
var import_runtime155 = require("@homebound/truss/runtime");
|
|
31295
31551
|
var import_jsx_runtime235 = require("react/jsx-runtime");
|
|
@@ -31349,7 +31605,7 @@ function MetricButton(props) {
|
|
|
31349
31605
|
metric,
|
|
31350
31606
|
divider
|
|
31351
31607
|
} = props;
|
|
31352
|
-
const ref = (0,
|
|
31608
|
+
const ref = (0, import_react160.useRef)(null);
|
|
31353
31609
|
const {
|
|
31354
31610
|
buttonProps
|
|
31355
31611
|
} = (0, import_react_aria71.useButton)({
|
|
@@ -31426,7 +31682,7 @@ function MetricButton(props) {
|
|
|
31426
31682
|
|
|
31427
31683
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
31428
31684
|
var import_fast_deep_equal2 = __toESM(require("fast-deep-equal"), 1);
|
|
31429
|
-
var
|
|
31685
|
+
var import_react162 = require("react");
|
|
31430
31686
|
|
|
31431
31687
|
// src/utils/inlineStyles.ts
|
|
31432
31688
|
function isInlineStyleValue(value) {
|
|
@@ -31455,14 +31711,14 @@ function restoreElementStyle(el, snapshot) {
|
|
|
31455
31711
|
}
|
|
31456
31712
|
|
|
31457
31713
|
// src/components/DnDGrid/DnDGridContext.tsx
|
|
31458
|
-
var
|
|
31459
|
-
var DnDGridContext = (0,
|
|
31714
|
+
var import_react161 = require("react");
|
|
31715
|
+
var DnDGridContext = (0, import_react161.createContext)({
|
|
31460
31716
|
dragEl: { current: void 0 },
|
|
31461
31717
|
onDragHandleKeyDown: () => {
|
|
31462
31718
|
}
|
|
31463
31719
|
});
|
|
31464
31720
|
function useDnDGridContext() {
|
|
31465
|
-
return (0,
|
|
31721
|
+
return (0, import_react161.useContext)(DnDGridContext);
|
|
31466
31722
|
}
|
|
31467
31723
|
|
|
31468
31724
|
// src/components/DnDGrid/DnDGrid.tsx
|
|
@@ -31476,13 +31732,13 @@ function DnDGrid(props) {
|
|
|
31476
31732
|
activeItemStyles,
|
|
31477
31733
|
lockAxis
|
|
31478
31734
|
} = props;
|
|
31479
|
-
const gridEl = (0,
|
|
31480
|
-
const dragEl = (0,
|
|
31481
|
-
const cloneEl = (0,
|
|
31482
|
-
const initialOrder = (0,
|
|
31483
|
-
const styleSnapshot = (0,
|
|
31484
|
-
const reorderViaKeyboard = (0,
|
|
31485
|
-
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)({
|
|
31486
31742
|
x: 0,
|
|
31487
31743
|
y: 0
|
|
31488
31744
|
});
|
|
@@ -31490,20 +31746,20 @@ function DnDGrid(props) {
|
|
|
31490
31746
|
const activeStyles3 = activeItemStyles ?? {
|
|
31491
31747
|
boxShadow: "bshModal"
|
|
31492
31748
|
};
|
|
31493
|
-
const getGridItems = (0,
|
|
31749
|
+
const getGridItems = (0, import_react162.useCallback)(() => {
|
|
31494
31750
|
return gridEl.current ? Array.from(gridEl.current.querySelectorAll(`[${gridItemIdKey}]`)) : [];
|
|
31495
31751
|
}, []);
|
|
31496
|
-
const getGridItemIdOrder = (0,
|
|
31752
|
+
const getGridItemIdOrder = (0, import_react162.useCallback)(() => {
|
|
31497
31753
|
return getGridItems().map((child) => child.getAttribute(gridItemIdKey)).filter(isDefined);
|
|
31498
31754
|
}, [getGridItems]);
|
|
31499
|
-
const initReorder = (0,
|
|
31755
|
+
const initReorder = (0, import_react162.useCallback)(() => {
|
|
31500
31756
|
if (gridEl.current && dragEl.current) {
|
|
31501
31757
|
initialOrder.current = getGridItemIdOrder();
|
|
31502
31758
|
styleSnapshot.current = snapshotElementStyle(dragEl.current);
|
|
31503
31759
|
applyActiveStyles(dragEl.current, activeStyles3);
|
|
31504
31760
|
}
|
|
31505
31761
|
}, [getGridItemIdOrder, activeStyles3]);
|
|
31506
|
-
const commitReorder = (0,
|
|
31762
|
+
const commitReorder = (0, import_react162.useCallback)(() => {
|
|
31507
31763
|
if (gridEl.current && dragEl.current) {
|
|
31508
31764
|
const currentOrder = getGridItemIdOrder();
|
|
31509
31765
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) onReorder(currentOrder);
|
|
@@ -31513,7 +31769,7 @@ function DnDGrid(props) {
|
|
|
31513
31769
|
initialOrder.current = currentOrder;
|
|
31514
31770
|
}
|
|
31515
31771
|
}, [onReorder, getGridItemIdOrder]);
|
|
31516
|
-
const cancelReorder = (0,
|
|
31772
|
+
const cancelReorder = (0, import_react162.useCallback)(() => {
|
|
31517
31773
|
if (gridEl.current && dragEl.current && initialOrder.current) {
|
|
31518
31774
|
const currentOrder = getGridItemIdOrder();
|
|
31519
31775
|
if (!(0, import_fast_deep_equal2.default)(currentOrder, initialOrder.current)) {
|
|
@@ -31535,7 +31791,7 @@ function DnDGrid(props) {
|
|
|
31535
31791
|
reorderViaKeyboard.current = false;
|
|
31536
31792
|
}
|
|
31537
31793
|
}, [getGridItemIdOrder, getGridItems]);
|
|
31538
|
-
const onMove = (0,
|
|
31794
|
+
const onMove = (0, import_react162.useCallback)((e) => {
|
|
31539
31795
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
31540
31796
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
31541
31797
|
const clientY = "clientY" in e ? e.clientY : e.touches[0].clientY;
|
|
@@ -31558,7 +31814,7 @@ function DnDGrid(props) {
|
|
|
31558
31814
|
}
|
|
31559
31815
|
}
|
|
31560
31816
|
}, [lockAxis]);
|
|
31561
|
-
const onDragEnd = (0,
|
|
31817
|
+
const onDragEnd = (0, import_react162.useCallback)((e) => {
|
|
31562
31818
|
if (!reorderViaKeyboard.current && dragEl.current && cloneEl.current && gridEl.current) {
|
|
31563
31819
|
e.preventDefault();
|
|
31564
31820
|
cloneEl.current.replaceWith(dragEl.current);
|
|
@@ -31569,7 +31825,7 @@ function DnDGrid(props) {
|
|
|
31569
31825
|
removePointerDragListeners(onMove, onDragEnd);
|
|
31570
31826
|
}
|
|
31571
31827
|
}, [commitReorder, onMove]);
|
|
31572
|
-
const onDragStart = (0,
|
|
31828
|
+
const onDragStart = (0, import_react162.useCallback)((e) => {
|
|
31573
31829
|
if (!reorderViaKeyboard.current && dragEl.current && gridEl.current) {
|
|
31574
31830
|
const rect = dragEl.current.getBoundingClientRect();
|
|
31575
31831
|
const clientX = "clientX" in e ? e.clientX : e.touches[0].clientX;
|
|
@@ -31597,10 +31853,10 @@ function DnDGrid(props) {
|
|
|
31597
31853
|
addPointerDragListeners(onMove, onDragEnd);
|
|
31598
31854
|
}
|
|
31599
31855
|
}, [initReorder, onMove, onDragEnd]);
|
|
31600
|
-
(0,
|
|
31856
|
+
(0, import_react162.useEffect)(() => {
|
|
31601
31857
|
return () => removePointerDragListeners(onMove, onDragEnd);
|
|
31602
31858
|
}, [onMove, onDragEnd]);
|
|
31603
|
-
const onDragHandleKeyDown = (0,
|
|
31859
|
+
const onDragHandleKeyDown = (0, import_react162.useCallback)((e) => {
|
|
31604
31860
|
const moveHandle = e.target;
|
|
31605
31861
|
if (dragEl.current instanceof HTMLElement && moveHandle instanceof HTMLElement && gridEl.current) {
|
|
31606
31862
|
const isSpaceKey = e.key === " ";
|
|
@@ -31741,11 +31997,11 @@ function DnDGridItemHandle(props) {
|
|
|
31741
31997
|
}
|
|
31742
31998
|
|
|
31743
31999
|
// src/components/DnDGrid/useDnDGridItem.tsx
|
|
31744
|
-
var
|
|
32000
|
+
var import_react163 = require("react");
|
|
31745
32001
|
function useDnDGridItem(props) {
|
|
31746
32002
|
const { id, itemRef } = props;
|
|
31747
32003
|
const { dragEl, onDragHandleKeyDown } = useDnDGridContext();
|
|
31748
|
-
const { dragItemProps, dragHandleProps } = (0,
|
|
32004
|
+
const { dragItemProps, dragHandleProps } = (0, import_react163.useMemo)(() => {
|
|
31749
32005
|
function initDraggable() {
|
|
31750
32006
|
if (itemRef.current) {
|
|
31751
32007
|
dragEl.current = itemRef.current;
|
|
@@ -32292,10 +32548,10 @@ var ToggleFilter = class extends BaseFilter {
|
|
|
32292
32548
|
};
|
|
32293
32549
|
|
|
32294
32550
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
32295
|
-
var
|
|
32551
|
+
var import_react166 = require("react");
|
|
32296
32552
|
|
|
32297
32553
|
// src/components/Grid/useResponsiveGrid.ts
|
|
32298
|
-
var
|
|
32554
|
+
var import_react164 = require("react");
|
|
32299
32555
|
var import_runtime158 = require("@homebound/truss/runtime");
|
|
32300
32556
|
var __maybeInc28 = (inc) => {
|
|
32301
32557
|
return typeof inc === "string" ? inc : `calc(var(--t-spacing) * ${inc})`;
|
|
@@ -32306,7 +32562,7 @@ function useResponsiveGrid(props) {
|
|
|
32306
32562
|
gap,
|
|
32307
32563
|
columns
|
|
32308
32564
|
} = props;
|
|
32309
|
-
const gridStyles = (0,
|
|
32565
|
+
const gridStyles = (0, import_react164.useMemo)(() => {
|
|
32310
32566
|
const gapCount = columns - 1;
|
|
32311
32567
|
const totalGapWidth = gap * gapCount;
|
|
32312
32568
|
const maxColumnWidth = `calc((100% - ${totalGapWidth}px) / ${columns})`;
|
|
@@ -32329,9 +32585,9 @@ function useResponsiveGrid(props) {
|
|
|
32329
32585
|
}
|
|
32330
32586
|
|
|
32331
32587
|
// src/components/Grid/utils.ts
|
|
32332
|
-
var
|
|
32588
|
+
var import_react165 = require("react");
|
|
32333
32589
|
var gridItemDataAttribute = "data-grid-item-span";
|
|
32334
|
-
var ResponsiveGridContext = (0,
|
|
32590
|
+
var ResponsiveGridContext = (0, import_react165.createContext)(void 0);
|
|
32335
32591
|
|
|
32336
32592
|
// src/components/Grid/ResponsiveGrid.tsx
|
|
32337
32593
|
var import_runtime159 = require("@homebound/truss/runtime");
|
|
@@ -32350,7 +32606,7 @@ function ResponsiveGrid(props) {
|
|
|
32350
32606
|
gap,
|
|
32351
32607
|
columns
|
|
32352
32608
|
});
|
|
32353
|
-
const config = (0,
|
|
32609
|
+
const config = (0, import_react166.useMemo)(() => ({
|
|
32354
32610
|
minColumnWidth,
|
|
32355
32611
|
gap,
|
|
32356
32612
|
columns
|
|
@@ -32363,14 +32619,14 @@ var import_react_aria73 = require("react-aria");
|
|
|
32363
32619
|
var import_runtime160 = require("@homebound/truss/runtime");
|
|
32364
32620
|
|
|
32365
32621
|
// src/components/Grid/useResponsiveGridItem.ts
|
|
32366
|
-
var
|
|
32622
|
+
var import_react167 = require("react");
|
|
32367
32623
|
var injectedResponsiveGridClasses = /* @__PURE__ */ new Set();
|
|
32368
32624
|
var responsiveGridStyleEl;
|
|
32369
32625
|
function useResponsiveGridItem(props) {
|
|
32370
32626
|
const { colSpan = 1, gridConfig } = props;
|
|
32371
|
-
const contextConfig = (0,
|
|
32627
|
+
const contextConfig = (0, import_react167.useContext)(ResponsiveGridContext);
|
|
32372
32628
|
const config = gridConfig ?? contextConfig;
|
|
32373
|
-
const { className, cssText } = (0,
|
|
32629
|
+
const { className, cssText } = (0, import_react167.useMemo)(() => {
|
|
32374
32630
|
if (!config || colSpan <= 1) return { className: "", cssText: "" };
|
|
32375
32631
|
const { minColumnWidth, gap } = config;
|
|
32376
32632
|
const className2 = responsiveGridItemClassName(config, colSpan);
|
|
@@ -32393,7 +32649,7 @@ function useResponsiveGridItem(props) {
|
|
|
32393
32649
|
};
|
|
32394
32650
|
}
|
|
32395
32651
|
function useResponsiveGridItemStyle(className, cssText) {
|
|
32396
|
-
(0,
|
|
32652
|
+
(0, import_react167.useEffect)(
|
|
32397
32653
|
function() {
|
|
32398
32654
|
if (!className || !cssText || typeof document === "undefined") return;
|
|
32399
32655
|
if (!responsiveGridStyleEl) {
|
|
@@ -32431,7 +32687,7 @@ function ResponsiveGridItem(props) {
|
|
|
32431
32687
|
}
|
|
32432
32688
|
|
|
32433
32689
|
// src/components/HbLoadingSpinner.tsx
|
|
32434
|
-
var
|
|
32690
|
+
var import_react168 = __toESM(require("react"), 1);
|
|
32435
32691
|
|
|
32436
32692
|
// src/components/HbLoadingSpinner.base64.ts
|
|
32437
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";
|
|
@@ -32444,9 +32700,9 @@ function HbLoadingSpinner({
|
|
|
32444
32700
|
extraQuipsOnly,
|
|
32445
32701
|
iconOnly
|
|
32446
32702
|
}) {
|
|
32447
|
-
const ctx = (0,
|
|
32703
|
+
const ctx = (0, import_react168.useContext)(HbLoadingSpinnerContext);
|
|
32448
32704
|
const tid = useTestIds({}, "hbSpinner");
|
|
32449
|
-
const quip = (0,
|
|
32705
|
+
const quip = (0, import_react168.useMemo)(() => {
|
|
32450
32706
|
const allQuips = extraQuipsOnly && extraQuips.length !== 0 ? extraQuips : [...ctx.quips, ...extraQuips];
|
|
32451
32707
|
const forceQuips = extraQuips.length !== 0 || noQuips === false;
|
|
32452
32708
|
if (ctx.noQuips && !forceQuips || noQuips || allQuips.length === 0) return "Loading...";
|
|
@@ -32476,7 +32732,7 @@ function HbLoadingSpinner({
|
|
|
32476
32732
|
var dotDotDot = (str) => str.concat("...");
|
|
32477
32733
|
var HB_QUIPS_MISSION = ["Loading", "One Team", "On a Mission", "Executing Relentlessly", "Building Better", "In Service of Our Customers"].map(dotDotDot);
|
|
32478
32734
|
var HB_QUIPS_FLAVOR = ["HOM is HOW", "Scaling Massively", "#LoveIt"].map(dotDotDot);
|
|
32479
|
-
var HbLoadingSpinnerContext =
|
|
32735
|
+
var HbLoadingSpinnerContext = import_react168.default.createContext({
|
|
32480
32736
|
quips: ["Loading..."],
|
|
32481
32737
|
noQuips: false
|
|
32482
32738
|
});
|
|
@@ -32484,7 +32740,7 @@ function HbSpinnerProvider({
|
|
|
32484
32740
|
quips = [],
|
|
32485
32741
|
children
|
|
32486
32742
|
}) {
|
|
32487
|
-
const state = (0,
|
|
32743
|
+
const state = (0, import_react168.useMemo)(() => ({
|
|
32488
32744
|
quips,
|
|
32489
32745
|
noQuips: quips.length === 0
|
|
32490
32746
|
}), [quips]);
|
|
@@ -32492,12 +32748,12 @@ function HbSpinnerProvider({
|
|
|
32492
32748
|
}
|
|
32493
32749
|
|
|
32494
32750
|
// src/components/Modal/OpenModal.tsx
|
|
32495
|
-
var
|
|
32751
|
+
var import_react169 = require("react");
|
|
32496
32752
|
var import_jsx_runtime250 = require("react/jsx-runtime");
|
|
32497
32753
|
function OpenModal(props) {
|
|
32498
32754
|
const { openModal } = useModal();
|
|
32499
32755
|
const { size, children, keepOpen, aiMode } = props;
|
|
32500
|
-
(0,
|
|
32756
|
+
(0, import_react169.useEffect)(() => {
|
|
32501
32757
|
if (!keepOpen) {
|
|
32502
32758
|
openModal({ size, content: children, aiMode });
|
|
32503
32759
|
}
|
|
@@ -32511,33 +32767,33 @@ function OpenModal(props) {
|
|
|
32511
32767
|
|
|
32512
32768
|
// src/components/Navbar/NavbarMobileMenu.tsx
|
|
32513
32769
|
var import_framer_motion7 = require("framer-motion");
|
|
32514
|
-
var
|
|
32770
|
+
var import_react171 = require("react");
|
|
32515
32771
|
var import_react_aria74 = require("react-aria");
|
|
32516
32772
|
var import_react_dom11 = require("react-dom");
|
|
32517
32773
|
var import_react_router_dom7 = require("react-router-dom");
|
|
32518
32774
|
|
|
32519
32775
|
// src/layouts/NavbarLayout/MobileSubNavContext.tsx
|
|
32520
|
-
var
|
|
32776
|
+
var import_react170 = require("react");
|
|
32521
32777
|
var import_jsx_runtime251 = require("react/jsx-runtime");
|
|
32522
|
-
var MobileSubNavContext = (0,
|
|
32778
|
+
var MobileSubNavContext = (0, import_react170.createContext)(void 0);
|
|
32523
32779
|
function MobileSubNavProvider(props) {
|
|
32524
|
-
const [mobileSubNav, setMobileSubNav] = (0,
|
|
32525
|
-
const value = (0,
|
|
32780
|
+
const [mobileSubNav, setMobileSubNav] = (0, import_react170.useState)(null);
|
|
32781
|
+
const value = (0, import_react170.useMemo)(() => ({ mobileSubNav, setMobileSubNav }), [mobileSubNav]);
|
|
32526
32782
|
return /* @__PURE__ */ (0, import_jsx_runtime251.jsx)(MobileSubNavContext.Provider, { value, children: props.children });
|
|
32527
32783
|
}
|
|
32528
32784
|
function useMobileSubNav() {
|
|
32529
|
-
return (0,
|
|
32785
|
+
return (0, import_react170.useContext)(MobileSubNavContext)?.mobileSubNav ?? null;
|
|
32530
32786
|
}
|
|
32531
32787
|
function useRegisterMobileSubNav(content2) {
|
|
32532
|
-
const ctx = (0,
|
|
32788
|
+
const ctx = (0, import_react170.useContext)(MobileSubNavContext);
|
|
32533
32789
|
const setMobileSubNav = ctx?.setMobileSubNav;
|
|
32534
32790
|
const enabled = !useBreakpoint().mdAndUp;
|
|
32535
32791
|
const { top, items, footer } = content2;
|
|
32536
|
-
(0,
|
|
32792
|
+
(0, import_react170.useLayoutEffect)(() => {
|
|
32537
32793
|
if (!setMobileSubNav || !enabled) return;
|
|
32538
32794
|
setMobileSubNav({ top, items, footer });
|
|
32539
32795
|
}, [setMobileSubNav, enabled, top, items, footer]);
|
|
32540
|
-
(0,
|
|
32796
|
+
(0, import_react170.useLayoutEffect)(() => {
|
|
32541
32797
|
if (!setMobileSubNav || !enabled) return;
|
|
32542
32798
|
return () => setMobileSubNav(null);
|
|
32543
32799
|
}, [setMobileSubNav, enabled]);
|
|
@@ -32552,8 +32808,8 @@ function NavbarMobileMenu(props) {
|
|
|
32552
32808
|
items
|
|
32553
32809
|
} = props;
|
|
32554
32810
|
const tid = useTestIds(props, "navbar");
|
|
32555
|
-
const [isOpen2, setIsOpen] = (0,
|
|
32556
|
-
const [level, setLevel] = (0,
|
|
32811
|
+
const [isOpen2, setIsOpen] = (0, import_react171.useState)(false);
|
|
32812
|
+
const [level, setLevel] = (0, import_react171.useState)("sub");
|
|
32557
32813
|
const {
|
|
32558
32814
|
pathname,
|
|
32559
32815
|
search
|
|
@@ -32563,7 +32819,7 @@ function NavbarMobileMenu(props) {
|
|
|
32563
32819
|
isDisabled: !isOpen2
|
|
32564
32820
|
});
|
|
32565
32821
|
const close = () => setIsOpen(false);
|
|
32566
|
-
(0,
|
|
32822
|
+
(0, import_react171.useEffect)(() => {
|
|
32567
32823
|
close();
|
|
32568
32824
|
}, [pathname, search]);
|
|
32569
32825
|
return /* @__PURE__ */ (0, import_jsx_runtime252.jsxs)(import_jsx_runtime252.Fragment, { children: [
|
|
@@ -32712,12 +32968,12 @@ function NavbarMobileDrawer({
|
|
|
32712
32968
|
}
|
|
32713
32969
|
|
|
32714
32970
|
// src/hooks/useContentOverflow.ts
|
|
32715
|
-
var
|
|
32971
|
+
var import_react172 = require("react");
|
|
32716
32972
|
function useContentOverflow(enabled = true) {
|
|
32717
|
-
const containerRef = (0,
|
|
32718
|
-
const contentRef = (0,
|
|
32719
|
-
const [overflows, setOverflows] = (0,
|
|
32720
|
-
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)(() => {
|
|
32721
32977
|
const container = containerRef.current;
|
|
32722
32978
|
const content2 = contentRef.current;
|
|
32723
32979
|
if (!enabled || !container || !content2) {
|
|
@@ -32726,7 +32982,7 @@ function useContentOverflow(enabled = true) {
|
|
|
32726
32982
|
}
|
|
32727
32983
|
setOverflows(content2.offsetWidth > container.clientWidth);
|
|
32728
32984
|
}, [enabled]);
|
|
32729
|
-
(0,
|
|
32985
|
+
(0, import_react172.useLayoutEffect)(() => {
|
|
32730
32986
|
checkContentOverflow();
|
|
32731
32987
|
window.addEventListener("resize", checkContentOverflow);
|
|
32732
32988
|
return () => window.removeEventListener("resize", checkContentOverflow);
|
|
@@ -32813,10 +33069,10 @@ function NavbarUserMenu({
|
|
|
32813
33069
|
}
|
|
32814
33070
|
|
|
32815
33071
|
// src/components/Snackbar/useSnackbar.tsx
|
|
32816
|
-
var
|
|
33072
|
+
var import_react173 = require("react");
|
|
32817
33073
|
function useSnackbar() {
|
|
32818
33074
|
const { setNotices, setOffset } = useSnackbarContext();
|
|
32819
|
-
const onClose = (0,
|
|
33075
|
+
const onClose = (0, import_react173.useCallback)(
|
|
32820
33076
|
(noticeId) => {
|
|
32821
33077
|
setNotices((prev) => {
|
|
32822
33078
|
let returnValue = prev;
|
|
@@ -32833,7 +33089,7 @@ function useSnackbar() {
|
|
|
32833
33089
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
32834
33090
|
[]
|
|
32835
33091
|
);
|
|
32836
|
-
const triggerNotice = (0,
|
|
33092
|
+
const triggerNotice = (0, import_react173.useCallback)(
|
|
32837
33093
|
(props) => {
|
|
32838
33094
|
const noticeId = props.id ?? `beamSnackbar:${snackbarId++}`;
|
|
32839
33095
|
let maybeTimeout;
|
|
@@ -32862,8 +33118,8 @@ function useSnackbar() {
|
|
|
32862
33118
|
},
|
|
32863
33119
|
[onClose, setNotices]
|
|
32864
33120
|
);
|
|
32865
|
-
const closeNotice = (0,
|
|
32866
|
-
const useSnackbarOffset = ({ bottom }) => (0,
|
|
33121
|
+
const closeNotice = (0, import_react173.useCallback)((id) => onClose(id), [onClose]);
|
|
33122
|
+
const useSnackbarOffset = ({ bottom }) => (0, import_react173.useEffect)(() => {
|
|
32867
33123
|
setOffset({ bottom });
|
|
32868
33124
|
return () => setOffset({});
|
|
32869
33125
|
}, [bottom]);
|
|
@@ -32912,7 +33168,7 @@ function simpleDataRows(data = []) {
|
|
|
32912
33168
|
|
|
32913
33169
|
// src/components/Tabs.tsx
|
|
32914
33170
|
var import_change_case9 = require("change-case");
|
|
32915
|
-
var
|
|
33171
|
+
var import_react174 = require("react");
|
|
32916
33172
|
var import_react_aria75 = require("react-aria");
|
|
32917
33173
|
var import_react_router = require("react-router");
|
|
32918
33174
|
var import_react_router_dom8 = require("react-router-dom");
|
|
@@ -32992,9 +33248,9 @@ function Tabs(props) {
|
|
|
32992
33248
|
focusProps
|
|
32993
33249
|
} = (0, import_react_aria75.useFocusRing)();
|
|
32994
33250
|
const tid = useTestIds(others, "tabs");
|
|
32995
|
-
const [active, setActive] = (0,
|
|
32996
|
-
const ref = (0,
|
|
32997
|
-
(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]);
|
|
32998
33254
|
function onKeyUp(e) {
|
|
32999
33255
|
if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
|
|
33000
33256
|
const nextTabValue = getNextTabValue(active, e.key, tabs);
|
|
@@ -33069,7 +33325,7 @@ function TabImpl(props) {
|
|
|
33069
33325
|
activeHoverStyles,
|
|
33070
33326
|
aiStyles,
|
|
33071
33327
|
activeAiStyles
|
|
33072
|
-
} = (0,
|
|
33328
|
+
} = (0, import_react174.useMemo)(() => getTabStyles(), []);
|
|
33073
33329
|
const uniqueValue = uniqueTabValue(tab);
|
|
33074
33330
|
const tid = useTestIds(others);
|
|
33075
33331
|
const tabProps = {
|
|
@@ -33229,10 +33485,10 @@ function hideTabs(props) {
|
|
|
33229
33485
|
}
|
|
33230
33486
|
|
|
33231
33487
|
// src/components/Toast/useToast.tsx
|
|
33232
|
-
var
|
|
33488
|
+
var import_react175 = require("react");
|
|
33233
33489
|
function useToast() {
|
|
33234
33490
|
const { setNotice, clear } = useToastContext();
|
|
33235
|
-
const showToast = (0,
|
|
33491
|
+
const showToast = (0, import_react175.useCallback)((props) => setNotice(props), [setNotice]);
|
|
33236
33492
|
return { showToast, clear };
|
|
33237
33493
|
}
|
|
33238
33494
|
|
|
@@ -33504,7 +33760,7 @@ var import_react_stately19 = require("react-stately");
|
|
|
33504
33760
|
var import_runtime170 = require("@homebound/truss/runtime");
|
|
33505
33761
|
|
|
33506
33762
|
// src/forms/FormSection/FormSectionChild.tsx
|
|
33507
|
-
var
|
|
33763
|
+
var import_react176 = require("react");
|
|
33508
33764
|
var import_react_aria76 = require("react-aria");
|
|
33509
33765
|
var import_runtime169 = require("@homebound/truss/runtime");
|
|
33510
33766
|
var import_jsx_runtime260 = require("react/jsx-runtime");
|
|
@@ -33521,7 +33777,7 @@ function FormSectionChild(props) {
|
|
|
33521
33777
|
group
|
|
33522
33778
|
} = props;
|
|
33523
33779
|
const tid = useTestIds(props, "formSectionChild");
|
|
33524
|
-
const itemRef = (0,
|
|
33780
|
+
const itemRef = (0, import_react176.useRef)(null);
|
|
33525
33781
|
const isDraggable = !!orderField;
|
|
33526
33782
|
const {
|
|
33527
33783
|
dragItemProps,
|
|
@@ -33563,7 +33819,7 @@ function FormSectionChildRadio(props) {
|
|
|
33563
33819
|
value,
|
|
33564
33820
|
label
|
|
33565
33821
|
} = props;
|
|
33566
|
-
const ref = (0,
|
|
33822
|
+
const ref = (0, import_react176.useRef)(null);
|
|
33567
33823
|
const {
|
|
33568
33824
|
inputProps,
|
|
33569
33825
|
isDisabled,
|
|
@@ -33589,7 +33845,7 @@ function FormSectionChildCheckbox(props) {
|
|
|
33589
33845
|
value,
|
|
33590
33846
|
label
|
|
33591
33847
|
} = props;
|
|
33592
|
-
const ref = (0,
|
|
33848
|
+
const ref = (0, import_react176.useRef)(null);
|
|
33593
33849
|
const {
|
|
33594
33850
|
inputProps,
|
|
33595
33851
|
isDisabled,
|
|
@@ -33782,12 +34038,12 @@ var railAndShellPx = centeredShellMaxPx.sm + jumpLinksRailWidthPx;
|
|
|
33782
34038
|
var jumpLinksRailReservation = `clamp(0px, 100% - ${railAndShellPx}px, ${jumpLinksRailWidthPx}px)`;
|
|
33783
34039
|
|
|
33784
34040
|
// src/layouts/FormSectionLayout/useActiveJumpLink.ts
|
|
33785
|
-
var
|
|
34041
|
+
var import_react177 = require("react");
|
|
33786
34042
|
var activationLeadPx = 120;
|
|
33787
34043
|
function useActiveJumpLink(sectionIds) {
|
|
33788
34044
|
const idsKey = sectionIds.join("\0");
|
|
33789
|
-
const [activeId, setActiveId] = (0,
|
|
33790
|
-
(0,
|
|
34045
|
+
const [activeId, setActiveId] = (0, import_react177.useState)(sectionIds[0]);
|
|
34046
|
+
(0, import_react177.useLayoutEffect)(() => {
|
|
33791
34047
|
const ids = idsKey.length === 0 ? [] : idsKey.split("\0");
|
|
33792
34048
|
if (ids.length === 0) return;
|
|
33793
34049
|
const update = () => {
|
|
@@ -33888,7 +34144,7 @@ function FormSectionLayout(props) {
|
|
|
33888
34144
|
}
|
|
33889
34145
|
|
|
33890
34146
|
// src/layouts/PageBanner/usePageBanner.tsx
|
|
33891
|
-
var
|
|
34147
|
+
var import_react178 = require("react");
|
|
33892
34148
|
|
|
33893
34149
|
// src/layouts/PageBanner/pageBannerStore.ts
|
|
33894
34150
|
var current;
|
|
@@ -33925,13 +34181,13 @@ function clearPageBanner(id) {
|
|
|
33925
34181
|
|
|
33926
34182
|
// src/layouts/PageBanner/usePageBanner.tsx
|
|
33927
34183
|
function usePageBanner(banner) {
|
|
33928
|
-
const id = (0,
|
|
33929
|
-
(0,
|
|
34184
|
+
const id = (0, import_react178.useId)();
|
|
34185
|
+
(0, import_react178.useLayoutEffect)(() => {
|
|
33930
34186
|
if (!banner) return;
|
|
33931
34187
|
setPageBanner(id, banner);
|
|
33932
34188
|
return () => clearPageBanner(id);
|
|
33933
34189
|
}, [id, banner]);
|
|
33934
|
-
(0,
|
|
34190
|
+
(0, import_react178.useEffect)(() => {
|
|
33935
34191
|
if (!banner || hasPageBannerSubscriber() || process.env.NODE_ENV === "production") return;
|
|
33936
34192
|
console.warn("[usePageBanner] No page layout above this component; the banner will not render.");
|
|
33937
34193
|
}, [banner]);
|
|
@@ -33945,87 +34201,6 @@ function PageBanner(props) {
|
|
|
33945
34201
|
var import_react182 = require("react");
|
|
33946
34202
|
var import_runtime173 = require("@homebound/truss/runtime");
|
|
33947
34203
|
|
|
33948
|
-
// src/layouts/useAutoHideOnScroll.ts
|
|
33949
|
-
var import_react178 = require("react");
|
|
33950
|
-
var THRESHOLD = 80;
|
|
33951
|
-
function getInitialAutoHideState() {
|
|
33952
|
-
if (typeof window === "undefined" || window.scrollY <= 0) {
|
|
33953
|
-
return "resting";
|
|
33954
|
-
}
|
|
33955
|
-
return "hidden";
|
|
33956
|
-
}
|
|
33957
|
-
function useAutoHideOnScroll(spacerRef, enabled, getTopOffset) {
|
|
33958
|
-
const initial = getInitialAutoHideState();
|
|
33959
|
-
const [state, setState] = (0, import_react178.useState)(initial);
|
|
33960
|
-
const stateRef = (0, import_react178.useRef)(initial);
|
|
33961
|
-
const getTopOffsetRef = (0, import_react178.useRef)(getTopOffset);
|
|
33962
|
-
getTopOffsetRef.current = getTopOffset;
|
|
33963
|
-
const lastScrollY = (0, import_react178.useRef)(Number.POSITIVE_INFINITY);
|
|
33964
|
-
const lastScrollHeight = (0, import_react178.useRef)(0);
|
|
33965
|
-
(0, import_react178.useLayoutEffect)(() => {
|
|
33966
|
-
if (!enabled) {
|
|
33967
|
-
stateRef.current = "resting";
|
|
33968
|
-
lastScrollY.current = Number.POSITIVE_INFINITY;
|
|
33969
|
-
lastScrollHeight.current = 0;
|
|
33970
|
-
setState("resting");
|
|
33971
|
-
return;
|
|
33972
|
-
}
|
|
33973
|
-
const commit = (nextState) => {
|
|
33974
|
-
if (nextState !== stateRef.current) {
|
|
33975
|
-
stateRef.current = nextState;
|
|
33976
|
-
setState(nextState);
|
|
33977
|
-
}
|
|
33978
|
-
};
|
|
33979
|
-
const autoHideStateOnLayoutChange = (rect, topOffset) => {
|
|
33980
|
-
const nextAtTop = rect.top >= topOffset;
|
|
33981
|
-
let next = stateRef.current;
|
|
33982
|
-
if (nextAtTop) {
|
|
33983
|
-
next = "resting";
|
|
33984
|
-
} else if (rect.bottom < -THRESHOLD && next !== "revealed") {
|
|
33985
|
-
next = "hidden";
|
|
33986
|
-
}
|
|
33987
|
-
return next;
|
|
33988
|
-
};
|
|
33989
|
-
const updateAutoHideState = () => {
|
|
33990
|
-
const el = spacerRef.current;
|
|
33991
|
-
if (!el) return;
|
|
33992
|
-
const doc = document.documentElement;
|
|
33993
|
-
const currentScrollHeight = doc.scrollHeight;
|
|
33994
|
-
const scrollHeightChanged = lastScrollHeight.current !== 0 && currentScrollHeight !== lastScrollHeight.current;
|
|
33995
|
-
lastScrollHeight.current = currentScrollHeight;
|
|
33996
|
-
if (window.scrollY <= 0) {
|
|
33997
|
-
lastScrollY.current = 0;
|
|
33998
|
-
commit("resting");
|
|
33999
|
-
return;
|
|
34000
|
-
}
|
|
34001
|
-
const currentY = window.scrollY;
|
|
34002
|
-
const rect = el.getBoundingClientRect();
|
|
34003
|
-
const topOffset = getTopOffsetRef.current?.() ?? 0;
|
|
34004
|
-
if (scrollHeightChanged) {
|
|
34005
|
-
lastScrollY.current = currentY;
|
|
34006
|
-
commit(autoHideStateOnLayoutChange(rect, topOffset));
|
|
34007
|
-
return;
|
|
34008
|
-
}
|
|
34009
|
-
const dy = currentY - lastScrollY.current;
|
|
34010
|
-
lastScrollY.current = currentY;
|
|
34011
|
-
const atBottom = currentY >= doc.scrollHeight - doc.clientHeight;
|
|
34012
|
-
const nextAtTop = rect.top >= topOffset;
|
|
34013
|
-
let next = stateRef.current;
|
|
34014
|
-
if (nextAtTop) {
|
|
34015
|
-
next = "resting";
|
|
34016
|
-
} else if (rect.bottom < -THRESHOLD) {
|
|
34017
|
-
if (dy < 0 && !atBottom) next = "revealed";
|
|
34018
|
-
else if (dy > 0) next = "hidden";
|
|
34019
|
-
}
|
|
34020
|
-
commit(next);
|
|
34021
|
-
};
|
|
34022
|
-
updateAutoHideState();
|
|
34023
|
-
window.addEventListener("scroll", updateAutoHideState, { passive: true });
|
|
34024
|
-
return () => window.removeEventListener("scroll", updateAutoHideState);
|
|
34025
|
-
}, [enabled, spacerRef]);
|
|
34026
|
-
return { state };
|
|
34027
|
-
}
|
|
34028
|
-
|
|
34029
34204
|
// src/layouts/useMeasuredHeight.ts
|
|
34030
34205
|
var import_utils53 = require("@react-aria/utils");
|
|
34031
34206
|
var import_react179 = require("react");
|