@sanity/ui 4.0.0-next.4 → 4.0.0-next.5
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/README.md +4 -0
- package/dist/_system-CTe2lb5l.d.ts +40 -0
- package/dist/_system-CTe2lb5l.d.ts.map +1 -0
- package/dist/arrow-BG0EMNiC.js +159 -0
- package/dist/arrow-BG0EMNiC.js.map +1 -0
- package/dist/autocomplete.d.ts +140 -0
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete.js +468 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/breadcrumbs.d.ts +18 -0
- package/dist/breadcrumbs.d.ts.map +1 -0
- package/dist/breadcrumbs.js +112 -0
- package/dist/breadcrumbs.js.map +1 -0
- package/dist/button-BzoZs3Sl.d.ts +76 -0
- package/dist/button-BzoZs3Sl.d.ts.map +1 -0
- package/dist/button-DZkAQOL2.js +174 -0
- package/dist/button-DZkAQOL2.js.map +1 -0
- package/dist/card-C0a0wQTc.d.ts +7 -0
- package/dist/card-C0a0wQTc.d.ts.map +1 -0
- package/dist/code.d.ts +20 -0
- package/dist/code.d.ts.map +1 -0
- package/dist/code.js +85 -0
- package/dist/code.js.map +1 -0
- package/dist/codeFontStyle-DYUujk7K.js +11 -0
- package/dist/codeFontStyle-DYUujk7K.js.map +1 -0
- package/dist/component-DVlwaWB-.d.ts +25 -0
- package/dist/component-DVlwaWB-.d.ts.map +1 -0
- package/dist/element-BYgCE_iK.js +51 -0
- package/dist/element-BYgCE_iK.js.map +1 -0
- package/dist/{getScopedTheme-CqaSCfTH.js → factory-CvRcEQ36.js} +6 -753
- package/dist/factory-CvRcEQ36.js.map +1 -0
- package/dist/flex-BYRpBTOc.js +69 -0
- package/dist/flex-BYRpBTOc.js.map +1 -0
- package/dist/font-EtfxKPUz.d.ts +49 -0
- package/dist/font-EtfxKPUz.d.ts.map +1 -0
- package/dist/getElementRef-5HZQ-Owu.js +91 -0
- package/dist/getElementRef-5HZQ-Owu.js.map +1 -0
- package/dist/getScopedTheme-C-sZsyAz.js +267 -0
- package/dist/getScopedTheme-C-sZsyAz.js.map +1 -0
- package/dist/getTheme_v2-y09KqtEb.js +487 -0
- package/dist/getTheme_v2-y09KqtEb.js.map +1 -0
- package/dist/grid-D88j-N7f.js +108 -0
- package/dist/grid-D88j-N7f.js.map +1 -0
- package/dist/helpers-bwfx1e-Y.js +67 -0
- package/dist/helpers-bwfx1e-Y.js.map +1 -0
- package/dist/hotkeys-B08HIKNu.js +145 -0
- package/dist/hotkeys-B08HIKNu.js.map +1 -0
- package/dist/index.d.ts +112 -896
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +93 -4409
- package/dist/index.js.map +1 -1
- package/dist/layer-BQfdK7rt.d.ts +242 -0
- package/dist/layer-BQfdK7rt.d.ts.map +1 -0
- package/dist/layer-BdkSGATt.js +56 -0
- package/dist/layer-BdkSGATt.js.map +1 -0
- package/dist/menu.d.ts +146 -0
- package/dist/menu.d.ts.map +1 -0
- package/dist/menu.js +602 -0
- package/dist/menu.js.map +1 -0
- package/dist/popover-DmmmSNzL.d.ts +96 -0
- package/dist/popover-DmmmSNzL.d.ts.map +1 -0
- package/dist/popover-Iy6EZEmv.js +406 -0
- package/dist/popover-Iy6EZEmv.js.map +1 -0
- package/dist/popover.d.ts +2 -0
- package/dist/popover.js +3 -0
- package/dist/responsiveFont-hN1mZFjm.js +55 -0
- package/dist/responsiveFont-hN1mZFjm.js.map +1 -0
- package/dist/{rgba-LmTDhX0u.d.ts → rgba-BSYaEUW6.d.ts} +4 -87
- package/dist/rgba-BSYaEUW6.d.ts.map +1 -0
- package/dist/selectable-B0GUIL74.d.ts +7 -0
- package/dist/selectable-B0GUIL74.d.ts.map +1 -0
- package/dist/stack-C5WV-BRh.js +98 -0
- package/dist/stack-C5WV-BRh.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/textInput-IbiDH7Jc.js +315 -0
- package/dist/textInput-IbiDH7Jc.js.map +1 -0
- package/dist/theme.d.ts +3 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +3 -1
- package/dist/theme.js.map +1 -1
- package/dist/toast.d.ts +73 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +297 -0
- package/dist/toast.js.map +1 -0
- package/dist/tooltip.d.ts +88 -0
- package/dist/tooltip.d.ts.map +1 -0
- package/dist/tooltip.js +432 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/useClickOutsideEvent-lEVhDFCQ.js +36 -0
- package/dist/useClickOutsideEvent-lEVhDFCQ.js.map +1 -0
- package/dist/useElementSize-BJvbGHq8.js +51 -0
- package/dist/useElementSize-BJvbGHq8.js.map +1 -0
- package/dist/useLayer-9Pz-GG0r.js +704 -0
- package/dist/useLayer-9Pz-GG0r.js.map +1 -0
- package/package.json +15 -3
- package/dist/getScopedTheme-CqaSCfTH.js.map +0 -1
- package/dist/rgba-LmTDhX0u.d.ts.map +0 -1
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { o as EMPTY_ARRAY } from "./helpers-bwfx1e-Y.js";
|
|
2
|
+
import { c } from "react/compiler-runtime";
|
|
3
|
+
import { useDebugValue, useEffect } from "react";
|
|
4
|
+
import { useEffectEvent } from "use-effect-event";
|
|
5
|
+
/**
|
|
6
|
+
* @public
|
|
7
|
+
*/
|
|
8
|
+
function useClickOutsideEvent(listener, t0, boundaryElement) {
|
|
9
|
+
let $ = c(9), elementsArg = t0 === void 0 ? _temp : t0, t1;
|
|
10
|
+
$[0] !== boundaryElement || $[1] !== elementsArg || $[2] !== listener ? (t1 = (evt) => {
|
|
11
|
+
if (!listener) return;
|
|
12
|
+
let target = evt.target;
|
|
13
|
+
if (!(target instanceof Node)) return;
|
|
14
|
+
let resolvedBoundaryElement = boundaryElement?.();
|
|
15
|
+
if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) return;
|
|
16
|
+
let elements = elementsArg().flat();
|
|
17
|
+
for (let el of elements) if (el && (target === el || el.contains(target))) return;
|
|
18
|
+
listener(evt);
|
|
19
|
+
}, $[0] = boundaryElement, $[1] = elementsArg, $[2] = listener, $[3] = t1) : t1 = $[3];
|
|
20
|
+
let onEvent = useEffectEvent(t1), hasListener = !!listener, t2;
|
|
21
|
+
$[4] !== hasListener || $[5] !== onEvent ? (t2 = () => {
|
|
22
|
+
if (!hasListener) return;
|
|
23
|
+
let handleEvent = (evt_0) => onEvent(evt_0);
|
|
24
|
+
return document.addEventListener("mousedown", handleEvent), () => {
|
|
25
|
+
document.removeEventListener("mousedown", handleEvent);
|
|
26
|
+
};
|
|
27
|
+
}, $[4] = hasListener, $[5] = onEvent, $[6] = t2) : t2 = $[6];
|
|
28
|
+
let t3;
|
|
29
|
+
$[7] === hasListener ? t3 = $[8] : (t3 = [hasListener], $[7] = hasListener, $[8] = t3), useEffect(t2, t3), useDebugValue(listener ? "MouseDown On" : "MouseDown Off");
|
|
30
|
+
}
|
|
31
|
+
function _temp() {
|
|
32
|
+
return EMPTY_ARRAY;
|
|
33
|
+
}
|
|
34
|
+
export { useClickOutsideEvent as t };
|
|
35
|
+
|
|
36
|
+
//# sourceMappingURL=useClickOutsideEvent-lEVhDFCQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useClickOutsideEvent-lEVhDFCQ.js","names":["useDebugValue","useEffect","useEffectEvent","EMPTY_ARRAY","ClickOutsideEventListener","event","MouseEvent","ClickOutsideEventElements","HTMLElement","useClickOutsideEvent","listener","t0","boundaryElement","$","_c","elementsArg","undefined","_temp","t1","evt","target","Node","resolvedBoundaryElement","contains","elements","flat","el","onEvent","hasListener","Boolean","t2","handleEvent","evt_0","document","addEventListener","removeEventListener","t3"],"sources":["../src/core/hooks/useClickOutsideEvent.ts"],"sourcesContent":["import {useDebugValue, useEffect} from 'react'\n// TODO: switch to `useEffectEvent` from `react` once\n// https://github.com/facebook/react/issues/34818 is fixed in the lowest React\n// version we support: on React 19.2 the native hook never sees values past\n// the first render when the calling component is wrapped in `forwardRef` or\n// `memo`. This public hook runs in the fiber of whatever component calls it\n// (consumers may call it from `forwardRef` or `memo` components).\nimport {useEffectEvent} from 'use-effect-event'\n\nimport {EMPTY_ARRAY} from '../constants'\n\n/**\n * @public\n */\nexport type ClickOutsideEventListener = (event: MouseEvent) => void\n\n/**\n * @public\n */\nexport type ClickOutsideEventElements = (HTMLElement | null | (HTMLElement | null)[])[]\n\n/**\n * @public\n */\nexport function useClickOutsideEvent(\n listener: ClickOutsideEventListener | false | undefined,\n elementsArg: () => ClickOutsideEventElements = () => EMPTY_ARRAY,\n boundaryElement?: () => HTMLElement | null,\n): void {\n /**\n * The `useEffectEvent` hook allow us to always see the latest value of `listener`, `elementsArg` and `boundaryElement` without needing to\n * juggle `useState`, `useRef` and `useState` to make sure the `mousedown` event listener isn't constantly being added and removed.\n */\n const onEvent = useEffectEvent((evt: MouseEvent) => {\n if (!listener) {\n return\n }\n\n const target = evt.target\n\n if (!(target instanceof Node)) {\n return\n }\n\n const resolvedBoundaryElement = boundaryElement?.()\n\n if (resolvedBoundaryElement && !resolvedBoundaryElement.contains(target)) {\n return\n }\n\n const elements = elementsArg().flat()\n\n for (const el of elements) {\n if (!el) continue\n\n if (target === el || el.contains(target)) {\n return\n }\n }\n\n listener(evt)\n })\n\n const hasListener = Boolean(listener)\n\n useEffect(() => {\n if (!hasListener) return undefined\n\n const handleEvent = (evt: MouseEvent) => onEvent(evt)\n\n document.addEventListener('mousedown', handleEvent)\n\n return () => {\n document.removeEventListener('mousedown', handleEvent)\n }\n }, [hasListener])\n\n useDebugValue(listener ? 'MouseDown On' : 'MouseDown Off')\n}\n"],"mappings":";;;;;;;AAwBA,SAAOS,qBAAAC,UAAAC,IAAAC,iBAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GAELC,cAAAJ,OAAAK,KAAAA,IAAAC,QAAAN,IAAgEO;CAAA,AAAAL,EAAA,OAAAD,mBAAAC,EAAA,OAAAE,eAAAF,EAAA,OAAAH,YAOjCQ,MAAAC,QAAA;EAC7B,IAAI,CAACT,UAAQ;EAIb,IAAAU,SAAeD,IAAGC;EAElB,IAAI,EAAEA,kBAAkBC,OAAK;EAI7B,IAAAC,0BAAgCV,kBAAkB;EAElD,IAAIU,2BAAA,CAA4BA,wBAAuBC,SAAUH,MAAM,GAAC;EAIxE,IAAAI,WAAiBT,YAAY,CAAC,CAAAU,KAAM;EAEpC,KAAK,IAAAC,MAAYF,UACVE,WAEDN,WAAWM,MAAMA,GAAEH,SAAUH,MAAM,IAAC;EAK1CV,SAASS,GAAG;CAAC,GACdN,EAAA,KAAAD,iBAAAC,EAAA,KAAAE,aAAAF,EAAA,KAAAH,UAAAG,EAAA,KAAAK,MAAAA,KAAAL,EAAA;CA5BD,IAAAc,UAAgBzB,eAAegB,EA4B9B,GAEDU,cAAoBC,EAAQnB,UAASoB;CAAA,AAAAjB,EAAA,OAAAe,eAAAf,EAAA,OAAAc,WAE3BG,WAAA;EACR,IAAI,CAACF,aAAW;EAEhB,IAAAG,eAAoBC,UAAqBL,QAAQR,KAAG;EAED,OAAnDc,SAAQC,iBAAkB,aAAaH,WAAW,SAE3C;GACLE,SAAQE,oBAAqB,aAAaJ,WAAW;EAAC;CACvD,GACFlB,EAAA,KAAAe,aAAAf,EAAA,KAAAc,SAAAd,EAAA,KAAAiB,MAAAA,KAAAjB,EAAA;CAAA,IAAAuB;CAEDpC,AAFCa,EAAA,OAAAe,cAAeQ,KAAAvB,EAAA,MAAbuB,KAAA,CAACR,WAAW,GAACf,EAAA,KAAAe,aAAAf,EAAA,KAAAuB,KAVhBnC,UAAU6B,IAUPM,EAAa,GAEhBpC,cAAcU,WAAA,iBAAA,eAA2C;AAAC;AArDrD,SAAAO,QAAA;CAAA,OAEgDd;AAAW"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { c } from "react/compiler-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
/**
|
|
4
|
+
* @internal
|
|
5
|
+
*/
|
|
6
|
+
const _elementSizeObserver = _createElementSizeObserver();
|
|
7
|
+
function _createElementRectValueListener() {
|
|
8
|
+
return { subscribe(element, subscriber) {
|
|
9
|
+
let resizeObserver = new ResizeObserver(([entry]) => {
|
|
10
|
+
subscriber({
|
|
11
|
+
_contentRect: entry.contentRect,
|
|
12
|
+
border: {
|
|
13
|
+
width: entry.borderBoxSize[0].inlineSize,
|
|
14
|
+
height: entry.borderBoxSize[0].blockSize
|
|
15
|
+
},
|
|
16
|
+
content: {
|
|
17
|
+
width: entry.contentRect.width,
|
|
18
|
+
height: entry.contentRect.height
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
return resizeObserver.observe(element), () => {
|
|
23
|
+
resizeObserver.unobserve(element), resizeObserver.disconnect();
|
|
24
|
+
};
|
|
25
|
+
} };
|
|
26
|
+
}
|
|
27
|
+
function _createElementSizeObserver() {
|
|
28
|
+
let disposeCache = /* @__PURE__ */ new WeakMap(), subscribersCache = /* @__PURE__ */ new WeakMap();
|
|
29
|
+
return { subscribe(element, subscriber) {
|
|
30
|
+
let subscribers = subscribersCache.get(element) || [], dispose = disposeCache.get(element);
|
|
31
|
+
return subscribersCache.has(element) || (subscribersCache.set(element, subscribers), dispose = _createElementRectValueListener().subscribe(element, (elementRect) => {
|
|
32
|
+
for (let sub of subscribers) sub(elementRect);
|
|
33
|
+
})), subscribers.push(subscriber), () => {
|
|
34
|
+
let idx = subscribers.indexOf(subscriber);
|
|
35
|
+
idx > -1 && subscribers.splice(idx, 1), subscribers.length === 0 && dispose && dispose();
|
|
36
|
+
};
|
|
37
|
+
} };
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Subscribe to the size of a DOM element.
|
|
41
|
+
* @beta
|
|
42
|
+
*/
|
|
43
|
+
function useElementSize(element) {
|
|
44
|
+
let $ = c(3), [size, setSize] = useState(null), t0, t1;
|
|
45
|
+
return $[0] === element ? (t0 = $[1], t1 = $[2]) : (t0 = () => {
|
|
46
|
+
if (element) return _elementSizeObserver.subscribe(element, setSize);
|
|
47
|
+
}, t1 = [element], $[0] = element, $[1] = t0, $[2] = t1), useEffect(t0, t1), size;
|
|
48
|
+
}
|
|
49
|
+
export { _elementSizeObserver as n, useElementSize as t };
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=useElementSize-BJvbGHq8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useElementSize-BJvbGHq8.js","names":["ElementRectValue","width","height","ElementSize","content","border","_contentRect","DOMRectReadOnly","_ElementSizeSubscriber","elementRect","_ElementSizeObserver","subscribe","element","HTMLElement","subscriber","_ElementSizeListener","_elementSizeObserver","_createElementSizeObserver","_createElementRectValueListener","resizeObserver","ResizeObserver","entry","contentRect","borderBoxSize","inlineSize","blockSize","observe","unobserve","disconnect","disposeCache","WeakMap","subscribersCache","subscribers","get","dispose","has","set","listener","sub","push","idx","indexOf","splice","length","useEffect","useState","_elementSizeObserver","ElementSize","useElementSize","element","$","_c","size","setSize","t0","t1","subscribe"],"sources":["../src/core/observers/elementSizeObserver.ts","../src/core/hooks/useElementSize.ts"],"sourcesContent":["/**\n * @beta\n */\nexport interface ElementRectValue {\n width: number\n height: number\n}\n\n/**\n * @beta\n */\nexport interface ElementSize {\n content: ElementRectValue\n border: ElementRectValue\n\n /** @deprecated INTERNAL ONLY */\n _contentRect: DOMRectReadOnly\n}\n\n/**\n * @internal\n */\nexport type _ElementSizeSubscriber = (elementRect: ElementSize) => void\n\n/**\n * @internal\n */\nexport interface _ElementSizeObserver {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n/**\n * @internal\n */\nexport interface _ElementSizeListener {\n subscribe: (element: HTMLElement, subscriber: _ElementSizeSubscriber) => () => void\n}\n\n// Initialize element size observer\n// NOTE: this should NOT have size effects\n/**\n * @internal\n */\nexport const _elementSizeObserver = _createElementSizeObserver()\n\nfunction _createElementRectValueListener(): _ElementSizeListener {\n return {\n subscribe(element, subscriber) {\n const resizeObserver = new ResizeObserver(([entry]) => {\n subscriber({\n // oxlint-disable-next-line no-deprecated\n _contentRect: entry.contentRect,\n border: {\n width: entry.borderBoxSize[0].inlineSize,\n height: entry.borderBoxSize[0].blockSize,\n },\n content: {\n width: entry.contentRect.width,\n height: entry.contentRect.height,\n },\n })\n })\n\n resizeObserver.observe(element)\n\n return () => {\n resizeObserver.unobserve(element)\n resizeObserver.disconnect()\n }\n },\n }\n}\n\nfunction _createElementSizeObserver(): _ElementSizeObserver {\n const disposeCache = new WeakMap<HTMLElement, () => void>()\n const subscribersCache = new WeakMap<HTMLElement, _ElementSizeSubscriber[]>()\n\n return {\n subscribe(element, subscriber) {\n const subscribers = subscribersCache.get(element) || []\n\n let dispose = disposeCache.get(element)\n\n if (!subscribersCache.has(element)) {\n subscribersCache.set(element, subscribers)\n\n const listener = _createElementRectValueListener()\n\n // listen\n dispose = listener.subscribe(element, (elementRect) => {\n for (const sub of subscribers) {\n sub(elementRect)\n }\n })\n }\n\n subscribers.push(subscriber)\n\n return () => {\n // dispose\n\n const idx = subscribers.indexOf(subscriber)\n\n if (idx > -1) {\n subscribers.splice(idx, 1)\n }\n\n if (subscribers.length === 0) {\n // unlisten\n if (dispose) dispose()\n }\n }\n },\n }\n}\n","import {useEffect, useState} from 'react'\n\nimport {_elementSizeObserver, ElementSize} from '../observers/elementSizeObserver'\n\n/**\n * Subscribe to the size of a DOM element.\n * @beta\n */\nexport function useElementSize(element: HTMLElement | null): ElementSize | null {\n const [size, setSize] = useState<ElementSize | null>(null)\n\n useEffect(() => {\n if (!element) return undefined\n\n return _elementSizeObserver.subscribe(element, setSize)\n }, [element])\n\n return size\n}\n"],"mappings":";;;;;AA2CA,MAAagB,uBAAuBC,2BAA2B;AAE/D,SAASC,kCAAwD;CAC/D,OAAO,EACLP,UAAUC,SAASE,YAAY;EAC7B,IAAMK,iBAAiB,IAAIC,gBAAgB,CAACC,WAAW;GACrDP,WAAW;IAETR,cAAce,MAAMC;IACpBjB,QAAQ;KACNJ,OAAOoB,MAAME,cAAc,EAAE,CAACC;KAC9BtB,QAAQmB,MAAME,cAAc,EAAE,CAACE;IACjC;IACArB,SAAS;KACPH,OAAOoB,MAAMC,YAAYrB;KACzBC,QAAQmB,MAAMC,YAAYpB;IAC5B;GACF,CAAC;EACH,CAAC;EAID,OAFAiB,eAAeO,QAAQd,OAAO,SAEjB;GAEXO,AADAA,eAAeQ,UAAUf,OAAO,GAChCO,eAAeS,WAAW;EAC5B;CACF,EACF;AACF;AAEA,SAASX,6BAAmD;CAC1D,IAAMY,+BAAe,IAAIC,QAAiC,GACpDC,mCAAmB,IAAID,QAA+C;CAE5E,OAAO,EACLnB,UAAUC,SAASE,YAAY;EAC7B,IAAMkB,cAAcD,iBAAiBE,IAAIrB,OAAO,KAAK,CAAA,GAEjDsB,UAAUL,aAAaI,IAAIrB,OAAO;EAiBtC,OAfKmB,iBAAiBI,IAAIvB,OAAO,MAC/BmB,iBAAiBK,IAAIxB,SAASoB,WAAW,GAKzCE,UAHiBhB,gCAGPmB,CAAQ,CAAC1B,UAAUC,UAAUH,gBAAgB;GACrD,KAAK,IAAM6B,OAAON,aAChBM,IAAI7B,WAAW;EAEnB,CAAC,IAGHuB,YAAYO,KAAKzB,UAAU,SAEd;GAGX,IAAM0B,MAAMR,YAAYS,QAAQ3B,UAAU;GAM1C,AAJI0B,MAAM,MACRR,YAAYU,OAAOF,KAAK,CAAC,GAGvBR,YAAYW,WAAW,KAErBT,WAASA,QAAQ;EAEzB;CACF,EACF;AACF;;;;;AC1GA,SAAOc,eAAAC,SAAA;CAAA,IAAAC,IAAAC,EAAA,CAAA,GACL,CAAAC,MAAAC,WAAwBR,SAA6B,IAAI,GAACS,IAAAC;CAM7C,OAN6CL,EAAA,OAAAD,WAM9CK,KAAAJ,EAAA,IAAAK,KAAAL,EAAA,OAJFI,WAAA;EACHL,aAAyB,OAEvBH,qBAAoBU,UAAWP,SAASI,OAAO;CAAC,GACtDE,KAAA,CAACN,OAAO,GAACC,EAAA,KAAAD,SAAAC,EAAA,KAAAI,IAAAJ,EAAA,KAAAK,KAJZX,UAAUU,IAIPC,EAAS,GAELH;AAAI"}
|