@prosopo/locale 3.1.20 → 3.1.21
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/CHANGELOG.md +6 -0
- package/coverage/base.css +224 -0
- package/coverage/block-navigation.js +87 -0
- package/coverage/clover.xml +260 -0
- package/coverage/coverage-final.json +11 -0
- package/coverage/favicon.png +0 -0
- package/coverage/i18SharedOptions.ts.html +151 -0
- package/coverage/i18nBackend.ts.html +244 -0
- package/coverage/i18nFrontend.ts.html +328 -0
- package/coverage/i18nMiddleware.ts.html +160 -0
- package/coverage/index.html +251 -0
- package/coverage/index.ts.html +151 -0
- package/coverage/loadI18next.ts.html +232 -0
- package/coverage/prettify.css +1 -0
- package/coverage/prettify.js +2 -0
- package/coverage/sort-arrow-sprite.png +0 -0
- package/coverage/sorter.js +210 -0
- package/coverage/translationKey.ts.html +229 -0
- package/coverage/translations.ts.html +247 -0
- package/coverage/useTranslation.ts.html +181 -0
- package/coverage/util.ts.html +160 -0
- package/dist/cjs/i18nBackend.cjs +2 -1
- package/dist/i18SharedOptions.js +8 -10
- package/dist/i18SharedOptions.js.map +1 -0
- package/dist/i18nBackend.js +24 -26
- package/dist/i18nBackend.js.map +1 -0
- package/dist/i18nFrontend.js +43 -47
- package/dist/i18nFrontend.js.map +1 -0
- package/dist/i18nMiddleware.js +4 -5
- package/dist/i18nMiddleware.js.map +1 -0
- package/dist/index.js +7 -15
- package/dist/index.js.map +1 -0
- package/dist/loadI18next.js +29 -26
- package/dist/loadI18next.js.map +1 -0
- package/dist/locales/ar/translation.json +441 -441
- package/dist/locales/az/translation.json +441 -441
- package/dist/locales/cs/translation.json +441 -441
- package/dist/locales/de/translation.json +441 -441
- package/dist/locales/el/translation.json +441 -441
- package/dist/locales/en/translation.json +441 -441
- package/dist/locales/es/translation.json +441 -441
- package/dist/locales/fi/translation.json +441 -441
- package/dist/locales/fr/translation.json +441 -441
- package/dist/locales/hi/translation.json +441 -441
- package/dist/locales/hu/translation.json +441 -441
- package/dist/locales/id/translation.json +441 -441
- package/dist/locales/it/translation.json +441 -441
- package/dist/locales/ja/translation.json +441 -441
- package/dist/locales/jv/translation.json +441 -441
- package/dist/locales/ko/translation.json +441 -441
- package/dist/locales/ml/translation.json +441 -441
- package/dist/locales/ms/translation.json +441 -441
- package/dist/locales/nl/translation.json +441 -441
- package/dist/locales/no/translation.json +441 -441
- package/dist/locales/pl/translation.json +441 -441
- package/dist/locales/pt/translation.json +441 -441
- package/dist/locales/pt-BR/translation.json +441 -441
- package/dist/locales/ro/translation.json +441 -441
- package/dist/locales/ru/translation.json +441 -441
- package/dist/locales/sr/translation.json +441 -441
- package/dist/locales/sv/translation.json +441 -441
- package/dist/locales/th/translation.json +441 -441
- package/dist/locales/tr/translation.json +441 -441
- package/dist/locales/uk/translation.json +441 -441
- package/dist/locales/vi/translation.json +441 -441
- package/dist/locales/zh-CN/translation.json +441 -441
- package/dist/tests/locales.unit.test.js +49 -0
- package/dist/tests/locales.unit.test.js.map +1 -0
- package/dist/translationKey.js +15 -21
- package/dist/translationKey.js.map +1 -0
- package/dist/translations.js +35 -40
- package/dist/translations.js.map +1 -0
- package/dist/useTranslation.js +6 -7
- package/dist/useTranslation.js.map +1 -0
- package/dist/util.js +7 -8
- package/dist/util.js.map +1 -0
- package/package.json +7 -7
package/dist/i18nBackend.js
CHANGED
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import i18n from "i18next";
|
|
3
3
|
import FSBackend from "i18next-fs-backend/cjs";
|
|
4
|
-
import { LanguageDetector } from "i18next-http-middleware";
|
|
4
|
+
import { LanguageDetector as MiddlewareLanguageDetector } from "i18next-http-middleware";
|
|
5
5
|
import { i18nSharedOptions } from "./i18SharedOptions.js";
|
|
6
6
|
import { isServerSide } from "./util.js";
|
|
7
|
-
const loadPath = `${path.dirname(import.meta.url)}/locales/{{lng}}/{{ns}}.json`.replace(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
7
|
+
const loadPath = `${path.dirname(import.meta.url)}/locales/{{lng}}/{{ns}}.json`.replace("file://", "");
|
|
8
|
+
export function initializeI18n(i18nLoadedCallback) {
|
|
9
|
+
if (!i18n.isInitialized && isServerSide()) {
|
|
10
|
+
const lngDetector = new MiddlewareLanguageDetector(null, {
|
|
11
|
+
order: ["header", "query", "cookie"],
|
|
12
|
+
});
|
|
13
|
+
i18n
|
|
14
|
+
.use(FSBackend)
|
|
15
|
+
.use(lngDetector)
|
|
16
|
+
.init({
|
|
17
|
+
...i18nSharedOptions,
|
|
18
|
+
ns: ["translation"],
|
|
19
|
+
backend: {
|
|
20
|
+
loadPath,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
i18n.on("loaded", () => {
|
|
24
|
+
i18nLoadedCallback?.(i18n);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return i18n;
|
|
28
28
|
}
|
|
29
|
-
export
|
|
30
|
-
|
|
31
|
-
initializeI18n
|
|
32
|
-
};
|
|
29
|
+
export default initializeI18n;
|
|
30
|
+
//# sourceMappingURL=i18nBackend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18nBackend.js","sourceRoot":"","sources":["../src/i18nBackend.ts"],"names":[],"mappings":"AAcA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,SAAS,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,IAAI,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,QAAQ,GACb,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,OAAO,CACrE,SAAS,EACT,EAAE,CACF,CAAC;AAEH,MAAM,UAAU,cAAc,CAC7B,kBAAiD;IAEjD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,YAAY,EAAE,EAAE,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,0BAA0B,CAAC,IAAI,EAAE;YACxD,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC;QACH,IAAI;aAEF,GAAG,CAAC,SAAS,CAAC;aACd,GAAG,CAAC,WAAW,CAAC;aAChB,IAAI,CAAC;YACL,GAAG,iBAAiB;YACpB,EAAE,EAAE,CAAC,aAAa,CAAC;YACnB,OAAO,EAAE;gBACR,QAAQ;aACR;SACD,CAAC,CAAC;QACJ,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,eAAe,cAAc,CAAC"}
|
package/dist/i18nFrontend.js
CHANGED
|
@@ -6,54 +6,50 @@ import resourcesToBackend from "i18next-resources-to-backend";
|
|
|
6
6
|
import { initReactI18next } from "react-i18next";
|
|
7
7
|
import { i18nSharedOptions } from "./i18SharedOptions.js";
|
|
8
8
|
const reactOptions = {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
react: {
|
|
10
|
+
useSuspense: true,
|
|
11
|
+
},
|
|
12
|
+
detection: {
|
|
13
|
+
order: ["navigator", "htmlTag", "path", "subdomain"],
|
|
14
|
+
caches: ["localStorage", "cookie"],
|
|
15
|
+
},
|
|
16
16
|
};
|
|
17
17
|
const getLoadPath = (language, namespace) => {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
const filename = import.meta.url.split("/").pop();
|
|
19
|
+
return `${import.meta.url.replace(`/${filename}`, "")}/locales/${language}/${namespace}.json`;
|
|
20
20
|
};
|
|
21
|
-
function initializeI18n(i18nLoadedCallback) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
return i18n;
|
|
21
|
+
export function initializeI18n(i18nLoadedCallback) {
|
|
22
|
+
if (!i18n.isInitialized) {
|
|
23
|
+
i18n
|
|
24
|
+
.use(ChainedBackend)
|
|
25
|
+
.use(new I18nextBrowserLanguageDetector(null, {
|
|
26
|
+
order: ["cookie", "localStorage", "navigator"],
|
|
27
|
+
lookupQuerystring: "lng",
|
|
28
|
+
lookupCookie: "i18next",
|
|
29
|
+
lookupLocalStorage: "i18nextLng",
|
|
30
|
+
caches: ["localStorage", "cookie"],
|
|
31
|
+
}))
|
|
32
|
+
.use(initReactI18next)
|
|
33
|
+
.init({
|
|
34
|
+
...i18nSharedOptions,
|
|
35
|
+
backend: {
|
|
36
|
+
backends: [
|
|
37
|
+
HttpBackend,
|
|
38
|
+
resourcesToBackend((language, namespace) => import(getLoadPath(language, namespace))),
|
|
39
|
+
],
|
|
40
|
+
backendOptions: [
|
|
41
|
+
{
|
|
42
|
+
loadPath: getLoadPath("{{lng}}", "{{ns}}"),
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
...reactOptions,
|
|
47
|
+
});
|
|
48
|
+
i18n.on("loaded", () => {
|
|
49
|
+
i18nLoadedCallback?.(i18n);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
return i18n;
|
|
55
53
|
}
|
|
56
|
-
export
|
|
57
|
-
|
|
58
|
-
initializeI18n
|
|
59
|
-
};
|
|
54
|
+
export default initializeI18n;
|
|
55
|
+
//# sourceMappingURL=i18nFrontend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18nFrontend.js","sourceRoot":"","sources":["../src/i18nFrontend.ts"],"names":[],"mappings":"AAcA,OAAO,IAA0B,MAAM,SAAS,CAAC;AACjD,OAAO,8BAA8B,MAAM,kCAAkC,CAAC;AAC9E,OAAO,cAAc,MAAM,yBAAyB,CAAC;AACrD,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,YAAY,GAAgB;IACjC,KAAK,EAAE;QACN,WAAW,EAAE,IAAI;KACjB;IACD,SAAS,EAAE;QACV,KAAK,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC;QACpD,MAAM,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;KAClC;CACD,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,EAAE;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IAClD,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,QAAQ,EAAE,EAAE,EAAE,CAAC,YAAY,QAAQ,IAAI,SAAS,OAAO,CAAC;AAC/F,CAAC,CAAC;AAEF,MAAM,UAAU,cAAc,CAC7B,kBAAiD;IAEjD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACzB,IAAI;aAEF,GAAG,CAAC,cAAc,CAAC;aACnB,GAAG,CACH,IAAI,8BAA8B,CAAC,IAAI,EAAE;YACxC,KAAK,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,WAAW,CAAC;YAC9C,iBAAiB,EAAE,KAAK;YACxB,YAAY,EAAE,SAAS;YACvB,kBAAkB,EAAE,YAAY;YAChC,MAAM,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;SAClC,CAAC,CACF;aACA,GAAG,CAAC,gBAAgB,CAAC;aACrB,IAAI,CAAC;YACL,GAAG,iBAAiB;YACpB,OAAO,EAAE;gBACR,QAAQ,EAAE;oBACT,WAAW;oBAEX,kBAAkB,CACjB,CAAC,QAAgB,EAAE,SAAiB,EAAE,EAAE,CACvC,MAAM,CAAC,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CACzC;iBACD;gBACD,cAAc,EAAE;oBACf;wBACC,QAAQ,EAAE,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC;qBAC1C;iBACD;aACD;YACD,GAAG,YAAY;SACA,CAAC,CAAC;QACnB,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;YACtB,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,eAAe,cAAc,CAAC"}
|
package/dist/i18nMiddleware.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { handle } from "i18next-http-middleware";
|
|
2
2
|
import loadI18next from "./loadI18next.js";
|
|
3
3
|
async function i18nMiddleware(options) {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
const i18n = await loadI18next(true);
|
|
5
|
+
return handle(i18n, { ...options });
|
|
6
6
|
}
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
};
|
|
7
|
+
export default i18nMiddleware;
|
|
8
|
+
//# sourceMappingURL=i18nMiddleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18nMiddleware.js","sourceRoot":"","sources":["../src/i18nMiddleware.ts"],"names":[],"mappings":"AAcA,OAAO,EAAsB,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,WAAW,MAAM,kBAAkB,CAAC;AAE3C,KAAK,UAAU,cAAc,CAC5B,OAAsB;IAEtB,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,OAAO,MAAM,CAAC,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;AACrC,CAAC;AAED,eAAe,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
LanguageSchema,
|
|
9
|
-
Languages,
|
|
10
|
-
TranslationKeysSchema,
|
|
11
|
-
default2 as i18nMiddleware,
|
|
12
|
-
isClientSide,
|
|
13
|
-
default3 as loadI18next,
|
|
14
|
-
default4 as useTranslation
|
|
15
|
-
};
|
|
1
|
+
export { default as i18nMiddleware } from "./i18nMiddleware.js";
|
|
2
|
+
export { default as loadI18next } from "./loadI18next.js";
|
|
3
|
+
export { Languages, LanguageSchema } from "./translations.js";
|
|
4
|
+
export { isClientSide } from "./util.js";
|
|
5
|
+
export { TranslationKeysSchema } from "./translationKey.js";
|
|
6
|
+
export { default as useTranslation } from "./useTranslation.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/loadI18next.js
CHANGED
|
@@ -1,29 +1,32 @@
|
|
|
1
1
|
let i18nInstance;
|
|
2
2
|
async function loadI18next(backend) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
try {
|
|
5
|
+
if (backend) {
|
|
6
|
+
import("./i18nBackend.js").then(({ default: initializeI18n }) => {
|
|
7
|
+
if (!i18nInstance) {
|
|
8
|
+
i18nInstance = initializeI18n(resolve);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
resolve(i18nInstance);
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
import("./i18nFrontend.js").then(({ default: initializeI18n }) => {
|
|
17
|
+
if (!i18nInstance) {
|
|
18
|
+
i18nInstance = initializeI18n(resolve);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
resolve(i18nInstance);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
reject(e);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
26
30
|
}
|
|
27
|
-
export
|
|
28
|
-
|
|
29
|
-
};
|
|
31
|
+
export default loadI18next;
|
|
32
|
+
//# sourceMappingURL=loadI18next.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loadI18next.js","sourceRoot":"","sources":["../src/loadI18next.ts"],"names":[],"mappings":"AAeA,IAAI,YAAkB,CAAC;AACvB,KAAK,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACtC,IAAI,CAAC;YACJ,IAAI,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE;oBAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;wBAEnB,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBAEP,OAAO,CAAC,YAAY,CAAC,CAAC;oBACvB,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE;oBAChE,IAAI,CAAC,YAAY,EAAE,CAAC;wBAEnB,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;oBACxC,CAAC;yBAAM,CAAC;wBAEP,OAAO,CAAC,YAAY,CAAC,CAAC;oBACvB,CAAC;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,MAAM,CAAC,CAAC,CAAC,CAAC;QACX,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC;AAID,eAAe,WAAW,CAAC"}
|