From f653a0be64e0e3de7dfa77f5c5fba567eb7ba80a Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Fri, 12 Jul 2024 15:30:59 -0700 Subject: [PATCH] Cleaned up CI workflows --- .circleci/config.yml | 57 +++++++++++++++++++++++--------------- .github/workflows/bld.yml | 27 ++++++++---------- lib/bld/bld-wrapper.jar | Bin 29229 -> 29578 bytes 3 files changed, 46 insertions(+), 38 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 18f0f1b..17b50f1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,4 +1,8 @@ -version: 2 +version: 2.1 + +orbs: + sdkman: joshdholtz/sdkman@0.2.0 + defaults: &defaults working_directory: ~/repo environment: @@ -6,25 +10,31 @@ defaults: &defaults TERM: dumb CI_NAME: "CircleCI" -orbs: - sdkman: joshdholtz/sdkman@0.2.0 - -defaults_bld: &defaults_bld - steps: - - checkout - - sdkman/setup-sdkman - - sdkman/sdkman-install: - candidate: kotlin - version: 2.0.0 - - run: - name: Download the bld dependencies - command: ./bld download - - run: - name: Compile source with bld - command: ./bld compile - - run: - name: Run tests with bld - command: ./bld test +commands: + build_and_test: + parameters: + reports-dir: + type: string + default: "build/reports/test_results" + steps: + - checkout + - sdkman/setup-sdkman + - sdkman/sdkman-install: + candidate: kotlin + version: 2.0.0 + - run: + name: Download dependencies + command: ./bld download + - run: + name: Compile source + command: ./bld compile + - run: + name: Run tests + command: ./bld jacoco -reports-dir=<< parameters.reports-dir >> + - store_test_results: + path: << parameters.reports-dir >> + - store_artifacts: + path: build/reports/jacoco/test/html jobs: bld_jdk17: @@ -33,7 +43,8 @@ jobs: docker: - image: cimg/openjdk:17.0 - <<: *defaults_bld + steps: + - build_and_test bld_jdk20: <<: *defaults @@ -41,10 +52,10 @@ jobs: docker: - image: cimg/openjdk:20.0 - <<: *defaults_bld + steps: + - build_and_test workflows: - version: 2 bld: jobs: - bld_jdk17 diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 283cde3..d785a99 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -1,21 +1,20 @@ name: bld-ci -on: [push, pull_request, workflow_dispatch] +on: [ push, pull_request, workflow_dispatch ] env: + COVERAGE_JDK: "21" + COVERAGE_KOTLIN: "2.0.0" KOTLIN_HOME: /usr/share/kotlinc jobs: build-bld-project: runs-on: ubuntu-latest - env: - COVERAGE_SDK: "17" - strategy: matrix: - java-version: [17, 21, 22] - kotlin-version: [1.9.24, 2.0.0] + java-version: [ 17, 21, 22 ] + kotlin-version: [ 1.9.24, 2.0.0 ] steps: - name: Checkout source repository @@ -23,31 +22,29 @@ jobs: with: fetch-depth: 0 - - name: Set up JDK ${{ matrix.java-version }} + - name: Set up JDK ${{ matrix.java-version }} with Kotlin ${{ matrix.kotlin-version }} uses: actions/setup-java@v4 with: distribution: "zulu" java-version: ${{ matrix.java-version }} - - name: Grant bld execute permission - run: chmod +x bld - - - name: Download the bld dependencies + - name: Download dependencies run: ./bld download - - name: Compile source with bld + - name: Compile source run: ./bld compile - - name: Run tests with bld + + - name: Run tests run: ./bld jacoco - name: Remove pom.xml - if: success() && matrix.java-version == env.COVERAGE_SDK + if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN run: rm -rf pom.xml - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@master - if: success() && matrix.java-version == env.COVERAGE_SDK + if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 81fc0dd691582c1d59737a67330c6400f7d7faf2..0dcc8fe99049d8f7fa462df703709aa0e5776830 100644 GIT binary patch delta 14895 zcmY+rV{o9s7A+cQ;!JGYHYb`)Y}>Z+#kOtR_5>5#wr#(2&aHayzW%d&ty;Z)b=R)i z)vNjdG~yT(L0$?R0uAKHj~^gYFjw&izTp2YF-(9DjJNXQ<9GXW&uAtY(!T)=446zI zRbfzsun=UjG{{7uA9)VHp?;9DI+zX=v}vVkJ{O~7YI0UBR#1uf(dblZR_ZjVT3K0D zZfdPtR;w!bZaZyfa@r-p%uIjZFUMYYcV>HCwVU<2?M3EZ10i9ukJuEF!iA*S=K+US zojkx;t0)*hfB$cf$j>Q~KyL~Yb>jp*`KjT)BOwnpqNbiMgUexkFKPMVk12UGYkwkk zpJCX<1_+G~C9^hf2Q#%9xfCM6jtz_Y`~;#cpKYQDFVc~k5mI};#hh-1p32LIsf7+@ zc%j}VASPG${1he9Ib>-%levy2lEs3nkPG-V6Xq9 z&IwE~!{bcVP@ZDL=FUqm2Q4xUu$A0t&d!(Vk0JLz2`SO1izq($ZY7HB4HEg2MTp*jKERVE{d;uNNS($PzbD%rk z6+y0QFQ-()+4C(&idjpdP3NzcxdMPrk78VNsng2v50_qzapD(v+bg{AtKaLKHWz$gFx^WhKjkK_fg<_7>qq6b?oqI!5!%A7OEOD@uTgrDS;} zPgSESV@ZE`jkI5gZez|)j(h$h*Vk&Z?vn+J-SB5Pr_7BV3@Fg;>x|!D$PS?q{ zA_d*@N#s!+(gJ^)=h=#{iD{_b)LCuv=aE@6pQShh3p|@57Se_eI~)gNrqc~!*4M=e z*X1wM{q4^bO9`WaRzhH&uMVtS!E$E`gkgl=xK{7hripboVS6FIi5n?YZ>yTjs;-&N zy<+GHt%HigdDG!tMOgCCjS%FUVVo?+r&%fjiU?V0ua6{=3?))TtZ-JC&GgmQ)>^8o z8`_)dNK>~L09l(rTe2DkocJ%H7nY8VB3imPFr9RgQtD5kyDOn8A3y{d*R3EmMFkfu zzGTOvyIOx`DU#7ppzKkE)>NLux5A%f`Eik4drN?;A z1w*H{69G(WzND0PhM?-=Y|mudd{(CGLZR!TB;+t!Wl?79@Hl^ZapP7s(snoAilV#ScQo;hH5z~wH){>lS`Xx> z>&uC*jS(G)KNAg<)RQU0?kl&j$89jD+#I)dCA_F{yE;OMze(xSl*l6R6NrW~V$MUQ zU&lfS{b+*o#2HXJJ2`70P%Hav+laXsDanZVI0hDX_j}PrI9=~w z(BoD0=DtCE4s~XHoqaF3_}7>-(b`~+q-5blK9oHDjyq7+$!wBwO;26cw{vSK;4dDw zdXufL)K<{h22@pawl~x@vN{FG8p=B)pJOcfcKrHaS45m2kMx7g_+7>zrHE4Ny9GN= zG*^e4T`~dl^Sg~5PidwywJ+GIgjx@%Z`2>fG5Tsu7*!f-mt}Vf7RQ7BnT`FBAf*KEIy7H!KVX zc#oPtm?(zN@7y{L0nSK)Jduyb^t^P*!pmT$S`L0YF2s3*Af8`BcF;ULYUjAv$UY~!%`;m4VbtF883gmnsIc7l+KKy^6jcP32BFD*)&H7AQ~rs! z0Z`WI%7_h=pGf~aH-?Y~k)_}dv1VIqDmgp+tsLp%E3MW#2WIoA?@)P&7dK48`IrY# zNLPtiPBT2cJW2Y^*;aNj3yGmW7c2Fm{Hd(NhCB<<4-Yq38moBgxUp#9B$iUoYc&q> z*t+*I_v>wAO%Gk<>O}L?e#rVYcGOjp0{LMr0=wWe3{iXn zxQA|2(kM#)5}H*eJZ#ObUYR#WP&J4$lNx}+V1g6qS%$MHObJ_Zp#{2z=U{IvF_y{v z-lx&sXX;IZtfBR%$E4ISY!R|PjC^u-kY=La^qg~_;(Icd${M&c%d5zwJ<>1~0N#5| z&76sO?8Y$Q1}#dsHc^tJw&Rj!5IrGqM_$x44CBi}7XCVmww#u1pcVh~C;H3t7ez`G zfoA|c5~9vKR%Z_1D$DahKxrYPU<&0iN`9-4q0do-NE4}X(kE48k8U=sI7ohWd)Y0_ zEaE7MsE%QVwK#)$3PZ*)m|PP}2!LWk`ZqlWPtpV%DeHik_Q#6Op@j>&1IgB&48tVX zJq~S`JSQ%{;AW84#m^tKH&HT6BXy|JK2!WjgmK5RV#1XW1n5mD|fT}a8{l}dVt z=ogZsK|{-5H5tZ~q~*MP2!MV!BZ56ko)P=ANw`%#N7)oEokL+;cxwUYuy?fB??8x6}rmZJUcfX<$#kKJYoK zoc^{RfV=UP}LI5GTd6mbpye2_N0C12IZn-;}7)acA8;_mPBM$qg2lPf8u=JN95 zOdn6TVQ@SuP;LZBV3u=JJJX0EnR=0kzGOP4~9*~CjoJ0}CtPMPxow^U? zp;X+*?Cr~&Q;bpYm|>*9r6n+?i(Z3zUQT(5_A}za^TvZ|8cFeNOtnDOUK9PALb64oG1NgPXnng?~rof;g6 zZxSQD^o3z&cZcnr_*I7KplrXuxZ6kLPUg$497jic4~*kArE)B)F<5EN&A>Cnd!$U5 zb%MTcj)(vPsFNvT}vP%jY8^V$7%g zF}vX-P?#Y71CdNHPaS4Pwt)^KIkm4&*{+Z1_TfmOnxv_BX5G8#OY(4@L2bnc6Y9#n zUT{7HRo9kfHJbR^MdYR+qvT{XIdC{Bzba!B30UH=T9j4Q9q@4z@}WibVPft6Szy^o zWn%V70>x#JODxT7m`i}uNV%VP4oZ5kFPE|#CXrHQy*{Sk{JToi%O@f~y9dJ6Rmgq0WkII7114j-2=vpf_ahz(;Gs-v(;lt*Z;tFl#A0tH9CuxyWIhF7@fw~G4 z3Yd8m!KsELG{%`}IQv^mhe(2d)&?~uh(~;)=pLUeXh?PTN$c=&&btMZYc;`^SK8KC zYbl3I*odf@*l4NzZBQ+PTeTcjsrnV=lAVu8P(Petb|1z(`V+?EQPitpGU1qo(}`_x z&5zWwM$c;0wZ=@>fp1FGiNJ8T^3xIj323yPy`XCscFk}sBP}xL&{pQ;6KA8-;u^xmK9RFI(f`WH4^q}y&0;)ScQN}$J+qtk*7Y^|un31;8%AE3 zFiqm+B{Y|}-%zzvGMTb5ARrXs0L`usVL(bLSb zZu6!>??9ylsN7Z&gW=rv9-N8N+EGMgULS)vOWO-L@HDSGU+O;PQoNOYf%&9ZjXQ@| zQ4)T3EGlF?M0qOM5pM@Fcmy?;PpnzJ4(DOTUT+k`?VpJLg#tl(2w)=`z?;l!YT9ai z+aWU^-!X?D~F}5NmdHRfa!esG(82#9QF-AFl^p1~tbRq57TJ zs|a0tyNd?<3xm#)e2?`g;V9wyY^p$1#6!z@P+vGTWs|Jxq!KDj&3^kBe_&n?0DIKx z64tpuC3jyz4p8Vd&hNSOuY@p7JfBK%r{HM;lhetAOqw|mbg^d|KN zoUTud`iHnwC8~M|a|v@pye{8ymUyox^d|R8U3}@o1qy^vkw4xxk!Is@`QK7G*iew-KXgt_H z^pcI?p20=%9Jm5}%`Bx)0L?qSi&rE`&o337?2S8r^6yFdzX|kfxqGDEgamtRSC94N z-?Y1xNZ0VqZjY`I?_w;8(4s8hq`19&5cC>rTl=ZGfvr+5u$oj2N%AP(@a0+=d^U!W zsaKl*EOduT*cZ~S_GI2c?~s+!hjOdD`tYQLGVbML${GOPZqKA%N^uC)%U61KK7z1% zO9s?*x_HLyy}Nu&v7-t>DLyy!@K5Os&=YR$Xr{&AQqg-LEN((b_Ma(2lxV3Gzx|7c z?Rkhf4J&bK`C!?n6!*ECMi&)gIV0hwg=OlLiS@LxOmX$)v`R9J%SYF^-0aRyqRjP` z=w0~cb5MavO>-|~WqL97X@C6d&J2Tck{nyM0!rzWe;Q&+ru6m7&i}a>}uH;7q6j7Gj0f;sSW~hx_4 z*fTKV7gzHzSvk<&GS)f)w3uO@bq~pYWQtpcMEreGvK)@%1TZ>g;=;Z3BuKq%+w!p> z_f_2*f#?ZU70dYY3i@Vs;)pbF_??|sLx=D`T5e*i8N4HzV!DuJ_w!coI&b#0GLX4e zzdQj?E);kTd8vQLYByuX)Mon1-C~(&gN}>L_^Y2tBc8exXlHa%>?}he+_2ORYm?G5 z*5!wm!9Fa@cwx3EO_ZnE&Gwcvs}hWE?yUzaX++7IBbuCC;BxhXcv>i%5FxtdnljB} zik0YD_opK~$ey@atBZQ`?JXMC%E#&z(ThM-^HR;isP9EFth#0Ok?0IV`(0T%Pgc>5 zP=oQTeDjpzIrkU-9OUF2+6BysQ!HOvwCsz6AvhN{196f=YH^3kkFi2hj~bN)K}#I% zT(d}4l~{7b1VYg82z8o@yjh7;kxi52NvSo7kq>Pehy|ZOQ zMipKmRr8F+g?j>5d#A=`)LL55@@)2ehmR>WiP2S{&qz;RE#r(vN~gL;vK=d#1=Ty? zN=WWb-3-}0&}i&l+p3(A+0JBe;0f>%&#!4+K;Xf&)M7ZYTsD7Ql+oX9T2^QTyUa)5Gq98tdbB zPehsew#Yvfe=8olG^VJhqQ|<}ozf8t!$y)_32~T>eE`7^Zgk|+r-*b$>j5B)U(l(s zBvukMEG(x-O1DvV>(rYQASi9?i+cni!NyFW_&&;L)p}l|zb@{FNvBE##?OsC_9F+J z;6Xs|u{;(P=O}vZ{1AVwyXe}|UvLuS*@Us{xcAVV(v^BF_aT}}I7_yPw45rlu(hnT zF)z10sH|7XVt-&B@g7%{qXmwzcxBqj+FTTl-=@+MNw5X&2ZGMZ{GBR$5J=9(w{QnG zg?rx^l*yqJEo~yV=JT73{_7}9z^Qy-0yW)qC9k-m>KY>P#U$I?8V?sHGQu4GUTmkw&k73JZU2TE&D{I-GG%+2=Hn zZsg#7X-R$B_SvUQivb8Kqh3i`i=8QN{LkaNzPhuIm4dJ|)Ot#$W^*2y7e$`bzZC>- zFZNDLCv#8q`9-GB)qoI5{(-P0vA0FN{yh`1j**N(m*@tP-nUMK;6^^NENe**=H{13MpGVEDV z7oy~CbHaJwkMhF7pI6Z(8b=P)r1Q>LyBr*J_v-9l_cqNcK`N1b%@070L%8-Ex`4Mh-gH_X zcMc*DUj`^a;`s_G`(G-@My@ERvqY(r!uAr;`U>-(8)l-XHsEUH2a@PB6ndWt$fry8`D>^o^#lm{ zA)U8wNBljsXEL}I#sq8h=o{j1#eRnYk74F|n-n!7C+LrpaK>SGP!C_};Kh>9Xf&`u z8P~b>WrC|kyns4g7TQ=hoej2D2ew82=SXoRSK;vc`=`s?FWj^?_Q4PIIk%9{pU*st zGr)oo&b5Oz4MtD1cZ=y=Y%!k>PS=JN_rA$dbnGNT0|#NUw#(j^;I>&k?}FAwjd4ta(q4M( zOu5wU`{QJi=~mAP*7h3jUuw9rZp0_xbc=K04bOAveO-$e10kb_Q6Jm8wq`SW42*Y- z{!M|A;5HplT{n}q*_^r^P3uPr$4ft2Rs8%TflqSwo7H_r1oeS%>pRNQ_viRV5vh@l z8%w_H!zSxKO`B5A1#XoJ+1xrR9EAmq`BVJ0G6Ky4lzmKzCg!t5hLE9pY<8oimX(wS z&F33=(*rxou{W{cWPMN`_Gt`QaI!L=D^E-pIm0Du>UG9^IRA>nhKjlMTO!jH{YA5h z9<~K)^1=IkeN)MwIgpV4#sGTE=4p5uKj_DOyrYF%DJo*2kzh2pjfNr+@YP|2~I$4pK&Ja{xD(0;yz-DCUar0rEjBrEl*}3 zPl3Rdj8|u9Uur|O#+QCl|5>q8F4K|d0j~AB)vR+m!T0!M?kxM`rJw0St_J>H7ptrn zgA{ISe@43HM4#QO}LFUQyCPV7^R!6?o0%g){2I{df{sydKXcZhty zFPgl8YdAN!J`ac@i~Ja1+IzwBT!A9tq5JzHn{unO?^SYJCAN&U9h#avI4+RtHq!{S zc5>}l536;Z(v%h=IKz z#*`YlewErp5&png?j=72E4&pscEbrLRD$ijWqDCgvZy}b^o6&p!b=tm7O#MPc6A9V z8G?P~&@mYBV925WmKYos- zKyPs+g}Sd1{_-d*{a_mV%l9dfpS4fjT99>~E{JrvoAcC66?>B;LKXWkb1a@D;W6e` z$hW5Ci}v811AD`tVW)rY2B%Z7ZMJSFP`$_b{R8xx8SpmD+wOJRQb3=-rhlV-VwOlMH%7t=HNx9>*ZE_V z4;90^8se+&vcp{nY*{I@>Xt?O<>97^tV_LFG!~GHig4Ltw71P;Sg~6v(S;6K{b-YH zu+ia&UuIk{n0Q3~tCdJIdrJiZnhmLE`_8I_0KJ@S7NjDIi@sL?K_28VnGws@K-w>> znM8k%gn`}@1!ZlN(xrkuuI%g}R^`@g32d}}#R44F{LO9QxZV=O#NaO;f(wdhix*R6 zH^Y+C@N`i~j)Bk=tMt1e572!JOFI>h{t^Mr-dN2-cr=>Efx#JyVx>Ky0td*$y62$vMk^2An7JH2oyupQ_uFM(`MxA4nww$}$4~n2G<_CAMfG*sR z7qX^dC1nvWrV^yWy%|!kQ@k}f;PSy|O=x=F)e|&M7osW^^fGj3F7*WQt$r&={Kt-Y zhE>wJjJYf4F4XZj^bgi(RA<_`+j?$zi+@s0WYA+Xebu z`LmMd+4iXtNIx>WwM*y|bgK5;MgOMS%M!hVPYT&yn|e5aE@ED9?}1<$z{^9@M4Ab$ zej)&Z__w6K=~tz4moSr$!nu56meoJUFy|O-oAumyn?vrW!r%Z4ZS@zs6$YHi^-)6A z;MzW_o1vi_FcCX-a+^XaQ34$(b_ay5rx5x)1NR=-3qYLoggryNw(uCYDahA<(i8R1 zSL#Zcoa%@u;v23v6Tgh4WU?E=lfG?p6--daF3UU% zLbE-nmrU|SP5KQam*kqMQqzw9%sH^P*E0uUV13C1G-X(vw6F~8sIHg#6|QZ+7H2fx zl@YTU-Y7;~=EjcZQYJ|a%$I`W{-U6?j7l$R3=`6Uxn+nUnsy1;_COjQa_H)e8(|hB zx7MHa7LvB4U!^S>99qy}Q*q1Kb;e1qNn{n)PTCM=x7`i$W@crOtzz^sjmbZH5q}ZK zdRA08{jpsY5e0T}ul=r49~fdV5e|v{K3JZhS#uMv6RKxK*t4>$e)`s$?n+u?CuXPfv`>J5BsN3XAe8Z|mb6$Wqy5 zytzMkJCqh^?Yow?HN4Bci>SmsO0Y;}QT7K>n02dujBZHt>UXW%tVI*Ta;ns!H`CYCK4cRKLV4kAaTLhCIlNgEtT}j$rEA?j-EIk9v3NqMMOY93 zqh|ZpZRMrlzfClWoZi9HJw%D%qG=?Kx`ZO$z|%RAe}vE%n9ad6Tne`FOzMyRI?L-t zfiOa6RqXV+K1@1H8WEfJ{TW=0`sF*vm@@anp=1Pj#XbG={kys<=&K?{P&&W;KoD`? zJZN2hBu9m?@+#qzWcdDJDOEtO-5OD$G1|PA>pO48^BD|-2pu!EVXqr@NmY9s1<(-_ zXNJ3agdUu<_8F>1H}wyHR2v>j)jEDTlpUi#D!>7S>2zA&-4aVU zikJYv0AY$s=kI>7eeMh}5yq=^v3(lvPIF~3jAaCeGjH@&NDcW9?3=klXHe0DUu9p6 zJ3hRdlF$0tiMvQ!q0Rj8THUyZ?>i6O5udZk_#ie$U0etZVX!XkofgG>c+b#9P8{#9^ zz%9?&3M5Z*I=fyU)Z_4wNb^py-2%SQjADZpUyIsBIiqikwDOkPn>)UMQv`dj@lvXv ze`qS+0$P@z&r~2LTcl}c%>Y(OR~X<&T9AY!nMUMkfwRRbI+$GVeW6cks2`#bgU=^* zJy9ORK)o0ramy`ZWQZ-JK4;(@*CkXnPGQAC-I+yHz&Lbh831kGsV(S`@-B2MFiU9; zZG+*mmaX_cIG@lXbNM5Fe~;It)BN`*=&iNYsqXEDFuqXg;LyG6M;4=R-zNZ25ibjN zfD_-@-YN~wBSvBPeWep^FPlsExEHSccAfY&!pVID^|(b7u={DF-4(e^$gCya?Ojv` zfdF_E#T?V`diYy%{ARD<^BY>VCs zdUxrZ`qFUzM^4yY*O<+yvEh`@h+B(&r!Wfr?c5Z3*|s}by7Y>Hzd(#v9;q$h8KmGY zdFB)*(tNq8Af)wGbc`!%Xickq`nJl=)c4opq&wjr|1=+bNW-%)p&+p3WIaj4^k_G@ zj;I90e#5hFsjNf*1B6r#e3`4{EoLH@kDWuk$Tiwy1hU#6nfx`SCof>&!LhLLRC}>2 z4(l#2!9~Xgjdwb1Q2k5B4oK*c**9E0;&4OVH4?no23MF-i!V4LO401{^wz&BHXhXw z)PZEPPmFRALYhp^#chYdX@}stZ?bOpPcC@tVk+aLa6YgJ{^^eCIr|O4?<9W`TN20s z8!L{Q?t_-W7av3MVK$7{cEQ2)EPERIh>U-uE;!XIi2AaJ$GGp5zn*6&Q8G4Q(Zy3izwFgfZdXh?FOW3rBuFOdJo*-mNM@RhJ(Z|L&~XU0v8`>w z(Vn?%!hBw!PaVf3Yn-Gq*Z~X92(fCC7$=&NRELp+>$l*KB8~ne)`5{l!Z=g|ssrN} zr&mYVfAxV4aPV#EcP}Ymg=7qoHxc7=WWy~i9+10(l|bKe13Rs8g2sB`|F?^Joiok@IuM@LNq;!XV(DIcL9Yeq1i1J3ME;!h7O$iC4@ zGdCB#m;en8EU#%>Zc15b)K}`4&gRZTYHezPO-8w3JqAoPLb{0YiZva!Dny%CN9MCX zh#2ctZ9*!SJyCou1}AvP7L|!L;K+lMMMd zJfU5pnYeDYgr!iq(EKBgK_WjJzzss8BLwxJ-VZzn!O|gn1Xl4=k59{lo}NalZ)9BU zE&m>X5IF_G82#9}E5OhnS2AWs$0&qgWh@NTLJX&@4mxVzp=qyi<*}>*`I{- ze7AZPXt^^ax774ML(62nWiM|?miz@de*==3qwpQdIL_@4v&nOEoMX~&4HE^O#vJ@q z^lv42zr2hI_$lvCUAQB*;tNk>8~nZ~M#7}IWe)=KN5=L=>$8Z)4#@QR6tbvFBN7j9 z4gIqyFvd>{R8t~NJpxYR8bwq2B&}1OhK3wl+LWhI^%CxfvK{@89=M9=V(*$o$N?er z!yhu(Cg(hosf7$-jHt>yvdbny#0acQ{kKfQ{RqRJQ8%;E_QD)_3?c_}?(IV-L0)N+ zV#DIuT`#1N(K2zyOIgocjxG^Dcp4{BFU3<+D*rgN%vO{8#;cnI-I&ZcJ%s!W$vhT$ zx#^k>tc9=k;+U^%+$lfI&EIUcz62^#<;6)fW*LGK(KbD>aAu^dIk{c@M<|WGf0=|@ zRHD+5^W-I!kIes4vi%OK%Po|s-t(gz64%N37e3A~Lyk&s*PnnkaPR9Uev#6edXef@ zw{zX+roA=Eq69`=9_r&!Cb#u>^$JNV@_7#6ri&ea*D!~Rn%KSDZSyuRh6Bb1ZoJ!Z z?c0`>@Epy!^f2J~L%07DzhC*O@^9zpG*#)Ir~AyXzEEv3BAN3md(PAVYt@40=aiJ? zx}J3d*I?sK{=`Mc`k%%;p-aR!t3sO#q%YUgcBQxnx}RH+1vl>=e0D-y?_E{_&J;2X z1#~Ykq=$w$l&Ley8X_i+)Ic`fbkV#qeKz&EMZ0yL(}4zZN^z4;jlW+O!bvo80!4=i z$2_T`Vv>r9Mb-7SZE;&DE-5FU5#Nn;k zk~O1r@qJSjy6ab00xr9L9<}{jiRcJr8i--6ORs@(mnuD6h3F!8K?Z6y?BPse-?M1A z&)8eiA9k^2S8OPh?!!xx{IuFH!`!9YTOp$sOGb`(yvQ7Z0GDo}FZ> zxv`(dH|X{H#;0rByn%8=@ngz5`|q%EwKFNKgxQLfbO<^QJic5GH^ET$Ja3TDZZG^D z?wx*!3sVEwDWp5Rti657o0^lv-ktE9c0a-WJ9;iINGOUx)_cT>(=<&)6@!$ovDpfp z9Yz73f5mF2$9L0jpE0;)XNBPIDBLW++Z#}&TjNznW%O$pJb^zUr(W*8L|%Pd-B>;Z zO*Rl~9DlCIus(Hcm!z8@*zhI1qTvpZUV$Cq^{C6?;4}w(7hFti%s?4kznZSWHnjI! z9u58M@tJEKN+OdGkLg>RV_w;a5L4}|U!4O6B?brM`LQP&N?+|5^`;bAQN8^WRG016 zPJF4enlu&@fk4=Gq`}wMZJ2NOG(&wnpGL~D$Q(mo0pkM~TcM6EfsJ?n?$Iodcv23Q zLsQI8o1~qQV@uupeWy|f^36+#2sM%CPg?)1f8w-S%dP@k+q8mJp+>Nb`-1f3#XfhW zXaa{|8|DVU!T7WyZ68_a{-5Tgl$(1$mff8SX?%uCYv9Rrk*S(U<%_gNJY7V@Z`9-< z6lE%2ZRUpuIsCMWb5|FX=3yk8ns2yl>hi3i2RMBq=NzmDYBs%{tJ8(haak>&eMHeDUICH)=;$U@CQ@Ncge{lLXg-89(#3s+VIgoHCKQYmdl|( zm*2taxtfWcJqMb~~|uZVjN z0KYE8cm=7BM;ZX#5bM4p=JMAI<@ZXvO56s)Ch({6O!6h^mAoDw36c|F_;76fm*O=@ z)ituiFCy?`#J1Kv&d0ELgK{b!deHNg9{8Cu9cFWv*Cy&Kp-tOMYn!+o==5CGrY2Cz z{izFKeH|ER$7UPQ^)LrMJUL9ivlMy4u&=t$u~NZ%qPXvB?}?GskGMZRtQPjIhuX_= zCA89awI*_m#H$f;p;ux^QetH_F>53Jdr;qmN>i6xR#)@owf&0*R<0S zNe?wolHK8#62bdhp6LCyYFh!Tq>?@iUZQC@XQ))|EZY)+)IVuvbxvrFtkBJ|z+ID1 z@T2uR-5zj>8v@G5BvZN~IHu6E0L7#Xema6U{)P0v8+(dcS5i;qOhLOhw4+(OWHXTm zk;VhchyPN|qrB5gMhO+#KbR*|1cP%QBQmqFM2t40cBwr%C4tMmDB>r>l-sylmk|cE zj&99O-D=y~P<*ZUWv1D7+vXc;vOZw6a^ZfXAouY8Sde z^%+;;q4z~{(f0*(lvu_)o6I+3g1;O#f}vwT_T6D7!92&jfui6f6Tz%>My&baEZV&3 za#P3XlwHD(Am72k*)BPA=RBxH{sM*wjPA&@Y#y&OiPUBp(%(!JNEcRR4IRl2)Z05} z%Dumlt0FZ2cCvaAR0$)$fx+~;8m<~!r`RDg-jO{BT6IPJ3)R+00hdq;1^;@z&BNlK zw2l86;!t^P90mpJ%O&(e<@<{KJ-jwA@P^jDVc@&iRx11e&&m^=qez-g1WIl0_&YSd zz;}-YEjYIvUK!UYx7{ue(v{8mhRtS`W#OVnT+&=wWta)T)6*T0fVLuF&K-<}VW*Og z&2?X@!*$NqYtF`NZZ|#sfOjI%TvBra%$Sfj^`^eD$tqlcG*W9QJy$;1>>5XBsbfNt zYpS{R$o2x&SuJ<%^~Kf&D3GVbILZ=>8ju3gtQ#dqtE(qY1JgExQzJ&NtjkLPtkoF36(ckdf zVutdXwPTDFP8|P*^Y#|tB*ABKcR|1!xxtrNla@^O;F#dzPMLsMZ z8h6NcWtr5!+1f1EQFTo2wzV7*LL(JM7`A5$HfaPn%vQuG9fq5?!+UU|WoT~5$U?_z zv0TYG7gmh20MN4Z4@_J9G&!D}`>ulHQA&d2g)80W-j=eO1MDfN7^dNEseLJNEXt`{ z^w^v9hd&w16xUoV3+`j`sODufMUs{z=;e~mU_HlW)HP#S5YBtU zy7&xJ^UwuVx>D>7Pp>oPirAstRJ%s<+&|?~CSomq0kRm|V{VL`tD>WGvwF9>Jhgg% zRKDg#qUfsGe*?)k;$TZ(-=IsG)O7@s!D7C3)+A^-dDx*R9wEuKh)=U|-jCVcXI^p@ z*XQu1Z@xXAph|qy#|M>|P85&jsX0mG_lt5_(~GZX$pVj!l#8FQXD(mJ-(zaMHx8L^ zCOvP>z~^JjEt}3#g=?i-Mvn5a30JTl3C>pa*3rxxDZH4HUC$dhc)r%%V(!Dp7;RY|d3Hj>rN}vFnwCg!579aYaOU~u7Tlj&u!Du{X=Sv@;ZAdH2rO}h z)nXmuY!7QspB}@#y%zZP6y*xeP3N8*)4sj3etxw3_T=ZrV^f04!f; z-k+17Z=tt#o5zB~BWv`xv+7A-UT;{QiN0puV9yPsFAFbpq)OGw=)=d@>B9!OH`FwQ zFM{$?&_7_2%9i7~KtM>`KtTR~Ny$b;t|74hW+f95xu_ezc?|yt8jbni=>N+$8dyz( z{%^x-!~B1AW_G{-r*E(mLHv(G{r|I01h*F;`Y+|YPr2y;1_Ck$0Rln|@_#Q~?nDE7 z&i|dyw8sUb;QJ56N&M#dNhdD_3Wf&q|0X!qA0TX1n(0A6QY}D0aQ<%#kS2jdBnPVh wdGI*kg4J6m+FP+FZaKjJAKU*>fwqZl4lMtJm;ZsS_KC2L_)s7Y|F!vl08^AX#sB~S delta 14565 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 U;fxQaWuIj3ObAtE{~z#w0R3z|%K!iX