From f205626b4f3523c338578838416a2bc29a80fb03 Mon Sep 17 00:00:00 2001 From: Mark Pollack Date: Wed, 15 Jan 2020 10:39:02 -0500 Subject: [PATCH] Update to junit5/assert4j in batch sample Fixes #127 --- .../batch/batchsamples/billrun/pom.xml | 6 +++ ...ests.java => BillRunApplicationTests.java} | 45 +++++++---------- .../batch/batchsamples/billsetuptask/pom.xml | 6 +++ .../BillSetuptaskApplicationTests.java | 26 ++++++++++ .../BillsetuptaskApplicationTests.java | 46 ------------------ .../batch/batchsamples/dist/batchsamples.zip | Bin 189824 -> 233680 bytes .../batch/batchsamples/pom.xml | 10 +--- .../batch/simple-task/simple-task.zip | 0 8 files changed, 57 insertions(+), 82 deletions(-) rename dataflow-website/batch-developer-guides/batch/batchsamples/billrun/src/test/java/io/spring/billrun/{BillrunApplicationTests.java => BillRunApplicationTests.java} (53%) create mode 100644 dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/src/test/java/io/spring/billsetuptask/BillSetuptaskApplicationTests.java delete mode 100644 dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/src/test/java/io/spring/billsetuptask/BillsetuptaskApplicationTests.java create mode 100644 dataflow-website/batch-developer-guides/batch/simple-task/simple-task.zip diff --git a/dataflow-website/batch-developer-guides/batch/batchsamples/billrun/pom.xml b/dataflow-website/batch-developer-guides/batch/batchsamples/billrun/pom.xml index d1e9777..0c85e99 100644 --- a/dataflow-website/batch-developer-guides/batch/batchsamples/billrun/pom.xml +++ b/dataflow-website/batch-developer-guides/batch/batchsamples/billrun/pom.xml @@ -45,6 +45,12 @@ org.springframework.boot spring-boot-starter-test test + + + org.junit.vintage + junit-vintage-engine + + org.springframework.batch diff --git a/dataflow-website/batch-developer-guides/batch/batchsamples/billrun/src/test/java/io/spring/billrun/BillrunApplicationTests.java b/dataflow-website/batch-developer-guides/batch/batchsamples/billrun/src/test/java/io/spring/billrun/BillRunApplicationTests.java similarity index 53% rename from dataflow-website/batch-developer-guides/batch/batchsamples/billrun/src/test/java/io/spring/billrun/BillrunApplicationTests.java rename to dataflow-website/batch-developer-guides/batch/batchsamples/billrun/src/test/java/io/spring/billrun/BillRunApplicationTests.java index ebfac98..f965399 100644 --- a/dataflow-website/batch-developer-guides/batch/batchsamples/billrun/src/test/java/io/spring/billrun/BillrunApplicationTests.java +++ b/dataflow-website/batch-developer-guides/batch/batchsamples/billrun/src/test/java/io/spring/billrun/BillRunApplicationTests.java @@ -1,42 +1,32 @@ package io.spring.billrun; -import java.util.List; - import io.spring.billrun.model.Bill; -import javax.sql.DataSource; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.springframework.batch.test.context.SpringBatchTest; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.test.context.junit4.SpringRunner; -import static org.junit.Assert.assertEquals; +import javax.sql.DataSource; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; -@RunWith(SpringRunner.class) @SpringBootTest -@SpringBatchTest -public class BillrunApplicationTests { +public class BillRunApplicationTests { @Autowired private DataSource dataSource; private JdbcTemplate jdbcTemplate; - @Before - public void setup() { + @BeforeEach + public void setup() { this.jdbcTemplate = new JdbcTemplate(this.dataSource); } @Test public void testJobResults() { - testResult(); - } - - private void testResult() { List billStatements = this.jdbcTemplate.query("select id, " + "first_name, last_name, minutes, data_usage, bill_amount " + "FROM bill_statements ORDER BY id", @@ -44,14 +34,15 @@ public class BillrunApplicationTests { rs.getString("FIRST_NAME"), rs.getString("LAST_NAME"), rs.getLong("DATA_USAGE"), rs.getLong("MINUTES"), rs.getDouble("bill_amount"))); - assertEquals(5, billStatements.size()); + assertThat(billStatements.size()).isEqualTo(5); Bill billStatement = billStatements.get(0); - assertEquals(6, billStatement.getBillAmount(), 1e-15); - assertEquals("jane", billStatement.getFirstName()); - assertEquals("doe", billStatement.getLastName()); - assertEquals(new Long(1), billStatement.getId()); - assertEquals(new Long(500), billStatement.getMinutes()); - assertEquals(new Long(1000), billStatement.getDataUsage()); + assertThat(billStatement.getBillAmount()).isEqualTo(6.0); + assertThat(billStatement.getFirstName()).isEqualTo("jane"); + assertThat(billStatement.getLastName()).isEqualTo("doe"); + assertThat(billStatement.getId()).isEqualTo(1); + assertThat(billStatement.getMinutes()).isEqualTo(500); + assertThat(billStatement.getDataUsage()).isEqualTo(1000); + } -} +} \ No newline at end of file diff --git a/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/pom.xml b/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/pom.xml index d91c003..5326f9d 100644 --- a/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/pom.xml +++ b/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/pom.xml @@ -44,6 +44,12 @@ org.springframework.boot spring-boot-starter-test test + + + org.junit.vintage + junit-vintage-engine + + com.fasterxml.jackson.core diff --git a/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/src/test/java/io/spring/billsetuptask/BillSetuptaskApplicationTests.java b/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/src/test/java/io/spring/billsetuptask/BillSetuptaskApplicationTests.java new file mode 100644 index 0000000..f1e5196 --- /dev/null +++ b/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/src/test/java/io/spring/billsetuptask/BillSetuptaskApplicationTests.java @@ -0,0 +1,26 @@ +package io.spring.billsetuptask; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.jdbc.core.JdbcTemplate; + +import javax.sql.DataSource; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +class BillSetupTaskApplicationTests { + + @Autowired + private DataSource dataSource; + + @Test + public void testRepository() { + JdbcTemplate jdbcTemplate = new JdbcTemplate(this.dataSource); + int result = jdbcTemplate.queryForObject( + "SELECT COUNT(*) FROM BILL_STATEMENTS", Integer.class); + assertThat(result).isEqualTo(0); + } + +} diff --git a/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/src/test/java/io/spring/billsetuptask/BillsetuptaskApplicationTests.java b/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/src/test/java/io/spring/billsetuptask/BillsetuptaskApplicationTests.java deleted file mode 100644 index d59a53f..0000000 --- a/dataflow-website/batch-developer-guides/batch/batchsamples/billsetuptask/src/test/java/io/spring/billsetuptask/BillsetuptaskApplicationTests.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2019 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package io.spring.billsetuptask; - -import javax.sql.DataSource; -import org.junit.Test; -import org.junit.runner.RunWith; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.jdbc.core.JdbcTemplate; -import org.springframework.test.context.junit4.SpringRunner; - -import static org.junit.Assert.assertEquals; - - -@RunWith(SpringRunner.class) -@SpringBootTest -public class BillsetuptaskApplicationTests { - - @Autowired - private DataSource dataSource; - - @Test - public void testRepository() { - JdbcTemplate jdbcTemplate = new JdbcTemplate(this.dataSource); - int result = jdbcTemplate.queryForObject( - "SELECT COUNT(*) FROM BILL_STATEMENTS", Integer.class); - - assertEquals(0, result); - } -} diff --git a/dataflow-website/batch-developer-guides/batch/batchsamples/dist/batchsamples.zip b/dataflow-website/batch-developer-guides/batch/batchsamples/dist/batchsamples.zip index 371f611b565ee14d6f9a36662e41de8d739b4e12..6c5f44f6d11207c083372f80592f5bf8b6f4378c 100644 GIT binary patch delta 52639 zcmbq*1z1(v);8VU64Kq>-Q6j$>F(}@q<{$09TL(h-6=>*3Q9^!h#(;OZ}8l!=iKw% zd;jOk19Ps$UhM6=#vJcE#vEe>k04LxqoJuOLc<_IKp;RsRB5rQy+or0Qotj`Z~w5t zb2C#9a~pS4M;8Z6cUBf#3rkbhUl;!M0+PSKz`@qc&D6~n{0DwrTKJduB7%T;DMtex z7?l0;yTJXB*Z?K^FnU0;rLL|*!KTJfLBS@fAs{`RZTsyk0_v~7dw(S?)UPWr6NTUr z9&$61s2P$Yl3A`Hgv;Wg(_@(*JJ6kDPt9QwoD15)Z?Y=e}27-6AQV6wrVK2aCy z$^D6!u7VFkwIs|v9*G99tPih)f#Z4@1>qPH5MUGcpniUEVg!+g(?$s54`V)p+{3t! zpa%0s8GOAMqS3>NJVZ6bpZDkfO{ytU$v#1$rgndTLP|vc0|Y@h{)d+mBQT_j^*|ye zRzd!J6QiFeP!o^fexAtxc>*VK1px`BUIqL%2MF}{*AOSh!vA~;Iqc(9ml-I81bo=P zpwka4{O~r%Fw74lIV>w84%l)KAi$rjo{QuY3flcAA7j-i!Gwl@5Q0zL?|>u&mYf#F zFapnYM_PWx$;-`X(MyF0oyJ;vlcZF1j2n|3&U;%q%BjoaYFCPxvAXlS zkB=twJ#T?;CjQiul-!WQB5$R*3DFfqpU;+$HOi1@Ln+F?v$=E)U#QoFd?I5O%m2U79T=*Q2pe(;btVPW=b2tBbu)DeNREb4yeAXMDU zqxJbUZd{SoQh?8`Td}dX+qjTMZ7yCt(uF|w^L(|T-9`!y?`WHd)k0X72B0dn_!V=T ztkbjJAy#Nz#VVw5IoS2h<%KPRM;eA9-?|wf8?4%y#}x42$WGNff43UtSnenDdw zvLC5i#HkM5HhMq7quXFy!&Ja#(@VgywhIMb$8HLLiXYBiGLE)>L?nP0k}o4grsP!= zTBT>o4hM@mrh_qz~rH^vdsc7Q2@fFOuBV>#)>19{Cgtx$EnGW5^{ej$(ywaYmcD?lL`6G2@kt1Awb0g18x{Sruzz4LuPJw) z#Wpv}x|Utmj3#kd760S>LvE5})}45LR{~S?4dJI(Yh74JtDqbUAoe}uWirjN z9L*aS28Mg!u#t21E+&lpC$;yU{P#!dx{q0Vm@0>4q#F9!MpM000H zkd>*shou`B9WZ|8_U>RD&7IvW|9k+(kL@Rf9SPzwy=)laN4L>>?L75|wfz#M!gO{; z>OIpOR+J8oiIxV^cQ;m!7%|>)N2n*uZvi%m50~?Vjs{jWbBTGE{21>YLn9U7kAvCQ zNJK&F(wWa%xP$tOXFVzzjb90H&$(F2%NmDy9}mAJ4G2JYQ{Sa{$&r}tmQmsOA-zmq zjY1ltz_M;c2PEA%zUh#Ne}&mh;e+#ZBI3@$hb5${WIH^2d&dR=5*i&+7>QlgYZ%~C zT^Yei@#%3cH(v1LlGs|J2t4oT9n6v6-3mX5k_oM4VZ%#Ruo+?u90lE*p_=Rm z7~T$~Q;yIEIOMa|H~I=K9~!C|hza!7A<8F*(CtM}3XUsG^< z5#B{-jm4Psy-#9|Z%Uy*JPNS@pU0@G>1u~d>{k>U7@ntdm~bf`n1{XkSU2p!nI{ps zYS%E2^fXf(rgy4ST@))C;x|>}S?!SyB%xy@?rv5Qe}QHKUdRr%T5PjmunfVVY5xQb z_^WRE7bCn!&E3V#*2&t+&D7D-+u6<~$PHe;93Ty8C24U@>7UDZ1PN?|(&s_a zOioLXJ<3txYV~R}3I!pIQQXl6oE+bu0?v~Zl|f>|d*eVjeQ4p7dl*Hm6StIC9Ng zuT@hhQ*}$nsNR?HT@kcHf)v26O`7&(u#O@ePxP3DeEXCXO^Z)$LyM?u4hC%!E>7GQ ziW^r1OOYLrTZikvF6jKiYz2gHQ&%NO6Y_p@4|>Y`PU)CdPkmi&S#D@O(q z1r&-s&-N}D!U-^xHvb>?_g5qVa|dTni+=+8aNuF;4u;sn&C=BI-Zg^1enWRGLEO2Q z4JG{OI=W&#!(gcvDftykq;ic4D%k;7cmjD|?8|A6Le>K(#6 zc+}!Nlp)|7mD|TSqa|P2I%Vp^lWf2ks4k9e)@M*gGc~RT#g;Q%ba}xtV_mhf<$KH> zfq{DWDqk_we~Rr{=h7g&qbr0@$TM+OBxtQ;megnjz*^{YTNZqf|&r1PP)3t zYv04#qW71Xu(xE$I};ovh|S9`esI4Kzh@!)YGku_V5Hf=h%5hpAa3enYwc<3W?^gU z1p3Pyj4Z$oV!Jn5u;WAyVZ(WQ6c|ly^nFvim~1P*1jSn7wa*@gbd%nr(*q(JQ@^9L zWnlk2s6BS8u0y_OAQZu&#hy#MSgiwVl+eisSz;$1Wg9-gZ4IMT0ohsmLp}oo&Ugur z=fOgXW98LV2F8Bipv2j(M|EL9yb5=fdVw1RpaU<88aK};B<+wXb!-Wnflf)IbTN7I zy7a^Aln9m{GB%~i++&aJ*S9oCw^ZhH7yS}joTa3w?_RkRUpq=}8F?{mpQq2rh4y|u zTn_0yPxNvAGi;~RxF=u0aMgfev-nrofcseKU)KCR@pze)EPcTA<7DapvUYa1 zcCZAQI$5|m+ggC^?x~0k{Kdh>&dJWs#`nhs4@^Fm&|}xfh7xfUh{SqI$oPSUviWKJ zW=$;%N@G}(MHrKo@y3A>S?%_eZ?2j;M~W_bX&S5O$k+g$O05f` z;1>i|PnWkHPlKQ0ho$HHylea*nGT9`URZmEI%~bmsYyQ4#L!hN94SoVSb52LgslmA zd-y&)_>NK;fcS;?y^meD;?EfXfh{;6W|j`&eI7Fvq()nc7=E%)n&C z{gaLEMbQJJE4S{cO-k#S{)3LDQieQubx<$QZKH6FzVJ9loQp)rYHAxM;nY!JA+Kfp zpr0ynW~XUk6Ar~#bZouCs+JIt+ARp|qwrRUvOZ3eIrI4jxNtoNdic;UG`S5JwO<-+ zSEc8BK}0AvqUv1H=|u+MMNT;(C{w)QpQM$@yhzYtJQx&(NECw)LC4CjXU>ecJ!;X3 z&=o22qN$tLG|>S#c~JByd?WP@F)B5RBG@*FghC0_^fe? zDdtX@+mL~}b4SF7V1mc@`YzX()^kcCr*mi7hhV`d3@vp2S+C$P5bq7Ga2d|*o`K%~ zPYeXugUp2B!;ddR9gu=}6*eJnxwo`E9%V4%gH3`Cw+Vk(zK(=>9S zCm&Cgc6OBd!tNE>AzkW4!^XL*g?h_PkG{EZeKT)C$#P2AX?=GckGg<~65yebn!7%{ z5XNutcI;`R*NwdRo!2RD>iCb(OyADNiQ+z^9%BVI$meXF;n=+@)B!3bPaG&3bS{a* z(|QHH3jJ^n;<19)v{+{MJJe1LyI8)Nafg|p>ds9r_88gk=&w|7bhPqe2#NRSNrpcz zCm1OT7_OJ4+7=XAi!67d*#X#*v%7FVnBNLJe|*U>{ZYxKhbeDq)Prmlh@A%gLj2xr z-yVTtC&7p_fe}~wFRj+x2IT7O4svj|HUrD|e~#u3rta>x<{)+ej4$U;gB3;wtELEV zK$@v)EZ>P5PvIc1Bv}TQwqVq1>rEYNQd|quO%K=wpJP33u2jCNFQ&sXP@7%%5BgMQD8^d-eSU2}6})9Q(Gc zY|$o=(z^hFTgFs|m`s-`w`d$r@O>v6!}Y{lY(Kv@v`+#Wox3yr(o=!aibx2mia)^9 zdcy`6b^1b-*zXg6X*Q>6M`*}CBj6|oF2&xcLa-=`wKg8{zc{e z;^6y5Lk1YeiqGm4E_~6I6LF@+e`kFr2ng=`Wr=MVd>)F z>YU9>6kQ5 zfL*{juDfLc7Fb@c8@5MYxj5I(h1Ja!wdDytn;omk-??*`UF%Q*FD-**k7de+VaWhe zmHZS1yIJ_~5(oMQ9X~a&(i#yc!=LH_D=pA)tltm18T+c-Ip1TENHv&S+@~T$Rg6%H z6uK-T0p4Q4RXzrPPulH!tb(jXamC26YUmt*&GKkP_E zddR3?wMWtbQ))7Ca!H#EL2^|fo^>%*`$G_;Ozl)jvPd5wp4S+Q`y!ty&`b4N6C>(j#)~nJt z+&;F7+(#RRU%*&SQMH@A?^$8trE&c)5^cx?N&Lf9_)d%y+$ zFVOG9E6p*5!Ea!&iNU_W{eJ-c-}wSlPY-8vXD2IgcmRMiDnC8JzjXvX|8xXu76W{q z9$OENfbS1Sph|q?pGAf8nCKq;-2x*R&jw26?S|#q2lS^N9qC?L81=`$t8pxG+stXd zi#^57AiSbzZ4STy+G~_!trZQ=NeDfz%Jzq4RM!ebTMXYx4U-RS7mi5Lm$JOGm)O@+ z{Z7GW6AiIdZb7-y*b*=?Ga@h|y1h!jN(zh8;{pwZHIUa!A)?&Y&Nnx znyHPcigiJ9CkC^s-Hvu7F|`ODM|BduCqn*M;qL2i#U64fhoP6x;X79HvsX|b_j#YW zQ+tx2g>(i!Qsu+GZWyYH#-@S6KeFH?bSKxXh%lyiV29aJ{t!LE^Cotm(CQ?PMj8&EG$vTJaOid-4(g6P3nkZ4h9+30AG^a19Z98e}BUfHeY zb;7I3EQOi;uPx;}zvW);#Y4FUe&rAt%P)|Lrcl_x&rPa-aUA!7m!GMR516XtY{3~+ zTS+w#Cs@-yL{$whdyv4PK*W*o0FANdGl5~6XNb7zYblfTGE1SwP8BqB(@km8Qy(_E zM(zSRQIw@zaj9ADHOzXp4RQvtHUr~a$GQEb5Dq|>06*tGr}QbC zo7;M;@JmTbn=8S|0%Ivtc*(HxmOHbgE#yuow(pYW&H+^8BK(><{6H8!_OjAWTCR=9 zlvWtK4U8Y|b@R?*RF?EAnkf&5!&jz+F2ta$B-qGF5-aZlEZ+35d(I)OwBffFXU}@K zJI}CxBb<8=OQ>M2a-Wvc2Ai4I|FGEqFf%)Ihrctjf3g&l@e(Z1qX^DQxvSk9nd-ff z@w}`Qy*Ptow)|jgd)Zf(rI#wTit6j0G}99N;xQNo&UOIPgu+$- z>RdTm^Yjwx;?2P7GGN0yfz-9_c|aw!uJqOaIVut**u>B+xe48=XqhfmSf=22o_`2Y z)j`Z1G~HF!Y>!1!dG}2WCB;rKOu>pA>^yL-Vno+Q&LEi z0$#BW<7Us|-A$jrr(q-66Uhia*)Ggh=0!ArdOgfbJ$n+=@P&G8Lk5l8-w?l@o?NEw}G*01FIdre~Z~K$m~3wY&}3f ze}dQM14flEmB9%lg16v+le>M7PGA@(!k3PtFL{!__#kfw?*#Vp><0(M@!sZ|@6DYL zaIvAJ<4oUd6KsO(ZJPc%x^yD8h&nO{5@L=-7+wEuICQkm=UC2xj*d^UEk}Bf@d#6XOavg?apP1U?AV`+0ewPQjtdv zfe@{5E6iEbne#YNil>Cnbgw4MEXz5J0oFW#;Q1TaoTpP0tVh2oo_q35{hpq%1%{#r zY(`f9B_w~Rc>acbA5xp(4GiF(Z~rB;scsJzl5baTaB43y9-n~sE_S}LsWZl62N1Gb zy_(B1eDb#QMuOQqd#Ua7?k)e}`39fqae(+yz*swfo4nTJMvEPH%f_OZ_mJkV6kG3F zS_E?03Ih#|c2>`iaK3>v#}0}PUc=0rjy?8(W_Gi*+b~}cQneZ#r4f)>N_fhYMXEkXL516DAQC|%u?b*s*7r`>m4$Htn(tCG(MJW?j7 zaWq>}CVbCK-e22PSw)_ybiQWvxHYgqZ*ny@m7LS|{wC@H>k*lT1`_~sy!@F*{$+n( zQUi(x!65(VHT#?WfioUHe}w0DzsRqXIR&u%LG2u|{_Mun@# ztCC4P!(X4OGWKME4pbb?k{6NfmzDPPoxgBw)jPlTr?yl+WB?I9VjwcXYp(4Ql)V+P z_##P=Z8bTWmoFZNlJRj~sZyVi2R2mf3lh-iu`zfEFr3PunFhUy`5ejyoF#?79U=;( z+)`e~#cvW%dm$WtW}S@~zVe9gFUd?tH2UOwrm*_|6eK^Fs*8iEhn2INBY5Qk_Y3%+ z$CgfD{cQ<`4y;Y?WAQ(2L>`JDwGJ^n^QB|xYsk}dXpDN*R%<)irOFdqcu2C1IvOAp zQC!x_KyMLCRUKxZ{6pUTM(&~%CxutynOEvK=%g(kO+$cEn(`#WP|+BaR7Fhb%32G= z>$8M&l5=u!i#ux7e0zlaL9qdxe=Cqlt?E#P zW2U`YdCc?JR&daSe8Gw6OVh>LSRb4npqYNQ+~>-vpkRGikK+h&-sgbkm%1pp^zcuKx<1 zEv=p#C3>Ay$p|z7#`GN1nE!kF%CG$DW z73MyjI%ajk4y))kUU9Dyu4o7|HPTpYm@raqDAI4aje82Qy{X-w0VDb3zt=AS=-y%e zgGXF!@6&C6KKjEZx&LgFKl8xtRnSlI|Jatq^@yIuQ~#LZ=Aw3CiDY5J6 z>qftBiJB50rYYtsVl8S&a1$%A!*}Y_LRfX&&};?!U6F!v$&_5-Np6#n9=N`0LN;zu zW(Ot^{%E(fiM&aO#N08xvDGkXw@csQKEnuWHzHR42X@t4H~xdEbQP}gD=jzbvSqle|@GOP5s~ugN|xB`EWNCT?Xy@ZHFBid}tEhu@uYq zXvvBr#J#(CJelH(?5aZ~uUlU@TsMBHb*YvS(ZcPuG8{A~*b;VOv2$sRq+TF{*O;Mc z3u*Jz|70R=s4MI8{jk|GDy-$d8&Zz0MAEbAq_9SyQ%$jU@QwFPmb8K(JH-7_n~fHzD}@ZwleO z%-!#On)LXC0ESuh&o$Hc1Gv?{u9DlLS4M}>75OD6z(u8zCa9erplUPjTdtW~>HU~N zCn!XJNB9DnLpEM!!8o1ht$SN~WepR@R(ppc=AB!VG+cMs>^PwdlTq4=q{tGW3F9Qi}oG%ZVE#l2%!kXO$-#1wNWbCwgB4AA^q~7)hnZ3 zcW5|Rg?$6Z{QpPZ2^=1|*g9Cc-T#MTHCI%@av^BD+U8Q^briag0|8W;i57|qNdChM z%f;^*XRSNHQLXYMLhn-RRnW)44jNw420T;oFgs9$W8%idpjrHlx-B;1n-!N_ zMIY~wZCraw!BY(R7Y)+T5n<}wg>Jpu3Za>KAG9o8q6t1pJgRsuZg(fdKicEZv#Vfe z5sAv_pAA17j0x+YHA!_QWhzJ`!0I>HXxcERR+wN2@uPAm<8kPSDdrGdhECNy&89+L zGYs@cQUFIC{^WRh5RBy1aQC!4v)QCdjWDtHfQ~(4MhvROP&y`Ui`3_=WVA{2(-*KfQ%b+03aYyGl7jucwbopI5jUQUqyl!+mGvjcWUri@0>P+_^gS zTjBHsHuRD|n`9sKSIhPA_+gvODB&$nCPG?Tf*L*GbELcJo2`MN>4PK&nD?!^l`hQn%aTd?r* zTi5(7Uz&5_1dbZ??bs)aZ?q~^iA%c&fml}&<8EZ8f*;+x7{v>{T=;BsXJR&5ctG4W zHw#g0x+(8u%5Zb!Z3PnAUwfiTcu6Gzkl`u2&pTf7?{Bp~3;FU{A5FRIoN5{KW`in? z>8n|qMmg=Qi_nRgPueS4u0(1nxHsCB`XGZKaopFtD7*rXM>-_)sf{$B2sU9~?E1x6 z-|&jQEL)aQLNaB2RBHInJiJ_iz_{Dmp0$W4JtWa%G3}1eG8Nr#`ZGGJSX_6?rlWSC zWi#c17nfJ+$2zQ!tK9ezR`AdZo14Kl@KR(PEUT!rj7q#uM&|HypYzW)`dtOAQd=@I z!&+%%^HB@pxNS$poGQ&56t`9HTURe^g~zl5zr4zQFmvoCy{iZd0f9sT-ndCrhkgv0 z**ZA5TY7l9+y^5pwqUtu@I-To4=3oTddTO}F5GaZjxev!VcMx}^1x-6(Vc?v1@RL% zYJRG#FXwWN*hpb1CbZZ!)a1K@-q{5%*Fi6fviav_=zOtGhr}n>5=!NUE~uJYZV4X4 z9;vPnTQe|dEUOF9AU2t!N)S>|paE2&{Hav)3~Qqa$n#e^UZb#b&su1DFV>K|-pZSJ z_JqDL+FH1EJGCU^&fT_`d~)sNMzJmtD*arg$zbI>kx%m>(vkdW^>x+fRgF?y-0YM3>RiBSTqM?M zLUu)VduTEeaPn`G<@PPB@ii3;S5Xa#lH)({T1nYo4!Q{V(P%IJ_M?|R(x3}=#Sp`M zcuFRS)hn@AR*=7WbKjo}xIe}HrK&tCwebSjh_a}wkhC!~X$MWT=xX2PJ zEqE!ipjRJ+2Sl>Ga`W>z)fZpdJ&ry-Zq>@e-?MZ)SnezFR@*=YUb$YY>^^!_(DB}l z&EsH_j4|a4Th!q5v#2Y>7vr+lx;vrtx$Zb(n-i7mN06<7Lxf{QZ+qVZeMXQW@4Vp$ z@%aT_BhMX}i!_qbRg@L*uM|K=mPVTsJEXzzP>Uv!H~%15c&>BA(TgnOkHBq%DwQvl zDejUGM!b-esGxEvtW*L-=!DZ`n>4BVT}<;3e|{xjm~dJsHy?01L|S;aUGA-F5-|u1 zQ>Zn!&2V}gZ~a;p?z0OKAk>%i1+*N{aT~zy7t%&;LC=k4^|5L4abxd~535=-x1j@2 z8@DS^KQMv70%#5gEz(>4;bKfnA#A9dwU+u|!7Z|}!_|E=c-QQrvS&KmMPDkQ%3(R( z52JHQG*{zC=$i2_o^6*Jyn=b0;|hQA0iW6P@#74NiR4B>GHa9+Wk7fENFYD{!a8(V zuwI2q^1ZXZaK=ViMnv6)%Ajd^9;RLiyAhEi`v}fu=gDA?aeMyEz->FG=Q#ONy(nR> zX#4y9^3ZcX56_$aUA_as@VFiqfrEn5{BTlYu3npnx6D%J>k}1a*q2zDMNo=*dlh~Q zJ`69J$KsMMUzbNx9Rj6q-WJKy4K1rvj&8nNAdtk7_+*ck-Q@sVqc6`|hWhb)pNL(e zl?#X-2B4mGNk3~pp{i*QrIvr5z`sE689UjO<> z{Uh|19k&)P+LM%L6UaRDg*6wW;cXY+I%*C{68d;NexMX?zoFLqD8M2n3q{p2Ulq1w zzlhs0yX6yM+TVlp)p**r4z@<4!WYTwm50u7!(mlj!}6hL2K1nLJ-Yom2VO!`OuPIl zu9xDsahy!Va+~h}8sPO&TySf@b7+buf3~ec2DALQWT(40p8Y^0Lc1XO;#@7BTh%dZ zbfaikAYbQo0lVISF2zna7pGrE}tM0ZgAIzkKV#3j!oGdl;S z0=%1?5EVh_XRk&BJy*7gyDV)+j}1=?XWKe0{O9{qAK8dtv)S;myi^Jvo78&-Um|eJ zGVnSpa67r0H)AE(5Hz1j@@mdIHFGWKQZ{nK=|?rm>pSRQUig0dH<{W-v=ppQ6(Av+ z-d924LEfu_riIr~F3|V0)P^jm8cbxcPS}ClZu0|+z;duwFbBJ9iqwt?C<<5!u+P>^ zZCQaL0m3zUoR-*7gr9)OPd}qT*ZQ-O$!|lEyoW1kI1yuXV0ilyCrZTt<>q{9e9|ZN zfI@D4!#_?n+UC5O@&M{{TGopAMk@>U`AhbrZG{#|lqgR*K^y-gy}6w6=2{SWWm6G$QV#rH*re${U{=Utwu10d z1QuwTm6TA$k@S)r-Bgl`F%x*>^g6P7aav#X3w2jBif;A?Lxe2rY`Sw2#kWZiFNBMl z+TwYX6;l*@@CKBPD$Ab~IP;1=R{mjIe3Zk3?&sNMd{;5{UJHG;pwwC9i@)#N?0{VM zO!aL-Q{R`FPe*2J-;RfU8-eiE-7~tm4?d9oC=9<>cQ_124>B)NiL3nnHa4_CQg;AJ zVAf4KFBGW;v+iSj2ncW?`Jdww7iY(N0Y9s!?!3f<5!4tIZgpzvAD>njNCzb?J!kdg zsRin~#R4NUJCCCRjvT`aqR(ANbQ)OHBhk7 zA4ke+=6*(0wFNr)GM7Ky;ss;{MR$~71W03TLVL5Ql2Qw2vLrL8U@kiFtZfAj4M1fR zlaLg2RkK(RCs^?1wP^9F4$WjLJvX6DT7yrBZ0_#Xk1__@BuINH7dp*SPPKFtSbRgY zEf-@FI=A8_nc_IO`}53DOhsaaov|#1sP|bn0t_pqO907fB|SR7IPCA-v6kdyEaJUB z>2OFRo?`Dg;`tZ}UShiOi93<|=y%6|n;eoZq3J0@^{qJIN3#NQKohqYUPSpBXiTf! zgsfuVL>^wg7m_{yxSUY=%w=u^|1ERc1}LEA#JYhWH%^xxi%OSlju6(gR_7D4$&yPg z+IAM>JTOQ;&#emamH`Lz>D1Cm8+c1%2H?d{#ow++p0AguLI^bvB%9Y`R^OKug?&1~ z2TBchPP#k~vF;>;P1SO({T?dT7Hg-=&;-MZ;Gk?#G%dlEm6}wP|G7wRC_LQFko-~q zTc0-xxIx{fj=Qc16eQ7BuHutS*DMIbyj=Pb^+4tZ0_r!LwIo`53N8jmDMmchA_RVW zG<)Wo!&07QjT|CGc+MfzXmOumhu~4Z9L+(gbX~dmljQ`eGN$L^sFK250-74}Lg5Ux z9liX<@fC2o^=b!I=$`8uO|>FYijO1BaFg+3NLr=>Jd}4J>I-_MchoPwe3~C&g{EJ? zR0ozq(u68xvbod6M$I#D4aIoU()%E`XHcKcBgdRC`uG$)T_A$4-nediO`as;jpaG- z>RkQSctyLKlh<~Sqj~3PG6StLO+D6L78l`|1({4^ccz`Qw2XuW3qSw_he8F$+OC5lmibY9G8`4;MN%cs#hSRFnIx*M)!E-@*zfN? zic}WlfnA!joOb!7IoJ5a&n%4GRFgp)NNjOrKT1A%Oy!pbV`3pxEl^cUF$*iJ02@Z& z*N;#39#$TmT(ZHg#9+2FgW0x8?;xqX)r5K13{e(qw3do&iP`w(oA!VWVix;Y>8rG< zBbWAw_iiZUi_bFPT!<8@5ymYR92P71h|tSFl;%NmzX92Lsd~L;SSQXC@Dq#70iH%h z_+oa@@U_Z%#L3pU#N@90gMK$}tk=(r|aQ+p{|S*CLTWT>&{yfbMI5448014_O*&4$L>fcGIvV*5Ezct%rY zJ=lll9M;+x*PLK`hdVL+7*v(@y)WDL4cv3uG?LZC@SP<-Y6MD%DPfjRT;=fm7Rfh6 zB7B-xPTVyeyOOoCxB0C-Wb@n)lIHc*2;|L;a9YxTPyKy#{&- zMV=gtR>mX}defsOrzx5!IyZgQ(0Wz>V}iCijIxlQmxMjg9SzNsBS?iR`prJ3vJ!yP=cDsndNksZ;aY(-O%C#=R> z@_G5$woXwaE=zc`FTg|G2Vt(NjHEO+ddHZ-2ca*>K5YVcJbyFEt{IHnVm232M0K4{ z#8=Zapgg^b{Ld!VR2^0EXi6 ztz*rKBc6Sqpu57E4Nnm97fLqE{Aq6EPu3TX2uq%60l#HV!NjY=I4;9BiwpsgK?%`x zUJZ4F{GhK|#p?f!~IIlcD%&I)aEYCDPr>smr%d9fWJS5Ky z_nXDs$K>KcAJ<30>Oh_b0)h-I@^DhSXP{sn0&_P{r=KCYqx%va#_cj_ZR)hV#!|2& zi^i7L-4k?}U`)$;lhK1PGK5tUOnen|!;CO&OGsN8x-ZXItMzrCrETPphxSNEdijY) zY1-;*@h~{?I5!Hc!RhJMtxHKC;&%V5y+RE6$8v`(ucOq9_UjD~NSD7dBHKyjo?SZpjvN68-_mmIg7{WFMqUTWvPx=btAgB7Un^2 zPiAwtKMszTls_gpxheq&JGV2I=GTBcNCQC?R z3givVI9?C!4!6J6cgW4h%YSDrhNcb!v_|w%pG0ZZ=V@KIY(jbZf5Jv zLUyd4yV#~@R0)&WvB4LT4$EhC?lc5C(}XBK5#sw+@ENNKLisNMh}*tz>yGP=nIvc6 z_~4+QU;jv?n?zxB(UTifgR`oFk;NOrG!5a-;m9Gte&oaU5)}NAxOkDWj9RFN{V9@6 zAzev}A5S06v*$uT7KL8A7r&9~aavc6x}L!rRG<(gVStTdT zXt&)&xm{l1|JEIY0;pL|@>eC5(s60hxN$+dtOfeAZG4?Ta+7$)c+`1KfS%A>77>}j z#=Fq0I0=Uq!y&RK0BQSOksT(cqvwN1K+!q8oG!H%U9s6G(qd!JxCY^;qY3oK*}}cl zUrCKC$*2Icc;1?>&Ou5SxLn`3z}Cr4>RsRU;EL#0QHq2Z2Edki1>=C+wgT_FcD*wi zikrXX5vfSNCCgmi(@5BPh#<59#pyl-ZS53^J>eSjy1ob^&In5SXaVO?iCr?8DGx$4 z%OsbsX&OkuGCf4v}&+}@{i)4K`b__ zr!;rVL4B%;x=Cb>Xf!8=79kbgs=PJFX^5@5|S9lfu~Z9 z`oW5K>UQEyKStavc}3K>B-cgeZ#?0G`!7z75b8_}`VUENcbW^FMn7Dyl+NhyFMDD_ z>n#_&a>Q5%LgW%T-h`^GuSiPsaCo|Ms?KMqlvC-ywZfU}8#;9q23aq4OJrpjHX+Lq z9Tq>@)MCeVmXSOy4&`#L)#;yM7~CKqD@A>OnXzro`RF6oMwqLV?y3RtHXSa-nC)|4 z3Rp#nJ~4;A8aHP=C3oEALa%VJ%F1x&p)%m16P%!9S5Huy*(lzbQ8iBHa~ar z<8%(79qU@KYoh3C?zxqEXB%FbYmRe3>Ctq+as=yDtFv;lAfjxa*_R`+*efCem-_rg zN3%42l8QJ+a4Rn{QTa!>uYE`I*{5GtQ2eh%|C|&smao$r1B(V5cnAn-2#9(nb`of` z`?i0s6cYvq@Gov)Q^|WEMIkj(O?x2mfmlsNXK=H=$WoWtW@6=gZ9f}UE=-wt222b@ z!N{CRGxVDNWzRFr1f3s8*$wiJiH%9nb=IA4+YM{?pE^Euk@qZWUU<*Viex!3dG4z( zZ@K*1hTffShhQbbnXI(Y!x@(M0^|xET^Bvg?ob#)KjLK_Om8zC%JqV1K!H#0J0LdS z9ac<~@~G694qJlIsu_o?QRZ=T$n}Z`Ju0`21SdU;5K+d=Gxos=zoQe+2qD;0yj%^s z@{mV1@NcYD_tW>@hNz^OM!jJOHRYABT!YPa-9Evauez-`GdBq3xEkzLrmTWq$QIdp zPvSnK-euEO_XUc(4obbh(%e?sP#Yj9x87jOxIPVZKJ{1VjKosa6S1|Y_Iv*(i_L`(R*vKPTocw)b~*odZu3JOhlvj(mKS4wil-xJO=QrNbs>q(1o zNMrbvEIRLOb=5iJ`Z#A#tpp+zQ5V(G^=<*|cPuzUq@k~MCy@7b%NPr>t#trv2IXRqPI)TLT-L=1EaIj;Bd zzO>L>`S)^XyG(JlmrMcE-WacO<~L6RJ10**+BfaMvNWlpo+*jBqzIb>RNLP~n|Xb6 zzwa`cFB`55v$2lz?sgvedsooDz~`P1w5aZS5G_a#&mOs#SRze=laM4GsP}VNh(J#_ zuo_xSti{GjRs8@(ok)ir0Ne|vJphpg4XlRE!1fE4H-8qxKLwMyjU~8~+r!tvlKK8o zB@dgK31b?eY&hZPfze7jt#Y=r(yyUCw8{!Lc3z!9N;H%4e9V*&e%Zt;9nDzLMs<>% zc;((Zrdy0ssbMXOwk*?I~i}Ew!_ckU5i<)+34TjQk3+ z^>flZw6@l1vYdniM|9ukN(b7|1qdf~HWfmhsA1L&wkp=ZNlK$R{EiTC>d~?NRoJ?6 zCbr37th$OHna0CHAb(^g)`z7bRNgpoPZ29d-K7aoHf|igq;O=LjyI|Tyiw~q<-M1! ze?(4Ds^_m|C2L|yBk}8F+z=>STXV`5onQyQ1X3ykBtI!D5}Gsd(RLfuO=}{Dx@wz# zt^Xi`+(Q6Inr0%Wbp7yXkDm`9xGxYTdOgIn0>-igjH%h*V|rgn3;cY1%O7=(e^-(A zf7amNw=n;u$*BiilZ+yE6eLYz+!p*+9p3URuOv|$R`vZD!=3|mW;EdZS~BYr^1WhW zv2Pqk%7=|%fY4FFY)1XOJs|Z}?~+nc%ULfTdByn5k-6s-4H;fjkZW)D2dBx+YCQBH zJI6;tiEmn`Uuo&tp|l2hVzFZxM$2l>^ANhyhX=^8$ef2}u^;*RheL{4kK&uvDfDxt zgz9H839jaSg$zf65zU(nzAej(MOsl`TE#5+p11Zk0to22ay?~j^r&XBbF63m5<#1I zEEIKXJ@}@^der0C@@8u|Z@H;vV6`D@jpUarzDIcc)W+hz())iZ1_FL{hCeju{avN^ zzbW*t3w6~9N1cI z|8HykkH-2p<&*Azbml#jQT|H-CGeNt@O`~-1@+WEj0(-Zc&`kJVGK31&xJ}?=P?T0 zm69LTRgOM>j-J<|RDYd(#ocJFLpsW2(@1SA!0P!SjqDNoVC3+m^`(WwX#8G@ zy{-KhXSWm5!oYwL)9^;#u0Ww!nnPSS^6-RtZ72O!3@!Oe1B>l+N>hs6Ov=;TwL|w~|c#TOr3ik6CnH=MRIS{0`&l9eoxoa1@)c%$InH9&s^^WfNy@ z57Vl+1p2f2iO6n8AAlhOzJtxr@xR0Bq5kiux&3;q#=p?hLs8{#eM%2)O8?4KihXQ2 zgGW~YquB@Uz|~rd`_2X)#xY`_gf~`2^&>>pyZv{|Gq|;ATb`d2&Nr#Mjwn^Nnnm;K z$2qOfyf7P-cu(SvR`z~AdCrK)#h_Qr-QfU*BkgWyTsVKWFrI3C9-)Af{CVkTH`})u4 zqi3F(XYM)AdCtA}+;h))pKXitD(c*_^WL>z0|#7%G$(uSxyK{9=_#b%ehU;YD?Hni z#WA&=u;Gne|5NYEFN$qnz9<+$T=7V~D>o9F&HIkFj}5=Hktp{p@u_gI%55l6iqUqz zNz{ugdB*jU_+5@R(c&*p`v%W_Eu$xJ5^Vl*Rn@*OHAT9?VcMBNt1r7uT&>A2;+zOR|vwzcg{?xD)JcBR9(y#3`EDLr$OXuB{!^T%a^uFly&9sf@P{vB^0RjD=BfSOEHE4{P1E3+&kn0UK zxlyMbf?^K1_t)ky?k_KWW5aKmQq`P!Tshf*KkMdg65-1W7WuMV-GbH+0&d>qG_9|f zFQ*_QD`5W=(Z$frz>j#yHF0F9?I1K)Ey=L&eA0M=$?+-r44b1T{STiH$}@AAtT;0G ziksP;_=k28RmjM8OpFrP`V6t+9s2@=brA^7@LzOO8E(ZqFJ)PQq_~=NXaGfH9aaXE} z!|?T!0m9|Cct55Oxjgz9LlnhgQ5e5(@kmNU1Y@J1+x{3YC~xno0CHr$$upiLgPdb%ges1Xq|JRSa$jTLV37t)E{ z?|XF4EXp5l25bw!FQ6o&KO(GN7AcYdMSSxH(Qk_Z2;(^(e=+ zj$d?8xNG2ax#CNlUMiH*N3A|^w0tE2NFT?vE{N(Fan`8{F1bwFU^Kr1)mV8Kb9f5KL@2gncVK8%$^hp7t|H@pZV3DLLmTM z>lHss>V*(L|1)5a=o*=9lipzDonSHJvEzI39wrl-b@TjEUDyjP=wuwNaJV(eu5c@{ z*oJE6(Uob8d7x*Yd|+7M=Y- z&@)k68+GTAR&Sloi3rVXA~t{5i*pLBSsIt$k~vHpysX)-viuq9rGMZdoHEpqQFJRe z?5nt`jY6n+kRW(5eks>KkngKTDhm?s z<8kE6jj0qDNQQ*fUp1?#Ch?npIiz6P6+$HpQ9F!j^_>VimN$2+vq;L&0>4)8DepL6 zF~TVz^v!b{hXn|CKzPAkyxY}xco<_f3Cmq|d!ti3khdR@`|1Bd?rv5dZa!-x>B?-?x>6+&ew8kgyXL?db5}GNBy{G?{rm4iQpCjAdas1%moJpAKm4b4I z<~%djj==*-ji=MkYn(A0pyT9$kUH<=UW9+}>INyVr|M$a&QiN8q~nrwJp%#}Oy#XU9PKir8e6C(ERz{F_xx*g=G`}z&ugQR#-fft z7&Y4EE_d7$VKC-q5t&)eo1s9@QSfM>IWAN75eQTS2o}j+ic9q;WC7He>1qai&oBrP z3U34)!AgDQUwEYs97^DSc%@zxWdhshuRG^yH2hmM8lw5--^1ux1hTJdF7iCD%(>;# z+1SA9OYw$znzVMrb;OoaD3|7Rj#5_$bnM}MN#5hrWGsBnvtVl1e(x79Atjg z?c7b!??g?+Q9cd`&I5<1@Ff^M^iU{yHZef4eebF{Nb^7-bb0&lp}^dw-Hy z#{l!TfwVxPTJJE)hw-;hD0ANP=i2um?x#IrcdFQX#Wpc#cD9t*cj|9W>h7C5?)0$z ztj3R7uE=ZW7H%}^T%z;LcAJP&-&I0bv`@0Lw~P9^A~p0{0`CT2xbZXf7e}j(SLx90 zs;465Hz*lx&?pM%TPARd&ACeffV%l_#VLLKwA?gl%`P4P%$nA0+iT&4nik>kV_q0m zB;0ocd70_p^hP*+NB6H%f>!Www{siw)4jWt%*wT#IfdLDq7LToB&TiI zL%!=(oMD_8=lz-B`7$U~D?qtEZ8R{o3&YZZ81KpQxO6;dq;Z7urf>N^6> zjyDm@;N*RJx-=4Pb<))H(1?F|;lnS&ym@@t6S8>^8kN-|MOwYumhZ_*v5KWfWK!fz zCJGTRiZvQ%Ia%~NM4NQTSe_XC?!9|k52V-Un-hGp{~7 zW%<$I%gM7c8I^LsCVaf!JILsCe>?CUN~Uh})9|HUx+*q{A!aZlLR#rHWNx)U&h$WE z)&8olE9&|um^K({8J=KJ5N#WB>I={&B}gO9%MkUn*90czCx}{Y-KOMxns0WmYCDf| z>S?}L>8A#5_B5V8*>R52nr6J1I)ayZPu;{-+M2NF%!a`)PQ4IjF2^ku7;w87lX z(1rHgA{GB@0FW_;=m$=?{*vHn)*ja#V?NZc=c(R_RueW{q7+y4*=R*7q$4 zabWfI+onWD8sktNpXk^C)7*tpp|{9|Gp>(K3|Y>KA{ z^wb<)&T-`(WOFJ{gr@e#nh6aSsD0HU-uqZYkeh`#BfWst z8Q*b>%Ivg@5|r+;@5o|j?YYsQxUdwCCCS)V4XTTwv%8G( zEji@S#n za9x~nG{Jbg5AN8KsM$rQ21WoXo~KFlZowU*#GG5AG9A8COiV#)>O3Hk*}r_c{C(F2 zdRn2At+%4+-rpFv;m`CA-B%m$s7BaL#W=w7!@zF0pw7b{&uC)(S8f(M&Yqedy-e(n zc^wsJ6J#tXroSnXN&AAw<~Re+6&ux`vn=`aDNG6n^Lgqu%1vBOkvHy8Vy1lfvF%*A z>AsM7KDoB*Mbk;1Vo)aIkHKKBFn+PKM;08qvWh5j`yU=QD0(M)=B;o?OO)_Ja>*P< zJRoeun3Fm*!%j0^Ag+x|nm?~-;0b1{%Is z!l!-K2Qzl`%2EIN`GNiMwp_24lJv*X<42Rfzu*fnrs^?LI;>!<23he`oKtDV*VoLT zFumI#)oL={ckOzONVSkSx18-BhCT0RZq1I@HY7c`rtyR_u2p!~)w~9&Q#NBJ$8RPa zo#3ou&4|b6Y~_hu_Be1$3 z-zuSO>i@Pia{}&00NJqq2IY}hwf}P0j2ILWKPKRhli}Q%h zrM>TcUnh1yj}IF?q#t;Y{q4u(6nDGX9SXL0J;vkmvL`N;J@D%dIdrnc*hEqxb)x_0 z@UzSl<(ef16~#$EweKbDixbM)t_qud{B6mNw#X+fa%z#{w!#xK!X>v#@ATNdZb|1c zz?aq#mKl$XspQ%1`d%z9u0Ck$)5r@)%SB-?uQQl8qiFgzk4us)US9M zWBCUw+8*gc*|02g{3w@^=|LDH49ZvDaRfd$xB@`s11Y5F3_@$c+2a+&q?w9Qx*tF+OS9Ci-zV z%G~@e2tO0?xx~fBtkcEf89Z@1W?!XMf1!}0OkeG_tAkH&=P*G(&#;WnH`kuJcah0c z>N#;UdCBex@lwc~etY$$V<)r=na>3&kc8}_DK-lFS@rSV&pmCw=1r-D_l%mCS$Dii zR9YG-8b%z8yEjoj^7_)4E%W^HOrp_)+eeibyQeKHN}9`mhF6ce2R!Z(FFCfCe3>0^g(Auo zIX=AQE{?ml$6vs#i#%ywD_6S3Szy3ac+jT2)3tc4Zi$zeQ~v4C?CTQ8+0zda3a05Y z9m!#SP?2y$Q1$RZN~SqK$WM$sWnk18y-b5A*X@l@tYF)(8c5A%6RB+`w9QQD-*yPs zBLd*Q49^n~b{Gr16o$iC_>G%zBjJ^BC~dCB?XqN!AJ)nbFCR$@gIw+_4_`T3xmPUy zy&q{g@5_S*wSV3x;UX_NM(9lqPlb{z&!Z&85y!F&nqPDw4CNAT6}~i1w46A>JSJCK z?^Bw*ShzXxdKw48xO6==wUkfPx19=oAm(@jd%vvfH+A2K)0>)IX$j;8uEgjYIx4zc~;>7YCw#3M0T5TRwZV7x7@lC z`=uewf%9G=*FL^{co7%a)CnoJja8{ABtIk(i0|{XpeQd(I4E27)kQ`D@k>WtgKcMX zRat{OuM-aYM5C!+c(9R@z8VcHsaE{x)j3jLcgj1|vA^mLsn!RZDwR11O~zhd_IniH zbTt`2aa2|5NLs+~a<9uXx`&p9$)m3>G0bJ3CM&Pcnn%yD5Dq-@h2IXQhc`+gpnyhO zR6rPv@Gs>@%$%KFJW%Cb;N{0!6%v4-1dzM{n10}uEN{rE;|r<`iQ{{{owQy%>*9ip z5+$Oz$3F`_ljroEo~cVI?2LT7NlHI)&9KD2yR)fKRxEzC-s7Qtt^=|f31`Zjo%41;&xeUHrZ*#YM+$R9sX!ZoIo z6?W37qe<9l?3|&_i97Vp3LhTaDI5{hRrPz2^HOwifOB`Uwj8x<@rwm4_f~?ItTj9+ zk^t$hOvC6w5&Dx)7FIwohoG?J){d)_u=whNV?!m9L-N~K)ew{-X^GYH0BYErcg&IK z^|QNX9dId<()di{^I{#lkMi{oS|zLV9wgG#xC6c1sbIik&(e7H%r2tYoDRL#UxiQg z_KUH_7d?Oe!P;Q>#Nut$!-oQmI#IgV*g%5P#Yd$>EZYYz4M%eqGu8*o9P#Fe@J zUOwBmnb-rrY6s_?nJ%LuqduXXrTn(4ta}obFhe-7|(rr&;H`y~d_ zEaCICBrmQX^YKCs`nw#xQ})X~ges?g*6@1!(8xI50bVD++%i^M+;Y!5J8)m!y$Rzw z!?4Z}TmlUq0%-U3*mVGz9|ubMFKDi2fA$)#Z|#G=zdCXjMZqY3U~7Mo_Ty42vD$^!{{H>j_X0borN23MP`gZ&R_2YiBniG#&S1TK zBYrrhDK^uJ{sEVKggAmhD9Ur{g+R8IAY}8P@Kbmxt-J|-F<}8Q1D(8y$H1=+GNU;X zd{UWhq>>dfC%Kwr0>o(_k6rQOWgXlmqtI`nJhu=(c2V&8@fy7LgDkj#5kqZOJnC7;Y6G4W*f|~>)*ko}2n~tQJqc|*rFJq}<*P2c;#Zuw z)I1XXP)P$-$KuO9MMMeY6w)$7qiKq&ki&zff{2~xDed2CQH>ea#jYx#6p)#!QE z_@x`OSMKt+y;fB z54<*B`4>d#Ia^tHxPX8OxB`SE=;tD+RdP{ODeS#|12$S5JX)X=64!YEe4l9f$$Fmt zw$wO7O_GI?9WjT04O`=)UWI08o$M%}I+svn$Ow99*8_$!2ikBv0IwD&Q zx#?*=XKy(BojT38*E=J^)5fJ=daBV_%E_gP`6oi1z3raLu7`XRqK)Netxum*X1bZS zxHp2FsNGV{*Z5E(F=WwNZx!jQKhUZ<%p`n1P>vMmowy{ycaEE+cZ*E+FPHB;N14FX ztuC%I(Z`;z+&b$UPdk;L;vf#KO)pGN_zm=#wm$RZ^ ztJDeg2SQ3#fYBbp^NTRU8!%7rHEQ3bO&<@6WTc7S1SpZMmlX2itR{XWY5>gA?vUw` z@!qd&FZf4vT*nTbkNNT}?7N!C)`6Xl_DMEfB)tQ*-_RjhrVBSp_*YF z#Fo&L${Kr(P)FcbzZ^m}d4-+ClG6}z~Colsy!gDnw^x3KeXr8jD$)+R;seBxvG zbsN<5SDXkyRJnVpJ*^hcEd_+B!JZet@_Ey3cMCJUE33A}D^&Mx%_IdBM%5wIKm)a@u=7Yhs`aREMDl7Yj=j4>xd~l%9=4hJ9PzfpM`=*j?C@RMOu~zY<1Bk_?>I1DVw4?}+;COSTiQXi z@(oA+#h=-E^$s0ZZnQk(gl;>MmMc0Dl#k3$VeNlpu;K{AMd|*fupca{6;I1Ld?wcE znmc+GP7{LhG~o?78s+K5D@V>G%BZ;Nnx}dcFlh5>s=Drd8qLVBnVkNxt8n{h5ghIa>5&a14SHN_U8DqaU| zJ^R>;RKAt$)ZA6{jA)l%ltsq4(xoG(qpInivKK*4cgzHw@P$ute0KyBf}WsUHJA@d z1cFq{X~`myB|@@1_k`jNeS)u*+`^NP^N-Dnj+6sarW`yI*owkV zd~-8*EASRLo58-ZFiPW4y>q<|-3^Z@*pYyWU|?`6RcbfT9Q>Tu+{jw!zrHO%jBuzG>5tA(QuaDq45->2TTpPiG!`6vd03{W3HW zuYJ#ThcMk!q^>b>Lv&&my>&<<-jnC@bU%)&EEOeR*39K&8s)!2wHT@jLcPkCI~~vVaFTRH44TLg&uJFRcQ5KLqZVh- zN-hUnUE=vUdb%DUn;{@0zBL(bEZxhYrE^S4Pw}|PiDNn%x?1vztCc1Ku9rFo3sWkM z%o00{bftd_3TC4}e(y&{=r3HltUY;eo_}&`UJ5`e5Oe5UJrH<+r6!^G>_`jab~h2| zhU>fOTf#X{-Mfz~j4$1wb7^boKE<<*H0%72rx!Y?d$rgN2Zku9 zE`1Vh+;>`K^76sGg__TWCi%YBh@HMhrC?ooD2yYGewy^a+fRC-g~Gl9S@P-~Pw^`` z&R)UO=!=NnEfVpK$uFcdb{FJX@v+C;_4$&x2Gi6m9(TaA2QJ8nWO0e0$;FCafi0oj z77^~{zV|*2E+@WgpYYHBhOw>yc}96J9wLZWpmGQ^5H$!?QunQR1oaAN4*na&SNNl7 z58({dSGGxrs% zD`an7ulUJs&!@M1Auak3ZSnqPuMuo*_l@}~)0L@xV|!)2IVsp3r*@}Wl*f=}HHs^- zXKw2_Lu6h}AaEJH^aLfQ zVX?(r*Kk0HfQ+rBE3WZQ;UR)oIC|6cZOycxibonZU$od7_pvQ4T)my^*=rGVvs&s! zsK0-XM8dGJ($}nWcb9Mo+uHV5J;L`Fi*ogiL6&UY5%PLPWO5QIg-udwWHjkx1W)JMCSm3A@4)Q=dWx` z7|9@`is~FX*U)&`Vqx7!CmPFgh&lH&gq_~IU!4|XCt)WfVq7Dp?GX0A7pOTL{%A8H8 zb`DRFz&6OxZGeuz{mV21>n)rbNF<^Jr#^IV5_&bZ9jFjH}yeck-K@a&A}aCo-=xNy&FaL~4jo1!>2g3nIAYQc1*Cs+%LAITo%Z zqp^Fcv%Z1@QBBWNGM%7aFuKmzUww_; zYuTLShN-vgon)P(LJ9H_0Pb?z!51ZMx5Yq5+u>93t?&Rr+ ztNU9+j|4i}k~=-LU_4RK{-XY(Y>~^6tfIryxtFaXCoi|Y${}@+OS+t)NuG57q_2SH zbJ<9~9q*;Qw?$WHhEHCV%Nb6_%{kJPt(xF@{d!wYVwxr7r^9-SmYme!w!hLCDWsdZ zEB_{i(0PP-UOquSBDO5B!075>L$_?4V`s08Jgyet`~(qC-rL#Ru3E2sdY)9`k-_Bm zGr?DdT!Ir*f~IdT_P*I)8__-26FM1Z{|KST`uGX-^-0b?b^dO(v$9u>42+2{i!1Sz z)0$r+e0H=T`kPF6-Up(-{mDm#L#{YcK|LmZK^iQz*UO2Fj!E|9R~^fHvYQU^U7hgh zBm4_~&p0Z%hht^%X~(id%2mTZKcP1LnCv6>oZz{eYE}gmC4HyJXOi6yFVK|RTu?Ui zANo?BowSeMtMPu{pb*#Gr()sl(%wE#PGzc5lphb$F=FQP{7Nb6K)KkVe2|cy$|%ts zdXh}$^E7HSnpaKpvFQ`pRN`{Eo39`BTr=&jLDFb0eo-pu^};en^?>QA{YSu$}^f|6v%Td(f=F znG8J*xf>5eM{(LM&L~s<9E#;=XHdOgMK+tv<(?*ZGU2t91H*NppEn-#wJ||r7iHP@ z_0d4?{?FL!7LK{SHQ<{YK2C9+%gJu{$zB5*aiwSWY?M2*woB1*Tk`jdQqvd8u_flr zD&vl_zs0SVawkkz8y!wlDC3^SZy6(849SQbcYedJ{w1H6NcrnXgw{d^9+Ul#K)uKG z4qjoQy8A5(_bBAlN<6&#S<&g%iE+K=iaV|QEg;*ow+s`9OKu%c$VNQNP~2|&JVepj zfSLP73s>^!a8PT}@b{7TPaiz%+?9XUOUT!Pt8TDZ>P% zk_``69ckjTtmDU`-@R(PFk03x^rJ6!Pp@K>WG?jd^Ua;%Zxqftosq9Cf>iHx# i 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 delta 8387 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 diff --git a/dataflow-website/batch-developer-guides/batch/batchsamples/pom.xml b/dataflow-website/batch-developer-guides/batch/batchsamples/pom.xml index 8dc2bf2..1b23452 100644 --- a/dataflow-website/batch-developer-guides/batch/batchsamples/pom.xml +++ b/dataflow-website/batch-developer-guides/batch/batchsamples/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot spring-boot-starter-parent - 2.2.0.BUILD-SNAPSHOT + 2.2.2.RELEASE @@ -34,14 +34,6 @@ - - org.springframework.cloud - spring-cloud-task-dependencies - 2.2.0.BUILD-SNAPSHOT - pom - import - - org.springframework.cloud spring-cloud-dependencies diff --git a/dataflow-website/batch-developer-guides/batch/simple-task/simple-task.zip b/dataflow-website/batch-developer-guides/batch/simple-task/simple-task.zip new file mode 100644 index 0000000..e69de29