SELECT data_key, data_value
FROM xf_data_registry
WHERE data_key IN ('options', 'languages', 'contentTypes', 'codeEventListeners', 'deferredRun', 'simpleCache', 'addOns', 'defaultStyleProperties', 'routeFiltersIn', 'routeFiltersOut', 'routesPublic', 'nodeTypes', 'bannedIps', 'discouragedIps', 'styles', 'displayStyles', 'userBanners', 'smilies', 'bbCode', 'threadPrefixes', 'userTitleLadder', 'reportCounts', 'moderationCounts', 'userModerationCounts', 'notices', 'userFieldsInfo')
Run Time: 0.000471
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_data_registry | range | PRIMARY | PRIMARY | 27 | | 26 | Using where |
SELECT data_key, data_value
FROM xf_data_registry
WHERE data_key IN ('brListenerClasses', 'brBriviumAddOns')
Run Time: 0.000161
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_data_registry | range | PRIMARY | PRIMARY | 27 | | 2 | Using where |
SELECT *
FROM xf_brivium_addon
ORDER BY addon_id
Run Time: 0.000142
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_brivium_addon | index | | PRIMARY | 77 | | 1 | |
INSERT INTO xf_data_registry
(data_key, data_value)
VALUES
(?, ?)
ON DUPLICATE KEY UPDATE
data_value = VALUES(data_value)
Params: brBriviumAddOns, a:0:{}
Run Time: 0.000133
SELECT cache_value
FROM xf_permission_combination
WHERE permission_combination_id = ?
Params: 1
Run Time: 0.000149
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | xf_permission_combination | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SELECT thread.*
,
user.gender, user.avatar_date, user.gravatar,
NULL AS thread_read_date,
0 AS thread_reply_banned,
0 AS thread_is_watched,
'' AS draft_message, NULL AS draft_extra
FROM xf_thread AS thread
LEFT JOIN xf_user AS user ON
(user.user_id = thread.user_id)
WHERE thread.thread_id = ?
Params: 317983
Run Time: 0.000454
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | thread | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | user | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SELECT node.*, forum.*
,
permission.cache_value AS node_permission_cache,
NULL AS forum_read_date
FROM xf_forum AS forum
INNER JOIN xf_node AS node ON (node.node_id = forum.node_id)
LEFT JOIN xf_permission_cache_content AS permission
ON (permission.permission_combination_id = 1
AND permission.content_type = 'node'
AND permission.content_id = forum.node_id)
WHERE node.node_id = ?
Params: 25
Run Time: 0.000397
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | forum | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | node | const | PRIMARY | PRIMARY | 4 | const | 1 | |
SIMPLE | permission | const | PRIMARY | PRIMARY | 35 | const,const,const | 1 | |
SELECT post.*
,
thread.*, thread.user_id AS thread_user_id, thread.username AS thread_username,
thread.post_date AS thread_post_date,
post.user_id, post.username, post.post_date,
bb_code_parse_cache.parse_tree AS message_parsed, bb_code_parse_cache.cache_version AS message_cache_version,
user.*, IF(user.username IS NULL, post.username, user.username) AS username,
user_profile.*,
user_privacy.*,
signature_parse_cache.parse_tree AS signature_parsed, bb_code_parse_cache.cache_version AS signature_cache_version,
session_activity.view_date AS last_view_date,
0 AS like_date
FROM xf_post AS post
INNER JOIN xf_thread AS thread ON
(thread.thread_id = post.thread_id)
LEFT JOIN xf_bb_code_parse_cache AS bb_code_parse_cache ON
(bb_code_parse_cache.content_type = 'post' AND bb_code_parse_cache.content_id = post.post_id)
LEFT JOIN xf_user AS user ON
(user.user_id = post.user_id)
LEFT JOIN xf_user_profile AS user_profile ON
(user_profile.user_id = post.user_id)
LEFT JOIN xf_user_privacy AS user_privacy ON
(user_privacy.user_id = post.user_id)
LEFT JOIN xf_bb_code_parse_cache AS signature_parse_cache ON
(signature_parse_cache.content_type = 'signature' AND signature_parse_cache.content_id = post.user_id)
LEFT JOIN xf_session_activity AS session_activity ON
(post.user_id > 0 AND session_activity.user_id = post.user_id AND session_activity.unique_key = CAST(post.user_id AS BINARY))
WHERE (
(post.thread_id = ? AND (post.position >= 0 AND post.position < 10) )
)
AND (post.message_state IN ('visible'))
ORDER BY post.position ASC, post.post_date ASC
Params: 317983
Run Time: 0.020017
Select Type | Table | Type | Possible Keys | Key | Key Len | Ref | Rows | Extra |
---|
SIMPLE | thread | const | PRIMARY | PRIMARY | 4 | const | 1 | Using filesort |
SIMPLE | post | ref | thread_id_post_date,thread_id_position | thread_id_post_date | 4 | const | 1 | Using index condition; Using where |
SIMPLE | bb_code_parse_cache | eq_ref | content_type_id | content_type_id | 31 | const,xenforo.cc.post.post_id | 1 | Using where |
SIMPLE | user | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | user_profile | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | user_privacy | eq_ref | PRIMARY | PRIMARY | 4 | xenforo.cc.post.user_id | 1 | |
SIMPLE | signature_parse_cache | eq_ref | content_type_id | content_type_id | 31 | const,xenforo.cc.post.user_id | 1 | Using where |
SIMPLE | session_activity | eq_ref | PRIMARY | PRIMARY | 22 | xenforo.cc.post.user_id,func | 1 | Using where |
INSERT INTO xf_thread_view
(thread_id)
VALUES
(?)
Params: 317983
Run Time: 0.000089
INSERT INTO `xf_session` (`session_id`, `session_data`, `expiry_date`) VALUES (?, ?, ?)
Params: 47e6f2425a075bb33bf2114e604bc466, , 1715202324
Run Time: 0.023197
INSERT INTO xf_session_activity
(user_id, unique_key, ip, controller_name, controller_action, view_state, params, view_date, robot_key)
VALUES
(?, ?, ?, ?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
ip = VALUES(ip),
controller_name = VALUES(controller_name),
controller_action = VALUES(controller_action),
view_state = VALUES(view_state),
params = VALUES(params),
view_date = VALUES(view_date),
robot_key = VALUES(robot_key)
Params: 0, , , XenForo_ControllerPublic_Thread, Index, valid, thread_id=317983, 1715198724,
Run Time: 0.000108
INSERT INTO xf_bb_code_parse_cache
(content_type, content_id, parse_tree, cache_version, cache_date)
VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE parse_tree = VALUES(parse_tree),
cache_version = VALUES(cache_version),
cache_date = VALUES(cache_date)
Params: post, 324611, a:29:{i:0;s:837:"6月1日晚间,上交所网站披露中芯国际招股说明书,已受理科创板上市申请,中芯国际有望成为首家已在境外上市的红筹回 A 企业。作为国内最大的晶圆代工商,中芯国际可以算是科技行业中的明星股了,尤其是在大的国际背景下。
此前中芯国际发布回归科创板时,虎嗅已经发表过一篇剖析这家公司的长文,这篇文章,我们主要翻一翻这份 200 多页的招股书,看看其中有哪些值得关注的细节。
注:下文的报告期是指 2017、2018、2019 三个财年。
关于财务
此次中芯国际登陆科创板,拟发行不超过 16.86 亿股(行使超额配售选择权之前),占发行后总股本不超过 25%,募集资金总额 200 亿元。
200 亿元,在科创板已经算很高了,已经";i:1;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:80:"超过此前中国通号的 105 亿元,创下了科创板融资的新纪录。";}}i:2;s:2:"
";i:3;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:66:"https://static.cnbetacdn.com/article/2020/0603/b8f7b5567e27ade.png";s:8:"original";a:2:{i:0;s:74:"[URL='https://static.cnbetacdn.com/article/2020/0603/b8f7b5567e27ade.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2020/0603/b8f7b5567e27ade.png";}}}}i:4;s:767:"
招股书披露,这 200 亿元,40% 会用于12英寸芯片SN1项目,承载 SN1 项目的主体是中芯南方,成立于 2016 年 12 月,是中国大陆第一条 FinFET 工艺生产线,规划月产能 3.5 万片/,已建设月产能 6000 片。招股书提到,截至 2019 年 12 月 31 日,中芯南方仍处于开办期,其运营的 12 英寸先进制程产线处于试生产阶段。融来的钱,就是填补这个研发的窟窿的。
此次融资的 40% 用于补充流动资金,主要是为了改善公司资本结构,提高抗风险能力,中芯由于研发投入较大,短期内的偿债压力也不断增大,需要公司需逐步优化负债结构,降低短期负债比重。
还有一些其他有意思的财务数据:
";i:5;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:69:"目前中芯国际并无控股股东和实际控制人,股权分散";}}i:6;s:361:",任何单一股东持股比例均低于 30.00%,董事会现有 14 位董事,各股东提名的董事人数均低于董事总人数的二分之一。中芯提到,公司股权相对分散,使得公司未来有可能成为被收购对象,进而导致公司控制权发生变化,可能会给公司业务发展和经营管理等带来一定影响。
";i:7;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:66:"https://static.cnbetacdn.com/article/2020/0603/a158ccd958cc3be.png";s:8:"original";a:2:{i:0;s:74:"[URL='https://static.cnbetacdn.com/article/2020/0603/a158ccd958cc3be.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2020/0603/a158ccd958cc3be.png";}}}}i:8;s:1187:"
中芯国际在境内共有 17 家控股的子公司,负责主营业务的有中芯上海 中芯北京 中芯天津、中芯深圳、中芯北方、中芯南方六家,其中 2019 年后面三家都是亏损的;海外控股的子公司有 20 家,大多数为持股平台和区域销售。
中芯各个子公司中芯上海、中芯天津、中芯北京、中芯北方等都具备高新技术企业资格,享受高新技术企业 15%的企业所得税优惠税率,报告期内,税收优惠政策对公司各期的所得税减免额分别为 5.99 亿万元 及 6.55 亿元及 6.74 亿元。
2019 年末,中芯国际还有 26 亿多的款项没收回来,报告期各期,公司应收账款周转率分别为 7.16、8.25 及 7.05。
董事、高级管理人员及核心技术人员的薪酬情况,可以看到,2019 年高管们的薪酬总计、占当期利润总额的比例都有明显的下滑,这也很好理解,2019 年中芯国际开始加码新制程研发,加大投入后就需要砍掉一些支出。不过到了核心管理层这个位置,收入就是和公司前景息息相关了,少挣工资押未来,长远来看肯定是更科学的。
";i:9;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:66:"https://static.cnbetacdn.com/article/2020/0603/f1d5c8915f323a2.png";s:8:"original";a:2:{i:0;s:74:"[URL='https://static.cnbetacdn.com/article/2020/0603/f1d5c8915f323a2.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2020/0603/f1d5c8915f323a2.png";}}}}i:10;s:713:"
关于技术与研发
招股书显示,中芯国际 93% 以上的收入来自于晶圆代工,代工技术如何,依然是衡量中芯业务水平的核心指标,而衡量代工水平的,自然就是键技术节点的量产能力了。
就这一点,中芯国际在招股书中还是比较诚恳的,明确提到“在先进工艺线宽这一关键指标上,中国大陆 企业在生产设备和技术人才等方面与业界龙头企业还存在一定差距”,同时高端专业技术人才不足、资金实力不足。
具体来说,中芯国际在 2015 年推出 28nm,行业老大台积电则是 2011 年;中芯国际 2019 年试产 14nm,台积电 2016 年上线 10nm……总之,";i:11;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:48:"和台积电比至少还有三五年的差距。";}}i:12;s:2:"
";i:13;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:66:"https://static.cnbetacdn.com/article/2020/0603/1fdcd2e1a63a051.png";s:8:"original";a:2:{i:0;s:74:"[URL='https://static.cnbetacdn.com/article/2020/0603/1fdcd2e1a63a051.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2020/0603/1fdcd2e1a63a051.png";}}}}i:14;s:348:"
好消息是,从这张表里你也能看出,具备 14nm 及以下能力的厂商还真不多,格罗方德和联华电子已经停止继续投入了。
制程收入来源方面,先进制程(14及28nm)仍不是营收主力,一年只有 8 亿左右的收入;收入最高的制程是 150 和 180 nm,也是相对成熟的工艺。
";i:15;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:66:"https://static.cnbetacdn.com/article/2020/0603/1b1767477099ae2.png";s:8:"original";a:2:{i:0;s:74:"[URL='https://static.cnbetacdn.com/article/2020/0603/1b1767477099ae2.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2020/0603/1b1767477099ae2.png";}}}}i:16;s:334:"
不过在国内,中芯是技术最先进、覆盖技术节点最广的晶圆代工企业之一,除了晶圆代工以外,还有中国大陆最先进的 24 纳米 NAND、40 纳米高性能图像传感器等工艺。
在研发投入上,中芯国际比较下本,报告期内,中芯国际的研发投入比例稳步提升,";i:17;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:112:"分别为 35.8亿元、44.7 亿元及 47.4 亿元,占营业收入的比例分 别为 16.72%、19.42%及 21.55%";}}i:18;s:110:",在主流的晶圆代工商中,中芯的研发投入比例也是最高的,而且比例领先很多。
";i:19;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:66:"https://static.cnbetacdn.com/article/2020/0603/f644eb3fbfa36fe.png";s:8:"original";a:2:{i:0;s:74:"[URL='https://static.cnbetacdn.com/article/2020/0603/f644eb3fbfa36fe.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2020/0603/f644eb3fbfa36fe.png";}}}}i:20;s:392:"
中芯的研发投入基本上稳居第二,和台积电比还是差距比较大,毕竟营收差距在那里摆着。
不过提高研发投入,就带来了毛利率下降的问题,报告期各期,公司综合毛利率分别为 24.76%、23.02%及 20.83%。
中芯的研发费用主要包括折旧费用、研究测试费用、职工薪酬费用等,其中折旧费用占大头,";i:21;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:39:"2019 年折旧费用超过了 14 亿,";}}i:22;s:428:"主要是因为先进制程的投入需要购置部分单价较高的机器设备,使得折旧费用逐年增加;研究测试费用 2019 年也超过了 13 亿,其中绝大多数是试片费(也就是流片的过程)。
研发人员方面,截至 2019 年 12 月 31 日,中芯国际共有员工 15795 人,其中研发人员 2530 名 ,占公司人数的 16%,公司内硕士及博士人员占比为 20.52%。
";i:23;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:66:"https://static.cnbetacdn.com/article/2020/0603/e6bb7a556c1b6aa.png";s:8:"original";a:2:{i:0;s:74:"[URL='https://static.cnbetacdn.com/article/2020/0603/e6bb7a556c1b6aa.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2020/0603/e6bb7a556c1b6aa.png";}}}}i:24;s:1438:"
招股书也披露了中芯国际目前在研项目的情况,主要在研项目有 12 个,包括先进和成熟工艺制程、特色工艺制程的现有项目升级工作和新产品研发项目。其中值得关注的就是“N+1 工艺技术研发”,也就是下一代制程工艺,这个项目参与研发人员数量为 300 人,目前已经进入客户导入阶段。
除了制程以外,中芯也提到产能是必须着手解决的问题:
报告期各期,公司的年产能(约当 8 英寸)分别为 5289113 片、5393219 片及 5482475 片,尚需进一步提升产能,以抓住市场关键机遇。
关于贸易摩擦与华为
对于眼下的风险以及不确定性,中芯国际也在招股书中进行了详细的披露。
研发投入高、市场不确定、技术面临竞争等等都是老生常谈,这也是所有上游科技公司都要面对的,我们重点关注一下贸易摩擦,以及美国禁令的影响。
在风险一栏,中芯国际列出了美国出口管制政策调整的风险、美国出口管制政策调整的风险、原材料和设备供应的风险等多项和美国或多或少存在关联的风险,美国也是整份财报中除了中国以外出现频率最高的公司。
好消息是,营收层面中芯国际对于美国的依赖在降低。报告期内,其中来自美国的主营业务收入占比分别为 40.01%、31.61%及 26.36%,逐年降低。
";i:25;a:4:{s:3:"tag";s:3:"url";s:6:"option";s:66:"https://static.cnbetacdn.com/article/2020/0603/6b7fb722227479e.png";s:8:"original";a:2:{i:0;s:74:"[URL='https://static.cnbetacdn.com/article/2020/0603/6b7fb722227479e.png']";i:1;s:6:"[/URL]";}s:8:"children";a:1:{i:0;a:4:{s:3:"tag";s:3:"img";s:6:"option";N;s:8:"original";a:2:{i:0;s:5:"[IMG]";i:1;s:6:"[/IMG]";}s:8:"children";a:1:{i:0;s:96:"https://rdimg.com/proxy/https://static.cnbetacdn.com/thumb/article/2020/0603/6b7fb722227479e.png";}}}}i:26;s:953:"
坏消息是,中芯国际的上游依然依赖美国的技术与设备,这使得它也会收到美国的钳制。
提到中芯国际,不得不提的一家公司就是华为。对于与华为合作关系的前景,中芯国际招股书中,其实已经有了暗示。
招股书中,中芯国际提到:
中芯国际表示,目前,经济全球化遭遇波折,多边主义受到冲击,国际金融市场震荡,特别是中美经贸摩擦给一些企业的生产经营、市场预期带来不利影响。公司坚持国际化运营,自觉遵守生产经营活动所涉及相关国家和地区的法律、法规,自成立以来合规运营,依法开展生产经营活动。
2019年5月,美国商务部将若干中国公司列入“实体名单”;2020年5月,美国商务部修订直接产品规则(Foreign-Produced Direct Product Rule),据此修订后的规则,若干自美国进口的半导体设备与技术,";i:27;a:4:{s:3:"tag";s:1:"b";s:6:"option";N;s:8:"original";a:2:{i:0;s:3:"[B]";i:1;s:4:"[/B]";}s:8:"children";a:1:{i:0;s:108:"在获得美国商务部行政许可之前,可能无法用于为若干客户的产品进行生产制造。";}}i:28;s:1490:"
第一段的意思是“我必须得遵守相关的法律法规”,第二段的意思是“这些法律法规可能会让我没法跟某些厂商合作”。说得比较隐晦,但意思也很明白了,由于美国在半导体行业的强势地位(专利、设备、市场多方面),他制定出来的规则即便是“恶法”,行业内的公司也没办法。
不过,中芯也留了余地,写道:“上述修订的规则中,仍然有许多不确定的法律概念,其具体影响的程度,目前尚未能准确评估。”
贸易摩擦显然会对中芯国际造成相当明显的影响。中芯国际总结为:“未来,如果相关国家与中国的贸易摩擦持续升级,限制进出口或提高关税, 公司可能面临设备、原材料短缺和客户流失等风险,进而导致公司生产受限、订单减少、成本增加,对公司的业务和经营产生不利影响 ”。
另外,中芯国际提及了客户集中度较高的风险,来源于前五大客户的收入占当期营业收入总额的比例分别为 50.45%、45.22%及 43.21%,招股书中中芯承认,集中度在报告期内有所下降,但仍处于较高水平,如果未来主要客户的生产经营发生重大问题,将对公司的业绩稳定性和持续盈利能力产生不利影响。
华为,自然是中芯国际重要的客户之一了,无论贸易摩擦最终如何收场,中芯与华为,这俩家公司的命运都将休戚相关。";}, 1621686945, 1715198724
Run Time: 0.025256