From 3ac09fa63521920458355f60bfb53d388e94c5fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A7=E5=B8=88?= Date: Tue, 9 Jun 2026 03:00:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=98=8E=E7=BB=86=E8=A1=A8=E4=BC=98?= =?UTF-8?q?=E5=8C=96=20=E2=80=94=206=E9=A1=B9=E5=85=A8=E9=87=8F+=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=88=97+=E8=AE=A1=E5=88=92=E5=BC=80=E5=B7=A5+?= =?UTF-8?q?=E6=9C=AA=E5=AE=A1=E6=89=B9=E9=AB=98=E4=BA=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cleaned/certified_schemes_dashboard.html | 19 ++++++-- .../cleaned/危大方案看板数据工作簿.xlsx | Bin 14843 -> 14843 bytes .../cleaned/危大方案编审进度看板.pptx | Bin 46479 -> 46757 bytes src/gen_pptx.py | 44 +++++++++--------- 4 files changed, 38 insertions(+), 25 deletions(-) diff --git a/data/2026-06-08/cleaned/certified_schemes_dashboard.html b/data/2026-06-08/cleaned/certified_schemes_dashboard.html index 8c4d4d0..31e72ac 100644 --- a/data/2026-06-08/cleaned/certified_schemes_dashboard.html +++ b/data/2026-06-08/cleaned/certified_schemes_dashboard.html @@ -57,6 +57,10 @@ body{background:#fff;color:#333;padding:0} .detail-table td{padding:2px 8px;border-bottom:1px solid var(--border);font-size:11px} .detail-table .num{text-align:right} +/* warning row highlight */ +tr.warn-row{background:#FFF3E0!important} +tr.warn-row td{font-weight:600} + /* Slide 2 */ table.main{width:100%;border-collapse:collapse;font-size:12px} th.main{background:var(--blue);color:#fff;padding:8px 12px;text-align:left;font-size:11px;font-weight:600} @@ -99,9 +103,9 @@ tr:nth-child(even) td{background:var(--bg)}
4. 审批进度 & 三色预警信号
-
5
预警总计
+
6
预警总计
🔴
0
红色
-
🟠
1
橙色
+
🟠
2
橙色
🟡
4
黄色
23
未完成审批
🔴 在实施未审批🟠 ≤30天🟡 ≤45天
@@ -129,8 +133,15 @@ tr:nth-child(even) td{background:var(--bg)}
-

预警信号明细清单

共 5 项预警
-
信号项目名称方案名称当前状态距开工
🟠阿联酋迪拜马克图姆国际机场地下结构工程BHS/GSE隧道现浇板(4包)已添加未实施2天
🟡阿联酋阿布扎比汽车基地房建项目模板支立工程未审批未实施32天
🟡阿联酋阿布扎比汽车基地房建项目深基坑开挖方案未审批未实施37天
🟡阿联酋迪拜马克图姆国际机场地下结构工程现浇倒T梁(4包)审批中未实施42天
🟡阿联酋迪拜马克图姆国际机场地下结构工程T梁预制运输安装(4包)已添加未实施42天
+

预警信号明细清单

共 6 项预警
+
+ + + + + + +
信号类型项目名称方案名称当前状态计划开工距开工
🟠超规类阿联酋迪拜马克图姆国际机场地下结构工程项目BHS处理中心/GSE隧道现浇板专项施工方案(4包)已添加、未实施2026-06-102天
🟠一般类阿联酋迪拜马克图姆国际机场地下结构工程项目钢筋加工厂桥式起重机安装专项施工方案(2包)已审批、未实施2026-06-3022天
🟡超规类阿联酋阿布扎比汽车基地房建项目模板支立工程专项方案未审批、未实施2026-07-1032天
🟡超规类阿联酋阿布扎比汽车基地房建项目深基坑开挖方案未审批、未实施2026-07-1537天
🟡超规类阿联酋迪拜马克图姆国际机场地下结构工程项目处理中心现浇倒T梁专项施工方案(4包)审批中、未实施2026-07-2042天
🟡一般类阿联酋迪拜马克图姆国际机场地下结构工程项目T梁预制、运输和安装专项施工方案(4包)已添加、未实施2026-07-2042天
📐 预警规则:🟠 橙色 ≤30天未审批 · 🟡 黄色 ≤45天未审批 · 🔴 红色 在实施未审批(本月0项)
中国港湾中东区域公司 技术部2 / 2
diff --git a/data/2026-06-08/cleaned/危大方案看板数据工作簿.xlsx b/data/2026-06-08/cleaned/危大方案看板数据工作簿.xlsx index 7ce51f415b11ed03cd23b44775ff095e2432a877..e56870e6b4c9fe1d77bb736d419843547b20997f 100644 GIT binary patch delta 484 zcmexe{JWSZz?+#xgn@y9gP}xxBF{mN67iEU4@-Z4oOo5fKG6HHfxz+oT~GGzU3S^f zdAj)Vc_J+AUHOVTa}O@#Jn6YRKR;?a-$j0fC#vQD|GX=o;KshN_Q>-W%x;@zY0DHvvU0@#V;`BUjTc{u2s_>Oqde5B!NXNQO)S4gl>t8 ztKGbhZs&h|ki5;AW|C0f&1da(z?;vfPxx?VhV%|5H;KfOm%AI%)cmg6ZwzL?VQHyi zz5Lfc{ohBYoVG5gsIID+c}+KGx<{$h=hZ2!bD7rNO#SrwQR3#?Mv>uPH?8;-`Syp` zox9!9|Lk`C`>>nKI{(eRf60%#7vwy+zJEeIa!8zvnHe)@^Cw0tHl`Bs&3YW~1wgdC z|qWf>eI70BhH^vXv_BFWnNM( zi+#Prbw#8yPWpLFb~*CPaaPjvZ&U9cQQX3=k+FEDfBwCODA66C1n)26mpGZQOFHMd zPb=1u$a|6jQ@4Te%#5v%v=*tz zpRZV(R`a9lF3V-E4fW35eL`1Kd3}0>4`;rJ+QH-|k+|jM@`frkzpM5egV}FbTB;Z? z|Fuv5_t7b*t*?Ce`RkM2+GvUC9#*YCLyhM6FW6jG43f6QdOy6A$NRJ&yMRAX;8> zKP!lSAeYAsq63s}Gl6Jb)krYELxT-0KS9?O#GicK;5kV8fT00c*(YNrMiBp-Nj!+2 z9ByU<5AMmc&CEe!SIq1|l&HB2h>C_#3nA2V2&HQQmMex(J1s0hD!*8Owd-11gLqk% KZXjxtr6&Lco3cg# diff --git a/data/2026-06-08/cleaned/危大方案编审进度看板.pptx b/data/2026-06-08/cleaned/危大方案编审进度看板.pptx index 19cfeed3f4adb10ecccea61353da67c04bc226ed..019c030394935ad77caa91d1b2086f27fafa5174 100644 GIT binary patch delta 16339 zcmZXbb8uwcxA$Y)#>BQYaVDDBwr%yqX2-T|bCOK#iEZ0@pP74q&%L+a{-eKjKI^;J z-d%O7&e?1CiaiA@ItN2gkO7Cl009Ak0dc~vL%;(AbHZ+*2BQM~ql)0gfAtvx|1Zaa zcKfR_uzG*_1)SqwHAMLJSLu)xq5c^M^uw6{Gh79e4*HM!6R7?TFA;u#{|R5JasUy( zjQt6%d@+akgGd$Gf#(%)KwPfAKUj>q{IBy5Ca3@Fyr$3n*C|x>uQQQV{9laB_1C$^ zMFRPsoU8(W(Wk)ofAjIyzyV`~|4ySQLiR5%7ys*Ym$>{lU#84oWGUPH-{|wt+P)}_ z{TWnn`CmWkTFn<6)(Lw=$DN@i%NyvfA_6RojF9`{*u(nH*Ah4$aQ2u4uP`tCq^&tzey-!m zr<}L+XlGIIgCC9?pBdMW`;)5C^qa6GwV+KSKjQa=zQAWJ-N=|Um#3^t-&<6(8$aQT zf-?$bfdYD*53-~==(U)3E~^vap2M$w@=$ynOXQ;g7&^OA%3H&D5(6gWR$XNpc}JfN z$#0k2Qy zI7!G}R!#}}js>i1ZB7Le4tq+D6*sco8cuU~)HZ}X^u&6;9t-<@Cv9X!;kSNW%5OmM zpH)}@3F+XiY~H~$mvCbtZPx*9?NXKRPndyB`&-C0+Ze?W(IRPEq2p=;X}oAH!(`>V z*W|;K@v}VOoOv@>8E_Y)OoJ4ZQ9>c0+%%kWbf60GTFIXcvEQXi!*dA)TNIihneqTr z?MN-(l7zC|)^t32Mh8kNI?d({G;B&X7$H>Eshohr&()(jPlF(z(()X&9p?qCM#~s6 zMS`?zDwxqH&rWu;BR3t_c7mtLv_&K3*U*P8Z9Xa#{AM2K+n!K>@=!ph^YRtrr}^!H z()r553by(?+CnZcS2q+C2S}~w4^Z?Dc#Dg+#p??}z63>-aS8Yw3IrU#nP={Ypu}g{ zJsrifa3?zra2Q_*4?z@%nRR$uNTeG6W-*tSQSn8Ti`%m_D0e^n5l#x#h+7b6IDd86 z&*UpQzcY>AbUf8m`|c!*h=iNz(+1vB=d!8&BAf0HiV+8jK?g79 ztw8qW2E{vnaUeuzZrdCpY`upD>~5^AR4n8$uH6YV{qvo_5nXb_ElktEs1UKflN?9_ zcNV0eSkehX#M%4dkSlt|>1MJ?ek?uBwZ8y zlyytDH9Dbkr%dtfvSZ3_E>Tf!ljK)f(Lmxfx3zN6W{4*fj*_xtcj@IvI*B@$c?L;` z(Zb)-68z)11Up416-A|X>3*XCQ zU{ebGMuYdwuU?wWkUee&JH|VN;Dg3>=X8>9qNWKh=u-C>;)h8zVEfUSm{(tUe?SXJ z&OmmNUTnHJ#DLWw@W8cF*gTrV1hA|&qxcXWP{+;kz)}C2R!Bmy&3G%Ghu-#z$zOHG z_?1WnB^(k`u4ZyX>2SmoVK=4t)w2dP4UGE?>4)f)qRW~&Ojq#zsX8J^AHGmeDg|@k z%oNkX9!tWP^DjJ>Tv)*u@Fdi*hyu!a(36B?RdESt;3KB5PvQ=0*I@bCz-L1ufG3>G zuTtHNNOP|%eV4nI?oaFUTk*^Nl#Mq!Pb)08fKoW+7`?)W>i`rZJ`ejoZ(QF%Y~gEA zvy2OTxDQtlrVMvAYvPHjE|1RZKDkTa^28Xi?S|I=ReUJSw>&<2arfS0^4tax{2&eP zH2k3S)aL-ht!_wXo%Bog&7vP{019Q;1R2!;7&cAvFU5g#h0Q$;@LTi8(l2F(hq?WO7JYqMRl15ag-Bd1o{SMNJJPDDkp&-V;7^aDO0mW`LFL)Uu zV5pU}{!&2iB#E+>E~Syun;L0D(y#axaMLlK>PxXE=tj$p?nRtDTlp;>bFUZ0{FF+w zfd*}NB#u3B;9)jV=;$1r4-~L+y6Np&BFb^=b+pR@^15XY(#k2bYw9;<(z3l(v`BpN zx-e)gXPh4oQaQov7rZ};0etc9H?=7Jb#>(qHX!tomO6LjNAg72^n(?7N_ui{0-A(! zMY?$x?ILP$*_!{{#sg)4Z)22~7}elzt}gVV-7;RH@4?8p8?#2Xb`(0+y-!VS${&c2 ziwB$s*+JGNl~s)8zoey=$eroaQX!3{@fx~%L+JgJ983dHXcet9^+M0m{0>`k&T&!6 zo%0zF-3SU0z{OgIEk1j0A}unYZ0CoJVcdIjMHBjIz;dU&J8c@yP z@GA9sI?<~>T(_TxX7l+Om4ckVP-Wh(%E{R*gIMCtu~W(!BR;?32$=$XO}GFOF*JK{ zReBv-H<#1s!V^^G^FF9(E1M^8W3yA;YpLE}kRvfza(;zB|3JC$APb_Nu1-E+wPb8a z*Ja=_6$GQoOFhTcx6U-~$rHEmdB7Kh49+f9I#Q-Db8BAlv>``tly0EKbecs`<*`&^ z&g-h0ENOUssfM$UEZ)n@bMgdOkchm6gO0P>p4(b-0!`WAGCCP(Q&cG-sMzH)&T#Ez zh8Z3?1cUEbRaCvwFl5UA$pB4dfv|LuM@qi&~VPA3U96rTFbKR_TGo;Yg$pQlc zSfGW0o!dw@W3%K$7xOHaPW&!<(j6OanK8j@)}H$&-K8S6B9g?gNCOBEnbX8}+6L@0 z=vGYlp@jfO!O1BMvZP0MipAqcPIyYFn+H{O-*oP;JMXjd*$KU-7ZWLeZL6daT=d{0 zX;VlT!$63Lg3NAJJ$19_i1hNFHZ9*^5qZgcmahBZE-_IgM;3_{E4Tf+GaD1nm7|}h z8!Mu^d0BR1A!W}hgHx2VZ`N58+umbEUvVn)*>t@SWbJy@A6uL)3c=MtT|6231(AO@@VMF$6^`ShivRRN$lzu3-6NFya0Y`DQ%X*vqL z12BtSb_mQt)M;lVQvG=-=;^}`G_ggcm$LG{o2Z!tX)p!VKa@)%kF6cxPWY6Iy1D$> z8O$@B;9s<2VY^Dci)eA=+S6zLs$cvqd}C!u-R(`bV8qPJ?X#p$3+E|< z?HlLpU9u_kfKP6{(4Vv`jJec|Xc>b0oteU=*R?}+H}qnj!ilZ^`!K~1;K$PO_s!vK zm@bD1-wvR9O0%Ik_k7kmhKjcFUQj0hmfTDUnW@|zznYFFrRJQT?pKoN+hc?wBf0Jb z(I{(GW%d-_(_EXtd4mqwSf7BS>2{=M)~ppV$@kb7<4e&7u73>NYp6e3K58zq|x)2Kusngn#(zdRFsuHdNWk@#Fej%3vQrKY5xB-Z2NQgRlp7U+8P97sCZ?F0_Li|{(9c|d!l>2+?UcJK#Zzu^zo1=(HYDO`?Jf1 z#c}h5edj91QB`*7)$+CAv&Va%yCt&h+grtQ?Fo~*9_#&RnncZ6wY}1OoBV^kg@Q{D z`Ro2t?FG7jh93W|-CKkA`wpO0w~nu4qGfaTVoh`XX{)#=F5YIU*G0I@}Au$AH~#fx|3wJVCjzhm~k zL~aNMfsj!J5wS@W4G*?pl_;hGwnvz@dGU;2JiFWiR&H80-o{pLc2`E}y1SY?w{*P^ z);kV${r1*1IIW2FN*VY!I-eBuAh1O+=uPRiQXx=Q;Mn9UUhZ+t9`wS%m{}#f8@}`n zf8$Dl$BaV{4&MsFUUSd7sbdp%W|J>Uca{v$-S=^%MU!ccc(T3n`h@=9yVH>dLMxQN z8%ZYX)4%&r0y`*B#6Np4v-}l}5Ht{wJ0O!iJAhkf{Wp;qt}nCKJc^MEsn=y+6dG=L z80!#q!J~W_8i$n&DGZt77p-|QV6AVfyyR06A-|o9|PelgqDXx0R3lue#nf z4I7XPLmeXEARu9rOm08g%8C<-kU&t}AwhBliQ7uf!rVl2*T)gMvQVmv!Ss+GQVaE5 zG5{z=Cw<>k7Jnida;2hjYa}(LG@Bq_cGsW&1b?86{M`jr4V*bRdHlMl=VTX^FshV;w*T+trvySTov{F17phM z7C&O>ZovH|q~joSxvw`8Ip4$e&%twLv;G}X=j-7(d=8BPeG+|xo&pUDM0-A)^GLy#a+liF<9L0uKOy@Q0n zrSerqvGUsel6HqTgeu`g^`%}l=0N}h<)Rbf#2w|q^Xv3P)h`doSsV<*%G(#TdiV1J z*>S6=4?#AX!o+x}o|aEXfXpS$Xxa`GY@e~b2xQA)IvE2WulNDdCpY{5jjeJE#MtkwtoHFI@dKkr=-J961F9ey*x zUWhTndM^!@w=>_=#`mW3sf8H!9k8j}ixbHQSU2(v!2~wh^>blDqUQh%XT6X(QT<+$ zKQ+19Ce5LQ>c#njLBsLkv+=qaQPV~*nqjwI<9_Dn<1=!#QwHTzOxPnDXm+qS2ywiG`e4StMxxby~&x_5B2V9d-bgWxoMl^5~e&uD?jX#9$Y*zPsfMiY<- zf6)=F)aL&)6NE&Vp^>Z4EFGF3iI(he%*K^b$-VQqQyQkZxO5Sq_Asq3$Fk25?I~>} z$h5gJOWr4BxuL*ejeeFy*?ilzZWhn5TXbY{$ATIx)MGp^39Uy4Ufq)p`|FUT5z;<` zIHYiIG6zFKjPHjNy&J4Doqbp0X$IqL^8It+(75poX$|_^%iyt#`=OvaC2{&yt1z2XNweo8?&0d<2*9CxZ5q`XVXAiB+LRpa zot77=Z5(5#_xVtj4>QLS1J^D88Z6JxWBrTzFwTLTmu?l{l=AewCU|z$$uiSB`gP43 zqo?cP@}2AQt*s#uwThEqd zg2$U(0Nz#?e#3D=s8~r&XR#VrnCZ@KXUxjOh_ti*hKo0qFKrk1nXfEpV(cUGSQK!N zWGR?@vML#GaHTdoo_p?mOy6CJO|3<eO{(d zr?h)GqG(6l(wBQp@Kr^*8T=jq?F^a>L!1weMODO>zF_{kcz%o)C|gjKdBoQ=+SFL; z4K?Qyzdr8XbJboEn*tT~3X4jkO=*<&LEbf*pH%bG`FQ-6|192K5#0vgKiWG187$GR z$7~P4pd$#bkSaSVe;lc`?5RvLwus1O(DpZ~W%|~#e*VfpCeL@e+-yl_Wo4ycd`9og zC#CW0(#D+ASiHt2^+z~A+Kwb6+`?72f299cEOQNpyf_;pHb#mBZ#B#NzJo^nh>bZb zil@CzogF273$DF4yQ~kJw%WP&S|kA}_Z(3`g-vWp%ZM$L#&!)_H5}<0(~JA&#!VH9 z=_G{bsNDiri@gVIhKXOq>UP!Vna4DNlrEsT_W6*0W=cd(c``+fhzR8C1E9g>wpsE` zpsT-x*A0lRxCK$^k~@n+^s!?N*szwyr*JDaCF@9aZ~eF{9jf2uIF>$uO<<d>Y}Nzw<*WzB8qHSLXhV`TbK2q3 z+eH_1^VWcby7rr`=;MOJF*!dNV2lA9Glq9m$q_$QVuk$S$>G`}UHiG-*l#*|nOg7A z2dfm@8m@LWpb4bqgLZ3%_l!(|0_#V(VnUe?3&2*{*?lPxA-cBHk!z{{m(AA10S&rmv4b|S&umMPz>j&13i?uKv7ajxqEYNOL<%T9JC zrIsVUKyB9F*)>+&K*7KSDbDJOvMGzmBv=E-%X8IL)F;e(DyS|r)cq>Mp*rI`le-%5 zQ9L|cE$@enHeEY&06@hE- zvcq%47dHbJ(8qjMAJnaM+-xst1P$G)W=TGHTr|AH>J3qv5?*d~rRxB0vP7NGf215X zvw#Dfi*S`a_A?WMZA}NvsC>|mM9V0a`iw*ewh^Z;%x^_~ec%#W;yiu2xJ43(>t2n# zz0Xx8hSgc^DTzE|?gcM-;N)EMY4R`+y{-(T-FiO6WTLFiF|9Q};T+n#RcX6^puE8P zTp3>~mV|1(wv7}!d4MGbPOg@MicjC#F&X@ZR!?^MR`FDR)Q6|V56V5_r!vIB4>|j=k zS@mIWae#N|#_PT6I?JE+FF2EsQQi{nJx^{b88%RclQ&#qHeiL4Im0;QWnDCzi#_0w7p}8-_0{Pv zF{7Ft{`79ujbAYVCe<@w&Fue$;Q(KcXU}@R4fv!35IS z3Umbk2OU#%^Ksk-yRM=1&6sE8IIB`+(=u#)Kr~Zp+`>Flab~^Y zg}(ljCuNXz-pN2MA7*@!bUig{%3vVY^bC?n&AZd(@F@W4cwex-GHnPP5rpF%%jKt( zjX$~V@sr5#VNm+5w)-sB5Iq;d=>t7 z-_q}$9;1;I*x^gCPv&huugym(o%ymrSbUaMazQx2x^i%ZViwp$v1*JZr`~e?WiR`f z0#)(+C`BY4K(ExEr$`u9KgVLIt?)|I zzZq;yn)m6fx`P+SUAGbZDx~&{MCgv>ZTm$%)A}M^e$XbvJ|UDi#fbLiH=9I&+n_AN zk7dS+&J1D9V^mH!#+@_bT>>8vfRxwJ)7p@m$BxdOg#~LnN$vrn|7`z_D? z99(EP*j!h<$MZvG_v5Wt{O_xj?e^%-Ap8TPf}W{`q9 zVH-B0UFRwJ*|09|GQ;&w_LLujxU(sdu_Ey1nz%b@#SEj5t^a+INSHx%;r5jwg`LP_#K| z)p-k9=+g1cS|Eo8=0WxYT;ajgi}NOYVkSA-i)_zfej2XY z3OUAT>&m0a*}Sbh$4y&%ms)d%j4zTq+#lM)44!mkA%}%qB?YS+^}5I_z&e`;=j@RD z^{w9}ebAAlUMrYn0=8eCx+t&cswSc|um%pwO;8oK>nBPK?9>ziENY2a)}tNxu^JJT z_4)JU3@}tTM-?ON26CaH+a^CcHDwk(0vQGn(6}w1IM#7`=+Y(GCzEwsoydH)FnKG3 zlcT1sw|w5w^m`vvy9yHBy^$0^Kb~3_erv%B85Q>)iq%=OA}L->@gS(f@UHFt%5=86 z<&yVWIC(-`fQG^VfCCWtDKWx6KxZ->wNA#fIh=!_w?vv89W1Xt+I}72wg7fjcHZspeR22eKVGAa0zdVwuIjH% z32#?DBDQi=CrpFJ@V2=`__iqq9hUE$++J4iP_Kxc7sf!?QwlciK_CW&e)f+Yq;S31 z-|~)rZagU1`UFI_{5&+DeugGi(B*%J|KG)}h714ys%fnTL4p4LKS4y^Yibyf&YlUt z%IIO^?BS~c{cmCGL@W^{KLw@h(Lf?RE{xhZiq#7yKZIIQRHQMgR54#1La{(TU%YW9 zeDX-F>&Exf*J;=9QRtAz{IX%HVdM79{k&_^3tJ_03yly2goLMO2{idYYxczhf!YW zXra*g5$eO$g7{Aug5@|3_*v#RvVN)aqw}J27@j1PAYG!7J>bVfa{*koB?Q~rY$gSB zF0g`hR;Ac=43Xhyei7pYo~usYSJr}(##bbR#T4@>pdO3VRq3UC0#Rx=W zPJKZ*#qq@3;a)k$_Pi_n zxdot8wstx0ED1ygiOXuivU8AhC+*XJ+zF!W!ZLIc&&*j_n*q=zQo{0v{$TuGzR5crGgW2?zLDbtQsA3--o5UOl^m8}-zqn5?&&=z)b zx0cP}Jw3NUiYx*iDQhOGiccnJ9eUK3{^N5%E8i*^7iO-dIR!y zRkUf?$rCrd>u6Ec(v4&QtP3|vGmr|x8cFBKv$)`G`;2T))q=Ssg=YFiqwzD{q=tCw zyM&6sr5%0tqhK~$zt4sjAKbfKL`p+OU{XWFKn=&UeE{H0JE%<6k*d)2)ePCP(Q|j* zQ}oi%9VS~vZQW_U{`Cj{GBl_w6EHWNO-Kk|p0rx`d1Ve?ytj+M1`N_U{>%Z{9YB)w z=oE8q2oLzo3yHvdlWl0+8YQt?%G0)~mH_USwe+dn*r?bCfs2q9nV0ej~#7R2}#_Mu{27dffHFs4I%bGg5%q zuRX>#mI=6-qfK_kbLcjHoq9HW%gE6mZ(Z%%CIVcD064z%P)Ep5FXUhrBMlG&jXIMD zg>k?cDVnJUAl@H@imdr+l7q(v$9Uwv?}W@K@Ei3B3SCC!oi`H;6)?8UzQQu;eR@m{ zkxb{^NsM%~B?H&x%=LWsrdf~bXRx?69&~LM_Xi*izpe#-ttXfAuuA|<*%ibG;h+ZexV!E$^8Pj_co;|AaZbz)^(iX$8qmF*dJ3K#>ZBcC zydPz6caX2@4iS1~pnP4r00l2fN|-V>lE0P#<0ftLj+uduoBwh0Q*DXS=lhD!GhyJ5 z&{&P0{w0qsv^v#LEQn)~?w{&=c-yU!G+qFMA)kgwLF5K47iC64>%D}VnaNzUy=HxY z9Nko9zY$qpErX!Na?WiN#klCXTSi0fXkB~p(+AKnb+l{@F<|1E zIDHapjjW5`(Q;2HAfsLHThX&90~Zol7(VI`1x>c#(&*KxMj4o1p?gCQo#9_6ivyUt zl76r3Xw9xyE*Hwe>bICG^1NWba4u1NcU$R6ab`zw?p`Q6ZSD(1ms0bVZ@`Dlag9m@ zSB)1~L*Hp(8cWo_5K7W!*>O#)!pI=JJbiekWQPJ(mpkB>%ul3m zoW%^OZM}nsx{2ZN=4X-`KFB{0@y`Jliy~)^8XWDh`?iKns8UN@gssMr1eKf**`oYu zu!ni=cxVAXn)ZTJ8`*Q3TW~0@?d8eSL!-=2ZuIpfU(yYrl13xyGZqU=&9h?CHOFIa zz&#gZMRzn7s1X~SRxtw>CF;EFF>Sd<8q6%3yCb0d9m9cL5B4Ur&$G_)ce4Om(UvNQ z55uRchdciR!ZMqIbk#yRs%OIBGM9EQyN6Q95RR?b7lAS+%(ui_Uy;|jkKYc&3BGFB z`)uv|>fVb4xM*M#1vWZ3t4%VEO_m*Az5Zz`4OW*YyLwff7$ zYi>Fh-Th|X<=Q*4ityKlrUw9s;UcY{MjPA`A`2rQrpD%u*iF`0_`Y ze7(rw3przX=+&|VSbQxlEd||ij6z8AFK6z}JW1_^`s`nSis1HLO42|r__z@Eq~-wp zZX!4mg#zaTWYW&6<(%Z=DBd4Cr|wp+1vR;_TIapBqPX2{mGu}78dm`aK4SN*YrE5o zE8BhZ-e(XrAJkj4=tG}&4u=DBo2)ESc)w(j)aRz_4;YM+e`9xyXx~nF_K^N)KCrQS zpVG|N3r_9f*4MHC1NpJ@X?A@53-x31&MEtpH|iY@jLKl&cVVTrc5U0vg{CQsm2WJ+ zPV|oIZ8+*zdwv0CniC8lnO`@8P+D25#<#Cj-j!5 zs(WNOt23iFEr%l6s~t=p2j$NOW>9dV#2NVHqa~$FiJ8#IQzx`=eSQV1-V+2pOr+;V zZcoK#b5E+;@Q~i(xe!z&cZV4UY72R{PbpeeEUhk~5^cP0hVlwv=QDhhb)z;>PI+c2 za}jggKVnnvgE0Jl?Ka0DG*OAK!Jzj$6?3ClQuUMglcwxl!>IgnowA6vqw< z!_W4(&v$m?_nEX>^D@9l-d+xp3BL*#Ed>M!g2sn@-y|X6$Pn5+;M4b$F1aS{WXMPr z_q64C{#5Aa^r#Pmrz$;50%5zFDz{$RCK0K6^6;K^;%vB+x+XZNKeJUx1vLyuBS{(W zOg@;`H``?+D|Ir%x#l-(RgA5!`Gu$n+s_|?WAI~_;o>UnDjXfz>hG=UMtFXz*`qPV zhbxuRxvQa zAQ3lQ?i8(1m%Oa>i_5@cifMr~f~k*iL^(YtAA>f4fpJX+o(V*qHG?jb!pngMHih29 z;cL79@qJUZgP8lkJ7Q$BZqE18>_l6HjVnJOC|GN~yE^iWnG}d$cv(f)wcW=9<*g=u z^k;^>%m%%I&?!kx3jUzk=8%jm=kIGrFghUFDY9~(D={90zFp>3-H~6|nIc%%@f}og zOM3&LSZdjaC~vEhYz=2`xZtoYk_I+86tf++@f@H-Zcu>M$xvjvW*T^Gt&=vc!xy)>k zu))_8tdW^vmRaD-Qu{7kj`oAb314E;F*5do(vNeamNaU5m6R2d`=?zeGtvd*nw5^H z9|UK~4u(G>$WXqyl&;Y_bV2*Y4fYE8g`B0K9MQ(k)1^o<=9r+TDD?c7*qtif!Lch zCw`Aun>XzX`BvIA)d-&7qgAT1yyYJOW5cO+$C~rNWq%(Q-Iy^+i!kXzRnzZi2p&D$ zlkxpcbq!;ttdbn>x~SFa8h7ajq7ahm;m=BeVRkLPt8AvtFLE z)yXLt$E?ml50PR|Vox0J6=S=iAU6!NaHyf6vCU@bPuAEq4Q&%Q(RY=_vwCI$ZO=UT@hLIq>dQt;w$Bk7ip7`0zCk{+$;Q$h(Uu>94 zs+QilL~oFiI7VKQ3Tmp2xUq`>ubBA$q~*L~kHtg6di{Xq=X7P>)!A_zkK!2mwcc=b z?6}kdr~t9}w^p;# z_;Es45o17T*M3EDB-X33eko2R_zeA^rvu!O zseS?;>R{}}BgtL`gQ*5l$%nsJN zxN6Iwu2$M;eftjM`-Z|)-}ey%9G=x*!pYe)pn~5Jg$~OE6n=36JZ6r=!UU*2m}ggw z>pzfc>Tv60tiO38d;T z4kz?5N&rsw+q`po@UF*L{5U_CdCUek*HMLVP|MXgJ3AE&ZKCZ>@@UQ&>Yj3_osoB# z`>50_>3gJo4eHdgGqQz;UI6dYdT02WQ)Al|pCamj3RW+P#1b=|iO^Z!3G;^PcZL+7 z=KIHQ;NRgR$EGXF0{vHa4%B)PT1+?Yd+QS&_yFQuun#qL@`4}`WX@}+?O1a`$EA63 zazScc@(qE!H|Fp(o_E5lLL2XteG;5H@8K8~7ps zCBd_2Z!BXj2rA$84Y|i4m`_m2Yi@hEEw;~ZBR*;1+n&4ct?_6EqZcTce~k#uZh`qxDUyCsj!@BO^e0rLg6u!ora;d!HY1 z$vvuY{ucbwru1NX(@^+svrY3pkmhu-!>#Jl@yTbO!{{PAR=lEIa#Nq6squy^ z)vo$_Le23xCZ;GylZ~R4BI!G|>jh-B6~J5!=W@%Dnd8QJeUD2uui(3PpqH(W^6(4A z5u$wAzmG7tfj0Ju{+K66*L*C zk)HDPu~`CcScL5gdgJ2Co73siNL{Vn8?U#0FTAFKx)b?9IBat=a){$>l@f@U-vIf! znc^MYBo}l>JL+*r7fgb>fc|uIAW<2ksd$t)o0^hE{|PcuKQ+h^jrAk9Xr>}<8ja_Y zYL`Wij8>>i^>4zbn?Ro}iV$2nTg`2yEt?6joX;WC_W|r2x6IrCFvq$vxrGG3LV8ep zDI+zLtS`O`bzat!8TGRe&smc_BC)%ey;j$hR|3X?mP{pgv&MG*7^Iw10V? zn7BMJ^t8D=-3CyPqq8@v9sj(k^Eb4nhd0Uu+BH5dS1!Z?G4r99B_;-0gMhM6! zi+UG~1Ix=hRBhf%sD{VP+m6Jit)ATb<|W1!8qrBe zY_ME|0RfTJ1_8kY0Zuhy1I~4Hl~>j9x;ORnt`XH$HtT<4@cN`($abv4E=P7@G$Uju zQB)P8EM;Z+Ls3!2#Uio;G0=?ClMCgfW@8P&g3{h;bYpDvi-htHrEXGedJS-`$U^E0 z3myd|y(SAD`4eI`VujMAN0$l<@nKbu&%X$LX=nZxUS1c(y0LoS0vL<8>xO5ORSXZW zFPG}lolBUx|F)SU_}dGCCq&qM@Cemg6ur3YeybHVD=s1bI==iH+#0s}eW69aoG(G_ z@s6s7rP2^hz}8h^s)9&$&+o9FVwsS_)O=XvMm-8IvZT^$k1w={Wixc&G*Xnq8AsfT zhQvhJM0~Ht^9!617yyXp^^D&vCffle+xEUvisH8S{ z?>nWk>8y3s^yD;3Bs~6zhKjAg1Kfb^ct}0BMVA4B_<8aWHGr2WFMlQqEjE=9o9u9- zML-0is{GF{u$s+Wch_~on!}XhxXlaS9~%Pg&Q;Co1N<;CZTUJBVfFYiTiHuYN9sDs z2T28wrq2s%U$tnPNF@qt^+y!yuq>i0cWQSM$b35stnJA#V+Yt6d6b9wQuxo3Rg2Ct zWvR>cYQWmo>H)@=nO)AmwPJZVa)*lJH*s`C0*;FLOGn*uBBWhJg4bfx+vl3<4P(AY zdW$vyazm+O=_tt7HvCiQh9YJ8Gh_-iH)R&rh-%e=j$J}o~J%=^156DCeM#(3uM!d9H%u4~UPInuC; zgO+nV?uXpx#0|)Wezf%VT9I6pR9w?~bImi~C1HnTU{|Q56)>hyL8&Gq(CNHM-od5x zp_i@YoB;v%P65|+vT@`C`t0&?!wyDq*xXjFkeN^S!f}MelorY52jF8@1iQre@(Ymu<9t%sj)K8-d}3{PXk^xC_{@VH+gv}mILj8i*WCTdcvMhd% znO{AJ8fG09Lw3{j*s@U%s~wf>nUUyBnhA^9e?>aN42ylin<0ga_zpTsp;rwul~pmiXt(v(u}OaC z`Tc0`7MHIPa(sz|jO@IQFrlyxepTDy>1JS|5QY#R=<*3Ti>Y#H_@}IH2PE_Qa*(O; z1qvGf%nFufP5Dg1!JZ{*UuWIv6|ahc3KtMVnY!ZSZ<0!;Jy`M20bgCX(Jm6VTaQQ0 z*1)jz6vYS^PCeO!{yC=S{NTaQZLdX*eb5ZW;p4plNIjP!8Rj>~zF%F-pt0Cs%$bh7 z4O!aD5bpN-oO;l4OK}>HEmg9-KMI{{H?+ZSTb#Hywb&X!$vMfNClI7I!8_OtPFDdS zXwV5&lIGFST1VYcLzwQ>dR61>rAd~rmnNz2&CL&mo~#gY^@?-sV_KQg|52(ejL`5|)>i>`sil?&&? zM4VE#+9gS9WH;Mwr^4c_3 z@&>j#Te7{|KqUEK&|2S%lAf{7Hby?{Ra+h5LECt8J}Fhz1r+?sLMQvt%b{!2>JD1o zRgtqGl@tZ01xrJ3Vcr;2kw1QgN*MAeKRXcUl_VnL>Tl(ThTp~`SA88EmPBRUV#$o-@d~dbv)sO<%d_}4xT`(wm?3?5x9u$H0Hy0Swh<&KqS8pT6B2ZLK zgp$I5u<)D~834!>euehmlk%@+LPnb;3u{q=o9_PRA7TJo_>}~bQR(O(WeZ&WjSn$f z@ENdKFyI;b@OGXg72trnp_|=dc0|t|&re-B z<$tHmy|Mpzd9cak?;R;Q&UYop>4Fu*klwVUN%BmC&uhEk|Gj=Y=oV?(Xna}sn#N+^ zjrhfB{Y;R*K|6V;3kco00haNzF zTBt{+H98StLs4aF7FShRmG;eZPBCtQ2h?{&T|}9kDo6mq)fpy{H5uiC>%4^OxQ$Z7 zik)=O@TBNC2&1QpVcnIDexED1((lRe(VBgLs3BWueCjjoofq(#NVz4Y@5K@PZVxZo z(yL);KFMLQq!qZIQ@7UPY67B`!*fz^0;<~9^wO^-hptdfoImk>NU~kNurNI$(Jp`~ z+1RoVI9tZ6Ui1o5AnwT8FVPA^{Bwje8px3b`>jU_UCpe*#4~+Yz*5yB2GMzt`Ix-O zdXstiNI-9F_5qOVjzQLUr>2itEnqE}u&~EK z{w}Q}g+@Q(B?5y%z2)n6Aer16|d?4{o zxI;>YdKak}ld?4ny5rLQ|Go{GwcGjvTXWCg)MR%reaor=G) zycz=FaK+!ekd^-uhswXC`hN&+)nB4s^{=P@FG;BW7g$&SwUqr2!KnF5lxqIl^LH7q z|G6Rnn$`Y|7uNop1G(-mk*oXfr4j(!{^=t5XSq*xD*vmiTD6|{4~(xT07U~<*E9XO z*sLc2qp$`FSz}`;$bf=jfd8k9eME;hc*y~X+KBa!S*U@D`2TbW{Ntkir``QOpC6!j zz~}~^KM8*|5P%)|13&z+f$t3ne+Yad0oXzi@M{AOP`D9`(g>+EMg zPu1zwt54Ogs={-y*i$eBWjSyN3=j|y7!Vz-S_C{WFdeLV8Zc_mzo-IU^bemQ@c;2x z&|m*y46NZl{sPYBADSQx{X=>r6{tUXKtGJRzv=3j^w57XfI#D4c!}@>{BQVDgA<5I zHu^WTLS_Z=mm*c+0D4mYqr_>-{;B>_6_s#6CWfBB%4>$7|5g5G{ijT1llU)%%>9pA z<0gUp-}Tr8|52ZUO8>2=TmuJ;5&2h7MU?!%beY6IrKjZOf9qw+{iAH;oBkK|`L`2f zs-u6C@-P4MK-ZeS;IKMa!}=A0bGqMvp1R&}C~Y8E#1ozmtM$NFU187`Aio}!0DTs% z`A?gfu_z!jlKB4Uc_MS$FWD+>kFqz>Svr^1(gF_Nw8;ZWx#d~*_Np2*ZY>zPO8LXl zq=3G+31F5UBY-d&79J8mP5ioai8RU8>!&tng_f^C%Ko^p#t`mLm*hFMxziGeoQbVp zGM+_;@VPQMVtPQC-ZQRkr5OiXZ`qB??ec44@1Mn^D}WM}Dh~QuRKu)3B#D`a)4ZQvo9y2&1)9H2^u}BF`?y)34BJ7Tj=KC%y{h zyH6~+kH;%3fKrhk{ad|vXB>R2Kz7F7`L2<-GiFcy1n0!IdHvh3zyNQ?H|x(58AF$R zl9gY^?%$_Wfxx#I{E+R55PZr&_LK;{5UZPkgbYm)lhd*7>+SV0PXnTgY<|^rp34;e z0b$-RYXDo50(F?|QnfL~6rP8A4esv^A+q5otYW#b#FH98I!GrvNmoA`dsa! zpUdsP)Z4x`J`8Al{;+ihW*dZo9s#Kg0|16Tfp2lq4tPDGo|mAAu}2V}(a@hW&yzf( zh@@ovf>+bzX3h-z0d|9HK~b>ssN-KBr=nQ;D$FJ_lS^Lk(n*GAyVWlzK+(kztl1?= z`%1PaLyTTRO9rZ_ZD(`rOkVd>@d(&>o?W3G&5k>p@6tHH!D&dqX+)toKz|}yqX4?I z8X!1ML^X+DoWVF&?zj1pbl@xPy9BCA8vMj) z8(@SM!B~RL%~SjaDq!#be(@!2$>D6Mg?ECZ?Vh#`R+V45u#wwj?m#oDsoQ$5>OKjO@{BUNfr6X7``qXl?)b^eTud*lj-@qy>he3 zjjd&ioxSMjyGX@Xf0~0S)92V zN(wrNlZS`v!{^&>Paz0_KVT%N53Ae61B3u&N&5);lHU1l&1&iCWaQ<|A;{(Q8qpJf z;V`A32UIQ5fQ0&7HJE01BbTUjitwPyGnEwO8eyDiM<-Up+Sw6aQ6xUJ48um&UjcV6 z2-5(s!app^tgkWT*GlE`ecL2=^2&KfGe{VYeI?yW`ZAU|h@-H6EucD(#z#nBrS0SR zVEuJtmfDUPyWQ$>FFrtx2XWX%cTN8Y6>i+7?T|wxA#{Y|m@4jsG-85Y4PpeJo^C6^ z9R%4sDi7XUY_02f3kTAC+zi86Zs}qe2hyy`f%J(lN`<7*3`03CH< zN22*RO&qNfLLdU7hUV~;!q$`-#yU~H|BWFy8>I6RAxIce{!z;$iZ}e}Vl^H}Ah(|% ztDG@ZevZ-Duo;EKiiGQoBLmzz_7`O|JnsTg&rJSgJyObL=!DUS>&UGNQ?NWD;G+o< zzy;2IsKg*6(#rdan(sw#^Rw~cIq&gC&gmmbfHM+TL_LI73cb{~og{b(X+w{NIp67u zj7F&2e%4p4rweJz;&#IJJpWfCb}YA0%dsz8+qdWZalLW^p&JxZTKBNRBc!E72zM;w zAQX6Nw;*M7b|V&qwPxcex!bIRHVo$?fH|FrYpE=X300(czq@n#+=J&=&`dr98KWSz zA8(RnWL>o(w6+6P_e2uJ3FSvo_X1|HR5u)S(r401{X~xqID2bp9NH_hs(dXEdlxTj zvVEHgQj)TRs1zx#1;ah2LkAoQ{t)$X%b0Mp9~#1HIEvwHQm!foD8>lCAXmVb0CN`_ zMrLZ#B!L=~C^oLuGc+1)T6DM?eq|U~U=6ipAm^!`A@9;$q{#|CTDCxNChth@j!VZ8 zGcrm+m}EI*w8wH5|Di!1R%J6YqlBrs!qRd|4#;J~@`Ux>xg^_a4iDOKUrMKZXUIW=S_<-ts!F4jqT2@ zxd%tm*O1mzI2~FqON0J;q~e*aHLOh0BYsWHmkkbT+23k^{?Orw+1d*SR@P)&7W}X6 ztcu?7FRI5K#spy(6?OCs)Z>#93#1RU*;wHR6FDS(0uXh;=(k58NY(RrY&(#a*#!@q zbIx&5Dctgy4!;uQBY=xH|F-^AdX{KV2;#EcWew&xp4t;b`$3Y9ZlR;FV_idnF@w=R zJ!K_0hQXoTk=>47`QfqsJUEjlz@!@NMn;`^`&&W5ei_6DZF4X4W-_}!cv z;2lG|2Uls>rhDUd6#nx7UBk8$2KL;^!>{hHo|*d~d#I00VvO3=REQ*)e*=aTuA#i} zmwftYg{799Vp?ps42`AF;3D4Pl9M$mUe0@{l1MIf8O95STv=A-SHlcLsX1j*YDASJ zAQdF~%Ie8?zP9Siva2R*St2~TlrShVK>sFAH^c10MzSTl4p)B7@M@l`j)kbR=xoDq z_H~o{nyb;Snl!VRMq!FfZNc9P&Sc3}8l=ftWf2xiJ;4u6e8S03ZwY8l^ps8rNu&5d zAXi$IfpIM74mMmsOLmdO;xh4Pj)IHV)YPWs3bP{kk?J|QkOD^aW!Ee+8V*2~2PyUk z_r^@)${DrEQ?bAoRj`H90tQE2jI@euw+K@`{rQ1O4dO|?Ow)13-C zae}4SqZ%I^fmD`?A11+>ra$-n#_68}i?70D zcLiaCazF$7VY14`Up#k8;8dMt(4Y!-$!G!J-2`fd8K0Nl@JP!O!oZW<%D@v%$my^D3ey^cTvAzOW|?1a#lUChZNISqVK=@NyOyX=U`~!>P|00H zsqGuB14_q&Pcz4{i!I@B{RlbK?)51BrS8>9U$zvu(++Wj4EatsTU|zI6~$M3Q2pXT zLY$NcKG<;s;*15p$3;g^2dzC^xVZyHO;F28)dwCHwLGnTg!iNEfiPvY05=T-v)1bbX#PMhh0ZK~-ByQN{7WuK z?{aRs@1E^SLWY1VgB5u6t`A!-hL_Q#6!{M4qG`G|y9^AEDqtl#9>zM;@K;{0idFHg zBJ9a_{LeGPwkKjot+NTo+wB_%ldllIEE)dZq7B>*E`*>-MA|J*t@g zD5v|%rljdn@irp`Ri-*shF|M_gx1=jn%*k8KkI-Fh9ugF*gYXAkaEj#JXD~;O}+B7 zWq!V)X&u;kAW>1%8zs_LE;Hl%qL6#yCS+b)kdFq%-_PWg*Q3-*57y$1wRnv(Bl;66 z#oqY5etm-fpOepeB3smd(?nLg(|@x}B1b6Df3qvl_AS3a;8h4SP~Qm_ppL%YghWDl zN0KXt2?5(7bBW?Diir`2CQ6h0h!luX3Kr;I@Ph+Yya2mU0#rrB`~A2>&e!?VGezs- zb7L%>*J`5TeVlJo$ZGO~OCJ0XiV_5bq@`UO1gppvjZYio%Nrud*1`S|xCC_rKiIir z)#YxKGyDGiS9cnv!Jn(ofZ-(M$-K7T7jP|oh~1hXP~YD8>`5o;@L&DXcXk;XB+4usXCcJ*at03lkV!cs2NB zS1Wq7MUR4BrB9JK=8;)aZx%sQ0!%!c67Ds1$a>X{ ze2K$|=f)nZ*}!r078$$j1zwLRK zYt@Ooj}DbmOEw?{QI9{mYhO(E_D4b6|3~(nlA24wBj_D_Kmko~yuTvqA! zCzOH;*Mr8^+}Tb$DpgXI4VrkK1QyjuP=(#|pT4{^^_-5E9s@BBA?IX`O37OGA5KBaso9d&QR9qXIOG1A{#Kq253NY#m*lkOZ=B&v0 zgW$;-3dCHiL|j7s9IkUHPW9Re>kYQ=`K5{+lG4SP=q$QpA5@jHD%VPHS3O%>?*p|kv#>BO zLg!j-P|DlX+xR3VyJHhfa2x(+7hV8;gekDW9dPh8OwOg$LaIjD#vpf;h)=qgKQs2t zN)=JCxty#Jy^zqVC|JM&aRuiz@vGJMv6tiM&{sj)x26?WIn?nENPiQ#Jst$|)wr;mPqMP_hpEE4kJt)*VP=7BE7Wuq$3TiJ5b;*&eK;$OU@;D=RRGuucSFE_3HEr!yvokw6dTB{!SKEd&j0pTX*KQuC>5Hus?(UZ`zkg@{|Cg zS0hHR0(O+Lz(>YdQ8l;22{>{y0ukQiwx`L>4IjqaZ*|&YE05*h3m3=hV+jr42$gq` zm6p94bijHgywFF%$7whf+QoUI8JAr|o3# z#N-9@QL{JH4jy9!at-SQQ@AI*2ID>h@kQhn8fykfw+1|HTyZ8%A^|k+noaXe+khNH z`21S4FhlR?-5ERcu8xPxdjk01`WGHIg9cYq6cN)gik8kvM)r!dmcoa$s!6gu>pQFL;>p-Z*fO^Iw-6X1J&z!$=C=sma~9G=|{HqX(S&yk>g^ z7{23;w1z!(p1EULutUp@k=^rMRUd#~PtK#vgj9bIV-L`TF$xruv_yOzE@~GSX_(AisobnjDrWp|8H{31M1k3LaHLv}( zj_x_xB#K7A$H|$No)BPD51qow*!+{q{}tCECu;zf_cva&w||g1E_ZrX=@!~qtznG= zirtjmGDaL-3_6-|<(@ug)a-HBep7r#Gf4XL|XP!$lq~InSQCJiyg!x%rDWa$Wd?EkYr=U7AQTP4obfO#aGbW$l)CrL0b9 zU182C*R8@FUHJO_RT&hvK_gjQej%)88qR~nzU*Y^)LA?GiemJ4$59>GLmruYQV359 zJz`R!YCG<}!%vM+NU>GD-N9bZ2}Y)td*-T!X?>G_D2u7KKc${5&#>Ej)Pbjz>sRWf!o;VF(rKv2r*d0HFWXv{x=_u~0exQ7f&>P(y*Jl9jj&gfkl1Q|YrBNFk9m9S zJ73_C(QIUE26EZ&WaV@T1x2{7tN$&G`DaNP#JR8L>tY|=?$9cmc@swCeuBwiNa;4@ zxouAa-&8FC8-r%HcK5gq`0|s6J z@{(vPVD5X#7Zr6LNbrfPCAle~xCuN}L&dgH9L>_X-Kl^~!XqoATny~Oc!KcBv;B@= z;>re*rxAoS1M$0v=Kv!w))XqEr!;5wmZ=JbbNi3 zp-!xN#@h+sO)7W53lr4op-Bc4T8sD97yRYYFmS&Z8+(*eeU`PNwxa@=@6Qg)8ANAJ zm^=61%h&c+#Y3hSpdP3uPv(X~t)N=2ean|_E7={rD<7xdZ+@l-Zgf{DIYu4tED%dc zFX6cWnnOvn)iaSyJkGPvzvQ(5UOvCQ$=}yg*YT=$UhwOAI$KJ!5zCDkb6GHH zvb#gMy6b}Z5!%3{RT3ybW?vv?aNq70#JxBHKE1e-$j|FLVi9h-o?uh+Zv5s0n8!p| zdsZ4T*6wMHA{sC6{YI5F$@!TAuxyH` zcX2;%5FM&|KX2V_Sd@D^*NK6EMjULe(c5YiqC74jR()z}x*2X2x%UkYgV3LgZ zjh7-4i61JH=%!X_^Hdlb}8|#p-uYeYALdYmEL0bk&X%{0U~O zt6CHi>8%@QOl@p}DC?s$IOO^MOz-^QR|Msb2i7jz6)fAe^A;I8vfS;Lghvf$M6h#Y zO-Fp@G~yTlRelrPL_RaKrr-0TP1NwDsRSZs)3R!fIYKYBVHnyS#Kjv2pf?~X5nz*L z3xNRsAT0RRcvvG9Wz8?k)N!fFo+9eXE3r(qxoEJ@&7Xcgp(9CQ=J@3mfWSaKFPVW8PqC^rWIWJtLI3i=!kfNCI)IoQSL5jE!fGKRx5Kl{A_joCc`mZr%=j+C(rYiNDCL{WVC`G-FtjXTW>VD-CSxp;eSnJ)zH z?qTR%AN!*iS5*3SFR}F3$rP*+OJav%ccsu^M4>Z5 z2d3R0Bp}`0*9&vT|7FzrM;%9l+(+UlUgYb2nK3-%fpCd^d~eXk;XZW zm+)*=eQ5o+36x~H0hV-GDyBOe33VIk&p`$rD15q&D%?Cl8Dd=v59)1xA3ej8NB>+V zwE+YbW%hA_3DMxI6v08U=qCsPV_YnCwg&)=Ap(Z00z6*}~ z>P2Tic(t1}g?@(-Iep{QPJ*lvz+PN!tba4%nBzH=~+tstsAaX|oFj-E|)B1~d#I zH#b%33R;z73EBbG56mlXb0bWR#IQ?iPNyMj0$>n!r;?lDRcwb&TH1g>5}V6Px5@ds z*XS541MO+5Uq$U%iI==EhH8^BY)gHng$^M#n?X4A0993sPVqy$wb>f)iEE}#0i!P9 z;Z&cB*V?N+TcSb{Kr2WcZB=?Bs8($P{bkD6$?K;lX9k1R8HGvl&zOejs?6Jpt+`=e zr{PZQa|tc3cSdA7C*hiBk8XQXb*X&Yl4b)GY%|mE`IRA#$tqoid=e|156y;%7RnE8A_YWPjE(Q^7$RUp8BMNoQ>$~6By3bMEtQ0)0I~Db znSnBVJqd=6d8BOW~C28Wj1QJJ$5!RJm z%JL63!(u6ca5+VTj~86Yeel>$TR_+Msp=1Ez*9SG7YU!*M5Mv;?1AE7z!D20gS~9# zXIuN-<*sb^hgt10U-$jXkdr_CkI#~1eeQNc$tQ=@;P+2V%&J}el+`Ymjh(m6omajQ zkLO4H0j$Ta{wZhf<&ycY&2kS}1Oc6Q(G_2LUSs zD&ZQ3a*Ps>G_3MPJx=i$Pxof$@%{07q4-Z&7%Xj1Txpnqko7gi1tYU?7&V`F53sMw^(-}m2*Kjjde^+^dtxCJkv)!B zZ_&aU-UGy8vNG`qk>l%R-U7Mz{?ss13_sgd3Q{_YBVXO3-VMH<_k5$%95+d)#)2mP zfw2pQ1q|yvs`_*;M zH#0g}AW56uncTyq0J>H0zO-$JvvOpU3_TUtoBmqqH=gEuN(k?Bp!=C^#Rh0_YIABf z9QOKWK^LZPj63-*Rj*HPDDzpmRA#5O=hrZW`jTea4Ty@3pu-HW#9a;g{P#fWm@*~o zX!Sk3r&hG*nm?wN!gBJVi__K4Zr+ODbFKHoqLrvvGeOokKwlG$yTUaMwW!!Pv&j=D zUzEsqedGs=p}30}bP7Y1B%Y!LT>Tuh3U4DW@|PD0J~!)GEassWNN1a^(&U}C$j7*p z?Ogi}sxKL8+qoG#K_C9YxGE29tA?Ft9bM+ZA9eRG7*81(PS~E%cG%cqMs_!w5X+u0 z3G_}`sG3CS0HK1ZJ=wc0IBw$2zHjD*YR8lA)$J_ocTw3=vH&y+#~jKpbajTa^?K2KMxME*@=+1oRyFRy6|$1 zFb1e>0H+i12~zf1Xn7r45+c@uUm*{EZ@Pq@0c5%EHcFxrWfEP|vo>C00!_DX0S}ME zc+2N6*X*ISz!f9swAYSbm4-E91C@0*Au;v7QSjJYuI8Bi)-~WrNldYqW&(z25EN_3 zRI&l$SOrJ9N4i?{x&bIo!-C`^y_RO>S(z>>0KGVApMKwj5<_4FX@pyRuFJL%+%yp;;1xGwYemdf`~Pvp~I z80T<{XT{t`B$A7*#%8M1+xpuM_ z-L|z&O92$jIIhe?)`g1b85shNp;aN5ETtRFbxY#}XIgy5i+>)TeDA!Z9LNJ#HWV9; zqd+t@W!~GZrbf}JeL}rnh@w=}YB|a)C-b|`e5VQ8j6X6x4e~)md98H8EPK>20H7kO zNH1YCwwQ$>RFH10k;V_Do@;AB!iseB-H?~@uS~Y_BdB_@stseAm@TiguVqLJo88rj zTF4l_hC)2I&&u!z9S@%xSB=lsKu}?-zOMy3{+f!eb;;ts`HHi%#v75P)JwWmxpyq` zs->DHkOnDjD^rL{ep=ZLWAEj809bqw3>SER@hEU$zBc%kCSPWWl$=VLj<^+j03IGY z-(C=z1Bqk>?y%Jf5hh>t=O<9kjO@raLjkGRztlSO)h^k_R`mg~b4uh+^ullVMirkP z3F8)K59fggjw!oC<8Th3^?%XRLs z#z|hk03*K46T6tD+}toJ8Z`&pSfc9I(W9j;ca|X6=6z^B1?aL*b3ZPiwViwk16}Pj zSQ*`ab8LHioCxALs7R;u0c0LoPIjO?6HA;W1ukvgU39jcYte!YgM1scpKo@ze}YM~ z{2ue$c^=@xYY&@O(WSlg=9WCc+{d8GoPq@h4MOtVrQg{-P}(9Cd)gtutiQp+}#!l!~81KbqRn>+JypD7>FOwE`jeTeHL82<{P(8O~UnU_+$D6NhJim;-L3MvB{jn(+dI$PdIX=CS%6r&-Ll}_A4Ye zbqNdv4)qW))YAP{p3<9XIa>=sh;7^zBFq^MO;FBnvCHrI5@L;YMuD?X45+!11zy*z z^KJuHOX=p&jw-)tK#K|&Hz(@3hz(%8H6W4+BR`M7te9y8!Rdp1iQT@$IGYK`M&44q z>be9B+#mwb&!1c@Rt^k^<_|nw5><0X43i_G4?>*gu#^_sFJcl(847OcWllXFlvhAN z16W+s@h4DRtyN?V>MS_#(nren$2xV<2CGig91ylD`=c4g9F3Dmdy89sMJv~6+wG&aRHDk&@-zy$;mV4Y#~YX zk9=QA4xpfyv`Q)ZtqUc0*7 zuv`Jy!`WwWffjPv6>)yXmTp1#1k;Lj+k3%z>Iu#u1!E*SA)HTH<>u!*>o)1JHk5#nz;m9pIHdko~kt7o*!_L zgC5$BKq05f4T+5{i=oxhgU`cM(3&LI&P@P@47Q5w?m8t56-!ywr&sT6NbI;>@g;%p zqZCu13)0k3aN{6NMMiE{F$eW~o`G7FXWO>;F~n|PMMcB~2jpC%I}g*pu4 zhb-h?y)W!H`_m|gy%=~SHxfFu?2fkcR^a5|2bOoe;h4`AuXW`aWOW5c8(O2<)f+zh*PrnJ#e!z>1Xh8FN>2X`ROAPnE*H}eJqe3P3*>o0JXb}A*BoAFgnT?L=Q zJ@-2Zi(=1nl$#qar?$QdeC1^dxfuS?OhdT;I9k!g?uJL;k_p(pXK`vaVlg>0xfBpE zZ$CxRK`jcaUdwWco1OdQFK*=M;hW7|mKmlJTBiBuQZ8PT0pwx*M+T037HrjH3jT+9 z;bixjEgZ;elw~(3m~C#VQOMu059~5cFR4TFoOYq$_=mb+7I8LN#UFV4-zseMDy|z2 zNogb1k-6hq%OmV?j+|?}`^=YboOj4^qZL>pavPNQ=VNDaW-mizb<6DC28>H_p7Om6 z=%&z9PiJAI0Gg^j`-mqhEEqgjcT4e1Tl2o zd9$BGr`%b!dAL%9$^zi%zRV?I%w+^++9f$d_I7DEfEr#h1pq~xzBp!fmgd;4#e|+< zjDOF=>eKIgPvvROnD1PV;Ypd(ff_GA>LbrXp6jqb-sR2ba?#s}bw)!UH_944qOpHH zl=CX^wJM}%bD{R+I}Om15b2lCQ?TER+7)t;9&8+$1G+_&f%3` z8-6kQvzw9s{J0>voCHAz7*+Y~-XJ4($bWoEA#Y;hQuf5wLI%ah_I#?o%1#UZpfqQ~ z~wTi!Hp=8m9 zPRV9uz#1*DD(4CXNqR4iB9X~#&H6wHg+n5>JG}6*WpO+b@@gNWvo*|nIxI-*9g`h7 z0h}Fw6|E3eUTjV(9qK7s(iGTsQXX|LE#qHJ>1xZrrqQ(K_(8kuxzw@~$SLhvfDN*0 zkAWzO;I3Zp7xUp+ASMAHBlA z^xLZ?ARxEL#YP1=zbbbys@U^_gJO3J0e%V7c4!$r4ZJ3(-i#K6y$RDcx_Z24Omk&5 z8buk}TH!JaCJTbY&M)?OHYeSdUb2ydUTjpoi=<@eZd6_~f@Tz#8TR+le`#rQJgZ#7 zb7LwRYXV}6c=`lcbtbPn*^}M&hB6Hc7TU_@K9YDDu+xt?BS$7xC8fM`RfnTt0z3xk z4+;8Kb-5;aHwIG<@Z7Hny?MhGpE4Cf>V}cdY~y83@aer+J%)wVxgXc?anJNd$wsk+ zWtN7^$sO{U_XS4zJ+9aEz8<+f6fvhg2dZj0u7uaQv#JEOqIodY2DE|j$kMsPU zt?SDw2f|Zq>B*m}J(t}60LEqE;NJ2BE$$bmThG6iR<3S~SJwubVRlanF-P&!{T=iF zX=x4XBW+}t&Ow8K@JN7wVE#Eh}GFcZsGPHU}N%fus_$=b6Xw6^t-HH+K!xo zhV0&vRVavZRObUW;EwtpkwXNc6_NOZ)i3}WXK{V(R}w7v9Sgk9q+=MUqtE*n8=|d8 z>nvZ?*ubQPD1~#|w6CBN&@2*EOGNW~ELv}}W53!SauTWuB@jf6tKUW#?hEH#Yzzg^ zjHn#URh+du>6QglS;+I#w;j!87tS<&C(=ltrP5}si zmLfLXIS0ysh)tCBg+pK(!i>}GU;qe|Q6HD_(0`MKMr-uB&ReNN_6V1k`A3+Y&BcLXT{mqkfHHY>r(zq=2WJ_9`8<^T?1klGHKq?z6B7-h zg?Trk@@@E<%o`Eh6^=kb4mD6#IpNA;Olb(71D=1^D#=2_n{&%&BRQUm7r;xsN_Wg` zcb6F{&<7X3Y+`*HV5d8tDIzgpq+*7%mVmqF1l>iKkSHG$!{w_Hrw+jFHfWfOs`$C_ zB(7#Z%gWC51bmAx3t`&JE;!%g4T|R9+5gbc^*J!=I@#=ssBR62es@gV%1bnE6NiPN z42a=%(a+T0yie|YOs?{JmLqfvjCBn>O_patpnmUi3FHk%-&Ixh2MTWWD|x#9yxVfU zK5qWV$_UA#C%hH4MgUkn#q_47n*>?eB!}I9-{O_oYW*GRc@oG|_B=1eX{ufo%rvY) zqCzTYlNub~qGygvl)N7iA|tu;qE$s=uU3Wh1a>4}^+Wyq(&1Z<1A5QRE$`(ZHsNS8 z#(vlmrQeS{m|t~%u%c*^gY_fMi($KI>nz#R)I_^`hG0aAO@;u}qK4r}9f;qVMFsZa z0XGa^8YxDS%tPpJ5b!n%(s={Csee`N#47AhBC(9ouEK?jbKXZxP>WYL5fP)l3B1%* zQ){ESAcd<-v*_*=#F@;e_ZC<1X2u!dX4W@)re31YC7}m~WlZACczJjv-DZCF$0|fotD%qa@V`9%G_zX| z1p8imm8{m3OocczV_gG!*r!Y?UR;#AFRmCIy|28d9c3@ZJI)d~r=4xi6O*dup|rJP zT=gA$W)0-{h=1Ap&h9>eu&B3mtNNOf|LC1`X63B0)YlZCMXD%83|dmhuFlA!l-&bGHSsw6J?=w+`Qe;ziRsY_T7Ig zYaMgA@_FlrDOCgRPEF6|G|Q`n+pXWBvqDVaQQ{K(N5cz?^aBcTCaYs-pi$Mau;nqU zt4_uHt$!3y>2>PV5vJ9Czdo~`*>%0r_sRTlOCOS@@mW6l!#zZb{vF1A74)u+g!f^Z zgOgKG=jF!ac*l180RB^0>)pra(q-d*&B?4LFQM~2sH`=Q|LNLR-yGz#Zz z`PX6`>V!3lQ9?wDBj4MnCu3g3o6dP&eQ1QicZN&AQTM3PO^VaY(DDV%x3-pk zS-*7f`(2eAH7uu>Rc2P%$BzJ^^!L-|VFtOV8P*@qrI8~#tVpA~HSJDT28udwGE}1^108w;&E*^Q z`#X!jyx0V@<%Larg-w@YJlXeL6)u#{pJ5a+BP^vGCko7t1`)Q*o7wzzUXwLM`yA)e~(qNXURCeb_*{=0ef*s9(v8dVE*Yq@&bimjgGuXLoARoL$axBwN z7@#CQ?Fq-Yhx81(fy%56&a4a64Rc0$b1x<5Kp2fs`|E86vx_0}74aq`(;6scJUP81^Itju z3>OZeI)y~EuLX(Q5ln_#%jSuJ9+5y&yz%2~Mn%PIT2jgZzU5-R+)K2+RbM{kWl+X@2|ieZMcm-JrnWx|?7`GypR}WgjD9 zd8;`?3&aOOCv|nZWe;A;<~D;2Jq?4waDGqbdw~CQSO6T#z5RPiwj*!p-yz(T65&6$ zz@-xIzkpgQ_!pE*1^z-z>6gDSRVw!v2+RJ(^#21HW&dL9W&hHN$`$@f9Llx-!tZj$ zzkpq#^A}tz{>6GK{>AVs|JNM>FtqYtEB*h&FjxI!9IF1SS^5uyRsCNkp!%Pt>wg%! zntzOS&3`qs|6x#T|I2)@{ikXDABM8-A7fVcudnrW|N4qlul|3W6}GGABl)`)Sl3`L zHUDP-B?Ya#$E i`uXSKaDZQ$u>Q8C{fEiO1&-(80%My{pxlc8X8nH}j|f-* diff --git a/src/gen_pptx.py b/src/gen_pptx.py index b9811ca..4dea7a5 100644 --- a/src/gen_pptx.py +++ b/src/gen_pptx.py @@ -142,9 +142,9 @@ CARD_W=Inches(0.85); CARD_H=Inches(0.7); CARD_GAP=Inches(0.08) CY=RY2+Inches(0.48) warn_data=[ - ('5', '预警总计', RED, 36, None), + ('6', '预警总计', RED, 36, None), ('0', '红色', RED, 28, RED), - ('1', '橙色', RED, 28, RGBColor(0xF0,0x80,0x00)), + ('2', '橙色', RED, 28, RGBColor(0xF0,0x80,0x00)), ('4', '黄色', GOLD, 28, GOLD), ('23', '未完成审批', GRAY, 28, None), ] @@ -209,41 +209,43 @@ T(Inches(4.5),Inches(0.07),Inches(2),Inches(0.28),'★ 预警明细',sz=11,clr=G R(Inches(0.5),Inches(0.58),Inches(0.06),Inches(0.28),fill=GOLD) T(Inches(0.7),Inches(0.55),Inches(8),Inches(0.36),'预警信号明细清单',sz=22,clr=BLUE,b=True) -T(Inches(8.5),Inches(0.62),Inches(4.5),Inches(0.28),'共 5 项预警',sz=10,clr=GRAY,al=PP_ALIGN.RIGHT) +T(Inches(8.5),Inches(0.62),Inches(4.5),Inches(0.28),'共 6 项预警',sz=10,clr=GRAY,al=PP_ALIGN.RIGHT) warnings=[ - ('🟠','阿联酋迪拜马克图姆国际机场地下结构工程','BHS/GSE隧道现浇板(4包)','已添加未实施','2天'), - ('🟡','阿联酋阿布扎比汽车基地房建项目','模板支立工程','未审批未实施','32天'), - ('🟡','阿联酋阿布扎比汽车基地房建项目','深基坑开挖方案','未审批未实施','37天'), - ('🟡','阿联酋迪拜马克图姆国际机场地下结构工程','现浇倒T梁(4包)','审批中未实施','42天'), - ('🟡','阿联酋迪拜马克图姆国际机场地下结构工程','T梁预制运输安装(4包)','已添加未实施','42天'), + ('🟠','超规类','阿联酋迪拜马克图姆国际机场地下结构工程项目','BHS处理中心/GSE隧道现浇板专项施工方案(4包)','已添加、未实施','2026-06-10','2天'), + ('🟠','一般类','阿联酋迪拜马克图姆国际机场地下结构工程项目','钢筋加工厂桥式起重机安装专项施工方案(2包)','已审批、未实施','2026-06-30','22天'), + ('🟡','超规类','阿联酋阿布扎比汽车基地房建项目','模板支立工程专项方案','未审批、未实施','2026-07-10','32天'), + ('🟡','超规类','阿联酋阿布扎比汽车基地房建项目','深基坑开挖方案','未审批、未实施','2026-07-15','37天'), + ('🟡','超规类','阿联酋迪拜马克图姆国际机场地下结构工程项目','处理中心现浇倒T梁专项施工方案(4包)','审批中、未实施','2026-07-20','42天'), + ('🟡','一般类','阿联酋迪拜马克图姆国际机场地下结构工程项目','T梁预制、运输和安装专项施工方案(4包)','已添加、未实施','2026-07-20','42天'), ] -# Native table: 6 rows × 5 cols (1 header + 5 data) +# Native table: 7 rows × 7 cols (1 header + 6 data) TY=Inches(1.1) -CW=[Inches(0.6),Inches(3.8),Inches(3.0),Inches(2.2),Inches(1.0)] -HDS=['信号','项目名称','方案名称','当前状态','距开工'] +CW=[Inches(0.5),Inches(0.7),Inches(3.2),Inches(2.8),Inches(1.6),Inches(1.0),Inches(0.7)] +HDS=['信号','类型','项目名称','方案名称','当前状态','计划开工','距开工'] x_off=Inches(0.5) -tbl2=s2.shapes.add_table(6,5,x_off,TY,sum(CW),Inches(6*0.38)) +tbl2=s2.shapes.add_table(7,7,x_off,TY,sum(CW),Inches(7*0.32)) for i,w in enumerate(CW): tbl2.table.columns[i].width=w for i,h in enumerate(HDS): c=tbl2.table.cell(0,i); c.text=h c.fill.solid(); c.fill.fore_color.rgb=BLUE - for p in c.text_frame.paragraphs: p.font.size=Pt(10); p.font.bold=True; p.font.color.rgb=WHITE -for j,(icon,proj,scheme,status,days) in enumerate(warnings): - row=j+1; vals=[icon,proj,scheme,status,days] - bg_c=BG if j%2==0 else WHITE + for p in c.text_frame.paragraphs: p.font.size=Pt(8); p.font.bold=True; p.font.color.rgb=WHITE +for j,(icon,typ,proj,scheme,status,pdate,days) in enumerate(warnings): + row=j+1; vals=[icon,typ,proj,scheme,status,pdate,days] + is_warn='未审批' in status + bg_c=RGBColor(0xFF,0xF3,0xE0) if is_warn else (BG if j%2==0 else WHITE) for i,val in enumerate(vals): c=tbl2.table.cell(row,i); c.text=val c.fill.solid(); c.fill.fore_color.rgb=bg_c for p in c.text_frame.paragraphs: - p.font.size=Pt({0:16,1:9,4:11}.get(i,10)) - p.font.color.rgb=RED if i==4 else BLACK - p.font.bold=(i==4) - p.alignment=PP_ALIGN.CENTER if i in (0,4) else PP_ALIGN.LEFT + p.font.size=Pt({0:14,6:9}.get(i,8)) + p.font.color.rgb=RED if i==6 else BLACK + p.font.bold=(i==6 or is_warn) + p.alignment=PP_ALIGN.CENTER if i in (0,1,6) else PP_ALIGN.LEFT # Rule -RY=TY+Inches(6*0.38+0.15) +RY=TY+Inches(7*0.32+0.15) R(x_off,RY,sum(CW),Inches(0.45),fill=BG) R(x_off,RY,Inches(0.06),Inches(0.45),fill=GOLD) T(x_off+Inches(0.2),RY+Inches(0.05),Inches(11),Inches(0.35),