From 85ef1c1f82bda8b9b94e8d2c91509801f6c5e1eb Mon Sep 17 00:00:00 2001 From: Mali Bayhan Date: Fri, 10 Dec 2021 10:16:37 -0800 Subject: [PATCH] master- Sync Repo --- jenkins/cd/Jenkinsfile | 18 +++++---- jenkins/without-cd/Jenkinsfile-build | 18 --------- jenkins/without-cd/Jenkinsfile-deploy | 38 ------------------ target/classes/application.yml | 8 ++++ .../kreuzwerker/cdc/userservice/Friend.class | Bin 0 -> 354 bytes .../GlobalControllerExceptionHandler.class | Bin 0 -> 822 bytes .../cdc/userservice/NotFoundException.class | Bin 0 -> 348 bytes .../de/kreuzwerker/cdc/userservice/User.class | Bin 0 -> 582 bytes .../cdc/userservice/UserController.class | Bin 0 -> 1073 bytes .../cdc/userservice/UserRole.class | Bin 0 -> 1158 bytes .../cdc/userservice/UserService.class | Bin 0 -> 837 bytes .../userservice/UserServiceApplication.class | Bin 0 -> 782 bytes .../cdc/userservice/ContractTest.class | Bin 0 -> 2027 bytes ...enericStateWithParameterContractTest.class | Bin 0 -> 2638 bytes .../MockedUserServiceContractTest.class | Bin 0 -> 2810 bytes .../UserServiceApplicationTests.class | Bin 0 -> 580 bytes 16 files changed, 19 insertions(+), 63 deletions(-) delete mode 100644 jenkins/without-cd/Jenkinsfile-build delete mode 100644 jenkins/without-cd/Jenkinsfile-deploy create mode 100644 target/classes/application.yml create mode 100644 target/classes/de/kreuzwerker/cdc/userservice/Friend.class create mode 100644 target/classes/de/kreuzwerker/cdc/userservice/GlobalControllerExceptionHandler.class create mode 100644 target/classes/de/kreuzwerker/cdc/userservice/NotFoundException.class create mode 100644 target/classes/de/kreuzwerker/cdc/userservice/User.class create mode 100644 target/classes/de/kreuzwerker/cdc/userservice/UserController.class create mode 100644 target/classes/de/kreuzwerker/cdc/userservice/UserRole.class create mode 100644 target/classes/de/kreuzwerker/cdc/userservice/UserService.class create mode 100644 target/classes/de/kreuzwerker/cdc/userservice/UserServiceApplication.class create mode 100644 target/test-classes/de/kreuzwerker/cdc/userservice/ContractTest.class create mode 100644 target/test-classes/de/kreuzwerker/cdc/userservice/GenericStateWithParameterContractTest.class create mode 100644 target/test-classes/de/kreuzwerker/cdc/userservice/MockedUserServiceContractTest.class create mode 100644 target/test-classes/de/kreuzwerker/cdc/userservice/UserServiceApplicationTests.class diff --git a/jenkins/cd/Jenkinsfile b/jenkins/cd/Jenkinsfile index 27a7c05..eb21f04 100644 --- a/jenkins/cd/Jenkinsfile +++ b/jenkins/cd/Jenkinsfile @@ -1,15 +1,20 @@ #!groovy -pipeline { +def MAVEN_IMAGE = 'maven:3.8.2-openjdk-11-slim' - agent any +pipeline { + agent { + docker { + image "${MAVEN_IMAGE}" + } + } stages { stage ('Build') { steps { dir('user-service') { - sh "../mvnw clean verify " + + sh 'mvn clean verify ' + "-Dpact.provider.version=${GIT_COMMIT} " + - "-Dpact.verifier.publishResults=true" + '-Dpact.verifier.publishResults=true' } } } @@ -18,7 +23,7 @@ pipeline { sh 'curl -LO https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.88.3/pact-1.88.3-linux-x86_64.tar.gz' sh 'tar xzf pact-1.88.3-linux-x86_64.tar.gz' dir('pact/bin') { - sh "./pact-broker can-i-deploy -a user-service -b http://pact_broker -e ${GIT_COMMIT}" + sh "./pact-broker can-i-deploy -a user-service -b http://cicd.bayhan.ca:9292 -e ${GIT_COMMIT}" } } } @@ -31,5 +36,4 @@ pipeline { } } } - -} \ No newline at end of file +} diff --git a/jenkins/without-cd/Jenkinsfile-build b/jenkins/without-cd/Jenkinsfile-build deleted file mode 100644 index 438507f..0000000 --- a/jenkins/without-cd/Jenkinsfile-build +++ /dev/null @@ -1,18 +0,0 @@ -#!groovy -pipeline { - - agent any - - stages { - stage('Build') { - steps { - dir('user-service') { - sh "../mvnw clean verify " + - "-Dpact.provider.version=${GIT_COMMIT} " + - "-Dpact.verifier.publishResults=true" - } - } - } - } - -} \ No newline at end of file diff --git a/jenkins/without-cd/Jenkinsfile-deploy b/jenkins/without-cd/Jenkinsfile-deploy deleted file mode 100644 index 55b06eb..0000000 --- a/jenkins/without-cd/Jenkinsfile-deploy +++ /dev/null @@ -1,38 +0,0 @@ -#!groovy -pipeline { - - agent any - - parameters { - string(name: 'GIT_COMMIT', defaultValue: '', description: 'Version (a.k.a. git commit) to deploy') - } - - options { - skipDefaultCheckout() - } - - stages { - stage('Check Pact Verifications') { - steps { - sh 'curl -LO https://github.com/pact-foundation/pact-ruby-standalone/releases/download/v1.88.3/pact-1.88.3-linux-x86_64.tar.gz' - sh 'tar xzf pact-1.88.3-linux-x86_64.tar.gz' - dir('pact/bin') { - sh "./pact-broker can-i-deploy -a user-service -b http://pact_broker -e ${GIT_COMMIT} --to prod" - } - } - } - stage('Deploy') { - steps { - echo 'Deploying to prod now...' - } - } - stage('Tag Pact') { - steps { - dir('pact/bin') { - sh "./pact-broker create-version-tag -a user-service -b http://pact_broker -e ${GIT_COMMIT} -t prod" - } - } - } - } - -} \ No newline at end of file diff --git a/target/classes/application.yml b/target/classes/application.yml new file mode 100644 index 0000000..9620feb --- /dev/null +++ b/target/classes/application.yml @@ -0,0 +1,8 @@ +server: + port: 8090 + +spring: + jackson: + serialization: + write-dates-as-timestamps: false + date-format: yyyy-MM-dd'T'HH:mm:ss.SSS'Z' \ No newline at end of file diff --git a/target/classes/de/kreuzwerker/cdc/userservice/Friend.class b/target/classes/de/kreuzwerker/cdc/userservice/Friend.class new file mode 100644 index 0000000000000000000000000000000000000000..211f240b6715c558e201385c6c6ab5c35bcd2034 GIT binary patch literal 354 zcma)2Jx{|h5Pg@XO-TbS;TJFh*) zQY2Pn>)zeFclNWtzCS(z+~6caKsYN{tvxrdFYMRsl_`vBw(Mo^tYJ0tmR%7cBurL% zr&X!lQa$D?HZ>uz1tHD;8uQv)x4b2UPH&hnxU5XPBx z{LpN2_D?!5Wg^WgqsxW%wyl53uzt2%!g=;Dw{m?vuNrT7X4@l2`$t^2HgO6uBOegR t>SNGlQHLZQF(ok;Rtb_||LPs1w@!8_anO-N97&$+1sG!@72&v3r9VM6PQw5I literal 0 HcmV?d00001 diff --git a/target/classes/de/kreuzwerker/cdc/userservice/GlobalControllerExceptionHandler.class b/target/classes/de/kreuzwerker/cdc/userservice/GlobalControllerExceptionHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..5d4c51b6796b3b1a3bd032eaa7d8a13ad49ec843 GIT binary patch literal 822 zcmbtSOHUgy5dOR*goI~lY00q%Bpwo$svat+iXv#rAxb2mxo|+<-61jA*pb(pRQ*>y zA@$H7&>vNGc1zO=Apt_N=HZ$7=Cfyh{`&p{z+2QS2m}sdk^@KC*9o}+IT^)~%u;fE z#yTSTDY2nS4z2OdCJDKZUm_ZLZOySVG5Zyi1XixpSjj}0p6rBI6nTN!_u6RxL11Qc zt1D1Cv@z8%gX#jxm=#!VX+!O77?L|vVL}3{EgPw%tDMgLo6C~#>r|l8dLqqzfu(-I zxNUvYW+oP>pJc}CA$4`Cxnsi^>s9_VZn)R7t|!xx)24Un)Q~3D4djGE8EO+tHO-Z` zKZHA#$12JAMQ`q7{g=xWgNxrixbq36BPL6y%sNZCbmPv_zV{<}%wn2XZFkNtnw`(> zBZ1nf&0IuHosVGSzG?5~gMQ5K{9BwxobS^8;$2`_VNbFatjpWinEO_Q zYb^6HP{lmUg+B?b7un;9ax}m)+jZ6}eDmxaBEl-3=QiO5)(Y&MBArWa<1YP&D{gQD PyyWx%uL|V6|2ps+;z#5W literal 0 HcmV?d00001 diff --git a/target/classes/de/kreuzwerker/cdc/userservice/NotFoundException.class b/target/classes/de/kreuzwerker/cdc/userservice/NotFoundException.class new file mode 100644 index 0000000000000000000000000000000000000000..d50693b82da9e4826e8ed92a8d46863eda16538f GIT binary patch literal 348 zcmb7Au};H441G?M2120~0|OfyFmMR5fw~|%MI8Wjzg{djn%<#nt|0!335kIZ;GX8k%wfhsnaZfR;2^QIhSk_NBOhIL{bKm3 zvEJoK3Hy(Fsa37ry}F66v2*_I6S|ky*=9)S93D*w>6NdzKnI&WWatw5rFA@x^C^cr zJ*}CrTY97Gi4L~aKgG0punWRj`Co?@gyPo6V0dKP?R$T2IBD(U0Af*I0by#b3Fe~I gS_9efJ2u{=kf0E3+mL}R!QML0gttWzb_5gjSM`xsKmY&$ literal 0 HcmV?d00001 diff --git a/target/classes/de/kreuzwerker/cdc/userservice/User.class b/target/classes/de/kreuzwerker/cdc/userservice/User.class new file mode 100644 index 0000000000000000000000000000000000000000..8da3f29f1ea58cf26bce3e8c46988ac4dd8cc58f GIT binary patch literal 582 zcma)3%SyvQ6g|^d`qI|=er!Yp>%!T%k(O?hf)Es}c0WzVIBlB1WKz+;awWL%1N^aCW9Qcw?v`n8LrJhL5J>TPLA~k(8?=F4V#O2t$k+!hLO-vB9EyY>cII53a|P8*uc4mt5|*i}k;P4lm|dK3 ll@y-kK=Jq$YcJW64Z;%1Kn=5R#`vqEhjyM1S literal 0 HcmV?d00001 diff --git a/target/classes/de/kreuzwerker/cdc/userservice/UserController.class b/target/classes/de/kreuzwerker/cdc/userservice/UserController.class new file mode 100644 index 0000000000000000000000000000000000000000..28544fe993543463c1b0188a721fba0d26c5908e GIT binary patch literal 1073 zcmb7@TW=CU6vzL=Z40G>sm__7jq=gi^!&+p7R!>`{zegfFVJqHIs zNlo90awUID#$Fg09s0i14sr~&Q!x?T7eSvN_D-d17*?&MGm|jfZ>LB)k8Uv(o~l5Z z=M235Kf*?rA-5NLvV<&F%WzO;$krR(A{Z)Vy(6K;NE&JzgVUGBc8%dly}fKz$7mJwTa7dbO1ya- z2S$x#S4E2Id=Uhp5k`dp5q8_5?(=AD6P{S`G}J>rl|9~5fyc!nmcNwdK#a#0%#fc5 zKc)^;X9MOR?9g6$9~rjK!WO4FLw%H*dL+!?Z-ZMUT*plZHyE1fZ$%lmu+Fe@Lg$(F zvM?*w&hMX|GL$-DtX;XU?1V2^#d1myZ9K!{)a4(`$Smb8Y|(wn(qD$y_EM3RA=|+U ztwq}H)0&~R)cj7*&R48`PGYL`t|ZDba#*9-3Tourm__3p<+Gnsl9lQvJ5OVxh2bLB zNwh(Bg?5+dx%>_+!X~be&tc@aN`~b>oAZm!FIe08hHIb5nSsR@C=7&IVv7rGkq)*^ Tzt6E-iRgCnzLS8h_%84VY3Cf8 literal 0 HcmV?d00001 diff --git a/target/classes/de/kreuzwerker/cdc/userservice/UserRole.class b/target/classes/de/kreuzwerker/cdc/userservice/UserRole.class new file mode 100644 index 0000000000000000000000000000000000000000..8a0467b7872ea8cf8a7b88b39b3ccf1a94e69d09 GIT binary patch literal 1158 zcmb7D-%ry}6#g#V)~$3fr-1zM_mpiQ6{Egv5(v(OxPhT=$>P(cyF#IBP1j=Z$v;Wq z0iu!k>>p)3w;RwGlew(D=iGD7cfR}G)8Bu-p96S?rz%Dm<~zbT@J0Cflkg9OZ&)46 z2z$b(|DkOOqe;fL=Li)EhOvEq$PI_PyGG3oy9~*-SB;HLhEjbfsA4C6X-xW4EH!U1VaEDyO83NjXprQs#e@Bj~0 z6bLeQw4+`ix;h?Vo*~11pC4J?$0O1NP<=kqm-wU*CJp3mVSV>^I7E- zV<*T*&W%LmOeB9&NI6E{Y$uK}VV+>>8&!;8n%-kkwNC;60$vi~bNE{t|l5At|M(cGd_*a}N zfdnTm{3yh%8!0_-C`i^kyffc^JM;be{q;M5Lp*GuCUB6FoLeeCpOKxDl}Vb&vLMUf zQY9o$I2c~UEz|`%r|~kDS*)k>-T0IeC(wMRv~te{HhTS$K>ejjDZmCcx6wdTU?)~TEKNT3^;B+f>$RX$(+th<>i1Rh0KXEYFKPn1qQNr5N5XiaYDtkTm#|0-yM z7H%-jb@MB0jcwzmz|RwHsW91+(l9akLS?a2Mu!V)n0a124TH_&8HG8ynMuQOsj`%8 zuOF%+EOkoEjyosDhK{S;rv-(c>_0ahSw%Yi-?ji9?D}oo7TEpUlz44TzxCHCZ}?61 zmiMuZ`Bkh0fnaD#o6wQ+%j;Z{#A81*fxQo4!Wb9NH3%`zu zhdeWOE(-=GKb4lEFqRAP~(WD!?wklWG~n^4$jg3QXL0u{V~wS7TfKM0`}K9 z6S$5Y2Jy{@3|V6zd_(7Bw|kCTKRByljj(kIAy^^Y<(h`TovL)NviESGy}$GU@CV%1 B-@*U@ literal 0 HcmV?d00001 diff --git a/target/classes/de/kreuzwerker/cdc/userservice/UserServiceApplication.class b/target/classes/de/kreuzwerker/cdc/userservice/UserServiceApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..fa2c8d6df721f3388d8fb5860bbea7f69df99d5d GIT binary patch literal 782 zcmbVKO>Yx15PeRQCS3w8DHKZKz%9+8zR+?=RjEYcw0wv_IB@cArdu}~JMwy4#J}QH z#DO2sAB7liDXhUcUW{+or;A0dQ{}ZaZ8Qb8F4U!xxiXpjkX%se1=f$X(f&kWt-n7JXpZcZBCKJf zix$=eHe+q*eK}9aeO5_M0=?L#DxWB)!~QPV^yj(|cpd*2xgi&xD{TaJ`rqOu$+36Z zWW)VQgooH}qbD%1E|bL~#Lt|X)0K5InON)PxC*Yc+{Gh2=Ehvfz)61vca*E57}iya z>)=ysJbm|aWX+k*N*DTGsl(xr4oxVRu?pKY$SnRl^5=H?Q3cwb=Oqx0ZRt{atAnn4 z^@BSIatQ2xDvj53n&?7@^2S(S4VGa}YFSsJsM1@eU(u#JiQceUEA)qW308?;7|`Gq zkDYCscapte-x^$_^Rr4vY(pA+;2zuV?E&`pdAETF*kq7!`KST|Iz2J?g{`m4`w?e= fs6tp`bg+Xb9DmAxiys2J26ij^414TD+2_DNf_%{) literal 0 HcmV?d00001 diff --git a/target/test-classes/de/kreuzwerker/cdc/userservice/ContractTest.class b/target/test-classes/de/kreuzwerker/cdc/userservice/ContractTest.class new file mode 100644 index 0000000000000000000000000000000000000000..ed553cde0b3aef070b98e6b240857a4230a8bba2 GIT binary patch literal 2027 zcmbVNe^V1j7=AVoBO#(trKQpqkSY*yrGm9atPtZECrXCUIGz5{xm*^qklbbN_JZxV z>P$yx+L?ZUeyC2Ly+nx2q^Zm#x4V~jpXYs__ecKz=a0VttRtU7LLggL@+eTzug5Al zQh{{qu8cwz@YB(*l6l`Vf#aGz6`B-A1+E-A9Y;1D??CR<4wY*JM%#YCMHB^Qb|cT| zma6Jd*P3d}^L*nN?R%lXM#&EjWY`Y0cd#EgEp_Y%N3!PoMjor0w2XA1ne>AT*_b!X@Scn?WtE$tEPfIhok~iF-X-3v_1D;j+%z1 z7ptX@h}g2%)V?1ObaScXMAG$JvaX|0wke8i2YyG_>Gfem7dK>?FRLoh``V48w(6-j zCTIO#h{KN!Y2Ma`*POPN+cAE@aT~c5rUm3smgmN_Z9ev#;6Ry+_)K7|X=Q8pp&5g~ z=NTk%A&qO8wHkdPFuhbd&0EFT6y%D_)il1sdiHvZ_kSpL z>VGUw%Izv8@bLU9vp8QW)9~wM$CeibX1-@_qWW_ZGpkm+=@@2paX?o3tyl%O2beLr z$_rWFvS4@h*V;5_p6ocyi0Gw{52omKm`d9+z2YhNYAk1ywVJ^lTl14_6}|sUk>zE( zlhy*`wr|%8Z**uF_pM>nvck?(boSB@yf?Qtr+PQj6+a4G^-SAVn(Q9{cWey_tPF)d z@mU~ay;|khjuU}_y$99x0w`YEnTdSu{B7?d=c!U@>1iLftH(7~?%r-}h%_9LO zIAIE2M+d&wQXYp@;ao_IuRnkx@c8c5tEW3Je=hIr?g`8dD3hl;w3DdL3z?$lsUY8U z!cc`Nd@qn6I2QjSrZb+TuqCj59w2J-VNjUo1R3F9gh0ZM5w0no?0S*wC|8bMKF4{I zTm{$U$~$C!<0gR#KCLlu6_@$UbPaF?lRN=a_=NE9A+Pd{1$sfMg#9)9C$9ZC_36s* zn0bfmZ}H_RYC5*KPMp~odAfU}4|x$^lkFyPl5A}*z^xOyDVi_w%`#0^eu8k3jj1@M40nTmtXsGc8@S)ye2WL%e5ddbIXt5ACcic_kMRWCPiFoFiJdC5 literal 0 HcmV?d00001 diff --git a/target/test-classes/de/kreuzwerker/cdc/userservice/GenericStateWithParameterContractTest.class b/target/test-classes/de/kreuzwerker/cdc/userservice/GenericStateWithParameterContractTest.class new file mode 100644 index 0000000000000000000000000000000000000000..36950c5d36575850a46011c0f3bbf3e358687765 GIT binary patch literal 2638 zcmbVOZBtuC6g~^2fe>klmKIwzr6}R0Y;B<;fm&Wd8x0T%rPJ|4=jLWf7Lt22d-n#b zS45A68un!@TVi8 z4u#@w$>m`n6uu4V3jSDlLP@uv9W9b}ClvW!M|LQl(@*pq=QR>g|v`GAzZ7ciR7`Kru=x{_Xb-@qUF>W~+G zU-KhTruleqweMs%|O>9<$ zNrnNhBSpNf{Dv$ch6f>RpXYf9_mI|o>DnBa zT#6rc+Bh_3lVKI1UYAHUcj}U_TKtUTR?<-#WyHI(Jkh#ts$;s zMt9E(1wyo;YE+dXn~eZyJ3V~ z{hxL-GvHF)OnFpgtl)>r6&upbv8i*-qFEC-jsBu&r4VYTj5uE#|JjI}(pe*0L{*i3L1?lbF5tDQ69giN z(l(>DGcU_`1m~1XQTm?I+(m#8K@9mmSBMy8JG@~`&DFrEg0=msV5j5ihNL;46iqN_9l%KvDtL1KWu1$__J#Pn;r z{yg#V)Nge2m_B_)x7w&Nt1(8yblW12G*6r$Cuo9FV4DO^gkfVoQzvu@s82&O1C={J z5OZnPQZHj~s3X&_h@WOl!Qsgcw#W%v$`t5PjnV*|NCA5uA{)90@kpau@;_2tH(v$VV(=LN2n}9b1c~9o6i}hWx8k zrGSL0Bwz9+KPr_sBN59Kwj7tVJL;*K?ta~`yY=@!zx@ti1WOro3EYaLzoKR1r!}cp zr1rxo^c$(v{I15K^ruz0BBMtXOU<1Ll^7j_W&w|y!uLjAoKU;n#LnF{r zSDK4>ATT)JNK9Oli*Xv4t8y$!lnG3%l2qVoQR!trt?M{hUeZBLt|`6Zmz6U9nk@U) z1$tCeVNkWkrJkeOQGo&LV9OnWbHxr2+MMU*EsPpM@@oX_Ua?UQ{kRMg-rIF6PGWOM zpnGU|kq{?TB(vzoz8rGcEwHy3Cvv7yD@(l)5UD`kdA=Cv*vhTV9#e@4{Z1#Rw~V`W zr!1G0rj^@6#h~Gbs^&*=BlYV{jbGPlHI5j&XASy%)t}?$qSWzH9J<)s9Lncr)B-u- zlHd;Vcs(|}7Sv;Z-03d_VP!OfK>@#`mHWojEh`oRy(~>1J`(7!+T>MKYWgAYaSpxM zmBkSpvqAF&4i6RA*;6u>2%`^%7qd8lQyH8TxZcs~CfIWL6ra(7RJQyPxVVi-t^4nS zlL?!V61chZD6>SSrKzZBF0dqLfJp$y;Y)?*acU@??xfu>v1%mq-n$x98%+Cd%WChE zC!K~2d@^u7lm)Go?!zU4zaAx8rmDIsBabAh$5qDwj}##(Yw1ld+rLne9{r++Ubzuh zNt~f!FHXHi63Hd9I`T+0&+wFaQJ0>z{J$?v=~yPwPOoKg0aq+%Mg$JMhclMQ`)yaa zJgH^#kISuS4Bp&!{SZsJx3jO$U`ifrxMvLDmSjhal%bYQ{? z)0M+**vb!*7Xk-|hTBNnYiLqm;w9nfp&bhxe#X#U!urXwpNh|8QyNC1#8$fhqqx#O`}|9iTbn2vf^55 z$wWWH^6CJQS(#F#RN;9j>vjSRU=H&cd?j$I-MP)IJwYG+Y7d^n8S`mI@jvED1#5YN&W%er#rP zcKYeu>^yVgZ8Ae9%D#_MUl#y+6Av`}wvCz>$~dJJ&pb z12{+tIE2GA`PR$_+_8!t(tH=!{Mk1+@+AM^nO|`96+U^19eEu3Y{=^qAG4>kw^3%U!whNEn#WccLU2QWo*fP|O rN6wu^2jC=w|JVXZ@im?_e|!U?!FLkh;|DzD;UD?foCOFW?+*S85O*s| literal 0 HcmV?d00001 diff --git a/target/test-classes/de/kreuzwerker/cdc/userservice/UserServiceApplicationTests.class b/target/test-classes/de/kreuzwerker/cdc/userservice/UserServiceApplicationTests.class new file mode 100644 index 0000000000000000000000000000000000000000..345ac9e6887fbc588a7466963d4f5ff83612953e GIT binary patch literal 580 zcmbVJO-lnY5S?sWt82BjdJ#P6%?~ga@t{Shf~Q5n*50$(v8LT7OE%kz|H_l#!5`p{ z5@*vQ;=zLu-h8~_W%Baz`SuO~C$LqAfWcXUd~C6Jo}nG1EVMF z6Py`4=CLu3J5uC}#dyz8TvFd(1baZv(GLLxl#yeEb*eZ;MzMDI3d=8^4hc)T#8tw^ re1PH_RSedtA3$?4)uLDm9eIxU-y-1;5pvFp1h7Hl0kpqmHUYi>9wd;G literal 0 HcmV?d00001