@rtc-agent/component 0.2.9-rc.0 → 0.3.0-rc.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/.generated/locales/en-US.d.ts +15 -0
- package/dist/.generated/locales/en-US.d.ts.map +1 -1
- package/dist/assets/index.browser-eyaxJE57.js +201 -0
- package/dist/assets/shared-worker-Czk9mL9X.js +77480 -0
- package/dist/components/chat-layout/rtc-chat-layout.d.ts +12 -0
- package/dist/components/chat-layout/rtc-chat-layout.d.ts.map +1 -1
- package/dist/components/chat-layout/rtc-chat-layout.styles.d.ts.map +1 -1
- package/dist/components/content-area/rtc-error-message.d.ts +1 -2
- package/dist/components/content-area/rtc-error-message.d.ts.map +1 -1
- package/dist/components/content-area/rtc-user-message.d.ts +17 -1
- package/dist/components/content-area/rtc-user-message.d.ts.map +1 -1
- package/dist/components/content-area/rtc-user-message.styles.d.ts +3 -1
- package/dist/components/content-area/rtc-user-message.styles.d.ts.map +1 -1
- package/dist/components/file-preview/rtc-file-preview-area.d.ts +48 -0
- package/dist/components/file-preview/rtc-file-preview-area.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-preview-area.styles.d.ts +2 -0
- package/dist/components/file-preview/rtc-file-preview-area.styles.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-preview-modal.d.ts +108 -0
- package/dist/components/file-preview/rtc-file-preview-modal.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-preview-modal.styles.d.ts +2 -0
- package/dist/components/file-preview/rtc-file-preview-modal.styles.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-thumbnail.d.ts +81 -0
- package/dist/components/file-preview/rtc-file-thumbnail.d.ts.map +1 -0
- package/dist/components/file-preview/rtc-file-thumbnail.styles.d.ts +2 -0
- package/dist/components/file-preview/rtc-file-thumbnail.styles.d.ts.map +1 -0
- package/dist/components/input-area/rtc-input-area.d.ts +55 -2
- package/dist/components/input-area/rtc-input-area.d.ts.map +1 -1
- package/dist/components/input-area/rtc-input-area.styles.d.ts.map +1 -1
- package/dist/components/rtc-agent/rtc-agent.d.ts +11 -0
- package/dist/components/rtc-agent/rtc-agent.d.ts.map +1 -1
- package/dist/contexts/file-storage.d.ts +17 -0
- package/dist/contexts/file-storage.d.ts.map +1 -0
- package/dist/controllers/persistence.controller.d.ts +11 -0
- package/dist/controllers/persistence.controller.d.ts.map +1 -1
- package/dist/{en-US-CpXp6drY.js → en-US-CrMLbirj.js} +17 -2
- package/dist/{highlight-languages-DwYGpLW6.js → highlight-languages-BvNFb0HY.js} +1 -1
- package/dist/icons/icons.d.ts +2 -0
- package/dist/icons/icons.d.ts.map +1 -1
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/{index-DJBmvsa_.js → index-BTJMzthg.js} +34938 -30784
- package/dist/index.js +1 -1
- package/dist/index.umd.js +1801 -1008
- package/dist/stats.html +1 -1
- package/dist/utils/file-id.d.ts +23 -0
- package/dist/utils/file-id.d.ts.map +1 -0
- package/dist/utils/file-md5.d.ts +51 -0
- package/dist/utils/file-md5.d.ts.map +1 -0
- package/dist/utils/file-storage.d.ts +527 -0
- package/dist/utils/file-storage.d.ts.map +1 -0
- package/dist/worker-bridge.d.ts +186 -2
- package/dist/worker-bridge.d.ts.map +1 -1
- package/package.json +7 -5
- package/dist/assets/shared-worker-vIZKoWv_.js +0 -2667
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FileStorage } from '../utils/file-storage.js';
|
|
2
|
+
/**
|
|
3
|
+
* FileStorage context value shape.
|
|
4
|
+
* Simple wrapper for FileStorage instance.
|
|
5
|
+
* fileStorage is null until WorkerBridge is initialized.
|
|
6
|
+
*/
|
|
7
|
+
export interface FileStorageContextValue {
|
|
8
|
+
fileStorage: FileStorage | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Lit Context for FileStorage dependency injection.
|
|
12
|
+
* Provided by rtc-agent, consumed by file-related components.
|
|
13
|
+
*/
|
|
14
|
+
export declare const FileStorageContext: {
|
|
15
|
+
__context__: FileStorageContextValue;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=file-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-storage.d.ts","sourceRoot":"","sources":["../../src/contexts/file-storage.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;CAE9B,CAAC"}
|
|
@@ -19,6 +19,7 @@ import type { ConnectionState, ConnectionStateEvent } from '@rtc-agent/client';
|
|
|
19
19
|
import type { AuthController } from './auth.controller.js';
|
|
20
20
|
import { WorkerBridge } from '../worker-bridge.js';
|
|
21
21
|
import { MasterLock } from '../master-lock.js';
|
|
22
|
+
import { FileStorage } from '../utils/file-storage.js';
|
|
22
23
|
export declare class PersistenceController implements ReactiveController {
|
|
23
24
|
private _layer?;
|
|
24
25
|
private _auth;
|
|
@@ -26,6 +27,7 @@ export declare class PersistenceController implements ReactiveController {
|
|
|
26
27
|
private _masterLock?;
|
|
27
28
|
private _databaseNameOverride?;
|
|
28
29
|
private _workerUrl?;
|
|
30
|
+
private _fileStorage?;
|
|
29
31
|
/**
|
|
30
32
|
* In-flight connection promise — prevents concurrent `connect()` calls from
|
|
31
33
|
* racing to create multiple SharedWorker / Centrifuge connections.
|
|
@@ -83,6 +85,15 @@ export declare class PersistenceController implements ReactiveController {
|
|
|
83
85
|
* @see docs/shared-worker-proposal.md §4.3
|
|
84
86
|
*/
|
|
85
87
|
get masterLock(): MasterLock | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Get the FileStorage instance for high-level file operations.
|
|
90
|
+
*
|
|
91
|
+
* FileStorage provides intelligent file upload/download with automatic MD5 calculation,
|
|
92
|
+
* caching, and progress tracking. Requires an active connection (after connect()).
|
|
93
|
+
*
|
|
94
|
+
* @throws Error if not connected or userId is not available
|
|
95
|
+
*/
|
|
96
|
+
get fileStorage(): FileStorage;
|
|
86
97
|
hostConnected(): void;
|
|
87
98
|
hostDisconnected(): void;
|
|
88
99
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/persistence.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,KAAK,CAAC;AAE5C,OAAO,EACH,KAAK,gBAAgB,EAMxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAG7E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAKzD,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"persistence.controller.d.ts","sourceRoot":"","sources":["../../src/controllers/persistence.controller.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,KAAK,CAAC;AAE5C,OAAO,EACH,KAAK,gBAAgB,EAMxB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAC,eAAe,EAAE,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAG7E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,sBAAsB,CAAC;AAKzD,OAAO,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAwMrD,qBAAa,qBAAsB,YAAW,kBAAkB;IAC5D,OAAO,CAAC,MAAM,CAAC,CAAmB;IAClC,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAe;IACrC,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,qBAAqB,CAAC,CAAS;IACvC,OAAO,CAAC,UAAU,CAAC,CAAS;IAC5B,OAAO,CAAC,YAAY,CAAC,CAAc;IAEnC;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAAC,CAAgB;IAEpC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAK;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;gBAGlD,IAAI,EAAE;QAAC,aAAa,CAAC,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;KAAC,EAClD,IAAI,EAAE,cAAc;IAMxB,wEAAwE;IACxE,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEzC;IAED;;;;;;;;OAQG;IACH,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEtC;IAED,qEAAqE;IACrE,IAAI,KAAK,IAAI,gBAAgB,GAAG,SAAS,CAExC;IAED,kDAAkD;IAClD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,YAAY,GAAG,SAAS,CAE3C;IAED;;;;;;;;OAQG;IACH,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAEvC;IAED;;;;;;;OAOG;IACH,IAAI,WAAW,IAAI,WAAW,CAgB7B;IAED,aAAa;IAIb,gBAAgB;IAIhB;;;;;;;;;OASG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+D9B;;;;;;;OAOG;YACW,cAAc;IA2B5B;;OAEG;YACW,kBAAkB;IA2FhC;;OAEG;YACW,wBAAwB;IAatC;;OAEG;IACH,OAAO,CAAC,MAAM;IAId;;;;;;;;;OASG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA0EjC;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAOpD;;;;;OAKG;IACH,uBAAuB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,GAAG,MAAM,IAAI;CAOvF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as e } from "./index-
|
|
1
|
+
import { s as e } from "./index-BTJMzthg.js";
|
|
2
2
|
const s = {
|
|
3
3
|
s0016a70887124d70: "Session",
|
|
4
4
|
s01366f0961abde4c: "Link",
|
|
@@ -264,7 +264,22 @@ const s = {
|
|
|
264
264
|
sfba237d3fcfe2d80: e`Render failed: ${0}`,
|
|
265
265
|
sfcf02d7fbb1eef49: "Execute task in a loop",
|
|
266
266
|
sfd3a5046f19f54d0: "Session history",
|
|
267
|
-
sfea2ebf059badaef: "Failed to reopen session, please retry"
|
|
267
|
+
sfea2ebf059badaef: "Failed to reopen session, please retry",
|
|
268
|
+
s473e939112690a50: "加载失败",
|
|
269
|
+
s9d1b66ae2017a0e5: "重试上传",
|
|
270
|
+
s19701948ff347238: "等待同步",
|
|
271
|
+
sac77b3a437c0f21d: "正在同步...",
|
|
272
|
+
s2f015ae7a7bb3cec: "同步失败",
|
|
273
|
+
sf3bfb0839acc4bb7: e`删除 ${0}`,
|
|
274
|
+
sf3090d705d4de077: e`预览 ${0}`,
|
|
275
|
+
sa0903f2fc0126db5: "没有附件",
|
|
276
|
+
sf3349f071f2bab10: "附件列表",
|
|
277
|
+
s795fca7acd5146f2: "未命名文件",
|
|
278
|
+
se03b0995736ec63d: "文件过大,不支持预览",
|
|
279
|
+
s631275c801a0881f: "图片加载失败",
|
|
280
|
+
s132a9d11517f52d1: "文件过大,仅显示部分内容",
|
|
281
|
+
sea0723ac2f4955af: "不支持的文件类型",
|
|
282
|
+
s9a9759b2d054bbdc: "文件预览"
|
|
268
283
|
}, d = { templates: s };
|
|
269
284
|
export {
|
|
270
285
|
d as default
|
package/dist/icons/icons.d.ts
CHANGED
|
@@ -39,6 +39,7 @@ export declare const eyeIcon: import("lit").TemplateResult<1>;
|
|
|
39
39
|
export declare const columnsIcon: import("lit").TemplateResult<1>;
|
|
40
40
|
export declare const lockIcon: import("lit").TemplateResult<1>;
|
|
41
41
|
export declare const unlockIcon: import("lit").TemplateResult<1>;
|
|
42
|
+
export declare const alertIcon: import("lit").TemplateResult<1>;
|
|
42
43
|
/**
|
|
43
44
|
* Icon name to template mapping
|
|
44
45
|
*/
|
|
@@ -84,6 +85,7 @@ export declare const icons: {
|
|
|
84
85
|
readonly columns: import("lit").TemplateResult<1>;
|
|
85
86
|
readonly lock: import("lit").TemplateResult<1>;
|
|
86
87
|
readonly unlock: import("lit").TemplateResult<1>;
|
|
88
|
+
readonly alert: import("lit").TemplateResult<1>;
|
|
87
89
|
};
|
|
88
90
|
export type IconName = keyof typeof icons;
|
|
89
91
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/icons/icons.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../../src/icons/icons.ts"],"names":[],"mappings":"AAgFA,eAAO,MAAM,YAAY,iCAA6B,CAAC;AACvD,eAAO,MAAM,YAAY,iCAA6B,CAAC;AACvD,eAAO,MAAM,WAAW,iCAA4B,CAAC;AACrD,eAAO,MAAM,SAAS,iCAA0B,CAAC;AACjD,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,UAAU,iCAA2B,CAAC;AACnD,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,OAAO,iCAAwB,CAAC;AAC7C,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,SAAS,iCAA0B,CAAC;AACjD,eAAO,MAAM,UAAU,iCAA2B,CAAC;AACnD,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,OAAO,iCAAwB,CAAC;AAC7C,eAAO,MAAM,aAAa,iCAA8B,CAAC;AAIzD,eAAO,MAAM,SAAS,iCAAkC,CAAC;AAEzD,eAAO,MAAM,QAAQ,iCAAsC,CAAC;AAE5D,eAAO,MAAM,gBAAgB,iCAAkC,CAAC;AAEhE,eAAO,MAAM,cAAc,iCAA0C,CAAC;AAEtE,eAAO,MAAM,gBAAgB,iCAA6B,CAAC;AAE3D,eAAO,MAAM,cAAc,iCAA6B,CAAC;AAEzD,eAAO,MAAM,eAAe,iCAAyB,CAAC;AAEtD,eAAO,MAAM,WAAW,iCAAyB,CAAC;AAElD,eAAO,MAAM,SAAS,iCAAyB,CAAC;AAEhD,eAAO,MAAM,QAAQ,iCAA6B,CAAC;AAEnD,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAC/C,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAE/C,eAAO,MAAM,SAAS,iCAAsB,CAAC;AAI7C,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAE/D,eAAO,MAAM,eAAe,iCAAgC,CAAC;AAI7D,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAE/C,eAAO,MAAM,UAAU,iCAA2B,CAAC;AAEnD,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAE/C,eAAO,MAAM,OAAO,iCAAwB,CAAC;AAE7C,eAAO,MAAM,WAAW,iCAA4B,CAAC;AAIrD,eAAO,MAAM,QAAQ,iCAAyB,CAAC;AAE/C,eAAO,MAAM,UAAU,iCAA2B,CAAC;AAInD,eAAO,MAAM,SAAS,iCAA0B,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgDR,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,KAAK,CAAC;AAE1C;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,mCAErC"}
|
package/dist/icons/index.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* Centralized icon management using @primer/octicons.
|
|
5
5
|
* All icons are 16x16 SVGs.
|
|
6
6
|
*/
|
|
7
|
-
export { minimizeIcon, maximizeIcon, restoreIcon, clockIcon, plusIcon, editIcon, deleteIcon, handIcon, codeIcon, planIcon, zapIcon, gearIcon, checkIcon, attachIcon, toolIcon, sendIcon, stopIcon, micIcon, checklistIcon, filesIcon, chatIcon, folderClosedIcon, folderOpenIcon, fileMarkdownIcon, fileScriptIcon, fileDefaultIcon, refreshIcon, retryIcon, saveIcon, undoIcon, redoIcon, closeIcon, chevronRightIcon, chevronDownIcon, boldIcon, italicIcon, linkIcon, eyeIcon, columnsIcon, icons, getIcon, type IconName, } from './icons.js';
|
|
7
|
+
export { minimizeIcon, maximizeIcon, restoreIcon, clockIcon, plusIcon, editIcon, deleteIcon, handIcon, codeIcon, planIcon, zapIcon, gearIcon, checkIcon, attachIcon, toolIcon, sendIcon, stopIcon, micIcon, checklistIcon, filesIcon, chatIcon, folderClosedIcon, folderOpenIcon, fileMarkdownIcon, fileScriptIcon, fileDefaultIcon, refreshIcon, retryIcon, saveIcon, undoIcon, redoIcon, closeIcon, chevronRightIcon, chevronDownIcon, boldIcon, italicIcon, linkIcon, eyeIcon, columnsIcon, alertIcon, icons, getIcon, type IconName, } from './icons.js';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAEH,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,EAEb,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EAET,gBAAgB,EAChB,eAAe,EAEf,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EAEX,KAAK,EACL,OAAO,EACP,KAAK,QAAQ,GAChB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAEH,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,aAAa,EAEb,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,WAAW,EACX,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EAET,gBAAgB,EAChB,eAAe,EAEf,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,WAAW,EAEX,SAAS,EAET,KAAK,EACL,OAAO,EACP,KAAK,QAAQ,GAChB,MAAM,YAAY,CAAC"}
|