From 99577355b95c5b87ae4ed6b971ccaa9c62e25f3f Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Mon, 28 Oct 2024 17:53:04 +0000 Subject: [PATCH 1/9] Update sbt, scripted-plugin to 1.10.4 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index bc73906..09feeee 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.3 +sbt.version=1.10.4 From 0b93ceeced209df7220703018adacfbd80942a4b Mon Sep 17 00:00:00 2001 From: xuwei-k <6b656e6a69@gmail.com> Date: Tue, 5 Nov 2024 07:29:05 +0900 Subject: [PATCH 2/9] Update scalafmt settings --- .github/workflows/ci.yml | 10 ++++ .scalafmt.conf | 4 +- bin/scalafmt | Bin 28305 -> 0 bytes .../scala/com/geirsson/CiReleasePlugin.scala | 34 ++++++++----- .../scala/com/geirsson/CiReleaseTest.scala | 47 ++++++++++++++---- project/plugins.sbt | 1 + 6 files changed, 73 insertions(+), 23 deletions(-) delete mode 100755 bin/scalafmt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5fbab1..8395e93 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,3 +14,13 @@ jobs: cache: sbt - uses: sbt/setup-sbt@v1 - run: sbt +test + format: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 8 + - uses: sbt/setup-sbt@v1 + - run: sbt scalafmtSbtCheck +scalafmtCheckAll diff --git a/.scalafmt.conf b/.scalafmt.conf index efb861c..c98cff8 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,2 +1,4 @@ -version = "2.6.2" +version = "3.8.3" project.git = true +project.layout = StandardConvention +runner.dialect = scala212source3 diff --git a/bin/scalafmt b/bin/scalafmt deleted file mode 100755 index 819ebcd5bfa47238fd4e0fe1c7f9efa2bafeaf39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28305 zcmaHS19WD=mTo%i*tTukw(b0}`Ny`Cj%{>o+qRRAZKpeUedo@bd3R>Ld)7K@?NjU9 zRcF^er|PR+yGV%{-CUd*O|0x00ru`hE|xGZo-T&Q&K55GBqT7#j*kB&Tk$jV5_wo! z*#d}kiAcz-NQmhFie#ij`n*JD4lqPS0C!_sqQ9E_dSu>YR=$5rOpRUsBK{T;S=s-6 zBqE}hp{Jq#4~dBAzuO`EzakNt_g^q6y^Jr(e}Z^<|3mmMrT=~*vi~doM+5(Y2e=rU z{#CQ$C!?aWBBCW?rly85bFc@%zyN>%QzC0)cVnXeZj;{H*!izLOeB9R`cHFVlw`rc z(Lg}He+RM3YL>&b8V}6{0ReIP1_FWx0uCZCt|m+`tsucDFRUOfA+D;%ATRMb0Rj>m z&x;Vuge2xocD)O`rckWLkPJi3cDRV!*eA2we0lUq3_(I7CC!`p;@;9kpesd}hlHBM zxnGXpsS#rwfXt_xE9xmp&=-*zfhvjH14H;YHF^KTq7?)|*HyNk6D?Lq1;5UfZ5m|A z?kZl?A)YQXuQEp(ceSVkXP!0Otm!)8PlZODL^sw`<&J(mYeCcL5ulD5yT16m%P-l2 z@gFw9{Iv<>KWzGI&VOCde?XxRZi{BZ&)3zx0+g z2{dvPY;rnE;$acZZZWKzk1zf;O5(n0ChelwDG3Y7HHNVx5iJQN3FH2cfJKs-2(HOJ z@7E}A@h!@IUy>chT|Z>R+iC(=W7-+$*MMk_FCt7|slISApS4hsnaJ1g;Q|xmqg-!o z5sHrEicvtVp)xT(l6__5JdC^ah}j5WcIR6NEbg7Qf&k?%-(XZsL7v)vyD@i~*)3f5 z55@6eEE2hMyIA?m^X*sIObZWD*0A=%0DGt=$g_!-KkG}97Sovk-? z_SUMct?e0uce>PGz7X%?Sk`_&g$yWh=3C3q<>e~H4Bm@HAvrC~Ev63oPHG+DD?QEq z$do;%6w&4A#_P3Fno0jn-P*+YE6DgBpXZ}R9?7Mn z`A0#)dZ!)+{=~K?cM3pD-+plpe6@MfJEk(GiR{RBAxg)s@r9_wS!@>9iM;Z@u3Edp z1$K3)?(Fvp!FUBVC&I2Yr$Bt!)~R?N?nibAccdfAk(nT+VIOA2*uD0!rS!QK%+aE~ z5453qc{gd-7tr6~D{$-%Of(povu9wQJ;m?&Xjx5!c?$?>NbVs*Z+;fG#TA0gnLF&F zhEQ5sp!K-xr;2_hX=1J&PL<-rvE|*?%A|>FEqynD07!1=N0&dafqN?W<~EQJ+gRXN zBPa{2$tW}!#!`V5g~53j3k!6hNLD#;R#;}YBFh^;m54jOpw%~8TfjNHIJHK6f#BUJ z+U{@pw3Mv#@V0SaTEK~PZ}PaljB5##rt2uGb+fS0^sXb_SjDxCewGa0-g|yFvM|&v zX6-2IcJY2e;OvQWxOL>4H6lFuMeW;mklLw+dSLE@_1q;6+FS*wO2V3;f?ThakIkMw z{^5Ekr#J5Cfz=hdkT9VkgT^Gi=&~^270Ksu0IK--%_o`o);%h_miu(1_0}$|RAnwT zv&;q%cC{Ewt*v@fKfquEEzKYsY%6!P7?nCHU!(yBl*Aq*ZG zpfXeD3`N;aDJl^{$>$u_M1iKl`6IQG>hTs10C%8BtazWnbFM z%DT}rUuVGz&2RszCTXf931{Z6Rx|6m?5kF81O#@)Z87sOM93qamZ6g>5H1jtCnp_D z%ok^>Hel~#bvRHVji$zmiR#25#{OW}y~ywVz|R|+ymVT$QkOj~Ym{|IriTBZ=9ZP# zYCgr{=+|EpUTySsy>c}o7le+~9Y+*(fx{e;GLFF*`8YlmLU#yoo$k!pp*WS#pFhbG zP4OpK7Wjg*?dgNN?Ae9G>yg-m12-)4g)FR{X9hbVPcjE$&f7VnY=hu(2#18=*oHy1 z8o}F_=W<4Wh+j=^)Se3@xh4h?))9;X+Hy}O2uMv>?TC3#rO`*&_)pHb@ZkMKtRy-iwOkK)fW=%>)Ma?jN`aD=-Jyz9ZcUQ3CK2%j?>+5D-)w6GSUHX~e zdgCqH<}~ZK-|~b2x-fS8UjMQ7tmL@W1og626O7V*rOBX41 zCx={&TGY3<$>^mw(r36}oQURXc^Bm#_mp9 zHc*_*z2Bn)M|}c~imK;#PSb;LNJ>g4=)$DgP(Fw&?`T>MBv1R|&yZfB;kv>k?^OBX zR`1aK!piPoI|M#Z822=Xx&wO;R$nRog8lbe<%Vw7Fy3>o1_{@wKF3sEQN5A;%@ubU zFZn(v%Vfy?}2 z>NkS%VFBDrdcsCisM(^ElcD!~N*XykB5q!=%j+8DGu_`5$2j7z>aCjI-ixiEoCK0L zv42Kb*#P8%A1rBy>mg_(3`FU-F;^OBLNf5drUHqhW~f|DVygR~k0r8~_rGa4j1)n} zHT$J4zEN;E3S##bV{~<;EhSM5MQ^q;+TNV)qW>nb&Aw>@@}6|k?exFdM`LpRGQBfL zziI$B0^N0c^z2Mn?G+(BpnINcZ8*_h`^os) z3w1-pNokbX^dgPmoNOQrMhIH!2EHmkh|c6B+h+{T1zI{z{!LO@s17_N;7n3lhzcem zH2{k#hZZ_Q{976ME?hc68hCbTz}0}r^Yen>t`Q1&OGbmFU4or>f?W|D2k}T|qPfB8 zRCss>VSF8kzHo5ckj^a*?4Dc8_S7*?6^iwGmL(EX$4LK#KbmZZDmsadq_;-mJ2!23 z>s3v!r|$xcR&2_|W~uQ{0p%fljO+3t2v|%Sr}=?lnJufm83-TW@h|yzCgUq4Z78yp zNQRYA&=@Q| zT{hFdoXqhrjbZ$^G)CP8;QYTh%(RAfGVU_^XPo&wzIJ-OIdh=)VI5GSsHJ5kELK>h z^^&>KczP{ny$XArAW#BDCuZ9InVrnmoc$Z9LZ5WNE;$!n3KYRTluAlCT7{ayeX1IP z3NiZ0mc7-XGG5e#s@l1WLf*r+_w2{-t;LTlf8Tp-5OhPW`q`)t4y`(~K?FLtz=Xzq zjlfOtd(cTxh`>T2>0S50hS&r2z)E;_ywiPS4=E?5C{dLy>S29Q57|C`&=;63%F!*x zkMI(pP!v=NP%0|C8aNaN@B9W2RNG~)AjAZU>`Digf#+hp=Jv6I{=$3>>}v#_h2~?t z4eE;ql>|3H0ctbcMWNTibWwQRcEB6sp#w#C!$BQjy2x)^`r^TNkb#=J>3#7Kek8ZK zTaSM@T=(111e^CQz%NvsxPKl^fR7GUpMhB^3h1xhNUKk_4}4C8C)NO*#Yyca&1hTI zqsb4<@|a-b{E*x3pi-FZ^_=TeYfFrr$bcnnQi;=kb)L8Pe|0DzTBF zoHMH0r8YlpQ}SbC6b_?uKibb#?D|!y8N689o!#qo=uR5YXZ6T+S2AC+0p5k_<0uT- zW9SX4%}1fOo*dl?7K$gSdc>OB6Ay7Q*Ccugm8F;tS#oJHOsk-^`t+Gu%wMf4uW}p=rw7+I4^56 zCs8GO*}u78_QSis;}Ift=yD33rf18>Qohz(dYx~qpJDrp>0ZrWP%Vu`iSzYcT@5HRVZOdj}wSAq-ZeR%+*;ja;->YU5sZ5ifAb31rKc{L~@dT zDV4i(zuv+yQ3G-u+4Cp@Sa6>`Ak`%-6jtd-a|8z5pC1Xw(KOa#uvAX`I2vk#UtK#9 znwsQvH6zK9Vnn5uPX0l`)*_MKAIjv}OGWcqWZB;<1j5MK>5*cs42B7JQWbnYzG}&=f+w1QyzlQfJlFrCtM2QtU5Ri|QI1rwp$I>LJWGook-xJeX zR+pEhxa1=Jd0FYe1rsV$twxjjbA8H{T311{{kuvy&6dGqaP+zgyCxk{O#;-2=L{32 zW_qJi6^|w)Z!|<1es5ArGgKbRN^>^z$@jd&d0IOKi*7@nqZ^tN35KoMOS`7=0q&#r;_nUfVgnITz>PC?O&5E9qF6TZ3R@ zvqFodsN(XItN!fLlbc(2V~wgCzwW9_*tHO*yD_JKxZbRXf`R1c5VqE_V!;(y3-kjW zuXeB=-bq?Yq`mH7(I&{`a*e9x*LVDzMqg&r%{QH0n;*44`iu{5NwvJdRMPEzRo9tT z?y8D6_i(9c53UZCha3c5>z#A0N&ok zAKOMYw4XXgc(k6{M|iZKI`J+P4@gEm^auy{+FschxC6hfrl*Jo*D&{6kFl@NCk|GX zY|W`*Po?ZJ|H*01>2>RID%(9%oR`4 zSGc!rT|pj@vATL-HFfgBZ)|G>ySFk?x#Mmj)VJW^b#{jKGiO^M<<^#+MmX9N5?h-C zVKn_diPJ)dsTzvb#*PZ|b2$2C1+I<#4yglRD%z5Rxa5fWB#gTxkh|oSyCgO5{{UG1 zX>IpPd(jOSmS3Z4`UR;Zy3xwyx3*f6C18sew|^85HpLnMW|cRDdrP!`^H0y`Sz>-< zxGx%>di~~|Uew+&JuAkgvpJKH72Gz%F3h6GwX6lu((g*l)Dz-c>_KQdq299R{>Cx% zjfH}ImAciG`M~O){j+xvbb{l()74-xih&V3>Y8HpBIW(l3Q_8h_2PBPGkfVaiY;2YHQWr(3_a*4Er+!&qjQ_Z)CGx z$Y$GCOLuTw%Ymt39}D&3S5kC9%I4bmv!>%7^V(Kep0cwdMgFLrZ7uYv6$qqUU%=*? z3o6qb$YW-JL94JB>f9#CV@7~LYrg{O+$zXpR)Altur})4FA%uQ0O8htQ&grk5V(v0 z;#OgMRHh{mxU2x<)_x!=(-sJqe88d|Ul>K7705<>?b0VGgUP;4-NH9LF(_s!4-?q! z&}vss`$F$m*jIxs*_S=P4nl`H<1T5$U05%q-qP?}C@(DkV#zU)coklLiL`|SS8o3P zlrJ*P57i$fWmbaxrb{>9IkZ+61eyCFwxln<{^ZF9^^!~tpAp(VA!d9QXnfV3 z5!yfT%J;eq`%6DyzZqLFX5G^fx}zycDm#W^~20!9w6STdS2su&J!rYO^hktO$*S%ii=2&?>lG))$Nki+ng{Y+n=^V5 zTpT+s{4oPWW{t`U3geLGQQniKP|6CD=at>FrO2{pj$2sr<;=Q1z{OhJ({bh<9kXzz zb+(H@(uBIA%m|>+yxLkFPpt73WYyk*)}$QcSz*AWorst{PpaljM6+#7 zo>+CI&#wNR1`Fq1YdlwX}lt^gatH1fM8y+0L zNE42oz;7KNyK`n0cE{RZ2aE%gCxlZtJ3XTbBo0yB}5iY|Gj~q2(*Sr`&q4Yug~D@mD$ccrTxTV%wPARQvoP0rk2l=Vi)eD}gH# zs5KSC?72A|8z@HAW3IkP!-^p-wkZe4VTYiHSq=>`fX`liXUVjsJgPQ_1UH8$ZSnntknK21$vZ0Ru<17K`@7;&5O3;TQ6-gFxH ze%9_d;AnlyGor%Mh7F7JqIGn7?L4A9!Rpd6XC=)LvaT`UYBHi7fprJX3N|DkRI96p zE_Sfgh|VCbohRA`-Z20EfJU(3KAGkPWE5dCEW(@6_&7+lcsH&JosG?uiAC%{h;a?x)i(=#29F*pmj9{!)A{z z*U+f#x?~ySyl@JXt6yfG@>|`^>;fte|BPgMDcQC}w!btR&YGVSi2xc9geRwWz;OA^ z=G`r)R~X7oU}Cf{Y-aY3)9n*O5Rq@`ZSx(p(2{GBhhLgs&eKMNvDV-_!>f3X;re|#^ZTGb9-ga&0{ zLHdkfewwS7jskU)M3KUE)Y&7>he8?Qd_1xX&zBO{!eVUYLp+v?;oKYG6B@yGutRGu zW(DrdZDgHfM)8{g&sU89Oz~730aNJ%?K^B&RWHu^&F?3`k>=IVraF28uxzIH&~Utx zl;B}sYE-IVa}VH znc`btgk4%rsh{AYvR?SzPU|*Y_5&n%n8ZQL)Phl1KsuGj+?$$D0UJ?4hBvq#>%CF! zQ5S=jv6^~01^N-3CTcMPGIGI{jlHB@0u6cIvXIukr40G744%{(@KRVz)tEz8MjOV$ zJWXG9w;pII*{m>n%B`O{~b0Pa0^4nM~uw zx^^+mV=4<)d0F`;F&$L9tjy`x zQmNn1joDY?ze;jeY$q;Duo`EVQ`#rG;NE+IgXWF&abhL34=E7Xg=}FW=8{BB#qblc zB{}LDB$1i8qFQlUZ3yJ4a6_L{<|Hys9h~fo5s4rPbg-T-L_00g=?#N|ka|Mc9r`m7 zqCR8wY$lrER%0Drs%#C*J)G#~7!-1gji3k`V-PfRkPJxYtO~Gg2vY-(+T#+t%!|cU zA(N=j%Vy^Zd7MxpxTNz6jra(8=H-QO^L>^qv;bhxRYnH+h`X9zoj!si@-soDKVx7t zmvjVP!`UbfJF{14KPGNtEBg@leAQV?rmF_t2`*V2+YO|8ahSH z+eB+5+6toQ>T43VhV%n#7+B$$Dh@y&yn93E%h$+|> zR!I9k{>6cYL>F!Mv6ev2j}Ed{xyg~FwmtnKJ?7z|RSFW5N9`MF+w7tiVgkA`uGmru zP;iZomh??sc`0qZRE4mD4!HMv%dLK5BNGh?Ijc6& z=bRMrLGAJ788WqLS;K`oY9x6-p>dMxUyUh7d1($BSq zlGGE^5x~D4O&YIlb?~)K+qQnYNQz)u(_2~l;btshFwXRK>RF;N<>Vz3{gf@_?fo0R zj2J|*p?Md2+yawVnKQ<#m*7Km4E-nr%_PW9Dlb8hkwCk#(kWyf=Yr)XJQe|fDpTGd zcM->y0DHYno!=m;O-sT?j?er@zK8ZBbuHuH{U+y z(I|um*{d=jVyLw5R?*7ao{R)PsIM(=D9+q;7!+P? zy^u*hyOu+mPV#h$;i8(ZSkUsOYwXG(vlNM6F$*UsGq+r0F8$H_cL?7?l5loN9*Kx-EP*p2jFiy$k z7gy~omXTy>8|o&6L1*|1tOtEWgiAo2puIcM`27&mHP~E}t+QPATkp@A7wK%-%u^?n zB_9<9FqRAjYAH;WA2@qI;hVBD>E2|e zu|rU{Xnf^Md=s`+hF9;VZtD+RO*0vKjB^~({ty(M*yh|y>r!4ixh}8?v978=FH{}V ztld@>7Xy6N7@RevRL{E9q*d*DwFYMG6ZL8SRD|_!;hnbT&6tmIr%AJID?X$@FNof= z$Fy9jW&hLC7Ag1Pc5#>t?)Iu$n~f zq7sZa@ezCx2<@Qn0mSz|B;AJ~>S&~(;x1h$PjmYz=#o|#m;QdLN6ML?OzrvY=Tx!5 zsC0KLFG_<3&Ig`n!Z!_jM2+}NZNY3Exg&G%Y^m;`vJT*roWwmI+B8nlq#8dT@%eny zdQS2uY`C^VdjhkdEZ=yDEzE9%=}@bthTCmc^@-r3z2f27*8ytiY~$-p1? z-#O>;gEN=S$>D9pOv4Ajev^8af}95C+I4Tzt?D2-@$Os~`mA~2^-bq{*L!g$jee|| zB9`9_pKs@P6MA13czMmCnD%J3#5h+Ofg}0m85I(;l|K#&)1Z7%hBKSU-)(YH;#c{J z3ATW#a)S${^mVxf=q+Kcf!w+d<3=JaF2-gzt3X%e7Cjk#E%VSVQ0&fx;ThVYNpD$EQ`g4e*#OKrEi@8cqchJPnxhNx z576u;pj&5fFVi}J&=Z2Z26K|f$WK&H3XI~glKnJ z>eFj(v3K2X$!X;m&$%XQ{0UF4`m+%{eL@^P1QR0m0{p0&~m`_uDPZ+wSvOiz=bJiov#Um@j(9H0o#q)l# zQ}(0)!y!uU#DOP|V&8i5x>+zU5XIvj?N(`md5Qvva|1F=Z(DYOuf`<>3l4A4vIW2Q zg_`15xiDLmm`4ADTb!Nd126fvG!LxV=(tPJkK`orTtQ)U%HiO6IMCgu`PTk1+Wo;^ zF5ya*+66{^(YSY7D0x5l>MogHr@3OVIJ=_p)F=U%>S=BV=cBz3S96wO*8ze$$V>Ki z=XSlHg&zj# zkIHTBm3brz=GGPNcr9HUcdHB)O25x^XvN1>m%LDNJD~g%Oe_ogP-nl1x>Q7*%;V)M z(gMF#AL>L`m{jCYP_nY9@$!kXD&)Y1! zE|Y~%o8{NsFN!z$E-5Byz{1l}u~AEI+D}@KgsCYxBg@4-JDwrZH3|PDpuz3)MVs^S z6A*j>P9LWXSdh{M@Y)>Mk#b&^MuM^V>Z9Z48f?U6bj1`ApvzwywSB>?&v^SXZU+py z*lj713(&L5rBRmgf$#x6_KTZ^KqBo&g<|;`V z2*lI8`RMdv&b@X0IQN96Kl0k>gGU?C`@vYu>j`mnEa8>FSUBoQ&Oa#c8j^JeVP8OK z`iX8JUh6{p5v%FKTq_J>Fk*45liQ!>f?nHNwI%)*EQLt$^Am@r|B|Y{vQC&Nh-0Ga z&|w^$vizOvsM~a&Ij_(w`u@a06*{bX;Mr|5cmm0u6!hxFvGniafO2kvxlHOvK!~&E zC&=#3lH`q|J|kPkA;&^HtnvfKM?XSJw%r;y1Y+-;Bqynm!<}D#yt}7^ICtpo8xhN` z-E9D3Ga3J$yH-(0`1NT4?=Zac6-cs~&EeC${tlun{pI}*eGUzKDnGM4idae_t$O{a zcf2~2CUz#jXD#8fZjYLCgL+`W8*J>rV6&;Sb+nIo5Az?Z9_3To%nL@2`&g5*+s@e= z{QUST)-DNQ27A;C=a~H!gN-Z3HFfYjZ@++R$(2OCBn_Zxit?PS_j~9i;ov7p5z_Dw z*eCP0Q6(4kZZJ|E%k<)&6PM9V2i{GOh9lF+ALgRAaDi*a^HS*w^*l$7b=V|jy=>Ks zCr?@s4}qe#fs>qzkWfszo=9(DV?_R#X+q>{ahB*+k?2*8-c>4-!A;RTJ=h6QC3jVF zNap);F=1!hF8=2Vix1NrW>dOzf|O4Q%79nGqewm|tS2OgBVV6@XI)=H{5mhRM4te{ z#@_;;m5&Ny_`@a9T;F0k5f~cbm79ZQULi9lcq>vJ3Wt4I=?@T} zg5P%KxZmfv!u}F(eb|1a`Xw6vYQPhAf(hjO2z()0=MNa$kfnS*aE*GIC-R5W6PRLs zL%#J2IJxsP=!?IX`DEL_VfA76PvtDS*`E!*V7&L;1rom8Q}#c66Zl>!igk8GdABnf z|DgH~PT2pawf$Gr5`QsbA+-V|3Cbp6GP0Fq8EP7a!PhuJ>y7dW-2TR!A^p%zp8D@- zu@^&1Lj=|sLGibIk+@7G)w7#wnvVk!w4gW9y?4d(cf-{EFZnzP!@w#>(nNJa!?Q<)1O-6m@-7R81^D z1aSApDwN=e{1SEDaj0<-T000aViENLNoebO!gM-V?eE&=jRgnlj6B_Eh^KP?!VdKA zpsMEQF$P?Vc}qMBd5y$EDh#d^E&@9bJ+pthW<6gHZ#exwA$DDnf!Ql&v;yY6o+vy7w2#=I^HCg6>szC(zemyKqMiHLfUk zT6&v;PA8s%b(ChKN9S90T27~Ox}wvJAF@%5MfcKjp*$ z_*N3d74k2rY(`wJ_BX`V8LG6V2F!#SZGUG)`RJ9-k43hfq@R3RgZsEy=&Wj9L3!%-{J!If0?TohBIP@o zbGfWwebAnyYP2e22ZT>dwyBdH#mW5DPfC-xz0nZWH8rG5?KB4muF79V;eBxoiB7f5 zTH)?twCq;?at^)gU>e!8Ng62J!`toiJF{Ti{p38?mV1W3;ere573KaSNGPQ9yGKwX z!Di^1l1d1>VKlafe%SPRUIAbBH2-WS@8V^@TRHHqON68c#Qfig`}F%F?>o!lOntpS`~893G?A+{T-T_D$wmvlk1EnNUVaX3 zM+#wX^Y@W?ZyWyqy6?n#gL&ru>&)AMgyGxit1?#jl+ z6LOhT(OmJ&yoP%=Rf$kkcGyNG7)MghNSrFA&{`G8^T>sMz0Nu_=MkMn0Ur6BGphZ< z+!#fHTf52v0vH_At;H9JIguW#U0`5F$ggBu{Z!T2*Y52b-_aZIU-fyp9nPOlAdLNs z@N1#Q?U$NPwAUI=Afz-BPD;aA2;*hmhb%R_by1LbiHx<%w>s!J24(wH2DL((j&kC( z*EQk9FU5Lt?Mmvfak3?-G!(|;MJa`S0|z*z-|a70@vIMR%LF#s#m%h+14#X#SLgDehZ8 zgT^34s#l{O&u`6N#m1#RlWwOIZj&;$+ZhpXguKQ$0_f~9TBvc?7JQi(`r`>@WjbVpvFEk=`~%m-*BctDHS}U zK=+Xv48KE;ZGTdMXB@PLZ$0pXAY8s>=F8tbz!3;kT;PV!8wkb`h*iZA2v!BXf`l)j zUyMeJvF)_mtXBDK#32|M1ig@T@ZvfsWBH7@$@twAHoNx#)04j!{hHJlR=5ep66YYF z6&j7&)&rC>Cb^l^a$hhT;|9 zRH<&g`MdAr}t%{-u3$5S|$jNf4VD)$N>-=yE=`pMxH_YmN{ z9idq3bq>>yQpPFk?lRX$ap>T0o$)5O44#{(hUcYcbEa)9bt6NqDdqA+I;M-wj~+v1 zD~aq&KB7?KG|iCfxzoe3Wq)NWwC7$=AH~|jXtGtyym^si(tuQA{Hn~a>>ZERVYPWn z4#{FRvzd^r(aB(urQ@HZZo>iVMe5;93vabjx4YLf zV40kCO#3VQJy#WI4eCEpSvHnIZM9$|$zV z>fye8%xhXh)v@58Nq_r9X^}mCLsAOmbPwkcL2rK|9wCET%>@D`bDU}UiAoIPn>~A> z`!~0{D{XMaNa92!(M`;JF|dL@(DNdWslyvx_ZJOXobk`Y@0(BaMpWs;zqg~dMCQYk20=N*mX(O2F_k%= zc93A2Xtizm$gHxyTdM9dZ*duTW8jm*uK8F>V(1Pb!8@QwD(PcvBIJ~YjiekZ9qh+N zuhAnam};^C?R=DDr=rXdtfIFunW@xsB2k9BA!3VG4= zVmOoy67LI2#dDR;W?0Kd(M~dD+l}~gHofoQ7!D}fqa}I_G3493RjV*{xyvSfV~jUw zt`m8KDZzd-nIgR7+1$cbjWX7M>m7i9WpCN#JRQ2JxcWPp629T?DK@=YyuQMYeoeMv z`VafQ;*L)Bx}?5CNe=p>%rcc4p_KdPEYS|@oAPiBfV z6|?Fk=E6i)T9|U8p(pirOE@E@)?S>uEp1TIwpc~G;;V`E8p?*PUtiz;btX3M2pdBE zdpOMJ?=AZ8Gj{D=+#DSpoLvECijDwhV^=GC3sp}SSAd;3&=lb4YUN=6&nY`Lp<4k| z7%g;G+z0?6jEci+Cnmo&GLr|%K959?^xL?-pLuf1+g~JYWaWe60+(uPhd2L8pIS1a2P>8IJg*(zi4G@!5w$MD3Cz5mtw(?l|N}Hk@#( z7B7?ixsW;h8$Y{Sk55o8sK&iP25=_IrD`WMM95I58>IA68i=dNx;wfbV7xMD&s7e% z_0a(GQl>TfpOF9B=WVM9mr;NF+ZOcy%YK;u*_8klUD*R6EPhk#BCDkqgP)xj5Q!U6 z%8tTHK1ygXo7)gK@r&kjiRskI6}_^;$i7H7YBzV06mi5`b5RjL#3A8v|vfXl!opr^ryp%)2DG}L?#gOVpL%Adg1g*&sumTeqN zVDx)y@fk?iP%Wrq!H)hleUUjQ*@c0;&z2cx+*ln6^g({F(2wj`KNnB+CWgFGVt3QW zle*yO`uRgT<~UYewglqkz^fPq+fXgEU9BMcM!?T#WfTO`7np83=B|$zOHmo^NjQjQ zjP*0wlOz;@XC(Rp&W}7UbSD~^6cM7e-R0kG{oSrO^r71%Os^QY22iJOSyEtBSBk74 zY=Z5t72N+^H7&FB=6-}8!O6*zl^ko(#*H%fW#cmw!Yx?`U8XNq^8=yfFT9y)U>2KY z>kc%X+HAA?ROE663tiyXdPARqiKQ&Y%TAr3jX&+Z8tYEI!@lRDlx}HujiVt7RgN(( z9WL+(d&U7m{i_FsakNIC{(2Dbcdh&X;je7}^q`ySl>(|T8vkOdf_9p_IMpttNs7C! zw)|^24r!ugLwUVX;aBOVw7#CZqr1$0(JT1pvKZU^5Y%l!j0Xk;=oJ|+tM^H+%WSvD z@k<_IFG!UM00l4Y%5_*6LK9zakYv;i3RP>rt$%*EZG2ZiUbSKsH4(sKn!b%GT~zjC zJO;y?v5AF71$xl6jr3VOA;J~OH8yUsA1Bx}2bKJ{3hPwP?bzACd%)Jj%RUK z$b^=P8szy-`T8_fm#xC84(oE#cH~W^Wyvp_dJ`+D=>s+yHHoRLg)Vj9H~^+RkYT3Z zjXAV38b=4OCz^vtgKi#BztoScZrbd$>a}g2j_o$Fi(huv)k;b_SjWW?3y+LlBFID+ z<5mEf3oo|Ogg2Ct_CgV6#fK){(yzki*DEllUYCHNFZ^LfvqCvbhD8{Rd7p2r zUqUa?CRWEEwMJJCRK8+QloST24e!w8&)kSEF{$Y#{E`Kq2}KIK?OVnKuuZ9s$Z5NC z_L;VL?rNuJhX?=TY^NY)+egvgvz-Y@|0Bsx)Y#M#@Q;YdKR=Ze%|9M!7TA6i>)RP} z6l`?h4b;#DdkyUgcGM6Z(t$|%a}?j&p>zNZywa(1?kn5t&Q|?8x)&uol_plz)oOCf zIt8bYIOHihbCpoDcX(f5{>z5VP?58otm|}H!@=3N+dD75Jumk@H)MpryuM%pmR}pA zG~mV}DyRknqPXDD5lxkB!-uT3s!(9!zOP4ss!kQLB*DMHItDy^=W5}U7#PQ3P#r5+23vAI_cZgI8iRo-TlsW}@J`mJLnX7(K4emJk19&XeAYy{wF~ke;aM-zw{E&l z22P5KBvy|ANvN1d0^hzv>Ata{M>NdIK?tE3szkhV%UoZw0_)c5QHj&=V4?#z480LV zvR6BsETk_4T3tPNqB%wNqZ9P< zp0vWQp)g{cd{63!csWy#hRQ@)sN-KzdCeW(U1~8&UFWg{B;SpQH6-%H4xAa@`Oe{k-uEhI%V;fNwZ_Ofhi;FFZSXX^eZra1 zvD)CqQXfl-DgbL+MlG~JO>CFyptlE3oZ!>yBnJVBaQ@yhikl`FX32LwVbH`eg`$JC zcepB5ZCyAuMoCt-vvSE(^~<;4{AdeWnCy5P+-YnYIl=^JYI-X7MBf!gByno?c-D*e zUS7f8iuX)y=WZpL-=+KLdOO`oiLprKS)fVr$5jtG^7KulsCb7g1aFioN|nC^&!`J# zs!2_w;4j9Djm@)nx60TZART8NH+ar7(Xug?Iu}|x!k=6AV{k{^;X3r~d8HHTwYR1|L&l`#D+ne=FqvWx6O@ct zOXbBWcoXifD~RPPqGd$t6aTPMvkJ3>%8s>ircHfJbe>;AXd6{_1!T&&XPD$whQWE4 zG0>cMn_mBURIb68Vj9)`eqX0N8;S0=?!1BK8`7nqS*Y4Db@=|=UlRz&m{M00vaSyb zAtCu1#j0SXRnb072p3ki&}^TUa*43ml|HPlNUr$IOP#<|DtZydD+0ZNIyzcgqAfSv zb>h6i1kXQ6_s6u9{8%WPvL%rGoxBXaki4RB-0}Lb1}@%_F|uXGiB$1id~yHM0Xy8a zpZRnj%Msyc`IP-}g@FY3Y#=42(u!c*eQqkAPq&@sN?PsR^6UAmiK=d_!xN5w>=(+r zMO|UDmo`G+M>YHBx%C6e;XB2V-AKMOqsHu?;`$2OYHq3%e8y1NN#%a#?+_1lSP%7} z?3O2te)w7uqsRjcxrBWrwxt?iKB`;40k(LW!c+r5#^3zXmAVg17TZ;~)a28S^F z>C1m=%!*X^^jQ#>z`ceA#W(7$={fcj>tR_i$pYvpz=bO^w`-9PBB(9He zZj<0^dYghdNatn*N>$77Yiu;0;88^Z?~D;#lgpzSoYrOT|1|a%P;D-2!!{Hv#oeK} zyGwC*cPSbu?(SBK6$=i<-Cc{jyL)k$LeY<&vrpT@yZ8D3J1bdF*2-MZWHK4MZRAVs zqsmY^zlyh%jV%22mi)Vjh8-=xc7wfU!99=d3bK8eAEh^|{GH(Fm+mTW=!P0#$@QN41VV|JACx6Kat|m<)xmYkqoFQjJ>zGdKn4(`B_yAy3AKw|eUjWOB6a1f4&M?_y4==Xj}2*Qx-FK5 zE^4_JO_7hNZjX_fy5J2AtT2KL9wI(?s_FEUW|Iqw%h{W*(u+Kxe7p?y*sSNfyEwpXv>L#>DGMhd()APu1AgYDnR8o+~%?Kc(iRp~ZT zPGy8Eh#8k$P?J3;^$NP=7=A6ci3V7a`lN019V7LJLUZ40Ti0VDv)Bz_0}k+{25_Qu z`9urTrTB$e56nW3QIRo%4D`+2tCzR~($|&Sj2Eay;zP0cSwCkmMvP!$; zRY`X$WPHf@un}^j#_3yQwAdJGO82NeE`{qPef9L}zgNLuI)>fxo>#$#&rhO1PjMye ztu6GQ_lZJ315-#_>l+!{{k1ieZb$3(x$B-^^;pieXKw`^FEEXKo=h z&$22YE}@O=stFaf-Jf7hEMyXs!~kA*WoRV1&f0{RcXb6cMZZ@V%n1f(7kd|L&SZCh zCft>7(x^v;o18DMS?ZR-KHA4}f_s#f#M7ZI2g5wH%WG(D-~V zpRX`Xf1HxRC?VAT9*PM`t>`XLp1Jj7!N%viZ|V9@cUDIn+blW-IrX2-_a5tH1JIr( zYx?{^dj(OrI@hC76Hy1s_DtrAjxR%PpBl=!dl^$}1@cVBW^!ZAVsYk3EXK{%&w=ci zt$wcL^kZqCykg3QXx_(^hO)USTXs^#iJ@Y3=U&4eorz^)bc1!2bQE7e{CDHFIRTo3 zpErov;4f5Zzg#m&SV;cbCI%{>$e{=zdcx$);zL!B`F(lcT{tVqDSwLbQ8G|mam**_ z^sN5bZ)dZ%VG;R>My8x3dRGkPi9Eatqx}`B?!;nhD!cW{$k5f!N!cpMkRfe|*U}85 zPjdu!eX=n2wL=1hDaD6`i44N@wrWkOeby{ucqx4V>yTOfC}O-L`%ugepLX?YPyE<- z+_0{F4BEEB%&&Fu)u{#hWblmO!BRM z@Eqyal-}FLWVQjA2Tlxr+I=>a>l*BMYfBCC9Fuh>h^yVP@8@adS;*nlgqdeW!tj2^ z++3J$Ay3t%urW_61-Ua;V{0l{l4@D>*O9MK6jRWd7b#;)xlMFAtNX^qxcFD8rE;b| zkC%peVHpWH<}H)V?+eq*dV*5pXB|`t8V0P`YPNG2uux?MD7vH@Go+T8ZgZJ$-=h;t{7sjO3_|=ewv`(*S|z`gnL&U!D1g}?4DqJ zhe@nQKSzIsVXM;#7d9yn<{ zX4NCE5z+mqKQ!#=MGGn@UHT@nU3*=;wd_cjQZb5|w8!f`6w^^agCrW-p;@4F4pTVH zU?*kv&5Bt$%O$v7i&dweA&QFj1Puz$tj?93SngSyfo%iOzK$LiJV2g^2u=Yb z8Hdu!Ef*{;iZ=A<#*F74Bv_`%h&7Q39omw-X3Jh=)*(<68Zw~k!W1MJMr75dj(pn% zzR$ZYMDsQ?4Pty-a$)OZWkVO@%CzRfbl6VA5Y~P##PZ3Z)H+EluTKqc<~ja!ozdjs zF6`~@&grQi56fo)1*xsFiDlCkp{rYR7c>hRw_uKnn{5iG=13Qb23>_E^GeyPDs~2m zx?swb9tS?CBa#8YCHH?1Xm5x7avYxrw9tPZ(3t--pm{2}%T3CoJ}s9N8!A&EAR(eU z?yKU*1sLv+Qy1r1hTM zA9Ef>dh2}!OX!Yqa##Z**TwZwMvb=l#I~3Mplmo6(eO*kDaH^yEnnkS=pqh! z%*5%^-#Q!fLI-Dx&QKa0LDc-Pf|92Fo?=T@j&tF$S?LkaU-k8XaADCdbStu&6pzPd zEUL_~qer?vM?9ZmHTIw;&8$&hDpf^4jhCIPjGOOAhb7}(^PIbg{JEkWxZ?p%ylc#b z+2&6+M!3k|&-+u}$};%!cnB+@*D%Pp3cF|v0>Uv7=(s>s zsRX-y=FSwB;;xXiW~N?JNfsH$PX|#!ae|PZas6eIuxws4cx}S#u2H;7a(ikaywe62 zgG#&A0X3$j%GKgvzp2Oy*uwAu#KUNJ1n&vRAo(>A^p(F!(uYbAv#Nroew;l*^I~|D@Y$$xvVCz)e@(okn$X%&RAWq%L?XC*lIN2wE|sTGr_Z{O zTfZ)NMeecHm_#0in%p07dk9pOq2G@@`|wRkypbMOh4&Fk*Xe`$vlKkKJS4+QS#ZKX zi?M#Fa{4^a+g_mJ5Vu7!5AD~uGRFSdvdhgD#WNfTT{#_-TN}Q^_ut*MsusrsO^5?kT2~_rHp4w z4R|_~1eRcu(VI5!+~1|1+|SxSUPW4YUf+TAoL0iYu+c2&x0`Wiax6o4xRdZ$h(Q9l zu)KsjG|tZR19}ge>q**rNqGp@TLgK?*FBMefj8Nhr~;ZuimKwAgavHH3l(Y!bD^xz zu8ii$BU1J6g#M7REpyNrjfu~^s*HSk=0SIp* z(`z~-ce+lS;RuN4&T||cRVSfKe_RZRkZQ|+GGCWgnf+w01Ws9Gbg}IQs8!aUo`IbQ zDiwYr>=#U;H;(f=+n1*=nAcR%piD?UbSqJx-bY`UnW7?`;$tX_>oC`3)zgAjlbpAa zot(C)$u|E$nj%l-x8wrADDGF3C3P4z7jev}ZOz;V1h@(IR;x}G_NrSywP~=W7EsN@ z+sOJD4KhM3+^8!9s3 z`Z410p_G+zcL+f!tk{s2?G_(U7%=5_ol1B}_Edl7rOn2wXsToF4M|e%D`*TGT@&$R z<|!-L{p7`&f|{n%!8E}!GQZj(cd%brSkz5Jk9=Eu>e8S+Rw=1MjrNeJ*`Pg9)O>8g zD(3Pw30qE9n0z8*U6}+KJ2V_2m~3-TnF5Uf4=;qY$B?)}AvZi1c@t%PUf7f;DGfH9 zbaFG}=G2rY7F#B#H>;x0$jt$0winf9O2UQ&7oLZ5Hm1&%2rn}tnw6n$K!he0DQwso zL(Ie*I*MfSC^j96HVI&@Q&)9_&#DJDXcrV76i8{*&}0(fqUT&&FK+Jy+=b>8dYf0J zXT_hnMqPmG5?xlOpnLPRbK6WEU(c4+tlkgbMA}40GOW~(IfIgP zMBIIav;OW&`wmF#g!LTX%s8b@0?XdTR7_x4s!y!8n%NLs^0?RouQhma&`hViD4sL< z!FlC+SqsEkDHP)e)6SGij%t3IwoX3Un^3n8Ei|aZN13};pLN0;-e^`hQPxyR$S%bN z>RdVE+~Tjy7;(qiY0z#9r?=qXUETE;9;O6~)eupyJI$>=bX=osH1C4avrl^|KY2Eu{84xGv+j z#~@$p+1HS&NVa4S=Y3{fa%3*8+MLn&%&;4LTX2VXEAFYjH^HBtQr!kr0OS0_(EtYn z89kDd9MCaFa}!*xP)~}<2P;F-(~f#31_p69liqQ!iTsPky9;BFep6k z0Vs>8Kdjf1^_<#v7f0m2Yy{gf0PYi?+^AKBfO7+-_%3x z_)7Vy&J@yG=@t7P$4Un0649gPdtiy%xL0y`G#up`nH{_BI+-l)8gn~A-Yut_?*r;i z&eTWa_tfZWKEa}zP%`s`TVE)-196#*>plld&l7KzQ@RK8SPbwIMkYvn;4C%z7S)uq zhYFpy;Bx#L)(h`w#@xRwD>OBv93`qOqvdE}&AdDXxwK_OWrNbxh4YrwK`-!~>DmzT zV-mR7m`#g>4a;lUm^E1JGZyF($aYKQB?00-vi9Y-F4BJFrot;EF4*8@5~q;i4lK|s zknI3u4*_B^8NboD>SdOAxt#SJ)UtE=P`q|ok>B4ZHFJozaP*29CVt=0SP0%R<7*X! zI#t>4GnORTS+rNoMmM|P8f2OZFMhBoL7JnFA5x~)%+nFCtCq?H1{@Owub_O3*cL;-%U%q zR{K5~8@pBjMn@kftbMLW(iLuQu4k@D%CPlmvLA>%{*Af!arMFb>(kSZr;HHZ*=q_A1ZoT= zYm8Wt?&Z+wh=V9hX_sG+(qqpkvC_Z4hm>gl9@vFAP=|!9is2);YYvG#6**!BBJ@n8l zs)tT{I`s_^DW&K0dijp3&GjR%Ig1ZXKRum*jsefi&GzC)9kNy=m&4?vlE8&}y3J zf(Kk%Nt}w=w(9T;uamTK!h~ij+mqPW)U)zXAB61+QVJ;UGj-mH#wr;dyR)NI{0z5EmJm>cydX{!&(tI)8L_Ip zeG|uzJ(yUQfg4#Wp)`r2DcCXg6f=uvS2lTRL6;@cAZ0eLOv6p4e}`56Im*>?_mg&sYv#2d>-4<7WB$YYs2rG5_og)xL~=>?-{ zVMRGil=(r#RvPFW>;7)Vek2@1eWeB$DgeFpjN8HZrGh~5v*u7reRTE=-%xO{%TVK} z94Onpu`phdU0^)v5mUbTN!zKo7}k7Kx=ct^k-dp5MuWLYP3{uQghkH95vyZ)nTS0$ z^(;0uH!VMEu&d@lB1$VxY{;lkL;HM#BM1{^5WJBI%fD6cD=ZSD_1O%QPK+%r?cq+h z^C`RTk}rxbEb(zSW;6{It*(dK;Ul{3fMbF3on61O;GoNy^NoA^jl1qWm@fL@b&CrG zAEGs1HbYngH$1@}&hGJ1V^-B&c^HA~nc0G`V4JZe?b2b4i7`u|wR5QWksM_^yj}m}HltdsRCzS59R3 z2WUb^`%%IL8Vq(EYc+(eXlPdEXz76Il((@7bLpSLO**MWc#TY^DnK{sWDtr(M`(N| z=GkG+!;gUCt|As8=kwXXsP3NEvf-}A-Ex%O-(PWXW#wh;zq}^+yn{Ok};&CP; zdwgP9FE*ABrN6n*XCWR3Yn(}Qqa1zH652P1+l>pL2uI77)>~2Uc4mJcvvxXa@FNi8 zi3s^zk8!K}Ysfd=dtjKJ+u6wtT6dVsnd*Hl#*^>U<;K_3Ro#08uW#K&26x;p$ze}d z8-8=mL7~#z#EZrDTxSMI*KXs%UWt^{5{eLV67bM;MGr2dd0Pg1839=m_B8BE(X1P^ z(lR5jMac?`wS389oSD+b@~$)_*CsK*$y8yi z4~@0!+r=j{)Pa4K_H#p}^3AK)sIvffDo1iJlSRjb| zaP%7TN@TZ8)SXJMJ{&n7BcY}YuR7P8>wq#{c8)?*VeCX#;tl4L2Hcp695DwSMF;%j z69VI^!f@>RIJt#r0xzk z{B0${*b_9&wMX&sN7ds<^dsv{uX0mwSl-f<*w+oIpWiwor>~6RWLOTWBPZY_+qvgr7ZS0^HD!Jh$#-e`6);j0o<0xkSXx)KBj4#uFM6J8PWlB z%Gj|^33rP6s6wk=$wPjSBM5jt=2|8dmAgS4 zoWVullKc>+5-9puYvG^GCeY?WRpx>bxyn&eJq|XUZ@tpELGakyw`5K8zHG1_#$*qB zG}%jZGcJ-MrF-KSxpe}6XirE_!q^1DFa?BmQzMaBPw)AYUYI;#>v z-H4AGlka3TZ{LcbzA6*#CSq$N?fh(%-3^wa$)@<&6uRZCb=woabyB_Me5fmCTLynO z)m(pYK5@(Tv6m7m$1_KFmt*(TG7O%}b5yOiwHcV=z#+uQ5Iuj-7kr-cWzF>FS_mzXV&eY6m*W27P|K)ZQ~MypkTUwA+x z!wY#v)eDWVrz`B>Cf+jg)>Vifc&rRYoyWF(O?TT%s7^!Jpus1)_u_efbP;q9Voq`D zrReT+iBHmvz=Xrw75%7hGJtC77!*5VfWg}_c0(bwNptZ{f5Iy^B~M}#+Ri%+^oj#) z7X>yYxc>~P@f)t)4W=ufWJoUMBueZ)W6E~J_4(4>$ENgps1RkMJJK)l=AVf@Z2r zH@8~7%g%T1z0cx(&R}J=pIFYDM)=RFN?eI*hBM#X=qTk!vY@3>h@Q8QA?u2YO1{~& zT0l<7SWGt<^-99q!D_r`-t7VG9cye);F@>u>}~)GPG2qGx;EpDR$!(8#yrOD7P(yL z)--eH@qt`r)y-_;$3dE!+rv_+SCiFY`CWC;gRhHXF>|_LN06E81F-I+a+^VEu7ch) zs)=^QQv>PI^)d&)hMAx8BwxTNA5&Yr(=#S^i-OxBg%{M@yg7H2g63Po_yVM;5IvW_ zsgvJnK9wP%-3BIoW;hBTLE#p8hc`&q66@pth`&D|{5jy4K>Ymm*`r%^w@xBe8y~THt?7aT(g^AvtPe9=&CMDXU&T=gAm{AC!LHfc_HX=PQH%#J~HQVuRMv&ceP#buc=a0kL^U zPjsU~ma1VpMat_f=_$y9PnTo|<<0?d0I0_2fL`50g~*~rtSgq%FtaNRNwiufGPtIU zw~BF7BGALeLgu=Rt~<(uvfmO0sUO9~Q^r1aZIKGMXKck4AWVNPxRc*0Hi5$yZ7}7| zg4)19j(XkN&HI|TKCrQ@F}AW;N9Qtb8B^O;fgj*fVnzV3Agzcz46xZ5mRrl+XIk{P z7(V5UO^*&GO$D`SdtM(nN?+8;V#Dqrn>fLdCp5tV=tdQ5rOlM}hj|JY z=?O6qK%frGX8O`8ZcdEb1vb8bm=$G5X{bqqUfOwl+=AvVL`%&nR{FfI8a-K(gzuhO@FL;yeuX=3S?0PzsGm+Tc9Xv$0;@QiduNUw70J4!I^RL zb_v0@E3nb^F$Ha6owLxt&^6mcclZ)3*uNUI2qf*yM~p%rc6L-p2~9GA8{dUhT_t6%CiAU-I*;U(m$AhrBEe?>x29z zUIPF%+_!mqGnQAg@I)`h7(RFD5xq2JUhRB?^$9$Eu8Z=G=N9zpyF7&`2l;Hgh#Xhk zHoRIUR%t9NS^@NJ3?*@hO~-lY^2hf&9Ru4{q+XEizGB+Y7~VK0hwrMHu*Q?r$+#DC z(7oLkRc-ZqJR3hxiM0_1J71l_6;_qSL+<2+t0`GoUq=owv#!>FeZ5G%)3^H>C>!c^ zmM=pF|Fa4#76#<6z}bJ-|1kbf|Fbi;fA*g>G`0u(7v^VAeWv_N{;jn5JIr%(k>A~z z&c@FA*=XP4IrE6pw&M5UQKeI=VI>9@Wd??7Ce{ijHWeEuICupHCWh)Y$$?RNN;*o( z=LnNBLqql>5;SzR!}OA~)UvWe64HaurobcpQ}!eMTd)3An`#gf&!7Jv$>*oM6zD6| z=R`CAlz!%4RsQwzPswP0Qr>|4bHbNj0FbHY%U`~O|Et)u4*Czdd%pfxI+%aH&(DM~ zzXkVMkNszQn13$!GeOL65&o}o|4tY4&t-pFlK&Q)|5MiJcg~k*6XV}4{dWmuesl8w zH|HPH$-LyhjO_lKZ~fd7{$>Z&EznAEaOP`H!>eOU_H@n%^8kw*T2^|9@R=Uf%GfXUXpy z#+7u($4HRMMwA#%0F72 zz2v<#t@_Pt6#0Yq`{(^-X!Vlx(#GXC$zA+!Nqu&l&OOy6d-482&MR{aS^+EdTTK z|CtJZ&YQm_-}q(uU$f{-$e%OV^LX=zocsy-V-A&zW$ backPubVersionToCommand(v) } }, - version ~= dropBackPubCommand, + version ~= dropBackPubCommand ) override lazy val globalSettings: Seq[Def.Setting[_]] = List( (Test / publishArtifact) := false, publishMavenStyle := true, commands += Command.command("ci-release") { currentState => - val shouldDeployToSonatypeCentral = isDeploySetToSonatypeCentral(currentState) + val shouldDeployToSonatypeCentral = + isDeploySetToSonatypeCentral(currentState) val version = getVersion(currentState) val isSnapshot = isSnapshotVersion(version) if (!isSecure) { @@ -170,17 +171,22 @@ object CiReleasePlugin extends AutoPlugin { if (shouldDeployToSonatypeCentral) { if (isSnapshot) { - println(s"Sonatype Central does not accept snapshots, only official releases. Aborting release.") + println( + s"Sonatype Central does not accept snapshots, only official releases. Aborting release." + ) currentState } else if (!isTag) { - println(s"No tag published. Cannot publish an official release without a tag and Sonatype Central does not accept snapshot releases. Aborting release.") + println( + s"No tag published. Cannot publish an official release without a tag and Sonatype Central does not accept snapshot releases. Aborting release." + ) currentState } else { println("Tag push detected, publishing a stable release") reloadKeyFiles :: sys.env.getOrElse("CI_CLEAN", "; clean ; sonatypeBundleClean") :: publishCommand :: - sys.env.getOrElse("CI_SONATYPE_RELEASE", "sonatypeCentralRelease") :: + sys.env + .getOrElse("CI_SONATYPE_RELEASE", "sonatypeCentralRelease") :: currentState } } else { @@ -203,7 +209,8 @@ object CiReleasePlugin extends AutoPlugin { reloadKeyFiles :: sys.env.getOrElse("CI_CLEAN", "; clean ; sonatypeBundleClean") :: publishCommand :: - sys.env.getOrElse("CI_SONATYPE_RELEASE", "sonatypeBundleRelease") :: + sys.env + .getOrElse("CI_SONATYPE_RELEASE", "sonatypeBundleRelease") :: currentState } } @@ -220,7 +227,9 @@ object CiReleasePlugin extends AutoPlugin { ) def isDeploySetToSonatypeCentral(state: State): Boolean = { - (ThisBuild / sonatypeCredentialHost).get(Project.extract(state).structure.data) match { + (ThisBuild / sonatypeCredentialHost).get( + Project.extract(state).structure.data + ) match { case Some(value) if value == Sonatype.sonatypeCentralHost => { true } @@ -235,7 +244,9 @@ object CiReleasePlugin extends AutoPlugin { } def getPublishCommand(state: State): String = - (ThisBuild / cireleasePublishCommand).get(Project.extract(state).structure.data) match { + (ThisBuild / cireleasePublishCommand).get( + Project.extract(state).structure.data + ) match { case Some(v) => v case None => throw new NoSuchFieldError("cireleasePublishCommand") } @@ -255,8 +266,7 @@ object CiReleasePlugin extends AutoPlugin { if (!cmd.head.isDigit) { nonDigit = true cmd - } - else if (cmd.contains(".x")) s"++${cmd}" + } else if (cmd.contains(".x")) s"++${cmd}" else s"++${cmd}!" } }) ::: (if (nonDigit) Nil else List("publishSigned")) diff --git a/plugin/src/test/scala/com/geirsson/CiReleaseTest.scala b/plugin/src/test/scala/com/geirsson/CiReleaseTest.scala index 9de7c71..4973ab1 100644 --- a/plugin/src/test/scala/com/geirsson/CiReleaseTest.scala +++ b/plugin/src/test/scala/com/geirsson/CiReleaseTest.scala @@ -1,6 +1,6 @@ package com.geirsson -import CiReleasePlugin.{ backPubVersionToCommand, dropBackPubCommand } +import CiReleasePlugin.{backPubVersionToCommand, dropBackPubCommand} class CiReleaseTest extends munit.FunSuite { val expectedVer = "1.1.0" @@ -11,7 +11,10 @@ class CiReleaseTest extends munit.FunSuite { } test("Command starting with number is assumed to be a cross version") { - assertEquals(backPubVersionToCommand("1.1.0@2.12.20"), ";++2.12.20!;publishSigned") + assertEquals( + backPubVersionToCommand("1.1.0@2.12.20"), + ";++2.12.20!;publishSigned" + ) assertEquals(dropBackPubCommand("1.1.0@2.12.20"), expectedVer) assertEquals(backPubVersionToCommand("1.1.0@3.x"), ";++3.x;publishSigned") @@ -19,29 +22,53 @@ class CiReleaseTest extends munit.FunSuite { } test("Non-number is treated as an alternative publish command") { - assertEquals(backPubVersionToCommand("1.1.0@foo/publishSigned"), "foo/publishSigned") + assertEquals( + backPubVersionToCommand("1.1.0@foo/publishSigned"), + "foo/publishSigned" + ) assertEquals(dropBackPubCommand("1.1.0@foo/publishSigned"), expectedVer) - assertEquals(backPubVersionToCommand("1.1.0@+foo/publishSigned"), "+foo/publishSigned") + assertEquals( + backPubVersionToCommand("1.1.0@+foo/publishSigned"), + "+foo/publishSigned" + ) assertEquals(dropBackPubCommand("1.1.0@+foo/publishSigned"), expectedVer) } test("Commands can be chained") { - assertEquals(backPubVersionToCommand("1.1.0@2.12.20@foo/publishSigned"), ";++2.12.20!;foo/publishSigned") - assertEquals(dropBackPubCommand("1.1.0@2.12.20@foo/publishSigned"), expectedVer) + assertEquals( + backPubVersionToCommand("1.1.0@2.12.20@foo/publishSigned"), + ";++2.12.20!;foo/publishSigned" + ) + assertEquals( + dropBackPubCommand("1.1.0@2.12.20@foo/publishSigned"), + expectedVer + ) - assertEquals(backPubVersionToCommand("1.1.0@foo/something@bar/publishSigned"), ";foo/something;bar/publishSigned") - assertEquals(dropBackPubCommand("1.1.0@foo/something@bar/publishSigned"), expectedVer) + assertEquals( + backPubVersionToCommand("1.1.0@foo/something@bar/publishSigned"), + ";foo/something;bar/publishSigned" + ) + assertEquals( + dropBackPubCommand("1.1.0@foo/something@bar/publishSigned"), + expectedVer + ) } test("Treat # as comments") { assertEquals(backPubVersionToCommand("1.1.0#comment"), "+publishSigned") assertEquals(dropBackPubCommand("1.1.0#comment"), expectedVer) - assertEquals(backPubVersionToCommand("1.1.0@2.12.20#comment"), ";++2.12.20!;publishSigned") + assertEquals( + backPubVersionToCommand("1.1.0@2.12.20#comment"), + ";++2.12.20!;publishSigned" + ) assertEquals(dropBackPubCommand("1.1.0@2.12.20#comment"), expectedVer) - assertEquals(backPubVersionToCommand("1.1.0@3.x#comment"), ";++3.x;publishSigned") + assertEquals( + backPubVersionToCommand("1.1.0@3.x#comment"), + ";++3.x;publishSigned" + ) assertEquals(dropBackPubCommand("1.1.0@3.x#comment"), expectedVer) } } diff --git a/project/plugins.sbt b/project/plugins.sbt index b8ae257..0e82c04 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -8,3 +8,4 @@ addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.0.1") addSbtPlugin("com.github.sbt" % "sbt-git" % "2.1.0") addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.0") addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.12.2") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") From 554fcbce9b052ea24dae0605bbaf8aa2cdb9c436 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Wed, 6 Nov 2024 01:21:03 +0000 Subject: [PATCH 3/9] Update sbt, scripted-plugin to 1.10.5 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index 09feeee..db1723b 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.4 +sbt.version=1.10.5 From 227d94ed144b8f2f137a4b5b0cb403b0f8ab86ac Mon Sep 17 00:00:00 2001 From: Philippus Baalman Date: Wed, 6 Nov 2024 14:59:01 +0100 Subject: [PATCH 4/9] Remove sks-keyservers --- readme.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/readme.md b/readme.md index 191e24f..0fc96d4 100644 --- a/readme.md +++ b/readme.md @@ -192,16 +192,13 @@ or run: ```bash # macOS gpg --keyserver hkp://keyserver.ubuntu.com --send-key $LONG_ID && \ - gpg --keyserver hkp://pgp.mit.edu --send-key $LONG_ID && \ - gpg --keyserver hkp://pool.sks-keyservers.net --send-key $LONG_ID + gpg --keyserver hkp://pgp.mit.edu --send-key $LONG_ID # linux gpg --keyserver hkp://keyserver.ubuntu.com --send-key $LONG_ID && \ - gpg --keyserver hkp://pgp.mit.edu --send-key $LONG_ID && \ - gpg --keyserver hkp://pool.sks-keyservers.net --send-key $LONG_ID + gpg --keyserver hkp://pgp.mit.edu --send-key $LONG_ID # Windows gpg --keyserver hkp://keyserver.ubuntu.com --send-key %LONG_ID% && \ - gpg --keyserver hkp://pgp.mit.edu --send-key %LONG_ID% && \ - gpg --keyserver hkp://pool.sks-keyservers.net --send-key %LONG_ID% + gpg --keyserver hkp://pgp.mit.edu --send-key %LONG_ID% ``` ## Secrets From c84df60ffaa919f9372bab1af0320a4efcc6da87 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Mon, 2 Dec 2024 01:02:00 +0000 Subject: [PATCH 5/9] Update sbt, scripted-plugin to 1.10.6 --- project/build.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/build.properties b/project/build.properties index db1723b..e88a0d8 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.10.5 +sbt.version=1.10.6 From fc64abb649849155e63f1c1ecaa7fe703db009aa Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Wed, 4 Dec 2024 01:16:53 +0000 Subject: [PATCH 6/9] Update munit to 1.0.3 --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 19cccb2..1c2d68e 100644 --- a/build.sbt +++ b/build.sbt @@ -40,7 +40,7 @@ lazy val plugin = project case _ => "2.0.0-M2" } }, - libraryDependencies += "org.scalameta" %% "munit" % "1.0.2" % Test, + libraryDependencies += "org.scalameta" %% "munit" % "1.0.3" % Test, addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.0"), addSbtPlugin("com.github.sbt" % "sbt-git" % "2.1.0"), addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.0"), From 4576e37f8d5721faab5306dc84811f65ddd48384 Mon Sep 17 00:00:00 2001 From: Scala Steward Date: Wed, 11 Dec 2024 20:14:08 +0000 Subject: [PATCH 7/9] Update sbt-pgp to 2.3.1 --- build.sbt | 2 +- project/plugins.sbt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 1c2d68e..d95b095 100644 --- a/build.sbt +++ b/build.sbt @@ -43,6 +43,6 @@ lazy val plugin = project libraryDependencies += "org.scalameta" %% "munit" % "1.0.3" % Test, addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.1.0"), addSbtPlugin("com.github.sbt" % "sbt-git" % "2.1.0"), - addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.0"), + addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1"), addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.12.2") ) diff --git a/project/plugins.sbt b/project/plugins.sbt index 0e82c04..57170ed 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -6,6 +6,6 @@ Compile / unmanagedSourceDirectories += "plugin" / "src" / "main" / "scala-2.12" addSbtPlugin("com.github.sbt" % "sbt-dynver" % "5.0.1") addSbtPlugin("com.github.sbt" % "sbt-git" % "2.1.0") -addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.0") +addSbtPlugin("com.github.sbt" % "sbt-pgp" % "2.3.1") addSbtPlugin("org.xerial.sbt" % "sbt-sonatype" % "3.12.2") addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") From 2b0f4fae8ad0ce06c8653c111a8978ca6cd62340 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 18 Dec 2024 22:32:34 -0500 Subject: [PATCH 8/9] Scope version to project **Problem** Back publishing doesn't work because `version` is scoped to build-level but GitPlugin has an entry at project level. **Solution** This moves version to project level. --- plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala b/plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala index 9f85b0f..3996207 100644 --- a/plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala +++ b/plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala @@ -142,8 +142,7 @@ object CiReleasePlugin extends AutoPlugin { case Some(cmd) => cmd case None => backPubVersionToCommand(v) } - }, - version ~= dropBackPubCommand + } ) override lazy val globalSettings: Seq[Def.Setting[_]] = List( @@ -219,6 +218,7 @@ object CiReleasePlugin extends AutoPlugin { ) override lazy val projectSettings: Seq[Def.Setting[_]] = List( + version ~= dropBackPubCommand, publishConfiguration := publishConfiguration.value.withOverwrite(true), publishLocalConfiguration := From 98c77f3a919d609e5aab12086de1f4de94d24b83 Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Wed, 18 Dec 2024 23:32:55 -0500 Subject: [PATCH 9/9] Make version available to both ThisBuild and projects --- plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala b/plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala index 3996207..127da11 100644 --- a/plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala +++ b/plugin/src/main/scala/com/geirsson/CiReleasePlugin.scala @@ -142,7 +142,8 @@ object CiReleasePlugin extends AutoPlugin { case Some(cmd) => cmd case None => backPubVersionToCommand(v) } - } + }, + version ~= dropBackPubCommand ) override lazy val globalSettings: Seq[Def.Setting[_]] = List( @@ -218,7 +219,7 @@ object CiReleasePlugin extends AutoPlugin { ) override lazy val projectSettings: Seq[Def.Setting[_]] = List( - version ~= dropBackPubCommand, + version := (ThisBuild / version).value, publishConfiguration := publishConfiguration.value.withOverwrite(true), publishLocalConfiguration :=