From 8ecad50ddc735dab1402c3a2708b8c11b1aed811 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Fri, 15 Sep 2023 04:50:39 +0530 Subject: [PATCH 01/35] Fix Native Data Retention Issue --- ballerina/receiver.bal | 21 +++-- .../asb/receiver/MessageReceiver.java | 84 +++++++++---------- .../org/ballerinax/asb/util/ASBConstants.java | 11 ++- 3 files changed, 61 insertions(+), 55 deletions(-) diff --git a/ballerina/receiver.bal b/ballerina/receiver.bal index c6ee1f5f..05ed3315 100644 --- a/ballerina/receiver.bal +++ b/ballerina/receiver.bal @@ -117,7 +117,7 @@ public isolated client class MessageReceiver { isolated remote function complete(@display {label: "Message"} Message message) returns Error? { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { - return complete(self, message?.lockToken.toString()); + return complete(self, message); } return createError("Failed to complete message with ID " + message?.messageId.toString()); } @@ -131,7 +131,7 @@ public isolated client class MessageReceiver { @display {label: "Abandon Message"} isolated remote function abandon(@display {label: "Message"} Message message) returns Error? { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { - return abandon(self, message?.lockToken.toString()); + return abandon(self, message); } return createError("Failed to abandon message with ID " + message?.messageId.toString()); } @@ -149,8 +149,7 @@ public isolated client class MessageReceiver { @display {label: "Dead Letter Description"} string? deadLetterErrorDescription = ()) returns Error? { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { - return deadLetter(self, message?.lockToken.toString(), deadLetterReason, - deadLetterErrorDescription); + return deadLetter(self, message, deadLetterReason, deadLetterErrorDescription); } return createError("Failed to deadletter message with ID " + message?.messageId.toString()); } @@ -163,7 +162,7 @@ public isolated client class MessageReceiver { @display {label: "Defer Message"} isolated remote function defer(@display {label: "Message"} Message message) returns @display {label: "Deferred Msg Seq Num"} int|Error { - check defer(self, message?.lockToken.toString()); + check defer(self, message); return message?.sequenceNumber; } @@ -188,7 +187,7 @@ public isolated client class MessageReceiver { @display {label: "Renew Lock On Message"} isolated remote function renewLock(@display {label: "Message"} Message message) returns Error? { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { - return renewLock(self, message?.lockToken.toString()); + return renewLock(self, message); } return createError("Failed to renew lock on message with ID " + message?.messageId.toString()); } @@ -213,20 +212,20 @@ isolated function receiveBatch(MessageReceiver endpointClient, int? maxMessageCo 'class: "org.ballerinax.asb.receiver.MessageReceiver" } external; -isolated function complete(MessageReceiver endpointClient, string lockToken) returns Error? = @java:Method { +isolated function complete(MessageReceiver endpointClient, Message message) returns Error? = @java:Method { 'class: "org.ballerinax.asb.receiver.MessageReceiver" } external; -isolated function abandon(MessageReceiver endpointClient, string lockToken) returns Error? = @java:Method { +isolated function abandon(MessageReceiver endpointClient, Message message) returns Error? = @java:Method { 'class: "org.ballerinax.asb.receiver.MessageReceiver" } external; -isolated function deadLetter(MessageReceiver endpointClient, string lockToken, string? deadLetterReason, string? deadLetterErrorDescription) returns +isolated function deadLetter(MessageReceiver endpointClient, Message message, string? deadLetterReason, string? deadLetterErrorDescription) returns Error? = @java:Method { 'class: "org.ballerinax.asb.receiver.MessageReceiver" } external; -isolated function defer(MessageReceiver endpointClient, string lockToken) returns Error? = @java:Method { +isolated function defer(MessageReceiver endpointClient, Message message) returns Error? = @java:Method { 'class: "org.ballerinax.asb.receiver.MessageReceiver" } external; @@ -234,6 +233,6 @@ isolated function receiveDeferred(MessageReceiver endpointClient, int sequenceNu 'class: "org.ballerinax.asb.receiver.MessageReceiver" } external; -isolated function renewLock(MessageReceiver endpointClient, string lockToken) returns Error? = @java:Method { +isolated function renewLock(MessageReceiver endpointClient, Message message) returns Error? = @java:Method { 'class: "org.ballerinax.asb.receiver.MessageReceiver" } external; diff --git a/native/src/main/java/org/ballerinax/asb/receiver/MessageReceiver.java b/native/src/main/java/org/ballerinax/asb/receiver/MessageReceiver.java index e79d8fa6..01835648 100644 --- a/native/src/main/java/org/ballerinax/asb/receiver/MessageReceiver.java +++ b/native/src/main/java/org/ballerinax/asb/receiver/MessageReceiver.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, WSO2 LLC. (http://www.wso2.org). + * Copyright (c) 2023, WSO2 LLC. (http://www.wso2.org). * * WSO2 LLC. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except @@ -68,6 +68,7 @@ import static org.ballerinax.asb.util.ASBConstants.LABEL; import static org.ballerinax.asb.util.ASBConstants.LOCK_TOKEN; import static org.ballerinax.asb.util.ASBConstants.MESSAGE_ID; +import static org.ballerinax.asb.util.ASBConstants.NATIVE_MESSAGE; import static org.ballerinax.asb.util.ASBConstants.PARTITION_KEY; import static org.ballerinax.asb.util.ASBConstants.RECEIVER_CLIENT; import static org.ballerinax.asb.util.ASBConstants.REPLY_TO; @@ -265,22 +266,21 @@ public static Object receiveBatch(BObject receiverClient, Object maxMessageCount * Completes Messages from Queue or Subscription based on messageLockToken. * * @param receiverClient Ballerina ASB client object - * @param lockToken Message lock token. + * @param message Message object. * @return An error if failed to complete the message. */ - public static Object complete(BObject receiverClient, BString lockToken) { + public static Object complete(BObject receiverClient, BMap message) { try { - ServiceBusReceivedMessage message = (ServiceBusReceivedMessage) receiverClient - .getNativeData(lockToken.getValue()); + ServiceBusReceivedMessage nativeMessage = getNativeMessage(message); ServiceBusReceiverClient receiver; - if (message.getDeadLetterReason() != null) { + if (nativeMessage.getDeadLetterReason() != null) { receiver = (ServiceBusReceiverClient) getDeadLetterMessageReceiverFromBObject(receiverClient); } else { receiver = getReceiverFromBObject(receiverClient); } - receiver.complete(message); - receiverClient.getNativeData().remove(lockToken.getValue()); - LOGGER.debug("Completed the message(Id: " + message.getMessageId() + ") with lockToken " + lockToken); + receiver.complete(nativeMessage); + LOGGER.debug("Completed the message(Id: " + nativeMessage.getMessageId() + ") with lockToken " + + nativeMessage.getLockToken()); return null; } catch (BError e) { return ASBErrorCreator.fromBError(e); @@ -295,18 +295,17 @@ public static Object complete(BObject receiverClient, BString lockToken) { * Abandons message & make available again for processing from Queue or Subscription, based on messageLockToken. * * @param receiverClient Ballerina ASB client object - * @param lockToken Message lock token. + * @param message Message object. * @return An error if failed to abandon the message. */ - public static Object abandon(BObject receiverClient, BString lockToken) { + public static Object abandon(BObject receiverClient, BMap message) { try { ServiceBusReceiverClient receiver = getReceiverFromBObject(receiverClient); - ServiceBusReceivedMessage message = (ServiceBusReceivedMessage) receiverClient - .getNativeData(lockToken.getValue()); - receiver.abandon(message); - receiverClient.getNativeData().remove(lockToken.getValue()); + ServiceBusReceivedMessage nativeMessage = getNativeMessage(message); + ; + receiver.abandon(nativeMessage); LOGGER.debug(String.format("Done abandoning a message(Id: %s) using its lock token from %n%s", - message.getMessageId(), receiver.getEntityPath())); + nativeMessage.getMessageId(), receiver.getEntityPath())); return null; } catch (BError e) { return ASBErrorCreator.fromBError(e); @@ -321,24 +320,22 @@ public static Object abandon(BObject receiverClient, BString lockToken) { * Dead-Letter the message & moves the message to the Dead-Letter Queue based on messageLockToken. * * @param receiverClient Ballerina ASB client object - * @param lockToken Message lock token. + * @param message Message object. * @param deadLetterReason The dead letter reason. * @param deadLetterErrorDescription The dead letter error description. * @return An error if failed to dead letter the message. */ - public static Object deadLetter(BObject receiverClient, BString lockToken, Object deadLetterReason, + public static Object deadLetter(BObject receiverClient, BMap message, Object deadLetterReason, Object deadLetterErrorDescription) { try { ServiceBusReceiverClient receiver = getReceiverFromBObject(receiverClient); - ServiceBusReceivedMessage message = (ServiceBusReceivedMessage) receiverClient - .getNativeData(lockToken.getValue()); + ServiceBusReceivedMessage nativeMessage = getNativeMessage(message); DeadLetterOptions options = new DeadLetterOptions() .setDeadLetterErrorDescription(ASBUtils.convertString(deadLetterErrorDescription)); options.setDeadLetterReason(ASBUtils.convertString(deadLetterReason)); - receiver.deadLetter(message, options); - receiverClient.getNativeData().remove(lockToken.getValue()); + receiver.deadLetter(nativeMessage, options); LOGGER.debug(String.format("Done dead-lettering a message(Id: %s) using its lock token from %s", - message.getMessageId(), receiver.getEntityPath())); + nativeMessage.getMessageId(), receiver.getEntityPath())); return null; } catch (BError e) { return ASBErrorCreator.fromBError(e); @@ -353,18 +350,16 @@ public static Object deadLetter(BObject receiverClient, BString lockToken, Objec * Defer the message in a Queue or Subscription based on messageLockToken. * * @param receiverClient Ballerina ASB client object - * @param lockToken Message lock token. + * @param message Message object. * @return An error if failed to defer the message. */ - public static Object defer(BObject receiverClient, BString lockToken) { + public static Object defer(BObject receiverClient, BMap message) { try { ServiceBusReceiverClient receiver = getReceiverFromBObject(receiverClient); - ServiceBusReceivedMessage message = (ServiceBusReceivedMessage) receiverClient - .getNativeData(lockToken.getValue()); - receiver.defer(message); - receiverClient.getNativeData().remove(lockToken.getValue()); + ServiceBusReceivedMessage nativeMessage = getNativeMessage(message); + receiver.defer(nativeMessage); LOGGER.debug(String.format("Done deferring a message(Id: %s) using its lock token from %s", - message.getMessageId(), receiver.getEntityPath())); + nativeMessage.getMessageId(), receiver.getEntityPath())); return null; } catch (BError e) { return ASBErrorCreator.fromBError(e); @@ -410,18 +405,16 @@ public static Object receiveDeferred(BObject receiverClient, Object sequenceNumb * messageLockToken. * * @param receiverClient Ballerina ASB client object - * @param lockToken Message lock token. + * @param message Message object. * @return An error if failed to renewLock of the message. */ - public static Object renewLock(BObject receiverClient, BString lockToken) { + public static Object renewLock(BObject receiverClient, BMap message) { try { - ServiceBusReceivedMessage message = (ServiceBusReceivedMessage) receiverClient - .getNativeData(lockToken.getValue()); ServiceBusReceiverClient receiver = getReceiverFromBObject(receiverClient); - receiver.renewMessageLock(message); - receiverClient.getNativeData().remove(lockToken.getValue()); + ServiceBusReceivedMessage nativeMessage = getNativeMessage(message); + receiver.renewMessageLock(nativeMessage); LOGGER.debug(String.format("Done renewing a message(Id: %s) using its lock token from %s", - message.getMessageId(), receiver.getEntityPath())); + nativeMessage.getMessageId(), receiver.getEntityPath())); return null; } catch (BError e) { return ASBErrorCreator.fromBError(e); @@ -474,12 +467,12 @@ private static BMap constructExpectedMessageRecord(BObject rece } else { map.put(BODY, messageBody); } - - // This is to avoid adding messages to the native data map, if the receive-mode is 'RECEIVE_AND_DELETE'. + BMap constructedMessage = createBRecordValue(map, expectedType); + // Only add the native message if the message received in peek lock mode. if (!message.getLockToken().equals(DEFAULT_MESSAGE_LOCK_TOKEN)) { - receiverClient.addNativeData(message.getLockToken(), message); + constructedMessage.addNativeData(NATIVE_MESSAGE, message); } - return createBRecordValue(map, expectedType); + return constructedMessage; } private static Map populateOptionalFieldsMap(ServiceBusReceivedMessage message) { @@ -558,7 +551,10 @@ private static BMap getReceivedMessageBatch(BObject receiverCli LinkedList receivedMessages = new LinkedList<>(); for (ServiceBusReceivedMessage receivedMessage : receivedMessageStream) { BMap recordMap = constructExpectedMessageRecord(receiverClient, receivedMessage, null); - receivedMessages.add(createRecordValue(ModuleUtils.getModule(), ASBConstants.MESSAGE_RECORD, recordMap)); + BMap messageRecord = createRecordValue(ModuleUtils.getModule(), + ASBConstants.MESSAGE_RECORD, recordMap); + messageRecord.addNativeData(NATIVE_MESSAGE, receivedMessage); + receivedMessages.add(messageRecord); } BMap messageRecord = ValueCreator.createRecordValue(ModuleUtils.getModule(), @@ -667,4 +663,8 @@ private static void setClient(BObject receiverObject, ServiceBusReceiverClient c receiverObject.addNativeData(ASBConstants.RECEIVER_CLIENT, client); } } + + private static ServiceBusReceivedMessage getNativeMessage(BMap message) { + return (ServiceBusReceivedMessage) message.getNativeData(NATIVE_MESSAGE); + } } diff --git a/native/src/main/java/org/ballerinax/asb/util/ASBConstants.java b/native/src/main/java/org/ballerinax/asb/util/ASBConstants.java index 77e11c99..8e57d536 100644 --- a/native/src/main/java/org/ballerinax/asb/util/ASBConstants.java +++ b/native/src/main/java/org/ballerinax/asb/util/ASBConstants.java @@ -26,13 +26,14 @@ */ public class ASBConstants { - //Clients + //Native Object Identifiers public static final String RECEIVER_CLIENT = "RECEIVER_CLIENT"; public static final String ADMINISTRATOR_CLIENT = "ADMINISTRATOR_CLIENT"; public static final String SENDER_CLIENT = "SENDER_CLIENT"; public static final String DEAD_LETTER_RECEIVER_CLIENT = "DEAD_LETTER_RECEIVER_CLIENT"; + public static final String NATIVE_MESSAGE = "NATIVE_MESSAGE"; - //Client Init Data + //Receiver Client Init Data public static final String RECEIVER_CLIENT_CONNECTION_STRING = "CONNECTION_STRING"; public static final String RECEIVER_CLIENT_RECEIVE_MODE = "RECEIVE_MODE"; public static final String RECEIVER_CLIENT_TOPIC_NAME = "TOPIC_NAME"; @@ -45,17 +46,20 @@ public class ASBConstants { // Message constant fields public static final String MESSAGE_RECORD = "Message"; public static final String APPLICATION_PROPERTY_TYPE = "ApplicationProperties"; + // Message content data binding errors public static final String XML_CONTENT_ERROR = "Error while retrieving the xml content of the message. "; public static final String JSON_CONTENT_ERROR = "Error while retrieving the json content of the message. "; public static final String TEXT_CONTENT_ERROR = "Error while retrieving the string content of the message. "; public static final String INT_CONTENT_ERROR = "Error while retrieving the int content of the message. "; public static final String FLOAT_CONTENT_ERROR = "Error while retrieving the float content of the message. "; + // Batch Message constant fields public static final String MESSAGE_BATCH_RECORD = "MessageBatch"; public static final String MESSAGES_OBJECT = "Messages"; public static final BString MESSAGES_CONTENT = StringUtils.fromString("messages"); public static final BString MESSAGE_COUNT = StringUtils.fromString("messageCount"); + // Message receive modes public static final String PEEK_LOCK = "PEEKLOCK"; public static final String RECEIVE_AND_DELETE = "RECEIVEANDDELETE"; @@ -115,6 +119,7 @@ public class ASBConstants { // Error constant fields static final String ASB_ERROR = "Error"; + // Subscription/Topic/Queue Properties record fields public static final String SUBSCRIPTION_CREATED_RECORD = "SubscriptionProperties"; public static final String TOPIC_CREATED_RECORD = "TopicProperties"; public static final String QUEUE_CREATED_RECORD = "QueueProperties"; @@ -326,6 +331,7 @@ public class ASBConstants { "deadLetteringOnFilterEvaluationExceptions"; public static final String CREATED_SUBSCRIPTION_RECORD_FIELD_SESSION_REQUIRED = "requiresSession"; + // Subscription List public static final String LIST_OF_SUBSCRIPTIONS = "list"; public static final String LIST_OF_SUBSCRIPTIONS_RECORD = "SubscriptionList"; @@ -342,6 +348,7 @@ public class ASBConstants { public static final String CREATED_RULE_RECORD_FIELD_TYPE_NAME = "rule"; public static final String CREATED_RULE_RECORD_FIELD_ACTION = "action"; public static final String CREATED_RULE_RECORD_FIELD_FILTER = "filter"; + // Rule List public static final String LIST_OF_RULES = "list"; public static final String LIST_OF_RULES_RECORD = "RuleList"; From 62aac787f13724d1dd53074d886c88ac4ca23021 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Mon, 18 Sep 2023 07:22:01 +0530 Subject: [PATCH 02/35] Address Review Changes --- ballerina/receiver.bal | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ballerina/receiver.bal b/ballerina/receiver.bal index 05ed3315..26145806 100644 --- a/ballerina/receiver.bal +++ b/ballerina/receiver.bal @@ -119,7 +119,7 @@ public isolated client class MessageReceiver { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { return complete(self, message); } - return createError("Failed to complete message with ID " + message?.messageId.toString()); + return createError(string `Failed to complete message with ID ${message?.messageId.toString()}`); } # Abandon message from queue or subscription based on messageLockToken. Abandon processing of the message for @@ -133,7 +133,7 @@ public isolated client class MessageReceiver { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { return abandon(self, message); } - return createError("Failed to abandon message with ID " + message?.messageId.toString()); + return createError(string `Failed to abandon message with ID ${message?.messageId.toString()}`); } # Dead-Letter the message & moves the message to the Dead-Letter Queue based on messageLockToken. Transfer @@ -151,7 +151,7 @@ public isolated client class MessageReceiver { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { return deadLetter(self, message, deadLetterReason, deadLetterErrorDescription); } - return createError("Failed to deadletter message with ID " + message?.messageId.toString()); + return createError(string `Failed to deadletter message with ID ${message?.messageId.toString()}`); } # Defer the message in a Queue or Subscription based on messageLockToken. It prevents the message from being @@ -189,7 +189,7 @@ public isolated client class MessageReceiver { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { return renewLock(self, message); } - return createError("Failed to renew lock on message with ID " + message?.messageId.toString()); + return createError(string `Failed to renew lock on message with ID ${message?.messageId.toString()}`); } # Closes the ASB sender connection. From 07d2d0c6967ec6de36d3a70ed6ceb1e6c32947d4 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Mon, 18 Sep 2023 09:21:54 +0530 Subject: [PATCH 03/35] Address Review Changes --- ballerina/receiver.bal | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ballerina/receiver.bal b/ballerina/receiver.bal index 26145806..47ef7b88 100644 --- a/ballerina/receiver.bal +++ b/ballerina/receiver.bal @@ -119,7 +119,7 @@ public isolated client class MessageReceiver { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { return complete(self, message); } - return createError(string `Failed to complete message with ID ${message?.messageId.toString()}`); + return createError(string `Failed to complete message with ID: ${message?.messageId.toString()}`); } # Abandon message from queue or subscription based on messageLockToken. Abandon processing of the message for @@ -133,7 +133,7 @@ public isolated client class MessageReceiver { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { return abandon(self, message); } - return createError(string `Failed to abandon message with ID ${message?.messageId.toString()}`); + return createError(string `Failed to abandon message with ID: ${message?.messageId.toString()}`); } # Dead-Letter the message & moves the message to the Dead-Letter Queue based on messageLockToken. Transfer @@ -151,7 +151,7 @@ public isolated client class MessageReceiver { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { return deadLetter(self, message, deadLetterReason, deadLetterErrorDescription); } - return createError(string `Failed to deadletter message with ID ${message?.messageId.toString()}`); + return createError(string `Failed to deadletter message with ID: ${message?.messageId.toString()}`); } # Defer the message in a Queue or Subscription based on messageLockToken. It prevents the message from being @@ -189,7 +189,7 @@ public isolated client class MessageReceiver { if message?.lockToken.toString() != DEFAULT_MESSAGE_LOCK_TOKEN { return renewLock(self, message); } - return createError(string `Failed to renew lock on message with ID ${message?.messageId.toString()}`); + return createError(string `Failed to renew lock on message with ID: ${message?.messageId.toString()}`); } # Closes the ASB sender connection. From ed9335e0b8453375c9f6ed4e3a641515129761f7 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Mon, 18 Sep 2023 13:29:19 +0530 Subject: [PATCH 04/35] Addressed review comments --- .../main/java/org/ballerinax/asb/receiver/MessageReceiver.java | 1 - 1 file changed, 1 deletion(-) diff --git a/native/src/main/java/org/ballerinax/asb/receiver/MessageReceiver.java b/native/src/main/java/org/ballerinax/asb/receiver/MessageReceiver.java index 01835648..90fa7e6b 100644 --- a/native/src/main/java/org/ballerinax/asb/receiver/MessageReceiver.java +++ b/native/src/main/java/org/ballerinax/asb/receiver/MessageReceiver.java @@ -302,7 +302,6 @@ public static Object abandon(BObject receiverClient, BMap messa try { ServiceBusReceiverClient receiver = getReceiverFromBObject(receiverClient); ServiceBusReceivedMessage nativeMessage = getNativeMessage(message); - ; receiver.abandon(nativeMessage); LOGGER.debug(String.format("Done abandoning a message(Id: %s) using its lock token from %n%s", nativeMessage.getMessageId(), receiver.getEntityPath())); From 8f726cd041c1712e2f193e8140844e9261d2d4e6 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Tue, 19 Sep 2023 14:05:55 +0530 Subject: [PATCH 05/35] Add test case to check invalid message completes --- .../asb_sender_receiver_negative_tests.bal | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/ballerina/tests/asb_sender_receiver_negative_tests.bal b/ballerina/tests/asb_sender_receiver_negative_tests.bal index d4ba4267..9e942925 100644 --- a/ballerina/tests/asb_sender_receiver_negative_tests.bal +++ b/ballerina/tests/asb_sender_receiver_negative_tests.bal @@ -16,6 +16,9 @@ import ballerina/log; import ballerina/test; +import ballerina/regex; + +string invalidCompleteError = "^Failed to complete message with ID:.*$"; @test:Config { groups: ["asb_sender_receiver_negative"], @@ -52,6 +55,46 @@ function testReceivePayloadWithIncorrectExpectedType() returns error? { groups: ["asb_sender_receiver_negative"], dependsOn: [testReceivePayloadWithIncorrectExpectedType] } +function testInvalidComplete() returns error? { + log:printInfo("[[testInvalidComplete]"); + + log:printInfo("Initializing Asb sender client."); + MessageSender messageSender = check new (senderConfig); + + log:printInfo("Initializing Asb receiver client."); + receiverConfig.receiveMode = RECEIVE_AND_DELETE; + + MessageReceiver messageReceiver = check new (receiverConfig); + + log:printInfo("Sending via Asb sender."); + check messageSender->send(message1); + + log:printInfo("Receiving from Asb receiver client."); + Message|error? receivedMessage = messageReceiver->receive(serverWaitTime); + + if receivedMessage is Message { + log:printInfo("messgae" + receivedMessage.toString()); + Error? result = messageReceiver->complete(receivedMessage); + test:assertTrue(result is error, msg = "Unexpected Complete for Messages in Receive and Delete Mode"); + test:assertTrue(regex:matches((result).message(),invalidCompleteError), msg = "Invalid Complete for " + + " Messages in Receive and Delete Mode"); + } else if receivedMessage is () { + test:assertFail("No message in the queue."); + } else { + test:assertFail("Receiving message via Asb receiver connection failed."); + } + + log:printInfo("Closing Asb sender client."); + check messageSender->close(); + + log:printInfo("Closing Asb receiver client."); + check messageSender->close(); +} + +@test:Config { + groups: ["asb_sender_receiver_negative"], + dependsOn: [testInvalidComplete] +} function testReceivePayloadWithUnsupportedUnionExpectedType() returns error? { log:printInfo("[[testReceivePayloadWithUnsupportedUnionExpectedType]]"); log:printInfo("Creating Asb message sender."); From 6ddefb71d42879993343f4602499540cf2f265a5 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Tue, 26 Sep 2023 11:36:34 +0530 Subject: [PATCH 06/35] Add negative test case for invalid abandon --- .../asb_sender_receiver_negative_tests.bal | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/ballerina/tests/asb_sender_receiver_negative_tests.bal b/ballerina/tests/asb_sender_receiver_negative_tests.bal index 9e942925..59b34282 100644 --- a/ballerina/tests/asb_sender_receiver_negative_tests.bal +++ b/ballerina/tests/asb_sender_receiver_negative_tests.bal @@ -19,7 +19,7 @@ import ballerina/test; import ballerina/regex; string invalidCompleteError = "^Failed to complete message with ID:.*$"; - +string invalidAbandonError = "^Failed to abandon message with ID:.*$"; @test:Config { groups: ["asb_sender_receiver_negative"], dependsOn: [testCreateQueue, testCreateTopicOperation, testCreateSubscription] @@ -88,13 +88,53 @@ function testInvalidComplete() returns error? { check messageSender->close(); log:printInfo("Closing Asb receiver client."); - check messageSender->close(); + check messageReceiver->close(); } @test:Config { groups: ["asb_sender_receiver_negative"], dependsOn: [testInvalidComplete] } +function testInvalidAbandon() returns error? { + log:printInfo("[[testInvalidAbandon]"); + + log:printInfo("Initializing Asb sender client."); + MessageSender messageSender = check new (senderConfig); + + log:printInfo("Initializing Asb receiver client."); + receiverConfig.receiveMode = RECEIVE_AND_DELETE; + + MessageReceiver messageReceiver = check new (receiverConfig); + + log:printInfo("Sending via Asb sender."); + check messageSender->send(message1); + + log:printInfo("Receiving from Asb receiver client."); + Message|error? receivedMessage = messageReceiver->receive(serverWaitTime); + + if receivedMessage is Message { + log:printInfo("messgae" + receivedMessage.toString()); + Error? result = messageReceiver->abandon(receivedMessage); + test:assertTrue(result is error, msg = "Unexpected Abandon for Messages in Receive and Delete Mode"); + test:assertTrue(regex:matches((result).message(),invalidAbandonError), msg = "Invalid Abandon for " + + " Messages in Receive and Delete Mode"); + } else if receivedMessage is () { + test:assertFail("No message in the queue."); + } else { + test:assertFail("Receiving message via Asb receiver connection failed."); + } + + log:printInfo("Closing Asb sender client."); + check messageSender->close(); + + log:printInfo("Closing Asb receiver client."); + check messageReceiver->close(); +} + +@test:Config { + groups: ["asb_sender_receiver_negative"], + dependsOn: [testInvalidAbandon] +} function testReceivePayloadWithUnsupportedUnionExpectedType() returns error? { log:printInfo("[[testReceivePayloadWithUnsupportedUnionExpectedType]]"); log:printInfo("Creating Asb message sender."); From 0edabc3d3e9b054bc7cda71e200d5e3ce7503710 Mon Sep 17 00:00:00 2001 From: gabilang Date: Tue, 26 Sep 2023 11:51:12 +0530 Subject: [PATCH 07/35] Use graalvm-community in workflows --- .github/workflows/build-with-bal-test-native.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-with-bal-test-native.yml b/.github/workflows/build-with-bal-test-native.yml index cd38e340..a464b142 100644 --- a/.github/workflows/build-with-bal-test-native.yml +++ b/.github/workflows/build-with-bal-test-native.yml @@ -36,10 +36,10 @@ jobs: - name: Set up GraalVM uses: graalvm/setup-graalvm@v1 with: - version: 'latest' - java-version: '17.0.7' - components: 'native-image' + java-version: '17' + distribution: 'graalvm-community' github-token: ${{ secrets.GITHUB_TOKEN }} + set-java-home: 'false' - name: Check GraalVM installation run: | From e676922becf33d75f9a54a6d2992df594b5b7763 Mon Sep 17 00:00:00 2001 From: Nipuna Ranasinghe Date: Sat, 30 Sep 2023 07:36:28 +0530 Subject: [PATCH 08/35] Update code owners --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d8f667ce..b90e0e23 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -4,4 +4,4 @@ # See: https://help.github.com/articles/about-codeowners/ # These owners will be the default owners for everything in the repo. -* @indikasampath2000 @abeykoon @RolandHewage @SkNuwanTissera +* @NipunaRanasinghe @ayeshLK From 5cb850ece1be7cf837a399c59cdf0f184134f418 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Mon, 23 Oct 2023 14:19:54 +0530 Subject: [PATCH 09/35] Migrating a Connector Repository to Gradle --- .../workflows/build-timestamped-master.yml | 18 +++++ .../workflows/build-with-bal-test-graalvm.yml | 37 +++++++++ .../workflows/build-with-bal-test-native.yml | 59 -------------- .github/workflows/central-publish.yml | 21 +++++ .github/workflows/dev-stg-release.yml | 76 ------------------- .github/workflows/fossa_scan.yml | 16 ++++ .github/workflows/publish-release.yml | 16 ++++ .github/workflows/pull-request.yml | 65 +++------------- .github/workflows/release.yml | 69 ----------------- .github/workflows/stale_check.yml | 19 +++++ .github/workflows/trivy-scan.yml | 43 ++--------- .github/workflows/update-spec.yml | 48 ++++++++++++ 12 files changed, 193 insertions(+), 294 deletions(-) create mode 100644 .github/workflows/build-timestamped-master.yml create mode 100644 .github/workflows/build-with-bal-test-graalvm.yml delete mode 100644 .github/workflows/build-with-bal-test-native.yml create mode 100644 .github/workflows/central-publish.yml delete mode 100644 .github/workflows/dev-stg-release.yml create mode 100644 .github/workflows/fossa_scan.yml create mode 100644 .github/workflows/publish-release.yml delete mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/stale_check.yml create mode 100644 .github/workflows/update-spec.yml diff --git a/.github/workflows/build-timestamped-master.yml b/.github/workflows/build-timestamped-master.yml new file mode 100644 index 00000000..f3b7a5d5 --- /dev/null +++ b/.github/workflows/build-timestamped-master.yml @@ -0,0 +1,18 @@ +name: Build + +on: + push: + branches: + - master + paths-ignore: + - '*.md' + - 'docs/**' + + workflow_dispatch: + +jobs: + call_workflow: + name: Run Build Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-timestamp-master-template.yml@main + secrets: inherit diff --git a/.github/workflows/build-with-bal-test-graalvm.yml b/.github/workflows/build-with-bal-test-graalvm.yml new file mode 100644 index 00000000..77cdaece --- /dev/null +++ b/.github/workflows/build-with-bal-test-graalvm.yml @@ -0,0 +1,37 @@ +name: GraalVM Check + +on: + workflow_dispatch: + inputs: + lang_tag: + description: Branch/Release Tag of the Ballerina Lang + required: true + default: master + lang_version: + description: Ballerina Lang Version (If given ballerina lang build will be skipped) + required: false + default: '' + native_image_options: + description: Default native-image options + required: false + default: '' + schedule: + - cron: '30 18 * * *' + pull_request: + branches: + - master + types: [ opened, synchronize, reopened, labeled, unlabeled ] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + call_stdlib_workflow: + name: Run StdLib Workflow + if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-template.yml@main + with: + lang_tag: ${{ inputs.lang_tag }} + lang_version: ${{ inputs.lang_version }} + native_image_options: '-J-Xmx7G ${{ inputs.native_image_options }}' diff --git a/.github/workflows/build-with-bal-test-native.yml b/.github/workflows/build-with-bal-test-native.yml deleted file mode 100644 index a464b142..00000000 --- a/.github/workflows/build-with-bal-test-native.yml +++ /dev/null @@ -1,59 +0,0 @@ -name: GraalVM Check - -on: - schedule: - - cron: '30 18 * * *' - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: 17.0.7 - - - name: Set Up Ballerina - uses: ballerina-platform/setup-ballerina@v1.1.0 - with: - version: latest - - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - - name: Build with Gradle - env: - packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} - packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} - JAVA_OPTS: -DBALLERINA_DEV_COMPILE_BALLERINA_ORG=true - run: | - ./gradlew build -x test - - - name: Set up GraalVM - uses: graalvm/setup-graalvm@v1 - with: - java-version: '17' - distribution: 'graalvm-community' - github-token: ${{ secrets.GITHUB_TOKEN }} - set-java-home: 'false' - - - name: Check GraalVM installation - run: | - echo "GRAALVM_HOME: ${{ env.GRAALVM_HOME }}" - echo "JAVA_HOME: ${{ env.JAVA_HOME }}" - native-image --version - - - name: Run Ballerina tests using the native executable - run: bal test --graalvm ./ballerina - env: - JAVA_HOME: /usr/lib/jvm/default-jvm - CONNECTION_STRING: ${{ secrets.CONNECTION_STRING }} - QUEUE_NAME: ${{ secrets.QUEUE_NAME }} - TOPIC_NAME: ${{ secrets.TOPIC_NAME }} - SUBSCRIPTION_NAME1: ${{ secrets.SUBSCRIPTION_NAME1 }} - SUBSCRIPTION_NAME2: ${{ secrets.SUBSCRIPTION_NAME2 }} - SUBSCRIPTION_NAME3: ${{ secrets.SUBSCRIPTION_NAME3 }} diff --git a/.github/workflows/central-publish.yml b/.github/workflows/central-publish.yml new file mode 100644 index 00000000..a80ffaed --- /dev/null +++ b/.github/workflows/central-publish.yml @@ -0,0 +1,21 @@ +name: Publish to the Ballerina central + +on: + workflow_dispatch: + inputs: + environment: + type: choice + description: Select Environment + required: true + options: + - DEV CENTRAL + - STAGE CENTRAL + +jobs: + call_workflow: + name: Run Central Publish Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/central-publish-template.yml@main + secrets: inherit + with: + environment: ${{ github.event.inputs.environment }} diff --git a/.github/workflows/dev-stg-release.yml b/.github/workflows/dev-stg-release.yml deleted file mode 100644 index 5d0bc9bc..00000000 --- a/.github/workflows/dev-stg-release.yml +++ /dev/null @@ -1,76 +0,0 @@ -name: Dev/Staging BCentral Release - -on: - workflow_dispatch: - inputs: - bal_central_environment: - description: Ballerina Central Environment - type: choice - options: - - STAGE - - DEV - required: true - -jobs: - release: - runs-on: ubuntu-latest - env: - BALLERINA_${{ github.event.inputs.bal_central_environment }}_CENTRAL: true - - steps: - - uses: actions/checkout@v3 - - # Set up Java Environment - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: 17.0.7 - - # Setup Ballerina Environment - - name: Set Up Ballerina - uses: ballerina-platform/setup-ballerina@v1.1.0 - with: - version: 2201.8.0 - - # Grant execute permission to the gradlew script - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - # Build the project with Gradle - - name: Build with Gradle - env: - packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} - packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} - JAVA_OPTS: -DBALLERINA_DEV_COMPILE_BALLERINA_ORG=true - run: | - ./gradlew build -x test -x :azure-service-bus-examples:build - - # Perform Trivy scan - - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@master - with: - scan-type: 'rootfs' - scan-ref: '.' - skip-dirs: 'gradle/' - format: 'table' - timeout: '10m0s' - exit-code: '1' - - # Push to Ballerina Staging Central - - name: Push to Staging - if: github.event.inputs.bal_central_environment == 'STAGE' - run: bal push - working-directory: ./ballerina - env: - BALLERINA_CENTRAL_ACCESS_TOKEN: ${{ secrets.BALLERINA_CENTRAL_STAGE_ACCESS_TOKEN }} - JAVA_HOME: /usr/lib/jvm/default-jvm - - # Push to Ballerina Dev Central - - name: Push to Dev - if: github.event.inputs.bal_central_environment == 'DEV' - run: bal push - working-directory: ./ballerina - env: - BALLERINA_CENTRAL_ACCESS_TOKEN: ${{ secrets.BALLERINA_CENTRAL_DEV_ACCESS_TOKEN }} - JAVA_HOME: /usr/lib/jvm/default-jvm diff --git a/.github/workflows/fossa_scan.yml b/.github/workflows/fossa_scan.yml new file mode 100644 index 00000000..651f73a6 --- /dev/null +++ b/.github/workflows/fossa_scan.yml @@ -0,0 +1,16 @@ +name: Fossa Scan +on: + workflow_dispatch: + schedule: + - cron: '30 18 * * *' # 00:00 in LK time (GMT+5:30) +jobs: + fossa-scan: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: fossas/fossa-action@main + env: + packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} + packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} + with: + api-key: ${{secrets.FOSSA_APIKEY}} diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml new file mode 100644 index 00000000..8738a2ec --- /dev/null +++ b/.github/workflows/publish-release.yml @@ -0,0 +1,16 @@ +name: Publish Release + +on: + workflow_dispatch: + repository_dispatch: + types: [ stdlib-release-pipeline ] + +jobs: + call_workflow: + name: Run Release Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/release-package-template.yml@main + secrets: inherit + with: + package-name: asb + package-org: ballerina diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 9e743073..a83a8634 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,59 +1,14 @@ name: Pull Request -on: [ pull_request ] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - # Set up Java Environment - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: 17.0.7 - - # Setup Ballerina Environment - - name: Set Up Ballerina - uses: ballerina-platform/setup-ballerina@v1.1.0 - with: - version: latest - - # Grant execute permission to the gradlew script - - name: Grant execute permission for gradlew - run: chmod +x gradlew +on: pull_request - # Build the project with Gradle - - name: Build with Gradle - env: - packageUser: ${{ github.actor }} - packagePAT: ${{ secrets.GITHUB_TOKEN }} - JAVA_OPTS: -DBALLERINA_DEV_COMPILE_BALLERINA_ORG=true - run: | - ./gradlew build -x test - - # Build Ballerina Project - - name: Ballerina Build - run: bal pack ./ballerina - env: - JAVA_HOME: /usr/lib/jvm/default-jvm - - # Test Ballerina Project - - name: Ballerina Test - # tests will be skipped if the PR is from a forked repository (as the secrets are not available) - if: ${{ github.event.pull_request.head.repo.full_name == github.repository }} - run: bal test --test-report --code-coverage --coverage-format=xml ./ballerina - env: - JAVA_HOME: /usr/lib/jvm/default-jvm - CONNECTION_STRING: ${{ secrets.CONNECTION_STRING }} - QUEUE_NAME: ${{ secrets.QUEUE_NAME }} - TOPIC_NAME: ${{ secrets.TOPIC_NAME }} - SUBSCRIPTION_NAME1: ${{ secrets.SUBSCRIPTION_NAME1 }} - SUBSCRIPTION_NAME2: ${{ secrets.SUBSCRIPTION_NAME2 }} - SUBSCRIPTION_NAME3: ${{ secrets.SUBSCRIPTION_NAME3 }} - - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 +jobs: + call_workflow: + name: Run PR Build Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/pull-request-build-template.yml@main + secrets: inherit diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml deleted file mode 100644 index 4c563d35..00000000 --- a/.github/workflows/release.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: Deployment - -on: - release: - types: [ published ] - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - # Set up Java Environment - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: 17.0.7 - - # Setup Ballerina Environment - - name: Set Up Ballerina - uses: ballerina-platform/setup-ballerina@v1.1.0 - with: - version: 2201.8.0 - - # Grant execute permission to the gradlew script - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - # Build the project with Gradle - - name: Build with Gradle - env: - packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} - packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} - JAVA_OPTS: -DBALLERINA_DEV_COMPILE_BALLERINA_ORG=true - run: | - ./gradlew build -x test -x :azure-service-bus-examples:build - - # Perform Trivy scan - - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@master - with: - scan-type: 'rootfs' - scan-ref: '.' - skip-dirs: 'gradle/' - format: 'table' - timeout: '10m0s' - exit-code: '1' - - # Build Ballerina Project - - name: Ballerina Build - run: bal pack ./ballerina - env: - JAVA_HOME: /usr/lib/jvm/default-jvm - CONNECTION_STRING: ${{ secrets.CONNECTION_STRING }} - QUEUE_NAME: ${{ secrets.QUEUE_NAME }} - TOPIC_NAME: ${{ secrets.TOPIC_NAME }} - SUBSCRIPTION_NAME1: ${{ secrets.SUBSCRIPTION_NAME1 }} - SUBSCRIPTION_NAME2: ${{ secrets.SUBSCRIPTION_NAME2 }} - SUBSCRIPTION_NAME3: ${{ secrets.SUBSCRIPTION_NAME3 }} - - # Push to Ballerina Central - - name: Ballerina Push - run: bal push - working-directory: ./ballerina - env: - BALLERINA_CENTRAL_ACCESS_TOKEN: ${{ secrets.BALLERINA_CENTRAL_ACCESS_TOKEN }} - JAVA_HOME: /usr/lib/jvm/default-jvm diff --git a/.github/workflows/stale_check.yml b/.github/workflows/stale_check.yml new file mode 100644 index 00000000..8763360a --- /dev/null +++ b/.github/workflows/stale_check.yml @@ -0,0 +1,19 @@ +name: 'Close stale pull requests' + +on: + schedule: + - cron: '30 19 * * *' + workflow_dispatch: + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v3 + with: + stale-pr-message: 'This PR has been open for more than 15 days with no activity. This will be closed in 3 days unless the `stale` label is removed or commented.' + close-pr-message: 'Closed PR due to inactivity for more than 18 days.' + days-before-pr-stale: 15 + days-before-pr-close: 3 + days-before-issue-stale: -1 + days-before-issue-close: -1 diff --git a/.github/workflows/trivy-scan.yml b/.github/workflows/trivy-scan.yml index 4a286aa6..20e3aa24 100644 --- a/.github/workflows/trivy-scan.yml +++ b/.github/workflows/trivy-scan.yml @@ -1,40 +1,13 @@ name: Trivy on: - workflow_dispatch: - schedule: - - cron: '30 20 * * *' + workflow_dispatch: + schedule: + - cron: "30 20 * * *" jobs: - ubuntu-build: - name: Build on Ubuntu - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: 17.0.7 - - - name: Set Up Ballerina - uses: ballerina-platform/setup-ballerina@v1.1.0 - with: - version: latest - - - name: Build with Gradle - env: - packageUser: ${{ github.actor }} - packagePAT: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew build -x check -x test -x :azure-service-bus-examples:build - - - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@master - with: - scan-type: 'rootfs' - scan-ref: '.' - skip-dirs: 'gradle/' - format: 'table' - timeout: '10m0s' - exit-code: '1' + call_workflow: + name: Run Trivy Scan Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/trivy-scan-template.yml@main + secrets: inherit diff --git a/.github/workflows/update-spec.yml b/.github/workflows/update-spec.yml new file mode 100644 index 00000000..7815278d --- /dev/null +++ b/.github/workflows/update-spec.yml @@ -0,0 +1,48 @@ +name: Update Specifications + +env: + SPEC_FOLDER_PATH: 'docs/spec' + +on: + workflow_dispatch: + push: + branches: + - master + paths: + - 'docs/spec/**' + +jobs: + update_specs: + name: Update Specifications + if: github.repository_owner == 'ballerina-platform' + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Get current date + id: date + run: echo "::set-output name=date::$(date +'%Y-%m-%d')" + + - name: Get Repo Name + id: repo_name + run: | + MODULE=${{ github.event.repository.name }} + echo "::set-output name=short_name::${MODULE##*-}" + + - name: Trigger Workflow + run: | + curl --request POST \ + 'https://api.github.com/repos/ballerina-platform/ballerina-dev-website/dispatches' \ + -H 'Accept: application/vnd.github.v3+json' \ + -H 'Authorization: Bearer ${{ secrets.BALLERINA_BOT_TOKEN }}' \ + --data "{ + \"event_type\": \"update-stdlib-specs\", + \"client_payload\": { + \"module_name\": \"${{ github.event.repository.name }}\", + \"short_name\": \"${{ steps.repo_name.outputs.short_name }}\", + \"file_dir\": \"${{ github.event.repository.name }}/${{ env.SPEC_FOLDER_PATH }}\", + \"release_date\": \"${{ steps.date.outputs.date }}\" + } + }" From df838a5353eca1dab56cc182dcdf82992978138d Mon Sep 17 00:00:00 2001 From: RDPerera Date: Fri, 17 Nov 2023 09:47:01 +0530 Subject: [PATCH 10/35] [Automated] Update the toml files --- ballerina/Ballerina.toml | 4 +- ballerina/Dependencies.toml | 163 ++++++++++++++++++++++++++++++++++++ 2 files changed, 165 insertions(+), 2 deletions(-) create mode 100644 ballerina/Dependencies.toml diff --git a/ballerina/Ballerina.toml b/ballerina/Ballerina.toml index 0c86864c..cd25e596 100644 --- a/ballerina/Ballerina.toml +++ b/ballerina/Ballerina.toml @@ -12,10 +12,10 @@ repository = "https://github.com/ballerina-platform/module-ballerinax-azure-serv [build-options] observabilityIncluded = true -[platform.java11] +[platform.java17] graalvmCompatible = true -[[platform.java11.dependency]] +[[platform.java17.dependency]] path = "../native/build/libs/azure-service-bus-native-3.7.0.jar" groupId = "org.ballerinax" artifactId = "asb-native" diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml new file mode 100644 index 00000000..e995c861 --- /dev/null +++ b/ballerina/Dependencies.toml @@ -0,0 +1,163 @@ +# AUTO-GENERATED FILE. DO NOT MODIFY. + +# This file is auto-generated by Ballerina for managing dependency versions. +# It should not be modified by hand. + +[ballerina] +dependencies-toml-version = "2" +distribution-version = "2201.8.0-20230830-220400-8a7556d8" + +[[package]] +org = "ballerina" +name = "io" +version = "1.6.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"} +] + +[[package]] +org = "ballerina" +name = "jballerina.java" +version = "0.0.0" +modules = [ + {org = "ballerina", packageName = "jballerina.java", moduleName = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.error" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.regexp" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "lang.string" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.regexp"} +] + +[[package]] +org = "ballerina" +name = "lang.value" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "log" +version = "2.9.0" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.value"}, + {org = "ballerina", name = "observe"} +] +modules = [ + {org = "ballerina", packageName = "log", moduleName = "log"} +] + +[[package]] +org = "ballerina" +name = "observe" +version = "1.2.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] + +[[package]] +org = "ballerina" +name = "os" +version = "1.8.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "io"}, + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "os", moduleName = "os"} +] + +[[package]] +org = "ballerina" +name = "regex" +version = "1.4.3" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.string"} +] +modules = [ + {org = "ballerina", packageName = "regex", moduleName = "regex"} +] + +[[package]] +org = "ballerina" +name = "test" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.error"} +] +modules = [ + {org = "ballerina", packageName = "test", moduleName = "test"} +] + +[[package]] +org = "ballerina" +name = "time" +version = "2.4.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "time", moduleName = "time"} +] + +[[package]] +org = "ballerinai" +name = "observe" +version = "0.0.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "observe"} +] +modules = [ + {org = "ballerinai", packageName = "observe", moduleName = "observe"} +] + +[[package]] +org = "ballerinax" +name = "asb" +version = "3.7.0" +dependencies = [ + {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "log"}, + {org = "ballerina", name = "os"}, + {org = "ballerina", name = "regex"}, + {org = "ballerina", name = "test"}, + {org = "ballerina", name = "time"}, + {org = "ballerinai", name = "observe"} +] +modules = [ + {org = "ballerinax", packageName = "asb", moduleName = "asb"} +] + From d13fa33d40fdb1cc0536e2c634d3903db5800d4d Mon Sep 17 00:00:00 2001 From: RDPerera Date: Fri, 17 Nov 2023 09:56:54 +0530 Subject: [PATCH 11/35] Fix build failures --- .../issue_template.md | 0 .../pull_request_template.md | 0 .../workflows/build-timestamped-master.yml | 18 ----- .../workflows/build-with-bal-test-graalvm.yml | 37 --------- .../workflows/build-with-bal-test-native.yml | 17 ++++ .github/workflows/central-publish.yml | 21 ----- .github/workflows/ci.yml | 80 +++---------------- .github/workflows/daily-build.yml | 75 ++--------------- .github/workflows/dev-stg-release.yml | 21 +++++ .github/workflows/fossa_scan.yml | 16 ---- .github/workflows/publish-release.yml | 16 ---- .github/workflows/pull-request.yml | 18 +++-- .github/workflows/release.yml | 16 ++++ .github/workflows/stale_check.yml | 19 ----- .github/workflows/trivy-scan.yml | 38 +++++++-- .github/workflows/update-spec.yml | 48 ----------- .gitignore | 3 + ballerina/build.gradle | 68 +++++++++------- build-config/resources/Ballerina.toml | 4 +- build.gradle | 43 +++++----- gradle.properties | 15 ++-- native/build.gradle | 55 ++++--------- settings.gradle | 25 +++++- 23 files changed, 220 insertions(+), 433 deletions(-) rename issue_template.md => .github/issue_template.md (100%) rename pull_request_template.md => .github/pull_request_template.md (100%) delete mode 100644 .github/workflows/build-timestamped-master.yml delete mode 100644 .github/workflows/build-with-bal-test-graalvm.yml create mode 100644 .github/workflows/build-with-bal-test-native.yml delete mode 100644 .github/workflows/central-publish.yml create mode 100644 .github/workflows/dev-stg-release.yml delete mode 100644 .github/workflows/fossa_scan.yml delete mode 100644 .github/workflows/publish-release.yml create mode 100644 .github/workflows/release.yml delete mode 100644 .github/workflows/stale_check.yml delete mode 100644 .github/workflows/update-spec.yml diff --git a/issue_template.md b/.github/issue_template.md similarity index 100% rename from issue_template.md rename to .github/issue_template.md diff --git a/pull_request_template.md b/.github/pull_request_template.md similarity index 100% rename from pull_request_template.md rename to .github/pull_request_template.md diff --git a/.github/workflows/build-timestamped-master.yml b/.github/workflows/build-timestamped-master.yml deleted file mode 100644 index f3b7a5d5..00000000 --- a/.github/workflows/build-timestamped-master.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: Build - -on: - push: - branches: - - master - paths-ignore: - - '*.md' - - 'docs/**' - - workflow_dispatch: - -jobs: - call_workflow: - name: Run Build Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-timestamp-master-template.yml@main - secrets: inherit diff --git a/.github/workflows/build-with-bal-test-graalvm.yml b/.github/workflows/build-with-bal-test-graalvm.yml deleted file mode 100644 index 77cdaece..00000000 --- a/.github/workflows/build-with-bal-test-graalvm.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: GraalVM Check - -on: - workflow_dispatch: - inputs: - lang_tag: - description: Branch/Release Tag of the Ballerina Lang - required: true - default: master - lang_version: - description: Ballerina Lang Version (If given ballerina lang build will be skipped) - required: false - default: '' - native_image_options: - description: Default native-image options - required: false - default: '' - schedule: - - cron: '30 18 * * *' - pull_request: - branches: - - master - types: [ opened, synchronize, reopened, labeled, unlabeled ] - -concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} - cancel-in-progress: true - -jobs: - call_stdlib_workflow: - name: Run StdLib Workflow - if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-template.yml@main - with: - lang_tag: ${{ inputs.lang_tag }} - lang_version: ${{ inputs.lang_version }} - native_image_options: '-J-Xmx7G ${{ inputs.native_image_options }}' diff --git a/.github/workflows/build-with-bal-test-native.yml b/.github/workflows/build-with-bal-test-native.yml new file mode 100644 index 00000000..a00897f0 --- /dev/null +++ b/.github/workflows/build-with-bal-test-native.yml @@ -0,0 +1,17 @@ +name: GraalVM Check + +on: + schedule: + - cron: "30 18 * * *" + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true + +jobs: + call_workflow_template: + name: Run Workflow Template + if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-connector-template.yml@main + secrets: inherit diff --git a/.github/workflows/central-publish.yml b/.github/workflows/central-publish.yml deleted file mode 100644 index a80ffaed..00000000 --- a/.github/workflows/central-publish.yml +++ /dev/null @@ -1,21 +0,0 @@ -name: Publish to the Ballerina central - -on: - workflow_dispatch: - inputs: - environment: - type: choice - description: Select Environment - required: true - options: - - DEV CENTRAL - - STAGE CENTRAL - -jobs: - call_workflow: - name: Run Central Publish Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/central-publish-template.yml@main - secrets: inherit - with: - environment: ${{ github.event.inputs.environment }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 062bcbfd..867399c9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,78 +1,18 @@ name: CI + on: push: branches: - - main + - master - 2201.[0-9]+.x repository_dispatch: - types: - check_connector_for_breaking_changes + types: check_connector_for_breaking_changes jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - # Set up Java Environment - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: 17.0.7 - - # Setup Ballerina Environment - - name: Set Up Ballerina - uses: ballerina-platform/setup-ballerina@v1.1.0 - with: - version: latest - - # Grant execute permission to the gradlew script - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - # Build the project with Gradle - - name: Build with Gradle - env: - packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} - packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} - JAVA_OPTS: -DBALLERINA_DEV_COMPILE_BALLERINA_ORG=true - run: | - ./gradlew build -x test - - # Build Ballerina Project - - name: Ballerina Build - run: bal pack ./ballerina - env: - JAVA_HOME: /usr/lib/jvm/default-jvm - - # Test Ballerina Project - - name: Ballerina Test - run: bal test --test-report --code-coverage --coverage-format=xml ./ballerina - env: - JAVA_HOME: /usr/lib/jvm/default-jvm - CONNECTION_STRING: ${{ secrets.CONNECTION_STRING }} - QUEUE_NAME: ${{ secrets.QUEUE_NAME }} - TOPIC_NAME: ${{ secrets.TOPIC_NAME }} - SUBSCRIPTION_NAME1: ${{ secrets.SUBSCRIPTION_NAME1 }} - SUBSCRIPTION_NAME2: ${{ secrets.SUBSCRIPTION_NAME2 }} - SUBSCRIPTION_NAME3: ${{ secrets.SUBSCRIPTION_NAME3 }} - - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 - - - name: Alert notifier on failure - if: failure() && (github.event.action == 'check_connector_for_breaking_changes') - run: | - curl -X POST \ - 'https://api.github.com/repos/ballerina-platform/ballerina-release/dispatches' \ - --header 'Accept: application/vnd.github.v3+json' \ - --header 'Authorization: Bearer ${{ secrets.BALLERINA_BOT_TOKEN }}' \ - --data-raw '{ - "event_type": "notify-ballerinax-connector-build-failure", - "client_payload": { - "repoName": "module-ballerinax-azure-service-bus", - "workflow": "CI" - } - }' + call_workflow: + name: Run Connector Build Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-connector-template.yml@main + secrets: inherit + with: + repo-name: module-ballerinax-mongodb diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml index c79e5813..91f40b6b 100644 --- a/.github/workflows/daily-build.yml +++ b/.github/workflows/daily-build.yml @@ -2,72 +2,13 @@ name: Daily build on: schedule: - - cron: '30 2 * * *' + - cron: "30 2 * * *" jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - # Set up Java Environment - - name: Set up JDK 17 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: 17.0.7 - - # Setup Ballerina Environment - - name: Set Up Ballerina - uses: ballerina-platform/setup-ballerina@v1.1.0 - with: - version: latest - - # Grant execute permission to the gradlew script - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - # Build the project with Gradle - - name: Build with Gradle - env: - packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} - packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} - JAVA_OPTS: -DBALLERINA_DEV_COMPILE_BALLERINA_ORG=true - run: | - ./gradlew build -x test - - # Build Ballerina Project - - name: Ballerina Build - run: bal pack ./ballerina - env: - JAVA_HOME: /usr/lib/jvm/default-jvm - - # Test Ballerina Project - - name: Ballerina Test - run: bal test --test-report --code-coverage --coverage-format=xml ./ballerina - env: - JAVA_HOME: /usr/lib/jvm/default-jvm - CONNECTION_STRING: ${{ secrets.CONNECTION_STRING }} - QUEUE_NAME: ${{ secrets.QUEUE_NAME }} - TOPIC_NAME: ${{ secrets.TOPIC_NAME }} - SUBSCRIPTION_NAME1: ${{ secrets.SUBSCRIPTION_NAME1 }} - SUBSCRIPTION_NAME2: ${{ secrets.SUBSCRIPTION_NAME2 }} - SUBSCRIPTION_NAME3: ${{ secrets.SUBSCRIPTION_NAME3 }} - - - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v3 - - # Send notification when build fails - - name: Notify failure - if: ${{ failure() }} - run: | - curl -X POST \ - 'https://api.github.com/repos/ballerina-platform/ballerina-release/dispatches' \ - -H 'Accept: application/vnd.github.v3+json' \ - -H 'Authorization: Bearer ${{ secrets.BALLERINA_BOT_TOKEN }}' \ - --data "{ - \"event_type\": \"notify-build-failure\", - \"client_payload\": { - \"repoName\": \"module-ballerinax-azure-service-bus\" - } - }" + call_workflow: + name: Run Daily Build Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/daily-build-connector-template.yml@main + secrets: inherit + with: + repo-name: module-ballerinax-azure-service-bus diff --git a/.github/workflows/dev-stg-release.yml b/.github/workflows/dev-stg-release.yml new file mode 100644 index 00000000..49d6f529 --- /dev/null +++ b/.github/workflows/dev-stg-release.yml @@ -0,0 +1,21 @@ +name: Publish to the Ballerina Dev\Stage Central + +on: + workflow_dispatch: + inputs: + environment: + type: choice + description: Select Environment + required: true + options: + - DEV CENTRAL + - STAGE CENTRAL + +jobs: + call_workflow: + name: Run Dev\Stage Central Publish Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/dev-stage-central-publish-connector-template.yml@main + secrets: inherit + with: + environment: ${{ github.event.inputs.environment }} diff --git a/.github/workflows/fossa_scan.yml b/.github/workflows/fossa_scan.yml deleted file mode 100644 index 651f73a6..00000000 --- a/.github/workflows/fossa_scan.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Fossa Scan -on: - workflow_dispatch: - schedule: - - cron: '30 18 * * *' # 00:00 in LK time (GMT+5:30) -jobs: - fossa-scan: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - uses: fossas/fossa-action@main - env: - packageUser: ${{ secrets.BALLERINA_BOT_USERNAME }} - packagePAT: ${{ secrets.BALLERINA_BOT_TOKEN }} - with: - api-key: ${{secrets.FOSSA_APIKEY}} diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml deleted file mode 100644 index 8738a2ec..00000000 --- a/.github/workflows/publish-release.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Publish Release - -on: - workflow_dispatch: - repository_dispatch: - types: [ stdlib-release-pipeline ] - -jobs: - call_workflow: - name: Run Release Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/release-package-template.yml@main - secrets: inherit - with: - package-name: asb - package-org: ballerina diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index a83a8634..bcbb743f 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -1,14 +1,16 @@ -name: Pull Request +name: PR Build concurrency: - group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} - cancel-in-progress: true + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.run_id }} + cancel-in-progress: true on: pull_request jobs: - call_workflow: - name: Run PR Build Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/pull-request-build-template.yml@main - secrets: inherit + call_workflow: + name: Run PR Build Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/pr-build-connector-template.yml@main + secrets: inherit + with: + additional-test-flags: ${{ github.event.pull_request.head.repo.full_name != github.repository && '-x test' || ''}} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..e0d8b3cf --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,16 @@ +name: Publish Release + +on: + workflow_dispatch: + repository_dispatch: + types: [ connector-release-pipeline ] + +jobs: + call_workflow: + name: Run Release Workflow + if: ${{ github.repository_owner == 'ballerina-platform' }} + uses: ballerina-platform/ballerina-standard-library/.github/workflows/release-package-template.yml@main + secrets: inherit + with: + package-name: asb + package-org: ballerinax diff --git a/.github/workflows/stale_check.yml b/.github/workflows/stale_check.yml deleted file mode 100644 index 8763360a..00000000 --- a/.github/workflows/stale_check.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: 'Close stale pull requests' - -on: - schedule: - - cron: '30 19 * * *' - workflow_dispatch: - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v3 - with: - stale-pr-message: 'This PR has been open for more than 15 days with no activity. This will be closed in 3 days unless the `stale` label is removed or commented.' - close-pr-message: 'Closed PR due to inactivity for more than 18 days.' - days-before-pr-stale: 15 - days-before-pr-close: 3 - days-before-issue-stale: -1 - days-before-issue-close: -1 diff --git a/.github/workflows/trivy-scan.yml b/.github/workflows/trivy-scan.yml index 20e3aa24..af3cbfa1 100644 --- a/.github/workflows/trivy-scan.yml +++ b/.github/workflows/trivy-scan.yml @@ -1,13 +1,35 @@ name: Trivy on: - workflow_dispatch: - schedule: - - cron: "30 20 * * *" + workflow_call: jobs: - call_workflow: - name: Run Trivy Scan Workflow - if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/trivy-scan-template.yml@main - secrets: inherit + ubuntu-build: + name: Build on Ubuntu + runs-on: ubuntu-latest + if: github.repository_owner == 'ballerina-platform' + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + distribution: "temurin" + java-version: 17.0.7 + + - name: Build with Gradle + env: + packageUser: ${{ github.actor }} + packagePAT: ${{ secrets.GITHUB_TOKEN }} + run: ./gradlew build -x check -x test + + - name: Create lib directory if not exists + run: mkdir -p ballerina/lib + + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + scan-type: "rootfs" + scan-ref: "/github/workspace/ballerina/lib" + format: "table" + timeout: "10m0s" + exit-code: "1" diff --git a/.github/workflows/update-spec.yml b/.github/workflows/update-spec.yml deleted file mode 100644 index 7815278d..00000000 --- a/.github/workflows/update-spec.yml +++ /dev/null @@ -1,48 +0,0 @@ -name: Update Specifications - -env: - SPEC_FOLDER_PATH: 'docs/spec' - -on: - workflow_dispatch: - push: - branches: - - master - paths: - - 'docs/spec/**' - -jobs: - update_specs: - name: Update Specifications - if: github.repository_owner == 'ballerina-platform' - runs-on: ubuntu-latest - - steps: - - name: Checkout Repository - uses: actions/checkout@v3 - - - name: Get current date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d')" - - - name: Get Repo Name - id: repo_name - run: | - MODULE=${{ github.event.repository.name }} - echo "::set-output name=short_name::${MODULE##*-}" - - - name: Trigger Workflow - run: | - curl --request POST \ - 'https://api.github.com/repos/ballerina-platform/ballerina-dev-website/dispatches' \ - -H 'Accept: application/vnd.github.v3+json' \ - -H 'Authorization: Bearer ${{ secrets.BALLERINA_BOT_TOKEN }}' \ - --data "{ - \"event_type\": \"update-stdlib-specs\", - \"client_payload\": { - \"module_name\": \"${{ github.event.repository.name }}\", - \"short_name\": \"${{ steps.repo_name.outputs.short_name }}\", - \"file_dir\": \"${{ github.event.repository.name }}/${{ env.SPEC_FOLDER_PATH }}\", - \"release_date\": \"${{ steps.date.outputs.date }}\" - } - }" diff --git a/.gitignore b/.gitignore index 5d9f92e1..d6294cf7 100644 --- a/.gitignore +++ b/.gitignore @@ -44,3 +44,6 @@ Config.toml # Ignore Gradle build output directory build + +# Environment files +*.env \ No newline at end of file diff --git a/ballerina/build.gradle b/ballerina/build.gradle index ac8f44f3..3b78eb5f 100644 --- a/ballerina/build.gradle +++ b/ballerina/build.gradle @@ -16,10 +16,17 @@ * under the License. */ +import org.apache.tools.ant.taskdefs.condition.Os + +plugins { + id 'io.ballerina.plugin' +} + description = 'Ballerina - Azure Service Bus Ballerina Connector' +def packageName = "azure-service-bus" +def packageOrg = "ballerinax" def tomlVersion = stripBallerinaExtensionVersion("${project.version}") - def ballerinaTomlFilePlaceHolder = new File("${project.rootDir}/build-config/resources/Ballerina.toml") def ballerinaTomlFile = new File("$project.projectDir/Ballerina.toml") @@ -33,46 +40,47 @@ def stripBallerinaExtensionVersion(String extVersion) { return extVersion } } else { - return extVersion.replace("${project.ext.snapshotVersion}", '') + return extVersion.replace("${project.ext.snapshotVersion}", "") } } +ballerina { + packageOrganization = packageOrg + module = packageName + testCoverageParam = "--code-coverage --coverage-format=xml" + buildOnDockerImage = "nightly" +} + +configurations { + externalJars +} + task updateTomlFiles { doLast { - def newConfig = ballerinaTomlFilePlaceHolder.text.replace('@project.version@', project.version.toString()) - newConfig = newConfig.replace('@toml.version@', tomlVersion) - ballerinaTomlFile.text = newConfig + def newBallerinaToml = ballerinaTomlFilePlaceHolder.text.replace("@project.version@", project.version) + newBallerinaToml = newBallerinaToml.replace("@toml.version@", tomlVersion) + newBallerinaToml = newBallerinaToml.replace("@jackson.version@", jacksonVersion) + ballerinaTomlFile.text = newBallerinaToml } } -task build { - dependsOn ":${packageName}-native:build" - dependsOn updateTomlFiles +task commitTomlFiles { doLast { - executeBalCommand ("build", "${project.projectDir}") - executeBalCommand ("pack", "${project.projectDir}") - executeBalCommand ("push --repository=local", "${project.projectDir}") - - def centralDir = file("${System.getProperty('user.home')}/.ballerina/repositories/central.ballerina.io/") - def cacheDirs = centralDir.listFiles().findAll { it.isDirectory() && it.name.startsWith('cache-') } - delete cacheDirs - - def destinationDir = new File("${System.getProperty('user.home')}/.ballerina/repositories/central.ballerina.io/bala/ballerinax/${project.balPackageName}") - if (destinationDir.exists()) { - delete destinationDir; - } - - copy { - from "${System.getProperty('user.home')}/.ballerina/repositories/local/bala/ballerinax/${project.balPackageName}" - into destinationDir + project.exec { + ignoreExitValue true + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + commandLine 'cmd', '/c', "git commit -m \"[Automated] Update the toml files\" Ballerina.toml Dependencies.toml" + } else { + commandLine 'sh', '-c', "git commit -m '[Automated] Update the toml files' Ballerina.toml Dependencies.toml" + } } } } -task test { - dependsOn ":${packageName}-native:build" - dependsOn updateTomlFiles - doLast { - executeBalCommand ("test", "${project.projectDir}") - } +clean { + delete 'build' } + +build.dependsOn copyToLib +build.dependsOn ":${packageName}-native:build" +test.dependsOn ":${packageName}-native:build" diff --git a/build-config/resources/Ballerina.toml b/build-config/resources/Ballerina.toml index 81cf721c..bc23fadf 100644 --- a/build-config/resources/Ballerina.toml +++ b/build-config/resources/Ballerina.toml @@ -12,10 +12,10 @@ repository = "https://github.com/ballerina-platform/module-ballerinax-azure-serv [build-options] observabilityIncluded = true -[platform.java11] +[platform.java17] graalvmCompatible = true -[[platform.java11.dependency]] +[[platform.java17.dependency]] path = "../native/build/libs/azure-service-bus-native-@project.version@.jar" groupId = "org.ballerinax" artifactId = "asb-native" diff --git a/build.gradle b/build.gradle index 0ed18581..8af34c3d 100644 --- a/build.gradle +++ b/build.gradle @@ -18,10 +18,10 @@ import org.apache.tools.ant.taskdefs.condition.Os plugins { - id "com.github.spotbugs" version "${githubSpotbugsVersion}" - id "com.github.johnrengelman.shadow" version "${githubJohnrengelmanShadowVersion}" - id "de.undercouch.download" version "${underCouchDownloadVersion}" - id "net.researchgate.release" version "${researchgateReleaseVersion}" + id "com.github.spotbugs-base" + id "com.github.johnrengelman.shadow" + id "de.undercouch.download" + id "net.researchgate.release" } description = 'Ballerina - Azure Service Bus' @@ -54,30 +54,25 @@ allprojects { } ext { - snapshotVersion= '-SNAPSHOT' + snapshotVersion = '-SNAPSHOT' timestampedVersionRegex = '.*-\\d{8}-\\d{6}-\\w.*\$' - packageName ='azure-service-bus' - balPackageName = 'asb' } } -def executeBalCommand(String command, String dir) { - try { - exec { - workingDir dir - if (Os.isFamily(Os.FAMILY_WINDOWS)) { - commandLine 'cmd', '/c', "bal.bat ${command} && exit %%ERRORLEVEL%%" - } else { - commandLine 'sh', '-c', "bal ${command}" - } - } - } catch (Exception e) { - println("bal command failed. " + e.message) - throw e - } +task build { + dependsOn(":azure-service-bus-native:build") + dependsOn(":azure-service-bus-ballerina:build") } -task build { - dependsOn("${project.packageName}-native:build") - dependsOn("${project.packageName}-ballerina:build") +def moduleVersion = project.version.replace("-SNAPSHOT", "") + +release { + buildTasks = ['build'] + failOnSnapshotDependencies = true + versionPropertyFile = 'gradle.properties' + tagTemplate = 'v${version}' + git { + requireBranch = "release-${moduleVersion}" + pushToRemote = 'origin' + } } diff --git a/gradle.properties b/gradle.properties index 807bff9e..9edd6c5c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,14 +2,15 @@ org.gradle.caching=true group=org.ballerinax.azure.servicebus version=3.7.0 -puppycrawlCheckstyleVersion=10.12.1 -checkstyleToolVersion=10.12.1 -githubSpotbugsVersion=5.0.14 -githubJohnrengelmanShadowVersion=8.1.1 -underCouchDownloadVersion=5.4.0 -researchgateReleaseVersion=2.8.0 -testngVersion=7.6.1 +checkstylePluginVersion=10.12.0 +spotbugsPluginVersion=5.0.14 +shadowJarPluginVersion=8.1.1 +downloadPluginVersion=5.4.0 +releasePluginVersion=2.8.0 +ballerinaGradlePluginVersion=2.1.5 +jacocoVersion=0.8.10 ballerinaLangVersion=2201.8.0-20230830-220400-8a7556d8 azureServiceBusVersion=7.14.3 slf4jVersion=1.7.30 +jacksonVersion=2.15.2 \ No newline at end of file diff --git a/native/build.gradle b/native/build.gradle index 88f379eb..da3147d5 100644 --- a/native/build.gradle +++ b/native/build.gradle @@ -17,32 +17,31 @@ */ plugins { - id 'java-library' - id 'com.github.spotbugs' + id 'java' id 'checkstyle' - id 'jacoco' + id 'com.github.spotbugs' } description = 'Ballerina - Azure Service Bus Native' configurations { - jacocoRuntime dist { transitive true } } dependencies { - jacocoRuntime "org.jacoco:org.jacoco.agent:${jacoco.toolVersion}:runtime" - checkstyle project(":checkstyle") - checkstyle "com.puppycrawl.tools:checkstyle:${puppycrawlCheckstyleVersion}" + checkstyle "com.puppycrawl.tools:checkstyle:${checkstylePluginVersion}" - implementation group: 'com.azure', name: 'azure-messaging-servicebus', version: "${azureServiceBusVersion}" - implementation group: 'org.slf4j', name: 'slf4j-jdk14', version: "${slf4jVersion}" - implementation group: 'org.ballerinalang', name: 'ballerina-lang', version: project.ballerinaLangVersion - implementation group: 'org.ballerinalang', name: 'ballerina-runtime', version: project.ballerinaLangVersion + implementation group: 'org.ballerinalang', name: 'ballerina-runtime', version: "${ballerinaLangVersion}" + implementation group: 'org.ballerinalang', name: 'ballerina-lang', version: "${ballerinaLangVersion}" implementation group: 'org.ballerinalang', name: 'value', version: "${ballerinaLangVersion}" + + implementation group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}" + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}" + implementation group: 'com.azure', name: 'azure-messaging-servicebus', version: "${azureServiceBusVersion}" + dist group: 'com.azure', name: 'azure-messaging-servicebus', version: "${azureServiceBusVersion}" } @@ -50,12 +49,6 @@ tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } -sourceCompatibility = JavaVersion.VERSION_17 - -jacoco { - toolVersion = "0.8.5" -} - test { testLogging { showStackTraces = true @@ -88,42 +81,26 @@ spotbugsTest { enabled = false } -task validateSpotbugs() { - doLast { - if (spotbugsMain.reports.size() > 0 && - spotbugsMain.reports[0].destination.exists() && - spotbugsMain.reports[0].destination.text.readLines().size() > 0) { - spotbugsMain.reports[0].destination?.eachLine { - println 'Failure: ' + it - } - throw new GradleException("Spotbugs rule violations were found."); - } - } +tasks.withType(Checkstyle) { + exclude '**/module-info.java' } checkstyle { - toolVersion "${checkstyleToolVersion}" + toolVersion "${checkstylePluginVersion}" configFile file("${rootDir}/build-config/checkstyle/build/checkstyle.xml") configProperties = ["suppressionFile": file("${rootDir}/build-config/checkstyle/build/suppressions.xml")] } -tasks.withType(Checkstyle) { - exclude '**/module-info.java' -} +checkstyleMain.dependsOn ':checkstyle:downloadCheckstyleRuleFiles' jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE dependsOn configurations.dist from { configurations.dist.collect { it.isDirectory() ? it : zipTree(it) } } { - exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA', 'com/google/gson/**', - 'org/slf4j/**', 'org/apache/commons/lang3/**', 'com/ctc/wstx/**', 'org/codehaus/**' + exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA', 'org/slf4j/**' } } - -spotbugsMain.finalizedBy validateSpotbugs -checkstyleMain.dependsOn ':checkstyle:downloadCheckstyleRuleFiles' - compileJava { doFirst { options.compilerArgs = [ @@ -131,4 +108,4 @@ compileJava { ] classpath = files() } -} +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 9f0bb6f7..a3cf0e05 100644 --- a/settings.gradle +++ b/settings.gradle @@ -16,6 +16,27 @@ * under the License. */ +pluginManagement { + plugins { + id "com.github.spotbugs-base" version "${spotbugsPluginVersion}" + id "com.github.johnrengelman.shadow" version "${shadowJarPluginVersion}" + id "de.undercouch.download" version "${downloadPluginVersion}" + id "net.researchgate.release" version "${releasePluginVersion}" + id "io.ballerina.plugin" version "${ballerinaGradlePluginVersion}" + } + + repositories { + gradlePluginPortal() + maven { + url = 'https://maven.pkg.github.com/ballerina-platform/*' + credentials { + username System.getenv("packageUser") + password System.getenv("packagePAT") + } + } + } +} + plugins { id "com.gradle.enterprise" version "3.13.2" } @@ -26,16 +47,14 @@ rootProject.name = "ballerinax-${projectName}" include ":checkstyle" include ":${projectName}-native" include ":${projectName}-ballerina" -include ":${projectName}-examples" project(':checkstyle').projectDir = file("build-config${File.separator}checkstyle") project(":${projectName}-native").projectDir = file('native') project(":${projectName}-ballerina").projectDir = file('ballerina') -project(":${projectName}-examples").projectDir = file('examples') gradleEnterprise { buildScan { termsOfServiceUrl = 'https://gradle.com/terms-of-service' termsOfServiceAgree = 'yes' } -} +} \ No newline at end of file From d6e3082123e1efbe462d0bf9930d380004f1c30e Mon Sep 17 00:00:00 2001 From: RDPerera Date: Fri, 17 Nov 2023 10:40:50 +0530 Subject: [PATCH 12/35] [Automated] Update the toml files --- ballerina/Dependencies.toml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/ballerina/Dependencies.toml b/ballerina/Dependencies.toml index e995c861..f3094e6e 100644 --- a/ballerina/Dependencies.toml +++ b/ballerina/Dependencies.toml @@ -42,6 +42,18 @@ dependencies = [ {org = "ballerina", name = "jballerina.java"} ] +[[package]] +org = "ballerina" +name = "lang.runtime" +version = "0.0.0" +scope = "testOnly" +dependencies = [ + {org = "ballerina", name = "jballerina.java"} +] +modules = [ + {org = "ballerina", packageName = "lang.runtime", moduleName = "lang.runtime"} +] + [[package]] org = "ballerina" name = "lang.string" @@ -150,6 +162,7 @@ name = "asb" version = "3.7.0" dependencies = [ {org = "ballerina", name = "jballerina.java"}, + {org = "ballerina", name = "lang.runtime"}, {org = "ballerina", name = "log"}, {org = "ballerina", name = "os"}, {org = "ballerina", name = "regex"}, From a450c9a4afdb03e83e427e3961f7b4e5a0f776f3 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Fri, 17 Nov 2023 10:57:14 +0530 Subject: [PATCH 13/35] Addressed review comments --- .github/workflows/ci.yml | 2 +- ballerina/build.gradle | 1 - gradle.properties | 1 - native/build.gradle | 4 +--- settings.gradle | 2 +- 5 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 867399c9..5c4db787 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -3,7 +3,7 @@ name: CI on: push: branches: - - master + - main - 2201.[0-9]+.x repository_dispatch: types: check_connector_for_breaking_changes diff --git a/ballerina/build.gradle b/ballerina/build.gradle index 3b78eb5f..f482fa0b 100644 --- a/ballerina/build.gradle +++ b/ballerina/build.gradle @@ -59,7 +59,6 @@ task updateTomlFiles { doLast { def newBallerinaToml = ballerinaTomlFilePlaceHolder.text.replace("@project.version@", project.version) newBallerinaToml = newBallerinaToml.replace("@toml.version@", tomlVersion) - newBallerinaToml = newBallerinaToml.replace("@jackson.version@", jacksonVersion) ballerinaTomlFile.text = newBallerinaToml } } diff --git a/gradle.properties b/gradle.properties index 9edd6c5c..18036b0c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,4 +13,3 @@ jacocoVersion=0.8.10 ballerinaLangVersion=2201.8.0-20230830-220400-8a7556d8 azureServiceBusVersion=7.14.3 slf4jVersion=1.7.30 -jacksonVersion=2.15.2 \ No newline at end of file diff --git a/native/build.gradle b/native/build.gradle index da3147d5..9a0119a0 100644 --- a/native/build.gradle +++ b/native/build.gradle @@ -37,9 +37,7 @@ dependencies { implementation group: 'org.ballerinalang', name: 'ballerina-runtime', version: "${ballerinaLangVersion}" implementation group: 'org.ballerinalang', name: 'ballerina-lang', version: "${ballerinaLangVersion}" implementation group: 'org.ballerinalang', name: 'value', version: "${ballerinaLangVersion}" - implementation group: 'org.slf4j', name: 'slf4j-api', version: "${slf4jVersion}" - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: "${jacksonVersion}" implementation group: 'com.azure', name: 'azure-messaging-servicebus', version: "${azureServiceBusVersion}" dist group: 'com.azure', name: 'azure-messaging-servicebus', version: "${azureServiceBusVersion}" @@ -108,4 +106,4 @@ compileJava { ] classpath = files() } -} \ No newline at end of file +} diff --git a/settings.gradle b/settings.gradle index a3cf0e05..03d54061 100644 --- a/settings.gradle +++ b/settings.gradle @@ -57,4 +57,4 @@ gradleEnterprise { termsOfServiceUrl = 'https://gradle.com/terms-of-service' termsOfServiceAgree = 'yes' } -} \ No newline at end of file +} From c38d8bd71f4b587cc41e69f8a8f5eb8d613ba7fd Mon Sep 17 00:00:00 2001 From: RDPerera Date: Fri, 17 Nov 2023 14:45:33 +0530 Subject: [PATCH 14/35] Addressed review comments --- .github/pull_request_template.md | 2 +- .github/workflows/build-with-bal-test-native.yml | 2 +- .github/workflows/ci.yml | 4 ++-- .github/workflows/daily-build.yml | 2 +- .github/workflows/dev-stg-release.yml | 2 +- .github/workflows/pull-request.yml | 2 +- .github/workflows/release.yml | 2 +- .gitignore | 2 +- gradle.properties | 1 - 9 files changed, 9 insertions(+), 10 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 731e0985..7f88b898 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -36,4 +36,4 @@ Please describe the tests that you ran to verify your changes. Provide instructi ### Security checks - [ ] Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? - - [ ] Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? + - [ ] Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? \ No newline at end of file diff --git a/.github/workflows/build-with-bal-test-native.yml b/.github/workflows/build-with-bal-test-native.yml index a00897f0..7973b4c2 100644 --- a/.github/workflows/build-with-bal-test-native.yml +++ b/.github/workflows/build-with-bal-test-native.yml @@ -13,5 +13,5 @@ jobs: call_workflow_template: name: Run Workflow Template if: ${{ github.event_name != 'schedule' || (github.event_name == 'schedule' && github.repository_owner == 'ballerina-platform') }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-with-bal-test-graalvm-connector-template.yml@main + uses: ballerina-platform/ballerina-library/.github/workflows/build-with-bal-test-graalvm-connector-template.yml@main secrets: inherit diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5c4db787..9ce35fab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: call_workflow: name: Run Connector Build Workflow if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/build-connector-template.yml@main + uses: ballerina-platform/ballerina-library/.github/workflows/build-connector-template.yml@main secrets: inherit with: - repo-name: module-ballerinax-mongodb + repo-name: module-ballerinax-azure-service-bus diff --git a/.github/workflows/daily-build.yml b/.github/workflows/daily-build.yml index 91f40b6b..846c5218 100644 --- a/.github/workflows/daily-build.yml +++ b/.github/workflows/daily-build.yml @@ -8,7 +8,7 @@ jobs: call_workflow: name: Run Daily Build Workflow if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/daily-build-connector-template.yml@main + uses: ballerina-platform/ballerina-library/.github/workflows/daily-build-connector-template.yml@main secrets: inherit with: repo-name: module-ballerinax-azure-service-bus diff --git a/.github/workflows/dev-stg-release.yml b/.github/workflows/dev-stg-release.yml index 49d6f529..b85c07cf 100644 --- a/.github/workflows/dev-stg-release.yml +++ b/.github/workflows/dev-stg-release.yml @@ -15,7 +15,7 @@ jobs: call_workflow: name: Run Dev\Stage Central Publish Workflow if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/dev-stage-central-publish-connector-template.yml@main + uses: ballerina-platform/ballerina-library/.github/workflows/dev-stage-central-publish-connector-template.yml@main secrets: inherit with: environment: ${{ github.event.inputs.environment }} diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index bcbb743f..4d40baf4 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -10,7 +10,7 @@ jobs: call_workflow: name: Run PR Build Workflow if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/pr-build-connector-template.yml@main + uses: ballerina-platform/ballerina-library/.github/workflows/pr-build-connector-template.yml@main secrets: inherit with: additional-test-flags: ${{ github.event.pull_request.head.repo.full_name != github.repository && '-x test' || ''}} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e0d8b3cf..fa1ec1ab 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -9,7 +9,7 @@ jobs: call_workflow: name: Run Release Workflow if: ${{ github.repository_owner == 'ballerina-platform' }} - uses: ballerina-platform/ballerina-standard-library/.github/workflows/release-package-template.yml@main + uses: ballerina-platform/ballerina-library/.github/workflows/release-package-connector-template.yml@main secrets: inherit with: package-name: asb diff --git a/.gitignore b/.gitignore index d6294cf7..950a8810 100644 --- a/.gitignore +++ b/.gitignore @@ -46,4 +46,4 @@ Config.toml build # Environment files -*.env \ No newline at end of file +*.env diff --git a/gradle.properties b/gradle.properties index 18036b0c..7367a2bc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,6 @@ shadowJarPluginVersion=8.1.1 downloadPluginVersion=5.4.0 releasePluginVersion=2.8.0 ballerinaGradlePluginVersion=2.1.5 -jacocoVersion=0.8.10 ballerinaLangVersion=2201.8.0-20230830-220400-8a7556d8 azureServiceBusVersion=7.14.3 From 319a76937b49f4886f2707515f349fece9ac65c9 Mon Sep 17 00:00:00 2001 From: RDPerera Date: Mon, 20 Nov 2023 09:32:42 +0530 Subject: [PATCH 15/35] Update PR template --- .github/pull_request_template.md | 45 ++++++-------------------------- 1 file changed, 8 insertions(+), 37 deletions(-) diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7f88b898..6e547d34 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,39 +1,10 @@ -# Description +## Purpose -Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change. +## Examples -Fixes # (issue) - -Related Pull Requests (remove if not relevant) -- Pull request 1 -- Pull request 2 - -One line release note: -- One line describing the feature/improvement/fix made by this PR - -## Type of change - -Please delete options that are not relevant. - -- [ ] Bug fix (non-breaking change which fixes an issue) -- [ ] New feature (non-breaking change which adds functionality) -- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) -- [ ] This change requires a documentation update - -# How Has This Been Tested? - -Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration - -- [ ] Test A -- [ ] Test B - -**Test Configuration**: -* Ballerina Version: -* Operating System: -* Java SDK: - -# Checklist: - -### Security checks - - [ ] Followed secure coding standards in http://wso2.com/technical-reports/wso2-secure-engineering-guidelines? - - [ ] Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? \ No newline at end of file +## Checklist +- [ ] Linked to an issue +- [ ] Updated the specification +- [ ] Updated the changelog +- [ ] Added tests +- [ ] Checked native-image compatibility \ No newline at end of file From 0e038a46f10ba84a00a643482dfd1e3fcbab3cab Mon Sep 17 00:00:00 2001 From: RDPerera Date: Wed, 22 Nov 2023 12:27:21 +0530 Subject: [PATCH 16/35] Restructure docs --- README.md | 356 ++++++++++++++++-- ballerina/Module.md | 209 +++++++--- ballerina/resources/connection-string.png | Bin 0 -> 155004 bytes ballerina/resources/create-namespace.png | Bin 0 -> 35432 bytes .../create-resource-service-bus-menu.png | Bin 0 -> 96354 bytes 5 files changed, 463 insertions(+), 102 deletions(-) create mode 100644 ballerina/resources/connection-string.png create mode 100644 ballerina/resources/create-namespace.png create mode 100644 ballerina/resources/create-resource-service-bus-menu.png diff --git a/README.md b/README.md index 28e308f4..ab5c1d2f 100644 --- a/README.md +++ b/README.md @@ -8,72 +8,348 @@ Ballerina Azure Service Bus Connector [![GraalVM Check](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/actions/workflows/build-with-bal-test-native.yml/badge.svg)](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/actions/workflows/build-with-bal-test-native.yml) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) -The [Azure Service Bus](https://azure.microsoft.com/en-us/services/service-bus/) is a reliable cloud Messaging as a -Service (Maas). It is an enterprise message broker with message queues and publish-subscribe topics. The service bus is -used to decouple applications and services from each other. Data is transferred between different applications and -services using messages. You can find more -information [here](https://docs.microsoft.com/en-us/azure/service-bus-messaging/). +## Overview -The Azure Service Bus [Ballerina](https://ballerina.io/) connector allows you to connect to the Azure Service Bus to -send and receive messages. You can perform actions such as send to queue, send to topic, receive from queue, receive -from subscription, etc. +The [Ballerina](https://ballerina.io/) connector for Azure Service Bus allows you to connect to +an [Azure Service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/) via the Ballerina language. -For more information, go to the module(s). +The Azure Service Bus is a fully managed enterprise message broker with message queues and publish-subscribe topics. It +provides the capability to send and receive messages from Service Bus queues, topics, and subscriptions. The Azure +Service Bus handles messages that include data representing any kind of information, including structured data encoded +with common formats such as the following ones: JSON, XML, and Plain Text. -- [asb](ballerina/Module.md) +This connector supports the following operations: +- Send messages to a queue, topic, or subscription. +- Receive messages from a queue, topic, or subscription. +- Manage (Get/Create/Update/Delete/list) a queue, topic,subscription or rule. +- Listen to messages from a queue, topic, or subscription. -## Building from the source +Service Bus provides a Microsoft +supported [native Java API](https://docs.microsoft.com/en-us/java/api/overview/azure/servicebus?view=azure-java-stable) ( +SDK) and this module makes use of +this [public API](https://learn.microsoft.com/en-us/java/api/com.microsoft.azure.servicebus?view=azure-java-archive) +. As the public API +applies [SAS authentication](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-sas), this module +supports SAS authentication as well. -### Setting up the prerequisites +This module +supports [Service Bus SDK 7.13.1 version](https://learn.microsoft.com/en-us/java/api/overview/azure/service-bus?view=azure-java-stable#libraries-for-data-access) +. The source code on GitHub is +located [here](https://github.com/Azure/azure-service-bus-java). The +primary wire protocol for Service Bus is Advanced Messaging Queueing Protocol (AMQP) 1.0, an open ISO/IEC standard. -1. Download and install Java SE Development Kit (JDK) version 17. You can install - either [OpenJDK](https://adoptopenjdk.net/) - or [Oracle](https://www.oracle.com/java/technologies/downloads/). +## Prerequisites - > **Note:** Set the JAVA_HOME environment variable to the path name of the directory into which you installed JDK. +Before using this connector in your Ballerina application, complete the following: -2. Download and install [Ballerina](https://ballerina.io/). +### Create a namespace in the Azure portal +To begin using Service Bus messaging entities in Azure, you must first create a namespace with a name that is unique across Azure. A namespace provides a scoping container for Service Bus resources within your application. -### Building the source +To create a namespace: -Execute the commands below to build from the source. +#### Step 1: Sign in to the [Azure portal](https://portal.azure.com/). +If you don't have an Azure subscription, [sign up for a free Azure account](https://azure.microsoft.com/free/). + +#### Step 2: Go to the Create Resource Service Bus menu + +In the left navigation pane of the portal, select **All services**, select **Integration** from the list of categories, hover the mouse over **Service Bus**, and then select **Create** on the Service Bus tile. +![Create Resource Service Bus Menu](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/create-resource-service-bus-menu.png?raw=true) + +#### Step 3: In the Basics tag of the Create namespace page, follow these steps: + +1. For **Subscription**, choose an Azure subscription in which to create the namespace. + +2. For **Resource group**, choose an existing resource group in which the namespace will live, or create a new one. + +3. Enter a **name for the namespace**. The namespace name should adhere to the following naming conventions: + +* The name must be unique across Azure. The system immediately checks to see if the name is available. +* The name length is at least 6 and at most 50 characters. +* The name can contain only letters, numbers, and hyphens “-“. +* The name must start with a letter and end with a letter or number. +* The name doesn't end with “-sb“ or “-mgmt“. + +4. For **Location**, choose the region in which your namespace should be hosted. + +5. For **Pricing tier**, select the pricing tier (Basic, Standard, or Premium) for the namespace. For this quickstart, select Standard. + +`Important: If you want to use topics and subscriptions, choose either Standard or Premium. Topics/subscriptions aren't supported in the Basic pricing tier.` + +If you selected the Premium pricing tier, specify the number of messaging units. The premium tier provides resource isolation at the CPU and memory level so that each workload runs in isolation. This resource container is called a messaging unit. A premium namespace has at least one messaging unit. You can select 1, 2, 4, 8, or 16 messaging units for each Service Bus Premium namespace. For more information, see Service Bus Premium Messaging. + +6. Select **Review + create** at the bottom of the page. + +![Create Namespace](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/create-namespace.png?raw=true) + +7. On the **Review + create** page, review settings, and select **Create**. + + +### Obtain tokens for authentication + +To send and receive messages from a Service Bus queue or topic, clients must use a token that is signed by a shared access key, which is part of a shared access policy. A shared access policy defines a set of permissions that can be assigned to one or more Service Bus entities (queues, topics, event hubs, or relays). A shared access policy can be assigned to more than one entity, and a single entity can have more than one shared access policy assigned to it. + +To obtain a token following steps should be followed: + +1. In the left navigation pane of the portal, select *All services*, select *Integration* from the list of categories, hover the mouse over *Service Bus*, and then select your namespace. + +2. In the left navigation pane of the namespace page, select *Shared access policies*. + +3. Click on the *RootManageSharedAccessKey* policy. -1. To Build & Package the Native Java Wrapper: - Change the current directory to the root directory and execute the following command. +4. Copy the *Primary Connection String* value and save it in a secure location. This is the connection string that you use to authenticate with the Service Bus service. +![Connection String](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/connection-string.png?raw=true) -```shell script - ./gradlew build +## Quickstart + +To use the Azure Service Bus connector in your Ballerina application, update the .bal file as follows: +### Enabling Azure SDK Logs +To enable Azure logs in a Ballerina module, you need to set the environment variable ASB_CLOUD_LOGS to ACTIVE. You can do this by adding the following line to your shell script or using the export command in your terminal(to deactivate, remove the variable value): + +`export ASB_CLOUD_LOGS=ACTIVE` + +### Enabling Internal Connector Logs +To enable internal connector logs in a Ballerina module, you need to set the log level in the Config.toml file using the custom configuration record Where is the desired log level (e.g. DEBUG, INFO, WARN, ERROR, FATAL, (Default)OFF) + +``` +[ballerinax.asb.customConfiguration] +logLevel="OFF" +``` + + +### Step 1: Import connector + +Import the `ballerinax/asb` module into the Ballerina project. + +```ballerina +import ballerinax/asb as asb; +``` + +### Step 2: Create a new connector instance + +#### Initialize an Admin Client + +This can be done by providing a connection string. + +````ballerina + configurable string connectionString = ?; + asb:AdminClient admin = check new (connectionString); +```` + +#### Initialize a Message Sender client + +This can be done by providing a connection string with a queue or topic name. + +```ballerina + configurable string connectionString = ?; + + ASBServiceSenderConfig senderConfig = { + connectionString: connectionString, + entityType: QUEUE, + topicOrQueueName: "myQueue" + }; + asb:MessageSender sender = check new (senderConfig); ``` -2. To build the Ballerina package: - Change the current directory to the ballerina home directory and execute the following command. +#### Initialize a Message Receiver client + +This can be done by providing a connection string with a queue name, topic name, or subscription path. Here, the Receive mode is +optional. (Default: PEEKLOCK) -```shell script - bal pack +```ballerina + configurable string connectionString = ?; + + ASBServiceReceiverConfig receiverConfig = { + connectionString: connectionString, + entityConfig: { + queueName: "myQueue" + }, + receiveMode: PEEK_LOCK + }; + asb:MessageReceiver receiver = check new (receiverConfig); ``` -3. To run the tests after build: - Change the current directory to the ballerina home directory and execute the following command. +#### Initialize a Message Listener client + +This can be done by providing a connection string. -```shell script - bal test +```ballerina + configurable string connectionString = ?; + asb:Listener listener = check new (connectionString); ``` -## Contributing to Ballerina +### Step 3: Invoke connector operation + +1. Now you can use the operations available within the connector. Note that they are in the form of remote operations. + + Following is an example of how to create a queue in the Azure Service Bus using the connector. + + **Create a queue in the Azure Service Bus** + + ```ballerina + public function main() returns error? { + asb:AdminClient admin = check new (adminConfig); + + check admin->createQueue("myQueue"); + + check admin->close(); + } + ``` + + Following is an example on how to send messages to the Azure Service Bus using the connector. + + **Send a message to the Azure Service Bus** + + ```ballerina + public function main() returns error? { + asb:MessageSender queueSender = check new (senderConfig); + + string stringContent = "This is My Message Body"; + byte[] byteContent = stringContent.toBytes(); + int timeToLive = 60; // In seconds + + asb:ApplicationProperties applicationProperties = { + properties: {a: "propertyValue1", b: "propertyValue2"} + }; + + asb:Message message = { + body: byteContent, + contentType: asb:TEXT, + timeToLive: timeToLive, + applicationProperties: applicationProperties + }; + + check queueSender->send(message); + + check queueSender->close(); + } + ``` + + Following is an example of how to receive messages from the Azure Service Bus using the client connector. Optionally + you can provide the receive mode which is PEEKLOCK by default. You can find more information about the receive + modes [here](https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.servicebus.receivemode?view=azure-java-stable). + + **Receive a message from the Azure Service Bus** + + ```ballerina + public function main() returns error? { + asb:MessageReceiver queueReceiver = check new (receiverConfig); + + int serverWaitTime = 60; // In seconds + + asb:Message|asb:Error? messageReceived = queueReceiver->receive(serverWaitTime); + + if (messageReceived is asb:Message) { + log:printInfo("Reading Received Message : " + messageReceived.toString()); + } else if (messageReceived is ()) { + log:printError("No message in the queue."); + } else { + log:printError("Receiving message via Asb receiver connection failed."); + } + + check queueReceiver->close(); + } + ``` + Following is an example on how to receive messages from the Azure Service Bus using the listner in connector. + **Listen to Messages from the Azure Service Bus** + ```ballerina + @ServiceConfig { + queueName: "myqueue", + peekLockModeEnabled: true, + maxConcurrency: 1, + prefetchCount: 20, + maxAutoLockRenewDuration: 300 + } + service MessageService on asbListener { + isolated remote function onMessage(Message message, Caller caller) returns error? { + log:printInfo("Message received:" + message.body.toString()); + _ = check caller.complete(message); + } + isolated remote function onError(ErrorContext context, error 'error) returns error? { + // Write your error handling logic here + } + }; + ``` + **!!! NOTE: You can complete, abandon, deadLetter, defer, renewLock using the asb:Caller instance. If you want to handle errors that come when processing messages, use MessageServiceErrorHandling service type.** + +2. Use `bal run` command to compile and run the Ballerina program. + +**[You can find a list of samples here](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/examples)** + +## Issues and projects + +The **Issues** and **Projects** tabs are disabled for this repository as this is part of the Ballerina library. To report bugs, request new features, start new discussions, view project boards, etc., visit the Ballerina library [parent repository](https://github.com/ballerina-platform/ballerina-library). + +This repository only contains the source code for the package. + +## Build from the source + +### Prerequisites + +1. Download and install Java SE Development Kit (JDK) version 17. You can download it from either of the following sources: + + * [Oracle JDK](https://www.oracle.com/java/technologies/downloads/) + * [OpenJDK](https://adoptium.net/) + + > **Note:** After installation, remember to set the `JAVA_HOME` environment variable to the directory where JDK was installed. + +2. Download and install [Ballerina Swan Lake](https://ballerina.io/). + +3. Download and install [Docker](https://www.docker.com/get-started). + + > **Note**: Ensure that the Docker daemon is running before executing any tests. + +### Build options + +Execute the commands below to build from the source. + +1. To build the package: + ``` + ./gradlew clean build + ``` + +2. To run the tests: + ``` + ./gradlew clean test + ``` + +3. To build the without the tests: + ``` + ./gradlew clean build -x test + ``` + +5. To debug the package with a remote debugger: + ``` + ./gradlew clean build -Pdebug= + ``` + +6. To debug with the Ballerina language: + ``` + ./gradlew clean build -PbalJavaDebug= + ``` + +7. Publish the generated artifacts to the local Ballerina Central repository: + ``` + ./gradlew clean build -PpublishToLocalCentral=true + ``` + +8. Publish the generated artifacts to the Ballerina Central repository: + ``` + ./gradlew clean build -PpublishToCentral=true + ``` + +## Contribute to Ballerina -As an open source project, Ballerina welcomes contributions from the community. +As an open-source project, Ballerina welcomes contributions from the community. -For more information, go to -the [contribution guidelines](https://github.com/ballerina-platform/ballerina-lang/blob/master/CONTRIBUTING.md). +For more information, go to the [contribution guidelines](https://github.com/ballerina-platform/ballerina-lang/blob/master/CONTRIBUTING.md). ## Code of conduct -All contributors are encouraged to read the [Ballerina Code of Conduct](https://ballerina.io/code-of-conduct). +All the contributors are encouraged to read the [Ballerina Code of Conduct](https://ballerina.io/code-of-conduct). ## Useful links -* Discuss code changes of the Ballerina project - in [ballerina-dev@googlegroups.com](mailto:ballerina-dev@googlegroups.com). +* For more information go to the [`asb` package](https://central.ballerina.io/ballerinax/asb/latest). +* For example demonstrations of the usage, go to [Ballerina By Examples](https://ballerina.io/learn/by-example/). * Chat live with us via our [Discord server](https://discord.gg/ballerinalang). -* Post all technical questions on Stack Overflow with - the [#ballerina](https://stackoverflow.com/questions/tagged/ballerina) tag. +* Post all technical questions on Stack Overflow with the [#ballerina](https://stackoverflow.com/questions/tagged/ballerina) tag. \ No newline at end of file diff --git a/ballerina/Module.md b/ballerina/Module.md index d8c3fb28..0552acd6 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -3,16 +3,21 @@ The [Ballerina](https://ballerina.io/) connector for Azure Service Bus allows you to connect to an [Azure Service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/) via the Ballerina language. -The Azure Service Bus is a fully managed enterprise message broker with message queues and publish-subscribe topics.It +The Azure Service Bus is a fully managed enterprise message broker with message queues and publish-subscribe topics. It provides the capability to send and receive messages from Service Bus queues, topics, and subscriptions. The Azure Service Bus handles messages that include data representing any kind of information, including structured data encoded -with the common formats such as the following ones: JSON, XML, Plain Text. +with common formats such as the following ones: JSON, XML, and Plain Text. -This module also supports asynchronous message listening capabilities from the azure service bus. Service Bus provides a -Microsoft +This connector supports the following operations: +- Send messages to a queue, topic, or subscription. +- Receive messages from a queue, topic, or subscription. +- Manage (Get/Create/Update/Delete/list) a queue, topic,subscription or rule. +- Listen to messages from a queue, topic, or subscription. + +Service Bus provides a Microsoft supported [native Java API](https://docs.microsoft.com/en-us/java/api/overview/azure/servicebus?view=azure-java-stable) ( -SDK) and this module make use of -this [public API](https://docs.microsoft.com/en-us/java/api/overview/azure/servicebus/client?view=azure-java-stable&preserve-view=true) +SDK) and this module makes use of +this [public API](https://learn.microsoft.com/en-us/java/api/com.microsoft.azure.servicebus?view=azure-java-archive) . As the public API applies [SAS authentication](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-sas), this module supports SAS authentication as well. @@ -20,52 +25,75 @@ supports SAS authentication as well. This module supports [Service Bus SDK 7.13.1 version](https://learn.microsoft.com/en-us/java/api/overview/azure/service-bus?view=azure-java-stable#libraries-for-data-access) . The source code on GitHub is -located [here](https://github.com/Azure/azure-sdk-for-java/tree/main/sdk/servicebus/azure-messaging-servicebus). The +located [here](https://github.com/Azure/azure-service-bus-java). The primary wire protocol for Service Bus is Advanced Messaging Queueing Protocol (AMQP) 1.0, an open ISO/IEC standard. ## Prerequisites Before using this connector in your Ballerina application, complete the following: -* Create an Azure account and a subscription. If you don't have an Azure - subscription, [sign up for a free Azure account](https://azure.microsoft.com/free/). +### Create a namespace in the Azure portal +To begin using Service Bus messaging entities in Azure, you must first create a namespace with a name that is unique across Azure. A namespace provides a scoping container for Service Bus resources within your application. + +To create a namespace: + +#### Step 1: Sign in to the [Azure portal](https://portal.azure.com/). +If you don't have an Azure subscription, [sign up for a free Azure account](https://azure.microsoft.com/free/). + +#### Step 2: Go to the Create Resource Service Bus menu + +In the left navigation pane of the portal, select **All services**, select **Integration** from the list of categories, hover the mouse over **Service Bus**, and then select **Create** on the Service Bus tile. +![Create Resource Service Bus Menu](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/create-resource-service-bus-menu.png?raw=true) + +#### Step 3: In the Basics tag of the Create namespace page, follow these steps: + +1. For **Subscription**, choose an Azure subscription in which to create the namespace. + +2. For **Resource group**, choose an existing resource group in which the namespace will live, or create a new one. + +3. Enter a **name for the namespace**. The namespace name should adhere to the following naming conventions: + +* The name must be unique across Azure. The system immediately checks to see if the name is available. +* The name length is at least 6 and at most 50 characters. +* The name can contain only letters, numbers, and hyphens “-“. +* The name must start with a letter and end with a letter or number. +* The name doesn't end with “-sb“ or “-mgmt“. -* Create a Service Bus namespace. If you don't - have [a service bus namespace](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-create-namespace-portal) - , learn how to create your Service Bus namespace. +4. For **Location**, choose the region in which your namespace should be hosted. -* Obtain tokens +5. For **Pricing tier**, select the pricing tier (Basic, Standard, or Premium) for the namespace. For this quickstart, select Standard. - Shared Access Signature (SAS) Authentication Credentials are required to communicate with the Azure Service Bus. - * Connection String +`Important: If you want to use topics and subscriptions, choose either Standard or Premium. Topics/subscriptions aren't supported in the Basic pricing tier.` - Obtain the authorization credentials: - * For Service Bus Queues +If you selected the Premium pricing tier, specify the number of messaging units. The premium tier provides resource isolation at the CPU and memory level so that each workload runs in isolation. This resource container is called a messaging unit. A premium namespace has at least one messaging unit. You can select 1, 2, 4, 8, or 16 messaging units for each Service Bus Premium namespace. For more information, see Service Bus Premium Messaging. - 1. [Create a namespace in the Azure portal](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-portal#create-a-namespace-in-the-azure-portal) +6. Select **Review + create** at the bottom of the page. - 2. [Get the connection string](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-portal#get-the-connection-string) +![Create Namespace](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/create-namespace.png?raw=true) - 3. [Create a queue in the Azure portal & get queue name](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-portal#create-a-queue-in-the-azure-portal) - . It is in the format ‘queueName’. +7. On the **Review + create** page, review settings, and select **Create**. - * For Service Bus Topics and Subscriptions - 1. [Create a namespace in the Azure portal](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-portal#create-a-namespace-in-the-azure-portal) +### Obtain tokens for authentication - 2. [Get the connection string](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-portal#get-the-connection-string) +To send and receive messages from a Service Bus queue or topic, clients must use a token that is signed by a shared access key, which is part of a shared access policy. A shared access policy defines a set of permissions that can be assigned to one or more Service Bus entities (queues, topics, event hubs, or relays). A shared access policy can be assigned to more than one entity, and a single entity can have more than one shared access policy assigned to it. - 3. [Create a topic in the Azure portal & get topic name](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-topics-subscriptions-portal#create-a-topic-using-the-azure-portal) - . It's in the format ‘topicName‘. +To obtain a token following steps should be followed: - 4. [Create a subscription in the Azure portal & get its name](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-quickstart-topics-subscriptions-portal#create-subscriptions-to-the-topic) - . It’s in the format ‘topicName/subscriptions/subscriptionName’. +1. In the left navigation pane of the portal, select *All services*, select *Integration* from the list of categories, hover the mouse over *Service Bus*, and then select your namespace. + +2. In the left navigation pane of the namespace page, select *Shared access policies*. + +3. Click on the *RootManageSharedAccessKey* policy. + +4. Copy the *Primary Connection String* value and save it in a secure location. This is the connection string that you use to authenticate with the Service Bus service. +![Connection String](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/connection-string.png?raw=true) ## Quickstart To use the Azure Service Bus connector in your Ballerina application, update the .bal file as follows: ### Enabling Azure SDK Logs -To enable Azure logs in a Ballerina module, you need to set the environment variable ASB_CLOUD_LOGS to ACTIVE. You can do this by adding the following line to your shell script or using the export command in your terminal(to deactivate,remove the variable value): +To enable Azure logs in a Ballerina module, you need to set the environment variable ASB_CLOUD_LOGS to ACTIVE. You can do this by adding the following line to your shell script or using the export command in your terminal(to deactivate, remove the variable value): `export ASB_CLOUD_LOGS=ACTIVE` @@ -88,32 +116,78 @@ import ballerinax/asb as asb; ### Step 2: Create a new connector instance +#### Initialize an Admin Client + +This can be done by providing a connection string. + +````ballerina + configurable string connectionString = ?; + asb:AdminClient admin = check new (connectionString); +```` + #### Initialize a Message Sender client -This can be done providing connection string with queue or topic name. +This can be done by providing a connection string with a queue or topic name. ```ballerina -asb:MessageSender queueSender = check new (senderConfig); -asb:MessageSender topicSender = check new (senderConfig); + configurable string connectionString = ?; + + ASBServiceSenderConfig senderConfig = { + connectionString: connectionString, + entityType: QUEUE, + topicOrQueueName: "myQueue" + }; + asb:MessageSender sender = check new (senderConfig); ``` #### Initialize a Message Receiver client -This can be done providing connection string with queue name, topic name or subscription path. Here, Receive mode is -optional. (Default : PEEKLOCK) +This can be done by providing a connection string with a queue name, topic name, or subscription path. Here, the Receive mode is +optional. (Default: PEEKLOCK) ```ballerina -asb:MessageReceiver queueReceiver = check new (receiverConfig); -asb:MessageReceiver subscriptionReceiver = check new (receiverConfig); + configurable string connectionString = ?; + + ASBServiceReceiverConfig receiverConfig = { + connectionString: connectionString, + entityConfig: { + queueName: "myQueue" + }, + receiveMode: PEEK_LOCK + }; + asb:MessageReceiver receiver = check new (receiverConfig); +``` + +#### Initialize a Message Listener client + +This can be done by providing a connection string. + +```ballerina + configurable string connectionString = ?; + asb:Listener listener = check new (connectionString); ``` ### Step 3: Invoke connector operation 1. Now you can use the operations available within the connector. Note that they are in the form of remote operations. + Following is an example of how to create a queue in the Azure Service Bus using the connector. + + **Create a queue in the Azure Service Bus** + + ```ballerina + public function main() returns error? { + asb:AdminClient admin = check new (adminConfig); + + check admin->createQueue("myQueue"); + + check admin->close(); + } + ``` + Following is an example on how to send messages to the Azure Service Bus using the connector. - Send a message to the Azure Service Bus + **Send a message to the Azure Service Bus** ```ballerina public function main() returns error? { @@ -140,41 +214,52 @@ asb:MessageReceiver subscriptionReceiver = check new (receiverConfig); } ``` - Following is an example on how to receive messages from the Azure Service Bus using the client connector.Optionally + Following is an example of how to receive messages from the Azure Service Bus using the client connector. Optionally you can provide the receive mode which is PEEKLOCK by default. You can find more information about the receive - modes [here](https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.servicebus.receivemode?view=azure-java-stable) - . + modes [here](https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.servicebus.receivemode?view=azure-java-stable). - Receive a message from the Azure Service Bus + **Receive a message from the Azure Service Bus** ```ballerina - public function main() returns error? { - asb:MessageReceiver queueReceiver = check new (receiverConfig); + public function main() returns error? { + asb:MessageReceiver queueReceiver = check new (receiverConfig); - int serverWaitTime = 60; // In seconds + int serverWaitTime = 60; // In seconds - asb:Message|asb:Error? messageReceived = queueReceiver->receive(serverWaitTime); + asb:Message|asb:Error? messageReceived = queueReceiver->receive(serverWaitTime); - if (messageReceived is asb:Message) { - log:printInfo("Reading Received Message : " + messageReceived.toString()); - } else if (messageReceived is ()) { - log:printError("No message in the queue."); - } else { - log:printError("Receiving message via Asb receiver connection failed."); - } + if (messageReceived is asb:Message) { + log:printInfo("Reading Received Message : " + messageReceived.toString()); + } else if (messageReceived is ()) { + log:printError("No message in the queue."); + } else { + log:printError("Receiving message via Asb receiver connection failed."); + } - check queueReceiver->close(); + check queueReceiver->close(); + } + ``` + Following is an example on how to receive messages from the Azure Service Bus using the listner in connector. + **Listen to Messages from the Azure Service Bus** + ```ballerina + @ServiceConfig { + queueName: "myqueue", + peekLockModeEnabled: true, + maxConcurrency: 1, + prefetchCount: 20, + maxAutoLockRenewDuration: 300 + } + service MessageService on asbListener { + isolated remote function onMessage(Message message, Caller caller) returns error? { + log:printInfo("Message received:" + message.body.toString()); + _ = check caller.complete(message); + } + isolated remote function onError(ErrorContext context, error 'error) returns error? { + // Write your error handling logic here } + }; ``` - - **!!! NOTE:** - Currently we are using the asb:Message record for both sender & receiver operations. When we use the ASB receiver - connector instead of the ASB listener to receive messages we return the exact message converted (re-engineered) to - the specific data type based on the content type of the message. But in the ASB listener we receive the message body - as byte[] which is the standard according to the AMQP protocol. We haven't re-engineered the listener. Rather we - provide the message body as a standard byte[]. So the user must do the conversion based on the content type of the - message. We have provided a sample code segment above, where you can do the conversion easily. - + **!!! NOTE: You can complete, abandon, deadLetter, defer, renewLock using the asb:Caller instance. If you want to handle errors that come when processing messages, use MessageServiceErrorHandling service type.** 2. Use `bal run` command to compile and run the Ballerina program. diff --git a/ballerina/resources/connection-string.png b/ballerina/resources/connection-string.png new file mode 100644 index 0000000000000000000000000000000000000000..4def90d76209596a2fca25b5124231c7c5eb2230 GIT binary patch literal 155004 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ś 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 literal 0 HcmV?d00001 diff --git a/ballerina/resources/create-namespace.png b/ballerina/resources/create-namespace.png new file mode 100644 index 0000000000000000000000000000000000000000..d1b604018861929ea18170a51fa1771ed0bdf9f9 GIT binary patch literal 35432 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%0DU0@cTuP3wGJ9qE3-GblvVWuR#=X9}%VOf1gk_ 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 literal 0 HcmV?d00001 diff --git a/ballerina/resources/create-resource-service-bus-menu.png b/ballerina/resources/create-resource-service-bus-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..f4b84473f0d189f43927a031e56aed540691248d GIT binary patch literal 96354 zcmbrl1yEc;*Cvd+1PE@yLvTnKoDe(^NFcb&Ft{@~1PKz{ncxY5kl^m_9vlV>?(T!^ zCGWReyH(%*Re$ZRn&NV9-x% zlF`270pJg|qk@hL5)y6b;}1Dz{TK`gF|(ZbhUD@Mp71ASL)Gbq1R} z7JcSwWd}xjbxDW~Ji&f^qV8bf>Tco;Mlx`Gcr1?luW~CFGg}j&s54ScYh?@|#(ETM znK;{9*+Y<8sW*Ub1HJwCzMHcd80q{WX!m~>lXkGP1KYbIT?{6-05XinVjrzsZNW%C z560M#ke(qa%1C|mNZ(uV)SuM2?>Qzfka_VX9_L#Zn6rjipX8Om=$i^`@Yn|zcKGBV z*!nH)t1?!9Zk_6=*;HD<+N z5+1sXZu%Tv{<`egRPOILE$LH$b79LRp@vvo(Ei4_Nme4@aD0nh8rUBj4m%qV=DcHw z8hU8Zo_!a`U%CB9ukPWZUN-ac%mAP7r6b$kQp?BJzjOI5BeOp~M-KpAnhv=EO&Nb= zE9tinNz8HY@Qolv(_QfQHUJvt>LF7E1H&SHE0rA<)>|e0;9w*P^xi*n6jg+&UcETBM3hGaibL8Jq6i8hxlW@TOQ8U);>K zpW*!M=p`_`0{!f2iikliJy-OP+$`6r21OP1ym0^a?U@lFo%O0>$tMxCSLaB^4+YBA zbPc_bQ2v>$be)2Ifu^Zynazf#vxJUn6sdpeC4PI;CD?LnUtdMd^;e-(aFw&EWi6CUV-D4j@2Mb$?f%do7 zSsG4~r^EO5>`xM398QmKhTRJWM8I^AUY`6K7)6MFK*(LbwTA&Vlvwo}f8#B+OmgSF zxr^p=E`gqlIhY}`+lyCEXeR$e0Bs4Fol?%dY>tCFG}j-h^bCVjoCb_{%OX5H=Ud0b ztz;e&+m6W{P+K3)vlIsgbF^O5MrVz@IQ5EP^19*@o9Ir!Hp;8TlYyMs4^rRxZjrtZ zMdt7;S|PC)(NiZFvL2ux z0kPzYQEABG8KgN`{#w7!yAjCiWT~y#5*|2DNYmK%F2cE>6K<<7!p3VV5#WicjY*N4 z@9}l7GX2}5cg?jwr#<~#+>iFVAWhMp#Yd&><6VmLzxHDs4Gb*ML>`N-_l>GU!cgDZ zXalSDd1fLalih^-$i3yRUIGn&ohU=(4Nkohe_FPi_ZVdl4UUuGq>Z^-3t&XzAtHN{ zNqyqTZb%9PgKahzjD`XvfEtho7x-hcMykOtIr@Q#^!ypcw!d_n#f60jOmN`61n1VF zv58UesR(!i|xnEKbf8bg8V^fO?4NHkFiR_4 zz%?sg&d~<+#hal}Lf+~MFwRNk0;kt5mgG#vB>Uij2X<~xiCGu@;*s5pjI&Gi+_?xk zKim<2*x>OgI4i1NS3oce{ISPom7dLpb(Bh*YbnjJ_k>778Maklxb8i$q4lc?W#`Fa zHwjM+wf0rEYR-bh(o9_cSm@o1*B;|vz?k>TBGx5Xd4RQxe&?Hd1pZP~d?c7zNbQF! zsau_OcrXO4)r!fnOqkvuTam9O|=mP(hCD=&Ip^M+OqQc>JG zSiB_HF@+n2Dm+j#tm3d|zB(>FSac8kv^D38ICpl@t*>?sSI!KWcA+#-Ay7x8=(DH% zoINxHwK&RuK=xONnYYIXTk4OgXNTH&-@kDmoz?!0thzH0=_jWiM!s&g&E2>7GaM4R zKiw|-cT>m*Nd$jSaoU0}a?Ufcn0tgYZs*y}=;5CKfogDx(1-1W5N$hgXq;g(r>4f` zdurA8{d&&sJFoD|W=Smt-mQ6HCucgCRsxUZeV}a`L|&xpvFCI+yZoCYc#d@Hl63^e zQM$~X9foJ6_nnG2Ql2ZS!74jQcdt|tNL9eH^-~^Z-Wqy9cD(I^1N)E_LV0+`Cj`)W za7~exNq{k6qsbC`5JbZtj%)&;UgYN=c(tPgmPs!%17nd0F`&ULQ_9LcY1qdYtH+#F z9&=htiP9ynvd?EvYlkGki|Y%qKU)O98I6DSSU_6acv2%CXHU(wnP+I;fnT*f-5S;5 z?e}dc{{YW7n>{XL$GB7`)oME>Y%aBPhJMI565suXc(O*K?R*F~*TS$-!F&oRmKqR>~hrq?iW?;gMa?fr@F%0uH{u?^W2=+6^ z1PEOXdU!Oal%qXs*`ZPJEM29;M%Vi>9dNTrwen?IB7`S&hKG1|w3^ff^%>On8`r7O zHg=Ei)V{BLIp6$7fL3yyc-g{NB2u-iDYsAhBvufA$j+C9MuWOly@-#9JnDhM!Z1y! z(Tk>fA#>`n)oDJzgdcF}9^>ST0bGjx3R<`)oi}1ww6l7ttj-StW zoeL$DGp0i2lDQC(=7z%2z#47KljEv$8z-8&sxtp;X7KZH6vG9^m7Zvo_1S6AZ_Xg0 zI!)HbaD8k$b6ho)A6KYd_L|JV{tRubT_F&X&S{AUTXB+Ytsk=U~7IGa$w3sl|YZb_sMMv zd*h#_{9kB+#`6eFc4Rl~?Fp=lbaZ1^Q9_^E!T1hV##`KmdT#p2GZRZD(Acn{`FI13{7h+q{l+mp#-s7>n)k!=RNoPZ&OeU-9?8R7-LddFCyBf;u(P zt5SwGkU3F)AA;B8_!-#TF=#JR4(&Noo}9gW0^C}Q{_V4!ou4j=0RWB9%ep5DPRnRXE+MlnUC zxsTjy-f{1$R#>JQB!YKdqPQ`;1gjy@CHKa2#h+XHI@CBRDRAAxS&CLhx1FMWq9MXQ zM8%(H=et4B&>jL(=OwF|!GT6NNKe@*J!^y*2bi(Y($9QLB8>a6Yq`ex95B=?R6ovi z3j*dx>-=^F>|pb;XIbOh=0i}L2$PQ=@rvx)TG1Cp;n6?FZ)W-_Nzv8w@oUh?8-#6& z%v5PYL-8S2k^?DMMGf1OvE;Qg2orS?lkt#>r=Pz29Bam#QA^AZwfEG&z7^@=%$N1L z6=77@ojd5c|GL77sh54PNk3*WTj|}!gaq>RZFXQ?hz_ssjIH^ z^7Br*Wk;%Hh<9R#w~yrlVd=y0^3HXw&;6!;;XEc!$`p3nq&%KP0) zX!JgXUSmz3f;@?Om?ikSK?YaXJ#w|Q{DN_E@qSI&>uy&_iTm%o0G^NRYaQZXZI2syp479~qiGLja);eC{>Ori7OW`AFbyt}PNc{i z=J3kxBHMsv0B@OfZ&Z--ds_m_;*X>-hT28IB!DyO#;3oxZaO{`3^Hc<>eNsE)(qgh zo-!i`Y zgg(Qy_ToLd7kSOqI1j+hLBtBDgTGs#V1yr7(AZ-%B32~UnHl!!QkB>C9J`+DKB|`U z=sJNsPBNb#dX66N5-`uvSuD{vV^=VU*kcamM|M_}@QOFd`a!(AlKe(wDHvJkcGrQT z&-9`sCE%;8<#elax9o;5G~VR5D!;7~SxDZizy08E%|cxv#LefS{vsv>C{BvHrs& zv{a>u4%cfr6&KrwG+l}}$}5Gy!Kb>eHrSZaUnSYNGxJYJ;z|6@?I`U(sYLBH%RJ(f zLej{uRqZB$nct~75sM=2gx)KIC6J=!2s0u52KFB;;`@G{qdz|^5c@>Sta(9D#`q&{ zPPFUB?t57PxNOgJ_i=f%LYlIg&qAXO*vehKr_*t+4jpv#`(8P*On3VG53DpDj{Mm- zFoR(RXj=I{br4Ew(xaaE6&q=60_@`^QvURGcQ5;_w7@ku`WdS!m3t@#i5+l{ISZny z`}V(SYECJFvAMeO>}br`;o)(^N_(}K^9ntutEbT5{D}j0yJ+OWE{U!UFi?)i~by8_IH04(UENbtDBz3Y|n!!L~mCh{1ke* zGCXerBH6QFarEJjN%7!^(Zs74j_-So)gwCwVVbel43S^eX>1!+KX~2Hz%S{4$iK(U zyR#9e)e~He8JMLJ@%xH=i8j{X60F+w8`mt~t<2m^({ZZUd*ka*Qcr_zq}!bY0`z*> zl^04K!hT8xO5g3ftmLKbx%$MCy;mrz*oN)p4Kh`N$dG-tQ|qITD>Oe9QRiP@4G|Dl zGk_5Kyb!IoLjLkzJLo+;h%QU5X+Ofz?T+)vxsU0J(o|#TWyZ~^Re>MYcKLUAnllo| z9{2xnc~9PKhK6dxZrqp{E;>w16ZAu%W z0>eNb@v99*e|TzHzeVQpm?wGbhb(4Tg%)&ysx4i1hx9#Mu)FYAX*9w{xManGYyKuz zvS$Rc`ru`l@rZCyI9sa)zb8HHN}hHHN$k--m=Uw!Ky#6o>BvDEq#JOh95!D zSFev-YUCsSagUy<$Nj)lI7OSk+bjWsp&dfwf)XU^1Ol@D2TaNxlL_pvJ>4* zyTrR@pXj2azIVC=oknAxG%@AJqU((tJoOO@W)gm!a zEqTpLt6so`U722UnP~3IV7PR9QU9sk!_8!`)KyLg1#^0JhI19E2OkupxANR*@I@h0 z5le@9_a8TtwnR70!Luv3$R)>#+s|pZx5*e>w)@YeVt0Z&QtnKvelr-*Q>$nV;3XJ& zkdwZyT5hxA@`(NJ!)HU=(2bw%X0k4dpnGEcjIqD>kNxHqvSf&;FGg{us>vz^ZuQW4 zYE`_SAq{-vXmD)!7gyX9QRouQg? zr-=BsA=>dfR~kjM_q-$P6H!#|gHV#j?ZSUX8v-CK6qw~C55dlpF^+7(d;Ij0u9Re$ zG~jnbmR$Tz0m{J^z;lAQ>wx2@RWPf{F#tGv)#v0zg=X;R77tORKazI`qv!kphv74% zVNR@My<4UvX0AiW*s_)7=YBm9_RJ^-=PvR>%`+4G zRe8@UTM<dbdPYC#P>XE#U%E3`Gc6hh83iuOd(0dv6H(b9Uw6SrY5d zw6nA!pD*s@xo|ZGt=QFeg1enB$V7NAdFqbVo8g4I=Seq^sqiZS*1#~bBn#Jn@n@68 zAI@{MINYc@@FydBfbVH-Op)jQyBNt>E!9r}VYy6&VIwwMe=_8455s?NT9u62f4f+4 zX{vuR#rL__w8VWY5FDR+i+nL#L0&tl*OsH;X3>I?ISHVgnnDe``!Wnd(jU_;(V~ME zuq6OcvHHN;>;DcRyI|OEBv)uyOpW(fyQ)%+xL;ZTN5zHsB^z9g27p?D54#Ut59bea zfvtc)Jaajpr9HY7x}6inVIFCGrrKg=`96ZOiJDw!W2tpvTe|_cUtP*3Q@Tv&aV!)= zyY>QzK-4VS{#M@2mfEH>k`UpCb>JYg^&KJH-A6Mx?b z>bn~9G}XI)LOdG0#^)9;o)#n@ly)SZ=8&HK?!~E}_3N5wx=2bmN{7j=Ip2ZfF{49| zKHArEKU=#ZJpd2f~p|GCik(Uq?Ce>tiN5+s2 zNv!mqvy1z<*dkt26|3XtjHL|YRNpf_-!VB>28`FJS(r_h1|(xDhTWh_$`43u zrS3-jrz#dCl*>|%HDrYjvDoi+iC1n@$e`t^zRU?GQDR%FlVQ1n#@Z5gegJL+Eh5wDWF@TX`A?ru91 z4hREu6H#SuVl`cQy3;;m!WZdfgMPSf)6k)u0>Bb}PlY?b4p@ELfger%O;t8z2Dw|W zfA=Zb;J6fO=#Rap7f5EPNcu}P z92?jH0H-1}J*y5G={Y}j|0Ae%xuQ`%5+Myoh_{Z@7egirg_Q2vWcHlyck^%e-F!m0 zJRGTf_y*=*O-~&RLl;09VyaqMESQE|TWgm^(i`QnEq^)fNLR1i2jWe*JbcN!MPTnH zoZ>0qh6IOoH=NaB`t<2;KR6GI1G?PuOE51fcHS?2$8guRXs`4#lYfEBseV0u`SSz2 zK&UPoZrQ!gL>=j?@F+Ko;k*2MH6+HQ(QXL>#Lu{~%qNnA*=r>n$Rc`&ZYt0MRQA7%_?X z3Ypj4fOg?U?eS$$9^=T1975J=ulUKb{~AUi?^vp1COb^~HWH^9Vd0;vr*Xcej`FHHv~ zN)r*jl@VrdZR?DdzY`vsG~Vr>d_lU+ z{ez`Ef)5FIlsotc6^pTY7$&;^bgY>U-8XKRtP`_Au2;vk$YUz`ByMHgX6c;tCM}(4 zwE|}hk{jrg-92g^78Ycp?wO1)^GyAv&%46(aKt69hpNDIXm3d!IYVR%XiKc)j$dqg z)u+UZ0PKm3bPlp-crDJafqFV3_9V=d2i-G8aPCVfMOpNhQq6Ra3e;<|78XCa7*nmT z{%9Vnk-EyWs8YKwEEiMz<1O06RM&de13x;zB2XAL;v)rtG5&yV5Kp!1bH2$CwtNnq z^8lub(!!qa^7FBSvESkpk`3UfDHGat0^tCfDH~2zz}2fj_bt{INbKsvN>+OIeC6$j zfNcFNz*FvVSoor?dPL+!uGE&i$a=?fb`Omo!slodWQtQ_GgvPF{YjHG$r zP}|0S;z*IdUq@*J2zl+BQqM2jAF_n9&da}vFD;}UFEqi*uJJDK3kVRZFadq3cjAxK zDPS=bj`G%@U9sIJn}IFOL@aCQUfpx`5CBzJ);lH#Z*-*wbhT;yk1rT2eDCqC%gz<0 z%L0AT1J!c=g_ZR6UhqF@G@QY#)L?j0_zQT=qd61=6#TPm)Pw9I$jv1X3aZX0)1GhQ zpCeza&h(tp8n|i&&=qhzhyU;%*1AG_-F4UX#%V)uL%r8pxz<)0=PDcJGKtmK~-92Q^Z*`3o=WNao>m3@Z zx?5W+)+#XsgFZaQjDAsq{}WjH?_ZYt-#h@E~xBr@W^7yok3Qgi_IjH)X z<5;euhnJV8^T59j=mW}jPI`*=7#QrW`lof^PT^6zYcIrsH$DjqY;AA%mRdK(7k_zn4DIOz>aW-)%QgLeK7(tYjl-0(LyHiC;@aO-Ey{UyMv#NtZZ`Qml z{-5=QGbfo9O*=PUCheVx5Su)B{o>E+oL=-0Th17j_M+PCnW?G>)N;g#j5Stcc8EO* zjm*_jwdeEn;W#nS$#`I(YFy?-lAGLmj?>3oQI3E7@zL|$0jrNO$NVw# z5p1#Y*WQIbgg@Hee7!P`bJl2LKe; zactZ9q|WROzodz8zlPId3+RbJRpoFeU;bi$82awtxUhbE#o2)?6ZDE?yL<#5M7{~z z+n3sebeDQvPs`Hp_wgR8q(AzyST z6|*QNVuya5Z&1VLmU0LA_ePcseP3@HI%sLIpdc$|;I}AKK+?!1Ypt|*pwWElR*~7gZd`Hi1~`rU5W!;$xJNrZ%MuUF3>fjrvLuoxhpteb9#(Uf@{{d2 z&Y3J8k+%ZQYt&4V1P`JNLw0N~YaMJ9RlQDqA%)}No!s8AnUQKa14S{CJ{K{U~w{$yXCV0 ztxymzPkRTt1h15~n!YRzyrUX&Au(hs8%Jsnbz@lV75P?UXWpg`SM-7i@IYTJWw4QMVx*Jl?6+#7@5c&?53Ia-6Vin2z=mu#13-BbALGwwnK zBZ5Esum1td{oH@IjM}k1|1^FDbaWHDKq0@V-r?B*#q^U=FIqvq^MV@JZ=&mf3z!{TAG}RH1DIt zcON+Gt1_R4M$B)ER&bRTYXR|iR&qgy2csR{&S~WcyP*dU+v>%YM zU!4rUGmz{fMyn^e>eQ2oJ_yVbHK(~rWmmmVptaIVJ<)xcv4qnj>Mx5RD>F7CH`Kp= z5j5v9M{6k?6ME~hxxg$`8E{1s#P_mB)W-+(Cz-pPLHg#y+L>@l_32G^N_Z36vdVI4 zN-FR3r$KD7ah=ics85E6-Y(PHJlUcjuIvpDt~m}aWQI2KMQ`4lt@W;?c#3*(kp#{& z*nsGjE6@V&gFIdS%G870L(@6cRQFhKDt;vrR?ZFWlEhO~8Vfi;tD6taJfLvNy2I-j zohD1#pn8ICq^kwd5Xj-@U{0lH6nr6&pcB%Rgx>hFgm4M_<+#ffzP92)Y*o3_`B+$^ zfUmH)glBqk@`#GuAYP`fMQ79IlFs>#Fop4K;P#M9R^z*~xaLTE>`bX3PeCj-NmcXnYUW$%%;i~0 z@~cDCONI^=CM0$2uu&RDvjZ}6j%<{z3B7*C zGn{2lfPy@Kw@qF~ zT{~RS4#DH%LZ*Rxnr&e22^}!*i4m(-vS3k7G+c7uO&$17bT zkCOHC8~UM$sipZZqD2dalAcjISR3@jE|BEn{W$D(beL~TiMHCL zFGWU-DCf>v8IVMi6mHp<|2n3OjEw#|D$e1;{5)44F`Smv8D{_wH@pzU%@gk$mB(;i zs*Q=Lhnbcyx^U2KuX=U8ZOKI4B4FNAaOAhB;{2x&@*S!d&Kdn*VyeuGpKUKNxcW>_ z!t`d!If6<{zg3uMbySR?S@>6^vGY-y?|G$dVl?9$2H<&F5XTVWb;3{3#U@iNsmW_k z3N8vc3rA_#5cQZ(mQMy6=@$@~?Ez>rWuFgKLP-|Ugv!#QLXqYvU5!#u+91gJF>#hd zGj5g!GN3VL0*8vm$gI9B(Lq<=UvA2}QJQ!$KIvR$lFPk6WWE_uE1uaLcwG7fZjTV= zHTYkPeIMgn-e*K=C}Vw1-16{YzMNmk8^>6*;-(s+>BKGU66ulsqpf6XbMwunWZlk7 zSXUf))x-L)z0%Y?i8Qq&o}Kiz$;?pvIW~7O2llS`Qh3&QSqa%Y6ka4zKSah7gONq; ze<^333X4vpiS(1;JFg_jD@L`~7-d=Hl4eARKN#`t806v-2i6luOnc{cu5`phCqE*z zo4Aq+E73Gt1mh>^KcD(Xsvk<8{FPu`%aX~hZ1j3EhiPi|3<|gBZ`UnbRXQcVZjJNB zJ*2XnT;6D0Ui(N)iMAplzZsPy@PyDcYj}E?wbrR?{PksA$=F>SWiH)ptEf7J*jFqf zST;fD&z+K74X3@-G?n{~C(6X?fs`2*$1t^K2Mq;45BRT*B+Qx{z0*?*kC{~=^Yw&| z8KazvZ$(ysC#T1}Mvf^|Uqk%K^D`tYGG%(<32MQOfQKYV#q`{n_U)Hz!ZM^<7Y9f3 zQyEqjKar&bPI5>pM%_-b&o_Zd1{637{Tomr)*V~a3ERF=ZzL5_@62QlY$^L%n2OI7I)AZh7Sm2Sld9d$Eg^_si1a^S0;XgOL zc_v538Oi!r2192G;=~?KyJTBqd*uWf_yuyXRJ^A2LW(_dX`|%5yNP^ODA+02Jh;Q8 z64*B0pi@3--{wBjKq)px$n870TVl`5z624n+GoxyZ26@*R?qgDQ}0AJ^>fm;Z^ZRD zQPx$9=>va{XlW=)l5+-K} z{nne`?e$_)Sj=Z8?wZ^Kf$9;nj>}HE$!;lwOMok}C`TqFs@Z@!-mNkUDR44yW~Fe1+vHn%EO{&16OapbWNN%ku_&_UXg$2Gi8SU z6*48C%Nh-`@~>*NB_56_d9aiK*?|tlBxBuip3VeWnH81rnCS~9$fpQrX?OFUXoMJH zF1%@iUp|Z7XKoY>mM3Z7)`#~--7T5AinekjZbyW;td)^AO60N~UWJa;#2~Bk^V-7) zFPI9<&wY{{^{fuiB#vKvcNcGqA2He(fs>Jpu{{m)CO%H9iFLfTw@{@SOzdr+CUzZr z`$i7Gr_>IeBWq_U+8aSMh7!p~9VYI=HqJ_5kzBzKKQn&6Pg;0CB6O2Q_1fcfsn1e0 zoE&#|bBC_CBEqois&_!9Wj+fZ7ZrPZ0lj68a^of%@=5D?1$h+1dsKjN$c+Rj4d)Eu zaxN+x6_fWP-yrRHjgZpybO6dUH4HYGQypB31|8UaZWH{SBf7}d@I>&QOJd=Q?C%9h z*Mxo7R#zGT##V#fUag^9RyA48vL;ILGFm?PDXr8AVRvh&$%U$G8>N(m zH@4g+$Xe6Nm)YTs5BDkkro18J)W=goI=g0j9qqq|qf-Q0Ly+rG`wFePnt2w_`~&w}i4J0O{J4y?RM`8`zEFRVPQV4!%aE z>4CxoO!#&DR4Bskp8qJ<0T#5OsedgT%(FJyGF}rJ%jNy^MBXM`8@4ql=5c!{C>J zhJ&>ijD?7W`P3%dXP-5K=C>{gwM8e$K{d15C5}2O_nO1~9OHJQFVaJQ{;;w!OgmYU z4mNmA0~+vBC2O$QO!9OlC9<#30T+yTWlG;c?P^-`vCtP7os0SvnW13D(V*e$=}&+| zRnXo4jLGuFx+(*-i~syD)|;=S&@tT*TKqPER%>tr27OqM70)%>k>NUkTi+}|?9?8w z5gB1_ePp|GWU^&VB5D*6@H?JQry-q8E&98V>8w?sCM!u7Z+9(T`WN_=kOjynVOmoU zGy~kx%VFw4U&6xNnxor{a`MVUYWQG-0dD>BMA7Gjyje*nAJ7)|4hqcO0PI>g@$OWo zoP*sVPvbWyQ<_E7plE)p!;Iq%sW(&`V3Br>3M}yL#&flDBDzxgDB7SHIP_JZ*q`!6 z-_g~zU-`d?BY9VC6Nr#07wpEmS{5+JkuFMc!)F*PAJdikoU-~nm3_Rh#21T_H}=&J z``^eN9X5QKXnTRni7^}e=Sdl<@%hcGs*jhhyB{Kikox>4l7h@yV#D1@*$aLj- z)s+xwC)r#$UL zCg4Eb9xZL(I)Xs}?YTDhp-UjJEz%IZPVT}%!td05SDH*h22|r288(vY^q1x2 z4R|xfGjD)yBqqchZ|OF08sL=een}(Zw5Ro4knuf;HeQyjp9N!aEhr&Ur3IxU0+gf5 zR5(a__Lke7Guwh2%cpYgYhyIy-taP%DF4u7NLc;H*7jBveZdR_Yy&^9mVm&3bb+8c(NV7}{|(Bq?fHk<-{@&9hL5Fncz3P`@nyz14o|eaiY8iI^Q5ZOD!8FlA8L zLM!n?+NsE1L+MSq#p`mLe%ktC-UAI~WP%GKYsf+m86nY%o8j=|$= zU(UU~{Lm_2P(BNZTejXJVn3PZ3Hc)%7-uv0syw@~w@L}OKjM)A)=*y;_%Hfft-9Z> zJheSJ8CbcGMf*P#8%WE_JpKR%d*{RS`~S$T{~!77e`Ncl@=(A1C!ho1fxf=FU%S>5 zKRtt9GO=n1l4vUzr*AY66qU8pj8Z3apc5|Pc z4pUsD*JAB4SU}7$mX^NUBu!BH#wFV%`Nc7)xg{x0kJ?u>uip(Ju#W6hJ~_B7M$F1z z>MSM8YXD;cbBjAsFVWOn!kaxTsYOY~Im%=o#lHtp+m^MOSq^%6Dse3prv;^4?MP%A zJ|*voo!~A!#rpzG!lgH(Xbp?=ACpa4;+lQt3Xx8A1WZY~(AK00TD`4ljdSA{is?U!ds+&JE-annBxrXmQ zM1YSeYfTPNzNB4yn7~yR_XiRY?Y(_N-0w(`T;5Obzkb@6mve=*_caQht-)MUZ7Y!U zirI|6h~aVbOl#nCOj@|;)Cex5`$EWGNHu}KqMTZ9O2C*l(w)uy(^(we0!w1@uGpm8 zy0Swd37j}rUz?jsMX;%|evFF`3w!$QW59Bd``3q**_1@ti_1J>^uPeWD$7Hy8j7ky zu(k^*gmi|!PX%d3oB!!I740C2>|M)m6w-TrIe1m+qMl*bKSvgb@N$DzFWxiBwL+$e zLx^OZwUmU1-h_F0;B_ZF+2fV_uyzx7w2wnq2Vq2OV~XKoy(w`ZTFfoiV_^jE4{p>A zzQZ;fW^$i71P{#D`M6;yqz>R3EwzOSGu3u@-A^ZTnk-|%-8P)(T>SgBeB4+MeY`QX znp>Tfj83~R-&r^xc6&~Xu%9mXlh3TVNJh2Xe+h~@++@fq2|Mj;ARs8e{oLf5DiGLx zeYm>pY^ZI&zh*t12^fm#C5IBZS`W0|Ix9@UO>L*ow6#&DbDg6Ooi&twZ$w|+Nr_%z z0(&!|Yi;{e+uvHk5U5SKICkR8PY830X8ULp$Xe&`=kja1jv`+Plkqo?kC6g`qvwY) zm-314A&33I$5bD~x`S0Rr4y2PO8X>^L~7IP5O4v{=sMiIy4{}($HBh5o&+xGovIMQ z5wI{*ssNjjhqeq1(yYR0J4_>oM5DY?@eWgH96pAAwrog%0X0SwipCeKO(#$82orYU zZ2RrDw=9)BvLKJ>a~XvF2^#P;IUr+IB|z8OCm|}Z=r_N{O2Fpc+=z!I46LW??|7$r z)D}_uTdi6k#&=m0_B||AxLMW9nA%KdBL0|g8sT)KqMo9McAfRBD6=MXj3gGz8nHTa zy}k3p6_vZ_o}+wuR5H%6A*#kvrNO8s0=eq;9AF*?gxILU1l=v(Xp8;;JxnG#6#o``UQ3gB$FZwc8kUR-4*qgne39EaKz|`#`=F z<+IdSt*Nmg!C}Igs$dhD*m=C?edas{(qVW9-Fp%^_qiep>kX;SHE!_2s@g5QhmjahaiL37QNuMJefT&`P8|Amvf9=d?8?oRuviwjY zRWR^hFmr`n<5}&Iu@CH}>4zG`KrYQclu5*{TTmZTUq_mW@3S=phY?TE2IZ3@U4n3z zXQyZ*e4GAZ?6AZpHS|E%1nh)9bMJkffeiRAsL~Ep`zI((+!|hu{B^2e*RjaWU-nDd zx?HC`yGqOtpQi!v!de{rxUS;aB(0i%)qJD|3+gCK$E0}_oi@2TjM4By5IYS^y-LSR z#)AqRv3DGXg1nE8GT=eq!kT^;>T)qAF$JL0&Q%!ugKMN8@v+wnH@VRph;c`EF2rC% z<*?gh;-@0dlHRPFNVsIN`6l>Y*>jpyl3FPCCkbnV4HWRX_#uoxlHZ=yUbyZVUkY%4 zoxmv&{pZUt^fo4ymWq$~8uGpRhtes{(Hu&aVv+BQuv*Tc7W?qwhr8McVS_hVmn|6! z5LMx(Jgfcs#<62M6l%fdFH}J=(>cX8$&K=zTu)WN1BOy|%+7>{IaQqShet0+ML}n~ zvGjC?iwCj-DkU|weeHuZO^W`^ue&DwP}zOuGzk3=tID|I_=a;R@x^pWNHJe2}L=gPxvLat`sYKyvZ z57rn~B%3@`<96KtiJFl}##;-2et{t`gqE>DATzro&?N=ZYbBR2ENV9YM$t`ySU#n< z;dE1BNPVh_zk}g4r3}F;Yf~>-X?nu$4aE8@2A&SHAuqeW9MLg?XFvwlGNLzx8}`2W zhK!^iM_2@K?WVQ{KBgGh4ZoGB#{**i8CqKRf}EAVCv)g}E*?!p;TWJ^28V{$^*31V z9UfGm%nxtv?YV{P>LL;LO#X1nj-+e4V*LM^3y@CZ?CfHPurp9}8A8qhRy-T%^4E@F zC55HuddH}hbXkZ;n=hl?<`soVD>Bn?-e=0%9lH?0iiYm{MlC4+kKgNV6*rd%-?|$E0 zZI1mQ?u;J8t^A4Aon*`xUGD;(L5|Ac?um-cxg|={5jwTEV)4e*OEeOBo^O>R2faLc zF}S5F#y=+bKtQkpawvm>d@-`wOwl07J4UR{TAF=G_QqC6dEokSIjb=OR#39Gwro@* zp`%socrhkxU!+I>P=AhltJ9L)0N@uJ6lMJ~H2*2(zmvRl21=MgEHv;}q9vkvzM4h5 zPvbEQ+dxL3A(XF_6k9tK7gB7mG4Y1>Vs4BrYskJQ*#Bylo+k4n*~jxl{-N+=X1K6< z{}jB~h)thGUWmRZFn`jY)_^!`z54wM^@_GE*x8*#;m(JTL!P@L>KfIdU7irKUgLRP ze;^=7CSa+=;?;*kN4Y-}Lfg&UN+^A~Pm!SHHvTw}Ny7q^w!J;uV*R=|HLOE8cYVXn zZ=g`Yx;o)hWk(hS4y*Fo+FEQzhQY}f)nd~FNk;5#z%NO6DBbw_u=8L-JcQ&J;Dp7G#b`fnSH} zQajpe>I1M2<9@4Gyd;N!!A>lqX~6=+Y@f^ehlg1?2E;5J2Y4hCGBSoXRwZ55`$@~o z%in5l_i4zyq?Zd7B5BhO%!e{m59;a*#>8D84Nb~fz@=5FvY%c zAf;$Sfkk{w*>_oo#(-R6&^OF+!Dd+x5=alHK(uZTWxbecuGh6gUiklD?Jv9HXq&cS znBWeRJMzhu2|!@GjWZRa><$l!EvOp(vKRNrepI4DLt)D z+pLP!D>FK$Y4yy#sd;ac?gz7Y!E|$uo73g6effRIPc39HB0T4R&KZ-VGL_)gM~c$& zk?7>QIiomZqzx#n9)ovRAUkhYPxAEpyh*mk)|#raTZ00(JoX=Ox7ul8^&Y3$UbxI` z3(iL7T%Py>F%<^9ssIVGO*Q-48$diJRuzWzCZ;R=%aoGkD3^Kd4QaNcG^A;gqV>VW za_y;dNk^@R0P|0d84&GN)bvczqBk?LKCx`F?qmMX>C3EO-OAp+Rc@04Y7#FEn`7@b z2ig5E=bSza)GY7IY0%jZI8r>b`mdLE3+TI$R3u|8yi7~%;esxJOGhyF8QgQic?8A* zM0K=^RlB}#-y6W{oEB?Ui)7kcDvHr9GNZ35Ua8%Fej=aFc`|GhZ;JS58!S;f1nG)G?+j6 zodOk0j`_>P9po$SO%aAE;nt(8QJb-m`MKzEndKp=&S6v^yj&=OIMaRn+VE|ayh@;1 z2?;hFQz9x$j1;+q0kp#1Ia-sQI*CN8=K9+VS7YZ3_}m;`L&gxCONnlulcttNeFL18lAx51!*oUOD3i zhLm;mHapjN`h5Ix)CqFisW`98KJE*aFM>zPZGZAqTkku&nXwR&fhFQiY+AVTJCo$^ z7jDk(E-f>PYDKX9oyg6b5<=a{XP(i|8+fgf3o*%=;my-b@<_THdvDk@iJ1)}pN*5! z`s1!_V{PzL6pWi-V|KN8rI};Dmx$n#fJtgcuD(5Q6+5w)%d`(VX>Ni${J#fKUk|n8 zTMOvY+6P(9KVBktvC~?AM0(7pF@|C0nxgH2{CsmpPf&{;zuyztcfVTru|e&Eul&5K zv#oEhE@Uwg|8LOEMh?v8-6aT^#`<qJa$}@rY!6)QD89+Na;ubz2KlSKf-LDmk z+{Ji0u6`tDtM4^C!i-$(T=EJM=OEq}e& zB1cWlE--crtlot5K#vB120}=p+`p)x!%2&UHTmOtGe#RN4iG-R6Ma+1CTxG67d*pefw0&`&SsheA4Uvc&QiCGr&RlE~<|+TR&hGJ-fJda|haVVkEuLw`jB%|UI+E1>Nw`pd68D1eI9F1;I&*54QK}KHtrubs__Isk6#+K zMvZO`NI>41SN|zZx-R8Bx>%%dcg1;wkNVaYF5KJ~R{F%j3pq(02VV!J0>8~OpD$=x zVoz9?^E2`Xw3h5;`neSAKI?m0UY=tF^8)n3b{B_!Bl=`SJacNl82xzKH`(R2g*>6p z2PdX2OQsxD#_h0lB%bQCA3&%T5J4ZgKo1P!@g&d=x*ZmT>cxDcXYWsrpjm;9s!-oog5AB%X)ixlER&KocuN z2_O2d+c2Tu7)q>YCcl#5IQsM$Mod&xw5z*Y6{jS;>FsF8i6j$Y)bfQrjz4wsX7qM> zwp-6xKypW+kisvl;15ypmcxxhpG&s%^QhYGW+AYFmR#@4o?x>~C04;Bv2znSLZzCN*UF)Dy^EOFB9-4-RagVPMX$uaCb!FfuaE zSaIDwK6Wx=9x)gdhhY|W>vrUNGt>mU92<4|9X0E%U&s;z%eT5{PV=2O2zf3;V|;uZ z5fO2(9$*K8KzQATkdqBXpWZOcwM6~Lw}sZkLR^PJrNQ2YhY1J>xZ0a3k~{=WIW5hz zvR}Z-B2rBJ^8w6nA!8zYh(WfTW(7~inJ-uL#>U2%yugcpa`0$GL%a|_Nk6|X1l>J- z+n%Gt{}E zlIqPgG#Suj9)=(b2kbt$xVSqnfD*z1n)Lg9?+v`)> zzijV>*U?UsaM z4pmq4=m0-UNhh_iFs~!2hx~MO%ZqzfQOVGs544TGP%HLJ>sVSdBe<;x1B%Ub2+^~- zLh~ChEw;POyMw>5k)x#ap6vs4H=W&vnwm3N8d0%SA2?=9Tp1V`v^(7B8NXCR8Bb;N zSL?M-)g0TDw}=~R<)yBzQDNc~9@;wElyiT#Wnr_cMNsiU0K5{nW)HZKt<%imuugTP zE0lNnM!f+iR!Qo^SxM2K2}c6lDM*QTT9`~44idN1H8h9wGtYW2A-~$%3^$^&X|)?n z;nYhNOeQnA?N&gOFwC|(^6!j2k>RQT*PC)eej%MwLM!CNMhw_L3AbdRGkBYF&N)ok zsLtizVfynWsFe0g9~&{4s7#6@s}4UZ&|t%B4ljO_-YP085_B_7pNI9E^q=X-7{$}I zG;CQX65-8I$eC-bI`T5X3Y=(JNv{8%@I{fPxhTuUjT09gog>N!%zVm1-M885}nZf&z7x?hjY3Qk?3YF6D~@5B5S2CBMIb?r*{aAI?YV) z-A#$cr}XjS?IiOy!cl)bP7SS!rhb7mEe?6OW?FM(_2i6A)L1_O0~aCHmfAtJ{q~h* z|1(eYfrNH#{XhUD*ey9sI(3UEIm2|nK<{hX=Vd8kVC~8?Ez#XIH8gNkRaI*O19itz zjKDPs25a+bOT3k}E0pEXMPBEjDMIt3UE3?Y>&nZbpDxor35t-YH*{%{8a81v8+ihz z96t6Y$!iJ0`6hw*29?KMf3Sn<1C9jZrra?yESPb;f`!|uODJKCy_p^p6$8WZJbg7M zMmDQ_0H_ew79UB0odHB9rukeqzhJEH7teP&@MUZpthk(ne49BL^ zrNE|~<9gOj>X-YpQAD^Ny`(-z9vvRmrzqTnFlfm6L%HYv?L5rU{c+XKD`)D(5!l<@ zoJcf~F|FNMF@-YBvU!ej@r=**J78yAg?(8Me#O9hM9H<5;Fy0(Ow#Vbg1{5XYpKI+=&H8_M;@MqfkP~r|8eHC6Uuss@D5a;5 zfO6mzK{brFETqltzU1V2=r#pTaiYpy_oZ8Z6O#Jhy;5wP~$73zVjs;X?8YfOyG>5y@^7l=tI0WE4SwluE$lJ~nK ze4nW8F;!Ja;E4AMjd(TJG*h#SH_0B1Wgo0Lkd$TY%QIZVK>Z_``H@0gToq>)WAWI> z8|Pc0wnLHjkcq3xyexDy7%$Nu%GK%Nm}ZBIs7hO*zg0cj{$svga{k;xNkkcI;nVX;|C#H_#z0eY9Cv0@NjPlo z2!YpYE$BLGvs?_u!2{XMro-Y@GN6o68_3aY`O!r8&7nRz2i|ZC(wmqP6?yD%SQ^tP z=!9O1jFtM_mNxGDsngfQt;~1KElh2F#&|WI<(D7ZCS576H^W$ zz=D(;1aD;g@Vm*Kl6vPr`hpE|SX(~efJY_xbro`fFwdT(h*Lq2F0OUHV_vu{U>$3~ z@b%xK`Q9TFp_u_{mkiC1)bEoW7T=$Wo7mWX4AHAcf0m`4;SpDWhvQU}&4yOJ<+#J-j5U zNAJ1&u~doP28T~NUh%8VH}BbWsfEuU4G6>C$)+m^rOo4EWhppYp-Soo6b=i(nR)~w z!9x~B1lPwj-!c*BK3bZqNpYyoV_aKj(Pf&f_q--cB%4-6H|wW_Q)by@S=dDt<`c!S zbbnTMzS$l&97Hk#4tfd1Pm=~PS-P2T!Q&Z~wEKC|?ragZeZr$(8+MSZR=lhH;&HO3 z0R`2E0Z!(l5mb1XQ5tGB5}fh7TTTN*jrH|RZd-*Abgh=54zrDR}#YNP~zCY#IF-i`~`AxYMNIL%AaIm(II2MTWj@0gl}01W99=^T&8RUcDyxd z_=dWy8XC(@L6!WN8Z(DgfXgzxvZ5Ej1;j7K2EqAfOwy`nYFu~L-1>t49g4vlP17P^ z;Af@u0X#kqxE%z`X)s&zq08 zysR55gDvcPLzQp&p{Ga0s^#Pv`HQaZ=lknJSlBzTi=qT#nk>3FekmRDI#D>8E;F^! zwucp)1xH4k&o#r#%ZuVm$D-4bk!ycG5IIGiO!$x{v(K$Xj+qyhmPTA$xHKCYO36sS z$03RB?d@F&6${$fFjlCH20Ff3zD}N+A7mnjre}v&D7+ z@VEL_Ryvo=h*_{_>UmXq_5cOyOs$P`$?0m>4((fB7Vx=^&i6bOv07o9>TRiHs4B0h zNEA~++{8kH?c}Q|#M~&Mo*0cZ8;y59Ugl0%@CJUzlM2e5u6H9LB3gO;An;X$3k5ux zu)UL`y6_qu%a#%gUmz5KZfR-J?=@7i(k2l0x!SAmI6OG`b$ET@`7z8X8W!;2WK{PG zW-t%76urFoKE;z1G&j$gU8kg`y8Qe3eqeAA2?L|-Qv#Wy63*69nw^daAjL$s`^$6- zV_A{?=7n8d*~aojR-ZU3XcTDf^{^z`N)_b}Zsg?NBJ0{OHcgw0N+)2&~hCejeB8KZ>5#jA_ zQw5TdUYC=+I;{?*P-Y{so438M!b!BsH|FYqoAni~`#oJyf(!*47Y-nT=jWTN?XKCP zfk0Uj{Cg4-1t%w`DoZ5bv@dFIPM)1rQ_AKGuB^N|TuAu&Q&vJk;_Uj`{T?hg81&1B zRTzMJHlKW~$e}&;mK}i~c6s;VftxRUepKctNVp8wXtpQ^WjhJZj;Tbp2Wb2BU=Vz$Xr+0Wk}2nrP8y>9g7 zP*TXmfyD%Bcu9O)V;8eeS8Cmm$D4I(h&R;OI&~HAT_Ilo5O0+4} zRca8%-66m>d)Y}#hchFt)|JPEgV z=Z;sC@a2-&4y*6p`p>S zb|i>ooSCBQr*lL^$5jJ@@cI zKr)uicAjbF27$~g=<3Q1k467ye<;G6Yn-*1ZWLZvZor9&V-Q+M=jH2L^vA}&Ki{yf zbqzR-Wr`Y>#8j&O{N3ITZ*6To-U0r8sdA@Jfy=%{=Hb2%{@-aam11jdt0sBc<;n&K zvlKTXbd^TN{b9rDg72Z3bo$$NZSwzW<)!Q-d>-)Rt6NZLn3tSL$iHQvt zk)GJ%G7|Dp3)gl#Fm^1?0fEo}yqs@1`U@FFP}-?u$T zOV77sNkq-t9=80}Io%|tcK>$=pMPz$itR4_=j_$s+H|PIG{DpI6vWHN^TXLgd@c$h za`BjHqc^}e-6BX5suXOtGjJ&MB8BU^UiWXCzFQ}C0Zj3Hxv`^ggDSU!Kb*%=@1^3; zy4Apnr0>7vqT%S#dyOq)EJxwrJKMFiZ8(PM5L5GSR9-B-J@!7f`jldBo86VUy1Drf zXkz4){nVv}RuwL`(tGC@C|$svVWrg(VS+O<;9`sx(2*uZ3nYq;S`6hcm-f-?H(k{u zLnBY0S1v^ZymKx~WI~<}>UM9Xye{`hPmGc@pv5=8Oe&H9p5&UQ>mfo%=u~mR-h{Wr z#{on{mnZ7`@%_te;VT#znP#(U9c@uEOI{dW1b(Eh&r27(gKVrB7lJ@a&S-WTtF7Nc z#8_zC5e^2f{u$QSZPDl8=4gMijZmz?AaS&Z%8C0ZfN=@yY5Tm$;_*#Se5yo@v+liR z!NHj)Oyq1qDJ%*sni z+=Rb0oHsm1B0{Q@rH+h1;cOLm!_J}0%4Nna?AZk3^b;Kw$~a1^75!ooV8doo00dBD zU(kWaOiOKl1#Heyz}PX7G9XWYCUa0($=`B|S>~ExTK&6KU#ux4<0aDE!!^AR@)fIX z$>D6R!Ec8x$VfZ1x;{XNOmA3cWgM?N!xClAl#q97mJ`A0NC-S~-2xkXjlN^Bv+XU~ zV4vXSgh)we0geZE3AOj|IuCtcKcefIm&#(yXkz=lx*lFe$g$KSXZ7*p^QJx_H4Dk1 zlI=pR#R|y2ymH*=^+C(U#U-87QVF3IINPnodx+M3n37w`&`Pv8<)yDK{+!Jh6?9!| zmyf0G&Bvx$8N(ljJhLcRQ_Bb)v%e$ zaBOo<2s;M{vQ#ObGx1IKL2^C#Znovc$Z0K5_b2bVpaTLe5%oMY8cy~{gkvqI;ha_^ zr&j9i+)Jt9{(J;!VVmI|k0R>&V8j^6UUps5W;47b2lq~fExya)h}nO0pnOleKLOT- zRyjA>P@KX+f^!SHjdmcCP>v_xqE16U7y&K zP3ssMt`8(iL=pe7?_ZV?|IpWdDC2-~^E6TLgNQ*O3^rmdTXi&=JlmfVr*Lb(GB&$Q z4GiGhdzD0iP`)9Zb-^VT7TJQH@qqKS0=h60y;!q-1($Ri4gSGu(;Y}z9mF{n3Io-O zpn*W3RM*`pRoyQ;KH;N1|9az>gcowQVQfA2a{Rr$r%gtmC%;*&wtP8RUrS0vRfk%|I2%j$0kpuQUx32Bq2jbU` z_=MiEEh#zD4avp)2BGsvt#r;}vr=jvMq1x<*nn61Si_!}1+w#BtH(U|)kLY|GLiPF z3nHh|JF!=8&w!vZRyunL1&EC@tshPuZZ(*V($moy18nW9&f_oe2cNb5j8Ip3yT@D^ z7{`OyzI~Hl>?~G!`Ggy(kzM#!D`sR3@9ES}m>VD5OU3cja8`Z-0^s-{p-;yt|tet-F{R zv$=WEK0F@=(Ed=!ti0_6{-AMhybg|Po0htG?lT`gkp1rjP%VNunU(JAuLl1_c;-1P zxbp&E_(h-2LO+e)BzK;4#2}Ent&ESw&286grcKvuOX1#0q0;c6vKf|cgvD>ldz>%- zi${$(_!%ge0;!HHgXm9Z`}zs#=W%1knp{oOvh&ra4mi3ldgceY_z`qJZJ{H|NNXi( zX$*!pJ~aQV6rgP1t+dA;zVo$}ZEHbz5xLG&Z-w<{ry8HGIi{nd6Z_8{`BK%g#zho& zY*;ko^lX{1G?Ap&xZOIe<-K0{$lpKi|h=zL()Vxrk?`1oO)~Fg7#Pu6*01+dJ z{U^c!f3Bdk!hF^aS#NKCadC0xTu$!`^Pc-1;&s1E#rYaNgudfe$Q1Cb9a%+1`#%C9 zK)_582jA7zrH?ETj+t`^I8w@AKRMZ|Y@s)0IKPYSo=kAHkSTjy8{P`ehsHwmFe6RG zvvFfbD`PxAdMqqD(+he}6(8@sipw6cPb&OufWL{2EzjiikquM%R_KrlZ^Z@ZeMp`1;p~R(p-sEbH4!^IJ2N?x zJ`k=NeuEdSiI|D7oreS>0PYhN{eUYn&`Rmc(!}%U3|Sv{X02E_nCtbznT_5 ziGA%P8)pA{dojmSaH=PFyB+dy#m*Cf4-4;&X=#$SR$ z?ew$9CCws$Zw8QMHUzmNEVJz^XuivPv4^3JvY3i(xZX;yuCsSY-TD{dQMXk3#FtlV z*f)(eX&ok5WX`|W>-5wti(*x~9t zWxAGzWQK);@%k`P51)FT&E-I(w9qfnAc~nCc6{-G8ef03x27i(COT1MP1LY)Qzrfd_KTLu)J6tCbU#k^>p|##(0_D|D4DQ$ zRK=%N>Eh2QPsTMD%8>h3Ga#!5Dlb-17`dYRx^5;iznU5{V&C;$++`f}@DMf%05$~+ zf-j4hKwz6dCM-}P9bZ{hMbFIazF7Ll=Rzx&E#TqMa>>OUjduPuB2t8O@Hgv}<-?vf zG_i&rkgZQH<5A(W!ulP^O=dJc26+$xTark%dK0_CFOllE#Bjeh1S`u21w(~;^Kr-X zzNAkhJjQcc{xY_$@O$2V6hl=O6)22eZxy(JC~WgOl9$Dc{UytoJhP&E;)%RK22_P2owyTES+sbPGey=77HXKrVDe*SgFP956}&0Z~0#2(bS-0@vNdWkFi4* z;al|dGt=L;^N?{pYm8@hF%P8(i({To#lR}P!E4aUluV~btX3-Y-6yA(2agG-sYd3p+=!z5uhg@qB^gK48KQ_A@$ zD7a#h)!S?Nd)n{BJ2Q5IZ=Ttpj~KzlYfIEcTaYeVlqoQ=I5<_ToF$JthDU|%0oUWn z6N`QRw0~{BG2lEYW;v%8 zF?eNHR`v_oDI>Sx(@{WoobU>(+kK8(P(x^C5xyFCj?aaQ==~YkooSBroV&e$(J`O= zQ6R(py*Jw}^p|}_kj6|`40jHwG{4Q;3O5{zm3ed1gk*A>mWnI+*DsZXdGG53&G?<& z-?ym*J~v17Zww0yL#;Y}n`^m(O@AW$L;Syr>z6Qh2^cXt-P7I&^IbD0Pq#((DA9P- zbWG6lbp}jJE3N&Fa8$8jTzKr4Yx-(d(j1{c*=jF)M!9O-EuS7?yeb%X3H z6VpBwbfGE$TebYKG1(ADUp@BITyI>VFgas~qm_@fiTM?tw7*10QWH0OlE{X`qzrE7`?Sg94-v>OYxrXS6TR22upz-;7}}f0?T=2*^huGd z_I@wJjLBxLxvpodUdtkguzQc{x#@Sb7oK0wua{_}juG6AcI)Ay^Y)PK#^f9iQg$cs`B%3|N3cz-uPOL;PI%G$~(1clFEaS6H~Jrsi;e zs1f_cOCoG!m{)PntnC7y*BRr0gd`#g%HZ_0GR?R55^WP;9hC*Ld9gYZw#D2Jm_%g; zUmf5;y3o8qX-#7W*MP2!R>1I~4Zr063J=G>+uKSY5b|PkcE0_4e0-cL0B{cO??3Se zJn<#Ie-ALqu?PtEKo{YdYoVVm5T*=mvst$7^z?A`)J3K(f4HFR$N{XqM1NxnBuZ>q zefSu)ubJwfn1gi&hPb@EX%5kg(?hwz1cMcX(ed4G^T{*GmSY6AqB8Zz6K43W?FCdb zsy$Vq3(SKLJMe?OYiFdQB11|9(|f=&o~}rcd;*1Ydi_Jx)i+%S-?y#z4N;XgWijWG z6g%0(@-w^r^^)mi(>Y54Z~xMtEa{FS6&a9&I?!=XiL28Rfl0a>e4sLH1741X@$z%F z6=J#B`-s_XFXGJm1R0%F*0N|;!25ldU_EF5f_iWqQ#(#)1}EJ~A5>SzT2Mei_bsF~ z0i#Sg=kL)HdHZ8+Cn6FWH5C;>-j}HxT`etei*1R1r%%dh;N80-ab-x4fAk)O8@H9|xIJN(sVQI7ZC$__9L`Ztx3hKaR%;Bdt~XE%uJv; zUpDVtAHK}{ZXg&vG>`tS`;PrI5EgT=8-|&+S~)NR#)zDM>YRb#7=r-i-s{j~)Kwmt z9yNhN21R5h)cX!%wEeJI50Q8-&xu(@^JjF^&U)*RR_mn^MixxL0IBQ! z(hm~wM2;M4!cEE3kVj)rSCXjTMTfVa!TRUFdCO20hx}ZuQ`T|r2rolzmg{AnZm8i@ ziRb;l(Yw9wt0FJ{`J`V@y*DI)23F~+gpg@f2mQrlNcc{DrMlobuse=l^1zadxi7Ll zPl3W(CEvSrD&fL=RadF04kDm~nw&Roa;r5uqbY88;KQ*qtV0t+Z!UjO^mMOx7EK^I z`%k-;{4V|CyWrBTh0?R_l%CwvQ<2cqPejwFf*U_{JrQB0HR0E>*Pct*1}w=aylj3~ zcmVWn)@9bMnZMC4npr&ICPG^Xyh%SMfyC+A2@9e5`V{Y$9adx}+W8*!@?*0F8WN$x z|3@_{uB`l4S;=5yV_Q*CTUx7>&~IhsvRV!R*Vf%YE@Pzb6ULLD|M~6hC-xv9_`=pCjVuylZGQqRDoJWGz~k|*BUyJeiBbtB+cB~>IyD}R+AfpN z-5D?A_sa>)#?};bVj3j(4k^~@-Pjbr79AN<2*|;Btln0xf>7=jq5a!>gCP_GudPQS zI}MAb&!}?a1M+xT@USjV&2*Kv=SI%Xs>t69`k+<4ys#SuHV6AbN0ahLG^9=mR%++X<5`y&NE%dq*Zzn;bT>RW44Jg)13MO>}J(1@lvUtge`0gN;m&)A;R{bY)EsjC7n&N2&ZW)QvRe5Wk{5XDWm0wtq7KyEBnKr{%q)l|+Sz zBf%x7iUTmpW^7vS9v)_^v{(Uj-=~}Gf6TKXD-H?u-Z4gG-8ei}R_68fbpSWt0z$(x z$+x6-3b1g)lSP78h@d%?#bn|#PXN}$l}*@~oYqM&RtNYbR$R*>qFF^VRw_7fHD4HC zPb8vf+@pc)ivv#W6*SNAvLIg>zRdAOJWX)^-WQ(S?uhm21Va-RCYJ?d+Ju)FPKyQa2as25Dr4B5 zVF-t4a~x9By4c7Y!_i3;30AsQ-RGX+Pl{&P71H2nojb|{kA`zevTI~O{?mo#!*z^{ zItq|HdrM+7z1^*$rzv^9BoQ(oiHMA0eGf~^@-MHL?X@^dkLGQ}6k)q^ALu$-8W|VL zE2?SQl<9hepY#RF{*H6Yvuv?{$3KqU~T-zMhU@`pS5$!n%$U3?!7$e074@WKE@ z?RvUSmq{UydQXC$m-z0`ZEArjQW2T(+U6u(+W$Ivlm)opIUNVOpQj9pwY1s#yCvW8 z<#~q0K%T3T{@+OccN6x4dr2}$ri^#kGUZdU!NPLVavAn3!(FbhGVt&H^w{A2-DyGpH;-Fj9*APx75XB6 z@hC>5o*lhUPt@bnMjvftMbEfB?6&@E&WZDF?X>(Gl3k7b#*T&f%>iuA z=HjHm~9U`Pgt7vzOtOg@v^A^z^R@bpm=5?aJsX?j;ko zfKc2HKVBe3AyRNTK*68xg!T^%NC2mj{q*DQDWr6PJ`8gznOO5ht$H`uQ1@kaVZj9A z=;O<|rNHcYN9e_*Eph`$Pi3iajTB_#!r4A!sNPPPMXM-E?dnM+zy*N!w zrCCW1Z(4a-@h@#%63)z09N_lqb&9-4Mn>jy+JO2WiFRh+jTt@!s5u3a1Ls?#_Y1u* z!#@)#qvPW2l{uw&wRH9$1Ol6U($Dg)vD2@yTU)ngTaeQd>=m=ZF$XfRxoJ}I=3NSx zhe(CFn4+#IR1Sp%H_=7Wq}^%8<7|>f+djXM|Cyt=*9I@6n;?mA9DANcdxAkzJ*dR# zN|R0k$QeoXquNq>N3P^0(J40qrF^viE+Q+cwbpM(6@kVbrF>&0+O8LXA}*Lc*Pnt+ zA@CWX)q&Gk)eQ}mfaLntNE{^_+b>X^EQXP85B_U0t(12bIR+s|*gF__pb|<^P7Vpc zGExCOOg9< zEg-8*ZhJ&Rqr)y2V@CG&gZho1tB*7LF8u4yD@L}LbbC8q+=Y837Y01QkIiN!-j5@3 zLZWumH?Nr;q^^^rY3AIEmbc49DNFUoldS-^=6;nY?@E)Bq$1?DF2fgwm|-^Smb8Kc z1IPvd1lX1Aat^1?*3ZoehvZwpl8;Jsd3Oe4AXlOK8O}eDn_b@88PB)z5pV?S96~(q z1|Wvdw6EV5sSin^fBZ*=UsSFuc|1Uk&Li3UwMj|hW649D*NCCvqTPdT$nO^>8M(k| z>tD&dVf!EiRJo{cl7f2%u@~+0{${?_V#Mz@4emUj{x~4`RSiLliFevNW5H`mj*MV- z_Uf7Qv5VO*ZuHIehFHoQd+Xu}{Po%dK2L}M$|yE}9m<7qdqLa;cP^+7ne9afY?B7F z?I6;Br;t4Q9nrxkH0cR>+|ffb#EbSTWoD;JvR%EZisq9!VmCtusT>PQdq>ZY=0ZzJ z6Q}m-_Sh0`Xb!~O0csdV^I~+0(|xBkeYx_u$=4cfYb9ziW9ekW6Ez-LrS^qZ^2mwD z_VsPn$!Tdt3y1bi5zr*UKFPoXVLVN%4ggN4G1ok+gd;}=9V_eU5FQeRgIh3i@&aMb z2_tW1tguU*6**ecpnnG8=AtdZanYs+IiI2RM*j!L1x98-Y#x?`gfTwEpI7i#KY#wD zhHZ4>E|?0`3itujq;!r|Rsa)H&R-4cMc7VxzlY6y$gMbe7%rsK$%WTZG;JP(6IJa6D|8j)X$v`8v%2{ln6J zisq(YSWP{06(BJ6&I>rPGa^VnqRu++!g{xe@IdW5wu5Wf@a#L9$VK>5Z~yK^I+oh` z%3&&5Ec-VINc$nTDv_t^p}Y{uo&}SkiR3j$=+5V{lr~TO{O+sEc|E7WlQT`VjVDhE z#?4*Jmfb-`f(xg7tIXEd*I$iheh--Mj-tp^loWUUYHqCKD)&YFa!u_e(V(NMmacO% z{!#GZ-Kn@Z=y@AHWoyAUV`;S2q+xQ_za`7RqW3R1__8gp7uwo)MiF#aqMP^m$p^dz z)J0_^kyY<3rj5n7(rY({@%6DI{o!bjJ-)Xa;Z-$MI3ie>B3|rW@^J98DPQyM+k4s5 zC%9kSaryXw4JKSbCgsSRrkUC9n2A^t{tM_40K2G6ZJ~T*t&bqs9G7evX99q68TZY# z51Pn!RbH=9za5XeeEB4KvrFqZMQ!E-0PhE2+4XGk4*#WNyTFs+tNCst;85tu?tf=k ze08&Vf9i%a&ldnPe5(DHPT9h=w>f(H_|R0!3qqeSk{Bhxm0c+W60?xb`OCw}cJ8Oez2d+Gf zjOo7Ti<9eEuB=CQrC(|7&qS6MUpw_2K@#ny<*tB zT3>2;2=?+f%)XSpa;dDQs%FY_Y$L2pd-3fg)je?PRk95E$*}DETXHZhbaY4kJ64VF zS8u{g93#@uwAhq&#RS$6N1l9U)gyjq? zLC@c<%-u%3@Q=yAh==1AzfwpoT;#!oMq~V9bDq|rIT8MJuz;_VsW*gw`ucNIIQ(eM zCw_=cRDru?LRf8RZWTr0>4Irx%FtrzSbXTtTCa9!JX2(81N>qsKhi8@t-v@Omo+(3 z2H0eQ0%s$gF+$|1l3wlxI>$6K3_bNsLC2r4U-@C1@1M-%;WKTMtvn`7R*fDl74htZ*B4HH5^7rFUGP@ zU%%hg(j|*krm(#fVoG40H?`dMoX9y}Z~fSW&aE_=ZiX_xI`i@zbGVYiAsUy#*hHV3 zxOes3@%ADOr<M{U)}`rTTg`WDw_5H(|E4PII_hw*~sM!_*Xa;c7{r zB-hnw&VqqPY!i?xu+l=-|8+WMD_q%d^IlFe8o?N-;Tu8B^le^eCOG*1z*mK4O9bl9 zek^GJa-=u(zfOoDb zZs~>llkk4RpqB064T)Yr5RSpZ!CN910TQ}Y-y1D@`Ae{5!Q8hS?-WQEjj0RuOfw$r z-woHCz%b?;AF^S!@~v2scj+?eLB*A}Wqh_{gkimHfw-_hB`Wq9@rHaN^9}>tZWeHiR%J9fYPY-M$Zi*HReQM+UIeqhF%pqGitm}Z205WlPE6v-4?xr=J(wHoKoyx zQz}7Ujhtd{_?_Rqd8VsptCU?E~Ji?<6{djwIf#oXAmO(>Z-n zXhK(adWS{yCvPMmZI+SvW&l^E9@kWh$2CH5#nH32>DE?80cF<{AfB-g4Xuiy;YlE3 zv_G#q-T3@z__#|Ty2s#sakA$D7rX{U1M+ENe`#kusl(dZ+wJq!^5Jt)gJ**CJ!dHi zRJ6eI!q?SZEeI5bwafu4+R!Mjk?gJk@WWC+_~5`>J9A~xG61ps09f^H#wl#;iC+*qjd+a>-b(_%JnY3qoFuJ;Ol*k z(KgA_AL)Ydtj~_H)O-O-iP3hSu5CnKHlc;D+@Bzc4P6|KfnZv9+nbnzEZY8P|FV6Y z&lF*8I?bJ*egTmi<)`>x0K5T|i4h*5g!-F!QfF7g4_i?!E%Z&4KX7#eWafAh{#npm zccSZ}6pkv`Ocmd<@r}){mKSENWII7^KxhF(!C!F_`LRBPPh5Uq)oQ45x5|Sj4O?d_%9~gniaijG0hf4QV=|El!-qRNUP)Bc+Cl{wntr;_G z&r)wdqH*TA(yAbCFQe>UqsnDB^*2vn(ckxaBd{!P@968QSf;Ee5U*xs7gpN8b_BjW zc>_!=yBG@$Qi0?*;_#B|8)q08I&{#NDvOD9_A7vxR-@Q9_U}indD33Ajv%Y~_tn-Q zxEi|7&Af=~_R2~S@W9u`wf|Ka79Fn}vl(*{0nGc`G@}v#hyR_yX?b>WAyM_G5MX>J zaQ{c8$fx^uyzT>Icl!k`4~W4rYyJRr6+n>6VK#z#adB~X(s_Dzd+T_f4R9~tv3Z>t z0~dO3Gy;E*8HkJvF6$O8HXetVTaET1yLIII^l{0`+{tpuYemS82R}%de zI`C2gsj~k*aO3>{_vNiWz#DG{NLhph8k(|xm0aIDmC27*RDPRzqoD%t2I@S}z=4aC zG3$IQJpnA0B#;R2U{4wgo3R=)X3JkVWG6s{0;&r%G^I8F@TA$3Lp|KzZyq1V71B9a zxBhR~R^$N0vljt?XU1$Q>gu6}b)%!B2;}7C00a1!O^ZWK6~HbBxT8Q)FghV2K@SWl zF3_1hFzvSewoG{MCR+xBd2$B~UHA9ek?)t#Xw{DM1lzTO zPgyNmTYV_PVl*^M01jGXBL^@m0VYJ)@|qgyx`kHTiMO&S0D8;wxJ9h2Jiy%5p-s1H zBkeQ4$J(QEz>)AuH>}%zxIVnQzn>}klz?8dB7joy#@7Xwz(DfRwONC0H%Rv+Yps^c zzYCLeFUIVTpL2CbQ`U@0HGKh45&~3Y@}x94Z^__DztsdfIOP1V!#%5GbXZMXjU=1S zR*%by$`;T1fX-*<`R8NJE`CA_Z-=5$2`x4P-~j;T-T|J8ffQIrl96=_fb>FyFx zknT?D?hp`=mKKms>8^pHyQDjY7Ni-vbKmjzeS7V-d+q+Qe<(0>X3jb9dF#2K`@WxE zE@G&V<9$Qp;baVSW9m9q=yoVT(?KJiHLS`w^tWL74}TCTRzFz?3gLMIm{Qh+L>HlY zHxChX@N$DL46d5eiknGMx9C&iB>auTdjDF5Q~{4TfSovQjpcC01Emb2#Ye-dg*Ybu z{>|lFoSLX$Y5Ik~Fb-DX-$nRg>H;rRaWy<4 zuF&qXw_szx9x71mzO@?6=y zHQy8VL}leHiv~3r+Jp(QIR*PKHgkKv|CEXeNN?~!$}B)fe~Ncb5#y7x$^-+=hiEDH zCF$s4Efem+0EKb3cex2+TUq4Oyw~PbG&M+Z@F2DjD@f*^sj{d1v;%yAKlXcJq0!KH zc2pnq@+C!81+n7G^8dnsd<7EhSvs0Z9Z>)t1?9B!iE}&6I9z87HO#%La`Qz$ekJVJ zHd1&Ds-|HA&i*HNcV1lngKr*$j<&BMXK)i+2|u`7!%V^zUG(dDrSK&p%QC zodm!yscZv2vpo0bwZX*3{`e34=ess`$_I};SZ`rs*a@I#N#0=&hT%}MTK>$pp&N6W zULHd)MCRE6qvyM)ZHC49yt}CLF1k~-_<;xtov!Q~`?v3bP!AeaH$A!BKROY{16?lo zPoAice#DHLsD=5CJbK1s*-qGx7pK^eDp{TF%@~yCPp?e50MWE2Tda)SRFF*_AAVGv z7TLhZp-&V(2CS-#udTf>rZoSHFCRRS+O4vFUd4j;GVRB3VIGG14RGOjWl+QOIvAfS z==1fnazo$+vF&jJpqHt0(phgBn%)(+hO{mfH~l*Y)}PeV9nF+@#O_4N^mz|nFcXF+ zNSC^_i7F^O#TC3D2VBWNIq|v1S$#u%nS;(F z6WtPg2!_5iHm47NHAx%yTpDJ3GsJQ3yd?L98_-UHss%dZQVaD_i&QYtES&LZT@zg4{j0{;wv~pXQU@hq% zb>wVoC#K!A#famDZ&l={LG@TtWpaMh)~5J-u;)Mf>@HT9gNm!~KUFdGK=bv|pfD|3xRI=`i z{b%3-#W>Ji{L^KO6^xh9(se)06r$;lYo1varM%qTgTqLH_G{j8SODo}mF(VZnuX-4 z*N)X$>0G#%1;53&zJ>wKRylz`b1Sq1RBRn$XFXu+34~WJnNx@K zi(bKxaAP$Fk{h4HuSAYw$yQE`N@l~;?CMYTyhkxIN&TlWG0f4I&9WN9pe3b;SW7c!C04U7&M*Epwsbu!hjn*jr}W0TnpWEA zscG4u9}T$ZMJJEF7yb0LCk&=7+kQtoZ8VXgaZrEN(9?D%c>2YZ? z#B|TnFyb`i+z@dR$x|{aqlGeVo8abb%yyl*5D`vwtN9$#HxHj-R#k6U+B7;yUz9*# zMRdsT1)M*R;}=KaC9G8rO!aRS=19d?nhuj9rY4|ps?U)|eG{WDt>m762hrJ;NqXPE zw57#2EMK*{Xr%V^JxfDG=Tp83sCHlkw*g}SQ;~@Fdnow<*X(;;0nI_vwMnd!l5Y8{ zH%x-DJyJB+%!IS)1S5=t9!X|XZ}xv|jnHR(R;i%WVPo}uM=3Mv{PIJLfvW7{N2_Bi ztclLyn%h<*bG0~*EPZ2z9T>_nwEFOT{EzL=q>F+-G8-EsY};?Us^<3y*>^r#^WLkn zQWW>7&!!u1J(d{~vGs;qm%%+4;cV}yn2echS$kCFLeEPy_ANrKUi4JX4a`0f(SBJE ztUES?hLdg3em%@;^N$P?3i7%ba9H{RF^(Q_?2vQJzj5rZTqyokQkiQQmrUYuPs>T2 z0ZZ)3WJx8X#D5lpgiQA44Hbk&plVImO#FRr>BGH9V_1Wso0Vhnm}tWJm2`rtjrklB zL)5;YxUBi>VB`#gW5a>3_?#tnx;DF2TV|Q@c$OqPY85=l3%9|YvdDw&SO!bxB|YPe zG84vgUDjMxV?{MxN9i-sTRJx%&p$~7d3!Ei=szNYtA$}g;uHq@e!p$7h6L~E^Khf* z@%C}DZRRUvrPz4i9QL?@f0rwvOy5I7wm)E77*Mrm*MtP8llASTmUDMGH|Xe;B?Pbb zUh3i+WhEzc`dXT@4c9l?Zvum@Ok)x4(p|sSdmee=mDc7ISJ$3Fto0b|iyoX-nVgkQ zTvPPAsg`S6oCpe+c}15O3~#@_T^@O}^t_xV5vNyU_fupIaRWuL&JJd8x-B{t6+{1P zDuG3}m;OyI#)e3Z5;(BG`09P{?mC;XdaRIdp+;2jfUcns0v;a?Tq>4f6%Wnopekqk z-FNSlD+#GeFy453abH>Y#t}qg65ro#)ll-8h*N{%IZB!oqfSs-%3O8Ys=?~1k)rzTM3)mVr(0cTNf(2cA zzdf4;3G35aHm2xAp^)yW|9|o^iwB7b!_kEjH}A+8$Njufp8=nTmxJBL#T7gHPNNP9G@eAwg4JNGmLmTDdmM^w}C zaR<)WdyK>)CzVGu*@}FZl8i?d&T0#5({DFpHmnj%mgc4>!lD{5=`o%=oBF`SIrmu8 z1?6qDxy&k7oegSqXl#2qxOvMWQH`z9Y4{5hH4)tB>KPJu$JbxqSbPFE zlxW=|jSw1`aSyc;>f7{Lsfo+1#w?%tVZ_xd`HW~(VP&@mvRod44Y5PZXxA7iB^x0g z{#dm2DZpZ79J9CPv45%zFj5_k!i2Hdb<|FPiR1A+2|gev)bGtQDEjYu0U6b%K&K2-R)Rg(r~2%ZQ3V#n3 z7vM;}In@l(>&=R5E7QrwEy&9~z8cAiyT5>&qGCswN)!%VrJFxeNMAk(pt@p_lRcVj1}dhZ$k4p*Yr5nHoN8T2$q`dSo{U8;EQXuXZl=~BChbAPEGk6lfr{$ zexcX?-s#+^`L%5eAF8(b4Y`Lm`p+tEqKFBJ0Cg%O{8T()A+~FGmU-?^P=b8{EJEOF zfknwUuaYGRa%M);Hv+dFwg>IO#oRwzH2pc2afmngQ8v!n20nV{;rXo?hzk!tla0)DUtmyHT*k3 z2I9+$W-2V)U%E%FI zMvd&EQEztwI}ZUbM`*!XP=1xO#?5S!Md=bWE}Wa}P5u(pcOeT-bzEs;)#+0WiuN?n ztp?+w+(MPdh`R~*DBvXqD;q(`?v-&20l_c^Up6qPXEc1%zN|!_G57H5j&X`HJ6U)r z-Y@;Fww9Pmn>A1syr65HCJ%XoWW1s#g&?r8i-b8&H4N(ylxHc_{A&BBzACWGOl@tdi^+l}dzl4E*cc&AsBSLTQ8GdF;d(}2i72TDuj1={ zx>l#^XIvlF|3*uS{sW&g!jxoyn`sPvd1(m=4w0^;r?Qr(G8(m&GEv+nZD1`~P2a#j zx+=_tMgex1Sr2z3tTS3t`7h}Xk1=F+ijRnRSXAQaK=9Y`O0TM0`#<#WW?K7xqkqU5 zbF%WF>ZZ{Yp768fOx-yOMTPi>-&w2H9=qNMY;o4lLji2R*%&NkXL?QtvLwD zCroC15oAIUx@D$-q5^Qo^XN}XFIGh8XlU9xI*?smUFR1TVy8iArank=G7)X8q#IN& z&*pA_9q>>xfserV?`U~kv9>ZA8Uz6W0U)SxnAUN1p5qA#&1dbmSCyymH$&Ze`dlrC zjt9v~_A#jRjbNxDy0e+t=Hs12wnXU^ez$0VIsVz&q7lw`0(S2(2)LKC{iWf%TkD0G z={g{EbapHPaGbU*FdkW{I~{2?V4iFaIPhEe$_g zmZB5|4416YPv8~ckw(G`ZEj8j3`1b#H6dDp2gqkUfZO!F=vz<_D#8$Ke<|G$755n+ z%IfRuM^0(z=nMiSJpsGf6Y%brFTc}?DC(u8r3bofd~1I`>VecR8*qUysf$V^@~_1J zu=<~!9Vu`wpv`*z@};7Z(zxO2^h-heOfpmfhK!)su*g!@VRR!7+ppjBxe=UOPB5tuV zGlL~_+JQc*Eds^bI-rH$Y(pPzbNGji@Lx2M5Q*#Dv|&!RG-J zHgJDbfZ__g+yGzDIQrH9d?~HJO+DCvO*QwGyIEW2yfS;cq zus46%E;al6``hi!^K9?z0K*4*7!c6LHxR;mx*$MjCDS3tkXyWb&>qhMr0z|7B~Kjr@W zoN>$z!@u7^@}ckKx7@wZ6yZfDw>b;@gZ65FD-y0W)t9nOVq6s!=CwfGn?F!;l(X1mDFpTo&e_>DX6>V|IfTA= z(HKWorxbEvBt*oq|DS4EeiI5wjUNWCIIViUZJi`Jw9)6&x$){n%P8md|b%uhZl3y)b*N8h%HjX7g11O2 zri-}D{I9z+Q{Ei#1iaYHiUdI6%GsQ4Pe+!qis+S_{q9en1e^&10eb>1m+fy)kPs1_ z#JmCQLYi^CYqYN!XU@bb^CtC!$hSuJ7l!H3;uyyE!Lb5-?eDy?71RO{IxFF1hIdvN1DVu}hW$@T%gqB8px1cl6p_xs z<>nD3)6D)e=HoOYFh!ZXITAdXUA7s(oA|G1(20U7z%0m~uoAuvhwC2{q6ysguMwbK z^|Y?z3_w?Y5B@Tm$pCDxQo zy>R5MO$ACMgL#mwZI<=_bR7H3Ek*J#Jw(2GCT zL0hQn)yy-UB{Ja59dVk<3$s@YXESp$lyw1$(Z3;PU%feI#DWxg!~bJAavEYchpsA1 z5*#U~WK}S}1(HR5m64ISrUJg778NBNr1f5x9d3OIFkG)h$4+8rSno>wORDfoVNjWK z&g3La*NTd3&}NRUF2UzV*P2zmxSymkp8;=jglY69d-#Mz6RTxD7@?u`LPF_av3&ac zxqq3hmMA?jFs?ypr$F8UffD>nOpF`x(EcwMpmw4FgfQZ{a3}LU596Q8iI+=rSN1)p zaaxiS)6;ZZKe!VAz}q!JnXtB$(Yu>1XvSW?>Pf~r8TMSIr)Ej7kzyKv@R@=fUU+_b#ij@(eCnllhF?RhFr z*CtxHSjWj0>q}iUic(d8sa0v57s>0+=?#vmQvS} zkhpXuFVOJ<&-O|!06q76QG{m6`pMRK*ee#_A5S*8ICyP&Lu<79?`?qv7=jjS;Vd3x z3LZ;sw3Ay{MpKXt&R<9m>hVeTd-v-E?rfo+s3cyLLY3kct_0i-te@n-z{h{{HAuyQ zH4Yf*fW6NcQ!Va>M=Ty8VIhA6yOC1qRr_ZhGqZOV)r4S)18XwlnYp%nSJCV5nku^n zMQO!BrakD_g2Ya-YZVEi-|1v~PWuO!0e@W^DH(Rkld7A4JbuHcO^&o(u=Q6C zK3@SA03G*#PHz++hS9OGoDy<8%DtacuIWAFqnFS)hexJ60u)npl8cXcXJ@B>xy_GH zVdu+BTRCdM+L-V?+5ZbpsxK`!Rk*N;zTdsfp7Qu{06o$>u)D1wXyM&7<@Uw9;4q*lAhaVMPU;PeDlAD-s8pl5IV^7yrye!5-3QrtkJwR;2n z>4%SEPmF8Qy|h>rib5E+lA^#Xvtz6P<`HK$Mc$Q3UAB|{4^rGcTNiM!SlQ6>W4COm zgi_+YAZY7*Eya{I#;8S9Y@J+FQmmA>G;#Oc#G1jx*oal*qsxYEJcb3IcaUR<6|JSQ zLjMtbjuCj;2)q9?Tc>ONg@NpSR~ttz#N~T4|IJKL5KF$uO08h|mwi)x+1TQIp}n$$x*yc=_ant;p^6tG8vR0zmAOczE?)Q+X|NUMXmYls8f{3i{ZB z@S$PFRnoDku8ORTCmeAZHe-d%)CEOxCrVaL$*~$nv0DA6$d`|Ylyrazd=aqdK=gIr zlOsiqZd6WhB%OxO6QpBQT>HNi@!0J7>-Vh%zBTkxL?q~s*lP86X9p!KN{GwqPc1(C z*<6#2Eg6~S?nJ!0TT^XpmZ0OF>uHcHDAFE>@smB>*;)1@T95!+$pGnq2H92?MMN~$!DyF!kkq80B zhsY=(Gy&Ty3_H*7s6^2Zf3B6u{(bWD3tKa(Ou;YQ$bCuMjAItx?NR%3E3T`8!=Fvn z&*9oqxCx~CqR$kFi2FxWMa+&f{W?Yz$L?~8X)1^?&4_x`0A9N5k{+r$ez%=6{%qZj zVZtAKp`+BHRl_zX)N#VQ%rFJo^}+`MlCUI#(9grkfRv(hQVOAof3m__b3G&0e8Up- z>()k<3R}RzL5MHnhAeWikyH=&9)M^iXb}`~$}Vbwzvh^eYcFMzyK{Ku_IDMTrV$`o zL)=2_p-w`r2`+EYw-T%c-4U03EE3AtC#64s<^BErr3&mEnkpYH)RxByGncEWp~$xL z&+TRc;FEDo5Ct%U@K> zm?--05>)q&O_>0O#O(G^p+LrYMhT!d-cB!%iDwP#YVGTFll%gRh)mF#!bo(&yW zU2;N$3$8tS*{ap)Fe{Vmvq<2hvK&nPa(QF=2vbY#Y~L#R4Bl@ziCM($@K;OM&6xoh zxh?3*X<1lUd@;ED+I(|_)N;G9|K*^q4oA-)zI2UBn$WS@+pDaiQeiQPInT0%)7{gl zeZX0>4rcgb-Rh9rYoQh^!St1}-07Wyk`hWLrZOpGM4xmAksqT+mQ8b_2Ak=ht+mIk z-yR?{eriG}Uedje$nH)iUIV(wtY8K~Oz#H`a{}WWV-R3EUEif1cHjz?uUu{ra9X{h zQ!RbVeX(-?v&nUsG*?cJoS9i(!xfkX9<^Mwe{KQhNH|`%9H9N`Mr5oe0oh3%LX{fW zjk4%VsT(4=(IU=b>&`ISon(9$xM!21_WQmA|RfGVPaqy zObl|lUi8bWZAnVz7vEHj_cSy#93Q-iJej#m9UU2Y5BBUrWCBT+rFFUDI~I|DxE6nd z5SZu70Xf)1J*IDpOZU1$|128FeG-C0%Aat~TBBW@TW`cp$fM;E2MUp}bnb<^stF0L zY`=W*!dbz6=c7jeB!m1G0Ul6jQbGbl=oA66hx?ZDaQA4fSi8daq9HGHe2d$8`#D{j zciPOH?VGc+IrS#@7aK#V$n+1ybafdarh`Vx%5TAs?EL)lkFe9z)9h^em2fWIjeaIv zW(vkQj;$@(of|;mnyGUPQZ(6x*F;5Cpl6MuwI-c7k$#c{=AU9bUTYyQtYFa+;9Zur zAwC#5lvQxt%R5!JhiN~lUCXwqtN;GoJ1m^E!xKxNd*Z!|goP z^xEh zTrcskb8^z|TZ4L5G2SeRi%rQ7h38JoQqTYFE5L@*a9}eX&*R$qD{!qV@#56= zy1cJ79Q&|#JKW!|QhJN96K~`Ws2DYTMI;aiD$|V4%zOu*J{}g@7!~)UPCP!=Ws9#pYr!T=ha(}%jA0LiHLVw*NuEbKKU0hJ zwqDv}mOY47n`Slo{RF8J;#zqFGj%g)dkCi9i#fgf_QNs7sZ!5yr93&vR}DhXo9iDZ zt;oAeE$NhC9Q!$vt<-I(9ZYE@Umin-k8VO@akg>+L+R!)@*XI(k?t924PZy6TV&5a z_;JWrlpWt(9`7zdf;1y77c&kgH!p~FXIC0fJa?t5mdEie1^?m}Qj2A4<1K*}39xn;RI-jg1$ z=amQ^d)}IVP!QzqlbojvU9Q@Ezj3|qqOUT#SX^E2}E2*o$H&~ILYP@&` zSUDBrc!W(29R#I_;;&@MLBmg)AGf9L2*y zuAs}4aXF34c3R4hwtYVvW|~a7T5i^uE;l=HzX#WWgkm0$=P4J`QrdD)T8E**${NzUNG99moVS5kM~)=IAoDd z`$`SGg{9NeTKB!K-+{G+5xI>oPnv>i{iQPP3s;%C(9@l1M5tGw#PR&a%cGhWp`Kyy zJ4Yn1>rLCstD>@$xYez#;FcC48yi}ng5MmkDXWwznmp<+Py(Re%1MEe)k1wN-+oGa z7y+A|t1I;%wU(8MEv3J^vt0{^al!J9jZJkMi`TDMo!;GfUX^=Zi-T^%WE3% zx0mz+AtOhSC{QYF>FzEi+BfOu3u{h~)TQeXV<0YBDRG%%9gEorIcWl0PkM2Xe8iB+zlR5;`K6d(5h{t{Ug)i)YZ*V!>^ZXJ}=E< zP(%%bW)1c7fQxk~Q}c2buF&$_8}X6YpH)1gQu_Mjx>Ffb3kywySH8Z!KM6P%=99hD zY3QyI_zNKKRSxyf5!u@A4LS5w#Te=l)IpS@?OyMmGkjC1Z+O+b;gE6BG~D9zO-b(>*?VP zi~vV-jY_m6Vsi1@f? zEUfJm3D_7ID}Q@qCej4@yV7m`NsBXcfL+%HVYqs`uuAC0sL-+Tz=3XxpsCSPyfZPs z>b_G8ub+SLO8YASoC9ol6=r%rFp_?!tg)Y~_-7412=)-KuEu}eoYk~AqP5nuq7Q;T z@k!(4x!m2|`9SjhBWl@{<=%UZnKPe-4Db896mEN8U~vqX%nuN)kSCkIr&#Cn;6c8h z??~(>7`n9$4ThY_1%-u~;OGTGWR zw+CMVr~q6ROD9Rizm1Go=9iY{0++NpRqT!7tg#7 zX>o6!Wj2z}W`D=&-aV_JVd&#`RUHpFc_0=+U$+cVLH@fQz{FKn{_t7hDPm%)zufqG z)k}TDM~&*&)(UjL7Y7})c={ZXe!%Y|aGw#&{9kJlo?^-r>vBw+3$5ZQrAlkr+mHa4FO<0~iKD+G()=(ah zscCTa?kg&59GIzC)y_Q@xfT@q2ZIUZNck++iM`pt5)0Z`r6$ThKGxUMKsFstekWwS z+;k)+*gCj%=Zs>Aulb|LAvR>~y58X>yoA~(Y%Hy`CwL6&nR36qSN}4m^PO5Cpp71$ zL{pyZO@^Xw4E!1DZCNg<;lwja%{M&y+l%O6$y}xfp?p+_zdLXh)YO9FLzVl$jt=ix z=AT~b`=FbfuX)!W#KrO0y!hpqbO-j+Z^+sMvFtwy?MmEUpKr*?F|_xOhl+b26LFdv zF?*bqZ7sD3k&>pRGOFb$MsYh*VZNmQyWqM=b+=d0c-Xx|uU`J6Gm%Y82DVENz@p5a zh&5B8Yl5h#C^#<_Cu2m;aP}cslkD$3&yS{CZeVN8o>ymUi8;e|N*6NO^zI=Z`-yF% zhCQG3j$d;vet82DABg3d2luW0^iMt@BCixH$q?Q2;JF9ZcGxyX0j0RSvT|qA$z)h$@aN5ubg0g^f0%ErfwOg3 zMq4M3UofxV=oPbqDRY$T^7HWS+{NtrW3lGpGF9l@{?hiVHkJx{53U&E>z@N-SZN;a z1QmuEZha=8<@^T;=+z437a%`{3fKYNOEFU=A7ne)>mx;J*P7Sz$E1LbJrX~i%2GOTh>EQ)tP^m!Tn8|mWR0z>_-`Fw*mQsyY= zjB{@p)j(%pXXiYaNWY7xag{acIv#$C&*hVMckPF%$*ZR=FreZ-$=TSuvW9W2wiPcF&s-(v&ly9u=EM_HYTW7{ZD16GW((3^$y;7kSJh{_I^%uFAS#OuKqehE1{Pt!Bef&t90yl$`e!Pdt1!`hvLF zPVugJ&1|uzD7j+lJy+x!GMfaqjnsML0Zo3UDM;TPjfmnNA4a5pjnZrF;d43a^nKj- zf%@MRva&syGchvd$Ng#HYw;lKPz{Tv*-45_`A8h8CdgB0sY98^*Y3vI)?EaD5J0|v zgia$HNF@BJCl&AiGR7Oh@|MbH>jN(%_4ddE3jZIq+zLFj?klV_<~lR+qJ02Sw>Bg| zeXH61CQh?&Sclkpx-@Z9@&Wbgi#*fD{4m3?v|21xke`qm!sv0D-3;!ZsZ>HW8y%Wi zspS7}iRg^Y3l;Dc8{#A^9`2T9sNu2P{HFdap|{@iy*W;zm4Qt>m6y3pfR1JkWl7Z> zEboh09{Xf5o&J@)H67}#e+J3uP(6xSqD@W0vl55m>u(VlBA>oe<7cL3XZ=rluk@47 z_S2gaEIlw+i^`iT{bs!UV{2}zGc4M+W4~T`RV(XW=1v%Z|cufm(`=6x;!NHu6bG2 zkKgC;00-u_ix8t(zRdg+j=RHbZohK%xS1#+8uC zocANK5Yypj&z@!SH|os)Xjnk$jAk~()cQmY6%|mSc+050&TMJ+`&O=UcdKIRc`vcS zah%3^xQT-9TQ*cpC2IWb?IhMo-iBrfop zF#Wxgb`T%Nek=X#s1H2mOORDzq;E zzJNu=nzNkk|cc1kx|ue?PuU$;5Y~apq0$jP9I1dh`esXd5xOK40=42643&XsA=Hx-dsXA4p{|D^E0~s!$5(1TcL4Lz!a|Q^0FfcJeHemPH z6v#){690Dz+9v!00tyAnpqfP4r*^}qF#mjhd})T}+l| zzs^v}fe2z|MjdE~rhN#(m&lP@mn{_9OU*=)M%Kq{j3lk7JZ;P!G&!A^l4Jrv{xiUn zrL4n=Zr{LOS`XT~)wiYsJmLs*#eu%w zhVKiyzkQ?5b^v#>=1g95F1DH>5!7N(eW~G25bFY))wiB&v^FN;+Xv98t=_`|qNLdk zyHeS0&Df8smChaxFWqw&-_RY9 zw8UMr*m3?Xnbz883HP1EZqWCjxNM8Fj(Ob!nXz%(g1*|hd&cgZ8Sp(gnBv{L-&=w}!?d^eO}-mEDxHXQ5tJNFR!kIRVxPS&5bt4O ztoCO$)6?7-VQ#qH?Kyzu*$u5zW|}sN`fQ-7tUo*4EK2pB45&gZp8VPBZpgzs^Td~M97BV;E2veA<`vMIaq+pNOAd? zC}GmaanyoW@fVxBWCVLGo9vv`3aQMiRpMEgPc(c?l{#n7d`b9h+U~E2i}ZZgTWa$> zP=RCIQNZ^;6*p&J|E`xwK3w~8nx}g)En;4`Fu_D|h0k^YYR7|j2a1l3@o}pht>w)E zYHoH|71@;ytXK`T-GD9|J z&&l7L4zNNrQd*IxaAe4?0p68xTOX1$W4^=JaRr3;Unz_@`9llU=Ql27Y{IXz5Bt7u8 z;pctawBA8IQ}$$?``)Zw7zBHPE%=jbJaq~mFm9)$qy#l!Xm+gHmaELi6F992ThiGh zmb6zpFsD(uiM7$TA!Q7dJC-{w80$>1Vc$6-_SlJ=UnN(tc$va(Og@Sm%C+;Um5EHX~W`203bmj z;vBM$eYk#(j~|n0!nFCnTmWFJq>;D-W4!)SAM;hmo678l zWGX&37GN_n_V)dk+*+mtZ(gk#y_5%urI`aN&FfZbpi$bXj_4`2&`SkW%Lnn0KuwPZ zXiwDYNZMO9{0`i47xopl zbq{=8MGms$?=Vs>&>+H(1>eYjY{E?wNXUF$FLN9jXbrRCq{EHr&F244PJLv>{0hJd zeLLml+4+ZVK4 zY$^B8nl-RG)LgZyMP`bJCXZom$L({Jffj(Y53@dLGIeP$o#VgUEGl z%=s;kAg^}+>21^Hd50g()vvT(TVmw*$Ge|(Yw5B-+Ra8Cqe$6t*xxD?4iUz>``+^B z7jwLW<7~r+hEP!*W4e3Hli}x&HLG@9wdlTFvPr!jyYiP`ygquq^GpQ&?AT7j+Y(Av z>Us-xvuNGrnB4wTK-~fnOoXmO*Y$kK_b?pP{1I*KRk8 zx>@VsnxDCX|=8rI_No!7_h zx~I)mBMGtqYuO%N%>wrV%1v0LCd>rF-lT=w48vFM+#0yyCl8FAPa z>`!sZv-bG`R7M!z7Lx+@|Diz30NCq2l;c$v7v>_x*MKZPNni4R-fh zIgLDq-^Lb6mN-38c#qt+eqYbV#cYH%p0Ck3wUDh>ktQRaMqAK}pF++gxu!vMZRJHf z{9uMc^njtA8*b1h;C?LaQ)lZ*hXl_D!yCJU_AQ6#wnl|gppV?Dv8jeQ6E1eYkknXs z)D$(-{SRITw(4PkZGEXj7Z(mY2N1H z*ZH=Nus%cb3mhwNSPsEktd!oDb4MT;#20s!g77gVeS{C?myoZLV%G^6n{*6onp-# zm6k`%qgis2zu@UdriIJtS@G4$DPzpfUMqoY`uyBUT~OOO?a3db2 zl7{7SDsrBiy~TLruGEU}Mf3XCqSI;41nx{*d3OgZf#{K|>%WC0rL*wDJF;Oy%|;<` zkw>t@++gnA7q{}m)}Os3Z=px38`~sPbF&Sn`X!a60_pg3%_NunHMx3Bu5of0xi#@b zU_fe47(!0<8R+u--@zqnM_K0}MLY9xHKB6VZUWk#d+;SLp`D#fvTXvlaNNA%geuREOY z&Aby4k7nTQpW4KM2XQKH$$)rAxPksv#7Xyi3#zB*e5ws3rw=yoma3O$^3lqcr=&Wk zNcT>l`x+cxjXc88^IwwGUaz$PF&_+)xUapvk#NHe468%(_dK}>;V&L ziDEaIO~oV22ZA>K7Y%pgD}{GpJ-DgebPw`Om3d_3ZLMA1q0*o;spr=HUXSctbj~y#oln6wnoIoF985BknX+~YP){u>_!L*e z%gj~Up;zEpjjr??=#jZ%#00%7hyX*>)k3v%k2bFeECZdtu%YZDi@G*nf3W9&w$z6;CUGs%$k_mSSw_!%^;)Ka9+}I=io9f(X;{vp`L*w?1 z$X9L^TPHJDYrkMaj#7_#?bB`!z5Q)RXBrDH>ftZo}BYig$||AU4B}J7W+(_IkJmg)vzdIka=*!HHHGgv-l zz*DMWc6{7uCcxS2x$wAA$Eq$z!nnleF_|j&*I$pMm^wCnn(1d1U^%3zi1xIZ zJac(9ydiDN#6>AHk;bra)B}lY9h!1<`mprA4L9xxEU{>~hikFJmOoc@FB=2FJPI#u z;ZfUHvi9pW=1Zw=fVTau^wNrq@#Ni`>&m;xg>jVEsmvvxHy11Tu7S;LjK{8a=qYq! zWj(!U@8!yVTSbys#3m6^|BSHODv?fwjvu(VcZP?oE&So7^}lqcVTpTCHWG`Grv;y8{9^N&hD@C8iq#!=UQ)Nt2_FViFF$Xm5K z-?&W}lfQ(ejD4{5JTn%@yT; zH^WI{-qG*g+rq}F)`7nxHm!KTi~!o$na9#hd_Mc|PXGVh^V(O$p5EoI3%q zRcfrT2qJiEy?SPY1;N|VYMY*P;BM;uu9aqYPmp$lWz@ek?W zOgDZvqy1gG!J-}od%avVlk#o-cZ`d$**_+{K$^q~()IL=bxn22nh}eP^>{TmYL5$) zzQMrpVdP=vY2%T4DWMcb9I3e0<-(d`OQgP<_Tc$?!${K7?ECLU3a(4y<(HKpA|F){ zI4&8$nn-M0HgUU<+ln*D!jFdpOFKx;E!N~gR z7jKSFZK!!IBBtf%`j5*}YvE8AF$|vTq%)H1s?|SQ&!%bc@|CT;!V) zm3H;mtIz8@eF{eODd^({b1V>Z1XlieU8I4<=X#3A*0gAM>_b59Z?Br_ zhc$W4?eK!K1F+)+3$xl^?52NsBBQCm1SrJrhe0?`AKC2cQkufzI9ghstl+3mg)W(7 zgcgh$uVJ#PTp$k*qdX_*>BuuR>#ZOyk_dY{&8ZQ3JCN}Y8J8FY%GQ{pu!r5V5pL-& zXWKHS<0HhDiG(H*zpJGrsx9+6-ZH-&4K0c3pP7Y-Sju=>hpy$GL3!EoVqHBfHe+|G z!f`#kvSO=7NDsyqA|MV>&N~F*81VLp1=z&OO_e)Q0}bM7Jz06Zoj4(H|FM=>QPi22 z5iehYv>{F9>2f;i+f+)7y8keGw1BH_gXui^{i(d@mW{z&`eHFUcB=(d8(Kw z{!&s>vgVtWoy7bhEx4h&ny%FAzox#vzI6s=B#Xad|IvyQA0$72X#fYAHM%vsd~d<8 zG&IP;^NRIPrz|L0qi7_c&!9T2Y?iM;x;%-0u z_yo*xAmNAALN{;tAhG!}8Ia2WnJ!5pfNoO6{&Lfebuh<*za9gv8FfHZgXB>yl-FtNMQPZeO< z0flCtNl46@O!^z8tK?N(mGq`6DCoB5=fC=o!j=1Sjo}{v%q{_Bv%3@6JTCy{ixw&} zOygO&N`7;`EYW~^$23{*d>`U9D=UMAX{-eaLz(msk6Yos^ z5wNOcnRMDP2kR%z+5?3`k92`*l@-)WuiKJM_wY%-D6)#;m0Rb8ewTOkJ0>5R#`? zUu23)fLE$xejBtl2V#@o5(8cXRv@IgF>VcZGw!&vCkVKrfC*B!fuZO!XE*N$T5xT(@d9IR(6(6X^FG@*8vMwL_bSV4NI{Y3d-k(!*UpINuG z|JlN=hI%XFPqz=0B0sGr=fM_d#C*;=c=}(_i=+J?f6xZllQ_%c#dp_Em-KqZ8tUq8 zAW%TflWV~b=}D@f6>|Ov%-*4D5U?>}@UB#DHSMzI>$)-jxIgV*v*p9XYqbg3M-lW! zlkLQoeaplFm)WZ9`v30z$kE>U9DmS?I!ey}1oeEYUUoGwUfu;)>K-pfU=-`uQ+xp8bYY1C_SV|Z*Unwms!lw*+(`b5 z)?ob1Xt0(ws?7kwm?KahSCR)qB8X@Hzq_plee<0sic?pkTupUsmaO`}+E)AuQ7%MT0`zu$aI#&LO? zNPB+xBp)BUB0HXX~`OKn`I zhkG~Id(5AI!LE;<89jW9ew-8a(J3CHk-vXDF_AM4_CQvt3dvSf?1%7aZc=d*FI#0b zw^OhQ3vM|iQe&NQ*d2glwEn1ko&Zv8oYD_;8FT<_YG6Ry6?uBN1$iLoJ&M&bDHmek zLgsR#+t1T4+BW&asvtjqf7Ap$t~7C2K`hU)5tIw%A<><|q=G{D7a3 zxLnR)MRtB-nCy|a$sM{?5fZ*)F8i!&xGS#WUszIn^xiwGRJqhac@!G#a8t0n_pWSbu0do}Xx`1X-VD~~ zFubP@5)J8L@7`SNG{&<~bSxd7a_A=kPXc8Ij#f%Bp9+@afP%d-oHfv|7QC% zVKs&&T$?9SpQ6&CLOi1~!a(W(I@;b*0`$tBcQXc7UX^z=%|J)LKplx|dzSN<-g5di zCsagQ2`WtH*eeIt9$k?q7BgUF*o*NDMZukiW8Z#0ee#A=J>c?XG0)St25XzbW zu9)|VX4r|azV7XcOuif;mq)y=RJe06XhQ)ig3k|2mUr}j@xC)M72IA|C(LoGExSwW z5okb~9IEtLc&MFbQa+h#b$MvklmYFZZ)p5*^zj0f#qVM{$kF6Y(BsBc^$f^Xb+>3(T?hA#ZtKFn496|k z7;j>jB~I8GO%mmF z{{eB_E`7lP_NAwFz69Wm;^5(39F}8{m+%;KPB{J%nOn`M0hm_t({k$oXQ_vQDw+K&yss z{HY+x;d^c(`hN;mJ#lAOmhPGqx7fH3gop!3PQ#LWi_Sy1UXYN~)aE;U>h+}@DelC}nQN!5D4ounoj=5M(&F5*M zxaWULMxu4Yk?@8jt2y_lF+II6pa1>PRij?O96Pg(3DX+mS&3mPw3{K$U;e}4p;=Ke zfO?x96=F&EN9fO}Tv6A`&LoUOW1Jt^SiIEWQ4HUSFJm07?o~R^{-nyX<=3=lv|G5C zSU-KUJ{sS()5}khA_k4yidCd}Itbz@pd{gsWE6eqb<}#ds zlJ2w{mrrbsAi0zbDmBXLs{XD7iePP>SMeT6^o_)!9IypWk!I>=45fPHc;_?|Cl1)% zG2_m2UoggQ_DMs}YSu2~M3N=OS}rM&Jj^&5;k`&>RDlla^35WBYVVKS7w^fod-|@# zkew6HnAl8EOD5#LRk0HkTNGbyl9W>T9m*y8GT!Ja6n9T$c3OKPWbRjZ(qP&4o5g4E zAhpan1N<;GUDm2+-|_Rnb~HAz`X*!%CLw0}W8!-gC&I4PgMU>$(iR~`B0&-Kv()W0 zE?wNU&HVvO>pTf6cP%%TXEmeA?~%96C5D~4@|3dNoaZk!-q=`(_3xHGfn4iI2MJ$S zTz4C4`l=5PEbV22fr6qU7&B;uCSZOMkhNLPIqkS38+Jb&j?%`k77Xkk*G1p_auV|q zwx~oTYHM~yXVjw5AA%x1nWdb~yiAQIoN^C$^Q%02Twp1ISdoL zJ)&+kj!j^FV(CPVSk(FfR@l*vf}Zf`N;VbUbqhJppcVbd_WYf2{og@?GnKKlm01os z$;LEkcnpi5Mmc%DCLM*?v*}8;7u%m?iHM(^&+-g8p^{m|u)*P1 z&e8`l>l4}6MP>Hnq6ACnLj_~kZm{E>qdeYYkwaXyaFvUyN+`tk0fwNX6UQkw?T6_rN*G^GEP;q_19ZM$lGM(xr-PJgyhM4YWFQW$azE~2%l&8dx!)47obAJ}6cS5TD z{opIq!w;p3yG~R-KU*p}7cBxmt8x<;rI@QwT6TN#g!w};eMqdK`6}oN3IDfk&7zzJ z-S00K%y?pE?|(ebx&1BIKWyzT}|)1`ULj>Y}ii2f?)=CY@ZDnu{F}@?i(W`6@Fuf z43*|d=8-OM;td?9qi>rYSG6y3ezmfrK)G;p$`U$b_@}9(#>~$K3tTuc@S0@w z>sk$}ySw3LWM^B~m4;`J&~!X8+JZi%^sr?jkZ^PDEMHC0+iKdxhvaI8kG>PBb{%qSx)yR^Z4#|?rd6K#$hR6xLx=f-haC-Lo>CG z1bQ9Zip4d+{)?1g0m8c{gr9s6kf`t3vkI|Uu~K)W zZ->3M15@sD-&gD^j>FAEU^@;pA6l=jlAPp8j9`#~=u83sWelxnkvR57tIa%F^qSf! z>D+X|C{)E(w;o+%cZJ{7O94B~wr_}AT#hmle}Rn(z4$^JeCf4%ZQ|J9PqUJk78K>v zhNa-MZdtSCesq4d7`UL3#j>cQkQHcx`9sUL_tzP4= zZKfxVMqYY&0SjXv)vv;E(aE5t`yS&Hz>2mho`^y zQb+4W1^d?X9+!IP*2#h1oP^Px^wco!@fom3>QXnr;>_-H$OP!)bd9=?Uf=P1=tb$+ z1-`h;4JXv|inmOHD|eKmZ?5qt?8FniS>{VxNCX(=+UJ}f3R!wZMQ2ZBypDtCi!XI#5r~#Q?9tus70!Jmi-o*ljAXVQ?P#&0m8Iy*{t*r0iEEdJ>&VQ&2b5 zqa29I7KG>4R6o89F&gK7a;2E(B@yvp74A@qn4_WiT^Q!bw4GCSzT1oKc~gM6U0KG1 zY*rO6LA8klpPkt9ByO^)lzGT|xkNYkMIB=fq3(|-`Ru)M_q7#)K!fBV0KzE;_68P| z@9D!M6UOd-x?AM zIhRXlYU|d^*=OFb$;6H}YEO2XMiGX9^?ADP$#;`VxT1x7}hr>IVu&n&V zc&AkYlAnb!Aibvr3xr#Lv@JT-!}#hRn7%Xx&#y>q(TA| zDd*#2bCtp-PnP74mag&~_eQLvj0p@pe7&h9S%O`??ojRn&$`Rm9BoBc*jmB%GxR@8o(b?{{37q;hZT|{hho4&vq z^%!7==9Vsp>nab6s>jFU!n$r9%qL2L$x(qo`WXAq`UZ;Mk(C!Y`ZJeer3DQnmT$Py zx9;H`o0XfkPK}H#TH4tDn#xZdw}y?6v}b3RmT^BEtVeIsz|O6TTgh)OUn1aL_VI0B z&}Mp#k$Yew_>zI~So&6_Go)H;YF&>zug+x|18qmYq3QZA^S*fqTDoaiH<8x0hTd@2 z2$GoIXe8)!uRKScL!8KPWN@{AxG|0SQa^0G>ZhRAA&YKu3@YS-Xxeb+B`oC$3h~z@($vx=bmYZk)X_G-w-@V?lesm}(j5 zo0WiLUk72n;k8~N+Z{f4P$u>-yHk#o$@>6_T z$7~6z#R$0T&k4;tyLXg*dXl`BtGR!9l-WTzmZ#+R>jjACJ$^`g?UrdaT(?t62VwnA zBQ<3qeQ3JHD=aph@bnTfUOjdEXN05n=G>aOd0I0kzHFnL^l0Oe zH8tj)D}uifc&P2ujEix%jb-B|;qhgS*xI$VnuGnb42rT-4m$kRHLkWZn|5Wp#Eb6UI(tV@X!4{0I_sz7hOwrc9+`TX0K=OUj)4`I) zCWm7$LeSDVR2(I~Mup6tPSM`*j- zuVdAh>0?H@ZMN06r&>k#BRaBX0B_H%LZ_+=)Suk?l(!(mMrjA}((_R39`{DzE`;p; zw(~VB%+F_FV88%$X;4q2x(f&hPBp?{^mxHi_1cgR?q$yCJ?^6^#nK)Y84fkDQvtg_ z@AO_$znF$jv{$aP0o|P}$}_On|Ml*oPF8}|>FUe44)}(o@e@F@V@kV*fMCx0?YI9* zsnmRp{3nx##wLybQ|tl%45x_%&~(*;$K>RcTjxbxO3DL&Xsoo8las1|Ec#Z`M+_T` z%%YntemD^k5nihsc^DuFr{?xIyyQUu1-|$K4jk>#*78Yu%OJv%Ixpo?ri@_fMqd$ z=hZmU1(}%W+~Z5+&6Fict(~@bz59yYFbI*{AOo%iz_&oJu-ty~?a3YjXd0fAl9^?t zzn1!+TLC^Q@=P^W$akFt1TUtpL7RHpldPFKWx%;atbYk8AXr^r;_m3>zD3+zL_gFM z`5X}eil(@yjFs7OCs)Cno6K(6*svs1k@fbgzs)ZwusL-B;2Y=-zX+V5tp38{;_oN6 zYyoF&0d6lyuxmA3J`syweyF)l>$=9q1-hA4vJ!PkNmR2JE_6=nx#c&Km@(oh-yiN- zJKdI#Q1m<+{O(SVLce)w{qAD)!4jgnr}}EGAGQWAKu0@gCJ6Q*AUx1J-uB}Z%C$;alNm!3_ zd+gi{GR9!+r|1}L6$=@(#$j+jT;_-UQ#<&$jshm-HwD5t z=D$AP#z3>^M1JjMG+Yj=?0IaLm^JEgFfoOqcI#t6&_+Q~f3g$SroCI#i%WK*Q;5z37GYJz!gm@-fy=zj~W>My~ACc-UGbqzW`|B2PdTdjjZ|H%3N# zniQ%;44Rwx`I}E4ulA*{IVJyR7U>Jfp#cxu6t4>zY_fw*{hXnX#P5Sg-u3e^)Ae(J~_bMqwmR-V{IrhV3+^>XyS zNR`@4kDb5cc!hsvYby|nLjMJ>*74C0zJ1&;MkAv(4CeWh>ka*jgC4dkKetzdAs2sf zSAhOcO&q~rAR)Q#;2TRSipVc-n{F>t9m~ERUfvKt^^N1W3t~e5>^Un~c*bULU6Y_$ zT+NCFn~zG;#%s>==iM7jOq~ZQYN2nw(Uhu;xWM`Q5sUa(trV9VyKKi%X(HZfTwSN{ zQOe+$d5w9=B!lFw;clO6xoLD@APa6Fz%O!tLdMULB5m=s34g{^`}tWh6FL^PZV74- z^9l%{^#^O}W(P7~K4)hBF9H{*f*T}X#_Lkh^vBOi5|`cIEu|x>`O(rRQ4DrI`vrNF z(ekhS5S_5Qrsoo==ZF~ruJ-1Vrn|ECP)g;_Dc(EcdJ5a$`>OQNPeFlnp{@dmikcU^ za`d=!P6&E^l>=!4U1gQN$#^z8%0wQ4n=`q2(p0x^_pbKlp~F=w-pIj7ZL{+ReLOP- zK_U$+?ayslSZmCkSNcGcVuSko4vTF?t*w0JSb?}#m_n*iRiETx^oyAkS@Q?n&uuG; z!<9$TujvoEO2`T5Ko zzy@q2a%f~*G%5(z`V(V#&RDiWr~0_LZfIiF>GMg>S1vIMrjEFSMTlGAgMBq76UZ}l z8~TpJ)60Z&$RtIFO26?M0@pe-LoCCUovq}tN1r+KTlrraD2l1o#APj8Mso`8NuhFI zF5)p3X7Lx==nRsE+yT=gOOMkb;$Ji%NR=0BG&8&dmXO`y0?GG_1OCiW%FN2j;BTGO z2kE(xPuz#8*%Cuz5bL|f$OCFZY90gqn?5NAaKcXSh8XoQ_}`OcJ+SkL^>{*LhgM*#mK=xbD!0OrC*W*hy6fI0o6X~V78N}7E?B&K?N;Yifa%&B64>`Kw= zl=?M|V%h+64lm8h5HuX?8g7Jmx2OJ5je5*9b)KL(*0j@T)SPojv?Jku9?G1s%kOcS z0kEToTN(_4!kixhXasQVUScPN;uRA`o%kS*=F2nfH*YwUP)LGH-#ztdRNu|Y))$#e z6iqoVFX!)}o~t&zD(}d`V6W{Fivv9zv!2d%E~<#9{tgdt=}icjB@li01g;3ov^8Td z-IE%tG$=`C&7Np9FH$iM*0rERo$Fk5+(D(|UdM)V|KC8PpBo18-#?$DO-Y67%=Ws@ zOvLXk0-UnT?Ls(6qTYdu+9S%myqa3EQH-h>(mpj14ugg4(-Y-g=Sj?We-t82b7rae z$fC1Ja~rAsJDIBU%ZIU)H?pk=k%f*w(f;0MYd?@B=l0jH46U9q`4uoTDM5sCO?R&D z6y05IH9P1FOlSJ$1$n{znT?@GRaze&smQjw`n&$!d1WU|C}hhzKR!D#rnxO2329fK)KSga3qrm z7aVh7(_c>u)TpT$rsv^<9nKWQdXY;X35jpmh@-|#dYas*0-8OeSd=Lot}$0cZ`HmY zSeKN85zOlh^WmKXxPnR6X>Fj@VQ=CcRJWkV<<5K|m}cN*;qh^%p91XpO}1Qg4|5&T z3m-N=C7LKL6@3nkoWSBQ3t5)kZIisEpKJ{+xU9E)~uB4z+qsV)_-FQ)|m$YJ{%3812| z9IPet<%@H;wgi71F9AA|svoP&3751T43z<$P~KoJ(K#Zcr1)Bw&IU1b>4baW^LmmB z>s!e)%LDIwueC@Ps&1U`E-O9qS1s?N@SIY8>;8O+U*@3DNrJ{|vW5detpECXbUQ^) zuhO%dK>Ju}gOi^k@v>doKWf_P>=R0!G4a6~ClzqiRmOU-qs_F|ez>kadUe{m0qPGr zj%-9`%$|l4F9zy|TGzx7QdV2c(Q{*cuuHIv9yi>#4Uk0*CG9XpPzv)UPo7AbNw2M{ zdG`DM+NN%^@|qo#CwbHTa#&oEY1ZMkO}yW-D#C#~7x3!-&HzZlu!3#9_chDUP`JJ)B$9M`$UZXW$8%tTu~<=r26$CFqoS6JqD#+nbeX{esj+z{q*J! z_cX4DzXX+gYtf@?7aj8aQ;EHIjLYXTS_|J-U~;ZIHoZ;nFA^e92ydsr zair^d=O&rRR$_tE{pa)SN2eIGdFs<-QT+{@)-LG9oL4>ln_v)q?fSq|G;N6^MI?TV z(4vKb5Hr8qglnhG4o~h&x)@N&u~9P-F9_qteONH|)}+4{O8tnJjRDQOlWXq6xtqgN4^cHLG4bO*CRtg{fH_BH9F+0@1qOEX< zD;zD!x4?kdvppZh^SJ&0J4PoIM;Y7R8S4Zn9rxl&`_g_DicR8#4Q%>9hUyUUkbP1x z`aKqVpLNdkiJaeECj#C1M~qYz#otP3vXV#}JNesYSB;AnYpdJ5`1 zNcwEAt>w+2&d*Iasj7UA@z}Z*^jSEr=DT0eUG&~a-Y`&c;#?31eZU-;#)#6c77yC^ z!6>@>vPu=Kns=34BE!Kb`bi}whJL0=Jt6}`7v_jk;;l8uNT>5qC3B>**wX!e5(lOb z@$cP=XzmpLpdY~2TB{BOkPDye;M5=}3b{kba0p)zoA@Q(H!CnS*f^k-`{G>lk&F>z zPA1sVehb~~ewo9of$x<4R`KPrMW&(VgTfagZpoED+|p{zaU}xE^*rBCGdz|jGM&iq zH#`&t&pCP+OG=)e^{)Q4#E#=b@ZN)7$n*8?{_fuuFF(<4&A9o1i>5ul$7HNipoPvI z%@3(TMtoMySIIZ7x6g-wMi=yt)py`PP>}h%FXRWK@S~>$_xV~qy7y08R|TZI!>n26 z<2XdYfmv4{7IR3AW>wV#DMR1ChWu}umH}kr3Kb_?`2mO%GOFOtp36Iw-%4qZRe%_= z_QR{~Z~Z#x^^+kmW1SQ7I{gV+`f>-Q^sQeJd^{sn%E&C-K68vc6EC^}0jZxO?A&F| zXAN7*0j=K0xz3Hh{q&Lbaig|wDgNO6ijf8l&SJh?ekS4MT?&e zJZ>~jx3$)vE;7F1q8z~Gd8Hgs;dwkZX7wG46AV1AE(M%n)eW$vuY8Z+1t5_~mph-Q z9o8NY*6G&>;P{t{`h8XJ|2kzUAtABj%ltX0xjCSwMiYObX9hJsBYK6>Cc+s#hdSF%JKU*S6aiOp=A#2<99=&8br&x*YMc z%~)eUb1@v7viiPta6EjE7T_=Ichc|RNZeey^ree*)y(-L7W|k$KMtIClccAG^E+GH zNoAxEx%Orp$4i!153ygl9G;$zV_6lAzMz(Rm4AG01&!I!f<~|`iOV@v@DOImyg7ijmSYYIp1Gm zHyW@ArCoDW{IGY%%K+#TNXjTzB|=hMRMck7392bH_wh;{G58JK^3yTI+? z!{4?G%-Et79A7KiBg>cY0EVBn=H-1;$F9Csj~6s+ehcw}ApR{{CV8d+ya}iyirErQ z%7`K8xqJU^dI0W+o4wNP5=Rm5BkRSbrD_KV4mfYz7P%JvTQ~uA{5-C=MZC`bW9>Q3 zx?}SNtFgXRMm(}YVK=KZI zy*|1(Ow!#i;n_#*zdl^8L-^eP=>iQo_UfTos=A*XinSOYf0Vx8S7X2vv?*GBR8ieB zpsrwT)Qu;-MJ?r#lewu3xSH!;V2wJ~Bft^E4c;weoO(fuKC;xMs5S?xG@je!&R$mW z`>l`gzhI}cnBM=yh9$MvYl(V3KCgI$cY*Onq9kDZ!KK%x>N-1yJq!LeOJL>}(na91 zfh5c0;2Wt%K&_MZgUtu{bp(X^EX1RG+UR|}tvC@*jMi>et+N0|zYN4uV;~)4>WW^G z0vpftmn9e1_Fy#qI^aE-DT|hM|I*xfwW{k6>0V9md+N3A>yGtBD$`G_n)k<-KT7_j zv{Jd^NUBg1s9EX>I9+EL*Zumda6(OQVLCy%r*T)Ws?S(L+?;%4?08@ox>_JQ;`Y#E z*j8&`_ybo7ZqS9#cvs`sEulBqq8`*zvT9&@k>OY@ip&teG|_L($m3V|0Op%tiM|&^ zN2W8npc4jj&3*wT5f`>VOeqWvgQ{a1S^<00wY$7b(B-Z+<}>T36>%7a%$_u{<6&5` z=Fz>3=ij7fsq6zM(hOeArCA|PI{uK8KW8r54qW(busE02)gW*`vLqq&B7FA@-olYQ zt&SeRpnN@U>XdMloibQ=`R^R@0-WKhWlTdO)7$MT1|*g6*b#Z_^vi zmd&a^<0VNG+*E7gnI>IsM8?cn=VXHZT}WQ<#UP}gfRf62a0e6zo}Uy<{)9`iT~|zs z+7$*VWWKNaAR2pqMU_8wpg%Mw9+QQq9=G_%vj~IC7)M7x-(p@mkBP?zdYjC1a&6!z z+g)mMZv6V^~{~Xq1$nUc&QZ=@tmKyi*_*cZhw>2+tUV?+p>09XC<}z8E_1c9~ zH{-Hh6n?0Ra_D_rjo$Pyn=RigP&WWe6N5vgb3dzFTm^wG)yO56#pPDX25&VL{!1l} zxMl_?F^X6lPUDsw^Qy$*Tc2j}KJMJc@G<+c7EMUOC^NU>V3U7+RY;68x-o_&4Y|05 zMx|$R)aN8Q3~D6-G2Fz&1U(mnM#Oa8aKs?q)w$mOF&POkW-wp+poqnppytq=`6|-k z2g)zh=Kk@d)^VG5p=6$Ah_PXEiZXxyNW_im^}>#H%wI)A)P7vZDs6j$6Gf!@xF zT==1Y&~E>$P$5a0TwznLr7d`|2>D}Z4nfE#EBSK;|I%bT87k_Q0W6zvxaNyOV#4EA zb0hkvRVA3N8l^^@Vtxzc(ysK7x#kOc$B|0as|yF*kGly!>-X|=b3su!p3F?ciE%@a zO6r!W9%!ttPWCzLJzz2SLB$jqvXe=yw{AQD>t3s-(f6GDbJhTWpgYwJP%A=m!-VN6 zgveDg!|$kDzCEIcpOvVN5XEdqn~!%ZBH(QkeNhh{2%ma!6WZF?;)Tdkm#fzNnljfh zY1ya9&&h=^k^kei`BhK;j9)(fHS|UmyUmk^u&xvvio!lQX(?m7;BZI#3dCkBjMmKy zy#_Q2Y4kw22#M=iLf&fME&?g82(sa%QB!RayupOJu zEmwPzhYS3|cgOWQ`wT71N_;#}=oO{I)G6h9X3zgt6)VwI2Z#TH>v_0ITj;TjOZ|Aw z-o9__Cm1FB$}ZF~f&^5^xv9GtE%V0}#Nr(vdUIt4!4fyZ2}Fa}5&g~cLph3U382Um z*TU{?!Uw#+i~P_6Ku)eN7(G!tHR>Qk0DyNuwMViZUQ$w$lbIO^6ajO1lt~)H?U)8q z->P|F_j-!#D?x^#LvP&L-yA<47F)vFD^B{O$o_J+&u7K#En~ynb$frK&Rjn+wm;S7 zl^&vJ%7r~x6 zmm*4Rm4{y?rF|K*>$O@6V z!Y)Lcd6>_I`Y=CiIp>z!s`4v5+N?Sad<9My6e|G3;Lw0WlX{mXQqyI^q^m#?FmbK) z{-Naiq8n`=)bIyIz*f8NV|@!S+c#xaKg`nCcE0RgL>k)}J+6mJIebx+;|Tf)duWOL zN+5b+Cg}SZDkjfQLgZ;zx-BGOp@n1hrE{%&e@U0 zZh$lPZF%St9d?U5RJ1l;HJbHS&$iwPXZOt^9mkCzl{j0={-&DvPs;q+4wsl>v(qaY z&#Fxe|Jpex-`>1Fq(nE=dTv~o|FX7a5bsgL2o!XV4P+eRFmnQG2h)Set=+VO(|P&T zoz3|)T*s5Jv%vj}`qye>$WxE9nDNXyYpLuYgQNIPGV}$5mI$+E|BB5GsVl?h0oOPhH4P4|A-S zc2DEJ@;e_JJKyZB8SH$1(#5Etm(uZ(y2j$tc1&9*skU|2P=O!iM57xGGEuOmXkX?j zUYm8KQ<#w2407#_qaSK)_7tKIgFHMhJ__xyrCH9MPhmS_skKbKkt=byK;j{qZsFbi zUQzM2v$NBk{v}yri-sX51(#y4e|%i^#0a+?`nb$SFbNl;cM&13HcnxuydNtQ%l?IR zjszrx?7&@X>ekQ%_dj!uv-|-F{sg(QJcAllfG~Dl05ma5>oi-x4D{mQ)}Oib*GjJB zx)yARRc~K#fhk2ZUf4M2%bCtLe?9n&l7Ar^%1cmeuz<}H1?L)6YyZC4zd(JcK6>>% z)@bKkbTek{!XWLWjIIW->v_iCCyncT7io4JKVB77S)24qMvV_5ePhZ%h_elBw|qN| zt#z3SjdBm+I7MYnr#bz@-n0H2+j@BVDg(wX)wiuwX*U>)Q;KtZ)`9RzD@+Suq}C>T64)qQ@AXT;+EL!^mUUN zb)0FV>f~!SOK&#hEO0{>eh8%7kSd!OgU}WM8!-s zx6AIQU7d;k{AO5ksmK1Yta=UEO9=}E6oC(s#-1WQ?!@pe(pBVHwsDx^A9CuV97P~81s<8}b;<y`=tjW8z=D~tz zNFue$mH(7&J(SJbFn)C%vi`eC+Q7SR>;y~@VpUzoo+K5lx4NEraw>GYqG0gy__e{# zy5~aCLvvrAK$V1KTD#yBxcz#dYe&WE#9~U)vq9@X>VeznbU! zlANocsF8|xg)q0x*nW?U0I1p&WHT5^UA9%_O#F? zd&VU_g#4tpzCzJhf()!!WGbJ&As>WL$Z7eWoMFumQmjW4SzDAP%t{bwMTvOK3&2E|P-YR6}zn8(A_$uD+e1=dbZg$PPcCk0-_ z(!1rxD20Yv@8`r_G6;$r`#?px_n5>Lp`WE%f)K~8xtJGVUp!&-$=_1B!kRvPRDI&{?=r0^`)&FBkCe0Cs?JL(qOk-xuaB2H3K{4u**ugAj6>5~gh$hwqa`aw*1xt~Qe zJ&wm|nEv)n;SDeT;b@HB4x{$zBx1IIq4LDF37lXeh2nJ z9c2~9iZ&vZmX?PCwC07SWt2)q{@w z^x@tEu5Mx!VzxY@Rh_p(`s6#UshXU)`c87?;mmm?bo3&x8sWEoL7dRs6xznRtk7~9 zb^90DOxjYylz{+9OH`fcx0v*%SYb8a;@%F-WB;KGhdCJUWv|Z*#wfglG8!i51NM;X zX8mD>USx*cCJbo`19hPqvUDE6?N-x^2h?Uc5BMpu1#>G zeOAZX^q=G_BNhP{~LMq@}vL&^A$B>+##AzfImf**mD)Hz)Pyd{+9*g>LX{b z`&?f@X7cs3(G$$w2;&(SvDqLtA=cj&7Ry0aIU*d2gU2WWg~dPLm?>nNE&J2pmF$wQ zvCQ)WXy9w)CUgCpM;ey-Wfp&>OJXwekW||Tv_gqVojH3}*&03|5gJdn$&FxvtTg)+ z5EU@tEm{GJ%E}#p5LUC$7IrG*5<(&jooy~n;PB`ZK%r0`x~an5`$z%f77~;L=hB|_oD7cvQp!}N!IB9ULpZOc&Dj+^419=1v=Rhh!_*=8<9g946b$56)Sz_`0 z8u6GV9q--6R*}$SS0s4G5$AtGuUi_+6PYs652uEE(fB=qg3bRlb^&EfIG*%!IZjm& z2pIkkGQQ>I*}=5WUSqmVDEJw8B3J;{H5fb>+i(BB(b@kapt)uPDnnZs z@!DcXgp8~#m-o@SyMxba5A|zB#gzxP|J?(Buvhp#{>j!jF_2aRAm%h)5KLfdcW-yj z839r{K}A8zNx4kX{7epeGK6;k6pi4Df<# zKuqG|P=K_$=H5=%s%A_suZb)0b)m}?o4SW?HX78UOMk%U3dl&HCWQzQIns-Z5=I6FP!R4j~Hb;Egp?_GOivnG${NZz4*@~GvZOTWx z1GfB#>Jy54VtcyIs;920|9ih*Xk^KYKtn5SaWjX7E%6FTzOv`rA|xPXT12PH9F`;!e=HIKxEUTI?Q>GWJ)Yl7>>~msm0A9n?_pIB<1SaEKP~NYI<os=?oW1v2u$g8*3_I+r@C}xwF*~ zG-$c{BmFhs?+0Y6hfDnc)`RnLd%h#cHT`5%KTLrijVbsZuiEJ|cAAWcvm}xy@*E=cms5Y+ z%p1=J_4&gK=kdgHKegiS2bxLZsZmam^(Bwkv;^>#>>v297L;W*#biidigR>}J}dct zSRsl)Iz2c0S4A0ghS4VQvxQ%{00_!2DjHrjJU^rnpG)eh35#jzfGmLO={L3C{$4#j z6VR(ZMtf_1{yfO|e@D;ZuK5%(81Gr?_U&z9O+553=QBVTGR2h5Blz9+b1pMDPjX18 zR-L?K>#Lkuo>e)r_D=-g4r9^_zzsP%SO==1{{|y-Q^Up@R5$I4e#i)1Yk&WJrxAA? zsny5lCxDhAsn+s=-!JFn0ftpyS|%vN11eA==YxssBwFN?%`1mUr_=^S(hbtx-3?NQl5XidAl)S# z>F&Dg`2GFwy>E>7-WZNSdG_9GueIiy^Yi)4IrI0BdrTZ5tXVS5eA;Z8=@zgH2y-;M z(tpe49l`b|$;0i*5>Riz|2YA#-6mRa-RUbUgGV+U+rw?$rc2gfQ2J3; zcIN(FTJ{ZOI{qK({fYdf=TTSH@r0wyDQ&7{+@~G|DCJ%^c1&R-W;tB_kgWO3;O73< z5>l>*=c>>(`=|M!-2K^WE}^!8}?EsYPgYg`Pn5o+e+o4DoY+TW>f-2VUVj z0yg@P9DDn9o@Mt~cnkC5$KX2-yUn4k31Pp#=uG%9^IQXPr2M4URrvonQJOvhGKbPb4lHsYM+~C59E2E^YDxCkB`)5JbvQ4;C^T z%m;2Lgbp<+2hV;`01vL0lN%JQK-)G~xxgk8k~HBy1i68X7@MBD4ruP$y;2_wE)_tV z#}}w&1`*!xMI)Gl_JwXb^rJ(@VC%o<@N)v5*&3265CkwK;XekM%6+qcaQ{Aziv8tn znva_pSH(j%W%%Q^0ixL4tUvddga=C)%Gsy7*tQ+g^E-PJFu4*(Jzh{x{WP2ow@|5c@U zNreq}!^Cmjcd>`^|Co4O`cS;5+y{yN6=iK&BonkrMdO9_eBUiww@7Y;OE5pa1xkcD zvm~J}a&}LHUR1{*8*%p3izmIFzj^oH&@zBewa`99L9y~pCMV%DT;s4SFjLi~jK_|V zYxPmLk&ossYF-}PX7t?j{_>Gr<{b6S^lu`$!0<5h7jKYaDi_w-WD-Q4?b~Sa0Qh-(V#?&p zZR+$u8H0dA+X~m$yS|s4)~pO)b8?8OHJADFah9&2XREy zD$e@KU{V(lF*pka`WzNEqs>_u7DwC%eQ2F`ctgy9gC}M^yv(Bftu(`^B;KebXVJ^C zHhO}`ocF8M{uUja43_w}8a{*7(AB^&j^;_}&FkdbQy-+3;L9d7rbC<(!LXoBA==dU zE{w1IYgz%t9Bon_?ela=bcZD`2F=dtH=R1JjeVREUk3VrOQOl=eYw8p=13GPIK?oa%Uyb<1~(mWn)}j>bDyy$`q&{8-4V2>7Ahru>YI&mT!BrCAjf6{(e}>~Xta z9%h(W@i2la1tKWy1BHL{1zWtdnRQziOy`!D+XmoUAzMw3N6o~$~OE< zpzh%N1og$0M@AvJdfkP`G&Qm3t>;10M|v&hHW)tjrzNYlj`ESEwS-~GgYW4}kGxzd zysFQLp`?E|GZl5nbOIN-EY6$*jY*!N8B3Bq3U`^;@A$OESI)o3yJgcLo-n?w!zgV) zP=2GXKC96bDPHIGRxC&$3T(QdN}P=TC6x!(FaohKtxjvVzcsU4H4LY7yIIPY2|7|g zg@?{yJezC$o`XA3U*_qVX~Cf{Z^ll@vU(zozJ^gXoxaHEi zNaxlKn$QiJefmY^u_MO@`81OAQpB!p`1)0R9p*uXKUOErzqiBXxFm?UIYeJU$0+1cMD6qg#7-dJmKK zev&f3j6NeZvD7~>6EZW+L6KEz5$Fu;ug0xB=KWJQ_PdcxKdbi6EN>>Jxb`MRzp@Bt z&Jy}IyT~LnHf5& zMjttjUdHLzHRbc|41%JF!qKC96^@O$p)K=@uN74jhIFX>f&}+fQ~T>t4Dm0^?<3ZS zY^RjlSsYDURp*SI+wG&!AqUDUJEb)Z7VYVL@_b)^8&CzhEn zY$UEFB4LUM)p3)-j&Lacugci{tnNII_@Os*Mzn}felhQ)Pqyy0lNXWvwD@=pH^FR5 zQO;58OB*o}N5ThaeZOMgE1X&wzh51T_%bXreDC|m!d6w3P_?YE-xdRAZlhJ+Y+4SB zVwmKqfPXFeEyT($7&}C0j8*7j#a8r(GksO7U35!YX58p?S(;$LjY|XJY=ZHG)_OAY zgs}K}@!9Aq(>%I;dh&Fr;0@d6=a}`zw(N`xSMH|!`RM7VC~OIT{Exw~yPlquAu5~R zZ5Nnp7LJcuUubciCeYvz_R*|%>IzLHO-ssV3!t|FJyX^$~1!_LwI6A8odXnH>H%zpbd zRGTC*v0L{c>L7KwDx=0^X>2?H_dEA|$6gt<#V=@Y6z;YO`hrV((~P@jbfk}B2ux6V zUxk{K4b!&t-LcGcU%%`HiG_#P({$CWYzB=mXCw#ejKk}_^mT*~8zjxLU)pt8nkil&qj4;$V{hVVN02uuuaU6iIkZ zzX&LFo=|ROtKUu@yL33s=t%O-FU}_I$8vItR<+sbf9yA9uPov2#{(S_XfydN!Hg!Q zguG@eSAoT=n}^cV`STx8Qq#q!h0_hFhBM6@Ea40WM2Kx4Pq@j;_@2fP$J`omhUX>8 zk$Tw)X#IBFv* z659>lh(pM)7zt$;>T4Z6>H{JjV>UXphRQA;J|~lEon#B{?kcMNEE;`715I<<4V$7a zf+Azglz!r$dt=f}A)C%xOeBxgpx!DE9kaE${uaX@1~Dg}KVy(TdkvLiDlVjjdK7p% zAU;*Vja!q=wV|;Rxx9_J%urgoBR-P<;VNYHKx83_y zG4OClc=DR9zEzd6pRMfFZt4)CT-{jI)mt>rSN=IhS^YqeKMYpJlD5uNEzeYJTn;k) zUa<2^D8*$fo*aM*leC#0=d(dou4H6npx@tn$qx%$7TnMV-i?ioNAw|UN1zd3w^dz} zFzCKV5xI&=#rfp!?yS~wo;z}nLAfAoHc8SPdcfjp5eQ8hs8+J;HRY_!bWvm~Ck_B) zO3yndbWPc;4?46jyT}aXV91V3x8H>|F~_QLda6j^v5d1izuRSK2l5M76*HNicJ%&O zP9aK&KA_wr&Fj}85~1#eUS5uSPbbs8p1nOraA6uRzu;{(=*NE4HXR^lR|&dF+AG~@ zbtU~|1s7ZB-_{TitbKTMD~y~eq>%d}HW)k#$LkGh4+c2Bf-95ae*qD$R0t9Oz+?OWo*{hYw6c=tu|u4Cpl$06s zLitPjY%_Alm0UFz7qv=hcEV3ma8em24V5OhJmeW3YrwNS!I*olRiSePJ0=m~UDVwa!}~)f+W&zdK}{V$o^(V+U?`;Vib@4GzB_Ze zH+U>y2&WC~j1%X&jiApWPYd}vkv**a7)7)3?b+_|X z+YMkn(>0w{?l^(LFRNz0fBZ09gh3YF=m6=Y9UkHH!%&)S){2+NQvg*5SdRLT#h&&n z))j}2)E97pu`y6-D^E(C*@EYX4`L1SruglsRh@qI?BDI}oRSjrcb2DTXXv(^KD%|r zce~1cjuy1I^z?|Ws&u&Yyyaoe5aJEKVNnrSxeLF#^2g!?|9wK&OW-|A0Q0~xQqkZb zAerfFG_Wprs6jHXCpMX#d|dBA7@-nHL|)7t_}2z(;vadm&zg-<~qzQYZxSVWOep@}%(V8D0?`*JxsWsYfnFL@x8Qz6PtV>Afd|;(x zHMeBhl0d?6ex|f%*p>Od<@pm#nt6@+9yhF9qapKLL-;Niyglr6KkRrWd;{NMP2FIf zNQB}?$H(IpS1vdXck`?4ej1eC5c1YLW0#5GWGFV z{=XEx0 zdU?|f8^Uo90)I_$YiKa`7je2EHEP7uMUn#oyViBvQ%SkOa_AvnnJ4EBaDyJm__-sx@X3liUkeG=x(r+WiXo}Q)l`mw!JCtIFhG>O014lbB zf-rSbf-0OiNGcjqgWh_NPSc{!;oYVNH=) z8PV{&(=h@EIO*pgPQu=h~)hh8lti{4e?V%MB(Hk$uH;S98zIenRL3Y$Y@pyOK6YPCy{ zly@9?;U39$Mr67v5dTNhJip8~dLRrqA>&MCEvU=7I@6LKLw=`VjUdU#vB& zFV(YxwS$9$k3Zmcug9jQhAvt;d2B*6MaVnxV#B~*?Nvp`8&%L*^78WKG8~A*ihKt~ zQZEGR7l3W&xMyhbt?XYVSY#?tU=P{mVhi%syoV)4OJD-=n|or_3;04YpoPce3zok) zX6K0;U1GuS{OWJs|KGHm96J!Hz~?jxG=~$7Q99$!T-fRo1nd8VOv|~{kEh2P+cZk?8%|>HOm)uDx?SiwIB@ zc(pN|!~+#`k#*1!hTg54hDsU=#Aw_ z2={_25I)-@Z3vWC-hv5R({7}?RR$>Em(3BXKgOoY*u)yC>QOo1CBJum<%gB4zgKxQ zd*G(6yJNhVVKxwjpY3`1S;V2OLAq@i;<@X1G0iOigP|To8&{fXW95ZIrl{?)pwa~4gIwusU#s*a9DSB1GC@`k$F0T!;+3^TbjJuGpuB4 z+MG=sTXOPokB=k(9 zZoSZu$}b6PuE}c5#jw3*aopH0&cFD6FV4=q`9hwy`upmzXy9+sq^mV~mF* ziieKhKXiZ-`eIF|bYfTJ{Yb&ywvijrR`16j=4EdqiDxX!&e91?JPy$MrRHZyAUZg0 zm0@vHduAUR9$rpOMtmGUcg0B7$)a75b6K#t-~zYkVAg(<4%X3_du{K*QHG~LuNN$$ z44XVn;<&EIXldn#j5t)c=7`mDn&`uqcF5B^SgIw@jGBWt!U6hcI#=M`^V{=76}Ps= z!iY!OqBq716bi-bYC}#sElL{Hq^3x`A^eJyb46`jbEU#CP!~@S!@=wr@WIA?JkK22 z(;sWgz2-A%wc__ZK|Klf{Zq>RB=pToZoMtkjzfQ}HHP!R-3q?C=pvwuH;@XW8p$tsKb1aRSg_ z4x7FjaENVD_Rde*MW{kv(IUN7G?Jj@onx`4*kA@$f=sWQ$N0!e+V!;B{W<4Zb-}Td z^fjBVsQoAJFR=K>*SjIa3$u8`y(8_gx)r@P*PJH<`Hzu=+cxa(S@~}ZB@kr41loqg zq_di`TMoxHvb*i0rCHZPl0RxQ_y$C!e>P~C`<=0~7?@I~Rf!W}Amy4azzHqQ%QRO^ zY>YJbUHZNb>cOz7pPgTf%{oNeX%lR1?K$nWO->)od954$#ix7&04?Q)$P_CWIn>_( zxH2Y3>Pi!Q2T&JT+lBa3${MZk#iR1BM}CS+J)uP88YKe_SSx z2k};hwmp(1&h)t6%DiV>?Gr%Xw}p)w>6?n{n|bEdc^G_`%^3# zp6IzIYN2CiN-;~^*WoPzMR6&7?Fc4V(c)FNT}00rRU>RH?T+T*Apx!1Bd@ zl#+V(N+B&PHy7di!R^r#6=56+ElFNQ!IP++=3W)y_7JYn%k=}vinTUYq!pl}AfJv1 zi?%E$qGu`U2+7FfB-O>txk1B6dnX_(KEK07BuXh5{3pV7Kv9j}d1~4A%}2V|e)Ubf zy409v_#ZT17YlK#NY9ZGvEmoEp(fmqZLK&Cf4U(0C4r~>n*n&)Bci` z@3aZPQ-XAk;E8Jg;$UDJpcP_KS>!Ie=tK4a@8x+nuwHh|X!-?O%3>*MpP);G@JMLI z{c{(E#8T(Q8tn05b;6+gs6!~!bD3u|KRZ{4>ol{q={v#wnIMdGFpGa(@VlG6f zV%vd*exT)TRp{7DjNv5aC`zDiPBUg$Le#zulO)2*V3A0SI#^orczxKQgfvmX141!{ zBHH2~b|g+rnC_t9Oi1 zWA}1S0C!BgbZ?_-sF-71^NFxAOaBYotVnv^`(x?l{B36c&R~@x)qcS1%4Gc)0}oWnTH;KKOz}wGC{Dvy>i;$ z@He~&FC8Cwtuv?oD-^Na^veZ9+>-~17%;n~yi-F3w3COYgW@bmIJ|wzvZB>|z(T*5 zLC;10rI47z$T6BvzwHdZ6X5Q~7Ob8=Br>hWGni1v5Z)7TNEv3_}0-399MIaQm z;3m=5*0y&DFIA~3FK6w_C1!@xATtZa6xX2cPtr=M5O=R0TdUn;Rd+l5Wp!Qz^GHiM z7-|3jyX_88*1?lDJZW0iI)M2Hup*b=%{Yu8Jp5L;5E(K&mU%OIG%7PAfAO04E6=l}n`-WR zHg~%CL40)EnmU?N&C*WoOZ8t25@Sp;G3^non6Wi#u-AMW00e8$LCj7Fgj^oJ(H2LP zQ=0w6qd97NGw*?#-~JX%!&FPzEUb^1&Vm;$6s*IpC8acX9d}eA!M)T&t7wp~xGT>KXWa&BdH0re+ zSuGUlu;I)a9EaV~<@Iz^%;Vh)y_xGD&6SD^+5nn#(o0B8L@-(MF7mXsv#XrngFtVu zPI~q0V*@zGzZb@WFrb;!qzeQ21Q z3!j)$t(*=y20WY0ooj4`p1D8auUTB9Tb9KR-JWf-sF0lOhF>1cTU8X2kCNT~YPg6O z=U<@Z(;K3dT-OYPsPB#Ho-698F@ygW)U@zJhyDN>(tVvJ3=ok}fFE2684bAsw<45Q zm?bgA>VquRbhW!y2N|JJPBnrke0aKjgQKjn{yQPmYma1m&*h9iEDeVh@{+z zj)w}cp37@65}UF@?t zLU;Z>bI-><1W`cksF>M(M`J4NPVaj$|6ZlaBuyj#M0eo-UGC;__`)j3HMIhoo9+0gv zs&OhhE`i*jGx$?)5~_6R0t~OYkqd9n*WCf_nH-=)(TL{<--{%OX_vT`MtP*ze&X05 z>XjDWCT(iF3W7&GSo-21qNADW=05&iL# z4B^mYnA&H*!Xyc_Xfh?(vS|`j=-+x0pw)$hjjqG-h$dHhm)93BHxq5`{Z_EflY}n{ z;bA>^JC)et1}oegjISqS)Fw&`OU2-hThKgcc0|>Me5DzVL)b4@x7s|{Asf3vY9ihW z;oxMJM*oV%OB@lF$(SV+n2&-6S>Hy@n@>Bzh(xOPDSc{sL?tf^}L|wnVRz;J$8e{1;bC#weuLzu;#_n-UWf- z?ev~zS5$tv{m)z;Do@Z8qAjJKS6bMY-)`wpP1NaPt|srE)jJ9;t2PC{zJ@|9|4;^T0#s}Vt>hcZw{<0 zKz9Y~wP^SS>H-Zwcd#{XwgWbszPQ(-{}iG<=}h=w8uYs~Qe|D0a^0lhVI4LSd>neW zAQ24w=^cOs5+>I{b{u@U>;5Zo_-`r2!s{8ruMEzMez<-C{^EcaA@?4JoY7*Edp78q zd1n(^c(ig?)m8i7AH^0>#E6kSCngp50(lx{3s>CvR!g_|H=)1(-R$25oPwef0*nM* zF+(@~$IPq8!9U~blW>=>rPt?S9~}ROsAK8jirrra2{)x{ayOYb>7La5?+!sn1jlbH zmLU~c-y1`Sb-^MxogrK79$D!0R}gbhVUFhvuJoq1!O( z9yfaMF#A}`cOwY7jrYqUcl_^Y08+vB0>JpUg#ogJr^@P$--sXCC~*XZr;PkuZo_Ds zN4}O*JH&ObAsFiaf<{LO2Q2(V1h8+JdO*tka#}*h;-)9(h+A=p@o2 zY7?-e|DfA#Zxd;V6Jkj`F#Qnm`}}2yI-vWvZ; z2#KR;a}l-ZdzFuFgysiwipLi}0q*GcxQ?YjkHdX969}9*3EXtu;9;W5t{=^8^nNRN zYs9-t@WYC@cDbtw2-B$ERfu6D>$DgeYg+O=?6hqq3v^cZyFC*Qc!TH$6`HZG7YSiT zbDfi%S$84kuloBD7re=deRmb-r*2oJya{1B^zQzWp!>5;9E_9)*5Y)VT8 z-u$`m+vT11+!$mkCcvb5Ki}XJz-gRXVdaJg3#Pnb_E&EDD*u@vq{{axoQ{#7N{sL{ zV95h>xta(dr6aeYbs;o>jnMeN#2UJD;bD+9if%pC$<$Zf_aLTzNU3mhLrLAc|7$ej zBXZk~>=s7ZL`eb*Yw-JtUA|76_WJ#|%%&DUngh-i5>zCsLg0?j4)0Skt~FR-KiL;i z{G1H)%&Bs*aS}$KV_Ny*n5oxmE0rp(Ug|RM(|r((ga#$;_`P)j--K*Pr4xTPKaP{_ zHdMydMV=)E>`(ub0vtJF{=s;ovy1?ylYRT`;kS7_jkd=A{Z|CnLia1pruIt@IQE#9 z?|4cu7l(xH?Tm6lO~1S8ODjn2(^6nzAy554=-7K$8n!NL@k?|c z5W32|ykojjdWNSP-`>ud^yJ+=mQgr6G80F=41c`QL0DFz!gDEdj+N@o&8)qr1C5An z%fD^>cstcfPm|j*Bt(@IM15ddpcxNVY;XH#5(11}dk-YY9KFzyKqOSHVrmn+t+zBm zr>7fKl^ViNVThE?uSWs823p}dq>^>wi-t;zvKliD4rOwfph`eP%aHcStaj&AJ-eBi zU2vqGL4Bk73^B|~cG&gmV7j@tnstwGZGGU4TNqVhilh9zZ(N)P+4_;?GZWSmFQ#@+ zXsuv1WK&2-U1+$P==`F6y}>119hr?G+;wu)t6v9q!Uc0UGvcl#*^hbGH$9cwv` z-fWew<)_m&t7X+%s#OKt>JRU#Wvme6G$~$%nL2YC=EPo}5rcJ*tSw;Ees*?SD%O5y z7BtqXr}qKC_ia-^6+#@BmpBpiDZ0OQ$`!4lNR7Lua`;F<7Z5Xm<;kB6(x^?6x$*@V zR^`W7bD!xsliK7yaj}}0b_(x&>=L3_S|4^g|VnRzMntX?*WlyN7 zM&;CIRdz1$G2~8pA;V?akYAPZG~GAKKg=z~4+y2MUOQ=~B=DL_XG3b92$@yXepM{i z@RNpsi`0Oga%%K+d(M9BNRoSVjl>yT2%OeSSIR)3FjZ2M0lwDD4!B_ zyvjL1-#!_=H8r#T%72FQ6Yf->sO66zFAS32fAcrjMQF8qT0OJI+v+n_%rbo|P!=RQ z7wim4ffTE#@J2|qA_RQhopx!N5MFB_V3^(7E%E-7U6n+PLW1FIJ~?V6qYb5w*)F_W zPK9r;0=akyrF0vUe^&tqxp!hJQ0Zi?s2iK)zGASXO{i8eDbGt1%Wy)}l&o#3UD~-m zv(VYoiPma!6-XZWLI-%9ETkPm@m7w%2zqk3-_l|sXbUpKHZ%-$6KvO`vB@y2-ueL{ z9XM9iyos@PTEfAGv|ycY)CTheShEFx-_aM?IpUp=njaNlMO35qP^swrqgtiDnV|YH zVA+%YfTSev!QT5!-;<57=2R6qzI>?4B=Niv_$ifHB6&34^X)=FatK4>$VAtM1>;1E zD+Jn*Qu8*qsz_xaSMJbEDri2ZDWDAQ=V`3oQ(1fh)&yVF^T*stF8tTVGYgGmxg6t% zDQ(M#&)IB-)oVJ8my?X1+@VDFv?q%ynB?)&BE(-0q=IBs+!6**uEqI+PwfNA5%Gi>XTp4=p5NmMsXcCL z(rUzp4l@Q;mJx)K@#4);SfXeiFi@%LhrPe3{o(P(Tx~71GOiOtZksqR)kEdVSJK$V z)J({61&*+|Go70zNAK6PY&`?bk|w6b=2r=-=n-x>dOnR-ZJDNu2V)kU4@Z9`BJEhb zJoX$h2P4l&4^{VPbTI!Zitb1Zgm%1!E#m* zX*Mzg-?na5J)r&heNSSrd6v`DF7J@pku$toGyUx9AP&yBb<^&5n@?0t;Kl?Hp{YYP z1gnxZaYlx+G>%^XEzMdX%_brtx)F!hwFMCL4 znrjtQL4A2x?CT3zDQqY_uGcbaoIJAn;a8CJ>CAn&#pNdhYYx8N(^CU0je|99H`dNObPwz)!d_ZUG zS}bEZu1{PqohB{GQs8Jk)vquiyjj=I-yJ#Ep)CB3yHI^Znm=7V3K>d~5!YyeH;1&k zAO#*gnQ?NkkG{l&ebb;Hoc%L!_2xexTY+Kg>(KJq-28B<^%-Jus0?hJbahuL7>5i@ z>quU+UC6k>f&SDi%9ZwJRaCU*?Jw* z(L}v$HoEX?u0+>Ehs3QWcSu=v<`gbx^6w?T+eVEvf7X;}=^JkCceA)|c4E@j-M~Ba zrtR6%9ynQn<1FXu8uOd-PM#y##Vl$A)o1CseK;Ic4DzZ*;%CDBW9{_R$?VZ=j`mo2 zQHGrwUjv*xozrUbm@a3@Sy3CKT>lNh{i}9#@B>!tiync9$9}RP5<>*IR-7eE#1piI zy)lm%q>uD*R~&jz`fie8F=i*#sM_Vxj~te=F8G{E_lX_xM30q{n?UHTFAt9jH9T=u zBl(~~l`S!Av}SK$)~oi3ggA&dlh`zo7au>T1eH%@)MJa+tt*yK9tFH=FZTV5P`bh+ z2pGf=NVY@UJw3$7RBy+s?2G&Z2`=G=;3s&z@;^SQ7$s z+Wayxc2W8pTFeP88m<#JOm_Vh_wsKk;8D~C!lRM)=of=;l+x7RFGjV6^C-8DiFJ&j z#-KGosy^1BL)%Bk_@zx58J2WAPa?XB(n?~GGH8AnzU($Q7PwH49 z1g-hnh?dEvgJY1Pi)?e^0w+LN8cZBv*Pb>PD4GXDg&I_&*m9%Sgk;30XyGK}P_uU~ zGXAwJt0{gi&}@{&+u71sXtyB`UkP|Ojz>=rgF7%;N5NJrTj4QrgW~(xO@4rlBz;1Q zf5uiCBcTV6O>CUT8A5Wx06AYzGGhVcV#mj}AhbBT{Ij{KS2wSn33~8G_I~r%-5xAb zzKzccX-c_RUj8DV%ud?{j~%G2F#lyR`qns7Bv8lxlO_1o@B9m`;3|nw+B-E=f8png zU?hMG^)RR;r1Cp-&HfiUbuB8e|9_3={(ppdLrF+JB3CWHNGO(x2U-3XT8W{JCzTOj zvrcE_6Igl7g?bthZUt=VPsW4M!S5OLl`uAJh1L33>h$9L&7Ae`-;*Nv+VFa}@V^rl zL>WI7+4dDm^ted8D-K)}X-WL+a=a}@)$_Z1*-L0i982$4gLSKCb0A#5u%JQ}KEN`Q zbsGa~eVj^`nln0Ha_E)OIPwtBo_J%_N6hsIt~>dLnoqe3*;if=)_stebH)@63f_W& ztaJItJ{8Q-=ID?EHp_e@R4FsJB#a4>vlndwFIJRK6ZIf}*w!idSO zKG${kLseY2jLZ*Nes3rR6el&v_|sv9r$1rp*?TyDOR0Avu3Hzba3#Ke`SKlb!me&^ zQfFH`JNjR~JZf4Lw(tG#J@EQ5VKKF#WuCh1r=pzBTb!cLY>`!r@qEeM+Lf2NA5`4? zo0T$~Nha05?@p|M>2bdI?LIuwWKsLc0VkF_J?|7y&dDN5*mweu8biC%&vac{3D<%< zmGQ6%luY8WUg|Qc&ZbA@v05NJDl9Av%*Y^z=(Z{7>QW3iFPHv%*-2PpABi;_(C>HX zh9*1Q$rcVSXKrv=hFgOdA?qr-gmu?hZ3M+4tvz=ae=k#e51vDO|4}cJ(u|@`rO9N2 z=|p8lG7gM=7rYIA$^#hmQ)5vD75WX;;UDdLW0X*_c^@S4qsi2PM@P1^qyklJSK@9^ z7V-c=*(6lrDdDIK@sf9Gm3)QAbM*9C11T5sat)IH#=3M%kGE3-UVmmH-X-plugl6d z{!lQZG_Uk0AX|ULh0y4qILT(O5?$j=CdGL{pryd-O*X(V+VXBP0Ino-b2klkwcef% z3?9^xy5|Voas_N&$2Grp2usJ+Pg&kcG)B^SDf_Dw3YvQegsE> z@m~|m2Xc3_t5N4vU5iF5ZaY2y#EV_^L=KV_o5X5XqSu_4<3)!vxN5ja91itWIA6b_ zR_|BZJZO<9J+~yJ-u>jHwHb9~_Q8XbVzBTf^JBp6RGrWk^QTK;&#Vr3I@nwi(VJqh zzn@b_H$)Ag8RdJBOyGAK8B>`Oh!!@CXGur@6f0r-2`JDy8xiKhQi-3ch%9al3>Y3g znzd#~n=3;~3UQ(&h?kqra<<)as+Jgv*Gs*fe)>ML&P$?`ScO(dxD?MRYx@@HwNS~^!!y(EQKeV zL9D(zlP1?cKgn6&S~$$P%e2~!LjH7a&k+d;>Ct;>=~bX6hE?{G(@;}W{}H8Z2kMHy zJ3H$MixJw<&Hp7V6D|PVnC^vWImXn&v(DsfP9dhShnDTf!n>&h_seG(p0>t#tb0sU zE_`VC6KP)h&v(cLHbx#{7+!>?FzImIRIeT)89U-EcGpn4Sqx&Q>9j2 z-613esrEL*IH_WclBRU)%jzi+QOzn!$l5gTZ4^w7sbg02X_kM~8N>BBvaDz>uU`yl zzvN1-RVs??NUQeY`^~B6l*@w1OAFrJ&tfI$rxOQ7-9*UzRc$yf3?xm9Bg3gY!C_$r zC!51BU%q_faXr%}beiilhpK5YIQR$eKH2; zFCy$OpVy_B&NTEymmvVaK}o==a{O0xFB%$8CSG*hMq~LV!cNfqK1;j-40ZU)8^*rE zNitr<4tQKH9z}CJKm89Jz~VaHc;vk773WN5>6j^oIp?4OJ`0-_8dV*lx1R-2aZ zSX}S+G-F!p>JmMhs80Z#2&`FGlq4RqRr<3BJ7Igw_VeY=&nv+VD;gYBFa0lw#dHTO7wU_(}{h-H!5f91B+qL0K{ZE zG=xfZT2S$`I>3o^9_QK)2th4f*lDfH^+U}Sv^YMCw&;naTdR3wd8^1HaZ)opuc|ZI zl)&)SUrns1gvlfA%Q9;ZD}HOETe~Ise6LHiYWI+l|MRgc-PM)~aR`aYWL&WV=Sa+l z??BLr=pb)t$t*1`4bgqgq}>>osOy;w`l&~5d;nT;Z*BB>m-DC**vWc9$Psx8IFwN+ zUzSJK^Pt^-6~^6}eEG#2kL8g$Ir6&K!z^`#cAD5mzwGIpOLGQ$CZcHbr&fS> zncqIe+HP)6{BivmPqQlW+e?9u$|FCJ7+*kJ-Ul(BC_#kIG&6t`42NU(l8 zG5hvx{+?ZBTad?LjL;!}gm*eg<%><6A)FGMjefiwNEjW5C~y)yo**e{sJuuDi}psl zw$c0Q69Uw_tkt1UR>x@df9%= zJcA}j;8APpYh?~mq4*3 zn?)CBb|JgpLt^@{>#lLZ)q>!tm$)<-sk+qLLgnG#Qg04Fe#mq@&41FiuERjObDDrt zM0Y3whuitCDAdx_bT#tfGV<{ysPET-qbRsK_s~gkAJx+%d4HApkj$)E`*iU^io)aF z!&IBzYS@UGJP4KWTpp{MvlIj`0WWX`y^7 z{wMXnKokpvd^E`RA(4?3zAu0hB)u2V3+`6vzU36aQPg7!GmTJS|E~9b(CMj8w!;&f z*0)PW)#x6_SQ;7{kLn-pZ=@EdzG)RRQtnMEUS3YVl9u&~`Dt%ldx+zia?fPg=Hs<^ z{?b$cBzVC=LB*=v{g{Fp#Y@x1lNm<$+cCzxmg`{GzrUJx-+TGzIw0od3siX!EE!5Q zHZgM{{B2u~)IHmk6$tows(Lx2kA_Hk_kO(A4oz%<*8b~r4`KaI8F?!fuElK2&v5D^ zL{9QJhYTQXKuw$^E|9kZ7mcwbIKzxTJuZt+Sx_687w2uwb}b!th!kQ0M5B`)ujfr> zC{}F$#1Z*-EGGmBrHWaLnY~=M^qaGt>8n*tFXVRJhcn$kJ(JFpDNH`~dzN1A67SWy z%;v%4->D{Fj} z9JxM6c5tjxq@Q}hP@>VV>2Scl%odSJS3i%fN6je5f-rD7Gbi4^rBK}3WZxWUPm=7? z()Tt3u41aw4{K;?(KNS{X7vF=yH zUp1d$TX+rdsagvUstS$F+9j^!)-mV{m}_@Tb>3zP4(?ntP31$KEQb{zgo#Gp_2f$5 z8h-F~2wM#t$-;C#C8{0oGX(%}FIO)GohkD+p+6RtL4j5((foRR?zqv2t@)ej&BiK4 z01`k?<_9^|i$$wE{$Hx{L&3q>0+&cPxw){I|05OWk90HQubI9Yjsf#u(%0@ih05N^ zb)#P^;PaMaLr0(IU@WYICRQzghy$cE;qr83hi4>9?5PQ6NCCzE`oIqx!?Ovu3RlY; z{W9hpXX$)Jx~U`>#uK4x|5j-4$yGz|#?5X^Z}y$FVTC@N2e@x|Pp1^rAuahKNTA&~ z)1#+AJ{6d*Kivene<*-ru-EN<#i1zqpHNW+=gcYx#g7GxHRpm%PtY(MeXFy6%r<&C zSQx4%5OVSlIgn2LuD;p{ikNT~X2#&84-0_UqQ9LJL%d7sLlMSEY@e5_tRxyce1 zIlJOD&CIl!bcGrhxSW%(f4i+aZr-_x`A?0{%if%^TrJl|TifZzA_f*AC4Cofaaq|0 z^nMrm=<*8c~7$ZRx%gx+^M~>1*SosN1Z+wDhxkA)O?fbBzod3!-czrNwZz7-Ul}Avw zZVHpPZM-Uy^C^t*OW&Nj+)QL(ps7AmGt;k8c7kbChpr>DtG;pL8h0bsvWqMvS$R;lJKNlK$ zMI#XU(^B!c+^Z_RPA2nD^ssf6M{hMaW}q%U3;N@O`?V};0;|y!Cv^Gb-b)uZcjm5{(_R8uM{wB&iBZz&&5Q?;|!pzb5e^qsraZ!EI7DW(5 zq>)A%r6i<7x>33th6X7CDFG3rr3V;NK)SmG>F)0C?jhd6|NHRXe7N_=1ZU>n6Z@>a z*4kliVU8vb6p>$--=H?EJ`x9TPlB5(bibV84Y$V{1J`#h*pnLkFDYp0z|g{a%nN$~ zQ+RoL1z2SKXQRp<@R^16=?befw8zdM>l1xt5{+MnZvjow+dWG^4*<*Fg*lyP`;R{OVSlwUz;J=^=7a~aG$+DQ3s>-WB1;%mk&UKg9W1xU)C!~*n z-}g_zmCt9nFt757XRL}Aet&S*t#s-vR+@SzE{pTb273)U+kQokln3i3h^zM6?faHf zpK|+Vb$jlM3)cc-(y+d$aTNh zbABt0e86h^6|ssJg2ag994%vesMp(GV)%?!hB zm}B*6o<2ajSId5f*INEQxM(iJb-@LBfgFyjKHuDXSUf-eXwFe06KUNBWvdA_FrE;3 zpFP5A+Kmfvo3J@s^5e{7Q&UUiovNl=CLmQtbxlsE7e2GAnyCROM41z&2ltmm9oM)x zJ>QrB8U!3l6|Y%`uvnI{SA!7sd)Oyrzme>%Nu3E+uV$#qaSvUHKYO78osM*q{z{+Vl=f_i{ac4z19kp=)1l0?nq-T3gz{K z|7VfGL&E$1K(Uh5Hw?2DE{s@rNcp7tUdgrUm z{^@^w7qG?5?u&>xnsY%guLLA0luw*^Nk_8eje&!>PNRog=ljFet|*GV`|cP9AeV^B zsVz2)`5hMeFkb3z43Z=P=CqsWX!bFpIDQ%8EIxnX?Kp?`LAfTTDJiKXiz4&)UZH^zJXM?wGxXV2P-Jw_@M%^WGQ*i&8mT!4!DCGwM`F zgbUrp7Z#Ry=L`YX?Im!))2RMLQD!y(>8_6R2N|I%yMCCxS)AVkOMxnM>;7H78pA}P z?q5h*s417oELKZPOFR(re`!cYLc>2SOSui%-``JTAxZ0rV;LDAZ}&y|PnTfUPc8S5 z?*Qlp);Crt)g{~tmUMe-hf>Fipd_ zCwhANSM2Oj(b2dMdW}fIYdHLBGb4O+b90e+;Sw2G!}r4Y;w(n8{C|1=YsCHnZHuIN z!Q+e!&)NHL-y`SOJAEZWrpU>8bp453;Q?e{HpAl8Da7b`*cZS?Es@LaID`B)&}yR4 zeytl1pGiwhLIN4oNC77{&+Ajein)o24nT0N0Z{M5vJ{kl7;5L?2MqauXsQT;__yWq znq|0sc^qK>@~c1|2k;H4Z`4$iBWyZjdyUa?2G=t2*2H_9V;@DA8ztpHKghW5g>8h!1{VdzxG0sua0rwiG9rT0fq)%_T+pZ1PU8ecXCZWk+z*P& zcF%R=V}3N@dbhTmYg!3m>&CQ^YHKO(SIMW3c!xaXU@m2rORLT6B>rkKggWsz>(@cJ zWRq=^E9c{5xQeqsocH3iAuEWyX@MuZDJ46_E8(CK9>(Xg|MuUe4F!cyYpa-uh{z#H*yPX<>oGcWOokGTa2a0S z*xlCPpvDOMP$33`F_norr#ty(KIEP_>dVek8Aqtkc7M)(+o;16CkhIRZ{NRTSHq&bT2}8Hg4HE+BmnH@VfA+5L?(VSep3TU)rK1`L#I$VS z)@78@_o~$OE9QLU5j5Rz)^>#M#HVEiBoiU#wo-CK<$uYDU(pCvdA0p%?Zg=-#u6LsML@I;urEYD5ro*Q^L2L+8HQQy;P+3 zU}UTKM#;3?yX{`B{64rr#!uTk$*)@y1LKxB@EB-EzvX#T35I9TaXo|xcCpzm#W@o* zQU6nHg?Hw*E{~$_57r^N<6Nc#_{E--X=tU*)RV%}9 zfH9;hPz7f6H9w<&@%M%ZlZxFLL1Mg=VTo}#(Jcd^t>l#Z5FulZ@^h1eeqZ|xxXb)D%AfQz0?veDZgx-jq>VS(HZCGz@=O>!JRKGsb|=2WYR#X? z&FR~3`TShYXqY&=GwcX<<}rA6{kKCSF7)3|!Zc!&qsR0RX_&Tw=N;4~3F+UZ!?MSE zs&B;W92Z(r^KQ&H-+8&ZH0)*EIjnXW0hb(p#5QwuUdiGU9g4Z4QEZ<1SJb@0bMC?B z^-l(ShZte(zm=3??Ij>EqAUUQT1DMBpLRQZTr(7E7^w9pRN63 zhwI9k@n@SY5KH5v{G$1|7ihS3_NCHpp&yvCxPq7^yO!^v(_)GsJkk&}8gabuZ@8mC zzRrI>U#2vtCDoTLezTRga56T>TzICp6n!Nh#C-FVlztoST@#@yys}H$sn8zs1~2#V zWI_%y_Um#zu{gXf{z`9gu8Q+xdDE@TH(1QPGB_zSK|hE3zvR&78IbSJ?K#Rfw;HY8 zRvEiNoCuqj3YE>q9gYaqr`A7zu4_k$lrjv!Qck}ol$11kyce=`MS~C53kEgs{w*HP zDry65x9v-FJ@@TbLZo!`Vr@yUJ|azJ*H*PG3NVOXyhaB@rYkt1Ik7sc}OUrjC zow=jL%XdFE-tn9+kd}HjI(j1S&Um^YU-cA_%{SFa`~G3IWR^`gFVgdUZ=Z6e6qoX0 zE);>wJtK^?R@(fbco)!(XuW^j93cAgCsad9SPKtL#q#>#`H*)9{*9-%dxTFTMJ!{8 z(Z)if`1!P-PxTsNU%@ZcOv){Gs<}37M7zupfhYa@Zw>?v<0)i93x1db449&(?_cxwPiM(a_R_iJk z|J`epqts_o5`!a={zLo~*6)h)r-gkXFuTzl zoWPUXlU-O4MjE#Aw6E~Ik|ZEYAb(HYho#FN3-7c@yTNRo<;UlnxuCXr9C!VADQap&T#2O`%BccUS#8t#YreA zBfi8HhKQ;%3(a79>67_9%vr706hQR;cr$Z<)83&nYXzmIg)3Sq$$G&&FFgdCljm_w zAns`w{xs~-3{g-p$%LhJA7anhk;zf{uXRt~%o+QIFAA%fX`}<{*#CZn7m`!R;_bMy z@vCD`L=blfhx&9{)s^7WiI~0nPJmWd;7>g)SMvrnp#WEqYfJ#&h*#T>)*=3{yt_ux z%t|FgHgVvg;5(Tz$ZW%4VV~)V8++YydHeu5otaJZ1N2;ZReg&uA8S{0=S+^!^H)TA zoN@VT(qDO&9rU7+J`Rj0?!Ud>Mearw3J{JJBCW(kfjM!4gB?%4jgq%7a+P z%qX8~Z@sQMRC*$~y1sl&FR0~DX#TsK#(86PK`9X0Z(iG#h^{-kO>Cmt`#2qc0O`-D zTYx_2f`OqqW>K~TpxCjs2>`!JcqYe(ZV`Wi=1MIze{vnOkuuqw+bx{>WFqnX zGTAQA&#yr%itrJ-$XF}Eem0CS2E?}gza% z7C#L?Phn9t{**tmVc+0@E+i_?K2}6TeTZ8oa{2wQN?~!|J{0s<3?Y|LEU}(Kb{dV! zRz5Slv!uC^qH6vi#a^OqFZJQ7^;!tJ^R6x|D6`wwt3nQ&s`XRln3g&G_yt`lx#az& z5kese&p^P{!Li|8oeqx!8N%&KFwf6hZX5mip9UXMD4x9ClNA+k;#3O$NrgkS;}W#{ z3~^44q2m0=Z*6CHG& zdiWL?{?&Jde4nbqy>BXPX2s;E0{U+;{Ck&PvIxn99lenlY0*@qwG<>6fb1)4x+BOR zcqQ_rmi1BY3F4Gv8f8Hr5jHEEbWE1Huug40EB*N4cf<1#yf9Aep#!9-%%_`awdsML zLFZ#o$+xyi8VCNE#%5kF7({K)vqVtr>^PlD1T^>XpYX;rmmAj(?pNHWMetaEP&aHJdr0lIzBg% zl&$m}nvJGlfTVP^qy#QrhsO>bWtcJsp`N()=f)#}7fCN}-9KzZeHsk8N~P*q?ZgMu zqijY#YEem3p`$<47K%ltPci{8U^NmZtzXoPg{GxAUkMY@#MQ6*(uo@r_($RY&RsB zl6Q2hKF#JHn`>D0yoE9OmwGy%rklp)BrltE@{G&$7;1kVb?05+T<;r|3CJKw z7?Ra(w5f;gX%L}nhq=#ga)(9_8?i|4Hq7pKx0Cj)wZ=Z{_1ez^pG)bRkm26x3?lXG zvyIa86q!<_XRR1E$~_iRb`X2^<-B;_Y|(W6E1UMFTX-%qy=7*b%KP?dorHefPo!3P z8)AA17jj)Tc+}R-&>=o;qMg~MJDuDUxJo2fql0A1!H{6osoR7LXc%Ef$s=}`E2c8a z(t+QF{i)uxU;C9p%)yNP-OTyMpp5CfJ!hSO>;zm;`0r0Y0|*~t~h zObI*9M=hB-^qKgxZhk4|g6uYxuj4xli-yCd9<}i_koT{C6HxtD`U&{DXX2Nke6HVH7#w1yn!#j;#BMqX_UA14 ziw+S_#&&)KhIkMHD|5IJQT1Z)UA`j8L}WrhLAc&-^Ak5cX!ZPvog?MJ#{R9cV4PtX z^kI=IaC!Ib>c-w7438VJ^$>lla&Zl;tGLEF6;_TGrI*BTx1>HjO%=%$kEV{pu^eiB z$LRWVhb0m(GY17V#xrAg z1f4geV>DQ=H>38f*1n+9efDp1VQTfWNf;o?rQH!=(7X$Sj2oRDu@7mE@^XP-bNu>p z${FVH!Keh!s>C=Cddx_AeL;KrQ1mwNs}>o4P|iu1BYeAWfz7oj`EZb9kCCxW=e`16?r<5<&^W>@TES#I}9K`sYXGE~)W_KDP* zM~d@I5eadUqS}w9J9)i43%*6dk~dC=y=>4ECOj^dK)BTAh!APKCBC!bwytFHhQLi% zZOuJIO8CR;m$tv6=5@uVf>K7)DubX1Pk6Os8gJt1aeDh1mKf1g`pKj-GA1LWn zWO2T-Akh#kGZV)%Du=wc*u2fqk<-gm`gscdxxd_+vkz)4qAab0D2eeodiv2emvLhy zID$VOBB!W9cKz~SUqTVff@P_)EiewaW%2szm9Kx?XW5n;D?-kvx98Z6{+=)4v|Y08 zn&zx%6qOgW7-Pqvad1v~J=cd>k_U5kS1u2C=HzaW1~-+;!ZjM0x>1d`-_H1PR2{IR zwy0;f)Vv`oT#MxG{zLEK{HDuxg<;P$U$9$`Znmm~e`l!TjcK}(8Ze#m{XgM1!PHKU zBCgjbSZfD#9IK zBSUMWS;m3w6y``W#mH3GA6>kX>57fenR%?iOxF*$;H88`4ttF6EZfYu)daEn&R?hw zgSg|^fPcr?-I{L~DELs`GGoYl@uSKoFCe{wiFQm&e~fKjN3VKYU%>BlQi0unjVkq* zi)5WK=pad_WeUCWHU_`#qM1`M>_BeZo^uB`>hRK4P;iQ_{k67YTj9@vO8uz*GoBpjO$RP}N1SOcb68)I6jR)NwLy%++(;jU-xDzpfR zh#b85tNylld^lkKR_%Rrd(Rh{nwpAmVPgHifmxI5m0}8755pWO!Lq*B1(JQw`bn%I z8)V@{$o$CFZkkHF1u8`=britb0k`J+m!4D#+bIu+5cL2i9Gm)Ube{IS5kZty2~u~N z+W`fjU8Vf=P_y_e@GT95T4h0=kb(fKerm7{#1Cq1jGqcwC(q=C)Ol^o-f{#^C}(tz zGeMV=zZ@q$a*FIm0hB*iP;)&H;o$&2{?zvcsBxR#bzI Date: Thu, 23 Nov 2023 09:26:03 +0530 Subject: [PATCH 17/35] Update the documentation --- README.md | 2 +- ballerina/Module.md | 2 +- ballerina/Package.md | 273 ++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 258 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index ab5c1d2f..6a8d3535 100644 --- a/README.md +++ b/README.md @@ -99,7 +99,7 @@ To obtain a token following steps should be followed: 4. Copy the *Primary Connection String* value and save it in a secure location. This is the connection string that you use to authenticate with the Service Bus service. ![Connection String](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/connection-string.png?raw=true) -## Quickstart +## Sample To use the Azure Service Bus connector in your Ballerina application, update the .bal file as follows: ### Enabling Azure SDK Logs diff --git a/ballerina/Module.md b/ballerina/Module.md index 0552acd6..02bbaf0b 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -89,7 +89,7 @@ To obtain a token following steps should be followed: 4. Copy the *Primary Connection String* value and save it in a secure location. This is the connection string that you use to authenticate with the Service Bus service. ![Connection String](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/connection-string.png?raw=true) -## Quickstart +## Sample To use the Azure Service Bus connector in your Ballerina application, update the .bal file as follows: ### Enabling Azure SDK Logs diff --git a/ballerina/Package.md b/ballerina/Package.md index 5b48114f..02bbaf0b 100644 --- a/ballerina/Package.md +++ b/ballerina/Package.md @@ -1,27 +1,266 @@ -Connects to [Microsoft Azure Service Bus](https://docs.microsoft.com/en-us/java/api/overview/azure/servicebus/client?view=azure-java-stable&preserve-view=true) from Ballerina. +## Overview -## Package overview +The [Ballerina](https://ballerina.io/) connector for Azure Service Bus allows you to connect to +an [Azure Service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/) via the Ballerina language. -Azure Service Bus is an asynchronous messaging cloud platform that enables you to send and receive messages between decoupled systems. Microsoft offers this feature as a service, which means that you do not need to host any of your own hardware in order to use it. +The Azure Service Bus is a fully managed enterprise message broker with message queues and publish-subscribe topics. It +provides the capability to send and receive messages from Service Bus queues, topics, and subscriptions. The Azure +Service Bus handles messages that include data representing any kind of information, including structured data encoded +with common formats such as the following ones: JSON, XML, and Plain Text. -Refer to [azure.com](https://azure.microsoft.com/services/service-bus/) to learn more about Service Bus. +This connector supports the following operations: +- Send messages to a queue, topic, or subscription. +- Receive messages from a queue, topic, or subscription. +- Manage (Get/Create/Update/Delete/list) a queue, topic,subscription or rule. +- Listen to messages from a queue, topic, or subscription. -The `ballerinax/asb` is a [Ballerina](https://ballerina.io/) connector for Microsoft Azure Service Bus. -This package offers usage and management capabilities for Azure Service Bus resources, including queues, topics, subscriptions, and rules. +Service Bus provides a Microsoft +supported [native Java API](https://docs.microsoft.com/en-us/java/api/overview/azure/servicebus?view=azure-java-stable) ( +SDK) and this module makes use of +this [public API](https://learn.microsoft.com/en-us/java/api/com.microsoft.azure.servicebus?view=azure-java-archive) +. As the public API +applies [SAS authentication](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-sas), this module +supports SAS authentication as well. -### Compatibility +This module +supports [Service Bus SDK 7.13.1 version](https://learn.microsoft.com/en-us/java/api/overview/azure/service-bus?view=azure-java-stable#libraries-for-data-access) +. The source code on GitHub is +located [here](https://github.com/Azure/azure-service-bus-java). The +primary wire protocol for Service Bus is Advanced Messaging Queueing Protocol (AMQP) 1.0, an open ISO/IEC standard. -| | Version | -|----------------------------|-----------------------| -| Ballerina Language | Swan Lake 2201.8.0 | -| Azure Service Bus SDK | 7.13.1 | +## Prerequisites -## Report issues +Before using this connector in your Ballerina application, complete the following: -To report bugs, request new features, start new discussions, view project boards, etc., go to the [Ballerina Extended Library repository](https://github.com/ballerina-platform/ballerina-extended-library) +### Create a namespace in the Azure portal +To begin using Service Bus messaging entities in Azure, you must first create a namespace with a name that is unique across Azure. A namespace provides a scoping container for Service Bus resources within your application. -## Useful links +To create a namespace: -- Discuss code changes of the Ballerina project in [ballerina-dev@googlegroups.com](mailto:ballerina-dev@googlegroups.com). -- Chat live with us via our [Discord server](https://discord.gg/ballerinalang). -- Post all technical questions on Stack Overflow with the [#ballerina](https://stackoverflow.com/questions/tagged/ballerina) tag +#### Step 1: Sign in to the [Azure portal](https://portal.azure.com/). +If you don't have an Azure subscription, [sign up for a free Azure account](https://azure.microsoft.com/free/). + +#### Step 2: Go to the Create Resource Service Bus menu + +In the left navigation pane of the portal, select **All services**, select **Integration** from the list of categories, hover the mouse over **Service Bus**, and then select **Create** on the Service Bus tile. +![Create Resource Service Bus Menu](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/create-resource-service-bus-menu.png?raw=true) + +#### Step 3: In the Basics tag of the Create namespace page, follow these steps: + +1. For **Subscription**, choose an Azure subscription in which to create the namespace. + +2. For **Resource group**, choose an existing resource group in which the namespace will live, or create a new one. + +3. Enter a **name for the namespace**. The namespace name should adhere to the following naming conventions: + +* The name must be unique across Azure. The system immediately checks to see if the name is available. +* The name length is at least 6 and at most 50 characters. +* The name can contain only letters, numbers, and hyphens “-“. +* The name must start with a letter and end with a letter or number. +* The name doesn't end with “-sb“ or “-mgmt“. + +4. For **Location**, choose the region in which your namespace should be hosted. + +5. For **Pricing tier**, select the pricing tier (Basic, Standard, or Premium) for the namespace. For this quickstart, select Standard. + +`Important: If you want to use topics and subscriptions, choose either Standard or Premium. Topics/subscriptions aren't supported in the Basic pricing tier.` + +If you selected the Premium pricing tier, specify the number of messaging units. The premium tier provides resource isolation at the CPU and memory level so that each workload runs in isolation. This resource container is called a messaging unit. A premium namespace has at least one messaging unit. You can select 1, 2, 4, 8, or 16 messaging units for each Service Bus Premium namespace. For more information, see Service Bus Premium Messaging. + +6. Select **Review + create** at the bottom of the page. + +![Create Namespace](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/create-namespace.png?raw=true) + +7. On the **Review + create** page, review settings, and select **Create**. + + +### Obtain tokens for authentication + +To send and receive messages from a Service Bus queue or topic, clients must use a token that is signed by a shared access key, which is part of a shared access policy. A shared access policy defines a set of permissions that can be assigned to one or more Service Bus entities (queues, topics, event hubs, or relays). A shared access policy can be assigned to more than one entity, and a single entity can have more than one shared access policy assigned to it. + +To obtain a token following steps should be followed: + +1. In the left navigation pane of the portal, select *All services*, select *Integration* from the list of categories, hover the mouse over *Service Bus*, and then select your namespace. + +2. In the left navigation pane of the namespace page, select *Shared access policies*. + +3. Click on the *RootManageSharedAccessKey* policy. + +4. Copy the *Primary Connection String* value and save it in a secure location. This is the connection string that you use to authenticate with the Service Bus service. +![Connection String](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/connection-string.png?raw=true) + +## Sample + +To use the Azure Service Bus connector in your Ballerina application, update the .bal file as follows: +### Enabling Azure SDK Logs +To enable Azure logs in a Ballerina module, you need to set the environment variable ASB_CLOUD_LOGS to ACTIVE. You can do this by adding the following line to your shell script or using the export command in your terminal(to deactivate, remove the variable value): + +`export ASB_CLOUD_LOGS=ACTIVE` + +### Enabling Internal Connector Logs +To enable internal connector logs in a Ballerina module, you need to set the log level in the Config.toml file using the custom configuration record Where is the desired log level (e.g. DEBUG, INFO, WARN, ERROR, FATAL, (Default)OFF) + +``` +[ballerinax.asb.customConfiguration] +logLevel="OFF" +``` + + +### Step 1: Import connector + +Import the `ballerinax/asb` module into the Ballerina project. + +```ballerina +import ballerinax/asb as asb; +``` + +### Step 2: Create a new connector instance + +#### Initialize an Admin Client + +This can be done by providing a connection string. + +````ballerina + configurable string connectionString = ?; + asb:AdminClient admin = check new (connectionString); +```` + +#### Initialize a Message Sender client + +This can be done by providing a connection string with a queue or topic name. + +```ballerina + configurable string connectionString = ?; + + ASBServiceSenderConfig senderConfig = { + connectionString: connectionString, + entityType: QUEUE, + topicOrQueueName: "myQueue" + }; + asb:MessageSender sender = check new (senderConfig); +``` + +#### Initialize a Message Receiver client + +This can be done by providing a connection string with a queue name, topic name, or subscription path. Here, the Receive mode is +optional. (Default: PEEKLOCK) + +```ballerina + configurable string connectionString = ?; + + ASBServiceReceiverConfig receiverConfig = { + connectionString: connectionString, + entityConfig: { + queueName: "myQueue" + }, + receiveMode: PEEK_LOCK + }; + asb:MessageReceiver receiver = check new (receiverConfig); +``` + +#### Initialize a Message Listener client + +This can be done by providing a connection string. + +```ballerina + configurable string connectionString = ?; + asb:Listener listener = check new (connectionString); +``` + +### Step 3: Invoke connector operation + +1. Now you can use the operations available within the connector. Note that they are in the form of remote operations. + + Following is an example of how to create a queue in the Azure Service Bus using the connector. + + **Create a queue in the Azure Service Bus** + + ```ballerina + public function main() returns error? { + asb:AdminClient admin = check new (adminConfig); + + check admin->createQueue("myQueue"); + + check admin->close(); + } + ``` + + Following is an example on how to send messages to the Azure Service Bus using the connector. + + **Send a message to the Azure Service Bus** + + ```ballerina + public function main() returns error? { + asb:MessageSender queueSender = check new (senderConfig); + + string stringContent = "This is My Message Body"; + byte[] byteContent = stringContent.toBytes(); + int timeToLive = 60; // In seconds + + asb:ApplicationProperties applicationProperties = { + properties: {a: "propertyValue1", b: "propertyValue2"} + }; + + asb:Message message = { + body: byteContent, + contentType: asb:TEXT, + timeToLive: timeToLive, + applicationProperties: applicationProperties + }; + + check queueSender->send(message); + + check queueSender->close(); + } + ``` + + Following is an example of how to receive messages from the Azure Service Bus using the client connector. Optionally + you can provide the receive mode which is PEEKLOCK by default. You can find more information about the receive + modes [here](https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.servicebus.receivemode?view=azure-java-stable). + + **Receive a message from the Azure Service Bus** + + ```ballerina + public function main() returns error? { + asb:MessageReceiver queueReceiver = check new (receiverConfig); + + int serverWaitTime = 60; // In seconds + + asb:Message|asb:Error? messageReceived = queueReceiver->receive(serverWaitTime); + + if (messageReceived is asb:Message) { + log:printInfo("Reading Received Message : " + messageReceived.toString()); + } else if (messageReceived is ()) { + log:printError("No message in the queue."); + } else { + log:printError("Receiving message via Asb receiver connection failed."); + } + + check queueReceiver->close(); + } + ``` + Following is an example on how to receive messages from the Azure Service Bus using the listner in connector. + **Listen to Messages from the Azure Service Bus** + ```ballerina + @ServiceConfig { + queueName: "myqueue", + peekLockModeEnabled: true, + maxConcurrency: 1, + prefetchCount: 20, + maxAutoLockRenewDuration: 300 + } + service MessageService on asbListener { + isolated remote function onMessage(Message message, Caller caller) returns error? { + log:printInfo("Message received:" + message.body.toString()); + _ = check caller.complete(message); + } + isolated remote function onError(ErrorContext context, error 'error) returns error? { + // Write your error handling logic here + } + }; + ``` + **!!! NOTE: You can complete, abandon, deadLetter, defer, renewLock using the asb:Caller instance. If you want to handle errors that come when processing messages, use MessageServiceErrorHandling service type.** + +2. Use `bal run` command to compile and run the Ballerina program. + +**[You can find a list of samples here](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/examples)** From 8cc012496189000098c81faf42bc9f2944f2d3de Mon Sep 17 00:00:00 2001 From: RDPerera Date: Thu, 23 Nov 2023 09:52:02 +0530 Subject: [PATCH 18/35] Update doc screenshots --- ballerina/Module.md | 2 +- ballerina/resources/connection-string.png | Bin 155004 -> 325678 bytes ballerina/resources/create-namespace.png | Bin 35432 -> 244528 bytes .../create-resource-service-bus-menu.png | Bin 96354 -> 487779 bytes 4 files changed, 1 insertion(+), 1 deletion(-) diff --git a/ballerina/Module.md b/ballerina/Module.md index 02bbaf0b..df6c7918 100644 --- a/ballerina/Module.md +++ b/ballerina/Module.md @@ -84,7 +84,7 @@ To obtain a token following steps should be followed: 2. In the left navigation pane of the namespace page, select *Shared access policies*. -3. Click on the *RootManageSharedAccessKey* policy. +3. Click on the *+ Add* and create a policy with *Manage*, *Send* and *Listen* permissions. 4. Copy the *Primary Connection String* value and save it in a secure location. This is the connection string that you use to authenticate with the Service Bus service. ![Connection String](https://github.com/ballerina-platform/module-ballerinax-azure-service-bus/tree/main/ballerina/resources/connection-string.png?raw=true) diff --git a/ballerina/resources/connection-string.png b/ballerina/resources/connection-string.png index 4def90d76209596a2fca25b5124231c7c5eb2230..ea60fee25de79b7555278be6b90fb51971760e64 100644 GIT binary patch literal 325678 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

sKwD$uRczO3go`xuIghk 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