From ca2290e691b6f73769ab4ce31caa441790e66d5f Mon Sep 17 00:00:00 2001 From: MeowOS Date: Tue, 1 Sep 2026 03:41:19 +0800 Subject: [PATCH] =?UTF-8?q?fix(amsd):=20=E6=B3=A8=E5=86=8C=E8=A1=A8?= =?UTF-8?q?=E6=89=AB=E7=A9=BA=E8=87=AA=E6=84=88=20(agent-250)=20=E2=80=94?= =?UTF-8?q?=20=E6=A0=B9=E5=9B=A0:=20svcd=20trigger=3Dboot=20=E6=8B=89?= =?UTF-8?q?=E8=B5=B7=20amsd=20=E6=97=B6=20TF=20=E5=8D=A1=E6=9C=AA=E6=8C=82?= =?UTF-8?q?=E8=BD=BD,=20=E5=90=AF=E5=8A=A8=E9=A6=96=E6=89=AB=E6=89=93?= =?UTF-8?q?=E7=A9=BA=E6=8C=82=E8=BD=BD=E7=82=B9=E4=B8=94=E6=AD=A4=E5=90=8E?= =?UTF-8?q?=E6=B0=B8=E4=B8=8D=E9=87=8D=E6=89=AB=20=E2=86=92=20am=20start?= =?UTF-8?q?=20=E6=8A=A5=20pkg=20not=20registered=20(M2.90=20=E7=9C=9F?= =?UTF-8?q?=E6=9C=BA=E6=97=A5=E5=BF=97=E5=AE=9E=E8=AF=81).=20=E4=BF=AE:=20?= =?UTF-8?q?registry=5Fscan=20=E6=94=B9=E5=90=88=E5=B9=B6=E5=BC=8F=E9=87=8D?= =?UTF-8?q?=E6=89=AB(=E5=8F=AA=E5=88=B7=E9=9D=99=E6=80=81=E5=AD=97?= =?UTF-8?q?=E6=AE=B5,=20=E8=BF=90=E8=A1=8C=E6=97=B6=E7=8A=B6=E6=80=81/DECL?= =?UTF-8?q?ARE=E8=B7=AF=E7=94=B1=E4=BF=9D=E7=95=99,=20=E6=BA=90=E4=B8=8D?= =?UTF-8?q?=E5=8F=AF=E8=BE=BE=E7=BB=9D=E4=B8=8D=E6=B8=85=E8=A1=A8)=20+=20?= =?UTF-8?q?=E4=B8=BB=E5=BE=AA=E7=8E=AF=E8=87=AA=E6=84=88=E9=87=8D=E6=89=AB?= =?UTF-8?q?(=E6=BA=90=E6=9C=AA=E9=80=9A=203s=20=E5=BF=AB=E9=87=8D=E8=AF=95?= =?UTF-8?q?/=E5=B8=B8=E6=80=81=2030s=20=E5=90=88=E5=B9=B6=E9=87=8D?= =?UTF-8?q?=E6=89=AB)=20+=20am=20rescan=20=E6=89=8B=E5=8A=A8=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=20+=20=E5=85=BC=E5=AE=B9=20M2.90=20=E5=9B=BA=E4=BB=B6?= =?UTF-8?q?=20launcher=20=E6=97=A7=205=20=E6=AE=B5=20EV=20LAUNCH(nt=3D=3D5?= =?UTF-8?q?=20=E6=97=A0=20chain,=20epoch=20=E4=B8=8D=E5=86=8D=E9=94=99?= =?UTF-8?q?=E5=BD=93=20pid).=20=E5=AE=BF=E4=B8=BB+qemu+=E7=9C=9F=E6=9C=BA?= =?UTF-8?q?=E5=85=A8=E9=93=BE=20PASS:=20=E7=A9=BA=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=204s=20=E8=87=AA=E6=84=88=E5=87=BA=203=20App?= =?UTF-8?q?,=20=E7=9C=9F=E6=9C=BA=20am=20start=20dev.player.ncm=E2=86=92OK?= =?UTF-8?q?(=E7=9C=9Fpid)=E2=86=92kill=20=E5=85=A8=E9=80=9A.=20meow=5Famsd?= =?UTF-8?q?=20da9a5004=20/=20am=209e323faf=20(fw=5Fcontent.conf=20?= =?UTF-8?q?=E5=B7=B2=E6=9B=B4=E6=96=B0,=20=E5=BE=85=20M2.91=20=E5=85=A5?= =?UTF-8?q?=E5=9B=BA=E4=BB=B6=E9=97=AD=E7=8E=AF=E5=86=B7=E5=90=AF=E5=8A=A8?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- patch_v2/meow_amsd/am | Bin 59200 -> 59264 bytes patch_v2/meow_amsd/am.c | 9 ++- patch_v2/meow_amsd/am_host | Bin 71600 -> 71600 bytes patch_v2/meow_amsd/meow_amsd | Bin 132492 -> 133644 bytes patch_v2/meow_amsd/meow_amsd.c | 120 +++++++++++++++++++++++------- patch_v2/meow_amsd/meow_amsd_host | Bin 76560 -> 76752 bytes scripts/build/fw_content.conf | 4 +- 7 files changed, 102 insertions(+), 31 deletions(-) diff --git a/patch_v2/meow_amsd/am b/patch_v2/meow_amsd/am index 2275257cf010c02b2c6218abadaa7c83ed725950..208b1f6150893e61b9806ed505885cfea5950130 100755 GIT binary patch delta 7713 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 delta 7708 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 F{2#MSX#D^H diff --git a/patch_v2/meow_amsd/am.c b/patch_v2/meow_amsd/am.c index e5d325d..4a84e21 100644 --- a/patch_v2/meow_amsd/am.c +++ b/patch_v2/meow_amsd/am.c @@ -9,6 +9,7 @@ * am history [pkg] → 事件历史(每 App 最近 8 条;无 pkg=全部) * am start [/] → 经 amsd→launcher 拉起 * am kill → 经 amsd→launcher 终止(SIGTERM 语义) + * am rescan → 手动触发注册表重扫(卡刚挂载/热装 App 后立即可见) * * 编译(mipsel 静态):zig-mipsel-cc -Os -Wall -Wextra -static am.c -o am * 宿主:gcc -Os -Wall -Wextra am.c -o am_host @@ -125,10 +126,15 @@ static int cmd_kill(const char *pkg) return am_query(line); } +static int cmd_rescan(void) +{ + return am_query("rescan\n"); +} + static void usage(const char *a0) { fprintf(stderr, - "usage: %s [--sock ] status|list|history [pkg]|start [/]|kill \n" + "usage: %s [--sock ] status|list|history [pkg]|start [/]|kill |rescan\n" " %s resolve | picker | picker-status [reqid]\n" " --sock amsd socket (default %s, or $MEOW_AMS_SOCK)\n", a0, a0, AMS_SOCK_DEFAULT); @@ -181,6 +187,7 @@ int main(int argc, char **argv) if (!strcmp(cmd, "picker-status")) { return cmd_picker_status(arg); } + if (!strcmp(cmd, "rescan")) return cmd_rescan(); usage(argv[0]); return 2; } diff --git a/patch_v2/meow_amsd/am_host b/patch_v2/meow_amsd/am_host index 4222771a280ef7c5024c39b190f76b3abb7af27d..3bc5960ba1d75880a696b70ed8c5e2ef67f73a32 100755 GIT binary patch delta 1640 zcmZ8iYfKzf6uxI>w>%2FJ3F(?%r1{zXrxsuH1a4FEMSxpA+`h))EGf%thH%N8y`(H zU6PvANa9{^;-pFfCT+6aKcJYNO!o3kf(2Kp@n{g!|NVX6+L#S~($7@hi77)=;!$j(Ed&?3hvYshAxSDk)%tN1RL zvN`f{#*0_K9=iBN*^a8BLvOxb#O5|-4fb;{S=FdB9vE2$^MSX-?e0Ne>N7l?9o)a! z%egZY`j@V2t%Q67q`IPwkW!=#kO7hPX68EE721Pt6^}}ZzsXytu&bE|r6UTB@@l9L zU49^?VXk_qkTu%8ps>TXEKu2pwk=MJLfZ-XQRhgf730sHmD#Y(U3FTatsMEd7Srv; z_&!)Hi?&x+pvVEAKbz(e(i!EY&~az)=SK}?nBP=Hawq_E+6(i06xwD~Uel`3d0m%{ z3`V4HRAH~!^SPM9PTKR`ii%pLP!mS{vz}F{vSE8}S+hzXtm;|_T{>czkP@?8Sf!6) zh!lJ|OI&tE+66!&5fxp_kEf8OuZ;ZYZ-eoBpsqsw11; zM_wNg<`LW_J=v7+@K1c2p!jC9skWZ(&7n7u?!BuUtqzdN9D0z|3*{MkUVbvU*&(6Y z^)}Lih5|w&WUg+h8t0~meJ2b5%A&kJp)lEpGJbx@`% z+b$MBG217KCkxOw%ahP;-W4)h-IeK|;7~$s04Gc&C!)M1WJAtO0l|M!eDwQFf78=w zdpVpMLqn`?Ny19?c!m`(itF;3c}8SYjnVwA=reLS5hwBW@oZP<)(R#^=XJezLL&Z& zKTwQ85|A`=8_c2{>6+M%Hjd_eH;`t-4=hLWz!g>@mBS6zDV22BhMSJ<#>7IIIV796Qh+MSKr&5wRPwIyLp+T*iWoqQB3?pV zKqRbD&T}m<>AEqgq$VZTf$%u)J*-O>T^*RG((vHgg1Z@aH#;vE!UZ-i%dQ~$4Ysk0 zaR+gS*^2z6^}>R#H?UHrK;$i8Ykltb-+rB*x_SM^+X}(Q~V;>K)n!NA4sKZzp z=C6&!w0%4j!GhL>EQB+L7173csDo)uu%H#wYAhhTV~MLS`Bu9z1BZDeQ9EXVcetI3 zcFzJ&?C>UdW&!-c+s@=|JjZLxJm0I;Td_*FcESp;K~$TvV(Ew>zfK)V+}6ol_wWIT zgN$fh=!TY|u}z=>M26Z@;RQgYU!}pj*n(~8@CGyt(R9#LA)rwaiqaxdJPW>@2<1X7 kVJ7j2CP>Iy`vPe75|pO}6CZ}4_K{&GyEr;DCcz!|U;F6mYYntOBse0P4cHK}!lJOq6cH1NAr`^t3@Rv@Bbrc> zEt%OCd%eUL4GEY)Qkx}oVM#RvCC)!28fC~nn79;&LdGA1#HlFbdG4bn$W2avJ?H$+ z$2<4t#73pqs1$ZXh-&eSu$!1COy|CmJCn*bvd^GUmeeiEHnIg6)Xsc4FD>0Te6BLS zQGBxE&3BI&N`*hehZgd-;B!;8}Ii z-wi_#5^@np;9x5urAUjBn1c;wgf=)S^S^3IQpd z6awoiJ8JcT%HFWLAcLK<7C4q&w2hGO41si6Fn;8;i;Y`7RUIk~3gk=;rfb0XA^5v2 z(H1y}O~(A~UYbitS3*>xZ#xD*>ExYZezT)RFI^+dVJplFskD_>PW9Ta(lx_Sc?KTo zKd-VEYD(ki7c{X^jO0*Fp{@Ka$x!Jfar|f{6-rY3xD7p;9NkaCU<%ZpKFNXNA z&5zKB!wVbJPLX*bI?K%5j)#w5;7BD)vVU+%l8Pn*}R?)E8+N?%x zn01I%+1*8dX!M8Osk=S&>dt^+58d2k6?Sjgq=!zRX9CM4{@PXM0WZC@Gpf!@SCAK2 zF_>5OC?PKu+e0%SCMo`Jy;Nt%rZn7Sw9G2MyWn`=+dj;z88^J3+R)?65Qu(K06yQ^P4Ct?BSIV5b){;2j)6(H?jOisN(-80k16 y>V%Svu(Fi}Kh6o|awMsyuvwQCWNmMB{fGkP84bxr-=M$G)zlO_<5LPO3I72qdIdfJ diff --git a/patch_v2/meow_amsd/meow_amsd b/patch_v2/meow_amsd/meow_amsd index 9330bbea4c33d36eacf38ca0ec4d272d5bdb49b7..9057612774e2bb2ab87dca998149488d581dc7ff 100755 GIT binary patch delta 36976 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 diff --git a/patch_v2/meow_amsd/meow_amsd.c b/patch_v2/meow_amsd/meow_amsd.c index f07f694..8182789 100644 --- a/patch_v2/meow_amsd/meow_amsd.c +++ b/patch_v2/meow_amsd/meow_amsd.c @@ -6,6 +6,8 @@ * svcd fork+exec 直接拉起,故本进程【前台常驻】(不 daemonize),与 meow_crash 同款。 * - 一期:生命周期监控中心 + 应用注册表。launcher 经 AF_UNIX `/usr/data/meow_ams.sock`(0666) * 上报 launch/exit/crash 事件;`am` CLI 同 socket 查询/下发 start/kill。 + * - 注册表 = 启动首扫 + 周期合并重扫(卡未挂载扫空 3s 快重试、常态 30s 自愈; + * `am rescan` 手动触发)。重扫合并式,绝不清运行时状态(M2.90 真机扫空缺陷修复)。 * - 核心目的:从侧面详细抓 App 日志(尤其异常崩溃日志)。launcher 给 App 建 stdout/stderr * 管道,前台循环按行转发(EV OUT);amsd 落盘 `logs//stdout__.log`。 * - 崩溃双保险:amsd 检测到异常退出时另以 meow_crash 认识的 `SVC ...` 格式转发 @@ -61,6 +63,8 @@ #define AMS_MAX_PENDING 8 /* 进行中 picker 请求(结果关联) */ #define AMS_TICK_MS 1000 #define AMS_CLEANUP_MS 60000 +#define AMS_RESCAN_MS 30000 /* 常态合并重扫周期(卡热插拔/App 热安装后注册表自愈) */ +#define AMS_RESCAN_RETRY_MS 3000 /* 扫描源尚未成功打开(开机早于卡挂载扫空)→ 快重试 */ #define AMS_PATH_MAX 512 #define AMS_SOCK_PATH_MAX 108 #define AMS_BOOTTS_LEN 64 @@ -478,14 +482,31 @@ static void ams_parse_pickers(const char *content, const char *app_id) } } -/* 扫描 --apps 下每个目录(app_id=目录名;name/exec 从 app.json 抽,缺省回退)。 */ -static void registry_scan(void) +/* 扫描源至少成功打开过一次(空表快重试的终止条件;卡未挂载时恒 0)。 */ +static int g_scan_ok = 0; + +static struct ams_app *app_find(const char *pkg); /* 定义在后(App 表辅助) */ + +/* 扫描 --apps 下每个目录(app_id=目录名;name/exec 从 app.json 抽,缺省回退)。 + * 合并式(merge-preserving):已存在表项只刷新静态字段(known/name/exec/route 表/picker 表), + * 运行时状态(state/pid/launches/crashes/history、运行时 DECLARE 并集进来的路由)一律保留; + * 新目录追加建项。扫描源不可达(开机早于卡挂载/卡热拔)→ 保留现有表直接返回,绝不清空。 + * verbose=1(启动/`am rescan`)记全量明细;周期调用仅在结果变化时记一行摘要(防刷屏)。 */ +static void registry_scan(int verbose) { + static int last_found = -1, last_napps = -1, last_npick = -1; DIR *d = opendir(g_apps_dir); - if (!d) { emit_log("registry scan: %s not reachable (%s)", g_apps_dir, strerror(errno)); return; } + if (!d) { + if (verbose || !g_scan_ok) + emit_log("registry scan: %s not reachable (%s)", g_apps_dir, strerror(errno)); + return; + } + g_scan_ok = 1; + for (int i = 0; i < g_napps; i++) g_apps[i].known = 0; + for (int i = 0; i < g_npickers; i++) g_pickers[i].used = 0; struct dirent *de; - int n = 0; - while ((de = readdir(d)) != NULL && n < AMS_MAX_APPS) { + int found = 0; + while ((de = readdir(d)) != NULL) { if (de->d_name[0] == '.') continue; char nm[96]; scopy(nm, sizeof nm, de->d_name); @@ -506,37 +527,49 @@ static void registry_scan(void) fclose(jf); content[rd] = '\0'; } - struct ams_app *a = &g_apps[n]; - memset(a, 0, sizeof *a); - /* app_id 权威 = 目录名(APPS.md §2);app.json package 字段作为兜底校验(不一致时用目录名) */ - scopy(a->pkg, sizeof a->pkg, de->d_name); + /* app_id 权威 = 目录名(APPS.md §2);已有表项(含运行时 EV/DECLARE 建的)原位刷新 */ + struct ams_app *a = app_find(nm); + if (!a) { + if (g_napps >= AMS_MAX_APPS) continue; + a = &g_apps[g_napps++]; + memset(a, 0, sizeof *a); + scopy(a->pkg, sizeof a->pkg, nm); + } a->known = 1; char tmp[96]; appjson_get(content, "name", tmp, sizeof tmp); - if (!tmp[0]) scopy(tmp, sizeof tmp, de->d_name); + if (!tmp[0]) scopy(tmp, sizeof tmp, nm); scopy(a->name, sizeof a->name, tmp); appjson_get(content, "exec", tmp, sizeof tmp); if (tmp[0]) scopy(a->exec, sizeof a->exec, tmp); - else { + else if (!a->exec[0] || !strcmp(a->exec, "?")) { scopy(a->exec, sizeof a->exec, dir); path_append(a->exec, sizeof a->exec, "/meow"); } /* §6.2 二期:路由权威表(静态 app.json route.*)+ picker 表(picker.=) */ ams_parse_routes(content, a); ams_parse_pickers(content, a->pkg); - n++; + found++; } closedir(d); - g_napps = n; - emit_log("registry scan: %d app(s) from %s", g_napps, g_apps_dir); - for (int i = 0; i < g_napps; i++) { - struct ams_app *a = &g_apps[i]; - emit_log(" app %s name=%s exec=%s routes=%d", a->pkg, a->name, a->exec, a->nroute); - for (int r = 0; r < a->nroute; r++) - emit_log(" route %s=%s", a->routes[r].act, a->routes[r].chain); + if (verbose || found != last_found || g_napps != last_napps || g_npickers != last_npick) { + emit_log("registry scan: %d dir(s) from %s, %d app(s) registered", + found, g_apps_dir, g_napps); + if (verbose) { + for (int i = 0; i < g_napps; i++) { + struct ams_app *a = &g_apps[i]; + emit_log(" app %s name=%s exec=%s known=%d routes=%d", + a->pkg, a->name, a->exec, a->known, a->nroute); + for (int r = 0; r < a->nroute; r++) + emit_log(" route %s=%s", a->routes[r].act, a->routes[r].chain); + } + for (int i = 0; i < g_npickers; i++) + if (g_pickers[i].used) + emit_log(" picker %s -> %s (chain=%s)", + g_pickers[i].action, g_pickers[i].app_id, g_pickers[i].chain); + } } - for (int i = 0; i < g_npickers; i++) - emit_log(" picker %s -> %s (chain=%s)", g_pickers[i].action, g_pickers[i].app_id, g_pickers[i].chain); + last_found = found; last_napps = g_napps; last_npick = g_npickers; } /* ---- App 表辅助 ---- */ @@ -819,10 +852,22 @@ static int ams_request_ctl(uint16_t type, const void *payload, uint32_t len, uin static void handle_launch(char **t, int nt) { if (nt < 4) return; - const char *pkg = t[0], *act = t[1], *chain = t[2]; - pid_t pid = (pid_t)atoi(t[3]); - long epoch = (nt > 4) ? atol(t[4]) : (long)time(NULL); - long up = (nt > 5) ? atol(t[5]) : read_uptime_sec(); + const char *pkg = t[0], *act = t[1], *chain = "-"; + pid_t pid; + long epoch, up; + if (nt == 5) { + /* 兼容旧格式(M2.90 固件 launcher 实证):EV LAUNCH + * ——无 chain 字段。不兼容会把 epoch 错当 pid(am status 显示假 pid、 + * `am kill` 兜底直发 SIGTERM 打错进程),故按 nt==5 识别旧布局。 */ + pid = (pid_t)atoi(t[2]); + epoch = atol(t[3]); + up = atol(t[4]); + } else { + chain = t[2]; + pid = (pid_t)atoi(t[3]); + epoch = (nt > 4) ? atol(t[4]) : (long)time(NULL); + up = (nt > 5) ? atol(t[5]) : read_uptime_sec(); + } struct ams_app *a = app_get(pkg); if (!a) return; a->state = AMS_FG; @@ -1015,6 +1060,13 @@ static int cmd_picker_status(const char *reqstr, char *resp, int rn) return l; } +/* `am rescan`:手动触发注册表重扫(卡刚挂载/热装 App 后立即可见,不等 30s 周期)。 */ +static int cmd_rescan(char *resp, int rn) +{ + registry_scan(1); + return snprintf(resp, rn, "OK rescan %d app(s)\n", g_napps); +} + /* `am resolve `:查 amsd 权威路由表。 */ static int cmd_resolve(const char *pkg, const char *act, char *resp, int rn) { @@ -1218,13 +1270,14 @@ static int dispatch_line(char *line, char *resp, int rn) return 0; } - /* 命令:status/list/history/start/kill/resolve/picker/picker-status */ + /* 命令:status/list/history/start/kill/resolve/picker/picker-status/rescan */ char *save = NULL; char *cmd = strtok_r(line, " ", &save); if (!cmd) return 0; char *arg = strtok_r(NULL, " ", &save); if (!strcmp(cmd, "status")) return cmd_status(resp, rn) > 0; if (!strcmp(cmd, "list")) return cmd_list(resp, rn) > 0; + if (!strcmp(cmd, "rescan")) return cmd_rescan(resp, rn) > 0; if (!strcmp(cmd, "history")) { if (arg && arg[0]) cmd_history(arg, resp, rn); else cmd_history(NULL, resp, rn); @@ -1369,7 +1422,7 @@ static int run_daemon(void) boot_ts(g_bootts, sizeof g_bootts); log_open_card(); log_cleanup_old(); - registry_scan(); + registry_scan(1); /* 启动首扫:卡未挂载扫空也照常常驻,主循环 3s 快重试兜底 */ fprintf(stderr, "[meow_amsd] up: sock=%s ipc=%s apps=%s card=%s bootts=%s log=%s\n", g_sock, g_ipc_sock, g_apps_dir, g_card, g_bootts, @@ -1381,7 +1434,7 @@ static int run_daemon(void) for (int i = 0; i < AMS_MAX_CONNS; i++) conns[i].fd = -1; int nfds = 2; - unsigned long long last_cleanup = 0; + unsigned long long last_cleanup = 0, last_rescan = 0; while (!g_shutdown) { /* 每圈清零:谨防上一轮已关闭连接残留的 POLLHUP/POLLERR 落在 pfds[2+i] 上。 * 若不清,accept 后同一轮就用「陈旧 revents」处理新连接——误判其 HUP/ERR @@ -1448,6 +1501,17 @@ static int run_daemon(void) poll_card(); log_cleanup_old(); } + /* 注册表自愈重扫:扫描源从未成功打开(开机早于卡挂载扫空,M2.90 真机实证 + * 「registry scan: MeowAPPs not reachable」后注册表永久为空 → am start 报 + * pkg not registered)→ 3s 快重试直到扫到;常态 30s 合并重扫(卡热插拔 / + * App 热安装自愈,对齐 launcher 的应用列表目录热重载)。合并式重扫不清 + * 运行时状态,见 registry_scan 注释。 */ + { + unsigned long long nm = now_ms(); + unsigned long long iv = g_scan_ok ? (unsigned long long)AMS_RESCAN_MS + : (unsigned long long)AMS_RESCAN_RETRY_MS; + if (nm - last_rescan >= iv) { last_rescan = nm; registry_scan(0); } + } } if (g_listen_fd >= 0) close(g_listen_fd); diff --git a/patch_v2/meow_amsd/meow_amsd_host b/patch_v2/meow_amsd/meow_amsd_host index 16be5e3e6a9a111f0479fa91beabd88809ae24dd..4338029189f85c4cb75a12df3f989278bb9b3a0a 100755 GIT binary patch delta 13820 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