aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNolwenn Cadic <98824442+Nolwenn-cadic-sonarsource@users.noreply.github.com>2025-01-08 10:37:15 +0100
committersonartech <sonartech@sonarsource.com>2025-01-08 20:03:13 +0000
commita0bc1593f463b56ca0c08e261b24dbc8ca367b5f (patch)
treed9e238e538bfc60eee8c9f295a2c76425f9a6a8a
parentea8a3d053703ad69b17993472a51d5df489feff6 (diff)
downloadsonarqube-a0bc1593f463b56ca0c08e261b24dbc8ca367b5f.tar.gz
sonarqube-a0bc1593f463b56ca0c08e261b24dbc8ca367b5f.zip
SONAR-24058 Fix encrypted response test
-rw-r--r--server/sonar-auth-saml/src/it/java/org/sonar/auth/saml/SamlIdentityProviderIT.java32
-rw-r--r--server/sonar-auth-saml/src/it/resources/org/sonar/auth/saml/SamlIdentityProviderIT/encoded_encrypted_response.txt2
2 files changed, 26 insertions, 8 deletions
diff --git a/server/sonar-auth-saml/src/it/java/org/sonar/auth/saml/SamlIdentityProviderIT.java b/server/sonar-auth-saml/src/it/java/org/sonar/auth/saml/SamlIdentityProviderIT.java
index 1b4542e0a0c..5fa312ba3c0 100644
--- a/server/sonar-auth-saml/src/it/java/org/sonar/auth/saml/SamlIdentityProviderIT.java
+++ b/server/sonar-auth-saml/src/it/java/org/sonar/auth/saml/SamlIdentityProviderIT.java
@@ -30,7 +30,6 @@ import java.time.ZoneId;
import java.util.concurrent.atomic.AtomicBoolean;
import org.apache.commons.io.IOUtils;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.mockito.MockedStatic;
@@ -67,6 +66,9 @@ public class SamlIdentityProviderIT {
private static final String IDP_CERTIFICATE = "-----BEGIN CERTIFICATE-----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-----END CERTIFICATE-----";
+ // New certificated used to update some tests, valid until September 18, 2034
+ private static final String IDP_CERTIFICATE_2 = "-----BEGIN CERTIFICATE-----MIIDqDCCApCgAwIBAgIGAZIFhzJmMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi0xMTMzMTk2MjEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTAeFw0yNDA5MTgxNDI1MzlaFw0zNDA5MTgxNDI2MzhaMIGUMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxFTATBgNVBAMMDGRldi0xMTMzMTk2MjEcMBoGCSqGSIb3DQEJARYNaW5mb0Bva3RhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALE389oPoZcLywrVdBxNv6Pqi+7npiEFfmojzXxoNXBfcsO7em/f6ys736KS8ibXCacwve0fb/zd9UMO+KTPyA/YEkTC02c8LbDT5LjBp0mjShzKzX2qbdzRgCsFfiKwqcAtoS/351nXFR+dfZzJ5Qb1o/Tonz9P0iUKiVJpb6WiF7TWKrofsj4tAoGzGtoyfUmOTuG7TbxDrYMd3ApkhvcfRc/6ZLkst+A8iB0jvqMVviQxkb7dYwSvXYYSR9UQ7/3P5IY5vkNoJyIG/YcteSBJYq/0F9M8BEIam3r6LSrHXnwD4/9aJpuDWOuadSCPiwOwHQv31thLbXu9TcLWIRsCAwEAATANBgkqhkiG9w0BAQsFAAOCAQEAaFGH+0Mbcs6+ZaqTUlJ7Pn+prejlJpy1UV/8qGzCr1oNx/gPwTqnCvxFc8uAspbpnUjByGQYFfa/QCtP8d8YuHqJgs+yIUl8K8WdWDgl+suhnDQKTGfCin56ov/YcadSdBRV+OldZpPyJ3LmV9MkP3OkMU7+A1y26Yiu00p+JyNdMethfszu0Y25vrT8fZNlKBpH5kwPbmRicgMN3R+tNGtjgwMtQhZmqDi1c0SSEwtwRz7KHoCfdZN+sCnOv0DGbcuPVZyCWKIA0nzhvVriQYQlRKBU3ydBYF5USsrTqCDzrhaGbj+KTFo6F4fjT37fT/mDhh+GKCQubNyGIWDROg==-----END CERTIFICATE-----";
+
//Certificate valid until June 13, 2032
private static final String SP_CERTIFICATE = "MIICoTCCAYkCBgGBXPscaDANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAlzb25hcnF1YmUwHhcNMjIwNjEzMTIxMTA5WhcNMzIwNjEzMTIxMjQ5WjAUMRIwEAYDVQQDDAlzb25hcnF1YmUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDSFoT371C0/klZuPgvKbGItkmTaf5CweNXL8u389d98aOXRpDQ7maTXdV/W+VcL8vUWg8yG6nn8CRwweYnGTNdn9UAdhgknvxQe3pq3EwOJyls4Fpiq6YTh+DQfiZUQizjFjDOr/GG5O2lNvTRkI4XZj/XnWjRqVZwttiA5tm1sKkvGdyOQljwn4Jja/VbITdV8GASumx66Bil/wamSsqIzm2RjsOOGSsf5VjYUPwDobpuSf+j4DLtWjem/9vIzI2wcE30uC8LBAgO3JAlIS9NQrchjS9xhMJRohOoitaSPmqsOy7D2BH0h7XX6TNgv/WYTkBY4eZPao3PsL2A6AmhAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAMBmTHUK4w+DX21tmhqdwq0WqLH5ZAkwtiocDxFXiJ4GRrUWUh3BaXsgOHB8YYnNTDfScjaU0sZMEyfC0su1zsN8B7NFckg7RcZCHuBYdgIEAmvK4YM6s6zNsiKKwt66p2MNeL+o0acrT2rYjQ1L5QDj0gpfJQAT4N7xTZfuSc2iwjotaQfvcgsO8EZlcDVrL4UuyWLbuRUlSQjxHWGYaxCW+I3enK1+8fGpF3O+k9ZQ8xt5nJsalpsZvHcPLA4IBOmjsSHqSkhg4EIAWL/sJZ1KNct4hHh5kToUTu+Q6e949VeBkWgj4O+rcGDgiN2frGiEEc0EMv8KCSENRRRrO2k=";
private static final String SP_PRIVATE_KEY = "-----BEGIN PRIVATE KEY-----MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDSFoT371C0/klZuPgvKbGItkmTaf5CweNXL8u389d98aOXRpDQ7maTXdV/W+VcL8vUWg8yG6nn8CRwweYnGTNdn9UAdhgknvxQe3pq3EwOJyls4Fpiq6YTh+DQfiZUQizjFjDOr/GG5O2lNvTRkI4XZj/XnWjRqVZwttiA5tm1sKkvGdyOQljwn4Jja/VbITdV8GASumx66Bil/wamSsqIzm2RjsOOGSsf5VjYUPwDobpuSf+j4DLtWjem/9vIzI2wcE30uC8LBAgO3JAlIS9NQrchjS9xhMJRohOoitaSPmqsOy7D2BH0h7XX6TNgv/WYTkBY4eZPao3PsL2A6AmhAgMBAAECggEBAJj11HJAR96/leBBkFGmZaBIOGGgNoOcb023evfADhGgsZ8evamhKgX5t8w2uFPaaOl/eLje82Hvslh2lH+7FW8BRDBFy2Y+ay6d+I99PdLAKKUg5C4bE5v8vm6OqpGGbPAZ5AdYit3QKEa2MKG0QgA/bhQqg3rDdDA0sIWJjtF9MLv7LI7Tm0qgiHOKsI0MEBFk+ZoibgKWYh/dnfGDRWyC3Puqe13rdSheNJYUDR/0QMkd/EJNpLWv06uk+w8w2lU4RgN6TiV76ZZUIGZAAHFgMELJysgtBTCkOQY5roPu17OmMZjKfxngeIfNyd42q3/T6DmUbbwNYfP2HRMoiMECgYEA6SVc1mZ4ykytC9M61rZwT+2zXtJKudQVa0qpTtkf0aznRmnDOuc1bL7ewKIIIp9r5HKVteO6SKgpHmrP+qmvbwZ0Pz51Zg0MetoSmT9m0599/tOU2k6OI09dvQ4Xa3ccN5Czl61Q/HkMeAIDny8MrhGVBwhallE4J4fm/OjuVK0CgYEA5q6IVgqZtfcV1azIF6uOFt6blfn142zrwq0fF39jog2f+4jXaBKw6L4aP0HvIL83UArGppYY31894bLb6YL4EjS2JNbABM2VnJpJd4oGopOE42GCZlZRpf751zOptYAN23NFSujLlfaUfMbyrqIbRFC2DCdzNTU50GT5SAXX80UCgYEAlyvQvHwJCjMZaTd3SU1WGZ1o1qzIIyHvGXh5u1Rxm0TfWPquyfys2WwRhxoI6FoyXRgnFp8oZIAU2VIstL1dsUGgEnnvKVKAqw/HS3Keu80IpziNpdeVtjN59mGysc2zkBvVNx38Cxh6Cz5TFt4s/JkN5ld2VU0oeglWrtph3qkCgYALszZ/BrKdJBcba1QKv0zJpCjIBpGOI2whx54YFwH6qi4/F8W1JZ2LcHjsVG/IfWpUyPciY+KHEdGVrPiyc04Zvkquu6WpmLPJ6ZloUrvbaxgGYF+4yRADF1ecrqYg6onJY6NUFVKeHI+TdJPCf75aTK2vGCEjxbtU8ooiOQmm8QKBgEGe9ZdrwTP9rMQ35jYtzU+dT06k1r9BE9Q8CmrXl0HwK717ZWboX4J0YoFjxZC8PDsMl3p46MJ83rKbLU728uKig1AkZo7/OedxTWvezjZ1+lDyjC2EguXbgY1ecSC2HbJh9g+v8RUuhWxuA7RYoW92xVtKj+6l4vMadVP4Myp8-----END PRIVATE KEY-----";
@@ -209,17 +211,33 @@ public class SamlIdentityProviderIT {
}
@Test
- @Ignore("Test is broken. The feature was tested on a real instance and throught end to end tests and it is working. SONAR-24058.")
public void callback_on_encrypted_response() {
- setSettings(true);
- DumbCallbackContext callbackContext = new DumbCallbackContext(request, response, "encoded_encrypted_response.txt", SQ_CALLBACK_URL);
+ setInstanceTime("2025-01-08T08:30:35.438Z");
+
+ setSettingsForEncryptedTest();
+
+ DumbCallbackContext callbackContext = new DumbCallbackContext(request, response, "encoded_encrypted_response.txt", "https://cadic.eu.ngrok.io/oauth2/callback/saml");
underTest.callback(callbackContext);
- assertThat(callbackContext.userIdentity.getName()).isEqualTo("John Doe");
+ assertThat(callbackContext.userIdentity.getName()).isEqualTo("John");
assertThat(callbackContext.userIdentity.getEmail()).isEqualTo("johndoe@email.com");
- assertThat(callbackContext.userIdentity.getProviderLogin()).isEqualTo("johndoe");
- assertThat(callbackContext.userIdentity.getGroups()).containsExactlyInAnyOrder("developer", "product-manager");
+ assertThat(callbackContext.userIdentity.getProviderLogin()).isEqualTo("johndoe@email.com");
+ assertThat(callbackContext.userIdentity.getGroups()).containsExactlyInAnyOrder("developer", "product-manager", "Everyone");
+ }
+
+ private void setSettingsForEncryptedTest() {
+ settings.setProperty("sonar.auth.saml.applicationId", "MyApp");
+ settings.setProperty("sonar.auth.saml.providerId", "http://www.okta.com/exkjqwugrhZFnkHAj5d7");
+ settings.setProperty("sonar.auth.saml.loginUrl", "http://localhost:8080/auth/realms/sonarqube/protocol/saml");
+ settings.setProperty("sonar.auth.saml.certificate.secured", IDP_CERTIFICATE_2);
+ settings.setProperty("sonar.auth.saml.sp.privateKey.secured", SP_PRIVATE_KEY);
+ settings.setProperty("sonar.auth.saml.sp.certificate.secured", SP_CERTIFICATE);
+ settings.setProperty("sonar.auth.saml.user.login", "login");
+ settings.setProperty("sonar.auth.saml.user.name", "name");
+ settings.setProperty("sonar.auth.saml.user.email", "email");
+ settings.setProperty("sonar.auth.saml.group.name", "groups");
+ settings.setProperty("sonar.auth.saml.enabled", true);
}
@Test
diff --git a/server/sonar-auth-saml/src/it/resources/org/sonar/auth/saml/SamlIdentityProviderIT/encoded_encrypted_response.txt b/server/sonar-auth-saml/src/it/resources/org/sonar/auth/saml/SamlIdentityProviderIT/encoded_encrypted_response.txt
index dca5abf5fee..2573d57a267 100644
--- a/server/sonar-auth-saml/src/it/resources/org/sonar/auth/saml/SamlIdentityProviderIT/encoded_encrypted_response.txt
+++ b/server/sonar-auth-saml/src/it/resources/org/sonar/auth/saml/SamlIdentityProviderIT/encoded_encrypted_response.txt
@@ -1 +1 @@
-PD94bWwgdmVyc2lvbj0iMS4wIj8+DQo8c2FtbHA6UmVzcG9uc2UgeG1sbnM6c2FtbHA9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpwcm90b2NvbCIgeG1sbnM6c2FtbD0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiIgRGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6OTAwMC9vYXV0aDIvY2FsbGJhY2svc2FtbCIgSUQ9InBmeDcxZGMxZjgxLTdmMmItNzVjMS0wYzlkLWM1ODIxMzA1Yzg1ZCIgSW5SZXNwb25zZVRvPSJPTkVMT0dJTl9iMjNkM2NhZi03YTVjLTQzNzAtYjg0OS0wZGI0ZDNjMzRlNzUiIElzc3VlSW5zdGFudD0iMjAyMC0wNi0wNVQyMzowMjoyOC40MzhaIiBWZXJzaW9uPSIyLjAiPg0KICAgIDxzYW1sOklzc3Vlcj5odHRwOi8vbG9jYWxob3N0OjgwODAvYXV0aC9yZWFsbXMvc29uYXJxdWJlPC9zYW1sOklzc3Vlcj48ZHM6U2lnbmF0dXJlIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgPGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz4NCiAgICA8ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI3JzYS1zaGExIi8+DQogIDxkczpSZWZlcmVuY2UgVVJJPSIjcGZ4NzFkYzFmODEtN2YyYi03NWMxLTBjOWQtYzU4MjEzMDVjODVkIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4jIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIvPjxkczpEaWdlc3RWYWx1ZT55L2lsZHIvdTFNRTB3MU9Ia2VLT3RYc2dOQXM9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEluZm8+PGRzOlNpZ25hdHVyZVZhbHVlPkxraVhzMnEzeThZcG9YSHgrOEszY2V5aUkxZEQzaDIyNUVlQWtIK05GaHZLUmNsRlVDdzBVQmc1RmtUQzUvRjd0dCsvTDljU3drYXFpY0VaVGp3TGVzSCtnQzdJVUhOZ2NKTlFWUHBSRGQwckMweG94TzZkLzk4d3NDTDZmN2dIcWNLR3VJN0dGc1U5akprSHpmU2hvakpIWFYrVTRkK1FrUFRLWTQ1Z2F4dlN0T2EyYzNLNnQwSU5xc204aktBWHNvVHNZUStFMjZRTi8wZSs3SjY4WUdUSGFPayt2M2NiQ1ZHakVkcE5ZVWlTN0dMcTYxekpwVTI0SCtzY0xIUVVZRjAxeWdIZGk0SjdDQzhocUNOeFhnVUJhMlVTZWlpUXFMbGVZQU1iYUlIQ0dnLzdVOE9yZGlQWmN3Y1BTRVhpbUhQQWFIR2VKQldsQ1RhWjYxQnVqVHZmV1JQaXRVUSsrWEYyM0wwNDlJbDRVeHFaTlJ4T2h4eFdCYUZBM2RsL0I4U1VIV05aSEJ3NEVjcjNsQ1hPVXZGYjRtWitWYjA1VXNIQzJIdjQ3elNHS2d2bnV5djlwS0hGQzlBSXFrSEtFTG5OcHl6OTgvaUQvamtkczhjT0RRbk4wa05kWU5EVVZZOE5NbTRvTjVOM1pVRWVmaXc3ZThydjZuZTFLckZhcE1OMmlramgzclExcHJXaTZyVzJtcVZlWldHMlVkcVcwRUhsV3lyUGdpR2ZyRklYTS8ycTFJUlFwUEg2UUpzSjUwU05KaG9NOHEzSWZldWNMQkh6RU1FVlVINlpQQ2lBTmNUekxjdjJmdnFUS0ZFUmJmdkNZaWhwZnBnek5JZzVucXR6TXNQbGRWNEpma0NlaFROZGpZQXpXTEFrYjNUT2thNGJIS3dhd3lvPTwvZHM6U2lnbmF0dXJlVmFsdWU+DQo8ZHM6S2V5SW5mbz48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlGNXpDQ0E4K2dBd0lCQWdJVUlYdjlPVnMvWFVpY2dSMWJzVjl1Y2NZaEhmb3dEUVlKS29aSWh2Y05BUUVMQlFBd2dZSXhDekFKQmdOVkJBWVRBa0ZWTVE4d0RRWURWUVFJREFaSFJVNUZWa0V4RURBT0JnTlZCQWNNQjFaRlVrNUpSVkl4RGpBTUJnTlZCQW9NQlZOUFRrRlNNUTB3Q3dZRFZRUUxEQVJSVlVKRk1ROHdEUVlEVlFRRERBWmFhWEJsYm1jeElEQWVCZ2txaGtpRzl3MEJDUUVXRVc1dmNtVndiSGxBWjIxaGFXd3VZMjl0TUI0WERUSXlNRFl4TXpFek1UUXlOMW9YRFRNeU1EWXhNREV6TVRReU4xb3dnWUl4Q3pBSkJnTlZCQVlUQWtGVk1ROHdEUVlEVlFRSURBWkhSVTVGVmtFeEVEQU9CZ05WQkFjTUIxWkZVazVKUlZJeERqQU1CZ05WQkFvTUJWTlBUa0ZTTVEwd0N3WURWUVFMREFSUlZVSkZNUTh3RFFZRFZRUUREQVphYVhCbGJtY3hJREFlQmdrcWhraUc5dzBCQ1FFV0VXNXZjbVZ3YkhsQVoyMWhhV3d1WTI5dE1JSUNJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBZzhBTUlJQ0NnS0NBZ0VBdTNuRlhZdklZZWRwUjg0YVprZG8vM3lCNVhITStZQ0ZKY0RzVk8xMHpFYmxMa25mUXNpTVBhMVhkOVVzdG5weHc2UC9TeXpJSm1POWppTU9kZUNlWTk4YTc0alA3ZDRKUGFPNmgzbDlJYldBY1llaWpRZzk1Nm5sc1ZGWTNGSERHcis3UGI4UWNPQXlWM3Y4OWppRjlERkI4d1hTKzVVZllyMk9mb1JSYjRsaTM5ZXpEeURkbDVPTGxNMTFuRXNzMnoxbUV2K3NVVWxvVGN5cmdqMzdQc2dld2t2eXltNnRGR1Nna1Y5WmE0U1ZSaEhGeVRoWTFWRnJZWlNKRlRuYXBVWWFSYzdrTXh6d1gvQUFIVURKcm1ZY2FWYzVCOE9EcDR3MkF4REpoZVF5Q1ZmWGpQRmFVcUJNRzJVL3JZZlZYdTBaYTdQbi92VW80VWFTVGh3Q0JLRGVoQ3d6KzY1VExkQStOeHlHRHhudlkvU2tzT3lMTEdDbXU4dEtrWGR1MHB6bm5JaEJYRUd2alVJVlM3ZDZhLzhnZWc5MU5vVFdhdTNpMFJGK0R3LzVOOURTenBsZDE1YlB0YjVDZTNCaWUxOXV2ZnZ1SDllZytEOHgvaGZGNmYzaWw0c1BsSUtkTy9PVmRNMjhMUmZtRHFtcVFOUHVkdmJxejd4eTRBUnV4azZBUmE0ZCthVDl6b3Zwd3Z4TkdUcjdoMW1kZ09VdFVDZElYTDNTSE5qZHdkQUF6MHVDV3p2RXhiRnUrTlErVjUrWG5reDcxaHlQRnY5K0RMVkdJdTdKaGRZczgwNndLc2hPMTNOZ2EzOGlnNmd1MzdscFZoZnBaWGhLeXdVaWlnRzZMWEFleVdXa01rK3ZsZjlNY1pkTUJEMTZkWlA0a1RzdlArclBWblVDQXdFQUFhTlRNRkV3SFFZRFZSME9CQllFRkk1VVZMdFR5U3ZiR3FIN1VQOHhUTDR3eFpxM01COEdBMVVkSXdRWU1CYUFGSTVVVkx0VHlTdmJHcUg3VVA4eFRMNHd4WnEzTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0lCQUJBdFhzS05XeDBzRERGQTUzcVoxelJ5V0tXQU1vaDk1cGF3RkNyS2dURVc0WnJBNzNwYTc5MGVFMVkrdlQ2cVVYS0k0bGk5c2tJRGErNnBzQ2R4aFpJckhQUkFuVlpWZUIyMzczQnhyNWJ3L1hROGVsUkNqV2VNVUxiWUo5dGdzTFYwSTlDaUVQMGE2VG04dDB5RFZYTlVmeDM2RTVma2dMU3J4b1JvOFhKenhIYkpDbkxWWEhkYU5CeE9UN2pWY29tNldvNFBCMmJzalZ6aEhtNmFtbjVoWnA0ZE1IbTBNdjBsbjF3SDhqVm5pekhRQkxzR016dnZsNTgrOXMxcFAxN2NlUkRrcE5EeitFUXlBK1pBcnFrVzFNcXR3Vmhieno4UWdNcHJoZmxLa0FycnNDN3YwNkp2OGZxVWJuOUx2dFlLOUl3SFRYN0o4ZEZjc08vZ1VDNVBldllUM25yaU4zQXpiMjBnZ1NRMXlPRU1venZqNVQ5NlM2aXRmSFBpdDd2eUVRODRKUHJFcWZ1UURaUS9MS1pRcWZ2dVhYMWFBRzNUVTNUTVdCOVZNTUZzVHVNRlM4YmZyaE1YNzdnMFVkNHFKY0JPWU9IM2hSNTlhZ1NkZDJRWk5MUDN6WnNZUUhMTFFrcTk0amRUWEtUcW0vdzdtbFBGS1Y1OUhqVGJIQmhUdHhCSE1mdC9tdnZMRXVDOUtLRmZBT1hZUTZWK3M5TmswQlc0Z2dFZmV3YVg1OE9CdXk3SVNxUnRSRlBHaWExOFlSenpIcWtoanViSllNUGtJZllwRlZkK0MwSUkzRjBrZHk4VHRwY2NqeUtvOWJjSE1MeE80bjhQREFsMTk1Q1B0aE1pOGdVdlQwMDhMR0VvdHIrM2tYc291VEVaVFQwZ2xYS0xkTzJXPC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+DQogICAgPHNhbWxwOlN0YXR1cz4NCiAgICAgICAgPHNhbWxwOlN0YXR1c0NvZGUgVmFsdWU9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpzdGF0dXM6U3VjY2VzcyIvPg0KICAgIDwvc2FtbHA6U3RhdHVzPg0KDQogICAgPHNhbWw6RW5jcnlwdGVkQXNzZXJ0aW9uPg0KICAgICAgICA8eGVuYzpFbmNyeXB0ZWREYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyIgeG1sbnM6ZHNpZz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyIgVHlwZT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjRWxlbWVudCI+DQogICAgICAgICAgICA8eGVuYzpFbmNyeXB0aW9uTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjYWVzMjU2LWNiYyIvPg0KICAgICAgICAgICAgPGRzaWc6S2V5SW5mbyB4bWxuczpkc2lnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIj4NCiAgICAgICAgICAgICAgICA8eGVuYzpFbmNyeXB0ZWRLZXk+DQogICAgICAgICAgICAgICAgICAgIDx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNyc2EtMV81Ii8+DQogICAgICAgICAgICAgICAgICAgIDx4ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAgICAgICAgICAgICAgICA8eGVuYzpDaXBoZXJWYWx1ZT5RRlduQ1oyZDhaS1J5ZGdXenBNazBVbmJBek55Q2kvUnUvd2RjZFUrTzR4Tkg0V1AreVh2WkZ0MXkrY2lmZHhIK3VYajlwcEtheE96T2JIL1pEaE1RSVIxSXVmS2xNUmVDSFJ3clZWV3FFRkZNS2Q5eXIrWFU5U29YdjEvQUdsSXBSQjlvbkhubTVidDljOFMrZ1ZlRFluRCtLblptelBlMU5KY1AzUmcvdGEwZUxIMng5WkQ5V3QzSUFYOFY2aXVXY0l0d21kakFvRmJrc1ZoUC9md0dpK0FRYmEvYksxNE5WVGtKS0lyS0s5NlV1dlBqTllpbitQK0JoSVlxdFhWSnA0Qm1pT1lKS3J5dVlnRU5vRzh4aUoyZy83Sk5RR0VjV0xOZVBkbGVvUU1BRjYvMTFDRndZYXVkOFcwQzlBSElBMWtFOWRmd01zN3pWZkZsREgzM2c9PTwveGVuYzpDaXBoZXJWYWx1ZT4NCiAgICAgICAgICAgICAgICAgICAgPC94ZW5jOkNpcGhlckRhdGE+DQogICAgICAgICAgICAgICAgPC94ZW5jOkVuY3J5cHRlZEtleT4NCiAgICAgICAgICAgIDwvZHNpZzpLZXlJbmZvPg0KICAgICAgICAgICAgPHhlbmM6Q2lwaGVyRGF0YT4NCiAgICAgICAgICAgICAgICA8eGVuYzpDaXBoZXJWYWx1ZT5oeGdPTnFnaXA5Wmd6Y2dMUitxc0poWFJPTWhrQ3J4R2dkUTN3UHhQMGVGMFk1UXpYRmQzRUJTRHVUYTl4YnBhb1RCdGFOQ3FnditLbWFKeTJxU2NVL1EzYXBWUmI0WEM5bmU3L1VFcDVrR0hiV2xyVkxZZUNTNnp1VHJSKzNmMzhzd0ordlg2cWZFbC9GbTBEV0VHaEFIWnhtMm80Wk1QR2xXRm4wMnp5c3QvdHdRL3Foa1RodnQ3akp6RVlTRFc2ZjBEdlpkNXVoTDRIOU9XaGZoNTlIRnloZzRncUp5a05Ha1pUQytEckc1dDh2OWs5ZDVHV0ptam9nVEdzVjVCTnJaclhBMmtjQkM4Q1VlL2w3Z20xSXF2Ymp0OW1CN2g5alVVVU5LWGVBeVR6MUxRRFN2aS9hbmZVZW40UDZsQ1dmanlsVnFmdnFnS3EzamVWdzBhUHVrZlllMFg2UFAzbDBZR25CU2h3UytJeERpNUFMREp4ZlBiM2M1cm9sR1F2V3Z4T3VYeVFxMHRIUThQWXNPajVKc2t4Q2FoY3NWYjgwNHlLeFlKcWdGRDJKdG14b1BIK005Y3F1VmRTVlVqUk5nU09XWjByVU5WU2ljRjlrOTVMYkJLaFB3WUpXbVdwWnBJb3FaeE9WcUdtcUNrdG9WcmhaeUY5TnNWN2JMQk5ubGt5LzZIMy94SExDamx5dkNyczNQd3VnOERkTzhLUTcyTmV0WEtYN2kxS1RiNi9lcVErZGUzeGljUWEvcEYvNDVQZ2EySkVKc3FvVWpRUEJvSFY2ZzhpM1RxSWtTWk15c3FmWE1Va1FRelVveU96VEtjTmFrVEx1VU4wUEdLQTR6OGNYbUM1ZmlTdTJNMVdVT3hxYjZ5bFBVRnl6RGtzUzEwU0dib3BWQ1NqMk1iUnIyLyt4ZGNFUXlhTlFPVCtMTGN0MXRaczN3NzNVRGtIQVlMS0NvNFROOVdPVkhRSFYwWnh4YnRsOUh4R1hvdXJSeDN6dDFXbjBBc0kwTWZBbVpJUVZmek0zMTE5eXgrL2VaTzhudnVXWWhKSVdjOUtwQi9XSzdBL2k5blRobzhOaGFKWU5jYWlLMlM2TzNWR1laNFUzRUNxZzlmQVI1d0FUMk5tTHpZMmI3K3lUTWdJWTRDTXl0Smp6NFA5MDhOay9DVDF6cEs1dkhQcWNhK3dHVEpnOEcycnlnL05MVXJKM3pEbkhhQTZDazRjRXFHSFQ4dUtnSWM0NHo5bERCemtJaXhXYW5FMVVvbkpNTnlnNDNvQXQyWnJTN3k1TkdsOWhKbythVEtTWjN5bVFNTTUyMWR2MmFGWmplTEhISncvYThvS2JQOUt5UDlpL2d5SWdGaXF4UDNKd3VwdFRIQnVqZlhMVnRyT0FIcWlZODhqU2svbzJmUzQ0di90aXhOcUI1a2FoU2dsNUhLVXJjQjJCVlVoRjY2aDhyWjQ4YnFEWElRN0NET0szZ3JoNkxrcmpFcmNsRityRWZqdWZ3LzRkRjZ1ZXkya2ViNjY3RlNYRTNEaE90TXRPV0txaVl1b3FiWm5OMm13bGdTTjBwRkprODZaWEVQUUtkMTlOWkloVWdMYWw3OGZadWJicHFYOXhqd3pTY2c3VUE0Y2JGUTdGWFV0eDg3dGVyNS9wcHByOGk3RVE1Q1RId0xzWEV6cWVQTEIrZVBCRzB6UDBsbVdNSkxxVHJJMC9KYXErK0l6RzBBNXNVZ1lxMUFsT05WZ3hsMGVPQ1pDVmVrby8rTHg4RkdDdzJWcGwzWkNqRGN5c1FCYkZlWWpUWDJSVG1Xa3ZrRmRSSDQzK2RsY3ovQmlDZWZQMGtISzk1by9iYWoyeHl1bGgrV1g0VUNkWWlNdUcvR25wQVU3NTc5UjNEWFlxMUhaRDRibEg0a0phZDlVZ2hFOEoxaXdacU9zVWtTM0RBMnRpWEZmbW1VSjFIbWpYU1ZHckhSUXExMFRncnBycW5DR2ZrUTUwbGxlMkhIUkRmLzNpQ2ltYUQxSkRnc1duYytyd2QyWlVtVkNFQU1pUG9xQng0cGdqUmtQOHZsa25QNm1NTEcvZkNEb0Rid3I0U1o1RDRiMkFPcjFWTVBoRDBGQlpBTC8wUFE5aWFETi9acHkydVBTRWd5ck5kU25GKytrakdMMnJQTUNHdFNJMUIwWFZudmE0NkhucmQ4ZGVVcUV1QmRhWWMwZW1JWkxuRVZ5OW8xTGhoeFNMamNEbnhlWk41ZW0zclNHdUVUN2MyMzAwOWdwR0hSOUlSU1RHZ2RVTTQrdmRycStBbHJtODlwNG1na09QUjNpdFU5UkVoMGQ5N3p3cGF2NkZRZ0liQXI0bEZDNTI0Y1hQTkdxeC85U0dodUt2enBoV0RqM05hK1phek90aUFIeTF4dklPZXk4eTBzMXJoWC9MRVRJRzZEREhaaU13eFlMbHF0c1piM3JlNEowOHBPUW9SdmVLSVF4amNwZVJRZWxuWUlsTkUvRlUyaktaeGNkakNjSDVxNlMrZmUwQW1iVng1ZDRaWi91akhnNWtycWlWWHpoMW9uTzF2WTh3emdORm9Ha2d4RDVFV3luSGFWN0ZKeWhwdUYrdVRvRG9nSjROcHo5eFQwVWNPVkJnMDl3T2VYak9vSTVsOWwyOWRZSlQ3TTVmcTlXd3B4QXRZaTI0Q1JZMkFCMEo1U3BuY2VKOVBFUlhGak1zaFpUM25LaTlxUy9aRVBIb1hwVmdpWUI2dHRSOU1NNUpqR1JJeXlKcnQrN1FtVHBXSzBSSitNcitqbWZ0V25vbThwN0xiL000YmY3dHFQZUFocXVOaWN0QmQ5eTEzL0p3MVVVSjdWR00yK2srRlpQN0tuc1Z6M0hWcERya3VXOVJJNVRDb2xmNUwwMXRiMzRjRjVDeERXb21CcjBkTHpBMkJBYlpBT1E2VEFUK0dvYXNNbC9mOWlMWi9FUks5NFJQbXkvdUtrUlN4bnJBRGorUkpZN1kyUi80UzJIV3A0WHZramJ1MnR5ZWVlTndabWR1SFJLZTVhNmY4SHJUZDlVdGljWTd6cDlJUnJlc2lBTjJoU0ZJaHAxZ05WaysvaXZBY1Rtb3k5b1dER3l2bzFwdEdpeHV6bGc1eGJ5SFRKa1VJWjFJVFZ5STNjZGozN3IxOVZPaThzaUtNZE5vOWtNY1Zsd3RCVkF3V2hDVi9wUlV1YjUzZHBSRFF0VDVCd2k5R3RPSE9YZ2FNYUc2REkyd0F3bHVBcWRYemlRQi9ZdHE1RStJYUIzaG1XRmxQTkN0WExQZ2JpSVBlM1lwNk5YeGY0VjRaV0VwWG9IVmZiYTZmK2k2Zm1tVkYxZThQeWgzVFFNamJSUFFtYWxLNnB2T1VSeTdha21URHEra21BamFHUnBpQnEwSi9yUkgxVUZyOFUxRmg2Q2NPN1B4ZU1QWHdOVGhVMSs4alMrZnJ0TXp1UVAybWJIT21telJzUWRNcE8wZU9YQU5VdVFza1pXZ0g0SFVqSXlVOGVESFcvL25zYnN0L2xxSWhUcjMzRnhtT3p4NkkyRXR6TEw1OWhzVlpIckZIclRhTDVoMWdud00xMmJBdHpyTTBEMzExZFpjaWdMWWRFUkh6WWhWOEkrZWFoOUtybGVZRGs2S0xBVWQwcm1FRnl3MzlVa3JpUW4wU0dwYTZ5N1BnY2V4ZklMZ1hVeE1wWXdJQnZmd0NVaTU3ckRqQWU1ZndyNTN4RkJxQWdSN1RjUHQ0TkF1cDRoYmtiWHNIUDNrVm5tWm1vSHRsSDZ6eW1qdUROaUpYYnFCWTFrVzNicER4Q2FvVmU4YmVSampHWXl0TisyREp3b09scmpSUi9FWjE4Z01vN1lJUk1FMmhoVW9Wa3kyWU04cVpUR0Jxcjk3L2pFRk1nWGlwam13ZTF0Ny9XWFpIMXJVRXI2QmdKeEt6RDBSdFczSXIzeFdmWk1xN1N6SzRyS0huQldOQ3J0VE5LT3FiRnY0UWxJR05sUEdNZHNXMHBWYmRyTkJTdGlhRjRQMWkrUEVraHNWc0h1UWcxQ28zWmlQZmREblVzVWtOOVJoWDhoQmkzT3JsT08yMkJrRDVGT1o1U0xjYjFwbFRsMjlFT0ZvRENWbDRMcXA5SDdPRjFQNG4wczNhankzZTVMUlVJbW9FdE1DR1pVQnpUNStiL1J4eFlneHp4SmJ1WU5DUjM3WGRLK2ZUMHZaSGo3YVB5WEJZUURIUWpHOFVOWVprNnRqMjRyZkxUM0dERzR1aUJBcXYxa3pyd3ZFVVNuMW9JaStLa0lxNUFTdzFPQ1FWMDBCTTk3VXpFMTZLOUtzNTEvcldhdU1BSzJOSHBvcmkzUEFYbTg1MzhkSEtRbmpFWFBGM1o5dDJzKzU3VmxPODFiazJ6NVZ4WDJGenRmNXZybUJORG5vQ1V4eTh1UXVuTHh0S2FrZHpmaDN6ckxRZVRpMjdMVnRMeGtEemJDWVRoWG52YU0zVEl1V3BGeTBTeStGRXNZaXNyTDh3L1F4WGgzRG9RQ0kwMTIvSTVoeXd2Q2VHUHR0VjNicld6MmhhM0drbVgzY3Z5QlpBeWM2T3dhOUhQMnRuTkhPV1VQTEp6TDlWR1IvUXRhM1R5Vm9TMUcwZjg3NGlnd2hBVlkxYUhFbzNncEtrRkpRTFc5eWlGSG9oRzg4aGlxa3ZWTnduc2kyVHZaVlBVbVU4b0xEOEl5VW5WaXd5NzZlMWh4UkRqc1B3VWxsOWdyWU94aGkrUUpQN2xHWjhSc2lPT0lWQm5WSjczdDdQYjVDOXlzbXJuMlNOdUdIUTFTYUxFaGZQN0UyU0FsQ0FETDRDV2cxYXZCK2FPQk9OdEx6Y1ZtV1lRaVk0T1B5dS9iR0pDTmhQcVRheXJLZzMrUTVaU2xGd055UkpZcDcrOUZxU1ljRk15ellPQlYvVUZjU3ovL3E3NU9uTHBzallOaGlwWVplNjgxLzhIR29QV1h4SktPMHd2U0RyNmpYcmJrUHlBSm16ZGtRWEFmYTlNMmNadS9aSTVRVnB2MW5qeVU1bDgxbjhOeDhVVkNrVlY4OFNsS3BlVzZ4QmNpa3JxWlp2NEFsakhKRXVVSzFYZUNSU0o0VU1MU1RqeXg0eWw4cTFmODgxV3RlWE1kK1FOUUtORkJ3b2o4VkNQZHp3Rmtub0h4S3ZmVHJ0TnJVYWlyN0h5L2VsbVNxZExqdUhpeStBRGRET2dLQ0F3cWZ1TGFWb2laWVhENENmVUozTHg3cUJYMDdZVysyZXk5NUdFcEdYVXJyM1lNRTVlT2NyZnZacDNVeTYrSkpRRFZqQ3YyZGRKUHVuWEI2OEFkVzNkTGJSR0lhQVJSV1A5MnlSMFFJTlg8L3hlbmM6Q2lwaGVyVmFsdWU+DQogICAgICAgICAgICA8L3hlbmM6Q2lwaGVyRGF0YT4NCiAgICAgICAgPC94ZW5jOkVuY3J5cHRlZERhdGE+DQogICAgPC9zYW1sOkVuY3J5cHRlZEFzc2VydGlvbj4NCjwvc2FtbHA6UmVzcG9uc2U+
+PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c2FtbDJwOlJlc3BvbnNlIERlc3RpbmF0aW9uPSJodHRwczovL2NhZGljLmV1Lm5ncm9rLmlvL29hdXRoMi9jYWxsYmFjay9zYW1sIiBJRD0iaWQyNzA2NTE5ODIxMDM3NTEzMTY5NTkxOTc1MCIgSW5SZXNwb25zZVRvPSJBUlFjMTQ2NzM1LTU1OTItNDY1ZS04NGY4LTA2MGNiNDQxODJiYSIgSXNzdWVJbnN0YW50PSIyMDI1LTAxLTA4VDA4OjMwOjI5LjM5NFoiIFZlcnNpb249IjIuMCIgeG1sbnM6c2FtbDJwPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6cHJvdG9jb2wiPjxzYW1sMjpJc3N1ZXIgRm9ybWF0PSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6bmFtZWlkLWZvcm1hdDplbnRpdHkiIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIj5odHRwOi8vd3d3Lm9rdGEuY29tL2V4a2pxd3VncmhaRm5rSEFqNWQ3PC9zYW1sMjpJc3N1ZXI+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxkc2lnLW1vcmUjcnNhLXNoYTI1NiIvPjxkczpSZWZlcmVuY2UgVVJJPSIjaWQyNzA2NTE5ODIxMDM3NTEzMTY5NTkxOTc1MCI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM6RGlnZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmMjc2hhMjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPmJyT3UyemptUnAvZytDMFc3N0RqL0o3UUVlQ1pXcWtPUE1NNHVIVFZiQW89PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEluZm8+PGRzOlNpZ25hdHVyZVZhbHVlPk9jN0hUQStzR0tGZlhzaHgyVmw0V3lyeWdiUkZEWTN4d0dMaUpOOVVyWFNaQW9qSWgvNk9xeHBONUdURHR1UUNwKzBMT0UxRERjMWNqOERhQ3dlaG1JV0NWelhPOHRFWDhkQU5pSExqZ2NmUWg1S0xNa21LODdoM2M0RXNDUGlFUEhTSWVyUGUxUzBtekE5ZmFZV2RFaExzaEJVcU9FMzVBOStaYStjZmphUmhDaDRpYjA4ckppUmVZTlNXcjBZZzMvVVl5ZGRsdVI1My81Y25hcmg5YU54akFiQnoyaGNKZ0ZmK3kvRWVVaE9iSUp0M0YwQnNzVWthU1R5bzhzUzJNSm1wK1VzMlpjZmtkK0VTL3AzTm5oS3NGMGNZU0JDN0ZrWlYxWFBQSUxiV2ljNU80TTJaRmx5RElYeVhCWFkydURuQ0RpTDRHNFE2SmE2MFl6cHlFQT09PC9kczpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5mbz48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEcURDQ0FwQ2dBd0lCQWdJR0FaSUZoekptTUEwR0NTcUdTSWIzRFFFQkN3VUFNSUdVTVFzd0NRWURWUVFHRXdKVlV6RVRNQkVHCkExVUVDQXdLUTJGc2FXWnZjbTVwWVRFV01CUUdBMVVFQnd3TlUyRnVJRVp5WVc1amFYTmpiekVOTUFzR0ExVUVDZ3dFVDJ0MFlURVUKTUJJR0ExVUVDd3dMVTFOUFVISnZkbWxrWlhJeEZUQVRCZ05WQkFNTURHUmxkaTB4TVRNek1UazJNakVjTUJvR0NTcUdTSWIzRFFFSgpBUllOYVc1bWIwQnZhM1JoTG1OdmJUQWVGdzB5TkRBNU1UZ3hOREkxTXpsYUZ3MHpOREE1TVRneE5ESTJNemhhTUlHVU1Rc3dDUVlEClZRUUdFd0pWVXpFVE1CRUdBMVVFQ0F3S1EyRnNhV1p2Y201cFlURVdNQlFHQTFVRUJ3d05VMkZ1SUVaeVlXNWphWE5qYnpFTk1Bc0cKQTFVRUNnd0VUMnQwWVRFVU1CSUdBMVVFQ3d3TFUxTlBVSEp2ZG1sa1pYSXhGVEFUQmdOVkJBTU1ER1JsZGkweE1UTXpNVGsyTWpFYwpNQm9HQ1NxR1NJYjNEUUVKQVJZTmFXNW1iMEJ2YTNSaExtTnZiVENDQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DCmdnRUJBTEUzODlvUG9aY0x5d3JWZEJ4TnY2UHFpKzducGlFRmZtb2p6WHhvTlhCZmNzTzdlbS9mNnlzNzM2S1M4aWJYQ2Fjd3ZlMGYKYi96ZDlVTU8rS1RQeUEvWUVrVEMwMmM4TGJEVDVMakJwMG1qU2h6S3pYMnFiZHpSZ0NzRmZpS3dxY0F0b1MvMzUxblhGUitkZlp6Sgo1UWIxby9Ub256OVAwaVVLaVZKcGI2V2lGN1RXS3JvZnNqNHRBb0d6R3RveWZVbU9UdUc3VGJ4RHJZTWQzQXBraHZjZlJjLzZaTGtzCnQrQThpQjBqdnFNVnZpUXhrYjdkWXdTdlhZWVNSOVVRNy8zUDVJWTV2a05vSnlJRy9ZY3RlU0JKWXEvMEY5TThCRUlhbTNyNkxTckgKWG53RDQvOWFKcHVEV091YWRTQ1Bpd093SFF2MzF0aExiWHU5VGNMV0lSc0NBd0VBQVRBTkJna3Foa2lHOXcwQkFRc0ZBQU9DQVFFQQphRkdIKzBNYmNzNitaYXFUVWxKN1BuK3ByZWpsSnB5MVVWLzhxR3pDcjFvTngvZ1B3VHFuQ3Z4RmM4dUFzcGJwblVqQnlHUVlGZmEvClFDdFA4ZDhZdUhxSmdzK3lJVWw4SzhXZFdEZ2wrc3VobkRRS1RHZkNpbjU2b3YvWWNhZFNkQlJWK09sZFpwUHlKM0xtVjlNa1AzT2sKTVU3K0ExeTI2WWl1MDBwK0p5TmRNZXRoZnN6dTBZMjV2clQ4ZlpObEtCcEg1a3dQYm1SaWNnTU4zUit0Tkd0amd3TXRRaFptcURpMQpjMFNTRXd0d1J6N0tIb0NmZFpOK3NDbk92MERHYmN1UFZaeUNXS0lBMG56aHZWcmlRWVFsUktCVTN5ZEJZRjVVU3NyVHFDRHpyaGFHCmJqK0tURm82RjRmalQzN2ZUL21EaGgrR0tDUXViTnlHSVdEUk9nPT08L2RzOlg1MDlDZXJ0aWZpY2F0ZT48L2RzOlg1MDlEYXRhPjwvZHM6S2V5SW5mbz48L2RzOlNpZ25hdHVyZT48c2FtbDJwOlN0YXR1cyB4bWxuczpzYW1sMnA9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpwcm90b2NvbCI+PHNhbWwycDpTdGF0dXNDb2RlIFZhbHVlPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6c3RhdHVzOlN1Y2Nlc3MiLz48L3NhbWwycDpTdGF0dXM+PHNhbWwyOkVuY3J5cHRlZEFzc2VydGlvbiB4bWxuczpzYW1sMj0idXJuOm9hc2lzOm5hbWVzOnRjOlNBTUw6Mi4wOmFzc2VydGlvbiI+PHhlbmM6RW5jcnlwdGVkRGF0YSBJZD0iX2UzMTdhYzgyODU2ZWE3OWJiOGQzODVhODc0OGQzMzNkIiBUeXBlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNFbGVtZW50IiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPjx4ZW5jOkVuY3J5cHRpb25NZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNhZXMyNTYtY2JjIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiLz48ZHM6S2V5SW5mbyB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PGRzOlJldHJpZXZhbE1ldGhvZCBUeXBlPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNFbmNyeXB0ZWRLZXkiIFVSST0iI18yMDMyNmNmMDNmZTQzNGQ1ZDQ1Nzc2ZjczZGUwNGUwMyIvPjwvZHM6S2V5SW5mbz48eGVuYzpDaXBoZXJEYXRhIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI+PHhlbmM6Q2lwaGVyVmFsdWU+cDVBcCt2QVhyeHNXSEx6blhhOXk2bFJYQkhseWNNaWZGYjVKaGpxRitVTW1YYzI2ektqNXA4U3ZkMDN2Y1lGRlVBM0FjRmZJcXkwemdYM0E2MWx1Z3Y2Z1VNTnFCTVFSUUpMQlpPQmZ3U3JOcGdsY0puWXZGUXZwaEt6Vm91UG1Vcys1ek9QZHVWamgyUndGa1BBUHVVK3lpNjc1TG5Fem5hckZZMHI3YkJTRVBlQmptZ3kvSVVvRmdveC9DMGhlOHJSaTc2a2pWbS92US93OUlNVC9aNkh2OG1iYWY3WTN4WTBSbm5KWEkzUS9jeG5PWU51cjhrR0pBU0NTakFMMy8vZXdTNG9pTUVId3lTVFl3UGk3VDY3WWU0V3dCRGo0V2hqbGJFVHpqUW02WlhoOWhnLzVhTCsrQUxPSkRQRnN5UDBoZnJUUkg5clBFK2hhaUEyQkZjOTdpcnd6NGVpMzl0T1dZRXR6L2dCQjB3M3dxUEw0dHphQjZndmJGaWpUWW5jYllYS0ZqN1VCUlJmK1pNbHBETmNRM2ZhMU0vemlTY1lPdXRsZ0wrb0xucGcrc1JsUDFEOExVNWpsNVFadWl4SHJod1BmdmI1d010K2tZalNNRkhUOTV2MFhpRUF6QzZFV0lUVGFCL2FEQ2hNRTlYclM5cnBTaThaQmNkZHdSN2ZZQVV4ajRrWUxZMFI4cW15TEtOOThGNUpMNk1DQ0NYWFBXMnlmUVVhcGh5d292bE8wRG83UUpZc0wxbnVtRjEwa3RHLzY0R0ljazZhY2dORXo1bXVZM2xoc1hLWVQ5ZGxOK0Jtb3hxZ2F2R21PL3pycmt3Vjh6SXpCbG15ZTVvd2lZNStIUkhLNnEvYXg1L2V2amcwSndMOTBSajd1M2w5aEtVRlFnUnhodFl1dWVpcFI2NVBQM2dEbGpaSXVYWDJweGVMQ0NrYi94VXI3dTlBTFFvcHJxNnF3QTdOLzc0MnRvSCtINHV1dit0QnVmSU9EdFhhNUhxRkxjZUJYVnhjRDBjM2pybGhGUWM5Mm1vSEtXTmY3MHRRMi9YaDRiWU1KTTZiZXBKZURjVWtMeWQ2a1EycGVqMWorbTBpOFNncWY0WnkydWwzWFlpTGdVeHI0R1FCQ21vZHZKcFlsb3NtMTYvVWFhMnJ2TDh3Sy9MeXZ4K3pwUmtBbkw3L1BhWi96NmZ0ZmI3MTJwYzRIMjVqa1FuelBqRGkzZkxuZENwRkt0MnpmakM1TmR6eXZuMEk5aGl6K2UrU0xVTVcxMTI0bUY4bzI5Ty81M2xJbGxjSVRNbjFXdWlaYnMwMXJQMjZ5azVsRUZSVTZBeXo3dTNTaGtXTTRLd3lLMVNoTFpHZENBQWVHVnByMTM0dGtVTmpKL0I2S3REK3RObDJvQUREWHJTSTV5bGdwKzFxTENpWDYydi9jWUVXcXdqbEV4bnNldDI2MzBLL0hxb2RXNTh0QW1zV09ERnhaczljZncrWDBNYnJhbVZvSExkZ2lsYXpvazJERVZMQjlUSUdlQ3RuTTBEeVdxVlU4dEFORCt4bEE0UmZtUTRGSHlMMnQ1UlQxZEw4Z251U3BrRExDRGhCQzA1ekc4MEdZb3N5QjZKZytwTnJSK0E2dkozb3NjQ1lud0ovbWhndDEvOWlKb1VqOEM0ZTFNSy9RcDM2OEZIZlRGSmQzU3hpMUI4anVsVzFTVG1oRUo1OWxsNU5KcWMrc0tpQVRZd3BuazJ5TzdRTllUMDhGaGhrRlBoT0lHT01hUGt3b0pTOXkvc1dSVkJvVUZXdmp1MkZZa0xWMURLenJNVnlBd1ZJWVNMTmlDZ250eWZCUldicFZnWWN5QWc5S3k5TWVmWEhCWHVnZk15QzRHTnlyQVNMaytuZC84YURWMmdickpmWko2ek1MNXduQU5EZElOWDhheTYyVHJSTER1djJ4T3VpV0U3MjYvUE1NblNVYjZsM3psSC9UUytkb0RYSTBtallNYXc1VlFhVkVHWmZIM3BqcHhkRVhTZjBWQzFvRHlJZjhCb0docWVzVWZQTm9rTHJEU0YybEVSVkxUVVF0NkRyUjFKK1dKaE43RHNGd2l4dllhVkhVcjB3VnZBR3Z2ZjBHL000M29hQ2duOVpYVU5KeXRUTWxTbzlNckNBcHdhZzlUMnZXdUprU2RaTlJVRkpQcWRSejdaWjhvWE5MME9nbGEzQ3NaVTU0TUdkaU82SU5qeFRBd1dTUGdNZm12V3FOT1dvK0dpQnJ1ako2d2NXWDRQVzNqVmF2SWlES1ZQNldvcWNBSEJsbWRPR2thT0ZQWGRSMVdmNElvOFFrbHVhMWU1RDlkTnhhVXpMMitRNFhlLzY0NUh4NnArYzU5LzFyYlhiazVUckRjMHFRNFVnaXZCVFNSamVlNmgwU1crcWJkRUhDZkRaVEd1Q2VOL2k4WjlYMXJjVkV5c0lUVGxNR2tyMlhFTVdoVTdKbWFSRWFHQ0wwTFV0TFFLK0lPVWdzNkMxU1I0THl5TGVFQXhxQjVBbXF5N0JMdzY1SHdWVTJrUnVWTnBRcHFLcmJLTURWKzdtRUtGVG1sNkpqbUw1WXpLVElZYjkrbDQvU3JpNFJLbVUrUXVVZzJuV0M0eHY5QUlSZnRZdEhjY0Z4Z0c4YXJ4QTVxN0l2R2lmWEhiSEhDNzl2cG9rSS9TaFdzd1gxYkFacWI5MEFhUzBCOGpHbGwvVWN2cDhpc3RTUDJYQkZpOXdBUm1udmIrRmxvLzZRQWl6dlRLTzJrT0lHSXpCazBXSVgvd3ViTW41ZHFNOU1pcmI0d1YwWXFnbVRVWDNFaXh4cEV3M1MyMFUwWXJsWlZOQ01DR3dkYm51WnQxeE92U0U0SXNNSTE1SlMzSXd6d2NmSFlwSk56UWM3UkcrM0FrNXF2TG1ZeWFHSncwYVhjbU5pK045a3FMSG5rQVY1YkFWakdQckpGbGVCVnBtNm5LZ0V2aStJZFlpNlA5QURSaW44WFZwUTdhOGpMcmRQSnZPa3FZSGY1T2doS0drQTZuNG1LM3M4MzJnTkM2dEdRYjBYQzlCVlFCRU9GMzhLOHFFajJHaEJRN2k0OHhmeWRCaUNHc2NNWlVPU0ZOaUFZTzhyeHpzcERwNFhpbDIwOU9veEZXUlVKVytzZmdQY3ZOWExjVnRlazZUTDFSTVhuMWs4QW8yR2xrby9WYVhxV1ZtWC8xNjNnV3hEb1RHbkVlKzZvMWhnMDN4clFTUWE1cWZKRlE2Z1BLTld3ZTVhRDdvdlFjS29TUURERXVjakgwZUFwM01ZRjVYRmtmc3pPc1lTSWlscHVsK2FNalNUMjZYRCtzU0FOcFFyU0g5REFVWW1jbGJKQ1NxUFdkL0wvRlZBWlpIVmdmUmxsalFpZmFwQnhQUmNIamJXWFg4Rkd6ay9GVmNVd2h4UTRaeEVxNWhVTDRTMmxINkFNdTd4NUpsWnU5Q0JiR0JCdllTNWNrUWpVQkFCSmpWa2xYMjVvSjVuU0grNkg2d0JhbGxSa1p2OTFyZkFrWkl5TEZLWXoxS2IxMHFZSHB5cnFDUTJseGZGT2NlMjlIdHU5ZW5YSkNUTk4zZzRVakY2M1MrZnNWQU5VWnlJbURGVlo4SDMwdXBKWWlhSEgwRXVpcnZzOGtDL3B2OXExWWJqWC94aFhFeC9yaDVrREU1VlRjaW5icTBueXpvajJ1cldnRnlkd21kZ1RLNnZ5akZqSXNDbUFta3ByeXpyK2dnWXk5ZDhsZGs1bXQzTG84RkZpY3dyM2k0Z3pScjNtUk96NlM4TWtENTFIS3RPYnBUQlk2bTM2ZnhzMFM2NFdHNWRxQ0dPWjFZcnRFeDNQeXhDazIyNzlYOGJhQ0tpY3BWbU9yZ1lNWUVLUU5STldsSzdBWExtNVQySkVXWEVNTjI5ZVNHY2I5UlRqMHlrZ3pMRTFCUXdxc0lvZGRNRUtBYVI3OXh3NnhCZnA4T0VnU1g0RGJrNDJMbk1VQzNsSTdvTTVpMjZJQ1Y5Szg4c1I3VjRuWVgrNFBHOGQwOWZKTTFuR0NYeUdkUVppSTZwMVdzdlJ2OHlqTnVubEtNMHdheGlWOURuWGlJOHdGWGI1Njl1OVFhMU9ITVZKOTY4RFhnYXNwMy9IcE5VdmdvRm4xaXFDZEIyUG9VS0VKaTVmQ3VROVozdThVQjBQTlFtODZsZ2IyRnk4cmlvRTRSbjhDM0tZVGM4UGlPQkFKOG1ZdUlqSUt2MC9vQUFZNXpFcVNLTy96TWd0Y0FXMFplWVlqWjdJRTVKMFJ1S3dEREFJUjFsSkVNLzViK1VxY3VtNHFpK2V2V2lubTZmYmdwQ1l1SjNsWm5qaFlGWXRpSVoxVW44dXpjeUpzeHk4enZiVm5DblRGVDUvaWNncVRMKzZwekNseVhaWkMrelAzSUFVR3oyRmVSK3JZdkRLSXhoY3JzK29ZTHpKaFBJck1Ic2dhY2swOERvcitGYmY1aE9SVmlRVTJ2ZDNMejVva3A1VGpXK2pyczlyYktWT2xCa2NVVmxNRWVHVXpQL0tGQWVsOFE5TTViZEUvSXVyMDlRQ21oUnR1YzF2dkl2Y0VZZHVzcjZJU3lGbHlXWFVRU3dpWDR0TkFFUFBQUEY1Ynp6N3dlaUJNc09NVko3aFpMYWVkbTl4RFB2bTUwUTZPRHBEYTdoWENucnJKL09UMHhxZjZ5aWw5UUtxZmFmUUNKNHVkbkJKdENnSTkzTkVaYkkxWVIzY3N6dHZFVzJqNUkzaVVTcUdsZFY3aURaQXIxODZ1OU9FUVZFd3V6MVR0UGk0MlgrQWx4TWxON05qYVZsdGhGZ0V1bVZWUXNSbFFWZVpGM2tnQ1Vma21zdHpia0pvSmw2WkM2TWxtZFQrWi9nMUV5dHlsTVhFSGVnN0UrMWM4ejA4ZE1aWnFyYzZhT0RVbTJWUXVnT0krMnFQaGZiSThMcU1zOEovSEdFN2tPYWJBV2kzWEJMUkVCZW56RmtYTEFoSUVmZllOYUpMcG16S1lERjJvc3BFMWFUNnR4UENRQjIxZU9tUWttQzdNd3JkSWM0YiswbVBrTndPMFk0eVZtZ2NQRllEd2ZiNmcvaTlPK2E0ZGVpWVFPb2d6Q2JRMnJtRHhXMU5XdU1zWitnR0dxRmRQd2JuMnZwSzhRNENEV2tEazE4YjNFYlVLVDQ4Q1orNzdGZUlZN3dJNjhyZW9Va2IwMTR6bzdzQ3I0dHNEVG5yMGVtM20xQks4Y2lKK0djNDY1KzZMdms3ZUJTbWtqZVBwUUxIczJpeDRkYUdiYUhmVitvMVpYa2haT2FGVVU2Nkp3MjQyT3A1TGxlMEE4dGZXMTRxRnliL3VYdXpqSkVSWng3SldkUkQwUFRaT2VLeUR0Wi9zbTFRRDA3VmgvbHNPbFlNVFdqV2U1bWVtejhjcmdiWWNlSEJZWGtvMjlXS3FLSE5QNW9IR21WZGtzWTJqUzNMMkxpQUVEMmZEU3RtQThOODZXSHpNdk12WVhUeFFPeEhUQ3JKbFk5L0ltQVhLVDFzVUVFbGVNZjNLVDlqbndMNGtXei9OTWRkQ1pNRzFvWTlrWVZVeEhsUVVBYTZDcVBWZjF0SHlGaGpkZEI5MXlwQ3hlNXpDQkxIbDhURDJuZEY1UUt3KzdqUzVsOTdUZWE3ZmRBOXhuSzJQOEpKZGo0dDNVeWUvclgyZUtxeWFxRUtoS0ZSUkx5S0x4YUJIWG9xTnYwMWxkWGxxT1M0UXJNUXUvbmZ2TTJjNUhReThtaW9nS0NlRXZKTTRRQnBNbUlGTlJlQmRpYzUvK0J3YkFUMUNaTUdPN2ZDSWxmSzhEeUpiVzhSQ2l3OTFPZnpxSHpkTEpUd1ViV2M1R2pRY0piRnRJdVZ5djFiYWNYTFdidG9nK3J2aFJEbXZtTDJPTFk2VU93NTRlTk1FSFZxMjRjK3V1RHBTS2JIdWw2UUZ0ZTA5RUhUMzl5KzlFcGQzWlphbzBDWllBMksvRWhPRWk4M1dpcVpybE94bEdSOStHdU95RGVTejB6VFgyOSs1NWNPUjlDMG5uQnBPRGlIdUdxUEZUTFIxZHFxVStkb29yanBMWFlMWTg1N1lBREQ1enE0VUUvWmI1cTdnZnEvWkVVcGdCeDNHWGlzOFRzc1FyRnZ6eGltWGE5aUlRenZPQmlqcTVsLzRDMFU0Yzl1bG54SmdTYlQ4VmJMcTRiOFVvTjVwdGRtbnc5bzRjRGQ2cElxQ3ZMdmhjZUZRL1lUd3Y0YmNaRGxhZ29nNGZYSmR6VlVSckFoTld4MGxjeE1EMW1MekpsYU9sYnNLMUtKTVpVcmJLa2FJTXZqNmFCb2dJc1pmZDU5ZjRjZmYzd2dyeWR2WUd1RzA3ckI0RU1sVVNDTjlFbDhlN1N2TmZmejVKNlJQcnR6a0RMd0NzRGdzem51UTI5amVyK0pGRDQ2V3dUWE9adi9NaHBkY1JMS25MR2pzdCtmUDNwQ3JTbGNaK1dJcTMyU3JwU25rai9hamJIQ1Z5eEtDaU5wZTEzUDdMYjQxQnhhL2k1ai9vMTlXQXlRNDBKT242VllWaUFXRnBsY0VBRURycVNWRklGQTFsSE9VckM5MVhSdS9VMG5qeEdQbTMzaXR0MnlmWXZaUEhacTdwSytRaTUzcWx4RC9YdW5vVUNwd0JiNUFOamlLUUdhU2xIZVkzRTV3ZTRjT2Y3NWx0OGhXVmFwc05MeWRqUXRzM0dRSFJPZUE3M01pM3BKSzl6S2pvRkQ2NWFHdWhmTU90SFpWOUxGRHRHZTV1YXhYR2M5NU5CUk9DbWJCM0Y2Z3JjcTFVS2NIYWV1Y3FkcDFPcGJlOVhrK1dGS3pXak4wZlM2dXJsQnlrNExBWnZFYUhYazA5VTNVQnA0ckU4aGJjaEVibnN0bmVzWTdKWm15ZVNEK3ZWYjdJL3EvUUpNMHdRYXRpSlhRc3dxTEhWTVRUNEl4bjNwb2o4ZU9UeHFSQUEzQStON3RkTFJSWWVsY1dibVFJNFJwMHR2T2NrbkU4WGRxT2FUNnZGVVlxQ0orcUFSeTY5b3dNSjNiRVNqQ0x0S1grbk1xK0RYTm45NTRZaC9TaEJKRlNWU2NYNkZ0WkNQbHlpaWdjVy8rL055S1ZGeVNVbWsyQ1N1ZmFDWndNS0E5ZHB5R2ZydmFLcHdEZTFWT3JRMEdaY2RrOEhoNWdwMGdrZzFTL2hoLy9tQ1g0aUo4N0NpcnhkTlRVOWtvQWpIcGNQd3NiQmZHSEMzTUw1ZW00ZndjZUQ3eGVVbUt6UVVUQld0MEl4OGl2bFZnU3lhbS9lNW5DVHVGc1F2ZUh4cVZUUVVtL3BtbVlociswVnk3b3V6Y20yZmk5RXcrdVlqWHhmUmUvNlkyV2V1ZHFkOTZjVDNXMXZ4bjZXL2g2N05QSXFtN0YxcERqSmJhUDlQOE96YUlCN2NZWXl5WjZSZGhGamwrZUsySWpaYSt2cnZaOGxzc0V6cUxVWG5vdTFRUkpkenhDSHlOcjNwVzBqa3hrUUlscTNGMjNWaVp0dnBZZjFGa0s1QUdvVWkyMHRreXArTElSalRvK1EyNS9NaTNONktqM083amlIdHBXVHhzVXd0ZFBZOG5zd1JiQms1MUFCTm5EdHRTZTlHNGpicGE3VlpUZUVrR1hGTlJqS0JXV2tRdGk4NE5adUpKSHpzaGxqTllrN2hyR0ZTT1Y2WEpTanlZMWFhNGdkRVJMbjNZbjMrZjdndllhNGFycGdyOFg4UlBoblB5Tk5iam1RYm9CT2doL1gzNFlrNEhja0RDcTQyVWJ4NTZQWjlEYTFaL3lJMFRoZnZRZ25Lajh2dW4rUno2em1RemxlcEVQMUpJMmg2K0dVK3dpM3BPWnFNNWJMaDJKOCtscm9iUERDYWFXNHg4NHZnS1lnZW1YeUtab1ZKbWpkU0J4U1Y4emhWNHc1T3AzZ2FrcUNBL0RpSEIrekJ0WmtOaVlOL1l2QWRWUUFYcWhWY1R4cDAvU1ZVV1VCcEE1TElrYkNCa01TdmZoVHdKTm9NUkVCNDlpLzdCaGFJMHN4eXJWc0d6US9GMjhodlprYnBCdUYzZWREQ0Y5bjdZLzhHWExQQlhVQVVWWVYvc3NXajV2NjZiZ2hsVUVNdGVmWjlGYUJFZzcxbjJjczVrKyt3dnU4V01JdFF0aWpzbXArWU1DL05UclhZNFE5ZUNOQXVBcmtiOTVaem5JbGFHaGd4MG01NmNhQ1Y3ZEU1MTFWOS9wak1CamVxZTgrc0tPN2NWQkhOS0FiM3psQXRZalZJWkYraXFBbmppZ1NUSmRtQlM2MDdBM0tWb0FDQWNZejIxaHRHdkRZQlc0clRMdlRRR3NZT1RORzE4TjlXaitjUnJGa29PamhZNTEvdjVKcjdudmNzZUo3NTFwb1NvNFB1VkVNekJrTDVHWE81ZXprSC9Uek02SlpzcVNwekFQTVhUVWpoV1k5bHVmS013a1E4bUFOQXVTaWNUOWFkS1FKcGNRR3B6R205ZzNVcWVZUDBENFEzVEFEeURpSmFiVEtxUkJYWkJINXNLTHRmUzBqOVJCTUp1c1JiY0NqbXlqVVVscXA0QzNCS2d2K1lISUZsd2hPZEM0NGRCQXdJZEpKbkdtL2QwRFYzeVRmd0ZtN2ZnVEFBUW5Bb2kwS1NsZnhlVVZadi9PRHIvcjZ1ZXhhTGhQNDEvd3BWU2ZRbmZjYS9DUlpDK0pDTm9WRHB3Njh1eWV3ZzhxVHVET1NZbGFEbDBwSjZncWFDaVB6SGFJVjNZTk85dEdhQXUyL1JWL1hidUpwdlhiTVB4Q3FHQUcrU0ROUDJCaHVIOTd6TFBtMk55RFJWS0pqU05qVlZFZWZQeXJHUTVycy9uZ3F6a3luQWRCU2ZjbmJGU2diVDA1YUhEaFZxcW1GTmlVOWN4UXk4L3hzM2d3WnJicVM2R0lpbGQ2N1NxWkZ5RGpXZDJvTE5sMCs1NG9sODd0RUxBMlc5c1RCSHpieDVpWmZnUFNJYURrMHFzWTY5dDNUZk5HNkxQTklHWXg1L003N0tGOUdjSElWR21OcDBIRG42TXNSZ0s2VW03Y2ZXTi9weU92TEphcms2WGhyY2tUUnJJVzZLd3Rmc1hrbHR5dHBKSzdZdVNGeWUzT1Vkcnlrd3dJRHZTNmxXMS82dGptRjkrNmIxWWRpTEc4aktMdEp4cWt5VWhTd1Z5cUFwellrL1F3cEpCeUczaE9rV1hnN0FjTEVpOTlnZi9pWHdiWWl1N01yckZIM1ZvUktaL2Y3cWtpNlhraXVQRTBiY2ZkYnVBL1JXWlV1UDNueG4wVGR0TXY2anp4RVV4QmZkTHp1ZnF6dUZLSGxuaVBVTFpnWG8wN01TZU1rYm8zVFRSN3ExbWNFL005S3BBekR0TlZwZlllekR1T2ZYaStMUlNJYmNvL1JHZ3l2SmQxVmNQci94end1Rms2KzBBQVJGNk9XSk43T1ZCRVNKa0pJalNRd3dBYTlzQktobXR6dElyS2J4WDFSSUJiMHJSbEN3VzlJbEVJdkQ3dzFmTzdhb2RBT1IxUVpoU2VXK254Yzdjc1JZSEtidW9tamhmVTY3a2MrK0g1NjYrMzJsVS9IUmVoT2oycXhYTWlIWFFJMUJEMkZnTmdrOXlDODl3eWJGc05RNkJPVlQyVGVuaFB3bmtZNW5ZNFQxenBLNzhyZU9EOTlHbyswSWF1QjZ6cnNkNWhKeXZOczZaUUZyTUx1bnNuYWUrdGJGd2VYSmUxeU8xN1ZsWlhoSTBvelRHeUFpMFFRZ0JUOG9QcVg1eVg4T1l0NDBFU1FNV001OThSUE91Y0pjbUFrMWxSTTFiNHpDcVB6V1hMcU9yNThwak1RaHZKdDJEZUd1TUtIb200dll3RTV0MEwwTSt4TDAyUE5iUTVkT0EySHNXYVkvYUlvSjRwOEltZVgvN2RCSEVMazA1aHRTcFBzWmE2ZG9xcFhyWWhFTE56ejN6VDROOVhRVHBLQlpFWVhzblJYZGNtY2g5c2ptSnJkb2JaMGh3Z2RRS01aY2grMjBtLzhCQmw4TFRIZlZoR3oySk9XdXVuVTNIeGZ5azYybzNWdWw1VlFtODE5OVhXM2FDdnJCNHd5L0c4TzIyUGVJVm9hbFltYnJRakFZWEpIYkE4STZSREc5ZURJRU9KMFd6NWNMODhIVW1XNnZlcncrRVVCQUdKRzEvaTdwekN0WG4yWXgwVmMrRFlVNlVjZSt5cz08L3hlbmM6Q2lwaGVyVmFsdWU+PC94ZW5jOkNpcGhlckRhdGE+PC94ZW5jOkVuY3J5cHRlZERhdGE+PHhlbmM6RW5jcnlwdGVkS2V5IElkPSJfMjAzMjZjZjAzZmU0MzRkNWQ0NTc3NmY3M2RlMDRlMDMiIHhtbG5zOnhlbmM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jIyI+PHhlbmM6RW5jcnlwdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3JzYS1vYWVwLW1nZjFwIiB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyMiLz48L3hlbmM6RW5jcnlwdGlvbk1ldGhvZD48ZHM6S2V5SW5mbyB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94bWxkc2lnIyI+PGRzOlg1MDlEYXRhPjxkczpYNTA5Q2VydGlmaWNhdGU+TUlJQ29UQ0NBWWtDQmdHQlhQc2NhREFOQmdrcWhraUc5dzBCQVFzRkFEQVVNUkl3RUFZRFZRUUREQWx6YjI1aGNuRjFZbVV3SGhjTgpNakl3TmpFek1USXhNVEE1V2hjTk16SXdOakV6TVRJeE1qUTVXakFVTVJJd0VBWURWUVFEREFsemIyNWhjbkYxWW1Vd2dnRWlNQTBHCkNTcUdTSWIzRFFFQkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEU0ZvVDM3MUMwL2tsWnVQZ3ZLYkdJdGttVGFmNUN3ZU5YTDh1Mzg5ZDkKOGFPWFJwRFE3bWFUWGRWL1crVmNMOHZVV2c4eUc2bm44Q1J3d2VZbkdUTmRuOVVBZGhna252eFFlM3BxM0V3T0p5bHM0RnBpcTZZVApoK0RRZmlaVVFpempGakRPci9HRzVPMmxOdlRSa0k0WFpqL1huV2pScVZad3R0aUE1dG0xc0trdkdkeU9RbGp3bjRKamEvVmJJVGRWCjhHQVN1bXg2NkJpbC93YW1Tc3FJem0yUmpzT09HU3NmNVZqWVVQd0RvYnB1U2YrajRETHRXamVtLzl2SXpJMndjRTMwdUM4TEJBZ08KM0pBbElTOU5RcmNoalM5eGhNSlJvaE9vaXRhU1BtcXNPeTdEMkJIMGg3WFg2VE5ndi9XWVRrQlk0ZVpQYW8zUHNMMkE2QW1oQWdNQgpBQUV3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQU1CbVRIVUs0dytEWDIxdG1ocWR3cTBXcUxINVpBa3d0aW9jRHhGWGlKNEdSclVXClVoM0JhWHNnT0hCOFlZbk5URGZTY2phVTBzWk1FeWZDMHN1MXpzTjhCN05GY2tnN1JjWkNIdUJZZGdJRUFtdks0WU02czZ6TnNpS0sKd3Q2NnAyTU5lTCtvMGFjclQycllqUTFMNVFEajBncGZKUUFUNE43eFRaZnVTYzJpd2pvdGFRZnZjZ3NPOEVabGNEVnJMNFV1eVdMYgp1UlVsU1FqeEhXR1lheENXK0kzZW5LMSs4ZkdwRjNPK2s5WlE4eHQ1bkpzYWxwc1p2SGNQTEE0SUJPbWpzU0hxU2toZzRFSUFXTC9zCkpaMUtOY3Q0aEhoNWtUb1VUdStRNmU5NDlWZUJrV2dqNE8rcmNHRGdpTjJmckdpRUVjMEVNdjhLQ1NFTlJSUnJPMms9PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PHhlbmM6Q2lwaGVyRGF0YSB4bWxuczp4ZW5jPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyMiPjx4ZW5jOkNpcGhlclZhbHVlPmowcmhyTjBEd1R3b1JFQ0dBRVRYekhHVTQ3UWE5WHFjYWNUdy9LUHcwbEQrVzY1bTNwQ0xjMGVGL2ZYOHNKeUNkU0I5VnczUnk3N0VXR1NqTkNZWXo4MVFaV1BSTVoxZVpTNEpHQmw1WWZhMXQ4bmNScXZCaDFUdnJ1RzFYTEF4WU9IU2ozMytDdzVWUWdPTVZoRnQ2aXI0eVIwN09HcnRlVUphd2tuRWIyeG5Hb3NMR0xudnMvTm02NDczM1RES0dPZVc3aTBTVzg5WGdIT1VrT3JpS1pZRWU5WlFENUNSTnR4U2J6UTE3NTAzRDhZaTFJWUlJR2xUVWJmMGc3dExNZGJqejVsaWk3WUFsWWJXdlhUbHdQRjFEWnZELytVckZKOFg5U1RJNGdGcC9XRlQ4N0lyZjBkQ1FYZkpnVTBlOXIrZk5UdkQ0RGlOUGI4bkFsNDlLUT09PC94ZW5jOkNpcGhlclZhbHVlPjwveGVuYzpDaXBoZXJEYXRhPjx4ZW5jOlJlZmVyZW5jZUxpc3Q+PHhlbmM6RGF0YVJlZmVyZW5jZSBVUkk9IiNfZTMxN2FjODI4NTZlYTc5YmI4ZDM4NWE4NzQ4ZDMzM2QiLz48L3hlbmM6UmVmZXJlbmNlTGlzdD48L3hlbmM6RW5jcnlwdGVkS2V5Pjwvc2FtbDI6RW5jcnlwdGVkQXNzZXJ0aW9uPjwvc2FtbDJwOlJlc3BvbnNlPg== \ No newline at end of file