From 67cf0abac2dd7ee30d8914068f68d7413de56152 Mon Sep 17 00:00:00 2001 From: gsadmin Date: Thu, 30 Jul 2026 19:44:59 -0400 Subject: [PATCH] Scope certificate reuse to the requested issuer Switching certificate profiles returned the existing certificate instead of issuing a new one. The reuse check searched Infisical by common name and status only, so a host already holding a server-authentication certificate for its own name was handed that certificate back when asking a client-authentication profile - same subject, wrong extended key usages. The search is now scoped by -CertificateProfileId or -CertificateAuthorityId. Both filters already existed on InfisicalCertificateSearchQuery and serialize as profileIds/caIds; the reuse path simply never set them. The subscriber path needs no filter because a subscriber pins its own common name, so matching the name is already equivalent to matching the subscriber. A second defect compounded it: InfisicalLocalCertificateLookup.FindMatch only applies its serial filter when the candidate set is non-empty, so a search that legitimately returned nothing degraded into a name-only local match - exactly the case that hands back another issuer's certificate. A completed search that finds nothing is now a definite "nothing to reuse". The lenient fallback is kept for the case where Infisical cannot be reached, since failing a renewal because the API is down is worse, but it now announces itself as a warning rather than being silent. Reuse still does not compare subject alternative names; that gap is documented with -Force as the workaround rather than half-addressed here. Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 14 ++- Module/PSInfisicalAPI/PSInfisicalAPI.psd1 | 4 +- Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll | Bin 438784 -> 439808 bytes .../bin/en-US/PSInfisicalAPI.dll-Help.xml | 1 + .../en-US/PSInfisicalAPI.dll-Help.xml | 1 + README.md | 16 +++ .../CertificateReuseScopingTests.cs | 116 ++++++++++++++++++ .../RequestInfisicalCertificateCmdlet.cs | 67 +++++++++- 8 files changed, 215 insertions(+), 4 deletions(-) create mode 100644 src/PSInfisicalAPI.Tests/CertificateReuseScopingTests.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 95b5c04..d85453f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,11 +6,17 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased +## 2026.07.30.2344 + +- Build produced from commit dadba2f4c890. + +## Unreleased (carried forward) + ## 2026.07.30.2305 - Build produced from commit f65124fd9911. -## Unreleased (carried forward) +## Unreleased (carried forward) ## 2026.07.30.2259 @@ -18,6 +24,12 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) loos ## Unreleased (carried forward) +### Fixed (certificate reuse) + +- **Switching certificate profiles reused the old certificate.** The reuse check matched on common name alone, so requesting from a client-authentication profile on a host already holding a server-authentication certificate for the same name returned the existing certificate — with the wrong extended key usages. The reuse search is now scoped by `-CertificateProfileId` or `-CertificateAuthorityId`. +- A reuse search that completed and found nothing no longer falls through to a name-only local match. Previously an empty result disabled the serial filter entirely, which is what allowed a certificate from another issuer to be returned. +- When Infisical cannot be reached the check still falls back to matching on the common name, but now says so with a warning instead of silently. + ### Fixed (certificate installation) - **`Request-InfisicalCertificate -InstallChain` could hang indefinitely.** Adding a root certificate to `CurrentUser\Root` makes Windows raise a modal trust confirmation dialog, and `X509Store.Add` blocks until it is answered; when that dialog was hidden or the session non-interactive, the cmdlet appeared to stop right after installing the intermediate. A warning is now emitted before the blocking call, and the new elevation-aware default avoids the prompt entirely for elevated sessions. diff --git a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 index 5db849e..c3b345f 100644 --- a/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 +++ b/Module/PSInfisicalAPI/PSInfisicalAPI.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'PSInfisicalAPI.psm1' - ModuleVersion = '2026.07.30.2305' + ModuleVersion = '2026.07.30.2344' GUID = 'b8a2f3d4-7c51-4d2f-9e6a-1f0c8b3d4e51' Author = 'Grace Solutions' CompanyName = 'Grace Solutions' @@ -74,7 +74,7 @@ LicenseUri = 'https://www.gnu.org/licenses/agpl-3.0.html' ProjectUri = 'https://prod.git.gracesolution.info/gsadmin/PSInfisicalAPI' ReleaseNotes = 'See CHANGELOG.md in the project repository for release history.' - CommitHash = 'f65124fd9911' + CommitHash = 'dadba2f4c890' } } } \ No newline at end of file diff --git a/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll b/Module/PSInfisicalAPI/bin/PSInfisicalAPI.dll index a71e29ab6c25fbf480fa9ce7184713cb4aabc6a2..7017513c28006a053951aff14867087bac2679c1 100644 GIT binary patch delta 131525 zcmb@v2Vjla*6_dge$F|GkjRNtQ6hvCo%E_R7zt6L_cBU2jLwM`L6iu2^xm1#Men_h z(XKKKgQ*N-Fc`zP)_PVVGxy%_d%y4h_r7;!|JGW2?OvYeoMh4-7EgOzd{&14&yIgB z6#Va=@b@b$s|xX@MF{wR{P*^J)`nIttIu0RGsJrqaZk%C<6hW76aidz&LWbt%czRk zDYAl-_yRKdf%?nrsWL=v$=)R^$Q{{trN7Tj2!Q_@!vB;o3-{+zWZpChsarQ%!nY@? zudVV)w!gc-{B?Uh_e+)K(`?T=P35!g-RsmVEMIKj@M)4N_R?8c1|Jl{DfJMDLYDWI zSKD2Z{-xya+rMwIRLVcLr?>Q$@^$voR?X#`?ay1ym@MCBkGmT!-)=u}ccGMjZBMy( zys&(qUFvaP`C^#^f-IVs zCtSMfH%wr#=32~hb2aInyDLlvDf>^*J}0jtgD=C+02NrzNmx>k80prSK4zqwV)_iE z3rA#2AqL-rq?7mmF9QY3j~N8{1^jx{vQK0!bY3`Ul_8+ zm_7yR!WIV=_^z<9sK7r#rXB*FbD@fkg;K9Ts#0Ows2nkH@RmZtGExOjQ!u47m3})) zc5=T4_S67~6X2B!OUe=eS#m#(mc^93t#^%unRr{DA1lksZ}bDPGQj^f_y>Lhj>?v@ zPz)T~%py!iMU0{YztK%`vYNb|8x|*@Ytl;(sx3Q9@7$@iB+zQMS{4*@ zusWocv_L~jz{0NNY++381!%Q+wJBz?TCC<7eX3tF8fE+Hgcw+I`dlGofTu0xD=~0I zfR~GDMS$JgHi5{e(29WKwuO}TwWRijK*cO>mcSrL1XcmDBA|qAE1CnR0i~XD6qdVH zi#b{y1GOShP4&Kbfud~p!PDxPnt-`$<@*bVicUuCO3FRhp;9?zr{SjR*=k)918t69 zgZLMSKtIfO28vOEzd#8tW*3tMnlCKD&)D41{`%VpTPf2|terVa188UtJ-)tJurAQ7ffI!q!)7l}z#}enkxQO@#(I zc~((cuyPNyz!b4Hypp?dl`O2BssdG#P~ocj;WaYM?uM+nhZI(Um`vS@-A+@(Uj@2i z)*%qFfYFu)99Rz~VhD6EdN?VIZ6Yd{z~ZW8zN0Jb$?_D~69Z#1^%ew%G%iuwMXV(C zuKxL2S>FB*ctwDZn=CkIirY$D&7U(TVK4`eRkZT4%+wSkO?7T(q}@^9!AN^zx|5Oi z#&j1WT^!QIOm3#YDYy}IW9Jfo)Alg5rSz)nq({3sP>Iy(*s>yS=Jy_OWcymp*eXBB zH25OUv_3`#e=Mi3kuHbn{zjUbpK7E7Q9sB?2kXn$Nq5hRp!!&)&kb8;{p>m!;9MQu zM;WS``nz?qTARPsHEJr&+R6n(R2pG)Ev(jE*nt6F#xSi2@V1>Lg^y$ETL&oA!ObDC z5;UNagYEfMebRbaI#gWC>+-?ZVTf&=flE0KhK_SEho8K+w`)G3+WKABJ8qQzvYtL}qx4eSuImdn%91XJ!3LAY z5jUS#*Yy({Wn6f|zjzu}tZjik`B zdg>UjGw6<5F*dbL=_yRBwLVdsrUO*dOLK6(6%FE_0(N5P~ZNg?Cy{PX4{Gzda2Dapi~F)?L-m{ zDzF{NE+A8V^+8|CVh)!vM4h2Vh?SdVeTN=kwK?6?pKX?>Iu`kutP-$W!rx< zx5!pmN~$T&`l6}Quf`bgtXN0|;?Ehd$G|d&J%*@HCfur}&2|U|^#%keW>!|S?bS`) zzD;^ooPb4Kl(cb7!t^C0JsH!NG3}6g)liMmk3bHO>bIa3ok8TqFXrgxsCUVR^V_^# zmRHqp>5Hey;%e+Iz0r0V6*CMX+17x6-u@Q=r?mdg3m~c=ERX*)BP&=UPz0 zE$rlSxP{@K0=FvQo-y!S7~j-;AiOIVwv9)9D~_ml z&XvXOUqImey|hv>75E;G8z{WY9dNx5`9|6z?&8RPtN~szoD78}a69BLoVR_d!1aKz zf7+H-z^%qx1#TpTk8L&tfqlnf+-Tq;W?KiEz&d;adeaP`qwX2#^KVZH-(oh{L5#rO zwyC7>$qQWEw&q(sX16R6iw=g?A#fX{op~F>aK6)BV8X-pel{;$ers@#H{H|c?uKW= z&H9nuvXKMkur9nC+BO&j^U&VVfvGe=JD_F|h!mkXVuoS~DZ)Q0c9A0TqvCr~M1NGgBSkDKb~+0? zM0M$d#l*7)6#k^B^)XKjDe8Pwv>`>kk6DJ0qQOUxS)^$6QL&B`jX!2Ni;BjnO+RYx zkxR3WidUpa`WVFZGpuThkBVSYv?PVTXP=C8o&fzfCLEs^Y+u~hKkSqK_5c^SI$5+a zlR#@3g|ecX@iX--^lRSIcnLX;rx!M!2V=e`Lh39SCz#}QzRUBptsD)r0#5f2o7hVKQ&u}hkEaWGS*%Rq8oi=)ojDSP7e!4Pr)+{nR~*n2D^8m_a0`v zwmGC$flQv&O1c#a)Sx4Z6?QAk%6@^*v1dY{a#jcT)XLxoW!=PL>FRkCx-0;06j$k| zLuxhuyy7brf)Le!Ld>=ebHM)wxfDvho?HKrEG`{mz!u<{8mjj`Ea#Rc@=6UwC1ebz zpO(}}{OOn)t(Q0=n|#bN@Q7>}a|;5(vrkQMsiaK7=86@}wvb2A-z`8WOKJodEU8f- zGY7%O5cmhQgdVaisbTtyBhs(J|1g3ceH1DjrnfpOgJig#c2w4lI0a?+NjPl>Z-cP7 z8UFDPjkm4Z_kZ{Cv88;kzdI^@mHm6&=a}@hpZJG|m+j5pHEEy1tnr?X&u6f)_4?uO z0ljQ1|E@{HM{l1zcb^~s>E7b+8h_Xpr~F-&mIx8N@*-^iQNMOf2Fh6d{jq;6hhHFH z-ujyjdGeP-KIAQj(4X==ZL7z@@C*XBj6yeB4skF*y#Dmz$Kimkr7t)RgjJ3sUNdNr=-1rl9&y%uQ%yF>h^-zyrK2~rE*8ZdsGq-?#CFpI|$55$J5A@|H zWoda>KXOtAl|^6J36rpHuW`M16(Ynk>ZAY7hr07A8KYt!>y1xIAFt<-A*~IB3ofMs zi^Jv+9H!ZtKGsK_l27D2z0YZQm&m?S>R+CgkG+$iTs3MSR&5Y$SoomoWU=*ntZzFb zH>#w^dZ)9pf&$JsD;uaukM*z5$_uDpc22sZe%Co!-n$r7F>QFkf}OPB%7Z=i7w2Rh zSwfFEFROa{q0_j3b1JK+otHuW6~O9bQDY{90}OmR{7`hv&rCWFdljt$H#w&clv@{?;p?c z<{0s^DPI1ff_Mo9ocI&V0e2W9!F_n_Y=^yY#~+! zngqU|E8C!Dqq^{O2k;F&=!&dihD9r$>s_wE(O+^^xEMJ#Kz5#~)uYm~k%2V&-S7!>#F0)(2C&#~q zNfNwD&bEl6olu50MRO&}Ha)}rs6`A~g!-Rnm0V^KpPfT#Zh$^H!%=^6CCb~{Ihd%E zCa*F%iS?gtgFRwPBh+LMKv_BwWm6l<>U~k(Tno}J?kq&8K=P|un9j^aX@NSrh|gQ^ zUhE>~_L+UbMRb{YeUgj#wqc0LMReXYOmh)a4py1%A_h*ybm31>|A&rp`;ri7Wz?!q zHbLiSVv83*WG4}~VOzS3__}$0@X5}^X!c@>7$WRk6==b^o~yvHesYJN7V%w2?3J(g z=0H1o=c0^T)T@U@Jjz5_k7Lk;M(0K^Tg)#H>x&?TaCo zo9J6xrMig`XW_|447UmKFKLYTAFI$uYk9c0n=rRRpB-6P#W(d!E^`z0H=yQM&|AcV zW_EO{-x5_5GEt7D3|S;^l9ROoW^2?MGaRp78DxA8$|k9mQ}@vna}$Fp!q!db^Io0l z?k1{IG5v>N%(@gU6MUdomSMkM8j4eR$&kZ#sA=fuSl@viP~IAba?A;ovBRH1hU5%P zuhcQU73Mswg$}qD+}opEJHvmVlSm^u>j18fj4brO-8B=Iao0>t7p9?UKy&^|I%;Mv zLzxN766XJ@hB$lEX+C$N<>7x0JOAiZ)VIyL+7{Nrz8||=#M}C7U|i=Mz|7mILcMJ` zt`$0=<|$1y%XG|p#07I@*s!hJX+?-;+tOhIp1_&WX9*5;8|+29SW7eC=TjW%uM#ob zwl=y$}QPZGZs~1EP;RjEFqmazP z0UTU~-xwqp0ryIvr6Z7B1-xqpnm7T;O_U?*KOV_Lgore-*_%&8^cK~r2z}R>rAY7! z4~$u(kV=SXqP}C00>r082Sy;37fD1XCm>Z2$wZsSBL#^RDq`9+q!7_jEQc!nF~d9% zF3O?{l~=?*(>xH3-NZO3aM}5h7a~PP(UYj|^y;gTKBJ&rM;ipW!83C#Qmn`(x-uN8 zmRLkol5BOLIP|i8>Lj72}EK6Kxao4eE`ayTux! zQ9$-caZqe0^d;95;waIZgXnrzTp)@i+a+;}=my!YiAO}};J~x!2qb%u{F3nUXvA6) z-U@>;nT&PhLkgo!Lt8!h6WMx>GUy3W%owCkrO+_n=`^H7X(lR0G26=GL}Q5B$&y5s z#-V3-yM#|-A>$0fUNW5M9fkQ!#u0TO+W^@>O9RgyRGHzjJ=q?P#4y8UZ=wXM+6sAq zXaqH4l{`vxZz6iGmM4hDO+q>(?QaPylj{-rfr<#HB2Gw0_@a-i=s6Z$Psk!fE2(N< z%K)OP)TLKsFwr5R>#`bAGI`#RVMLp#z*{n!D28I*mT`6ywy9Po7I8<`A>%x1(;eBA zXf%a+Ds4n56y}8-LsXOKjm#igK|$ZinM5zCyFbVrD#3%AB-KKqF)Oe0t1*`Yq2|L?Pq)N(c#))_>1F4E~ zGGhaWrW<56qvyn326>pJ9dIpWtfAn07C_f&3`12dq6gHa4OCB}-Ns~7pHtA2)TU-? zI0O|!AB+`krbd&enR+If=@reOR%#sCOjJT=l>=mV6(z@GZMv(aWOShJ?xofc9ipMI zsRKlxQ)Py#lhndt)WXr~3bkq1t{B+mN2{CUxpNd!n);R~dkoSP^_=L35lB;9rXkH#3ciyd#Q9HqE_RkPl^MuY%x=+haiq|h-tJ4z?A7vF=%duj=xBI5(Kn&>gn59&*z@6V&>b9I8~a08@5 z+DoF%Cy<=A4@4U`BKc_E4p`9&pCS2bC5cANK`Nz{Bl5E^LG;st2)(HYf2}f6a6`0} z)v6I4S&bB`wIW)41}RGGLNtmfUh7A+qAl8LYlDe0cOuo(Mgj@3aVGX*qBfgswf5T4 zm`n&CG;Tm+infG|u~X32iAacZ>(SOr+d{V0gV5HG>3%xW5bY@0M&ux+Yd;Vir6$2Datgnkc8s>KTlj)OGKNpi9QTT zTv=0#H7z3Q3AUPAJ(GPi;Zw$KL`Rr*66Fp>*9NBjL`#?s5iKXr2BxD_nfkebYa&Gh z(+TReZKIJIo6Zs0Mj|yg-6GQMNG(iv?1aA#M{H^Oj%esaq}HY%h&oL`YHRwHT3xU+=rxS$=O?M#eW3=4Ym+L@!PI!6wA@~lH9sY~O)=ffuYutFJ54pMVh$~g9pymA z8s>N+8`&bvjfw7W!Z1Z_s3O_wn0pchQDy3x`w@LfF&mnP zAlXGlDzLG6G#TfTYd3Q)QBMjw$b6k>0JU(q`Fo--$#bOnap7?=*Y76!uCAog%zu(? z5XGEeb}WKTnneXpHwWI>Qd0=mb*kX zh+0_g6CI@DlPwR4%8;$4PY7Xs3D|ZlPo1?guHq~B zlsi(ivHV6hc*+NAYk5(CI$Hi9DhnUz!ac$AnrJJ$YL66MEN=@$>2CRxY+g`Ar08jR z|Iua_y)427YZF67^s#6}E)?`Li>ZLEpT$zZ*5Be#z?Nz$RKPaS;#9z9vlJ;{8*Fhd zV6%U2DO$id)Z*&$vGv0(ZUtzh#e+O6QY*$-dWKmP#%P`sw?fNHZ)o3*?(^i7k*X+Y(>EHrGB`K}azE`F)qW9EY)yjx+Gxvd9IrWgf z`LT?4KVA*KJyio`-LmIFRspFmb5ZWP+Y{;L@t<>M{V9Db%WTC<^;-08HNA+YN~j0b^uxbOcWqtJCH<=>vScyLX`?7kHGYQl zTI+ND!xI@)`YphTP*oi&7=VFCN1|*Viu#ZUC;f|GrLTvVKPsch^q{N@IKQjnK_-1R z6ys1pQ^kz|oS+bhaz0*9dnP?S^D`E(yfW$SpUM*OmA`gRrEj4R#f`$tAeQtA0#7f0 zj29J&(y0c@=~fp#>!~d3>;X`|9IEOiRMU?@jsR@t-B46zSH*PSs+ev~F&ff**ia-O^aB;br827<&9O8Jgd+QO{&_K0y9xXABIz0CKH0Ob5Gf z(Z9Da46Ed;H4lxWM1JGy>VtlhC8Y;7qUFa%45wPAP)p;frKhY|$dce!ro7qpYS$;# z3(m1T{Xb_N&K=$VxhzftUvSE-4Q-}3doI0-wSmwPp(x7~?*h^-qKiJ_xvXNxGM|;h z9vPp|6Vkrz0dEm0esnh>+doYXz_blMt6K6U3{iP zM!#yaLGGx6vU;tBAV*ji>Q!FA48ZX`7=<#8WWly4)m#RyTgyMt2fdKB`mYCQL2JTZ z3@h>|U>j&gN9Th4uGD^zFI-Aa@`x{E0QJ1|CdZaPdLuoaTAM`r@>KAjRo_9h6*Q3a26XgA7{ile>Co< zp}hq1zw8?@QF>R81y7hq`d4pc6(5|E2deVKgtSiu?5>3{=e*v+FKpG(qu&+f0^!nfX9>3_b3P4r{nhGp96b^er*|NSs5>xWZ+ zsW-}klPa}lXQ**Z#XdFk(NCmz)x2(T?J@u=QL-;ehodOJHKTk#3FVnYlsP>I)X)$A z0bjkT`c5V~;QYT))q@sbD{SchZ~;P%ggef&V3N`eN3%4^7?Q(DwgstIeIZNu;G8PB zOXb`3rhmy$J7!1cf9_9%K{GmfILPlxjR9G%@_3M*KG-GKsbgM|{D0V=ps_FW_ANc+ zr7Zm4_NtP~XoS1I=y&P^H;mCq9?% zl`7JvjQd934BR;EBzV|*pv*mrasZ`o<(!;*P6d_EtNBO&bL5XQ_bAE%JW#Xib!6r}UlDa;H{x+|vB9>41!(-97fYL{>kSL$Y*`5QfPZaylG zGMYBtwUse#E06Qrt@JhMi`S)4ej9>kzLtRctQeHF=s>y>eiy8%BwNy%KanQoZP-)b z=Ha2YRmz?2B|Bzk5ei%91A;3=bo{37o!dQhl;2_UJ{G>$_HiNP}IDp^Wb9K z1O4kF%0pM0D&Gk8bxS{lN+gv+PcQ$UAPrYx&>NRr<0hM5Fj(tEpw;H_1kz45UV&U| zeWwr7RFE@{_<*7hVKjPod#JC~R8wd4&Cjh%lPcTppJUlRRn=^j)~`9rHyu#6Ymaiy zELAg1^sM7hvy6z@UIZlG>5TojnlN9qg2uSby`O!(dKodO>m}W8QeG`RYf5pUCSGBk ziZEigJzn*N(v6;s!% z>$}a$PcLs#E~WE4|2K8JN4b_{4$0jlSCX7f zatF!rB!6Co{$86<{<-m$9ezC7h){@Bqt;;BXD`Z^dr&?g=|Gym6{x8^1*JPl2a;t- zniitIZCjM}Nyd;&Bw2VF>Sql?`5DR9AnmQv#t__FiiYx(emfA;4@tU`X7yaum@c67 zosaU<7AS8wKv`%qN?}GhsUgbGm!o{0jxth5S)cS#6zA*-)O?R=dzv2=>@xsW-J76H zq6~X?V|rlySEg!W`uxT)qD9N&RL7?tDfW_FRC)kRMdML8$1Me{w`dy+rGqc9JPvL$ zEQB(m0xghpK|j@~2Ct4f)U=8L`#RUGChU`!c)%hvb-}r5?ThlyBPg#xYm(BQPeOSh z5#`jLDDjazuPR2tf5OHNk2MjvmtX;~0=-dlJ_ggLY3@Jv!L(8J_c1-7qJia6CMQPY zkA`JF1KFfRD#%uJkDeKi`ji?&KvoFG^saDRe5NW#AkcjZk@u9;19pZpQ$~Q#eNTA! zE~J9&m|?g-g@{BMUjyYSD@rUs?_lZDdpvACEsvwTlRh4-4a?x6W>jSwRm-T*Em}ye z!_miRjZrP5qFsyUMW!CIL-V1&;A&+1XwECRyeSikoZbiJle(GUX|(S@Z7vx4Oj-2# z_ZAx~zCLaLc)}WwHD);4BOd5Com5jho+S2SC<{K`1pA@p-yd%t`t#!rSpR1?^DL;> zBkI_K_jBXn3M$b9rl5x}HsOI6R_|jasg7VZo-zMjKa$3*3N;F?#@wqW22aU>XvSt% zsq`X9Kljitx+qWGuZZ%i)}vg~Zq+Cc|Rw?F$uLk#B;Tu32y-}>hPx_!DD(L^q z=^9GYt#4IqX#$qHA>zdM6ZOTvH5_(Njh`o1P;+W`wcUlZvX+a*RHx zsH##Nd$wdK%IZP*l=qOH@^-*ep6>T2Jk4Azs$6JEH1r9eG$GX z`tR?H&~q#8eq*a(`tR?Ha3}ndcES&lSbV`@e-n-xY^pVH-1E03{TEkN67DU9tf~RM z)A^6%tM{?Ot?%!{yVR;`*o`y6*zhdHv6y$XA$>}FJPw?(B=Z(#!Go;e>G9+L_Vh5$ z7UO`s3NI#G(OHy~w!*&b7@TCiVOt0j-!D52@*v4;Bug$w%_~YfLAqd73Z~&Jptg%O z;d`jd!>Wgg?xt%sJ;ge43p6L2cL2G6%6B05QF=M0w;Ts5YBc?NGF1WaX z%=0M)Y3uZ|1vG(nfL?P8I#mkAf~$vmijz<vSK#9* z2B=n)s}pE!(#X{v(vzv`7Y_A-Ts7eBJyvu8q(5rl>(I-!!J&Bi|C#J22X};*uUWRO~pyc~Ds-8wB&9 zXjoP882(Zaj&8Y>kg#xZ6@Cd6$)i+qXc&CW3w|dTv2b!iSd4gF(V)G_P4sLp)rrQv zp7@~>sU4x^%3F1&A#Nl>DjQlH;zpt-6AtkwB8CZv_!CjjAnMh|qAA-JFHH_>ELt*c zTiOArV*$@5q9@z-59}4zL=0fMEB87wG>+ zC)P1V9$gCLUfuAFJo;r=2a(KlZ}Fb6P9md*VY|HeTv%uExF%ATxSw(-tcz$5UtC8D z?ojgAu&!bbCG0>Mu4ixqj*@`iq@RHBVdB0C9k+_Gwo!K%8W%(8j7##YLuYdmC4g zD*nYd{4u&!%e4=Q_)NK1mpze8|`X41>jblmaViLPxN$Fw+6V`CD z$YH`7P8LgOxT8b;uI6MVV=0egl(8FZZKgR=8O9V(WF=) zeqtMLFAKzPOt`%)5O0|(*rB-#g@V6-h5H#cccCcEgw0(fiZS6fu}G9)!d5R9<(RP5 zi$x_SZ1oZm%7m?6BI1~E(JvMCnMRm{>H#)0km|imv}PmLdzt9OR9lZP1KowgvqFqx zCDwO^n979pT`6WWVSQJMg-lrARbnL*)_0ZI#Dw)-Ep{+reOHSEOjzGF;sn!(2-v08 zh>HeNebPZxq2yIM^FS z4W>q`v%)utXr`8{7XZ~Y2A*)n5Q@GYDd)mW7)t#@s0$vJ1xCDV{K4%w6Io6IOSZc+b>mb#8dBu;ACTU{bYQ zeHf^yLDXlvg%{f@v`Gu!ElM+mx5)qsWNMJSCoO!BsLGhKCj%&wY0rYR@V%lI)6oSP zK%X!rnA5`diRMgA%^5)L41$(TE(g;n7g}~ejAoY$(6R$!64ThdR&`KJXPUp)6@J|* zhv_u5`jA+{bO%~}NUUXg4z|N$GgFby@ate=H`8{QVn@VbrXzNkV@Jdp#;qOF!jFot znND@c0J_E0=*-#hW8yoej%O|b{bCSx<#F+X2(M)S3O_D<;;_@RMAIp?#R(Begg4@E z!%vD?Y#aS)7#D<3 z0y-JDpbNsE2`9!y5zK@W`dQhX8>g|4TiaQRm@_V z40G?Qn9t-r-8rp!gYA)eR8Hpcmjg2i>Q&mfpz6)Nz`xhbBo3$C1- z;uRBi&@J(v2|MVPaHu8VU%Df9&}~ta2|MVv@Mgm6w!bith}92JQ^znfh9|*D*Q> z>-$=iWWxHs5dlnC-#4N%6V~^w2xG$fz7_FISl>TI117BRpCZv9+O*z@Hf;Mr9}%K_ z=~Vwq3}Pkr@?T;k6ZZ0ZF`fxe_4i^L6E^;X$Y#P*{exJ|lSTS6 zVVxXgSthKLgRIDeb#jz7nW#>VGS)z-)9)2|ayiM4?1O{lBzrO8U=^0BOgLDD%wlS}x;oGTgJ`f^Dz# zD3qxu7kZB=o_I~m)(`MN0{p3rgzHp%`BmZI=2N$X`(o)}; z#Lf%T!u_QSQ}KlvKweC%%=WbKva&SePPkE(m4Qsy&E;fOChX>NGSVRG$^cm_pE5%O z7Ktb{rW|MHXpp z(6)|~BdW>a^ol86ob5OVzR_2;m0|m(#gd3nIj;>;mMC|4V??<0OEGMFllMkM$YpJj z;2C}G@rWq-uDwB8*9#HR@^D9_EHQHa&k^?8@?9qbf9&`^qMn@7*`Oyw%#rn_V;7`x z;)AO-vZ4GJQI=@i!#@)K!v;*3F8p9llx4c2r|~{INp>~}`l5Pd3)wH9Vj`2}kZ$A& zJ<~9|;!fXRK4eN6Xp#fuW2S)v zM>`CVFPZR7QmXum3Ew28N=t8}O863Vpmbrv7fA!97gOCegCYmX(o8K~){FuSG!XU# za}C&>v4KNmTlT>Q4w2pRT;LVZ=dv%`nr5d*el7pFGo(7_n3+u`3C4GCR6vvjx*$MOl9ode~6qR-!g_B{xx!@ zRQ<3^(jA*0{vD_=)9Rczk+Wnmrh_>jfJ!j=^|wT2$#P6#{fhuqVw!c>BxlP|rnQGh zJIt1GOec@P*GaNvea5RtMmuE7W=ytOCOJp8W=fwm+F_3D%+zRgv8cJSH&e^i#eoJf z^*L@;IdTNksN=38M~-Kje%vH=IhASE@zHh%U1l3dQ)ixBM3f_b8Rj1~Po5rROpkyD zm7^BOEjELq=Y&TslHCUz)Ten|)M7cDC|m54^!prb*+ z{e~L0+DB5O?CWIjVFq^HIU4>{`s?9HSz@wlPSiG8afD$zcY0yec9}WSpnAtwMD37I ziL%7w4slVtq!?x7E1en_wOd+=(j9S$?Ug=ExV`O_{!9~_Sk*o~IzlzGN9=^R09G6nAUXm13J%CqmNac zkXM=N>K!6gy`ps{Th(dlFd922-7#6;8mWR{i@6=C#&pBZxhOwp8+Oh`IhN^*weT=6 z)0uX!g@<`LlPR@MTKFZYGiB7t09wX`mH1k&W2&p~i-HXuyZ5TR%}VUvtMVZecJDR$ zm>9`8CtjxyOKR zG0n7R?TLCIzhl(1jsg8*5QTXte`ni{^B1EY%0HPdoWBZW8f$d#W7EZ`N3sah@20Cj z9tKgA@1-9R9x=D0zL)7~m@iBGQm3Sc`ccjy#CKDVqJEa|*a$D9^k%W}K^q=!&*ZRi zm?zy454UGBjj8s2@9^Jb22+duen44Fo51#5&S%;Ww&!vMQ+KfaE;lfZ0Nd|!I};Ac z3%QRe(GLCoLLO(tF?lJ^GvS!Ll-CTRroNJQ*!F(Oi>O!f5mV8n?}2`0+SkoH{15qx z=|nd_pbrL7l-JT>ywTiRPWq-e6&7Oc2oKq^8f(kIwc)LdVk!dHhCgL(rn0(oJgir2 zg-|*xabgLzj0qbd)jB3@gj8D%qT-d>!?ve6g`$-@!t^eu7|_`~PyI0wd^P;aIN-P6K-)Ig># z-7|njFqsy3hZk4ln948k1DeY8sI7OnubQ3bX>aETxRCKl4|oz*E14wJw}jfnv=3}0 z)efesJ>W@L9bjtH3%(MgPB8WF1z(9#7n#ywN|#pGnHIp5F0H;b2&OcAGs#c=NQiq- z^JqVnF$udFH=Xv;{^}Xii`>4^hsgoX_d3ePG#k$Mx@siTYB=BPstHWP;e4;B zrZG){^Sz#$!_@M;vsKksix~Up$LgyFA!*@_)K{z;Y03b)!88<(_fOP4rb(Us^w0+I zVa6ml*_$YpY4qVdIN6)1!c3;qCin|-#h5%#k9KIPN-%91<{kd2D#vtUm>*Cjro>rR z)l7vlb(sZ!IY`AZ;g*u9>NCw%>-_XP4OAUF-Y{CI5v<1>Mhi8b32zw5YAO@nFp^a^ zlM^h0mTDoBH!OmdY84Zn2d&g5COi*Xshv!C9<){mm}=sQ*IJ!4kPd`4>LMH8%sU+2 zMqOuentvAPTc#QNtE&|C1JmOD@P%Ua%pi)=R=sB1{pQ!A+bS{L=;+^?-v%mV5P0gP z8mYSWxp3ljP|@tO3{JcbsxA|*j*hAc6RwVqswI=p4)5?zssmHG9ezMPnHGVqvl_s( z25gOdh35Rf{#3=gR;BY#>!=op}X40G#*|n z_E5)|a`dE6R8XTDeL_5YsYk4=+b3A`Qol0cdg`rSG2Mmb)LVUEnzrD(=swC}2G7d{ zKj_Ckf$2J}IlQA$L3!%t@C_tYooO}L`l%?UEnw@X>M&h^W!+yjX1WW@y1zp^Q)A5;9PYW%>Z`E(WT}ObO;E(Sy`Xrl#f> zK=YWKPQW*i)G{WI6YvcrwVug71-^l#wlYnh0^dMVdzs2v;7#NZb(FD&B?IW3K{VSw zS6A4E-~IVq-Dbk?{(P<;GU0cBhN{O*_}!nO>ZL&xWtjSlZMf?WQ|6h*AS6$QzrHg} zxiH>`?jEi@nSO)r974D~tF&qqte%ur(uqEVQs(%FVlW~v!X z7-go?nJ~&MwUh~>*kfj?b&UJKn5DKbor5B>)E=Y@3(}Zv^M4-x+5ox{5jK9n%{KGgq1B7~|v&<2zS58$@Apln2|a z_V{3< zpvNpzq3MjNbC$&{S38*8maLCiq3$phIlnDtrFzYT51lg;)u?Xxns&XKI1l5c(|hyv zYC01>kZw?Onec&hgIdCbSBQ;j4HI4=Hmc1`jls4_nvf>B9MoKnYxrn|lCxr#k%HDejrclN3;n5x6P+^cpm)dAZ+b&#n&*!HPY2Ejv4r4}lv zDBcPVs2|y7x84Jkk(0Zng&$H*3yl8F>6QUhjOi|{=EKUD=_#z{!>XJ?5c5@e;RX2ZD1;+zX96L zgiGYK+Q)=TV$Z0@3$aOf6u88mQ^|{vvc&V%C1WqB9ZYXc z8xea+^(M*|^-k1^{aQILF>Lrnpv$TuQI43pQ8v<( zS}GrVug`iF{zh$ChF&=$C^04W8?|h?LCLOtW4}{hF}?0PBKCXrFrPAFe^Ci549|$f zg|W|6BGaKJt73ms`YYn+4jBh!KQ@ZVAH(+bX2yqY>|{Wqdlx+7jqowcD%I0;>}u}pY1b;nlRL zHj@djrbV@ROn5bQ)s`{g)znp6&xBV~tG1PiuBKLPFC$(}-L#`jz4dOb`D*H}J!B_Y zpf+?h^^5b>+U2R62LW|wTHV|)u7uW)X$#m&XrD7(=;IexQX9i`w@(mII#bc%esQI= z8BC>y2Lb6!>mgrhZ7I{fQjoE)(5f)uJL?Ks1QWiq4%8Bu@SSy_)`$r|oek2Gm^Kb{6+v2CrhV{y9jtX_ zx@_O!DuT7XjESqPDnuL1)Mb^c2+>9xL>qiXZ6e!h^ofhBsAV$M?Nb+MF4Gq&)m0^J zG1LAO`1=Ri8m4|JjpHh7Uos6(u_poM8c0P{(ay5*=U!G-MZ3)OvX`rA1Su zL!vD4+oDTx^|dD3jeHNfh81a`Z6-24+P62iMD$Ox~7Yu3qQp*(YEX~ z=rq`xX=%F*`n1K1xFjt(7ipY$aq@j!3vC%w{K-P`$y$-!hHdak*Z7uNXQFiBJKrn5 zm9}V)5v9=Nvhi)~+Tpzh3UihC_FCQjNLiv)(Z=z;wKO95Er5o}@qM(>hYZipm)qip zX$=n>^g4Y^{0Obd5u|Y<_EbjvXf2Z{T}0~H@nf`yM-9*V4ZnyVuYGgO@HCy;9Y0C4 zmpE=<(#d1->DoY|bP+Z8Z2V+x(Fr5t*%RN!Pt)d{G(6j!`Z<1vc9m)U$(QjnwZKz` z=j{gX;%8~%v_XDLEeW$VzcU8;4De0J(Hzej)V+ys!hG$uoiRx-pRh=~cg`^G-CaFl zspfdWpn>({5>{$WE+SUKsDy zvY4{qh4Ef(0n-t!TW3eO{~pw?vC;!OT zX>d~O!PFty?kY}d0~ql*IHe6`!sFnSW@o}({j@fj33v6=+AM>pO=q-uY-_oEW5OA2 z8B>qtJAu|0@I0&SAi_)L;oyX`+Uu*>ZFtK(n{Zz1d<`i}^v$`Ma8WzYgbz(+x~K|~ z!?WP?TrJ=_I;A_N{V(?3Jg%y$d;CA=-hIy5i~@>+Q(z{dQfivBGG4%(P*QP7aRk8u zaZK}qv!*F(US~mZK&;f9r@$Gf)U-6Uz??`lO)D+4-&%Vw4Ddge~{F`2!+s zxi`$ah;SZr!wes+7tH`0?oIP?q6jOr+?(cegjlVG=F3D_t%c_6L|Cm~nePx`wSHy( zo(QY;micEQ+y%d7=I3RESi41LHzKUvBC|Kq)_INIZ*tr0ONiBb+gwAEsNOr~x@1?- z{_DUy=Eg+#+J9?1*2m;07MXX=-AKLNruKz0#Rsy#F^_xd6Ao~jCqMNG2e{3%h_GSY zH`|D?Vca*T6RFTH9+=k>VY_%>-bjS);#>0$B5W7mn)eY+wq^B&gQ>We_`UfeDRD0m zz78NsWbL83NDxk$9tS=&JAa1dHDB47z=Ix}#|lbQj&>*=^pp82(TfYq2R$)IUqqK_ z%EyOa2>RK4iD-FntssRNm(UI_MiKBlwZbAK!a2q|K_-SDJi@t7)tDwhW_FXvGde6t zWBH#;JE!P&L7WwRAqfvIzSWN&r*>yI@`V~7r~aWIJx=Y(Y8FT>j{2Ug9ubcEWm!`q z9QDhxFi9f+2d1vYyr8!6Mf}b##1K&aj?3=-K2_apPiG6>{ziAXgihISwT4Ljti>960cweanzj> zRGFO>B=&W;Esra{J6Mx_`lT!eTx8Z{`9#=KYO$L{(Kd$xba(J2R^h7jfJ5s`tSZr> zc{R({X0?dc&a0u+X7!1-f?XZfjOaMn)nOJQ+~%pv+7RJ3PhHlD2$zg6vmQj^?%>NT zju7t-)?-76@a|weHkt_U4%TO>M0j_wKATR2cL!f#bBOTn;45q~5#Akaz*Z9B-N6QI zJ(0LO*pO`|jJL%kh`WPL*bP$Q-N7d8E)m`xY|0)I;oZSw33PX`IV*onmLYEKHD}Kg z;oZR&48Da8zsVf$4z^(Ri16-UAZtp5cLxJm7!lqb3}UT`@a|v`>qvzAO2O=PB5`*x zIT7m8r+FAlBW(xWA7~L#AKj<9g{>eO26h&fO*9eg!r2Ez?|>bAl!E98*hR1dL>Is= zf}J2*4R(?29MLx2zdYdQ0uL!((5_oDc3or}u1`?|O|jyOB))=3h?mO9uJ*0)vcJ3&3zG;$IhyBKH=QU0D4K|R?bqMLix0<9!+ zX#IXrEXyYHXuSn!Gm-1$-9f$BZlZFN_t|O=frHvDYzv3bp_cxv>P?wo+`H`00*J7U z#j*NCxOW-HnoEKN|A^l4P|E<;gPh=@mH{k|2oJR+upvZvs3n1oe(Jq@5*=z8$QF?k zJk&Cftt7%jErVD#5guw8#5NP*p_ajHHxV9c8O#n!f|Ol^pv9qKC2oJRkW8Oq~sAU+dLWGA}hO-*QF7Z&y zaP~4G9%>oEnh@ckmJuwJ2oJT4WUYwsP|Ha68WA398O6F2;h~mMtRK3O>!>U{=DBhCk3$Nl-wQlIhH*m0cnyc(=;Rt`Xs?F@@bG!b?aB`;G|D zY^Jg&M0jR1l^I{j!oyL2JS#;MYWpeK6xJKhY))dqq{K6ulh~_7IB%THIuPN!aWd;h zg!9HJtPc^+8>g^=L^yAp%7zm~*j5dLB?6wyoX%{d#B-U`SvnEU7vExQiEzI77TZXK z^Tio#2NBK}XRv)lc)^^>juJ)N>I^r9!yr4G{X{D44TtU z%%8}-><6H_MBf}!gO{_$L_Z%hfI^6H#7}3h5@GeEvuGl$o($HF2&*T9^_2t_Qc+h{ zuz_TWH*;68;Y9FA#etEg>XmUWpUL10>+q9j!ZX?O5;u;cOrbEcwjBjmVsx6t9+M^B za?N7ww)BX1T(g)9QP{GYW!EuJqE5?dDC<~dNurr#vub3AcU-gCi$r+GHJicb(=jo^ z<$BhF?B2GO9&H*d?o@7IZ;=wGpBvabBD_<%ku4#@+TO@k5#gQ6P3&DFoX%`wTZ!;a zVEcqgk*w0Tt-pytJN zyh89UW+6Ip+!v@V(S(E5gLkt|L<wgm~+`4BAhYr zV+VI>rb!+M0l+~!7_?NftGxdWs%+em@3XE z*+!zrF_}&$*-oOB3xk6{V*7};EQ|y?M&xMSQ^old`=IGagy7)Q>?)BZ zArj~|5sr;#*tbMDHlATmh;VHDnCW+A!NAz4e9TG_;m~-Nl_T2JzX5C+F&{!48_%)o zL^w8{V|9q|>h}q2M6})Z^PBMa1I}hIuoS6;g6%NQ6c&I>w~K5Oxy0^uk?kV7kqpn_ zv;9O5l6`Ck$H5i>hVwZy-xDc@aDIevO0|P$r1DvPspK)XwpM5f_yFw{)`^sBY*VbJ znqfZ8ud>mk!hUv@jVHo>c8yIZ!hUv*%@rg^`|E6nw1Y^$x0=GlTa#|GTjT*2(XCQU zy&!@j_R=>c9l3}#B*F-8vp^z@;5LgCBqO-P21`4L;C>42J;Ql_@_@65`|L6i?(IBa z*NAX$=K;Gz^q~zNM`zy=U9`dD=|Nh6^;{|zGuFK zV_;tQkogng-t$9Nmk9TsAF;+nxcB^sg%IK1^AGG*B6nMl@ur$E+C63iN#zHVtH*2v z5ng?MV&jOghJIpGh_C>kuvtV{fKS*0BKP@G!9TNfBA@x4fU+csK}*p#lHKGs?pBkc z?I6URXGPmbg!^}@c9aPB?^Nw$BHX_-X%~rb|IVacCBk`_St}yKd6-%ImI&uzO#6ul z=V4Z+=?`QL;6zN*T#0b!S<}i9;m)(JJx7E)&$?D!lE{;x)h4?U(EbgrArU?!XlOx1 zNzPskxE4udb@pk%ty+7+Hlbb(9JDS(T|<3t? zuf0vmi#E6`ui1!tcZ0j~+H#_y-Qcdgww9=Lm{$XTZ3B@{m=DknqO-7YsiEZ(U4ey5 z4eclq&O>TyXNW=@!$hQ}c9F0YSk}_MB=QBjT3QiN5L|x(vS#ekJ_o%T)YT%1UOMPwJ3Q6oS2GP(q4l%` zQm=qjXgzHhQN2B|U8jvDin4i6Gx>+tfen=g+A>mx!zHtUwpNm|rI)*@p*HL>rY%i5 z(rtWjLoJi2`qo*&O|)+WVGT{2W{Qo(OJtB%|0kIle8)tP)|?36gA=S-i10l)!CG4) zqfL5nh}Mb7t<7rN%hO>K&#&{l!C~5HQa9+l31~bKzC_WYO((*aC|b0+MEH7%aBVRW zzFs0+%Ot{gfJA8PiSQjD5!x0aY_5^o9-<3YXp)iIAws-bwA4-#;nkw0_9+p*MDbPa z3!*_Ej5S`>ZW1LsZVzsy-6b0DxDV(N(T+tYf?I3q6IovS7M%rhBLB{nXjr6r~LmBzsbnHeA|?VLnQGQxeCs)=}CdB0Osy zrM*oAXRXVd+H3O(@vwD!ZMh_6?=rK zYbWhK+2KsGllCJK&Llf&>}OdRIFszGITPVbva{w%gfqz)tr8I~vSYMrL_QX{J7DPD9?5af&;ViS8){bbqt=vqSW%ke}NF`)D0hD5*7OQO` zmyqq8nI;QN)cR;QNrxj{AMG9yww%7&BO+`$eKnJ!LW*Sd^wX*f!fy2H+f=UowMePN z+bI*@rneHuYYC+N*tY9!G4n~#W|9hHP0;2OVXTSTG9rvMQClNO#yU{jFYQF57^q*HyHeuQ_XIm!|CL);PqbH4-F)S*V2yk}el& zfx2`#G$=S^k+xfqbh$)3AV|7gqFH-#>D0IT#^y`4fr6ydWlxi~F{ow8GHv)%yAC1C zHTa%7BxbU*#?mDuT`L2hxJJ4W+a+X;_Kl!4n7~5 z3T+$H;LK+4*w$tDYfprFGEa!L02%NGeC)%^GrSre&`J?yXZQkn5jh-!0~?wTk;fr8 zu%Y=A?SgHRLs}i8W3YvCNNY^wzn7_pwP2#wHTI4*4r{Lxj*DXI5v>E!%BZo%5v`jf z=&(EHz}(3*%H4ESdy|}0i*i$rYLkgDO~v8lVJxyJ10q=I6kT63&b17dqYlY?L4r!<}3ZWUko{;Jtlf3x-jHpEx)v^ zi>pgKP3N@UWkkV39nPr#sg@}T?g@VzazQ)qDeT~$uqpJi*0ii7&uCNV6>TbhN};#4rsa{~RV20_=bB>0g8Dmctx!&e1$Dwa7+i6-@JPEz$~CqR zK`D;dKh|6;h`>1BG=8j=Bf^`;KWWbq;Z5V8wCa*XcYLDNCOc(C_0T6;Ln7xDb%BEH zT>h*@lHI+j%|d_HqKF>5P7ML z;89qj>F*JJd=y?nrf-u3O{V623RBn5lan>J-k`K%m|XvXlo%%0%@svahzvUD&VumP zbIVW%{Sr}7-fN-GdT1qC=6E2yls-|=b@jrYzM*bkdr0(7IB+zL|qEO1~ zmjub|l-D==$YRJ`w3k(4Y(uE8Ub~v~h{JqUy}O{v+zIC8)%3nZ-Y_q( zrVk>TF&LIG`Us*$gJB7yTZuY_+4e3ll`rK7qnE$FfV7QlHx`&``g=8~sqZA!3$WI% zsqZJk0jZXLjHsHe$wHW&SAdbIwqD9lWSR%SNK{+*B6?v8EH!i=qIy$csiFH5sl#BY zq1Peu80KTUwh$hC#S374y^m1CsIzoiXnnnBby*an+vSEf)O~75iVr>(+E`y8Xs$Bw z=qI5~b-$W28CWpQ^p}XRV4CUh5-}*y$s7x&xgJP_1=C!Ql;qW-F+|@&k19quS=B=C z@|0S71?qjC(uC5%`k1HmxvgLk?EGOFwbb90YF^D&ZZQm0SVnF1d!!7oO<7F04x;p` zwM43*&A~ib4|qx~z1r&yo|3La>n)xVJn*YWJf)Uiuj%cd63m44E>8*OzIyMc)Y7Z7 zK2Q>W!3uTLMITOxb<;&3M}&3LRi8`*bptd@lIR@WblX#MQ@ZKtPpPF>cYWPc(&4l2 zo1T&z(5|OsZRyohKll`NrI&u#+JXng}iU_xXQ}t*f+y?%6DK+MaI)1DS8=h^4PuN6#7SWm=)qoaA z5~Vsx$4@V#%PJuOVUzT=M72X+2HHq;E;}G>vc7|;Ap2#YeUd~dQ}m-`_qHu}nW;jh z(AAB@rs`jk^0n2WKt;tKY>$?~RR_0qrt2;*mt<|aUX}>6_Lg3m2(kv`Ckd`PU6-5u zJE8ZPdW4<#nL2(h3A2LU-_~R7yuYpYD)tVYZI+%W2roWu!)ED^iGuQCY!{cCLP{-3 zg!`NN+x28{Yi$APa7n8OyOlP511bGsx6-EXAbOa@)CGDjk;l-n#sd9lu}heeE!58t zwT2nlLj58UPK_4nUlQTeXpvqdNfhj2{ed7@6j)(Zuvm|)k7-I%&bh{gE!NYCq6Uo# zTdKP?lyEw~*wuVoX?uUOPzA_lw4at66?f{30tMNYK=5sv8;b9Y_;BvC}jPdur>N}qUj44 zhh^z&iOTj}6Shuo+D3+w)O#b)R6&z@GE9}T_1Q#Lm?~%M3yI(zj~3Hs@^l(G9SBSKmdnsm<=N_w@ZlAGX1pFwo3lcy<1KTmWZeoD|GfqPjB@aqMWK6)uSbec5+njMr5@$ z%7pu6cRzSH_=G--lRnL{JB|>`arN`<2{xgHP%ENc~mrCfk>p(9Pcs zKBHeH<(%M6K(~qTMWY|<-x6UP{8)cNG=HC;<*crE6ba@l_XPlzBC6WU&vH&LN7SrW z0FY0y%RPRUPxR_Ud-nub0qY4opmc;L_^IBGXk@Uie5#*^$DVKz``Iz1d0ixR+=?HAm_Vp~E>Ya)1wQmd*OSCRL$YMRO#}jS|54W7xhZ5ly*9H9z zBHZG-pidyWa@f!Enf?~h{lfu3^N5-(ZezKqFCl8XI2vdbQQrhV%O(9?q7exJmP=NB zyTAhq=J&Eb`*oS8yO6fadet5!dAh9ElEi(oOE zCZa7`0MKqhvYNlvbNZB2?AQ7cNgR9C*ZL_U=vB6#*243^IA6c359=!nv7mhw=ezn? zqI>N#o$l(Bh_FT9(`OQ4gTANFCmPoQ9CP? z_X9nL5ZAU3^gN<1Sz|5V>Zgfvvc>~_Ml>n--Qe%^D?~W9e5cw)$Y;p(3m z$B3|mm~oaUqZXuCGcFNgiZ$aJ5vEu-ZWCdO-Lt8}4P#h>ECKB9hB1~1ySrgbBEls* zH)ayylARm#iEzp8U@RlTCA)*MhUiG^S)q=``$Vu}2ii`Q(FaoOWaJQHik*x+qK;iZ zus9p1iF$Y40rVLW4k0ea6(Sr$T#Q>pIE1(w_la-_aanKju8BiPDZ_aX<}^*&bs)!5 z%6Mt8q|IGVSv-s$f^a~IT5pOCzz4X?8t+Oa#|OB}8e56*!S8a$ULtt#+x7*-0msN5 zt%nyQ!-K-_ng-Xr*!F^@vN0i9l&!c}_!#pgaqI>@#xkO4oB2IcY)yO&y{d7Al=v8W zRpS;B-gag4@54;)EqL;~w(%aR7r>L>wT*2= z_*8fu<3l2RD!h(ygb1GsuWOtl!l%OP8W)K0sqmML0wR1W{AJ@SB77>mp79M4ys*e0 z@JB*?D!jg79xe+5o(czYCJNN9Sza;95Vh8B0aYTZs{2_Q7%vdLtOo$SNQ94(H#A-$ z!pF!P8ZC&d)2#4HHzS-7pCfN%v?IdC)7a=tgpH@M5le)Pr->0ygl`RKVhknvHq_73 z)Odr4g#`dj6eP#iqnNf8#H7{GUjWAoocms`&QYjj3pwWW};|((U z6Jeu$f1_x$dEm1*`V2MZzafhcQygk6CqkcL#u_3_ahS1z=zF+4S&Z#Oj!Oc74hWJd z4mTc*DNbV2CQ}FK9S1j=YLQ9m68B;#Iv(ZkFykc}U zI!of;t*a5<)#yp&lwBJrp2#P=L3lSKiKupVGoUw!;AN!!wwNmVzZ?9zF_(0`ESrFq z5aD@>9!4h7Ok4IAICG5WDS8_>Nr~qvdK>qM@H|By;}H>_r|4strpmnId5XSsQs3tVG*I>$wu{=l0NDk z8a~W8PZZX-b@*^2=WS`1)N6Z8_!y(}EJS#xQs3U;ZyGs7_*{C5@qnnk(<{!YM)Yjy zG9msI=kdl2qL1d>&?Xpni7fjP!zUUI)6gYe5M#E(7AM||nPLo=O7XRhDaJS=JWesy zm`t<-df`-K777^s5M8&<4FKFn zSZj@+WrlH-sKuH9ppS|07|BfIA`u=VnQ2@l!eb8d}23(yN=4Y90xDr;L7XVa_$ZO^`OPcWZA(um^118k>vii^dqou&?A zov_q+ut1g#PXCq~kBM;lx75%UO1mvtL&KLDE<`z5qkzg1;R=$o;1;314N@COWfq1yDCZ2h@(eY)yBY%3Eg)S_|5urRaa65;J0B z_-ey>nWUybSw<~EsY=J-9pUSZI6?E2SBLKpf8Ur&E*~f6g>Ntp5`F8K7rx2JCx0h8 zoetk@gf16hiW%f~qm`h^yub>pv+YJSA+FB08{LU;1-8TJON1-19mXIcoOXaXx6AB|4O#L>x4tSE3ybYA@`ib2NvH2~vsYXkOoIs$LWKxsMpD zNQ>L#M~n@E%4J#jkLwj zWt}%ZBMOJ(cNdH+MBU-|-38+oQRFJeh|i4sM6a##1bSTT53VH_4YpQ>8Dp!T3j-it zU@jZgNQp-SFB>lr;RWV%qX7|KU_LhjiSPpRg%Lr77nm=MC?Xv1^NkoH9PjguUPLKf zVYA5?K(wf0*8sp|Lj0iD6=Mw1c-x~~QEQ(2sL@!r_+ZF}~K8R@tCpcZh6e#^K+cG#p}-7jjP?|zt{W8vH}cD^fp zV&U8|_7hRsa!5rhhKQ;=+7_l$|}i7=ssxg3Bdi5|W&R!ODU zaQ(*EAV_++Z!~4(Nk zq{PfTG#V0NO+PXMiLj<08IeR-(?1wdL|D^57+r|4rhhbg5n)aLXe1C}o*o;?L@O&o zDLgjD3Y3}p$(X&VI8z%BQl_358>LcY>efM#DeVwdmC8qaATxzo?s^EeDRKE?;$EAj zx;tE#P27hl*_L+56ze`T`%xpE_aWuD?4NDs!!U=$!~C32CN&=B=X@3s9_Dx8HX=OC z@4(ZE@GQS0UrU5%`5pO2B7CsGiSHo72Me6|J|cXuz?mNJ0A|^We3Kdc{NmH6p^NO-l11qHzu3ag)-#B_TcIl4*vwUAaOL@MXl-2qM0Ob4hRTfv@WZ#JAxC_y^WIv#?MD33FS$ue9q8>*Afc%JN zz{S#+zeKbcE|$K$AyKuS@WMMDNYn_nxU29;qBVW2ewOEX6yf$h0YF`d8n3Nus>*v2 zb%61%Do-H7EAR_EnFz1IFYvKM?sO!PgS81(t}KyxoUrm!`xo>=+Tij}yJ$J6NgBuL??4GP=h{ z)ZuZtGL%cL--vjHyX}+IdvR(+1HP7MXNTz#)`mQDzqIV$ZgE62KJEaLTt_$O?@8kL zOiOdVl?b0{Y0f_+!tY+S;D?FuyH_pvDI)ytRUki4gx|dih6!5aGA6 z!gv4?ej6){TVEl3l2gPjyg5Z}d_=%7^=DQ+9L<)4xzt{d9&d?H*o zwBt94aNW?3KM*9_a}=+42t$#ph$tSHSJHx__$o>K1K10Q;_njegS~(#zBNy^Vq=3l zgjJl|^Sxw=GxqlUFcHq!JMfQ)aK_$&pC=lc4W9_$`9$Ng;lvOxB*MY#HGYo>2d~%o z4@5Y4b>ya_ssiy(<~VwF7NR~wme|!u> zNmZWA%Z!NO?T$;Tup7?R^X~-7zSV_0p8z{6L}-RjI&|S>5P>{h;Ltsxrra8i18-GBQ=?Hsm z{3jwzXkV^fl=kJWgjj6-cv&JWwtn14kc_ZD&y;o|!v1_cxx^gy=bMQzhyD2; zB8)JOA0)!~;`m9TA}g#+;`t|pxH5_7Ul8H<3XgWZNK67x zk;HGj3hyf6Q;EKN72Z|C(}-}%lE@blHRx=G&n55`gt%rI$k!3!nq?sWfC$$tgZM5Y zT(b<~2Z*#*@CFlpoTywYc!LQ)M}&_I4dIuG@R6Y*{5lbon$?uV?+{|KCGqczEy3eZ z{xcD_i=mvKmbHd6;biVcgfrn}?oG5g5k8a2eTi@;JdD>M!kO@JUY7`G!q(xu2_Y_e zM(_}#MX=@>!CMjGnr9@BCc=*xkK{cC$*LH|tDh~Yic!3_B)$zA;wavb=ma#xQ9OtU z+r?-rk0iu~F`Bn0!iM+;??QwP@eSTbkc@B)zbWlR-H+jS$z_rQd{~n|BpTxYAJ*jR zIaz8L=2-4Pgkg^5Ru4i<&6~VD5hmtM{yb6MEO*m5UXutPN*c%O5n;=>@}@*sg;pLR zNG3FepOIbcRJTFZ&rI(*&0QodlpF_IfcgO{!SW-+HMzMtF zd@lTnGfT_)5h6U>ww#|P!akDDF93<_A9j*-euXRxp++bSIdBbvQ9iJyjM3K#x2%4`%#<0k2UX+hzF<)`)?jE_G zhZaaW)6F+>1HUOqo>1G&>wSrK*R7(NZ01cRie|Ez9}y%Q)HZ%f+6kB2_<1{*+jyU= z7>snelP3z2?P(_;CP{?3lPlLsT<+mq&~*nZHlaPdltkfl4-c_(n!{fur|2?=N87o~ z;j!0C0^QH!e?dutCMZSfNbmhT#m?>kpGtOfttz}TmcJ*E4)5`uc1{oSedKhbGSd4X zKV@fkh@U6Bz3R)6hj^_Un3xI53e(GxM|g@LSu#iY)L+nSa(P6xj`Tjt*V$PfYzaSrS`UM1fnvb-zJHxHNpec4P&+v3RyN~(WU(g0Sm)4JYmBNy=o#i!tLG=Vp zfKPS8`$l-iS0ygb@vL9aWBIbQ7+x|F&9gx3`$tKt*hSkMIJBPhd9th||>(@%M% zozqWw6geHDL`HtfV~B!H?IO?fSUZ;&cs$wttbXWufu{1^kqqzXJZ;Z4o9M1crC6 za6h7B1KgA=yf%^3fV!qHdBfXQ>C}6Gs(i_ViY;N(yUHVpaMZiX+e;Fo-ZkEZ>@Ec{ z^&0O*bUkRSag8Ss;RmO#^JF4?2KqW5OB5Ul=Lh-3+qC}c5DD+mwRea5lBjNQA>*6jyOO{v_ zcll)^ya3(f*NW|+D(>++l0;d2!@v6l!53r27?`d0iTnm;2CDM?R`?#O5I|2t)1{iDM9)49hSs|x1z*U`ASsS1yBb2BO3pdI|$7TTYx z{L~H0px#ilw*Nmk7d6tn8iN1Bpd{dJJy|9HM<4n1|KF|Y-_DHn_nXFVd-$8(TmNEu z|K{jR{S)o~uVe|@|Feza|1S+R+miPGTdfxp_YHjgNrfkB|CxkB`~NG&^|vSD|JwiG zQ>4Ef)p3~We-uNOS3LXwCq69EpZHL;f9dF#7WR&Q{a-dldtY(@mYP>v;Z?wOAYM(Z zE%6HZ4Se!TR~oOxtI5d27+TkbB8jD-{hO64rBHQc1ezV%qs1k-@D!&V|C>cXOqm;t z!O0-@=AcU)fX&o|CoV!?zb=X5aBj9mm-B5UA>)M}+P_To-dE9DUiHU~#Awiit~fn2 zGr;Q}Q>2?ILw*_DU+zu+6YbyrYH6LZ8guYJH3n?8reiJ2*_p4Hsnr$J4g9YPy-8_c z!T%fJ(?cd@E4Vk4`!%C}t*M)dnxqpYZlq@Q8q{ootTOT|_0@Bs{lmv z>*Q#rm_o_2k%?Omt@@YA!lV}`@!u%LlJWoF@ccJa+&?t_V-qW$f+pwT{|ddZZh>4|>}fiQX~>;ni{rtcW#noz#^EyU-=t znuM*qKr_Gm~_bhm|j(pCgxjJq*M7HcLIv{0RBot z!*G7X{eR8+S2i4v1z6PUz+_@7rV7)ftcb__;p9wJ(50#@o`&UwQ*yK7?vCzd?lA0Fhfxs6l}1L zO0binI4KY2DT=dl1x!_u-BN^Rg?rE#jeT&~33bs44bexr=%Nmyi#m#EoJ2IvA{rMF zv?~QIlW3pgl5G4ktLO&SRk-)Z#NMB#R9b?mqmmHGk^#vQvM(p;xx{a=uNc?jGAoYE z-dEo#CE-&D)~C@I2hrEDBnX)lxzQ+-A~nytks2&Z_KUhN(W|7l&&nZ&r@Nf4J0%y)^uf zb6+&A#S>wKUk@zBP11f3;MrYowEeAJZ|Un_l*E5B{>x$H_x26{Ma0yQ{~PB&e=cWO zq5ssc*8jEtKha74Oh@`R-Taf||DS0e|JVNi)G+yP z*6uIbRy@poP0E)C@MRg&$>o7R^9~O&{P@H}hYl1|1 z*lT3VkTUNwu$AYTw46T(-N2RR+V)BTeqj& z+;j@l{&rUUbUcRe^BgxfvocidhC@Pe{_nIGQ;McZDG*7K-eRLr|DU(^XG3^PlqDwJ zY8C~;M1iPewv5K4;9WaaX$=cBlhPi{XXnRq;SFo#omjB4nq;ZS)m@2RQ>MWzxwty) zY^`*}=J!0egjH(s5t~1DBW?fc!tEa%|4SBSW+ebh$o}p}v4+k+$QEmF%9j6Z%{{A; zzC1()*@qxC*i=ol#Ss#U{~JK7GLyy@3-h1iPW5cif0ss%0c!_i#IoADIQ*AaP~u1iH4C&`*42y|F6dX--t{OQ1;P3qp=VAFNR<( z&eJo2{(3R`%Uv$ng&sW9scF z|7#sXSP_9{kKUMrlVXyDo8@vF&7|BH7Yy^OX#1!W>gAOJ6J%13iXH8PY52c}hPE=H z_FG!No%CO||KE009Ngb)+X|8k=U@NcK>uoJzZ(DX%R1#mMd0NG_OD_8-~5b5PC%sX ze^@s5>tA_m!M^S)|nQ(Bn0fnOTrkqi=!*4a2~dJrdD0#PtNJ= zx6c(!vJ|YK`GGd}3?+fD{VO3eM5N%8D z5f_(4iLc`Osq(%loFu^ckG%bc#|l*CS*LhsRHK{9p2Pp{3i^lIe2sLBij%~)|DV~V)NU-BQ?zf&Sw+k24KUv$7^X<*Bg5pZo( zmCwXg@%Ky_j@)*TrqtM%+&nR#kmk#?AWW8Ugl|AT}XDaVL9)Vd!abT!-2eXFaElhvb!V0P=VKG{mslrSW!DYaI zHzkXGej*sokDzB~_!3PU(DYc^56t(nrYbww^%EzQGQzf^k~_Olsj5WmdIXwtu1^$S zv(rBK9FF=%dmS``4{|k^rML4@bCvP!tEsiXm-UHKPk3&sXq}nbR9W8Xk#d1~b?>Hz zg1!ydVnD5gZ7X3LE!=k#k@XRgMGH64B7)Px_Ow#1+jaG{a=CjEm~P$ftM^34PAhZX z{y|l>;p-etsY<6X_dpZo!xKJsK51Q5Q-Sirl)9#-5X2LuKv9R)H5H2BvRIRh=J5Z- zIi3ig*M5%;HH`%i6HOC^w;3Xh^F$gaiZo6XXv0 zP!aR3nH~;oZZ#MbNvIhVZ@Z-6DbmBFf_;=(8f|1H#P#Ve77rZ-2>rNd$LQ z_`0gZ$2~R|iT_37zccuaWDme^cQCPDvsmC(chh6=1zkA{8p3z%u?Y0B@W!AWstQxF z{+NnMaTXe9p>dWPiU3^}3BP58-dpR?+ZVndh~-g6&7FNttEytN!pgd#RaCJgs;ZcX zifZ*Ex2>SU2r8Ir>46?0Qhbd07DT%i&wf~zNzlErStBeNvqj0`mi zp0CYNt)0fg|HZjzdd^1kHSz!9{;|eA^MdeH!`n2e{dCZ8iEKws_{hGW~2VPvr}iP@l8vl?FJqh{~lWW@NWsamr<=&?8?K63dx^CrWFn6!q3HtZ4a^ZjN+>iK1 zZENduJVD>Sk>LF2>xH}{S7#Jt*@@^&;lkuhX0DI*&#+9?Z(s~)gN9$ z7o?`IMDyW7G%wCU({*lL(>zhI^F-5_CmO{((ZsUY_@EaYFrhW!Gfbv;>N=!q-|uMz z=HP>^tPV?rw@lHx){FMDLn5V614G)=%;EF_W4@7WRMQ~R| zaF2y8GhtV8Het_uENmYO+g#OXv(mAQ2`>p3wA|Sn9V-eqWlY%D%b2io%b3J)udZL0 z=U7#^tZEh3RfTm`VO>jD)DzJ(6+zSzZfcR|H#Ubl;kc$l$G;WR(Fqz+_pVL_TIW{% zoeH(r<|lwz6}n0my9*h+0Er&sbV2n`m;~md1v8uq)IC9SoKzhXbV0R7SeAmtIoC`u zhe5l=W|Hj`Dxz;CqTi^#1MfL06uB={zdrcD$w8kV`h!!UIyOjkE>xea;?CY8xI(pX zjjQuL_1!g|&Pir`8(NaN@7wMsZ#_P)0=&ir->c?rI{NC1&I`q5)K_0-?eU7Uul{+f zSDgLzTKk$fZ&dNM$JlNB%+ZjDb6Pi%h#8Q?+wdQUw`frw(W0E9MXA7l%RJ|3QHl=w z;l)2gf^ui;E)L+=*=3_zPxFBP=r_rHVNXSu(Q0<<@qC)Lw41f6OC;+^41MXyI)KsJgoD(Bs#g1>5qML72*Ui{&#H(!wOa(oba=dzK|6DTwZyC^S83jQ zfqO2D)l1zoMWWY>651?EC{y^&6y=d-Dp$(G>GX zUI2dKWirD30TIDM)B0$p-qQy!D&>f6Z@mZf-GiGv&I&h|MAEHSMf7KdhqEH$B4Paq zf}2n}5B|ShS~Ui3wv|2&|Cb4KRp}y3yY@i%RSnDftwO)Iw1aWZ^&Ed7Gb6&eV2av0 z*0^8_%Ye_9nI3mNT-w`ck%k)l8t(9z&0Xg0D-&eo&OQQ~7Hv*~Idvbr=25th zGR6jR&luxejH~Ab2>(c#GG?3rRWxI-siRIlKFPC=I>@?bmS>XT89g7&AA{gaG3JW! zEr>?u-dpjD5SMdQ_+JQSk`cCatdV4do?PxZ+VESt$}`AZZfQ37s(o^kXR5gh+W}_3 zMIV9&zfYcIZ0~sx{_pH})HBk2B>EKm4{v`S%)3GErWkW*)OpV|V_18uuEfI1WTL5# zdCu{xo^{N*&}8bED|f!*xzPA9_B-&fJj0`GmN7KWQ;9N{4Sk_(l)3RpcT*baAFZtk zw()Vb%cdD?A+mS~t$x`&Z8}7A&s_Cni?Yt*ljA#}R4iq882C=Z9R|M3aEGBEb+dxN zFSgfF*LQoxxhiWS*8YR0Zo)r>s?N9-2mnhH0#d>BzK4gRk#S73SwALA=9 zZQSMtX3{qNe-SjH!eyu#2ei|oQcgpqoGN$0I2Q9sIlL;v^%(2;$8xDkeB07q_slrw zOI6B`@b)S&upKOfAnJM*f@k;!f_d7~W?re{QivwJl?}|6Uadql(IU~^M50@XM7I)& z?jvmbm~q9>M87Ihz;Ql4=VOH=E0kdN4PGg1Vv0}Y8Oqg}lInYde^_GzSO> zT82n*r2iryI|_d&cM6nV%YnG+{-^QK3`F;e5e`b_1Ys74#{=Y=V8WDsNih1 zj_MIzr+gN3Ul&&XfLJ}ugUBYDmIyObwD9%t-_Lvi7A)tq%_3v#MQFRtYbqSXy zHal5i^nPTjnrW&~Aktf4cAsCmf;VrGR=L6fk@gtYKe|N)U*4`qSOtGxt4Hm!{yI*| z>wp`0)0BwPUyoQcvcdteMrs6lU1im>Sjo3MOEo>vUb;0CHF+6wnj7pb8K4N)j=CVpj zrq7OKR+<47x31Dvp}#7sY`4g9k|-&EOw+;!d{sF~ zG}}j}muCN5`H`tHn4|fYcFxa@=1vE6B}Oc_ae}q?x!s~{;#IHiwae~SaCxv>nYO39 zj}_PX@R><9Dkjq@h`*g!(>IMjim&6FA&U30Xw{72$cWv^&m0Ps(gyzHLev@b-I*`n zZAtJg!*G>chT$qXi_chJxq>spOLG>FigAM~XpuI`*Ov{Av-(zq{}W9W8MXs>0Q<(A zgT7TkHP1PSe>(p@{KsLkD#KwCo0zFeE#aY+y2kQENmYF{cT*6*Vrf#Psc0VsrViab z6`W^vuHp)NRhPi*seE0<1dG6T>zI`8>iczEm5Ju^&$}w~%=N+S#@d0|6HKmHhw(Q- zjN;?L9LuMGIZoLM!2BMRxao=&MH)iLN!FFhPj~UQ7-5?UD##{+qJ@WJ=nS` z>8|I&wp%F-u4gF>E=T-7ApRdIg+U)Lh2fkkl?U$gOWg;vmK(3?s@!z*1+$`iV=(8r zTf2i;;65JACGN|?On2W7W~TecV6Jt)1Lk^nrx#q64em9--0U6%=63hj!QAaW63iU; z*b?-no9>&fAd1}2 zfqB>cF_;hBpYwB79=ZpE`PjWLn2N_(Fqy|fFuBJjFr7V)f$8RP70fao--7Ao;anZ^ zE`r(6L-BW2ntJ&ATV0hvkIn$09uvTf z@OTf*Rvs6?Z0AwAhN}|o(I3pt9y7q~=J5fTJv}ag*~g=FO;;t(qcNC?9s|J~;xPxz zVICiVIm+V-m}5O$YPl*Y9!27Qsx-xc}?LVvT&kKoJ4v*}AvDxQO1@=&Y`%f9)%hq6VOr@`b(LD`MaZLXEY zZd1M725_2F?mn0Y%GIb1bzCk8%(GsvgIVPDE|_<{PJvm~``g-FsqS47d_{Qsg4xPD z5X^Sov0z4fkFVpeC`z)@HSR@_PRiz1C`((FJ>pLV<&u!kE7ydqsRXn}2QMovg>0hq z5Hdtb6!KLiRmcv?heCEG*<1Ozb)<->cO2Z#h6oemVCNg;h&b4oR}z%*&u0lviG!VI z#fpkNp?E7UA0%=C$wHxD6bBpBLa&l^0GX_0$N3QZlJpn)opFK0K_nxEJ}<5(aV*Jr zcmM+ex)hf}id2%*Kqf2KX=-!(3sID=%C(D#nZ zA9S}(RNWotZ=t&$eI6E$dIF;ly zq2C#oPHfGfKUu;;O~@tA6I?DKpSXZzq0oNTG)e5XX{?7kbD5 zu{D+cOcNH-gENS;1VhS+b4lh2{kMbji3>;;3cbr9)sfl=$Yf>vARl61lKw)!C@xU4 z_4y#Oh!hr05@Lzt1=mhYAx!H}NBu_WV#zIQ?jaVp7aLjUdH4B{+gs}emp zmlS!z!GM7U#D#*PNZ}y>(d|HDk@^z*3tliJh&WPk?}S+5J|M?H?}``trb(%!pCuGL>YykZ}FaAVm(zT$1@D3rH#+lmL=G zBz;K+k?ct_mShUaRFdf=Gf?97KZg{#B=boYkW@-j#3X%4`jQMJ8ALLcWD3btlIbKf zNalbP{Xdr!`6LTSs%2!vJ|ulf29gXS*^^`}$rO^QBr{0nkjy2SUxxaB0Vxzu$|*@7 zlD;GZNd}SZNivpXD#>(`862plJq4RNHU0IPm-}DQ%I(gOedK^ zGKXX?$$XLpBo%8p$}veFlD;GZNd}SZNivpX3dvNG=_E5q=8()KnNPBSq*e8zoRjn= z8AvjSWKWW@BvVMHl1wL=K{AJAF3Eh71tj695q4+m^Q!#wybnoVl7S?HNcJQdOEQII zD#>(`86}~>GEU=H}ZEgTE|3|cP)o2w146%+err5#^bF|pS z0{dv*&M9}g`Cpcb`(mI)6oz(nyF*T; zI>tF^-gInD95>Uh3~8_9JaNLDdaQHOtUIDalbvoFd4Ke&koG!87~=wQ!t8sp(@oEm ze5-2w=l|u}VfD#Qcdjxz<$y5|5ix7ggyO;HWrZc0ARo_X}~{9Jnx~ zy^iz533K|XPIu@V;<&kBQIyaj#s%Vpx&2h9I|WTqzPnwN(%!=5;)MCuscmgvz9=J~ zpJn2XPHx{I(Uy2o-s z`^(zC@hqpi2nX6OpXo-qcEkx&oHb2!7h_p;U%OXn4{%hRFmFHGIhn}SSd)so8bdnN zah^C~jy&7xF0O{?uI`BT7#D~WX2aP|cX2hvakJavl=c=b7bnc$ob7biR$ENQ&3hMT zbjWc^lzBepbWgXAIBuR@)TOTcH`MVf7mPL0_ zRfz+vX@0OMB(CE;Y-sxqizDI~7hqG{bhITk|Nkkmu0&Hsg z=}S`L7B0uOwqLp=BhGOOJKDZ+%o2BZ=lQ>dL{B?BGFA}x@nsxn`!!2Ujf)n`;<$Nr zag{j0n&!7(5)#*O9yV$+|HsWuOCl06F2JTZZf;+a61Q+UwzYlzl8iXVDeP$b14}G% z7q?(9(GHI+DMfk#c|VLQY9bYDAu%n{#Zy{$A;!#U6Mp3 zVr*)|^rb0r3)`BPk7~p@b~L}sQcK*$p5{Nav`;+Hc>b7qFFWE*M$1weH=kTur6ItY z<}Y3v64$Yz`Ky;k#4$ECFTWoWx3I1GRZBDC96Op%HY~Lyy4cf(r{1rKRS5 z>;aa=aWi9Cl{mnf=HIm}B(7sa^B-Imx!BGBn1-e{9J4GXZed&V=Pb*JbL?n-{+K21 zVo&q(b3Sn&2bxconfJ2;qR#)aRK`tvS(SzWYns1#Sx8*RhUTZ1MZ_^SHNX9m7I9nS zuP)1obL?pT)y4Mx%>OP8J#Bb)SwY;#f#!d_%EOQAk|JhUO1j z6cNXJ@ceIT!>Nl>8d})a{I8Z}#5r~}zg=R9yV%qGo0EdLj|0s=yU6Ux4q!Qv%D8!d zQY8^!P4fpOA#oiWnm;v(h+}MOerb{tx3I1G6-h>%V@LB-Nn%NKv8N4RP72~a4mAI4 zV)kMWuq=+7A148EP2*oAA#oiWn*X;XB96VuXj2qdu&w!B(~LOBj^^j2mbi;O z%^#8$#C;rSe)>`~hk;{R95=~{X_Z8PHEmd!hQxJjXnyUYh&aZk=I>jS61T9e`N=dR z&atEUjbqluZvJ;^=xKvI{fPTG(EOdL*_%DUvN&!YN~^>H)-?Y_8WPvBq51Em5pgW) z{BLT*!d6N{3)`B1%T*b1jvdWEc$FpYVo&p*TwW0OaiIC1Eg#v(??71`H`jc+x)1X| zprNJ>!POyg9UGeOUL6s~*wp+P*QCTPY-@h|Yct{;JDR`uT1(vBhxy;rhNC}I(9p+$ z=3o7cnaiQavMBEb?J9AAHO+tMx{$bz4b6Y=x`;T&W}*$3O{64R*w*~c*XP6?jUT+; z5_hqu`J-T*rpy_qj15j_h$jGrQj+@t|RpJ0^ntx_RNLEh7G^5=hOXlTRFRz$=xHZ@;bnG(0Kt@)i-X2dymH2>@(OWeht=HH(b#C=uf z|3DkIOXTlN=(pe_SQf|S7vd^$fHlp_M=IhvHZ;H6;)poLrsgjnYZ13K-gRZ>VmJSD z8ampr$4X1w#h&Kni%8-=4m3Y8WDEQ{l2VysFWU`_MMvXHor4b97s*2J+_-v6~hK6=s6)_AwY8F5GB z6IWW|p2nxIEQkjh%k=%2A7EM3X-izwI9VAIH#ELwWu&pp|ColRHaxg8C2nC`^WR#T z5$D*^{9muM#9i!ZUha^@eH>_B?vMv@B%N;lm!&dp{$*vAh5&1t-(fN&u46;<2QG|= zV{B@E_GC)j!nWowUz8E&*b(LV|G`O1qKiFo+^kqs5DzpyXtI2;%O5{k72WTJHH|06 zLgI$TW0Mhaj7{<>aSPiA%lscV3tJh996RE;xp>kNcd@7Woo?zA4>Z2#CUXdf6wBhc zIppRlaey_=exU$M!G<>cW!vHJ|VUE{o%4-kPe$GXHCu*llr0hla+dtZAxG zq%HDojVmj1;*Q48t?Cl@H2&41KJh@~bJmzcIZ{{_$Ia-9s*BzH4``@qgFK&!>)6oz zg0YA=#-`>kA4`c_*w*}cV;OOd9nCLYV~M+>KL2~#aKoB{hCU87zjlrMtB;KSv0E&Q z`uBf`1FUIY{{9bf9UGc|U`<3EWAiYb{|7EiNwlynx;L1NILD6W_dUlFcd@7Wk!C^M z$ARYeJ;xl*4qz37!|Ia=&u zfqgWeWB^#jB%l&v9V3h}#SBM2EzB@S zi(M?x9Oaj*Vu%r@n4wi={ud`09eHUL#$(jF{aqU40G&a;dJxAPr{tchOvqPhFHfKQ*2>|Ia=&u zfqhZu|HvtR!vWSY#ujFnqs1;3*hh0JJA_pXFg%s{Undb^j48G-!yGMkvA{l>(-;6& zF~IP&#CNEZh%m+!TbN;v7Q5I-6R}~eVt^sm6DkqL*uo5RwAjT0`)Fb|j8zQqoud15 z10iuzrxIa|DYh`f94&USz&@JO836NW_?83p32oViybSqq&#?U=;%lv3@c0KOzxh ziY?4AM~hu7u#e^v27pxzFvNO7CBhg}Y+;5uTI^zheKg|?0IL{ah)JDFgfXVr!VGh? z*u?_-Xf9;{Sj7NCuRQ-rL>Oa=EzB@Si(M?RkLEHzfGP$UVqJC5e-bgK*uo5RTqn9$ zC`;VM0{dt#=LldG0}P#R{?|!F7-Nbp%rHlbT`aJVW+4N>Dh3#eI{)h=B8;(xZPEP( zlo99H(foojOWeht=H*{zL)^!K=C`adS1_;|p=6_EceZyPI!`#8}2ht4&N z*a0ky?i<#mN+Q6THvD!?NLO-4f!b&N2^6kC{KjuyLE zU?0sA_8hAisP6esqK*;9m|_bv%+X>O3+$s=$^fv6fz!?ZkVG9Lj4{O)W|*VJE*5B( zamX>m2%Dn({wIHAnnYV1Hw(rx;*Q4h*Kmn@8q1$vAs%SF{~a=m_1u<4_nWZ)Q}r?n z$Tu`ES3hx6yz&=abQt zL<`&6@Z&o&;v75VEpZonnt$Eeg1Cwzl7~&N*dXT9-{Q|8qKYw8IOzCGKKR^RkDcTX8|Yj{|L& zQ+GXkhGlWJnX}Hh(U`lc8Nlck5?+R(CV?$hRK6_V09Ai`SbJnHA zEo_s|h&#lVxJO(N4-yjQ20!w$=tf*6t`UdC4dRHnNt_b5i8JC3u_f*i7sSbcg!wZD zAi4q6FeKj~j)*c?trt`Ec>hvV8X?$+(d{CB`ziOcU8k&D* zeMH>U_^9>HDbrt{l5cDNg*+2={&z_9RC%h2?p8a{SOz4zX=he4AaS*Ma;hv&nSWSc zC12D03wcP~(D%>IP;ZAp_G_+~xsPZ?XMYo5R_8xhs%NOJanm_t( z=akuaxBOcR{E-t^o5$}ii}DP)r%Jx2`Tg&y$-jR=8k+YsG;sy4#Vz+VHNVxh#8=$Y z*1QaG$c^Uj?&%Q^uzZsnfczOVY+w`H36&1^aDe5T{R#rnost@Howz|96E}%l#BJi7 zxI^3}PI{U+YJH!?K;swkky|)~qPzG4;+n?tr4@05I3{iqw}{)s9qg&oI|FahF{{{+ zsMC$OMjR41h$G@AaZ23Q_^9C3ytOZKOkW~=La%^Wl;x29AJ&S z)7^kV@^x&`9uddb)VxebQ69sc)aBj$Z_%Nx9b{e-=h)HwV|O|qmHw7|7kk?NLS7K} zaiICDM$N747?wqSp%Hcd2Q<`ZaJmqS z-_wSD?<{EO<3RIsJLWd_0L!B80dase@*!~@8{{M67@N20^IzV{NVKpmx(#H+Id;ff z;x6{c7sP!WX#TM~Wo7<`B+4~4RV5A*Dm878TPJZH8=9AoWW+HxHUHS1DRB$inwM*c zIL8ioOWehzrwwu|CDF%$=4Iq-IP_Q+_0SUsSkwGtcRJlmW=Ot{4Q-blA&$NB=l^L) zX=q`ad`6sOhrA{3X?(;wr-fv7v6vCRLPCdND7&v!yP*0G`O z|ImquV{B@EuMH`23)`B%c!P8HQF0BD&#|NJ@=3_W`ux{~%wIb6aX{YO!70G9sCz&h zV2yl8T*n6ah&aZkDA%7{{Ulo07F|9g?r8kjotC(ZJqamcBq45iOMBLQ)@eNLQj#Kh&&A*U$RJk*f?_y8$k8g15wL!j*gSCkpk-YO| zj1@ z4NkWMBX|0Nl|^^%1LB&-k0%>k#dWOH(9nh#@|d`(u?&c~t?}ZG&MEVijXC*_=AYZ> zoHFH2UGhE6zh#qi${f3?Pkx~JMBa3!7@?>mB(4$Hi5tW*ag(@3+$PS6JH%b$9&w*| z;9@ubN7gX_Q3pU=Bd!xSh-2a=af`T3oD+969^2%-dQ+EtkGxan|J9rNGz@6)UcG7L zE(Rv*z=&%ak8P?GH;BDgZ;Ht`$$PKf)FR*3ynM@c7xTYEqDzM!ai4fVJhGkvi8>(S z8gZStK^zk|iCe^N;(Wc#fA?D5Ak8esvH=q`_MYkcRTfpi1JEzRkn=;Y$&#@z}Hb2

G#-{Hu>YOsq-A`-$cMyrY>K>7=V?*1o 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 LnE7`ytnL0kCXNVX delta 130829 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 diff --git a/Module/PSInfisicalAPI/bin/en-US/PSInfisicalAPI.dll-Help.xml b/Module/PSInfisicalAPI/bin/en-US/PSInfisicalAPI.dll-Help.xml index 5b888fb..573f514 100644 --- a/Module/PSInfisicalAPI/bin/en-US/PSInfisicalAPI.dll-Help.xml +++ b/Module/PSInfisicalAPI/bin/en-US/PSInfisicalAPI.dll-Help.xml @@ -1289,6 +1289,7 @@ $GetInfisicalCertificatePolicyResult = Get-InfisicalCertificatePolicy @GetInfisi Installing a root into CurrentUser\Root makes Windows display a modal trust confirmation dialog, and the call blocks until it is answered; in a non-interactive session this looks like a hang. The cmdlet emits a warning before blocking. Run elevated or pass -StoreLocation LocalMachine to install machine-wide without a prompt. Only the leaf honours -StoreName (default My). Chain members are routed by what they are: a self-signed certificate is a root and goes to the trusted-root store, anything with an issuer above it is a subordinate CA and goes to the intermediate store, for a chain of any depth. Issuers are installed before the leaf, and the chain is then validated against the machine's stores; an incomplete chain is reported as a warning naming the missing issuer, which is the condition Windows shows as "The issuer of this certificate could not be found". The installed certificate's Windows friendly name defaults to the common name in upper case. -FriendlyName overrides it and is accepted on every parameter set; on the -CertificateAuthorityId path the same value is additionally sent to Infisical as the issued certificate's friendlyName. + The reuse check is scoped to the issuer being requested: the search is filtered by -CertificateProfileId or -CertificateAuthorityId, so a certificate issued by a different profile is not reused. This matters when two profiles over one CA differ in key usage, such as server authentication versus client authentication, where a common-name match alone would return a certificate with the wrong extended key usages. Reuse does not compare subject alternative names, so use -Force after changing the SAN set. When Infisical cannot be reached the check falls back to matching on the common name alone and says so with a warning. diff --git a/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml b/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml index 5b888fb..573f514 100644 --- a/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml +++ b/Module/PSInfisicalAPI/en-US/PSInfisicalAPI.dll-Help.xml @@ -1289,6 +1289,7 @@ $GetInfisicalCertificatePolicyResult = Get-InfisicalCertificatePolicy @GetInfisi Installing a root into CurrentUser\Root makes Windows display a modal trust confirmation dialog, and the call blocks until it is answered; in a non-interactive session this looks like a hang. The cmdlet emits a warning before blocking. Run elevated or pass -StoreLocation LocalMachine to install machine-wide without a prompt. Only the leaf honours -StoreName (default My). Chain members are routed by what they are: a self-signed certificate is a root and goes to the trusted-root store, anything with an issuer above it is a subordinate CA and goes to the intermediate store, for a chain of any depth. Issuers are installed before the leaf, and the chain is then validated against the machine's stores; an incomplete chain is reported as a warning naming the missing issuer, which is the condition Windows shows as "The issuer of this certificate could not be found". The installed certificate's Windows friendly name defaults to the common name in upper case. -FriendlyName overrides it and is accepted on every parameter set; on the -CertificateAuthorityId path the same value is additionally sent to Infisical as the issued certificate's friendlyName. + The reuse check is scoped to the issuer being requested: the search is filtered by -CertificateProfileId or -CertificateAuthorityId, so a certificate issued by a different profile is not reused. This matters when two profiles over one CA differ in key usage, such as server authentication versus client authentication, where a common-name match alone would return a certificate with the wrong extended key usages. Reuse does not compare subject alternative names, so use -Force after changing the SAN set. When Infisical cannot be reached the check falls back to matching on the common name alone and says so with a warning. diff --git a/README.md b/README.md index 59f8011..977fb3a 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,22 @@ Windows will report "The issuer of this certificate could not be found" until th The installed certificate's Windows friendly name defaults to the common name in upper case (`WEB01`), which is what shows in `certmgr`. Pass `-FriendlyName` on any parameter set to override it; on the `-CertificateAuthorityId` path the same value is also forwarded to Infisical as the issued certificate's `friendlyName`. +### Reuse and renewal + +A second run does not issue a new certificate if a still-valid one is already installed. That check is **scoped to the issuer you asked for**, not just the common name: the reuse search is filtered by `-CertificateProfileId` or `-CertificateAuthorityId`, so switching profiles issues a new certificate rather than handing back the old one. + +This matters when two profiles over the same CA differ in key usage. Requesting from a client-authentication profile on a host that already holds a server-authentication certificate for the same name issues a new certificate, because a name match alone would return one with the wrong EKUs: + +```text +VERBOSE: Reuse search for CN=WEB01 scoped to certificate profile 'a42f8446-...' returned 0 active certificate(s). +``` + +`-Force` issues unconditionally, and `-AllowRenewal` with `-RenewalThresholdDays` rotates a certificate that is inside its renewal window. + +> **Known gap:** reuse does not compare SANs. Adding a name to `-DnsName` and re-running returns the existing certificate, which lacks the new SAN. Use `-Force` after changing the SAN set. + +If Infisical cannot be reached, the reuse check cannot confirm which certificates belong to which issuer and falls back to matching on the common name alone. That is announced as a warning, since it can return a certificate from a different profile. + When the resolved location is `LocalMachine` and `-KeyStorageFlags` was not supplied, the private key is written to the machine key store. Without that the key lands in the calling user's profile while the certificate sits in `LocalMachine\My`, which is the usual cause of an installed certificate that reports no usable private key to a service. > **Non-elevated root installs prompt.** Adding a root to `CurrentUser\Root` makes Windows raise a modal trust dialog, and the call blocks until it is answered — if the dialog is hidden or the session is non-interactive (a scheduled task, an MECM task sequence), the cmdlet appears to hang indefinitely. It warns before blocking. Run elevated, or pass `-StoreLocation LocalMachine`, to install machine-wide with no prompt. diff --git a/src/PSInfisicalAPI.Tests/CertificateReuseScopingTests.cs b/src/PSInfisicalAPI.Tests/CertificateReuseScopingTests.cs new file mode 100644 index 0000000..062e39f --- /dev/null +++ b/src/PSInfisicalAPI.Tests/CertificateReuseScopingTests.cs @@ -0,0 +1,116 @@ +using System; +using System.Reflection; +using PSInfisicalAPI.Pki; +using Xunit; + +namespace PSInfisicalAPI.Tests +{ + ///

+ /// Reuse must be scoped to the issuer being requested. Two profiles over the same CA issue certificates with + /// the same common name but different key usages (server authentication vs client authentication), so a + /// name-only match hands back a certificate that does not satisfy the request that was made. + /// + public class CertificateReuseScopingTests + { + private static readonly Assembly ModuleAssembly = typeof(PSInfisicalAPI.Connections.InfisicalConnection).Assembly; + + private static string InvokeApplyIssuerScope(PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet cmdlet, InfisicalCertificateSearchQuery query) + { + MethodInfo method = cmdlet.GetType().GetMethod("ApplyIssuerScope", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(method); + return (string)method.Invoke(cmdlet, new object[] { query }); + } + + [Fact] + public void Profile_Issuance_Scopes_The_Reuse_Search_To_That_Profile() + { + PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet cmdlet = new PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet + { + ProjectId = "proj-1", + CertificateProfileId = "profile-clientauth" + }; + + InfisicalCertificateSearchQuery query = new InfisicalCertificateSearchQuery(); + string scope = InvokeApplyIssuerScope(cmdlet, query); + + Assert.Equal(new[] { "profile-clientauth" }, query.ProfileIds); + Assert.Null(query.CaIds); + Assert.Contains("profile-clientauth", scope); + } + + [Fact] + public void Ca_Issuance_Scopes_The_Reuse_Search_To_That_Ca() + { + PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet cmdlet = new PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet + { + ProjectId = "proj-1", + CertificateAuthorityId = "ca-1" + }; + + InfisicalCertificateSearchQuery query = new InfisicalCertificateSearchQuery(); + string scope = InvokeApplyIssuerScope(cmdlet, query); + + Assert.Equal(new[] { "ca-1" }, query.CaIds); + Assert.Null(query.ProfileIds); + Assert.Contains("ca-1", scope); + } + + [Fact] + public void Subscriber_Issuance_Needs_No_Server_Side_Scope() + { + // A subscriber pins its own common name, so a name match is already a subscriber match. + PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet cmdlet = new PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet + { + ProjectId = "proj-1", + PkiSubscriberSlug = "web-tier" + }; + + InfisicalCertificateSearchQuery query = new InfisicalCertificateSearchQuery(); + string scope = InvokeApplyIssuerScope(cmdlet, query); + + Assert.Null(query.ProfileIds); + Assert.Null(query.CaIds); + Assert.Contains("web-tier", scope); + } + + [Fact] + public void Two_Profiles_Produce_Distinct_Reuse_Scopes() + { + InfisicalCertificateSearchQuery serverQuery = new InfisicalCertificateSearchQuery(); + InvokeApplyIssuerScope(new PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet { CertificateProfileId = "profile-serverauth" }, serverQuery); + + InfisicalCertificateSearchQuery clientQuery = new InfisicalCertificateSearchQuery(); + InvokeApplyIssuerScope(new PSInfisicalAPI.Cmdlets.RequestInfisicalCertificateCmdlet { CertificateProfileId = "profile-clientauth" }, clientQuery); + + Assert.NotEqual(serverQuery.ProfileIds[0], clientQuery.ProfileIds[0]); + } + + [Fact] + public void Issuer_Scope_Survives_Serialization_Into_The_Search_Request() + { + // The scope is only effective if it actually reaches the wire. + Type clientType = ModuleAssembly.GetType("PSInfisicalAPI.Pki.InfisicalPkiClient", true); + MethodInfo build = clientType.GetMethod("BuildSearchRequest", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Public); + Assert.NotNull(build); + + InfisicalCertificateSearchQuery query = new InfisicalCertificateSearchQuery + { + ProjectId = "proj-1", + CommonName = "WEB01", + Status = "active", + ProfileIds = new[] { "profile-clientauth" } + }; + + object dto = build.Invoke(null, new object[] { query }); + Assert.NotNull(dto); + + PropertyInfo profileIds = dto.GetType().GetProperty("ProfileIds"); + Assert.NotNull(profileIds); + Assert.Equal(new[] { "profile-clientauth" }, (string[])profileIds.GetValue(dto)); + + string json = Newtonsoft.Json.JsonConvert.SerializeObject(dto); + Assert.Contains("profileIds", json); + Assert.Contains("profile-clientauth", json); + } + } +} diff --git a/src/PSInfisicalAPI/Cmdlets/RequestInfisicalCertificateCmdlet.cs b/src/PSInfisicalAPI/Cmdlets/RequestInfisicalCertificateCmdlet.cs index 48320c1..ca332b8 100644 --- a/src/PSInfisicalAPI/Cmdlets/RequestInfisicalCertificateCmdlet.cs +++ b/src/PSInfisicalAPI/Cmdlets/RequestInfisicalCertificateCmdlet.cs @@ -307,17 +307,39 @@ namespace PSInfisicalAPI.Cmdlets return System.Net.IPAddress.TryParse(value, out parsed); } + /// + /// Finds a still-valid local certificate that this same request would have produced. The match is scoped + /// to the issuer being asked for: a certificate issued by a different profile or CA carries different key + /// usages and policy, so reusing one across issuers hands back a certificate that does not satisfy the + /// request that was actually made. + /// private X509Certificate2 TryFindExisting(InfisicalPkiClient client, InfisicalConnection connection, string projectId, string commonName, StoreLocation storeLocation) { List candidateSerials = new List(); + bool searchCompleted = false; + try { - InfisicalCertificateSearchQuery query = new InfisicalCertificateSearchQuery { ProjectId = projectId, CommonName = commonName, Status = "active", Limit = 50 }; + InfisicalCertificateSearchQuery query = new InfisicalCertificateSearchQuery + { + ProjectId = projectId, + CommonName = commonName, + Status = "active", + Limit = 50 + }; + + string scope = ApplyIssuerScope(query); + InfisicalCertificateSearchResult page = client.SearchCertificates(connection, query); + searchCompleted = true; if (page != null && page.Certificates != null) { foreach (InfisicalCertificate hit in page.Certificates) { if (!string.IsNullOrEmpty(hit.SerialNumber)) { candidateSerials.Add(hit.SerialNumber); } } } + + Logger.Verbose(Component, string.Concat( + "Reuse search for CN=", commonName, " scoped to ", scope, " returned ", + candidateSerials.Count.ToString(System.Globalization.CultureInfo.InvariantCulture), " active certificate(s).")); } catch (Exception searchException) { @@ -325,9 +347,52 @@ namespace PSInfisicalAPI.Cmdlets Logger.Verbose(Component, string.Concat("Infisical search for idempotency check failed: ", searchException.Message)); } + // A completed search that found nothing is a definite answer: this issuer has never issued for this + // common name, so there is nothing to reuse. Falling through to a name-only local match here is what + // let a certificate from another profile be handed back. + if (searchCompleted && candidateSerials.Count == 0) + { + return null; + } + + if (!searchCompleted) + { + Logger.Warning(Component, string.Concat( + "Could not confirm with Infisical which certificates belong to this issuer, so reuse falls back to ", + "matching on the common name alone. That can return a certificate issued by a different profile or CA; ", + "pass -Force to issue unconditionally.")); + } + return InfisicalLocalCertificateLookup.FindMatch(StoreName, storeLocation, commonName, candidateSerials); } + /// + /// Narrows a certificate search to the issuer this invocation targets, and names that scope for logging. + /// The subscriber path has no server-side filter, but a subscriber pins its own common name, so matching + /// on the name is already equivalent to matching on the subscriber. + /// + private string ApplyIssuerScope(InfisicalCertificateSearchQuery query) + { + if (!string.IsNullOrEmpty(CertificateProfileId)) + { + query.ProfileIds = new[] { CertificateProfileId }; + return string.Concat("certificate profile '", CertificateProfileId, "'"); + } + + if (!string.IsNullOrEmpty(CertificateAuthorityId)) + { + query.CaIds = new[] { CertificateAuthorityId }; + return string.Concat("certificate authority '", CertificateAuthorityId, "'"); + } + + if (!string.IsNullOrEmpty(PkiSubscriberSlug)) + { + return string.Concat("PKI subscriber '", PkiSubscriberSlug, "'"); + } + + return "this project"; + } + private X509KeyStorageFlags ResolveEffectiveKeyStorageFlags(StoreLocation storeLocation) { if (MyInvocation.BoundParameters.ContainsKey("KeyStorageFlags"))