From 10fb1e0896dd3780e3269cc36e431ca9635c96f9 Mon Sep 17 00:00:00 2001 From: joey Date: Sun, 22 Mar 2026 13:39:38 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E8=A7=A3=E6=9E=90=E6=96=B0=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../process_income_statement.cpython-310.pyc | Bin 6297 -> 12481 bytes aa.html | 0 config.json | 2 +- config/宁德时代/balance_sheet_categories.json | 100 +++++++ config/宁德时代/cash_flow_config.json | 11 + config/宁德时代/income_statement_config.json | 11 + .../宁德时代_利润表_合并报表_20260310_204138.csv | 101 ++++++++ ...德时代_现金流量表_合并报表_20260310_204148.csv | 25 ++ ...德时代_资产负债表_合并报表_20260310_204128.csv | 169 ++++++++++++ main.py | 37 ++- output/宁德时代20260310_204128.xlsx | Bin 0 -> 52155 bytes output/泡泡玛特20260209_220656.xlsx | Bin 24760 -> 18555 bytes process_income_statement.py | 245 +++++++++++++++++- 13 files changed, 689 insertions(+), 12 deletions(-) create mode 100644 aa.html create mode 100644 config/宁德时代/balance_sheet_categories.json create mode 100644 config/宁德时代/cash_flow_config.json create mode 100644 config/宁德时代/income_statement_config.json create mode 100644 input/宁德时代/宁德时代_利润表_合并报表_20260310_204138.csv create mode 100644 input/宁德时代/宁德时代_现金流量表_合并报表_20260310_204148.csv create mode 100644 input/宁德时代/宁德时代_资产负债表_合并报表_20260310_204128.csv create mode 100644 output/宁德时代20260310_204128.xlsx diff --git a/__pycache__/process_income_statement.cpython-310.pyc b/__pycache__/process_income_statement.cpython-310.pyc index ee76b6899a9cfe204b0244948b2f295a0a547d47..eb2a451b61249da9652e719e014903c8f9c0abf9 100644 GIT binary patch delta 6828 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 Qv@P0RtyX&x8|gRy4S6n|LI3~& delta 675 zcmXw0O=uHA6yC|~ZYP^G{f$=qE7+t7YSJoILDG{}Pue1i6=B)zPSYiu+4y$WlpflH zR}tzQL=eP-2;L+IFG3MKi|0A26ujtN5S>|YhIzdCzVH3an~&b}#Zo*v>KJNum;LZt zWv_G$?d+ZI&d{-7x|@R*Ej==j5#(-Vr(S;d`KeV(u?qP0;jzTbW1(R7SJV(|BSX8Y zaF`bkanaK7$?PB0#;%kS0?@kY>VZPv(F^U4uAD+c2*+>)KSs ze&Y^W5r>+U6S^gtZ+i)KbtG(R!Ceg^3SHIM)QH*hLiWQDNppKV)eLc64Y_W8T>NRa u%K8hk|AXwoS&dZq3k!3ziZOE}PY^*xL@*g4qiUZg6J(tnA-5f5{{08b&BrVN diff --git a/aa.html b/aa.html new file mode 100644 index 0000000..e69de29 diff --git a/config.json b/config.json index d3206a2..b9fd9b2 100644 --- a/config.json +++ b/config.json @@ -1,3 +1,3 @@ { - "company": "泡泡玛特" + "company": "宁德时代" } diff --git a/config/宁德时代/balance_sheet_categories.json b/config/宁德时代/balance_sheet_categories.json new file mode 100644 index 0000000..c192979 --- /dev/null +++ b/config/宁德时代/balance_sheet_categories.json @@ -0,0 +1,100 @@ +{ + "categories": [ + { + "name": "资产总计", + "items": ["一、资产总计"] + }, + { + "name": "所有者权益合计", + "items": ["三、所有者权益合计"] + }, + { + "name": "负债合计", + "items": ["二、负债合计"] + }, + { + "name": "类现金", + "items": [ + "货币资金", + "交易性金融资产", + "衍生金融资产(流动)", + "应收票据及应收账款", + "(其中)应收票据", + "应收款项融资" + ] + }, + { + "name": "应收账款", + "items": [ + "(其中)应收账款", + "其他应收款", + "合同资产", + "长期应收款", + "一年内到期的非流动资产" + ] + }, + { + "name": "投资资产", + "items": [ + "可供出售金融资产(非流动)", + "长期股权投资", + "其他权益工具投资", + "其他非流动金融资产", + "发放贷款及垫款(非流动)", + "债权投资", + "其他债权投资", + "投资性房地产", + "其他流动资产", + "其他非流动资产" + ] + }, + { + "name": "经营类资产", + "items": [ + "存货", + "持有待售资产", + "固定资产", + "在建工程", + "使用权资产", + "无形资产", + "商誉", + "预付款项", + "长期待摊费用", + "递延所得税资产" + ] + }, + { + "name": "有息负债", + "items": [ + "短期借款", + "交易性金融负债", + "衍生金融负债", + "长期借款", + "应付债券", + "一年内到期的非流动负债", + "向中央银行借款", + "卖出回购金融资产" + ] + }, + { + "name": "经营性负债", + "items": [ + "应付票据及应付账款", + "预收账款", + "合同负债", + "应付职工薪酬", + "应交税费", + "其他应付款", + "其他流动负债", + "租赁负债", + "长期应付款", + "预计负债(非流动)", + "长期递延收益", + "递延所得税负债", + "其他非流动负债", + "吸收存款及同业存放", + "长期应付职工薪酬" + ] + } + ] +} diff --git a/config/宁德时代/cash_flow_config.json b/config/宁德时代/cash_flow_config.json new file mode 100644 index 0000000..1bd0e90 --- /dev/null +++ b/config/宁德时代/cash_flow_config.json @@ -0,0 +1,11 @@ +{ + "columns_to_keep": [ + "经营活动产生的现金流量净额", + "投资活动产生的现金流量净额", + "筹资活动产生的现金流量净额", + "现金及现金等价物的净增加额", + "期初现金及现金等价物的余额", + "汇率变动对现金及现金等价物的影响", + "期末现金及现金等价物净余额" + ] +} diff --git a/config/宁德时代/income_statement_config.json b/config/宁德时代/income_statement_config.json new file mode 100644 index 0000000..145ec01 --- /dev/null +++ b/config/宁德时代/income_statement_config.json @@ -0,0 +1,11 @@ +{ + "rows_to_delete": [ + "股票代码", + "上市公司", + "财报类型", + "货币", + "审计意见", + "会计师事务所", + "数据来源于:理杏仁网站(lixinger.com)" + ] +} diff --git a/input/宁德时代/宁德时代_利润表_合并报表_20260310_204138.csv b/input/宁德时代/宁德时代_利润表_合并报表_20260310_204138.csv new file mode 100644 index 0000000..4192229 --- /dev/null +++ b/input/宁德时代/宁德时代_利润表_合并报表_20260310_204138.csv @@ -0,0 +1,101 @@ +财报类型,股票代码,上市公司,年报,三季报,中报,一季报,年报,三季报,中报,一季报,年报,三季报,中报,一季报,年报,三季报,中报,一季报,年报,三季报,中报,一季报 +日期,="300750",="宁德时代",2025-12-31,2025-09-30,2025-06-30,2025-03-31,2024-12-31,2024-09-30,2024-06-30,2024-03-31,2023-12-31,2023-09-30,2023-06-30,2023-03-31,2022-12-31,2022-09-30,2022-06-30,2022-03-31,2021-12-31,2021-09-30,2021-06-30,2021-03-31 +货币,="300750",="宁德时代",元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元 +审计意见,="300750",="宁德时代",无保留意见,,,,无保留意见,,,,无保留意见,,,,无保留意见,,,,无保留意见,,, +会计师事务所,="300750",="宁德时代",致同会计师事务所(特殊普通合伙),,,,致同会计师事务所(特殊普通合伙),,,,致同会计师事务所(特殊普通合伙),,,,致同会计师事务所(特殊普通合伙),,,,致同会计师事务所(特殊普通合伙),,, +一、营业总收入,="300750",="宁德时代",=423701834000,=283071987000,=178886253000,=84704589000,=362012554000,=259044748600,=166766833600,=79770778618,=400917044900,=294677250596,=189246041326,=89038465300,=328593987500,=210340240501,=112971257933,=48678419100,=130355796360,=73361545522,=44074560629,=19166685224 +营业收入,="300750",="宁德时代",=423701834000,=283071987000,=178886253000,=84704589000,=362012554000,=259044748600,=166766833600,=79770778618,=400917044900,=294677250596,=189246041326,=89038465300,=328593987500,=210340240501,=112971257933,=48678419100,=130355796360,=73361545522,=44074560629,=19166685224 +利息收入,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +已赚保费,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +手续费及佣金收入,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +其他业务收入,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +二、营业总成本,="300750",="宁德时代",=344824196000,=231962490000,=146391166000,=70591547000,=303303900000,=215471465100,=142296780300,=69616456204,=350610617500,=261382893270,=166847523558,=79328835300,=293745632000,=191278982954,=103727259499,=47132951600,=111367290556,=62463873067,=37698589914,=16436779072 +营业成本,="300750",="宁德时代",=312383297000,=211427147000,=134123603000,=64030111000,=273518959000,=186032900900,=122517848800,=58698906288,=309070434000,=230096038144,=148305934072,=70101011700,=262049609200,=170480855382,=91873351240,=41627574200,=96093722296,=53179031935,=32061735307,=13938104774 +毛利率(GM),="300750",="宁德时代",=0.2627,=0.2531,=0.2502,=0.2441,=0.2444,=0.2819,=0.2653,=0.2642,=0.2291,=0.2192,=0.2163,=0.2127,=0.2025,=0.1895,=0.1868,=0.1448,=0.2628,=0.2751,=0.2726,=0.2728 +利息支出,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +手续费及佣金支出,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +退保金,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +保险合同赔付支出,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +提取保险责任准备金净额,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +保单红利支出,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +分保费用,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +税金及附加,="300750",="宁德时代",=2832322000,=1843066000,=1245850000,=559098000,=2057466000,=1557473800,=973678300,=574391224,=1695507700,=1105082941,=638811868,=274706600,=907484500,=568940778,=325839292,=158282700,=486534168,=333383540,=247186342,=108324544 +销售费用,="300750",="宁德时代",=3735118000,=2408522000,=1621425000,=852316000,=3562797000,=10927707300,=7004983100,=3386939854,=17954440500,=10222106935,=6699756653,=2916572500,=11099401200,=7023199785,=3467585157,=1533477100,=4367869424,=2628002722,=1593220858,=691753897 +管理费用,="300750",="宁德时代",=11666741000,=8231715000,=5127530000,=2623930000,=9689839000,=6774455800,=4391272500,=2303072519,=8461824300,=6917820788,=4512280547,=1851067100,=6978669400,=4471553717,=2650226061,=1245955100,=3368937083,=2226934204,=1425297189,=717159236 +研发费用,="300750",="宁德时代",=22146581000,=15067826000,=10094566000,=4814003000,=18606756000,=13073136100,=8592452400,=4340204843,=18356108400,=14875734456,=9850086694,=4652229200,=15510453500,=10576516043,=5768093097,=2568036600,=7691427563,=4594923267,=2793753774,=1180785377 +(备注)资本化研发支出,="300750",="宁德时代",,,,,,,,,,,,,,,,,,,, +(备注)资本化研发支出占比,="300750",="宁德时代",,,,,,,,,,,,,,,,,,,, +财务费用,="300750",="宁德时代",=-7939863000,=-7015786000,=-5821810000,=-2287911000,=-4131918000,=-2894208700,=-1183454700,=312941476,=-4927697400,=-1833889993,=-3159346275,=-466751900,=-2799985800,=-1842082751,=-357835348,=-374100,=-641199978,=-498402600,=-422603556,=-199348756 +(其中)利息费用,="300750",="宁德时代",=2734017000,=2183477000,=1557999000,=782951000,=3879076000,=2966060400,=2059047700,=1048364486,=3446515800,=2317681186,=1450307688,=694811000,=2132375400,=1613622824,=1046506016,=488026200,=1161100416,=721680591,=452359068,=216287145 +(其中)利息收入,="300750",="宁德时代",=10594657000,=8060682000,=5125146000,=2384036000,=9502997000,=7126535700,=5009250600,=2632483749,=8321802100,=5683966750,=3627578245,=1723865300,=3987365200,=2602105104,=1440320970,=661516300,=2323262019,=1566751972,=1070188235,=512078908 +销售费用率,="300750",="宁德时代",=0.0088,=0.0085,=0.0091,=0.0101,=0.0098,=0.0422,=0.0420,=0.0425,=0.0448,=0.0347,=0.0354,=0.0328,=0.0338,=0.0334,=0.0307,=0.0315,=0.0335,=0.0358,=0.0361,=0.0361 +管理费用率,="300750",="宁德时代",=0.0275,=0.0291,=0.0287,=0.0310,=0.0268,=0.0262,=0.0263,=0.0289,=0.0211,=0.0235,=0.0238,=0.0208,=0.0212,=0.0213,=0.0235,=0.0256,=0.0258,=0.0304,=0.0323,=0.0374 +研发费用率,="300750",="宁德时代",=0.0523,=0.0532,=0.0564,=0.0568,=0.0514,=0.0505,=0.0515,=0.0544,=0.0458,=0.0505,=0.0520,=0.0522,=0.0472,=0.0503,=0.0511,=0.0528,=0.0590,=0.0626,=0.0634,=0.0616 +财务费用率,="300750",="宁德时代",=-0.0187,=-0.0248,=-0.0325,=-0.0270,=-0.0114,=-0.0112,=-0.0071,=0.0039,=-0.0123,=-0.0062,=-0.0167,=-0.0052,=-0.0085,=-0.0088,=-0.0032,=-0.0000,=-0.0049,=-0.0068,=-0.0096,=-0.0104 +营业费用率,="300750",="宁德时代",=0.0886,=0.0908,=0.0942,=0.0979,=0.0880,=0.1188,=0.1199,=0.1257,=0.1117,=0.1086,=0.1113,=0.1058,=0.1022,=0.1049,=0.1052,=0.1099,=0.1184,=0.1288,=0.1319,=0.1351 +四项费用率,="300750",="宁德时代",=0.0699,=0.0660,=0.0616,=0.0709,=0.0766,=0.1076,=0.1128,=0.1297,=0.0994,=0.1024,=0.0946,=0.1006,=0.0937,=0.0962,=0.1020,=0.1098,=0.1134,=0.1220,=0.1223,=0.1247 +加:其他收益,="300750",="宁德时代",=10600477000,=7693237000,=6059485000,=3082959000,=9967630000,=6730726300,=5364173600,=3205824473,=6267388000,=4399537552,=3001582595,=1366836000,=3037344800,=1816751973,=1090096938,=457411100,=1673454097,=1145170741,=641625772,=393117497 +投资收益,="300750",="宁德时代",=7970552000,=5236818000,=2875693000,=1339222000,=3987823000,=3127166700,=2076994500,=817635388,=3189201200,=2189770565,=1417699283,=1527471300,=2514538600,=2744662421,=1794546133,=460911700,=1232699042,=122219106,=117184251,=6273485 +(其中)对联营企业及合营企业的投资收益,="300750",="宁德时代",=7353106000,=4943750000,=2981557000,=1469564000,=3743040000,=2712745400,=1916680600,=665871357,=3745762000,=1307678004,=568276699,=587107500,=2614517000,=2996607601,=2019612269,=575976000,=575836874,=289494824,=225874649,=39872868 +(其中)以摊余成本计量的金融资产终止确认产生的投资收益,="300750",="宁德时代",=37696000,=360512000,=-239570000,=-134561000,=396983000,=299553500,=188439900,=68835300,=-636724600,=384360700,=353895400,=0,=-530396900,=-363651900,=-273641000,=-153900600,=328331800,=-239198526,=-140130051,=53660495 +汇兑收益,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +净敞口套期收益,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +公允价值变动收益,="300750",="宁德时代",=974079000,=878537000,=178363000,=25565000,=664223000,=190410200,=-24331900,=-73450424,=46270400,=215302530,=213283437,=112896900,=400241300,=262789144,=215568250,=0,=0,=0,=0,=0 +信用减值损失,="300750",="宁德时代",=418585000,=377141000,=351323000,=131798000,=872526000,=891718100,=429757500,=267716528,=254041400,=248400707,=-221506474,=-376456700,=1146247900,=515233346,=404378148,=21970100,=13301642,=-139653467,=63266617,=66954100 +资产减值损失,="300750",="宁德时代",=8660164000,=4077847000,=2498964000,=1109939000,=8423325000,=6651709400,=1913611600,=507556602,=5853926900,=2848221074,=1903493717,=1092544100,=2826926600,=910439882,=256621037,=-5731600,=2034437798,=1414630588,=754103841,=255909609 +其他资产减值损失,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +资产处置收益,="300750",="宁德时代",=174640000,=89212000,=62178000,=21392000,=19319000,=47590400,=11045900,=3688354,=16983500,=13124234,=8327416,=15940700,=-5322700,=-1143356,=-138579,=8585900,=-23190282,=1510440,=-571920,=-1709 +其他业务成本,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +核心利润,="300750",="宁德时代",=68203758000,=41910234000,=25115280000,=11042180000,=50697661000,=37713014300,=21227550800,=9418899404,=41932214200,=29142786146,=17788863804,=8548067200,=29915994300,=15605551972,=7839657070,=1057067200,=17186205410,=9677589263,=5501008091,=2314270251 +核心利润率,="300750",="宁德时代",=0.1610,=0.1481,=0.1404,=0.1304,=0.1400,=0.1456,=0.1273,=0.1181,=0.1046,=0.0989,=0.0940,=0.0960,=0.0910,=0.0742,=0.0694,=0.0217,=0.1318,=0.1319,=0.1248,=0.1207 +三、营业利润,="300750",="宁德时代",=89518636000,=60552312000,=38820520000,=17340443000,=64051799000,=46125749700,=29554566300,=13332747075,=53718302100,=37015470425,=25357423256,=12016687500,=36821983100,=22458644502,=11683071991,=2456137800,=19823729220,=10891595621,=6316838359,=2806431715 +营业利润率,="300750",="宁德时代",=0.2113,=0.2139,=0.2170,=0.2047,=0.1769,=0.1781,=0.1772,=0.1671,=0.1340,=0.1256,=0.1340,=0.1350,=0.1121,=0.1068,=0.1034,=0.0505,=0.1521,=0.1485,=0.1433,=0.1464 +其他营业利润率,="300750",="宁德时代",=0.0367,=0.0743,=0.0861,=0.1014,=0.0250,=-0.0035,=0.1072,=0.1884,=-0.0062,=0.0652,=0.0943,=0.1431,=-0.0174,=0.0178,=0.0359,=0.1363,=0.0131,=-0.0271,=-0.0451,=0.0131 +加:营业外收入,="300750",="宁德时代",=463520000,=372284000,=168476000,=108032000,=135422000,=142603700,=85083600,=26662965,=503675200,=416987336,=300135534,=174634200,=159426800,=115029960,=79633543,=40882200,=183039705,=68915266,=56962629,=20621617 +(其中)非流动资产毁损报废利得,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +减:营业外支出,="300750",="宁德时代",=455611000,=212195000,=176496000,=73444000,=1005182000,=547867400,=189697800,=159187827,=307924000,=266043398,=188482095,=179823800,=308553600,=246559117,=52931509,=16663900,=119639800,=86822688,=38880638,=31474885 +(其中)非流动资产毁损报废损失,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +四、利润总额,="300750",="宁德时代",=89526545000,=60712402000,=38812500000,=17375031000,=63182039000,=45720486000,=29449952100,=13200222213,=53914053300,=37166414363,=25469076694,=12011497900,=36672856200,=22327115345,=11709774024,=2480356100,=19887129126,=10873688199,=6334920350,=2795578447 +研发费占利润总额比值,="300750",="宁德时代",=0.2474,=0.2482,=0.2601,=0.2771,=0.2945,=0.2859,=0.2918,=0.3288,=0.3405,=0.4002,=0.3867,=0.3873,=0.4229,=0.4737,=0.4926,=1.0353,=0.3868,=0.4226,=0.4410,=0.4224 +息税前净利润(EBIT),="300750",="宁德时代",=81665905000,=54835196000,=35245353000,=15773946000,=57558118000,=41560010700,=26499749200,=11616102950,=49038767000,=33800128799,=23291806138,=10982443600,=34817866400,=21338633065,=11315959070,=2306865900,=18724967523,=10028616818,=5717091183,=2499786683 +息税折旧及摊销前盈利(EBITDA),="300750",="宁德时代",=108602560000,,=47619066000,,=82496046000,,=38722511200,,=71684748800,,=33460137801,,=48070407400,,=16664061265,,=25161591611,,=8445863035, +减:所得税费用,="300750",="宁德时代",=12740236000,=8415535000,=6447053000,=2513397000,=9175245000,=6987230700,=4571096800,=2004579350,=7153018800,=4650152217,=3995875160,=1930890700,=3215712700,=2694951509,=2039812859,=504896900,=2026398991,=1728706696,=1009812061,=451709061 +有效税率,="300750",="宁德时代",=0.1423,=0.1386,=0.1661,=0.1447,=0.1452,=0.1528,=0.1552,=0.1519,=0.1327,=0.1251,=0.1569,=0.1608,=0.0877,=0.1207,=0.1742,=0.2036,=0.1019,=0.1590,=0.1594,=0.1616 +五、净利润,="300750",="宁德时代",=76786309000,=52296866000,=32365447000,=14861634000,=54006794000,=38733255300,=24878855300,=11195642863,=46761034500,=32516262146,=21473201535,=10080607200,=33457143500,=19632163836,=9669961165,=1975459100,=17860730135,=9144981503,=5325108289,=2343869385 +净利润率,="300750",="宁德时代",=0.1812,=0.1847,=0.1809,=0.1755,=0.1492,=0.1495,=0.1492,=0.1403,=0.1166,=0.1103,=0.1135,=0.1132,=0.1018,=0.0933,=0.0856,=0.0406,=0.1370,=0.1247,=0.1208,=0.1223 +(一)持续经营净利润,="300750",="宁德时代",=76786309000,=52296866000,=32365447000,=14861634000,=54006794000,=38733255300,=24878855300,=11195642863,=46761034500,=32516262146,=21473201535,=10080607200,=33457143500,=19632163836,=9669961165,=1975459100,=17860730135,=9144981503,=5325108289,=2343869385 +(二)终止经营净利润,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +归属于母公司股东及其他权益持有者的净利润,="300750",="宁德时代",=72201282000,=49034109000,=30485139000,=13962558000,=50744682000,=36001073800,=22864987400,=10509923207,=44121248300,=31145473555,=20717264497,=9822265100,=30729163500,=17591591705,=8168034648,=1492804600,=15931317852,=7751145659,=4483787564,=1954417237 +归属于母公司普通股股东的净利润,="300750",="宁德时代",=72201282000,=49034109000,=30485139000,=13962558000,=50744682000,=36001073800,=22864987400,=10509923207,=44121248300,=31145473555,=20717264497,=9822265100,=30729163500,=17591591705,=8168034648,=1492804600,=15931317852,=7751145659,=4483787564,=1954417237 +少数股东损益,="300750",="宁德时代",=4585027000,=3262757000,=1880308000,=899076000,=3262113000,=2732181500,=2013867900,=685719655,=2639786100,=1370788591,=755937038,=258342100,=2727980100,=2040572131,=1501926517,=482654500,=1929412282,=1393835845,=841320725,=389452149 +归属于母公司普通股股东的扣除非经常性损益的净利润,="300750",="宁德时代",=64507864000,=43619225000,=27197468000,=11829172000,=44992919000,=32176410900,=20053941100,=9247438737,=40091673700,=26981002000,=17552996717,=7800056700,=28213098200,=16038385174,=7051287004,=977020300,=13442364329,=6603594577,=3918495143,=1672086096 +扣非净利润占比,="300750",="宁德时代",=0.8934,=0.8896,=0.8922,=0.8472,=0.8867,=0.8938,=0.8771,=0.8799,=0.9087,=0.8663,=0.8473,=0.7941,=0.9181,=0.9117,=0.8633,=0.6545,=0.8438,=0.8520,=0.8739,=0.8555 +归属于母公司普通股股东的加权ROE,="300750",="宁德时代",=0.2491,=0.1776,=0.1163,=0.0549,=0.2413,=0.1773,=0.1139,=0.0518,=0.2404,=0.1825,=0.1231,=0.0580,=0.2467,=0.1598,=0.0911,=0.0176,=0.2152,=0.1136,=0.0674,=0.0301 +归属于母公司普通股股东的扣非加权ROE,="300750",="宁德时代",=0.2226,,=0.1038,,=0.2139,,=0.0999,,=0.2185,,=0.1043,,=0.2265,,=0.0787,,=0.1816,,=0.0589, +六、基本每股收益,="300750",="宁德时代",=16.1400,=11.0200,=6.9200,=3.1800,=11.5800,=8.1894,=5.2017,=2.3909,=11.7900,=7.0958,=4.7201,=4.0332,=12.9178,=7.4704,=3.5233,=0.6439,=6.8760,=3.3464,=1.9416,=0.8463 +稀释每股收益,="300750",="宁德时代",=16.1400,=11.0200,=6.9200,=3.1800,=11.5800,=8.1829,=5.1975,=2.3890,=11.7790,=7.0844,=4.7125,=4.0215,=12.8795,=7.4317,=3.5047,=0.6405,=6.8392,=3.3323,=1.9337,=0.8430 +七、综合收益总额,="300750",="宁德时代",=84006523000,=59752104000,=33742358000,=15476084000,=52319181000,=38165248000,=22942055800,=10966596830,=42049175500,=29557811550,=19664555849,=7168835500,=38503654000,=23487525630,=11357617904,=412958800,=20874717367,=10351999341,=6149362729,=2108840294 +归属于母公司股东及其他权益持有者的综合收益总额,="300750",="宁德时代",=79451151000,=56472049000,=31804164000,=14508266000,=48940398000,=35252110200,=20773319800,=10105445070,=39568104200,=28154741802,=18925205805,=6849115100,=35452143600,=21208643369,=10001392667,=574861600,=19012644750,=8902714770,=5309066568,=1718302000 +归属于母公司普通股股东的综合收益总额,="300750",="宁德时代",=79451151000,=56472049000,=31804164000,=14508266000,=48940398000,=35252110200,=20773319800,=10105445070,=39568104200,=28154741802,=18925205805,=6849115100,=35452143600,=21208643369,=10001392667,=574861600,=19012644750,=8902714770,=5309066568,=1718302000 +归属于少数股东的综合收益总额,,,=4555372000,=3280055000,=1938194000,=967818000,=3378782000,=2913137800,=2168736000,=861151760,=2481071300,=1403069748,=739350044,=319720400,=3051510400,=2278882261,=1356225237,=-161902800,=1862072618,=1449284571,=840296161,=390538295 +其他综合收益的税后净额,="300750",="宁德时代",=7220214000,=7455238000,=1376911000,=614450000,=-1687613000,=-568007300,=-1936799500,=-229046033,=-4711859000,=-2958450596,=-1808645686,=-2911771700,=5046510500,=3855361794,=1687656739,=-1562500300,=3013987232,=1207017838,=824254440,=-235029091 +区域收入,="300750",="宁德时代",,,,,,,,,,,,,,,,,,,, +境内收入,="300750",="宁德时代",=294060576000,,=117677899000,,=251677045000,,=116237916600,,=269924895000,,=180085600300,,=251670827300,,=105018158200,,=102483758600,,=33874088048.0200, +境内营业成本,="300750",="宁德时代",=223497885000,,=90680806000,,=195678188000,,=86972391100,,=211078991800,,=143590180400,,=201634588500,,=89652675200,,=76716179200,,=25369656255.9100, +境内收入占比,="300750",="宁德时代",=0.6940,,=0.6578,,=0.6952,,=0.6970,,=0.6733,,=0.9516,,=0.7659,,=0.9296,,=0.7862,,=0.7686, +境内毛利率,="300750",="宁德时代",=0.2400,,=0.2294,,=0.2225,,=0.2518,,=0.2180,,=0.2027,,=0.1988,,=0.1463,,=0.2514,,=0.2511, +海外收入,="300750",="宁德时代",=129641258000,,=61208354000,,=110335509000,,=50528917100,,=130992149900,,=0,,=76923160300,,=0,,=27872037800,,=10200472581.1400, +海外营业成本,="300750",="宁德时代",=88885412000,,=43442797000,,=77840771000,,=35545457700,,=97991442200,,,,=60415020700,,,,=19377543100,,=6692079050.9100, +海外收入占比,,,=0.3060,,=0.3422,,=0.3048,,=0.3030,,=0.3267,,=0,,=0.2341,,=0,,=0.2138,,=0.2314, +海外毛利率,="300750",="宁德时代",=0.3144,,=0.2902,,=0.2945,,=0.2965,,=0.2519,,,,=0.2146,,,,=0.3048,,=0.3439, +分红、融资及涨跌幅,="300750",="宁德时代",,,,,,,,,,,,,,,,,,,, +分红金额,="300750",="宁德时代",=36161808725.0160,,,,=25372441790,,,,=22060006115,,,,=7747949582,,,,=0,,, +分红率,="300750",="宁德时代",=0.5008,,,,=0.5000,,,,=0.5000,,,,=0.2521,,,,=0,,, +A股分红金额,="300750",="宁德时代",=34926396361.0243,,,,=25372441790,,,,=22060006115,,,,=7747949582,,,,=0,,, +A股融资金额,,,=265937008,,,,=600734216,,,,=397553383,,,,=45497947992,,,,=426967845,,, +年度涨跌幅,="300750",="宁德时代",=0.4199,,,,=0.6691,,,,=-0.2481,,,,=-0.3299,,,,=0.6755,,, +客户及供应商,="300750",="宁德时代",,,,,,,,,,,,,,,,,,,, +前五大客户收入占比,,,=0.3896,,,,=0.3703,,,,=0.3678,,,,=0.3533,,,,=0.3132,,, +前五大供应商采购占比,,,=0.1038,,,,=0.1634,,,,=0.2026,,,,=0.2126,,,,=0.1542,,, + +数据来源于:理杏仁网站(lixinger.com) \ No newline at end of file diff --git a/input/宁德时代/宁德时代_现金流量表_合并报表_20260310_204148.csv b/input/宁德时代/宁德时代_现金流量表_合并报表_20260310_204148.csv new file mode 100644 index 0000000..062ea4b --- /dev/null +++ b/input/宁德时代/宁德时代_现金流量表_合并报表_20260310_204148.csv @@ -0,0 +1,25 @@ +财报类型,日期,货币,审计意见,会计师事务所,经营活动产生的现金流量,销售商品、提供劳务收到的现金,发放贷款及垫款的净减少额,客户存款和同业及其他金融机构存放款项净增加额,向中央银行借款净增加额,向其他金融机构拆入资金净增加额,收到原保险合同保费取得的现金,收到再保险业务现金净额,保户储金及投资款净增加额,为交易目的而持有的金融资产净减少额,拆入资金净增加额,卖出回购业务资金净增加额,收取利息、手续费及佣金的现金,代理买卖证券收到的现金净额,收到的税费返还,收到的其他与经营活动有关现金,经营活动现金流入小计,购买商品、接收劳务支付的现金,发放贷款及垫款的净增加额,存放中央银行和同业及其他金融机构款项净增加额,向其他金融机构拆入资金净减少额,支付原保险合同赔付等款项的现金,拆出资金增加额,买入返售金融资产净增加额,支付保单红利的现金,为交易目的而持有的金融资产净增加额,支付利息、手续费及佣金的现金,支付给职工及为职工支付的现金,支付的各种税费,支付的其他与经营活动有关现金,经营活动现金流出小计,经营活动产生的现金流量净额,投资活动产生的现金流量金额,收回投资收到的现金,取得投资收益所收到的现金,处置固定资产、无形资产及其他长期资产收到的现金,处置子公司、合营联营企业及其他营业单位收到的现金净额,(其中)处置子公司或其他营业单位收到的现金净额,(其中)处置合营或联营公司所收到的现金,收到的其他与投资活动相关的现金,投资活动现金流入小计,购建固定资产、无形资产及其他长期资产所支付的现金,投资所支付的现金,质押贷款净增加额,取得子公司、合营联营企业及其他营业单位支付的现金净额,(其中)取得子公司及其营业单位支付的现金净额,(其中)取得联营及合营公司支付的现金净额,支付的其他与投资活动有关的现金,投资活动现金流出小计,投资活动产生的现金流量净额,筹资活动产生的现金流量,吸收投资收到的现金,(其中)子公司吸收少数股东投资收到的现金,取得借款收到的现金,发行债券收到的现金,收到的其他与筹资活动有关的现金,筹资活动产生的现金流入小计,偿付债务支付的现金,分配股利、利润或偿付利息所支付的现金,(其中)子公司支付少数股东股利及利润,支付的其他与筹资活动有关的现金,筹资活动产生的现金流出小计,筹资活动产生的现金流量净额,四、汇率变动对现金及现金等价物的影响,期初现金及现金等价物的余额,现金及现金等价物的净增加额,期末现金及现金等价物净余额,附注,净利润,加:资产减值准备,信用减值损失,固定资产折旧、油气资产折耗、生产性生物资产折旧,投资性房地产的折旧及摊销,使用权资产摊销,无形资产摊销,长期待摊费用摊销,处置固定资产、无形资产和其他长期资产的损失,固定资产报废损失,公允价值变动损失,财务费用,投资损失,递延所得税资产减少,递延所得税负债增加,存货的减少,经营性应收项目的减少,经营性应付项目的增加,其他,一年内到期的可转换公司债券,融资租入固定资产,经营活动产生的现金流量净额 +股票代码,="300750",="300750",,="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",,="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",,="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",,="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750",="300750" +上市公司,="宁德时代",="宁德时代",,="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",,="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",,="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",,="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代",="宁德时代" +年报,2025-12-31,元,无保留意见,致同会计师事务所(特殊普通合伙),,=477796524000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=7688313000,=26383516000,=511868353000,=300381833000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=32789183000,=34458707000,=11018649000,=378648372000,=133219982000,,=5685583000,=2280470000,=211949000,=27411000,=27411000,=0,=98372000,=8303785000,=42344558000,=57533827000,=0,=2053675000,=2053675000,=0,=847516000,=102779575000,=-94475790000,,=44813984000,=6094575000,=39790079000,=0,=1003474000,=85607537000,=51702039000,=34923036000,=2302326000,=5292005000,=91917080000,=-6309543000,=-2664640000,=270159734000,=29770008000,=299929741000,,=76786309000,=8660164000,=418585,=24322780000,=0,=337367000,=512000000,=1764508000,=-174640000,=151291000,=-974079000,=2470751000,=-8429599000,=-7660090000,=1900952000,=-39837988000,=-16911542000,=89965735000,=-82524000,=0,=0,=133219982000 +三季报,2025-09-30,元,,,,=338126567000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=6320906000,=18609171000,=363056644000,=224120825000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=23413386000,=26742749000,=8119254000,=282396214000,=80660430000,,=4443202000,=1942895000,=68109000,=27411000,=27411000,=0,=19691000,=6501309000,=30087780000,=31540210000,=0,=2045273000,=2045273000,=0,=119537000,=63792799000,=-57291490000,,=43272406000,=5488866000,=30597681000,=0,=1125480000,=74995566000,=32237114000,=33558798000,=1714326000,=4923115000,=70719026000,=4276539000,=-621254000,=270159734000,=27024225000,=297183959000,,,,,,,,,,,,,,,,,,,,,,,=80660430000 +中报,2025-06-30,元,,,,=222932355000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=3345011000,=12159654000,=238437020000,=139969893000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=16407674000,=18804676000,=4567711000,=179749954000,=58687066000,,=2026104000,=1797958000,=51763000,=0,=0,=0,=0,=3875825000,=20212919000,=9817644000,=0,=0,=0,=0,=114782000,=30145345000,=-26269519000,,=40470315000,=2781185000,=24037000000,=0,=152625000,=64659939000,=15113934000,=27220080000,=606327000,=1718354000,=44052368000,=20607571000,=600381000,=270159734000,=53625499000,=323785232000,,=32365447000,=2850287000,=0,=11355579000,=0,=105656000,=244874000,=667604000,=-62178000,=91385000,=-178363000,=-774088000,=-2875693000,=-2846420000,=-90990000,=-13622417000,=12126707000,=19114641000,=215036000,=0,=0,=58687066000 +一季报,2025-03-31,元,,,,=111139836000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=1395114000,=6572116000,=119107066000,=69577367000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=7189748000,=7120777000,=2350917000,=86238809000,=32868257000,,=1598211000,=183232000,=30260000,=0,=0,=0,=0,=1811704000,=10342606000,=9131508000,=0,=0,=0,=0,=108144000,=19582258000,=-17770554000,,=235710000,=235710000,=11432923000,=0,=119264000,=11787897000,=4911352000,=6104208000,=98000000,=70925000,=11086486000,=701411000,=341988000,=270159734000,=16141103000,=286300836000,,,,,,,,,,,,,,,,,,,,,,,=32868257000 +年报,2024-12-31,元,无保留意见,致同会计师事务所(特殊普通合伙),,=417525378000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=10506188000,=16847851000,=444879417000,=285455632000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=25499653000,=28529188000,=8404599000,=347889072000,=96990345000,,=2028899000,=1838083000,=75110000,=0,=0,=0,=963920000,=4906012000,=31179943000,=22169451000,=0,=244022000,=244022000,=0,=187907000,=53781323000,=-48875311000,,=2560428000,=1959694000,=30540129000,=0,=292179000,=33392735000,=19972240000,=25807432000,=496051000,=2137299000,=47916971000,=-14524236000,=-1596552000,=238165487000,=31994247000,=270159734000,,=54006794000,=8423325000,=872526000,=22437872000,=0,=239273000,=470401000,=1790382000,=-19319000,=257488000,=-664223000,=5165670000,=-4384806000,=-6700359000,=320345000,=-16606853000,=634969000,=31206935000,=-460075000,=0,=0,=96990345000 +三季报,2024-09-30,元,,,,=317539939100,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=8174888000,=10828118000,=336542945100,=220637018600,=0,=0,=0,=0,=0,=0,=0,=0,=0,=19328624300,=23235105400,=5898595800,=269099344000,=67443601100,,=512532700,=1472067000,=55631200,=0,=0,=0,=525584000,=2565814800,=21268347400,=28950734900,=0,=241214500,=241214500,=0,=0,=50460296800,=-47894481900,,=1910761000,=1488073700,=17823560900,=0,=0,=19734321900,=13951582300,=24858845700,=496051400,=1419576600,=40230004500,=-20495682600,=-2265019600,=238165486900,=-3211583000,=234953903900,,,,,,,,,,,,,,,,,,,,,,,=67443601100 +中报,2024-06-30,元,,,,=210078821800,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=5605173900,=7381135500,=223065131100,=144250502500,=0,=0,=0,=0,=0,=0,=0,=0,=0,=13195573200,=17902671600,=3007429200,=178356176500,=44708954600,,=316453600,=225161100,=17754100,=0,=0,=0,=529335100,=1088703800,=13830127900,=21905527500,=0,=231440800,=231440800,=0,=0,=35967096200,=-34878392400,,=423072500,=423072500,=15587835400,=0,=0,=16010907800,=10135075800,=23896998200,=45880400,=1154620200,=35186694200,=-19175786400,=-1754412700,=238165486900,=-11099637000,=227065849900,,=24878855300,=2343369100,=0,=11284923100,=0,=74912600,=214967000,=647959300,=-11045900,=41648300,=24331900,=3707393500,=-2076994500,=-3497286300,=-274667700,=-3421205200,=20607642800,=-10101595900,=265747100,=0,=0,=44708954600 +一季报,2024-03-31,元,,,,=102413593803,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=3186710581,=4564714734,=110165019118,=68969931393,=0,=0,=0,=0,=0,=0,=0,=0,=0,=5633346736,=5717762676,=1486067712,=81807108518,=28357910599,,=135950663,=33933801,=14951826,=0,=0,=0,=11110976,=195947266,=7081546222,=70746818,=0,=210693238,=210693238,=0,=740816701,=8103802979,=-7907855713,,=89898770,=89898770,=11920790173,=0,=0,=12010688943,=5090698562,=813200235,=22940215,=602526554,=6506425351,=5504263592,=-1011612569,=238165486909,=24942705909,=263108192818,,,,,,,,,,,,,,,,,,,,,,,=28357910599 +年报,2023-12-31,元,无保留意见,致同会计师事务所(特殊普通合伙),,=417943222600,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=12739610500,=15724664000,=446407497100,=310521178200,=0,=0,=0,=0,=0,=0,=0,=0,=0,=21140596600,=17117191500,=4802406300,=353581372700,=92826124400,,=7651158400,=1711392900,=12853500,=3306900,=3306900,=0,=1239798700,=10618510400,=33624896500,=5649689400,=0,=321445400,=321445400,=0,=210243200,=39806274600,=-29187764200,,=3323996400,=2926448200,=46595746400,=0,=366758000,=50286500800,=23795322000,=9481092900,=469828200,=2293723300,=35570138100,=14716362700,=2181446800,=157629317200,=80536169700,=238165486900,,=46761034500,=5853926900,=254041400,=21098130600,=0,=117593400,=330992000,=1099265800,=-16983500,=55557800,=-46270400,=3013733800,=-3825925800,=-7809038300,=156446100,=31029323200,=-34168243000,=29013934100,=-91394100,=0,=0,=92826124400 +三季报,2023-09-30,元,,,,=298649159292,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=10179455361,=10019408566,=318848023219,=233164147474,=0,=0,=0,=0,=0,=0,=0,=0,=0,=15791826259,=13852837452,=3385519747,=266194330932,=52653692287,,=4803588488,=1197789456,=6339462,=0,=0,=0,=3388378525,=9396095931,=26917282891,=2415394851,=0,=0,=0,=0,=547332,=29333225073,=-19937129142,,=2010768546,=1876232750,=39935305016,=0,=103628508,=42049702070,=18289107618,=8860917307,=469828171,=49020447,=27199045371,=14850656698,=1928720687,=157629317214,=49495940530,=207125257744,,,,,,,,,,,,,,,,,,,,,,,=52653692287 +中报,2023-06-30,元,,,,=202447361581,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=6619428092,=7066371264,=216133160936,=156679795690,=0,=0,=0,=0,=0,=0,=0,=0,=0,=10977957567,=9392587423,=2012450497,=179062791177,=37070369759,,=4324857951,=650523933,=0,=0,=0,=0,=3156756288,=8132138172,=18452610661,=1796910342,=0,=0,=0,=0,=0,=20249521003,=-12117382831,,=1560306700,=1560306700,=23407940988,=0,=0,=24968247688,=10969930711,=7571774248,=61328171,=240759058,=18782464017,=6185783671,=3535293845,=157629317214,=34674064444,=192303381658,,=21473201535,=1681987244,=0,=9460374053,=0,=67709891,=142766871,=497480848,=-8327416,=30353516,=-213283437,=345552161,=-1417699283,=-3109602255,=-343130991,=26530336702,=-7684588631,=-10687815923,=305054875,=0,=0,=37070369759 +一季报,2023-03-31,元,,,,=100373116000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=2228192200,=3090305100,=105691613300,=74461164100,=0,=0,=0,=0,=0,=0,=0,=0,=0,=4975038100,=4321756000,=967376600,=84725334900,=20966278500,,=4538242300,=1001598900,=0,=0,=0,=0,=641947900,=6181789100,=10465642800,=1523083000,=0,=0,=0,=0,=0,=11988725800,=-5806936600,,=1306666700,=1306666700,=13568065400,=0,=0,=14874732100,=7266142400,=1026620400,=61328200,=1224165000,=9516927800,=5357804200,=-393399200,=157629317200,=20123746900,=177753064100,,,,,,,,,,,,,,,,,,,,,,,=20966278500 +年报,2022-12-31,元,无保留意见,致同会计师事务所(特殊普通合伙),,=305775248400,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=9478689900,=14557214600,=329811152800,=235327104000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=18157352000,=10529733400,=4588120100,=268602309600,=61208843300,,=1307996200,=740372300,=593900,=0,=0,=0,=1531307500,=3580269900,=48215268100,=12764660700,=0,=0,=0,=0,=6740182400,=67720111200,=-64139841300,,=47455207300,=2092259300,=50957726600,=0,=5208177600,=103621111500,=17605770500,=3551469400,=0,=197440400,=21354680400,=82266431200,=2788148900,=75505735200,=82123582000,=157629317200,,=33457143500,=2826926600,=1146247900,=11960578600,=0,=161383600,=236449600,=894129200,=5322700,=37927500,=-400241300,=969747300,=-3044935500,=-4451227000,=9145100,=-39877670300,=-58697293400,=115418278300,=556930800,=0,=0,=61208843300 +三季报,2022-09-30,元,,,,=192085714517,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=7811257153,=8926725167,=208823696836,=159150089424,=0,=0,=0,=0,=0,=0,=0,=0,=0,=13081486835,=7285509866,=3338662112,=182855748238,=25967948599,,=563479833,=655282771,=0,=0,=0,=0,=377572824,=1596335428,=35722696478,=8686444412,=0,=0,=0,=0,=850000569,=45259141460,=-43662806032,,=46827509200,=1962509430,=35913561095,=0,=206959032,=82948029327,=12923178983,=3055573384,=0,=95957221,=16074709588,=66873319739,=2913476437,=75505735208,=52091938743,=127597673951,,,,,,,,,,,,,,,,,,,,,,,=25967948599 +中报,2022-06-30,元,,,,=116064146931,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=5839330350,=5155027994,=127058505275,=92698134213,=0,=0,=0,=0,=0,=0,=0,=0,=0,=8817451567,=4536876217,=2323700236,=108376162233,=18682343042,,=187379833,=652012359,=0,=0,=0,=0,=1330627687,=2170019879,=24699849691,=5946072263,=0,=0,=0,=0,=2441927567,=33087849521,=-30917829643,,=46004904906,=1139905136,=24205364763,=0,=265175702,=70475445371,=7174679932,=940178209,=0,=80993035,=8195851176,=62279594195,=1183477323,=75505735208,=51227584918,=126733320126,,=9669961165,=660999185,=0,=4964053707,=0,=67362029,=82940377,=233746082,=138579,=21826706,=-215568250,=1253854990,=-2064382281,=-633149211,=421012537,=-35479302572,=-30610732730,=70089074722,=220508007,=0,=0,=18682343042 +一季报,2022-03-31,元,,,,=52971346200,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=53002900,=2798736400,=55823085500,=40822552900,=0,=0,=0,=0,=0,=0,=0,=0,=0,=4043971400,=1760241800,=2120433100,=48747199100,=7075886400,,=123878000,=380027000,=183000,=0,=0,=0,=330775400,=834863500,=11607436800,=2763716600,=0,=0,=0,=0,=2928961700,=17300115100,=-16465251700,,=196905400,=196905400,=14380644000,=0,=262973100,=14840522500,=1460225400,=536101900,=0,=109860800,=2106188200,=12734334300,=-170008800,=75505735200,=3174960200,=78680695400,,,,,,,,,,,,,,,,,,,,,,,=7075886400 +年报,2021-12-31,元,无保留意见,致同会计师事务所(特殊普通合伙),,=130616575584,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=414542776,=14298549333,=145329667694,=86393876303,=0,=0,=0,=0,=0,=0,=0,=0,=0,=9423182986,=4127789005,=2476810703,=102421658997,=42908008697,,=571745102,=228638768,=3223072,=58414362,=58414362,=0,=4094314024,=4956335328,=43767770780,=11725718887,=0,=295800265,=295800265,=0,=2948104750,=58737394681,=-53781059353,,=1551412774,=795200000,=26276582496,=0,=3235028368,=31063023638,=5457907862,=1568025107,=0,=378512626,=7404445596,=23658578042,=-711778164,=63431985987,=12073749221,=75505735208,,=17860730135,=2047739440,=0,=5847138223,=0,=90030221,=159202565,=340253079,=23190282,=67375743,=0,=1580329111,=-1561030818,=-1232106034,=215449936,=-28856720994,=-27816000507,=73855678066,=286750249,=0,=0,=42908008697 +三季报,2021-09-30,元,,,,=83626746277,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=535346958,=7782116413,=91944209648,=51379494480,=0,=0,=0,=0,=0,=0,=0,=0,=0,=6571571458,=3480171939,=1826733218,=63257971096,=28686238553,,=37113852,=164722893,=1387036,=58414362,=58414362,=0,=2938674645,=3200312786,=30667430388,=7449921995,=0,=177944806,=177944806,=0,=1460499766,=39755796955,=-36555484169,,=820006741,=820006741,=16682111412,=0,=3221088249,=20723206402,=4283900195,=1288764641,=0,=193522043,=5766186879,=14957019523,=-228684931,=63431985987,=6859088976,=70291074962,,,,,,,,,,,,,,,,,,,,,,,=28686238553 +中报,2021-06-30,元,,,,=51085024721,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=140585405,=4098937926,=55324548053,=21559768799,=0,=0,=0,=0,=0,=0,=0,=0,=0,=4211528981,=2523997751,=1287192836,=29582488366,=25742059687,,=31702893,=59164929,=227976,=0,=0,=0,=1746377671,=1837473468,=20090694926,=5568013122,=0,=162089096,=162089096,=0,=1143479616,=26964276760,=-25126803292,,=575006741,=575006741,=5744054032,=0,=0,=6319060774,=2174158921,=475061071,=0,=205756670,=2854976661,=3464084112,=-234765498,=63431985987,=3844575010,=67276560996,,=5325108289,=817370458,=0,=2549707122,=0,=0,=72565404,=106499326,=571920,=30306303,=0,=614595263,=-257314302,=-723546284,=150453315,=-11317249365,=-5279233782,=33520132589,=132093430,=0,=0,=25742059687 +一季报,2021-03-31,元,,,,=19699155645,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=68463824,=1637605513,=21405224982,=7311949650,=0,=0,=0,=0,=0,=0,=0,=0,=0,=1759283574,=1021292582,=345828625,=10438354430,=10966870552,,=0,=9257590,=227976,=0,=0,=0,=1653611878,=1663097443,=8903269558,=1303423036,=0,=0,=0,=0,=269831099,=10476523693,=-8813426249,,=972501,=972501,=2281243462,=0,=27016830,=2309232793,=1738449618,=315255006,=0,=8266665,=2061971290,=247261503,=-43193145,=63431985987,=2357512660,=65789498647,,,,,,,,,,,,,,,,,,,,,,,=10966870552 + +数据来源于:理杏仁网站(lixinger.com) \ No newline at end of file diff --git a/input/宁德时代/宁德时代_资产负债表_合并报表_20260310_204128.csv b/input/宁德时代/宁德时代_资产负债表_合并报表_20260310_204128.csv new file mode 100644 index 0000000..a8a7d30 --- /dev/null +++ b/input/宁德时代/宁德时代_资产负债表_合并报表_20260310_204128.csv @@ -0,0 +1,169 @@ +财报类型,股票代码,上市公司,年报,三季报,中报,一季报,年报,三季报,中报,一季报,年报,三季报,中报,一季报,年报,三季报,中报,一季报,年报,三季报,中报,一季报 +日期,="300750",="宁德时代",2025-12-31,2025-09-30,2025-06-30,2025-03-31,2024-12-31,2024-09-30,2024-06-30,2024-03-31,2023-12-31,2023-09-30,2023-06-30,2023-03-31,2022-12-31,2022-09-30,2022-06-30,2022-03-31,2021-12-31,2021-09-30,2021-06-30,2021-03-31 +货币,="300750",="宁德时代",元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元,元 +审计意见,="300750",="宁德时代",无保留意见,,,,无保留意见,,,,无保留意见,,,,无保留意见,,,,无保留意见,,, +会计师事务所,="300750",="宁德时代",致同会计师事务所(特殊普通合伙),,,,致同会计师事务所(特殊普通合伙),,,,致同会计师事务所(特殊普通合伙),,,,致同会计师事务所(特殊普通合伙),,,,致同会计师事务所(特殊普通合伙),,, +一、资产总计,="300750",="宁德时代",=974827544000,=896082131000,=867181431000,=820097269000,=786658123000,=738235004400,=715251888900,=731286481523,=717168041100,=671832207297,=640998784702,=640203577500,=600952351900,=541941138768,=481233671012,=376255651900,=307666860932,=249151796229,=207783497820,=173328904927 +净营运资本,="300750",="宁德时代",=-131844668000,=-104683576000,=-105680093000,=-108872092000,=-86554629000,=-74446529400,=-79989753400,=-86202941547,=-84164890400,=-84147563357,=-91931392794,=-106778099200,=-92290051000,=-80450057417,=-79248693132,=-68834397600,=-52111159612,=-43016186048,=-31642683321,=-14571435938 +流动资产合计,="300750",="宁德时代",=638481543000,=574228137000,=567700337000,=530298544000,=510142089000,=466764516700,=442116937300,=459955986867,=449788001700,=411386685393,=383061012844,=389446165900,=387734857000,=344885693507,=303347957287,=222276559600,=177734938671,=149294839099,=132996356933,=120622316843 +流动资产占比,="300750",="宁德时代",=0.6550,=0.6408,=0.6547,=0.6466,=0.6485,=0.6323,=0.6181,=0.6290,=0.6272,=0.6123,=0.5976,=0.6083,=0.6452,=0.6364,=0.6304,=0.5908,=0.5777,=0.5992,=0.6401,=0.6959 +货币资金,="300750",="宁德时代",=333512927000,=324241586000,=350577746000,=321323654000,=303511993000,=264675795100,=255002207100,=288572136879,=264306514700,=233760087374,=219582042464,=210447048500,=191043409500,=158589590402,=154264447526,=100289630900,=89071889687,=80735121590,=74686697280,=71677310067 +货币资金占比,="300750",="宁德时代",=0.3421,=0.3618,=0.4043,=0.3918,=0.3858,=0.3585,=0.3565,=0.3946,=0.3685,=0.3479,=0.3426,=0.3287,=0.3179,=0.2926,=0.3206,=0.2665,=0.2895,=0.3240,=0.3594,=0.4135 +结算备付金,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +拆出资金,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +交易性金融资产,="300750",="宁德时代",=58993528000,=43260528000,=22447277000,=21421660000,=14282253000,=22002410300,=17300865500,=166802235,=7767200,=7680752,=371279318,=1496062900,=1981328100,=1872628076,=1243421328,=1935152000,=1363972879,=1754005409,=2214851733,=1774375581 +衍生金融资产(流动),="300750",="宁德时代",=1133502000,=36492000,=0,=0,=0,=0,=0,=0,=0,=0,=0,=462334400,=575638000,=0,=0,=0,=243105098,=1679344985,=1184105581,=727619072 +应收票据及应收账款,="300750",="宁德时代",=77783280000,=66900072000,=64115205000,=60350907000,=64265913000,=66995150700,=58327856300,=52003941362,=65772258000,=70261626486,=65738069141,=53452118400,=61492600600,=56187300984,=39817148078,=26664688800,=25217376191,=20203698266,=19467134327,=21708164202 +(其中)应收票据,="300750",="宁德时代",=1380016000,=418837000,=314830000,=168477000,=130403000,=292441400,=228380300,=817044123,=1751724600,=1534828030,=4221345544,=4845153200,=3526083700,=2060935458,=2362856363,=1786860400,=1463827986,=5863666031,=5485309961,=9447306209 +(其中)应收账款,="300750",="宁德时代",=76403264000,=66481235000,=63800375000,=60182430000,=64135510000,=66702709300,=58099476000,=51186897239,=64020533400,=68726798456,=61516723597,=48606965200,=57966516900,=54126365526,=37454291715,=24877828400,=23753548205,=14340032235,=13981824366,=12260857993 +应收款项融资,="300750",="宁德时代",=43205292000,=32082832000,=36388212000,=43910963000,=53309701000,=40403229800,=43947442800,=56261863604,=55289318800,=38323987277,=21207171645,=26872515800,=18965714600,=23678742375,=8662324543,=8265768400,=6486380761,=0,=0,=0 +预付款项,="300750",="宁德时代",=14282335000,=13557167000,=9752799000,=7417713000,=5969685000,=6887337600,=7826466800,=7886550860,=6962872600,=8921784760,=12745835121,=14877912400,=15843284400,=12283273483,=12117397896,=10100118500,=6466439266,=3282854834,=3848415009,=1983836972 +应收保费,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +应收分保账款,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +应收分保合同准备金,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +其他应收款,="300750",="宁德时代",=2119770000,=2862290000,=2301588000,=2125282000,=2206947000,=3444015600,=4115804000,=3240165563,=3438564000,=3793847979,=4974871013,=4578122900,=8678379900,=4137737562,=3940219396,=4267155900,=3114909648,=2734554427,=4058611365,=3656541108 +(其中)应收利息,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +(其中)应收股利,="300750",="宁德时代",=77327000,=75434000,=78013000,=65098000,=65217000,=504261300,=1246594600,=426713905,=425984800,=1212710,=469548105,=0,=0,=0,=0,=0,=0,=0,=0,=0 +买入返售金融资产,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +存货,="300750",="宁德时代",=94526239000,=80211558000,=72272139000,=65639666000,=59835533000,=55215275300,=48050676200,=43979311348,=45433890100,=48884011682,=48910488235,=64037677300,=76668898800,=79025040365,=75505395700,=61578271700,=40199691881,=34961665057,=24165705805,=17194779916 +(其中)数据资源,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +合同资产,="300750",="宁德时代",=375468000,=398446000,=346467000,=261473000,=400626000,=363142300,=284662400,=261354301,=233964100,=152275453,=344170043,=572681900,=174863000,=37896009,=20129327,=23696100,=77285524,=77075925,=77075925,=75269025 +持有待售资产,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +发放贷款及垫款(流动),="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +待摊费用,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +一年内到期的非流动资产,="300750",="宁德时代",=169898000,=98616000,=88019000,=78040000,=72972000,=200635500,=230227700,=251362303,=56827500,=63996216,=66949671,=407644900,=403711500,=117605394,=117855489,=227220900,=201655870,=176775295,=143447333,=46920942 +其他流动资产,="300750",="宁德时代",=12379304000,=10578550000,=9410883000,=7769187000,=6286465000,=6577524400,=7030728600,=7332498411,=8286024600,=7217387414,=9120136194,=12242046600,=11907028600,=8955878858,=7659618005,=8924856400,=5292231865,=3689743311,=3150312575,=1777499959 +流动比率,="300750",="宁德时代",=1.5977,=1.6842,=1.6896,=1.6157,=1.6084,=1.6607,=1.6324,=1.6488,=1.5672,=1.4895,=1.4140,=1.3428,=1.3110,=1.2396,=1.2435,=1.0889,=1.1901,=1.3039,=1.4349,=1.8036 +速动比率,="300750",="宁德时代",=1.3245,=1.4080,=1.4444,=1.3923,=1.3997,=1.4384,=1.4251,=1.4619,=1.3838,=1.2796,=1.1851,=1.0687,=0.9976,=0.9113,=0.8842,=0.7377,=0.8771,=0.9692,=1.1318,=1.5157 +非流动资产合计,="300750",="宁德时代",=336346001000,=321853995000,=299481094000,=289798725000,=276516035000,=271470487700,=273134951500,=271330494656,=267380039400,=260445521904,=257937771858,=250757411600,=213217494900,=197055445261,=177885713725,=153979092300,=129931922261,=99856957130,=74787140887,=52706588084 +非流动资产占比,="300750",="宁德时代",=0.3450,=0.3592,=0.3453,=0.3534,=0.3515,=0.3677,=0.3819,=0.3710,=0.3728,=0.3877,=0.4024,=0.3917,=0.3548,=0.3636,=0.3696,=0.4092,=0.4223,=0.4008,=0.3599,=0.3041 +重资产占比,="300750",="宁德时代",=0.1840,=0.1875,=0.1785,=0.1807,=0.1821,=0.1852,=0.1974,=0.1930,=0.1963,=0.2019,=0.2122,=0.2026,=0.2085,=0.2100,=0.2085,=0.2281,=0.2371,=0.2154,=0.1965,=0.1534 +发放贷款及垫款(非流动),="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +债权投资,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +其他债权投资,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +可供出售金融资产(非流动),="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +持有至到期投资,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +长期应收款,="300750",="宁德时代",=386180000,=193099000,=136825000,=176608000,=151342000,=128324700,=145385900,=191694448,=9839600,=15454074,=28657267,=42548700,=44316100,=206596527,=220568166,=511561200,=619282437,=521066920,=463424807,=497767225 +长期股权投资,="300750",="宁德时代",=64884321000,=59831799000,=57636957000,=56483298000,=54791525000,=54175331200,=52121325000,=50586279943,=50027694100,=45348743503,=42820900028,=44003247000,=17595207400,=16148787751,=14187663113,=12380408000,=10949033562,=10031478678,=9240532692,=5574560949 +其他权益工具投资,="300750",="宁德时代",=16296853000,=17041260000,=11575381000,=11585575000,=11900901000,=13024738200,=12686109400,=13294324568,=14128318200,=14826916562,=17164574794,=15382373700,=20491264200,=16939402161,=16045312006,=12063428700,=11306853170,=5246887397,=3522420337,=2182342357 +其他非流动金融资产,="300750",="宁德时代",=2882264000,=3464955000,=3042296000,=3138747000,=3135658000,=2980957600,=2787753500,=2772704281,=2816189700,=2906283398,=2893590025,=2793203500,=2645306600,=2447854446,=2333756003,=2080065300,=1714865301,=0,=0,=0 +投资性房地产,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +固定资产,="300750",="宁德时代",=146400592000,=128622702000,=118696651000,=112142665000,=112589053000,=110653484500,=113142792200,=114498533810,=115387960100,=104274341068,=102694335518,=96611233400,=89070834700,=74307767673,=62198685532,=56266248400,=41275333325,=31850222747,=25132132439,=20760089317 +(其中)固定资产清理,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +固定资产占总资产比率,="300750",="宁德时代",=0.1502,=0.1435,=0.1369,=0.1367,=0.1431,=0.1499,=0.1582,=0.1566,=0.1609,=0.1552,=0.1602,=0.1509,=0.1482,=0.1371,=0.1292,=0.1495,=0.1342,=0.1278,=0.1210,=0.1198 +在建工程,="300750",="宁德时代",=29733108000,=37365635000,=35086190000,=35221700000,=29754703000,=25200973600,=27257067100,=26216109151,=25011907100,=30650096423,=32670444024,=32354331800,=35397650600,=38870681744,=37463214290,=28893882000,=30998159500,=21495217685,=15450275779,=5602125260 +(其中)工程物资,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +在建工程占固定资产比率,="300750",="宁德时代",=0.2031,=0.2905,=0.2956,=0.3141,=0.2643,=0.2277,=0.2409,=0.2290,=0.2168,=0.2939,=0.3181,=0.3349,=0.3974,=0.5231,=0.6023,=0.5135,=0.7510,=0.6749,=0.6148,=0.2699 +生产性生物资产,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +油气资产,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +公益性生物资产,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +使用权资产,="300750",="宁德时代",=3268966000,=2029623000,=1047592000,=846028000,=889995000,=896541600,=798413000,=425830405,=377934100,=724840728,=677216696,=744990700,=849134000,=626128687,=660378049,=654944900,=678625267,=325897806,=237142952,=233829739 +无形资产,="300750",="宁德时代",=15263875000,=15025388000,=14684829000,=14496931000,=14419804000,=14448153400,=15718068700,=15581536006,=15675876200,=16556905586,=15607433197,=17562949500,=9539963200,=7989903747,=6815918218,=5357768600,=4479606395,=3530624985,=3395293148,=2527779959 +(其中)数据资源,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +开发支出,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +(其中)数据资源,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +商誉,="300750",="宁德时代",=837328000,=890939000,=892909000,=893898000,=894757000,=883700900,=890937400,=887894836,=707881700,=715271694,=715160715,=715160700,=704065200,=1002941550,=1002941550,=653619200,=527850692,=349692478,=329506903,=147951887 +商誉占净资产比率,="300750",="宁德时代",=0.0023,=0.0026,=0.0028,=0.0031,=0.0033,=0.0034,=0.0041,=0.0039,=0.0032,=0.0035,=0.0037,=0.0034,=0.0040,=0.0062,=0.0067,=0.0070,=0.0057,=0.0044,=0.0044,=0.0021 +长期待摊费用,="300750",="宁德时代",=4960638000,=4908611000,=4301351000,=4373265000,=4593980000,=4528856500,=5000170700,=4958130704,=4695780000,=4499728152,=4336921565,=3801140400,=2294776000,=1809975377,=1666427608,=1708148800,=1264339109,=755110153,=478944306,=420276295 +递延所得税资产,="300750",="宁德时代",=28170283000,=28542552000,=26965253000,=25303240000,=24118834000,=22121062800,=20892871600,=19434637986,=17395585300,=14571655967,=12593262651,=10370303200,=9483660400,=7347010330,=6175703569,=6201003000,=5542554359,=4311764310,=3890656232,=3497853312 +其他非流动资产,="300750",="宁德时代",=23261595000,=23937431000,=25414858000,=25136769000,=19275483000,=22428362600,=21694056900,=22482818519,=21145073300,=25355284750,=25735275380,=26375928900,=25101316500,=29358395269,=29115145622,=27208014400,=20575419144,=21438993971,=12646811293,=11262011783 +二、负债合计,="300750",="宁德时代",=603801220000,=549070060000,=542792019000,=530957915000,=513201949000,=474934361000,=495412262100,=500818089841,=497284890500,=469775300730,=449315608905,=431483135000,=424043189900,=380655696174,=331543336541,=282660303500,=215044686399,=168969358307,=132295481251,=101987888926 +有息负债,="300750",="宁德时代",=120049713000,=128861724000,=140436539000,=137007910000,=138517609000,=132086296900,=138418805700,=137567518678,=129100588200,=127375405980,=120764401922,=106766674500,=100497224200,=84432961108,=77337085507,=70626100700,=54041024438,=45046314879,=32539705091,=29210296909 +有息负债率,="300750",="宁德时代",=0.1231,=0.1438,=0.1619,=0.1671,=0.1761,=0.1789,=0.1935,=0.1881,=0.1800,=0.1896,=0.1884,=0.1668,=0.1672,=0.1558,=0.1607,=0.1877,=0.1756,=0.1808,=0.1566,=0.1685 +资产负债率,="300750",="宁德时代",=0.6194,=0.6127,=0.6259,=0.6474,=0.6524,=0.6433,=0.6926,=0.6848,=0.6934,=0.6992,=0.7010,=0.6740,=0.7056,=0.7024,=0.6889,=0.7512,=0.6990,=0.6782,=0.6367,=0.5884 +流动负债合计,="300750",="宁德时代",=399625988000,=340940328000,=336005110000,=328208754000,=317171534000,=281070698000,=270831777000,=278962389687,=287001069100,=276198050769,=270904064890,=290026712800,=295761419300,=278220526035,=243949152254,=204121679200,=149344832577,=114496862624,=92689792740,=66877122611 +流动负债占比,="300750",="宁德时代",=0.6619,=0.6209,=0.6190,=0.6181,=0.6180,=0.5918,=0.5467,=0.5570,=0.5771,=0.5879,=0.6029,=0.6722,=0.6975,=0.7309,=0.7358,=0.7221,=0.6945,=0.6776,=0.7006,=0.6557 +短期借款,="300750",="宁德时代",=12935498000,=15314463000,=19009443000,=15782433000,=19696282000,=15239389800,=18048659700,=16535118927,=15181012100,=11348918967,=16656552968,=14876987000,=14415402500,=14104703342,=14937309430,=15403153700,=12123056874,=8648141084,=7936400830,=6213829887 +向中央银行借款,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +拆入资金,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +衍生金融负债,="300750",="宁德时代",=393224000,=0,=185496000,=899889000,=2116017000,=2499377200,=4363213700,=4754753679,=3941409600,=5727985999,=4762002955,=0,=0,=20427718,=968715901,=1787115400,=0,=0,=0,=0 +交易性金融负债,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +应付票据及应付账款,="300750",="宁德时代",=263605961000,=214926145000,=210388794000,=208506660000,=198333731000,=186791553700,=183031795800,=185138910655,=194553714300,=190006141315,=187634087161,=206134332600,=220764444200,=210020665789,=180222875808,=147919492200,=107190037559,=78226256293,=59520529903,=41191034701 +(其中)应付票据,="300750",="宁德时代",=103276999000,=82967668000,=76968647000,=79844165000,=67356323000,=63651540000,=66052159100,=72631731713,=77514940700,=79081439526,=86701316992,=114125383600,=126229468200,=119432231178,=107701836969,=83593860700,=58405751258,=45594390099,=33850033847,=23346295001 +(其中)应付账款,="300750",="宁德时代",=160328962000,=131958477000,=133420147000,=128662495000,=130977408000,=123140013700,=116979636700,=112507178942,=117038773600,=110924701789,=100932770169,=92008949000,=94534976000,=90588434611,=72521038839,=64325631500,=48784286301,=32631866194,=25670496056,=17844739700 +预收账款,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +合同负债,="300750",="宁德时代",=49233377000,=40678197000,=36641662000,=37088532000,=27834446000,=22651661600,=22462994100,=20599513250,=23982351900,=26556925732,=22134411899,=25872569200,=22444785300,=20919604006,=19517953193,=15050335800,=11537915323,=13196959051,=10758865174,=8125493259 +卖出回购金融资产,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +吸收存款及同业存放,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +代理买卖证券款,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +代理承销证券款,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +应付职工薪酬,="300750",="宁德时代",=23110912000,=21821691000,=20115797000,=20320028000,=18653079000,=17368871900,=16596608800,=16630284139,=14846251200,=14119318786,=12255185722,=10213306300,=9476018400,=7434024219,=5041659011,=5529734300,=5122787750,=3538683641,=3023749747,=3098794000 +应交税费,="300750",="宁德时代",=11775019000,=8851546000,=8643847000,=9561191000,=9436442000,=8144202500,=6093742000,=12277242724,=11741826300,=6267372706,=5889655622,=5239122700,=4792441200,=2611381793,=1703180368,=1981850300,=2403797507,=2171709496,=1454565477,=1336465854 +其他应付款,="300750",="宁德时代",=10504098000,=9357565000,=11481854000,=10169890000,=16161923000,=9367311600,=10614833600,=12094361456,=13654001700,=15808687565,=15683623592,=21940135700,=15014070600,=13415971858,=11504994759,=7802863800,=6176214441,=5990382032,=7444740885,=4533862168 +(其中)应付利息,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +(其中)应付股利,="300750",="宁德时代",=0,=98000000,=1107999000,=0,=5400161000,=22722000,=24643100,=6975515,=29915700,=26099009,=36599009,=6173956200,=8319552,=11281132,=6590831,=6590800,=6590831,=10638732,=565000646,=6172824 +应付手续费及佣金,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +应付分保账款,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +持有待售负债,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +一年内到期的非流动负债,="300750",="宁德时代",=22237540000,=25005358000,=26031681000,=23013434000,=22881417000,=16081511700,=7123836300,=8263102401,=7008874200,=4637261517,=4103059081,=3980597800,=7232224400,=8295346780,=8731818853,=7197313100,=3548532819,=1572686982,=1493766156,=1473265563 +一年内到期的递延收益,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +预计负债(流动),="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +短期应付债券,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +其他流动负债,="300750",="宁德时代",=5830358000,=4985363000,=3506536000,=2866697000,=2058196000,=2926818100,=2496093000,=2669102456,=2091627800,=1725438180,=1785485891,=1769661400,=1622032600,=1398400530,=1320644933,=1449820600,=1242490303,=1152044044,=1057174566,=904377179 +非流动负债合计,="300750",="宁德时代",=204175232000,=208129732000,=206786909000,=202749160000,=196030416000,=193863663000,=224580485000,=221855700154,=210283821400,=193577249961,=178411544015,=141456422200,=128281770600,=102435170139,=87594184287,=78538624300,=65699853822,=54472495682,=39605688511,=35110766315 +非流动负债占比,="300750",="宁德时代",=0.3381,=0.3791,=0.3810,=0.3819,=0.3820,=0.4082,=0.4533,=0.4430,=0.4229,=0.4121,=0.3971,=0.3278,=0.3025,=0.2691,=0.2642,=0.2779,=0.3055,=0.3224,=0.2994,=0.3443 +保险合同准备金,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +长期借款,="300750",="宁德时代",=78234935000,=78441925000,=82416083000,=84826153000,=81238456000,=85444436200,=88819915800,=88444675698,=83448981700,=85435191073,=74910430345,=68376274800,=59099358400,=47507184120,=38872517934,=33235483200,=22119078784,=17159358715,=8701599250,=7046382303 +应付债券,="300750",="宁德时代",=3443434000,=8422115000,=11970602000,=11914211000,=11922623000,=12104785500,=19414874600,=19236444552,=19237014400,=19676311684,=19793296684,=18969611400,=19177888600,=14150245967,=13434684349,=12638046700,=15855051956,=17528377295,=14273326293,=14339029834 +(其中)优先股,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +(其中)永续债,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +租赁负债,="300750",="宁德时代",=2805081000,=1677863000,=823234000,=571789000,=662814000,=716796600,=648305500,=333423421,=283296200,=549736738,=539059890,=563203400,=572350200,=355053181,=392039042,=364988600,=395304004,=137750801,=134612560,=137789322 +长期应付款,="300750",="宁德时代",=1639608000,=1519965000,=1640002000,=1656337000,=1606480000,=1594834100,=1651515800,=1670358000,=1520256200,=1539941660,=1200000000,=1200000000,=1050000000,=1310000000,=1160000000,=1010000000,=1010000000,=1171669291,=1150000000,=1150000000 +(其中)专项应付款,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +长期应付职工薪酬,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +预计负债(非流动),="300750",="宁德时代",=85324358000,=85843047000,=80137122000,=73507580000,=71926943000,=65430208700,=59165819700,=57296406442,=51638913500,=31814013574,=26355789213,=21992362200,=19697374600,=13670695249,=10989376852,=10894420700,=9953762662,=10171233831,=8709869807,=7708599437 +长期递延收益,="300750",="宁德时代",=27321553000,=25224182000,=23683078000,=23847636000,=22041069000,=21899574000,=21242202400,=21767081928,=21448987400,=20047725142,=20534650703,=20463130600,=19966701700,=16308196294,=14374329661,=12919522900,=12099359134,=7944056739,=6400308476,=4674614610 +递延所得税负债,="300750",="宁德时代",=922254000,=2261098000,=1140246000,=1209610000,=1231236000,=1180577400,=1090238200,=1241288961,=1364905800,=1381740346,=1464681994,=3206405500,=1807813000,=1714035963,=1459589397,=1009284700,=1038576861,=360049010,=235972125,=54350808 +其他非流动负债,="300750",="宁德时代",=4484010000,=4739536000,=4976542000,=5215845000,=5400795000,=5492450500,=32547613200,=31866021152,=31341466200,=33132589745,=33613635186,=6685434300,=6910284100,=7419759364,=6911647052,=6466877500,=3228720421,=0,=0,=0 +三、所有者权益合计,="300750",="宁德时代",=371026324000,=347012071000,=324389412000,=289139355000,=273456174000,=263300643400,=219839626800,=230468391682,=219883150600,=202056906567,=191683175797,=208720442500,=176909162000,=161285442594,=149690334471,=93595348500,=92622174532,=80182437923,=75488016569,=71341016001 +股东权益占比,="300750",="宁德时代",=0.3806,=0.3873,=0.3741,=0.3526,=0.3476,=0.3567,=0.3074,=0.3152,=0.3066,=0.3008,=0.2990,=0.3260,=0.2944,=0.2976,=0.3111,=0.2488,=0.3010,=0.3218,=0.3633,=0.4116 +股本,="300750",="宁德时代",=4563803000,=4562854000,=4559310000,=4403395000,=4403466000,=4402375700,=4398807200,=4399041236,=4399041200,=4397223887,=4396292935,=2442385000,=2442514500,=2440471007,=2440471007,=2330851200,=2330851200,=2329007802,=2329007802,=2329474028 +其他权益工具,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +(其中)优先股,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +(其中)永续债,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +资本公积,="300750",="宁德时代",=156248214000,=156365576000,=154314344000,=116857798000,=116756136000,=115137443600,=88643885800,=88213595683,=87907212600,=80571445916,=79909614926,=108494320100,=88904372100,=88382735267,=88237358689,=43295032600,=43163696507,=41512967187,=41446874264,=41380785863 +减:库存股,="300750",="宁德时代",=7097993000,=7097993000,=4262590000,=2711392000,=2712804000,=2776131700,=2511358500,=1966347824,=1572971600,=249411780,=249411780,=249411800,=253991000,=253991031,=438727267,=443534900,=443534934,=443534934,=693512301,=710020553 +其他综合收益,="300750",="宁德时代",=6454423000,=6391356000,=859971000,=131980000,=-348637000,=785650400,=-545826100,=1102930264,=1528223100,=3009239416,=4001909644,=5958150000,=8931300000,=7825371512,=6041677867,=3290376800,=4208319848,=2278562062,=1952271955,=890877714 +专项储备,="300750",="宁德时代",=35515000,=38434000,=32301000,=48242000,=35551000,=33103400,=21079900,=12724609,=9355000,=6874804,=3891586,=0,=0,=0,=0,=0,=0,=0,=0,=0 +盈余公积,="300750",="宁德时代",=2274947000,=2272701000,=2272701000,=2194779000,=2194779000,=2192566200,=2192566200,=2192566238,=2192566200,=1214302882,=1214302882,=1214302900,=1214302900,=1213281123,=1213281123,=1158471200,=1158471220,=1157782634,=1157782634,=1157782634 +一般风险准备金,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +未分配利润,="300750",="宁德时代",=174628837000,=151715049000,=137146982000,=140632845000,=126601541000,=117181223700,=104031988700,=113775363803,=103244625900,=91164745386,=80942539160,=70047213300,=63242753100,=50106491459,=42177114016,=35580140300,=34095467493,=25859863286,=22565878446,=20595335940 +外币报表折算差额,="300750",="宁德时代",=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0,=0 +归属于母公司股东及其他权益持有者的权益合计,="300750",="宁德时代",=337107747000,=314247976000,=294923020000,=261557647000,=246930033000,=236956231200,=196231143400,=207729874007,=197708052400,=180114420510,=170219139354,=187906959400,=164481251600,=149714359338,=139671175435,=85211337100,=84513271334,=72694648036,=68758302800,=65644235627 +归属于母公司普通股股东权益合计,="300750",="宁德时代",=337107747000,=314247976000,=294923020000,=261557647000,=246930033000,=236956231200,=196231143400,=207729874007,=197708052400,=180114420510,=170219139354,=187906959400,=164481251600,=149714359338,=139671175435,=85211337100,=84513271334,=72694648036,=68758302800,=65644235627 +归属于母公司普通股股东的每股股东权益,,,=73.8655,=68.8709,=64.6859,=59.3991,=56.0763,=53.8246,=44.6101,=47.2216,=44.9434,=40.9609,=38.7188,=76.9318,=67.3410,=61.3465,=59.9228,=36.5580,=36.2585,=31.2127,=29.5226,=28.1799 +少数股东权益,="300750",="宁德时代",=33918577000,=32764095000,=29466392000,=27581708000,=26526141000,=26344412200,=23608483400,=22738517675,=22175098200,=21942486057,=21464036443,=20813483100,=12427910400,=11571083256,=10019159036,=8384011300,=8108903198,=7487789886,=6729713770,=5696780375 +员工情况,="300750",="宁德时代",,,,,,,,,,,,,,,,,,,, +员工人数,="300750",="宁德时代",=185839,,,,=131988,,,,=116055,,,,=118914,,,,=83601,,, +博士人数,="300750",="宁德时代",=818,,,,=625,,,,=403,,,,=288,,,,=190,,, +硕士人数,="300750",="宁德时代",=8785,,,,=8015,,,,=6195,,,,=4506,,,,=3132,,, +学士人数,="300750",="宁德时代",=40250,,,,=26292,,,,=21976,,,,=20009,,,,=12561,,, +大专人数,="300750",="宁德时代",=135986,,,,=97056,,,,=87481,,,,=94111,,,,=67718,,, +高中及以下人数,="300750",="宁德时代",=0,,,,=0,,,,=0,,,,=0,,,,=0,,, +生产人员人数,="300750",="宁德时代",=145568,,,,=96725,,,,=81817,,,,=89080,,,,=65364,,, +销售人员人数,="300750",="宁德时代",=3615,,,,=2806,,,,=2367,,,,=1815,,,,=1268,,, +技术人员人数,="300750",="宁德时代",=22901,,,,=20346,,,,=20604,,,,=16322,,,,=10079,,, +财务人员人数,="300750",="宁德时代",=780,,,,=692,,,,=639,,,,=545,,,,=293,,, +行政人员人数,,,=12975,,,,=11419,,,,=10628,,,,=11152,,,,=6597,,, +其他人员人数,="300750",="宁德时代",=0,,,,=0,,,,=0,,,,=0,,,,=0,,, +股本、股东以及估值,="300750",="宁德时代",,,,,,,,,,,,,,,,,,,, +市值,="300750",="宁德时代",=1676102469002.8799,=1834267308402,=1149949246640.4199,=1113794708788.3401,=1171322077828,=1108914407264.4099,=791917264176.6600,=836521681437.7600,=718187472189.3600,=892768365777.6100,=1005827860598.6500,=991783022470.2000,=960934064032.0800,=978360421996.2300,=1244674540800,=1194095069760,=1370540505600,=1224429271745.4600,=1245553372509.5999,=750486647600.7600 +总股本,="300750",="宁德时代",=4563803488,=4562854001,=4559310311,=4403394911,=4403466458,=4402375669,=4398807222,=4399041236,=4399041236,=4397223887,=4396292935,=2442514524,=2442514524,=2440471007,=2330851200,=2330851200,=2330851200,=2329007802,=2329007802,=2329474028 +流通股本,="300750",="宁德时代",=4256577089.0000,=4255627601,=4252126694,=3902556333,=3902556333,=3901465544,=3894854492,=3894854493,=3894854493,=3893061368,=3882944634,=2092466281,=1982710184,=1980666667,=2038656510,=2038656510,=2038656510,=2036813112,=2029741222,=1356998128 +总股东人数(季度),="300750",="宁德时代",=249777,=227474,=226368,=226327,=212061,=229043,=237334,=250264,=260992,=233256,=217464,=206031,=183317,=185383,=150353,=140911,=141963,=134193,=135198,=182794 +A股股东人数(季度),="300750",="宁德时代",=249719.9016,=227422,=226315,=226327,=212061,=229043,=237334,=250264,=260992,=233256,=217464,=206031,=183317,=185383,=150353,=140911,=141963,=134193,=135198,=182794 +第一大股东持仓占总股本比例,="300750",="宁德时代",=0.2245,=0.2246,=0.2247,=0.2327,=0.2327,=0.2328,=0.2330,=0.2329,=0.2329,=0.2331,=0.2332,=0.2332,=0.2332,=0.2333,=0.2443,=0.2443,=0.2443,=0.2454,=0.2454,=0.2453 +前十大股东持仓占总股本比例,="300750",="宁德时代",=0.6443,=0.6494,=0.6416,=0.6237,=0.6228,=0.6190,=0.6105,=0.6054,=0.5943,=0.5969,=0.5959,=0.5941,=0.5833,=0.5895,=0.6200,=0.6290,=0.6450,=0.6321,=0.6282,=0.6406 +前十大流通股东持仓占流通股本比例,="300750",="宁德时代",=0.6187,=0.6241,=0.6157,=0.5754,=0.5744,=0.5702,=0.5609,=0.5552,=0.5427,=0.5456,=0.5457,=0.5606,=0.5573,=0.5648,=0.5717,=0.5820,=0.6003,=0.5855,=0.5831,=0.4580 +进公募基金前十大持仓占流通股本比例,="300750",="宁德时代",=0.1163,=0.1210,=0.1330,=0.1487,=0.1646,=0.1565,=0.1455,=0.1497,=0.1283,=0.1301,=0.1322,=0.1339,=0.1355,=0.1382,=0.1364,=0.1405,=0.1277,=0.1316,=0.1307,=0.1423 +公募基金持仓占流通股本比例,="300750",="宁德时代",=0.1163,=0.1211,=0.1395,=0.1487,=0.1721,=0.1566,=0.1576,=0.1497,=0.1418,=0.1301,=0.1432,=0.1339,=0.1516,=0.1382,=0.1478,=0.1406,=0.1400,=0.1319,=0.1414,=0.1423 +公募基金+自由流通股东持仓占自由流通股本比例,="300750",="宁德时代",=0.5047,=0.5095,=0.5215,=0.5214,=0.5537,=0.5202,=0.5561,=0.5346,=0.5025,=0.4883,=0.5085,=0.5085,=0.5402,=0.5307,=0.5417,=0.5466,=0.5751,=0.5366,=0.5472,=0.5478 +PE-TTM,="300750",="宁德时代",=26.2804,=31.4276,=21.2178,=21.9490,=23.9158,=23.9667,=17.6732,=18.9596,=16.2181,=20.6285,=25.7517,=32.2750,=37.2863,=49.8767,=80.4588,=119.6775,=137.3616,=150.6092,=183.2852,=168.5397 +PE-TTM(扣非),="300750",="宁德时代",=29.6993,=35.1821,=24.1715,=24.7549,=25.8644,=26.0354,=19.0644,=20.8652,=18.3418,=23.0601,=28.7083,=35.1533,=42.0041,=59.0257,=97.6422,=143.8517,=165.1080,=179.8898,=226.1113,=213.3223 +PB,="300750",="宁德时代",=5.3329,=6.3092,=4.7601,=4.5106,=4.9395,=5.6511,=4.2652,=4.2311,=3.9816,=5.2407,=5.3528,=6.0298,=6.3972,=7.0856,=14.6069,=16.3303,=18.7433,=17.8077,=18.9743,=12.2316 +PB(不含商誉),="300750",="宁德时代",=5.3481,=6.3286,=4.7778,=4.5270,=4.9580,=5.6768,=4.2857,=4.2463,=3.9974,=5.2628,=5.3732,=6.0557,=6.4402,=7.1374,=14.7198,=16.4087,=18.8334,=17.8935,=19.0172,=12.2612 +PS-TTM,="300750",="宁德时代",=4.3418,=4.9027,=3.1338,=3.0767,=3.2066,=2.9302,=2.0220,=2.0865,=1.7392,=2.2051,=2.7262,=3.0183,=3.5945,=4.9102,=7.7857,=12.9570,=14.8715,=16.2037,=20.6029,=16.8820 +PCF-TTM,,,=15.2087,=16.5296,=11.3295,=11.4836,=10.8843,=11.0379,=7.9020,=9.0117,=8.1710,=11.2161,=13.3933,=16.2033,=23.9099,=27.2917,=31.9008,=32.4392,=37.2326,=31.9316,=47.4496,=55.7860 +股息率,,,=0.0178,=0.0162,=0.0221,=0.0228,=0.0234,=0.0199,=0.0279,=0.0264,=0.0086,=0.0069,=0.0077,=0.0078,=0.0017,=0.0016,=0,=0.0005,=0.0004,=0.0005,=0.0004,=0.0006 + +数据来源于:理杏仁网站(lixinger.com) \ No newline at end of file diff --git a/main.py b/main.py index 62bc1e9..629916d 100644 --- a/main.py +++ b/main.py @@ -21,7 +21,8 @@ import process_cash_flow # ==================== 公司配置 ==================== # 方式1: 直接在此处配置公司名称(对应 input 和 config 下的文件夹名) # 方式2: 在项目根目录的 config.json 中配置 "company": "公司名",会覆盖此处配置 -COMPANY_NAME = "泡泡玛特" +# COMPANY_NAME = "泡泡玛特" +COMPANY_NAME = "宁德时代" def get_company_name(script_dir): @@ -128,14 +129,14 @@ def process_file(file_path, file_type, config_dir): return None -def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, output_file, company_name): +def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, profitability_df, output_file, company_name): """ - 将资产负债表、利润表和现金流量表合并到一个 Excel 文件的不同 Tab 页 + 将资产负债表、利润表、现金流量表、盈利能力表合并到一个 Excel 文件的不同 Tab 页 """ print(f"\n{'='*60}") print(f"合并 Excel 文件") print(f"{'='*60}") - + with pd.ExcelWriter(output_file, engine='openpyxl') as writer: if balance_sheet_df is not None: balance_sheet_df.to_excel( @@ -145,7 +146,7 @@ def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, output_f header=False ) print(f"✓ 已添加【资产负债表】Tab,共 {len(balance_sheet_df)} 行") - + if income_statement_df is not None: income_statement_df.to_excel( writer, @@ -154,7 +155,7 @@ def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, output_f header=False ) print(f"✓ 已添加【利润表】Tab,共 {len(income_statement_df)} 行") - + if cash_flow_df is not None: cash_flow_df.to_excel( writer, @@ -163,7 +164,16 @@ def merge_to_excel(balance_sheet_df, income_statement_df, cash_flow_df, output_f header=True # 现金流量表保留列名 ) print(f"✓ 已添加【现金流量表】Tab,共 {len(cash_flow_df)} 行") - + + if profitability_df is not None: + profitability_df.to_excel( + writer, + sheet_name='盈利能力', + index=False, + header=False # 表头已写在 DataFrame 第一行 + ) + print(f"✓ 已添加【盈利能力】Tab,共 {len(profitability_df)} 行") + print(f"\n合并完成!输出文件: {output_file}") @@ -241,7 +251,8 @@ def main(): balance_sheet_df = None income_statement_df = None cash_flow_df = None - + profitability_df = None + # 处理资产负债表 if 'balance' in files_by_type: try: @@ -263,6 +274,15 @@ def main(): 'income_statement', config_dir ) + # 从利润表原始文件构建「盈利能力」Tab + try: + profitability_df = process_income_statement.build_profitability_df( + str(files_by_type['income']) + ) + except Exception as e: + print(f"⚠️ 构建盈利能力表时出错: {e}") + import traceback + traceback.print_exc() except Exception as e: print(f"❌ 处理利润表时出错: {e}") import traceback @@ -305,6 +325,7 @@ def main(): balance_sheet_df, income_statement_df, cash_flow_df, + profitability_df, str(output_file), company_name ) diff --git a/output/宁德时代20260310_204128.xlsx b/output/宁德时代20260310_204128.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ff3b81f93d0e9150471f321750f27f53c1bb30fb GIT binary patch literal 52155 zcmeEtW3VRCmgQAl+qP}nwr#7fZP#^OoAq7Wwr$(CG4dWKMPiKTP0 z_6I=t;XOSj5uJ|Mhuo@F-+1hs%f9IiUT9YQ`-cZ@<)|jZWgS>_LmBIQv~P!i`;}IZ z5GGjzTYN1VAr2e^1Nb!!M4Dn_Z!{WF3&fNXx+0WpC8!8X>tizH!x>-$iVH<$=hOZ< zR>lS-Z3e0l90wks2*VjK5kTgv|J!3`B=OeE=rWmUH;cX)QgjSM{L|^w7FW3}+NOpQ zPag?*peS(e$dgJ)i>vwsOxXoL zqz{Bpl{>~nJ95sp_4#FZaAbeR2CHbx0F^(n(4QQ4*`n{KGdXVa_W%+lLcs9xsRrv9 zZc99-I(E(FHggod6MYE8BRVgc#W|2bBZ8x3{$WcVq}3~;Tig2w)iU`OcTvc*BX19T z-}zZA3DHe{h+YIo=&!s^kNN-O^?xu(|F=i4NR(6PXM_#Ami!1Gd0yO%M--NE7m{ozQuPav z+CXTGDI~?&?54m)RK*SkmGJNM`xsl_V+-UwWYSket?* z@kt!(@4n{@M+!x8vEK0~}EOl?-hqf>#nn+piv+rSA@XfP$vTl7Kv;;5eYiyG z1bmw19-!cDY`|ppL&OY|=&V(sp8UL8*J~j=Swn3rfP1|J-9{W7o~mag6~Yyl@x+Ua z6&WvmpGUZ;;VK7K+zc%N4OPiG(i*q&W%U&S7E*PGSJmL-6dAL%h!c1)cLI-iT;J7p z<8|scwu=%lLk6`wCB?yelRRzsi8U^09=+t3X%Sf6@bwueN8@cQ)<6P5y4sQ@4fW8y z8`Bxl*Erahn4^l}7xkg_Bf^ZQeT-I+<~$V9007v&Zdf9MO}tUPBVnc@;d!Xh5>Z+> zmr;`K!tazuED9H^PvM(Ujr8xoZtinS=djL> z*@dv;kLaO6IhJS)qZIW50~3!bv`4-^nn%XHM;wVQwmKCBg2SFS2v6sBWwc^O(2Tc) z2Ys3JgjedeEvlY?FvnjVVf%bBifiCq&&{islv`W-UKvjG&cT#C){ z!vu;OKZ9QI(W^z3kp zj#c>Mpxe}HLkkUTC#yLI@2`P|yOTCQH@X`KZ76z=qCKG1$)n9JifDtOo)nK*xF}Xt zpFVIGFj_WW9cS1X?B=U19RmJ8_)9IjXike}(4^(7BW2(%zW0{~4*p%ApW&I+TU%c* zFuL1sLzR26u&3w!2S%a|ndRmj41T`P!wTo%j>B|t7w_Qy-5-~q_t)EJ6J{cFkoo+{i?7eJEBZrB1Cs;I`(l zZU4kVt4+@6;1X}SW!ja`*2w`B-u{Sar>xq0$DX>q!?~xr@bEQP|5E7Q{zwqed4`OL1NOMXArp?1S3K!|N# z;5&m0!}z32MvzxP;KzC3uavv#28R@Z-vudSi9GKneE+ZU9G#P2N&6SeFZe(}nE!!i zXG=3P7iWfl9$5cD8Ck#eY}WswgdyG$gr6g6c}A5{0MRKm%+O}Gm-c9{oanRR6jTJo z58clzT3Lej!l87d+$WyXwfd9x&*H!7Uh=Z&C<(}u0+Op#-PC3Tx-o*O$cUhIpf71r zAJ9NLv;9Ar*SWgk*#t=?Yx474qvfVFZ(yeJ(XZYJ z;UQd{D-#*#t?m_MmK!4HrTO0O)1_o4w4L~E7eM0BZW?cD=f1Rc>Z4B0yW2#)mrs4- zp7SlMGImryB{&W3wreY|EkK{G(;Nt~Accq|7;Kv@1O~6u0$K_4HbQZ7>MwD&J;Zk~lv2*931NyB}$gvcLeQ#3NKY<#{ zNbIrl*ZwB4f5Y@Yr)Vvm*bR2Xj;LCQojWrAphu9LSs<^hK1SFB8mNvi=TFqZr3hQ; z=;LwogbVZ1)y+ZQ_m}(k=iL3}T!ZaxzmLyr070(7!Z;w#zw7HU(El@kVf=l)nf2{Q zzkoou&(3%EmI>yTzJF(Tryt3KdSR9LHQSkuOU0~WVH|c08@KD_lwP~c@|Bm_Ga4&j z>l{FLlhMZ!jm)I*SFGN{tQY`Wt#PyU7rmZKr!Wosgy(@_i=jyU2$PPemR(1@Hot#L zLJEMYI9ibwawu9VKijSLqgHY3zGF$4*`9oDOPT_9%u!F;ZHR4p zUL49D%wH^<4*=i)!*!xQbF*Z=S8_Lf)O)DIsjse`+Z@sbPWkO zDa;r_9FOZH2y&wP(2+Q4;ufJkv6vCk+vh2&Z8wV>7Gt3nbR#T=`w&!jf0f!~$!iyL z-y{s#RXKU#wkY`+%SuS$C$D&45@2wEIQR(Gibl*ZlOY^MWDw8Ut(c`v=mfN^#QAu^ zs3k8J;MJ^zAsA;m!zY5B8ex#kBw{$Vc2-vN>t*CVDH85=zH#?;?dC2sY+0orP3J3% z4i>|<*0Ak0hHk$BHOe>7dq}v3xb6j)rD4`={Jr;d>>m6y(}v$nQVNb*3vx09E<(YN z$$i{9o^PDSE|9S%{2t987K2i-{?C*HM!uL_f=hfm>t#3u^Ra00OehWg>k zGRGpzwp=KT7&`QLBEdgj4u0Hzg;Fh1Q4<zbrdtXx~X{_FT_>=&g45si#CmXprL-q%9$|oxeX0-I0^XnYYA)4xNG1 z@XStx-}UzLY?92eLbz;n6vK|}NSW(Uoz+_%5q z+w6}+V`+O6^reyUn+;jX0Z-S%K$1eKYr=d(gJF0+1^B2BlCf9TpGboK43a)iQ8; zzZcyu1CrK`qhJY3^&a}pgn5f@Ep$N2T6}=I$QmoJSYxEXRZRL|)+J$3G^U0e zGD{Xn+hS=85TB0=4)AbTtCvF?!Whkh3{{)-u)_AmDKzepl*e= zN|dz&P^;(y9EhwOy~F=Zna>bP<6@XMIC=xhh3h=;$Y4ON<>!ISZ6!epZGkcwi}>b1 zr70%q!c};+HG&*j=+ofwl+2g!uQa-9oIO%0C_>84*v;Ef0lSaBekTSd2LNFl<6`%v!DAqLRt62l@u<0bMhARvm_lKR1DW+UH){#F|#9d$So` z@AjCHQ!p2bpN{xm_pJoMzMiDwn`$o~AcHTC##81RP9x4;w+W`*Fc@;)ge{A16WQol z0~|Ow)URg-w1>d;v?pU=>DDFBQxcEAso&1J}=nk>(u^D4# zvFN&Vre9Vz%`&u)85$0AP+RuYj=>|X%$90N79R%e_l;#vi4QMbfTu|jP0y4)h#7eF z2hB@wk6`=!1fS$M-9DWaTlxb8UVwJHo91cAUKe3UiO^DGZ|j|iV&E1Z)tQAQ0G=ni zHtMye!DbH}rXri3N-B|aD#BQJpM6Q;hYd`Wr09kL1(js*{~*mTL8w?Df*TB z^M@AV&~(xHheO{?lIBWeZ2*SqT~qwYW_q%&;XOxR9gD3GeWrt$&Yr-%r`$YROyTg` z6_qya9Jf~mWz1DMAc|b8X^h{`V{p6xEx*r1eMDGePc6g$59)6-Cbk&`VDIO+7+#yM zK(H&K2*v23FWczVXo%ck8hA+#Jj{e>@7iGKBHYpZLH}y)|^V0He%>_n? z}KdpWlcAJbz`R7{4T z*N9>XPYvx+B-iH*C?E5BHI8+^6lPRiIc%o|1o*r3x4O2T)~C1qbNStq%X6muxBRk) z4FpEi-Y>nC45B*9Ctkkmno&FEjM`f-nlqniZpWbZE7j#eAb?37l2QfffOxh@Wb$?e z$pOq#d1z|p09aH{RKYuHp#%!0;QOe&kyudFpgX0d8JHe(wEVC@Q2O!*kBG^%UOvcf zT+sygKfTweSf9$-wy{pF1r9c*c%|8nzWQI*90khd0}U z&)7O{0=t7jGO1kBOJd*|sQ~8U@CoHcLnNRNG|4l(rGtq^AKq!<;&^FYucMO8+@#*QF@V_( zVq;_bQz(M4(jx2G+^Alt;N+0|b9Fz((1+yu?C1-cEOCKQ@#5f`+~6915u0Yg z7RhP0y1}@>``Iy*zwI7Eg~Es8hXz9RZFJb$Cxo_gKS~<1%KTcKK_=$GffU4WIJf!~Xk;EOX<3e9!wD%bm6tMGQ{ipGYbQEr>o^>jcdn+LoPaE23tzck*)vQe5mKWt3xMYC-9N=eWfm~pR zaQK0=wzjG*1^62Vo-N(;{>QXqSew_S(AW$SQsP|&nks_^h-h8B1nV!I-fX|?Ij?}C zKCKX}X-S$iL@eEPpYP6c4-qm_GRP+jC(z~~(NZ51GqJFm=tHxd->_S7t&+7t5=hme zAOyghNtG4q)G^7Z^R$9k@_`qZyYXRQk8Goc&e9#@J4`Cd3?Z_(mU9EEMm4h~Wk^oM zJhFKr6WYKxkuOTQyo$ian$#Y%(9}mL6}I|%y*Pv9e^M^!F3-~yYO7ZeW7OdkkPyse z%R9C2$DX3QfEgPj&fVIx?OnyEfgCY|{-~!gPii}KuI0?p23{4f&MhRwHlHolg7y59GN>JO?K}$_0M1-t8MZ)5A%ZK6 z>h8#mh-w4w5xg^p(~de8N;U~IsyL(D7=+*qi^T+ZK6`zx&Jhs%yL0)yT)gZm49DT) z34F}XIk8{u(9%2jyk1)P`+YLK?VoZm5cuy7k28NQ6Y#$t9#4M?j^wq9GIaUet=Cg9 zbiF-1U*mi4=zt)M-SEpriZ+iRtsPUHn8WT%%Y*Ov@Vr6&nS##(vO_qnlE&Ssgfi#X z&1@NJr^)kp30NL}#?wMTW>R11e-%&U?$Mjl%7m!~wzt$LgLxj-y0D-hGTY!E3g_R# z%i^lKjCC%_n9p;u-Ij_VIl}Kx?_(N`5PriWK-!zV!Y_{1bGM>wIS>iGQd$^Vuu0^{ z;|yfoZV*wq86NEXy`Xz*GZibhZc|!OlGFtGdpF*aYM;F zS5L6YjIAIXKnkN4@>TiV=v|pd_<;-T*p{|mEAO?uKL|U955-E}1I;=N6_l*Wf67@s zwHZ%Ps_wfFdU$c$_0As1L}sIqdHj_lnjX!!oa-cr=f5DP+uPo&uE4)v+uCVUr?u^l zf1qa^cpBKY9k^Ki<}HfGD}f^6C_ep7hKsI*fG!8>@TX;UCW+#vk@5eABOC(N@jl_T!X0BG0E0u9Q-HgR25v5_0Q!0Ow{kM_cG;9;TWQCijY3lM={cd!0 zI;shazdTl@6^MmdliT5Cnp&l*%;Zs-I$J@y@^J~f3YJex2{!Fi1(Y6S(AJNNjQ}LQ zark;DbJ97tX6O3_x{SxrHc4_$;?TH;tzZ0Q*c5UmX4vBR1gBirs07I^Y;3E|J8tL{ z$*YSgHJM)5b{(vE_Q(2jp5DZGTI%xhDfxx!GZocKps0HtXs|{Vq19IK`l)TV{j_22 z`HE0DPXO|IsO46U%&(e?KDp4w_n!SAjmLHtO`jyy)x zL4E<{taf(yV{}tubIA-fuv1kgDHJV~&D>&ublY9>I1A=93YtnJ1eg0U`y`%jYVtz{ z$z&(Y?`hT9V<=sW3b8d%qKyOSXqT=g5PH?VeCR_cIByX8R@ut{%fNF@4>+M8&!b1( zgyC=9lUy?WMQpOZ*11EHikxw(#E`4Ob*2T^sK$$X7j>jsLL;K8Qo89nwGapKHC6;O@*{8^^@K;I;NnU!~b`a!2<~5N$j)bSazuL;6MP)NjRwd8d5u zvI=Z85Y=2O)1C`!QH^=G)}Ip+cJQhElHY;%aZ&NB1QZW}Ysc@3I!GT&hU+w7O1`7) z_>vfsI`|MXoU39uvKdKsno(Czee0Ah3H02XSOz0=9H%bRRu@{%M|I9lw~w30uhDv% zE48kz^N(rRiBG0cXHS;gBbdW!2909^ytlo+jt}g*w{hu-PuAbSy0^VaM*gG$2hCG# zIvn5sB`qx=OgMb}r6p?Y|5kCc{8Mo!j@tia(XhXY8$RWFhczMnv zaW;Myl#@G?pTCI5WVs6D1`KM=tl_Rp3e&j&WKeILHE&iKv%F=vm@eIh_NJq~$Qu1e zZv+)R8y_;VH%vcjDC&*zfOz1OL_}zYcl5Se-A{@Pb>c)Xc!GDls)yM zTL#ydAwzI2G9mZE`Y9@>fQx!rbYQ0p*(s#80zG81LZwsv$&-Xce5r(KSHG{X`{UHx z+rwKYzqi|C1O);G$G4l0`F(`xhiZquQ>U*6TEF&+s+IBKd6vp9{k8l4^TUsuNV>PV zf_tK7ENgZ>dlq%uAWoaIRl%-l-TK~*qxOuLDZ45*oceWM#f7ICBQ}?YHn7XX$iAmT zr#ZWGJ8y0QAFTq+zlnoq^RQ#{ut)Q-PxJ62ejIIl8@8mj9O&!gvq9I_=W%!U*X^`H zx81JnvZ&(rAz#P1w@>Qx2mST=_u~|@aT!$pVkch2@p5LPRKQZnKsgTag3A!)^}xBs zgcTWk7I9FvhJJ^OxDSl9t@~zHoBZaM>(GRH`s~@1tZsKRP5lhF=Ne+dke6z9%NHh7 z@Yt_&1tg(u>W;_c#`7s2Rc4ct`@B9O9w#;HhBg(H&MJ2rHk>Tzy%doUY?lGS16pB8 zU@NiyTn~{;RP6+|r!q4-VeCeY-J_J^NsZROSCJd2d#2%t5#r)XAzlaotR;H>O4F#U z7={c0H9I(oL^NxV#SsaF=3QkfL@!&gbOn$LuQHgtJ4O)_B5L=8Qc(LyW|DRMl*v z460LY^U|DazYQoz6*w?SFoZtZD52`kJGfR{#YkkjEN{ zqXs4HxL{v19wjKQ*EYjGRmM^3OQ@Kr$RO%PFq0TJ_0=Fpmk_Z(V+aavMa}dkOb#=d zKKoBylU*LpT@c+-#d}bq^j^`#kd+$Z{1!vl4GZ>%w8rsQm!^CUii$&j5X8sCn!I_I zZ)0P-o_;&LWqIo<8&Q`kN>d9jt2ad(QL$s%oOsL2HzhEs4gnstk-DwwX@(ysX4V(> z(eR2XHk2_+1vdPYzy6kj{w)yxzfq%NqQjP=Mh607vIGJ`{Z}IA{FmFzOjTT*tn4kE z|H+ow>rSXzZeiDWyY7T8WPO1n_r1WfvT@$HU1>KBfMehYd(Vsr@dlj+6CVw0L~cSN zrielyA|fK!VA3=sNors(Obv52y;ro4>j`1Kg|E7RR+04fCH~6BC++Vycc(KAfBx^w z+Hd?XzlV*`gn7`bcos)nkArd;gIt`~`O`oFzt?q?(Vp7bUltNw{O^~c3A^*4-z>b` zH{~qfF9-l}2?qRm2MKWn1Rv+yJ@;>)yMq&rZP;7^9&VT2_FbgT*J+sTTmf$-f4^_Q z@4{_g0iUPyS%68UV<*SB9-zF!lvv1xVh zzAx4G^Dk4wnI_P+rkA(4|2AmMweXum;)x`0qYgezZD`UGg zVR`AX>d~HFv#GUaVbhq=pDRVq0r%R@%Ic@O!3c&v+cNvzYNf4x+edxlJ*odw z({pq1>Pz|1*3s=%?n4vR_UZ8D;ipr}#-54S4!b!bM04z0?ZC8x`8`XA>}6(n-RD>? z`;+zRm%N)9Z>CR`+oX5uIs$&m`N-YfX{J~2bzSS_(E6ZlK@Od5XET!ob7d!0`10FN zEok+qCUT95&O-loo7ETlZZ`?OM-@D)bBMO{<$??SwR8o1^XJ@gH|j85OOruqwBK(% z${Yws+V?hfdC*vy?xvzCgHzF?#`VqnYr#?5bW8P>-e}iX4yF)~w(ga!KN~fi_9u;; zjYMEH@-dqU%pBCI2evxq-aN}R480GX_IKp1IF{O#?Y3i&mjOCF?`JF4O7AjmH`4Ib z-rnu4KP!zDp8hK-w-q!dR%?;aOaT8tF7xk~n{UM!n*;d2DM$eOv#Y^K%IiCpvbZQtb z+7za*^SubIoo=Ol+)?NNfugMrc|Q9hVUDK;sMSBUtj=qb)2vTd=>ixP^HttXpXvhL z-_GowVmVS2`p!ScnWOh?o0|_4A0=fP8?y{@Y%1flVlSQwhjxRHCfh&SZr^hJGA`xV z&ot^!&0c|RP*HfytJK?jj~4v8*s`}bt(UK;tgSk_Z17}OMdhlRT{#(=6Stcis^0?+ zT8=x>>*MY&L$`LhM3gYK^CNS><%R8nF>}C`L=}D`=Dg(~C~OWuf3txz6eoDrN+3(x zrwy?(Q{*#&5sf|;2AJ>m%rh3V!R%u$(aNfv(K%Y;%`uuC(t|En7+ZYyfLi$-^i6@w z1KI2W7M2u*<9EUvw*4>z(O;~9-uEOZi6Sajc|!KWq00ELXLW4j+QQMU4^Ug>JmTB(C~7zYLjjoKhW?b#F~iwwL1Qg7Jj&{ z3SWup(`2?3{OlpznwF>=%|+dMus(UWL)9tQa>yL|y0_JZx6h|gtxind_Ng)*_2_@= zI2=5#I;XX|yl{h03s-oID>Ic%uria>;FfzGJ8F#Fl3!~iJ9PV)!jhidEUJR}lS~TC z8L&cOkubo7>4d#XUqq2|tdifXRQ#S7EEEO1{}dd*A#oBs_nt3fjxsy(IY71_r^j5o zLeg9`SdZtiS#F$5*J(1lP@A#E`PoQmZIN4!7VAaSh_=g zkh?(|Cim0iZp41Chq)Cho84X*P?kAV^I>l-;yV?eDW0dDBNDaSicbk36u&!#pPY2Y zQ>2?Nd>ObOrRC!oXq|=H3kozn87>Qc>5y#HLGh=lMF}H|&HAaalzkn;aa^rw-%uW^ zLZI=Yza@i+VGTnIg?ct*TyxqK+I z2fSTIpGR6+YS@9G-g+^Yh`#7->2ZRM#>)?!3nTj7RwUZO)VBj$CW+h6fVBdD7(Q*h zQ_PoUL}C#ON_eZ_!n7g8Ru@~(1Uo^H8kiGby>Ci2;F*Ds>i5_CP-@)U^cqkhwofqA zYMW4-b@dnPQtiMAEHag$_2o^@7Hu!+wjw}HJN#KmP9OaV)r%8Ete%CWoe;_c>V$?u zFYyB^ZoU_2q531-VIqxd7A9H92F}z9|9a>(eqaV7)wo7s+qo&>G}`RXD{+^ewx3|L zHNt3j=Ttc&PZ5) zk`Xv1d_))hkC32uw$XiglBmaGL_fBjZbQZlQ}D?S)(es<)ZpWg=>UDdgP;fC>0F|z zM3dsN#~e`BeiL`0sSxJd1}l;(_S;LgGEi$S$&@P!v5t%s)~m@u0e+LOks}iqpn`L@ z$A6^Uurhu#5=Bc`&~W}(CAk7O6RcHWiT&ZW>ik<%^ctj3$V8ajq}5fY3Q^nU8V;89 z01ReXZ{!zaQJv@lh^@RRofaoA7|=DeAp4H;XTw==DfQf7A8XLxP~q{$sYSkFvOu+3@Q< z-)hKNiy9oZH-{>DIjw}Wi^;WL__kuP5|k%}KqS=LFRHkEk%0}+yU;RRM9gDF(cSi> zu6KA~Abt?rHI5+E&WM>j)_|4~k(*_Ay}2$zB1t3@C++;F0P>uFqB?#JPjF+8|! z=w{h=w2tGAQ#F(4HWC=H{83TMrabSvyw!4^>F_cp%PemmcpU>QYmei+KH#a?u5Maa z^VY0&zREo985R1`ZRadn*0pxdNyDOJmaJ=#C%KfO?O+t6=U_@vtLm-;og z(X$z)Ujp1==S7ddd$mojt;L3aROP#`KJuU$qg$8pKH4NG{PJqqtQNDe5KI2g#ydK9lgW3DSFk{Gc%=RPCVgD+RAhwN*)k_%Kk#pV6~-rre~e zf&Tsr+h=Tv<{&t~^`u`Fnb3oYSm2D2H_k)7N&%N*nL<{)z9)z%w)YqW z_qKT>AS)q2E+bT-N};}|pjdDGbZb|k&g!r~#Q9y5EV}juU)i`A8i!~A7*ESS;x|Ig z8)VL;sx6Y*GtxDJE=}#3ewV+s+{cElN1%S)ak6p_wE-44Dq%?p3_!5Nnt!F!B2L9Z zUJ_tL`2;KpSsF&f4g|(ZUDJ=5B$Oy2tSmy=1``de#tAz^Lp-Qr0iIpQU%Y7~sD{Yb z=yLm}GhJGe;~ULtt=z*?Nz?oeaeOO~3wWbAHHoWO#(`s7F*7fB`F@pX7uqRLFn7 zg-U)5yniYSynVR-D&C#}f-as&*RT!MxGor$kU@}GB47rq?xQ1uGqf)jO3}G= zgu)AgOjomq^;yyG(wT|F5vAfDT(+eL6@?Fwc9}E-Qhl2Zj+`FU5WUuD!xk*Go=V)F zaJnSpEI?_{6MJ-2->PGFzBIKz)Z2?hN`VhSXl#}Gz~jfP*Eq+9gF-qj z*LM@Mv-Mu9rd;3;Tzk}&>n_R!5u-LGm$K@}TZm4u9Cz#_4~m@lBEiiau$i8&{MVwkaCiCA-JL>sh9g7FTO7ct{L`X@+ zE~Zc}T|Wb_V=2wn-z#f>m`qj=%MRIAr6}NkT8-@u0)*4TZsa4zO55NmmxT05$BmsD zDUK#IB-^?^=6KU4I5aZGbt)^>Zuj99JG*Z_21VJccp?Y<75$R7ebOfRrk3o_?-9^q zRBlQK4)07;~-Ww^K^NYazLy8v1CpmP~ z3fT=JPXjQb`FPjH;Tf2?NUptxE1b}fd+oqRPL?XoEr0E1LF1TO;4l6@sDMg$A5k__ zJkU}meFU6jD#K2h@H!EfZBa8G^?~DYA=Y8ick5kQUdZ7YDR!hEV(E1CPpT3J0KuvG zvO??`6QxztfT(gr{aiOLI)3+%L9PeaTO>*ruRGrCkw@oF z(a+2EZ4ytX%+_U6J3=$b<1>8PUHzpd9tzgYl}3I70u1&lh)roMKn#2K1&5B#6zOWW zFc0~}IRj6qN+sVG%T}>voOQIRwcyOdvyJ~-0YitboWZL7A)SZ@k$S{KZw{*b9rD!2 zg>oV>IW>y723N7O@L_3Vn;O&IjAwB>Al$Tsu7SjfM|30xQcF2Ig>eT}N*L<0p$3WA z(D;T*LGY1dlfFKAMq$JnMDM(L9sC0rdLZRTM(-(UL^kBwp4j7)d6@>zGHkD5f%?_# z&T;PNdMf&zK@$oMb9ZNzqO?##AOgUAaCBihYWriny3!!oWyXL%C=|1zmBGzfxp2os zj|M`*H6)gdutWiZ^AH~rrKBR}NI?w2Oy^)jnAeDSp!fy_j2?fdP3YGye=J5XJVrO` z9!SM(2?OT59{{Pz;IstVK~vZ;(}_EZ6}f{6PeW145(iW`Ow>1j(5aPf3k>x-BvI!M zUOq}g6a@@99cEVrvT$YWPOMCCIrbMFvAq8)Uc;Ckwkp+)2L%UJ*Mdf8Ztj%D7nl~G zsrjM!qQKQ3qG@_yzK_C_DPxcgy+y0iA7f8X6RC(WTAyC@tDq8~$x33+e?#qD{ z$#9@WO65B0&6?hWU;%C+0;iwGr0V1&en`73+&04;lS&<`3?4Q|_z=M~N78KCQik3E zN8*)yOnO_;r77aIl@&{M(?eTiF*Wb<2o|7EDSkIg6Wb&U{Pz4p(o3#Dr!6lL2Iz!l z?mYJ_KNjwn(@x_j7wXAC&w=YHby|xU@SeSw<67oF&&%#*2oZm#iR{^lQTaVF7E6*v zjot%BkYY&2+Lhy`W;lsLxMMGp@>t&856JE=KR(HW26+*#f7MwGtzQtsDYax8!-2}G zeqqZrcv*WMeH_}WhvFq&zuk4V`RToON`~)9`1(g6>p=)a9nDN)Z5OggeTb7fC9E%{ zie4l&WhpgMpKy4{{l0T6CCdU@1Lyt-EfYFI@LToCZt5}?oZGvlp_)$Tyh0tlu!8A^yaD9E0mtS0B)iaZ5jGA1FNx5-@#yYN?cI_K5RDRGs5C?Laj z>kpC^-ME%n<-XM)9d+%__})!NeK!cbYr$8vaur*r@hdHk-m1%LLV}y{m+-&leZYNb zCiB0o{({2N(y|(FdVc@l_r51?XR-;jr9Rm7*M4NFv=D1<-a6qE0-U&UG{ydLjlE}gc4u)-2xs*KGd_y0K!-w=qiwCp+Ze5{0Gfp3 zBjgm!AZdT|WAss}D$dC_>AX-E;n0h6S)>(z%vGuCmy=%7x!X8j>G$37#NR(w|BEJ} zw^b+7(Z3b~SRf#{f2%FKc-or%v#30wK3TQTin>K|3!m`Z`f7!;Mm=ijwJu2l2YISb z+GM}ifF7&Ib*07~ftQISgCB%eAt4!&YQ)M5J}f_1wBfxjFBGA6vA=)qbIcK|zd%-x zA5l@V!*pk_Yl@T;nRVwH-PNXW2~|fO>KU89Ln`jAoR2XI$Q4aqV{vLG64e6gEyuJ= zTARWJjIkFDEXJ%L!&8LDld0Dv+W^+2gYKmbsMGh`?N5@@oE8Wt#x9WKk;fg}ba+q> z(P`QWqRTpah1Jt1^($NBJq81;FJpe1FX~hJmZxMRk@%VdiqcV&DHq^&xCc(=!ViALo)f(4kJBU!#gZbZ0uacQh+4`jWG`BxlxCn4OT0|@48czy<9~~$ z8wzVf*MSK!Bge|jS$2FMh70(;E7_p66xnV|`qD9a+AT^$D=i62=-6J6&q~|irE^2@ zGW)P=sw;}a4bHwG*@ts2QfP?e9Q&Idt0wV(d_476cYpIqhj~0HP5Jmx=ftc~J!YIPfIOt zwU)Pho%6ndp;860Aezw)kp0@mIWP*Ede*ns&P=yR1IhLQ>Ehrn6Y;a%)_Bg=r6SA{ z?g@y!1A3|K7wDIB5%113DpkCDGhN4KoiDWh2`XEAD^;A|cj7D?gH&OnXv?}b4$&!2 zOWCnG_%YZQ;Z3e8>pZe#ROx-22fuA$PJUd4(TY6tf}IC&caF@s{P7-Y_U(5-EJsP% zuUDU18V%7uM|iUkN1T=4)-z$W4Dx&ay>k!PF3WkLao8_2Q7KWf+^lW*kGkM&OF0C#Nw(Fx8_WsFtcq6bxXjS-}@x}6}%8u2Y#t-)}R_IeQ z1Oy&4^xgVk74-&qJ050EyYg0h@>$>Y%FZS-jv{fXcVO1v4vc=ne|2C)ct@vJq-2*^qp>xYS!c2gncxft z{NVicw*#Ygo;2AhGH3;&D?Ly^>q0E1DGyGAc`)$U1T3*MYn*v7mtedXmBgfU!m5(A z=miLz;V2GaRQ@!k6o}Rd%t~2TYkeRDQ#~+mNCi&Pf+`7pp{f$-pa=op0LrJVP8x4`=g5Q~b-($abWN8Ya&$*bnhJ3QWq9-8DEaqIlIE;dbW@`>N zA@mh@eTjY)ve0z&6z~}Bvs8G~<2Cat+%|t}fZM~iO?A6atRv)5aJdU?n1!;UQu#se zxiY33GAnrf@cp@x?(e(+#jIjIkEK49u#HEiVUgNNxXn6N5@?}T?P*T~@S*s?gE)=gjM?Vs z@ck1%wXv*%&8l&e+9swEnoiIeu2?A3ip{!G1fqzC*ikSmcl1Ld{R0FE5)9X|g$LLF zWnJL=kiq}^aoYd;KKJWp-T$?^`~5O*yUd~ceZBkZ)!-}4|8wrt?|q)&i|XSo?&bB` z|Ko|{<9qvS;j91p`%=OGDF6Z8GuA}%iu ztNHsy;QRgi^ZEPH|NGP5qxHza>eL|9wN#niu1AG2?stqzliXG|{{Vg90`ohV@;olGq@A-YA=?yH-~#tCnDV_YvgD<+93k5b zUEqT7Gx@~=-GleT^~xwuH4m3xY<7ppB?r?BXlIu6hatl?uc;mHMT~Z~63>^Ch+J-J z%uukK%>drkilJts_yf1INw!-%8-DaYf$#g^eci4lqvhi%3vG<6M7DZr*T(JYgA0CNHWAj$K~%`JMl{TO=pXWW&Gx$1(K%(S8cnqE(jC5qkNLaZVvnAlly60*RV>a#?=i?j%bqwOBfS1jD3P3@9)B?b|3vEoTs7H z_$FrdAr7Ngo%PH0OQrI?oU6mId>J%?&c<=@eIpx5UrUP$j;khWZ1kt0HncWq--X~> z`RdKHTJd|+O(mRq?9F@A3Z2J#r{jOTn0!w|4%Nro7Ja3M>gn;aUdxUDMaf&o#nn9d z!Z9QX?(Ul4Ixt9Z2A2f4!QEXG+}%CF-643e!EJDNcXzn+{C4+!_uhB+Zr(r6e7fs& zRo8S^eXFbcoI?;zwiNCJ%#evahRi325eUazK0Y60Mr9pj%C9`mJm=6}e>O$sBa+D~ z<^H2EZWT^M~Tsg$7N zlvwYc;x{G;?;2*M61dbHfx7Grf1;sr&gjUx8LleWhvR1HsoERYpu41*n&1AkNn(Ac zNdoF2ha}Lu-s|-8xU=#Mdkg64xS{>=Dr$wsPnQOpijg8EvY>=Tt`=HNm@WjQ7dez&Q)I~M3mRDHi>`HRwyA|gI-zr37 z`PslLT+T|RHzGp3@Z+Ft3+*M@zPhHt(s49GSH@5C@aL6eJ2n4DwnFJv2!X#-;*ODm zhfeq=L#p{B*q6B3z*2`*OcZ3&E#}eT?Ewj zY@Up?w~dLI1Ol}14m@t5kdv@_T=mNPYdX4c=B}OaA7InPlHL%mkh4oSb<|J2-yzX+ zm`=R6yOUoXM3P6`-s$ow21NDWuS0E;Z;lcY2)4~1=N0Oa7WiIULomhOA7*AR5L6HM ze2$=Y=3OQU*WA~~v7w2;gh>_>#)Q0%xKSc`0!U$AZKCxK(B*M7U_)ZL3( zFGI^h+iv(1@wuD=Am@~Or#UmkB!V-qeDSpx5AWK=?8 zZ&uf|I|6*A;Z#4AV=vPE{$^XS`aH+0hB!gz?)pZCYtmA}sX5Nq1de%h2TsT=Tovz5 zIizLY1wuFM?soW^GB)TT4k?Y-2s+wZ@xbF<{=ma;rGMJ{(8zG>BuFZFe|H-2!|YyE z4KZ41$@}EnoGT0WWFUpK-+HGs*gTu0G8}aP=SvCgepEJAjA$8hhkoaFYs6AzloPer zNm(m1$E)L?%}rmEGV2;l;L^}>4n>ewG}`AyLIVE=h3vycFx!&eLiHbTqs{!Y9T#|6?YR z&_^(5emUP@e-HZo=L4p|`y8Ytq7Ier`7m+?VW1)`gbTNZ}oXrI`c2 z>7)sq7u!keAeBBP+UA@hw%P^$h_rgv^a)`3rf@ThfAFV!_+YNJMyTA1H2hnKWv_Wy z(!q9dSN|+x7gxy5oT31-4ifU1@*Y?r9v@qNPbtttDf+NHaOzQ}Sc%!Y z7v=x+F}({z-qX>&j~*2kiu}mBEMM6{2DTPEy69E7${8Mc>6TlrwIB#027}@YCIJtW zw~rvUX_fM*0H)D~v|Bz`<2|GLkbHI2b1CAnRosf;^e_X#)mKj`GME`rI#x zRRTND)-%S$xDT${<`#wT_5Yfw5SW$J)A@QJQ)Tilj&dJjKXa zabHph5@?!|v>yWH6qACc7uVrt8DdGCY8qn}5!+aNQz(^_o_Ja)Gk)pE3-1SUJK#m5rn7D!GY&ks2$zyO!_x1jU(n~ z<$s7x(U&{pRf!uBw{JM=>3gL@TP@kk=Gl;jJ}X!qb36B?Qiy8?{RkpOakL6IV=#5e zZ;y}y8w-@o-^4yGe$5S$+jaEC=ZK(Dta){+M&ho))6(W(BUevN0wGk%C#T6~m9wV& z_qPe-BU)xZO?y5ANJ{eGhU^sS3X$S$d{{GUp~?~uhI_}1VT`g6 ztZ5{uXDB3S^&84QIDfHc;J-Nbs;X8q9DQlPqCSBg?;Nm7NfA!!I4J9Pc5Zi2ipt4M z=v|griB*|j6=f6pCxrFtyI;qu%Rp0V;|$ugXcSPr=(X<~9*&1YBq8@Fup72l)q%Th z!zpb$??*1_;A>_~7pLgXSHumE#|_>3_Yz&Xu{U63@TWZ)Xk+e2P*Q9;m9}(KjN|7$IcRGx z0w^jrlZs#3J?8S$-oIdG!R-T6pWFo8oB?j`#7ty&r0vLV>=Ls^myiqMVONtxl&U=Cx}IdAVhV<7e6?^ypCOz zXPeL~)9O1~9v{Wbz!l5Zm8tJM&qtltTsc6IK5ls(1OsegdvzCHUO)NFEEoGg^;GQs zni{l$wEbgTiQwKHO&!Xv)MTACV@sqitlnjJ3z{=X5fN5;d`A96@CnfF{s)mH?G~Z^ zsiUaM>1mY?i&zLHKy^s!> z0S`{L6c-ei7z;d61Z@O<8;Qhi+#D?Y>ZHaUh+R=eY)%$~0)98R4BH|9lKgJRg;E!+d$B2ze>cY?g z3MIym*kL_W%{>#GozHHd6YA9K3ttB;k1LBEx{7dGIYGP)Oj3I3KEfxyIfDUmRZy8* zcshtT$&q|d37U{=0pgCerd|RyC0&y3DMI6NO+d`CI@GNocjoc0L?1?=auezUnH?b$ zsNLjeDc)o#{o<1{L|7TrC*7TFe<{RzT5e)^ATs&igw+2dbuWr1< z3#`1~{&oaaB&n@FC)|dF)lr&G%Q|2j91%97xEb7bXts;B{Q&PUr`Ysd=L;!dGl!v! zRN7@S-bqv-*wc*pZf;(EM!C7 zs39kx%%r$SI|`Ekim?F4{0~`e2@~5)yYgsd!w!1&5lV;agXmemj9y$5aPBXcW(ZgR z#)0*-m!9#4j=M|XpC@r$5W<76L&JpQaW&_v>R3<}^}C?+YPWrsO`pE>W_V!E;2&Sdq1b5&Vp>$(N=TtEZI#lCnjQ~H%?^Jg}7GSl4T zMnl{abfuxMP7Oouc}o>RNB3QUe(?>1Jr5ldF$K%#QUO&z8U#H0xghfOR2j%BB8Oci z0M8+?B;G{cf(~(@DA(gqT1PZ@NN-Scm4NY)5W7q@+Sh4%fLGVa70d8~a7JQ!8!^DE zS?Eo+DcSS|alr|0!(*hT_l+h6#fd~l+i$PvQak1q3@%QtPU~)ltfVS(V~6Eh9&WBL zh{D@L)e#9Dc8Tgd5dmH?DRwXY?uel~h4pp(Ooy)e85SEzH3~SIdzSIQTjv-sE_Po0 zS%cq8C?y8U@+U9?-Bm;m`(~-$N>9IfdzRHZ;KPM4DYb*1dX3=^9u>qr-D>p*6RSuuk}t*Kj_}u#km`Skz+@wGNhZL9qIR^ zpmn)~poZ9EswHXn=u5gi5VR&27gQ0uOx2oX`UwTj#kyf{WQ)~e{qn6{^zkBhcgJFG zYbALoq@KR`O0CVg^O+-3%vtSqHLWWNxiFHNh~^|3D||$M(o*wTQ}lVnjhNW%a8_kx zC4&5?pg}P_t;($ybDW+(MJcKC5|qQ8b=nUjlOC2_OO8mf9}X+fT9$5-@t7dSe(vsb`WU%%>cLMx<^{u> z=r?;9-Xb3sb3&&GooeaLuhcBbNYS~EhwzmgtG*eM;9qY}q%noVUGYoj?I5|!XF?|T zL$HZx3A8R@E~dx?;H~SYt z%5JKg9o8BV!CQuL@GJrAV(7?RTa5 z<$U=Bi5ifqyJemLm2}(ql~opXAPNCpLE&VV@!R3V*gm}X{YwDRd9-R-svq^~MfT_w z8?W{VI7BSxTTHd)oWQTsr>(8tsgM&Oaf|DDtc_*5a;rdG#A9V_qxiWW)M%tj6}jJ( zJe^t318f!89*(lbv0hAnRA&Lm6}> zme8mOy;7esg33Bh5_36g#}Xc}rrS{VU(@6Cw@IR0Ij{+x`nQaci<0!mExnE_Z8^4_ z5i&BED2mBl5O7&0=vTs7q3ARGW4@Grri@Pa&v3OfJ{-b^3+?q@gO|v=A?^nX;2u_; z`w$|c#a4`+F+<_8`sht~HC|3yb9i0 z;QMu#AnfSkHco#nP>b4}n*mv2{L-<92{W4=Q95~rYT^+8GUl~&#F`|KNO!DGVKm%S)t z__d*ZO!Uu3?33JmVwLg=MQ#y*7S}bzW`L=`#&n_GhXI3N4SfBHv-z;iAR0@e4yrD@ zp);YD(g>UG`_tvn7QpG6-mVz*C5JruE5S1t68xkNZ97W&51F;75Vr+Tg`q?H3dLxG z7iWALuJtlnio+%esO(+tTh9(v!bRCS#h_1jr#1;9*qZ~>#}68S<=yq|C?YTdmc?V_ z`2~fsYesJ|cP>5V@@1ngf>k^>6JvUSRc8w1#2V^(F*PvQk=FkjU|~SMLFZUkpR3Ax`^{j{;o# zQ?dOiL6*rmj!Euf&EVsa4faQrKu^qQJz+hl@O z{nDuK@G4>D5Zgi-XVJl7HC#pM7NJY)QcM)K!l_@mAFn?=PoH`a1t1*SIBA56?$-IF zTv|TxIA*v|ptt?ra#=iYUctbej}oU?y_R3W^zE1I$>8l8(|q4GGE^brQ2mKL>gJCM zJ=bWjeIrFx_}17_Tq&nv<=Fw+uRm#^nGs82eV?(@73tp()ngs(rqg%qkVi7D}Z2b(UbjM2}YEM zi%18llESsW&_+#$ntTk~fUbN=P` z2zzy2B1A*%X?x`pxsW*=v9aFCSk21_+p*Rsq#0mZZc^kqz%SvaEfoQ>sfEPdy`=%- zxCH>W?o47}Zo0gS{{5qO^ZoH-)pa!(C6?r<-ZpmZ+QFu7$j|jU5ke$=)!t{K{cp?8 z+6vso+SdHE#P)^mJp?c9CbN~@gT#j0p2k+?$xoL%Yls3=_gw4-l%{EmE;}QgW<7>} zYJiU>ThLhVJ*4L|2A>jky63M6PNH;)X8g{zrjqZap$%4ik#%_)?Yvl4C_@|^U!?9B zpv!m|xyBtF5(fOP4Xzjc{c7Bz^wBa|866{iQ!RK0{^Ix#8=lxR^TeQe_ zp2jOOvcTtIg#ti5FSZAu1UNo*8>+^{6E4(ZK{oZFCaaQ5U zFcZ0MAmx8@_lu)Mq`uj8u*A+~({IjY$9uMO1)u2+l;|RWHh2zkO0eGyq+O65Rff)h zXCMb#YP^TIkFe3pN@RDHN%v+slomW9)YmHr>x2#s^NE#ZY8F>E<;in91hVV%c-kBz zd8p4u*V+ck$fm#XF=I#v4u0NFsIvWPQB5}L-}%^ohY}O9LZMq?gG>(Z7jX%cKpT-E zW1weG=i=ZddQ><4R=0O%Is=AokyXV}iXuVBJj)6Fx`demS5=4DWZW*cLsD%bvkhb4 zZt3Lw>L^@II^uk)KJ-h5q2!=+`yrvW0FQZMLlSM>2&cz4XQn|WDs8EzSVzV^acEgC z5OfnuLd7rT9(&2KCk8Fa<^CtX8F>XKVa4)onu|15h_rsZ8dv(0FjVm&5I{vcV7#8a z%ivbPu;BYQ`R}@d?f!MDoVGy2uIiWs(Vtzh-PK7jg21Vwft4^D=f%PNY)1$1Y8&3} zmuIHB^_neStgJm^L>CE-`t+s>%7bJ_zr|Kv*K4V20|!iUmAOTdh1(&NUl??qf7EUF z$L4KF)d84{j4r_pfEf0&rSv`n&+kJyM$|yBT4Dr=EMk?}yHE8fx`$2XuS`S|S%<+0 zD0M;;G6}G!*~&$rUfx%*eej#%Jmq=rkIU0K6AJ^12bcw7s<>QBD85$+Y1ZSRHjPbf zeYJ~S`I_z2k41uq`{#bbx`z>&>rNyZ0?ya8KXg-m_Ez|{XGYDWJ;=`Y`9!pApD{al z-WB~~Nj-(1%UgQ)&{}z)8(V@{Rje1_N(`Qr?Ov!Nf(Pv&Lah8HdD5uK!W)q996_wh zy{h6ZueVVR_t#1_XR|*iGg0NSa|P!l9+g&p(_cKpD$cMym5|9 zd&1DX+|QtySZk^!sirtb<~<>3PA)BIG**YIRmwf?Qs-9@0Bf=RDgPnqC>XPVG}v#k z1UCJ%ca?nsaYss`Wh4an&c{^(EbP-g&XWvp%W7dtKgoeHx!7|5TfgltKvN#XSG?VUpAGY2-*1B@ z&TC5pm<+>2U_9CkCu>AX^j>-NmQ251a$64`e`LzP25UOeQTj~hkwXVUvu<7{EBFz_S3}TtI2LFkx^3^ z(n641fO+X#6V9I^3^-bjMkhP0Dxaf{0X>0UF`@%_SitL4ZKT# z2d>(09XHv&qmK2nB@$xX`t2oQi>tKSF|U{zZK*667Bo>tj`xF8%Q#6Cp{(26 z@m?-kpNHENd0yt$c|-9Mf)5?Osnj7#e_FjtcEXu6a}>G^J1Kp#=@IV2wEh#5}R zvVE`K5YB4-(l3)qyUOPBa;IM6QU--3`Ik}@-hk?$taL@%T<^9D-AZsRi?4ORM@IzN zk}W44bsYcoFcO0)H7`N2&UKea|0VpS zCZwtR{S{hG{blpcek+{>ki@?4N$tv|aJ3x3?q296p>2ZuzQQWE`~EY(ZgTzGUx860 zNF|?+n(WVeh_|nto;YqC-P^^yv^BLGN-es7(3U`Q0G-w1DLOjtT~<$2O2W=^yYvs8 zCkQY6HLgS%dd(q_?JClJDl(9QkLgij=-@mKe_R7Y2ExMuBp6h=A!tN>bd zjy=3`W(2+bC;<|84A=jpl-g~xae@x;R=~kXOG~^VJ~B{Q(R3eO!#TYn}Wq8_(S{bT?;hW>nJ=ECf%{UBTM z`QhLn$2u0 zyTssN@KUavkJcN<{tD_>TcpzowJ#?47x~V_ht8H%>G-}U$&6ugdS7X@^J&u6EYw#b zMQl_ftM!tdyaW^TA}H}z&9-N!gNG%65_c)#9wM_P9U}#PNu9qWj8y7X6 zMy5AsI(Q(`i`s@PcGdmkctjmJo1!xHg7;43UP2d9B1VV2w~@2l8Y@2>9MXw}7~GWg zEJaMiiZ-==?0ctJ;l{wC$6leXZ8SR;r0qXm*zkjTcoX}v6JMQ(viaDJp8Vdqag{gK5+oQ%Z$qb7Q3jdB zj!lJ4=BRD0^suv}G;P3*EXM?$BsmHAk$tX**kEH_a8 zD7te4HX65T2uim+f4~(hVHQcANUeI3go!`^F;k~<>{ROQBDT+LV3@7L0vg8-u2{SE zNUpH~TL%Nxk|b=$O6ixG15V;(*ETc&(+svb3r)9|)ovY69~HY2{MsRznMWf!?5p=E zGKDgCB4*urFH96Je9Q~;<3wMM`Dp1+sY#nkdC-D`tHmwgkn%qH!FFqod-k|}TQJDc5o2w7jMLj6~Mg5WfMZMN>@l<%Lt_{&V9p z$r?v;zoVhfYQc^u?Gl_=uRHe;G62t_0*0j*!1EZD2!Y*rb2(B+@nmgGf4A{3$pX7< zJ;e9fpF1ywX8ia3tPyK;eOV;1(DPLmF!NP_Xs`}I_xh~7zSShF~~18 zsj)|?g%dIctN-FG4MWkk6*;ZEA@pWVp2&v+oz3%sIK)(iaV8aZSW=N-?S7lzoVTV`7U66MFHXaN_@%BuRD`uEHa?&wM^0 zLGT1V>qXxF+MU6O`N|lF_}5qw>`Uu0d1mQL|GS$VTjn=V^$HjO@uf3tW7BV%E=v#I}2~@H&aG(LzS>+_byZ7PnU9cFLV&lOM)CHFY%%z`r_V zqWEBapg6&!W#``qvn7nP8t;Q#^G4A^yt9RtQr09`qk**j9`V%ON;l@#rDR?9R%TlR{QS_dgYn?0SGZ_OVYyU>4~*9^Z!3F_m` z%#b7|XWO?Q=GUfKD>$;$7R|uMI6ptA~|Q4)B1VQ$6GY^3K`AQ+j}zUW-(t`eHaaC_9i`N)F z_&)mr%OSHG4vgVP4XgYcmbz8ogO@!)$=!Mq$*meNkVf%$!!!~j2w}D_t6OE#)?)+DYxF{A;+eY`=pu~XOKd2{oa4K7zDDCffJ5cQa!i{C3)&?~t zI#TYbKr?bZK&Y`K)chd##7m03Z_u>d8w^?MU#q9Yv?#h15_f1v-Y;Uuk0>V7zj zS+PTBZV?k=Tz(VP5NP%N#T=(U4?h>UUJ0G%$|p&G8NQuXrp%daXlM4HfCCFYKv?i; zhLvGfs?rRrH)ED-GA6|OV!Ec^D!F~W|0mR(*T}8bnqSWU{jw?eAO6F&t(+2?NWqxk zET=chQ>I9182PN0;>nOo9xy={j=vd_CWdhZJQ!n}6HIW&O}{;as@chLeu8+R&hxKn zb00Z;Fs(E}wK?9+`bamTz=<*II6U?w4#}&x=Q)j?GpM1+j}}e(Yh-;bXcr z^40p2s7zueztT_tGG)~swBTJ~6ZYZ7RO9Y)n2o&x!XB|hz|5gz-U4+kI}_h1g8(CL z2uL{u%srvErDtLrB@ph26EPVj729M=0~@xBv0_UMH}L*mu;Ybp!jX51O{RHoTofc4 z%V_|EN(?L++8K=%Ku-TbL=ug!B-PQOQ->+xRL?_q9<_~iWZ)yA1f940O)-R$HeFL|B6)p4fIpAF%ATYP~*vx(7A-(ZXvD}kRJFfu$DAGs5 z)jbNC0$b~haRig37{@v4D{=ZNt7)chy8F@3ny3O=r}zc{vur2lHM%6`%!H`KQ*Kb zC-P6Be8s8(&3eF*tqQyZWCm+Ek$Cpl(SO6}7Vn!3*C+v!BEPk*WO#?|?%NPx_tyJ| z*2k~5GVJoR2XD_iKBIKuR}XJE1J*xaT(n3d^nTOhQGS{F1;Ui?5Yer}#N{^ucIt}* z=j#r4t55pmG=R&popn1$R6|8U!qUl> z-X=LJoq^`SERTQGYbQDAf`?@Kbx!N`Z!zSzM#Fk8ubjf0uxW^MGSE>91_L0boTb$h z=VWa1^Z4H+9g{zXkAn$!I=0r=9XYI#gN4;EfC$*J$KfH6L6l+~3rdCQbq6~=zB+iB zH{!ht-+_(MfFlu~oSjZGw1e=RnP6ct_W3UO<>f+w!b~dUi*W5(NQ_T}NE1mD&E_Vk zWEoHM_nw0gm|a6i+7KJV_y;Yq3%qA3sc{l5A(HJe_-Q#e8Jp<&Tk{^^B8TOgBeV*0{Opyhgd%t#46&|gm)$zV+D58g@=fP`@%ZW za0AF0KZvMd1(wnwDblZgRf^7jaT@yastyC<9SPcc#2mc9HCl;|w=MUojH-*dqm(`* z+Q->N+_A5|GTXKVyc%K{QLztxN0MGmoP&qVxD)ng_PgY#u(`nf>l8P^*vF z__{C&+lMH!Zs*MJcv-JRjngMAn1Hm)TvZcX-rs3kdnZ}r@~A-*#+TG-i7+%%fwmaZ zLKLZT^67U{2;i?jR|~c`nFrb^(MS1qrm~lY+vYeXkI0#|(-oFRA6a6YV{G`m%G?;{ z@sZ={3D(y}|3HI`?A2G`=>rLzHIGwET)}X!^HPOX4)L)WewIE6tEKCgL3^q@U#g9y zThP939k+)ynE6#d;r_bt?87s*)5#OEM_NZaJbYY7TzESCV$?TWvx&x>SfUM&!0)** zRBBntEv!!-TU4@A|DbRCqmVCau4C^o<^50^;`>+v3({1+)kRNyTlf`_!TD+{W-?#6 z4~HAf^Mga}=Y&d|>l;&uL% zGEh;(y9n(>Lk}RQ`d}bMuNNC1>(_4H1ZejB&Ojvw+}rZq468no44tP%1;s4vat7uW zLjQlo4jAl9y^hO`Prv&%k+NdcgBkma|6D`Kdp<2|k_lBb5zir1rm&oqN-W`TBGLaF zMBrp%mClz`WlxNfIA>qv=TjIOBPrD{!}h;PPGY5T9qfBv@KsEd)|8rSX1v&V;k~23 zck0DfW=`}*41Il14Ua%Xw}q>J!#!YarmS!I4XO~1%AGNjyY}uY+fU*Wait;F$I)Uz zDmLsXt&(7a=f>8dZxrEh{QwL_nP7D5N1)(~=7(&Ch8WT>M1!cgZmSkQIp7x2UMJOD zUMqHcN|cdJvgBxgNV0sfiSF5cA&RhU!|AvrL9MEFxsg%*Nfy8Laum58@@-lq9<7_m zF>BU(=2lw-OV>F}QWy~sptv365i6zRXUR&;?BYeHw6f{C(7rs!|MUaIIOb_ zhjaz^g5PcaQ`m)obJtn+ZSevC;ZnS6sc||0?}p_Tf!$j8;eKZS4V(C-UsxV;x97I} zd9!hyUS{#@QaM;bilJR}J>d9t7AZTtJV3Y-kvKide?jI|ix)<#wpJE)w3qy->Kw5$ zm492U8DH()q#wM_lEEBgru^S<{x{@*1R_)E*>7ZA+7eH=P5Q?~wR@EUUN z@0j>JNyat9l@^Epa^U`@WjqQ_9$G4chwg*Zko_2yS1oi77eH1zKRi=LNCEY4Ap-ScZp({jWyHUWW!$KukMsYy%b_R zf_Nl;*Sa4KvflpK%l^l(FxZm7=&hT^)DQDS2|#`xS8)FL#cyt9c6p}DKRkN(&64>E z#N6asxeTFZm*7!oMVEPqN_vk3a3TOVv22f*Ii9_PeL?Q(bA&aGEA*l!dPp>~v_Wt% zjy(B2isirNE_6^D0{n&%v&euzBnm9G}X%w_3- z5dl#~>EMZ@2coQWOS`BPn)K%SP9L>>h;w#q--M3-+AqU+i~)-euWK>f=EWJb_HkRg z&z0KgXzYu0{V^IRNi{>H6Ikj9LQYG@qhP=|J?{-UbLsD z_yIiFB&*)b&ZDb}yM990ULp%qkgf;L0Olk4vj0~%`~Qf8wRWte3#c?Ii+AF480+|C zCAHx~-;)G0N8E6+|I$_eD;fXEv852gln^zirC3+sxIT>b;Ojj`En7p{n{YYb2 z2bUYuSk1>>&oWFbc>%@K{FX;#C7m>0sii(o%~!LQLP8`N2OTgH_kbF4(5TYr$V%HA zsiR{WWU5BZ{X~Ybt~eQ)$^8yGeF>B-O0xI5!k2|8$u(?1bsX^{#Cr6lSufw5Q~rkE zW^3Dxxdi~2Z8N98rD?{ZA4JMzUfPnOmhr13^wRbtv3ekO!UwBxl-=wUa9#Xs|+O&I8wZA`sM>WiI zj|U;WCFp= ziHg-kS-w$hFUtwv-n4P@X0(<*Z`c$cI(m@zMP3>b-Im+dket#B?Ji)GrX`l7V zTC$6PASaSS1X;8&y?X6n*LrQq2R3a?`m?da)7?^E!C*!XO*davZYUp>`&?eh2$ z#F}A?c2>rhxIXJL(@)|3GD{fwiAt}!{5V!iT{W#J?qQ4}Huw^XM^jJB`YXQcMf2&5 zxo>p5F?Ho^|0?VaqWJU&H3@nICsJM&Sa5m;3r=t37<2rs`*P9M6-ZW@>5RHHrOddI zvre9HnA*wC81CiRp+h#VkKwhdf6xrXQv*?avc>`*v2I`N)8c=6c-w3_lF6Oq9OG=< z3+!97emGTh2^;?r)pS$Y_aoSVG02I|-WBUb2qj{L8UfZDk;aHa8!A*x3{^Gp7rB>s zL2&}*`<6vakRyKT?`nonCJ}7yK!zqH?b`GsH#}dIrf_+mq@TV_In9nnZe-&|jxhua zd1nNfD@L9V%}7}%Y;8~2m^LS3BSC0so-!p>#@Di-!#eMDN8Zm(lEJ}i3kVreAd3@6O%KhV>r(*b zJYZ_N(xS>QMrQj8aO+C-~9&L`m_@clF6OSvv+@ zA<`r?GN(gDG#c2F2EGMn+&52HGr@*Ur?-C;B;d6r4Sj?72{+GA-F@HoSLG>(@e<@T z)&3MG#9SoB-<~q*<(G}ij&&w43U!iu8^O`%zqC*LOBkhf_8zeuUBpY2f=Hm=8rweS z5I(@aV6X})OqXGFIizd>TH(1jL(+bBTh@ER=Y4X95GCmT*uODK;&XOe(!0XOpM7w}u32LdR48+qtH2`WfgnK)?r2Nd(W*QuQQ8ws);w*S=1#q{ZiI%dZu#y_5Y zv39;|YSY>c2{|VkOdcfZBevl}$Vs}U^yg3-d)rvccOK=h?2$(dLEhuZe#^-!zS&FdnWQ&D&iuL8t8q1efaH_{ZCZ~W?HrqR2E zqV`gSx3`DjSF&q8T&U{BXsmSYC1@g?4WV4YE{0H3Sa~@S)Lcm!=Z5Rf7^iYwFSETc z$!1nd87B^8OBtO0kK#X+5Ez>tW8C}9UW1Kl8JgJ`ke>=oYu_!oD1`Ik*amp3tfV75 zt+{X)m^5>7#dLIOEd|WlgN`6H)n1q}9eIXG1GST&BQp)P7fXyso_5l}m3gRKdv5K8 z7vs^Ts1#6l3f8!;_JZ+Sv!}QRcwGb$^I+dlAZJOzMl;J1P${qn5FdkFfrbD!8d;7T z^$fDSl>%msjB#o{ZeAFItnSx;Kr!<}P(`z7B65PN-d;_*c;#roOc5b>=iW{s+uLd^ zsm0RO6gpzsj9yw$uz~jpw5DK$kwp3n|6Vr0CH)XSB{IJcpH{q3} zrxrF~2#Q&zy-x`}i_mtW78Pk_IRg{Z&|syx9|}x**q20Yd$=@FnAF@$X13w314}7s z5cumtn7^Y=+!fpyElmgxOO6TD;i;4=&nG}5-$(&(D-~bnL3|0oh(}hJUTF&_7lG^s)GQRk1d9imXs`# zikU^r5}f~|v2ydIhK=)GWu~^kt~r7E@F?1Y#)VPCnIH|<^{-+Oh4IdMOqIQ&QwuuKQj zaZ$tT(So>|zNibZ4C+5Zs5e$Q0pYk-158|NG0SvcmowXU0t7&)SqftZPBPH>1 zm0RIhTse)l@(#(50}BB=#3_MJX)h0V5=>DWo7s;Kq>1kCu6mq3FiD`j)R^V_~A zf+b7;$ovK&0{!)rb02S=-ITqGT5-ejoTndGd`-}cgY)l1>zOmY*<;)AT`5jPsTbD| zzBh~fj5zmpJsa@^%bgk)_h+jMjJCU{dxoui_BX+WS*yMirTg#;JD zlkzDRhCR^z`Okxm;>Idl1ba0z2C{toAGegsV^Y2~ir*hD*^g=+Kc(hrQI>e*Yf(l- zG>Yfy2n^pa%XjEDZ2e$wM`&-k_FEl!J}HuEnQ(A|3&3By`r?u^(L0FeC=L=*(p0&o7pKW(aTG} z`a+-gB-Z;}ZQwIil@oscT==V&(s#sC&Z@U(@WAc_8foET9AFOA(b9RzGw1~aYozOl zB^WDuLDE2yeUl=&R`p`^QeGzdr$0k4kEpsMJ_6eJ6)P_ny)R4#z3qZx#iS%7sgP$M zXILh9He&Dm{)FMk)x@k92&~brBR*lM=mkmxm*-MAOJHO-{$=&~GuXSK61lY-8F{eV zFro=gMg2y`*44kbrkGYnmMvH5hv3a~Gi(a7#xGXnU<)3Xz=DOrM;sjjxA{K|d^f!M zZf3=I^%{}55}ARyofALSJC*Zc?>C&^J~TcMH+p)Ux(}Xt4=M_6(!Vy|^lK6PiazkU zAP3CzDMV{o(7cLhO4R!bRZ-qXS@YQ*C=;XV?US_oOf92$~ z0vRn{lbDSyUhYycg9`<{Sg_*1>i_&`Phz^M$gh@AdS~YQE6Q)G^T(K6iDpjyL;X*c zc@Eka9}Q`|Mw;IIqxUy6aFK7(*2N@l1v?zGc4Z_9kY~O>)k?N8Wkg zyWhWWt@rj?Gu_kGRb5@vT~pK3yDD675k!iFKHFacgTKH18mC zLye8)L{zZacTSvc1LAG!bu82?7_>*^;_YBNyx^Qsk-vpE@Dt~IYqZbPl&zvIyvE{e zXQlO%dw{Q>r}FGdZ|~0i3I6wfgQzf;{wd!6eD9f+=$52Ln1%cte4Z+)>}wnLF`q4n zdKsLHjxe8)#ooF0-4~cW%vA^M&9r;$3-e!O z&$2AdMhRw5S8uHeRY+uA3oc&}o7a18;n2x*bS^X=iMBxgm@B}%0%p^%ITY)W?EZfP z+2BL>d%Q>Xw4o~aY=9rmFl}heC%qO3_TI*D?SFv(`wabit7-?|Gh4NxUZi`1yJ-|H z6VPWLU7!D&|Igj8e0@vj{##7`rI8Z%W5r&4dO$8lfOS`Hz<->~j)K(e3QwT_qgciLPTj!f&{+0c6X~+?$B~gR>zVpD5 zH&+jBjO{wZ%)!7~Wu1Tn@%8z+^qQQ$sq?aP^eK+Q9dyx)w2HUVbVu#D{b9NN{%UPx z+5h46^5N!B(SiSG#FWA+@O0OD1_JHe{vV?-KL0HWqn>RS8&2Oc(k%uhl&f`nbo`l_ z*ycRJyszTK1osRzjZ7=s#bU~o4ua9=x3@C>TN&%wOc%M5dZXctso#y)|K$YGC|l0) z&AV##%^FQCRbNmD{%K#ttD>`Bbr2q3FegK0xxJ|lw4%L5j0*L)2QO=k8^9^43 zGnC;KjcU!n8mZUeX}b9BC7x!AoShDx$fZ2?YwZ8*1W^8ecLMmr<+qsUgsD%yBL3zC zko}hvz$}%YP5={vaI;LtGCvlSYyO^*yj=5r-tR&vhm>if{MqJwxpd8skbFOL=+ob9b`)Uk(6&_X0TZX|4BNxKYoTkILs53f%ao(GE+F z6v*+mVNxg~78atao>TrP!hx5D-gvP`6WYKx%g3pp6D4&rvMk7MZ(sQ{b@M4^2nygW ztdBh4$N2ze`~A^fz3{{3!~NkFR7fJ*|8n5r$B|L{XnR{^g3@xpZN$wEbmzEg+3zOo z{-Frkx9opc1Z}^&!5l=fXup>~E9x7$zv>iF=ZJ>X#j`f$@{L^FHOk$IJJ zpDvy@bjvhlH)a`WF(4$zrFX7VINLNrn`VE*G;KF;sW#;9$30zQ1+p!pI;ZdB+08oeB0UfsSYBp zHe0Ra_)O2Vh?x^Yo)V^r)Z$u1f1z`HT<>wiT}b$Q9^t5>e$T|bO&+GNMH6EYByGGw7`6 zY9p%w9G0dNE&s67UL)o%KSn2>yh22`6|lTa?sXjwAzJ<@60_w&Ht9L+rM$-13|!!o zj(hr#0h#@9&Ma5rNl*U}${5RPpn#un+*8q6dW}y)YHh+Krl?OaCc?17_{KlR17UgU z%D=>P8`!R(@9DJDnS?Y=w&3Zs*O`fQNhaWVwB0!#LWh|p=y`0s(OHHB1VTZ|+1-Jd zv;st0Bi@w*L|T6mx%DrJUh;8T?JPjjBGdPATI;Mp@*rFAIa=w=Lz2VH67alO=?O_f zsv>LgIwA{{h0=9lXt6$%+HoWP%&8q z8%|c{LWnUP1RG9QmO_v)$pp2%kJdXONUUV#0-on9Lm`(Sb#GzPDIf2J37;8qdO-3} zK=SAQH`-&g*8HSB4bBrEc_S?>hT5&P6BXmf&@QBt(Fgi!EMZVDaV>cYCB6}S(sOlJ zNlsIUig|_Kmq&Ow#cB6EJ^Jakf_sJmH!Whpf~$K1J)we0t=q~zZNd(Hn8e7tWryTw z)0tI9zJ5ac*Q>N6kqH?R$Mi^z91!;Yo+I~^@B%MR*_=e&D2X$~hA_7c*~p18_}%N? zq!;Mj63PR%ivIi`(1oog&>_6Ee8s)?-OuOxI>P6V(_^ir z5Ikrasn^j7hdP8XGW7UqTt6H1hi|M|aUxDI@b!D&;x65OX4qT-9_sgIpzrHM7;)oRBq zS8cVe&%a?g!SoxUUGYza3wPH6g$wy06QnsH5cs%t*lC7|VdP{fpC6727Q z2+~fAoiUPhVZ&twVSocp(g%c=qze;n(+Cu`!i4KK!yVcv%s*;`AhtI8@o0sM89ZV4 z@08T9U$^mW zcRXDVN?Ce9xzZGq2z9rCB{6hglI`kFJ_{8*L$ye5DV>=j6PPVvYv<`QV zbj0gp)Qc5aA$B28jP}MvMmD39S1FbI{~?`W#Dfn|)d45V%GU(##+a4s*cU5&uv@B? zfr6f&RJ- z+Q~Z8jU+gb=t{~&sw9QXWV0FlMm%j>6S7ecJ0#^y7sDyx;-SdDpuUvt_z%q-3gspKT0Pn{W+50 z*TmB`P6Z*^oOfH%U)F?x0nb+2nohvjX~qAQO;`0vW_OOGa7WzcY) zl6gKTBPkz7<-ea@L6&6bQ4E~acw?10R?pH&h_lARx`63DX4wpDxS{QpR74;^d3E>o zP)^9XEoxX@6_f1Uk}1b9!$F#Y*+erdfjN!<4D{109JQhEI+Bt&Jt3=D^4mF@S-h0^ z#P_7N^pe!}G)5?{ffn=qQEx8-QJ^$ts^6@aVTWcb3t3cAW&^2XGvH&uI+IGUaeVGN z8<2Zw4!Lmu3)R;+-iggkJ>9XYk6sjNM(=X4C?9Ca#Mu!WUeO|}Zb$PSeVde65+*IG zpjhFFOlIv-XqM1gD{mK*Jw&pZYtdA9$r~P zY>tK``<{10RwZhBj;VYSUKYt?sS5kM1*ujIoP9*;&nn=SC?I7x?`%+H0}|j}u|2>k zPbKdN=qffogtUAm77%lE`f;POlrnO%>w?tc4%TnSzYhJT{m8$Q-{@j)2Pk8#KB>&% z!U;B_zeH+fOmtl=^Ocw=RUi7$*|K?nxl_#XG3+DYVT#>GjzD7Yd!i{#^mk%s`#Oh> zLP;o3*Hcwr0;&2zELRGj=}il|;#+PBT^dm(&&QIhehuGW)LEyc%FMQc+?n(@&Obps z^cR`*hV6STYQZM(?s}1*UnQoIg}W+9ad1U;9Bt`c%2uaA*D#^>ndg@Mb40LhN!r(% zPKbH{yF^0UdLJ^#&6t?W1`lAO%fB*fKg+FcO|{}yZ5*4xMWx}4PmQFtlvq79wkBqv zIA9B$)RYyOMt{lR97lDqgVmPnk1yNG;zILB%7KKC5UGlo^xl+ z8`Y8TU(WCdYpsTyEq&hFVoe602GE zzd=*O#KNbo`5u;1O3mkOL~vUfPckGpq$-m}zIFmt-MfO3&r5eOVqLaAO?cEA3XJ`CnBEdO z#=Vl@#+Vo@J3DbRGb)tJ${g>7?z$<7?#x|uV>2p#XUI@tb@h{&e^((QCLWuad97Cy zRhj&`94!%SY9UV~Rr8v2{bAKb<;6)CuD6rsAloKmRric-e>QFAR1P=Tdz`;kUm1pZBZa%<( zwHXx=k{vbjmBsGXL1a5}mM|lH`?92OKb^zV2?R0XAeX!tkR&loGL&&cK-0ffnA;Fc={3pM9gc>OjJ7>kd3vz92!J!h#8j$2I^_u(?mkNs}a+AQ04> z;TFE6a&m!1G@pU(U1aRAAlYdrFtEru6$-2&l&S#^PVTkWy%r>6GtpEiYw>O4G<|X^ zm4SdAMAPBuN5;{9;-P7@WyalBl3HExJ+R~jvgd6oVBs)Cchblu=Mu-V zf!%vvS30LY>w8u+q3h4Ha%C)@@_EH?QBN{o%~-6NMG#GOPR{#@&5Xzr71s_af_X2y znyfbtHQY0IEO8zM7=F26oCetKuGglE>YPM}R$B4!T*)f8h1JE}Ln{>Utdi}nF0YOa zl!|MGRz51;VC<1hFvGX!oL6?=AXiu_(e=oRAPki#$H{due1x+z?tJZF-sjpTCkZCT z)$V&E<5%=vRt-{nR%bVN*VhAztBQftZBhf4a{%49H1bG2M&21vD?y&NGs(x>wq zaf@A4pu9pL^$?s^+V)&)sxhK@ua-)tax`T>w9bga^)2QTj_4DV(Jy7(e0FQKk27u{ zYTw}L>~sQ2cG*~$WbW7d5mD#suk(cOMzQqgNHoe!GF%x_RTlW*DUquu%3ZZQJonef zHOTPtZK7U>HMsAr&Uo#OhgdY#R&8_&pc=g7W<@PHM$c6=^e zz;$?lx*~TASaLs#Tf6$p=(DaEhrP83ud1tENMarRpx6{s8L4lkSi(vEF z_wlarxX z0IB-7M06qvunHNY1q`N$ol1s_R@@H5TDMnVq$n_~QlrR*8Zq>}jrR3JuO_E>7P9#@=|DoFhwXMDh3q=L%0{ zw#PhIgE|X*yV1N~e|>G{I(eB|Q<666i;e@LdjnH2xszz$P0tyleqvy0=tV`o`YJ^^#lTKYJ1KISqv4(!fy9nD}X* zMqu(QGi)`DWQ`&`pWzrzEjU|bSgi~3t6PpEb^$E`fIo@t&ctvds25_>O|sVCpbvdOtDfW7A z!y9`s*c>Eb!x_e4KBnGn=ZX|0>k?s}XMoa6-pZ0RC!

RcHhbnQHMw&bEws0d@uD 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 literal 0 HcmV?d00001 diff --git a/output/泡泡玛特20260209_220656.xlsx b/output/泡泡玛特20260209_220656.xlsx index 4908d6c3b5bd6c78da04adc18026f41620b7ffd8..6220f4d5dd9ccdb266dad18e850a9dd9f93196ee 100644 GIT binary patch literal 18555 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 U0_W)uk2DG#C~&IZF#A#ZKgFN!i2wiq diff --git a/process_income_statement.py b/process_income_statement.py index eca37c7..43c13d1 100644 --- a/process_income_statement.py +++ b/process_income_statement.py @@ -102,20 +102,259 @@ def convert_to_yi(value): def find_row_by_name(df, row_name): """在数据框中查找指定名称的行""" first_col = df.iloc[:, 0] - + # 尝试精确匹配 mask = first_col == row_name if mask.any(): return df[mask] - + # 尝试模糊匹配(去除空格) mask = first_col.str.strip() == row_name.strip() if mask.any(): return df[mask] - + return None +def _parse_cell_number(cell): + """将单元格解析为数字(支持 =123 格式),无法解析返回 None""" + if pd.isna(cell) or cell == '' or cell is None: + return None + s = str(cell).strip() + if s.startswith('='): + s = s[1:] + s = s.replace(',', '').replace(' ', '').replace(',', '') + if not s or s.lower() == 'nan': + return None + try: + return float(s) + except (ValueError, TypeError): + return None + + +def _parse_date_cell(cell): + """解析日期单元格,返回 'YYYY-MM-DD' 或 None""" + if pd.isna(cell) or cell == '' or cell is None: + return None + s = str(cell).strip() + if s.startswith('='): + s = s[1:].strip('"\'') + # 兼容 2025-12-31 或 2025/12/31 + s = s.replace('/', '-') + if len(s) == 10 and s[4] == '-' and s[7] == '-': + return s + return None + + +def _date_to_quarter(date_str): + """将日期转为季度显示:2024-03-31 -> 2024Q1, 2024-06-30 -> 2024Q2 等""" + if not date_str or len(date_str) < 10: + return date_str or '' + year = date_str[:4] + end = date_str[5:] # MM-DD + if end == '03-31': + return f'{year}Q1' + if end == '06-30': + return f'{year}Q2' + if end == '09-30': + return f'{year}Q3' + if end == '12-31': + return f'{year}Q4' + # 其他日期按月份推断 + try: + m = int(date_str[5:7]) + q = (m - 1) // 3 + 1 + return f'{year}Q{q}' + except (ValueError, TypeError): + return date_str + + +def build_profitability_df(input_file): + """ + 从利润表原始文件构建「盈利能力」Tab 数据。 + 提取:营业收入、毛利(营业收入-营业成本)、毛利率、归母净利润。 + 当存在季度/半年日期(非12-31)时,计算单季数据:Q1=3-31,Q2=6-30-3-31,Q3=9-30-6-30,Q4=12-31-9-30。 + 累计与单季之间空两列,时间竖排,金额转为亿。 + 返回:pd.DataFrame,含表头,可直接写入 Excel。 + """ + if input_file.endswith('.csv'): + df = pd.read_csv(input_file, encoding='utf-8') + else: + df = pd.read_excel(input_file) + + # 日期行:第一列名为「日期」 + date_row_idx = None + for i in range(min(5, len(df))): + if str(df.iloc[i, 0]).strip() == '日期': + date_row_idx = i + break + if date_row_idx is None: + print("盈利能力: 未找到日期行,跳过") + return None + + # 数据列从第 4 列开始(跳过 财报类型/日期/股票代码/上市公司 等前几列) + data_start_col = 3 + row_names = df.iloc[:, 0].astype(str).str.strip() + + def get_row_values(row_name): + idx = row_names[row_names == row_name].index + if len(idx) == 0: + return None + row = df.iloc[idx[0]] + return [_parse_cell_number(row.iloc[c]) for c in range(data_start_col, len(row))] + + def get_dates(): + row = df.iloc[date_row_idx] + return [_parse_date_cell(row.iloc[c]) for c in range(data_start_col, len(row))] + + dates = get_dates() + rev = get_row_values('营业收入') + cost = get_row_values('营业成本') + # 毛利率优先用报表里的「毛利率(GM)」,没有则用 毛利/营业收入 算 + gross_margin = get_row_values('毛利率(GM)') + net_parent = get_row_values('归属于母公司股东及其他权益持有者的净利润') + if net_parent is None: + net_parent = get_row_values('归属于母公司普通股股东的净利润') + + if rev is None or cost is None or net_parent is None: + print("盈利能力: 缺少营业收入/营业成本/归母净利润行,跳过") + return None + + n = len(dates) + # 毛利 = 营业收入 - 营业成本 + gross_profit = [] + for i in range(n): + r, c = rev[i], cost[i] + if r is not None and c is not None: + gross_profit.append(r - c) + else: + gross_profit.append(None) + + # 若没有毛利率行,用 毛利/营业收入 + if gross_margin is None: + gross_margin = [] + for i in range(n): + if gross_profit[i] is not None and rev[i] is not None and rev[i] != 0: + gross_margin.append(gross_profit[i] / rev[i]) + else: + gross_margin.append(None) + else: + gross_margin = list(gross_margin) + + # 按日期过滤有效行,并排序(时间竖排:从旧到新) + YI = 100000000 # 亿 + + rows_cum = [] + for i in range(n): + if dates[i] is None: + continue + rows_cum.append({ + 'date': dates[i], + 'rev': rev[i], + 'gross': gross_profit[i], + 'margin': gross_margin[i], + 'net_parent': net_parent[i], + }) + + if not rows_cum: + return None + + # 按日期降序(最新在前) + rows_cum.sort(key=lambda x: x['date'], reverse=True) + + # 判断是否为季度/半年数据(存在非 12-31 的期末日) + has_quarterly = any( + (r['date'] or '').endswith('-03-31') or + (r['date'] or '').endswith('-06-30') or + (r['date'] or '').endswith('-09-30') + for r in rows_cum + ) + + # 累计转亿 + def to_yi(v): + if v is None: + return None + return round(v / YI, 2) + + result_rows = [] + # 表头 + if has_quarterly: + header = ['时间', '营业收入(亿)', '毛利(亿)', '毛利率', '归母净利润(亿)', '', '', '营业收入(亿)', '毛利(亿)', '毛利率', '归母净利润(亿)'] + sub_header = ['', '累计', '累计', '累计', '累计', '', '', '单季', '单季', '单季', '单季'] + else: + header = ['时间', '营业收入(亿)', '毛利(亿)', '毛利率', '归母净利润(亿)'] + sub_header = None + + result_rows.append(header) + if sub_header is not None: + result_rows.append(sub_header) + + if not has_quarterly: + for r in rows_cum: + result_rows.append([ + _date_to_quarter(r['date']), + to_yi(r['rev']), + to_yi(r['gross']), + round(r['margin'], 4) if r['margin'] is not None else None, + to_yi(r['net_parent']), + ]) + return pd.DataFrame(result_rows) + + # 按年分组,计算单季 + from collections import defaultdict + by_year = defaultdict(list) + for r in rows_cum: + y = (r['date'] or '')[:4] + if y: + by_year[y].append(r) + + # 单季规则:Q1=3-31, Q2=6-30-3-31, Q3=9-30-6-30, Q4=12-31-9-30;同年内按 3-31,6-30,9-30,12-31 排序 + quarter_order = ['-03-31', '-06-30', '-09-30', '-12-31'] + single_quarter = [] # 与 rows_cum 对齐:每个期末日对应一行,单季数据按期末日填 + date_to_single = {} # date -> { rev, gross, margin, net_parent } + + for year in sorted(by_year.keys()): + items = by_year[year] + items_sorted = sorted(items, key=lambda x: (x['date'] or '')) + + prev_rev = prev_gross = prev_net = None + for item in items_sorted: + d = item['date'] + rev_val, gross_val, net_val = item['rev'], item['gross'], item['net_parent'] + if d.endswith('-03-31'): + sq_rev = rev_val + sq_gross = gross_val + sq_net = net_val + else: + if prev_rev is None: + sq_rev = sq_gross = sq_net = None + else: + sq_rev = rev_val - prev_rev if rev_val is not None and prev_rev is not None else None + sq_gross = gross_val - prev_gross if gross_val is not None and prev_gross is not None else None + sq_net = net_val - prev_net if net_val is not None and prev_net is not None else None + prev_rev, prev_gross, prev_net = rev_val, gross_val, net_val + sq_margin = (sq_gross / sq_rev) if (sq_rev and sq_rev != 0 and sq_gross is not None) else None + date_to_single[d] = {'rev': sq_rev, 'gross': sq_gross, 'margin': sq_margin, 'net_parent': sq_net} + + for r in rows_cum: + d = r['date'] + sq = date_to_single.get(d, {}) + result_rows.append([ + _date_to_quarter(d), + to_yi(r['rev']), + to_yi(r['gross']), + round(r['margin'], 4) if r['margin'] is not None else None, + to_yi(r['net_parent']), + '', '', + to_yi(sq.get('rev')), + to_yi(sq.get('gross')), + round(sq['margin'], 4) if sq.get('margin') is not None else None, + to_yi(sq.get('net_parent')), + ]) + + return pd.DataFrame(result_rows) + + def process_income_statement_return_df(input_file, config_file): """ 处理利润表文件并返回 DataFrame