https://github.com/mailslurp/examples
rootProject.name = 'clienttest'
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>test</artifactId>
<version>1.0.0</version>
<inceptionYear>2008</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>2.1.4.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.1.4.RELEASE</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.4.RELEASE</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.mailslurp</groupId>
<artifactId>mailslurp-client-java</artifactId>
<version>11.5.10</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.199</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.1.4.RELEASE</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
plugins {
id 'org.springframework.boot' version '2.1.7.RELEASE'
id 'java'
}
apply plugin: 'maven'
apply plugin: 'io.spring.dependency-management'
group = 'com.mailslurp'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
maven { url 'https://jitpack.io' }
mavenCentral()
}
dependencies {
// Annotation processors
annotationProcessor('org.projectlombok:lombok')
compileOnly('org.projectlombok:lombok')
testAnnotationProcessor('org.projectlombok:lombok')
testCompileOnly('org.projectlombok:lombok')
// spring
implementation 'org.springframework.boot:spring-boot-starter:2.1.4.RELEASE'
implementation 'org.springframework.boot:spring-boot-starter-web:2.1.4.RELEASE'
testImplementation 'org.springframework.boot:spring-boot-starter-test:2.1.4.RELEASE'
compile 'org.springframework.boot:spring-boot-starter-data-jpa:2.1.4.RELEASE'
runtime 'com.h2database:h2:1.4.199'
// mailslurp
implementation 'com.github.mailslurp:mailslurp-client-java:7.0.11-RELEASE'
}
task createPom {
pom {
project {
groupId 'org.example'
artifactId 'test'
version '1.0.0'
inceptionYear '2008'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
}
}.writeTo("pom.xml")
}
# Email testing
See [examples repository](https://github.com/mailslurp/examples) for source.
FROM adoptopenjdk/openjdk8:slim
COPY . /app
WORKDIR /app
CMD ["./gradlew", "test"]
package com.mailslurp.clienttest;
import com.fasterxml.jackson.databind.ObjectMapper;
import mailslurp.ApiClient;
import mailslurp.Configuration;
import mailslurp.auth.ApiKeyAuth;
import mailslurpapi.CommonOperationsApi;
import mailslurpmodels.Email;
import mailslurpmodels.Inbox;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import static org.assertj.core.api.Assertions.assertThat;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = Application.class)
@AutoConfigureMockMvc
public class UserSignUpTest {
@Autowired
private MockMvc mvc;
@Autowired
private UserRepository userRepository;
@Test(timeout = 60000)
public void testUserSignUp() throws Exception {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setConnectTimeout(60000);
ApiKeyAuth API_KEY = (ApiKeyAuth) defaultClient.getAuthentication("API_KEY");
API_KEY.setApiKey("test");
// create an email address
CommonOperationsApi apiInstance = new CommonOperationsApi();
Inbox inbox = apiInstance.createNewEmailAddressUsingPOST();
// sign up user and check that is not verified
String json = mvc.perform(post("/users").contentType(MediaType.APPLICATION_JSON).content(inbox.getEmailAddress()))
.andExpect(status().isOk())
.andReturn().getResponse().getContentAsString();
ObjectMapper objectMapper = new ObjectMapper();
User user = objectMapper.readValue(json, User.class);
assertThat(user.getVerified()).isEqualTo(false);
// now get the verification code from our email
Email email = apiInstance.fetchLatestEmailUsingGET(inbox.getEmailAddress(), null);
assertThat(email.getBody()).isNotEmpty();
String code = email.getBody().replace("\n","").replace("\r","");
// verify the user
mvc.perform(post("/users/" + user.getId() + "/verify").contentType(MediaType.APPLICATION_JSON).content(code))
.andExpect(status().isOk());
// verify the user
String jsonVerified = mvc.perform(get("/users/" + user.getId()))
.andExpect(status().isOk())
.andReturn()
.getResponse()
.getContentAsString();
User userVerified = objectMapper.readValue(jsonVerified, User.class);
assertThat(userVerified.getVerified()).isEqualTo(true);
}
}
package com.mailslurp.clienttest;
import java.time.Instant;
import java.util.Collections;
import mailslurp.ApiClient;
import mailslurp.ApiException;
import mailslurp.Configuration;
import mailslurp.auth.ApiKeyAuth;
import mailslurpapi.CommonOperationsApi;
import mailslurpmodels.Email;
import mailslurpmodels.Inbox;
import mailslurpmodels.SendEmailOptions;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.junit4.SpringRunner;
import static org.assertj.core.api.Assertions.assertThat;
@RunWith(SpringRunner.class)
public class SDKTest {
@Test(timeout = 60000)
public void contextLoads() throws ApiException {
ApiClient defaultClient = Configuration.getDefaultApiClient();
defaultClient.setConnectTimeout(60000);
ApiKeyAuth API_KEY = (ApiKeyAuth) defaultClient.getAuthentication("API_KEY");
API_KEY.setApiKey("test");
// create an email address
CommonOperationsApi apiInstance = new CommonOperationsApi();
Inbox inbox = apiInstance.createNewEmailAddressUsingPOST();
assertThat(inbox.getId()).isNotNull();
assertThat(inbox.getEmailAddress()).contains("mailslurp.com");
// send email to self
SendEmailOptions sendOptions = new SendEmailOptions();
sendOptions.setTo(Collections.singletonList(inbox.getEmailAddress()));
String body = "test-body-" + Instant.now().toEpochMilli();
sendOptions.setBody(body);
apiInstance.sendEmailSimpleUsingPOST(sendOptions);
Email email = apiInstance.fetchLatestEmailUsingGET(inbox.getEmailAddress(), null);
assertThat(email.getBody()).contains(body);
}
}
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
package com.mailslurp.clienttest;
import java.util.UUID;
import org.springframework.data.repository.CrudRepository;
interface UserRepository extends CrudRepository<User, UUID> {
User findByIdAndVerificationCode(UUID emailAddress, String verificationCode);
}
package com.mailslurp.clienttest;
import java.util.UUID;
import mailslurp.ApiException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController()
@RequestMapping("/users")
public class UserController {
@Autowired
EmailService emailService;
@Autowired
UserRepository userRepository;
@PostMapping
public User signUp(
@RequestBody String emailAddress
) throws ApiException {
String code = UUID.randomUUID().toString();
User user = new User();
user.setEmailAddress(emailAddress);
user.setVerified(false);
user.setVerificationCode(code);
User savedUser = userRepository.save(user);
emailService.sendEmail(emailAddress, code);
return savedUser;
}
@PostMapping("/{userId}/verify")
public void verify(
@PathVariable("userId") UUID userId,
@RequestBody String code
) {
User user = userRepository.findByIdAndVerificationCode(userId, code);
user.setVerified(true);
userRepository.save(user);
}
@GetMapping("/{userId}")
public User getUser(
@PathVariable("userId") UUID userId
) {
return userRepository.findById(userId).get();
}
}
package com.mailslurp.clienttest;
import java.util.UUID;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import lombok.Data;
@Entity
@Data
public class User {
@Id
@GeneratedValue
private UUID id;
private String emailAddress;
private String verificationCode;
private Boolean verified;
}
package com.mailslurp.clienttest;
import java.util.Collections;
import mailslurp.ApiClient;
import mailslurp.ApiException;
import mailslurp.Configuration;
import mailslurp.auth.ApiKeyAuth;
import mailslurpapi.CommonOperationsApi;
import mailslurpmodels.SendEmailOptions;
import org.springframework.stereotype.Service;
@Service
public class EmailService {
public void sendEmail(String to, String body) throws ApiException {
ApiClient client = Configuration.getDefaultApiClient();
client.setConnectTimeout(60000);
ApiKeyAuth API_KEY = (ApiKeyAuth) client.getAuthentication("API_KEY");
API_KEY.setApiKey("test");
CommonOperationsApi apiInstance = new CommonOperationsApi();
SendEmailOptions options = new SendEmailOptions();
options.setBody(body);
options.setTo(Collections.singletonList(to));
apiInstance.sendEmailSimpleUsingPOST(options);
}
}
package com.mailslurp.clienttest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
#Mon Aug 12 15:11:49 CEST 2019
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
PK
A META-INF/ PK
A m�>=@ ? META-INF/MANIFEST.MF�M��LK-.�
K-*��ϳR0�3����-�I�M�+I,
�d��Z)�%��*�%��r�r PK
A org/ PK
A org/gradle/ PK
A org/gradle/wrapper/ PK
A ��f� � - org/gradle/wrapper/BootstrapMainStarter.class�V[WW���d`c@���7.���V��J� -lD��!�Nf���K�{����O]�} ���������>i���@��,֙3�����}���g�?p
?(�₂L�xK�E����2�(��U�L+!�`�b�ց�B�v�dde�(�¼�g�(��N����\n
wKb�%��xW�{x_�ށe��+8���9gX�;�J$�I�@Ү�a��ji�;���I�h������.��U���N1]t�����\�N��m��^ft�ʺ��rg�!\[�c������6u��κ�a�}�a�/&��ѝ"E��F�A�C^�K���fc�N����P�y�r�w��+���8 㾅����\��H�(kOİ�!�'���wW�C_���WL�w��i�6���ku{nh��wW��3z�S��B�.>��k�VEF���bX��^������'Z�k%CZ1��Ur���N�9QЮJ)a����8���m���x���wU�(ɰT�(��@,G�Ȩ�pQUq�)eꙔ_��Yǒ�콋\T<�C�[�L�[�R�!>b��_[�C����P����]�G��h�o��y�X�}��s|��K|Eh��F��FSC��������
�{3�\�r��(��I�j4�v5�*�r�]�L|jW��i����X�
����`Jŷ�N��=����]���C�A�G
�v-�6Jص榈�D��zL�7{���٢�!͞�r�+r7����R�E<�Zx����u�[43���"mc%GCk̯:\'
v嫎p�ǚ��R�|���m�E_��:M�������a�`ZP�7��,m�I�h�D�}���l�/�^4����[ETԼ�1G[JDjj\q.�d"���dB8��������n��MIw銐Ǟv<�$�+�CJ-@ې��F���<@�f�#��c���'�gxh
�W���qZ#�p?N�
D��ԭ"-2f�'����a���r��r���5D��k�XC瘴%.հ3.E�v�����n��ʅ�����E�F�h.4L�{oĥ�{,�~C�HN�;�NZ�(��q���?�~\�a,@�m�Z���?�z�b7��(R$B�Ҵ����K�4���2�>O��:S��?{��^#I?�s
&���-�������0�e�0N��Sg�g�*B��'��
G��a
�3R�t�G�N �j����cD��_I���<��\�?�j�נ��V��K� �4=J�O���th���XhMo3���<P�z���7;�/��5�:��PK
A hQ�}� � # org/gradle/wrapper/Download$1.class}�M
�0��h5�*v/����?�B\x�؆���T{7�C�)���
��^���C�0 $g{s��Z�[�mE�,�]&;�i�����ڜ!!̬S\9�k�'�J:��-V����6Zx/=!m��F�ӥ�YM��iH� t�nX�~�~�8\j�4� PK
A ��� L 4 org/gradle/wrapper/Download$ProxyAuthenticator.class�S]OA=�-l]�XWmE�C@ܢv�_�Ԙ��jHP���N�5�N3�Z��L�D_�h��G
4E�ag��s�=wn����?��c�u�b��\
�nb!�������e�v��oc����ga�� ?�Ő,˚`�X c#��Qī�*���
L�Fآ܆�{ݵ�n�X�U��bp_ƱP刷Z�0ŊT���x-AG�fS����đ䵥�%����D�HUȅ2fX����b��᠒����«%ӵ�Wd�;��lʶ������>N�iL��9�&Z7M��ۖP6�( �K��8�2�$�6V]��S䡍G���L�쉱S���M3dzĈ��`���b�a��EIB�.ò_�h��R�l����?R3�cdB�r��5�8�H���2CnH������61O�ƅ��� A/�N�4����J����q f>= <\�5�,r}�+��\���!Ƽq�>D�.��r"�
�'�Ot�L�ҹ#i�1~J���ņ������:�{�=���J[�z�����eR PK
A 5�<�� � ! org/gradle/wrapper/Download.class�Y |\�Y���������N�X�i;�ˉK�d˒����v�<IO�ګ]��[�JJCJ
�%��4�Ѥ@�@)��ʍ�&�@�rS��(P�P�hZ�?��v��H�_4o�o��3��ܷ^����� ��ׂ��g�ػ���T���
5�9��o�
|>� ~'�����~_5�x�P5����/�� ��O��ςx_T�_R͟��� ޏ�T�_����u��o��[|E5WEio���G���6�z��/~��������j�;�#�g�&�KQ�[��5E����+}�G5����S�7T�j���o)�n�B��EL�0��_��YS��J�,b��I7IU]4�:�kb�RcH�"ՙRo�2O
�rYa�J��*CV�Ɣ�)k
Yg�� �d�)M�E��&�ɔ[M�͔ͦl1�vS��Ҡ6�fH�!M�+�p�θ�J9)A��M^�9��&�����+��9��{���С�hWoٺ�������h�zn,1�OPәL�<;�
��cJ������H��h�\�Qn"��J�kAu�����E�N�H
ē��N�m�=w�.�����u�I�18���!�MŒ A����p�T�;��ڧ��>���=ַ��;�%b�~AG�,6}1eې�י��uݱ�ӓ�q�{$�(�%G������8G�y�1��R*S�䒚}7�Y3֏&㱉��,L
����T���'��5�XN����� �k���I�%��⎖`�ccJ5�K)+�d�Iy�DNVm�Z&��ˣδ�����̮�� ;N��n|���\V�N9� '���Hz|\eLř�HO�;J��Noy�Nbd,�9֙L+!��c�"��W���ڮ)��H8�JU*P�L{�Usz��tڣ�{��1._Y��J�O�bH�!m�l7d�!;�o�wݘ`�_o[�O:$f��M�wة���xn+��F��Gc�\9�+1�$���)g��C�Q]�7�ɬr R?�x�E� ǛLҗk��\g<Nim�9�[�f��١[
O�#�HE]���u�n<��Vq)ϸ��1�#���2����K��E=��۞3X�ĭ�Rj��\B#�9�M/%]Z*�Ng�`EC���6�$�ZWg9X\6?U���,�V%S���(�<M��QG�s;�حj��j��"e��yi�\�%ߏ��Iϛn�V`�47�NKv�#��%�i��s�rd�!wY�W�-�'w[r���.���O�g,�W�#@��C�3V\M,�b�(�R�PM�%�r��a/a�.P��h�[rH[rD��\Z� K��%ǥې��H�%}J�'�$cSpᦧ=g̐~K�2 X^���B� ��-#��T�ha�R��T�Z2$�y�%�rڒ3rV K�KPa��ϒs���A��J��U���X�`V�W�KY2.�+���t����h��}��R؈$/:n�NP۔3ʣ"2�/�#s��"G�#c<���HZ�F��1C-K�XQ�tA`��Y��%���9�Z��:ұ���@V=�I?��XSV���ą�P�ֶRl��CÔ% a����@���-���r�T�vsaEm|�Y�rr�!�ג������[��i�X_��. "�z���T�u$�k=h{�73���}}-��^V���t~�~Z�)�h��]&0�ȥ�7�D�c�H"�ER���$u��6C��:����,[2���Q����ؗ�=�˖̨*�@�z1kVn�����pj�b$S�Y
�WB�5��ےjے�4lI���m+�Z�<B,)S�]w�
K!�V��|�����]���bLH�swI�L��K�K⊏�$<�rQ�W�=�J�o�wCJ�f)�i�7�ϰ%��W�y{��)�;���8]�qX§��Qbm�Ĭ������/0ua,����4�Kj8��x�_4�
�o\j���&��v��%���wJ�v:鶴e�9��Ե��$���L-��e�D���P���[������3jX_���k�U�̏K/Y�z��R]�L�ųO�IA��eȔ�!���]�Ͽ�s��T�En/^�9i�Q��ĨSra:��U�S����C��'�)^:E� e����cǔ��Kn�c�mW��T�iJ�h<�R�&�$::�(�1�?�Ly�^A0׳U�L�N��ê���Ĕ��M��\YL��ޖ)��O-U�z����M��sG���z��N٩QE�t��[�lƗ�Nx1[�2M��H����(��b��Wf͙Ek�wY��X����X�b�C���ϔqm�LjrXnj�~rYU�B�m\:G
ȟ}�7t.+�}�ϒ�xҝ��&��Tr\�����0b8�� �c-��(��O�BH������s_>#�
��2f�>�� ���[��$�-���6�h�
��`�V����,#�o�?�UiA�{JT��)a�Zģ9���!pc�,*������|�a�5���!� c^�F
l��-��v�b+V���؆
�B�+�cA��]6j3+t�Ӻ����G*Q9�z�����yU7P;��̢�:,�K�֥V�o�Z�۵l+�.'��W���xEd�Z��5gP�A��Ʀ�Y��ۘ���;���쒂Mu��Բ��Cڋ?̾��(����܄��ٯ��v�u�g��=0����S��Y�� 2X��kl
�f��._�n�}�p��`mؗ��v��|�l7�h��`՞�=5a��`���1u�dy
+?�M�[3�m��C[fq�˫jVV]��Ԭ����U�+�u��=ϡ���mˠ�&:{�I �@H}�V����$�h ��+�2h~�����Z��0���Zn����/�������N���u��u|U�!}/�
���}万�������Ќ؉�t�=�.F���G1������3����=K/� ��8��%��1�Wq��O�8�/�,�������u���Y< ~��*�baD���R�Z��w�Gԝx�3q
J�¹'�.���U��6�8{A�|?��D5u����WCk^�O�V�J�|J��K)��)U!�x�C���ή����h�_'����ɍk�7���3�5�~�x�@����d�.�%���IM� Q7iM�]|�&�~�L��ܤ=e�-*S��������*�Ms�1ܘ�Nas�v��N���ߞY�u�P���Bl��ҥ�">H���9������M�����|/�ڛ(+�}O��I|7��9t������}h$w�A'�s��ؘ��t�Ctd
��s��=Ľy��_���ُ`: w��46�]cv��f�V��L&��P)q
p�q��`�N4�gp$t������XOs�w�8������k��d�����~N�W6��28I��W��+���ҕa���n��ah8tJ�[^��&��$��OK�7�Fz��d��a��Ҭ��˓,�~�$K�Q�c,$寳��r�˷�ܷ1j����K�eFp�>��cԯ�E�� cOa��_?���+������M��I�:7Y
�TJGo�\�H$h*�d0�;���HsGh��ԉ�i�=�7p�n]._x��o��LK6_�2��^-d�*}R��|����e�aL�Q�~��e^a��u}�[�O2��M4k}�9��rz~�BTb���v��ڞSچd�������O 4Zo� 3�}�a?��0�$:�g��a�):\hfc�D�cl�
�U�<�� ԯ�!�t��GX}[Y}ʶ�Y�r�ȟґ��Ok�B��h����
!�*z�=?�ٍ_a/@�W��_ń�FU`\�_M��EN"�mPK
A y�L�� � 1 org/gradle/wrapper/DownloadProgressListener.classu��
�@E�+�jD��E�@ۖE�ER�I��#3c�[�>���4�v��9���������O�Ī.r%��J[��M DŽ�,��]���8��kߟ_�PU:�]�3a���G�����\�^�&a�t"-�E�eY����˛�8\3��K tЎBN��k�PK
A !9|� � 3 org/gradle/wrapper/ExclusiveFileAccessManager.class�W�sW�Y�ګu|i�V�MNZ*;��J�lB�N�K�Ǝ[��t-���v�j��S�B[(���P`x�3�L�$x����0��}�0��+9�%L=��s��ݿ����O��� ��t<�gZ��Y��jxNG_�pNGϨ×��x^mME�SKA-E�H
�1��::`��vI�b3lIŞDIG��qu���fxJ_�~O��c�u,�J������
_��5���ɡ�#���SgGF��
t�_2/�Y�t�S�g9���C�S�Mǟ1��h�t��DE@�v�]��;��.��"�,�� �2�|��@t�-R�m�r�jiNz��-�=�`�3�g�s��,jɎ��|v�3���.yf�,���]�X��e��BAV*�c�K���̀ 0� �ܬ��OU߲��)T=O:~vȴme��{]ԓs�d�W�䕲�-3�Q�d��E��!�C���q�] 0�E�(��;&f�*2�B5���?��^����}��虫\j�L����C���l��tGuZ��5�["
�Mn,�r�Q�������t�1��)�,,N��@L��5|C�75|K@g�dٷ�'�hʚwL��Q���tnk�}�2�ts��ҟ&J',�VXj�t��%syN�nE>]��o3��;6���lK�q�oF3�V�B�����>%l�W
�!�8$`���������Dղ��3�"�x ���D]A��مE�U
��W����x���c�L�Q��V$��Cn�.��O<i�2]6U����]/� ��H�i���~``��,"ޒ��G~��xg4�n�
�)��gLڽ�V���� M
��^2-�� L��\:l�����(�3�e�:�j����qZ�/�WY�;A���}3��r����S#���
^L/x�R��X� |:�u���L��i���Y���L�v�;��������u����!I���=�A������ўf�U�yLX�uc���U\���Ӧ� p�v�Q�Nεv5�����|o9L�rקt���K���Ul)��̨��;��Wv����椯�74O�Ҭ�
���+�,1���
�F[F
�f��>#�&��A7zx� �N5@��T3��(����z��Y�4�}�
��] ҳ�4�?�E�vqݏ�<̏ ����L����N�p�8>K.���1��Dg�[A|�4n�kh�Lp�����S���ES�v\�c�����~]+蘭�vvR���5dw�������=�#r�<��\K��T�����8���lo�7�`.��Ր��S�
W����ĮT�U4]����~�T��7��6���v����7�BZ ��H�
ҫ@'�c ���Klϓ��3�1�����c�����DQDDwp>���P�z�p}���@8B gmγ*&_$W��
��+�k��r�}�F�A?~��(��AZ��8�����:�ư�q���8�
ӛ�"��Q�c� �?� z5)��qj��sDP�h� h��F�9҈����u�>�c��~��iMȈvz5�HM���� �����$?b�)n�I�P�$)S������ݳ��hѠǧB����<���q���0��.Ҷ���x��d�(���WW���w@�M�߉�߭5S<��
�a�<��u�.�˟�3��Gh���G�At�=��dl�٦@]�������ys����:�m��O�
� ���8x4�?PK
A ��,y � - org/gradle/wrapper/GradleUserHomeLookup.class�S�N�@=$v��ԔK
J)$����E�`@"\�@�<E&Y��#ǡ�_Ջ�H}�C���:�K �af����9��?�~�0�Q�Ix&c\��
B���\�_DЂ) I
�d�"��1-�Y��eceq7��_M/.���n�H�6-u`��m:%=�{�S��0t���Nom�\~��1t,�N�7?k�UN�����l����_`h�'�mKn�6t�,�oV����c��\�p��5=K��`��oU)�+�%�,�\���2���`�[�ޚ{�S�{X-���R��'j-W_�lN���o7�r0F�+y�`ׅ*����2Ě�I�~*z��0qOi$��JV O��^�x�9��@��-�o���w�S� C����j�E�1D�ګx2+���`��H}��n���� պ5B'�1������d�?a�߽8�fw���nB��q�
qhN�a�^-�N�3߽��0�d6��È�jELU1tS&>�-�sc-��g��O�N�QM��}(1�� ��#�j��R�`�뛿̀i��m���P/�Q��WM:����;"��+) Q�g<D��)�`�W�%L&|
�[��[��_��%��7p%w�vM%9���:)���"��a���h`��PK
A �!l�7 " * org/gradle/wrapper/GradleWrapperMain.class�X\W��,�2���m�"1*<˩`L0+(EI��2�����
^˵\�J�j���^�����%�{�z��r�3˲e�����������=r���R��')؋'+Pp��"���x��A.��e<Cƽ^<Ӌg ³<���y^���|��"�@,�P��p��
�:�+x ^*`_&����
.�~���U^�Z����x��5x��j�^�� �Fo���
x����z��&��{�/ީ���w+���
ރ�*xޯ ���IP�WL`ʋ�
W��&����X��X��@��G�11|\�'�I�§e<���������5�v�����XG���c݇�:��$�����ZCD��4�Zf86�$aa��[Z�:�E������m}͝���NU��pg[_��2�Z��dO8��J(
���i1�)�"��]�� ���NDt���"G43,�i��
�%��H�
G�qS�͆v{:��j���D�+ai`��d[�f���eY��F>�����Ѱ?ѹZ>f\��z\P$ȦaX�a�if\�ǚl=C�pC��j�aa�!��@�!#v�@bÎ�
���=���2���1f�?����}d�����E�} +i��;�~*�aDigI��������}iJۄJX���r ��M�t��ep���|7HX�
H�L�Vq$9JW���sQZ�l��6o�Y)t�dDL��{:�&QΪb﹘�Md�U�ki���1;�e|N����!+��ym�->J��0C���K�g���@�㱈�
���!Ga�8�1wa�}c��W�y|��ͯ8&�|��~&k�ö)A�M���/�K2���+�*y�H(>�떄m�GM��������o��6�����->� ��.�'��*~��8�s*�����e�Hŏ� +\���6a�:�Ty�p�Os=8�H�F��q=ʬ1����s �.��؈�'�_L8Ǡ_����<�I���3�L��JƯU��U�;��ㆊ?�k�N慹VBYΖ?�Obߟe�E�_�7W��SƿT�����G�_��,�AO��DO"f��zf���^����T^�HE��h��a��42�ք"Z<>F՜4̚�Oj��kN�F�&����kj��k7��a��Sz�R%�T,ĕ�����U�RIa�Ie����BA,�fS�?j� �
���,K�l?������1�V�t/_���Rb�Aw�s�@tO��Y��;
^6�ś͑DT�Ys���g���H�d��+hY�ƈ�]l�����x��f�:��ne���ӭ�����籄}�h�Y(lMuys ��Ĉ;B�j
�ȇ���}R���@��������n^Go��yGFa0��T��e�v���n�q��q]�醶 Y����Cni�*�i��knԖs��#��.���N3("�QUL�7��e��f����f�L���ν��d���}H5���&�3N�]�yE�
�v~[镊j��ю�4�b�e�h5����i�����5��Pl���{��¹��YR�:�J�叶��G�`�ڗ�:�;ؔ�̃l`�a7�<NqE\����Q��@�;"|��Qݾb�gZ�Z���OMuG��ҏj�n���q����v-ىd��j�X�>"\��7���5s���'/�T<�zu���<d��q:���'p��n��?�?:q���;8[�2Ys��Y�
λ�����b��Ii�����\�Yz8������:�C?Kq��f�>*UF��I7L�s�Cq�JS�=~O����*J�|e���ڛ��$�g��\)�SXĝ��b��[���'���dKe�Lj���eY˓��������n��Mb���t�$V5*~�~
Ճ��)H}�}5)�<�5�~o
���v
��>�����q=�\KC(G=�aVa#�c:���a+���c&��`7�E��V\`��a���1�=��c7����Y�$���J��g��(�A܍c�:��5��8�'b8t��(S����
1�籍�Q�]�na�b8N�r$D�͛~:�!b-�o-9��`��.��Il�Ӥ
Y���S1�
U�O���F-u�`P �_w�F)�}��#�Ve��F�ߥ��:��\e�_@�3��4�2[�$6�o����%�Ǥ�5�+nY�o�4��N���S�ؖ��$v$��;���v
nHa�u�h�5%��~,D߭���;XT�;��R��zZ���]�EU0cv�IB�j� ˤ��c�T�TV2�F�V*$�!o��8�b�8K����C��B����0JeL�����v�ᥰz_Y-�� ('�I� �&�_x�(+��(�8V0�f�Tm��#��
��0-fWZL�ډ^AQ)t�;�d\yN�l�'�PK
A ��� � "