From 3186adb26424086d32b8c6b4fe3a42fd3c29f7f6 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 25 Feb 2024 18:50:32 -0800 Subject: [PATCH 01/63] Improved Visual Studio Code support --- .vscode/launch.json | 9 ++++++++- .vscode/settings.json | 10 +++++----- examples/.vscode/launch.json | 13 ------------- examples/.vscode/settings.json | 10 +++++----- 4 files changed, 18 insertions(+), 24 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index c3fbf4e..2d63b46 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,7 +5,14 @@ "type": "java", "name": "Run Tests", "request": "launch", - "mainClass": "rife.bld.extension.GeneratedVersionOperationTest" + "mainClass": "org.junit.platform.console.ConsoleLauncher", + "args": [ + "--details=verbose", + "--scan-classpath", + "--disable-banner", + "--disable-ansi-colors", + "--exclude-engine=junit-platform-suite", + "--exclude-engine=junit-vintage"] } ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 5dd7145..74ba820 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -3,13 +3,13 @@ "src/main/java", "src/main/resources", "src/test/java", - "src/bld/java" + "src/test/resources", + "src/bld/java", + "src/bld/resources" ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}bld-1.7.0-SNAPSHOT.jar", - "lib/compile/*.jar", - "lib/runtime/*.jar", - "lib/test/*.jar" + "${HOME}/.bld/dist/bld-1.8.0.jar", + "lib/**/*.jar" ] } diff --git a/examples/.vscode/launch.json b/examples/.vscode/launch.json index dc9c983..0368ce2 100644 --- a/examples/.vscode/launch.json +++ b/examples/.vscode/launch.json @@ -6,19 +6,6 @@ "name": "Run Main", "request": "launch", "mainClass": "com.example.SampleMain" - }, - { - "type": "java", - "name": "Run Tests", - "request": "launch", - "mainClass": "org.junit.platform.console.ConsoleLauncher", - "args": [ - "--details=verbose", - "--scan-classpath", - "--disable-banner", - "--disable-ansi-colors", - "--exclude-engine=junit-platform-suite", - "--exclude-engine=junit-vintage"] } ] } diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 5ae2eaa..74ba820 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -3,13 +3,13 @@ "src/main/java", "src/main/resources", "src/test/java", - "src/bld/java" + "src/test/resources", + "src/bld/java", + "src/bld/resources" ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}bld-1.7.0.jar", - "lib/compile/*.jar", - "lib/runtime/*.jar", - "lib/test/*.jar" + "${HOME}/.bld/dist/bld-1.8.0.jar", + "lib/**/*.jar" ] } From 888b9c80d8a1a6a075c2cca486d951e6a6eba214 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 25 Feb 2024 18:50:53 -0800 Subject: [PATCH 02/63] Bumped JUnit versions --- examples/src/bld/java/com/example/SampleBuild.java | 6 ++++-- .../bld/extension/GeneratedVersionOperationBuild.java | 8 ++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index f910421..80e1fce 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -25,11 +25,13 @@ public class SampleBuild extends Project { mainClass = "com.example.SampleMain"; version = version(1, 0, 1, "rc1"); + autoDownloadPurge = true; downloadSources = true; + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))); + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))); } public static void main(String[] args) { diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 19ebeb8..dfd768f 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,7 +36,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 4); + version = version(0, 9, 5, "SNAPSHOT"); javaRelease = 17; downloadSources = true; @@ -46,9 +46,9 @@ public class GeneratedVersionOperationBuild extends Project { scope(compile) .include(dependency("com.uwyn.rife2", "bld", version(1, 8, 0))); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 1))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 1))) - .include(dependency("org.assertj", "assertj-core", version(3, 25, 2))); + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))) + .include(dependency("org.assertj", "assertj-core", version(3, 25, 3))); precompileOperation() .templateTypes(TXT); From 26fbb9e02d6e1ea5fc4d816222c742890a3bed96 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 26 Feb 2024 02:48:30 -0800 Subject: [PATCH 03/63] Bumped to bld 1.9.0 --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 27293 -> 27319 bytes examples/lib/bld/bld-wrapper.properties | 4 ++-- .../java/com/example/GeneratedVersion.java | 2 +- lib/bld/bld-wrapper.jar | Bin 27293 -> 27319 bytes lib/bld/bld-wrapper.properties | 8 ++++---- .../GeneratedVersionOperationBuild.java | 4 ++-- 11 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index bff4f62..0b615c1 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 74ba820..9e8368e 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.8.0.jar", + "${HOME}/.bld/dist/bld-1.9.0.jar", "lib/**/*.jar" ] } diff --git a/README.md b/README.md index 4670946..460ade8 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.8.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/1.9.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-generated-version) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-generated-version) [![GitHub CI](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index bff4f62..0b615c1 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 74ba820..9e8368e 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.8.0.jar", + "${HOME}/.bld/dist/bld-1.9.0.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 48bd8ab6f75fb0b0b6942745a8a3fe0bb59a0a91..e63713531201055d2d5d71dfd5204bbdd65996a0 100644 GIT binary patch delta 25244 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

^*a+>tbBpHE+pL~3DbtKbopH&MqggYR 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 diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index ce00bbf..7afe142 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.4 +bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.5 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= -bld.version=1.8.0 +bld.version=1.9.0 diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index e32f13c..6e1506d 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -12,7 +12,7 @@ import java.util.Date; */ public final class GeneratedVersion { public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1706686412610L); + public static final Date BUILD_DATE = new Date(1708978279960L); public static final int MAJOR = 1; public static final int MINOR = 0; public static final int REVISION = 1; diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 48bd8ab6f75fb0b0b6942745a8a3fe0bb59a0a91..82175bebba96ffd9f59db271360cbbadf6dc0066 100644 GIT binary patch delta 25244 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 COgc>f delta 25305 zcmV(}K+wOp)d8K=0S!<~0|XQR2nYxO4zWIw4SoX-u|AQGFn_!Wd|XxeKm0uB-sDau zw{4nqOG|0Gr&(!B3nX1go0O(xDM{Lpwh*Stv<*#W(wRvYR+W7dp^AXGfJzlnpwMaB z3RO`+R8#~MTz{f0DvGG6i1hz`&b>2pCz-VM^M2kc_ujKT=bUGMo^vM8esK5+B3f#G z+#>x4UvzB+%a}DBAra58@$V{wrC2|I9)Xm>*=j@*U}S=`e`y{37k`Hnnp!T`7W+fT>x%E zL#DCSGH!-VGiCk>!^X+Xofgf;8dIYidP3WS-Kzu9ZLPtWpJq9e7uz(CN|;7Pg8kuW zPb?g9=6@aInHT-_gk?6BOW)k!?pQDs?FomXol;+E(`huHsjxe|E7Thfbk`-?Tf+m9 zE)9=2NY8~fou0Yp8qC%m?$YoU+jIt<$z*LF*s>)kNL3qG_|X8)sb(rjt*j;z3G8X; ziDExXX_-aKZ91E35{!`Q5(QrcqSBFRcJaoBp?_?bU;-CW(HK~uidG5>)MB;8p4OG& z-d>ErlEDVDs8u$dL#r`oPbeA-^!C<-x*Gxmp{{LMY4K37^Xi3V*VuF}H87dM-91>5 zSzPacYO<-B)`DtXkzgPeY#&NjrkTa*?3IZ(1yYMmt<;7^r9oN~h%k*E0%G2JAFXG~ z>3{9n90>^ZEjmA4lr&%;Z4ip|c314~>&>N2bb&<|+SExGfpc}|5Fl;=#LBgS7&foM zTbQadNYBO*WiSmwwM??vrY`D+#K*!;R|r$_2ok$R$hB6!w%OD}7lY=&Z!{Lwx@3c& zda2K%kWFFg2Nj#wg1!7&>f*{;NFD_SZ z3q)FjI|hQGu3#GXI>Q^CLDl(C%9q)6xoF3UeSz)4mEllVAlBX!+lDXjYbXXqbblp% z$f6J1^by@{1Xvn3{k?&%U`=nYZ2M}Pu90m|lx?>*uWMOZ*XrGVKKfiH9j~|P2I)Aq zrG8c20&f>-y~(DVrM1v$%>YO!_feZ}rH?`P?27cnf(Zi6%)nklx!a=KnaVxX4({#> z_KN^}2wxY8gd=r{28%wPP&0s2-+!EJ@Y7zpL)h$-uyNkG+qOl*y8@eCak>loG#ZS> zu$*Yc#nEucN1uY8hVYcTy1Jr2DbzmtG}>f+3n~(7u^|j1^~ku-f>TB4hPL>ro$j^i zKKeXZ#H9;U?T9RL0@fMI(qFXcej&;!Lff@1&1>sg+B!Pd*R{0PH#emStbZH=f7zx7 zr1z-~2}kPhqX(Iu_U>k=`d_*w&>IcRegZ z)YekdQ0A&U1|u@j(pi_fUzhuR^fgF?rviHC zVVfSI{ZIsOI%+mY!@UEspntF!)M-L#CHPXhKW5VbibGAs!j8(EP&}d{9JJ|>^vw}} zCLr#HMMq%F(z`=xM0z%3Ry|2gqU5K?=?ROD+Vl^L=j+Ei4Rxtc?^h1k&WYdr7d8Vl&b)3}{=o4Bt z)--{iTH6x*%`|O9;Cf88k6wTgnqP66pI)M$TJ$rUUZz)|Lq-~g-u(lRs56U)`zj-P zFWxHI(=TlLrEJLGSbtLwS!k$fZ599f*Eaoz{tq@4cv{&Th(^Ux@q*BmAk?e$JBxmA z(`#aZ#|&wQ+QE3)oked9LmE7d=7AWt0G$#H!0i4Zu~}CDysbX^6X1KbBS84+P5QH_ z+BQGEPH)TCUzz5oEV36ubwg&}aJ`|w+4Oh%2b6N4yIU{5Eq|yFrzyNmlz`n?9gphmialGb8PmDwG-5}4)pg& zg3)NO8`g(ySbrZLB}!}M$_!Q{pA5PzAMAD+7>UQ)oX-VLIMxz$v~0@1%H#?LW0mV# z8UQ9sAnc`aexAsaEH1QpGEYfFg>E;f5}4BvT$+&Mn=?%=PKT6gtM>C$KGouBHW%^q zgkBle4O75|uZsp(2H^fg#ZBJ;gktPWn`beCtI^m@eSauP08w8lE$?Zlws`I^^#$tH zg<_FCex8H9fhZ+5mvR|q#keNeHr>iJ#Y^@}dipCj^z`c{;YF@Mhs2C4bhH%g_RQ?( zay|{B!}C-A%8<3mmdbgd&8PDs>`~lbFh=pl6%wkv&S%(sCZB~G?RP=w(NbUUFjlqA zON5R5ntzSl-ITNG=jCi#e74tzO3mow71(5@m+3*-TAS+xr+%ShV)4uQ9Gh2jJ^IVK z;CHUr6LUy0Z{vy_K9?ITZnU|Ho0+C3Ek_p|9FPti6$o_)BHb&UGR9@CYg^Tc$Z~SS zu+DC$YGLj31Z6Ey>)7nbJ?E{@DOWN2Hpr` z9|`t_cLpV~P@h3>!!O_qY`#$3h&)lyflxTq(-r6yO<*yCt;wk|Ed!xgPhT+Qo^mJM zArQL6TY!`@2W{RW>e~-k>m64`s<+wPqq7^5Y#A13N{{U}_sSv)+_1J5JJQCJWDHNe;jhJ!G-cy)t#deL^MJNB9{))^03YuH?KThe^mh9gGGRdT z!YSfQZN5y_2nR~%hWHA!MI&84{t$RXCh_q{;4?*BjT80p)#!mp*T>f)LanIq@%6y- zQ18*lH-h-vVzK^cRb{2L%&+JR>f>9W)I2VtpypPaKgPFV z8<=QCZ+F6@+H+immrNM(-b6s{R<#7hocQ^6`ZMO_J8b?W---Q+_nOKvptIA_v3Y#A z&7YD**jPkz1v38AHh+dcD`~56CmbNOrhki`$%{D`b?R9XTG zWP=5g^*?I!V|)PaOHdS!ZW^2B-ATGiU>&r1kPo3F6jvmG?Ry+--Lc-SNADy2b&DUj z`3YH2{_rkX<+ean)Ux#bhRxsPZ+~GcAyf>_NVv$e_}gizs>VS7EUhAQ`AL4t=BEWf zHW(e~7q1K~`7Ab_7T5@uzHjpn_&LZKq%abTO5{F5QgVYp{*lc;7Rchx8cYIPouEqKieosDS!?9F(YOJO5ZB-!FupmQ6NPfSR zdW9HjysajP5*wQ$hD$1+n#5GHDgcGuT@(u!MS{RaaA&Z{jS!05jTD6j`ZgoP@u|tc zjONSozF;iS9f$=awSOwJoMNk~!VS3zfmj#mg_9(HBC8^s!fJXd9vCj43Ew$$Zb!|u z)hx-@Om3`etLdz*!6PAAsW9Y9HOE$SMH`x1dP3b&G0#>dsuZeXYa~3-Kg@wis(M!C zwyF@86~ibNOrk`oKh0M2rCu1qRX&O4e8hK``PAtkT4U`Zzkgb+&al*(wmM5yC0yKS zuxkKL=$^_(#2|sK!P=g!LGiM3wHq$EOo=JxkIbZ*0bs?wYKg6us%6?$2z0wnX8zFZ z@5U9fuCr}bqu|135A=g(LDyMcFHN5w#_Ce34}G^&;`x zY}KPBK0FZ1C!ZtPy|(HTvCh&0j2dRY>Q_4~6|q%R#S*@>>)a#oLzKSK{eTGw1$Vh6 zrez~UPYuH%h#My1v#^mn9y@qb?X=Y{wcByUlW?aOX96MomKbWOOA?`lW|W3-XlvG$ z$DDtDb$^Ar(o!F?)rZwb5?Pp$Kmp;gNFWqNl(;GqhGr`(KFQ^;Su<~qPr-LKyTc)f z@|y_qfZ*#yZ~82CLtAAWTRowUx~bH_Ks4yd0e=lS7xJlZ0fzAXs>V{1@b zil=P#v;@?nQUUeK-X3ZBuC1PxmNBUo?PSRrbrv4{ko0=aRzFlf0z>zNx_Sq?gKKv7 ztqnwAS`or{PL5N-_^{x7y-z)l^^|u(EMEZQm+Lfam3qlmKUF^ykFi^FFvmF%-+y4K zSJDWzHWG%Bk0xAE^|JbfO_us)#h}_tN{}S3NrnOF`MP?;Qg7Po59*I;fr;A#1lkqof$oavBjb8O>sz+^vn093MjV~v z6--ud+v=~9ff%dF>J9eAtN5F({(ml~@M9dS?P<$V@7n60+M@Su@9v3cVE?w&d+I+< zK0-@xe;~GPO(3FukzqF!B&nnc|ADQJ$r>g_BVAZQBE1^*F2!KmP=*0{Ml7E zL4%z=-QpUJheSB{cO?E>8Sd+cO^Kw~ATi3@TAgc*G4d>9tZn2Q1w+86gP9=U-PE91 ztHwYG&LA41#cAMcdjeZS;b^RDdWhtIX#a%YW+r|W; z`{<-wtdHb!jY&qKWlXk>DSyT(AkayGgR6|qB`O`w78P6Xp7E7<)uYaBY#ws0Az5h| zr!q~;j1O1j!x6tRm9l&Wq7hXtO3j#QQ>QTt;qpnHTm27bTOPg#q377fT%*`If@%vy zw=*3``Dg8tsdj1QP=yvR-#3;3lGJo4BH!7HlPj(=b zGq|sJsG>_+XMV*v%{JzXez7+@l{y&&dKn9C<8;k!z+GzRQBfxcE#nOLpkg>~{50A) z%QmVc{2kQ`71A2)59s7rKH0_+xO4n7u&j87FB{8k<7}e_TB19Z{45z7PmQe8ea1?x zyu7x!qICJZrNtE`^M4Q*8FjX?N^&#ql^87fh_Tw{4dly#Vp?Mx=So0o zu8-_A8f~M=fF-fI9E=_}nUV3jPOovEZL}DzPP{1_aB}=DBd5I6L5$dtNwXX4Y-7FA z4)YLovk+6#EPzv6napL3GCFKyg8_FU3!ZZCp49$^U|Wyg0)IC`SgCTA`vFG0z_`#d zI&I@3Ban6nC~YQ~#lAp)DmOR+w2@aT^K{upw=iIKEbLs}V`GbLY}JPijtLXiPg*aZ z(E~oucsavQla1|gqm14mS38g6Q^H+3DC`opjedP8X-&=gnlygN2cviR42b~OMT3#@ znytYQg32*)mVbGwvC}qo8HnQYqjHkDV*qh}>V9dae0Zi~Sw!2$CAM*?aT)k^b=~=$ zwe{!Jx3zXQG`H8a$aTk+l0C~3)LdyBA2L1+)Hvz7)xq7hJzINXZWdwc@Cg$#R1bg7 zxC$buFUxKV_XT~%HBcN9Siu1?u7e|H?3R_>U>i3|GJnmMGr4uGbuE%d^BFfwxCa9H zjE_Qimn71eZoX?-Mal9dI!stryz#;%7nIIhQt1>$-aaPsb{kVg287g)EM`7qFQU@Q zO%+a}RAzT_rsW$ioKZRbg3{vUOQyT-&Ad%IQD}Sudh<9V5?MvJ_a{NQiW1#pQ{v2~ zqQqz1<$pktB!`9}smYP&{1kki5qb}q@6#Y~MG4x|X8SB^Pn*AB;pvMOpK<0{fz4gr z!7ZZU?zN5kjL$>G#KPi6=)0@VX(#mIsI)sx*vD|xqEq5ppVs&2)Y{xsBN1#e$JgpJ zzRa}b|4Tkw@~+M8O%2U8wP4wmHEsG5%;aHp$$vRr-V!Nms%buR6zu;UduQB%dXKy(`_+FNSYt_7E_ZK+#Tf4er@*-wJwY$gc(u*os42-_&Onj-x|NCb=Ct-~1y2k_z(zCE z&)1d=XT4=$K67QbJ1BR@;T<&TGhUL~WV)B7Lu&P{Q%FqW>r`>>d{eR$b-B8;-A?;6jj%O`bM4|bUVLp0~AL!p2 z33LbRyMqB(rv`mddXIJ{w3sk4wo}>gKix5{)|qv|!zeiOUE3Q2{VrY-)2)w6#<;%4+%V7n!N8#90|Cr_eN)t*)XczNPJdEA08{-*XJotwX7cnIlVyWETY9!KRcGq3WVp{X zyk;4~!|wqTFk69v-dJa^n8ais%D(fq< z#m54+47v80yoQwFN+kLl0};S2hzw81gI`WEZ=YP(NQwDs%PjETB0e58eLC&r-8;J+ z)gX6BQd!<`vLGUy41-6^)}sHop~>+jB_ew> zj=yTBlLft`Z(x~4@BlnPKYuiGBr?z+3#M?&wCMQPphgyMtT~!4xXE8QVG(2cohZ3; zvm-O<_!|;J>vL;2t67jC8Ok&-(=;O}D1Ub{50KE;!!rcca)~^ZsOTIB^=M<2DM=!S z+o|LO)ASKwCR0tap>V4Zqh$!A@l8$=d6`w~gB*(a5%lYiSef?QbK?#}L> zh;v)V5d}vp=Xkz-UCD&wonU;}33GYkLRH%0sbiRGE|Sispp=QDLpBPgnwy) z&YgkHQB9|a*8EYq#(y_7XESWy;8Dk1bb2yiQ-)ND`m!&o_|s+anASL1v$TATNQAz zdZ#zX;C6I?u7)7XE*rw(?F0Q8b~e&L@!&FaKfy_&3u0xUx3{$?7OeJ}o#5!o^fUqM zynqQ5oHDc}?E;k9<=zHN{Pu`_rrf{g3aw;(CWJ>-q7qUwd1ZK@w>va9RwQ?IiW1Ip z(OjPEGqQBhIkGk0Ll z6wHKYRU}NRVSrOhM{F?EbI8*XYRtrn86Qw{N^R*rIvY_ zZC-9(0kIo~>ITh+pjlu`f*W%Cyru8||IZsI-{?$v{C}~>% zd3+lxu91psZSy>{#b;hGflqID5kulqKRD5M=JjuN%$w70);3BuH_QF0!I&Y2(lS4m z@C{FdKg+y5%`eK-6(n{#({#deh-fZNGQMDZk=VE&CB-+Oyf0NYzJ&4vp7!6P{1s36 z4=6wADSsbB`Kzh2{2>DRPpVAsq5W$f_z$7{h^M?C<;Ohz??(B6r~F5h}1!e8|)PI+PE4%HKu#h-dzQ;+`^%H?TgC4ax<*Zoh|?|k_szQ*PGssr!I@=IR* zzS(_0;J%~o`x^IszkU}=jvMb{P~0LPW_l8(J3)QMyQ$68OBwS*7Qbd+bIJm&z-O?{S@7ze0A9t%pwn)G$w0b2Bk-ov-?oI^Qy&cH0y zG=Gkk0td@z7A>brI-9Df245?vmTHafpqK5e#CXbh8t)wA8RNU|D$j9OS$KpPvz~Q? zsya#rX~{ua5vRIAs!vVm2f_dZNN@H4Ei|4rzK1s(->0?cDL`Au!2i&rq_iwfjU}aV zIxhuhv~Jr-*|dpr=>iR_$m#DcP`-WuQh&1kdJfE>j344#mbw=+{U|XLR{`BwXt_!7 zTbjSle4N@ljQoz)LE3nTV1Eu$u&F#wTkoQa%Li$DmARjG6q<1wC_7A-62<8Xsk$mr zb#1chy5YTU9NMeU1k79Z(U>ap2<`1CG!N1zjy{4#&cvuI=r%I+h8F-;ME!IM?SDW^ z6x-h1_Dg9_>Jd{pJ<(OQxZ`( zB@uO#gDA`rHeNuTVZ12hA$1IZO^eu~9E;lVl+W98(=hr{5~CLIDHy%T!RVa^FghHW zwZ}o`FwBjJrc*I%YZ6T*;4p&dO@9OePKD^rqFW%CAEh;PEBf7zo*$!i=-o*lPoifQ zmAU9y=Rwa!N%UNlM9)PodL~l+Q1rB(06j|nV1ucyyq%zYU3 zIclSO=|cJfb#dfFg^O89IDo($Znj`dj#}Rt7!=dpXLF0q;R@p)N zOH)aCKF8@Dyxw(Qz0T`4=k+h=^G`q;}xw{Z%!ipW*6x`y4v`;@e5!liRzsxR6k|W>-gmCW1?KW zwW!k#zJI4FWF`JlK=Izg-c-{w{1RmM5@Fpm~)e}AYk`93!I1CIfikX-5n zy?oYRzf|`OnePKS=FF!)fjZHygF?Qt!#oD_a9&gS(==8@0yX0ZqBH&|Ybs0t39^hh zpCV+K0g2-|9c2f(xGKA}Fgwokj&Qk1AXipdg;vR9v?$ICI)4`X)MsgIsT7UzzBn)5 zckK72ajq(~;=FVp6;}D&FS{zI&{vov1oj;*G@qhb5O!X+k4~w|+D8+s{8Bf{t;?#) zE%bv8vgth7giC?i%jqL@4c>P^Ha~-X&V=NC9(#KLGPob*&(jxm*Yn;7b_sGk;i&m*E4v0;&EvJb_=(D*6>>_zeZ<|G+A*Vy@poGye*(U&BmqV6L|? z+nbR4w*dV$%=QN6dkZtZ2|51@l>XbALYp9f7l0bSGJXxdIFHUYeq;O}{GEBU&G@bH zD(HSTooD>c_`Mdj!6YRIlaw4ZUel63njSD-H{JlnXMfTsjP=HwWNJqIF4^x>k;M~_ z!9nwB#(P~voF`hm+~TPg&#}0i=zW?BFF5x&T^#Ps5x&jbBgx6&BbUchy@(nt+FPq( zjHcXSt@!7Rr@fqcyq8(!r>U-R{1kPf2A2x67H|zXHO?y=z)PzdkHB#$+s|tb^4g}- zr^rI(vVZc28}XS}s`(|SsSFJ4D?6$&IF06E2^H`y79|zOWR3a1qxB!q^zWk2KcPI{ z1%>{el(7O(@DK2I1x6((_@<`JQioca3Jb{mfaVIaj6Y&a$IwB^2C**(t+`}4`-(cgJ}vUKgWdc9VLrqzoA8d$3W4l*tgxl8fEV#Qe3eWDR&Pfwf!DJD@Pv z>9?sdw2Yu1=s)0$_c7uFk_d7pbjd6rp_~;h;Vi0UAJua%HE<3!vY(pS282=6&ZCnS zZ+{ki=;w_;0iU_BZf}Vjfq4z%&-$wo`*&KK$#U!3^@zV{t><-5o;BWv`}NnPJ1sTu zphhUMkbv!(F1FiT1GqQmJsRDN_xnPYoMWK5L!LHy>~Mpezag0UD@53F^4CB(1$Yru z*n~Jov$U67z&l$z%mUu6on^j+VdfL+Ie%OFbAiXtFLD>Hek?sS*iX=0{M z?gVkZ=Ps&G7Cu+N_s042P32E4HjTwucwGyNep6 z>W6NX%q-r*6N|Hr#nyOheD-}*T9`H7S^#_RlgahVoxHTr=T2^6@)!0U`&fyyjpqya zg*d-7$S+GQ@6`RuQ@22TB1b!gXbO;BPNTVkCi8rn&I_oR7eX_gPRn^Qt$*S(ppnj` z7CsBn*fI)1CGX|4>29u}`*;O?4duu99D0#g(;HmRdAx=v^0_>X8@LqZ`Mj1-=N4WK zZM=!wl0np7nqvF|#LwnDe7%b=AH7JMjDH&c68+5=B$xzW&uJ!^&P$Aci(X4=E~o!{ zt|f0I|NFEY>S_81G|Mvn!+$*YUzGJe*%lu;20y{E+}e5PBNjiYyATy016!NkHlp{^ zT|fC{s%uTpf`Sz(9OLq%V<=u4%I@cT1a^#T=e*|mO@7W5swEH!5ei>v0skh>zkP5B zq)i^d@g)Vv=i)@kFPL3O`>-^zd!*4F&e*hhK zQ*NOt?)*Oycw!6xX@3___Jh=lwg17r;G;gQHUu6H(+t?&c^uKJJ>3DHTy3ShTKW1w zuQr?JIjf~Snr0j`$>pb9;{VbN?O?rwHCH4Ny%b%A962Qgd@O-KFU@v(XqJM5wy5#tvgKwQzVU-_kyqlcBmS!zt_(UQ0t*RYSqG@`9QO+;PU(Nc#MmrcEk z7L=48;fWn3SYTmXO*yDejjL%@=6*Fprzb@3#ntS)$X}Rc##OO)+b{*jE5yM;NmV2( zDy1R|KsU-*Xn*+D1n?5<9si$lSS>&h=FE{@pcW3QMG{{XnuDr3u9g>OBYsjV2i2;$ zS_5?oFsiX#R?yfkagwFs-c1E1g=Pw9T(zK!)K4lY%yQ~0oq8FR4L|bTj)Q950kyv5 zF|}TRZiuT3&HjPF5g z_i4I=?}e_ukB;&e=xP2U{h05k|Kol1I)91Y;;+!#`~bbf57B%4F#CBwR`VFvbC75A z0iMf8cz*$Zooo0B%|BPuC~$9q_B9#1FkDuwpj=(2Xd@MxO6OjJko`TT2>8=9N7b1o zw98RiXl9At7p`)-@GQ=Cp;U8@nXS37h7Bm?`QX-T=&0#~-Zz1lubGmK&(iWapK{NG zOImP__Dc~lwf~o@M8SMOyLI+Jk~AwUwe~%@eSaGyZc5YXZHe@nIt7c7wDy7hYHQhH zb+K^sc6`TGNLZ>2OwXtg_tB~*EhslaQ1DTDSlz4zsr;x@|IuXq#~cB3GjQcct9%X! zM1TAe%U8g$Y(ZSqMjfzYP~iKthJOIa&(JognGnBBJ7BjW{6o5we?-^ukLd<}o^Iry0JksD zXZc0i$1l;B(f1MbeT-j8#_)@1yy-V{^?zEcOxqjP-t@=4wWNU||pP=JitsQyU@`|fZH$pYu3nlw%Tz$T&Oh%g>hIrc;FUn8m z&>D9iR2vllAXM&`08%_rz!aYlK=G;=R1XMXd@hjBxcVAwYM}|>&`FO$#Z7LIP!_86 z>k`d61^JR3;aEUFtPbn<)9HaM|9=u@_SaBLuhJ>}J8I(J(*}Nx?&LQ>{MYC~ev=OJ zpXo6FfsXJWG5SyR48H}H^B2twtAV#u=u_r6b&vd6X6iA=n_}HI&;{m1a}vn?AmzeK zo(!BHAsfsv1^u3J16d*b^R7GfSJy6TXyz$NXj5IL7(-ck^iTSdr4BbBMt{wLT?=zR zcwda=4X&}ATjpj73JTOW%8WzmTZ*(j@JlLDedj^_dgj5TyR6TV_-|Cme@7tyuE(U# zO)}|R^Hi5f=ju>fc|z^EI@ESnXp$<-*8JrIguUi8y3L8C&FSE^r<05Q0Ied_8|0kq zp!!}De4{Jl>ig|w<%8-6<$ne0$5IeaE~-BY)KAhYu!R@fkEoa7TB)B)3=&tr5A`)qTLITs2&K~1OsJIVgVSbx_KwF{#JLmvD* zo4}9pOYjt25WWY(@TW2-&(n_Yzqp4ae)%3$@5n2z{vl2O5-gM+QtzWD>^mAf-~V;K z&BwW|!zeUc2MroD%&M$G!zb#VnGYGGP14!gxH0aKF;P*K?}#zA)hHN;!cmAD2aPii8`auu?K}2UbFp1$Jq0hyI%F(m8gD-+#S*u; zkBTI9{1i<{R-|Q+T^^IoCAh560-K@e@EJCc<-C(@RcHxcVSltv3>eGW5u*x+`GmuA z09iOpQ9tLvoyg`2Uc_fY`8pDHH_ZV_$B?PUlKj<+v1%MmQsZfwnn-h1A(gAiv{+4{ z6|mDyYASWAY1FNXs9#N|%he3JR?Vb))hv2U&8BavIrN;G3zw>x4K0D#r3n=IL?(1*a}-E<&A2oxIds4C9tX-F&8bhJSe`f}2KaHqXKw7GFtIwes*ptXR(}k>iI>=^sMGm1bog6#bjySbOYtQPt$a+?=X#W zjib&7>Sw!UjIoSKmbuI_rh<(vqr?rIOW%jvDi+l@(jcNHZItueOnD}_L(hDMioaj} zB7+-}%}EnSQ^V*Q7JBSB!$|cFpU*)qxLQuTUzc2ciAE19Ps|J7gL##84~HJ zZJO7|P}`F|WV z8U~HEjUu(!QX5n0VdH$FL&heB$7VS`Uy%xywe?cxl20|zc-8E&UJG3w^--z0O7rM= zI@LTU&3ZXCV!fONu7)o(A+bP&6yn|!9dR{CLn)MFP!5uzEOfTS*rro$t%-thF?3gB zS%0Q{TVE{jlN{kZIPRFqns+UtkB$Vgcyj@C@M4$ z8#}x>5*fV7hCwXB7xRX>X5YD(Xmv*PR zv|C>m=Lt>aa#jhEiGY`4uqwttxpQtw?H!VRS>>D<$-(kdCmm?eitQ{nhmL#kK6`maeI9yub{OIfN9A|0ZMDhzLtI5m=Xv^Q&`Cbk%E8i^`Uq~hK3GbeoH@s4Q&T5Qqg^bf8j@Pb z69eSPZ-(8B%PR5UM5;>m8+)eYjeoh~bV*YUIc`?FXq4LR$>NMwJ*HkdjW(N%Uju56 z{2?=EB8UrQ@@#O9qWA@W%6M z6Qb~HX63PQ&+NbyZRY%)oM*&9yqHsejg|b)qiH z^39JI+BZD-mz_|LLaqXkV^*XO)Twh?^gee|X zR)KL#-i$%x)<@Nh0^@e5*ndaqx&q_l`s2m|;|~4tr2^wl{jsCKxLbc*RbbqsKfX|4 zd?s#u?onfpFavuo8l6D}!0b#q3*yj;(nWMO1*jgecnftQj_rnP6C=Z1r-gLAiD;BA zrabd}V)H`%yhuMc>u0xqZqd(e`gyT__UdOyKl}AFqMtGS+-dH{3{F>?A2P3UzploY zv|MN2K+f&H=jbK#M#|wQ&6~_yvU7|QV~qLH>>Tq}^EPuY75+a^O9u!<3+pz_G5`RT zY5)LGO9KQH00;;O01mM}v$Hdc0s{`QK9fNQCaA~!*wXN;LK31Zg_C402NzQ^5}Z zE`R^DE`Mm-w3Y2U0v$1?tn-7RU~D0iRz78&mpqiMlh>deGMI)(f?EUAV&QOCbXsGu zE3h^e?20nwYzxF>u{jt8fwkq$ifS;d+SG0`i@j(&EfUxk*fVXFKNbr_LPLDnIK}Zv zlC9M#k7>jp?Q^JrhUrvjP!SDh%1iFcq<_c4iy{&Ksecm<1>55)5stl?~4|XcA3k$_MO=+N0sF-dF(B+7AAdPf72RjV@CRs-Q}y?0;yW z#~<-yV5Y+KriBoaYJ;ZIG+^EB-x;V6hdTVR^}*P7yhUUFPz>x|UY_3bY-%#hO)h7K zl*O5H!5O-&ldPR>&>Wh}T7doKAopijX|{%_rmlh5Qgpk=!(Fe zm~6YipoMe+Fb|<36+c@N79}Z)Ie#^&8TAG&p$4eT)?gRNGc{#c!vBr@>;h6$Y)ORVbsWM6xNvI=oaztp=^8HIRdja5n@Y zuqHeR?uzObp^KhyB0;Z^>znBv4%Yzfu2|}9P-dkEGQc8jdTRcI{cx@v9k6+S*W+G zYpR#F(+m%V@IB^_0P?i&qkpK!pv%;P1ACy(7!`_B?J%E#_&5$r+7O9^BlZLeiK$mA z<1VI2nRt{*ogy?tO6KJT?WK=EOgh3nFfr$(nB?S=Y34s_(3Nx*leaU_6^I2)OEs)K zwP_(7NUvPrwFX_M7TCSBGZ=|xgT(a)-9R_OEKc-Cqk)K8-I8F`-+$f}fc)@Aoo;3- zP0V^xyp>wGmu`}V(?ho!beo)fZg+TBz&4cf%N+*YDZhB+7dfFq(&TJBbdN#z%Gu|e zv$uPB=suY7V5p}z28;s!?i5ye=o3t%!o9J<8hGgdeNv}S8T0@>7`OOJp9+N*$6=E&Dg_K3lOWpb! z)BLk?XBo83LoZ-XriFmOrAgK|@YS>r>0iC{5`9ajZ%e!VavX^e<_%X8kbYo0>_zS1 z?j*z1l6u2yeSeo}O!5bb$+}=P7+a|%%S*4&_jUS#LH|Ynoi+#A7;|v#_IJS$t}M?q z$fo8Y2S_s8rj$;zWTKFC`jJ6Drk}uq_&cPmGhHw!Cv5xUAh@+R)FDTiCPNe0Zt4Ah zMz8Ahnn6FOUnKd0q`{$dTVZGY9f+99%7>&VMax6a>woksrm+s|-4qH1BK2J`bGDv( z>2>;zLBEwA+Y6qzKxqBj0BB{N*b%DJoLXz3rvHtdpl4olh!F=H@bVIg~UrJ27eco z7Q`PaQ-3DXG9^=`s{g~Ff6~9O7TG%v+}zB1Kc#ud86yOJhu+ocJ%iq-517W;Qqut^ z9}UF77=NhKAL*<&%aA+w+BJ<^=EHV3r!}@3)ygHGMpnWMXk%ehU=p?|Qx}&90e{YkCmtBLRgqI3p&lNAU7Txh9_LG8 z@97DII;BtERNvH;J|T;It?V=mtE0&tE@GPZVHs+!2&{aQizS&|I*))OiO+B?B)q35 z9Ek-w8$umnNzM^@WW%fSNFJs0XoJV_*mw#P0+wrA5r5`|u?nb3D4;Y3e2NRS)gBt8#LaU4^qp?*HtRNCYa5VYs?EgAR zXr{rlcs7=gL6RZ>Tc1-j1DeEh4W7sI6Mvedq;$%Vnv@*WdALTBs7-i;jDGhF?y8V- z82QdrMs7d8Jc(I@4O=INMfNj0WBhpL@l`D;q#~e1pKdX>lPL)azj+OC^@Zq&jYHg*bOYMuH)~lz+@L z*L{fBAh_eTR>UX68(wel1{L0H?dpwgFGPORtMjIK3TgqjUdDW|92;dUQpcAVyhSE+ zSzUq9w%B&mvtJT!m-3Vjg$xsAoAr{wQy$(5pDo>PdiKHF4GyZ{+zf|x-kG#3vcw+? zczK7kUpqKtaF~0{G;>X`+srDLXMZi4y6-MlAGMNO+k?KxycV7kNI zs@IZ2%HzFK#y%qR#pTO0FjVJ{!rmt4vNzZ>ZDX)UWrchNJyuBhQfaT?YYe`Yufx2+ zqDatWs?+~BgrtjB9IDOX>-h$qZ#4KOx$NSMt&klc^>2Z(Xy^*aTrVoS-G5^6$K)13 zj@$yUKInW~+)g>?*no*#E~j>fGy``sO>;&M&PKI^SOdP5mKIV0^=5-f_Zs|hMtYKK zZ^}qF1%FmAh2s+j@8<(pek9P-X$XjpE~H^Hsx4Hx89!w3r{g;ZGEkGg zYKC+um&l*b8GKL%581GW&3~rkp--Q|k4Wr1kR~Okg;XS|9ikb9G~9gqOd%D^VM^rB z2*oBDP?wr|{-nWA$z)Y-2QKzU19H#8!~GCuDW$TMCaHBiVDM2shE52kU{X5+dsc2W zq%irXebpDpX-{zN-#Hv2r)n)oE$Ypk*yC-(Jxz$)$p0;(F z!{6oa>HLbp-}hLtg%|!9U@j zLIJz|J&AN?kPbtIazc%rT# z@-z3WwwY2%s9FAx!EfVSn&H<)&-SsYIIqBz9AMULT0s1=mJC3DMDtwgV16_)SE-ES=P|H+NRWCh(=j& zSoJokWrkgSbx<6Sr?@XI?(XjH?(XieXmOXt{p*f5^do{HwN{hfk>@~ z;dXTpt166pU0d4()36GoG?qppN;;SBE1IUdCh60=YDmS$vQ+#99>87Uf>o+I)4)sG z)O>|{^hfEB_mr8O=AREO-m|M)u1FQ+?nN3}v)d?I_d+LkvkS z_3JuJG4M1WZ0688dQUELh9-6Zja`KqTj;SFuJ@$+b(0aO%5YHRXlYm>K!EP-bn7zO zJcF~0173f!ixNR3=(N53H9xB|Mo>*JQ^oL)S>K-EPjywZOtrwrv5|F-o87?U7mCzO zYUR~;IHd`4advs#%6fjN&;Z_byMRt&lmClD5|s`O_(i9Y0d-5wW>*R>wlWvZoGBVy zSHOskKD6y$o<OPrd zHvlCdXGowmW;7A^K38i$1z)5gg6lMJW`-yPV1Rl_To>?S4~FP;_v@^-d(mJE$q8t0*$1Y_ewM;IWS!}#Sqxua!N16l3D*h#*joPU|NYXs7yLSszbNOcz-H^#>A}Ov{ z0vCq2KebJbcY28H^Ch;w%A#weV8}SFQ1n|rm~vt+S{}u3*Rf+w98JQr&FBuoK^#;p zWj3uIEvt!N^;_TNOi`L>Rs+6VHdvgab_0FLLc&6M>)_jDwV)(4 zO8HHx(*Pu&g<-S)n_i}ql@8&WqqSIGzKQ595^`T0Unf0d+CbD7C#4bEUe(xeYM}iRV1QQsrkEK z80Ln6^nq+~WiEDHJn(@9T!{>cGtq;OV8)2U=6PES8>fkhdQKY_i?hjD%V%vE>uQ~h z@jff24*|XGU8afB-`XCU5HW2;j!XqKTA49pt7*<>hbiJACj85ZRB_qNf-&8Tv_rS@ve%527E#LF<=fB-`TU&I3W=kg4Wc z))#O{{X4MizW)OC%LprMOWIrCb2^z(q@>^-o>o0O_PMPRij^TWXZYBcv%S*xc7oYc zX6YDYU~`!>vwfp&#ckfAK+9zZR)SoTWd@F+4ey%CF7wvlbtXn>Zc2y?Qj5mjk;dRQRksxkm+xS4mSX1WJ;&Dimt zDtyB?;NlEnxensPT9&s)4|2V`L-Q^WF3DR<9iA4L)7Q?AE53Jiu8_LXKA9oJ%x15X z)(KU#p12c9aemg;b4VTs$Bpsz{Q?o>CUH2Ic$7+888NtW*6+lQSFlQW(db|-jOR6o z_+}(kZ1dQtu#6-O^xpN0cv8=W%Xgf%6BTW zpxJaZQXEmX1(?@i>#_}YaZN(gZOxBX-`!!pJxA?Fi{F#Tf0YO$O#(m=) z!`#~kN-5{iTdCG*vI;->ysuo<{Qzc{-VI)z;`HiqeX}3Y(RHd5yBWllgVBbCj&XQM zu{95`qF>a}**n9*7Lj!p&4T+HL;IyRu`g6V=u}#A7jV_xEWMkX%2a+_DT?P?61wT( zg-ed@>SvN)ie&w`(b{gdpw>wNvl()8*WAz^W>47`Ix0WI=Q${b_^siKQw=|!iYBG! z`&*Kr!wVU0Hu88tWRC36C=k&)M4IJf@=@M004+XmUzFFX#sBh8I)@aVlop<0o8Avr^`- z;55a*x$;gh!d?{bXj86NTAmmGsOz^;*IcipJTIQn`){N7xi3GZABEyCT;qk66dB&7 z5HIT3^?6MHjQPZymBf)#x(;A%)2hzFL7^Gi^AZj-U#|XX5Ll4$k`)kvV*eBAhRIC* zD+NT=<<5|-2bV8wJ2$L+J4f;=xJ_|o;q?}7d0m|g-f2867xi=(QdR!rk?OEoKf17A zXX#8+ii*3yQ5W=&T8B5@be+dD@rFOwtSHy)K}F1+(crOSS*~&)rZm0&^jB5gJ*NJl zd17O3{z0a?A*Q}$?_*Db!PCCaQNvfbKG4;?yC&(gM=#NdqUBVDJT5W?NmI4L23x1_ zlbWGhaPXATC!B?;kt-&MKKzA)Z&NPw24Wd%aC17NkOJ@Dvwjr|DrhTcrHlK@=^)$@ zD6JKd=6&vWLz2}-GnV9RR9QK3`^hu(Ht49CwQTuo9nJH%2uty?kf4&aB=7Lj;K=D4 z!m249tpY;`7jI{JoKIKG+m^K%|H)_$^(go$GN*7l5ux!RG~IhmN1} zSe04516*dp>eD)Mcuw<*nS2JzI|woIme9>rQFr0+JIf@He#z|4IR4TB69Q& z7!0Ewj=&l$A+@DP-L9q=cdIi&w#)izif5-_#7vlApW`O$g#hZ`TOrONqe|Y4+*$>6 zuFJW%6j{{1c%CWo;qJVb&mrp(54;ofE6fRuPCNjM_|){X=e%<7EwCA&!r9i~{g8{; zXA(je!anrxi@@`IyXgD-Bi(7YBquqdNSGArc>_ZJA4m?Q^P3C}JryLgcn*7_P}R(D zBBV>bLaF*%JJ6QzlkxikaZWw3D=9dMEbn>c0qE&&Zj(S<`-kXlV9PD zoP8EhIlGR_`K=-+gRB|reurLyJ$VwHF^-(b9-7Fwkc#7l5O}Tu8PXWDMjpr~kDSbs zdZ^x+i?dYGEz%U``q^dV6id?-G80rzsDe3PKor))XqtUH)q#B4gPXp;9vF6i&FifF zebW4oD7PMMW}^lLTN~-T{bfUQViTzCvw?gSu4=>d_4m;RUKYz{d7;A1 zX;Aw4!oCxuS_e{;)uJ3D7~+t8N0R+gieFIEfg*L67^lWqsxa0Tsn3OP_EJ~8h; zQQNwe(-x@`_wj*Sc_e9=A^KFfN%iFc?#oG(Q}mleR1eK<-douXxJ%^eqVZ)7K=#Ho zJwG!`o7tC!m^TnD6ahNON%1=2ZUr?t5 z)4m1qEoWz>OA8jS4)j^D;xp1QRyPAx%d^LSV{6a@)*USHeAVied(1-5TH+Igw>jIJ zI2;;Ro_)a9k_HUHEKj9Hl1$~r$3?HG1Iaj)8FH@vG3S_8X$p;KsmwQu2VCm!N2SLB*Ds3ZtSi(@L1pd5iD;Wg^9%eiZ;Vk8&w0hWq zCX;c>MVh@Q)8y7PXS591*yixSMcjKvfW2 z?FynvU0?46wSv!v1tH5jDkD<-cM?h&({~F{O+jKi3fiDVe&kHaw#D-gk7I%)2SqrLV3m0{m zqI;y$5tde&nl~sKiAJKCJ{$iLl>I}Jq#K31rq%FM%58&UCb_>*iC|fE+a&IRH4WIB zV0k7}eRMKn?J)yo#?dhm(&Q1@?BC&syXhz$HNFwg&AU+%^;S)RePv}nRO8aTwR(Bx z2gl*VYO?wd2oz@$ZTSPoizuUMI!Ti^0poUsC|;-;Lu7dYUVuBOkoNdJ+_i!t(M1tC zcy`bOmT3>%=ZI|29cfR5yLA@y;e=#c8gG%mKgy=uaU>&a2_3X}bmJi!`{_OI&D1>t zgQ;pJ)rdJE4TOgpIhSUWKpQ!orLJlKUU|k3p0WSDkN`RKc_OPrM2F*e!Sj8zy4{%= zwR@>h-uA75QUpiPQ{E#dzDxGU1cBheA%j=Om>sm)2SGUp3Su`;d-|3=&cu0ALf_>c z%ec`7IK^AgrPhRjE$E^Qns?E=?!puT&8ejB z=b;Xfx1vDh)8naPUvMPmK0YS6W9d&VSW@L-$$qIThtS85Wor}eUU*qEY5J4FYpKKQ zPQTUmf#$x1fqRa_va`vuCQq1tus%&S%Qs2MRyRF!eEh6Lxkao`rroWJzqh31gvY)b zL~x;l*PObBn&)SEsMV>8Vwh?vH3ng&MRq>%2c;ZNSmeG7u9|q!Xna$zn_HG>)(>v%b76_?&vQ6K)Qvh?6M$H zATC-be;?m_D~Y#spmn9F^I^%xoP{7=0|AkdR`1m9K?qq zNI!atSLS|711%#z+>CeI`Y}CXb8vTAXCCl`pvr(pncC?)80L}cZ{DIQp>idJGqv)t zL6=BwVO8x{pzOs37Q9uKuAVpZJmy9^F{9cJ6zZA#k-Y19lHPgG8I5D+Ohcld9Kw8C zVyzX|o5-WQJUh;emw}t8M;gQ|I%(R$f1dJ_wKJR?x;Y*8-t zGOZo$lb-PzrK^Aiqs{pE;{Wh8atLp0Kiy4l*64F6M=Nn3k zs2nh{n2PZ&+fgmsiPkpYxH^f~HsrY6GNT;I9*`^WG?t000zKm`8M7Nv6CfNFjq~ba zv$lVjDJurf;R>TqosX3x! zI+#iVD!0vGj~gX!G1G2!)1JZ`b4l11W&ao)wt$f7c-erpZ(s0{lz8L>fxClaXTn$P z<&Q3hV9?6m$k2{h>)9>q-7t%tF zJjywr@_VsEm0B-vME1QtRT}i(M=)t)E=KJwaz+p|U^}c{OhA@#0DqVjeFe&e&^RQo zrNPG}+xCFd%c*P!b}1}J091W42uYe#UUXZCK1zDwmq+c8MeVRLmx$tl72H6(;oNfl zDXb6vfXshsSA>$|l}YV?4fr8US>{0(=5LQ1PfyUB=X?2?+=~!1)7Lj6-(9m?EM6nz zASZQdmhg($M$$UL*S_{4?12o>GzjyD`-;}8%0-9I-#EX$B!kmrFcNLCl#tJ_Bet>@ z9d^giHUzHM*Yv2dLc#ji-UtBbg~a$wiW>&jAjWIx7tjdSnTNGMWZw0oc{E)#TpZqM zhcmQZ3LswyxNmMQ7|Ap&5D(7w~V_7M0SOC<-{|;@nlZ52mzL^ryJ?T zA!jE1O_!lNUI^Bx`YX8{XZ~0%p~DBUx(L@*KXQ~wF5l@cj3HCPyM#PTCO;!4xk$m4 zBm0D`OS{1>h=gn7H)xyMJC$PTgH1~&w=q>T8nX#|ZIM^&+*OSBV zM2Gs3b~mQChKqTV%g3MeaOeJLBJJL`Ds|4y;S8yWz|P-y6coI}7|^_71q?9spEvrh zzyqBZ3?HIE0qIZVK06TVYc(SPIdc* zNSqiSK`S@y`vrCuyf@+#*;!z#mK%QNsEx(I9u<6t9Q9sP2y*3&tb5A-jv7Q}BRgW7 z1fm%UI=B?FA>J&FI6!I`c_~)!395H^tK|+*uv~blVSc(o(wrtyL)E7U((9fZ+C5OQU8mK3hL6;^ohCj1bRyp{^ppX>z!$j; z8S4Y{fz@I8It$t?%!}f$Gnix===4D>J1|!)wQAzyHT&C%W>lo7+rSky`!d~jBy{9U zYixZ~Ay9qjrV{_heXzv=vuY|vS(@F2&=oG9ewFU?c*T(`HjUqs zFWJ5aNi~10OJNeRZ^~hWRwapeK)@sD2ej@k_M$FPfZutlLFR6;u?r73SGkBd{?*uJ303>fV^42=ORF}7EU#4>IdHs z<#A^paam)9x;KOMuRxW<_8;~g)9yKIy|fkuBW9q$^|{Y#c^ad0gCYCCQ2o>*gM<)I zthn8uB`#zw_0J=DXG0$7z9Cup9%m}^xq>2Pia&}3O~BHex4UXv$H)_9nB;dQA~t^e zvwtsNi6Kk<8ooDFc!;IA)_Uy;woQCS1A;gsXE7fR7rCO^v9jIA9c%vVOa68RwF}^@ z9K36DGv&)N8&YHOfdV`D?Ss}Ny6b*;0IJWu9#wTZUr4ORT<6)}U}luwVzP~2zCPZe z{>sv4#|2+qAU@nnKe9q=74;|`l%y9RNigHas)d5zaUnRIKz{k_dRmK`yX2kX)*oYP zg+t;E+L^6IxElL@$!4AE2Ec10Mje*uaOUkUL7(LJAMD-lvTPCvCJ+?1-7kaQlN1XG z5VmgM2Z#g^EH){KCmZm&cDQrKIl%e1K0y+-4EWA-A|dFJGrZVE)kKsnD#RK!C9l^& z7WX=dJ?+APyGq2fOJM+l;oE;tQdU*3o+W48@W(~uBw2~Qx7|=XgnqpquY1^*7k7M0 z@#miJumXI3q11b9JLDu1%b^@=cNMu}9-9pZL2Jj6oU{g!qy&+~^dn)PtVv|54@CuE zANaw}Fag{UK-zJ7HOEp=QswYH)%ZKL<#%mJx>Ol&M9scaQvwf$vomww>GU2kKEIiU z*%Zs!Q|eP{vffLp&Zs1JnOY%1RKi!hfJ8&+woW65e1aNW?l7kSOV${Nz%6v5mE0_I zk_sJ%dY1DevVO#mv$?3y8QC#RiZM@2Bk&pw^l2BXBYD~N=@6%pw0LbpO$0}`50qLK zz26#Iyup>OtvgUZ$n|@%O%@ln0>l$BsU}5_TIo^l68VAp*dkdykOu>{n*e#5ff?tM zw56Xn&`kWL_ETpe^rv6IsBcNi#h8r2o9FxkOFScP$xp?$D+oMe5Q!~8K7Ujg6x>La zo9q4swuSLt<@=tY(h93tIT>$wW#i~qwU+EjhDr7?Q}v&nT1?fU4Q4aOxcH^Hwh4G8 zv8xQsO4Lbe+6;2&b5*h0ORCW3LZuQbzJxZjX@MnqOQ(t4hRT)sqf~LMCEZpCSCp;m zgezz#10u2f&Em{4OcAub}*oO2vEzW@R}hWdvO50f#_#9hjZOU)u~w1F$z$%AZh~ zLRYk%1+=&1M%wjpclX5gUg6t41s*pUKA#5>Y06r@U*UbQu}+qmv@~3(Zpg97}Fv6BvP_m+7N-eaMY7 z?+9fMmX_17!uD_#muRpnCrp}IawwMywz9GYn;|*OB%A{aC^i;FVY;i?^g2CbfEi!8k)ZKN z0Lsa^P(k^pb^f(qU{v`S{{iE;Lu;Q?=2&VoTqe6Q$F|)6I zlgcctt(_8G5rd3|aV>~2_w@KSpCWXgY*F&zgG|Ri7IES z2kNS2?oFd-h|Q&~+!Y?T0Png%wLQm{EIbk$h#{8d`aU0%OC>30&aF467G!N{Rb-DN z(X)tca51e_o*ej79=!gL0zXnJw;{QwLmy?AXVgj3(w$N7dm$?CfzQ0(RuU&{t52#E z9z7-BL^C6HWzHn|l;z9!H+oh$S-h}{;)RR(`xfHn7?+hZ&!eX*-=eRABilGI^O?s~` zrJEJUu5C~2IX-Rkb~3Mb#hbxT5ha^?$F5ON>t#Mwid`C|n`H}bOO{I(JjG3E^=S<{ z6|JlF{0(htbYHq5f{-Ds#^*PTe_7)<@V06V%m6@=#s6iE%b85U{L31zBQazDFZ#F= zh>U9b>%TZ8zrTwA zdiNjYOWc-)*#B4hlgLAK`!6OP4gmP_9|!>8&NPn6j3y3bi6;K9_5a)#>i+^VfB*n7 gc?o@WNoAFP6uv9UAt3%MNBUby{#v&DD+U1mAABfkng9R* diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index a0e88df..f75783a 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.5 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.2 -bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.7 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.3 +bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= -bld.version=1.8.0 +bld.version=1.9.0 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index dfd768f..3030d78 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,7 +36,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 5, "SNAPSHOT"); + version = version(0, 9, 5); javaRelease = 17; downloadSources = true; @@ -44,7 +44,7 @@ public class GeneratedVersionOperationBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) - .include(dependency("com.uwyn.rife2", "bld", version(1, 8, 0))); + .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 0))); scope(test) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))) From 3777e7b993e8abd216f157ac1a4359a36a8a4d1d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 21 Mar 2024 13:59:17 -0700 Subject: [PATCH 04/63] Added JDK 22 to CI --- .github/workflows/bld.yml | 6 +++--- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 2b0ba38..f736169 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -1,6 +1,6 @@ name: bld-ci -on: [ push, pull_request, workflow_dispatch ] +on: [push, pull_request, workflow_dispatch] jobs: build-bld-project: @@ -8,7 +8,7 @@ jobs: strategy: matrix: - java-version: [ 17, 20 ] + java-version: [17, 21, 22] steps: - name: Checkout source repository @@ -19,7 +19,7 @@ jobs: - name: Set up JDK ${{ matrix.java-version }} uses: actions/setup-java@v3 with: - distribution: 'zulu' + distribution: "zulu" java-version: ${{ matrix.java-version }} - name: Grant execute permission for bld diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index e63713531201055d2d5d71dfd5204bbdd65996a0..82762f1dd24fca63ea5add2e5d08292f16e8a107 100644 GIT binary patch delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6i6yxcdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 wGi1{Y!BUe0GweYElP705gXx69e;#vM+x;)DP07`l`ivR!s diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index 82175bebba96ffd9f59db271360cbbadf6dc0066..82762f1dd24fca63ea5add2e5d08292f16e8a107 100644 GIT binary patch delta 131 zcmdmfm2vx3M&1B#W)=|!4h{~6i6yxcdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 wGi1{Y!BUe0GweYElP705gXx-sRnz8GF8Qv-9 z8Nm$MG()h| Date: Wed, 17 Apr 2024 17:03:00 -0700 Subject: [PATCH 05/63] Bumped worflows actions to the latest versions --- .github/workflows/bld.yml | 4 ++-- .github/workflows/pages.yml | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index f736169..c0ba763 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -12,12 +12,12 @@ jobs: steps: - name: Checkout source repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: "zulu" java-version: ${{ matrix.java-version }} diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index f6122cd..bf43624 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -30,14 +30,14 @@ jobs: steps: - name: Checkout source repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up JDK 17 - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: - distribution: 'zulu' + distribution: "zulu" java-version: 17 - name: Build Javadocs @@ -50,8 +50,8 @@ jobs: uses: actions/upload-pages-artifact@v1 with: # Upload generated Javadocs repository - path: 'build/javadoc/' + path: "build/javadoc/" - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 \ No newline at end of file + uses: actions/deploy-pages@v1 From 5beca281e6b262f553a03232c01082da140b3970 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 17 Apr 2024 17:04:56 -0700 Subject: [PATCH 06/63] Bumped PMD extension to version 0.9.8 Bumped JaCoCo extension to version 0.9.5 --- config/pmd.xml | 9 ++++----- lib/bld/bld-wrapper.properties | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/config/pmd.xml b/config/pmd.xml index 1039e40..3d3203c 100644 --- a/config/pmd.xml +++ b/config/pmd.xml @@ -24,8 +24,8 @@ - + @@ -35,8 +35,9 @@ - + + @@ -52,8 +53,6 @@ - - @@ -107,4 +106,4 @@ - \ No newline at end of file + diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index f75783a..63d4bc2 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.7 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.3 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.8 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.9.0 From 599190aae1f18cc0872c0108ae58b76f057edf21 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 17 Apr 2024 17:06:22 -0700 Subject: [PATCH 07/63] Output generated class location as a file URL. --- src/main/java/rife/bld/extension/GeneratedVersionOperation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index 628d1e5..df5c603 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -144,7 +144,7 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Wed, 17 Apr 2024 17:07:48 -0700 Subject: [PATCH 08/63] Bumped to version 0.9.6-SNAPSHOT --- examples/lib/bld/bld-wrapper.properties | 2 +- examples/src/bld/java/com/example/SampleBuild.java | 2 ++ examples/src/main/java/com/example/GeneratedVersion.java | 2 +- .../rife/bld/extension/GeneratedVersionOperationBuild.java | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 7afe142..86e406b 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.5 +bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6-SNAPSHOT bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.9.0 diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index 80e1fce..501f590 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -25,6 +25,8 @@ public class SampleBuild extends Project { mainClass = "com.example.SampleMain"; version = version(1, 0, 1, "rc1"); + javaRelease = 17; + autoDownloadPurge = true; downloadSources = true; diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index 6e1506d..82cafb7 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -12,7 +12,7 @@ import java.util.Date; */ public final class GeneratedVersion { public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1708978279960L); + public static final Date BUILD_DATE = new Date(1713398927971L); public static final int MAJOR = 1; public static final int MINOR = 0; public static final int REVISION = 1; diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 3030d78..14301f4 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,7 +36,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 5); + version = version(0, 9, 6, "SNAPSHOT"); javaRelease = 17; downloadSources = true; @@ -78,7 +78,7 @@ public class GeneratedVersionOperationBuild extends Project { .license( new PublishLicense() .name("The Apache License, Version 2.0") - .url("http://www.apache.org/licenses/LICENSE-2.0.txt") + .url("https://www.apache.org/licenses/LICENSE-2.0.txt") ) .scm( new PublishScm() From d6a1919b5eb878409b130926f21aa6ea6a435bee Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 9 May 2024 20:54:52 -0700 Subject: [PATCH 09/63] Bumped bld to version 1.9.1 --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes examples/lib/bld/bld-wrapper.properties | 2 +- lib/bld/bld-wrapper.jar | Bin 27319 -> 27319 bytes lib/bld/bld-wrapper.properties | 2 +- .../GeneratedVersionOperationBuild.java | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 0b615c1..a2969be 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 9e8368e..d136e4d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.0.jar", + "${HOME}/.bld/dist/bld-1.9.1.jar", "lib/**/*.jar" ] } diff --git a/README.md b/README.md index 460ade8..c128f29 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.9.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/1.9.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-generated-version) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-generated-version) [![GitHub CI](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 0b615c1..a2969be 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 9e8368e..d136e4d 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.0.jar", + "${HOME}/.bld/dist/bld-1.9.1.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 82762f1dd24fca63ea5add2e5d08292f16e8a107..18ecfd46dab1a4629e6b18f4322a1aea5e9a8a8c 100644 GIT binary patch delta 166 zcmdmfm2vx3M&1B#W)=|!4h{|m=AOk9dFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 zGi1{Y!BUe0GZYnB7y`W6IrKB%X0tOeFt7q~fHxzP2m{>U$&)jjLE0wY%VOdrXNgNSGOa{$#vfXtd)lVuG6ws10R delta 166 zcmdmfm2vx3M&1B#W)=|!4h{~6i6yxcdFz;g)W$v~V-UT0vvD^QnBi!~t_Nm#r<`X5 zGi1{Y!BUe0GZYmW7y`W6Id(?Al3{0HU| Date: Thu, 9 May 2024 20:55:18 -0700 Subject: [PATCH 10/63] Bumped PMD extension to version 0.9.9 --- lib/bld/bld-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 6a64fac..6e26fef 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.8 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.9 bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= From b725eb7b2f80a39d20b827dc2eef00062ba1a0cf Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 11 May 2024 15:35:45 -0700 Subject: [PATCH 11/63] Fixed class location URL --- src/main/java/rife/bld/extension/GeneratedVersionOperation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index df5c603..484ccf0 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -144,7 +144,7 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Sun, 26 May 2024 23:09:05 -0700 Subject: [PATCH 12/63] Bumped assertj-core to version 3.26.0 --- .../java/rife/bld/extension/GeneratedVersionOperationBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 2fab47e..49cf2fc 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -48,7 +48,7 @@ public class GeneratedVersionOperationBuild extends Project { scope(test) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))) - .include(dependency("org.assertj", "assertj-core", version(3, 25, 3))); + .include(dependency("org.assertj", "assertj-core", version(3, 26, 0))); precompileOperation() .templateTypes(TXT); From 1e90d059cfa9160f80848338686eba14001f9d88 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 26 May 2024 23:10:01 -0700 Subject: [PATCH 13/63] Version 0.9.6 --- examples/lib/bld/bld-wrapper.properties | 2 +- examples/src/bld/java/com/example/SampleBuild.java | 4 ---- .../rife/bld/extension/GeneratedVersionOperationBuild.java | 2 +- 3 files changed, 2 insertions(+), 6 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index b95c5e1..d315b82 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6-SNAPSHOT +bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= bld.version=1.9.1 diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index 501f590..ef51aad 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -13,10 +13,6 @@ import static rife.bld.dependencies.Scope.test; /** * Example build. - * - *

    - *
  • ./bld compile run
  • - *
*/ public class SampleBuild extends Project { public SampleBuild() { diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 49cf2fc..f50c17e 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,7 +36,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 6, "SNAPSHOT"); + version = version(0, 9, 6); javaRelease = 17; downloadSources = true; From 1cfa3a712fb828896b70569152e1f1d5876baad6 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sat, 22 Jun 2024 20:15:40 -0700 Subject: [PATCH 14/63] Added ability to the directory and script template using a String --- examples/lib/bld/bld-wrapper.properties | 4 ++-- .../java/com/example/GeneratedVersion.java | 2 +- lib/bld/bld-wrapper.properties | 6 +++--- .../GeneratedVersionOperationBuild.java | 4 +++- .../extension/GeneratedVersionOperation.java | 20 +++++++++++++++++++ .../bld/extension/GeneratedVersionTest.java | 20 +++++++++++++++++++ src/test/resources/myversion_test.txt | 11 ++++++++++ 7 files changed, 60 insertions(+), 7 deletions(-) create mode 100644 src/test/resources/myversion_test.txt diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index d315b82..654c8db 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extensions=com.uwyn.rife2:bld-generated-version:0.9.6 -bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= +bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.7-SNAPSHOT +bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index 82cafb7..eb4071d 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -12,7 +12,7 @@ import java.util.Date; */ public final class GeneratedVersion { public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1713398927971L); + public static final Date BUILD_DATE = new Date(1719112298450L); public static final int MAJOR = 1; public static final int MINOR = 0; public static final int REVISION = 1; diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 6e26fef..7a65d7b 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.extension-pmd=com.uwyn.rife2:bld-pmd:0.9.9 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 -bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.downloadLocation= +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.0 +bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index f50c17e..7e54661 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,11 +36,13 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 6); + version = version(0, 9, 7, "SNAPSHOT"); javaRelease = 17; + downloadSources = true; autoDownloadPurge = true; + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(compile) diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index 484ccf0..88ca63e 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -175,6 +175,16 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Wed, 3 Jul 2024 16:16:52 -0700 Subject: [PATCH 15/63] Bumped dependencies PMD extension to version 1.1.2 JUnit to versin 5.10.3 --- examples/src/bld/java/com/example/SampleBuild.java | 4 ++-- lib/bld/bld-wrapper.properties | 2 +- .../rife/bld/extension/GeneratedVersionOperationBuild.java | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index ef51aad..f7db800 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -28,8 +28,8 @@ public class SampleBuild extends Project { repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))); + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))); } public static void main(String[] args) { diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 7a65d7b..0a58fab 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -2,6 +2,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 -bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.0 +bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 7e54661..7d8ddae 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -48,8 +48,8 @@ public class GeneratedVersionOperationBuild extends Project { scope(compile) .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 1))); scope(test) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))) + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) .include(dependency("org.assertj", "assertj-core", version(3, 26, 0))); precompileOperation() @@ -104,7 +104,7 @@ public class GeneratedVersionOperationBuild extends Project { } @BuildCommand(summary = "Runs PMD analysis") - public void pmd() { + public void pmd() throws Exception { new PmdOperation() .fromProject(this) .failOnViolation(true) From 3e564915eaefc1548b0cb161c9cf702f7f06cdc0 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 3 Jul 2024 16:23:08 -0700 Subject: [PATCH 16/63] Moved template generation methods to GeneratedVersion class --- .../rife/bld/extension/GeneratedVersion.java | 160 ++++++++++++++---- .../extension/GeneratedVersionOperation.java | 139 +-------------- .../bld/extension/GeneratedVersionTest.java | 59 +++++-- ...ersion_test.txt => other_version_test.txt} | 0 4 files changed, 182 insertions(+), 176 deletions(-) rename src/test/resources/{myversion_test.txt => other_version_test.txt} (100%) diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java index 4cf1ddd..6c9b5ee 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersion.java +++ b/src/main/java/rife/bld/extension/GeneratedVersion.java @@ -17,8 +17,16 @@ package rife.bld.extension; import rife.bld.BaseProject; +import rife.resources.ResourceFinderDirectories; +import rife.template.Template; +import rife.template.TemplateConfig; +import rife.template.TemplateFactory; +import rife.tools.FileUtils; import java.io.File; +import java.io.IOException; +import java.nio.file.Path; +import java.util.Objects; /** * GeneratedVersion data class. @@ -26,16 +34,86 @@ import java.io.File; * @author Erik C. Thauvin * @since 1.0 */ -@SuppressWarnings("PMD.DataClass") public class GeneratedVersion { - private File classFile; - private String className; - private File directory; - private String extension = ".java"; - private String packageName; - private BaseProject project; - private String projectName; - private File template; + private static final String CLASSNAME = "className"; + private static final String EPOCH = "epoch"; + private static final String MAJOR = "major"; + private static final String MINOR = "minor"; + private static final String PACKAGE_NAME = "packageName"; + private static final String PROJECT = "project"; + private static final String QUALIFIER = "qualifier"; + private static final String REVISION = "revision"; + private static final String VERSION = "version"; + private File classFile_; + private String className_; + private File directory_; + private String extension_ = ".java"; + private String packageName_; + private String projectName_; + private BaseProject project_; + private File template_; + + /** + * Builds the template based on the {@link GeneratedVersion} data. + * + * @return the template + */ + public Template buildTemplate() { + Template template; + var version = project_.version(); + if (template_ == null) { + template = TemplateFactory.TXT.get("version.txt"); + } else { + var files = new ResourceFinderDirectories(template_.getParentFile()); + template = new TemplateFactory(TemplateConfig.TXT, "txtFiles", TemplateFactory.TXT) + .setResourceFinder(files).get(template_.getName()); + } + + if (packageName_ == null) { + packageName_ = project_.pkg(); + } + + if (template.hasValueId(PACKAGE_NAME)) { + template.setValue(PACKAGE_NAME, packageName_); + } + + if (template.hasValueId(CLASSNAME)) { + template.setValue(CLASSNAME, Objects.requireNonNullElse(className_, "GeneratedVersion")); + } + + if (template.hasValueId(PROJECT)) { + if (projectName_ == null) { + projectName_ = project_.name(); + } + template.setValue(PROJECT, projectName_); + } + + if (template.hasValueId(EPOCH)) { + template.setValue(EPOCH, System.currentTimeMillis()); + } + + if (template.hasValueId(VERSION)) { + template.setValue(VERSION, version.toString()); + } + + if (template.hasValueId(MAJOR)) { + template.setValue(MAJOR, version.majorInt()); + } + + if (template.hasValueId(MINOR)) { + template.setValue(MINOR, version.minorInt()); + } + + if (template.hasValueId(REVISION)) { + template.setValue(REVISION, version.revisionInt()); + } + + if (template.hasValueId(QUALIFIER)) { + template.setValue(QUALIFIER, version.qualifier()); + } + + return template; + } /** * Returns the class file. @@ -43,7 +121,7 @@ public class GeneratedVersion { * @return the class file */ public File getClassFile() { - return classFile; + return classFile_; } /** @@ -52,7 +130,7 @@ public class GeneratedVersion { * @return the class name */ public String getClassName() { - return className; + return className_; } /** @@ -61,7 +139,7 @@ public class GeneratedVersion { * @return the destination directory */ public File getDirectory() { - return directory; + return directory_; } /** @@ -70,7 +148,7 @@ public class GeneratedVersion { * @return the file extension */ public String getExtension() { - return extension; + return extension_; } /** @@ -79,7 +157,7 @@ public class GeneratedVersion { * @return the package name */ public String getPackageName() { - return packageName; + return packageName_; } /** @@ -88,7 +166,7 @@ public class GeneratedVersion { * @return the project */ public BaseProject getProject() { - return project; + return project_; } /** @@ -97,7 +175,7 @@ public class GeneratedVersion { * @return the project name */ public String getProjectName() { - return projectName; + return projectName_; } /** @@ -106,16 +184,7 @@ public class GeneratedVersion { * @return the template */ public File getTemplate() { - return template; - } - - /** - * Sets the class file. - * - * @param classFile the class file - */ - public void setClassFile(File classFile) { - this.classFile = classFile; + return template_; } /** @@ -124,7 +193,7 @@ public class GeneratedVersion { * @param className the class name */ public void setClassName(String className) { - this.className = className; + this.className_ = className; } /** @@ -133,7 +202,7 @@ public class GeneratedVersion { * @param directory the destination directory */ public void setDirectory(File directory) { - this.directory = directory; + this.directory_ = directory; } /** @@ -142,7 +211,7 @@ public class GeneratedVersion { * @param extension the file extension */ public void setExtension(String extension) { - this.extension = extension; + this.extension_ = extension; } /** @@ -151,7 +220,7 @@ public class GeneratedVersion { * @param packageName the package name */ public void setPackageName(String packageName) { - this.packageName = packageName; + this.packageName_ = packageName; } /** @@ -160,7 +229,7 @@ public class GeneratedVersion { * @param project the project */ public void setProject(BaseProject project) { - this.project = project; + this.project_ = project; } /** @@ -169,7 +238,7 @@ public class GeneratedVersion { * @param projectName the project name */ public void setProjectName(String projectName) { - this.projectName = projectName; + this.projectName_ = projectName; } /** @@ -178,6 +247,31 @@ public class GeneratedVersion { * @param template the template */ public void setTemplate(File template) { - this.template = template; + this.template_ = template; + } + + /** + * Writes the project version class in the given directory. + */ + public void writeTemplate(Template template) throws IOException { + if (packageName_ != null) { + classFile_ = Path.of(directory_.getAbsolutePath(), packageName_.replace(".", File.separator), + className_ + extension_).toFile(); + } else { + classFile_ = new File(directory_, className_ + ".java"); + } + + if (!classFile_.getParentFile().exists()) { + var dirs = classFile_.getParentFile().mkdirs(); + if (!dirs && !classFile_.getParentFile().exists()) { + throw new IOException("Could not create project package directories: " + classFile_.getParent()); + } + } + + try { + FileUtils.writeString(template.getContent(), classFile_); + } catch (IOException e) { + throw new IOException("Unable to write the version class file: " + e.getMessage(), e); + } } } diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index 88ca63e..9cb1707 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -19,16 +19,9 @@ package rife.bld.extension; import rife.bld.BaseProject; import rife.bld.operations.AbstractOperation; -import rife.resources.ResourceFinderDirectories; -import rife.template.Template; -import rife.template.TemplateConfig; -import rife.template.TemplateFactory; -import rife.tools.FileUtils; import java.io.File; import java.io.IOException; -import java.nio.file.Path; -import java.util.Objects; import java.util.logging.Level; import java.util.logging.Logger; @@ -39,119 +32,8 @@ import java.util.logging.Logger; * @since 1.0 */ public class GeneratedVersionOperation extends AbstractOperation { - private static final String CLASSNAME = "className"; - private static final String EPOCH = "epoch"; private static final Logger LOGGER = Logger.getLogger(GeneratedVersionOperation.class.getName()); - private static final String MAJOR = "major"; - private static final String MINOR = "minor"; - private static final String PACKAGE_NAME = "packageName"; - private static final String PROJECT = "project"; - private static final String QUALIFIER = "qualifier"; - private static final String REVISION = "revision"; - private static final String VERSION = "version"; - private final GeneratedVersion generatedVersion = new GeneratedVersion(); - - /** - * Builds the template based on the {@link GeneratedVersion} data. - * - * @param gv the generated version - * @return the template - */ - public static Template buildTemplate(GeneratedVersion gv) { - Template template; - var version = gv.getProject().version(); - if (gv.getTemplate() == null) { - template = TemplateFactory.TXT.get("version.txt"); - } else { - var files = new ResourceFinderDirectories(gv.getTemplate().getParentFile()); - template = new TemplateFactory(TemplateConfig.TXT, "txtFiles", TemplateFactory.TXT) - .setResourceFinder(files).get(gv.getTemplate().getName()); - } - - if (gv.getPackageName() == null) { - gv.setPackageName(gv.getProject().pkg()); - } - - if (template.hasValueId(PACKAGE_NAME)) { - template.setValue(PACKAGE_NAME, gv.getPackageName()); - } - - gv.setClassName(Objects.requireNonNullElse(gv.getClassName(), "GeneratedVersion")); - if (template.hasValueId(CLASSNAME)) { - template.setValue(CLASSNAME, gv.getClassName()); - } - - if (template.hasValueId(PROJECT)) { - if (gv.getProjectName() == null) { - gv.setProjectName(gv.getProject().name()); - } - template.setValue(PROJECT, gv.getProjectName()); - } - - if (template.hasValueId(EPOCH)) { - template.setValue(EPOCH, System.currentTimeMillis()); - } - - if (template.hasValueId(VERSION)) { - template.setValue(VERSION, version.toString()); - } - - if (template.hasValueId(MAJOR)) { - template.setValue(MAJOR, version.majorInt()); - } - - if (template.hasValueId(MINOR)) { - template.setValue(MINOR, version.minorInt()); - } - - if (template.hasValueId(REVISION)) { - template.setValue(REVISION, version.revisionInt()); - } - - if (template.hasValueId(QUALIFIER)) { - template.setValue(QUALIFIER, version.qualifier()); - } - - return template; - } - - /** - * Writes the project version class in the given directory. - * - * @param template the template - * @param gv the generated version - */ - public static void writeTemplate(Template template, GeneratedVersion gv) { - if (gv.getPackageName() != null) { - gv.setClassFile(Path.of(gv.getDirectory().getAbsolutePath(), - gv.getPackageName().replace(".", File.separator), gv.getClassName() - + gv.getExtension()).toFile()); - } else { - gv.setClassFile(Path.of(gv.getDirectory().getAbsolutePath(), gv.getClassName() + ".java").toFile()); - } - - if (!gv.getClassFile().getParentFile().exists()) { - var mkdirs = gv.getClassFile().getParentFile().mkdirs(); - if (!mkdirs && !gv.getClassFile().getParentFile().exists() && LOGGER.isLoggable(Level.SEVERE)) { - LOGGER.log(Level.SEVERE, "Could not create project package directories: {0}", - gv.getClassFile().getParent()); - } - } - - try { - var updated = gv.getClassFile().exists(); - FileUtils.writeString(template.getContent(), gv.getClassFile()); - if (LOGGER.isLoggable(Level.INFO)) { - LOGGER.log(Level.INFO, "Generated version ({0}) class has been {1}: {2}", - new String[]{gv.getProject().version().toString(), updated ? "updated" : "created", - "file://" + gv.getClassFile().toURI().getPath()}); - } - } catch (IOException e) { - if (LOGGER.isLoggable(Level.SEVERE)) { - LOGGER.log(Level.SEVERE, "Unable to write the version class file.", e); - } - } - } + private final GeneratedVersion generatedVersion_ = new GeneratedVersion(); /** * Sets the class name. @@ -160,7 +42,7 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Wed, 3 Jul 2024 16:23:20 -0700 Subject: [PATCH 17/63] Ensure execution stops on failure --- .../extension/GeneratedVersionOperation.java | 27 ++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java index 9cb1707..04fad54 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersionOperation.java +++ b/src/main/java/rife/bld/extension/GeneratedVersionOperation.java @@ -19,9 +19,9 @@ package rife.bld.extension; import rife.bld.BaseProject; import rife.bld.operations.AbstractOperation; +import rife.bld.operations.exceptions.ExitStatusException; import java.io.File; -import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; @@ -92,9 +92,28 @@ public class GeneratedVersionOperation extends AbstractOperation Date: Wed, 3 Jul 2024 17:57:57 -0700 Subject: [PATCH 18/63] Improved version template search path --- README.md | 2 +- .../src/bld/java/com/example/SampleBuild.java | 3 +-- .../rife/bld/extension/GeneratedVersion.java | 17 +++++++++++------ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index c128f29..734cee4 100755 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ public void genver() throws Exception { .projectName("My App") .packageName("com.example.myapp") .className("MyAppVersion") - .classTemplate(new File(workDirectory, "myversion.txt")) + .classTemplate("myversion.txt") .execute(); } ``` diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index f7db800..0069f8d 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -4,7 +4,6 @@ import rife.bld.BuildCommand; import rife.bld.Project; import rife.bld.extension.GeneratedVersionOperation; -import java.io.File; import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; @@ -47,7 +46,7 @@ public class SampleBuild extends Project { new GeneratedVersionOperation() .fromProject(this) // .projectName("My App") -// .classTemplate(new File(workDirectory, "myversion.txt")) +// .classTemplate("myversion.txt") .execute(); } } diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java index 6c9b5ee..9a79e86 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersion.java +++ b/src/main/java/rife/bld/extension/GeneratedVersion.java @@ -26,7 +26,6 @@ import rife.tools.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.Path; -import java.util.Objects; /** * GeneratedVersion data class. @@ -45,7 +44,7 @@ public class GeneratedVersion { private static final String REVISION = "revision"; private static final String VERSION = "version"; private File classFile_; - private String className_; + private String className_ = "GeneratedVersion"; private File directory_; private String extension_ = ".java"; private String packageName_; @@ -64,9 +63,15 @@ public class GeneratedVersion { if (template_ == null) { template = TemplateFactory.TXT.get("version.txt"); } else { - var files = new ResourceFinderDirectories(template_.getParentFile()); - template = new TemplateFactory(TemplateConfig.TXT, "txtFiles", TemplateFactory.TXT) - .setResourceFinder(files).get(template_.getName()); + File parent; + if (template_.getParentFile() != null) { + parent = template_.getParentFile(); + } else { + parent = new File(template_.getAbsolutePath()).getParentFile(); + } + var dirs = new ResourceFinderDirectories(parent); + template = new TemplateFactory(TemplateConfig.TXT, "txt", TemplateFactory.TXT) + .setResourceFinder(dirs).get(template_.getName()); } if (packageName_ == null) { @@ -78,7 +83,7 @@ public class GeneratedVersion { } if (template.hasValueId(CLASSNAME)) { - template.setValue(CLASSNAME, Objects.requireNonNullElse(className_, "GeneratedVersion")); + template.setValue(CLASSNAME, className_); } if (template.hasValueId(PROJECT)) { From 81212468fd00adbbade59aa177ae7777f3512fc8 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Wed, 3 Jul 2024 18:10:23 -0700 Subject: [PATCH 19/63] Version 0.9.7 --- examples/lib/bld/bld-wrapper.properties | 2 +- examples/src/main/java/com/example/GeneratedVersion.java | 2 +- .../java/rife/bld/extension/GeneratedVersionOperationBuild.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 654c8db..6699dfd 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.7-SNAPSHOT +bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.7 bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index eb4071d..a06f874 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -12,7 +12,7 @@ import java.util.Date; */ public final class GeneratedVersion { public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1719112298450L); + public static final Date BUILD_DATE = new Date(1720056110519L); public static final int MAJOR = 1; public static final int MINOR = 0; public static final int REVISION = 1; diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index 7d8ddae..cffa6bd 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -36,7 +36,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 7, "SNAPSHOT"); + version = version(0, 9, 7); javaRelease = 17; From c4f143ae02f20f00af04fd959121f59d30d10dcf Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 4 Jul 2024 20:35:28 -0700 Subject: [PATCH 20/63] Cleaned up template builder and related tests --- README.md | 4 ++-- src/main/java/rife/bld/extension/GeneratedVersion.java | 6 ++---- .../{version.txt => default_generated_version.txt} | 0 .../java/rife/bld/extension/GeneratedVersionTest.java | 10 ++++++++-- .../{other_version_test.txt => foo/version_test.txt} | 0 5 files changed, 12 insertions(+), 8 deletions(-) rename src/main/resources/templates/{version.txt => default_generated_version.txt} (100%) rename src/test/resources/{other_version_test.txt => foo/version_test.txt} (100%) diff --git a/README.md b/README.md index 734cee4..bf89ce1 100755 --- a/README.md +++ b/README.md @@ -66,12 +66,12 @@ public void genver() throws Exception { .projectName("My App") .packageName("com.example.myapp") .className("MyAppVersion") - .classTemplate("myversion.txt") + .classTemplate("my_app_version.txt") .execute(); } ``` ```java -// myversion.txt +// my_app_version.txt package {{v packageName/}}; diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java index 9a79e86..3a79c9d 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersion.java +++ b/src/main/java/rife/bld/extension/GeneratedVersion.java @@ -19,7 +19,6 @@ package rife.bld.extension; import rife.bld.BaseProject; import rife.resources.ResourceFinderDirectories; import rife.template.Template; -import rife.template.TemplateConfig; import rife.template.TemplateFactory; import rife.tools.FileUtils; @@ -61,7 +60,7 @@ public class GeneratedVersion { Template template; var version = project_.version(); if (template_ == null) { - template = TemplateFactory.TXT.get("version.txt"); + template = TemplateFactory.TXT.get("default_generated_version"); } else { File parent; if (template_.getParentFile() != null) { @@ -70,8 +69,7 @@ public class GeneratedVersion { parent = new File(template_.getAbsolutePath()).getParentFile(); } var dirs = new ResourceFinderDirectories(parent); - template = new TemplateFactory(TemplateConfig.TXT, "txt", TemplateFactory.TXT) - .setResourceFinder(dirs).get(template_.getName()); + template = TemplateFactory.TXT.setResourceFinder(dirs).get(template_.getName()); } if (packageName_ == null) { diff --git a/src/main/resources/templates/version.txt b/src/main/resources/templates/default_generated_version.txt similarity index 100% rename from src/main/resources/templates/version.txt rename to src/main/resources/templates/default_generated_version.txt diff --git a/src/test/java/rife/bld/extension/GeneratedVersionTest.java b/src/test/java/rife/bld/extension/GeneratedVersionTest.java index 7b9ded5..af7e864 100644 --- a/src/test/java/rife/bld/extension/GeneratedVersionTest.java +++ b/src/test/java/rife/bld/extension/GeneratedVersionTest.java @@ -134,14 +134,20 @@ class GeneratedVersionTest { .fromProject(PROJECT) .directory(tmpDir.getAbsolutePath()) .extension(".java") - .classTemplate("src/test/resources/other_version_test.txt") + .classTemplate("src/test/resources/foo/version_test.txt") .packageName("") .className("MyVersion") .execute(); deleteOnExit(tmpDir); - assertThat(new File(tmpDir, "MyVersion.java")).exists(); + var template = new File(tmpDir, "MyVersion.java"); + assertThat(template).exists(); + + var content = Files.readString(template.toPath()); + assertThat(content).contains("class MyVersion") + .contains("PROJECT = \"MyExample\";").contains("MAJOR = 2").contains("MINOR = 1") + .contains("REVISION = 3").contains("QUALIFIER = \"\"").contains("private MyVersion"); } @Test diff --git a/src/test/resources/other_version_test.txt b/src/test/resources/foo/version_test.txt similarity index 100% rename from src/test/resources/other_version_test.txt rename to src/test/resources/foo/version_test.txt From e8a12857b84872b3b5822063de45e5a0912779ee Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 09:25:35 -0700 Subject: [PATCH 21/63] Cleaned up alternate example class template --- examples/my_app_version.txt | 30 +++++++++++++++++++ examples/myversion.txt | 17 ----------- .../src/bld/java/com/example/SampleBuild.java | 4 +-- 3 files changed, 32 insertions(+), 19 deletions(-) create mode 100644 examples/my_app_version.txt delete mode 100644 examples/myversion.txt diff --git a/examples/my_app_version.txt b/examples/my_app_version.txt new file mode 100644 index 0000000..3d4c223 --- /dev/null +++ b/examples/my_app_version.txt @@ -0,0 +1,30 @@ +package {{v packageName/}}; + +import java.util.Date; + +public final class {{v className/}} implements Comparable<{{v className/}}> { + public static final String PROJECT = "{{v project/}}"; + public static final Date BUILD_DATE = new Date({{v epoch/}}L); + public static final int MAJOR = {{v major/}}; + public static final int MINOR = {{v minor/}}; + public static final int REVISION = {{v revision/}}; + public static final String QUALIFIER = "{{v qualifier/}}"; + public static final String VERSION = "{{v version/}}"; + + private {{v className/}}() { + // no-op + } + + @Override + public int compareTo({{v className/}} other) { + if (MAJOR != other.MAJOR) { + return Integer.compare(MAJOR, other.MAJOR); + } else if (MINOR != other.MINOR) { + return Integer.compare(MINOR, other.MINOR); + } else if (REVISION != other.REVISION) { + return Integer.compare(REVISION, other.REVISION); + } else { + return QUALIFIER.compareTo(other.QUALIFIER); + } + } +} \ No newline at end of file diff --git a/examples/myversion.txt b/examples/myversion.txt deleted file mode 100644 index 8d27e1f..0000000 --- a/examples/myversion.txt +++ /dev/null @@ -1,17 +0,0 @@ -package {{v packageName/}}; - -import java.util.Date; - -public final class {{v className/}} { - public static final String PROJECT = "{{v project/}}"; - public static final Date BUILD_DATE = new Date({{v epoch/}}L); - public static final int MAJOR = {{v major/}}; - public static final int MINOR = {{v minor/}}; - public static final int REVISION = {{v revision/}}; - public static final String QUALIFIER = "{{v qualifier/}}"; - public static final String VERSION = "{{v version/}}"; - - private {{v className/}}() { - // no-op - } -} \ No newline at end of file diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index 0069f8d..d2e3c19 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -45,8 +45,8 @@ public class SampleBuild extends Project { public void genver() throws Exception { new GeneratedVersionOperation() .fromProject(this) -// .projectName("My App") -// .classTemplate("myversion.txt") + .projectName("My App") + .classTemplate("my_app_version.txt") .execute(); } } From 6b80d9a1046bc96278ca11ccb7a53a36cd8e3e0c Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 09:32:23 -0700 Subject: [PATCH 22/63] Bumped JaCoCo extension to version 0.9.6 --- lib/bld/bld-wrapper.properties | 2 +- .../rife/bld/extension/GeneratedVersionOperationBuild.java | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 0a58fab..4dadca8 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 +bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.6 bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES bld.version=1.9.1 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index cffa6bd..dfb8b49 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -22,7 +22,6 @@ import rife.bld.publish.PublishDeveloper; import rife.bld.publish.PublishLicense; import rife.bld.publish.PublishScm; -import java.io.IOException; import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; @@ -97,7 +96,7 @@ public class GeneratedVersionOperationBuild extends Project { } @BuildCommand(summary = "Generates JaCoCo Reports") - public void jacoco() throws IOException { + public void jacoco() throws Exception { new JacocoReportOperation() .fromProject(this) .execute(); From 4ee818deab9e776b0f090ba6d51bfa5d0c4834b3 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 09:33:35 -0700 Subject: [PATCH 23/63] Bumped bld to version 2.0.0-SNAPSHOT --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 27319 -> 29229 bytes examples/lib/bld/bld-wrapper.properties | 4 ++-- lib/bld/bld-wrapper.jar | Bin 27319 -> 29229 bytes lib/bld/bld-wrapper.properties | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index a2969be..2fb5ff0 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index d136e4d..33a9922 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.1.jar", + "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", "lib/**/*.jar" ] } diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index a2969be..2fb5ff0 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index d136e4d..33a9922 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-1.9.1.jar", + "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 18ecfd46dab1a4629e6b18f4322a1aea5e9a8a8c..2c979029887f1687c3ddc6825a49554d3f8ece6b 100644 GIT binary patch delta 27205 zcmV)EK)}DZ)d8*K0S!<~0|XQR2nYxO(M#)*4SoaBOY4!2Fn_!WcvRK-KmML`ZgMA+ z3)$ELB9S$F1QnG48bXj@7EA&d7Q>JXB#_L+nF)()t@~EB*0$iTRjjoxC_?}hySa6D zsoH95Yxm__Yiq66mfz<+_s*R=$pq;0fByP#?>*al&UyFuJ!kUre-AuML<@`$Op<~o zM0z#`t2Xp@Rex=Z1p51fk*Zbp+fN2%n3QReNj^cjn*&<|RlR}GrmE%*n}eM(L7DS= zLOrpCf>d$IN|XG8EZwOmT(zX9H|QfvkZ&Lwj8t~@0NiNGF)7!gJjzc2*SaGb3-$@h z-V}^2kAyLGY=@wk#SNY=u}Dv7Q+3JkDnDh>7+&I7L4RY@4Oy8*g2r1kfeJB2=RhP9 z48<1rL^=eGZtyO*I*TUJaVAZ+=y;kUXxd1Kncff>2z7QhhP#5;dTnoypcxIv(7Bpd za)L!u8G3fFTi;>QbU|bES_Wc0y;TkpdV*0uO`{ARHp`-7DiM_LfKPV8KE^eq8>^=) zv#6XmK7Vf5INma5t^{(DqZ@icTY_Cn1JUl*V9ZYy_T;lInnNcE8Wjolhoe2QaKxTB z$1^Yb>j_V>XfF574sMSHL(!gaDB8jGr&)A5%@b7E72X!=4F|gF678+wfk>x@CsuRM z`4%lm-*Xve>k4;jcxPC2Ce;WsHwET|4W%m>w>Xur(+LGbT4T{#T8BlYKw1`v2+A7*qGY9yfa0v)o(+)zQ{SXO zstjwuKI&wO^mbKl@9WK`AZ;{hlSSPG5y{t`Lx8vu5UZ94V%WS4ZxmFWMr_xNDEui9 zs(F$v7WESJhc6bkyF!?XM^F`ECRaOuoqumpgqY^QZ!{LwN^G^C2575E+br5n&_QFg zRL8>M-l)dI3eX5W{lHgOVydY_Q8j#G=GO}?x`-}@%q(hH+_9{trDJ(bTU%XA6FA31 z|449Ca69iT7L0_j;7jQV;f?m7>U>y(D=oT;)$;hhz?NWbIMf-4t?G$&;|u&6ia`-wL)V&gokiE{ZX>|b zxasc=bOvjBdwJV8TJ$;I_ITcQYx9bh+PYTn_Vdx_O73`zMW5%6c`fxz>gIU6aO)Q= zx{X^4?bbAam~vmT=*zSdx@TLYCw~@95NKK&_8Q9FCfzQm!b9!g_Re5G3$Taqb&*Io zQkQ5j>CS|j0i60~x4}<$(A~^t_rSP%=WgqcgtrAYIO234^l3C0i(xs@%FWSm$VXp+ zo`&#LIJ&yB-xX>fJ%~15-<-;XT5Je|NIg96A#f@S-Ov_4t*3`A`Wig~7JqT*B53i5 zEOHdq8OqX+TJ#tb^@G@Wp>>;{(YcRsIE|`9y^L4S`NBbZ&o(ia@ z{T3adgU}Ulh-x-O!@UEsAafx!ZbGjmSeLs$W6`s82%0PwwzcZG;t_S_H!S)l_swEo zE5NRhN#BOOOYIK566x81S@k3}iISh5rx#3m(V~~=nhD`esgdefx0Ecz+^OwiWi+)A#LCuUb488jY;60pHJlvfb z(ZTUn@t%HT(QkP}{>GYmaD78fYb(bFzqjZQ^hcOo;HkDZ5RI}g;{~BBL8w2|UrhQx zi~h<+I%h~bG!w@2?o9gIFr>j5XS3s5`3K%Yr}Pi)o^0Do_*k3Ix^uL1=KKYc(S zu{K`kr}yb&{`v$SZPI9aAyhY{=MBeU`qZNT(0`$~16^Hu@oi!4EuB={aKvR-4?_wp z4&2?5Lk!)k0eUMKF$IFO<2|OSJ`{2~xF*LZ3|Ku@!wxH9wIb6Jra<6kVYQ4ZXR#;$ z4~zAxw}0UJa{UF$%9 ze~G8n=gG{!HA#0jRDYKduLdLm+VxL06e59d-AJ+P>e0NM1?^7H5!|#54i+j^_A4}o`z~uoH$H< zfqHeJSY(G^RAFx*%1M?uS)77dF|G-QPPYo0g=EYOdAu;139Z&_k zJTv>nTz_#oL`Td^x->)9##@>z=38QcScpBchYZFjUbBd!nfJw+mZ%YnP@`Ql2t8Wr z>uttbY>7H%Bfn-NXE$@jD8E=LMwz1C>t-cq^og^v$to|?gR+g5XkwiDnU0CYFBQuz zagJy~e_j_{(?vUCHYrNhEXopXVudMIT4I$r7k>e|YdJdM1A%nls6ePI5b3J5%NUoj zqHRgXX<&|qVV#{$)y&$f8D(pr*0I@eJ|L_yuC4B{s1ek;@7?5DJHSIs?6|2~2@_Y+`au%RngB z(|;FCda$CK?q&$R>@5J(9AZ>dY#8Y2?cz1`TjG3PgWAMNg7qS5iI^DRQ0n}F00&58 z)0mqQ1oxA~HcM>h^hd^`1h5M%aiO>fw21ax5Y$mvy-!>MU=m_;G&70 zme|E>ggd9RXyOjEMI)U)aTid)llTNQX;#G1e^H-6ETIsZ`vf8gSy|~5h!%2(dVj4x zfjD7GcP!Q)omW-GEwd~80$YQj%5Y>;mHwJj#R;c(ed23Su^xw&QS)_6JSrZ;HZakm z-mZjyx8sQFH-R!!Jdwx%I8`k{Hg10LIDLdU#Z#8pE8^H6JL}1$2s+yxZ3`?0EwP^$ zVPO&O3V8fMOFYdinB5r;#Xz;_*?&QTjB@2j!`L@F^~s#kJtGlOZ-^8 z0;eg+YEC!hrTCPbM`Kv8S>ko^6Lf^Sj0CVvk6W)h);sm+{ib-!6hF1Z&wqG9`NO+l zmED0T8w2k9jwOCBeu1roP%$)B;s~oLewmU(YYg;H*NQn?yerO@h?++Y>7{J;d#jpi{O0)18mRxS#di>pZIj7 z6*}>%Przl&s%UMhS>C#|xeaKMWJ$r$!3A9!DL$zLEjWs7c82?^2Da@8Rp~r{b{ms% zBP3VI3`=HeboWGCLxKKicR1#gu&k>SkfSHgt_(+`h)+X-*pB|727k{Y19q(PDvPS9 zGd_9@)A}u$%}5{Z?Ab?1c8m<)?kqnmlQc0DGCkrZGS*u<&*Fj$tO<-el&Mh z^aW#qu0SlnnO~l(+LH5`C$bY_u_Dq72aSDHA2& zD|*39y*xMLcd;ewIMpmuoMCJjaqP%=c_X+1zn}%k^!RT*39s zRgMNrH0L8Uz0xP)f~v;Fr}*V+xyF=hExAsfm+;P`!Oj8r&pWCb5k3Vr1sC^h3bKQk zts@A|)N(j9dt^>e4*)A3kn1fOkQ=mL5$JOKxGT6cxV<5~EvW4oMh#!8DZ_$hrY^TB+&a+N zUDLY>$|=^}=k>4T`IfX3`F0kFr;J&0fX_(AB$zMN&pWJ-wd8h7?vNKiQad@A?$yzD z$C1wRJbzI+JJ|9fOI|GDs%FH(D_ZJ3**Tkg>!C$HBQG=MXDxZTydpK$tapYr3>($} z*oP&2*&oQOlP58*K&)gPajhk<(>fwN5X&c@tqX3noRXl0BSd)(!+#;LgT`S#^NcedJNQ6;$&z1|J8dW3 zg?mDAIuOiUiJ_*vJrM$Fu4o8{Hf3CT*#6Hi@0RzN@?J~cC+|;Wi$($kgvTO*P!!SZ zl1LaFSYCXL%U`yvWSLJs00q$%4uPXSKrjjfKg62WXUc~YGdpt86pk$k4}`js`55^K z1b-`h4)pqkO=!!zUjHeS&I-pb)O*OTB>NAFfX zl0Pi>S~4#8@mU-g(Mh4rIErnvlTN1GpK{EcJf+MMAIXE3d|Ez(Ew{BVuLIwuOXSHz zmV8cr!%kV~v!Td9r*<$;N;xofl3bpeNPlo6&sF6a1Vs*KJlEDC?pC8b&37#MynMmV zQa1);-C-E|GmmmgIP#n}1lY`MP5}w|G9no|2uDwT&ywGlKY)?k%Fbrz%vbv4|9?SCR&@6JBq9l;LT7}9{J@fbm;V4CL+X|#4}aL= zr90)9|Fq;s@?Y$Bc5(XX2*>@aP5DU*?UqNvF!E8?pZ!>VYLO}bllJ6)CAS~86e$7j z?+JAWVejgjJqHhIV1jWzR?1R_%HZIZBQ17K(hR8fD^vMQm1QYE=UnoJ^?!gYYzy>2 zoiUn}WvNk|nahjV3dk#^LgiR0mlG9vI)~xS3BaFF`Iai++XXqcS@yJLsj-$Cr%iU> zmad+N1~$P`g-j7nTWC@455&5cA<*I+5p#n&&QgxV6gBx#)(hi?SD9X^D?1Oi!D{h7|U_g zRN_dQncyr-EmigQ@qbxcAi71+-lWgAinHtv9lhM)CCRZdK`OS6wQghvo^F3Q7ACp{ z41Kn0Fjb?aniLdW@v#nsHV0?+4%Kw7#TFl_b1c=uYR1}NSL&1!XsOyPwL)_uaF^V< zRyD7g>RjiLWjJp9G+M2;)EW+=NA*IzvnYxmRbiFPk(#}c4lw!W3}E=0mT7T zS29&vIy9gfS*iOJ482vcxVWTZ3-u6engP;<9&jk?!T_c0fl@MH#hW6^xd zQD0$3d4GV9=Z?%0KDFCc!QOj9KJ`_Ewkx8+NJY)2US!y~4I(@y(tM`5~`6cZQQ)K8q@JV95uGdcWCOT9I0I7{Q==Gx>f$N}{;OTEqga=D*ZP<`s> zg37DbR@y0gCW@V{ufWEuPFPn~e8&6}oPSl9=y`n#VO;SMMx<=gr+x*7t}N9()+SB` zD@%Rq*ESSRmT4HA6d!rc-@=C;q4$vaeve&NmZCjnwm+iw#MyIBI{B2jr=E6tU_)nD za3fpAKU?ZA3V~jBEX;1HzRqo*?$^S|FIrI#zO89FYei#SQyVrioa!*=iL0*KNq<0j zS!;8XXV9pWJAVLz<{D0wxQXIcpZceu`Tt*zTKGtyc~w(GbIoF%v2N41!X^%@bLVtq zl6j%2rm+s8viF{CvU)UE+jv-7)4J5B{$so0_L+WVcOcr0id8K&%a=pCm$%d{sXy0e zke$CyT&KdOlRfn9&H6gH6xoSNaDSz+pzD=sP0IfK@t<`7v?cICsfgd_E%mH;{%~Gi2yQlN^^a3>8h_xUHt8dq zHulSz_gNpW3`Bak>{J@D?w%;$W*I5*%@F(aU5IhTX%5IsR$`5T$fkil@HSrqOw$Kb zr~J&oiPXk)!9Mncv{&!BQeZkl4-@Mqp!iwylpetD46%4>TYS6z%*rCmdmMcL5 z+o@{!pDuD&>vJH+!zhHCoqt;z1N{zO64R}W^1(%`b6H!E&zX+bpS+{pu>p!hr{3Wl zZsx0YL$7lVy=ezXea;O-MDjyAyLS)a$!@XJycwP00li6teUhm$+4afNT-vJU8&#fb zXcI=d$Hp0H`;yquH6$*VF^WR^(yA}w-ntu|dNAQVs!Ux)#s)r3GJpBkI-V}gUIJLo z@3J~eU*I${p%a@=u{s_#1lHq2=@;eMbUX`qu^yQ2O$tnw3G!_0*(9hsT?g;XBc=@&R-48|U;>6P0Kc}Q*Gb-D ze$VGd=ZH~X8)N_1{eRU-8o!YBfxa0cgL9xl97*hOe_}HH_bQ1Wk^ljGAltzwvK$~Y zDU#zRAMps1iS8WMb@X+e!ax7gdBYAbD`@tJ@^%wlT|JTA6YWSCQoc14)u`x&MI8o! zVSDQw&%OT@ReQ(1)U+UNNpeDbo4pr6B9>1g>h5}&z9%NMxWt7EIz)&?!g02spB; zz?!3}YQX(bB7YW<({E>fIyTr6n2Nt4X(4^1!%5W_q{;9LDoHoZ2s~$+JAV~ ztD1k*kxagI41{{L=}VXR;|m|jgc`!a5n#HhRo+lIVc&DT)5LU=uk_e6iBKUdi_kbu zl6b~3rKb7b8Y36>y9?STV&7x4MZwnbS)OlSr<-7(IDc}Mp3eIg`fUzRpO z>#BA^C#Avh(MO$eG^Ecz8ibat{SE+j&C|fpn81VRHJv#myO4G;JFtU z5jv)+9)VNOJ|@F_OcDui)dZb80vn>5PLYIJnL6z7Z`i)Uqqe!|@MLu-4XI*hFlqhs zhqv-?0)OmEXXY74kXi5KGe=tCP;_P57qx)>4fwZ6(D>d!--fQh^whJL>9Yl$c=VqO zr*?q-Oae=ZumVZ0=$Y{d4W zu7My|*H<+c^+clsK@9jV7+C16gwOasHYNo4;fH?XN5+p$;}y$z)p!lkItVHOHE83 z&y(o>3-mjm|GbE%(GGb5&%=M7K)-Ku-cLI3i=6l8ocCk;UC4(wc$b3HOn>rWCjK)E z_Y)^oiB^>EBUO5kvfA^r2WiwkD%eZoO83yjy;OwiY3=)H#$K9PD)v$-$`vSA?WGfw zpC^~9y>u!+s!Q_>dfK;_7Cxc3QlKaG<2enJHPIMqrb%=T&7>A8qgHIY4I5iQOK2sX zP3Ib8(9^OPWsEh(;hklSH-9EL3qH$PaN$7`n0e7bs%yXm8E5ITAhS5TDOHMllm!}&eyPt?EcOI z`Rh1PRp_tD;3sJuk8fV;9hhlKVkR*Un9o4V^^EGW{PT=wXnniN-+$0LNL~ABv!Hzx zYO07+|4!OmF-Wm_#vZz$(1_C|z zq&wORjeT_2p(prvzjPs8Lc2)m4bK6p2yl+0E75W_*!CKlPuGHO*8!c^(*WIo{x@O7 zjr19?*>!Y_M#@5=ca7a4~8EpN!Ghhc6+G#yXN!LSK5*-U*W zjii9Vo!(0qI4+ z`Yxco1WtXKcGCAX5n3RC6X;Z9rY1t0ON5)8uM9w#ZOqcGz?w^#T`pmEIfTikn>>U$ zg^a@ho`x`osgnN&RI(aR-SP>g5^XK5bBMMci)5nRc7Kq52qpL9MxgeUJ@k|Ox8wBl zRd(UmrE&UQoc_c$2kHIxgY-eWP2+!n#{1}><@@MgO{Eq2B2NFtYm)ssY`+HV*Dn1k z5W;z@xX7r8i!A)JV2YWV{9(<@fZEK6i@ZWZ)2oKI)1@MZE`x@+25*~Q3n>TBA7k;a z&{%qvW`EJ^==l>`N^gKxZ$iJng)RP+y69)rOK($*-T|DS)1~P51^R`iPbtt*L#;-! zQKD7sZ7v0Fb12}W8;w$<45)JPerXc#KQsx}+!Q&7S<`xJQKuVxAE#(%$$vt@u>&J_I&a- z)Um1^WLlOV5EFQw!lsHBD39d>HIs?ZlCLucT-*&7u8r_T%57{@NdfEqPEbCizU0MaGuZk zvVZ1f75WOZn8?0Eg~szV9g;83+D*sJ%h*lh=lQvAlv9^6FT2nWR>*`QkJ5!e?Zxz2 zx)Sd%((TZPcR)~YfgU7!7=pV8<@=!txooq_W?~!sd)U@LK(zk|4E_Zp{tEN)K2_1* zAmSgu-}yV7f)6pnM--rc!2*ARx&95)^M4^={|7T2rrU)$K4I9bcxpi9X?my(0V zDO&7D)5FGG<5W<58r`P08K;q<8Sy2uKBXd46dfl1O$IaG`z-GQbxTb#(-c*vn14(3 zDNPoKp*%+JVsmd6^KJSbE+-$xdNPLeB5E+{j>Q_rXv!YeivR5KbcaYkK80DYpgu=9 z-asAe#0AW(1!5UEH7*(&z)Q`I2jRt(?-8y0M0-=&^JJp(tcu4Q@tIqu`6a8V91NUS zen?|*3YB09m2fmpah1nJ#=OX;(SO3C0x^oFh|x3)?-G&i%2)v?cskSr!>9rUPt%lH zU{gy|VGbGprCE$DV;;727#$>U5c{&xnoY_sCy>u?H2(_&(V4~$#D^E+)bmJ4vOyfihW}9A?-q!$Hf-ggDwz#+&?TK*ME_nbW-Ua zu@xS*17j6HBgo9SmnIg7i_45;M?X4V%C2{5TzobzuEgsaOqAIqA1N&dMz4RQk*6%@ zDY43IU}qZEe+8Vh8}PmePT3d5O)zS=>9?UV+yd8|L_TGS0?HO+sR;UJnixmZq2DS* zAzv(3a)c3>>XL3P*XGBpE9Yl4ug+ulCR^(O-?|y2*F)09dx3IWq%NO23`cUI4&-3 z$A=0+f!m%@ zAnqIy`e`2MGhOJD|0n2oj|hE!I_Uhvqod&D-lO2;%yc;6zlz|%WuwYOo<3yN_iMO- zo>4X;?8O@PID5RyB!AP5S`OKH^+%oMUKckb&$9F=vs?{BZyW5ZAZ%F}u@1A$ED#SA zh~07V)m3)s;WGW5e}7y&!X6uZ?1`o295AE#pm?0cbx&M8xtnI_PWzlr}+DxRHdsJR(qGsYVCQEA24j5+f%*#-Ev{eOC47v*5giG`W_#mmq$ zS7eCYhhJwXaq+|b;#EOS75l{-0$y<+KHe5^*575%e!uvYfCl+$!pD>Amoxdvg+6C;6O+HT`|!=B_BQ@nApRB? ze;*Y87ELF6vriiNWaykUzmB_oTM2`Ay(V43AU`V0$Bu1O&tpAZciNL1-0D4N0t+GOa607HoL3;gH-x4 z_O3m0dYqn4BpVQ`H0+VHxKiA5K$an+M>EWT=H}S7?Gs8niEoHSz+MBVgx@h+EOh6`5F4jK{)6^o})HTT)y z34(hP4?z2WmGZ=clrKO9@es`rUw@}k@dT{Eqf`k8;8gKAoi3iFYVj1+h`qE}#A&J6 z2g|UZI>k3>qc}+2;u*R`e1k3%hv;(g99<>8MK_CY!-xG2=6{|Zgunl&c#-ys@6+?* z2lR$`h29gd((lA;^k?xpR``a<6K{%1;w@N?pJKi5ze+-BQ%wit?MLR zj=FR3Wdcjb>$*%Rq#UEgXyrffjkvW9BQoe_nqjO!U8cyR$+E{-3I9HeN{v<8YWxFPKTz4FX1~gOaO-|q9@d+89P~~CT?u5CC4k%^m z@wCX4p-)JBLKDWX=3q6&MhzqqoU#{qflEg3z>*XpYI=ai?vdA&AAgY7v*6!=@3_2) zWu_cb(ggd`Feq>4)a3{5W&7x#?9jyJ7g=ZvjjS>9j<~$*To;su;RW(5fWy5WAA4+{oR~rbz+sDChsm7S!1)B2o_9EEp{lf8L>et$szOut`nvk5xcE03pKSwwkq zIv8sPHOZN@TF#;`%MvilEP6zi!ZuYATj7JU9L!QdFUm^#u{=>T%2MF%IJ({Fmd^mE zP1Ixb7@INUYFcM(F?zuYk3b*x86n{OAX#9KF#5gdWDb}qUUB@_GaW}nLo@naXy-c& zlS3J~^nVdOWXhj4nBt}^I1)F)DO1`z+2MF66SU;f#0SaG31IolNA&C0kGKJeJ_?j4 zLz+&(rcd=aEfZXhonS;9j-8;B8Pb!?n4psx_LAVM=V^ZO;qwk7O1qp?#Q^l%dx^z~ zY_zfk?c|free!or6$RqXxcvR9@`^$E2Y8}?;eP^LWpRuCD3E_mtpHQ}EiOM?RZ-5* zgYsi`V*kz2UR?f{Jys>P5>%OwxLRW_jlxRilTR)Hffv$Pc_xfY4b7Cb&>V~DRJnxC zlxNWrSx?L5GFmCmrggHx4WO`G7ayH2K00lDV8d&St;RNNY&lHec4G&~yAHr; zaDPc@_pfpLUxc+CuN_9o=<*=zw+Upazks1e18EPH##J`{jdsqu{QNzr^7s{3V^-lk zo-t6iUrj`aT4->C=X;X{q8q zn&&&Hs@wOe1@p3)R0V3Go=w~W62To)XMgUav*-B>c`3C_34kdy;i>rrB4xG2qS*xS`1R?3oX;KCI&Uaq1kvK{toHMkH?id+j0Tt};92d$OssapnUKyIK*WG8G^7u_#| zK*L7*mfS=?lHK%y>=7Aqv+&7Yk$)}2Vm#gx@h*|;#S(eGXqFLiu8fNFDw~Dab zE_TQr;xqC>alO1q+$Jv;x64b!eeyG!)9*u2_5nEfV&f9X%K$xKTxxs<+T59_13kN^(l?lnbvR9D91SJY^;8+H&unH=9>KkbgQGb&*#<{LB9u9ZtDc(?Z;O9Tl<0M3Wgf`9x%q`WT(^&2Z zPI0*{H?$twRCUHxa3|%JRoFsbzF&1i5)Qwf%tK8DvPfP*ro0l2coj{QSJQNP4VBAl zX$~CCQ{)Y9_F*EF{1!p}Jh z6G$wT&MtSt`zVzEaCUhuW@R|D+5E?8u%T>^+Pp`F2G#kEEWy~&fS|GiY6sDNb+N?b za=sgJb}~_6+qIja?{A?3`2~+%o9%F@k4g~EGKUr*9JxKkuGuwg*X-rN!{>LxL$KCe+!XdF?8%O7_+VG($f zdyto!dWGvl}~vxlBar3^R$a( zuj@V%{1>v)uj|1y>w55iSl2uId(5Z3h^*7Xgn>zi2Dp<`K>*(p4PYXIeN2wV#=2*o_{BwK3Ol!c-$_IaSqxo4mg?5 z^9nQg@N_a_r)ucHMRXP|a}Q5#1@!`DAQte;mtZMhhQIb*Sjq1p%KI)=%a`4R<77Hr zADuFbt#rM#m2T>BrH;`gdY+??#_dGuVm??sO&>uo)e(Q<$Q(I?l&p{ zHH-hQrvvjz$8D}I1y;o4oV(qpo@^*>EPs~MePfNu_tE6?vBpVrGs?zhm=_GHr|`z} z3InR+y|R=%u8rQGz!`aiGUZ#C`lmD%5mBjpn}1Hk_gwjNS7lDca=v0bpyR=6eOk@x zwL&k}KE<3sD)TT$Bz#6KbMR!z{1;8h_46fZX9Eizr1*8HSGJErLvp6_VGlC=T5FL0 zn#P0#tcU&wSYJqiwJQ}C`HZi+v2MO*9HM6#R)HEEq)`Rxz&`c#lS)_ZQO_2rZ(xci z<$v@7^{w2ggX%j^%Gv_;lJi+#puRh(zW=1Uvq1eQgR9gl1?qMC>kZ=>y0l&GQ9o^c zQfFbUK7<5!F)zEz_4$JMnc1Md@ma(amt6 zcG6Zjf7|G5w4I)kKZI>~SmX0+#v=}cPcpuauNdVSk7Ayu^fRuXgZg@ z6aWYa2msMb>yxuHDSsqPVRdd}XiaZqWiDfEVRLhhQ}0jHP!v6ncI#FjGAA;a;13wA z1EruM;*bmpM$Cl7=?w8xHwu)Lj&v>lTQU+M8V#TQqm1`Gs!XS5ZSrpKednBedi(nA z`=_q}o}j3qhhfZjwr#WKZkg|W>)^ol&9~<|g!s}+WccU|f0NaL!86h}X< zQH#3U@N9;Dqfp+n4lUEQyd86+wrAG^!e%h2VTdD(>(uiCuU4WD56=s$D~rm&6~iJ495;%kE53iWyw;W^wr4beVUPob9gA@JQn067$n{EcwEZ<08mQ@2z28o-Ejf{0Llaa z08mQ<1QY-W2nYbtOY5_Xmr_j68s>C~|kM6^KrgqH+qI=KvTQx;Rf4*xEH z|FkZDXxp@v?K=V;F{Z5ZgP~w-A(K`l6(jy2a#$xx?L3Dd~IXQ)#t zQ&HlpqAy4D(g@PLG>S&+G{&H@bPki@1O#{mqf3Gjj1rDqu5jKc+mAD7JWXJ7b*VWQ zmnThYbu1DLZL5_H&oyWgO=ijm?2Fo?;jZ3T0MptI{*+Hi?~;u!Qw*x0N~Y|8XrRX* z@nc}7!t|zv5Rz(xrqVQE-R<8Qs1Jua{IT`H*mk@{WByPK>|S1;-t%l~GR#dbXNHu; znR3Ayx~!9|oo&z@n#<$~0(x`uCFM>DX|n2Tb7(%Dr&EnVwG#Kj^d=C7?f&SBz@C_F zyTG7@bOA6Ap&}JOTM`x}DT+CNHK`f(1}&imsLa-27sxX;Wmv-hjrf}avDBbtlFvH$ zyu#ldkdn3BpbM!P6OIP=29)eH$?6pbt)x{bqp3u)DZ@IvR7b4_t)?}QgN|@F1R<~{ zJP7WJ>NaYLK7W zvAk}7tYf=`ZOnzK&T^7J0%UO7PAvp)ky)Jwi>ie(oeGxEpg)3Fj1X? zOyd*dG<9_aw)wjjMYi>J2STxiJsp9bSTG#&&`vBU8t#pB1j;)6p~+2LHEkp=bN*) zdwJ+SnDJn!r#A+S0{-q4R(a?XOryfRvB4U6=>UCFr%xI506iGD_<*A+K@u?Iffc&T zH!YT$^J)5wP7fP@^jZ2GY)ZVxO2;5*yE_7F2C+n+rlu+Dbo#uL`bvi!KEgCnAyn4c zE7@EY+YX5YW955zYgts0j82u@|AI88Uu3En+D5P09trQ3e5sWqe<{uti_OlNdg%~7 zCW&4pVSYl&)nTTo3Au0pk&r7V1tnjH=qZD~B0~;$M^`w13XMGyUvBb*ywp!e4LU~0 zApo#Dt9yHTA^`{r@GUJLWC?}jqF$X&#P#1=hhu79dYT@SKTj26Exm=5MbAs!`Wn;x zvvOw{w9P{=U{0omfWW0m);I9gv=8ZDz4Q`&OQ&y3yZv$;i4f)uR}zqZU_0zZ?cnYt z!_<;`!)twimuXD$2Z_nLU^Ez8sU*uwuh92(`hh|JMgN^P2iX{NaP9VY!4R%2&os!U z<{<}2GTWwhzjHKc`$heXZ;pWI|J6FGU#BtMc#@|=@^4RN=gJ|3hN(u6No>yrJgBBL9j zT&%rDL6{CAR*HC8pkYNc0A zQ_z_vcx%@)BUAtG<~~+3zF_L)P>*cabMdpw1l{sH`t1}NG#f!n^0iGpL6xL{gd|Wu z+s2XPMBe!N>~k=GiQ1t&^X(F6&LN#>I=zI82PwQo`sb%s8FTmWUn zoFg+;cNr~F1ROu1II;2fSxhgpp(=GzEtUh|wVS}|B9y=CBKD?${kRD6_cObuvCPnP}OoT{^KG;29k4 z|AcZ?8Snh{WmZkvUZhtrLOTdmmo`l5@tc6@o9FSZn(e4ORZ1vq%5%OY{$lThJgUJc zU_8szc(YgbCB4zAp%_#!FthcuSbCq4P}I{msK3j~i5!3V+?Yz9I(4*|-`+li*F#+T zCwX5oXqt1)FMN%x{h&o-n0AQJz~KfSXUF#PcZ@x&r2kUYU8yIMHFTT7sBb+Hp*fSv zSlZWaDH<1T{lNLwb@$~aLoE9=NHSUo3buLHLt?)w$qrH;^R~VB~=TIJprN|@VD zMl)mMFe$R9S6H*50I!*2y3aJH3!r{;njy^+#GKiAZ9OPr5X+w0IJLLkP5VO%P$hNA zXC`ITIka85mMA`X(4#UcOmR1IH1&;5?Idn+hvvAE=id%*S}$WB;tMCFA^W0YRkvq@ z(wka0)ZJewJ8xFG^uZHc9Hl{2IrHoM1wO}t^O>gOVn4bjo|x>xA+P~>iZrgr%Fwk9 zGPxN$#1)O*`cyA`>Z`l;gYRTLAVQC&%sq?~#)AXkB8@&P-4dh))0>its{;LC5%m3u z;LS@2v>`EG>MQy5ao+{kl{fd4Cw1ZI+5_fX%$7_tPz53IKg`wJoB%$ zjM*t($HL1!N_mDp?q{Ai-SnjL$nWvVY3MrxLk^;VZi9E2zKT0i)OYL;e4)imT|Fe3 zekwm1-mfZUgq+ zAacMW4{+MP6uL#Va&mL=*lM=`XEH-qaq5SH?DfPELZVTTr3%;W z%m*(&LS14C)K#yBB7R}@nv`;Vg#KED3MLE394D5dUkd();ASmOiP;;W9Ffirr*9cX z#4a7ZGQyWgYW^K5qZOPiH1llXG-_wVzJq~%`0k8*xU-9s(!{@p0ZIzyT(c%+CQ(=9 zy+a%1*H;MCqAhKmCJlKU=`PG}wpFICbYow^Sb~LwOq!{ps!(>JZ{G2QqPk!h2hsZ(^Kpv_sRGWoFr}Y8>ozmdMUe2uyOT=eW)Z zxjC2Xxcag!!wFtSKwZslM__epS8cyua$Gubix$A?Cy8Zxaf_ayc@v4{EQvbp)%i|v z>9SF{w6=rR19ydaC@_%}QjLzw+%Di$K%OZTrB>(&`JCcspVXZ|rGLm)r$x=OC{;zS z5yi!(hL%O^p)*}A-@_d?a}Q2yj@o~Q6bvuj8o$g#J zav1~1qjAb>FJ0a+1elfTNe{rE6#90!JX$0CQT>an>Wx|!T& zE{Z`G&b^aQWTKZS;wO;AP3WnW0lV>LAIiY{oKQ7}lQI`;;~GJHG&k1=_sRAJ>~(C= z_NzmjC_H|z{Y~KVqUscWJ-uul!*`3JBOxaZHH%#J(3h!+ZI1iH(BE(5nYq*|n;$UB zGh`C%3VOB80ubR5+`Dc;-PE?=H|I1;T^i7vZYu-wp1R$kG)!V`A&MnaJgBLJ5esc> zKe#%JAogW_O?2LLe`Cf)uJkIXc_u{re0^j8S~)R4iZ=b{N5naI5K7%sI`Lu1=a7Oi z!On!qRGgWkJMFItx_QC0KAt zH>u@PUS=v?RKFvLPnr*&lTB5FDmSj&BMVx?eE0 zU4vhCgvXy7tYFnuk659IX9<=b%HEo-GL!NuMs0M=%FbSh=*tyhgm7 z7GB*?L-$K18Nx+P*lM|O3691cv@t75E0w(y-r0H~EkT;(EMfZ1GZjx{RsD?W`%2dl za4`$RZZofbuB(kM!Iq1ycu}#L*aHIMP!fM8;Z*tr8=I{iou_u)dMX+@za*Thxt*ag`GF zXv7vZ8-7o(MILk)J!Rb&l8XkJu{nM9st3VDr9jZ!Pr#E zS|6vAZ+=@re-Iif{PvB@&F6GiRE_0m@#7@^B^tPWLrT0aQSCMo77d?6DO8)#&A zQ?RgquVce)*`Y|wFJx<8GWzE{$ui5 z`+S6?I9$tg3Grz2c%>~}--&2iw7bf0lDmM8ZmKYM=f_6qBJ0Jp61!)5or~9G$>gZv zFOsKkIHew0!Y-rL;(kVR8D%G%hKmKxMurHUc(`hV?0)IjID)uL>jiyGrR;PIu1(Bx z5LN#QF$b`!jRB!ul2*_%0NA@r<}Q zBUtXj_%YWNY|+9z9v@NsN<=D(wlc@(1(ytUij&HpJltxe?{&@>2r%;5n`Cq&m277o zMKj#~=;%AAPlJ-C_=f_4_=Ra4ZWZ2@GBzd*9-PewiPJT#lD;&$=quAjEusNAX*K&i zcB(8BDIbm;>QZ@D=#U5F-LrS^|>Mz7X&tgIJ+0(t z6kQ>fO;~ztqkUYnkZgO)v&|1LXx=|@$MF(R#BxBSW>8Gf+r|KYe#?eD$)$-zR@n^e zd@GgxN-;y3Oi=91uE(uP|m)t1khgJxyq)_yYt9}@Y*?n+_Pq#d~e%jE&AU?iHZRRkCsCG2oxYQ*H7a_6X`L7t2 z1{!;BG{`Ep$*NuGSaa;S(k}6h(tu92qi_XB!_(TYy{$^s;8sbZ*qXpoA2(WR>d-Kk z>_#-t;9h&b-HKW_1H@*`&E0TMdzwFIU+SXr2e!yrDI#bKPl9s%Hl zg5Zwg_$J#5eY1*u1tvXsCp`*%(~5j~CZBjGp9GQFx4C?$fF*!9XB6I?IyI3skq?TLf2RedPp2Az0sIJu#T612ce>eO?Ud z`Y^>J_Dka`4@<;CePpFJ`OqSnO z&^>Wp7tK_fn@Mf$%)=L-$cM1AcGjx(Z%s6Rcw?+3rXs>Bw$l8fE5l>w?+NPWbhS&2 z!CZX3*+s#0-J>`7GFBu@{$R%4S&$`}j%Jd8g$T~GGh-Dz@D`fkOyDm=IG3DBN2C^@ zc5X!x;Bwd8@iOu<;)T9smRH5wm!~tonYO8jCnWpw@7km8vgpF^Wy|ArtWwo!r;L8= zB+(GO`jpe_o`;Z^dcS~z(%>bcKAvE`l`dK_S3^^uCpW)UlUbGfd*vi?9n|&ZQFD>+ zxd-;yu0YQk;h%%3P=2dVa6lxx5^u0Hp_PEO`@CB-cI67dLpl7aWa`xAOA)IIt6zxw zLR52BuZ+(r0^LWjuy|i7<7r&}JKp@WfWAc8sgC=C@ZHu_E2nph*pZn+3u{6a>fXvbqP zM=MC|>5=#A=_Ndy%n%*&zM11XD4H-6q&OCM%K5?phmSUh3P>r_cVqW9p?bIFy*kRQ z8sB^_mHBZFKB|`x^@&D4@P`$b1Se;n0cHH^hWSgrg-=#k3=olgThMXDb>bgl0(XKT zv>&U0t73=vr>8T$dCxRgdBRxe4C-Yg0s#XAXOiVzhL(XE;zeBNBQc0tF0Uxb+MsZz zq4oi!NLT2S)b^TAO9gxUc~K!C(H7B>Sy|2SQ9t@6=cr7 z-_-&(v9n>ej7>iyZ$Lggscz_JuB6Xxq+AH)$-;0vcThPp=!+)ai03by%u@Quez~iQ zl<^%hU>fmj{@M`&lB7=8-L@83qbZ5PzPHF%{?`aW0=4B zCsJ-r+L%5?-#`=iXH!g;5(SO+XI}_wEAxr^Fu{gd5-d}`eU#%Rw zGOG6=#M!LMGlIa*>5s(uZ{b z)=BvL!)&||w=58TDcz-{dWNAok8_QGmy8>rc_@0Xx(D@%zFxP!Z9$Q~GtDnAEYju< zWg+;bMV^q0Xk+mcK3D>l*#`~Q!)T!zhCx{7Fdx}Z6|k8;k%Dp{MP(PgKQcW4?f60} z_-$k>ZhTH$l*G3WS)`yvUgtDw(LHgOBjjbZ4HY+&0`4{S3xYeg6%Cv&i`Dj=@-92i zU)Nu{`9QtZ(4Adzf)K9}VZ8jm-W<&?#?B?BhfM*P%RmlGWgLY$*Ys=ZY(N%o82@^H zPPU9t`R2%w6)PSi9bflfv&w))Ru>&Bk| zi_HEWiCVSg$3g%)-V-U-0WtkLHb@}hIzsMu$VdaRkz6v5j zW~=u(@A9NaZL;yme=1|=i)h&e5LYOsKk`E+6krL54+1A(38s>O6pE$a1>xG&7Ex*o zU-SS`p71vr(x`$t8n+4|W46_P6fu~F*oI+{ABD>MaJ)RIqx>@6biD;%UMX$?w~1Ia zQJ~?r;WlQo$N+^Mgd6&ObN{eV*3~nk9~@}=0;%`W(mBDNclo?@55hmfzzlKoX}Sy; zM1rv;A{#OzjMJ7sVyblD@nKeI|CCD_D_6i?RqdsJ{tOE}odtK9fhwaBb)v;&nt`ee z*Nt%t7f_Cdu_9sH?{6?@%VH!8!&64X$H@f7&d#{0P-%55 z|2<;lHn927P+F8G3jZNz*F~6Kg=vcEx5Z}LM49IP)WqC>VPfR|nXQZSbJKMcX)(wc zw@opNSp0Ap<I@8a(09@4}%kNqA#h6m_No_lO2tjgWMq!_$uj zeK7^)4$I9f=fWF$^Oqw%;j3N03j*l6)c&dj<63;Yb8PkC43V{@UaoXimnnWgIvZ|n zlc{}&yp?bwp6RRUFCn>K#A$kQI9u8+PSTz`nXnd*=AO(V4yB)ck#ojKi$Z*%9wEXy(@!vWib{mnWn`emQSVPo zN1!1WL`UveM?##v%P^#K;(Zz1Re|9+yK0w-oV+zO;Og1Ew^-trkEC~VuNZWux`j*= z=9DZTE^_QrmR$;M?0lYvnh|K@4_^3!Cep!OWz?TaC(o zKm&w4Jcgd)2{H9UYB(Vb2n&iBy*0(?q0K)DD>zXUzkfY4v>tFHDv}odA^%dvjWWV1 z(SattB?9O`6FWH7yT!g$t@o@rk~CA>v<54{4beFtYXEBnw}nS-Obkkb1))+72} z7OHabd#*eH6pL|;hXLwY`_%}NQhi=?TXmqUYjR`J*a-eOntmU0HH|*pk#OC!X_lq=YqC zQ?2r@9dQ^x{woghrA~Ca7X4KXU;UJr@tDBWDi-zeMPcFLaa&Q zDS7Zg3U}>9`&LO8Y0b`(1wUI84xW)#|F36?Se5yOLole=;6BVGSn-a8UrpxW^ce~ly_#ZWrvoe>a8&L+{W_`T`HNC zO?^;_iZ2&P=s`uMe%Zq3H#fq$1?7II@W7Hm`k~KxcJC8sJhp`!4Y6T*1oK0Mt#;C2 zDv!$g;xsdE4o<2*Ny31}y^Cq2GVUc*#gdrsu#$9#_S=rhyLi;gCB9m3hf1ZddE?}e z!VEBwjmc0MZlzWwR;d?PgMP#vQQSqm2B3QR(_{vure|0zZandqfDR(I+)`Oa>5PHN zRE}rejcnabxU~br)l0OsBhTfT8|Pg0j97!KxlU9U>XU5EnBR(=0_OPV%t%9g(f$`R zxfSe~qH;)y*S`6L9^iMjs+fyH3t;gFHGKUY<&t^6_S?Yzc2{bZ4UuF?W`Wq0E{3w8 z>O(uo`(Bw_+`M1Ie4zB+QtDHON^k-;TS&xwvRud(FBKkwGLO6v;Ba*6QskDs`o;Zp zig-Rv;Me?B{%5*5EDtfotJWSV`hBJfQj{~+W_Iglg^&uItGA_bX+VKuF}jYk(r<3e zKoJEg$!_|0;KT-1S+@2p$Xt-KWfG6Nq*5J(F|gvuc0S9Zf5a{Gn+wj_oupK=h+@gV z`bqp$wb9oPp8aS@jRtM-1w_(Xh~D^sm=gvG*^g=#7nEZh!5e2q+kkMvwT>xhYw|P6 zbvO2+Yg652tz=iKvf5-|iJ zAqw0$lzlGn&7}^$gEA1IsPd+Z3U?bCs= zeFV&4fcaT#jiPPf(F7F07lH8)2~HG9lL)tESWq)uclnd!Df3|v&5QY}@#^?NH;l3E zS_s*uP&O;!-s!AB?Cp`{XGJ4|i@ZdcZtJ8csMx;9zJg@tcb?q24q>RZyZKgn3Gk(v zK-*2^fiIjbvf)M{$7L{PN96cPq8{8`ok4*L@y!R_wJCT`bJ8?|F zx^@`e0Z*_seUGxMb5JXuJ=(Tr_K;9Vqq&%J)D?TXO_t60d5p)^+-;zF$X8Kh*MY>V z;;%uT{nhRM9qrQ+L^5UVL_I6p^zbedW~)5hXQf)i{K|cDaU4eP=ou35B2|hktSBPl z87!ijbUF0#`eLl6L^<4xy_5io^M9`x$xGRm?HX= zl3+p_MHl19@0u_m=HLA`ce&R@byWAJZabPyit^AOa^C$^!dN$mos%0}d|#b^raCuI zbbB(rw_Goq-Ml!_!(0WUh<5wgt2Vi{M>Ax?1A2cxl9Tg|qeF_u712SE@9*?|p(na; z=>CMEf-+yo{DtW%hh2@kzCKbg)ADxu-qPg2^bpg&qdY-y)x~VfBKjz7{t_}{g34%a z6}19EpSzd*pd7dtza zzN#5)KAjl4dE9V{8jUYDCsFiZxI#HyrcxVJlT;1XW1##n2dGAw{#qW9+d?U!(LDX1 z8}OG@WPjAA9e?A#9zu|Wut`hNjBLpV%RBj;@e4Ihui3!&Uc`Hbfhs5v;7vY9*7n45 zWOH1h$%-}) z7}y-St1N(e46-_5R?9@M%5u0CzQy4;tke5*^F%KbBIi6{z~ zhlt5Pj{9||=t0;pigS)KCBcB;gAXwBD6N(KwSu`mXejAtRayK~dZ~Mf`GouuGanb) z&9CHfEnO)%ovNYOw9*Zym%O!x@ZDgBi~>bxjE_i)9gvAsWD7cVSzp8$h?$2zYn}`xYqEpgtVBfC z<_r}P_CN$EzQj=NBv4zTNiBp{rS4HM0UO*<2L(?wP(_PSU(2A{wXy4wGm!$2s*^5J zaaa?D`**_)Z-KSrj!4HYSx=mezS^roF$)mD_R?4NBF)LA(THO}q+w>6QOZAyprk{m z3U|_u=06ifmt)>&0TFq{-j}M&g+iiLN(N;@W*`~PheP$f--t6+7-WwXqIN;Yi~kN^ zsS#_#ngREexbT%Yw))*E_HFzoBSP2{mkCIxt6Xv2nE77QE)BnqrG9z{o zaX`1%@Xt>&FRYM8C4CBKWtkOl8uYZOTB*B{Vb-Nrf*^xMt2{p0q0IMZ`VPDcUb zim=6{(jST4;PY5a=W5KuO~jgIEH-R7?E@Dwk_LF<3V333RDvNnv)D|3@*4gj(6fVa z3aBN7r03#xiKV2X&iO~C=?`k_A3ES{=_`6D7c0SirwIhM=U z%-76x{kKltNh$6s^-}z}lyA5psm73f-Bu2T6m^)waZW*&yeSUB2gpn(nMLj_B^oyM zA}1=MVT{4$Qe5PM+!O}+ln;gpXbT$hdWhMRzV7jQirq?5zO|z+imf*U%&dw(?u;zo z;mX$08)+Wp`nlRAhx4fh$P+WGE=`YI>s{?0i$wj~DqSO#2mMn&KH@wBGxir5>mWaX zg~VIqm)=r{Q&7lcKt;y&l&sOa&+;=%G9ylflTz0$7?v@N*dD)FATA05YNaeJ^rHII z!T6;5hEuOLQ+;HM#eyjgUS*+u3T{Q>CIhoF zb(*>kgFM<&U82sK8l=5cxx$7&rORSoa81G5b*8YTc4PT0Qv!2MuM^A_XYVoN0X)b7 zORn=;UD_|suF&u`FH~oMY_*|y4LWA%ChzWU6z%P6L)7@Px4+a3I*%hW6*sQD5MH=V z(iGZ6n4Vrd+wlYlDHzl$6*Dla$TO+H;mC|QhqCKJAEXBEGa!t7y026Dg3J`Tq2nf~ zvnM~%ZHRMtEUwt6rMfuzasX-$WcAo#5U)9+w#uP# z^=E3+gysAz+0;qu=b3;xzs5K{Mh3(9w3y*ii;Q2trS`G#O@Q(1^zn!OWTv@~1hOY< z>sgplM>tArG+4DWX6-Bm6l*1Wd3mGl-~wi1&XJYRc2;FkdYk$5x&u>WEgkOj)V21% z9YcUw=Nw~a2WmLMpef?EyJeEXW^}Q0j*NUeuo_P5SJwt^K(}!SGoDH-e(RYagp+fn zhT>P}^50>>Nx2uJ>z6)&IQ;10?HA7@A;%~XGV|P?dTS9@DP@QY7@a8lj=_@hLrj69 z?6c0d7H!;`kyZ6mz50tqnBp#|_SE)V%S4~SUxqF%8_p}MAnI=ksPG}NlR z+9ogI+bcV{YrG$z{F+A9k6b$PaEa}}#+X{$$NWt0wImn?4}P55;H|Yy(IbvjpE9=5 z)vQhhGJul;X!|(>cA`>#N9stIKF*=Yq?fp(Kc_k1T1>$kkNLQ(B1y#FkVH2+eomo{ zWFV{S>|)WUG51 z*Q5R;P9)j_Y=vjn0g-RwBThsQ%zh;8i)%u=PH(sk2%Bg7P5}V{2R}^9$2U6z{*x`B zN`3Xj*A6;&4A|U?5qOC8uvzY(Ru6Dak{B`U3U;{dSa;1e8GghoSY~RuoBx zKw+}~RQ*rBI{m+{{~e%t6LJWI{(q(w{|8%3Y63lj=O5wS_8;N>e*;YL{{u+Uvm*X4 zMgMb%1plq&UrtjfNr{_?>Hh*#MU7`UK|?_W{R98@zdESdB>l1y`!7@{LT|DCe?r+X zP*7C=ONhoUiOGT{322QX@t<-2&*?$_UxGRgP*CCul7<>mDyrWVe<;br!T+Zn@n3ZP Mr@H80GZfVS1Fg;H$^ZZW delta 25278 zcmV(}K+wOf$U0S!<~0|XQR2nYxO1B|1Q4SoXyjH8i`Fn@drd|Xxa|2g-)cBxyt1LYOAgc4#t_&P+EsGy+YE-Ij+sDO$;ClKCJ)x7DPU{{dnMKNgHuc836NB#p9Yv`u5EAOl?Mu2?+S z%ap$*7+({OVCwiTrdcHoo-XldD7>X+&d@49<<&wsq=uO}?GsY3eZ2Y1GU;aDgVj&(|Xl}*RfT&AM#$hqO3NT9ne+1?uIk9KKz zyk2_Fx9NoJJy&D4?nsx0x6q~&=_Dp=Q~&18K|!k8u*{DJa83FF*0@bu!SYQQKTjFV59_i`9 z2rLo#Y#&CgPl_^EW6sK)2M;T4DJkJMP^C8 z1FFfUW?BQPbwz`Lc(8piU72Q-WU^N_-V{hJHnmb47L@^Mbs)+#W)O%u>wL71DX%BA zDSsLe>RWV1rYLE^K3Xpn>FKWA+1ry(8|h4o&a$bK&Iae|&S5~@42V^00!MK&|l zWRac?!^&U=gc_M-lTBUJ4T+COoURb2l3^rvvyf|zd~LNUMCX9!z;7%b)4F86pL(d* zqOeU7>H`?9qT-QAPfX)sEog+Ee&DM+Ie*pk!KfNKvG8lurWk>aqn0(S=v-af(z&L# zt*x%537q4he>AuyxKnl(4@SdS@D4iHqMbJFqVqE3G@~C--W!N_Z4H8O^S!uSzBLeS z4Q}rbhP#3p-0KW)bOzNFKq+5f(}kiPC-erk1(!#{U4eLeD83b6;MZ^*is)kcgnvbs z*z`%=Z5UV@H+?;Uu3&9Xk8Jxgn=Y4aPmpc5Hm_}2Uf1f~egXPiARRwt(^b-OOiTUB zx_RC%(t3?e*Gg-V)0zd4Q0~(oM z_7J`<8jVEjk_{H!oK!P_Q{S9w@PE@ybgQu0XJO;KbGL1cM$Qdva>eO(=+js*9>;QG zmFL7FVIO@CdK$u0;p*zjzLZe==q|L$`sP(8)nY>gL<-5c&x2D%=mxj=sh#ez>0bIG zSj43Z(~4nP3$)~F+$rlEzN7{TG~1~*VVPO);Bk$39K9fe}BcM2c-A0 z4he_r@1qBqp7ri#u=-!TInWae`m=U%ZOP(zwBPBGwnB?_*=xZTH`cDJYwBEH*VNWh z+feSTtEH}?uC}$V)t?Qa4vd(d1eP2s-T|bmcLbv{(c+osyI&Xjee`umgr@>}=V6;3 zp*>Ipa5`!?#UefZ@u096)PHGGX(jnmx<6*q`ptE&o}Q3(zB%hHdKTD8E2eV-QGckVFl0td|1*>$ zkMG*_J$eBf0g4&}p>S#;0DMe|S4Yb5bSoJC`}6~gerVH6^fJ?w;X2N23iJvs8*7`u zPpxf9{$`pwEO0%h#z#Mf5t>_hyq{jBpIG!$n|?;GL5B=C488mMAyFrl4E0rp^0zp=I+vVYJ}+uADr_pfdG4gD526?j_S6NtscQSpM%l_1pX^m~i`VACJP z0*@Nh4z+{vvOA039D+1>8qNK2YymnY7=YRRQ*yJe0C-z{^cTSQYDa+Z(_8dcQMGM; zdV}7PufH?ROY33?$n3FZikdT@zH-_(nQC)tR$=b$fl3!5aJ%JR#4?G_Jsdo zu^wOW4Q88_1Y0?qd-`KrrN*>5N7r=qL}EdUt)x!Kv}JzIy z5ePTYSU*qTi53^xJc%bKqe8bER0+&!7%olN@y(egm1IInx7GN03Lk6nRGW)=T2ikJ z>4qs_!`H@w%L8zKV&bN+2SPD+hRrh>!PQ7?raqh^fPbj3w3hcY)L1-wi24Hc>ca8p zE;F8H0x zcEuf1%-OIkk5A(UiyLij;%264Da+9X2M44BM+L&&foS(~r;KqqYui?KBC?#+Fr>5F zsYY1)bU|4Q)H*ghe9t-S^0|%ITD;EYb_q8|W`72IKvpPL*V`B0CH*>VUe6m~?4!Zn z$c~^S7V5L;ZTJOzrp;%G8!=iGbRZlFhq?kiq6sWUur(q*-Eo4+E&HBr?o6<@XaK@l5B$ue}_md{`3hb(^B=0{|GBQg?DAR8=@ ztp8D)ALGa2z63?#=%z6l-kqeY1lC@g2Y4SkLUBa{*uKZX)*b8Jdh|ZPPgwk<%}>dK z3Wj#UDz^q=qL!uaH*EeUe+yd)qkm#>M#4p&#ox|IRW%0sW@;6g&rkC+Ha{x>a>3|8 zzj$R}$?sy*8G(&p=>?l#@t>L2Cn3j*FL>r z@$P*}VMm$u6|RzY+D&lD#+e&E@pZe(wds@m(>!A3vsIqtzQ?SnZ+~rTsb99X4Sqyx z=ZgB4JQ}I;ZDlLCrbaLd$sLzckZZ8Mq~B9Oxo|AiXf?)C1-2>_Ygm}2BP731NByPfcVhT^WGF?k_!O1?na8k{k@wI;`r1gU`F$0 zMQ<=3=nljKl3JBnj(@S$6yb*aq(H2V_P|LJKao|jO%XLM9S;nZ&!q31J-4G~*lMO^ zYbG_;wbgd6sKp~GS?Mt3Vl~TFvqc-4n?vDlshDG{QdI_3u_YSm?;GO4q*Oht3R_hQ z%ZgzX3no#b)E{rFxl%6-;VPeGa{=PJ3w-JX5Up{=0>4_QPJgu2Nwzv!RVQ8CSg@-f zPUxH_xcZW3$8P)*U?|&;evX7|E>EnwOldltr-)gIn zmiS12ynuX;WcS#rSHwC;3ovS!{i;uGw^Y_H-0|4KTWW``&Q&`dS3CuGT1hq#!f(l;mO3vPT4+XTh=jM~Tzts+ z=T{f0i+?Tk30qyFKAFtI3~oc>kjc!nl}$R zoXwKiN+lNZL{r=dx&|d{UqF5--@-IU__R_SiGO4s$>r0OKOw1yo*i-w{l5CFt!`7d z%fS~I*iC62cLWRPB!MjTxr{U2^pRj5zozc8)!hoxYqoW)sRO@eORTATY;~{tqLV_< z2Qkt9F70N{&p4fQlTMzRXmGR4Rpl8}<5TxRXdHEv+Gq5+jM5(R!4s;zni2WmKkEI^9)nn@MB(Ds& z9Vm1NURt5gKFoP-M&zvassT&wv(#1^C?McS9JCH)T?0k3Z1mARzJ1X&(v$;Uv^8z=6^89 z=j$!?iwr`oiALZO#FCDy`nmd*O_us~)|2#g(*9dp{Z73O1`ma|24VN=n?1SyEHGw8|NA-q8u@X{=Ba>wSdcLLpWT`*f>M!c;j4;OS0Ro*H2tm_D^#OCep!ILIdPh=X zW1^0x@rom>f7t4ulCKz}$?8oFh<^|Ao~_=OGy74FjrX+Wsejw*KidBHZtD(3HL(BM z>O=LBlfBR~+ZTv$T^)#O&t=Gc21!8);SI74mNiU_MZ2(qWHL79U5a7YhH2zLo)Nih z3WbAh5pOz1^T&oE1Q~jTqQ|go!)N4yKIcS2VR!7zp|s562O0T>Z5bnMV}GPE%4L$B zZX&%6PtagTs9PMVagYe-wvR-M%Okygut3o?8ze`0TWj)-F-C!96xzmEW85I{nPA2X zcsG$KwyiM`hU6`{bEa3mHFb;*{3VNBxPCbU8-AC@(lm;o#~p)AESsW{ih z1lyP>bRU^=qV)k@zA?#|Y=0TY*v1s&SP8+jYYPxSR&>TJz{1JDo2r z9UOuUuh@OYN-V!(MSn?U+0r?SODap}z{@mN*+#vjbKF}rSoZ@e2Y#_2{2hITnkXeCqs=zf8ta@8RW{%p3$zTMCC>yg zY(qBnZk%Bo9maath?twWn4Dn-oZ6~X`eTH#(KgOB&Vn6;lYiW^E4{x#*w&*r!0Y2Kv(J#9^QfzfzfJvu$h{;(~_-T?6hA(AAjvR2Lj%2ENudqwhHuOEOF{^9W)n@QZ0T_Lw z&)9+BZfz_Wt$(Q95)2~_9R)v`rx?3z<2>VhnB|xpes1p%#ynS2v!&3po#Y}wH!ie| zi;RoGudC|L=v+~MYJFR4XG3#)U5nh1TrLT>96`+|ZR1h{!CIk{;ae5lxgxYB6n7I3 zQ-)5Ml%aY!b;cDCL4Ch=Yos^mGd>0FAu$!a5aViiV}Hi^vXX0U<2uQ|*>a4xwzaNB zQg1%vdWjH0AfIsqgm+Og1L~&8mQ*LJXsB??PZBU+v8Iepxy1nlJ z-NDVG;l5-W_Zjy?#l$1xOX%ya&H?FiDBX-}P}s*%)S^@JCZJaO=+xTW zR4c)2DlORRGah7G^#76qmsD+Yds9Pm?Fz8$@_*VkeQ##ckh;{IE^mpHHPtpEkRI#3 zW|*!XDb>r?*5kRVwsn=yc+_!?oY1LqYaq52740pxYu12E*R<5FtUtqNB%I`A^1=x= zo$jG8uhrMJqD!(8_Q74i;Ja;1#e*)rW!dJj86&fF7?)~nsawVeX7(GHS(ReGG!BLY_y_|s}_jSvY>&CAYWxJAOM;xexbL_<<`E6w=UP)v^R zhs#I`#9n(rp{R`1fzgccJf#&)V2{-u?YEDd+r3V)u& zHYbmk(-rC0o2-Xr5^79Ic@|l2snp0763@MxiNjsok(8fvD`xN-lDBCDMPYqQ&lgQy zGa8whG4`GaWv(J;lVtua`R#$HOS6{%w)r5&*sn; zrkZRW77g{8hSn@Wj0i`3G|X0@zbD?=WW`lXR+g>Jd`gP<2jTyR+9#-cA}mG3^Sy%$DiuxGabWC(GbrQ?}?o zc5q&NQK`t@^uw>(>107K>3>UG<_vfMp2!~>IU4QniwDy6x`I0 zqOgcjeNL3zxyg~4O#BTBq4iO>o7ybQk`ZN^lWm$|6qLU^l?+Jg>!E3a8o76#&Q^5x zheO&}Wy_Svd3ZVl!8C0cn5le|Y$%en$fLc}#C2Ar^ypJB&?JpmS$nQ-4g;DXKMpOm6-S&e;svH+a-B7oDCA*yKS~;=ZNrb-~b9xwh<7 zx-%bl7@74>p6gsp0a7>NKagNTPoQ^GcVK2_o_Xe6rsI$NE5ytWFpFtm8HW`!j|V{) zb@jME`t_%0!baLtKL^+W%RYKp1d(JMb&kG|`OJ+Ve^q8o&3`(GHqT-@W^hZ!1tarp z_qJW~w>|7Lv2lwlwM6<%*cw%Z%FU3*<&plL?(pn*vD}3zPI{Kbvw619+?sLi#|a&Z zy-q-Jik!t<=`+uPpUIVQFnp#M>*QT7V6D2Ciz_QDi+!ftUr)nKx*^3vQ4OPyschKx z;_m*SRM%HE7k`IhvHl11|sG=FR4~9Ubzm zg31(rYKTO(_4j4rq2UIKubid(5e{x$5X%ESJ*}a5uzvX@1Hwud>an&1)c| zLwYx8rp2^@&B+br_j*e&{QuwH(Kk9%9)9fMPy&fd|3*b$v)4cGF|W_KjN2&L+#L7U z38MxXO3S<{=^GviC6;+hhF_GeE4bF_Ow$Oa@=^AfZ`VUFw-+A-3ID2-c6-@$tXQQc^w7$ z12keU6+TYmQJ&PXmyUUyrj+vIG!5mMD9?JFW~V>PNs?9yLy~s>ZfBAko zpC~~WN!6vvsw+}eR}SrU_26DbCSYE-n?_Ze2k54bB6Ba@a_|u>at20SL^qJ3H-9`2 zs3Pj4V`w{CV&Kj=EuwyErX942&c)YG^p_F4=o54vT}>Biq$~l7=1`0AV<5mpi{E&~ zcvb6^Yf^~1CWWYL97JK3i18ED8OBeAJfsc*uxSxnlxI;pp7MD^eg;N=mcpn7dpn9;~-W+qcuYaZ=lP7%Ii`HZlXf1m-6X$^!OYE`A+cTU9=E7 zyq-RfG52EB7pRTyp|j{q)J0#Tt@IFGKo0{F_@5pJv`0aX#{glkCPE7Ya3Y;(yrzlJ zmLkIS?pF>V%r$w^S+Sdn1Df5vW_D1Sth54$?2$Slf9 zu&>C}WU8eI?ciL9{{?h0-VT|np&^M5V9ig^IC>He#6k4@2CbrRf<)hcX zZ{U-24~cU1)}l@~_<#PBp^%mQR@qhkXMo}|>3FUBe>b{vbX9`$_wz{M_74XelNYeT z7d-}Gd}^uV_3~MN{YHI$(0m`$A!j~y3+hC>4hZ?m_wy*s!=sxjo~1D&5~vwV5S?)c zSyN#=NRVSB_!uF>bVwY}>L}mKCDplQMY#!{bAT&E0=cT%Du1#{AEN~cp4YL^hXsr& zlcF)sm*9oF5B;Gm!PP}pf*0?mqH3S}Wmo4F`HJ#{z`lb;<})-C!p=)}(=pXKyJ&1*^P{xqc7L{42oz zBW8LNbG?n(-h$k}4d{QwY;R(|w=v^ekn_Jm>A#~Xv=IV$CaCdS<9FbT)9DoBb>sK& zcjnMm;}6CkLHASWbmI-Q$@nuUK7(#CI*h-NsTuKk zvOlC^izgg{gXYtW_lAf#Pq28Y#ZxSvWpM@3hcpFVaQ!&FTurPf#anaIr9JA=iRa6TG|uytK0M034U{ zJ-m7^uYYMOdxk7jE~$995uc;WG{59Em4ktOz-nk~pO{)#OfLI))q#J(J~ z=9A%+lSs_Tkj+z}s2sH$bGLhT**C02 zKz|rP?L0DN@n*t@e#Q73@R<+m_Kvs_nAb4=uD=?wf2XyXEVr&*kNAhydS3VBMdP1v zzurx`(^B&uYJ?K=3D}XfH&oRKqH&+{!qx0cL+3h$kQf|?QW3sK7yHlLWCVB ze>H?tfEPoBjZbhaM|;VIyrZ?lEaaWqS%2p97-l}Ho^z!?7kd2sVt3I>E-|@q*SK(J zxo~q`xEH!`J8}y7;$fjr@IarHg3kXF^h<_?J~^k%0j*>!Pm4qrEAOdcflPA{ME zd$&`ARQF{-ynW2kH*)3@a3adXru9g@n6y3d}fkK@b!{rl4-oi_)zp( zN^?2=KXNU3Bl$n1rBF}PK7Xc}mhmz3?0-|vhh$rP;1K)-$8u}uoex<2wC+MwatLf~ zdfSLT$aMYW$E>b3JsApCq;QnWkB*^ubuhc1;StzTuATFm=ePL#u23z4NQhAQ$_n{6 z3I5%KgCK462#zl$I6fCAN`Cb0LfVa`iRGJD$bXRZ2fuMUS%v(kMt@mq!QHTKuQpY{ z6@)?G4Hmkca>@}}px<8}PWgAo!nYzmn@kRn&6{X6chh7J!tQUTGTxeU^)X9oE%V&9 zm{e&T(!SPYnqU&XoTzFPfo!9J-4AIZo>;W}Y}Z}%{aCa_{#CNzzri5?Lk#k}@S6+y zJ)q+b$}cj-o&OgCPk(ITzwP45ew<#h_CL4>eAJ88hQY%Tnhx7LhogG6Cph3!tF3ZZ zi!YP)YIA9hvsxNWQ%z+WEQpGI`8nHW(Hle0gn|suBot_ZAmr%#uPX3}CGoebf+lDDHULg(+ zN~$7NQ6&{Q0Drnc#zMolCV`h?@A&`Z{c0Y9FlUb3LN$LtEs*%C$Q)2L3AMB+7x9x? zKA=`6)M}_xfKiR@vVz8TiIXf1_YNv7Ei%(U6RHJWq<&&)QI1nz<i}dNHu&D)$+|$$G6Z1zLkRfS?cB6 zD9(2xw!4dN<$Iv3@1=wMC3=?cqnG%8`YrFKH~7o+Hh-1g;Rom+{1AP>53`^5U^S0n zJ$v~$et(>2^8ud6PjD?irTOPF8UgMt)V?NT7lzAHlpkyuVc)sZqy)Rtla^cCG??S2JJTp&oVJ#b`pXP#FFQl`ynNlX@s*?H zb1vnd4wtm>RPC1{Vru`0szt$kOgnYl>21mMnwpNqNLu^A z9<`->zdA>_c^keHDl9Bj4kl`X(gd$Wga_a1DBDYKJKWkY&OniwH&&gWP#2zoL51p4 zjFz^`B}&hAzicp+a2%ra+=CkS6}zdSNejx=5EOir4XA7PtIudzsyOI0-QaDy$q_R* z4}Vv2u-fMULfkJAeI?w>7DPvF)Il3rqOz^DU42Twuf>*0=hcX|(vuB{~pG9Qy9Qf;bM0wu@9bTZ-{30MfM_Zw6!u&JZ4(k==AJF;yL%Nz@qHFnO zx{iMYKKn7<$FI=W_*HrcefOg8ets<#$$u}Papnkfq+V;aIm#Rj&X`P%<`^B9&!iP* zfmsLwMQM`pia8c_*U@x0ssVXYI_rSW*@@0Npr+_Vz3{^Z@=5kCH=U+KU~G=F=&e*} zZVheA2+ECAJJBjjeM-1y6B_*)obyidxP>1fOPiOMS)~0w%Ez0g-B0EtQZ7_CCx6tf z4P~RPC+YPLqaY7{vOIF+0hM$|Ylo$upyQpb9iwyQl~7-3go6AMRPE~tb$?U2j5a$A z@wqWxRG`eE_3i^ua8w9@P`qCSNbyGjQ#?Ze#jA2aeN6!4bDn%A)Wfi>MJ9klGbNzt zCN)Sv3x)cW#I#O9z9dsP2GIAbCx7(&+01a3e+gszYbdAJ=@|Y!HSr&4J^ztz<2PwH z-VgFyApT!L{6EnF{xe4Zg`VTLp?LnLnPC<1b_{*aoS;50f6tjh=0sBh*7bCzImw(1 zaz9A<<}v0J;QRpDV1{GS?>RS|6~e#lI#utw)=@(3A4yG${Paz@j?=zq(WdZGc5 zY96dxg!{nzVluCCP3G)!H&;+tsJ>Nh>{H)Xq^*Kq5{l~C2leZ_52l=EeVWAoq#}M7 z;r#m^!#X>~q_fRwE|bpI0k`r5+_QDS?X1uwRg|mw%LfQInbYY8C!RKEg4do;E%sxy zicqhY)3Uwl#U^-27bn#B+keX|2GkEK3e}IKApTrTe-x@$GApo!pR^xPKZk>*ekqYi zLj6X(DfN3tm%aI5N-5~WBmOV>7@ixvpmBVNroaW6r4&^vgHBXAv{+ems`62z%A+>r zPdWBjVG0N9Q#e@f-~fAUF^@B6VK1jrp*ht*f8 zD8Y~iKQAQlWBeLC1xJMMhA{lK+{yN|9D**ajT0VB6MXTb1_(r4y<#%Pmt&Ng9;-)9sls`ec)rgrQ#rd8(& zl?sjNdNz)MIz<>cbAK-_tM+3s{E)mNKO=rKW?NL9UzESkC_@Zr%)Ns)7Ud<36I_mL zb_&LcOx1Rg?M9Td;B9?Jt{;W0&hoX>MOmyhQYxf<%%k*Paq7Kl2EOf`n&4`z%}V`-uqM^n`Vnyrec zLQSHDYBDWT$54}+LY-agnWR7iVwQZ7*E$i*1G&OA{LqTt+ZH%~&HNu9jZJbxMHEr+_f+N?Hf5acvdv$+U! zSbPah(emSiqvyy^o|Yfctu6fjXLH%sEj4_rm$ues#1HGy(qudRkD?Wt#DmK+O+#sSRZI(y78S`v# z2cP{6R(}9~`ST2JX#PXAiHE(gREtYvxhpIs<&LaSJ5;7omoQGfoyL?^IO1Kt&sYuK zKlDmEBQjkg9<`J#bqbAEwKPdBqnTeN&mJc%Zn%XRFCc{M5J-$HYR zWLQCnDzna9>8k$XRIm3^z1~apI@L7?euJ0nk)QJ6Z7I+%Gp^3=_BD64t+v$L-K^n@S9=FPYGL(hRni$)3 z%73jjSulDN{9I#sw!B+aw!GWeGVy|nawU=PfYr&jAG#AZmL-h7RPt?sn|!0ZYO}n^ z++%EKAWEaC$lPzly*Ls*w)@a?7&|MR^Gj;)kSxqf=j2EZn4ck^K7U~> z%6Zr+j&%%Dw#8dPS!_Ag0gifPh(vwt+P&t6AC>~*GGg-5^9AUFrB22;+E zebO}2#bUZ4rG-3EK%V?|*v-7G6n`I1q^fj}alz!#qb@o@(p7_woz=NCLhbZqb4IF= zY3Q|&G*35v2dH`SH_%*|kGkGoP3g0g!w*YdY_IW&hSJ9Jrx`%kE-c~#w}2>kJ6Qe#%J}%)rH3G`s2%m#^?0M z_Cn(>{c&lb@p=96r9$JLgz?2kjSGYs*mL3NL@ESkXVA$Ihfb8vrc)?D^@zq>s0)#7 zH(Z-I8Ri*UNIT5+BxmoV&5Mc64f=Vees=0-KtH?mGpL_i^fRQN+gtRrS3e{Axm`bF z=H-~7-`rvDa=*^Qm$Y1HUQ5m`zwg6+xsLMqY4g+OXL9q5a$}5nLvEgVqj|G=D;518 zP)i30a`WO**)jkC&}skxP)h>@6aWYa2mk|&qmvFeDYO4NVgdsLjH8oeJu!d1_y2$H zOzvcIvyhOGVKXd3RyNs81Op*~U;-G{0E&}jfPrKt&P)Jtsa9O;UaLZ@w!TtaXhpOk zKn0gpUv2Bt_PxGtw)M5IwRW?+D}29m?wvb#mIVC1_OtcQJ?EbDKj-}Z`#C4Ra_ZO# zBATb|^O7JQW5MnyQ_hw^Ocq;$Q4m;N-lC`m!>Uc)2D8|Qwo@a4 zErDHASNLPGKqNH8m-Q8nPm*k%PI*it25Fx|1vE^jLW7EEI8$D7UnYM&7G4mE_^)6p zFSiDDthuftL!C|~Od|)Mp-!btMTxJ9z8uXpKP7=y;rIZTEV5a1PzE(%64 zN;qG=a(0t>#=@o;0nMu}CnqrA{_H*Pux>nJFKzFX)JdyZd4ROlvFn zQ(lqYB^zBT4639mrtE)cpw}PqV_>Gj^rnRnk{W}i&{SaE{UD68FONCJ=_L{^+v6u9$2)&!G8qAutc2A{9Sd5*8#WiaCEZsTmChEuu!K%;sP> z$TKx(Si=8}_?rT;*q|kn&pPL(?js|xJlSYEkrxhrpsYJ3l z!#ccFPi+RRq*aiE&TtO|A+Rbu2=0pN8iUr-I#Bg@bxFvZGpNoQ*>JsVxFLm9yoFlJ zB?et8Ig%BON*#ajQZ8L)ke@oRydHn7bE|~!JZJZYt^UZ$z~y~`P-md7A`PlmvlCX; zMFE{Q8?;5zPqPrMapKl6QJsQJ;}hdFcXtQ2_`4TGw)FJ`Lb1kOoq^t1FdXvGb}T3w z?u&E=$~yg_$+5DIKv}4-yL*b4w$gMDh44M*j{x$t@1uXH*PzSQf&;st&KMPnQ{yn7 zf%rHMOWGKTgd_F@3W=#tD&r2ONtt+*Nu44zT}tK^2JNORAts&SUYMA3QcQAk$u#p< z8*~kQg2~$z=nljJrllHIp4zk!4x~>m@RJ5zuNK&|y(<`rW`o2H2Hi+E!7NVnN27s= zTHT^x)Zc&69f17sdYx`zDoxCKLA;e(xR-90hSNj08Fagxd~Q#8N5D3e^2?nD-6g+x zhG^3VfJqr!c$!5VmJAAMG* z&l&U}JruY2fTKA<5-{TjD|DA{SSU5;^YjIs9x;FD-{_05De)f59fP3l&Iqg-#1eg) zn=97n^d%?t zgm+55)X9;*9OsI~X6H=3bda8uL_Z;6eoD&KVWuewxo`lHkSiwzC0_^W8H2tmLk@Rm zcQ}6vjXe@yZt{e@)K5nZI!4DK0I)kN`+9pL0SF54EiE5p35DdMKAld)_1{{DV`^S{ zmY$T4X9}^FzCy~P7o~1}ooVh_xw8z~=AoA`C(}Ye;L;@P-|^M759wdM^a_1Tr*BKU z{hc@xA*ZO}CrZLGMBqnQu(O_)3k}NO1PT$q(dj|a{ z{a4x?WMj<1wbS1XL%6&=(;ypKh8!TtY@1R#)sl%q(&@hq`T_kA7R28vWu585K{;XD z9|ytBeW6Y{%2XMez;;XT|6}@zPH!0WQ~FtwFGw03O1Bwy*58SUsjPfRic+*Z^rC-G z|HCxaVZEC}p+Kae8)nYdQ!l+qzclE7rN{Py=dBQ0|CWHP{ z=zH|OP9GTbA$`O&&X$@^IQeKG2FCb9UH(W{gIR{$xmT}h+B6royCto$)u>J``82W; zWsG2l~Npsgl}Z&-gx8IRL>yulNABI3x*%`gNwv^pAS@XIhw%J%w-H6ES> z5kzgIX2BM$&dcRop>w6dRZ`IklukB;BY`!6NK{dgx@Q#%$t%}U##0QQ%F~b!V1zaq zQ$}MeB3MBrhTv%O+1dX!lF$r;&*Pa`J_bpO0Bn6u(F|x3&o+1t&rN@5l9JMjAvGyE zsPk~GBvF^}2pRqE8H2-mo@elUM!uu(@OSqGmTyjpEaM@2rpz!$1zNmN&ZL29X2y{6 zj8pJ%qa@IjAYci?*%El0ml)j4OOZv#!nU=M(o(Tup`_npa4RoEiX+jM4IoOsLBQUy zu#gPu^YFzGOG|%J-8g@*gm8C3VuB&Rl+!dvevnrq)Z;Z){3nAQUT1K-3U)Sk_eHlB zBHQWHd1E{wwJ=*NBS6@Z4KgyR=S>D*CR4kt?m%cuY%A)yLlW+k(v=Q{3>sydb&|j{ z9)?U6Nhh41i*V53Z7NhZgJYe$llDj!`C|buZlUAcbSE!Tb2LSbikX+wJcR zNI)AJGHD2ijxMBOGR7@bnHqoI;4j4Y5oFjVJ=b*UUN(Qp$9{vqBtwa8*v1x9^3dl| zgCCRFc_2+nP7A3>Qaeb~3u(Cd_Ju+!mcx|D#|XtH8D5u~hT<86zbaE#xjDGd9}UPI z3=bpfA0eewmeM4(o{t)Qj1l?gAhd#k?F#IYHcCc0&GPfJ2A|-Qa;|+HQOl5)lxOmy z%G5k>@C$!(3I?XoxC_c1RdHH9e_hh~M%qS+!%)6#@V`sUU}RdtI}z()1zvuIzoqlH z4gL3|5;n2Ea|$iwuDIhX((Me++*G?D6*|lAA#~3>Bb{@EJ#65eak!J7GiA@NXKlh!HKHpK;(s+rdYcRDNmj|MIV3PNFJ8L5f~Jcn1%^ z1vT+{`ECBK&c8GG_Y8R+mDb$iQaA!8>D$7=kdmL-XSL~+N^+B3(YiA`)V!4MPWZgYPY zWH=34El#bfLVXWma(ql-$2bz*8u{84CM%quEL%N8|aiY}%aVw#xF zRF!P1fode!0lk^JA{-6wlJr&tB0a&Vm4_@}yR5NoQ(NPLMUcgokI}bI4!&LvKGP7h zZqs!`fhM2DinbkI- zdP6Kwgv?!?Wl$V2xA$@P;_mJa1qwwAv_N5z#c6RCcU#zixw^J z^77m}^WHl*nao7y{F4v)kU9CC#238~O`cmY(xkbh9#s0Va+o02^1J!mN=Y_uy-wgz zql|vj?-PYs24KHnrNW=>3(f~(HXp+e9Yf|OF7-C>epUHuBA9svwW!8PXQo7^F9Q>$&D4*66)Lxj8bgFI$(w$%|JtLAg;$%W4173Rf zS!UXq+W4_|3F)-_QkS=c;mNy?c&p+oQCWHy#LD`^=S=+M+itMjwzv%)2n{_5h5JP7 zX%fWR^S&Ecv_{T3+8a$b6ciGE6RR_t>v9m--Eb{)1bevV(#nTz)8FBa>NPoqXgS%N zV0719&Kwpk6s#c)%lZwh^)xOKy5oqF!xU!;1omUiJjWXg#rpAV(>(KCsNU8)p>3h~ zwEraNWEo)@S_r`qIYLIOmYyfO!eC}xS1Z?X%w@Dyzx-U=Hb4L+Sm2~vhr_7N#((=y zn(0Vyf*}}p+}X*|GX^IDeYi6Qq};|+>6=_vX*t;|x^)inT{Ac}v2<0n$xCfYVRmz0 zd9n*s7P9+2bnDj{zqNtFxzi2eYb=827CC*Z2Q-xp++UkT-zW_gBOXP=I=|gNrkk;U ztF9|&A~0Y<#_;(>eRAnlccvWD-~i~bFbtgn|42z!7ehKAdZ^0Etvi>-(CiGEYVX?i z>~*zt#uhy8R-q4oFr=JHLJ2is93DRU&tnOpe>SHh-a^Q{TEJITNTRx$jsgb)|!W3tzTneh{M0ivBN0 z^1Og#41^YhNdYPY7HPAS&H^{(jooqZj8H5t_B01kkO2nhvtPz)%`) zCnSLqEvB;kx$ew{7Gi3WT~qyP(Wma;kTtln!tAv`#i6cI zG5mmOUA4v!4=Ivtb$oiXL~k7_cQVzNW?><94e5pWO(i@n_+n>{be18`Bli>FdbZ@d zNAww}euVbQ$;CJ>j>@XGj-FtW1yw+8zFiTGxSu}-(SdB@cL{JMz# z(PE|22h6ww{E`SZ4`DB;0K^>p``|$H^jxMH(af%)25KDW^Wn#S!nR{QaeVibqZ>4R z7?d?K^W*v*p{_nr;}R|7pcXQ&ORA_xzv6tuct6Fv5g5uJnRXj|w8p=2D$o!TJ@FoK zvDj(pZieUuJn(Eb^euZU9bs8TjyVek{#ycy8r2cABEiAcBnuv)JGUFKmD_@uKJZIr zBt;DNHg8Xx=vB_i7m7YhZbPDyrf00|M20n&>+rIex-TEKMK;k ztjbD1l^2vESB{LQcY|}*3Wo#WeFC~KHKQ_CHsFCY>E{;~>KC?}^*22hNz6S_*N)F* zP7#4|5~Nql4>r?fDsANe%jWQ5Ha0HgnbQv6S+Uk524h%pa5FYIN(mcoU$d0EW0gPK zg=+f?>`%!nWS0Y>cqJ*(zhsNelGHZ-eJADSk=#7W^5c_3{{Gv|8v!Z8&W5Iy4fym9 zG}FS5EkDE24LuKFQEZm`k*5)!CBB$WIYY;=qjDgwVk6dR*hEVvqy&bxEkn*6Yzw>__Q<9%e|YF%3PJ@SE8*QzmxxnbCA{% zN}R`We9I@)@6=Fc^qwm={5U%JT2UP?bk(qzuv=iJ6mtglbD*suk&@CD^Gihn-O+n3 zE^J%dlKBl6H&ZO%0YSknoGu(pX&_qM+_!x2g5fr^?GmgpPa625cS_MR%E#>^95fL9 zcV9y{?X5ULepe=Vg*w@D2X$nws|*OylBnpDbA%NT zRxggpW#lru*wNsj_#VSntTb*LofA7IxjWyIQG-9EWt})*R!2nPPP?c?d6fvxOcVOM zSA>(JpJkApHm^m9D(4s$7_+>j9B}h|K?KQq`2-ks&QDp{HDWaxRJ57s9tkv2Ec>7? z$IH{U_Kh?9t{u%ePCL#uYfuO)cJc&5wXQHDJi}Vit7~`Zct!4NQnwJm6!XSyeDP1p~43|R7^BvMxMKh+kaF%#RG(7Smv9v=6$J7meozyc?h105i$( zbq7r*R*1fo{rzg-u3Pv$tfpk6ueagdf(F`=h3I!4P1xVl!9ojd@&TMrYN z$(U6^uTJ*-GH|dBYf$|~pv+-9<)&kF%-uIQOZ}xqe1N-gko#9=V%0xO@(ZoFvrKB! zKWshHj$psl{K+?VGA#4{+0}R6oM2d$P>sj;FGh*dwaWg4#hDc+8CwQT_#s{ry@u1I z|3cJdasp1CE~_Sub9P201q>Ig{9>g0 z@0r|JGXO_fS~&r^O3lSPeZO>0MrD-d6qId%H4A$+RrCDE%haY5TJMQX?7_Ej#ln%c ze8=fdWc&m*b>lRR8Cd@9fH~wQXSy_M@uxQg_9=a?B=yTiP#84Zde64;BK9@Y77okk zxdgszE^6g#h4KbQomt-+DY07UYvZ6B9SSbWbyNiYYHR;IhRuS+Gx&I4m3N3p0=}kMy zJ>eIe>2)N0nr2&4^jnk{b7oi@`tp}lCc{xrY9lnc=RII^RC62buUSoI`ooZRV1+Zk zgwx+x<0eKv3F8huuJyerE$Tn2znEvl-Bw>}>)_rlnXBaHxd(sJ8|d>zEis(ZasGgM zI2yhE(Cnux!m#`G6yHrnjW$aBB#bi)r0Q)gzV+nW*~u>(KG*0{-q(qHY5c_G?t=4T zP4Moc8@t$+Sl$5u91#4;En24JL&eZbR6`b9x5mkh&7v*NTX6%ic1X9}`nwW0xvhX1 z9*{WRS5mEF+aqt>As0!}gn3D&{1sny2 zvC92!u$n!Pd19eFfio!Q+*i8QElK%lkoFx#62P#lOpDsVbJlAHZtgNRhFO+6VSCd0 z^W`7PA9{PfS1c))UP`oOq3`?qMv>0^(x2S36*vIyt2JfQhL1_3N%-Z;AY!&B;Jvq_ zEj8TdV3E5pmoNK88HhWtsXTg1#ZNH#o>t|1KhH2Io%k#KYBMYqseeQ8+i&?1^97D` z)e;}1>Jbi3aMQ+Xh_p(J?f6OL5r)S&0{I?odChV7N`mIihuRo2zpsR5VK>vKTf|zT zJLJM>yI=Q)N2(B)0TQx$(w19-y5l#@!oMZDdSv%zVuh)E0m^k#;g>wkpWy5Bv5<6+ zYO={c@pF%BB|CfZ1e0oW1A|=R9`z3X|Y5@V<%tr&iTDzf-q0psk`IK0H4l z)%2-BxJB&O(7JDfufcfq5-+HwbJ6(7H*9{ExYK&pN+RAi9i;AIV4SA=Dm9|Hckd3h z4wCT*>e^kQ@mnP*8caE}D>Cnyi~fvhw~v4!dakmkKWq?9Zuv1%3?Utf2!Taw#u*W&G^% zOkRdaD7;NN-xbCIHFIpc_Kn8j8uw+|}vQf=Mc=WzyS@`iF%i4|PUm>>BEY*0ac->Q+ z@Im$J0LFO24FWznAGT@svxcOEa>7FJbWf}kXLz@M7h`v+!lA_(=!^zCi;*63L+Bsl zowiZ@2is#A3W*E7#aHuHD*p7o%SDqq)t9b3^cbN0m#ZcX0}s!9UxTh-({k78Qw>ZB zjRIMO4PP_*XOSxA>O!x;8zKy(OfT9dYgTFln!rH|3N?o)&OhN%d?*T6K^2H#3*>7z zrjSxJ*@m!m=Qko37Ev0FJe&~QYVVI-c;wlYQ)pj{afg&5!*f37KX$=|jh>Yat~v4~ zRgy-Y;ZxKZ#^G21SdTKd0GIlYqt4JTEj*z|)aBMI$-=n~HMN2QeiJ{B+T${_RPP@L z`y6oj4Y9}OksEP)9hmqH@yA5Lh>dDNOQpR>4a{TRY|lctjcozTe+d}btYr5tB&84g z#;PQdty-ws-+0WBuJboh)eFR8uQnV|2I&=})DRa`k`>Q`luD3g7KRyuXl#+~v9_^A z+Z?l%8vi1x2g;}iG6k~1`bh%X-%%f;_+}#)pWD3_$@By$QYGGDTa`L4s~m zJRzcDkK46@x0R6(?0s(u8crInyeWUGaa5;N;*w&2{YGg016LH=(K+haSCAQdK;Jv@ zv-cp&!WUF8T~IDz{*8(-OTDcQnrNE%67%z@6~wU=xI*M`uOygb(&9hbr<;X8k3S`L zc5#64UDwznu3N)BHIVr)7y(c!`{IV}3&7QVLV9@~*$zjTzc3fLfo*s=|76|OCQx~^ zfiUKTvfDa^(w#Q3r!nonj_&6}$Fuzqe1|+c;m0uqZLZHpP`eB8#zUMKAapE8>UwJZ z>6>#K9DXHwCQo%}!uQaOkI~-{+Wzj;SxGO^K7P-io3vkS|(VV?(f5d}-^SN@w1A|g|FNQ9f zF0?Aip?vj2KPEX7TIIrKpjCnLP#7>PJUj0m-g@nZz z+Cy9B^{}sFQ7j9}Ic@z`@lU)(T1k=>0eClz91Yb+ewu&ZqllNvhR$h07`d_LnrnQl zEDj@)ZIl7Wd1prG>HW}ate>xzbiTitdonWnY0?+&vWgAf2IsN&*FI-r-IimR2ck{; zz2SWTSA>8Oy`I#nc1+>nkEG5o@$nv*0E9!a)I&P9K+eDj%TFljWE_#k8WHgxvA6Bs zLctzCI5=neU;Z9#Zo*xMB}0mE^cM^WR=@6B`=C|V5B!N#zwwJx;|b8V5D8Ij?*ryP zCVCSTh4_P?37YAW6E&7r*j_0_1#n?g$*O0`&Su6GtG1du(Vdz*?}scCh^5RmQ1`i` zNk28<8`+cpCl5mC+g?Z_!%1OaE#kW}KFENj_c+32$Z=q_``T(WSCzp+8R&Q*l{!t$w8Mgl~`+L+be96bGgRDpV1ekyTA-^f9+C>D}uJ+hji z=*E13EP=Q>zwpZaXtv~+`$7%Php3pxCp*IGGj}7WPY_v&Lv=J~WP()|Eob-{F6q{uK7*DY))olN z>yxX8OUw1n*sTKSy5OtfwH6&TG(7d065r;blDbyzdE)&5IN0JZv!&Q5q21_4mbWNN zo4G z)Fs}}8;ch-yF)Ky!QQ#bx!#i5(`yk(A3EQv^P#3rb>3IMYQKgcA~qc$-w8|OORWQk z&#AW3giNKBES3H6lxwwOAK=qOtS1fv{yh(zZLTy`exzsA*QOKpK^OL6Bk#t}_D3b} z&apf5LmUBZsscG`8?sE0**HY>WZm|-#w~%i^`=Ec-{>;-$qsC zns_XvN(lNuV$Lp$RLnXG%#8Un@h(1hHuXV)sE{SH%<&DOcfXE8-@m?pJX$&6uhGCr zCKP=_e9anH!_Pl~xEw~PVvW~FDZ0!W(J0kOuAVYwdazA+VD$}Sg-(Ni0AlhE)A=nD zLvMx|FP>}*ZRv$pw~Cb9Xy2D6BdJe;E>r1sSebM}F2*PPoHU#G81pLMpQf|gND;a| z2eFuZR5RKF$g`TCYl!k(R&if~TXG4d*AXsni3-XQd(>hCFNGD-G!hQ2b8De=M+rBRwJ*uh3z8BM(9Y2r&) z4*MS*^_(ZB^C;-zwsg=I-)0@VWo%D>qvV3}Z(rJFQEQd%Jco?@Epb!am7h=>z@6vM zC?mCPw-2=;cMCk)nE1C~aH^Bp^617MP;9}&2$#<6*EiwoGlhTsth;iF!6nK6#=st+rnzit>K>HM#ibi00GHuwHxt zve3p|f_kZ?X{`xvywlRKHg&Ft^y=nahvF7RySn5Mt z8F#sPyCqDrvSRLHQ6l>D8eapewmW8aP`G)NN6jSLak$bp2>R)jASBT#XqGtgw#}x= zcmcD}#@>!sr1;!3qn`yTc9k}mslLM>qk1wp*R?BtxU=U0L>DTJTpDx|%Nr|&1JUoA zK2a8XOe=t5w^DvFOI7LczN5BCL_x{&t7Y9LP0Yq)H993E*+19FYP<_?G(LB$R7PLK7u0xg4oR0 zW7h1#wF3mRGTdJ8zg?KU6~YJu90-onM&D4gv4XIwFOEIZ_#iU98*!$WHkD(}q`Pi8 zts)Kn2J@i!>GO|k^W*@S-muVM^lm^5G{@Q;5WPYO*)FW~q-$?_7%o2U_q`5|2185H zj@@Rfq*b^yO^T%*l!bA(0lyD0#$kl?GF3>;9>8?g$!jc|=-W!!u%Z)66&xL|#a3^a zL+4x&$&EU5t1@SS;X>EBNzkr{#$ZIw0_J-0*}1#=8q$=j83n)-^Dt^kZnRMh<0SO~ z;}(=ei%{Ju`&<=o`iyVCTa33HXkpD zxXgKz;&?WDs3ph1^2@i5Aq<@K@J~SuYyv0Pc$K_UF$iKDHg80fiCj;>^_r9k46(<4 z#(D;Ow*VJ|kgwpy&mQD&CSU9@sikYAQNqP zRCkX619;=-RF8t@1&RqVF0h(EYj@a+1SPMza%Mq`H>(h}k}y<0#y?B=G>g$NZR;}) zi9tnYi1^>28VHR9d-qX--J2-g<3wz5xRNF8?wgykakhFw0nfvvzLyPy8lBl?-6ImV z2@+`)61KK(l(1d*1d(#T>MoxOYzGRfNZ!4+MS)I1KTq3?#o2|vqs@%<&$W#PHG<=9 z>J#L_$+nqYx9K%F+JLJdaz{$qj7dw1e6%|&<2OQ+e+eU_31@`CxKYW?zVRCGI0x8y zUiuxwjkQItl%D(3*|Fe4_L8ki2l zRD`GYzL8~W!|$p=yDc5|Y1v;*XWkd|2)PNrt49RoTuSDbGA!r&>(u|)bJ8ssR8WhE zT*y;kjy(lsuSdFqOBqEF?ZmX+E{vE*8lvsjZWR?hMOD~QM9ZFJe@{gohn&;Boc`<5~k^m+>-tW4FI}3r3M((e=`gL}DEFUX7v#TwXTC zuOZ?F2;wH~aCXk~i&G6p$J%fmmfTlQ3rJ$yhxGH(0WsdSq$S;S^N@hM=i>xbFK>z- zH*qCp>?~ufj@*ux3*oO!o=BHbS(oro3&eX3En;l$n5E@e@21|2!uU%EIY*Am%UF`M zCyS5vSEFIzOJ_tu{EY_6b|-!KB)pUo=d_v>ddT8qu5QWmW#^=)OK7(N54pkLF>4Cv zc9ji3$=+a2?R+G8agkBT=(~zT3PS{1bWITR4Kl^W*n+HN&&Yb5K09AXhiH;Bi20WX z2T40G^2?*}z#JlIzXVHph@zjpeSSM-g5b%1f zPU!hX&B&nCa9M`5*uZrbEv8tO-OtiVT8tEytQN~IhTu~=tubMT+Ba`5*tvE>zaPKw zVp5Pp2DN{uc|G$ykGD#N>MbR3W+o6%*lxHvPr!2HAJGM(b6IW1XRQpHNP%QUZa)NH zWM;s|2u5l~GeX1CJEwK+%MR^!hgDfal^K`2Hf}t=Jn3{iHL64NDku?=ck3aQPmi(( z>i7~?z^V|W&rYA0nRhOlfocN{)AIRBs8u9dZcK;$mLhiRAlFXB+Ny42n1O`sMzsgv z!RW+VQLoce-@#<*M3TEh4=?I;8Clq1c@-?SBFFO6^&j!TqOZ0dRtd+6_DvwGT*Cpx zOY2T_WNW1|^PeoQGuil-1{3S|9MW^?*?wq!T@sJNkad|M#HRa}DV_02LpJXV#8;bb z?%tQz>qan!~aVah*}_E!h( zn$l#I)(~G_t;y1ZrJ}Wj_0cAhWmSMlO}_nHqp`GD#U9H+`v>W#gQd!R#H-b!e7URD z+I;B)3f;-kIiafj0K2ZdW!_`eD^HPT&v?%~z|Dtav||$z%x~8e$AMu--7m=h!N>=p zBI7@KUNLgp|AUb?n%hqz{s$p%6aoqSH%o5qM8h)MI4gwm3Y?>3@Yx>Qqaz?7puQGO zHAEz0g#Z811Ej%89`Dsu|9>EL2(q)xe*x(^&QwTcLJ)IjO2~^OA@~2W)c@b>p?p>T zpCl{_!FOT*FAYf-DkPb&5NCT4$hr&8f6Kmh5m-UmTm~JObr=ER{{hx3IXM6T diff --git a/examples/lib/bld/bld-wrapper.properties b/examples/lib/bld/bld-wrapper.properties index 6699dfd..f3f1373 100644 --- a/examples/lib/bld/bld-wrapper.properties +++ b/examples/lib/bld/bld-wrapper.properties @@ -1,6 +1,6 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true bld.downloadLocation= -bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.7 +bld.extension-gv=com.uwyn.rife2:bld-generated-version:0.9.8-SNAPSHOT bld.repositories=MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES -bld.version=1.9.1 +bld.version=2.0.0-SNAPSHOT diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index b4504b34a6e5b21abd142a61f1e22c871974c617..8f71d64fcfbffb32fa8e1090e3ff59e62003506e 100644 GIT binary patch delta 27205 zcmV)EK)}DZ)d8*K0S!<~0|XQR2nYxO%}eW%4Soa7OY4!2Fn_!WcvRK-KmML`ZgMA+ z3)$ELB9S$F1QnG48bXj@7EA&d7Q>JXB#_L+nF)()t@~EB*0$iTRjjoxC_?}hySa6D zsoH95Yxm__Yiq66mfz<+_s*R=$pq;0fByP#?>*al&UyFuJ!kUre-AuML<@`$Op<~o zM0z#`t2Xp@Rex=Z1p51fk*Zbp+fN2%n3QReNj^cjn*&<|RlR}GrmE%*n}eM(L7DS= zLOrpCf>d$IN|XG8EZwOmT(zX9H|QfvkZ&Lwj8t~@0NiNGF)7!gJjzc2*SaGb3-$@h z-V}^2kAyLGY=@wk#SNY=u}Dv7Q+3JkDnDh>7+&I7L4RY@4Oy8*g2r1kfeJB2=RhP9 z48<1rL^=eGZtyO*I*TUJaVAZ+=y;kUXxd1Kncff>2z7QhhP#5;dTnoypcxIv(7Bpd za)L!u8G3fFTi;>QbU|bES_Wc0y;TkpdV*0uO`{ARHp`-7DiM_LfKPV8KE^eq8>^=) zv#6XmK7Vf5INma5t^{(DqZ@icTY_Cn1JUl*V9ZYy_T;lInnNcE8Wjolhoe2QaKxTB z$1^Yb>j_V>XfF574sMSHL(!gaDB8jGr&)A5%@b7E72X!=4F|gF678+wfk>x@CsuRM z`4%lm-*Xve>k4;jcxPC2Ce;WsHwET|4W%m>w>Xur(+LGbT4T{#T8BlYKw1`v2+A7*qGY9yfa0v)o(+)zQ{SXO zstjwuKI&wO^mbKl@9WK`AZ;{hlSSPG5y{t`Lx8vu5UZ94V%WS4ZxmFWMr_xNDEui9 zs(F$v7WESJhc6bkyF!?XM^F`ECRaOuoqumpgqY^QZ!{LwN^G^C2575E+br5n&_QFg zRL8>M-l)dI3eX5W{lHgOVydY_Q8j#G=GO}?x`-}@%q(hH+_9{trDJ(bTU%XA6FA31 z|449Ca69iT7L0_j;7jQV;f?m7>U>y(D=oT;)$;hhz?NWbIMf-4t?G$&;|u&6ia`-wL)V&gokiE{ZX>|b zxasc=bOvjBdwJV8TJ$;I_ITcQYx9bh+PYTn_Vdx_O73`zMW5%6c`fxz>gIU6aO)Q= zx{X^4?bbAam~vmT=*zSdx@TLYCw~@95NKK&_8Q9FCfzQm!b9!g_Re5G3$Taqb&*Io zQkQ5j>CS|j0i60~x4}<$(A~^t_rSP%=WgqcgtrAYIO234^l3C0i(xs@%FWSm$VXp+ zo`&#LIJ&yB-xX>fJ%~15-<-;XT5Je|NIg96A#f@S-Ov_4t*3`A`Wig~7JqT*B53i5 zEOHdq8OqX+TJ#tb^@G@Wp>>;{(YcRsIE|`9y^L4S`NBbZ&o(ia@ z{T3adgU}Ulh-x-O!@UEsAafx!ZbGjmSeLs$W6`s82%0PwwzcZG;t_S_H!S)l_swEo zE5NRhN#BOOOYIK566x81S@k3}iISh5rx#3m(V~~=nhD`esgdefx0Ecz+^OwiWi+)A#LCuUb488jY;60pHJlvfb z(ZTUn@t%HT(QkP}{>GYmaD78fYb(bFzqjZQ^hcOo;HkDZ5RI}g;{~BBL8w2|UrhQx zi~h<+I%h~bG!w@2?o9gIFr>j5XS3s5`3K%Yr}Pi)o^0Do_*k3Ix^uL1=KKYc(S zu{K`kr}yb&{`v$SZPI9aAyhY{=MBeU`qZNT(0`$~16^Hu@oi!4EuB={aKvR-4?_wp z4&2?5Lk!)k0eUMKF$IFO<2|OSJ`{2~xF*LZ3|Ku@!wxH9wIb6Jra<6kVYQ4ZXR#;$ z4~zAxw}0UJa{UF$%9 ze~G8n=gG{!HA#0jRDYKduLdLm+VxL06e59d-AJ+P>e0NM1?^7H5!|#54i+j^_A4}o`z~uoH$H< zfqHeJSY(G^RAFx*%1M?uS)77dF|G-QPPYo0g=EYOdAu;139Z&_k zJTv>nTz_#oL`Td^x->)9##@>z=38QcScpBchYZFjUbBd!nfJw+mZ%YnP@`Ql2t8Wr z>uttbY>7H%Bfn-NXE$@jD8E=LMwz1C>t-cq^og^v$to|?gR+g5XkwiDnU0CYFBQuz zagJy~e_j_{(?vUCHYrNhEXopXVudMIT4I$r7k>e|YdJdM1A%nls6ePI5b3J5%NUoj zqHRgXX<&|qVV#{$)y&$f8D(pr*0I@eJ|L_yuC4B{s1ek;@7?5DJHSIs?6|2~2@_Y+`au%RngB z(|;FCda$CK?q&$R>@5J(9AZ>dY#8Y2?cz1`TjG3PgWAMNg7qS5iI^DRQ0n}F00&58 z)0mqQ1oxA~HcM>h^hd^`1h5M%aiO>fw21ax5Y$mvy-!>MU=m_;G&70 zme|E>ggd9RXyOjEMI)U)aTid)llTNQX;#G1e^H-6ETIsZ`vf8gSy|~5h!%2(dVj4x zfjD7GcP!Q)omW-GEwd~80$YQj%5Y>;mHwJj#R;c(ed23Su^xw&QS)_6JSrZ;HZakm z-mZjyx8sQFH-R!!Jdwx%I8`k{Hg10LIDLdU#Z#8pE8^H6JL}1$2s+yxZ3`?0EwP^$ zVPO&O3V8fMOFYdinB5r;#Xz;_*?&QTjB@2j!`L@F^~s#kJtGlOZ-^8 z0;eg+YEC!hrTCPbM`Kv8S>ko^6Lf^Sj0CVvk6W)h);sm+{ib-!6hF1Z&wqG9`NO+l zmED0T8w2k9jwOCBeu1roP%$)B;s~oLewmU(YYg;H*NQn?yerO@h?++Y>7{J;d#jpi{O0)18mRxS#di>pZIj7 z6*}>%Przl&s%UMhS>C#|xeaKMWJ$r$!3A9!DL$zLEjWs7c82?^2Da@8Rp~r{b{ms% zBP3VI3`=HeboWGCLxKKicR1#gu&k>SkfSHgt_(+`h)+X-*pB|727k{Y19q(PDvPS9 zGd_9@)A}u$%}5{Z?Ab?1c8m<)?kqnmlQc0DGCkrZGS*u<&*Fj$tO<-el&Mh z^aW#qu0SlnnO~l(+LH5`C$bY_u_Dq72aSDHA2& zD|*39y*xMLcd;ewIMpmuoMCJjaqP%=c_X+1zn}%k^!RT*39s zRgMNrH0L8Uz0xP)f~v;Fr}*V+xyF=hExAsfm+;P`!Oj8r&pWCb5k3Vr1sC^h3bKQk zts@A|)N(j9dt^>e4*)A3kn1fOkQ=mL5$JOKxGT6cxV<5~EvW4oMh#!8DZ_$hrY^TB+&a+N zUDLY>$|=^}=k>4T`IfX3`F0kFr;J&0fX_(AB$zMN&pWJ-wd8h7?vNKiQad@A?$yzD z$C1wRJbzI+JJ|9fOI|GDs%FH(D_ZJ3**Tkg>!C$HBQG=MXDxZTydpK$tapYr3>($} z*oP&2*&oQOlP58*K&)gPajhk<(>fwN5X&c@tqX3noRXl0BSd)(!+#;LgT`S#^NcedJNQ6;$&z1|J8dW3 zg?mDAIuOiUiJ_*vJrM$Fu4o8{Hf3CT*#6Hi@0RzN@?J~cC+|;Wi$($kgvTO*P!!SZ zl1LaFSYCXL%U`yvWSLJs00q$%4uPXSKrjjfKg62WXUc~YGdpt86pk$k4}`js`55^K z1b-`h4)pqkO=!!zUjHeS&I-pb)O*OTB>NAFfX zl0Pi>S~4#8@mU-g(Mh4rIErnvlTN1GpK{EcJf+MMAIXE3d|Ez(Ew{BVuLIwuOXSHz zmV8cr!%kV~v!Td9r*<$;N;xofl3bpeNPlo6&sF6a1Vs*KJlEDC?pC8b&37#MynMmV zQa1);-C-E|GmmmgIP#n}1lY`MP5}w|G9no|2uDwT&ywGlKY)?k%Fbrz%vbv4|9?SCR&@6JBq9l;LT7}9{J@fbm;V4CL+X|#4}aL= zr90)9|Fq;s@?Y$Bc5(XX2*>@aP5DU*?UqNvF!E8?pZ!>VYLO}bllJ6)CAS~86e$7j z?+JAWVejgjJqHhIV1jWzR?1R_%HZIZBQ17K(hR8fD^vMQm1QYE=UnoJ^?!gYYzy>2 zoiUn}WvNk|nahjV3dk#^LgiR0mlG9vI)~xS3BaFF`Iai++XXqcS@yJLsj-$Cr%iU> zmad+N1~$P`g-j7nTWC@455&5cA<*I+5p#n&&QgxV6gBx#)(hi?SD9X^D?1Oi!D{h7|U_g zRN_dQncyr-EmigQ@qbxcAi71+-lWgAinHtv9lhM)CCRZdK`OS6wQghvo^F3Q7ACp{ z41Kn0Fjb?aniLdW@v#nsHV0?+4%Kw7#TFl_b1c=uYR1}NSL&1!XsOyPwL)_uaF^V< zRyD7g>RjiLWjJp9G+M2;)EW+=NA*IzvnYxmRbiFPk(#}c4lw!W3}E=0mT7T zS29&vIy9gfS*iOJ482vcxVWTZ3-u6engP;<9&jk?!T_c0fl@MH#hW6^xd zQD0$3d4GV9=Z?%0KDFCc!QOj9KJ`_Ewkx8+NJY)2US!y~4I(@y(tM`5~`6cZQQ)K8q@JV95uGdcWCOT9I0I7{Q==Gx>f$N}{;OTEqga=D*ZP<`s> zg37DbR@y0gCW@V{ufWEuPFPn~e8&6}oPSl9=y`n#VO;SMMx<=gr+x*7t}N9()+SB` zD@%Rq*ESSRmT4HA6d!rc-@=C;q4$vaeve&NmZCjnwm+iw#MyIBI{B2jr=E6tU_)nD za3fpAKU?ZA3V~jBEX;1HzRqo*?$^S|FIrI#zO89FYei#SQyVrioa!*=iL0*KNq<0j zS!;8XXV9pWJAVLz<{D0wxQXIcpZceu`Tt*zTKGtyc~w(GbIoF%v2N41!X^%@bLVtq zl6j%2rm+s8viF{CvU)UE+jv-7)4J5B{$so0_L+WVcOcr0id8K&%a=pCm$%d{sXy0e zke$CyT&KdOlRfn9&H6gH6xoSNaDSz+pzD=sP0IfK@t<`7v?cICsfgd_E%mH;{%~Gi2yQlN^^a3>8h_xUHt8dq zHulSz_gNpW3`Bak>{J@D?w%;$W*I5*%@F(aU5IhTX%5IsR$`5T$fkil@HSrqOw$Kb zr~J&oiPXk)!9Mncv{&!BQeZkl4-@Mqp!iwylpetD46%4>TYS6z%*rCmdmMcL5 z+o@{!pDuD&>vJH+!zhHCoqt;z1N{zO64R}W^1(%`b6H!E&zX+bpS+{pu>p!hr{3Wl zZsx0YL$7lVy=ezXea;O-MDjyAyLS)a$!@XJycwP00li6teUhm$+4afNT-vJU8&#fb zXcI=d$Hp0H`;yquH6$*VF^WR^(yA}w-ntu|dNAQVs!Ux)#s)r3GJpBkI-V}gUIJLo z@3J~eU*I${p%a@=u{s_#1lHq2=@;eMbUX`qu^yQ2O$tnw3G!_0*(9hsT?g;XBc=@&R-48|U;>6P0Kc}Q*Gb-D ze$VGd=ZH~X8)N_1{eRU-8o!YBfxa0cgL9xl97*hOe_}HH_bQ1Wk^ljGAltzwvK$~Y zDU#zRAMps1iS8WMb@X+e!ax7gdBYAbD`@tJ@^%wlT|JTA6YWSCQoc14)u`x&MI8o! zVSDQw&%OT@ReQ(1)U+UNNpeDbo4pr6B9>1g>h5}&z9%NMxWt7EIz)&?!g02spB; zz?!3}YQX(bB7YW<({E>fIyTr6n2Nt4X(4^1!%5W_q{;9LDoHoZ2s~$+JAV~ ztD1k*kxagI41{{L=}VXR;|m|jgc`!a5n#HhRo+lIVc&DT)5LU=uk_e6iBKUdi_kbu zl6b~3rKb7b8Y36>y9?STV&7x4MZwnbS)OlSr<-7(IDc}Mp3eIg`fUzRpO z>#BA^C#Avh(MO$eG^Ecz8ibat{SE+j&C|fpn81VRHJv#myO4G;JFtU z5jv)+9)VNOJ|@F_OcDui)dZb80vn>5PLYIJnL6z7Z`i)Uqqe!|@MLu-4XI*hFlqhs zhqv-?0)OmEXXY74kXi5KGe=tCP;_P57qx)>4fwZ6(D>d!--fQh^whJL>9Yl$c=VqO zr*?q-Oae=ZumVZ0=$Y{d4W zu7My|*H<+c^+clsK@9jV7+C16gwOasHYNo4;fH?XN5+p$;}y$z)p!lkItVHOHE83 z&y(o>3-mjm|GbE%(GGb5&%=M7K)-Ku-cLI3i=6l8ocCk;UC4(wc$b3HOn>rWCjK)E z_Y)^oiB^>EBUO5kvfA^r2WiwkD%eZoO83yjy;OwiY3=)H#$K9PD)v$-$`vSA?WGfw zpC^~9y>u!+s!Q_>dfK;_7Cxc3QlKaG<2enJHPIMqrb%=T&7>A8qgHIY4I5iQOK2sX zP3Ib8(9^OPWsEh(;hklSH-9EL3qH$PaN$7`n0e7bs%yXm8E5ITAhS5TDOHMllm!}&eyPt?EcOI z`Rh1PRp_tD;3sJuk8fV;9hhlKVkR*Un9o4V^^EGW{PT=wXnniN-+$0LNL~ABv!Hzx zYO07+|4!OmF-Wm_#vZz$(1_C|z zq&wORjeT_2p(prvzjPs8Lc2)m4bK6p2yl+0E75W_*!CKlPuGHO*8!c^(*WIo{x@O7 zjr19?*>!Y_M#@5=ca7a4~8EpN!Ghhc6+G#yXN!LSK5*-U*W zjii9Vo!(0qI4+ z`Yxco1WtXKcGCAX5n3RC6X;Z9rY1t0ON5)8uM9w#ZOqcGz?w^#T`pmEIfTikn>>U$ zg^a@ho`x`osgnN&RI(aR-SP>g5^XK5bBMMci)5nRc7Kq52qpL9MxgeUJ@k|Ox8wBl zRd(UmrE&UQoc_c$2kHIxgY-eWP2+!n#{1}><@@MgO{Eq2B2NFtYm)ssY`+HV*Dn1k z5W;z@xX7r8i!A)JV2YWV{9(<@fZEK6i@ZWZ)2oKI)1@MZE`x@+25*~Q3n>TBA7k;a z&{%qvW`EJ^==l>`N^gKxZ$iJng)RP+y69)rOK($*-T|DS)1~P51^R`iPbtt*L#;-! zQKD7sZ7v0Fb12}W8;w$<45)JPerXc#KQsx}+!Q&7S<`xJQKuVxAE#(%$$vt@u>&J_I&a- z)Um1^WLlOV5EFQw!lsHBD39d>HIs?ZlCLucT-*&7u8r_T%57{@NdfEqPEbCizU0MaGuZk zvVZ1f75WOZn8?0Eg~szV9g;83+D*sJ%h*lh=lQvAlv9^6FT2nWR>*`QkJ5!e?Zxz2 zx)Sd%((TZPcR)~YfgU7!7=pV8<@=!txooq_W?~!sd)U@LK(zk|4E_Zp{tEN)K2_1* zAmSgu-}yV7f)6pnM--rc!2*ARx&95)^M4^={|7T2rrU)$K4I9bcxpi9X?my(0V zDO&7D)5FGG<5W<58r`P08K;q<8Sy2uKBXd46dfl1O$IaG`z-GQbxTb#(-c*vn14(3 zDNPoKp*%+JVsmd6^KJSbE+-$xdNPLeB5E+{j>Q_rXv!YeivR5KbcaYkK80DYpgu=9 z-asAe#0AW(1!5UEH7*(&z)Q`I2jRt(?-8y0M0-=&^JJp(tcu4Q@tIqu`6a8V91NUS zen?|*3YB09m2fmpah1nJ#=OX;(SO3C0x^oFh|x3)?-G&i%2)v?cskSr!>9rUPt%lH zU{gy|VGbGprCE$DV;;727#$>U5c{&xnoY_sCy>u?H2(_&(V4~$#D^E+)bmJ4vOyfihW}9A?-q!$Hf-ggDwz#+&?TK*ME_nbW-Ua zu@xS*17j6HBgo9SmnIg7i_45;M?X4V%C2{5TzobzuEgsaOqAIqA1N&dMz4RQk*6%@ zDY43IU}qZEe+8Vh8}PmePT3d5O)zS=>9?UV+yd8|L_TGS0?HO+sR;UJnixmZq2DS* zAzv(3a)c3>>XL3P*XGBpE9Yl4ug+ulCR^(O-?|y2*F)09dx3IWq%NO23`cUI4&-3 z$A=0+f!m%@ zAnqIy`e`2MGhOJD|0n2oj|hE!I_Uhvqod&D-lO2;%yc;6zlz|%WuwYOo<3yN_iMO- zo>4X;?8O@PID5RyB!AP5S`OKH^+%oMUKckb&$9F=vs?{BZyW5ZAZ%F}u@1A$ED#SA zh~07V)m3)s;WGW5e}7y&!X6uZ?1`o295AE#pm?0cbx&M8xtnI_PWzlr}+DxRHdsJR(qGsYVCQEA24j5+f%*#-Ev{eOC47v*5giG`W_#mmq$ zS7eCYhhJwXaq+|b;#EOS75l{-0$y<+KHe5^*575%e!uvYfCl+$!pD>Amoxdvg+6C;6O+HT`|!=B_BQ@nApRB? ze;*Y87ELF6vriiNWaykUzmB_oTM2`Ay(V43AU`V0$Bu1O&tpAZciNL1-0D4N0t+GOa607HoL3;gH-x4 z_O3m0dYqn4BpVQ`H0+VHxKiA5K$an+M>EWT=H}S7?Gs8niEoHSz+MBVgx@h+EOh6`5F4jK{)6^o})HTT)y z34(hP4?z2WmGZ=clrKO9@es`rUw@}k@dT{Eqf`k8;8gKAoi3iFYVj1+h`qE}#A&J6 z2g|UZI>k3>qc}+2;u*R`e1k3%hv;(g99<>8MK_CY!-xG2=6{|Zgunl&c#-ys@6+?* z2lR$`h29gd((lA;^k?xpR``a<6K{%1;w@N?pJKi5ze+-BQ%wit?MLR zj=FR3Wdcjb>$*%Rq#UEgXyrffjkvW9BQoe_nqjO!U8cyR$+E{-3I9HeN{v<8YWxFPKTz4FX1~gOaO-|q9@d+89P~~CT?u5CC4k%^m z@wCX4p-)JBLKDWX=3q6&MhzqqoU#{qflEg3z>*XpYI=ai?vdA&AAgY7v*6!=@3_2) zWu_cb(ggd`Feq>4)a3{5W&7x#?9jyJ7g=ZvjjS>9j<~$*To;su;RW(5fWy5WAA4+{oR~rbz+sDChsm7S!1)B2o_9EEp{lf8L>et$szOut`nvk5xcE03pKSwwkq zIv8sPHOZN@TF#;`%MvilEP6zi!ZuYATj7JU9L!QdFUm^#u{=>T%2MF%IJ({Fmd^mE zP1Ixb7@INUYFcM(F?zuYk3b*x86n{OAX#9KF#5gdWDb}qUUB@_GaW}nLo@naXy-c& zlS3J~^nVdOWXhj4nBt}^I1)F)DO1`z+2MF66SU;f#0SaG31IolNA&C0kGKJeJ_?j4 zLz+&(rcd=aEfZXhonS;9j-8;B8Pb!?n4psx_LAVM=V^ZO;qwk7O1qp?#Q^l%dx^z~ zY_zfk?c|free!or6$RqXxcvR9@`^$E2Y8}?;eP^LWpRuCD3E_mtpHQ}EiOM?RZ-5* zgYsi`V*kz2UR?f{Jys>P5>%OwxLRW_jlxRilTR)Hffv$Pc_xfY4b7Cb&>V~DRJnxC zlxNWrSx?L5GFmCmrggHx4WO`G7ayH2K00lDV8d&St;RNNY&lHec4G&~yAHr; zaDPc@_pfpLUxc+CuN_9o=<*=zw+Upazks1e18EPH##J`{jdsqu{QNzr^7s{3V^-lk zo-t6iUrj`aT4->C=X;X{q8q zn&&&Hs@wOe1@p3)R0V3Go=w~W62To)XMgUav*-B>c`3C_34kdy;i>rrB4xG2qS*xS`1R?3oX;KCI&Uaq1kvK{toHMkH?id+j0Tt};92d$OssapnUKyIK*WG8G^7u_#| zK*L7*mfS=?lHK%y>=7Aqv+&7Yk$)}2Vm#gx@h*|;#S(eGXqFLiu8fNFDw~Dab zE_TQr;xqC>alO1q+$Jv;x64b!eeyG!)9*u2_5nEfV&f9X%K$xKTxxs<+T59_13kN^(l?lnbvR9D91SJY^;8+H&unH=9>KkbgQGb&*#<{LB9u9ZtDc(?Z;O9Tl<0M3Wgf`9x%q`WT(^&2Z zPI0*{H?$twRCUHxa3|%JRoFsbzF&1i5)Qwf%tK8DvPfP*ro0l2coj{QSJQNP4VBAl zX$~CCQ{)Y9_F*EF{1!p}Jh z6G$wT&MtSt`zVzEaCUhuW@R|D+5E?8u%T>^+Pp`F2G#kEEWy~&fS|GiY6sDNb+N?b za=sgJb}~_6+qIja?{A?3`2~+%o9%F@k4g~EGKUr*9JxKkuGuwg*X-rN!{>LxL$KCe+!XdF?8%O7_+VG($f zdyto!dWGvl}~vxlBar3^R$a( zuj@V%{1>v)uj|1y>w55iSl2uId(5Z3h^*7Xgn>zi2Dp<`K>*(p4PYXIeN2wV#=2*o_{BwK3Ol!c-$_IaSqxo4mg?5 z^9nQg@N_a_r)ucHMRXP|a}Q5#1@!`DAQte;mtZMhhQIb*Sjq1p%KI)=%a`4R<77Hr zADuFbt#rM#m2T>BrH;`gdY+??#_dGuVm??sO&>uo)e(Q<$Q(I?l&p{ zHH-hQrvvjz$8D}I1y;o4oV(qpo@^*>EPs~MePfNu_tE6?vBpVrGs?zhm=_GHr|`z} z3InR+y|R=%u8rQGz!`aiGUZ#C`lmD%5mBjpn}1Hk_gwjNS7lDca=v0bpyR=6eOk@x zwL&k}KE<3sD)TT$Bz#6KbMR!z{1;8h_46fZX9Eizr1*8HSGJErLvp6_VGlC=T5FL0 zn#P0#tcU&wSYJqiwJQ}C`HZi+v2MO*9HM6#R)HEEq)`Rxz&`c#lS)_ZQO_2rZ(xci z<$v@7^{w2ggX%j^%Gv_;lJi+#puRh(zW=1Uvq1eQgR9gl1?qMC>kZ=>y0l&GQ9o^c zQfFbUK7<5!F)zEz_4$JMnc1Md@ma(amt6 zcG6Zjf7|G5w4I)kKZI>~SmX0+#v=}cPcpuauNdVSk7Ayu^fRuXgZg@ z6aWYa2msAX>yxuHDSsqPVRdd}XiaZqWiDfEVRLhhQ}0jHP!v6ncI#FjGAA;a;13wA z1EruM;*bmpM$Cl7=?w8xHwu)Lj&v>lTQU+M8V#TQqm1`Gs!XS5ZSrpKednBedi(nA z`=_q}o}j3qhhfZjwr#WKZkg|W>)^ol&9~<|g!s}+WccU|f0NaL!86h}X< zQH#3U@N9;Dqfp+n4lUEQyd86+wrAG^!e%h2VTdD(>(uiCuU4WD56=s$D~rm&6~iJ495;%kE53iWyw;W^wr4beVUPob9gA@JQn067$n{EcwEZ<08mQ@2z28o-Ejf{0Llaa z08mQ<1QY-W2nYbpOY5_Xmr_j68s>C~|kM6^KrgqH+qI=KvTQx;Rf4*xEH z|FkZDXxp@v?K=V;F{Z5ZgP~w-A(K`l6(jy2a#$xx?L3Dd~IXQ)#t zQ&HlpqAy4D(g@PLG>S&+G{&H@bPki@1O#{mqf3Gjj1rDqu5jKc+mAD7JWXJ7b*VWQ zmnThYbu1DLZL5_H&oyWgO=ijm?2Fo?;jZ3T0MptI{*+Hi?~;u!Qw*x0N~Y|8XrRX* z@nc}7!t|zv5Rz(xrqVQE-R<8Qs1Jua{IT`H*mk@{WByPK>|S1;-t%l~GR#dbXNHu; znR3Ayx~!9|oo&z@n#<$~0(x`uCFM>DX|n2Tb7(%Dr&EnVwG#Kj^d=C7?f&SBz@C_F zyTG7@bOA6Ap&}JOTM`x}DT+CNHK`f(1}&imsLa-27sxX;Wmv-hjrf}avDBbtlFvH$ zyu#ldkdn3BpbM!P6OIP=29)eH$?6pbt)x{bqp3u)DZ@IvR7b4_t)?}QgN|@F1R<~{ zJP7WJ>NaYLK7W zvAk}7tYf=`ZOnzK&T^7J0%UO7PAvp)ky)Jwi>ie(oeGxEpg)3Fj1X? zOyd*dG<9_aw)wjjMYi>J2STxiJsp9bSTG#&&`vBU8t#pB1j;)6p~+2LHEkp=bN*) zdwJ+SnDJn!r#A+S0{-q4R(a?XOryfRvB4U6=>UCFr%xI506iGD_<*A+K@u?Iffc&T zH!YT$^J)5wP7fP@^jZ2GY)ZVxO2;5*yE_7F2C+n+rlu+Dbo#uL`bvi!KEgCnAyn4c zE7@EY+YX5YW955zYgts0j82u@|AI88Uu3En+D5P09trQ3e5sWqe<{uti_OlNdg%~7 zCW&4pVSYl&)nTTo3Au0pk&r7V1tnjH=qZD~B0~;$M^`w13XMGyUvBb*ywp!e4LU~0 zApo#Dt9yHTA^`{r@GUJLWC?}jqF$X&#P#1=hhu79dYT@SKTj26Exm=5MbAs!`Wn;x zvvOw{w9P{=U{0omfWW0m);I9gv=8ZDz4Q`&OQ&y3yZv$;i4f)uR}zqZU_0zZ?cnYt z!_<;`!)twimuXD$2Z_nLU^Ez8sU*uwuh92(`hh|JMgN^P2iX{NaP9VY!4R%2&os!U z<{<}2GTWwhzjHKc`$heXZ;pWI|J6FGU#BtMc#@|=@^4RN=gJ|3hN(u6No>yrJgBBL9j zT&%rDL6{CAR*HC8pkYNc0A zQ_z_vcx%@)BUAtG<~~+3zF_L)P>*cabMdpw1l{sH`t1}NG#f!n^0iGpL6xL{gd|Wu z+s2XPMBe!N>~k=GiQ1t&^X(F6&LN#>I=zI82PwQo`sb%s8FTmWUn zoFg+;cNr~F1ROu1II;2fSxhgpp(=GzEtUh|wVS}|B9y=CBKD?${kRD6_cObuvCPnP}OoT{^KG;29k4 z|AcZ?8Snh{WmZkvUZhtrLOTdmmo`l5@tc6@o9FSZn(e4ORZ1vq%5%OY{$lThJgUJc zU_8szc(YgbCB4zAp%_#!FthcuSbCq4P}I{msK3j~i5!3V+?Yz9I(4*|-`+li*F#+T zCwX5oXqt1)FMN%x{h&o-n0AQJz~KfSXUF#PcZ@x&r2kUYU8yIMHFTT7sBb+Hp*fSv zSlZWaDH<1T{lNLwb@$~aLoE9=NHSUo3buLHLt?)w$qrH;^R~VB~=TIJprN|@VD zMl)mMFe$R9S6H*50I!*2y3aJH3!r{;njy^+#GKiAZ9OPr5X+w0IJLLkP5VO%P$hNA zXC`ITIka85mMA`X(4#UcOmR1IH1&;5?Idn+hvvAE=id%*S}$WB;tMCFA^W0YRkvq@ z(wka0)ZJewJ8xFG^uZHc9Hl{2IrHoM1wO}t^O>gOVn4bjo|x>xA+P~>iZrgr%Fwk9 zGPxN$#1)O*`cyA`>Z`l;gYRTLAVQC&%sq?~#)AXkB8@&P-4dh))0>its{;LC5%m3u z;LS@2v>`EG>MQy5ao+{kl{fd4Cw1ZI+5_fX%$7_tPz53IKg`wJoB%$ zjM*t($HL1!N_mDp?q{Ai-SnjL$nWvVY3MrxLk^;VZi9E2zKT0i)OYL;e4)imT|Fe3 zekwm1-mfZUgq+ zAacMW4{+MP6uL#Va&mL=*lM=`XEH-qaq5SH?DfPELZVTTr3%;W z%m*(&LS14C)K#yBB7R}@nv`;Vg#KED3MLE394D5dUkd();ASmOiP;;W9Ffirr*9cX z#4a7ZGQyWgYW^K5qZOPiH1llXG-_wVzJq~%`0k8*xU-9s(!{@p0ZIzyT(c%+CQ(=9 zy+a%1*H;MCqAhKmCJlKU=`PG}wpFICbYow^Sb~LwOq!{ps!(>JZ{G2QqPk!h2hsZ(^Kpv_sRGWoFr}Y8>ozmdMUe2uyOT=eW)Z zxjC2Xxcag!!wFtSKwZslM__epS8cyua$Gubix$A?Cy8Zxaf_ayc@v4{EQvbp)%i|v z>9SF{w6=rR19ydaC@_%}QjLzw+%Di$K%OZTrB>(&`JCcspVXZ|rGLm)r$x=OC{;zS z5yi!(hL%O^p)*}A-@_d?a}Q2yj@o~Q6bvuj8o$g#J zav1~1qjAb>FJ0a+1elfTNe{rE6#90!JX$0CQT>an>Wx|!T& zE{Z`G&b^aQWTKZS;wO;AP3WnW0lV>LAIiY{oKQ7}lQI`;;~GJHG&k1=_sRAJ>~(C= z_NzmjC_H|z{Y~KVqUscWJ-uul!*`3JBOxaZHH%#J(3h!+ZI1iH(BE(5nYq*|n;$UB zGh`C%3VOB80ubR5+`Dc;-PE?=H|I1;T^i7vZYu-wp1R$kG)!V`A&MnaJgBLJ5esc> zKe#%JAogW_O?2LLe`Cf)uJkIXc_u{re0^j8S~)R4iZ=b{N5naI5K7%sI`Lu1=a7Oi z!On!qRGgWkJMFItx_QC0KAt zH>u@PUS=v?RKFvLPnr*&lTB5FDmSj&BMVx?eE0 zU4vhCgvXy7tYFnuk659IX9<=b%HEo-GL!NuMs0M=%FbSh=*tyhgm7 z7GB*?L-$K18Nx+P*lM|O3691cv@t75E0w(y-r0H~EkT;(EMfZ1GZjx{RsD?W`%2dl za4`$RZZofbuB(kM!Iq1ycu}#L*aHIMP!fM8;Z*tr8=I{iou_u)dMX+@za*Thxt*ag`GF zXv7vZ8-7o(MILk)J!Rb&l8XkJu{nM9st3VDr9jZ!Pr#E zS|6vAZ+=@re-Iif{PvB@&F6GiRE_0m@#7@^B^tPWLrT0aQSCMo77d?6DO8)#&A zQ?RgquVce)*`Y|wFJx<8GWzE{$ui5 z`+S6?I9$tg3Grz2c%>~}--&2iw7bf0lDmM8ZmKYM=f_6qBJ0Jp61!)5or~9G$>gZv zFOsKkIHew0!Y-rL;(kVR8D%G%hKmKxMurHUc(`hV?0)IjID)uL>jiyGrR;PIu1(Bx z5LN#QF$b`!jRB!ul2*_%0NA@r<}Q zBUtXj_%YWNY|+9z9v@NsN<=D(wlc@(1(ytUij&HpJltxe?{&@>2r%;5n`Cq&m277o zMKj#~=;%AAPlJ-C_=f_4_=Ra4ZWZ2@GBzd*9-PewiPJT#lD;&$=quAjEusNAX*K&i zcB(8BDIbm;>QZ@D=#U5F-LrS^|>Mz7X&tgIJ+0(t z6kQ>fO;~ztqkUYnkZgO)v&|1LXx=|@$MF(R#BxBSW>8Gf+r|KYe#?eD$)$-zR@n^e zd@GgxN-;y3Oi=91uE(uP|m)t1khgJxyq)_yYt9}@Y*?n+_Pq#d~e%jE&AU?iHZRRkCsCG2oxYQ*H7a_6X`L7t2 z1{!;BG{`Ep$*NuGSaa;S(k}6h(tu92qi_XB!_(TYy{$^s;8sbZ*qXpoA2(WR>d-Kk z>_#-t;9h&b-HKW_1H@*`&E0TMdzwFIU+SXr2e!yrDI#bKPl9s%Hl zg5Zwg_$J#5eY1*u1tvXsCp`*%(~5j~CZBjGp9GQFx4C?$fF*!9XB6I?IyI3skq?TLf2RedPp2Az0sIJu#T612ce>eO?Ud z`Y^>J_Dka`4@<;CePpFJ`OqSnO z&^>Wp7tK_fn@Mf$%)=L-$cM1AcGjx(Z%s6Rcw?+3rXs>Bw$l8fE5l>w?+NPWbhS&2 z!CZX3*+s#0-J>`7GFBu@{$R%4S&$`}j%Jd8g$T~GGh-Dz@D`fkOyDm=IG3DBN2C^@ zc5X!x;Bwd8@iOu<;)T9smRH5wm!~tonYO8jCnWpw@7km8vgpF^Wy|ArtWwo!r;L8= zB+(GO`jpe_o`;Z^dcS~z(%>bcKAvE`l`dK_S3^^uCpW)UlUbGfd*vi?9n|&ZQFD>+ zxd-;yu0YQk;h%%3P=2dVa6lxx5^u0Hp_PEO`@CB-cI67dLpl7aWa`xAOA)IIt6zxw zLR52BuZ+(r0^LWjuy|i7<7r&}JKp@WfWAc8sgC=C@ZHu_E2nph*pZn+3u{6a>fXvbqP zM=MC|>5=#A=_Ndy%n%*&zM11XD4H-6q&OCM%K5?phmSUh3P>r_cVqW9p?bIFy*kRQ z8sB^_mHBZFKB|`x^@&D4@P`$b1Se;n0cHH^hWSgrg-=#k3=olgThMXDb>bgl0(XKT zv>&U0t73=vr>8T$dCxRgdBRxe4C-Yg0s#XAXOiVzhL(XE;zeBNBQc0tF0Uxb+MsZz zq4oi!NLT2S)b^TAO9gxUc~K!C(H7B>Sy|2SQ9t@6=cr7 z-_-&(v9n>ej7>iyZ$Lggscz_JuB6Xxq+AH)$-;0vcThPp=!+)ai03by%u@Quez~iQ zl<^%hU>fmj{@M`&lB7=8-L@83qbZ5PzPHF%{?`aW0=4B zCsJ-r+L%5?-#`=iXH!g;5(SO+XI}_wEAxr^Fu{gd5-d}`eU#%Rw zGOG6=#M!LMGlIa*>5s(uZ{b z)=BvL!)&||w=58TDcz-{dWNAok8_QGmy8>rc_@0Xx(D@%zFxP!Z9$Q~GtDnAEYju< zWg+;bMV^q0Xk+mcK3D>l*#`~Q!)T!zhCx{7Fdx}Z6|k8;k%Dp{MP(PgKQcW4?f60} z_-$k>ZhTH$l*G3WS)`yvUgtDw(LHgOBjjbZ4HY+&0`4{S3xYeg6%Cv&i`Dj=@-92i zU)Nu{`9QtZ(4Adzf)K9}VZ8jm-W<&?#?B?BhfM*P%RmlGWgLY$*Ys=ZY(N%o82@^H zPPU9t`R2%w6)PSi9bflfv&w))Ru>&Bk| zi_HEWiCVSg$3g%)-V-U-0WtkLHb@}hIzsMu$VdaRkz6v5j zW~=u(@A9NaZL;yme=1|=i)h&e5LYOsKk`E+6krL54+1A(38s>O6pE$a1>xG&7Ex*o zU-SS`p71vr(x`$t8n+4|W46_P6fu~F*oI+{ABD>MaJ)RIqx>@6biD;%UMX$?w~1Ia zQJ~?r;WlQo$N+^Mgd6&ObN{eV*3~nk9~@}=0;%`W(mBDNclo?@55hmfzzlKoX}Sy; zM1rv;A{#OzjMJ7sVyblD@nKeI|CCD_D_6i?RqdsJ{tOE}odtK9fhwaBb)v;&nt`ee z*Nt%t7f_Cdu_9sH?{6?@%VH!8!&64X$H@f7&d#{0P-%55 z|2<;lHn927P+F8G3jZNz*F~6Kg=vcEx5Z}LM49IP)WqC>VPfR|nXQZSbJKMcX)(wc zw@opNSp0Ap<I@8a(09@4}%kNqA#h6m_No_lO2tjgWMq!_$uj zeK7^)4$I9f=fWF$^Oqw%;j3N03j*l6)c&dj<63;Yb8PkC43V{@UaoXimnnWgIvZ|n zlc{}&yp?bwp6RRUFCn>K#A$kQI9u8+PSTz`nXnd*=AO(V4yB)ck#ojKi$Z*%9wEXy(@!vWib{mnWn`emQSVPo zN1!1WL`UveM?##v%P^#K;(Zz1Re|9+yK0w-oV+zO;Og1Ew^-trkEC~VuNZWux`j*= z=9DZTE^_QrmR$;M?0lYvnh|K@4_^3!Cep!OWz?TaC(o zKm&w4Jcgd)2{H9UYB(Vb2n&iBy*0(?q0K)DD>zXUzkfY4v>tFHDv}odA^%dvjWWV1 z(SattB?9O`6FWH7yT!g$t@o@rk~CA>v<54{4beFtYXEBnw}nS-Obkkb1))+72} z7OHabd#*eH6pL|;hXLwY`_%}NQhi=?TXmqUYjR`J*a-eOntmU0HH|*pk#OC!X_lq=YqC zQ?2r@9dQ^x{woghrA~Ca7X4KXU;UJr@tDBWDi-zeMPcFLaa&Q zDS7Zg3U}>9`&LO8Y0b`(1wUI84xW)#|F36?Se5yOLole=;6BVGSn-a8UrpxW^ce~ly_#ZWrvoe>a8&L+{W_`T`HNC zO?^;_iZ2&P=s`uMe%Zq3H#fq$1?7II@W7Hm`k~KxcJC8sJhp`!4Y6T*1oK0Mt#;C2 zDv!$g;xsdE4o<2*Ny31}y^Cq2GVUc*#gdrsu#$9#_S=rhyLi;gCB9m3hf1ZddE?}e z!VEBwjmc0MZlzWwR;d?PgMP#vQQSqm2B3QR(_{vure|0zZandqfDR(I+)`Oa>5PHN zRE}rejcnabxU~br)l0OsBhTfT8|Pg0j97!KxlU9U>XU5EnBR(=0_OPV%t%9g(f$`R zxfSe~qH;)y*S`6L9^iMjs+fyH3t;gFHGKUY<&t^6_S?Yzc2{bZ4UuF?W`Wq0E{3w8 z>O(uo`(Bw_+`M1Ie4zB+QtDHON^k-;TS&xwvRud(FBKkwGLO6v;Ba*6QskDs`o;Zp zig-Rv;Me?B{%5*5EDtfotJWSV`hBJfQj{~+W_Iglg^&uItGA_bX+VKuF}jYk(r<3e zKoJEg$!_|0;KT-1S+@2p$Xt-KWfG6Nq*5J(F|gvuc0S9Zf5a{Gn+wj_oupK=h+@gV z`bqp$wb9oPp8aS@jRtM-1w_(Xh~D^sm=gvG*^g=#7nEZh!5e2q+kkMvwT>xhYw|P6 zbvO2+Yg652tz=iKvf5-|iJ zAqw0$lzlGn&7}^$gEA1IsPd+Z3U?bCs= zeFV&4fcaT#jiPPf(F7F07lH8)2~HG9lL)tESWq)uclnd!Df3|v&5QY}@#^?NH;l3E zS_s*uP&O;!-s!AB?Cp`{XGJ4|i@ZdcZtJ8csMx;9zJg@tcb?q24q>RZyZKgn3Gk(v zK-*2^fiIjbvf)M{$7L{PN96cPq8{8`ok4*L@y!R_wJCT`bJ8?|F zx^@`e0Z*_seUGxMb5JXuJ=(Tr_K;9Vqq&%J)D?TXO_t60d5p)^+-;zF$X8Kh*MY>V z;;%uT{nhRM9qrQ+L^5UVL_I6p^zbedW~)5hXQf)i{K|cDaU4eP=ou35B2|hktSBPl z87!ijbUF0#`eLl6L^<4xy_5io^M9`x$xGRm?HX= zl3+p_MHl19@0u_m=HLA`ce&R@byWAJZabPyit^AOa^C$^!dN$mos%0}d|#b^raCuI zbbB(rw_Goq-Ml!_!(0WUh<5wgt2Vi{M>Ax?1A2cxl9Tg|qeF_u712SE@9*?|p(na; z=>CMEf-+yo{DtW%hh2@kzCKbg)ADxu-qPg2^bpg&qdY-y)x~VfBKjz7{t_}{g34%a z6}19EpSzd*pd7dtza zzN#5)KAjl4dE9V{8jUYDCsFiZxI#HyrcxVJlT;1XW1##n2dGAw{#qW9+d?U!(LDX1 z8}OG@WPjAA9e?A#9zu|Wut`hNjBLpV%RBj;@e4Ihui3!&Uc`Hbfhs5v;7vY9*7n45 zWOH1h$%-}) z7}y-St1N(e46-_5R?9@M%5u0CzQy4;tke5*^F%KbBIi6{z~ zhlt5Pj{9||=t0;pigS)KCBcB;gAXwBD6N(KwSu`mXejAtRayK~dZ~Mf`GouuGanb) z&9CHfEnO)%ovNYOw9*Zym%O!x@ZDgBi~>bxjE_i)9gvAsWD7cVSzp8$h?$2zYn}`xYqEpgtVBfC z<_r}P_CN$EzQj=NBv4zTNiBp{rS4HM0UO*<2L(?wP(_PSU(2A{wXy4wGm!$2s*^5J zaaa?D`**_)Z-KSrj!4HYSx=mezS^roF$)mD_R?4NBF)LA(THO}q+w>6QOZAyprk{m z3U|_u=06ifmt)>&0TFq{-j}M&g+iiLN(N;@W*`~PheP$f--t6+7-WwXqIN;Yi~kN^ zsS#_#ngREexbT%Yw))*E_HFzoBSP2{mkCIxt6Xv2nE77QE)BnqrG9z{o zaX`1%@Xt>&FRYM8C4CBKWtkOl8uYZOTB*B{Vb-Nrf*^xMt2{p0q0IMZ`VPDcUb zim=6{(jST4;PY5a=W5KuO~jgIEH-R7?E@Dwk_LF<3V333RDvNnv)D|3@*4gj(6fVa z3aBN7r03#xiKV2X&iO~C=?`k_A3ES{=_`6D7c0SirwIhM=U z%-76x{kKltNh$6s^-}z}lyA5psm73f-Bu2T6m^)waZW*&yeSUB2gpn(nMLj_B^oyM zA}1=MVT{4$Qe5PM+!O}+ln;gpXbT$hdWhMRzV7jQirq?5zO|z+imf*U%&dw(?u;zo z;mX$08)+Wp`nlRAhx4fh$P+WGE=`YI>s{?0i$wj~DqSO#2mMn&KH@wBGxir5>mWaX zg~VIqm)=r{Q&7lcKt;y&l&sOa&+;=%G9ylflTz0$7?v@N*dD)FATA05YNaeJ^rHII z!T6;5hEuOLQ+;HM#eyjgUS*+u3T{Q>CIhoF zb(*>kgFM<&U82sK8l=5cxx$7&rORSoa81G5b*8YTc4PT0Qv!2MuM^A_XYVoN0X)b7 zORn=;UD_|suF&u`FH~oMY_*|y4LWA%ChzWU6z%P6L)7@Px4+a3I*%hW6*sQD5MH=V z(iGZ6n4Vrd+wlYlDHzl$6*Dla$TO+H;mC|QhqCKJAEXBEGa!t7y026Dg3J`Tq2nf~ zvnM~%ZHRMtEUwt6rMfuzasX-$WcAo#5U)9+w#uP# z^=E3+gysAz+0;qu=b3;xzs5K{Mh3(9w3y*ii;Q2trS`G#O@Q(1^zn!OWTv@~1hOY< z>sgplM>tArG+4DWX6-Bm6l*1Wd3mGl-~wi1&XJYRc2;FkdYk$5x&u>WEgkOj)V21% z9YcUw=Nw~a2WmLMpef?EyJeEXW^}Q0j*NUeuo_P5SJwt^K(}!SGoDH-e(RYagp+fn zhT>P}^50>>Nx2uJ>z6)&IQ;10?HA7@A;%~XGV|P?dTS9@DP@QY7@a8lj=_@hLrj69 z?6c0d7H!;`kyZ6mz50tqnBp#|_SE)V%S4~SUxqF%8_p}MAnI=ksPG}NlR z+9ogI+bcV{YrG$z{F+A9k6b$PaEa}}#+X{$$NWt0wImn?4}P55;H|Yy(IbvjpE9=5 z)vQhhGJul;X!|(>cA`>#N9stIKF*=Yq?fp(Kc_k1T1>$kkNLQ(B1y#FkVH2+eomo{ zWFV{S>|)WUG51 z*Q5R;P9)j_Y=vjn0g-RwBThsQ%zh;8i)%u=PH(sk2%Bg7P5}V{2R}^9$2U6z{*x`B zN`3Xj*A6;&4A|U?5qOC8uvzY(Ru6Dak{B`U3U;{dSa;1e8GghoSY~RuoBx zKw+}~RQ*rBI{m+{{~e%t6LJWI{(q(w{|8%3Y63lj=O5wS_8;N>e*;YL{{u+Uvm*X4 zMgMb%1plq&UrtjfNr{_?>Hh*#MU7`UK|?_W{R98@zdESdB>l1y`!7@{LT|DCe?r+X zP*7C=ONhoUiOGT{322QX@t<-2&*?$_UxGRgP*CCul7<>mDyrWVe<;br!T+Zn@n3ZP Mr@H80GZfVS1Lxo8iU0rr delta 25278 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 diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index 4dadca8..5bcff75 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -4,4 +4,4 @@ bld.downloadLocation= bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.6 bld.extension-pmd=com.uwyn.rife2:bld-pmd:1.1.2 bld.repositories=MAVEN_CENTRAL,MAVEN_LOCAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES -bld.version=1.9.1 +bld.version=2.0.0-SNAPSHOT From 61d723b5896848ea7f0728712c01e6df59e8d849 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 09:34:09 -0700 Subject: [PATCH 24/63] Version 0.9.8-SNAPSHOT --- .../src/bld/java/com/example/SampleBuild.java | 4 +-- .../java/com/example/GeneratedVersion.java | 36 ++++++++++--------- .../GeneratedVersionOperationBuild.java | 4 +-- .../bld/extension/GeneratedVersionTest.java | 13 ++++--- 4 files changed, 31 insertions(+), 26 deletions(-) diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index d2e3c19..f4f6603 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -45,8 +45,8 @@ public class SampleBuild extends Project { public void genver() throws Exception { new GeneratedVersionOperation() .fromProject(this) - .projectName("My App") - .classTemplate("my_app_version.txt") +// .projectName("My App") +// .classTemplate("my_app_version.txt") .execute(); } } diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index a06f874..e8dbf5f 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -1,28 +1,30 @@ -/* - * This file is automatically generated. - * Do not modify! -- ALL CHANGES WILL BE ERASED! - */ - package com.example; import java.util.Date; -/** - * Provides project version information. - */ -public final class GeneratedVersion { - public static final String PROJECT = "Sample"; - public static final Date BUILD_DATE = new Date(1720056110519L); +public final class GeneratedVersion implements Comparable { + public static final Date BUILD_DATE = new Date(1720371304587L); public static final int MAJOR = 1; public static final int MINOR = 0; - public static final int REVISION = 1; + public static final String PROJECT = "My App"; public static final String QUALIFIER = "rc1"; + public static final int REVISION = 1; public static final String VERSION = "1.0.1-rc1"; - /** - * Disables the default constructor. - */ private GeneratedVersion() { - throw new UnsupportedOperationException("Illegal constructor call."); + // no-op } -} + + @Override + public int compareTo(GeneratedVersion other) { + if (MAJOR != other.MAJOR) { + return Integer.compare(MAJOR, other.MAJOR); + } else if (MINOR != other.MINOR) { + return Integer.compare(MINOR, other.MINOR); + } else if (REVISION != other.REVISION) { + return Integer.compare(REVISION, other.REVISION); + } else { + return QUALIFIER.compareTo(other.QUALIFIER); + } + } +} \ No newline at end of file diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index dfb8b49..ac920e0 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -35,7 +35,7 @@ public class GeneratedVersionOperationBuild extends Project { public GeneratedVersionOperationBuild() { pkg = "rife.bld.extension"; name = "GeneratedVersionOperation"; - version = version(0, 9, 7); + version = version(0, 9, 8, "SNAPSHOT"); javaRelease = 17; @@ -49,7 +49,7 @@ public class GeneratedVersionOperationBuild extends Project { scope(test) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) - .include(dependency("org.assertj", "assertj-core", version(3, 26, 0))); + .include(dependency("org.assertj", "assertj-core", version(3, 26, 3))); precompileOperation() .templateTypes(TXT); diff --git a/src/test/java/rife/bld/extension/GeneratedVersionTest.java b/src/test/java/rife/bld/extension/GeneratedVersionTest.java index af7e864..2c2a35f 100644 --- a/src/test/java/rife/bld/extension/GeneratedVersionTest.java +++ b/src/test/java/rife/bld/extension/GeneratedVersionTest.java @@ -16,8 +16,7 @@ package rife.bld.extension; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.*; import rife.bld.BaseProject; import rife.bld.Project; import rife.bld.dependencies.VersionNumber; @@ -39,6 +38,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Erik C. Thauvin * @since 1.0 */ +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) class GeneratedVersionTest { private final BaseProject PROJECT = new Project() { @Override @@ -108,6 +108,7 @@ class GeneratedVersionTest { } @Test + @Order(1) void testBuildTemplate() { var gv = new GeneratedVersion(); gv.setProject(PROJECT); @@ -127,7 +128,7 @@ class GeneratedVersionTest { @Test void testExecute() throws Exception { - var tmpDir = Files.createTempDirectory("bld-generated-version-").toFile(); + var tmpDir = Files.createTempDirectory("bld-generated-version-execute-").toFile(); tmpDir.deleteOnExit(); new GeneratedVersionOperation() @@ -147,7 +148,8 @@ class GeneratedVersionTest { var content = Files.readString(template.toPath()); assertThat(content).contains("class MyVersion") .contains("PROJECT = \"MyExample\";").contains("MAJOR = 2").contains("MINOR = 1") - .contains("REVISION = 3").contains("QUALIFIER = \"\"").contains("private MyVersion"); + .contains("REVISION = 3").contains("QUALIFIER = \"\"").contains("private MyVersion") + .doesNotContain("package"); } @Test @@ -171,8 +173,9 @@ class GeneratedVersionTest { } @Test + @Order(2) void testWriteTemplate() throws IOException { - var tmpDir = Files.createTempDirectory("bld-generated-version-").toFile(); + var tmpDir = Files.createTempDirectory("bld-generated-version-write-").toFile(); tmpDir.deleteOnExit(); var gv = new GeneratedVersion(); From 07c23883c1819728387950c62b2c31aa54d63d23 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 16:25:54 -0700 Subject: [PATCH 25/63] Improved template search path, again --- .../src/bld/java/com/example/SampleBuild.java | 1 + .../java/com/example/GeneratedVersion.java | 36 +++++++++---------- examples/version.txt | 17 +++++++++ .../rife/bld/extension/GeneratedVersion.java | 10 ++++-- .../bld/extension/GeneratedVersionTest.java | 31 +++++++++++++--- 5 files changed, 69 insertions(+), 26 deletions(-) create mode 100644 examples/version.txt diff --git a/examples/src/bld/java/com/example/SampleBuild.java b/examples/src/bld/java/com/example/SampleBuild.java index f4f6603..ab58414 100644 --- a/examples/src/bld/java/com/example/SampleBuild.java +++ b/examples/src/bld/java/com/example/SampleBuild.java @@ -47,6 +47,7 @@ public class SampleBuild extends Project { .fromProject(this) // .projectName("My App") // .classTemplate("my_app_version.txt") +// .classTemplate("version.txt") .execute(); } } diff --git a/examples/src/main/java/com/example/GeneratedVersion.java b/examples/src/main/java/com/example/GeneratedVersion.java index e8dbf5f..7ebcd6b 100644 --- a/examples/src/main/java/com/example/GeneratedVersion.java +++ b/examples/src/main/java/com/example/GeneratedVersion.java @@ -1,30 +1,28 @@ +/* + * This file is automatically generated. + * Do not modify! -- ALL CHANGES WILL BE ERASED! + */ + package com.example; import java.util.Date; -public final class GeneratedVersion implements Comparable { - public static final Date BUILD_DATE = new Date(1720371304587L); +/** + * Provides project version information. + */ +public final class GeneratedVersion { + public static final String PROJECT = "Sample"; + public static final Date BUILD_DATE = new Date(1720742175167L); public static final int MAJOR = 1; public static final int MINOR = 0; - public static final String PROJECT = "My App"; - public static final String QUALIFIER = "rc1"; public static final int REVISION = 1; + public static final String QUALIFIER = "rc1"; public static final String VERSION = "1.0.1-rc1"; + /** + * Disables the default constructor. + */ private GeneratedVersion() { - // no-op + throw new UnsupportedOperationException("Illegal constructor call."); } - - @Override - public int compareTo(GeneratedVersion other) { - if (MAJOR != other.MAJOR) { - return Integer.compare(MAJOR, other.MAJOR); - } else if (MINOR != other.MINOR) { - return Integer.compare(MINOR, other.MINOR); - } else if (REVISION != other.REVISION) { - return Integer.compare(REVISION, other.REVISION); - } else { - return QUALIFIER.compareTo(other.QUALIFIER); - } - } -} \ No newline at end of file +} diff --git a/examples/version.txt b/examples/version.txt new file mode 100644 index 0000000..8d27e1f --- /dev/null +++ b/examples/version.txt @@ -0,0 +1,17 @@ +package {{v packageName/}}; + +import java.util.Date; + +public final class {{v className/}} { + public static final String PROJECT = "{{v project/}}"; + public static final Date BUILD_DATE = new Date({{v epoch/}}L); + public static final int MAJOR = {{v major/}}; + public static final int MINOR = {{v minor/}}; + public static final int REVISION = {{v revision/}}; + public static final String QUALIFIER = "{{v qualifier/}}"; + public static final String VERSION = "{{v version/}}"; + + private {{v className/}}() { + // no-op + } +} \ No newline at end of file diff --git a/src/main/java/rife/bld/extension/GeneratedVersion.java b/src/main/java/rife/bld/extension/GeneratedVersion.java index 3a79c9d..c7f4bc1 100644 --- a/src/main/java/rife/bld/extension/GeneratedVersion.java +++ b/src/main/java/rife/bld/extension/GeneratedVersion.java @@ -17,7 +17,9 @@ package rife.bld.extension; import rife.bld.BaseProject; +import rife.resources.ResourceFinderClasspath; import rife.resources.ResourceFinderDirectories; +import rife.resources.ResourceFinderGroup; import rife.template.Template; import rife.template.TemplateFactory; import rife.tools.FileUtils; @@ -59,8 +61,10 @@ public class GeneratedVersion { public Template buildTemplate() { Template template; var version = project_.version(); + TemplateFactory.TXT.resetClassLoader(); if (template_ == null) { - template = TemplateFactory.TXT.get("default_generated_version"); + var group = new ResourceFinderGroup().add(ResourceFinderClasspath.instance()); + template = TemplateFactory.TXT.setResourceFinder(group).get("default_generated_version"); } else { File parent; if (template_.getParentFile() != null) { @@ -68,8 +72,8 @@ public class GeneratedVersion { } else { parent = new File(template_.getAbsolutePath()).getParentFile(); } - var dirs = new ResourceFinderDirectories(parent); - template = TemplateFactory.TXT.setResourceFinder(dirs).get(template_.getName()); + var group = new ResourceFinderGroup().add(new ResourceFinderDirectories(parent)); + template = TemplateFactory.TXT.setResourceFinder(group).get(template_.getName()); } if (packageName_ == null) { diff --git a/src/test/java/rife/bld/extension/GeneratedVersionTest.java b/src/test/java/rife/bld/extension/GeneratedVersionTest.java index 2c2a35f..7762290 100644 --- a/src/test/java/rife/bld/extension/GeneratedVersionTest.java +++ b/src/test/java/rife/bld/extension/GeneratedVersionTest.java @@ -16,15 +16,18 @@ package rife.bld.extension; -import org.junit.jupiter.api.*; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import rife.bld.BaseProject; import rife.bld.Project; +import rife.bld.blueprints.BaseProjectBlueprint; import rife.bld.dependencies.VersionNumber; import rife.tools.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.nio.file.Path; import java.util.Objects; import java.util.logging.ConsoleHandler; import java.util.logging.Level; @@ -38,7 +41,6 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Erik C. Thauvin * @since 1.0 */ -@TestMethodOrder(MethodOrderer.OrderAnnotation.class) class GeneratedVersionTest { private final BaseProject PROJECT = new Project() { @Override @@ -108,7 +110,6 @@ class GeneratedVersionTest { } @Test - @Order(1) void testBuildTemplate() { var gv = new GeneratedVersion(); gv.setProject(PROJECT); @@ -126,6 +127,29 @@ class GeneratedVersionTest { .contains("private GeneratedVersion"); } + @Test + void testExample() throws Exception { + var tmpDir = Files.createTempDirectory("bld-generated-version-example-").toFile(); + tmpDir.deleteOnExit(); + + new GeneratedVersionOperation() + .fromProject(new BaseProjectBlueprint(new File("examples"), "com.example", "Example")) + .directory(tmpDir.getAbsolutePath()) + //.classTemplate(new File("examples", "my_app_version.txt")) + .classTemplate(new File("examples", "version.txt")) + .execute(); + + deleteOnExit(tmpDir); + + var template = Path.of(tmpDir.getAbsolutePath(), "com", "example", "GeneratedVersion.java"); + assertThat(template).exists(); + + var content = Files.readString(template); + assertThat(content).contains("class GeneratedVersion").contains("PROJECT = \"Example\";") + .contains("MAJOR = 0").contains("MINOR = 0").contains("REVISION = 1").contains("QUALIFIER = \"\"") + .doesNotContain("ERASED!"); // only in default template + } + @Test void testExecute() throws Exception { var tmpDir = Files.createTempDirectory("bld-generated-version-execute-").toFile(); @@ -173,7 +197,6 @@ class GeneratedVersionTest { } @Test - @Order(2) void testWriteTemplate() throws IOException { var tmpDir = Files.createTempDirectory("bld-generated-version-write-").toFile(); tmpDir.deleteOnExit(); From 06c0a73924f1fd880a9b733958add0e4cfa4134d Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Thu, 11 Jul 2024 10:21:07 -0700 Subject: [PATCH 26/63] Added Kotlin matrix to GitHub workflow --- .github/workflows/bld.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index c0ba763..7d224f6 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -2,6 +2,9 @@ name: bld-ci on: [push, pull_request, workflow_dispatch] +env: + KOTLIN_HOME: /usr/share/kotlinc + jobs: build-bld-project: runs-on: ubuntu-latest @@ -9,6 +12,7 @@ jobs: strategy: matrix: java-version: [17, 21, 22] + kotlin-version: [ 1.19.24, 2.0.0 ] steps: - name: Checkout source repository @@ -22,11 +26,8 @@ jobs: distribution: "zulu" java-version: ${{ matrix.java-version }} - - name: Grant execute permission for bld - run: chmod +x bld - - - name: Download the dependencies + - name: Download dependencies run: ./bld download - - name: Run tests with bld + - name: Run tests run: ./bld compile test From e1b526a72393143fd98187437d0a793b7a2f21ee Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 22 Jul 2024 09:26:42 -0700 Subject: [PATCH 27/63] Bumped bld to version 2.0.0-SNAPSHOT --- examples/lib/bld/bld-wrapper.jar | Bin 29229 -> 29769 bytes lib/bld/bld-wrapper.jar | Bin 29229 -> 29778 bytes .../GeneratedVersionOperationBuild.java | 5 +++-- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 2c979029887f1687c3ddc6825a49554d3f8ece6b..5b8a2481ce3190d583a530c1752765950d730437 100644 GIT binary patch delta 15077 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 diff --git a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java index ac920e0..cd84e29 100644 --- a/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java +++ b/src/bld/java/rife/bld/extension/GeneratedVersionOperationBuild.java @@ -26,6 +26,7 @@ import java.util.List; import static rife.bld.dependencies.Repository.MAVEN_CENTRAL; import static rife.bld.dependencies.Repository.RIFE2_RELEASES; +import static rife.bld.dependencies.Repository.RIFE2_SNAPSHOTS; import static rife.bld.dependencies.Scope.compile; import static rife.bld.dependencies.Scope.test; import static rife.bld.operations.JavadocOptions.DocLinkOption.NO_MISSING; @@ -42,10 +43,10 @@ public class GeneratedVersionOperationBuild extends Project { downloadSources = true; autoDownloadPurge = true; - repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES); + repositories = List.of(MAVEN_CENTRAL, RIFE2_RELEASES, RIFE2_SNAPSHOTS); scope(compile) - .include(dependency("com.uwyn.rife2", "bld", version(1, 9, 1))); + .include(dependency("com.uwyn.rife2", "bld", version(2, 0, 0, "SNAPSHOT"))); scope(test) .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 3))) .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 3))) From bd5b55f1b72bd82e8c7ec43f0a2a8970a597a83e Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 28 Jul 2024 23:41:36 -0700 Subject: [PATCH 28/63] Bumped bld to version 2.0.1 --- .idea/libraries/bld.xml | 4 ++-- .vscode/settings.json | 2 +- README.md | 2 +- examples/.idea/libraries/bld.xml | 4 ++-- examples/.vscode/settings.json | 2 +- examples/lib/bld/bld-wrapper.jar | Bin 29769 -> 29577 bytes examples/lib/bld/bld-wrapper.properties | 2 +- .../java/com/example/GeneratedVersion.java | 4 ++-- lib/bld/bld-wrapper.jar | Bin 29778 -> 29577 bytes lib/bld/bld-wrapper.properties | 5 ++--- .../GeneratedVersionOperationBuild.java | 13 ++----------- .../templates/default_generated_version.txt | 2 +- 12 files changed, 15 insertions(+), 25 deletions(-) diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 2fb5ff0..4dd96bf 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.vscode/settings.json b/.vscode/settings.json index 33a9922..5b2667b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", + "${HOME}/.bld/dist/bld-2.0.1.jar", "lib/**/*.jar" ] } diff --git a/README.md b/README.md index bf89ce1..0ce3a69 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![License](https://img.shields.io/badge/license-Apache%20License%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![Java](https://img.shields.io/badge/java-17%2B-blue)](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) -[![bld](https://img.shields.io/badge/1.9.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![bld](https://img.shields.io/badge/2.0.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/releases/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?color=blue)](https://repo.rife2.com/#/releases/com/uwyn/rife2/bld-generated-version) [![Snapshot](https://flat.badgen.net/maven/v/metadata-url/repo.rife2.com/snapshots/com/uwyn/rife2/bld-generated-version/maven-metadata.xml?label=snapshot)](https://repo.rife2.com/#/snapshots/com/uwyn/rife2/bld-generated-version) [![GitHub CI](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml/badge.svg)](https://github.com/rife2/bld-generated-version/actions/workflows/bld.yml) diff --git a/examples/.idea/libraries/bld.xml b/examples/.idea/libraries/bld.xml index 2fb5ff0..4dd96bf 100644 --- a/examples/.idea/libraries/bld.xml +++ b/examples/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/examples/.vscode/settings.json b/examples/.vscode/settings.json index 33a9922..5b2667b 100644 --- a/examples/.vscode/settings.json +++ b/examples/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-2.0.0-SNAPSHOT.jar", + "${HOME}/.bld/dist/bld-2.0.1.jar", "lib/**/*.jar" ] } diff --git a/examples/lib/bld/bld-wrapper.jar b/examples/lib/bld/bld-wrapper.jar index 5b8a2481ce3190d583a530c1752765950d730437..d986fd0b6eb2e81f494463ce7f81fbc661ac4455 100644 GIT binary patch delta 27511 zcmV)OK(@ch=mCl60S!<~0|XQR2nYxOy^#Eo4SoZ?ko=L3JAdR(k_&`{Eg%p!30Vad zB>^;qAi*q<1TcWcA(_BPG81PeEaFzHw$^&hF~p5<%0NhX-W>Stt!znifT=SMl)ZZ;Ad!0YJG#tXz(Jg|G zF06BPiG~Bgb(J#)R%KBpjbIc<3L2Si$cju7G}@vulz)#Y+Iz!ce=xc*5N;DRw9bug zWhRZIqf8oa(FB?(Xv$!OnOf)T4YseZ4|Vvl^y;pFplNkS(7BQ^nPkyqhMwJ(sBh!? zsTNJ6qd~7wXJ=O+=m&aYl}UwyMrb5^qk*n+hdKd&B#Wk#hsPCLR6?a#%UK({lg$`C zsxI9)jekSAMaS@%TnAUzIBuS0(XmXdQ3INpOl>9|4}vCv*9C$b{2hyZk@d~~Xcir3 z<8`7%bErblkg&fe6bVE_VH>SsF0{~J<1^QydE7VKzd7m;MgpOrjmSwBoy;`J?+9%Q zc7=Q$HSzZ5P;a>1L3e>g)#-aJ!Au>YcHOJSqJKqniXd}sZ)c~UcVDhvkc9@Y_!2>R zNvx{EVc(XzKm=>4qk5AXENY~sagI%Pi9i5+5$=fnFI-*MUq0g8>JTXs1+Ugp6Z2{_ zuq|}8R)@N}FajupUm2<87OkL_m@^QJM15UdRlyFMkAP`mf3P!ZS+-g&T1Be`8UD=y zV1Hy3*4m&>x9AMQa!0p^{l2JwW&b?|qZg*iK{_E~NIr|!Qag}JfwaUI7Bsvch#4!q z1mVc+3akzLc;`)8mn!obu$Kb7BV8S3o4dQRX#;hc)NN6aLSRnaIS7cIfLOlN7scXb zs8dj78ZlozsIo|bP|1^=ZBdx8Zf`VXcYlS96%L|WdU?Cr_-m6zn+bX;1N4nVBU