From 6cb4158b31671a27bf084af84cc73f33a7b03113 Mon Sep 17 00:00:00 2001 From: strangerx Date: Fri, 6 Oct 2017 18:55:32 +0300 Subject: [PATCH 01/14] OAuth implemented, building, skipping tests --- pom.xml | 5 +++ .../plugins/bitbucket/api/BitbucketOAuth.java | 37 +++++++++++++++ .../bitbucket/api/BitbucketOAuthService.java | 45 +++++++++++++++++++ .../client/BitbucketCloudApiClient.java | 37 +++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuth.java create mode 100644 src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java diff --git a/pom.xml b/pom.xml index 205819d13..281ba24f2 100644 --- a/pom.xml +++ b/pom.xml @@ -173,6 +173,11 @@ org.jenkins-ci.plugins authentication-tokens 1.3 + + + org.scribe + scribe + 1.3.3 diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuth.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuth.java new file mode 100644 index 000000000..773d19108 --- /dev/null +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuth.java @@ -0,0 +1,37 @@ +package com.cloudbees.jenkins.plugins.bitbucket.api; + +import org.scribe.builder.api.DefaultApi20; +import org.scribe.extractors.AccessTokenExtractor; +import org.scribe.extractors.JsonTokenExtractor; +import org.scribe.model.OAuthConfig; +import org.scribe.model.Verb; +import org.scribe.oauth.OAuthService; + +public class BitbucketOAuth extends DefaultApi20 { + public static final String OAUTH_ENDPOINT = "https://bitbucket.org/site/oauth2/"; + + @Override + public String getAccessTokenEndpoint() { + return OAUTH_ENDPOINT + "access_token"; + } + + @Override + public String getAuthorizationUrl(OAuthConfig config) { + return OAUTH_ENDPOINT + "authorize"; + } + + @Override + public Verb getAccessTokenVerb() { + return Verb.POST; + } + + @Override + public AccessTokenExtractor getAccessTokenExtractor() { + return new JsonTokenExtractor(); + } + + @Override + public OAuthService createService(OAuthConfig config) { + return new BitbucketOAuthService(this, config); + } +} diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java new file mode 100644 index 000000000..5bbd13b51 --- /dev/null +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java @@ -0,0 +1,45 @@ +package com.cloudbees.jenkins.plugins.bitbucket.api; + +import org.eclipse.jgit.util.Base64; +import org.scribe.builder.api.DefaultApi20; +import org.scribe.model.*; +import org.scribe.oauth.OAuth20ServiceImpl; + +public class BitbucketOAuthService extends OAuth20ServiceImpl { + private static final String GRANT_TYPE_KEY = "grant_type"; + private static final String GRANT_TYPE_CLIENT_CREDENTIALS = "client_credentials"; + + private DefaultApi20 api; + private OAuthConfig config; + + public BitbucketOAuthService(DefaultApi20 api, OAuthConfig config) { + super(api, config); + this.api = api; + this.config = config; + } + + @Override + public Token getAccessToken(Token requestToken, Verifier verifier) { + OAuthRequest request = new OAuthRequest(api.getAccessTokenVerb(), api.getAccessTokenEndpoint()); + request.addHeader(OAuthConstants.HEADER, this.getHttpBasicAuthHeaderValue()); + request.addBodyParameter(GRANT_TYPE_KEY, GRANT_TYPE_CLIENT_CREDENTIALS); + Response response = request.send(); + + return api.getAccessTokenExtractor().extract(response.getBody()); + } + + @Override + public void signRequest(Token accessToken, OAuthRequest request) { + request.addHeader(OAuthConstants.HEADER, this.getBearerAuthHeaderValue(accessToken)); + } + + private String getHttpBasicAuthHeaderValue() { + String authStr = config.getApiKey() + ":" + config.getApiSecret(); + + return "Basic " + Base64.encodeBytes(authStr.getBytes()); + } + + private String getBearerAuthHeaderValue(Token token) { + return "Bearer " + token.getToken(); + } +} diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java index ae42ffd7f..742074d0d 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java @@ -123,6 +123,12 @@ import static java.util.concurrent.TimeUnit.MINUTES; import static java.util.concurrent.TimeUnit.SECONDS; +import org.codehaus.jackson.JsonNode; +import org.codehaus.jackson.map.ObjectMapper; +import org.scribe.model.OAuthConfig; +import org.scribe.model.OAuthConstants; +import org.scribe.model.Token; + public class BitbucketCloudApiClient implements BitbucketApi { private static final Logger LOGGER = Logger.getLogger(BitbucketCloudApiClient.class.getName()); @@ -780,6 +786,37 @@ public List getRepositories() throws IOException, Inte return getRepositories(null); } + private synchronized HttpClient getHttpClient() { + if (this.client == null) { + HttpClient client = new HttpClient(connectionManager); + client.getParams().setConnectionManagerTimeout(10 * 1000); + client.getParams().setSoTimeout(60 * 1000); + + if (credentials != null) { + if(this.token == null) { + OAuthConfig config = new OAuthConfig(credentials.getUserName(), credentials.getPassword()); + BitbucketOAuthService OAuthService = (BitbucketOAuthService) new BitbucketOAuth().createService(config); + Token token = OAuthService.getAccessToken(OAuthConstants.EMPTY_TOKEN, null); + this.token = token; + } +// client.getState().setCredentials(AuthScope.ANY, credentials); +// client.getParams().setAuthenticationPreemptive(true); + client.getParams().setAuthenticationPreemptive(false); + } else { + client.getParams().setAuthenticationPreemptive(false); + } + + setClientProxyParams("bitbucket.org", client); + this.client = client; + } + + return this.client; + } + + private synchronized void signRequest(HttpMethod request) { + request.addRequestHeader(OAuthConstants.HEADER, "Bearer " + this.token.getToken()); + } + private void setClientProxyParams(String host, HttpClientBuilder builder) { Jenkins jenkins = Jenkins.getInstanceOrNull(); ProxyConfiguration proxyConfig = null; From 78d99f9e4637bbc21a25c848f3f4ff29fa3c0d56 Mon Sep 17 00:00:00 2001 From: strangerx Date: Mon, 9 Oct 2017 12:59:14 +0300 Subject: [PATCH 02/14] remove unnecessary changes, made by ide: explicit imports --- .../plugins/bitbucket/client/BitbucketCloudApiClient.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java index 742074d0d..afc3f1578 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java @@ -37,6 +37,8 @@ import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketRequestException; import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketTeam; import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketWebHook; +import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketOAuth; +import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketOAuthService; import com.cloudbees.jenkins.plugins.bitbucket.api.credentials.BitbucketUsernamePasswordAuthenticator; import com.cloudbees.jenkins.plugins.bitbucket.avatars.AvatarCacheSource.AvatarImage; import com.cloudbees.jenkins.plugins.bitbucket.client.branch.BitbucketCloudBranch; From 11f4e1a69199197e0e8dcb3035d6f31af9065d79 Mon Sep 17 00:00:00 2001 From: strangerx Date: Mon, 9 Oct 2017 13:57:37 +0300 Subject: [PATCH 03/14] Set UTF-8 as default charset for getBytes string method --- .../jenkins/plugins/bitbucket/api/BitbucketOAuthService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java index 5bbd13b51..d9169297c 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java @@ -4,6 +4,7 @@ import org.scribe.builder.api.DefaultApi20; import org.scribe.model.*; import org.scribe.oauth.OAuth20ServiceImpl; +import java.nio.charset.StandardCharsets; public class BitbucketOAuthService extends OAuth20ServiceImpl { private static final String GRANT_TYPE_KEY = "grant_type"; @@ -36,7 +37,7 @@ public void signRequest(Token accessToken, OAuthRequest request) { private String getHttpBasicAuthHeaderValue() { String authStr = config.getApiKey() + ":" + config.getApiSecret(); - return "Basic " + Base64.encodeBytes(authStr.getBytes()); + return "Basic " + Base64.encodeBytes(authStr.getBytes(StandardCharsets.UTF_8)); } private String getBearerAuthHeaderValue(Token token) { From 9356ee42f08c8353aa5c4b882078bba9f3c8f902 Mon Sep 17 00:00:00 2001 From: strangerx Date: Mon, 9 Oct 2017 14:54:42 +0300 Subject: [PATCH 04/14] commons-codec added as dependency --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index 281ba24f2..212179015 100644 --- a/pom.xml +++ b/pom.xml @@ -179,6 +179,11 @@ scribe 1.3.3 + + commons-codec + commons-codec + 1.10 + From 1e5b1a3b2c472c92ff8ac1c329d206cbefcc4a4f Mon Sep 17 00:00:00 2001 From: strangerx Date: Tue, 14 Nov 2017 16:21:36 +0300 Subject: [PATCH 05/14] token auth added to constructor as basic auth --- .../bitbucket/client/BitbucketCloudApiClient.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java index afc3f1578..922d98a4e 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java @@ -194,6 +194,21 @@ public BitbucketCloudApiClient(boolean enableCache, int teamCacheDuration, int r // Create Http client HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); + +// if (credentials != null) { +// if(this.token == null) { +// OAuthConfig config = new OAuthConfig(credentials.getUserName(), credentials.getPassword()); +// BitbucketOAuthService OAuthService = (BitbucketOAuthService) new BitbucketOAuth().createService(config); +// Token token = OAuthService.getAccessToken(OAuthConstants.EMPTY_TOKEN, null); +// this.token = token; +// } +//// client.getState().setCredentials(AuthScope.ANY, credentials); +//// client.getParams().setAuthenticationPreemptive(true); +// client.getParams().setAuthenticationPreemptive(false); +// } else { +// client.getParams().setAuthenticationPreemptive(false); +// } + httpClientBuilder.setKeepAliveStrategy((__, ___) -> MILLISECONDS.convert(5, SECONDS)); httpClientBuilder.setConnectionManager(connectionManager); httpClientBuilder.setConnectionManagerShared(true); From 79b045c02a6fe425848f7b3b4bb3edcea89d6dc8 Mon Sep 17 00:00:00 2001 From: strangerx Date: Mon, 25 Dec 2017 17:12:04 +0300 Subject: [PATCH 06/14] remove getHttpClient method --- .../client/BitbucketCloudApiClient.java | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java index 922d98a4e..07b153f31 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java @@ -803,33 +803,6 @@ public List getRepositories() throws IOException, Inte return getRepositories(null); } - private synchronized HttpClient getHttpClient() { - if (this.client == null) { - HttpClient client = new HttpClient(connectionManager); - client.getParams().setConnectionManagerTimeout(10 * 1000); - client.getParams().setSoTimeout(60 * 1000); - - if (credentials != null) { - if(this.token == null) { - OAuthConfig config = new OAuthConfig(credentials.getUserName(), credentials.getPassword()); - BitbucketOAuthService OAuthService = (BitbucketOAuthService) new BitbucketOAuth().createService(config); - Token token = OAuthService.getAccessToken(OAuthConstants.EMPTY_TOKEN, null); - this.token = token; - } -// client.getState().setCredentials(AuthScope.ANY, credentials); -// client.getParams().setAuthenticationPreemptive(true); - client.getParams().setAuthenticationPreemptive(false); - } else { - client.getParams().setAuthenticationPreemptive(false); - } - - setClientProxyParams("bitbucket.org", client); - this.client = client; - } - - return this.client; - } - private synchronized void signRequest(HttpMethod request) { request.addRequestHeader(OAuthConstants.HEADER, "Bearer " + this.token.getToken()); } From e72053933db3fd0f49e65c870945445b3b493f93 Mon Sep 17 00:00:00 2001 From: Guillaume Lager Date: Wed, 4 Dec 2019 15:20:05 +0100 Subject: [PATCH 07/14] Use BitbucketAuthentificator for OAuth credentials I'm not sure how to deal with real username/password after that --- .../api/{ => credentials}/BitbucketOAuth.java | 2 +- .../BitbucketOAuthAuthenticator.java | 38 ++++++++++++++ .../BitbucketOAuthAuthenticatorSource.java | 50 +++++++++++++++++++ .../BitbucketOAuthService.java | 12 +++-- .../client/BitbucketCloudApiClient.java | 27 ---------- 5 files changed, 98 insertions(+), 31 deletions(-) rename src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/{ => credentials}/BitbucketOAuth.java (93%) create mode 100644 src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticator.java create mode 100644 src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticatorSource.java rename src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/{ => credentials}/BitbucketOAuthService.java (85%) diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuth.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuth.java similarity index 93% rename from src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuth.java rename to src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuth.java index 773d19108..c81c5eb9e 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuth.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuth.java @@ -1,4 +1,4 @@ -package com.cloudbees.jenkins.plugins.bitbucket.api; +package com.cloudbees.jenkins.plugins.bitbucket.api.credentials; import org.scribe.builder.api.DefaultApi20; import org.scribe.extractors.AccessTokenExtractor; diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticator.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticator.java new file mode 100644 index 000000000..2d8cffce1 --- /dev/null +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticator.java @@ -0,0 +1,38 @@ +package com.cloudbees.jenkins.plugins.bitbucket.api.credentials; + +import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketAuthenticator; +import com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials; +import hudson.util.Secret; +import org.apache.http.HttpRequest; +import org.scribe.model.OAuthConfig; +import org.scribe.model.OAuthConstants; +import org.scribe.model.Token; + +public class BitbucketOAuthAuthenticator extends BitbucketAuthenticator { + + private Token token; + + /** + * Constructor. + * + * @param credentials the key/pass that will be used + */ + public BitbucketOAuthAuthenticator(StandardUsernamePasswordCredentials credentials) { + super(credentials); + + OAuthConfig config = new OAuthConfig(credentials.getUsername(), Secret.toString(credentials.getPassword())); + + BitbucketOAuthService OAuthService = (BitbucketOAuthService) new BitbucketOAuth().createService(config); + + token = OAuthService.getAccessToken(OAuthConstants.EMPTY_TOKEN, null); + } + + /** + * Set up request with token in header + */ + @Override + public void configureRequest(HttpRequest request) { + request.addHeader(OAuthConstants.HEADER, "Bearer " + this.token.getToken()); + } + +} diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticatorSource.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticatorSource.java new file mode 100644 index 000000000..938cd8d78 --- /dev/null +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticatorSource.java @@ -0,0 +1,50 @@ +package com.cloudbees.jenkins.plugins.bitbucket.api.credentials; + +import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketAuthenticator; +import com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials; +import edu.umd.cs.findbugs.annotations.NonNull; +import hudson.Extension; +import jenkins.authentication.tokens.api.AuthenticationTokenContext; +import jenkins.authentication.tokens.api.AuthenticationTokenSource; + + +/** + * Source for OAuth authenticators. + */ +@Extension +public class BitbucketOAuthAuthenticatorSource extends AuthenticationTokenSource { + + /** + * Constructor. + */ + public BitbucketOAuthAuthenticatorSource() { + super(BitbucketOAuthAuthenticator.class, StandardUsernamePasswordCredentials.class); + } + + /** + * Converts username/password credentials to an authenticator. + * + * @param standardUsernamePasswordCredentials the username/password combo + * @return an authenticator that will use them. + */ + @NonNull + @Override + public BitbucketOAuthAuthenticator convert( + @NonNull StandardUsernamePasswordCredentials standardUsernamePasswordCredentials) { + return new BitbucketOAuthAuthenticator(standardUsernamePasswordCredentials); + } + + /** + * Whether this source works in the given context. For client certs, only HTTPS + * BitbucketServer instances make sense + * + * @param ctx the context + * @return whether or not this can authenticate given the context + */ + @Override + public boolean isFit(AuthenticationTokenContext ctx) { + return ctx.mustHave(BitbucketAuthenticator.SCHEME, "https") && ctx.mustHave( + BitbucketAuthenticator.BITBUCKET_INSTANCE_TYPE, BitbucketAuthenticator.BITBUCKET_INSTANCE_TYPE_CLOUD); + } + +} diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthService.java similarity index 85% rename from src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java rename to src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthService.java index d9169297c..aa267c2db 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketOAuthService.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthService.java @@ -1,10 +1,16 @@ -package com.cloudbees.jenkins.plugins.bitbucket.api; +package com.cloudbees.jenkins.plugins.bitbucket.api.credentials; + +import java.nio.charset.StandardCharsets; import org.eclipse.jgit.util.Base64; import org.scribe.builder.api.DefaultApi20; -import org.scribe.model.*; +import org.scribe.model.OAuthConfig; +import org.scribe.model.OAuthConstants; +import org.scribe.model.OAuthRequest; +import org.scribe.model.Response; +import org.scribe.model.Token; +import org.scribe.model.Verifier; import org.scribe.oauth.OAuth20ServiceImpl; -import java.nio.charset.StandardCharsets; public class BitbucketOAuthService extends OAuth20ServiceImpl { private static final String GRANT_TYPE_KEY = "grant_type"; diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java index 07b153f31..ae42ffd7f 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java @@ -37,8 +37,6 @@ import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketRequestException; import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketTeam; import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketWebHook; -import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketOAuth; -import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketOAuthService; import com.cloudbees.jenkins.plugins.bitbucket.api.credentials.BitbucketUsernamePasswordAuthenticator; import com.cloudbees.jenkins.plugins.bitbucket.avatars.AvatarCacheSource.AvatarImage; import com.cloudbees.jenkins.plugins.bitbucket.client.branch.BitbucketCloudBranch; @@ -125,12 +123,6 @@ import static java.util.concurrent.TimeUnit.MINUTES; import static java.util.concurrent.TimeUnit.SECONDS; -import org.codehaus.jackson.JsonNode; -import org.codehaus.jackson.map.ObjectMapper; -import org.scribe.model.OAuthConfig; -import org.scribe.model.OAuthConstants; -import org.scribe.model.Token; - public class BitbucketCloudApiClient implements BitbucketApi { private static final Logger LOGGER = Logger.getLogger(BitbucketCloudApiClient.class.getName()); @@ -194,21 +186,6 @@ public BitbucketCloudApiClient(boolean enableCache, int teamCacheDuration, int r // Create Http client HttpClientBuilder httpClientBuilder = HttpClientBuilder.create(); - -// if (credentials != null) { -// if(this.token == null) { -// OAuthConfig config = new OAuthConfig(credentials.getUserName(), credentials.getPassword()); -// BitbucketOAuthService OAuthService = (BitbucketOAuthService) new BitbucketOAuth().createService(config); -// Token token = OAuthService.getAccessToken(OAuthConstants.EMPTY_TOKEN, null); -// this.token = token; -// } -//// client.getState().setCredentials(AuthScope.ANY, credentials); -//// client.getParams().setAuthenticationPreemptive(true); -// client.getParams().setAuthenticationPreemptive(false); -// } else { -// client.getParams().setAuthenticationPreemptive(false); -// } - httpClientBuilder.setKeepAliveStrategy((__, ___) -> MILLISECONDS.convert(5, SECONDS)); httpClientBuilder.setConnectionManager(connectionManager); httpClientBuilder.setConnectionManagerShared(true); @@ -803,10 +780,6 @@ public List getRepositories() throws IOException, Inte return getRepositories(null); } - private synchronized void signRequest(HttpMethod request) { - request.addRequestHeader(OAuthConstants.HEADER, "Bearer " + this.token.getToken()); - } - private void setClientProxyParams(String host, HttpClientBuilder builder) { Jenkins jenkins = Jenkins.getInstanceOrNull(); ProxyConfiguration proxyConfig = null; From dd913acc302c145c9004f937e24f93db88550b2a Mon Sep 17 00:00:00 2001 From: Guillaume Lager Date: Wed, 18 Dec 2019 13:07:17 +0100 Subject: [PATCH 08/14] Filter OAuth credentials Check if the provided credential match a valid Bitbucket OAuth key/secret --- .../BitbucketOAuthAuthenticatorSource.java | 9 ++++ .../BitbucketOAuthCredentialMatcher.java | 44 +++++++++++++++++++ .../bitbucket/BitbucketAuthenticatorTest.java | 6 ++- 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthCredentialMatcher.java diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticatorSource.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticatorSource.java index 938cd8d78..d2f60425e 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticatorSource.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticatorSource.java @@ -1,6 +1,7 @@ package com.cloudbees.jenkins.plugins.bitbucket.api.credentials; import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketAuthenticator; +import com.cloudbees.plugins.credentials.CredentialsMatcher; import com.cloudbees.plugins.credentials.common.StandardUsernamePasswordCredentials; import edu.umd.cs.findbugs.annotations.NonNull; import hudson.Extension; @@ -47,4 +48,12 @@ public boolean isFit(AuthenticationTokenContext ctx) { BitbucketAuthenticator.BITBUCKET_INSTANCE_TYPE, BitbucketAuthenticator.BITBUCKET_INSTANCE_TYPE_CLOUD); } + /** + * {@inheritDoc} + */ + @Override + public CredentialsMatcher matcher() { + return new BitbucketOAuthCredentialMatcher(); + } + } diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthCredentialMatcher.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthCredentialMatcher.java new file mode 100644 index 000000000..00b84d7c1 --- /dev/null +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthCredentialMatcher.java @@ -0,0 +1,44 @@ +package com.cloudbees.jenkins.plugins.bitbucket.api.credentials; + +import com.cloudbees.plugins.credentials.Credentials; +import com.cloudbees.plugins.credentials.CredentialsMatcher; +import com.cloudbees.plugins.credentials.common.UsernamePasswordCredentials; +import hudson.util.Secret; + +public class BitbucketOAuthCredentialMatcher implements CredentialsMatcher, CredentialsMatcher.CQL { + private static int keyLenght = 18; + private static int secretLenght = 32; + + private static final long serialVersionUID = 6458784517693211197L; + + /** + * {@inheritDoc} + */ + @Override + public boolean matches(Credentials item) { + // TODO Auto-generated method stub + if (!(item instanceof UsernamePasswordCredentials)) + return false; + + UsernamePasswordCredentials usernamePasswordCredential = ((UsernamePasswordCredentials) item); + String username = usernamePasswordCredential.getUsername(); + boolean isEMail = username.contains(".") && username.contains("@"); + boolean validSecretLenght = Secret.toString(usernamePasswordCredential.getPassword()).length() == secretLenght; + boolean validKeyLenght = username.length() == keyLenght; + + return !isEMail && validKeyLenght && validSecretLenght; + } + + /** + * {@inheritDoc} + */ + @Override + public String describe() { + // TODO Auto-generated method stub + return String.format( + "(username.lenght == %d && password.lenght == %d && !(username CONTAINS \".\" && username CONTAINS \"@\")", + keyLenght, secretLenght); + } + + +} diff --git a/src/test/java/com/cloudbees/jenkins/plugins/bitbucket/BitbucketAuthenticatorTest.java b/src/test/java/com/cloudbees/jenkins/plugins/bitbucket/BitbucketAuthenticatorTest.java index 6763b2e89..b2b192712 100644 --- a/src/test/java/com/cloudbees/jenkins/plugins/bitbucket/BitbucketAuthenticatorTest.java +++ b/src/test/java/com/cloudbees/jenkins/plugins/bitbucket/BitbucketAuthenticatorTest.java @@ -1,6 +1,7 @@ package com.cloudbees.jenkins.plugins.bitbucket; import com.cloudbees.jenkins.plugins.bitbucket.api.BitbucketAuthenticator; +import com.cloudbees.jenkins.plugins.bitbucket.api.credentials.BitbucketUsernamePasswordAuthenticator; import com.cloudbees.jenkins.plugins.bitbucket.endpoints.BitbucketCloudEndpoint; import com.cloudbees.plugins.credentials.Credentials; import com.cloudbees.plugins.credentials.CredentialsMatchers; @@ -19,6 +20,7 @@ import org.jvnet.hudson.test.JenkinsRule; import static org.hamcrest.Matchers.is; +import static org.hamcrest.Matchers.isA; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; import static org.junit.Assert.assertThat; @@ -62,7 +64,9 @@ public void passwordCredentialsTest() { AuthenticationTokenContext ctx = BitbucketAuthenticator.authenticationContext((null)); Credentials c = CredentialsMatchers.firstOrNull(list, AuthenticationTokens.matcher(ctx)); assertThat(c, notNullValue()); - assertThat(AuthenticationTokens.convert(ctx, c), notNullValue()); + Object a = AuthenticationTokens.convert(ctx, c); + assertThat(a, notNullValue()); + assertThat(a, isA(BitbucketUsernamePasswordAuthenticator.class)); } @Test From ae82346b936124ab0ef026a9ebadb9174db3fd2d Mon Sep 17 00:00:00 2001 From: Guillaume Lager Date: Wed, 18 Dec 2019 18:43:09 +0100 Subject: [PATCH 09/14] Append authentication token to clone uri --- .../plugins/bitbucket/api/BitbucketAuthenticator.java | 11 +++++++++++ .../api/credentials/BitbucketOAuthAuthenticator.java | 5 +++++ .../bitbucket/client/BitbucketCloudApiClient.java | 6 ++++++ 3 files changed, 22 insertions(+) diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketAuthenticator.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketAuthenticator.java index 6d411c049..9ab774c8c 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketAuthenticator.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/BitbucketAuthenticator.java @@ -107,6 +107,17 @@ public void configureRequest(HttpRequest request) { // override to configure HttpRequest } + /** + * Return the user to be used in the clone Uri. Override this if your + * authentication method needs to set the user in the repository Uri + * + * @return user name to use in the repository Uri + */ + public String getUserUri() { + // override to return a user + return ""; + } + /** * Generates context that sub-classes can use to determine if they would be able to authenticate against the * provided server. diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticator.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticator.java index 2d8cffce1..64dd03d10 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticator.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthAuthenticator.java @@ -35,4 +35,9 @@ public void configureRequest(HttpRequest request) { request.addHeader(OAuthConstants.HEADER, "Bearer " + this.token.getToken()); } + @Override + public String getUserUri() { + return "x-token-auth:{" + token.getToken() + "}"; + } + } diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java index ae42ffd7f..55112d108 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java @@ -245,6 +245,12 @@ public String getRepositoryUri(@NonNull BitbucketRepositoryType type, case GIT: switch (protocol) { case HTTP: + if(authenticator != null ) { + String username = authenticator.getUserUri(); + if (!username.isEmpty()) { + return "https://" + username + "@bitbucket.org/" + owner + "/" + repository + ".git"; + } + } return "https://bitbucket.org/" + owner + "/" + repository + ".git"; case SSH: return "git@bitbucket.org:" + owner + "/" + repository + ".git"; From f340a41736387b142482b54aecff8fe0b2f5cb91 Mon Sep 17 00:00:00 2001 From: kurddt Date: Mon, 23 Dec 2019 13:24:39 +0100 Subject: [PATCH 10/14] Remove outdated TODOs Co-Authored-By: Joseph Petersen --- .../api/credentials/BitbucketOAuthCredentialMatcher.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthCredentialMatcher.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthCredentialMatcher.java index 00b84d7c1..0cfa2dfda 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthCredentialMatcher.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/api/credentials/BitbucketOAuthCredentialMatcher.java @@ -16,7 +16,6 @@ public class BitbucketOAuthCredentialMatcher implements CredentialsMatcher, Cred */ @Override public boolean matches(Credentials item) { - // TODO Auto-generated method stub if (!(item instanceof UsernamePasswordCredentials)) return false; @@ -34,7 +33,6 @@ public boolean matches(Credentials item) { */ @Override public String describe() { - // TODO Auto-generated method stub return String.format( "(username.lenght == %d && password.lenght == %d && !(username CONTAINS \".\" && username CONTAINS \"@\")", keyLenght, secretLenght); From 3d9458b273adf5713f6af2f339b03000d4005a2f Mon Sep 17 00:00:00 2001 From: Joseph Petersen Date: Tue, 28 Jan 2020 22:05:47 +0100 Subject: [PATCH 11/14] exclude commons codec from scribe --- pom.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 212179015..4c6cffbec 100644 --- a/pom.xml +++ b/pom.xml @@ -178,11 +178,12 @@ org.scribe scribe 1.3.3 - - - commons-codec - commons-codec - 1.10 + + + commons-codec + commons-codec + + From a604f08b98cb247d8d4a97950fa3ead91ad59ed0 Mon Sep 17 00:00:00 2001 From: Guillaume Lager Date: Thu, 30 Jan 2020 15:30:06 +0100 Subject: [PATCH 12/14] Add some documentation about OAuth credentials in user guide --- docs/USER_GUIDE.adoc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/USER_GUIDE.adoc b/docs/USER_GUIDE.adoc index 192342a20..cba91bd4a 100644 --- a/docs/USER_GUIDE.adoc +++ b/docs/USER_GUIDE.adoc @@ -98,8 +98,17 @@ two credentials to configure: . *Scan Credentials*: credentials used to access Bitbucket API in order to discover repositories, branches and pull requests. If not set then anonymous access is used, so only public repositories, branches and pull requests are discovered and managed. Note that the -Webhooks auto-register feature requires scan credentials to be set. Only HTTP credentials are accepted in this field. -. *Checkout Credentials*: credentials used to checkout sources once the repository, branch or pull request is discovered. HTTP and SSH credentials +Webhooks auto-register feature requires scan credentials to be set. Only HTTP or OAuth credentials are accepted in this field. +. *Checkout Credentials*: credentials used to checkout sources once the repository, branch or pull request is discovered. HTTP, SSH and OAuthcredentials are allowed. If not set then _Scan Credentials_ are used. image::images/screenshot-3.png[scaledwidth=90%] + +=== OAuth credentials + +Bitbucket plugin can make use of OAuth credentials instead of the standard username/password. + +First create a new OAuth consumer as instructed in https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html[Bitbucket OAuth Documentation]. +Don't forget to check _This is a private consumer_ and at least allow read access to the repositories and Pull requests. If you want the Bitbucket to install the Webhooks also allow the read and write access of the Webhooks + +Then create new _Username with password credentials_, enter the Bitbucket OAuth consumer key in _Username_ field and the Bitbucket OAuth consumer secret in _Password_ field From 13ca375e745844106dba199de36ac202b9959d9f Mon Sep 17 00:00:00 2001 From: Guillaume Lager Date: Mon, 3 Feb 2020 09:41:19 +0100 Subject: [PATCH 13/14] Add screenshots --- docs/USER_GUIDE.adoc | 6 ++++++ docs/images/screenshot-10.png | Bin 0 -> 95554 bytes docs/images/screenshot-11.png | Bin 0 -> 13498 bytes docs/images/screenshot-12.png | Bin 0 -> 45664 bytes 4 files changed, 6 insertions(+) create mode 100644 docs/images/screenshot-10.png create mode 100644 docs/images/screenshot-11.png create mode 100644 docs/images/screenshot-12.png diff --git a/docs/USER_GUIDE.adoc b/docs/USER_GUIDE.adoc index cba91bd4a..e81b02123 100644 --- a/docs/USER_GUIDE.adoc +++ b/docs/USER_GUIDE.adoc @@ -111,4 +111,10 @@ Bitbucket plugin can make use of OAuth credentials instead of the standard usern First create a new OAuth consumer as instructed in https://confluence.atlassian.com/bitbucket/oauth-on-bitbucket-cloud-238027431.html[Bitbucket OAuth Documentation]. Don't forget to check _This is a private consumer_ and at least allow read access to the repositories and Pull requests. If you want the Bitbucket to install the Webhooks also allow the read and write access of the Webhooks +image::images/screenshot-10.png[scaledwidth=90%] + Then create new _Username with password credentials_, enter the Bitbucket OAuth consumer key in _Username_ field and the Bitbucket OAuth consumer secret in _Password_ field + +image::images/screenshot-11.png[scaledwidth=90%] + +image::images/screenshot-12.png[scaledwidth=90%] diff --git a/docs/images/screenshot-10.png b/docs/images/screenshot-10.png new file mode 100644 index 0000000000000000000000000000000000000000..67f5e82c99fc1611de56ff062ff7fe264c726690 GIT binary patch literal 95554 zcmeFZXH=7I+a?-CMNvUTM3M3+O+Y|IK)RxU0Rbr?Qlk{vd+#Om4iOQM zE+qsAy+eS|LNEKuJ7s;d=AFG}*8JIft&cx}+{t}k3ANJJ@jmO3_%Iq9^mGy`!x2^iZg~HeSPNBS`JBy<- z77HqUHawZj-cvmtSoS34cYVWD77y=;fw4%RmXHv*G6#~TQv5+!WZ}uK z`x&r%3wCt2^kWylcu2{zK`lgx4KujYU3>-)TxdUTAC$^L zk{HDn#5e*kgDq<*x5aU&E^+gtqj#{~$CaY*5BL|A=2l;w)2KB~;*RKQ2}rHSdTiv1VY zhV2IO4*8_eZm-7EZBkpJh2or`s6oq-h}C#}j6FQZBkl~hYJC`kzvEDu@g!LTtUqVQUw`>)ipOyIY`#MBYqB=t6i1Q@0ZQh(U%(5&xY zS*}&G49D-+>@V1>1A`-*=Z7vGUM_d-@6PXB_u;GAGg-g3J39&Yw%@AeHP^tsU`upM`n>= zC3w<%@CR-OGLnPYQD<`g7G5t z%TYFJIL^2arf~+!*#4e|Jn3Mck;v7()*rp%sOfUk<`4D4$%?_|RSEF-G_bPT*)TkE}rNx62pd(V5T3H!Hc-*&J8?lOxq9a zIl5S<_x1I8>ks(cb{9ACc?c#Obo(DDRls-64n8yi*r8q9Li+T$z8L+-=lvdgT0A%_ z+{k{|EUfBXVNV=ejJi6uqV?{b2D%~Or^veP#1*5gu#~Ag-7gkSSj!BtBAa~LZ&5dy zNl}R_q{#dHzh9wVbA)yKApS1&)0^*}7;5jWQrg)TRg#KbPgTh)xq95S1tRJR-cI66 zt?51oRBh%0Hlk-3TJVJcd<%c<%XdT9aC)< z7lAS0gQ``~|A3-YR8^o$X|9zaeR_VFOp=J4V3MgeoFfd{br-83JsuHfUv`QitiSv* z*qxM)6rx~(hW#Yy&us}>5V`G?vj;x_#s_;Db_&`rW$9}0I4>_i~U zno@h_mcd-;4YrSuu+EO-*2w!+g~67`s#(rG{af{7uTUpfg5HeIed0ZxV)a=?1==OtGx69s^)tEB zJKyzL{=(MIk7|tK6=x>g1=J_VyYSV*55>mG*=mV@DxQT_R4g^xt8r@{nXt6y*BN_S zIM}reMJXrvb#6TItKHBzd{=Izj|irwMy8ix#460#pj49d5v#(ryDa@NMO&!!4Prxf zAG?1?W23%`^F_`6R*P3CkFk%>P+(2AlXbx^T=gW~q5DJRM*libS~~Qe)hjCkiONH_ z3aq!W!h!i7k7UF|mu#ZXDCtOWl^xo~^+8s)RRJ|UgNCB&sOZ9dT|J^WGIkCe8=fVoU#4|Dt6zRjTg__S%4$GG5Y+Mf? zYsY!uO~geq&bk>rj=9OG(d1<9Ib6ll)ZkWMzm1`x%+r1+3VVpyL}0H%Ak567v8hGt zEq|gw#O|^Vv_)1e!0Q=4k5nA~xWzXSKSfvz%j(A{SP%R&^B_OWaDHqq(@JwxSC0+K z#WinKBli}zxw;-I|qM=^W0&6 zCJ7M8yC_Bd{){hv8E4JIg_~(RYLHYVHCgDDx#=nonb2(dyHc;4@Im>)#^9XV(U#4y1ymi z_7~so-`wgP_^{iMhDwixvDCweR=W+yD{=b=D=h^r*3JSuB_3lg&y*N6FnJ?ud|QF(Lz~o9n$=Im36TG#F2t-4XJ!j zNoy>T;Gv6l*m5%Anjd(*)|b}hoXn2T|sdRawyHh z9ydZwoJuYQ1k$n_az+H8x(;gzY@Y0lc8%@c!fR<-xdt|_W1iCl*N|5zu`((YTfuM{ z-f1eN*`PPvhTeEY-g@LibDr(OHvh^8TNn)Ae=}=DNek^nAVmi&)OzTPw_SRKIM)JDX$&J z>L7&e;fs1Tc0x_GlWUp(WD^vVd)c$OZG1f4nkjCf=9`{ti0Md32dOb#t3q`*?~Bjg2z^{u zp)x;At+15-K{!4O@j6ZPj883Es&uc2+jVv?(TcQ^(H0rVzSJM#ASp`@EcLOUmv8my z+S8+P4bsZF_{(W9?w|6Pa41Ve&;%ba>aF%tl_kr)^IeDvRl)hf&L{L`mRtz;t))l! zqk*`P+ZB}}IrjJ#t)1a|LwjDmdYB&+N9t%vSRTp@OD*5iQvm)Z^zTy6?M0UuJdW8O9)e>@`=KMdtx&A>emo=NN z+|jBie^*y7fK@?$2Vvi!c1z}xr;U(}h9aS2rFVcBX}avJ$d)l-G1%L9uS1pSY0+MV zqw6!NGMFyR-c2sP(;ZYAmKGmx=Y}_dK-O7yLRhN;Y$Qr5isa7-+350g2%q1q&0P&b zpTP5vl|UX6eL7^Zh9fS;WF@`0sKNf+uX-6^EVL4{zbEx?+X$+0mAK)~>$9r?H>IXz-S$0tMAZB4l z&WGLXt4Yz-({tdH(AM{n93Zu2YGZ6mn0ev92Awu3(cI~dFUZN7Q=Srb`C%3dhLOv2 zBDH$lM)^a2IL~U9<7JLK=P1pJ-ktl2%v5G$ZwR-PE5_n(gCaLBK`1Ls4-{x#rx5G2 zrK~AB%V3@Pr2XPmiDIG93p0 zNK(1Zd%D58I%NM=MOs7+5 z&`Gn<8ty__f!i#{%zcXMH@Qzo>#F4&oH&U6ny$M_1HOKGI{S3;gxJ(bHGz3cuAL3( z6nJ*j>h#^V3^StDi6-vm!|4^7%C~c61*OQwy6cD_Kb6>lWz?mlbR}0Y6Uq#HVQuN^ zCilyya1&O9$~B2>r=Bb7Ik5>afoxxW*Ij!u9-r|{3na<7pb_4XE`}$sC27Z>ZN88Y1LOrm8Atd5ASRDGzjZQFcWj^ z9BXr5pexH97aDbwu7Kej?T%q(Kb-Ms-hS)Thf3!ar%pe0K0M>-;t{^HBF!N#F0NOD zO0HHMBvjvHX~PO7ks(68`@tG8P#G9S2NWfBwBlO7+xA*E5tB_760Y&qsI0|(#~Y00 zANg`N4)#0{Ey@hWoai>T-&FUVjFc0zYp&idaQ9Un?V19{IVrtTNKBnn?^H)QNQr5p zw#R?pDS7)4*#M_Z7?(s~(1)5nRJZ=3#iM;o!eHCX5_Puy7t z^IvCiY^{A@)Y{$My(7l4<{zB+lm|)`5;*unRhW|fCuB}A8n7To^ia7}Dd?&UE% zlw98l6h~Qgz-@+Na;#pjL|7h*o-Bw4?Qe@)jk!E(I&YzwCnWE9b9bi?msFP`()t?P zht(+uT+8tAaE{I^!5~)?ulNK;d*mx{<40b#R8=Owx(R=RuH%!%B4Ej0aaLn}S~D7z zav6*yLuDmUcLxoCoHmeSWk@a=RduYlMe$pQy-(SRuE(sv%_7!!HMiu-X9=qrATXlRX*fO69UGTW z=`ez`>Fie84G~E)nxA~fpNGvYE8EVBb*WmwjoOT>m)~`M z@wU=91WCid6VQC$)in%Y{F|PnSVktsvaKi^^3a0aCkA&Uec7RN9p_9*DzvaPEop!y zV1PH;e5mneN+eTiXn2@wbMl52-tj?GSO=(${%JZa`fhsO87T|$GT9NhXQv8*549N- zo37!~u<6f9hxYSiYkAYYanah`JT_mm4To2h6t5fr5!`Z06BR3xn{mFsHT(H$>+I}e z^1#3okbCl*1zSg$mkv*gOz8GZ&F1W#)Ozpx%q~yo4mCtIbJmnzAdLNoU996k7DkH4C5NaiXbG_3!J zL7Z{3267vrp%HFiU|=kqHS5R)S-UPT&*|dglJn_fQXSuU$m4sH(+&RL12ukO^SE^i zLHWkCRl^9`{XT4|IaFO*@|JgVi_}H1gZx90`CziaKOji`nIGz_&d+z?lXP!V)29t) zHfwG|{(SWcIBd66zBhXI!rbEGp8-|~&41@x0~p1J>a6vnz#MGl&*_f#HlHtz_;mE0 zjca4?x}NSM@em#`zdy`p=$*rzR%3s0*6~BBlGYpg3iUc>{K2aBm&9ZDqO*nuG#1zgu1Ro$!>^q(kw!7d*ZwLgtekaFfgE0S+|i?xa-W^eCP z5QC6HSDXl(Fjyd%ANSbU-_6~f?#7MHXBKvRstR*iU7>7rSIm!|?SdNghfd(6RJySB zX!g+1P#xdQXXN|Eb61hBeV8?qew#y$RAiPVPUO;^YycKd3CAGm`qG}+y*D>Io6fEn zIqP`m+WyH-O93H#0NK)h^FXL@slI zPyxt-_@^nx9g$qZ!kQi)9?PTErEYF+%tHdw4}igT5^eyB+x_>&wHNIZ69~uUfnF55 zVt8a^q?x;eLs_OuQekrPKlNMP;^sp|DIR-MlzI(r!-F4APmaw8^JDbgNwDhb>ZJ~T z%s`UoNe;dKr{{V#4!vt*wT|nP&!K9-vOaW1r%X=1tKVq3yScU1UuM={GP>(+Cwx>_ zLvy=elT^c9HSUzrGgP{CWueq&KF=;qUyRmC zAEg0Op=LflG0h{Gkp>2G8tK&-AF^&tF&1Mv<1S$UEQtS_EsKE_z5*sA^F`QZJl;(2 z^V##;2LyDU^;pg3`udwUZ+w`sq@^cDU_M7J?Cnr?Y)Pp1fj+3K7P4T`#OH0SVaF9$b;tfiS<(;DkWI7qs8JA9f z_|^2UPSW!4C7o80RbOK=1XDB#3ImK<(CtH|OpnO?(bQ8VMD|kHgj$YQzI@tgPLhXr zYmP$mV{Od3ef=mpZQSkj@~X7k<~YkE2&Bp+I(7Y8N0Ky#Y#nqwn%N(^V($!A*VHU` z#t3ScnTGP|*JYQLJz?kM*vT}0VVq)5^yKChI zDp07ZuI{M2Xoa{|u~Y5loc({PtrgDinaf@uWo;#89FJGDt=4&kvmu3N5W^;9Q4Z1Bbjabcl-}EgPf${ie zTuC`ixwPmfNG0j4KSyvZ=T%e|=x9pwT6O@vH zd>wNi4u|g_94G)vO)Mi-HXzq-t{s(LR#xUIgs6C1Y~UXp90}aZO3Ti!#AHG@e z{?sfIr0Kbu7QjQ3olxPxm9TFjwz$9|jgoIXt6g(|)7=H#GG@lJYo0HCshMVHXN_DD zIcn_ZDJd<6ON?WMEF#aIJ*!b{Aj{6qJ_b7l9<@AHTe-7}&-ysiV%F?Ww>(swMs@4q zr-dM*%vOs~IpEUWx0)U^Nq&?A4U#bBL@IUshb473P&9{odwXBN2x@VjNMs#*#=oge zY_fEg{&NXrc~If!Tqx(USQk&?;q9_p2(niH*#(<$!)TCeevrBWfO@r%W~fnc5V(9_Xn1kf9X$F|QP&!pMf+G+q}*Ql#f(T_R{iCJe89EC6Z`eg*%9^Wbtu(*pJ zwU_Jc0f`{SLdOmlfivSSPo^~8JUpGad0O{h-7k>Yyv-@v{TjkkrHQ$qjW)gRLg#tikZe}JeQz?!dA6(RW zsy@yP6zYkezi?r`Z3isFsqDE?3>PdnyvAWE6$Il1F-L_`lO9bsx4JK1zA%5{1v`kc zp-#G1W-}qht6lcWur;_oZxz^P;1{n$5fG=jHS?p{az1TL+c`R7kM_4<1=>O&vr7J8 zcz7!S^nR9c=u`B;ekC55$`So_TVgVjw5(lW8AHt?l`rPF{OaH5c{b?bE)lnk&2!w} zG~VCa%LWhTR!#lNwlq?1pEGX4h~P&^B}llafq|R%X9k&Lb2Dr($C|!0ERk&WJ0ljz zonaI3@r)~Y#lDuHyXB4qO?Ec6Y=@;jGXC(t$#owZ`}AWfw?=mI_wN_UtCg6TxI9=8 z2LcH5HWvtpd+-QqV~zi&1*rP7LJbxHd@*%#(e!@-D*$TA#GD)`N}uedftASt35DyQ zf1XXaZ3T7CZ_8_W9IjT@AW6CUE^~CGWvn9R^rRL<03$qZW2P0GsdSgL*vs0XE%V|9 zEK8Y*j0Qn$z>Zei)6vqV>DME3K>j4}&fdlhEJeoWHQsu>PV26)<(n+!geOLSu91Nd z0gchr*4F+eEMz|LHxJ#wO+!P&t6R0MpQr#ZAmtaYIEuo;LIni{lmpK>kOu!pM3D>P zIk~)3%TU$t->Rl^={TkcY@I&pKoFd!8H$t%Hjyr>3QqI}`Qs2jSs2o12?+fK7s=9xk;vNdYU=)%yJTGZhsT3Xm!Qgx;g4r*}aj zM=J6(3t|DR{ov{;m_8qlMxzZ34T(c*z##oYLf~NXmL25E;o7z2t%V+ZWOY^5kiNL6 zC@8-k2noT0gM+JcK~4G(KX8Jd2E~ih%>fnrm8gND_f4$Gb^mH~b z|KS7bt5>nW;O%ugCbBNSeED)HQxMdb#<3n(RjP`S4^_eTYa~BA162#-P;yuq5-8BC)f5mA5OY}k(Gqwk zjR#&xUXOrVynUZ3D1mFSuTEePph*i{i5yMZqxjL)_6sBPGu;W|IHxn(%JIO@z)jU& zzYf$a(9Qs!M0R`B?EHM@@82)U{_N-H7gJ$1QkJ8M)-Pa{4}Jhp+T>3Hsv3>7{FHNl7r3LqGWD( zVSa@b-h6*^uEuW8pX|jA?uWVW8o!{@nI(~?U~^(6TuS2O<25R+^@ME3C0fhRpF6iW zkfTnHaNzv`@-yPcLCuq`TWuFBNG6bg-%_H00*P#QH3W>*=X zz5z*NcQPNWt%Sr%zAndUlI@mM6~%=se+X)J#>DaZTwNbkgP+;dOcKe!(m_22`Ef@5 zCNS`K56&*e_r~J+Nu9sjsIK?;6?w( zVDbNu%=%B)`@f7)c2;fE?EXPP9iZ~~M-c?VXN8?HlJX4=4V&8!<8c{~XOUoyy%^&J zU4z>rdGkgb%@+V;_=6X0)Iajp-|#kzRgmv%3Epsb4|#|FdWDHGJl4D$jDGePs#(#p z@@%bp_v-4D(^6l?<2d!%$;oKk+}URwPMUexSe)$7s_sN_PJ4eXspf!=;bBlJo%umg zT>P=Z_bD3($H-dbwY#)DD*P(!930%DqFPb>2vlilslvH)v&PksAD7P1@4|pe;uq_E zhq+BUIlD6yA8l>Jj?|f|E zb0gUoq<-_JZ&&^O{8Rxr9ssPG0W4f@ z)-Pw=9v;dD0I`bwd}l9blAB#m2mp1H&mSLMTmuEp6M!g$O#ePZ*YCsv#w$;>u}K-O=F7uISpn zos(7{i|wNyA#70h3+~A_Cj6(k!=Y`wR7CbT7oMafbHThTbL zaxa=(2r>sM!o-!siP*=6q03Sm@j#{e*DHngCavpm1rQ>e{|Xn)y)`OtY$08s&mYq3 zgRz!;J7q4D`YrGviCbhjgQ4rdY}7;=K)$Yu6NMw8`n`EhZUj2-?A@IK@tKCUB4$Wn z`(Ltx1J)764+kKdya(ixPcDdoT%--65&QwoC>*=g8&Dyrks&UC*kD^aIyw{qENmx~ zlwkMTKF99&7bI6(k~Cq~1B8Y(!6|K&u=QBp4zIUm$1U_wYOoc9B1){>DisL-h!$5- z|CPudaGwZK)o{(PLrNaM)Q<|aP=p`no+{~N_u5G1fnLaiX}7>{!HEVs(l$#My5ehP zX2xAq0X2#%|4l%;&n{Gu3_08Z)pL}ig{VvOBhvJZHWQv4SJ1p;<$R4xGP%FqU$!gc z`0K8AxrcA2N9EpUW>(1T`4=jxPu&m7$j}eW;YtSu1qI#p>nUHqo~y2{x@^#?sVVIeBftCi@6S$6rEn&GlELP|d&)vU-#{t$2{c4Wbus183FXRxsG_!+*c7xLK0Ai0445VvPn{V9K{7M z%HMxkt3H1GNG=NF;&i^v0fG#9u#^Q}`2w0#(G3R*z)t?LK-fJ*4;l>+rK znG9+4rX;iJ;0sCQQVFVE^zJjCZdEdsUqBMxApbiZKHK2@)%vz&XH9H?4Uw^gBUmy(5{Gf7mkkzp^yEPz< z4rspRgMHgE=HHc*f(HI<^kZxAZvfA!OyTR9s|YV7Um3L8*CSLM6)r0sE~oW)YIMyX z!&06*gKl)^71k{vR#ys2V$7Cbc2Ye|Yyy(3ZLaH}J#PN@gI6T_nD>Qb0NlDFXi%XK z6`?bb>EbRbn(2AVE%&sR%!XPW53g@6OT8;=#}RTTgT2e_j;W!QneRIF%J}*>jOYGM zgMtrgK4z88@j50A__J!YnBGACRvwTBs^BZYRJehR8kufQFFC%(4zxZ39qyy~O9Wz6 zuBvYoEOStu{H#>|7PG}gF0z-KmoK740|pgPA3F7N+Jlf>ysLxzZmEQ8?oan!p?#pm ziDffNW-ge}>#3L0kK$`K8Jbus1%c*W8FLO^wp@D~7bR#D#8`+23Yzn~z2SEPG%UWdg-WOerPhNt&SPVoq$Fsjvdt*uR4O^=LcCnryjJkAvBc>I%nx&m%1* z@p>eDL5jC4_0nlv0a)!^gEutwPgcUNSP|zw9v$!Ufo)Z;lx!ctHf!Aqkmcg~0PSo0 zYYTHrPq%W<*v#nfX^y!FRqG?&6crmA8E#!7k=E7#09w> znnGc%py0nb*WujibbLVS4^xrKk@2C*0c9XJNGqAiF$sMciabxBz6AzHj(W31B3jaQ z=N0I|+7x;mAGEc$%8!qa=c=ZCE0}OU+~EQ|A=RZzs=cYQu+k4oASb;E4Gpbm0JMF> zsg&gF?PV;FJbm-rR}dox3v}q1nF|54Jsu`S91OWUxLhxCNbu#C=iasqZ#b~d;g(QS zYpv{21$sx)+7Bu1CtEMvH+rwRADsL{$Nlyh`I7CMgIBxFLmhUG9a#v^6PbP~cg3y9 z!pie?KQHPELaYWCQV_%gI zuH87R6TPt3hTNDWOd4(0uK_lrA8!6gvnA&lEN^=C_{q9OLP#(S$iy5)rJmRBFh#J* zA_DtEXHv|^>Jke%*p{ntt$7OXM0um7ZUH*@ZnJ8rRV>+ERyxK^|LL zfFm!S=hHT^papKe!2jEP4W33Ck2@CH%8D?b*is@P4=(W@deohD3s?%;ZTJz+ECY^Z zB)Yl#o6n$5m$qmS{gtIrgat%}v1`1j=q_q|2`+8cxEU0C)cB4!Mo2k|4}rBHx;Y_& zXNVZ*g4n@+|8mSy&)7(SLqDP=f*I_A)&%870H)EB?kD6Ur$Ql}Y3teJu2BzBwc*uw! zKmGw?20$A^)j$Ilw4epQ4uTen$)d&K&MKK8n`m$cZRGGYUGt~ATRB+dm6W?`F=`FuV>WKx$_zvNGqU=M z@Y7t*FNC2T=gB`wkFzp!HL+A$gAE3&PIDa#>DSSuNH)-G>TP$#m%DY@Ad7p#Q0cqh zjHMdzt0T@Yfk?IY_wI!pr*i+{#4L|7Ja@Vh^6%Pz?=#9maba|h_W*9uPzMr-^Lun* zKr^SCkWjix=z2b8h0t>TH2u+Pv;zJ@f0-M~jo^Ex-k_Im=$WW)`^FKQrv*+Ot*RYs ze;%oFOakhhZ1W7e*izF1#ucU5N1MiAZx@S!qTdns953Z@Vw|Ve{}8;-E-EgX>lOo% zeJN|v-YL60m{ZNx*4y};NaL!xv%?{I@Cw=$i_wO0N2>d3hA5)+SMH_;yN_!csFeUs z#CF$j5m=#vm#$v?9HK6J8GB`5+`AQf;`fj7obrOc!l~z!?>@%#w?#d+NS_Yc=gWFw zF=8q#Jl>#Tp>=9`I(}+*EoY}uyZ(LF7jbGbWlBZYiAKzi)x6=)3)KXeLhGR>v@bj5 zcwlp>5t-jB2u>5^YL$Pvu&r=9R%%pUuv%51l_&^#MD-$M@)n=&TO1kzpAHHQjJt8; zMw#2b9U$NVlWYMRpWOO&Ro`e>3W2%tJX&AlzYlIzqTPSGu?LblnMfovXfv%LaDb>R zS65b7i9=C9>;XvTGRxr-OYeg&uY}0RjrK**Cw)CtD<8s)oCy*csCBj>H(Vwrq~Wbj z(l;O4S~#?U*zV_ddh~f#nOjOt?S1Hy`b)C0b>+@si;fi;c1|?Nr)%nytl2~Ga=)!B zP3I!7^wZwrpGf^Ns1-7<&<9Sr-9)a{fkb6~I9%tBx!-*nkv3DRU4YyOQqiahPvX5| zob~Js9B%=qH_6D%E&_##QCC+c%nJBERk*L^^gnf6G&Lg-`GUQcMcZY>~qzM1LJKD59*vq z{^X-R25JYQMWtb&2YgHyK7ob#Tpr797D6CjsnjGs1d=`=@EJ^=N*c*bvpld$0*7Ks zCA;H~tih=*@<|mE5EfM!gA)&BZae3I>5XsA?9~DVG~th*VC??>MY2p0o2{mgu9F zSRjE+wgCR}a&mGWpBxhJM6yV^y~S5ph2`bt0p^~Lg$2!_6bmTo^z`)EPb{EW*mMZm zF?3vNFHsJgvrsa^6*hNu#emkWI#6<~vOI$vt7K*ept2 zaq-$KDMVs?Jfood_gc|ZQ(+Spg;IM-QQ0xdKusTc1@oEd9>jT2EickHk~%cqLowm)L;oX+9w%~EiL zC_A|}k9=Ya1VK{opD5UB@uvA(wEs9$A6(spFH%$pwzl6-aWaRmz__tLr>5SqYl}L* zC=I#&IfbGS@C;7ibnx(ccgbvfflejpyV;ZXPS|qj9ibA0){5GPx^#Zc31!U)wq@3rms`&F;iR7Ndy}<*+&I8_gw8M)3mF$ zJfA+A0mh7tqo}oLUI{5DpI|#>-8veO1#qQJ^Q!UVj8pz%mqU;J{hP2D)G#6j@xPQX zFeQPGCH;)=;@CZR(p0(@`SerTsMeh+8LT@=Zhry@5h`HS#s8}Iibsl}fo)t~p|9GUQ;IGx) zT`Be8sizg)cdAi0p|L=*Qd?+X)Qx#q$0m;2uxF3F0$GQIK7_O*Ym-RN^g zt8X5%KH^Bf_Rqbi4M_`a6xH@bNuucPXq)&#qN}gJ1xulY$KOXnLUIMYslBEfmbhE? zg0$W7wMVTx^o5f%tA&IGnTsjt?Grug$)BGCnI&TZow7A-l2mNJp!|)RseQ81`%F<; znGr}IppE2j)3E=ou1@0DuV1n8lNT;rKqV%2(<9uTYiQgI<5U?8np94dh}qn$fm~&8F)d`M#P~8WpWm&mS;}{Sy6OtEL^Qah27VSu zKj_8wm-tqI?w`C_=EinJ*eE9(p9%Pevehu$tHLHsuRYfe0u?HhC$ z8ci<4?Sw?V0lE&03=P^X|LulrFto(moAih=3qA>FpQFbt<(|xk*2L!{u~B z@y<}zWooBEhjoW0TrHE0dr5S_1~gvOIVPk*SNZJ(Uv%v4v^TdmCf7aO4oE%mfqpZ8 zdrKecH^h7tiJ@lwdhOsD+U9XB-;*cdfBzoXygaiwS}m9$?p(NAeum=0qjx`9{JMb> z!tsqB`vP9KMN=Pi%d5i^h$Oqo;oh)?;3JSU- z?qun`@m5C%x6h489yDyNaaz?T3Vzb*S6645ji|&-HwT`#)ZMvPUqjiqd!pRwc0$o` zu*m)sVwiE(RosH3)6IJt^*B?7v29O);`6e2r+R;B^l4ItkxJFw-OP9HFdi+|KVsG8`pXK={hSX=4((ndl)nGukX+6 zA7I+Lf)JRg#`*^8;CZwA1A+zP- zA(GFg`!x7E?WtdyH*ZfDmC1a#0EzCSdhm|$(SkR9^l7u2X8uImkI#~ykRvaQj3y53 z;{{7L-_{`SHc{^UZW;Mvk{Oa#RP@yZaU5QZO3bQeG(Ey``q1tB}N;us2&^@_Cs?e&TciQMa|U z8yI)Opx|?z;zjM|ymZpv2$9`p&giXi8IEowt&dD&6D#HVz(C7H<=1O6EVnhVb%hUJ z3I+rRb5z;C3RrP9nH4zM>66!$LYky?0^d%}r5e-Qh8JdT9QF#nW|l7NuA%+V0PV3p zQ@6bfb=H_qf^O$*N$mH8Jgu-V)*ZR!7%%0B0`yh6(`}iHsvQV}bMWsi+XR^F_Q`?U zNNjsMk6-;KpN>my5>JoT+~Tw>c+lCimMg~N$GagC2Y=r|t$nV^9GU$=JiHe>X|5m^ zA|(_B&N&7$o#3LIqT^$m(^R^e8oT|6OMmHzGv51pEw#7r`|d^s6sC;N{}IZGX1^@RoMCnwjnbA<*aA!Sf8Y6b**Te~s3cttwS^SbQkV zK}Z#)dv7~XA>;m%`TZU0odPERYcd1(R8+6=@`s5neKjHSS8=G~iRttS^frLPI0)+{U;C>k3&n18#Bvabe-F;h9?s7}&Pd zceQzM;d_ta?~rKO={gsPR6HKqrK^1Mj)e3iKb;iQRmfKlMWvqkiHZEl{>sFD-j4RR zg;kYXrIStcqMlr#=K}`MzI*r1E1`fcMN(YQVe%Mq!V+-H2>y6)7UO9-Z7ZD5wjIy*6HfPv2;gt zMe@^hd09_vpCIQVeLz$RWEk~L zKCJUod2Kv*kYKcMYjSSwSD7DcQF+D7yaI#c$X6cHP8UE1Zwa}?nw=&R>Z=U+y|Z(3 zbXC<)1ss1}9JCzmDpp@m<-U1^Wgy_B{)Kr2#FKjRUT7O;-`P0q&uFW3-?P*U@{K3Lt6xi%w5{qtusa=?7GW#SLdgI^eLO7&m9@6F!Jsea^= zE*O>@jW8Mkiw>6Pspyaza1wAP3T#|+V|T0{&DEAHck!~3+_)WtS3p$Q+l>xtf5rB7 zvx(p(T6qI=^U=xb@(=yYo12&SKVolzgINLSN^xMbmO~XuFXWXC&E9thwxxZv|0t8z zd!v{g)zm8x9TWQ~8zFLGXO-$_YLc)T?EHowSKu861v_mHklh0r`h0QYIyFzW4wzrfyYKXI(~|K+CWpimI|xY1(YqU|+5%cSTGw0_&-F-4Ue8uWR;(N_ zMJOn};zazC_f65@e!JZ-7tgr*lqKqwrW130&G{QAlgXL!sgUSc2Ek+%xQF<)AWa>g zl$7V*3nMW@9rAFU`9*q%vlpRF`U_V#NE?(UlRaF z_cATQ?&9;{yUBPdU%O4JeWOOZb{=k*)q0=To(^nG?h<#cvSN*Qt1)5Lhy^~jH~Ok= zX*1v6nVLd=Zu_yi5VzO^nR;o|X$>LZzaX@FH@)y1DhUDj=pk>X*SCqLG?k=<+2N-U zDyo1xw+2faJv7z9jy3&48W@{VKg;r>HX47?U-*0M9&6QfqAKh>G$-bF3;W;krVOo} zYH+4aj(V+&bL+#*tZB!$frUO_vifURqjMdaHW_94j9!7AjG13)3>Ees zrK%)wa*8o5gXbrG;=t6{bV3xeA^)94tb!-cG<{pNV^U(rJ|9Ai3sb3j+kcT?;bT<6( zad#3|UH#|-essP_V(cLq1;nuv?rc1>na7-5VF-$3at(p3ANRyPB&D0=%TDiEXAdrUY4b~En$=47*fdhoEB-54Nmzl}7? z&5co$;&Kos5W8ow$JIfl6f8aNk$ee9Z=I~hXXlwH%?L(4SvHcbKR)l4&W@NGs2|vX z&73%?O1u*$FL)YclAWDz)bn`}dHB=O2J`r`2)zjzCVNTgIas~3uxhJCO9mk*X)5#x zXz?An&}dX+U6jdVSIwucJM#9z!VPl!>~#{ZRP{Bu#BWc)?e?aR7xuRk7EB2%KPirD zD6svnxMAET>SgqfvP2i?iWkNK`7PQ9!zeb+T6 zD=TPjZdm=P!^%UmJEB2@m`qU8h58213>Wf#`*z{#P8h1s&g1O{&rIvrjUAp+bG;f2 zoe-X&+vMjRTRT4-LNvwtM||y6Us0Fky-=)ESz5x9}o1%0YzRPnN=}0pTAg+Q!2RRoG{Ah@diTPXWdhOPHCaFc;-m{pV*7pCQ?k&TrZreR! z5DO7dK`8+d32CH6N<~3JT97VjSahcWNSAoYzPZG_T9YQE{-ayL5F4Mn=PcAL4_+M!{EyD-bG z2idP46${2PY0OPc9NCpiD@irEig>`ne8aWwJE|kZMsP;L(}M3icBR0*AKFF!#3eK; z@^)9kg@J}fn@Fcv?RX~UE!VrK7wav*_3ge`N5W%5JF%$!nEEJ3(>~8UJt&R5xs!S3 zv&u(>pVMo)f*-394}C9Y?^*gWpbm{HaM*Y_tY%H-7BI!DX0HS+qB@rE{2r>sCm`tQ zZpJ}F``u1!$XWzv`)+ua2nI3ao?>Og7pLFQRc(E><$8azS<-cx@OgMudm0c4enE3!Vwde9pF2p>=rhb-;C2u15yK=-&&x9# z*EM_(cD5hNr!@|HpXi*3$Cz2z$P$7W1%0E-Gfz1BIth19bMt?MeCQ%i&@+0p=PoLF zC$pn_!mU^(%vDygQ8Ah>ZTH5J7&qHG+2f+M+4kef?ulMkbZlN1cp%5u8e#cB|7t*v z1&bcT{@C7~dvhY{lIS9`7s9r0DZaigzx!Y$bKu2*?1PW;;XzSh{2Ee(K~0#`m7Ssf zApu|E@Eh_#8#naFxFnBZ2HjH{hHJWJYi#p)Ab?^143SJIUHa)u5105QP0?Y%{p<_+ z$yQcfr;(NPX{Sf=GE+t3nzlCOj~_qO)zxKJlQKSYcqjFHr&ig)JDuvS+UWbzg!>>A z>PA`GT8o@~O2%r$OuUrA5iF@Y7@iX8Z0{N3W7#Xh-2TuqJgsj%_oKZ(XuNa0K4of{ zL2ucbN!PwS&h!080bRiejmqUzgu*E!9gX_h_Y1?3qG-R%Q=EZ;5O3lMY(=7U%6(PM z#4mGwqQD*9xPLzwE~-2BJk!sL0RN2HPDfYGU|*EJVcR73U`<6x^i6$ilEQ^wumf4^8fFvcyLA>ytr)XwBlU*eVt@@L}+(zAj|))+-N2 zZ`^BF;mm>Y3>gP{g3^H4SX6kaxtg1IH+FaR%?JeC1oo?1Qf2gMXlTOrhw$Mf1bCU+ zdK1st`nKsuMft6dM@%F3WdkFWI}+&z}&K_uMadMywufs4Coo@X_GT5 zuJ{Ppi-d|AWzcP{PIat>O&5mXh5nF~Qjj%pHr;O77vt1RA<g}2B}W*bNmU>2(D+gW`bWtEM} z^r5)+wz14|cgG91xrTv}Ko+(TIhnMy#myH(aWXVVHXHet0$qX9EVd?Z_(({Io0iQ( zKUO&4khVL9j8%MzIG9ZMahu(UuZHiE7hTan1gf_7;B>v0^@{_UIr)WvLcRfs{>UINukE7;Y7bY`ik>9VXz1q6x*JKAlrYS)W{lI<1a;xsMH{bNrm^Aidl z4i~?(p@k5sC(<=KWMRiO{M-?_PPrbN7kz}eARNTH&u_@Ml zos)w>P;Fm5`XHWpb7kp$-!}e>iG?#o7mU!Xz#oCH00ZSZB#G^HBt|?v2rs*Sntyp1 zl%O>iBbADr!EpRz;$TUvbf-PVioQDKp!7I#5V5A`UF}B&s2prW-(=G%4m7TmKlanm zQ+Eq3$KWFOi|NYBHm&*odAtX~IRH`=jGSx=$kBK+F)=;j zq9V;KN~>iz6xE!!T%K#*Z0-mQQhaG^OCcg>JP%v?ixZo`z>r2)5xH*t^r5m<>&Mu{ z&3}3x0y+TW#{~}YGi6X1lG8Fl%dSC){{> zUi2%d$SCn-m&L^eew9p4O-bo%9F-7-KSQoFJ%r8c0!l z;|~?nLRp838EtSu%>C|tC*{J~eHneWX8pETg~f$QB?aCMa~3-oUc;o8J4w09j8J67 z5{)Cct{vH`>+83reOI2F$NNAPYEaZ&E_es(u7{jXzW$F?A2=MvZ7gmJ3YyL}aHgdp zCOXY_Zy7J^BX^le2A`?iE%lP}fvQ>t7Ou@GyN+UA&Szg}6~;1}Nj||MRB_yGjZcW* zlNdyb?ML!)vkczo$sv|{v$3F!zQX>mqUZs`^!+IBD~aB^NavO>Jf-IUGDundma8?kYaE-JBHZ(l6ZGm_R35EepjKyuH!> zXTSVt&>lmQ=01SwU#xk^ldIOpnVDQroEc+Y)G8O-GV&IirXH4IsUY4Mjtgo?y}00w zx?OHXWhJedeLuRGi~RcGLIg#%gp8DcAgTC9^@00pE_%Iu-i#c)XaRfdP`kyR@!xf0 zKa!LA8p1Klk4@*Z`^81@`EXOJm_Hqtt*?1yXj@?78D9eEncqShuqSrOnQe&VYS`lB?JSg^w|b_gP$-5h-!YA62Voi{shM9Bf)p z{@uQP+eTwY7tHW=zLRk|MMZNSLh($`o*7DAR(5uJ`SM0p9Bz{46z5ZRO-6XHtz3V&6XnAFX=i@moh2J6D6(*YU^Y*gKBL)EqW*`xMbSKY2(Kih4;TnceK zT9_o@(0|lAh|tlQyKDFDDnL80O@*FLNzhW>uqPU~TIW%+(S74wb#BVjn5cF2#t{=@ z&LyHLM}5@EZEy1x99(^}2CL<6ayfZD=469&t%kOC-K?Ll#=e`fOj=)I)T+L=EYGAR z&@iw>n@30ExxP*0@YxjW{5#|c2nl!A+Dv2x*A~W|FI{q_UO~wS2Wh{wG#VgSwElck zFDyb|o@*U>Z(s7ue@vHe6;6F$-Wq%?a3IIVS{+QVTjRX*UJSuIN$-(iq3ilXDJ0PT(Z4DDDD0N%XV+?Dg8xxW95*DGxBF$ zv@mP_6Ri3F*^j6dxKLs*rKF`>Iyzn@rWvkFe7n>BCY80RyZf%3TqqKaCR_2pDp!y) z_XF3{%X4dc|81&Fk=66p-?ihUQcJ>rx)ceEaB&n5UcoMx2KGZ%$@u98zICaj70|v%!!%A;mCLKCLeCj znas+{3NkUSgW?N>6Q&jxPiSb;3hVD7FI!hOaO&bM0U($&Gp`X@4(&s+q*T|M-@`h_;K@59mIkxX7lzjg?@s z-TB1L&8@&mgB%*)7bws-qJK%HUVRzgtp=7(#jI{!i)>{Mtv|SsLnb6Ht^?+YlJfG& z{*Ql2fsN~7aa&Y_V3$P!(X~FkxUg{D@Nnrs-m17HlE4Gcr{Pe}bXMb2=h+9CB?D75k)O@Jw^|WNR zipz`B!U2q1w=_U!Oix(-_aT@+gOhQZ{`#YD7ZB-yWRZYc_@+yiEFPHvADl_-2E@t# z8!DuLIuQxz_m8OGBvWt^PJErpidbg?1_3T*wX7far1bR?L9p=Kp8hvL%P7LE z{g%RC)goF@0<*%*+)Of+2KmD`ERr-nxz;(!kr9gjW4t3D3ou3h$t3?ThxUJaPPhPe zyVF>luE6Dez4D|(4j9iOD|~1DbdI%!!AN)bvHh35j6nA7 z%#1PqMX_#qMHH;pru2T&UPP6EGdU5dgO_k7qQ%4j34l@q^vry88`O31bHbndiKe z4XOdi@6Q}Ba2Jsaw6SWkx!6Cm$jE3rUOBbYE&RYSeozwt*YM#|J?9_%h6D{RJ@F1b z@~n4_wCZ=VF<)~|P88jREspD3icI1Vu@4{i#aElU{-CnP4;XgZPk$VsI?#9w(8s2J zn03DRdwd)Lu44A$%Jb-HN70*(R}Z8Vy0rY`Xf z9GzzRt*hb;Oa$QupoaJc9K!P&cc8f*GgkYP${DHebyZocjs-AQDK~z>R=qma)y-l! zyw61w9PTex_0129KUD^a8N(3=7yt$(;fB_FS1M8>uhdj#+vB%%^2fAK_2i)x2PVQq zY4ioVi1K~FVy>U!}4=Y|U^c3aYJ7LX6MlL8E9|7eNL`veBn;R%MdF=Vp*%&D=7~xA& z*Vkx+I{vOTMVJ+Xn5g5Yt72G1g)_r|=<6+W!oQ!RRG$%|*VM;fzZ3oQ&!2s+mJa%w z)^S&$g8(M<0L%fz6lYFrw`CtJc$4A?NC+A~#*Tb+vUlxIE3JvSsm98;yBWhJ5t_*z z@iNr-yeW9+_U?Uphp#%j|D^>8f{`(RIPoojrDBOkUmrbLmDgS~qZQZvcXe{^?nqObhx8 z&EpZHxw!{jPh-$}seJ3Yx~4{gecxdTHmhmt*Tp!ELmg~Tsl_q>F|D6a_U+mXz~616 z?`?GFP~hP&tMJ*(v365+YJU3EP#=He&OMp)k>CayS%J03TvX8j>j6oPYp=L^{S>GT zbgIrKR0)ZXZ8$*!%YTM)4{wHMJ=r~^BDtQHZ8L}WfW@+IOOau5S`rOO5u~L(;$?Pa z=I38FcTSEN;9%p4a20Wit#rrO_RvF~!;j+00aPa6=|UH4RC=8$8x*PNQk+aAO-kVF zk((#0$e@_-BiO|20_+E8=`}j|7w`rJrdDb@_53E*2EA&>9QLFJDa43mRSdF=N94dZ zQzUBv3zH>+K)sELsk^x>tYKD$2&;@_+f@l~=|d;~Sf)=4vjE9{0OTFUYx)EbwA8{$ zn3cl?=O~@ryuJW438^^Uh2v{qrPIc1?yslTi{pb)aTyhXfQ_MU{V$Mruc0MK{oX{E zz0{Mp4GPkBRu!MYkxEVbQgQYezy*&|37$qWUb1Tde2$k9$lIQ+x-Nh7BWNgVuSP}k z7aSr3EHj@c+MLe`SPAL54oJF}GNT`?-JcRX-mE!*< z6H)PE;s3})0QKG2%E9ck_mVg2ln#pVvz=9ym~G9$u5CmH!+v2Szy?FkN4UmkyQUZW zbr!%ehLjx5*^T0WoPhGut_p^wq=wlGY@dfUT-m%rQ0nrXRd^&P^E6b*X$SoLAqI=w zY^A0#uE$dXB=HHfLcWf30ivwc2RSMcLuG!#!JgQYXIw$`?s8m zU)AZ9D}4YGhqK}FLi7G@jMWx*^GjbCC0-#$h8BG`z&paZ=5@6SSz(}}3!KgvRLX?k zCf;(%Uz|n9+A7U7%c7-Wmk3nv_)BGM6`Z^oE3sMpTyqZ zdVyQ$?OO_{p!EyRHk~KDVc3y&MzjOczg?|GL_}Ymdzc$hSf6=dK-NGCI~aXhM#V!B zjQkg^^zH3Hy!4%uJnTY6L)+R%xQh_on8|v=RyO&+!l{6GWZxKH^eGM{TF_29vMVO% zDn@b9^Ye}|?o_*dJFQi;v#oUY1&OckH0(1|#~f8^;|r5Vr{3H91Esu010jI!1^`D? ziXpc&N%d{lv_I62angSZi?k01c&{&LFJK=Nc$?@seT1*bQal=1z?(cmaDLyzZlZc z)OuwvE~gymJa@z?z}U(;pie#9$zCQ&>wki1XB6_`Xj0Uo@)nqzK4!R} zS!7VE9q#tcs=X+aJor^nH_9sxpJ8HFKyfg0|CXmP5FE3-eA!$y$%3IMfQvG-W}Gjk z=bkA1jOeLt#dN7Xw>O#BPs^$VDL_t9-b?jQ4ZtNlx95#=g9R`MU=k2LNm6?+k(iNw zJ+V%fO03eeA6(R4H=#XOxG5O{#Ss0Uw!UvOfq5@ly+m4pOOn`RmkoIU@GyJXWL%sS zw|<*P{y)*xm6MynpEua}(a>ZFF;Qp=-8MrIkE&yC7Alx~6{f0!Iz$wmR6yH`gw(Or zn_cXnxWG|RRh$8sG+u@Pz$8n(n&6 zgiQh9JfIS(xTxg-!16(`nzn-V`N@9;vJ2sb3dARh_=rpox?Vj-lH7s8)l#sa#dIOQ zxmu+cika#Wun&ZkP5uM4zF9Jyn|^6Cn4DW=VwR)Tnl<43M870rk%)$*e;J)I-n~` z^!)Bu0LY5iL+0i=qEgtB%wrgnH5p)3dsO?~XcE2#C*F1yG3nKG85$-w=F~%;rjed6 zGXfL#!oq(*o6N7i*UbFT#z^KscI31yqL{z;wD3+GJF*tmUz`zz(>Ta&%Jgn27~Kc` zmZ@{7i(PR`J7dG2o{H}Ckzs{^P}RL=_P-ElybSwTV&Mo))rAwW_`V0?awzPAA;5e-XRMep+{RvX3fRB9|(A1PLU`4W!g+zy2 z#m&v?Mq0I+)AcZi6$~PN^Hb@cM@0sS52`r>_C&_R;(qB+9FDa<+J6$G0nBJv9A8w9 zq-5%23VIAi>rh2rtK!}Vz={U_3TeS`w#U`f)QY6iEqKDENV{{((}L6=sQTQDMQ+`d zT&4d24qxpjhXG3~VxE>ZH8<>4HV@AaNE+Z?G=C^NPnLwintf5Oi#dNk*aB;>zrV1w zRZriswUzcMaM*`Dl*OOft2>%T0zn!IyQ6?WzY!^3v?#z%iu#+Yga+hV3w!dQKQ!_EUj#C~ zRQ*#1Om-|{9)1M@EYK~nZ*qTJydF)I+OI#Z)lwIC57beXy;Ph>Hswfgx*I1KAeASH zpG+RD;DX?EKa0<%<{T7bVu@+XekeP;2UDVJz#J<9%2wk$@rKwhR?}x09dr9|`w3_P zq?tpZzHU$vRg;_Rez7VqA3h5@o}~2~@WS8(lSiXr9m&-l`Opx^%|t*>f$9;9O1+p( zAJ9EoTaEVc5`V4!>07XCDFV09Acrr)nj|5iz#AUVfYF4A(<{kHe7KYU8MtP-H`?7C z1RunpROSig?0|ALj_uNs5plU2>%fDzjTHE5fZ|Ti%s(@n#bTsoR8r$9m2ByYrvNlQw~r?E`uNG+<>Am_mnPq{!{BiRHkUQPkwVGP;WMIKx zBAm$b7afx9#{n<(Ti{hRAYx&`fl3s8>+niVVJ0~&mvEhCEWj*s^PH0n7!I}j(K=^V zrI$AqxP>S2y?`Zl?Ndj&swP7J&rkK(GLf~xYbV8vKix5Qc~!mv%(|`=nXbvoHod$& z`>_gf15S%2g_fT{ih|xuac;d;MrZ+pXGCG=;Ph?GWQEm z;3s;|Kz)luy_W8W#r=hs{)6K7pU}#`7vcWj{pkPKC}?71_0sfLY~Dw-v?7P)nVIyj zUcCZK2q6wmkX2FgYjx0sk1?O|t8 z(c6$sHnZEwmtA-U_7TI;A|LBX$I!aE*N~{2Y~S9{a23*5!HV=2(nL|7JDok}yF6ow zb~@3^Z=gUv_HKoZKOAA0_)IQQJoZ=oBO*lJyt#Vq+BLun<0tlccz8AiK4xmvxS*C4 z_7q=;MzCYT=K($a-P2P8GQ}Vt_lBTgv#bZ;$N;}lj0ImE?CH6O7rL@ZYi(*;+t%iN zd2v_`Ii}#&l`t3wP#!WxOs%Y{h+@Yr9Z&Z33iH<2)^vN5Fi{{IL8;0i4AR-)di(X6 z(UGHwwYWTRYU20!II+vxnqg0GuY8%sQ^-M~q@nTD>rDy>3rj7}sD=;(xF(yk?dH!b zS8X=NO1+6Vd?9MiY-5bG$Z+_zo!yIrg9C3uHc!anKm%HGxXhAPQc^NSh6WNPenZ+I zGY5yxM1}2bf@j|V-bFKkT)PlD`8xZ}O83;%RE7aa4TLl5rF09=H{mK>!X0Tl$w!|iiyeJ z+xzwddWAQ-y41!M+t<%e4|O0Dw(Q&(-Z~h`Ah`|qV%yJILP6mVnE8CtFJ4Cl zxemBOfO6A0Z0Trd>KYop4XQdv60m3^G4lX&L6j1^eHt%3#w2i`RqXtswOAeS0jqyd zK!9nlm2TD%LJomoc<|ssdlBDXJlnojS=Ix_Yn_LMNc1NYDhEgL3y!Gc z)6;kf>Jppn#}Yh&!?~J*qN1WXd3iI@muFO!cKdZ8^MD*}+*{Y=vQ?0Z>aRDjpJ_DQ zJUc(v8!e*8p%jfND8MaLcpu83{N2wlIU(Vy3mCY^e{cGDdwb(^+b}gXH60xvFAGG( zo>1o1)Vu_Xl!=v<_SRG_WcUS4I-O>ATj_QjA%cYyH7+mCpHNVA!;sM)PDY}-4V5!l zqLM=}0Kle+28jIB^mOgsaxWa0I9M6|TD5caM+m__XB>S_Ug zE}?x>b93?+F9=;A#c>?dV$gD_>$7yS7+aZNh<7#_#3!PpB_pVDZ&8XzdAqwe6R%4n zC)A9Jx!k=m7?8c-0tG@ZCpTAbYg-Ky=mHE#prN9r^@3Re`I4yb#KaaLjdCuxnS`8) z=?*zLxr+0-B?_)*Q@XaA+DjNskZl>8lXFK^Rkf|XJp#9LfBD{EYbi75pnhTDK&rTT zW3mhlxJR%A1O&?F34H_(M=Yh2L~Hx|KX7c8YMa5L5AHR_jX${8;LSr!`q%vYU3#iw z6iBWD)D$AXMVozzEq5gtmCL^6=d;w-BIQ}J-MU@6tSF#zQ`gf2(!>+N2TueZp;)K` zBu2RcA7KKICqm^SJ1wo}92r(}sGA97P@um*EEkZ!IJL4evUCwnTeaHD{Vy^kZTE@i z|3rnvcH{pgPA&nnV%%p|_ z!4}gHYx(KZryTu$8dz8?yK>Oux>Yhw#xtr&|~p#tPW~m`p~op;0bqyG|0Y_>p3u@uVWH6xM31WP~(1c za|1UaH7zY#T2N5tG* z97vBW=WOlo4~8V2FA%z)Z#pXg@2wtEuEQ;kt4n7h{@aWX&hg=-bM=57Y*KB%ICqmQ z?;;nl5;>%6=->ixubpGED^;56U2;1LtQH(B%_z~aBz z{aP&gg%AX+DsbHfGG<8FVAI~(RY;YFmA76bwpG^HdgaVv3UB<|g!<6x)RqUUf?8*O$oTL{{Wfe%2LOPSa zKLCY`1dWg4-%H}Zr_>z>Y>`k|IJHm~P@#!Z0Tyg`?Qfj^lT>Z~=J6o(SKw=e7z51* zEhJy0ODUYl491`Wb8`bE5sT!Y{$=fXdJB26|6B7Ba!UPQRYzA%X4>9X9a()aaPN*m zQU=}`WAK2-UQYV9o<=j0G4Q4q)~9H;{GkUT2l&g(w13!y41gp%>P0fc&wT_$8bTZ^ z4kli!{5qwWq#u9zO5HT5hzH*?ylss;<^=P?2fONRqHOV}l0u}Vs91ztpPtKN&YOW? z0^nvi3N)>8MsJ_3sxn>jiEt7TVb>gscp%LV*7UMu;l1F)9Fvri-yP!tfC<3!(s&zh zpJ3|(N5_o<-^@hL5$T(b$w+_Eg<`oLHYm}#xiq;!%)j=XyABj%njM$#>$|#Qx{a_O za{7R>vBTF2ydB#|36j+J4`qwjfn9n!T@RweU%b{HjeN#4>vGzKRv%x0)8>+pb)t{{ zA^-jBnFKYM8-+IEGYHaVbj>>5(WdR9;%wUut1Ywofsq~G8D=)-s`zz-vWXCDh30{t zhwD$jRh1V%yB2Hx=MT+ui@n>~)mzWut5HNBa{VmklWzdw>)7IAWBR7U+rcSc5ZFU8 zfeyrqi3>KIV&14Yk%8K&4s^%M1Eu7u4&|Oef!(Z$jn^5WKVPD+jL2hQ52sEV3A;PKso~U z+LDxud_h9rFzj_^bn+Z!;`H!d(`}4I^B8P&p=CPdLf2Bpc9f~3WsEbYJ-T3;`?G@X z-SMrCC{O+q=SmCmPGYJ#s5ED6)=7H-U0O(H8~t7$D9VLL15Z#f zyW48NT}WQ;Q>!nX*Y2%77*dNi${081_GR;v*EBMtS-7WP7``@krGjVt=gDsqP?bR~%0beHoGQEG;#UcIt?|wa z?otVIbu?2121g14;Q5X3`S)h<+I;%dr$$<_{hULlnrL*#ju`t*WL>_pA~-*tj7TH4 zwh_%Wyvl@Y82>ACq__I}mvxo)K?b@_X>nqnR3ojib7KT!drfVJ0-h%SrY(xxJ!yG@ zT(7lX4xkf#W_u<9K(Imowu6#J=E2y1Gy+YnZW3*{zdpPF8~0jwTwrfrP65*(MKKD< z`3nv$D402wi`ynT!fhGbKLJk&BP%#B@79Eq)&m4XhiLTkK+t~ojcoq!JOkEbQMKpg zyBh}LlCml-0XT~&N5F$vU>+<66-SYGRr7#^Nw263q9)?Rm17DrDq4i{tFx)L(NkqU ze4wHQ3s-|uO4Q6h+$HXaaqkRnB#VQDMu1g7q5jW&B1=WgEG);)2OC^;o(7InN1=Ip zNiOdgzdWMR*klvXG)|F}x%XbQ`{&Pw^p^K+mD`lerGrGh5iOlVK9z?P_WW-paTDKd zT4Gf5eJ8qOg?deLW210TZK+X*m!8Zj?Pb(Rjr3Bqj^hyM$g%D7QKe0b%!gM zz2uCtrOqFm=lWb!a_wyTCCx0UHM<$zKpisQ!nM}K`N?Ab3`byJbDMPZcY77AVORa+xyGevFn}1w zUNYuVUO$h?SbL}~ikZkCk@RA=%4Yt$yRYih*J9PF^JVpiT*P9ZWNxE)T@JbVg<_a% zi#0X32A`ePJ!`&+SZHpfJKhmugveoUdG%Uzp#W-CSK7 z&F3-KsrL0trp0(*+~@l|baAIp@!@kj-(ppw`Za5+dzM^ovpRK_2mE9gav)vOmr-%z z1vW-2L{a`{s4&)-D@5vQC{DbH=Ul@$wj!5!%3@LFubbK1O)RY%#=u$HX*u5z);hA^ z9)2`6JMZaQN&vqMAUFz>x(wfoV(hw_n4_PE_oPWmeVaR#7BZ_l7c;RJ^0i_8kA5CE z_9C>oqv;l)#xpp9rDp37#$Q~+xhsFB?Xdg#>S3wMI?^*hopX1X(-s$(rqu479c$kR z9kJm4T3xi0ArqWhNkyW?zO_J=1qDTP77}&ewkg7CY7(&6?DOPeKK$Lvm}0^69=GWU zWpcb!IyymL&|Nh9D~(3o$%0&M?eDh_ENaIaJ&1}ugHV9ZSii66Sbrs5wIAueO_5G`umyR`Hv@hEG3PhCbE^Ox|Gdya=B z^24P{l}<#)*mxOq?X+w8Cu7FVH_xbq+?cw(<4_x=!3^ithmPXTg;C>6x5wEim zM$|HC!W1E)sE)8{+JiPiZdh)-gUMuh#5ZK zyqJxc@$vK&Od)Dsrc9weYVQh*R1w}@<8+rKs%FLu& z8cHINkQ@!3oH$wX90g`5v)s>=^YN`h0e*c2%JwUS0l|@9!PSy<-(k3AhPxw8HH%0vIez~e22woWk-XNu@#PA|zKHh$At9j}pg+H#kG{Ov`x?MXs>hrVYP1UK9&%`X!rnCFSFqOb5#jSb@|w;d zG{Mg9YHPvDQ~H+4!LQPbkH7nf*NqpFy+5xUcAleyCSvoxcS1fH7zxb^Y=}nU##wU# zSBQH{6S)!a^N*8`Ay3v%X}GdwQe`A1Bz}v`UXPVZA1;_>O6S;^@5gfkc)X>=zsknG z><5kc)KaOGGgWdzFU{|01o79>(4Td3e3!4tjfe_OH3D*ZWG#Ui@qDhzXD%gj2< zZ1lq$xiJv#kWummENAojd3e0G$HRn609!8<-1r2`ms_+jK=2qRrv@UQpImZYN~=cq zTTbk!3OkFvZ*356W(y7v@v!7PKju|7nwed$^DHdi+A*Pou?@9_^Lcz?bG=e|Of~k3 zwB-4Q0qmcP49ZmSbsQ?7X1X9>{IiY$dXBldh2Ry807+&W`{$Y(agSnhsX$|roN{wa zWY0K~`QkWSM?GuW;mC5`3|`Wnw_##2~kANG!7nYyK)-`mF2~=HQo8Rvg$Hfxqdf7vnFa<>#w1q=@L$XbSxB| znwjSn9xT{U3z$vsU;?}(mp!R{_*q)3D8DEVG+klf#DoQ3=$$Z>-8{HFOr@RO6TT@+ z&tawU@DZOmOPt|QgzTM)&Ct69mUx=v|m-U(SXrR&R2a+QQ?^)!udLVafZ` zV6xXo5t1AFS}ehN3|ep`8}VlAg{86AP%vwk$NNZe3QTGP9sbIYj@& zeM%UW&0_AW#BB7NY}rDZjQ4_ipOcb!C}gS+ehz}oW@;ghO9%nu4Sp*qF#MI16Pee= zP*UV$85O>^R@$yCyf_9R;3Q{XU*Ff5_2qXsZzaX0`EYb<$D}p$U5eZTcC)sqQw-QY zzWHoqpZ~0sE?>y_SWE;ab9X+z2d*=I6K)5qP2$zrwk=)1ScLM*3VijN1C8{bZ{XL2s=2C4>Ki81u)DxqxXxnDilw4GJIgFO; zBcVsH2Vv1^WM19)s#Tona4sAreknj=Q^MBA&^w4%Cvd2<98SE(YjR7_o@>J9>6_E= z2Yn5A{QUf1!bA8jA6Qf`R9?)OKwHH2IKHCk>6L~#bpHJb!j8`7NS(4G^@~ng;O!Fx zlVvURCa+LelM0M`Xs%|(xBVnknC84Yqo*ygH+9GNj^A*bU-j(zV3UmPM%o?mylkh7 zuj=RJ!NNaDLSbhx-L;~_X~v?c&f~{ALE0q?TnUrF&*1q z*|vql*sdw>|GEwO-(?QmA+QYfZZjNHrbsoKlDn_i_~}UjD9M za60w$fRwY(BDdZ5(I5EBNrA#2%?q{WG!VP2^+ie}Zb3|H{pY z6Z=<+P2bahM%;XV@h=yIWb(gqc2;oziG#sspl2bGu5T&Q|58u?yANZ|T1R;^4vmWh z&CG5IYpELnrj|l^%M~393#+8$`JfdwqzAbncjd;0rohNx*X(H0Tdr|M^><&(;3P`5 zL@tf$da{<3mJNWv;ie=~v&}}sMsXiooDmX)QZ#{QAc;~*NJ<#^w@-Q+>>4!phxlA~2&Kfid-wC}*cgay2MGIJM21Sa)q5hphzKGwGP37fT+$K}HGm^8b;sWT zcB?m}cfRH`8q%Zz_KPdJe)jt-A4K23*8>6s87NI+4J^#sWHo7`l+eqUDC7d(HFb4g zfWXLy%+%|*@oONyj+%}x0iqba@tJ|n`0AeJ_ZI^0ol89nl((^YuC1+Ial8;wU^E&6 zzZDP^gjNHDC6Z%;4pHA+T}{C?;?COvId%Zf&tw))Xw-c}|HWzU1}quc9Xz~d=$$5z zty1}uS@SvqfjHZNV^qJs(eY@pG0uYr0*8?NXfdYhd>#zc4)maF`i71JnfI)a2aGla zZ|dO-i|-KSy4yr#>>n1^vI6~=w9L)SN-UP|F;?!~1K@rRI?5_l+7&9SK{eU)<;PxDWo>)lY|Fh8nBU$Pb`O)pc}kyfieVLq|ux27z)%_ zVnU@n1HKg!Zv!Fd5d2K?xf<7i^SK(6lJY$+?lG`3s9^J~>FbkG901l5`uqu|{cB)& zh?-1KSA7C@3&kbZbYF&+n))U@E-?6@V`J;Ui}NPsivkuLtt(TJ1G@LgqL ziBiEQj*zC0i;LR@y$PX5@H@!weQvRIN8*>+{>MLw_fyTOe{rWSLsh2TFUI<7RK!X^naVJc!+`>Y7 zHkvag@E9T2C>WQ`@UpRpUmz#Ol`cr#h7NZ_IqGPfoSZP;?f|hB85P@EKk!#{Fr%j- zA=BLzeaCMK$=4R%%tAVW*yd(jcMBkWuBaXiSW;0#|Ds~JZ~ynUrGH!D|NR~(8IOAl zXI**-TyY>xhQn&=U)zy4)sB#M+zve4wlCK(j$m;Sq2~jg0IV)RyK;Wg*52tBB-I-X z3lE=}nW=L@Mbqs|xr+i%Uke!gvqiqk)PbXw(ZR)yNZm0WZV?^|v76f#(lo(il{oJm zPfrSwp>sdT&^M%~dd2w?4F$TQVJ2Ql5V=fn>7$+NFc078V!t)$6ZAQ{;E>$G}8-Kjge; zZf=g!)6?@21_2O!b=}n9LrAeS@XRqqiK`@j+i>;9X! zZ*#%r)~C+~Y%^ShRK&a07qYKjq2_D1YwRs`KjgOYhYq^XiyNN<@sNOkVB{$pJiGb1 zmY@n~x7}~X3w%E)2PoOt3Kb5h{;t~zHu_bcihvS^{@TsZ9S>p1!G>;_#~(@mSEw8pjS%h2JUcqe)vW}0Q48xOm=&^knY+7q%jH&_XFfs zhtF<^5B)-Dpnc%lcsZ0ycnckoUh(nduobAo2lv~FNlQ!T78GO*IR1?t>?=y9taXGY zp<&NWA4BXgtKpD8G+QuV9iT_L3ZcE~^-jJ^Zs^-^bPCbR;?Yv`n3$LZoMum8Y5W-; zp67h&q)?22{+ve8Jyz|vKN&E!_wL_+3#APngOb|XP%ab#v#YBjuz8A5KzOlr5>ykg zg&@TW(1x6VO&=GwT8OEB%~gl7#53Sn?~dKv*@;a`N(#ZtZ$Z2S0}sCG3V0%Aj8uE1 zXo8XZEWF|#*n;){Dc1;^Nezor)6}eoiwD8UBQ7o?AAzrtk;D?erU(fL^pf#jn!Z*H z{QUVi%}C>jpjjO?uD*u!X&M@~!IoawjQ6*4rHu-|Y7Oz*P&6coMS8;5 zgP>}rE0+JIX`Y^%n#4S#FVspt(Be8+L0e1fEl9RNNP$#Q^_ATST3C5L5MRcZmM)vl z{Onl|gIs#QmVg6nz0ezGdZN;vPNCqYwe_JOZ`I$bCujj~+2s7h62wU<#D$f7FK$gO zEq#X!N?u;rGUv_)c0gzp;P3AOwZK91$Os|K6_~ja>HW~6RBy09TeZ6HCIT>4S*<0J zvCYZ*(-#)sPd6qiMW9c(Fnzf*o+}86x(f89A!u5nG5jw{&3z2_I0zFL47YcQiQ7GJ zsD|=&{MbDTi;I!nr87R}egPk+>G}wp)%r-HwKKE;nS)AbZLBm1W*IC8zhSQb{{0)O z((A}70JiqKFkW82z5T*iMc``vU}_N zaB>!OJm#G|&7jJXNR`1SB7#a9ALJ5$pfSWt=tZSBQt))KGkUO;&)V7=YM!AYBO)%V zwVH{EsOfrlO#_2;o(cG}WAG%S-n@N#t`uUOQ-=15)1R3e+3zjYg7yb_oyL{>vSIts z4qP4dLr?>|?d@5Bix)Y|e26#(O2q{Q1))W89W**BlxFVJw@kHdMuF61&7K6I4;i_C zFMXYv8uV&u>yOgv&)*zY!B%K8|L1;^c(jU_&@fss?uqm1}; z$X9N3{Uo92>mBi+7eP~4AaVnF3-9HbIc(7UFny7oijCYUPzn|5Pcm=VZmRNab*yC{ z+rqK%Sw8KDgWn!rKsTWJ11EJO`r?~ZVp@xd2&c*3Lq2*1RsG@apwNPrtt4W1Xo^B2 ztS(d>u!Q?w(IK({c!y}g!ad7 zoaybRtUsb*Wajh%{Aa)lKQ5e`&D?}`W@Y6MH2hT=RsU|5F;Ng&o{KIT_WX)Di?kKV z^A_vsO!a{RbbP{<>cY|KAUw!ii~G#a1BrRI>TM{vP2wOF0Gv9O%n@R0lq$@=s)icP zL_6E37S;EZ@u8=BT6d=};CrSy5LJioB{WJC_>~h2Vyy`AQ@Oh{sP2F}ao#hsJ%0Q_ zcU#|Fz#qO;8vQ{*BX_FqpsjG3sD=bqtmuk&iwCb@e@?kBE}Qgd|OmK zCX|c)N!QyeqplC$JC*`b1E9IqK{*cUbNg+=W-(X551whLiH{T+Ua46x-=1I0NMS0Nkuyx8yW5{4us0Hy5#r>Kj@04Kg#xukR{TkDYSoD9h937Xe8sb0< zE##VT0w`G;_LTqBI{Aad?6bivP`DuPHd9Ujtt@-|nh5*Ml7!#)-@1W;y-QtXPszU8 zGczPG!j|&lR88pQBtFYYD$J@9$J`Hob$dG_6!m5`VPnX+VAyffbGWxi$MU?v#jk@J zA4aCtSCsl!k6)E#1=PK!0FZGC_|lT{=js|7qH3DPW!C!g%Y#ppnHw4?c6#IXS@#d8 zfs)S1q{HXi;j~)gd-diME26_!^cJxw57#P9bddC7c8=+(I>75Nt?`VwyprW20bY+1 zW!@J0D6gO!q=>@Lj|M)7@4ltU%Cgl_n530l9^2%nxw`Z0J3F_I7AIBe`b$yO<4=1l zrCX&=D@|$L0Nmak!KgoKo}>(bk(?AMSg@L{)^%uAGH5XE6Rl)Q} z&KKu?9J(u;?P)&t>6uxe)?>lT3Wx|*T}~LD>9SIlEO#T>iWS{O zl{1eX1KCrb!({in&r*267L0hri^Nt-i>;@tLX&wEJx`O2s* zUfVGcUZ{A0b}}j^XU|7X%jHfW&A;50l-g0ks8U)BEW^>%I-ZTQ9X`OKeZx^8b%+IAeVOoH5oKW65$(=6s&} zx$f)!)zvddX|o^FlAkVEdSWY|)#eBE2073|;8s~~}2qynP>QKUZxfljacW|dZ>S}mZcz5#m@hp!#h|KOj2f+KEW>fM9 zH?w}rI2<1X2N0obrmL;7BKa5y_3PKC7H7TkLIi?}_S|Y_=1SWj9uOOWiS zDN4nZWT;POe8Uyg$O0wV^x~|DrO~#4H;vzlD3owwVtmS7jrT2&2Dgu*TFdtjkIVOK zoCi!MnpW{dLsb`dph#&$T%z*}R>iFG1l1I+hYx*2{G)Ln7kBO(1wyvb^H2VNI+_!I zzHRPbEwcD+F8+~C2uM3eTf_FGbgly3Qkz?iJ+(10W6oLQU-hc<5UAShl%g>9twdDA zb)NF3X#z7f3lDjiisYZ4v9KiYXw7^D1xB>Z%)l>?y}>9oRxE#}x460bEk#w>&)*MR zKtQVe^Ms0ApT2g^6d!X(OA%l#A6G4+@mC@OvEE2vRs7Ujwy= z#+^P4cjq(zTMMAOi26Ch5q1Rk{%dz6&GqZweMh--8~Qqu z>lV0ML)`@NU#80L?k3>;(*F=IyX-ciu4`j39t!dv=$W>U2Yo@IpqaFT?ixE*PA&}9 z)WxZAQA*-U&i0$JO1!3_yDs^o<8FBDM^+QLBAMW5jONSvR(=|2?!!e#NAbYnt%x2c zspMU^%e^MqR<=A#W-j_N7YAx-;uh%Dj<@pSK=PqCH>D5vfkxm_v}S}^Ph*mTu>r}u z1B$kq_Om~2E!xvQ40A;IJ?Y}cjpM&zn-Df20>|j7taSWmz zOvYXOTJOsI<{*{rWi=%1`U>11G*rx)Q>{{mlS6g?dlKKdWc8U_G%bE(#&~&Lma z2AgCu7>@lxq=vlMGt-Af|3bTsC@)3J;P>fgGSJ|!lf8T+mgED1Dh*Pu8$ixNkE~o_ z!Gx@2z6E@Gqvu}3Xm8THDByj4PB7?;!mXd&A*lZ@if{Xue0 zEUYlpXPDnmn=efNnpJ#A!7D7`{IFNkg#r)H^MH{QEO?On_EW)_nYHI~S`q3Gqef*- zCZEOLrIl-XrC|Chc-X@(Vt|_u3oxeRV8C0oJlSm6LBu@~2xa;;Z!Qc&M-o z>Z19Yr9H2bWDSLaJKI{OySA|n*iYiDW>#mV#wtEYA>lze{#Kg~f(I};2DkPqLTfSKegqtN7XAsPA{n>3$4C1UZ z+!(q%1e6dED?v0NF%;()vUK!=o6|LmVqHEpap52~m{Oce!#3bGtf_eS`Wo2s;-#UeFIUeE%LQ1`4pU+p%=}ui{}USaW+T z&4VXla*J7A`EQ1q?vAIVOa8Q%Vte-d`2$fYHNdpqk_p>rphOzs?}jhzHFZY|DiJs! zaeCP__6UlUFwKRdY;snm`tWKV>t2Dd{OZ~7!MrTvtN+k;MIcV4LG;?1xx}3{UM^>L z>qH|YO(kxJzfBNM4j*(EgHvWp38jfhY6v(OKfGn)+~BSstU7xRYJ@5zrW|zu?Y^cH zT-LnB3y++fyU-~b3pK9xW%1Attb-)Kce*oh7Oh+$hGYauCUjmI0Obr0QX~UaWfR=+ z3m}@<7y4pU%--N_24*(4`0Tf-d48D%RLCzly5j?%pQ`6!kkN}f+M2zJo^rP=Iz0H; znEFXTR7#_MxH-0OPa?VFM~b?+p?2e9UP>sP4(!0`Rv1^#E6_d~F1cs=6I@irzN-h( zlVYt`u2CI@t7gtM=o6EYIYRLdoZS>M#v3wtCUvy+8h=)*x3rxbL$7Lxt1o!+9vzNF z#U<>t0o`q(@Zucnb}808%a5i@&)~sBJ2^1vgra^l=tcyl50F^#6mkye223LDL{Yr+ z>E#K!XKiE_xyQDHmURO>Oc9MZ+Wn0JpiaCqG~~OTcp~ubuX;zIEPtU$H~M(0H_l*g zUIhAlNa$Vk4J13h4{KYyv!)j$HLEek>XRMUxrk_hsW*&RUd=1*C=(<=gq-Y~D3$8b zSR4l5*xLUk-FYyQyP&6cwpgYM{c3ln4l}yr$&V~fbYjk*nBt0?TA;1S$GKe(8kMye zwd%^g0%Oe?@prgZ>x4}iWq+5ClC17X|5&+wX`_ohh)0?$9-L%k zUpS7$r`fpnttwA)?3e`F!q&Od>2~Q8EsjCD5|x{@%JD|=*1V)$@4WWOr=k?L!hvw- ztzqf5Q+t)9K&n^?n+2JQnPm=8h}xePu*k=j(bb2nrN>=rDP5WY#qYe=tt2M<|){AJZC z-7M)}n(|uiJRCi^FP!*f=A@kunm6yj6cl)Jf!U0I4LEL*GThkrmqB^u+k3h{59ADu5R<6QDgsw8ULSC5b(Ew=KkN) z>~p|Ih(HDaz|1dR))QD-TGGik_VoC;yFcT#UiuOgB!eSL3-9x_R3!ETwNYQtBk$K@ zVpCE2Ct9Yaa;dD!%28_*6?l;Q2E>_4-CY!*oRAd+!kEN|53`ux*F*fQAH9Hw@rMr* zeF$z~?*2vWzYJ@>4}ZtfG8arhNpzI>XZcf#gbd1JQc|{2HX+HKN!oceyly+#Sj%ii zyqZi(nO2wT*DD$iDrnNwB9Um3! zb?sF-+4q*D&jo6Ssy4{3objhWVMTo@TU0YK_BpZ0JCGt#&ier5IpHIE7e$jfdgG22 zr$$3R1#!swFsmyo8K|+Yfe={UN5A&>Vp{&WOGRnE>u*brSD6EVUmtbt-whN=><(S2 z1H3r){?5u%BQ=>Ik<;DP+R3Q>8t=CAPPez|^7sUXT?Tz^mkXmHYd-4A3AAqeQva^8 zdK1>rEyXcg;X}bw$D8n}x8NsCmB&v&Gc~`#w&pKwzZpWA zuEt2u7h!j?&47+*>?xil)^lwsxK@X`pKR zB4UsD;QD8pwx{xOLY!+!%7-_TMA~R1<66ruk8ZpF`Av-aFy$)VclsXrbylfkfq|YA z{`;0YMcu>{<>iH>>P5;cvKt%wSKycKj7(lY^n^l*ManN-)?)pA_282mSB+ zR;p%(T(;QZm)9lEe{{TsXxaFjBHq88hm2r8=y#jx=lvz&2`YL^zdP#^5v<%iP{+t6q}vqvq_tcQ)o_{ zdGtwB?9QPQGikVR&!BGs1tjrU5t~tg zS2x5@FZ8$zM^`SMc1})5G>|D*t>0k^Ag}&rDuj`3+Q2{IW_$&$iea+WgDU#yV%JW& z%7778N%-MmnAyhAAY%fxDSU3Y&v2k` zF0z``+qTR5_SG-B_2;04t)f}=F`h{jI?-AAXIZ*HZ4X9 zOlm>0$t*+Mn`&x>DmkVXPV8oLpFB&RY%t<1^%e4@bZY7vRAog*M_0FU-j`JEE>vgQ7QVRKwx;8VFUB^&=GQi+NZE)|Dmj z8NOk%mUACh+ha%1`FBGtv?{KmZ zOKR*N&XL{E&daIo9}ZfIbh1w3u92s;)-3#dYO6hgOCNdO;k!0u7Yx{hK?wMDeVX)cG8*6Bm+EU+Sn5<9aCka z;VxHo=m3uh%|X7ueU?3ubTC;d|BtFIdH+RbdIcO>qgXAt@g~pw^h*ok0ZF{IF-jti zy(@+gLYuvZi=C6pp5j_jwb5i^VDJ@ELrNTu2?j{2yQ-fBtHQ;?LTwFd%}i1A^Yhys z(dKBOKdktyxBk&9KVNthIHn-~h)FTP^fc;Rv?KR)%FwG~OAv&6Q=gZ$`xVUKgC{B& zD-~_Asgdz+t>(6a_E9`Z=N(;GSY`W&RR!->hv=l``U1J_hETJc5ToEA>YF<*3j=_? z)t+LGQgHuTwxS=Kgl8-{waPA4w*zNg{2VZ%#_DH>s5Y9IER2Fj(U={dHY_Zy*W0|R z8YJIvT|HpN>-Mms?{NN+6`(o_Y0mP?X;$_Ad>oeiu;ukjFF+lH0k-c}XqcD+i&83T zzG@4j6Z3yW+pOHDc5rY=Ds;L}_;kFj*-CM#H<4Vk%@x74C^6eKIjCrVmKMrqefBW^ z(aF?E7rOgc`IU-OM!IdP9MH;xMQ{7yW9mB>I8ZNlmk@yc(GTd5(tO-2Qzz|ZC^ST6 z=*KqNRLgV+v(yfy=2Y#VF64Un!JzeN{o-CRddzhc&R%@Z( z8M2#un&{1sfiHa*Bu-k3pX5NEJk!(l=?R`U+om@G7)hj8|8W~Ig zWfc|BB7yphz7f~YBlR7f-!tZJ7aBuByx?p*88^s!+ytp^ybew(-2#Z}eCIAANoQ3N2f*#aUjLvvF-qXey$`e~p(sYs%RosSN% zA?7m@Kvlt$8AXt`8+5k?nhQm1nBBWv*EeUg>cG8q3jyVu1j<$G9?&aYeUs7GE)fkh zyKXQ|3VYjlt}($}=;tfBNvzeGwGW*$n}T!j^W%*{4(_2*midNhC>z(@i!?|Y{6|^7 zNSvVA5z#;rdp*>3I+rYpcVWEPP%SJ;@CC9uJsK{5ea1YzOGM-y5y2%Q5_W1Cppv<8 zuuiL{Hnud7DcXMh=nJa%g)gZGMgOm`=f-wlFsilo@KAwMABbh{@$d|X(dp>wdIknk zK7U@raUX%AjaME*qMLtiK|zwus_oV5oT8ZuifMiz8C_Ud2-N*o`1lINzf*Ts@Jl2k zQ7`+S%WnTa94=%kUhsQjVTb+hBb|HxMVbf$0|UQNgcg6N2U5>D-iUl`xXdqhYDRS+ zE$Vg~JvIxM`8zojd93gnT6v>4W^pf|oP(?${wW}Dx%?75_)!7k4P`HsE3pD(HWmF9kL-J*ddoh4N5f#Q|R$LiifwmNhpe7e-4q z4ctZwZe^^0-{W=OdHC&3f5?=ANS?dMnTsQFtQk&gMjkU86+q?KR(YblBG3i~%a2kT zQU=n^oS0&T;YK`N@u{L)6rFS!SkxAsq%4d9Tf=Cq&hP#otgH7zdbpi;mcvk8yAqy8{M=x2b&@YE{v@(?OBZQLOoHb}H96u0KnB@*djN7(q7zOea22 z%_nMOoXVaK82Bg^?V~kGY1TqC;oZ-UJx{AKX(bOa3191F+V6)fy$t8Pt! zl}gXRe^rGXYpE7QZ0}m6fZP*j6xU*J?p4N9hDdJPf3i9PAoJboujd7Tkcm{P&i$3Q znTyRZuq*z&OlZfokB&p8JE#AS%z77rn++l^4J+{L`+hG0SW`e-_&uUw+Bsf(g7Ss3 z5g~)(G~Ltl9>J~^J{mE*LA47+XFk>rQ$G@|QaKyTJy7t{^9i0P4Dh;I9Y4DWCS2xg zo}MV92XxwhKxMG7i<<(cyw`xctKTMIF&m&nj91nO5vs5la0E1Epu z6uc?w?dV5&d>{NAdlWFPoNaB)?H>4=05E0wrOCBk3g5|c!TBnXz_%!e5L0^ot)WN> zgiV9Z)DjP)TIDCu2k~%VP)aK{20Gpbh6CttP$*J!3VzF2Q!C9kuW{Gs3mY+qE^F6K z1=YKw`-pNVnvaR9h!9@*^Ml>PH!R7aqzMG8biI^7&vOH0VqU>Y>JBY)j?E!Us2D*_ z`}qx$Aw198;ucd~eVru#!ZCKe`>mL26wFcMO zxbay$U zCAVE#Tmv%{pvOxYyP163FmF6`F7y_FB$3>DXdS#0V?dh>mCrJRE})#<^~MB6$B2zS zlZH-bjT}_OADEo)-^MXQcWB%wY1_HcU9?VI zCqm@C({z)V(}0-yx#3oPeA*f`4JU1GXrAU9F|s%RCitz&&h}0r-1$da#jifP!(mKM&5GvG zZ;xnc-|fJ4UmB~t)**H9^hAeD_|zuJ0Z;Q{sMs54^!7c@Qn%DdbkrRL58q;@Vyu2^ z)+2BlMR3ss_BfRLDw=&MHz!F}V9}{w}^Ve>n zk5i^)ZeWv*QyQmZppCeogJF96Vvo5NDU##Zs{!(wggh7P^;tm|mX{*q40uHaVXsnm z;P`{`dwTgyiCZ?5M zzkR7kT|sm8h5Ppxq;GD-A5QqN%vER>o?;@iKLf>C@%Xhxh-Fe~Nhd=RqP=i<=f%XT96 z)CHL8$JrAIpxv4wZ> zX9(IhO#HLi(mA-LSbz6oGjlN~n;9@u%+ zWi(V7)744DlQYJq;6Gj$OW}hi*TFAbx z>IoBoai6uXFg{NCHNByL10mSpr-TVLw;U7XYP^5S`Z<;onQ^GSrNw$brdqRiZL_q% ze!b!O(1;So)Ur&-QT+#DkI_nb2<~6_a{XAgse+d%5jnfMu01q4G-&8x;owj_t7VS; zZ1F%+39oYW`_%Po_BzS3(@R>SzKzdg1j*F(Je&?{<@t?D?&443Jlo95~lcHhD}8_ZJ}MWl>jbX5u53=B`*t5%aT z?17QKd3&$1W8kF2Rqyik8QR^`K&z!AW$>W!l$3nD9$ z7l&cx+s#n$8KD{1+U>e&w$+dJB5KY{iL+d^k4YKW7LimO40XTBjzDv9W3n)?cQK)R z#roHn6w@v#5ARUe2qm#qM`Po>mcF=Nj?S2_xp`{=neJqDWK@{HPJAlbfh}jg5vgqI zEKzt+(5rDiIi;UkeHw@`$;#lk;?V(a6-`4 zgrCqRdpMY-CQUSGoWZE!S9c-L+O^UP;S?Bt`uaW-u3c8c*i7yG>a&_zH!LBYe$cc1 z3VmnIE8qYKL%3?t_t5uB8;i3wFbt)bf(-ZVf`M$1Rc`*X#QtDF4y97)WnFb=pJrv) zJG-oW+-cLTQ`{ji)$Bj=9Sl@RX^==__2Z}aolk98RZi&*ij46IR5bOvy(HDL?st!c zi100vvFM)MS6&-*8-?3t2juitqdOy(%5ClMAXqUtSWeu;SX*04M2~P7!lD+F-*x@0 z#D!^w57~>Ceh=3q>i-!ufENdS`89gv;1oKl$E4{`MbDQqHq?^PZFH>H_?}T@vRWdk zc4DBB8B3X4&tF8?R_giMGKmpP|JKlUfh#TZ6TS<|zn`U6raXtylJ!Ri?wi$28hXace!*LmGmP5r(@;Siz(O@OyROY(>@*_Dq7AtjogjPubt zyQ#T5R?3ugcYg1hK>_c|sZ&p?6H7t;Cd6|<~ z&C&Vf75^~n7xQl#Zx72N|G{c?L29|PlU+~<27p_NL`|opZrdl@`v=uk8tRp2+UR;> zRAOQGtahu+2k109H#pLAv>K@UR_?d8g|h$N{Op^j6P2T+th_bWRryr4%>T?8Cw|_! zK@)a$@Pqv__4Sg7&WYS+y3M#F`K2g@FW{iC{IUV*yxVM#R{P?N=e|wA$;GQtBUpr# z&c|eWdUPVV%l-ugx+SKz>k9(b#*=>6pA)!MsKvk>awdO@KM7%~uRGt$l_k@ICYqLG zA?4IgZ=lwOHcSktimzc|uSzJ3LC9RY>C3fsu~;SBnST5E#l+m)g@E)3=qIHw_{fsP zntwm20BJm(rEnq(QVtt?*K*bpX3=!FFpQOlz5a=$8OQd&uBxicvYyiLAuZ2vk`Bf@ z6+tX*csX~j5dDBD41)Ln$Bil0p;WP?sVJM7sfPkfgzdR@NmZ6LtV|Ew}B?73^^H#)2PsowwK3x20x+ zlDb+uAKctllF^qpeJR1OVq)qesIQpPn^?}q?hMaTc-BM6;CuwTIxZr#&Z;j1TM z0!D}bq~_%g7q0%CZhi>PUhd$lieH;RC9E9J_k)rl_z!7Qn}qz_rC3rhp`^#L_5c>D z4cIwk`MbTrPKpRyjVQr*_RC~jOQClK znKxxfP#;CAz6S5{V+Dblf`XidVQm*sN1kM#&jfxMShhanKE;Iw=&18cclpJP7S!Zs z%2hkUVMf?nEsBC+G`n+Zv$cOm_jDuGvr{N?JmVb+}LV(NEf{ifpW2dZ8E*i zE@yM=&6=sH{mM5fINkj0XjyQpVw`PantZP~#{%|AX(=hjg7I`V$Jgd{IUO-oVgP&y zW7@(9Gc;!SS+Xlv#6`sjG-Bx0HL#UnZ_g^c$4coG#Uq`=t}Yz+{#q8+#wLAuRja>I z9SwG@Z@e~l-ShV(V#x+D-4kg#@;1Ak?Ck71q?yzFARxmjQ(ZV1_wHV{&NsMMTRlMz zXAF@aMCaQyM9BK7m6<M{ zbCXxM@%%&F?K56C9I4y3YNhvtWyMJ039TVXvmnaLok_2s5~No396U)6 zKy!^ONccJKvQLH-yu^R=#1KZmHhzil0vVukp&pq`3gdfI-DdX*a)bLTnlnGv1wMMf zzBOma&W^RMzf_$?b*~2cu{QP6prPWIX=S{-ZBwy*Y0ExRDf$hi>-Pm+Z(Fgkf!^%R zse<;agK+`}zu6Qf*d1Ssy{T);*X1%h7tl{ikNwX zS#@J$e(-6)!eua;@BogujIw6ag6LQxv6o6kA)|&QSNqaiq1M63Y{vZ~$BN1^+bb{! z@A35LK~Nm>LB=N-17uqZZvw5j%y@s46#%J`*3sdT9wdE8tE7>)%KHxUBa)EIA|h)^ zHxXMveDTgsE#`iUiwjYBXmH~g6|!uJDsTUBSh zwDt59R-A5yPU3!Z^YVit(9*P7`P%f56y>(Mok@m%O_Pb2XJ~slGy(+}wDTQcWV;+b zFspCeUH+AWIxWKv^blIRmr>g{oBfFUJ_BHluk0$oNkQ2;;x$KD4ZBm}fWnxcIQvsR z>$Ru;q({B9^>Lp?JKx#gPW0YOR&QknD4(r-8Ka(NVnGN`lx^u-N5)uoUcD>m1GM2$ zg`LR{cfvJxDV+t@AeK9iIHzn~e-!d!li=jgsI%?Z_)X_qjB9Un4EOW2TQ!Un?6gM! zt;p1|T3`gH!P?ucN zBm&KHuG^UkP2p9yNn22ZetVmBKH6A3l|6v2089}zgOrsb5w?;?rZv2ErG63|o8_Dy z;gX+AECm7zqHWn++q9^wSbQ)3Pe5D}hWn$YPK!sJpE{Gv>w&z~8($CrdN_PY=m}LAk?6r}NV5*= z%+lI{LC_eP+CdF#aZ}nk+?Jt^Sl|~|!MJhgkB_1Kl|Q`t7n=piQz@q!h&BW1ckt@N z3>W9s$#hmy%XuN^vUzrVP!v*7*&vp+xkOwykWN1>FRH>oKze`u&md*FPe`IbI_HJ_ z!Zy7T4PaE+7o9g61^B)PPPlx6#~FsA3}#>S4Y!uFrwO4h+Ml|VufEcZxo)paf9IdH zwRB8JIHWIkr(V-^-NF)#Er=@6QctR6QO5hKE&p<82kkSG2R=+LuOXYp9tsFcLc^qubH;7M_+xEtj1D2% z*};&VoBt2{Z;GfD698>|GlX1M9%e>!{B-1?fj!m1@tI-_V(pE1C&V-o$1ZgfT3NAq zV3fmV!0ZvR#oimutH4Uz)_ zC@b5`<1|f|#Tf9#^9Udwk(5G7Zij>1c)x?pTFAB%i9b566ENr|DnjsvQz^=&1`KSY%n{OmyXtK4A9Meg)4F*aSnb)RTbrUoinClDsHr7yy zRQsg=c9B;wTrV#-*7;kU(VnAEM5ew2;JrJ+;!aAZNCfR^RvuB-j7)2$79|@&MOk5O zXH#PBY{dLj4jUjbFW{oV0lcS5pYJxl*xS(}th(lIilP<9zKo3*mN|urGGug_f}Jr{ zFK`s~NxiQVi(G`5r;rgax%1L{FBx+!_h#b2qJVeu$n=*_9StA647Zz@hfW`YmaSfV zc21quK=^hK(y#qpj=A~yQ|pSNQ!=ACaIN9PLL8&Ikmo6xdt~ud!pyPSA(?ZF(p}Q0 zs{+a8uCLFmV1Tgw8i7=BDAu)7KFy@0WL;LLZby7O5iMw={Kby3N}ehxgeL`rr}hsk zsg6g*e%!l-CO~(v;73oozbZsjjeU#TbHGFB0gqg z64j78_BuhfeHfn0v8WX%mD?O1|mWLlp5Nym=T~aoFnTREHiyO1e%< zla;lOy8|SyhRE78D z-(n}t)OJw%N(qp_0^|5=Xw49#obhs_)bsy>+VsM^Sri@%u%(Y3$SWrm?CxYqYU}pP zS$MAgkr5(NjAivtmHQsTxP2LGegiq%vcff7i4_goLW~-|Fa`uQz&!lsAKp1HTSMhnWryJnH(Y2G(Ecrn>SI^4=uf9 zcyPM-9x*kJTkG9|EbJauR-DT!#E<7@8WbG?2dG`Fb5P55k$wic=_AKM#-eiIn@;wP znnGOoEC4mpV^ZlYN(3EL{>2WIdZwb_Eujvv47=lDwc>Oqe#<~`d~$< zsp;}?5*1(+w7F+T%f7lAleq^a4)o1S#Mr7ZJ5|GGoP^~!rdZO%=|%h zcpWWpqTXK{Cen?>xN)s{%x_YW)%Km6bH(Z%E4EK@u9`RT^NXOf%{M1#gvY-!t|Z2B z0%Y2^8vfeCRk~2M?8&x&CLV6r^>WY%E#McE%-}2bU&^SIB2_zDEHc=N*SBolEnLy?pa9 zb|XyRw~!@5$`bwVe|w`>asPz~q_gA-60 zV5df4Maydwjic3BNec=4&7FhUR+};%8s$E26{V2aZwV&` z$BI}T&-YBmaXXRGsSr=}m?|ZqmjF>68KlhI#KXlESb-@8!;lo;M?=AbJMIS$_frN2 z7@Nt?FSf$?7x}Bn4~GM<(*Y${D2$|g4D2E`ljdhcCJuNdk_w}MfP#qp2M{BhS%ynu zX3av~SoZX38$kGUEDgzN>)3wgi;Zg0JE&I0-J>K#d6=i3CK*M5d90qk4S%L74NHc{ zZJC!B5i2=*kVC&?0MtAZ!ETKIaxOlkzJVqrI-=7n(@DJIQ~uM&{P-CF--5ndNB@>1 z>Nc_gJns&s6WL0iCELorsg9|q-MGry1m(5r65qi;X>)z)I~~9^*be?TgtE3X#VqV3 zbO%)`L<2QaXkZF5bZTM8BWUonye>k`>pym?qFSLF zPSja#%s1`6;|{LU9Q%GkYBydCOg>dO*b))xds~Xq#F0%zl!(_2=kB82zHQ6Tm4Qna z7CeQv$vVp!4xS!>+p2vEMx%)iKOL93g z^>7t*V}BBaEsYJ_E5Or~r<}EN(`*j~1 z+X|YLC^&${zoRo8%zdDsKnTEnZ@Mu(pkj?~$rpe_k*uqDP0N|&-@vN8P|vr-<}#_A8J@Pan$S!@HSJ0lsOnIa)KlP$e_nZO zZ9LvDG2(*+8C^$9kB4HcQ!wDaEN;itD+9JVYroMUIPUy}f~T0qD#GN$=|-JbNqU&f zghRyO0NR>~>Cs$Oo=jROIJZWbFF{u)rVOk3?$T;=pZVg{%-S=Uud)4R{<8YZ3v`&t zJGFb+PQyNgY&#_O^k6-Obttnm|G*r;xuFp_TDL0d-~@7>a?v4g|2Hu3<^u}Cf6L<} z{vBso`wPs!e@!*ovfwuP59saRGhE*MTPGL!?>NgZ|HmKE*8Pwy8$KDVp<7SyHX1JG zxaY6n6qk4pw0JLH!ETy>59OzjfwU(>=A3RF*}pQB??S1PxgjV@jq>F9{9%gv*3{wI z$^|$GHniWc6QQ6TD9Zo^v%wWjK#u?Vk%u9C-MV40Oe)C5?iI!C(Xu$`kb-40xm~eLQwuU=?&TzYoWs(63a- zwxmLBD$kR7$)K`oxLiCjDjU?YIbu8@7yMR{i6br0{S7EE?{}Y3!a_rc%H39iiuV6L zyIiUEVsJ`ThDr346;ee3?NMbPbW(L6C;i%)`Qz%$>TnC%4uJE2zCAXYa4@~f5Ph92 zy#J$3V{=V_xZ-qNO!(uZNLzoWIOS*^ zQ$qqW#XAmEaL%O>3KR56O1frV#d{@i#4Iu@^#;}!wIB-#8XQn$d;0xYAcecDj0pIQNCiEl5(Vk=OZPCp1iu+JF#>aP!AK>2YCa|}q8Ni4q556+^!ek~EN ziL~V(F2V!u=RLgKdA}x|cJpyq(wh=Q00JTD*<@pv?ghiqU{ERwWR!i<>Yv07#}|>? zE1!z=Gt&^oe}4(J9DcnH)gv}+0mnUFf$eWk?(?|bMr2J1HtQM}=C~YcKMPF!Oir2^ zzO&y;{ckNm&qjQ?GnLm-JwCwT!=jo;| zKFjFq=2_NhLb(6W!MbHDMKS-s6VT)zJu05bk)53Mg$)siCroI9JusZVN{gXSl}x)t zm9fV#@ZnBPX*F5Z!50ZTyR|s8Rt>C4u>*Y&yaeJ+wEJ?%IJWfl>+fDU=co63mHMuy z@Re|KyHeW`5oT|q9QMGM&G#!sRw$6uXar3Z(+Sp-(ovJ%1)Dbefr#H@koVq6c)t_L zyp7DI-yx1bHtw8lRpRpDqi#F@KmQ(h`CluJ3(U7{zv8Bmwsq+2n=D>|DeVvB5a-hMN@>kxS_! zw*DPqb_ds6ImwP$t{W+;y1+Cl0X)VUpLNUksf}T`7^Is@8(%P$4AAGlt{blhz!MK~YCzmn3A-=AEmEn0uX!GIw|i912e7wIZ6a)lXso{3XuYS1Zl7rvr} z_o9KGx5Jc-Z9Q=?yC@G`YqKWAdA|;3zg77_%n?KM)!n$8iCbB#u1tecf4AGvgr1ul z>d@Mt%`FhXY(@f-hU^HT7b(3c7tDITM0m!8$Xe#(@XLd5+EvirqBsk*q@B&~QP|-U z2UlfMLk-wfE)G{M3A2tu@~t^|D*{$?w#$!eaPv*>eTfiluKzfZD=BfZr;k#?bwBsW<0d1EH>zFRpFp@?9#0;5t(+s%hk>l*HG^n-KHAK?@+f8+D;3bgXm zksIOdXJ0&p++GVHN7PDOL)K!-u?C5XjAj{OfOsSLj}hs~R>xD8vE(CU?uUYLZ>FQj zL3CwuI_st;u!AXmxOwXttVJ}~oxhhm$I0M4dtvr-7SX&IoIZy9+vL>_W_Z4 zkSO|5GkS*{DS4drC%3d<+}=!y5}FWhs|z|buJ^MJt96v<%v?;g7h_4rkx>L^WdTk$ zu)vhQ?T~pL&CGnjeFn&5PEoMIc*ZAf$4_?Zb^(ae*YA7QWoLKyvxMtE;kBt{1Gp`^ zx_~p3w?R`!Yw>E;ceG-Y8x1~LVkP9?oBNTpjU`P#emuUg(;w|+YCM=B_4+3+8nos5 z$0OvAsgtg}?JPS$>?9n`Mf2pFlQf=qYC=Md@`}aZIeqmNEWCf~1U}X~F)9u<#8OY? zlg)D8`}(3z9qQ$JLuS1P=TrxhVp568svL=*W$6f#C@7z$(4WT^UzTs*`qrFkGDh0m zx4D2mC6j)AQj%PHbRnJ~i-{4MDKs;Vi-0n(^t|awXv@P%y*OxZpavl&=d9F`eX zA$Ve(2x{44KUXm1RYkV}=L>joZ4bvNN@2i)S2c5_xl5;}8Iz||V_+$3nWnAm{N87J zQp#?C3?Ol@-4-j1;gUmIV0vfToXMt1K`w40)nE~GqI;RFLX+g#X3a-y2nibco*Yj_grRas02?_|S zC$w?4lc8nLBR{M81w2O%?(UBDqZM-x%S}%9{vHykx*&07@Md*8)`RBME3V3wEKr35 zt(eeiHMSFIa8yGj4Ovn4MDy><^|p zn9w{+qAcXOiZy92#vI&JC);&I>+b?KRBXY9PJ>w{D_Z&=OQeM9QSsZ4Yy&>ZaXrZn z7|`T(8RX}i-fci+4{$Yb@>%_mEb+-Pv8-c?=~V4_(f!uQl;N_G6SXtC7wkq z5T%H5=wt5ea`YV@zHd}CXMqx(IJ+{M$x-FP_wD+=3pa30@YE~=grC0PECra#;XKTQ zhayrxNq0uY_V?C2prAQ4{f~pnSJ6-ZF-W`i7bqrCo7RK>a2>yAYYAz^oOvbDrYA5uz1)*)_FR7>j)gK8nUB?F;K9`cuUy-oUZ48P%_kGf0QNk2bE~ zr-crFb>6K7(dg+7)gqoN?m$&qJUF?2AxMGCli*XayL}7Plx>&El{H=H>S<~n7w18b zsj0X2dh2qE?3j(>{QRt8=xpsLj3CI2&T45QoYA(l&Q6NeH)U60SY%RPtb)Vwg5H%$ z7v2kP?}M%}q-zp?&*BYjl@C6(kLUm<0jqk#TUs=wGQ&>cfTcJaNWq5mRu3^M5RmSW?o>&o z1f)wPm6Yz1kOt}Q?r!+!zeb*H@Pmf zA8cr%bV@cMkqj_6Y-k=xuyK|n9Lvee)y}G#+(@72x4*A&l|LkEorL?#mQ4;$7)4O`O0X~){m}$UE{xjaM^ujLDW}G8*QF%`L&VP z_SD{862npLD?3p*6FXmyvmxT@uXxw~UPqN0H5jmMLdT?Dj%IIp4q1y0m5G>an;@ z++MKqu)iSo?#QPkx+4INtd7r)a5POUd!~8qNc5S^b(zfthlW0OKiuJjQ*?sC4O&%* zJNryGm-pL?2wmI(egf2u<+S|l2c!bfk#WUwf{)$QA6cyF8T6o{!>=#fd66_3eYnDF zRH`VN(3!0@A`JxoXT|Wa3m5ItIsoD+u`#ffv4M2*3YA3t>4J5M6L&IhU@!^C4JcVI zp`d2nD?d*B#0q=pjd+rfZu0b$Vdd6I%M4(*H>TI>R$Us1xOZXr)h4I?G98@9(EzgU zciZS6rr!kIj>sh)6wg~tiDo`BWl|wtZ(kLYH^7UVYB@+l?$-0Y`p1ZvCKh+6&vLW} z+e5{4O63{duDYE~8O}^DlmP*@ex$=8^TrmuXY~Xi)Nqp7(KLxqfb93QAwHs1V}g%N z26JQl7wNEQ2ZS9`Zrd=x=Pkel8tdV`sSi+uB;)k$Q_x z@7Jr#klDgM0Zm0Dw=Nw+z`VqMfeWv|1Xi!vdtgO;q4GEEDnoN?i4#|=@G^C$Mp7=2 zUJ#Q_rLR$U7QepX8c`nHUJ>1}!4iHjJwm`~dCaTdrk>=MWefPzY24z(BNtsquzSX* zdnv0`3{#rH>VCmRU=*B%VK(#^^-9;;`g-QqgRIC9=ZuUM7lAPQV=_+5D4MuP4~2vo z7^(~TT^D4*M!n_^w;EK~=B$)Cut2fgTBaLqZkwk+U>2{TYgkRtMS#59-Q_^7t$_2W zvXds+QD=vHH0>f?uh%am1hQzGK8k0XN-MmE_4b7@IXq-G_XVGWaqB~ zsO+BW$aj$kt=R|@5Zb^;gqgxE-TdRy!0q?lin~ zJaH!hlJPk*WBqOzALdmO_S)aSH{X7umy`h#*E=8<=5_(q=?@wmy&4G_fsfkvL&f1S zqrnMq#o>T>^Eb1>$lT2BAywb^bIL9BDDFI?3xaI=Q>L{gOWVZ;D3OXyv7i|!=^Re# z9(AWr)PP{wVtU_!yTGvaa|M|pG5$*3iWFoWpT-3bm%2y`PxH^V zFc4Z?9V@#iyT0qev2S`9n2v+PVIp8uYp&*CNLP8n{xfxRZI=s%xciawMZp;DkKplf z4Hs8-Cc+ap$tjPS_z{$40dbsxKqp>(e0-&O>V_N$yW0n)oIt!)-H?kv$Dlq3o9e=0 zuWo%z51mSG?0qv{_jnny+t@MV^Nm5J-Z)ly;GII3Qe&v7$D2!!3 z>+5e0U2VjQtWs>nmC#BhlX7R=5+++KJLBf-%k_?+0mB%XJt zTOMb|*<%5O!RNl89@5G1tqrC=7oWT?XP&ky`G*$Hh5kKM961}Xcr=q$mq5TIHidqA zH$e57$y-+&E(i7~U_s-SyU-v+zq{%7JKyC7pc8taoCH;p?|TLuO(;hE+}7Mo`iaG$ zgGPM&L6;ug1SseDV~=k`r;BdQ(O52&__m@VOj@#gw0+eh{3)u@z1vGe-ZmuckbWP? zNXPJsNiIwMETHnj)*S9f)c(&GUV_6=|G+>{uw2L7?99v$#~q`uU%zJOKmKW;G{$`}XZ$EiH*Kq8{8|2w?^~3UOS?Gq~25shXhI8fEX`@S+&ogYhP;ZLQwd z5A8``hVM#6Zk@PYX{N%C(dfWh%iV3q9F69T3K!X%YsGOLZ`4o0onDigo{&ex37p*& zp!91|uZYB{jFN(*9SH|Ok*!s7MYX+-#+_FQ=Q|4Q((NDt3d3qaobGkB_ixYz4H;gv zJAcNj&*q)b2Bhzdc%3>@=8hegeS)ZH?>0G4+gIlv1LM%G=Gr#8r~$+(Vx^;JuM(c>DB_=P(5OqRSGD<2#c;Xh z%l+`DV2NNdbFITrZ`YeDa7j!|wqoK&hfX6>G83gTqX*!cs3VxQD@@9XE!ZE+?7Q~> z1v}{HOyKIA{EPHB{5MQssJLzcce=dRj;E z;AJuN3+d_-%}z3?l|{tFkRmof${BhSHJ+TDoE_i<1le>u_$CqZIkJLbgUMjtd$5yW z)@}N9`zU~fBLEC_!Wh)mW{Tj2ZsK{0wv15N-8;Piy03T8y)@$}$qRv%8B~*H92Tt5 z-T|G`UXT#coz6TqD&mHYqv+zUv4l9g*WeW9ACf@U#qStuN*0Brs*F?TOYBVAdX_AP z#h+?wtnD7dbPtrZVV}p3ghQB_+6dGI;fZy-c%6Wyxr{O^HX<<6l3V2Kd7>NtSvFGN z0X&~aU5{37yUn$qokZlru>VfDqv4T}g`q+QRtvkG23Q4F44GVUi(X}KP5N*VQ7 zCs`Pv;!pJH;B7-wo&Q^x52M1$&rD>j&3-bRxp)hXm5_2-AgvPc-Jc*PeX$y%mOL{# zhYy{E`z|*(F5NF734Uk6XC+e}PBz61=+I=^ts%F8cdVtxiE zlfCCSLJ{XYPsdKJ%{HD!@t=@*;ZVFtav@-dYv1263oSkchb}s`vZ7ikJ+J_I`SNA9 z?TRv3(AXc$RGQ@>o&{jb@N;a8;tf~;{Q$=gYN@CTRSR7y17MB-RwD-a$}l|6el}9y zV7SO4=>FwRyo;K&(981GqHk_vJGJqx6bpqd=U#d`e?wDKlvxTCEO1ZO&s&`(}V?lF?R_x#O|_-ee+s9y6*Q)b`y z?=`_D#*dUM7zhCnbAjVp``Dd39z`5UJ6uXiM$~1ym#@BaU-1F4UVi`n zWegnh>HUqV?(Z+sx_9hG%8BgTnp{1oIRiNVrO#O(B9T6a2N|FdqeU^X@7BwJn%~PgV&e)~!e*}1P(~=dq zD5~<<2`4mGrtmkkwqE7n;DC%36wsP*4tveO>W4K1h7uMwHg$D%7oD7(P!C@f3BtLS zDxZRV+4EglS*6)zhFUrI!NI{D8XA(YMuJ=+;2G?N;UBD4hn3)s`MHWDDx}RU_82(3 z_&ZHY%gM>T*M(yu^uvwIqZ;rU5YH<3?`81r7#@BlX6Y%G_M$6PC8d{dnQ=AR?Q45+ zGg!2NHAyZ+lPEBF0^=}DY;3)a$vPx@fNcl+>p_q5ay}Wp9nfPd(tybo82-S`E%jw_ zkdF2A+!PQH03WcrY|WqWB6Z=BhVr{nO8Va^nhe4t9>fHt&_WlD|7q;rJ9UgrDpuC? zn%DWt^zkmcNh@cRck21Xa0_Pv>^zLAkcuZIfQ{OU0&$#HN>+V5w=ArE5; zqrswv$$nh}mVO(&!U(Qh4Sp+GSzJCR{NdC-aF2qUN8&te0B}tT1p|%XurROOTo$mS z(eM2F#QAum;dz!C8C);yNVSCs55~KeA(04_;=y>I8RLJO5~Q8?lTCW7I|#|T21@P{M+2u{2MCos5n zrz)7nDEWSyODF>2vdP83fA0%G3#rfbz?&xF^f@gH;0`sgVaRRwg`iL6&;JSCm{eka zYW3hI=jzXWOJEeldT2Kd4Ji+yEM}yK+vLr$=2lJG3nJnW^7$UjFN)cPkc>KfsT=_b zqJcRY)#rYmt^7l+!85iuMFtK_>+9zHhw}+XY6ZBHrw+I-2&&!m>HZZGcE9Xw#-E#k z0;drGu0RP!@H5A-EBP88p70u2(R{L+@1TUFB!bgo(k1X2ru-eC8>u9+`d%!w6Vir$ zXbhoYaoE%m2_%=&)1$6D-o%1!gccu)JNazq)*-lnN|@n9QSR#qlX-_X?+0zaAfv=V#pQLn6EG#H#xs|KQz>YBJ zO&>VnQKFQLfkB>u>28*$(cnyFYipaBn27oq9^L@9vBYAsczkR15YN`Y>XcT z=0=gc4$R6K_>gczx*}?5cpn&>oE&C2r3u-L@WA`$&b@m+si~74) z!^6Yi>h?J?(PMGZ2u@YyjNX`Wd_26DcZ#6TEFyvsawD+i%1&(`9VLg-Rp<+2*3s$F z8h9V3fUO)H1z@e_C7nXWz_3>D@a-ZF2J58`u$$UunZ0eN|*$&Fhs}P!I+e3`>`vpMTb6=4PDGFmV*~>??9_ z6?yr`U}g$_OOPpmL6^65%5*{0gTHA367ur8wT?4{z6gHHtHAl5o&7O5`1%&bq--CS zvqOI3~{e}K6+r77&$qqRpk*I8~Xw);@-oD1>B$2ehxy@JfRq40U`Nk%0aT}Zbp2B^&0@%Dzep|2jyZwZG2|gnSHZWw* zo^V9KnL-UYA}kGX0z*vo>gqgUuZ~YlJQ5K>2iw-}-rgM76UVKM9wRo$GN8;rj#k(M zU^Hp6et<=3nhBQ+XCd4Rq&amh=r47F9lhfhl0ldiA>srpm2LnFe7sH6_}t#9Yq%G-+d7YI`Eg^qQI@ndKX6 z!otGY+6~wcn0?;ArvwvAxEM(KFAF|>iV1#pXt%hzqc%4!p@0bhQ&jN31pB>6EP{vQ ztEF%|vcZEKSMMxdDd zT`l&X|5J=wT2MBy$>~YKWm! zy#HjC%()?cB!)ypD*(3uJd``>l9E@yq^E!KrU-!Sujji9Ev@TB=^A@bSb_JiU!_q+ zoBo&ixc>;|4~rD_V{BX)s)(-R(>3tx{2OuG)3q4P?o^@E0k+GOftM2 z;lop&eK!2ptvs^Hn9&tkRjw|G{Rrzc(1FYV3IAXg8rcliwDVAdx?|w5htt2zegn3Y zVD)(D?YO%-(hQE35l~@YHA}!P{E$0CaF5poUFxU+dP}>yyXPIY&RhbV9uT0g$r~?@ z=M%|v{&>ujce=u5_vKyFcVESfLUFqw9Db?l@=&b!hfbmR*t;z*R&4Pu`Tnurh-Mw* zNl!TH{rr;c0&$tKXUu<;%$BsJ+}FZJqO1})3m@b{&U$)!dWC|Y6wCriT+6_D4*dJ7 zmIrdp>_>!#X%jKvuBbzPJZtU&(F+_*FwT`DJQiG#A=Zb0eec6kFf4|3wSREXqXOfq zznG0x%(jEQW%{e)%|q#zJ}Q1C{v;<|J(iWwX8SAC5y z)Gg!qXPK}|nSF?lr+|8q)vc|yH3_nPfR8j;iJ#Gif`y|ND{-d*t6Tq=4l`tC?^9Cr zL-J&NR2rk~)F-+a3fFgL`Aqg#F?vn=s{b48K_wk)v6~#;ugQTHQ(8#HOexvX%QDvYp%iXE!x-?p zMoTx&9!As7z5>im_tXq-AggTiGT=5BE?#6?u<+b}0FC0TDpEG3vOokG_dSFa4s{J+ zIp9$Y`8m$Tix(kYfwwI%q5w@W4|3B#oUFT1e_asSin?xK>D<3aIU4&N_`HsGUTc+}CVB6H_jcWf8u z-NlmSp%A9@nNIuW1V8SRWtL|D8LuLfXn-Jz!O7 zuAe3Q-FW*Bwb`ujBc^L3kNbn7Abb1Ve3kI4d2V-iH!y?dmfuM-A(B6}v0)3Lmiqer z`-edOLri$0fO>+jsVaI5I zpPr7CNCt*Juu=Q~X&tP%PoF-?s;Ywf;G?vjsD_FEjg<1ZvHSJ#(?hqcYmTJ?Y5W6K zZQYVu%EmKOx#?`buD&(E{8nLW9< zVZB0Xt~%HCoM~>)nwty&1EPR{fD0HH@@i_*P*MTWmuK7;@a7HbaBr<0e9ut`aIrbv z2q`K8G4^FqBqb%yTXQ!xH9?E0W_Ri{>*apLt{71B%q1t>8vLg?nUE`Q+J1q92i6q4 zm5y)nG=L~U-UK$UfKA<_r_U#JOM?WIHsj1G``$L z{#AlA*HfC2G8lXJEFjA+79xZ~M0TPB2v$BlX*bfBMwVO2_{Q}EQ(XnK?$+b+z z;;$Y@yS-|Z*0dVp3wCRd&jbv%iav}&X8Mp_P0^(%qw6{7_ zbS+o zh>LFAZ3q?DWy*b|p>a##be{@pWg}Uq*qE4KZEfJAhcYuWL&qll1;u-R zp5YA;OC$dEiHUdM1sKBabYH|5Vl9WWl#jX^r$=-9_Pg^K*z0g^ zuK$)`=mdZn;6SJsGyw_DGwky6CU<-a^UtHcAs0+=?OHVi8u&6Lps@Y@F99u3D#=@A zYk&kCAzt2q{d`k%GeX6zu7b1YlOGOSdVp8HfxI0yBI1t=l{GIfZ--Gn*r2l)NeT5| z_Y_;z{Y&FUa$DQ{ucTY*Z;clHe{Zz-ul^GOAAHz;GYjFB#N<`#2TPbQUc69PnVO!K zG&jez8@^_^Gt};Z%i&!%kGK!0kFJjJzy<->#Q?n1GX_(>P7+icncjevBrG!8Q%etP z-Q&tL!2dSF!~fI#dV}YWH~fBc+V}6ZqoZ%VhPzoKC4rxT#DBnp{)P~%mtXZwC?!w{ zo&Do3I-lZkTSKW|u>2h>Ubika+@s<@;m+9OS|5{&D#Z0zm_V zr#g1&@&>_QgI~}hB7uTJTjq08@J46L1U-4H2*A-@oO6b&TY9;bzfqODriNesfioY{3Gz9Mg>i=1rF}E{5 zAegt82X5pmw*uPQj8Qy&$dzaG57;QdM<@_)6rr@#&dCiaWmH`o~IDuviE zP|MKpTiw12Xb0pBT_~QzTey4o?($G!`>W)>CCH;HzsynAW(Zw>1;dtyasOR&t{jGomFiv zTcib3UWS!{+M(7is~C>nxNLh?)3H)fC(UVMk;)AI})(ztzztOM=%6=VlK-y8GK3G@F>1 zm?g6X{~zHC9VXX@T_PKb%p{L*_8k>$jW@J5n`!w*5v*lTpzz3!a~cD8vYt?^?`|^K z?|9M>aoF}#^qw8X3Xh(dlTnl(G240AnQrbvM;6S(S_o~nA1c%JLdLmy3h#V9T0uQmP@Oi|y`)@_ozlD#i&~c}J&SC;QTgoUD-qqE zCv9Qs207YZE+D-rZfB>n?EpiyM6oq%MZ*sL4LgXWUyIUIwUxU1>SFiX zowPC3Xnm&V1_%V;ioTgeG-&^8skJx&HGfgV2afuuhL-M7N|cWx`^C3l03)dkU|$=v-$ke&-%8{@>$RPi1(Ov_1n)g8uq#^IP8U_ zk7S=uCE>p|=tdW!cS5j27KoI(TP5{PP24qa(A=MWTZRRcV+4O9?@2U}yf{-E=^dKv zwUxMAgzg^HudlbI+a!HFSePWWqyQy=-r@r@G)AkoBjqsJGJM@Ui! zR}QpwbatT(W)@p;1jx0jOW&gsO~hsf7O?K$=MlB<(+HR&xWQq8EgBGOV6EaOLZ$9} z!l!(;ixP=E2_ z?(Q!3)u`~_P^kkyyR**)&qk;}S&v1ynz*zJ$8!Bw`}PW1eY6#|_BpM%V;Xg{(Z{em zysj)u=?LH3d$LpA_~T;3mhS-*mG5#qR*Q`__TsPEcKm0mR+m=D5<1ks&y+HZ-s-62 z)2^q<)}7-IAmwqb8(K4KcZvJ*%q61Kp3OJhrT*h1yKL(TEK<%-Kg$Cp+4cx4OO0NS zxIsDm^fN_t;hOHD@!G~h3H=rS#jex>h;IedmG2>aSIT10b(rjP{&DJ5Q;M#-<5X-? zUn?59-Tf4h@n-(R%WwMhc%L+2uXG$1&JBBB_FbXj=Xw{}&R0KrUbOh^$HH~6Ai(5??pedr_^_WMyX1%^sGw|*1!?u9LHGvP} zNz=s^Oxu`PiM<;8U4z8wD<}j^c~6d8J#yk?S+Y&1`k0%oL^`BV$F<|ZPQznCRh-S9 z3Iauf6oKx9(w9HC7%HC}zD+1Qs(+4cqWVNolmeUlATlI{xNpgbIg)eBc*r)1;zCuH z%aBNqO=PEmQMVR7gkoSjA-djr_%HzSD@!Y@th81Hz~0{)k>e|JKlJM2N~Q7+BuiO4 zX}_M{^ReO#vtpEdS^11SmirJvHALfGLTOdm1jsT-s5KY~TOQ*rTJaUuWaX_TrfAtO z9&p$@oLW{KtYS2^p9x8i-hUNC2Gx0{UA%FAoene8{1-8U!9rd2S#SurOSMY!MusOa z&6S~YuK)Mj^q3Gh=#oFDUa;d(+>{CJs2{l*FCu-S%N$9_I>`lR;oXy}XQsKiRI_ir z$|F-MxXtkYd(cs3>^u~mNW~FCBl8=0Uv!!AKig=@N@8bxaNyg%^+1|mncFQkN4|xl zK-^I_A3K;KJzma{{F{pPqf4X`Cr|#gnVsl4^UdxB<8EiZOQt6?d!l2F!EOyVNITxT zU<5u>vI&}tcknn$STnI!$vds6kX9HJb(gF4=`)s_&{HwoB04(A0P=qAlB}( zH_`yRD+@pjc>lsb?@4a<7Z*uOZ4ggzjJ^65!DQh-XxAEr6T!OB)OZ58vY4bKYvui? zFikfmrsaorgZ)BMcxrn3bbg;26)-G{eI*zx@FeSjY66=6HkA24H5en*iyaob@8dsw z^(%(U3S!>mPM^B|V)r-5+Rs6{FOY39CF1Z)5>{Z5nCUml%ad72_s@2j39m>-v$r0D zoF;>a!<2M)cNg&6bBy|Jq`oVvuU@?=Q8YFkD)0w@&~l>Y;+C~uette=Au#!1V`GD9 z?Ey{((&Eh#4%S2i%zyIVmjWKbnmf3jV{KnQ#>FAv&*1#fQE(>PY7@bsMPaNA_~CIK+mAHHQNf*Fd9(WTH4y6!nu0s(j_2UKld1c zL5qobG*YW|ax(kALzbaO_I;pR;7xtMaW>RVS-th`rHn3?d_wy?0sH;Vu8L4ALRgRD~1}&G^XvUuJP)(m*F28WqBivx54UO$7zfT)V1}Q%^7nj&WcA;UN5pE3B$IuWQ!TK+xTO}@$VV6t` z+tBv&%^Kd)Kd`Vg(R^{D5;B%pA`)0)lSVSMt}cdr>@Px~76BH~GFuaTtd^(G9Eper z4tpwud`M{Mru!~%?A<{fxiz6z0kN~ItA}R3&B0d$xz?o>fv{5T6ncYH8P^!)`X_q`DIR=ed0fB(49O769Qw09FWT z?EYM5z-?Z$@-6FKA)_7hwj$m=yxGU|zbU2~eY3sy^r)5H8}r{NkF+^~tPM zl{u6&ehl@4xjPuHP06ALxYtI^^t<*JNO^-LRyXAHY^}bO7t+8pTFTHqlNm4>DyL`& zqu(FTaO*u19H^!$M)7hTLUSsS)EYUZ4r$YbmQAZoe&v6i(W?xPi12~Rv{RI#{L7BG z-_1UWKa?0V5lQ|lf4Oh9pc*|scD5RbWYOnzJLLuHX*LHG`p;gy@{5mGFW&)n>2P<& z_%!Czr`o2_2U%+#o<()4cH5gwhM!)V^(_UW6s%!&<^Q;#Cy$T5b;MgXX@>kBRYj1DAT@6ME|3>CT znsMO&MA(QSjqy;B-)B#mPx zb8uxlnSp-uHNebm1v0rM96Mk14X0+ZueHL%Q{tfd8Or*irMRWJ84J=SfQ)>6eGzfW zB#!YjQLXf%Yk#R@7Hz-$rNe|;3dB}iTwEUB-XP~72a>MCfE9ta6w;tDp9I;i^ZtbQ z_Cl982Y*;8*-|uSF1kVmyh5uBL|#_l*iT&XakGgWhJ1wh`228 zfJ(?X*y{RMuK7b_oYfiOTv%QK^khYhFJU%&b*zOdyu+1c)4UUd(1|d|vCl&$bl`FLx zj2!^136Rc>SG(W2dv_zt?F8!$sD5T!qZ@n~DtrK&q7Hdapzhqsn>QiOvsb*3Bx>7{50EfH)hcigL?m3p(ZTWYW)?w!=L0jt zs9AI2_=Mifo%(-<_D$O+W*b7LZoMoUu5rP7`wN^tD8AB*(S^mmxSrC)W+DQFPxc-v z1N)x68FJOFKe#6gNpkIM4RWqoRm`e3F*78GELsg(ODW zzZ1p$h*-QJQG+}U?de}M9U?4%1p$eIQod1Wab|6;Fob;~0aspVC8F@gp{SU&$a+Cg z1-f?o^=b?UP+9}Egb;kF=ZcECT6LGfu)E6R(vA7yVwQn{fgN(uw4SeB3oRDAzk;Yx zq2?a7OdAoix)|97DKNK(XMOPTd-Ju&}DCS%IcdFw1=ZJeR7_@iQCqo zVd1fQq=1Zr-lw_;j!quv%IWR>B~4mqO7fEtYXFH zDi?u-4GIdv*9~v@afvc2{%_Qx{by6+tpC9*O7A1&{OU-l18B6N2$+BawYAH<;T-EW%6EVS@XHgdB{d0J zkD}rz?%Ap{y=O3(*(o(6Ll*>QvzG4FRdv1uts7tA)So3Eh6(~W2w-dg8v*TgtBs?* zz4^lLyKQlNAjwgd+3r~^!G~%Ac+=O<&UylRerSt6R4e-hl?Ei%Xt$t+0S;bSd3pIY zIyS}IObV=@wn2z0mUi{dgQa^tJw1x$BfBd99A%d;{O_yyI=A8Gj>CX-hNqwlF>8CV z2TMjqhTCpc5)M5kCMJ-r1O*4b^Yz7|67j40`P1Fc?+R26$b*1gIXjisV+0aC5LhDT zApA;eBXG(u$xH&a+Igo(5$Re2`I}I1a z5C_fe>}cT3fPyfe~jvc?m?5{ZP<@M08dOHxtnT z0}T!*_nQ)>YXJARJpP%^rcs6BKiQV&Ki$`+mWiWdQg{_oW6eTy`qvPlukRZP5kg1^ zQ&S$QJfz&hWd|YQ|JDCAte3i1K4ma8gSPeiTi-nqf2YWnpT+)}R#OG6$5iBc1ENc2 z8WNtkh2Pa_za!9;qcGp2BU7AC{rRr4LL+*SgwF3LNG%s*Q&U!{>c*wDoWoqRgSE=I zsh|n>tkR0Ze@V~?C&{sim3m~~3>4VoF70yrnjej&T6)2p^Fg4;#RvBV_OL+Jp=x#Z zu0~G0Jtm<<87EU}NCBjfK3>5W3W=PYR`E(M9BDI0+B*(b9>AoY)3KoeTcatfnU)-tQGx{Tk2R-z;+-7a->w1!V<9zQ)NUP zNzW`ife*&;gv_ZNC@62x*0D*X!(9WJmUfc%MQhDjkM01p?_k-)d(JTsk$lSQSGIbp zFFM{v3W@SnhYt%`^h|xx|1VZXZL1_+29McjxOv|*FmdQ}<<_8^!k5bD62rAz>8Hyo zDC#pSrgmv{%&N&GF%MC`M-6dQ#XNcdCi@5dD<0lbwE@4T7bGbC8jNz^N-+h)HQaj3 z_AW~hNH-WTGg)u54%#}r0mA2TmQ&nUV09#&Ev|(d8KccRo!KK?&~KKxr$cTYh?2Fs zvhtU^o7=U@^&nyYn3gZ;yeNG7gHOnpfIwM*Z(!vUVYIEOr1Ro{dJf^V5OM41Ucgkw zjJgIZ@!eTWO5!KihgF0JPfJjPqYYiJY?F`AHQ%U&At#!Q#DoXabQJ?-7-P2Nc_s^p zzICI!n`1G9L05tn?)$0O02eR|R=kxFMenUREtfCAg%YuxzCaf0%QUp{*qe>V`i(Th zJp0%}?~YM~_WC%hs}$8y4D2j>t$_wTO_8G7ULWmpB52~Gp+v0_i8uR;b(zKb0T|;A zC`F#XXp9h~%uEi6$8mAA{Q@MNE6y=Ru9~{Its0v9+GQF?!3(>ECu_5#m8V;1{42b0 zl+Wa56>RhrmS(#X9Y7K$`qrDqmrZgCL%M@S~4)A#b(Cxj zW{F)mFt7nY1|y-LbHq0NixOYSF$)9S!~l=TeaMfD-o*?BdlFq%)K>wY$)ku%Sz!=@jj4$ z>{s}G9wtIRx}$dME!()o61N-VuZK~o$ExR!RiMCqQ=<6-N_ehMp`yTKZ5@WuFZQMl z6?Kj_gp`FmiFx>dqaop}BEHsbOorJkUj3zz%bnR*v9+X>cdB3aRvaByT3^~NG*ZDh zDp608JE)X)Nci#a<?7Q}z3YcWcsTSu7Fn`5Tsd(A4 zm}quj+Q5&`Af+|aFqS>zTi0h(%@i4xsSoEj*xBPCZ6o*Z-vO)Z*|sKup!NfyDW0`=`IsCk*TiW{CvImC;4 z;mn4AptW6YEXuU{gRi8|%*=R(hZ8`n38+M$DJzScnoi9T<4-C)du8e6x#m&>#aL@& zy0!!cETGFzrkt4DjRNk^W@47M+)fXPehf&q|t_zULj+*MY0`iPYr);h> zardTIPx*k*dgQMrGrwYEmwpF1^u!&_U)PSDP+?-vBQj9*Kxgdo)9bK<7lt1Ak!wEE znTyTocl|BT#Jh7$QpW4XHRil`erC>%5~Sl$kss4@Uk9PJbGZY~p8xxlkqQWOOa~n>HT{oPD?$nt?`(B-^4|V>_6W$h0KNEH9cBwRYjx#g)2AW% z@ZTEa?ji6}N!uByQ{^!nZL#ze2OpsnT+7}*R%+ndSTbP@GK(A}%G_BMeRqPkn?eRfOnBKT(r%vrC$RIsUU{#VAgWhj; zU3zlTX_qrSws8T&T4StQ8_|>;=#x*J&hr$vwgm)^Iz+m$rzG0V|}bEe68=ztq#}Ah05<2=oJS$6|wvEedo_Tz0FZfFNiA#+R6!92^yO zSozVpLc<31DloLq-NBE9 z$8Tu)`Ef*$Cp6#Oh$F2Ak#PUKW9fyXF4+3-zFw~p;@&u|A)uR`BPZ_hrX6{LtbG5) zpXrS-kZOFXZtz7`SD_*y&E*e`r(E$!wS4GNf-!Vw7EtrAUlK72iNqz899v(1z;-?G z&eG-Ub)|Ceq1Two+4Qusn|g3qx$+vgkY}bJna4dDNWX8P zP=1n1X{ulbhD}slTtuRxqR_bqqAMB}mJkpyzEWMHc3vB+6oB#$RIx~ZIn*^qHmX^2 zFvaC%kvS!Z%R#mSQn(0i8`_Ero5y^hChmv+Iw>v!%JiP5p7)CC_QCKwXLN^zUrl4< z0J2K@(c57^Y(fv_nzyV<^DWui-^j*yXt*gH+v$}rA&=zXgIiCjv{nF|fW+e0hb!OE zP`B&q8&RW19-lv(?tPhcpMf3fKIp2Abc6mCHl&*$I3#GiDrTK)iPZj44y73ihGdxh z1F^>X=syx`A2BVA5vF71FTkWO+J^!d2Ua1-5?~M8PT-%kK z{~6b2)6++dMHxi{3%nm&%>3+}t=q|H{D=p-m8E5JQ4yh;S-fKkSDFl<6Cfqy5?w); zj`;=so2ic)ataIeffz_vEe%sEcZA*&q|+Ms(mT*K0NVq4*UT*}G;4jX0rB+_&{b$% zgU6b#UODRQoUiP!kam}gE3z{|6sq>0fPs@Zp9=XzOZ>gh3uN342CSC*>oN+JbLFcm zg39pH*!Jx~UAEl+!yPJ8EiEnRI7U7tNn(k79}9?zUmqz^!lI%ebZ^_7X@hu1A`54OrRjDTpi}o1*)( z@(|uNtWn3P+ma20(g0<_SSQVAaUVY-&?{XNjHsxBj@iWwga)Eh&YM4!mc{H$M>siK zgp;EWY3xs(F#>%95WLfKbJ5LhFP3eD8F=0E_h zkon5N1$xf+k zWi#f;_3iE2uC83MK^l*JtG{1MMl$hGa;HImzA*uH$R$r9m@k42%2SZddV@w4+F+o~ z1H=I!?1Y1uk-~MK(&Z2)W77Kr!7m5d036|6DKh#XApr3AJfm(C9)R=S(74_ZK&CxX zVgpkO@zvGUMFL30N^Mu7rei#C`(%(O`xrsa((aoQ2&tNV_*-MO)TMuGtZrsR8mkq) zz!yN=dg%uB_}ZG;Gj$=Mb4be%D{Hs&m;3*uv6=|oeFEuF_8}4f^E3Vc)ph47P|($0 zR9yT_R#s3<>=J-n0O{o^1MMd-E30Ag1G>NdmtblKMCdCtEc;jcpYS7S%;Gu;_|N-0 zuu}ege+S@k`VYI7c7O~Y>)65-8s_}-Y5$>zSz+X%M+uV!1~%#EuV3E*ScL*a$K2Zb z4n6%cf~wWf+1O}o!;=?TIHYG++yzbEU3vHB-7nPJcSk}Gi*yPMeW&FNo3nmr z7K4O;BrmT_wK+X+B{`{Bb28slE<)lfI`KP_TeoO^OvG;=ak9+qVQ_I3Gp62~*m5mz zlbDU!I*D5&Qg@!4Xn|4-hz04C#~BLIBf6w8oe9Q#)W1PHzsRNrm>3A*VO9u&v?BfU zFmVFz1c3md`R@+21VfnXEOXd$+@bd{uxFmb?96-m<^ge1cD6L3zX;6F(b%vWB_ku- z*z1GthaYV&85tQHySsn}MPwk|58?C$u3WIbA;3q1u72ZiDXRqy071-9YY6)nAaC)Q1aywG4k1 z3qt*+bzr@J{g2WgzVpeszwo%uM7UlAtD}s; z!f%o5U0+F%ap!Xb=JjA~)k6Nl)nSR!RjQYHcVlS+vNIZXHrZ52k;opQR3s~V6BWry_Rc0NGu!>V>U-ax`@WC+ z{vF5f_s8$^&*v!NdSBP|dcDr`c|Om_x%Bd~-OBm8+~BV3PwZ4<00+H$;eAKtM%L_+&*`R|;R&?A(mr04_t2XW@zGS2Lzn zQku#N&(5&gLQUGwJ)Lc!F?D|n$!~7oK=;ytxP*7z^N-hIGRdYpO#?Ac(o$ewVr3m= z6%h&a^rZA^#i6r(@7{AYk=x!j{3K_3NgFN7`XMpa-IA?Vw3)d>P~^9WkoQWQRCBs9 zjn5WFv$|4Vm&Og6i)H$bYB^fLt6Rtq;;+vnn~Y6PeY+kkI>LE!`dHE0>ggLdB7lfW zdFzcxl#|o7vT_Tm8jQAX=Xj5@oHdq@Py8a_=NipkKU5w1pyTz52ib)h;fK-eZsbkl zoT~x8@4b3@4lvo>=0)2%eZ~>a(-k#hWzRygy&gRhr4~NNBJT8Mi%sC2Fx9$(x-n8r z{B!$)`!=G>58r=D(RX-y`%~H)@0(*>^H$W6V;)n>GrxzN)@&V5i&chfwiK|;Y_A{m zv<`oiZL`-nZ|h+7+wwb$Iz9&K!!4ADtFB+rk1E?V%I8_zs~f%;DKNc0w{wAagx^GO zl**ELK%~P(nZARuMHC;#`*_D4Ms-^6?vt&_i@H_ow;Rr+UxUi`Eq6J}EEW2s-EN>s zm_PN@#C6R_dB9O^Fo%q5Svc&dYh-R;bFw5lRmjNh(^F)TPMtax5UBht*k-y;(k;7| zcwChF=XDgR1=%PCLxQ|DO+Unh@_B4!ev>OHr6y_ofstvuw&AYnk32Jb7KQN{^nQHw zKf2h#EuvoCyJqW^so`-_fByE?7`<@gb*>G+ph^5?&ZM%G;Q?_?R#?`$Y4;%k_tG$ET~J(M!> zfy~hGUGie~x#bA!Ee-2@BdwqJxrUO2ZRJp_Ur(Xn7aHO5(q3xvoae#iyjF zYj`_TW$kmv(!yiG^&iVFJ273T82FMRtma^6c1$E(PjflAB|mMYiEis_ojQeHX?vxu zJgd_O?+Fb?a&0FPCuZrPE!oT^DWxf3sdDYKNMmNok$3KPfboTk%Xx*G& zdDge{`2kUu&-JT0$3Lp@PDtDgs(uri!Dm#|=2@(Ld-8j0cuo+HeFSyIK+2EAU8MQ> z3Tx7+T-CZCiOP}Pu7duyE1%hR-?d@JhE!R~KXw1U)#msWd*|j3C);01{ODWN8}dThBllF6FcRAx<#zB=NQ zWE549+Ai38&o~4iV<~P-%7jIaWgY%?a{XvnR~0s_2kee?2sj!m1evm zb?5N{E!_SBj;tP@U*G+`=hLDqi$%+(bw?kpZ~fKXe(~+KcjV!gSg4-S^*K0j>7DZ* zB?q}!%9NqeZEtyTB5I{RVa|7LEW7ji*Ge$hI>0q_sCu|IFld|kgh1Mq$0qBU{gWecAfhaUK>Ey>5#|vH5icxtV%r zCaN#njc?mKY8r1@IVe`Y*j2lS)YTZdA=60aXZNkWf_J~CYhg3xv9natoqNm~+4i2r zNhRgz)3`KI-OsrKi!(pJG;g!1YmL{5xE1fyTV|IUO z10O|-R1Qc;$j|@il}J!u)ACv}{%TnbZx@mV;ko8pO&MJ%))Q#I+E7aqnbm)Cn$R9E)wX7J9~ zVV9{MVd)DuL zG5c)>lZ!0a`Kr>jR6Mrsu2$4YVkCqmG^3K>xIBnTs+`zLK(Lmx>i9!?7xkBCjSX~- zt0Mb&34yFDVp}tBTFm(ir!x_w*h%c{5b7|YRH=!GU+K_XPL9Lel<-CKrtBAW5qWQ2 zW|=Jm4r%pj8FZ$k$TtZNMl@BnhFRK+Oz%p*+3edX(A*^{o;62(Vvzl7RF^*Yg1z9S zVD7<47S~YGS&4*%ge!FJ?#w*89WMMKa}LY3wf73E3w5gFn2|1}H6fHeg-q+E9CJ>n zoQk9ZUD5+g1FR9YXC_eH{?q&PuZp}5j7e1V+4pMyYq%0lbq~6m!*~@yU>FJ7@B>Cj&yWncH6yEYsHDhFI zydT+-r`n#3LN;2awhnfc3sh6U1)Xi zj`f=w8>^{fWutDG-R2)3Z3=u4UFYVJesaw6-D^76VmKRb+gOZEs53_84tjG|oh}qj zOcEH>80z4U)Whl*R5kOo5!2lKP22Km?OSbLjyqi`UT-Q4le0~hk3V%O$hv1aIJ3O8 z;;vgf79u4z?K2pek?j&{$@Pkz5@Q8ktMgY3TC%K4C;iZT!zS5T;jyM#R@3HkaQ4@6 z6wh`~f1wRZYW?CWSNX!ItnFfjK(d0dM+`u$9;{l zI@@4vpmx&qdt5<~$dL?YR{u!vlGRh{-%t9aozUHp!$xIpZJxB^`K@8k#H9f8>A3{% zvDr?x_;L}|Pia0hIxS%;s|EUCi7u5_R!b!FAG2=1;3d5==afxuPmW^KkjkF4$G378 ztVZZc=G>e>jcn~2cM<6{bZkp!5jf^M^Q1K_a(K_4=UnVRkmtuZ38kCL`51+40kX>6 z$_kC+8{TpYW&-a7UFv;W8d?OHz-er@+NlRC86hYErv%&2BTvt0#rW26>KdpQfRPd% zo@nqzE3n2&IhDNJjhAG5FT~4;3~guHaHi?keo?Wal?RlRJE9)&! zCy&Q8hVuaSx~s^hVrb=infS zd1XuvPay29r`@sRBli7J=(!{q^>opx^jy@50iF_&CQa<++UgqMk6Ijosu5kQ|}e(Uq<@%0pWq( zfIz#NfdBj7v^Wo^%JXXqOP#7yb@L$qr7kU`q@;A&d3@Vp(H++EZ527+b7Wk)=Z=eyb zJXR|)HYe?1R8^F2Zg;<0+%=BHx#6m@Vwc9uf@9g#TPa^F`;0ePJ;9yk;N&znGb0&J ze|274u{jJ$^p%gOG=!YZn=^9m!IE^RCDmR2l_bILf!w6!G#eO~9LTBs?#q` zL5n6qS0d_tfSD3LQn<9r=X*;&YGGOlZUU$ZD?!I+eU@0ie>Yt71x-l`w0zntOD>q` zg>Ic2C2pJNm(~_MJfXdyC*mVqKsP=$$8rgK+T=}(y~YvL6y&|l~(Rq5}V;5o+Kwf258+6iA+ z^>jiX|ByVdy}7kIaK7g z@u37Go4TnQ{w@U=F)QcPv&~j_E}2}mtPWg!mz1OgJ5mD5LSdOMYb(DAbmiq0h@w|( zM`mNj;G(>Wi*zo(Rj{_Y^c8kYItlpzs4hp~5SORt(M(|XjK0%VsG*u|MqI1KuODao zKkw4IwuRg^j%Yawu$vwT)vSp)t=v-Rls7z!%_;zfst`@aE#x{tBuPt3mL4iQU?Sod zy?<3{v3(oa88v&M;`{ewnr3y5?Is$TE{kR9*FJzZnVyjm3ag=!0d)ALJ1%Uot!2ma zva{b?k0{NJww%X(i>nWVY>8?FCnqNaIvL}B^6f0EOaVph!pe$@pS^Y%RRkv@-g?++ z!^0yJi4K|${?t{)TcMUo^-T+Rcg5^&Zf*`?3f6@6J~%j7b zc8@39yS5-yu*>pyUzuW9c_17-M1YMcJhnzRwtImjVt}H+@HtBCrxE z=n@hWtLOpSe?j(aXm+r&(e<3ObK&Q+inl`WP?R-L55es?HnJvNX4sa=jpmo-sR|x2 zUP-jux0m1$fn7i6EnRcqvUTC_U%y_wfB$X9*?^Y;;wx9=nnWENS(1K0et{FBoHMa$ z%jM!i8r1L?+d3@OkElR*AgD8he-Q^OD83ib`o*c7#0s}*Ny#~s6iNXjrKp#k!qYm4 z&jeSvQnDs>z4M#5f85s4uCJhqgF3`xAD`qVTlBR>qASeao}r~hO2C43B>Iqu$XK*B z{&Yc3O#IB5D;*TsAF7`J`DjAcKgEHDf(;e^cR<6Radv)-0hY2UX`ia9Y7B{=mp1?= zS~ysL2BK8?`$QB0Y zUl^1D-qhC@XI%*#4p>Wgi%!_j=qn|t6eD;+*$N)^RMRM7NtH*XTwDn|P>_Ma^oqQ^ ziF|k~o1ejEsu7im-i`#pL1`xtHndW!>@qVmi6IRrex>PD(4)|DS&{ZA8w`^uyR>&0 zT~f2Rv+IWJt*yN>FbrM2F+ues0fPp670_f|L_n}_PSweYbq@@bo~IEJ$96r^kgT73 z&C}6^{{Cqa#$UfyPfgdDql`$qtv2?)6g#0dmr5(piN6YnjFi6J zcc$LZ2wOLo8vcLaAO+~v_GunG#J>u^u;f@Ocwp2nZo|evw{zz+)cmlYgdV>|j?6Znj6^s&^p`l z{>FOXWwEV#;7@gUg~$cjh+D9Hk$4~tv_~kfIBZmot;2r3sb2Hnslovz(2B5WS>g~SXiEKs0}t)iNnMPr#Pho3M^ffh zqc->7a}T6Pu&(+B2GF%hP~dPoKrg!rG;g>O{SP%&)onX>x=X>Qim(SgV0 z1o-I2j3`FF#B2bR%TUmiL{ApB?xqQ9qW$#Kp^L-=U`Xu?MmY&Kd4g<~q;b0b4-pn~ zdakIdUX+)Arn;Ia{RY(PsUnK$sVR0YF4iMQ%F|`>sTC9~G-}Xv=|;QDpSaq;r;7^1 z&^s<^`FpLx?I5{=9D`1v4Ier>_JLjx8%auLW+_grpX93^XuSjZ`bK7TZS7>(A|0+t zyyMT-vvuoJlvUSLHa0fWbHDIKgO5Dz@Zg{nnsJfK9Aanxk}e9aaz~yG!l`h3jT8(R z(oF`<3s)zO3J*PM@}r}pT;qR+zbZ>5{qU3|4Duo(-l*-vwJ%`||3KMOogK8a*9Hqg zG6n$-f32$HiV_`$QSg&**?lE>Qb<66sOFoP90d<*W}+)E-s+m?i*=uYHeizAdHv6yTv|H ziOQ^nLioCDmPyA2Sy^4s=kqaG01d=psLgI?WUPSF;RaA2jmV7ehAiTVQNK`Nn383} zukx1k$&2c@HMu{W;ksgMHMaXxyniVz69ehPN4cs#TN5&|Wc5d0(;59wZ1(=zuu}_l>(8POE#$u2l2nDKr=G2WAh^d|O=d4ObSgjq8d_YP>%^dsF@2|tAsdP6e%H`?7fIWeGs@o3SPsEwH%XD&MFK3BZT z?pb2Vvl2ex+*<6SQynjuc|!ue9`gt zJ$xJQIY<_`;oG@XXV-U3*gw46A@!>yo=PCLY5j{PM%%%UrklL>dSwn?kQ82$JCP8#RMl6it~X{_NUtjC&lN>VL7x84yR=ShJk9Ikl66V zsc*bue62m?M!t~U7RWj;>psM)EOjV#t_+H)(61ca8K_8PpQYl|FZ(K0$*H3%--XBs z^ZnHHDxHejShwd}9u>1w&eI&KLS3z&+c4d+_#Y+y6VzfG(d*T%6Peqid`njATcr%e zM1G1g?Gp`Qia38kFyx}5broL$54Cm8EP`P0=5mIujX&>lVY2-}hG`keOOpg39E`+J zWC_+2>W_-3h!SfLz2(p^c@lsXIj~=OhP$wtOqDX4LKo4Q zddXKj8J@H?-bTwZmOxsHmQi)nvgaG27g%{Q@6?weG(0wdV3sX7f4wMq$#a zT~^3?Q$b8`hS7+(nz4kl{AQ-{B!~=Glr+mBN=zD$l`nse7l1;SrMVzBP-z=fp3HrF z)`dUKNtx1TE3;!mS-~@%?tjE75@`8o!2+(dxVjp6YWrj8zy7PIB0NilUX2Ws=+@%k z_&P&Z3O3w(v_1j|iQxx&17o=>?GVYAp6Ab_NGh9#(l+Xy5BN-$55Z{ote-h z-U`U92~S!+rL;TdT2tO|C=mq)X3VrGH~#w|AI5uXHPqMRTzm|J3<)7Vpmkx7cd%jq zEXF`0SDe(aY{7E%9&stG1YVM_2%vd#;i4zHqC+zFq16-Kz@ecb&V6c+)E``vr}b8_ zx952FY`qNM5pLD$rq`D*T`Fk#xGVZ%j@}g>4vu(s&g8zxvjri7c3Visj>0Ny4Q(^y zOr^NK6Hoh&Ew8R#jykp&=CklWicPk5h9RpZukwG*d_+;iPp(K!&QecGG+eA|hBq@_ zv5S&&FnIA@Lc(o0Uz^+7cI@4I8TJ}vDYszhOgC)sB)F--n@ z7PLzb{idNZD9gGupdz^O`)(46&ibPG*=zO6#l;hs#Z0gBb=_(ELP354^|P2JRLC?V zkA(&EY~$ij%hVkRNU3~&V$LGgT#?~~1Uk$Kc4eru33$RaqDx#z$NKskg80Kv+a$HD zf}}|Tw(LKr_q?J1HN8J1aft|N58maQJ!E=&YXoBR^pH=U4RSajRl$43u=fbc?}KN=ZfMEa07QK)`;T_7bKe=yaURbny%5zeUb z_l%Ta3eX9c)#Y594V{kDG8p5OG;j^k%5CH($htHY9YAQYFf&7ICG(Z{I282B+|kaD z1~G1-hkv#9cIze$Fb$m-`ghgYBfU^m+{xfg?k#y9t=yND%}$;;0f*vx#4?D2t%M@t z0gdRmoNi+3Nkc>6Sy%ED zgSx}gmoCAAP1u+dR8k&*#@#zU{!}Sm2lE4Gnfz&G9!o!)I3a#;rrTp;a=uqiL$R&D zBKVkjPrcCZrO~t+eRyrT)zY<*MH1}gI}VPH!brzSn6?)I-yeQ2oFO7aGJ%sH%Pb9A z^c`bk!W?aeUyHSeHvo(xb&O!}#ukExTJ*I>p?MeS`Ui)Jg0iu!u4-&ENUch$s=Oh# z)*|eU7t;Hiix7$38+N2)L^4jycerum28g-$(V!~(T;N7)WJE+2R`DLFkG*9+Qt|;_ zQ+joEbp{YZAOs#37Jd$H>*`Y1+KHQ=Het+#AklhC>C2;o1j1_gyE{hAAe%19>T-6l zHVq(BuS&vdmH05foa@k`jd*$f&L4S!v0=cJHl;gZS>TC(D{^r`Z{}_xEB5N@0h;If zkR-4@68p;1cpeSjC$wD?ItA2w;$ET2vEu1VxhPTm(v66ciJeDNGqQc}0fg4qDYhes zk7rrm4g=wKCMFa6eN0TU78a>-PUhy562t3U3MTs;H#5JjO4(Rxav&`w<#=A(Lb6HT z*r_xpZ^?u91)b58e*k<_eTPrh>hoQb`3gQ(YFe5gNTY38rbRz&$#EEY78Qwc1pf3n zaR#5$Z9earoLMb z|C)wKhg@igi;ZJ3Qizn3n>Xrc!#bSCYWVf-JPqzZFnVj{j8~dk(SHi;17v(BV4lCU_v8~)6NAuA3mbY46jaayc6vtB($hD-p!q}9`80db zny`?yPa&<@y!rG+Ik`8{(IwHRkVs+N#J4m(x6fU?n^{b@{BfGKPu(4V0)f*PUGE^X zUbk8QB4LzEY;7;%1&V*-^Ak643ry?~ZHr586;I5JA%3JpV&>r!7W*NS@;hLpRMDR( z{u6g{bo5?E#x{G!OY(nZhlw48CGzj+EVA9+K_Wkw&iVDTiTAQ9|1rBU3=BX1m-p7s z?`Ebmv{%gaXt~pY{tHysdk-xURD3FWuI$VmbYQanaoLfvdrrO!;!H_REkRBWcz#_j zRB&@ZD9|H(c?5S^%Gp^I9kjut#1uWmhT)oU?}K0T-3Z9ruwxK)y!`@3x1k$B^47=K zf3UY0#!@$ukido44+v*acyH?HNc`pBYH4+OwQ_o%BQO9hsXDGt;Z!{+S zL>@oRdwtu7HoB96BdQU<7ya2U*eQ{MKzGZv8ZLpdPBLE_|LVpfdUv+^;-gYo zLWy8KNA+*4cd*lN+E__sGi3tfPE|#>lF+zb#TfKAV4hE2(d!rBvEkDy69IS5{ zM#?A_p^Ek@HPsKP`p9qc&6E5Gj!;I|`uT~#{~O0LNCVsllqF~=FR`=0%Ze@wqW>G; zfx<=FvO3sZfr0%^FJPF)QTpFxi9a#F#H)rY%%}e4dy|d6exmV8+s?R~G zr>w%l`DaVn-LfaQkc)5xGQ77MmsbslCS}-Vqgfr$v26rL7Y7;e7cl(aG&c4Q4sL3o zUZz19bm+i=k~D+7uWjKEc8Kjg3K0yy#va0LGLDR+g7Rrs>7B2jb|DnMDg1!Bt0j zs(!>1n#>7@G0gM9qh|0fO;3u68Hk=CXEE9NXP5857^d$w z)1rd2KAaHF|2f*TD_;O{-kfr0-MR-q+ndVDC?aG%09cQ|1Ag%Tqa|1T>V8D%=_a>D z6Cq%rv7T_!$B=$wS0j2TFwUYIqA;oxPAvg$6@i1#EJV*OivY7*f;NbuZ)9Gk*Q~9q zK6PmUN>(QHI|G_gTU*;GCFeb*_>I}4>zR(mqVb48lj+wU&~#a`R>S#SSV0s&|7YpY+z`4t)F%_SmzZdrL7nyys(8N$m z;x}#@nMG`&Ri9MYZ}g%6l zhgynIj`^(0Ba1k&jsO^pjkKqHTU90_EgcOxl-Hnwprkw2CU`BBG*daMTdyZNjxK>KKCh z@b=xi_20>1SG@$R$3+yxU_BrT29QC)-E+fx8_sVUgB6D7@;zFDs&H-90l65;wrrf7 zURXVD*hjSW^vXc!KnC&}I}6JH(Y5+X*+qZlVd-aj;hvI1SU-ru%=<1V63SYFI(=#+bAwRWAFph9ewFo6#CZ zSdQuO|1V$e1MA&6+D*l>dhU;_JS*SR(*nEgh@y+SJRM?8?n1dUo6LJJgdW3FTX&3M zL`zCNb=gh-`CqTPezx{($ye@O7FJe$iCLYwx5J6Cy2Y*(b!mEXC{cO;rF|ItPHM&r`*4r z;oVxHOF(Fai)n==HB`W13 z#I+%TAlN=H=I-+$_&y2;Ur9?#=zkX-JVDZwN23;Ja{js7w^?xp5K%CKi|{u)(Ik_0 z<0Cl+9{NPHW6a17Y$3*39lAoRP=N^^C)!Qn6Cs=hnlsrJ{|Bi9^Am9L*A81D8G?u8 zXvYgBj~=FLj`m_#CC-b^XU9v;bQ^!8tWF3tMCwmGIg|;)Gu2g9iG&cv4P?mAh3))s*%+3m(*9+%+{cfzqFW*D9~B&g?U$FA@K<(jGjdHsi7O4}}&& zLZ@Q7Y1eA>O7cUD0zfAC14{!>715F1R5{!I*6`9yla8-=B|-Dzdvg{^eBES{)pfAt z3DAtay%2h|;i1IC*_(S3BNk~lYDl^AZ7qtDgALX^IeV3Hzyt7SyTU$zpoWHB1rcESJyhdY`GRXLY;4wgn_Y6h zH}qZVNVk58GZ+QTQV1(U%_*-8oRGUB8vTF}1fiX5YE0~`4<@BJ@giC~jroDZ5^WtiTv{FF%gdtn$yfG9v-L&MnI z{@#BCK3uJ9h)s4S*6H(N9^tQYwy1C5E+OD_m>ccJ2@*V3R$P1^Spp_<^Vlikq-Dh8 z1E;7G16nSRbaZq;&SYU_-2e{)&}gPYG?%jT@^&yY`}q6sz}+Qsn}i1sU~?p9i6Y2` zF#s5|&*y1GtmMVu(_uxKo;Vdz%EPM*1p_ptNd%5puV1f(KVc6hyW@Sv{q7kb*VNPI z`Q-j*3pcO8#Df2|+Ju*;|M|JGz-C+$vx|!h@r9frVqyI$O%u1NA&LKImaQ9gz=Nu fHvT^}S*C_g#Ru|$ciVO(|+)8seWBp literal 0 HcmV?d00001 diff --git a/docs/images/screenshot-11.png b/docs/images/screenshot-11.png new file mode 100644 index 0000000000000000000000000000000000000000..255831914c8619b10b3a0a1b180288a3bbc3d0a5 GIT binary patch literal 13498 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 SDREGwyPG4@UDDkRBHay=hpt21&F>rE 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 U)q5~x6(}8hy85}Sb4q9e0AK3xr2qf` literal 0 HcmV?d00001 From e87e6d27202427c2b43d663b5d9d2985361b761f Mon Sep 17 00:00:00 2001 From: Joseph Petersen Date: Mon, 13 Apr 2020 15:58:24 +0200 Subject: [PATCH 14/14] formatting --- .../plugins/bitbucket/client/BitbucketCloudApiClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java index 6e23c436a..a61e1ff77 100644 --- a/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java +++ b/src/main/java/com/cloudbees/jenkins/plugins/bitbucket/client/BitbucketCloudApiClient.java @@ -245,7 +245,7 @@ public String getRepositoryUri(@NonNull BitbucketRepositoryType type, case GIT: switch (protocol) { case HTTP: - if(authenticator != null ) { + if (authenticator != null) { String username = authenticator.getUserUri(); if (!username.isEmpty()) { return "https://" + username + "@bitbucket.org/" + owner + "/" + repository + ".git";